<?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>227296</bug_id>
          
          <creation_ts>2021-06-23 08:47:58 -0700</creation_ts>
          <short_desc>Update WPT resources from upstream</short_desc>
          <delta_ts>2021-06-23 18:59:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>227316</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>clopez</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gsnedders</cc>
    
    <cc>jbedard</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>jsbell</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1771949</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-23 08:47:58 -0700</bug_when>
    <thetext>Update WPT resources from upstream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771951</commentid>
    <comment_count>1</comment_count>
      <attachid>432052</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-23 08:49:29 -0700</bug_when>
    <thetext>Created attachment 432052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771970</commentid>
    <comment_count>2</comment_count>
      <attachid>432060</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-23 09:33:13 -0700</bug_when>
    <thetext>Created attachment 432060
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771981</commentid>
    <comment_count>3</comment_count>
      <attachid>432064</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-23 10:02:44 -0700</bug_when>
    <thetext>Created attachment 432064
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772008</commentid>
    <comment_count>4</comment_count>
      <attachid>432075</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-23 11:28:27 -0700</bug_when>
    <thetext>Created attachment 432075
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772038</commentid>
    <comment_count>5</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-23 12:47:18 -0700</bug_when>
    <thetext>Looks good, but let&apos;s let EWS continue to chew on it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772092</commentid>
    <comment_count>6</comment_count>
      <attachid>432099</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-23 15:52:11 -0700</bug_when>
    <thetext>Created attachment 432099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772152</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-23 18:58:35 -0700</bug_when>
    <thetext>Committed r279202 (239088@main): &lt;https://commits.webkit.org/239088@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432099.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772153</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-23 18:59:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/79704782&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432052</attachid>
            <date>2021-06-23 08:49:29 -0700</date>
            <delta_ts>2021-06-23 09:33:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227296-20210623084929.patch</filename>
            <type>text/plain</type>
            <size>318457</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTY5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpp
bmRleCAxYmZlZGEzNDI1MmI1NzY5ZTIwNDljMmM4ZDg3YmUwYjNiYjg0NzhiLi5kYWMzMzQzMzU0
NmE5OTZhZDI0YmUxYjc5YjhkYTM5MDQxMDQ4ZWM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wNi0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBXUFQgcmVzb3VyY2VzIGZyb20gdXBzdHJlYW0K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI5Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBX
UFQgcmVzb3VyY2VzIGZyb20gdXBzdHJlYW0gYTM4NjEyZjM5ZTc3NTJjMzUzMjAuCisKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzLyo6IFVwZGF0ZWQuCisKIDIwMjEtMDYt
MjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgV1BU
IHRvb2xzIGZyb20gdXBzdHJlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL2NoZWNrLWxheW91dC10aC5qcyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL2NoZWNrLWxh
eW91dC10aC5qcwppbmRleCA1ZDQyMzZkMWNlZGIwZTIwZGJjMWJiMzA3MjJjYjBlOWUxNjBmMTEw
Li5hNTA3YThkZmQ3ZjE5N2NiZjNmZjMwNzJlN2Y3MjkxODQ3Y2Q2YWEyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy9jaGVj
ay1sYXlvdXQtdGguanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LXRoLmpzCkBAIC0zNiw2ICszNiw3IEBAIGZ1
bmN0aW9uIGNoZWNrRGF0YUtleXMobm9kZSkgewogICAgICAgICAiZGF0YS1leHBlY3RlZC1zY3Jv
bGwtd2lkdGgiLAogICAgICAgICAiZGF0YS1leHBlY3RlZC1zY3JvbGwtaGVpZ2h0IiwKICAgICAg
ICAgImRhdGEtZXhwZWN0ZWQtYm91bmRpbmctY2xpZW50LXJlY3Qtd2lkdGgiLAorICAgICAgICAi
ZGF0YS1leHBlY3RlZC1ib3VuZGluZy1jbGllbnQtcmVjdC1oZWlnaHQiLAogICAgICAgICAiZGF0
YS10b3RhbC14IiwKICAgICAgICAgImRhdGEtdG90YWwteSIsCiAgICAgICAgICJkYXRhLWV4cGVj
dGVkLWRpc3BsYXkiLApAQCAtMTA3LDYgKzEwOCwxMSBAQCBmdW5jdGlvbiBjaGVja0V4cGVjdGVk
VmFsdWVzKHQsIG5vZGUsIHByZWZpeCkKICAgICAgICAgYXNzZXJ0X3RvbGVyYW5jZShub2RlLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLCBleHBlY3RlZFdpZHRoLCBwcmVmaXggKyAiZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiKTsKICAgICB9CiAKKyAgICB2YXIgZXhwZWN0ZWRI
ZWlnaHQgPSBjaGVja0F0dHJpYnV0ZShvdXRwdXQsIG5vZGUsICJkYXRhLWV4cGVjdGVkLWJvdW5k
aW5nLWNsaWVudC1yZWN0LWhlaWdodCIpOworICAgIGlmIChleHBlY3RlZEhlaWdodCkgeworICAg
ICAgICBhc3NlcnRfdG9sZXJhbmNlKG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0
LCBleHBlY3RlZEhlaWdodCwgcHJlZml4ICsgImdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdo
dCIpOworICAgIH0KKwogICAgIHZhciBleHBlY3RlZE9mZnNldCA9IGNoZWNrQXR0cmlidXRlKG91
dHB1dCwgbm9kZSwgImRhdGEtdG90YWwteCIpOwogICAgIGlmIChleHBlY3RlZE9mZnNldCkgewog
ICAgICAgICB2YXIgdG90YWxMZWZ0ID0gbm9kZS5jbGllbnRMZWZ0ICsgbm9kZS5vZmZzZXRMZWZ0
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL2lkbGhhcm5lc3MuanMKaW5kZXggNWE5N2IyNzNmMmJl
ZDE5NmQ2ZGRkODVjNTU5NmRlY2ZmMWJmODdhZS4uNmFlYzAyZTNhYmUwNmIyMGQxMWJiNDZiZmQ1
Yjc0MjMyNjg1MWM4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzCkBA
IC0xLDEzICsxLDMgQEAKLS8qCi1EaXN0cmlidXRlZCB1bmRlciBib3RoIHRoZSBXM0MgVGVzdCBT
dWl0ZSBMaWNlbnNlIFsxXSBhbmQgdGhlIFczQwotMy1jbGF1c2UgQlNEIExpY2Vuc2UgWzJdLiBU
byBjb250cmlidXRlIHRvIGEgVzNDIFRlc3QgU3VpdGUsIHNlZSB0aGUKLXBvbGljaWVzIGFuZCBj
b250cmlidXRpb24gZm9ybXMgWzNdLgotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1
bS9MZWdhbC8yMDA4LzA0LXRlc3RzdWl0ZS1saWNlbnNlCi1bMl0gaHR0cDovL3d3dy53My5vcmcv
Q29uc29ydGl1bS9MZWdhbC8yMDA4LzAzLWJzZC1saWNlbnNlCi1bM10gaHR0cDovL3d3dy53My5v
cmcvMjAwNC8xMC8yNy10ZXN0Y2FzZXMKLSovCi0KIC8qIEZvciB1c2VyIGRvY3VtZW50YXRpb24g
c2VlIGRvY3MvX3dyaXRpbmctdGVzdHMvaWRsaGFybmVzcy5tZCAqLwogCiAvKioKQEAgLTEwMSw2
ICs5MSwxNiBAQCBmdW5jdGlvbiBnbG9iYWxPZihmdW5jKQogICAgIHJldHVybiBzZWxmOwogfQog
CisvLyBodHRwczovL2VzZGlzY3Vzcy5vcmcvdG9waWMvaXNjb25zdHJ1Y3RvciNjb250ZW50LTEx
CitmdW5jdGlvbiBpc0NvbnN0cnVjdG9yKG8pIHsKKyAgICB0cnkgeworICAgICAgICBuZXcgKG5l
dyBQcm94eShvLCB7Y29uc3RydWN0OiAoKSA9PiAoe30pfSkpOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwog
ZnVuY3Rpb24gdGhyb3dPclJlamVjdChhX3Rlc3QsIG9wZXJhdGlvbiwgZm4sIG9iaiwgYXJncywg
bWVzc2FnZSwgY2IpCiB7CiAgICAgaWYgKG9wZXJhdGlvbi5pZGxUeXBlLmdlbmVyaWMgIT09ICJQ
cm9taXNlIikgewpAQCAtMTMxLDE3ICsxMzEsNiBAQCBmdW5jdGlvbiBhd2FpdE5DYWxsYmFja3Mo
biwgY2IsIGN0eCkKICAgICB9OwogfQogCi12YXIgZnJvdW5kID0KLShmdW5jdGlvbigpewotICAg
IGlmIChNYXRoLmZyb3VuZCkgcmV0dXJuIE1hdGguZnJvdW5kOwotCi0gICAgdmFyIGFyciA9IG5l
dyBGbG9hdDMyQXJyYXkoMSk7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uIGZyb3VuZChuKSB7Ci0gICAg
ICAgIGFyclswXSA9IG47Ci0gICAgICAgIHJldHVybiBhcnJbMF07Ci0gICAgfTsKLX0pKCk7Ci0K
IC8vLyBJZGxIYXJuZXNzRXJyb3IgLy8vCiAvLyBFbnRyeSBwb2ludAogc2VsZi5JZGxIYXJuZXNz
RXJyb3IgPSBmdW5jdGlvbihtZXNzYWdlKQpAQCAtMTg1LDMxICsxNzQsMTUgQEAgc2VsZi5JZGxB
cnJheSA9IGZ1bmN0aW9uKCkKIAogICAgIC8qKgogICAgICAqIFdoZW4gYWRkaW5nIG11bHRpcGxl
IGNvbGxlY3Rpb25zIG9mIElETHMgb25lIGF0IGEgdGltZSwgYW4gZWFybGllciBvbmUKLSAgICAg
KiBtaWdodCBjb250YWluIGEgcGFydGlhbCBpbnRlcmZhY2Ugb3IgaW1wbGVtZW50cyBzdGF0ZW1l
bnQgdGhhdCBkZXBlbmRzCisgICAgICogbWlnaHQgY29udGFpbiBhIHBhcnRpYWwgaW50ZXJmYWNl
IG9yIGluY2x1ZGVzIHN0YXRlbWVudCB0aGF0IGRlcGVuZHMKICAgICAgKiBvbiBhIGxhdGVyIG9u
ZS4gIFNhdmUgdGhlc2UgdXAgYW5kIGhhbmRsZSB0aGVtIHJpZ2h0IGJlZm9yZSB3ZSBydW4KICAg
ICAgKiB0ZXN0cy4KICAgICAgKgotICAgICAqIC5wYXJ0aWFscyBpcyBzaW1wbHkgYW4gYXJyYXkg
b2Ygb2JqZWN0cyBmcm9tIFdlYklETFBhcnNlci5qcycKLSAgICAgKiAicGFydGlhbGludGVyZmFj
ZSIgcHJvZHVjdGlvbi4gIC5pbXBsZW1lbnRzIG1hcHMgc3RyaW5ncyB0byBhcnJheXMgb2YKLSAg
ICAgKiBzdHJpbmdzLCBzdWNoIHRoYXQKLSAgICAgKgotICAgICAqICAgQSBpbXBsZW1lbnRzIEI7
Ci0gICAgICogICBBIGltcGxlbWVudHMgQzsKLSAgICAgKiAgIEQgaW1wbGVtZW50cyBFOwotICAg
ICAqCi0gICAgICogcmVzdWx0cyBpbiB0aGlzWyJpbXBsZW1lbnRzIl0gPSB7IEE6IFsiQiIsICJD
Il0sIEQ6IFsiRSJdIH0uCi0gICAgICoKLSAgICAgKiBTaW1pbGFybHksCi0gICAgICoKLSAgICAg
KiAgIGludGVyZmFjZSBBIDogQiB7fTsKLSAgICAgKiAgIGludGVyZmFjZSBCIDogQyB7fTsKLSAg
ICAgKgotICAgICAqIHJlc3VsdHMgaW4gdGhpc1siaW5oZXJpdGFuY2UiXSA9IHsgQTogIkIiLCBC
OiAiQyIgfQorICAgICAqIEJvdGggdGhpcy5wYXJ0aWFscyBhbmQgdGhpcy5pbmNsdWRlcyB3aWxs
IGJlIHRoZSBvYmplY3RzIGFzIHBhcnNlZCBieQorICAgICAqIFdlYklETFBhcnNlci5qcywgbm90
IHdyYXBwZWQgaW4gSWRsSW50ZXJmYWNlIG9yIHNpbWlsYXIuCiAgICAgICovCiAgICAgdGhpcy5w
YXJ0aWFscyA9IFtdOwotICAgIHRoaXNbImltcGxlbWVudHMiXSA9IHt9OwotICAgIHRoaXNbImlu
Y2x1ZGVzIl0gPSB7fTsKLSAgICB0aGlzWyJpbmhlcml0YW5jZSJdID0ge307CisgICAgdGhpcy5p
bmNsdWRlcyA9IFtdOwogCiAgICAgLyoqCiAgICAgICogUmVjb3JkIG9mIHNraXBwZWQgSURMIGl0
ZW1zLCBpbiBjYXNlIHdlIGxhdGVyIHJlYWxpemUgdGhhdCB0aGV5IGFyZSBhCkBAIC0yNjEsMTUg
KzIzNCwxNSBAQCBJZGxBcnJheS5wcm90b3R5cGUuaW50ZXJuYWxfYWRkX2RlcGVuZGVuY3lfaWRs
cyA9IGZ1bmN0aW9uKHBhcnNlZF9pZGxzLCBvcHRpb25zKQogICAgIGNvbnN0IG5ld19vcHRpb25z
ID0geyBvbmx5OiBbXSB9CiAKICAgICBjb25zdCBhbGxfZGVwcyA9IG5ldyBTZXQoKTsKLSAgICBP
YmplY3QudmFsdWVzKHRoaXMuaW5oZXJpdGFuY2UpLmZvckVhY2godiA9PiBhbGxfZGVwcy5hZGQo
dikpOwotICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuaW1wbGVtZW50cykuZm9yRWFjaCgoW2ssIHZd
KSA9PiB7Ci0gICAgICAgIGFsbF9kZXBzLmFkZChrKTsKLSAgICAgICAgYWxsX2RlcHMuYWRkKHYp
OworICAgIE9iamVjdC52YWx1ZXModGhpcy5tZW1iZXJzKS5mb3JFYWNoKHYgPT4geworICAgICAg
ICBpZiAodi5iYXNlKSB7CisgICAgICAgICAgICBhbGxfZGVwcy5hZGQodi5iYXNlKTsKKyAgICAg
ICAgfQogICAgIH0pOwotICAgIC8vIE5PVEU6IElmICdBIGluY2x1ZGVzIEInIGZvciBCIHRoYXQg
d2UgY2FyZSBhYm91dCwgdGhlbiBBIGlzIGFsc28gYSBkZXAuCi0gICAgT2JqZWN0LmtleXModGhp
cy5pbmNsdWRlcykuZm9yRWFjaChrID0+IHsKLSAgICAgICAgYWxsX2RlcHMuYWRkKGspOwotICAg
ICAgICB0aGlzLmluY2x1ZGVzW2tdLmZvckVhY2godiA9PiBhbGxfZGVwcy5hZGQodikpOworICAg
IC8vIEFkZCBib3RoICdBJyBhbmQgJ0InIGZvciBlYWNoICdBIGluY2x1ZGVzIEInIGVudHJ5Lgor
ICAgIHRoaXMuaW5jbHVkZXMuZm9yRWFjaChpID0+IHsKKyAgICAgICAgYWxsX2RlcHMuYWRkKGku
dGFyZ2V0KTsKKyAgICAgICAgYWxsX2RlcHMuYWRkKGkuaW5jbHVkZXMpOwogICAgIH0pOwogICAg
IHRoaXMucGFydGlhbHMuZm9yRWFjaChwID0+IGFsbF9kZXBzLmFkZChwLm5hbWUpKTsKICAgICAv
LyBBZGQgJ1R5cGVPZlR5cGUnIGZvciBlYWNoICJ0eXBlZGVmIFR5cGVPZlR5cGUgTXlUeXBlOyIg
ZW50cnkuCkBAIC0zMjgsOSArMzAxLDYgQEAgSWRsQXJyYXkucHJvdG90eXBlLmludGVybmFsX2Fk
ZF9kZXBlbmRlbmN5X2lkbHMgPSBmdW5jdGlvbihwYXJzZWRfaWRscywgb3B0aW9ucykKICAgICAg
ICAgdmFyIGRlcHMgPSBbXTsKICAgICAgICAgaWYgKHBhcnNlZC5uYW1lKSB7CiAgICAgICAgICAg
ICBkZXBzLnB1c2gocGFyc2VkLm5hbWUpOwotICAgICAgICB9IGVsc2UgaWYgKHBhcnNlZC50eXBl
ID09PSAiaW1wbGVtZW50cyIpIHsKLSAgICAgICAgICAgIGRlcHMucHVzaChwYXJzZWQudGFyZ2V0
KTsKLSAgICAgICAgICAgIGRlcHMucHVzaChwYXJzZWQuaW1wbGVtZW50cyk7CiAgICAgICAgIH0g
ZWxzZSBpZiAocGFyc2VkLnR5cGUgPT09ICJpbmNsdWRlcyIpIHsKICAgICAgICAgICAgIGRlcHMu
cHVzaChwYXJzZWQudGFyZ2V0KTsKICAgICAgICAgICAgIGRlcHMucHVzaChwYXJzZWQuaW5jbHVk
ZXMpOwpAQCAtMzU4LDcgKzMyOCw3IEBAIElkbEFycmF5LnByb3RvdHlwZS5pbnRlcm5hbF9hZGRf
ZGVwZW5kZW5jeV9pZGxzID0gZnVuY3Rpb24ocGFyc2VkX2lkbHMsIG9wdGlvbnMpCiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIGNvbnN0IGZvbGxvd191cCA9IG5ldyBTZXQoKTsKLSAgICAg
ICAgICAgIGZvciAoY29uc3QgZGVwX3R5cGUgb2YgWyJpbmhlcml0YW5jZSIsICJpbXBsZW1lbnRz
IiwgImluY2x1ZGVzIl0pIHsKKyAgICAgICAgICAgIGZvciAoY29uc3QgZGVwX3R5cGUgb2YgWyJp
bmhlcml0YW5jZSIsICJpbmNsdWRlcyJdKSB7CiAgICAgICAgICAgICAgICAgaWYgKHBhcnNlZFtk
ZXBfdHlwZV0pIHsKICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5oZXJpdGluZyA9IHBhcnNl
ZFtkZXBfdHlwZV07CiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluaGVyaXRvciA9IHBhcnNl
ZC5uYW1lIHx8IHBhcnNlZC50YXJnZXQ7CkBAIC00NDcsMzEgKzQxNywxMyBAQCBJZGxBcnJheS5w
cm90b3R5cGUuaW50ZXJuYWxfYWRkX2lkbHMgPSBmdW5jdGlvbihwYXJzZWRfaWRscywgb3B0aW9u
cykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChwYXJzZWRf
aWRsLnR5cGUgPT0gImltcGxlbWVudHMiKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoc2hv
dWxkX3NraXAocGFyc2VkX2lkbC50YXJnZXQpKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghKHBhcnNlZF9pZGwu
dGFyZ2V0IGluIHRoaXNbImltcGxlbWVudHMiXSkpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgdGhpc1siaW1wbGVtZW50cyJdW3BhcnNlZF9pZGwudGFyZ2V0XSA9IFtdOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgdGhpc1siaW1wbGVtZW50cyJdW3BhcnNlZF9pZGwudGFyZ2V0
XS5wdXNoKHBhcnNlZF9pZGxbImltcGxlbWVudHMiXSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLQogICAgICAgICBpZiAocGFyc2VkX2lkbC50eXBlID09ICJpbmNsdWRlcyIpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIGlmIChzaG91bGRfc2tpcChwYXJzZWRfaWRsLnRhcmdldCkp
CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgaWYgKCEocGFyc2VkX2lkbC50YXJnZXQgaW4gdGhpc1siaW5jbHVkZXMiXSkp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdGhpc1siaW5jbHVkZXMiXVtwYXJzZWRf
aWRsLnRhcmdldF0gPSBbXTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRoaXNbImluY2x1
ZGVzIl1bcGFyc2VkX2lkbC50YXJnZXRdLnB1c2gocGFyc2VkX2lkbFsiaW5jbHVkZXMiXSk7Cisg
ICAgICAgICAgICB0aGlzLmluY2x1ZGVzLnB1c2gocGFyc2VkX2lkbCk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIApAQCAtNDg1LDE2ICs0MzcsNiBAQCBJZGxBcnJheS5wcm90b3R5
cGUuaW50ZXJuYWxfYWRkX2lkbHMgPSBmdW5jdGlvbihwYXJzZWRfaWRscywgb3B0aW9ucykKICAg
ICAgICAgICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJyb3IoIkR1cGxpY2F0ZSBpZGVudGlmaWVy
ICIgKyBwYXJzZWRfaWRsLm5hbWUpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHBhcnNlZF9p
ZGxbImluaGVyaXRhbmNlIl0pIHsKLSAgICAgICAgICAgIC8vIE5PVEU6IENsYXNoIHNob3VsZCBi
ZSBpbXBvc3NpYmxlICh3b3VsZCByZXF1aXJlIHJlZGVmaW5pdGlvbiBvZiBwYXJzZWRfaWRsLm5h
bWUpLgotICAgICAgICAgICAgaWYgKHBhcnNlZF9pZGwubmFtZSBpbiB0aGlzWyJpbmhlcml0YW5j
ZSJdCi0gICAgICAgICAgICAgICAgJiYgcGFyc2VkX2lkbFsiaW5oZXJpdGFuY2UiXSAhPSB0aGlz
WyJpbmhlcml0YW5jZSJdW3BhcnNlZF9pZGwubmFtZV0pIHsKLSAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgSWRsSGFybmVzc0Vycm9yKAotICAgICAgICAgICAgICAgICAgICBgSW5oZXJpdGFuY2Ug
Zm9yICR7cGFyc2VkX2lkbC5uYW1lfSB3YXMgYWxyZWFkeSBkZWZpbmVkYCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB0aGlzWyJpbmhlcml0YW5jZSJdW3BhcnNlZF9pZGwubmFtZV0gPSBw
YXJzZWRfaWRsWyJpbmhlcml0YW5jZSJdOwotICAgICAgICB9Ci0KICAgICAgICAgc3dpdGNoKHBh
cnNlZF9pZGwudHlwZSkKICAgICAgICAgewogICAgICAgICBjYXNlICJpbnRlcmZhY2UiOgpAQCAt
NTYyLDYyICs1MDQsNiBAQCBJZGxBcnJheS5wcm90b3R5cGUucHJldmVudF9tdWx0aXBsZV90ZXN0
aW5nID0gZnVuY3Rpb24obmFtZSkKICAgICB0aGlzLm1lbWJlcnNbbmFtZV0ucHJldmVudF9tdWx0
aXBsZV90ZXN0aW5nID0gdHJ1ZTsKIH07CiAKLUlkbEFycmF5LnByb3RvdHlwZS5yZWN1cnNpdmVs
eV9nZXRfaW1wbGVtZW50cyA9IGZ1bmN0aW9uKGludGVyZmFjZV9uYW1lKQotewotICAgIC8qKgot
ICAgICAqIEhlbHBlciBmdW5jdGlvbiBmb3IgdGVzdCgpLiAgUmV0dXJucyBhbiBhcnJheSBvZiB0
aGluZ3MgdGhhdCBpbXBsZW1lbnQKLSAgICAgKiBpbnRlcmZhY2VfbmFtZSwgc28gaWYgdGhlIElE
TCBjb250YWlucwotICAgICAqCi0gICAgICogICBBIGltcGxlbWVudHMgQjsKLSAgICAgKiAgIEIg
aW1wbGVtZW50cyBDOwotICAgICAqICAgQiBpbXBsZW1lbnRzIEQ7Ci0gICAgICoKLSAgICAgKiB0
aGVuIHJlY3Vyc2l2ZWx5X2dldF9pbXBsZW1lbnRzKCJBIikgc2hvdWxkIHJldHVybiBbIkIiLCAi
QyIsICJEIl0uCi0gICAgICovCi0gICAgdmFyIHJldCA9IHRoaXNbImltcGxlbWVudHMiXVtpbnRl
cmZhY2VfbmFtZV07Ci0gICAgaWYgKHJldCA9PT0gdW5kZWZpbmVkKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIFtdOwotICAgIH0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXNbImltcGxlbWVu
dHMiXVtpbnRlcmZhY2VfbmFtZV0ubGVuZ3RoOyBpKyspCi0gICAgewotICAgICAgICByZXQgPSBy
ZXQuY29uY2F0KHRoaXMucmVjdXJzaXZlbHlfZ2V0X2ltcGxlbWVudHMocmV0W2ldKSk7Ci0gICAg
ICAgIGlmIChyZXQuaW5kZXhPZihyZXRbaV0pICE9IHJldC5sYXN0SW5kZXhPZihyZXRbaV0pKQot
ICAgICAgICB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vycm9yKCJDaXJjdWxh
ciBpbXBsZW1lbnRzIHN0YXRlbWVudHMgaW52b2x2aW5nICIgKyByZXRbaV0pOwotICAgICAgICB9
Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci19OwotCi1JZGxBcnJheS5wcm90b3R5cGUucmVjdXJz
aXZlbHlfZ2V0X2luY2x1ZGVzID0gZnVuY3Rpb24oaW50ZXJmYWNlX25hbWUpCi17Ci0gICAgLyoq
Ci0gICAgICogSGVscGVyIGZ1bmN0aW9uIGZvciB0ZXN0KCkuICBSZXR1cm5zIGFuIGFycmF5IG9m
IHRoaW5ncyB0aGF0IGltcGxlbWVudAotICAgICAqIGludGVyZmFjZV9uYW1lLCBzbyBpZiB0aGUg
SURMIGNvbnRhaW5zCi0gICAgICoKLSAgICAgKiAgIEEgaW5jbHVkZXMgQjsKLSAgICAgKiAgIEIg
aW5jbHVkZXMgQzsKLSAgICAgKiAgIEIgaW5jbHVkZXMgRDsKLSAgICAgKgotICAgICAqIHRoZW4g
cmVjdXJzaXZlbHlfZ2V0X2luY2x1ZGVzKCJBIikgc2hvdWxkIHJldHVybiBbIkIiLCAiQyIsICJE
Il0uCi0gICAgICovCi0gICAgdmFyIHJldCA9IHRoaXNbImluY2x1ZGVzIl1baW50ZXJmYWNlX25h
bWVdOwotICAgIGlmIChyZXQgPT09IHVuZGVmaW5lZCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBb
XTsKLSAgICB9Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzWyJpbmNsdWRlcyJdW2ludGVy
ZmFjZV9uYW1lXS5sZW5ndGg7IGkrKykKLSAgICB7Ci0gICAgICAgIHJldCA9IHJldC5jb25jYXQo
dGhpcy5yZWN1cnNpdmVseV9nZXRfaW5jbHVkZXMocmV0W2ldKSk7Ci0gICAgICAgIGlmIChyZXQu
aW5kZXhPZihyZXRbaV0pICE9IHJldC5sYXN0SW5kZXhPZihyZXRbaV0pKQotICAgICAgICB7Ci0g
ICAgICAgICAgICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vycm9yKCJDaXJjdWxhciBpbmNsdWRlcyBz
dGF0ZW1lbnRzIGludm9sdmluZyAiICsgcmV0W2ldKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBy
ZXR1cm4gcmV0OwotfTsKLQogSWRsQXJyYXkucHJvdG90eXBlLmlzX2pzb25fdHlwZSA9IGZ1bmN0
aW9uKHR5cGUpCiB7CiAgICAgLyoqCkBAIC02OTUsMjUgKzU4MSwyMyBAQCBJZGxBcnJheS5wcm90
b3R5cGUuaXNfanNvbl90eXBlID0gZnVuY3Rpb24odHlwZSkKIAogICAgICAgICAgICAvLyAgZGlj
dGlvbmFyaWVzIHdoZXJlIGFsbCBvZiB0aGVpciBtZW1iZXJzIGFyZSBKU09OIHR5cGVzCiAgICAg
ICAgICAgIGlmICh0aGluZyBpbnN0YW5jZW9mIElkbERpY3Rpb25hcnkpIHsKLSAgICAgICAgICAg
ICAgIHZhciBzdGFjayA9IHRoaW5nLmdldF9pbmhlcml0YW5jZV9zdGFjaygpOwotICAgICAgICAg
ICAgICAgdmFyIG1hcCA9IG5ldyBNYXAoKTsKLSAgICAgICAgICAgICAgIHdoaWxlIChzdGFjay5s
ZW5ndGgpCi0gICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgc3RhY2sucG9wKCku
bWVtYmVycy5mb3JFYWNoKGZ1bmN0aW9uKG0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgbWFw
LnNldChtLm5hbWUsIG0uaWRsVHlwZSkKLSAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoKTsKKyAgICAgICAgICAgICAgIGZvciAoY29uc3Qg
ZGljdCBvZiB0aGluZy5nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjaygpKSB7CisgICAgICAg
ICAgICAgICAgICAgZm9yIChjb25zdCBtIG9mIGRpY3QubWVtYmVycykgeworICAgICAgICAgICAg
ICAgICAgICAgICBtYXAuc2V0KG0ubmFtZSwgbS5pZGxUeXBlKTsKKyAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSht
YXAudmFsdWVzKCkpLmV2ZXJ5KHRoaXMuaXNfanNvbl90eXBlLCB0aGlzKTsKICAgICAgICAgICAg
fQogCiAgICAgICAgICAgIC8vICBpbnRlcmZhY2UgdHlwZXMgdGhhdCBoYXZlIGEgdG9KU09OIG9w
ZXJhdGlvbiBkZWNsYXJlZCBvbiB0aGVtc2VsdmVzIG9yCi0gICAgICAgICAgIC8vICBvbmUgb2Yg
dGhlaXIgaW5oZXJpdGVkIG9yIGNvbnNlcXVlbnRpYWwgaW50ZXJmYWNlcy4KKyAgICAgICAgICAg
Ly8gIG9uZSBvZiB0aGVpciBpbmhlcml0ZWQgaW50ZXJmYWNlcy4KICAgICAgICAgICAgaWYgKHRo
aW5nIGluc3RhbmNlb2YgSWRsSW50ZXJmYWNlKSB7CiAgICAgICAgICAgICAgICB2YXIgYmFzZTsK
ICAgICAgICAgICAgICAgIHdoaWxlICh0aGluZykKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBpZiAodGhpbmcuaGFzX3RvX2pzb25fcmVndWxhcl9vcGVyYXRpb24oKSkgeyBy
ZXR1cm4gdHJ1ZTsgfQotICAgICAgICAgICAgICAgICAgIHZhciBtaXhpbnMgPSB0aGlzLmltcGxl
bWVudHNbdGhpbmcubmFtZV0gfHwgdGhpcy5pbmNsdWRlc1t0aGluZy5uYW1lXTsKKyAgICAgICAg
ICAgICAgICAgICB2YXIgbWl4aW5zID0gdGhpcy5pbmNsdWRlc1t0aGluZy5uYW1lXTsKICAgICAg
ICAgICAgICAgICAgICBpZiAobWl4aW5zKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG1peGlu
cyA9IG1peGlucy5tYXAoZnVuY3Rpb24oaWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZhciBtaXhpbiA9IHRoaXMubWVtYmVyc1tpZF07CkBAIC03NjYsNyArNjUwLDcgQEAgZnVuY3Rp
b24gZXhwb3N1cmVfc2V0KG9iamVjdCwgZGVmYXVsdF9zZXQpIHsKIH0KIAogZnVuY3Rpb24gZXhw
b3NlZF9pbihnbG9iYWxzKSB7Ci0gICAgaWYgKCdkb2N1bWVudCcgaW4gc2VsZikgeworICAgIGlm
ICgnV2luZG93JyBpbiBzZWxmKSB7CiAgICAgICAgIHJldHVybiBnbG9iYWxzLmhhcygiV2luZG93
Iik7CiAgICAgfQogICAgIGlmICgnRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUnIGluIHNlbGYg
JiYKQEAgLTgxMyw2NiArNjk3LDkgQEAgSWRsQXJyYXkucHJvdG90eXBlLnRlc3QgPSBmdW5jdGlv
bigpCiB7CiAgICAgLyoqIEVudHJ5IHBvaW50LiAgU2VlIGRvY3VtZW50YXRpb24gYXQgYmVnaW5u
aW5nIG9mIGZpbGUuICovCiAKLSAgICAvLyBGaXJzdCBtZXJnZSBpbiBhbGwgdGhlIHBhcnRpYWwg
aW50ZXJmYWNlcyBhbmQgaW1wbGVtZW50cyBzdGF0ZW1lbnRzIHdlCi0gICAgLy8gZW5jb3VudGVy
ZWQuCi0gICAgdGhpcy5jb2xsYXBzZV9wYXJ0aWFscygpOwotCi0gICAgZm9yICh2YXIgbGhzIGlu
IHRoaXNbImltcGxlbWVudHMiXSkKLSAgICB7Ci0gICAgICAgIHRoaXMucmVjdXJzaXZlbHlfZ2V0
X2ltcGxlbWVudHMobGhzKS5mb3JFYWNoKGZ1bmN0aW9uKHJocykKLSAgICAgICAgewotICAgICAg
ICAgICAgdmFyIGVyclN0ciA9IGxocyArICIgaW1wbGVtZW50cyAiICsgcmhzICsgIiwgYnV0ICI7
Ci0gICAgICAgICAgICBpZiAoIShsaHMgaW4gdGhpcy5tZW1iZXJzKSkgdGhyb3cgZXJyU3RyICsg
bGhzICsgIiBpcyB1bmRlZmluZWQuIjsKLSAgICAgICAgICAgIGlmICghKHRoaXMubWVtYmVyc1ts
aHNdIGluc3RhbmNlb2YgSWRsSW50ZXJmYWNlKSkgdGhyb3cgZXJyU3RyICsgbGhzICsgIiBpcyBu
b3QgYW4gaW50ZXJmYWNlLiI7Ci0gICAgICAgICAgICBpZiAoIShyaHMgaW4gdGhpcy5tZW1iZXJz
KSkgdGhyb3cgZXJyU3RyICsgcmhzICsgIiBpcyB1bmRlZmluZWQuIjsKLSAgICAgICAgICAgIGlm
ICghKHRoaXMubWVtYmVyc1tyaHNdIGluc3RhbmNlb2YgSWRsSW50ZXJmYWNlKSkgdGhyb3cgZXJy
U3RyICsgcmhzICsgIiBpcyBub3QgYW4gaW50ZXJmYWNlLiI7Ci0KLSAgICAgICAgICAgIGlmICh0
aGlzLm1lbWJlcnNbcmhzXS5tZW1iZXJzLmxlbmd0aCkgewotICAgICAgICAgICAgICAgIHRlc3Qo
ZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgICAgICB2YXIgY2xhc2ggPSB0aGlzLm1lbWJl
cnNbcmhzXS5tZW1iZXJzLmZpbmQoZnVuY3Rpb24obWVtYmVyKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gdGhpcy5tZW1iZXJzW2xoc10ubWVtYmVycy5maW5kKGZ1bmN0aW9uKG0p
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hcmVfZHVwbGljYXRl
X21lbWJlcnMobSwgbWVtYmVyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlz
KSk7Ci0gICAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgICAgICAgICAgICAg
ICAgIHRoaXMubWVtYmVyc1tyaHNdLm1lbWJlcnMuZm9yRWFjaChmdW5jdGlvbihtZW1iZXIpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWVtYmVyc1tsaHNdLm1lbWJlcnMucHVzaChu
ZXcgSWRsSW50ZXJmYWNlTWVtYmVyKG1lbWJlcikpOwotICAgICAgICAgICAgICAgICAgICB9LmJp
bmQodGhpcykpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSghY2xhc2gsICJtZW1i
ZXIgIiArIChjbGFzaCAmJiBjbGFzaC5uYW1lKSArICIgaXMgdW5pcXVlIik7Ci0gICAgICAgICAg
ICAgICAgfS5iaW5kKHRoaXMpLCBsaHMgKyAiIGltcGxlbWVudHMgIiArIHJocyArICI6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0uYmluZCh0aGlz
KSk7Ci0gICAgfQotICAgIHRoaXNbImltcGxlbWVudHMiXSA9IHt9OwotCi0gICAgZm9yICh2YXIg
bGhzIGluIHRoaXNbImluY2x1ZGVzIl0pCi0gICAgewotICAgICAgICB0aGlzLnJlY3Vyc2l2ZWx5
X2dldF9pbmNsdWRlcyhsaHMpLmZvckVhY2goZnVuY3Rpb24ocmhzKQotICAgICAgICB7Ci0gICAg
ICAgICAgICB2YXIgZXJyU3RyID0gbGhzICsgIiBpbmNsdWRlcyAiICsgcmhzICsgIiwgYnV0ICI7
Ci0gICAgICAgICAgICBpZiAoIShsaHMgaW4gdGhpcy5tZW1iZXJzKSkgdGhyb3cgZXJyU3RyICsg
bGhzICsgIiBpcyB1bmRlZmluZWQuIjsKLSAgICAgICAgICAgIGlmICghKHRoaXMubWVtYmVyc1ts
aHNdIGluc3RhbmNlb2YgSWRsSW50ZXJmYWNlKSkgdGhyb3cgZXJyU3RyICsgbGhzICsgIiBpcyBu
b3QgYW4gaW50ZXJmYWNlLiI7Ci0gICAgICAgICAgICBpZiAoIShyaHMgaW4gdGhpcy5tZW1iZXJz
KSkgdGhyb3cgZXJyU3RyICsgcmhzICsgIiBpcyB1bmRlZmluZWQuIjsKLSAgICAgICAgICAgIGlm
ICghKHRoaXMubWVtYmVyc1tyaHNdIGluc3RhbmNlb2YgSWRsSW50ZXJmYWNlKSkgdGhyb3cgZXJy
U3RyICsgcmhzICsgIiBpcyBub3QgYW4gaW50ZXJmYWNlLiI7Ci0KLSAgICAgICAgICAgIGlmICh0
aGlzLm1lbWJlcnNbcmhzXS5tZW1iZXJzLmxlbmd0aCkgewotICAgICAgICAgICAgICAgIHRlc3Qo
ZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgICAgICB2YXIgY2xhc2ggPSB0aGlzLm1lbWJl
cnNbcmhzXS5tZW1iZXJzLmZpbmQoZnVuY3Rpb24obWVtYmVyKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gdGhpcy5tZW1iZXJzW2xoc10ubWVtYmVycy5maW5kKGZ1bmN0aW9uKG0p
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hcmVfZHVwbGljYXRl
X21lbWJlcnMobSwgbWVtYmVyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlz
KSk7Ci0gICAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgICAgICAgICAgICAg
ICAgIHRoaXMubWVtYmVyc1tyaHNdLm1lbWJlcnMuZm9yRWFjaChmdW5jdGlvbihtZW1iZXIpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXMubWVtYmVyc1tsaHNdLm1lbWJlcnMuZXZlcnkobSA9PiAhdGhpcy5hcmVf
ZHVwbGljYXRlX21lbWJlcnMobSwgbWVtYmVyKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIm1lbWJlciAiICsgbWVtYmVyLm5hbWUgKyAiIGlzIHVuaXF1ZSIpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5tZW1iZXJzW2xoc10ubWVtYmVycy5wdXNoKG5ldyBJZGxJbnRlcmZh
Y2VNZW1iZXIobWVtYmVyKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7Ci0g
ICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKCFjbGFzaCwgIm1lbWJlciAiICsgKGNsYXNo
ICYmIGNsYXNoLm5hbWUpICsgIiBpcyB1bmlxdWUiKTsKLSAgICAgICAgICAgICAgICB9LmJpbmQo
dGhpcyksIGxocyArICIgaW5jbHVkZXMgIiArIHJocyArICI6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgfQotICAg
IHRoaXNbImluY2x1ZGVzIl0gPSB7fTsKKyAgICAvLyBGaXJzdCBtZXJnZSBpbiBhbGwgcGFydGlh
bCBkZWZpbml0aW9ucyBhbmQgaW50ZXJmYWNlIG1peGlucy4KKyAgICB0aGlzLm1lcmdlX3BhcnRp
YWxzKCk7CisgICAgdGhpcy5tZXJnZV9taXhpbnMoKTsKIAogICAgIC8vIEFzc2VydCBCIGRlZmlu
ZWQgZm9yIEEgOiBCCiAgICAgZm9yIChjb25zdCBtZW1iZXIgb2YgT2JqZWN0LnZhbHVlcyh0aGlz
Lm1lbWJlcnMpLmZpbHRlcihtID0+IG0uYmFzZSkpIHsKQEAgLTg4Niw3ICs3MTMsNyBAQCBJZGxB
cnJheS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIGlmICghcmhzX2lz
X2ludGVyZmFjZSkgdGhyb3cgbmV3IElkbEhhcm5lc3NFcnJvcihgJHtsaHN9IGluaGVyaXRzICR7
cmhzfSwgYnV0ICR7cmhzfSBpcyBub3QgYW4gaW50ZXJmYWNlLmApOwogICAgICAgICB9CiAgICAg
ICAgIC8vIENoZWNrIGZvciBjaXJjdWxhciBkZXBlbmRlbmNpZXMuCi0gICAgICAgIG1lbWJlci5n
ZXRfaW5oZXJpdGFuY2Vfc3RhY2soKTsKKyAgICAgICAgbWVtYmVyLmdldF9yZXZlcnNlX2luaGVy
aXRhbmNlX3N0YWNrKCk7CiAgICAgfQogCiAgICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMo
dGhpcy5tZW1iZXJzKS5mb3JFYWNoKGZ1bmN0aW9uKG1lbWJlck5hbWUpIHsKQEAgLTkyMSw3ICs3
NDgsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKICAgICB9CiB9Owog
Ci1JZGxBcnJheS5wcm90b3R5cGUuY29sbGFwc2VfcGFydGlhbHMgPSBmdW5jdGlvbigpCitJZGxB
cnJheS5wcm90b3R5cGUubWVyZ2VfcGFydGlhbHMgPSBmdW5jdGlvbigpCiB7CiAgICAgY29uc3Qg
dGVzdGVkUGFydGlhbHMgPSBuZXcgTWFwKCk7CiAgICAgdGhpcy5wYXJ0aWFscy5mb3JFYWNoKGZ1
bmN0aW9uKHBhcnNlZF9pZGwpCkBAIC0xMDE1LDYgKzg0MiwzOSBAQCBJZGxBcnJheS5wcm90b3R5
cGUuY29sbGFwc2VfcGFydGlhbHMgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5wYXJ0aWFscyA9IFtd
OwogfQogCitJZGxBcnJheS5wcm90b3R5cGUubWVyZ2VfbWl4aW5zID0gZnVuY3Rpb24oKQorewor
ICAgIGZvciAoY29uc3QgcGFyc2VkX2lkbCBvZiB0aGlzLmluY2x1ZGVzKQorICAgIHsKKyAgICAg
ICAgY29uc3QgbGhzID0gcGFyc2VkX2lkbC50YXJnZXQ7CisgICAgICAgIGNvbnN0IHJocyA9IHBh
cnNlZF9pZGwuaW5jbHVkZXM7CisKKyAgICAgICAgdmFyIGVyclN0ciA9IGxocyArICIgaW5jbHVk
ZXMgIiArIHJocyArICIsIGJ1dCAiOworICAgICAgICBpZiAoIShsaHMgaW4gdGhpcy5tZW1iZXJz
KSkgdGhyb3cgZXJyU3RyICsgbGhzICsgIiBpcyB1bmRlZmluZWQuIjsKKyAgICAgICAgaWYgKCEo
dGhpcy5tZW1iZXJzW2xoc10gaW5zdGFuY2VvZiBJZGxJbnRlcmZhY2UpKSB0aHJvdyBlcnJTdHIg
KyBsaHMgKyAiIGlzIG5vdCBhbiBpbnRlcmZhY2UuIjsKKyAgICAgICAgaWYgKCEocmhzIGluIHRo
aXMubWVtYmVycykpIHRocm93IGVyclN0ciArIHJocyArICIgaXMgdW5kZWZpbmVkLiI7CisgICAg
ICAgIGlmICghKHRoaXMubWVtYmVyc1tyaHNdIGluc3RhbmNlb2YgSWRsSW50ZXJmYWNlKSkgdGhy
b3cgZXJyU3RyICsgcmhzICsgIiBpcyBub3QgYW4gaW50ZXJmYWNlLiI7CisKKyAgICAgICAgaWYg
KHRoaXMubWVtYmVyc1tyaHNdLm1lbWJlcnMubGVuZ3RoKSB7CisgICAgICAgICAgICB0ZXN0KGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB2YXIgY2xhc2ggPSB0aGlzLm1lbWJlcnNbcmhz
XS5tZW1iZXJzLmZpbmQoZnVuY3Rpb24obWVtYmVyKSB7CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB0aGlzLm1lbWJlcnNbbGhzXS5tZW1iZXJzLmZpbmQoZnVuY3Rpb24obSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXJlX2R1cGxpY2F0ZV9tZW1iZXJzKG0sIG1l
bWJlcik7CisgICAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgICAgICAgICAg
ICAgfS5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgICAgICB0aGlzLm1lbWJlcnNbcmhzXS5tZW1i
ZXJzLmZvckVhY2goZnVuY3Rpb24obWVtYmVyKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF90cnVlKAorICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tZW1iZXJzW2xoc10ubWVtYmVy
cy5ldmVyeShtID0+ICF0aGlzLmFyZV9kdXBsaWNhdGVfbWVtYmVycyhtLCBtZW1iZXIpKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICJtZW1iZXIgIiArIG1lbWJlci5uYW1lICsgIiBpcyB1bmlx
dWUiKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5tZW1iZXJzW2xoc10ubWVtYmVycy5wdXNo
KG5ldyBJZGxJbnRlcmZhY2VNZW1iZXIobWVtYmVyKSk7CisgICAgICAgICAgICAgICAgfS5iaW5k
KHRoaXMpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSghY2xhc2gsICJtZW1iZXIgIiAr
IChjbGFzaCAmJiBjbGFzaC5uYW1lKSArICIgaXMgdW5pcXVlIik7CisgICAgICAgICAgICB9LmJp
bmQodGhpcyksIGxocyArICIgaW5jbHVkZXMgIiArIHJocyArICI6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgdGhpcy5pbmNsdWRlcyA9IFtdOworfQor
CiBJZGxBcnJheS5wcm90b3R5cGUuYXJlX2R1cGxpY2F0ZV9tZW1iZXJzID0gZnVuY3Rpb24obTEs
IG0yKSB7CiAgICAgaWYgKG0xLm5hbWUgIT09IG0yLm5hbWUpIHsKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMTExNiw3ICs5NzYsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUuYXNzZXJ0X3R5cGVf
aXMgPSBmdW5jdGlvbih2YWx1ZSwgdHlwZSkKIAogICAgIHN3aXRjaCh0eXBlKQogICAgIHsKLSAg
ICAgICAgY2FzZSAidm9pZCI6CisgICAgICAgIGNhc2UgInVuZGVmaW5lZCI6CiAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHZhbHVlLCB1bmRlZmluZWQpOwogICAgICAgICAgICAgcmV0dXJuOwog
CkBAIC0xMTcyLDcgKzEwMzIsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUuYXNzZXJ0X3R5cGVfaXMg
PSBmdW5jdGlvbih2YWx1ZSwgdHlwZSkKIAogICAgICAgICBjYXNlICJmbG9hdCI6CiAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiB2YWx1ZSwgIm51bWJlciIpOwotICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyh2YWx1ZSwgZnJvdW5kKHZhbHVlKSwgImZsb2F0IHJvdW5kZWQgdG8gMzIt
Yml0IGZsb2F0IHNob3VsZCBiZSBpdHNlbGYiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
dmFsdWUsIE1hdGguZnJvdW5kKHZhbHVlKSwgImZsb2F0IHJvdW5kZWQgdG8gMzItYml0IGZsb2F0
IHNob3VsZCBiZSBpdHNlbGYiKTsKICAgICAgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHZhbHVl
LCBJbmZpbml0eSk7CiAgICAgICAgICAgICBhc3NlcnRfbm90X2VxdWFscyh2YWx1ZSwgLUluZmlu
aXR5KTsKICAgICAgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHZhbHVlLCBOYU4pOwpAQCAtMTE4
OCw3ICsxMDQ4LDcgQEAgSWRsQXJyYXkucHJvdG90eXBlLmFzc2VydF90eXBlX2lzID0gZnVuY3Rp
b24odmFsdWUsIHR5cGUpCiAKICAgICAgICAgY2FzZSAidW5yZXN0cmljdGVkIGZsb2F0IjoKICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIHZhbHVlLCAibnVtYmVyIik7Ci0gICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHZhbHVlLCBmcm91bmQodmFsdWUpLCAidW5yZXN0cmljdGVkIGZs
b2F0IHJvdW5kZWQgdG8gMzItYml0IGZsb2F0IHNob3VsZCBiZSBpdHNlbGYiKTsKKyAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHModmFsdWUsIE1hdGguZnJvdW5kKHZhbHVlKSwgInVucmVzdHJpY3Rl
ZCBmbG9hdCByb3VuZGVkIHRvIDMyLWJpdCBmbG9hdCBzaG91bGQgYmUgaXRzZWxmIik7CiAgICAg
ICAgICAgICByZXR1cm47CiAKICAgICAgICAgY2FzZSAidW5yZXN0cmljdGVkIGRvdWJsZSI6CkBA
IC0xMjM2LDExICsxMDk2LDExIEBAIElkbEFycmF5LnByb3RvdHlwZS5hc3NlcnRfdHlwZV9pcyA9
IGZ1bmN0aW9uKHZhbHVlLCB0eXBlKQogICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHJ1biB0
aGUgZnVsbAogICAgICAgICAvLyBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfaW5zdGFuY2Vf
b2YsIGJlY2F1c2UgdGhhdCBjb3VsZCByZXN1bHQKICAgICAgICAgLy8gaW4gYW4gaW5maW5pdGUg
bG9vcC4gIFRPRE86IFRoaXMgbWVhbnMgd2UgZG9uJ3QgaGF2ZSB0ZXN0cyBmb3IKLSAgICAgICAg
Ly8gTm9JbnRlcmZhY2VPYmplY3QgaW50ZXJmYWNlcywgYW5kIHdlIGFsc28gY2FuJ3QgdGVzdCBv
YmplY3RzIHRoYXQKLSAgICAgICAgLy8gY29tZSBmcm9tIGFub3RoZXIgc2VsZi4KKyAgICAgICAg
Ly8gTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QgaW50ZXJmYWNlcywgYW5kIHdlIGFsc28gY2FuJ3Qg
dGVzdCBvYmplY3RzCisgICAgICAgIC8vIHRoYXQgY29tZSBmcm9tIGFub3RoZXIgc2VsZi4KICAg
ICAgICAgYXNzZXJ0X2luX2FycmF5KHR5cGVvZiB2YWx1ZSwgWyJvYmplY3QiLCAiZnVuY3Rpb24i
XSwgIndyb25nIHR5cGU6IG5vdCBvYmplY3Qgb3IgZnVuY3Rpb24iKTsKICAgICAgICAgaWYgKHZh
bHVlIGluc3RhbmNlb2YgT2JqZWN0Ci0gICAgICAgICYmICF0aGlzLm1lbWJlcnNbdHlwZV0uaGFz
X2V4dGVuZGVkX2F0dHJpYnV0ZSgiTm9JbnRlcmZhY2VPYmplY3QiKQorICAgICAgICAmJiAhdGhp
cy5tZW1iZXJzW3R5cGVdLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIkxlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0IikKICAgICAgICAgJiYgdHlwZSBpbiBzZWxmKQogICAgICAgICB7CiAgICAgICAgICAg
ICBhc3NlcnRfdHJ1ZSh2YWx1ZSBpbnN0YW5jZW9mIHNlbGZbdHlwZV0sICJpbnN0YW5jZW9mICIg
KyB0eXBlKTsKQEAgLTEzMTQsOCArMTE3NCw4IEBAIGZ1bmN0aW9uIElkbERpY3Rpb25hcnkob2Jq
KQogCiBJZGxEaWN0aW9uYXJ5LnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoSWRsT2JqZWN0LnBy
b3RvdHlwZSk7CiAKLUlkbERpY3Rpb25hcnkucHJvdG90eXBlLmdldF9pbmhlcml0YW5jZV9zdGFj
ayA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmdldF9p
bmhlcml0YW5jZV9zdGFjay5jYWxsKHRoaXMpOworSWRsRGljdGlvbmFyeS5wcm90b3R5cGUuZ2V0
X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2sgPSBmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gSWRs
SW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjay5jYWxsKHRo
aXMpOwogfTsKIAogLy8vIElkbEludGVyZmFjZSAvLy8KQEAgLTE0MTUsMTAgKzEyNzUsMTAgQEAg
SWRsSW50ZXJmYWNlLnByb3RvdHlwZS5zaG91bGRfaGF2ZV9pbnRlcmZhY2Vfb2JqZWN0ID0gZnVu
Y3Rpb24oKQogICAgIC8vIGVudmlyb25tZW50IGFuZDoKICAgICAvLyAqIGlzIGEgY2FsbGJhY2sg
aW50ZXJmYWNlIHRoYXQgaGFzIGNvbnN0YW50cyBkZWNsYXJlZCBvbiBpdCwgb3IKICAgICAvLyAq
IGlzIGEgbm9uLWNhbGxiYWNrIGludGVyZmFjZSB0aGF0IGlzIG5vdCBkZWNsYXJlZCB3aXRoIHRo
ZQotICAgIC8vICAgW05vSW50ZXJmYWNlT2JqZWN0XSBleHRlbmRlZCBhdHRyaWJ1dGUsCisgICAg
Ly8gICBbTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RdIGV4dGVuZGVkIGF0dHJpYnV0ZSwKICAgICAv
LyBhIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgTVVTVCBleGlzdCBvbiB0aGUgRUNNQVNjcmlwdCBn
bG9iYWwgb2JqZWN0LgogCi0gICAgcmV0dXJuIHRoaXMuaXNfY2FsbGJhY2soKSA/IHRoaXMuaGFz
X2NvbnN0YW50cygpIDogIXRoaXMuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiTm9JbnRlcmZhY2VP
YmplY3QiKTsKKyAgICByZXR1cm4gdGhpcy5pc19jYWxsYmFjaygpID8gdGhpcy5oYXNfY29uc3Rh
bnRzKCkgOiAhdGhpcy5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJMZWdhY3lOb0ludGVyZmFjZU9i
amVjdCIpOwogfTsKIAogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5hc3NlcnRfaW50ZXJmYWNlX29i
amVjdF9leGlzdHMgPSBmdW5jdGlvbigpCkBAIC0xNDI5LDcgKzEyODksNyBAQCBJZGxJbnRlcmZh
Y2UucHJvdG90eXBlLmFzc2VydF9pbnRlcmZhY2Vfb2JqZWN0X2V4aXN0cyA9IGZ1bmN0aW9uKCkK
IAogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfaW50ZXJmYWNlX29iamVjdCA9IGZ1bmN0aW9u
KCkgewogICAgIGlmICghdGhpcy5zaG91bGRfaGF2ZV9pbnRlcmZhY2Vfb2JqZWN0KCkpIHsKLSAg
ICAgICAgdmFyIHJlYXNvbiA9IHRoaXMuaXNfY2FsbGJhY2soKSA/ICJsYWNrIG9mIGRlY2xhcmVk
IGNvbnN0YW50cyIgOiAiZGVjbGFyZWQgW05vSW50ZXJmYWNlT2JqZWN0XSBhdHRyaWJ1dGUiOwor
ICAgICAgICB2YXIgcmVhc29uID0gdGhpcy5pc19jYWxsYmFjaygpID8gImxhY2sgb2YgZGVjbGFy
ZWQgY29uc3RhbnRzIiA6ICJkZWNsYXJlZCBbTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RdIGF0dHJp
YnV0ZSI7CiAgICAgICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJyb3IodGhpcy5uYW1lICsgIiBo
YXMgbm8gaW50ZXJmYWNlIG9iamVjdCBkdWUgdG8gIiArIHJlYXNvbik7CiAgICAgfQogCkBAIC0x
NDU3LDM5ICsxMzE3LDM5IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUuaGFzX2RlZmF1bHRfdG9f
anNvbl9yZWd1bGFyX29wZXJhdGlvbiA9IGZ1bmN0aW9uKCkgewogICAgIH0pOwogfTsKIAotSWRs
SW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfaW5oZXJpdGFuY2Vfc3RhY2sgPSBmdW5jdGlvbigpIHsK
LSAgICAvKioKLSAgICAgKiBTZWUgaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jY3Jl
YXRlLWFuLWluaGVyaXRhbmNlLXN0YWNrCi0gICAgICoKLSAgICAgKiBSZXR1cm5zIGFuIGFycmF5
IG9mIElkbEludGVyZmFjZSBvYmplY3RzIHdoaWNoIGNvbnRhaW5zIGl0c2VsZgotICAgICAqIGFu
ZCBhbGwgb2YgaXRzIGluaGVyaXRlZCBpbnRlcmZhY2VzLgotICAgICAqCi0gICAgICogU28gZ2l2
ZW46Ci0gICAgICoKLSAgICAgKiAgIEEgOiBCIHt9OwotICAgICAqICAgQiA6IEMge307Ci0gICAg
ICogICBDIHt9OwotICAgICAqCi0gICAgICogdGhlbiBBLmdldF9pbmhlcml0YW5jZV9zdGFjaygp
IHNob3VsZCByZXR1cm4gW0EsIEIsIENdLAotICAgICAqIGFuZCBCLmdldF9pbmhlcml0YW5jZV9z
dGFjaygpIHNob3VsZCByZXR1cm4gW0IsIENdLgotICAgICAqCi0gICAgICogTm90ZTogYXMgZGlj
dGlvbmFyeSBpbmhlcml0YW5jZSBpcyBleHByZXNzZWQgaWRlbnRpY2FsbHkgYnkgdGhlIEFTVCwK
LSAgICAgKiB0aGlzIHdvcmtzIGp1c3QgYXMgd2VsbCBmb3IgZ2V0dGluZyBhIHN0YWNrIG9mIGlu
aGVyaXRlZCBkaWN0aW9uYXJpZXMuCi0gICAgICovCi0KLSAgICB2YXIgc3RhY2sgPSBbdGhpc107
Ci0gICAgdmFyIGlkbF9pbnRlcmZhY2UgPSB0aGlzOworLyoqCisgKiBJbXBsZW1lbnRhdGlvbiBv
ZiBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNjcmVhdGUtYW4taW5oZXJpdGFuY2Ut
c3RhY2sKKyAqIHdpdGggdGhlIG9yZGVyIHJldmVyc2VkLgorICoKKyAqIFRoZSBvcmRlciBpcyBy
ZXZlcnNlZCBzbyB0aGF0IHRoZSBiYXNlIGNsYXNzIGNvbWVzIGZpcnN0IGluIHRoZSBsaXN0LCBi
ZWNhdXNlCisgKiB0aGlzIGlzIHdoYXQgYWxsIGNhbGwgc2l0ZXMgbmVlZC4KKyAqCisgKiBTbyBn
aXZlbjoKKyAqCisgKiAgIEEgOiBCIHt9OworICogICBCIDogQyB7fTsKKyAqICAgQyB7fTsKKyAq
CisgKiB0aGVuIEEuZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2soKSByZXR1cm5zIFtDLCBC
LCBBXSwKKyAqIGFuZCBCLmdldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrKCkgcmV0dXJucyBb
QywgQl0uCisgKgorICogTm90ZTogYXMgZGljdGlvbmFyeSBpbmhlcml0YW5jZSBpcyBleHByZXNz
ZWQgaWRlbnRpY2FsbHkgYnkgdGhlIEFTVCwKKyAqIHRoaXMgd29ya3MganVzdCBhcyB3ZWxsIGZv
ciBnZXR0aW5nIGEgc3RhY2sgb2YgaW5oZXJpdGVkIGRpY3Rpb25hcmllcy4KKyAqLworSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS5nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjayA9IGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHN0YWNrID0gW3RoaXNdOworICAgIGxldCBpZGxfaW50ZXJmYWNlID0g
dGhpczsKICAgICB3aGlsZSAoaWRsX2ludGVyZmFjZS5iYXNlKSB7Ci0gICAgICAgIHZhciBiYXNl
ID0gdGhpcy5hcnJheS5tZW1iZXJzW2lkbF9pbnRlcmZhY2UuYmFzZV07CisgICAgICAgIGNvbnN0
IGJhc2UgPSB0aGlzLmFycmF5Lm1lbWJlcnNbaWRsX2ludGVyZmFjZS5iYXNlXTsKICAgICAgICAg
aWYgKCFiYXNlKSB7CiAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoaWRsX2ludGVyZmFjZS50
eXBlICsgIiAiICsgaWRsX2ludGVyZmFjZS5iYXNlICsgIiBub3QgZm91bmQgKGluaGVyaXRlZCBi
eSAiICsgaWRsX2ludGVyZmFjZS5uYW1lICsgIikiKTsKICAgICAgICAgfSBlbHNlIGlmIChzdGFj
ay5pbmRleE9mKGJhc2UpID4gLTEpIHsKLSAgICAgICAgICAgIHN0YWNrLnB1c2goYmFzZSk7Ci0g
ICAgICAgICAgICBsZXQgZGVwX2NoYWluID0gc3RhY2subWFwKGkgPT4gaS5uYW1lKS5qb2luKCcs
Jyk7CisgICAgICAgICAgICBzdGFjay51bnNoaWZ0KGJhc2UpOworICAgICAgICAgICAgY29uc3Qg
ZGVwX2NoYWluID0gc3RhY2subWFwKGkgPT4gaS5uYW1lKS5qb2luKCcsJyk7CiAgICAgICAgICAg
ICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vycm9yKGAke3RoaXMubmFtZX0gaGFzIGEgY2lyY3VsYXIg
ZGVwZW5kZW5jeTogJHtkZXBfY2hhaW59YCk7CiAgICAgICAgIH0KICAgICAgICAgaWRsX2ludGVy
ZmFjZSA9IGJhc2U7Ci0gICAgICAgIHN0YWNrLnB1c2goaWRsX2ludGVyZmFjZSk7CisgICAgICAg
IHN0YWNrLnVuc2hpZnQoaWRsX2ludGVyZmFjZSk7CiAgICAgfQogICAgIHJldHVybiBzdGFjazsK
IH07CkBAIC0xNTAzLDc2ICsxMzYzLDI3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUuZ2V0X2lu
aGVyaXRhbmNlX3N0YWNrID0gZnVuY3Rpb24oKSB7CiAgKiBmb3IgaW5jbHVzaW9uIGluIHRoZSBk
ZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gZm9yIGVhc3kKICAqIGNvbXBhcmlzb24gd2l0aCBhY3R1
YWwgdmFsdWUKICAqLwotSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5kZWZhdWx0X3RvX2pzb25fb3Bl
cmF0aW9uID0gZnVuY3Rpb24oY2FsbGJhY2spIHsKLSAgICB2YXIgbWFwID0gbmV3IE1hcCgpLCBp
c0RlZmF1bHQgPSBmYWxzZTsKLSAgICB0aGlzLnRyYXZlcnNlX2luaGVyaXRlZF9hbmRfY29uc2Vx
dWVudGlhbF9pbnRlcmZhY2VzKGZ1bmN0aW9uKEkpIHsKK0lkbEludGVyZmFjZS5wcm90b3R5cGUu
ZGVmYXVsdF90b19qc29uX29wZXJhdGlvbiA9IGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IG1hcCA9
IG5ldyBNYXAoKQorICAgIGxldCBpc0RlZmF1bHQgPSBmYWxzZTsKKyAgICBmb3IgKGNvbnN0IEkg
b2YgdGhpcy5nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjaygpKSB7CiAgICAgICAgIGlmIChJ
Lmhhc19kZWZhdWx0X3RvX2pzb25fcmVndWxhcl9vcGVyYXRpb24oKSkgewogICAgICAgICAgICAg
aXNEZWZhdWx0ID0gdHJ1ZTsKLSAgICAgICAgICAgIEkubWVtYmVycy5mb3JFYWNoKGZ1bmN0aW9u
KG0pIHsKKyAgICAgICAgICAgIGZvciAoY29uc3QgbSBvZiBJLm1lbWJlcnMpIHsKICAgICAgICAg
ICAgICAgICBpZiAobS5zcGVjaWFsICE9PSAic3RhdGljIiAmJiBtLnR5cGUgPT0gImF0dHJpYnV0
ZSIgJiYgSS5hcnJheS5pc19qc29uX3R5cGUobS5pZGxUeXBlKSkgewogICAgICAgICAgICAgICAg
ICAgICBtYXAuc2V0KG0ubmFtZSwgbS5pZGxUeXBlKTsKICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmIChJLmhhc190b19q
c29uX3JlZ3VsYXJfb3BlcmF0aW9uKCkpIHsKICAgICAgICAgICAgIGlzRGVmYXVsdCA9IGZhbHNl
OwogICAgICAgICB9Ci0gICAgfSk7Ci0gICAgcmV0dXJuIGlzRGVmYXVsdCA/IG1hcCA6IG51bGw7
Ci19OwotCi0vKioKLSAqIFRyYXZlcnNlcyBpbmhlcml0ZWQgaW50ZXJmYWNlcyBmcm9tIHRoZSB0
b3AgZG93bgotICogYW5kIGltZXBsZW1lbnRlZCBpbnRlcmZhY2VzIGluc2lkZSBvdXQuCi0gKiBJ
bnZva2VzIHxjYWxsYmFja3wgb24gZWFjaCBpbnRlcmZhY2UuCi0gKgotICogVGhpcyBpcyBhbiBh
YnN0cmFjdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdHJhdmVyc2FsCi0gKiBhbGdvcml0aG0gc3Bl
Y2lmaWVkIGluOgotICogaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jY29sbGVjdC1h
dHRyaWJ1dGUtdmFsdWVzCi0gKiBHaXZlbiB0aGUgZm9sbG93aW5nIGluaGVyaXRhbmNlIHRyZWU6
Ci0gKgotICogICAgICAgICAgIEYKLSAqICAgICAgICAgICB8Ci0gKiAgICAgICBDICAgRSAtIEkK
LSAqICAgICAgIHwgICB8Ci0gKiAgICAgICBCIC0gRAotICogICAgICAgfAotICogICBHIC0gQSAt
IEggLSBKCi0gKgotICogSW52b2tpbmcgdHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50
aWFsX2ludGVyZmFjZXMoKSBvbiBBCi0gKiB3b3VsZCB0cmF2ZXJzZSB0aGUgdHJlZSBpbiB0aGUg
Zm9sbG93aW5nIG9yZGVyOgotICogQyAtPiBCIC0+IEYgLT4gRSAtPiBJIC0+IEQgLT4gQSAtPiBH
IC0+IEggLT4gSgotICovCi0KLUlkbEludGVyZmFjZS5wcm90b3R5cGUudHJhdmVyc2VfaW5oZXJp
dGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMgPSBmdW5jdGlvbihjYWxsYmFjaykgewot
ICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT0gImZ1bmN0aW9uIikgewotICAgICAgICB0aHJvdyBu
ZXcgVHlwZUVycm9yKCk7CiAgICAgfQotICAgIHZhciBzdGFjayA9IHRoaXMuZ2V0X2luaGVyaXRh
bmNlX3N0YWNrKCk7Ci0gICAgX3RyYXZlcnNlX2luaGVyaXRlZF9hbmRfY29uc2VxdWVudGlhbF9p
bnRlcmZhY2VzKHN0YWNrLCBjYWxsYmFjayk7CisgICAgcmV0dXJuIGlzRGVmYXVsdCA/IG1hcCA6
IG51bGw7CiB9OwogCi1mdW5jdGlvbiBfdHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50
aWFsX2ludGVyZmFjZXMoc3RhY2ssIGNhbGxiYWNrKSB7Ci0gICAgdmFyIEkgPSBzdGFjay5wb3Ao
KTsKLSAgICBjYWxsYmFjayhJKTsKLSAgICB2YXIgbWl4aW5zID0gSS5hcnJheVsiaW1wbGVtZW50
cyJdW0kubmFtZV0gfHwgSS5hcnJheVsiaW5jbHVkZXMiXVtJLm5hbWVdOwotICAgIGlmIChtaXhp
bnMpIHsKLSAgICAgICAgbWl4aW5zLmZvckVhY2goZnVuY3Rpb24oaWQpIHsKLSAgICAgICAgICAg
IHZhciBtaXhpbiA9IEkuYXJyYXkubWVtYmVyc1tpZF07Ci0gICAgICAgICAgICBpZiAoIW1peGlu
KSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbnRlcmZhY2UgIiArIGlkICsg
IiBub3QgZm91bmQgKGltcGxlbWVudGVkIGJ5ICIgKyBJLm5hbWUgKyAiKSIpOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgdmFyIGludGVyZmFjZXMgPSBtaXhpbi5nZXRfaW5oZXJpdGFuY2Vf
c3RhY2soKTsKLSAgICAgICAgICAgIF90cmF2ZXJzZV9pbmhlcml0ZWRfYW5kX2NvbnNlcXVlbnRp
YWxfaW50ZXJmYWNlcyhpbnRlcmZhY2VzLCBjYWxsYmFjayk7Ci0gICAgICAgIH0pOwotICAgIH0K
LSAgICBpZiAoc3RhY2subGVuZ3RoID4gMCkgewotICAgICAgICBfdHJhdmVyc2VfaW5oZXJpdGVk
X2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMoc3RhY2ssIGNhbGxiYWNrKTsKLSAgICB9Ci19
Ci0KIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKIHsKLSAgICBpZiAo
dGhpcy5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJOb0ludGVyZmFjZU9iamVjdCIpIHx8IHRoaXMu
aXNfbWl4aW4oKSkKKyAgICBpZiAodGhpcy5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJMZWdhY3lO
b0ludGVyZmFjZU9iamVjdCIpIHx8IHRoaXMuaXNfbWl4aW4oKSkKICAgICB7CiAgICAgICAgIC8v
IE5vIHRlc3RzIHRvIGRvIHdpdGhvdXQgYW4gaW5zdGFuY2UuICBUT0RPOiBXZSBzaG91bGQgc3Rp
bGwgYmUgYWJsZQogICAgICAgICAvLyB0byBydW4gdGVzdHMgb24gdGhlIHByb3RvdHlwZSBvYmpl
Y3QsIGlmIHdlIG9idGFpbiBvbmUgdGhyb3VnaCBzb21lCkBAIC0xNTgwLDEwICsxMzkxLDE2IEBA
IElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGlmICghdGhpcy5leHBvc2VkKSB7Ci0gICAgICAgIHN1YnNldFRlc3RC
eUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYXNzZXJ0X2Zh
bHNlKHRoaXMubmFtZSBpbiBzZWxmKTsKLSAgICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUg
KyAiIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmpl
Y3QiKTsKKyAgICAvLyBJZiB0aGUgaW50ZXJmYWNlIG9iamVjdCBpcyBub3QgZXhwb3NlZCwgb25s
eSB0ZXN0IHRoYXQuIE1lbWJlcnMgY2FuJ3QgYmUKKyAgICAvLyB0ZXN0ZWQgZWl0aGVyLCBidXQg
b2JqZWN0cyBjb3VsZCBzdGlsbCBiZSB0ZXN0ZWQgaW4gfHRlc3Rfb2JqZWN0fC4KKyAgICBpZiAo
IXRoaXMuZXhwb3NlZCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy51bnRlc3RlZCkKKyAgICAg
ICAgeworICAgICAgICAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHRoaXMubmFtZSBpbiBzZWxmKTsK
KyAgICAgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Iik7CisgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTYwMywyMyArMTQyMCwxNiBAQCBJZGxJbnRlcmZh
Y2UucHJvdG90eXBlLnRlc3QgPSBmdW5jdGlvbigpCiAgICAgdGhpcy50ZXN0X21lbWJlcnMoKTsK
IH07CiAKLS8vIFRoaXMgc3VwcG9ydHMgYm90aCBDb25zdHJ1Y3RvciBleHRlbmRlZCBhdHRyaWJ1
dGVzIGFuZCBjb25zdHJ1Y3RvcgotLy8gb3BlcmF0aW9ucyB1bnRpbCBhbGwgaWRsIGZyYWdtZW50
cyBoYXZlIGJlZW4gdXBkYXRlZC4KIElkbEludGVyZmFjZS5wcm90b3R5cGUuY29uc3RydWN0b3Jz
ID0gZnVuY3Rpb24oKQogewotICAgIHZhciBleHRlbmRlZEF0dHJpYnV0ZXMgPSB0aGlzLmV4dEF0
dHJzCi0gICAgICAgIC5maWx0ZXIoZnVuY3Rpb24oYXR0cikgeyByZXR1cm4gYXR0ci5uYW1lID09
ICJDb25zdHJ1Y3RvciI7IH0pOwotICAgIHZhciBvcGVyYXRpb25zID0gdGhpcy5tZW1iZXJzCisg
ICAgcmV0dXJuIHRoaXMubWVtYmVycwogICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uKG0pIHsgcmV0
dXJuIG0udHlwZSA9PSAiY29uc3RydWN0b3IiOyB9KTsKLSAgICByZXR1cm4gZXh0ZW5kZWRBdHRy
aWJ1dGVzLmNvbmNhdChvcGVyYXRpb25zKTsKIH0KIAogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50
ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiB7CiAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwg
dGVzdCwgZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiB0ZXN0cyBX
ZWJJREwgYXMgb2YgMjAxNS0wMS0xMy4KLQogICAgICAgICBpZiAoIXRoaXMuc2hvdWxkX2hhdmVf
aW50ZXJmYWNlX29iamVjdCgpKSB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAg
LTE2NjEsOCArMTQ3MSw2IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVu
Y3Rpb24oKQogCiAgICAgICAgIC8vICIqIEl0cyBbW0NvbnN0cnVjdF1dIGludGVybmFsIHByb3Bl
cnR5IGlzIHNldCBhcyBkZXNjcmliZWQgaW4KICAgICAgICAgLy8gICAgRUNNQS0yNjIgc2VjdGlv
biAxOS4yLjIuMy4iCi0gICAgICAgIC8vIFRlc3RlZCBiZWxvdyBpZiBubyBjb25zdHJ1Y3RvciBp
cyBkZWZpbmVkLiAgVE9ETzogdGVzdCBjb25zdHJ1Y3RvcnMKLSAgICAgICAgLy8gaWYgZGVmaW5l
ZC4KIAogICAgICAgICAvLyAiKiBJdHMgQEBoYXNJbnN0YW5jZSBwcm9wZXJ0eSBpcyBzZXQgYXMg
ZGVzY3JpYmVkIGluIEVDTUEtMjYyCiAgICAgICAgIC8vICAgIHNlY3Rpb24gMTkuMi4zLjgsIHVu
bGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkLiIKQEAgLTE2ODEsNyArMTQ4OSw3IEBAIElkbEludGVy
ZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgLy8gICAg
dmFsdWUgb2YgW1tQcm90b3R5cGVdXSBpcyB0aGUgaW50ZXJmYWNlIG9iamVjdCBmb3IgdGhhdCBv
dGhlcgogICAgICAgICAgICAgLy8gICAgaW50ZXJmYWNlLiIKICAgICAgICAgICAgIHZhciBpbmhl
cml0ZWRfaW50ZXJmYWNlID0gdGhpcy5hcnJheS5tZW1iZXJzW3RoaXMuYmFzZV07Ci0gICAgICAg
ICAgICBpZiAoIWluaGVyaXRlZF9pbnRlcmZhY2UuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiTm9J
bnRlcmZhY2VPYmplY3QiKSkgeworICAgICAgICAgICAgaWYgKCFpbmhlcml0ZWRfaW50ZXJmYWNl
Lmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIkxlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0IikpIHsKICAg
ICAgICAgICAgICAgICBpbmhlcml0ZWRfaW50ZXJmYWNlLmFzc2VydF9pbnRlcmZhY2Vfb2JqZWN0
X2V4aXN0cygpOwogICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocHJvdG90eXBlLCBpbmhl
cml0ZWRfaW50ZXJmYWNlLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAncHJvdG90eXBlIG9mICcgKyB0aGlzLm5hbWUgKyAnIGlzIG5vdCAnICsK
QEAgLTE2OTUsMTIgKzE1MDMsMTIgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm90b3R5cGUgb2Ygc2Vs
ZidzIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSArICIgaXMgbm90IEZ1bmN0
aW9uLnByb3RvdHlwZSIpOwogICAgICAgICB9CiAKKyAgICAgICAgLy8gQWx3YXlzIHRlc3QgZm9y
IFtbQ29uc3RydWN0XV06CisgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9oZXljYW0vd2Vi
aWRsL2lzc3Vlcy82OTgKKyAgICAgICAgYXNzZXJ0X3RydWUoaXNDb25zdHJ1Y3Rvcih0aGlzLmdl
dF9pbnRlcmZhY2Vfb2JqZWN0KCkpLCAiaW50ZXJmYWNlIG9iamVjdCBtdXN0IHBhc3MgSXNDb25z
dHJ1Y3RvciBjaGVjayIpOworCiAgICAgICAgIGlmICghdGhpcy5jb25zdHJ1Y3RvcnMoKS5sZW5n
dGgpIHsKLSAgICAgICAgICAgIC8vICJUaGUgaW50ZXJuYWwgW1tDYWxsXV0gbWV0aG9kIG9mIHRo
ZSBpbnRlcmZhY2Ugb2JqZWN0IGJlaGF2ZXMgYXMKLSAgICAgICAgICAgIC8vIGZvbGxvd3MgLiAu
IC4KLSAgICAgICAgICAgIC8vCi0gICAgICAgICAgICAvLyAiSWYgSSB3YXMgbm90IGRlY2xhcmVk
IHdpdGggYSBbQ29uc3RydWN0b3JdIGV4dGVuZGVkIGF0dHJpYnV0ZSwKLSAgICAgICAgICAgIC8v
IHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IuIgorICAgICAgICAgICAgLy8gIklmIEkgd2FzIG5vdCBk
ZWNsYXJlZCB3aXRoIGEgY29uc3RydWN0b3Igb3BlcmF0aW9uLCB0aGVuIHRocm93IGEgVHlwZUVy
cm9yLiIKICAgICAgICAgICAgIHZhciBpbnRlcmZhY2Vfb2JqZWN0ID0gdGhpcy5nZXRfaW50ZXJm
YWNlX29iamVjdCgpOwogICAgICAgICAgICAgYXNzZXJ0X3Rocm93c19qcyhnbG9iYWxPZihpbnRl
cmZhY2Vfb2JqZWN0KS5UeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIGlu
dGVyZmFjZV9vYmplY3QoKTsKQEAgLTE3NzMsNyArMTU4MSw3IEBAIElkbEludGVyZmFjZS5wcm90
b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgaWYgKCF0aGlzLmV4cG9z
dXJlU2V0LmhhcygiV2luZG93IikpIHsKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWRsSGFy
bmVzc0Vycm9yKCJJbnZhbGlkIElETDogTGVnYWN5V2luZG93QWxpYXMgZXh0ZW5kZWQgYXR0cmli
dXRlIG9uICIgKyB0aGlzLm5hbWUgKyAiIHdoaWNoIGlzIG5vdCBleHBvc2VkIGluIFdpbmRvdyIp
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gVE9ETzogd2hlbiB0ZXN0aW5nIG9mIFtO
b0ludGVyZmFjZU9iamVjdF0gaW50ZXJmYWNlcyBpcyBzdXBwb3J0ZWQsCisgICAgICAgICAgICAv
LyBUT0RPOiB3aGVuIHRlc3Rpbmcgb2YgW0xlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0XSBpbnRlcmZh
Y2VzIGlzIHN1cHBvcnRlZCwKICAgICAgICAgICAgIC8vIGNoZWNrIHRoYXQgaXQncyBub3Qgc3Bl
Y2lmaWVkIHRvZ2V0aGVyIHdpdGggTGVnYWN5V2luZG93QWxpYXMuCiAKICAgICAgICAgICAgIC8v
IFRPRE86IG1heWJlIGNoZWNrIHRoYXQgW0xlZ2FjeVdpbmRvd0FsaWFzXcKgaXMgbm90IHNwZWNp
ZmllZCBvbiBhIHBhcnRpYWwgaW50ZXJmYWNlLgpAQCAtMTk2Myw3ICsxNzcxLDcgQEAgSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAKICAgICAgICAgLy8gTmV4
dCwgdGVzdCB0aGF0IHRoZSBbW1Byb3RvdHlwZV1dIG9mIHRoZSBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdAogICAgICAgICAvLyBpcyBjb3JyZWN0LiAoVGhpcyBpcyBtYWRlIHNvbWV3aGF0IGRp
ZmZpY3VsdCBieSB0aGUgZXhpc3RlbmNlIG9mCi0gICAgICAgIC8vIFtOb0ludGVyZmFjZU9iamVj
dF0uKQorICAgICAgICAvLyBbTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RdLikKICAgICAgICAgLy8g
VE9ETzogQXJ5ZWggdGhpbmtzIHRoZXJlJ3MgYXQgbGVhc3Qgb3RoZXIgcGxhY2UgaW4gdGhpcyBm
aWxlIHdoZXJlCiAgICAgICAgIC8vICAgICAgIHdlIHRyeSB0byBmaWd1cmUgb3V0IGlmIGFuIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGlzCiAgICAgICAgIC8vICAgICAgIGNvcnJlY3QuIENv
bnNvbGlkYXRlIHRoYXQgY29kZS4KQEAgLTE5OTYsNyArMTgwNCw3IEBAIElkbEludGVyZmFjZS5w
cm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgaWYgKHRoaXMuYmFz
ZSkgewogICAgICAgICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNlID0gdGhpcy5iYXNlOwogICAg
ICAgICAgICAgICAgIHZhciBwYXJlbnQgPSB0aGlzLmFycmF5Lm1lbWJlcnNbaW5oZXJpdF9pbnRl
cmZhY2VdOwotICAgICAgICAgICAgICAgIGlmICghcGFyZW50Lmhhc19leHRlbmRlZF9hdHRyaWJ1
dGUoIk5vSW50ZXJmYWNlT2JqZWN0IikpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXBhcmVudC5o
YXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJMZWdhY3lOb0ludGVyZmFjZU9iamVjdCIpKSB7CiAgICAg
ICAgICAgICAgICAgICAgIHBhcmVudC5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMoKTsK
ICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdF9pbnRlcmZhY2VfaW50ZXJmYWNlX29iamVjdCA9
IHBhcmVudC5nZXRfaW50ZXJmYWNlX29iamVjdCgpOwogICAgICAgICAgICAgICAgIH0KQEAgLTIw
NzIsOCArMTg4MCw4IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rp
b24oKQogICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmpl
Y3QoKSwgInByb3RvdHlwZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludGVyZmFj
ZSAiJyArIHRoaXMubmFtZSArICciIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJwcm90b3R5
cGUiJyk7CiAKLSAgICAgICAgLy8gIklmIHRoZSBbTm9JbnRlcmZhY2VPYmplY3RdIGV4dGVuZGVk
IGF0dHJpYnV0ZSB3YXMgbm90IHNwZWNpZmllZCBvbgotICAgICAgICAvLyB0aGUgaW50ZXJmYWNl
LCB0aGVuIHRoZSBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtdXN0IGFsc28gaGF2ZSBhCisg
ICAgICAgIC8vICJJZiB0aGUgW0xlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0XSBleHRlbmRlZCBhdHRy
aWJ1dGUgd2FzIG5vdCBzcGVjaWZpZWQKKyAgICAgICAgLy8gb24gdGhlIGludGVyZmFjZSwgdGhl
biB0aGUgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBhbHNvIGhhdmUgYQogICAgICAg
ICAvLyBwcm9wZXJ0eSBuYW1lZCDigJxjb25zdHJ1Y3RvcuKAnSB3aXRoIGF0dHJpYnV0ZXMgeyBb
W1dyaXRhYmxlXV06IHRydWUsCiAgICAgICAgIC8vIFtbRW51bWVyYWJsZV1dOiBmYWxzZSwgW1tD
b25maWd1cmFibGVdXTogdHJ1ZSB9IHdob3NlIHZhbHVlIGlzIGEKICAgICAgICAgLy8gcmVmZXJl
bmNlIHRvIHRoZSBpbnRlcmZhY2Ugb2JqZWN0IGZvciB0aGUgaW50ZXJmYWNlLiIKQEAgLTI4MTgs
OSArMjYyNiw2IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9vYmplY3QgPSBmdW5jdGlv
bihkZXNjKQogICAgIHsKICAgICAgICAgLy8gUmVzdWx0IG9mIFtbSXNIVE1MRERBXV0gc2xvdAog
ICAgICAgICBleHBlY3RlZF90eXBlb2YgPSAidW5kZWZpbmVkIjsKLSAgICB9IGVsc2UgaWYgKHRo
aXMubWVtYmVycy5zb21lKGZ1bmN0aW9uKG1lbWJlcikgeyByZXR1cm4gbWVtYmVyLmxlZ2FjeWNh
bGxlcjsgfSkpCi0gICAgewotICAgICAgICBleHBlY3RlZF90eXBlb2YgPSAiZnVuY3Rpb24iOwog
ICAgIH0KICAgICBlbHNlCiAgICAgewpAQCAtMzA4MywxMSArMjg4OCw2IEBAIElkbEludGVyZmFj
ZS5wcm90b3R5cGUuZG9faW50ZXJmYWNlX2F0dHJpYnV0ZV9hc3NlcnRzID0gZnVuY3Rpb24ob2Jq
LCBtZW1iZXIsIGFfCiAKICAgICB2YXIgcGVuZGluZ1Byb21pc2VzID0gW107CiAKLSAgICAvLyAi
Rm9yIGVhY2ggZXhwb3NlZCBhdHRyaWJ1dGUgb2YgdGhlIGludGVyZmFjZSwgd2hldGhlciBpdCB3
YXMgZGVjbGFyZWQgb24KLSAgICAvLyB0aGUgaW50ZXJmYWNlIGl0c2VsZiBvciBvbmUgb2YgaXRz
IGNvbnNlcXVlbnRpYWwgaW50ZXJmYWNlcywgdGhlcmUgTVVTVAotICAgIC8vIGV4aXN0IGEgY29y
cmVzcG9uZGluZyBwcm9wZXJ0eS4gVGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGlzIHByb3BlcnR5
IGFyZQotICAgIC8vIGFzIGZvbGxvd3M6IgotCiAgICAgLy8gIlRoZSBuYW1lIG9mIHRoZSBwcm9w
ZXJ0eSBpcyB0aGUgaWRlbnRpZmllciBvZiB0aGUgYXR0cmlidXRlLiIKICAgICBhc3NlcnRfb3du
X3Byb3BlcnR5KG9iaiwgbWVtYmVyLm5hbWUpOwogCkBAIC0zNTQzLDggKzMzNDMsNiBAQCBJZGxO
YW1lc3BhY2UucHJvdG90eXBlLnRlc3QgPSBmdW5jdGlvbiAoKQogZnVuY3Rpb24gaWRsX3Rlc3Qo
c3JjcywgZGVwcywgaWRsX3NldHVwX2Z1bmMpIHsKICAgICByZXR1cm4gcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uICh0KSB7CiAgICAgICAgIHZhciBpZGxfYXJyYXkgPSBuZXcgSWRsQXJyYXkoKTsKLSAg
ICAgICAgc3JjcyA9IChzcmNzIGluc3RhbmNlb2YgQXJyYXkpID8gc3JjcyA6IFtzcmNzXSB8fCBb
XTsKLSAgICAgICAgZGVwcyA9IChkZXBzIGluc3RhbmNlb2YgQXJyYXkpID8gZGVwcyA6IFtkZXBz
XSB8fCBbXTsKICAgICAgICAgdmFyIHNldHVwX2Vycm9yID0gbnVsbDsKICAgICAgICAgY29uc3Qg
dmFsaWRhdGlvbklnbm9yZWQgPSBbCiAgICAgICAgICAgICAiY29uc3RydWN0b3ItbWVtYmVyIiwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2VzL3Rlc3Qtb25seS1hcGkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0LW9ubHktYXBpLmpzCmluZGV4IGVmNjZlMGU3
MzNmOWM2ODAwNDEyOWQyNGIzYzlhZDEyYjlhYTA3MDguLmE2NmViNDRlZGU3YzE1YTM3ZmIxYTNj
NWRkNWQyYWJjMTcxNzdjOGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtb25seS1hcGkuanMKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC1vbmx5
LWFwaS5qcwpAQCAtMjksNzIgKzI5LDMgQEAgZnVuY3Rpb24gbG9hZFNjcmlwdChwYXRoKSB7CiAg
ICAgcmV0dXJuIHA7CiAgIH0KIH0KLQotLyoqCi0gKiBBIGhlbHBlciBmb3IgQ2hyb21pdW0tYmFz
ZWQgYnJvd3NlcnMgdG8gbG9hZCBNb2pvIEpTIGJpbmRpbmdzCi0gKgotICogVGhpcyBpcyBhbiBh
c3luYyBmdW5jdGlvbiB0aGF0IHdvcmtzIGluIGJvdGggd29ya2VycyBhbmQgd2luZG93cy4gSXQg
Zmlyc3QKLSAqIGxvYWRzIG1vam9fYmluZGluZ3MuanMsIGRpc2FibGVzIGF1dG9tYXRpYyBkZXBl
bmRlbmN5IGxvYWRpbmcsIGFuZCBsb2FkcyBhbGwKLSAqIHJlc291cmNlcyBzZXF1ZW50aWFsbHku
IFRoZSBwcm9taXNlIHJlc29sdmVzIGlmIGV2ZXJ5dGhpbmcgbG9hZHMKLSAqIHN1Y2Nlc3NmdWxs
eSwgb3IgcmVqZWN0cyBpZiBhbnkgZXhjZXB0aW9uIGlzIHJhaXNlZC4gSWYgdGVzdGhhcm5lc3Mu
anMgaXMKLSAqIHVzZWQsIGFuIHVuY2F1Z2h0IGV4Y2VwdGlvbiB3aWxsIHRlcm1pbmF0ZSB0aGUg
dGVzdCB3aXRoIGEgaGFybmVzcyBlcnJvcgotICogKHVubGVzcyBgYWxsb3dfdW5jYXVnaHRfZXhj
ZXB0aW9uYCBpcyB0cnVlKSwgd2hpY2ggaXMgdXN1YWxseSB0aGUgZGVzaXJlZAotICogYmVoYXZp
b3VyLgotICoKLSAqIFRoaXMgZnVuY3Rpb24gYWxzbyB3b3JrcyB3aXRoIEJsaW5rIHdlYiB0ZXN0
cyBsb2FkZWQgZnJvbSBmaWxlOi8vLCBpbiB3aGljaAotICogY2FzZSBmaWxlOi8vIHdpbGwgYmUg
cHJlcGVuZGVkIHRvIGFsbCAnL2dlbi8uLi4nIFVSTHMuCi0gKgotICogT25seSBjYWxsIHRoaXMg
ZnVuY3Rpb24gaWYgaXNDaHJvbWl1bUJhc2VkID09PSB0cnVlLgotICoKLSAqIEBwYXJhbSB7QXJy
YXkuPHN0cmluZz59IHJlc291cmNlcyAtIEEgbGlzdCBvZiBzY3JpcHRzIHRvIGxvYWQ6IE1vam8g
SlMKLSAqICAgYmluZGluZ3Mgc2hvdWxkIGJlIG9mIHRoZSBmb3JtICcvZ2VuLy4uLyoubW9qb20u
anMnIG9yCi0gKiAgICcvZ2VuLy4uLyoubW9qb20tbGl0ZS5qcycgKHJlcXVpcmVzIGBsaXRlYCB0
byBiZSB0cnVlKTsgdGhlIG9yZGVyIGRvZXMgbm90Ci0gKiAgIG1hdHRlci4gRG8gbm90IGluY2x1
ZGUgJ21vam9fYmluZGluZ3MuanMnIG9yICdtb2pvX2JpbmRpbmdzX2xpdGUuanMnLgotICogQHBh
cmFtIHtib29sZWFuPX0gbGl0ZSAtIFdoZXRoZXIgdGhlIGxpdGUgYmluZGluZ3MgKCoubW9qb20t
bGl0ZS5qcykgYXJlIHVzZWQKLSAqICAgKGRlZmF1bHQgaXMgZmFsc2UpLgotICogQHJldHVybnMg
e1Byb21pc2V9Ci0gKi8KLWFzeW5jIGZ1bmN0aW9uIGxvYWRNb2pvUmVzb3VyY2VzKHJlc291cmNl
cywgbGl0ZSA9IGZhbHNlKSB7Ci0gIGlmICghaXNDaHJvbWl1bUJhc2VkKSB7Ci0gICAgdGhyb3cg
bmV3IEVycm9yKCdNb2pvSlMgbm90IGVuYWJsZWQ7IHN0YXJ0IENocm9tZSB3aXRoIC0tZW5hYmxl
LWJsaW5rLWZlYXR1cmVzPU1vam9KUyxNb2pvSlNUZXN0Jyk7Ci0gIH0KLSAgaWYgKHJlc291cmNl
cy5sZW5ndGggPT0gMCkgewotICAgIHJldHVybjsKLSAgfQotCi0gIGxldCBnZW5QcmVmaXggPSAn
JzsKLSAgaWYgKHNlbGYubG9jYXRpb24ucGF0aG5hbWUuaW5jbHVkZXMoJy93ZWJfdGVzdHMvJykp
IHsKLSAgICAvLyBCbGluayBpbnRlcm5hbCB3ZWIgdGVzdHMKLSAgICBnZW5QcmVmaXggPSAnZmls
ZTovLyc7Ci0gIH0KLQotICBmb3IgKGNvbnN0IHBhdGggb2YgcmVzb3VyY2VzKSB7Ci0gICAgLy8g
V2Ugd2FudCB0byBsb2FkIG1vam9fYmluZGluZ3MuanMgc2VwYXJhdGVseSB0byBzZXQgbW9qby5j
b25maWcuCi0gICAgaWYgKHBhdGguZW5kc1dpdGgoJy9tb2pvX2JpbmRpbmdzLmpzJykpIHsKLSAg
ICAgIHRocm93IG5ldyBFcnJvcignRG8gbm90IGxvYWQgbW9qb19iaW5kaW5ncy5qcyBleHBsaWNp
dGx5LicpOwotICAgIH0KLSAgICBpZiAocGF0aC5lbmRzV2l0aCgnL21vam9fYmluZGluZ3NfbGl0
ZS5qcycpKSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RvIG5vdCBsb2FkIG1vam9fYmluZGlu
Z3NfbGl0ZS5qcyBleHBsaWNpdGx5LicpOwotICAgIH0KLSAgICBpZiAobGl0ZSkgewotICAgICAg
aWYgKCEgL15cL2dlblwvLipcLm1vam9tLWxpdGVcLmpzJC8udGVzdChwYXRoKSkgewotICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCByZXNvdXJjZSBwYXRoOiAke3BhdGh9YCk7
Ci0gICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgIGlmICghIC9eXC9nZW5cLy4qXC5tb2pvbVwu
anMkLy50ZXN0KHBhdGgpKSB7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5yZWNvZ25pemVk
IHJlc291cmNlIHBhdGg6ICR7cGF0aH1gKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLQotICBpZiAo
bGl0ZSkgewotICAgIGF3YWl0IGxvYWRTY3JpcHQoZ2VuUHJlZml4ICsgJy9nZW4vbGF5b3V0X3Rl
c3RfZGF0YS9tb2pvL3B1YmxpYy9qcy9tb2pvX2JpbmRpbmdzX2xpdGUuanMnKTsKLSAgfSBlbHNl
IHsKLSAgICBhd2FpdCBsb2FkU2NyaXB0KGdlblByZWZpeCArICcvZ2VuL2xheW91dF90ZXN0X2Rh
dGEvbW9qby9wdWJsaWMvanMvbW9qb19iaW5kaW5ncy5qcycpOwotICAgIG1vam8uY29uZmlnLmF1
dG9Mb2FkTW9qb21EZXBzID0gZmFsc2U7Ci0gIH0KLQotICBmb3IgKGNvbnN0IHBhdGggb2YgcmVz
b3VyY2VzKSB7Ci0gICAgYXdhaXQgbG9hZFNjcmlwdChnZW5QcmVmaXggKyBwYXRoKTsKLSAgfQot
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZXMvdGVzdC9jb25mdGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvY29uZnRlc3QucHkKaW5kZXggMWJhZjY2
MjJiMDU5OWM0NGZiODVkMjY3Mjg4MDMxYTA1ZTQyNDNkYy4uNzQ0YTgwYzA4YmVmZWFhNGVhY2Jj
NTY3MTg2ZDNjN2UzZWUzNjM2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC9jb25mdGVzdC5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L2Nv
bmZ0ZXN0LnB5CkBAIC00LDEyICs0LDExIEBAIGltcG9ydCBvcwogaW1wb3J0IHNzbAogaW1wb3J0
IHN5cwogaW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCB1cmxsaWIKIAogaW1wb3J0IGh0bWw1bGli
CiBpbXBvcnQgcHkKIGltcG9ydCBweXRlc3QKLWZyb20gc2l4IGltcG9ydCB0ZXh0X3R5cGUKLWZy
b20gc2l4Lm1vdmVzIGltcG9ydCB1cmxsaWIKIAogZnJvbSB3cHRzZXJ2ZXIgaW1wb3J0IFdQVFNl
cnZlcgogCkBAIC0xOSw2ICsxOCw5IEBAIEhBUk5FU1MgPSBvcy5wYXRoLmpvaW4oSEVSRSwgJ2hh
cm5lc3MuaHRtbCcpCiBURVNUX1RZUEVTID0gKCdmdW5jdGlvbmFsJywgJ3VuaXQnKQogREVGQVVM
VF9WQVJJQU5UUyA9IFsiP2RlZmF1bHQiXQogCitzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5u
b3JtcGF0aChvcy5wYXRoLmpvaW4oV1BUX1JPT1QsICJ0b29scyIpKSkKK2ltcG9ydCBsb2NhbHBh
dGhzCisKIHN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGguam9pbihX
UFRfUk9PVCwgInRvb2xzIiwgIndlYmRyaXZlciIpKSkKIGltcG9ydCB3ZWJkcml2ZXIKIApAQCAt
MzksNyArNDEsMTEgQEAgZGVmIHB5dGVzdF9jb2xsZWN0X2ZpbGUocGF0aCwgcGFyZW50KToKICAg
ICAgICAgcmV0dXJuCiAgICAgdGVzdF90eXBlID0gdGVzdF90eXBlLnNwbGl0KG9zLnBhdGguc2Vw
KVsxXQogCi0gICAgcmV0dXJuIEhUTUxJdGVtKHN0cihwYXRoKSwgdGVzdF90eXBlLCBwYXJlbnQp
CisgICAgIyBIYW5kbGUgdGhlIGRlcHJlY2F0aW9uIG9mIE5vZGUgY29uc3RydWN0aW9uIGluIHB5
dGVzdDYKKyAgICAjIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL3N0YWJsZS9kZXByZWNhdGlv
bnMuaHRtbCNub2RlLWNvbnN0cnVjdGlvbi1jaGFuZ2VkLXRvLW5vZGUtZnJvbS1wYXJlbnQKKyAg
ICBpZiBoYXNhdHRyKEhUTUxJdGVtLCAiZnJvbV9wYXJlbnQiKToKKyAgICAgICAgcmV0dXJuIEhU
TUxJdGVtLmZyb21fcGFyZW50KHBhcmVudCwgZmlsZW5hbWU9c3RyKHBhdGgpLCB0ZXN0X3R5cGU9
dGVzdF90eXBlKQorICAgIHJldHVybiBIVE1MSXRlbShwYXJlbnQsIHN0cihwYXRoKSwgdGVzdF90
eXBlKQogCiAKIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CkBAIC01Niw4ICs2Miw2IEBA
IGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNhcGFiaWxpdGllcz1jYXBhYmlsaXRpZXMpCiAgICAgY29uZmlnLmFkZF9j
bGVhbnVwKGNvbmZpZy5kcml2ZXIuZW5kKQogCi0gICAgY29uZmlnLnNlcnZlciA9IFdQVFNlcnZl
cihXUFRfUk9PVCkKLSAgICBjb25maWcuc2VydmVyLnN0YXJ0KCkKICAgICAjIEFsdGhvdWdoIHRo
ZSBuYW1lIG9mIHRoZSBgX2NyZWF0ZV91bnZlcmlmaWVkX2NvbnRleHRgIG1ldGhvZCBzdWdnZXN0
cwogICAgICMgdGhhdCBpdCBpcyBub3QgaW50ZW5kZWQgZm9yIGV4dGVybmFsIGNvbnN1bXB0aW9u
LCB0aGUgc3RhbmRhcmQgbGlicmFyeSdzCiAgICAgIyBkb2N1bWVudGF0aW9uIGV4cGxpY2l0bHkg
ZW5kb3JzZXMgaXRzIHVzZToKQEAgLTY4LDYgKzcyLDkgQEAgZGVmIHB5dGVzdF9jb25maWd1cmUo
Y29uZmlnKToKICAgICAjCiAgICAgIyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8yL2xpYnJhcnkv
aHR0cGxpYi5odG1sI2h0dHBsaWIuSFRUUFNDb25uZWN0aW9uCiAgICAgY29uZmlnLnNzbF9jb250
ZXh0ID0gc3NsLl9jcmVhdGVfdW52ZXJpZmllZF9jb250ZXh0KCkKKworICAgIGNvbmZpZy5zZXJ2
ZXIgPSBXUFRTZXJ2ZXIoV1BUX1JPT1QpCisgICAgY29uZmlnLnNlcnZlci5zdGFydChjb25maWcu
c3NsX2NvbnRleHQpCiAgICAgY29uZmlnLmFkZF9jbGVhbnVwKGNvbmZpZy5zZXJ2ZXIuc3RvcCkK
IAogCkBAIC04Myw3ICs5MCw3IEBAIGRlZiByZXNvbHZlX3VyaShjb250ZXh0LCB1cmkpOgogCiAK
IGNsYXNzIEhUTUxJdGVtKHB5dGVzdC5JdGVtLCBweXRlc3QuQ29sbGVjdG9yKToKLSAgICBkZWYg
X19pbml0X18oc2VsZiwgZmlsZW5hbWUsIHRlc3RfdHlwZSwgcGFyZW50KToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgcGFyZW50LCBmaWxlbmFtZSwgdGVzdF90eXBlKToKICAgICAgICAgc2VsZi51
cmwgPSBwYXJlbnQuc2Vzc2lvbi5jb25maWcuc2VydmVyLnVybChmaWxlbmFtZSkKICAgICAgICAg
c2VsZi50eXBlID0gdGVzdF90eXBlCiAgICAgICAgIHNlbGYudmFyaWFudHMgPSBbXQpAQCAtMTA1
LDcgKzExMiw3IEBAIGNsYXNzIEhUTUxJdGVtKHB5dGVzdC5JdGVtLCBweXRlc3QuQ29sbGVjdG9y
KToKICAgICAgICAgaW5jbHVkZXNfdmFyaWFudHNfc2NyaXB0ID0gRmFsc2UKICAgICAgICAgc2Vs
Zi5leHBlY3RlZCA9IE5vbmUKIAotICAgICAgICBmb3IgZWxlbWVudCBpbiBwYXJzZWQuZ2V0aXRl
cmF0b3IoKToKKyAgICAgICAgZm9yIGVsZW1lbnQgaW4gcGFyc2VkLml0ZXIoKToKICAgICAgICAg
ICAgIGlmIG5vdCBuYW1lIGFuZCBlbGVtZW50LnRhZyA9PSAndGl0bGUnOgogICAgICAgICAgICAg
ICAgIG5hbWUgPSBlbGVtZW50LnRleHQKICAgICAgICAgICAgICAgICBjb250aW51ZQpAQCAtMTE0
LDcgKzEyMSwxMSBAQCBjbGFzcyBIVE1MSXRlbShweXRlc3QuSXRlbSwgcHl0ZXN0LkNvbGxlY3Rv
cik6CiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGlmIGVsZW1lbnQudGFn
ID09ICdzY3JpcHQnOgogICAgICAgICAgICAgICAgIGlmIGVsZW1lbnQuYXR0cmliLmdldCgnaWQn
KSA9PSAnZXhwZWN0ZWQnOgotICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkID0ganNv
bi5sb2Fkcyh0ZXh0X3R5cGUoZWxlbWVudC50ZXh0KSkKKyAgICAgICAgICAgICAgICAgICAgdHJ5
OgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHBlY3RlZCA9IGpzb24ubG9hZHMoZWxl
bWVudC50ZXh0KQorICAgICAgICAgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHByaW50KCJGYWlsZWQgcGFyc2luZyBKU09OIGluICVzIiAlIGZp
bGVuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UKIAogICAgICAgICAgICAgICAg
IHNyYyA9IGVsZW1lbnQuYXR0cmliLmdldCgnc3JjJywgJycpCiAKQEAgLTE5Miw2ICsyMDMsOCBA
QCBjbGFzcyBIVE1MSXRlbShweXRlc3QuSXRlbSwgcHl0ZXN0LkNvbGxlY3Rvcik6CiAgICAgICAg
IHRlc3RfdXJsID0gc2VsZi51cmwgKyB2YXJpYW50CiAgICAgICAgIGFjdHVhbCA9IGRyaXZlci5l
eGVjdXRlX2FzeW5jX3NjcmlwdCgncnVuVGVzdCgiJXMiLCAiZm9vIiwgYXJndW1lbnRzWzBdKScg
JSB0ZXN0X3VybCkKIAorICAgICAgICBwcmludChqc29uLmR1bXBzKGFjdHVhbCwgaW5kZW50PTIp
KQorCiAgICAgICAgIHN1bW1hcml6ZWQgPSBzZWxmLl9zdW1tYXJpemUoY29weS5kZWVwY29weShh
Y3R1YWwpKQogCiAgICAgICAgIHByaW50KGpzb24uZHVtcHMoc3VtbWFyaXplZCwgaW5kZW50PTIp
KQpAQCAtMjAzLDYgKzIxNiwxNyBAQCBjbGFzcyBIVE1MSXRlbShweXRlc3QuSXRlbSwgcHl0ZXN0
LkNvbGxlY3Rvcik6CiAKICAgICAgICAgc2VsZi5leHBlY3RlZFt1J3N1bW1hcml6ZWRfdGVzdHMn
XS5zb3J0KGtleT1sYW1iZGEgdGVzdF9vYmo6IHRlc3Rfb2JqLmdldCgnbmFtZScpKQogCisgICAg
ICAgICMgTWFrZSBhc3NlcnRzIG9wdC1pbiBmb3Igbm93CisgICAgICAgIGlmICJzdW1tYXJpemVk
X2Fzc2VydHMiIG5vdCBpbiBzZWxmLmV4cGVjdGVkOgorICAgICAgICAgICAgZGVsIHN1bW1hcml6
ZWRbInN1bW1hcml6ZWRfYXNzZXJ0cyJdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIFdl
IGNhbid0IGJlIHN1cmUgb2YgdGhlIG9yZGVyIG9mIGFzc2VydHMgZXZlbiB3aXRoaW4gdGhlIHNh
bWUgdGVzdAorICAgICAgICAgICAgIyBhbHRob3VnaCB3ZSBjb3VsZCBhbHNvIGNoZWNrIGZvciB0
aGUgZmFpbGluZyBhc3NlcnQgYmVpbmcgdGhlIGZpbmFsCisgICAgICAgICAgICAjIG9uZQorICAg
ICAgICAgICAgZm9yIG9iaiBpbiBbc3VtbWFyaXplZCwgc2VsZi5leHBlY3RlZF06CisgICAgICAg
ICAgICAgICAgb2JqWyJzdW1tYXJpemVkX2Fzc2VydHMiXS5zb3J0KAorICAgICAgICAgICAgICAg
ICAgICBrZXk9bGFtYmRhIHg6ICh4WyJ0ZXN0Il0gb3IgIiIsIHhbInN0YXR1cyJdLCB4WyJhc3Nl
cnRfbmFtZSJdLCB0dXBsZSh4WyJhcmdzIl0pKSkKKwogICAgICAgICBhc3NlcnQgc3VtbWFyaXpl
ZCA9PSBzZWxmLmV4cGVjdGVkCiAKICAgICBkZWYgX3N1bW1hcml6ZShzZWxmLCBhY3R1YWwpOgpA
QCAtMjEyLDYgKzIzNiwxMSBAQCBjbGFzcyBIVE1MSXRlbShweXRlc3QuSXRlbSwgcHl0ZXN0LkNv
bGxlY3Rvcik6CiAgICAgICAgIHN1bW1hcml6ZWRbdSdzdW1tYXJpemVkX3Rlc3RzJ10gPSBbCiAg
ICAgICAgICAgICBzZWxmLl9zdW1tYXJpemVfdGVzdCh0ZXN0KSBmb3IgdGVzdCBpbiBhY3R1YWxb
J3Rlc3RzJ11dCiAgICAgICAgIHN1bW1hcml6ZWRbdSdzdW1tYXJpemVkX3Rlc3RzJ10uc29ydChr
ZXk9bGFtYmRhIHRlc3Rfb2JqOiB0ZXN0X29iai5nZXQoJ25hbWUnKSkKKyAgICAgICAgc3VtbWFy
aXplZFt1J3N1bW1hcml6ZWRfYXNzZXJ0cyddID0gWworICAgICAgICAgICAgeyJhc3NlcnRfbmFt
ZSI6IGFzc2VydF9pdGVtWyJhc3NlcnRfbmFtZSJdLAorICAgICAgICAgICAgInRlc3QiOiBhc3Nl
cnRfaXRlbVsidGVzdCJdWyJuYW1lIl0gaWYgYXNzZXJ0X2l0ZW1bInRlc3QiXSBlbHNlIE5vbmUs
CisgICAgICAgICAgICAiYXJncyI6IGFzc2VydF9pdGVtWyJhcmdzIl0sCisgICAgICAgICAgICAi
c3RhdHVzIjogYXNzZXJ0X2l0ZW1bInN0YXR1cyJdfSBmb3IgYXNzZXJ0X2l0ZW0gaW4gYWN0dWFs
WyJhc3NlcnRzIl1dCiAgICAgICAgIHN1bW1hcml6ZWRbdSd0eXBlJ10gPSBhY3R1YWxbJ3R5cGUn
XQogCiAgICAgICAgIHJldHVybiBzdW1tYXJpemVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3JlcXVpcmVtZW50
cy50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291
cmNlcy90ZXN0L3JlcXVpcmVtZW50cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTVkODdjMzg3NTZjNWE2YzI0
OTRiOThhM2Q4MTVlMTAzZTljYzRlMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvcmVxdWlyZW1lbnRz
LnR4dApAQCAtMCwwICsxIEBACitodG1sNWxpYj09MS4xCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1
bmN0aW9uYWwvYXBpLXRlc3RzLTEuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9hcGktdGVzdHMt
MS5odG1sCmluZGV4IDIzN2I0ZWE4NzZlNTg5Y2I2ZTIzMTg3MmRjODE2ZDcxNzFlNDdjM2UuLjQx
YTc2NWY1NTc0NWMwYjhjN2Y0ODkxYWEyYjM0YzU4NjBhNzI1NjUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVz
dHMvZnVuY3Rpb25hbC9hcGktdGVzdHMtMS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9h
cGktdGVzdHMtMS5odG1sCkBAIC01NjIsNiArNTYyLDQzMSBAQAogICAgICAgInByb3BlcnRpZXMi
OiB7fQogICAgIH0KICAgXSwKKyAgInN1bW1hcml6ZWRfYXNzZXJ0cyI6IFsKKyAgICB7CisgICAg
ICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X3RydWUiLAorICAgICAgInRlc3QiOiAiU2V0dXAgZnVu
Y3Rpb24gcmFuIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAidHJ1ZSIKKyAgICAgIF0sCisg
ICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFz
c2VydF9hcnJheV9lcXVhbHMiLAorICAgICAgInRlc3QiOiAib25fZXZlbnQgZG9lcyBub3QgdXNl
IGV2ZW50IGNhcHR1cmUiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJbXCJpbm5lclwiLCBc
Im91dGVyXCJdIiwKKyAgICAgICAgIltcImlubmVyXCIsIFwib3V0ZXJcIl0iCisgICAgICBdLAor
ICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJh
c3NlcnRfZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImRvY3VtZW50LmJvZHkgc2hvdWxkIGJlIHRo
ZSBmaXJzdCBib2R5IGVsZW1lbnQgaW4gdGhlIGRvY3VtZW50IiwKKyAgICAgICJhcmdzIjogWwor
ICAgICAgICAiRWxlbWVudCBub2RlIDxib2R5IG9ubG9hZD1cImxvYWRfdGVzdF9hdHRyLmRvbmUo
KVwiPiA8aDE+U2FtcGxlIEhUTUw1IEFQLi4uIiwKKyAgICAgICAgIkVsZW1lbnQgbm9kZSA8Ym9k
eSBvbmxvYWQ9XCJsb2FkX3Rlc3RfYXR0ci5kb25lKClcIj4gPGgxPlNhbXBsZSBIVE1MNSBBUC4u
LiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFz
c2VydF9uYW1lIjogImFzc2VydF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiYXNzZXJ0X2VxdWFs
cyB0ZXN0cyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIjEiLAorICAgICAgICAiMSIKKyAg
ICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9u
YW1lIjogImFzc2VydF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiYXNzZXJ0X2VxdWFscyB0ZXN0
cyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIk5hTiIsCisgICAgICAgICJOYU4iLAorICAg
ICAgICAiXCJOYU4gY2FzZVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwK
KyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X2VxdWFscyIsCisgICAgICAidGVz
dCI6ICJhc3NlcnRfZXF1YWxzIHRlc3RzIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiMCIs
CisgICAgICAgICIwIiwKKyAgICAgICAgIlwiWmVybyBjYXNlXCIiCisgICAgICBdLAorICAgICAg
InN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRf
ZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF9lcXVhbHMgdGVzdHMgZXhwZWN0ZWQgdG8g
ZmFpbCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIi0wIiwKKyAgICAgICAgIjAiLAorICAg
ICAgICAiXCJaZXJvIGNhc2VcIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMQorICAgIH0s
CisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9ub3RfZXF1YWxzIiwKKyAgICAg
ICJ0ZXN0IjogImFzc2VydF9ub3RfZXF1YWxzIHRlc3RzIiwKKyAgICAgICJhcmdzIjogWworICAg
ICAgICAib2JqZWN0IFwiW29iamVjdCBPYmplY3RdXCIiLAorICAgICAgICAib2JqZWN0IFwiW29i
amVjdCBPYmplY3RdXCIiLAorICAgICAgICAiXCJvYmplY3QgY2FzZVwiIgorICAgICAgXSwKKyAg
ICAgICJzdGF0dXMiOiAwCisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNz
ZXJ0X25vdF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiYXNzZXJ0X25vdF9lcXVhbHMgdGVzdHMi
LAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICItMCIsCisgICAgICAgICIwIiwKKyAgICAgICAg
IlwiWmVybyBjYXNlXCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAg
IHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6ICJh
c3NlcnRfdHJ1ZSBleHBlY3RlZCB0byBwYXNzIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAi
dHJ1ZSIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAg
ImFzc2VydF9uYW1lIjogImFzc2VydF90cnVlIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF90cnVl
IGV4cGVjdGVkIHRvIGZhaWwiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJmYWxzZSIsCisg
ICAgICAgICJcImZhbHNlIHNob3VsZCBub3QgYmUgdHJ1ZVwiIgorICAgICAgXSwKKyAgICAgICJz
dGF0dXMiOiAxCisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X2Fy
cmF5X2VxdWFscyIsCisgICAgICAidGVzdCI6ICJiYXNpYyBhc3NlcnRfYXJyYXlfZXF1YWxzIHRl
c3QiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJbMSwgTmFOXSIsCisgICAgICAgICJbMSwg
TmFOXSIsCisgICAgICAgICJcIlsxLCBOYU5dIGlzIGVxdWFsIHRvIFsxLCBOYU5dXCIiCisgICAg
ICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFt
ZSI6ICJhc3NlcnRfYXJyYXlfZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF9hcnJheV9l
cXVhbHMgd2l0aCBmaXJzdCBwYXJhbSB1bmRlZmluZWQiLAorICAgICAgImFyZ3MiOiBbCisgICAg
ICAgICJ1bmRlZmluZWQiLAorICAgICAgICAiWzFdIiwKKyAgICAgICAgIlwidW5kZWZpbmVkIGVx
dWFscyBbMV0/XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsK
KyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfYXJyYXlfZXF1YWxzIiwKKyAgICAgICJ0ZXN0
IjogImFzc2VydF9hcnJheV9lcXVhbHMgd2l0aCBmaXJzdCBwYXJhbSB0cnVlIiwKKyAgICAgICJh
cmdzIjogWworICAgICAgICAidHJ1ZSIsCisgICAgICAgICJbMV0iLAorICAgICAgICAiXCJ0cnVl
IGVxdWFscyBbMV0/XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAg
IHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfYXJyYXlfZXF1YWxzIiwKKyAgICAgICJ0
ZXN0IjogImFzc2VydF9hcnJheV9lcXVhbHMgd2l0aCBmaXJzdCBwYXJhbSBmYWxzZSIsCisgICAg
ICAiYXJncyI6IFsKKyAgICAgICAgImZhbHNlIiwKKyAgICAgICAgIlsxXSIsCisgICAgICAgICJc
ImZhbHNlIGVxdWFscyBbMV0/XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9
LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfYXJyYXlfZXF1YWxzIiwKKyAg
ICAgICJ0ZXN0IjogImFzc2VydF9hcnJheV9lcXVhbHMgd2l0aCBmaXJzdCBwYXJhbSBudWxsIiwK
KyAgICAgICJhcmdzIjogWworICAgICAgICAibnVsbCIsCisgICAgICAgICJbMV0iLAorICAgICAg
ICAiXCJudWxsIGVxdWFscyBbMV0/XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAg
ICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfYXJyYXlfZXF1YWxzIiwK
KyAgICAgICJ0ZXN0IjogImFzc2VydF9hcnJheV9lcXVhbHMgd2l0aCBmaXJzdCBwYXJhbSAxIiwK
KyAgICAgICJhcmdzIjogWworICAgICAgICAiMSIsCisgICAgICAgICJbMV0iLAorICAgICAgICAi
XCIxIGVxdWFscyBbMV0/XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAor
ICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfYXJyYXlfYXBwcm94X2VxdWFscyIs
CisgICAgICAidGVzdCI6ICJiYXNpYyBhc3NlcnRfYXJyYXlfYXBwcm94X2VxdWFscyB0ZXN0IiwK
KyAgICAgICJhcmdzIjogWworICAgICAgICAiWzEwLCAxMV0iLAorICAgICAgICAiWzExLCAxMF0i
LAorICAgICAgICAiMSIsCisgICAgICAgICJcIlsxMCwgMTFdIGlzIGFwcHJveGltYXRlbHkgKCsv
LSAxKSBbMTEsIDEwXVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwKKyAg
ICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X2FwcHJveF9lcXVhbHMiLAorICAgICAg
InRlc3QiOiAiYmFzaWMgYXNzZXJ0X2FwcHJveF9lcXVhbHMgdGVzdCIsCisgICAgICAiYXJncyI6
IFsKKyAgICAgICAgIjEwIiwKKyAgICAgICAgIjExIiwKKyAgICAgICAgIjEiLAorICAgICAgICAi
XCIxMCBpcyBhcHByb3hpbWF0ZWx5ICgrLy0gMSkgMTFcIiIKKyAgICAgIF0sCisgICAgICAic3Rh
dHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9hcHBy
b3hfZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImJhc2ljIGFzc2VydF9sZXNzX3RoYW4gdGVzdCIs
CisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIjEwIiwKKyAgICAgICAgIjExIiwKKyAgICAgICAg
IjEiLAorICAgICAgICAiXCIxMCBpcyBhcHByb3hpbWF0ZWx5ICgrLy0gMSkgMTFcIiIKKyAgICAg
IF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1l
IjogImFzc2VydF9ncmVhdGVyX3RoYW4iLAorICAgICAgInRlc3QiOiAiYXNzZXJ0X2dyZWF0ZXJf
dGhhbiBleHBlY3RlZCB0byBmYWlsIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiMTAiLAor
ICAgICAgICAiMTEiLAorICAgICAgICAiXCIxMCBpcyBub3QgZ3JlYXRlciB0aGFuIDExXCIiCisg
ICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRf
bmFtZSI6ICJhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsIiwKKyAgICAgICJ0ZXN0IjogImJhc2lj
IGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwgdGVzdCIsCisgICAgICAiYXJncyI6IFsKKyAgICAg
ICAgIjEwIiwKKyAgICAgICAgIjEwIiwKKyAgICAgICAgIlwiMTAgaXMgZ3JlYXRlciB0aGFuIG9y
IGVxdWFsIHRvIDEwXCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAg
IHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsIiwKKyAg
ICAgICJ0ZXN0IjogImFzc2VydF9sZXNzX3RoYW5fZXF1YWwgZXhwZWN0ZWQgdG8gZmFpbCIsCisg
ICAgICAiYXJncyI6IFsKKyAgICAgICAgIlwiMTBcIiIsCisgICAgICAgICIxMCIsCisgICAgICAg
ICJcIicxMCcgaXMgbm90IGEgbnVtYmVyXCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEK
KyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfb3duX3Byb3BlcnR5
IiwKKyAgICAgICJ0ZXN0IjogInRlc3QgZm9yIGFzc2VydFtfbm90XV9vd25fcHJvcGVydHkgYW5k
IGluc2VydF9pbmhlcml0cyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIm9iamVjdCBcIltv
YmplY3QgT2JqZWN0XVwiIiwKKyAgICAgICAgIlwiYVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0
dXMiOiAwCisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X25vdF9v
d25fcHJvcGVydHkiLAorICAgICAgInRlc3QiOiAidGVzdCBmb3IgYXNzZXJ0W19ub3RdX293bl9w
cm9wZXJ0eSBhbmQgaW5zZXJ0X2luaGVyaXRzIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAi
b2JqZWN0IFwiW29iamVjdCBPYmplY3RdXCIiLAorICAgICAgICAiXCJiXCIiLAorICAgICAgICAi
XCJ1bmV4cGVjdGVkIHByb3BlcnR5IGZvdW5kOiBcXFwiYlxcXCJcIiIKKyAgICAgIF0sCisgICAg
ICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2Vy
dF9pbmhlcml0cyIsCisgICAgICAidGVzdCI6ICJ0ZXN0IGZvciBhc3NlcnRbX25vdF1fb3duX3By
b3BlcnR5IGFuZCBpbnNlcnRfaW5oZXJpdHMiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJv
YmplY3QgXCJbb2JqZWN0IE9iamVjdF1cIiIsCisgICAgICAgICJcImJcIiIKKyAgICAgIF0sCisg
ICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFz
c2VydF90aHJvd3NfZG9tIiwKKyAgICAgICJ0ZXN0IjogIlRlc3QgdGhyb3cgRE9NIGV4Y2VwdGlv
biIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIlwiTk9UX0ZPVU5EX0VSUlwiIiwKKyAgICAg
ICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24gKCkge2EucmVtb3ZlQ2hpbGQoYil9XCIiCisgICAgICBd
LAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6
ICJhc3NlcnRfdGhyb3dzX2pzIiwKKyAgICAgICJ0ZXN0IjogIlRlc3QgdGhyb3cgRE9NRXhjZXB0
aW9uIGFzIEpTIGV4Y2VwdGlvbiBleHBlY3RlZCB0byBmYWlsIiwKKyAgICAgICJhcmdzIjogWwor
ICAgICAgICAiZnVuY3Rpb24gXCJmdW5jdGlvbiBET01FeGNlcHRpb24oKSB7ICAgICBbbmF0aXZl
IGNvZGVdIH1cIiIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uICgpIHthLnJlbW92ZUNo
aWxkKGIpfVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAxCisgICAgfSwKKyAgICB7Cisg
ICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X3Rocm93c19qcyIsCisgICAgICAidGVzdCI6ICJU
ZXN0IHRocm93IFN5bnRheEVycm9yIERPTUV4Y2VwdGlvbiB3aGVyZSBKUyBTeW50YXhFcnJvciBl
eHBlY3RlZDsgZXhwZWN0ZWQgdG8gZmFpbCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgImZ1
bmN0aW9uIFwiZnVuY3Rpb24gU3ludGF4RXJyb3IoKSB7ICAgICBbbmF0aXZlIGNvZGVdIH1cIiIs
CisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uICgpIHtkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KFwiXCIpfVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAxCisgICAgfSwKKyAgICB7Cisg
ICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X3Rocm93c19qcyIsCisgICAgICAidGVzdCI6ICJU
ZXN0IHRocm93IEpTIFN5bnRheEVycm9yIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiZnVu
Y3Rpb24gXCJmdW5jdGlvbiBTeW50YXhFcnJvcigpIHsgICAgIFtuYXRpdmUgY29kZV0gfVwiIiwK
KyAgICAgICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24gKCkge0pTT04ucGFyc2UoXCJ7XCIpfVwiIgor
ICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0
X25hbWUiOiAiYXNzZXJ0X3Rocm93c19kb20iLAorICAgICAgInRlc3QiOiAiVGVzdCB0aHJvdyBE
T00gU3ludGF4RXJyb3IiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJcIlN5bnRheEVycm9y
XCIiLAorICAgICAgICAiZnVuY3Rpb24gXCJmdW5jdGlvbiAoKSB7ZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcihcIlwiKX1cIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAg
eworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90aHJvd3NfZG9tIiwKKyAgICAgICJ0ZXN0
IjogIlRlc3QgdGhyb3cgRE9NIFN5bnRheEVycm9yIGZyb20gc3ViZnJhbWUiLAorICAgICAgImFy
Z3MiOiBbCisgICAgICAgICJcIlN5bnRheEVycm9yXCIiLAorICAgICAgICAiZnVuY3Rpb24gXCJm
dW5jdGlvbiBET01FeGNlcHRpb24oKSB7ICAgICBbbmF0aXZlIGNvZGVdIH1cIiIsCisgICAgICAg
ICJmdW5jdGlvbiBcImZ1bmN0aW9uICgpIHtpZnIuY29udGVudERvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoXCJcIil9XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsK
KyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdGhyb3dzX2RvbSIsCisgICAgICAidGVzdCI6
ICJUZXN0IHRocm93IERPTSBTeW50YXhFcnJvciBmcm9tIHN1YmZyYW1lIHdpdGggaW5jb3JyZWN0
IGdsb2JhbCBleHBlY3RhdGlvbjsgZXhwZWN0ZWQgdG8gZmFpbCIsCisgICAgICAiYXJncyI6IFsK
KyAgICAgICAgIlwiU3ludGF4RXJyb3JcIiIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9u
ICgpIHtpZnIuY29udGVudERvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJcIil9XCIiCisgICAgICBd
LAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6
ICJhc3NlcnRfdGhyb3dzX2RvbSIsCisgICAgICAidGVzdCI6ICJUZXN0IHRocm93IERPTSBTeW50
YXhFcnJvciB3aXRoIGluY29ycmVjdCBleHBlY3RhdGlvbjsgZXhwZWN0ZWQgdG8gZmFpbCIsCisg
ICAgICAiYXJncyI6IFsKKyAgICAgICAgIlwiU3ludGF4RXJyb3JcIiIsCisgICAgICAgICJmdW5j
dGlvbiBcImZ1bmN0aW9uIERPTUV4Y2VwdGlvbigpIHsgICAgIFtuYXRpdmUgY29kZV0gfVwiIiwK
KyAgICAgICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24gKCkge2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
XCJcIil9XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAg
ICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdGhyb3dzX2RvbSIsCisgICAgICAidGVzdCI6ICJU
ZXN0IHRocm93IEpTIFN5bnRheEVycm9yIHdoZXJlIFN5bnRheEVycm9yIERPTUV4Y2VwdGlvbiBl
eHBlY3RlZDsgZXhwZWN0ZWQgdG8gZmFpbCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIlwi
U3ludGF4RXJyb3JcIiIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uICgpIHtKU09OLnBh
cnNlKFwie1wiKX1cIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMQorICAgIH0sCisgICAg
eworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90aHJvd3NfZG9tIiwKKyAgICAgICJ0ZXN0
IjogIlRlc3QgdGhyb3cgRE9NIGV4Y2VwdGlvbiBleHBlY3RlZCB0byBmYWlsIiwKKyAgICAgICJh
cmdzIjogWworICAgICAgICAiXCJOT1RfRk9VTkRfRVJSXCIiLAorICAgICAgICAiZnVuY3Rpb24g
XCJmdW5jdGlvbiAoKSB7YS5hcHBlbmRDaGlsZChiKX1cIiIKKyAgICAgIF0sCisgICAgICAic3Rh
dHVzIjogMQorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90aHJv
d3NfZG9tIiwKKyAgICAgICJ0ZXN0IjogIlRlc3QgYXNzZXJ0X3Rocm93c19kb20gd2l0aCBhbWJp
Z3VvdXMgRE9NLWV4Y2VwdGlvbiBleHBlY3RlZCB0byBGYWlsIiwKKyAgICAgICJhcmdzIjogWwor
ICAgICAgICAiMCIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uKCkge3Rocm93IGV9XCIi
CisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3Nl
cnRfbmFtZSI6ICJhc3NlcnRfdGhyb3dzX2RvbSIsCisgICAgICAidGVzdCI6ICJUZXN0IGFzc2Vy
dF90aHJvd3NfZG9tIHdpdGggbm9uLURPTS1leGNlcHRpb24gZXhwZWN0ZWQgdG8gRmFpbCIsCisg
ICAgICAiYXJncyI6IFsKKyAgICAgICAgIlwiVEVTVF9FUlJcIiIsCisgICAgICAgICJmdW5jdGlv
biBcImZ1bmN0aW9uKCkge3Rocm93IGV9XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEK
KyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdGhyb3dzX2RvbSIs
CisgICAgICAidGVzdCI6ICJUZXN0IGFzc2VydF90aHJvd3NfZG9tIHdpdGggbnVtYmVyIGNvZGUg
dmFsdWUgZXhwZWN0ZWQgdG8gUGFzcyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIjEyIiwK
KyAgICAgICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24oKSB7dGhyb3cgZX1cIiIKKyAgICAgIF0sCisg
ICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFz
c2VydF90aHJvd3NfZG9tIiwKKyAgICAgICJ0ZXN0IjogIlRlc3QgYXNzZXJ0X3Rocm93c19kb20g
d2l0aCBudW1iZXIgY29kZSB2YWx1ZSBhbmQgcmVhbCBET01FeGNlcHRpb24gZXhwZWN0ZWQgdG8g
UGFzcyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIjEyIiwKKyAgICAgICAgImZ1bmN0aW9u
IFwiZnVuY3Rpb24oKSB7dGhyb3cgZX1cIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAor
ICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9lcXVhbHMiLAorICAg
ICAgInRlc3QiOiAiVGVzdCB0aGF0IGRlZmluZXMgYSBnbG9iYWwgYW5kIGNsZWFucyBpdCB1cCIs
CisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIjEiLAorICAgICAgICAiMSIKKyAgICAgIF0sCisg
ICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFz
c2VydF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiVGVzdCB0aGF0IGNsZWFudXAgaGFuZGxlcnMg
ZnJvbSBwcmV2aW91cyB0ZXN0IHJhbiIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgInVuZGVm
aW5lZCIsCisgICAgICAgICJ1bmRlZmluZWQiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAK
KyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdHJ1ZSIsCisgICAg
ICAidGVzdCI6ICJUZXN0IHN0ZXBfZnVuYyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgInRy
dWUiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJh
c3NlcnRfbmFtZSI6ICJhc3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6ICJUZXN0IGFzeW5jIHRl
c3Qgd2l0aCBjYWxsYmFjayIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgInRydWUiCisgICAg
ICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFt
ZSI6ICJhc3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6ICJUZXN0IGFzeW5jIHRlc3Qgd2l0aCBj
YWxsYmFjayBhbmQgYHRoaXNgIG9iai4iLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJ0cnVl
IgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfQorICBdLAogICAidHlwZSI6ICJj
b21wbGV0ZSIKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2Fw
aS10ZXN0cy0yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvYXBpLXRlc3RzLTIuaHRtbAppbmRl
eCAwOGEyYjg5M2MyNDRkYWU0MDUxODc0OWFjNGI2YmRjY2FhMjg0YTAzLi5iYTdhMDhmNDhmZDdh
Yzg2YzkzODdlMDNiZjNkZjg4MTU1MDU3N2FhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9u
YWwvYXBpLXRlc3RzLTIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvYXBpLXRlc3RzLTIu
aHRtbApAQCAtNDAsNiArNDAsMjQgQEAgZG9uZSgpOwogICAgICAgIm1lc3NhZ2UiOiBudWxsCiAg
ICAgfQogICBdLAorICAic3VtbWFyaXplZF9hc3NlcnRzIjogWworICAgIHsKKyAgICAgICJhc3Nl
cnRfbmFtZSI6ICJhc3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6ICJUZXN0IGRlZmluZWQgYmVm
b3JlIG9ubG9hZCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgInRydWUiCisgICAgICBdLAor
ICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJh
c3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6ICJUZXN0IGRlZmluZWQgYWZ0ZXIgb25sb2FkIiwK
KyAgICAgICJhcmdzIjogWworICAgICAgICAidHJ1ZSIKKyAgICAgIF0sCisgICAgICAic3RhdHVz
IjogMAorICAgIH0KKyAgXSwKICAgInR5cGUiOiAiY29tcGxldGUiCiB9CiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbERpY3Rpb25hcnkvdGVz
dF9wYXJ0aWFsX2ludGVyZmFjZV9vZi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5l
c3MvSWRsRGljdGlvbmFyeS90ZXN0X3BhcnRpYWxfaW50ZXJmYWNlX29mLmh0bWwKaW5kZXggNWVl
M2ZlN2U4OTNmMTllZjMyOGMzYjVjOTk2YmY3YjQ3NTFiMmI3YS4uMDVlNmUwYjFlMDZjNjM0ZWMy
OTAwY2E0MzAyYjYxMWRkYTcyZWExNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lk
bGhhcm5lc3MvSWRsRGljdGlvbmFyeS90ZXN0X3BhcnRpYWxfaW50ZXJmYWNlX29mLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMv
dGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsRGljdGlvbmFyeS90ZXN0X3BhcnRp
YWxfaW50ZXJmYWNlX29mLmh0bWwKQEAgLTQxLDcgKzQxLDcgQEAKICAgICAgIGlkbEFycmF5LmFk
ZF9pZGxzKGAKICAgICAgICAgcGFydGlhbCBkaWN0aW9uYXJ5IEMge307CiAgICAgICAgIG5hbWVz
cGFjZSBDIHt9O2ApOwotICAgICAgaWRsQXJyYXkuY29sbGFwc2VfcGFydGlhbHMoKTsKKyAgICAg
IGlkbEFycmF5Lm1lcmdlX3BhcnRpYWxzKCk7CiAgICAgfSkoKTsKICAgPC9zY3JpcHQ+CiAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qc29uIiBpZD0iZXhwZWN0ZWQiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0
cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rlc3RfaW1tdXRhYmxlX3Byb3Rv
dHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rl
c3RfaW1tdXRhYmxlX3Byb3RvdHlwZS5odG1sCmluZGV4IDQwZjVkYmZjYzcxYTYyNjc1NDRhZWM1
YTc0YmVlY2RmOWZmMjBlZDYuLjU2MjVjN2Y1NTMwM2Y3M2E1YjIzMWE0OGFhYmE4NmQzMzljZjlj
OTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbEludGVyZmFj
ZS90ZXN0X2ltbXV0YWJsZV9wcm90b3R5cGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwv
aWRsaGFybmVzcy9JZGxJbnRlcmZhY2UvdGVzdF9pbW11dGFibGVfcHJvdG90eXBlLmh0bWwKQEAg
LTMzLDggKzMzLDggQEAgaWRsQXJyYXkuYWRkX2lkbHMoCiAgICAgIltHbG9iYWw9V2luZG93LCBF
eHBvc2VkPVdpbmRvd11cbiIgKwogICAgICJpbnRlcmZhY2UgV2luZG93IDogRXZlbnRUYXJnZXQg
e307XG4iICsKIAotICAgICJbR2xvYmFsPVdpbmRvdywgRXhwb3NlZD1XaW5kb3csIENvbnN0cnVj
dG9yKCldXG4iICsKLSAgICAiaW50ZXJmYWNlIEZvbyB7fTsiCisgICAgIltHbG9iYWw9V2luZG93
LCBFeHBvc2VkPVdpbmRvd11cbiIgKworICAgICJpbnRlcmZhY2UgRm9vIHsgY29uc3RydWN0b3Io
KTsgfTsiCiAgICk7CiBpZGxBcnJheS5hZGRfb2JqZWN0cyh7CiAgIEZvbzogWyJuZXcgRm9vKCki
XSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbEludGVyZmFj
ZS90ZXN0X2ludGVyZmFjZV9taXhpbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5l
c3MvSWRsSW50ZXJmYWNlL3Rlc3RfaW50ZXJmYWNlX21peGluLmh0bWwKaW5kZXggYTlhOTA5NGZl
MzBhYjUwODU3NDIyNDcwNzhlYzc5YWNhZTFhMDcxMS4uMWUyMmM0Zjg1YTVhMDRjNzJiYjQ5YzFl
MmZkNTc1OTA3N2UyNzdhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5l
c3MvSWRsSW50ZXJmYWNlL3Rlc3RfaW50ZXJmYWNlX21peGluLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9m
dW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rlc3RfaW50ZXJmYWNlX21peGluLmh0
bWwKQEAgLTE3LDMwICsxNyw1NiBAQAogICA8c2NyaXB0PgogICAgICJ1c2Ugc3RyaWN0IjsKIAot
ICAgIC8vIE5vIG9yaWdpbmFsIGV4aXN0ZW5jZQorICAgIC8vIFNpbXBsZSBpbmNsdWRlcyBzdGF0
ZW1lbnQgKHZhbGlkKQogICAgICgoKSA9PiB7CiAgICAgICBjb25zdCBpZGxBcnJheSA9IG5ldyBJ
ZGxBcnJheSgpOwotICAgICAgaWRsQXJyYXkuYWRkX2lkbHMoJ3BhcnRpYWwgaW50ZXJmYWNlIG1p
eGluIEEge307Jyk7Ci0gICAgICBpZGxBcnJheS50ZXN0KCk7CisgICAgICBpZGxBcnJheS5hZGRf
aWRscyhgCisgICAgICAgIFtFeHBvc2VkPVdpbmRvd10gaW50ZXJmYWNlIEkxIHt9OworICAgICAg
ICBpbnRlcmZhY2UgbWl4aW4gTTEgeyBhdHRyaWJ1dGUgYW55IGExOyB9OworICAgICAgICBJMSBp
bmNsdWRlcyBNMTtgKTsKKyAgICAgIGlkbEFycmF5Lm1lcmdlX3BhcnRpYWxzKCk7CisgICAgICBp
ZGxBcnJheS5tZXJnZV9taXhpbnMoKTsKKyAgICB9KSgpOworCisgICAgLy8gUGFydGlhbCBpbnRl
cmZhY2UgbWl4aW4gKHZhbGlkKQorICAgICgoKSA9PiB7CisgICAgICBjb25zdCBpZGxBcnJheSA9
IG5ldyBJZGxBcnJheSgpOworICAgICAgaWRsQXJyYXkuYWRkX2lkbHMoYAorICAgICAgICBbRXhw
b3NlZD1XaW5kb3ddIGludGVyZmFjZSBJMiB7fTsKKyAgICAgICAgaW50ZXJmYWNlIG1peGluIE0y
IHt9OworICAgICAgICBwYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBNMiB7IGF0dHJpYnV0ZSBhbnkg
YTI7IH07CisgICAgICAgIEkyIGluY2x1ZGVzIE0yO2ApOworICAgICAgaWRsQXJyYXkubWVyZ2Vf
cGFydGlhbHMoKTsKKyAgICAgIGlkbEFycmF5Lm1lcmdlX21peGlucygpOworICAgIH0pKCk7CisK
KyAgICAvLyBQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiB3aXRob3V0IG9yaWdpbmFsIG1peGluCisg
ICAgKCgpID0+IHsKKyAgICAgIGNvbnN0IGlkbEFycmF5ID0gbmV3IElkbEFycmF5KCk7CisgICAg
ICBpZGxBcnJheS5hZGRfaWRscygncGFydGlhbCBpbnRlcmZhY2UgbWl4aW4gTTMge307Jyk7Cisg
ICAgICBpZGxBcnJheS5tZXJnZV9wYXJ0aWFscygpOworICAgICAgaWRsQXJyYXkubWVyZ2VfbWl4
aW5zKCk7CiAgICAgfSkoKTsKIAotICAgIC8vIE5hbWUgY2xhc2ggKHBhcnRpYWxzKQorICAgIC8v
IE5hbWUgY2xhc2ggYmV0d2VlbiBtaXhpbiBhbmQgcGFydGlhbCBtaXhpbgogICAgICgoKSA9PiB7
CiAgICAgICBjb25zdCBpZGxBcnJheSA9IG5ldyBJZGxBcnJheSgpOwogICAgICAgaWRsQXJyYXku
YWRkX2lkbHMoYAotICAgICAgICBpbnRlcmZhY2UgbWl4aW4gQiB7IGF0dHJpYnV0ZSBhbnkgRjsg
fTsKLSAgICAgICAgcGFydGlhbCBpbnRlcmZhY2UgbWl4aW4gQiB7IGF0dHJpYnV0ZSBhbnkgRjsg
fTtgKTsKLSAgICAgIGlkbEFycmF5LmNvbGxhcHNlX3BhcnRpYWxzKCk7CisgICAgICAgIGludGVy
ZmFjZSBtaXhpbiBNNCB7IGF0dHJpYnV0ZSBhbnkgYTQ7IH07CisgICAgICAgIHBhcnRpYWwgaW50
ZXJmYWNlIG1peGluIE00IHsgYXR0cmlidXRlIGFueSBhNDsgfTtgKTsKKyAgICAgIGlkbEFycmF5
Lm1lcmdlX3BhcnRpYWxzKCk7CisgICAgICBpZGxBcnJheS5tZXJnZV9taXhpbnMoKTsKICAgICB9
KSgpOwogCi0gICAgLy8gTmFtZSBjbGFzaCAoZGlmZmVyZW50IG1peGlucykKKyAgICAvLyBOYW1l
IGNsYXNoIGJldHdlZW4gaW50ZXJmYWNlIGFuZCBtaXhpbgogICAgICgoKSA9PiB7CiAgICAgICBj
b25zdCBpZGxBcnJheSA9IG5ldyBJZGxBcnJheSgpOwogICAgICAgaWRsQXJyYXkuYWRkX3VudGVz
dGVkX2lkbHMoYAotICAgICAgICBpbnRlcmZhY2UgbWl4aW4gQyB7IGF0dHJpYnV0ZSBhbnkgRjsg
fTsKLSAgICAgICAgaW50ZXJmYWNlIEQgeyBhdHRyaWJ1dGUgYW55IEY7IH07Ci0gICAgICAgIEQg
aW5jbHVkZXMgQztgKTsKLSAgICAgIGlkbEFycmF5LnRlc3QoKTsKKyAgICAgICAgaW50ZXJmYWNl
IG1peGluIE01IHsgYXR0cmlidXRlIGFueSBhNTsgfTsKKyAgICAgICAgaW50ZXJmYWNlIEk1IHsg
YXR0cmlidXRlIGFueSBhNTsgfTsKKyAgICAgICAgSTUgaW5jbHVkZXMgTTU7YCk7CisgICAgICBp
ZGxBcnJheS5tZXJnZV9wYXJ0aWFscygpOworICAgICAgaWRsQXJyYXkubWVyZ2VfbWl4aW5zKCk7
CiAgICAgfSkoKTsKICAgPC9zY3JpcHQ+CiAgIDxzY3JpcHQgdHlwZT0idGV4dC9qc29uIiBpZD0i
ZXhwZWN0ZWQiPgpAQCAtNTEsMjggKzc3LDUyIEBACiAgIH0sCiAgICJzdW1tYXJpemVkX3Rlc3Rz
IjogWwogICAgIHsKLSAgICAgICJuYW1lIjogIlBhcnRpYWwgaW50ZXJmYWNlIG1peGluIEE6IG9y
aWdpbmFsIGludGVyZmFjZSBtaXhpbiBkZWZpbmVkIiwKKyAgICAgICJuYW1lIjogIkkxIGluY2x1
ZGVzIE0xOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSIsCisgICAgICAic3RhdHVzX3N0cmluZyI6
ICJQQVNTIiwKKyAgICAgICJwcm9wZXJ0aWVzIjoge30sCisgICAgICAibWVzc2FnZSI6IG51bGwK
KyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkkyIGluY2x1ZGVzIE0yOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZSIsCisgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKKyAgICAgICJw
cm9wZXJ0aWVzIjoge30sCisgICAgICAibWVzc2FnZSI6IG51bGwKKyAgICB9LAorICAgIHsKKyAg
ICAgICJuYW1lIjogIkk1IGluY2x1ZGVzIE01OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSIsCiAg
ICAgICAic3RhdHVzX3N0cmluZyI6ICJGQUlMIiwKICAgICAgICJwcm9wZXJ0aWVzIjoge30sCi0g
ICAgICAibWVzc2FnZSI6ICJhc3NlcnRfdHJ1ZTogT3JpZ2luYWwgaW50ZXJmYWNlIG1peGluIHNo
b3VsZCBiZSBkZWZpbmVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlIgorICAgICAgIm1lc3NhZ2Ui
OiAiYXNzZXJ0X3RydWU6IG1lbWJlciBhNSBpcyB1bmlxdWUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UiCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJQYXJ0aWFsIGludGVyZmFjZSBtaXhp
biBNMjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUiLAorICAgICAgInN0YXR1c19zdHJpbmciOiAi
UEFTUyIsCisgICAgICAicHJvcGVydGllcyI6IHt9LAorICAgICAgIm1lc3NhZ2UiOiBudWxsCiAg
ICAgfSwKICAgICB7Ci0gICAgICAibmFtZSI6ICJQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBCOiBv
cmlnaW5hbCBpbnRlcmZhY2UgbWl4aW4gZGVmaW5lZCIsCisgICAgICAibmFtZSI6ICJQYXJ0aWFs
IGludGVyZmFjZSBtaXhpbiBNMjogb3JpZ2luYWwgaW50ZXJmYWNlIG1peGluIGRlZmluZWQiLAog
ICAgICAgInN0YXR1c19zdHJpbmciOiAiUEFTUyIsCiAgICAgICAicHJvcGVydGllcyI6IHt9LAog
ICAgICAgIm1lc3NhZ2UiOiBudWxsCiAgICAgfSwKICAgICB7Ci0gICAgICAibmFtZSI6ICJQYXJ0
aWFsIGludGVyZmFjZSBtaXhpbiBCOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSIsCisgICAgICAi
bmFtZSI6ICJQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBNMzogb3JpZ2luYWwgaW50ZXJmYWNlIG1p
eGluIGRlZmluZWQiLAogICAgICAgInN0YXR1c19zdHJpbmciOiAiRkFJTCIsCiAgICAgICAicHJv
cGVydGllcyI6IHt9LAotICAgICAgIm1lc3NhZ2UiOiAiYXNzZXJ0X3RydWU6IG1lbWJlciBGIGlz
IHVuaXF1ZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZSIKKyAgICAgICJtZXNzYWdlIjogImFzc2Vy
dF90cnVlOiBPcmlnaW5hbCBpbnRlcmZhY2UgbWl4aW4gc2hvdWxkIGJlIGRlZmluZWQgZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UiCiAgICAgfSwKICAgICB7Ci0gICAgICAibmFtZSI6ICJEIGluY2x1
ZGVzIEM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIiwKKyAgICAgICJuYW1lIjogIlBhcnRpYWwg
aW50ZXJmYWNlIG1peGluIE00OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSIsCiAgICAgICAic3Rh
dHVzX3N0cmluZyI6ICJGQUlMIiwKICAgICAgICJwcm9wZXJ0aWVzIjoge30sCi0gICAgICAibWVz
c2FnZSI6ICJhc3NlcnRfdHJ1ZTogbWVtYmVyIEYgaXMgdW5pcXVlIGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlIgorICAgICAgIm1lc3NhZ2UiOiAiYXNzZXJ0X3RydWU6IG1lbWJlciBhNCBpcyB1bmlx
dWUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UiCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6
ICJQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBNNDogb3JpZ2luYWwgaW50ZXJmYWNlIG1peGluIGRl
ZmluZWQiLAorICAgICAgInN0YXR1c19zdHJpbmciOiAiUEFTUyIsCisgICAgICAicHJvcGVydGll
cyI6IHt9LAorICAgICAgIm1lc3NhZ2UiOiBudWxsCiAgICAgfQogICBdLAogICAidHlwZSI6ICJj
b21wbGV0ZSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbElu
dGVyZmFjZS90ZXN0X3BhcnRpYWxfaW50ZXJmYWNlX29mLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9u
YWwvaWRsaGFybmVzcy9JZGxJbnRlcmZhY2UvdGVzdF9wYXJ0aWFsX2ludGVyZmFjZV9vZi5odG1s
CmluZGV4IGQwZTgzYWY5NjY0MTBjMGE2ZDQxNTExOTQ4ZTUyNjJjODRhNDdjNDYuLjY3MTE5NmNj
NWRmZWRjMjE0MGFhYWNjZWJjYzZmZjBkNzEyN2UzNWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVu
Y3Rpb25hbC9pZGxoYXJuZXNzL0lkbEludGVyZmFjZS90ZXN0X3BhcnRpYWxfaW50ZXJmYWNlX29m
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rl
c3RfcGFydGlhbF9pbnRlcmZhY2Vfb2YuaHRtbApAQCAtMzksNyArMzksNyBAQAogCiAgICAgICAg
IFtFeHBvc2VkPShXb3JrZXIpXQogICAgICAgICBwYXJ0aWFsIGludGVyZmFjZSBDIHt9O2ApOwot
ICAgICAgaWRsQXJyYXkuY29sbGFwc2VfcGFydGlhbHMoKTsKKyAgICAgIGlkbEFycmF5Lm1lcmdl
X3BhcnRpYWxzKCk7CiAgICAgfSkoKTsKIAogICAgIC8vIEludmFsaWQgZXhwb3N1cmUKQEAgLTUx
LDcgKzUxLDcgQEAKICAgICAgIGlkbEFycmF5LmFkZF9pZGxzKGAKICAgICAgICAgW0V4cG9zZWQ9
KERlZGljYXRlZFdvcmtlcildCiAgICAgICAgIHBhcnRpYWwgaW50ZXJmYWNlIEQge307YCk7Ci0g
ICAgICBpZGxBcnJheS5jb2xsYXBzZV9wYXJ0aWFscygpOworICAgICAgaWRsQXJyYXkubWVyZ2Vf
cGFydGlhbHMoKTsKICAgICB9KSgpOwogCiAgICAgLy8gT3JpZ2luYWwgaXMgYSBuYW1lc3BhY2Us
IG5vdCBhbiBpbnRlcmZhY2UuCkBAIC02MCwxNCArNjAsMTQgQEAKICAgICAgIGlkbEFycmF5LmFk
ZF9pZGxzKGAKICAgICAgICAgcGFydGlhbCBpbnRlcmZhY2UgRSB7fTsKICAgICAgICAgbmFtZXNw
YWNlIEUge307YCk7Ci0gICAgICBpZGxBcnJheS5jb2xsYXBzZV9wYXJ0aWFscygpOworICAgICAg
aWRsQXJyYXkubWVyZ2VfcGFydGlhbHMoKTsKICAgICB9KSgpOwogCiAgICAgKCgpID0+IHsKICAg
ICAgIGNvbnN0IGlkbEFycmF5ID0gbmV3IElkbEFycmF5KCk7CiAgICAgICBpZGxBcnJheS5hZGRf
aWRscyhgCiAgICAgICAgIHBhcnRpYWwgaW50ZXJmYWNlIEYge307Ci0gICAgICAgIHBhcnRpYWwg
aW50ZXJmYWNlIG1peGluIEd7fTsKKyAgICAgICAgcGFydGlhbCBpbnRlcmZhY2UgbWl4aW4gRyB7
fTsKICAgICAgIGApOwogICAgICAgaWRsQXJyYXkuYWRkX2RlcGVuZGVuY3lfaWRscyhgCiAgICAg
ICAgIGludGVyZmFjZSBGIHt9OwpAQCAtODAsMTcgKzgwLDIwIEBACiAgICAgICAgIGludGVyZmFj
ZSBMIDogRiB7fTsKICAgICAgIGApOwogICAgICAgdGVzdCgoKSA9PiB7CisgICAgICAgIC8vIENv
bnZlcnQgaWRsQXJyYXkuaW5jbHVkZXMgaW50byBhIE1hcCBmcm9tIG5hbWUgb2YgdGFyZ2V0IGlu
dGVyZmFjZSB0bworICAgICAgICAvLyBuYW1lIG9mIGluY2x1ZGVkIG1peGluLiAoVGhpcyBhc3N1
bWVzIGVhY2ggaW50ZXJmYWNlIGluY2x1ZGVzIGF0IG1vc3QKKyAgICAgICAgLy8gb25lIG1peGlu
LCBvdGhlcndpc2UgbGF0ZXIgaW5jbHVkZXMgd291bGQgY2xvYmJlciBlYXJsaWVyIG9uZXMuKQor
ICAgICAgICBjb25zdCBpbmNsdWRlcyA9IG5ldyBNYXAoaWRsQXJyYXkuaW5jbHVkZXMubWFwKGkg
PT4gW2kudGFyZ2V0LCBpLmluY2x1ZGVzXSkpOwogICAgICAgICAvLyBGIGlzIHRlc3RlZCwgc28g
SCBpcyBhIGRlcC4KLSAgICAgICAgYXNzZXJ0X3RydWUoJ0YnIGluIGlkbEFycmF5LmluY2x1ZGVz
LCAnRnMgaW5jbHVkZXMgc2hvdWxkIGJlIHBpY2tlZCB1cCcpOwotICAgICAgICBhc3NlcnRfdHJ1
ZShpZGxBcnJheS5pbmNsdWRlcy5GLmluY2x1ZGVzKCdIJyksICdIIHNob3VsZCBiZSBwaWNrZWQg
dXAnKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhpbmNsdWRlcy5nZXQoJ0YnKSwgJ0gnLCAnRiBz
aG91bGQgYmUgcGlja2VkIHVwJyk7CiAgICAgICAgIC8vIEggaXMgbm90IHRlc3RlZCwgc28gSSBp
cyBub3QgYSBkZXAuCi0gICAgICAgIGFzc2VydF9mYWxzZSgnSScgaW4gaWRsQXJyYXkuaW5jbHVk
ZXMsICdJIHNob3VsZCBiZSBpZ25vcmVkJyk7CisgICAgICAgIGFzc2VydF9mYWxzZShpbmNsdWRl
cy5oYXMoJ0knKSwgJ0kgc2hvdWxkIGJlIGlnbm9yZWQnKTsKICAgICAgICAgLy8gRyBpcyBhIGRl
cCwgc28gSiBpcyBhIGRlcC4KLSAgICAgICAgYXNzZXJ0X3RydWUoJ0onIGluIGlkbEFycmF5Lmlu
Y2x1ZGVzLCAnSiBzaG91bGQgYmUgcGlja2VkIHVwJyk7Ci0gICAgICAgIC8vIEJ1dCwgSyBpc24n
dCBhIGRlcCBqdXN0IGJlY2F1c2Ugb2YgSi4KKyAgICAgICAgYXNzZXJ0X2VxdWFscyhpbmNsdWRl
cy5nZXQoJ0onKSwgJ0cnLCAnSiBzaG91bGQgYmUgcGlja2VkIHVwJyk7CisgICAgICAgIC8vIEsg
aXNuJ3QgYSBkZXAgYmVjYXVzZSBKIGlzbid0IGRlZmluZWQuCiAgICAgICAgIGFzc2VydF9mYWxz
ZSgnSycgaW4gaWRsQXJyYXkubWVtYmVycywgJ0sgc2hvdWxkIGJlIGlnbm9yZWQnKTsKLSAgICAg
ICAgLy8gTCBpbmhlcml0cyBGLCBzbyBzaG91bGQgYmUgcGlja2VkIHVwLgotICAgICAgICBhc3Nl
cnRfZmFsc2UoJ0wnIGluIGlkbEFycmF5Lm1lbWJlcnMsICdMIHNob3VsZCBiZSBwaWNrZWQgdXAn
KTsKKyAgICAgICAgLy8gTCBpc24ndCBhIGRlcCBiZWNhdXNlIEYgaXMgdW50ZXN0ZWQuCisgICAg
ICAgIGFzc2VydF9mYWxzZSgnTCcgaW4gaWRsQXJyYXkubWVtYmVycywgJ0wgc2hvdWxkIGJlIGln
bm9yZWQnKTsKICAgICAgIH0sICdwYXJ0aWFsIG1peGluIGRlcCBpbXBsaWNhdGlvbnMnKTsKICAg
ICB9KSgpOwogCkBAIC0xMDAsNyArMTAzLDcgQEAKICAgICAgIGlkbEFycmF5LmFkZF9pZGxzKGAK
ICAgICAgICAgaW50ZXJmYWNlIE0geyBhdHRyaWJ1dGUgYW55IEE7IH07CiAgICAgICAgIHBhcnRp
YWwgaW50ZXJmYWNlIE0geyBhdHRyaWJ1dGUgYW55IEE7IH07YCk7Ci0gICAgICBpZGxBcnJheS5j
b2xsYXBzZV9wYXJ0aWFscygpOworICAgICAgaWRsQXJyYXkubWVyZ2VfcGFydGlhbHMoKTsKICAg
ICB9KSgpOwogICA8L3NjcmlwdD4KICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2pzb24iIGlkPSJleHBl
Y3RlZCI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxJbnRl
cmZhY2UvdGVzdF9wcmltYXJ5X2ludGVyZmFjZV9vZi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFs
L2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rlc3RfcHJpbWFyeV9pbnRlcmZhY2Vfb2YuaHRtbApp
bmRleCA1Y2U0NTdjYWZkNGZhZmUyMjdkNGUwMDA4NTliMDliNjA0ZTkxNDE1Li5hYzRjMGIwMDBl
YjY5ZmNiYTY1YzdhOGE5NzBjYjdjYTlhNDdiZmZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0
aW9uYWwvaWRsaGFybmVzcy9JZGxJbnRlcmZhY2UvdGVzdF9wcmltYXJ5X2ludGVyZmFjZV9vZi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbEludGVyZmFjZS90ZXN0
X3ByaW1hcnlfaW50ZXJmYWNlX29mLmh0bWwKQEAgLTM0LDE0ICszNCwxMyBAQCBPYmplY3QuZGVm
aW5lUHJvcGVydHkod2luZG93LkZvby5wcm90b3R5cGUsICJjb25zdHJ1Y3RvciIsIHsKICAgICBj
b25maWd1cmFibGU6IHRydWUsCiAgICAgdmFsdWU6IHdpbmRvdy5Gb28KICAgfSk7Ci1Gb28uX19w
cm90b19fID0gRm9vUGFyZW50OworT2JqZWN0LnNldFByb3RvdHlwZU9mKEZvbywgRm9vUGFyZW50
KTsKIEZvby5wcm90b3R5cGVbU3ltYm9sLnRvU3RyaW5nVGFnXSA9ICJGb28iOwogCiB2YXIgaWRs
QXJyYXkgPSBuZXcgSWRsQXJyYXkoKTsKIGlkbEFycmF5LmFkZF91bnRlc3RlZF9pZGxzKCJpbnRl
cmZhY2UgRm9vUGFyZW50IHt9OyIpOwogaWRsQXJyYXkuYWRkX2lkbHMoCi0gICAgIltDb25zdHJ1
Y3RvcigpXVxuIiArCi0gICAgImludGVyZmFjZSBGb28gOiBGb29QYXJlbnQge307IgorICAgICJp
bnRlcmZhY2UgRm9vIDogRm9vUGFyZW50IHsgY29uc3RydWN0b3IoKTsgfTsiCiAgICk7CiBpZGxB
cnJheS5hZGRfb2JqZWN0cyh7CiAgIEZvbzogWyJuZXcgRm9vKCkiXSwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qv
dGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbE5hbWVzcGFjZS90ZXN0X2F0dHJpYnV0ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJj
ZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFtZXNwYWNlL3Rlc3RfYXR0
cmlidXRlLmh0bWwKaW5kZXggY2E1ZWRmNDcyM2Q1YjVjMjA1NWMyZjAyNGQ5NTFlOTgxMjRjOGNk
OS4uOWEwOGRkNDAwYzFkMmEyOWU2MGUzYWY2MjZmZTg4MzM0NzIxODUwMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFtZXNwYWNlL3Rlc3RfYXR0cmlidXRl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFtZXNwYWNlL3Rl
c3RfYXR0cmlidXRlLmh0bWwKQEAgLTcxLDYgKzcxLDE4IEBAIGlkbEFycmF5LnRlc3QoKTsKICAg
ICAgICJwcm9wZXJ0aWVzIjoge30sCiAgICAgICAibWVzc2FnZSI6IG51bGwKICAgICB9LAorICAg
IHsKKyAgICAgICJuYW1lIjogImZvbyBuYW1lc3BhY2U6IGhhcyBubyBsZW5ndGggcHJvcGVydHki
LAorICAgICAgInN0YXR1c19zdHJpbmciOiAiUEFTUyIsCisgICAgICAicHJvcGVydGllcyI6IHt9
LAorICAgICAgIm1lc3NhZ2UiOiBudWxsCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJm
b28gbmFtZXNwYWNlOiBoYXMgbm8gbmFtZSBwcm9wZXJ0eSIsCisgICAgICAic3RhdHVzX3N0cmlu
ZyI6ICJQQVNTIiwKKyAgICAgICJwcm9wZXJ0aWVzIjoge30sCisgICAgICAibWVzc2FnZSI6IG51
bGwKKyAgICB9LAogICAgIHsKICAgICAgICJuYW1lIjogImZvbyBuYW1lc3BhY2U6IGF0dHJpYnV0
ZSB0cnV0aCIsCiAgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qv
dGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbE5hbWVzcGFjZS90ZXN0X29wZXJhdGlvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJj
ZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFtZXNwYWNlL3Rlc3Rfb3Bl
cmF0aW9uLmh0bWwKaW5kZXggNjBkN2Q0N2M5ZWVhNjRhODFkNTM5YWZhNmZkM2FjZDcyNTgxYzAw
Yi4uNjc5OGZlOGNmYzY3NzNkMTIxYzljYmRjMWU1NTlmY2E0MzRhYzc1NyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFtZXNwYWNlL3Rlc3Rfb3BlcmF0aW9u
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFtZXNwYWNlL3Rl
c3Rfb3BlcmF0aW9uLmh0bWwKQEAgLTU4LDEzICs1OCwxMyBAQCB2YXIgaWRsQXJyYXkgPSBuZXcg
SWRsQXJyYXkoKTsKIGlkbEFycmF5LmFkZF9pZGxzKGAKIFtFeHBvc2VkPVdpbmRvd10KIG5hbWVz
cGFjZSBmb28gewotICB2b2lkIFRydXRoKCk7Ci0gIHZvaWQgTGllcygpOworICB1bmRlZmluZWQg
VHJ1dGgoKTsKKyAgdW5kZWZpbmVkIExpZXMoKTsKIH07CiBbRXhwb3NlZD1XaW5kb3ddCiBuYW1l
c3BhY2UgYmFyIHsKICAgW0xlZ2FjeVVuZm9yZ2VhYmxlXQotICB2b2lkIFRydXRoKCk7CisgIHVu
ZGVmaW5lZCBUcnV0aCgpOwogfTsKIFtFeHBvc2VkPVdpbmRvd10KIG5hbWVzcGFjZSBiYXogewpA
QCAtMTEwLDYgKzExMCwxOCBAQCBpZGxBcnJheS50ZXN0KCk7CiAgICAgICAicHJvcGVydGllcyI6
IHt9LAogICAgICAgIm1lc3NhZ2UiOiBudWxsCiAgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6
ICJmb28gbmFtZXNwYWNlOiBoYXMgbm8gbGVuZ3RoIHByb3BlcnR5IiwKKyAgICAgICJzdGF0dXNf
c3RyaW5nIjogIlBBU1MiLAorICAgICAgInByb3BlcnRpZXMiOiB7fSwKKyAgICAgICJtZXNzYWdl
IjogbnVsbAorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZm9vIG5hbWVzcGFjZTogaGFz
IG5vIG5hbWUgcHJvcGVydHkiLAorICAgICAgInN0YXR1c19zdHJpbmciOiAiUEFTUyIsCisgICAg
ICAicHJvcGVydGllcyI6IHt9LAorICAgICAgIm1lc3NhZ2UiOiBudWxsCisgICAgfSwKICAgICB7
CiAgICAgICAibmFtZSI6ICJmb28gbmFtZXNwYWNlOiBvcGVyYXRpb24gVHJ1dGgoKSIsCiAgICAg
ICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKQEAgLTEyMiw3ICsxMzQsNiBAQCBpZGxBcnJheS50
ZXN0KCk7CiAgICAgICAicHJvcGVydGllcyI6IHt9LAogICAgICAgIm1lc3NhZ2UiOiAiYXNzZXJ0
X293bl9wcm9wZXJ0eTogbmFtZXNwYWNlIG9iamVjdCBtaXNzaW5nIG9wZXJhdGlvbiBcIkxpZXNc
IiBleHBlY3RlZCBwcm9wZXJ0eSBcIkxpZXNcIiBtaXNzaW5nIgogICAgIH0sCi0KICAgICB7CiAg
ICAgICAibmFtZSI6ICJiYXIgbmFtZXNwYWNlOiBleHRlbmRlZCBhdHRyaWJ1dGVzIiwKICAgICAg
ICJzdGF0dXNfc3RyaW5nIjogIlBBU1MiLApAQCAtMTUzLDYgKzE2NCwxOCBAQCBpZGxBcnJheS50
ZXN0KCk7CiAgICAgICAicHJvcGVydGllcyI6IHt9LAogICAgICAgIm1lc3NhZ2UiOiBudWxsCiAg
ICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJiYXIgbmFtZXNwYWNlOiBoYXMgbm8gbGVuZ3Ro
IHByb3BlcnR5IiwKKyAgICAgICJzdGF0dXNfc3RyaW5nIjogIlBBU1MiLAorICAgICAgInByb3Bl
cnRpZXMiOiB7fSwKKyAgICAgICJtZXNzYWdlIjogbnVsbAorICAgIH0sCisgICAgeworICAgICAg
Im5hbWUiOiAiYmFyIG5hbWVzcGFjZTogaGFzIG5vIG5hbWUgcHJvcGVydHkiLAorICAgICAgInN0
YXR1c19zdHJpbmciOiAiUEFTUyIsCisgICAgICAicHJvcGVydGllcyI6IHt9LAorICAgICAgIm1l
c3NhZ2UiOiBudWxsCisgICAgfSwKICAgICB7CiAgICAgICAibmFtZSI6ICJiYXIgbmFtZXNwYWNl
OiBvcGVyYXRpb24gVHJ1dGgoKSIsCiAgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKQEAg
LTE5MCw2ICsyMTMsMTggQEAgaWRsQXJyYXkudGVzdCgpOwogICAgICAgInByb3BlcnRpZXMiOiB7
fSwKICAgICAgICJtZXNzYWdlIjogbnVsbAogICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAi
YmF6IG5hbWVzcGFjZTogaGFzIG5vIGxlbmd0aCBwcm9wZXJ0eSIsCisgICAgICAic3RhdHVzX3N0
cmluZyI6ICJQQVNTIiwKKyAgICAgICJwcm9wZXJ0aWVzIjoge30sCisgICAgICAibWVzc2FnZSI6
IG51bGwKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImJheiBuYW1lc3BhY2U6IGhhcyBu
byBuYW1lIHByb3BlcnR5IiwKKyAgICAgICJzdGF0dXNfc3RyaW5nIjogIlBBU1MiLAorICAgICAg
InByb3BlcnRpZXMiOiB7fSwKKyAgICAgICJtZXNzYWdlIjogbnVsbAorICAgIH0sCiAgICAgewog
ICAgICAgIm5hbWUiOiAiYmF6IG5hbWVzcGFjZTogb3BlcmF0aW9uIExvbmdTdG9yeShhbnksIERP
TVN0cmluZy4uLikiLAogICAgICAgInN0YXR1c19zdHJpbmciOiAiUEFTUyIsCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90
ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxOYW1lc3BhY2UvdGVzdF9wYXJ0aWFs
X25hbWVzcGFjZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFtZXNw
YWNlL3Rlc3RfcGFydGlhbF9uYW1lc3BhY2UuaHRtbAppbmRleCBjMzI3YThiMDAxZDI3ZTU0MmI2
YjVhODU4YTA0MDBhMDQyYjNkM2Y3Li5jNjhhZGZhOTQxNzczZGQwYzQ3ZWQzYTc1ODEyNTEzZThj
ODc0ODI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxOYW1l
c3BhY2UvdGVzdF9wYXJ0aWFsX25hbWVzcGFjZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25h
bC9pZGxoYXJuZXNzL0lkbE5hbWVzcGFjZS90ZXN0X3BhcnRpYWxfbmFtZXNwYWNlLmh0bWwKQEAg
LTQwLDcgKzQwLDcgQEAKIAogICAgICAgICBbRXhwb3NlZD0oV29ya2VyKV0KICAgICAgICAgcGFy
dGlhbCBuYW1lc3BhY2UgQyB7fTtgKTsKLSAgICAgIGlkbEFycmF5LmNvbGxhcHNlX3BhcnRpYWxz
KCk7CisgICAgICBpZGxBcnJheS5tZXJnZV9wYXJ0aWFscygpOwogICAgIH0pKCk7CiAKICAgICAv
LyBJbnZhbGlkIGV4cG9zdXJlCkBAIC01Miw3ICs1Miw3IEBACiAgICAgICBpZGxBcnJheS5hZGRf
aWRscyhgCiAgICAgICAgIFtFeHBvc2VkPShEZWRpY2F0ZWRXb3JrZXIpXQogICAgICAgICBwYXJ0
aWFsIG5hbWVzcGFjZSBEIHt9O2ApOwotICAgICAgaWRsQXJyYXkuY29sbGFwc2VfcGFydGlhbHMo
KTsKKyAgICAgIGlkbEFycmF5Lm1lcmdlX3BhcnRpYWxzKCk7CiAgICAgfSkoKTsKIAogICAgIC8v
IE9yaWdpbmFsIGlzIGFuIGludGVyZmFjZSwgbm90IGEgbmFtZXNwYWNlLgpAQCAtNjEsNyArNjEs
NyBAQAogICAgICAgaWRsQXJyYXkuYWRkX2lkbHMoYAogICAgICAgICBwYXJ0aWFsIG5hbWVzcGFj
ZSBFIHt9OwogICAgICAgICBpbnRlcmZhY2UgRSB7fTtgKTsKLSAgICAgIGlkbEFycmF5LmNvbGxh
cHNlX3BhcnRpYWxzKCk7CisgICAgICBpZGxBcnJheS5tZXJnZV9wYXJ0aWFscygpOwogICAgIH0p
KCk7CiAgIDwvc2NyaXB0PgogICA8c2NyaXB0IHR5cGU9InRleHQvanNvbiIgaWQ9ImV4cGVjdGVk
Ij4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9zZXR1cC1mdW5jdGlvbi13b3JrZXIu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvc2V0dXAtZnVuY3Rpb24td29ya2VyLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjgyYzE0NTZhYTY0NDcyNjczNjFkOGNjODllMjg4NDBmYzQ5MTNiNDYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291
cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvc2V0dXAtZnVuY3Rpb24td29ya2VyLmpzCkBAIC0w
LDAgKzEsMTQgQEAKK2ltcG9ydFNjcmlwdHMoIi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiKTsK
KworLy8gUmVncmVzc2lvbiB0ZXN0IGZvciBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC9pc3N1ZXMvMjcyOTksCisvLyB3aGVyZSB3ZSBicm9rZSB0aGUgYWJpbGl0eSBm
b3IgYSBzZXR1cCBmdW5jdGlvbiBpbiBhIHdvcmtlciB0byBjb250YWluIGFuCisvLyBhc3NlcnRp
b24gKGV2ZW4gYSBwYXNzaW5nIG9uZSkuCitzZXR1cChmdW5jdGlvbigpIHsKKyAgICBhc3NlcnRf
dHJ1ZSh0cnVlLCAiVHJ1ZSBpcyB0cnVlIik7Cit9KTsKKworLy8gV2UgbXVzdCBkZWZpbmUgYXQg
bGVhc3Qgb25lIHRlc3QgZm9yIHRoZSBoYXJuZXNzLCB0aG91Z2ggaXQgaXMgbm90IHdoYXQgd2UK
Ky8vIGFyZSB0ZXN0aW5nIGhlcmUuCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIGFzc2VydF9mYWxz
ZShmYWxzZSwgIkZhbHNlIGlzIGZhbHNlIik7Cit9LCAnV29ya2VyIHRlc3QnKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Vz
L3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9zZXR1cC13b3JrZXItc2VydmljZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0
cy9mdW5jdGlvbmFsL3NldHVwLXdvcmtlci1zZXJ2aWNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ5ZDlm
NTRlMDc3M2U0NWNkY2ZhNmZmZGNhZjBjZDVkMjk0OWNkMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qv
dGVzdHMvZnVuY3Rpb25hbC9zZXR1cC13b3JrZXItc2VydmljZS5odG1sCkBAIC0wLDAgKzEsODgg
QEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIG5hbWU9InZhcmlhbnQi
IGNvbnRlbnQ9Ij9rZWVwLXByb21pc2UiPgorPHRpdGxlPlNldHVwIGZ1bmN0aW9uIGluIGEgc2Vy
dmljZSB3b3JrZXI8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3ZhcmlhbnRzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGgxPlNldHVwIGZ1bmN0aW9uIGluIGEgc2VydmljZSB3b3JrZXI8
L2gxPgorPHA+VGhpcyB0ZXN0IGFzc3VtZXMgdGhhdCB0aGUgYnJvd3NlciBzdXBwb3J0cyA8YSBo
cmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9zZXJ2aWNlLXdvcmtlcnMvIj5TZXJ2aWNlV29ya2Vy
czwvYT4uCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorCis8c2NyaXB0PgordGVzdChmdW5jdGlvbih0
KSB7CisgICAgYXNzZXJ0X3RydWUoInNlcnZpY2VXb3JrZXIiIGluIG5hdmlnYXRvciwKKyAgICAg
ICAgICAgICAgICAibmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIgZXhpc3RzIik7Cit9LCAiQnJvd3Nl
ciBzdXBwb3J0cyBTZXJ2aWNlV29ya2VyIik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbigpIHsK
KyAgICAvLyBTaW5jZSB0aGUgc2VydmljZSB3b3JrZXIgcmVnaXN0cmF0aW9uIGNvdWxkIGJlIGlu
IGFuIGluZGV0ZXJtaW5hdGUKKyAgICAvLyBzdGF0ZSAoZHVlIHRvLCBmb3IgZXhhbXBsZSwgYSBw
cmV2aW91cyB0ZXN0IHJ1biBmYWlsaW5nKSwgd2Ugc3RhcnQgYnkKKyAgICAvLyB1bnJlZ3N0ZXJp
bmcgb3VyIHNlcnZpY2Ugd29ya2VyIGFuZCB0aGVuIHJlZ2lzdGVyaW5nIGl0IGFnYWluLgorICAg
IHZhciBzY29wZSA9ICJzZXJ2aWNlLXdvcmtlci1zY29wZSI7CisgICAgdmFyIHdvcmtlcl91cmwg
PSAic2V0dXAtZnVuY3Rpb24td29ya2VyLmpzIjsKKworICAgIHJldHVybiBuYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5yZWdpc3Rlcih3b3JrZXJfdXJsLCB7c2NvcGU6IHNjb3BlfSkKKyAgICAgICAg
LnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAgICAgICByZXR1cm4gcmVnaXN0
cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcih3b3JrZXJfdXJs
LCB7c2NvcGU6IHNjb3BlfSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9u
KSB7CisgICAgICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICAgICAgfSk7
CisKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7Cisg
ICAgICAgICAgICAgICAgcmVnaXN0cmF0aW9uLmFkZEV2ZW50TGlzdGVuZXIoInVwZGF0ZWZvdW5k
IiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVnaXN0cmF0aW9u
Lmluc3RhbGxpbmcpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0pLnRoZW4oZnVuY3Rpb24od29ya2VyKSB7CisgICAgICAgICAgICBmZXRjaF90ZXN0c19m
cm9tX3dvcmtlcih3b3JrZXIpOworICAgICAgICB9KTsKK30sICJSZWdpc3RlciBTZXJ2aWNlV29y
a2VyIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qc29uIiBpZD0iZXhwZWN0ZWQi
PgoreworICAic3VtbWFyaXplZF9zdGF0dXMiOiB7CisgICAgInN0YXR1c19zdHJpbmciOiAiT0si
LAorICAgICJtZXNzYWdlIjogbnVsbAorICB9LAorICAic3VtbWFyaXplZF90ZXN0cyI6IFsKKyAg
ICB7CisgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKKyAgICAgICJuYW1lIjogIkJyb3dz
ZXIgc3VwcG9ydHMgU2VydmljZVdvcmtlciIsCisgICAgICAicHJvcGVydGllcyI6IHt9LAorICAg
ICAgIm1lc3NhZ2UiOiBudWxsCisgICAgfSwKKyAgICB7CisgICAgICAibWVzc2FnZSI6IG51bGws
CisgICAgICAibmFtZSI6ICJSZWdpc3RlciBTZXJ2aWNlV29ya2VyIiwKKyAgICAgICJwcm9wZXJ0
aWVzIjoge30sCisgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIgorICAgIH0sCisgICAgewor
ICAgICAgIm1lc3NhZ2UiOiBudWxsLAorICAgICAgIm5hbWUiOiAiV29ya2VyIHRlc3QiLAorICAg
ICAgInByb3BlcnRpZXMiOiB7fSwKKyAgICAgICJzdGF0dXNfc3RyaW5nIjogIlBBU1MiCisgICAg
fQorICBdLAorICAic3VtbWFyaXplZF9hc3NlcnRzIjogWworICAgIHsKKyAgICAgICJhc3NlcnRf
bmFtZSI6ICJhc3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6ICJCcm93c2VyIHN1cHBvcnRzIFNl
cnZpY2VXb3JrZXIiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJ0cnVlIiwKKyAgICAgICAg
IlwibmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIgZXhpc3RzXCIiCisgICAgICBdLAorICAgICAgInN0
YXR1cyI6IDAKKyAgICB9CisgIF0sCisgICJ0eXBlIjogImNvbXBsZXRlIgorfQorPC9zY3JpcHQ+
Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90
ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvdzNjLWltcG9ydC5sb2cKaW5kZXggMTJiODBjMTMwNDg2YTMz
OGJkYzY2ODc3ZTU1ZThmZTliZDFjNTQ4NS4uYTA2YzNhNTI4MGQ2MjM4YjFiODkyYTU4ZDcwMWZk
ODlkYjAyMTBkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL3czYy1pbXBvcnQubG9n
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3Vy
Y2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC93M2MtaW1wb3J0LmxvZwpAQCAtNDIsNiArNDIsOCBA
QCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9wcm9taXNlLXdpdGgtc3luYy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJj
ZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL3Byb21pc2UuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25h
bC9xdWV1ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL3NldHVwLWZ1bmN0aW9uLXdvcmtlci5q
cworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Vz
L3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9zZXR1cC13b3JrZXItc2VydmljZS5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0
cy9mdW5jdGlvbmFsL3NpbmdsZS1wYWdlLXRlc3QtZmFpbC5odG1sCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlv
bmFsL3NpbmdsZS1wYWdlLXRlc3Qtbm8tYXNzZXJ0aW9ucy5odG1sCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlv
bmFsL3NpbmdsZS1wYWdlLXRlc3Qtbm8tYm9keS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3Vu
aXQvSWRsQXJyYXkvaXNfanNvbl90eXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsQXJyYXkvaXNf
anNvbl90eXBlLmh0bWwKaW5kZXggYWIwNjhiMjljYWMwZDcwODM0NzFkNWQ1MjVmYjRjMjcxMjRk
OWY3Ny4uYmQ4OWM5MTExMGQ4N2ZlY2ZiZTU2ZjYzOWYzNmQ4M2E1M2JkYmZmNSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMv
dGVzdC90ZXN0cy91bml0L0lkbEFycmF5L2lzX2pzb25fdHlwZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMv
dW5pdC9JZGxBcnJheS9pc19qc29uX3R5cGUuaHRtbApAQCAtMTMxLDE1ICsxMzEsMTAgQEAKICAg
ICB0ZXN0KGZ1bmN0aW9uKCkgewogICAgICAgICB2YXIgaWRsID0gbmV3IElkbEFycmF5KCk7CiAg
ICAgICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEZvbyB7IH07IGludGVyZmFj
ZSBtaXhpbiBCYXIgeyBET01TdHJpbmcgdG9KU09OKCk7IH07IEZvbyBpbmNsdWRlcyBCYXI7Jyk7
CisgICAgICAgIGlkbC5tZXJnZV9taXhpbnMoKTsKICAgICAgICAgYXNzZXJ0X3RydWUoaWRsLmlz
X2pzb25fdHlwZSh0eXBlRnJvbSgiRm9vIikpKTsKICAgICB9LCAnc2hvdWxkIHJldHVybiB0cnVl
IGZvciBpbnRlcmZhY2VzIHdoaWNoIG1peGluIGFuIGludGVyZmFjZSB3aGljaCBkZWNsYXJlIGEg
dG9KU09OIG9wZXJhdGlvbicpOwogCi0vLyAgICB0ZXN0KGZ1bmN0aW9uKCkgewotLy8gICAgICAg
IHZhciBpZGwgPSBuZXcgSWRsQXJyYXkoKTsKLS8vICAgICAgICBpZGwuYWRkX3VudGVzdGVkX2lk
bHMoJ2ludGVyZmFjZSBGb28geyB9OyBpbnRlcmZhY2UgQmFyIHsgfTsgaW50ZXJmYWNlIEJheiB7
IERPTVN0cmluZyB0b0pTT04oKTsgfTsgRm9vIGltcGxlbWVudHMgQmFyOyBCYXIgaW1wbGVtZW50
cyBCYXo7Jyk7Ci0vLyAgICAgICAgYXNzZXJ0X3RydWUoaWRsLmlzX2pzb25fdHlwZSh0eXBlRnJv
bSgiRm9vIikpKTsKLS8vICAgIH0sICdzaG91bGQgcmV0dXJuIHRydWUgZm9yIGludGVyZmFjZXMg
d2hpY2ggbWl4aW4gYW4gaW50ZXJmYWNlIHdoaWNoIGl0c2VsZiBtaXhlcyBpbiBhbiBpbnRlcmZh
Y2Ugd2hpY2ggZGVjbGFyZXMgYSB0b0pTT04gb3BlcmF0aW9uJyk7Ci0KICAgICB0ZXN0KGZ1bmN0
aW9uKCkgewogICAgICAgICB2YXIgaWRsID0gbmV3IElkbEFycmF5KCk7CiAgICAgICAgIGlkbC5h
ZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEZvbyB7IH07Jyk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rl
c3RzL3VuaXQvSWRsRGljdGlvbmFyeS9nZXRfaW5oZXJpdGFuY2Vfc3RhY2suaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVz
dHMvdW5pdC9JZGxEaWN0aW9uYXJ5L2dldF9pbmhlcml0YW5jZV9zdGFjay5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNTI1OTJkZDQ2MDdkYmRhNmNjMTc2MDMyNDlhMzhhZDUz
YjQwYzljLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qv
dGVzdHMvdW5pdC9JZGxEaWN0aW9uYXJ5L2dldF9pbmhlcml0YW5jZV9zdGFjay5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotPCFET0NUWVBFIEhUTUw+Ci08aHRtbD4KLTxoZWFk
PgotPHRpdGxlPklkbERpY3Rpb25hcnkucHJvdG90eXBlLmdldF9pbmhlcml0YW5jZV9zdGFjaygp
PC90aXRsZT4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL1dlYklETFBhcnNlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy9pZGxoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9pZGwt
aGVscGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0gICAgInVzZSBzdHJpY3QiOwotICAgIHRl
c3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBzdGFjayA9IGRpY3Rpb25hcnlGcm9tKCdkaWN0
aW9uYXJ5IEEgeyB9OycpLmdldF9pbmhlcml0YW5jZV9zdGFjaygpOwotICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKHN0YWNrLm1hcChkID0+IGQubmFtZSksIFsiQSJdKTsKLSAgICB9LCAnc2hv
dWxkIHJldHVybiBhbiBhcnJheSB0aGF0IGluY2x1ZGVzIGl0c2VsZi4nKTsKLQotICAgIHRlc3Qo
ZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBkID0gZGljdGlvbmFyeUZyb20oJ2RpY3Rpb25hcnkg
QSA6IEIgeyB9OycpOwotICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKEVycm9yLCBfID0+IGQuZ2V0
X2luaGVyaXRhbmNlX3N0YWNrKCkpOwotICAgIH0sICJzaG91bGQgdGhyb3cgZm9yIGRpY3Rpb25h
cmllcyB3aGljaCBpbmhlcml0IGZyb20gYW5vdGhlciBkaWN0aW9uYXJ5IHdoaWNoIHdhc24ndCBh
ZGRlZCB0byB0aGUgSWRsQXJyYXkiKTsKLQotICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAg
IHZhciBpZGwgPSBuZXcgSWRsQXJyYXkoKTsKLSAgICAgICAgaWRsLmFkZF9pZGxzKCdkaWN0aW9u
YXJ5IEEgOiBCIHsgfTsnKTsKLSAgICAgICAgaWRsLmFkZF91bnRlc3RlZF9pZGxzKCdkaWN0aW9u
YXJ5IEIgOiBDIHsgfTsgZGljdGlvbmFyeSBDIHsgfTsnKTsKLSAgICAgICAgdmFyIEEgPSBpZGwu
bWVtYmVyc1siQSJdOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKEEuZ2V0X2luaGVyaXRh
bmNlX3N0YWNrKCkubWFwKGQgPT4gZC5uYW1lKSwgWyJBIiwgIkIiLCAiQyJdKTsKLSAgICB9LCAn
c2hvdWxkIHJldHVybiBhbiBhcnJheSBvZiBpbmhlcml0ZWQgZGljdGlvbmFyaWVzIGluIG9yZGVy
IG9mIGluaGVyaXRhbmNlLCBzdGFydGluZyB3aXRoIGl0c2VsZi4nKTsKLQotICAgIHRlc3QoZnVu
Y3Rpb24gKCkgewotICAgICAgbGV0IGkgPSBuZXcgSWRsQXJyYXkoKTsKLSAgICAgIGkuYWRkX3Vu
dGVzdGVkX2lkbHMoJ2RpY3Rpb25hcnkgQSA6IEIge307Jyk7Ci0gICAgICBpLmFzc2VydF90aHJv
d3MobmV3IElkbEhhcm5lc3NFcnJvcignQSBpbmhlcml0cyBCLCBidXQgQiBpcyB1bmRlZmluZWQu
JyksIGkgPT4gaS50ZXN0KCkpOwotICAgIH0sICdBIDogQiB3aXRoIEIgdW5kZWNsYXJlZCBzaG91
bGQgdGhyb3cgSWRsSGFybmVzc0Vycm9yJyk7Ci0KLSAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKLSAg
ICAgIGxldCBpID0gbmV3IElkbEFycmF5KCk7Ci0gICAgICBpLmFkZF91bnRlc3RlZF9pZGxzKCdk
aWN0aW9uYXJ5IEEgOiBCIHt9OycpOwotICAgICAgaS5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJm
YWNlIEIge307Jyk7Ci0gICAgICBpLmFzc2VydF90aHJvd3MobmV3IElkbEhhcm5lc3NFcnJvcign
QSBpbmhlcml0cyBCLCBidXQgQSBpcyBub3QgYW4gaW50ZXJmYWNlLicpLCBpID0+IGkudGVzdCgp
KTsKLSAgICB9LCAnZGljdGlvbmFyeSBBIDogQiB3aXRoIEIgaW50ZXJmYWNlIHNob3VsZCB0aHJv
dyBJZGxIYXJuZXNzRXJyb3InKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJj
ZXMvdGVzdC90ZXN0cy91bml0L0lkbERpY3Rpb25hcnkvZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vf
c3RhY2suaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxEaWN0aW9uYXJ5L2dldF9yZXZlcnNlX2luaGVy
aXRhbmNlX3N0YWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDE4YmNkZWM5MmFjMjI4MjJlZjczYjljNDI0
OWU4MGNjNmFjZTZiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxEaWN0aW9u
YXJ5L2dldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrLmh0bWwKQEAgLTAsMCArMSw0NyBAQAor
PCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPklkbERpY3Rpb25hcnkucHJv
dG90eXBlLmdldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrKCk8L3RpdGxlPgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvV2ViSURMUGFy
c2VyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL2lkbGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2lkbC1oZWxwZXIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KKyAgICAidXNlIHN0cmljdCI7CisgICAgdGVzdChmdW5jdGlvbigpIHsKKyAg
ICAgICAgdmFyIHN0YWNrID0gZGljdGlvbmFyeUZyb20oJ2RpY3Rpb25hcnkgQSB7IH07JykuZ2V0
X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2soKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhzdGFjay5tYXAoZCA9PiBkLm5hbWUpLCBbIkEiXSk7CisgICAgfSwgJ3Nob3VsZCByZXR1cm4g
YW4gYXJyYXkgdGhhdCBpbmNsdWRlcyBpdHNlbGYuJyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uKCkg
eworICAgICAgICB2YXIgZCA9IGRpY3Rpb25hcnlGcm9tKCdkaWN0aW9uYXJ5IEEgOiBCIHsgfTsn
KTsKKyAgICAgICAgYXNzZXJ0X3Rocm93c19qcyhFcnJvciwgXyA9PiBkLmdldF9yZXZlcnNlX2lu
aGVyaXRhbmNlX3N0YWNrKCkpOworICAgIH0sICJzaG91bGQgdGhyb3cgZm9yIGRpY3Rpb25hcmll
cyB3aGljaCBpbmhlcml0IGZyb20gYW5vdGhlciBkaWN0aW9uYXJ5IHdoaWNoIHdhc24ndCBhZGRl
ZCB0byB0aGUgSWRsQXJyYXkiKTsKKworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZh
ciBpZGwgPSBuZXcgSWRsQXJyYXkoKTsKKyAgICAgICAgaWRsLmFkZF9pZGxzKCdkaWN0aW9uYXJ5
IEEgOiBCIHsgfTsnKTsKKyAgICAgICAgaWRsLmFkZF91bnRlc3RlZF9pZGxzKCdkaWN0aW9uYXJ5
IEIgOiBDIHsgfTsgZGljdGlvbmFyeSBDIHsgfTsnKTsKKyAgICAgICAgdmFyIEEgPSBpZGwubWVt
YmVyc1siQSJdOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKEEuZ2V0X3JldmVyc2VfaW5o
ZXJpdGFuY2Vfc3RhY2soKS5tYXAoZCA9PiBkLm5hbWUpLCBbIkMiLCAiQiIsICJBIl0pOworICAg
IH0sICdzaG91bGQgcmV0dXJuIGFuIGFycmF5IG9mIGRpY3Rpb25hcmllcyBpbiBvcmRlciBvZiBp
bmhlcml0YW5jZSwgc3RhcnRpbmcgd2l0aCB0aGUgYmFzZSBkaWN0aW9uYXJ5Jyk7CisKKyAgICB0
ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgIGxldCBpID0gbmV3IElkbEFycmF5KCk7CisgICAgICBp
LmFkZF91bnRlc3RlZF9pZGxzKCdkaWN0aW9uYXJ5IEEgOiBCIHt9OycpOworICAgICAgaS5hc3Nl
cnRfdGhyb3dzKG5ldyBJZGxIYXJuZXNzRXJyb3IoJ0EgaW5oZXJpdHMgQiwgYnV0IEIgaXMgdW5k
ZWZpbmVkLicpLCBpID0+IGkudGVzdCgpKTsKKyAgICB9LCAnQSA6IEIgd2l0aCBCIHVuZGVjbGFy
ZWQgc2hvdWxkIHRocm93IElkbEhhcm5lc3NFcnJvcicpOworCisgICAgdGVzdChmdW5jdGlvbiAo
KSB7CisgICAgICBsZXQgaSA9IG5ldyBJZGxBcnJheSgpOworICAgICAgaS5hZGRfdW50ZXN0ZWRf
aWRscygnZGljdGlvbmFyeSBBIDogQiB7fTsnKTsKKyAgICAgIGkuYWRkX3VudGVzdGVkX2lkbHMo
J2ludGVyZmFjZSBCIHt9OycpOworICAgICAgaS5hc3NlcnRfdGhyb3dzKG5ldyBJZGxIYXJuZXNz
RXJyb3IoJ0EgaW5oZXJpdHMgQiwgYnV0IEEgaXMgbm90IGFuIGludGVyZmFjZS4nKSwgaSA9PiBp
LnRlc3QoKSk7CisgICAgfSwgJ2RpY3Rpb25hcnkgQSA6IEIgd2l0aCBCIGludGVyZmFjZSBzaG91
bGQgdGhyb3cgSWRsSGFybmVzc0Vycm9yJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxEaWN0aW9uYXJ5L3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dC90ZXN0cy91bml0L0lkbERpY3Rpb25hcnkvdzNjLWltcG9ydC5sb2cKaW5kZXggMDRiN2Y5MTE1
ZjNlMWJmZGFjNmZhOTI5ODdiMWRkZmU4ODAyZGU0My4uYmFlMDRjY2E3NmQ1OGEzMDJkYWE4YzZj
NDk3ZDViYWYxOGJhNDgyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbERpY3Rpb25hcnkv
dzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbERpY3Rpb25hcnkvdzNjLWltcG9y
dC5sb2cKQEAgLTE0LDUgKzE0LDUgQEAgUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CiBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0
cy91bml0L0lkbERpY3Rpb25hcnkvZ2V0X2luaGVyaXRhbmNlX3N0YWNrLmh0bWwKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3Rz
L3VuaXQvSWRsRGljdGlvbmFyeS9nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjay5odG1sCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dC90ZXN0cy91bml0L0lkbERpY3Rpb25hcnkvdGVzdF9wYXJ0aWFsX2RpY3Rpb25hcnkuaHRtbApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9jb25zdHJ1Y3RvcnMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rl
c3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvY29uc3RydWN0b3JzLmh0bWwKaW5kZXggOTNjYzdm
NDJjYzU1ODhmN2Y4ZjBjYjRjZmNkYjQ1NzMxZGRjZjhhOS4uZTllZTNmODY4MGFjMWI3MjE0YTM0
YjI4MTQ1MjI0MzJiNTU0ZDQ4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFj
ZS9jb25zdHJ1Y3RvcnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2NvbnN0
cnVjdG9ycy5odG1sCkBAIC04LDkgKzgsMTAgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9pZGwt
aGVscGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAidXNlIHN0cmljdCI7CisvLyBbQ29uc3Ry
dWN0b3JdIGV4dGVuZGVkIGF0dHJpYnV0ZSBzaG91bGQgbm90IGJlIHN1cHBvcnRlZDoKIHRlc3Qo
ZnVuY3Rpb24oKSB7CiAgICAgdmFyIGkgPSBpbnRlcmZhY2VGcm9tKCdbQ29uc3RydWN0b3JdIGlu
dGVyZmFjZSBBIHsgfTsnKTsKLSAgICBhc3NlcnRfZXF1YWxzKGkuY29uc3RydWN0b3JzKCkubGVu
Z3RoLCAxKTsKKyAgICBhc3NlcnRfZXF1YWxzKGkuY29uc3RydWN0b3JzKCkubGVuZ3RoLCAwKTsK
IH0sICdJbnRlcmZhY2Ugd2l0aCBDb25zdHJ1Y3RvciBleHRlbmRlZCBhdHRyaWJ1dGUuJyk7CiAK
IHRlc3QoZnVuY3Rpb24oKSB7CkBAIC0xOSw3ICsyMCw3IEBAIHRlc3QoZnVuY3Rpb24oKSB7CiB9
LCAnSW50ZXJmYWNlIHdpdGggY29uc3RydWN0b3IgbWV0aG9kJyk7CiAKIHRlc3QoZnVuY3Rpb24o
KSB7Ci0gICAgdmFyIGkgPSBpbnRlcmZhY2VGcm9tKCdbQ29uc3RydWN0b3JdIGludGVyZmFjZSBB
IHsgY29uc3RydWN0b3IoKTsgfTsnKTsKKyAgICB2YXIgaSA9IGludGVyZmFjZUZyb20oJ2ludGVy
ZmFjZSBBIHsgY29uc3RydWN0b3IoKTsgY29uc3RydWN0b3IoYW55IHZhbHVlKTsgfTsnKTsKICAg
ICBhc3NlcnRfZXF1YWxzKGkuY29uc3RydWN0b3JzKCkubGVuZ3RoLCAyKTsKLX0sICdJbnRlcmZh
Y2Ugd2l0aCBib3RoJyk7Cit9LCAnSW50ZXJmYWNlIHdpdGggY29uc3RydWN0b3Igb3ZlcmxvYWRz
Jyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvZGVm
YXVsdF90b19qc29uX29wZXJhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9k
ZWZhdWx0X3RvX2pzb25fb3BlcmF0aW9uLmh0bWwKaW5kZXggZTAzZWE4YjAzODc0Y2U3YWNmZmRj
Nzg0NjNhYjdjZjMzYWQyMjZkMC4uNWFkZTdkMGQyODJhMzQ2ZGU2YjFmMDU0NDU3ZjQzMTM3NDg0
Mzc3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9kZWZhdWx0X3RvX2pz
b25fb3BlcmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9kZWZhdWx0
X3RvX2pzb25fb3BlcmF0aW9uLmh0bWwKQEAgLTEwLDQ0ICsxMCw2IEBACiA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvaWRsaGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vaWRs
LWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08cHJlIGlkPWZyYWdtZW50cz4KLSAgICBpbnRlcmZhY2Ug
QSA6IEIgewotICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBhOwotICAgIH07Ci0KLSAgICBpbnRl
cmZhY2UgQiA6IEMgewotICAgICAgW0RlZmF1bHRdIG9iamVjdCB0b0pTT04oKTsKLSAgICAgIGF0
dHJpYnV0ZSBsb25nIGI7Ci0gICAgfTsKLQotICAgIGludGVyZmFjZSBDIHsKLSAgICAgIGF0dHJp
YnV0ZSBET01TdHJpbmcgYzsKLSAgICB9OwotCi0gICAgaW50ZXJmYWNlIG1peGluIEQgewotICAg
ICAgW0RlZmF1bHRdIG9iamVjdCB0b0pTT04oKTsKLSAgICAgIGF0dHJpYnV0ZSBmbG9hdCBkOwot
ICAgIH07Ci0KLSAgICBpbnRlcmZhY2UgbWl4aW4gRyB7Ci0gICAgICBbRGVmYXVsdF0gb2JqZWN0
IHRvSlNPTigpOwotICAgICAgYXR0cmlidXRlIG9jdGV0IGc7Ci0gICAgfTsKLQotICAgIGludGVy
ZmFjZSBtaXhpbiBIIHsKLSAgICAgIFtEZWZhdWx0XSBvYmplY3QgdG9KU09OKCk7Ci0gICAgICBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGg7Ci0gICAgfTsKLQotICAgIGludGVyZmFjZSBtaXhpbiBJIHsK
LSAgICAgIFtEZWZhdWx0XSBvYmplY3QgdG9KU09OKCk7Ci0gICAgICBhdHRyaWJ1dGUgYm9vbGVh
biBpOwotICAgIH07Ci0KLSAgICBBIGluY2x1ZGVzIEc7Ci0gICAgQSBpbmNsdWRlcyBIOwotICAg
IEIgaW5jbHVkZXMgRDsKLTwvcHJlPgogPHNjcmlwdD4KICAgICAidXNlIHN0cmljdCI7CiAgICAg
dGVzdChmdW5jdGlvbigpIHsKQEAgLTEyOCw0NSArOTAsMjQgQEAKIAogICAgIHRlc3QoZnVuY3Rp
b24oKSB7CiAgICAgICAgIHZhciBjb250ZXh0ID0gbmV3IElkbEFycmF5KCk7Ci0gICAgICAgIGNv
bnRleHQuYWRkX2lkbHMoImludGVyZmFjZSBBIDogQiB7IFtEZWZhdWx0XSBvYmplY3QgdG9KU09O
KCk7IGF0dHJpYnV0ZSBET01TdHJpbmcgYTsgfTsiKTsKLSAgICAgICAgY29udGV4dC5hZGRfaWRs
cygiaW50ZXJmYWNlIEIgeyBvYmplY3QgdG9KU09OKCk7IGF0dHJpYnV0ZSBsb25nIGI7IH07Iik7
Ci0gICAgICAgIHZhciBtYXAgPSBjb250ZXh0Lm1lbWJlcnMuQS5kZWZhdWx0X3RvX2pzb25fb3Bl
cmF0aW9uKCk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMobWFwLnNpemUsIDEpOwotICAgICAgICBh
c3NlcnRfdHJ1ZShtYXAuaGFzKCJhIikpOwotICAgICAgICBhc3NlcnRfZmFsc2UobWFwLmhhcygi
YiIpKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhtYXAuZ2V0KCJhIikuaWRsVHlwZSwgIkRPTVN0
cmluZyIpOworICAgICAgICBjb250ZXh0LmFkZF9pZGxzKCJpbnRlcmZhY2UgQSB7IFtEZWZhdWx0
XSBvYmplY3QgdG9KU09OKCk7IGF0dHJpYnV0ZSBET01TdHJpbmcgYTsgfTsiKTsKKyAgICAgICAg
Y29udGV4dC5hZGRfaWRscygiaW50ZXJmYWNlIEIgOiBBIHsgYXR0cmlidXRlIGFueSBiOyB9OyIp
OworICAgICAgICBjb250ZXh0LmFkZF9pZGxzKCJpbnRlcmZhY2UgQyA6IEIgeyBbRGVmYXVsdF0g
b2JqZWN0IHRvSlNPTigpOyBhdHRyaWJ1dGUgbG9uZyBjOyB9OyIpOworICAgICAgICB2YXIgbWFw
ID0gY29udGV4dC5tZW1iZXJzLkMuZGVmYXVsdF90b19qc29uX29wZXJhdGlvbigpOworICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKFsuLi5tYXAua2V5cygpXSwgWyJhIiwgImMiXSk7CisgICAg
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLm1hcC52YWx1ZXMoKV0ubWFwKHYgPT4gdi5pZGxU
eXBlKSwgWyJET01TdHJpbmciLCAibG9uZyJdKTsKICAgICB9LCAnc2hvdWxkIHJldHVybiBhbiBv
cmRlcmVkIG1hcCB0aGF0IGlnbm9yZXMgYXR0cmlidXRlcyBvZiBpbmhlcml0ZWQgaW50ZXJmYWNl
cyB3aGljaCBkbyBub3QgZGVjbGFyZSBhIFtEZWZhdWx0XSB0b0pTT04gb3BlcmF0aW9uLicpOwog
CiAgICAgdGVzdChmdW5jdGlvbigpIHsKICAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgSWRsQXJy
YXkoKTsKLSAgICAgICAgY29udGV4dC5hZGRfaWRscygiaW50ZXJmYWNlIEEgeyBbRGVmYXVsdF0g
b2JqZWN0IHRvSlNPTigpOyBhdHRyaWJ1dGUgRE9NU3RyaW5nIGE7IH07Iik7Ci0gICAgICAgIGNv
bnRleHQuYWRkX2lkbHMoImludGVyZmFjZSBtaXhpbiBOIHsgW0RlZmF1bHRdIG9iamVjdCB0b0pT
T04oKTsgYXR0cmlidXRlIGxvbmcgbjsgfTsiKTsKLSAgICAgICAgY29udGV4dC5hZGRfaWRscygi
QSBpbmNsdWRlcyBOOyIpOwotICAgICAgICB2YXIgbWFwID0gY29udGV4dC5tZW1iZXJzLkEuZGVm
YXVsdF90b19qc29uX29wZXJhdGlvbigpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKFsu
Li5tYXAua2V5cygpXSwgWyJhIiwgIm4iXSk7CisgICAgICAgIGNvbnRleHQuYWRkX2lkbHMoImlu
dGVyZmFjZSBEIHsgYXR0cmlidXRlIERPTVN0cmluZyBkOyB9OyIpOworICAgICAgICBjb250ZXh0
LmFkZF9pZGxzKCJpbnRlcmZhY2UgbWl4aW4gTSB7IFtEZWZhdWx0XSBvYmplY3QgdG9KU09OKCk7
IGF0dHJpYnV0ZSBsb25nIG07IH07Iik7CisgICAgICAgIGNvbnRleHQuYWRkX2lkbHMoIkQgaW5j
bHVkZXMgTTsiKTsKKyAgICAgICAgY29udGV4dC5tZXJnZV9taXhpbnMoKTsKKyAgICAgICAgdmFy
IG1hcCA9IGNvbnRleHQubWVtYmVycy5ELmRlZmF1bHRfdG9fanNvbl9vcGVyYXRpb24oKTsKKyAg
ICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhbLi4ubWFwLmtleXMoKV0sIFsiZCIsICJtIl0pOwog
ICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKFsuLi5tYXAudmFsdWVzKCldLm1hcCh2ID0+IHYu
aWRsVHlwZSksIFsiRE9NU3RyaW5nIiwgImxvbmciXSk7CiAgICAgfSwgJ3Nob3VsZCByZXR1cm4g
YSBwcm9wZXJseSBvcmRlcmVkIG1hcCB0aGF0IGFjY291bnRzIGZvciBtaXhlZC1pbiBpbnRlcmZh
Y2VzIHdoaWNoIGRlY2xhcmUgYSBbRGVmYXVsdF0gdG9KU09OIG9wZXJhdGlvbi4nKTsKLQotICAg
IHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBjb250ZXh0ID0gbmV3IElkbEFycmF5KCk7
Ci0gICAgICAgIGNvbnRleHQuYWRkX2lkbHMoImludGVyZmFjZSBBIHsgW0RlZmF1bHRdIG9iamVj
dCB0b0pTT04oKTsgYXR0cmlidXRlIERPTVN0cmluZyBhOyB9OyIpOwotICAgICAgICBjb250ZXh0
LmFkZF9pZGxzKCJpbnRlcmZhY2UgbWl4aW4gTiB7IGF0dHJpYnV0ZSBsb25nIG47IH07Iik7Ci0g
ICAgICAgIGNvbnRleHQuYWRkX2lkbHMoIkEgaW5jbHVkZXMgTjsiKTsKLSAgICAgICAgdmFyIG1h
cCA9IGNvbnRleHQubWVtYmVycy5BLmRlZmF1bHRfdG9fanNvbl9vcGVyYXRpb24oKTsKLSAgICAg
ICAgYXNzZXJ0X2VxdWFscyhtYXAuc2l6ZSwgMSk7Ci0gICAgICAgIGFzc2VydF90cnVlKG1hcC5o
YXMoImEiKSk7Ci0gICAgICAgIGFzc2VydF9mYWxzZShtYXAuaGFzKCJuIikpOwotICAgICAgICBh
c3NlcnRfZXF1YWxzKG1hcC5nZXQoImEiKS5pZGxUeXBlLCAiRE9NU3RyaW5nIik7Ci0gICAgfSwg
J3Nob3VsZCByZXR1cm4gYSBwcm9wZXJseSBvcmRlcmVkIG1hcCB0aGF0IGlnbm9yZXMgbWl4ZWQt
aW4gaW50ZXJmYWNlcyB3aGljaCBkbyBub3QgZGVjbGFyZSBhIFtEZWZhdWx0XSB0b0pTT04gb3Bl
cmF0aW9uLicpOwotCi0KLSAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgY29udGV4
dCA9IG5ldyBJZGxBcnJheSgpOwotICAgICAgICBjb250ZXh0LmFkZF9pZGxzKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdmcmFnbWVudHMnKS50ZXh0Q29udGVudCk7Ci0gICAgICAgIHZhciBtYXAg
PSBjb250ZXh0Lm1lbWJlcnMuQS5kZWZhdWx0X3RvX2pzb25fb3BlcmF0aW9uKCk7Ci0gICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLm1hcC5rZXlzKCldLCBbImIiLCAiZCIsICJnIiwgImgi
XSk7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLm1hcC52YWx1ZXMoKV0ubWFwKHYg
PT4gdi5pZGxUeXBlKSwgWyJsb25nIiwgImZsb2F0IiwgIm9jdGV0IiwgIkRPTVN0cmluZyJdKTsK
LSAgICB9LCAnc2hvdWxkIHJldHVybiBhIHByb3Blcmx5IG9yZGVyZWQgbWFwIG9mIG5hbWUvdHlw
ZSBwYWlycyBoYW5kbGluZyBpbmhlcml0ZWQgYW5kIGNvbnNlcXVlbnRpYWwgaW50ZXJmYWNlcyBh
cyBzcGVjaWZpZWQuJyk7CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rl
c3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvZ2V0X2luaGVyaXRhbmNlX3N0YWNrLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0
L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2dldF9pbmhlcml0YW5jZV9zdGFjay5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZTkxODhjNzMxODkyMGY0NDkzNWU0MThhNTBhYTM1
YTU4YmY1NzI1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rl
c3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvZ2V0X2luaGVyaXRhbmNlX3N0YWNrLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08IURPQ1RZUEUgSFRNTD4KLTxodG1sPgotPGhl
YWQ+Ci08dGl0bGU+SWRsSW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfaW5oZXJpdGFuY2Vfc3RhY2so
KTwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvaWRsaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vaWRs
LWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotICAgICJ1c2Ugc3RyaWN0IjsKLSAgICB0
ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgc3RhY2sgPSBpbnRlcmZhY2VGcm9tKCdpbnRl
cmZhY2UgQSB7IH07JykuZ2V0X2luaGVyaXRhbmNlX3N0YWNrKCk7Ci0gICAgICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoc3RhY2subWFwKGkgPT4gaS5uYW1lKSwgWyJBIl0pOwotICAgIH0sICdzaG91
bGQgcmV0dXJuIGFuIGFycmF5IHRoYXQgaW5jbHVkZXMgaXRzZWxmLicpOwotCi0gICAgdGVzdChm
dW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGkgPSBpbnRlcmZhY2VGcm9tKCdpbnRlcmZhY2UgQSA6
IEIgeyB9OycpOwotICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKEVycm9yLCBfID0+IGkuZ2V0X2lu
aGVyaXRhbmNlX3N0YWNrKCkpOwotICAgIH0sICJzaG91bGQgdGhyb3cgZm9yIGludGVyZmFjZXMg
d2hpY2ggaW5oZXJpdCBmcm9tIGFub3RoZXIgaW50ZXJmYWNlIHdoaWNoIHdhc24ndCBhZGRlZCB0
byB0aGUgSWRsQXJyYXkiKTsKLQotICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBp
ZGwgPSBuZXcgSWRsQXJyYXkoKTsKLSAgICAgICAgaWRsLmFkZF9pZGxzKCdpbnRlcmZhY2UgQSA6
IEIgeyB9OycpOwotICAgICAgICBpZGwuYWRkX3VudGVzdGVkX2lkbHMoJ2ludGVyZmFjZSBCIDog
QyB7IH07IGludGVyZmFjZSBDIHsgfTsnKTsKLSAgICAgICAgdmFyIEEgPSBpZGwubWVtYmVyc1si
QSJdOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKEEuZ2V0X2luaGVyaXRhbmNlX3N0YWNr
KCkubWFwKGkgPT4gaS5uYW1lKSwgWyJBIiwgIkIiLCAiQyJdKTsKLSAgICB9LCAnc2hvdWxkIHJl
dHVybiBhbiBhcnJheSBvZiBpbmhlcml0ZWQgaW50ZXJmYWNlcyBpbiBvcmRlciBvZiBpbmhlcml0
YW5jZSwgc3RhcnRpbmcgd2l0aCBpdHNlbGYuJyk7Ci0KLSAgICB0ZXN0KGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgdmFyIGlkbCA9IG5ldyBJZGxBcnJheSgpOwotICAgICAgICBpZGwuYWRkX3VudGVz
dGVkX2lkbHMoJ2ludGVyZmFjZSBBIDogQiB7IH07Jyk7Ci0gICAgICAgIGlkbC5hZGRfdW50ZXN0
ZWRfaWRscygnaW50ZXJmYWNlIEIgOiBBIHsgfTsnKTsKLSAgICAgICAgaWRsLmFzc2VydF90aHJv
d3MoJ0EgaGFzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeTogQSxCLEEnLCBpID0+IGkudGVzdCgpKTsK
LSAgICB9LCAnc2hvdWxkIHRocm93IHdoZW4gaW5oZXJpdGFuY2UgaXMgY2lyY3VsYXInKTsKLQot
ICAgIHRlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICB2YXIgaWRsID0gbmV3IElkbEFycmF5KCk7
Ci0gICAgICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEEgOiBCIHsgfTsnKTsK
LSAgICAgICAgaWRsLmFzc2VydF90aHJvd3MoCi0gICAgICAgICAgICAnRHVwbGljYXRlIGlkZW50
aWZpZXIgQScsCi0gICAgICAgICAgICBpID0+IGkuYWRkX3VudGVzdGVkX2lkbHMoJ2ludGVyZmFj
ZSBBIDogQyB7IH07JykpOwotICAgIH0sICdzaG91bGQgdGhyb3cgd2hlbiBtdWx0aXBsZSBpbmhl
cml0YW5jZXMgZGVmaW5lZCcpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2dldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0
YWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jl
c291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2dldF9yZXZlcnNlX2luaGVyaXRh
bmNlX3N0YWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGMwNjZiYWFiYmNmMDI2N2IxNTFhNGUyMWQ2YmVm
ZWYxN2UzNmY0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2Uv
Z2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2suaHRtbApAQCAtMCwwICsxLDQ5IEBACis8IURP
Q1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+SWRsSW50ZXJmYWNlLnByb3RvdHlw
ZS5nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjaygpPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5
PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL1dlYklETFBhcnNlci5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9pZGwtaGVscGVyLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisgICAgInVzZSBzdHJpY3QiOworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAg
IHZhciBzdGFjayA9IGludGVyZmFjZUZyb20oJ2ludGVyZmFjZSBBIHsgfTsnKS5nZXRfcmV2ZXJz
ZV9pbmhlcml0YW5jZV9zdGFjaygpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHN0YWNr
Lm1hcChpID0+IGkubmFtZSksIFsiQSJdKTsKKyAgICB9LCAnc2hvdWxkIHJldHVybiBhbiBhcnJh
eSB0aGF0IGluY2x1ZGVzIGl0c2VsZi4nKTsKKworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAg
ICAgIHZhciBpID0gaW50ZXJmYWNlRnJvbSgnaW50ZXJmYWNlIEEgOiBCIHsgfTsnKTsKKyAgICAg
ICAgYXNzZXJ0X3Rocm93c19qcyhFcnJvciwgXyA9PiBpLmdldF9yZXZlcnNlX2luaGVyaXRhbmNl
X3N0YWNrKCkpOworICAgIH0sICJzaG91bGQgdGhyb3cgZm9yIGludGVyZmFjZXMgd2hpY2ggaW5o
ZXJpdCBmcm9tIGFub3RoZXIgaW50ZXJmYWNlIHdoaWNoIHdhc24ndCBhZGRlZCB0byB0aGUgSWRs
QXJyYXkiKTsKKworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBpZGwgPSBuZXcg
SWRsQXJyYXkoKTsKKyAgICAgICAgaWRsLmFkZF9pZGxzKCdpbnRlcmZhY2UgQSA6IEIgeyB9Oycp
OworICAgICAgICBpZGwuYWRkX3VudGVzdGVkX2lkbHMoJ2ludGVyZmFjZSBCIDogQyB7IH07IGlu
dGVyZmFjZSBDIHsgfTsnKTsKKyAgICAgICAgdmFyIEEgPSBpZGwubWVtYmVyc1siQSJdOworICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKEEuZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2so
KS5tYXAoaSA9PiBpLm5hbWUpLCBbIkMiLCAiQiIsICJBIl0pOworICAgIH0sICdzaG91bGQgcmV0
dXJuIGFuIGFycmF5IG9mIGludGVyZmFjZXMgaW4gb3JkZXIgb2YgaW5oZXJpdGFuY2UsIHN0YXJ0
aW5nIHdpdGggdGhlIGJhc2UgaW50ZXJmYWNlJyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgdmFyIGlkbCA9IG5ldyBJZGxBcnJheSgpOworICAgICAgICBpZGwuYWRkX3VudGVz
dGVkX2lkbHMoJ2ludGVyZmFjZSBBIDogQiB7IH07Jyk7CisgICAgICAgIGlkbC5hZGRfdW50ZXN0
ZWRfaWRscygnaW50ZXJmYWNlIEIgOiBBIHsgfTsnKTsKKyAgICAgICAgaWRsLmFzc2VydF90aHJv
d3MoJ0EgaGFzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeTogQSxCLEEnLCBpID0+IGkudGVzdCgpKTsK
KyAgICB9LCAnc2hvdWxkIHRocm93IHdoZW4gaW5oZXJpdGFuY2UgaXMgY2lyY3VsYXInKTsKKwor
ICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgaWRsID0gbmV3IElkbEFycmF5KCk7
CisgICAgICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEEgOiBCIHsgfTsnKTsK
KyAgICAgICAgaWRsLmFzc2VydF90aHJvd3MoCisgICAgICAgICAgICAnRHVwbGljYXRlIGlkZW50
aWZpZXIgQScsCisgICAgICAgICAgICBpID0+IGkuYWRkX3VudGVzdGVkX2lkbHMoJ2ludGVyZmFj
ZSBBIDogQyB7IH07JykpOworICAgIH0sICdzaG91bGQgdGhyb3cgd2hlbiBtdWx0aXBsZSBpbmhl
cml0YW5jZXMgZGVmaW5lZCcpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL3Nob3VsZF9oYXZlX2ludGVyZmFjZV9vYmpl
Y3QuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2Uvc2hvdWxkX2hhdmVfaW50ZXJmYWNl
X29iamVjdC5odG1sCmluZGV4IGY1YmI3YmYzNWE1OGMyM2NiYWY3NmYxNTE5YWMyZGZlYzVmM2Fk
NjIuLjNjZTk0NTc1MWQ4NTAyZGQ2ZDM1ZDE5ZjUyYzcxZjE3MDEzMTNkNDcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rl
c3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2Uvc2hvdWxkX2hhdmVfaW50ZXJmYWNlX29iamVjdC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2Uvc2hvdWxkX2hhdmVfaW50ZXJmYWNl
X29iamVjdC5odG1sCkBAIC0xNCwxNyArMTQsMTcgQEAgdGVzdChmdW5jdGlvbigpIHsKIH0sICJj
YWxsYmFjayBpbnRlcmZhY2Ugd2l0aCBhIGNvbnN0YW50Iik7CiAKIHRlc3QoZnVuY3Rpb24oKSB7
Ci0gICAgdmFyIGkgPSBpbnRlcmZhY2VGcm9tKCJjYWxsYmFjayBpbnRlcmZhY2UgQSB7IHZvaWQg
YigpOyBzZXF1ZW5jZTxhbnk+IGMoKTsgfTsiKTsKKyAgICB2YXIgaSA9IGludGVyZmFjZUZyb20o
ImNhbGxiYWNrIGludGVyZmFjZSBBIHsgdW5kZWZpbmVkIGIoKTsgc2VxdWVuY2U8YW55PiBjKCk7
IH07Iik7CiAgICAgYXNzZXJ0X2ZhbHNlKGkuc2hvdWxkX2hhdmVfaW50ZXJmYWNlX29iamVjdCgp
KTsKIH0sICJjYWxsYmFjayBpbnRlcmZhY2Ugd2l0aG91dCBhIGNvbnN0YW50Iik7CiAKIHRlc3Qo
ZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGkgPSBpbnRlcmZhY2VGcm9tKCJbTm9JbnRlcmZhY2VPYmpl
Y3RdIGludGVyZmFjZSBBIHsgfTsiKTsKKyAgICB2YXIgaSA9IGludGVyZmFjZUZyb20oIltMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdF0gaW50ZXJmYWNlIEEgeyB9OyIpOwogICAgIGFzc2VydF9mYWxz
ZShpLnNob3VsZF9oYXZlX2ludGVyZmFjZV9vYmplY3QoKSk7Ci19LCAibm9uLWNhbGxiYWNrIGlu
dGVyZmFjZSB3aXRoIFtOb0ludGVyZmFjZU9iamVjdF0iKTsKK30sICJub24tY2FsbGJhY2sgaW50
ZXJmYWNlIHdpdGggW0xlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0XSIpOwogCiB0ZXN0KGZ1bmN0aW9u
KCkgewogICAgIHZhciBpID0gaW50ZXJmYWNlRnJvbSgiaW50ZXJmYWNlIEEgeyB9OyIpOwogICAg
IGFzc2VydF90cnVlKGkuc2hvdWxkX2hhdmVfaW50ZXJmYWNlX29iamVjdCgpKTsKLX0sICJub24t
Y2FsbGJhY2sgaW50ZXJmYWNlIHdpdGhvdXQgW05vSW50ZXJmYWNlT2JqZWN0XSIpOworfSwgIm5v
bi1jYWxsYmFjayBpbnRlcmZhY2Ugd2l0aG91dCBbTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RdIik7
CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvdHJhdmVy
c2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMv
dW5pdC9JZGxJbnRlcmZhY2UvdHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50aWFsX2lu
dGVyZmFjZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRiOTU2ZGI2ZWVk
MWUxOWQ3ZGQzN2NhNjJhODA0YzRmZTM2ZWEyYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL3RyYXZlcnNlX2lu
aGVyaXRlZF9hbmRfY29uc2VxdWVudGlhbF9pbnRlcmZhY2VzLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw1OCArMCwwIEBACi08IURPQ1RZUEUgSFRNTD4KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+
SWRsRGljdGlvbmFyeS5wcm90b3R5cGUudHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50
aWFsX2ludGVyZmFjZXMoKTwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImxvZyI+
PC9kaXY+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vaWRsLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08cHJlIGlkPWZyYWdtZW50cz4K
LSAgICBpbnRlcmZhY2UgQSA6IEIgeyB9OwotICAgIGludGVyZmFjZSBCIDogQyB7IH07Ci0gICAg
aW50ZXJmYWNlIEMgeyB9OwotICAgIGludGVyZmFjZSBtaXhpbiBEIHsgfTsKLSAgICBpbnRlcmZh
Y2UgbWl4aW4gRyB7IH07Ci0gICAgaW50ZXJmYWNlIG1peGluIEggeyB9OwotCi0gICAgQSBpbmNs
dWRlcyBHOwotICAgIEEgaW5jbHVkZXMgSDsKLSAgICBCIGluY2x1ZGVzIEQ7Ci08L3ByZT4KLTxz
Y3JpcHQ+Ci0gICAgInVzZSBzdHJpY3QiOwotICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAg
IHZhciBpbnRlcmZhY2VzID0gW107Ci0gICAgICAgIGludGVyZmFjZUZyb20oJ2ludGVyZmFjZSBB
IHsgfTsnKS50cmF2ZXJzZV9pbmhlcml0ZWRfYW5kX2NvbnNlcXVlbnRpYWxfaW50ZXJmYWNlcyhm
dW5jdGlvbihpKSB7Ci0gICAgICAgICAgICBpbnRlcmZhY2VzLnB1c2goaS5uYW1lKTsKLSAgICAg
ICAgfSk7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoaW50ZXJmYWNlcywgWyJBIl0pOwot
ICAgIH0sICdzaG91bGQgcmV0dXJuIGFuIGFycmF5IHRoYXQgaW5jbHVkZXMgaXRzZWxmLicpOwot
Ci0gICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgSWRsQXJy
YXkoKTsKLSAgICAgICAgY29udGV4dC5hZGRfaWRscygiaW50ZXJmYWNlIEEgeyB9OyBBIGluY2x1
ZGVzIEI7Iik7Ci0gICAgICAgIGFzc2VydF90aHJvd3NfanMoRXJyb3IsIF8gPT4gY29udGV4dC5t
ZW1iZXJzWyJBIl0udHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFj
ZXMoZnVuY3Rpb24oKSB7fSkpOwotICAgIH0sICJzaG91bGQgdGhyb3cgZm9yIGludGVyZmFjZXMg
d2hpY2ggYXJlIGV4dGVuZGVkIGJ5IGFub3RoZXIgaW50ZXJmYWNlIHdoaWNoIHdhc24ndCBhZGRl
ZCB0byB0aGUgSWRsQXJyYXkuIik7Ci0KLSAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2
YXIgY29udGV4dCA9IG5ldyBJZGxBcnJheSgpOwotICAgICAgICBjb250ZXh0LmFkZF9pZGxzKCJp
bnRlcmZhY2UgQSB7IH07Iik7Ci0gICAgICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBf
ID0+IGNvbnRleHQubWVtYmVyc1siQSJdLnRyYXZlcnNlX2luaGVyaXRlZF9hbmRfY29uc2VxdWVu
dGlhbF9pbnRlcmZhY2VzKCkpOwotICAgIH0sICJzaG91bGQgdGhyb3cgaWYgbm90IHBhc3NlZCBh
IGNhbGxiYWNrIik7Ci0KLSAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgY29udGV4
dCA9IG5ldyBJZGxBcnJheSgpOwotICAgICAgICBjb250ZXh0LmFkZF9pZGxzKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdmcmFnbWVudHMnKS50ZXh0Q29udGVudCk7Ci0gICAgICAgIHZhciBpbnRl
cmZhY2VzID0gW107Ci0gICAgICAgIGNvbnRleHQubWVtYmVyc1siQSJdLnRyYXZlcnNlX2luaGVy
aXRlZF9hbmRfY29uc2VxdWVudGlhbF9pbnRlcmZhY2VzKGZ1bmN0aW9uKGkpIHsKLSAgICAgICAg
ICAgIGludGVyZmFjZXMucHVzaChpLm5hbWUpOwotICAgICAgICB9KTsKLSAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhpbnRlcmZhY2VzLCBbIkMiLCAiQiIsICJEIiwgIkEiLCAiRyIsICJIIl0p
OwotICAgIH0sICdzaG91bGQgcmV0dXJuIGFuIGFycmF5IHRoYXQgaW5jbHVkZXMgdGhlIGlkZW50
aWZpZXIgb2YgdGhlIGludGVyZmFjZXMgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuJyk7Ci08L3Njcmlw
dD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZh
Y2UvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL3czYy1pbXBvcnQu
bG9nCmluZGV4IDgyMzU1ZTA1YjU1YjdhMjE4ODEwNjE1ZDM2YTdiYjRlNGMzNjAxZTkuLmJkNjdk
Zjk0NDUxMTBlMjc3OWRjYmQ0NmQ1Y2JhZTI2YTYwZjIyYTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMv
dW5pdC9JZGxJbnRlcmZhY2UvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbElu
dGVyZmFjZS93M2MtaW1wb3J0LmxvZwpAQCAtMTcsMTMgKzE3LDEyIEBAIExpc3Qgb2YgZmlsZXM6
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMv
dGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9jb25zdHJ1Y3RvcnMuaHRtbAogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMv
dW5pdC9JZGxJbnRlcmZhY2UvZGVmYXVsdF90b19qc29uX29wZXJhdGlvbi5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0
cy91bml0L0lkbEludGVyZmFjZS9kb19tZW1iZXJfdW5zY29wYWJsZV9hc3NlcnRzLmh0bWwKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0
L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2dldF9pbmhlcml0YW5jZV9zdGFjay5odG1sCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90
ZXN0cy91bml0L0lkbEludGVyZmFjZS9nZXRfaW50ZXJmYWNlX29iamVjdC5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0
cy91bml0L0lkbEludGVyZmFjZS9nZXRfaW50ZXJmYWNlX29iamVjdF9vd25lci5odG1sCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90
ZXN0cy91bml0L0lkbEludGVyZmFjZS9nZXRfbGVnYWN5X25hbWVzcGFjZS5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0
cy91bml0L0lkbEludGVyZmFjZS9nZXRfcXVhbGlmaWVkX25hbWUuaHRtbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5p
dC9JZGxJbnRlcmZhY2UvZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2suaHRtbAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVz
dHMvdW5pdC9JZGxJbnRlcmZhY2UvaGFzX2RlZmF1bHRfdG9fanNvbl9yZWd1bGFyX29wZXJhdGlv
bi5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNv
dXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9oYXNfdG9fanNvbl9yZWd1bGFyX29w
ZXJhdGlvbi5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9zaG91bGRfaGF2ZV9pbnRl
cmZhY2Vfb2JqZWN0Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL3Rlc3RfcHJpbWFy
eV9pbnRlcmZhY2Vfb2ZfdW5kZWZpbmVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNl
L3RyYXZlcnNlX2luaGVyaXRlZF9hbmRfY29uc2VxdWVudGlhbF9pbnRlcmZhY2VzLmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2VNZW1iZXIvaXNfdG9fanNvbl9yZWd1
bGFyX29wZXJhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZU1lbWJlci9pc190
b19qc29uX3JlZ3VsYXJfb3BlcmF0aW9uLmh0bWwKaW5kZXggYWJmYTRhYjgwMGIzYzhlNmI1ZjZm
ZDNiNDJhOTgyY2MyZTRmZTk5ZS4uYjNmNDAyZGQwODg1N2NmZTQxY2RjODU3M2ZmOGMzYzQwN2Qy
NWU4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZU1lbWJlci9pc190b19q
c29uX3JlZ3VsYXJfb3BlcmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFj
ZU1lbWJlci9pc190b19qc29uX3JlZ3VsYXJfb3BlcmF0aW9uLmh0bWwKQEAgLTE4LDcgKzE4LDcg
QEAKICAgICB9LCAnc2hvdWxkIHJldHVybiBmYWxzZSB3aGVuIG1lbWJlciBpcyBhbiBhdHRyaWJ1
dGUuJyk7CiAKICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgbSA9IG1lbWJlckZy
b20oInN0YXRpYyB2b2lkIGZvbygpIik7CisgICAgICAgIHZhciBtID0gbWVtYmVyRnJvbSgic3Rh
dGljIHVuZGVmaW5lZCBmb28oKSIpOwogICAgICAgICBhc3NlcnRfZmFsc2UobS5pc190b19qc29u
X3JlZ3VsYXJfb3BlcmF0aW9uKCkpOwogICAgIH0sICdzaG91bGQgcmV0dXJuIGZhbHNlIHdoZW4g
bWVtYmVyIGlzIGEgc3RhdGljIG9wZXJhdGlvbi4nKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91
bml0L0lkbEludGVyZmFjZU1lbWJlci90b1N0cmluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbElu
dGVyZmFjZU1lbWJlci90b1N0cmluZy5odG1sCmluZGV4IDc3OWM3YTE1ZTZkN2I5ZWMyMGMzOGJh
MjQ5MDBmNzUyMDk2ZGYzZTIuLjA1NGRiYjFjY2JkNmVhMjczOTk4NjI5NDMzYzE1Y2ViNTJhYjRi
YmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2VNZW1iZXIvdG9TdHJpbmcu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jl
c291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlTWVtYmVyL3RvU3RyaW5nLmh0bWwK
QEAgLTI3LDcgKzI3LDcgQEAgY29uc3QgdGVzdHMgPSBbCiBdOwogZm9yIChjb25zdCBbaW5wdXQs
IG91dHB1dF0gb2YgdGVzdHMpIHsKICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIg
bSA9IG1lbWJlckZyb20oYHZvaWQgZm9vKCR7aW5wdXR9KWApOworICAgICAgICB2YXIgbSA9IG1l
bWJlckZyb20oYHVuZGVmaW5lZCBmb28oJHtpbnB1dH0pYCk7CiAgICAgICAgIGFzc2VydF9lcXVh
bHMobS50b1N0cmluZygpLCBgZm9vKCR7b3V0cHV0fSlgKTsKICAgICB9LCBgdG9TdHJpbmcgZm9y
ICR7aW5wdXR9YCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvaGVscGVycy5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qv
dGVzdHMvdW5pdC9oZWxwZXJzLmpzCmluZGV4IGIyNzNhNzI1ODlmN2QzMzRkZTU4ZWU3ODBhYmJj
NGMwZjRlMjJlYmQuLmNhMzc4YTI3YzkxNTI3NDJmNzUxZDBiOWM1YzI3NmY0OGEyMTU2MGMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9oZWxwZXJzLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9oZWxw
ZXJzLmpzCkBAIC0xMSw3ICsxMSw3IEBAIGZ1bmN0aW9uIHRlc3RfZmFpbHVyZShmbiwgbmFtZSkg
ewogICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEFzc2VydGlvbkVycm9yKSB7CiAgICAgICAgIHJl
dHVybjsKICAgICAgIH0KLSAgICAgIHRocm93IG5ldyBBc3NlcnRpb25FcnJvcignRXhwZWN0ZWQg
YW4gQXNzZXJ0aW9uRXJyb3IsIGJ1dCcpOworICAgICAgdGhyb3cgbmV3IEFzc2VydGlvbkVycm9y
KCdFeHBlY3RlZCBhbiBBc3NlcnRpb25FcnJvciwgYnV0JyArIGVycik7CiAgICAgfQogICAgIHRo
cm93IG5ldyBBc3NlcnRpb25FcnJvcigKICAgICAgICdFeHBlY3RlZCBhbiBBc3NlcnRpb25FcnJv
ciwgYnV0IG5vIGVycm9yIHdhcyB0aHJvd24nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvdW5w
YWlyZWQtc3Vycm9nYXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L3VucGFpcmVkLXN1cnJvZ2F0ZXMu
aHRtbAppbmRleCAxYjE2MmZlNzFkMjgzZDYzZGJkYWFjNWIzYmU4ODdmNWNkODBkNTNmLi5iMjMy
MTExMzI2NTllZWYxYzUwYjA0NmUwYTE1YmMwNmY2YmViZmMzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3Rz
L3VuaXQvdW5wYWlyZWQtc3Vycm9nYXRlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC91bnBhaXJl
ZC1zdXJyb2dhdGVzLmh0bWwKQEAgLTExNCw2ICsxMTQsNyBAQCBwcm9taXNlX3Rlc3QoKCkgPT4g
ewogICAgICAgICB0ZXN0KCgpID0+IHt9LCAnVStkODAwVStkODAxIG11c3QgYmUgc2FuaXRpemVk
OiBcdWQ4MDBcdWQ4MDEnKTsKICAgICAgICAgdGVzdCgoKSA9PiB7fSwgJ1UrZGZmZiBtdXN0IGJl
IHNhbml0aXplZDogXHVkZmZmJyk7CiAgICAgICAgIHRlc3QoKCkgPT4ge30sICdVK2RjMDBVK2Q4
MDBVK2RjMDBVK2Q4MDAgbXVzdCBiZSBzYW5pdGl6ZWQ6IFx1ZGMwMFx1ZDgwMFx1ZGMwMFx1ZDgw
MCcpOworICAgICAgICB0ZXN0KCgpID0+IHt9LCAnVStkYmZmVStkZmZmVStkZmZmIG11c3QgYmUg
c2FuaXRpemVkOiBcdWRiZmZcdWRmZmZcdWRmZmYnKTsKICAgICAgICAgdGVzdCgoKSA9PiB7fSwg
J2FmdGVyJyk7CiAgICAgICB9CiAgICAgKS50aGVuKCh7aGFybmVzcywgdGVzdHN9KSA9PiB7CkBA
IC0xMzAsNiArMTMxLDEwIEBAIHByb21pc2VfdGVzdCgoKSA9PiB7CiAgICAgICAgIHRlc3RzWydV
K2RjMDBVK2Q4MDBVK2RjMDBVK2Q4MDAgbXVzdCBiZSBzYW5pdGl6ZWQ6IFUrZGMwMFx1ZDgwMFx1
ZGMwMFUrZDgwMCddLAogICAgICAgICAnUEFTUycKICAgICAgICk7CisgICAgICBhc3NlcnRfZXF1
YWxzKAorICAgICAgICB0ZXN0c1snVStkYmZmVStkZmZmVStkZmZmIG11c3QgYmUgc2FuaXRpemVk
OiBcdWRiZmZcdWRmZmZVK2RmZmYnXSwKKyAgICAgICAgJ1BBU1MnCisgICAgICApOwogICAgICAg
YXNzZXJ0X2VxdWFscyh0ZXN0cy5hZnRlciwgJ1BBU1MnKTsKICAgICB9KTsKIH0sICdzdWItdGVz
dCBuYW1lcyB3aGljaCBpbmNsdWRlIHVucGFpcmVkIHN1cnJvZ2F0ZXMnKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rl
c3QvdG94LmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2VzL3Rlc3QvdG94LmluaQppbmRleCAyNjZhNmU4OTUyZTA0ZDkwMTIwNjQ4MzYxNGJk
YTkwOTc5MzNiYjhlLi5hOWMwN2MzZDIyYThhM2UyNjUzNWEwYjFlZjZlYWIyOGFmMDRjMjFmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jl
c291cmNlcy90ZXN0L3RveC5pbmkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90b3guaW5pCkBAIC0xLDE1ICsxLDEzIEBACiBb
dG94XQotZW52bGlzdCA9IHB5MjcscHkzNixweTM4CitlbnZsaXN0ID0gcHkzNixweTM3LHB5Mzgs
cHkzOQogc2tpcHNkaXN0PVRydWUKIAogW3Rlc3RlbnZdCiBwYXNzZW52PURJU1BMQVkgIyBOZWNl
c3NhcnkgZm9yIHRoZSBzcGF3bmVkIEdlY2tvRHJpdmVyIHByb2Nlc3MgdG8gY29ubmVjdCB0bwog
ICAgICAgICAgICAgICAgICMgdGhlIGFwcHJvcHJpYXRlIGRpc3BsYXkuCisKIGRlcHMgPQotICBo
dG1sNWxpYgotICBweXRlc3Q+PTIuOSw8NiAjIHBpbm5lZCB0byA8NiBkdWUgdG8gaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzI2MTMyCi0gIHB5dmlydHVh
bGRpc3BsYXkKLSAgc2l4Ci0gIHJlcXVlc3RzCisgIC1ye3RveGluaWRpcn0vLi4vLi4vdG9vbHMv
cmVxdWlyZW1lbnRzX3B5dGVzdC50eHQKKyAgLXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVudHMudHh0
CiAKIGNvbW1hbmRzID0gcHl0ZXN0IC12diB7cG9zYXJnc30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jl
c291cmNlcy90ZXN0L3czYy1pbXBvcnQubG9nCmluZGV4IGU3YTQ4NmE5Yjk2YzEwNWViOWE1ZGY1
YTA1Zjg5MzlhMTU5OWVhMGQuLjI3YjU0MjdmNGFkMmMwYWY3YmQ4YWIxOWRkNGZkOWMzOTA5MjZm
YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3QvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC93M2MtaW1wb3J0LmxvZwpA
QCAtMTksNiArMTksNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvaGFybmVzcy5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC9pZGwt
aGVscGVyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC9uZXN0ZWQtdGVzdGhhcm5lc3MuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3JlcXVpcmVtZW50cy50eHQK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90
ZXN0L3RveC5pbmkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Jlc291cmNlcy90ZXN0L3ZhcmlhbnRzLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC93cHRzZXJ2ZXIucHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rl
c3Qvd3B0c2VydmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdC93cHRzZXJ2ZXIucHkKaW5kZXggYTUwNGE3NmE0NmUwMGRiOGY5
YmI0YTE5ZGM5ZGNhNThlYzFjODMxNC4uYWJlMzBhZDNlZDJhODAyOWYwZmU2Yjg3NTNkOTgzYzJj
ODg1ZTM2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZXMvdGVzdC93cHRzZXJ2ZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC93cHRzZXJ2ZXIucHkK
QEAgLTMsMTcgKzMsMTggQEAgaW1wb3J0IG9zCiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHRp
bWUKIGltcG9ydCBzeXMKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCB1cmxsaWIKK2ltcG9ydCB1cmxs
aWIKIAogCiBjbGFzcyBXUFRTZXJ2ZXIob2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwg
d3B0X3Jvb3QpOgorICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkKICAg
ICAgICAgc2VsZi53cHRfcm9vdCA9IHdwdF9yb290CiAKICAgICAgICAgIyBUaGlzIGlzIGEgdGVy
cmlibGUgaGFjayB0byBnZXQgdGhlIGRlZmF1bHQgY29uZmlnIG9mIHdwdHNlcnZlLgogICAgICAg
ICBzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKHdwdF9yb290LCAidG9vbHMiKSkKICAg
ICAgICAgZnJvbSBzZXJ2ZS5zZXJ2ZSBpbXBvcnQgYnVpbGRfY29uZmlnCi0gICAgICAgIHdpdGgg
YnVpbGRfY29uZmlnKCkgYXMgY29uZmlnOgorICAgICAgICB3aXRoIGJ1aWxkX2NvbmZpZyhzZWxm
LmxvZ2dlcikgYXMgY29uZmlnOgogICAgICAgICAgICAgc2VsZi5ob3N0ID0gY29uZmlnWyJicm93
c2VyX2hvc3QiXQogICAgICAgICAgICAgc2VsZi5odHRwX3BvcnQgPSBjb25maWdbInBvcnRzIl1b
Imh0dHAiXVswXQogICAgICAgICAgICAgc2VsZi5odHRwc19wb3J0ID0gY29uZmlnWyJwb3J0cyJd
WyJodHRwcyJdWzBdCkBAIC0yMSwxMiArMjIsMTIgQEAgY2xhc3MgV1BUU2VydmVyKG9iamVjdCk6
CiAgICAgICAgIHNlbGYuYmFzZV91cmwgPSAnaHR0cDovLyVzOiVzJyAlIChzZWxmLmhvc3QsIHNl
bGYuaHR0cF9wb3J0KQogICAgICAgICBzZWxmLmh0dHBzX2Jhc2VfdXJsID0gJ2h0dHBzOi8vJXM6
JXMnICUgKHNlbGYuaG9zdCwgc2VsZi5odHRwc19wb3J0KQogCi0gICAgZGVmIHN0YXJ0KHNlbGYp
OgorICAgIGRlZiBzdGFydChzZWxmLCBzc2xfY29udGV4dCk6CiAgICAgICAgIHNlbGYuZGV2bnVs
bCA9IG9wZW4ob3MuZGV2bnVsbCwgJ3cnKQogICAgICAgICB3cHRzZXJ2ZV9jbWQgPSBbb3MucGF0
aC5qb2luKHNlbGYud3B0X3Jvb3QsICd3cHQnKSwgJ3NlcnZlJ10KICAgICAgICAgaWYgc3lzLmV4
ZWN1dGFibGU6CiAgICAgICAgICAgICB3cHRzZXJ2ZV9jbWRbMDowXSA9IFtzeXMuZXhlY3V0YWJs
ZV0KLSAgICAgICAgbG9nZ2luZy5pbmZvKCdFeGVjdXRpbmcgJXMnICUgJyAnLmpvaW4od3B0c2Vy
dmVfY21kKSkKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygnRXhlY3V0aW5nICVzJyAlICcgJy5q
b2luKHdwdHNlcnZlX2NtZCkpCiAgICAgICAgIHNlbGYucHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4o
CiAgICAgICAgICAgICB3cHRzZXJ2ZV9jbWQsCiAgICAgICAgICAgICBzdGRlcnI9c2VsZi5kZXZu
dWxsLApAQCAtNDEsNiArNDIsNyBAQCBjbGFzcyBXUFRTZXJ2ZXIob2JqZWN0KToKICAgICAgICAg
ICAgICAgICBicmVhawogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHVybGxpYi5y
ZXF1ZXN0LnVybG9wZW4oc2VsZi5iYXNlX3VybCwgdGltZW91dD0xKQorICAgICAgICAgICAgICAg
IHVybGxpYi5yZXF1ZXN0LnVybG9wZW4oc2VsZi5odHRwc19iYXNlX3VybCwgdGltZW91dD0xLCBj
b250ZXh0PXNzbF9jb250ZXh0KQogICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAg
ZXhjZXB0IHVybGxpYi5lcnJvci5VUkxFcnJvcjoKICAgICAgICAgICAgICAgICBwYXNzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291
cmNlcy90ZXN0ZHJpdmVyLWFjdGlvbnMuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVyLWFjdGlvbnMuanMKaW5kZXggZjNl
NjM4OGU4YWNkMTk5OGQ4OTc1MDE1MGUwNzc5ZGYzMjdhNTQxNy4uNGRhZmEwYzAxOGIxMDE1NjNl
OTk2NDNlYzBjODk2ZmIxNGVkOTg0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGRyaXZlci1hY3Rpb25zLmpzCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Vz
L3Rlc3Rkcml2ZXItYWN0aW9ucy5qcwpAQCAtMjgxLDkgKzI4MSwxMiBAQAogICAgICAqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXIgc291cmNlCiAgICAgICogQHJldHVybnMg
e0FjdGlvbnN9CiAgICAgICovCi0gICAgcG9pbnRlckRvd246IGZ1bmN0aW9uKHtidXR0b249dGhp
cy5CdXR0b25UeXBlLkxFRlQsIHNvdXJjZU5hbWU9bnVsbH09e30pIHsKKyAgICBwb2ludGVyRG93
bjogZnVuY3Rpb24oe2J1dHRvbj10aGlzLkJ1dHRvblR5cGUuTEVGVCwgc291cmNlTmFtZT1udWxs
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsIGhlaWdodCwgcHJlc3N1cmUsIHRh
bmdlbnRpYWxQcmVzc3VyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbHRYLCB0aWx0
WSwgdHdpc3QsIGFsdGl0dWRlQW5nbGUsIGF6aW11dGhBbmdsZX09e30pIHsKICAgICAgIGxldCBz
b3VyY2UgPSB0aGlzLmdldFNvdXJjZSgicG9pbnRlciIsIHNvdXJjZU5hbWUpOwotICAgICAgc291
cmNlLnBvaW50ZXJEb3duKHRoaXMsIGJ1dHRvbik7CisgICAgICBzb3VyY2UucG9pbnRlckRvd24o
dGhpcywgYnV0dG9uLCB3aWR0aCwgaGVpZ2h0LCBwcmVzc3VyZSwgdGFuZ2VudGlhbFByZXNzdXJl
LAorICAgICAgICAgICAgICAgICAgICAgICAgIHRpbHRYLCB0aWx0WSwgdHdpc3QsIGFsdGl0dWRl
QW5nbGUsIGF6aW11dGhBbmdsZSk7CiAgICAgICByZXR1cm4gdGhpczsKICAgICB9LAogCkBAIC0z
MTQsOSArMzE3LDEzIEBACiAgICAgICogQHJldHVybnMge0FjdGlvbnN9CiAgICAgICovCiAgICAg
cG9pbnRlck1vdmU6IGZ1bmN0aW9uKHgsIHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHtv
cmlnaW49InZpZXdwb3J0IiwgZHVyYXRpb24sIHNvdXJjZU5hbWU9bnVsbH09e30pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAge29yaWdpbj0idmlld3BvcnQiLCBkdXJhdGlvbiwgc291cmNl
TmFtZT1udWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsIGhlaWdodCwgcHJl
c3N1cmUsIHRhbmdlbnRpYWxQcmVzc3VyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRp
bHRYLCB0aWx0WSwgdHdpc3QsIGFsdGl0dWRlQW5nbGUsIGF6aW11dGhBbmdsZX09e30pIHsKICAg
ICAgIGxldCBzb3VyY2UgPSB0aGlzLmdldFNvdXJjZSgicG9pbnRlciIsIHNvdXJjZU5hbWUpOwot
ICAgICAgc291cmNlLnBvaW50ZXJNb3ZlKHRoaXMsIHgsIHksIGR1cmF0aW9uLCBvcmlnaW4pOwor
ICAgICAgc291cmNlLnBvaW50ZXJNb3ZlKHRoaXMsIHgsIHksIGR1cmF0aW9uLCBvcmlnaW4sIHdp
ZHRoLCBoZWlnaHQsIHByZXNzdXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHRhbmdlbnRp
YWxQcmVzc3VyZSwgdGlsdFgsIHRpbHRZLCB0d2lzdCwgYWx0aXR1ZGVBbmdsZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICBhemltdXRoQW5nbGUpOwogICAgICAgcmV0dXJuIHRoaXM7CiAgICAg
fSwKIApAQCAtNDI0LDYgKzQzMSwzOCBAQAogICAgIHRoaXMuYWN0aW9ucyA9IG5ldyBNYXAoKTsK
ICAgfQogCisgIGZ1bmN0aW9uIHNldFBvaW50ZXJQcm9wZXJ0aWVzKGFjdGlvbiwgd2lkdGgsIGhl
aWdodCwgcHJlc3N1cmUsIHRhbmdlbnRpYWxQcmVzc3VyZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGlsdFgsIHRpbHRZLCB0d2lzdCwgYWx0aXR1ZGVBbmdsZSwgYXppbXV0aEFu
Z2xlKSB7CisgICAgaWYgKHdpZHRoKSB7CisgICAgICBhY3Rpb24ud2lkdGggPSB3aWR0aDsKKyAg
ICB9CisgICAgaWYgKGhlaWdodCkgeworICAgICAgYWN0aW9uLmhlaWdodCA9IGhlaWdodDsKKyAg
ICB9CisgICAgaWYgKHByZXNzdXJlKSB7CisgICAgICBhY3Rpb24ucHJlc3N1cmUgPSBwcmVzc3Vy
ZTsKKyAgICB9CisgICAgaWYgKHRhbmdlbnRpYWxQcmVzc3VyZSkgeworICAgICAgYWN0aW9uLnRh
bmdlbnRpYWxQcmVzc3VyZSA9IHRhbmdlbnRpYWxQcmVzc3VyZTsKKyAgICB9CisgICAgaWYgKHRp
bHRYKSB7CisgICAgICBhY3Rpb24udGlsdFggPSB0aWx0WDsKKyAgICB9CisgICAgaWYgKHRpbHRZ
KSB7CisgICAgICBhY3Rpb24udGlsdFkgPSB0aWx0WTsKKyAgICB9CisgICAgaWYgKHR3aXN0KSB7
CisgICAgICBhY3Rpb24udHdpc3QgPSB0d2lzdDsKKyAgICB9CisgICAgaWYgKGFsdGl0dWRlQW5n
bGUpIHsKKyAgICAgIGFjdGlvbi5hbHRpdHVkZUFuZ2xlID0gYWx0aXR1ZGVBbmdsZTsKKyAgICB9
CisgICAgaWYgKGF6aW11dGhBbmdsZSkgeworICAgICAgYWN0aW9uLmF6aW11dGhBbmdsZSA9IGF6
aW11dGhBbmdsZTsKKyAgICB9CisgICAgcmV0dXJuIGFjdGlvbjsKKyAgfQorCiAgIFBvaW50ZXJT
b3VyY2UucHJvdG90eXBlID0gewogICAgIHNlcmlhbGl6ZTogZnVuY3Rpb24odGlja0NvdW50KSB7
CiAgICAgICBpZiAoIXRoaXMuYWN0aW9ucy5zaXplKSB7CkBAIC00NDEsMTIgKzQ4MCwxNiBAQAog
ICAgICAgcmV0dXJuIGRhdGE7CiAgICAgfSwKIAotICAgIHBvaW50ZXJEb3duOiBmdW5jdGlvbihh
Y3Rpb25zLCBidXR0b24pIHsKKyAgICBwb2ludGVyRG93bjogZnVuY3Rpb24oYWN0aW9ucywgYnV0
dG9uLCB3aWR0aCwgaGVpZ2h0LCBwcmVzc3VyZSwgdGFuZ2VudGlhbFByZXNzdXJlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aWx0WCwgdGlsdFksIHR3aXN0LCBhbHRpdHVkZUFuZ2xlLCBh
emltdXRoQW5nbGUpIHsKICAgICAgIGxldCB0aWNrID0gYWN0aW9ucy50aWNrSWR4OwogICAgICAg
aWYgKHRoaXMuYWN0aW9ucy5oYXModGljaykpIHsKICAgICAgICAgdGljayA9IGFjdGlvbnMuYWRk
VGljaygpLnRpY2tJZHg7CiAgICAgICB9Ci0gICAgICB0aGlzLmFjdGlvbnMuc2V0KHRpY2ssIHt0
eXBlOiAicG9pbnRlckRvd24iLCBidXR0b259KTsKKyAgICAgIGxldCBhY3Rpb25Qcm9wZXJ0aWVz
ID0gc2V0UG9pbnRlclByb3BlcnRpZXMoe3R5cGU6ICJwb2ludGVyRG93biIsIGJ1dHRvbn0sIHdp
ZHRoLCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHByZXNzdXJlLCB0YW5nZW50aWFsUHJlc3N1cmUsIHRpbHRYLCB0aWx0WSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHdpc3QsIGFsdGl0
dWRlQW5nbGUsIGF6aW11dGhBbmdsZSk7CisgICAgICB0aGlzLmFjdGlvbnMuc2V0KHRpY2ssIGFj
dGlvblByb3BlcnRpZXMpOwogICAgIH0sCiAKICAgICBwb2ludGVyVXA6IGZ1bmN0aW9uKGFjdGlv
bnMsIGJ1dHRvbikgewpAQCAtNDU3LDE1ICs1MDAsMjAgQEAKICAgICAgIHRoaXMuYWN0aW9ucy5z
ZXQodGljaywge3R5cGU6ICJwb2ludGVyVXAiLCBidXR0b259KTsKICAgICB9LAogCi0gICAgcG9p
bnRlck1vdmU6IGZ1bmN0aW9uKGFjdGlvbnMsIHgsIHksIGR1cmF0aW9uLCBvcmlnaW4pIHsKKyAg
ICBwb2ludGVyTW92ZTogZnVuY3Rpb24oYWN0aW9ucywgeCwgeSwgZHVyYXRpb24sIG9yaWdpbiwg
d2lkdGgsIGhlaWdodCwgcHJlc3N1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRhbmdl
bnRpYWxQcmVzc3VyZSwgdGlsdFgsIHRpbHRZLCB0d2lzdCwgYWx0aXR1ZGVBbmdsZSwgYXppbXV0
aEFuZ2xlKSB7CiAgICAgICBsZXQgdGljayA9IGFjdGlvbnMudGlja0lkeDsKICAgICAgIGlmICh0
aGlzLmFjdGlvbnMuaGFzKHRpY2spKSB7CiAgICAgICAgIHRpY2sgPSBhY3Rpb25zLmFkZFRpY2so
KS50aWNrSWR4OwogICAgICAgfQotICAgICAgdGhpcy5hY3Rpb25zLnNldCh0aWNrLCB7dHlwZTog
InBvaW50ZXJNb3ZlIiwgeCwgeSwgb3JpZ2lufSk7CisgICAgICBsZXQgbW92ZUFjdGlvbiA9IHt0
eXBlOiAicG9pbnRlck1vdmUiLCB4LCB5LCBvcmlnaW59OwogICAgICAgaWYgKGR1cmF0aW9uKSB7
Ci0gICAgICAgIHRoaXMuYWN0aW9ucy5nZXQodGljaykuZHVyYXRpb24gPSBkdXJhdGlvbjsKKyAg
ICAgICAgbW92ZUFjdGlvbi5kdXJhdGlvbiA9IGR1cmF0aW9uOwogICAgICAgfQorICAgICAgbGV0
IGFjdGlvblByb3BlcnRpZXMgPSBzZXRQb2ludGVyUHJvcGVydGllcyhtb3ZlQWN0aW9uLCB3aWR0
aCwgaGVpZ2h0LCBwcmVzc3VyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGFuZ2VudGlhbFByZXNzdXJlLCB0aWx0WCwgdGlsdFksIHR3aXN0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRpdHVk
ZUFuZ2xlLCBhemltdXRoQW5nbGUpOworICAgICAgdGhpcy5hY3Rpb25zLnNldCh0aWNrLCBhY3Rp
b25Qcm9wZXJ0aWVzKTsKICAgICB9LAogCiAgICAgYWRkUGF1c2U6IGZ1bmN0aW9uKGFjdGlvbnMs
IGR1cmF0aW9uKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcwppbmRleCBj
NTNiMjQxMzZjMDkxZjA1ZTRmZmJlMjg2ZDA2MGFiYTBmYTY2Y2RmLi5mMmRmMjZjZGExY2NkZjZk
NmI1YzE3YWRmNjY0YjA3ZjJiNmNkN2VhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Rk
cml2ZXIuanMKQEAgLTE0Niw2ICsxNDYsMjQgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk6IGNlbnRlclBvaW50WzFdfSk7CiAgICAgICAg
IH0sCiAKKyAgICAgICAgLyoqCisgICAgICAgICAqIERlbGV0ZXMgYWxsIGNvb2tpZXMuCisgICAg
ICAgICAqCisgICAgICAgICAqIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3VyIG9mIHRoZSB7QGxp
bmsKKyAgICAgICAgICogaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci8jZGVsZXRlLWFs
bC1jb29raWVzfFdlYkRyaXZlcgorICAgICAgICAgKiBEZWxldGUgQWxsIENvb2tpZXMgY29tbWFu
ZH0uCisgICAgICAgICAqCisgICAgICAgICAqIEBwYXJhbSB7V2luZG93UHJveHl9IGNvbnRleHQg
LSBCcm93c2luZyBjb250ZXh0IGluIHdoaWNoCisgICAgICAgICAqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0byBydW4gdGhlIGNhbGwsIG9yIG51bGwgZm9yIHRoZSBjdXJyZW50Cisg
ICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicm93c2luZyBjb250ZXh0
LgorICAgICAgICAgKgorICAgICAgICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gZnVsZmlsbGVkIGFm
dGVyIGNvb2tpZXMgYXJlIGRlbGV0ZWQsIG9yIHJlamVjdGVkIGluCisgICAgICAgICAqICAgICAg
ICAgICAgICAgICAgICB0aGUgY2FzZXMgdGhlIFdlYkRyaXZlciBjb21tYW5kIGVycm9ycworICAg
ICAgICAgKi8KKyAgICAgICAgZGVsZXRlX2FsbF9jb29raWVzOiBmdW5jdGlvbihjb250ZXh0PW51
bGwpIHsKKyAgICAgICAgICAgIHJldHVybiB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuZGVs
ZXRlX2FsbF9jb29raWVzKGNvbnRleHQpOworICAgICAgICB9LAorCiAgICAgICAgIC8qKgogICAg
ICAgICAgKiBTZW5kIGtleXMgdG8gYW4gZWxlbWVudAogICAgICAgICAgKgpAQCAtMjU5LDcgKzI3
Nyw3IEBACiAgICAgICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBmdWxmaWxsZWQgYWZ0ZXIgdGhl
IHBlcm1pc3Npb24gaXMgc2V0LCBvciByZWplY3RlZCBpZiBzZXR0aW5nIHRoZQogICAgICAgICAg
KiAgICAgICAgICAgICAgICAgICAgcGVybWlzc2lvbiBmYWlscwogICAgICAgICAgKi8KLSAgICAg
ICAgc2V0X3Blcm1pc3Npb246IGZ1bmN0aW9uKGRlc2NyaXB0b3IsIHN0YXRlLCBvbmVfcmVhbG0s
IGNvbnRleHQ9bnVsbCkgeworICAgICAgICBzZXRfcGVybWlzc2lvbjogZnVuY3Rpb24oZGVzY3Jp
cHRvciwgc3RhdGUsIG9uZV9yZWFsbT1mYWxzZSwgY29udGV4dD1udWxsKSB7CiAgICAgICAgICAg
ICBsZXQgcGVybWlzc2lvbl9wYXJhbXMgPSB7CiAgICAgICAgICAgICAgIGRlc2NyaXB0b3IsCiAg
ICAgICAgICAgICAgIHN0YXRlLApAQCAtNDU4LDYgKzQ3NiwxMCBAQAogICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0sCiAKKyAgICAgICAgZGVsZXRlX2FsbF9jb29raWVzOiBmdW5jdGlvbihjb250
ZXh0PW51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3Io
InVuaW1wbGVtZW50ZWQiKSk7CisgICAgICAgIH0sCisKICAgICAgICAgc2VuZF9rZXlzOiBmdW5j
dGlvbihlbGVtZW50LCBrZXlzKSB7CiAgICAgICAgICAgICBpZiAodGhpcy5pbl9hdXRvbWF0aW9u
KSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignTm90
IGltcGxlbWVudGVkJykpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcwpp
bmRleCBkNTBlMDk0MTE3ZGY1NmRiNDlkNzVmMTYyMGM0YWJhNTEzMTlmYzNjLi5mODViMTlmZDli
ZDkwYzM0NzZkZWRjYmU1ODI1YjgyZmI0MGRlODJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcwpAQCAtMSwyMSArMSwxMSBAQAogLypnbG9iYWwgc2VsZiovCiAvKmpz
aGludCBsYXRlZGVmOiBub2Z1bmMqLwotLyoKLURpc3RyaWJ1dGVkIHVuZGVyIGJvdGggdGhlIFcz
QyBUZXN0IFN1aXRlIExpY2Vuc2UgWzFdIGFuZCB0aGUgVzNDCi0zLWNsYXVzZSBCU0QgTGljZW5z
ZSBbMl0uIFRvIGNvbnRyaWJ1dGUgdG8gYSBXM0MgVGVzdCBTdWl0ZSwgc2VlIHRoZQotcG9saWNp
ZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9D
b25zb3J0aXVtL0xlZ2FsLzIwMDgvMDQtdGVzdHN1aXRlLWxpY2Vuc2UKLVsyXSBodHRwOi8vd3d3
LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDgvMDMtYnNkLWxpY2Vuc2UKLVszXSBodHRwOi8v
d3d3LnczLm9yZy8yMDA0LzEwLzI3LXRlc3RjYXNlcwotKi8KIAogLyogRG9jdW1lbnRhdGlvbjog
aHR0cHM6Ly93ZWItcGxhdGZvcm0tdGVzdHMub3JnL3dyaXRpbmctdGVzdHMvdGVzdGhhcm5lc3Mt
YXBpLmh0bWwKICAqICguLi9kb2NzL193cml0aW5nLXRlc3RzL3Rlc3RoYXJuZXNzLWFwaS5tZCkg
Ki8KIAogKGZ1bmN0aW9uIChnbG9iYWxfc2NvcGUpCiB7Ci0gICAgdmFyIGRlYnVnID0gZmFsc2U7
CiAgICAgLy8gZGVmYXVsdCB0aW1lb3V0IGlzIDEwIHNlY29uZHMsIHRlc3QgY2FuIG92ZXJyaWRl
IGlmIG5lZWRlZAogICAgIHZhciBzZXR0aW5ncyA9IHsKICAgICAgICAgb3V0cHV0OnRydWUsCkBA
IC0yNCw3ICsxNCw4IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAg
ICAgICAgICAgImxvbmciOjYwMDAwCiAgICAgICAgIH0sCiAgICAgICAgIHRlc3RfdGltZW91dDpu
dWxsLAotICAgICAgICBtZXNzYWdlX2V2ZW50czogWyJzdGFydCIsICJ0ZXN0X3N0YXRlIiwgInJl
c3VsdCIsICJjb21wbGV0aW9uIl0KKyAgICAgICAgbWVzc2FnZV9ldmVudHM6IFsic3RhcnQiLCAi
dGVzdF9zdGF0ZSIsICJyZXN1bHQiLCAiY29tcGxldGlvbiJdLAorICAgICAgICBkZWJ1ZzogZmFs
c2UsCiAgICAgfTsKIAogICAgIHZhciB4aHRtbF9ucyA9ICJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIjsKQEAgLTg3LDE0ICs3OCwxNSBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZv
cm1zIFszXS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3Q6IHRlc3Quc3RydWN0dXJlZF9jbG9uZSgpfSk7CiAgICAgICAgICAgICAgICAgICAgICB9XSwK
ICAgICAgICAgICAgIGNvbXBsZXRpb246IFthZGRfY29tcGxldGlvbl9jYWxsYmFjaywgcmVtb3Zl
X2NvbXBsZXRpb25fY2FsbGJhY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24g
KHRlc3RzLCBoYXJuZXNzX3N0YXR1cykgeworICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0
aW9uICh0ZXN0cywgaGFybmVzc19zdGF0dXMsIGFzc2VydHMpIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdmFyIGNsb25lZF90ZXN0cyA9IG1hcCh0ZXN0cywgZnVuY3Rpb24odGVzdCkg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRlc3Quc3RydWN0dXJl
ZF9jbG9uZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhpc19vYmouX2Rpc3BhdGNoKCJjb21wbGV0aW9uX2NhbGxiYWNr
IiwgW3Rlc3RzLCBoYXJuZXNzX3N0YXR1c10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7dHlwZTogImNvbXBsZXRlIiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0czogY2xvbmVkX3Rlc3RzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogaGFy
bmVzc19zdGF0dXMuc3RydWN0dXJlZF9jbG9uZSgpfSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBoYXJuZXNzX3N0YXR1cy5zdHJ1Y3R1
cmVkX2Nsb25lKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0czogYXNzZXJ0cy5tYXAoYXNzZXJ0ID0+IGFzc2VydC5zdHJ1Y3R1cmVkX2Ns
b25lKCkpfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgfV0KICAgICAgICAgfQogCkBAIC0x
MzEsMTEgKzEyMyw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc19zZWxlY3RvcikgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdbc2Vs
ZWN0b3JdLmFwcGx5KHVuZGVmaW5lZCwgY2FsbGJhY2tfYXJncyk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoZGVidWcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93
IGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge30K
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICBpZiAoc3VwcG9ydHNfcG9zdF9tZXNzYWdlKHcpICYmIHcgIT09IHNlbGYp
IHsKQEAgLTE5Miw4ICsxODAsOCBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFsz
XS4KICAgICAgICAgICAgIHRoaXNfb2JqLm91dHB1dF9oYW5kbGVyLnNob3dfc3RhdHVzKCk7CiAg
ICAgICAgIH0pOwogCi0gICAgICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uICh0
ZXN0cywgaGFybmVzc19zdGF0dXMpIHsKLSAgICAgICAgICAgIHRoaXNfb2JqLm91dHB1dF9oYW5k
bGVyLnNob3dfcmVzdWx0cyh0ZXN0cywgaGFybmVzc19zdGF0dXMpOworICAgICAgICBhZGRfY29t
cGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbiAodGVzdHMsIGhhcm5lc3Nfc3RhdHVzLCBhc3NlcnRz
X3J1bikgeworICAgICAgICAgICAgdGhpc19vYmoub3V0cHV0X2hhbmRsZXIuc2hvd19yZXN1bHRz
KHRlc3RzLCBoYXJuZXNzX3N0YXR1cywgYXNzZXJ0c19ydW4pOwogICAgICAgICB9KTsKICAgICAg
ICAgdGhpcy5zZXR1cF9tZXNzYWdlcyhzZXR0aW5ncy5tZXNzYWdlX2V2ZW50cyk7CiAgICAgfTsK
QEAgLTMxNCwxNCArMzAyLDE1IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNd
LgogICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAg
YWRkX2NvbXBsZXRpb25fY2FsbGJhY2soCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24odGVzdHMs
IGhhcm5lc3Nfc3RhdHVzKSB7CisgICAgICAgICAgICAgICAgZnVuY3Rpb24odGVzdHMsIGhhcm5l
c3Nfc3RhdHVzLCBhc3NlcnRzKSB7CiAgICAgICAgICAgICAgICAgICAgIHRoaXNfb2JqLl9kaXNw
YXRjaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAiY29tcGxldGUiLAogICAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdHM6IG1hcCh0ZXN0cywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jdGlvbih0ZXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiB0ZXN0LnN0cnVjdHVyZWRfY2xvbmUoKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogaGFybmVzc19zdGF0dXMu
c3RydWN0dXJlZF9jbG9uZSgpCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IGhhcm5l
c3Nfc3RhdHVzLnN0cnVjdHVyZWRfY2xvbmUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydHM6IGFzc2VydHMubWFwKGFzc2VydCA9PiBhc3NlcnQuc3RydWN0dXJlZF9jbG9uZSgpKSwK
ICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgfTsKQEAg
LTUwMCwxMSArNDg5LDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAg
ICAgICAgICAgICByZXR1cm4gbmV3IERlZGljYXRlZFdvcmtlclRlc3RFbnZpcm9ubWVudCgpOwog
ICAgICAgICB9CiAKLSAgICAgICAgaWYgKCEoJ2xvY2F0aW9uJyBpbiBnbG9iYWxfc2NvcGUpKSB7
Ci0gICAgICAgICAgICByZXR1cm4gbmV3IFNoZWxsVGVzdEVudmlyb25tZW50KCk7Ci0gICAgICAg
IH0KLQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHRlc3QgZW52aXJvbm1l
bnQiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBTaGVsbFRlc3RFbnZpcm9ubWVudCgpOwogICAgIH0K
IAogICAgIHZhciB0ZXN0X2Vudmlyb25tZW50ID0gY3JlYXRlX3Rlc3RfZW52aXJvbm1lbnQoKTsK
QEAgLTExODcsMTkgKzExNzIsNTMgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBb
M10uCiAgICAgICogQXNzZXJ0aW9ucwogICAgICAqLwogCisgICAgZnVuY3Rpb24gZXhwb3NlX2Fz
c2VydChmLCBuYW1lKSB7CisgICAgICAgIGZ1bmN0aW9uIGFzc2VydF93cmFwcGVyKC4uLmFyZ3Mp
IHsKKyAgICAgICAgICAgIGxldCBzdGF0dXMgPSBUZXN0LnN0YXR1c2VzLlRJTUVPVVQ7CisgICAg
ICAgICAgICBsZXQgc3RhY2sgPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAg
ICAgICBpZiAoc2V0dGluZ3MuZGVidWcpIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZS5k
ZWJ1ZygiQVNTRVJUIiwgbmFtZSwgdGVzdHMuY3VycmVudF90ZXN0ICYmIHRlc3RzLmN1cnJlbnRf
dGVzdC5uYW1lLCBhcmdzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYg
KHRlc3RzLm91dHB1dCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0cy5zZXRfYXNzZXJ0KG5h
bWUsIGFyZ3MpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb25zdCBydiA9
IGYuYXBwbHkodW5kZWZpbmVkLCBhcmdzKTsKKyAgICAgICAgICAgICAgICBzdGF0dXMgPSBUZXN0
LnN0YXR1c2VzLlBBU1M7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJ2OworICAgICAgICAgICAg
fSBjYXRjaChlKSB7CisgICAgICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBBc3NlcnRpb25F
cnJvcikgeworICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBUZXN0LnN0YXR1c2VzLkZBSUw7
CisgICAgICAgICAgICAgICAgICAgIHN0YWNrID0gZS5zdGFjazsKKyAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gVGVzdC5zdGF0dXNlcy5FUlJP
UjsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAg
ICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgICAgIGlmICh0ZXN0cy5vdXRwdXQgJiYgIXN0
YWNrKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YWNrID0gZ2V0X3N0YWNrKCk7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0ZXN0cy5vdXRwdXQpIHsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdHMuc2V0X2Fzc2VydF9zdGF0dXMoc3RhdHVzLCBzdGFjayk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGV4cG9zZShh
c3NlcnRfd3JhcHBlciwgbmFtZSk7CisgICAgfQorCiAgICAgZnVuY3Rpb24gYXNzZXJ0X3RydWUo
YWN0dWFsLCBkZXNjcmlwdGlvbikKICAgICB7CiAgICAgICAgIGFzc2VydChhY3R1YWwgPT09IHRy
dWUsICJhc3NlcnRfdHJ1ZSIsIGRlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiZXhwZWN0ZWQgdHJ1ZSBnb3QgJHthY3R1YWx9Iiwge2FjdHVhbDphY3R1YWx9KTsK
ICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF90cnVlLCAiYXNzZXJ0X3RydWUiKTsKKyAgICBleHBv
c2VfYXNzZXJ0KGFzc2VydF90cnVlLCAiYXNzZXJ0X3RydWUiKTsKIAogICAgIGZ1bmN0aW9uIGFz
c2VydF9mYWxzZShhY3R1YWwsIGRlc2NyaXB0aW9uKQogICAgIHsKICAgICAgICAgYXNzZXJ0KGFj
dHVhbCA9PT0gZmFsc2UsICJhc3NlcnRfZmFsc2UiLCBkZXNjcmlwdGlvbiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCBmYWxzZSBnb3QgJHthY3R1YWx9Iiwge2Fj
dHVhbDphY3R1YWx9KTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF9mYWxzZSwgImFzc2VydF9m
YWxzZSIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X2ZhbHNlLCAiYXNzZXJ0X2ZhbHNlIik7
CiAKICAgICBmdW5jdGlvbiBzYW1lX3ZhbHVlKHgsIHkpIHsKICAgICAgICAgaWYgKHkgIT09IHkp
IHsKQEAgLTEyMjksNyArMTI0OCw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMg
WzNdLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVj
dGVkICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9IiwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHtleHBlY3RlZDpleHBlY3RlZCwgYWN0dWFsOmFjdHVh
bH0pOwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2VxdWFscywgImFzc2VydF9lcXVhbHMiKTsK
KyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF9lcXVhbHMsICJhc3NlcnRfZXF1YWxzIik7CiAKICAg
ICBmdW5jdGlvbiBhc3NlcnRfbm90X2VxdWFscyhhY3R1YWwsIGV4cGVjdGVkLCBkZXNjcmlwdGlv
bikKICAgICB7CkBAIC0xMjQxLDcgKzEyNjAsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9u
IGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZ290IGRpc2FsbG93ZWQgdmFsdWUgJHthY3R1YWx9IiwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7YWN0dWFsOmFjdHVhbH0pOwogICAgIH0KLSAgICBl
eHBvc2UoYXNzZXJ0X25vdF9lcXVhbHMsICJhc3NlcnRfbm90X2VxdWFscyIpOworICAgIGV4cG9z
ZV9hc3NlcnQoYXNzZXJ0X25vdF9lcXVhbHMsICJhc3NlcnRfbm90X2VxdWFscyIpOwogCiAgICAg
ZnVuY3Rpb24gYXNzZXJ0X2luX2FycmF5KGFjdHVhbCwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKQog
ICAgIHsKQEAgLTEyNDksNyArMTI2OCw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9y
bXMgWzNdLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
dmFsdWUgJHthY3R1YWx9IG5vdCBpbiBhcnJheSAke2V4cGVjdGVkfSIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthY3R1YWw6YWN0dWFsLCBleHBlY3Rl
ZDpleHBlY3RlZH0pOwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2luX2FycmF5LCAiYXNzZXJ0
X2luX2FycmF5Iik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfaW5fYXJyYXksICJhc3NlcnRf
aW5fYXJyYXkiKTsKIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gd2FzIGRlcHJlY2F0ZWQgaW4gSnVs
eSBvZiAyMDE1LgogICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9pc3N1ZXMvMjAzMwpAQCAtMTI4Nyw3ICsxMzA2LDcgQEAgcG9saWNpZXMgYW5kIGNv
bnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICB9CiAgICAgICAgICBjaGVja19lcXVhbChh
Y3R1YWwsIGV4cGVjdGVkLCBbXSk7CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfb2JqZWN0X2Vx
dWFscywgImFzc2VydF9vYmplY3RfZXF1YWxzIik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRf
b2JqZWN0X2VxdWFscywgImFzc2VydF9vYmplY3RfZXF1YWxzIik7CiAKICAgICBmdW5jdGlvbiBh
c3NlcnRfYXJyYXlfZXF1YWxzKGFjdHVhbCwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKQogICAgIHsK
QEAgLTEzNDQsNyArMTM2Myw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNd
LgogICAgICAgICAgICAgICAgICAgICBhcnJheUV4cGVjdGVkOnNob3J0ZW5fYXJyYXkoZXhwZWN0
ZWQsIGkpLCBhcnJheUFjdHVhbDpzaG9ydGVuX2FycmF5KGFjdHVhbCwgaSl9KTsKICAgICAgICAg
fQogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2FycmF5X2VxdWFscywgImFzc2VydF9hcnJheV9l
cXVhbHMiKTsKKyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF9hcnJheV9lcXVhbHMsICJhc3NlcnRf
YXJyYXlfZXF1YWxzIik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfYXJyYXlfYXBwcm94X2VxdWFs
cyhhY3R1YWwsIGV4cGVjdGVkLCBlcHNpbG9uLCBkZXNjcmlwdGlvbikKICAgICB7CkBAIC0xMzcy
LDcgKzEzOTEsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAg
ICAgICAgICAgICAgICB7aTppLCBleHBlY3RlZDpleHBlY3RlZFtpXSwgYWN0dWFsOmFjdHVhbFtp
XSwgZXBzaWxvbjplcHNpbG9ufSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgZXhwb3NlKGFzc2Vy
dF9hcnJheV9hcHByb3hfZXF1YWxzLCAiYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMiKTsKKyAg
ICBleHBvc2VfYXNzZXJ0KGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzLCAiYXNzZXJ0X2FycmF5
X2FwcHJveF9lcXVhbHMiKTsKIAogICAgIGZ1bmN0aW9uIGFzc2VydF9hcHByb3hfZXF1YWxzKGFj
dHVhbCwgZXhwZWN0ZWQsIGVwc2lsb24sIGRlc2NyaXB0aW9uKQogICAgIHsKQEAgLTEzOTUsNyAr
MTQxNCw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhhY3R1YWwsIGV4cGVjdGVkKTsKICAgICAgICAgfQogICAgIH0KLSAg
ICBleHBvc2UoYXNzZXJ0X2FwcHJveF9lcXVhbHMsICJhc3NlcnRfYXBwcm94X2VxdWFscyIpOwor
ICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X2FwcHJveF9lcXVhbHMsICJhc3NlcnRfYXBwcm94X2Vx
dWFscyIpOwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X2xlc3NfdGhhbihhY3R1YWwsIGV4cGVjdGVk
LCBkZXNjcmlwdGlvbikKICAgICB7CkBAIC0xNDEyLDcgKzE0MzEsNyBAQCBwb2xpY2llcyBhbmQg
Y29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICJleHBlY3RlZCBhIG51bWJl
ciBsZXNzIHRoYW4gJHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH0iLAogICAgICAgICAgICAg
ICAge2V4cGVjdGVkOmV4cGVjdGVkLCBhY3R1YWw6YWN0dWFsfSk7CiAgICAgfQotICAgIGV4cG9z
ZShhc3NlcnRfbGVzc190aGFuLCAiYXNzZXJ0X2xlc3NfdGhhbiIpOworICAgIGV4cG9zZV9hc3Nl
cnQoYXNzZXJ0X2xlc3NfdGhhbiwgImFzc2VydF9sZXNzX3RoYW4iKTsKIAogICAgIGZ1bmN0aW9u
IGFzc2VydF9ncmVhdGVyX3RoYW4oYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRpb24pCiAgICAg
ewpAQCAtMTQyOSw3ICsxNDQ4LDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBb
M10uCiAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgYSBudW1iZXIgZ3JlYXRlciB0aGFuICR7ZXhw
ZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9IiwKICAgICAgICAgICAgICAgIHtleHBlY3RlZDpleHBl
Y3RlZCwgYWN0dWFsOmFjdHVhbH0pOwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2dyZWF0ZXJf
dGhhbiwgImFzc2VydF9ncmVhdGVyX3RoYW4iKTsKKyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF9n
cmVhdGVyX3RoYW4sICJhc3NlcnRfZ3JlYXRlcl90aGFuIik7CiAKICAgICBmdW5jdGlvbiBhc3Nl
cnRfYmV0d2Vlbl9leGNsdXNpdmUoYWN0dWFsLCBsb3dlciwgdXBwZXIsIGRlc2NyaXB0aW9uKQog
ICAgIHsKQEAgLTE0NDcsNyArMTQ2Niw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9y
bXMgWzNdLgogICAgICAgICAgICAgICAgImFuZCBsZXNzIHRoYW4gJHt1cHBlcn0gYnV0IGdvdCAk
e2FjdHVhbH0iLAogICAgICAgICAgICAgICAge2xvd2VyOmxvd2VyLCB1cHBlcjp1cHBlciwgYWN0
dWFsOmFjdHVhbH0pOwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2JldHdlZW5fZXhjbHVzaXZl
LCAiYXNzZXJ0X2JldHdlZW5fZXhjbHVzaXZlIik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRf
YmV0d2Vlbl9leGNsdXNpdmUsICJhc3NlcnRfYmV0d2Vlbl9leGNsdXNpdmUiKTsKIAogICAgIGZ1
bmN0aW9uIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRp
b24pCiAgICAgewpAQCAtMTQ2NCw3ICsxNDgzLDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlv
biBmb3JtcyBbM10uCiAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IG9yIGVxdWFsIHRvICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9IiwKICAgICAgICAgICAg
ICAgIHtleHBlY3RlZDpleHBlY3RlZCwgYWN0dWFsOmFjdHVhbH0pOwogICAgIH0KLSAgICBleHBv
c2UoYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbCwgImFzc2VydF9sZXNzX3RoYW5fZXF1YWwiKTsKKyAg
ICBleHBvc2VfYXNzZXJ0KGFzc2VydF9sZXNzX3RoYW5fZXF1YWwsICJhc3NlcnRfbGVzc190aGFu
X2VxdWFsIik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKGFjdHVh
bCwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKQogICAgIHsKQEAgLTE0ODEsNyArMTUwMCw3IEBAIHBv
bGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgImV4cGVj
dGVkIGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAke2V4cGVjdGVkfSBidXQgZ290
ICR7YWN0dWFsfSIsCiAgICAgICAgICAgICAgICB7ZXhwZWN0ZWQ6ZXhwZWN0ZWQsIGFjdHVhbDph
Y3R1YWx9KTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwsICJh
c3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsIik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfZ3Jl
YXRlcl90aGFuX2VxdWFsLCAiYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbCIpOwogCiAgICAgZnVu
Y3Rpb24gYXNzZXJ0X2JldHdlZW5faW5jbHVzaXZlKGFjdHVhbCwgbG93ZXIsIHVwcGVyLCBkZXNj
cmlwdGlvbikKICAgICB7CkBAIC0xNDk5LDcgKzE1MTgsNyBAQCBwb2xpY2llcyBhbmQgY29udHJp
YnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICJhbmQgbGVzcyB0aGFuIG9yIGVxdWFs
IHRvICR7dXBwZXJ9IGJ1dCBnb3QgJHthY3R1YWx9IiwKICAgICAgICAgICAgICAgIHtsb3dlcjps
b3dlciwgdXBwZXI6dXBwZXIsIGFjdHVhbDphY3R1YWx9KTsKICAgICB9Ci0gICAgZXhwb3NlKGFz
c2VydF9iZXR3ZWVuX2luY2x1c2l2ZSwgImFzc2VydF9iZXR3ZWVuX2luY2x1c2l2ZSIpOworICAg
IGV4cG9zZV9hc3NlcnQoYXNzZXJ0X2JldHdlZW5faW5jbHVzaXZlLCAiYXNzZXJ0X2JldHdlZW5f
aW5jbHVzaXZlIik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfcmVnZXhwX21hdGNoKGFjdHVhbCwg
ZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKSB7CiAgICAgICAgIC8qCkBAIC0xNTEwLDcgKzE1MjksNyBA
QCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICJl
eHBlY3RlZCAke2V4cGVjdGVkfSBidXQgZ290ICR7YWN0dWFsfSIsCiAgICAgICAgICAgICAgICB7
ZXhwZWN0ZWQ6ZXhwZWN0ZWQsIGFjdHVhbDphY3R1YWx9KTsKICAgICB9Ci0gICAgZXhwb3NlKGFz
c2VydF9yZWdleHBfbWF0Y2gsICJhc3NlcnRfcmVnZXhwX21hdGNoIik7CisgICAgZXhwb3NlX2Fz
c2VydChhc3NlcnRfcmVnZXhwX21hdGNoLCAiYXNzZXJ0X3JlZ2V4cF9tYXRjaCIpOwogCiAgICAg
ZnVuY3Rpb24gYXNzZXJ0X2NsYXNzX3N0cmluZyhvYmplY3QsIGNsYXNzX3N0cmluZywgZGVzY3Jp
cHRpb24pIHsKICAgICAgICAgdmFyIGFjdHVhbCA9IHt9LnRvU3RyaW5nLmNhbGwob2JqZWN0KTsK
QEAgLTE1MTksMjcgKzE1MzgsMjcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBb
M10uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0
ZWQgJHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH0iLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAge2V4cGVjdGVkOmV4cGVjdGVkLCBhY3R1YWw6YWN0dWFs
fSk7CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfY2xhc3Nfc3RyaW5nLCAiYXNzZXJ0X2NsYXNz
X3N0cmluZyIpOwotCisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfY2xhc3Nfc3RyaW5nLCAiYXNz
ZXJ0X2NsYXNzX3N0cmluZyIpOwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X293bl9wcm9wZXJ0eShv
YmplY3QsIHByb3BlcnR5X25hbWUsIGRlc2NyaXB0aW9uKSB7CiAgICAgICAgIGFzc2VydChvYmpl
Y3QuaGFzT3duUHJvcGVydHkocHJvcGVydHlfbmFtZSksCiAgICAgICAgICAgICAgICAiYXNzZXJ0
X293bl9wcm9wZXJ0eSIsIGRlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgImV4cGVjdGVkIHBy
b3BlcnR5ICR7cH0gbWlzc2luZyIsIHtwOnByb3BlcnR5X25hbWV9KTsKICAgICB9Ci0gICAgZXhw
b3NlKGFzc2VydF9vd25fcHJvcGVydHksICJhc3NlcnRfb3duX3Byb3BlcnR5Iik7CisgICAgZXhw
b3NlX2Fzc2VydChhc3NlcnRfb3duX3Byb3BlcnR5LCAiYXNzZXJ0X293bl9wcm9wZXJ0eSIpOwog
CiAgICAgZnVuY3Rpb24gYXNzZXJ0X25vdF9vd25fcHJvcGVydHkob2JqZWN0LCBwcm9wZXJ0eV9u
YW1lLCBkZXNjcmlwdGlvbikgewogICAgICAgICBhc3NlcnQoIW9iamVjdC5oYXNPd25Qcm9wZXJ0
eShwcm9wZXJ0eV9uYW1lKSwKICAgICAgICAgICAgICAgICJhc3NlcnRfbm90X293bl9wcm9wZXJ0
eSIsIGRlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgInVuZXhwZWN0ZWQgcHJvcGVydHkgJHtw
fSBpcyBmb3VuZCBvbiBvYmplY3QiLCB7cDpwcm9wZXJ0eV9uYW1lfSk7CiAgICAgfQotICAgIGV4
cG9zZShhc3NlcnRfbm90X293bl9wcm9wZXJ0eSwgImFzc2VydF9ub3Rfb3duX3Byb3BlcnR5Iik7
CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfbm90X293bl9wcm9wZXJ0eSwgImFzc2VydF9ub3Rf
b3duX3Byb3BlcnR5Iik7CiAKICAgICBmdW5jdGlvbiBfYXNzZXJ0X2luaGVyaXRzKG5hbWUpIHsK
ICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChvYmplY3QsIHByb3BlcnR5X25hbWUsIGRlc2NyaXB0
aW9uKQogICAgICAgICB7Ci0gICAgICAgICAgICBhc3NlcnQodHlwZW9mIG9iamVjdCA9PT0gIm9i
amVjdCIgfHwgdHlwZW9mIG9iamVjdCA9PT0gImZ1bmN0aW9uIiB8fAorICAgICAgICAgICAgYXNz
ZXJ0KCh0eXBlb2Ygb2JqZWN0ID09PSAib2JqZWN0IiAmJiBvYmplY3QgIT09IG51bGwpIHx8Cisg
ICAgICAgICAgICAgICAgICAgdHlwZW9mIG9iamVjdCA9PT0gImZ1bmN0aW9uIiB8fAogICAgICAg
ICAgICAgICAgICAgIC8vIE9yIGhhcyBbW0lzSFRNTEREQV1dIHNsb3QKICAgICAgICAgICAgICAg
ICAgICBTdHJpbmcob2JqZWN0KSA9PT0gIltvYmplY3QgSFRNTEFsbENvbGxlY3Rpb25dIiwKICAg
ICAgICAgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKQEAgLTE1NjAsOCArMTU3OSw4IEBA
IHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAg
IHtwOnByb3BlcnR5X25hbWV9KTsKICAgICAgICAgfTsKICAgICB9Ci0gICAgZXhwb3NlKF9hc3Nl
cnRfaW5oZXJpdHMoImFzc2VydF9pbmhlcml0cyIpLCAiYXNzZXJ0X2luaGVyaXRzIik7Ci0gICAg
ZXhwb3NlKF9hc3NlcnRfaW5oZXJpdHMoImFzc2VydF9pZGxfYXR0cmlidXRlIiksICJhc3NlcnRf
aWRsX2F0dHJpYnV0ZSIpOworICAgIGV4cG9zZV9hc3NlcnQoX2Fzc2VydF9pbmhlcml0cygiYXNz
ZXJ0X2luaGVyaXRzIiksICJhc3NlcnRfaW5oZXJpdHMiKTsKKyAgICBleHBvc2VfYXNzZXJ0KF9h
c3NlcnRfaW5oZXJpdHMoImFzc2VydF9pZGxfYXR0cmlidXRlIiksICJhc3NlcnRfaWRsX2F0dHJp
YnV0ZSIpOwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X3JlYWRvbmx5KG9iamVjdCwgcHJvcGVydHlf
bmFtZSwgZGVzY3JpcHRpb24pCiAgICAgewpAQCAtMTU3OCw3ICsxNTk3LDcgQEAgcG9saWNpZXMg
YW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAgb2JqZWN0W3Byb3BlcnR5
X25hbWVdID0gaW5pdGlhbF92YWx1ZTsKICAgICAgICAgIH0KICAgICB9Ci0gICAgZXhwb3NlKGFz
c2VydF9yZWFkb25seSwgImFzc2VydF9yZWFkb25seSIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNz
ZXJ0X3JlYWRvbmx5LCAiYXNzZXJ0X3JlYWRvbmx5Iik7CiAKICAgICAvKioKICAgICAgKiBBc3Nl
cnQgYSBKUyBFcnJvciB3aXRoIHRoZSBleHBlY3RlZCBjb25zdHJ1Y3RvciBpcyB0aHJvd24uCkBA
IC0xNTkyLDcgKzE2MTEsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4K
ICAgICAgICAgYXNzZXJ0X3Rocm93c19qc19pbXBsKGNvbnN0cnVjdG9yLCBmdW5jLCBkZXNjcmlw
dGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhc3NlcnRfdGhyb3dzX2pzIik7
CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfdGhyb3dzX2pzLCAiYXNzZXJ0X3Rocm93c19qcyIp
OworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X3Rocm93c19qcywgImFzc2VydF90aHJvd3NfanMi
KTsKIAogICAgIC8qKgogICAgICAqIExpa2UgYXNzZXJ0X3Rocm93c19qcyBidXQgYWxsb3dzIHNw
ZWNpZnlpbmcgdGhlIGFzc2VydGlvbiB0eXBlCkBAIC0xNjkwLDcgKzE3MDksNyBAQCBwb2xpY2ll
cyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgfQogICAgICAgICBhc3NlcnRf
dGhyb3dzX2RvbV9pbXBsKHR5cGUsIGZ1bmMsIGRlc2NyaXB0aW9uLCAiYXNzZXJ0X3Rocm93c19k
b20iLCBjb25zdHJ1Y3RvcikKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF90aHJvd3NfZG9tLCAi
YXNzZXJ0X3Rocm93c19kb20iKTsKKyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF90aHJvd3NfZG9t
LCAiYXNzZXJ0X3Rocm93c19kb20iKTsKIAogICAgIC8qKgogICAgICAqIFNpbWlsYXIgdG8gYXNz
ZXJ0X3Rocm93c19kb20gYnV0IGFsbG93cyBzcGVjaWZ5aW5nIHRoZSBhc3NlcnRpb24gdHlwZQpA
QCAtMTg1Myw3ICsxODcyLDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10u
CiAgICAgICAgIGFzc2VydF90aHJvd3NfZXhhY3RseV9pbXBsKGV4Y2VwdGlvbiwgZnVuYywgZGVz
Y3JpcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhc3NlcnRfdGhy
b3dzX2V4YWN0bHkiKTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF90aHJvd3NfZXhhY3RseSwg
ImFzc2VydF90aHJvd3NfZXhhY3RseSIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X3Rocm93
c19leGFjdGx5LCAiYXNzZXJ0X3Rocm93c19leGFjdGx5Iik7CiAKICAgICAvKioKICAgICAgKiBM
aWtlIGFzc2VydF90aHJvd3NfZXhhY3RseSBidXQgYWxsb3dzIHNwZWNpZnlpbmcgdGhlIGFzc2Vy
dGlvbiB0eXBlCkBAIC0xODgxLDcgKzE5MDAsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9u
IGZvcm1zIFszXS4KICAgICAgICAgIGFzc2VydChmYWxzZSwgImFzc2VydF91bnJlYWNoZWQiLCBk
ZXNjcmlwdGlvbiwKICAgICAgICAgICAgICAgICAiUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlIik7
CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfdW5yZWFjaGVkLCAiYXNzZXJ0X3VucmVhY2hlZCIp
OworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X3VucmVhY2hlZCwgImFzc2VydF91bnJlYWNoZWQi
KTsKIAogICAgIGZ1bmN0aW9uIGFzc2VydF9hbnkoYXNzZXJ0X2Z1bmMsIGFjdHVhbCwgZXhwZWN0
ZWRfYXJyYXkpCiAgICAgewpAQCAtMTkwMiw2ICsxOTIxLDkgQEAgcG9saWNpZXMgYW5kIGNvbnRy
aWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICB0aHJvdyBuZXcgQXNzZXJ0aW9uRXJyb3Io
ZXJyb3JzLmpvaW4oIlxuXG4iKSk7CiAgICAgICAgIH0KICAgICB9CisgICAgLy8gRklYTUU6IGFz
c2VydF9hbnkgY2Fubm90IHVzZSBleHBvc2VfYXNzZXJ0LCBiZWNhdXNlIGFzc2VydF93cmFwcGVy
IGRvZXMKKyAgICAvLyBub3Qgc3VwcG9ydCBuZXN0ZWQgYXNzZXJ0IGNhbGxzIChlLmcuIHRvIGFz
c2VydF9mdW5jKS4gV2UgbmVlZCB0bworICAgIC8vIHN1cHBvcnQgYnlwYXNzaW5nIGFzc2VydF93
cmFwcGVyIGZvciB0aGUgaW5uZXIgYXNzZXJ0cyBoZXJlLgogICAgIGV4cG9zZShhc3NlcnRfYW55
LCAiYXNzZXJ0X2FueSIpOwogCiAgICAgLyoqCkBAIC0xOTE5LDcgKzE5NDEsNyBAQCBwb2xpY2ll
cyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICBmdW5jdGlvbiBhc3NlcnRfaW1wbGVt
ZW50cyhjb25kaXRpb24sIGRlc2NyaXB0aW9uKSB7CiAgICAgICAgIGFzc2VydCghIWNvbmRpdGlv
biwgImFzc2VydF9pbXBsZW1lbnRzIiwgZGVzY3JpcHRpb24pOwogICAgIH0KLSAgICBleHBvc2Uo
YXNzZXJ0X2ltcGxlbWVudHMsICJhc3NlcnRfaW1wbGVtZW50cyIpCisgICAgZXhwb3NlX2Fzc2Vy
dChhc3NlcnRfaW1wbGVtZW50cywgImFzc2VydF9pbXBsZW1lbnRzIikKIAogICAgIC8qKgogICAg
ICAqIEFzc2VydCB0aGF0IGFuIG9wdGlvbmFsIGZlYXR1cmUgaXMgaW1wbGVtZW50ZWQsIGJhc2Vk
IG9uIGEgJ3RydXRoeScgY29uZGl0aW9uLgpAQCAtMTkzOSw3ICsxOTYxLDcgQEAgcG9saWNpZXMg
YW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICB0aHJvdyBuZXcgT3B0aW9u
YWxGZWF0dXJlVW5zdXBwb3J0ZWRFcnJvcihkZXNjcmlwdGlvbik7CiAgICAgICAgIH0KICAgICB9
Ci0gICAgZXhwb3NlKGFzc2VydF9pbXBsZW1lbnRzX29wdGlvbmFsLCAiYXNzZXJ0X2ltcGxlbWVu
dHNfb3B0aW9uYWwiKQorICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X2ltcGxlbWVudHNfb3B0aW9u
YWwsICJhc3NlcnRfaW1wbGVtZW50c19vcHRpb25hbCIpCiAKICAgICBmdW5jdGlvbiBUZXN0KG5h
bWUsIHByb3BlcnRpZXMpCiAgICAgewpAQCAtMTk5OSw2ICsyMDIxLDE4IEBAIHBvbGljaWVzIGFu
ZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICBDT01QTEVURTo0CiAgICAgfTsKIAor
ICAgIFRlc3QucHJvdG90eXBlLnN0YXR1c19mb3JtYXRzID0geworICAgICAgICAwOiAiUGFzcyIs
CisgICAgICAgIDE6ICJGYWlsIiwKKyAgICAgICAgMjogIlRpbWVvdXQiLAorICAgICAgICAzOiAi
Tm90IFJ1biIsCisgICAgICAgIDQ6ICJPcHRpb25hbCBGZWF0dXJlIFVuc3VwcG9ydGVkIiwKKyAg
ICB9CisKKyAgICBUZXN0LnByb3RvdHlwZS5mb3JtYXRfc3RhdHVzID0gZnVuY3Rpb24oKSB7Cisg
ICAgICAgIHJldHVybiB0aGlzLnN0YXR1c19mb3JtYXRzW3RoaXMuc3RhdHVzXTsKKyAgICB9CisK
ICAgICBUZXN0LnByb3RvdHlwZS5zdHJ1Y3R1cmVkX2Nsb25lID0gZnVuY3Rpb24oKQogICAgIHsK
ICAgICAgICAgaWYgKCF0aGlzLl9zdHJ1Y3R1cmVkX2Nsb25lKSB7CkBAIC0yMDIzLDExICsyMDU3
LDE2IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICBpZiAo
dGhpcy5waGFzZSA+IHRoaXMucGhhc2VzLlNUQVJURUQpIHsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQorCisgICAgICAgIGlmIChzZXR0aW5ncy5kZWJ1ZyAmJiB0aGlzLnBoYXNlICE9
PSB0aGlzLnBoYXNlcy5TVEFSVEVEKSB7CisgICAgICAgICAgICBjb25zb2xlLmxvZygiVEVTVCBT
VEFSVCIsIHRoaXMubmFtZSk7CisgICAgICAgIH0KICAgICAgICAgdGhpcy5waGFzZSA9IHRoaXMu
cGhhc2VzLlNUQVJURUQ7CiAgICAgICAgIC8vSWYgd2UgZG9uJ3QgZ2V0IGEgcmVzdWx0IGJlZm9y
ZSB0aGUgaGFybmVzcyB0aW1lcyBvdXQgdGhhdCB3aWxsIGJlIGEgdGVzdCB0aW1lb3V0CiAgICAg
ICAgIHRoaXMuc2V0X3N0YXR1cyh0aGlzLlRJTUVPVVQsICJUZXN0IHRpbWVkIG91dCIpOwogCiAg
ICAgICAgIHRlc3RzLnN0YXJ0ZWQgPSB0cnVlOworICAgICAgICB0ZXN0cy5jdXJyZW50X3Rlc3Qg
PSB0aGlzOwogICAgICAgICB0ZXN0cy5ub3RpZnlfdGVzdF9zdGF0ZSh0aGlzKTsKIAogICAgICAg
ICBpZiAodGhpcy50aW1lb3V0X2lkID09PSBudWxsKSB7CkBAIC0yMDQwLDYgKzIwNzksMTAgQEAg
cG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICB0aGlzX29i
aiA9IHRoaXM7CiAgICAgICAgIH0KIAorICAgICAgICBpZiAoc2V0dGluZ3MuZGVidWcpIHsKKyAg
ICAgICAgICAgIGNvbnNvbGUuZGVidWcoIlRFU1QgU1RFUCIsIHRoaXMubmFtZSk7CisgICAgICAg
IH0KKwogICAgICAgICB0cnkgewogICAgICAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkodGhpc19v
YmosIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMikpOwogICAgICAgICB9
IGNhdGNoIChlKSB7CkBAIC0yMDUzLDYgKzIwOTYsOCBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0
aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgIHRoaXMuc2V0X3N0YXR1cyhzdGF0dXMsIG1lc3Nh
Z2UsIHN0YWNrKTsKICAgICAgICAgICAgIHRoaXMucGhhc2UgPSB0aGlzLnBoYXNlcy5IQVNfUkVT
VUxUOwogICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgIH0gZmluYWxseSB7CisgICAg
ICAgICAgICB0aGlzLmN1cnJlbnRfdGVzdCA9IG51bGw7CiAgICAgICAgIH0KICAgICB9OwogCkBA
IC0yMjcwLDYgKzIzMTUsMTIgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10u
CiAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0X2lkKTsKICAgICAgICAgfQog
CisgICAgICAgIGlmIChzZXR0aW5ncy5kZWJ1ZykgeworICAgICAgICAgICAgY29uc29sZS5sb2co
IlRFU1QgRE9ORSIsCisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXR1cywKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSwpCisgICAgICAgIH0KKwogICAgICAgICB0aGlz
LmNsZWFudXAoKTsKICAgICB9OwogCkBAIC0yNDY5LDYgKzI1MjAsMTAgQEAgcG9saWNpZXMgYW5k
IGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAgICAgfSk7CiAgICAgfQogCisg
ICAgUmVtb3RlVGVzdC5wcm90b3R5cGUuZm9ybWF0X3N0YXR1cyA9IGZ1bmN0aW9uKCkgeworICAg
ICAgICByZXR1cm4gVGVzdC5wcm90b3R5cGUuc3RhdHVzX2Zvcm1hdHNbdGhpcy5zdGF0dXNdOwor
ICAgIH0KKwogICAgIC8qCiAgICAgICogQSBSZW1vdGVDb250ZXh0IGxpc3RlbnMgZm9yIHRlc3Qg
ZXZlbnRzIGZyb20gYSByZW1vdGUgdGVzdCBjb250ZXh0LCBzdWNoCiAgICAgICogYXMgYW5vdGhl
ciB3aW5kb3cgb3IgYSB3b3JrZXIuIFRoZXNlIGV2ZW50cyBhcmUgdGhlbiB1c2VkIHRvIGNvbnN0
cnVjdApAQCAtMjU3Nyw2ICsyNjMyLDE2IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9y
bXMgWzNdLgogICAgICAgICAgICAgdGVzdHMuc2V0X3N0YXR1cyhkYXRhLnN0YXR1cy5zdGF0dXMs
IGRhdGEuc3RhdHVzLm1lc3NhZ2UsIGRhdGEuc3RhdHVzLnNhY2spOwogICAgICAgICB9CiAKKyAg
ICAgICAgZm9yIChsZXQgYXNzZXJ0IG9mIGRhdGEuYXNzZXJ0cykgeworICAgICAgICAgICAgdmFy
IHJlY29yZCA9IG5ldyBBc3NlcnRSZWNvcmQoKTsKKyAgICAgICAgICAgIHJlY29yZC5hc3NlcnRf
bmFtZSA9IGFzc2VydC5hc3NlcnRfbmFtZTsKKyAgICAgICAgICAgIHJlY29yZC5hcmdzID0gYXNz
ZXJ0LmFyZ3M7CisgICAgICAgICAgICByZWNvcmQudGVzdCA9IGFzc2VydC50ZXN0ICE9IG51bGwg
PyB0aGlzLnRlc3RzW2Fzc2VydC50ZXN0LmluZGV4XSA6IG51bGw7CisgICAgICAgICAgICByZWNv
cmQuc3RhdHVzID0gYXNzZXJ0LnN0YXR1czsKKyAgICAgICAgICAgIHJlY29yZC5zdGFjayA9IGFz
c2VydC5zdGFjazsKKyAgICAgICAgICAgIHRlc3RzLmFzc2VydHNfcnVuLnB1c2gocmVjb3JkKTsK
KyAgICAgICAgfQorCiAgICAgICAgIHRoaXMubWVzc2FnZV90YXJnZXQucmVtb3ZlRXZlbnRMaXN0
ZW5lcigibWVzc2FnZSIsIHRoaXMubWVzc2FnZV9oYW5kbGVyKTsKICAgICAgICAgdGhpcy5ydW5u
aW5nID0gZmFsc2U7CiAKQEAgLTI2MjYsNiArMjY5MSwxNCBAQCBwb2xpY2llcyBhbmQgY29udHJp
YnV0aW9uIGZvcm1zIFszXS4KIAogICAgIFRlc3RzU3RhdHVzLnByb3RvdHlwZSA9IG1lcmdlKHt9
LCBUZXN0c1N0YXR1cy5zdGF0dXNlcyk7CiAKKyAgICBUZXN0c1N0YXR1cy5wcm90b3R5cGUuZm9y
bWF0cyA9IHsKKyAgICAgICAgMDogIk9LIiwKKyAgICAgICAgMTogIkVycm9yIiwKKyAgICAgICAg
MjogIlRpbWVvdXQiLAorICAgICAgICAzOiAiT3B0aW9uYWwgRmVhdHVyZSBVbnN1cHBvcnRlZCIK
KyAgICB9CisKKwogICAgIFRlc3RzU3RhdHVzLnByb3RvdHlwZS5zdHJ1Y3R1cmVkX2Nsb25lID0g
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9zdHJ1Y3R1cmVkX2Nsb25lKSB7
CkBAIC0yNjQwLDYgKzI3MTMsMjcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBb
M10uCiAgICAgICAgIHJldHVybiB0aGlzLl9zdHJ1Y3R1cmVkX2Nsb25lOwogICAgIH07CiAKKyAg
ICBUZXN0c1N0YXR1cy5wcm90b3R5cGUuZm9ybWF0X3N0YXR1cyA9IGZ1bmN0aW9uKCkgeworICAg
ICAgICByZXR1cm4gdGhpcy5mb3JtYXRzW3RoaXMuc3RhdHVzXTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBBc3NlcnRSZWNvcmQodGVzdCwgYXNzZXJ0X25hbWUsIGFyZ3MgPSBbXSkgeworICAgICAg
ICB0aGlzLmFzc2VydF9uYW1lID0gYXNzZXJ0X25hbWU7CisgICAgICAgIHRoaXMudGVzdCA9IHRl
c3Q7CisgICAgICAgIC8vIEF2b2lkIGtlZXBpbmcgY29tcGxleCBvYmplY3RzIGFsaXZlCisgICAg
ICAgIHRoaXMuYXJncyA9IGFyZ3MubWFwKHggPT4gZm9ybWF0X3ZhbHVlKHgpLnJlcGxhY2UoL1xu
L2csICIgIikpOworICAgICAgICB0aGlzLnN0YXR1cyA9IG51bGw7CisgICAgfQorCisgICAgQXNz
ZXJ0UmVjb3JkLnByb3RvdHlwZS5zdHJ1Y3R1cmVkX2Nsb25lID0gZnVuY3Rpb24oKSB7CisgICAg
ICAgIHJldHVybiB7CisgICAgICAgICAgICBhc3NlcnRfbmFtZTogdGhpcy5hc3NlcnRfbmFtZSwK
KyAgICAgICAgICAgIHRlc3Q6IHRoaXMudGVzdCA/IHRoaXMudGVzdC5zdHJ1Y3R1cmVkX2Nsb25l
KCkgOiBudWxsLAorICAgICAgICAgICAgYXJnczogdGhpcy5hcmdzLAorICAgICAgICAgICAgc3Rh
dHVzOiB0aGlzLnN0YXR1cywKKyAgICAgICAgfQorICAgIH0KKwogICAgIGZ1bmN0aW9uIFRlc3Rz
KCkKICAgICB7CiAgICAgICAgIHRoaXMudGVzdHMgPSBbXTsKQEAgLTI2NzksNiArMjc3MywxOCBA
QCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgdGhpcy5oaWRl
X3Rlc3Rfc3RhdGUgPSBmYWxzZTsKICAgICAgICAgdGhpcy5wZW5kaW5nX3JlbW90ZXMgPSBbXTsK
IAorICAgICAgICB0aGlzLmN1cnJlbnRfdGVzdCA9IG51bGw7CisgICAgICAgIHRoaXMuYXNzZXJ0
c19ydW4gPSBbXTsKKworICAgICAgICAvLyBUcmFjayB3aGV0aGVyIG91dHB1dCBpcyBlbmFibGVk
LCBhbmQgdGh1cyB3aGV0aGVyIG9yIG5vdCB3ZSBzaG91bGQKKyAgICAgICAgLy8gdHJhY2sgYXNz
ZXJ0cy4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gT24gd29ya2VycyB3ZSBkb24ndCBnZXQgcHJv
cGVydGllcyBzZXQgZnJvbSB0ZXN0aGFybmVzc3JlcG9ydC5qcywgc28KKyAgICAgICAgLy8gd2Ug
ZG9uJ3Qga25vdyB3aGV0aGVyIG9yIG5vdCB0byB0cmFjayBhc3NlcnRzLiBUbyBhdm9pZCB0aGUK
KyAgICAgICAgLy8gcmVzdWx0aW5nIHBlcmZvcm1hbmNlIGhpdCwgd2UgYXNzdW1lIHdlIGFyZSBu
b3QgbWVhbnQgdG8uIFRoaXMgbWVhbnMKKyAgICAgICAgLy8gdGhhdCBhc3NlcnQgdHJhY2tpbmcg
ZG9lcyBub3QgZnVuY3Rpb24gb24gd29ya2Vycy4KKyAgICAgICAgdGhpcy5vdXRwdXQgPSBzZXR0
aW5ncy5vdXRwdXQgJiYgJ2RvY3VtZW50JyBpbiBnbG9iYWxfc2NvcGU7CisKICAgICAgICAgdGhp
cy5zdGF0dXMgPSBuZXcgVGVzdHNTdGF0dXMoKTsKIAogICAgICAgICB2YXIgdGhpc19vYmogPSB0
aGlzOwpAQCAtMjcyNiw2ICsyODMyLDEwIEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9y
bXMgWzNdLgogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSBlbHNlIGlm
IChwID09ICJoaWRlX3Rlc3Rfc3RhdGUiKSB7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGlk
ZV90ZXN0X3N0YXRlID0gdmFsdWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwID09ICJv
dXRwdXQiKSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMub3V0cHV0ID0gdmFsdWU7CisgICAg
ICAgICAgICAgICAgfSBlbHNlIGlmIChwID09PSAiZGVidWciKSB7CisgICAgICAgICAgICAgICAg
ICAgIHNldHRpbmdzLmRlYnVnID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQogICAgICAgICB9CkBAIC0yNzUwLDcgKzI4NjAsNyBAQCBwb2xpY2llcyBhbmQgY29udHJp
YnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgdGhpcy53YWl0X2Zvcl9maW5pc2ggPSB0cnVlOwog
ICAgICAgICB0aGlzLmZpbGVfaXNfdGVzdCA9IHRydWU7CiAgICAgICAgIC8vIENyZWF0ZSB0aGUg
dGVzdCwgd2hpY2ggd2lsbCBhZGQgaXQgdG8gdGhlIGxpc3Qgb2YgdGVzdHMKLSAgICAgICAgYXN5
bmNfdGVzdCgpOworICAgICAgICB0ZXN0cy5jdXJyZW50X3Rlc3QgPSBhc3luY190ZXN0KCk7CiAg
ICAgfTsKIAogICAgIFRlc3RzLnByb3RvdHlwZS5zZXRfc3RhdHVzID0gZnVuY3Rpb24oc3RhdHVz
LCBtZXNzYWdlLCBzdGFjaykKQEAgLTI5MTQsNiArMzAyNCwxNiBAQCBwb2xpY2llcyBhbmQgY29u
dHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICAgIGFsbF9jb21wbGV0ZSk7CiAg
ICAgfTsKIAorICAgIFRlc3RzLnByb3RvdHlwZS5zZXRfYXNzZXJ0ID0gZnVuY3Rpb24oYXNzZXJ0
X25hbWUsIGFyZ3MpIHsKKyAgICAgICAgdGhpcy5hc3NlcnRzX3J1bi5wdXNoKG5ldyBBc3NlcnRS
ZWNvcmQodGhpcy5jdXJyZW50X3Rlc3QsIGFzc2VydF9uYW1lLCBhcmdzKSkKKyAgICB9CisKKyAg
ICBUZXN0cy5wcm90b3R5cGUuc2V0X2Fzc2VydF9zdGF0dXMgPSBmdW5jdGlvbihzdGF0dXMsIHN0
YWNrKSB7CisgICAgICAgIGxldCBhc3NlcnRfcmVjb3JkID0gdGhpcy5hc3NlcnRzX3J1blt0aGlz
LmFzc2VydHNfcnVuLmxlbmd0aCAtIDFdOworICAgICAgICBhc3NlcnRfcmVjb3JkLnN0YXR1cyA9
IHN0YXR1czsKKyAgICAgICAgYXNzZXJ0X3JlY29yZC5zdGFjayA9IHN0YWNrOworICAgIH0KKwog
ICAgIC8qKgogICAgICAqIFVwZGF0ZSB0aGUgaGFybmVzcyBzdGF0dXMgdG8gcmVmbGVjdCBhbiB1
bnJlY292ZXJhYmxlIGhhcm5lc3MgZXJyb3IgdGhhdAogICAgICAqIHNob3VsZCBjYW5jZWwgYWxs
IGZ1cnRoZXIgdGVzdGluZy4gVXBkYXRlIGFsbCBwcmV2aW91c2x5LWRlZmluZWQgdGVzdHMKQEAg
LTI5NTYsMjIgKzMwNzYsMTYgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10u
CiAgICAgfQogCiAgICAgZnVuY3Rpb24gc2FuaXRpemVfdW5wYWlyZWRfc3Vycm9nYXRlcyhzdHIp
IHsKLSAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oW1x1ZDgwMC1cdWRiZmZdKSg/IVtcdWRj
MDAtXHVkZmZmXSkvZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKF8sIHVu
cGFpcmVkKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBjb2RlX3VuaXRfc3RyKHVucGFpcmVkKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0pCi0gICAgICAgICAgICAgICAgICAvLyBUaGlzIHJlcGxhY2VtZW50
IGlzIGludGVudGlvbmFsbHkgaW1wbGVtZW50ZWQgd2l0aG91dCBhbgotICAgICAgICAgICAgICAg
ICAgLy8gRVMyMDE4IG5lZ2F0aXZlIGxvb2tiZWhpbmQgYXNzZXJ0aW9uIHRvIHN1cHBvcnQgcnVu
dGltZXMKLSAgICAgICAgICAgICAgICAgIC8vIHdoaWNoIGRvIG5vdCB5ZXQgaW1wbGVtZW50IHRo
YXQgbGFuZ3VhZ2UgZmVhdHVyZS4KLSAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8oXnxbXlx1
ZDgwMC1cdWRiZmZdKShbXHVkYzAwLVx1ZGZmZl0pL2csCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICBmdW5jdGlvbihfLCBwcmV2aW91cywgdW5wYWlyZWQpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICgvW1x1ZGMwMC1cdWRmZmZdLy50ZXN0KHByZXZpb3VzKSkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzID0gY29kZV91bml0X3N0cihw
cmV2aW91cyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91cyArIGNvZGVfdW5pdF9zdHIodW5wYWly
ZWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIHJldHVybiBzdHIu
cmVwbGFjZSgKKyAgICAgICAgICAgIC8oW1x1ZDgwMC1cdWRiZmZdKykoPyFbXHVkYzAwLVx1ZGZm
Zl0pfChefFteXHVkODAwLVx1ZGJmZl0pKFtcdWRjMDAtXHVkZmZmXSspL2csCisgICAgICAgICAg
ICBmdW5jdGlvbihfLCBsb3csIHByZWZpeCwgaGlnaCkgeworICAgICAgICAgICAgICAgIHZhciBv
dXRwdXQgPSBwcmVmaXggfHwgIiI7ICAvLyBwcmVmaXggbWF5IGJlIHVuZGVmaW5lZAorICAgICAg
ICAgICAgICAgIHZhciBzdHJpbmcgPSBsb3cgfHwgaGlnaDsgIC8vIG9ubHkgb25lIG9mIHRoZXNl
IGFsdGVybmF0ZXMgY2FuIG1hdGNoCisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBzdHJpbmcubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9IGNv
ZGVfdW5pdF9zdHIoc3RyaW5nW2ldKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgcmV0dXJuIG91dHB1dDsKKyAgICAgICAgICAgIH0pOwogICAgIH0KIAogICAgIGZ1bmN0aW9u
IHNhbml0aXplX2FsbF91bnBhaXJlZF9zdXJyb2dhdGVzKHRlc3RzKSB7CkBAIC0zMDE3LDcgKzMx
MzEsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgZm9y
RWFjaCAodGhpcy5hbGxfZG9uZV9jYWxsYmFja3MsCiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9u
KGNhbGxiYWNrKQogICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBjYWxs
YmFjayh0aGlzX29iai50ZXN0cywgdGhpc19vYmouc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAg
ICAgIGNhbGxiYWNrKHRoaXNfb2JqLnRlc3RzLCB0aGlzX29iai5zdGF0dXMsIHRoaXNfb2JqLmFz
c2VydHNfcnVuKTsKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgfTsKIApAQCAtMzI0Myw3ICsz
MzU3LDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgIH0K
ICAgICB9OwogCi0gICAgT3V0cHV0LnByb3RvdHlwZS5zaG93X3Jlc3VsdHMgPSBmdW5jdGlvbiAo
dGVzdHMsIGhhcm5lc3Nfc3RhdHVzKSB7CisgICAgT3V0cHV0LnByb3RvdHlwZS5zaG93X3Jlc3Vs
dHMgPSBmdW5jdGlvbiAodGVzdHMsIGhhcm5lc3Nfc3RhdHVzLCBhc3NlcnRzX3J1bikgewogICAg
ICAgICBpZiAodGhpcy5waGFzZSA+PSB0aGlzLkNPTVBMRVRFKSB7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KQEAgLTMyNzIsMjMgKzMzODYsMTAgQEAgcG9saWNpZXMgYW5kIGNvbnRy
aWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICBoZWFkc1swXS5hcHBlbmRDaGlsZChzdHls
ZXNoZWV0KTsKICAgICAgICAgfQogCi0gICAgICAgIHZhciBzdGF0dXNfdGV4dF9oYXJuZXNzID0g
e307Ci0gICAgICAgIHN0YXR1c190ZXh0X2hhcm5lc3NbaGFybmVzc19zdGF0dXMuT0tdID0gIk9L
IjsKLSAgICAgICAgc3RhdHVzX3RleHRfaGFybmVzc1toYXJuZXNzX3N0YXR1cy5FUlJPUl0gPSAi
RXJyb3IiOwotICAgICAgICBzdGF0dXNfdGV4dF9oYXJuZXNzW2hhcm5lc3Nfc3RhdHVzLlRJTUVP
VVRdID0gIlRpbWVvdXQiOwotICAgICAgICBzdGF0dXNfdGV4dF9oYXJuZXNzW2hhcm5lc3Nfc3Rh
dHVzLlBSRUNPTkRJVElPTl9GQUlMRURdID0gIk9wdGlvbmFsIEZlYXR1cmUgVW5zdXBwb3J0ZWQi
OwotCi0gICAgICAgIHZhciBzdGF0dXNfdGV4dCA9IHt9OwotICAgICAgICBzdGF0dXNfdGV4dFtU
ZXN0LnByb3RvdHlwZS5QQVNTXSA9ICJQYXNzIjsKLSAgICAgICAgc3RhdHVzX3RleHRbVGVzdC5w
cm90b3R5cGUuRkFJTF0gPSAiRmFpbCI7Ci0gICAgICAgIHN0YXR1c190ZXh0W1Rlc3QucHJvdG90
eXBlLlRJTUVPVVRdID0gIlRpbWVvdXQiOwotICAgICAgICBzdGF0dXNfdGV4dFtUZXN0LnByb3Rv
dHlwZS5OT1RSVU5dID0gIk5vdCBSdW4iOwotICAgICAgICBzdGF0dXNfdGV4dFtUZXN0LnByb3Rv
dHlwZS5QUkVDT05ESVRJT05fRkFJTEVEXSA9ICJPcHRpb25hbCBGZWF0dXJlIFVuc3VwcG9ydGVk
IjsKLQogICAgICAgICB2YXIgc3RhdHVzX251bWJlciA9IHt9OwogICAgICAgICBmb3JFYWNoKHRl
c3RzLAogICAgICAgICAgICAgICAgIGZ1bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgICAgICAgICAg
ICAgdmFyIHN0YXR1cyA9IHN0YXR1c190ZXh0W3Rlc3Quc3RhdHVzXTsKKyAgICAgICAgICAgICAg
ICAgICAgdmFyIHN0YXR1cyA9IHRlc3QuZm9ybWF0X3N0YXR1cygpOwogICAgICAgICAgICAgICAg
ICAgICBpZiAoc3RhdHVzX251bWJlci5oYXNPd25Qcm9wZXJ0eShzdGF0dXMpKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0dXNfbnVtYmVyW3N0YXR1c10gKz0gMTsKICAgICAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKQEAgLTMzMDUsOCArMzQwNiw3IEBAIHBvbGljaWVzIGFuZCBjb250
cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImgy
Iiwge30sICJTdW1tYXJ5Il0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0
aW9uKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewotCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3RhdHVzID0gc3RhdHVzX3RleHRfaGFybmVzc1to
YXJuZXNzX3N0YXR1cy5zdGF0dXNdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdmFyIHN0YXR1cyA9IGhhcm5lc3Nfc3RhdHVzLmZvcm1hdF9zdGF0dXMoKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBydiA9IFtbInNlY3Rpb24iLCB7fSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJwIiwge30sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSGFybmVzcyBz
dGF0dXM6ICIsCkBAIC0zMzI4LDEzICszNDI4LDE0IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRp
b24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigp
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBydiA9IFtbImRpdiIs
IHt9XV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaSA9IDA7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc3RhdHVzX3RleHQuaGFz
T3duUHJvcGVydHkoaSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoc3RhdHVzX251bWJlci5oYXNPd25Qcm9wZXJ0eShzdGF0dXNfdGV4dFtpXSkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHN0YXR1cyA9IHN0
YXR1c190ZXh0W2ldOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBydlswXS5wdXNoKFsiZGl2IiwgeyJjbGFzcyI6c3RhdHVzX2NsYXNzKHN0YXR1cyl9LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKFRlc3QucHJvdG90eXBlLnN0
YXR1c19mb3JtYXRzLmhhc093blByb3BlcnR5KGkpKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1c19udW1iZXIuaGFzT3duUHJvcGVydHkoVGVzdC5w
cm90b3R5cGUuc3RhdHVzX2Zvcm1hdHNbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZhciBzdGF0dXMgPSBUZXN0LnByb3RvdHlwZS5zdGF0dXNfZm9y
bWF0c1tpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnZb
MF0ucHVzaChbImRpdiIsIHt9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbImxhYmVsIiwge30sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImlucHV0Iiwge3R5cGU6ImNoZWNr
Ym94IiwgY2hlY2tlZDoiY2hlY2tlZCJ9XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c19udW1iZXJbc3RhdHVzXSArICIgIiAr
IHN0YXR1c11dKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXR1c19udW1iZXJbc3RhdHVzXSArICIgIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsic3BhbiIsIHsiY2xh
c3MiOnN0YXR1c19jbGFzcyhzdGF0dXMpfSwgc3RhdHVzXV1dKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaSsrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQpAQCAt
MzM1NCwxMyArMzQ1NSwxMyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdmFyIHJlc3VsdF9jbGFzcyA9IGVsZW1lbnQucGFyZW50Tm9kZS5nZXRBdHRyaWJ1dGUoImNs
YXNzIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0X2NsYXNz
ID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJzcGFuW2NsYXNzXSIpLmdldEF0dHJpYnV0ZSgiY2xh
c3MiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdHlsZV9lbGVtZW50
ID0gb3V0cHV0X2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInN0eWxlI2hpZGUtIiArIHJlc3VsdF9j
bGFzcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXRfZWxlbWVu
dCA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICghc3R5bGVfZWxlbWVudCAmJiAhaW5wdXRfZWxlbWVudC5jaGVja2Vk
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVfZWxlbWVudCA9
IG91dHB1dF9kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoeGh0bWxfbnMsICJzdHlsZSIpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlX2VsZW1lbnQuaWQgPSAiaGlk
ZS0iICsgcmVzdWx0X2NsYXNzOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0eWxlX2VsZW1lbnQudGV4dENvbnRlbnQgPSAidGFibGUjcmVzdWx0cyA+IHRib2R5ID4gdHIu
IityZXN1bHRfY2xhc3MrIntkaXNwbGF5Om5vbmV9IjsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdHlsZV9lbGVtZW50LnRleHRDb250ZW50ID0gInRhYmxlI3Jlc3VsdHMg
PiB0Ym9keSA+IHRyLm92ZXJhbGwtIityZXN1bHRfY2xhc3MrIntkaXNwbGF5Om5vbmV9IjsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChzdHlsZV9lbGVtZW50KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0gZWxzZSBpZiAoc3R5bGVfZWxlbWVudCAmJiBpbnB1dF9lbGVtZW50LmNoZWNrZWQpIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZV9lbGVtZW50LnBhcmVu
dE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGVfZWxlbWVudCk7CkBAIC0zNDAxLDYgKzM1MDIsNTIgQEAg
cG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICByZXR1cm4g
Jyc7CiAgICAgICAgIH0KIAorICAgICAgICB2YXIgYXNzZXJ0c19ydW5fYnlfdGVzdCA9IG5ldyBN
YXAoKTsKKyAgICAgICAgYXNzZXJ0c19ydW4uZm9yRWFjaChhc3NlcnQgPT4geworICAgICAgICAg
ICAgaWYgKCFhc3NlcnRzX3J1bl9ieV90ZXN0Lmhhcyhhc3NlcnQudGVzdCkpIHsKKyAgICAgICAg
ICAgICAgICBhc3NlcnRzX3J1bl9ieV90ZXN0LnNldChhc3NlcnQudGVzdCwgW10pOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgYXNzZXJ0c19ydW5fYnlfdGVzdC5nZXQoYXNzZXJ0LnRlc3Qp
LnB1c2goYXNzZXJ0KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZnVuY3Rpb24gZ2V0X2Fzc2Vy
dHNfb3V0cHV0KHRlc3QpIHsKKyAgICAgICAgICAgIHZhciBhc3NlcnRzID0gYXNzZXJ0c19ydW5f
YnlfdGVzdC5nZXQodGVzdCk7CisgICAgICAgICAgICBpZiAoIWFzc2VydHMpIHsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gIk5vIGFzc2VydHMgcmFuIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIHJ2ID0gIjx0YWJsZT4iOworICAgICAgICAgICAgcnYgKz0gYXNzZXJ0cy5tYXAoYXNzZXJ0
ID0+IHsKKyAgICAgICAgICAgICAgICB2YXIgb3V0cHV0X2ZuID0gIjxzdHJvbmc+IiArIGVzY2Fw
ZV9odG1sKGFzc2VydC5hc3NlcnRfbmFtZSkgKyAiPC9zdHJvbmc+KCI7CisgICAgICAgICAgICAg
ICAgdmFyIHByZWZpeF9sZW4gPSBvdXRwdXRfZm4ubGVuZ3RoOworICAgICAgICAgICAgICAgIHZh
ciBvdXRwdXRfYXJncyA9IGFzc2VydC5hcmdzOworICAgICAgICAgICAgICAgIHZhciBvdXRwdXRf
bGVuID0gb3V0cHV0X2FyZ3MucmVkdWNlKChwcmV2LCBjdXJyZW50KSA9PiBwcmV2K2N1cnJlbnQs
IHByZWZpeF9sZW4pOworICAgICAgICAgICAgICAgIGlmIChvdXRwdXRfbGVuW291dHB1dF9sZW4u
bGVuZ3RoIC0gMV0gPiA1MCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXRfYXJncyA9IG91
dHB1dF9hcmdzLm1hcCgoeCwgaSkgPT4KKyAgICAgICAgICAgICAgICAgICAgKGkgPiAwID8gIiAg
Ii5yZXBlYXQocHJlZml4X2xlbikgOiAiIiApKyB4ICsgKGkgPCBvdXRwdXRfYXJncy5sZW5ndGgg
LSAxID8gIixcbiIgOiAiIikpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgICAgIG91dHB1dF9hcmdzID0gb3V0cHV0X2FyZ3MubWFwKCh4LCBpKSA9PiB4ICsgKGkg
PCBvdXRwdXRfYXJncy5sZW5ndGggLSAxID8gIiwgIiA6ICIiKSk7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIG91dHB1dF9mbiArPSBlc2NhcGVfaHRtbChvdXRwdXRfYXJncy5q
b2luKCIiKSk7CisgICAgICAgICAgICAgICAgb3V0cHV0X2ZuICs9ICcpJzsKKyAgICAgICAgICAg
ICAgICB2YXIgb3V0cHV0X2xvY2F0aW9uOworICAgICAgICAgICAgICAgIGlmIChhc3NlcnQuc3Rh
Y2spIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2xvY2F0aW9uID0gYXNzZXJ0LnN0YWNr
LnNwbGl0KCJcbiIsIDEpWzBdLnJlcGxhY2UoL0A/XHcrOlwvXC9bXiAiXC9dKyg/OjpcZCspPy9n
LCAiICIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gIjx0ciBj
bGFzcz0nb3ZlcmFsbC0iICsKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzX2NsYXNzKFRlc3Qu
cHJvdG90eXBlLnN0YXR1c19mb3JtYXRzW2Fzc2VydC5zdGF0dXNdKSArICInPiIgKworICAgICAg
ICAgICAgICAgICAgICAiPHRkIGNsYXNzPSciICsKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVz
X2NsYXNzKFRlc3QucHJvdG90eXBlLnN0YXR1c19mb3JtYXRzW2Fzc2VydC5zdGF0dXNdKSArICIn
PiIgKworICAgICAgICAgICAgICAgICAgICBUZXN0LnByb3RvdHlwZS5zdGF0dXNfZm9ybWF0c1th
c3NlcnQuc3RhdHVzXSArICI8L3RkPiIgKworICAgICAgICAgICAgICAgICAgICAiPHRkPjxwcmU+
IiArCisgICAgICAgICAgICAgICAgICAgIG91dHB1dF9mbiArCisgICAgICAgICAgICAgICAgICAg
IChvdXRwdXRfbG9jYXRpb24gPyAiXG4iICsgZXNjYXBlX2h0bWwob3V0cHV0X2xvY2F0aW9uKSA6
ICIiKSArCisgICAgICAgICAgICAgICAgICAgICI8L3ByZT48L3RkPjwvdHI+IjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICkuam9pbigiXG4iKTsKKyAgICAgICAgICAgIHJ2ICs9ICI8L3Rh
YmxlPiI7CisgICAgICAgICAgICByZXR1cm4gcnY7CisgICAgICAgIH0KKwogICAgICAgICBsb2cu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHhodG1sX25zLCAic2VjdGlvbiIp
KTsKICAgICAgICAgdmFyIGFzc2VydGlvbnMgPSBoYXNfYXNzZXJ0aW9ucygpOwogICAgICAgICB2
YXIgaHRtbCA9ICI8aDI+RGV0YWlsczwvaDI+PHRhYmxlIGlkPSdyZXN1bHRzJyAiICsgKGFzc2Vy
dGlvbnMgPyAiY2xhc3M9J2Fzc2VydGlvbnMnIiA6ICIiICkgKyAiPiIgKwpAQCAtMzQwOSwxOSAr
MzU1NiwyNiBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAg
ICAgICI8dGg+TWVzc2FnZTwvdGg+PC90cj48L3RoZWFkPiIgKwogICAgICAgICAgICAgIjx0Ym9k
eT4iOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKSB7Ci0g
ICAgICAgICAgICBodG1sICs9ICc8dHIgY2xhc3M9IicgKwotICAgICAgICAgICAgICAgIGVzY2Fw
ZV9odG1sKHN0YXR1c19jbGFzcyhzdGF0dXNfdGV4dFt0ZXN0c1tpXS5zdGF0dXNdKSkgKwotICAg
ICAgICAgICAgICAgICciPjx0ZD4nICsKLSAgICAgICAgICAgICAgICBlc2NhcGVfaHRtbChzdGF0
dXNfdGV4dFt0ZXN0c1tpXS5zdGF0dXNdKSArCisgICAgICAgICAgICB2YXIgdGVzdCA9IHRlc3Rz
W2ldOworICAgICAgICAgICAgaHRtbCArPSAnPHRyIGNsYXNzPSJvdmVyYWxsLScgKworICAgICAg
ICAgICAgICAgIHN0YXR1c19jbGFzcyh0ZXN0LmZvcm1hdF9zdGF0dXMoKSkgKworICAgICAgICAg
ICAgICAgICciPicgKworICAgICAgICAgICAgICAgICc8dGQgY2xhc3M9IicgKworICAgICAgICAg
ICAgICAgIHN0YXR1c19jbGFzcyh0ZXN0LmZvcm1hdF9zdGF0dXMoKSkgKworICAgICAgICAgICAg
ICAgICciPicgKworICAgICAgICAgICAgICAgIHRlc3QuZm9ybWF0X3N0YXR1cygpICsKICAgICAg
ICAgICAgICAgICAiPC90ZD48dGQ+IiArCi0gICAgICAgICAgICAgICAgZXNjYXBlX2h0bWwodGVz
dHNbaV0ubmFtZSkgKworICAgICAgICAgICAgICAgIGVzY2FwZV9odG1sKHRlc3QubmFtZSkgKwog
ICAgICAgICAgICAgICAgICI8L3RkPjx0ZD4iICsKLSAgICAgICAgICAgICAgICAoYXNzZXJ0aW9u
cyA/IGVzY2FwZV9odG1sKGdldF9hc3NlcnRpb24odGVzdHNbaV0pKSArICI8L3RkPjx0ZD4iIDog
IiIpICsKLSAgICAgICAgICAgICAgICBlc2NhcGVfaHRtbCh0ZXN0c1tpXS5tZXNzYWdlID8gdGVz
dHNbaV0ubWVzc2FnZSA6ICIgIikgKworICAgICAgICAgICAgICAgIChhc3NlcnRpb25zID8gZXNj
YXBlX2h0bWwoZ2V0X2Fzc2VydGlvbih0ZXN0KSkgKyAiPC90ZD48dGQ+IiA6ICIiKSArCisgICAg
ICAgICAgICAgICAgZXNjYXBlX2h0bWwodGVzdC5tZXNzYWdlID8gdGVzdHNbaV0ubWVzc2FnZSA6
ICIgIikgKwogICAgICAgICAgICAgICAgICh0ZXN0c1tpXS5zdGFjayA/ICI8cHJlPiIgKwogICAg
ICAgICAgICAgICAgICBlc2NhcGVfaHRtbCh0ZXN0c1tpXS5zdGFjaykgKwotICAgICAgICAgICAg
ICAgICAiPC9wcmU+IjogIiIpICsKLSAgICAgICAgICAgICAgICAiPC90ZD48L3RyPiI7CisgICAg
ICAgICAgICAgICAgICI8L3ByZT4iOiAiIik7CisgICAgICAgICAgICBpZiAoISh0ZXN0IGluc3Rh
bmNlb2YgUmVtb3RlVGVzdCkpIHsKKyAgICAgICAgICAgICAgICAgaHRtbCArPSAiPGRldGFpbHM+
PHN1bW1hcnk+QXNzZXJ0cyBydW48L3N1bW1hcnk+IiArIGdldF9hc3NlcnRzX291dHB1dCh0ZXN0
KSArICI8L2RldGFpbHM+IgorICAgICAgICAgICAgfQorICAgICAgICAgICAgaHRtbCArPSAiPC90
ZD48L3RyPiI7CiAgICAgICAgIH0KICAgICAgICAgaHRtbCArPSAiPC90Ym9keT48L3RhYmxlPiI7
CiAgICAgICAgIHRyeSB7CkBAIC0zNjEyLDE0ICszNzY2LDE3IEBAIHBvbGljaWVzIGFuZCBjb250
cmlidXRpb24gZm9ybXMgWzNdLgogCiAgICAgZnVuY3Rpb24gQXNzZXJ0aW9uRXJyb3IobWVzc2Fn
ZSkKICAgICB7CisgICAgICAgIGlmICh0eXBlb2YgbWVzc2FnZSA9PSAic3RyaW5nIikgeworICAg
ICAgICAgICAgbWVzc2FnZSA9IHNhbml0aXplX3VucGFpcmVkX3N1cnJvZ2F0ZXMobWVzc2FnZSk7
CisgICAgICAgIH0KICAgICAgICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTsKLSAgICAgICAgdGhp
cy5zdGFjayA9IHRoaXMuZ2V0X3N0YWNrKCk7CisgICAgICAgIHRoaXMuc3RhY2sgPSBnZXRfc3Rh
Y2soKTsKICAgICB9CiAgICAgZXhwb3NlKEFzc2VydGlvbkVycm9yLCAiQXNzZXJ0aW9uRXJyb3Ii
KTsKIAogICAgIEFzc2VydGlvbkVycm9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoRXJyb3Iu
cHJvdG90eXBlKTsKIAotICAgIEFzc2VydGlvbkVycm9yLnByb3RvdHlwZS5nZXRfc3RhY2sgPSBm
dW5jdGlvbigpIHsKKyAgICBjb25zdCBnZXRfc3RhY2sgPSBmdW5jdGlvbigpIHsKICAgICAgICAg
dmFyIHN0YWNrID0gbmV3IEVycm9yKCkuc3RhY2s7CiAgICAgICAgIC8vIElFMTEgZG9lcyBub3Qg
aW5pdGlhbGl6ZSAnRXJyb3Iuc3RhY2snIHVudGlsIHRoZSBvYmplY3QgaXMgdGhyb3duLgogICAg
ICAgICBpZiAoIXN0YWNrKSB7CkBAIC0zOTgzLDU0ICs0MTQwLDYyIEBAIHRhYmxlI3Jlc3VsdHMg
e1wKICAgICB3aWR0aDoxMDAlO1wKIH1cCiBcCi10YWJsZSNyZXN1bHRzIHRoOmZpcnN0LWNoaWxk
LFwKLXRhYmxlI3Jlc3VsdHMgdGQ6Zmlyc3QtY2hpbGQge1wKK3RhYmxlI3Jlc3VsdHMgPiB0aGVh
ZCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXAordGFibGUjcmVzdWx0cyA+IHRib2R5ID4gdHIgPiB0
ZDpmaXJzdC1jaGlsZCB7XAogICAgIHdpZHRoOjhlbTtcCiB9XAogXAotdGFibGUjcmVzdWx0cyB0
aDpsYXN0LWNoaWxkLFwKLXRhYmxlI3Jlc3VsdHMgdGQ6bGFzdC1jaGlsZCB7XAordGFibGUjcmVz
dWx0cyA+IHRoZWFkID4gdHIgPiB0aDpsYXN0LWNoaWxkLFwKK3RhYmxlI3Jlc3VsdHMgPiB0aGVh
ZCA+IHRyID4gdGQ6bGFzdC1jaGlsZCB7XAogICAgIHdpZHRoOjUwJTtcCiB9XAogXAotdGFibGUj
cmVzdWx0cy5hc3NlcnRpb25zIHRoOmxhc3QtY2hpbGQsXAotdGFibGUjcmVzdWx0cy5hc3NlcnRp
b25zIHRkOmxhc3QtY2hpbGQge1wKK3RhYmxlI3Jlc3VsdHMuYXNzZXJ0aW9ucyA+IHRoZWFkID4g
dHIgPiB0aDpsYXN0LWNoaWxkLFwKK3RhYmxlI3Jlc3VsdHMuYXNzZXJ0aW9ucyA+IHRib2R5ID4g
dHIgPiB0ZDpsYXN0LWNoaWxkIHtcCiAgICAgd2lkdGg6MzUlO1wKIH1cCiBcCi10YWJsZSNyZXN1
bHRzIHRoIHtcCit0YWJsZSNyZXN1bHRzID4gdGhlYWQgPiA+IHRyID4gdGgge1wKICAgICBwYWRk
aW5nOjA7XAogICAgIHBhZGRpbmctYm90dG9tOjAuNWVtO1wKICAgICBib3JkZXItYm90dG9tOm1l
ZGl1bSBzb2xpZCBibGFjaztcCiB9XAogXAotdGFibGUjcmVzdWx0cyB0ZCB7XAordGFibGUjcmVz
dWx0cyA+IHRib2R5ID4gdHI+IHRkIHtcCiAgICAgcGFkZGluZzoxZW07XAogICAgIHBhZGRpbmct
Ym90dG9tOjAuNWVtO1wKICAgICBib3JkZXItYm90dG9tOnRoaW4gc29saWQgYmxhY2s7XAogfVwK
IFwKLXRyLnBhc3MgPiB0ZDpmaXJzdC1jaGlsZCB7XAorLnBhc3Mge1wKICAgICBjb2xvcjpncmVl
bjtcCiB9XAogXAotdHIuZmFpbCA+IHRkOmZpcnN0LWNoaWxkIHtcCisuZmFpbCB7XAogICAgIGNv
bG9yOnJlZDtcCiB9XAogXAotdHIudGltZW91dCA+IHRkOmZpcnN0LWNoaWxkIHtcCit0ci50aW1l
b3V0IHtcCiAgICAgY29sb3I6cmVkO1wKIH1cCiBcCi10ci5ub3RydW4gPiB0ZDpmaXJzdC1jaGls
ZCB7XAordHIubm90cnVuIHtcCiAgICAgY29sb3I6Ymx1ZTtcCiB9XAogXAotdHIub3B0aW9uYWx1
bnN1cHBvcnRlZCA+IHRkOmZpcnN0LWNoaWxkIHtcCit0ci5vcHRpb25hbHVuc3VwcG9ydGVkIHtc
CiAgICAgY29sb3I6Ymx1ZTtcCiB9XAogXAotLnBhc3MgPiB0ZDpmaXJzdC1jaGlsZCwgLmZhaWwg
PiB0ZDpmaXJzdC1jaGlsZCwgLnRpbWVvdXQgPiB0ZDpmaXJzdC1jaGlsZCwgLm5vdHJ1biA+IHRk
OmZpcnN0LWNoaWxkLCAub3B0aW9uYWx1bnN1cHBvcnRlZCA+IHRkOmZpcnN0LWNoaWxkIHtcCisu
b2sge1wKKyAgICBjb2xvcjpncmVlbjtcCit9XAorXAorLmVycm9yIHtcCisgICAgY29sb3I6cmVk
O1wKK31cCitcCisucGFzcywgLmZhaWwsIC50aW1lb3V0LCAubm90cnVuLCAub3B0aW9uYWx1bnN1
cHBvcnRlZCAub2ssIC50aW1lb3V0LCAuZXJyb3Ige1wKICAgICBmb250LXZhcmlhbnQ6c21hbGwt
Y2FwcztcCiB9XAogXApAQCAtNDA0NywyMiArNDIxMiw2IEBAIHRhYmxlI3Jlc3VsdHMgc3Bhbi5h
Y3R1YWwge1wKICAgICBmb250LWZhbWlseTpEZWphVnUgU2FucyBNb25vLCBCaXRzdHJlYW0gVmVy
YSBTYW5zIE1vbm8sIE1vbm9zcGFjZTtcCiAgICAgd2hpdGUtc3BhY2U6cHJlO1wKIH1cCi1cCi1z
cGFuLm9rIHtcCi0gICAgY29sb3I6Z3JlZW47XAotfVwKLVwKLXRyLmVycm9yIHtcCi0gICAgY29s
b3I6cmVkO1wKLX1cCi1cCi1zcGFuLnRpbWVvdXQge1wKLSAgICBjb2xvcjpyZWQ7XAotfVwKLVwK
LXNwYW4ub2ssIHNwYW4udGltZW91dCwgc3Bhbi5lcnJvciB7XAotICAgIGZvbnQtdmFyaWFudDpz
bWFsbC1jYXBzO1wKLX1cCiAiOwogCiB9KShzZWxmKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3dlYmlkbDIvbGliL1JF
QURNRS5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3dlYmlkbDIvbGliL1JFQURNRS5tZAppbmRleCAxYmQ1ODMyNjlkMjkyOWExNmIxYzdh
ZDBjNThmYWI2ZTk5YjcyYTEwLi5hZjBhZjNhOTAyZjJmM2EwMWFiYTRjZmQ0OTRmMTQ0MzQ0MDg4
OGM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc291cmNlcy93ZWJpZGwyL2xpYi9SRUFETUUubWQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvd2ViaWRsMi9saWIvUkVBRE1F
Lm1kCkBAIC0xLDQgKzEsNiBAQAogVGhpcyBkaXJlY3RvcnkgY29udGFpbnMgYSBidWlsdCB2ZXJz
aW9uIG9mIHRoZSBbd2ViaWRsMi5qcyBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vdzNjL3dl
YmlkbDIuanMpLgogSXQgaXMgYnVpbHQgYnkgcnVubmluZyBgbnBtIHJ1biBidWlsZC1kZWJ1Z2Ag
YXQgdGhlIHJvb3Qgb2YgdGhhdCByZXBvc2l0b3J5LgogCitDdXJyZW50bHkgdXNpbmcgd2ViaWRs
Mi5qc0AyNC4xLjEgKDM3MmVhODNlYWExMGY2MGFkZmY0OWJkMGY0ZjNjZTZhMTFkNmZiZWMpLgor
CiBUaGUgYHdlYmlkbDIuanMuaGVhZGVyc2AgZmlsZSBpcyBhIGxvY2FsIGFkZGl0aW9uIHRvIGVu
c3VyZSB0aGUgc2NyaXB0IGlzIGludGVycHJldGVkIGFzIFVURi04LgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvd2ViaWRs
Mi9saWIvd2ViaWRsMi5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3dlYmlkbDIvbGliL3dlYmlkbDIuanMKaW5kZXggZDcwNzkwNWZhNjNl
MTY4ODZlNGI4OWU2YTQwM2NkYWM2MmQ3ZGFkZC4uMzIyZjBlMTFhNmFlNTZlYjY1YTFlNTc0ODJm
ZjUyMGIwNjU3ZGNkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvd2ViaWRsMi9saWIvd2ViaWRsMi5qcworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy93ZWJpZGwy
L2xpYi93ZWJpZGwyLmpzCkBAIC03LDEyNCArNywxOCBAQAogCQlleHBvcnRzWyJXZWJJREwyIl0g
PSBmYWN0b3J5KCk7CiAJZWxzZQogCQlyb290WyJXZWJJREwyIl0gPSBmYWN0b3J5KCk7Ci19KSh0
aGlzLCBmdW5jdGlvbigpIHsKLXJldHVybiAvKioqKioqLyAoZnVuY3Rpb24obW9kdWxlcykgeyAv
LyB3ZWJwYWNrQm9vdHN0cmFwCi0vKioqKioqLyAJLy8gVGhlIG1vZHVsZSBjYWNoZQotLyoqKioq
Ki8gCXZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307Ci0vKioqKioqLwotLyoqKioqKi8gCS8vIFRo
ZSByZXF1aXJlIGZ1bmN0aW9uCi0vKioqKioqLyAJZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVf
Xyhtb2R1bGVJZCkgewotLyoqKioqKi8KLS8qKioqKiovIAkJLy8gQ2hlY2sgaWYgbW9kdWxlIGlz
IGluIGNhY2hlCi0vKioqKioqLyAJCWlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7Ci0v
KioqKioqLyAJCQlyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0czsKLS8q
KioqKiovIAkJfQotLyoqKioqKi8gCQkvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0
IGludG8gdGhlIGNhY2hlKQotLyoqKioqKi8gCQl2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxl
c1ttb2R1bGVJZF0gPSB7Ci0vKioqKioqLyAJCQlpOiBtb2R1bGVJZCwKLS8qKioqKiovIAkJCWw6
IGZhbHNlLAotLyoqKioqKi8gCQkJZXhwb3J0czoge30KLS8qKioqKiovIAkJfTsKLS8qKioqKiov
Ci0vKioqKioqLyAJCS8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvbgotLyoqKioqKi8gCQlt
b2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBv
cnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTsKLS8qKioqKiovCi0vKioqKioqLyAJCS8vIEZsYWcg
dGhlIG1vZHVsZSBhcyBsb2FkZWQKLS8qKioqKiovIAkJbW9kdWxlLmwgPSB0cnVlOwotLyoqKioq
Ki8KLS8qKioqKiovIAkJLy8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGUKLS8qKioq
KiovIAkJcmV0dXJuIG1vZHVsZS5leHBvcnRzOwotLyoqKioqKi8gCX0KLS8qKioqKiovCi0vKioq
KioqLwotLyoqKioqKi8gCS8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19t
b2R1bGVzX18pCi0vKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlczsKLS8q
KioqKiovCi0vKioqKioqLyAJLy8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGUKLS8qKioqKiovIAlf
X3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzOwotLyoqKioqKi8KLS8qKioq
KiovIAkvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHMKLS8qKioq
KiovIAlfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0
ZXIpIHsKLS8qKioqKiovIAkJaWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1l
KSkgewotLyoqKioqKi8gCQkJT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsg
ZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7Ci0vKioqKioqLyAJCX0KLS8qKioqKiov
IAl9OwotLyoqKioqKi8KLS8qKioqKiovIAkvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRz
Ci0vKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykgewot
LyoqKioqKi8gCQlpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9T
dHJpbmdUYWcpIHsKLS8qKioqKiovIAkJCU9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBT
eW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pOwotLyoqKioqKi8gCQl9Ci0v
KioqKioqLyAJCU9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsg
dmFsdWU6IHRydWUgfSk7Ci0vKioqKioqLyAJfTsKLS8qKioqKiovCi0vKioqKioqLyAJLy8gY3Jl
YXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0Ci0vKioqKioqLyAJLy8gbW9kZSAmIDE6IHZhbHVl
IGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0Ci0vKioqKioqLyAJLy8gbW9kZSAmIDI6IG1lcmdl
IGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zCi0vKioqKioqLyAJLy8gbW9kZSAm
IDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0Ci0vKioqKioqLyAJLy8gbW9k
ZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZQotLyoqKioqKi8gCV9fd2VicGFja19yZXF1aXJl
X18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7Ci0vKioqKioqLyAJCWlmKG1vZGUgJiAxKSB2
YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpOwotLyoqKioqKi8gCQlpZihtb2RlICYg
OCkgcmV0dXJuIHZhbHVlOwotLyoqKioqKi8gCQlpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1
ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVl
OwotLyoqKioqKi8gCQl2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpOwotLyoqKioqKi8gCQlf
X3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpOwotLyoqKioqKi8gCQlPYmplY3QuZGVmaW5lUHJvcGVy
dHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7Ci0v
KioqKioqLyAJCWlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZh
ciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihr
ZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTsKLS8qKioqKiovIAkJ
cmV0dXJuIG5zOwotLyoqKioqKi8gCX07Ci0vKioqKioqLwotLyoqKioqKi8gCS8vIGdldERlZmF1
bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1
bGVzCi0vKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7
Ci0vKioqKioqLyAJCXZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgPwot
LyoqKioqKi8gCQkJZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVs
dCddOyB9IDoKLS8qKioqKiovIAkJCWZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVy
biBtb2R1bGU7IH07Ci0vKioqKioqLyAJCV9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdh
JywgZ2V0dGVyKTsKLS8qKioqKiovIAkJcmV0dXJuIGdldHRlcjsKLS8qKioqKiovIAl9OwotLyoq
KioqKi8KLS8qKioqKiovIAkvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwK
LS8qKioqKiovIAlfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3Bl
cnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0
LCBwcm9wZXJ0eSk7IH07Ci0vKioqKioqLwotLyoqKioqKi8gCS8vIF9fd2VicGFja19wdWJsaWNf
cGF0aF9fCi0vKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5wID0gIiI7Ci0vKioqKioqLwot
LyoqKioqKi8KLS8qKioqKiovIAkvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9y
dHMKLS8qKioqKiovIAlyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWly
ZV9fLnMgPSAwKTsKLS8qKioqKiovIH0pCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoqKioqKi8gKFsK
LS8qIDAgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9f
d2VicGFja19yZXF1aXJlX18pIHsKLQotInVzZSBzdHJpY3QiOwotX193ZWJwYWNrX3JlcXVpcmVf
Xy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9saWJf
d2ViaWRsMl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVp
cmVfXygxKTsKLS8qIGhhcm1vbnkgcmVleHBvcnQgKHNhZmUpICovIF9fd2VicGFja19yZXF1aXJl
X18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAicGFyc2UiLCBmdW5jdGlvbigpIHsgcmV0dXJuIF9s
aWJfd2ViaWRsMl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJwYXJzZSJdOyB9KTsK
LQotLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9saWJfd3JpdGVyX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMwKTsKLS8qIGhhcm1vbnkgcmVl
eHBvcnQgKHNhZmUpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19f
LCAid3JpdGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIF9saWJfd3JpdGVyX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX19bIndyaXRlIl07IH0pOwotCi0vKiBoYXJtb255IGltcG9ydCAqLyB2
YXIgX2xpYl92YWxpZGF0b3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2Vi
cGFja19yZXF1aXJlX18oMzEpOwotLyogaGFybW9ueSByZWV4cG9ydCAoc2FmZSkgKi8gX193ZWJw
YWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ2YWxpZGF0ZSIsIGZ1bmN0aW9u
KCkgeyByZXR1cm4gX2xpYl92YWxpZGF0b3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJf
X1sidmFsaWRhdGUiXTsgfSk7Ci0KLS8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfbGliX3Rva2Vu
aXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVf
XygyKTsKLS8qIGhhcm1vbnkgcmVleHBvcnQgKHNhZmUpICovIF9fd2VicGFja19yZXF1aXJlX18u
ZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiV2ViSURMUGFyc2VFcnJvciIsIGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gX2xpYl90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1siV2Vi
SURMUGFyc2VFcnJvciJdOyB9KTsKLQotCi0KLQotCi0KLQotLyoqKi8gfSksCit9KShnbG9iYWxU
aGlzLCBmdW5jdGlvbigpIHsKK3JldHVybiAvKioqKioqLyAoKCkgPT4geyAvLyB3ZWJwYWNrQm9v
dHN0cmFwCisvKioqKioqLyAJInVzZSBzdHJpY3QiOworLyoqKioqKi8gCXZhciBfX3dlYnBhY2tf
bW9kdWxlc19fID0gKFsKKy8qIDAgKi8sCiAvKiAxICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxl
LCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9f
dW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBf
X3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1
aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5n
KSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInBhcnNlIiwg
ZnVuY3Rpb24oKSB7IHJldHVybiBwYXJzZTsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dl
YnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBv
cnQgKi8gICAicGFyc2UiOiAoKSA9PiAoLyogYmluZGluZyAqLyBwYXJzZSkKKy8qIGhhcm1vbnkg
ZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF90b2tlbmlzZXJfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMik7CiAvKiBo
YXJtb255IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25zX2VudW1fanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTUpOwogLyogaGFybW9ueSBpbXBv
cnQgKi8gdmFyIF9wcm9kdWN0aW9uc19pbmNsdWRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNik7CkBAIC0xNTAsOCArNDQsNiBAQCBfX3dl
YnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiAKIAogCi0KLQogLyoqCiAg
KiBAcGFyYW0ge1Rva2VuaXNlcn0gdG9rZW5pc2VyCiAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9u
cwpAQCAtMTcyLDE2ICs2NCwxNyBAQCBmdW5jdGlvbiBwYXJzZUJ5VG9rZW5zKHRva2VuaXNlciwg
b3B0aW9ucykgewogICAgIGNvbnN0IGNhbGxiYWNrID0gY29uc3VtZSgiY2FsbGJhY2siKTsKICAg
ICBpZiAoIWNhbGxiYWNrKSByZXR1cm47CiAgICAgaWYgKHRva2VuaXNlci5wcm9iZSgiaW50ZXJm
YWNlIikpIHsKLSAgICAgIHJldHVybiBfcHJvZHVjdGlvbnNfY2FsbGJhY2tfaW50ZXJmYWNlX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fWyJDYWxsYmFja0ludGVyZmFjZSJdLnBhcnNl
KHRva2VuaXNlciwgY2FsbGJhY2spOworICAgICAgcmV0dXJuIF9wcm9kdWN0aW9uc19jYWxsYmFj
a19pbnRlcmZhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uQ2FsbGJhY2tJbnRl
cmZhY2UucGFyc2UodG9rZW5pc2VyLCBjYWxsYmFjayk7CiAgICAgfQotICAgIHJldHVybiBfcHJv
ZHVjdGlvbnNfY2FsbGJhY2tfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1siQ2FsbGJh
Y2tGdW5jdGlvbiJdLnBhcnNlKHRva2VuaXNlciwgY2FsbGJhY2spOworICAgIHJldHVybiBfcHJv
ZHVjdGlvbnNfY2FsbGJhY2tfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5DYWxsYmFj
a0Z1bmN0aW9uLnBhcnNlKHRva2VuaXNlciwgY2FsbGJhY2spOwogICB9CiAKICAgZnVuY3Rpb24g
aW50ZXJmYWNlXyhvcHRzKSB7CiAgICAgY29uc3QgYmFzZSA9IGNvbnN1bWUoImludGVyZmFjZSIp
OwogICAgIGlmICghYmFzZSkgcmV0dXJuOwotICAgIGNvbnN0IHJldCA9IF9wcm9kdWN0aW9uc19t
aXhpbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fWyJNaXhpbiJdLnBhcnNlKHRva2Vu
aXNlciwgYmFzZSwgb3B0cykgfHwKLSAgICAgIF9wcm9kdWN0aW9uc19pbnRlcmZhY2VfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1siSW50ZXJmYWNlIl0ucGFyc2UodG9rZW5pc2VyLCBi
YXNlLCBvcHRzKSB8fAorICAgIGNvbnN0IHJldCA9CisgICAgICBfcHJvZHVjdGlvbnNfbWl4aW5f
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5NaXhpbi5wYXJzZSh0b2tlbmlzZXIsIGJh
c2UsIG9wdHMpIHx8CisgICAgICBfcHJvZHVjdGlvbnNfaW50ZXJmYWNlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV82X18uSW50ZXJmYWNlLnBhcnNlKHRva2VuaXNlciwgYmFzZSwgb3B0cykg
fHwKICAgICAgIGVycm9yKCJJbnRlcmZhY2UgaGFzIG5vIHByb3BlciBib2R5Iik7CiAgICAgcmV0
dXJuIHJldDsKICAgfQpAQCAtMTg5LDM3ICs4Miw0MSBAQCBmdW5jdGlvbiBwYXJzZUJ5VG9rZW5z
KHRva2VuaXNlciwgb3B0aW9ucykgewogICBmdW5jdGlvbiBwYXJ0aWFsKCkgewogICAgIGNvbnN0
IHBhcnRpYWwgPSBjb25zdW1lKCJwYXJ0aWFsIik7CiAgICAgaWYgKCFwYXJ0aWFsKSByZXR1cm47
Ci0gICAgcmV0dXJuIF9wcm9kdWN0aW9uc19kaWN0aW9uYXJ5X2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV84X19bIkRpY3Rpb25hcnkiXS5wYXJzZSh0b2tlbmlzZXIsIHsgcGFydGlhbCB9KSB8
fAorICAgIHJldHVybiAoCisgICAgICBfcHJvZHVjdGlvbnNfZGljdGlvbmFyeV9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfOF9fLkRpY3Rpb25hcnkucGFyc2UodG9rZW5pc2VyLCB7IHBhcnRp
YWwgfSkgfHwKICAgICAgIGludGVyZmFjZV8oeyBwYXJ0aWFsIH0pIHx8Ci0gICAgICBfcHJvZHVj
dGlvbnNfbmFtZXNwYWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X19bIk5hbWVzcGFj
ZSJdLnBhcnNlKHRva2VuaXNlciwgeyBwYXJ0aWFsIH0pIHx8Ci0gICAgICBlcnJvcigiUGFydGlh
bCBkb2Vzbid0IGFwcGx5IHRvIGFueXRoaW5nIik7CisgICAgICBfcHJvZHVjdGlvbnNfbmFtZXNw
YWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18uTmFtZXNwYWNlLnBhcnNlKHRva2Vu
aXNlciwgeyBwYXJ0aWFsIH0pIHx8CisgICAgICBlcnJvcigiUGFydGlhbCBkb2Vzbid0IGFwcGx5
IHRvIGFueXRoaW5nIikKKyAgICApOwogICB9CiAKICAgZnVuY3Rpb24gZGVmaW5pdGlvbigpIHsK
LSAgICByZXR1cm4gY2FsbGJhY2soKSB8fAorICAgIHJldHVybiAoCisgICAgICBjYWxsYmFjaygp
IHx8CiAgICAgICBpbnRlcmZhY2VfKCkgfHwKICAgICAgIHBhcnRpYWwoKSB8fAotICAgICAgX3By
b2R1Y3Rpb25zX2RpY3Rpb25hcnlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfX1siRGlj
dGlvbmFyeSJdLnBhcnNlKHRva2VuaXNlcikgfHwKLSAgICAgIF9wcm9kdWN0aW9uc19lbnVtX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkVudW0iXS5wYXJzZSh0b2tlbmlzZXIpIHx8
Ci0gICAgICBfcHJvZHVjdGlvbnNfdHlwZWRlZl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
NF9fWyJUeXBlZGVmIl0ucGFyc2UodG9rZW5pc2VyKSB8fAotICAgICAgX3Byb2R1Y3Rpb25zX2lu
Y2x1ZGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkluY2x1ZGVzIl0ucGFyc2Uo
dG9rZW5pc2VyKSB8fAotICAgICAgX3Byb2R1Y3Rpb25zX25hbWVzcGFjZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfOV9fWyJOYW1lc3BhY2UiXS5wYXJzZSh0b2tlbmlzZXIpOworICAgICAg
X3Byb2R1Y3Rpb25zX2RpY3Rpb25hcnlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5E
aWN0aW9uYXJ5LnBhcnNlKHRva2VuaXNlcikgfHwKKyAgICAgIF9wcm9kdWN0aW9uc19lbnVtX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uRW51bS5wYXJzZSh0b2tlbmlzZXIpIHx8Cisg
ICAgICBfcHJvZHVjdGlvbnNfdHlwZWRlZl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9f
LlR5cGVkZWYucGFyc2UodG9rZW5pc2VyKSB8fAorICAgICAgX3Byb2R1Y3Rpb25zX2luY2x1ZGVz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uSW5jbHVkZXMucGFyc2UodG9rZW5pc2Vy
KSB8fAorICAgICAgX3Byb2R1Y3Rpb25zX25hbWVzcGFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfOV9fLk5hbWVzcGFjZS5wYXJzZSh0b2tlbmlzZXIpCisgICAgKTsKICAgfQogCiAgIGZ1
bmN0aW9uIGRlZmluaXRpb25zKCkgewogICAgIGlmICghc291cmNlLmxlbmd0aCkgcmV0dXJuIFtd
OwogICAgIGNvbnN0IGRlZnMgPSBbXTsKICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgY29uc3Qg
ZWEgPSBfcHJvZHVjdGlvbnNfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfM19fWyJFeHRlbmRlZEF0dHJpYnV0ZXMiXS5wYXJzZSh0b2tlbmlzZXIpOworICAg
ICAgY29uc3QgZWEgPSBfcHJvZHVjdGlvbnNfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfM19fLkV4dGVuZGVkQXR0cmlidXRlcy5wYXJzZSh0b2tlbmlzZXIp
OwogICAgICAgY29uc3QgZGVmID0gZGVmaW5pdGlvbigpOwogICAgICAgaWYgKCFkZWYpIHsKICAg
ICAgICAgaWYgKGVhLmxlbmd0aCkgZXJyb3IoIlN0cmF5IGV4dGVuZGVkIGF0dHJpYnV0ZXMiKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgICB9Ci0gICAgICBPYmplY3QoX3Byb2R1Y3Rpb25zX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX19bImF1dG9QYXJlbnRlciJdKShkZWYp
LmV4dEF0dHJzID0gZWE7CisgICAgICAoMCxfcHJvZHVjdGlvbnNfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMTFfXy5hdXRvUGFyZW50ZXIpKGRlZikuZXh0QXR0cnMgPSBlYTsK
ICAgICAgIGRlZnMucHVzaChkZWYpOwogICAgIH0KLSAgICBjb25zdCBlb2YgPSBjb25zdW1lKCJl
b2YiKTsKKyAgICBjb25zdCBlb2YgPSB0b2tlbmlzZXIuY29uc3VtZVR5cGUoImVvZiIpOwogICAg
IGlmIChvcHRpb25zLmNvbmNyZXRlKSB7CiAgICAgICBkZWZzLnB1c2goZW9mKTsKICAgICB9CkBA
IC0yMzcsNyArMTM0LDcgQEAgZnVuY3Rpb24gcGFyc2VCeVRva2Vucyh0b2tlbmlzZXIsIG9wdGlv
bnMpIHsKICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuY29uY3JldGVdCiAgKi8KIGZ1bmN0
aW9uIHBhcnNlKHN0ciwgb3B0aW9ucyA9IHt9KSB7Ci0gIGNvbnN0IHRva2VuaXNlciA9IG5ldyBf
dG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIlRva2VuaXNlciJdKHN0
cik7CisgIGNvbnN0IHRva2VuaXNlciA9IG5ldyBfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX18uVG9rZW5pc2VyKHN0cik7CiAgIGlmICh0eXBlb2Ygb3B0aW9ucy5zb3Vy
Y2VOYW1lICE9PSAidW5kZWZpbmVkIikgewogICAgIHRva2VuaXNlci5zb3VyY2UubmFtZSA9IG9w
dGlvbnMuc291cmNlTmFtZTsKICAgfQpAQCAtMjQ3LDE1ICsxNDQsMTYgQEAgZnVuY3Rpb24gcGFy
c2Uoc3RyLCBvcHRpb25zID0ge30pIHsKIAogLyoqKi8gfSksCiAvKiAyICovCi0vKioqLyAoZnVu
Y3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7
CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tf
ZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9f
d2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhw
b3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNf
XywgInR5cGVOYW1lS2V5d29yZHMiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHR5cGVOYW1lS2V5d29y
ZHM7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJl
X18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAic3RyaW5nVHlwZXMiLCBmdW5jdGlvbigpIHsgcmV0
dXJuIHN0cmluZ1R5cGVzOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dl
YnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImFyZ3VtZW50TmFtZUtleXdv
cmRzIiwgZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudE5hbWVLZXl3b3JkczsgfSk7Ci0vKiBo
YXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFj
a19leHBvcnRzX18sICJUb2tlbmlzZXIiLCBmdW5jdGlvbigpIHsgcmV0dXJuIFRva2VuaXNlcjsg
fSk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5k
KF9fd2VicGFja19leHBvcnRzX18sICJXZWJJRExQYXJzZUVycm9yIiwgZnVuY3Rpb24oKSB7IHJl
dHVybiBXZWJJRExQYXJzZUVycm9yOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFj
a19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAq
LyAgICJ0eXBlTmFtZUtleXdvcmRzIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gdHlwZU5hbWVLZXl3
b3JkcyksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJzdHJpbmdUeXBlcyI6ICgpID0+ICgvKiBi
aW5kaW5nICovIHN0cmluZ1R5cGVzKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgImFyZ3VtZW50
TmFtZUtleXdvcmRzIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYXJndW1lbnROYW1lS2V5d29yZHMp
LAorLyogaGFybW9ueSBleHBvcnQgKi8gICAiVG9rZW5pc2VyIjogKCkgPT4gKC8qIGJpbmRpbmcg
Ki8gVG9rZW5pc2VyKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIldlYklETFBhcnNlRXJyb3Ii
OiAoKSA9PiAoLyogYmluZGluZyAqLyBXZWJJRExQYXJzZUVycm9yKQorLyogaGFybW9ueSBleHBv
cnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Vycm9yX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpOwogLyogaGFybW9ueSBp
bXBvcnQgKi8gdmFyIF9wcm9kdWN0aW9uc19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwogCkBAIC0yNjYsMTMgKzE2NCwxNCBA
QCBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiBjb25zdCB0b2tl
blJlID0gewogICAvLyBUaGlzIGV4cHJlc3Npb24gdXNlcyBhIGxvb2thaGVhZCBhc3NlcnRpb24g
dG8gY2F0Y2ggZmFsc2UgbWF0Y2hlcwogICAvLyBhZ2FpbnN0IGludGVnZXJzIGVhcmx5LgotICAi
ZGVjaW1hbCI6IC8tPyg/PVswLTldKlwufFswLTldK1tlRV0pKChbMC05XStcLlswLTldKnxbMC05
XSpcLlswLTldKykoW0VlXVstK10/WzAtOV0rKT98WzAtOV0rW0VlXVstK10/WzAtOV0rKS95LAot
ICAiaW50ZWdlciI6IC8tPygwKFtYeF1bMC05QS1GYS1mXSt8WzAtN10qKXxbMS05XVswLTldKikv
eSwKLSAgImlkZW50aWZpZXIiOiAvW18tXT9bQS1aYS16XVswLTlBLVpfYS16LV0qL3ksCi0gICJz
dHJpbmciOiAvIlteIl0qIi95LAotICAid2hpdGVzcGFjZSI6IC9bXHRcblxyIF0rL3ksCi0gICJj
b21tZW50IjogLygoXC8oXC8uKnxcKihbXipdfFwqW14vXSkqXCpcLylbXHRcblxyIF0qKSspL3ks
Ci0gICJvdGhlciI6IC9bXlx0XG5cciAwLTlBLVphLXpdL3kKKyAgZGVjaW1hbDoKKyAgICAvLT8o
Pz1bMC05XSpcLnxbMC05XStbZUVdKSgoWzAtOV0rXC5bMC05XSp8WzAtOV0qXC5bMC05XSspKFtF
ZV1bLStdP1swLTldKyk/fFswLTldK1tFZV1bLStdP1swLTldKykveSwKKyAgaW50ZWdlcjogLy0/
KDAoW1h4XVswLTlBLUZhLWZdK3xbMC03XSopfFsxLTldWzAtOV0qKS95LAorICBpZGVudGlmaWVy
OiAvW18tXT9bQS1aYS16XVswLTlBLVpfYS16LV0qL3ksCisgIHN0cmluZzogLyJbXiJdKiIveSwK
KyAgd2hpdGVzcGFjZTogL1tcdFxuXHIgXSsveSwKKyAgY29tbWVudDogL1wvXC8uKnxcL1wqKC58
XG4pKj9cKlwvL3ksCisgIG90aGVyOiAvW15cdFxuXHIgMC05QS1aYS16XS95LAogfTsKIAogY29u
c3QgdHlwZU5hbWVLZXl3b3JkcyA9IFsKQEAgLTI4OSwxNCArMTg4LDEwIEBAIGNvbnN0IHR5cGVO
YW1lS2V5d29yZHMgPSBbCiAgICJGbG9hdDY0QXJyYXkiLAogICAiYW55IiwKICAgIm9iamVjdCIs
Ci0gICJzeW1ib2wiCisgICJzeW1ib2wiLAogXTsKIAotY29uc3Qgc3RyaW5nVHlwZXMgPSBbCi0g
ICJCeXRlU3RyaW5nIiwKLSAgIkRPTVN0cmluZyIsCi0gICJVU1ZTdHJpbmciCi1dOworY29uc3Qg
c3RyaW5nVHlwZXMgPSBbIkJ5dGVTdHJpbmciLCAiRE9NU3RyaW5nIiwgIlVTVlN0cmluZyJdOwog
CiBjb25zdCBhcmd1bWVudE5hbWVLZXl3b3JkcyA9IFsKICAgImFzeW5jIiwKQEAgLTMyMSw3ICsy
MTYsNyBAQCBjb25zdCBhcmd1bWVudE5hbWVLZXl3b3JkcyA9IFsKICAgInN0YXRpYyIsCiAgICJz
dHJpbmdpZmllciIsCiAgICJ0eXBlZGVmIiwKLSAgInVucmVzdHJpY3RlZCIKKyAgInVucmVzdHJp
Y3RlZCIsCiBdOwogCiBjb25zdCBub25SZWdleFRlcm1pbmFscyA9IFsKQEAgLTMyOSw3ICsyMjQs
OSBAQCBjb25zdCBub25SZWdleFRlcm1pbmFscyA9IFsKICAgIkZyb3plbkFycmF5IiwKICAgIklu
ZmluaXR5IiwKICAgIk5hTiIsCisgICJPYnNlcnZhYmxlQXJyYXkiLAogICAiUHJvbWlzZSIsCisg
ICJiaWdpbnQiLAogICAiYm9vbGVhbiIsCiAgICJieXRlIiwKICAgImRvdWJsZSIsCkBAIC0zNDYs
OCArMjQzLDkgQEAgY29uc3Qgbm9uUmVnZXhUZXJtaW5hbHMgPSBbCiAgICJzZXF1ZW5jZSIsCiAg
ICJzaG9ydCIsCiAgICJ0cnVlIiwKKyAgInVuZGVmaW5lZCIsCiAgICJ1bnNpZ25lZCIsCi0gICJ2
b2lkIgorICAidm9pZCIsCiBdLmNvbmNhdChhcmd1bWVudE5hbWVLZXl3b3Jkcywgc3RyaW5nVHlw
ZXMsIHR5cGVOYW1lS2V5d29yZHMpOwogCiBjb25zdCBwdW5jdHVhdGlvbnMgPSBbCkBAIC0zNjQs
NyArMjYyLDcgQEAgY29uc3QgcHVuY3R1YXRpb25zID0gWwogICAiWyIsCiAgICJdIiwKICAgInsi
LAotICAifSIKKyAgIn0iLAogXTsKIAogY29uc3QgcmVzZXJ2ZWQgPSBbCkBAIC0zOTAsNyArMjg4
LDcgQEAgZnVuY3Rpb24gdG9rZW5pc2Uoc3RyKSB7CiAKICAgICBpZiAoL1tcdFxuXHIgXS8udGVz
dChuZXh0Q2hhcikpIHsKICAgICAgIHJlc3VsdCA9IGF0dGVtcHRUb2tlbk1hdGNoKCJ3aGl0ZXNw
YWNlIiwgeyBub0ZsdXNoVHJpdmlhOiB0cnVlIH0pOwotICAgIH0gZWxzZSBpZiAobmV4dENoYXIg
PT09ICcvJykgeworICAgIH0gZWxzZSBpZiAobmV4dENoYXIgPT09ICIvIikgewogICAgICAgcmVz
dWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2goImNvbW1lbnQiLCB7IG5vRmx1c2hUcml2aWE6IHRydWUg
fSk7CiAgICAgfQogCkBAIC00MTAsMTAgKzMwOCwxNCBAQCBmdW5jdGlvbiB0b2tlbmlzZShzdHIp
IHsKICAgICAgICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbbGFzdEluZGV4XTsKICAgICAgICAgaWYg
KHJlc3VsdCAhPT0gLTEpIHsKICAgICAgICAgICBpZiAocmVzZXJ2ZWQuaW5jbHVkZXModG9rZW4u
dmFsdWUpKSB7Ci0gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYCR7T2JqZWN0KF9wcm9kdWN0
aW9uc19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0p
KHRva2VuLnZhbHVlKX0gaXMgYSByZXNlcnZlZCBpZGVudGlmaWVyIGFuZCBtdXN0IG5vdCBiZSB1
c2VkLmA7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgV2ViSURMUGFyc2VFcnJvcihPYmplY3QoX2Vy
cm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bInN5bnRheEVycm9yIl0pKHRva2Vu
cywgbGFzdEluZGV4LCBudWxsLCBtZXNzYWdlKSk7CisgICAgICAgICAgICBjb25zdCBtZXNzYWdl
ID0gYCR7KDAsX3Byb2R1Y3Rpb25zX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfXy51bmVzY2FwZSkoCisgICAgICAgICAgICAgIHRva2VuLnZhbHVlCisgICAgICAgICAgICAp
fSBpcyBhIHJlc2VydmVkIGlkZW50aWZpZXIgYW5kIG11c3Qgbm90IGJlIHVzZWQuYDsKKyAgICAg
ICAgICAgIHRocm93IG5ldyBXZWJJRExQYXJzZUVycm9yKAorICAgICAgICAgICAgICAoMCxfZXJy
b3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5zeW50YXhFcnJvcikodG9rZW5zLCBs
YXN0SW5kZXgsIG51bGwsIG1lc3NhZ2UpCisgICAgICAgICAgICApOwogICAgICAgICAgIH0gZWxz
ZSBpZiAobm9uUmVnZXhUZXJtaW5hbHMuaW5jbHVkZXModG9rZW4udmFsdWUpKSB7Ci0gICAgICAg
ICAgICB0b2tlbi50eXBlID0gdG9rZW4udmFsdWU7CisgICAgICAgICAgICB0b2tlbi50eXBlID0g
ImlubGluZSI7CiAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICB9CkBAIC00MjMsNyArMzI1
LDEzIEBAIGZ1bmN0aW9uIHRva2VuaXNlKHN0cikgewogCiAgICAgZm9yIChjb25zdCBwdW5jdHVh
dGlvbiBvZiBwdW5jdHVhdGlvbnMpIHsKICAgICAgIGlmIChzdHIuc3RhcnRzV2l0aChwdW5jdHVh
dGlvbiwgbGFzdENoYXJJbmRleCkpIHsKLSAgICAgICAgdG9rZW5zLnB1c2goeyB0eXBlOiBwdW5j
dHVhdGlvbiwgdmFsdWU6IHB1bmN0dWF0aW9uLCB0cml2aWEsIGxpbmUsIGluZGV4IH0pOworICAg
ICAgICB0b2tlbnMucHVzaCh7CisgICAgICAgICAgdHlwZTogImlubGluZSIsCisgICAgICAgICAg
dmFsdWU6IHB1bmN0dWF0aW9uLAorICAgICAgICAgIHRyaXZpYSwKKyAgICAgICAgICBsaW5lLAor
ICAgICAgICAgIGluZGV4LAorICAgICAgICB9KTsKICAgICAgICAgdHJpdmlhID0gIiI7CiAgICAg
ICAgIGxhc3RDaGFySW5kZXggKz0gcHVuY3R1YXRpb24ubGVuZ3RoOwogICAgICAgICByZXN1bHQg
PSBsYXN0Q2hhckluZGV4OwpAQCAtNDQ2LDcgKzM1NCw3IEBAIGZ1bmN0aW9uIHRva2VuaXNlKHN0
cikgewogICB0b2tlbnMucHVzaCh7CiAgICAgdHlwZTogImVvZiIsCiAgICAgdmFsdWU6ICIiLAot
ICAgIHRyaXZpYQorICAgIHRyaXZpYSwKICAgfSk7CiAKICAgcmV0dXJuIHRva2VuczsKQEAgLTQ4
NSwyOCArMzkzLDU1IEBAIGNsYXNzIFRva2VuaXNlciB7CiAgICAqIEByZXR1cm4ge25ldmVyfQog
ICAgKi8KICAgZXJyb3IobWVzc2FnZSkgewotICAgIHRocm93IG5ldyBXZWJJRExQYXJzZUVycm9y
KE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1sic3ludGF4RXJy
b3IiXSkodGhpcy5zb3VyY2UsIHRoaXMucG9zaXRpb24sIHRoaXMuY3VycmVudCwgbWVzc2FnZSkp
OworICAgIHRocm93IG5ldyBXZWJJRExQYXJzZUVycm9yKAorICAgICAgKDAsX2Vycm9yX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uc3ludGF4RXJyb3IpKHRoaXMuc291cmNlLCB0aGlz
LnBvc2l0aW9uLCB0aGlzLmN1cnJlbnQsIG1lc3NhZ2UpCisgICAgKTsKICAgfQogCiAgIC8qKgog
ICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZQogICAgKi8KLSAgcHJvYmUodHlwZSkgewotICAgIHJl
dHVybiB0aGlzLnNvdXJjZS5sZW5ndGggPiB0aGlzLnBvc2l0aW9uICYmIHRoaXMuc291cmNlW3Ro
aXMucG9zaXRpb25dLnR5cGUgPT09IHR5cGU7CisgIHByb2JlVHlwZSh0eXBlKSB7CisgICAgcmV0
dXJuICgKKyAgICAgIHRoaXMuc291cmNlLmxlbmd0aCA+IHRoaXMucG9zaXRpb24gJiYKKyAgICAg
IHRoaXMuc291cmNlW3RoaXMucG9zaXRpb25dLnR5cGUgPT09IHR5cGUKKyAgICApOworICB9CisK
KyAgLyoqCisgICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZQorICAgKi8KKyAgcHJvYmUodmFsdWUp
IHsKKyAgICByZXR1cm4gKAorICAgICAgdGhpcy5wcm9iZVR5cGUoImlubGluZSIpICYmIHRoaXMu
c291cmNlW3RoaXMucG9zaXRpb25dLnZhbHVlID09PSB2YWx1ZQorICAgICk7CiAgIH0KIAogICAv
KioKICAgICogQHBhcmFtICB7Li4uc3RyaW5nfSBjYW5kaWRhdGVzCiAgICAqLwotICBjb25zdW1l
KC4uLmNhbmRpZGF0ZXMpIHsKKyAgY29uc3VtZVR5cGUoLi4uY2FuZGlkYXRlcykgewogICAgIGZv
ciAoY29uc3QgdHlwZSBvZiBjYW5kaWRhdGVzKSB7Ci0gICAgICBpZiAoIXRoaXMucHJvYmUodHlw
ZSkpIGNvbnRpbnVlOworICAgICAgaWYgKCF0aGlzLnByb2JlVHlwZSh0eXBlKSkgY29udGludWU7
CiAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuc291cmNlW3RoaXMucG9zaXRpb25dOwogICAgICAg
dGhpcy5wb3NpdGlvbisrOwogICAgICAgcmV0dXJuIHRva2VuOwogICAgIH0KICAgfQogCisgIC8q
KgorICAgKiBAcGFyYW0gIHsuLi5zdHJpbmd9IGNhbmRpZGF0ZXMKKyAgICovCisgIGNvbnN1bWUo
Li4uY2FuZGlkYXRlcykgeworICAgIGlmICghdGhpcy5wcm9iZVR5cGUoImlubGluZSIpKSByZXR1
cm47CisgICAgY29uc3QgdG9rZW4gPSB0aGlzLnNvdXJjZVt0aGlzLnBvc2l0aW9uXTsKKyAgICBm
b3IgKGNvbnN0IHZhbHVlIG9mIGNhbmRpZGF0ZXMpIHsKKyAgICAgIGlmICh0b2tlbi52YWx1ZSAh
PT0gdmFsdWUpIGNvbnRpbnVlOworICAgICAgdGhpcy5wb3NpdGlvbisrOworICAgICAgcmV0dXJu
IHRva2VuOworICAgIH0KKyAgfQorCiAgIC8qKgogICAgKiBAcGFyYW0ge251bWJlcn0gcG9zaXRp
b24KICAgICovCkBAIC01MjYsNyArNDYxLDE1IEBAIGNsYXNzIFdlYklETFBhcnNlRXJyb3IgZXh0
ZW5kcyBFcnJvciB7CiAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmlucHV0CiAgICAqIEBw
YXJhbSB7KltdfSBvcHRpb25zLnRva2VucwogICAgKi8KLSAgY29uc3RydWN0b3IoeyBtZXNzYWdl
LCBiYXJlTWVzc2FnZSwgY29udGV4dCwgbGluZSwgc291cmNlTmFtZSwgaW5wdXQsIHRva2VucyB9
KSB7CisgIGNvbnN0cnVjdG9yKHsKKyAgICBtZXNzYWdlLAorICAgIGJhcmVNZXNzYWdlLAorICAg
IGNvbnRleHQsCisgICAgbGluZSwKKyAgICBzb3VyY2VOYW1lLAorICAgIGlucHV0LAorICAgIHRv
a2VucywKKyAgfSkgewogICAgIHN1cGVyKG1lc3NhZ2UpOwogCiAgICAgdGhpcy5uYW1lID0gIldl
YklETFBhcnNlRXJyb3IiOyAvLyBub3QgdG8gYmUgbWFuZ2xlZApAQCAtNTQyLDEyICs0ODUsMTMg
QEAgY2xhc3MgV2ViSURMUGFyc2VFcnJvciBleHRlbmRzIEVycm9yIHsKIAogLyoqKi8gfSksCiAv
KiAzICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dl
YnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21v
ZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAK
LSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19f
KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQo
X193ZWJwYWNrX2V4cG9ydHNfXywgInN5bnRheEVycm9yIiwgZnVuY3Rpb24oKSB7IHJldHVybiBz
eW50YXhFcnJvcjsgfSk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNr
X3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ2YWxpZGF0aW9uRXJyb3IiLCBmdW5j
dGlvbigpIHsgcmV0dXJuIHZhbGlkYXRpb25FcnJvcjsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAq
LyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgeworLyogaGFybW9u
eSBleHBvcnQgKi8gICAic3ludGF4RXJyb3IiOiAoKSA9PiAoLyogYmluZGluZyAqLyBzeW50YXhF
cnJvciksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJ2YWxpZGF0aW9uRXJyb3IiOiAoKSA9PiAo
LyogYmluZGluZyAqLyB2YWxpZGF0aW9uRXJyb3IpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsK
IC8qKgogICogQHBhcmFtIHtzdHJpbmd9IHRleHQKICAqLwpAQCAtNTU2LDYgKzUwMCwyNCBAQCBm
dW5jdGlvbiBsYXN0TGluZSh0ZXh0KSB7CiAgIHJldHVybiBzcGxpdHRlZFtzcGxpdHRlZC5sZW5n
dGggLSAxXTsKIH0KIAorZnVuY3Rpb24gYXBwZW5kSWZFeGlzdChiYXNlLCB0YXJnZXQpIHsKKyAg
bGV0IHJlc3VsdCA9IGJhc2U7CisgIGlmICh0YXJnZXQpIHsKKyAgICByZXN1bHQgKz0gYCAke3Rh
cmdldH1gOworICB9CisgIHJldHVybiByZXN1bHQ7Cit9CisKK2Z1bmN0aW9uIGNvbnRleHRBc1Rl
eHQobm9kZSkgeworICBjb25zdCBoaWVyYXJjaHkgPSBbbm9kZV07CisgIHdoaWxlIChub2RlICYm
IG5vZGUucGFyZW50KSB7CisgICAgY29uc3QgeyBwYXJlbnQgfSA9IG5vZGU7CisgICAgaGllcmFy
Y2h5LnVuc2hpZnQocGFyZW50KTsKKyAgICBub2RlID0gcGFyZW50OworICB9CisgIHJldHVybiBo
aWVyYXJjaHkubWFwKChuKSA9PiBhcHBlbmRJZkV4aXN0KG4udHlwZSwgbi5uYW1lKSkuam9pbigi
IC0+ICIpOworfQorCiAvKioKICAqIEB0eXBlZGVmIHtvYmplY3R9IFdlYklETDJFcnJvck9wdGlv
bnMKICAqIEBwcm9wZXJ0eSB7ImVycm9yIiB8ICJ3YXJuaW5nIn0gW2xldmVsXQpAQCAtNTY1LDE4
ICs1MjcsMjUgQEAgZnVuY3Rpb24gbGFzdExpbmUodGV4dCkgewogICogQHBhcmFtIHsiU3ludGF4
IiB8ICJWYWxpZGF0aW9uIn0ga2luZCBlcnJvciB0eXBlCiAgKiBAcGFyYW0ge1dlYklETDJFcnJv
ck9wdGlvbnN9IFtvcHRpb25zXQogICovCi1mdW5jdGlvbiBlcnJvcihzb3VyY2UsIHBvc2l0aW9u
LCBjdXJyZW50LCBtZXNzYWdlLCBraW5kLCB7IGxldmVsID0gImVycm9yIiwgYXV0b2ZpeCwgcnVs
ZU5hbWUgfSA9IHt9KSB7CitmdW5jdGlvbiBlcnJvcigKKyAgc291cmNlLAorICBwb3NpdGlvbiwK
KyAgY3VycmVudCwKKyAgbWVzc2FnZSwKKyAga2luZCwKKyAgeyBsZXZlbCA9ICJlcnJvciIsIGF1
dG9maXgsIHJ1bGVOYW1lIH0gPSB7fQorKSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge251bWJlcn0g
Y291bnQKICAgICovCiAgIGZ1bmN0aW9uIHNsaWNlVG9rZW5zKGNvdW50KSB7Ci0gICAgcmV0dXJu
IGNvdW50ID4gMCA/Ci0gICAgICBzb3VyY2Uuc2xpY2UocG9zaXRpb24sIHBvc2l0aW9uICsgY291
bnQpIDoKLSAgICAgIHNvdXJjZS5zbGljZShNYXRoLm1heChwb3NpdGlvbiArIGNvdW50LCAwKSwg
cG9zaXRpb24pOworICAgIHJldHVybiBjb3VudCA+IDAKKyAgICAgID8gc291cmNlLnNsaWNlKHBv
c2l0aW9uLCBwb3NpdGlvbiArIGNvdW50KQorICAgICAgOiBzb3VyY2Uuc2xpY2UoTWF0aC5tYXgo
cG9zaXRpb24gKyBjb3VudCwgMCksIHBvc2l0aW9uKTsKICAgfQogCiAgIGZ1bmN0aW9uIHRva2Vu
c1RvVGV4dChpbnB1dHMsIHsgcHJlY2VkZXMgfSA9IHt9KSB7Ci0gICAgY29uc3QgdGV4dCA9IGlu
cHV0cy5tYXAodCA9PiB0LnRyaXZpYSArIHQudmFsdWUpLmpvaW4oIiIpOworICAgIGNvbnN0IHRl
eHQgPSBpbnB1dHMubWFwKCh0KSA9PiB0LnRyaXZpYSArIHQudmFsdWUpLmpvaW4oIiIpOwogICAg
IGNvbnN0IG5leHRUb2tlbiA9IHNvdXJjZVtwb3NpdGlvbl07CiAgICAgaWYgKG5leHRUb2tlbi50
eXBlID09PSAiZW9mIikgewogICAgICAgcmV0dXJuIHRleHQ7CkBAIC01ODksOSArNTU4LDExIEBA
IGZ1bmN0aW9uIGVycm9yKHNvdXJjZSwgcG9zaXRpb24sIGN1cnJlbnQsIG1lc3NhZ2UsIGtpbmQs
IHsgbGV2ZWwgPSAiZXJyb3IiLCBhdXRvCiAKICAgY29uc3QgbWF4VG9rZW5zID0gNTsgLy8gYXJi
aXRyYXJ5IGJ1dCB3b3JrcyB3ZWxsIGVub3VnaAogICBjb25zdCBsaW5lID0KLSAgICBzb3VyY2Vb
cG9zaXRpb25dLnR5cGUgIT09ICJlb2YiID8gc291cmNlW3Bvc2l0aW9uXS5saW5lIDoKLSAgICBz
b3VyY2UubGVuZ3RoID4gMSA/IHNvdXJjZVtwb3NpdGlvbiAtIDFdLmxpbmUgOgotICAgIDE7Cisg
ICAgc291cmNlW3Bvc2l0aW9uXS50eXBlICE9PSAiZW9mIgorICAgICAgPyBzb3VyY2VbcG9zaXRp
b25dLmxpbmUKKyAgICAgIDogc291cmNlLmxlbmd0aCA+IDEKKyAgICAgID8gc291cmNlW3Bvc2l0
aW9uIC0gMV0ubGluZQorICAgICAgOiAxOwogCiAgIGNvbnN0IHByZWNlZGluZ0xhc3RMaW5lID0g
bGFzdExpbmUoCiAgICAgdG9rZW5zVG9UZXh0KHNsaWNlVG9rZW5zKC1tYXhUb2tlbnMpLCB7IHBy
ZWNlZGVzOiB0cnVlIH0pCkBAIC02MDYsNyArNTc3LDEyIEBAIGZ1bmN0aW9uIGVycm9yKHNvdXJj
ZSwgcG9zaXRpb24sIGN1cnJlbnQsIG1lc3NhZ2UsIGtpbmQsIHsgbGV2ZWwgPSAiZXJyb3IiLCBh
dXRvCiAKICAgY29uc3QgY29udGV4dFR5cGUgPSBraW5kID09PSAiU3ludGF4IiA/ICJzaW5jZSIg
OiAiaW5zaWRlIjsKICAgY29uc3QgaW5Tb3VyY2VOYW1lID0gc291cmNlLm5hbWUgPyBgIGluICR7
c291cmNlLm5hbWV9YCA6ICIiOwotICBjb25zdCBncmFtbWF0aWNhbENvbnRleHQgPSAoY3VycmVu
dCAmJiBjdXJyZW50Lm5hbWUpID8gYCwgJHtjb250ZXh0VHlwZX0gXGAke2N1cnJlbnQucGFydGlh
bCA/ICJwYXJ0aWFsICIgOiAiIn0ke2N1cnJlbnQudHlwZX0gJHtjdXJyZW50Lm5hbWV9XGBgIDog
IiI7CisgIGNvbnN0IGdyYW1tYXRpY2FsQ29udGV4dCA9CisgICAgY3VycmVudCAmJiBjdXJyZW50
Lm5hbWUKKyAgICAgID8gYCwgJHtjb250ZXh0VHlwZX0gXGAke2N1cnJlbnQucGFydGlhbCA/ICJw
YXJ0aWFsICIgOiAiIn0ke2NvbnRleHRBc1RleHQoCisgICAgICAgICAgY3VycmVudAorICAgICAg
ICApfVxgYAorICAgICAgOiAiIjsKICAgY29uc3QgY29udGV4dCA9IGAke2tpbmR9IGVycm9yIGF0
IGxpbmUgJHtsaW5lfSR7aW5Tb3VyY2VOYW1lfSR7Z3JhbW1hdGljYWxDb250ZXh0fTpcbiR7c291
cmNlQ29udGV4dH1gOwogICByZXR1cm4gewogICAgIG1lc3NhZ2U6IGAke2NvbnRleHR9ICR7bWVz
c2FnZX1gLApAQCAtNjE4LDcgKzU5NCw3IEBAIGZ1bmN0aW9uIGVycm9yKHNvdXJjZSwgcG9zaXRp
b24sIGN1cnJlbnQsIG1lc3NhZ2UsIGtpbmQsIHsgbGV2ZWwgPSAiZXJyb3IiLCBhdXRvCiAgICAg
cnVsZU5hbWUsCiAgICAgYXV0b2ZpeCwKICAgICBpbnB1dDogc3Vic2VxdWVudFRleHQsCi0gICAg
dG9rZW5zOiBzdWJzZXF1ZW50VG9rZW5zCisgICAgdG9rZW5zOiBzdWJzZXF1ZW50VG9rZW5zLAog
ICB9OwogfQogCkBAIC02MzMsMzMgKzYwOSw0NyBAQCBmdW5jdGlvbiBzeW50YXhFcnJvcihzb3Vy
Y2UsIHBvc2l0aW9uLCBjdXJyZW50LCBtZXNzYWdlKSB7CiAgKiBAcGFyYW0ge3N0cmluZ30gbWVz
c2FnZSBlcnJvciBtZXNzYWdlCiAgKiBAcGFyYW0ge1dlYklETDJFcnJvck9wdGlvbnN9IFtvcHRp
b25zXQogICovCi1mdW5jdGlvbiB2YWxpZGF0aW9uRXJyb3IodG9rZW4sIGN1cnJlbnQsIHJ1bGVO
YW1lLCBtZXNzYWdlLCBvcHRpb25zID0ge30pIHsKK2Z1bmN0aW9uIHZhbGlkYXRpb25FcnJvcigK
KyAgdG9rZW4sCisgIGN1cnJlbnQsCisgIHJ1bGVOYW1lLAorICBtZXNzYWdlLAorICBvcHRpb25z
ID0ge30KKykgewogICBvcHRpb25zLnJ1bGVOYW1lID0gcnVsZU5hbWU7Ci0gIHJldHVybiBlcnJv
cihjdXJyZW50LnNvdXJjZSwgdG9rZW4uaW5kZXgsIGN1cnJlbnQsIG1lc3NhZ2UsICJWYWxpZGF0
aW9uIiwgb3B0aW9ucyk7CisgIHJldHVybiBlcnJvcigKKyAgICBjdXJyZW50LnNvdXJjZSwKKyAg
ICB0b2tlbi5pbmRleCwKKyAgICBjdXJyZW50LAorICAgIG1lc3NhZ2UsCisgICAgIlZhbGlkYXRp
b24iLAorICAgIG9wdGlvbnMKKyAgKTsKIH0KIAogCiAvKioqLyB9KSwKIC8qIDQgKi8KLS8qKiov
IChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJl
X18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2Vi
cGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3Qi
OwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9u
eSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhw
b3J0c19fLCAidW5lc2NhcGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHVuZXNjYXBlOyB9KTsKLS8q
IGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJw
YWNrX2V4cG9ydHNfXywgImxpc3QiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGxpc3Q7IH0pOwotLyog
aGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBh
Y2tfZXhwb3J0c19fLCAiY29uc3RfdmFsdWUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGNvbnN0X3Zh
bHVlOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWly
ZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImNvbnN0X2RhdGEiLCBmdW5jdGlvbigpIHsgcmV0
dXJuIGNvbnN0X2RhdGE7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2Vi
cGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAicHJpbWl0aXZlX3R5cGUiLCBm
dW5jdGlvbigpIHsgcmV0dXJuIHByaW1pdGl2ZV90eXBlOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0
IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywg
ImFyZ3VtZW50X2xpc3QiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50X2xpc3Q7IH0pOwot
LyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dl
YnBhY2tfZXhwb3J0c19fLCAidHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMiLCBmdW5jdGlv
bigpIHsgcmV0dXJuIHR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzOyB9KTsKLS8qIGhhcm1v
bnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4
cG9ydHNfXywgInJldHVybl90eXBlIiwgZnVuY3Rpb24oKSB7IHJldHVybiByZXR1cm5fdHlwZTsg
fSk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5k
KF9fd2VicGFja19leHBvcnRzX18sICJzdHJpbmdpZmllciIsIGZ1bmN0aW9uKCkgeyByZXR1cm4g
c3RyaW5naWZpZXI7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFj
a19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiZ2V0TGFzdEluZGVudGF0aW9uIiwg
ZnVuY3Rpb24oKSB7IHJldHVybiBnZXRMYXN0SW5kZW50YXRpb247IH0pOwotLyogaGFybW9ueSBl
eHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0
c19fLCAiZ2V0TWVtYmVySW5kZW50YXRpb24iLCBmdW5jdGlvbigpIHsgcmV0dXJuIGdldE1lbWJl
ckluZGVudGF0aW9uOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBh
Y2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImF1dG9maXhBZGRFeHBvc2VkV2lu
ZG93IiwgZnVuY3Rpb24oKSB7IHJldHVybiBhdXRvZml4QWRkRXhwb3NlZFdpbmRvdzsgfSk7Ci0v
KiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2Vi
cGFja19leHBvcnRzX18sICJnZXRGaXJzdFRva2VuIiwgZnVuY3Rpb24oKSB7IHJldHVybiBnZXRG
aXJzdFRva2VuOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tf
cmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImZpbmRMYXN0SW5kZXgiLCBmdW5jdGlv
bigpIHsgcmV0dXJuIGZpbmRMYXN0SW5kZXg7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRp
bmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiYXV0b1Bh
cmVudGVyIiwgZnVuY3Rpb24oKSB7IHJldHVybiBhdXRvUGFyZW50ZXI7IH0pOworLyogaGFybW9u
eSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsK
Ky8qIGhhcm1vbnkgZXhwb3J0ICovICAgInVuZXNjYXBlIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8g
dW5lc2NhcGUpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAibGlzdCI6ICgpID0+ICgvKiBiaW5k
aW5nICovIGxpc3QpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAiY29uc3RfdmFsdWUiOiAoKSA9
PiAoLyogYmluZGluZyAqLyBjb25zdF92YWx1ZSksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJj
b25zdF9kYXRhIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gY29uc3RfZGF0YSksCisvKiBoYXJtb255
IGV4cG9ydCAqLyAgICJwcmltaXRpdmVfdHlwZSI6ICgpID0+ICgvKiBiaW5kaW5nICovIHByaW1p
dGl2ZV90eXBlKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgImFyZ3VtZW50X2xpc3QiOiAoKSA9
PiAoLyogYmluZGluZyAqLyBhcmd1bWVudF9saXN0KSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAg
InR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gdHlw
ZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAicmV0
dXJuX3R5cGUiOiAoKSA9PiAoLyogYmluZGluZyAqLyByZXR1cm5fdHlwZSksCisvKiBoYXJtb255
IGV4cG9ydCAqLyAgICJzdHJpbmdpZmllciI6ICgpID0+ICgvKiBiaW5kaW5nICovIHN0cmluZ2lm
aWVyKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgImdldExhc3RJbmRlbnRhdGlvbiI6ICgpID0+
ICgvKiBiaW5kaW5nICovIGdldExhc3RJbmRlbnRhdGlvbiksCisvKiBoYXJtb255IGV4cG9ydCAq
LyAgICJnZXRNZW1iZXJJbmRlbnRhdGlvbiI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldE1lbWJl
ckluZGVudGF0aW9uKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgImF1dG9maXhBZGRFeHBvc2Vk
V2luZG93IjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYXV0b2ZpeEFkZEV4cG9zZWRXaW5kb3cpLAor
LyogaGFybW9ueSBleHBvcnQgKi8gICAiZ2V0Rmlyc3RUb2tlbiI6ICgpID0+ICgvKiBiaW5kaW5n
ICovIGdldEZpcnN0VG9rZW4pLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAiZmluZExhc3RJbmRl
eCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGZpbmRMYXN0SW5kZXgpLAorLyogaGFybW9ueSBleHBv
cnQgKi8gICAiYXV0b1BhcmVudGVyIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYXV0b1BhcmVudGVy
KQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3R5
cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18o
NSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FyZ3VtZW50X2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDExKTsKIC8qIGhhcm1vbnkgaW1w
b3J0ICovIHZhciBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4KTsKQEAgLTY3Nyw3ICs2NjcsNyBAQCBfX3dl
YnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiAgKiBAcGFyYW0ge3N0cmlu
Z30gaWRlbnRpZmllcgogICovCiBmdW5jdGlvbiB1bmVzY2FwZShpZGVudGlmaWVyKSB7Ci0gIHJl
dHVybiBpZGVudGlmaWVyLnN0YXJ0c1dpdGgoJ18nKSA/IGlkZW50aWZpZXIuc2xpY2UoMSkgOiBp
ZGVudGlmaWVyOworICByZXR1cm4gaWRlbnRpZmllci5zdGFydHNXaXRoKCJfIikgPyBpZGVudGlm
aWVyLnNsaWNlKDEpIDogaWRlbnRpZmllcjsKIH0KIAogLyoqCkBAIC03MTQsNyArNzA0LDEwIEBA
IGZ1bmN0aW9uIGxpc3QodG9rZW5pc2VyLCB7IHBhcnNlciwgYWxsb3dEYW5nbGVyLCBsaXN0TmFt
ZSA9ICJsaXN0IiB9KSB7CiAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5p
c2VyfSB0b2tlbmlzZXIKICAqLwogZnVuY3Rpb24gY29uc3RfdmFsdWUodG9rZW5pc2VyKSB7Ci0g
IHJldHVybiB0b2tlbmlzZXIuY29uc3VtZSgidHJ1ZSIsICJmYWxzZSIsICJJbmZpbml0eSIsICIt
SW5maW5pdHkiLCAiTmFOIiwgImRlY2ltYWwiLCAiaW50ZWdlciIpOworICByZXR1cm4gKAorICAg
IHRva2VuaXNlci5jb25zdW1lVHlwZSgiZGVjaW1hbCIsICJpbnRlZ2VyIikgfHwKKyAgICB0b2tl
bmlzZXIuY29uc3VtZSgidHJ1ZSIsICJmYWxzZSIsICJJbmZpbml0eSIsICItSW5maW5pdHkiLCAi
TmFOIikKKyAgKTsKIH0KIAogLyoqCkBAIC03MjQsMjMgKzcxNywyNiBAQCBmdW5jdGlvbiBjb25z
dF92YWx1ZSh0b2tlbmlzZXIpIHsKICAqLwogZnVuY3Rpb24gY29uc3RfZGF0YSh7IHR5cGUsIHZh
bHVlIH0pIHsKICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSAiZGVjaW1hbCI6CisgICAgY2Fz
ZSAiaW50ZWdlciI6CisgICAgICByZXR1cm4geyB0eXBlOiAibnVtYmVyIiwgdmFsdWUgfTsKKyAg
ICBjYXNlICJzdHJpbmciOgorICAgICAgcmV0dXJuIHsgdHlwZTogInN0cmluZyIsIHZhbHVlOiB2
YWx1ZS5zbGljZSgxLCAtMSkgfTsKKyAgfQorCisgIHN3aXRjaCAodmFsdWUpIHsKICAgICBjYXNl
ICJ0cnVlIjoKICAgICBjYXNlICJmYWxzZSI6Ci0gICAgICByZXR1cm4geyB0eXBlOiAiYm9vbGVh
biIsIHZhbHVlOiB0eXBlID09PSAidHJ1ZSIgfTsKKyAgICAgIHJldHVybiB7IHR5cGU6ICJib29s
ZWFuIiwgdmFsdWU6IHZhbHVlID09PSAidHJ1ZSIgfTsKICAgICBjYXNlICJJbmZpbml0eSI6CiAg
ICAgY2FzZSAiLUluZmluaXR5IjoKLSAgICAgIHJldHVybiB7IHR5cGU6ICJJbmZpbml0eSIsIG5l
Z2F0aXZlOiB0eXBlLnN0YXJ0c1dpdGgoIi0iKSB9OworICAgICAgcmV0dXJuIHsgdHlwZTogIklu
ZmluaXR5IiwgbmVnYXRpdmU6IHZhbHVlLnN0YXJ0c1dpdGgoIi0iKSB9OwogICAgIGNhc2UgIlsi
OgogICAgICAgcmV0dXJuIHsgdHlwZTogInNlcXVlbmNlIiwgdmFsdWU6IFtdIH07CiAgICAgY2Fz
ZSAieyI6CiAgICAgICByZXR1cm4geyB0eXBlOiAiZGljdGlvbmFyeSIgfTsKLSAgICBjYXNlICJk
ZWNpbWFsIjoKLSAgICBjYXNlICJpbnRlZ2VyIjoKLSAgICAgIHJldHVybiB7IHR5cGU6ICJudW1i
ZXIiLCB2YWx1ZSB9OwotICAgIGNhc2UgInN0cmluZyI6Ci0gICAgICByZXR1cm4geyB0eXBlOiAi
c3RyaW5nIiwgdmFsdWU6IHZhbHVlLnNsaWNlKDEsIC0xKSB9OwogICAgIGRlZmF1bHQ6Ci0gICAg
ICByZXR1cm4geyB0eXBlIH07CisgICAgICByZXR1cm4geyB0eXBlOiB2YWx1ZSB9OwogICB9CiB9
CiAKQEAgLTc1Myw3ICs3NDksNyBAQCBmdW5jdGlvbiBwcmltaXRpdmVfdHlwZSh0b2tlbmlzZXIp
IHsKICAgICBjb25zdCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoInNob3J0IiwgImxvbmciKTsK
ICAgICBpZiAoYmFzZSkgewogICAgICAgY29uc3QgcG9zdGZpeCA9IHRva2VuaXNlci5jb25zdW1l
KCJsb25nIik7Ci0gICAgICByZXR1cm4gbmV3IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX19bIlR5cGUiXSh7IHNvdXJjZSwgdG9rZW5zOiB7IHByZWZpeCwgYmFzZSwgcG9zdGZp
eCB9IH0pOworICAgICAgcmV0dXJuIG5ldyBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fLlR5cGUoeyBzb3VyY2UsIHRva2VuczogeyBwcmVmaXgsIGJhc2UsIHBvc3RmaXggfSB9
KTsKICAgICB9CiAgICAgaWYgKHByZWZpeCkgdG9rZW5pc2VyLmVycm9yKCJGYWlsZWQgdG8gcGFy
c2UgaW50ZWdlciB0eXBlIik7CiAgIH0KQEAgLTc2Miw3ICs3NTgsNyBAQCBmdW5jdGlvbiBwcmlt
aXRpdmVfdHlwZSh0b2tlbmlzZXIpIHsKICAgICBjb25zdCBwcmVmaXggPSB0b2tlbmlzZXIuY29u
c3VtZSgidW5yZXN0cmljdGVkIik7CiAgICAgY29uc3QgYmFzZSA9IHRva2VuaXNlci5jb25zdW1l
KCJmbG9hdCIsICJkb3VibGUiKTsKICAgICBpZiAoYmFzZSkgewotICAgICAgcmV0dXJuIG5ldyBf
dHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJUeXBlIl0oeyBzb3VyY2UsIHRv
a2VuczogeyBwcmVmaXgsIGJhc2UgfSB9KTsKKyAgICAgIHJldHVybiBuZXcgX3R5cGVfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5UeXBlKHsgc291cmNlLCB0b2tlbnM6IHsgcHJlZml4
LCBiYXNlIH0gfSk7CiAgICAgfQogICAgIGlmIChwcmVmaXgpIHRva2VuaXNlci5lcnJvcigiRmFp
bGVkIHRvIHBhcnNlIGZsb2F0IHR5cGUiKTsKICAgfQpAQCAtNzcwLDkgKzc2NiwxNSBAQCBmdW5j
dGlvbiBwcmltaXRpdmVfdHlwZSh0b2tlbmlzZXIpIHsKICAgY29uc3QgeyBzb3VyY2UgfSA9IHRv
a2VuaXNlcjsKICAgY29uc3QgbnVtX3R5cGUgPSBpbnRlZ2VyX3R5cGUodG9rZW5pc2VyKSB8fCBk
ZWNpbWFsX3R5cGUodG9rZW5pc2VyKTsKICAgaWYgKG51bV90eXBlKSByZXR1cm4gbnVtX3R5cGU7
Ci0gIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiYm9vbGVhbiIsICJieXRlIiwgIm9j
dGV0Iik7CisgIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgKKyAgICAiYmlnaW50IiwK
KyAgICAiYm9vbGVhbiIsCisgICAgImJ5dGUiLAorICAgICJvY3RldCIsCisgICAgInVuZGVmaW5l
ZCIKKyAgKTsKICAgaWYgKGJhc2UpIHsKLSAgICByZXR1cm4gbmV3IF90eXBlX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8wX19bIlR5cGUiXSh7IHNvdXJjZSwgdG9rZW5zOiB7IGJhc2UgfSB9
KTsKKyAgICByZXR1cm4gbmV3IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18u
VHlwZSh7IHNvdXJjZSwgdG9rZW5zOiB7IGJhc2UgfSB9KTsKICAgfQogfQogCkBAIC03ODAsNyAr
NzgyLDEwIEBAIGZ1bmN0aW9uIHByaW1pdGl2ZV90eXBlKHRva2VuaXNlcikgewogICogQHBhcmFt
IHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCiAgKi8KIGZ1bmN0
aW9uIGFyZ3VtZW50X2xpc3QodG9rZW5pc2VyKSB7Ci0gIHJldHVybiBsaXN0KHRva2VuaXNlciwg
eyBwYXJzZXI6IF9hcmd1bWVudF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJBcmd1
bWVudCJdLnBhcnNlLCBsaXN0TmFtZTogImFyZ3VtZW50cyBsaXN0IiB9KTsKKyAgcmV0dXJuIGxp
c3QodG9rZW5pc2VyLCB7CisgICAgcGFyc2VyOiBfYXJndW1lbnRfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzFfXy5Bcmd1bWVudC5wYXJzZSwKKyAgICBsaXN0TmFtZTogImFyZ3VtZW50cyBs
aXN0IiwKKyAgfSk7CiB9CiAKIC8qKgpAQCAtNzg4LDggKzc5Myw4IEBAIGZ1bmN0aW9uIGFyZ3Vt
ZW50X2xpc3QodG9rZW5pc2VyKSB7CiAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZU5hbWUKICAqLwog
ZnVuY3Rpb24gdHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXModG9rZW5pc2VyLCB0eXBlTmFt
ZSkgewotICBjb25zdCBleHRBdHRycyA9IF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8yX19bIkV4dGVuZGVkQXR0cmlidXRlcyJdLnBhcnNlKHRva2VuaXNl
cik7Ci0gIGNvbnN0IHJldCA9IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19b
IlR5cGUiXS5wYXJzZSh0b2tlbmlzZXIsIHR5cGVOYW1lKTsKKyAgY29uc3QgZXh0QXR0cnMgPSBf
ZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkV4dGVu
ZGVkQXR0cmlidXRlcy5wYXJzZSh0b2tlbmlzZXIpOworICBjb25zdCByZXQgPSBfdHlwZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlR5cGUucGFyc2UodG9rZW5pc2VyLCB0eXBlTmFt
ZSk7CiAgIGlmIChyZXQpIGF1dG9QYXJlbnRlcihyZXQpLmV4dEF0dHJzID0gZXh0QXR0cnM7CiAg
IHJldHVybiByZXQ7CiB9CkBAIC03OTksMTMgKzgwNCwxNiBAQCBmdW5jdGlvbiB0eXBlX3dpdGhf
ZXh0ZW5kZWRfYXR0cmlidXRlcyh0b2tlbmlzZXIsIHR5cGVOYW1lKSB7CiAgKiBAcGFyYW0ge3N0
cmluZ30gdHlwZU5hbWUKICAqLwogZnVuY3Rpb24gcmV0dXJuX3R5cGUodG9rZW5pc2VyLCB0eXBl
TmFtZSkgewotICBjb25zdCB0eXAgPSBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MF9fWyJUeXBlIl0ucGFyc2UodG9rZW5pc2VyLCB0eXBlTmFtZSB8fCAicmV0dXJuLXR5cGUiKTsK
KyAgY29uc3QgdHlwID0gX3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5UeXBl
LnBhcnNlKHRva2VuaXNlciwgdHlwZU5hbWUgfHwgInJldHVybi10eXBlIik7CiAgIGlmICh0eXAp
IHsKICAgICByZXR1cm4gdHlwOwogICB9CiAgIGNvbnN0IHZvaWRUb2tlbiA9IHRva2VuaXNlci5j
b25zdW1lKCJ2b2lkIik7CiAgIGlmICh2b2lkVG9rZW4pIHsKLSAgICBjb25zdCByZXQgPSBuZXcg
X3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siVHlwZSJdKHsgc291cmNlOiB0
b2tlbmlzZXIuc291cmNlLCB0b2tlbnM6IHsgYmFzZTogdm9pZFRva2VuIH0gfSk7CisgICAgY29u
c3QgcmV0ID0gbmV3IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uVHlwZSh7
CisgICAgICBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsCisgICAgICB0b2tlbnM6IHsgYmFzZTog
dm9pZFRva2VuIH0sCisgICAgfSk7CiAgICAgcmV0LnR5cGUgPSAicmV0dXJuLXR5cGUiOwogICAg
IHJldHVybiByZXQ7CiAgIH0KQEAgLTgxNyw4ICs4MjUsOSBAQCBmdW5jdGlvbiByZXR1cm5fdHlw
ZSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB7CiBmdW5jdGlvbiBzdHJpbmdpZmllcih0b2tlbmlzZXIp
IHsKICAgY29uc3Qgc3BlY2lhbCA9IHRva2VuaXNlci5jb25zdW1lKCJzdHJpbmdpZmllciIpOwog
ICBpZiAoIXNwZWNpYWwpIHJldHVybjsKLSAgY29uc3QgbWVtYmVyID0gX2F0dHJpYnV0ZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fWyJBdHRyaWJ1dGUiXS5wYXJzZSh0b2tlbmlzZXIs
IHsgc3BlY2lhbCB9KSB8fAotICAgIF9vcGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzNfX1siT3BlcmF0aW9uIl0ucGFyc2UodG9rZW5pc2VyLCB7IHNwZWNpYWwgfSkgfHwKKyAg
Y29uc3QgbWVtYmVyID0KKyAgICBfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV80X18uQXR0cmlidXRlLnBhcnNlKHRva2VuaXNlciwgeyBzcGVjaWFsIH0pIHx8CisgICAgX29w
ZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLk9wZXJhdGlvbi5wYXJzZSh0
b2tlbmlzZXIsIHsgc3BlY2lhbCB9KSB8fAogICAgIHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5h
dGVkIHN0cmluZ2lmaWVyIik7CiAgIHJldHVybiBtZW1iZXI7CiB9CkBAIC04NTMsOSArODYyLDkg
QEAgZnVuY3Rpb24gZ2V0TWVtYmVySW5kZW50YXRpb24ocGFyZW50VHJpdmlhKSB7CiAgKi8KIGZ1
bmN0aW9uIGF1dG9maXhBZGRFeHBvc2VkV2luZG93KGRlZikgewogICByZXR1cm4gKCkgPT4gewot
ICAgIGlmIChkZWYuZXh0QXR0cnMubGVuZ3RoKXsKLSAgICAgIGNvbnN0IHRva2VuaXNlciA9IG5l
dyBfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19bIlRva2VuaXNlciJd
KCJFeHBvc2VkPVdpbmRvdywiKTsKLSAgICAgIGNvbnN0IGV4cG9zZWQgPSBfZXh0ZW5kZWRfYXR0
cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJTaW1wbGVFeHRlbmRlZEF0
dHJpYnV0ZSJdLnBhcnNlKHRva2VuaXNlcik7CisgICAgaWYgKGRlZi5leHRBdHRycy5sZW5ndGgp
IHsKKyAgICAgIGNvbnN0IHRva2VuaXNlciA9IG5ldyBfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV81X18uVG9rZW5pc2VyKCJFeHBvc2VkPVdpbmRvdywiKTsKKyAgICAgIGNv
bnN0IGV4cG9zZWQgPSBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMl9fLlNpbXBsZUV4dGVuZGVkQXR0cmlidXRlLnBhcnNlKHRva2VuaXNlcik7CiAgICAg
ICBleHBvc2VkLnRva2Vucy5zZXBhcmF0b3IgPSB0b2tlbmlzZXIuY29uc3VtZSgiLCIpOwogICAg
ICAgY29uc3QgZXhpc3RpbmcgPSBkZWYuZXh0QXR0cnNbMF07CiAgICAgICBpZiAoIS9eXHMvLnRl
c3QoZXhpc3RpbmcudG9rZW5zLm5hbWUudHJpdmlhKSkgewpAQCAtODYzLDcgKzg3Miw5IEBAIGZ1
bmN0aW9uIGF1dG9maXhBZGRFeHBvc2VkV2luZG93KGRlZikgewogICAgICAgfQogICAgICAgZGVm
LmV4dEF0dHJzLnVuc2hpZnQoZXhwb3NlZCk7CiAgICAgfSBlbHNlIHsKLSAgICAgIGF1dG9QYXJl
bnRlcihkZWYpLmV4dEF0dHJzID0gX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzJfX1siRXh0ZW5kZWRBdHRyaWJ1dGVzIl0ucGFyc2UobmV3IF90b2tlbmlz
ZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1siVG9rZW5pc2VyIl0oIltFeHBvc2Vk
PVdpbmRvd10iKSk7CisgICAgICBhdXRvUGFyZW50ZXIoZGVmKS5leHRBdHRycyA9IF9leHRlbmRl
ZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uRXh0ZW5kZWRBdHRy
aWJ1dGVzLnBhcnNlKAorICAgICAgICBuZXcgX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfNV9fLlRva2VuaXNlcigiW0V4cG9zZWQ9V2luZG93XSIpCisgICAgICApOwogICAg
ICAgY29uc3QgdHJpdmlhID0gZGVmLnRva2Vucy5iYXNlLnRyaXZpYTsKICAgICAgIGRlZi5leHRB
dHRycy50b2tlbnMub3Blbi50cml2aWEgPSB0cml2aWE7CiAgICAgICBkZWYudG9rZW5zLmJhc2Uu
dHJpdmlhID0gYFxuJHtnZXRMYXN0SW5kZW50YXRpb24odHJpdmlhKX1gOwpAQCAtOTQyLDE4ICs5
NTMsMTkgQEAgZnVuY3Rpb24gYXV0b1BhcmVudGVyKGRhdGEsIHBhcmVudCkgewogICAgICAgICB2
YWx1ZS5wYXJlbnQgPSBwYXJlbnQ7CiAgICAgICB9CiAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9
CisgICAgfSwKICAgfSk7CiB9CiAKIAogLyoqKi8gfSksCiAvKiA1ICovCi0vKioqLyAoZnVuY3Rp
b24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cisv
KioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhw
b3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2Vi
cGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0
IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywg
IlR5cGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIFR5cGU7IH0pOworLyogaGFybW9ueSBleHBvcnQg
Ki8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1v
bnkgZXhwb3J0ICovICAgIlR5cGUiOiAoKSA9PiAoLyogYmluZGluZyAqLyBUeXBlKQorLyogaGFy
bW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CiAvKiBo
YXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIg
X3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3Jl
cXVpcmVfXygyKTsKQEAgLTk3MiwzOCArOTg0LDY2IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihf
X3dlYnBhY2tfZXhwb3J0c19fKTsKICAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlTmFtZQogICovCiBm
dW5jdGlvbiBnZW5lcmljX3R5cGUodG9rZW5pc2VyLCB0eXBlTmFtZSkgewotICBjb25zdCBiYXNl
ID0gdG9rZW5pc2VyLmNvbnN1bWUoIkZyb3plbkFycmF5IiwgIlByb21pc2UiLCAic2VxdWVuY2Ui
LCAicmVjb3JkIik7CisgIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgKKyAgICAiRnJv
emVuQXJyYXkiLAorICAgICJPYnNlcnZhYmxlQXJyYXkiLAorICAgICJQcm9taXNlIiwKKyAgICAi
c2VxdWVuY2UiLAorICAgICJyZWNvcmQiCisgICk7CiAgIGlmICghYmFzZSkgewogICAgIHJldHVy
bjsKICAgfQotICBjb25zdCByZXQgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzFfX1siYXV0b1BhcmVudGVyIl0pKG5ldyBUeXBlKHsgc291cmNlOiB0b2tlbmlz
ZXIuc291cmNlLCB0b2tlbnM6IHsgYmFzZSB9IH0pKTsKLSAgcmV0LnRva2Vucy5vcGVuID0gdG9r
ZW5pc2VyLmNvbnN1bWUoIjwiKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE5vIG9wZW5pbmcgYnJhY2tl
dCBhZnRlciAke2Jhc2UudHlwZX1gKTsKLSAgc3dpdGNoIChiYXNlLnR5cGUpIHsKKyAgY29uc3Qg
cmV0ID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5hdXRvUGFy
ZW50ZXIpKAorICAgIG5ldyBUeXBlKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnM6
IHsgYmFzZSB9IH0pCisgICk7CisgIHJldC50b2tlbnMub3BlbiA9CisgICAgdG9rZW5pc2VyLmNv
bnN1bWUoIjwiKSB8fAorICAgIHRva2VuaXNlci5lcnJvcihgTm8gb3BlbmluZyBicmFja2V0IGFm
dGVyICR7YmFzZS52YWx1ZX1gKTsKKyAgc3dpdGNoIChiYXNlLnZhbHVlKSB7CiAgICAgY2FzZSAi
UHJvbWlzZSI6IHsKLSAgICAgIGlmICh0b2tlbmlzZXIucHJvYmUoIlsiKSkgdG9rZW5pc2VyLmVy
cm9yKCJQcm9taXNlIHR5cGUgY2Fubm90IGhhdmUgZXh0ZW5kZWQgYXR0cmlidXRlIik7Ci0gICAg
ICBjb25zdCBzdWJ0eXBlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8xX19bInJldHVybl90eXBlIl0pKHRva2VuaXNlciwgdHlwZU5hbWUpIHx8IHRva2VuaXNl
ci5lcnJvcigiTWlzc2luZyBQcm9taXNlIHN1YnR5cGUiKTsKKyAgICAgIGlmICh0b2tlbmlzZXIu
cHJvYmUoIlsiKSkKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJQcm9taXNlIHR5cGUgY2Fubm90
IGhhdmUgZXh0ZW5kZWQgYXR0cmlidXRlIik7CisgICAgICBjb25zdCBzdWJ0eXBlID0KKyAgICAg
ICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5yZXR1cm5fdHlw
ZSkodG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJNaXNz
aW5nIFByb21pc2Ugc3VidHlwZSIpOwogICAgICAgcmV0LnN1YnR5cGUucHVzaChzdWJ0eXBlKTsK
ICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlICJzZXF1ZW5jZSI6Ci0gICAgY2FzZSAiRnJv
emVuQXJyYXkiOiB7Ci0gICAgICBjb25zdCBzdWJ0eXBlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVz
Il0pKHRva2VuaXNlciwgdHlwZU5hbWUpIHx8IHRva2VuaXNlci5lcnJvcihgTWlzc2luZyAke2Jh
c2UudHlwZX0gc3VidHlwZWApOworICAgIGNhc2UgIkZyb3plbkFycmF5IjoKKyAgICBjYXNlICJP
YnNlcnZhYmxlQXJyYXkiOiB7CisgICAgICBjb25zdCBzdWJ0eXBlID0KKyAgICAgICAgKDAsX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50eXBlX3dpdGhfZXh0ZW5kZWRf
YXR0cmlidXRlcykodG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwKKyAgICAgICAgdG9rZW5pc2VyLmVy
cm9yKGBNaXNzaW5nICR7YmFzZS52YWx1ZX0gc3VidHlwZWApOwogICAgICAgcmV0LnN1YnR5cGUu
cHVzaChzdWJ0eXBlKTsKICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlICJyZWNvcmQiOiB7
Ci0gICAgICBpZiAodG9rZW5pc2VyLnByb2JlKCJbIikpIHRva2VuaXNlci5lcnJvcigiUmVjb3Jk
IGtleSBjYW5ub3QgaGF2ZSBleHRlbmRlZCBhdHRyaWJ1dGUiKTsKLSAgICAgIGNvbnN0IGtleVR5
cGUgPSB0b2tlbmlzZXIuY29uc3VtZSguLi5fdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8yX19bInN0cmluZ1R5cGVzIl0pIHx8IHRva2VuaXNlci5lcnJvcihgUmVjb3JkIGtl
eSBtdXN0IGJlIG9uZSBvZjogJHtfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8yX19bInN0cmluZ1R5cGVzIl0uam9pbigiLCAiKX1gKTsKLSAgICAgIGNvbnN0IGtleUlkbFR5
cGUgPSBuZXcgVHlwZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zOiB7IGJhc2U6
IGtleVR5cGUgfX0pOwotICAgICAga2V5SWRsVHlwZS50b2tlbnMuc2VwYXJhdG9yID0gdG9rZW5p
c2VyLmNvbnN1bWUoIiwiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIk1pc3NpbmcgY29tbWEgYWZ0ZXIg
cmVjb3JkIGtleSB0eXBlIik7CisgICAgICBpZiAodG9rZW5pc2VyLnByb2JlKCJbIikpCisgICAg
ICAgIHRva2VuaXNlci5lcnJvcigiUmVjb3JkIGtleSBjYW5ub3QgaGF2ZSBleHRlbmRlZCBhdHRy
aWJ1dGUiKTsKKyAgICAgIGNvbnN0IGtleVR5cGUgPQorICAgICAgICB0b2tlbmlzZXIuY29uc3Vt
ZSguLi5fdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uc3RyaW5nVHlw
ZXMpIHx8CisgICAgICAgIHRva2VuaXNlci5lcnJvcihgUmVjb3JkIGtleSBtdXN0IGJlIG9uZSBv
ZjogJHtfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uc3RyaW5nVHlw
ZXMuam9pbigiLCAiKX1gKTsKKyAgICAgIGNvbnN0IGtleUlkbFR5cGUgPSBuZXcgVHlwZSh7Cisg
ICAgICAgIHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwKKyAgICAgICAgdG9rZW5zOiB7IGJhc2U6
IGtleVR5cGUgfSwKKyAgICAgIH0pOworICAgICAga2V5SWRsVHlwZS50b2tlbnMuc2VwYXJhdG9y
ID0KKyAgICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIiwiKSB8fAorICAgICAgICB0b2tlbmlzZXIu
ZXJyb3IoIk1pc3NpbmcgY29tbWEgYWZ0ZXIgcmVjb3JkIGtleSB0eXBlIik7CiAgICAgICBrZXlJ
ZGxUeXBlLnR5cGUgPSB0eXBlTmFtZTsKLSAgICAgIGNvbnN0IHZhbHVlVHlwZSA9IE9iamVjdChf
aGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ0eXBlX3dpdGhfZXh0ZW5k
ZWRfYXR0cmlidXRlcyJdKSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB8fCB0b2tlbmlzZXIuZXJyb3Io
IkVycm9yIHBhcnNpbmcgZ2VuZXJpYyB0eXBlIHJlY29yZCIpOworICAgICAgY29uc3QgdmFsdWVU
eXBlID0KKyAgICAgICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFf
Xy50eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcykodG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwK
KyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJFcnJvciBwYXJzaW5nIGdlbmVyaWMgdHlwZSByZWNv
cmQiKTsKICAgICAgIHJldC5zdWJ0eXBlLnB1c2goa2V5SWRsVHlwZSwgdmFsdWVUeXBlKTsKICAg
ICAgIGJyZWFrOwogICAgIH0KICAgfQotICBpZiAoIXJldC5pZGxUeXBlKSB0b2tlbmlzZXIuZXJy
b3IoYEVycm9yIHBhcnNpbmcgZ2VuZXJpYyB0eXBlICR7YmFzZS50eXBlfWApOwotICByZXQudG9r
ZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIj4iKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE1p
c3NpbmcgY2xvc2luZyBicmFja2V0IGFmdGVyICR7YmFzZS50eXBlfWApOworICBpZiAoIXJldC5p
ZGxUeXBlKSB0b2tlbmlzZXIuZXJyb3IoYEVycm9yIHBhcnNpbmcgZ2VuZXJpYyB0eXBlICR7YmFz
ZS52YWx1ZX1gKTsKKyAgcmV0LnRva2Vucy5jbG9zZSA9CisgICAgdG9rZW5pc2VyLmNvbnN1bWUo
Ij4iKSB8fAorICAgIHRva2VuaXNlci5lcnJvcihgTWlzc2luZyBjbG9zaW5nIGJyYWNrZXQgYWZ0
ZXIgJHtiYXNlLnZhbHVlfWApOwogICByZXR1cm4gcmV0LnRoaXM7CiB9CiAKQEAgLTEwMjMsMjEg
KzEwNjMsMjUgQEAgZnVuY3Rpb24gdHlwZV9zdWZmaXgodG9rZW5pc2VyLCBvYmopIHsKICAqIEBw
YXJhbSB7c3RyaW5nfSB0eXBlTmFtZQogICovCiBmdW5jdGlvbiBzaW5nbGVfdHlwZSh0b2tlbmlz
ZXIsIHR5cGVOYW1lKSB7Ci0gIGxldCByZXQgPSBnZW5lcmljX3R5cGUodG9rZW5pc2VyLCB0eXBl
TmFtZSkgfHwgT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19b
InByaW1pdGl2ZV90eXBlIl0pKHRva2VuaXNlcik7CisgIGxldCByZXQgPSBnZW5lcmljX3R5cGUo
dG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzFfXy5wcmltaXRpdmVfdHlwZSkodG9rZW5pc2VyKTsKICAgaWYgKCFyZXQpIHsKLSAg
ICBjb25zdCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiLCAuLi5fdG9rZW5p
c2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInN0cmluZ1R5cGVzIl0sIC4uLl90
b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1sidHlwZU5hbWVLZXl3b3Jk
cyJdKTsKKyAgICBjb25zdCBiYXNlID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lVHlwZSgiaWRl
bnRpZmllciIpIHx8CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSguLi5fdG9rZW5pc2VyX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uc3RyaW5nVHlwZXMsIC4uLl90b2tlbmlzZXJfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50eXBlTmFtZUtleXdvcmRzKTsKICAgICBpZiAo
IWJhc2UpIHsKICAgICAgIHJldHVybjsKICAgICB9CiAgICAgcmV0ID0gbmV3IFR5cGUoeyBzb3Vy
Y2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyBiYXNlIH0gfSk7Ci0gICAgaWYgKHRva2Vu
aXNlci5wcm9iZSgiPCIpKSB0b2tlbmlzZXIuZXJyb3IoYFVuc3VwcG9ydGVkIGdlbmVyaWMgdHlw
ZSAke2Jhc2UudmFsdWV9YCk7CisgICAgaWYgKHRva2VuaXNlci5wcm9iZSgiPCIpKQorICAgICAg
dG9rZW5pc2VyLmVycm9yKGBVbnN1cHBvcnRlZCBnZW5lcmljIHR5cGUgJHtiYXNlLnZhbHVlfWAp
OwogICB9CiAgIGlmIChyZXQuZ2VuZXJpYyA9PT0gIlByb21pc2UiICYmIHRva2VuaXNlci5wcm9i
ZSgiPyIpKSB7CiAgICAgdG9rZW5pc2VyLmVycm9yKCJQcm9taXNlIHR5cGUgY2Fubm90IGJlIG51
bGxhYmxlIik7CiAgIH0KICAgcmV0LnR5cGUgPSB0eXBlTmFtZSB8fCBudWxsOwogICB0eXBlX3N1
ZmZpeCh0b2tlbmlzZXIsIHJldCk7Ci0gIGlmIChyZXQubnVsbGFibGUgJiYgcmV0LmlkbFR5cGUg
PT09ICJhbnkiKSB0b2tlbmlzZXIuZXJyb3IoIlR5cGUgYGFueWAgY2Fubm90IGJlIG1hZGUgbnVs
bGFibGUiKTsKKyAgaWYgKHJldC5udWxsYWJsZSAmJiByZXQuaWRsVHlwZSA9PT0gImFueSIpCisg
ICAgdG9rZW5pc2VyLmVycm9yKCJUeXBlIGBhbnlgIGNhbm5vdCBiZSBtYWRlIG51bGxhYmxlIik7
CiAgIHJldHVybiByZXQ7CiB9CiAKQEAgLTEwNDksMjggKzEwOTMsMzQgQEAgZnVuY3Rpb24gdW5p
b25fdHlwZSh0b2tlbmlzZXIsIHR5cGUpIHsKICAgY29uc3QgdG9rZW5zID0ge307CiAgIHRva2Vu
cy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUoIigiKTsKICAgaWYgKCF0b2tlbnMub3BlbikgcmV0
dXJuOwotICBjb25zdCByZXQgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzFfX1siYXV0b1BhcmVudGVyIl0pKG5ldyBUeXBlKHsgc291cmNlOiB0b2tlbmlzZXIu
c291cmNlLCB0b2tlbnMgfSkpOworICBjb25zdCByZXQgPSAoMCxfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fLmF1dG9QYXJlbnRlcikobmV3IFR5cGUoeyBzb3VyY2U6IHRv
a2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSk7CiAgIHJldC50eXBlID0gdHlwZSB8fCBudWxsOwog
ICB3aGlsZSAodHJ1ZSkgewotICAgIGNvbnN0IHR5cCA9IE9iamVjdChfaGVscGVyc19qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyJd
KSh0b2tlbmlzZXIpIHx8IHRva2VuaXNlci5lcnJvcigiTm8gdHlwZSBhZnRlciBvcGVuIHBhcmVu
dGhlc2lzIG9yICdvcicgaW4gdW5pb24gdHlwZSIpOwotICAgIGlmICh0eXAuaWRsVHlwZSA9PT0g
ImFueSIpIHRva2VuaXNlci5lcnJvcigiVHlwZSBgYW55YCBjYW5ub3QgYmUgaW5jbHVkZWQgaW4g
YSB1bmlvbiB0eXBlIik7Ci0gICAgaWYgKHR5cC5nZW5lcmljID09PSAiUHJvbWlzZSIpIHRva2Vu
aXNlci5lcnJvcigiVHlwZSBgUHJvbWlzZWAgY2Fubm90IGJlIGluY2x1ZGVkIGluIGEgdW5pb24g
dHlwZSIpOworICAgIGNvbnN0IHR5cCA9CisgICAgICAoMCxfaGVscGVyc19qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMV9fLnR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzKSh0b2tlbmlz
ZXIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIk5vIHR5cGUgYWZ0ZXIgb3BlbiBwYXJlbnRo
ZXNpcyBvciAnb3InIGluIHVuaW9uIHR5cGUiKTsKKyAgICBpZiAodHlwLmlkbFR5cGUgPT09ICJh
bnkiKQorICAgICAgdG9rZW5pc2VyLmVycm9yKCJUeXBlIGBhbnlgIGNhbm5vdCBiZSBpbmNsdWRl
ZCBpbiBhIHVuaW9uIHR5cGUiKTsKKyAgICBpZiAodHlwLmdlbmVyaWMgPT09ICJQcm9taXNlIikK
KyAgICAgIHRva2VuaXNlci5lcnJvcigiVHlwZSBgUHJvbWlzZWAgY2Fubm90IGJlIGluY2x1ZGVk
IGluIGEgdW5pb24gdHlwZSIpOwogICAgIHJldC5zdWJ0eXBlLnB1c2godHlwKTsKICAgICBjb25z
dCBvciA9IHRva2VuaXNlci5jb25zdW1lKCJvciIpOwogICAgIGlmIChvcikgewogICAgICAgdHlw
LnRva2Vucy5zZXBhcmF0b3IgPSBvcjsKLSAgICB9Ci0gICAgZWxzZSBicmVhazsKKyAgICB9IGVs
c2UgYnJlYWs7CiAgIH0KICAgaWYgKHJldC5pZGxUeXBlLmxlbmd0aCA8IDIpIHsKLSAgICB0b2tl
bmlzZXIuZXJyb3IoIkF0IGxlYXN0IHR3byB0eXBlcyBhcmUgZXhwZWN0ZWQgaW4gYSB1bmlvbiB0
eXBlIGJ1dCBmb3VuZCBsZXNzIik7CisgICAgdG9rZW5pc2VyLmVycm9yKAorICAgICAgIkF0IGxl
YXN0IHR3byB0eXBlcyBhcmUgZXhwZWN0ZWQgaW4gYSB1bmlvbiB0eXBlIGJ1dCBmb3VuZCBsZXNz
IgorICAgICk7CiAgIH0KLSAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIikiKSB8
fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCB1bmlvbiB0eXBlIik7CisgIHRva2Vucy5j
bG9zZSA9CisgICAgdG9rZW5pc2VyLmNvbnN1bWUoIikiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVu
dGVybWluYXRlZCB1bmlvbiB0eXBlIik7CiAgIHR5cGVfc3VmZml4KHRva2VuaXNlciwgcmV0KTsK
ICAgcmV0dXJuIHJldC50aGlzOwogfQogCi1jbGFzcyBUeXBlIGV4dGVuZHMgX2Jhc2VfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKK2NsYXNzIFR5cGUgZXh0ZW5kcyBf
YmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkJhc2UgewogICAvKioKICAgICog
QHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCiAgICAq
IEBwYXJhbSB7c3RyaW5nfSB0eXBlTmFtZQpAQCAtMTA4Miw3ICsxMTMyLDcgQEAgY2xhc3MgVHlw
ZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7
CiAgIGNvbnN0cnVjdG9yKHsgc291cmNlLCB0b2tlbnMgfSkgewogICAgIHN1cGVyKHsgc291cmNl
LCB0b2tlbnMgfSk7CiAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICJzdWJ0eXBlIiwg
eyB2YWx1ZTogW10sIHdyaXRhYmxlOiB0cnVlIH0pOwotICAgIHRoaXMuZXh0QXR0cnMgPSBuZXcg
X2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1siRXh0
ZW5kZWRBdHRyaWJ1dGVzIl0oe30pOworICAgIHRoaXMuZXh0QXR0cnMgPSBuZXcgX2V4dGVuZGVk
X2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5FeHRlbmRlZEF0dHJp
YnV0ZXMoe30pOwogICB9CiAKICAgZ2V0IGdlbmVyaWMoKSB7CkBAIC0xMTAyLDMyICsxMTUyLDQ3
IEBAIGNsYXNzIFR5cGUgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MF9fWyJCYXNlIl0gewogICAgICAgcmV0dXJuIHRoaXMuc3VidHlwZTsKICAgICB9CiAgICAgLy8g
QWRkaW5nIHByZWZpeGVzL3Bvc3RmaXhlcyBmb3IgInVucmVzdHJpY3RlZCBmbG9hdCIsIGV0Yy4K
LSAgICBjb25zdCBuYW1lID0gWwotICAgICAgdGhpcy50b2tlbnMucHJlZml4LAotICAgICAgdGhp
cy50b2tlbnMuYmFzZSwKLSAgICAgIHRoaXMudG9rZW5zLnBvc3RmaXgKLSAgICBdLmZpbHRlcih0
ID0+IHQpLm1hcCh0ID0+IHQudmFsdWUpLmpvaW4oIiAiKTsKLSAgICByZXR1cm4gT2JqZWN0KF9o
ZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0pKG5hbWUp
OworICAgIGNvbnN0IG5hbWUgPSBbdGhpcy50b2tlbnMucHJlZml4LCB0aGlzLnRva2Vucy5iYXNl
LCB0aGlzLnRva2Vucy5wb3N0Zml4XQorICAgICAgLmZpbHRlcigodCkgPT4gdCkKKyAgICAgIC5t
YXAoKHQpID0+IHQudmFsdWUpCisgICAgICAuam9pbigiICIpOworICAgIHJldHVybiAoMCxfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVuZXNjYXBlKShuYW1lKTsKICAg
fQogCiAgICp2YWxpZGF0ZShkZWZzKSB7CiAgICAgeWllbGQqIHRoaXMuZXh0QXR0cnMudmFsaWRh
dGUoZGVmcyk7CisKKyAgICBpZiAodGhpcy5pZGxUeXBlID09PSAidm9pZCIpIHsKKyAgICAgIGNv
bnN0IG1lc3NhZ2UgPSBgXGB2b2lkXGAgaXMgbm93IHJlcGxhY2VkIGJ5IFxgdW5kZWZpbmVkXGAu
IFJlZmVyIHRvIHRoZSBcCitbcmVsZXZhbnQgR2l0SHViIGlzc3VlXShodHRwczovL2dpdGh1Yi5j
b20vaGV5Y2FtL3dlYmlkbC9pc3N1ZXMvNjApIFwKK2ZvciBtb3JlIGluZm9ybWF0aW9uLmA7Cisg
ICAgICB5aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy52YWxp
ZGF0aW9uRXJyb3IpKHRoaXMudG9rZW5zLmJhc2UsIHRoaXMsICJyZXBsYWNlLXZvaWQiLCBtZXNz
YWdlLCB7CisgICAgICAgIGF1dG9maXg6IHJlcGxhY2VWb2lkKHRoaXMpLAorICAgICAgfSk7Cisg
ICAgfQorCiAgICAgLyoKICAgICAgKiBJZiBhIHVuaW9uIGlzIG51bGxhYmxlLCBpdHMgc3VidW5p
b25zIGNhbm5vdCBpbmNsdWRlIGEgZGljdGlvbmFyeQogICAgICAqIElmIG5vdCwgc3VidW5pb25z
IG1heSBpbmNsdWRlIGRpY3Rpb25hcmllcyBpZiBlYWNoIHVuaW9uIGlzIG5vdCBudWxsYWJsZQog
ICAgICAqLwogICAgIGNvbnN0IHR5cGVkZWYgPSAhdGhpcy51bmlvbiAmJiBkZWZzLnVuaXF1ZS5n
ZXQodGhpcy5pZGxUeXBlKTsKLSAgICBjb25zdCB0YXJnZXQgPQotICAgICAgdGhpcy51bmlvbiA/
IHRoaXMgOgotICAgICAgKHR5cGVkZWYgJiYgdHlwZWRlZi50eXBlID09PSAidHlwZWRlZiIpID8g
dHlwZWRlZi5pZGxUeXBlIDoKLSAgICAgIHVuZGVmaW5lZDsKKyAgICBjb25zdCB0YXJnZXQgPSB0
aGlzLnVuaW9uCisgICAgICA/IHRoaXMKKyAgICAgIDogdHlwZWRlZiAmJiB0eXBlZGVmLnR5cGUg
PT09ICJ0eXBlZGVmIgorICAgICAgPyB0eXBlZGVmLmlkbFR5cGUKKyAgICAgIDogdW5kZWZpbmVk
OwogICAgIGlmICh0YXJnZXQgJiYgdGhpcy5udWxsYWJsZSkgewogICAgICAgLy8gZG8gbm90IGFs
bG93IGFueSBkaWN0aW9uYXJ5Ci0gICAgICBjb25zdCB7IHJlZmVyZW5jZSB9ID0gT2JqZWN0KF92
YWxpZGF0b3JzX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siaWRsVHlw
ZUluY2x1ZGVzRGljdGlvbmFyeSJdKSh0YXJnZXQsIGRlZnMpIHx8IHt9OworICAgICAgY29uc3Qg
eyByZWZlcmVuY2UgfSA9ICgwLF92YWxpZGF0b3JzX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzRfXy5pZGxUeXBlSW5jbHVkZXNEaWN0aW9uYXJ5KSh0YXJnZXQsIGRlZnMpIHx8
IHt9OwogICAgICAgaWYgKHJlZmVyZW5jZSkgewogICAgICAgICBjb25zdCB0YXJnZXRUb2tlbiA9
ICh0aGlzLnVuaW9uID8gcmVmZXJlbmNlIDogdGhpcykudG9rZW5zLmJhc2U7Ci0gICAgICAgIGNv
bnN0IG1lc3NhZ2UgPSBgTnVsbGFibGUgdW5pb24gY2Fubm90IGluY2x1ZGUgYSBkaWN0aW9uYXJ5
IHR5cGVgOwotICAgICAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8zX19bInZhbGlkYXRpb25FcnJvciJdKSh0YXJnZXRUb2tlbiwgdGhpcywgIm5vLW51
bGxhYmxlLXVuaW9uLWRpY3QiLCBtZXNzYWdlKTsKKyAgICAgICAgY29uc3QgbWVzc2FnZSA9ICJO
dWxsYWJsZSB1bmlvbiBjYW5ub3QgaW5jbHVkZSBhIGRpY3Rpb25hcnkgdHlwZS4iOworICAgICAg
ICB5aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy52YWxpZGF0
aW9uRXJyb3IpKAorICAgICAgICAgIHRhcmdldFRva2VuLAorICAgICAgICAgIHRoaXMsCisgICAg
ICAgICAgIm5vLW51bGxhYmxlLXVuaW9uLWRpY3QiLAorICAgICAgICAgIG1lc3NhZ2UKKyAgICAg
ICAgKTsKICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgLy8gYWxsb3cgc29tZSBkaWN0aW9u
YXJ5CkBAIC0xMTM2LDE2ICsxMjAxLDU5IEBAIGNsYXNzIFR5cGUgZXh0ZW5kcyBfYmFzZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgICAgfQogICAgIH0KICAg
fQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyKX0gdyAqLwor
ICB3cml0ZSh3KSB7CisgICAgY29uc3QgdHlwZV9ib2R5ID0gKCkgPT4geworICAgICAgaWYgKHRo
aXMudW5pb24gfHwgdGhpcy5nZW5lcmljKSB7CisgICAgICAgIHJldHVybiB3LnRzLndyYXAoWwor
ICAgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuYmFzZSwgdy50cy5nZW5lcmljKSwKKyAgICAg
ICAgICB3LnRva2VuKHRoaXMudG9rZW5zLm9wZW4pLAorICAgICAgICAgIC4uLnRoaXMuc3VidHlw
ZS5tYXAoKHQpID0+IHQud3JpdGUodykpLAorICAgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMu
Y2xvc2UpLAorICAgICAgICBdKTsKKyAgICAgIH0KKyAgICAgIGNvbnN0IGZpcnN0VG9rZW4gPSB0
aGlzLnRva2Vucy5wcmVmaXggfHwgdGhpcy50b2tlbnMuYmFzZTsKKyAgICAgIGNvbnN0IHByZWZp
eCA9IHRoaXMudG9rZW5zLnByZWZpeAorICAgICAgICA/IFt0aGlzLnRva2Vucy5wcmVmaXgudmFs
dWUsIHcudHMudHJpdmlhKHRoaXMudG9rZW5zLmJhc2UudHJpdmlhKV0KKyAgICAgICAgOiBbXTsK
KyAgICAgIGNvbnN0IHJlZiA9IHcucmVmZXJlbmNlKAorICAgICAgICB3LnRzLndyYXAoWworICAg
ICAgICAgIC4uLnByZWZpeCwKKyAgICAgICAgICB0aGlzLnRva2Vucy5iYXNlLnZhbHVlLAorICAg
ICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMucG9zdGZpeCksCisgICAgICAgIF0pLAorICAgICAg
ICB7IHVuZXNjYXBlZDogdGhpcy5pZGxUeXBlLCBjb250ZXh0OiB0aGlzIH0KKyAgICAgICk7Cisg
ICAgICByZXR1cm4gdy50cy53cmFwKFt3LnRzLnRyaXZpYShmaXJzdFRva2VuLnRyaXZpYSksIHJl
Zl0pOworICAgIH07CisgICAgcmV0dXJuIHcudHMud3JhcChbCisgICAgICB0aGlzLmV4dEF0dHJz
LndyaXRlKHcpLAorICAgICAgdHlwZV9ib2R5KCksCisgICAgICB3LnRva2VuKHRoaXMudG9rZW5z
Lm51bGxhYmxlKSwKKyAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuc2VwYXJhdG9yKSwKKyAgICBd
KTsKKyAgfQorfQorCisvKioKKyAqIEBwYXJhbSB7VHlwZX0gdHlwZQorICovCitmdW5jdGlvbiBy
ZXBsYWNlVm9pZCh0eXBlKSB7CisgIHJldHVybiAoKSA9PiB7CisgICAgdHlwZS50b2tlbnMuYmFz
ZS52YWx1ZSA9ICJ1bmRlZmluZWQiOworICB9OwogfQogCiAKIC8qKiovIH0pLAogLyogNiAqLwot
LyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3Jl
cXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywg
X193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0
cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBo
YXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFj
a19leHBvcnRzX18sICJCYXNlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBCYXNlOyB9KTsKKy8qIGhh
cm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19f
LCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJCYXNlIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8g
QmFzZSkKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLy8gQHRzLWNoZWNrCiAKIGNsYXNzIEJh
c2UgewpAQCAtMTE1OSw3ICsxMjY3LDcgQEAgY2xhc3MgQmFzZSB7CiAgICAgICBzb3VyY2U6IHsg
dmFsdWU6IHNvdXJjZSB9LAogICAgICAgdG9rZW5zOiB7IHZhbHVlOiB0b2tlbnMsIHdyaXRhYmxl
OiB0cnVlIH0sCiAgICAgICBwYXJlbnQ6IHsgdmFsdWU6IG51bGwsIHdyaXRhYmxlOiB0cnVlIH0s
Ci0gICAgICB0aGlzOiB7IHZhbHVlOiB0aGlzIH0gLy8gdXNlZnVsIHdoZW4gZXNjYXBpbmcgZnJv
bSBwcm94eQorICAgICAgdGhpczogeyB2YWx1ZTogdGhpcyB9LCAvLyB1c2VmdWwgd2hlbiBlc2Nh
cGluZyBmcm9tIHByb3h5CiAgICAgfSk7CiAgIH0KIApAQCAtMTE4MywxMiArMTI5MSwxMyBAQCBj
bGFzcyBCYXNlIHsKIAogLyoqKi8gfSksCiAvKiA3ICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxl
LCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9f
dW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBf
X3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1
aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5n
KSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImlkbFR5cGVJ
bmNsdWRlc0RpY3Rpb25hcnkiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGlkbFR5cGVJbmNsdWRlc0Rp
Y3Rpb25hcnk7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19y
ZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiZGljdGlvbmFyeUluY2x1ZGVzUmVxdWly
ZWRGaWVsZCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRG
aWVsZDsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193
ZWJwYWNrX2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBvcnQgKi8gICAiaWRsVHlwZUluY2x1
ZGVzRGljdGlvbmFyeSI6ICgpID0+ICgvKiBiaW5kaW5nICovIGlkbFR5cGVJbmNsdWRlc0RpY3Rp
b25hcnkpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAiZGljdGlvbmFyeUluY2x1ZGVzUmVxdWly
ZWRGaWVsZCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGRpY3Rpb25hcnlJbmNsdWRlc1JlcXVpcmVk
RmllbGQpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8vIEB0cy1jaGVjawogCiAvKioKQEAg
LTEyMDAsNyArMTMwOSwxMSBAQCBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9y
dHNfXyk7CiAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnVzZU51bGxhYmxlSW5uZXJdIHVz
ZSB3aGVuIHRoZSBpbnB1dCBpZGxUeXBlIGlzIG51bGxhYmxlIGFuZCB5b3Ugd2FudCB0byB1c2Ug
aXRzIGlubmVyIHR5cGUKICAqIEByZXR1cm4ge3sgcmVmZXJlbmNlOiAqLCBkaWN0aW9uYXJ5OiBE
aWN0aW9uYXJ5IH19IHRoZSB0eXBlIHJlZmVyZW5jZSB0aGF0IHVsdGltYXRlbHkgaW5jbHVkZXMg
ZGljdGlvbmFyeS4KICAqLwotZnVuY3Rpb24gaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeShpZGxU
eXBlLCBkZWZzLCB7IHVzZU51bGxhYmxlSW5uZXIgfSA9IHt9KSB7CitmdW5jdGlvbiBpZGxUeXBl
SW5jbHVkZXNEaWN0aW9uYXJ5KAorICBpZGxUeXBlLAorICBkZWZzLAorICB7IHVzZU51bGxhYmxl
SW5uZXIgfSA9IHt9CispIHsKICAgaWYgKCFpZGxUeXBlLnVuaW9uKSB7CiAgICAgY29uc3QgZGVm
ID0gZGVmcy51bmlxdWUuZ2V0KGlkbFR5cGUuaWRsVHlwZSk7CiAgICAgaWYgKCFkZWYpIHsKQEAg
LTEyMTksMTQgKzEzMzIsMTQgQEAgZnVuY3Rpb24gaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeShp
ZGxUeXBlLCBkZWZzLCB7IHVzZU51bGxhYmxlSW5uZXIgfSA9IHt9KSB7CiAgICAgICBpZiAocmVz
dWx0KSB7CiAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgcmVmZXJlbmNlOiBpZGxUeXBlLAot
ICAgICAgICAgIGRpY3Rpb25hcnk6IHJlc3VsdC5kaWN0aW9uYXJ5CisgICAgICAgICAgZGljdGlv
bmFyeTogcmVzdWx0LmRpY3Rpb25hcnksCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAg
IGlmIChkZWYudHlwZSA9PT0gImRpY3Rpb25hcnkiICYmICh1c2VOdWxsYWJsZUlubmVyIHx8ICFp
ZGxUeXBlLm51bGxhYmxlKSkgewogICAgICAgcmV0dXJuIHsKICAgICAgICAgcmVmZXJlbmNlOiBp
ZGxUeXBlLAotICAgICAgICBkaWN0aW9uYXJ5OiBkZWYKKyAgICAgICAgZGljdGlvbmFyeTogZGVm
LAogICAgICAgfTsKICAgICB9CiAgIH0KQEAgLTEyMzgsNyArMTM1MSw3IEBAIGZ1bmN0aW9uIGlk
bFR5cGVJbmNsdWRlc0RpY3Rpb25hcnkoaWRsVHlwZSwgZGVmcywgeyB1c2VOdWxsYWJsZUlubmVy
IH0gPSB7fSkgewogICAgICAgfQogICAgICAgcmV0dXJuIHsKICAgICAgICAgcmVmZXJlbmNlOiBz
dWJ0eXBlLAotICAgICAgICBkaWN0aW9uYXJ5OiByZXN1bHQuZGljdGlvbmFyeQorICAgICAgICBk
aWN0aW9uYXJ5OiByZXN1bHQuZGljdGlvbmFyeSwKICAgICAgIH07CiAgICAgfQogICB9CkBAIC0x
MjUzLDE3ICsxMzY2LDE5IEBAIGZ1bmN0aW9uIGRpY3Rpb25hcnlJbmNsdWRlc1JlcXVpcmVkRmll
bGQoZGljdCwgZGVmcykgewogICBpZiAoZGVmcy5jYWNoZS5kaWN0aW9uYXJ5SW5jbHVkZXNSZXF1
aXJlZEZpZWxkLmhhcyhkaWN0KSkgewogICAgIHJldHVybiBkZWZzLmNhY2hlLmRpY3Rpb25hcnlJ
bmNsdWRlc1JlcXVpcmVkRmllbGQuZ2V0KGRpY3QpOwogICB9Ci0gIGRlZnMuY2FjaGUuZGljdGlv
bmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZC5zZXQoZGljdCwgdW5kZWZpbmVkKTsgLy8gaW5kZXRl
cm1pbmF0ZQotICBpZiAoZGljdC5pbmhlcml0YW5jZSkgeworICAvLyBTZXQgY2FjaGVkIHJlc3Vs
dCB0byBpbmRldGVybWluYXRlIHRvIHNob3J0LWNpcmN1aXQgY2lyY3VsYXIgZGVmaW5pdGlvbnMu
CisgIC8vIFRoZSBmaW5hbCByZXN1bHQgd2lsbCBiZSB1cGRhdGVkIHRvIHRydWUgb3IgZmFsc2Uu
CisgIGRlZnMuY2FjaGUuZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZC5zZXQoZGljdCwg
dW5kZWZpbmVkKTsKKyAgbGV0IHJlc3VsdCA9IGRpY3QubWVtYmVycy5zb21lKChmaWVsZCkgPT4g
ZmllbGQucmVxdWlyZWQpOworICBpZiAoIXJlc3VsdCAmJiBkaWN0LmluaGVyaXRhbmNlKSB7CiAg
ICAgY29uc3Qgc3VwZXJkaWN0ID0gZGVmcy51bmlxdWUuZ2V0KGRpY3QuaW5oZXJpdGFuY2UpOwog
ICAgIGlmICghc3VwZXJkaWN0KSB7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgaWYg
KGRpY3Rpb25hcnlJbmNsdWRlc1JlcXVpcmVkRmllbGQoc3VwZXJkaWN0LCBkZWZzKSkgewotICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAvLyBBc3N1bWUgcmVxdWlyZWQgbWVtYmVycyBpbiB0aGUg
c3VwZXJ0eXBlIGlmIGl0IGlzIHVua25vd24uCisgICAgICByZXN1bHQgPSB0cnVlOworICAgIH0g
ZWxzZSBpZiAoZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZChzdXBlcmRpY3QsIGRlZnMp
KSB7CisgICAgICByZXN1bHQgPSB0cnVlOwogICAgIH0KICAgfQotICBjb25zdCByZXN1bHQgPSBk
aWN0Lm1lbWJlcnMuc29tZShmaWVsZCA9PiBmaWVsZC5yZXF1aXJlZCk7CiAgIGRlZnMuY2FjaGUu
ZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZC5zZXQoZGljdCwgcmVzdWx0KTsKICAgcmV0
dXJuIHJlc3VsdDsKIH0KQEAgLTEyNzEsMTIgKzEzODYsMTMgQEAgZnVuY3Rpb24gZGljdGlvbmFy
eUluY2x1ZGVzUmVxdWlyZWRGaWVsZChkaWN0LCBkZWZzKSB7CiAKIC8qKiovIH0pLAogLyogOCAq
LwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNr
X3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVf
XywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNl
IHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0v
KiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2Vi
cGFja19leHBvcnRzX18sICJTaW1wbGVFeHRlbmRlZEF0dHJpYnV0ZSIsIGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGU7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJp
bmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiRXh0
ZW5kZWRBdHRyaWJ1dGVzIiwgZnVuY3Rpb24oKSB7IHJldHVybiBFeHRlbmRlZEF0dHJpYnV0ZXM7
IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFj
a19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIlNpbXBsZUV4dGVuZGVkQXR0
cmlidXRlIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGUpLAor
LyogaGFybW9ueSBleHBvcnQgKi8gICAiRXh0ZW5kZWRBdHRyaWJ1dGVzIjogKCkgPT4gKC8qIGJp
bmRpbmcgKi8gRXh0ZW5kZWRBdHRyaWJ1dGVzKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAv
KiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIg
X2FycmF5X2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oOSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Rva2VuX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwKTsKQEAgLTEyOTMs
OSArMTQwOSw5IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsK
ICAqIEBwYXJhbSB7c3RyaW5nfSB0b2tlbk5hbWUKICAqLwogZnVuY3Rpb24gdG9rZW5zKHRva2Vu
aXNlciwgdG9rZW5OYW1lKSB7Ci0gIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzNfX1sibGlzdCJdKSh0b2tlbmlzZXIsIHsKLSAgICBwYXJzZXI6IF90
b2tlbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJUb2tlbiJdLnBhcnNlcih0b2tl
bmlzZXIsIHRva2VuTmFtZSksCi0gICAgbGlzdE5hbWU6IHRva2VuTmFtZSArICIgbGlzdCIKKyAg
cmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18ubGlzdCko
dG9rZW5pc2VyLCB7CisgICAgcGFyc2VyOiBfdG9rZW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzJfXy5XcmFwcGVkVG9rZW4ucGFyc2VyKHRva2VuaXNlciwgdG9rZW5OYW1lKSwKKyAgICBs
aXN0TmFtZTogdG9rZW5OYW1lICsgIiBsaXN0IiwKICAgfSk7CiB9CiAKQEAgLTEzMTAsNyArMTQy
Niw3IEBAIGNvbnN0IHNob3VsZEJlTGVnYWN5UHJlZml4ZWQgPSBbCiBdOwogCiBjb25zdCByZW5h
bWVkTGVnYWNpZXMgPSBuZXcgTWFwKFsKLSAgLi4uc2hvdWxkQmVMZWdhY3lQcmVmaXhlZC5tYXAo
bmFtZSA9PiBbbmFtZSwgYExlZ2FjeSR7bmFtZX1gXSksCisgIC4uLnNob3VsZEJlTGVnYWN5UHJl
Zml4ZWQubWFwKChuYW1lKSA9PiBbbmFtZSwgYExlZ2FjeSR7bmFtZX1gXSksCiAgIFsiTmFtZWRD
b25zdHJ1Y3RvciIsICJMZWdhY3lGYWN0b3J5RnVuY3Rpb24iXSwKICAgWyJPdmVycmlkZUJ1aWx0
aW5zIiwgIkxlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiXSwKICAgWyJUcmVhdE51bGxBcyIsICJMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZyJdLApAQCAtMTMyNywyOCArMTQ0MywzMyBAQCBmdW5jdGlvbiBl
eHRBdHRyTGlzdEl0ZW1zKHRva2VuaXNlcikgewogICAgICAgcmV0dXJuIHRva3M7CiAgICAgfQog
ICB9Ci0gIHRva2VuaXNlci5lcnJvcihgRXhwZWN0ZWQgaWRlbnRpZmllcnMsIHN0cmluZ3MsIGRl
Y2ltYWxzLCBvciBpbnRlZ2VycyBidXQgbm9uZSBmb3VuZGApOworICB0b2tlbmlzZXIuZXJyb3Io
CisgICAgYEV4cGVjdGVkIGlkZW50aWZpZXJzLCBzdHJpbmdzLCBkZWNpbWFscywgb3IgaW50ZWdl
cnMgYnV0IG5vbmUgZm91bmRgCisgICk7CiB9CiAKLQotY2xhc3MgRXh0ZW5kZWRBdHRyaWJ1dGVQ
YXJhbWV0ZXJzIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1si
QmFzZSJdIHsKK2NsYXNzIEV4dGVuZGVkQXR0cmlidXRlUGFyYW1ldGVycyBleHRlbmRzIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFy
YW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCiAg
IHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKICAgICBjb25zdCB0b2tlbnMgPSB7IGFzc2lnbjog
dG9rZW5pc2VyLmNvbnN1bWUoIj0iKSB9OwotICAgIGNvbnN0IHJldCA9IE9iamVjdChfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJhdXRvUGFyZW50ZXIiXSkobmV3IEV4
dGVuZGVkQXR0cmlidXRlUGFyYW1ldGVycyh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9r
ZW5zIH0pKTsKKyAgICBjb25zdCByZXQgPSAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfM19fLmF1dG9QYXJlbnRlcikoCisgICAgICBuZXcgRXh0ZW5kZWRBdHRyaWJ1dGVQ
YXJhbWV0ZXJzKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkKKyAgICApOwog
ICAgIGlmICh0b2tlbnMuYXNzaWduKSB7Ci0gICAgICB0b2tlbnMuc2Vjb25kYXJ5TmFtZSA9IHRv
a2VuaXNlci5jb25zdW1lKC4uLmV4dEF0dHJWYWx1ZVN5bnRheCk7CisgICAgICB0b2tlbnMuc2Vj
b25kYXJ5TmFtZSA9IHRva2VuaXNlci5jb25zdW1lVHlwZSguLi5leHRBdHRyVmFsdWVTeW50YXgp
OwogICAgIH0KICAgICB0b2tlbnMub3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCIoIik7CiAgICAg
aWYgKHRva2Vucy5vcGVuKSB7Ci0gICAgICByZXQubGlzdCA9IHJldC5yaHNJc0xpc3QgPwotICAg
ICAgICAvLyBbRXhwb3NlZD0oV2luZG93LFdvcmtlcildCi0gICAgICAgIGV4dEF0dHJMaXN0SXRl
bXModG9rZW5pc2VyKSA6Ci0gICAgICAgIC8vIFtMZWdhY3lGYWN0b3J5RnVuY3Rpb249QXVkaW8o
RE9NU3RyaW5nIHNyYyldIG9yIFtDb25zdHJ1Y3RvcihET01TdHJpbmcgc3RyKV0KLSAgICAgICAg
T2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bImFyZ3VtZW50
X2xpc3QiXSkodG9rZW5pc2VyKTsKLSAgICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25z
dW1lKCIpIikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbmV4cGVjdGVkIHRva2VuIGluIGV4dGVuZGVk
IGF0dHJpYnV0ZSBhcmd1bWVudCBsaXN0Iik7CisgICAgICByZXQubGlzdCA9IHJldC5yaHNJc0xp
c3QKKyAgICAgICAgPyAvLyBbRXhwb3NlZD0oV2luZG93LFdvcmtlcildCisgICAgICAgICAgZXh0
QXR0ckxpc3RJdGVtcyh0b2tlbmlzZXIpCisgICAgICAgIDogLy8gW0xlZ2FjeUZhY3RvcnlGdW5j
dGlvbj1BdWRpbyhET01TdHJpbmcgc3JjKV0gb3IgW0NvbnN0cnVjdG9yKERPTVN0cmluZyBzdHIp
XQorICAgICAgICAgICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18u
YXJndW1lbnRfbGlzdCkodG9rZW5pc2VyKTsKKyAgICAgIHRva2Vucy5jbG9zZSA9CisgICAgICAg
IHRva2VuaXNlci5jb25zdW1lKCIpIikgfHwKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJVbmV4
cGVjdGVkIHRva2VuIGluIGV4dGVuZGVkIGF0dHJpYnV0ZSBhcmd1bWVudCBsaXN0Iik7CiAgICAg
fSBlbHNlIGlmIChyZXQuaGFzUmhzICYmICF0b2tlbnMuc2Vjb25kYXJ5TmFtZSkgewogICAgICAg
dG9rZW5pc2VyLmVycm9yKCJObyByaWdodCBoYW5kIHNpZGUgdG8gZXh0ZW5kZWQgYXR0cmlidXRl
IGFzc2lnbm1lbnQiKTsKICAgICB9CkBAIC0xMzY4LDE5ICsxNDg5LDQ1IEBAIGNsYXNzIEV4dGVu
ZGVkQXR0cmlidXRlUGFyYW1ldGVycyBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX19bCiAgICAgfQogICAgIHJldHVybiBudWxsOwogICB9CisKKyAgLyoqIEBwYXJh
bSB7aW1wb3J0KCIuLi93cml0ZXIuanMiKS5Xcml0ZXIpfSB3ICovCisgIHdyaXRlKHcpIHsKKyAg
ICBmdW5jdGlvbiBleHRlbmRlZF9hdHRyaWJ1dGVfbGlzdGl0ZW0oaXRlbSkgeworICAgICAgcmV0
dXJuIHcudHMud3JhcChbCisgICAgICAgIHcudG9rZW4oaXRlbS50b2tlbnMudmFsdWUpLAorICAg
ICAgICB3LnRva2VuKGl0ZW0udG9rZW5zLnNlcGFyYXRvciksCisgICAgICBdKTsKKyAgICB9Cisg
ICAgY29uc3QgeyByaHNUeXBlIH0gPSB0aGlzOworICAgIHJldHVybiB3LnRzLndyYXAoWworICAg
ICAgdy50b2tlbih0aGlzLnRva2Vucy5hc3NpZ24pLAorICAgICAgdy5yZWZlcmVuY2VfdG9rZW4o
dGhpcy50b2tlbnMuc2Vjb25kYXJ5TmFtZSwgdGhpcy5wYXJlbnQpLAorICAgICAgdy50b2tlbih0
aGlzLnRva2Vucy5vcGVuKSwKKyAgICAgIC4uLighdGhpcy5saXN0CisgICAgICAgID8gW10KKyAg
ICAgICAgOiB0aGlzLmxpc3QubWFwKChwKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gcmhzVHlw
ZSA9PT0gImlkZW50aWZpZXItbGlzdCIKKyAgICAgICAgICAgICAgPyB3LmlkZW50aWZpZXIocCwg
dGhpcy5wYXJlbnQpCisgICAgICAgICAgICAgIDogcmhzVHlwZSAmJiByaHNUeXBlLmVuZHNXaXRo
KCItbGlzdCIpCisgICAgICAgICAgICAgID8gZXh0ZW5kZWRfYXR0cmlidXRlX2xpc3RpdGVtKHAp
CisgICAgICAgICAgICAgIDogcC53cml0ZSh3KTsKKyAgICAgICAgICB9KSksCisgICAgICB3LnRv
a2VuKHRoaXMudG9rZW5zLmNsb3NlKSwKKyAgICBdKTsKKyAgfQogfQogCi1jbGFzcyBTaW1wbGVF
eHRlbmRlZEF0dHJpYnV0ZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX19bIkJhc2UiXSB7CitjbGFzcyBTaW1wbGVFeHRlbmRlZEF0dHJpYnV0ZSBleHRlbmRzIF9i
YXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBA
cGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICov
CiAgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKLSAgICBjb25zdCBuYW1lID0gdG9rZW5pc2Vy
LmNvbnN1bWUoImlkZW50aWZpZXIiKTsKKyAgICBjb25zdCBuYW1lID0gdG9rZW5pc2VyLmNvbnN1
bWVUeXBlKCJpZGVudGlmaWVyIik7CiAgICAgaWYgKG5hbWUpIHsKICAgICAgIHJldHVybiBuZXcg
U2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGUoewogICAgICAgICBzb3VyY2U6IHRva2VuaXNlci5zb3Vy
Y2UsCiAgICAgICAgIHRva2VuczogeyBuYW1lIH0sCi0gICAgICAgIHBhcmFtczogRXh0ZW5kZWRB
dHRyaWJ1dGVQYXJhbWV0ZXJzLnBhcnNlKHRva2VuaXNlcikKKyAgICAgICAgcGFyYW1zOiBFeHRl
bmRlZEF0dHJpYnV0ZVBhcmFtZXRlcnMucGFyc2UodG9rZW5pc2VyKSwKICAgICAgIH0pOwogICAg
IH0KICAgfQpAQCAtMTQwMiw3ICsxNTQ5LDkgQEAgY2xhc3MgU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1
dGUgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXMKICAg
ICBpZiAoIXR5cGUpIHsKICAgICAgIHJldHVybiBudWxsOwogICAgIH0KLSAgICBjb25zdCB2YWx1
ZSA9IHRoaXMucGFyYW1zLnJoc0lzTGlzdCA/IGxpc3QgOiBPYmplY3QoX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1sidW5lc2NhcGUiXSkodG9rZW5zLnNlY29uZGFyeU5h
bWUudmFsdWUpOworICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wYXJhbXMucmhzSXNMaXN0CisgICAg
ICA/IGxpc3QKKyAgICAgIDogKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzNfXy51bmVzY2FwZSkodG9rZW5zLnNlY29uZGFyeU5hbWUudmFsdWUpOwogICAgIHJldHVybiB7
IHR5cGUsIHZhbHVlIH07CiAgIH0KICAgZ2V0IGFyZ3VtZW50cygpIHsKQEAgLTE0MjAsMjEgKzE1
NjksNDEgQEAgY2xhc3MgU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGUgZXh0ZW5kcyBfYmFzZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXMKIHVuZGVzaXJhYmxlIGZlYXR1cmUgdGhh
dCBtYXkgYmUgcmVtb3ZlZCBmcm9tIFdlYiBJREwgaW4gdGhlIGZ1dHVyZS4gUmVmZXIgdG8gdGhl
IFwKIFtyZWxldmFudCB1cHN0cmVhbSBQUl0oaHR0cHM6Ly9naXRodWIuY29tL2hleWNhbS93ZWJp
ZGwvcHVsbC82MDkpIGZvciBtb3JlIFwKIGluZm9ybWF0aW9uLmA7Ci0gICAgICB5aWVsZCBPYmpl
Y3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bInZhbGlkYXRpb25FcnJv
ciJdKSh0aGlzLnRva2Vucy5uYW1lLCB0aGlzLCAibm8tbm9pbnRlcmZhY2VvYmplY3QiLCBtZXNz
YWdlLCB7IGxldmVsOiAid2FybmluZyIgfSk7CisgICAgICB5aWVsZCAoMCxfZXJyb3JfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy52YWxpZGF0aW9uRXJyb3IpKAorICAgICAgICB0aGlz
LnRva2Vucy5uYW1lLAorICAgICAgICB0aGlzLAorICAgICAgICAibm8tbm9pbnRlcmZhY2VvYmpl
Y3QiLAorICAgICAgICBtZXNzYWdlLAorICAgICAgICB7IGxldmVsOiAid2FybmluZyIgfQorICAg
ICAgKTsKICAgICB9IGVsc2UgaWYgKHJlbmFtZWRMZWdhY2llcy5oYXMobmFtZSkpIHsKICAgICAg
IGNvbnN0IG1lc3NhZ2UgPSBgXGBbJHtuYW1lfV1cYCBleHRlbmRlZCBhdHRyaWJ1dGUgaXMgYSBs
ZWdhY3kgZmVhdHVyZSBcCiB0aGF0IGlzIG5vdyByZW5hbWVkIHRvIFxgWyR7cmVuYW1lZExlZ2Fj
aWVzLmdldChuYW1lKX1dXGAuIFJlZmVyIHRvIHRoZSBcCiBbcmVsZXZhbnQgdXBzdHJlYW0gUFJd
KGh0dHBzOi8vZ2l0aHViLmNvbS9oZXljYW0vd2ViaWRsL3B1bGwvODcwKSBmb3IgbW9yZSBcCiBp
bmZvcm1hdGlvbi5gOwotICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfNF9fWyJ2YWxpZGF0aW9uRXJyb3IiXSkodGhpcy50b2tlbnMubmFtZSwgdGhp
cywgInJlbmFtZWQtbGVnYWN5IiwgbWVzc2FnZSwgeworICAgICAgeWllbGQgKDAsX2Vycm9yX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udmFsaWRhdGlvbkVycm9yKSh0aGlzLnRva2Vu
cy5uYW1lLCB0aGlzLCAicmVuYW1lZC1sZWdhY3kiLCBtZXNzYWdlLCB7CiAgICAgICAgIGxldmVs
OiAid2FybmluZyIsCi0gICAgICAgIGF1dG9maXg6IHJlbmFtZUxlZ2FjeUV4dGVuZGVkQXR0cmli
dXRlKHRoaXMpCisgICAgICAgIGF1dG9maXg6IHJlbmFtZUxlZ2FjeUV4dGVuZGVkQXR0cmlidXRl
KHRoaXMpLAogICAgICAgfSk7CiAgICAgfQogICAgIGZvciAoY29uc3QgYXJnIG9mIHRoaXMuYXJn
dW1lbnRzKSB7CiAgICAgICB5aWVsZCogYXJnLnZhbGlkYXRlKGRlZnMpOwogICAgIH0KICAgfQor
CisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyKX0gdyAqLworICB3
cml0ZSh3KSB7CisgICAgcmV0dXJuIHcudHMud3JhcChbCisgICAgICB3LnRzLnRyaXZpYSh0aGlz
LnRva2Vucy5uYW1lLnRyaXZpYSksCisgICAgICB3LnRzLmV4dGVuZGVkQXR0cmlidXRlKAorICAg
ICAgICB3LnRzLndyYXAoWworICAgICAgICAgIHcudHMuZXh0ZW5kZWRBdHRyaWJ1dGVSZWZlcmVu
Y2UodGhpcy5uYW1lKSwKKyAgICAgICAgICB0aGlzLnBhcmFtcy53cml0ZSh3KSwKKyAgICAgICAg
XSkKKyAgICAgICksCisgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnNlcGFyYXRvciksCisgICAg
XSk7CisgIH0KIH0KIAogLyoqCkBAIC0xNDUyLDcgKzE2MjEsNyBAQCBmdW5jdGlvbiByZW5hbWVM
ZWdhY3lFeHRlbmRlZEF0dHJpYnV0ZShleHRBdHRyKSB7CiAKIC8vIE5vdGU6IHdlIHBhcnNlIHNv
bWV0aGluZyBzaW1wbGVyIHRoYW4gdGhlIG9mZmljaWFsIHN5bnRheC4gSXQncyBhbGwgdGhhdCBl
dmVyCiAvLyBzZWVtcyB0byBiZSB1c2VkCi1jbGFzcyBFeHRlbmRlZEF0dHJpYnV0ZXMgZXh0ZW5k
cyBfYXJyYXlfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJBcnJheUJhc2Ui
XSB7CitjbGFzcyBFeHRlbmRlZEF0dHJpYnV0ZXMgZXh0ZW5kcyBfYXJyYXlfYmFzZV9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkFycmF5QmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0g
e2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCkBAIC0x
NDYxLDE2ICsxNjMwLDIyIEBAIGNsYXNzIEV4dGVuZGVkQXR0cmlidXRlcyBleHRlbmRzIF9hcnJh
eV9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkFyCiAgICAgdG9rZW5zLm9w
ZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgiWyIpOwogICAgIGlmICghdG9rZW5zLm9wZW4pIHJldHVy
biBuZXcgRXh0ZW5kZWRBdHRyaWJ1dGVzKHt9KTsKICAgICBjb25zdCByZXQgPSBuZXcgRXh0ZW5k
ZWRBdHRyaWJ1dGVzKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSk7Ci0gICAg
cmV0LnB1c2goLi4uT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8z
X19bImxpc3QiXSkodG9rZW5pc2VyLCB7Ci0gICAgICBwYXJzZXI6IFNpbXBsZUV4dGVuZGVkQXR0
cmlidXRlLnBhcnNlLAotICAgICAgbGlzdE5hbWU6ICJleHRlbmRlZCBhdHRyaWJ1dGUiCi0gICAg
fSkpOwotICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCJdIikgfHwgdG9rZW5p
c2VyLmVycm9yKCJVbmV4cGVjdGVkIGNsb3NpbmcgdG9rZW4gb2YgZXh0ZW5kZWQgYXR0cmlidXRl
Iik7CisgICAgcmV0LnB1c2goCisgICAgICAuLi4oMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfM19fLmxpc3QpKHRva2VuaXNlciwgeworICAgICAgICBwYXJzZXI6IFNpbXBs
ZUV4dGVuZGVkQXR0cmlidXRlLnBhcnNlLAorICAgICAgICBsaXN0TmFtZTogImV4dGVuZGVkIGF0
dHJpYnV0ZSIsCisgICAgICB9KQorICAgICk7CisgICAgdG9rZW5zLmNsb3NlID0KKyAgICAgIHRv
a2VuaXNlci5jb25zdW1lKCJdIikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiVW5leHBlY3Rl
ZCBjbG9zaW5nIHRva2VuIG9mIGV4dGVuZGVkIGF0dHJpYnV0ZSIpOwogICAgIGlmICghcmV0Lmxl
bmd0aCkgewogICAgICAgdG9rZW5pc2VyLmVycm9yKCJGb3VuZCBhbiBlbXB0eSBleHRlbmRlZCBh
dHRyaWJ1dGUiKTsKICAgICB9CiAgICAgaWYgKHRva2VuaXNlci5wcm9iZSgiWyIpKSB7Ci0gICAg
ICB0b2tlbmlzZXIuZXJyb3IoIklsbGVnYWwgZG91YmxlIGV4dGVuZGVkIGF0dHJpYnV0ZSBsaXN0
cywgY29uc2lkZXIgbWVyZ2luZyB0aGVtIik7CisgICAgICB0b2tlbmlzZXIuZXJyb3IoCisgICAg
ICAgICJJbGxlZ2FsIGRvdWJsZSBleHRlbmRlZCBhdHRyaWJ1dGUgbGlzdHMsIGNvbnNpZGVyIG1l
cmdpbmcgdGhlbSIKKyAgICAgICk7CiAgICAgfQogICAgIHJldHVybiByZXQ7CiAgIH0KQEAgLTE0
ODAsMTYgKzE2NTUsMjcgQEAgY2xhc3MgRXh0ZW5kZWRBdHRyaWJ1dGVzIGV4dGVuZHMgX2FycmF5
X2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siQXIKICAgICAgIHlpZWxkKiBl
eHRBdHRyLnZhbGlkYXRlKGRlZnMpOwogICAgIH0KICAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9y
dCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyKX0gdyAqLworICB3cml0ZSh3KSB7CisgICAgaWYgKCF0
aGlzLmxlbmd0aCkgcmV0dXJuICIiOworICAgIHJldHVybiB3LnRzLndyYXAoWworICAgICAgdy50
b2tlbih0aGlzLnRva2Vucy5vcGVuKSwKKyAgICAgIC4uLnRoaXMubWFwKChlYSkgPT4gZWEud3Jp
dGUodykpLAorICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5jbG9zZSksCisgICAgXSk7CisgIH0K
IH0KIAogCiAvKioqLyB9KSwKIC8qIDkgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2Vi
cGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRf
d2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFj
a19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5y
KF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9f
d2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQXJyYXlCYXNlIiwgZnVu
Y3Rpb24oKSB7IHJldHVybiBBcnJheUJhc2U7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193
ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhw
b3J0ICovICAgIkFycmF5QmFzZSI6ICgpID0+ICgvKiBiaW5kaW5nICovIEFycmF5QmFzZSkKKy8q
IGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLy8gQHRzLWNoZWNrCiAKIGNsYXNzIEFycmF5QmFzZSBl
eHRlbmRzIEFycmF5IHsKQEAgLTE0OTgsNyArMTY4NCw3IEBAIGNsYXNzIEFycmF5QmFzZSBleHRl
bmRzIEFycmF5IHsKICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0aGlzLCB7CiAgICAgICBz
b3VyY2U6IHsgdmFsdWU6IHNvdXJjZSB9LAogICAgICAgdG9rZW5zOiB7IHZhbHVlOiB0b2tlbnMg
fSwKLSAgICAgIHBhcmVudDogeyB2YWx1ZTogbnVsbCwgd3JpdGFibGU6IHRydWUgfQorICAgICAg
cGFyZW50OiB7IHZhbHVlOiBudWxsLCB3cml0YWJsZTogdHJ1ZSB9LAogICAgIH0pOwogICB9CiB9
CkBAIC0xNTA2LDExICsxNjkyLDEyIEBAIGNsYXNzIEFycmF5QmFzZSBleHRlbmRzIEFycmF5IHsK
IAogLyoqKi8gfSksCiAvKiAxMCAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNr
X2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJw
YWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3Jl
cXVpcmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193
ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJw
YWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJUb2tlbiIsIGZ1bmN0aW9uKCkg
eyByZXR1cm4gVG9rZW47IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVp
cmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIldy
YXBwZWRUb2tlbiI6ICgpID0+ICgvKiBiaW5kaW5nICovIFdyYXBwZWRUb2tlbikKKy8qIGhhcm1v
bnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOwogLyogaGFy
bW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwogLy8gQHRzLWNoZWNrCkBAIC0xNTE4LDMzICsx
NzA1LDM3IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAog
CiAKLWNsYXNzIFRva2VuIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfX1siQmFzZSJdIHsKK2NsYXNzIFdyYXBwZWRUb2tlbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9y
dCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICogQHBhcmFtIHtzdHJp
bmd9IHR5cGUKICAgICovCiAgIHN0YXRpYyBwYXJzZXIodG9rZW5pc2VyLCB0eXBlKSB7CiAgICAg
cmV0dXJuICgpID0+IHsKLSAgICAgIGNvbnN0IHZhbHVlID0gdG9rZW5pc2VyLmNvbnN1bWUodHlw
ZSk7CisgICAgICBjb25zdCB2YWx1ZSA9IHRva2VuaXNlci5jb25zdW1lVHlwZSh0eXBlKTsKICAg
ICAgIGlmICh2YWx1ZSkgewotICAgICAgICByZXR1cm4gbmV3IFRva2VuKHsgc291cmNlOiB0b2tl
bmlzZXIuc291cmNlLCB0b2tlbnM6IHsgdmFsdWUgfSB9KTsKKyAgICAgICAgcmV0dXJuIG5ldyBX
cmFwcGVkVG9rZW4oeworICAgICAgICAgIHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwKKyAgICAg
ICAgICB0b2tlbnM6IHsgdmFsdWUgfSwKKyAgICAgICAgfSk7CiAgICAgICB9CiAgICAgfTsKICAg
fQogCiAgIGdldCB2YWx1ZSgpIHsKLSAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLnZhbHVlLnZh
bHVlKTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfXy51bmVzY2FwZSkodGhpcy50b2tlbnMudmFsdWUudmFsdWUpOwogICB9CiB9CiAKIAogLyoq
Ki8gfSksCiAvKiAxMSAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9y
dHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19f
d2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVf
XykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNr
X2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJBcmd1bWVudCIsIGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gQXJndW1lbnQ7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVp
cmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIkFy
Z3VtZW50IjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gQXJndW1lbnQpCisvKiBoYXJtb255IGV4cG9y
dCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKIC8qIGhhcm1vbnkgaW1w
b3J0ICovIHZhciBfZGVmYXVsdF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193
ZWJwYWNrX3JlcXVpcmVfXygxMik7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2V4dGVuZGVk
X2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oOCk7CkBAIC0xNTYyLDcgKzE3NTMsNyBAQCBfX3dlYnBhY2tfcmVxdWlyZV9fLnIo
X193ZWJwYWNrX2V4cG9ydHNfXyk7CiAKIAogCi1jbGFzcyBBcmd1bWVudCBleHRlbmRzIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CitjbGFzcyBBcmd1bWVu
dCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAg
IC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tl
bmlzZXIKICAgICovCkBAIC0xNTcwLDIxICsxNzYxLDI1IEBAIGNsYXNzIEFyZ3VtZW50IGV4dGVu
ZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICBj
b25zdCBzdGFydF9wb3NpdGlvbiA9IHRva2VuaXNlci5wb3NpdGlvbjsKICAgICAvKiogQHR5cGUg
e0Jhc2VbInRva2VucyJdfSAqLwogICAgIGNvbnN0IHRva2VucyA9IHt9OwotICAgIGNvbnN0IHJl
dCA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJhdXRv
UGFyZW50ZXIiXSkobmV3IEFyZ3VtZW50KHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tl
bnMgfSkpOwotICAgIHJldC5leHRBdHRycyA9IF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkV4dGVuZGVkQXR0cmlidXRlcyJdLnBhcnNlKHRva2Vu
aXNlcik7CisgICAgY29uc3QgcmV0ID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzNfXy5hdXRvUGFyZW50ZXIpKAorICAgICAgbmV3IEFyZ3VtZW50KHsgc291cmNlOiB0
b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkKKyAgICApOworICAgIHJldC5leHRBdHRycyA9IF9l
eHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uRXh0ZW5k
ZWRBdHRyaWJ1dGVzLnBhcnNlKHRva2VuaXNlcik7CiAgICAgdG9rZW5zLm9wdGlvbmFsID0gdG9r
ZW5pc2VyLmNvbnN1bWUoIm9wdGlvbmFsIik7Ci0gICAgcmV0LmlkbFR5cGUgPSBPYmplY3QoX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1sidHlwZV93aXRoX2V4dGVuZGVk
X2F0dHJpYnV0ZXMiXSkodG9rZW5pc2VyLCAiYXJndW1lbnQtdHlwZSIpOworICAgIHJldC5pZGxU
eXBlID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy50eXBlX3dp
dGhfZXh0ZW5kZWRfYXR0cmlidXRlcykodG9rZW5pc2VyLCAiYXJndW1lbnQtdHlwZSIpOwogICAg
IGlmICghcmV0LmlkbFR5cGUpIHsKICAgICAgIHJldHVybiB0b2tlbmlzZXIudW5jb25zdW1lKHN0
YXJ0X3Bvc2l0aW9uKTsKICAgICB9CiAgICAgaWYgKCF0b2tlbnMub3B0aW9uYWwpIHsKICAgICAg
IHRva2Vucy52YXJpYWRpYyA9IHRva2VuaXNlci5jb25zdW1lKCIuLi4iKTsKICAgICB9Ci0gICAg
dG9rZW5zLm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIsIC4uLl90b2tlbmlz
ZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siYXJndW1lbnROYW1lS2V5d29yZHMi
XSk7CisgICAgdG9rZW5zLm5hbWUgPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWVUeXBlKCJpZGVu
dGlmaWVyIikgfHwKKyAgICAgIHRva2VuaXNlci5jb25zdW1lKC4uLl90b2tlbmlzZXJfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hcmd1bWVudE5hbWVLZXl3b3Jkcyk7CiAgICAgaWYg
KCF0b2tlbnMubmFtZSkgewogICAgICAgcmV0dXJuIHRva2VuaXNlci51bmNvbnN1bWUoc3RhcnRf
cG9zaXRpb24pOwogICAgIH0KLSAgICByZXQuZGVmYXVsdCA9IHRva2Vucy5vcHRpb25hbCA/IF9k
ZWZhdWx0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkRlZmF1bHQiXS5wYXJzZSh0
b2tlbmlzZXIpIDogbnVsbDsKKyAgICByZXQuZGVmYXVsdCA9IHRva2Vucy5vcHRpb25hbCA/IF9k
ZWZhdWx0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uRGVmYXVsdC5wYXJzZSh0b2tl
bmlzZXIpIDogbnVsbDsKICAgICByZXR1cm4gcmV0LnRoaXM7CiAgIH0KIApAQCAtMTU5OCwzNCAr
MTc5Myw3MSBAQCBjbGFzcyBBcmd1bWVudCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICAgcmV0dXJuICEhdGhpcy50b2tlbnMudmFyaWFk
aWM7CiAgIH0KICAgZ2V0IG5hbWUoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5uYW1l
LnZhbHVlKTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzNfXy51bmVzY2FwZSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7CiAgIH0KIAogICAvKioK
ICAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3ZhbGlkYXRvci5qcyIpLkRlZmluaXRpb25zfSBkZWZz
CiAgICAqLwogICAqdmFsaWRhdGUoZGVmcykgeworICAgIHlpZWxkKiB0aGlzLmV4dEF0dHJzLnZh
bGlkYXRlKGRlZnMpOwogICAgIHlpZWxkKiB0aGlzLmlkbFR5cGUudmFsaWRhdGUoZGVmcyk7Ci0g
ICAgY29uc3QgcmVzdWx0ID0gT2JqZWN0KF92YWxpZGF0b3JzX2hlbHBlcnNfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzZfX1siaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeSJdKSh0aGlzLmlk
bFR5cGUsIGRlZnMsIHsgdXNlTnVsbGFibGVJbm5lcjogdHJ1ZSB9KTsKKyAgICBjb25zdCByZXN1
bHQgPSAoMCxfdmFsaWRhdG9yc19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82
X18uaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeSkodGhpcy5pZGxUeXBlLCBkZWZzLCB7CisgICAg
ICB1c2VOdWxsYWJsZUlubmVyOiB0cnVlLAorICAgIH0pOwogICAgIGlmIChyZXN1bHQpIHsKICAg
ICAgIGlmICh0aGlzLmlkbFR5cGUubnVsbGFibGUpIHsKICAgICAgICAgY29uc3QgbWVzc2FnZSA9
IGBEaWN0aW9uYXJ5IGFyZ3VtZW50cyBjYW5ub3QgYmUgbnVsbGFibGUuYDsKLSAgICAgICAgeWll
bGQgT2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fWyJ2YWxpZGF0
aW9uRXJyb3IiXSkodGhpcy50b2tlbnMubmFtZSwgdGhpcywgIm5vLW51bGxhYmxlLWRpY3QtYXJn
IiwgbWVzc2FnZSk7CisgICAgICAgIHlpZWxkICgwLF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfNV9fLnZhbGlkYXRpb25FcnJvcikoCisgICAgICAgICAgdGhpcy50b2tlbnMubmFt
ZSwKKyAgICAgICAgICB0aGlzLAorICAgICAgICAgICJuby1udWxsYWJsZS1kaWN0LWFyZyIsCisg
ICAgICAgICAgbWVzc2FnZQorICAgICAgICApOwogICAgICAgfSBlbHNlIGlmICghdGhpcy5vcHRp
b25hbCkgewotICAgICAgICBpZiAodGhpcy5wYXJlbnQgJiYgIU9iamVjdChfdmFsaWRhdG9yc19o
ZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19bImRpY3Rpb25hcnlJbmNsdWRl
c1JlcXVpcmVkRmllbGQiXSkocmVzdWx0LmRpY3Rpb25hcnksIGRlZnMpICYmIGlzTGFzdFJlcXVp
cmVkQXJndW1lbnQodGhpcykpIHsKKyAgICAgICAgaWYgKAorICAgICAgICAgIHRoaXMucGFyZW50
ICYmCisgICAgICAgICAgISgwLF92YWxpZGF0b3JzX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzZfXy5kaWN0aW9uYXJ5SW5jbHVkZXNSZXF1aXJlZEZpZWxkKShyZXN1bHQuZGlj
dGlvbmFyeSwgZGVmcykgJiYKKyAgICAgICAgICBpc0xhc3RSZXF1aXJlZEFyZ3VtZW50KHRoaXMp
CisgICAgICAgICkgewogICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgRGljdGlvbmFyeSBhcmd1
bWVudCBtdXN0IGJlIG9wdGlvbmFsIGlmIGl0IGhhcyBubyByZXF1aXJlZCBmaWVsZHNgOwotICAg
ICAgICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVf
X1sidmFsaWRhdGlvbkVycm9yIl0pKHRoaXMudG9rZW5zLm5hbWUsIHRoaXMsICJkaWN0LWFyZy1v
cHRpb25hbCIsIG1lc3NhZ2UsIHsKLSAgICAgICAgICAgIGF1dG9maXg6IGF1dG9maXhEaWN0aW9u
YXJ5QXJndW1lbnRPcHRpb25hbGl0eSh0aGlzKQotICAgICAgICAgIH0pOworICAgICAgICAgIHlp
ZWxkICgwLF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnZhbGlkYXRpb25F
cnJvcikoCisgICAgICAgICAgICB0aGlzLnRva2Vucy5uYW1lLAorICAgICAgICAgICAgdGhpcywK
KyAgICAgICAgICAgICJkaWN0LWFyZy1vcHRpb25hbCIsCisgICAgICAgICAgICBtZXNzYWdlLAor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICBhdXRvZml4OiBhdXRvZml4RGljdGlvbmFyeUFy
Z3VtZW50T3B0aW9uYWxpdHkodGhpcyksCisgICAgICAgICAgICB9CisgICAgICAgICAgKTsKICAg
ICAgICAgfQogICAgICAgfSBlbHNlIGlmICghdGhpcy5kZWZhdWx0KSB7CiAgICAgICAgIGNvbnN0
IG1lc3NhZ2UgPSBgT3B0aW9uYWwgZGljdGlvbmFyeSBhcmd1bWVudHMgbXVzdCBoYXZlIGEgZGVm
YXVsdCB2YWx1ZSBvZiBcYHt9XGAuYDsKLSAgICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fWyJ2YWxpZGF0aW9uRXJyb3IiXSkodGhpcy50b2tl
bnMubmFtZSwgdGhpcywgImRpY3QtYXJnLWRlZmF1bHQiLCBtZXNzYWdlLCB7Ci0gICAgICAgICAg
YXV0b2ZpeDogYXV0b2ZpeE9wdGlvbmFsRGljdGlvbmFyeURlZmF1bHRWYWx1ZSh0aGlzKQotICAg
ICAgICB9KTsKKyAgICAgICAgeWllbGQgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV81X18udmFsaWRhdGlvbkVycm9yKSgKKyAgICAgICAgICB0aGlzLnRva2Vucy5uYW1lLAor
ICAgICAgICAgIHRoaXMsCisgICAgICAgICAgImRpY3QtYXJnLWRlZmF1bHQiLAorICAgICAgICAg
IG1lc3NhZ2UsCisgICAgICAgICAgeworICAgICAgICAgICAgYXV0b2ZpeDogYXV0b2ZpeE9wdGlv
bmFsRGljdGlvbmFyeURlZmF1bHRWYWx1ZSh0aGlzKSwKKyAgICAgICAgICB9CisgICAgICAgICk7
CiAgICAgICB9CiAgICAgfQogICB9CisKKyAgLyoqIEBwYXJhbSB7aW1wb3J0KCIuLi93cml0ZXIu
anMiKS5Xcml0ZXJ9IHcgKi8KKyAgd3JpdGUodykgeworICAgIHJldHVybiB3LnRzLndyYXAoWwor
ICAgICAgdGhpcy5leHRBdHRycy53cml0ZSh3KSwKKyAgICAgIHcudG9rZW4odGhpcy50b2tlbnMu
b3B0aW9uYWwpLAorICAgICAgdy50cy50eXBlKHRoaXMuaWRsVHlwZS53cml0ZSh3KSksCisgICAg
ICB3LnRva2VuKHRoaXMudG9rZW5zLnZhcmlhZGljKSwKKyAgICAgIHcubmFtZV90b2tlbih0aGlz
LnRva2Vucy5uYW1lLCB7IGRhdGE6IHRoaXMgfSksCisgICAgICB0aGlzLmRlZmF1bHQgPyB0aGlz
LmRlZmF1bHQud3JpdGUodykgOiAiIiwKKyAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuc2VwYXJh
dG9yKSwKKyAgICBdKTsKKyAgfQogfQogCiAvKioKQEAgLTE2MzQsNyArMTg2Niw3IEBAIGNsYXNz
IEFyZ3VtZW50IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1si
QmFzZSJdIHsKIGZ1bmN0aW9uIGlzTGFzdFJlcXVpcmVkQXJndW1lbnQoYXJnKSB7CiAgIGNvbnN0
IGxpc3QgPSBhcmcucGFyZW50LmFyZ3VtZW50cyB8fCBhcmcucGFyZW50Lmxpc3Q7CiAgIGNvbnN0
IGluZGV4ID0gbGlzdC5pbmRleE9mKGFyZyk7Ci0gIGNvbnN0IHJlcXVpcmVkRXhpc3RzID0gbGlz
dC5zbGljZShpbmRleCArIDEpLnNvbWUoYSA9PiAhYS5vcHRpb25hbCk7CisgIGNvbnN0IHJlcXVp
cmVkRXhpc3RzID0gbGlzdC5zbGljZShpbmRleCArIDEpLnNvbWUoKGEpID0+ICFhLm9wdGlvbmFs
KTsKICAgcmV0dXJuICFyZXF1aXJlZEV4aXN0czsKIH0KIApAQCAtMTY0Myw4ICsxODc1LDEyIEBA
IGZ1bmN0aW9uIGlzTGFzdFJlcXVpcmVkQXJndW1lbnQoYXJnKSB7CiAgKi8KIGZ1bmN0aW9uIGF1
dG9maXhEaWN0aW9uYXJ5QXJndW1lbnRPcHRpb25hbGl0eShhcmcpIHsKICAgcmV0dXJuICgpID0+
IHsKLSAgICBjb25zdCBmaXJzdFRva2VuID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8zX19bImdldEZpcnN0VG9rZW4iXSkoYXJnLmlkbFR5cGUpOwotICAgIGFy
Zy50b2tlbnMub3B0aW9uYWwgPSB7IHR5cGU6ICJvcHRpb25hbCIsIHZhbHVlOiAib3B0aW9uYWwi
LCB0cml2aWE6IGZpcnN0VG9rZW4udHJpdmlhIH07CisgICAgY29uc3QgZmlyc3RUb2tlbiA9ICgw
LF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uZ2V0Rmlyc3RUb2tlbiko
YXJnLmlkbFR5cGUpOworICAgIGFyZy50b2tlbnMub3B0aW9uYWwgPSB7CisgICAgICB0eXBlOiAi
b3B0aW9uYWwiLAorICAgICAgdmFsdWU6ICJvcHRpb25hbCIsCisgICAgICB0cml2aWE6IGZpcnN0
VG9rZW4udHJpdmlhLAorICAgIH07CiAgICAgZmlyc3RUb2tlbi50cml2aWEgPSAiICI7CiAgICAg
YXV0b2ZpeE9wdGlvbmFsRGljdGlvbmFyeURlZmF1bHRWYWx1ZShhcmcpKCk7CiAgIH07CkBAIC0x
NjU1LDI0ICsxODkxLDI1IEBAIGZ1bmN0aW9uIGF1dG9maXhEaWN0aW9uYXJ5QXJndW1lbnRPcHRp
b25hbGl0eShhcmcpIHsKICAqLwogZnVuY3Rpb24gYXV0b2ZpeE9wdGlvbmFsRGljdGlvbmFyeURl
ZmF1bHRWYWx1ZShhcmcpIHsKICAgcmV0dXJuICgpID0+IHsKLSAgICBhcmcuZGVmYXVsdCA9IF9k
ZWZhdWx0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkRlZmF1bHQiXS5wYXJzZShu
ZXcgX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fWyJUb2tlbmlzZXIi
XSgiID0ge30iKSk7CisgICAgYXJnLmRlZmF1bHQgPSBfZGVmYXVsdF9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMV9fLkRlZmF1bHQucGFyc2UobmV3IF90b2tlbmlzZXJfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzRfXy5Ub2tlbmlzZXIoIiA9IHt9IikpOwogICB9OwogfQogCiAKIC8q
KiovIH0pLAogLyogMTIgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBv
cnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19f
X3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJl
X18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFj
a19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19y
ZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiRGVmYXVsdCIsIGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gRGVmYXVsdDsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWly
ZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBvcnQgKi8gICAiRGVm
YXVsdCI6ICgpID0+ICgvKiBiaW5kaW5nICovIERlZmF1bHQpCisvKiBoYXJtb255IGV4cG9ydCAq
LyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKIC8qIGhhcm1vbnkgaW1wb3J0
ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJw
YWNrX3JlcXVpcmVfXyg0KTsKIAogCiAKLWNsYXNzIERlZmF1bHQgZXh0ZW5kcyBfYmFzZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0geworY2xhc3MgRGVmYXVsdCBleHRl
bmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgog
ICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIK
ICAgICovCkBAIC0xNjgxLDE2ICsxOTE4LDI4IEBAIGNsYXNzIERlZmF1bHQgZXh0ZW5kcyBfYmFz
ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgIGlmICghYXNz
aWduKSB7CiAgICAgICByZXR1cm4gbnVsbDsKICAgICB9Ci0gICAgY29uc3QgZGVmID0gT2JqZWN0
KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImNvbnN0X3ZhbHVlIl0p
KHRva2VuaXNlcikgfHwgdG9rZW5pc2VyLmNvbnN1bWUoInN0cmluZyIsICJudWxsIiwgIlsiLCAi
eyIpIHx8IHRva2VuaXNlci5lcnJvcigiTm8gdmFsdWUgZm9yIGRlZmF1bHQiKTsKKyAgICBjb25z
dCBkZWYgPQorICAgICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFf
Xy5jb25zdF92YWx1ZSkodG9rZW5pc2VyKSB8fAorICAgICAgdG9rZW5pc2VyLmNvbnN1bWVUeXBl
KCJzdHJpbmciKSB8fAorICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIm51bGwiLCAiWyIsICJ7Iikg
fHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiTm8gdmFsdWUgZm9yIGRlZmF1bHQiKTsKICAgICBj
b25zdCBleHByZXNzaW9uID0gW2RlZl07Ci0gICAgaWYgKGRlZi50eXBlID09PSAiWyIpIHsKLSAg
ICAgIGNvbnN0IGNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIl0iKSB8fCB0b2tlbmlzZXIuZXJy
b3IoIkRlZmF1bHQgc2VxdWVuY2UgdmFsdWUgbXVzdCBiZSBlbXB0eSIpOworICAgIGlmIChkZWYu
dmFsdWUgPT09ICJbIikgeworICAgICAgY29uc3QgY2xvc2UgPQorICAgICAgICB0b2tlbmlzZXIu
Y29uc3VtZSgiXSIpIHx8CisgICAgICAgIHRva2VuaXNlci5lcnJvcigiRGVmYXVsdCBzZXF1ZW5j
ZSB2YWx1ZSBtdXN0IGJlIGVtcHR5Iik7CiAgICAgICBleHByZXNzaW9uLnB1c2goY2xvc2UpOwot
ICAgIH0gZWxzZSBpZiAoZGVmLnR5cGUgPT09ICJ7IikgewotICAgICAgY29uc3QgY2xvc2UgPSB0
b2tlbmlzZXIuY29uc3VtZSgifSIpIHx8IHRva2VuaXNlci5lcnJvcigiRGVmYXVsdCBkaWN0aW9u
YXJ5IHZhbHVlIG11c3QgYmUgZW1wdHkiKTsKKyAgICB9IGVsc2UgaWYgKGRlZi52YWx1ZSA9PT0g
InsiKSB7CisgICAgICBjb25zdCBjbG9zZSA9CisgICAgICAgIHRva2VuaXNlci5jb25zdW1lKCJ9
IikgfHwKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJEZWZhdWx0IGRpY3Rpb25hcnkgdmFsdWUg
bXVzdCBiZSBlbXB0eSIpOwogICAgICAgZXhwcmVzc2lvbi5wdXNoKGNsb3NlKTsKICAgICB9Ci0g
ICAgcmV0dXJuIG5ldyBEZWZhdWx0KHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnM6
IHsgYXNzaWduIH0sIGV4cHJlc3Npb24gfSk7CisgICAgcmV0dXJuIG5ldyBEZWZhdWx0KHsKKyAg
ICAgIHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwKKyAgICAgIHRva2VuczogeyBhc3NpZ24gfSwK
KyAgICAgIGV4cHJlc3Npb24sCisgICAgfSk7CiAgIH0KIAogICBjb25zdHJ1Y3Rvcih7IHNvdXJj
ZSwgdG9rZW5zLCBleHByZXNzaW9uIH0pIHsKQEAgLTE3MDAsMjQgKzE5NDksMzMgQEAgY2xhc3Mg
RGVmYXVsdCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJh
c2UiXSB7CiAgIH0KIAogICBnZXQgdHlwZSgpIHsKLSAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImNvbnN0X2RhdGEiXSkodGhpcy5leHBy
ZXNzaW9uWzBdKS50eXBlOworICAgIHJldHVybiAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMV9fLmNvbnN0X2RhdGEpKHRoaXMuZXhwcmVzc2lvblswXSkudHlwZTsKICAg
fQogICBnZXQgdmFsdWUoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fWyJjb25zdF9kYXRhIl0pKHRoaXMuZXhwcmVzc2lvblswXSku
dmFsdWU7CisgICAgcmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8xX18uY29uc3RfZGF0YSkodGhpcy5leHByZXNzaW9uWzBdKS52YWx1ZTsKICAgfQogICBnZXQg
bmVnYXRpdmUoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMV9fWyJjb25zdF9kYXRhIl0pKHRoaXMuZXhwcmVzc2lvblswXSkubmVnYXRp
dmU7CisgICAgcmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X18uY29uc3RfZGF0YSkodGhpcy5leHByZXNzaW9uWzBdKS5uZWdhdGl2ZTsKKyAgfQorCisgIC8q
KiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyKX0gdyAqLworICB3cml0ZSh3
KSB7CisgICAgcmV0dXJuIHcudHMud3JhcChbCisgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLmFz
c2lnbiksCisgICAgICAuLi50aGlzLmV4cHJlc3Npb24ubWFwKCh0KSA9PiB3LnRva2VuKHQpKSwK
KyAgICBdKTsKICAgfQogfQogCiAKIC8qKiovIH0pLAogLyogMTMgKi8KLS8qKiovIChmdW5jdGlv
bihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8q
KiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBv
cnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJw
YWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQg
KGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAi
T3BlcmF0aW9uIiwgZnVuY3Rpb24oKSB7IHJldHVybiBPcGVyYXRpb247IH0pOworLyogaGFybW9u
eSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsK
Ky8qIGhhcm1vbnkgZXhwb3J0ICovICAgIk9wZXJhdGlvbiI6ICgpID0+ICgvKiBiaW5kaW5nICov
IE9wZXJhdGlvbikKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQg
Ki8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tf
cmVxdWlyZV9fKDYpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwogLyogaGFy
bW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9f
ID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKQEAgLTE3MjUsNyArMTk4Myw3IEBAIF9fd2VicGFj
a19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAogCiAKLWNsYXNzIE9wZXJhdGlv
biBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7
CitjbGFzcyBPcGVyYXRpb24gZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fLkJhc2UgewogICAvKioKICAgICogQHR5cGVkZWYge2ltcG9ydCgiLi4vdG9rZW5pc2Vy
LmpzIikuVG9rZW59IFRva2VuCiAgICAqCkBAIC0xNzM2LDcgKzE5OTQsOSBAQCBjbGFzcyBPcGVy
YXRpb24gZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNl
Il0gewogICAgKi8KICAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgeyBzcGVjaWFsLCByZWd1bGFy
IH0gPSB7fSkgewogICAgIGNvbnN0IHRva2VucyA9IHsgc3BlY2lhbCB9OwotICAgIGNvbnN0IHJl
dCA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJhdXRv
UGFyZW50ZXIiXSkobmV3IE9wZXJhdGlvbih7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9r
ZW5zIH0pKTsKKyAgICBjb25zdCByZXQgPSAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMV9fLmF1dG9QYXJlbnRlcikoCisgICAgICBuZXcgT3BlcmF0aW9uKHsgc291cmNl
OiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkKKyAgICApOwogICAgIGlmIChzcGVjaWFsICYm
IHNwZWNpYWwudmFsdWUgPT09ICJzdHJpbmdpZmllciIpIHsKICAgICAgIHRva2Vucy50ZXJtaW5h
dGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7Iik7CiAgICAgICBpZiAodG9rZW5zLnRlcm1pbmF0
aW9uKSB7CkBAIC0xNzQ3LDEyICsyMDA3LDE4IEBAIGNsYXNzIE9wZXJhdGlvbiBleHRlbmRzIF9i
YXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICAgaWYgKCFz
cGVjaWFsICYmICFyZWd1bGFyKSB7CiAgICAgICB0b2tlbnMuc3BlY2lhbCA9IHRva2VuaXNlci5j
b25zdW1lKCJnZXR0ZXIiLCAic2V0dGVyIiwgImRlbGV0ZXIiKTsKICAgICB9Ci0gICAgcmV0Lmlk
bFR5cGUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1si
cmV0dXJuX3R5cGUiXSkodG9rZW5pc2VyKSB8fCB0b2tlbmlzZXIuZXJyb3IoIk1pc3NpbmcgcmV0
dXJuIHR5cGUiKTsKLSAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlm
aWVyIiwgImluY2x1ZGVzIik7Ci0gICAgdG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgi
KCIpIHx8IHRva2VuaXNlci5lcnJvcigiSW52YWxpZCBvcGVyYXRpb24iKTsKLSAgICByZXQuYXJn
dW1lbnRzID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19b
ImFyZ3VtZW50X2xpc3QiXSkodG9rZW5pc2VyKTsKLSAgICB0b2tlbnMuY2xvc2UgPSB0b2tlbmlz
ZXIuY29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIG9wZXJhdGlv
biIpOwotICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwg
dG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgb3BlcmF0aW9uLCBleHBlY3RlZCBgO2AiKTsK
KyAgICByZXQuaWRsVHlwZSA9CisgICAgICAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMV9fLnJldHVybl90eXBlKSh0b2tlbmlzZXIpIHx8IHRva2VuaXNlci5lcnJvcigi
TWlzc2luZyByZXR1cm4gdHlwZSIpOworICAgIHRva2Vucy5uYW1lID0KKyAgICAgIHRva2VuaXNl
ci5jb25zdW1lVHlwZSgiaWRlbnRpZmllciIpIHx8IHRva2VuaXNlci5jb25zdW1lKCJpbmNsdWRl
cyIpOworICAgIHRva2Vucy5vcGVuID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCIoIikgfHwg
dG9rZW5pc2VyLmVycm9yKCJJbnZhbGlkIG9wZXJhdGlvbiIpOworICAgIHJldC5hcmd1bWVudHMg
PSAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmFyZ3VtZW50X2xp
c3QpKHRva2VuaXNlcik7CisgICAgdG9rZW5zLmNsb3NlID0KKyAgICAgIHRva2VuaXNlci5jb25z
dW1lKCIpIikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgb3BlcmF0aW9uIik7Cisg
ICAgdG9rZW5zLnRlcm1pbmF0aW9uID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwK
KyAgICAgIHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIG9wZXJhdGlvbiwgZXhwZWN0ZWQg
YDtgIik7CiAgICAgcmV0dXJuIHJldC50aGlzOwogICB9CiAKQEAgLTE3NjQsNyArMjAzMCw3IEBA
IGNsYXNzIE9wZXJhdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX19bIkJhc2UiXSB7CiAgICAgaWYgKCFuYW1lKSB7CiAgICAgICByZXR1cm4gIiI7CiAgICAg
fQotICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfX1sidW5lc2NhcGUiXSkobmFtZS52YWx1ZSk7CisgICAgcmV0dXJuICgwLF9oZWxwZXJzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udW5lc2NhcGUpKG5hbWUudmFsdWUpOwogICB9
CiAgIGdldCBzcGVjaWFsKCkgewogICAgIGlmICghdGhpcy50b2tlbnMuc3BlY2lhbCkgewpAQCAt
MTc3NCw5ICsyMDQwLDEwIEBAIGNsYXNzIE9wZXJhdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgIH0KIAogICAqdmFsaWRhdGUoZGVm
cykgeworICAgIHlpZWxkKiB0aGlzLmV4dEF0dHJzLnZhbGlkYXRlKGRlZnMpOwogICAgIGlmICgh
dGhpcy5uYW1lICYmIFsiIiwgInN0YXRpYyJdLmluY2x1ZGVzKHRoaXMuc3BlY2lhbCkpIHsKICAg
ICAgIGNvbnN0IG1lc3NhZ2UgPSBgUmVndWxhciBvciBzdGF0aWMgb3BlcmF0aW9ucyBtdXN0IGhh
dmUgYm90aCBhIHJldHVybiB0eXBlIGFuZCBhbiBpZGVudGlmaWVyLmA7Ci0gICAgICB5aWVsZCBP
YmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInZhbGlkYXRpb25F
cnJvciJdKSh0aGlzLnRva2Vucy5vcGVuLCB0aGlzLCAiaW5jb21wbGV0ZS1vcCIsIG1lc3NhZ2Up
OworICAgICAgeWllbGQgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18u
dmFsaWRhdGlvbkVycm9yKSh0aGlzLnRva2Vucy5vcGVuLCB0aGlzLCAiaW5jb21wbGV0ZS1vcCIs
IG1lc3NhZ2UpOwogICAgIH0KICAgICBpZiAodGhpcy5pZGxUeXBlKSB7CiAgICAgICB5aWVsZCog
dGhpcy5pZGxUeXBlLnZhbGlkYXRlKGRlZnMpOwpAQCAtMTc4NSwyOSArMjA1Miw3MCBAQCBjbGFz
cyBPcGVyYXRpb24gZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
WyJCYXNlIl0gewogICAgICAgeWllbGQqIGFyZ3VtZW50LnZhbGlkYXRlKGRlZnMpOwogICAgIH0K
ICAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyfSB3ICov
CisgIHdyaXRlKHcpIHsKKyAgICBjb25zdCB7IHBhcmVudCB9ID0gdGhpczsKKyAgICBjb25zdCBi
b2R5ID0gdGhpcy5pZGxUeXBlCisgICAgICA/IFsKKyAgICAgICAgICB3LnRzLnR5cGUodGhpcy5p
ZGxUeXBlLndyaXRlKHcpKSwKKyAgICAgICAgICB3Lm5hbWVfdG9rZW4odGhpcy50b2tlbnMubmFt
ZSwgeyBkYXRhOiB0aGlzLCBwYXJlbnQgfSksCisgICAgICAgICAgdy50b2tlbih0aGlzLnRva2Vu
cy5vcGVuKSwKKyAgICAgICAgICB3LnRzLndyYXAodGhpcy5hcmd1bWVudHMubWFwKChhcmcpID0+
IGFyZy53cml0ZSh3KSkpLAorICAgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuY2xvc2UpLAor
ICAgICAgICBdCisgICAgICA6IFtdOworICAgIHJldHVybiB3LnRzLmRlZmluaXRpb24oCisgICAg
ICB3LnRzLndyYXAoWworICAgICAgICB0aGlzLmV4dEF0dHJzLndyaXRlKHcpLAorICAgICAgICB0
aGlzLnRva2Vucy5uYW1lCisgICAgICAgICAgPyB3LnRva2VuKHRoaXMudG9rZW5zLnNwZWNpYWwp
CisgICAgICAgICAgOiB3LnRva2VuKHRoaXMudG9rZW5zLnNwZWNpYWwsIHcudHMubmFtZWxlc3Ms
IHsgZGF0YTogdGhpcywgcGFyZW50IH0pLAorICAgICAgICAuLi5ib2R5LAorICAgICAgICB3LnRv
a2VuKHRoaXMudG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAgICAgIF0pLAorICAgICAgeyBkYXRhOiB0
aGlzLCBwYXJlbnQgfQorICAgICk7CisgIH0KIH0KIAogCiAvKioqLyB9KSwKIC8qIDE0ICovCi0v
KioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVx
dWlyZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBf
X3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3Ry
aWN0IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhh
cm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNr
X2V4cG9ydHNfXywgIkF0dHJpYnV0ZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gQXR0cmlidXRlOyB9
KTsKLS8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKLS8qIGhhcm1vbnkgaW1wb3J0ICov
IHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNr
X3JlcXVpcmVfXyg0KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18u
ZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJBdHRyaWJ1
dGUiOiAoKSA9PiAoLyogYmluZGluZyAqLyBBdHRyaWJ1dGUpCisvKiBoYXJtb255IGV4cG9ydCAq
LyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CisvKiBoYXJtb255IGltcG9y
dCAqLyB2YXIgX3ZhbGlkYXRvcnNfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBf
YmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVf
Xyg2KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKy8vIEB0cy1jaGVjawor
CiAKIAogCi1jbGFzcyBBdHRyaWJ1dGUgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fWyJCYXNlIl0geworCisKK2NsYXNzIEF0dHJpYnV0ZSBleHRlbmRzIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFy
YW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICog
QHBhcmFtIHtvYmplY3R9IFtvcHRpb25zXQorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5p
c2VyLmpzIikuVG9rZW59IFtvcHRpb25zLnNwZWNpYWxdCisgICAqIEBwYXJhbSB7Ym9vbGVhbn0g
W29wdGlvbnMubm9Jbmhlcml0XQorICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnJlYWRv
bmx5XQogICAgKi8KLSAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgeyBzcGVjaWFsLCBub0luaGVy
aXQgPSBmYWxzZSwgcmVhZG9ubHkgPSBmYWxzZSB9ID0ge30pIHsKKyAgc3RhdGljIHBhcnNlKAor
ICAgIHRva2VuaXNlciwKKyAgICB7IHNwZWNpYWwsIG5vSW5oZXJpdCA9IGZhbHNlLCByZWFkb25s
eSA9IGZhbHNlIH0gPSB7fQorICApIHsKICAgICBjb25zdCBzdGFydF9wb3NpdGlvbiA9IHRva2Vu
aXNlci5wb3NpdGlvbjsKICAgICBjb25zdCB0b2tlbnMgPSB7IHNwZWNpYWwgfTsKLSAgICBjb25z
dCByZXQgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1si
YXV0b1BhcmVudGVyIl0pKG5ldyBBdHRyaWJ1dGUoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2Us
IHRva2VucyB9KSk7CisgICAgY29uc3QgcmV0ID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzNfXy5hdXRvUGFyZW50ZXIpKAorICAgICAgbmV3IEF0dHJpYnV0ZSh7IHNv
dXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pCisgICAgKTsKICAgICBpZiAoIXNwZWNp
YWwgJiYgIW5vSW5oZXJpdCkgewogICAgICAgdG9rZW5zLnNwZWNpYWwgPSB0b2tlbmlzZXIuY29u
c3VtZSgiaW5oZXJpdCIpOwogICAgIH0KQEAgLTE4MjMsMTMgKzIxMzEsMTYgQEAgY2xhc3MgQXR0
cmlidXRlIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFz
ZSJdIHsKICAgICAgIHRva2VuaXNlci51bmNvbnN1bWUoc3RhcnRfcG9zaXRpb24pOwogICAgICAg
cmV0dXJuOwogICAgIH0KLSAgICByZXQuaWRsVHlwZSA9IE9iamVjdChfaGVscGVyc19qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyJd
KSh0b2tlbmlzZXIsICJhdHRyaWJ1dGUtdHlwZSIpIHx8IHRva2VuaXNlci5lcnJvcigiQXR0cmli
dXRlIGxhY2tzIGEgdHlwZSIpOwotICAgIHN3aXRjaCAocmV0LmlkbFR5cGUuZ2VuZXJpYykgewot
ICAgICAgY2FzZSAic2VxdWVuY2UiOgotICAgICAgY2FzZSAicmVjb3JkIjogdG9rZW5pc2VyLmVy
cm9yKGBBdHRyaWJ1dGVzIGNhbm5vdCBhY2NlcHQgJHtyZXQuaWRsVHlwZS5nZW5lcmljfSB0eXBl
c2ApOwotICAgIH0KLSAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlm
aWVyIiwgImFzeW5jIiwgInJlcXVpcmVkIikgfHwgdG9rZW5pc2VyLmVycm9yKCJBdHRyaWJ1dGUg
bGFja3MgYSBuYW1lIik7Ci0gICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1
bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBhdHRyaWJ1dGUsIGV4cGVj
dGVkIGA7YCIpOworICAgIHJldC5pZGxUeXBlID0KKyAgICAgICgwLF9oZWxwZXJzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8zX18udHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMpKHRv
a2VuaXNlciwgImF0dHJpYnV0ZS10eXBlIikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiQXR0
cmlidXRlIGxhY2tzIGEgdHlwZSIpOworICAgIHRva2Vucy5uYW1lID0KKyAgICAgIHRva2VuaXNl
ci5jb25zdW1lVHlwZSgiaWRlbnRpZmllciIpIHx8CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgi
YXN5bmMiLCAicmVxdWlyZWQiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKCJBdHRyaWJ1dGUg
bGFja3MgYSBuYW1lIik7CisgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0KKyAgICAgIHRva2VuaXNl
ci5jb25zdW1lKCI7IikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGF0
dHJpYnV0ZSwgZXhwZWN0ZWQgYDtgIik7CiAgICAgcmV0dXJuIHJldC50aGlzOwogICB9CiAKQEAg
LTE4NDYsMjMgKzIxNTcsNzAgQEAgY2xhc3MgQXR0cmlidXRlIGV4dGVuZHMgX2Jhc2VfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICByZXR1cm4gISF0aGlzLnRv
a2Vucy5yZWFkb25seTsKICAgfQogICBnZXQgbmFtZSgpIHsKLSAgICByZXR1cm4gT2JqZWN0KF9o
ZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0pKHRoaXMu
dG9rZW5zLm5hbWUudmFsdWUpOworICAgIHJldHVybiAoMCxfaGVscGVyc19qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfM19fLnVuZXNjYXBlKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKICAg
fQogCiAgICp2YWxpZGF0ZShkZWZzKSB7CiAgICAgeWllbGQqIHRoaXMuZXh0QXR0cnMudmFsaWRh
dGUoZGVmcyk7CiAgICAgeWllbGQqIHRoaXMuaWRsVHlwZS52YWxpZGF0ZShkZWZzKTsKKworICAg
IHN3aXRjaCAodGhpcy5pZGxUeXBlLmdlbmVyaWMpIHsKKyAgICAgIGNhc2UgInNlcXVlbmNlIjoK
KyAgICAgIGNhc2UgInJlY29yZCI6IHsKKyAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBBdHRyaWJ1
dGVzIGNhbm5vdCBhY2NlcHQgJHt0aGlzLmlkbFR5cGUuZ2VuZXJpY30gdHlwZXMuYDsKKyAgICAg
ICAgeWllbGQgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udmFsaWRh
dGlvbkVycm9yKSgKKyAgICAgICAgICB0aGlzLnRva2Vucy5uYW1lLAorICAgICAgICAgIHRoaXMs
CisgICAgICAgICAgImF0dHItaW52YWxpZC10eXBlIiwKKyAgICAgICAgICBtZXNzYWdlCisgICAg
ICAgICk7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgZGVmYXVsdDogeworICAgICAg
ICBjb25zdCB7IHJlZmVyZW5jZSB9ID0KKyAgICAgICAgICAoMCxfdmFsaWRhdG9yc19oZWxwZXJz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFy
eSkodGhpcy5pZGxUeXBlLCBkZWZzKSB8fCB7fTsKKyAgICAgICAgaWYgKHJlZmVyZW5jZSkgewor
ICAgICAgICAgIGNvbnN0IHRhcmdldFRva2VuID0gKHRoaXMuaWRsVHlwZS51bmlvbiA/IHJlZmVy
ZW5jZSA6IHRoaXMuaWRsVHlwZSkKKyAgICAgICAgICAgIC50b2tlbnMuYmFzZTsKKyAgICAgICAg
ICBjb25zdCBtZXNzYWdlID0gIkF0dHJpYnV0ZXMgY2Fubm90IGFjY2VwdCBkaWN0aW9uYXJ5IHR5
cGVzLiI7CisgICAgICAgICAgeWllbGQgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX18udmFsaWRhdGlvbkVycm9yKSgKKyAgICAgICAgICAgIHRhcmdldFRva2VuLAorICAg
ICAgICAgICAgdGhpcywKKyAgICAgICAgICAgICJhdHRyLWludmFsaWQtdHlwZSIsCisgICAgICAg
ICAgICBtZXNzYWdlCisgICAgICAgICAgKTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAg
fQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyfSB3ICovCisg
IHdyaXRlKHcpIHsKKyAgICBjb25zdCB7IHBhcmVudCB9ID0gdGhpczsKKyAgICByZXR1cm4gdy50
cy5kZWZpbml0aW9uKAorICAgICAgdy50cy53cmFwKFsKKyAgICAgICAgdGhpcy5leHRBdHRycy53
cml0ZSh3KSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5zcGVjaWFsKSwKKyAgICAgICAg
dy50b2tlbih0aGlzLnRva2Vucy5yZWFkb25seSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tl
bnMuYmFzZSksCisgICAgICAgIHcudHMudHlwZSh0aGlzLmlkbFR5cGUud3JpdGUodykpLAorICAg
ICAgICB3Lm5hbWVfdG9rZW4odGhpcy50b2tlbnMubmFtZSwgeyBkYXRhOiB0aGlzLCBwYXJlbnQg
fSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMudGVybWluYXRpb24pLAorICAgICAgXSks
CisgICAgICB7IGRhdGE6IHRoaXMsIHBhcmVudCB9CisgICAgKTsKICAgfQogfQogCiAKIC8qKiov
IH0pLAogLyogMTUgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRz
X18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dl
YnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18p
ID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19l
eHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1
aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiRW51bSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4g
RW51bTsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193
ZWJwYWNrX2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBvcnQgKi8gICAiRW51bSI6ICgpID0+
ICgvKiBiaW5kaW5nICovIEVudW0pCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1v
bnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdG9r
ZW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18o
MTApOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOwpAQCAtMTg3MCwxMiArMjIyOCwx
MiBAQCBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiAKIAogCi1j
bGFzcyBFbnVtVmFsdWUgZXh0ZW5kcyBfdG9rZW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfX1siVG9rZW4iXSB7CitjbGFzcyBFbnVtVmFsdWUgZXh0ZW5kcyBfdG9rZW5fanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfXy5XcmFwcGVkVG9rZW4gewogICAvKioKICAgICogQHBhcmFt
IHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCiAgICAqLwogICBz
dGF0aWMgcGFyc2UodG9rZW5pc2VyKSB7Ci0gICAgY29uc3QgdmFsdWUgPSB0b2tlbmlzZXIuY29u
c3VtZSgic3RyaW5nIik7CisgICAgY29uc3QgdmFsdWUgPSB0b2tlbmlzZXIuY29uc3VtZVR5cGUo
InN0cmluZyIpOwogICAgIGlmICh2YWx1ZSkgewogICAgICAgcmV0dXJuIG5ldyBFbnVtVmFsdWUo
eyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyB2YWx1ZSB9IH0pOwogICAgIH0K
QEAgLTE4ODcsOSArMjI0NSwyMiBAQCBjbGFzcyBFbnVtVmFsdWUgZXh0ZW5kcyBfdG9rZW5fanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siVG9rZW4iXSB7CiAgIGdldCB2YWx1ZSgpIHsK
ICAgICByZXR1cm4gc3VwZXIudmFsdWUuc2xpY2UoMSwgLTEpOwogICB9CisKKyAgLyoqIEBwYXJh
bSB7aW1wb3J0KCIuLi93cml0ZXIuanMiKS5Xcml0ZXJ9IHcgKi8KKyAgd3JpdGUodykgeworICAg
IGNvbnN0IHsgcGFyZW50IH0gPSB0aGlzOworICAgIHJldHVybiB3LnRzLndyYXAoWworICAgICAg
dy50cy50cml2aWEodGhpcy50b2tlbnMudmFsdWUudHJpdmlhKSwKKyAgICAgIHcudHMuZGVmaW5p
dGlvbigKKyAgICAgICAgdy50cy53cmFwKFsnIicsIHcudHMubmFtZSh0aGlzLnZhbHVlLCB7IGRh
dGE6IHRoaXMsIHBhcmVudCB9KSwgJyInXSksCisgICAgICAgIHsgZGF0YTogdGhpcywgcGFyZW50
IH0KKyAgICAgICksCisgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnNlcGFyYXRvciksCisgICAg
XSk7CisgIH0KIH0KIAotY2xhc3MgRW51bSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8yX19bIkJhc2UiXSB7CitjbGFzcyBFbnVtIGV4dGVuZHMgX2Jhc2VfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5CYXNlIHsKICAgLyoqCiAgICAqIEBwYXJhbSB7aW1w
b3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgogICAgKi8KQEAgLTE5MDAs
MjMgKzIyNzEsMjcgQEAgY2xhc3MgRW51bSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8yX19bIkJhc2UiXSB7CiAgICAgaWYgKCF0b2tlbnMuYmFzZSkgewogICAgICAg
cmV0dXJuOwogICAgIH0KLSAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVu
dGlmaWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKCJObyBuYW1lIGZvciBlbnVtIik7Ci0gICAgY29u
c3QgcmV0ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19b
ImF1dG9QYXJlbnRlciJdKShuZXcgRW51bSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9r
ZW5zIH0pKTsKKyAgICB0b2tlbnMubmFtZSA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZVR5cGUo
ImlkZW50aWZpZXIiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKCJObyBuYW1lIGZvciBlbnVt
Iik7CisgICAgY29uc3QgcmV0ID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfXy5hdXRvUGFyZW50ZXIpKG5ldyBFbnVtKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNl
LCB0b2tlbnMgfSkpOwogICAgIHRva2VuaXNlci5jdXJyZW50ID0gcmV0LnRoaXM7CiAgICAgdG9r
ZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgieyIpIHx8IHRva2VuaXNlci5lcnJvcigiQm9k
eWxlc3MgZW51bSIpOwotICAgIHJldC52YWx1ZXMgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfX1sibGlzdCJdKSh0b2tlbmlzZXIsIHsKKyAgICByZXQudmFs
dWVzID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5saXN0KSh0
b2tlbmlzZXIsIHsKICAgICAgIHBhcnNlcjogRW51bVZhbHVlLnBhcnNlLAogICAgICAgYWxsb3dE
YW5nbGVyOiB0cnVlLAotICAgICAgbGlzdE5hbWU6ICJlbnVtZXJhdGlvbiIKKyAgICAgIGxpc3RO
YW1lOiAiZW51bWVyYXRpb24iLAogICAgIH0pOwotICAgIGlmICh0b2tlbmlzZXIucHJvYmUoInN0
cmluZyIpKSB7CisgICAgaWYgKHRva2VuaXNlci5wcm9iZVR5cGUoInN0cmluZyIpKSB7CiAgICAg
ICB0b2tlbmlzZXIuZXJyb3IoIk5vIGNvbW1hIGJldHdlZW4gZW51bSB2YWx1ZXMiKTsKICAgICB9
Ci0gICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIn0iKSB8fCB0b2tlbmlzZXIu
ZXJyb3IoIlVuZXhwZWN0ZWQgdmFsdWUgaW4gZW51bSIpOworICAgIHRva2Vucy5jbG9zZSA9Cisg
ICAgICB0b2tlbmlzZXIuY29uc3VtZSgifSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW5leHBlY3Rl
ZCB2YWx1ZSBpbiBlbnVtIik7CiAgICAgaWYgKCFyZXQudmFsdWVzLmxlbmd0aCkgewogICAgICAg
dG9rZW5pc2VyLmVycm9yKCJObyB2YWx1ZSBpbiBlbnVtIik7CiAgICAgfQotICAgIHRva2Vucy50
ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKCJO
byBzZW1pY29sb24gYWZ0ZXIgZW51bSIpOworICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9CisgICAg
ICB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRva2VuaXNlci5lcnJvcigiTm8gc2VtaWNvbG9u
IGFmdGVyIGVudW0iKTsKICAgICByZXR1cm4gcmV0LnRoaXM7CiAgIH0KIApAQCAtMTkyNCwxOCAr
MjI5OSwzNSBAQCBjbGFzcyBFbnVtIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzJfX1siQmFzZSJdIHsKICAgICByZXR1cm4gImVudW0iOwogICB9CiAgIGdldCBuYW1l
KCkgewotICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfX1sidW5lc2NhcGUiXSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7CisgICAgcmV0dXJu
ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udW5lc2NhcGUpKHRo
aXMudG9rZW5zLm5hbWUudmFsdWUpOworICB9CisKKyAgLyoqIEBwYXJhbSB7aW1wb3J0KCIuLi93
cml0ZXIuanMiKS5Xcml0ZXJ9IHcgKi8KKyAgd3JpdGUodykgeworICAgIHJldHVybiB3LnRzLmRl
ZmluaXRpb24oCisgICAgICB3LnRzLndyYXAoWworICAgICAgICB0aGlzLmV4dEF0dHJzLndyaXRl
KHcpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLmJhc2UpLAorICAgICAgICB3Lm5hbWVf
dG9rZW4odGhpcy50b2tlbnMubmFtZSwgeyBkYXRhOiB0aGlzIH0pLAorICAgICAgICB3LnRva2Vu
KHRoaXMudG9rZW5zLm9wZW4pLAorICAgICAgICB3LnRzLndyYXAodGhpcy52YWx1ZXMubWFwKCh2
KSA9PiB2LndyaXRlKHcpKSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuY2xvc2UpLAor
ICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAgICAgIF0pLAorICAg
ICAgeyBkYXRhOiB0aGlzIH0KKyAgICApOwogICB9CiB9CiAKIAogLyoqKi8gfSksCiAvKiAxNiAq
LwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNr
X3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVf
XywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNl
IHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0v
KiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2Vi
cGFja19leHBvcnRzX18sICJJbmNsdWRlcyIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gSW5jbHVkZXM7
IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFj
a19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIkluY2x1ZGVzIjogKCkgPT4g
KC8qIGJpbmRpbmcgKi8gSW5jbHVkZXMpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhh
cm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVf
Xyg0KTsKIC8vIEB0cy1jaGVjawpAQCAtMTk0MywxMiArMjMzNSwxMiBAQCBfX3dlYnBhY2tfcmVx
dWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiAKIAogCi1jbGFzcyBJbmNsdWRlcyBleHRl
bmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CitjbGFz
cyBJbmNsdWRlcyBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18u
QmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5p
c2VyfSB0b2tlbmlzZXIKICAgICovCiAgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKLSAgICBj
b25zdCB0YXJnZXQgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIpOworICAgIGNvbnN0
IHRhcmdldCA9IHRva2VuaXNlci5jb25zdW1lVHlwZSgiaWRlbnRpZmllciIpOwogICAgIGlmICgh
dGFyZ2V0KSB7CiAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTk1OCw4ICsyMzUwLDEyIEBAIGNs
YXNzIEluY2x1ZGVzIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
X1siQmFzZSJdIHsKICAgICAgIHRva2VuaXNlci51bmNvbnN1bWUodGFyZ2V0LmluZGV4KTsKICAg
ICAgIHJldHVybjsKICAgICB9Ci0gICAgdG9rZW5zLm1peGluID0gdG9rZW5pc2VyLmNvbnN1bWUo
ImlkZW50aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkluY29tcGxldGUgaW5jbHVkZXMgc3Rh
dGVtZW50Iik7Ci0gICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsi
KSB8fCB0b2tlbmlzZXIuZXJyb3IoIk5vIHRlcm1pbmF0aW5nIDsgZm9yIGluY2x1ZGVzIHN0YXRl
bWVudCIpOworICAgIHRva2Vucy5taXhpbiA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZVR5cGUo
ImlkZW50aWZpZXIiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKCJJbmNvbXBsZXRlIGluY2x1
ZGVzIHN0YXRlbWVudCIpOworICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9CisgICAgICB0b2tlbmlz
ZXIuY29uc3VtZSgiOyIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIk5vIHRlcm1pbmF0aW5n
IDsgZm9yIGluY2x1ZGVzIHN0YXRlbWVudCIpOwogICAgIHJldHVybiBuZXcgSW5jbHVkZXMoeyBz
b3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsKICAgfQogCkBAIC0xOTY3LDQyICsy
MzYzLDYzIEBAIGNsYXNzIEluY2x1ZGVzIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICByZXR1cm4gImluY2x1ZGVzIjsKICAgfQogICBn
ZXQgdGFyZ2V0KCkgewotICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfX1sidW5lc2NhcGUiXSkodGhpcy50b2tlbnMudGFyZ2V0LnZhbHVlKTsK
KyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51
bmVzY2FwZSkodGhpcy50b2tlbnMudGFyZ2V0LnZhbHVlKTsKICAgfQogICBnZXQgaW5jbHVkZXMo
KSB7Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMV9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5taXhpbi52YWx1ZSk7CisgICAgcmV0dXJu
ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udW5lc2NhcGUpKHRo
aXMudG9rZW5zLm1peGluLnZhbHVlKTsKKyAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4v
d3JpdGVyLmpzIikuV3JpdGVyfSB3ICovCisgIHdyaXRlKHcpIHsKKyAgICByZXR1cm4gdy50cy5k
ZWZpbml0aW9uKAorICAgICAgdy50cy53cmFwKFsKKyAgICAgICAgdGhpcy5leHRBdHRycy53cml0
ZSh3KSwKKyAgICAgICAgdy5yZWZlcmVuY2VfdG9rZW4odGhpcy50b2tlbnMudGFyZ2V0LCB0aGlz
KSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5pbmNsdWRlcyksCisgICAgICAgIHcucmVm
ZXJlbmNlX3Rva2VuKHRoaXMudG9rZW5zLm1peGluLCB0aGlzKSwKKyAgICAgICAgdy50b2tlbih0
aGlzLnRva2Vucy50ZXJtaW5hdGlvbiksCisgICAgICBdKSwKKyAgICAgIHsgZGF0YTogdGhpcyB9
CisgICAgKTsKICAgfQogfQogCiAKIC8qKiovIH0pLAogLyogMTcgKi8KLS8qKiovIChmdW5jdGlv
bihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8q
KiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBv
cnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJw
YWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQg
KGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAi
VHlwZWRlZiIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gVHlwZWRlZjsgfSk7CisvKiBoYXJtb255IGV4
cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgeworLyog
aGFybW9ueSBleHBvcnQgKi8gICAiVHlwZWRlZiI6ICgpID0+ICgvKiBiaW5kaW5nICovIFR5cGVk
ZWYpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBf
YmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVf
Xyg2KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKIAogCiAKLWNsYXNzIFR5
cGVkZWYgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNl
Il0geworY2xhc3MgVHlwZWRlZiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2Vy
IikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCiAgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIp
IHsKICAgICAvKiogQHR5cGUge0Jhc2VbInRva2VucyJdfSAqLwogICAgIGNvbnN0IHRva2VucyA9
IHt9OwotICAgIGNvbnN0IHJldCA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMV9fWyJhdXRvUGFyZW50ZXIiXSkobmV3IFR5cGVkZWYoeyBzb3VyY2U6IHRva2Vu
aXNlci5zb3VyY2UsIHRva2VucyB9KSk7CisgICAgY29uc3QgcmV0ID0gKDAsX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5hdXRvUGFyZW50ZXIpKG5ldyBUeXBlZGVmKHsg
c291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkpOwogICAgIHRva2Vucy5iYXNlID0g
dG9rZW5pc2VyLmNvbnN1bWUoInR5cGVkZWYiKTsKICAgICBpZiAoIXRva2Vucy5iYXNlKSB7CiAg
ICAgICByZXR1cm47CiAgICAgfQotICAgIHJldC5pZGxUeXBlID0gT2JqZWN0KF9oZWxwZXJzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1
dGVzIl0pKHRva2VuaXNlciwgInR5cGVkZWYtdHlwZSIpIHx8IHRva2VuaXNlci5lcnJvcigiVHlw
ZWRlZiBsYWNrcyBhIHR5cGUiKTsKLSAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1l
KCJpZGVudGlmaWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKCJUeXBlZGVmIGxhY2tzIGEgbmFtZSIp
OworICAgIHJldC5pZGxUeXBlID0KKyAgICAgICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8xX18udHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMpKHRva2VuaXNlciwg
InR5cGVkZWYtdHlwZSIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIlR5cGVkZWYgbGFja3Mg
YSB0eXBlIik7CisgICAgdG9rZW5zLm5hbWUgPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWVUeXBl
KCJpZGVudGlmaWVyIikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiVHlwZWRlZiBsYWNrcyBh
IG5hbWUiKTsKICAgICB0b2tlbmlzZXIuY3VycmVudCA9IHJldC50aGlzOwotICAgIHRva2Vucy50
ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKCJV
bnRlcm1pbmF0ZWQgdHlwZWRlZiwgZXhwZWN0ZWQgYDtgIik7CisgICAgdG9rZW5zLnRlcm1pbmF0
aW9uID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwKKyAgICAgIHRva2VuaXNlci5l
cnJvcigiVW50ZXJtaW5hdGVkIHR5cGVkZWYsIGV4cGVjdGVkIGA7YCIpOwogICAgIHJldHVybiBy
ZXQudGhpczsKICAgfQogCkBAIC0yMDEwLDQyICsyNDI3LDY4IEBAIGNsYXNzIFR5cGVkZWYgZXh0
ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAg
IHJldHVybiAidHlwZWRlZiI7CiAgIH0KICAgZ2V0IG5hbWUoKSB7Ci0gICAgcmV0dXJuIE9iamVj
dChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJdKSh0
aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfXy51bmVzY2FwZSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7
CiAgIH0KIAogICAqdmFsaWRhdGUoZGVmcykgewogICAgIHlpZWxkKiB0aGlzLmlkbFR5cGUudmFs
aWRhdGUoZGVmcyk7CiAgIH0KKworICAvKiogQHBhcmFtIHtpbXBvcnQoIi4uL3dyaXRlci5qcyIp
LldyaXRlcn0gdyAqLworICB3cml0ZSh3KSB7CisgICAgcmV0dXJuIHcudHMuZGVmaW5pdGlvbigK
KyAgICAgIHcudHMud3JhcChbCisgICAgICAgIHRoaXMuZXh0QXR0cnMud3JpdGUodyksCisgICAg
ICAgIHcudG9rZW4odGhpcy50b2tlbnMuYmFzZSksCisgICAgICAgIHcudHMudHlwZSh0aGlzLmlk
bFR5cGUud3JpdGUodykpLAorICAgICAgICB3Lm5hbWVfdG9rZW4odGhpcy50b2tlbnMubmFtZSwg
eyBkYXRhOiB0aGlzIH0pLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnRlcm1pbmF0aW9u
KSwKKyAgICAgIF0pLAorICAgICAgeyBkYXRhOiB0aGlzIH0KKyAgICApOworICB9CiB9CiAKIAog
LyoqKi8gfSksCiAvKiAxOCAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4
cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNr
X19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVp
cmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJw
YWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNr
X3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJDYWxsYmFja0Z1bmN0aW9uIiwgZnVu
Y3Rpb24oKSB7IHJldHVybiBDYWxsYmFja0Z1bmN0aW9uOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0
ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJt
b255IGV4cG9ydCAqLyAgICJDYWxsYmFja0Z1bmN0aW9uIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8g
Q2FsbGJhY2tGdW5jdGlvbikKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBp
bXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dl
YnBhY2tfcmVxdWlyZV9fKDYpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwog
CiAKIAotY2xhc3MgQ2FsbGJhY2tGdW5jdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CitjbGFzcyBDYWxsYmFja0Z1bmN0aW9uIGV4dGVu
ZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5CYXNlIHsKICAgLyoqCiAg
ICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIuanMiKS5Ub2tlbmlzZXJ9IHRva2VuaXNl
cgogICAgKi8KICAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgYmFzZSkgewogICAgIGNvbnN0IHRv
a2VucyA9IHsgYmFzZSB9OwotICAgIGNvbnN0IHJldCA9IE9iamVjdChfaGVscGVyc19qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJhdXRvUGFyZW50ZXIiXSkobmV3IENhbGxiYWNrRnVu
Y3Rpb24oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSk7Ci0gICAgdG9rZW5z
Lm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIpIHx8IHRva2VuaXNlci5lcnJv
cigiQ2FsbGJhY2sgbGFja3MgYSBuYW1lIik7CisgICAgY29uc3QgcmV0ID0gKDAsX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5hdXRvUGFyZW50ZXIpKAorICAgICAgbmV3
IENhbGxiYWNrRnVuY3Rpb24oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KQor
ICAgICk7CisgICAgdG9rZW5zLm5hbWUgPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWVUeXBlKCJp
ZGVudGlmaWVyIikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiQ2FsbGJhY2sgbGFja3MgYSBu
YW1lIik7CiAgICAgdG9rZW5pc2VyLmN1cnJlbnQgPSByZXQudGhpczsKLSAgICB0b2tlbnMuYXNz
aWduID0gdG9rZW5pc2VyLmNvbnN1bWUoIj0iKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNhbGxiYWNr
IGxhY2tzIGFuIGFzc2lnbm1lbnQiKTsKLSAgICByZXQuaWRsVHlwZSA9IE9iamVjdChfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJyZXR1cm5fdHlwZSJdKSh0b2tlbmlz
ZXIpIHx8IHRva2VuaXNlci5lcnJvcigiQ2FsbGJhY2sgbGFja3MgYSByZXR1cm4gdHlwZSIpOwot
ICAgIHRva2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUoIigiKSB8fCB0b2tlbmlzZXIuZXJy
b3IoIkNhbGxiYWNrIGxhY2tzIHBhcmVudGhlc2VzIGZvciBhcmd1bWVudHMiKTsKLSAgICByZXQu
YXJndW1lbnRzID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X19bImFyZ3VtZW50X2xpc3QiXSkodG9rZW5pc2VyKTsKLSAgICB0b2tlbnMuY2xvc2UgPSB0b2tl
bmlzZXIuY29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGNhbGxi
YWNrIik7Ci0gICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8
fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBjYWxsYmFjaywgZXhwZWN0ZWQgYDtgIik7
CisgICAgdG9rZW5zLmFzc2lnbiA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiPSIpIHx8IHRv
a2VuaXNlci5lcnJvcigiQ2FsbGJhY2sgbGFja3MgYW4gYXNzaWdubWVudCIpOworICAgIHJldC5p
ZGxUeXBlID0KKyAgICAgICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X18ucmV0dXJuX3R5cGUpKHRva2VuaXNlcikgfHwgdG9rZW5pc2VyLmVycm9yKCJDYWxsYmFjayBs
YWNrcyBhIHJldHVybiB0eXBlIik7CisgICAgdG9rZW5zLm9wZW4gPQorICAgICAgdG9rZW5pc2Vy
LmNvbnN1bWUoIigiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKCJDYWxsYmFjayBsYWNrcyBw
YXJlbnRoZXNlcyBmb3IgYXJndW1lbnRzIik7CisgICAgcmV0LmFyZ3VtZW50cyA9ICgwLF9oZWxw
ZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uYXJndW1lbnRfbGlzdCkodG9rZW5p
c2VyKTsKKyAgICB0b2tlbnMuY2xvc2UgPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIikiKSB8
fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBjYWxsYmFjayIpOworICAgIHRva2Vucy50
ZXJtaW5hdGlvbiA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8CisgICAgICB0b2tl
bmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBjYWxsYmFjaywgZXhwZWN0ZWQgYDtgIik7CiAgICAg
cmV0dXJuIHJldC50aGlzOwogICB9CiAKQEAgLTIwNTMsMjMgKzI0OTYsNDIgQEAgY2xhc3MgQ2Fs
bGJhY2tGdW5jdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bIkJhc2UiXSB7CiAgICAgcmV0dXJuICJjYWxsYmFjayI7CiAgIH0KICAgZ2V0IG5hbWUoKSB7
Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MV9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKKyAgICByZXR1cm4gKDAs
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51bmVzY2FwZSkodGhpcy50
b2tlbnMubmFtZS52YWx1ZSk7CiAgIH0KIAogICAqdmFsaWRhdGUoZGVmcykgewogICAgIHlpZWxk
KiB0aGlzLmV4dEF0dHJzLnZhbGlkYXRlKGRlZnMpOwogICAgIHlpZWxkKiB0aGlzLmlkbFR5cGUu
dmFsaWRhdGUoZGVmcyk7CiAgIH0KKworICAvKiogQHBhcmFtIHtpbXBvcnQoIi4uL3dyaXRlci5q
cyIpLldyaXRlcn0gdyAqLworICB3cml0ZSh3KSB7CisgICAgcmV0dXJuIHcudHMuZGVmaW5pdGlv
bigKKyAgICAgIHcudHMud3JhcChbCisgICAgICAgIHRoaXMuZXh0QXR0cnMud3JpdGUodyksCisg
ICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuYmFzZSksCisgICAgICAgIHcubmFtZV90b2tlbih0
aGlzLnRva2Vucy5uYW1lLCB7IGRhdGE6IHRoaXMgfSksCisgICAgICAgIHcudG9rZW4odGhpcy50
b2tlbnMuYXNzaWduKSwKKyAgICAgICAgdy50cy50eXBlKHRoaXMuaWRsVHlwZS53cml0ZSh3KSks
CisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMub3BlbiksCisgICAgICAgIC4uLnRoaXMuYXJn
dW1lbnRzLm1hcCgoYXJnKSA9PiBhcmcud3JpdGUodykpLAorICAgICAgICB3LnRva2VuKHRoaXMu
dG9rZW5zLmNsb3NlKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy50ZXJtaW5hdGlvbiks
CisgICAgICBdKSwKKyAgICAgIHsgZGF0YTogdGhpcyB9CisgICAgKTsKKyAgfQogfQogCiAKIC8q
KiovIH0pLAogLyogMTkgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBv
cnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19f
X3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJl
X18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFj
a19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19y
ZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiSW50ZXJmYWNlIiwgZnVuY3Rpb24oKSB7
IHJldHVybiBJbnRlcmZhY2U7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAg
IkludGVyZmFjZSI6ICgpID0+ICgvKiBiaW5kaW5nICovIEludGVyZmFjZSkKKy8qIGhhcm1vbnkg
ZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb250YWluZXJfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjApOwogLyog
aGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTQpOwogLyogaGFybW9ueSBpbXBvcnQgKi8g
dmFyIF9vcGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFj
a19yZXF1aXJlX18oMTMpOwpAQCAtMjA5OSwzMSArMjU2MSwzNiBAQCBfX3dlYnBhY2tfcmVxdWly
ZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiBmdW5jdGlvbiBzdGF0aWNfbWVtYmVyKHRva2Vu
aXNlcikgewogICBjb25zdCBzcGVjaWFsID0gdG9rZW5pc2VyLmNvbnN1bWUoInN0YXRpYyIpOwog
ICBpZiAoIXNwZWNpYWwpIHJldHVybjsKLSAgY29uc3QgbWVtYmVyID0gX2F0dHJpYnV0ZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJBdHRyaWJ1dGUiXS5wYXJzZSh0b2tlbmlzZXIs
IHsgc3BlY2lhbCB9KSB8fAotICAgIF9vcGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzJfX1siT3BlcmF0aW9uIl0ucGFyc2UodG9rZW5pc2VyLCB7IHNwZWNpYWwgfSkgfHwKKyAg
Y29uc3QgbWVtYmVyID0KKyAgICBfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8xX18uQXR0cmlidXRlLnBhcnNlKHRva2VuaXNlciwgeyBzcGVjaWFsIH0pIHx8CisgICAgX29w
ZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLk9wZXJhdGlvbi5wYXJzZSh0
b2tlbmlzZXIsIHsgc3BlY2lhbCB9KSB8fAogICAgIHRva2VuaXNlci5lcnJvcigiTm8gYm9keSBp
biBzdGF0aWMgbWVtYmVyIik7CiAgIHJldHVybiBtZW1iZXI7CiB9CiAKLWNsYXNzIEludGVyZmFj
ZSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29u
dGFpbmVyIl0geworY2xhc3MgSW50ZXJmYWNlIGV4dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fLkNvbnRhaW5lciB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2lt
cG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCiAgIHN0YXRp
YyBwYXJzZSh0b2tlbmlzZXIsIGJhc2UsIHsgcGFydGlhbCA9IG51bGwgfSA9IHt9KSB7CiAgICAg
Y29uc3QgdG9rZW5zID0geyBwYXJ0aWFsLCBiYXNlIH07Ci0gICAgcmV0dXJuIF9jb250YWluZXJf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0ucGFyc2UodG9rZW5p
c2VyLCBuZXcgSW50ZXJmYWNlKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSks
IHsKLSAgICAgIHR5cGU6ICJpbnRlcmZhY2UiLAotICAgICAgaW5oZXJpdGFibGU6ICFwYXJ0aWFs
LAotICAgICAgYWxsb3dlZE1lbWJlcnM6IFsKLSAgICAgICAgW19jb25zdGFudF9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfM19fWyJDb25zdGFudCJdLnBhcnNlXSwKLSAgICAgICAgW19jb25z
dHJ1Y3Rvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fWyJDb25zdHJ1Y3RvciJdLnBh
cnNlXSwKLSAgICAgICAgW3N0YXRpY19tZW1iZXJdLAotICAgICAgICBbX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1sic3RyaW5naWZpZXIiXV0sCi0gICAgICAgIFtfaXRl
cmFibGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siSXRlcmFibGVMaWtlIl0ucGFy
c2VdLAotICAgICAgICBbX2F0dHJpYnV0ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9f
WyJBdHRyaWJ1dGUiXS5wYXJzZV0sCi0gICAgICAgIFtfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8yX19bIk9wZXJhdGlvbiJdLnBhcnNlXQotICAgICAgXQotICAgIH0pOwor
ICAgIHJldHVybiBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQ29u
dGFpbmVyLnBhcnNlKAorICAgICAgdG9rZW5pc2VyLAorICAgICAgbmV3IEludGVyZmFjZSh7IHNv
dXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pLAorICAgICAgeworICAgICAgICB0eXBl
OiAiaW50ZXJmYWNlIiwKKyAgICAgICAgaW5oZXJpdGFibGU6ICFwYXJ0aWFsLAorICAgICAgICBh
bGxvd2VkTWVtYmVyczogWworICAgICAgICAgIFtfY29uc3RhbnRfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzNfXy5Db25zdGFudC5wYXJzZV0sCisgICAgICAgICAgW19jb25zdHJ1Y3Rvcl9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLkNvbnN0cnVjdG9yLnBhcnNlXSwKKyAgICAg
ICAgICBbc3RhdGljX21lbWJlcl0sCisgICAgICAgICAgW19oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV81X18uc3RyaW5naWZpZXJdLAorICAgICAgICAgIFtfaXRlcmFibGVfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5JdGVyYWJsZUxpa2UucGFyc2VdLAorICAgICAg
ICAgIFtfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uQXR0cmlidXRl
LnBhcnNlXSwKKyAgICAgICAgICBbX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMl9fLk9wZXJhdGlvbi5wYXJzZV0sCisgICAgICAgIF0sCisgICAgICB9CisgICAgKTsKICAg
fQogCiAgIGdldCB0eXBlKCkgewpAQCAtMjEzNCw2NiArMjYwMSwxMDAgQEAgY2xhc3MgSW50ZXJm
YWNlIGV4dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJD
b250YWluZXIiXQogICAgIHlpZWxkKiB0aGlzLmV4dEF0dHJzLnZhbGlkYXRlKGRlZnMpOwogICAg
IGlmICgKICAgICAgICF0aGlzLnBhcnRpYWwgJiYKLSAgICAgIHRoaXMuZXh0QXR0cnMuZXZlcnko
ZXh0QXR0ciA9PiBleHRBdHRyLm5hbWUgIT09ICJFeHBvc2VkIikgJiYKLSAgICAgIHRoaXMuZXh0
QXR0cnMuZXZlcnkoZXh0QXR0ciA9PiBleHRBdHRyLm5hbWUgIT09ICJMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdCIpCisgICAgICB0aGlzLmV4dEF0dHJzLmV2ZXJ5KChleHRBdHRyKSA9PiBleHRBdHRy
Lm5hbWUgIT09ICJFeHBvc2VkIikKICAgICApIHsKICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgSW50
ZXJmYWNlcyBtdXN0IGhhdmUgXGBbRXhwb3NlZF1cYCBleHRlbmRlZCBhdHRyaWJ1dGUuIFwKIFRv
IGZpeCwgYWRkLCBmb3IgZXhhbXBsZSwgXGBbRXhwb3NlZD1XaW5kb3ddXGAuIFBsZWFzZSBhbHNv
IGNvbnNpZGVyIGNhcmVmdWxseSBcCiBpZiB5b3VyIGludGVyZmFjZSBzaG91bGQgYWxzbyBiZSBl
eHBvc2VkIGluIGEgV29ya2VyIHNjb3BlLiBSZWZlciB0byB0aGUgXAogW1dlYklETCBzcGVjIHNl
Y3Rpb24gb24gRXhwb3NlZF0oaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jRXhwb3Nl
ZCkgXAogZm9yIG1vcmUgaW5mb3JtYXRpb24uYDsKLSAgICAgIHlpZWxkIE9iamVjdChfZXJyb3Jf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1sidmFsaWRhdGlvbkVycm9yIl0pKHRoaXMu
dG9rZW5zLm5hbWUsIHRoaXMsICJyZXF1aXJlLWV4cG9zZWQiLCBtZXNzYWdlLCB7Ci0gICAgICAg
IGF1dG9maXg6IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9f
WyJhdXRvZml4QWRkRXhwb3NlZFdpbmRvdyJdKSh0aGlzKQotICAgICAgfSk7CisgICAgICB5aWVs
ZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy52YWxpZGF0aW9uRXJy
b3IpKAorICAgICAgICB0aGlzLnRva2Vucy5uYW1lLAorICAgICAgICB0aGlzLAorICAgICAgICAi
cmVxdWlyZS1leHBvc2VkIiwKKyAgICAgICAgbWVzc2FnZSwKKyAgICAgICAgeworICAgICAgICAg
IGF1dG9maXg6ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uYXV0
b2ZpeEFkZEV4cG9zZWRXaW5kb3cpKHRoaXMpLAorICAgICAgICB9CisgICAgICApOwogICAgIH0K
LSAgICBjb25zdCBvbGRDb25zdHJ1Y3RvcnMgPSB0aGlzLmV4dEF0dHJzLmZpbHRlcihleHRBdHRy
ID0+IGV4dEF0dHIubmFtZSA9PT0gIkNvbnN0cnVjdG9yIik7CisgICAgY29uc3Qgb2xkQ29uc3Ry
dWN0b3JzID0gdGhpcy5leHRBdHRycy5maWx0ZXIoCisgICAgICAoZXh0QXR0cikgPT4gZXh0QXR0
ci5uYW1lID09PSAiQ29uc3RydWN0b3IiCisgICAgKTsKICAgICBmb3IgKGNvbnN0IGNvbnN0cnVj
dG9yIG9mIG9sZENvbnN0cnVjdG9ycykgewogICAgICAgY29uc3QgbWVzc2FnZSA9IGBDb25zdHJ1
Y3RvcnMgc2hvdWxkIG5vdyBiZSByZXByZXNlbnRlZCBhcyBhIFxgY29uc3RydWN0b3IoKVxgIG9w
ZXJhdGlvbiBvbiB0aGUgaW50ZXJmYWNlIFwKIGluc3RlYWQgb2YgXGBbQ29uc3RydWN0b3JdXGAg
ZXh0ZW5kZWQgYXR0cmlidXRlLiBSZWZlciB0byB0aGUgXAogW1dlYklETCBzcGVjIHNlY3Rpb24g
b24gY29uc3RydWN0b3Igb3BlcmF0aW9uc10oaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlk
bC8jaWRsLWNvbnN0cnVjdG9ycykgXAogZm9yIG1vcmUgaW5mb3JtYXRpb24uYDsKLSAgICAgIHlp
ZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1sidmFsaWRh
dGlvbkVycm9yIl0pKGNvbnN0cnVjdG9yLnRva2Vucy5uYW1lLCB0aGlzLCAiY29uc3RydWN0b3It
bWVtYmVyIiwgbWVzc2FnZSwgewotICAgICAgICBhdXRvZml4OiBhdXRvZml4Q29uc3RydWN0b3Io
dGhpcywgY29uc3RydWN0b3IpCi0gICAgICB9KTsKKyAgICAgIHlpZWxkICgwLF9lcnJvcl9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLnZhbGlkYXRpb25FcnJvcikoCisgICAgICAgIGNv
bnN0cnVjdG9yLnRva2Vucy5uYW1lLAorICAgICAgICB0aGlzLAorICAgICAgICAiY29uc3RydWN0
b3ItbWVtYmVyIiwKKyAgICAgICAgbWVzc2FnZSwKKyAgICAgICAgeworICAgICAgICAgIGF1dG9m
aXg6IGF1dG9maXhDb25zdHJ1Y3Rvcih0aGlzLCBjb25zdHJ1Y3RvciksCisgICAgICAgIH0KKyAg
ICAgICk7CiAgICAgfQogCi0gICAgY29uc3QgaXNHbG9iYWwgPSB0aGlzLmV4dEF0dHJzLnNvbWUo
ZXh0QXR0ciA9PiBleHRBdHRyLm5hbWUgPT09ICJHbG9iYWwiKTsKKyAgICBjb25zdCBpc0dsb2Jh
bCA9IHRoaXMuZXh0QXR0cnMuc29tZSgoZXh0QXR0cikgPT4gZXh0QXR0ci5uYW1lID09PSAiR2xv
YmFsIik7CiAgICAgaWYgKGlzR2xvYmFsKSB7Ci0gICAgICBjb25zdCBmYWN0b3J5RnVuY3Rpb25z
ID0gdGhpcy5leHRBdHRycy5maWx0ZXIoZXh0QXR0ciA9PiBleHRBdHRyLm5hbWUgPT09ICJMZWdh
Y3lGYWN0b3J5RnVuY3Rpb24iKTsKKyAgICAgIGNvbnN0IGZhY3RvcnlGdW5jdGlvbnMgPSB0aGlz
LmV4dEF0dHJzLmZpbHRlcigKKyAgICAgICAgKGV4dEF0dHIpID0+IGV4dEF0dHIubmFtZSA9PT0g
IkxlZ2FjeUZhY3RvcnlGdW5jdGlvbiIKKyAgICAgICk7CiAgICAgICBmb3IgKGNvbnN0IG5hbWVk
IG9mIGZhY3RvcnlGdW5jdGlvbnMpIHsKICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBJbnRlcmZh
Y2VzIG1hcmtlZCBhcyBcYFtHbG9iYWxdXGAgY2Fubm90IGhhdmUgZmFjdG9yeSBmdW5jdGlvbnMu
YDsKLSAgICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfNl9fWyJ2YWxpZGF0aW9uRXJyb3IiXSkobmFtZWQudG9rZW5zLm5hbWUsIHRoaXMsICJuby1j
b25zdHJ1Y3RpYmxlLWdsb2JhbCIsIG1lc3NhZ2UpOworICAgICAgICB5aWVsZCAoMCxfZXJyb3Jf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy52YWxpZGF0aW9uRXJyb3IpKAorICAgICAg
ICAgIG5hbWVkLnRva2Vucy5uYW1lLAorICAgICAgICAgIHRoaXMsCisgICAgICAgICAgIm5vLWNv
bnN0cnVjdGlibGUtZ2xvYmFsIiwKKyAgICAgICAgICBtZXNzYWdlCisgICAgICAgICk7CiAgICAg
ICB9CiAKLSAgICAgIGNvbnN0IGNvbnN0cnVjdG9ycyA9IHRoaXMubWVtYmVycy5maWx0ZXIobWVt
YmVyID0+IG1lbWJlci50eXBlID09PSAiY29uc3RydWN0b3IiKTsKKyAgICAgIGNvbnN0IGNvbnN0
cnVjdG9ycyA9IHRoaXMubWVtYmVycy5maWx0ZXIoCisgICAgICAgIChtZW1iZXIpID0+IG1lbWJl
ci50eXBlID09PSAiY29uc3RydWN0b3IiCisgICAgICApOwogICAgICAgZm9yIChjb25zdCBuYW1l
ZCBvZiBjb25zdHJ1Y3RvcnMpIHsKICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBJbnRlcmZhY2Vz
IG1hcmtlZCBhcyBcYFtHbG9iYWxdXGAgY2Fubm90IGhhdmUgY29uc3RydWN0b3JzLmA7Ci0gICAg
ICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1si
dmFsaWRhdGlvbkVycm9yIl0pKG5hbWVkLnRva2Vucy5iYXNlLCB0aGlzLCAibm8tY29uc3RydWN0
aWJsZS1nbG9iYWwiLCBtZXNzYWdlKTsKKyAgICAgICAgeWllbGQgKDAsX2Vycm9yX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV82X18udmFsaWRhdGlvbkVycm9yKSgKKyAgICAgICAgICBuYW1l
ZC50b2tlbnMuYmFzZSwKKyAgICAgICAgICB0aGlzLAorICAgICAgICAgICJuby1jb25zdHJ1Y3Rp
YmxlLWdsb2JhbCIsCisgICAgICAgICAgbWVzc2FnZQorICAgICAgICApOwogICAgICAgfQogICAg
IH0KIAogICAgIHlpZWxkKiBzdXBlci52YWxpZGF0ZShkZWZzKTsKICAgICBpZiAoIXRoaXMucGFy
dGlhbCkgewotICAgICAgeWllbGQqIE9iamVjdChfdmFsaWRhdG9yc19pbnRlcmZhY2VfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX1siY2hlY2tJbnRlcmZhY2VNZW1iZXJEdXBsaWNhdGlv
biJdKShkZWZzLCB0aGlzKTsKKyAgICAgIHlpZWxkKiAoMCxfdmFsaWRhdG9yc19pbnRlcmZhY2Vf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5jaGVja0ludGVyZmFjZU1lbWJlckR1cGxp
Y2F0aW9uKShkZWZzLCB0aGlzKTsKICAgICB9CiAgIH0KIH0KIAogZnVuY3Rpb24gYXV0b2ZpeENv
bnN0cnVjdG9yKGludGVyZmFjZURlZiwgY29uc3RydWN0b3JFeHRBdHRyKSB7Ci0gIGludGVyZmFj
ZURlZiA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fWyJh
dXRvUGFyZW50ZXIiXSkoaW50ZXJmYWNlRGVmKTsKKyAgaW50ZXJmYWNlRGVmID0gKDAsX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5hdXRvUGFyZW50ZXIpKGludGVyZmFj
ZURlZik7CiAgIHJldHVybiAoKSA9PiB7Ci0gICAgY29uc3QgaW5kZW50YXRpb24gPSBPYmplY3Qo
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1siZ2V0TGFzdEluZGVudGF0
aW9uIl0pKGludGVyZmFjZURlZi5leHRBdHRycy50b2tlbnMub3Blbi50cml2aWEpOwotICAgIGNv
bnN0IG1lbWJlckluZGVudCA9IGludGVyZmFjZURlZi5tZW1iZXJzLmxlbmd0aCA/Ci0gICAgICBP
YmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1siZ2V0TGFzdElu
ZGVudGF0aW9uIl0pKE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
NV9fWyJnZXRGaXJzdFRva2VuIl0pKGludGVyZmFjZURlZi5tZW1iZXJzWzBdKS50cml2aWEpIDoK
LSAgICAgIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fWyJn
ZXRNZW1iZXJJbmRlbnRhdGlvbiJdKShpbmRlbnRhdGlvbik7Ci0gICAgY29uc3QgY29uc3RydWN0
b3JPcCA9IF9jb25zdHJ1Y3Rvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fWyJDb25z
dHJ1Y3RvciJdLnBhcnNlKG5ldyBfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV85X19bIlRva2VuaXNlciJdKGBcbiR7bWVtYmVySW5kZW50fWNvbnN0cnVjdG9yKCk7YCkpOwot
ICAgIGNvbnN0cnVjdG9yT3AuZXh0QXR0cnMgPSBuZXcgX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX19bIkV4dGVuZGVkQXR0cmlidXRlcyJdKHt9KTsK
LSAgICBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1siYXV0
b1BhcmVudGVyIl0pKGNvbnN0cnVjdG9yT3ApLmFyZ3VtZW50cyA9IGNvbnN0cnVjdG9yRXh0QXR0
ci5hcmd1bWVudHM7Ci0KLSAgICBjb25zdCBleGlzdGluZ0luZGV4ID0gT2JqZWN0KF9oZWxwZXJz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19bImZpbmRMYXN0SW5kZXgiXSkoaW50ZXJm
YWNlRGVmLm1lbWJlcnMsIG0gPT4gbS50eXBlID09PSAiY29uc3RydWN0b3IiKTsKKyAgICBjb25z
dCBpbmRlbnRhdGlvbiA9ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81
X18uZ2V0TGFzdEluZGVudGF0aW9uKSgKKyAgICAgIGludGVyZmFjZURlZi5leHRBdHRycy50b2tl
bnMub3Blbi50cml2aWEKKyAgICApOworICAgIGNvbnN0IG1lbWJlckluZGVudCA9IGludGVyZmFj
ZURlZi5tZW1iZXJzLmxlbmd0aAorICAgICAgPyAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfNV9fLmdldExhc3RJbmRlbnRhdGlvbikoKDAsX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRGaXJzdFRva2VuKShpbnRlcmZhY2VEZWYubWVtYmVy
c1swXSkudHJpdmlhKQorICAgICAgOiAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfNV9fLmdldE1lbWJlckluZGVudGF0aW9uKShpbmRlbnRhdGlvbik7CisgICAgY29uc3Qg
Y29uc3RydWN0b3JPcCA9IF9jb25zdHJ1Y3Rvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
OF9fLkNvbnN0cnVjdG9yLnBhcnNlKAorICAgICAgbmV3IF90b2tlbmlzZXJfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzlfXy5Ub2tlbmlzZXIoYFxuJHttZW1iZXJJbmRlbnR9Y29uc3RydWN0
b3IoKTtgKQorICAgICk7CisgICAgY29uc3RydWN0b3JPcC5leHRBdHRycyA9IG5ldyBfZXh0ZW5k
ZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5FeHRlbmRlZEF0
dHJpYnV0ZXMoe30pOworICAgICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV81X18uYXV0b1BhcmVudGVyKShjb25zdHJ1Y3Rvck9wKS5hcmd1bWVudHMgPSBjb25zdHJ1Y3Rv
ckV4dEF0dHIuYXJndW1lbnRzOworCisgICAgY29uc3QgZXhpc3RpbmdJbmRleCA9ICgwLF9oZWxw
ZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZmluZExhc3RJbmRleCkoCisgICAg
ICBpbnRlcmZhY2VEZWYubWVtYmVycywKKyAgICAgIChtKSA9PiBtLnR5cGUgPT09ICJjb25zdHJ1
Y3RvciIKKyAgICApOwogICAgIGludGVyZmFjZURlZi5tZW1iZXJzLnNwbGljZShleGlzdGluZ0lu
ZGV4ICsgMSwgMCwgY29uc3RydWN0b3JPcCk7CiAKLSAgICBjb25zdCB7IGNsb3NlIH0gID0gaW50
ZXJmYWNlRGVmLnRva2VuczsKKyAgICBjb25zdCB7IGNsb3NlIH0gPSBpbnRlcmZhY2VEZWYudG9r
ZW5zOwogICAgIGlmICghY2xvc2UudHJpdmlhLmluY2x1ZGVzKCJcbiIpKSB7CiAgICAgICBjbG9z
ZS50cml2aWEgKz0gYFxuJHtpbmRlbnRhdGlvbn1gOwogICAgIH0KQEAgLTIyMTQsMTEgKzI3MTUs
MTIgQEAgZnVuY3Rpb24gYXV0b2ZpeENvbnN0cnVjdG9yKGludGVyZmFjZURlZiwgY29uc3RydWN0
b3JFeHRBdHRyKSB7CiAKIC8qKiovIH0pLAogLyogMjAgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1
bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgo
X191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18s
IF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3Jl
cXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRp
bmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQ29udGFp
bmVyIiwgZnVuY3Rpb24oKSB7IHJldHVybiBDb250YWluZXI7IH0pOworLyogaGFybW9ueSBleHBv
cnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhh
cm1vbnkgZXhwb3J0ICovICAgIkNvbnRhaW5lciI6ICgpID0+ICgvKiBiaW5kaW5nICovIENvbnRh
aW5lcikKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWly
ZV9fKDYpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDgpOwog
LyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwpAQCAtMjIzNCw3OSArMjczNiwxMTkg
QEAgZnVuY3Rpb24gaW5oZXJpdGFuY2UodG9rZW5pc2VyKSB7CiAgIGlmICghY29sb24pIHsKICAg
ICByZXR1cm4ge307CiAgIH0KLSAgY29uc3QgaW5oZXJpdGFuY2UgPSB0b2tlbmlzZXIuY29uc3Vt
ZSgiaWRlbnRpZmllciIpIHx8IHRva2VuaXNlci5lcnJvcigiSW5oZXJpdGFuY2UgbGFja3MgYSB0
eXBlIik7CisgIGNvbnN0IGluaGVyaXRhbmNlID0KKyAgICB0b2tlbmlzZXIuY29uc3VtZVR5cGUo
ImlkZW50aWZpZXIiKSB8fAorICAgIHRva2VuaXNlci5lcnJvcigiSW5oZXJpdGFuY2UgbGFja3Mg
YSB0eXBlIik7CiAgIHJldHVybiB7IGNvbG9uLCBpbmhlcml0YW5jZSB9OwogfQogCi1jbGFzcyBD
b250YWluZXIgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJC
YXNlIl0gewotICAgIC8qKgotICAgICAqIEB0ZW1wbGF0ZSBUCi0gICAgICogQHBhcmFtIHtpbXBv
cnQoIi4uL3Rva2VuaXNlci5qcyIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCi0gICAgICogQHBhcmFt
IHtUfSBpbnN0YW5jZQotICAgICAqIEBwYXJhbSB7Kn0gYXJncwotICAgICAqLwotICAgIHN0YXRp
YyBwYXJzZSh0b2tlbmlzZXIsIGluc3RhbmNlLCB7IHR5cGUsIGluaGVyaXRhYmxlLCBhbGxvd2Vk
TWVtYmVycyB9KSB7Ci0gICAgICBjb25zdCB7IHRva2VucyB9ID0gaW5zdGFuY2U7Ci0gICAgICB0
b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIikgfHwgdG9rZW5pc2Vy
LmVycm9yKGBNaXNzaW5nIG5hbWUgaW4gJHtpbnN0YW5jZS50eXBlfWApOwotICAgICAgdG9rZW5p
c2VyLmN1cnJlbnQgPSBpbnN0YW5jZTsKLSAgICAgIGluc3RhbmNlID0gT2JqZWN0KF9oZWxwZXJz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bImF1dG9QYXJlbnRlciJdKShpbnN0YW5j
ZSk7Ci0gICAgICBpZiAoaW5oZXJpdGFibGUpIHsKLSAgICAgICAgT2JqZWN0LmFzc2lnbih0b2tl
bnMsIGluaGVyaXRhbmNlKHRva2VuaXNlcikpOworY2xhc3MgQ29udGFpbmVyIGV4dGVuZHMgX2Jh
c2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5CYXNlIHsKKyAgLyoqCisgICAqIEB0
ZW1wbGF0ZSBUCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIuanMiKS5Ub2tlbmlz
ZXJ9IHRva2VuaXNlcgorICAgKiBAcGFyYW0ge1R9IGluc3RhbmNlCisgICAqIEBwYXJhbSB7Kn0g
YXJncworICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgaW5zdGFuY2UsIHsgdHlwZSwg
aW5oZXJpdGFibGUsIGFsbG93ZWRNZW1iZXJzIH0pIHsKKyAgICBjb25zdCB7IHRva2VucyB9ID0g
aW5zdGFuY2U7CisgICAgdG9rZW5zLm5hbWUgPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWVUeXBl
KCJpZGVudGlmaWVyIikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcihgTWlzc2luZyBuYW1lIGlu
ICR7aW5zdGFuY2UudHlwZX1gKTsKKyAgICB0b2tlbmlzZXIuY3VycmVudCA9IGluc3RhbmNlOwor
ICAgIGluc3RhbmNlID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJf
Xy5hdXRvUGFyZW50ZXIpKGluc3RhbmNlKTsKKyAgICBpZiAoaW5oZXJpdGFibGUpIHsKKyAgICAg
IE9iamVjdC5hc3NpZ24odG9rZW5zLCBpbmhlcml0YW5jZSh0b2tlbmlzZXIpKTsKKyAgICB9Cisg
ICAgdG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgieyIpIHx8IHRva2VuaXNlci5lcnJv
cihgQm9keWxlc3MgJHt0eXBlfWApOworICAgIGluc3RhbmNlLm1lbWJlcnMgPSBbXTsKKyAgICB3
aGlsZSAodHJ1ZSkgeworICAgICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIn0i
KTsKKyAgICAgIGlmICh0b2tlbnMuY2xvc2UpIHsKKyAgICAgICAgdG9rZW5zLnRlcm1pbmF0aW9u
ID0KKyAgICAgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8CisgICAgICAgICAgdG9rZW5p
c2VyLmVycm9yKGBNaXNzaW5nIHNlbWljb2xvbiBhZnRlciAke3R5cGV9YCk7CisgICAgICAgIHJl
dHVybiBpbnN0YW5jZS50aGlzOwogICAgICAgfQotICAgICAgdG9rZW5zLm9wZW4gPSB0b2tlbmlz
ZXIuY29uc3VtZSgieyIpIHx8IHRva2VuaXNlci5lcnJvcihgQm9keWxlc3MgJHt0eXBlfWApOwot
ICAgICAgaW5zdGFuY2UubWVtYmVycyA9IFtdOwotICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAg
ICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIn0iKTsKLSAgICAgICAgaWYgKHRv
a2Vucy5jbG9zZSkgewotICAgICAgICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5j
b25zdW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIHNlbWljb2xvbiBhZnRlciAk
e3R5cGV9YCk7Ci0gICAgICAgICAgcmV0dXJuIGluc3RhbmNlLnRoaXM7Ci0gICAgICAgIH0KLSAg
ICAgICAgY29uc3QgZWEgPSBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMV9fWyJFeHRlbmRlZEF0dHJpYnV0ZXMiXS5wYXJzZSh0b2tlbmlzZXIpOwotICAg
ICAgICBsZXQgbWVtOwotICAgICAgICBmb3IgKGNvbnN0IFtwYXJzZXIsIC4uLmFyZ3NdIG9mIGFs
bG93ZWRNZW1iZXJzKSB7Ci0gICAgICAgICAgbWVtID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8yX19bImF1dG9QYXJlbnRlciJdKShwYXJzZXIodG9rZW5pc2Vy
LCAuLi5hcmdzKSk7Ci0gICAgICAgICAgaWYgKG1lbSkgewotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmICghbWVtKSB7Ci0gICAgICAgICAgdG9r
ZW5pc2VyLmVycm9yKCJVbmtub3duIG1lbWJlciIpOworICAgICAgY29uc3QgZWEgPSBfZXh0ZW5k
ZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkV4dGVuZGVkQXR0
cmlidXRlcy5wYXJzZSh0b2tlbmlzZXIpOworICAgICAgbGV0IG1lbTsKKyAgICAgIGZvciAoY29u
c3QgW3BhcnNlciwgLi4uYXJnc10gb2YgYWxsb3dlZE1lbWJlcnMpIHsKKyAgICAgICAgbWVtID0g
KDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5hdXRvUGFyZW50ZXIp
KHBhcnNlcih0b2tlbmlzZXIsIC4uLmFyZ3MpKTsKKyAgICAgICAgaWYgKG1lbSkgeworICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIG1lbS5leHRBdHRycyA9IGVhOwotICAgICAg
ICBpbnN0YW5jZS5tZW1iZXJzLnB1c2gobWVtLnRoaXMpOwogICAgICAgfQorICAgICAgaWYgKCFt
ZW0pIHsKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJVbmtub3duIG1lbWJlciIpOworICAgICAg
fQorICAgICAgbWVtLmV4dEF0dHJzID0gZWE7CisgICAgICBpbnN0YW5jZS5tZW1iZXJzLnB1c2go
bWVtLnRoaXMpOwogICAgIH0KKyAgfQogCi0gICAgZ2V0IHBhcnRpYWwoKSB7Ci0gICAgICByZXR1
cm4gISF0aGlzLnRva2Vucy5wYXJ0aWFsOwotICAgIH0KLSAgICBnZXQgbmFtZSgpIHsKLSAgICAg
IHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1si
dW5lc2NhcGUiXSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7CisgIGdldCBwYXJ0aWFsKCkgewor
ICAgIHJldHVybiAhIXRoaXMudG9rZW5zLnBhcnRpYWw7CisgIH0KKyAgZ2V0IG5hbWUoKSB7Cisg
ICAgcmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udW5l
c2NhcGUpKHRoaXMudG9rZW5zLm5hbWUudmFsdWUpOworICB9CisgIGdldCBpbmhlcml0YW5jZSgp
IHsKKyAgICBpZiAoIXRoaXMudG9rZW5zLmluaGVyaXRhbmNlKSB7CisgICAgICByZXR1cm4gbnVs
bDsKICAgICB9Ci0gICAgZ2V0IGluaGVyaXRhbmNlKCkgewotICAgICAgaWYgKCF0aGlzLnRva2Vu
cy5pbmhlcml0YW5jZSkgewotICAgICAgICByZXR1cm4gbnVsbDsKKyAgICByZXR1cm4gKDAsX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy51bmVzY2FwZSkodGhpcy50b2tl
bnMuaW5oZXJpdGFuY2UudmFsdWUpOworICB9CisKKyAgKnZhbGlkYXRlKGRlZnMpIHsKKyAgICBm
b3IgKGNvbnN0IG1lbWJlciBvZiB0aGlzLm1lbWJlcnMpIHsKKyAgICAgIGlmIChtZW1iZXIudmFs
aWRhdGUpIHsKKyAgICAgICAgeWllbGQqIG1lbWJlci52YWxpZGF0ZShkZWZzKTsKICAgICAgIH0K
LSAgICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzJfX1sidW5lc2NhcGUiXSkodGhpcy50b2tlbnMuaW5oZXJpdGFuY2UudmFsdWUpOwogICAgIH0K
KyAgfQogCi0gICAgKnZhbGlkYXRlKGRlZnMpIHsKLSAgICAgIGZvciAoY29uc3QgbWVtYmVyIG9m
IHRoaXMubWVtYmVycykgewotICAgICAgICBpZiAobWVtYmVyLnZhbGlkYXRlKSB7Ci0gICAgICAg
ICAgeWllbGQqIG1lbWJlci52YWxpZGF0ZShkZWZzKTsKLSAgICAgICAgfQorICAvKiogQHBhcmFt
IHtpbXBvcnQoIi4uL3dyaXRlci5qcyIpLldyaXRlcn0gdyAqLworICB3cml0ZSh3KSB7CisgICAg
Y29uc3QgaW5oZXJpdGFuY2UgPSAoKSA9PiB7CisgICAgICBpZiAoIXRoaXMudG9rZW5zLmluaGVy
aXRhbmNlKSB7CisgICAgICAgIHJldHVybiAiIjsKICAgICAgIH0KLSAgICB9CisgICAgICByZXR1
cm4gdy50cy53cmFwKFsKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5jb2xvbiksCisgICAg
ICAgIHcudHMudHJpdmlhKHRoaXMudG9rZW5zLmluaGVyaXRhbmNlLnRyaXZpYSksCisgICAgICAg
IHcudHMuaW5oZXJpdGFuY2UoCisgICAgICAgICAgdy5yZWZlcmVuY2UodGhpcy50b2tlbnMuaW5o
ZXJpdGFuY2UudmFsdWUsIHsgY29udGV4dDogdGhpcyB9KQorICAgICAgICApLAorICAgICAgXSk7
CisgICAgfTsKKworICAgIHJldHVybiB3LnRzLmRlZmluaXRpb24oCisgICAgICB3LnRzLndyYXAo
WworICAgICAgICB0aGlzLmV4dEF0dHJzLndyaXRlKHcpLAorICAgICAgICB3LnRva2VuKHRoaXMu
dG9rZW5zLmNhbGxiYWNrKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5wYXJ0aWFsKSwK
KyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5iYXNlKSwKKyAgICAgICAgdy50b2tlbih0aGlz
LnRva2Vucy5taXhpbiksCisgICAgICAgIHcubmFtZV90b2tlbih0aGlzLnRva2Vucy5uYW1lLCB7
IGRhdGE6IHRoaXMgfSksCisgICAgICAgIGluaGVyaXRhbmNlKCksCisgICAgICAgIHcudG9rZW4o
dGhpcy50b2tlbnMub3BlbiksCisgICAgICAgIHcudHMud3JhcCh0aGlzLm1lbWJlcnMubWFwKCht
KSA9PiBtLndyaXRlKHcpKSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuY2xvc2UpLAor
ICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAgICAgIF0pLAorICAg
ICAgeyBkYXRhOiB0aGlzIH0KKyAgICApOwogICB9Cit9CiAKIAogLyoqKi8gfSksCiAvKiAyMSAq
LwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNr
X3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVf
XywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNl
IHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0v
KiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2Vi
cGFja19leHBvcnRzX18sICJDb25zdGFudCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gQ29uc3RhbnQ7
IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFj
a19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIkNvbnN0YW50IjogKCkgPT4g
KC8qIGJpbmRpbmcgKi8gQ29uc3RhbnQpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhh
cm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdHlw
ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1
KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKQEAgLTIzMTQsNyArMjg1Niw3
IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAogCiAKLWNs
YXNzIENvbnN0YW50IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
X1siQmFzZSJdIHsKK2NsYXNzIENvbnN0YW50IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfXy5CYXNlIHsKICAgLyoqCiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90
b2tlbmlzZXIuanMiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgogICAgKi8KQEAgLTIzMjUsMjEgKzI4
NjcsMjkgQEAgY2xhc3MgQ29uc3RhbnQgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgIGlmICghdG9rZW5zLmJhc2UpIHsKICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgbGV0IGlkbFR5cGUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzJfX1sicHJpbWl0aXZlX3R5cGUiXSkodG9rZW5pc2VyKTsKKyAg
ICBsZXQgaWRsVHlwZSA9ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8y
X18ucHJpbWl0aXZlX3R5cGUpKHRva2VuaXNlcik7CiAgICAgaWYgKCFpZGxUeXBlKSB7Ci0gICAg
ICBjb25zdCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiKSB8fCB0b2tlbmlz
ZXIuZXJyb3IoIkNvbnN0IGxhY2tzIGEgdHlwZSIpOwotICAgICAgaWRsVHlwZSA9IG5ldyBfdHlw
ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJUeXBlIl0oeyBzb3VyY2U6IHRva2Vu
aXNlci5zb3VyY2UsIHRva2VuczogeyBiYXNlIH0gfSk7CisgICAgICBjb25zdCBiYXNlID0KKyAg
ICAgICAgdG9rZW5pc2VyLmNvbnN1bWVUeXBlKCJpZGVudGlmaWVyIikgfHwKKyAgICAgICAgdG9r
ZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyBhIHR5cGUiKTsKKyAgICAgIGlkbFR5cGUgPSBuZXcg
X3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5UeXBlKHsgc291cmNlOiB0b2tl
bmlzZXIuc291cmNlLCB0b2tlbnM6IHsgYmFzZSB9IH0pOwogICAgIH0KICAgICBpZiAodG9rZW5p
c2VyLnByb2JlKCI/IikpIHsKICAgICAgIHRva2VuaXNlci5lcnJvcigiVW5leHBlY3RlZCBudWxs
YWJsZSBjb25zdGFudCB0eXBlIik7CiAgICAgfQogICAgIGlkbFR5cGUudHlwZSA9ICJjb25zdC10
eXBlIjsKLSAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIikg
fHwgdG9rZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyBhIG5hbWUiKTsKLSAgICB0b2tlbnMuYXNz
aWduID0gdG9rZW5pc2VyLmNvbnN1bWUoIj0iKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNvbnN0IGxh
Y2tzIHZhbHVlIGFzc2lnbm1lbnQiKTsKLSAgICB0b2tlbnMudmFsdWUgPSBPYmplY3QoX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siY29uc3RfdmFsdWUiXSkodG9rZW5p
c2VyKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNvbnN0IGxhY2tzIGEgdmFsdWUiKTsKLSAgICB0b2tl
bnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRva2VuaXNlci5lcnJv
cigiVW50ZXJtaW5hdGVkIGNvbnN0LCBleHBlY3RlZCBgO2AiKTsKKyAgICB0b2tlbnMubmFtZSA9
CisgICAgICB0b2tlbmlzZXIuY29uc3VtZVR5cGUoImlkZW50aWZpZXIiKSB8fAorICAgICAgdG9r
ZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyBhIG5hbWUiKTsKKyAgICB0b2tlbnMuYXNzaWduID0K
KyAgICAgIHRva2VuaXNlci5jb25zdW1lKCI9IikgfHwgdG9rZW5pc2VyLmVycm9yKCJDb25zdCBs
YWNrcyB2YWx1ZSBhc3NpZ25tZW50Iik7CisgICAgdG9rZW5zLnZhbHVlID0KKyAgICAgICgwLF9o
ZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uY29uc3RfdmFsdWUpKHRva2Vu
aXNlcikgfHwgdG9rZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyBhIHZhbHVlIik7CisgICAgdG9r
ZW5zLnRlcm1pbmF0aW9uID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwKKyAgICAg
IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGNvbnN0LCBleHBlY3RlZCBgO2AiKTsKICAg
ICBjb25zdCByZXQgPSBuZXcgQ29uc3RhbnQoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRv
a2VucyB9KTsKLSAgICBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzJfX1siYXV0b1BhcmVudGVyIl0pKHJldCkuaWRsVHlwZSA9IGlkbFR5cGU7CisgICAgKDAsX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5hdXRvUGFyZW50ZXIpKHJldCku
aWRsVHlwZSA9IGlkbFR5cGU7CiAgICAgcmV0dXJuIHJldDsKICAgfQogCkBAIC0yMzQ3LDQyICsy
ODk3LDYzIEBAIGNsYXNzIENvbnN0YW50IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICByZXR1cm4gImNvbnN0IjsKICAgfQogICBnZXQg
bmFtZSgpIHsKLSAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8yX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLm5hbWUudmFsdWUpOworICAgIHJl
dHVybiAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnVuZXNjYXBl
KSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKICAgfQogICBnZXQgdmFsdWUoKSB7Ci0gICAgcmV0
dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJjb25z
dF9kYXRhIl0pKHRoaXMudG9rZW5zLnZhbHVlKTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5jb25zdF9kYXRhKSh0aGlzLnRva2Vucy52YWx1
ZSk7CisgIH0KKworICAvKiogQHBhcmFtIHtpbXBvcnQoIi4uL3dyaXRlci5qcyIpLldyaXRlcn0g
dyAqLworICB3cml0ZSh3KSB7CisgICAgY29uc3QgeyBwYXJlbnQgfSA9IHRoaXM7CisgICAgcmV0
dXJuIHcudHMuZGVmaW5pdGlvbigKKyAgICAgIHcudHMud3JhcChbCisgICAgICAgIHRoaXMuZXh0
QXR0cnMud3JpdGUodyksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuYmFzZSksCisgICAg
ICAgIHcudHMudHlwZSh0aGlzLmlkbFR5cGUud3JpdGUodykpLAorICAgICAgICB3Lm5hbWVfdG9r
ZW4odGhpcy50b2tlbnMubmFtZSwgeyBkYXRhOiB0aGlzLCBwYXJlbnQgfSksCisgICAgICAgIHcu
dG9rZW4odGhpcy50b2tlbnMuYXNzaWduKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy52
YWx1ZSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMudGVybWluYXRpb24pLAorICAgICAg
XSksCisgICAgICB7IGRhdGE6IHRoaXMsIHBhcmVudCB9CisgICAgKTsKICAgfQogfQogCiAKIC8q
KiovIH0pLAogLyogMjIgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBv
cnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19f
X3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJl
X18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFj
a19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19y
ZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiSXRlcmFibGVMaWtlIiwgZnVuY3Rpb24o
KSB7IHJldHVybiBJdGVyYWJsZUxpa2U7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJw
YWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0
ICovICAgIkl0ZXJhYmxlTGlrZSI6ICgpID0+ICgvKiBiaW5kaW5nICovIEl0ZXJhYmxlTGlrZSkK
Ky8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYp
OwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwogCiAKIAotY2xhc3MgSXRlcmFi
bGVMaWtlIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFz
ZSJdIHsKK2NsYXNzIEl0ZXJhYmxlTGlrZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9r
ZW5pc2VyLmpzIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCiAgIHN0YXRpYyBwYXJzZSh0
b2tlbmlzZXIpIHsKICAgICBjb25zdCBzdGFydF9wb3NpdGlvbiA9IHRva2VuaXNlci5wb3NpdGlv
bjsKICAgICBjb25zdCB0b2tlbnMgPSB7fTsKLSAgICBjb25zdCByZXQgPSBPYmplY3QoX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siYXV0b1BhcmVudGVyIl0pKG5ldyBJ
dGVyYWJsZUxpa2UoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSk7CisgICAg
Y29uc3QgcmV0ID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5h
dXRvUGFyZW50ZXIpKAorICAgICAgbmV3IEl0ZXJhYmxlTGlrZSh7IHNvdXJjZTogdG9rZW5pc2Vy
LnNvdXJjZSwgdG9rZW5zIH0pCisgICAgKTsKICAgICB0b2tlbnMucmVhZG9ubHkgPSB0b2tlbmlz
ZXIuY29uc3VtZSgicmVhZG9ubHkiKTsKICAgICBpZiAoIXRva2Vucy5yZWFkb25seSkgewogICAg
ICAgdG9rZW5zLmFzeW5jID0gdG9rZW5pc2VyLmNvbnN1bWUoImFzeW5jIik7CiAgICAgfQotICAg
IHRva2Vucy5iYXNlID0KLSAgICAgIHRva2Vucy5yZWFkb25seSA/IHRva2VuaXNlci5jb25zdW1l
KCJtYXBsaWtlIiwgInNldGxpa2UiKSA6Ci0gICAgICB0b2tlbnMuYXN5bmMgPyB0b2tlbmlzZXIu
Y29uc3VtZSgiaXRlcmFibGUiKSA6Ci0gICAgICB0b2tlbmlzZXIuY29uc3VtZSgiaXRlcmFibGUi
LCAibWFwbGlrZSIsICJzZXRsaWtlIik7CisgICAgdG9rZW5zLmJhc2UgPSB0b2tlbnMucmVhZG9u
bHkKKyAgICAgID8gdG9rZW5pc2VyLmNvbnN1bWUoIm1hcGxpa2UiLCAic2V0bGlrZSIpCisgICAg
ICA6IHRva2Vucy5hc3luYworICAgICAgPyB0b2tlbmlzZXIuY29uc3VtZSgiaXRlcmFibGUiKQor
ICAgICAgOiB0b2tlbmlzZXIuY29uc3VtZSgiaXRlcmFibGUiLCAibWFwbGlrZSIsICJzZXRsaWtl
Iik7CiAgICAgaWYgKCF0b2tlbnMuYmFzZSkgewogICAgICAgdG9rZW5pc2VyLnVuY29uc3VtZShz
dGFydF9wb3NpdGlvbik7CiAgICAgICByZXR1cm47CkBAIC0yMzkzLDM0ICsyOTY0LDQzIEBAIGNs
YXNzIEl0ZXJhYmxlTGlrZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX19bIkJhc2UiXSB7CiAgICAgY29uc3Qgc2Vjb25kVHlwZUFsbG93ZWQgPSBzZWNvbmRUeXBl
UmVxdWlyZWQgfHwgdHlwZSA9PT0gIml0ZXJhYmxlIjsKICAgICBjb25zdCBhcmd1bWVudEFsbG93
ZWQgPSByZXQuYXN5bmMgJiYgdHlwZSA9PT0gIml0ZXJhYmxlIjsKIAotICAgIHRva2Vucy5vcGVu
ID0gdG9rZW5pc2VyLmNvbnN1bWUoIjwiKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE1pc3NpbmcgbGVz
cy10aGFuIHNpZ24gXGA8XGAgaW4gJHt0eXBlfSBkZWNsYXJhdGlvbmApOwotICAgIGNvbnN0IGZp
cnN0ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5
cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRva2VuaXNlcikgfHwgdG9rZW5pc2VyLmVy
cm9yKGBNaXNzaW5nIGEgdHlwZSBhcmd1bWVudCBpbiAke3R5cGV9IGRlY2xhcmF0aW9uYCk7Cisg
ICAgdG9rZW5zLm9wZW4gPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIjwiKSB8fAorICAgICAg
dG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIGxlc3MtdGhhbiBzaWduIFxgPFxgIGluICR7dHlwZX0g
ZGVjbGFyYXRpb25gKTsKKyAgICBjb25zdCBmaXJzdCA9CisgICAgICAoMCxfaGVscGVyc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVz
KSh0b2tlbmlzZXIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJyb3IoYE1pc3NpbmcgYSB0eXBlIGFy
Z3VtZW50IGluICR7dHlwZX0gZGVjbGFyYXRpb25gKTsKICAgICByZXQuaWRsVHlwZSA9IFtmaXJz
dF07CiAgICAgcmV0LmFyZ3VtZW50cyA9IFtdOwogCiAgICAgaWYgKHNlY29uZFR5cGVBbGxvd2Vk
KSB7CiAgICAgICBmaXJzdC50b2tlbnMuc2VwYXJhdG9yID0gdG9rZW5pc2VyLmNvbnN1bWUoIiwi
KTsKICAgICAgIGlmIChmaXJzdC50b2tlbnMuc2VwYXJhdG9yKSB7Ci0gICAgICAgIHJldC5pZGxU
eXBlLnB1c2goT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19b
InR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRva2VuaXNlcikpOwotICAgICAgfQot
ICAgICAgZWxzZSBpZiAoc2Vjb25kVHlwZVJlcXVpcmVkKSB7CisgICAgICAgIHJldC5pZGxUeXBl
LnB1c2goKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50eXBlX3dp
dGhfZXh0ZW5kZWRfYXR0cmlidXRlcykodG9rZW5pc2VyKSk7CisgICAgICB9IGVsc2UgaWYgKHNl
Y29uZFR5cGVSZXF1aXJlZCkgewogICAgICAgICB0b2tlbmlzZXIuZXJyb3IoYE1pc3Npbmcgc2Vj
b25kIHR5cGUgYXJndW1lbnQgaW4gJHt0eXBlfSBkZWNsYXJhdGlvbmApOwogICAgICAgfQogICAg
IH0KIAotICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCI+IikgfHwgdG9rZW5p
c2VyLmVycm9yKGBNaXNzaW5nIGdyZWF0ZXItdGhhbiBzaWduIFxgPlxgIGluICR7dHlwZX0gZGVj
bGFyYXRpb25gKTsKKyAgICB0b2tlbnMuY2xvc2UgPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWUo
Ij4iKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIGdyZWF0ZXItdGhhbiBzaWdu
IFxgPlxgIGluICR7dHlwZX0gZGVjbGFyYXRpb25gKTsKIAogICAgIGlmICh0b2tlbmlzZXIucHJv
YmUoIigiKSkgewogICAgICAgaWYgKGFyZ3VtZW50QWxsb3dlZCkgewogICAgICAgICB0b2tlbnMu
YXJnc09wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgiKCIpOwotICAgICAgICByZXQuYXJndW1lbnRz
LnB1c2goLi4uT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19b
ImFyZ3VtZW50X2xpc3QiXSkodG9rZW5pc2VyKSk7Ci0gICAgICAgIHRva2Vucy5hcmdzQ2xvc2Ug
PSB0b2tlbmlzZXIuY29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVk
IGFzeW5jIGl0ZXJhYmxlIGFyZ3VtZW50IGxpc3QiKTsKKyAgICAgICAgcmV0LmFyZ3VtZW50cy5w
dXNoKC4uLigwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uYXJndW1l
bnRfbGlzdCkodG9rZW5pc2VyKSk7CisgICAgICAgIHRva2Vucy5hcmdzQ2xvc2UgPQorICAgICAg
ICAgIHRva2VuaXNlci5jb25zdW1lKCIpIikgfHwKKyAgICAgICAgICB0b2tlbmlzZXIuZXJyb3Io
IlVudGVybWluYXRlZCBhc3luYyBpdGVyYWJsZSBhcmd1bWVudCBsaXN0Iik7CiAgICAgICB9IGVs
c2UgewogICAgICAgICB0b2tlbmlzZXIuZXJyb3IoYEFyZ3VtZW50cyBhcmUgb25seSBhbGxvd2Vk
IGZvciBcYGFzeW5jIGl0ZXJhYmxlXGBgKTsKICAgICAgIH0KICAgICB9CiAKLSAgICB0b2tlbnMu
dGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRva2VuaXNlci5lcnJvcihg
TWlzc2luZyBzZW1pY29sb24gYWZ0ZXIgJHt0eXBlfSBkZWNsYXJhdGlvbmApOworICAgIHRva2Vu
cy50ZXJtaW5hdGlvbiA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8CisgICAgICB0
b2tlbmlzZXIuZXJyb3IoYE1pc3Npbmcgc2VtaWNvbG9uIGFmdGVyICR7dHlwZX0gZGVjbGFyYXRp
b25gKTsKIAogICAgIHJldHVybiByZXQudGhpczsKICAgfQpAQCAtMjQ0MywyMyArMzAyMyw0NCBA
QCBjbGFzcyBJdGVyYWJsZUxpa2UgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fWyJCYXNlIl0gewogICAgICAgeWllbGQqIGFyZ3VtZW50LnZhbGlkYXRlKGRlZnMp
OwogICAgIH0KICAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3Jp
dGVyfSB3ICovCisgIHdyaXRlKHcpIHsKKyAgICByZXR1cm4gdy50cy5kZWZpbml0aW9uKAorICAg
ICAgdy50cy53cmFwKFsKKyAgICAgICAgdGhpcy5leHRBdHRycy53cml0ZSh3KSwKKyAgICAgICAg
dy50b2tlbih0aGlzLnRva2Vucy5yZWFkb25seSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tl
bnMuYXN5bmMpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLmJhc2UsIHcudHMuZ2VuZXJp
YyksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMub3BlbiksCisgICAgICAgIHcudHMud3Jh
cCh0aGlzLmlkbFR5cGUubWFwKCh0KSA9PiB0LndyaXRlKHcpKSksCisgICAgICAgIHcudG9rZW4o
dGhpcy50b2tlbnMuY2xvc2UpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLmFyZ3NPcGVu
KSwKKyAgICAgICAgdy50cy53cmFwKHRoaXMuYXJndW1lbnRzLm1hcCgoYXJnKSA9PiBhcmcud3Jp
dGUodykpKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5hcmdzQ2xvc2UpLAorICAgICAg
ICB3LnRva2VuKHRoaXMudG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAgICAgIF0pLAorICAgICAgeyBk
YXRhOiB0aGlzLCBwYXJlbnQ6IHRoaXMucGFyZW50IH0KKyAgICApOworICB9CiB9CiAKIAogLyoq
Ki8gfSksCiAvKiAyMyAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9y
dHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19f
d2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVf
XykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNr
X2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJjaGVja0ludGVyZmFjZU1lbWJlckR1cGxp
Y2F0aW9uIiwgZnVuY3Rpb24oKSB7IHJldHVybiBjaGVja0ludGVyZmFjZU1lbWJlckR1cGxpY2F0
aW9uOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dl
YnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJjaGVja0ludGVyZmFj
ZU1lbWJlckR1cGxpY2F0aW9uIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gY2hlY2tJbnRlcmZhY2VN
ZW1iZXJEdXBsaWNhdGlvbikKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBp
bXBvcnQgKi8gdmFyIF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193
ZWJwYWNrX3JlcXVpcmVfXygzKTsKIC8vIEB0cy1jaGVjawogCiAKIAogZnVuY3Rpb24qIGNoZWNr
SW50ZXJmYWNlTWVtYmVyRHVwbGljYXRpb24oZGVmcywgaSkgewotICBjb25zdCBvcE5hbWVzID0g
bmV3IFNldChnZXRPcGVyYXRpb25zKGkpLm1hcChvcCA9PiBvcC5uYW1lKSk7CisgIGNvbnN0IG9w
TmFtZXMgPSBuZXcgU2V0KGdldE9wZXJhdGlvbnMoaSkubWFwKChvcCkgPT4gb3AubmFtZSkpOwog
ICBjb25zdCBwYXJ0aWFscyA9IGRlZnMucGFydGlhbHMuZ2V0KGkubmFtZSkgfHwgW107CiAgIGNv
bnN0IG1peGlucyA9IGRlZnMubWl4aW5NYXAuZ2V0KGkubmFtZSkgfHwgW107CiAgIGZvciAoY29u
c3QgZXh0IG9mIFsuLi5wYXJ0aWFscywgLi4ubWl4aW5zXSkgewpAQCAtMjQ3NSwzMSArMzA3Niwz
NiBAQCBmdW5jdGlvbiogY2hlY2tJbnRlcmZhY2VNZW1iZXJEdXBsaWNhdGlvbihkZWZzLCBpKSB7
CiAgICAgICBjb25zdCB7IG5hbWUgfSA9IGFkZGl0aW9uOwogICAgICAgaWYgKG5hbWUgJiYgZXhp
c3RpbmdzLmhhcyhuYW1lKSkgewogICAgICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSBvcGVyYXRp
b24gIiR7bmFtZX0iIGhhcyBhbHJlYWR5IGJlZW4gZGVmaW5lZCBmb3IgdGhlIGJhc2UgaW50ZXJm
YWNlICIke2Jhc2UubmFtZX0iIGVpdGhlciBpbiBpdHNlbGYgb3IgaW4gYSBtaXhpbmA7Ci0gICAg
ICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1si
dmFsaWRhdGlvbkVycm9yIl0pKGFkZGl0aW9uLnRva2Vucy5uYW1lLCBleHQsICJuby1jcm9zcy1v
dmVybG9hZCIsIG1lc3NhZ2UpOworICAgICAgICB5aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfXy52YWxpZGF0aW9uRXJyb3IpKAorICAgICAgICAgIGFkZGl0aW9u
LnRva2Vucy5uYW1lLAorICAgICAgICAgIGV4dCwKKyAgICAgICAgICAibm8tY3Jvc3Mtb3Zlcmxv
YWQiLAorICAgICAgICAgIG1lc3NhZ2UKKyAgICAgICAgKTsKICAgICAgIH0KICAgICB9CiAgIH0K
IAogICBmdW5jdGlvbiBnZXRPcGVyYXRpb25zKGkpIHsKLSAgICByZXR1cm4gaS5tZW1iZXJzCi0g
ICAgICAuZmlsdGVyKCh7dHlwZX0pID0+IHR5cGUgPT09ICJvcGVyYXRpb24iKTsKKyAgICByZXR1
cm4gaS5tZW1iZXJzLmZpbHRlcigoeyB0eXBlIH0pID0+IHR5cGUgPT09ICJvcGVyYXRpb24iKTsK
ICAgfQogfQogCiAKIC8qKiovIH0pLAogLyogMjQgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUs
IF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191
bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9f
d2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVp
cmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcp
ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQ29uc3RydWN0
b3IiLCBmdW5jdGlvbigpIHsgcmV0dXJuIENvbnN0cnVjdG9yOyB9KTsKKy8qIGhhcm1vbnkgZXhw
b3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBo
YXJtb255IGV4cG9ydCAqLyAgICJDb25zdHJ1Y3RvciI6ICgpID0+ICgvKiBiaW5kaW5nICovIENv
bnN0cnVjdG9yKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAq
LyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oNik7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CiAKIAogCi1j
bGFzcyBDb25zdHJ1Y3RvciBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX19bIkJhc2UiXSB7CitjbGFzcyBDb25zdHJ1Y3RvciBleHRlbmRzIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9y
dCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCkBAIC0yNTEwLDEy
ICszMTE2LDE3IEBAIGNsYXNzIENvbnN0cnVjdG9yIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICB9CiAgICAgLyoqIEB0eXBlIHtCYXNl
WyJ0b2tlbnMiXX0gKi8KICAgICBjb25zdCB0b2tlbnMgPSB7IGJhc2UgfTsKLSAgICB0b2tlbnMu
b3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCIoIikgfHwgdG9rZW5pc2VyLmVycm9yKCJObyBhcmd1
bWVudCBsaXN0IGluIGNvbnN0cnVjdG9yIik7Ci0gICAgY29uc3QgYXJncyA9IE9iamVjdChfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJhcmd1bWVudF9saXN0Il0pKHRv
a2VuaXNlcik7Ci0gICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIikiKSB8fCB0
b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBjb25zdHJ1Y3RvciIpOwotICAgIHRva2Vucy50
ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKCJO
byBzZW1pY29sb24gYWZ0ZXIgY29uc3RydWN0b3IiKTsKKyAgICB0b2tlbnMub3BlbiA9CisgICAg
ICB0b2tlbmlzZXIuY29uc3VtZSgiKCIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIk5vIGFy
Z3VtZW50IGxpc3QgaW4gY29uc3RydWN0b3IiKTsKKyAgICBjb25zdCBhcmdzID0gKDAsX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5hcmd1bWVudF9saXN0KSh0b2tlbmlz
ZXIpOworICAgIHRva2Vucy5jbG9zZSA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiKSIpIHx8
IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGNvbnN0cnVjdG9yIik7CisgICAgdG9rZW5z
LnRlcm1pbmF0aW9uID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwKKyAgICAgIHRv
a2VuaXNlci5lcnJvcigiTm8gc2VtaWNvbG9uIGFmdGVyIGNvbnN0cnVjdG9yIik7CiAgICAgY29u
c3QgcmV0ID0gbmV3IENvbnN0cnVjdG9yKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tl
bnMgfSk7Ci0gICAgT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X19bImF1dG9QYXJlbnRlciJdKShyZXQpLmFyZ3VtZW50cyA9IGFyZ3M7CisgICAgKDAsX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5hdXRvUGFyZW50ZXIpKHJldCkuYXJn
dW1lbnRzID0gYXJnczsKICAgICByZXR1cm4gcmV0OwogICB9CiAKQEAgLTI1MzEsMTYgKzMxNDIs
MzMgQEAgY2xhc3MgQ29uc3RydWN0b3IgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgICAgeWllbGQqIGFyZ3VtZW50LnZhbGlkYXRlKGRl
ZnMpOwogICAgIH0KICAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIiku
V3JpdGVyfSB3ICovCisgIHdyaXRlKHcpIHsKKyAgICBjb25zdCB7IHBhcmVudCB9ID0gdGhpczsK
KyAgICByZXR1cm4gdy50cy5kZWZpbml0aW9uKAorICAgICAgdy50cy53cmFwKFsKKyAgICAgICAg
dGhpcy5leHRBdHRycy53cml0ZSh3KSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5iYXNl
LCB3LnRzLm5hbWVsZXNzLCB7IGRhdGE6IHRoaXMsIHBhcmVudCB9KSwKKyAgICAgICAgdy50b2tl
bih0aGlzLnRva2Vucy5vcGVuKSwKKyAgICAgICAgdy50cy53cmFwKHRoaXMuYXJndW1lbnRzLm1h
cCgoYXJnKSA9PiBhcmcud3JpdGUodykpKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5j
bG9zZSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMudGVybWluYXRpb24pLAorICAgICAg
XSksCisgICAgICB7IGRhdGE6IHRoaXMsIHBhcmVudCB9CisgICAgKTsKKyAgfQogfQogCiAKIC8q
KiovIH0pLAogLyogMjUgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBv
cnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19f
X3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJl
X18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFj
a19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19y
ZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiTWl4aW4iLCBmdW5jdGlvbigpIHsgcmV0
dXJuIE1peGluOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18u
ZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJNaXhpbiI6
ICgpID0+ICgvKiBiaW5kaW5nICovIE1peGluKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAv
KiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCk7CiAvKiBoYXJtb255IGltcG9ydCAq
LyB2YXIgX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBh
Y2tfcmVxdWlyZV9fKDIxKTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYXR0cmlidXRlX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE0KTsK
QEAgLTI1NTIsNyArMzE4MCw3IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhw
b3J0c19fKTsKIAogCiAKLWNsYXNzIE1peGluIGV4dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXSB7CitjbGFzcyBNaXhpbiBleHRlbmRz
IF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5Db250YWluZXIgewog
ICAvKioKICAgICogQHR5cGVkZWYge2ltcG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW59IFRv
a2VuCiAgICAqCkBAIC0yNTY3LDE1ICszMTk1LDE5IEBAIGNsYXNzIE1peGluIGV4dGVuZHMgX2Nv
bnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXSB7CiAg
ICAgaWYgKCF0b2tlbnMubWl4aW4pIHsKICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgcmV0dXJu
IF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0u
cGFyc2UodG9rZW5pc2VyLCBuZXcgTWl4aW4oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRv
a2VucyB9KSwgewotICAgICAgdHlwZTogImludGVyZmFjZSBtaXhpbiIsCi0gICAgICBhbGxvd2Vk
TWVtYmVyczogWwotICAgICAgICBbX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8xX19bIkNvbnN0YW50Il0ucGFyc2VdLAotICAgICAgICBbX2hlbHBlcnNfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzRfX1sic3RyaW5naWZpZXIiXV0sCi0gICAgICAgIFtfYXR0cmlidXRl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkF0dHJpYnV0ZSJdLnBhcnNlLCB7IG5v
SW5oZXJpdDogdHJ1ZSB9XSwKLSAgICAgICAgW19vcGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzNfX1siT3BlcmF0aW9uIl0ucGFyc2UsIHsgcmVndWxhcjogdHJ1ZSB9XQotICAg
ICAgXQotICAgIH0pOworICAgIHJldHVybiBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX18uQ29udGFpbmVyLnBhcnNlKAorICAgICAgdG9rZW5pc2VyLAorICAgICAgbmV3
IE1peGluKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSksCisgICAgICB7Cisg
ICAgICAgIHR5cGU6ICJpbnRlcmZhY2UgbWl4aW4iLAorICAgICAgICBhbGxvd2VkTWVtYmVyczog
WworICAgICAgICAgIFtfY29uc3RhbnRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5D
b25zdGFudC5wYXJzZV0sCisgICAgICAgICAgW19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV80X18uc3RyaW5naWZpZXJdLAorICAgICAgICAgIFtfYXR0cmlidXRlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQXR0cmlidXRlLnBhcnNlLCB7IG5vSW5oZXJpdDogdHJ1
ZSB9XSwKKyAgICAgICAgICBbX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
M19fLk9wZXJhdGlvbi5wYXJzZSwgeyByZWd1bGFyOiB0cnVlIH1dLAorICAgICAgICBdLAorICAg
ICAgfQorICAgICk7CiAgIH0KIAogICBnZXQgdHlwZSgpIHsKQEAgLTI1ODYsMTEgKzMyMTgsMTIg
QEAgY2xhc3MgTWl4aW4gZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX19bIkNvbnRhaW5lciJdIHsKIAogLyoqKi8gfSksCiAvKiAyNiAqLwotLyoqKi8gKGZ1
bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykg
eworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNr
X2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBf
X3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4
cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRz
X18sICJEaWN0aW9uYXJ5IiwgZnVuY3Rpb24oKSB7IHJldHVybiBEaWN0aW9uYXJ5OyB9KTsKKy8q
IGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0
c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJEaWN0aW9uYXJ5IjogKCkgPT4gKC8qIGJp
bmRpbmcgKi8gRGljdGlvbmFyeSkKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9u
eSBpbXBvcnQgKi8gdmFyIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
XyA9IF9fd2VicGFja19yZXF1aXJlX18oMjApOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9m
aWVsZF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVf
XygyNyk7CiAvLyBAdHMtY2hlY2sKQEAgLTI1OTgsNyArMzIzMSw3IEBAIF9fd2VicGFja19yZXF1
aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAogCiAKLWNsYXNzIERpY3Rpb25hcnkgZXh0
ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkNvbnRhaW5l
ciJdIHsKK2NsYXNzIERpY3Rpb25hcnkgZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX18uQ29udGFpbmVyIHsKICAgLyoqCiAgICAqIEBwYXJhbSB7aW1wb3J0
KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgogICAgKiBAcGFyYW0ge29iamVj
dH0gW29wdGlvbnNdCkBAIC0yNjEwLDEzICszMjQzLDE1IEBAIGNsYXNzIERpY3Rpb25hcnkgZXh0
ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkNvbnRhaW5l
ciJdCiAgICAgaWYgKCF0b2tlbnMuYmFzZSkgewogICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBy
ZXR1cm4gX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWlu
ZXIiXS5wYXJzZSh0b2tlbmlzZXIsIG5ldyBEaWN0aW9uYXJ5KHsgc291cmNlOiB0b2tlbmlzZXIu
c291cmNlLCB0b2tlbnMgfSksIHsKLSAgICAgIHR5cGU6ICJkaWN0aW9uYXJ5IiwKLSAgICAgIGlu
aGVyaXRhYmxlOiAhcGFydGlhbCwKLSAgICAgIGFsbG93ZWRNZW1iZXJzOiBbCi0gICAgICAgIFtf
ZmllbGRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siRmllbGQiXS5wYXJzZV0sCi0g
ICAgICBdCi0gICAgfSk7CisgICAgcmV0dXJuIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfXy5Db250YWluZXIucGFyc2UoCisgICAgICB0b2tlbmlzZXIsCisgICAgICBu
ZXcgRGljdGlvbmFyeSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pLAorICAg
ICAgeworICAgICAgICB0eXBlOiAiZGljdGlvbmFyeSIsCisgICAgICAgIGluaGVyaXRhYmxlOiAh
cGFydGlhbCwKKyAgICAgICAgYWxsb3dlZE1lbWJlcnM6IFtbX2ZpZWxkX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX18uRmllbGQucGFyc2VdXSwKKyAgICAgIH0KKyAgICApOwogICB9CiAK
ICAgZ2V0IHR5cGUoKSB7CkBAIC0yNjI3LDExICszMjYyLDEyIEBAIGNsYXNzIERpY3Rpb25hcnkg
ZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkNvbnRh
aW5lciJdCiAKIC8qKiovIH0pLAogLyogMjcgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9f
d2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVz
ZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2Vi
cGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVf
Xy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICov
IF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiRmllbGQiLCBmdW5j
dGlvbigpIHsgcmV0dXJuIEZpZWxkOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFj
a19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAq
LyAgICJGaWVsZCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEZpZWxkKQorLyogaGFybW9ueSBleHBv
cnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CiAvKiBoYXJtb255IGlt
cG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9f
d2VicGFja19yZXF1aXJlX18oNCk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2V4dGVuZGVk
X2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oOCk7CkBAIC0yNjQxLDIxICszMjc3LDI4IEBAIF9fd2VicGFja19yZXF1aXJlX18u
cihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAogCiAKLWNsYXNzIEZpZWxkIGV4dGVuZHMgX2Jhc2Vf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKK2NsYXNzIEZpZWxkIGV4
dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5CYXNlIHsKICAgLyoq
CiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNl
cgogICAgKi8KICAgc3RhdGljIHBhcnNlKHRva2VuaXNlcikgewogICAgIC8qKiBAdHlwZSB7QmFz
ZVsidG9rZW5zIl19ICovCiAgICAgY29uc3QgdG9rZW5zID0ge307Ci0gICAgY29uc3QgcmV0ID0g
T2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImF1dG9QYXJl
bnRlciJdKShuZXcgRmllbGQoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSk7
Ci0gICAgcmV0LmV4dEF0dHJzID0gX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzJfX1siRXh0ZW5kZWRBdHRyaWJ1dGVzIl0ucGFyc2UodG9rZW5pc2VyKTsK
KyAgICBjb25zdCByZXQgPSAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MV9fLmF1dG9QYXJlbnRlcikobmV3IEZpZWxkKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0
b2tlbnMgfSkpOworICAgIHJldC5leHRBdHRycyA9IF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uRXh0ZW5kZWRBdHRyaWJ1dGVzLnBhcnNlKHRva2Vu
aXNlcik7CiAgICAgdG9rZW5zLnJlcXVpcmVkID0gdG9rZW5pc2VyLmNvbnN1bWUoInJlcXVpcmVk
Iik7Ci0gICAgcmV0LmlkbFR5cGUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzFfX1sidHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMiXSkodG9rZW5pc2Vy
LCAiZGljdGlvbmFyeS10eXBlIikgfHwgdG9rZW5pc2VyLmVycm9yKCJEaWN0aW9uYXJ5IG1lbWJl
ciBsYWNrcyBhIHR5cGUiKTsKLSAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJp
ZGVudGlmaWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKCJEaWN0aW9uYXJ5IG1lbWJlciBsYWNrcyBh
IG5hbWUiKTsKLSAgICByZXQuZGVmYXVsdCA9IF9kZWZhdWx0X2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8zX19bIkRlZmF1bHQiXS5wYXJzZSh0b2tlbmlzZXIpOwotICAgIGlmICh0b2tlbnMu
cmVxdWlyZWQgJiYgcmV0LmRlZmF1bHQpIHRva2VuaXNlci5lcnJvcigiUmVxdWlyZWQgbWVtYmVy
IG11c3Qgbm90IGhhdmUgYSBkZWZhdWx0Iik7Ci0gICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9r
ZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBkaWN0
aW9uYXJ5IG1lbWJlciwgZXhwZWN0ZWQgYDtgIik7CisgICAgcmV0LmlkbFR5cGUgPQorICAgICAg
KDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50eXBlX3dpdGhfZXh0
ZW5kZWRfYXR0cmlidXRlcykodG9rZW5pc2VyLCAiZGljdGlvbmFyeS10eXBlIikgfHwKKyAgICAg
IHRva2VuaXNlci5lcnJvcigiRGljdGlvbmFyeSBtZW1iZXIgbGFja3MgYSB0eXBlIik7CisgICAg
dG9rZW5zLm5hbWUgPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWVUeXBlKCJpZGVudGlmaWVyIikg
fHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiRGljdGlvbmFyeSBtZW1iZXIgbGFja3MgYSBuYW1l
Iik7CisgICAgcmV0LmRlZmF1bHQgPSBfZGVmYXVsdF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfM19fLkRlZmF1bHQucGFyc2UodG9rZW5pc2VyKTsKKyAgICBpZiAodG9rZW5zLnJlcXVpcmVk
ICYmIHJldC5kZWZhdWx0KQorICAgICAgdG9rZW5pc2VyLmVycm9yKCJSZXF1aXJlZCBtZW1iZXIg
bXVzdCBub3QgaGF2ZSBhIGRlZmF1bHQiKTsKKyAgICB0b2tlbnMudGVybWluYXRpb24gPQorICAg
ICAgdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKCJVbnRl
cm1pbmF0ZWQgZGljdGlvbmFyeSBtZW1iZXIsIGV4cGVjdGVkIGA7YCIpOwogICAgIHJldHVybiBy
ZXQudGhpczsKICAgfQogCkBAIC0yNjYzLDcgKzMzMDYsNyBAQCBjbGFzcyBGaWVsZCBleHRlbmRz
IF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICAgcmV0
dXJuICJmaWVsZCI7CiAgIH0KICAgZ2V0IG5hbWUoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRv
a2Vucy5uYW1lLnZhbHVlKTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfXy51bmVzY2FwZSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7CiAgIH0K
ICAgZ2V0IHJlcXVpcmVkKCkgewogICAgIHJldHVybiAhIXRoaXMudG9rZW5zLnJlcXVpcmVkOwpA
QCAtMjY3MiwyOCArMzMxNSw0NyBAQCBjbGFzcyBGaWVsZCBleHRlbmRzIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICp2YWxpZGF0ZShkZWZzKSB7CiAg
ICAgeWllbGQqIHRoaXMuaWRsVHlwZS52YWxpZGF0ZShkZWZzKTsKICAgfQorCisgIC8qKiBAcGFy
YW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyfSB3ICovCisgIHdyaXRlKHcpIHsKKyAg
ICBjb25zdCB7IHBhcmVudCB9ID0gdGhpczsKKyAgICByZXR1cm4gdy50cy5kZWZpbml0aW9uKAor
ICAgICAgdy50cy53cmFwKFsKKyAgICAgICAgdGhpcy5leHRBdHRycy53cml0ZSh3KSwKKyAgICAg
ICAgdy50b2tlbih0aGlzLnRva2Vucy5yZXF1aXJlZCksCisgICAgICAgIHcudHMudHlwZSh0aGlz
LmlkbFR5cGUud3JpdGUodykpLAorICAgICAgICB3Lm5hbWVfdG9rZW4odGhpcy50b2tlbnMubmFt
ZSwgeyBkYXRhOiB0aGlzLCBwYXJlbnQgfSksCisgICAgICAgIHRoaXMuZGVmYXVsdCA/IHRoaXMu
ZGVmYXVsdC53cml0ZSh3KSA6ICIiLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnRlcm1p
bmF0aW9uKSwKKyAgICAgIF0pLAorICAgICAgeyBkYXRhOiB0aGlzLCBwYXJlbnQgfQorICAgICk7
CisgIH0KIH0KIAogCiAvKioqLyB9KSwKIC8qIDI4ICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxl
LCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9f
dW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBf
X3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1
aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5n
KSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIk5hbWVzcGFj
ZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gTmFtZXNwYWNlOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0
ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJt
b255IGV4cG9ydCAqLyAgICJOYW1lc3BhY2UiOiAoKSA9PiAoLyogYmluZGluZyAqLyBOYW1lc3Bh
Y2UpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBf
Y29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVx
dWlyZV9fKDIwKTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYXR0cmlidXRlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE0KTsKIC8qIGhh
cm1vbnkgaW1wb3J0ICovIHZhciBfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZh
ciBfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1
aXJlX18oMyk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisvKiBoYXJtb255
IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18g
PSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIxKTsKIAogCiAKIAogCiAKLWNsYXNzIE5hbWVzcGFjZSBl
eHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFp
bmVyIl0geworCitjbGFzcyBOYW1lc3BhY2UgZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8wX18uQ29udGFpbmVyIHsKICAgLyoqCiAgICAqIEBwYXJhbSB7aW1w
b3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgogICAgKiBAcGFyYW0ge29i
amVjdH0gW29wdGlvbnNdCkBAIC0yNzA1LDEzICszMzY3LDE4IEBAIGNsYXNzIE5hbWVzcGFjZSBl
eHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFp
bmVyIl0KICAgICBpZiAoIXRva2Vucy5iYXNlKSB7CiAgICAgICByZXR1cm47CiAgICAgfQotICAg
IHJldHVybiBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkNvbnRh
aW5lciJdLnBhcnNlKHRva2VuaXNlciwgbmV3IE5hbWVzcGFjZSh7IHNvdXJjZTogdG9rZW5pc2Vy
LnNvdXJjZSwgdG9rZW5zIH0pLCB7Ci0gICAgICB0eXBlOiAibmFtZXNwYWNlIiwKLSAgICAgIGFs
bG93ZWRNZW1iZXJzOiBbCi0gICAgICAgIFtfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xX19bIkF0dHJpYnV0ZSJdLnBhcnNlLCB7IG5vSW5oZXJpdDogdHJ1ZSwgcmVhZG9u
bHk6IHRydWUgfV0sCi0gICAgICAgIFtfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8yX19bIk9wZXJhdGlvbiJdLnBhcnNlLCB7IHJlZ3VsYXI6IHRydWUgfV0KLSAgICAgIF0K
LSAgICB9KTsKKyAgICByZXR1cm4gX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fLkNvbnRhaW5lci5wYXJzZSgKKyAgICAgIHRva2VuaXNlciwKKyAgICAgIG5ldyBOYW1l
c3BhY2UoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSwKKyAgICAgIHsKKyAg
ICAgICAgdHlwZTogIm5hbWVzcGFjZSIsCisgICAgICAgIGFsbG93ZWRNZW1iZXJzOiBbCisgICAg
ICAgICAgW19hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5BdHRyaWJ1
dGUucGFyc2UsIHsgbm9Jbmhlcml0OiB0cnVlLCByZWFkb25seTogdHJ1ZSB9XSwKKyAgICAgICAg
ICBbX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uQ29uc3RhbnQucGFy
c2VdLAorICAgICAgICAgIFtfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8y
X18uT3BlcmF0aW9uLnBhcnNlLCB7IHJlZ3VsYXI6IHRydWUgfV0sCisgICAgICAgIF0sCisgICAg
ICB9CisgICAgKTsKICAgfQogCiAgIGdldCB0eXBlKCkgewpAQCAtMjcxOSwxNSArMzM4NiwyNCBA
QCBjbGFzcyBOYW1lc3BhY2UgZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX19bIkNvbnRhaW5lciJdCiAgIH0KIAogICAqdmFsaWRhdGUoZGVmcykgewotICAg
IGlmICghdGhpcy5wYXJ0aWFsICYmIHRoaXMuZXh0QXR0cnMuZXZlcnkoZXh0QXR0ciA9PiBleHRB
dHRyLm5hbWUgIT09ICJFeHBvc2VkIikpIHsKKyAgICBpZiAoCisgICAgICAhdGhpcy5wYXJ0aWFs
ICYmCisgICAgICB0aGlzLmV4dEF0dHJzLmV2ZXJ5KChleHRBdHRyKSA9PiBleHRBdHRyLm5hbWUg
IT09ICJFeHBvc2VkIikKKyAgICApIHsKICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgTmFtZXNwYWNl
cyBtdXN0IGhhdmUgW0V4cG9zZWRdIGV4dGVuZGVkIGF0dHJpYnV0ZS4gXAogVG8gZml4LCBhZGQs
IGZvciBleGFtcGxlLCBbRXhwb3NlZD1XaW5kb3ddLiBQbGVhc2UgYWxzbyBjb25zaWRlciBjYXJl
ZnVsbHkgXAogaWYgeW91ciBuYW1lc3BhY2Ugc2hvdWxkIGFsc28gYmUgZXhwb3NlZCBpbiBhIFdv
cmtlciBzY29wZS4gUmVmZXIgdG8gdGhlIFwKIFtXZWJJREwgc3BlYyBzZWN0aW9uIG9uIEV4cG9z
ZWRdKGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI0V4cG9zZWQpIFwKIGZvciBtb3Jl
IGluZm9ybWF0aW9uLmA7Ci0gICAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8zX19bInZhbGlkYXRpb25FcnJvciJdKSh0aGlzLnRva2Vucy5uYW1lLCB0
aGlzLCAicmVxdWlyZS1leHBvc2VkIiwgbWVzc2FnZSwgewotICAgICAgICBhdXRvZml4OiBPYmpl
Y3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siYXV0b2ZpeEFkZEV4
cG9zZWRXaW5kb3ciXSkodGhpcykKLSAgICAgIH0pOworICAgICAgeWllbGQgKDAsX2Vycm9yX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udmFsaWRhdGlvbkVycm9yKSgKKyAgICAgICAg
dGhpcy50b2tlbnMubmFtZSwKKyAgICAgICAgdGhpcywKKyAgICAgICAgInJlcXVpcmUtZXhwb3Nl
ZCIsCisgICAgICAgIG1lc3NhZ2UsCisgICAgICAgIHsKKyAgICAgICAgICBhdXRvZml4OiAoMCxf
aGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmF1dG9maXhBZGRFeHBvc2Vk
V2luZG93KSh0aGlzKSwKKyAgICAgICAgfQorICAgICAgKTsKICAgICB9CiAgICAgeWllbGQqIHN1
cGVyLnZhbGlkYXRlKGRlZnMpOwogICB9CkBAIC0yNzM2LDExICszNDEyLDEyIEBAIGZvciBtb3Jl
IGluZm9ybWF0aW9uLmA7CiAKIC8qKiovIH0pLAogLyogMjkgKi8KLS8qKiovIChmdW5jdGlvbiht
b2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiov
ICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRz
X18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNr
X3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJp
bmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQ2Fs
bGJhY2tJbnRlcmZhY2UiLCBmdW5jdGlvbigpIHsgcmV0dXJuIENhbGxiYWNrSW50ZXJmYWNlOyB9
KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tf
ZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJDYWxsYmFja0ludGVyZmFjZSI6
ICgpID0+ICgvKiBiaW5kaW5nICovIENhbGxiYWNrSW50ZXJmYWNlKQorLyogaGFybW9ueSBleHBv
cnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnRhaW5lcl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCk7CiAvKiBoYXJt
b255IGltcG9ydCAqLyB2YXIgX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMyk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIg
X2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVx
dWlyZV9fKDIxKTsKQEAgLTI3NTAsNyArMzQyNyw3IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihf
X3dlYnBhY2tfZXhwb3J0c19fKTsKIAogCiAKLWNsYXNzIENhbGxiYWNrSW50ZXJmYWNlIGV4dGVu
ZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIi
XSB7CitjbGFzcyBDYWxsYmFja0ludGVyZmFjZSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfXy5Db250YWluZXIgewogICAvKioKICAgICogQHBhcmFtIHtp
bXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCiAgICAqLwpAQCAtMjc2
MCwxNCArMzQzNywxOCBAQCBjbGFzcyBDYWxsYmFja0ludGVyZmFjZSBleHRlbmRzIF9jb250YWlu
ZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udAogICAgIGlmICghdG9rZW5z
LmJhc2UpIHsKICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgcmV0dXJuIF9jb250YWluZXJfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0ucGFyc2UodG9rZW5pc2Vy
LCBuZXcgQ2FsbGJhY2tJbnRlcmZhY2UoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2Vu
cyB9KSwgewotICAgICAgdHlwZTogImNhbGxiYWNrIGludGVyZmFjZSIsCi0gICAgICBpbmhlcml0
YWJsZTogIXBhcnRpYWwsCi0gICAgICBhbGxvd2VkTWVtYmVyczogWwotICAgICAgICBbX2NvbnN0
YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkNvbnN0YW50Il0ucGFyc2VdLAot
ICAgICAgICBbX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJPcGVy
YXRpb24iXS5wYXJzZSwgeyByZWd1bGFyOiB0cnVlIH1dCi0gICAgICBdCi0gICAgfSk7CisgICAg
cmV0dXJuIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5Db250YWlu
ZXIucGFyc2UoCisgICAgICB0b2tlbmlzZXIsCisgICAgICBuZXcgQ2FsbGJhY2tJbnRlcmZhY2Uo
eyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSwKKyAgICAgIHsKKyAgICAgICAg
dHlwZTogImNhbGxiYWNrIGludGVyZmFjZSIsCisgICAgICAgIGluaGVyaXRhYmxlOiAhcGFydGlh
bCwKKyAgICAgICAgYWxsb3dlZE1lbWJlcnM6IFsKKyAgICAgICAgICBbX2NvbnN0YW50X2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQ29uc3RhbnQucGFyc2VdLAorICAgICAgICAgIFtf
b3BlcmF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uT3BlcmF0aW9uLnBhcnNl
LCB7IHJlZ3VsYXI6IHRydWUgfV0sCisgICAgICAgIF0sCisgICAgICB9CisgICAgKTsKICAgfQog
CiAgIGdldCB0eXBlKCkgewpAQCAtMjc3OCwxOSArMzQ1OSwxOSBAQCBjbGFzcyBDYWxsYmFja0lu
dGVyZmFjZSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
X1siQ29udAogCiAvKioqLyB9KSwKIC8qIDMwICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBf
X3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9fdW51
c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dl
YnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1aXJl
X18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAq
LyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIndyaXRlIiwgZnVu
Y3Rpb24oKSB7IHJldHVybiB3cml0ZTsgfSk7Ci0KLQorLyogaGFybW9ueSBleHBvcnQgKi8gX193
ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhw
b3J0ICovICAgIldyaXRlciI6ICgpID0+ICgvKiBiaW5kaW5nICovIFdyaXRlciksCisvKiBoYXJt
b255IGV4cG9ydCAqLyAgICJ3cml0ZSI6ICgpID0+ICgvKiBiaW5kaW5nICovIHdyaXRlKQorLyog
aGFybW9ueSBleHBvcnQgKi8gfSk7CiBmdW5jdGlvbiBub29wKGFyZykgewogICByZXR1cm4gYXJn
OwogfQogCiBjb25zdCB0ZW1wbGF0ZXMgPSB7Ci0gIHdyYXA6IGl0ZW1zID0+IGl0ZW1zLmpvaW4o
IiIpLAorICB3cmFwOiAoaXRlbXMpID0+IGl0ZW1zLmpvaW4oIiIpLAogICB0cml2aWE6IG5vb3As
CiAgIG5hbWU6IG5vb3AsCiAgIHJlZmVyZW5jZTogbm9vcCwKQEAgLTI4MDAsMzM1ICszNDgxLDc0
IEBAIGNvbnN0IHRlbXBsYXRlcyA9IHsKICAgaW5oZXJpdGFuY2U6IG5vb3AsCiAgIGRlZmluaXRp
b246IG5vb3AsCiAgIGV4dGVuZGVkQXR0cmlidXRlOiBub29wLAotICBleHRlbmRlZEF0dHJpYnV0
ZVJlZmVyZW5jZTogbm9vcAorICBleHRlbmRlZEF0dHJpYnV0ZVJlZmVyZW5jZTogbm9vcCwKIH07
CiAKLWZ1bmN0aW9uIHdyaXRlKGFzdCwgeyB0ZW1wbGF0ZXM6IHRzID0gdGVtcGxhdGVzIH0gPSB7
fSkgewotICB0cyA9IE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlcywgdHMpOworY2xhc3MgV3Jp
dGVyIHsKKyAgY29uc3RydWN0b3IodHMpIHsKKyAgICB0aGlzLnRzID0gT2JqZWN0LmFzc2lnbih7
fSwgdGVtcGxhdGVzLCB0cyk7CisgIH0KIAotICBmdW5jdGlvbiByZWZlcmVuY2UocmF3LCB7IHVu
ZXNjYXBlZCwgY29udGV4dCB9KSB7CisgIHJlZmVyZW5jZShyYXcsIHsgdW5lc2NhcGVkLCBjb250
ZXh0IH0pIHsKICAgICBpZiAoIXVuZXNjYXBlZCkgewogICAgICAgdW5lc2NhcGVkID0gcmF3LnN0
YXJ0c1dpdGgoIl8iKSA/IHJhdy5zbGljZSgxKSA6IHJhdzsKICAgICB9Ci0gICAgcmV0dXJuIHRz
LnJlZmVyZW5jZShyYXcsIHVuZXNjYXBlZCwgY29udGV4dCk7CisgICAgcmV0dXJuIHRoaXMudHMu
cmVmZXJlbmNlKHJhdywgdW5lc2NhcGVkLCBjb250ZXh0KTsKICAgfQogCi0gIGZ1bmN0aW9uIHRv
a2VuKHQsIHdyYXBwZXIgPSBub29wLCAuLi5hcmdzKSB7CisgIHRva2VuKHQsIHdyYXBwZXIgPSBu
b29wLCAuLi5hcmdzKSB7CiAgICAgaWYgKCF0KSB7CiAgICAgICByZXR1cm4gIiI7CiAgICAgfQog
ICAgIGNvbnN0IHZhbHVlID0gd3JhcHBlcih0LnZhbHVlLCAuLi5hcmdzKTsKLSAgICByZXR1cm4g
dHMud3JhcChbdHMudHJpdmlhKHQudHJpdmlhKSwgdmFsdWVdKTsKKyAgICByZXR1cm4gdGhpcy50
cy53cmFwKFt0aGlzLnRzLnRyaXZpYSh0LnRyaXZpYSksIHZhbHVlXSk7CiAgIH0KIAotICBmdW5j
dGlvbiByZWZlcmVuY2VfdG9rZW4odCwgY29udGV4dCkgewotICAgIHJldHVybiB0b2tlbih0LCBy
ZWZlcmVuY2UsIHsgY29udGV4dCB9KTsKKyAgcmVmZXJlbmNlX3Rva2VuKHQsIGNvbnRleHQpIHsK
KyAgICByZXR1cm4gdGhpcy50b2tlbih0LCB0aGlzLnJlZmVyZW5jZS5iaW5kKHRoaXMpLCB7IGNv
bnRleHQgfSk7CiAgIH0KIAotICBmdW5jdGlvbiBuYW1lX3Rva2VuKHQsIGFyZykgewotICAgIHJl
dHVybiB0b2tlbih0LCB0cy5uYW1lLCBhcmcpOworICBuYW1lX3Rva2VuKHQsIGFyZykgeworICAg
IHJldHVybiB0aGlzLnRva2VuKHQsIHRoaXMudHMubmFtZSwgYXJnKTsKICAgfQogCi0gIGZ1bmN0
aW9uIHR5cGVfYm9keShpdCkgewotICAgIGlmIChpdC51bmlvbiB8fCBpdC5nZW5lcmljKSB7Ci0g
ICAgICByZXR1cm4gdHMud3JhcChbCi0gICAgICAgIHRva2VuKGl0LnRva2Vucy5iYXNlLCB0cy5n
ZW5lcmljKSwKLSAgICAgICAgdG9rZW4oaXQudG9rZW5zLm9wZW4pLAotICAgICAgICAuLi5pdC5z
dWJ0eXBlLm1hcCh0eXBlKSwKLSAgICAgICAgdG9rZW4oaXQudG9rZW5zLmNsb3NlKQotICAgICAg
XSk7Ci0gICAgfQotICAgIGNvbnN0IGZpcnN0VG9rZW4gPSBpdC50b2tlbnMucHJlZml4IHx8IGl0
LnRva2Vucy5iYXNlOwotICAgIGNvbnN0IHByZWZpeCA9IGl0LnRva2Vucy5wcmVmaXggPyBbCi0g
ICAgICBpdC50b2tlbnMucHJlZml4LnZhbHVlLAotICAgICAgdHMudHJpdmlhKGl0LnRva2Vucy5i
YXNlLnRyaXZpYSkKLSAgICBdIDogW107Ci0gICAgY29uc3QgcmVmID0gcmVmZXJlbmNlKHRzLndy
YXAoWwotICAgICAgLi4ucHJlZml4LAotICAgICAgaXQudG9rZW5zLmJhc2UudmFsdWUsCi0gICAg
ICB0b2tlbihpdC50b2tlbnMucG9zdGZpeCkKLSAgICBdKSwgeyB1bmVzY2FwZWQ6IGl0LmlkbFR5
cGUsIGNvbnRleHQ6IGl0IH0pOwotICAgIHJldHVybiB0cy53cmFwKFt0cy50cml2aWEoZmlyc3RU
b2tlbi50cml2aWEpLCByZWZdKTsKLSAgfQotICBmdW5jdGlvbiB0eXBlKGl0KSB7Ci0gICAgcmV0
dXJuIHRzLndyYXAoWwotICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCi0g
ICAgICB0eXBlX2JvZHkoaXQpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLm51bGxhYmxlKSwKLSAg
ICAgIHRva2VuKGl0LnRva2Vucy5zZXBhcmF0b3IpCi0gICAgXSk7Ci0gIH0KLSAgZnVuY3Rpb24g
ZGVmYXVsdF8oZGVmKSB7Ci0gICAgaWYgKCFkZWYpIHsKLSAgICAgIHJldHVybiAiIjsKLSAgICB9
Ci0gICAgcmV0dXJuIHRzLndyYXAoWwotICAgICAgdG9rZW4oZGVmLnRva2Vucy5hc3NpZ24pLAot
ICAgICAgLi4uZGVmLmV4cHJlc3Npb24ubWFwKHQgPT4gdG9rZW4odCkpCi0gICAgXSk7Ci0gIH0K
LSAgZnVuY3Rpb24gYXJndW1lbnQoYXJnKSB7Ci0gICAgcmV0dXJuIHRzLndyYXAoWwotICAgICAg
ZXh0ZW5kZWRfYXR0cmlidXRlcyhhcmcuZXh0QXR0cnMpLAotICAgICAgdG9rZW4oYXJnLnRva2Vu
cy5vcHRpb25hbCksCi0gICAgICB0cy50eXBlKHR5cGUoYXJnLmlkbFR5cGUpKSwKLSAgICAgIHRv
a2VuKGFyZy50b2tlbnMudmFyaWFkaWMpLAotICAgICAgbmFtZV90b2tlbihhcmcudG9rZW5zLm5h
bWUsIHsgZGF0YTogYXJnIH0pLAotICAgICAgZGVmYXVsdF8oYXJnLmRlZmF1bHQpLAotICAgICAg
dG9rZW4oYXJnLnRva2Vucy5zZXBhcmF0b3IpCi0gICAgXSk7Ci0gIH0KLSAgZnVuY3Rpb24gZXh0
ZW5kZWRfYXR0cmlidXRlX2xpc3RpdGVtKHN0cikgewotICAgIHJldHVybiB0cy53cmFwKFsKLSAg
ICAgIHRva2VuKHN0ci50b2tlbnMudmFsdWUpLAotICAgICAgdG9rZW4oc3RyLnRva2Vucy5zZXBh
cmF0b3IpCi0gICAgXSk7Ci0gIH0KLSAgZnVuY3Rpb24gaWRlbnRpZmllcihpZCwgY29udGV4dCkg
ewotICAgIHJldHVybiB0cy53cmFwKFsKLSAgICAgIHJlZmVyZW5jZV90b2tlbihpZC50b2tlbnMu
dmFsdWUsIGNvbnRleHQpLAotICAgICAgdG9rZW4oaWQudG9rZW5zLnNlcGFyYXRvcikKLSAgICBd
KTsKLSAgfQotICBmdW5jdGlvbiBtYWtlX2V4dF9hdChpdCkgewotICAgIGNvbnN0IHsgcmhzVHlw
ZSB9ID0gaXQucGFyYW1zOwotICAgIHJldHVybiB0cy53cmFwKFsKLSAgICAgIHRzLnRyaXZpYShp
dC50b2tlbnMubmFtZS50cml2aWEpLAotICAgICAgdHMuZXh0ZW5kZWRBdHRyaWJ1dGUodHMud3Jh
cChbCi0gICAgICAgIHRzLmV4dGVuZGVkQXR0cmlidXRlUmVmZXJlbmNlKGl0Lm5hbWUpLAotICAg
ICAgICB0b2tlbihpdC5wYXJhbXMudG9rZW5zLmFzc2lnbiksCi0gICAgICAgIHJlZmVyZW5jZV90
b2tlbihpdC5wYXJhbXMudG9rZW5zLnNlY29uZGFyeU5hbWUsIGl0KSwKLSAgICAgICAgdG9rZW4o
aXQucGFyYW1zLnRva2Vucy5vcGVuKSwKLSAgICAgICAgLi4uIWl0LnBhcmFtcy5saXN0ID8gW10g
OgotICAgICAgICAgIGl0LnBhcmFtcy5saXN0Lm1hcCgKLSAgICAgICAgICAgIHJoc1R5cGUgPT09
ICJpZGVudGlmaWVyLWxpc3QiID8gaWQgPT4gaWRlbnRpZmllcihpZCwgaXQpIDoKLSAgICAgICAg
ICAgIHJoc1R5cGUgJiYgcmhzVHlwZS5lbmRzV2l0aCgiLWxpc3QiKSA/IGV4dGVuZGVkX2F0dHJp
YnV0ZV9saXN0aXRlbSA6Ci0gICAgICAgICAgICBhcmd1bWVudAotICAgICAgICAgICksCi0gICAg
ICAgIHRva2VuKGl0LnBhcmFtcy50b2tlbnMuY2xvc2UpCi0gICAgICBdKSksCi0gICAgICB0b2tl
bihpdC50b2tlbnMuc2VwYXJhdG9yKQotICAgIF0pOwotICB9Ci0gIGZ1bmN0aW9uIGV4dGVuZGVk
X2F0dHJpYnV0ZXMoZWF0cykgewotICAgIGlmICghZWF0cy5sZW5ndGgpIHJldHVybiAiIjsKLSAg
ICByZXR1cm4gdHMud3JhcChbCi0gICAgICB0b2tlbihlYXRzLnRva2Vucy5vcGVuKSwKLSAgICAg
IC4uLmVhdHMubWFwKG1ha2VfZXh0X2F0KSwKLSAgICAgIHRva2VuKGVhdHMudG9rZW5zLmNsb3Nl
KQorICBpZGVudGlmaWVyKGlkLCBjb250ZXh0KSB7CisgICAgcmV0dXJuIHRoaXMudHMud3JhcChb
CisgICAgICB0aGlzLnJlZmVyZW5jZV90b2tlbihpZC50b2tlbnMudmFsdWUsIGNvbnRleHQpLAor
ICAgICAgdGhpcy50b2tlbihpZC50b2tlbnMuc2VwYXJhdG9yKSwKICAgICBdKTsKICAgfQorfQog
Ci0gIGZ1bmN0aW9uIG9wZXJhdGlvbihpdCwgcGFyZW50KSB7Ci0gICAgY29uc3QgYm9keSA9IGl0
LmlkbFR5cGUgPyBbCi0gICAgICB0cy50eXBlKHR5cGUoaXQuaWRsVHlwZSkpLAotICAgICAgbmFt
ZV90b2tlbihpdC50b2tlbnMubmFtZSwgeyBkYXRhOiBpdCwgcGFyZW50IH0pLAotICAgICAgdG9r
ZW4oaXQudG9rZW5zLm9wZW4pLAotICAgICAgdHMud3JhcChpdC5hcmd1bWVudHMubWFwKGFyZ3Vt
ZW50KSksCi0gICAgICB0b2tlbihpdC50b2tlbnMuY2xvc2UpLAotICAgIF0gOiBbXTsKLSAgICBy
ZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKLSAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMo
aXQuZXh0QXR0cnMpLAotICAgICAgaXQudG9rZW5zLm5hbWUgPyB0b2tlbihpdC50b2tlbnMuc3Bl
Y2lhbCkgOiB0b2tlbihpdC50b2tlbnMuc3BlY2lhbCwgdHMubmFtZWxlc3MsIHsgZGF0YTogaXQs
IHBhcmVudCB9KSwKLSAgICAgIC4uLmJvZHksCi0gICAgICB0b2tlbihpdC50b2tlbnMudGVybWlu
YXRpb24pCi0gICAgXSksIHsgZGF0YTogaXQsIHBhcmVudCB9KTsKLSAgfQotCi0gIGZ1bmN0aW9u
IGF0dHJpYnV0ZShpdCwgcGFyZW50KSB7Ci0gICAgcmV0dXJuIHRzLmRlZmluaXRpb24odHMud3Jh
cChbCi0gICAgICBleHRlbmRlZF9hdHRyaWJ1dGVzKGl0LmV4dEF0dHJzKSwKLSAgICAgIHRva2Vu
KGl0LnRva2Vucy5zcGVjaWFsKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5yZWFkb25seSksCi0g
ICAgICB0b2tlbihpdC50b2tlbnMuYmFzZSksCi0gICAgICB0cy50eXBlKHR5cGUoaXQuaWRsVHlw
ZSkpLAotICAgICAgbmFtZV90b2tlbihpdC50b2tlbnMubmFtZSwgeyBkYXRhOiBpdCwgcGFyZW50
IH0pLAotICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQotICAgIF0pLCB7IGRhdGE6
IGl0LCBwYXJlbnQgfSk7Ci0gIH0KLQotICBmdW5jdGlvbiBjb25zdHJ1Y3RvcihpdCwgcGFyZW50
KSB7Ci0gICAgcmV0dXJuIHRzLmRlZmluaXRpb24odHMud3JhcChbCi0gICAgICBleHRlbmRlZF9h
dHRyaWJ1dGVzKGl0LmV4dEF0dHJzKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5iYXNlLCB0cy5u
YW1lbGVzcywgeyBkYXRhOiBpdCwgcGFyZW50IH0pLAotICAgICAgdG9rZW4oaXQudG9rZW5zLm9w
ZW4pLAotICAgICAgdHMud3JhcChpdC5hcmd1bWVudHMubWFwKGFyZ3VtZW50KSksCi0gICAgICB0
b2tlbihpdC50b2tlbnMuY2xvc2UpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9u
KQotICAgIF0pLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSk7Ci0gIH0KLQotICBmdW5jdGlvbiBpbmhl
cml0YW5jZShpbmgpIHsKLSAgICBpZiAoIWluaC50b2tlbnMuaW5oZXJpdGFuY2UpIHsKLSAgICAg
IHJldHVybiAiIjsKLSAgICB9Ci0gICAgcmV0dXJuIHRzLndyYXAoWwotICAgICAgdG9rZW4oaW5o
LnRva2Vucy5jb2xvbiksCi0gICAgICB0cy50cml2aWEoaW5oLnRva2Vucy5pbmhlcml0YW5jZS50
cml2aWEpLAotICAgICAgdHMuaW5oZXJpdGFuY2UocmVmZXJlbmNlKGluaC50b2tlbnMuaW5oZXJp
dGFuY2UudmFsdWUsIHsgY29udGV4dDogaW5oIH0pKQotICAgIF0pOwotICB9CitmdW5jdGlvbiB3
cml0ZShhc3QsIHsgdGVtcGxhdGVzOiB0cyA9IHRlbXBsYXRlcyB9ID0ge30pIHsKKyAgdHMgPSBP
YmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZXMsIHRzKTsKIAotICBmdW5jdGlvbiBjb250YWluZXIo
aXQpIHsKLSAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKLSAgICAgIGV4dGVuZGVk
X2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLmNhbGxiYWNr
KSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5wYXJ0aWFsKSwKLSAgICAgIHRva2VuKGl0LnRva2Vu
cy5iYXNlKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5taXhpbiksCi0gICAgICBuYW1lX3Rva2Vu
KGl0LnRva2Vucy5uYW1lLCB7IGRhdGE6IGl0IH0pLAotICAgICAgaW5oZXJpdGFuY2UoaXQpLAot
ICAgICAgdG9rZW4oaXQudG9rZW5zLm9wZW4pLAotICAgICAgaXRlcmF0ZShpdC5tZW1iZXJzLCBp
dCksCi0gICAgICB0b2tlbihpdC50b2tlbnMuY2xvc2UpLAotICAgICAgdG9rZW4oaXQudG9rZW5z
LnRlcm1pbmF0aW9uKQotICAgIF0pLCB7IGRhdGE6IGl0IH0pOwotICB9Ci0KLSAgZnVuY3Rpb24g
ZmllbGQoaXQsIHBhcmVudCkgewotICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWwot
ICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCi0gICAgICB0b2tlbihpdC50
b2tlbnMucmVxdWlyZWQpLAotICAgICAgdHMudHlwZSh0eXBlKGl0LmlkbFR5cGUpKSwKLSAgICAg
IG5hbWVfdG9rZW4oaXQudG9rZW5zLm5hbWUsIHsgZGF0YTogaXQsIHBhcmVudCB9KSwKLSAgICAg
IGRlZmF1bHRfKGl0LmRlZmF1bHQpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9u
KQotICAgIF0pLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSk7Ci0gIH0KLSAgZnVuY3Rpb24gY29uc3Rf
KGl0LCBwYXJlbnQpIHsKLSAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKLSAgICAg
IGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAotICAgICAgdG9rZW4oaXQudG9rZW5z
LmJhc2UpLAotICAgICAgdHMudHlwZSh0eXBlKGl0LmlkbFR5cGUpKSwKLSAgICAgIG5hbWVfdG9r
ZW4oaXQudG9rZW5zLm5hbWUsIHsgZGF0YTogaXQsIHBhcmVudCB9KSwKLSAgICAgIHRva2VuKGl0
LnRva2Vucy5hc3NpZ24pLAotICAgICAgdG9rZW4oaXQudG9rZW5zLnZhbHVlKSwKLSAgICAgIHRv
a2VuKGl0LnRva2Vucy50ZXJtaW5hdGlvbikKLSAgICBdKSwgeyBkYXRhOiBpdCwgcGFyZW50IH0p
OwotICB9Ci0gIGZ1bmN0aW9uIHR5cGVkZWYoaXQpIHsKLSAgICByZXR1cm4gdHMuZGVmaW5pdGlv
bih0cy53cmFwKFsKLSAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAotICAg
ICAgdG9rZW4oaXQudG9rZW5zLmJhc2UpLAotICAgICAgdHMudHlwZSh0eXBlKGl0LmlkbFR5cGUp
KSwKLSAgICAgIG5hbWVfdG9rZW4oaXQudG9rZW5zLm5hbWUsIHsgZGF0YTogaXQgfSksCi0gICAg
ICB0b2tlbihpdC50b2tlbnMudGVybWluYXRpb24pCi0gICAgXSksIHsgZGF0YTogaXQgfSk7Ci0g
IH0KLSAgZnVuY3Rpb24gaW5jbHVkZXMoaXQpIHsKLSAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0
cy53cmFwKFsKLSAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAotICAgICAg
cmVmZXJlbmNlX3Rva2VuKGl0LnRva2Vucy50YXJnZXQsIGl0KSwKLSAgICAgIHRva2VuKGl0LnRv
a2Vucy5pbmNsdWRlcyksCi0gICAgICByZWZlcmVuY2VfdG9rZW4oaXQudG9rZW5zLm1peGluLCBp
dCksCi0gICAgICB0b2tlbihpdC50b2tlbnMudGVybWluYXRpb24pCi0gICAgXSksIHsgZGF0YTog
aXQgfSk7Ci0gIH0KLSAgZnVuY3Rpb24gY2FsbGJhY2soaXQpIHsKLSAgICByZXR1cm4gdHMuZGVm
aW5pdGlvbih0cy53cmFwKFsKLSAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMp
LAotICAgICAgdG9rZW4oaXQudG9rZW5zLmJhc2UpLAotICAgICAgbmFtZV90b2tlbihpdC50b2tl
bnMubmFtZSwgeyBkYXRhOiBpdCB9KSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5hc3NpZ24pLAot
ICAgICAgdHMudHlwZSh0eXBlKGl0LmlkbFR5cGUpKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5v
cGVuKSwKLSAgICAgIC4uLml0LmFyZ3VtZW50cy5tYXAoYXJndW1lbnQpLAotICAgICAgdG9rZW4o
aXQudG9rZW5zLmNsb3NlKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy50ZXJtaW5hdGlvbiksCi0g
ICAgXSksIHsgZGF0YTogaXQgfSk7Ci0gIH0KLSAgZnVuY3Rpb24gZW51bV8oaXQpIHsKLSAgICBy
ZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKLSAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMo
aXQuZXh0QXR0cnMpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLmJhc2UpLAotICAgICAgbmFtZV90
b2tlbihpdC50b2tlbnMubmFtZSwgeyBkYXRhOiBpdCB9KSwKLSAgICAgIHRva2VuKGl0LnRva2Vu
cy5vcGVuKSwKLSAgICAgIGl0ZXJhdGUoaXQudmFsdWVzLCBpdCksCi0gICAgICB0b2tlbihpdC50
b2tlbnMuY2xvc2UpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQotICAgIF0p
LCB7IGRhdGE6IGl0IH0pOwotICB9Ci0gIGZ1bmN0aW9uIGVudW1fdmFsdWUodiwgcGFyZW50KSB7
Ci0gICAgcmV0dXJuIHRzLndyYXAoWwotICAgICAgdHMudHJpdmlhKHYudG9rZW5zLnZhbHVlLnRy
aXZpYSksCi0gICAgICB0cy5kZWZpbml0aW9uKAotICAgICAgICB0cy53cmFwKFsnIicsIHRzLm5h
bWUodi52YWx1ZSwgeyBkYXRhOiB2LCBwYXJlbnQgfSksICciJ10pLAotICAgICAgICB7IGRhdGE6
IHYsIHBhcmVudCB9Ci0gICAgICApLAotICAgICAgdG9rZW4odi50b2tlbnMuc2VwYXJhdG9yKQot
ICAgIF0pOwotICB9Ci0gIGZ1bmN0aW9uIGl0ZXJhYmxlX2xpa2UoaXQsIHBhcmVudCkgewotICAg
IHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWwotICAgICAgZXh0ZW5kZWRfYXR0cmlidXRl
cyhpdC5leHRBdHRycyksCi0gICAgICB0b2tlbihpdC50b2tlbnMucmVhZG9ubHkpLAotICAgICAg
dG9rZW4oaXQudG9rZW5zLmFzeW5jKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5iYXNlLCB0cy5n
ZW5lcmljKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5vcGVuKSwKLSAgICAgIHRzLndyYXAoaXQu
aWRsVHlwZS5tYXAodHlwZSkpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLmNsb3NlKSwKLSAgICAg
IHRva2VuKGl0LnRva2Vucy5hcmdzT3BlbiksCi0gICAgICB0cy53cmFwKGl0LmFyZ3VtZW50cy5t
YXAoYXJndW1lbnQpKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5hcmdzQ2xvc2UpLAotICAgICAg
dG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQotICAgIF0pLCB7IGRhdGE6IGl0LCBwYXJlbnQg
fSk7Ci0gIH0KLSAgZnVuY3Rpb24gZW9mKGl0KSB7Ci0gICAgcmV0dXJuIHRzLnRyaXZpYShpdC50
cml2aWEpOwotICB9Ci0KLSAgY29uc3QgdGFibGUgPSB7Ci0gICAgaW50ZXJmYWNlOiBjb250YWlu
ZXIsCi0gICAgImludGVyZmFjZSBtaXhpbiI6IGNvbnRhaW5lciwKLSAgICBuYW1lc3BhY2U6IGNv
bnRhaW5lciwKLSAgICBvcGVyYXRpb24sCi0gICAgYXR0cmlidXRlLAotICAgIGNvbnN0cnVjdG9y
LAotICAgIGRpY3Rpb25hcnk6IGNvbnRhaW5lciwKLSAgICBmaWVsZCwKLSAgICBjb25zdDogY29u
c3RfLAotICAgIHR5cGVkZWYsCi0gICAgaW5jbHVkZXMsCi0gICAgY2FsbGJhY2ssCi0gICAgZW51
bTogZW51bV8sCi0gICAgImVudW0tdmFsdWUiOiBlbnVtX3ZhbHVlLAotICAgIGl0ZXJhYmxlOiBp
dGVyYWJsZV9saWtlLAotICAgIG1hcGxpa2U6IGl0ZXJhYmxlX2xpa2UsCi0gICAgc2V0bGlrZTog
aXRlcmFibGVfbGlrZSwKLSAgICAiY2FsbGJhY2sgaW50ZXJmYWNlIjogY29udGFpbmVyLAotICAg
IGVvZgotICB9OwotICBmdW5jdGlvbiBkaXNwYXRjaChpdCwgcGFyZW50KSB7Ci0gICAgY29uc3Qg
ZGlzcGF0Y2hlciA9IHRhYmxlW2l0LnR5cGVdOwotICAgIGlmICghZGlzcGF0Y2hlcikgewotICAg
ICAgdGhyb3cgbmV3IEVycm9yKGBUeXBlICIke2l0LnR5cGV9IiBpcyB1bnN1cHBvcnRlZGApOwor
ICBjb25zdCB3ID0gbmV3IFdyaXRlcih0cyk7CisKKyAgZnVuY3Rpb24gZGlzcGF0Y2goaXQpIHsK
KyAgICBpZiAoaXQudHlwZSA9PT0gImVvZiIpIHsKKyAgICAgIHJldHVybiB0cy50cml2aWEoaXQu
dHJpdmlhKTsKICAgICB9Ci0gICAgcmV0dXJuIHRhYmxlW2l0LnR5cGVdKGl0LCBwYXJlbnQpOwot
ICB9Ci0gIGZ1bmN0aW9uIGl0ZXJhdGUodGhpbmdzLCBwYXJlbnQpIHsKLSAgICBpZiAoIXRoaW5n
cykgcmV0dXJuOwotICAgIGNvbnN0IHJlc3VsdHMgPSB0aGluZ3MubWFwKHRoaW5nID0+IGRpc3Bh
dGNoKHRoaW5nLCBwYXJlbnQpKTsKLSAgICByZXR1cm4gdHMud3JhcChyZXN1bHRzKTsKKyAgICBy
ZXR1cm4gaXQud3JpdGUodyk7CiAgIH0KLSAgcmV0dXJuIGl0ZXJhdGUoYXN0KTsKKyAgcmV0dXJu
IHRzLndyYXAoYXN0Lm1hcChkaXNwYXRjaCkpOwogfQogCiAKIC8qKiovIH0pLAogLyogMzEgKi8K
LS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19y
ZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18s
IF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBz
dHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyog
aGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBh
Y2tfZXhwb3J0c19fLCAidmFsaWRhdGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHZhbGlkYXRlOyB9
KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tf
ZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJ2YWxpZGF0ZSI6ICgpID0+ICgv
KiBiaW5kaW5nICovIHZhbGlkYXRlKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJt
b255IGltcG9ydCAqLyB2YXIgX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18g
PSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpOwogCiAKLQotCiBmdW5jdGlvbiBnZXRNaXhpbk1hcChh
bGwsIHVuaXF1ZSkgewogICBjb25zdCBtYXAgPSBuZXcgTWFwKCk7Ci0gIGNvbnN0IGluY2x1ZGVz
ID0gYWxsLmZpbHRlcihkZWYgPT4gZGVmLnR5cGUgPT09ICJpbmNsdWRlcyIpOworICBjb25zdCBp
bmNsdWRlcyA9IGFsbC5maWx0ZXIoKGRlZikgPT4gZGVmLnR5cGUgPT09ICJpbmNsdWRlcyIpOwog
ICBmb3IgKGNvbnN0IGluY2x1ZGUgb2YgaW5jbHVkZXMpIHsKICAgICBjb25zdCBtaXhpbiA9IHVu
aXF1ZS5nZXQoaW5jbHVkZS5pbmNsdWRlcyk7CiAgICAgaWYgKCFtaXhpbikgewpAQCAtMzE3OCw3
ICszNTk4LDcgQEAgZnVuY3Rpb24gZ3JvdXBEZWZpbml0aW9ucyhhbGwpIHsKICAgICBtaXhpbk1h
cDogZ2V0TWl4aW5NYXAoYWxsLCB1bmlxdWUpLAogICAgIGNhY2hlOiB7CiAgICAgICB0eXBlZGVm
SW5jbHVkZXNEaWN0aW9uYXJ5OiBuZXcgV2Vha01hcCgpLAotICAgICAgZGljdGlvbmFyeUluY2x1
ZGVzUmVxdWlyZWRGaWVsZDogbmV3IFdlYWtNYXAoKQorICAgICAgZGljdGlvbmFyeUluY2x1ZGVz
UmVxdWlyZWRGaWVsZDogbmV3IFdlYWtNYXAoKSwKICAgICB9LAogICB9OwogfQpAQCAtMzE4Niw4
ICszNjA2LDEwIEBAIGZ1bmN0aW9uIGdyb3VwRGVmaW5pdGlvbnMoYWxsKSB7CiBmdW5jdGlvbiog
Y2hlY2tEdXBsaWNhdGVkTmFtZXMoeyB1bmlxdWUsIGR1cGxpY2F0ZXMgfSkgewogICBmb3IgKGNv
bnN0IGR1cCBvZiBkdXBsaWNhdGVzKSB7CiAgICAgY29uc3QgeyBuYW1lIH0gPSBkdXA7Ci0gICAg
Y29uc3QgbWVzc2FnZSA9IGBUaGUgbmFtZSAiJHtuYW1lfSIgb2YgdHlwZSAiJHt1bmlxdWUuZ2V0
KG5hbWUpLnR5cGV9IiB3YXMgYWxyZWFkeSBzZWVuYDsKLSAgICB5aWVsZCBPYmplY3QoX2Vycm9y
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bInZhbGlkYXRpb25FcnJvciJdKShkdXAu
dG9rZW5zLm5hbWUsIGR1cCwgIm5vLWR1cGxpY2F0ZSIsIG1lc3NhZ2UpOworICAgIGNvbnN0IG1l
c3NhZ2UgPSBgVGhlIG5hbWUgIiR7bmFtZX0iIG9mIHR5cGUgIiR7CisgICAgICB1bmlxdWUuZ2V0
KG5hbWUpLnR5cGUKKyAgICB9IiB3YXMgYWxyZWFkeSBzZWVuYDsKKyAgICB5aWVsZCAoMCxfZXJy
b3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy52YWxpZGF0aW9uRXJyb3IpKGR1cC50
b2tlbnMubmFtZSwgZHVwLCAibm8tZHVwbGljYXRlIiwgbWVzc2FnZSk7CiAgIH0KIH0KIApAQCAt
MzIxOCw2ICszNjQwLDg1IEBAIGZ1bmN0aW9uIHZhbGlkYXRlKGFzdCkgewogCiAKIC8qKiovIH0p
Ci0vKioqKioqLyBdKTsKKy8qKioqKiovIAldKTsKKy8qKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioqKioq
LyAJLy8gVGhlIG1vZHVsZSBjYWNoZQorLyoqKioqKi8gCXZhciBfX3dlYnBhY2tfbW9kdWxlX2Nh
Y2hlX18gPSB7fTsKKy8qKioqKiovIAkKKy8qKioqKiovIAkvLyBUaGUgcmVxdWlyZSBmdW5jdGlv
bgorLyoqKioqKi8gCWZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHsKKy8q
KioqKiovIAkJLy8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlCisvKioqKioqLyAJCXZhciBj
YWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdOworLyoqKioq
Ki8gCQlpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHsKKy8qKioqKiovIAkJCXJldHVy
biBjYWNoZWRNb2R1bGUuZXhwb3J0czsKKy8qKioqKiovIAkJfQorLyoqKioqKi8gCQkvLyBDcmVh
dGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKQorLyoqKioqKi8gCQl2
YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHsKKy8qKioq
KiovIAkJCS8vIG5vIG1vZHVsZS5pZCBuZWVkZWQKKy8qKioqKiovIAkJCS8vIG5vIG1vZHVsZS5s
b2FkZWQgbmVlZGVkCisvKioqKioqLyAJCQlleHBvcnRzOiB7fQorLyoqKioqKi8gCQl9OworLyoq
KioqKi8gCQorLyoqKioqKi8gCQkvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb24KKy8qKioq
KiovIAkJX193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0
cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7CisvKioqKioqLyAJCisvKioqKioqLyAJCS8vIFJldHVy
biB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlCisvKioqKioqLyAJCXJldHVybiBtb2R1bGUuZXhw
b3J0czsKKy8qKioqKiovIAl9CisvKioqKioqLyAJCisvKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqKioq
Ki8gCS8qIHdlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyAqLworLyoqKioq
Ki8gCSgoKSA9PiB7CisvKioqKioqLyAJCS8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBo
YXJtb255IGV4cG9ydHMKKy8qKioqKiovIAkJX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9y
dHMsIGRlZmluaXRpb24pID0+IHsKKy8qKioqKiovIAkJCWZvcih2YXIga2V5IGluIGRlZmluaXRp
b24pIHsKKy8qKioqKiovIAkJCQlpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwg
a2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHsKKy8qKioqKiov
IAkJCQkJT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0
cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTsKKy8qKioqKiovIAkJCQl9CisvKioqKioqLyAJ
CQl9CisvKioqKioqLyAJCX07CisvKioqKioqLyAJfSkoKTsKKy8qKioqKiovIAkKKy8qKioqKiov
IAkvKiB3ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kICovCisvKioqKioq
LyAJKCgpID0+IHsKKy8qKioqKiovIAkJX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJv
cCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKQor
LyoqKioqKi8gCX0pKCk7CisvKioqKioqLyAJCisvKioqKioqLyAJLyogd2VicGFjay9ydW50aW1l
L21ha2UgbmFtZXNwYWNlIG9iamVjdCAqLworLyoqKioqKi8gCSgoKSA9PiB7CisvKioqKioqLyAJ
CS8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHMKKy8qKioqKiovIAkJX193ZWJwYWNrX3Jl
cXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHsKKy8qKioqKiovIAkJCWlmKHR5cGVvZiBTeW1ib2wg
IT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykgeworLyoqKioqKi8gCQkJCU9i
amVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6
ICdNb2R1bGUnIH0pOworLyoqKioqKi8gCQkJfQorLyoqKioqKi8gCQkJT2JqZWN0LmRlZmluZVBy
b3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTsKKy8qKioqKiov
IAkJfTsKKy8qKioqKiovIAl9KSgpOworLyoqKioqKi8gCQorLyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3Zh
ciBfX3dlYnBhY2tfZXhwb3J0c19fID0ge307CisvLyBUaGlzIGVudHJ5IG5lZWQgdG8gYmUgd3Jh
cHBlZCBpbiBhbiBJSUZFIGJlY2F1c2UgaXQgbmVlZCB0byBiZSBpc29sYXRlZCBhZ2FpbnN0IG90
aGVyIG1vZHVsZXMgaW4gdGhlIGNodW5rLgorKCgpID0+IHsKK19fd2VicGFja19yZXF1aXJlX18u
cihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19y
ZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAg
ICJwYXJzZSI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9saWJfd2ViaWRsMl9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnBhcnNlKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAg
IndyaXRlIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2xpYl93cml0ZXJfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfXy53cml0ZSksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJ2
YWxpZGF0ZSI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9saWJfdmFsaWRhdG9yX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udmFsaWRhdGUpLAorLyogaGFybW9ueSBleHBvcnQg
Ki8gICAiV2ViSURMUGFyc2VFcnJvciI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9saWJf
dG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uV2ViSURMUGFyc2VFcnJv
cikKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9s
aWJfd2ViaWRsMl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3Jl
cXVpcmVfXygxKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfbGliX3dyaXRlcl9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzMCk7CisvKiBo
YXJtb255IGltcG9ydCAqLyB2YXIgX2xpYl92YWxpZGF0b3JfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMzEpOworLyogaGFybW9ueSBpbXBvcnQg
Ki8gdmFyIF9saWJfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBf
X3dlYnBhY2tfcmVxdWlyZV9fKDIpOworCisKKworCisKK30pKCk7CisKKy8qKioqKiovIAlyZXR1
cm4gX193ZWJwYWNrX2V4cG9ydHNfXzsKKy8qKioqKiovIH0pKCkKKzsKIH0pOwogLy8jIHNvdXJj
ZU1hcHBpbmdVUkw9d2ViaWRsMi5qcy5tYXAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432060</attachid>
            <date>2021-06-23 09:33:13 -0700</date>
            <delta_ts>2021-06-23 10:02:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227296-20210623093312.patch</filename>
            <type>text/plain</type>
            <size>405692</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTY5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmE5ZjNlODQ2MzFiMGJlOWU2ZjU5
NzRkNjBmNmY0OTFiZDVhODdiYy4uYjcwMzkyNmY3ODAxZGJhYjY3ODE2ZmVlYmFjMTU1NWRhMmNl
NDBjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTA2LTIzICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIFdQVCByZXNvdXJjZXMgZnJvbSB1cHN0
cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3
Mjk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20v
aWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDYtMjEgIERhcmluIEFkbGVy
ICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcHJvdmUgbW9yZSBvZiB0aGUgQ1NTIGxp
c3Qgc3R5bGUgaW1wbGVtZW50YXRpb25zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRl
eCAxYmZlZGEzNDI1MmI1NzY5ZTIwNDljMmM4ZDg3YmUwYjNiYjg0NzhiLi5jNTg3OGZlYzE0Nzc1
ZTdlYmQ0ODcwMTM1MWE2ZmMyOGFkNTAxYTg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw0NSBAQAorMjAyMS0wNi0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBXUFQgcmVzb3VyY2VzIGZyb20gdXBzdHJlYW0KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI5NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvaWRs
aGFybmVzcy5odHRwcy5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9XZWJDcnlwdG9BUEkvaWRsaGFybmVzcy5odHRwcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kv
c2VjdXJpdHlwb2xpY3l2aW9sYXRpb24vaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWFuaW1hdGlvbnMvaWRsaGFybmVz
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9u
dC1sb2FkaW5nL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXN5bnRheC9pbnB1dC1wcmVwcm9jZXNzaW5nLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9p
ZGxoYXJuZXNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvaWRsaGFybmVzcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pZGxoYXJuZXNzLndpbmRvdy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbXBhcnNpbmcvaWRsaGFy
bmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9l
dmVudHNvdXJjZS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkx
OC9pZGxoYXJuZXNzLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvaWRsaGFybmVzcy50ZW50YXRpdmUuYW55
Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2hyLXRp
bWUvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9oci10aW1lL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9uYXZp
Z2F0aW5nLWFjcm9zcy1kb2N1bWVudHMvamF2YXNjcmlwdC11cmwtcmV0dXJuLXZhbHVlLWhhbmRs
aW5nLWR5bmFtaWMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2RvbS9pZGxoYXJuZXNzLndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVy
ZWQtZGF0YS9zdHJ1Y3R1cmVkLWNsb25pbmctZXJyb3Itc3RhY2stb3B0aW9uYWwuc3ViLndpbmRv
dy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMv
RE9NLVBhcnNpbmcuaWRsOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2Vz
L1NWRy5pZGw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvbWVkaWFz
ZXNzaW9uLmlkbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9uL2lk
bGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvbm90aWZpY2F0aW9ucy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL25vdGlmaWNhdGlvbnMvaWRsaGFybmVzcy5odHRwcy5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcG9p
bnRlcmV2ZW50cy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgIFJlYmFz
ZWxpbmUgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzLyo6IFVwZGF0ZWQuCisKIDIwMjEtMDYtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgV1BUIHRvb2xzIGZyb20gdXBzdHJlYW0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4
dAppbmRleCA2MTQwNTRmOTFiMDJjODcxYjNmODExNjBiN2RiMzVhMDdiZTcwMmI2Li5kYTRiMGVi
N2ViYjU2YTUwYmI2YjBhNWM3MTMxMTY1YjZmYjBjOWRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFu
eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CkBAIC03LDEwICs3
LDEwIEBAIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgV2luZG93OiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dPcldv
cmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXb3JrZXJHbG9i
YWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd1Nlc3Np
b25TdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMg
V2luZG93TG9jYWxTdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBXb3JrZXJH
bG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBJREJSZXF1ZXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgSURCUmVxdWVzdCBpbnRlcmZhY2Ug
b2JqZWN0IGxlbmd0aAogUEFTUyBJREJSZXF1ZXN0IGludGVyZmFjZSBvYmplY3QgbmFtZQpAQCAt
MTk1LDUgKzE5NSw0IEBAIFBBU1MgSURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
b25hYm9ydAogUEFTUyBJREJUcmFuc2FjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmNvbXBs
ZXRlCiBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uZXJyb3IKIFBB
U1MgV2luZG93IGludGVyZmFjZTogYXR0cmlidXRlIGluZGV4ZWREQgotUEFTUyBXb3JrZXJHbG9i
YWxTY29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
b2JqZWN0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxo
YXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDY1MDkzZGEzMDI1MjBkMTljNjM2
YTI5YjlhOWY0Zjg1MDY1MmMwNzkuLjRiNjhiZDZlOGJjZjIxOTU1ZDdhYThkM2Y3ZTZkMjRlZTcx
ZWVhOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRs
aGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtNywxMCArNywxMCBAQCBQQVNTIFBh
cnRpYWwgaW50ZXJmYWNlIFdpbmRvdzogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2lu
ZG93IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29w
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVk
ZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3Rv
cmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5j
bHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
IFBBU1MgSURCUmVxdWVzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2Ugb2JqZWN0CiBQQVNTIElEQlJlcXVlc3QgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgK
IFBBU1MgSURCUmVxdWVzdCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKQEAgLTE5NCw2ICsxOTQsNSBA
QCBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIGFib3J0KCkKIFBBU1Mg
SURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25hYm9ydAogUEFTUyBJREJUcmFu
c2FjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmNvbXBsZXRlCiBQQVNTIElEQlRyYW5zYWN0
aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uZXJyb3IKLVBBU1MgV2luZG93IGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgV29ya2Vy
R2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaW5kZXhlZERCCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJ
L2lkbGhhcm5lc3MuaHR0cHMuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2lkbGhhcm5lc3MuaHR0cHMuYW55
LWV4cGVjdGVkLnR4dAppbmRleCAxZjRhN2VkOGJlMWUzN2Q2NDk0ZWE2YmNiMmQyYTA5NjM4NGFk
ZDRmLi45OTc4MjlkMjAyMGEwMjVkNjUzN2JkOWE0MjcxZmI0NDQ3ZWZjNmI0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQ
SS9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvaWRsaGFybmVzcy5odHRw
cy5hbnktZXhwZWN0ZWQudHh0CkBAIC03LDEwICs3LDEwIEBAIFBBU1MgUGFydGlhbCBpbnRlcmZh
Y2UgV2luZG93OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMg
R2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93
IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQorUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldv
cmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5j
bHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd1Nlc3Npb25TdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93TG9jYWxTdG9yYWdlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dP
cldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBDcnlwdG8g
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAog
UEFTUyBDcnlwdG8gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgQ3J5cHRvIGludGVyZmFj
ZSBvYmplY3QgbmFtZQpAQCAtNzksNSArNzksNCBAQCBQQVNTIFN1YnRsZUNyeXB0byBpbnRlcmZh
Y2U6IGNhbGxpbmcgd3JhcEtleShLZXlGb3JtYXQsIENyeXB0b0tleSwgQ3J5cHRvS2V5LCBBbAog
UEFTUyBTdWJ0bGVDcnlwdG8gaW50ZXJmYWNlOiBjcnlwdG8uc3VidGxlIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAidW53cmFwS2V5KEtleUZvcm1hdCwgQnVmZmVyU291cmNlLCBDcnlwdG9LZXksIEFs
Z29yaXRobUlkZW50aWZpZXIsIEFsZ29yaXRobUlkZW50aWZpZXIsIGJvb2xlYW4sIHNlcXVlbmNl
PEtleVVzYWdlPikiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFN1YnRsZUNyeXB0byBpbnRl
cmZhY2U6IGNhbGxpbmcgdW53cmFwS2V5KEtleUZvcm1hdCwgQnVmZmVyU291cmNlLCBDcnlwdG9L
ZXksIEFsZ29yaXRobUlkZW50aWZpZXIsIEFsZ29yaXRobUlkZW50aWZpZXIsIGJvb2xlYW4sIHNl
cXVlbmNlPEtleVVzYWdlPikgb24gY3J5cHRvLnN1YnRsZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yCiBQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBj
cnlwdG8KLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9pZGxoYXJuZXNzLmh0
dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvaWRsaGFybmVzcy5odHRwcy5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dAppbmRleCBhYjg2OWE1MjIyNTBlM2Y1MDdkM2UzNzU0YTQ0ZDFmZDIxZWFm
YjM4Li5lZjkxMDVkMWNkY2NiM2ZmYmVkNDQ5OTEzYTQ3ZjdlZWM2OTE2M2E2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQ
SS9pZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2lkbGhhcm5l
c3MuaHR0cHMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTcsMTAgKzcsMTAgQEAgUEFTUyBQ
YXJ0aWFsIGludGVyZmFjZSBXaW5kb3c6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdp
bmRvdyBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2Nv
cGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdvcmtlckdsb2JhbFNjb3BlIGluY2x1
ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vzc2lvblN0b3JhZ2U6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dMb2NhbFN0
b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGlu
Y2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIENyeXB0byBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0CiBQQVNTIENyeXB0byBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBD
cnlwdG8gaW50ZXJmYWNlIG9iamVjdCBuYW1lCkBAIC03OCw2ICs3OCw1IEBAIFBBU1MgU3VidGxl
Q3J5cHRvIGludGVyZmFjZTogY3J5cHRvLnN1YnRsZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIndy
YXBLZXkoS2V5Rm9yCiBQQVNTIFN1YnRsZUNyeXB0byBpbnRlcmZhY2U6IGNhbGxpbmcgd3JhcEtl
eShLZXlGb3JtYXQsIENyeXB0b0tleSwgQ3J5cHRvS2V5LCBBbGdvcml0aG1JZGVudGlmaWVyKSBv
biBjcnlwdG8uc3VidGxlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IKIFBBU1MgU3VidGxlQ3J5cHRvIGludGVyZmFjZTogY3J5cHRvLnN1YnRsZSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInVud3JhcEtleShLZXlGb3JtYXQsIEJ1ZmZlclNvdXJjZSwgQ3J5cHRvS2V5
LCBBbGdvcml0aG1JZGVudGlmaWVyLCBBbGdvcml0aG1JZGVudGlmaWVyLCBib29sZWFuLCBzZXF1
ZW5jZTxLZXlVc2FnZT4pIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBTdWJ0bGVDcnlwdG8g
aW50ZXJmYWNlOiBjYWxsaW5nIHVud3JhcEtleShLZXlGb3JtYXQsIEJ1ZmZlclNvdXJjZSwgQ3J5
cHRvS2V5LCBBbGdvcml0aG1JZGVudGlmaWVyLCBBbGdvcml0aG1JZGVudGlmaWVyLCBib29sZWFu
LCBzZXF1ZW5jZTxLZXlVc2FnZT4pIG9uIGNyeXB0by5zdWJ0bGUgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvcgotUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBXb3JrZXJHbG9iYWxT
Y29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjcnlwdG8KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBvbGlj
eS9zZWN1cml0eXBvbGljeXZpb2xhdGlvbi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRlbnQtc2Vj
dXJpdHktcG9saWN5L3NlY3VyaXR5cG9saWN5dmlvbGF0aW9uL2lkbGhhcm5lc3Mud2luZG93LWV4
cGVjdGVkLnR4dAppbmRleCAxYmRlNTZkYTliNjQ4NWM2ODNkMWY3YjRkODc5OTMyZWQxYWI5NGY1
Li4xNjdiMjJjYmE0ZTBjYTM1Zjk0ODQzYTE0MGMxNWI1MmUzODAxOWJhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRlbnQtc2VjdXJp
dHktcG9saWN5L3NlY3VyaXR5cG9saWN5dmlvbGF0aW9uL2lkbGhhcm5lc3Mud2luZG93LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2NvbnRlbnQtc2VjdXJpdHktcG9saWN5L3NlY3VyaXR5cG9saWN5dmlvbGF0aW9uL2lkbGhhcm5l
c3Mud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMTksNyArMTksNyBAQCBGQUlMIENTUFZpb2xhdGlv
blJlcG9ydEJvZHkgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc3RhdHVzQ29kZSBhc3NlcnRfb3duX3By
b3BlcnR5OgogRkFJTCBDU1BWaW9sYXRpb25SZXBvcnRCb2R5IGludGVyZmFjZTogYXR0cmlidXRl
IGxpbmVOdW1iZXIgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiQ1NQVmlvbGF0aW9uUmVwb3J0Qm9keSIgZXhwZWN0ZWQgcHJvcGVydHkgIkNTUFZp
b2xhdGlvblJlcG9ydEJvZHkiIG1pc3NpbmcKIEZBSUwgQ1NQVmlvbGF0aW9uUmVwb3J0Qm9keSBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBjb2x1bW5OdW1iZXIgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2Vs
ZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiQ1NQVmlvbGF0aW9uUmVwb3J0Qm9keSIgZXhw
ZWN0ZWQgcHJvcGVydHkgIkNTUFZpb2xhdGlvblJlcG9ydEJvZHkiIG1pc3NpbmcKIFBBU1MgU2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKK0ZBSUwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfZXF1YWxzOiB3cm9uZyB2YWx1ZSBm
b3IgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5sZW5ndGggZXhwZWN0ZWQgMCBidXQgZ290
IDEKIFBBU1MgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5h
bWUKIFBBU1MgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAogUEFTUyBTZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWFuaW1hdGlvbnMvaWRsaGFybmVzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtYW5pbWF0aW9ucy9pZGxo
YXJuZXNzLWV4cGVjdGVkLnR4dAppbmRleCBmOWFlNzY1NzI1YmQxYTdlNWUyYzhmYmFmNDJmODI3
MDY5ODFmYWJiLi4yYjYyZGQ1NGQwMWUwNThhYzdmMjUwY2Q2OTcwOWE0MjFlZWIzZGQxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtYW5pbWF0aW9ucy9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtYW5pbWF0aW9ucy9pZGxoYXJu
ZXNzLWV4cGVjdGVkLnR4dApAQCAtMTAsMjQgKzEwLDI0IEBAIFBBU1MgUGFydGlhbCBpbnRlcmZh
Y2UgRG9jdW1lbnRbMl06IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50
ZXJmYWNlIFdpbmRvdzogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5j
bHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
RG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVu
dE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFBh
cmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVz
IFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVs
ZW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5k
bGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMg
RWxlbWVudENvbnRlbnRFZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRN
TEVsZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZHRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKLVBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0eWxlOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5k
bGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRv
d0V2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNs
dWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQog
UEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd1Nlc3Npb25TdG9yYWdlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93TG9jYWxT
dG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBO
b25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1l
bnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxl
bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBF
bGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEVsZW1lbnRD
U1NJbmxpbmVTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgQW5pbWF0aW9uRXZl
bnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dAogUEFTUyBBbmltYXRpb25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBBbmlt
YXRpb25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250LWxvYWRpbmcvaWRs
aGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udC1sb2FkaW5nL2lkbGhhcm5lc3MuaHR0cHMtZXhw
ZWN0ZWQudHh0CmluZGV4IDU5MzAxNzRiZTEwY2IyYWEyMDQwNDU5ZWUyNjI5ZDMwOTdmOWEyMTEu
LmUwNjNlNDI1ODg0ZWJiZTBiZjM4ODFjM2E4MTNjY2VkMDFlMmI2OWMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250LWxv
YWRpbmcvaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnQtbG9hZGluZy9pZGxoYXJu
ZXNzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNCwxMiArNCwxMiBAQCBQQVNTIGlkbF90ZXN0IHZh
bGlkYXRpb24KIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnQ6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50WzJdOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBGb250RmFjZVNvdXJjZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgRm9u
dEZhY2VTb3VyY2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGluY2x1
ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBE
b2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIERvY3VtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxl
bWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdvcmtlckds
b2JhbFNjb3BlIGluY2x1ZGVzIEZvbnRGYWNlU291cmNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNj
b3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBGb250RmFjZSBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIEZvbnRGYWNl
IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCkBAIC05Myw1ICs5Myw0IEBAIFBBU1MgRm9udEZhY2VT
ZXQgaW50ZXJmYWNlOiBkb2N1bWVudC5mb250cyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlYWR5
IiB3aXRoIHRoCiBQQVNTIEZvbnRGYWNlU2V0IGludGVyZmFjZTogZG9jdW1lbnQuZm9udHMgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJzdGF0dXMiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIERv
Y3VtZW50IGludGVyZmFjZTogYXR0cmlidXRlIGZvbnRzCiBQQVNTIERvY3VtZW50IGludGVyZmFj
ZTogZG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJmb250cyIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc3ludGF4L2lucHV0LXByZXBy
b2Nlc3NpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXN5bnRheC9pbnB1dC1wcmVwcm9jZXNzaW5nLWV4cGVjdGVkLnR4
dAppbmRleCA5ZDFjNjJlZDlmZTU4YzY1Nzg5OTQwYjQ1ODE2YTBmMjAyY2Y2ZTYzLi5mMGUzYWUy
NmJhMjMxYWQxMDA4M2M1NWU3Mjc2YjZlMGE2NGEwNDIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc3ludGF4L2lucHV0LXBy
ZXByb2Nlc3NpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zeW50YXgvaW5wdXQtcHJlcHJvY2Vzc2luZy1leHBl
Y3RlZC50eHQKQEAgLTQsOSArNCw5IEBAIFBBU1MgImZcMG9vIiBiZWNvbWVzICJm77+9b28iCiBQ
QVNTICJcMGZvbyIgYmVjb21lcyAi77+9Zm9vIgogUEFTUyAiXDAiIGJlY29tZXMgIu+/vSIKIFBB
U1MgIlwwXDBcMCIgYmVjb21lcyAi77+977+977+9IgotRkFJTCAiZm9vVStkODAwIiBiZWNvbWVz
ICJmb2/vv70iIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJmb29cdWZmZmQiIGJ1dCBnb3QgImZv
b++/vSIKLUZBSUwgImZVK2Q4MDBvbyIgYmVjb21lcyAiZu+/vW9vIiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiZlx1ZmZmZG9vIiBidXQgZ290ICJm77+9b28iCi1GQUlMICJVK2Q4MDBmb28iIGJl
Y29tZXMgIu+/vWZvbyIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlx1ZmZmZGZvbyIgYnV0IGdv
dCAi77+9Zm9vIgotRkFJTCAiVStkODAwIiBiZWNvbWVzICLvv70iIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJcdWZmZmQiIGJ1dCBnb3QgIu+/vSIKLUZBSUwgIlUrZDgwMFUrZDgwMFUrZDgwMCIg
YmVjb21lcyAi77+977+977+9IiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiXHVmZmZkXHVmZmZk
XHVmZmZkIiBidXQgZ290ICLvv73vv73vv70iCitGQUlMICJmb29VK2Q4MDAiIGJlY29tZXMgImZv
b++/vSIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImZvb1x1ZmZmZCIgYnV0IGdvdCAiZm9vVStk
ODAwIgorRkFJTCAiZlUrZDgwMG9vIiBiZWNvbWVzICJm77+9b28iIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJmXHVmZmZkb28iIGJ1dCBnb3QgImZVK2Q4MDBvbyIKK0ZBSUwgIlUrZDgwMGZvbyIg
YmVjb21lcyAi77+9Zm9vIiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiXHVmZmZkZm9vIiBidXQg
Z290ICJVK2Q4MDBmb28iCitGQUlMICJVK2Q4MDAiIGJlY29tZXMgIu+/vSIgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgIlx1ZmZmZCIgYnV0IGdvdCAiVStkODAwIgorRkFJTCAiVStkODAwVStkODAw
VStkODAwIiBiZWNvbWVzICLvv73vv73vv70iIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJcdWZm
ZmRcdWZmZmRcdWZmZmQiIGJ1dCBnb3QgIlUrZDgwMFUrZDgwMFUrZDgwMCIKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRy
YW5zaXRpb25zL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zL2lkbGhhcm5lc3MtZXhw
ZWN0ZWQudHh0CmluZGV4IDA3YTI4M2ZlNjE1ZTliZDNiZmIyMzBhZTJkZDllZmY4ZTI0ODk4ZjUu
LjRjMDkzZTgzMjBjNTU0NDZmZjc4ODkzNDY5MzViYzBkZTYwYzljYjIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0
aW9ucy9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvaWRsaGFybmVzcy1leHBl
Y3RlZC50eHQKQEAgLTgsOSArOCw2IEBAIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnRb
Ml06IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFdpbmRv
dzogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgR2xvYmFs
RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5j
bHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVh
dG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVk
ZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRN
TEVsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENvbnRl
bnRFZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAgLTIxLDEwICsxOCwxMyBAQCBQ
QVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRl
cjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd1Nl
c3Npb25TdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVk
ZXMgV2luZG93TG9jYWxTdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1
bWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2
YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFRyYW5zaXRpb25FdmVu
dCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0
CiBQQVNTIFRyYW5zaXRpb25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBUcmFu
c2l0aW9uRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBuYW1lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2lkbGhhcm5l
c3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3Nzb20tdmlldy9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAppbmRleCBmZTEzZTk5
OWM0NTY0YzRjOTU3MTRhODE5YmNjNDkxMzQ2NGYxZmQ4Li5mNTUyN2VmNzExOWM4OTRlN2ZhOTVk
MTlmZTcyZDFiZDI1MWU2MzM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKQEAgLTI5LDIwICsyOSwxMiBAQCBQQVNT
IFBhcnRpYWwgaW50ZXJmYWNlIEhUTUxJbWFnZUVsZW1lbnRbMl06IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50WzRdOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBXaW5kb3dbM106IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIFRleHQgaW5jbHVkZXMgR2VvbWV0cnlVdGlsczogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKLVBBU1MgVGV4dCBpbmNsdWRlcyBTbG90dGFibGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgR2VvbWV0cnlVdGlsczogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlw
ZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRl
cyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEVsZW1lbnQgaW5jbHVk
ZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBDU1NQc2V1ZG9FbGVt
ZW50IGluY2x1ZGVzIEdlb21ldHJ5VXRpbHM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNT
IERvY3VtZW50IGluY2x1ZGVzIEdlb21ldHJ5VXRpbHM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEVsZW1lbnRDU1NJbmxpbmVTdHlsZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5k
bGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9j
dW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBB
U1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVu
dENTU0lubGluZVN0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MRWxlbWVu
dCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQog
UEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJz
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBFbGVt
ZW50Q29udGVudEVkaXRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQpAQCAtNTMsOCArNDUs
MTYgQEAgUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1l
UHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBX
aW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93
IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BB
U1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBOb25Eb2N1bWVudFR5cGVDaGls
ZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIENoYXJhY3RlckRhdGEgaW5jbHVk
ZXMgTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFT
UyBFbGVtZW50IGluY2x1ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgQ2hhcmFjdGVyRGF0YSBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQorUEFTUyBUZXh0IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIE1lZGlhUXVlcnlMaXN0IGlu
dGVyZmFjZSBvYmplY3QgbGVuZ3RoCiBQQVNTIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZSBvYmpl
Y3QgbmFtZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20vaWRsaGFybmVzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS9pZGxoYXJuZXNzLWV4cGVj
dGVkLnR4dAppbmRleCBhYjlkNjRiODEwM2VlNzRiMGI4YTQxMDQwZTkwNWY2OTBhZDYxNDVmLi5k
ZmMwOTM3M2NkOTYwMjU4MjYzNGI1MDNhNzI5NjNmOWM3M2EzM2EwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS9pZGxoYXJu
ZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dApAQCAtMTUsMTYgKzE1
LDE2IEBAIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgSFRNTFN0eWxlRWxlbWVudDogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgV2luZG93WzJdOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gaW5jbHVkZXMgTGlu
a1N0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRl
cyBFbGVtZW50Q1NTSW5saW5lU3R5bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEhU
TUxFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCi1QQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50
SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEhUTUxFbGVtZW50IGluY2x1
ZGVzIEVsZW1lbnRDb250ZW50RWRpdGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNT
IEhUTUxFbGVtZW50IGluY2x1ZGVzIEhUTUxPclNWR0VsZW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0eWxlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2
ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQgaW5j
bHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgU1ZHRWxlbWVudCBpbmNsdWRlcyBTVkdFbGVtZW50SW5zdGFuY2U6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZHRWxl
bWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHU3R5bGVFbGVtZW50IGluY2x1
ZGVzIExpbmtTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgSFRNTEVsZW1lbnQg
aW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BB
U1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVu
dENvbnRlbnRFZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgSFRNTEVsZW1l
bnQgaW5jbHVkZXMgSFRNTE9yU1ZHRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgSFRNTExpbmtFbGVtZW50IGluY2x1ZGVzIExpbmtTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgSFRNTFN0eWxlRWxlbWVudCBpbmNsdWRlcyBMaW5rU3R5bGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJz
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQpAQCAtMzQsMTggKzM0LDE4IEBAIFBBU1MgV2luZG93
IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBh
cmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50RnJhZ21lbnQg
aW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50T3JTaGFkb3dSb290OiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQorUEFTUyBTaGFkb3dSb290IGluY2x1ZGVzIERvY3VtZW50T3JTaGFkb3dSb290
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBQYXJlbnRO
b2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0
aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50RnJh
Z21lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKLVBBU1MgU2hhZG93Um9vdCBpbmNsdWRlcyBEb2N1bWVudE9yU2hhZG93
Um9vdDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBQYXJl
bnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5v
bkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxl
bWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEVs
ZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBD
aGFyYWN0ZXJEYXRhIGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIENoYXJhY3RlckRhdGEgaW5jbHVkZXMgQ2hpbGROb2RlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0YWJsZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhFdmFs
dWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBNZWRpYUxpc3QgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBN
ZWRpYUxpc3QgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgTWVkaWFMaXN0IGludGVyZmFj
ZSBvYmplY3QgbmFtZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2lkbGhhcm5lc3Mu
YW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggZWIyZDlhYmQyYjE1MmUzMDAwODRlNzA4ZGRk
N2M4YmM5Zjc2NTdjOS4uZjZkMTk0ZmZmY2FmMWIxZjAzMDZlNWVjNDI3YWIxOTVjMzAzNDJiYyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pZGxoYXJuZXNzLmFueS53b3JrZXIt
ZXhwZWN0ZWQudHh0CkBAIC03LDIxICs3LDIxIEBAIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9j
dW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIERv
Y3VtZW50WzJdOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQYXJ0aWFsIGludGVyZmFj
ZSBXaW5kb3dbMl06IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGluY2x1
ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBE
b2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFT
UyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxl
bWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50
RnJhZ21lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50
VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNs
dWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEVsZW1lbnQgaW5j
bHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBDaGFyYWN0ZXJE
YXRhIGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKLVBBU1MgQ2hhcmFjdGVyRGF0YSBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50VHlwZSBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGROb2RlOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBDaGFyYWN0ZXJEYXRhIGluY2x1ZGVzIENoaWxkTm9k
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBTbG90dGFi
bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFRleHQgaW5jbHVkZXMgU2xvdHRhYmxl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2
YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFhQYXRoRXZhbHVhdG9y
IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BB
U1MgRG9jdW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRI
YW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVk
ZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRN
TEVsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENvbnRl
bnRFZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAgLTIwNSw3ICsyMDUsNCBAQCBQ
QVNTIFhQYXRoRXhwcmVzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIFhQYXRoTlNSZXNvbHZlciBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIFhQYXRoRXZhbHVh
dG9yIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmpl
Y3QKIFBBU1MgWFNMVFByb2Nlc3NvciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIEhUTUxFbGVtZW50IGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKLVBBU1MgSFRNTFNsb3RFbGVt
ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmpl
Y3QKLVBBU1MgV2luZG93IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBvYmplY3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaWRsaGFybmVzcy53
aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IDliOTM3Y2MwNTVkY2RlMjVlYWUxMTZjOTM0OWRjMTlk
OThiNGYyNjMuLjViNDczNjM5OWMwYjgwZDNkZmY2MmZjZTAzZThhNDFjNzk0NzU5MmUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2lk
bGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQK
QEAgLTcsMjEgKzcsMjEgQEAgUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBEb2N1bWVudDogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnRbMl06IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFdpbmRvd1syXTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVu
dFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1
ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGlu
Y2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1Mg
RG9jdW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5k
bGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNs
dWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1Mg
RG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2Rl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBFbGVtZW50IGluY2x1ZGVzIENoaWxkTm9k
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBTbG90dGFi
bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIENoYXJhY3RlckRhdGEgaW5jbHVkZXMg
Tm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBD
aGFyYWN0ZXJEYXRhIGluY2x1ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
IFBBU1MgRG9jdW1lbnRUeXBlIGluY2x1ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCitQQVNTIENoYXJhY3RlckRhdGEgaW5jbHVkZXMgQ2hpbGROb2RlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgVGV4dCBpbmNsdWRlcyBTbG90dGFibGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgWFBhdGhFdmFsdWF0b3IgaW5jbHVkZXMgWFBh
dGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBp
bmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFT
UyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBHbG9iYWxFdmVu
dEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MRWxlbWVudCBpbmNs
dWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q29udGVudEVkaXRhYmxlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb21wYXJzaW5nL2lkbGhhcm5lc3Mud2luZG93LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
cGFyc2luZy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggNTFiZWNlMTlmMGU0
M2ZmOTQzYWM0M2Q0OGEyYjBmMDU0MjZmZDc4OC4uNDQ0NmE1NzUzZDU4ODFiNDNiNjYxYWMzOGY1
NzNkZjlmMjAyNDNlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9kb21wYXJzaW5nL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbXBhcnNp
bmcvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC02LDEzICs2LDEzIEBAIFBBU1Mg
UGFydGlhbCBpbnRlcmZhY2UgRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
UGFydGlhbCBpbnRlcmZhY2UgUmFuZ2U6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkCiBQQVNT
IFBhcnRpYWwgaW50ZXJmYWNlIFJhbmdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBF
bGVtZW50IGluY2x1ZGVzIElubmVySFRNTDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1Mg
U2hhZG93Um9vdCBpbmNsdWRlcyBJbm5lckhUTUw6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQ
QVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgUGFyZW50
Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBQYXJl
bnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5v
bkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxl
bWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVs
ZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBT
aGFkb3dSb290IGluY2x1ZGVzIElubmVySFRNTDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBB
U1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBQYXJlbnRO
b2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBYTUxTZXJpYWxpemVyIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgWE1M
U2VyaWFsaXplciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBYTUxTZXJpYWxpemVyIGlu
dGVyZmFjZSBvYmplY3QgbmFtZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHNvdXJjZS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzb3VyY2Uv
aWRsaGFybmVzcy1leHBlY3RlZC50eHQKaW5kZXggMmI5MzFkZDM1MjViYTgyOWRiNTczNmQyMTlm
YTE2ZTJiMTZjYjZiNi4uYmEwYmM0Mzk4Mjc0NTE1MjVlNjMwYTZmZTkwYWFlNGZhODQyNmU1ZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9l
dmVudHNvdXJjZS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c291cmNlL2lkbGhhcm5lc3MtZXhwZWN0
ZWQudHh0CkBAIC0zLDcgKzMsOSBAQCBDT05TT0xFIE1FU1NBR0U6IEV2ZW50U291cmNlIGNhbm5v
dCBsb2FkIGh0dHA6Ly9mb28vIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVjawogRXZlbnRTb3Vy
Y2UgSURMIHRlc3RzCiAKIAotUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CitGQUlMIEV2ZW50VGFyZ2V0IGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0
X3Rocm93c19qczogaW50ZXJmYWNlIG9iamVjdCBkaWRuJ3QgdGhyb3cgVHlwZUVycm9yIHdoZW4g
Y2FsbGVkIGFzIGEgY29uc3RydWN0b3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgICAgICBuZXcgaW50ZXJmYWNlX29iamVjdCgpOworICAgICAgICAgICAgfSIgZGlkIG5vdCB0
aHJvdwogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBFdmVu
dFRhcmdldCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QK
QEAgLTE4LDcgKzIwLDcgQEAgUEFTUyBFdmVudExpc3RlbmVyIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2IKIFBBU1MgRXZlbnRMaXN0
ZW5lciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkKIFBBU1MgRXZlbnRMaXN0ZW5l
ciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBoYW5kbGVFdmVudChFdmVudCkKIFBBU1MgRXZlbnRTb3Vy
Y2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dAotUEFTUyBFdmVudFNvdXJjZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAorRkFJTCBFdmVudFNv
dXJjZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfZXF1YWxzOiB3cm9uZyB2YWx1ZSBm
b3IgRXZlbnRTb3VyY2UubGVuZ3RoIGV4cGVjdGVkIDAgYnV0IGdvdCAxCiBQQVNTIEV2ZW50U291
cmNlIGludGVyZmFjZSBvYmplY3QgbmFtZQogUEFTUyBFdmVudFNvdXJjZSBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAogUEFT
UyBFdmVudFNvdXJjZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dApp
bmRleCA0ZGFlNWE1Yjc1Zjk2MDY4MmE1NDViZjYxNGY5YmU3NWVkNDI0OWJiLi4yZWNkMjE1MjA5
OWMzZDBkN2E2YTIwODNkMjYxY2QxMTBkNzVmZjcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9pZGxoYXJuZXNzLmFueS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CkBAIC05LDEwICs5LDEw
IEBAIFBBU1MgUmVzcG9uc2UgaW5jbHVkZXMgQm9keTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
IFBBU1MgV2luZG93IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJH
bG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV29ya2VyR2xvYmFsU2Nv
cGUgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3Rv
cmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRv
d0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV29ya2VyR2xvYmFs
U2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlIG9iamVjdCBsZW5n
dGgKIFBBU1MgSGVhZGVycyBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKQEAgLTEzNyw1ICsxMzcsNCBA
QCBQQVNTIFJlc3BvbnNlIGludGVyZmFjZTogbmV3IFJlc3BvbnNlKCkgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJ0ZXh0KCkiIHdpdGggdGhlCiBQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IG9wZXJhdGlv
biBmZXRjaChSZXF1ZXN0SW5mbywgb3B0aW9uYWwgUmVxdWVzdEluaXQpCiBQQVNTIFdpbmRvdyBp
bnRlcmZhY2U6IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImZldGNoKFJlcXVlc3RJbmZv
LCBvcHRpb25hbCBSZXF1ZXN0SW5pdCkiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFdpbmRv
dyBpbnRlcmZhY2U6IGNhbGxpbmcgZmV0Y2goUmVxdWVzdEluZm8sIG9wdGlvbmFsIFJlcXVlc3RJ
bml0KSBvbiB3aW5kb3cgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
cgotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbGhhcm5lc3MuYW55Lndvcmtl
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDFj
NmY1NTAyMjg3MWEwMmVmODcxZjU0OTA3Y2Y0ODhmOWM1OTU0YmEuLmUyYjc0N2M2ZTA2ZTI2OGMw
ODcyOGQ2MDNmYzc1NDAyM2NiYzFmZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbGhhcm5lc3MuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtOSwx
MCArOSwxMCBAQCBQQVNTIFJlc3BvbnNlIGluY2x1ZGVzIEJvZHk6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93RXZlbnRIYW5kbGVy
czogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd09y
V29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdvcmtlckds
b2JhbFNjb3BlIGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVy
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vz
c2lvblN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRl
cyBXaW5kb3dMb2NhbFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdvcmtl
ckdsb2JhbFNjb3BlIGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBIZWFkZXJzIGludGVyZmFjZSBvYmpl
Y3QgbGVuZ3RoCiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlIG9iamVjdCBuYW1lCkBAIC0xMzQsNyAr
MTM0LDYgQEAgUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IG5ldyBSZXNwb25zZSgpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAiYmxvYigpIiB3aXRoIHRoZQogUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6
IG5ldyBSZXNwb25zZSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZm9ybURhdGEoKSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUKIFBBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBuZXcgUmVzcG9uc2UoKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImpzb24oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1Mg
UmVzcG9uc2UgaW50ZXJmYWNlOiBuZXcgUmVzcG9uc2UoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InRleHQoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKLVBBU1MgV2luZG93IGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgV29ya2VyR2xv
YmFsU2NvcGUgaW50ZXJmYWNlOiBvcGVyYXRpb24gZmV0Y2goUmVxdWVzdEluZm8sIG9wdGlvbmFs
IFJlcXVlc3RJbml0KQogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJmZXRjaChSZXF1ZXN0SW5mbywgb3B0aW9uYWwgUmVxdWVzdElu
aXQpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZh
Y2U6IGNhbGxpbmcgZmV0Y2goUmVxdWVzdEluZm8sIG9wdGlvbmFsIFJlcXVlc3RJbml0KSBvbiBz
ZWxmIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29y
cy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9p
ZGxoYXJuZXNzLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CmluZGV4IGIyNTg4OWUzY2IwNjlh
ZmUxMjQ2NjczZGVjN2MxZDgzNTY1ZTVlNTcuLjVjMGYxYzA4NzUzZDEyNDc0ZmFiZWNhMWY0ZTgy
ZTliM2FiZDQwNTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0aXZlLmFueS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvaWRsaGFybmVzcy50ZW50YXRpdmUuYW55LWV4cGVjdGVk
LnR4dApAQCAtOSwxMSArOSwxMCBAQCBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50WzJd
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBEb2N1bWVu
dFszXTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgR2xv
YmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQg
aW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKK1BBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJH
bG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVk
ZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERv
Y3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNT
IERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9i
YWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAog
RkFJTCBEb2N1bWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBhZGRyZXNzU3BhY2UgYXNzZXJ0X3Ry
dWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJhZGRyZXNzU3Bh
Y2UiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIERvY3VtZW50IGludGVyZmFjZTogZG9j
dW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRyZXNzU3BhY2UiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImFkZHJlc3NTcGFjZSIgbm90IGZvdW5k
IGluIHByb3RvdHlwZSBjaGFpbgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9pZGxoYXJuZXNzLnRlbnRh
dGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0aXZl
LmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDc0MGVhZDBmYWI3Y2Y1NTA2NDEzODJjYjE3
MjA2NjYyMzZmMWE4YzIuLmMzZTQxNTU3Mzc4NDQ4YWY2MjJjMTIzYjFlMTEyZWI2NmMxZTYzZGEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0
ZWQudHh0CkBAIC05LDEyICs5LDEwIEBAIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnRb
Ml06IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIERvY3Vt
ZW50WzNdOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBH
bG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVu
dCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQorUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtl
ckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNs
dWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
RG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckds
b2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogRkFJTCBXb3JrZXJHbG9iYWxTY29w
ZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBhZGRyZXNzU3BhY2UgYXNzZXJ0X3RydWU6IFRoZSBwcm90
b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJhZGRyZXNzU3BhY2UiIGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCiBGQUlMIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImFkZHJlc3NTcGFjZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
YXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiYWRkcmVzc1NwYWNlIiBub3QgZm91bmQgaW4gcHJv
dG90eXBlIGNoYWluCi1QQVNTIE5vZGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdAotUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHItdGltZS9pZGxoYXJuZXNz
LmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2hyLXRpbWUvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CmluZGV4IDhkZWZlZmIy
ZjBlNzdlY2Y1MTRmZGQ1MzdjNmI1MmNmMDhhYTFlOTkuLjEyNmUwOTk1NDZjY2U0YTZkMGVjZTY4
YmFjOWJkNzFkNmE4ZjVlM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHItdGltZS9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9oci10aW1lL2lk
bGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dApAQCAtNywxMCArNywxMCBAQCBQQVNTIFBhcnRpYWwg
aW50ZXJmYWNlIFdpbmRvdzogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGlu
Y2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNT
IFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgV2lu
ZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2lu
ZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMg
V2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
UGVyZm9ybWFuY2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdAogUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFT
UyBQZXJmb3JtYW5jZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKQEAgLTI4LDUgKzI4LDQgQEAgUEFT
UyBQZXJmb3JtYW5jZSBpbnRlcmZhY2U6IHBlcmZvcm1hbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAidG9KU09OKCkiIHdpdGggdGgKIFBBU1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiBkZWZhdWx0
IHRvSlNPTiBvcGVyYXRpb24gb24gcGVyZm9ybWFuY2UKIFBBU1MgV2luZG93IGludGVyZmFjZTog
YXR0cmlidXRlIHBlcmZvcm1hbmNlCiBQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IHNlbGYgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJwZXJmb3JtYW5jZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKLVBBU1Mg
V29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2hyLXRpbWUvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHItdGlt
ZS9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGNhY2IyN2FlM2JiZTk3
YjM1MTk5OGI4NTZlNTcyMDRiOGVkY2QxZDcuLjJkODJmYzY5YjFhODJjNjI3NTJlZjg1MmY4ZWIz
MTg3NzBlMWJiNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHItdGltZS9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHItdGltZS9p
ZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC03LDEwICs3LDEwIEBAIFBBU1Mg
UGFydGlhbCBpbnRlcmZhY2UgV2luZG93OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBX
aW5kb3cgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNj
b3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbmNs
dWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQog
UEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd1Nlc3Npb25TdG9yYWdlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93TG9jYWxT
dG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBp
bmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIFBlcmZvcm1hbmNlIGludGVyZmFjZSBvYmplY3QgbGVu
Z3RoCiBQQVNTIFBlcmZvcm1hbmNlIGludGVyZmFjZSBvYmplY3QgbmFtZQpAQCAtMjYsNyArMjYs
NiBAQCBQQVNTIFBlcmZvcm1hbmNlIGludGVyZmFjZTogcGVyZm9ybWFuY2UgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJub3coKSIgd2l0aCB0aGUgcAogUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2U6
IHBlcmZvcm1hbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidGltZU9yaWdpbiIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUKIFBBU1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiBwZXJmb3JtYW5jZSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInRvSlNPTigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBQ
ZXJmb3JtYW5jZSBpbnRlcmZhY2U6IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvbiBwZXJmb3Jt
YW5jZQotUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdAogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBwZXJmb3JtYW5jZQogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJwZXJmb3JtYW5jZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvbmF2aWdhdGluZy1hY3Jvc3MtZG9jdW1l
bnRzL2phdmFzY3JpcHQtdXJsLXJldHVybi12YWx1ZS1oYW5kbGluZy1keW5hbWljLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9i
cm93c2Vycy9icm93c2luZy10aGUtd2ViL25hdmlnYXRpbmctYWNyb3NzLWRvY3VtZW50cy9qYXZh
c2NyaXB0LXVybC1yZXR1cm4tdmFsdWUtaGFuZGxpbmctZHluYW1pYy1leHBlY3RlZC50eHQKaW5k
ZXggMzgxOWIwZDkwMDRlZjFiMjQ1NDk5ZTJiYmM5NzM4Y2RhMGUyMDZmYS4uYTI2NGQ2YTUwMWUz
MDNmMjc2ODM4YTViODE5NmNkMjBkMjg1YTA4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13
ZWIvbmF2aWdhdGluZy1hY3Jvc3MtZG9jdW1lbnRzL2phdmFzY3JpcHQtdXJsLXJldHVybi12YWx1
ZS1oYW5kbGluZy1keW5hbWljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9u
YXZpZ2F0aW5nLWFjcm9zcy1kb2N1bWVudHMvamF2YXNjcmlwdC11cmwtcmV0dXJuLXZhbHVlLWhh
bmRsaW5nLWR5bmFtaWMtZXhwZWN0ZWQudHh0CkBAIC04LDUgKzgsNSBAQCBGQUlMIFRlc3QgamF2
YXNjcmlwdCBVUkwgc3RyaW5nIHJldHVybiB2YWx1ZXMgaW4gZGlyZWN0IGFuZCBpbmRpcmVjdCAo
dGFyZ2V0KSBmcgogRkFJTCBUZXN0IGphdmFzY3JpcHQgVVJMIHN0cmluZyByZXR1cm4gdmFsdWVz
IGluIGRpcmVjdCBhbmQgaW5kaXJlY3QgKHRhcmdldCkgZnJhbWUgY29udGV4dHMuIDYgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgIsKAw78iIGJ1dCBnb3QgIiIKIEZBSUwgVGVzdCBqYXZhc2NyaXB0
IFVSTCBzdHJpbmcgcmV0dXJuIHZhbHVlcyBpbiBkaXJlY3QgYW5kIGluZGlyZWN0ICh0YXJnZXQp
IGZyYW1lIGNvbnRleHRzLiA3IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICLCgMO/xIAiIGJ1dCBn
b3QgIiIKIEZBSUwgVGVzdCBqYXZhc2NyaXB0IFVSTCBzdHJpbmcgcmV0dXJuIHZhbHVlcyBpbiBk
aXJlY3QgYW5kIGluZGlyZWN0ICh0YXJnZXQpIGZyYW1lIGNvbnRleHRzLiA4IGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICLwn5iNIiBidXQgZ290ICIiCi1GQUlMIFRlc3QgamF2YXNjcmlwdCBVUkwg
c3RyaW5nIHJldHVybiB2YWx1ZXMgaW4gZGlyZWN0IGFuZCBpbmRpcmVjdCAodGFyZ2V0KSBmcmFt
ZSBjb250ZXh0cy4gOSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi77+9QSIgYnV0IGdvdCAiIgor
RkFJTCBUZXN0IGphdmFzY3JpcHQgVVJMIHN0cmluZyByZXR1cm4gdmFsdWVzIGluIGRpcmVjdCBh
bmQgaW5kaXJlY3QgKHRhcmdldCkgZnJhbWUgY29udGV4dHMuIDkgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgIlUrZGUwZEEiIGJ1dCBnb3QgIiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLndvcmtlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvZG9tL2lkbGhhcm5lc3Mud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCAxOWI5YjZhNjQz
OTQwZGEzMzMyODg5YWM2MGEzYWM2ZmI5OGUyM2RjLi42ZGE1OGQxYzM0MTU3NWE4MDNkOGFjMDlk
MDQ1NmJjODcwZDQyNDFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3Mud29ya2VyLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9t
L2lkbGhhcm5lc3Mud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtNzksMTUgKzc5LDEwIEBAIFBBU1Mg
UGFydGlhbCBpbnRlcmZhY2UgV2luZG93OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQ
YXJ0aWFsIGludGVyZmFjZSBVSUV2ZW50OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBE
b2N1bWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRs
ZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBOb25F
bGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQg
aW5jbHVkZXMgRG9jdW1lbnRPclNoYWRvd1Jvb3Q6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1Q
QVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
Ci1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVy
czogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRG9j
dW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENvbnRlbnRFZGl0YWJsZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZHRWxlbWVu
dDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxl
bWVudENTU0lubGluZVN0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MTGlu
a0VsZW1lbnQgaW5jbHVkZXMgTGlua1N0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBIVE1MU3R5bGVFbGVtZW50IGluY2x1ZGVzIExpbmtTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgSFRNTEJvZHlFbGVtZW50IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCkBAIC0xMjksOSArMTI0LDYgQEAgUEFTUyBFbGVtZW50
SW50ZXJuYWxzIGluY2x1ZGVzIEFSSUFNaXhpbjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgV2luZG93IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9i
YWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV2luZG93IGluY2x1ZGVzIEFu
aW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdpbmRv
dyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
LVBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJH
bG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1
ZGVzIE5hdmlnYXRvcklEOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3Ig
aW5jbHVkZXMgTmF2aWdhdG9yTGFuZ3VhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCkBAIC0x
NDAsNiArMTMyLDcgQEAgUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29udGVudFV0
aWxzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2
aWdhdG9yQ29va2llczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGlu
Y2x1ZGVzIE5hdmlnYXRvclBsdWdpbnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5h
dmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCitQQVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVy
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZSBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBXb3JrZXIgaW5jbHVkZXMgQWJzdHJhY3RXb3JrZXI6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIFNoYXJlZFdvcmtlciBpbmNsdWRlcyBBYnN0cmFjdFdvcmtlcjogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKQEAgLTE0NywxNSArMTQwLDIyIEBAIFBBU1MgV29ya2VyTmF2aWdh
dG9yIGluY2x1ZGVzIE5hdmlnYXRvcklEOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBX
b3JrZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yTGFuZ3VhZ2U6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFdvcmtlck5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JPbkxpbmU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlck5hdmlnYXRvciBpbmNsdWRlcyBO
YXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNT
IFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKK1BBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEZyYW1lU2V0RWxlbWVudCBpbmNsdWRlcyBXaW5kb3dF
dmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1
ZGVzIEFSSUFNaXhpbjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5j
bHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNT
IERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50T3JTaGFkb3dS
b290OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBTaGFkb3dSb290IGluY2x1ZGVzIERv
Y3VtZW50T3JTaGFkb3dSb290OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVu
dCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1
bWVudEZyYWdtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGU6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGROb2RlOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBOb25F
bGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnRG
cmFnbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFT
UyBTaGFkb3dSb290IGluY2x1ZGVzIERvY3VtZW50T3JTaGFkb3dSb290OiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEVsZW1lbnRD
U1NJbmxpbmVTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEFsbENvbGxl
Y3Rpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdAogUEFTUyBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIFJhZGlvTm9kZUxpc3Qg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdApA
QCAtNzk0LDE0ICs3OTQsNCBAQCBQQVNTIEhUTUxGcmFtZUVsZW1lbnQgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBIVE1MRGlyZWN0
b3J5RWxlbWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2Ugb2JqZWN0CiBQQVNTIEhUTUxGb250RWxlbWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIEV4dGVybmFsIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKLVBBU1MgTm9kZUxp
c3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dAotUEFTUyBIVE1MQ29sbGVjdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIE5vZGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAotUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIERvY3Vt
ZW50RnJhZ21lbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdAotUEFTUyBTaGFkb3dSb290IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKLVBBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIERPTVRva2VuTGlz
dCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0
Ci1QQVNTIFVJRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIG9iamVjdAotUEFTUyBNb3VzZUV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL3NhZmUt
cGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEvc3RydWN0dXJlZC1jbG9uaW5nLWVycm9yLXN0YWNr
LW9wdGlvbmFsLnN1Yi53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL3NhZmUtcGFzc2luZy1v
Zi1zdHJ1Y3R1cmVkLWRhdGEvc3RydWN0dXJlZC1jbG9uaW5nLWVycm9yLXN0YWNrLW9wdGlvbmFs
LnN1Yi53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IDJjNzJkNWI5YjFlZjRjYTgxM2UzOThiNWQ5
ZWM0YmE5ZTE3NjgzMWUuLmEyOTg3MmQzYjUwNjI3MzU1ZWJmMzk2YzUzZTkyMGE2OGFlOGY4NGUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9pbmZyYXN0cnVjdHVyZS9zYWZlLXBhc3Npbmctb2Ytc3RydWN0dXJlZC1kYXRhL3N0cnVj
dHVyZWQtY2xvbmluZy1lcnJvci1zdGFjay1vcHRpb25hbC5zdWIud2luZG93LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
aW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9zdHJ1Y3R1cmVk
LWNsb25pbmctZXJyb3Itc3RhY2stb3B0aW9uYWwuc3ViLndpbmRvdy1leHBlY3RlZC50eHQKQEAg
LTEzLDYgKzEzLDYgQEAgRkFJTCBKUy1lbmdpbmUtY3JlYXRlZCBUeXBlRXJyb3IgKHdvcmtlcikg
VGhlIG9iamVjdCBjYW4gbm90IGJlIGNsb25lZC4KIEZBSUwgSlMtZW5naW5lLWNyZWF0ZWQgVHlw
ZUVycm9yIChjcm9zcy1zaXRlIGlmcmFtZSkgVGhlIG9iamVjdCBjYW4gbm90IGJlIGNsb25lZC4K
IEZBSUwgd2ViIEFQSS1jcmVhdGVkIFR5cGVFcnJvciAod29ya2VyKSBUaGUgb2JqZWN0IGNhbiBu
b3QgYmUgY2xvbmVkLgogRkFJTCB3ZWIgQVBJLWNyZWF0ZWQgVHlwZUVycm9yIChjcm9zcy1zaXRl
IGlmcmFtZSkgVGhlIG9iamVjdCBjYW4gbm90IGJlIGNsb25lZC4KLUZBSUwgd2ViIEFQSS1jcmVh
dGVkIERPTUV4Y2VwdGlvbiAod29ya2VyKSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5n
KSAiY3JlYXRlRWxlbWVudEBbbmF0aXZlIGNvZGVdXG5AaHR0cDovL2xvY2FsaG9zdDo4ODAwL2h0
bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9zdHJ1Y3R1
cmVkLWNsb25pbmctZXJyb3Itc3RhY2stb3B0aW9uYWwuc3ViLndpbmRvdy5qczozMzoyN1xuQGh0
dHA6Ly9sb2NhbGhvc3Q6ODgwMC9odG1sL2luZnJhc3RydWN0dXJlL3NhZmUtcGFzc2luZy1vZi1z
dHJ1Y3R1cmVkLWRhdGEvc3RydWN0dXJlZC1jbG9uaW5nLWVycm9yLXN0YWNrLW9wdGlvbmFsLnN1
Yi53aW5kb3cuanM6NDE6MzFcbkBodHRwOi8vbG9jYWxob3N0Ojg4MDAvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzOjIwNDQ6MzBcbmFzeW5jX3Rlc3RAaHR0cDovL2xvY2FsaG9zdDo4ODAwL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qczo2MDk6MzhcbnN0YWNrVGVzdHNAaHR0cDovL2xvY2FsaG9zdDo4
ODAwL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9z
dHJ1Y3R1cmVkLWNsb25pbmctZXJyb3Itc3RhY2stb3B0aW9uYWwuc3ViLndpbmRvdy5qczo0MDox
M1xuZ2xvYmFsIGNvZGVAaHR0cDovL2xvY2FsaG9zdDo4ODAwL2h0bWwvaW5mcmFzdHJ1Y3R1cmUv
c2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9zdHJ1Y3R1cmVkLWNsb25pbmctZXJyb3It
c3RhY2stb3B0aW9uYWwuc3ViLndpbmRvdy5qczozMToxMSIgYnV0IGdvdCAodW5kZWZpbmVkKSB1
bmRlZmluZWQKK0ZBSUwgd2ViIEFQSS1jcmVhdGVkIERPTUV4Y2VwdGlvbiAod29ya2VyKSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAiY3JlYXRlRWxlbWVudEBbbmF0aXZlIGNvZGVd
XG5AaHR0cDovL2xvY2FsaG9zdDo4ODAwL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5n
LW9mLXN0cnVjdHVyZWQtZGF0YS9zdHJ1Y3R1cmVkLWNsb25pbmctZXJyb3Itc3RhY2stb3B0aW9u
YWwuc3ViLndpbmRvdy5qczozMzoyN1xuQGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9odG1sL2luZnJh
c3RydWN0dXJlL3NhZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEvc3RydWN0dXJlZC1jbG9u
aW5nLWVycm9yLXN0YWNrLW9wdGlvbmFsLnN1Yi53aW5kb3cuanM6NDE6MzFcbkBodHRwOi8vbG9j
YWxob3N0Ojg4MDAvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzOjIwODc6MzBcbmFzeW5jX3Rlc3RA
aHR0cDovL2xvY2FsaG9zdDo4ODAwL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qczo1OTQ6MzhcbnN0
YWNrVGVzdHNAaHR0cDovL2xvY2FsaG9zdDo4ODAwL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1w
YXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9zdHJ1Y3R1cmVkLWNsb25pbmctZXJyb3Itc3RhY2st
b3B0aW9uYWwuc3ViLndpbmRvdy5qczo0MDoxM1xuZ2xvYmFsIGNvZGVAaHR0cDovL2xvY2FsaG9z
dDo4ODAwL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0
YS9zdHJ1Y3R1cmVkLWNsb25pbmctZXJyb3Itc3RhY2stb3B0aW9uYWwuc3ViLndpbmRvdy5qczoz
MToxMSIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKIFRJTUVPVVQgd2ViIEFQSS1jcmVh
dGVkIERPTUV4Y2VwdGlvbiAoY3Jvc3Mtc2l0ZSBpZnJhbWUpIFRlc3QgdGltZWQgb3V0CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50
ZXJmYWNlcy9ET00tUGFyc2luZy5pZGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvRE9NLVBhcnNpbmcuaWRsCmluZGV4IDk5NzEyNjI5MjIw
ODMwMDBiOTQ0ZTBkZTAzMjE2M2NlNzc4MTIwNDEuLmQwZDg0YWI2OTcyZjAyYWUxMWYyZTNhODUw
NzQ5MDY0ZDYzZmEyOTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9ET00tUGFyc2luZy5pZGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL0RPTS1QYXJzaW5n
LmlkbApAQCAtMTgsNyArMTgsNyBAQCBTaGFkb3dSb290IGluY2x1ZGVzIElubmVySFRNTDsKIAog
cGFydGlhbCBpbnRlcmZhY2UgRWxlbWVudCB7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gRE9NU3RyaW5nIG91dGVySFRNTDsKLSAgW0NFUmVhY3Rp
b25zXSB2b2lkIGluc2VydEFkamFjZW50SFRNTChET01TdHJpbmcgcG9zaXRpb24sIERPTVN0cmlu
ZyB0ZXh0KTsKKyAgW0NFUmVhY3Rpb25zXSB1bmRlZmluZWQgaW5zZXJ0QWRqYWNlbnRIVE1MKERP
TVN0cmluZyBwb3NpdGlvbiwgRE9NU3RyaW5nIHRleHQpOwogfTsKIAogcGFydGlhbCBpbnRlcmZh
Y2UgUmFuZ2UgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL1NWRy5pZGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvU1ZHLmlkbAppbmRleCBmOGQyNGM5YzY2NjM2
ZDQxMWYzMWNkMmY3ODBiNzc0YWM2MzY2MzlkLi4xMWE1YzdjMjk5Y2QzYjhjNDE4YmJiNWRjYWQ2
N2IxMjkyMzgyOGNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvU1ZHLmlkbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvU1ZHLmlkbApAQCAtMjQsNiArMjQs
NyBAQCBkaWN0aW9uYXJ5IFNWR0JvdW5kaW5nQm94T3B0aW9ucyB7CiAgIGJvb2xlYW4gY2xpcHBl
ZCA9IGZhbHNlOwogfTsKIAorW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIFNWR0dyYXBoaWNz
RWxlbWVudCA6IFNWR0VsZW1lbnQgewogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRl
IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdCB0cmFuc2Zvcm07CiAKQEAgLTcwLDggKzcxLDggQEAg
aW50ZXJmYWNlIFNWR0xlbmd0aCB7CiAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB2YWx1ZUlu
U3BlY2lmaWVkVW5pdHM7CiAgICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsdWVBc1N0
cmluZzsKIAotICB2b2lkIG5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5zaWduZWQgc2hvcnQgdW5p
dFR5cGUsIGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7Ci0gIHZvaWQgY29udmVydFRvU3Bl
Y2lmaWVkVW5pdHModW5zaWduZWQgc2hvcnQgdW5pdFR5cGUpOworICB1bmRlZmluZWQgbmV3VmFs
dWVTcGVjaWZpZWRVbml0cyh1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSwgZmxvYXQgdmFsdWVJblNw
ZWNpZmllZFVuaXRzKTsKKyAgdW5kZWZpbmVkIGNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKHVuc2ln
bmVkIHNob3J0IHVuaXRUeXBlKTsKIH07CiAKIFtFeHBvc2VkPVdpbmRvd10KQEAgLTg5LDggKzkw
LDggQEAgaW50ZXJmYWNlIFNWR0FuZ2xlIHsKICAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0IHZh
bHVlSW5TcGVjaWZpZWRVbml0czsKICAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyB2YWx1
ZUFzU3RyaW5nOwogCi0gIHZvaWQgbmV3VmFsdWVTcGVjaWZpZWRVbml0cyh1bnNpZ25lZCBzaG9y
dCB1bml0VHlwZSwgZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKLSAgdm9pZCBjb252ZXJ0
VG9TcGVjaWZpZWRVbml0cyh1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSk7CisgIHVuZGVmaW5lZCBu
ZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBmbG9hdCB2YWx1
ZUluU3BlY2lmaWVkVW5pdHMpOworICB1bmRlZmluZWQgY29udmVydFRvU3BlY2lmaWVkVW5pdHMo
dW5zaWduZWQgc2hvcnQgdW5pdFR5cGUpOwogfTsKIAogW0V4cG9zZWQ9V2luZG93XQpAQCAtOTks
MTQgKzEwMCwxNCBAQCBpbnRlcmZhY2UgU1ZHTnVtYmVyTGlzdCB7CiAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgbnVtYmVyT2ZJdGVtczsKIAotICB2b2lkIGNsZWFyKCk7CisgIHVuZGVmaW5lZCBjbGVh
cigpOwogICBTVkdOdW1iZXIgaW5pdGlhbGl6ZShTVkdOdW1iZXIgbmV3SXRlbSk7CiAgIGdldHRl
ciBTVkdOdW1iZXIgZ2V0SXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgU1ZHTnVtYmVyIGlu
c2VydEl0ZW1CZWZvcmUoU1ZHTnVtYmVyIG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwog
ICBTVkdOdW1iZXIgcmVwbGFjZUl0ZW0oU1ZHTnVtYmVyIG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcg
aW5kZXgpOwogICBTVkdOdW1iZXIgcmVtb3ZlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAg
U1ZHTnVtYmVyIGFwcGVuZEl0ZW0oU1ZHTnVtYmVyIG5ld0l0ZW0pOwotICBzZXR0ZXIgdm9pZCAo
dW5zaWduZWQgbG9uZyBpbmRleCwgU1ZHTnVtYmVyIG5ld0l0ZW0pOworICBzZXR0ZXIgdW5kZWZp
bmVkICh1bnNpZ25lZCBsb25nIGluZGV4LCBTVkdOdW1iZXIgbmV3SXRlbSk7CiB9OwogCiBbRXhw
b3NlZD1XaW5kb3ddCkBAIC0xMTUsMTQgKzExNiwxNCBAQCBpbnRlcmZhY2UgU1ZHTGVuZ3RoTGlz
dCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJdGVtczsKIAotICB2b2lkIGNsZWFy
KCk7CisgIHVuZGVmaW5lZCBjbGVhcigpOwogICBTVkdMZW5ndGggaW5pdGlhbGl6ZShTVkdMZW5n
dGggbmV3SXRlbSk7CiAgIGdldHRlciBTVkdMZW5ndGggZ2V0SXRlbSh1bnNpZ25lZCBsb25nIGlu
ZGV4KTsKICAgU1ZHTGVuZ3RoIGluc2VydEl0ZW1CZWZvcmUoU1ZHTGVuZ3RoIG5ld0l0ZW0sIHVu
c2lnbmVkIGxvbmcgaW5kZXgpOwogICBTVkdMZW5ndGggcmVwbGFjZUl0ZW0oU1ZHTGVuZ3RoIG5l
d0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICBTVkdMZW5ndGggcmVtb3ZlSXRlbSh1bnNp
Z25lZCBsb25nIGluZGV4KTsKICAgU1ZHTGVuZ3RoIGFwcGVuZEl0ZW0oU1ZHTGVuZ3RoIG5ld0l0
ZW0pOwotICBzZXR0ZXIgdm9pZCAodW5zaWduZWQgbG9uZyBpbmRleCwgU1ZHTGVuZ3RoIG5ld0l0
ZW0pOworICBzZXR0ZXIgdW5kZWZpbmVkICh1bnNpZ25lZCBsb25nIGluZGV4LCBTVkdMZW5ndGgg
bmV3SXRlbSk7CiB9OwogCiBbRXhwb3NlZD1XaW5kb3ddCkBAIC0xMzEsMTQgKzEzMiwxNCBAQCBp
bnRlcmZhY2UgU1ZHU3RyaW5nTGlzdCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIGxlbmd0aDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJ
dGVtczsKIAotICB2b2lkIGNsZWFyKCk7CisgIHVuZGVmaW5lZCBjbGVhcigpOwogICBET01TdHJp
bmcgaW5pdGlhbGl6ZShET01TdHJpbmcgbmV3SXRlbSk7CiAgIGdldHRlciBET01TdHJpbmcgZ2V0
SXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgRE9NU3RyaW5nIGluc2VydEl0ZW1CZWZvcmUo
RE9NU3RyaW5nIG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICBET01TdHJpbmcgcmVw
bGFjZUl0ZW0oRE9NU3RyaW5nIG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICBET01T
dHJpbmcgcmVtb3ZlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgRE9NU3RyaW5nIGFwcGVu
ZEl0ZW0oRE9NU3RyaW5nIG5ld0l0ZW0pOwotICBzZXR0ZXIgdm9pZCAodW5zaWduZWQgbG9uZyBp
bmRleCwgRE9NU3RyaW5nIG5ld0l0ZW0pOworICBzZXR0ZXIgdW5kZWZpbmVkICh1bnNpZ25lZCBs
b25nIGluZGV4LCBET01TdHJpbmcgbmV3SXRlbSk7CiB9OwogCiBbRXhwb3NlZD1XaW5kb3ddCkBA
IC0yNDMsNyArMjQ0LDcgQEAgaW50ZXJmYWNlIFNWR1NWR0VsZW1lbnQgOiBTVkdHcmFwaGljc0Vs
ZW1lbnQgewogICBib29sZWFuIGNoZWNrSW50ZXJzZWN0aW9uKFNWR0VsZW1lbnQgZWxlbWVudCwg
RE9NUmVjdFJlYWRPbmx5IHJlY3QpOwogICBib29sZWFuIGNoZWNrRW5jbG9zdXJlKFNWR0VsZW1l
bnQgZWxlbWVudCwgRE9NUmVjdFJlYWRPbmx5IHJlY3QpOwogCi0gIHZvaWQgZGVzZWxlY3RBbGwo
KTsKKyAgdW5kZWZpbmVkIGRlc2VsZWN0QWxsKCk7CiAKICAgU1ZHTnVtYmVyIGNyZWF0ZVNWR051
bWJlcigpOwogICBTVkdMZW5ndGggY3JlYXRlU1ZHTGVuZ3RoKCk7CkBAIC0yNTIsMTYgKzI1Mywx
NiBAQCBpbnRlcmZhY2UgU1ZHU1ZHRWxlbWVudCA6IFNWR0dyYXBoaWNzRWxlbWVudCB7CiAgIERP
TU1hdHJpeCBjcmVhdGVTVkdNYXRyaXgoKTsKICAgRE9NUmVjdCBjcmVhdGVTVkdSZWN0KCk7CiAg
IFNWR1RyYW5zZm9ybSBjcmVhdGVTVkdUcmFuc2Zvcm0oKTsKLSAgU1ZHVHJhbnNmb3JtIGNyZWF0
ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgob3B0aW9uYWwgRE9NTWF0cml4MkRJbml0IG1hdHJpeCk7
CisgIFNWR1RyYW5zZm9ybSBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KG9wdGlvbmFsIERP
TU1hdHJpeDJESW5pdCBtYXRyaXggPSB7fSk7CiAKICAgRWxlbWVudCBnZXRFbGVtZW50QnlJZChE
T01TdHJpbmcgZWxlbWVudElkKTsKIAogICAvLyBEZXByZWNhdGVkIG1ldGhvZHMgdGhhdCBoYXZl
IG5vIGVmZmVjdCB3aGVuIGNhbGxlZCwKICAgLy8gYnV0IHdoaWNoIGFyZSBrZXB0IGZvciBjb21w
YXRpYmlsaXR5IHJlYXNvbnMuCiAgIHVuc2lnbmVkIGxvbmcgc3VzcGVuZFJlZHJhdyh1bnNpZ25l
ZCBsb25nIG1heFdhaXRNaWxsaXNlY29uZHMpOwotICB2b2lkIHVuc3VzcGVuZFJlZHJhdyh1bnNp
Z25lZCBsb25nIHN1c3BlbmRIYW5kbGVJRCk7Ci0gIHZvaWQgdW5zdXNwZW5kUmVkcmF3QWxsKCk7
Ci0gIHZvaWQgZm9yY2VSZWRyYXcoKTsKKyAgdW5kZWZpbmVkIHVuc3VzcGVuZFJlZHJhdyh1bnNp
Z25lZCBsb25nIHN1c3BlbmRIYW5kbGVJRCk7CisgIHVuZGVmaW5lZCB1bnN1c3BlbmRSZWRyYXdB
bGwoKTsKKyAgdW5kZWZpbmVkIGZvcmNlUmVkcmF3KCk7CiB9OwogCiBTVkdTVkdFbGVtZW50IGlu
Y2x1ZGVzIFNWR0ZpdFRvVmlld0JveDsKQEAgLTMxNCw4ICszMTUsOSBAQCBpbnRlcmZhY2UgbWl4
aW4gU1ZHRWxlbWVudEluc3RhbmNlIHsKICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTVkdVc2VFbGVtZW50PyBjb3JyZXNwb25kaW5nVXNlRWxlbWVudDsKIH07CiAKLVtDb25zdHJ1
Y3RvcihBbmltYXRpb24gc291cmNlLCBBbmltYXRhYmxlIG5ld1RhcmdldCksIEV4cG9zZWQ9V2lu
ZG93XQorW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIFNoYWRvd0FuaW1hdGlvbiA6IEFuaW1h
dGlvbiB7CisgIGNvbnN0cnVjdG9yKEFuaW1hdGlvbiBzb3VyY2UsIChFbGVtZW50IG9yIENTU1Bz
ZXVkb0VsZW1lbnQpIG5ld1RhcmdldCk7CiAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1
dGUgQW5pbWF0aW9uIHNvdXJjZUFuaW1hdGlvbjsKIH07CiAKQEAgLTM1MiwxMiArMzU0LDEyIEBA
IGludGVyZmFjZSBTVkdUcmFuc2Zvcm0gewogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmli
dXRlIERPTU1hdHJpeCBtYXRyaXg7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBhbmdsZTsK
IAotICB2b2lkIHNldE1hdHJpeChvcHRpb25hbCBET01NYXRyaXgyREluaXQgbWF0cml4KTsKLSAg
dm9pZCBzZXRUcmFuc2xhdGUoZmxvYXQgdHgsIGZsb2F0IHR5KTsKLSAgdm9pZCBzZXRTY2FsZShm
bG9hdCBzeCwgZmxvYXQgc3kpOwotICB2b2lkIHNldFJvdGF0ZShmbG9hdCBhbmdsZSwgZmxvYXQg
Y3gsIGZsb2F0IGN5KTsKLSAgdm9pZCBzZXRTa2V3WChmbG9hdCBhbmdsZSk7Ci0gIHZvaWQgc2V0
U2tld1koZmxvYXQgYW5nbGUpOworICB1bmRlZmluZWQgc2V0TWF0cml4KG9wdGlvbmFsIERPTU1h
dHJpeDJESW5pdCBtYXRyaXggPSB7fSk7CisgIHVuZGVmaW5lZCBzZXRUcmFuc2xhdGUoZmxvYXQg
dHgsIGZsb2F0IHR5KTsKKyAgdW5kZWZpbmVkIHNldFNjYWxlKGZsb2F0IHN4LCBmbG9hdCBzeSk7
CisgIHVuZGVmaW5lZCBzZXRSb3RhdGUoZmxvYXQgYW5nbGUsIGZsb2F0IGN4LCBmbG9hdCBjeSk7
CisgIHVuZGVmaW5lZCBzZXRTa2V3WChmbG9hdCBhbmdsZSk7CisgIHVuZGVmaW5lZCBzZXRTa2V3
WShmbG9hdCBhbmdsZSk7CiB9OwogCiBbRXhwb3NlZD1XaW5kb3ddCkBAIC0zNjYsMTcgKzM2OCwx
NyBAQCBpbnRlcmZhY2UgU1ZHVHJhbnNmb3JtTGlzdCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
bnVtYmVyT2ZJdGVtczsKIAotICB2b2lkIGNsZWFyKCk7CisgIHVuZGVmaW5lZCBjbGVhcigpOwog
ICBTVkdUcmFuc2Zvcm0gaW5pdGlhbGl6ZShTVkdUcmFuc2Zvcm0gbmV3SXRlbSk7CiAgIGdldHRl
ciBTVkdUcmFuc2Zvcm0gZ2V0SXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgU1ZHVHJhbnNm
b3JtIGluc2VydEl0ZW1CZWZvcmUoU1ZHVHJhbnNmb3JtIG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcg
aW5kZXgpOwogICBTVkdUcmFuc2Zvcm0gcmVwbGFjZUl0ZW0oU1ZHVHJhbnNmb3JtIG5ld0l0ZW0s
IHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICBTVkdUcmFuc2Zvcm0gcmVtb3ZlSXRlbSh1bnNpZ25l
ZCBsb25nIGluZGV4KTsKICAgU1ZHVHJhbnNmb3JtIGFwcGVuZEl0ZW0oU1ZHVHJhbnNmb3JtIG5l
d0l0ZW0pOwotICBzZXR0ZXIgdm9pZCAodW5zaWduZWQgbG9uZyBpbmRleCwgU1ZHVHJhbnNmb3Jt
IG5ld0l0ZW0pOworICBzZXR0ZXIgdW5kZWZpbmVkICh1bnNpZ25lZCBsb25nIGluZGV4LCBTVkdU
cmFuc2Zvcm0gbmV3SXRlbSk7CiAKICAgLy8gQWRkaXRpb25hbCBtZXRob2RzIG5vdCBjb21tb24g
dG8gb3RoZXIgbGlzdCBpbnRlcmZhY2VzLgotICBTVkdUcmFuc2Zvcm0gY3JlYXRlU1ZHVHJhbnNm
b3JtRnJvbU1hdHJpeChvcHRpb25hbCBET01NYXRyaXgyREluaXQgbWF0cml4KTsKKyAgU1ZHVHJh
bnNmb3JtIGNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgob3B0aW9uYWwgRE9NTWF0cml4MkRJ
bml0IG1hdHJpeCA9IHt9KTsKICAgU1ZHVHJhbnNmb3JtPyBjb25zb2xpZGF0ZSgpOwogfTsKIApA
QCAtNDY1LDE0ICs0NjcsMTQgQEAgaW50ZXJmYWNlIFNWR1BvaW50TGlzdCB7CiAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgbnVtYmVyT2ZJdGVtczsKIAotICB2b2lkIGNsZWFyKCk7CisgIHVuZGVmaW5l
ZCBjbGVhcigpOwogICBET01Qb2ludCBpbml0aWFsaXplKERPTVBvaW50IG5ld0l0ZW0pOwogICBn
ZXR0ZXIgRE9NUG9pbnQgZ2V0SXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgRE9NUG9pbnQg
aW5zZXJ0SXRlbUJlZm9yZShET01Qb2ludCBuZXdJdGVtLCB1bnNpZ25lZCBsb25nIGluZGV4KTsK
ICAgRE9NUG9pbnQgcmVwbGFjZUl0ZW0oRE9NUG9pbnQgbmV3SXRlbSwgdW5zaWduZWQgbG9uZyBp
bmRleCk7CiAgIERPTVBvaW50IHJlbW92ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CiAgIERP
TVBvaW50IGFwcGVuZEl0ZW0oRE9NUG9pbnQgbmV3SXRlbSk7Ci0gIHNldHRlciB2b2lkICh1bnNp
Z25lZCBsb25nIGluZGV4LCBET01Qb2ludCBuZXdJdGVtKTsKKyAgc2V0dGVyIHVuZGVmaW5lZCAo
dW5zaWduZWQgbG9uZyBpbmRleCwgRE9NUG9pbnQgbmV3SXRlbSk7CiB9OwogCiBbRXhwb3NlZD1X
aW5kb3ddCkBAIC01MDYsNyArNTA4LDcgQEAgaW50ZXJmYWNlIFNWR1RleHRDb250ZW50RWxlbWVu
dCA6IFNWR0dyYXBoaWNzRWxlbWVudCB7CiAgIERPTVJlY3QgZ2V0RXh0ZW50T2ZDaGFyKHVuc2ln
bmVkIGxvbmcgY2hhcm51bSk7CiAgIGZsb2F0IGdldFJvdGF0aW9uT2ZDaGFyKHVuc2lnbmVkIGxv
bmcgY2hhcm51bSk7CiAgIGxvbmcgZ2V0Q2hhck51bUF0UG9zaXRpb24ob3B0aW9uYWwgRE9NUG9p
bnRJbml0IHBvaW50ID0ge30pOwotICB2b2lkIHNlbGVjdFN1YlN0cmluZyh1bnNpZ25lZCBsb25n
IGNoYXJudW0sIHVuc2lnbmVkIGxvbmcgbmNoYXJzKTsKKyAgdW5kZWZpbmVkIHNlbGVjdFN1YlN0
cmluZyh1bnNpZ25lZCBsb25nIGNoYXJudW0sIHVuc2lnbmVkIGxvbmcgbmNoYXJzKTsKIH07CiAK
IFtFeHBvc2VkPVdpbmRvd10KQEAgLTU4OCw4ICs1OTAsOCBAQCBpbnRlcmZhY2UgU1ZHTWFya2Vy
RWxlbWVudCA6IFNWR0VsZW1lbnQgewogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRl
IFNWR0FuaW1hdGVkQW5nbGUgb3JpZW50QW5nbGU7CiAgIGF0dHJpYnV0ZSBET01TdHJpbmcgb3Jp
ZW50OwogCi0gIHZvaWQgc2V0T3JpZW50VG9BdXRvKCk7Ci0gIHZvaWQgc2V0T3JpZW50VG9Bbmds
ZShTVkdBbmdsZSBhbmdsZSk7CisgIHVuZGVmaW5lZCBzZXRPcmllbnRUb0F1dG8oKTsKKyAgdW5k
ZWZpbmVkIHNldE9yaWVudFRvQW5nbGUoU1ZHQW5nbGUgYW5nbGUpOwogfTsKIAogU1ZHTWFya2Vy
RWxlbWVudCBpbmNsdWRlcyBTVkdGaXRUb1ZpZXdCb3g7CkBAIC02NzEsNyArNjczLDIwIEBAIGlu
dGVyZmFjZSBTVkdBRWxlbWVudCA6IFNWR0dyYXBoaWNzRWxlbWVudCB7CiB9OwogCiBTVkdBRWxl
bWVudCBpbmNsdWRlcyBTVkdVUklSZWZlcmVuY2U7Ci1TVkdBRWxlbWVudCBpbmNsdWRlcyBIVE1M
SHlwZXJsaW5rRWxlbWVudFV0aWxzOworCisvLyBJbmxpbmUgSFRNTEh5cGVybGlua0VsZW1lbnRV
dGlscyBleGNlcHQgaHJlZiwgd2hpY2ggY29uZmxpY3RzLgorcGFydGlhbCBpbnRlcmZhY2UgU1ZH
QUVsZW1lbnQgeworICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIG9yaWdpbjsKKyAgW0NF
UmVhY3Rpb25zXSBhdHRyaWJ1dGUgVVNWU3RyaW5nIHByb3RvY29sOworICBbQ0VSZWFjdGlvbnNd
IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgdXNlcm5hbWU7CisgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRl
IFVTVlN0cmluZyBwYXNzd29yZDsKKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgVVNWU3RyaW5n
IGhvc3Q7CisgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFVTVlN0cmluZyBob3N0bmFtZTsKKyAg
W0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgVVNWU3RyaW5nIHBvcnQ7CisgIFtDRVJlYWN0aW9uc10g
YXR0cmlidXRlIFVTVlN0cmluZyBwYXRobmFtZTsKKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUg
VVNWU3RyaW5nIHNlYXJjaDsKKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgVVNWU3RyaW5nIGhh
c2g7Cit9OwogCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgU1ZHVmlld0VsZW1lbnQgOiBT
VkdFbGVtZW50IHt9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL21lZGlhc2Vzc2lvbi5pZGwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvbWVkaWFzZXNzaW9uLmlk
bAppbmRleCBjMmIyZTA1ODllMWMyMTdhMmUxMDhmOGIxMmMyNWFlMmYyYWQzOTk4Li40Y2VjMzU0
YzlkMWVjODBkMjBiMWY1MDZiYWE5NDQ0NzMzMGM4YmJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvbWVkaWFzZXNzaW9u
LmlkbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lu
dGVyZmFjZXMvbWVkaWFzZXNzaW9uLmlkbApAQCAtMjMsMTAgKzIzLDEzIEBAIGVudW0gTWVkaWFT
ZXNzaW9uQWN0aW9uIHsKICAgIm5leHR0cmFjayIsCiAgICJza2lwYWQiLAogICAic3RvcCIsCi0g
ICJzZWVrdG8iCisgICJzZWVrdG8iLAorICAidG9nZ2xlbWljcm9waG9uZSIsCisgICJ0b2dnbGVj
YW1lcmEiLAorICAiaGFuZ3VwIgogfTsKIAotY2FsbGJhY2sgTWVkaWFTZXNzaW9uQWN0aW9uSGFu
ZGxlciA9IHZvaWQoTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyBkZXRhaWxzKTsKK2NhbGxiYWNr
IE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIgPSB1bmRlZmluZWQoTWVkaWFTZXNzaW9uQWN0aW9u
RGV0YWlscyBkZXRhaWxzKTsKIAogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIE1lZGlhU2Vz
c2lvbiB7CkBAIC0zNCw5ICszNywxMyBAQCBpbnRlcmZhY2UgTWVkaWFTZXNzaW9uIHsKIAogICBh
dHRyaWJ1dGUgTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBwbGF5YmFja1N0YXRlOwogCi0gIHZv
aWQgc2V0QWN0aW9uSGFuZGxlcihNZWRpYVNlc3Npb25BY3Rpb24gYWN0aW9uLCBNZWRpYVNlc3Np
b25BY3Rpb25IYW5kbGVyPyBoYW5kbGVyKTsKKyAgdW5kZWZpbmVkIHNldEFjdGlvbkhhbmRsZXIo
TWVkaWFTZXNzaW9uQWN0aW9uIGFjdGlvbiwgTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj8gaGFu
ZGxlcik7CiAKLSAgdm9pZCBzZXRQb3NpdGlvblN0YXRlKG9wdGlvbmFsIE1lZGlhUG9zaXRpb25T
dGF0ZSBzdGF0ZSA9IHt9KTsKKyAgdW5kZWZpbmVkIHNldFBvc2l0aW9uU3RhdGUob3B0aW9uYWwg
TWVkaWFQb3NpdGlvblN0YXRlIHN0YXRlID0ge30pOworCisgIHVuZGVmaW5lZCBzZXRNaWNyb3Bo
b25lQWN0aXZlKGJvb2xlYW4gYWN0aXZlKTsKKworICB1bmRlZmluZWQgc2V0Q2FtZXJhQWN0aXZl
KGJvb2xlYW4gYWN0aXZlKTsKIH07CiAKIFtFeHBvc2VkPVdpbmRvd10KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9uL2lk
bGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9uL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVk
LnR4dAppbmRleCBmZWM2ZDY0Mzg5ZWRlMWMyMGQ0ZjI2MjM1N2YxMjYyYzcxMWEwMTM1Li5mNGIz
MTU5ZGY1OGZlNTk5MjkxMmE4OTM1NzRlYjE3ZGNlNjE5MzdhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhc2Vzc2lvbi9pZGxoYXJu
ZXNzLndpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9tZWRpYXNlc3Npb24vaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQu
dHh0CkBAIC0yMiw2ICsyMiw4IEBAIFBBU1MgTWVkaWFTZXNzaW9uIGludGVyZmFjZTogYXR0cmli
dXRlIG1ldGFkYXRhCiBQQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBwbGF5
YmFja1N0YXRlCiBQQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRBY3Rp
b25IYW5kbGVyKE1lZGlhU2Vzc2lvbkFjdGlvbiwgTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj8p
CiBQQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRQb3NpdGlvblN0YXRl
KG9wdGlvbmFsIE1lZGlhUG9zaXRpb25TdGF0ZSkKK0ZBSUwgTWVkaWFTZXNzaW9uIGludGVyZmFj
ZTogb3BlcmF0aW9uIHNldE1pY3JvcGhvbmVBY3RpdmUoYm9vbGVhbikgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJh
dGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAic2V0TWljcm9waG9uZUFjdGl2ZSIgbWlzc2luZworRkFJ
TCBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0Q2FtZXJhQWN0aXZlKGJvb2xl
YW4pIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Np
bmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgInNldENhbWVyYUFjdGl2
ZSIgbWlzc2luZwogUEFTUyBNZWRpYVNlc3Npb24gbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBv
ZiBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uCiBQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBuYXZpZ2F0
b3IubWVkaWFTZXNzaW9uCiBQQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IG5hdmlnYXRvci5t
ZWRpYVNlc3Npb24gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJtZXRhZGF0YSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUKQEAgLTMwLDYgKzMyLDEwIEBAIFBBU1MgTWVkaWFTZXNzaW9uIGludGVyZmFjZTog
bmF2aWdhdG9yLm1lZGlhU2Vzc2lvbiBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNldEFjCiBQQVNT
IE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGNhbGxpbmcgc2V0QWN0aW9uSGFuZGxlcihNZWRpYVNl
c3Npb25BY3Rpb24sIE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI/KSBvbiBuYXZpZ2F0b3IubWVk
aWFTZXNzaW9uIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IKIFBB
U1MgTWVkaWFTZXNzaW9uIGludGVyZmFjZTogbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbiBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgInNldFBvc2l0aW9uU3RhdGUob3B0aW9uYWwgTWVkaWFQb3NpdGlvblN0
YXRlKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgTWVkaWFTZXNzaW9uIGludGVyZmFjZTog
Y2FsbGluZyBzZXRQb3NpdGlvblN0YXRlKG9wdGlvbmFsIE1lZGlhUG9zaXRpb25TdGF0ZSkgb24g
bmF2aWdhdG9yLm1lZGlhU2Vzc2lvbiB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yCitGQUlMIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IG5hdmlnYXRvci5tZWRpYVNl
c3Npb24gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZXRNaWNyb3Bob25lQWN0aXZlKGJvb2xlYW4p
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJzZXRNaWNy
b3Bob25lQWN0aXZlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIE1lZGlhU2Vz
c2lvbiBpbnRlcmZhY2U6IGNhbGxpbmcgc2V0TWljcm9waG9uZUFjdGl2ZShib29sZWFuKSBvbiBu
YXZpZ2F0b3IubWVkaWFTZXNzaW9uIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAic2V0TWljcm9waG9uZUFjdGl2ZSIg
bm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBNZWRpYVNlc3Npb24gaW50ZXJmYWNl
OiBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2V0Q2FtZXJh
QWN0aXZlKGJvb2xlYW4pIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHBy
b3BlcnR5ICJzZXRDYW1lcmFBY3RpdmUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZB
SUwgTWVkaWFTZXNzaW9uIGludGVyZmFjZTogY2FsbGluZyBzZXRDYW1lcmFBY3RpdmUoYm9vbGVh
bikgb24gbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbiB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgInNldENhbWVyYUFjdGl2
ZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgogUEFTUyBNZWRpYU1ldGFkYXRhIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1Mg
TWVkaWFNZXRhZGF0YSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBNZWRpYU1ldGFkYXRh
IGludGVyZmFjZSBvYmplY3QgbmFtZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ub3RpZmljYXRpb25zL2lkbGhhcm5lc3MuaHR0cHMuYW55
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvbm90aWZpY2F0aW9ucy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3RlZC50eHQKaW5kZXgg
ZjBmZWM5MjE2MzlhMjQ4Y2ViOTFhZTVkNGQ5MmY1Njc0NDNhMDgyNC4uMzU4OTk1ZDZlZjVlZDBi
NGRkM2Y0NDY1MDI3NTIxNmY4OTEwZjgzYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ub3RpZmljYXRpb25zL2lkbGhhcm5lc3MuaHR0cHMu
YW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL25vdGlmaWNhdGlvbnMvaWRsaGFybmVzcy5odHRwcy5hbnktZXhwZWN0ZWQudHh0
CkBAIC02NCw3ICs2NCw0IEBAIFBBU1MgTm90aWZpY2F0aW9uIGludGVyZmFjZTogbm90aWZpY2F0
aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xvc2UoKSIgd2l0aCB0CiBQQVNTIE5vdGlmaWNh
dGlvbkV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBvYmplY3QKIEZBSUwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBzaG93Tm90aWZpY2F0aW9uKERPTVN0cmluZywgb3B0aW9uYWwgTm90aWZpY2F0aW9uT3B0
aW9ucykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlz
c2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAic2hvd05vdGlmaWNh
dGlvbiIgbWlzc2luZwogRkFJTCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTog
b3BlcmF0aW9uIGdldE5vdGlmaWNhdGlvbnMob3B0aW9uYWwgR2V0Tm90aWZpY2F0aW9uT3B0aW9u
cykgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbWlzc2lu
ZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0eSAiZ2V0Tm90aWZpY2F0aW9u
cyIgbWlzc2luZwotUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAotUEFTUyBFeHRlbmRhYmxl
RXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdAotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9pZGxoYXJuZXNzLmh0
dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9ub3RpZmljYXRpb25zL2lkbGhhcm5lc3MuaHR0cHMuYW55Lndvcmtl
ci1leHBlY3RlZC50eHQKaW5kZXggNTk4MTVhNDQzZjY3MTc0ODljYzc5ZGQ2YzM2NjNlNDNlODA5
OTJlZS4uZmVmODRhZmMzNTQ5YWIwYzNlYzAxMWZkYzQ1NGQ1ZGVkYjUyODc5OSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ub3RpZmljYXRp
b25zL2lkbGhhcm5lc3MuaHR0cHMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ub3RpZmljYXRpb25zL2lkbGhh
cm5lc3MuaHR0cHMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTYzLDYgKzYzLDQgQEAgRkFJ
TCBOb3RpZmljYXRpb24gaW50ZXJmYWNlOiBub3RpZmljYXRpb24gbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJjbG9zZSgpIiB3aXRoIHQKIFBBU1MgTm90aWZpY2F0aW9uRXZlbnQgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogRkFJTCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIHNob3dOb3RpZmljYXRpb24o
RE9NU3RyaW5nLCBvcHRpb25hbCBOb3RpZmljYXRpb25PcHRpb25zKSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiIgbWlz
c2luZwogRkFJTCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogb3BlcmF0aW9u
IGdldE5vdGlmaWNhdGlvbnMob3B0aW9uYWwgR2V0Tm90aWZpY2F0aW9uT3B0aW9ucykgYXNzZXJ0
X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb24iIG1pc3NpbmcKLVBBU1MgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKLVBBU1MgRXh0ZW5k
YWJsZUV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBvYmplY3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcG9pbnRlcmV2ZW50
cy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggZjc2ZTY5MTJkNDc5OTA2Zjdi
OTk1YzkzNjllNTdjYjY3OTA0ZTdmMC4uMDczMjI3ZDM2NWJjNzJlMzk1M2RlZTQ2N2Y4OTA2ZGYy
NWE2NGM1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wb2ludGVyZXZlbnRzL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVu
dHMvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0xNCw5ICsxNCw2IEBAIFBBU1Mg
UGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnRbMl06IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIFBhcnRpYWwgaW50ZXJmYWNlIFdpbmRvdzogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgRG9jdW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRI
YW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMg
Tm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3Vt
ZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERv
Y3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRF
bGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVs
ZW1lbnQgaW5jbHVkZXMgRWxlbWVudENvbnRlbnRFZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKQEAgLTI0LDkgKzIxLDYgQEAgUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBIVE1MT3JT
VkdFbGVtZW50OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMg
R2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93
IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQotUEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRl
cjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd1Nl
c3Npb25TdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBXaW5kb3cgaW5jbHVk
ZXMgV2luZG93TG9jYWxTdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZp
Z2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9ySUQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNT
IE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JMYW5ndWFnZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvck9uTGluZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKQEAgLTM0LDEwICsyOCwxNiBAQCBQQVNTIE5hdmlnYXRvciBpbmNsdWRl
cyBOYXZpZ2F0b3JDb250ZW50VXRpbHM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5h
dmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb29raWVzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yUGx1Z2luczogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvbmN1cnJlbnRI
YXJkd2FyZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV2luZG93IGluY2x1ZGVzIEFu
aW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdpbmRv
dyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
K1BBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9k
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBOb25Eb2N1
bWVudFR5cGVDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQg
aW5jbHVkZXMgQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50
IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1l
bnQgaW5jbHVkZXMgWFBhdGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQog
UEFTUyBQb2ludGVyRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdAogUEFTUyBQb2ludGVyRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5n
dGgKIFBBU1MgUG9pbnRlckV2ZW50IGludGVyZmFjZSBvYmplY3QgbmFtZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvY2hl
Y2stbGF5b3V0LXRoLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LXRoLmpzCmluZGV4IDVkNDIzNmQxY2VkYjBlMjBk
YmMxYmIzMDcyMmNiMGU5ZTE2MGYxMTAuLmE1MDdhOGRmZDdmMTk3Y2JmM2ZmMzA3MmU3ZjcyOTE4
NDdjZDZhYTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcmVzb3VyY2VzL2NoZWNrLWxheW91dC10aC5qcworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy9jaGVjay1sYXlvdXQtdGgu
anMKQEAgLTM2LDYgKzM2LDcgQEAgZnVuY3Rpb24gY2hlY2tEYXRhS2V5cyhub2RlKSB7CiAgICAg
ICAgICJkYXRhLWV4cGVjdGVkLXNjcm9sbC13aWR0aCIsCiAgICAgICAgICJkYXRhLWV4cGVjdGVk
LXNjcm9sbC1oZWlnaHQiLAogICAgICAgICAiZGF0YS1leHBlY3RlZC1ib3VuZGluZy1jbGllbnQt
cmVjdC13aWR0aCIsCisgICAgICAgICJkYXRhLWV4cGVjdGVkLWJvdW5kaW5nLWNsaWVudC1yZWN0
LWhlaWdodCIsCiAgICAgICAgICJkYXRhLXRvdGFsLXgiLAogICAgICAgICAiZGF0YS10b3RhbC15
IiwKICAgICAgICAgImRhdGEtZXhwZWN0ZWQtZGlzcGxheSIsCkBAIC0xMDcsNiArMTA4LDExIEBA
IGZ1bmN0aW9uIGNoZWNrRXhwZWN0ZWRWYWx1ZXModCwgbm9kZSwgcHJlZml4KQogICAgICAgICBh
c3NlcnRfdG9sZXJhbmNlKG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsIGV4cGVj
dGVkV2lkdGgsIHByZWZpeCArICJnZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIpOwogICAg
IH0KIAorICAgIHZhciBleHBlY3RlZEhlaWdodCA9IGNoZWNrQXR0cmlidXRlKG91dHB1dCwgbm9k
ZSwgImRhdGEtZXhwZWN0ZWQtYm91bmRpbmctY2xpZW50LXJlY3QtaGVpZ2h0Iik7CisgICAgaWYg
KGV4cGVjdGVkSGVpZ2h0KSB7CisgICAgICAgIGFzc2VydF90b2xlcmFuY2Uobm9kZS5nZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQsIGV4cGVjdGVkSGVpZ2h0LCBwcmVmaXggKyAiZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0Iik7CisgICAgfQorCiAgICAgdmFyIGV4cGVjdGVkT2Zm
c2V0ID0gY2hlY2tBdHRyaWJ1dGUob3V0cHV0LCBub2RlLCAiZGF0YS10b3RhbC14Iik7CiAgICAg
aWYgKGV4cGVjdGVkT2Zmc2V0KSB7CiAgICAgICAgIHZhciB0b3RhbExlZnQgPSBub2RlLmNsaWVu
dExlZnQgKyBub2RlLm9mZnNldExlZnQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvaWRsaGFybmVz
cy5qcwppbmRleCA1YTk3YjI3M2YyYmVkMTk2ZDZkZGQ4NWM1NTk2ZGVjZmYxYmY4N2FlLi42YWVj
MDJlM2FiZTA2YjIwZDExYmI0NmJmZDViNzQyMzI2ODUxYzg2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy9pZGxoYXJuZXNz
LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL2lkbGhhcm5lc3MuanMKQEAgLTEsMTMgKzEsMyBAQAotLyoKLURpc3RyaWJ1dGVkIHVu
ZGVyIGJvdGggdGhlIFczQyBUZXN0IFN1aXRlIExpY2Vuc2UgWzFdIGFuZCB0aGUgVzNDCi0zLWNs
YXVzZSBCU0QgTGljZW5zZSBbMl0uIFRvIGNvbnRyaWJ1dGUgdG8gYSBXM0MgVGVzdCBTdWl0ZSwg
c2VlIHRoZQotcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCi0KLVsxXSBodHRw
Oi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDgvMDQtdGVzdHN1aXRlLWxpY2Vuc2UK
LVsyXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDgvMDMtYnNkLWxpY2Vu
c2UKLVszXSBodHRwOi8vd3d3LnczLm9yZy8yMDA0LzEwLzI3LXRlc3RjYXNlcwotKi8KLQogLyog
Rm9yIHVzZXIgZG9jdW1lbnRhdGlvbiBzZWUgZG9jcy9fd3JpdGluZy10ZXN0cy9pZGxoYXJuZXNz
Lm1kICovCiAKIC8qKgpAQCAtMTAxLDYgKzkxLDE2IEBAIGZ1bmN0aW9uIGdsb2JhbE9mKGZ1bmMp
CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKKy8vIGh0dHBzOi8vZXNkaXNjdXNzLm9yZy90b3BpYy9p
c2NvbnN0cnVjdG9yI2NvbnRlbnQtMTEKK2Z1bmN0aW9uIGlzQ29uc3RydWN0b3IobykgeworICAg
IHRyeSB7CisgICAgICAgIG5ldyAobmV3IFByb3h5KG8sIHtjb25zdHJ1Y3Q6ICgpID0+ICh7fSl9
KSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0gY2F0Y2goZSkgeworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorfQorCiBmdW5jdGlvbiB0aHJvd09yUmVqZWN0KGFfdGVzdCwgb3Bl
cmF0aW9uLCBmbiwgb2JqLCBhcmdzLCBtZXNzYWdlLCBjYikKIHsKICAgICBpZiAob3BlcmF0aW9u
LmlkbFR5cGUuZ2VuZXJpYyAhPT0gIlByb21pc2UiKSB7CkBAIC0xMzEsMTcgKzEzMSw2IEBAIGZ1
bmN0aW9uIGF3YWl0TkNhbGxiYWNrcyhuLCBjYiwgY3R4KQogICAgIH07CiB9CiAKLXZhciBmcm91
bmQgPQotKGZ1bmN0aW9uKCl7Ci0gICAgaWYgKE1hdGguZnJvdW5kKSByZXR1cm4gTWF0aC5mcm91
bmQ7Ci0KLSAgICB2YXIgYXJyID0gbmV3IEZsb2F0MzJBcnJheSgxKTsKLSAgICByZXR1cm4gZnVu
Y3Rpb24gZnJvdW5kKG4pIHsKLSAgICAgICAgYXJyWzBdID0gbjsKLSAgICAgICAgcmV0dXJuIGFy
clswXTsKLSAgICB9OwotfSkoKTsKLQogLy8vIElkbEhhcm5lc3NFcnJvciAvLy8KIC8vIEVudHJ5
IHBvaW50CiBzZWxmLklkbEhhcm5lc3NFcnJvciA9IGZ1bmN0aW9uKG1lc3NhZ2UpCkBAIC0xODUs
MzEgKzE3NCwxNSBAQCBzZWxmLklkbEFycmF5ID0gZnVuY3Rpb24oKQogCiAgICAgLyoqCiAgICAg
ICogV2hlbiBhZGRpbmcgbXVsdGlwbGUgY29sbGVjdGlvbnMgb2YgSURMcyBvbmUgYXQgYSB0aW1l
LCBhbiBlYXJsaWVyIG9uZQotICAgICAqIG1pZ2h0IGNvbnRhaW4gYSBwYXJ0aWFsIGludGVyZmFj
ZSBvciBpbXBsZW1lbnRzIHN0YXRlbWVudCB0aGF0IGRlcGVuZHMKKyAgICAgKiBtaWdodCBjb250
YWluIGEgcGFydGlhbCBpbnRlcmZhY2Ugb3IgaW5jbHVkZXMgc3RhdGVtZW50IHRoYXQgZGVwZW5k
cwogICAgICAqIG9uIGEgbGF0ZXIgb25lLiAgU2F2ZSB0aGVzZSB1cCBhbmQgaGFuZGxlIHRoZW0g
cmlnaHQgYmVmb3JlIHdlIHJ1bgogICAgICAqIHRlc3RzLgogICAgICAqCi0gICAgICogLnBhcnRp
YWxzIGlzIHNpbXBseSBhbiBhcnJheSBvZiBvYmplY3RzIGZyb20gV2ViSURMUGFyc2VyLmpzJwot
ICAgICAqICJwYXJ0aWFsaW50ZXJmYWNlIiBwcm9kdWN0aW9uLiAgLmltcGxlbWVudHMgbWFwcyBz
dHJpbmdzIHRvIGFycmF5cyBvZgotICAgICAqIHN0cmluZ3MsIHN1Y2ggdGhhdAotICAgICAqCi0g
ICAgICogICBBIGltcGxlbWVudHMgQjsKLSAgICAgKiAgIEEgaW1wbGVtZW50cyBDOwotICAgICAq
ICAgRCBpbXBsZW1lbnRzIEU7Ci0gICAgICoKLSAgICAgKiByZXN1bHRzIGluIHRoaXNbImltcGxl
bWVudHMiXSA9IHsgQTogWyJCIiwgIkMiXSwgRDogWyJFIl0gfS4KLSAgICAgKgotICAgICAqIFNp
bWlsYXJseSwKLSAgICAgKgotICAgICAqICAgaW50ZXJmYWNlIEEgOiBCIHt9OwotICAgICAqICAg
aW50ZXJmYWNlIEIgOiBDIHt9OwotICAgICAqCi0gICAgICogcmVzdWx0cyBpbiB0aGlzWyJpbmhl
cml0YW5jZSJdID0geyBBOiAiQiIsIEI6ICJDIiB9CisgICAgICogQm90aCB0aGlzLnBhcnRpYWxz
IGFuZCB0aGlzLmluY2x1ZGVzIHdpbGwgYmUgdGhlIG9iamVjdHMgYXMgcGFyc2VkIGJ5CisgICAg
ICogV2ViSURMUGFyc2VyLmpzLCBub3Qgd3JhcHBlZCBpbiBJZGxJbnRlcmZhY2Ugb3Igc2ltaWxh
ci4KICAgICAgKi8KICAgICB0aGlzLnBhcnRpYWxzID0gW107Ci0gICAgdGhpc1siaW1wbGVtZW50
cyJdID0ge307Ci0gICAgdGhpc1siaW5jbHVkZXMiXSA9IHt9OwotICAgIHRoaXNbImluaGVyaXRh
bmNlIl0gPSB7fTsKKyAgICB0aGlzLmluY2x1ZGVzID0gW107CiAKICAgICAvKioKICAgICAgKiBS
ZWNvcmQgb2Ygc2tpcHBlZCBJREwgaXRlbXMsIGluIGNhc2Ugd2UgbGF0ZXIgcmVhbGl6ZSB0aGF0
IHRoZXkgYXJlIGEKQEAgLTI2MSwxNSArMjM0LDE1IEBAIElkbEFycmF5LnByb3RvdHlwZS5pbnRl
cm5hbF9hZGRfZGVwZW5kZW5jeV9pZGxzID0gZnVuY3Rpb24ocGFyc2VkX2lkbHMsIG9wdGlvbnMp
CiAgICAgY29uc3QgbmV3X29wdGlvbnMgPSB7IG9ubHk6IFtdIH0KIAogICAgIGNvbnN0IGFsbF9k
ZXBzID0gbmV3IFNldCgpOwotICAgIE9iamVjdC52YWx1ZXModGhpcy5pbmhlcml0YW5jZSkuZm9y
RWFjaCh2ID0+IGFsbF9kZXBzLmFkZCh2KSk7Ci0gICAgT2JqZWN0LmVudHJpZXModGhpcy5pbXBs
ZW1lbnRzKS5mb3JFYWNoKChbaywgdl0pID0+IHsKLSAgICAgICAgYWxsX2RlcHMuYWRkKGspOwot
ICAgICAgICBhbGxfZGVwcy5hZGQodik7CisgICAgT2JqZWN0LnZhbHVlcyh0aGlzLm1lbWJlcnMp
LmZvckVhY2godiA9PiB7CisgICAgICAgIGlmICh2LmJhc2UpIHsKKyAgICAgICAgICAgIGFsbF9k
ZXBzLmFkZCh2LmJhc2UpOworICAgICAgICB9CiAgICAgfSk7Ci0gICAgLy8gTk9URTogSWYgJ0Eg
aW5jbHVkZXMgQicgZm9yIEIgdGhhdCB3ZSBjYXJlIGFib3V0LCB0aGVuIEEgaXMgYWxzbyBhIGRl
cC4KLSAgICBPYmplY3Qua2V5cyh0aGlzLmluY2x1ZGVzKS5mb3JFYWNoKGsgPT4gewotICAgICAg
ICBhbGxfZGVwcy5hZGQoayk7Ci0gICAgICAgIHRoaXMuaW5jbHVkZXNba10uZm9yRWFjaCh2ID0+
IGFsbF9kZXBzLmFkZCh2KSk7CisgICAgLy8gQWRkIGJvdGggJ0EnIGFuZCAnQicgZm9yIGVhY2gg
J0EgaW5jbHVkZXMgQicgZW50cnkuCisgICAgdGhpcy5pbmNsdWRlcy5mb3JFYWNoKGkgPT4gewor
ICAgICAgICBhbGxfZGVwcy5hZGQoaS50YXJnZXQpOworICAgICAgICBhbGxfZGVwcy5hZGQoaS5p
bmNsdWRlcyk7CiAgICAgfSk7CiAgICAgdGhpcy5wYXJ0aWFscy5mb3JFYWNoKHAgPT4gYWxsX2Rl
cHMuYWRkKHAubmFtZSkpOwogICAgIC8vIEFkZCAnVHlwZU9mVHlwZScgZm9yIGVhY2ggInR5cGVk
ZWYgVHlwZU9mVHlwZSBNeVR5cGU7IiBlbnRyeS4KQEAgLTMyOCw5ICszMDEsNiBAQCBJZGxBcnJh
eS5wcm90b3R5cGUuaW50ZXJuYWxfYWRkX2RlcGVuZGVuY3lfaWRscyA9IGZ1bmN0aW9uKHBhcnNl
ZF9pZGxzLCBvcHRpb25zKQogICAgICAgICB2YXIgZGVwcyA9IFtdOwogICAgICAgICBpZiAocGFy
c2VkLm5hbWUpIHsKICAgICAgICAgICAgIGRlcHMucHVzaChwYXJzZWQubmFtZSk7Ci0gICAgICAg
IH0gZWxzZSBpZiAocGFyc2VkLnR5cGUgPT09ICJpbXBsZW1lbnRzIikgewotICAgICAgICAgICAg
ZGVwcy5wdXNoKHBhcnNlZC50YXJnZXQpOwotICAgICAgICAgICAgZGVwcy5wdXNoKHBhcnNlZC5p
bXBsZW1lbnRzKTsKICAgICAgICAgfSBlbHNlIGlmIChwYXJzZWQudHlwZSA9PT0gImluY2x1ZGVz
IikgewogICAgICAgICAgICAgZGVwcy5wdXNoKHBhcnNlZC50YXJnZXQpOwogICAgICAgICAgICAg
ZGVwcy5wdXNoKHBhcnNlZC5pbmNsdWRlcyk7CkBAIC0zNTgsNyArMzI4LDcgQEAgSWRsQXJyYXku
cHJvdG90eXBlLmludGVybmFsX2FkZF9kZXBlbmRlbmN5X2lkbHMgPSBmdW5jdGlvbihwYXJzZWRf
aWRscywgb3B0aW9ucykKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgY29uc3QgZm9sbG93
X3VwID0gbmV3IFNldCgpOwotICAgICAgICAgICAgZm9yIChjb25zdCBkZXBfdHlwZSBvZiBbImlu
aGVyaXRhbmNlIiwgImltcGxlbWVudHMiLCAiaW5jbHVkZXMiXSkgeworICAgICAgICAgICAgZm9y
IChjb25zdCBkZXBfdHlwZSBvZiBbImluaGVyaXRhbmNlIiwgImluY2x1ZGVzIl0pIHsKICAgICAg
ICAgICAgICAgICBpZiAocGFyc2VkW2RlcF90eXBlXSkgewogICAgICAgICAgICAgICAgICAgICBj
b25zdCBpbmhlcml0aW5nID0gcGFyc2VkW2RlcF90eXBlXTsKICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgaW5oZXJpdG9yID0gcGFyc2VkLm5hbWUgfHwgcGFyc2VkLnRhcmdldDsKQEAgLTQ0Nywz
MSArNDE3LDEzIEBAIElkbEFycmF5LnByb3RvdHlwZS5pbnRlcm5hbF9hZGRfaWRscyA9IGZ1bmN0
aW9uKHBhcnNlZF9pZGxzLCBvcHRpb25zKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKLSAgICAgICAgaWYgKHBhcnNlZF9pZGwudHlwZSA9PSAiaW1wbGVtZW50cyIpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGlmIChzaG91bGRfc2tpcChwYXJzZWRfaWRsLnRhcmdldCkpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgaWYgKCEocGFyc2VkX2lkbC50YXJnZXQgaW4gdGhpc1siaW1wbGVtZW50cyJdKSkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB0aGlzWyJpbXBsZW1lbnRzIl1bcGFyc2VkX2lk
bC50YXJnZXRdID0gW107Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB0aGlzWyJpbXBsZW1l
bnRzIl1bcGFyc2VkX2lkbC50YXJnZXRdLnB1c2gocGFyc2VkX2lkbFsiaW1wbGVtZW50cyJdKTsK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCiAgICAgICAgIGlmIChwYXJzZWRfaWRs
LnR5cGUgPT0gImluY2x1ZGVzIikKICAgICAgICAgewogICAgICAgICAgICAgaWYgKHNob3VsZF9z
a2lwKHBhcnNlZF9pZGwudGFyZ2V0KSkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIShwYXJzZWRfaWRsLnRhcmdl
dCBpbiB0aGlzWyJpbmNsdWRlcyJdKSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB0
aGlzWyJpbmNsdWRlcyJdW3BhcnNlZF9pZGwudGFyZ2V0XSA9IFtdOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgdGhpc1siaW5jbHVkZXMiXVtwYXJzZWRfaWRsLnRhcmdldF0ucHVzaChwYXJz
ZWRfaWRsWyJpbmNsdWRlcyJdKTsKKyAgICAgICAgICAgIHRoaXMuaW5jbHVkZXMucHVzaChwYXJz
ZWRfaWRsKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC00ODUsMTYgKzQz
Nyw2IEBAIElkbEFycmF5LnByb3RvdHlwZS5pbnRlcm5hbF9hZGRfaWRscyA9IGZ1bmN0aW9uKHBh
cnNlZF9pZGxzLCBvcHRpb25zKQogICAgICAgICAgICAgdGhyb3cgbmV3IElkbEhhcm5lc3NFcnJv
cigiRHVwbGljYXRlIGlkZW50aWZpZXIgIiArIHBhcnNlZF9pZGwubmFtZSk7CiAgICAgICAgIH0K
IAotICAgICAgICBpZiAocGFyc2VkX2lkbFsiaW5oZXJpdGFuY2UiXSkgewotICAgICAgICAgICAg
Ly8gTk9URTogQ2xhc2ggc2hvdWxkIGJlIGltcG9zc2libGUgKHdvdWxkIHJlcXVpcmUgcmVkZWZp
bml0aW9uIG9mIHBhcnNlZF9pZGwubmFtZSkuCi0gICAgICAgICAgICBpZiAocGFyc2VkX2lkbC5u
YW1lIGluIHRoaXNbImluaGVyaXRhbmNlIl0KLSAgICAgICAgICAgICAgICAmJiBwYXJzZWRfaWRs
WyJpbmhlcml0YW5jZSJdICE9IHRoaXNbImluaGVyaXRhbmNlIl1bcGFyc2VkX2lkbC5uYW1lXSkg
ewotICAgICAgICAgICAgICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJyb3IoCi0gICAgICAgICAg
ICAgICAgICAgIGBJbmhlcml0YW5jZSBmb3IgJHtwYXJzZWRfaWRsLm5hbWV9IHdhcyBhbHJlYWR5
IGRlZmluZWRgKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRoaXNbImluaGVyaXRhbmNl
Il1bcGFyc2VkX2lkbC5uYW1lXSA9IHBhcnNlZF9pZGxbImluaGVyaXRhbmNlIl07Ci0gICAgICAg
IH0KLQogICAgICAgICBzd2l0Y2gocGFyc2VkX2lkbC50eXBlKQogICAgICAgICB7CiAgICAgICAg
IGNhc2UgImludGVyZmFjZSI6CkBAIC01NjIsNjIgKzUwNCw2IEBAIElkbEFycmF5LnByb3RvdHlw
ZS5wcmV2ZW50X211bHRpcGxlX3Rlc3RpbmcgPSBmdW5jdGlvbihuYW1lKQogICAgIHRoaXMubWVt
YmVyc1tuYW1lXS5wcmV2ZW50X211bHRpcGxlX3Rlc3RpbmcgPSB0cnVlOwogfTsKIAotSWRsQXJy
YXkucHJvdG90eXBlLnJlY3Vyc2l2ZWx5X2dldF9pbXBsZW1lbnRzID0gZnVuY3Rpb24oaW50ZXJm
YWNlX25hbWUpCi17Ci0gICAgLyoqCi0gICAgICogSGVscGVyIGZ1bmN0aW9uIGZvciB0ZXN0KCku
ICBSZXR1cm5zIGFuIGFycmF5IG9mIHRoaW5ncyB0aGF0IGltcGxlbWVudAotICAgICAqIGludGVy
ZmFjZV9uYW1lLCBzbyBpZiB0aGUgSURMIGNvbnRhaW5zCi0gICAgICoKLSAgICAgKiAgIEEgaW1w
bGVtZW50cyBCOwotICAgICAqICAgQiBpbXBsZW1lbnRzIEM7Ci0gICAgICogICBCIGltcGxlbWVu
dHMgRDsKLSAgICAgKgotICAgICAqIHRoZW4gcmVjdXJzaXZlbHlfZ2V0X2ltcGxlbWVudHMoIkEi
KSBzaG91bGQgcmV0dXJuIFsiQiIsICJDIiwgIkQiXS4KLSAgICAgKi8KLSAgICB2YXIgcmV0ID0g
dGhpc1siaW1wbGVtZW50cyJdW2ludGVyZmFjZV9uYW1lXTsKLSAgICBpZiAocmV0ID09PSB1bmRl
ZmluZWQpCi0gICAgewotICAgICAgICByZXR1cm4gW107Ci0gICAgfQotICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgdGhpc1siaW1wbGVtZW50cyJdW2ludGVyZmFjZV9uYW1lXS5sZW5ndGg7IGkrKykK
LSAgICB7Ci0gICAgICAgIHJldCA9IHJldC5jb25jYXQodGhpcy5yZWN1cnNpdmVseV9nZXRfaW1w
bGVtZW50cyhyZXRbaV0pKTsKLSAgICAgICAgaWYgKHJldC5pbmRleE9mKHJldFtpXSkgIT0gcmV0
Lmxhc3RJbmRleE9mKHJldFtpXSkpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBJ
ZGxIYXJuZXNzRXJyb3IoIkNpcmN1bGFyIGltcGxlbWVudHMgc3RhdGVtZW50cyBpbnZvbHZpbmcg
IiArIHJldFtpXSk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHJldDsKLX07Ci0KLUlk
bEFycmF5LnByb3RvdHlwZS5yZWN1cnNpdmVseV9nZXRfaW5jbHVkZXMgPSBmdW5jdGlvbihpbnRl
cmZhY2VfbmFtZSkKLXsKLSAgICAvKioKLSAgICAgKiBIZWxwZXIgZnVuY3Rpb24gZm9yIHRlc3Qo
KS4gIFJldHVybnMgYW4gYXJyYXkgb2YgdGhpbmdzIHRoYXQgaW1wbGVtZW50Ci0gICAgICogaW50
ZXJmYWNlX25hbWUsIHNvIGlmIHRoZSBJREwgY29udGFpbnMKLSAgICAgKgotICAgICAqICAgQSBp
bmNsdWRlcyBCOwotICAgICAqICAgQiBpbmNsdWRlcyBDOwotICAgICAqICAgQiBpbmNsdWRlcyBE
OwotICAgICAqCi0gICAgICogdGhlbiByZWN1cnNpdmVseV9nZXRfaW5jbHVkZXMoIkEiKSBzaG91
bGQgcmV0dXJuIFsiQiIsICJDIiwgIkQiXS4KLSAgICAgKi8KLSAgICB2YXIgcmV0ID0gdGhpc1si
aW5jbHVkZXMiXVtpbnRlcmZhY2VfbmFtZV07Ci0gICAgaWYgKHJldCA9PT0gdW5kZWZpbmVkKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIFtdOwotICAgIH0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHRoaXNbImluY2x1ZGVzIl1baW50ZXJmYWNlX25hbWVdLmxlbmd0aDsgaSsrKQotICAgIHsKLSAg
ICAgICAgcmV0ID0gcmV0LmNvbmNhdCh0aGlzLnJlY3Vyc2l2ZWx5X2dldF9pbmNsdWRlcyhyZXRb
aV0pKTsKLSAgICAgICAgaWYgKHJldC5pbmRleE9mKHJldFtpXSkgIT0gcmV0Lmxhc3RJbmRleE9m
KHJldFtpXSkpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJy
b3IoIkNpcmN1bGFyIGluY2x1ZGVzIHN0YXRlbWVudHMgaW52b2x2aW5nICIgKyByZXRbaV0pOwot
ICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci19OwotCiBJZGxBcnJheS5wcm90b3R5
cGUuaXNfanNvbl90eXBlID0gZnVuY3Rpb24odHlwZSkKIHsKICAgICAvKioKQEAgLTY5NSwyNSAr
NTgxLDIzIEBAIElkbEFycmF5LnByb3RvdHlwZS5pc19qc29uX3R5cGUgPSBmdW5jdGlvbih0eXBl
KQogCiAgICAgICAgICAgIC8vICBkaWN0aW9uYXJpZXMgd2hlcmUgYWxsIG9mIHRoZWlyIG1lbWJl
cnMgYXJlIEpTT04gdHlwZXMKICAgICAgICAgICAgaWYgKHRoaW5nIGluc3RhbmNlb2YgSWRsRGlj
dGlvbmFyeSkgewotICAgICAgICAgICAgICAgdmFyIHN0YWNrID0gdGhpbmcuZ2V0X2luaGVyaXRh
bmNlX3N0YWNrKCk7Ci0gICAgICAgICAgICAgICB2YXIgbWFwID0gbmV3IE1hcCgpOwotICAgICAg
ICAgICAgICAgd2hpbGUgKHN0YWNrLmxlbmd0aCkKLSAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICBzdGFjay5wb3AoKS5tZW1iZXJzLmZvckVhY2goZnVuY3Rpb24obSkgewotICAg
ICAgICAgICAgICAgICAgICAgICBtYXAuc2V0KG0ubmFtZSwgbS5pZGxUeXBlKQotICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgY29uc3QgbWFwID0gbmV3IE1hcCgpOworICAg
ICAgICAgICAgICAgZm9yIChjb25zdCBkaWN0IG9mIHRoaW5nLmdldF9yZXZlcnNlX2luaGVyaXRh
bmNlX3N0YWNrKCkpIHsKKyAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG0gb2YgZGljdC5t
ZW1iZXJzKSB7CisgICAgICAgICAgICAgICAgICAgICAgIG1hcC5zZXQobS5uYW1lLCBtLmlkbFR5
cGUpOworICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIHJldHVybiBBcnJheS5mcm9tKG1hcC52YWx1ZXMoKSkuZXZlcnkodGhpcy5pc19qc29uX3R5
cGUsIHRoaXMpOwogICAgICAgICAgICB9CiAKICAgICAgICAgICAgLy8gIGludGVyZmFjZSB0eXBl
cyB0aGF0IGhhdmUgYSB0b0pTT04gb3BlcmF0aW9uIGRlY2xhcmVkIG9uIHRoZW1zZWx2ZXMgb3IK
LSAgICAgICAgICAgLy8gIG9uZSBvZiB0aGVpciBpbmhlcml0ZWQgb3IgY29uc2VxdWVudGlhbCBp
bnRlcmZhY2VzLgorICAgICAgICAgICAvLyAgb25lIG9mIHRoZWlyIGluaGVyaXRlZCBpbnRlcmZh
Y2VzLgogICAgICAgICAgICBpZiAodGhpbmcgaW5zdGFuY2VvZiBJZGxJbnRlcmZhY2UpIHsKICAg
ICAgICAgICAgICAgIHZhciBiYXNlOwogICAgICAgICAgICAgICAgd2hpbGUgKHRoaW5nKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGlmICh0aGluZy5oYXNfdG9fanNvbl9y
ZWd1bGFyX29wZXJhdGlvbigpKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgICAgICAgICAgICAg
dmFyIG1peGlucyA9IHRoaXMuaW1wbGVtZW50c1t0aGluZy5uYW1lXSB8fCB0aGlzLmluY2x1ZGVz
W3RoaW5nLm5hbWVdOworICAgICAgICAgICAgICAgICAgIHZhciBtaXhpbnMgPSB0aGlzLmluY2x1
ZGVzW3RoaW5nLm5hbWVdOwogICAgICAgICAgICAgICAgICAgIGlmIChtaXhpbnMpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgbWl4aW5zID0gbWl4aW5zLm1hcChmdW5jdGlvbihpZCkgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1peGluID0gdGhpcy5tZW1iZXJzW2lkXTsKQEAg
LTc2Niw3ICs2NTAsNyBAQCBmdW5jdGlvbiBleHBvc3VyZV9zZXQob2JqZWN0LCBkZWZhdWx0X3Nl
dCkgewogfQogCiBmdW5jdGlvbiBleHBvc2VkX2luKGdsb2JhbHMpIHsKLSAgICBpZiAoJ2RvY3Vt
ZW50JyBpbiBzZWxmKSB7CisgICAgaWYgKCdXaW5kb3cnIGluIHNlbGYpIHsKICAgICAgICAgcmV0
dXJuIGdsb2JhbHMuaGFzKCJXaW5kb3ciKTsKICAgICB9CiAgICAgaWYgKCdEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZScgaW4gc2VsZiAmJgpAQCAtODEzLDY2ICs2OTcsOSBAQCBJZGxBcnJheS5w
cm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKIHsKICAgICAvKiogRW50cnkgcG9pbnQuICBTZWUg
ZG9jdW1lbnRhdGlvbiBhdCBiZWdpbm5pbmcgb2YgZmlsZS4gKi8KIAotICAgIC8vIEZpcnN0IG1l
cmdlIGluIGFsbCB0aGUgcGFydGlhbCBpbnRlcmZhY2VzIGFuZCBpbXBsZW1lbnRzIHN0YXRlbWVu
dHMgd2UKLSAgICAvLyBlbmNvdW50ZXJlZC4KLSAgICB0aGlzLmNvbGxhcHNlX3BhcnRpYWxzKCk7
Ci0KLSAgICBmb3IgKHZhciBsaHMgaW4gdGhpc1siaW1wbGVtZW50cyJdKQotICAgIHsKLSAgICAg
ICAgdGhpcy5yZWN1cnNpdmVseV9nZXRfaW1wbGVtZW50cyhsaHMpLmZvckVhY2goZnVuY3Rpb24o
cmhzKQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgZXJyU3RyID0gbGhzICsgIiBpbXBsZW1l
bnRzICIgKyByaHMgKyAiLCBidXQgIjsKLSAgICAgICAgICAgIGlmICghKGxocyBpbiB0aGlzLm1l
bWJlcnMpKSB0aHJvdyBlcnJTdHIgKyBsaHMgKyAiIGlzIHVuZGVmaW5lZC4iOwotICAgICAgICAg
ICAgaWYgKCEodGhpcy5tZW1iZXJzW2xoc10gaW5zdGFuY2VvZiBJZGxJbnRlcmZhY2UpKSB0aHJv
dyBlcnJTdHIgKyBsaHMgKyAiIGlzIG5vdCBhbiBpbnRlcmZhY2UuIjsKLSAgICAgICAgICAgIGlm
ICghKHJocyBpbiB0aGlzLm1lbWJlcnMpKSB0aHJvdyBlcnJTdHIgKyByaHMgKyAiIGlzIHVuZGVm
aW5lZC4iOwotICAgICAgICAgICAgaWYgKCEodGhpcy5tZW1iZXJzW3Joc10gaW5zdGFuY2VvZiBJ
ZGxJbnRlcmZhY2UpKSB0aHJvdyBlcnJTdHIgKyByaHMgKyAiIGlzIG5vdCBhbiBpbnRlcmZhY2Uu
IjsKLQotICAgICAgICAgICAgaWYgKHRoaXMubWVtYmVyc1tyaHNdLm1lbWJlcnMubGVuZ3RoKSB7
Ci0gICAgICAgICAgICAgICAgdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgICAg
IHZhciBjbGFzaCA9IHRoaXMubWVtYmVyc1tyaHNdLm1lbWJlcnMuZmluZChmdW5jdGlvbihtZW1i
ZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1lbWJlcnNbbGhzXS5t
ZW1iZXJzLmZpbmQoZnVuY3Rpb24obSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB0aGlzLmFyZV9kdXBsaWNhdGVfbWVtYmVycyhtLCBtZW1iZXIpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICAgICAgICAgICAgICAgICAgfS5iaW5kKHRo
aXMpKTsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5tZW1iZXJzW3Joc10ubWVtYmVycy5mb3JF
YWNoKGZ1bmN0aW9uKG1lbWJlcikgewotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tZW1i
ZXJzW2xoc10ubWVtYmVycy5wdXNoKG5ldyBJZGxJbnRlcmZhY2VNZW1iZXIobWVtYmVyKSk7Ci0g
ICAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydF90cnVlKCFjbGFzaCwgIm1lbWJlciAiICsgKGNsYXNoICYmIGNsYXNoLm5hbWUpICsgIiBp
cyB1bmlxdWUiKTsKLSAgICAgICAgICAgICAgICB9LmJpbmQodGhpcyksIGxocyArICIgaW1wbGVt
ZW50cyAiICsgcmhzICsgIjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUiKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICB9Ci0gICAgdGhpc1siaW1wbGVtZW50cyJd
ID0ge307Ci0KLSAgICBmb3IgKHZhciBsaHMgaW4gdGhpc1siaW5jbHVkZXMiXSkKLSAgICB7Ci0g
ICAgICAgIHRoaXMucmVjdXJzaXZlbHlfZ2V0X2luY2x1ZGVzKGxocykuZm9yRWFjaChmdW5jdGlv
bihyaHMpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBlcnJTdHIgPSBsaHMgKyAiIGluY2x1
ZGVzICIgKyByaHMgKyAiLCBidXQgIjsKLSAgICAgICAgICAgIGlmICghKGxocyBpbiB0aGlzLm1l
bWJlcnMpKSB0aHJvdyBlcnJTdHIgKyBsaHMgKyAiIGlzIHVuZGVmaW5lZC4iOwotICAgICAgICAg
ICAgaWYgKCEodGhpcy5tZW1iZXJzW2xoc10gaW5zdGFuY2VvZiBJZGxJbnRlcmZhY2UpKSB0aHJv
dyBlcnJTdHIgKyBsaHMgKyAiIGlzIG5vdCBhbiBpbnRlcmZhY2UuIjsKLSAgICAgICAgICAgIGlm
ICghKHJocyBpbiB0aGlzLm1lbWJlcnMpKSB0aHJvdyBlcnJTdHIgKyByaHMgKyAiIGlzIHVuZGVm
aW5lZC4iOwotICAgICAgICAgICAgaWYgKCEodGhpcy5tZW1iZXJzW3Joc10gaW5zdGFuY2VvZiBJ
ZGxJbnRlcmZhY2UpKSB0aHJvdyBlcnJTdHIgKyByaHMgKyAiIGlzIG5vdCBhbiBpbnRlcmZhY2Uu
IjsKLQotICAgICAgICAgICAgaWYgKHRoaXMubWVtYmVyc1tyaHNdLm1lbWJlcnMubGVuZ3RoKSB7
Ci0gICAgICAgICAgICAgICAgdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgICAg
IHZhciBjbGFzaCA9IHRoaXMubWVtYmVyc1tyaHNdLm1lbWJlcnMuZmluZChmdW5jdGlvbihtZW1i
ZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1lbWJlcnNbbGhzXS5t
ZW1iZXJzLmZpbmQoZnVuY3Rpb24obSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB0aGlzLmFyZV9kdXBsaWNhdGVfbWVtYmVycyhtLCBtZW1iZXIpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICAgICAgICAgICAgICAgICAgfS5iaW5kKHRo
aXMpKTsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5tZW1iZXJzW3Joc10ubWVtYmVycy5mb3JF
YWNoKGZ1bmN0aW9uKG1lbWJlcikgewotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3Ry
dWUoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tZW1iZXJzW2xoc10ubWVtYmVy
cy5ldmVyeShtID0+ICF0aGlzLmFyZV9kdXBsaWNhdGVfbWVtYmVycyhtLCBtZW1iZXIpKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAibWVtYmVyICIgKyBtZW1iZXIubmFtZSArICIgaXMg
dW5pcXVlIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1lbWJlcnNbbGhzXS5tZW1i
ZXJzLnB1c2gobmV3IElkbEludGVyZmFjZU1lbWJlcihtZW1iZXIpKTsKLSAgICAgICAgICAgICAg
ICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoIWNs
YXNoLCAibWVtYmVyICIgKyAoY2xhc2ggJiYgY2xhc2gubmFtZSkgKyAiIGlzIHVuaXF1ZSIpOwot
ICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSwgbGhzICsgIiBpbmNsdWRlcyAiICsgcmhzICsg
IjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfS5i
aW5kKHRoaXMpKTsKLSAgICB9Ci0gICAgdGhpc1siaW5jbHVkZXMiXSA9IHt9OworICAgIC8vIEZp
cnN0IG1lcmdlIGluIGFsbCBwYXJ0aWFsIGRlZmluaXRpb25zIGFuZCBpbnRlcmZhY2UgbWl4aW5z
LgorICAgIHRoaXMubWVyZ2VfcGFydGlhbHMoKTsKKyAgICB0aGlzLm1lcmdlX21peGlucygpOwog
CiAgICAgLy8gQXNzZXJ0IEIgZGVmaW5lZCBmb3IgQSA6IEIKICAgICBmb3IgKGNvbnN0IG1lbWJl
ciBvZiBPYmplY3QudmFsdWVzKHRoaXMubWVtYmVycykuZmlsdGVyKG0gPT4gbS5iYXNlKSkgewpA
QCAtODg2LDcgKzcxMyw3IEBAIElkbEFycmF5LnByb3RvdHlwZS50ZXN0ID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgaWYgKCFyaHNfaXNfaW50ZXJmYWNlKSB0aHJvdyBuZXcgSWRsSGFybmVzc0Vy
cm9yKGAke2xoc30gaW5oZXJpdHMgJHtyaHN9LCBidXQgJHtyaHN9IGlzIG5vdCBhbiBpbnRlcmZh
Y2UuYCk7CiAgICAgICAgIH0KICAgICAgICAgLy8gQ2hlY2sgZm9yIGNpcmN1bGFyIGRlcGVuZGVu
Y2llcy4KLSAgICAgICAgbWVtYmVyLmdldF9pbmhlcml0YW5jZV9zdGFjaygpOworICAgICAgICBt
ZW1iZXIuZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2soKTsKICAgICB9CiAKICAgICBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzLm1lbWJlcnMpLmZvckVhY2goZnVuY3Rpb24obWVt
YmVyTmFtZSkgewpAQCAtOTIxLDcgKzc0OCw3IEBAIElkbEFycmF5LnByb3RvdHlwZS50ZXN0ID0g
ZnVuY3Rpb24oKQogICAgIH0KIH07CiAKLUlkbEFycmF5LnByb3RvdHlwZS5jb2xsYXBzZV9wYXJ0
aWFscyA9IGZ1bmN0aW9uKCkKK0lkbEFycmF5LnByb3RvdHlwZS5tZXJnZV9wYXJ0aWFscyA9IGZ1
bmN0aW9uKCkKIHsKICAgICBjb25zdCB0ZXN0ZWRQYXJ0aWFscyA9IG5ldyBNYXAoKTsKICAgICB0
aGlzLnBhcnRpYWxzLmZvckVhY2goZnVuY3Rpb24ocGFyc2VkX2lkbCkKQEAgLTEwMTUsNiArODQy
LDM5IEBAIElkbEFycmF5LnByb3RvdHlwZS5jb2xsYXBzZV9wYXJ0aWFscyA9IGZ1bmN0aW9uKCkK
ICAgICB0aGlzLnBhcnRpYWxzID0gW107CiB9CiAKK0lkbEFycmF5LnByb3RvdHlwZS5tZXJnZV9t
aXhpbnMgPSBmdW5jdGlvbigpCit7CisgICAgZm9yIChjb25zdCBwYXJzZWRfaWRsIG9mIHRoaXMu
aW5jbHVkZXMpCisgICAgeworICAgICAgICBjb25zdCBsaHMgPSBwYXJzZWRfaWRsLnRhcmdldDsK
KyAgICAgICAgY29uc3QgcmhzID0gcGFyc2VkX2lkbC5pbmNsdWRlczsKKworICAgICAgICB2YXIg
ZXJyU3RyID0gbGhzICsgIiBpbmNsdWRlcyAiICsgcmhzICsgIiwgYnV0ICI7CisgICAgICAgIGlm
ICghKGxocyBpbiB0aGlzLm1lbWJlcnMpKSB0aHJvdyBlcnJTdHIgKyBsaHMgKyAiIGlzIHVuZGVm
aW5lZC4iOworICAgICAgICBpZiAoISh0aGlzLm1lbWJlcnNbbGhzXSBpbnN0YW5jZW9mIElkbElu
dGVyZmFjZSkpIHRocm93IGVyclN0ciArIGxocyArICIgaXMgbm90IGFuIGludGVyZmFjZS4iOwor
ICAgICAgICBpZiAoIShyaHMgaW4gdGhpcy5tZW1iZXJzKSkgdGhyb3cgZXJyU3RyICsgcmhzICsg
IiBpcyB1bmRlZmluZWQuIjsKKyAgICAgICAgaWYgKCEodGhpcy5tZW1iZXJzW3Joc10gaW5zdGFu
Y2VvZiBJZGxJbnRlcmZhY2UpKSB0aHJvdyBlcnJTdHIgKyByaHMgKyAiIGlzIG5vdCBhbiBpbnRl
cmZhY2UuIjsKKworICAgICAgICBpZiAodGhpcy5tZW1iZXJzW3Joc10ubWVtYmVycy5sZW5ndGgp
IHsKKyAgICAgICAgICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHZhciBj
bGFzaCA9IHRoaXMubWVtYmVyc1tyaHNdLm1lbWJlcnMuZmluZChmdW5jdGlvbihtZW1iZXIpIHsK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWVtYmVyc1tsaHNdLm1lbWJlcnMuZmlu
ZChmdW5jdGlvbihtKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hcmVf
ZHVwbGljYXRlX21lbWJlcnMobSwgbWVtYmVyKTsKKyAgICAgICAgICAgICAgICAgICAgfS5iaW5k
KHRoaXMpKTsKKyAgICAgICAgICAgICAgICB9LmJpbmQodGhpcykpOworICAgICAgICAgICAgICAg
IHRoaXMubWVtYmVyc1tyaHNdLm1lbWJlcnMuZm9yRWFjaChmdW5jdGlvbihtZW1iZXIpIHsKKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoCisgICAgICAgICAgICAgICAgICAgICAgICB0
aGlzLm1lbWJlcnNbbGhzXS5tZW1iZXJzLmV2ZXJ5KG0gPT4gIXRoaXMuYXJlX2R1cGxpY2F0ZV9t
ZW1iZXJzKG0sIG1lbWJlcikpLAorICAgICAgICAgICAgICAgICAgICAgICAgIm1lbWJlciAiICsg
bWVtYmVyLm5hbWUgKyAiIGlzIHVuaXF1ZSIpOworICAgICAgICAgICAgICAgICAgICB0aGlzLm1l
bWJlcnNbbGhzXS5tZW1iZXJzLnB1c2gobmV3IElkbEludGVyZmFjZU1lbWJlcihtZW1iZXIpKTsK
KyAgICAgICAgICAgICAgICB9LmJpbmQodGhpcykpOworICAgICAgICAgICAgICAgIGFzc2VydF90
cnVlKCFjbGFzaCwgIm1lbWJlciAiICsgKGNsYXNoICYmIGNsYXNoLm5hbWUpICsgIiBpcyB1bmlx
dWUiKTsKKyAgICAgICAgICAgIH0uYmluZCh0aGlzKSwgbGhzICsgIiBpbmNsdWRlcyAiICsgcmhz
ICsgIjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB0
aGlzLmluY2x1ZGVzID0gW107Cit9CisKIElkbEFycmF5LnByb3RvdHlwZS5hcmVfZHVwbGljYXRl
X21lbWJlcnMgPSBmdW5jdGlvbihtMSwgbTIpIHsKICAgICBpZiAobTEubmFtZSAhPT0gbTIubmFt
ZSkgewogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMTE2LDcgKzk3Niw3IEBAIElkbEFycmF5
LnByb3RvdHlwZS5hc3NlcnRfdHlwZV9pcyA9IGZ1bmN0aW9uKHZhbHVlLCB0eXBlKQogCiAgICAg
c3dpdGNoKHR5cGUpCiAgICAgewotICAgICAgICBjYXNlICJ2b2lkIjoKKyAgICAgICAgY2FzZSAi
dW5kZWZpbmVkIjoKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHModmFsdWUsIHVuZGVmaW5lZCk7
CiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTExNzIsNyArMTAzMiw3IEBAIElkbEFycmF5LnBy
b3RvdHlwZS5hc3NlcnRfdHlwZV9pcyA9IGZ1bmN0aW9uKHZhbHVlLCB0eXBlKQogCiAgICAgICAg
IGNhc2UgImZsb2F0IjoKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIHZhbHVlLCAi
bnVtYmVyIik7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHZhbHVlLCBmcm91bmQodmFsdWUp
LCAiZmxvYXQgcm91bmRlZCB0byAzMi1iaXQgZmxvYXQgc2hvdWxkIGJlIGl0c2VsZiIpOworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyh2YWx1ZSwgTWF0aC5mcm91bmQodmFsdWUpLCAiZmxvYXQg
cm91bmRlZCB0byAzMi1iaXQgZmxvYXQgc2hvdWxkIGJlIGl0c2VsZiIpOwogICAgICAgICAgICAg
YXNzZXJ0X25vdF9lcXVhbHModmFsdWUsIEluZmluaXR5KTsKICAgICAgICAgICAgIGFzc2VydF9u
b3RfZXF1YWxzKHZhbHVlLCAtSW5maW5pdHkpOwogICAgICAgICAgICAgYXNzZXJ0X25vdF9lcXVh
bHModmFsdWUsIE5hTik7CkBAIC0xMTg4LDcgKzEwNDgsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUu
YXNzZXJ0X3R5cGVfaXMgPSBmdW5jdGlvbih2YWx1ZSwgdHlwZSkKIAogICAgICAgICBjYXNlICJ1
bnJlc3RyaWN0ZWQgZmxvYXQiOgogICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgdmFs
dWUsICJudW1iZXIiKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHModmFsdWUsIGZyb3VuZCh2
YWx1ZSksICJ1bnJlc3RyaWN0ZWQgZmxvYXQgcm91bmRlZCB0byAzMi1iaXQgZmxvYXQgc2hvdWxk
IGJlIGl0c2VsZiIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh2YWx1ZSwgTWF0aC5mcm91
bmQodmFsdWUpLCAidW5yZXN0cmljdGVkIGZsb2F0IHJvdW5kZWQgdG8gMzItYml0IGZsb2F0IHNo
b3VsZCBiZSBpdHNlbGYiKTsKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBjYXNlICJ1
bnJlc3RyaWN0ZWQgZG91YmxlIjoKQEAgLTEyMzYsMTEgKzEwOTYsMTEgQEAgSWRsQXJyYXkucHJv
dG90eXBlLmFzc2VydF90eXBlX2lzID0gZnVuY3Rpb24odmFsdWUsIHR5cGUpCiAgICAgICAgIC8v
IFdlIGRvbid0IHdhbnQgdG8gcnVuIHRoZSBmdWxsCiAgICAgICAgIC8vIElkbEludGVyZmFjZS5w
cm90b3R5cGUudGVzdF9pbnN0YW5jZV9vZiwgYmVjYXVzZSB0aGF0IGNvdWxkIHJlc3VsdAogICAg
ICAgICAvLyBpbiBhbiBpbmZpbml0ZSBsb29wLiAgVE9ETzogVGhpcyBtZWFucyB3ZSBkb24ndCBo
YXZlIHRlc3RzIGZvcgotICAgICAgICAvLyBOb0ludGVyZmFjZU9iamVjdCBpbnRlcmZhY2VzLCBh
bmQgd2UgYWxzbyBjYW4ndCB0ZXN0IG9iamVjdHMgdGhhdAotICAgICAgICAvLyBjb21lIGZyb20g
YW5vdGhlciBzZWxmLgorICAgICAgICAvLyBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCBpbnRlcmZh
Y2VzLCBhbmQgd2UgYWxzbyBjYW4ndCB0ZXN0IG9iamVjdHMKKyAgICAgICAgLy8gdGhhdCBjb21l
IGZyb20gYW5vdGhlciBzZWxmLgogICAgICAgICBhc3NlcnRfaW5fYXJyYXkodHlwZW9mIHZhbHVl
LCBbIm9iamVjdCIsICJmdW5jdGlvbiJdLCAid3JvbmcgdHlwZTogbm90IG9iamVjdCBvciBmdW5j
dGlvbiIpOwogICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QKLSAgICAgICAgJiYg
IXRoaXMubWVtYmVyc1t0eXBlXS5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJOb0ludGVyZmFjZU9i
amVjdCIpCisgICAgICAgICYmICF0aGlzLm1lbWJlcnNbdHlwZV0uaGFzX2V4dGVuZGVkX2F0dHJp
YnV0ZSgiTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QiKQogICAgICAgICAmJiB0eXBlIGluIHNlbGYp
CiAgICAgICAgIHsKICAgICAgICAgICAgIGFzc2VydF90cnVlKHZhbHVlIGluc3RhbmNlb2Ygc2Vs
Zlt0eXBlXSwgImluc3RhbmNlb2YgIiArIHR5cGUpOwpAQCAtMTMxNCw4ICsxMTc0LDggQEAgZnVu
Y3Rpb24gSWRsRGljdGlvbmFyeShvYmopCiAKIElkbERpY3Rpb25hcnkucHJvdG90eXBlID0gT2Jq
ZWN0LmNyZWF0ZShJZGxPYmplY3QucHJvdG90eXBlKTsKIAotSWRsRGljdGlvbmFyeS5wcm90b3R5
cGUuZ2V0X2luaGVyaXRhbmNlX3N0YWNrID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIElkbElu
dGVyZmFjZS5wcm90b3R5cGUuZ2V0X2luaGVyaXRhbmNlX3N0YWNrLmNhbGwodGhpcyk7CitJZGxE
aWN0aW9uYXJ5LnByb3RvdHlwZS5nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjayA9IGZ1bmN0
aW9uKCkgeworICAgIHJldHVybiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmdldF9yZXZlcnNlX2lu
aGVyaXRhbmNlX3N0YWNrLmNhbGwodGhpcyk7CiB9OwogCiAvLy8gSWRsSW50ZXJmYWNlIC8vLwpA
QCAtMTQxNSwxMCArMTI3NSwxMCBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnNob3VsZF9oYXZl
X2ludGVyZmFjZV9vYmplY3QgPSBmdW5jdGlvbigpCiAgICAgLy8gZW52aXJvbm1lbnQgYW5kOgog
ICAgIC8vICogaXMgYSBjYWxsYmFjayBpbnRlcmZhY2UgdGhhdCBoYXMgY29uc3RhbnRzIGRlY2xh
cmVkIG9uIGl0LCBvcgogICAgIC8vICogaXMgYSBub24tY2FsbGJhY2sgaW50ZXJmYWNlIHRoYXQg
aXMgbm90IGRlY2xhcmVkIHdpdGggdGhlCi0gICAgLy8gICBbTm9JbnRlcmZhY2VPYmplY3RdIGV4
dGVuZGVkIGF0dHJpYnV0ZSwKKyAgICAvLyAgIFtMZWdhY3lOb0ludGVyZmFjZU9iamVjdF0gZXh0
ZW5kZWQgYXR0cmlidXRlLAogICAgIC8vIGEgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBNVVNUIGV4
aXN0IG9uIHRoZSBFQ01BU2NyaXB0IGdsb2JhbCBvYmplY3QuCiAKLSAgICByZXR1cm4gdGhpcy5p
c19jYWxsYmFjaygpID8gdGhpcy5oYXNfY29uc3RhbnRzKCkgOiAhdGhpcy5oYXNfZXh0ZW5kZWRf
YXR0cmlidXRlKCJOb0ludGVyZmFjZU9iamVjdCIpOworICAgIHJldHVybiB0aGlzLmlzX2NhbGxi
YWNrKCkgPyB0aGlzLmhhc19jb25zdGFudHMoKSA6ICF0aGlzLmhhc19leHRlbmRlZF9hdHRyaWJ1
dGUoIkxlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Iik7CiB9OwogCiBJZGxJbnRlcmZhY2UucHJvdG90
eXBlLmFzc2VydF9pbnRlcmZhY2Vfb2JqZWN0X2V4aXN0cyA9IGZ1bmN0aW9uKCkKQEAgLTE0Mjks
NyArMTI4OSw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUuYXNzZXJ0X2ludGVyZmFjZV9vYmpl
Y3RfZXhpc3RzID0gZnVuY3Rpb24oKQogCiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmdldF9pbnRl
cmZhY2Vfb2JqZWN0ID0gZnVuY3Rpb24oKSB7CiAgICAgaWYgKCF0aGlzLnNob3VsZF9oYXZlX2lu
dGVyZmFjZV9vYmplY3QoKSkgewotICAgICAgICB2YXIgcmVhc29uID0gdGhpcy5pc19jYWxsYmFj
aygpID8gImxhY2sgb2YgZGVjbGFyZWQgY29uc3RhbnRzIiA6ICJkZWNsYXJlZCBbTm9JbnRlcmZh
Y2VPYmplY3RdIGF0dHJpYnV0ZSI7CisgICAgICAgIHZhciByZWFzb24gPSB0aGlzLmlzX2NhbGxi
YWNrKCkgPyAibGFjayBvZiBkZWNsYXJlZCBjb25zdGFudHMiIDogImRlY2xhcmVkIFtMZWdhY3lO
b0ludGVyZmFjZU9iamVjdF0gYXR0cmlidXRlIjsKICAgICAgICAgdGhyb3cgbmV3IElkbEhhcm5l
c3NFcnJvcih0aGlzLm5hbWUgKyAiIGhhcyBubyBpbnRlcmZhY2Ugb2JqZWN0IGR1ZSB0byAiICsg
cmVhc29uKTsKICAgICB9CiAKQEAgLTE0NTcsMzkgKzEzMTcsMzkgQEAgSWRsSW50ZXJmYWNlLnBy
b3RvdHlwZS5oYXNfZGVmYXVsdF90b19qc29uX3JlZ3VsYXJfb3BlcmF0aW9uID0gZnVuY3Rpb24o
KSB7CiAgICAgfSk7CiB9OwogCi1JZGxJbnRlcmZhY2UucHJvdG90eXBlLmdldF9pbmhlcml0YW5j
ZV9zdGFjayA9IGZ1bmN0aW9uKCkgewotICAgIC8qKgotICAgICAqIFNlZSBodHRwczovL2hleWNh
bS5naXRodWIuaW8vd2ViaWRsLyNjcmVhdGUtYW4taW5oZXJpdGFuY2Utc3RhY2sKLSAgICAgKgot
ICAgICAqIFJldHVybnMgYW4gYXJyYXkgb2YgSWRsSW50ZXJmYWNlIG9iamVjdHMgd2hpY2ggY29u
dGFpbnMgaXRzZWxmCi0gICAgICogYW5kIGFsbCBvZiBpdHMgaW5oZXJpdGVkIGludGVyZmFjZXMu
Ci0gICAgICoKLSAgICAgKiBTbyBnaXZlbjoKLSAgICAgKgotICAgICAqICAgQSA6IEIge307Ci0g
ICAgICogICBCIDogQyB7fTsKLSAgICAgKiAgIEMge307Ci0gICAgICoKLSAgICAgKiB0aGVuIEEu
Z2V0X2luaGVyaXRhbmNlX3N0YWNrKCkgc2hvdWxkIHJldHVybiBbQSwgQiwgQ10sCi0gICAgICog
YW5kIEIuZ2V0X2luaGVyaXRhbmNlX3N0YWNrKCkgc2hvdWxkIHJldHVybiBbQiwgQ10uCi0gICAg
ICoKLSAgICAgKiBOb3RlOiBhcyBkaWN0aW9uYXJ5IGluaGVyaXRhbmNlIGlzIGV4cHJlc3NlZCBp
ZGVudGljYWxseSBieSB0aGUgQVNULAotICAgICAqIHRoaXMgd29ya3MganVzdCBhcyB3ZWxsIGZv
ciBnZXR0aW5nIGEgc3RhY2sgb2YgaW5oZXJpdGVkIGRpY3Rpb25hcmllcy4KLSAgICAgKi8KLQot
ICAgIHZhciBzdGFjayA9IFt0aGlzXTsKLSAgICB2YXIgaWRsX2ludGVyZmFjZSA9IHRoaXM7Cisv
KioKKyAqIEltcGxlbWVudGF0aW9uIG9mIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwv
I2NyZWF0ZS1hbi1pbmhlcml0YW5jZS1zdGFjaworICogd2l0aCB0aGUgb3JkZXIgcmV2ZXJzZWQu
CisgKgorICogVGhlIG9yZGVyIGlzIHJldmVyc2VkIHNvIHRoYXQgdGhlIGJhc2UgY2xhc3MgY29t
ZXMgZmlyc3QgaW4gdGhlIGxpc3QsIGJlY2F1c2UKKyAqIHRoaXMgaXMgd2hhdCBhbGwgY2FsbCBz
aXRlcyBuZWVkLgorICoKKyAqIFNvIGdpdmVuOgorICoKKyAqICAgQSA6IEIge307CisgKiAgIEIg
OiBDIHt9OworICogICBDIHt9OworICoKKyAqIHRoZW4gQS5nZXRfcmV2ZXJzZV9pbmhlcml0YW5j
ZV9zdGFjaygpIHJldHVybnMgW0MsIEIsIEFdLAorICogYW5kIEIuZ2V0X3JldmVyc2VfaW5oZXJp
dGFuY2Vfc3RhY2soKSByZXR1cm5zIFtDLCBCXS4KKyAqCisgKiBOb3RlOiBhcyBkaWN0aW9uYXJ5
IGluaGVyaXRhbmNlIGlzIGV4cHJlc3NlZCBpZGVudGljYWxseSBieSB0aGUgQVNULAorICogdGhp
cyB3b3JrcyBqdXN0IGFzIHdlbGwgZm9yIGdldHRpbmcgYSBzdGFjayBvZiBpbmhlcml0ZWQgZGlj
dGlvbmFyaWVzLgorICovCitJZGxJbnRlcmZhY2UucHJvdG90eXBlLmdldF9yZXZlcnNlX2luaGVy
aXRhbmNlX3N0YWNrID0gZnVuY3Rpb24oKSB7CisgICAgY29uc3Qgc3RhY2sgPSBbdGhpc107Cisg
ICAgbGV0IGlkbF9pbnRlcmZhY2UgPSB0aGlzOwogICAgIHdoaWxlIChpZGxfaW50ZXJmYWNlLmJh
c2UpIHsKLSAgICAgICAgdmFyIGJhc2UgPSB0aGlzLmFycmF5Lm1lbWJlcnNbaWRsX2ludGVyZmFj
ZS5iYXNlXTsKKyAgICAgICAgY29uc3QgYmFzZSA9IHRoaXMuYXJyYXkubWVtYmVyc1tpZGxfaW50
ZXJmYWNlLmJhc2VdOwogICAgICAgICBpZiAoIWJhc2UpIHsKICAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcihpZGxfaW50ZXJmYWNlLnR5cGUgKyAiICIgKyBpZGxfaW50ZXJmYWNlLmJhc2UgKyAi
IG5vdCBmb3VuZCAoaW5oZXJpdGVkIGJ5ICIgKyBpZGxfaW50ZXJmYWNlLm5hbWUgKyAiKSIpOwog
ICAgICAgICB9IGVsc2UgaWYgKHN0YWNrLmluZGV4T2YoYmFzZSkgPiAtMSkgewotICAgICAgICAg
ICAgc3RhY2sucHVzaChiYXNlKTsKLSAgICAgICAgICAgIGxldCBkZXBfY2hhaW4gPSBzdGFjay5t
YXAoaSA9PiBpLm5hbWUpLmpvaW4oJywnKTsKKyAgICAgICAgICAgIHN0YWNrLnVuc2hpZnQoYmFz
ZSk7CisgICAgICAgICAgICBjb25zdCBkZXBfY2hhaW4gPSBzdGFjay5tYXAoaSA9PiBpLm5hbWUp
LmpvaW4oJywnKTsKICAgICAgICAgICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJyb3IoYCR7dGhp
cy5uYW1lfSBoYXMgYSBjaXJjdWxhciBkZXBlbmRlbmN5OiAke2RlcF9jaGFpbn1gKTsKICAgICAg
ICAgfQogICAgICAgICBpZGxfaW50ZXJmYWNlID0gYmFzZTsKLSAgICAgICAgc3RhY2sucHVzaChp
ZGxfaW50ZXJmYWNlKTsKKyAgICAgICAgc3RhY2sudW5zaGlmdChpZGxfaW50ZXJmYWNlKTsKICAg
ICB9CiAgICAgcmV0dXJuIHN0YWNrOwogfTsKQEAgLTE1MDMsNzYgKzEzNjMsMjcgQEAgSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS5nZXRfaW5oZXJpdGFuY2Vfc3RhY2sgPSBmdW5jdGlvbigpIHsKICAq
IGZvciBpbmNsdXNpb24gaW4gdGhlIGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBmb3IgZWFzeQog
ICogY29tcGFyaXNvbiB3aXRoIGFjdHVhbCB2YWx1ZQogICovCi1JZGxJbnRlcmZhY2UucHJvdG90
eXBlLmRlZmF1bHRfdG9fanNvbl9vcGVyYXRpb24gPSBmdW5jdGlvbihjYWxsYmFjaykgewotICAg
IHZhciBtYXAgPSBuZXcgTWFwKCksIGlzRGVmYXVsdCA9IGZhbHNlOwotICAgIHRoaXMudHJhdmVy
c2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMoZnVuY3Rpb24oSSkgewor
SWRsSW50ZXJmYWNlLnByb3RvdHlwZS5kZWZhdWx0X3RvX2pzb25fb3BlcmF0aW9uID0gZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgbWFwID0gbmV3IE1hcCgpCisgICAgbGV0IGlzRGVmYXVsdCA9IGZh
bHNlOworICAgIGZvciAoY29uc3QgSSBvZiB0aGlzLmdldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0
YWNrKCkpIHsKICAgICAgICAgaWYgKEkuaGFzX2RlZmF1bHRfdG9fanNvbl9yZWd1bGFyX29wZXJh
dGlvbigpKSB7CiAgICAgICAgICAgICBpc0RlZmF1bHQgPSB0cnVlOwotICAgICAgICAgICAgSS5t
ZW1iZXJzLmZvckVhY2goZnVuY3Rpb24obSkgeworICAgICAgICAgICAgZm9yIChjb25zdCBtIG9m
IEkubWVtYmVycykgewogICAgICAgICAgICAgICAgIGlmIChtLnNwZWNpYWwgIT09ICJzdGF0aWMi
ICYmIG0udHlwZSA9PSAiYXR0cmlidXRlIiAmJiBJLmFycmF5LmlzX2pzb25fdHlwZShtLmlkbFR5
cGUpKSB7CiAgICAgICAgICAgICAgICAgICAgIG1hcC5zZXQobS5uYW1lLCBtLmlkbFR5cGUpOwog
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQogICAgICAg
ICB9IGVsc2UgaWYgKEkuaGFzX3RvX2pzb25fcmVndWxhcl9vcGVyYXRpb24oKSkgewogICAgICAg
ICAgICAgaXNEZWZhdWx0ID0gZmFsc2U7CiAgICAgICAgIH0KLSAgICB9KTsKLSAgICByZXR1cm4g
aXNEZWZhdWx0ID8gbWFwIDogbnVsbDsKLX07Ci0KLS8qKgotICogVHJhdmVyc2VzIGluaGVyaXRl
ZCBpbnRlcmZhY2VzIGZyb20gdGhlIHRvcCBkb3duCi0gKiBhbmQgaW1lcGxlbWVudGVkIGludGVy
ZmFjZXMgaW5zaWRlIG91dC4KLSAqIEludm9rZXMgfGNhbGxiYWNrfCBvbiBlYWNoIGludGVyZmFj
ZS4KLSAqCi0gKiBUaGlzIGlzIGFuIGFic3RyYWN0IGltcGxlbWVudGF0aW9uIG9mIHRoZSB0cmF2
ZXJzYWwKLSAqIGFsZ29yaXRobSBzcGVjaWZpZWQgaW46Ci0gKiBodHRwczovL2hleWNhbS5naXRo
dWIuaW8vd2ViaWRsLyNjb2xsZWN0LWF0dHJpYnV0ZS12YWx1ZXMKLSAqIEdpdmVuIHRoZSBmb2xs
b3dpbmcgaW5oZXJpdGFuY2UgdHJlZToKLSAqCi0gKiAgICAgICAgICAgRgotICogICAgICAgICAg
IHwKLSAqICAgICAgIEMgICBFIC0gSQotICogICAgICAgfCAgIHwKLSAqICAgICAgIEIgLSBECi0g
KiAgICAgICB8Ci0gKiAgIEcgLSBBIC0gSCAtIEoKLSAqCi0gKiBJbnZva2luZyB0cmF2ZXJzZV9p
bmhlcml0ZWRfYW5kX2NvbnNlcXVlbnRpYWxfaW50ZXJmYWNlcygpIG9uIEEKLSAqIHdvdWxkIHRy
YXZlcnNlIHRoZSB0cmVlIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6Ci0gKiBDIC0+IEIgLT4gRiAt
PiBFIC0+IEkgLT4gRCAtPiBBIC0+IEcgLT4gSCAtPiBKCi0gKi8KLQotSWRsSW50ZXJmYWNlLnBy
b3RvdHlwZS50cmF2ZXJzZV9pbmhlcml0ZWRfYW5kX2NvbnNlcXVlbnRpYWxfaW50ZXJmYWNlcyA9
IGZ1bmN0aW9uKGNhbGxiYWNrKSB7Ci0gICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPSAiZnVuY3Rp
b24iKSB7Ci0gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTsKICAgICB9Ci0gICAgdmFyIHN0
YWNrID0gdGhpcy5nZXRfaW5oZXJpdGFuY2Vfc3RhY2soKTsKLSAgICBfdHJhdmVyc2VfaW5oZXJp
dGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMoc3RhY2ssIGNhbGxiYWNrKTsKKyAgICBy
ZXR1cm4gaXNEZWZhdWx0ID8gbWFwIDogbnVsbDsKIH07CiAKLWZ1bmN0aW9uIF90cmF2ZXJzZV9p
bmhlcml0ZWRfYW5kX2NvbnNlcXVlbnRpYWxfaW50ZXJmYWNlcyhzdGFjaywgY2FsbGJhY2spIHsK
LSAgICB2YXIgSSA9IHN0YWNrLnBvcCgpOwotICAgIGNhbGxiYWNrKEkpOwotICAgIHZhciBtaXhp
bnMgPSBJLmFycmF5WyJpbXBsZW1lbnRzIl1bSS5uYW1lXSB8fCBJLmFycmF5WyJpbmNsdWRlcyJd
W0kubmFtZV07Ci0gICAgaWYgKG1peGlucykgewotICAgICAgICBtaXhpbnMuZm9yRWFjaChmdW5j
dGlvbihpZCkgewotICAgICAgICAgICAgdmFyIG1peGluID0gSS5hcnJheS5tZW1iZXJzW2lkXTsK
LSAgICAgICAgICAgIGlmICghbWl4aW4pIHsKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIkludGVyZmFjZSAiICsgaWQgKyAiIG5vdCBmb3VuZCAoaW1wbGVtZW50ZWQgYnkgIiArIEku
bmFtZSArICIpIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB2YXIgaW50ZXJmYWNlcyA9
IG1peGluLmdldF9pbmhlcml0YW5jZV9zdGFjaygpOwotICAgICAgICAgICAgX3RyYXZlcnNlX2lu
aGVyaXRlZF9hbmRfY29uc2VxdWVudGlhbF9pbnRlcmZhY2VzKGludGVyZmFjZXMsIGNhbGxiYWNr
KTsKLSAgICAgICAgfSk7Ci0gICAgfQotICAgIGlmIChzdGFjay5sZW5ndGggPiAwKSB7Ci0gICAg
ICAgIF90cmF2ZXJzZV9pbmhlcml0ZWRfYW5kX2NvbnNlcXVlbnRpYWxfaW50ZXJmYWNlcyhzdGFj
aywgY2FsbGJhY2spOwotICAgIH0KLX0KLQogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0ID0g
ZnVuY3Rpb24oKQogewotICAgIGlmICh0aGlzLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIk5vSW50
ZXJmYWNlT2JqZWN0IikgfHwgdGhpcy5pc19taXhpbigpKQorICAgIGlmICh0aGlzLmhhc19leHRl
bmRlZF9hdHRyaWJ1dGUoIkxlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0IikgfHwgdGhpcy5pc19taXhp
bigpKQogICAgIHsKICAgICAgICAgLy8gTm8gdGVzdHMgdG8gZG8gd2l0aG91dCBhbiBpbnN0YW5j
ZS4gIFRPRE86IFdlIHNob3VsZCBzdGlsbCBiZSBhYmxlCiAgICAgICAgIC8vIHRvIHJ1biB0ZXN0
cyBvbiB0aGUgcHJvdG90eXBlIG9iamVjdCwgaWYgd2Ugb2J0YWluIG9uZSB0aHJvdWdoIHNvbWUK
QEAgLTE1ODAsMTAgKzEzOTEsMTYgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0ID0gZnVu
Y3Rpb24oKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCF0aGlzLmV4cG9zZWQp
IHsKLSAgICAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICBhc3NlcnRfZmFsc2UodGhpcy5uYW1lIGluIHNlbGYpOwotICAgICAgICB9
LmJpbmQodGhpcyksIHRoaXMubmFtZSArICIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCIpOworICAgIC8vIElmIHRoZSBpbnRlcmZhY2Ugb2Jq
ZWN0IGlzIG5vdCBleHBvc2VkLCBvbmx5IHRlc3QgdGhhdC4gTWVtYmVycyBjYW4ndCBiZQorICAg
IC8vIHRlc3RlZCBlaXRoZXIsIGJ1dCBvYmplY3RzIGNvdWxkIHN0aWxsIGJlIHRlc3RlZCBpbiB8
dGVzdF9vYmplY3R8LgorICAgIGlmICghdGhpcy5leHBvc2VkKQorICAgIHsKKyAgICAgICAgaWYg
KCF0aGlzLnVudGVzdGVkKQorICAgICAgICB7CisgICAgICAgICAgICBzdWJzZXRUZXN0QnlLZXko
dGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZmFs
c2UodGhpcy5uYW1lIGluIHNlbGYpOworICAgICAgICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5h
bWUgKyAiIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QiKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xNjAzLDIz
ICsxNDIwLDE2IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKICAg
ICB0aGlzLnRlc3RfbWVtYmVycygpOwogfTsKIAotLy8gVGhpcyBzdXBwb3J0cyBib3RoIENvbnN0
cnVjdG9yIGV4dGVuZGVkIGF0dHJpYnV0ZXMgYW5kIGNvbnN0cnVjdG9yCi0vLyBvcGVyYXRpb25z
IHVudGlsIGFsbCBpZGwgZnJhZ21lbnRzIGhhdmUgYmVlbiB1cGRhdGVkLgogSWRsSW50ZXJmYWNl
LnByb3RvdHlwZS5jb25zdHJ1Y3RvcnMgPSBmdW5jdGlvbigpCiB7Ci0gICAgdmFyIGV4dGVuZGVk
QXR0cmlidXRlcyA9IHRoaXMuZXh0QXR0cnMKLSAgICAgICAgLmZpbHRlcihmdW5jdGlvbihhdHRy
KSB7IHJldHVybiBhdHRyLm5hbWUgPT0gIkNvbnN0cnVjdG9yIjsgfSk7Ci0gICAgdmFyIG9wZXJh
dGlvbnMgPSB0aGlzLm1lbWJlcnMKKyAgICByZXR1cm4gdGhpcy5tZW1iZXJzCiAgICAgICAgIC5m
aWx0ZXIoZnVuY3Rpb24obSkgeyByZXR1cm4gbS50eXBlID09ICJjb25zdHJ1Y3RvciI7IH0pOwot
ICAgIHJldHVybiBleHRlbmRlZEF0dHJpYnV0ZXMuY29uY2F0KG9wZXJhdGlvbnMpOwogfQogCiBJ
ZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9uKCkKIHsKICAgICBzdWJz
ZXRUZXN0QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCBmdW5jdGlvbigpCiAgICAgewotICAgICAgICAv
LyBUaGlzIGZ1bmN0aW9uIHRlc3RzIFdlYklETCBhcyBvZiAyMDE1LTAxLTEzLgotCiAgICAgICAg
IGlmICghdGhpcy5zaG91bGRfaGF2ZV9pbnRlcmZhY2Vfb2JqZWN0KCkpIHsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQpAQCAtMTY2MSw4ICsxNDcxLDYgQEAgSWRsSW50ZXJmYWNlLnBy
b3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAKICAgICAgICAgLy8gIiogSXRzIFtbQ29u
c3RydWN0XV0gaW50ZXJuYWwgcHJvcGVydHkgaXMgc2V0IGFzIGRlc2NyaWJlZCBpbgogICAgICAg
ICAvLyAgICBFQ01BLTI2MiBzZWN0aW9uIDE5LjIuMi4zLiIKLSAgICAgICAgLy8gVGVzdGVkIGJl
bG93IGlmIG5vIGNvbnN0cnVjdG9yIGlzIGRlZmluZWQuICBUT0RPOiB0ZXN0IGNvbnN0cnVjdG9y
cwotICAgICAgICAvLyBpZiBkZWZpbmVkLgogCiAgICAgICAgIC8vICIqIEl0cyBAQGhhc0luc3Rh
bmNlIHByb3BlcnR5IGlzIHNldCBhcyBkZXNjcmliZWQgaW4gRUNNQS0yNjIKICAgICAgICAgLy8g
ICAgc2VjdGlvbiAxOS4yLjMuOCwgdW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQuIgpAQCAtMTY4
MSw3ICsxNDg5LDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICAvLyAgICB2YWx1ZSBvZiBbW1Byb3RvdHlwZV1dIGlzIHRoZSBpbnRl
cmZhY2Ugb2JqZWN0IGZvciB0aGF0IG90aGVyCiAgICAgICAgICAgICAvLyAgICBpbnRlcmZhY2Uu
IgogICAgICAgICAgICAgdmFyIGluaGVyaXRlZF9pbnRlcmZhY2UgPSB0aGlzLmFycmF5Lm1lbWJl
cnNbdGhpcy5iYXNlXTsKLSAgICAgICAgICAgIGlmICghaW5oZXJpdGVkX2ludGVyZmFjZS5oYXNf
ZXh0ZW5kZWRfYXR0cmlidXRlKCJOb0ludGVyZmFjZU9iamVjdCIpKSB7CisgICAgICAgICAgICBp
ZiAoIWluaGVyaXRlZF9pbnRlcmZhY2UuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiTGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3QiKSkgewogICAgICAgICAgICAgICAgIGluaGVyaXRlZF9pbnRlcmZhY2Uu
YXNzZXJ0X2ludGVyZmFjZV9vYmplY3RfZXhpc3RzKCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhwcm90b3R5cGUsIGluaGVyaXRlZF9pbnRlcmZhY2UuZ2V0X2ludGVyZmFjZV9vYmpl
Y3QoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm90b3R5cGUgb2YgJyArIHRo
aXMubmFtZSArICcgaXMgbm90ICcgKwpAQCAtMTY5NSwxMiArMTUwMywxMiBAQCBJZGxJbnRlcmZh
Y2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInByb3RvdHlwZSBvZiBzZWxmJ3MgcHJvcGVydHkgIiArIGZvcm1hdF92YWx1ZSh0aGlz
Lm5hbWUpICsgIiBpcyBub3QgRnVuY3Rpb24ucHJvdG90eXBlIik7CiAgICAgICAgIH0KIAorICAg
ICAgICAvLyBBbHdheXMgdGVzdCBmb3IgW1tDb25zdHJ1Y3RdXToKKyAgICAgICAgLy8gaHR0cHM6
Ly9naXRodWIuY29tL2hleWNhbS93ZWJpZGwvaXNzdWVzLzY5OAorICAgICAgICBhc3NlcnRfdHJ1
ZShpc0NvbnN0cnVjdG9yKHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSksICJpbnRlcmZhY2Ug
b2JqZWN0IG11c3QgcGFzcyBJc0NvbnN0cnVjdG9yIGNoZWNrIik7CisKICAgICAgICAgaWYgKCF0
aGlzLmNvbnN0cnVjdG9ycygpLmxlbmd0aCkgewotICAgICAgICAgICAgLy8gIlRoZSBpbnRlcm5h
bCBbW0NhbGxdXSBtZXRob2Qgb2YgdGhlIGludGVyZmFjZSBvYmplY3QgYmVoYXZlcyBhcwotICAg
ICAgICAgICAgLy8gZm9sbG93cyAuIC4gLgotICAgICAgICAgICAgLy8KLSAgICAgICAgICAgIC8v
ICJJZiBJIHdhcyBub3QgZGVjbGFyZWQgd2l0aCBhIFtDb25zdHJ1Y3Rvcl0gZXh0ZW5kZWQgYXR0
cmlidXRlLAotICAgICAgICAgICAgLy8gdGhlbiB0aHJvdyBhIFR5cGVFcnJvci4iCisgICAgICAg
ICAgICAvLyAiSWYgSSB3YXMgbm90IGRlY2xhcmVkIHdpdGggYSBjb25zdHJ1Y3RvciBvcGVyYXRp
b24sIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IuIgogICAgICAgICAgICAgdmFyIGludGVyZmFjZV9v
YmplY3QgPSB0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCk7CiAgICAgICAgICAgICBhc3NlcnRf
dGhyb3dzX2pzKGdsb2JhbE9mKGludGVyZmFjZV9vYmplY3QpLlR5cGVFcnJvciwgZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgICAgICAgaW50ZXJmYWNlX29iamVjdCgpOwpAQCAtMTc3Myw3ICsxNTgx
LDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICBpZiAoIXRoaXMuZXhwb3N1cmVTZXQuaGFzKCJXaW5kb3ciKSkgewogICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJyb3IoIkludmFsaWQgSURMOiBMZWdhY3lXaW5k
b3dBbGlhcyBleHRlbmRlZCBhdHRyaWJ1dGUgb24gIiArIHRoaXMubmFtZSArICIgd2hpY2ggaXMg
bm90IGV4cG9zZWQgaW4gV2luZG93Iik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAvLyBU
T0RPOiB3aGVuIHRlc3Rpbmcgb2YgW05vSW50ZXJmYWNlT2JqZWN0XSBpbnRlcmZhY2VzIGlzIHN1
cHBvcnRlZCwKKyAgICAgICAgICAgIC8vIFRPRE86IHdoZW4gdGVzdGluZyBvZiBbTGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3RdIGludGVyZmFjZXMgaXMgc3VwcG9ydGVkLAogICAgICAgICAgICAgLy8g
Y2hlY2sgdGhhdCBpdCdzIG5vdCBzcGVjaWZpZWQgdG9nZXRoZXIgd2l0aCBMZWdhY3lXaW5kb3dB
bGlhcy4KIAogICAgICAgICAgICAgLy8gVE9ETzogbWF5YmUgY2hlY2sgdGhhdCBbTGVnYWN5V2lu
ZG93QWxpYXNdwqBpcyBub3Qgc3BlY2lmaWVkIG9uIGEgcGFydGlhbCBpbnRlcmZhY2UuCkBAIC0x
OTYzLDcgKzE3NzEsNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3Rfc2VsZiA9IGZ1bmN0
aW9uKCkKIAogICAgICAgICAvLyBOZXh0LCB0ZXN0IHRoYXQgdGhlIFtbUHJvdG90eXBlXV0gb2Yg
dGhlIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0CiAgICAgICAgIC8vIGlzIGNvcnJlY3QuIChU
aGlzIGlzIG1hZGUgc29tZXdoYXQgZGlmZmljdWx0IGJ5IHRoZSBleGlzdGVuY2Ugb2YKLSAgICAg
ICAgLy8gW05vSW50ZXJmYWNlT2JqZWN0XS4pCisgICAgICAgIC8vIFtMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdF0uKQogICAgICAgICAvLyBUT0RPOiBBcnllaCB0aGlua3MgdGhlcmUncyBhdCBsZWFz
dCBvdGhlciBwbGFjZSBpbiB0aGlzIGZpbGUgd2hlcmUKICAgICAgICAgLy8gICAgICAgd2UgdHJ5
IHRvIGZpZ3VyZSBvdXQgaWYgYW4gaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgaXMKICAgICAg
ICAgLy8gICAgICAgY29ycmVjdC4gQ29uc29saWRhdGUgdGhhdCBjb2RlLgpAQCAtMTk5Niw3ICsx
ODA0LDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICBpZiAodGhpcy5iYXNlKSB7CiAgICAgICAgICAgICAgICAgaW5oZXJpdF9pbnRl
cmZhY2UgPSB0aGlzLmJhc2U7CiAgICAgICAgICAgICAgICAgdmFyIHBhcmVudCA9IHRoaXMuYXJy
YXkubWVtYmVyc1tpbmhlcml0X2ludGVyZmFjZV07Ci0gICAgICAgICAgICAgICAgaWYgKCFwYXJl
bnQuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiTm9JbnRlcmZhY2VPYmplY3QiKSkgeworICAgICAg
ICAgICAgICAgIGlmICghcGFyZW50Lmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIkxlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0IikpIHsKICAgICAgICAgICAgICAgICAgICAgcGFyZW50LmFzc2VydF9pbnRl
cmZhY2Vfb2JqZWN0X2V4aXN0cygpOwogICAgICAgICAgICAgICAgICAgICBpbmhlcml0X2ludGVy
ZmFjZV9pbnRlcmZhY2Vfb2JqZWN0ID0gcGFyZW50LmdldF9pbnRlcmZhY2Vfb2JqZWN0KCk7CiAg
ICAgICAgICAgICAgICAgfQpAQCAtMjA3Miw4ICsxODgwLDggQEAgSWRsSW50ZXJmYWNlLnByb3Rv
dHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHko
dGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpLCAicHJvdG90eXBlIiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnaW50ZXJmYWNlICInICsgdGhpcy5uYW1lICsgJyIgZG9lcyBub3QgaGF2
ZSBvd24gcHJvcGVydHkgInByb3RvdHlwZSInKTsKIAotICAgICAgICAvLyAiSWYgdGhlIFtOb0lu
dGVyZmFjZU9iamVjdF0gZXh0ZW5kZWQgYXR0cmlidXRlIHdhcyBub3Qgc3BlY2lmaWVkIG9uCi0g
ICAgICAgIC8vIHRoZSBpbnRlcmZhY2UsIHRoZW4gdGhlIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0IG11c3QgYWxzbyBoYXZlIGEKKyAgICAgICAgLy8gIklmIHRoZSBbTGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3RdIGV4dGVuZGVkIGF0dHJpYnV0ZSB3YXMgbm90IHNwZWNpZmllZAorICAgICAgICAv
LyBvbiB0aGUgaW50ZXJmYWNlLCB0aGVuIHRoZSBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBt
dXN0IGFsc28gaGF2ZSBhCiAgICAgICAgIC8vIHByb3BlcnR5IG5hbWVkIOKAnGNvbnN0cnVjdG9y
4oCdIHdpdGggYXR0cmlidXRlcyB7IFtbV3JpdGFibGVdXTogdHJ1ZSwKICAgICAgICAgLy8gW1tF
bnVtZXJhYmxlXV06IGZhbHNlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlIH0gd2hvc2UgdmFsdWUg
aXMgYQogICAgICAgICAvLyByZWZlcmVuY2UgdG8gdGhlIGludGVyZmFjZSBvYmplY3QgZm9yIHRo
ZSBpbnRlcmZhY2UuIgpAQCAtMjgxOCw5ICsyNjI2LDYgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlw
ZS50ZXN0X29iamVjdCA9IGZ1bmN0aW9uKGRlc2MpCiAgICAgewogICAgICAgICAvLyBSZXN1bHQg
b2YgW1tJc0hUTUxEREFdXSBzbG90CiAgICAgICAgIGV4cGVjdGVkX3R5cGVvZiA9ICJ1bmRlZmlu
ZWQiOwotICAgIH0gZWxzZSBpZiAodGhpcy5tZW1iZXJzLnNvbWUoZnVuY3Rpb24obWVtYmVyKSB7
IHJldHVybiBtZW1iZXIubGVnYWN5Y2FsbGVyOyB9KSkKLSAgICB7Ci0gICAgICAgIGV4cGVjdGVk
X3R5cGVvZiA9ICJmdW5jdGlvbiI7CiAgICAgfQogICAgIGVsc2UKICAgICB7CkBAIC0zMDgzLDEx
ICsyODg4LDYgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5kb19pbnRlcmZhY2VfYXR0cmlidXRl
X2Fzc2VydHMgPSBmdW5jdGlvbihvYmosIG1lbWJlciwgYV8KIAogICAgIHZhciBwZW5kaW5nUHJv
bWlzZXMgPSBbXTsKIAotICAgIC8vICJGb3IgZWFjaCBleHBvc2VkIGF0dHJpYnV0ZSBvZiB0aGUg
aW50ZXJmYWNlLCB3aGV0aGVyIGl0IHdhcyBkZWNsYXJlZCBvbgotICAgIC8vIHRoZSBpbnRlcmZh
Y2UgaXRzZWxmIG9yIG9uZSBvZiBpdHMgY29uc2VxdWVudGlhbCBpbnRlcmZhY2VzLCB0aGVyZSBN
VVNUCi0gICAgLy8gZXhpc3QgYSBjb3JyZXNwb25kaW5nIHByb3BlcnR5LiBUaGUgY2hhcmFjdGVy
aXN0aWNzIG9mIHRoaXMgcHJvcGVydHkgYXJlCi0gICAgLy8gYXMgZm9sbG93czoiCi0KICAgICAv
LyAiVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGlzIHRoZSBpZGVudGlmaWVyIG9mIHRoZSBhdHRy
aWJ1dGUuIgogICAgIGFzc2VydF9vd25fcHJvcGVydHkob2JqLCBtZW1iZXIubmFtZSk7CiAKQEAg
LTM1NDMsOCArMzM0Myw2IEBAIElkbE5hbWVzcGFjZS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9u
ICgpCiBmdW5jdGlvbiBpZGxfdGVzdChzcmNzLCBkZXBzLCBpZGxfc2V0dXBfZnVuYykgewogICAg
IHJldHVybiBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKHQpIHsKICAgICAgICAgdmFyIGlkbF9hcnJh
eSA9IG5ldyBJZGxBcnJheSgpOwotICAgICAgICBzcmNzID0gKHNyY3MgaW5zdGFuY2VvZiBBcnJh
eSkgPyBzcmNzIDogW3NyY3NdIHx8IFtdOwotICAgICAgICBkZXBzID0gKGRlcHMgaW5zdGFuY2Vv
ZiBBcnJheSkgPyBkZXBzIDogW2RlcHNdIHx8IFtdOwogICAgICAgICB2YXIgc2V0dXBfZXJyb3Ig
PSBudWxsOwogICAgICAgICBjb25zdCB2YWxpZGF0aW9uSWdub3JlZCA9IFsKICAgICAgICAgICAg
ICJjb25zdHJ1Y3Rvci1tZW1iZXIiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC1vbmx5LWFwaS5qcyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtb25s
eS1hcGkuanMKaW5kZXggZWY2NmUwZTczM2Y5YzY4MDA0MTI5ZDI0YjNjOWFkMTJiOWFhMDcwOC4u
YTY2ZWI0NGVkZTdjMTVhMzdmYjFhM2M1ZGQ1ZDJhYmMxNzE3N2M4ZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC1v
bmx5LWFwaS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc291cmNlcy90ZXN0LW9ubHktYXBpLmpzCkBAIC0yOSw3MiArMjksMyBAQCBmdW5jdGlv
biBsb2FkU2NyaXB0KHBhdGgpIHsKICAgICByZXR1cm4gcDsKICAgfQogfQotCi0vKioKLSAqIEEg
aGVscGVyIGZvciBDaHJvbWl1bS1iYXNlZCBicm93c2VycyB0byBsb2FkIE1vam8gSlMgYmluZGlu
Z3MKLSAqCi0gKiBUaGlzIGlzIGFuIGFzeW5jIGZ1bmN0aW9uIHRoYXQgd29ya3MgaW4gYm90aCB3
b3JrZXJzIGFuZCB3aW5kb3dzLiBJdCBmaXJzdAotICogbG9hZHMgbW9qb19iaW5kaW5ncy5qcywg
ZGlzYWJsZXMgYXV0b21hdGljIGRlcGVuZGVuY3kgbG9hZGluZywgYW5kIGxvYWRzIGFsbAotICog
cmVzb3VyY2VzIHNlcXVlbnRpYWxseS4gVGhlIHByb21pc2UgcmVzb2x2ZXMgaWYgZXZlcnl0aGlu
ZyBsb2FkcwotICogc3VjY2Vzc2Z1bGx5LCBvciByZWplY3RzIGlmIGFueSBleGNlcHRpb24gaXMg
cmFpc2VkLiBJZiB0ZXN0aGFybmVzcy5qcyBpcwotICogdXNlZCwgYW4gdW5jYXVnaHQgZXhjZXB0
aW9uIHdpbGwgdGVybWluYXRlIHRoZSB0ZXN0IHdpdGggYSBoYXJuZXNzIGVycm9yCi0gKiAodW5s
ZXNzIGBhbGxvd191bmNhdWdodF9leGNlcHRpb25gIGlzIHRydWUpLCB3aGljaCBpcyB1c3VhbGx5
IHRoZSBkZXNpcmVkCi0gKiBiZWhhdmlvdXIuCi0gKgotICogVGhpcyBmdW5jdGlvbiBhbHNvIHdv
cmtzIHdpdGggQmxpbmsgd2ViIHRlc3RzIGxvYWRlZCBmcm9tIGZpbGU6Ly8sIGluIHdoaWNoCi0g
KiBjYXNlIGZpbGU6Ly8gd2lsbCBiZSBwcmVwZW5kZWQgdG8gYWxsICcvZ2VuLy4uLicgVVJMcy4K
LSAqCi0gKiBPbmx5IGNhbGwgdGhpcyBmdW5jdGlvbiBpZiBpc0Nocm9taXVtQmFzZWQgPT09IHRy
dWUuCi0gKgotICogQHBhcmFtIHtBcnJheS48c3RyaW5nPn0gcmVzb3VyY2VzIC0gQSBsaXN0IG9m
IHNjcmlwdHMgdG8gbG9hZDogTW9qbyBKUwotICogICBiaW5kaW5ncyBzaG91bGQgYmUgb2YgdGhl
IGZvcm0gJy9nZW4vLi4vKi5tb2pvbS5qcycgb3IKLSAqICAgJy9nZW4vLi4vKi5tb2pvbS1saXRl
LmpzJyAocmVxdWlyZXMgYGxpdGVgIHRvIGJlIHRydWUpOyB0aGUgb3JkZXIgZG9lcyBub3QKLSAq
ICAgbWF0dGVyLiBEbyBub3QgaW5jbHVkZSAnbW9qb19iaW5kaW5ncy5qcycgb3IgJ21vam9fYmlu
ZGluZ3NfbGl0ZS5qcycuCi0gKiBAcGFyYW0ge2Jvb2xlYW49fSBsaXRlIC0gV2hldGhlciB0aGUg
bGl0ZSBiaW5kaW5ncyAoKi5tb2pvbS1saXRlLmpzKSBhcmUgdXNlZAotICogICAoZGVmYXVsdCBp
cyBmYWxzZSkuCi0gKiBAcmV0dXJucyB7UHJvbWlzZX0KLSAqLwotYXN5bmMgZnVuY3Rpb24gbG9h
ZE1vam9SZXNvdXJjZXMocmVzb3VyY2VzLCBsaXRlID0gZmFsc2UpIHsKLSAgaWYgKCFpc0Nocm9t
aXVtQmFzZWQpIHsKLSAgICB0aHJvdyBuZXcgRXJyb3IoJ01vam9KUyBub3QgZW5hYmxlZDsgc3Rh
cnQgQ2hyb21lIHdpdGggLS1lbmFibGUtYmxpbmstZmVhdHVyZXM9TW9qb0pTLE1vam9KU1Rlc3Qn
KTsKLSAgfQotICBpZiAocmVzb3VyY2VzLmxlbmd0aCA9PSAwKSB7Ci0gICAgcmV0dXJuOwotICB9
Ci0KLSAgbGV0IGdlblByZWZpeCA9ICcnOwotICBpZiAoc2VsZi5sb2NhdGlvbi5wYXRobmFtZS5p
bmNsdWRlcygnL3dlYl90ZXN0cy8nKSkgewotICAgIC8vIEJsaW5rIGludGVybmFsIHdlYiB0ZXN0
cwotICAgIGdlblByZWZpeCA9ICdmaWxlOi8vJzsKLSAgfQotCi0gIGZvciAoY29uc3QgcGF0aCBv
ZiByZXNvdXJjZXMpIHsKLSAgICAvLyBXZSB3YW50IHRvIGxvYWQgbW9qb19iaW5kaW5ncy5qcyBz
ZXBhcmF0ZWx5IHRvIHNldCBtb2pvLmNvbmZpZy4KLSAgICBpZiAocGF0aC5lbmRzV2l0aCgnL21v
am9fYmluZGluZ3MuanMnKSkgewotICAgICAgdGhyb3cgbmV3IEVycm9yKCdEbyBub3QgbG9hZCBt
b2pvX2JpbmRpbmdzLmpzIGV4cGxpY2l0bHkuJyk7Ci0gICAgfQotICAgIGlmIChwYXRoLmVuZHNX
aXRoKCcvbW9qb19iaW5kaW5nc19saXRlLmpzJykpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcign
RG8gbm90IGxvYWQgbW9qb19iaW5kaW5nc19saXRlLmpzIGV4cGxpY2l0bHkuJyk7Ci0gICAgfQot
ICAgIGlmIChsaXRlKSB7Ci0gICAgICBpZiAoISAvXlwvZ2VuXC8uKlwubW9qb20tbGl0ZVwuanMk
Ly50ZXN0KHBhdGgpKSB7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5yZWNvZ25pemVkIHJl
c291cmNlIHBhdGg6ICR7cGF0aH1gKTsKLSAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgaWYg
KCEgL15cL2dlblwvLipcLm1vam9tXC5qcyQvLnRlc3QocGF0aCkpIHsKLSAgICAgICAgdGhyb3cg
bmV3IEVycm9yKGBVbnJlY29nbml6ZWQgcmVzb3VyY2UgcGF0aDogJHtwYXRofWApOwotICAgICAg
fQotICAgIH0KLSAgfQotCi0gIGlmIChsaXRlKSB7Ci0gICAgYXdhaXQgbG9hZFNjcmlwdChnZW5Q
cmVmaXggKyAnL2dlbi9sYXlvdXRfdGVzdF9kYXRhL21vam8vcHVibGljL2pzL21vam9fYmluZGlu
Z3NfbGl0ZS5qcycpOwotICB9IGVsc2UgewotICAgIGF3YWl0IGxvYWRTY3JpcHQoZ2VuUHJlZml4
ICsgJy9nZW4vbGF5b3V0X3Rlc3RfZGF0YS9tb2pvL3B1YmxpYy9qcy9tb2pvX2JpbmRpbmdzLmpz
Jyk7Ci0gICAgbW9qby5jb25maWcuYXV0b0xvYWRNb2pvbURlcHMgPSBmYWxzZTsKLSAgfQotCi0g
IGZvciAoY29uc3QgcGF0aCBvZiByZXNvdXJjZXMpIHsKLSAgICBhd2FpdCBsb2FkU2NyaXB0KGdl
blByZWZpeCArIHBhdGgpOwotICB9Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L2NvbmZ0ZXN0LnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC9j
b25mdGVzdC5weQppbmRleCAxYmFmNjYyMmIwNTk5YzQ0ZmI4NWQyNjcyODgwMzFhMDVlNDI0M2Rj
Li43NDRhODBjMDhiZWZlYWE0ZWFjYmM1NjcxODZkM2M3ZTNlZTM2MzZmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0
L2NvbmZ0ZXN0LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3Rlc3QvY29uZnRlc3QucHkKQEAgLTQsMTIgKzQsMTEgQEAgaW1wb3J0
IG9zCiBpbXBvcnQgc3NsCiBpbXBvcnQgc3lzCiBpbXBvcnQgc3VicHJvY2VzcworaW1wb3J0IHVy
bGxpYgogCiBpbXBvcnQgaHRtbDVsaWIKIGltcG9ydCBweQogaW1wb3J0IHB5dGVzdAotZnJvbSBz
aXggaW1wb3J0IHRleHRfdHlwZQotZnJvbSBzaXgubW92ZXMgaW1wb3J0IHVybGxpYgogCiBmcm9t
IHdwdHNlcnZlciBpbXBvcnQgV1BUU2VydmVyCiAKQEAgLTE5LDYgKzE4LDkgQEAgSEFSTkVTUyA9
IG9zLnBhdGguam9pbihIRVJFLCAnaGFybmVzcy5odG1sJykKIFRFU1RfVFlQRVMgPSAoJ2Z1bmN0
aW9uYWwnLCAndW5pdCcpCiBERUZBVUxUX1ZBUklBTlRTID0gWyI/ZGVmYXVsdCJdCiAKK3N5cy5w
YXRoLmluc2VydCgwLCBvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGguam9pbihXUFRfUk9PVCwgInRv
b2xzIikpKQoraW1wb3J0IGxvY2FscGF0aHMKKwogc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGgu
bm9ybXBhdGgob3MucGF0aC5qb2luKFdQVF9ST09ULCAidG9vbHMiLCAid2ViZHJpdmVyIikpKQog
aW1wb3J0IHdlYmRyaXZlcgogCkBAIC0zOSw3ICs0MSwxMSBAQCBkZWYgcHl0ZXN0X2NvbGxlY3Rf
ZmlsZShwYXRoLCBwYXJlbnQpOgogICAgICAgICByZXR1cm4KICAgICB0ZXN0X3R5cGUgPSB0ZXN0
X3R5cGUuc3BsaXQob3MucGF0aC5zZXApWzFdCiAKLSAgICByZXR1cm4gSFRNTEl0ZW0oc3RyKHBh
dGgpLCB0ZXN0X3R5cGUsIHBhcmVudCkKKyAgICAjIEhhbmRsZSB0aGUgZGVwcmVjYXRpb24gb2Yg
Tm9kZSBjb25zdHJ1Y3Rpb24gaW4gcHl0ZXN0NgorICAgICMgaHR0cHM6Ly9kb2NzLnB5dGVzdC5v
cmcvZW4vc3RhYmxlL2RlcHJlY2F0aW9ucy5odG1sI25vZGUtY29uc3RydWN0aW9uLWNoYW5nZWQt
dG8tbm9kZS1mcm9tLXBhcmVudAorICAgIGlmIGhhc2F0dHIoSFRNTEl0ZW0sICJmcm9tX3BhcmVu
dCIpOgorICAgICAgICByZXR1cm4gSFRNTEl0ZW0uZnJvbV9wYXJlbnQocGFyZW50LCBmaWxlbmFt
ZT1zdHIocGF0aCksIHRlc3RfdHlwZT10ZXN0X3R5cGUpCisgICAgcmV0dXJuIEhUTUxJdGVtKHBh
cmVudCwgc3RyKHBhdGgpLCB0ZXN0X3R5cGUpCiAKIAogZGVmIHB5dGVzdF9jb25maWd1cmUoY29u
ZmlnKToKQEAgLTU2LDggKzYyLDYgQEAgZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzPWNhcGFiaWxp
dGllcykKICAgICBjb25maWcuYWRkX2NsZWFudXAoY29uZmlnLmRyaXZlci5lbmQpCiAKLSAgICBj
b25maWcuc2VydmVyID0gV1BUU2VydmVyKFdQVF9ST09UKQotICAgIGNvbmZpZy5zZXJ2ZXIuc3Rh
cnQoKQogICAgICMgQWx0aG91Z2ggdGhlIG5hbWUgb2YgdGhlIGBfY3JlYXRlX3VudmVyaWZpZWRf
Y29udGV4dGAgbWV0aG9kIHN1Z2dlc3RzCiAgICAgIyB0aGF0IGl0IGlzIG5vdCBpbnRlbmRlZCBm
b3IgZXh0ZXJuYWwgY29uc3VtcHRpb24sIHRoZSBzdGFuZGFyZCBsaWJyYXJ5J3MKICAgICAjIGRv
Y3VtZW50YXRpb24gZXhwbGljaXRseSBlbmRvcnNlcyBpdHMgdXNlOgpAQCAtNjgsNiArNzIsOSBA
QCBkZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgogICAgICMKICAgICAjIGh0dHBzOi8vZG9j
cy5weXRob24ub3JnLzIvbGlicmFyeS9odHRwbGliLmh0bWwjaHR0cGxpYi5IVFRQU0Nvbm5lY3Rp
b24KICAgICBjb25maWcuc3NsX2NvbnRleHQgPSBzc2wuX2NyZWF0ZV91bnZlcmlmaWVkX2NvbnRl
eHQoKQorCisgICAgY29uZmlnLnNlcnZlciA9IFdQVFNlcnZlcihXUFRfUk9PVCkKKyAgICBjb25m
aWcuc2VydmVyLnN0YXJ0KGNvbmZpZy5zc2xfY29udGV4dCkKICAgICBjb25maWcuYWRkX2NsZWFu
dXAoY29uZmlnLnNlcnZlci5zdG9wKQogCiAKQEAgLTgzLDcgKzkwLDcgQEAgZGVmIHJlc29sdmVf
dXJpKGNvbnRleHQsIHVyaSk6CiAKIAogY2xhc3MgSFRNTEl0ZW0ocHl0ZXN0Lkl0ZW0sIHB5dGVz
dC5Db2xsZWN0b3IpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSwgdGVzdF90eXBl
LCBwYXJlbnQpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQsIGZpbGVuYW1lLCB0ZXN0
X3R5cGUpOgogICAgICAgICBzZWxmLnVybCA9IHBhcmVudC5zZXNzaW9uLmNvbmZpZy5zZXJ2ZXIu
dXJsKGZpbGVuYW1lKQogICAgICAgICBzZWxmLnR5cGUgPSB0ZXN0X3R5cGUKICAgICAgICAgc2Vs
Zi52YXJpYW50cyA9IFtdCkBAIC0xMDUsNyArMTEyLDcgQEAgY2xhc3MgSFRNTEl0ZW0ocHl0ZXN0
Lkl0ZW0sIHB5dGVzdC5Db2xsZWN0b3IpOgogICAgICAgICBpbmNsdWRlc192YXJpYW50c19zY3Jp
cHQgPSBGYWxzZQogICAgICAgICBzZWxmLmV4cGVjdGVkID0gTm9uZQogCi0gICAgICAgIGZvciBl
bGVtZW50IGluIHBhcnNlZC5nZXRpdGVyYXRvcigpOgorICAgICAgICBmb3IgZWxlbWVudCBpbiBw
YXJzZWQuaXRlcigpOgogICAgICAgICAgICAgaWYgbm90IG5hbWUgYW5kIGVsZW1lbnQudGFnID09
ICd0aXRsZSc6CiAgICAgICAgICAgICAgICAgbmFtZSA9IGVsZW1lbnQudGV4dAogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCkBAIC0xMTQsNyArMTIxLDExIEBAIGNsYXNzIEhUTUxJdGVtKHB5dGVz
dC5JdGVtLCBweXRlc3QuQ29sbGVjdG9yKToKICAgICAgICAgICAgICAgICBjb250aW51ZQogICAg
ICAgICAgICAgaWYgZWxlbWVudC50YWcgPT0gJ3NjcmlwdCc6CiAgICAgICAgICAgICAgICAgaWYg
ZWxlbWVudC5hdHRyaWIuZ2V0KCdpZCcpID09ICdleHBlY3RlZCc6Ci0gICAgICAgICAgICAgICAg
ICAgIHNlbGYuZXhwZWN0ZWQgPSBqc29uLmxvYWRzKHRleHRfdHlwZShlbGVtZW50LnRleHQpKQor
ICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4
cGVjdGVkID0ganNvbi5sb2FkcyhlbGVtZW50LnRleHQpCisgICAgICAgICAgICAgICAgICAgIGV4
Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoIkZhaWxlZCBw
YXJzaW5nIEpTT04gaW4gJXMiICUgZmlsZW5hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICBy
YWlzZQogCiAgICAgICAgICAgICAgICAgc3JjID0gZWxlbWVudC5hdHRyaWIuZ2V0KCdzcmMnLCAn
JykKIApAQCAtMTkyLDYgKzIwMyw4IEBAIGNsYXNzIEhUTUxJdGVtKHB5dGVzdC5JdGVtLCBweXRl
c3QuQ29sbGVjdG9yKToKICAgICAgICAgdGVzdF91cmwgPSBzZWxmLnVybCArIHZhcmlhbnQKICAg
ICAgICAgYWN0dWFsID0gZHJpdmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0KCdydW5UZXN0KCIlcyIs
ICJmb28iLCBhcmd1bWVudHNbMF0pJyAlIHRlc3RfdXJsKQogCisgICAgICAgIHByaW50KGpzb24u
ZHVtcHMoYWN0dWFsLCBpbmRlbnQ9MikpCisKICAgICAgICAgc3VtbWFyaXplZCA9IHNlbGYuX3N1
bW1hcml6ZShjb3B5LmRlZXBjb3B5KGFjdHVhbCkpCiAKICAgICAgICAgcHJpbnQoanNvbi5kdW1w
cyhzdW1tYXJpemVkLCBpbmRlbnQ9MikpCkBAIC0yMDMsNiArMjE2LDE3IEBAIGNsYXNzIEhUTUxJ
dGVtKHB5dGVzdC5JdGVtLCBweXRlc3QuQ29sbGVjdG9yKToKIAogICAgICAgICBzZWxmLmV4cGVj
dGVkW3Unc3VtbWFyaXplZF90ZXN0cyddLnNvcnQoa2V5PWxhbWJkYSB0ZXN0X29iajogdGVzdF9v
YmouZ2V0KCduYW1lJykpCiAKKyAgICAgICAgIyBNYWtlIGFzc2VydHMgb3B0LWluIGZvciBub3cK
KyAgICAgICAgaWYgInN1bW1hcml6ZWRfYXNzZXJ0cyIgbm90IGluIHNlbGYuZXhwZWN0ZWQ6Cisg
ICAgICAgICAgICBkZWwgc3VtbWFyaXplZFsic3VtbWFyaXplZF9hc3NlcnRzIl0KKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICMgV2UgY2FuJ3QgYmUgc3VyZSBvZiB0aGUgb3JkZXIgb2YgYXNz
ZXJ0cyBldmVuIHdpdGhpbiB0aGUgc2FtZSB0ZXN0CisgICAgICAgICAgICAjIGFsdGhvdWdoIHdl
IGNvdWxkIGFsc28gY2hlY2sgZm9yIHRoZSBmYWlsaW5nIGFzc2VydCBiZWluZyB0aGUgZmluYWwK
KyAgICAgICAgICAgICMgb25lCisgICAgICAgICAgICBmb3Igb2JqIGluIFtzdW1tYXJpemVkLCBz
ZWxmLmV4cGVjdGVkXToKKyAgICAgICAgICAgICAgICBvYmpbInN1bW1hcml6ZWRfYXNzZXJ0cyJd
LnNvcnQoCisgICAgICAgICAgICAgICAgICAgIGtleT1sYW1iZGEgeDogKHhbInRlc3QiXSBvciAi
IiwgeFsic3RhdHVzIl0sIHhbImFzc2VydF9uYW1lIl0sIHR1cGxlKHhbImFyZ3MiXSkpKQorCiAg
ICAgICAgIGFzc2VydCBzdW1tYXJpemVkID09IHNlbGYuZXhwZWN0ZWQKIAogICAgIGRlZiBfc3Vt
bWFyaXplKHNlbGYsIGFjdHVhbCk6CkBAIC0yMTIsNiArMjM2LDExIEBAIGNsYXNzIEhUTUxJdGVt
KHB5dGVzdC5JdGVtLCBweXRlc3QuQ29sbGVjdG9yKToKICAgICAgICAgc3VtbWFyaXplZFt1J3N1
bW1hcml6ZWRfdGVzdHMnXSA9IFsKICAgICAgICAgICAgIHNlbGYuX3N1bW1hcml6ZV90ZXN0KHRl
c3QpIGZvciB0ZXN0IGluIGFjdHVhbFsndGVzdHMnXV0KICAgICAgICAgc3VtbWFyaXplZFt1J3N1
bW1hcml6ZWRfdGVzdHMnXS5zb3J0KGtleT1sYW1iZGEgdGVzdF9vYmo6IHRlc3Rfb2JqLmdldCgn
bmFtZScpKQorICAgICAgICBzdW1tYXJpemVkW3Unc3VtbWFyaXplZF9hc3NlcnRzJ10gPSBbCisg
ICAgICAgICAgICB7ImFzc2VydF9uYW1lIjogYXNzZXJ0X2l0ZW1bImFzc2VydF9uYW1lIl0sCisg
ICAgICAgICAgICAidGVzdCI6IGFzc2VydF9pdGVtWyJ0ZXN0Il1bIm5hbWUiXSBpZiBhc3NlcnRf
aXRlbVsidGVzdCJdIGVsc2UgTm9uZSwKKyAgICAgICAgICAgICJhcmdzIjogYXNzZXJ0X2l0ZW1b
ImFyZ3MiXSwKKyAgICAgICAgICAgICJzdGF0dXMiOiBhc3NlcnRfaXRlbVsic3RhdHVzIl19IGZv
ciBhc3NlcnRfaXRlbSBpbiBhY3R1YWxbImFzc2VydHMiXV0KICAgICAgICAgc3VtbWFyaXplZFt1
J3R5cGUnXSA9IGFjdHVhbFsndHlwZSddCiAKICAgICAgICAgcmV0dXJuIHN1bW1hcml6ZWQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvcmVxdWlyZW1lbnRzLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvcmVxdWlyZW1lbnRzLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45NWQ4N2MzODc1NmM1YTZjMjQ5NGI5OGEzZDgxNWUxMDNlOWNjNGUxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNv
dXJjZXMvdGVzdC9yZXF1aXJlbWVudHMudHh0CkBAIC0wLDAgKzEgQEAKK2h0bWw1bGliPT0xLjEK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9hcGktdGVzdHMtMS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0
cy9mdW5jdGlvbmFsL2FwaS10ZXN0cy0xLmh0bWwKaW5kZXggMjM3YjRlYTg3NmU1ODljYjZlMjMx
ODcyZGM4MTZkNzE3MWU0N2MzZS4uNDFhNzY1ZjU1NzQ1YzBiOGM3ZjQ4OTFhYTJiMzRjNTg2MGE3
MjU2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2FwaS10ZXN0cy0xLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMv
dGVzdC90ZXN0cy9mdW5jdGlvbmFsL2FwaS10ZXN0cy0xLmh0bWwKQEAgLTU2Miw2ICs1NjIsNDMx
IEBACiAgICAgICAicHJvcGVydGllcyI6IHt9CiAgICAgfQogICBdLAorICAic3VtbWFyaXplZF9h
c3NlcnRzIjogWworICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdHJ1ZSIsCisg
ICAgICAidGVzdCI6ICJTZXR1cCBmdW5jdGlvbiByYW4iLAorICAgICAgImFyZ3MiOiBbCisgICAg
ICAgICJ0cnVlIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwKKyAgICB7Cisg
ICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X2FycmF5X2VxdWFscyIsCisgICAgICAidGVzdCI6
ICJvbl9ldmVudCBkb2VzIG5vdCB1c2UgZXZlbnQgY2FwdHVyZSIsCisgICAgICAiYXJncyI6IFsK
KyAgICAgICAgIltcImlubmVyXCIsIFwib3V0ZXJcIl0iLAorICAgICAgICAiW1wiaW5uZXJcIiwg
XCJvdXRlclwiXSIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgewor
ICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiZG9j
dW1lbnQuYm9keSBzaG91bGQgYmUgdGhlIGZpcnN0IGJvZHkgZWxlbWVudCBpbiB0aGUgZG9jdW1l
bnQiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJFbGVtZW50IG5vZGUgPGJvZHkgb25sb2Fk
PVwibG9hZF90ZXN0X2F0dHIuZG9uZSgpXCI+IDxoMT5TYW1wbGUgSFRNTDUgQVAuLi4iLAorICAg
ICAgICAiRWxlbWVudCBub2RlIDxib2R5IG9ubG9hZD1cImxvYWRfdGVzdF9hdHRyLmRvbmUoKVwi
PiA8aDE+U2FtcGxlIEhUTUw1IEFQLi4uIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisg
ICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X2VxdWFscyIsCisgICAg
ICAidGVzdCI6ICJhc3NlcnRfZXF1YWxzIHRlc3RzIiwKKyAgICAgICJhcmdzIjogWworICAgICAg
ICAiMSIsCisgICAgICAgICIxIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwK
KyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X2VxdWFscyIsCisgICAgICAidGVz
dCI6ICJhc3NlcnRfZXF1YWxzIHRlc3RzIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiTmFO
IiwKKyAgICAgICAgIk5hTiIsCisgICAgICAgICJcIk5hTiBjYXNlXCIiCisgICAgICBdLAorICAg
ICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3Nl
cnRfZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF9lcXVhbHMgdGVzdHMiLAorICAgICAg
ImFyZ3MiOiBbCisgICAgICAgICIwIiwKKyAgICAgICAgIjAiLAorICAgICAgICAiXCJaZXJvIGNh
c2VcIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAg
ImFzc2VydF9uYW1lIjogImFzc2VydF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiYXNzZXJ0X2Vx
dWFscyB0ZXN0cyBleHBlY3RlZCB0byBmYWlsIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAi
LTAiLAorICAgICAgICAiMCIsCisgICAgICAgICJcIlplcm8gY2FzZVwiIgorICAgICAgXSwKKyAg
ICAgICJzdGF0dXMiOiAxCisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNz
ZXJ0X25vdF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiYXNzZXJ0X25vdF9lcXVhbHMgdGVzdHMi
LAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJvYmplY3QgXCJbb2JqZWN0IE9iamVjdF1cIiIs
CisgICAgICAgICJvYmplY3QgXCJbb2JqZWN0IE9iamVjdF1cIiIsCisgICAgICAgICJcIm9iamVj
dCBjYXNlXCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAg
ICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfbm90X2VxdWFscyIsCisgICAgICAidGVzdCI6ICJh
c3NlcnRfbm90X2VxdWFscyB0ZXN0cyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIi0wIiwK
KyAgICAgICAgIjAiLAorICAgICAgICAiXCJaZXJvIGNhc2VcIiIKKyAgICAgIF0sCisgICAgICAi
c3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90
cnVlIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF90cnVlIGV4cGVjdGVkIHRvIHBhc3MiLAorICAg
ICAgImFyZ3MiOiBbCisgICAgICAgICJ0cnVlIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAw
CisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X3RydWUiLAorICAg
ICAgInRlc3QiOiAiYXNzZXJ0X3RydWUgZXhwZWN0ZWQgdG8gZmFpbCIsCisgICAgICAiYXJncyI6
IFsKKyAgICAgICAgImZhbHNlIiwKKyAgICAgICAgIlwiZmFsc2Ugc2hvdWxkIG5vdCBiZSB0cnVl
XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJh
c3NlcnRfbmFtZSI6ICJhc3NlcnRfYXJyYXlfZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImJhc2lj
IGFzc2VydF9hcnJheV9lcXVhbHMgdGVzdCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIlsx
LCBOYU5dIiwKKyAgICAgICAgIlsxLCBOYU5dIiwKKyAgICAgICAgIlwiWzEsIE5hTl0gaXMgZXF1
YWwgdG8gWzEsIE5hTl1cIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisg
ICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9hcnJheV9lcXVhbHMiLAorICAgICAg
InRlc3QiOiAiYXNzZXJ0X2FycmF5X2VxdWFscyB3aXRoIGZpcnN0IHBhcmFtIHVuZGVmaW5lZCIs
CisgICAgICAiYXJncyI6IFsKKyAgICAgICAgInVuZGVmaW5lZCIsCisgICAgICAgICJbMV0iLAor
ICAgICAgICAiXCJ1bmRlZmluZWQgZXF1YWxzIFsxXT9cIiIKKyAgICAgIF0sCisgICAgICAic3Rh
dHVzIjogMQorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9hcnJh
eV9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiYXNzZXJ0X2FycmF5X2VxdWFscyB3aXRoIGZpcnN0
IHBhcmFtIHRydWUiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJ0cnVlIiwKKyAgICAgICAg
IlsxXSIsCisgICAgICAgICJcInRydWUgZXF1YWxzIFsxXT9cIiIKKyAgICAgIF0sCisgICAgICAi
c3RhdHVzIjogMQorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9h
cnJheV9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiYXNzZXJ0X2FycmF5X2VxdWFscyB3aXRoIGZp
cnN0IHBhcmFtIGZhbHNlIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiZmFsc2UiLAorICAg
ICAgICAiWzFdIiwKKyAgICAgICAgIlwiZmFsc2UgZXF1YWxzIFsxXT9cIiIKKyAgICAgIF0sCisg
ICAgICAic3RhdHVzIjogMQorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFz
c2VydF9hcnJheV9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiYXNzZXJ0X2FycmF5X2VxdWFscyB3
aXRoIGZpcnN0IHBhcmFtIG51bGwiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJudWxsIiwK
KyAgICAgICAgIlsxXSIsCisgICAgICAgICJcIm51bGwgZXF1YWxzIFsxXT9cIiIKKyAgICAgIF0s
CisgICAgICAic3RhdHVzIjogMQorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjog
ImFzc2VydF9hcnJheV9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiYXNzZXJ0X2FycmF5X2VxdWFs
cyB3aXRoIGZpcnN0IHBhcmFtIDEiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICIxIiwKKyAg
ICAgICAgIlsxXSIsCisgICAgICAgICJcIjEgZXF1YWxzIFsxXT9cIiIKKyAgICAgIF0sCisgICAg
ICAic3RhdHVzIjogMQorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2Vy
dF9hcnJheV9hcHByb3hfZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImJhc2ljIGFzc2VydF9hcnJh
eV9hcHByb3hfZXF1YWxzIHRlc3QiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJbMTAsIDEx
XSIsCisgICAgICAgICJbMTEsIDEwXSIsCisgICAgICAgICIxIiwKKyAgICAgICAgIlwiWzEwLCAx
MV0gaXMgYXBwcm94aW1hdGVseSAoKy8tIDEpIFsxMSwgMTBdXCIiCisgICAgICBdLAorICAgICAg
InN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRf
YXBwcm94X2VxdWFscyIsCisgICAgICAidGVzdCI6ICJiYXNpYyBhc3NlcnRfYXBwcm94X2VxdWFs
cyB0ZXN0IiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiMTAiLAorICAgICAgICAiMTEiLAor
ICAgICAgICAiMSIsCisgICAgICAgICJcIjEwIGlzIGFwcHJveGltYXRlbHkgKCsvLSAxKSAxMVwi
IgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwKKyAgICB7CisgICAgICAiYXNz
ZXJ0X25hbWUiOiAiYXNzZXJ0X2FwcHJveF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiYmFzaWMg
YXNzZXJ0X2xlc3NfdGhhbiB0ZXN0IiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiMTAiLAor
ICAgICAgICAiMTEiLAorICAgICAgICAiMSIsCisgICAgICAgICJcIjEwIGlzIGFwcHJveGltYXRl
bHkgKCsvLSAxKSAxMVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwKKyAg
ICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X2dyZWF0ZXJfdGhhbiIsCisgICAgICAi
dGVzdCI6ICJhc3NlcnRfZ3JlYXRlcl90aGFuIGV4cGVjdGVkIHRvIGZhaWwiLAorICAgICAgImFy
Z3MiOiBbCisgICAgICAgICIxMCIsCisgICAgICAgICIxMSIsCisgICAgICAgICJcIjEwIGlzIG5v
dCBncmVhdGVyIHRoYW4gMTFcIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMQorICAgIH0s
CisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwi
LAorICAgICAgInRlc3QiOiAiYmFzaWMgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbCB0ZXN0IiwK
KyAgICAgICJhcmdzIjogWworICAgICAgICAiMTAiLAorICAgICAgICAiMTAiLAorICAgICAgICAi
XCIxMCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMTBcIiIKKyAgICAgIF0sCisgICAgICAi
c3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9n
cmVhdGVyX3RoYW5fZXF1YWwiLAorICAgICAgInRlc3QiOiAiYXNzZXJ0X2xlc3NfdGhhbl9lcXVh
bCBleHBlY3RlZCB0byBmYWlsIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiXCIxMFwiIiwK
KyAgICAgICAgIjEwIiwKKyAgICAgICAgIlwiJzEwJyBpcyBub3QgYSBudW1iZXJcIiIKKyAgICAg
IF0sCisgICAgICAic3RhdHVzIjogMQorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1l
IjogImFzc2VydF9vd25fcHJvcGVydHkiLAorICAgICAgInRlc3QiOiAidGVzdCBmb3IgYXNzZXJ0
W19ub3RdX293bl9wcm9wZXJ0eSBhbmQgaW5zZXJ0X2luaGVyaXRzIiwKKyAgICAgICJhcmdzIjog
WworICAgICAgICAib2JqZWN0IFwiW29iamVjdCBPYmplY3RdXCIiLAorICAgICAgICAiXCJhXCIi
CisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3Nl
cnRfbmFtZSI6ICJhc3NlcnRfbm90X293bl9wcm9wZXJ0eSIsCisgICAgICAidGVzdCI6ICJ0ZXN0
IGZvciBhc3NlcnRbX25vdF1fb3duX3Byb3BlcnR5IGFuZCBpbnNlcnRfaW5oZXJpdHMiLAorICAg
ICAgImFyZ3MiOiBbCisgICAgICAgICJvYmplY3QgXCJbb2JqZWN0IE9iamVjdF1cIiIsCisgICAg
ICAgICJcImJcIiIsCisgICAgICAgICJcInVuZXhwZWN0ZWQgcHJvcGVydHkgZm91bmQ6IFxcXCJi
XFxcIlwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwKKyAgICB7CisgICAg
ICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X2luaGVyaXRzIiwKKyAgICAgICJ0ZXN0IjogInRlc3Qg
Zm9yIGFzc2VydFtfbm90XV9vd25fcHJvcGVydHkgYW5kIGluc2VydF9pbmhlcml0cyIsCisgICAg
ICAiYXJncyI6IFsKKyAgICAgICAgIm9iamVjdCBcIltvYmplY3QgT2JqZWN0XVwiIiwKKyAgICAg
ICAgIlwiYlwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwKKyAgICB7Cisg
ICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X3Rocm93c19kb20iLAorICAgICAgInRlc3QiOiAi
VGVzdCB0aHJvdyBET00gZXhjZXB0aW9uIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiXCJO
T1RfRk9VTkRfRVJSXCIiLAorICAgICAgICAiZnVuY3Rpb24gXCJmdW5jdGlvbiAoKSB7YS5yZW1v
dmVDaGlsZChiKX1cIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAg
eworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90aHJvd3NfanMiLAorICAgICAgInRlc3Qi
OiAiVGVzdCB0aHJvdyBET01FeGNlcHRpb24gYXMgSlMgZXhjZXB0aW9uIGV4cGVjdGVkIHRvIGZh
aWwiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uIERPTUV4
Y2VwdGlvbigpIHsgICAgIFtuYXRpdmUgY29kZV0gfVwiIiwKKyAgICAgICAgImZ1bmN0aW9uIFwi
ZnVuY3Rpb24gKCkge2EucmVtb3ZlQ2hpbGQoYil9XCIiCisgICAgICBdLAorICAgICAgInN0YXR1
cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdGhyb3dz
X2pzIiwKKyAgICAgICJ0ZXN0IjogIlRlc3QgdGhyb3cgU3ludGF4RXJyb3IgRE9NRXhjZXB0aW9u
IHdoZXJlIEpTIFN5bnRheEVycm9yIGV4cGVjdGVkOyBleHBlY3RlZCB0byBmYWlsIiwKKyAgICAg
ICJhcmdzIjogWworICAgICAgICAiZnVuY3Rpb24gXCJmdW5jdGlvbiBTeW50YXhFcnJvcigpIHsg
ICAgIFtuYXRpdmUgY29kZV0gfVwiIiwKKyAgICAgICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24gKCkg
e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJcIil9XCIiCisgICAgICBdLAorICAgICAgInN0YXR1
cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdGhyb3dz
X2pzIiwKKyAgICAgICJ0ZXN0IjogIlRlc3QgdGhyb3cgSlMgU3ludGF4RXJyb3IiLAorICAgICAg
ImFyZ3MiOiBbCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uIFN5bnRheEVycm9yKCkgeyAg
ICAgW25hdGl2ZSBjb2RlXSB9XCIiLAorICAgICAgICAiZnVuY3Rpb24gXCJmdW5jdGlvbiAoKSB7
SlNPTi5wYXJzZShcIntcIil9XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9
LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdGhyb3dzX2RvbSIsCisgICAg
ICAidGVzdCI6ICJUZXN0IHRocm93IERPTSBTeW50YXhFcnJvciIsCisgICAgICAiYXJncyI6IFsK
KyAgICAgICAgIlwiU3ludGF4RXJyb3JcIiIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9u
ICgpIHtkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiXCIpfVwiIgorICAgICAgXSwKKyAgICAgICJz
dGF0dXMiOiAwCisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X3Ro
cm93c19kb20iLAorICAgICAgInRlc3QiOiAiVGVzdCB0aHJvdyBET00gU3ludGF4RXJyb3IgZnJv
bSBzdWJmcmFtZSIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIlwiU3ludGF4RXJyb3JcIiIs
CisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uIERPTUV4Y2VwdGlvbigpIHsgICAgIFtuYXRp
dmUgY29kZV0gfVwiIiwKKyAgICAgICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24gKCkge2lmci5jb250
ZW50RG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIlwiKX1cIiIKKyAgICAgIF0sCisgICAgICAic3Rh
dHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90aHJv
d3NfZG9tIiwKKyAgICAgICJ0ZXN0IjogIlRlc3QgdGhyb3cgRE9NIFN5bnRheEVycm9yIGZyb20g
c3ViZnJhbWUgd2l0aCBpbmNvcnJlY3QgZ2xvYmFsIGV4cGVjdGF0aW9uOyBleHBlY3RlZCB0byBm
YWlsIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiXCJTeW50YXhFcnJvclwiIiwKKyAgICAg
ICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24gKCkge2lmci5jb250ZW50RG9jdW1lbnQucXVlcnlTZWxl
Y3RvcihcIlwiKX1cIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMQorICAgIH0sCisgICAg
eworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90aHJvd3NfZG9tIiwKKyAgICAgICJ0ZXN0
IjogIlRlc3QgdGhyb3cgRE9NIFN5bnRheEVycm9yIHdpdGggaW5jb3JyZWN0IGV4cGVjdGF0aW9u
OyBleHBlY3RlZCB0byBmYWlsIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiXCJTeW50YXhF
cnJvclwiIiwKKyAgICAgICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24gRE9NRXhjZXB0aW9uKCkgeyAg
ICAgW25hdGl2ZSBjb2RlXSB9XCIiLAorICAgICAgICAiZnVuY3Rpb24gXCJmdW5jdGlvbiAoKSB7
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIlwiKX1cIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVz
IjogMQorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90aHJvd3Nf
ZG9tIiwKKyAgICAgICJ0ZXN0IjogIlRlc3QgdGhyb3cgSlMgU3ludGF4RXJyb3Igd2hlcmUgU3lu
dGF4RXJyb3IgRE9NRXhjZXB0aW9uIGV4cGVjdGVkOyBleHBlY3RlZCB0byBmYWlsIiwKKyAgICAg
ICJhcmdzIjogWworICAgICAgICAiXCJTeW50YXhFcnJvclwiIiwKKyAgICAgICAgImZ1bmN0aW9u
IFwiZnVuY3Rpb24gKCkge0pTT04ucGFyc2UoXCJ7XCIpfVwiIgorICAgICAgXSwKKyAgICAgICJz
dGF0dXMiOiAxCisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X3Ro
cm93c19kb20iLAorICAgICAgInRlc3QiOiAiVGVzdCB0aHJvdyBET00gZXhjZXB0aW9uIGV4cGVj
dGVkIHRvIGZhaWwiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJcIk5PVF9GT1VORF9FUlJc
IiIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uICgpIHthLmFwcGVuZENoaWxkKGIpfVwi
IgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAxCisgICAgfSwKKyAgICB7CisgICAgICAiYXNz
ZXJ0X25hbWUiOiAiYXNzZXJ0X3Rocm93c19kb20iLAorICAgICAgInRlc3QiOiAiVGVzdCBhc3Nl
cnRfdGhyb3dzX2RvbSB3aXRoIGFtYmlndW91cyBET00tZXhjZXB0aW9uIGV4cGVjdGVkIHRvIEZh
aWwiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICIwIiwKKyAgICAgICAgImZ1bmN0aW9uIFwi
ZnVuY3Rpb24oKSB7dGhyb3cgZX1cIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMQorICAg
IH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90aHJvd3NfZG9tIiwKKyAg
ICAgICJ0ZXN0IjogIlRlc3QgYXNzZXJ0X3Rocm93c19kb20gd2l0aCBub24tRE9NLWV4Y2VwdGlv
biBleHBlY3RlZCB0byBGYWlsIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiXCJURVNUX0VS
UlwiIiwKKyAgICAgICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24oKSB7dGhyb3cgZX1cIiIKKyAgICAg
IF0sCisgICAgICAic3RhdHVzIjogMQorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1l
IjogImFzc2VydF90aHJvd3NfZG9tIiwKKyAgICAgICJ0ZXN0IjogIlRlc3QgYXNzZXJ0X3Rocm93
c19kb20gd2l0aCBudW1iZXIgY29kZSB2YWx1ZSBleHBlY3RlZCB0byBQYXNzIiwKKyAgICAgICJh
cmdzIjogWworICAgICAgICAiMTIiLAorICAgICAgICAiZnVuY3Rpb24gXCJmdW5jdGlvbigpIHt0
aHJvdyBlfVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwKKyAgICB7Cisg
ICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X3Rocm93c19kb20iLAorICAgICAgInRlc3QiOiAi
VGVzdCBhc3NlcnRfdGhyb3dzX2RvbSB3aXRoIG51bWJlciBjb2RlIHZhbHVlIGFuZCByZWFsIERP
TUV4Y2VwdGlvbiBleHBlY3RlZCB0byBQYXNzIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAi
MTIiLAorICAgICAgICAiZnVuY3Rpb24gXCJmdW5jdGlvbigpIHt0aHJvdyBlfVwiIgorICAgICAg
XSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUi
OiAiYXNzZXJ0X2VxdWFscyIsCisgICAgICAidGVzdCI6ICJUZXN0IHRoYXQgZGVmaW5lcyBhIGds
b2JhbCBhbmQgY2xlYW5zIGl0IHVwIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiMSIsCisg
ICAgICAgICIxIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwKKyAgICB7Cisg
ICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X2VxdWFscyIsCisgICAgICAidGVzdCI6ICJUZXN0
IHRoYXQgY2xlYW51cCBoYW5kbGVycyBmcm9tIHByZXZpb3VzIHRlc3QgcmFuIiwKKyAgICAgICJh
cmdzIjogWworICAgICAgICAidW5kZWZpbmVkIiwKKyAgICAgICAgInVuZGVmaW5lZCIKKyAgICAg
IF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1l
IjogImFzc2VydF90cnVlIiwKKyAgICAgICJ0ZXN0IjogIlRlc3Qgc3RlcF9mdW5jIiwKKyAgICAg
ICJhcmdzIjogWworICAgICAgICAidHJ1ZSIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAor
ICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90cnVlIiwKKyAgICAg
ICJ0ZXN0IjogIlRlc3QgYXN5bmMgdGVzdCB3aXRoIGNhbGxiYWNrIiwKKyAgICAgICJhcmdzIjog
WworICAgICAgICAidHJ1ZSIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisg
ICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90cnVlIiwKKyAgICAgICJ0ZXN0Ijog
IlRlc3QgYXN5bmMgdGVzdCB3aXRoIGNhbGxiYWNrIGFuZCBgdGhpc2Agb2JqLiIsCisgICAgICAi
YXJncyI6IFsKKyAgICAgICAgInRydWUiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAg
ICB9CisgIF0sCiAgICJ0eXBlIjogImNvbXBsZXRlIgogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90
ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvYXBpLXRlc3RzLTIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25h
bC9hcGktdGVzdHMtMi5odG1sCmluZGV4IDA4YTJiODkzYzI0NGRhZTQwNTE4NzQ5YWM0YjZiZGNj
YWEyODRhMDMuLmJhN2EwOGY0OGZkN2FjODZjOTM4N2UwM2JmM2RmODgxNTUwNTc3YWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3Vy
Y2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9hcGktdGVzdHMtMi5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMv
ZnVuY3Rpb25hbC9hcGktdGVzdHMtMi5odG1sCkBAIC00MCw2ICs0MCwyNCBAQCBkb25lKCk7CiAg
ICAgICAibWVzc2FnZSI6IG51bGwKICAgICB9CiAgIF0sCisgICJzdW1tYXJpemVkX2Fzc2VydHMi
OiBbCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90cnVlIiwKKyAgICAgICJ0
ZXN0IjogIlRlc3QgZGVmaW5lZCBiZWZvcmUgb25sb2FkIiwKKyAgICAgICJhcmdzIjogWworICAg
ICAgICAidHJ1ZSIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgewor
ICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90cnVlIiwKKyAgICAgICJ0ZXN0IjogIlRlc3Qg
ZGVmaW5lZCBhZnRlciBvbmxvYWQiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJ0cnVlIgor
ICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfQorICBdLAogICAidHlwZSI6ICJjb21w
bGV0ZSIKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhh
cm5lc3MvSWRsRGljdGlvbmFyeS90ZXN0X3BhcnRpYWxfaW50ZXJmYWNlX29mLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rl
c3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxEaWN0aW9uYXJ5L3Rlc3RfcGFydGlhbF9pbnRl
cmZhY2Vfb2YuaHRtbAppbmRleCA1ZWUzZmU3ZTg5M2YxOWVmMzI4YzNiNWM5OTZiZjdiNDc1MWIy
YjdhLi4wNWU2ZTBiMWUwNmM2MzRlYzI5MDBjYTQzMDJiNjExZGRhNzJlYTE0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90
ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxEaWN0aW9uYXJ5L3Rlc3RfcGFydGlh
bF9pbnRlcmZhY2Vfb2YuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9J
ZGxEaWN0aW9uYXJ5L3Rlc3RfcGFydGlhbF9pbnRlcmZhY2Vfb2YuaHRtbApAQCAtNDEsNyArNDEs
NyBAQAogICAgICAgaWRsQXJyYXkuYWRkX2lkbHMoYAogICAgICAgICBwYXJ0aWFsIGRpY3Rpb25h
cnkgQyB7fTsKICAgICAgICAgbmFtZXNwYWNlIEMge307YCk7Ci0gICAgICBpZGxBcnJheS5jb2xs
YXBzZV9wYXJ0aWFscygpOworICAgICAgaWRsQXJyYXkubWVyZ2VfcGFydGlhbHMoKTsKICAgICB9
KSgpOwogICA8L3NjcmlwdD4KICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2pzb24iIGlkPSJleHBlY3Rl
ZCI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxJbnRlcmZh
Y2UvdGVzdF9pbW11dGFibGVfcHJvdG90eXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRs
aGFybmVzcy9JZGxJbnRlcmZhY2UvdGVzdF9pbW11dGFibGVfcHJvdG90eXBlLmh0bWwKaW5kZXgg
NDBmNWRiZmNjNzFhNjI2NzU0NGFlYzVhNzRiZWVjZGY5ZmYyMGVkNi4uNTYyNWM3ZjU1MzAzZjcz
YTViMjMxYTQ4YWFiYTg2ZDMzOWNmOWM5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFs
L2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rlc3RfaW1tdXRhYmxlX3Byb3RvdHlwZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Vz
L3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbEludGVyZmFjZS90ZXN0X2ltbXV0
YWJsZV9wcm90b3R5cGUuaHRtbApAQCAtMzMsOCArMzMsOCBAQCBpZGxBcnJheS5hZGRfaWRscygK
ICAgICAiW0dsb2JhbD1XaW5kb3csIEV4cG9zZWQ9V2luZG93XVxuIiArCiAgICAgImludGVyZmFj
ZSBXaW5kb3cgOiBFdmVudFRhcmdldCB7fTtcbiIgKwogCi0gICAgIltHbG9iYWw9V2luZG93LCBF
eHBvc2VkPVdpbmRvdywgQ29uc3RydWN0b3IoKV1cbiIgKwotICAgICJpbnRlcmZhY2UgRm9vIHt9
OyIKKyAgICAiW0dsb2JhbD1XaW5kb3csIEV4cG9zZWQ9V2luZG93XVxuIiArCisgICAgImludGVy
ZmFjZSBGb28geyBjb25zdHJ1Y3RvcigpOyB9OyIKICAgKTsKIGlkbEFycmF5LmFkZF9vYmplY3Rz
KHsKICAgRm9vOiBbIm5ldyBGb28oKSJdLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFs
L2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rlc3RfaW50ZXJmYWNlX21peGluLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rl
c3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxJbnRlcmZhY2UvdGVzdF9pbnRlcmZhY2VfbWl4
aW4uaHRtbAppbmRleCBhOWE5MDk0ZmUzMGFiNTA4NTc0MjI0NzA3OGVjNzlhY2FlMWEwNzExLi4x
ZTIyYzRmODVhNWEwNGM3MmJiNDljMWUyZmQ1NzU5MDc3ZTI3N2FmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rl
c3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxJbnRlcmZhY2UvdGVzdF9pbnRlcmZhY2VfbWl4
aW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxJbnRlcmZhY2Uv
dGVzdF9pbnRlcmZhY2VfbWl4aW4uaHRtbApAQCAtMTcsMzAgKzE3LDU2IEBACiAgIDxzY3JpcHQ+
CiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgLy8gTm8gb3JpZ2luYWwgZXhpc3RlbmNlCisgICAg
Ly8gU2ltcGxlIGluY2x1ZGVzIHN0YXRlbWVudCAodmFsaWQpCiAgICAgKCgpID0+IHsKICAgICAg
IGNvbnN0IGlkbEFycmF5ID0gbmV3IElkbEFycmF5KCk7Ci0gICAgICBpZGxBcnJheS5hZGRfaWRs
cygncGFydGlhbCBpbnRlcmZhY2UgbWl4aW4gQSB7fTsnKTsKLSAgICAgIGlkbEFycmF5LnRlc3Qo
KTsKKyAgICAgIGlkbEFycmF5LmFkZF9pZGxzKGAKKyAgICAgICAgW0V4cG9zZWQ9V2luZG93XSBp
bnRlcmZhY2UgSTEge307CisgICAgICAgIGludGVyZmFjZSBtaXhpbiBNMSB7IGF0dHJpYnV0ZSBh
bnkgYTE7IH07CisgICAgICAgIEkxIGluY2x1ZGVzIE0xO2ApOworICAgICAgaWRsQXJyYXkubWVy
Z2VfcGFydGlhbHMoKTsKKyAgICAgIGlkbEFycmF5Lm1lcmdlX21peGlucygpOworICAgIH0pKCk7
CisKKyAgICAvLyBQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiAodmFsaWQpCisgICAgKCgpID0+IHsK
KyAgICAgIGNvbnN0IGlkbEFycmF5ID0gbmV3IElkbEFycmF5KCk7CisgICAgICBpZGxBcnJheS5h
ZGRfaWRscyhgCisgICAgICAgIFtFeHBvc2VkPVdpbmRvd10gaW50ZXJmYWNlIEkyIHt9OworICAg
ICAgICBpbnRlcmZhY2UgbWl4aW4gTTIge307CisgICAgICAgIHBhcnRpYWwgaW50ZXJmYWNlIG1p
eGluIE0yIHsgYXR0cmlidXRlIGFueSBhMjsgfTsKKyAgICAgICAgSTIgaW5jbHVkZXMgTTI7YCk7
CisgICAgICBpZGxBcnJheS5tZXJnZV9wYXJ0aWFscygpOworICAgICAgaWRsQXJyYXkubWVyZ2Vf
bWl4aW5zKCk7CisgICAgfSkoKTsKKworICAgIC8vIFBhcnRpYWwgaW50ZXJmYWNlIG1peGluIHdp
dGhvdXQgb3JpZ2luYWwgbWl4aW4KKyAgICAoKCkgPT4geworICAgICAgY29uc3QgaWRsQXJyYXkg
PSBuZXcgSWRsQXJyYXkoKTsKKyAgICAgIGlkbEFycmF5LmFkZF9pZGxzKCdwYXJ0aWFsIGludGVy
ZmFjZSBtaXhpbiBNMyB7fTsnKTsKKyAgICAgIGlkbEFycmF5Lm1lcmdlX3BhcnRpYWxzKCk7Cisg
ICAgICBpZGxBcnJheS5tZXJnZV9taXhpbnMoKTsKICAgICB9KSgpOwogCi0gICAgLy8gTmFtZSBj
bGFzaCAocGFydGlhbHMpCisgICAgLy8gTmFtZSBjbGFzaCBiZXR3ZWVuIG1peGluIGFuZCBwYXJ0
aWFsIG1peGluCiAgICAgKCgpID0+IHsKICAgICAgIGNvbnN0IGlkbEFycmF5ID0gbmV3IElkbEFy
cmF5KCk7CiAgICAgICBpZGxBcnJheS5hZGRfaWRscyhgCi0gICAgICAgIGludGVyZmFjZSBtaXhp
biBCIHsgYXR0cmlidXRlIGFueSBGOyB9OwotICAgICAgICBwYXJ0aWFsIGludGVyZmFjZSBtaXhp
biBCIHsgYXR0cmlidXRlIGFueSBGOyB9O2ApOwotICAgICAgaWRsQXJyYXkuY29sbGFwc2VfcGFy
dGlhbHMoKTsKKyAgICAgICAgaW50ZXJmYWNlIG1peGluIE00IHsgYXR0cmlidXRlIGFueSBhNDsg
fTsKKyAgICAgICAgcGFydGlhbCBpbnRlcmZhY2UgbWl4aW4gTTQgeyBhdHRyaWJ1dGUgYW55IGE0
OyB9O2ApOworICAgICAgaWRsQXJyYXkubWVyZ2VfcGFydGlhbHMoKTsKKyAgICAgIGlkbEFycmF5
Lm1lcmdlX21peGlucygpOwogICAgIH0pKCk7CiAKLSAgICAvLyBOYW1lIGNsYXNoIChkaWZmZXJl
bnQgbWl4aW5zKQorICAgIC8vIE5hbWUgY2xhc2ggYmV0d2VlbiBpbnRlcmZhY2UgYW5kIG1peGlu
CiAgICAgKCgpID0+IHsKICAgICAgIGNvbnN0IGlkbEFycmF5ID0gbmV3IElkbEFycmF5KCk7CiAg
ICAgICBpZGxBcnJheS5hZGRfdW50ZXN0ZWRfaWRscyhgCi0gICAgICAgIGludGVyZmFjZSBtaXhp
biBDIHsgYXR0cmlidXRlIGFueSBGOyB9OwotICAgICAgICBpbnRlcmZhY2UgRCB7IGF0dHJpYnV0
ZSBhbnkgRjsgfTsKLSAgICAgICAgRCBpbmNsdWRlcyBDO2ApOwotICAgICAgaWRsQXJyYXkudGVz
dCgpOworICAgICAgICBpbnRlcmZhY2UgbWl4aW4gTTUgeyBhdHRyaWJ1dGUgYW55IGE1OyB9Owor
ICAgICAgICBpbnRlcmZhY2UgSTUgeyBhdHRyaWJ1dGUgYW55IGE1OyB9OworICAgICAgICBJNSBp
bmNsdWRlcyBNNTtgKTsKKyAgICAgIGlkbEFycmF5Lm1lcmdlX3BhcnRpYWxzKCk7CisgICAgICBp
ZGxBcnJheS5tZXJnZV9taXhpbnMoKTsKICAgICB9KSgpOwogICA8L3NjcmlwdD4KICAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2pzb24iIGlkPSJleHBlY3RlZCI+CkBAIC01MSwyOCArNzcsNTIgQEAKICAg
fSwKICAgInN1bW1hcml6ZWRfdGVzdHMiOiBbCiAgICAgewotICAgICAgIm5hbWUiOiAiUGFydGlh
bCBpbnRlcmZhY2UgbWl4aW4gQTogb3JpZ2luYWwgaW50ZXJmYWNlIG1peGluIGRlZmluZWQiLAor
ICAgICAgIm5hbWUiOiAiSTEgaW5jbHVkZXMgTTE6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIiwK
KyAgICAgICJzdGF0dXNfc3RyaW5nIjogIlBBU1MiLAorICAgICAgInByb3BlcnRpZXMiOiB7fSwK
KyAgICAgICJtZXNzYWdlIjogbnVsbAorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiSTIg
aW5jbHVkZXMgTTI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIiwKKyAgICAgICJzdGF0dXNfc3Ry
aW5nIjogIlBBU1MiLAorICAgICAgInByb3BlcnRpZXMiOiB7fSwKKyAgICAgICJtZXNzYWdlIjog
bnVsbAorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiSTUgaW5jbHVkZXMgTTU6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlIiwKICAgICAgICJzdGF0dXNfc3RyaW5nIjogIkZBSUwiLAogICAg
ICAgInByb3BlcnRpZXMiOiB7fSwKLSAgICAgICJtZXNzYWdlIjogImFzc2VydF90cnVlOiBPcmln
aW5hbCBpbnRlcmZhY2UgbWl4aW4gc2hvdWxkIGJlIGRlZmluZWQgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UiCisgICAgICAibWVzc2FnZSI6ICJhc3NlcnRfdHJ1ZTogbWVtYmVyIGE1IGlzIHVuaXF1
ZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZSIKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjog
IlBhcnRpYWwgaW50ZXJmYWNlIG1peGluIE0yOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSIsCisg
ICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKKyAgICAgICJwcm9wZXJ0aWVzIjoge30sCisg
ICAgICAibWVzc2FnZSI6IG51bGwKICAgICB9LAogICAgIHsKLSAgICAgICJuYW1lIjogIlBhcnRp
YWwgaW50ZXJmYWNlIG1peGluIEI6IG9yaWdpbmFsIGludGVyZmFjZSBtaXhpbiBkZWZpbmVkIiwK
KyAgICAgICJuYW1lIjogIlBhcnRpYWwgaW50ZXJmYWNlIG1peGluIE0yOiBvcmlnaW5hbCBpbnRl
cmZhY2UgbWl4aW4gZGVmaW5lZCIsCiAgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKICAg
ICAgICJwcm9wZXJ0aWVzIjoge30sCiAgICAgICAibWVzc2FnZSI6IG51bGwKICAgICB9LAogICAg
IHsKLSAgICAgICJuYW1lIjogIlBhcnRpYWwgaW50ZXJmYWNlIG1peGluIEI6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlIiwKKyAgICAgICJuYW1lIjogIlBhcnRpYWwgaW50ZXJmYWNlIG1peGluIE0z
OiBvcmlnaW5hbCBpbnRlcmZhY2UgbWl4aW4gZGVmaW5lZCIsCiAgICAgICAic3RhdHVzX3N0cmlu
ZyI6ICJGQUlMIiwKICAgICAgICJwcm9wZXJ0aWVzIjoge30sCi0gICAgICAibWVzc2FnZSI6ICJh
c3NlcnRfdHJ1ZTogbWVtYmVyIEYgaXMgdW5pcXVlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlIgor
ICAgICAgIm1lc3NhZ2UiOiAiYXNzZXJ0X3RydWU6IE9yaWdpbmFsIGludGVyZmFjZSBtaXhpbiBz
aG91bGQgYmUgZGVmaW5lZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZSIKICAgICB9LAogICAgIHsK
LSAgICAgICJuYW1lIjogIkQgaW5jbHVkZXMgQzogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUiLAor
ICAgICAgIm5hbWUiOiAiUGFydGlhbCBpbnRlcmZhY2UgbWl4aW4gTTQ6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlIiwKICAgICAgICJzdGF0dXNfc3RyaW5nIjogIkZBSUwiLAogICAgICAgInByb3Bl
cnRpZXMiOiB7fSwKLSAgICAgICJtZXNzYWdlIjogImFzc2VydF90cnVlOiBtZW1iZXIgRiBpcyB1
bmlxdWUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UiCisgICAgICAibWVzc2FnZSI6ICJhc3NlcnRf
dHJ1ZTogbWVtYmVyIGE0IGlzIHVuaXF1ZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZSIKKyAgICB9
LAorICAgIHsKKyAgICAgICJuYW1lIjogIlBhcnRpYWwgaW50ZXJmYWNlIG1peGluIE00OiBvcmln
aW5hbCBpbnRlcmZhY2UgbWl4aW4gZGVmaW5lZCIsCisgICAgICAic3RhdHVzX3N0cmluZyI6ICJQ
QVNTIiwKKyAgICAgICJwcm9wZXJ0aWVzIjoge30sCisgICAgICAibWVzc2FnZSI6IG51bGwKICAg
ICB9CiAgIF0sCiAgICJ0eXBlIjogImNvbXBsZXRlIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5j
dGlvbmFsL2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rlc3RfcGFydGlhbF9pbnRlcmZhY2Vfb2Yu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3Vy
Y2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbEludGVyZmFjZS90ZXN0X3Bh
cnRpYWxfaW50ZXJmYWNlX29mLmh0bWwKaW5kZXggZDBlODNhZjk2NjQxMGMwYTZkNDE1MTE5NDhl
NTI2MmM4NGE0N2M0Ni4uNjcxMTk2Y2M1ZGZlZGMyMTQwYWFhY2NlYmNjNmZmMGQ3MTI3ZTM1ZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rl
c3RfcGFydGlhbF9pbnRlcmZhY2Vfb2YuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRs
aGFybmVzcy9JZGxJbnRlcmZhY2UvdGVzdF9wYXJ0aWFsX2ludGVyZmFjZV9vZi5odG1sCkBAIC0z
OSw3ICszOSw3IEBACiAKICAgICAgICAgW0V4cG9zZWQ9KFdvcmtlcildCiAgICAgICAgIHBhcnRp
YWwgaW50ZXJmYWNlIEMge307YCk7Ci0gICAgICBpZGxBcnJheS5jb2xsYXBzZV9wYXJ0aWFscygp
OworICAgICAgaWRsQXJyYXkubWVyZ2VfcGFydGlhbHMoKTsKICAgICB9KSgpOwogCiAgICAgLy8g
SW52YWxpZCBleHBvc3VyZQpAQCAtNTEsNyArNTEsNyBAQAogICAgICAgaWRsQXJyYXkuYWRkX2lk
bHMoYAogICAgICAgICBbRXhwb3NlZD0oRGVkaWNhdGVkV29ya2VyKV0KICAgICAgICAgcGFydGlh
bCBpbnRlcmZhY2UgRCB7fTtgKTsKLSAgICAgIGlkbEFycmF5LmNvbGxhcHNlX3BhcnRpYWxzKCk7
CisgICAgICBpZGxBcnJheS5tZXJnZV9wYXJ0aWFscygpOwogICAgIH0pKCk7CiAKICAgICAvLyBP
cmlnaW5hbCBpcyBhIG5hbWVzcGFjZSwgbm90IGFuIGludGVyZmFjZS4KQEAgLTYwLDE0ICs2MCwx
NCBAQAogICAgICAgaWRsQXJyYXkuYWRkX2lkbHMoYAogICAgICAgICBwYXJ0aWFsIGludGVyZmFj
ZSBFIHt9OwogICAgICAgICBuYW1lc3BhY2UgRSB7fTtgKTsKLSAgICAgIGlkbEFycmF5LmNvbGxh
cHNlX3BhcnRpYWxzKCk7CisgICAgICBpZGxBcnJheS5tZXJnZV9wYXJ0aWFscygpOwogICAgIH0p
KCk7CiAKICAgICAoKCkgPT4gewogICAgICAgY29uc3QgaWRsQXJyYXkgPSBuZXcgSWRsQXJyYXko
KTsKICAgICAgIGlkbEFycmF5LmFkZF9pZGxzKGAKICAgICAgICAgcGFydGlhbCBpbnRlcmZhY2Ug
RiB7fTsKLSAgICAgICAgcGFydGlhbCBpbnRlcmZhY2UgbWl4aW4gR3t9OworICAgICAgICBwYXJ0
aWFsIGludGVyZmFjZSBtaXhpbiBHIHt9OwogICAgICAgYCk7CiAgICAgICBpZGxBcnJheS5hZGRf
ZGVwZW5kZW5jeV9pZGxzKGAKICAgICAgICAgaW50ZXJmYWNlIEYge307CkBAIC04MCwxNyArODAs
MjAgQEAKICAgICAgICAgaW50ZXJmYWNlIEwgOiBGIHt9OwogICAgICAgYCk7CiAgICAgICB0ZXN0
KCgpID0+IHsKKyAgICAgICAgLy8gQ29udmVydCBpZGxBcnJheS5pbmNsdWRlcyBpbnRvIGEgTWFw
IGZyb20gbmFtZSBvZiB0YXJnZXQgaW50ZXJmYWNlIHRvCisgICAgICAgIC8vIG5hbWUgb2YgaW5j
bHVkZWQgbWl4aW4uIChUaGlzIGFzc3VtZXMgZWFjaCBpbnRlcmZhY2UgaW5jbHVkZXMgYXQgbW9z
dAorICAgICAgICAvLyBvbmUgbWl4aW4sIG90aGVyd2lzZSBsYXRlciBpbmNsdWRlcyB3b3VsZCBj
bG9iYmVyIGVhcmxpZXIgb25lcy4pCisgICAgICAgIGNvbnN0IGluY2x1ZGVzID0gbmV3IE1hcChp
ZGxBcnJheS5pbmNsdWRlcy5tYXAoaSA9PiBbaS50YXJnZXQsIGkuaW5jbHVkZXNdKSk7CiAgICAg
ICAgIC8vIEYgaXMgdGVzdGVkLCBzbyBIIGlzIGEgZGVwLgotICAgICAgICBhc3NlcnRfdHJ1ZSgn
RicgaW4gaWRsQXJyYXkuaW5jbHVkZXMsICdGcyBpbmNsdWRlcyBzaG91bGQgYmUgcGlja2VkIHVw
Jyk7Ci0gICAgICAgIGFzc2VydF90cnVlKGlkbEFycmF5LmluY2x1ZGVzLkYuaW5jbHVkZXMoJ0gn
KSwgJ0ggc2hvdWxkIGJlIHBpY2tlZCB1cCcpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGluY2x1
ZGVzLmdldCgnRicpLCAnSCcsICdGIHNob3VsZCBiZSBwaWNrZWQgdXAnKTsKICAgICAgICAgLy8g
SCBpcyBub3QgdGVzdGVkLCBzbyBJIGlzIG5vdCBhIGRlcC4KLSAgICAgICAgYXNzZXJ0X2ZhbHNl
KCdJJyBpbiBpZGxBcnJheS5pbmNsdWRlcywgJ0kgc2hvdWxkIGJlIGlnbm9yZWQnKTsKKyAgICAg
ICAgYXNzZXJ0X2ZhbHNlKGluY2x1ZGVzLmhhcygnSScpLCAnSSBzaG91bGQgYmUgaWdub3JlZCcp
OwogICAgICAgICAvLyBHIGlzIGEgZGVwLCBzbyBKIGlzIGEgZGVwLgotICAgICAgICBhc3NlcnRf
dHJ1ZSgnSicgaW4gaWRsQXJyYXkuaW5jbHVkZXMsICdKIHNob3VsZCBiZSBwaWNrZWQgdXAnKTsK
LSAgICAgICAgLy8gQnV0LCBLIGlzbid0IGEgZGVwIGp1c3QgYmVjYXVzZSBvZiBKLgorICAgICAg
ICBhc3NlcnRfZXF1YWxzKGluY2x1ZGVzLmdldCgnSicpLCAnRycsICdKIHNob3VsZCBiZSBwaWNr
ZWQgdXAnKTsKKyAgICAgICAgLy8gSyBpc24ndCBhIGRlcCBiZWNhdXNlIEogaXNuJ3QgZGVmaW5l
ZC4KICAgICAgICAgYXNzZXJ0X2ZhbHNlKCdLJyBpbiBpZGxBcnJheS5tZW1iZXJzLCAnSyBzaG91
bGQgYmUgaWdub3JlZCcpOwotICAgICAgICAvLyBMIGluaGVyaXRzIEYsIHNvIHNob3VsZCBiZSBw
aWNrZWQgdXAuCi0gICAgICAgIGFzc2VydF9mYWxzZSgnTCcgaW4gaWRsQXJyYXkubWVtYmVycywg
J0wgc2hvdWxkIGJlIHBpY2tlZCB1cCcpOworICAgICAgICAvLyBMIGlzbid0IGEgZGVwIGJlY2F1
c2UgRiBpcyB1bnRlc3RlZC4KKyAgICAgICAgYXNzZXJ0X2ZhbHNlKCdMJyBpbiBpZGxBcnJheS5t
ZW1iZXJzLCAnTCBzaG91bGQgYmUgaWdub3JlZCcpOwogICAgICAgfSwgJ3BhcnRpYWwgbWl4aW4g
ZGVwIGltcGxpY2F0aW9ucycpOwogICAgIH0pKCk7CiAKQEAgLTEwMCw3ICsxMDMsNyBAQAogICAg
ICAgaWRsQXJyYXkuYWRkX2lkbHMoYAogICAgICAgICBpbnRlcmZhY2UgTSB7IGF0dHJpYnV0ZSBh
bnkgQTsgfTsKICAgICAgICAgcGFydGlhbCBpbnRlcmZhY2UgTSB7IGF0dHJpYnV0ZSBhbnkgQTsg
fTtgKTsKLSAgICAgIGlkbEFycmF5LmNvbGxhcHNlX3BhcnRpYWxzKCk7CisgICAgICBpZGxBcnJh
eS5tZXJnZV9wYXJ0aWFscygpOwogICAgIH0pKCk7CiAgIDwvc2NyaXB0PgogICA8c2NyaXB0IHR5
cGU9InRleHQvanNvbiIgaWQ9ImV4cGVjdGVkIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rp
b25hbC9pZGxoYXJuZXNzL0lkbEludGVyZmFjZS90ZXN0X3ByaW1hcnlfaW50ZXJmYWNlX29mLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxJbnRlcmZhY2UvdGVzdF9wcmlt
YXJ5X2ludGVyZmFjZV9vZi5odG1sCmluZGV4IDVjZTQ1N2NhZmQ0ZmFmZTIyN2Q0ZTAwMDg1OWIw
OWI2MDRlOTE0MTUuLmFjNGMwYjAwMGViNjlmY2JhNjVjN2E4YTk3MGNiN2NhOWE0N2JmZmMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbEludGVyZmFjZS90ZXN0
X3ByaW1hcnlfaW50ZXJmYWNlX29mLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhh
cm5lc3MvSWRsSW50ZXJmYWNlL3Rlc3RfcHJpbWFyeV9pbnRlcmZhY2Vfb2YuaHRtbApAQCAtMzQs
MTQgKzM0LDEzIEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuRm9vLnByb3RvdHlwZSwg
ImNvbnN0cnVjdG9yIiwgewogICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSwKICAgICB2YWx1ZTogd2lu
ZG93LkZvbwogICB9KTsKLUZvby5fX3Byb3RvX18gPSBGb29QYXJlbnQ7CitPYmplY3Quc2V0UHJv
dG90eXBlT2YoRm9vLCBGb29QYXJlbnQpOwogRm9vLnByb3RvdHlwZVtTeW1ib2wudG9TdHJpbmdU
YWddID0gIkZvbyI7CiAKIHZhciBpZGxBcnJheSA9IG5ldyBJZGxBcnJheSgpOwogaWRsQXJyYXku
YWRkX3VudGVzdGVkX2lkbHMoImludGVyZmFjZSBGb29QYXJlbnQge307Iik7CiBpZGxBcnJheS5h
ZGRfaWRscygKLSAgICAiW0NvbnN0cnVjdG9yKCldXG4iICsKLSAgICAiaW50ZXJmYWNlIEZvbyA6
IEZvb1BhcmVudCB7fTsiCisgICAgImludGVyZmFjZSBGb28gOiBGb29QYXJlbnQgeyBjb25zdHJ1
Y3RvcigpOyB9OyIKICAgKTsKIGlkbEFycmF5LmFkZF9vYmplY3RzKHsKICAgRm9vOiBbIm5ldyBG
b28oKSJdLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFt
ZXNwYWNlL3Rlc3RfYXR0cmlidXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVz
cy9JZGxOYW1lc3BhY2UvdGVzdF9hdHRyaWJ1dGUuaHRtbAppbmRleCBjYTVlZGY0NzIzZDViNWMy
MDU1YzJmMDI0ZDk1MWU5ODEyNGM4Y2Q5Li45YTA4ZGQ0MDBjMWQyYTI5ZTYwZTNhZjYyNmZlODgz
MzQ3MjE4NTAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxO
YW1lc3BhY2UvdGVzdF9hdHRyaWJ1dGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRs
aGFybmVzcy9JZGxOYW1lc3BhY2UvdGVzdF9hdHRyaWJ1dGUuaHRtbApAQCAtNzEsNiArNzEsMTgg
QEAgaWRsQXJyYXkudGVzdCgpOwogICAgICAgInByb3BlcnRpZXMiOiB7fSwKICAgICAgICJtZXNz
YWdlIjogbnVsbAogICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZm9vIG5hbWVzcGFjZTog
aGFzIG5vIGxlbmd0aCBwcm9wZXJ0eSIsCisgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwK
KyAgICAgICJwcm9wZXJ0aWVzIjoge30sCisgICAgICAibWVzc2FnZSI6IG51bGwKKyAgICB9LAor
ICAgIHsKKyAgICAgICJuYW1lIjogImZvbyBuYW1lc3BhY2U6IGhhcyBubyBuYW1lIHByb3BlcnR5
IiwKKyAgICAgICJzdGF0dXNfc3RyaW5nIjogIlBBU1MiLAorICAgICAgInByb3BlcnRpZXMiOiB7
fSwKKyAgICAgICJtZXNzYWdlIjogbnVsbAorICAgIH0sCiAgICAgewogICAgICAgIm5hbWUiOiAi
Zm9vIG5hbWVzcGFjZTogYXR0cmlidXRlIHRydXRoIiwKICAgICAgICJzdGF0dXNfc3RyaW5nIjog
IlBBU1MiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFt
ZXNwYWNlL3Rlc3Rfb3BlcmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVz
cy9JZGxOYW1lc3BhY2UvdGVzdF9vcGVyYXRpb24uaHRtbAppbmRleCA2MGQ3ZDQ3YzllZWE2NGE4
MWQ1MzlhZmE2ZmQzYWNkNzI1ODFjMDBiLi42Nzk4ZmU4Y2ZjNjc3M2QxMjFjOWNiZGMxZTU1OWZj
YTQzNGFjNzU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxO
YW1lc3BhY2UvdGVzdF9vcGVyYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRs
aGFybmVzcy9JZGxOYW1lc3BhY2UvdGVzdF9vcGVyYXRpb24uaHRtbApAQCAtNTgsMTMgKzU4LDEz
IEBAIHZhciBpZGxBcnJheSA9IG5ldyBJZGxBcnJheSgpOwogaWRsQXJyYXkuYWRkX2lkbHMoYAog
W0V4cG9zZWQ9V2luZG93XQogbmFtZXNwYWNlIGZvbyB7Ci0gIHZvaWQgVHJ1dGgoKTsKLSAgdm9p
ZCBMaWVzKCk7CisgIHVuZGVmaW5lZCBUcnV0aCgpOworICB1bmRlZmluZWQgTGllcygpOwogfTsK
IFtFeHBvc2VkPVdpbmRvd10KIG5hbWVzcGFjZSBiYXIgewogICBbTGVnYWN5VW5mb3JnZWFibGVd
Ci0gIHZvaWQgVHJ1dGgoKTsKKyAgdW5kZWZpbmVkIFRydXRoKCk7CiB9OwogW0V4cG9zZWQ9V2lu
ZG93XQogbmFtZXNwYWNlIGJheiB7CkBAIC0xMTAsNiArMTEwLDE4IEBAIGlkbEFycmF5LnRlc3Qo
KTsKICAgICAgICJwcm9wZXJ0aWVzIjoge30sCiAgICAgICAibWVzc2FnZSI6IG51bGwKICAgICB9
LAorICAgIHsKKyAgICAgICJuYW1lIjogImZvbyBuYW1lc3BhY2U6IGhhcyBubyBsZW5ndGggcHJv
cGVydHkiLAorICAgICAgInN0YXR1c19zdHJpbmciOiAiUEFTUyIsCisgICAgICAicHJvcGVydGll
cyI6IHt9LAorICAgICAgIm1lc3NhZ2UiOiBudWxsCisgICAgfSwKKyAgICB7CisgICAgICAibmFt
ZSI6ICJmb28gbmFtZXNwYWNlOiBoYXMgbm8gbmFtZSBwcm9wZXJ0eSIsCisgICAgICAic3RhdHVz
X3N0cmluZyI6ICJQQVNTIiwKKyAgICAgICJwcm9wZXJ0aWVzIjoge30sCisgICAgICAibWVzc2Fn
ZSI6IG51bGwKKyAgICB9LAogICAgIHsKICAgICAgICJuYW1lIjogImZvbyBuYW1lc3BhY2U6IG9w
ZXJhdGlvbiBUcnV0aCgpIiwKICAgICAgICJzdGF0dXNfc3RyaW5nIjogIlBBU1MiLApAQCAtMTIy
LDcgKzEzNCw2IEBAIGlkbEFycmF5LnRlc3QoKTsKICAgICAgICJwcm9wZXJ0aWVzIjoge30sCiAg
ICAgICAibWVzc2FnZSI6ICJhc3NlcnRfb3duX3Byb3BlcnR5OiBuYW1lc3BhY2Ugb2JqZWN0IG1p
c3Npbmcgb3BlcmF0aW9uIFwiTGllc1wiIGV4cGVjdGVkIHByb3BlcnR5IFwiTGllc1wiIG1pc3Np
bmciCiAgICAgfSwKLQogICAgIHsKICAgICAgICJuYW1lIjogImJhciBuYW1lc3BhY2U6IGV4dGVu
ZGVkIGF0dHJpYnV0ZXMiLAogICAgICAgInN0YXR1c19zdHJpbmciOiAiUEFTUyIsCkBAIC0xNTMs
NiArMTY0LDE4IEBAIGlkbEFycmF5LnRlc3QoKTsKICAgICAgICJwcm9wZXJ0aWVzIjoge30sCiAg
ICAgICAibWVzc2FnZSI6IG51bGwKICAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImJhciBu
YW1lc3BhY2U6IGhhcyBubyBsZW5ndGggcHJvcGVydHkiLAorICAgICAgInN0YXR1c19zdHJpbmci
OiAiUEFTUyIsCisgICAgICAicHJvcGVydGllcyI6IHt9LAorICAgICAgIm1lc3NhZ2UiOiBudWxs
CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJiYXIgbmFtZXNwYWNlOiBoYXMgbm8gbmFt
ZSBwcm9wZXJ0eSIsCisgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKKyAgICAgICJwcm9w
ZXJ0aWVzIjoge30sCisgICAgICAibWVzc2FnZSI6IG51bGwKKyAgICB9LAogICAgIHsKICAgICAg
ICJuYW1lIjogImJhciBuYW1lc3BhY2U6IG9wZXJhdGlvbiBUcnV0aCgpIiwKICAgICAgICJzdGF0
dXNfc3RyaW5nIjogIlBBU1MiLApAQCAtMTkwLDYgKzIxMywxOCBAQCBpZGxBcnJheS50ZXN0KCk7
CiAgICAgICAicHJvcGVydGllcyI6IHt9LAogICAgICAgIm1lc3NhZ2UiOiBudWxsCiAgICAgfSwK
KyAgICB7CisgICAgICAibmFtZSI6ICJiYXogbmFtZXNwYWNlOiBoYXMgbm8gbGVuZ3RoIHByb3Bl
cnR5IiwKKyAgICAgICJzdGF0dXNfc3RyaW5nIjogIlBBU1MiLAorICAgICAgInByb3BlcnRpZXMi
OiB7fSwKKyAgICAgICJtZXNzYWdlIjogbnVsbAorICAgIH0sCisgICAgeworICAgICAgIm5hbWUi
OiAiYmF6IG5hbWVzcGFjZTogaGFzIG5vIG5hbWUgcHJvcGVydHkiLAorICAgICAgInN0YXR1c19z
dHJpbmciOiAiUEFTUyIsCisgICAgICAicHJvcGVydGllcyI6IHt9LAorICAgICAgIm1lc3NhZ2Ui
OiBudWxsCisgICAgfSwKICAgICB7CiAgICAgICAibmFtZSI6ICJiYXogbmFtZXNwYWNlOiBvcGVy
YXRpb24gTG9uZ1N0b3J5KGFueSwgRE9NU3RyaW5nLi4uKSIsCiAgICAgICAic3RhdHVzX3N0cmlu
ZyI6ICJQQVNTIiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lk
bE5hbWVzcGFjZS90ZXN0X3BhcnRpYWxfbmFtZXNwYWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9u
YWwvaWRsaGFybmVzcy9JZGxOYW1lc3BhY2UvdGVzdF9wYXJ0aWFsX25hbWVzcGFjZS5odG1sCmlu
ZGV4IGMzMjdhOGIwMDFkMjdlNTQyYjZiNWE4NThhMDQwMGEwNDJiM2QzZjcuLmM2OGFkZmE5NDE3
NzNkZDBjNDdlZDNhNzU4MTI1MTNlOGM4NzQ4MjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rp
b25hbC9pZGxoYXJuZXNzL0lkbE5hbWVzcGFjZS90ZXN0X3BhcnRpYWxfbmFtZXNwYWNlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJj
ZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFtZXNwYWNlL3Rlc3RfcGFy
dGlhbF9uYW1lc3BhY2UuaHRtbApAQCAtNDAsNyArNDAsNyBAQAogCiAgICAgICAgIFtFeHBvc2Vk
PShXb3JrZXIpXQogICAgICAgICBwYXJ0aWFsIG5hbWVzcGFjZSBDIHt9O2ApOwotICAgICAgaWRs
QXJyYXkuY29sbGFwc2VfcGFydGlhbHMoKTsKKyAgICAgIGlkbEFycmF5Lm1lcmdlX3BhcnRpYWxz
KCk7CiAgICAgfSkoKTsKIAogICAgIC8vIEludmFsaWQgZXhwb3N1cmUKQEAgLTUyLDcgKzUyLDcg
QEAKICAgICAgIGlkbEFycmF5LmFkZF9pZGxzKGAKICAgICAgICAgW0V4cG9zZWQ9KERlZGljYXRl
ZFdvcmtlcildCiAgICAgICAgIHBhcnRpYWwgbmFtZXNwYWNlIEQge307YCk7Ci0gICAgICBpZGxB
cnJheS5jb2xsYXBzZV9wYXJ0aWFscygpOworICAgICAgaWRsQXJyYXkubWVyZ2VfcGFydGlhbHMo
KTsKICAgICB9KSgpOwogCiAgICAgLy8gT3JpZ2luYWwgaXMgYW4gaW50ZXJmYWNlLCBub3QgYSBu
YW1lc3BhY2UuCkBAIC02MSw3ICs2MSw3IEBACiAgICAgICBpZGxBcnJheS5hZGRfaWRscyhgCiAg
ICAgICAgIHBhcnRpYWwgbmFtZXNwYWNlIEUge307CiAgICAgICAgIGludGVyZmFjZSBFIHt9O2Ap
OwotICAgICAgaWRsQXJyYXkuY29sbGFwc2VfcGFydGlhbHMoKTsKKyAgICAgIGlkbEFycmF5Lm1l
cmdlX3BhcnRpYWxzKCk7CiAgICAgfSkoKTsKICAgPC9zY3JpcHQ+CiAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qc29uIiBpZD0iZXhwZWN0ZWQiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFs
L3NldHVwLWZ1bmN0aW9uLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9zZXR1cC1mdW5j
dGlvbi13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODJjMTQ1NmFhNjQ0NzI2NzM2MWQ4Y2M4OWUyODg0
MGZjNDkxM2I0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9zZXR1cC1m
dW5jdGlvbi13b3JrZXIuanMKQEAgLTAsMCArMSwxNCBAQAoraW1wb3J0U2NyaXB0cygiL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyIpOworCisvLyBSZWdyZXNzaW9uIHRlc3QgZm9yIGh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8yNzI5OSwKKy8vIHdoZXJl
IHdlIGJyb2tlIHRoZSBhYmlsaXR5IGZvciBhIHNldHVwIGZ1bmN0aW9uIGluIGEgd29ya2VyIHRv
IGNvbnRhaW4gYW4KKy8vIGFzc2VydGlvbiAoZXZlbiBhIHBhc3Npbmcgb25lKS4KK3NldHVwKGZ1
bmN0aW9uKCkgeworICAgIGFzc2VydF90cnVlKHRydWUsICJUcnVlIGlzIHRydWUiKTsKK30pOwor
CisvLyBXZSBtdXN0IGRlZmluZSBhdCBsZWFzdCBvbmUgdGVzdCBmb3IgdGhlIGhhcm5lc3MsIHRo
b3VnaCBpdCBpcyBub3Qgd2hhdCB3ZQorLy8gYXJlIHRlc3RpbmcgaGVyZS4KK3Rlc3QoZnVuY3Rp
b24oKSB7CisgICAgYXNzZXJ0X2ZhbHNlKGZhbHNlLCAiRmFsc2UgaXMgZmFsc2UiKTsKK30sICdX
b3JrZXIgdGVzdCcpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL3NldHVwLXdvcmtl
ci1zZXJ2aWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvc2V0dXAtd29ya2VyLXNlcnZpY2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kZDlkOWY1NGUwNzczZTQ1Y2RjZmE2ZmZkY2FmMGNkNWQyOTQ5Y2Qy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL3NldHVwLXdvcmtlci1zZXJ2
aWNlLmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgbmFtZT0idmFyaWFudCIgY29udGVudD0iP2tlZXAtcHJvbWlzZSI+Cis8dGl0bGU+
U2V0dXAgZnVuY3Rpb24gaW4gYSBzZXJ2aWNlIHdvcmtlcjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vdmFyaWFudHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U2V0dXAgZnVuY3Rp
b24gaW4gYSBzZXJ2aWNlIHdvcmtlcjwvaDE+Cis8cD5UaGlzIHRlc3QgYXNzdW1lcyB0aGF0IHRo
ZSBicm93c2VyIHN1cHBvcnRzIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3NlcnZpY2Ut
d29ya2Vycy8iPlNlcnZpY2VXb3JrZXJzPC9hPi4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CisKKzxz
Y3JpcHQ+Cit0ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBhc3NlcnRfdHJ1ZSgic2VydmljZVdvcmtl
ciIgaW4gbmF2aWdhdG9yLAorICAgICAgICAgICAgICAgICJuYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ciBleGlzdHMiKTsKK30sICJCcm93c2VyIHN1cHBvcnRzIFNlcnZpY2VXb3JrZXIiKTsKKworcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKCkgeworICAgIC8vIFNpbmNlIHRoZSBzZXJ2aWNlIHdvcmtlciBy
ZWdpc3RyYXRpb24gY291bGQgYmUgaW4gYW4gaW5kZXRlcm1pbmF0ZQorICAgIC8vIHN0YXRlIChk
dWUgdG8sIGZvciBleGFtcGxlLCBhIHByZXZpb3VzIHRlc3QgcnVuIGZhaWxpbmcpLCB3ZSBzdGFy
dCBieQorICAgIC8vIHVucmVnc3RlcmluZyBvdXIgc2VydmljZSB3b3JrZXIgYW5kIHRoZW4gcmVn
aXN0ZXJpbmcgaXQgYWdhaW4uCisgICAgdmFyIHNjb3BlID0gInNlcnZpY2Utd29ya2VyLXNjb3Bl
IjsKKyAgICB2YXIgd29ya2VyX3VybCA9ICJzZXR1cC1mdW5jdGlvbi13b3JrZXIuanMiOworCisg
ICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHdvcmtlcl91cmwsIHtz
Y29wZTogc2NvcGV9KQorICAgICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKKyAg
ICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICB9KS50
aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29y
a2VyLnJlZ2lzdGVyKHdvcmtlcl91cmwsIHtzY29wZTogc2NvcGV9KTsKKyAgICAgICAgfSkudGhl
bihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKKyAgICAgICAgICAgIGFkZF9jb21wbGV0aW9uX2Nh
bGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbi51bnJlZ2lz
dGVyKCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNl
KGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgICAgICAgICByZWdpc3RyYXRpb24uYWRkRXZl
bnRMaXN0ZW5lcigidXBkYXRlZm91bmQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgcmVzb2x2ZShyZWdpc3RyYXRpb24uaW5zdGFsbGluZyk7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbih3b3JrZXIpIHsKKyAg
ICAgICAgICAgIGZldGNoX3Rlc3RzX2Zyb21fd29ya2VyKHdvcmtlcik7CisgICAgICAgIH0pOwor
fSwgIlJlZ2lzdGVyIFNlcnZpY2VXb3JrZXIiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0
ZXh0L2pzb24iIGlkPSJleHBlY3RlZCI+Cit7CisgICJzdW1tYXJpemVkX3N0YXR1cyI6IHsKKyAg
ICAic3RhdHVzX3N0cmluZyI6ICJPSyIsCisgICAgIm1lc3NhZ2UiOiBudWxsCisgIH0sCisgICJz
dW1tYXJpemVkX3Rlc3RzIjogWworICAgIHsKKyAgICAgICJzdGF0dXNfc3RyaW5nIjogIlBBU1Mi
LAorICAgICAgIm5hbWUiOiAiQnJvd3NlciBzdXBwb3J0cyBTZXJ2aWNlV29ya2VyIiwKKyAgICAg
ICJwcm9wZXJ0aWVzIjoge30sCisgICAgICAibWVzc2FnZSI6IG51bGwKKyAgICB9LAorICAgIHsK
KyAgICAgICJtZXNzYWdlIjogbnVsbCwKKyAgICAgICJuYW1lIjogIlJlZ2lzdGVyIFNlcnZpY2VX
b3JrZXIiLAorICAgICAgInByb3BlcnRpZXMiOiB7fSwKKyAgICAgICJzdGF0dXNfc3RyaW5nIjog
IlBBU1MiCisgICAgfSwKKyAgICB7CisgICAgICAibWVzc2FnZSI6IG51bGwsCisgICAgICAibmFt
ZSI6ICJXb3JrZXIgdGVzdCIsCisgICAgICAicHJvcGVydGllcyI6IHt9LAorICAgICAgInN0YXR1
c19zdHJpbmciOiAiUEFTUyIKKyAgICB9CisgIF0sCisgICJzdW1tYXJpemVkX2Fzc2VydHMiOiBb
CisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90cnVlIiwKKyAgICAgICJ0ZXN0
IjogIkJyb3dzZXIgc3VwcG9ydHMgU2VydmljZVdvcmtlciIsCisgICAgICAiYXJncyI6IFsKKyAg
ICAgICAgInRydWUiLAorICAgICAgICAiXCJuYXZpZ2F0b3Iuc2VydmljZVdvcmtlciBleGlzdHNc
IiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0KKyAgXSwKKyAgInR5cGUiOiAi
Y29tcGxldGUiCit9Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVu
Y3Rpb25hbC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC93M2MtaW1wb3J0Lmxv
ZwppbmRleCAxMmI4MGMxMzA0ODZhMzM4YmRjNjY4NzdlNTVlOGZlOWJkMWM1NDg1Li5hMDZjM2E1
MjgwZDYyMzhiMWI4OTJhNThkNzAxZmQ4OWRiMDIxMGQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1
bmN0aW9uYWwvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL3czYy1pbXBv
cnQubG9nCkBAIC00Miw2ICs0Miw4IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlv
bmFsL3Byb21pc2Utd2l0aC1zeW5jLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvcHJvbWlzZS5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJj
ZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL3F1ZXVlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwv
c2V0dXAtZnVuY3Rpb24td29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL3NldHVwLXdvcmtl
ci1zZXJ2aWNlLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvc2luZ2xlLXBhZ2UtdGVzdC1mYWls
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291
cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvc2luZ2xlLXBhZ2UtdGVzdC1uby1hc3NlcnRpb25z
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291
cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvc2luZ2xlLXBhZ2UtdGVzdC1uby1ib2R5Lmh0bWwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxBcnJheS9pc19qc29uX3R5cGUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qv
dGVzdHMvdW5pdC9JZGxBcnJheS9pc19qc29uX3R5cGUuaHRtbAppbmRleCBhYjA2OGIyOWNhYzBk
NzA4MzQ3MWQ1ZDUyNWZiNGMyNzEyNGQ5Zjc3Li5iZDg5YzkxMTEwZDg3ZmVjZmJlNTZmNjM5ZjM2
ZDgzYTUzYmRiZmY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsQXJyYXkvaXNfanNvbl90
eXBlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEFycmF5L2lzX2pzb25fdHlwZS5odG1sCkBA
IC0xMzEsMTUgKzEzMSwxMCBAQAogICAgIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgICAgIHZhciBp
ZGwgPSBuZXcgSWRsQXJyYXkoKTsKICAgICAgICAgaWRsLmFkZF91bnRlc3RlZF9pZGxzKCdpbnRl
cmZhY2UgRm9vIHsgfTsgaW50ZXJmYWNlIG1peGluIEJhciB7IERPTVN0cmluZyB0b0pTT04oKTsg
fTsgRm9vIGluY2x1ZGVzIEJhcjsnKTsKKyAgICAgICAgaWRsLm1lcmdlX21peGlucygpOwogICAg
ICAgICBhc3NlcnRfdHJ1ZShpZGwuaXNfanNvbl90eXBlKHR5cGVGcm9tKCJGb28iKSkpOwogICAg
IH0sICdzaG91bGQgcmV0dXJuIHRydWUgZm9yIGludGVyZmFjZXMgd2hpY2ggbWl4aW4gYW4gaW50
ZXJmYWNlIHdoaWNoIGRlY2xhcmUgYSB0b0pTT04gb3BlcmF0aW9uJyk7CiAKLS8vICAgIHRlc3Qo
ZnVuY3Rpb24oKSB7Ci0vLyAgICAgICAgdmFyIGlkbCA9IG5ldyBJZGxBcnJheSgpOwotLy8gICAg
ICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEZvbyB7IH07IGludGVyZmFjZSBC
YXIgeyB9OyBpbnRlcmZhY2UgQmF6IHsgRE9NU3RyaW5nIHRvSlNPTigpOyB9OyBGb28gaW1wbGVt
ZW50cyBCYXI7IEJhciBpbXBsZW1lbnRzIEJhejsnKTsKLS8vICAgICAgICBhc3NlcnRfdHJ1ZShp
ZGwuaXNfanNvbl90eXBlKHR5cGVGcm9tKCJGb28iKSkpOwotLy8gICAgfSwgJ3Nob3VsZCByZXR1
cm4gdHJ1ZSBmb3IgaW50ZXJmYWNlcyB3aGljaCBtaXhpbiBhbiBpbnRlcmZhY2Ugd2hpY2ggaXRz
ZWxmIG1peGVzIGluIGFuIGludGVyZmFjZSB3aGljaCBkZWNsYXJlcyBhIHRvSlNPTiBvcGVyYXRp
b24nKTsKLQogICAgIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgICAgIHZhciBpZGwgPSBuZXcgSWRs
QXJyYXkoKTsKICAgICAgICAgaWRsLmFkZF91bnRlc3RlZF9pZGxzKCdpbnRlcmZhY2UgRm9vIHsg
fTsnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxEaWN0aW9uYXJ5L2dldF9pbmhlcml0
YW5jZV9zdGFjay5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbERpY3Rpb25hcnkvZ2V0X2luaGVyaXRh
bmNlX3N0YWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA1MjU5MmRkNDYw
N2RiZGE2Y2MxNzYwMzI0OWEzOGFkNTNiNDBjOWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbERpY3Rpb25hcnkvZ2V0X2luaGVy
aXRhbmNlX3N0YWNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi08IURPQ1RZ
UEUgSFRNTD4KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+SWRsRGljdGlvbmFyeS5wcm90b3R5cGUu
Z2V0X2luaGVyaXRhbmNlX3N0YWNrKCk8L3RpdGxlPgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlk
PSJsb2ciPjwvZGl2PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL2lkbGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2lkbC1oZWxwZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSAg
ICAidXNlIHN0cmljdCI7Ci0gICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHN0YWNr
ID0gZGljdGlvbmFyeUZyb20oJ2RpY3Rpb25hcnkgQSB7IH07JykuZ2V0X2luaGVyaXRhbmNlX3N0
YWNrKCk7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc3RhY2subWFwKGQgPT4gZC5uYW1l
KSwgWyJBIl0pOwotICAgIH0sICdzaG91bGQgcmV0dXJuIGFuIGFycmF5IHRoYXQgaW5jbHVkZXMg
aXRzZWxmLicpOwotCi0gICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGQgPSBkaWN0
aW9uYXJ5RnJvbSgnZGljdGlvbmFyeSBBIDogQiB7IH07Jyk7Ci0gICAgICAgIGFzc2VydF90aHJv
d3NfanMoRXJyb3IsIF8gPT4gZC5nZXRfaW5oZXJpdGFuY2Vfc3RhY2soKSk7Ci0gICAgfSwgInNo
b3VsZCB0aHJvdyBmb3IgZGljdGlvbmFyaWVzIHdoaWNoIGluaGVyaXQgZnJvbSBhbm90aGVyIGRp
Y3Rpb25hcnkgd2hpY2ggd2Fzbid0IGFkZGVkIHRvIHRoZSBJZGxBcnJheSIpOwotCi0gICAgdGVz
dChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGlkbCA9IG5ldyBJZGxBcnJheSgpOwotICAgICAg
ICBpZGwuYWRkX2lkbHMoJ2RpY3Rpb25hcnkgQSA6IEIgeyB9OycpOwotICAgICAgICBpZGwuYWRk
X3VudGVzdGVkX2lkbHMoJ2RpY3Rpb25hcnkgQiA6IEMgeyB9OyBkaWN0aW9uYXJ5IEMgeyB9Oycp
OwotICAgICAgICB2YXIgQSA9IGlkbC5tZW1iZXJzWyJBIl07Ci0gICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoQS5nZXRfaW5oZXJpdGFuY2Vfc3RhY2soKS5tYXAoZCA9PiBkLm5hbWUpLCBbIkEi
LCAiQiIsICJDIl0pOwotICAgIH0sICdzaG91bGQgcmV0dXJuIGFuIGFycmF5IG9mIGluaGVyaXRl
ZCBkaWN0aW9uYXJpZXMgaW4gb3JkZXIgb2YgaW5oZXJpdGFuY2UsIHN0YXJ0aW5nIHdpdGggaXRz
ZWxmLicpOwotCi0gICAgdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgICBsZXQgaSA9IG5ldyBJZGxB
cnJheSgpOwotICAgICAgaS5hZGRfdW50ZXN0ZWRfaWRscygnZGljdGlvbmFyeSBBIDogQiB7fTsn
KTsKLSAgICAgIGkuYXNzZXJ0X3Rocm93cyhuZXcgSWRsSGFybmVzc0Vycm9yKCdBIGluaGVyaXRz
IEIsIGJ1dCBCIGlzIHVuZGVmaW5lZC4nKSwgaSA9PiBpLnRlc3QoKSk7Ci0gICAgfSwgJ0EgOiBC
IHdpdGggQiB1bmRlY2xhcmVkIHNob3VsZCB0aHJvdyBJZGxIYXJuZXNzRXJyb3InKTsKLQotICAg
IHRlc3QoZnVuY3Rpb24gKCkgewotICAgICAgbGV0IGkgPSBuZXcgSWRsQXJyYXkoKTsKLSAgICAg
IGkuYWRkX3VudGVzdGVkX2lkbHMoJ2RpY3Rpb25hcnkgQSA6IEIge307Jyk7Ci0gICAgICBpLmFk
ZF91bnRlc3RlZF9pZGxzKCdpbnRlcmZhY2UgQiB7fTsnKTsKLSAgICAgIGkuYXNzZXJ0X3Rocm93
cyhuZXcgSWRsSGFybmVzc0Vycm9yKCdBIGluaGVyaXRzIEIsIGJ1dCBBIGlzIG5vdCBhbiBpbnRl
cmZhY2UuJyksIGkgPT4gaS50ZXN0KCkpOwotICAgIH0sICdkaWN0aW9uYXJ5IEEgOiBCIHdpdGgg
QiBpbnRlcmZhY2Ugc2hvdWxkIHRocm93IElkbEhhcm5lc3NFcnJvcicpOwotPC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsRGljdGlvbmFyeS9n
ZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjay5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbERpY3Rp
b25hcnkvZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MThi
Y2RlYzkyYWMyMjgyMmVmNzNiOWM0MjQ5ZTgwY2M2YWNlNmI3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dC90ZXN0cy91bml0L0lkbERpY3Rpb25hcnkvZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2su
aHRtbApAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8
dGl0bGU+SWRsRGljdGlvbmFyeS5wcm90b3R5cGUuZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3Rh
Y2soKTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvaWRsaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
aWRsLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgICJ1c2Ugc3RyaWN0IjsKKyAg
ICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgc3RhY2sgPSBkaWN0aW9uYXJ5RnJvbSgn
ZGljdGlvbmFyeSBBIHsgfTsnKS5nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjaygpOworICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHN0YWNrLm1hcChkID0+IGQubmFtZSksIFsiQSJdKTsK
KyAgICB9LCAnc2hvdWxkIHJldHVybiBhbiBhcnJheSB0aGF0IGluY2x1ZGVzIGl0c2VsZi4nKTsK
KworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBkID0gZGljdGlvbmFyeUZyb20o
J2RpY3Rpb25hcnkgQSA6IEIgeyB9OycpOworICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKEVycm9y
LCBfID0+IGQuZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2soKSk7CisgICAgfSwgInNob3Vs
ZCB0aHJvdyBmb3IgZGljdGlvbmFyaWVzIHdoaWNoIGluaGVyaXQgZnJvbSBhbm90aGVyIGRpY3Rp
b25hcnkgd2hpY2ggd2Fzbid0IGFkZGVkIHRvIHRoZSBJZGxBcnJheSIpOworCisgICAgdGVzdChm
dW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGlkbCA9IG5ldyBJZGxBcnJheSgpOworICAgICAgICBp
ZGwuYWRkX2lkbHMoJ2RpY3Rpb25hcnkgQSA6IEIgeyB9OycpOworICAgICAgICBpZGwuYWRkX3Vu
dGVzdGVkX2lkbHMoJ2RpY3Rpb25hcnkgQiA6IEMgeyB9OyBkaWN0aW9uYXJ5IEMgeyB9OycpOwor
ICAgICAgICB2YXIgQSA9IGlkbC5tZW1iZXJzWyJBIl07CisgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoQS5nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjaygpLm1hcChkID0+IGQubmFtZSks
IFsiQyIsICJCIiwgIkEiXSk7CisgICAgfSwgJ3Nob3VsZCByZXR1cm4gYW4gYXJyYXkgb2YgZGlj
dGlvbmFyaWVzIGluIG9yZGVyIG9mIGluaGVyaXRhbmNlLCBzdGFydGluZyB3aXRoIHRoZSBiYXNl
IGRpY3Rpb25hcnknKTsKKworICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgbGV0IGkgPSBu
ZXcgSWRsQXJyYXkoKTsKKyAgICAgIGkuYWRkX3VudGVzdGVkX2lkbHMoJ2RpY3Rpb25hcnkgQSA6
IEIge307Jyk7CisgICAgICBpLmFzc2VydF90aHJvd3MobmV3IElkbEhhcm5lc3NFcnJvcignQSBp
bmhlcml0cyBCLCBidXQgQiBpcyB1bmRlZmluZWQuJyksIGkgPT4gaS50ZXN0KCkpOworICAgIH0s
ICdBIDogQiB3aXRoIEIgdW5kZWNsYXJlZCBzaG91bGQgdGhyb3cgSWRsSGFybmVzc0Vycm9yJyk7
CisKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgIGxldCBpID0gbmV3IElkbEFycmF5KCk7
CisgICAgICBpLmFkZF91bnRlc3RlZF9pZGxzKCdkaWN0aW9uYXJ5IEEgOiBCIHt9OycpOworICAg
ICAgaS5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEIge307Jyk7CisgICAgICBpLmFzc2Vy
dF90aHJvd3MobmV3IElkbEhhcm5lc3NFcnJvcignQSBpbmhlcml0cyBCLCBidXQgQSBpcyBub3Qg
YW4gaW50ZXJmYWNlLicpLCBpID0+IGkudGVzdCgpKTsKKyAgICB9LCAnZGljdGlvbmFyeSBBIDog
QiB3aXRoIEIgaW50ZXJmYWNlIHNob3VsZCB0aHJvdyBJZGxIYXJuZXNzRXJyb3InKTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbERpY3Rp
b25hcnkvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsRGljdGlvbmFyeS93M2MtaW1w
b3J0LmxvZwppbmRleCAwNGI3ZjkxMTVmM2UxYmZkYWM2ZmE5Mjk4N2IxZGRmZTg4MDJkZTQzLi5i
YWUwNGNjYTc2ZDU4YTMwMmRhYThjNmM0OTdkNWJhZjE4YmE0ODJlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rl
c3RzL3VuaXQvSWRsRGljdGlvbmFyeS93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQv
SWRsRGljdGlvbmFyeS93M2MtaW1wb3J0LmxvZwpAQCAtMTQsNSArMTQsNSBAQCBQcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsRGljdGlvbmFyeS9nZXRfaW5oZXJpdGFu
Y2Vfc3RhY2suaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxEaWN0aW9uYXJ5L2dldF9yZXZlcnNlX2lu
aGVyaXRhbmNlX3N0YWNrLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsRGljdGlvbmFyeS90ZXN0X3Bh
cnRpYWxfZGljdGlvbmFyeS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJm
YWNlL2NvbnN0cnVjdG9ycy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9jb25zdHJ1
Y3RvcnMuaHRtbAppbmRleCA5M2NjN2Y0MmNjNTU4OGY3ZjhmMGNiNGNmY2RiNDU3MzFkZGNmOGE5
Li5lOWVlM2Y4NjgwYWMxYjcyMTRhMzRiMjgxNDUyMjQzMmI1NTRkNDg1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0
L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2NvbnN0cnVjdG9ycy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMv
dW5pdC9JZGxJbnRlcmZhY2UvY29uc3RydWN0b3JzLmh0bWwKQEAgLTgsOSArOCwxMCBAQAogPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2lkbC1oZWxwZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KICJ1
c2Ugc3RyaWN0IjsKKy8vIFtDb25zdHJ1Y3Rvcl0gZXh0ZW5kZWQgYXR0cmlidXRlIHNob3VsZCBu
b3QgYmUgc3VwcG9ydGVkOgogdGVzdChmdW5jdGlvbigpIHsKICAgICB2YXIgaSA9IGludGVyZmFj
ZUZyb20oJ1tDb25zdHJ1Y3Rvcl0gaW50ZXJmYWNlIEEgeyB9OycpOwotICAgIGFzc2VydF9lcXVh
bHMoaS5jb25zdHJ1Y3RvcnMoKS5sZW5ndGgsIDEpOworICAgIGFzc2VydF9lcXVhbHMoaS5jb25z
dHJ1Y3RvcnMoKS5sZW5ndGgsIDApOwogfSwgJ0ludGVyZmFjZSB3aXRoIENvbnN0cnVjdG9yIGV4
dGVuZGVkIGF0dHJpYnV0ZS4nKTsKIAogdGVzdChmdW5jdGlvbigpIHsKQEAgLTE5LDcgKzIwLDcg
QEAgdGVzdChmdW5jdGlvbigpIHsKIH0sICdJbnRlcmZhY2Ugd2l0aCBjb25zdHJ1Y3RvciBtZXRo
b2QnKTsKIAogdGVzdChmdW5jdGlvbigpIHsKLSAgICB2YXIgaSA9IGludGVyZmFjZUZyb20oJ1tD
b25zdHJ1Y3Rvcl0gaW50ZXJmYWNlIEEgeyBjb25zdHJ1Y3RvcigpOyB9OycpOworICAgIHZhciBp
ID0gaW50ZXJmYWNlRnJvbSgnaW50ZXJmYWNlIEEgeyBjb25zdHJ1Y3RvcigpOyBjb25zdHJ1Y3Rv
cihhbnkgdmFsdWUpOyB9OycpOwogICAgIGFzc2VydF9lcXVhbHMoaS5jb25zdHJ1Y3RvcnMoKS5s
ZW5ndGgsIDIpOwotfSwgJ0ludGVyZmFjZSB3aXRoIGJvdGgnKTsKK30sICdJbnRlcmZhY2Ugd2l0
aCBjb25zdHJ1Y3RvciBvdmVybG9hZHMnKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0
cy91bml0L0lkbEludGVyZmFjZS9kZWZhdWx0X3RvX2pzb25fb3BlcmF0aW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rl
c3RzL3VuaXQvSWRsSW50ZXJmYWNlL2RlZmF1bHRfdG9fanNvbl9vcGVyYXRpb24uaHRtbAppbmRl
eCBlMDNlYThiMDM4NzRjZTdhY2ZmZGM3ODQ2M2FiN2NmMzNhZDIyNmQwLi41YWRlN2QwZDI4MmEz
NDZkZTZiMWYwNTQ0NTdmNDMxMzc0ODQzNzc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRs
SW50ZXJmYWNlL2RlZmF1bHRfdG9fanNvbl9vcGVyYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3Vu
aXQvSWRsSW50ZXJmYWNlL2RlZmF1bHRfdG9fanNvbl9vcGVyYXRpb24uaHRtbApAQCAtMTAsNDQg
KzEwLDYgQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9pZGwtaGVscGVyLmpzIj48L3NjcmlwdD4KLTxwcmUgaWQ9ZnJh
Z21lbnRzPgotICAgIGludGVyZmFjZSBBIDogQiB7Ci0gICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGE7Ci0gICAgfTsKLQotICAgIGludGVyZmFjZSBCIDogQyB7Ci0gICAgICBbRGVmYXVsdF0gb2Jq
ZWN0IHRvSlNPTigpOwotICAgICAgYXR0cmlidXRlIGxvbmcgYjsKLSAgICB9OwotCi0gICAgaW50
ZXJmYWNlIEMgewotICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBjOwotICAgIH07Ci0KLSAgICBp
bnRlcmZhY2UgbWl4aW4gRCB7Ci0gICAgICBbRGVmYXVsdF0gb2JqZWN0IHRvSlNPTigpOwotICAg
ICAgYXR0cmlidXRlIGZsb2F0IGQ7Ci0gICAgfTsKLQotICAgIGludGVyZmFjZSBtaXhpbiBHIHsK
LSAgICAgIFtEZWZhdWx0XSBvYmplY3QgdG9KU09OKCk7Ci0gICAgICBhdHRyaWJ1dGUgb2N0ZXQg
ZzsKLSAgICB9OwotCi0gICAgaW50ZXJmYWNlIG1peGluIEggewotICAgICAgW0RlZmF1bHRdIG9i
amVjdCB0b0pTT04oKTsKLSAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgaDsKLSAgICB9OwotCi0g
ICAgaW50ZXJmYWNlIG1peGluIEkgewotICAgICAgW0RlZmF1bHRdIG9iamVjdCB0b0pTT04oKTsK
LSAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGk7Ci0gICAgfTsKLQotICAgIEEgaW5jbHVkZXMgRzsK
LSAgICBBIGluY2x1ZGVzIEg7Ci0gICAgQiBpbmNsdWRlcyBEOwotPC9wcmU+CiA8c2NyaXB0Pgog
ICAgICJ1c2Ugc3RyaWN0IjsKICAgICB0ZXN0KGZ1bmN0aW9uKCkgewpAQCAtMTI4LDQ1ICs5MCwy
NCBAQAogCiAgICAgdGVzdChmdW5jdGlvbigpIHsKICAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcg
SWRsQXJyYXkoKTsKLSAgICAgICAgY29udGV4dC5hZGRfaWRscygiaW50ZXJmYWNlIEEgOiBCIHsg
W0RlZmF1bHRdIG9iamVjdCB0b0pTT04oKTsgYXR0cmlidXRlIERPTVN0cmluZyBhOyB9OyIpOwot
ICAgICAgICBjb250ZXh0LmFkZF9pZGxzKCJpbnRlcmZhY2UgQiB7IG9iamVjdCB0b0pTT04oKTsg
YXR0cmlidXRlIGxvbmcgYjsgfTsiKTsKLSAgICAgICAgdmFyIG1hcCA9IGNvbnRleHQubWVtYmVy
cy5BLmRlZmF1bHRfdG9fanNvbl9vcGVyYXRpb24oKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyht
YXAuc2l6ZSwgMSk7Ci0gICAgICAgIGFzc2VydF90cnVlKG1hcC5oYXMoImEiKSk7Ci0gICAgICAg
IGFzc2VydF9mYWxzZShtYXAuaGFzKCJiIikpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKG1hcC5n
ZXQoImEiKS5pZGxUeXBlLCAiRE9NU3RyaW5nIik7CisgICAgICAgIGNvbnRleHQuYWRkX2lkbHMo
ImludGVyZmFjZSBBIHsgW0RlZmF1bHRdIG9iamVjdCB0b0pTT04oKTsgYXR0cmlidXRlIERPTVN0
cmluZyBhOyB9OyIpOworICAgICAgICBjb250ZXh0LmFkZF9pZGxzKCJpbnRlcmZhY2UgQiA6IEEg
eyBhdHRyaWJ1dGUgYW55IGI7IH07Iik7CisgICAgICAgIGNvbnRleHQuYWRkX2lkbHMoImludGVy
ZmFjZSBDIDogQiB7IFtEZWZhdWx0XSBvYmplY3QgdG9KU09OKCk7IGF0dHJpYnV0ZSBsb25nIGM7
IH07Iik7CisgICAgICAgIHZhciBtYXAgPSBjb250ZXh0Lm1lbWJlcnMuQy5kZWZhdWx0X3RvX2pz
b25fb3BlcmF0aW9uKCk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLm1hcC5rZXlz
KCldLCBbImEiLCAiYyJdKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhbLi4ubWFwLnZh
bHVlcygpXS5tYXAodiA9PiB2LmlkbFR5cGUpLCBbIkRPTVN0cmluZyIsICJsb25nIl0pOwogICAg
IH0sICdzaG91bGQgcmV0dXJuIGFuIG9yZGVyZWQgbWFwIHRoYXQgaWdub3JlcyBhdHRyaWJ1dGVz
IG9mIGluaGVyaXRlZCBpbnRlcmZhY2VzIHdoaWNoIGRvIG5vdCBkZWNsYXJlIGEgW0RlZmF1bHRd
IHRvSlNPTiBvcGVyYXRpb24uJyk7CiAKICAgICB0ZXN0KGZ1bmN0aW9uKCkgewogICAgICAgICB2
YXIgY29udGV4dCA9IG5ldyBJZGxBcnJheSgpOwotICAgICAgICBjb250ZXh0LmFkZF9pZGxzKCJp
bnRlcmZhY2UgQSB7IFtEZWZhdWx0XSBvYmplY3QgdG9KU09OKCk7IGF0dHJpYnV0ZSBET01TdHJp
bmcgYTsgfTsiKTsKLSAgICAgICAgY29udGV4dC5hZGRfaWRscygiaW50ZXJmYWNlIG1peGluIE4g
eyBbRGVmYXVsdF0gb2JqZWN0IHRvSlNPTigpOyBhdHRyaWJ1dGUgbG9uZyBuOyB9OyIpOwotICAg
ICAgICBjb250ZXh0LmFkZF9pZGxzKCJBIGluY2x1ZGVzIE47Iik7Ci0gICAgICAgIHZhciBtYXAg
PSBjb250ZXh0Lm1lbWJlcnMuQS5kZWZhdWx0X3RvX2pzb25fb3BlcmF0aW9uKCk7Ci0gICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLm1hcC5rZXlzKCldLCBbImEiLCAibiJdKTsKKyAgICAg
ICAgY29udGV4dC5hZGRfaWRscygiaW50ZXJmYWNlIEQgeyBhdHRyaWJ1dGUgRE9NU3RyaW5nIGQ7
IH07Iik7CisgICAgICAgIGNvbnRleHQuYWRkX2lkbHMoImludGVyZmFjZSBtaXhpbiBNIHsgW0Rl
ZmF1bHRdIG9iamVjdCB0b0pTT04oKTsgYXR0cmlidXRlIGxvbmcgbTsgfTsiKTsKKyAgICAgICAg
Y29udGV4dC5hZGRfaWRscygiRCBpbmNsdWRlcyBNOyIpOworICAgICAgICBjb250ZXh0Lm1lcmdl
X21peGlucygpOworICAgICAgICB2YXIgbWFwID0gY29udGV4dC5tZW1iZXJzLkQuZGVmYXVsdF90
b19qc29uX29wZXJhdGlvbigpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKFsuLi5tYXAu
a2V5cygpXSwgWyJkIiwgIm0iXSk7CiAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLm1h
cC52YWx1ZXMoKV0ubWFwKHYgPT4gdi5pZGxUeXBlKSwgWyJET01TdHJpbmciLCAibG9uZyJdKTsK
ICAgICB9LCAnc2hvdWxkIHJldHVybiBhIHByb3Blcmx5IG9yZGVyZWQgbWFwIHRoYXQgYWNjb3Vu
dHMgZm9yIG1peGVkLWluIGludGVyZmFjZXMgd2hpY2ggZGVjbGFyZSBhIFtEZWZhdWx0XSB0b0pT
T04gb3BlcmF0aW9uLicpOwotCi0gICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGNv
bnRleHQgPSBuZXcgSWRsQXJyYXkoKTsKLSAgICAgICAgY29udGV4dC5hZGRfaWRscygiaW50ZXJm
YWNlIEEgeyBbRGVmYXVsdF0gb2JqZWN0IHRvSlNPTigpOyBhdHRyaWJ1dGUgRE9NU3RyaW5nIGE7
IH07Iik7Ci0gICAgICAgIGNvbnRleHQuYWRkX2lkbHMoImludGVyZmFjZSBtaXhpbiBOIHsgYXR0
cmlidXRlIGxvbmcgbjsgfTsiKTsKLSAgICAgICAgY29udGV4dC5hZGRfaWRscygiQSBpbmNsdWRl
cyBOOyIpOwotICAgICAgICB2YXIgbWFwID0gY29udGV4dC5tZW1iZXJzLkEuZGVmYXVsdF90b19q
c29uX29wZXJhdGlvbigpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKG1hcC5zaXplLCAxKTsKLSAg
ICAgICAgYXNzZXJ0X3RydWUobWFwLmhhcygiYSIpKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKG1h
cC5oYXMoIm4iKSk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMobWFwLmdldCgiYSIpLmlkbFR5cGUs
ICJET01TdHJpbmciKTsKLSAgICB9LCAnc2hvdWxkIHJldHVybiBhIHByb3Blcmx5IG9yZGVyZWQg
bWFwIHRoYXQgaWdub3JlcyBtaXhlZC1pbiBpbnRlcmZhY2VzIHdoaWNoIGRvIG5vdCBkZWNsYXJl
IGEgW0RlZmF1bHRdIHRvSlNPTiBvcGVyYXRpb24uJyk7Ci0KLQotICAgIHRlc3QoZnVuY3Rpb24o
KSB7Ci0gICAgICAgIHZhciBjb250ZXh0ID0gbmV3IElkbEFycmF5KCk7Ci0gICAgICAgIGNvbnRl
eHQuYWRkX2lkbHMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZyYWdtZW50cycpLnRleHRDb250
ZW50KTsKLSAgICAgICAgdmFyIG1hcCA9IGNvbnRleHQubWVtYmVycy5BLmRlZmF1bHRfdG9fanNv
bl9vcGVyYXRpb24oKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhbLi4ubWFwLmtleXMo
KV0sIFsiYiIsICJkIiwgImciLCAiaCJdKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhb
Li4ubWFwLnZhbHVlcygpXS5tYXAodiA9PiB2LmlkbFR5cGUpLCBbImxvbmciLCAiZmxvYXQiLCAi
b2N0ZXQiLCAiRE9NU3RyaW5nIl0pOwotICAgIH0sICdzaG91bGQgcmV0dXJuIGEgcHJvcGVybHkg
b3JkZXJlZCBtYXAgb2YgbmFtZS90eXBlIHBhaXJzIGhhbmRsaW5nIGluaGVyaXRlZCBhbmQgY29u
c2VxdWVudGlhbCBpbnRlcmZhY2VzIGFzIHNwZWNpZmllZC4nKTsKIDwvc2NyaXB0PgogPC9ib2R5
PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9nZXRfaW5o
ZXJpdGFuY2Vfc3RhY2suaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvZ2V0X2luaGVy
aXRhbmNlX3N0YWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlOTE4OGM3
MzE4OTIwZjQ0OTM1ZTQxOGE1MGFhMzVhNThiZjU3MjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9nZXRfaW5o
ZXJpdGFuY2Vfc3RhY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTwhRE9D
VFlQRSBIVE1MPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5JZGxJbnRlcmZhY2UucHJvdG90eXBl
LmdldF9pbmhlcml0YW5jZV9zdGFjaygpPC90aXRsZT4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9pZGwtaGVscGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0g
ICAgInVzZSBzdHJpY3QiOwotICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBzdGFj
ayA9IGludGVyZmFjZUZyb20oJ2ludGVyZmFjZSBBIHsgfTsnKS5nZXRfaW5oZXJpdGFuY2Vfc3Rh
Y2soKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzdGFjay5tYXAoaSA9PiBpLm5hbWUp
LCBbIkEiXSk7Ci0gICAgfSwgJ3Nob3VsZCByZXR1cm4gYW4gYXJyYXkgdGhhdCBpbmNsdWRlcyBp
dHNlbGYuJyk7Ci0KLSAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgaSA9IGludGVy
ZmFjZUZyb20oJ2ludGVyZmFjZSBBIDogQiB7IH07Jyk7Ci0gICAgICAgIGFzc2VydF90aHJvd3Nf
anMoRXJyb3IsIF8gPT4gaS5nZXRfaW5oZXJpdGFuY2Vfc3RhY2soKSk7Ci0gICAgfSwgInNob3Vs
ZCB0aHJvdyBmb3IgaW50ZXJmYWNlcyB3aGljaCBpbmhlcml0IGZyb20gYW5vdGhlciBpbnRlcmZh
Y2Ugd2hpY2ggd2Fzbid0IGFkZGVkIHRvIHRoZSBJZGxBcnJheSIpOwotCi0gICAgdGVzdChmdW5j
dGlvbigpIHsKLSAgICAgICAgdmFyIGlkbCA9IG5ldyBJZGxBcnJheSgpOwotICAgICAgICBpZGwu
YWRkX2lkbHMoJ2ludGVyZmFjZSBBIDogQiB7IH07Jyk7Ci0gICAgICAgIGlkbC5hZGRfdW50ZXN0
ZWRfaWRscygnaW50ZXJmYWNlIEIgOiBDIHsgfTsgaW50ZXJmYWNlIEMgeyB9OycpOwotICAgICAg
ICB2YXIgQSA9IGlkbC5tZW1iZXJzWyJBIl07Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
QS5nZXRfaW5oZXJpdGFuY2Vfc3RhY2soKS5tYXAoaSA9PiBpLm5hbWUpLCBbIkEiLCAiQiIsICJD
Il0pOwotICAgIH0sICdzaG91bGQgcmV0dXJuIGFuIGFycmF5IG9mIGluaGVyaXRlZCBpbnRlcmZh
Y2VzIGluIG9yZGVyIG9mIGluaGVyaXRhbmNlLCBzdGFydGluZyB3aXRoIGl0c2VsZi4nKTsKLQot
ICAgIHRlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICB2YXIgaWRsID0gbmV3IElkbEFycmF5KCk7
Ci0gICAgICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEEgOiBCIHsgfTsnKTsK
LSAgICAgICAgaWRsLmFkZF91bnRlc3RlZF9pZGxzKCdpbnRlcmZhY2UgQiA6IEEgeyB9OycpOwot
ICAgICAgICBpZGwuYXNzZXJ0X3Rocm93cygnQSBoYXMgYSBjaXJjdWxhciBkZXBlbmRlbmN5OiBB
LEIsQScsIGkgPT4gaS50ZXN0KCkpOwotICAgIH0sICdzaG91bGQgdGhyb3cgd2hlbiBpbmhlcml0
YW5jZSBpcyBjaXJjdWxhcicpOwotCi0gICAgdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZh
ciBpZGwgPSBuZXcgSWRsQXJyYXkoKTsKLSAgICAgICAgaWRsLmFkZF91bnRlc3RlZF9pZGxzKCdp
bnRlcmZhY2UgQSA6IEIgeyB9OycpOwotICAgICAgICBpZGwuYXNzZXJ0X3Rocm93cygKLSAgICAg
ICAgICAgICdEdXBsaWNhdGUgaWRlbnRpZmllciBBJywKLSAgICAgICAgICAgIGkgPT4gaS5hZGRf
dW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEEgOiBDIHsgfTsnKSk7Ci0gICAgfSwgJ3Nob3VsZCB0
aHJvdyB3aGVuIG11bHRpcGxlIGluaGVyaXRhbmNlcyBkZWZpbmVkJyk7Ci08L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvZ2V0
X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2suaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZh
Y2UvZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYzA2NmJh
YWJiY2YwMjY3YjE1MWE0ZTIxZDZiZWZlZjE3ZTM2ZjQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90
ZXN0cy91bml0L0lkbEludGVyZmFjZS9nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjay5odG1s
CkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRs
ZT5JZGxJbnRlcmZhY2UucHJvdG90eXBlLmdldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrKCk8
L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL2lkbGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2lkbC1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICAidXNlIHN0cmljdCI7CisgICAgdGVz
dChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHN0YWNrID0gaW50ZXJmYWNlRnJvbSgnaW50ZXJm
YWNlIEEgeyB9OycpLmdldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrKCk7CisgICAgICAgIGFz
c2VydF9hcnJheV9lcXVhbHMoc3RhY2subWFwKGkgPT4gaS5uYW1lKSwgWyJBIl0pOworICAgIH0s
ICdzaG91bGQgcmV0dXJuIGFuIGFycmF5IHRoYXQgaW5jbHVkZXMgaXRzZWxmLicpOworCisgICAg
dGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGkgPSBpbnRlcmZhY2VGcm9tKCdpbnRlcmZh
Y2UgQSA6IEIgeyB9OycpOworICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKEVycm9yLCBfID0+IGku
Z2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2soKSk7CisgICAgfSwgInNob3VsZCB0aHJvdyBm
b3IgaW50ZXJmYWNlcyB3aGljaCBpbmhlcml0IGZyb20gYW5vdGhlciBpbnRlcmZhY2Ugd2hpY2gg
d2Fzbid0IGFkZGVkIHRvIHRoZSBJZGxBcnJheSIpOworCisgICAgdGVzdChmdW5jdGlvbigpIHsK
KyAgICAgICAgdmFyIGlkbCA9IG5ldyBJZGxBcnJheSgpOworICAgICAgICBpZGwuYWRkX2lkbHMo
J2ludGVyZmFjZSBBIDogQiB7IH07Jyk7CisgICAgICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygn
aW50ZXJmYWNlIEIgOiBDIHsgfTsgaW50ZXJmYWNlIEMgeyB9OycpOworICAgICAgICB2YXIgQSA9
IGlkbC5tZW1iZXJzWyJBIl07CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoQS5nZXRfcmV2
ZXJzZV9pbmhlcml0YW5jZV9zdGFjaygpLm1hcChpID0+IGkubmFtZSksIFsiQyIsICJCIiwgIkEi
XSk7CisgICAgfSwgJ3Nob3VsZCByZXR1cm4gYW4gYXJyYXkgb2YgaW50ZXJmYWNlcyBpbiBvcmRl
ciBvZiBpbmhlcml0YW5jZSwgc3RhcnRpbmcgd2l0aCB0aGUgYmFzZSBpbnRlcmZhY2UnKTsKKwor
ICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgaWRsID0gbmV3IElkbEFycmF5KCk7
CisgICAgICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEEgOiBCIHsgfTsnKTsK
KyAgICAgICAgaWRsLmFkZF91bnRlc3RlZF9pZGxzKCdpbnRlcmZhY2UgQiA6IEEgeyB9OycpOwor
ICAgICAgICBpZGwuYXNzZXJ0X3Rocm93cygnQSBoYXMgYSBjaXJjdWxhciBkZXBlbmRlbmN5OiBB
LEIsQScsIGkgPT4gaS50ZXN0KCkpOworICAgIH0sICdzaG91bGQgdGhyb3cgd2hlbiBpbmhlcml0
YW5jZSBpcyBjaXJjdWxhcicpOworCisgICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHZh
ciBpZGwgPSBuZXcgSWRsQXJyYXkoKTsKKyAgICAgICAgaWRsLmFkZF91bnRlc3RlZF9pZGxzKCdp
bnRlcmZhY2UgQSA6IEIgeyB9OycpOworICAgICAgICBpZGwuYXNzZXJ0X3Rocm93cygKKyAgICAg
ICAgICAgICdEdXBsaWNhdGUgaWRlbnRpZmllciBBJywKKyAgICAgICAgICAgIGkgPT4gaS5hZGRf
dW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEEgOiBDIHsgfTsnKSk7CisgICAgfSwgJ3Nob3VsZCB0
aHJvdyB3aGVuIG11bHRpcGxlIGluaGVyaXRhbmNlcyBkZWZpbmVkJyk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2Uvc2hv
dWxkX2hhdmVfaW50ZXJmYWNlX29iamVjdC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFj
ZS9zaG91bGRfaGF2ZV9pbnRlcmZhY2Vfb2JqZWN0Lmh0bWwKaW5kZXggZjViYjdiZjM1YTU4YzIz
Y2JhZjc2ZjE1MTlhYzJkZmVjNWYzYWQ2Mi4uM2NlOTQ1NzUxZDg1MDJkZDZkMzVkMTlmNTJjNzFm
MTcwMTMxM2Q0NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9zaG91bGRf
aGF2ZV9pbnRlcmZhY2Vfb2JqZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFj
ZS9zaG91bGRfaGF2ZV9pbnRlcmZhY2Vfb2JqZWN0Lmh0bWwKQEAgLTE0LDE3ICsxNCwxNyBAQCB0
ZXN0KGZ1bmN0aW9uKCkgewogfSwgImNhbGxiYWNrIGludGVyZmFjZSB3aXRoIGEgY29uc3RhbnQi
KTsKIAogdGVzdChmdW5jdGlvbigpIHsKLSAgICB2YXIgaSA9IGludGVyZmFjZUZyb20oImNhbGxi
YWNrIGludGVyZmFjZSBBIHsgdm9pZCBiKCk7IHNlcXVlbmNlPGFueT4gYygpOyB9OyIpOworICAg
IHZhciBpID0gaW50ZXJmYWNlRnJvbSgiY2FsbGJhY2sgaW50ZXJmYWNlIEEgeyB1bmRlZmluZWQg
YigpOyBzZXF1ZW5jZTxhbnk+IGMoKTsgfTsiKTsKICAgICBhc3NlcnRfZmFsc2UoaS5zaG91bGRf
aGF2ZV9pbnRlcmZhY2Vfb2JqZWN0KCkpOwogfSwgImNhbGxiYWNrIGludGVyZmFjZSB3aXRob3V0
IGEgY29uc3RhbnQiKTsKIAogdGVzdChmdW5jdGlvbigpIHsKLSAgICB2YXIgaSA9IGludGVyZmFj
ZUZyb20oIltOb0ludGVyZmFjZU9iamVjdF0gaW50ZXJmYWNlIEEgeyB9OyIpOworICAgIHZhciBp
ID0gaW50ZXJmYWNlRnJvbSgiW0xlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0XSBpbnRlcmZhY2UgQSB7
IH07Iik7CiAgICAgYXNzZXJ0X2ZhbHNlKGkuc2hvdWxkX2hhdmVfaW50ZXJmYWNlX29iamVjdCgp
KTsKLX0sICJub24tY2FsbGJhY2sgaW50ZXJmYWNlIHdpdGggW05vSW50ZXJmYWNlT2JqZWN0XSIp
OworfSwgIm5vbi1jYWxsYmFjayBpbnRlcmZhY2Ugd2l0aCBbTGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3RdIik7CiAKIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgdmFyIGkgPSBpbnRlcmZhY2VGcm9tKCJp
bnRlcmZhY2UgQSB7IH07Iik7CiAgICAgYXNzZXJ0X3RydWUoaS5zaG91bGRfaGF2ZV9pbnRlcmZh
Y2Vfb2JqZWN0KCkpOwotfSwgIm5vbi1jYWxsYmFjayBpbnRlcmZhY2Ugd2l0aG91dCBbTm9JbnRl
cmZhY2VPYmplY3RdIik7Cit9LCAibm9uLWNhbGxiYWNrIGludGVyZmFjZSB3aXRob3V0IFtMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdF0iKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91
bml0L0lkbEludGVyZmFjZS90cmF2ZXJzZV9pbmhlcml0ZWRfYW5kX2NvbnNlcXVlbnRpYWxfaW50
ZXJmYWNlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS90cmF2ZXJzZV9pbmhlcml0
ZWRfYW5kX2NvbnNlcXVlbnRpYWxfaW50ZXJmYWNlcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA5NGI5NTZkYjZlZWQxZTE5ZDdkZDM3Y2E2MmE4MDRjNGZlMzZlYTJhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9J
ZGxJbnRlcmZhY2UvdHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFj
ZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MPgot
PGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5JZGxEaWN0aW9uYXJ5LnByb3RvdHlwZS50cmF2ZXJzZV9p
bmhlcml0ZWRfYW5kX2NvbnNlcXVlbnRpYWxfaW50ZXJmYWNlcygpPC90aXRsZT4KLTwvaGVhZD4K
LTxib2R5PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL1dlYklETFBh
cnNlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9pZGxoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9pZGwtaGVscGVyLmpzIj48L3Njcmlw
dD4KLTxwcmUgaWQ9ZnJhZ21lbnRzPgotICAgIGludGVyZmFjZSBBIDogQiB7IH07Ci0gICAgaW50
ZXJmYWNlIEIgOiBDIHsgfTsKLSAgICBpbnRlcmZhY2UgQyB7IH07Ci0gICAgaW50ZXJmYWNlIG1p
eGluIEQgeyB9OwotICAgIGludGVyZmFjZSBtaXhpbiBHIHsgfTsKLSAgICBpbnRlcmZhY2UgbWl4
aW4gSCB7IH07Ci0KLSAgICBBIGluY2x1ZGVzIEc7Ci0gICAgQSBpbmNsdWRlcyBIOwotICAgIEIg
aW5jbHVkZXMgRDsKLTwvcHJlPgotPHNjcmlwdD4KLSAgICAidXNlIHN0cmljdCI7Ci0gICAgdGVz
dChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGludGVyZmFjZXMgPSBbXTsKLSAgICAgICAgaW50
ZXJmYWNlRnJvbSgnaW50ZXJmYWNlIEEgeyB9OycpLnRyYXZlcnNlX2luaGVyaXRlZF9hbmRfY29u
c2VxdWVudGlhbF9pbnRlcmZhY2VzKGZ1bmN0aW9uKGkpIHsKLSAgICAgICAgICAgIGludGVyZmFj
ZXMucHVzaChpLm5hbWUpOwotICAgICAgICB9KTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhpbnRlcmZhY2VzLCBbIkEiXSk7Ci0gICAgfSwgJ3Nob3VsZCByZXR1cm4gYW4gYXJyYXkgdGhh
dCBpbmNsdWRlcyBpdHNlbGYuJyk7Ci0KLSAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2
YXIgY29udGV4dCA9IG5ldyBJZGxBcnJheSgpOwotICAgICAgICBjb250ZXh0LmFkZF9pZGxzKCJp
bnRlcmZhY2UgQSB7IH07IEEgaW5jbHVkZXMgQjsiKTsKLSAgICAgICAgYXNzZXJ0X3Rocm93c19q
cyhFcnJvciwgXyA9PiBjb250ZXh0Lm1lbWJlcnNbIkEiXS50cmF2ZXJzZV9pbmhlcml0ZWRfYW5k
X2NvbnNlcXVlbnRpYWxfaW50ZXJmYWNlcyhmdW5jdGlvbigpIHt9KSk7Ci0gICAgfSwgInNob3Vs
ZCB0aHJvdyBmb3IgaW50ZXJmYWNlcyB3aGljaCBhcmUgZXh0ZW5kZWQgYnkgYW5vdGhlciBpbnRl
cmZhY2Ugd2hpY2ggd2Fzbid0IGFkZGVkIHRvIHRoZSBJZGxBcnJheS4iKTsKLQotICAgIHRlc3Qo
ZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBjb250ZXh0ID0gbmV3IElkbEFycmF5KCk7Ci0gICAg
ICAgIGNvbnRleHQuYWRkX2lkbHMoImludGVyZmFjZSBBIHsgfTsiKTsKLSAgICAgICAgYXNzZXJ0
X3Rocm93c19qcyhUeXBlRXJyb3IsIF8gPT4gY29udGV4dC5tZW1iZXJzWyJBIl0udHJhdmVyc2Vf
aW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMoKSk7Ci0gICAgfSwgInNob3Vs
ZCB0aHJvdyBpZiBub3QgcGFzc2VkIGEgY2FsbGJhY2siKTsKLQotICAgIHRlc3QoZnVuY3Rpb24o
KSB7Ci0gICAgICAgIHZhciBjb250ZXh0ID0gbmV3IElkbEFycmF5KCk7Ci0gICAgICAgIGNvbnRl
eHQuYWRkX2lkbHMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZyYWdtZW50cycpLnRleHRDb250
ZW50KTsKLSAgICAgICAgdmFyIGludGVyZmFjZXMgPSBbXTsKLSAgICAgICAgY29udGV4dC5tZW1i
ZXJzWyJBIl0udHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMo
ZnVuY3Rpb24oaSkgewotICAgICAgICAgICAgaW50ZXJmYWNlcy5wdXNoKGkubmFtZSk7Ci0gICAg
ICAgIH0pOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGludGVyZmFjZXMsIFsiQyIsICJC
IiwgIkQiLCAiQSIsICJHIiwgIkgiXSk7Ci0gICAgfSwgJ3Nob3VsZCByZXR1cm4gYW4gYXJyYXkg
dGhhdCBpbmNsdWRlcyB0aGUgaWRlbnRpZmllciBvZiB0aGUgaW50ZXJmYWNlcyBpbiB0aGUgY29y
cmVjdCBvcmRlci4nKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dC90ZXN0cy91bml0L0lkbEludGVyZmFjZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9J
ZGxJbnRlcmZhY2UvdzNjLWltcG9ydC5sb2cKaW5kZXggODIzNTVlMDViNTViN2EyMTg4MTA2MTVk
MzZhN2JiNGU0YzM2MDFlOS4uYmQ2N2RmOTQ0NTExMGUyNzc5ZGNiZDQ2ZDVjYmFlMjZhNjBmMjJh
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS93M2MtaW1wb3J0LmxvZwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL3czYy1pbXBvcnQubG9nCkBAIC0xNywxMyAr
MTcsMTIgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2NvbnN0
cnVjdG9ycy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9kZWZhdWx0X3RvX2pzb25f
b3BlcmF0aW9uLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2RvX21lbWJlcl91bnNj
b3BhYmxlX2Fzc2VydHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvZ2V0X2luaGVy
aXRhbmNlX3N0YWNrLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2dldF9pbnRlcmZh
Y2Vfb2JqZWN0Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2dldF9pbnRlcmZhY2Vf
b2JqZWN0X293bmVyLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2dldF9sZWdhY3lf
bmFtZXNwYWNlLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2dldF9xdWFsaWZpZWRf
bmFtZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9nZXRfcmV2ZXJzZV9pbmhlcml0
YW5jZV9zdGFjay5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9oYXNfZGVmYXVsdF90
b19qc29uX3JlZ3VsYXJfb3BlcmF0aW9uLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNl
L2hhc190b19qc29uX3JlZ3VsYXJfb3BlcmF0aW9uLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50
ZXJmYWNlL3Nob3VsZF9oYXZlX2ludGVyZmFjZV9vYmplY3QuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9J
ZGxJbnRlcmZhY2UvdGVzdF9wcmltYXJ5X2ludGVyZmFjZV9vZl91bmRlZmluZWQuaHRtbAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qv
dGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvdHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50
aWFsX2ludGVyZmFjZXMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFj
ZU1lbWJlci9pc190b19qc29uX3JlZ3VsYXJfb3BlcmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQv
SWRsSW50ZXJmYWNlTWVtYmVyL2lzX3RvX2pzb25fcmVndWxhcl9vcGVyYXRpb24uaHRtbAppbmRl
eCBhYmZhNGFiODAwYjNjOGU2YjVmNmZkM2I0MmE5ODJjYzJlNGZlOTllLi5iM2Y0MDJkZDA4ODU3
Y2ZlNDFjZGM4NTczZmY4YzNjNDA3ZDI1ZThhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRs
SW50ZXJmYWNlTWVtYmVyL2lzX3RvX2pzb25fcmVndWxhcl9vcGVyYXRpb24uaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0
L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlTWVtYmVyL2lzX3RvX2pzb25fcmVndWxhcl9vcGVyYXRp
b24uaHRtbApAQCAtMTgsNyArMTgsNyBAQAogICAgIH0sICdzaG91bGQgcmV0dXJuIGZhbHNlIHdo
ZW4gbWVtYmVyIGlzIGFuIGF0dHJpYnV0ZS4nKTsKIAogICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0g
ICAgICAgIHZhciBtID0gbWVtYmVyRnJvbSgic3RhdGljIHZvaWQgZm9vKCkiKTsKKyAgICAgICAg
dmFyIG0gPSBtZW1iZXJGcm9tKCJzdGF0aWMgdW5kZWZpbmVkIGZvbygpIik7CiAgICAgICAgIGFz
c2VydF9mYWxzZShtLmlzX3RvX2pzb25fcmVndWxhcl9vcGVyYXRpb24oKSk7CiAgICAgfSwgJ3No
b3VsZCByZXR1cm4gZmFsc2Ugd2hlbiBtZW1iZXIgaXMgYSBzdGF0aWMgb3BlcmF0aW9uLicpOwog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlTWVtYmVyL3RvU3RyaW5nLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlTWVtYmVyL3RvU3RyaW5nLmh0bWwKaW5kZXgg
Nzc5YzdhMTVlNmQ3YjllYzIwYzM4YmEyNDkwMGY3NTIwOTZkZjNlMi4uMDU0ZGJiMWNjYmQ2ZWEy
NzM5OTg2Mjk0MzNjMTVjZWI1MmFiNGJiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbElu
dGVyZmFjZU1lbWJlci90b1N0cmluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZh
Y2VNZW1iZXIvdG9TdHJpbmcuaHRtbApAQCAtMjcsNyArMjcsNyBAQCBjb25zdCB0ZXN0cyA9IFsK
IF07CiBmb3IgKGNvbnN0IFtpbnB1dCwgb3V0cHV0XSBvZiB0ZXN0cykgewogICAgIHRlc3QoZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIHZhciBtID0gbWVtYmVyRnJvbShgdm9pZCBmb28oJHtpbnB1dH0p
YCk7CisgICAgICAgIHZhciBtID0gbWVtYmVyRnJvbShgdW5kZWZpbmVkIGZvbygke2lucHV0fSlg
KTsKICAgICAgICAgYXNzZXJ0X2VxdWFscyhtLnRvU3RyaW5nKCksIGBmb28oJHtvdXRwdXR9KWAp
OwogICAgIH0sIGB0b1N0cmluZyBmb3IgJHtpbnB1dH1gKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVz
dHMvdW5pdC9oZWxwZXJzLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L2hlbHBlcnMuanMKaW5kZXggYjI3M2E3
MjU4OWY3ZDMzNGRlNThlZTc4MGFiYmM0YzBmNGUyMmViZC4uY2EzNzhhMjdjOTE1Mjc0MmY3NTFk
MGI5YzVjMjc2ZjQ4YTIxNTYwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L2hlbHBlcnMuanMK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJj
ZXMvdGVzdC90ZXN0cy91bml0L2hlbHBlcnMuanMKQEAgLTExLDcgKzExLDcgQEAgZnVuY3Rpb24g
dGVzdF9mYWlsdXJlKGZuLCBuYW1lKSB7CiAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgQXNzZXJ0
aW9uRXJyb3IpIHsKICAgICAgICAgcmV0dXJuOwogICAgICAgfQotICAgICAgdGhyb3cgbmV3IEFz
c2VydGlvbkVycm9yKCdFeHBlY3RlZCBhbiBBc3NlcnRpb25FcnJvciwgYnV0Jyk7CisgICAgICB0
aHJvdyBuZXcgQXNzZXJ0aW9uRXJyb3IoJ0V4cGVjdGVkIGFuIEFzc2VydGlvbkVycm9yLCBidXQn
ICsgZXJyKTsKICAgICB9CiAgICAgdGhyb3cgbmV3IEFzc2VydGlvbkVycm9yKAogICAgICAgJ0V4
cGVjdGVkIGFuIEFzc2VydGlvbkVycm9yLCBidXQgbm8gZXJyb3Igd2FzIHRocm93bicKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3Vy
Y2VzL3Rlc3QvdGVzdHMvdW5pdC91bnBhaXJlZC1zdXJyb2dhdGVzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3Vu
aXQvdW5wYWlyZWQtc3Vycm9nYXRlcy5odG1sCmluZGV4IDFiMTYyZmU3MWQyODNkNjNkYmRhYWM1
YjNiZTg4N2Y1Y2Q4MGQ1M2YuLmIyMzIxMTEzMjY1OWVlZjFjNTBiMDQ2ZTBhMTViYzA2ZjZiZWJm
YzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC91bnBhaXJlZC1zdXJyb2dhdGVzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMv
dGVzdC90ZXN0cy91bml0L3VucGFpcmVkLXN1cnJvZ2F0ZXMuaHRtbApAQCAtMTE0LDYgKzExNCw3
IEBAIHByb21pc2VfdGVzdCgoKSA9PiB7CiAgICAgICAgIHRlc3QoKCkgPT4ge30sICdVK2Q4MDBV
K2Q4MDEgbXVzdCBiZSBzYW5pdGl6ZWQ6IFx1ZDgwMFx1ZDgwMScpOwogICAgICAgICB0ZXN0KCgp
ID0+IHt9LCAnVStkZmZmIG11c3QgYmUgc2FuaXRpemVkOiBcdWRmZmYnKTsKICAgICAgICAgdGVz
dCgoKSA9PiB7fSwgJ1UrZGMwMFUrZDgwMFUrZGMwMFUrZDgwMCBtdXN0IGJlIHNhbml0aXplZDog
XHVkYzAwXHVkODAwXHVkYzAwXHVkODAwJyk7CisgICAgICAgIHRlc3QoKCkgPT4ge30sICdVK2Ri
ZmZVK2RmZmZVK2RmZmYgbXVzdCBiZSBzYW5pdGl6ZWQ6IFx1ZGJmZlx1ZGZmZlx1ZGZmZicpOwog
ICAgICAgICB0ZXN0KCgpID0+IHt9LCAnYWZ0ZXInKTsKICAgICAgIH0KICAgICApLnRoZW4oKHto
YXJuZXNzLCB0ZXN0c30pID0+IHsKQEAgLTEzMCw2ICsxMzEsMTAgQEAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKICAgICAgICAgdGVzdHNbJ1UrZGMwMFUrZDgwMFUrZGMwMFUrZDgwMCBtdXN0IGJlIHNh
bml0aXplZDogVStkYzAwXHVkODAwXHVkYzAwVStkODAwJ10sCiAgICAgICAgICdQQVNTJwogICAg
ICAgKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgIHRlc3RzWydVK2RiZmZVK2RmZmZV
K2RmZmYgbXVzdCBiZSBzYW5pdGl6ZWQ6IFx1ZGJmZlx1ZGZmZlUrZGZmZiddLAorICAgICAgICAn
UEFTUycKKyAgICAgICk7CiAgICAgICBhc3NlcnRfZXF1YWxzKHRlc3RzLmFmdGVyLCAnUEFTUycp
OwogICAgIH0pOwogfSwgJ3N1Yi10ZXN0IG5hbWVzIHdoaWNoIGluY2x1ZGUgdW5wYWlyZWQgc3Vy
cm9nYXRlcycpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90b3guaW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90b3guaW5pCmluZGV4IDI2NmE2
ZTg5NTJlMDRkOTAxMjA2NDgzNjE0YmRhOTA5NzkzM2JiOGUuLmE5YzA3YzNkMjJhOGEzZTI2NTM1
YTBiMWVmNmVhYjI4YWYwNGMyMWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdG94LmluaQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3RveC5p
bmkKQEAgLTEsMTUgKzEsMTMgQEAKIFt0b3hdCi1lbnZsaXN0ID0gcHkyNyxweTM2LHB5MzgKK2Vu
dmxpc3QgPSBweTM2LHB5MzcscHkzOCxweTM5CiBza2lwc2Rpc3Q9VHJ1ZQogCiBbdGVzdGVudl0K
IHBhc3NlbnY9RElTUExBWSAjIE5lY2Vzc2FyeSBmb3IgdGhlIHNwYXduZWQgR2Vja29Ecml2ZXIg
cHJvY2VzcyB0byBjb25uZWN0IHRvCiAgICAgICAgICAgICAgICAgIyB0aGUgYXBwcm9wcmlhdGUg
ZGlzcGxheS4KKwogZGVwcyA9Ci0gIGh0bWw1bGliCi0gIHB5dGVzdD49Mi45LDw2ICMgcGlubmVk
IHRvIDw2IGR1ZSB0byBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9p
c3N1ZXMvMjYxMzIKLSAgcHl2aXJ0dWFsZGlzcGxheQotICBzaXgKLSAgcmVxdWVzdHMKKyAgLXJ7
dG94aW5pZGlyfS8uLi8uLi90b29scy9yZXF1aXJlbWVudHNfcHl0ZXN0LnR4dAorICAtcnt0b3hp
bmlkaXJ9L3JlcXVpcmVtZW50cy50eHQKIAogY29tbWFuZHMgPSBweXRlc3QgLXZ2IHtwb3Nhcmdz
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZXMvdGVzdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdzNjLWltcG9ydC5sb2cKaW5kZXgg
ZTdhNDg2YTliOTZjMTA1ZWI5YTVkZjVhMDVmODkzOWExNTk5ZWEwZC4uMjdiNTQyN2Y0YWQyYzBh
ZjdiZDhhYjE5ZGQ0ZmQ5YzM5MDkyNmZhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC93M2MtaW1wb3J0LmxvZwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0L3czYy1pbXBvcnQubG9nCkBAIC0xOSw2ICsxOSw3IEBAIExpc3Qgb2YgZmlsZXM6CiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dC9oYXJuZXNzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc291cmNlcy90ZXN0L2lkbC1oZWxwZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L25lc3RlZC10ZXN0aGFybmVzcy5q
cworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Vz
L3Rlc3QvcmVxdWlyZW1lbnRzLnR4dAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdG94LmluaQogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdmFyaWFudHMuanMKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3dw
dHNlcnZlci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC93cHRzZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3dwdHNlcnZlci5weQpp
bmRleCBhNTA0YTc2YTQ2ZTAwZGI4ZjliYjRhMTlkYzlkY2E1OGVjMWM4MzE0Li5hYmUzMGFkM2Vk
MmE4MDI5ZjBmZTZiODc1M2Q5ODNjMmM4ODVlMzYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3dwdHNlcnZlci5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291
cmNlcy90ZXN0L3dwdHNlcnZlci5weQpAQCAtMywxNyArMywxOCBAQCBpbXBvcnQgb3MKIGltcG9y
dCBzdWJwcm9jZXNzCiBpbXBvcnQgdGltZQogaW1wb3J0IHN5cwotZnJvbSBzaXgubW92ZXMgaW1w
b3J0IHVybGxpYgoraW1wb3J0IHVybGxpYgogCiAKIGNsYXNzIFdQVFNlcnZlcihvYmplY3QpOgog
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3cHRfcm9vdCk6CisgICAgICAgIHNlbGYubG9nZ2VyID0g
bG9nZ2luZy5nZXRMb2dnZXIoKQogICAgICAgICBzZWxmLndwdF9yb290ID0gd3B0X3Jvb3QKIAog
ICAgICAgICAjIFRoaXMgaXMgYSB0ZXJyaWJsZSBoYWNrIHRvIGdldCB0aGUgZGVmYXVsdCBjb25m
aWcgb2Ygd3B0c2VydmUuCiAgICAgICAgIHN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4o
d3B0X3Jvb3QsICJ0b29scyIpKQogICAgICAgICBmcm9tIHNlcnZlLnNlcnZlIGltcG9ydCBidWls
ZF9jb25maWcKLSAgICAgICAgd2l0aCBidWlsZF9jb25maWcoKSBhcyBjb25maWc6CisgICAgICAg
IHdpdGggYnVpbGRfY29uZmlnKHNlbGYubG9nZ2VyKSBhcyBjb25maWc6CiAgICAgICAgICAgICBz
ZWxmLmhvc3QgPSBjb25maWdbImJyb3dzZXJfaG9zdCJdCiAgICAgICAgICAgICBzZWxmLmh0dHBf
cG9ydCA9IGNvbmZpZ1sicG9ydHMiXVsiaHR0cCJdWzBdCiAgICAgICAgICAgICBzZWxmLmh0dHBz
X3BvcnQgPSBjb25maWdbInBvcnRzIl1bImh0dHBzIl1bMF0KQEAgLTIxLDEyICsyMiwxMiBAQCBj
bGFzcyBXUFRTZXJ2ZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5iYXNlX3VybCA9ICdodHRwOi8v
JXM6JXMnICUgKHNlbGYuaG9zdCwgc2VsZi5odHRwX3BvcnQpCiAgICAgICAgIHNlbGYuaHR0cHNf
YmFzZV91cmwgPSAnaHR0cHM6Ly8lczolcycgJSAoc2VsZi5ob3N0LCBzZWxmLmh0dHBzX3BvcnQp
CiAKLSAgICBkZWYgc3RhcnQoc2VsZik6CisgICAgZGVmIHN0YXJ0KHNlbGYsIHNzbF9jb250ZXh0
KToKICAgICAgICAgc2VsZi5kZXZudWxsID0gb3Blbihvcy5kZXZudWxsLCAndycpCiAgICAgICAg
IHdwdHNlcnZlX2NtZCA9IFtvcy5wYXRoLmpvaW4oc2VsZi53cHRfcm9vdCwgJ3dwdCcpLCAnc2Vy
dmUnXQogICAgICAgICBpZiBzeXMuZXhlY3V0YWJsZToKICAgICAgICAgICAgIHdwdHNlcnZlX2Nt
ZFswOjBdID0gW3N5cy5leGVjdXRhYmxlXQotICAgICAgICBsb2dnaW5nLmluZm8oJ0V4ZWN1dGlu
ZyAlcycgJSAnICcuam9pbih3cHRzZXJ2ZV9jbWQpKQorICAgICAgICBzZWxmLmxvZ2dlci5pbmZv
KCdFeGVjdXRpbmcgJXMnICUgJyAnLmpvaW4od3B0c2VydmVfY21kKSkKICAgICAgICAgc2VsZi5w
cm9jID0gc3VicHJvY2Vzcy5Qb3BlbigKICAgICAgICAgICAgIHdwdHNlcnZlX2NtZCwKICAgICAg
ICAgICAgIHN0ZGVycj1zZWxmLmRldm51bGwsCkBAIC00MSw2ICs0Miw3IEBAIGNsYXNzIFdQVFNl
cnZlcihvYmplY3QpOgogICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICB0cnk6CiAg
ICAgICAgICAgICAgICAgdXJsbGliLnJlcXVlc3QudXJsb3BlbihzZWxmLmJhc2VfdXJsLCB0aW1l
b3V0PTEpCisgICAgICAgICAgICAgICAgdXJsbGliLnJlcXVlc3QudXJsb3BlbihzZWxmLmh0dHBz
X2Jhc2VfdXJsLCB0aW1lb3V0PTEsIGNvbnRleHQ9c3NsX2NvbnRleHQpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuCiAgICAgICAgICAgICBleGNlcHQgdXJsbGliLmVycm9yLlVSTEVycm9yOgogICAg
ICAgICAgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItYWN0aW9ucy5qcyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Rkcml2
ZXItYWN0aW9ucy5qcwppbmRleCBmM2U2Mzg4ZThhY2QxOTk4ZDg5NzUwMTUwZTA3NzlkZjMyN2E1
NDE3Li40ZGFmYTBjMDE4YjEwMTU2M2U5OTY0M2VjMGM4OTZmYjE0ZWQ5ODQwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90
ZXN0ZHJpdmVyLWFjdGlvbnMuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGRyaXZlci1hY3Rpb25zLmpzCkBAIC0yODEsOSAr
MjgxLDEyIEBACiAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRlciBz
b3VyY2UKICAgICAgKiBAcmV0dXJucyB7QWN0aW9uc30KICAgICAgKi8KLSAgICBwb2ludGVyRG93
bjogZnVuY3Rpb24oe2J1dHRvbj10aGlzLkJ1dHRvblR5cGUuTEVGVCwgc291cmNlTmFtZT1udWxs
fT17fSkgeworICAgIHBvaW50ZXJEb3duOiBmdW5jdGlvbih7YnV0dG9uPXRoaXMuQnV0dG9uVHlw
ZS5MRUZULCBzb3VyY2VOYW1lPW51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0
aCwgaGVpZ2h0LCBwcmVzc3VyZSwgdGFuZ2VudGlhbFByZXNzdXJlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGlsdFgsIHRpbHRZLCB0d2lzdCwgYWx0aXR1ZGVBbmdsZSwgYXppbXV0aEFu
Z2xlfT17fSkgewogICAgICAgbGV0IHNvdXJjZSA9IHRoaXMuZ2V0U291cmNlKCJwb2ludGVyIiwg
c291cmNlTmFtZSk7Ci0gICAgICBzb3VyY2UucG9pbnRlckRvd24odGhpcywgYnV0dG9uKTsKKyAg
ICAgIHNvdXJjZS5wb2ludGVyRG93bih0aGlzLCBidXR0b24sIHdpZHRoLCBoZWlnaHQsIHByZXNz
dXJlLCB0YW5nZW50aWFsUHJlc3N1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgdGlsdFgs
IHRpbHRZLCB0d2lzdCwgYWx0aXR1ZGVBbmdsZSwgYXppbXV0aEFuZ2xlKTsKICAgICAgIHJldHVy
biB0aGlzOwogICAgIH0sCiAKQEAgLTMxNCw5ICszMTcsMTMgQEAKICAgICAgKiBAcmV0dXJucyB7
QWN0aW9uc30KICAgICAgKi8KICAgICBwb2ludGVyTW92ZTogZnVuY3Rpb24oeCwgeSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAge29yaWdpbj0idmlld3BvcnQiLCBkdXJhdGlvbiwgc291cmNl
TmFtZT1udWxsfT17fSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICB7b3JpZ2luPSJ2aWV3
cG9ydCIsIGR1cmF0aW9uLCBzb3VyY2VOYW1lPW51bGwsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aCwgaGVpZ2h0LCBwcmVzc3VyZSwgdGFuZ2VudGlhbFByZXNzdXJlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGlsdFgsIHRpbHRZLCB0d2lzdCwgYWx0aXR1ZGVBbmdsZSwg
YXppbXV0aEFuZ2xlfT17fSkgewogICAgICAgbGV0IHNvdXJjZSA9IHRoaXMuZ2V0U291cmNlKCJw
b2ludGVyIiwgc291cmNlTmFtZSk7Ci0gICAgICBzb3VyY2UucG9pbnRlck1vdmUodGhpcywgeCwg
eSwgZHVyYXRpb24sIG9yaWdpbik7CisgICAgICBzb3VyY2UucG9pbnRlck1vdmUodGhpcywgeCwg
eSwgZHVyYXRpb24sIG9yaWdpbiwgd2lkdGgsIGhlaWdodCwgcHJlc3N1cmUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgdGFuZ2VudGlhbFByZXNzdXJlLCB0aWx0WCwgdGlsdFksIHR3aXN0LCBh
bHRpdHVkZUFuZ2xlLAorICAgICAgICAgICAgICAgICAgICAgICAgIGF6aW11dGhBbmdsZSk7CiAg
ICAgICByZXR1cm4gdGhpczsKICAgICB9LAogCkBAIC00MjQsNiArNDMxLDM4IEBACiAgICAgdGhp
cy5hY3Rpb25zID0gbmV3IE1hcCgpOwogICB9CiAKKyAgZnVuY3Rpb24gc2V0UG9pbnRlclByb3Bl
cnRpZXMoYWN0aW9uLCB3aWR0aCwgaGVpZ2h0LCBwcmVzc3VyZSwgdGFuZ2VudGlhbFByZXNzdXJl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWx0WCwgdGlsdFksIHR3aXN0LCBh
bHRpdHVkZUFuZ2xlLCBhemltdXRoQW5nbGUpIHsKKyAgICBpZiAod2lkdGgpIHsKKyAgICAgIGFj
dGlvbi53aWR0aCA9IHdpZHRoOworICAgIH0KKyAgICBpZiAoaGVpZ2h0KSB7CisgICAgICBhY3Rp
b24uaGVpZ2h0ID0gaGVpZ2h0OworICAgIH0KKyAgICBpZiAocHJlc3N1cmUpIHsKKyAgICAgIGFj
dGlvbi5wcmVzc3VyZSA9IHByZXNzdXJlOworICAgIH0KKyAgICBpZiAodGFuZ2VudGlhbFByZXNz
dXJlKSB7CisgICAgICBhY3Rpb24udGFuZ2VudGlhbFByZXNzdXJlID0gdGFuZ2VudGlhbFByZXNz
dXJlOworICAgIH0KKyAgICBpZiAodGlsdFgpIHsKKyAgICAgIGFjdGlvbi50aWx0WCA9IHRpbHRY
OworICAgIH0KKyAgICBpZiAodGlsdFkpIHsKKyAgICAgIGFjdGlvbi50aWx0WSA9IHRpbHRZOwor
ICAgIH0KKyAgICBpZiAodHdpc3QpIHsKKyAgICAgIGFjdGlvbi50d2lzdCA9IHR3aXN0OworICAg
IH0KKyAgICBpZiAoYWx0aXR1ZGVBbmdsZSkgeworICAgICAgYWN0aW9uLmFsdGl0dWRlQW5nbGUg
PSBhbHRpdHVkZUFuZ2xlOworICAgIH0KKyAgICBpZiAoYXppbXV0aEFuZ2xlKSB7CisgICAgICBh
Y3Rpb24uYXppbXV0aEFuZ2xlID0gYXppbXV0aEFuZ2xlOworICAgIH0KKyAgICByZXR1cm4gYWN0
aW9uOworICB9CisKICAgUG9pbnRlclNvdXJjZS5wcm90b3R5cGUgPSB7CiAgICAgc2VyaWFsaXpl
OiBmdW5jdGlvbih0aWNrQ291bnQpIHsKICAgICAgIGlmICghdGhpcy5hY3Rpb25zLnNpemUpIHsK
QEAgLTQ0MSwxMiArNDgwLDE2IEBACiAgICAgICByZXR1cm4gZGF0YTsKICAgICB9LAogCi0gICAg
cG9pbnRlckRvd246IGZ1bmN0aW9uKGFjdGlvbnMsIGJ1dHRvbikgeworICAgIHBvaW50ZXJEb3du
OiBmdW5jdGlvbihhY3Rpb25zLCBidXR0b24sIHdpZHRoLCBoZWlnaHQsIHByZXNzdXJlLCB0YW5n
ZW50aWFsUHJlc3N1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbHRYLCB0aWx0WSwg
dHdpc3QsIGFsdGl0dWRlQW5nbGUsIGF6aW11dGhBbmdsZSkgewogICAgICAgbGV0IHRpY2sgPSBh
Y3Rpb25zLnRpY2tJZHg7CiAgICAgICBpZiAodGhpcy5hY3Rpb25zLmhhcyh0aWNrKSkgewogICAg
ICAgICB0aWNrID0gYWN0aW9ucy5hZGRUaWNrKCkudGlja0lkeDsKICAgICAgIH0KLSAgICAgIHRo
aXMuYWN0aW9ucy5zZXQodGljaywge3R5cGU6ICJwb2ludGVyRG93biIsIGJ1dHRvbn0pOworICAg
ICAgbGV0IGFjdGlvblByb3BlcnRpZXMgPSBzZXRQb2ludGVyUHJvcGVydGllcyh7dHlwZTogInBv
aW50ZXJEb3duIiwgYnV0dG9ufSwgd2lkdGgsIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmUsIHRhbmdlbnRpYWxQcmVzc3Vy
ZSwgdGlsdFgsIHRpbHRZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0d2lzdCwgYWx0aXR1ZGVBbmdsZSwgYXppbXV0aEFuZ2xlKTsKKyAgICAgIHRo
aXMuYWN0aW9ucy5zZXQodGljaywgYWN0aW9uUHJvcGVydGllcyk7CiAgICAgfSwKIAogICAgIHBv
aW50ZXJVcDogZnVuY3Rpb24oYWN0aW9ucywgYnV0dG9uKSB7CkBAIC00NTcsMTUgKzUwMCwyMCBA
QAogICAgICAgdGhpcy5hY3Rpb25zLnNldCh0aWNrLCB7dHlwZTogInBvaW50ZXJVcCIsIGJ1dHRv
bn0pOwogICAgIH0sCiAKLSAgICBwb2ludGVyTW92ZTogZnVuY3Rpb24oYWN0aW9ucywgeCwgeSwg
ZHVyYXRpb24sIG9yaWdpbikgeworICAgIHBvaW50ZXJNb3ZlOiBmdW5jdGlvbihhY3Rpb25zLCB4
LCB5LCBkdXJhdGlvbiwgb3JpZ2luLCB3aWR0aCwgaGVpZ2h0LCBwcmVzc3VyZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGFuZ2VudGlhbFByZXNzdXJlLCB0aWx0WCwgdGlsdFksIHR3aXN0
LCBhbHRpdHVkZUFuZ2xlLCBhemltdXRoQW5nbGUpIHsKICAgICAgIGxldCB0aWNrID0gYWN0aW9u
cy50aWNrSWR4OwogICAgICAgaWYgKHRoaXMuYWN0aW9ucy5oYXModGljaykpIHsKICAgICAgICAg
dGljayA9IGFjdGlvbnMuYWRkVGljaygpLnRpY2tJZHg7CiAgICAgICB9Ci0gICAgICB0aGlzLmFj
dGlvbnMuc2V0KHRpY2ssIHt0eXBlOiAicG9pbnRlck1vdmUiLCB4LCB5LCBvcmlnaW59KTsKKyAg
ICAgIGxldCBtb3ZlQWN0aW9uID0ge3R5cGU6ICJwb2ludGVyTW92ZSIsIHgsIHksIG9yaWdpbn07
CiAgICAgICBpZiAoZHVyYXRpb24pIHsKLSAgICAgICAgdGhpcy5hY3Rpb25zLmdldCh0aWNrKS5k
dXJhdGlvbiA9IGR1cmF0aW9uOworICAgICAgICBtb3ZlQWN0aW9uLmR1cmF0aW9uID0gZHVyYXRp
b247CiAgICAgICB9CisgICAgICBsZXQgYWN0aW9uUHJvcGVydGllcyA9IHNldFBvaW50ZXJQcm9w
ZXJ0aWVzKG1vdmVBY3Rpb24sIHdpZHRoLCBoZWlnaHQsIHByZXNzdXJlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YW5nZW50aWFsUHJlc3N1cmUs
IHRpbHRYLCB0aWx0WSwgdHdpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFsdGl0dWRlQW5nbGUsIGF6aW11dGhBbmdsZSk7CisgICAgICB0aGlz
LmFjdGlvbnMuc2V0KHRpY2ssIGFjdGlvblByb3BlcnRpZXMpOwogICAgIH0sCiAKICAgICBhZGRQ
YXVzZTogZnVuY3Rpb24oYWN0aW9ucywgZHVyYXRpb24pIHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0ZHJpdmVyLmpzCmluZGV4IGM1M2IyNDEzNmMwOTFmMDVlNGZmYmUyODZkMDYwYWJhMGZh
NjZjZGYuLmYyZGYyNmNkYTFjY2RmNmQ2YjVjMTdhZGY2NjRiMDdmMmI2Y2Q3ZWEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Vz
L3Rlc3Rkcml2ZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcwpAQCAtMTQ2LDYgKzE0NiwyNCBAQAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogY2Vu
dGVyUG9pbnRbMV19KTsKICAgICAgICAgfSwKIAorICAgICAgICAvKioKKyAgICAgICAgICogRGVs
ZXRlcyBhbGwgY29va2llcy4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBtYXRjaGVzIHRo
ZSBiZWhhdmlvdXIgb2YgdGhlIHtAbGluaworICAgICAgICAgKiBodHRwczovL3czYy5naXRodWIu
aW8vd2ViZHJpdmVyLyNkZWxldGUtYWxsLWNvb2tpZXN8V2ViRHJpdmVyCisgICAgICAgICAqIERl
bGV0ZSBBbGwgQ29va2llcyBjb21tYW5kfS4KKyAgICAgICAgICoKKyAgICAgICAgICogQHBhcmFt
IHtXaW5kb3dQcm94eX0gY29udGV4dCAtIEJyb3dzaW5nIGNvbnRleHQgaW4gd2hpY2gKKyAgICAg
ICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHJ1biB0aGUgY2FsbCwgb3Ig
bnVsbCBmb3IgdGhlIGN1cnJlbnQKKyAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyb3dzaW5nIGNvbnRleHQuCisgICAgICAgICAqCisgICAgICAgICAqIEByZXR1cm5z
IHtQcm9taXNlfSBmdWxmaWxsZWQgYWZ0ZXIgY29va2llcyBhcmUgZGVsZXRlZCwgb3IgcmVqZWN0
ZWQgaW4KKyAgICAgICAgICogICAgICAgICAgICAgICAgICAgIHRoZSBjYXNlcyB0aGUgV2ViRHJp
dmVyIGNvbW1hbmQgZXJyb3JzCisgICAgICAgICAqLworICAgICAgICBkZWxldGVfYWxsX2Nvb2tp
ZXM6IGZ1bmN0aW9uKGNvbnRleHQ9bnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy50
ZXN0X2RyaXZlcl9pbnRlcm5hbC5kZWxldGVfYWxsX2Nvb2tpZXMoY29udGV4dCk7CisgICAgICAg
IH0sCisKICAgICAgICAgLyoqCiAgICAgICAgICAqIFNlbmQga2V5cyB0byBhbiBlbGVtZW50CiAg
ICAgICAgICAqCkBAIC0yNTksNyArMjc3LDcgQEAKICAgICAgICAgICogQHJldHVybnMge1Byb21p
c2V9IGZ1bGZpbGxlZCBhZnRlciB0aGUgcGVybWlzc2lvbiBpcyBzZXQsIG9yIHJlamVjdGVkIGlm
IHNldHRpbmcgdGhlCiAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICBwZXJtaXNzaW9uIGZh
aWxzCiAgICAgICAgICAqLwotICAgICAgICBzZXRfcGVybWlzc2lvbjogZnVuY3Rpb24oZGVzY3Jp
cHRvciwgc3RhdGUsIG9uZV9yZWFsbSwgY29udGV4dD1udWxsKSB7CisgICAgICAgIHNldF9wZXJt
aXNzaW9uOiBmdW5jdGlvbihkZXNjcmlwdG9yLCBzdGF0ZSwgb25lX3JlYWxtPWZhbHNlLCBjb250
ZXh0PW51bGwpIHsKICAgICAgICAgICAgIGxldCBwZXJtaXNzaW9uX3BhcmFtcyA9IHsKICAgICAg
ICAgICAgICAgZGVzY3JpcHRvciwKICAgICAgICAgICAgICAgc3RhdGUsCkBAIC00NTgsNiArNDc2
LDEwIEBACiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSwKIAorICAgICAgICBkZWxldGVfYWxs
X2Nvb2tpZXM6IGZ1bmN0aW9uKGNvbnRleHQ9bnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIFBy
b21pc2UucmVqZWN0KG5ldyBFcnJvcigidW5pbXBsZW1lbnRlZCIpKTsKKyAgICAgICAgfSwKKwog
ICAgICAgICBzZW5kX2tleXM6IGZ1bmN0aW9uKGVsZW1lbnQsIGtleXMpIHsKICAgICAgICAgICAg
IGlmICh0aGlzLmluX2F1dG9tYXRpb24pIHsKICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlz
ZS5yZWplY3QobmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKSk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzCmluZGV4IGQ1MGUwOTQxMTdkZjU2ZGI0OWQ3NWYxNjIwYzRh
YmE1MTMxOWZjM2MuLmY4NWIxOWZkOWJkOTBjMzQ3NmRlZGNiZTU4MjViODJmYjQwZGU4MmMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzCkBAIC0xLDIxICsxLDExIEBA
CiAvKmdsb2JhbCBzZWxmKi8KIC8qanNoaW50IGxhdGVkZWY6IG5vZnVuYyovCi0vKgotRGlzdHJp
YnV0ZWQgdW5kZXIgYm90aCB0aGUgVzNDIFRlc3QgU3VpdGUgTGljZW5zZSBbMV0gYW5kIHRoZSBX
M0MKLTMtY2xhdXNlIEJTRCBMaWNlbnNlIFsyXS4gVG8gY29udHJpYnV0ZSB0byBhIFczQyBUZXN0
IFN1aXRlLCBzZWUgdGhlCi1wb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KLQot
WzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwOC8wNC10ZXN0c3VpdGUt
bGljZW5zZQotWzJdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwOC8wMy1i
c2QtbGljZW5zZQotWzNdIGh0dHA6Ly93d3cudzMub3JnLzIwMDQvMTAvMjctdGVzdGNhc2VzCi0q
LwogCiAvKiBEb2N1bWVudGF0aW9uOiBodHRwczovL3dlYi1wbGF0Zm9ybS10ZXN0cy5vcmcvd3Jp
dGluZy10ZXN0cy90ZXN0aGFybmVzcy1hcGkuaHRtbAogICogKC4uL2RvY3MvX3dyaXRpbmctdGVz
dHMvdGVzdGhhcm5lc3MtYXBpLm1kKSAqLwogCiAoZnVuY3Rpb24gKGdsb2JhbF9zY29wZSkKIHsK
LSAgICB2YXIgZGVidWcgPSBmYWxzZTsKICAgICAvLyBkZWZhdWx0IHRpbWVvdXQgaXMgMTAgc2Vj
b25kcywgdGVzdCBjYW4gb3ZlcnJpZGUgaWYgbmVlZGVkCiAgICAgdmFyIHNldHRpbmdzID0gewog
ICAgICAgICBvdXRwdXQ6dHJ1ZSwKQEAgLTI0LDcgKzE0LDggQEAgcG9saWNpZXMgYW5kIGNvbnRy
aWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAibG9uZyI6NjAwMDAKICAgICAgICAgfSwK
ICAgICAgICAgdGVzdF90aW1lb3V0Om51bGwsCi0gICAgICAgIG1lc3NhZ2VfZXZlbnRzOiBbInN0
YXJ0IiwgInRlc3Rfc3RhdGUiLCAicmVzdWx0IiwgImNvbXBsZXRpb24iXQorICAgICAgICBtZXNz
YWdlX2V2ZW50czogWyJzdGFydCIsICJ0ZXN0X3N0YXRlIiwgInJlc3VsdCIsICJjb21wbGV0aW9u
Il0sCisgICAgICAgIGRlYnVnOiBmYWxzZSwKICAgICB9OwogCiAgICAgdmFyIHhodG1sX25zID0g
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiOwpAQCAtODcsMTQgKzc4LDE1IEBAIHBvbGlj
aWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdDogdGVzdC5zdHJ1Y3R1cmVkX2Nsb25lKCl9KTsKICAg
ICAgICAgICAgICAgICAgICAgIH1dLAogICAgICAgICAgICAgY29tcGxldGlvbjogW2FkZF9jb21w
bGV0aW9uX2NhbGxiYWNrLCByZW1vdmVfY29tcGxldGlvbl9jYWxsYmFjaywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jdGlvbiAodGVzdHMsIGhhcm5lc3Nfc3RhdHVzKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKHRlc3RzLCBoYXJuZXNzX3N0YXR1cywgYXNzZXJ0
cykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2xvbmVkX3Rlc3RzID0gbWFw
KHRlc3RzLCBmdW5jdGlvbih0ZXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gdGVzdC5zdHJ1Y3R1cmVkX2Nsb25lKCk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzX29iai5fZGlzcGF0
Y2goImNvbXBsZXRpb25fY2FsbGJhY2siLCBbdGVzdHMsIGhhcm5lc3Nfc3RhdHVzXSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0eXBlOiAiY29tcGxl
dGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RzOiBjbG9uZWRfdGVzdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3RhdHVzOiBoYXJuZXNzX3N0YXR1cy5zdHJ1Y3R1cmVkX2Nsb25lKCl9KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6
IGhhcm5lc3Nfc3RhdHVzLnN0cnVjdHVyZWRfY2xvbmUoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRzOiBhc3NlcnRzLm1hcChhc3NlcnQg
PT4gYXNzZXJ0LnN0cnVjdHVyZWRfY2xvbmUoKSl9KTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICB9XQogICAgICAgICB9CiAKQEAgLTEzMSwxMSArMTIzLDcgQEAgcG9saWNpZXMgYW5kIGNvbnRy
aWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzX3NlbGVj
dG9yKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgd1tzZWxlY3Rvcl0uYXBwbHkodW5kZWZpbmVkLCBjYWxsYmFja19h
cmdzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZWJ1ZykgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhyb3cgZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9IGNhdGNoIChlKSB7fQogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGlmIChzdXBwb3J0c19wb3N0X21l
c3NhZ2UodykgJiYgdyAhPT0gc2VsZikgewpAQCAtMTkyLDggKzE4MCw4IEBAIHBvbGljaWVzIGFu
ZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgdGhpc19vYmoub3V0cHV0X2hh
bmRsZXIuc2hvd19zdGF0dXMoKTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgYWRkX2NvbXBsZXRp
b25fY2FsbGJhY2soZnVuY3Rpb24gKHRlc3RzLCBoYXJuZXNzX3N0YXR1cykgewotICAgICAgICAg
ICAgdGhpc19vYmoub3V0cHV0X2hhbmRsZXIuc2hvd19yZXN1bHRzKHRlc3RzLCBoYXJuZXNzX3N0
YXR1cyk7CisgICAgICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uICh0ZXN0cywg
aGFybmVzc19zdGF0dXMsIGFzc2VydHNfcnVuKSB7CisgICAgICAgICAgICB0aGlzX29iai5vdXRw
dXRfaGFuZGxlci5zaG93X3Jlc3VsdHModGVzdHMsIGhhcm5lc3Nfc3RhdHVzLCBhc3NlcnRzX3J1
bik7CiAgICAgICAgIH0pOwogICAgICAgICB0aGlzLnNldHVwX21lc3NhZ2VzKHNldHRpbmdzLm1l
c3NhZ2VfZXZlbnRzKTsKICAgICB9OwpAQCAtMzE0LDE0ICszMDIsMTUgQEAgcG9saWNpZXMgYW5k
IGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAg
ICAgICAgICAgIH0pOwogICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygKLSAgICAgICAg
ICAgICAgICBmdW5jdGlvbih0ZXN0cywgaGFybmVzc19zdGF0dXMpIHsKKyAgICAgICAgICAgICAg
ICBmdW5jdGlvbih0ZXN0cywgaGFybmVzc19zdGF0dXMsIGFzc2VydHMpIHsKICAgICAgICAgICAg
ICAgICAgICAgdGhpc19vYmouX2Rpc3BhdGNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgIHR5
cGU6ICJjb21wbGV0ZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0czogbWFwKHRlc3Rz
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKHRlc3QpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRlc3Quc3RydWN0dXJlZF9jbG9uZSgpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLAotICAgICAgICAgICAgICAgICAgICAgICAg
c3RhdHVzOiBoYXJuZXNzX3N0YXR1cy5zdHJ1Y3R1cmVkX2Nsb25lKCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXR1czogaGFybmVzc19zdGF0dXMuc3RydWN0dXJlZF9jbG9uZSgpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0czogYXNzZXJ0cy5tYXAoYXNzZXJ0ID0+IGFzc2Vy
dC5zdHJ1Y3R1cmVkX2Nsb25lKCkpLAogICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAg
ICAgICAgICB9KTsKICAgICB9OwpAQCAtNTAwLDExICs0ODksNyBAQCBwb2xpY2llcyBhbmQgY29u
dHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgIHJldHVybiBuZXcgRGVkaWNhdGVkV29y
a2VyVGVzdEVudmlyb25tZW50KCk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoISgnbG9jYXRp
b24nIGluIGdsb2JhbF9zY29wZSkpIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgU2hlbGxUZXN0
RW52aXJvbm1lbnQoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5z
dXBwb3J0ZWQgdGVzdCBlbnZpcm9ubWVudCIpOworICAgICAgICByZXR1cm4gbmV3IFNoZWxsVGVz
dEVudmlyb25tZW50KCk7CiAgICAgfQogCiAgICAgdmFyIHRlc3RfZW52aXJvbm1lbnQgPSBjcmVh
dGVfdGVzdF9lbnZpcm9ubWVudCgpOwpAQCAtMTE4NywxOSArMTE3Miw1MyBAQCBwb2xpY2llcyBh
bmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgKiBBc3NlcnRpb25zCiAgICAgICovCiAK
KyAgICBmdW5jdGlvbiBleHBvc2VfYXNzZXJ0KGYsIG5hbWUpIHsKKyAgICAgICAgZnVuY3Rpb24g
YXNzZXJ0X3dyYXBwZXIoLi4uYXJncykgeworICAgICAgICAgICAgbGV0IHN0YXR1cyA9IFRlc3Qu
c3RhdHVzZXMuVElNRU9VVDsKKyAgICAgICAgICAgIGxldCBzdGFjayA9IG51bGw7CisgICAgICAg
ICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlmIChzZXR0aW5ncy5kZWJ1ZykgeworICAgICAg
ICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKCJBU1NFUlQiLCBuYW1lLCB0ZXN0cy5jdXJyZW50
X3Rlc3QgJiYgdGVzdHMuY3VycmVudF90ZXN0Lm5hbWUsIGFyZ3MpOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBpZiAodGVzdHMub3V0cHV0KSB7CisgICAgICAgICAgICAgICAg
ICAgIHRlc3RzLnNldF9hc3NlcnQobmFtZSwgYXJncyk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIGNvbnN0IHJ2ID0gZi5hcHBseSh1bmRlZmluZWQsIGFyZ3MpOworICAgICAg
ICAgICAgICAgIHN0YXR1cyA9IFRlc3Quc3RhdHVzZXMuUEFTUzsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gcnY7CisgICAgICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAgICBpZiAo
ZSBpbnN0YW5jZW9mIEFzc2VydGlvbkVycm9yKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXR1
cyA9IFRlc3Quc3RhdHVzZXMuRkFJTDsKKyAgICAgICAgICAgICAgICAgICAgc3RhY2sgPSBlLnN0
YWNrOworICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzdGF0
dXMgPSBUZXN0LnN0YXR1c2VzLkVSUk9SOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAg
aWYgKHRlc3RzLm91dHB1dCAmJiAhc3RhY2spIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhY2sg
PSBnZXRfc3RhY2soKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHRl
c3RzLm91dHB1dCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0cy5zZXRfYXNzZXJ0X3N0YXR1
cyhzdGF0dXMsIHN0YWNrKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgZXhwb3NlKGFzc2VydF93cmFwcGVyLCBuYW1lKTsKKyAgICB9CisKICAg
ICBmdW5jdGlvbiBhc3NlcnRfdHJ1ZShhY3R1YWwsIGRlc2NyaXB0aW9uKQogICAgIHsKICAgICAg
ICAgYXNzZXJ0KGFjdHVhbCA9PT0gdHJ1ZSwgImFzc2VydF90cnVlIiwgZGVzY3JpcHRpb24sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCB0cnVlIGdvdCAke2FjdHVh
bH0iLCB7YWN0dWFsOmFjdHVhbH0pOwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X3RydWUsICJh
c3NlcnRfdHJ1ZSIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X3RydWUsICJhc3NlcnRfdHJ1
ZSIpOwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X2ZhbHNlKGFjdHVhbCwgZGVzY3JpcHRpb24pCiAg
ICAgewogICAgICAgICBhc3NlcnQoYWN0dWFsID09PSBmYWxzZSwgImFzc2VydF9mYWxzZSIsIGRl
c2NyaXB0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIGZh
bHNlIGdvdCAke2FjdHVhbH0iLCB7YWN0dWFsOmFjdHVhbH0pOwogICAgIH0KLSAgICBleHBvc2Uo
YXNzZXJ0X2ZhbHNlLCAiYXNzZXJ0X2ZhbHNlIik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRf
ZmFsc2UsICJhc3NlcnRfZmFsc2UiKTsKIAogICAgIGZ1bmN0aW9uIHNhbWVfdmFsdWUoeCwgeSkg
ewogICAgICAgICBpZiAoeSAhPT0geSkgewpAQCAtMTIyOSw3ICsxMjQ4LDcgQEAgcG9saWNpZXMg
YW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgJHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH0i
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2V4cGVjdGVk
OmV4cGVjdGVkLCBhY3R1YWw6YWN0dWFsfSk7CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfZXF1
YWxzLCAiYXNzZXJ0X2VxdWFscyIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X2VxdWFscywg
ImFzc2VydF9lcXVhbHMiKTsKIAogICAgIGZ1bmN0aW9uIGFzc2VydF9ub3RfZXF1YWxzKGFjdHVh
bCwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKQogICAgIHsKQEAgLTEyNDEsNyArMTI2MCw3IEBAIHBv
bGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJnb3QgZGlzYWxsb3dlZCB2YWx1ZSAke2FjdHVhbH0i
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthY3R1YWw6
YWN0dWFsfSk7CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfbm90X2VxdWFscywgImFzc2VydF9u
b3RfZXF1YWxzIik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfbm90X2VxdWFscywgImFzc2Vy
dF9ub3RfZXF1YWxzIik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfaW5fYXJyYXkoYWN0dWFsLCBl
eHBlY3RlZCwgZGVzY3JpcHRpb24pCiAgICAgewpAQCAtMTI0OSw3ICsxMjY4LDcgQEAgcG9saWNp
ZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSAke2FjdHVhbH0gbm90IGluIGFycmF5ICR7ZXhw
ZWN0ZWR9IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
e2FjdHVhbDphY3R1YWwsIGV4cGVjdGVkOmV4cGVjdGVkfSk7CiAgICAgfQotICAgIGV4cG9zZShh
c3NlcnRfaW5fYXJyYXksICJhc3NlcnRfaW5fYXJyYXkiKTsKKyAgICBleHBvc2VfYXNzZXJ0KGFz
c2VydF9pbl9hcnJheSwgImFzc2VydF9pbl9hcnJheSIpOwogCiAgICAgLy8gVGhpcyBmdW5jdGlv
biB3YXMgZGVwcmVjYXRlZCBpbiBKdWx5IG9mIDIwMTUuCiAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8yMDMzCkBAIC0xMjg3LDcgKzEz
MDYsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgIH0K
ICAgICAgICAgIGNoZWNrX2VxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIFtdKTsKICAgICB9Ci0gICAg
ZXhwb3NlKGFzc2VydF9vYmplY3RfZXF1YWxzLCAiYXNzZXJ0X29iamVjdF9lcXVhbHMiKTsKKyAg
ICBleHBvc2VfYXNzZXJ0KGFzc2VydF9vYmplY3RfZXF1YWxzLCAiYXNzZXJ0X29iamVjdF9lcXVh
bHMiKTsKIAogICAgIGZ1bmN0aW9uIGFzc2VydF9hcnJheV9lcXVhbHMoYWN0dWFsLCBleHBlY3Rl
ZCwgZGVzY3JpcHRpb24pCiAgICAgewpAQCAtMTM0NCw3ICsxMzYzLDcgQEAgcG9saWNpZXMgYW5k
IGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAgICAgICAgIGFycmF5RXhwZWN0
ZWQ6c2hvcnRlbl9hcnJheShleHBlY3RlZCwgaSksIGFycmF5QWN0dWFsOnNob3J0ZW5fYXJyYXko
YWN0dWFsLCBpKX0pOwogICAgICAgICB9CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfYXJyYXlf
ZXF1YWxzLCAiYXNzZXJ0X2FycmF5X2VxdWFscyIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0
X2FycmF5X2VxdWFscywgImFzc2VydF9hcnJheV9lcXVhbHMiKTsKIAogICAgIGZ1bmN0aW9uIGFz
c2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGFjdHVhbCwgZXhwZWN0ZWQsIGVwc2lsb24sIGRlc2Ny
aXB0aW9uKQogICAgIHsKQEAgLTEzNzIsNyArMTM5MSw3IEBAIHBvbGljaWVzIGFuZCBjb250cmli
dXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgIHtpOmksIGV4cGVjdGVkOmV4cGVj
dGVkW2ldLCBhY3R1YWw6YWN0dWFsW2ldLCBlcHNpbG9uOmVwc2lsb259KTsKICAgICAgICAgfQog
ICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMsICJhc3NlcnRfYXJy
YXlfYXBwcm94X2VxdWFscyIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X2FycmF5X2FwcHJv
eF9lcXVhbHMsICJhc3NlcnRfYXJyYXlfYXBwcm94X2VxdWFscyIpOwogCiAgICAgZnVuY3Rpb24g
YXNzZXJ0X2FwcHJveF9lcXVhbHMoYWN0dWFsLCBleHBlY3RlZCwgZXBzaWxvbiwgZGVzY3JpcHRp
b24pCiAgICAgewpAQCAtMTM5NSw3ICsxNDE0LDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlv
biBmb3JtcyBbM10uCiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbCwgZXhwZWN0ZWQp
OwogICAgICAgICB9CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfYXBwcm94X2VxdWFscywgImFz
c2VydF9hcHByb3hfZXF1YWxzIik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfYXBwcm94X2Vx
dWFscywgImFzc2VydF9hcHByb3hfZXF1YWxzIik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfbGVz
c190aGFuKGFjdHVhbCwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKQogICAgIHsKQEAgLTE0MTIsNyAr
MTQzMSw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAg
ICAgICAgImV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAke2V4cGVjdGVkfSBidXQgZ290ICR7
YWN0dWFsfSIsCiAgICAgICAgICAgICAgICB7ZXhwZWN0ZWQ6ZXhwZWN0ZWQsIGFjdHVhbDphY3R1
YWx9KTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF9sZXNzX3RoYW4sICJhc3NlcnRfbGVzc190
aGFuIik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfbGVzc190aGFuLCAiYXNzZXJ0X2xlc3Nf
dGhhbiIpOwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X2dyZWF0ZXJfdGhhbihhY3R1YWwsIGV4cGVj
dGVkLCBkZXNjcmlwdGlvbikKICAgICB7CkBAIC0xNDI5LDcgKzE0NDgsNyBAQCBwb2xpY2llcyBh
bmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICJleHBlY3RlZCBhIG51
bWJlciBncmVhdGVyIHRoYW4gJHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH0iLAogICAgICAg
ICAgICAgICAge2V4cGVjdGVkOmV4cGVjdGVkLCBhY3R1YWw6YWN0dWFsfSk7CiAgICAgfQotICAg
IGV4cG9zZShhc3NlcnRfZ3JlYXRlcl90aGFuLCAiYXNzZXJ0X2dyZWF0ZXJfdGhhbiIpOworICAg
IGV4cG9zZV9hc3NlcnQoYXNzZXJ0X2dyZWF0ZXJfdGhhbiwgImFzc2VydF9ncmVhdGVyX3RoYW4i
KTsKIAogICAgIGZ1bmN0aW9uIGFzc2VydF9iZXR3ZWVuX2V4Y2x1c2l2ZShhY3R1YWwsIGxvd2Vy
LCB1cHBlciwgZGVzY3JpcHRpb24pCiAgICAgewpAQCAtMTQ0Nyw3ICsxNDY2LDcgQEAgcG9saWNp
ZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAgICAiYW5kIGxlc3Mg
dGhhbiAke3VwcGVyfSBidXQgZ290ICR7YWN0dWFsfSIsCiAgICAgICAgICAgICAgICB7bG93ZXI6
bG93ZXIsIHVwcGVyOnVwcGVyLCBhY3R1YWw6YWN0dWFsfSk7CiAgICAgfQotICAgIGV4cG9zZShh
c3NlcnRfYmV0d2Vlbl9leGNsdXNpdmUsICJhc3NlcnRfYmV0d2Vlbl9leGNsdXNpdmUiKTsKKyAg
ICBleHBvc2VfYXNzZXJ0KGFzc2VydF9iZXR3ZWVuX2V4Y2x1c2l2ZSwgImFzc2VydF9iZXR3ZWVu
X2V4Y2x1c2l2ZSIpOwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChhY3R1
YWwsIGV4cGVjdGVkLCBkZXNjcmlwdGlvbikKICAgICB7CkBAIC0xNDY0LDcgKzE0ODMsNyBAQCBw
b2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICJleHBl
Y3RlZCBhIG51bWJlciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHtleHBlY3RlZH0gYnV0IGdvdCAk
e2FjdHVhbH0iLAogICAgICAgICAgICAgICAge2V4cGVjdGVkOmV4cGVjdGVkLCBhY3R1YWw6YWN0
dWFsfSk7CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfbGVzc190aGFuX2VxdWFsLCAiYXNzZXJ0
X2xlc3NfdGhhbl9lcXVhbCIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X2xlc3NfdGhhbl9l
cXVhbCwgImFzc2VydF9sZXNzX3RoYW5fZXF1YWwiKTsKIAogICAgIGZ1bmN0aW9uIGFzc2VydF9n
cmVhdGVyX3RoYW5fZXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRpb24pCiAgICAgewpA
QCAtMTQ4MSw3ICsxNTAwLDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10u
CiAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgYSBudW1iZXIgZ3JlYXRlciB0aGFuIG9yIGVxdWFs
IHRvICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9IiwKICAgICAgICAgICAgICAgIHtleHBl
Y3RlZDpleHBlY3RlZCwgYWN0dWFsOmFjdHVhbH0pOwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0
X2dyZWF0ZXJfdGhhbl9lcXVhbCwgImFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwiKTsKKyAgICBl
eHBvc2VfYXNzZXJ0KGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwsICJhc3NlcnRfZ3JlYXRlcl90
aGFuX2VxdWFsIik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfYmV0d2Vlbl9pbmNsdXNpdmUoYWN0
dWFsLCBsb3dlciwgdXBwZXIsIGRlc2NyaXB0aW9uKQogICAgIHsKQEAgLTE0OTksNyArMTUxOCw3
IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAg
ImFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHt1cHBlcn0gYnV0IGdvdCAke2FjdHVhbH0iLAog
ICAgICAgICAgICAgICAge2xvd2VyOmxvd2VyLCB1cHBlcjp1cHBlciwgYWN0dWFsOmFjdHVhbH0p
OwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2JldHdlZW5faW5jbHVzaXZlLCAiYXNzZXJ0X2Jl
dHdlZW5faW5jbHVzaXZlIik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfYmV0d2Vlbl9pbmNs
dXNpdmUsICJhc3NlcnRfYmV0d2Vlbl9pbmNsdXNpdmUiKTsKIAogICAgIGZ1bmN0aW9uIGFzc2Vy
dF9yZWdleHBfbWF0Y2goYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRpb24pIHsKICAgICAgICAg
LyoKQEAgLTE1MTAsNyArMTUyOSw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMg
WzNdLgogICAgICAgICAgICAgICAgImV4cGVjdGVkICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1
YWx9IiwKICAgICAgICAgICAgICAgIHtleHBlY3RlZDpleHBlY3RlZCwgYWN0dWFsOmFjdHVhbH0p
OwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X3JlZ2V4cF9tYXRjaCwgImFzc2VydF9yZWdleHBf
bWF0Y2giKTsKKyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF9yZWdleHBfbWF0Y2gsICJhc3NlcnRf
cmVnZXhwX21hdGNoIik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfY2xhc3Nfc3RyaW5nKG9iamVj
dCwgY2xhc3Nfc3RyaW5nLCBkZXNjcmlwdGlvbikgewogICAgICAgICB2YXIgYWN0dWFsID0ge30u
dG9TdHJpbmcuY2FsbChvYmplY3QpOwpAQCAtMTUxOSwyNyArMTUzOCwyNyBAQCBwb2xpY2llcyBh
bmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJleHBlY3RlZCAke2V4cGVjdGVkfSBidXQgZ290ICR7YWN0dWFsfSIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZXhwZWN0ZWQ6
ZXhwZWN0ZWQsIGFjdHVhbDphY3R1YWx9KTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF9jbGFz
c19zdHJpbmcsICJhc3NlcnRfY2xhc3Nfc3RyaW5nIik7Ci0KKyAgICBleHBvc2VfYXNzZXJ0KGFz
c2VydF9jbGFzc19zdHJpbmcsICJhc3NlcnRfY2xhc3Nfc3RyaW5nIik7CiAKICAgICBmdW5jdGlv
biBhc3NlcnRfb3duX3Byb3BlcnR5KG9iamVjdCwgcHJvcGVydHlfbmFtZSwgZGVzY3JpcHRpb24p
IHsKICAgICAgICAgYXNzZXJ0KG9iamVjdC5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eV9uYW1lKSwK
ICAgICAgICAgICAgICAgICJhc3NlcnRfb3duX3Byb3BlcnR5IiwgZGVzY3JpcHRpb24sCiAgICAg
ICAgICAgICAgICAiZXhwZWN0ZWQgcHJvcGVydHkgJHtwfSBtaXNzaW5nIiwge3A6cHJvcGVydHlf
bmFtZX0pOwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X293bl9wcm9wZXJ0eSwgImFzc2VydF9v
d25fcHJvcGVydHkiKTsKKyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF9vd25fcHJvcGVydHksICJh
c3NlcnRfb3duX3Byb3BlcnR5Iik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfbm90X293bl9wcm9w
ZXJ0eShvYmplY3QsIHByb3BlcnR5X25hbWUsIGRlc2NyaXB0aW9uKSB7CiAgICAgICAgIGFzc2Vy
dCghb2JqZWN0Lmhhc093blByb3BlcnR5KHByb3BlcnR5X25hbWUpLAogICAgICAgICAgICAgICAg
ImFzc2VydF9ub3Rfb3duX3Byb3BlcnR5IiwgZGVzY3JpcHRpb24sCiAgICAgICAgICAgICAgICAi
dW5leHBlY3RlZCBwcm9wZXJ0eSAke3B9IGlzIGZvdW5kIG9uIG9iamVjdCIsIHtwOnByb3BlcnR5
X25hbWV9KTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF9ub3Rfb3duX3Byb3BlcnR5LCAiYXNz
ZXJ0X25vdF9vd25fcHJvcGVydHkiKTsKKyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF9ub3Rfb3du
X3Byb3BlcnR5LCAiYXNzZXJ0X25vdF9vd25fcHJvcGVydHkiKTsKIAogICAgIGZ1bmN0aW9uIF9h
c3NlcnRfaW5oZXJpdHMobmFtZSkgewogICAgICAgICByZXR1cm4gZnVuY3Rpb24gKG9iamVjdCwg
cHJvcGVydHlfbmFtZSwgZGVzY3JpcHRpb24pCiAgICAgICAgIHsKLSAgICAgICAgICAgIGFzc2Vy
dCh0eXBlb2Ygb2JqZWN0ID09PSAib2JqZWN0IiB8fCB0eXBlb2Ygb2JqZWN0ID09PSAiZnVuY3Rp
b24iIHx8CisgICAgICAgICAgICBhc3NlcnQoKHR5cGVvZiBvYmplY3QgPT09ICJvYmplY3QiICYm
IG9iamVjdCAhPT0gbnVsbCkgfHwKKyAgICAgICAgICAgICAgICAgICB0eXBlb2Ygb2JqZWN0ID09
PSAiZnVuY3Rpb24iIHx8CiAgICAgICAgICAgICAgICAgICAgLy8gT3IgaGFzIFtbSXNIVE1MRERB
XV0gc2xvdAogICAgICAgICAgICAgICAgICAgIFN0cmluZyhvYmplY3QpID09PSAiW29iamVjdCBI
VE1MQWxsQ29sbGVjdGlvbl0iLAogICAgICAgICAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9u
LApAQCAtMTU2MCw4ICsxNTc5LDggQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBb
M10uCiAgICAgICAgICAgICAgICAgICAge3A6cHJvcGVydHlfbmFtZX0pOwogICAgICAgICB9Owog
ICAgIH0KLSAgICBleHBvc2UoX2Fzc2VydF9pbmhlcml0cygiYXNzZXJ0X2luaGVyaXRzIiksICJh
c3NlcnRfaW5oZXJpdHMiKTsKLSAgICBleHBvc2UoX2Fzc2VydF9pbmhlcml0cygiYXNzZXJ0X2lk
bF9hdHRyaWJ1dGUiKSwgImFzc2VydF9pZGxfYXR0cmlidXRlIik7CisgICAgZXhwb3NlX2Fzc2Vy
dChfYXNzZXJ0X2luaGVyaXRzKCJhc3NlcnRfaW5oZXJpdHMiKSwgImFzc2VydF9pbmhlcml0cyIp
OworICAgIGV4cG9zZV9hc3NlcnQoX2Fzc2VydF9pbmhlcml0cygiYXNzZXJ0X2lkbF9hdHRyaWJ1
dGUiKSwgImFzc2VydF9pZGxfYXR0cmlidXRlIik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfcmVh
ZG9ubHkob2JqZWN0LCBwcm9wZXJ0eV9uYW1lLCBkZXNjcmlwdGlvbikKICAgICB7CkBAIC0xNTc4
LDcgKzE1OTcsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAg
ICAgICAgICBvYmplY3RbcHJvcGVydHlfbmFtZV0gPSBpbml0aWFsX3ZhbHVlOwogICAgICAgICAg
fQogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X3JlYWRvbmx5LCAiYXNzZXJ0X3JlYWRvbmx5Iik7
CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfcmVhZG9ubHksICJhc3NlcnRfcmVhZG9ubHkiKTsK
IAogICAgIC8qKgogICAgICAqIEFzc2VydCBhIEpTIEVycm9yIHdpdGggdGhlIGV4cGVjdGVkIGNv
bnN0cnVjdG9yIGlzIHRocm93bi4KQEAgLTE1OTIsNyArMTYxMSw3IEBAIHBvbGljaWVzIGFuZCBj
b250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICBhc3NlcnRfdGhyb3dzX2pzX2ltcGwoY29u
c3RydWN0b3IsIGZ1bmMsIGRlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImFzc2VydF90aHJvd3NfanMiKTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF90aHJvd3Nf
anMsICJhc3NlcnRfdGhyb3dzX2pzIik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfdGhyb3dz
X2pzLCAiYXNzZXJ0X3Rocm93c19qcyIpOwogCiAgICAgLyoqCiAgICAgICogTGlrZSBhc3NlcnRf
dGhyb3dzX2pzIGJ1dCBhbGxvd3Mgc3BlY2lmeWluZyB0aGUgYXNzZXJ0aW9uIHR5cGUKQEAgLTE2
OTAsNyArMTcwOSw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAg
ICAgICB9CiAgICAgICAgIGFzc2VydF90aHJvd3NfZG9tX2ltcGwodHlwZSwgZnVuYywgZGVzY3Jp
cHRpb24sICJhc3NlcnRfdGhyb3dzX2RvbSIsIGNvbnN0cnVjdG9yKQogICAgIH0KLSAgICBleHBv
c2UoYXNzZXJ0X3Rocm93c19kb20sICJhc3NlcnRfdGhyb3dzX2RvbSIpOworICAgIGV4cG9zZV9h
c3NlcnQoYXNzZXJ0X3Rocm93c19kb20sICJhc3NlcnRfdGhyb3dzX2RvbSIpOwogCiAgICAgLyoq
CiAgICAgICogU2ltaWxhciB0byBhc3NlcnRfdGhyb3dzX2RvbSBidXQgYWxsb3dzIHNwZWNpZnlp
bmcgdGhlIGFzc2VydGlvbiB0eXBlCkBAIC0xODUzLDcgKzE4NzIsNyBAQCBwb2xpY2llcyBhbmQg
Y29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgYXNzZXJ0X3Rocm93c19leGFjdGx5X2lt
cGwoZXhjZXB0aW9uLCBmdW5jLCBkZXNjcmlwdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImFzc2VydF90aHJvd3NfZXhhY3RseSIpOwogICAgIH0KLSAgICBleHBvc2Uo
YXNzZXJ0X3Rocm93c19leGFjdGx5LCAiYXNzZXJ0X3Rocm93c19leGFjdGx5Iik7CisgICAgZXhw
b3NlX2Fzc2VydChhc3NlcnRfdGhyb3dzX2V4YWN0bHksICJhc3NlcnRfdGhyb3dzX2V4YWN0bHki
KTsKIAogICAgIC8qKgogICAgICAqIExpa2UgYXNzZXJ0X3Rocm93c19leGFjdGx5IGJ1dCBhbGxv
d3Mgc3BlY2lmeWluZyB0aGUgYXNzZXJ0aW9uIHR5cGUKQEAgLTE4ODEsNyArMTkwMCw3IEBAIHBv
bGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgYXNzZXJ0KGZhbHNl
LCAiYXNzZXJ0X3VucmVhY2hlZCIsIGRlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgICJSZWFj
aGVkIHVucmVhY2hhYmxlIGNvZGUiKTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF91bnJlYWNo
ZWQsICJhc3NlcnRfdW5yZWFjaGVkIik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfdW5yZWFj
aGVkLCAiYXNzZXJ0X3VucmVhY2hlZCIpOwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X2FueShhc3Nl
cnRfZnVuYywgYWN0dWFsLCBleHBlY3RlZF9hcnJheSkKICAgICB7CkBAIC0xOTAyLDYgKzE5MjEs
OSBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgIHRo
cm93IG5ldyBBc3NlcnRpb25FcnJvcihlcnJvcnMuam9pbigiXG5cbiIpKTsKICAgICAgICAgfQog
ICAgIH0KKyAgICAvLyBGSVhNRTogYXNzZXJ0X2FueSBjYW5ub3QgdXNlIGV4cG9zZV9hc3NlcnQs
IGJlY2F1c2UgYXNzZXJ0X3dyYXBwZXIgZG9lcworICAgIC8vIG5vdCBzdXBwb3J0IG5lc3RlZCBh
c3NlcnQgY2FsbHMgKGUuZy4gdG8gYXNzZXJ0X2Z1bmMpLiBXZSBuZWVkIHRvCisgICAgLy8gc3Vw
cG9ydCBieXBhc3NpbmcgYXNzZXJ0X3dyYXBwZXIgZm9yIHRoZSBpbm5lciBhc3NlcnRzIGhlcmUu
CiAgICAgZXhwb3NlKGFzc2VydF9hbnksICJhc3NlcnRfYW55Iik7CiAKICAgICAvKioKQEAgLTE5
MTksNyArMTk0MSw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAg
IGZ1bmN0aW9uIGFzc2VydF9pbXBsZW1lbnRzKGNvbmRpdGlvbiwgZGVzY3JpcHRpb24pIHsKICAg
ICAgICAgYXNzZXJ0KCEhY29uZGl0aW9uLCAiYXNzZXJ0X2ltcGxlbWVudHMiLCBkZXNjcmlwdGlv
bik7CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfaW1wbGVtZW50cywgImFzc2VydF9pbXBsZW1l
bnRzIikKKyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF9pbXBsZW1lbnRzLCAiYXNzZXJ0X2ltcGxl
bWVudHMiKQogCiAgICAgLyoqCiAgICAgICogQXNzZXJ0IHRoYXQgYW4gb3B0aW9uYWwgZmVhdHVy
ZSBpcyBpbXBsZW1lbnRlZCwgYmFzZWQgb24gYSAndHJ1dGh5JyBjb25kaXRpb24uCkBAIC0xOTM5
LDcgKzE5NjEsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAg
ICAgICAgIHRocm93IG5ldyBPcHRpb25hbEZlYXR1cmVVbnN1cHBvcnRlZEVycm9yKGRlc2NyaXB0
aW9uKTsKICAgICAgICAgfQogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2ltcGxlbWVudHNfb3B0
aW9uYWwsICJhc3NlcnRfaW1wbGVtZW50c19vcHRpb25hbCIpCisgICAgZXhwb3NlX2Fzc2VydChh
c3NlcnRfaW1wbGVtZW50c19vcHRpb25hbCwgImFzc2VydF9pbXBsZW1lbnRzX29wdGlvbmFsIikK
IAogICAgIGZ1bmN0aW9uIFRlc3QobmFtZSwgcHJvcGVydGllcykKICAgICB7CkBAIC0xOTk5LDYg
KzIwMjEsMTggQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAg
IENPTVBMRVRFOjQKICAgICB9OwogCisgICAgVGVzdC5wcm90b3R5cGUuc3RhdHVzX2Zvcm1hdHMg
PSB7CisgICAgICAgIDA6ICJQYXNzIiwKKyAgICAgICAgMTogIkZhaWwiLAorICAgICAgICAyOiAi
VGltZW91dCIsCisgICAgICAgIDM6ICJOb3QgUnVuIiwKKyAgICAgICAgNDogIk9wdGlvbmFsIEZl
YXR1cmUgVW5zdXBwb3J0ZWQiLAorICAgIH0KKworICAgIFRlc3QucHJvdG90eXBlLmZvcm1hdF9z
dGF0dXMgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuc3RhdHVzX2Zvcm1hdHNb
dGhpcy5zdGF0dXNdOworICAgIH0KKwogICAgIFRlc3QucHJvdG90eXBlLnN0cnVjdHVyZWRfY2xv
bmUgPSBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX3N0cnVjdHVyZWRfY2xv
bmUpIHsKQEAgLTIwMjMsMTEgKzIwNTcsMTYgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBm
b3JtcyBbM10uCiAgICAgICAgIGlmICh0aGlzLnBoYXNlID4gdGhpcy5waGFzZXMuU1RBUlRFRCkg
ewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisKKyAgICAgICAgaWYgKHNldHRpbmdz
LmRlYnVnICYmIHRoaXMucGhhc2UgIT09IHRoaXMucGhhc2VzLlNUQVJURUQpIHsKKyAgICAgICAg
ICAgIGNvbnNvbGUubG9nKCJURVNUIFNUQVJUIiwgdGhpcy5uYW1lKTsKKyAgICAgICAgfQogICAg
ICAgICB0aGlzLnBoYXNlID0gdGhpcy5waGFzZXMuU1RBUlRFRDsKICAgICAgICAgLy9JZiB3ZSBk
b24ndCBnZXQgYSByZXN1bHQgYmVmb3JlIHRoZSBoYXJuZXNzIHRpbWVzIG91dCB0aGF0IHdpbGwg
YmUgYSB0ZXN0IHRpbWVvdXQKICAgICAgICAgdGhpcy5zZXRfc3RhdHVzKHRoaXMuVElNRU9VVCwg
IlRlc3QgdGltZWQgb3V0Iik7CiAKICAgICAgICAgdGVzdHMuc3RhcnRlZCA9IHRydWU7CisgICAg
ICAgIHRlc3RzLmN1cnJlbnRfdGVzdCA9IHRoaXM7CiAgICAgICAgIHRlc3RzLm5vdGlmeV90ZXN0
X3N0YXRlKHRoaXMpOwogCiAgICAgICAgIGlmICh0aGlzLnRpbWVvdXRfaWQgPT09IG51bGwpIHsK
QEAgLTIwNDAsNiArMjA3OSwxMCBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFsz
XS4KICAgICAgICAgICAgIHRoaXNfb2JqID0gdGhpczsKICAgICAgICAgfQogCisgICAgICAgIGlm
IChzZXR0aW5ncy5kZWJ1ZykgeworICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygiVEVTVCBTVEVQ
IiwgdGhpcy5uYW1lKTsKKyAgICAgICAgfQorCiAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICBy
ZXR1cm4gZnVuYy5hcHBseSh0aGlzX29iaiwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJn
dW1lbnRzLCAyKSk7CiAgICAgICAgIH0gY2F0Y2ggKGUpIHsKQEAgLTIwNTMsNiArMjA5Niw4IEBA
IHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgdGhpcy5z
ZXRfc3RhdHVzKHN0YXR1cywgbWVzc2FnZSwgc3RhY2spOwogICAgICAgICAgICAgdGhpcy5waGFz
ZSA9IHRoaXMucGhhc2VzLkhBU19SRVNVTFQ7CiAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAg
ICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgIHRoaXMuY3VycmVudF90ZXN0ID0gbnVsbDsK
ICAgICAgICAgfQogICAgIH07CiAKQEAgLTIyNzAsNiArMjMxNSwxMiBAQCBwb2xpY2llcyBhbmQg
Y29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRp
bWVvdXRfaWQpOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKHNldHRpbmdzLmRlYnVnKSB7Cisg
ICAgICAgICAgICBjb25zb2xlLmxvZygiVEVTVCBET05FIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRoaXMuc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYW1lLCkKKyAg
ICAgICAgfQorCiAgICAgICAgIHRoaXMuY2xlYW51cCgpOwogICAgIH07CiAKQEAgLTI0NjksNiAr
MjUyMCwxMCBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAg
ICAgICAgICB9KTsKICAgICB9CiAKKyAgICBSZW1vdGVUZXN0LnByb3RvdHlwZS5mb3JtYXRfc3Rh
dHVzID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiBUZXN0LnByb3RvdHlwZS5zdGF0dXNf
Zm9ybWF0c1t0aGlzLnN0YXR1c107CisgICAgfQorCiAgICAgLyoKICAgICAgKiBBIFJlbW90ZUNv
bnRleHQgbGlzdGVucyBmb3IgdGVzdCBldmVudHMgZnJvbSBhIHJlbW90ZSB0ZXN0IGNvbnRleHQs
IHN1Y2gKICAgICAgKiBhcyBhbm90aGVyIHdpbmRvdyBvciBhIHdvcmtlci4gVGhlc2UgZXZlbnRz
IGFyZSB0aGVuIHVzZWQgdG8gY29uc3RydWN0CkBAIC0yNTc3LDYgKzI2MzIsMTYgQEAgcG9saWNp
ZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICB0ZXN0cy5zZXRfc3Rh
dHVzKGRhdGEuc3RhdHVzLnN0YXR1cywgZGF0YS5zdGF0dXMubWVzc2FnZSwgZGF0YS5zdGF0dXMu
c2Fjayk7CiAgICAgICAgIH0KIAorICAgICAgICBmb3IgKGxldCBhc3NlcnQgb2YgZGF0YS5hc3Nl
cnRzKSB7CisgICAgICAgICAgICB2YXIgcmVjb3JkID0gbmV3IEFzc2VydFJlY29yZCgpOworICAg
ICAgICAgICAgcmVjb3JkLmFzc2VydF9uYW1lID0gYXNzZXJ0LmFzc2VydF9uYW1lOworICAgICAg
ICAgICAgcmVjb3JkLmFyZ3MgPSBhc3NlcnQuYXJnczsKKyAgICAgICAgICAgIHJlY29yZC50ZXN0
ID0gYXNzZXJ0LnRlc3QgIT0gbnVsbCA/IHRoaXMudGVzdHNbYXNzZXJ0LnRlc3QuaW5kZXhdIDog
bnVsbDsKKyAgICAgICAgICAgIHJlY29yZC5zdGF0dXMgPSBhc3NlcnQuc3RhdHVzOworICAgICAg
ICAgICAgcmVjb3JkLnN0YWNrID0gYXNzZXJ0LnN0YWNrOworICAgICAgICAgICAgdGVzdHMuYXNz
ZXJ0c19ydW4ucHVzaChyZWNvcmQpOworICAgICAgICB9CisKICAgICAgICAgdGhpcy5tZXNzYWdl
X3RhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdGhpcy5tZXNzYWdlX2hhbmRs
ZXIpOwogICAgICAgICB0aGlzLnJ1bm5pbmcgPSBmYWxzZTsKIApAQCAtMjYyNiw2ICsyNjkxLDE0
IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogCiAgICAgVGVzdHNTdGF0
dXMucHJvdG90eXBlID0gbWVyZ2Uoe30sIFRlc3RzU3RhdHVzLnN0YXR1c2VzKTsKIAorICAgIFRl
c3RzU3RhdHVzLnByb3RvdHlwZS5mb3JtYXRzID0geworICAgICAgICAwOiAiT0siLAorICAgICAg
ICAxOiAiRXJyb3IiLAorICAgICAgICAyOiAiVGltZW91dCIsCisgICAgICAgIDM6ICJPcHRpb25h
bCBGZWF0dXJlIFVuc3VwcG9ydGVkIgorICAgIH0KKworCiAgICAgVGVzdHNTdGF0dXMucHJvdG90
eXBlLnN0cnVjdHVyZWRfY2xvbmUgPSBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAoIXRo
aXMuX3N0cnVjdHVyZWRfY2xvbmUpIHsKQEAgLTI2NDAsNiArMjcxMywyNyBAQCBwb2xpY2llcyBh
bmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgcmV0dXJuIHRoaXMuX3N0cnVjdHVy
ZWRfY2xvbmU7CiAgICAgfTsKIAorICAgIFRlc3RzU3RhdHVzLnByb3RvdHlwZS5mb3JtYXRfc3Rh
dHVzID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHNbdGhpcy5zdGF0
dXNdOworICAgIH0KKworICAgIGZ1bmN0aW9uIEFzc2VydFJlY29yZCh0ZXN0LCBhc3NlcnRfbmFt
ZSwgYXJncyA9IFtdKSB7CisgICAgICAgIHRoaXMuYXNzZXJ0X25hbWUgPSBhc3NlcnRfbmFtZTsK
KyAgICAgICAgdGhpcy50ZXN0ID0gdGVzdDsKKyAgICAgICAgLy8gQXZvaWQga2VlcGluZyBjb21w
bGV4IG9iamVjdHMgYWxpdmUKKyAgICAgICAgdGhpcy5hcmdzID0gYXJncy5tYXAoeCA9PiBmb3Jt
YXRfdmFsdWUoeCkucmVwbGFjZSgvXG4vZywgIiAiKSk7CisgICAgICAgIHRoaXMuc3RhdHVzID0g
bnVsbDsKKyAgICB9CisKKyAgICBBc3NlcnRSZWNvcmQucHJvdG90eXBlLnN0cnVjdHVyZWRfY2xv
bmUgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIGFzc2VydF9u
YW1lOiB0aGlzLmFzc2VydF9uYW1lLAorICAgICAgICAgICAgdGVzdDogdGhpcy50ZXN0ID8gdGhp
cy50ZXN0LnN0cnVjdHVyZWRfY2xvbmUoKSA6IG51bGwsCisgICAgICAgICAgICBhcmdzOiB0aGlz
LmFyZ3MsCisgICAgICAgICAgICBzdGF0dXM6IHRoaXMuc3RhdHVzLAorICAgICAgICB9CisgICAg
fQorCiAgICAgZnVuY3Rpb24gVGVzdHMoKQogICAgIHsKICAgICAgICAgdGhpcy50ZXN0cyA9IFtd
OwpAQCAtMjY3OSw2ICsyNzczLDE4IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMg
WzNdLgogICAgICAgICB0aGlzLmhpZGVfdGVzdF9zdGF0ZSA9IGZhbHNlOwogICAgICAgICB0aGlz
LnBlbmRpbmdfcmVtb3RlcyA9IFtdOwogCisgICAgICAgIHRoaXMuY3VycmVudF90ZXN0ID0gbnVs
bDsKKyAgICAgICAgdGhpcy5hc3NlcnRzX3J1biA9IFtdOworCisgICAgICAgIC8vIFRyYWNrIHdo
ZXRoZXIgb3V0cHV0IGlzIGVuYWJsZWQsIGFuZCB0aHVzIHdoZXRoZXIgb3Igbm90IHdlIHNob3Vs
ZAorICAgICAgICAvLyB0cmFjayBhc3NlcnRzLgorICAgICAgICAvLworICAgICAgICAvLyBPbiB3
b3JrZXJzIHdlIGRvbid0IGdldCBwcm9wZXJ0aWVzIHNldCBmcm9tIHRlc3RoYXJuZXNzcmVwb3J0
LmpzLCBzbworICAgICAgICAvLyB3ZSBkb24ndCBrbm93IHdoZXRoZXIgb3Igbm90IHRvIHRyYWNr
IGFzc2VydHMuIFRvIGF2b2lkIHRoZQorICAgICAgICAvLyByZXN1bHRpbmcgcGVyZm9ybWFuY2Ug
aGl0LCB3ZSBhc3N1bWUgd2UgYXJlIG5vdCBtZWFudCB0by4gVGhpcyBtZWFucworICAgICAgICAv
LyB0aGF0IGFzc2VydCB0cmFja2luZyBkb2VzIG5vdCBmdW5jdGlvbiBvbiB3b3JrZXJzLgorICAg
ICAgICB0aGlzLm91dHB1dCA9IHNldHRpbmdzLm91dHB1dCAmJiAnZG9jdW1lbnQnIGluIGdsb2Jh
bF9zY29wZTsKKwogICAgICAgICB0aGlzLnN0YXR1cyA9IG5ldyBUZXN0c1N0YXR1cygpOwogCiAg
ICAgICAgIHZhciB0aGlzX29iaiA9IHRoaXM7CkBAIC0yNzI2LDYgKzI4MzIsMTAgQEAgcG9saWNp
ZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKHAgPT0gImhpZGVfdGVzdF9zdGF0ZSIpIHsKICAgICAg
ICAgICAgICAgICAgICAgdGhpcy5oaWRlX3Rlc3Rfc3RhdGUgPSB2YWx1ZTsKKyAgICAgICAgICAg
ICAgICB9IGVsc2UgaWYgKHAgPT0gIm91dHB1dCIpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhp
cy5vdXRwdXQgPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHAgPT09ICJkZWJ1
ZyIpIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3MuZGVidWcgPSB2YWx1ZTsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTI3NTAsNyArMjg2MCw3
IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICB0aGlzLndh
aXRfZm9yX2ZpbmlzaCA9IHRydWU7CiAgICAgICAgIHRoaXMuZmlsZV9pc190ZXN0ID0gdHJ1ZTsK
ICAgICAgICAgLy8gQ3JlYXRlIHRoZSB0ZXN0LCB3aGljaCB3aWxsIGFkZCBpdCB0byB0aGUgbGlz
dCBvZiB0ZXN0cwotICAgICAgICBhc3luY190ZXN0KCk7CisgICAgICAgIHRlc3RzLmN1cnJlbnRf
dGVzdCA9IGFzeW5jX3Rlc3QoKTsKICAgICB9OwogCiAgICAgVGVzdHMucHJvdG90eXBlLnNldF9z
dGF0dXMgPSBmdW5jdGlvbihzdGF0dXMsIG1lc3NhZ2UsIHN0YWNrKQpAQCAtMjkxNCw2ICszMDI0
LDE2IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAg
ICAgICAgYWxsX2NvbXBsZXRlKTsKICAgICB9OwogCisgICAgVGVzdHMucHJvdG90eXBlLnNldF9h
c3NlcnQgPSBmdW5jdGlvbihhc3NlcnRfbmFtZSwgYXJncykgeworICAgICAgICB0aGlzLmFzc2Vy
dHNfcnVuLnB1c2gobmV3IEFzc2VydFJlY29yZCh0aGlzLmN1cnJlbnRfdGVzdCwgYXNzZXJ0X25h
bWUsIGFyZ3MpKQorICAgIH0KKworICAgIFRlc3RzLnByb3RvdHlwZS5zZXRfYXNzZXJ0X3N0YXR1
cyA9IGZ1bmN0aW9uKHN0YXR1cywgc3RhY2spIHsKKyAgICAgICAgbGV0IGFzc2VydF9yZWNvcmQg
PSB0aGlzLmFzc2VydHNfcnVuW3RoaXMuYXNzZXJ0c19ydW4ubGVuZ3RoIC0gMV07CisgICAgICAg
IGFzc2VydF9yZWNvcmQuc3RhdHVzID0gc3RhdHVzOworICAgICAgICBhc3NlcnRfcmVjb3JkLnN0
YWNrID0gc3RhY2s7CisgICAgfQorCiAgICAgLyoqCiAgICAgICogVXBkYXRlIHRoZSBoYXJuZXNz
IHN0YXR1cyB0byByZWZsZWN0IGFuIHVucmVjb3ZlcmFibGUgaGFybmVzcyBlcnJvciB0aGF0CiAg
ICAgICogc2hvdWxkIGNhbmNlbCBhbGwgZnVydGhlciB0ZXN0aW5nLiBVcGRhdGUgYWxsIHByZXZp
b3VzbHktZGVmaW5lZCB0ZXN0cwpAQCAtMjk1NiwyMiArMzA3NiwxNiBAQCBwb2xpY2llcyBhbmQg
Y29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICB9CiAKICAgICBmdW5jdGlvbiBzYW5pdGl6ZV91
bnBhaXJlZF9zdXJyb2dhdGVzKHN0cikgewotICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UoLyhb
XHVkODAwLVx1ZGJmZl0pKD8hW1x1ZGMwMC1cdWRmZmZdKS9nLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuY3Rpb24oXywgdW5wYWlyZWQpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvZGVfdW5pdF9zdHIo
dW5wYWlyZWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKLSAgICAgICAgICAgICAg
ICAgIC8vIFRoaXMgcmVwbGFjZW1lbnQgaXMgaW50ZW50aW9uYWxseSBpbXBsZW1lbnRlZCB3aXRo
b3V0IGFuCi0gICAgICAgICAgICAgICAgICAvLyBFUzIwMTggbmVnYXRpdmUgbG9va2JlaGluZCBh
c3NlcnRpb24gdG8gc3VwcG9ydCBydW50aW1lcwotICAgICAgICAgICAgICAgICAgLy8gd2hpY2gg
ZG8gbm90IHlldCBpbXBsZW1lbnQgdGhhdCBsYW5ndWFnZSBmZWF0dXJlLgotICAgICAgICAgICAg
ICAgICAgLnJlcGxhY2UoLyhefFteXHVkODAwLVx1ZGJmZl0pKFtcdWRjMDAtXHVkZmZmXSkvZywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKF8sIHByZXZpb3VzLCB1bnBhaXJl
ZCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9bXHVkYzAwLVx1ZGZmZl0v
LnRlc3QocHJldmlvdXMpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJl
dmlvdXMgPSBjb2RlX3VuaXRfc3RyKHByZXZpb3VzKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3Vz
ICsgY29kZV91bml0X3N0cih1bnBhaXJlZCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKAorICAgICAgICAgICAgLyhbXHVkODAwLVx1
ZGJmZl0rKSg/IVtcdWRjMDAtXHVkZmZmXSl8KF58W15cdWQ4MDAtXHVkYmZmXSkoW1x1ZGMwMC1c
dWRmZmZdKykvZywKKyAgICAgICAgICAgIGZ1bmN0aW9uKF8sIGxvdywgcHJlZml4LCBoaWdoKSB7
CisgICAgICAgICAgICAgICAgdmFyIG91dHB1dCA9IHByZWZpeCB8fCAiIjsgIC8vIHByZWZpeCBt
YXkgYmUgdW5kZWZpbmVkCisgICAgICAgICAgICAgICAgdmFyIHN0cmluZyA9IGxvdyB8fCBoaWdo
OyAgLy8gb25seSBvbmUgb2YgdGhlc2UgYWx0ZXJuYXRlcyBjYW4gbWF0Y2gKKyAgICAgICAgICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0cmluZy5sZW5ndGg7IGkrKykgeworICAgICAgICAg
ICAgICAgICAgICBvdXRwdXQgKz0gY29kZV91bml0X3N0cihzdHJpbmdbaV0pOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gb3V0cHV0OworICAgICAgICAgICAgfSk7
CiAgICAgfQogCiAgICAgZnVuY3Rpb24gc2FuaXRpemVfYWxsX3VucGFpcmVkX3N1cnJvZ2F0ZXMo
dGVzdHMpIHsKQEAgLTMwMTcsNyArMzEzMSw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24g
Zm9ybXMgWzNdLgogICAgICAgICBmb3JFYWNoICh0aGlzLmFsbF9kb25lX2NhbGxiYWNrcywKICAg
ICAgICAgICAgICAgICAgZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHRoaXNfb2JqLnRlc3RzLCB0aGlzX29iai5zdGF0
dXMpOworICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sodGhpc19vYmoudGVzdHMsIHRoaXNf
b2JqLnN0YXR1cywgdGhpc19vYmouYXNzZXJ0c19ydW4pOwogICAgICAgICAgICAgICAgICB9KTsK
ICAgICB9OwogCkBAIC0zMjQzLDcgKzMzNTcsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9u
IGZvcm1zIFszXS4KICAgICAgICAgfQogICAgIH07CiAKLSAgICBPdXRwdXQucHJvdG90eXBlLnNo
b3dfcmVzdWx0cyA9IGZ1bmN0aW9uICh0ZXN0cywgaGFybmVzc19zdGF0dXMpIHsKKyAgICBPdXRw
dXQucHJvdG90eXBlLnNob3dfcmVzdWx0cyA9IGZ1bmN0aW9uICh0ZXN0cywgaGFybmVzc19zdGF0
dXMsIGFzc2VydHNfcnVuKSB7CiAgICAgICAgIGlmICh0aGlzLnBoYXNlID49IHRoaXMuQ09NUExF
VEUpIHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMzI3MiwyMyArMzM4Niwx
MCBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgIGhl
YWRzWzBdLmFwcGVuZENoaWxkKHN0eWxlc2hlZXQpOwogICAgICAgICB9CiAKLSAgICAgICAgdmFy
IHN0YXR1c190ZXh0X2hhcm5lc3MgPSB7fTsKLSAgICAgICAgc3RhdHVzX3RleHRfaGFybmVzc1to
YXJuZXNzX3N0YXR1cy5PS10gPSAiT0siOwotICAgICAgICBzdGF0dXNfdGV4dF9oYXJuZXNzW2hh
cm5lc3Nfc3RhdHVzLkVSUk9SXSA9ICJFcnJvciI7Ci0gICAgICAgIHN0YXR1c190ZXh0X2hhcm5l
c3NbaGFybmVzc19zdGF0dXMuVElNRU9VVF0gPSAiVGltZW91dCI7Ci0gICAgICAgIHN0YXR1c190
ZXh0X2hhcm5lc3NbaGFybmVzc19zdGF0dXMuUFJFQ09ORElUSU9OX0ZBSUxFRF0gPSAiT3B0aW9u
YWwgRmVhdHVyZSBVbnN1cHBvcnRlZCI7Ci0KLSAgICAgICAgdmFyIHN0YXR1c190ZXh0ID0ge307
Ci0gICAgICAgIHN0YXR1c190ZXh0W1Rlc3QucHJvdG90eXBlLlBBU1NdID0gIlBhc3MiOwotICAg
ICAgICBzdGF0dXNfdGV4dFtUZXN0LnByb3RvdHlwZS5GQUlMXSA9ICJGYWlsIjsKLSAgICAgICAg
c3RhdHVzX3RleHRbVGVzdC5wcm90b3R5cGUuVElNRU9VVF0gPSAiVGltZW91dCI7Ci0gICAgICAg
IHN0YXR1c190ZXh0W1Rlc3QucHJvdG90eXBlLk5PVFJVTl0gPSAiTm90IFJ1biI7Ci0gICAgICAg
IHN0YXR1c190ZXh0W1Rlc3QucHJvdG90eXBlLlBSRUNPTkRJVElPTl9GQUlMRURdID0gIk9wdGlv
bmFsIEZlYXR1cmUgVW5zdXBwb3J0ZWQiOwotCiAgICAgICAgIHZhciBzdGF0dXNfbnVtYmVyID0g
e307CiAgICAgICAgIGZvckVhY2godGVzdHMsCiAgICAgICAgICAgICAgICAgZnVuY3Rpb24odGVz
dCkgewotICAgICAgICAgICAgICAgICAgICB2YXIgc3RhdHVzID0gc3RhdHVzX3RleHRbdGVzdC5z
dGF0dXNdOworICAgICAgICAgICAgICAgICAgICB2YXIgc3RhdHVzID0gdGVzdC5mb3JtYXRfc3Rh
dHVzKCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXNfbnVtYmVyLmhhc093blByb3Bl
cnR5KHN0YXR1cykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c19udW1iZXJbc3Rh
dHVzXSArPSAxOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewpAQCAtMzMwNSw4ICszNDA2
LDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFsiaDIiLCB7fSwgIlN1bW1hcnkiXSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdGF0dXMg
PSBzdGF0dXNfdGV4dF9oYXJuZXNzW2hhcm5lc3Nfc3RhdHVzLnN0YXR1c107CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3RhdHVzID0gaGFybmVzc19zdGF0dXMuZm9y
bWF0X3N0YXR1cygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJ2
ID0gW1sic2VjdGlvbiIsIHt9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbInAiLCB7fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJIYXJuZXNzIHN0YXR1czogIiwKQEAgLTMzMjgsMTMgKzM0MjgsMTQgQEAg
cG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmFyIHJ2ID0gW1siZGl2Iiwge31dXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZhciBpID0gMDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdoaWxlIChzdGF0dXNfdGV4dC5oYXNPd25Qcm9wZXJ0eShpKSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXNfbnVtYmVyLmhhc093blByb3BlcnR5
KHN0YXR1c190ZXh0W2ldKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2YXIgc3RhdHVzID0gc3RhdHVzX3RleHRbaV07Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJ2WzBdLnB1c2goWyJkaXYiLCB7ImNsYXNzIjpzdGF0
dXNfY2xhc3Moc3RhdHVzKX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3
aGlsZSAoVGVzdC5wcm90b3R5cGUuc3RhdHVzX2Zvcm1hdHMuaGFzT3duUHJvcGVydHkoaSkpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzX251bWJl
ci5oYXNPd25Qcm9wZXJ0eShUZXN0LnByb3RvdHlwZS5zdGF0dXNfZm9ybWF0c1tpXSkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHN0YXR1cyA9IFRl
c3QucHJvdG90eXBlLnN0YXR1c19mb3JtYXRzW2ldOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBydlswXS5wdXNoKFsiZGl2Iiwge30sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsibGFiZWwiLCB7fSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFsiaW5wdXQiLCB7dHlwZToiY2hlY2tib3giLCBjaGVja2VkOiJjaGVja2VkIn1dLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVz
X251bWJlcltzdGF0dXNdICsgIiAiICsgc3RhdHVzXV0pOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzX251bWJlcltzdGF0dXNd
ICsgIiAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWyJzcGFuIiwgeyJjbGFzcyI6c3RhdHVzX2NsYXNzKHN0YXR1cyl9LCBzdGF0dXNd
XV0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKys7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CkBAIC0zMzU0LDEzICszNDU1LDEzIEBAIHBvbGljaWVzIGFuZCBj
b250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0X2NsYXNzID0gZWxlbWVudC5wYXJl
bnROb2RlLmdldEF0dHJpYnV0ZSgiY2xhc3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHZhciByZXN1bHRfY2xhc3MgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoInNwYW5bY2xh
c3NdIikuZ2V0QXR0cmlidXRlKCJjbGFzcyIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmFyIHN0eWxlX2VsZW1lbnQgPSBvdXRwdXRfZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigi
c3R5bGUjaGlkZS0iICsgcmVzdWx0X2NsYXNzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHZhciBpbnB1dF9lbGVtZW50ID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIp
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHlsZV9lbGVtZW50ICYm
ICFpbnB1dF9lbGVtZW50LmNoZWNrZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdHlsZV9lbGVtZW50ID0gb3V0cHV0X2RvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh4
aHRtbF9ucywgInN0eWxlIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3R5bGVfZWxlbWVudC5pZCA9ICJoaWRlLSIgKyByZXN1bHRfY2xhc3M7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVfZWxlbWVudC50ZXh0Q29udGVudCA9ICJ0YWJs
ZSNyZXN1bHRzID4gdGJvZHkgPiB0ci4iK3Jlc3VsdF9jbGFzcysie2Rpc3BsYXk6bm9uZX0iOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlX2VsZW1lbnQudGV4dENv
bnRlbnQgPSAidGFibGUjcmVzdWx0cyA+IHRib2R5ID4gdHIub3ZlcmFsbC0iK3Jlc3VsdF9jbGFz
cysie2Rpc3BsYXk6bm9uZX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG91dHB1dF9kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHN0eWxlX2VsZW1lbnQpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHlsZV9lbGVtZW50ICYmIGlu
cHV0X2VsZW1lbnQuY2hlY2tlZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0eWxlX2VsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzdHlsZV9lbGVtZW50KTsK
QEAgLTM0MDEsNiArMzUwMiw1MiBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFsz
XS4KICAgICAgICAgICAgIHJldHVybiAnJzsKICAgICAgICAgfQogCisgICAgICAgIHZhciBhc3Nl
cnRzX3J1bl9ieV90ZXN0ID0gbmV3IE1hcCgpOworICAgICAgICBhc3NlcnRzX3J1bi5mb3JFYWNo
KGFzc2VydCA9PiB7CisgICAgICAgICAgICBpZiAoIWFzc2VydHNfcnVuX2J5X3Rlc3QuaGFzKGFz
c2VydC50ZXN0KSkgeworICAgICAgICAgICAgICAgIGFzc2VydHNfcnVuX2J5X3Rlc3Quc2V0KGFz
c2VydC50ZXN0LCBbXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhc3NlcnRzX3J1bl9i
eV90ZXN0LmdldChhc3NlcnQudGVzdCkucHVzaChhc3NlcnQpOworICAgICAgICB9KTsKKworICAg
ICAgICBmdW5jdGlvbiBnZXRfYXNzZXJ0c19vdXRwdXQodGVzdCkgeworICAgICAgICAgICAgdmFy
IGFzc2VydHMgPSBhc3NlcnRzX3J1bl9ieV90ZXN0LmdldCh0ZXN0KTsKKyAgICAgICAgICAgIGlm
ICghYXNzZXJ0cykgeworICAgICAgICAgICAgICAgIHJldHVybiAiTm8gYXNzZXJ0cyByYW4iOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgcnYgPSAiPHRhYmxlPiI7CisgICAgICAgICAgICBy
diArPSBhc3NlcnRzLm1hcChhc3NlcnQgPT4geworICAgICAgICAgICAgICAgIHZhciBvdXRwdXRf
Zm4gPSAiPHN0cm9uZz4iICsgZXNjYXBlX2h0bWwoYXNzZXJ0LmFzc2VydF9uYW1lKSArICI8L3N0
cm9uZz4oIjsKKyAgICAgICAgICAgICAgICB2YXIgcHJlZml4X2xlbiA9IG91dHB1dF9mbi5sZW5n
dGg7CisgICAgICAgICAgICAgICAgdmFyIG91dHB1dF9hcmdzID0gYXNzZXJ0LmFyZ3M7CisgICAg
ICAgICAgICAgICAgdmFyIG91dHB1dF9sZW4gPSBvdXRwdXRfYXJncy5yZWR1Y2UoKHByZXYsIGN1
cnJlbnQpID0+IHByZXYrY3VycmVudCwgcHJlZml4X2xlbik7CisgICAgICAgICAgICAgICAgaWYg
KG91dHB1dF9sZW5bb3V0cHV0X2xlbi5sZW5ndGggLSAxXSA+IDUwKSB7CisgICAgICAgICAgICAg
ICAgICAgIG91dHB1dF9hcmdzID0gb3V0cHV0X2FyZ3MubWFwKCh4LCBpKSA9PgorICAgICAgICAg
ICAgICAgICAgICAoaSA+IDAgPyAiICAiLnJlcGVhdChwcmVmaXhfbGVuKSA6ICIiICkrIHggKyAo
aSA8IG91dHB1dF9hcmdzLmxlbmd0aCAtIDEgPyAiLFxuIiA6ICIiKSk7CisgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2FyZ3MgPSBvdXRwdXRfYXJn
cy5tYXAoKHgsIGkpID0+IHggKyAoaSA8IG91dHB1dF9hcmdzLmxlbmd0aCAtIDEgPyAiLCAiIDog
IiIpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb3V0cHV0X2ZuICs9IGVz
Y2FwZV9odG1sKG91dHB1dF9hcmdzLmpvaW4oIiIpKTsKKyAgICAgICAgICAgICAgICBvdXRwdXRf
Zm4gKz0gJyknOworICAgICAgICAgICAgICAgIHZhciBvdXRwdXRfbG9jYXRpb247CisgICAgICAg
ICAgICAgICAgaWYgKGFzc2VydC5zdGFjaykgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXRf
bG9jYXRpb24gPSBhc3NlcnQuc3RhY2suc3BsaXQoIlxuIiwgMSlbMF0ucmVwbGFjZSgvQD9cdys6
XC9cL1teICJcL10rKD86OlxkKyk/L2csICIgIik7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIHJldHVybiAiPHRyIGNsYXNzPSdvdmVyYWxsLSIgKworICAgICAgICAgICAgICAg
ICAgICBzdGF0dXNfY2xhc3MoVGVzdC5wcm90b3R5cGUuc3RhdHVzX2Zvcm1hdHNbYXNzZXJ0LnN0
YXR1c10pICsgIic+IiArCisgICAgICAgICAgICAgICAgICAgICI8dGQgY2xhc3M9JyIgKworICAg
ICAgICAgICAgICAgICAgICBzdGF0dXNfY2xhc3MoVGVzdC5wcm90b3R5cGUuc3RhdHVzX2Zvcm1h
dHNbYXNzZXJ0LnN0YXR1c10pICsgIic+IiArCisgICAgICAgICAgICAgICAgICAgIFRlc3QucHJv
dG90eXBlLnN0YXR1c19mb3JtYXRzW2Fzc2VydC5zdGF0dXNdICsgIjwvdGQ+IiArCisgICAgICAg
ICAgICAgICAgICAgICI8dGQ+PHByZT4iICsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2Zu
ICsKKyAgICAgICAgICAgICAgICAgICAgKG91dHB1dF9sb2NhdGlvbiA/ICJcbiIgKyBlc2NhcGVf
aHRtbChvdXRwdXRfbG9jYXRpb24pIDogIiIpICsKKyAgICAgICAgICAgICAgICAgICAgIjwvcHJl
PjwvdGQ+PC90cj4iOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKS5qb2luKCJcbiIpOwor
ICAgICAgICAgICAgcnYgKz0gIjwvdGFibGU+IjsKKyAgICAgICAgICAgIHJldHVybiBydjsKKyAg
ICAgICAgfQorCiAgICAgICAgIGxvZy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50
TlMoeGh0bWxfbnMsICJzZWN0aW9uIikpOwogICAgICAgICB2YXIgYXNzZXJ0aW9ucyA9IGhhc19h
c3NlcnRpb25zKCk7CiAgICAgICAgIHZhciBodG1sID0gIjxoMj5EZXRhaWxzPC9oMj48dGFibGUg
aWQ9J3Jlc3VsdHMnICIgKyAoYXNzZXJ0aW9ucyA/ICJjbGFzcz0nYXNzZXJ0aW9ucyciIDogIiIg
KSArICI+IiArCkBAIC0zNDA5LDE5ICszNTU2LDI2IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRp
b24gZm9ybXMgWzNdLgogICAgICAgICAgICAgIjx0aD5NZXNzYWdlPC90aD48L3RyPjwvdGhlYWQ+
IiArCiAgICAgICAgICAgICAiPHRib2R5PiI7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
dGVzdHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIGh0bWwgKz0gJzx0ciBjbGFzcz0iJyAr
Ci0gICAgICAgICAgICAgICAgZXNjYXBlX2h0bWwoc3RhdHVzX2NsYXNzKHN0YXR1c190ZXh0W3Rl
c3RzW2ldLnN0YXR1c10pKSArCi0gICAgICAgICAgICAgICAgJyI+PHRkPicgKwotICAgICAgICAg
ICAgICAgIGVzY2FwZV9odG1sKHN0YXR1c190ZXh0W3Rlc3RzW2ldLnN0YXR1c10pICsKKyAgICAg
ICAgICAgIHZhciB0ZXN0ID0gdGVzdHNbaV07CisgICAgICAgICAgICBodG1sICs9ICc8dHIgY2xh
c3M9Im92ZXJhbGwtJyArCisgICAgICAgICAgICAgICAgc3RhdHVzX2NsYXNzKHRlc3QuZm9ybWF0
X3N0YXR1cygpKSArCisgICAgICAgICAgICAgICAgJyI+JyArCisgICAgICAgICAgICAgICAgJzx0
ZCBjbGFzcz0iJyArCisgICAgICAgICAgICAgICAgc3RhdHVzX2NsYXNzKHRlc3QuZm9ybWF0X3N0
YXR1cygpKSArCisgICAgICAgICAgICAgICAgJyI+JyArCisgICAgICAgICAgICAgICAgdGVzdC5m
b3JtYXRfc3RhdHVzKCkgKwogICAgICAgICAgICAgICAgICI8L3RkPjx0ZD4iICsKLSAgICAgICAg
ICAgICAgICBlc2NhcGVfaHRtbCh0ZXN0c1tpXS5uYW1lKSArCisgICAgICAgICAgICAgICAgZXNj
YXBlX2h0bWwodGVzdC5uYW1lKSArCiAgICAgICAgICAgICAgICAgIjwvdGQ+PHRkPiIgKwotICAg
ICAgICAgICAgICAgIChhc3NlcnRpb25zID8gZXNjYXBlX2h0bWwoZ2V0X2Fzc2VydGlvbih0ZXN0
c1tpXSkpICsgIjwvdGQ+PHRkPiIgOiAiIikgKwotICAgICAgICAgICAgICAgIGVzY2FwZV9odG1s
KHRlc3RzW2ldLm1lc3NhZ2UgPyB0ZXN0c1tpXS5tZXNzYWdlIDogIiAiKSArCisgICAgICAgICAg
ICAgICAgKGFzc2VydGlvbnMgPyBlc2NhcGVfaHRtbChnZXRfYXNzZXJ0aW9uKHRlc3QpKSArICI8
L3RkPjx0ZD4iIDogIiIpICsKKyAgICAgICAgICAgICAgICBlc2NhcGVfaHRtbCh0ZXN0Lm1lc3Nh
Z2UgPyB0ZXN0c1tpXS5tZXNzYWdlIDogIiAiKSArCiAgICAgICAgICAgICAgICAgKHRlc3RzW2ld
LnN0YWNrID8gIjxwcmU+IiArCiAgICAgICAgICAgICAgICAgIGVzY2FwZV9odG1sKHRlc3RzW2ld
LnN0YWNrKSArCi0gICAgICAgICAgICAgICAgICI8L3ByZT4iOiAiIikgKwotICAgICAgICAgICAg
ICAgICI8L3RkPjwvdHI+IjsKKyAgICAgICAgICAgICAgICAgIjwvcHJlPiI6ICIiKTsKKyAgICAg
ICAgICAgIGlmICghKHRlc3QgaW5zdGFuY2VvZiBSZW1vdGVUZXN0KSkgeworICAgICAgICAgICAg
ICAgICBodG1sICs9ICI8ZGV0YWlscz48c3VtbWFyeT5Bc3NlcnRzIHJ1bjwvc3VtbWFyeT4iICsg
Z2V0X2Fzc2VydHNfb3V0cHV0KHRlc3QpICsgIjwvZGV0YWlscz4iCisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBodG1sICs9ICI8L3RkPjwvdHI+IjsKICAgICAgICAgfQogICAgICAgICBodG1s
ICs9ICI8L3Rib2R5PjwvdGFibGU+IjsKICAgICAgICAgdHJ5IHsKQEAgLTM2MTIsMTQgKzM3NjYs
MTcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAKICAgICBmdW5jdGlv
biBBc3NlcnRpb25FcnJvcihtZXNzYWdlKQogICAgIHsKKyAgICAgICAgaWYgKHR5cGVvZiBtZXNz
YWdlID09ICJzdHJpbmciKSB7CisgICAgICAgICAgICBtZXNzYWdlID0gc2FuaXRpemVfdW5wYWly
ZWRfc3Vycm9nYXRlcyhtZXNzYWdlKTsKKyAgICAgICAgfQogICAgICAgICB0aGlzLm1lc3NhZ2Ug
PSBtZXNzYWdlOwotICAgICAgICB0aGlzLnN0YWNrID0gdGhpcy5nZXRfc3RhY2soKTsKKyAgICAg
ICAgdGhpcy5zdGFjayA9IGdldF9zdGFjaygpOwogICAgIH0KICAgICBleHBvc2UoQXNzZXJ0aW9u
RXJyb3IsICJBc3NlcnRpb25FcnJvciIpOwogCiAgICAgQXNzZXJ0aW9uRXJyb3IucHJvdG90eXBl
ID0gT2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpOwogCi0gICAgQXNzZXJ0aW9uRXJyb3Iu
cHJvdG90eXBlLmdldF9zdGFjayA9IGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IGdldF9zdGFjayA9
IGZ1bmN0aW9uKCkgewogICAgICAgICB2YXIgc3RhY2sgPSBuZXcgRXJyb3IoKS5zdGFjazsKICAg
ICAgICAgLy8gSUUxMSBkb2VzIG5vdCBpbml0aWFsaXplICdFcnJvci5zdGFjaycgdW50aWwgdGhl
IG9iamVjdCBpcyB0aHJvd24uCiAgICAgICAgIGlmICghc3RhY2spIHsKQEAgLTM5ODMsNTQgKzQx
NDAsNjIgQEAgdGFibGUjcmVzdWx0cyB7XAogICAgIHdpZHRoOjEwMCU7XAogfVwKIFwKLXRhYmxl
I3Jlc3VsdHMgdGg6Zmlyc3QtY2hpbGQsXAotdGFibGUjcmVzdWx0cyB0ZDpmaXJzdC1jaGlsZCB7
XAordGFibGUjcmVzdWx0cyA+IHRoZWFkID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcCit0YWJsZSNy
ZXN1bHRzID4gdGJvZHkgPiB0ciA+IHRkOmZpcnN0LWNoaWxkIHtcCiAgICAgd2lkdGg6OGVtO1wK
IH1cCiBcCi10YWJsZSNyZXN1bHRzIHRoOmxhc3QtY2hpbGQsXAotdGFibGUjcmVzdWx0cyB0ZDps
YXN0LWNoaWxkIHtcCit0YWJsZSNyZXN1bHRzID4gdGhlYWQgPiB0ciA+IHRoOmxhc3QtY2hpbGQs
XAordGFibGUjcmVzdWx0cyA+IHRoZWFkID4gdHIgPiB0ZDpsYXN0LWNoaWxkIHtcCiAgICAgd2lk
dGg6NTAlO1wKIH1cCiBcCi10YWJsZSNyZXN1bHRzLmFzc2VydGlvbnMgdGg6bGFzdC1jaGlsZCxc
Ci10YWJsZSNyZXN1bHRzLmFzc2VydGlvbnMgdGQ6bGFzdC1jaGlsZCB7XAordGFibGUjcmVzdWx0
cy5hc3NlcnRpb25zID4gdGhlYWQgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXAordGFibGUjcmVzdWx0
cy5hc3NlcnRpb25zID4gdGJvZHkgPiB0ciA+IHRkOmxhc3QtY2hpbGQge1wKICAgICB3aWR0aDoz
NSU7XAogfVwKIFwKLXRhYmxlI3Jlc3VsdHMgdGgge1wKK3RhYmxlI3Jlc3VsdHMgPiB0aGVhZCA+
ID4gdHIgPiB0aCB7XAogICAgIHBhZGRpbmc6MDtcCiAgICAgcGFkZGluZy1ib3R0b206MC41ZW07
XAogICAgIGJvcmRlci1ib3R0b206bWVkaXVtIHNvbGlkIGJsYWNrO1wKIH1cCiBcCi10YWJsZSNy
ZXN1bHRzIHRkIHtcCit0YWJsZSNyZXN1bHRzID4gdGJvZHkgPiB0cj4gdGQge1wKICAgICBwYWRk
aW5nOjFlbTtcCiAgICAgcGFkZGluZy1ib3R0b206MC41ZW07XAogICAgIGJvcmRlci1ib3R0b206
dGhpbiBzb2xpZCBibGFjaztcCiB9XAogXAotdHIucGFzcyA+IHRkOmZpcnN0LWNoaWxkIHtcCisu
cGFzcyB7XAogICAgIGNvbG9yOmdyZWVuO1wKIH1cCiBcCi10ci5mYWlsID4gdGQ6Zmlyc3QtY2hp
bGQge1wKKy5mYWlsIHtcCiAgICAgY29sb3I6cmVkO1wKIH1cCiBcCi10ci50aW1lb3V0ID4gdGQ6
Zmlyc3QtY2hpbGQge1wKK3RyLnRpbWVvdXQge1wKICAgICBjb2xvcjpyZWQ7XAogfVwKIFwKLXRy
Lm5vdHJ1biA+IHRkOmZpcnN0LWNoaWxkIHtcCit0ci5ub3RydW4ge1wKICAgICBjb2xvcjpibHVl
O1wKIH1cCiBcCi10ci5vcHRpb25hbHVuc3VwcG9ydGVkID4gdGQ6Zmlyc3QtY2hpbGQge1wKK3Ry
Lm9wdGlvbmFsdW5zdXBwb3J0ZWQge1wKICAgICBjb2xvcjpibHVlO1wKIH1cCiBcCi0ucGFzcyA+
IHRkOmZpcnN0LWNoaWxkLCAuZmFpbCA+IHRkOmZpcnN0LWNoaWxkLCAudGltZW91dCA+IHRkOmZp
cnN0LWNoaWxkLCAubm90cnVuID4gdGQ6Zmlyc3QtY2hpbGQsIC5vcHRpb25hbHVuc3VwcG9ydGVk
ID4gdGQ6Zmlyc3QtY2hpbGQge1wKKy5vayB7XAorICAgIGNvbG9yOmdyZWVuO1wKK31cCitcCisu
ZXJyb3Ige1wKKyAgICBjb2xvcjpyZWQ7XAorfVwKK1wKKy5wYXNzLCAuZmFpbCwgLnRpbWVvdXQs
IC5ub3RydW4sIC5vcHRpb25hbHVuc3VwcG9ydGVkIC5vaywgLnRpbWVvdXQsIC5lcnJvciB7XAog
ICAgIGZvbnQtdmFyaWFudDpzbWFsbC1jYXBzO1wKIH1cCiBcCkBAIC00MDQ3LDIyICs0MjEyLDYg
QEAgdGFibGUjcmVzdWx0cyBzcGFuLmFjdHVhbCB7XAogICAgIGZvbnQtZmFtaWx5OkRlamFWdSBT
YW5zIE1vbm8sIEJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubywgTW9ub3NwYWNlO1wKICAgICB3aGl0
ZS1zcGFjZTpwcmU7XAogfVwKLVwKLXNwYW4ub2sge1wKLSAgICBjb2xvcjpncmVlbjtcCi19XAot
XAotdHIuZXJyb3Ige1wKLSAgICBjb2xvcjpyZWQ7XAotfVwKLVwKLXNwYW4udGltZW91dCB7XAot
ICAgIGNvbG9yOnJlZDtcCi19XAotXAotc3Bhbi5vaywgc3Bhbi50aW1lb3V0LCBzcGFuLmVycm9y
IHtcCi0gICAgZm9udC12YXJpYW50OnNtYWxsLWNhcHM7XAotfVwKICI7CiAKIH0pKHNlbGYpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvd2ViaWRsMi9saWIvUkVBRE1FLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvd2ViaWRsMi9saWIvUkVBRE1FLm1kCmluZGV4
IDFiZDU4MzI2OWQyOTI5YTE2YjFjN2FkMGM1OGZhYjZlOTliNzJhMTAuLmFmMGFmM2E5MDJmMmYz
YTAxYWJhNGNmZDQ5NGYxNDQzNDQwODg4YzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3dlYmlkbDIvbGliL1JFQURNRS5t
ZAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291
cmNlcy93ZWJpZGwyL2xpYi9SRUFETUUubWQKQEAgLTEsNCArMSw2IEBACiBUaGlzIGRpcmVjdG9y
eSBjb250YWlucyBhIGJ1aWx0IHZlcnNpb24gb2YgdGhlIFt3ZWJpZGwyLmpzIGxpYnJhcnldKGh0
dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViaWRsMi5qcykuCiBJdCBpcyBidWlsdCBieSBydW5uaW5n
IGBucG0gcnVuIGJ1aWxkLWRlYnVnYCBhdCB0aGUgcm9vdCBvZiB0aGF0IHJlcG9zaXRvcnkuCiAK
K0N1cnJlbnRseSB1c2luZyB3ZWJpZGwyLmpzQDI0LjEuMSAoMzcyZWE4M2VhYTEwZjYwYWRmZjQ5
YmQwZjRmM2NlNmExMWQ2ZmJlYykuCisKIFRoZSBgd2ViaWRsMi5qcy5oZWFkZXJzYCBmaWxlIGlz
IGEgbG9jYWwgYWRkaXRpb24gdG8gZW5zdXJlIHRoZSBzY3JpcHQgaXMgaW50ZXJwcmV0ZWQgYXMg
VVRGLTguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy93ZWJpZGwyL2xpYi93ZWJpZGwyLmpzIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvd2ViaWRsMi9saWIvd2ViaWRs
Mi5qcwppbmRleCBkNzA3OTA1ZmE2M2UxNjg4NmU0Yjg5ZTZhNDAzY2RhYzYyZDdkYWRkLi4zMjJm
MGUxMWE2YWU1NmViNjVhMWU1NzQ4MmZmNTIwYjA2NTdkY2Q2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy93ZWJpZGwyL2xp
Yi93ZWJpZGwyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3dlYmlkbDIvbGliL3dlYmlkbDIuanMKQEAgLTcsMTI0ICs3LDE4IEBA
CiAJCWV4cG9ydHNbIldlYklETDIiXSA9IGZhY3RvcnkoKTsKIAllbHNlCiAJCXJvb3RbIldlYklE
TDIiXSA9IGZhY3RvcnkoKTsKLX0pKHRoaXMsIGZ1bmN0aW9uKCkgewotcmV0dXJuIC8qKioqKiov
IChmdW5jdGlvbihtb2R1bGVzKSB7IC8vIHdlYnBhY2tCb290c3RyYXAKLS8qKioqKiovIAkvLyBU
aGUgbW9kdWxlIGNhY2hlCi0vKioqKioqLyAJdmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTsKLS8q
KioqKiovCi0vKioqKioqLyAJLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb24KLS8qKioqKiovIAlmdW5j
dGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7Ci0vKioqKioqLwotLyoqKioqKi8g
CQkvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGUKLS8qKioqKiovIAkJaWYoaW5zdGFsbGVk
TW9kdWxlc1ttb2R1bGVJZF0pIHsKLS8qKioqKiovIAkJCXJldHVybiBpbnN0YWxsZWRNb2R1bGVz
W21vZHVsZUlkXS5leHBvcnRzOwotLyoqKioqKi8gCQl9Ci0vKioqKioqLyAJCS8vIENyZWF0ZSBh
IG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpCi0vKioqKioqLyAJCXZhciBt
b2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHsKLS8qKioqKiovIAkJCWk6IG1v
ZHVsZUlkLAotLyoqKioqKi8gCQkJbDogZmFsc2UsCi0vKioqKioqLyAJCQlleHBvcnRzOiB7fQot
LyoqKioqKi8gCQl9OwotLyoqKioqKi8KLS8qKioqKiovIAkJLy8gRXhlY3V0ZSB0aGUgbW9kdWxl
IGZ1bmN0aW9uCi0vKioqKioqLyAJCW1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9y
dHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pOwotLyoqKioq
Ki8KLS8qKioqKiovIAkJLy8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZAotLyoqKioqKi8gCQlt
b2R1bGUubCA9IHRydWU7Ci0vKioqKioqLwotLyoqKioqKi8gCQkvLyBSZXR1cm4gdGhlIGV4cG9y
dHMgb2YgdGhlIG1vZHVsZQotLyoqKioqKi8gCQlyZXR1cm4gbW9kdWxlLmV4cG9ydHM7Ci0vKioq
KioqLyAJfQotLyoqKioqKi8KLS8qKioqKiovCi0vKioqKioqLyAJLy8gZXhwb3NlIHRoZSBtb2R1
bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXykKLS8qKioqKiovIAlfX3dlYnBhY2tfcmVx
dWlyZV9fLm0gPSBtb2R1bGVzOwotLyoqKioqKi8KLS8qKioqKiovIAkvLyBleHBvc2UgdGhlIG1v
ZHVsZSBjYWNoZQotLyoqKioqKi8gCV9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1v
ZHVsZXM7Ci0vKioqKioqLwotLyoqKioqKi8gCS8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9y
IGhhcm1vbnkgZXhwb3J0cwotLyoqKioqKi8gCV9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0
aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikgewotLyoqKioqKi8gCQlpZighX193ZWJwYWNrX3Jl
cXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7Ci0vKioqKioqLyAJCQlPYmplY3QuZGVmaW5lUHJv
cGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTsK
LS8qKioqKiovIAkJfQotLyoqKioqKi8gCX07Ci0vKioqKioqLwotLyoqKioqKi8gCS8vIGRlZmlu
ZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHMKLS8qKioqKiovIAlfX3dlYnBhY2tfcmVxdWlyZV9fLnIg
PSBmdW5jdGlvbihleHBvcnRzKSB7Ci0vKioqKioqLyAJCWlmKHR5cGVvZiBTeW1ib2wgIT09ICd1
bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykgewotLyoqKioqKi8gCQkJT2JqZWN0LmRl
ZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVs
ZScgfSk7Ci0vKioqKioqLyAJCX0KLS8qKioqKiovIAkJT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4
cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTsKLS8qKioqKiovIAl9OwotLyoq
KioqKi8KLS8qKioqKiovIAkvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3QKLS8qKioq
KiovIAkvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXQKLS8qKioq
KiovIAkvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUg
bnMKLS8qKioqKiovIAkvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBv
YmplY3QKLS8qKioqKiovIAkvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlCi0vKioq
KioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHsKLS8q
KioqKiovIAkJaWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3JlcXVpcmVfXyh2YWx1ZSk7
Ci0vKioqKioqLyAJCWlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7Ci0vKioqKioqLyAJCWlmKCht
b2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1ZS5f
X2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7Ci0vKioqKioqLyAJCXZhciBucyA9IE9iamVjdC5jcmVh
dGUobnVsbCk7Ci0vKioqKioqLyAJCV9fd2VicGFja19yZXF1aXJlX18ucihucyk7Ci0vKioqKioq
LyAJCU9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6IHRy
dWUsIHZhbHVlOiB2YWx1ZSB9KTsKLS8qKioqKiovIAkJaWYobW9kZSAmIDIgJiYgdHlwZW9mIHZh
bHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193ZWJwYWNrX3JlcXVpcmVf
Xy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVba2V5XTsgfS5iaW5kKG51
bGwsIGtleSkpOwotLyoqKioqKi8gCQlyZXR1cm4gbnM7Ci0vKioqKioqLyAJfTsKLS8qKioqKiov
Ci0vKioqKioqLyAJLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0
eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXMKLS8qKioqKiovIAlfX3dlYnBhY2tfcmVxdWlyZV9f
Lm4gPSBmdW5jdGlvbihtb2R1bGUpIHsKLS8qKioqKiovIAkJdmFyIGdldHRlciA9IG1vZHVsZSAm
JiBtb2R1bGUuX19lc01vZHVsZSA/Ci0vKioqKioqLyAJCQlmdW5jdGlvbiBnZXREZWZhdWx0KCkg
eyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOgotLyoqKioqKi8gCQkJZnVuY3Rpb24gZ2V0
TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTsKLS8qKioqKiovIAkJX193ZWJwYWNr
X3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpOwotLyoqKioqKi8gCQlyZXR1cm4gZ2V0
dGVyOwotLyoqKioqKi8gCX07Ci0vKioqKioqLwotLyoqKioqKi8gCS8vIE9iamVjdC5wcm90b3R5
cGUuaGFzT3duUHJvcGVydHkuY2FsbAotLyoqKioqKi8gCV9fd2VicGFja19yZXF1aXJlX18ubyA9
IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFz
T3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTsKLS8qKioqKiovCi0vKioqKioq
LyAJLy8gX193ZWJwYWNrX3B1YmxpY19wYXRoX18KLS8qKioqKiovIAlfX3dlYnBhY2tfcmVxdWly
ZV9fLnAgPSAiIjsKLS8qKioqKiovCi0vKioqKioqLwotLyoqKioqKi8gCS8vIExvYWQgZW50cnkg
bW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0cwotLyoqKioqKi8gCXJldHVybiBfX3dlYnBhY2tfcmVx
dWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDApOwotLyoqKioqKi8gfSkKLS8qKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKiovCi0vKioqKioqLyAoWwotLyogMCAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwg
X193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgewotCi0idXNlIHN0cmlj
dCI7Ci1fX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJt
b255IGltcG9ydCAqLyB2YXIgX2xpYl93ZWJpZGwyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpOwotLyogaGFybW9ueSByZWV4cG9ydCAoc2Fm
ZSkgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJwYXJzZSIs
IGZ1bmN0aW9uKCkgeyByZXR1cm4gX2xpYl93ZWJpZGwyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX19bInBhcnNlIl07IH0pOwotCi0vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2xpYl93
cml0ZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJl
X18oMzApOwotLyogaGFybW9ueSByZWV4cG9ydCAoc2FmZSkgKi8gX193ZWJwYWNrX3JlcXVpcmVf
Xy5kKF9fd2VicGFja19leHBvcnRzX18sICJ3cml0ZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gX2xp
Yl93cml0ZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sid3JpdGUiXTsgfSk7Ci0K
LS8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfbGliX3ZhbGlkYXRvcl9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzMSk7Ci0vKiBoYXJtb255IHJl
ZXhwb3J0IChzYWZlKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNf
XywgInZhbGlkYXRlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBfbGliX3ZhbGlkYXRvcl9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJ2YWxpZGF0ZSJdOyB9KTsKLQotLyogaGFybW9ueSBp
bXBvcnQgKi8gdmFyIF9saWJfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8z
X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpOwotLyogaGFybW9ueSByZWV4cG9ydCAoc2FmZSkg
Ki8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJXZWJJRExQYXJz
ZUVycm9yIiwgZnVuY3Rpb24oKSB7IHJldHVybiBfbGliX3Rva2VuaXNlcl9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfM19fWyJXZWJJRExQYXJzZUVycm9yIl07IH0pOwotCi0KLQotCi0KLQot
Ci0vKioqLyB9KSwKK30pKGdsb2JhbFRoaXMsIGZ1bmN0aW9uKCkgeworcmV0dXJuIC8qKioqKiov
ICgoKSA9PiB7IC8vIHdlYnBhY2tCb290c3RyYXAKKy8qKioqKiovIAkidXNlIHN0cmljdCI7Cisv
KioqKioqLyAJdmFyIF9fd2VicGFja19tb2R1bGVzX18gPSAoWworLyogMCAqLywKIC8qIDEgKi8K
LS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19y
ZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18s
IF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBz
dHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyog
aGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBh
Y2tfZXhwb3J0c19fLCAicGFyc2UiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHBhcnNlOyB9KTsKKy8q
IGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0
c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJwYXJzZSI6ICgpID0+ICgvKiBiaW5kaW5n
ICovIHBhcnNlKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAq
LyB2YXIgX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJw
YWNrX3JlcXVpcmVfXygyKTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfcHJvZHVjdGlvbnNf
ZW51bV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVf
XygxNSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25zX2luY2x1ZGVzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE2KTsK
QEAgLTE1MCw4ICs0NCw2IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0
c19fKTsKIAogCiAKLQotCiAvKioKICAqIEBwYXJhbSB7VG9rZW5pc2VyfSB0b2tlbmlzZXIKICAq
IEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zCkBAIC0xNzIsMTYgKzY0LDE3IEBAIGZ1bmN0aW9uIHBh
cnNlQnlUb2tlbnModG9rZW5pc2VyLCBvcHRpb25zKSB7CiAgICAgY29uc3QgY2FsbGJhY2sgPSBj
b25zdW1lKCJjYWxsYmFjayIpOwogICAgIGlmICghY2FsbGJhY2spIHJldHVybjsKICAgICBpZiAo
dG9rZW5pc2VyLnByb2JlKCJpbnRlcmZhY2UiKSkgewotICAgICAgcmV0dXJuIF9wcm9kdWN0aW9u
c19jYWxsYmFja19pbnRlcmZhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX19bIkNh
bGxiYWNrSW50ZXJmYWNlIl0ucGFyc2UodG9rZW5pc2VyLCBjYWxsYmFjayk7CisgICAgICByZXR1
cm4gX3Byb2R1Y3Rpb25zX2NhbGxiYWNrX2ludGVyZmFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMTBfXy5DYWxsYmFja0ludGVyZmFjZS5wYXJzZSh0b2tlbmlzZXIsIGNhbGxiYWNrKTsK
ICAgICB9Ci0gICAgcmV0dXJuIF9wcm9kdWN0aW9uc19jYWxsYmFja19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfNV9fWyJDYWxsYmFja0Z1bmN0aW9uIl0ucGFyc2UodG9rZW5pc2VyLCBjYWxs
YmFjayk7CisgICAgcmV0dXJuIF9wcm9kdWN0aW9uc19jYWxsYmFja19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfNV9fLkNhbGxiYWNrRnVuY3Rpb24ucGFyc2UodG9rZW5pc2VyLCBjYWxsYmFj
ayk7CiAgIH0KIAogICBmdW5jdGlvbiBpbnRlcmZhY2VfKG9wdHMpIHsKICAgICBjb25zdCBiYXNl
ID0gY29uc3VtZSgiaW50ZXJmYWNlIik7CiAgICAgaWYgKCFiYXNlKSByZXR1cm47Ci0gICAgY29u
c3QgcmV0ID0gX3Byb2R1Y3Rpb25zX21peGluX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83
X19bIk1peGluIl0ucGFyc2UodG9rZW5pc2VyLCBiYXNlLCBvcHRzKSB8fAotICAgICAgX3Byb2R1
Y3Rpb25zX2ludGVyZmFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fWyJJbnRlcmZh
Y2UiXS5wYXJzZSh0b2tlbmlzZXIsIGJhc2UsIG9wdHMpIHx8CisgICAgY29uc3QgcmV0ID0KKyAg
ICAgIF9wcm9kdWN0aW9uc19taXhpbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLk1p
eGluLnBhcnNlKHRva2VuaXNlciwgYmFzZSwgb3B0cykgfHwKKyAgICAgIF9wcm9kdWN0aW9uc19p
bnRlcmZhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5JbnRlcmZhY2UucGFyc2Uo
dG9rZW5pc2VyLCBiYXNlLCBvcHRzKSB8fAogICAgICAgZXJyb3IoIkludGVyZmFjZSBoYXMgbm8g
cHJvcGVyIGJvZHkiKTsKICAgICByZXR1cm4gcmV0OwogICB9CkBAIC0xODksMzcgKzgyLDQxIEBA
IGZ1bmN0aW9uIHBhcnNlQnlUb2tlbnModG9rZW5pc2VyLCBvcHRpb25zKSB7CiAgIGZ1bmN0aW9u
IHBhcnRpYWwoKSB7CiAgICAgY29uc3QgcGFydGlhbCA9IGNvbnN1bWUoInBhcnRpYWwiKTsKICAg
ICBpZiAoIXBhcnRpYWwpIHJldHVybjsKLSAgICByZXR1cm4gX3Byb2R1Y3Rpb25zX2RpY3Rpb25h
cnlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfX1siRGljdGlvbmFyeSJdLnBhcnNlKHRv
a2VuaXNlciwgeyBwYXJ0aWFsIH0pIHx8CisgICAgcmV0dXJuICgKKyAgICAgIF9wcm9kdWN0aW9u
c19kaWN0aW9uYXJ5X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uRGljdGlvbmFyeS5w
YXJzZSh0b2tlbmlzZXIsIHsgcGFydGlhbCB9KSB8fAogICAgICAgaW50ZXJmYWNlXyh7IHBhcnRp
YWwgfSkgfHwKLSAgICAgIF9wcm9kdWN0aW9uc19uYW1lc3BhY2VfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzlfX1siTmFtZXNwYWNlIl0ucGFyc2UodG9rZW5pc2VyLCB7IHBhcnRpYWwgfSkg
fHwKLSAgICAgIGVycm9yKCJQYXJ0aWFsIGRvZXNuJ3QgYXBwbHkgdG8gYW55dGhpbmciKTsKKyAg
ICAgIF9wcm9kdWN0aW9uc19uYW1lc3BhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlf
Xy5OYW1lc3BhY2UucGFyc2UodG9rZW5pc2VyLCB7IHBhcnRpYWwgfSkgfHwKKyAgICAgIGVycm9y
KCJQYXJ0aWFsIGRvZXNuJ3QgYXBwbHkgdG8gYW55dGhpbmciKQorICAgICk7CiAgIH0KIAogICBm
dW5jdGlvbiBkZWZpbml0aW9uKCkgewotICAgIHJldHVybiBjYWxsYmFjaygpIHx8CisgICAgcmV0
dXJuICgKKyAgICAgIGNhbGxiYWNrKCkgfHwKICAgICAgIGludGVyZmFjZV8oKSB8fAogICAgICAg
cGFydGlhbCgpIHx8Ci0gICAgICBfcHJvZHVjdGlvbnNfZGljdGlvbmFyeV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfOF9fWyJEaWN0aW9uYXJ5Il0ucGFyc2UodG9rZW5pc2VyKSB8fAotICAg
ICAgX3Byb2R1Y3Rpb25zX2VudW1fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siRW51
bSJdLnBhcnNlKHRva2VuaXNlcikgfHwKLSAgICAgIF9wcm9kdWN0aW9uc190eXBlZGVmX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bIlR5cGVkZWYiXS5wYXJzZSh0b2tlbmlzZXIpIHx8
Ci0gICAgICBfcHJvZHVjdGlvbnNfaW5jbHVkZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzJfX1siSW5jbHVkZXMiXS5wYXJzZSh0b2tlbmlzZXIpIHx8Ci0gICAgICBfcHJvZHVjdGlvbnNf
bmFtZXNwYWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X19bIk5hbWVzcGFjZSJdLnBh
cnNlKHRva2VuaXNlcik7CisgICAgICBfcHJvZHVjdGlvbnNfZGljdGlvbmFyeV9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfOF9fLkRpY3Rpb25hcnkucGFyc2UodG9rZW5pc2VyKSB8fAorICAg
ICAgX3Byb2R1Y3Rpb25zX2VudW1fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5FbnVt
LnBhcnNlKHRva2VuaXNlcikgfHwKKyAgICAgIF9wcm9kdWN0aW9uc190eXBlZGVmX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV80X18uVHlwZWRlZi5wYXJzZSh0b2tlbmlzZXIpIHx8CisgICAg
ICBfcHJvZHVjdGlvbnNfaW5jbHVkZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5J
bmNsdWRlcy5wYXJzZSh0b2tlbmlzZXIpIHx8CisgICAgICBfcHJvZHVjdGlvbnNfbmFtZXNwYWNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18uTmFtZXNwYWNlLnBhcnNlKHRva2VuaXNl
cikKKyAgICApOwogICB9CiAKICAgZnVuY3Rpb24gZGVmaW5pdGlvbnMoKSB7CiAgICAgaWYgKCFz
b3VyY2UubGVuZ3RoKSByZXR1cm4gW107CiAgICAgY29uc3QgZGVmcyA9IFtdOwogICAgIHdoaWxl
ICh0cnVlKSB7Ci0gICAgICBjb25zdCBlYSA9IF9wcm9kdWN0aW9uc19leHRlbmRlZF9hdHRyaWJ1
dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bIkV4dGVuZGVkQXR0cmlidXRlcyJd
LnBhcnNlKHRva2VuaXNlcik7CisgICAgICBjb25zdCBlYSA9IF9wcm9kdWN0aW9uc19leHRlbmRl
ZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uRXh0ZW5kZWRBdHRy
aWJ1dGVzLnBhcnNlKHRva2VuaXNlcik7CiAgICAgICBjb25zdCBkZWYgPSBkZWZpbml0aW9uKCk7
CiAgICAgICBpZiAoIWRlZikgewogICAgICAgICBpZiAoZWEubGVuZ3RoKSBlcnJvcigiU3RyYXkg
ZXh0ZW5kZWQgYXR0cmlidXRlcyIpOwogICAgICAgICBicmVhazsKICAgICAgIH0KLSAgICAgIE9i
amVjdChfcHJvZHVjdGlvbnNfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFf
X1siYXV0b1BhcmVudGVyIl0pKGRlZikuZXh0QXR0cnMgPSBlYTsKKyAgICAgICgwLF9wcm9kdWN0
aW9uc19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fLmF1dG9QYXJlbnRl
cikoZGVmKS5leHRBdHRycyA9IGVhOwogICAgICAgZGVmcy5wdXNoKGRlZik7CiAgICAgfQotICAg
IGNvbnN0IGVvZiA9IGNvbnN1bWUoImVvZiIpOworICAgIGNvbnN0IGVvZiA9IHRva2VuaXNlci5j
b25zdW1lVHlwZSgiZW9mIik7CiAgICAgaWYgKG9wdGlvbnMuY29uY3JldGUpIHsKICAgICAgIGRl
ZnMucHVzaChlb2YpOwogICAgIH0KQEAgLTIzNyw3ICsxMzQsNyBAQCBmdW5jdGlvbiBwYXJzZUJ5
VG9rZW5zKHRva2VuaXNlciwgb3B0aW9ucykgewogICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9u
cy5jb25jcmV0ZV0KICAqLwogZnVuY3Rpb24gcGFyc2Uoc3RyLCBvcHRpb25zID0ge30pIHsKLSAg
Y29uc3QgdG9rZW5pc2VyID0gbmV3IF90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfX1siVG9rZW5pc2VyIl0oc3RyKTsKKyAgY29uc3QgdG9rZW5pc2VyID0gbmV3IF90b2tl
bmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5Ub2tlbmlzZXIoc3RyKTsKICAg
aWYgKHR5cGVvZiBvcHRpb25zLnNvdXJjZU5hbWUgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgdG9r
ZW5pc2VyLnNvdXJjZS5uYW1lID0gb3B0aW9ucy5zb3VyY2VOYW1lOwogICB9CkBAIC0yNDcsMTUg
KzE0NCwxNiBAQCBmdW5jdGlvbiBwYXJzZShzdHIsIG9wdGlvbnMgPSB7fSkgewogCiAvKioqLyB9
KSwKIC8qIDIgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18s
IF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBh
Y2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+
IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBv
cnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJl
X18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAidHlwZU5hbWVLZXl3b3JkcyIsIGZ1bmN0aW9uKCkg
eyByZXR1cm4gdHlwZU5hbWVLZXl3b3JkczsgfSk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGlu
ZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJzdHJpbmdU
eXBlcyIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gc3RyaW5nVHlwZXM7IH0pOwotLyogaGFybW9ueSBl
eHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0
c19fLCAiYXJndW1lbnROYW1lS2V5d29yZHMiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50
TmFtZUtleXdvcmRzOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBh
Y2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIlRva2VuaXNlciIsIGZ1bmN0aW9u
KCkgeyByZXR1cm4gVG9rZW5pc2VyOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAq
LyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIldlYklETFBhcnNl
RXJyb3IiLCBmdW5jdGlvbigpIHsgcmV0dXJuIFdlYklETFBhcnNlRXJyb3I7IH0pOworLyogaGFy
bW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18s
IHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgInR5cGVOYW1lS2V5d29yZHMiOiAoKSA9PiAoLyog
YmluZGluZyAqLyB0eXBlTmFtZUtleXdvcmRzKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgInN0
cmluZ1R5cGVzIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gc3RyaW5nVHlwZXMpLAorLyogaGFybW9u
eSBleHBvcnQgKi8gICAiYXJndW1lbnROYW1lS2V5d29yZHMiOiAoKSA9PiAoLyogYmluZGluZyAq
LyBhcmd1bWVudE5hbWVLZXl3b3JkcyksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJUb2tlbmlz
ZXIiOiAoKSA9PiAoLyogYmluZGluZyAqLyBUb2tlbmlzZXIpLAorLyogaGFybW9ueSBleHBvcnQg
Ki8gICAiV2ViSURMUGFyc2VFcnJvciI6ICgpID0+ICgvKiBiaW5kaW5nICovIFdlYklETFBhcnNl
RXJyb3IpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZh
ciBfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1
aXJlX18oMyk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25zX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7
CiAKQEAgLTI2NiwxMyArMTY0LDE0IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tf
ZXhwb3J0c19fKTsKIGNvbnN0IHRva2VuUmUgPSB7CiAgIC8vIFRoaXMgZXhwcmVzc2lvbiB1c2Vz
IGEgbG9va2FoZWFkIGFzc2VydGlvbiB0byBjYXRjaCBmYWxzZSBtYXRjaGVzCiAgIC8vIGFnYWlu
c3QgaW50ZWdlcnMgZWFybHkuCi0gICJkZWNpbWFsIjogLy0/KD89WzAtOV0qXC58WzAtOV0rW2VF
XSkoKFswLTldK1wuWzAtOV0qfFswLTldKlwuWzAtOV0rKShbRWVdWy0rXT9bMC05XSspP3xbMC05
XStbRWVdWy0rXT9bMC05XSspL3ksCi0gICJpbnRlZ2VyIjogLy0/KDAoW1h4XVswLTlBLUZhLWZd
K3xbMC03XSopfFsxLTldWzAtOV0qKS95LAotICAiaWRlbnRpZmllciI6IC9bXy1dP1tBLVphLXpd
WzAtOUEtWl9hLXotXSoveSwKLSAgInN0cmluZyI6IC8iW14iXSoiL3ksCi0gICJ3aGl0ZXNwYWNl
IjogL1tcdFxuXHIgXSsveSwKLSAgImNvbW1lbnQiOiAvKChcLyhcLy4qfFwqKFteKl18XCpbXi9d
KSpcKlwvKVtcdFxuXHIgXSopKykveSwKLSAgIm90aGVyIjogL1teXHRcblxyIDAtOUEtWmEtel0v
eQorICBkZWNpbWFsOgorICAgIC8tPyg/PVswLTldKlwufFswLTldK1tlRV0pKChbMC05XStcLlsw
LTldKnxbMC05XSpcLlswLTldKykoW0VlXVstK10/WzAtOV0rKT98WzAtOV0rW0VlXVstK10/WzAt
OV0rKS95LAorICBpbnRlZ2VyOiAvLT8oMChbWHhdWzAtOUEtRmEtZl0rfFswLTddKil8WzEtOV1b
MC05XSopL3ksCisgIGlkZW50aWZpZXI6IC9bXy1dP1tBLVphLXpdWzAtOUEtWl9hLXotXSoveSwK
KyAgc3RyaW5nOiAvIlteIl0qIi95LAorICB3aGl0ZXNwYWNlOiAvW1x0XG5cciBdKy95LAorICBj
b21tZW50OiAvXC9cLy4qfFwvXCooLnxcbikqP1wqXC8veSwKKyAgb3RoZXI6IC9bXlx0XG5cciAw
LTlBLVphLXpdL3ksCiB9OwogCiBjb25zdCB0eXBlTmFtZUtleXdvcmRzID0gWwpAQCAtMjg5LDE0
ICsxODgsMTAgQEAgY29uc3QgdHlwZU5hbWVLZXl3b3JkcyA9IFsKICAgIkZsb2F0NjRBcnJheSIs
CiAgICJhbnkiLAogICAib2JqZWN0IiwKLSAgInN5bWJvbCIKKyAgInN5bWJvbCIsCiBdOwogCi1j
b25zdCBzdHJpbmdUeXBlcyA9IFsKLSAgIkJ5dGVTdHJpbmciLAotICAiRE9NU3RyaW5nIiwKLSAg
IlVTVlN0cmluZyIKLV07Citjb25zdCBzdHJpbmdUeXBlcyA9IFsiQnl0ZVN0cmluZyIsICJET01T
dHJpbmciLCAiVVNWU3RyaW5nIl07CiAKIGNvbnN0IGFyZ3VtZW50TmFtZUtleXdvcmRzID0gWwog
ICAiYXN5bmMiLApAQCAtMzIxLDcgKzIxNiw3IEBAIGNvbnN0IGFyZ3VtZW50TmFtZUtleXdvcmRz
ID0gWwogICAic3RhdGljIiwKICAgInN0cmluZ2lmaWVyIiwKICAgInR5cGVkZWYiLAotICAidW5y
ZXN0cmljdGVkIgorICAidW5yZXN0cmljdGVkIiwKIF07CiAKIGNvbnN0IG5vblJlZ2V4VGVybWlu
YWxzID0gWwpAQCAtMzI5LDcgKzIyNCw5IEBAIGNvbnN0IG5vblJlZ2V4VGVybWluYWxzID0gWwog
ICAiRnJvemVuQXJyYXkiLAogICAiSW5maW5pdHkiLAogICAiTmFOIiwKKyAgIk9ic2VydmFibGVB
cnJheSIsCiAgICJQcm9taXNlIiwKKyAgImJpZ2ludCIsCiAgICJib29sZWFuIiwKICAgImJ5dGUi
LAogICAiZG91YmxlIiwKQEAgLTM0Niw4ICsyNDMsOSBAQCBjb25zdCBub25SZWdleFRlcm1pbmFs
cyA9IFsKICAgInNlcXVlbmNlIiwKICAgInNob3J0IiwKICAgInRydWUiLAorICAidW5kZWZpbmVk
IiwKICAgInVuc2lnbmVkIiwKLSAgInZvaWQiCisgICJ2b2lkIiwKIF0uY29uY2F0KGFyZ3VtZW50
TmFtZUtleXdvcmRzLCBzdHJpbmdUeXBlcywgdHlwZU5hbWVLZXl3b3Jkcyk7CiAKIGNvbnN0IHB1
bmN0dWF0aW9ucyA9IFsKQEAgLTM2NCw3ICsyNjIsNyBAQCBjb25zdCBwdW5jdHVhdGlvbnMgPSBb
CiAgICJbIiwKICAgIl0iLAogICAieyIsCi0gICJ9IgorICAifSIsCiBdOwogCiBjb25zdCByZXNl
cnZlZCA9IFsKQEAgLTM5MCw3ICsyODgsNyBAQCBmdW5jdGlvbiB0b2tlbmlzZShzdHIpIHsKIAog
ICAgIGlmICgvW1x0XG5cciBdLy50ZXN0KG5leHRDaGFyKSkgewogICAgICAgcmVzdWx0ID0gYXR0
ZW1wdFRva2VuTWF0Y2goIndoaXRlc3BhY2UiLCB7IG5vRmx1c2hUcml2aWE6IHRydWUgfSk7Ci0g
ICAgfSBlbHNlIGlmIChuZXh0Q2hhciA9PT0gJy8nKSB7CisgICAgfSBlbHNlIGlmIChuZXh0Q2hh
ciA9PT0gIi8iKSB7CiAgICAgICByZXN1bHQgPSBhdHRlbXB0VG9rZW5NYXRjaCgiY29tbWVudCIs
IHsgbm9GbHVzaFRyaXZpYTogdHJ1ZSB9KTsKICAgICB9CiAKQEAgLTQxMCwxMCArMzA4LDE0IEBA
IGZ1bmN0aW9uIHRva2VuaXNlKHN0cikgewogICAgICAgICBjb25zdCB0b2tlbiA9IHRva2Vuc1ts
YXN0SW5kZXhdOwogICAgICAgICBpZiAocmVzdWx0ICE9PSAtMSkgewogICAgICAgICAgIGlmIChy
ZXNlcnZlZC5pbmNsdWRlcyh0b2tlbi52YWx1ZSkpIHsKLSAgICAgICAgICAgIGNvbnN0IG1lc3Nh
Z2UgPSBgJHtPYmplY3QoX3Byb2R1Y3Rpb25zX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzFfX1sidW5lc2NhcGUiXSkodG9rZW4udmFsdWUpfSBpcyBhIHJlc2VydmVkIGlkZW50
aWZpZXIgYW5kIG11c3Qgbm90IGJlIHVzZWQuYDsKLSAgICAgICAgICAgIHRocm93IG5ldyBXZWJJ
RExQYXJzZUVycm9yKE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
X1sic3ludGF4RXJyb3IiXSkodG9rZW5zLCBsYXN0SW5kZXgsIG51bGwsIG1lc3NhZ2UpKTsKKyAg
ICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgJHsoMCxfcHJvZHVjdGlvbnNfaGVscGVyc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVuZXNjYXBlKSgKKyAgICAgICAgICAgICAgdG9r
ZW4udmFsdWUKKyAgICAgICAgICAgICl9IGlzIGEgcmVzZXJ2ZWQgaWRlbnRpZmllciBhbmQgbXVz
dCBub3QgYmUgdXNlZC5gOworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYklETFBhcnNlRXJyb3Io
CisgICAgICAgICAgICAgICgwLF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
LnN5bnRheEVycm9yKSh0b2tlbnMsIGxhc3RJbmRleCwgbnVsbCwgbWVzc2FnZSkKKyAgICAgICAg
ICAgICk7CiAgICAgICAgICAgfSBlbHNlIGlmIChub25SZWdleFRlcm1pbmFscy5pbmNsdWRlcyh0
b2tlbi52YWx1ZSkpIHsKLSAgICAgICAgICAgIHRva2VuLnR5cGUgPSB0b2tlbi52YWx1ZTsKKyAg
ICAgICAgICAgIHRva2VuLnR5cGUgPSAiaW5saW5lIjsKICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICAgIH0KQEAgLTQyMyw3ICszMjUsMTMgQEAgZnVuY3Rpb24gdG9rZW5pc2Uoc3RyKSB7CiAK
ICAgICBmb3IgKGNvbnN0IHB1bmN0dWF0aW9uIG9mIHB1bmN0dWF0aW9ucykgewogICAgICAgaWYg
KHN0ci5zdGFydHNXaXRoKHB1bmN0dWF0aW9uLCBsYXN0Q2hhckluZGV4KSkgewotICAgICAgICB0
b2tlbnMucHVzaCh7IHR5cGU6IHB1bmN0dWF0aW9uLCB2YWx1ZTogcHVuY3R1YXRpb24sIHRyaXZp
YSwgbGluZSwgaW5kZXggfSk7CisgICAgICAgIHRva2Vucy5wdXNoKHsKKyAgICAgICAgICB0eXBl
OiAiaW5saW5lIiwKKyAgICAgICAgICB2YWx1ZTogcHVuY3R1YXRpb24sCisgICAgICAgICAgdHJp
dmlhLAorICAgICAgICAgIGxpbmUsCisgICAgICAgICAgaW5kZXgsCisgICAgICAgIH0pOwogICAg
ICAgICB0cml2aWEgPSAiIjsKICAgICAgICAgbGFzdENoYXJJbmRleCArPSBwdW5jdHVhdGlvbi5s
ZW5ndGg7CiAgICAgICAgIHJlc3VsdCA9IGxhc3RDaGFySW5kZXg7CkBAIC00NDYsNyArMzU0LDcg
QEAgZnVuY3Rpb24gdG9rZW5pc2Uoc3RyKSB7CiAgIHRva2Vucy5wdXNoKHsKICAgICB0eXBlOiAi
ZW9mIiwKICAgICB2YWx1ZTogIiIsCi0gICAgdHJpdmlhCisgICAgdHJpdmlhLAogICB9KTsKIAog
ICByZXR1cm4gdG9rZW5zOwpAQCAtNDg1LDI4ICszOTMsNTUgQEAgY2xhc3MgVG9rZW5pc2VyIHsK
ICAgICogQHJldHVybiB7bmV2ZXJ9CiAgICAqLwogICBlcnJvcihtZXNzYWdlKSB7Ci0gICAgdGhy
b3cgbmV3IFdlYklETFBhcnNlRXJyb3IoT2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fWyJzeW50YXhFcnJvciJdKSh0aGlzLnNvdXJjZSwgdGhpcy5wb3NpdGlvbiwg
dGhpcy5jdXJyZW50LCBtZXNzYWdlKSk7CisgICAgdGhyb3cgbmV3IFdlYklETFBhcnNlRXJyb3Io
CisgICAgICAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5zeW50YXhF
cnJvcikodGhpcy5zb3VyY2UsIHRoaXMucG9zaXRpb24sIHRoaXMuY3VycmVudCwgbWVzc2FnZSkK
KyAgICApOwogICB9CiAKICAgLyoqCiAgICAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlCiAgICAqLwot
ICBwcm9iZSh0eXBlKSB7Ci0gICAgcmV0dXJuIHRoaXMuc291cmNlLmxlbmd0aCA+IHRoaXMucG9z
aXRpb24gJiYgdGhpcy5zb3VyY2VbdGhpcy5wb3NpdGlvbl0udHlwZSA9PT0gdHlwZTsKKyAgcHJv
YmVUeXBlKHR5cGUpIHsKKyAgICByZXR1cm4gKAorICAgICAgdGhpcy5zb3VyY2UubGVuZ3RoID4g
dGhpcy5wb3NpdGlvbiAmJgorICAgICAgdGhpcy5zb3VyY2VbdGhpcy5wb3NpdGlvbl0udHlwZSA9
PT0gdHlwZQorICAgICk7CisgIH0KKworICAvKioKKyAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVl
CisgICAqLworICBwcm9iZSh2YWx1ZSkgeworICAgIHJldHVybiAoCisgICAgICB0aGlzLnByb2Jl
VHlwZSgiaW5saW5lIikgJiYgdGhpcy5zb3VyY2VbdGhpcy5wb3NpdGlvbl0udmFsdWUgPT09IHZh
bHVlCisgICAgKTsKICAgfQogCiAgIC8qKgogICAgKiBAcGFyYW0gIHsuLi5zdHJpbmd9IGNhbmRp
ZGF0ZXMKICAgICovCi0gIGNvbnN1bWUoLi4uY2FuZGlkYXRlcykgeworICBjb25zdW1lVHlwZSgu
Li5jYW5kaWRhdGVzKSB7CiAgICAgZm9yIChjb25zdCB0eXBlIG9mIGNhbmRpZGF0ZXMpIHsKLSAg
ICAgIGlmICghdGhpcy5wcm9iZSh0eXBlKSkgY29udGludWU7CisgICAgICBpZiAoIXRoaXMucHJv
YmVUeXBlKHR5cGUpKSBjb250aW51ZTsKICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5zb3VyY2Vb
dGhpcy5wb3NpdGlvbl07CiAgICAgICB0aGlzLnBvc2l0aW9uKys7CiAgICAgICByZXR1cm4gdG9r
ZW47CiAgICAgfQogICB9CiAKKyAgLyoqCisgICAqIEBwYXJhbSAgey4uLnN0cmluZ30gY2FuZGlk
YXRlcworICAgKi8KKyAgY29uc3VtZSguLi5jYW5kaWRhdGVzKSB7CisgICAgaWYgKCF0aGlzLnBy
b2JlVHlwZSgiaW5saW5lIikpIHJldHVybjsKKyAgICBjb25zdCB0b2tlbiA9IHRoaXMuc291cmNl
W3RoaXMucG9zaXRpb25dOworICAgIGZvciAoY29uc3QgdmFsdWUgb2YgY2FuZGlkYXRlcykgewor
ICAgICAgaWYgKHRva2VuLnZhbHVlICE9PSB2YWx1ZSkgY29udGludWU7CisgICAgICB0aGlzLnBv
c2l0aW9uKys7CisgICAgICByZXR1cm4gdG9rZW47CisgICAgfQorICB9CisKICAgLyoqCiAgICAq
IEBwYXJhbSB7bnVtYmVyfSBwb3NpdGlvbgogICAgKi8KQEAgLTUyNiw3ICs0NjEsMTUgQEAgY2xh
c3MgV2ViSURMUGFyc2VFcnJvciBleHRlbmRzIEVycm9yIHsKICAgICogQHBhcmFtIHtzdHJpbmd9
IG9wdGlvbnMuaW5wdXQKICAgICogQHBhcmFtIHsqW119IG9wdGlvbnMudG9rZW5zCiAgICAqLwot
ICBjb25zdHJ1Y3Rvcih7IG1lc3NhZ2UsIGJhcmVNZXNzYWdlLCBjb250ZXh0LCBsaW5lLCBzb3Vy
Y2VOYW1lLCBpbnB1dCwgdG9rZW5zIH0pIHsKKyAgY29uc3RydWN0b3IoeworICAgIG1lc3NhZ2Us
CisgICAgYmFyZU1lc3NhZ2UsCisgICAgY29udGV4dCwKKyAgICBsaW5lLAorICAgIHNvdXJjZU5h
bWUsCisgICAgaW5wdXQsCisgICAgdG9rZW5zLAorICB9KSB7CiAgICAgc3VwZXIobWVzc2FnZSk7
CiAKICAgICB0aGlzLm5hbWUgPSAiV2ViSURMUGFyc2VFcnJvciI7IC8vIG5vdCB0byBiZSBtYW5n
bGVkCkBAIC01NDIsMTIgKzQ4NSwxMyBAQCBjbGFzcyBXZWJJRExQYXJzZUVycm9yIGV4dGVuZHMg
RXJyb3IgewogCiAvKioqLyB9KSwKIC8qIDMgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9f
d2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVz
ZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2Vi
cGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVf
Xy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICov
IF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAic3ludGF4RXJyb3Ii
LCBmdW5jdGlvbigpIHsgcmV0dXJuIHN5bnRheEVycm9yOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0
IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywg
InZhbGlkYXRpb25FcnJvciIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gdmFsaWRhdGlvbkVycm9yOyB9
KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tf
ZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJzeW50YXhFcnJvciI6ICgpID0+
ICgvKiBiaW5kaW5nICovIHN5bnRheEVycm9yKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgInZh
bGlkYXRpb25FcnJvciI6ICgpID0+ICgvKiBiaW5kaW5nICovIHZhbGlkYXRpb25FcnJvcikKKy8q
IGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyoqCiAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dAogICov
CkBAIC01NTYsNiArNTAwLDI0IEBAIGZ1bmN0aW9uIGxhc3RMaW5lKHRleHQpIHsKICAgcmV0dXJu
IHNwbGl0dGVkW3NwbGl0dGVkLmxlbmd0aCAtIDFdOwogfQogCitmdW5jdGlvbiBhcHBlbmRJZkV4
aXN0KGJhc2UsIHRhcmdldCkgeworICBsZXQgcmVzdWx0ID0gYmFzZTsKKyAgaWYgKHRhcmdldCkg
eworICAgIHJlc3VsdCArPSBgICR7dGFyZ2V0fWA7CisgIH0KKyAgcmV0dXJuIHJlc3VsdDsKK30K
KworZnVuY3Rpb24gY29udGV4dEFzVGV4dChub2RlKSB7CisgIGNvbnN0IGhpZXJhcmNoeSA9IFtu
b2RlXTsKKyAgd2hpbGUgKG5vZGUgJiYgbm9kZS5wYXJlbnQpIHsKKyAgICBjb25zdCB7IHBhcmVu
dCB9ID0gbm9kZTsKKyAgICBoaWVyYXJjaHkudW5zaGlmdChwYXJlbnQpOworICAgIG5vZGUgPSBw
YXJlbnQ7CisgIH0KKyAgcmV0dXJuIGhpZXJhcmNoeS5tYXAoKG4pID0+IGFwcGVuZElmRXhpc3Qo
bi50eXBlLCBuLm5hbWUpKS5qb2luKCIgLT4gIik7Cit9CisKIC8qKgogICogQHR5cGVkZWYge29i
amVjdH0gV2ViSURMMkVycm9yT3B0aW9ucwogICogQHByb3BlcnR5IHsiZXJyb3IiIHwgIndhcm5p
bmcifSBbbGV2ZWxdCkBAIC01NjUsMTggKzUyNywyNSBAQCBmdW5jdGlvbiBsYXN0TGluZSh0ZXh0
KSB7CiAgKiBAcGFyYW0geyJTeW50YXgiIHwgIlZhbGlkYXRpb24ifSBraW5kIGVycm9yIHR5cGUK
ICAqIEBwYXJhbSB7V2ViSURMMkVycm9yT3B0aW9uc30gW29wdGlvbnNdCiAgKi8KLWZ1bmN0aW9u
IGVycm9yKHNvdXJjZSwgcG9zaXRpb24sIGN1cnJlbnQsIG1lc3NhZ2UsIGtpbmQsIHsgbGV2ZWwg
PSAiZXJyb3IiLCBhdXRvZml4LCBydWxlTmFtZSB9ID0ge30pIHsKK2Z1bmN0aW9uIGVycm9yKAor
ICBzb3VyY2UsCisgIHBvc2l0aW9uLAorICBjdXJyZW50LAorICBtZXNzYWdlLAorICBraW5kLAor
ICB7IGxldmVsID0gImVycm9yIiwgYXV0b2ZpeCwgcnVsZU5hbWUgfSA9IHt9CispIHsKICAgLyoq
CiAgICAqIEBwYXJhbSB7bnVtYmVyfSBjb3VudAogICAgKi8KICAgZnVuY3Rpb24gc2xpY2VUb2tl
bnMoY291bnQpIHsKLSAgICByZXR1cm4gY291bnQgPiAwID8KLSAgICAgIHNvdXJjZS5zbGljZShw
b3NpdGlvbiwgcG9zaXRpb24gKyBjb3VudCkgOgotICAgICAgc291cmNlLnNsaWNlKE1hdGgubWF4
KHBvc2l0aW9uICsgY291bnQsIDApLCBwb3NpdGlvbik7CisgICAgcmV0dXJuIGNvdW50ID4gMAor
ICAgICAgPyBzb3VyY2Uuc2xpY2UocG9zaXRpb24sIHBvc2l0aW9uICsgY291bnQpCisgICAgICA6
IHNvdXJjZS5zbGljZShNYXRoLm1heChwb3NpdGlvbiArIGNvdW50LCAwKSwgcG9zaXRpb24pOwog
ICB9CiAKICAgZnVuY3Rpb24gdG9rZW5zVG9UZXh0KGlucHV0cywgeyBwcmVjZWRlcyB9ID0ge30p
IHsKLSAgICBjb25zdCB0ZXh0ID0gaW5wdXRzLm1hcCh0ID0+IHQudHJpdmlhICsgdC52YWx1ZSku
am9pbigiIik7CisgICAgY29uc3QgdGV4dCA9IGlucHV0cy5tYXAoKHQpID0+IHQudHJpdmlhICsg
dC52YWx1ZSkuam9pbigiIik7CiAgICAgY29uc3QgbmV4dFRva2VuID0gc291cmNlW3Bvc2l0aW9u
XTsKICAgICBpZiAobmV4dFRva2VuLnR5cGUgPT09ICJlb2YiKSB7CiAgICAgICByZXR1cm4gdGV4
dDsKQEAgLTU4OSw5ICs1NTgsMTEgQEAgZnVuY3Rpb24gZXJyb3Ioc291cmNlLCBwb3NpdGlvbiwg
Y3VycmVudCwgbWVzc2FnZSwga2luZCwgeyBsZXZlbCA9ICJlcnJvciIsIGF1dG8KIAogICBjb25z
dCBtYXhUb2tlbnMgPSA1OyAvLyBhcmJpdHJhcnkgYnV0IHdvcmtzIHdlbGwgZW5vdWdoCiAgIGNv
bnN0IGxpbmUgPQotICAgIHNvdXJjZVtwb3NpdGlvbl0udHlwZSAhPT0gImVvZiIgPyBzb3VyY2Vb
cG9zaXRpb25dLmxpbmUgOgotICAgIHNvdXJjZS5sZW5ndGggPiAxID8gc291cmNlW3Bvc2l0aW9u
IC0gMV0ubGluZSA6Ci0gICAgMTsKKyAgICBzb3VyY2VbcG9zaXRpb25dLnR5cGUgIT09ICJlb2Yi
CisgICAgICA/IHNvdXJjZVtwb3NpdGlvbl0ubGluZQorICAgICAgOiBzb3VyY2UubGVuZ3RoID4g
MQorICAgICAgPyBzb3VyY2VbcG9zaXRpb24gLSAxXS5saW5lCisgICAgICA6IDE7CiAKICAgY29u
c3QgcHJlY2VkaW5nTGFzdExpbmUgPSBsYXN0TGluZSgKICAgICB0b2tlbnNUb1RleHQoc2xpY2VU
b2tlbnMoLW1heFRva2VucyksIHsgcHJlY2VkZXM6IHRydWUgfSkKQEAgLTYwNiw3ICs1NzcsMTIg
QEAgZnVuY3Rpb24gZXJyb3Ioc291cmNlLCBwb3NpdGlvbiwgY3VycmVudCwgbWVzc2FnZSwga2lu
ZCwgeyBsZXZlbCA9ICJlcnJvciIsIGF1dG8KIAogICBjb25zdCBjb250ZXh0VHlwZSA9IGtpbmQg
PT09ICJTeW50YXgiID8gInNpbmNlIiA6ICJpbnNpZGUiOwogICBjb25zdCBpblNvdXJjZU5hbWUg
PSBzb3VyY2UubmFtZSA/IGAgaW4gJHtzb3VyY2UubmFtZX1gIDogIiI7Ci0gIGNvbnN0IGdyYW1t
YXRpY2FsQ29udGV4dCA9IChjdXJyZW50ICYmIGN1cnJlbnQubmFtZSkgPyBgLCAke2NvbnRleHRU
eXBlfSBcYCR7Y3VycmVudC5wYXJ0aWFsID8gInBhcnRpYWwgIiA6ICIifSR7Y3VycmVudC50eXBl
fSAke2N1cnJlbnQubmFtZX1cYGAgOiAiIjsKKyAgY29uc3QgZ3JhbW1hdGljYWxDb250ZXh0ID0K
KyAgICBjdXJyZW50ICYmIGN1cnJlbnQubmFtZQorICAgICAgPyBgLCAke2NvbnRleHRUeXBlfSBc
YCR7Y3VycmVudC5wYXJ0aWFsID8gInBhcnRpYWwgIiA6ICIifSR7Y29udGV4dEFzVGV4dCgKKyAg
ICAgICAgICBjdXJyZW50CisgICAgICAgICl9XGBgCisgICAgICA6ICIiOwogICBjb25zdCBjb250
ZXh0ID0gYCR7a2luZH0gZXJyb3IgYXQgbGluZSAke2xpbmV9JHtpblNvdXJjZU5hbWV9JHtncmFt
bWF0aWNhbENvbnRleHR9OlxuJHtzb3VyY2VDb250ZXh0fWA7CiAgIHJldHVybiB7CiAgICAgbWVz
c2FnZTogYCR7Y29udGV4dH0gJHttZXNzYWdlfWAsCkBAIC02MTgsNyArNTk0LDcgQEAgZnVuY3Rp
b24gZXJyb3Ioc291cmNlLCBwb3NpdGlvbiwgY3VycmVudCwgbWVzc2FnZSwga2luZCwgeyBsZXZl
bCA9ICJlcnJvciIsIGF1dG8KICAgICBydWxlTmFtZSwKICAgICBhdXRvZml4LAogICAgIGlucHV0
OiBzdWJzZXF1ZW50VGV4dCwKLSAgICB0b2tlbnM6IHN1YnNlcXVlbnRUb2tlbnMKKyAgICB0b2tl
bnM6IHN1YnNlcXVlbnRUb2tlbnMsCiAgIH07CiB9CiAKQEAgLTYzMywzMyArNjA5LDQ3IEBAIGZ1
bmN0aW9uIHN5bnRheEVycm9yKHNvdXJjZSwgcG9zaXRpb24sIGN1cnJlbnQsIG1lc3NhZ2UpIHsK
ICAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlIGVycm9yIG1lc3NhZ2UKICAqIEBwYXJhbSB7V2Vi
SURMMkVycm9yT3B0aW9uc30gW29wdGlvbnNdCiAgKi8KLWZ1bmN0aW9uIHZhbGlkYXRpb25FcnJv
cih0b2tlbiwgY3VycmVudCwgcnVsZU5hbWUsIG1lc3NhZ2UsIG9wdGlvbnMgPSB7fSkgeworZnVu
Y3Rpb24gdmFsaWRhdGlvbkVycm9yKAorICB0b2tlbiwKKyAgY3VycmVudCwKKyAgcnVsZU5hbWUs
CisgIG1lc3NhZ2UsCisgIG9wdGlvbnMgPSB7fQorKSB7CiAgIG9wdGlvbnMucnVsZU5hbWUgPSBy
dWxlTmFtZTsKLSAgcmV0dXJuIGVycm9yKGN1cnJlbnQuc291cmNlLCB0b2tlbi5pbmRleCwgY3Vy
cmVudCwgbWVzc2FnZSwgIlZhbGlkYXRpb24iLCBvcHRpb25zKTsKKyAgcmV0dXJuIGVycm9yKAor
ICAgIGN1cnJlbnQuc291cmNlLAorICAgIHRva2VuLmluZGV4LAorICAgIGN1cnJlbnQsCisgICAg
bWVzc2FnZSwKKyAgICAiVmFsaWRhdGlvbiIsCisgICAgb3B0aW9ucworICApOwogfQogCiAKIC8q
KiovIH0pLAogLyogNCAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9y
dHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19f
d2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVf
XykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNr
X2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ1bmVzY2FwZSIsIGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gdW5lc2NhcGU7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2Vi
cGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAibGlzdCIsIGZ1bmN0aW9uKCkg
eyByZXR1cm4gbGlzdDsgfSk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJw
YWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJjb25zdF92YWx1ZSIsIGZ1bmN0
aW9uKCkgeyByZXR1cm4gY29uc3RfdmFsdWU7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRp
bmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiY29uc3Rf
ZGF0YSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gY29uc3RfZGF0YTsgfSk7Ci0vKiBoYXJtb255IGV4
cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRz
X18sICJwcmltaXRpdmVfdHlwZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gcHJpbWl0aXZlX3R5cGU7
IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18u
ZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiYXJndW1lbnRfbGlzdCIsIGZ1bmN0aW9uKCkgeyByZXR1
cm4gYXJndW1lbnRfbGlzdDsgfSk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193
ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ0eXBlX3dpdGhfZXh0ZW5k
ZWRfYXR0cmlidXRlcyIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gdHlwZV93aXRoX2V4dGVuZGVkX2F0
dHJpYnV0ZXM7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19y
ZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAicmV0dXJuX3R5cGUiLCBmdW5jdGlvbigp
IHsgcmV0dXJuIHJldHVybl90eXBlOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAq
LyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInN0cmluZ2lmaWVy
IiwgZnVuY3Rpb24oKSB7IHJldHVybiBzdHJpbmdpZmllcjsgfSk7Ci0vKiBoYXJtb255IGV4cG9y
dCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18s
ICJnZXRMYXN0SW5kZW50YXRpb24iLCBmdW5jdGlvbigpIHsgcmV0dXJuIGdldExhc3RJbmRlbnRh
dGlvbjsgfSk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVp
cmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJnZXRNZW1iZXJJbmRlbnRhdGlvbiIsIGZ1bmN0
aW9uKCkgeyByZXR1cm4gZ2V0TWVtYmVySW5kZW50YXRpb247IH0pOwotLyogaGFybW9ueSBleHBv
cnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19f
LCAiYXV0b2ZpeEFkZEV4cG9zZWRXaW5kb3ciLCBmdW5jdGlvbigpIHsgcmV0dXJuIGF1dG9maXhB
ZGRFeHBvc2VkV2luZG93OyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dl
YnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImdldEZpcnN0VG9rZW4iLCBm
dW5jdGlvbigpIHsgcmV0dXJuIGdldEZpcnN0VG9rZW47IH0pOwotLyogaGFybW9ueSBleHBvcnQg
KGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAi
ZmluZExhc3RJbmRleCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gZmluZExhc3RJbmRleDsgfSk7Ci0v
KiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2Vi
cGFja19leHBvcnRzX18sICJhdXRvUGFyZW50ZXIiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGF1dG9Q
YXJlbnRlcjsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQo
X193ZWJwYWNrX2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBvcnQgKi8gICAidW5lc2NhcGUi
OiAoKSA9PiAoLyogYmluZGluZyAqLyB1bmVzY2FwZSksCisvKiBoYXJtb255IGV4cG9ydCAqLyAg
ICJsaXN0IjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gbGlzdCksCisvKiBoYXJtb255IGV4cG9ydCAq
LyAgICJjb25zdF92YWx1ZSI6ICgpID0+ICgvKiBiaW5kaW5nICovIGNvbnN0X3ZhbHVlKSwKKy8q
IGhhcm1vbnkgZXhwb3J0ICovICAgImNvbnN0X2RhdGEiOiAoKSA9PiAoLyogYmluZGluZyAqLyBj
b25zdF9kYXRhKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgInByaW1pdGl2ZV90eXBlIjogKCkg
PT4gKC8qIGJpbmRpbmcgKi8gcHJpbWl0aXZlX3R5cGUpLAorLyogaGFybW9ueSBleHBvcnQgKi8g
ICAiYXJndW1lbnRfbGlzdCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGFyZ3VtZW50X2xpc3QpLAor
LyogaGFybW9ueSBleHBvcnQgKi8gICAidHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMiOiAo
KSA9PiAoLyogYmluZGluZyAqLyB0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyksCisvKiBo
YXJtb255IGV4cG9ydCAqLyAgICJyZXR1cm5fdHlwZSI6ICgpID0+ICgvKiBiaW5kaW5nICovIHJl
dHVybl90eXBlKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgInN0cmluZ2lmaWVyIjogKCkgPT4g
KC8qIGJpbmRpbmcgKi8gc3RyaW5naWZpZXIpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAiZ2V0
TGFzdEluZGVudGF0aW9uIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0TGFzdEluZGVudGF0aW9u
KSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgImdldE1lbWJlckluZGVudGF0aW9uIjogKCkgPT4g
KC8qIGJpbmRpbmcgKi8gZ2V0TWVtYmVySW5kZW50YXRpb24pLAorLyogaGFybW9ueSBleHBvcnQg
Ki8gICAiYXV0b2ZpeEFkZEV4cG9zZWRXaW5kb3ciOiAoKSA9PiAoLyogYmluZGluZyAqLyBhdXRv
Zml4QWRkRXhwb3NlZFdpbmRvdyksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJnZXRGaXJzdFRv
a2VuIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZ2V0Rmlyc3RUb2tlbiksCisvKiBoYXJtb255IGV4
cG9ydCAqLyAgICJmaW5kTGFzdEluZGV4IjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZmluZExhc3RJ
bmRleCksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJhdXRvUGFyZW50ZXIiOiAoKSA9PiAoLyog
YmluZGluZyAqLyBhdXRvUGFyZW50ZXIpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhh
cm1vbnkgaW1wb3J0ICovIHZhciBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYXJn
dW1lbnRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJl
X18oMTEpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDgpOwpA
QCAtNjc3LDcgKzY2Nyw3IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0
c19fKTsKICAqIEBwYXJhbSB7c3RyaW5nfSBpZGVudGlmaWVyCiAgKi8KIGZ1bmN0aW9uIHVuZXNj
YXBlKGlkZW50aWZpZXIpIHsKLSAgcmV0dXJuIGlkZW50aWZpZXIuc3RhcnRzV2l0aCgnXycpID8g
aWRlbnRpZmllci5zbGljZSgxKSA6IGlkZW50aWZpZXI7CisgIHJldHVybiBpZGVudGlmaWVyLnN0
YXJ0c1dpdGgoIl8iKSA/IGlkZW50aWZpZXIuc2xpY2UoMSkgOiBpZGVudGlmaWVyOwogfQogCiAv
KioKQEAgLTcxNCw3ICs3MDQsMTAgQEAgZnVuY3Rpb24gbGlzdCh0b2tlbmlzZXIsIHsgcGFyc2Vy
LCBhbGxvd0RhbmdsZXIsIGxpc3ROYW1lID0gImxpc3QiIH0pIHsKICAqIEBwYXJhbSB7aW1wb3J0
KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgogICovCiBmdW5jdGlvbiBjb25z
dF92YWx1ZSh0b2tlbmlzZXIpIHsKLSAgcmV0dXJuIHRva2VuaXNlci5jb25zdW1lKCJ0cnVlIiwg
ImZhbHNlIiwgIkluZmluaXR5IiwgIi1JbmZpbml0eSIsICJOYU4iLCAiZGVjaW1hbCIsICJpbnRl
Z2VyIik7CisgIHJldHVybiAoCisgICAgdG9rZW5pc2VyLmNvbnN1bWVUeXBlKCJkZWNpbWFsIiwg
ImludGVnZXIiKSB8fAorICAgIHRva2VuaXNlci5jb25zdW1lKCJ0cnVlIiwgImZhbHNlIiwgIklu
ZmluaXR5IiwgIi1JbmZpbml0eSIsICJOYU4iKQorICApOwogfQogCiAvKioKQEAgLTcyNCwyMyAr
NzE3LDI2IEBAIGZ1bmN0aW9uIGNvbnN0X3ZhbHVlKHRva2VuaXNlcikgewogICovCiBmdW5jdGlv
biBjb25zdF9kYXRhKHsgdHlwZSwgdmFsdWUgfSkgewogICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBj
YXNlICJkZWNpbWFsIjoKKyAgICBjYXNlICJpbnRlZ2VyIjoKKyAgICAgIHJldHVybiB7IHR5cGU6
ICJudW1iZXIiLCB2YWx1ZSB9OworICAgIGNhc2UgInN0cmluZyI6CisgICAgICByZXR1cm4geyB0
eXBlOiAic3RyaW5nIiwgdmFsdWU6IHZhbHVlLnNsaWNlKDEsIC0xKSB9OworICB9CisKKyAgc3dp
dGNoICh2YWx1ZSkgewogICAgIGNhc2UgInRydWUiOgogICAgIGNhc2UgImZhbHNlIjoKLSAgICAg
IHJldHVybiB7IHR5cGU6ICJib29sZWFuIiwgdmFsdWU6IHR5cGUgPT09ICJ0cnVlIiB9OworICAg
ICAgcmV0dXJuIHsgdHlwZTogImJvb2xlYW4iLCB2YWx1ZTogdmFsdWUgPT09ICJ0cnVlIiB9Owog
ICAgIGNhc2UgIkluZmluaXR5IjoKICAgICBjYXNlICItSW5maW5pdHkiOgotICAgICAgcmV0dXJu
IHsgdHlwZTogIkluZmluaXR5IiwgbmVnYXRpdmU6IHR5cGUuc3RhcnRzV2l0aCgiLSIpIH07Cisg
ICAgICByZXR1cm4geyB0eXBlOiAiSW5maW5pdHkiLCBuZWdhdGl2ZTogdmFsdWUuc3RhcnRzV2l0
aCgiLSIpIH07CiAgICAgY2FzZSAiWyI6CiAgICAgICByZXR1cm4geyB0eXBlOiAic2VxdWVuY2Ui
LCB2YWx1ZTogW10gfTsKICAgICBjYXNlICJ7IjoKICAgICAgIHJldHVybiB7IHR5cGU6ICJkaWN0
aW9uYXJ5IiB9OwotICAgIGNhc2UgImRlY2ltYWwiOgotICAgIGNhc2UgImludGVnZXIiOgotICAg
ICAgcmV0dXJuIHsgdHlwZTogIm51bWJlciIsIHZhbHVlIH07Ci0gICAgY2FzZSAic3RyaW5nIjoK
LSAgICAgIHJldHVybiB7IHR5cGU6ICJzdHJpbmciLCB2YWx1ZTogdmFsdWUuc2xpY2UoMSwgLTEp
IH07CiAgICAgZGVmYXVsdDoKLSAgICAgIHJldHVybiB7IHR5cGUgfTsKKyAgICAgIHJldHVybiB7
IHR5cGU6IHZhbHVlIH07CiAgIH0KIH0KIApAQCAtNzUzLDcgKzc0OSw3IEBAIGZ1bmN0aW9uIHBy
aW1pdGl2ZV90eXBlKHRva2VuaXNlcikgewogICAgIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIuY29u
c3VtZSgic2hvcnQiLCAibG9uZyIpOwogICAgIGlmIChiYXNlKSB7CiAgICAgICBjb25zdCBwb3N0
Zml4ID0gdG9rZW5pc2VyLmNvbnN1bWUoImxvbmciKTsKLSAgICAgIHJldHVybiBuZXcgX3R5cGVf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siVHlwZSJdKHsgc291cmNlLCB0b2tlbnM6
IHsgcHJlZml4LCBiYXNlLCBwb3N0Zml4IH0gfSk7CisgICAgICByZXR1cm4gbmV3IF90eXBlX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uVHlwZSh7IHNvdXJjZSwgdG9rZW5zOiB7IHBy
ZWZpeCwgYmFzZSwgcG9zdGZpeCB9IH0pOwogICAgIH0KICAgICBpZiAocHJlZml4KSB0b2tlbmlz
ZXIuZXJyb3IoIkZhaWxlZCB0byBwYXJzZSBpbnRlZ2VyIHR5cGUiKTsKICAgfQpAQCAtNzYyLDcg
Kzc1OCw3IEBAIGZ1bmN0aW9uIHByaW1pdGl2ZV90eXBlKHRva2VuaXNlcikgewogICAgIGNvbnN0
IHByZWZpeCA9IHRva2VuaXNlci5jb25zdW1lKCJ1bnJlc3RyaWN0ZWQiKTsKICAgICBjb25zdCBi
YXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImZsb2F0IiwgImRvdWJsZSIpOwogICAgIGlmIChiYXNl
KSB7Ci0gICAgICByZXR1cm4gbmV3IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bIlR5cGUiXSh7IHNvdXJjZSwgdG9rZW5zOiB7IHByZWZpeCwgYmFzZSB9IH0pOworICAgICAg
cmV0dXJuIG5ldyBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlR5cGUoeyBz
b3VyY2UsIHRva2VuczogeyBwcmVmaXgsIGJhc2UgfSB9KTsKICAgICB9CiAgICAgaWYgKHByZWZp
eCkgdG9rZW5pc2VyLmVycm9yKCJGYWlsZWQgdG8gcGFyc2UgZmxvYXQgdHlwZSIpOwogICB9CkBA
IC03NzAsOSArNzY2LDE1IEBAIGZ1bmN0aW9uIHByaW1pdGl2ZV90eXBlKHRva2VuaXNlcikgewog
ICBjb25zdCB7IHNvdXJjZSB9ID0gdG9rZW5pc2VyOwogICBjb25zdCBudW1fdHlwZSA9IGludGVn
ZXJfdHlwZSh0b2tlbmlzZXIpIHx8IGRlY2ltYWxfdHlwZSh0b2tlbmlzZXIpOwogICBpZiAobnVt
X3R5cGUpIHJldHVybiBudW1fdHlwZTsKLSAgY29uc3QgYmFzZSA9IHRva2VuaXNlci5jb25zdW1l
KCJib29sZWFuIiwgImJ5dGUiLCAib2N0ZXQiKTsKKyAgY29uc3QgYmFzZSA9IHRva2VuaXNlci5j
b25zdW1lKAorICAgICJiaWdpbnQiLAorICAgICJib29sZWFuIiwKKyAgICAiYnl0ZSIsCisgICAg
Im9jdGV0IiwKKyAgICAidW5kZWZpbmVkIgorICApOwogICBpZiAoYmFzZSkgewotICAgIHJldHVy
biBuZXcgX3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siVHlwZSJdKHsgc291
cmNlLCB0b2tlbnM6IHsgYmFzZSB9IH0pOworICAgIHJldHVybiBuZXcgX3R5cGVfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfXy5UeXBlKHsgc291cmNlLCB0b2tlbnM6IHsgYmFzZSB9IH0p
OwogICB9CiB9CiAKQEAgLTc4MCw3ICs3ODIsMTAgQEAgZnVuY3Rpb24gcHJpbWl0aXZlX3R5cGUo
dG9rZW5pc2VyKSB7CiAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2Vy
fSB0b2tlbmlzZXIKICAqLwogZnVuY3Rpb24gYXJndW1lbnRfbGlzdCh0b2tlbmlzZXIpIHsKLSAg
cmV0dXJuIGxpc3QodG9rZW5pc2VyLCB7IHBhcnNlcjogX2FyZ3VtZW50X2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX19bIkFyZ3VtZW50Il0ucGFyc2UsIGxpc3ROYW1lOiAiYXJndW1lbnRz
IGxpc3QiIH0pOworICByZXR1cm4gbGlzdCh0b2tlbmlzZXIsIHsKKyAgICBwYXJzZXI6IF9hcmd1
bWVudF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkFyZ3VtZW50LnBhcnNlLAorICAg
IGxpc3ROYW1lOiAiYXJndW1lbnRzIGxpc3QiLAorICB9KTsKIH0KIAogLyoqCkBAIC03ODgsOCAr
NzkzLDggQEAgZnVuY3Rpb24gYXJndW1lbnRfbGlzdCh0b2tlbmlzZXIpIHsKICAqIEBwYXJhbSB7
c3RyaW5nfSB0eXBlTmFtZQogICovCiBmdW5jdGlvbiB0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmli
dXRlcyh0b2tlbmlzZXIsIHR5cGVOYW1lKSB7Ci0gIGNvbnN0IGV4dEF0dHJzID0gX2V4dGVuZGVk
X2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siRXh0ZW5kZWRBdHRy
aWJ1dGVzIl0ucGFyc2UodG9rZW5pc2VyKTsKLSAgY29uc3QgcmV0ID0gX3R5cGVfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfX1siVHlwZSJdLnBhcnNlKHRva2VuaXNlciwgdHlwZU5hbWUp
OworICBjb25zdCBleHRBdHRycyA9IF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8yX18uRXh0ZW5kZWRBdHRyaWJ1dGVzLnBhcnNlKHRva2VuaXNlcik7Cisg
IGNvbnN0IHJldCA9IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uVHlwZS5w
YXJzZSh0b2tlbmlzZXIsIHR5cGVOYW1lKTsKICAgaWYgKHJldCkgYXV0b1BhcmVudGVyKHJldCku
ZXh0QXR0cnMgPSBleHRBdHRyczsKICAgcmV0dXJuIHJldDsKIH0KQEAgLTc5OSwxMyArODA0LDE2
IEBAIGZ1bmN0aW9uIHR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzKHRva2VuaXNlciwgdHlw
ZU5hbWUpIHsKICAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlTmFtZQogICovCiBmdW5jdGlvbiByZXR1
cm5fdHlwZSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB7Ci0gIGNvbnN0IHR5cCA9IF90eXBlX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIlR5cGUiXS5wYXJzZSh0b2tlbmlzZXIsIHR5cGVO
YW1lIHx8ICJyZXR1cm4tdHlwZSIpOworICBjb25zdCB0eXAgPSBfdHlwZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fLlR5cGUucGFyc2UodG9rZW5pc2VyLCB0eXBlTmFtZSB8fCAicmV0
dXJuLXR5cGUiKTsKICAgaWYgKHR5cCkgewogICAgIHJldHVybiB0eXA7CiAgIH0KICAgY29uc3Qg
dm9pZFRva2VuID0gdG9rZW5pc2VyLmNvbnN1bWUoInZvaWQiKTsKICAgaWYgKHZvaWRUb2tlbikg
ewotICAgIGNvbnN0IHJldCA9IG5ldyBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MF9fWyJUeXBlIl0oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyBiYXNlOiB2
b2lkVG9rZW4gfSB9KTsKKyAgICBjb25zdCByZXQgPSBuZXcgX3R5cGVfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfXy5UeXBlKHsKKyAgICAgIHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwK
KyAgICAgIHRva2VuczogeyBiYXNlOiB2b2lkVG9rZW4gfSwKKyAgICB9KTsKICAgICByZXQudHlw
ZSA9ICJyZXR1cm4tdHlwZSI7CiAgICAgcmV0dXJuIHJldDsKICAgfQpAQCAtODE3LDggKzgyNSw5
IEBAIGZ1bmN0aW9uIHJldHVybl90eXBlKHRva2VuaXNlciwgdHlwZU5hbWUpIHsKIGZ1bmN0aW9u
IHN0cmluZ2lmaWVyKHRva2VuaXNlcikgewogICBjb25zdCBzcGVjaWFsID0gdG9rZW5pc2VyLmNv
bnN1bWUoInN0cmluZ2lmaWVyIik7CiAgIGlmICghc3BlY2lhbCkgcmV0dXJuOwotICBjb25zdCBt
ZW1iZXIgPSBfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bIkF0dHJp
YnV0ZSJdLnBhcnNlKHRva2VuaXNlciwgeyBzcGVjaWFsIH0pIHx8Ci0gICAgX29wZXJhdGlvbl9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJPcGVyYXRpb24iXS5wYXJzZSh0b2tlbmlz
ZXIsIHsgc3BlY2lhbCB9KSB8fAorICBjb25zdCBtZW1iZXIgPQorICAgIF9hdHRyaWJ1dGVfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5BdHRyaWJ1dGUucGFyc2UodG9rZW5pc2VyLCB7
IHNwZWNpYWwgfSkgfHwKKyAgICBfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8zX18uT3BlcmF0aW9uLnBhcnNlKHRva2VuaXNlciwgeyBzcGVjaWFsIH0pIHx8CiAgICAgdG9r
ZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgc3RyaW5naWZpZXIiKTsKICAgcmV0dXJuIG1lbWJl
cjsKIH0KQEAgLTg1Myw5ICs4NjIsOSBAQCBmdW5jdGlvbiBnZXRNZW1iZXJJbmRlbnRhdGlvbihw
YXJlbnRUcml2aWEpIHsKICAqLwogZnVuY3Rpb24gYXV0b2ZpeEFkZEV4cG9zZWRXaW5kb3coZGVm
KSB7CiAgIHJldHVybiAoKSA9PiB7Ci0gICAgaWYgKGRlZi5leHRBdHRycy5sZW5ndGgpewotICAg
ICAgY29uc3QgdG9rZW5pc2VyID0gbmV3IF90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzVfX1siVG9rZW5pc2VyIl0oIkV4cG9zZWQ9V2luZG93LCIpOwotICAgICAgY29uc3Qg
ZXhwb3NlZCA9IF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8yX19bIlNpbXBsZUV4dGVuZGVkQXR0cmlidXRlIl0ucGFyc2UodG9rZW5pc2VyKTsKKyAgICBp
ZiAoZGVmLmV4dEF0dHJzLmxlbmd0aCkgeworICAgICAgY29uc3QgdG9rZW5pc2VyID0gbmV3IF90
b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5Ub2tlbmlzZXIoIkV4cG9z
ZWQ9V2luZG93LCIpOworICAgICAgY29uc3QgZXhwb3NlZCA9IF9leHRlbmRlZF9hdHRyaWJ1dGVz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGUu
cGFyc2UodG9rZW5pc2VyKTsKICAgICAgIGV4cG9zZWQudG9rZW5zLnNlcGFyYXRvciA9IHRva2Vu
aXNlci5jb25zdW1lKCIsIik7CiAgICAgICBjb25zdCBleGlzdGluZyA9IGRlZi5leHRBdHRyc1sw
XTsKICAgICAgIGlmICghL15ccy8udGVzdChleGlzdGluZy50b2tlbnMubmFtZS50cml2aWEpKSB7
CkBAIC04NjMsNyArODcyLDkgQEAgZnVuY3Rpb24gYXV0b2ZpeEFkZEV4cG9zZWRXaW5kb3coZGVm
KSB7CiAgICAgICB9CiAgICAgICBkZWYuZXh0QXR0cnMudW5zaGlmdChleHBvc2VkKTsKICAgICB9
IGVsc2UgewotICAgICAgYXV0b1BhcmVudGVyKGRlZikuZXh0QXR0cnMgPSBfZXh0ZW5kZWRfYXR0
cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJFeHRlbmRlZEF0dHJpYnV0
ZXMiXS5wYXJzZShuZXcgX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9f
WyJUb2tlbmlzZXIiXSgiW0V4cG9zZWQ9V2luZG93XSIpKTsKKyAgICAgIGF1dG9QYXJlbnRlcihk
ZWYpLmV4dEF0dHJzID0gX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzJfXy5FeHRlbmRlZEF0dHJpYnV0ZXMucGFyc2UoCisgICAgICAgIG5ldyBfdG9rZW5p
c2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uVG9rZW5pc2VyKCJbRXhwb3NlZD1X
aW5kb3ddIikKKyAgICAgICk7CiAgICAgICBjb25zdCB0cml2aWEgPSBkZWYudG9rZW5zLmJhc2Uu
dHJpdmlhOwogICAgICAgZGVmLmV4dEF0dHJzLnRva2Vucy5vcGVuLnRyaXZpYSA9IHRyaXZpYTsK
ICAgICAgIGRlZi50b2tlbnMuYmFzZS50cml2aWEgPSBgXG4ke2dldExhc3RJbmRlbnRhdGlvbih0
cml2aWEpfWA7CkBAIC05NDIsMTggKzk1MywxOSBAQCBmdW5jdGlvbiBhdXRvUGFyZW50ZXIoZGF0
YSwgcGFyZW50KSB7CiAgICAgICAgIHZhbHVlLnBhcmVudCA9IHBhcmVudDsKICAgICAgIH0KICAg
ICAgIHJldHVybiB0cnVlOwotICAgIH0KKyAgICB9LAogICB9KTsKIH0KIAogCiAvKioqLyB9KSwK
IC8qIDUgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9f
d2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tf
bW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsK
IAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRz
X18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18u
ZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiVHlwZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gVHlwZTsg
fSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNr
X2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBvcnQgKi8gICAiVHlwZSI6ICgpID0+ICgvKiBi
aW5kaW5nICovIFR5cGUpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1w
b3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJw
YWNrX3JlcXVpcmVfXyg2KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKIC8q
IGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpOwpAQCAtOTcyLDM4ICs5ODQsNjYgQEAg
X193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwogICogQHBhcmFtIHtz
dHJpbmd9IHR5cGVOYW1lCiAgKi8KIGZ1bmN0aW9uIGdlbmVyaWNfdHlwZSh0b2tlbmlzZXIsIHR5
cGVOYW1lKSB7Ci0gIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiRnJvemVuQXJyYXki
LCAiUHJvbWlzZSIsICJzZXF1ZW5jZSIsICJyZWNvcmQiKTsKKyAgY29uc3QgYmFzZSA9IHRva2Vu
aXNlci5jb25zdW1lKAorICAgICJGcm96ZW5BcnJheSIsCisgICAgIk9ic2VydmFibGVBcnJheSIs
CisgICAgIlByb21pc2UiLAorICAgICJzZXF1ZW5jZSIsCisgICAgInJlY29yZCIKKyAgKTsKICAg
aWYgKCFiYXNlKSB7CiAgICAgcmV0dXJuOwogICB9Ci0gIGNvbnN0IHJldCA9IE9iamVjdChfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJhdXRvUGFyZW50ZXIiXSkobmV3
IFR5cGUoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyBiYXNlIH0gfSkpOwot
ICByZXQudG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgiPCIpIHx8IHRva2VuaXNlci5l
cnJvcihgTm8gb3BlbmluZyBicmFja2V0IGFmdGVyICR7YmFzZS50eXBlfWApOwotICBzd2l0Y2gg
KGJhc2UudHlwZSkgeworICBjb25zdCByZXQgPSAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMV9fLmF1dG9QYXJlbnRlcikoCisgICAgbmV3IFR5cGUoeyBzb3VyY2U6IHRv
a2VuaXNlci5zb3VyY2UsIHRva2VuczogeyBiYXNlIH0gfSkKKyAgKTsKKyAgcmV0LnRva2Vucy5v
cGVuID0KKyAgICB0b2tlbmlzZXIuY29uc3VtZSgiPCIpIHx8CisgICAgdG9rZW5pc2VyLmVycm9y
KGBObyBvcGVuaW5nIGJyYWNrZXQgYWZ0ZXIgJHtiYXNlLnZhbHVlfWApOworICBzd2l0Y2ggKGJh
c2UudmFsdWUpIHsKICAgICBjYXNlICJQcm9taXNlIjogewotICAgICAgaWYgKHRva2VuaXNlci5w
cm9iZSgiWyIpKSB0b2tlbmlzZXIuZXJyb3IoIlByb21pc2UgdHlwZSBjYW5ub3QgaGF2ZSBleHRl
bmRlZCBhdHRyaWJ1dGUiKTsKLSAgICAgIGNvbnN0IHN1YnR5cGUgPSBPYmplY3QoX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sicmV0dXJuX3R5cGUiXSkodG9rZW5pc2Vy
LCB0eXBlTmFtZSkgfHwgdG9rZW5pc2VyLmVycm9yKCJNaXNzaW5nIFByb21pc2Ugc3VidHlwZSIp
OworICAgICAgaWYgKHRva2VuaXNlci5wcm9iZSgiWyIpKQorICAgICAgICB0b2tlbmlzZXIuZXJy
b3IoIlByb21pc2UgdHlwZSBjYW5ub3QgaGF2ZSBleHRlbmRlZCBhdHRyaWJ1dGUiKTsKKyAgICAg
IGNvbnN0IHN1YnR5cGUgPQorICAgICAgICAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMV9fLnJldHVybl90eXBlKSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB8fAorICAgICAg
ICB0b2tlbmlzZXIuZXJyb3IoIk1pc3NpbmcgUHJvbWlzZSBzdWJ0eXBlIik7CiAgICAgICByZXQu
c3VidHlwZS5wdXNoKHN1YnR5cGUpOwogICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgInNl
cXVlbmNlIjoKLSAgICBjYXNlICJGcm96ZW5BcnJheSI6IHsKLSAgICAgIGNvbnN0IHN1YnR5cGUg
PSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidHlwZV93
aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMiXSkodG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwgdG9rZW5p
c2VyLmVycm9yKGBNaXNzaW5nICR7YmFzZS50eXBlfSBzdWJ0eXBlYCk7CisgICAgY2FzZSAiRnJv
emVuQXJyYXkiOgorICAgIGNhc2UgIk9ic2VydmFibGVBcnJheSI6IHsKKyAgICAgIGNvbnN0IHN1
YnR5cGUgPQorICAgICAgICAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MV9fLnR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzKSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB8
fAorICAgICAgICB0b2tlbmlzZXIuZXJyb3IoYE1pc3NpbmcgJHtiYXNlLnZhbHVlfSBzdWJ0eXBl
YCk7CiAgICAgICByZXQuc3VidHlwZS5wdXNoKHN1YnR5cGUpOwogICAgICAgYnJlYWs7CiAgICAg
fQogICAgIGNhc2UgInJlY29yZCI6IHsKLSAgICAgIGlmICh0b2tlbmlzZXIucHJvYmUoIlsiKSkg
dG9rZW5pc2VyLmVycm9yKCJSZWNvcmQga2V5IGNhbm5vdCBoYXZlIGV4dGVuZGVkIGF0dHJpYnV0
ZSIpOwotICAgICAgY29uc3Qga2V5VHlwZSA9IHRva2VuaXNlci5jb25zdW1lKC4uLl90b2tlbmlz
ZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1sic3RyaW5nVHlwZXMiXSkgfHwgdG9r
ZW5pc2VyLmVycm9yKGBSZWNvcmQga2V5IG11c3QgYmUgb25lIG9mOiAke190b2tlbmlzZXJfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1sic3RyaW5nVHlwZXMiXS5qb2luKCIsICIpfWAp
OwotICAgICAgY29uc3Qga2V5SWRsVHlwZSA9IG5ldyBUeXBlKHsgc291cmNlOiB0b2tlbmlzZXIu
c291cmNlLCB0b2tlbnM6IHsgYmFzZToga2V5VHlwZSB9fSk7Ci0gICAgICBrZXlJZGxUeXBlLnRv
a2Vucy5zZXBhcmF0b3IgPSB0b2tlbmlzZXIuY29uc3VtZSgiLCIpIHx8IHRva2VuaXNlci5lcnJv
cigiTWlzc2luZyBjb21tYSBhZnRlciByZWNvcmQga2V5IHR5cGUiKTsKKyAgICAgIGlmICh0b2tl
bmlzZXIucHJvYmUoIlsiKSkKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJSZWNvcmQga2V5IGNh
bm5vdCBoYXZlIGV4dGVuZGVkIGF0dHJpYnV0ZSIpOworICAgICAgY29uc3Qga2V5VHlwZSA9Cisg
ICAgICAgIHRva2VuaXNlci5jb25zdW1lKC4uLl90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzJfXy5zdHJpbmdUeXBlcykgfHwKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKGBS
ZWNvcmQga2V5IG11c3QgYmUgb25lIG9mOiAke190b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzJfXy5zdHJpbmdUeXBlcy5qb2luKCIsICIpfWApOworICAgICAgY29uc3Qga2V5
SWRsVHlwZSA9IG5ldyBUeXBlKHsKKyAgICAgICAgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLAor
ICAgICAgICB0b2tlbnM6IHsgYmFzZToga2V5VHlwZSB9LAorICAgICAgfSk7CisgICAgICBrZXlJ
ZGxUeXBlLnRva2Vucy5zZXBhcmF0b3IgPQorICAgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiLCIp
IHx8CisgICAgICAgIHRva2VuaXNlci5lcnJvcigiTWlzc2luZyBjb21tYSBhZnRlciByZWNvcmQg
a2V5IHR5cGUiKTsKICAgICAgIGtleUlkbFR5cGUudHlwZSA9IHR5cGVOYW1lOwotICAgICAgY29u
c3QgdmFsdWVUeXBlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8xX19bInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRva2VuaXNlciwgdHlwZU5h
bWUpIHx8IHRva2VuaXNlci5lcnJvcigiRXJyb3IgcGFyc2luZyBnZW5lcmljIHR5cGUgcmVjb3Jk
Iik7CisgICAgICBjb25zdCB2YWx1ZVR5cGUgPQorICAgICAgICAoMCxfaGVscGVyc19qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzKSh0
b2tlbmlzZXIsIHR5cGVOYW1lKSB8fAorICAgICAgICB0b2tlbmlzZXIuZXJyb3IoIkVycm9yIHBh
cnNpbmcgZ2VuZXJpYyB0eXBlIHJlY29yZCIpOwogICAgICAgcmV0LnN1YnR5cGUucHVzaChrZXlJ
ZGxUeXBlLCB2YWx1ZVR5cGUpOwogICAgICAgYnJlYWs7CiAgICAgfQogICB9Ci0gIGlmICghcmV0
LmlkbFR5cGUpIHRva2VuaXNlci5lcnJvcihgRXJyb3IgcGFyc2luZyBnZW5lcmljIHR5cGUgJHti
YXNlLnR5cGV9YCk7Ci0gIHJldC50b2tlbnMuY2xvc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiPiIp
IHx8IHRva2VuaXNlci5lcnJvcihgTWlzc2luZyBjbG9zaW5nIGJyYWNrZXQgYWZ0ZXIgJHtiYXNl
LnR5cGV9YCk7CisgIGlmICghcmV0LmlkbFR5cGUpIHRva2VuaXNlci5lcnJvcihgRXJyb3IgcGFy
c2luZyBnZW5lcmljIHR5cGUgJHtiYXNlLnZhbHVlfWApOworICByZXQudG9rZW5zLmNsb3NlID0K
KyAgICB0b2tlbmlzZXIuY29uc3VtZSgiPiIpIHx8CisgICAgdG9rZW5pc2VyLmVycm9yKGBNaXNz
aW5nIGNsb3NpbmcgYnJhY2tldCBhZnRlciAke2Jhc2UudmFsdWV9YCk7CiAgIHJldHVybiByZXQu
dGhpczsKIH0KIApAQCAtMTAyMywyMSArMTA2MywyNSBAQCBmdW5jdGlvbiB0eXBlX3N1ZmZpeCh0
b2tlbmlzZXIsIG9iaikgewogICogQHBhcmFtIHtzdHJpbmd9IHR5cGVOYW1lCiAgKi8KIGZ1bmN0
aW9uIHNpbmdsZV90eXBlKHRva2VuaXNlciwgdHlwZU5hbWUpIHsKLSAgbGV0IHJldCA9IGdlbmVy
aWNfdHlwZSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB8fCBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfX1sicHJpbWl0aXZlX3R5cGUiXSkodG9rZW5pc2VyKTsKKyAg
bGV0IHJldCA9IGdlbmVyaWNfdHlwZSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB8fCAoMCxfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnByaW1pdGl2ZV90eXBlKSh0b2tlbmlz
ZXIpOwogICBpZiAoIXJldCkgewotICAgIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgi
aWRlbnRpZmllciIsIC4uLl90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJf
X1sic3RyaW5nVHlwZXMiXSwgLi4uX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMl9fWyJ0eXBlTmFtZUtleXdvcmRzIl0pOworICAgIGNvbnN0IGJhc2UgPQorICAgICAgdG9r
ZW5pc2VyLmNvbnN1bWVUeXBlKCJpZGVudGlmaWVyIikgfHwKKyAgICAgIHRva2VuaXNlci5jb25z
dW1lKC4uLl90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5zdHJpbmdU
eXBlcywgLi4uX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnR5cGVO
YW1lS2V5d29yZHMpOwogICAgIGlmICghYmFzZSkgewogICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICByZXQgPSBuZXcgVHlwZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zOiB7IGJh
c2UgfSB9KTsKLSAgICBpZiAodG9rZW5pc2VyLnByb2JlKCI8IikpIHRva2VuaXNlci5lcnJvcihg
VW5zdXBwb3J0ZWQgZ2VuZXJpYyB0eXBlICR7YmFzZS52YWx1ZX1gKTsKKyAgICBpZiAodG9rZW5p
c2VyLnByb2JlKCI8IikpCisgICAgICB0b2tlbmlzZXIuZXJyb3IoYFVuc3VwcG9ydGVkIGdlbmVy
aWMgdHlwZSAke2Jhc2UudmFsdWV9YCk7CiAgIH0KICAgaWYgKHJldC5nZW5lcmljID09PSAiUHJv
bWlzZSIgJiYgdG9rZW5pc2VyLnByb2JlKCI/IikpIHsKICAgICB0b2tlbmlzZXIuZXJyb3IoIlBy
b21pc2UgdHlwZSBjYW5ub3QgYmUgbnVsbGFibGUiKTsKICAgfQogICByZXQudHlwZSA9IHR5cGVO
YW1lIHx8IG51bGw7CiAgIHR5cGVfc3VmZml4KHRva2VuaXNlciwgcmV0KTsKLSAgaWYgKHJldC5u
dWxsYWJsZSAmJiByZXQuaWRsVHlwZSA9PT0gImFueSIpIHRva2VuaXNlci5lcnJvcigiVHlwZSBg
YW55YCBjYW5ub3QgYmUgbWFkZSBudWxsYWJsZSIpOworICBpZiAocmV0Lm51bGxhYmxlICYmIHJl
dC5pZGxUeXBlID09PSAiYW55IikKKyAgICB0b2tlbmlzZXIuZXJyb3IoIlR5cGUgYGFueWAgY2Fu
bm90IGJlIG1hZGUgbnVsbGFibGUiKTsKICAgcmV0dXJuIHJldDsKIH0KIApAQCAtMTA0OSwyOCAr
MTA5MywzNCBAQCBmdW5jdGlvbiB1bmlvbl90eXBlKHRva2VuaXNlciwgdHlwZSkgewogICBjb25z
dCB0b2tlbnMgPSB7fTsKICAgdG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgiKCIpOwog
ICBpZiAoIXRva2Vucy5vcGVuKSByZXR1cm47Ci0gIGNvbnN0IHJldCA9IE9iamVjdChfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJhdXRvUGFyZW50ZXIiXSkobmV3IFR5
cGUoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSk7CisgIGNvbnN0IHJldCA9
ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uYXV0b1BhcmVudGVy
KShuZXcgVHlwZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pKTsKICAgcmV0
LnR5cGUgPSB0eXBlIHx8IG51bGw7CiAgIHdoaWxlICh0cnVlKSB7Ci0gICAgY29uc3QgdHlwID0g
T2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0
aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRva2VuaXNlcikgfHwgdG9rZW5pc2VyLmVycm9yKCJO
byB0eXBlIGFmdGVyIG9wZW4gcGFyZW50aGVzaXMgb3IgJ29yJyBpbiB1bmlvbiB0eXBlIik7Ci0g
ICAgaWYgKHR5cC5pZGxUeXBlID09PSAiYW55IikgdG9rZW5pc2VyLmVycm9yKCJUeXBlIGBhbnlg
IGNhbm5vdCBiZSBpbmNsdWRlZCBpbiBhIHVuaW9uIHR5cGUiKTsKLSAgICBpZiAodHlwLmdlbmVy
aWMgPT09ICJQcm9taXNlIikgdG9rZW5pc2VyLmVycm9yKCJUeXBlIGBQcm9taXNlYCBjYW5ub3Qg
YmUgaW5jbHVkZWQgaW4gYSB1bmlvbiB0eXBlIik7CisgICAgY29uc3QgdHlwID0KKyAgICAgICgw
LF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udHlwZV93aXRoX2V4dGVu
ZGVkX2F0dHJpYnV0ZXMpKHRva2VuaXNlcikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiTm8g
dHlwZSBhZnRlciBvcGVuIHBhcmVudGhlc2lzIG9yICdvcicgaW4gdW5pb24gdHlwZSIpOworICAg
IGlmICh0eXAuaWRsVHlwZSA9PT0gImFueSIpCisgICAgICB0b2tlbmlzZXIuZXJyb3IoIlR5cGUg
YGFueWAgY2Fubm90IGJlIGluY2x1ZGVkIGluIGEgdW5pb24gdHlwZSIpOworICAgIGlmICh0eXAu
Z2VuZXJpYyA9PT0gIlByb21pc2UiKQorICAgICAgdG9rZW5pc2VyLmVycm9yKCJUeXBlIGBQcm9t
aXNlYCBjYW5ub3QgYmUgaW5jbHVkZWQgaW4gYSB1bmlvbiB0eXBlIik7CiAgICAgcmV0LnN1YnR5
cGUucHVzaCh0eXApOwogICAgIGNvbnN0IG9yID0gdG9rZW5pc2VyLmNvbnN1bWUoIm9yIik7CiAg
ICAgaWYgKG9yKSB7CiAgICAgICB0eXAudG9rZW5zLnNlcGFyYXRvciA9IG9yOwotICAgIH0KLSAg
ICBlbHNlIGJyZWFrOworICAgIH0gZWxzZSBicmVhazsKICAgfQogICBpZiAocmV0LmlkbFR5cGUu
bGVuZ3RoIDwgMikgewotICAgIHRva2VuaXNlci5lcnJvcigiQXQgbGVhc3QgdHdvIHR5cGVzIGFy
ZSBleHBlY3RlZCBpbiBhIHVuaW9uIHR5cGUgYnV0IGZvdW5kIGxlc3MiKTsKKyAgICB0b2tlbmlz
ZXIuZXJyb3IoCisgICAgICAiQXQgbGVhc3QgdHdvIHR5cGVzIGFyZSBleHBlY3RlZCBpbiBhIHVu
aW9uIHR5cGUgYnV0IGZvdW5kIGxlc3MiCisgICAgKTsKICAgfQotICB0b2tlbnMuY2xvc2UgPSB0
b2tlbmlzZXIuY29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIHVu
aW9uIHR5cGUiKTsKKyAgdG9rZW5zLmNsb3NlID0KKyAgICB0b2tlbmlzZXIuY29uc3VtZSgiKSIp
IHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIHVuaW9uIHR5cGUiKTsKICAgdHlwZV9z
dWZmaXgodG9rZW5pc2VyLCByZXQpOwogICByZXR1cm4gcmV0LnRoaXM7CiB9CiAKLWNsYXNzIFR5
cGUgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0g
eworY2xhc3MgVHlwZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9r
ZW5pc2VyfSB0b2tlbmlzZXIKICAgICogQHBhcmFtIHtzdHJpbmd9IHR5cGVOYW1lCkBAIC0xMDgy
LDcgKzExMzIsNyBAQCBjbGFzcyBUeXBlIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgY29uc3RydWN0b3IoeyBzb3VyY2UsIHRva2VucyB9
KSB7CiAgICAgc3VwZXIoeyBzb3VyY2UsIHRva2VucyB9KTsKICAgICBPYmplY3QuZGVmaW5lUHJv
cGVydHkodGhpcywgInN1YnR5cGUiLCB7IHZhbHVlOiBbXSwgd3JpdGFibGU6IHRydWUgfSk7Ci0g
ICAgdGhpcy5leHRBdHRycyA9IG5ldyBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfNV9fWyJFeHRlbmRlZEF0dHJpYnV0ZXMiXSh7fSk7CisgICAgdGhpcy5l
eHRBdHRycyA9IG5ldyBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfNV9fLkV4dGVuZGVkQXR0cmlidXRlcyh7fSk7CiAgIH0KIAogICBnZXQgZ2VuZXJpYygp
IHsKQEAgLTExMDIsMzIgKzExNTIsNDcgQEAgY2xhc3MgVHlwZSBleHRlbmRzIF9iYXNlX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICAgICByZXR1cm4gdGhpcy5z
dWJ0eXBlOwogICAgIH0KICAgICAvLyBBZGRpbmcgcHJlZml4ZXMvcG9zdGZpeGVzIGZvciAidW5y
ZXN0cmljdGVkIGZsb2F0IiwgZXRjLgotICAgIGNvbnN0IG5hbWUgPSBbCi0gICAgICB0aGlzLnRv
a2Vucy5wcmVmaXgsCi0gICAgICB0aGlzLnRva2Vucy5iYXNlLAotICAgICAgdGhpcy50b2tlbnMu
cG9zdGZpeAotICAgIF0uZmlsdGVyKHQgPT4gdCkubWFwKHQgPT4gdC52YWx1ZSkuam9pbigiICIp
OwotICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfX1sidW5lc2NhcGUiXSkobmFtZSk7CisgICAgY29uc3QgbmFtZSA9IFt0aGlzLnRva2Vucy5w
cmVmaXgsIHRoaXMudG9rZW5zLmJhc2UsIHRoaXMudG9rZW5zLnBvc3RmaXhdCisgICAgICAuZmls
dGVyKCh0KSA9PiB0KQorICAgICAgLm1hcCgodCkgPT4gdC52YWx1ZSkKKyAgICAgIC5qb2luKCIg
Iik7CisgICAgcmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X18udW5lc2NhcGUpKG5hbWUpOwogICB9CiAKICAgKnZhbGlkYXRlKGRlZnMpIHsKICAgICB5aWVs
ZCogdGhpcy5leHRBdHRycy52YWxpZGF0ZShkZWZzKTsKKworICAgIGlmICh0aGlzLmlkbFR5cGUg
PT09ICJ2b2lkIikgeworICAgICAgY29uc3QgbWVzc2FnZSA9IGBcYHZvaWRcYCBpcyBub3cgcmVw
bGFjZWQgYnkgXGB1bmRlZmluZWRcYC4gUmVmZXIgdG8gdGhlIFwKK1tyZWxldmFudCBHaXRIdWIg
aXNzdWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9oZXljYW0vd2ViaWRsL2lzc3Vlcy82MCkgXAorZm9y
IG1vcmUgaW5mb3JtYXRpb24uYDsKKyAgICAgIHlpZWxkICgwLF9lcnJvcl9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfM19fLnZhbGlkYXRpb25FcnJvcikodGhpcy50b2tlbnMuYmFzZSwgdGhp
cywgInJlcGxhY2Utdm9pZCIsIG1lc3NhZ2UsIHsKKyAgICAgICAgYXV0b2ZpeDogcmVwbGFjZVZv
aWQodGhpcyksCisgICAgICB9KTsKKyAgICB9CisKICAgICAvKgogICAgICAqIElmIGEgdW5pb24g
aXMgbnVsbGFibGUsIGl0cyBzdWJ1bmlvbnMgY2Fubm90IGluY2x1ZGUgYSBkaWN0aW9uYXJ5CiAg
ICAgICogSWYgbm90LCBzdWJ1bmlvbnMgbWF5IGluY2x1ZGUgZGljdGlvbmFyaWVzIGlmIGVhY2gg
dW5pb24gaXMgbm90IG51bGxhYmxlCiAgICAgICovCiAgICAgY29uc3QgdHlwZWRlZiA9ICF0aGlz
LnVuaW9uICYmIGRlZnMudW5pcXVlLmdldCh0aGlzLmlkbFR5cGUpOwotICAgIGNvbnN0IHRhcmdl
dCA9Ci0gICAgICB0aGlzLnVuaW9uID8gdGhpcyA6Ci0gICAgICAodHlwZWRlZiAmJiB0eXBlZGVm
LnR5cGUgPT09ICJ0eXBlZGVmIikgPyB0eXBlZGVmLmlkbFR5cGUgOgotICAgICAgdW5kZWZpbmVk
OworICAgIGNvbnN0IHRhcmdldCA9IHRoaXMudW5pb24KKyAgICAgID8gdGhpcworICAgICAgOiB0
eXBlZGVmICYmIHR5cGVkZWYudHlwZSA9PT0gInR5cGVkZWYiCisgICAgICA/IHR5cGVkZWYuaWRs
VHlwZQorICAgICAgOiB1bmRlZmluZWQ7CiAgICAgaWYgKHRhcmdldCAmJiB0aGlzLm51bGxhYmxl
KSB7CiAgICAgICAvLyBkbyBub3QgYWxsb3cgYW55IGRpY3Rpb25hcnkKLSAgICAgIGNvbnN0IHsg
cmVmZXJlbmNlIH0gPSBPYmplY3QoX3ZhbGlkYXRvcnNfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfNF9fWyJpZGxUeXBlSW5jbHVkZXNEaWN0aW9uYXJ5Il0pKHRhcmdldCwgZGVm
cykgfHwge307CisgICAgICBjb25zdCB7IHJlZmVyZW5jZSB9ID0gKDAsX3ZhbGlkYXRvcnNfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmlkbFR5cGVJbmNsdWRlc0RpY3Rp
b25hcnkpKHRhcmdldCwgZGVmcykgfHwge307CiAgICAgICBpZiAocmVmZXJlbmNlKSB7CiAgICAg
ICAgIGNvbnN0IHRhcmdldFRva2VuID0gKHRoaXMudW5pb24gPyByZWZlcmVuY2UgOiB0aGlzKS50
b2tlbnMuYmFzZTsKLSAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBOdWxsYWJsZSB1bmlvbiBjYW5u
b3QgaW5jbHVkZSBhIGRpY3Rpb25hcnkgdHlwZWA7Ci0gICAgICAgIHlpZWxkIE9iamVjdChfZXJy
b3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1sidmFsaWRhdGlvbkVycm9yIl0pKHRh
cmdldFRva2VuLCB0aGlzLCAibm8tbnVsbGFibGUtdW5pb24tZGljdCIsIG1lc3NhZ2UpOworICAg
ICAgICBjb25zdCBtZXNzYWdlID0gIk51bGxhYmxlIHVuaW9uIGNhbm5vdCBpbmNsdWRlIGEgZGlj
dGlvbmFyeSB0eXBlLiI7CisgICAgICAgIHlpZWxkICgwLF9lcnJvcl9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfM19fLnZhbGlkYXRpb25FcnJvcikoCisgICAgICAgICAgdGFyZ2V0VG9rZW4s
CisgICAgICAgICAgdGhpcywKKyAgICAgICAgICAibm8tbnVsbGFibGUtdW5pb24tZGljdCIsCisg
ICAgICAgICAgbWVzc2FnZQorICAgICAgICApOwogICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAg
ICAvLyBhbGxvdyBzb21lIGRpY3Rpb25hcnkKQEAgLTExMzYsMTYgKzEyMDEsNTkgQEAgY2xhc3Mg
VHlwZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2Ui
XSB7CiAgICAgICB9CiAgICAgfQogICB9CisKKyAgLyoqIEBwYXJhbSB7aW1wb3J0KCIuLi93cml0
ZXIuanMiKS5Xcml0ZXIpfSB3ICovCisgIHdyaXRlKHcpIHsKKyAgICBjb25zdCB0eXBlX2JvZHkg
PSAoKSA9PiB7CisgICAgICBpZiAodGhpcy51bmlvbiB8fCB0aGlzLmdlbmVyaWMpIHsKKyAgICAg
ICAgcmV0dXJuIHcudHMud3JhcChbCisgICAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5iYXNl
LCB3LnRzLmdlbmVyaWMpLAorICAgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMub3BlbiksCisg
ICAgICAgICAgLi4udGhpcy5zdWJ0eXBlLm1hcCgodCkgPT4gdC53cml0ZSh3KSksCisgICAgICAg
ICAgdy50b2tlbih0aGlzLnRva2Vucy5jbG9zZSksCisgICAgICAgIF0pOworICAgICAgfQorICAg
ICAgY29uc3QgZmlyc3RUb2tlbiA9IHRoaXMudG9rZW5zLnByZWZpeCB8fCB0aGlzLnRva2Vucy5i
YXNlOworICAgICAgY29uc3QgcHJlZml4ID0gdGhpcy50b2tlbnMucHJlZml4CisgICAgICAgID8g
W3RoaXMudG9rZW5zLnByZWZpeC52YWx1ZSwgdy50cy50cml2aWEodGhpcy50b2tlbnMuYmFzZS50
cml2aWEpXQorICAgICAgICA6IFtdOworICAgICAgY29uc3QgcmVmID0gdy5yZWZlcmVuY2UoCisg
ICAgICAgIHcudHMud3JhcChbCisgICAgICAgICAgLi4ucHJlZml4LAorICAgICAgICAgIHRoaXMu
dG9rZW5zLmJhc2UudmFsdWUsCisgICAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5wb3N0Zml4
KSwKKyAgICAgICAgXSksCisgICAgICAgIHsgdW5lc2NhcGVkOiB0aGlzLmlkbFR5cGUsIGNvbnRl
eHQ6IHRoaXMgfQorICAgICAgKTsKKyAgICAgIHJldHVybiB3LnRzLndyYXAoW3cudHMudHJpdmlh
KGZpcnN0VG9rZW4udHJpdmlhKSwgcmVmXSk7CisgICAgfTsKKyAgICByZXR1cm4gdy50cy53cmFw
KFsKKyAgICAgIHRoaXMuZXh0QXR0cnMud3JpdGUodyksCisgICAgICB0eXBlX2JvZHkoKSwKKyAg
ICAgIHcudG9rZW4odGhpcy50b2tlbnMubnVsbGFibGUpLAorICAgICAgdy50b2tlbih0aGlzLnRv
a2Vucy5zZXBhcmF0b3IpLAorICAgIF0pOworICB9Cit9CisKKy8qKgorICogQHBhcmFtIHtUeXBl
fSB0eXBlCisgKi8KK2Z1bmN0aW9uIHJlcGxhY2VWb2lkKHR5cGUpIHsKKyAgcmV0dXJuICgpID0+
IHsKKyAgICB0eXBlLnRva2Vucy5iYXNlLnZhbHVlID0gInVuZGVmaW5lZCI7CisgIH07CiB9CiAK
IAogLyoqKi8gfSksCiAvKiA2ICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tf
ZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dlYnBh
Y2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVx
dWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dl
YnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBh
Y2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkJhc2UiLCBmdW5jdGlvbigpIHsg
cmV0dXJuIEJhc2U7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVf
Xy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIkJhc2Ui
OiAoKSA9PiAoLyogYmluZGluZyAqLyBCYXNlKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAv
LyBAdHMtY2hlY2sKIAogY2xhc3MgQmFzZSB7CkBAIC0xMTU5LDcgKzEyNjcsNyBAQCBjbGFzcyBC
YXNlIHsKICAgICAgIHNvdXJjZTogeyB2YWx1ZTogc291cmNlIH0sCiAgICAgICB0b2tlbnM6IHsg
dmFsdWU6IHRva2Vucywgd3JpdGFibGU6IHRydWUgfSwKICAgICAgIHBhcmVudDogeyB2YWx1ZTog
bnVsbCwgd3JpdGFibGU6IHRydWUgfSwKLSAgICAgIHRoaXM6IHsgdmFsdWU6IHRoaXMgfSAvLyB1
c2VmdWwgd2hlbiBlc2NhcGluZyBmcm9tIHByb3h5CisgICAgICB0aGlzOiB7IHZhbHVlOiB0aGlz
IH0sIC8vIHVzZWZ1bCB3aGVuIGVzY2FwaW5nIGZyb20gcHJveHkKICAgICB9KTsKICAgfQogCkBA
IC0xMTgzLDEyICsxMjkxLDEzIEBAIGNsYXNzIEJhc2UgewogCiAvKioqLyB9KSwKIC8qIDcgKi8K
LS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19y
ZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18s
IF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBz
dHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyog
aGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBh
Y2tfZXhwb3J0c19fLCAiaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeSIsIGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeTsgfSk7Ci0vKiBoYXJtb255IGV4cG9ydCAo
YmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJk
aWN0aW9uYXJ5SW5jbHVkZXNSZXF1aXJlZEZpZWxkIiwgZnVuY3Rpb24oKSB7IHJldHVybiBkaWN0
aW9uYXJ5SW5jbHVkZXNSZXF1aXJlZEZpZWxkOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9f
d2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4
cG9ydCAqLyAgICJpZGxUeXBlSW5jbHVkZXNEaWN0aW9uYXJ5IjogKCkgPT4gKC8qIGJpbmRpbmcg
Ki8gaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeSksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJk
aWN0aW9uYXJ5SW5jbHVkZXNSZXF1aXJlZEZpZWxkIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gZGlj
dGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZCkKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwog
Ly8gQHRzLWNoZWNrCiAKIC8qKgpAQCAtMTIwMCw3ICsxMzA5LDExIEBAIF9fd2VicGFja19yZXF1
aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlv
bnMudXNlTnVsbGFibGVJbm5lcl0gdXNlIHdoZW4gdGhlIGlucHV0IGlkbFR5cGUgaXMgbnVsbGFi
bGUgYW5kIHlvdSB3YW50IHRvIHVzZSBpdHMgaW5uZXIgdHlwZQogICogQHJldHVybiB7eyByZWZl
cmVuY2U6ICosIGRpY3Rpb25hcnk6IERpY3Rpb25hcnkgfX0gdGhlIHR5cGUgcmVmZXJlbmNlIHRo
YXQgdWx0aW1hdGVseSBpbmNsdWRlcyBkaWN0aW9uYXJ5LgogICovCi1mdW5jdGlvbiBpZGxUeXBl
SW5jbHVkZXNEaWN0aW9uYXJ5KGlkbFR5cGUsIGRlZnMsIHsgdXNlTnVsbGFibGVJbm5lciB9ID0g
e30pIHsKK2Z1bmN0aW9uIGlkbFR5cGVJbmNsdWRlc0RpY3Rpb25hcnkoCisgIGlkbFR5cGUsCisg
IGRlZnMsCisgIHsgdXNlTnVsbGFibGVJbm5lciB9ID0ge30KKykgewogICBpZiAoIWlkbFR5cGUu
dW5pb24pIHsKICAgICBjb25zdCBkZWYgPSBkZWZzLnVuaXF1ZS5nZXQoaWRsVHlwZS5pZGxUeXBl
KTsKICAgICBpZiAoIWRlZikgewpAQCAtMTIxOSwxNCArMTMzMiwxNCBAQCBmdW5jdGlvbiBpZGxU
eXBlSW5jbHVkZXNEaWN0aW9uYXJ5KGlkbFR5cGUsIGRlZnMsIHsgdXNlTnVsbGFibGVJbm5lciB9
ID0ge30pIHsKICAgICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgcmV0dXJuIHsKICAgICAgICAg
ICByZWZlcmVuY2U6IGlkbFR5cGUsCi0gICAgICAgICAgZGljdGlvbmFyeTogcmVzdWx0LmRpY3Rp
b25hcnkKKyAgICAgICAgICBkaWN0aW9uYXJ5OiByZXN1bHQuZGljdGlvbmFyeSwKICAgICAgICAg
fTsKICAgICAgIH0KICAgICB9CiAgICAgaWYgKGRlZi50eXBlID09PSAiZGljdGlvbmFyeSIgJiYg
KHVzZU51bGxhYmxlSW5uZXIgfHwgIWlkbFR5cGUubnVsbGFibGUpKSB7CiAgICAgICByZXR1cm4g
ewogICAgICAgICByZWZlcmVuY2U6IGlkbFR5cGUsCi0gICAgICAgIGRpY3Rpb25hcnk6IGRlZgor
ICAgICAgICBkaWN0aW9uYXJ5OiBkZWYsCiAgICAgICB9OwogICAgIH0KICAgfQpAQCAtMTIzOCw3
ICsxMzUxLDcgQEAgZnVuY3Rpb24gaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeShpZGxUeXBlLCBk
ZWZzLCB7IHVzZU51bGxhYmxlSW5uZXIgfSA9IHt9KSB7CiAgICAgICB9CiAgICAgICByZXR1cm4g
ewogICAgICAgICByZWZlcmVuY2U6IHN1YnR5cGUsCi0gICAgICAgIGRpY3Rpb25hcnk6IHJlc3Vs
dC5kaWN0aW9uYXJ5CisgICAgICAgIGRpY3Rpb25hcnk6IHJlc3VsdC5kaWN0aW9uYXJ5LAogICAg
ICAgfTsKICAgICB9CiAgIH0KQEAgLTEyNTMsMTcgKzEzNjYsMTkgQEAgZnVuY3Rpb24gZGljdGlv
bmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZChkaWN0LCBkZWZzKSB7CiAgIGlmIChkZWZzLmNhY2hl
LmRpY3Rpb25hcnlJbmNsdWRlc1JlcXVpcmVkRmllbGQuaGFzKGRpY3QpKSB7CiAgICAgcmV0dXJu
IGRlZnMuY2FjaGUuZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZC5nZXQoZGljdCk7CiAg
IH0KLSAgZGVmcy5jYWNoZS5kaWN0aW9uYXJ5SW5jbHVkZXNSZXF1aXJlZEZpZWxkLnNldChkaWN0
LCB1bmRlZmluZWQpOyAvLyBpbmRldGVybWluYXRlCi0gIGlmIChkaWN0LmluaGVyaXRhbmNlKSB7
CisgIC8vIFNldCBjYWNoZWQgcmVzdWx0IHRvIGluZGV0ZXJtaW5hdGUgdG8gc2hvcnQtY2lyY3Vp
dCBjaXJjdWxhciBkZWZpbml0aW9ucy4KKyAgLy8gVGhlIGZpbmFsIHJlc3VsdCB3aWxsIGJlIHVw
ZGF0ZWQgdG8gdHJ1ZSBvciBmYWxzZS4KKyAgZGVmcy5jYWNoZS5kaWN0aW9uYXJ5SW5jbHVkZXNS
ZXF1aXJlZEZpZWxkLnNldChkaWN0LCB1bmRlZmluZWQpOworICBsZXQgcmVzdWx0ID0gZGljdC5t
ZW1iZXJzLnNvbWUoKGZpZWxkKSA9PiBmaWVsZC5yZXF1aXJlZCk7CisgIGlmICghcmVzdWx0ICYm
IGRpY3QuaW5oZXJpdGFuY2UpIHsKICAgICBjb25zdCBzdXBlcmRpY3QgPSBkZWZzLnVuaXF1ZS5n
ZXQoZGljdC5pbmhlcml0YW5jZSk7CiAgICAgaWYgKCFzdXBlcmRpY3QpIHsKLSAgICAgIHJldHVy
biB0cnVlOwotICAgIH0KLSAgICBpZiAoZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZChz
dXBlcmRpY3QsIGRlZnMpKSB7Ci0gICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIC8vIEFzc3VtZSBy
ZXF1aXJlZCBtZW1iZXJzIGluIHRoZSBzdXBlcnR5cGUgaWYgaXQgaXMgdW5rbm93bi4KKyAgICAg
IHJlc3VsdCA9IHRydWU7CisgICAgfSBlbHNlIGlmIChkaWN0aW9uYXJ5SW5jbHVkZXNSZXF1aXJl
ZEZpZWxkKHN1cGVyZGljdCwgZGVmcykpIHsKKyAgICAgIHJlc3VsdCA9IHRydWU7CiAgICAgfQog
ICB9Ci0gIGNvbnN0IHJlc3VsdCA9IGRpY3QubWVtYmVycy5zb21lKGZpZWxkID0+IGZpZWxkLnJl
cXVpcmVkKTsKICAgZGVmcy5jYWNoZS5kaWN0aW9uYXJ5SW5jbHVkZXNSZXF1aXJlZEZpZWxkLnNl
dChkaWN0LCByZXN1bHQpOwogICByZXR1cm4gcmVzdWx0OwogfQpAQCAtMTI3MSwxMiArMTM4Niwx
MyBAQCBmdW5jdGlvbiBkaWN0aW9uYXJ5SW5jbHVkZXNSZXF1aXJlZEZpZWxkKGRpY3QsIGRlZnMp
IHsKIAogLyoqKi8gfSksCiAvKiA4ICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBh
Y2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dl
YnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tf
cmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihf
X3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dl
YnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIlNpbXBsZUV4dGVuZGVkQXR0
cmlidXRlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBTaW1wbGVFeHRlbmRlZEF0dHJpYnV0ZTsgfSk7
Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9f
d2VicGFja19leHBvcnRzX18sICJFeHRlbmRlZEF0dHJpYnV0ZXMiLCBmdW5jdGlvbigpIHsgcmV0
dXJuIEV4dGVuZGVkQXR0cmlidXRlczsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBh
Y2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBvcnQg
Ki8gICAiU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGUiOiAoKSA9PiAoLyogYmluZGluZyAqLyBTaW1w
bGVFeHRlbmRlZEF0dHJpYnV0ZSksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJFeHRlbmRlZEF0
dHJpYnV0ZXMiOiAoKSA9PiAoLyogYmluZGluZyAqLyBFeHRlbmRlZEF0dHJpYnV0ZXMpCisvKiBo
YXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKIC8q
IGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYXJyYXlfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg5KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICov
IHZhciBfdG9rZW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oMTApOwpAQCAtMTI5Myw5ICsxNDA5LDkgQEAgX193ZWJwYWNrX3JlcXVpcmVfXy5y
KF9fd2VicGFja19leHBvcnRzX18pOwogICogQHBhcmFtIHtzdHJpbmd9IHRva2VuTmFtZQogICov
CiBmdW5jdGlvbiB0b2tlbnModG9rZW5pc2VyLCB0b2tlbk5hbWUpIHsKLSAgcmV0dXJuIE9iamVj
dChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJsaXN0Il0pKHRva2Vu
aXNlciwgewotICAgIHBhcnNlcjogX3Rva2VuX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8y
X19bIlRva2VuIl0ucGFyc2VyKHRva2VuaXNlciwgdG9rZW5OYW1lKSwKLSAgICBsaXN0TmFtZTog
dG9rZW5OYW1lICsgIiBsaXN0IgorICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzNfXy5saXN0KSh0b2tlbmlzZXIsIHsKKyAgICBwYXJzZXI6IF90b2tlbl9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLldyYXBwZWRUb2tlbi5wYXJzZXIodG9rZW5p
c2VyLCB0b2tlbk5hbWUpLAorICAgIGxpc3ROYW1lOiB0b2tlbk5hbWUgKyAiIGxpc3QiLAogICB9
KTsKIH0KIApAQCAtMTMxMCw3ICsxNDI2LDcgQEAgY29uc3Qgc2hvdWxkQmVMZWdhY3lQcmVmaXhl
ZCA9IFsKIF07CiAKIGNvbnN0IHJlbmFtZWRMZWdhY2llcyA9IG5ldyBNYXAoWwotICAuLi5zaG91
bGRCZUxlZ2FjeVByZWZpeGVkLm1hcChuYW1lID0+IFtuYW1lLCBgTGVnYWN5JHtuYW1lfWBdKSwK
KyAgLi4uc2hvdWxkQmVMZWdhY3lQcmVmaXhlZC5tYXAoKG5hbWUpID0+IFtuYW1lLCBgTGVnYWN5
JHtuYW1lfWBdKSwKICAgWyJOYW1lZENvbnN0cnVjdG9yIiwgIkxlZ2FjeUZhY3RvcnlGdW5jdGlv
biJdLAogICBbIk92ZXJyaWRlQnVpbHRpbnMiLCAiTGVnYWN5T3ZlcnJpZGVCdWlsdElucyJdLAog
ICBbIlRyZWF0TnVsbEFzIiwgIkxlZ2FjeU51bGxUb0VtcHR5U3RyaW5nIl0sCkBAIC0xMzI3LDI4
ICsxNDQzLDMzIEBAIGZ1bmN0aW9uIGV4dEF0dHJMaXN0SXRlbXModG9rZW5pc2VyKSB7CiAgICAg
ICByZXR1cm4gdG9rczsKICAgICB9CiAgIH0KLSAgdG9rZW5pc2VyLmVycm9yKGBFeHBlY3RlZCBp
ZGVudGlmaWVycywgc3RyaW5ncywgZGVjaW1hbHMsIG9yIGludGVnZXJzIGJ1dCBub25lIGZvdW5k
YCk7CisgIHRva2VuaXNlci5lcnJvcigKKyAgICBgRXhwZWN0ZWQgaWRlbnRpZmllcnMsIHN0cmlu
Z3MsIGRlY2ltYWxzLCBvciBpbnRlZ2VycyBidXQgbm9uZSBmb3VuZGAKKyAgKTsKIH0KIAotCi1j
bGFzcyBFeHRlbmRlZEF0dHJpYnV0ZVBhcmFtZXRlcnMgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0geworY2xhc3MgRXh0ZW5kZWRBdHRyaWJ1dGVQ
YXJhbWV0ZXJzIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5C
YXNlIHsKICAgLyoqCiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlz
ZXJ9IHRva2VuaXNlcgogICAgKi8KICAgc3RhdGljIHBhcnNlKHRva2VuaXNlcikgewogICAgIGNv
bnN0IHRva2VucyA9IHsgYXNzaWduOiB0b2tlbmlzZXIuY29uc3VtZSgiPSIpIH07Ci0gICAgY29u
c3QgcmV0ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19b
ImF1dG9QYXJlbnRlciJdKShuZXcgRXh0ZW5kZWRBdHRyaWJ1dGVQYXJhbWV0ZXJzKHsgc291cmNl
OiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkpOworICAgIGNvbnN0IHJldCA9ICgwLF9oZWxw
ZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uYXV0b1BhcmVudGVyKSgKKyAgICAg
IG5ldyBFeHRlbmRlZEF0dHJpYnV0ZVBhcmFtZXRlcnMoeyBzb3VyY2U6IHRva2VuaXNlci5zb3Vy
Y2UsIHRva2VucyB9KQorICAgICk7CiAgICAgaWYgKHRva2Vucy5hc3NpZ24pIHsKLSAgICAgIHRv
a2Vucy5zZWNvbmRhcnlOYW1lID0gdG9rZW5pc2VyLmNvbnN1bWUoLi4uZXh0QXR0clZhbHVlU3lu
dGF4KTsKKyAgICAgIHRva2Vucy5zZWNvbmRhcnlOYW1lID0gdG9rZW5pc2VyLmNvbnN1bWVUeXBl
KC4uLmV4dEF0dHJWYWx1ZVN5bnRheCk7CiAgICAgfQogICAgIHRva2Vucy5vcGVuID0gdG9rZW5p
c2VyLmNvbnN1bWUoIigiKTsKICAgICBpZiAodG9rZW5zLm9wZW4pIHsKLSAgICAgIHJldC5saXN0
ID0gcmV0LnJoc0lzTGlzdCA/Ci0gICAgICAgIC8vIFtFeHBvc2VkPShXaW5kb3csV29ya2VyKV0K
LSAgICAgICAgZXh0QXR0ckxpc3RJdGVtcyh0b2tlbmlzZXIpIDoKLSAgICAgICAgLy8gW0xlZ2Fj
eUZhY3RvcnlGdW5jdGlvbj1BdWRpbyhET01TdHJpbmcgc3JjKV0gb3IgW0NvbnN0cnVjdG9yKERP
TVN0cmluZyBzdHIpXQotICAgICAgICBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzNfX1siYXJndW1lbnRfbGlzdCJdKSh0b2tlbmlzZXIpOwotICAgICAgdG9rZW5z
LmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIikiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVuZXhw
ZWN0ZWQgdG9rZW4gaW4gZXh0ZW5kZWQgYXR0cmlidXRlIGFyZ3VtZW50IGxpc3QiKTsKKyAgICAg
IHJldC5saXN0ID0gcmV0LnJoc0lzTGlzdAorICAgICAgICA/IC8vIFtFeHBvc2VkPShXaW5kb3cs
V29ya2VyKV0KKyAgICAgICAgICBleHRBdHRyTGlzdEl0ZW1zKHRva2VuaXNlcikKKyAgICAgICAg
OiAvLyBbTGVnYWN5RmFjdG9yeUZ1bmN0aW9uPUF1ZGlvKERPTVN0cmluZyBzcmMpXSBvciBbQ29u
c3RydWN0b3IoRE9NU3RyaW5nIHN0cildCisgICAgICAgICAgKDAsX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzNfXy5hcmd1bWVudF9saXN0KSh0b2tlbmlzZXIpOworICAgICAg
dG9rZW5zLmNsb3NlID0KKyAgICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIikiKSB8fAorICAgICAg
ICB0b2tlbmlzZXIuZXJyb3IoIlVuZXhwZWN0ZWQgdG9rZW4gaW4gZXh0ZW5kZWQgYXR0cmlidXRl
IGFyZ3VtZW50IGxpc3QiKTsKICAgICB9IGVsc2UgaWYgKHJldC5oYXNSaHMgJiYgIXRva2Vucy5z
ZWNvbmRhcnlOYW1lKSB7CiAgICAgICB0b2tlbmlzZXIuZXJyb3IoIk5vIHJpZ2h0IGhhbmQgc2lk
ZSB0byBleHRlbmRlZCBhdHRyaWJ1dGUgYXNzaWdubWVudCIpOwogICAgIH0KQEAgLTEzNjgsMTkg
KzE0ODksNDUgQEAgY2xhc3MgRXh0ZW5kZWRBdHRyaWJ1dGVQYXJhbWV0ZXJzIGV4dGVuZHMgX2Jh
c2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1sKICAgICB9CiAgICAgcmV0dXJuIG51
bGw7CiAgIH0KKworICAvKiogQHBhcmFtIHtpbXBvcnQoIi4uL3dyaXRlci5qcyIpLldyaXRlcil9
IHcgKi8KKyAgd3JpdGUodykgeworICAgIGZ1bmN0aW9uIGV4dGVuZGVkX2F0dHJpYnV0ZV9saXN0
aXRlbShpdGVtKSB7CisgICAgICByZXR1cm4gdy50cy53cmFwKFsKKyAgICAgICAgdy50b2tlbihp
dGVtLnRva2Vucy52YWx1ZSksCisgICAgICAgIHcudG9rZW4oaXRlbS50b2tlbnMuc2VwYXJhdG9y
KSwKKyAgICAgIF0pOworICAgIH0KKyAgICBjb25zdCB7IHJoc1R5cGUgfSA9IHRoaXM7CisgICAg
cmV0dXJuIHcudHMud3JhcChbCisgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLmFzc2lnbiksCisg
ICAgICB3LnJlZmVyZW5jZV90b2tlbih0aGlzLnRva2Vucy5zZWNvbmRhcnlOYW1lLCB0aGlzLnBh
cmVudCksCisgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLm9wZW4pLAorICAgICAgLi4uKCF0aGlz
Lmxpc3QKKyAgICAgICAgPyBbXQorICAgICAgICA6IHRoaXMubGlzdC5tYXAoKHApID0+IHsKKyAg
ICAgICAgICAgIHJldHVybiByaHNUeXBlID09PSAiaWRlbnRpZmllci1saXN0IgorICAgICAgICAg
ICAgICA/IHcuaWRlbnRpZmllcihwLCB0aGlzLnBhcmVudCkKKyAgICAgICAgICAgICAgOiByaHNU
eXBlICYmIHJoc1R5cGUuZW5kc1dpdGgoIi1saXN0IikKKyAgICAgICAgICAgICAgPyBleHRlbmRl
ZF9hdHRyaWJ1dGVfbGlzdGl0ZW0ocCkKKyAgICAgICAgICAgICAgOiBwLndyaXRlKHcpOworICAg
ICAgICAgIH0pKSwKKyAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuY2xvc2UpLAorICAgIF0pOwor
ICB9CiB9CiAKLWNsYXNzIFNpbXBsZUV4dGVuZGVkQXR0cmlidXRlIGV4dGVuZHMgX2Jhc2VfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKK2NsYXNzIFNpbXBsZUV4dGVu
ZGVkQXR0cmlidXRlIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
Xy5CYXNlIHsKICAgLyoqCiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tl
bmlzZXJ9IHRva2VuaXNlcgogICAgKi8KICAgc3RhdGljIHBhcnNlKHRva2VuaXNlcikgewotICAg
IGNvbnN0IG5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIpOworICAgIGNvbnN0
IG5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZVR5cGUoImlkZW50aWZpZXIiKTsKICAgICBpZiAobmFt
ZSkgewogICAgICAgcmV0dXJuIG5ldyBTaW1wbGVFeHRlbmRlZEF0dHJpYnV0ZSh7CiAgICAgICAg
IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwKICAgICAgICAgdG9rZW5zOiB7IG5hbWUgfSwKLSAg
ICAgICAgcGFyYW1zOiBFeHRlbmRlZEF0dHJpYnV0ZVBhcmFtZXRlcnMucGFyc2UodG9rZW5pc2Vy
KQorICAgICAgICBwYXJhbXM6IEV4dGVuZGVkQXR0cmlidXRlUGFyYW1ldGVycy5wYXJzZSh0b2tl
bmlzZXIpLAogICAgICAgfSk7CiAgICAgfQogICB9CkBAIC0xNDAyLDcgKzE1NDksOSBAQCBjbGFz
cyBTaW1wbGVFeHRlbmRlZEF0dHJpYnV0ZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX19bIkJhcwogICAgIGlmICghdHlwZSkgewogICAgICAgcmV0dXJuIG51bGw7
CiAgICAgfQotICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wYXJhbXMucmhzSXNMaXN0ID8gbGlzdCA6
IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJ1bmVzY2Fw
ZSJdKSh0b2tlbnMuc2Vjb25kYXJ5TmFtZS52YWx1ZSk7CisgICAgY29uc3QgdmFsdWUgPSB0aGlz
LnBhcmFtcy5yaHNJc0xpc3QKKyAgICAgID8gbGlzdAorICAgICAgOiAoMCxfaGVscGVyc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnVuZXNjYXBlKSh0b2tlbnMuc2Vjb25kYXJ5TmFt
ZS52YWx1ZSk7CiAgICAgcmV0dXJuIHsgdHlwZSwgdmFsdWUgfTsKICAgfQogICBnZXQgYXJndW1l
bnRzKCkgewpAQCAtMTQyMCwyMSArMTU2OSw0MSBAQCBjbGFzcyBTaW1wbGVFeHRlbmRlZEF0dHJp
YnV0ZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhcwog
dW5kZXNpcmFibGUgZmVhdHVyZSB0aGF0IG1heSBiZSByZW1vdmVkIGZyb20gV2ViIElETCBpbiB0
aGUgZnV0dXJlLiBSZWZlciB0byB0aGUgXAogW3JlbGV2YW50IHVwc3RyZWFtIFBSXShodHRwczov
L2dpdGh1Yi5jb20vaGV5Y2FtL3dlYmlkbC9wdWxsLzYwOSkgZm9yIG1vcmUgXAogaW5mb3JtYXRp
b24uYDsKLSAgICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzRfX1sidmFsaWRhdGlvbkVycm9yIl0pKHRoaXMudG9rZW5zLm5hbWUsIHRoaXMsICJuby1u
b2ludGVyZmFjZW9iamVjdCIsIG1lc3NhZ2UsIHsgbGV2ZWw6ICJ3YXJuaW5nIiB9KTsKKyAgICAg
IHlpZWxkICgwLF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLnZhbGlkYXRp
b25FcnJvcikoCisgICAgICAgIHRoaXMudG9rZW5zLm5hbWUsCisgICAgICAgIHRoaXMsCisgICAg
ICAgICJuby1ub2ludGVyZmFjZW9iamVjdCIsCisgICAgICAgIG1lc3NhZ2UsCisgICAgICAgIHsg
bGV2ZWw6ICJ3YXJuaW5nIiB9CisgICAgICApOwogICAgIH0gZWxzZSBpZiAocmVuYW1lZExlZ2Fj
aWVzLmhhcyhuYW1lKSkgewogICAgICAgY29uc3QgbWVzc2FnZSA9IGBcYFske25hbWV9XVxgIGV4
dGVuZGVkIGF0dHJpYnV0ZSBpcyBhIGxlZ2FjeSBmZWF0dXJlIFwKIHRoYXQgaXMgbm93IHJlbmFt
ZWQgdG8gXGBbJHtyZW5hbWVkTGVnYWNpZXMuZ2V0KG5hbWUpfV1cYC4gUmVmZXIgdG8gdGhlIFwK
IFtyZWxldmFudCB1cHN0cmVhbSBQUl0oaHR0cHM6Ly9naXRodWIuY29tL2hleWNhbS93ZWJpZGwv
cHVsbC84NzApIGZvciBtb3JlIFwKIGluZm9ybWF0aW9uLmA7Ci0gICAgICB5aWVsZCBPYmplY3Qo
X2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bInZhbGlkYXRpb25FcnJvciJd
KSh0aGlzLnRva2Vucy5uYW1lLCB0aGlzLCAicmVuYW1lZC1sZWdhY3kiLCBtZXNzYWdlLCB7Cisg
ICAgICB5aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy52YWxp
ZGF0aW9uRXJyb3IpKHRoaXMudG9rZW5zLm5hbWUsIHRoaXMsICJyZW5hbWVkLWxlZ2FjeSIsIG1l
c3NhZ2UsIHsKICAgICAgICAgbGV2ZWw6ICJ3YXJuaW5nIiwKLSAgICAgICAgYXV0b2ZpeDogcmVu
YW1lTGVnYWN5RXh0ZW5kZWRBdHRyaWJ1dGUodGhpcykKKyAgICAgICAgYXV0b2ZpeDogcmVuYW1l
TGVnYWN5RXh0ZW5kZWRBdHRyaWJ1dGUodGhpcyksCiAgICAgICB9KTsKICAgICB9CiAgICAgZm9y
IChjb25zdCBhcmcgb2YgdGhpcy5hcmd1bWVudHMpIHsKICAgICAgIHlpZWxkKiBhcmcudmFsaWRh
dGUoZGVmcyk7CiAgICAgfQogICB9CisKKyAgLyoqIEBwYXJhbSB7aW1wb3J0KCIuLi93cml0ZXIu
anMiKS5Xcml0ZXIpfSB3ICovCisgIHdyaXRlKHcpIHsKKyAgICByZXR1cm4gdy50cy53cmFwKFsK
KyAgICAgIHcudHMudHJpdmlhKHRoaXMudG9rZW5zLm5hbWUudHJpdmlhKSwKKyAgICAgIHcudHMu
ZXh0ZW5kZWRBdHRyaWJ1dGUoCisgICAgICAgIHcudHMud3JhcChbCisgICAgICAgICAgdy50cy5l
eHRlbmRlZEF0dHJpYnV0ZVJlZmVyZW5jZSh0aGlzLm5hbWUpLAorICAgICAgICAgIHRoaXMucGFy
YW1zLndyaXRlKHcpLAorICAgICAgICBdKQorICAgICAgKSwKKyAgICAgIHcudG9rZW4odGhpcy50
b2tlbnMuc2VwYXJhdG9yKSwKKyAgICBdKTsKKyAgfQogfQogCiAvKioKQEAgLTE0NTIsNyArMTYy
MSw3IEBAIGZ1bmN0aW9uIHJlbmFtZUxlZ2FjeUV4dGVuZGVkQXR0cmlidXRlKGV4dEF0dHIpIHsK
IAogLy8gTm90ZTogd2UgcGFyc2Ugc29tZXRoaW5nIHNpbXBsZXIgdGhhbiB0aGUgb2ZmaWNpYWwg
c3ludGF4LiBJdCdzIGFsbCB0aGF0IGV2ZXIKIC8vIHNlZW1zIHRvIGJlIHVzZWQKLWNsYXNzIEV4
dGVuZGVkQXR0cmlidXRlcyBleHRlbmRzIF9hcnJheV9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xX19bIkFycmF5QmFzZSJdIHsKK2NsYXNzIEV4dGVuZGVkQXR0cmlidXRlcyBleHRl
bmRzIF9hcnJheV9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uQXJyYXlCYXNl
IHsKICAgLyoqCiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9
IHRva2VuaXNlcgogICAgKi8KQEAgLTE0NjEsMTYgKzE2MzAsMjIgQEAgY2xhc3MgRXh0ZW5kZWRB
dHRyaWJ1dGVzIGV4dGVuZHMgX2FycmF5X2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfX1siQXIKICAgICB0b2tlbnMub3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCJbIik7CiAgICAg
aWYgKCF0b2tlbnMub3BlbikgcmV0dXJuIG5ldyBFeHRlbmRlZEF0dHJpYnV0ZXMoe30pOwogICAg
IGNvbnN0IHJldCA9IG5ldyBFeHRlbmRlZEF0dHJpYnV0ZXMoeyBzb3VyY2U6IHRva2VuaXNlci5z
b3VyY2UsIHRva2VucyB9KTsKLSAgICByZXQucHVzaCguLi5PYmplY3QoX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1sibGlzdCJdKSh0b2tlbmlzZXIsIHsKLSAgICAgIHBh
cnNlcjogU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGUucGFyc2UsCi0gICAgICBsaXN0TmFtZTogImV4
dGVuZGVkIGF0dHJpYnV0ZSIKLSAgICB9KSk7Ci0gICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2Vy
LmNvbnN1bWUoIl0iKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVuZXhwZWN0ZWQgY2xvc2luZyB0b2tl
biBvZiBleHRlbmRlZCBhdHRyaWJ1dGUiKTsKKyAgICByZXQucHVzaCgKKyAgICAgIC4uLigwLF9o
ZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18ubGlzdCkodG9rZW5pc2VyLCB7
CisgICAgICAgIHBhcnNlcjogU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGUucGFyc2UsCisgICAgICAg
IGxpc3ROYW1lOiAiZXh0ZW5kZWQgYXR0cmlidXRlIiwKKyAgICAgIH0pCisgICAgKTsKKyAgICB0
b2tlbnMuY2xvc2UgPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIl0iKSB8fAorICAgICAgdG9r
ZW5pc2VyLmVycm9yKCJVbmV4cGVjdGVkIGNsb3NpbmcgdG9rZW4gb2YgZXh0ZW5kZWQgYXR0cmli
dXRlIik7CiAgICAgaWYgKCFyZXQubGVuZ3RoKSB7CiAgICAgICB0b2tlbmlzZXIuZXJyb3IoIkZv
dW5kIGFuIGVtcHR5IGV4dGVuZGVkIGF0dHJpYnV0ZSIpOwogICAgIH0KICAgICBpZiAodG9rZW5p
c2VyLnByb2JlKCJbIikpIHsKLSAgICAgIHRva2VuaXNlci5lcnJvcigiSWxsZWdhbCBkb3VibGUg
ZXh0ZW5kZWQgYXR0cmlidXRlIGxpc3RzLCBjb25zaWRlciBtZXJnaW5nIHRoZW0iKTsKKyAgICAg
IHRva2VuaXNlci5lcnJvcigKKyAgICAgICAgIklsbGVnYWwgZG91YmxlIGV4dGVuZGVkIGF0dHJp
YnV0ZSBsaXN0cywgY29uc2lkZXIgbWVyZ2luZyB0aGVtIgorICAgICAgKTsKICAgICB9CiAgICAg
cmV0dXJuIHJldDsKICAgfQpAQCAtMTQ4MCwxNiArMTY1NSwyNyBAQCBjbGFzcyBFeHRlbmRlZEF0
dHJpYnV0ZXMgZXh0ZW5kcyBfYXJyYXlfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MV9fWyJBcgogICAgICAgeWllbGQqIGV4dEF0dHIudmFsaWRhdGUoZGVmcyk7CiAgICAgfQogICB9
CisKKyAgLyoqIEBwYXJhbSB7aW1wb3J0KCIuLi93cml0ZXIuanMiKS5Xcml0ZXIpfSB3ICovCisg
IHdyaXRlKHcpIHsKKyAgICBpZiAoIXRoaXMubGVuZ3RoKSByZXR1cm4gIiI7CisgICAgcmV0dXJu
IHcudHMud3JhcChbCisgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLm9wZW4pLAorICAgICAgLi4u
dGhpcy5tYXAoKGVhKSA9PiBlYS53cml0ZSh3KSksCisgICAgICB3LnRva2VuKHRoaXMudG9rZW5z
LmNsb3NlKSwKKyAgICBdKTsKKyAgfQogfQogCiAKIC8qKiovIH0pLAogLyogOSAqLwotLyoqKi8g
KGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVf
XykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJw
YWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7
CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255
IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBv
cnRzX18sICJBcnJheUJhc2UiLCBmdW5jdGlvbigpIHsgcmV0dXJuIEFycmF5QmFzZTsgfSk7Cisv
KiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9y
dHNfXywgeworLyogaGFybW9ueSBleHBvcnQgKi8gICAiQXJyYXlCYXNlIjogKCkgPT4gKC8qIGJp
bmRpbmcgKi8gQXJyYXlCYXNlKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvLyBAdHMtY2hl
Y2sKIAogY2xhc3MgQXJyYXlCYXNlIGV4dGVuZHMgQXJyYXkgewpAQCAtMTQ5OCw3ICsxNjg0LDcg
QEAgY2xhc3MgQXJyYXlCYXNlIGV4dGVuZHMgQXJyYXkgewogICAgIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0aWVzKHRoaXMsIHsKICAgICAgIHNvdXJjZTogeyB2YWx1ZTogc291cmNlIH0sCiAgICAgICB0
b2tlbnM6IHsgdmFsdWU6IHRva2VucyB9LAotICAgICAgcGFyZW50OiB7IHZhbHVlOiBudWxsLCB3
cml0YWJsZTogdHJ1ZSB9CisgICAgICBwYXJlbnQ6IHsgdmFsdWU6IG51bGwsIHdyaXRhYmxlOiB0
cnVlIH0sCiAgICAgfSk7CiAgIH0KIH0KQEAgLTE1MDYsMTEgKzE2OTIsMTIgQEAgY2xhc3MgQXJy
YXlCYXNlIGV4dGVuZHMgQXJyYXkgewogCiAvKioqLyB9KSwKIC8qIDEwICovCi0vKioqLyAoZnVu
Y3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7
CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tf
ZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9f
d2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhw
b3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNf
XywgIlRva2VuIiwgZnVuY3Rpb24oKSB7IHJldHVybiBUb2tlbjsgfSk7CisvKiBoYXJtb255IGV4
cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgeworLyog
aGFybW9ueSBleHBvcnQgKi8gICAiV3JhcHBlZFRva2VuIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8g
V3JhcHBlZFRva2VuKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9y
dCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFj
a19yZXF1aXJlX18oNik7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CiAvLyBA
dHMtY2hlY2sKQEAgLTE1MTgsMzMgKzE3MDUsMzcgQEAgX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9f
d2VicGFja19leHBvcnRzX18pOwogCiAKIAotY2xhc3MgVG9rZW4gZXh0ZW5kcyBfYmFzZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0geworY2xhc3MgV3JhcHBlZFRva2Vu
IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5CYXNlIHsKICAg
LyoqCiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2Vu
aXNlcgogICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZQogICAgKi8KICAgc3RhdGljIHBhcnNlcih0
b2tlbmlzZXIsIHR5cGUpIHsKICAgICByZXR1cm4gKCkgPT4gewotICAgICAgY29uc3QgdmFsdWUg
PSB0b2tlbmlzZXIuY29uc3VtZSh0eXBlKTsKKyAgICAgIGNvbnN0IHZhbHVlID0gdG9rZW5pc2Vy
LmNvbnN1bWVUeXBlKHR5cGUpOwogICAgICAgaWYgKHZhbHVlKSB7Ci0gICAgICAgIHJldHVybiBu
ZXcgVG9rZW4oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyB2YWx1ZSB9IH0p
OworICAgICAgICByZXR1cm4gbmV3IFdyYXBwZWRUb2tlbih7CisgICAgICAgICAgc291cmNlOiB0
b2tlbmlzZXIuc291cmNlLAorICAgICAgICAgIHRva2VuczogeyB2YWx1ZSB9LAorICAgICAgICB9
KTsKICAgICAgIH0KICAgICB9OwogICB9CiAKICAgZ2V0IHZhbHVlKCkgewotICAgIHJldHVybiBP
YmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidW5lc2NhcGUi
XSkodGhpcy50b2tlbnMudmFsdWUudmFsdWUpOworICAgIHJldHVybiAoMCxfaGVscGVyc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVuZXNjYXBlKSh0aGlzLnRva2Vucy52YWx1ZS52
YWx1ZSk7CiAgIH0KIH0KIAogCiAvKioqLyB9KSwKIC8qIDExICovCi0vKioqLyAoZnVuY3Rpb24o
bW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioq
LyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0
c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFj
a19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChi
aW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkFy
Z3VtZW50IiwgZnVuY3Rpb24oKSB7IHJldHVybiBBcmd1bWVudDsgfSk7CisvKiBoYXJtb255IGV4
cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgeworLyog
aGFybW9ueSBleHBvcnQgKi8gICAiQXJndW1lbnQiOiAoKSA9PiAoLyogYmluZGluZyAqLyBBcmd1
bWVudCkKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWly
ZV9fKDYpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9kZWZhdWx0X2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyKTsKIC8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4KTsKQEAgLTE1NjIsNyArMTc1Myw3IEBA
IF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAogCiAKLWNsYXNz
IEFyZ3VtZW50IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1si
QmFzZSJdIHsKK2NsYXNzIEFyZ3VtZW50IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfXy5CYXNlIHsKICAgLyoqCiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tl
bmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgogICAgKi8KQEAgLTE1NzAsMjEgKzE3NjEsMjUg
QEAgY2xhc3MgQXJndW1lbnQgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fWyJCYXNlIl0gewogICAgIGNvbnN0IHN0YXJ0X3Bvc2l0aW9uID0gdG9rZW5pc2VyLnBv
c2l0aW9uOwogICAgIC8qKiBAdHlwZSB7QmFzZVsidG9rZW5zIl19ICovCiAgICAgY29uc3QgdG9r
ZW5zID0ge307Ci0gICAgY29uc3QgcmV0ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8zX19bImF1dG9QYXJlbnRlciJdKShuZXcgQXJndW1lbnQoeyBzb3VyY2U6
IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSk7Ci0gICAgcmV0LmV4dEF0dHJzID0gX2V4dGVu
ZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siRXh0ZW5kZWRB
dHRyaWJ1dGVzIl0ucGFyc2UodG9rZW5pc2VyKTsKKyAgICBjb25zdCByZXQgPSAoMCxfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmF1dG9QYXJlbnRlcikoCisgICAgICBu
ZXcgQXJndW1lbnQoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KQorICAgICk7
CisgICAgcmV0LmV4dEF0dHJzID0gX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzJfXy5FeHRlbmRlZEF0dHJpYnV0ZXMucGFyc2UodG9rZW5pc2VyKTsKICAg
ICB0b2tlbnMub3B0aW9uYWwgPSB0b2tlbmlzZXIuY29uc3VtZSgib3B0aW9uYWwiKTsKLSAgICBy
ZXQuaWRsVHlwZSA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
M19fWyJ0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyJdKSh0b2tlbmlzZXIsICJhcmd1bWVu
dC10eXBlIik7CisgICAgcmV0LmlkbFR5cGUgPSAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfM19fLnR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzKSh0b2tlbmlzZXIs
ICJhcmd1bWVudC10eXBlIik7CiAgICAgaWYgKCFyZXQuaWRsVHlwZSkgewogICAgICAgcmV0dXJu
IHRva2VuaXNlci51bmNvbnN1bWUoc3RhcnRfcG9zaXRpb24pOwogICAgIH0KICAgICBpZiAoIXRv
a2Vucy5vcHRpb25hbCkgewogICAgICAgdG9rZW5zLnZhcmlhZGljID0gdG9rZW5pc2VyLmNvbnN1
bWUoIi4uLiIpOwogICAgIH0KLSAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJp
ZGVudGlmaWVyIiwgLi4uX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9f
WyJhcmd1bWVudE5hbWVLZXl3b3JkcyJdKTsKKyAgICB0b2tlbnMubmFtZSA9CisgICAgICB0b2tl
bmlzZXIuY29uc3VtZVR5cGUoImlkZW50aWZpZXIiKSB8fAorICAgICAgdG9rZW5pc2VyLmNvbnN1
bWUoLi4uX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmFyZ3VtZW50
TmFtZUtleXdvcmRzKTsKICAgICBpZiAoIXRva2Vucy5uYW1lKSB7CiAgICAgICByZXR1cm4gdG9r
ZW5pc2VyLnVuY29uc3VtZShzdGFydF9wb3NpdGlvbik7CiAgICAgfQotICAgIHJldC5kZWZhdWx0
ID0gdG9rZW5zLm9wdGlvbmFsID8gX2RlZmF1bHRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfX1siRGVmYXVsdCJdLnBhcnNlKHRva2VuaXNlcikgOiBudWxsOworICAgIHJldC5kZWZhdWx0
ID0gdG9rZW5zLm9wdGlvbmFsID8gX2RlZmF1bHRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfXy5EZWZhdWx0LnBhcnNlKHRva2VuaXNlcikgOiBudWxsOwogICAgIHJldHVybiByZXQudGhp
czsKICAgfQogCkBAIC0xNTk4LDM0ICsxNzkzLDcxIEBAIGNsYXNzIEFyZ3VtZW50IGV4dGVuZHMg
X2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICByZXR1
cm4gISF0aGlzLnRva2Vucy52YXJpYWRpYzsKICAgfQogICBnZXQgbmFtZSgpIHsKLSAgICByZXR1
cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bInVuZXNj
YXBlIl0pKHRoaXMudG9rZW5zLm5hbWUudmFsdWUpOworICAgIHJldHVybiAoMCxfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnVuZXNjYXBlKSh0aGlzLnRva2Vucy5uYW1l
LnZhbHVlKTsKICAgfQogCiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdmFsaWRhdG9y
LmpzIikuRGVmaW5pdGlvbnN9IGRlZnMKICAgICovCiAgICp2YWxpZGF0ZShkZWZzKSB7CisgICAg
eWllbGQqIHRoaXMuZXh0QXR0cnMudmFsaWRhdGUoZGVmcyk7CiAgICAgeWllbGQqIHRoaXMuaWRs
VHlwZS52YWxpZGF0ZShkZWZzKTsKLSAgICBjb25zdCByZXN1bHQgPSBPYmplY3QoX3ZhbGlkYXRv
cnNfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fWyJpZGxUeXBlSW5jbHVk
ZXNEaWN0aW9uYXJ5Il0pKHRoaXMuaWRsVHlwZSwgZGVmcywgeyB1c2VOdWxsYWJsZUlubmVyOiB0
cnVlIH0pOworICAgIGNvbnN0IHJlc3VsdCA9ICgwLF92YWxpZGF0b3JzX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5pZGxUeXBlSW5jbHVkZXNEaWN0aW9uYXJ5KSh0aGlz
LmlkbFR5cGUsIGRlZnMsIHsKKyAgICAgIHVzZU51bGxhYmxlSW5uZXI6IHRydWUsCisgICAgfSk7
CiAgICAgaWYgKHJlc3VsdCkgewogICAgICAgaWYgKHRoaXMuaWRsVHlwZS5udWxsYWJsZSkgewog
ICAgICAgICBjb25zdCBtZXNzYWdlID0gYERpY3Rpb25hcnkgYXJndW1lbnRzIGNhbm5vdCBiZSBu
dWxsYWJsZS5gOwotICAgICAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV81X19bInZhbGlkYXRpb25FcnJvciJdKSh0aGlzLnRva2Vucy5uYW1lLCB0aGlz
LCAibm8tbnVsbGFibGUtZGljdC1hcmciLCBtZXNzYWdlKTsKKyAgICAgICAgeWllbGQgKDAsX2Vy
cm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18udmFsaWRhdGlvbkVycm9yKSgKKyAg
ICAgICAgICB0aGlzLnRva2Vucy5uYW1lLAorICAgICAgICAgIHRoaXMsCisgICAgICAgICAgIm5v
LW51bGxhYmxlLWRpY3QtYXJnIiwKKyAgICAgICAgICBtZXNzYWdlCisgICAgICAgICk7CiAgICAg
ICB9IGVsc2UgaWYgKCF0aGlzLm9wdGlvbmFsKSB7Ci0gICAgICAgIGlmICh0aGlzLnBhcmVudCAm
JiAhT2JqZWN0KF92YWxpZGF0b3JzX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzZfX1siZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZCJdKShyZXN1bHQuZGljdGlvbmFy
eSwgZGVmcykgJiYgaXNMYXN0UmVxdWlyZWRBcmd1bWVudCh0aGlzKSkgeworICAgICAgICBpZiAo
CisgICAgICAgICAgdGhpcy5wYXJlbnQgJiYKKyAgICAgICAgICAhKDAsX3ZhbGlkYXRvcnNfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLmRpY3Rpb25hcnlJbmNsdWRlc1Jl
cXVpcmVkRmllbGQpKHJlc3VsdC5kaWN0aW9uYXJ5LCBkZWZzKSAmJgorICAgICAgICAgIGlzTGFz
dFJlcXVpcmVkQXJndW1lbnQodGhpcykKKyAgICAgICAgKSB7CiAgICAgICAgICAgY29uc3QgbWVz
c2FnZSA9IGBEaWN0aW9uYXJ5IGFyZ3VtZW50IG11c3QgYmUgb3B0aW9uYWwgaWYgaXQgaGFzIG5v
IHJlcXVpcmVkIGZpZWxkc2A7Ci0gICAgICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fWyJ2YWxpZGF0aW9uRXJyb3IiXSkodGhpcy50b2tlbnMu
bmFtZSwgdGhpcywgImRpY3QtYXJnLW9wdGlvbmFsIiwgbWVzc2FnZSwgewotICAgICAgICAgICAg
YXV0b2ZpeDogYXV0b2ZpeERpY3Rpb25hcnlBcmd1bWVudE9wdGlvbmFsaXR5KHRoaXMpCi0gICAg
ICAgICAgfSk7CisgICAgICAgICAgeWllbGQgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV81X18udmFsaWRhdGlvbkVycm9yKSgKKyAgICAgICAgICAgIHRoaXMudG9rZW5zLm5h
bWUsCisgICAgICAgICAgICB0aGlzLAorICAgICAgICAgICAgImRpY3QtYXJnLW9wdGlvbmFsIiwK
KyAgICAgICAgICAgIG1lc3NhZ2UsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGF1dG9m
aXg6IGF1dG9maXhEaWN0aW9uYXJ5QXJndW1lbnRPcHRpb25hbGl0eSh0aGlzKSwKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICApOwogICAgICAgICB9CiAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmRl
ZmF1bHQpIHsKICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBPcHRpb25hbCBkaWN0aW9uYXJ5IGFy
Z3VtZW50cyBtdXN0IGhhdmUgYSBkZWZhdWx0IHZhbHVlIG9mIFxge31cYC5gOwotICAgICAgICB5
aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19bInZhbGlk
YXRpb25FcnJvciJdKSh0aGlzLnRva2Vucy5uYW1lLCB0aGlzLCAiZGljdC1hcmctZGVmYXVsdCIs
IG1lc3NhZ2UsIHsKLSAgICAgICAgICBhdXRvZml4OiBhdXRvZml4T3B0aW9uYWxEaWN0aW9uYXJ5
RGVmYXVsdFZhbHVlKHRoaXMpCi0gICAgICAgIH0pOworICAgICAgICB5aWVsZCAoMCxfZXJyb3Jf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy52YWxpZGF0aW9uRXJyb3IpKAorICAgICAg
ICAgIHRoaXMudG9rZW5zLm5hbWUsCisgICAgICAgICAgdGhpcywKKyAgICAgICAgICAiZGljdC1h
cmctZGVmYXVsdCIsCisgICAgICAgICAgbWVzc2FnZSwKKyAgICAgICAgICB7CisgICAgICAgICAg
ICBhdXRvZml4OiBhdXRvZml4T3B0aW9uYWxEaWN0aW9uYXJ5RGVmYXVsdFZhbHVlKHRoaXMpLAor
ICAgICAgICAgIH0KKyAgICAgICAgKTsKICAgICAgIH0KICAgICB9CiAgIH0KKworICAvKiogQHBh
cmFtIHtpbXBvcnQoIi4uL3dyaXRlci5qcyIpLldyaXRlcn0gdyAqLworICB3cml0ZSh3KSB7Cisg
ICAgcmV0dXJuIHcudHMud3JhcChbCisgICAgICB0aGlzLmV4dEF0dHJzLndyaXRlKHcpLAorICAg
ICAgdy50b2tlbih0aGlzLnRva2Vucy5vcHRpb25hbCksCisgICAgICB3LnRzLnR5cGUodGhpcy5p
ZGxUeXBlLndyaXRlKHcpKSwKKyAgICAgIHcudG9rZW4odGhpcy50b2tlbnMudmFyaWFkaWMpLAor
ICAgICAgdy5uYW1lX3Rva2VuKHRoaXMudG9rZW5zLm5hbWUsIHsgZGF0YTogdGhpcyB9KSwKKyAg
ICAgIHRoaXMuZGVmYXVsdCA/IHRoaXMuZGVmYXVsdC53cml0ZSh3KSA6ICIiLAorICAgICAgdy50
b2tlbih0aGlzLnRva2Vucy5zZXBhcmF0b3IpLAorICAgIF0pOworICB9CiB9CiAKIC8qKgpAQCAt
MTYzNCw3ICsxODY2LDcgQEAgY2xhc3MgQXJndW1lbnQgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogZnVuY3Rpb24gaXNMYXN0UmVxdWlyZWRB
cmd1bWVudChhcmcpIHsKICAgY29uc3QgbGlzdCA9IGFyZy5wYXJlbnQuYXJndW1lbnRzIHx8IGFy
Zy5wYXJlbnQubGlzdDsKICAgY29uc3QgaW5kZXggPSBsaXN0LmluZGV4T2YoYXJnKTsKLSAgY29u
c3QgcmVxdWlyZWRFeGlzdHMgPSBsaXN0LnNsaWNlKGluZGV4ICsgMSkuc29tZShhID0+ICFhLm9w
dGlvbmFsKTsKKyAgY29uc3QgcmVxdWlyZWRFeGlzdHMgPSBsaXN0LnNsaWNlKGluZGV4ICsgMSku
c29tZSgoYSkgPT4gIWEub3B0aW9uYWwpOwogICByZXR1cm4gIXJlcXVpcmVkRXhpc3RzOwogfQog
CkBAIC0xNjQzLDggKzE4NzUsMTIgQEAgZnVuY3Rpb24gaXNMYXN0UmVxdWlyZWRBcmd1bWVudChh
cmcpIHsKICAqLwogZnVuY3Rpb24gYXV0b2ZpeERpY3Rpb25hcnlBcmd1bWVudE9wdGlvbmFsaXR5
KGFyZykgewogICByZXR1cm4gKCkgPT4gewotICAgIGNvbnN0IGZpcnN0VG9rZW4gPSBPYmplY3Qo
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1siZ2V0Rmlyc3RUb2tlbiJd
KShhcmcuaWRsVHlwZSk7Ci0gICAgYXJnLnRva2Vucy5vcHRpb25hbCA9IHsgdHlwZTogIm9wdGlv
bmFsIiwgdmFsdWU6ICJvcHRpb25hbCIsIHRyaXZpYTogZmlyc3RUb2tlbi50cml2aWEgfTsKKyAg
ICBjb25zdCBmaXJzdFRva2VuID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzNfXy5nZXRGaXJzdFRva2VuKShhcmcuaWRsVHlwZSk7CisgICAgYXJnLnRva2Vucy5vcHRp
b25hbCA9IHsKKyAgICAgIHR5cGU6ICJvcHRpb25hbCIsCisgICAgICB2YWx1ZTogIm9wdGlvbmFs
IiwKKyAgICAgIHRyaXZpYTogZmlyc3RUb2tlbi50cml2aWEsCisgICAgfTsKICAgICBmaXJzdFRv
a2VuLnRyaXZpYSA9ICIgIjsKICAgICBhdXRvZml4T3B0aW9uYWxEaWN0aW9uYXJ5RGVmYXVsdFZh
bHVlKGFyZykoKTsKICAgfTsKQEAgLTE2NTUsMjQgKzE4OTEsMjUgQEAgZnVuY3Rpb24gYXV0b2Zp
eERpY3Rpb25hcnlBcmd1bWVudE9wdGlvbmFsaXR5KGFyZykgewogICovCiBmdW5jdGlvbiBhdXRv
Zml4T3B0aW9uYWxEaWN0aW9uYXJ5RGVmYXVsdFZhbHVlKGFyZykgewogICByZXR1cm4gKCkgPT4g
ewotICAgIGFyZy5kZWZhdWx0ID0gX2RlZmF1bHRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfX1siRGVmYXVsdCJdLnBhcnNlKG5ldyBfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV80X19bIlRva2VuaXNlciJdKCIgPSB7fSIpKTsKKyAgICBhcmcuZGVmYXVsdCA9IF9k
ZWZhdWx0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uRGVmYXVsdC5wYXJzZShuZXcg
X3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlRva2VuaXNlcigiID0g
e30iKSk7CiAgIH07CiB9CiAKIAogLyoqKi8gfSksCiAvKiAxMiAqLwotLyoqKi8gKGZ1bmN0aW9u
KG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoq
Ki8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9y
dHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBh
Y2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAo
YmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJE
ZWZhdWx0IiwgZnVuY3Rpb24oKSB7IHJldHVybiBEZWZhdWx0OyB9KTsKKy8qIGhhcm1vbnkgZXhw
b3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBo
YXJtb255IGV4cG9ydCAqLyAgICJEZWZhdWx0IjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gRGVmYXVs
dCkKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9i
YXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9f
KDYpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwogCiAKIAotY2xhc3MgRGVm
YXVsdCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2Ui
XSB7CitjbGFzcyBEZWZhdWx0IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfXy5CYXNlIHsKICAgLyoqCiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIi
KS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgogICAgKi8KQEAgLTE2ODEsMTYgKzE5MTgsMjggQEAgY2xh
c3MgRGVmYXVsdCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19b
IkJhc2UiXSB7CiAgICAgaWYgKCFhc3NpZ24pIHsKICAgICAgIHJldHVybiBudWxsOwogICAgIH0K
LSAgICBjb25zdCBkZWYgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzFfX1siY29uc3RfdmFsdWUiXSkodG9rZW5pc2VyKSB8fCB0b2tlbmlzZXIuY29uc3VtZSgi
c3RyaW5nIiwgIm51bGwiLCAiWyIsICJ7IikgfHwgdG9rZW5pc2VyLmVycm9yKCJObyB2YWx1ZSBm
b3IgZGVmYXVsdCIpOworICAgIGNvbnN0IGRlZiA9CisgICAgICAoMCxfaGVscGVyc19qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmNvbnN0X3ZhbHVlKSh0b2tlbmlzZXIpIHx8CisgICAg
ICB0b2tlbmlzZXIuY29uc3VtZVR5cGUoInN0cmluZyIpIHx8CisgICAgICB0b2tlbmlzZXIuY29u
c3VtZSgibnVsbCIsICJbIiwgInsiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKCJObyB2YWx1
ZSBmb3IgZGVmYXVsdCIpOwogICAgIGNvbnN0IGV4cHJlc3Npb24gPSBbZGVmXTsKLSAgICBpZiAo
ZGVmLnR5cGUgPT09ICJbIikgewotICAgICAgY29uc3QgY2xvc2UgPSB0b2tlbmlzZXIuY29uc3Vt
ZSgiXSIpIHx8IHRva2VuaXNlci5lcnJvcigiRGVmYXVsdCBzZXF1ZW5jZSB2YWx1ZSBtdXN0IGJl
IGVtcHR5Iik7CisgICAgaWYgKGRlZi52YWx1ZSA9PT0gIlsiKSB7CisgICAgICBjb25zdCBjbG9z
ZSA9CisgICAgICAgIHRva2VuaXNlci5jb25zdW1lKCJdIikgfHwKKyAgICAgICAgdG9rZW5pc2Vy
LmVycm9yKCJEZWZhdWx0IHNlcXVlbmNlIHZhbHVlIG11c3QgYmUgZW1wdHkiKTsKICAgICAgIGV4
cHJlc3Npb24ucHVzaChjbG9zZSk7Ci0gICAgfSBlbHNlIGlmIChkZWYudHlwZSA9PT0gInsiKSB7
Ci0gICAgICBjb25zdCBjbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCJ9IikgfHwgdG9rZW5pc2Vy
LmVycm9yKCJEZWZhdWx0IGRpY3Rpb25hcnkgdmFsdWUgbXVzdCBiZSBlbXB0eSIpOworICAgIH0g
ZWxzZSBpZiAoZGVmLnZhbHVlID09PSAieyIpIHsKKyAgICAgIGNvbnN0IGNsb3NlID0KKyAgICAg
ICAgdG9rZW5pc2VyLmNvbnN1bWUoIn0iKSB8fAorICAgICAgICB0b2tlbmlzZXIuZXJyb3IoIkRl
ZmF1bHQgZGljdGlvbmFyeSB2YWx1ZSBtdXN0IGJlIGVtcHR5Iik7CiAgICAgICBleHByZXNzaW9u
LnB1c2goY2xvc2UpOwogICAgIH0KLSAgICByZXR1cm4gbmV3IERlZmF1bHQoeyBzb3VyY2U6IHRv
a2VuaXNlci5zb3VyY2UsIHRva2VuczogeyBhc3NpZ24gfSwgZXhwcmVzc2lvbiB9KTsKKyAgICBy
ZXR1cm4gbmV3IERlZmF1bHQoeworICAgICAgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLAorICAg
ICAgdG9rZW5zOiB7IGFzc2lnbiB9LAorICAgICAgZXhwcmVzc2lvbiwKKyAgICB9KTsKICAgfQog
CiAgIGNvbnN0cnVjdG9yKHsgc291cmNlLCB0b2tlbnMsIGV4cHJlc3Npb24gfSkgewpAQCAtMTcw
MCwyNCArMTk0OSwzMyBAQCBjbGFzcyBEZWZhdWx0IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgfQogCiAgIGdldCB0eXBlKCkgewotICAg
IHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1si
Y29uc3RfZGF0YSJdKSh0aGlzLmV4cHJlc3Npb25bMF0pLnR5cGU7CisgICAgcmV0dXJuICgwLF9o
ZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uY29uc3RfZGF0YSkodGhpcy5l
eHByZXNzaW9uWzBdKS50eXBlOwogICB9CiAgIGdldCB2YWx1ZSgpIHsKLSAgICByZXR1cm4gT2Jq
ZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImNvbnN0X2RhdGEi
XSkodGhpcy5leHByZXNzaW9uWzBdKS52YWx1ZTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5jb25zdF9kYXRhKSh0aGlzLmV4cHJlc3Npb25b
MF0pLnZhbHVlOwogICB9CiAgIGdldCBuZWdhdGl2ZSgpIHsKLSAgICByZXR1cm4gT2JqZWN0KF9o
ZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImNvbnN0X2RhdGEiXSkodGhp
cy5leHByZXNzaW9uWzBdKS5uZWdhdGl2ZTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5jb25zdF9kYXRhKSh0aGlzLmV4cHJlc3Npb25bMF0p
Lm5lZ2F0aXZlOworICB9CisKKyAgLyoqIEBwYXJhbSB7aW1wb3J0KCIuLi93cml0ZXIuanMiKS5X
cml0ZXIpfSB3ICovCisgIHdyaXRlKHcpIHsKKyAgICByZXR1cm4gdy50cy53cmFwKFsKKyAgICAg
IHcudG9rZW4odGhpcy50b2tlbnMuYXNzaWduKSwKKyAgICAgIC4uLnRoaXMuZXhwcmVzc2lvbi5t
YXAoKHQpID0+IHcudG9rZW4odCkpLAorICAgIF0pOwogICB9CiB9CiAKIAogLyoqKi8gfSksCiAv
KiAxMyAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193
ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19t
b2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewog
Ci0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNf
Xyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5k
KF9fd2VicGFja19leHBvcnRzX18sICJPcGVyYXRpb24iLCBmdW5jdGlvbigpIHsgcmV0dXJuIE9w
ZXJhdGlvbjsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQo
X193ZWJwYWNrX2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBvcnQgKi8gICAiT3BlcmF0aW9u
IjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gT3BlcmF0aW9uKQorLyogaGFybW9ueSBleHBvcnQgKi8g
fSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CiAvKiBoYXJtb255IGltcG9ydCAq
LyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFj
a19yZXF1aXJlX18oNCk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Vycm9yX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpOwpAQCAtMTcy
NSw3ICsxOTgzLDcgQEAgX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18p
OwogCiAKIAotY2xhc3MgT3BlcmF0aW9uIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siQmFzZSJdIHsKK2NsYXNzIE9wZXJhdGlvbiBleHRlbmRzIF9iYXNlX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBAdHlwZWRl
ZiB7aW1wb3J0KCIuLi90b2tlbmlzZXIuanMiKS5Ub2tlbn0gVG9rZW4KICAgICoKQEAgLTE3MzYs
NyArMTk5NCw5IEBAIGNsYXNzIE9wZXJhdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICAqLwogICBzdGF0aWMgcGFyc2UodG9rZW5p
c2VyLCB7IHNwZWNpYWwsIHJlZ3VsYXIgfSA9IHt9KSB7CiAgICAgY29uc3QgdG9rZW5zID0geyBz
cGVjaWFsIH07Ci0gICAgY29uc3QgcmV0ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX19bImF1dG9QYXJlbnRlciJdKShuZXcgT3BlcmF0aW9uKHsgc291cmNl
OiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkpOworICAgIGNvbnN0IHJldCA9ICgwLF9oZWxw
ZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uYXV0b1BhcmVudGVyKSgKKyAgICAg
IG5ldyBPcGVyYXRpb24oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KQorICAg
ICk7CiAgICAgaWYgKHNwZWNpYWwgJiYgc3BlY2lhbC52YWx1ZSA9PT0gInN0cmluZ2lmaWVyIikg
ewogICAgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKTsKICAg
ICAgIGlmICh0b2tlbnMudGVybWluYXRpb24pIHsKQEAgLTE3NDcsMTIgKzIwMDcsMTggQEAgY2xh
c3MgT3BlcmF0aW9uIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
X1siQmFzZSJdIHsKICAgICBpZiAoIXNwZWNpYWwgJiYgIXJlZ3VsYXIpIHsKICAgICAgIHRva2Vu
cy5zcGVjaWFsID0gdG9rZW5pc2VyLmNvbnN1bWUoImdldHRlciIsICJzZXR0ZXIiLCAiZGVsZXRl
ciIpOwogICAgIH0KLSAgICByZXQuaWRsVHlwZSA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fWyJyZXR1cm5fdHlwZSJdKSh0b2tlbmlzZXIpIHx8IHRva2Vu
aXNlci5lcnJvcigiTWlzc2luZyByZXR1cm4gdHlwZSIpOwotICAgIHRva2Vucy5uYW1lID0gdG9r
ZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiLCAiaW5jbHVkZXMiKTsKLSAgICB0b2tlbnMub3Bl
biA9IHRva2VuaXNlci5jb25zdW1lKCIoIikgfHwgdG9rZW5pc2VyLmVycm9yKCJJbnZhbGlkIG9w
ZXJhdGlvbiIpOwotICAgIHJldC5hcmd1bWVudHMgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfX1siYXJndW1lbnRfbGlzdCJdKSh0b2tlbmlzZXIpOwotICAg
IHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCIpIikgfHwgdG9rZW5pc2VyLmVycm9y
KCJVbnRlcm1pbmF0ZWQgb3BlcmF0aW9uIik7Ci0gICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9r
ZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBvcGVy
YXRpb24sIGV4cGVjdGVkIGA7YCIpOworICAgIHJldC5pZGxUeXBlID0KKyAgICAgICgwLF9oZWxw
ZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ucmV0dXJuX3R5cGUpKHRva2VuaXNl
cikgfHwgdG9rZW5pc2VyLmVycm9yKCJNaXNzaW5nIHJldHVybiB0eXBlIik7CisgICAgdG9rZW5z
Lm5hbWUgPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWVUeXBlKCJpZGVudGlmaWVyIikgfHwgdG9r
ZW5pc2VyLmNvbnN1bWUoImluY2x1ZGVzIik7CisgICAgdG9rZW5zLm9wZW4gPQorICAgICAgdG9r
ZW5pc2VyLmNvbnN1bWUoIigiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkludmFsaWQgb3BlcmF0aW9u
Iik7CisgICAgcmV0LmFyZ3VtZW50cyA9ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xX18uYXJndW1lbnRfbGlzdCkodG9rZW5pc2VyKTsKKyAgICB0b2tlbnMuY2xvc2Ug
PQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIikiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVy
bWluYXRlZCBvcGVyYXRpb24iKTsKKyAgICB0b2tlbnMudGVybWluYXRpb24gPQorICAgICAgdG9r
ZW5pc2VyLmNvbnN1bWUoIjsiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0
ZWQgb3BlcmF0aW9uLCBleHBlY3RlZCBgO2AiKTsKICAgICByZXR1cm4gcmV0LnRoaXM7CiAgIH0K
IApAQCAtMTc2NCw3ICsyMDMwLDcgQEAgY2xhc3MgT3BlcmF0aW9uIGV4dGVuZHMgX2Jhc2VfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICBpZiAoIW5hbWUpIHsK
ICAgICAgIHJldHVybiAiIjsKICAgICB9Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJdKShuYW1lLnZhbHVlKTsKKyAg
ICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51bmVz
Y2FwZSkobmFtZS52YWx1ZSk7CiAgIH0KICAgZ2V0IHNwZWNpYWwoKSB7CiAgICAgaWYgKCF0aGlz
LnRva2Vucy5zcGVjaWFsKSB7CkBAIC0xNzc0LDkgKzIwNDAsMTAgQEAgY2xhc3MgT3BlcmF0aW9u
IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsK
ICAgfQogCiAgICp2YWxpZGF0ZShkZWZzKSB7CisgICAgeWllbGQqIHRoaXMuZXh0QXR0cnMudmFs
aWRhdGUoZGVmcyk7CiAgICAgaWYgKCF0aGlzLm5hbWUgJiYgWyIiLCAic3RhdGljIl0uaW5jbHVk
ZXModGhpcy5zcGVjaWFsKSkgewogICAgICAgY29uc3QgbWVzc2FnZSA9IGBSZWd1bGFyIG9yIHN0
YXRpYyBvcGVyYXRpb25zIG11c3QgaGF2ZSBib3RoIGEgcmV0dXJuIHR5cGUgYW5kIGFuIGlkZW50
aWZpZXIuYDsKLSAgICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzJfX1sidmFsaWRhdGlvbkVycm9yIl0pKHRoaXMudG9rZW5zLm9wZW4sIHRoaXMsICJp
bmNvbXBsZXRlLW9wIiwgbWVzc2FnZSk7CisgICAgICB5aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzJfXy52YWxpZGF0aW9uRXJyb3IpKHRoaXMudG9rZW5zLm9wZW4s
IHRoaXMsICJpbmNvbXBsZXRlLW9wIiwgbWVzc2FnZSk7CiAgICAgfQogICAgIGlmICh0aGlzLmlk
bFR5cGUpIHsKICAgICAgIHlpZWxkKiB0aGlzLmlkbFR5cGUudmFsaWRhdGUoZGVmcyk7CkBAIC0x
Nzg1LDI5ICsyMDUyLDcwIEBAIGNsYXNzIE9wZXJhdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICAgICB5aWVsZCogYXJndW1lbnQu
dmFsaWRhdGUoZGVmcyk7CiAgICAgfQogICB9CisKKyAgLyoqIEBwYXJhbSB7aW1wb3J0KCIuLi93
cml0ZXIuanMiKS5Xcml0ZXJ9IHcgKi8KKyAgd3JpdGUodykgeworICAgIGNvbnN0IHsgcGFyZW50
IH0gPSB0aGlzOworICAgIGNvbnN0IGJvZHkgPSB0aGlzLmlkbFR5cGUKKyAgICAgID8gWworICAg
ICAgICAgIHcudHMudHlwZSh0aGlzLmlkbFR5cGUud3JpdGUodykpLAorICAgICAgICAgIHcubmFt
ZV90b2tlbih0aGlzLnRva2Vucy5uYW1lLCB7IGRhdGE6IHRoaXMsIHBhcmVudCB9KSwKKyAgICAg
ICAgICB3LnRva2VuKHRoaXMudG9rZW5zLm9wZW4pLAorICAgICAgICAgIHcudHMud3JhcCh0aGlz
LmFyZ3VtZW50cy5tYXAoKGFyZykgPT4gYXJnLndyaXRlKHcpKSksCisgICAgICAgICAgdy50b2tl
bih0aGlzLnRva2Vucy5jbG9zZSksCisgICAgICAgIF0KKyAgICAgIDogW107CisgICAgcmV0dXJu
IHcudHMuZGVmaW5pdGlvbigKKyAgICAgIHcudHMud3JhcChbCisgICAgICAgIHRoaXMuZXh0QXR0
cnMud3JpdGUodyksCisgICAgICAgIHRoaXMudG9rZW5zLm5hbWUKKyAgICAgICAgICA/IHcudG9r
ZW4odGhpcy50b2tlbnMuc3BlY2lhbCkKKyAgICAgICAgICA6IHcudG9rZW4odGhpcy50b2tlbnMu
c3BlY2lhbCwgdy50cy5uYW1lbGVzcywgeyBkYXRhOiB0aGlzLCBwYXJlbnQgfSksCisgICAgICAg
IC4uLmJvZHksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMudGVybWluYXRpb24pLAorICAg
ICAgXSksCisgICAgICB7IGRhdGE6IHRoaXMsIHBhcmVudCB9CisgICAgKTsKKyAgfQogfQogCiAK
IC8qKiovIH0pLAogLyogMTQgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19l
eHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFj
a19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1
aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2Vi
cGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFj
a19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQXR0cmlidXRlIiwgZnVuY3Rpb24o
KSB7IHJldHVybiBBdHRyaWJ1dGU7IH0pOwotLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYp
OwotLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOworLyogaGFybW9ueSBleHBvcnQg
Ki8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1v
bnkgZXhwb3J0ICovICAgIkF0dHJpYnV0ZSI6ICgpID0+ICgvKiBiaW5kaW5nICovIEF0dHJpYnV0
ZSkKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9l
cnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVf
XygzKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdmFsaWRhdG9yc19oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDcpOworLyog
aGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8y
X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9o
ZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWly
ZV9fKDQpOworLy8gQHRzLWNoZWNrCisKIAogCiAKLWNsYXNzIEF0dHJpYnV0ZSBleHRlbmRzIF9i
YXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CisKKworY2xhc3Mg
QXR0cmlidXRlIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5C
YXNlIHsKICAgLyoqCiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIuanMiKS5Ub2tl
bmlzZXJ9IHRva2VuaXNlcgorICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdCisgICAqIEBw
YXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIuanMiKS5Ub2tlbn0gW29wdGlvbnMuc3BlY2lhbF0K
KyAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5ub0luaGVyaXRdCisgICAqIEBwYXJhbSB7
Ym9vbGVhbn0gW29wdGlvbnMucmVhZG9ubHldCiAgICAqLwotICBzdGF0aWMgcGFyc2UodG9rZW5p
c2VyLCB7IHNwZWNpYWwsIG5vSW5oZXJpdCA9IGZhbHNlLCByZWFkb25seSA9IGZhbHNlIH0gPSB7
fSkgeworICBzdGF0aWMgcGFyc2UoCisgICAgdG9rZW5pc2VyLAorICAgIHsgc3BlY2lhbCwgbm9J
bmhlcml0ID0gZmFsc2UsIHJlYWRvbmx5ID0gZmFsc2UgfSA9IHt9CisgICkgewogICAgIGNvbnN0
IHN0YXJ0X3Bvc2l0aW9uID0gdG9rZW5pc2VyLnBvc2l0aW9uOwogICAgIGNvbnN0IHRva2VucyA9
IHsgc3BlY2lhbCB9OwotICAgIGNvbnN0IHJldCA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fWyJhdXRvUGFyZW50ZXIiXSkobmV3IEF0dHJpYnV0ZSh7IHNv
dXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pKTsKKyAgICBjb25zdCByZXQgPSAoMCxf
aGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmF1dG9QYXJlbnRlcikoCisg
ICAgICBuZXcgQXR0cmlidXRlKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkK
KyAgICApOwogICAgIGlmICghc3BlY2lhbCAmJiAhbm9Jbmhlcml0KSB7CiAgICAgICB0b2tlbnMu
c3BlY2lhbCA9IHRva2VuaXNlci5jb25zdW1lKCJpbmhlcml0Iik7CiAgICAgfQpAQCAtMTgyMywx
MyArMjEzMSwxNiBAQCBjbGFzcyBBdHRyaWJ1dGUgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgICAgdG9rZW5pc2VyLnVuY29uc3VtZShz
dGFydF9wb3NpdGlvbik7CiAgICAgICByZXR1cm47CiAgICAgfQotICAgIHJldC5pZGxUeXBlID0g
T2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0
aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRva2VuaXNlciwgImF0dHJpYnV0ZS10eXBlIikgfHwg
dG9rZW5pc2VyLmVycm9yKCJBdHRyaWJ1dGUgbGFja3MgYSB0eXBlIik7Ci0gICAgc3dpdGNoIChy
ZXQuaWRsVHlwZS5nZW5lcmljKSB7Ci0gICAgICBjYXNlICJzZXF1ZW5jZSI6Ci0gICAgICBjYXNl
ICJyZWNvcmQiOiB0b2tlbmlzZXIuZXJyb3IoYEF0dHJpYnV0ZXMgY2Fubm90IGFjY2VwdCAke3Jl
dC5pZGxUeXBlLmdlbmVyaWN9IHR5cGVzYCk7Ci0gICAgfQotICAgIHRva2Vucy5uYW1lID0gdG9r
ZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiLCAiYXN5bmMiLCAicmVxdWlyZWQiKSB8fCB0b2tl
bmlzZXIuZXJyb3IoIkF0dHJpYnV0ZSBsYWNrcyBhIG5hbWUiKTsKLSAgICB0b2tlbnMudGVybWlu
YXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJt
aW5hdGVkIGF0dHJpYnV0ZSwgZXhwZWN0ZWQgYDtgIik7CisgICAgcmV0LmlkbFR5cGUgPQorICAg
ICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy50eXBlX3dpdGhf
ZXh0ZW5kZWRfYXR0cmlidXRlcykodG9rZW5pc2VyLCAiYXR0cmlidXRlLXR5cGUiKSB8fAorICAg
ICAgdG9rZW5pc2VyLmVycm9yKCJBdHRyaWJ1dGUgbGFja3MgYSB0eXBlIik7CisgICAgdG9rZW5z
Lm5hbWUgPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWVUeXBlKCJpZGVudGlmaWVyIikgfHwKKyAg
ICAgIHRva2VuaXNlci5jb25zdW1lKCJhc3luYyIsICJyZXF1aXJlZCIpIHx8CisgICAgICB0b2tl
bmlzZXIuZXJyb3IoIkF0dHJpYnV0ZSBsYWNrcyBhIG5hbWUiKTsKKyAgICB0b2tlbnMudGVybWlu
YXRpb24gPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fAorICAgICAgdG9rZW5pc2Vy
LmVycm9yKCJVbnRlcm1pbmF0ZWQgYXR0cmlidXRlLCBleHBlY3RlZCBgO2AiKTsKICAgICByZXR1
cm4gcmV0LnRoaXM7CiAgIH0KIApAQCAtMTg0NiwyMyArMjE1Nyw3MCBAQCBjbGFzcyBBdHRyaWJ1
dGUgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0g
ewogICAgIHJldHVybiAhIXRoaXMudG9rZW5zLnJlYWRvbmx5OwogICB9CiAgIGdldCBuYW1lKCkg
ewotICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfX1sidW5lc2NhcGUiXSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7CisgICAgcmV0dXJuICgw
LF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udW5lc2NhcGUpKHRoaXMu
dG9rZW5zLm5hbWUudmFsdWUpOwogICB9CiAKICAgKnZhbGlkYXRlKGRlZnMpIHsKICAgICB5aWVs
ZCogdGhpcy5leHRBdHRycy52YWxpZGF0ZShkZWZzKTsKICAgICB5aWVsZCogdGhpcy5pZGxUeXBl
LnZhbGlkYXRlKGRlZnMpOworCisgICAgc3dpdGNoICh0aGlzLmlkbFR5cGUuZ2VuZXJpYykgewor
ICAgICAgY2FzZSAic2VxdWVuY2UiOgorICAgICAgY2FzZSAicmVjb3JkIjogeworICAgICAgICBj
b25zdCBtZXNzYWdlID0gYEF0dHJpYnV0ZXMgY2Fubm90IGFjY2VwdCAke3RoaXMuaWRsVHlwZS5n
ZW5lcmljfSB0eXBlcy5gOworICAgICAgICB5aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfXy52YWxpZGF0aW9uRXJyb3IpKAorICAgICAgICAgIHRoaXMudG9rZW5z
Lm5hbWUsCisgICAgICAgICAgdGhpcywKKyAgICAgICAgICAiYXR0ci1pbnZhbGlkLXR5cGUiLAor
ICAgICAgICAgIG1lc3NhZ2UKKyAgICAgICAgKTsKKyAgICAgICAgYnJlYWs7CisgICAgICB9Cisg
ICAgICBkZWZhdWx0OiB7CisgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlIH0gPQorICAgICAgICAg
ICgwLF92YWxpZGF0b3JzX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5p
ZGxUeXBlSW5jbHVkZXNEaWN0aW9uYXJ5KSh0aGlzLmlkbFR5cGUsIGRlZnMpIHx8IHt9OworICAg
ICAgICBpZiAocmVmZXJlbmNlKSB7CisgICAgICAgICAgY29uc3QgdGFyZ2V0VG9rZW4gPSAodGhp
cy5pZGxUeXBlLnVuaW9uID8gcmVmZXJlbmNlIDogdGhpcy5pZGxUeXBlKQorICAgICAgICAgICAg
LnRva2Vucy5iYXNlOworICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAiQXR0cmlidXRlcyBjYW5u
b3QgYWNjZXB0IGRpY3Rpb25hcnkgdHlwZXMuIjsKKyAgICAgICAgICB5aWVsZCAoMCxfZXJyb3Jf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy52YWxpZGF0aW9uRXJyb3IpKAorICAgICAg
ICAgICAgdGFyZ2V0VG9rZW4sCisgICAgICAgICAgICB0aGlzLAorICAgICAgICAgICAgImF0dHIt
aW52YWxpZC10eXBlIiwKKyAgICAgICAgICAgIG1lc3NhZ2UKKyAgICAgICAgICApOworICAgICAg
ICB9CisgICAgICB9CisgICAgfQorICB9CisKKyAgLyoqIEBwYXJhbSB7aW1wb3J0KCIuLi93cml0
ZXIuanMiKS5Xcml0ZXJ9IHcgKi8KKyAgd3JpdGUodykgeworICAgIGNvbnN0IHsgcGFyZW50IH0g
PSB0aGlzOworICAgIHJldHVybiB3LnRzLmRlZmluaXRpb24oCisgICAgICB3LnRzLndyYXAoWwor
ICAgICAgICB0aGlzLmV4dEF0dHJzLndyaXRlKHcpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9r
ZW5zLnNwZWNpYWwpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnJlYWRvbmx5KSwKKyAg
ICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5iYXNlKSwKKyAgICAgICAgdy50cy50eXBlKHRoaXMu
aWRsVHlwZS53cml0ZSh3KSksCisgICAgICAgIHcubmFtZV90b2tlbih0aGlzLnRva2Vucy5uYW1l
LCB7IGRhdGE6IHRoaXMsIHBhcmVudCB9KSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy50
ZXJtaW5hdGlvbiksCisgICAgICBdKSwKKyAgICAgIHsgZGF0YTogdGhpcywgcGFyZW50IH0KKyAg
ICApOwogICB9CiB9CiAKIAogLyoqKi8gfSksCiAvKiAxNSAqLwotLyoqKi8gKGZ1bmN0aW9uKG1v
ZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8g
KChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNf
XywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tf
cmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmlu
ZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJFbnVt
IiwgZnVuY3Rpb24oKSB7IHJldHVybiBFbnVtOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9f
d2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4
cG9ydCAqLyAgICJFbnVtIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gRW51bSkKKy8qIGhhcm1vbnkg
ZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwogLyogaGFy
bW9ueSBpbXBvcnQgKi8gdmFyIF90b2tlbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9f
ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMCk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jh
c2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18o
Nik7CkBAIC0xODcwLDEyICsyMjI4LDEyIEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBh
Y2tfZXhwb3J0c19fKTsKIAogCiAKLWNsYXNzIEVudW1WYWx1ZSBleHRlbmRzIF90b2tlbl9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJUb2tlbiJdIHsKK2NsYXNzIEVudW1WYWx1ZSBl
eHRlbmRzIF90b2tlbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLldyYXBwZWRUb2tl
biB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2Vy
fSB0b2tlbmlzZXIKICAgICovCiAgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKLSAgICBjb25z
dCB2YWx1ZSA9IHRva2VuaXNlci5jb25zdW1lKCJzdHJpbmciKTsKKyAgICBjb25zdCB2YWx1ZSA9
IHRva2VuaXNlci5jb25zdW1lVHlwZSgic3RyaW5nIik7CiAgICAgaWYgKHZhbHVlKSB7CiAgICAg
ICByZXR1cm4gbmV3IEVudW1WYWx1ZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5z
OiB7IHZhbHVlIH0gfSk7CiAgICAgfQpAQCAtMTg4Nyw5ICsyMjQ1LDIyIEBAIGNsYXNzIEVudW1W
YWx1ZSBleHRlbmRzIF90b2tlbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJUb2tl
biJdIHsKICAgZ2V0IHZhbHVlKCkgewogICAgIHJldHVybiBzdXBlci52YWx1ZS5zbGljZSgxLCAt
MSk7CiAgIH0KKworICAvKiogQHBhcmFtIHtpbXBvcnQoIi4uL3dyaXRlci5qcyIpLldyaXRlcn0g
dyAqLworICB3cml0ZSh3KSB7CisgICAgY29uc3QgeyBwYXJlbnQgfSA9IHRoaXM7CisgICAgcmV0
dXJuIHcudHMud3JhcChbCisgICAgICB3LnRzLnRyaXZpYSh0aGlzLnRva2Vucy52YWx1ZS50cml2
aWEpLAorICAgICAgdy50cy5kZWZpbml0aW9uKAorICAgICAgICB3LnRzLndyYXAoWyciJywgdy50
cy5uYW1lKHRoaXMudmFsdWUsIHsgZGF0YTogdGhpcywgcGFyZW50IH0pLCAnIiddKSwKKyAgICAg
ICAgeyBkYXRhOiB0aGlzLCBwYXJlbnQgfQorICAgICAgKSwKKyAgICAgIHcudG9rZW4odGhpcy50
b2tlbnMuc2VwYXJhdG9yKSwKKyAgICBdKTsKKyAgfQogfQogCi1jbGFzcyBFbnVtIGV4dGVuZHMg
X2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siQmFzZSJdIHsKK2NsYXNzIEVu
dW0gZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkJhc2Ugewog
ICAvKioKICAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9r
ZW5pc2VyCiAgICAqLwpAQCAtMTkwMCwyMyArMjI3MSwyNyBAQCBjbGFzcyBFbnVtIGV4dGVuZHMg
X2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siQmFzZSJdIHsKICAgICBpZiAo
IXRva2Vucy5iYXNlKSB7CiAgICAgICByZXR1cm47CiAgICAgfQotICAgIHRva2Vucy5uYW1lID0g
dG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIk5vIG5h
bWUgZm9yIGVudW0iKTsKLSAgICBjb25zdCByZXQgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfX1siYXV0b1BhcmVudGVyIl0pKG5ldyBFbnVtKHsgc291cmNl
OiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkpOworICAgIHRva2Vucy5uYW1lID0KKyAgICAg
IHRva2VuaXNlci5jb25zdW1lVHlwZSgiaWRlbnRpZmllciIpIHx8CisgICAgICB0b2tlbmlzZXIu
ZXJyb3IoIk5vIG5hbWUgZm9yIGVudW0iKTsKKyAgICBjb25zdCByZXQgPSAoMCxfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLmF1dG9QYXJlbnRlcikobmV3IEVudW0oeyBz
b3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSk7CiAgICAgdG9rZW5pc2VyLmN1cnJl
bnQgPSByZXQudGhpczsKICAgICB0b2tlbnMub3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCJ7Iikg
fHwgdG9rZW5pc2VyLmVycm9yKCJCb2R5bGVzcyBlbnVtIik7Ci0gICAgcmV0LnZhbHVlcyA9IE9i
amVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJsaXN0Il0pKHRv
a2VuaXNlciwgeworICAgIHJldC52YWx1ZXMgPSAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMF9fLmxpc3QpKHRva2VuaXNlciwgewogICAgICAgcGFyc2VyOiBFbnVtVmFs
dWUucGFyc2UsCiAgICAgICBhbGxvd0RhbmdsZXI6IHRydWUsCi0gICAgICBsaXN0TmFtZTogImVu
dW1lcmF0aW9uIgorICAgICAgbGlzdE5hbWU6ICJlbnVtZXJhdGlvbiIsCiAgICAgfSk7Ci0gICAg
aWYgKHRva2VuaXNlci5wcm9iZSgic3RyaW5nIikpIHsKKyAgICBpZiAodG9rZW5pc2VyLnByb2Jl
VHlwZSgic3RyaW5nIikpIHsKICAgICAgIHRva2VuaXNlci5lcnJvcigiTm8gY29tbWEgYmV0d2Vl
biBlbnVtIHZhbHVlcyIpOwogICAgIH0KLSAgICB0b2tlbnMuY2xvc2UgPSB0b2tlbmlzZXIuY29u
c3VtZSgifSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW5leHBlY3RlZCB2YWx1ZSBpbiBlbnVtIik7
CisgICAgdG9rZW5zLmNsb3NlID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCJ9IikgfHwgdG9r
ZW5pc2VyLmVycm9yKCJVbmV4cGVjdGVkIHZhbHVlIGluIGVudW0iKTsKICAgICBpZiAoIXJldC52
YWx1ZXMubGVuZ3RoKSB7CiAgICAgICB0b2tlbmlzZXIuZXJyb3IoIk5vIHZhbHVlIGluIGVudW0i
KTsKICAgICB9Ci0gICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsi
KSB8fCB0b2tlbmlzZXIuZXJyb3IoIk5vIHNlbWljb2xvbiBhZnRlciBlbnVtIik7CisgICAgdG9r
ZW5zLnRlcm1pbmF0aW9uID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwgdG9rZW5p
c2VyLmVycm9yKCJObyBzZW1pY29sb24gYWZ0ZXIgZW51bSIpOwogICAgIHJldHVybiByZXQudGhp
czsKICAgfQogCkBAIC0xOTI0LDE4ICsyMjk5LDM1IEBAIGNsYXNzIEVudW0gZXh0ZW5kcyBfYmFz
ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJCYXNlIl0gewogICAgIHJldHVybiAi
ZW51bSI7CiAgIH0KICAgZ2V0IG5hbWUoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5u
YW1lLnZhbHVlKTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfXy51bmVzY2FwZSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7CisgIH0KKworICAv
KiogQHBhcmFtIHtpbXBvcnQoIi4uL3dyaXRlci5qcyIpLldyaXRlcn0gdyAqLworICB3cml0ZSh3
KSB7CisgICAgcmV0dXJuIHcudHMuZGVmaW5pdGlvbigKKyAgICAgIHcudHMud3JhcChbCisgICAg
ICAgIHRoaXMuZXh0QXR0cnMud3JpdGUodyksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMu
YmFzZSksCisgICAgICAgIHcubmFtZV90b2tlbih0aGlzLnRva2Vucy5uYW1lLCB7IGRhdGE6IHRo
aXMgfSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMub3BlbiksCisgICAgICAgIHcudHMu
d3JhcCh0aGlzLnZhbHVlcy5tYXAoKHYpID0+IHYud3JpdGUodykpKSwKKyAgICAgICAgdy50b2tl
bih0aGlzLnRva2Vucy5jbG9zZSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMudGVybWlu
YXRpb24pLAorICAgICAgXSksCisgICAgICB7IGRhdGE6IHRoaXMgfQorICAgICk7CiAgIH0KIH0K
IAogCiAvKioqLyB9KSwKIC8qIDE2ICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBh
Y2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dl
YnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tf
cmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihf
X3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dl
YnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkluY2x1ZGVzIiwgZnVuY3Rp
b24oKSB7IHJldHVybiBJbmNsdWRlczsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBh
Y2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBvcnQg
Ki8gICAiSW5jbHVkZXMiOiAoKSA9PiAoLyogYmluZGluZyAqLyBJbmNsdWRlcykKKy8qIGhhcm1v
bnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOwogLyogaGFy
bW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwogLy8gQHRzLWNoZWNrCkBAIC0xOTQzLDEyICsy
MzM1LDEyIEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAog
CiAKLWNsYXNzIEluY2x1ZGVzIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfX1siQmFzZSJdIHsKK2NsYXNzIEluY2x1ZGVzIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfXy5CYXNlIHsKICAgLyoqCiAgICAqIEBwYXJhbSB7aW1wb3J0
KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgogICAgKi8KICAgc3RhdGljIHBh
cnNlKHRva2VuaXNlcikgewotICAgIGNvbnN0IHRhcmdldCA9IHRva2VuaXNlci5jb25zdW1lKCJp
ZGVudGlmaWVyIik7CisgICAgY29uc3QgdGFyZ2V0ID0gdG9rZW5pc2VyLmNvbnN1bWVUeXBlKCJp
ZGVudGlmaWVyIik7CiAgICAgaWYgKCF0YXJnZXQpIHsKICAgICAgIHJldHVybjsKICAgICB9CkBA
IC0xOTU4LDggKzIzNTAsMTIgQEAgY2xhc3MgSW5jbHVkZXMgZXh0ZW5kcyBfYmFzZV9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgICAgdG9rZW5pc2VyLnVuY29u
c3VtZSh0YXJnZXQuaW5kZXgpOwogICAgICAgcmV0dXJuOwogICAgIH0KLSAgICB0b2tlbnMubWl4
aW4gPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIpIHx8IHRva2VuaXNlci5lcnJvcigi
SW5jb21wbGV0ZSBpbmNsdWRlcyBzdGF0ZW1lbnQiKTsKLSAgICB0b2tlbnMudGVybWluYXRpb24g
PSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRva2VuaXNlci5lcnJvcigiTm8gdGVybWluYXRp
bmcgOyBmb3IgaW5jbHVkZXMgc3RhdGVtZW50Iik7CisgICAgdG9rZW5zLm1peGluID0KKyAgICAg
IHRva2VuaXNlci5jb25zdW1lVHlwZSgiaWRlbnRpZmllciIpIHx8CisgICAgICB0b2tlbmlzZXIu
ZXJyb3IoIkluY29tcGxldGUgaW5jbHVkZXMgc3RhdGVtZW50Iik7CisgICAgdG9rZW5zLnRlcm1p
bmF0aW9uID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwKKyAgICAgIHRva2VuaXNl
ci5lcnJvcigiTm8gdGVybWluYXRpbmcgOyBmb3IgaW5jbHVkZXMgc3RhdGVtZW50Iik7CiAgICAg
cmV0dXJuIG5ldyBJbmNsdWRlcyh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0p
OwogICB9CiAKQEAgLTE5NjcsNDIgKzIzNjMsNjMgQEAgY2xhc3MgSW5jbHVkZXMgZXh0ZW5kcyBf
YmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgIHJldHVy
biAiaW5jbHVkZXMiOwogICB9CiAgIGdldCB0YXJnZXQoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChf
aGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJdKSh0aGlz
LnRva2Vucy50YXJnZXQudmFsdWUpOworICAgIHJldHVybiAoMCxfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fLnVuZXNjYXBlKSh0aGlzLnRva2Vucy50YXJnZXQudmFsdWUp
OwogICB9CiAgIGdldCBpbmNsdWRlcygpIHsKLSAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLm1p
eGluLnZhbHVlKTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzFfXy51bmVzY2FwZSkodGhpcy50b2tlbnMubWl4aW4udmFsdWUpOworICB9CisKKyAg
LyoqIEBwYXJhbSB7aW1wb3J0KCIuLi93cml0ZXIuanMiKS5Xcml0ZXJ9IHcgKi8KKyAgd3JpdGUo
dykgeworICAgIHJldHVybiB3LnRzLmRlZmluaXRpb24oCisgICAgICB3LnRzLndyYXAoWworICAg
ICAgICB0aGlzLmV4dEF0dHJzLndyaXRlKHcpLAorICAgICAgICB3LnJlZmVyZW5jZV90b2tlbih0
aGlzLnRva2Vucy50YXJnZXQsIHRoaXMpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLmlu
Y2x1ZGVzKSwKKyAgICAgICAgdy5yZWZlcmVuY2VfdG9rZW4odGhpcy50b2tlbnMubWl4aW4sIHRo
aXMpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAgICAgIF0p
LAorICAgICAgeyBkYXRhOiB0aGlzIH0KKyAgICApOwogICB9CiB9CiAKIAogLyoqKi8gfSksCiAv
KiAxNyAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193
ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19t
b2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewog
Ci0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNf
Xyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5k
KF9fd2VicGFja19leHBvcnRzX18sICJUeXBlZGVmIiwgZnVuY3Rpb24oKSB7IHJldHVybiBUeXBl
ZGVmOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dl
YnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJUeXBlZGVmIjogKCkg
PT4gKC8qIGJpbmRpbmcgKi8gVHlwZWRlZikKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyog
aGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9o
ZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWly
ZV9fKDQpOwogCiAKIAotY2xhc3MgVHlwZWRlZiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CitjbGFzcyBUeXBlZGVmIGV4dGVuZHMgX2Jhc2Vf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5CYXNlIHsKICAgLyoqCiAgICAqIEBwYXJh
bSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgogICAgKi8KICAg
c3RhdGljIHBhcnNlKHRva2VuaXNlcikgewogICAgIC8qKiBAdHlwZSB7QmFzZVsidG9rZW5zIl19
ICovCiAgICAgY29uc3QgdG9rZW5zID0ge307Ci0gICAgY29uc3QgcmV0ID0gT2JqZWN0KF9oZWxw
ZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImF1dG9QYXJlbnRlciJdKShuZXcg
VHlwZWRlZih7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pKTsKKyAgICBjb25z
dCByZXQgPSAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmF1dG9Q
YXJlbnRlcikobmV3IFR5cGVkZWYoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9
KSk7CiAgICAgdG9rZW5zLmJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgidHlwZWRlZiIpOwogICAg
IGlmICghdG9rZW5zLmJhc2UpIHsKICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgcmV0LmlkbFR5
cGUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidHlw
ZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMiXSkodG9rZW5pc2VyLCAidHlwZWRlZi10eXBlIikg
fHwgdG9rZW5pc2VyLmVycm9yKCJUeXBlZGVmIGxhY2tzIGEgdHlwZSIpOwotICAgIHRva2Vucy5u
YW1lID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJyb3Io
IlR5cGVkZWYgbGFja3MgYSBuYW1lIik7CisgICAgcmV0LmlkbFR5cGUgPQorICAgICAgKDAsX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50eXBlX3dpdGhfZXh0ZW5kZWRf
YXR0cmlidXRlcykodG9rZW5pc2VyLCAidHlwZWRlZi10eXBlIikgfHwKKyAgICAgIHRva2VuaXNl
ci5lcnJvcigiVHlwZWRlZiBsYWNrcyBhIHR5cGUiKTsKKyAgICB0b2tlbnMubmFtZSA9CisgICAg
ICB0b2tlbmlzZXIuY29uc3VtZVR5cGUoImlkZW50aWZpZXIiKSB8fAorICAgICAgdG9rZW5pc2Vy
LmVycm9yKCJUeXBlZGVmIGxhY2tzIGEgbmFtZSIpOwogICAgIHRva2VuaXNlci5jdXJyZW50ID0g
cmV0LnRoaXM7Ci0gICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsi
KSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCB0eXBlZGVmLCBleHBlY3RlZCBgO2Ai
KTsKKyAgICB0b2tlbnMudGVybWluYXRpb24gPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIjsi
KSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgdHlwZWRlZiwgZXhwZWN0
ZWQgYDtgIik7CiAgICAgcmV0dXJuIHJldC50aGlzOwogICB9CiAKQEAgLTIwMTAsNDIgKzI0Mjcs
NjggQEAgY2xhc3MgVHlwZWRlZiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX19bIkJhc2UiXSB7CiAgICAgcmV0dXJuICJ0eXBlZGVmIjsKICAgfQogICBnZXQgbmFt
ZSgpIHsKLSAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8xX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLm5hbWUudmFsdWUpOworICAgIHJldHVy
biAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVuZXNjYXBlKSh0
aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKICAgfQogCiAgICp2YWxpZGF0ZShkZWZzKSB7CiAgICAg
eWllbGQqIHRoaXMuaWRsVHlwZS52YWxpZGF0ZShkZWZzKTsKICAgfQorCisgIC8qKiBAcGFyYW0g
e2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyfSB3ICovCisgIHdyaXRlKHcpIHsKKyAgICBy
ZXR1cm4gdy50cy5kZWZpbml0aW9uKAorICAgICAgdy50cy53cmFwKFsKKyAgICAgICAgdGhpcy5l
eHRBdHRycy53cml0ZSh3KSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5iYXNlKSwKKyAg
ICAgICAgdy50cy50eXBlKHRoaXMuaWRsVHlwZS53cml0ZSh3KSksCisgICAgICAgIHcubmFtZV90
b2tlbih0aGlzLnRva2Vucy5uYW1lLCB7IGRhdGE6IHRoaXMgfSksCisgICAgICAgIHcudG9rZW4o
dGhpcy50b2tlbnMudGVybWluYXRpb24pLAorICAgICAgXSksCisgICAgICB7IGRhdGE6IHRoaXMg
fQorICAgICk7CisgIH0KIH0KIAogCiAvKioqLyB9KSwKIC8qIDE4ICovCi0vKioqLyAoZnVuY3Rp
b24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cisv
KioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhw
b3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2Vi
cGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0
IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywg
IkNhbGxiYWNrRnVuY3Rpb24iLCBmdW5jdGlvbigpIHsgcmV0dXJuIENhbGxiYWNrRnVuY3Rpb247
IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFj
a19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIkNhbGxiYWNrRnVuY3Rpb24i
OiAoKSA9PiAoLyogYmluZGluZyAqLyBDYWxsYmFja0Z1bmN0aW9uKQorLyogaGFybW9ueSBleHBv
cnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CiAvKiBoYXJtb255IGlt
cG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9f
d2VicGFja19yZXF1aXJlX18oNCk7CiAKIAogCi1jbGFzcyBDYWxsYmFja0Z1bmN0aW9uIGV4dGVu
ZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKK2NsYXNz
IENhbGxiYWNrRnVuY3Rpb24gZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fLkJhc2UgewogICAvKioKICAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlci5q
cyIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCiAgICAqLwogICBzdGF0aWMgcGFyc2UodG9rZW5pc2Vy
LCBiYXNlKSB7CiAgICAgY29uc3QgdG9rZW5zID0geyBiYXNlIH07Ci0gICAgY29uc3QgcmV0ID0g
T2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImF1dG9QYXJl
bnRlciJdKShuZXcgQ2FsbGJhY2tGdW5jdGlvbih7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwg
dG9rZW5zIH0pKTsKLSAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlm
aWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKCJDYWxsYmFjayBsYWNrcyBhIG5hbWUiKTsKKyAgICBj
b25zdCByZXQgPSAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmF1
dG9QYXJlbnRlcikoCisgICAgICBuZXcgQ2FsbGJhY2tGdW5jdGlvbih7IHNvdXJjZTogdG9rZW5p
c2VyLnNvdXJjZSwgdG9rZW5zIH0pCisgICAgKTsKKyAgICB0b2tlbnMubmFtZSA9CisgICAgICB0
b2tlbmlzZXIuY29uc3VtZVR5cGUoImlkZW50aWZpZXIiKSB8fAorICAgICAgdG9rZW5pc2VyLmVy
cm9yKCJDYWxsYmFjayBsYWNrcyBhIG5hbWUiKTsKICAgICB0b2tlbmlzZXIuY3VycmVudCA9IHJl
dC50aGlzOwotICAgIHRva2Vucy5hc3NpZ24gPSB0b2tlbmlzZXIuY29uc3VtZSgiPSIpIHx8IHRv
a2VuaXNlci5lcnJvcigiQ2FsbGJhY2sgbGFja3MgYW4gYXNzaWdubWVudCIpOwotICAgIHJldC5p
ZGxUeXBlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19b
InJldHVybl90eXBlIl0pKHRva2VuaXNlcikgfHwgdG9rZW5pc2VyLmVycm9yKCJDYWxsYmFjayBs
YWNrcyBhIHJldHVybiB0eXBlIik7Ci0gICAgdG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3Vt
ZSgiKCIpIHx8IHRva2VuaXNlci5lcnJvcigiQ2FsbGJhY2sgbGFja3MgcGFyZW50aGVzZXMgZm9y
IGFyZ3VtZW50cyIpOwotICAgIHJldC5hcmd1bWVudHMgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siYXJndW1lbnRfbGlzdCJdKSh0b2tlbmlzZXIpOwot
ICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCIpIikgfHwgdG9rZW5pc2VyLmVy
cm9yKCJVbnRlcm1pbmF0ZWQgY2FsbGJhY2siKTsKLSAgICB0b2tlbnMudGVybWluYXRpb24gPSB0
b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGNh
bGxiYWNrLCBleHBlY3RlZCBgO2AiKTsKKyAgICB0b2tlbnMuYXNzaWduID0KKyAgICAgIHRva2Vu
aXNlci5jb25zdW1lKCI9IikgfHwgdG9rZW5pc2VyLmVycm9yKCJDYWxsYmFjayBsYWNrcyBhbiBh
c3NpZ25tZW50Iik7CisgICAgcmV0LmlkbFR5cGUgPQorICAgICAgKDAsX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5yZXR1cm5fdHlwZSkodG9rZW5pc2VyKSB8fCB0b2tl
bmlzZXIuZXJyb3IoIkNhbGxiYWNrIGxhY2tzIGEgcmV0dXJuIHR5cGUiKTsKKyAgICB0b2tlbnMu
b3BlbiA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiKCIpIHx8CisgICAgICB0b2tlbmlzZXIu
ZXJyb3IoIkNhbGxiYWNrIGxhY2tzIHBhcmVudGhlc2VzIGZvciBhcmd1bWVudHMiKTsKKyAgICBy
ZXQuYXJndW1lbnRzID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFf
Xy5hcmd1bWVudF9saXN0KSh0b2tlbmlzZXIpOworICAgIHRva2Vucy5jbG9zZSA9CisgICAgICB0
b2tlbmlzZXIuY29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGNh
bGxiYWNrIik7CisgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0KKyAgICAgIHRva2VuaXNlci5jb25z
dW1lKCI7IikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGNhbGxiYWNr
LCBleHBlY3RlZCBgO2AiKTsKICAgICByZXR1cm4gcmV0LnRoaXM7CiAgIH0KIApAQCAtMjA1Mywy
MyArMjQ5Niw0MiBAQCBjbGFzcyBDYWxsYmFja0Z1bmN0aW9uIGV4dGVuZHMgX2Jhc2VfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICByZXR1cm4gImNhbGxiYWNr
IjsKICAgfQogICBnZXQgbmFtZSgpIHsKLSAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLm5hbWUu
dmFsdWUpOworICAgIHJldHVybiAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMV9fLnVuZXNjYXBlKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKICAgfQogCiAgICp2YWxp
ZGF0ZShkZWZzKSB7CiAgICAgeWllbGQqIHRoaXMuZXh0QXR0cnMudmFsaWRhdGUoZGVmcyk7CiAg
ICAgeWllbGQqIHRoaXMuaWRsVHlwZS52YWxpZGF0ZShkZWZzKTsKICAgfQorCisgIC8qKiBAcGFy
YW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyfSB3ICovCisgIHdyaXRlKHcpIHsKKyAg
ICByZXR1cm4gdy50cy5kZWZpbml0aW9uKAorICAgICAgdy50cy53cmFwKFsKKyAgICAgICAgdGhp
cy5leHRBdHRycy53cml0ZSh3KSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5iYXNlKSwK
KyAgICAgICAgdy5uYW1lX3Rva2VuKHRoaXMudG9rZW5zLm5hbWUsIHsgZGF0YTogdGhpcyB9KSwK
KyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5hc3NpZ24pLAorICAgICAgICB3LnRzLnR5cGUo
dGhpcy5pZGxUeXBlLndyaXRlKHcpKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5vcGVu
KSwKKyAgICAgICAgLi4udGhpcy5hcmd1bWVudHMubWFwKChhcmcpID0+IGFyZy53cml0ZSh3KSks
CisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuY2xvc2UpLAorICAgICAgICB3LnRva2VuKHRo
aXMudG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAgICAgIF0pLAorICAgICAgeyBkYXRhOiB0aGlzIH0K
KyAgICApOworICB9CiB9CiAKIAogLyoqKi8gfSksCiAvKiAxOSAqLwotLyoqKi8gKGZ1bmN0aW9u
KG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoq
Ki8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9y
dHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBh
Y2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAo
YmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJJ
bnRlcmZhY2UiLCBmdW5jdGlvbigpIHsgcmV0dXJuIEludGVyZmFjZTsgfSk7CisvKiBoYXJtb255
IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgewor
LyogaGFybW9ueSBleHBvcnQgKi8gICAiSW50ZXJmYWNlIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8g
SW50ZXJmYWNlKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAq
LyB2YXIgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJw
YWNrX3JlcXVpcmVfXygyMCk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2F0dHJpYnV0ZV9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNCk7
CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMyk7CkBAIC0yMDk5LDMxICsyNTYx
LDM2IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIGZ1bmN0
aW9uIHN0YXRpY19tZW1iZXIodG9rZW5pc2VyKSB7CiAgIGNvbnN0IHNwZWNpYWwgPSB0b2tlbmlz
ZXIuY29uc3VtZSgic3RhdGljIik7CiAgIGlmICghc3BlY2lhbCkgcmV0dXJuOwotICBjb25zdCBt
ZW1iZXIgPSBfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkF0dHJp
YnV0ZSJdLnBhcnNlKHRva2VuaXNlciwgeyBzcGVjaWFsIH0pIHx8Ci0gICAgX29wZXJhdGlvbl9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJPcGVyYXRpb24iXS5wYXJzZSh0b2tlbmlz
ZXIsIHsgc3BlY2lhbCB9KSB8fAorICBjb25zdCBtZW1iZXIgPQorICAgIF9hdHRyaWJ1dGVfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5BdHRyaWJ1dGUucGFyc2UodG9rZW5pc2VyLCB7
IHNwZWNpYWwgfSkgfHwKKyAgICBfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8yX18uT3BlcmF0aW9uLnBhcnNlKHRva2VuaXNlciwgeyBzcGVjaWFsIH0pIHx8CiAgICAgdG9r
ZW5pc2VyLmVycm9yKCJObyBib2R5IGluIHN0YXRpYyBtZW1iZXIiKTsKICAgcmV0dXJuIG1lbWJl
cjsKIH0KIAotY2xhc3MgSW50ZXJmYWNlIGV4dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXSB7CitjbGFzcyBJbnRlcmZhY2UgZXh0ZW5k
cyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQ29udGFpbmVyIHsK
ICAgLyoqCiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRv
a2VuaXNlcgogICAgKi8KICAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgYmFzZSwgeyBwYXJ0aWFs
ID0gbnVsbCB9ID0ge30pIHsKICAgICBjb25zdCB0b2tlbnMgPSB7IHBhcnRpYWwsIGJhc2UgfTsK
LSAgICByZXR1cm4gX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJD
b250YWluZXIiXS5wYXJzZSh0b2tlbmlzZXIsIG5ldyBJbnRlcmZhY2UoeyBzb3VyY2U6IHRva2Vu
aXNlci5zb3VyY2UsIHRva2VucyB9KSwgewotICAgICAgdHlwZTogImludGVyZmFjZSIsCi0gICAg
ICBpbmhlcml0YWJsZTogIXBhcnRpYWwsCi0gICAgICBhbGxvd2VkTWVtYmVyczogWwotICAgICAg
ICBbX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bIkNvbnN0YW50Il0u
cGFyc2VdLAotICAgICAgICBbX2NvbnN0cnVjdG9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV84X19bIkNvbnN0cnVjdG9yIl0ucGFyc2VdLAotICAgICAgICBbc3RhdGljX21lbWJlcl0sCi0g
ICAgICAgIFtfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fWyJzdHJpbmdp
ZmllciJdXSwKLSAgICAgICAgW19pdGVyYWJsZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
NF9fWyJJdGVyYWJsZUxpa2UiXS5wYXJzZV0sCi0gICAgICAgIFtfYXR0cmlidXRlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkF0dHJpYnV0ZSJdLnBhcnNlXSwKLSAgICAgICAgW19v
cGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siT3BlcmF0aW9uIl0ucGFy
c2VdCi0gICAgICBdCi0gICAgfSk7CisgICAgcmV0dXJuIF9jb250YWluZXJfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfXy5Db250YWluZXIucGFyc2UoCisgICAgICB0b2tlbmlzZXIsCisg
ICAgICBuZXcgSW50ZXJmYWNlKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSks
CisgICAgICB7CisgICAgICAgIHR5cGU6ICJpbnRlcmZhY2UiLAorICAgICAgICBpbmhlcml0YWJs
ZTogIXBhcnRpYWwsCisgICAgICAgIGFsbG93ZWRNZW1iZXJzOiBbCisgICAgICAgICAgW19jb25z
dGFudF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLkNvbnN0YW50LnBhcnNlXSwKKyAg
ICAgICAgICBbX2NvbnN0cnVjdG9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uQ29u
c3RydWN0b3IucGFyc2VdLAorICAgICAgICAgIFtzdGF0aWNfbWVtYmVyXSwKKyAgICAgICAgICBb
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5zdHJpbmdpZmllcl0sCisg
ICAgICAgICAgW19pdGVyYWJsZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLkl0ZXJh
YmxlTGlrZS5wYXJzZV0sCisgICAgICAgICAgW19hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzFfXy5BdHRyaWJ1dGUucGFyc2VdLAorICAgICAgICAgIFtfb3BlcmF0aW9uX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uT3BlcmF0aW9uLnBhcnNlXSwKKyAgICAgICAg
XSwKKyAgICAgIH0KKyAgICApOwogICB9CiAKICAgZ2V0IHR5cGUoKSB7CkBAIC0yMTM0LDY2ICsy
NjAxLDEwMCBAQCBjbGFzcyBJbnRlcmZhY2UgZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8wX19bIkNvbnRhaW5lciJdCiAgICAgeWllbGQqIHRoaXMuZXh0QXR0
cnMudmFsaWRhdGUoZGVmcyk7CiAgICAgaWYgKAogICAgICAgIXRoaXMucGFydGlhbCAmJgotICAg
ICAgdGhpcy5leHRBdHRycy5ldmVyeShleHRBdHRyID0+IGV4dEF0dHIubmFtZSAhPT0gIkV4cG9z
ZWQiKSAmJgotICAgICAgdGhpcy5leHRBdHRycy5ldmVyeShleHRBdHRyID0+IGV4dEF0dHIubmFt
ZSAhPT0gIkxlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0IikKKyAgICAgIHRoaXMuZXh0QXR0cnMuZXZl
cnkoKGV4dEF0dHIpID0+IGV4dEF0dHIubmFtZSAhPT0gIkV4cG9zZWQiKQogICAgICkgewogICAg
ICAgY29uc3QgbWVzc2FnZSA9IGBJbnRlcmZhY2VzIG11c3QgaGF2ZSBcYFtFeHBvc2VkXVxgIGV4
dGVuZGVkIGF0dHJpYnV0ZS4gXAogVG8gZml4LCBhZGQsIGZvciBleGFtcGxlLCBcYFtFeHBvc2Vk
PVdpbmRvd11cYC4gUGxlYXNlIGFsc28gY29uc2lkZXIgY2FyZWZ1bGx5IFwKIGlmIHlvdXIgaW50
ZXJmYWNlIHNob3VsZCBhbHNvIGJlIGV4cG9zZWQgaW4gYSBXb3JrZXIgc2NvcGUuIFJlZmVyIHRv
IHRoZSBcCiBbV2ViSURMIHNwZWMgc2VjdGlvbiBvbiBFeHBvc2VkXShodHRwczovL2hleWNhbS5n
aXRodWIuaW8vd2ViaWRsLyNFeHBvc2VkKSBcCiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gOwotICAg
ICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fWyJ2
YWxpZGF0aW9uRXJyb3IiXSkodGhpcy50b2tlbnMubmFtZSwgdGhpcywgInJlcXVpcmUtZXhwb3Nl
ZCIsIG1lc3NhZ2UsIHsKLSAgICAgICAgYXV0b2ZpeDogT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV81X19bImF1dG9maXhBZGRFeHBvc2VkV2luZG93Il0pKHRoaXMp
Ci0gICAgICB9KTsKKyAgICAgIHlpZWxkICgwLF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfNl9fLnZhbGlkYXRpb25FcnJvcikoCisgICAgICAgIHRoaXMudG9rZW5zLm5hbWUsCisg
ICAgICAgIHRoaXMsCisgICAgICAgICJyZXF1aXJlLWV4cG9zZWQiLAorICAgICAgICBtZXNzYWdl
LAorICAgICAgICB7CisgICAgICAgICAgYXV0b2ZpeDogKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzVfXy5hdXRvZml4QWRkRXhwb3NlZFdpbmRvdykodGhpcyksCisgICAg
ICAgIH0KKyAgICAgICk7CiAgICAgfQotICAgIGNvbnN0IG9sZENvbnN0cnVjdG9ycyA9IHRoaXMu
ZXh0QXR0cnMuZmlsdGVyKGV4dEF0dHIgPT4gZXh0QXR0ci5uYW1lID09PSAiQ29uc3RydWN0b3Ii
KTsKKyAgICBjb25zdCBvbGRDb25zdHJ1Y3RvcnMgPSB0aGlzLmV4dEF0dHJzLmZpbHRlcigKKyAg
ICAgIChleHRBdHRyKSA9PiBleHRBdHRyLm5hbWUgPT09ICJDb25zdHJ1Y3RvciIKKyAgICApOwog
ICAgIGZvciAoY29uc3QgY29uc3RydWN0b3Igb2Ygb2xkQ29uc3RydWN0b3JzKSB7CiAgICAgICBj
b25zdCBtZXNzYWdlID0gYENvbnN0cnVjdG9ycyBzaG91bGQgbm93IGJlIHJlcHJlc2VudGVkIGFz
IGEgXGBjb25zdHJ1Y3RvcigpXGAgb3BlcmF0aW9uIG9uIHRoZSBpbnRlcmZhY2UgXAogaW5zdGVh
ZCBvZiBcYFtDb25zdHJ1Y3Rvcl1cYCBleHRlbmRlZCBhdHRyaWJ1dGUuIFJlZmVyIHRvIHRoZSBc
CiBbV2ViSURMIHNwZWMgc2VjdGlvbiBvbiBjb25zdHJ1Y3RvciBvcGVyYXRpb25zXShodHRwczov
L2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNpZGwtY29uc3RydWN0b3JzKSBcCiBmb3IgbW9yZSBp
bmZvcm1hdGlvbi5gOwotICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfNl9fWyJ2YWxpZGF0aW9uRXJyb3IiXSkoY29uc3RydWN0b3IudG9rZW5zLm5h
bWUsIHRoaXMsICJjb25zdHJ1Y3Rvci1tZW1iZXIiLCBtZXNzYWdlLCB7Ci0gICAgICAgIGF1dG9m
aXg6IGF1dG9maXhDb25zdHJ1Y3Rvcih0aGlzLCBjb25zdHJ1Y3RvcikKLSAgICAgIH0pOworICAg
ICAgeWllbGQgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18udmFsaWRh
dGlvbkVycm9yKSgKKyAgICAgICAgY29uc3RydWN0b3IudG9rZW5zLm5hbWUsCisgICAgICAgIHRo
aXMsCisgICAgICAgICJjb25zdHJ1Y3Rvci1tZW1iZXIiLAorICAgICAgICBtZXNzYWdlLAorICAg
ICAgICB7CisgICAgICAgICAgYXV0b2ZpeDogYXV0b2ZpeENvbnN0cnVjdG9yKHRoaXMsIGNvbnN0
cnVjdG9yKSwKKyAgICAgICAgfQorICAgICAgKTsKICAgICB9CiAKLSAgICBjb25zdCBpc0dsb2Jh
bCA9IHRoaXMuZXh0QXR0cnMuc29tZShleHRBdHRyID0+IGV4dEF0dHIubmFtZSA9PT0gIkdsb2Jh
bCIpOworICAgIGNvbnN0IGlzR2xvYmFsID0gdGhpcy5leHRBdHRycy5zb21lKChleHRBdHRyKSA9
PiBleHRBdHRyLm5hbWUgPT09ICJHbG9iYWwiKTsKICAgICBpZiAoaXNHbG9iYWwpIHsKLSAgICAg
IGNvbnN0IGZhY3RvcnlGdW5jdGlvbnMgPSB0aGlzLmV4dEF0dHJzLmZpbHRlcihleHRBdHRyID0+
IGV4dEF0dHIubmFtZSA9PT0gIkxlZ2FjeUZhY3RvcnlGdW5jdGlvbiIpOworICAgICAgY29uc3Qg
ZmFjdG9yeUZ1bmN0aW9ucyA9IHRoaXMuZXh0QXR0cnMuZmlsdGVyKAorICAgICAgICAoZXh0QXR0
cikgPT4gZXh0QXR0ci5uYW1lID09PSAiTGVnYWN5RmFjdG9yeUZ1bmN0aW9uIgorICAgICAgKTsK
ICAgICAgIGZvciAoY29uc3QgbmFtZWQgb2YgZmFjdG9yeUZ1bmN0aW9ucykgewogICAgICAgICBj
b25zdCBtZXNzYWdlID0gYEludGVyZmFjZXMgbWFya2VkIGFzIFxgW0dsb2JhbF1cYCBjYW5ub3Qg
aGF2ZSBmYWN0b3J5IGZ1bmN0aW9ucy5gOwotICAgICAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19bInZhbGlkYXRpb25FcnJvciJdKShuYW1lZC50
b2tlbnMubmFtZSwgdGhpcywgIm5vLWNvbnN0cnVjdGlibGUtZ2xvYmFsIiwgbWVzc2FnZSk7Cisg
ICAgICAgIHlpZWxkICgwLF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLnZh
bGlkYXRpb25FcnJvcikoCisgICAgICAgICAgbmFtZWQudG9rZW5zLm5hbWUsCisgICAgICAgICAg
dGhpcywKKyAgICAgICAgICAibm8tY29uc3RydWN0aWJsZS1nbG9iYWwiLAorICAgICAgICAgIG1l
c3NhZ2UKKyAgICAgICAgKTsKICAgICAgIH0KIAotICAgICAgY29uc3QgY29uc3RydWN0b3JzID0g
dGhpcy5tZW1iZXJzLmZpbHRlcihtZW1iZXIgPT4gbWVtYmVyLnR5cGUgPT09ICJjb25zdHJ1Y3Rv
ciIpOworICAgICAgY29uc3QgY29uc3RydWN0b3JzID0gdGhpcy5tZW1iZXJzLmZpbHRlcigKKyAg
ICAgICAgKG1lbWJlcikgPT4gbWVtYmVyLnR5cGUgPT09ICJjb25zdHJ1Y3RvciIKKyAgICAgICk7
CiAgICAgICBmb3IgKGNvbnN0IG5hbWVkIG9mIGNvbnN0cnVjdG9ycykgewogICAgICAgICBjb25z
dCBtZXNzYWdlID0gYEludGVyZmFjZXMgbWFya2VkIGFzIFxgW0dsb2JhbF1cYCBjYW5ub3QgaGF2
ZSBjb25zdHJ1Y3RvcnMuYDsKLSAgICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfNl9fWyJ2YWxpZGF0aW9uRXJyb3IiXSkobmFtZWQudG9rZW5zLmJh
c2UsIHRoaXMsICJuby1jb25zdHJ1Y3RpYmxlLWdsb2JhbCIsIG1lc3NhZ2UpOworICAgICAgICB5
aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy52YWxpZGF0aW9u
RXJyb3IpKAorICAgICAgICAgIG5hbWVkLnRva2Vucy5iYXNlLAorICAgICAgICAgIHRoaXMsCisg
ICAgICAgICAgIm5vLWNvbnN0cnVjdGlibGUtZ2xvYmFsIiwKKyAgICAgICAgICBtZXNzYWdlCisg
ICAgICAgICk7CiAgICAgICB9CiAgICAgfQogCiAgICAgeWllbGQqIHN1cGVyLnZhbGlkYXRlKGRl
ZnMpOwogICAgIGlmICghdGhpcy5wYXJ0aWFsKSB7Ci0gICAgICB5aWVsZCogT2JqZWN0KF92YWxp
ZGF0b3JzX2ludGVyZmFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fWyJjaGVja0lu
dGVyZmFjZU1lbWJlckR1cGxpY2F0aW9uIl0pKGRlZnMsIHRoaXMpOworICAgICAgeWllbGQqICgw
LF92YWxpZGF0b3JzX2ludGVyZmFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fLmNo
ZWNrSW50ZXJmYWNlTWVtYmVyRHVwbGljYXRpb24pKGRlZnMsIHRoaXMpOwogICAgIH0KICAgfQog
fQogCiBmdW5jdGlvbiBhdXRvZml4Q29uc3RydWN0b3IoaW50ZXJmYWNlRGVmLCBjb25zdHJ1Y3Rv
ckV4dEF0dHIpIHsKLSAgaW50ZXJmYWNlRGVmID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV81X19bImF1dG9QYXJlbnRlciJdKShpbnRlcmZhY2VEZWYpOworICBp
bnRlcmZhY2VEZWYgPSAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9f
LmF1dG9QYXJlbnRlcikoaW50ZXJmYWNlRGVmKTsKICAgcmV0dXJuICgpID0+IHsKLSAgICBjb25z
dCBpbmRlbnRhdGlvbiA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfNV9fWyJnZXRMYXN0SW5kZW50YXRpb24iXSkoaW50ZXJmYWNlRGVmLmV4dEF0dHJzLnRva2Vu
cy5vcGVuLnRyaXZpYSk7Ci0gICAgY29uc3QgbWVtYmVySW5kZW50ID0gaW50ZXJmYWNlRGVmLm1l
bWJlcnMubGVuZ3RoID8KLSAgICAgIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfNV9fWyJnZXRMYXN0SW5kZW50YXRpb24iXSkoT2JqZWN0KF9oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19bImdldEZpcnN0VG9rZW4iXSkoaW50ZXJmYWNlRGVm
Lm1lbWJlcnNbMF0pLnRyaXZpYSkgOgotICAgICAgT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV81X19bImdldE1lbWJlckluZGVudGF0aW9uIl0pKGluZGVudGF0aW9u
KTsKLSAgICBjb25zdCBjb25zdHJ1Y3Rvck9wID0gX2NvbnN0cnVjdG9yX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV84X19bIkNvbnN0cnVjdG9yIl0ucGFyc2UobmV3IF90b2tlbmlzZXJfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfX1siVG9rZW5pc2VyIl0oYFxuJHttZW1iZXJJbmRl
bnR9Y29uc3RydWN0b3IoKTtgKSk7Ci0gICAgY29uc3RydWN0b3JPcC5leHRBdHRycyA9IG5ldyBf
ZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfX1siRXh0
ZW5kZWRBdHRyaWJ1dGVzIl0oe30pOwotICAgIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfNV9fWyJhdXRvUGFyZW50ZXIiXSkoY29uc3RydWN0b3JPcCkuYXJndW1l
bnRzID0gY29uc3RydWN0b3JFeHRBdHRyLmFyZ3VtZW50czsKLQotICAgIGNvbnN0IGV4aXN0aW5n
SW5kZXggPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1si
ZmluZExhc3RJbmRleCJdKShpbnRlcmZhY2VEZWYubWVtYmVycywgbSA9PiBtLnR5cGUgPT09ICJj
b25zdHJ1Y3RvciIpOworICAgIGNvbnN0IGluZGVudGF0aW9uID0gKDAsX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRMYXN0SW5kZW50YXRpb24pKAorICAgICAgaW50
ZXJmYWNlRGVmLmV4dEF0dHJzLnRva2Vucy5vcGVuLnRyaXZpYQorICAgICk7CisgICAgY29uc3Qg
bWVtYmVySW5kZW50ID0gaW50ZXJmYWNlRGVmLm1lbWJlcnMubGVuZ3RoCisgICAgICA/ICgwLF9o
ZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0TGFzdEluZGVudGF0aW9u
KSgoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldEZpcnN0VG9r
ZW4pKGludGVyZmFjZURlZi5tZW1iZXJzWzBdKS50cml2aWEpCisgICAgICA6ICgwLF9oZWxwZXJz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0TWVtYmVySW5kZW50YXRpb24pKGlu
ZGVudGF0aW9uKTsKKyAgICBjb25zdCBjb25zdHJ1Y3Rvck9wID0gX2NvbnN0cnVjdG9yX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X18uQ29uc3RydWN0b3IucGFyc2UoCisgICAgICBuZXcg
X3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLlRva2VuaXNlcihgXG4k
e21lbWJlckluZGVudH1jb25zdHJ1Y3RvcigpO2ApCisgICAgKTsKKyAgICBjb25zdHJ1Y3Rvck9w
LmV4dEF0dHJzID0gbmV3IF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xMF9fLkV4dGVuZGVkQXR0cmlidXRlcyh7fSk7CisgICAgKDAsX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5hdXRvUGFyZW50ZXIpKGNvbnN0cnVjdG9yT3Ap
LmFyZ3VtZW50cyA9IGNvbnN0cnVjdG9yRXh0QXR0ci5hcmd1bWVudHM7CisKKyAgICBjb25zdCBl
eGlzdGluZ0luZGV4ID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVf
Xy5maW5kTGFzdEluZGV4KSgKKyAgICAgIGludGVyZmFjZURlZi5tZW1iZXJzLAorICAgICAgKG0p
ID0+IG0udHlwZSA9PT0gImNvbnN0cnVjdG9yIgorICAgICk7CiAgICAgaW50ZXJmYWNlRGVmLm1l
bWJlcnMuc3BsaWNlKGV4aXN0aW5nSW5kZXggKyAxLCAwLCBjb25zdHJ1Y3Rvck9wKTsKIAotICAg
IGNvbnN0IHsgY2xvc2UgfSAgPSBpbnRlcmZhY2VEZWYudG9rZW5zOworICAgIGNvbnN0IHsgY2xv
c2UgfSA9IGludGVyZmFjZURlZi50b2tlbnM7CiAgICAgaWYgKCFjbG9zZS50cml2aWEuaW5jbHVk
ZXMoIlxuIikpIHsKICAgICAgIGNsb3NlLnRyaXZpYSArPSBgXG4ke2luZGVudGF0aW9ufWA7CiAg
ICAgfQpAQCAtMjIxNCwxMSArMjcxNSwxMiBAQCBmdW5jdGlvbiBhdXRvZml4Q29uc3RydWN0b3Io
aW50ZXJmYWNlRGVmLCBjb25zdHJ1Y3RvckV4dEF0dHIpIHsKIAogLyoqKi8gfSksCiAvKiAyMCAq
LwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNr
X3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVf
XywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNl
IHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0v
KiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2Vi
cGFja19leHBvcnRzX18sICJDb250YWluZXIiLCBmdW5jdGlvbigpIHsgcmV0dXJuIENvbnRhaW5l
cjsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJw
YWNrX2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBvcnQgKi8gICAiQ29udGFpbmVyIjogKCkg
PT4gKC8qIGJpbmRpbmcgKi8gQ29udGFpbmVyKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAv
KiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIg
X2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9f
d2VicGFja19yZXF1aXJlX18oOCk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7
CkBAIC0yMjM0LDc5ICsyNzM2LDExOSBAQCBmdW5jdGlvbiBpbmhlcml0YW5jZSh0b2tlbmlzZXIp
IHsKICAgaWYgKCFjb2xvbikgewogICAgIHJldHVybiB7fTsKICAgfQotICBjb25zdCBpbmhlcml0
YW5jZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIikgfHwgdG9rZW5pc2VyLmVycm9y
KCJJbmhlcml0YW5jZSBsYWNrcyBhIHR5cGUiKTsKKyAgY29uc3QgaW5oZXJpdGFuY2UgPQorICAg
IHRva2VuaXNlci5jb25zdW1lVHlwZSgiaWRlbnRpZmllciIpIHx8CisgICAgdG9rZW5pc2VyLmVy
cm9yKCJJbmhlcml0YW5jZSBsYWNrcyBhIHR5cGUiKTsKICAgcmV0dXJuIHsgY29sb24sIGluaGVy
aXRhbmNlIH07CiB9CiAKLWNsYXNzIENvbnRhaW5lciBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7Ci0gICAgLyoqCi0gICAgICogQHRlbXBsYXRl
IFQKLSAgICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW5pc2VyfSB0
b2tlbmlzZXIKLSAgICAgKiBAcGFyYW0ge1R9IGluc3RhbmNlCi0gICAgICogQHBhcmFtIHsqfSBh
cmdzCi0gICAgICovCi0gICAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgaW5zdGFuY2UsIHsgdHlw
ZSwgaW5oZXJpdGFibGUsIGFsbG93ZWRNZW1iZXJzIH0pIHsKLSAgICAgIGNvbnN0IHsgdG9rZW5z
IH0gPSBpbnN0YW5jZTsKLSAgICAgIHRva2Vucy5uYW1lID0gdG9rZW5pc2VyLmNvbnN1bWUoImlk
ZW50aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE1pc3NpbmcgbmFtZSBpbiAke2luc3RhbmNl
LnR5cGV9YCk7Ci0gICAgICB0b2tlbmlzZXIuY3VycmVudCA9IGluc3RhbmNlOwotICAgICAgaW5z
dGFuY2UgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1si
YXV0b1BhcmVudGVyIl0pKGluc3RhbmNlKTsKLSAgICAgIGlmIChpbmhlcml0YWJsZSkgewotICAg
ICAgICBPYmplY3QuYXNzaWduKHRva2VucywgaW5oZXJpdGFuY2UodG9rZW5pc2VyKSk7CitjbGFz
cyBDb250YWluZXIgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
LkJhc2UgeworICAvKioKKyAgICogQHRlbXBsYXRlIFQKKyAgICogQHBhcmFtIHtpbXBvcnQoIi4u
L3Rva2VuaXNlci5qcyIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCisgICAqIEBwYXJhbSB7VH0gaW5z
dGFuY2UKKyAgICogQHBhcmFtIHsqfSBhcmdzCisgICAqLworICBzdGF0aWMgcGFyc2UodG9rZW5p
c2VyLCBpbnN0YW5jZSwgeyB0eXBlLCBpbmhlcml0YWJsZSwgYWxsb3dlZE1lbWJlcnMgfSkgewor
ICAgIGNvbnN0IHsgdG9rZW5zIH0gPSBpbnN0YW5jZTsKKyAgICB0b2tlbnMubmFtZSA9CisgICAg
ICB0b2tlbmlzZXIuY29uc3VtZVR5cGUoImlkZW50aWZpZXIiKSB8fAorICAgICAgdG9rZW5pc2Vy
LmVycm9yKGBNaXNzaW5nIG5hbWUgaW4gJHtpbnN0YW5jZS50eXBlfWApOworICAgIHRva2VuaXNl
ci5jdXJyZW50ID0gaW5zdGFuY2U7CisgICAgaW5zdGFuY2UgPSAoMCxfaGVscGVyc19qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmF1dG9QYXJlbnRlcikoaW5zdGFuY2UpOworICAgIGlm
IChpbmhlcml0YWJsZSkgeworICAgICAgT2JqZWN0LmFzc2lnbih0b2tlbnMsIGluaGVyaXRhbmNl
KHRva2VuaXNlcikpOworICAgIH0KKyAgICB0b2tlbnMub3BlbiA9IHRva2VuaXNlci5jb25zdW1l
KCJ7IikgfHwgdG9rZW5pc2VyLmVycm9yKGBCb2R5bGVzcyAke3R5cGV9YCk7CisgICAgaW5zdGFu
Y2UubWVtYmVycyA9IFtdOworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICB0b2tlbnMuY2xvc2Ug
PSB0b2tlbmlzZXIuY29uc3VtZSgifSIpOworICAgICAgaWYgKHRva2Vucy5jbG9zZSkgeworICAg
ICAgICB0b2tlbnMudGVybWluYXRpb24gPQorICAgICAgICAgIHRva2VuaXNlci5jb25zdW1lKCI7
IikgfHwKKyAgICAgICAgICB0b2tlbmlzZXIuZXJyb3IoYE1pc3Npbmcgc2VtaWNvbG9uIGFmdGVy
ICR7dHlwZX1gKTsKKyAgICAgICAgcmV0dXJuIGluc3RhbmNlLnRoaXM7CiAgICAgICB9Ci0gICAg
ICB0b2tlbnMub3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCJ7IikgfHwgdG9rZW5pc2VyLmVycm9y
KGBCb2R5bGVzcyAke3R5cGV9YCk7Ci0gICAgICBpbnN0YW5jZS5tZW1iZXJzID0gW107Ci0gICAg
ICB3aGlsZSAodHJ1ZSkgewotICAgICAgICB0b2tlbnMuY2xvc2UgPSB0b2tlbmlzZXIuY29uc3Vt
ZSgifSIpOwotICAgICAgICBpZiAodG9rZW5zLmNsb3NlKSB7Ci0gICAgICAgICAgdG9rZW5zLnRl
cm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE1p
c3Npbmcgc2VtaWNvbG9uIGFmdGVyICR7dHlwZX1gKTsKLSAgICAgICAgICByZXR1cm4gaW5zdGFu
Y2UudGhpczsKLSAgICAgICAgfQotICAgICAgICBjb25zdCBlYSA9IF9leHRlbmRlZF9hdHRyaWJ1
dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkV4dGVuZGVkQXR0cmlidXRlcyJd
LnBhcnNlKHRva2VuaXNlcik7Ci0gICAgICAgIGxldCBtZW07Ci0gICAgICAgIGZvciAoY29uc3Qg
W3BhcnNlciwgLi4uYXJnc10gb2YgYWxsb3dlZE1lbWJlcnMpIHsKLSAgICAgICAgICBtZW0gPSBP
YmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siYXV0b1BhcmVu
dGVyIl0pKHBhcnNlcih0b2tlbmlzZXIsIC4uLmFyZ3MpKTsKLSAgICAgICAgICBpZiAobWVtKSB7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYg
KCFtZW0pIHsKLSAgICAgICAgICB0b2tlbmlzZXIuZXJyb3IoIlVua25vd24gbWVtYmVyIik7Cisg
ICAgICBjb25zdCBlYSA9IF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xX18uRXh0ZW5kZWRBdHRyaWJ1dGVzLnBhcnNlKHRva2VuaXNlcik7CisgICAgICBs
ZXQgbWVtOworICAgICAgZm9yIChjb25zdCBbcGFyc2VyLCAuLi5hcmdzXSBvZiBhbGxvd2VkTWVt
YmVycykgeworICAgICAgICBtZW0gPSAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMl9fLmF1dG9QYXJlbnRlcikocGFyc2VyKHRva2VuaXNlciwgLi4uYXJncykpOworICAg
ICAgICBpZiAobWVtKSB7CisgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgbWVt
LmV4dEF0dHJzID0gZWE7Ci0gICAgICAgIGluc3RhbmNlLm1lbWJlcnMucHVzaChtZW0udGhpcyk7
CiAgICAgICB9CisgICAgICBpZiAoIW1lbSkgeworICAgICAgICB0b2tlbmlzZXIuZXJyb3IoIlVu
a25vd24gbWVtYmVyIik7CisgICAgICB9CisgICAgICBtZW0uZXh0QXR0cnMgPSBlYTsKKyAgICAg
IGluc3RhbmNlLm1lbWJlcnMucHVzaChtZW0udGhpcyk7CiAgICAgfQorICB9CiAKLSAgICBnZXQg
cGFydGlhbCgpIHsKLSAgICAgIHJldHVybiAhIXRoaXMudG9rZW5zLnBhcnRpYWw7Ci0gICAgfQot
ICAgIGdldCBuYW1lKCkgewotICAgICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMl9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVl
KTsKKyAgZ2V0IHBhcnRpYWwoKSB7CisgICAgcmV0dXJuICEhdGhpcy50b2tlbnMucGFydGlhbDsK
KyAgfQorICBnZXQgbmFtZSgpIHsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzJfXy51bmVzY2FwZSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7Cisg
IH0KKyAgZ2V0IGluaGVyaXRhbmNlKCkgeworICAgIGlmICghdGhpcy50b2tlbnMuaW5oZXJpdGFu
Y2UpIHsKKyAgICAgIHJldHVybiBudWxsOwogICAgIH0KLSAgICBnZXQgaW5oZXJpdGFuY2UoKSB7
Ci0gICAgICBpZiAoIXRoaXMudG9rZW5zLmluaGVyaXRhbmNlKSB7Ci0gICAgICAgIHJldHVybiBu
dWxsOworICAgIHJldHVybiAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
Ml9fLnVuZXNjYXBlKSh0aGlzLnRva2Vucy5pbmhlcml0YW5jZS52YWx1ZSk7CisgIH0KKworICAq
dmFsaWRhdGUoZGVmcykgeworICAgIGZvciAoY29uc3QgbWVtYmVyIG9mIHRoaXMubWVtYmVycykg
eworICAgICAgaWYgKG1lbWJlci52YWxpZGF0ZSkgeworICAgICAgICB5aWVsZCogbWVtYmVyLnZh
bGlkYXRlKGRlZnMpOwogICAgICAgfQotICAgICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5pbmhl
cml0YW5jZS52YWx1ZSk7CiAgICAgfQorICB9CiAKLSAgICAqdmFsaWRhdGUoZGVmcykgewotICAg
ICAgZm9yIChjb25zdCBtZW1iZXIgb2YgdGhpcy5tZW1iZXJzKSB7Ci0gICAgICAgIGlmIChtZW1i
ZXIudmFsaWRhdGUpIHsKLSAgICAgICAgICB5aWVsZCogbWVtYmVyLnZhbGlkYXRlKGRlZnMpOwot
ICAgICAgICB9CisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyfSB3
ICovCisgIHdyaXRlKHcpIHsKKyAgICBjb25zdCBpbmhlcml0YW5jZSA9ICgpID0+IHsKKyAgICAg
IGlmICghdGhpcy50b2tlbnMuaW5oZXJpdGFuY2UpIHsKKyAgICAgICAgcmV0dXJuICIiOwogICAg
ICAgfQotICAgIH0KKyAgICAgIHJldHVybiB3LnRzLndyYXAoWworICAgICAgICB3LnRva2VuKHRo
aXMudG9rZW5zLmNvbG9uKSwKKyAgICAgICAgdy50cy50cml2aWEodGhpcy50b2tlbnMuaW5oZXJp
dGFuY2UudHJpdmlhKSwKKyAgICAgICAgdy50cy5pbmhlcml0YW5jZSgKKyAgICAgICAgICB3LnJl
ZmVyZW5jZSh0aGlzLnRva2Vucy5pbmhlcml0YW5jZS52YWx1ZSwgeyBjb250ZXh0OiB0aGlzIH0p
CisgICAgICAgICksCisgICAgICBdKTsKKyAgICB9OworCisgICAgcmV0dXJuIHcudHMuZGVmaW5p
dGlvbigKKyAgICAgIHcudHMud3JhcChbCisgICAgICAgIHRoaXMuZXh0QXR0cnMud3JpdGUodyks
CisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuY2FsbGJhY2spLAorICAgICAgICB3LnRva2Vu
KHRoaXMudG9rZW5zLnBhcnRpYWwpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLmJhc2Up
LAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLm1peGluKSwKKyAgICAgICAgdy5uYW1lX3Rv
a2VuKHRoaXMudG9rZW5zLm5hbWUsIHsgZGF0YTogdGhpcyB9KSwKKyAgICAgICAgaW5oZXJpdGFu
Y2UoKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5vcGVuKSwKKyAgICAgICAgdy50cy53
cmFwKHRoaXMubWVtYmVycy5tYXAoKG0pID0+IG0ud3JpdGUodykpKSwKKyAgICAgICAgdy50b2tl
bih0aGlzLnRva2Vucy5jbG9zZSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMudGVybWlu
YXRpb24pLAorICAgICAgXSksCisgICAgICB7IGRhdGE6IHRoaXMgfQorICAgICk7CiAgIH0KK30K
IAogCiAvKioqLyB9KSwKIC8qIDIxICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBh
Y2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dl
YnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tf
cmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihf
X3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dl
YnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkNvbnN0YW50IiwgZnVuY3Rp
b24oKSB7IHJldHVybiBDb25zdGFudDsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBh
Y2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBvcnQg
Ki8gICAiQ29uc3RhbnQiOiAoKSA9PiAoLyogYmluZGluZyAqLyBDb25zdGFudCkKKy8qIGhhcm1v
bnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOwogLyogaGFy
bW9ueSBpbXBvcnQgKi8gdmFyIF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18g
PSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxw
ZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9f
KDQpOwpAQCAtMjMxNCw3ICsyODU2LDcgQEAgX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFj
a19leHBvcnRzX18pOwogCiAKIAotY2xhc3MgQ29uc3RhbnQgZXh0ZW5kcyBfYmFzZV9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0geworY2xhc3MgQ29uc3RhbnQgZXh0ZW5k
cyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkJhc2UgewogICAvKioKICAg
ICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlci5qcyIpLlRva2VuaXNlcn0gdG9rZW5pc2Vy
CiAgICAqLwpAQCAtMjMyNSwyMSArMjg2NywyOSBAQCBjbGFzcyBDb25zdGFudCBleHRlbmRzIF9i
YXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICAgaWYgKCF0
b2tlbnMuYmFzZSkgewogICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBsZXQgaWRsVHlwZSA9IE9i
amVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJwcmltaXRpdmVf
dHlwZSJdKSh0b2tlbmlzZXIpOworICAgIGxldCBpZGxUeXBlID0gKDAsX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5wcmltaXRpdmVfdHlwZSkodG9rZW5pc2VyKTsKICAg
ICBpZiAoIWlkbFR5cGUpIHsKLSAgICAgIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgi
aWRlbnRpZmllciIpIHx8IHRva2VuaXNlci5lcnJvcigiQ29uc3QgbGFja3MgYSB0eXBlIik7Ci0g
ICAgICBpZGxUeXBlID0gbmV3IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19b
IlR5cGUiXSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zOiB7IGJhc2UgfSB9KTsK
KyAgICAgIGNvbnN0IGJhc2UgPQorICAgICAgICB0b2tlbmlzZXIuY29uc3VtZVR5cGUoImlkZW50
aWZpZXIiKSB8fAorICAgICAgICB0b2tlbmlzZXIuZXJyb3IoIkNvbnN0IGxhY2tzIGEgdHlwZSIp
OworICAgICAgaWRsVHlwZSA9IG5ldyBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MV9fLlR5cGUoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyBiYXNlIH0gfSk7
CiAgICAgfQogICAgIGlmICh0b2tlbmlzZXIucHJvYmUoIj8iKSkgewogICAgICAgdG9rZW5pc2Vy
LmVycm9yKCJVbmV4cGVjdGVkIG51bGxhYmxlIGNvbnN0YW50IHR5cGUiKTsKICAgICB9CiAgICAg
aWRsVHlwZS50eXBlID0gImNvbnN0LXR5cGUiOwotICAgIHRva2Vucy5uYW1lID0gdG9rZW5pc2Vy
LmNvbnN1bWUoImlkZW50aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNvbnN0IGxhY2tzIGEg
bmFtZSIpOwotICAgIHRva2Vucy5hc3NpZ24gPSB0b2tlbmlzZXIuY29uc3VtZSgiPSIpIHx8IHRv
a2VuaXNlci5lcnJvcigiQ29uc3QgbGFja3MgdmFsdWUgYXNzaWdubWVudCIpOwotICAgIHRva2Vu
cy52YWx1ZSA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9f
WyJjb25zdF92YWx1ZSJdKSh0b2tlbmlzZXIpIHx8IHRva2VuaXNlci5lcnJvcigiQ29uc3QgbGFj
a3MgYSB2YWx1ZSIpOwotICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1l
KCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgY29uc3QsIGV4cGVjdGVkIGA7
YCIpOworICAgIHRva2Vucy5uYW1lID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lVHlwZSgiaWRl
bnRpZmllciIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIkNvbnN0IGxhY2tzIGEgbmFtZSIp
OworICAgIHRva2Vucy5hc3NpZ24gPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIj0iKSB8fCB0
b2tlbmlzZXIuZXJyb3IoIkNvbnN0IGxhY2tzIHZhbHVlIGFzc2lnbm1lbnQiKTsKKyAgICB0b2tl
bnMudmFsdWUgPQorICAgICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzJfXy5jb25zdF92YWx1ZSkodG9rZW5pc2VyKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNvbnN0IGxh
Y2tzIGEgdmFsdWUiKTsKKyAgICB0b2tlbnMudGVybWluYXRpb24gPQorICAgICAgdG9rZW5pc2Vy
LmNvbnN1bWUoIjsiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgY29u
c3QsIGV4cGVjdGVkIGA7YCIpOwogICAgIGNvbnN0IHJldCA9IG5ldyBDb25zdGFudCh7IHNvdXJj
ZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pOwotICAgIE9iamVjdChfaGVscGVyc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJhdXRvUGFyZW50ZXIiXSkocmV0KS5pZGxUeXBl
ID0gaWRsVHlwZTsKKyAgICAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
Ml9fLmF1dG9QYXJlbnRlcikocmV0KS5pZGxUeXBlID0gaWRsVHlwZTsKICAgICByZXR1cm4gcmV0
OwogICB9CiAKQEAgLTIzNDcsNDIgKzI4OTcsNjMgQEAgY2xhc3MgQ29uc3RhbnQgZXh0ZW5kcyBf
YmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgIHJldHVy
biAiY29uc3QiOwogICB9CiAgIGdldCBuYW1lKCkgewotICAgIHJldHVybiBPYmplY3QoX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1sidW5lc2NhcGUiXSkodGhpcy50b2tl
bnMubmFtZS52YWx1ZSk7CisgICAgcmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8yX18udW5lc2NhcGUpKHRoaXMudG9rZW5zLm5hbWUudmFsdWUpOwogICB9CiAg
IGdldCB2YWx1ZSgpIHsKLSAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8yX19bImNvbnN0X2RhdGEiXSkodGhpcy50b2tlbnMudmFsdWUpOworICAg
IHJldHVybiAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLmNvbnN0
X2RhdGEpKHRoaXMudG9rZW5zLnZhbHVlKTsKKyAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgi
Li4vd3JpdGVyLmpzIikuV3JpdGVyfSB3ICovCisgIHdyaXRlKHcpIHsKKyAgICBjb25zdCB7IHBh
cmVudCB9ID0gdGhpczsKKyAgICByZXR1cm4gdy50cy5kZWZpbml0aW9uKAorICAgICAgdy50cy53
cmFwKFsKKyAgICAgICAgdGhpcy5leHRBdHRycy53cml0ZSh3KSwKKyAgICAgICAgdy50b2tlbih0
aGlzLnRva2Vucy5iYXNlKSwKKyAgICAgICAgdy50cy50eXBlKHRoaXMuaWRsVHlwZS53cml0ZSh3
KSksCisgICAgICAgIHcubmFtZV90b2tlbih0aGlzLnRva2Vucy5uYW1lLCB7IGRhdGE6IHRoaXMs
IHBhcmVudCB9KSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5hc3NpZ24pLAorICAgICAg
ICB3LnRva2VuKHRoaXMudG9rZW5zLnZhbHVlKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vu
cy50ZXJtaW5hdGlvbiksCisgICAgICBdKSwKKyAgICAgIHsgZGF0YTogdGhpcywgcGFyZW50IH0K
KyAgICApOwogICB9CiB9CiAKIAogLyoqKi8gfSksCiAvKiAyMiAqLwotLyoqKi8gKGZ1bmN0aW9u
KG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoq
Ki8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9y
dHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBh
Y2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAo
YmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJJ
dGVyYWJsZUxpa2UiLCBmdW5jdGlvbigpIHsgcmV0dXJuIEl0ZXJhYmxlTGlrZTsgfSk7CisvKiBo
YXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNf
XywgeworLyogaGFybW9ueSBleHBvcnQgKi8gICAiSXRlcmFibGVMaWtlIjogKCkgPT4gKC8qIGJp
bmRpbmcgKi8gSXRlcmFibGVMaWtlKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJt
b255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9
IF9fd2VicGFja19yZXF1aXJlX18oNik7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18o
NCk7CiAKIAogCi1jbGFzcyBJdGVyYWJsZUxpa2UgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0geworY2xhc3MgSXRlcmFibGVMaWtlIGV4dGVuZHMg
X2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5CYXNlIHsKICAgLyoqCiAgICAq
IEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIuanMiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgog
ICAgKi8KICAgc3RhdGljIHBhcnNlKHRva2VuaXNlcikgewogICAgIGNvbnN0IHN0YXJ0X3Bvc2l0
aW9uID0gdG9rZW5pc2VyLnBvc2l0aW9uOwogICAgIGNvbnN0IHRva2VucyA9IHt9OwotICAgIGNv
bnN0IHJldCA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9f
WyJhdXRvUGFyZW50ZXIiXSkobmV3IEl0ZXJhYmxlTGlrZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNv
dXJjZSwgdG9rZW5zIH0pKTsKKyAgICBjb25zdCByZXQgPSAoMCxfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fLmF1dG9QYXJlbnRlcikoCisgICAgICBuZXcgSXRlcmFibGVM
aWtlKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkKKyAgICApOwogICAgIHRv
a2Vucy5yZWFkb25seSA9IHRva2VuaXNlci5jb25zdW1lKCJyZWFkb25seSIpOwogICAgIGlmICgh
dG9rZW5zLnJlYWRvbmx5KSB7CiAgICAgICB0b2tlbnMuYXN5bmMgPSB0b2tlbmlzZXIuY29uc3Vt
ZSgiYXN5bmMiKTsKICAgICB9Ci0gICAgdG9rZW5zLmJhc2UgPQotICAgICAgdG9rZW5zLnJlYWRv
bmx5ID8gdG9rZW5pc2VyLmNvbnN1bWUoIm1hcGxpa2UiLCAic2V0bGlrZSIpIDoKLSAgICAgIHRv
a2Vucy5hc3luYyA/IHRva2VuaXNlci5jb25zdW1lKCJpdGVyYWJsZSIpIDoKLSAgICAgIHRva2Vu
aXNlci5jb25zdW1lKCJpdGVyYWJsZSIsICJtYXBsaWtlIiwgInNldGxpa2UiKTsKKyAgICB0b2tl
bnMuYmFzZSA9IHRva2Vucy5yZWFkb25seQorICAgICAgPyB0b2tlbmlzZXIuY29uc3VtZSgibWFw
bGlrZSIsICJzZXRsaWtlIikKKyAgICAgIDogdG9rZW5zLmFzeW5jCisgICAgICA/IHRva2VuaXNl
ci5jb25zdW1lKCJpdGVyYWJsZSIpCisgICAgICA6IHRva2VuaXNlci5jb25zdW1lKCJpdGVyYWJs
ZSIsICJtYXBsaWtlIiwgInNldGxpa2UiKTsKICAgICBpZiAoIXRva2Vucy5iYXNlKSB7CiAgICAg
ICB0b2tlbmlzZXIudW5jb25zdW1lKHN0YXJ0X3Bvc2l0aW9uKTsKICAgICAgIHJldHVybjsKQEAg
LTIzOTMsMzQgKzI5NjQsNDMgQEAgY2xhc3MgSXRlcmFibGVMaWtlIGV4dGVuZHMgX2Jhc2VfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICBjb25zdCBzZWNvbmRU
eXBlQWxsb3dlZCA9IHNlY29uZFR5cGVSZXF1aXJlZCB8fCB0eXBlID09PSAiaXRlcmFibGUiOwog
ICAgIGNvbnN0IGFyZ3VtZW50QWxsb3dlZCA9IHJldC5hc3luYyAmJiB0eXBlID09PSAiaXRlcmFi
bGUiOwogCi0gICAgdG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgiPCIpIHx8IHRva2Vu
aXNlci5lcnJvcihgTWlzc2luZyBsZXNzLXRoYW4gc2lnbiBcYDxcYCBpbiAke3R5cGV9IGRlY2xh
cmF0aW9uYCk7Ci0gICAgY29uc3QgZmlyc3QgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzFfX1sidHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMiXSkodG9r
ZW5pc2VyKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE1pc3NpbmcgYSB0eXBlIGFyZ3VtZW50IGluICR7
dHlwZX0gZGVjbGFyYXRpb25gKTsKKyAgICB0b2tlbnMub3BlbiA9CisgICAgICB0b2tlbmlzZXIu
Y29uc3VtZSgiPCIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJyb3IoYE1pc3NpbmcgbGVzcy10aGFu
IHNpZ24gXGA8XGAgaW4gJHt0eXBlfSBkZWNsYXJhdGlvbmApOworICAgIGNvbnN0IGZpcnN0ID0K
KyAgICAgICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udHlwZV93
aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMpKHRva2VuaXNlcikgfHwKKyAgICAgIHRva2VuaXNlci5l
cnJvcihgTWlzc2luZyBhIHR5cGUgYXJndW1lbnQgaW4gJHt0eXBlfSBkZWNsYXJhdGlvbmApOwog
ICAgIHJldC5pZGxUeXBlID0gW2ZpcnN0XTsKICAgICByZXQuYXJndW1lbnRzID0gW107CiAKICAg
ICBpZiAoc2Vjb25kVHlwZUFsbG93ZWQpIHsKICAgICAgIGZpcnN0LnRva2Vucy5zZXBhcmF0b3Ig
PSB0b2tlbmlzZXIuY29uc3VtZSgiLCIpOwogICAgICAgaWYgKGZpcnN0LnRva2Vucy5zZXBhcmF0
b3IpIHsKLSAgICAgICAgcmV0LmlkbFR5cGUucHVzaChPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfX1sidHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMiXSko
dG9rZW5pc2VyKSk7Ci0gICAgICB9Ci0gICAgICBlbHNlIGlmIChzZWNvbmRUeXBlUmVxdWlyZWQp
IHsKKyAgICAgICAgcmV0LmlkbFR5cGUucHVzaCgoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMV9fLnR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzKSh0b2tlbmlzZXIp
KTsKKyAgICAgIH0gZWxzZSBpZiAoc2Vjb25kVHlwZVJlcXVpcmVkKSB7CiAgICAgICAgIHRva2Vu
aXNlci5lcnJvcihgTWlzc2luZyBzZWNvbmQgdHlwZSBhcmd1bWVudCBpbiAke3R5cGV9IGRlY2xh
cmF0aW9uYCk7CiAgICAgICB9CiAgICAgfQogCi0gICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2Vy
LmNvbnN1bWUoIj4iKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE1pc3NpbmcgZ3JlYXRlci10aGFuIHNp
Z24gXGA+XGAgaW4gJHt0eXBlfSBkZWNsYXJhdGlvbmApOworICAgIHRva2Vucy5jbG9zZSA9Cisg
ICAgICB0b2tlbmlzZXIuY29uc3VtZSgiPiIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJyb3IoYE1p
c3NpbmcgZ3JlYXRlci10aGFuIHNpZ24gXGA+XGAgaW4gJHt0eXBlfSBkZWNsYXJhdGlvbmApOwog
CiAgICAgaWYgKHRva2VuaXNlci5wcm9iZSgiKCIpKSB7CiAgICAgICBpZiAoYXJndW1lbnRBbGxv
d2VkKSB7CiAgICAgICAgIHRva2Vucy5hcmdzT3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCIoIik7
Ci0gICAgICAgIHJldC5hcmd1bWVudHMucHVzaCguLi5PYmplY3QoX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfX1siYXJndW1lbnRfbGlzdCJdKSh0b2tlbmlzZXIpKTsKLSAg
ICAgICAgdG9rZW5zLmFyZ3NDbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCIpIikgfHwgdG9rZW5p
c2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgYXN5bmMgaXRlcmFibGUgYXJndW1lbnQgbGlzdCIpOwor
ICAgICAgICByZXQuYXJndW1lbnRzLnB1c2goLi4uKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfXy5hcmd1bWVudF9saXN0KSh0b2tlbmlzZXIpKTsKKyAgICAgICAgdG9r
ZW5zLmFyZ3NDbG9zZSA9CisgICAgICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIikiKSB8fAorICAg
ICAgICAgIHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGFzeW5jIGl0ZXJhYmxlIGFyZ3Vt
ZW50IGxpc3QiKTsKICAgICAgIH0gZWxzZSB7CiAgICAgICAgIHRva2VuaXNlci5lcnJvcihgQXJn
dW1lbnRzIGFyZSBvbmx5IGFsbG93ZWQgZm9yIFxgYXN5bmMgaXRlcmFibGVcYGApOwogICAgICAg
fQogICAgIH0KIAotICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7
IikgfHwgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIHNlbWljb2xvbiBhZnRlciAke3R5cGV9IGRl
Y2xhcmF0aW9uYCk7CisgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0KKyAgICAgIHRva2VuaXNlci5j
b25zdW1lKCI7IikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcihgTWlzc2luZyBzZW1pY29sb24g
YWZ0ZXIgJHt0eXBlfSBkZWNsYXJhdGlvbmApOwogCiAgICAgcmV0dXJuIHJldC50aGlzOwogICB9
CkBAIC0yNDQzLDIzICszMDIzLDQ0IEBAIGNsYXNzIEl0ZXJhYmxlTGlrZSBleHRlbmRzIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICAgICB5aWVsZCog
YXJndW1lbnQudmFsaWRhdGUoZGVmcyk7CiAgICAgfQogICB9CisKKyAgLyoqIEBwYXJhbSB7aW1w
b3J0KCIuLi93cml0ZXIuanMiKS5Xcml0ZXJ9IHcgKi8KKyAgd3JpdGUodykgeworICAgIHJldHVy
biB3LnRzLmRlZmluaXRpb24oCisgICAgICB3LnRzLndyYXAoWworICAgICAgICB0aGlzLmV4dEF0
dHJzLndyaXRlKHcpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnJlYWRvbmx5KSwKKyAg
ICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5hc3luYyksCisgICAgICAgIHcudG9rZW4odGhpcy50
b2tlbnMuYmFzZSwgdy50cy5nZW5lcmljKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5v
cGVuKSwKKyAgICAgICAgdy50cy53cmFwKHRoaXMuaWRsVHlwZS5tYXAoKHQpID0+IHQud3JpdGUo
dykpKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5jbG9zZSksCisgICAgICAgIHcudG9r
ZW4odGhpcy50b2tlbnMuYXJnc09wZW4pLAorICAgICAgICB3LnRzLndyYXAodGhpcy5hcmd1bWVu
dHMubWFwKChhcmcpID0+IGFyZy53cml0ZSh3KSkpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9r
ZW5zLmFyZ3NDbG9zZSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMudGVybWluYXRpb24p
LAorICAgICAgXSksCisgICAgICB7IGRhdGE6IHRoaXMsIHBhcmVudDogdGhpcy5wYXJlbnQgfQor
ICAgICk7CisgIH0KIH0KIAogCiAvKioqLyB9KSwKIC8qIDIzICovCi0vKioqLyAoZnVuY3Rpb24o
bW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioq
LyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0
c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFj
a19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChi
aW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImNo
ZWNrSW50ZXJmYWNlTWVtYmVyRHVwbGljYXRpb24iLCBmdW5jdGlvbigpIHsgcmV0dXJuIGNoZWNr
SW50ZXJmYWNlTWVtYmVyRHVwbGljYXRpb247IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193
ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhw
b3J0ICovICAgImNoZWNrSW50ZXJmYWNlTWVtYmVyRHVwbGljYXRpb24iOiAoKSA9PiAoLyogYmlu
ZGluZyAqLyBjaGVja0ludGVyZmFjZU1lbWJlckR1cGxpY2F0aW9uKQorLyogaGFybW9ueSBleHBv
cnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Vycm9yX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpOwogLy8gQHRzLWNoZWNr
CiAKIAogCiBmdW5jdGlvbiogY2hlY2tJbnRlcmZhY2VNZW1iZXJEdXBsaWNhdGlvbihkZWZzLCBp
KSB7Ci0gIGNvbnN0IG9wTmFtZXMgPSBuZXcgU2V0KGdldE9wZXJhdGlvbnMoaSkubWFwKG9wID0+
IG9wLm5hbWUpKTsKKyAgY29uc3Qgb3BOYW1lcyA9IG5ldyBTZXQoZ2V0T3BlcmF0aW9ucyhpKS5t
YXAoKG9wKSA9PiBvcC5uYW1lKSk7CiAgIGNvbnN0IHBhcnRpYWxzID0gZGVmcy5wYXJ0aWFscy5n
ZXQoaS5uYW1lKSB8fCBbXTsKICAgY29uc3QgbWl4aW5zID0gZGVmcy5taXhpbk1hcC5nZXQoaS5u
YW1lKSB8fCBbXTsKICAgZm9yIChjb25zdCBleHQgb2YgWy4uLnBhcnRpYWxzLCAuLi5taXhpbnNd
KSB7CkBAIC0yNDc1LDMxICszMDc2LDM2IEBAIGZ1bmN0aW9uKiBjaGVja0ludGVyZmFjZU1lbWJl
ckR1cGxpY2F0aW9uKGRlZnMsIGkpIHsKICAgICAgIGNvbnN0IHsgbmFtZSB9ID0gYWRkaXRpb247
CiAgICAgICBpZiAobmFtZSAmJiBleGlzdGluZ3MuaGFzKG5hbWUpKSB7CiAgICAgICAgIGNvbnN0
IG1lc3NhZ2UgPSBgVGhlIG9wZXJhdGlvbiAiJHtuYW1lfSIgaGFzIGFscmVhZHkgYmVlbiBkZWZp
bmVkIGZvciB0aGUgYmFzZSBpbnRlcmZhY2UgIiR7YmFzZS5uYW1lfSIgZWl0aGVyIGluIGl0c2Vs
ZiBvciBpbiBhIG1peGluYDsKLSAgICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJ2YWxpZGF0aW9uRXJyb3IiXSkoYWRkaXRpb24udG9rZW5z
Lm5hbWUsIGV4dCwgIm5vLWNyb3NzLW92ZXJsb2FkIiwgbWVzc2FnZSk7CisgICAgICAgIHlpZWxk
ICgwLF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnZhbGlkYXRpb25FcnJv
cikoCisgICAgICAgICAgYWRkaXRpb24udG9rZW5zLm5hbWUsCisgICAgICAgICAgZXh0LAorICAg
ICAgICAgICJuby1jcm9zcy1vdmVybG9hZCIsCisgICAgICAgICAgbWVzc2FnZQorICAgICAgICAp
OwogICAgICAgfQogICAgIH0KICAgfQogCiAgIGZ1bmN0aW9uIGdldE9wZXJhdGlvbnMoaSkgewot
ICAgIHJldHVybiBpLm1lbWJlcnMKLSAgICAgIC5maWx0ZXIoKHt0eXBlfSkgPT4gdHlwZSA9PT0g
Im9wZXJhdGlvbiIpOworICAgIHJldHVybiBpLm1lbWJlcnMuZmlsdGVyKCh7IHR5cGUgfSkgPT4g
dHlwZSA9PT0gIm9wZXJhdGlvbiIpOwogICB9CiB9CiAKIAogLyoqKi8gfSksCiAvKiAyNCAqLwot
LyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3Jl
cXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywg
X193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0
cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBo
YXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFj
a19leHBvcnRzX18sICJDb25zdHJ1Y3RvciIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gQ29uc3RydWN0
b3I7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2Vi
cGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIkNvbnN0cnVjdG9yIjog
KCkgPT4gKC8qIGJpbmRpbmcgKi8gQ29uc3RydWN0b3IpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9
KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICov
IHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNr
X3JlcXVpcmVfXyg0KTsKIAogCiAKLWNsYXNzIENvbnN0cnVjdG9yIGV4dGVuZHMgX2Jhc2VfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKK2NsYXNzIENvbnN0cnVjdG9y
IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5CYXNlIHsKICAg
LyoqCiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2Vu
aXNlcgogICAgKi8KQEAgLTI1MTAsMTIgKzMxMTYsMTcgQEAgY2xhc3MgQ29uc3RydWN0b3IgZXh0
ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAg
IH0KICAgICAvKiogQHR5cGUge0Jhc2VbInRva2VucyJdfSAqLwogICAgIGNvbnN0IHRva2VucyA9
IHsgYmFzZSB9OwotICAgIHRva2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUoIigiKSB8fCB0
b2tlbmlzZXIuZXJyb3IoIk5vIGFyZ3VtZW50IGxpc3QgaW4gY29uc3RydWN0b3IiKTsKLSAgICBj
b25zdCBhcmdzID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X19bImFyZ3VtZW50X2xpc3QiXSkodG9rZW5pc2VyKTsKLSAgICB0b2tlbnMuY2xvc2UgPSB0b2tl
bmlzZXIuY29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGNvbnN0
cnVjdG9yIik7Ci0gICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsi
KSB8fCB0b2tlbmlzZXIuZXJyb3IoIk5vIHNlbWljb2xvbiBhZnRlciBjb25zdHJ1Y3RvciIpOwor
ICAgIHRva2Vucy5vcGVuID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCIoIikgfHwKKyAgICAg
IHRva2VuaXNlci5lcnJvcigiTm8gYXJndW1lbnQgbGlzdCBpbiBjb25zdHJ1Y3RvciIpOworICAg
IGNvbnN0IGFyZ3MgPSAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9f
LmFyZ3VtZW50X2xpc3QpKHRva2VuaXNlcik7CisgICAgdG9rZW5zLmNsb3NlID0KKyAgICAgIHRv
a2VuaXNlci5jb25zdW1lKCIpIikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgY29u
c3RydWN0b3IiKTsKKyAgICB0b2tlbnMudGVybWluYXRpb24gPQorICAgICAgdG9rZW5pc2VyLmNv
bnN1bWUoIjsiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKCJObyBzZW1pY29sb24gYWZ0ZXIg
Y29uc3RydWN0b3IiKTsKICAgICBjb25zdCByZXQgPSBuZXcgQ29uc3RydWN0b3IoeyBzb3VyY2U6
IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsKLSAgICBPYmplY3QoX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siYXV0b1BhcmVudGVyIl0pKHJldCkuYXJndW1lbnRz
ID0gYXJnczsKKyAgICAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9f
LmF1dG9QYXJlbnRlcikocmV0KS5hcmd1bWVudHMgPSBhcmdzOwogICAgIHJldHVybiByZXQ7CiAg
IH0KIApAQCAtMjUzMSwxNiArMzE0MiwzMyBAQCBjbGFzcyBDb25zdHJ1Y3RvciBleHRlbmRzIF9i
YXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICAgICB5aWVs
ZCogYXJndW1lbnQudmFsaWRhdGUoZGVmcyk7CiAgICAgfQogICB9CisKKyAgLyoqIEBwYXJhbSB7
aW1wb3J0KCIuLi93cml0ZXIuanMiKS5Xcml0ZXJ9IHcgKi8KKyAgd3JpdGUodykgeworICAgIGNv
bnN0IHsgcGFyZW50IH0gPSB0aGlzOworICAgIHJldHVybiB3LnRzLmRlZmluaXRpb24oCisgICAg
ICB3LnRzLndyYXAoWworICAgICAgICB0aGlzLmV4dEF0dHJzLndyaXRlKHcpLAorICAgICAgICB3
LnRva2VuKHRoaXMudG9rZW5zLmJhc2UsIHcudHMubmFtZWxlc3MsIHsgZGF0YTogdGhpcywgcGFy
ZW50IH0pLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLm9wZW4pLAorICAgICAgICB3LnRz
LndyYXAodGhpcy5hcmd1bWVudHMubWFwKChhcmcpID0+IGFyZy53cml0ZSh3KSkpLAorICAgICAg
ICB3LnRva2VuKHRoaXMudG9rZW5zLmNsb3NlKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vu
cy50ZXJtaW5hdGlvbiksCisgICAgICBdKSwKKyAgICAgIHsgZGF0YTogdGhpcywgcGFyZW50IH0K
KyAgICApOworICB9CiB9CiAKIAogLyoqKi8gfSksCiAvKiAyNSAqLwotLyoqKi8gKGZ1bmN0aW9u
KG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoq
Ki8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9y
dHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBh
Y2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAo
YmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJN
aXhpbiIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gTWl4aW47IH0pOworLyogaGFybW9ueSBleHBvcnQg
Ki8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1v
bnkgZXhwb3J0ICovICAgIk1peGluIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gTWl4aW4pCisvKiBo
YXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29udGFpbmVy
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIw
KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29uc3RhbnRfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjEpOwogLyogaGFybW9ueSBpbXBv
cnQgKi8gdmFyIF9hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9f
d2VicGFja19yZXF1aXJlX18oMTQpOwpAQCAtMjU1Miw3ICszMTgwLDcgQEAgX193ZWJwYWNrX3Jl
cXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwogCiAKIAotY2xhc3MgTWl4aW4gZXh0ZW5k
cyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkNvbnRhaW5lciJd
IHsKK2NsYXNzIE1peGluIGV4dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fLkNvbnRhaW5lciB7CiAgIC8qKgogICAgKiBAdHlwZWRlZiB7aW1wb3J0KCIuLi90
b2tlbmlzZXIuanMiKS5Ub2tlbn0gVG9rZW4KICAgICoKQEAgLTI1NjcsMTUgKzMxOTUsMTkgQEAg
Y2xhc3MgTWl4aW4gZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX19bIkNvbnRhaW5lciJdIHsKICAgICBpZiAoIXRva2Vucy5taXhpbikgewogICAgICAgcmV0
dXJuOwogICAgIH0KLSAgICByZXR1cm4gX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fWyJDb250YWluZXIiXS5wYXJzZSh0b2tlbmlzZXIsIG5ldyBNaXhpbih7IHNvdXJj
ZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pLCB7Ci0gICAgICB0eXBlOiAiaW50ZXJmYWNl
IG1peGluIiwKLSAgICAgIGFsbG93ZWRNZW1iZXJzOiBbCi0gICAgICAgIFtfY29uc3RhbnRfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siQ29uc3RhbnQiXS5wYXJzZV0sCi0gICAgICAg
IFtfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fWyJzdHJpbmdpZmllciJd
XSwKLSAgICAgICAgW19hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1si
QXR0cmlidXRlIl0ucGFyc2UsIHsgbm9Jbmhlcml0OiB0cnVlIH1dLAotICAgICAgICBbX29wZXJh
dGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJPcGVyYXRpb24iXS5wYXJzZSwg
eyByZWd1bGFyOiB0cnVlIH1dCi0gICAgICBdCi0gICAgfSk7CisgICAgcmV0dXJuIF9jb250YWlu
ZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5Db250YWluZXIucGFyc2UoCisgICAg
ICB0b2tlbmlzZXIsCisgICAgICBuZXcgTWl4aW4oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2Us
IHRva2VucyB9KSwKKyAgICAgIHsKKyAgICAgICAgdHlwZTogImludGVyZmFjZSBtaXhpbiIsCisg
ICAgICAgIGFsbG93ZWRNZW1iZXJzOiBbCisgICAgICAgICAgW19jb25zdGFudF9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fLkNvbnN0YW50LnBhcnNlXSwKKyAgICAgICAgICBbX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5zdHJpbmdpZmllcl0sCisgICAgICAg
ICAgW19hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5BdHRyaWJ1dGUu
cGFyc2UsIHsgbm9Jbmhlcml0OiB0cnVlIH1dLAorICAgICAgICAgIFtfb3BlcmF0aW9uX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uT3BlcmF0aW9uLnBhcnNlLCB7IHJlZ3VsYXI6IHRy
dWUgfV0sCisgICAgICAgIF0sCisgICAgICB9CisgICAgKTsKICAgfQogCiAgIGdldCB0eXBlKCkg
ewpAQCAtMjU4NiwxMSArMzIxOCwxMiBAQCBjbGFzcyBNaXhpbiBleHRlbmRzIF9jb250YWluZXJf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0gewogCiAvKioqLyB9
KSwKIC8qIDI2ICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19f
LCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJw
YWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9
PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhw
b3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWly
ZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkRpY3Rpb25hcnkiLCBmdW5jdGlvbigpIHsgcmV0
dXJuIERpY3Rpb25hcnk7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVp
cmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIkRp
Y3Rpb25hcnkiOiAoKSA9PiAoLyogYmluZGluZyAqLyBEaWN0aW9uYXJ5KQorLyogaGFybW9ueSBl
eHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnRhaW5lcl9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCk7CiAvKiBo
YXJtb255IGltcG9ydCAqLyB2YXIgX2ZpZWxkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI3KTsKIC8vIEB0cy1jaGVjawpAQCAtMjU5OCw3ICsz
MjMxLDcgQEAgX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwogCiAK
IAotY2xhc3MgRGljdGlvbmFyeSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0geworY2xhc3MgRGljdGlvbmFyeSBleHRlbmRzIF9j
b250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5Db250YWluZXIgewogICAv
KioKICAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5p
c2VyCiAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10KQEAgLTI2MTAsMTMgKzMyNDMsMTUg
QEAgY2xhc3MgRGljdGlvbmFyeSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0KICAgICBpZiAoIXRva2Vucy5iYXNlKSB7CiAgICAg
ICByZXR1cm47CiAgICAgfQotICAgIHJldHVybiBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX19bIkNvbnRhaW5lciJdLnBhcnNlKHRva2VuaXNlciwgbmV3IERpY3Rpb25h
cnkoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSwgewotICAgICAgdHlwZTog
ImRpY3Rpb25hcnkiLAotICAgICAgaW5oZXJpdGFibGU6ICFwYXJ0aWFsLAotICAgICAgYWxsb3dl
ZE1lbWJlcnM6IFsKLSAgICAgICAgW19maWVsZF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MV9fWyJGaWVsZCJdLnBhcnNlXSwKLSAgICAgIF0KLSAgICB9KTsKKyAgICByZXR1cm4gX2NvbnRh
aW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkNvbnRhaW5lci5wYXJzZSgKKyAg
ICAgIHRva2VuaXNlciwKKyAgICAgIG5ldyBEaWN0aW9uYXJ5KHsgc291cmNlOiB0b2tlbmlzZXIu
c291cmNlLCB0b2tlbnMgfSksCisgICAgICB7CisgICAgICAgIHR5cGU6ICJkaWN0aW9uYXJ5IiwK
KyAgICAgICAgaW5oZXJpdGFibGU6ICFwYXJ0aWFsLAorICAgICAgICBhbGxvd2VkTWVtYmVyczog
W1tfZmllbGRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5GaWVsZC5wYXJzZV1dLAor
ICAgICAgfQorICAgICk7CiAgIH0KIAogICBnZXQgdHlwZSgpIHsKQEAgLTI2MjcsMTEgKzMyNjIs
MTIgQEAgY2xhc3MgRGljdGlvbmFyeSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0KIAogLyoqKi8gfSksCiAvKiAyNyAqLwotLyoq
Ki8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVp
cmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193
ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmlj
dCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJt
b255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19l
eHBvcnRzX18sICJGaWVsZCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gRmllbGQ7IH0pOworLyogaGFy
bW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18s
IHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIkZpZWxkIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8g
RmllbGQpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZh
ciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVp
cmVfXyg2KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKIC8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4KTsKQEAgLTI2NDEsMjEgKzMyNzcsMjgg
QEAgX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwogCiAKIAotY2xh
c3MgRmllbGQgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJC
YXNlIl0geworY2xhc3MgRmllbGQgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fLkJhc2UgewogICAvKioKICAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNl
ciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCiAgICAqLwogICBzdGF0aWMgcGFyc2UodG9rZW5pc2Vy
KSB7CiAgICAgLyoqIEB0eXBlIHtCYXNlWyJ0b2tlbnMiXX0gKi8KICAgICBjb25zdCB0b2tlbnMg
PSB7fTsKLSAgICBjb25zdCByZXQgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzFfX1siYXV0b1BhcmVudGVyIl0pKG5ldyBGaWVsZCh7IHNvdXJjZTogdG9rZW5p
c2VyLnNvdXJjZSwgdG9rZW5zIH0pKTsKLSAgICByZXQuZXh0QXR0cnMgPSBfZXh0ZW5kZWRfYXR0
cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJFeHRlbmRlZEF0dHJpYnV0
ZXMiXS5wYXJzZSh0b2tlbmlzZXIpOworICAgIGNvbnN0IHJldCA9ICgwLF9oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uYXV0b1BhcmVudGVyKShuZXcgRmllbGQoeyBzb3Vy
Y2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSk7CisgICAgcmV0LmV4dEF0dHJzID0gX2V4
dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5FeHRlbmRl
ZEF0dHJpYnV0ZXMucGFyc2UodG9rZW5pc2VyKTsKICAgICB0b2tlbnMucmVxdWlyZWQgPSB0b2tl
bmlzZXIuY29uc3VtZSgicmVxdWlyZWQiKTsKLSAgICByZXQuaWRsVHlwZSA9IE9iamVjdChfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ0eXBlX3dpdGhfZXh0ZW5kZWRf
YXR0cmlidXRlcyJdKSh0b2tlbmlzZXIsICJkaWN0aW9uYXJ5LXR5cGUiKSB8fCB0b2tlbmlzZXIu
ZXJyb3IoIkRpY3Rpb25hcnkgbWVtYmVyIGxhY2tzIGEgdHlwZSIpOwotICAgIHRva2Vucy5uYW1l
ID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkRp
Y3Rpb25hcnkgbWVtYmVyIGxhY2tzIGEgbmFtZSIpOwotICAgIHJldC5kZWZhdWx0ID0gX2RlZmF1
bHRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1siRGVmYXVsdCJdLnBhcnNlKHRva2Vu
aXNlcik7Ci0gICAgaWYgKHRva2Vucy5yZXF1aXJlZCAmJiByZXQuZGVmYXVsdCkgdG9rZW5pc2Vy
LmVycm9yKCJSZXF1aXJlZCBtZW1iZXIgbXVzdCBub3QgaGF2ZSBhIGRlZmF1bHQiKTsKLSAgICB0
b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRva2VuaXNlci5l
cnJvcigiVW50ZXJtaW5hdGVkIGRpY3Rpb25hcnkgbWVtYmVyLCBleHBlY3RlZCBgO2AiKTsKKyAg
ICByZXQuaWRsVHlwZSA9CisgICAgICAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMV9fLnR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzKSh0b2tlbmlzZXIsICJkaWN0
aW9uYXJ5LXR5cGUiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKCJEaWN0aW9uYXJ5IG1lbWJl
ciBsYWNrcyBhIHR5cGUiKTsKKyAgICB0b2tlbnMubmFtZSA9CisgICAgICB0b2tlbmlzZXIuY29u
c3VtZVR5cGUoImlkZW50aWZpZXIiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKCJEaWN0aW9u
YXJ5IG1lbWJlciBsYWNrcyBhIG5hbWUiKTsKKyAgICByZXQuZGVmYXVsdCA9IF9kZWZhdWx0X2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uRGVmYXVsdC5wYXJzZSh0b2tlbmlzZXIpOwor
ICAgIGlmICh0b2tlbnMucmVxdWlyZWQgJiYgcmV0LmRlZmF1bHQpCisgICAgICB0b2tlbmlzZXIu
ZXJyb3IoIlJlcXVpcmVkIG1lbWJlciBtdXN0IG5vdCBoYXZlIGEgZGVmYXVsdCIpOworICAgIHRv
a2Vucy50ZXJtaW5hdGlvbiA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8CisgICAg
ICB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBkaWN0aW9uYXJ5IG1lbWJlciwgZXhwZWN0
ZWQgYDtgIik7CiAgICAgcmV0dXJuIHJldC50aGlzOwogICB9CiAKQEAgLTI2NjMsNyArMzMwNiw3
IEBAIGNsYXNzIEZpZWxkIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfX1siQmFzZSJdIHsKICAgICByZXR1cm4gImZpZWxkIjsKICAgfQogICBnZXQgbmFtZSgpIHsK
LSAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLm5hbWUudmFsdWUpOworICAgIHJldHVybiAoMCxf
aGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVuZXNjYXBlKSh0aGlzLnRv
a2Vucy5uYW1lLnZhbHVlKTsKICAgfQogICBnZXQgcmVxdWlyZWQoKSB7CiAgICAgcmV0dXJuICEh
dGhpcy50b2tlbnMucmVxdWlyZWQ7CkBAIC0yNjcyLDI4ICszMzE1LDQ3IEBAIGNsYXNzIEZpZWxk
IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsK
ICAgKnZhbGlkYXRlKGRlZnMpIHsKICAgICB5aWVsZCogdGhpcy5pZGxUeXBlLnZhbGlkYXRlKGRl
ZnMpOwogICB9CisKKyAgLyoqIEBwYXJhbSB7aW1wb3J0KCIuLi93cml0ZXIuanMiKS5Xcml0ZXJ9
IHcgKi8KKyAgd3JpdGUodykgeworICAgIGNvbnN0IHsgcGFyZW50IH0gPSB0aGlzOworICAgIHJl
dHVybiB3LnRzLmRlZmluaXRpb24oCisgICAgICB3LnRzLndyYXAoWworICAgICAgICB0aGlzLmV4
dEF0dHJzLndyaXRlKHcpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnJlcXVpcmVkKSwK
KyAgICAgICAgdy50cy50eXBlKHRoaXMuaWRsVHlwZS53cml0ZSh3KSksCisgICAgICAgIHcubmFt
ZV90b2tlbih0aGlzLnRva2Vucy5uYW1lLCB7IGRhdGE6IHRoaXMsIHBhcmVudCB9KSwKKyAgICAg
ICAgdGhpcy5kZWZhdWx0ID8gdGhpcy5kZWZhdWx0LndyaXRlKHcpIDogIiIsCisgICAgICAgIHcu
dG9rZW4odGhpcy50b2tlbnMudGVybWluYXRpb24pLAorICAgICAgXSksCisgICAgICB7IGRhdGE6
IHRoaXMsIHBhcmVudCB9CisgICAgKTsKKyAgfQogfQogCiAKIC8qKiovIH0pLAogLyogMjggKi8K
LS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19y
ZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18s
IF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBz
dHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyog
aGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBh
Y2tfZXhwb3J0c19fLCAiTmFtZXNwYWNlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBOYW1lc3BhY2U7
IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFj
a19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIk5hbWVzcGFjZSI6ICgpID0+
ICgvKiBiaW5kaW5nICovIE5hbWVzcGFjZSkKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyog
aGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjApOwogLyogaGFybW9ueSBpbXBvcnQgKi8g
dmFyIF9hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFj
a19yZXF1aXJlX18oMTQpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9vcGVyYXRpb25fanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTMpOwog
LyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZh
ciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fID0gX193ZWJwYWNrX3Jl
cXVpcmVfXyg0KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29uc3RhbnRfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjEpOwogCiAKIAog
CiAKIAotY2xhc3MgTmFtZXNwYWNlIGV4dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXSB7CisKK2NsYXNzIE5hbWVzcGFjZSBleHRlbmRz
IF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5Db250YWluZXIgewog
ICAvKioKICAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9r
ZW5pc2VyCiAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10KQEAgLTI3MDUsMTMgKzMzNjcs
MTggQEAgY2xhc3MgTmFtZXNwYWNlIGV4dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXQogICAgIGlmICghdG9rZW5zLmJhc2UpIHsKICAg
ICAgIHJldHVybjsKICAgICB9Ci0gICAgcmV0dXJuIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0ucGFyc2UodG9rZW5pc2VyLCBuZXcgTmFtZXNw
YWNlKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSksIHsKLSAgICAgIHR5cGU6
ICJuYW1lc3BhY2UiLAotICAgICAgYWxsb3dlZE1lbWJlcnM6IFsKLSAgICAgICAgW19hdHRyaWJ1
dGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siQXR0cmlidXRlIl0ucGFyc2UsIHsg
bm9Jbmhlcml0OiB0cnVlLCByZWFkb25seTogdHJ1ZSB9XSwKLSAgICAgICAgW19vcGVyYXRpb25f
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siT3BlcmF0aW9uIl0ucGFyc2UsIHsgcmVn
dWxhcjogdHJ1ZSB9XQotICAgICAgXQotICAgIH0pOworICAgIHJldHVybiBfY29udGFpbmVyX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQ29udGFpbmVyLnBhcnNlKAorICAgICAgdG9r
ZW5pc2VyLAorICAgICAgbmV3IE5hbWVzcGFjZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwg
dG9rZW5zIH0pLAorICAgICAgeworICAgICAgICB0eXBlOiAibmFtZXNwYWNlIiwKKyAgICAgICAg
YWxsb3dlZE1lbWJlcnM6IFsKKyAgICAgICAgICBbX2F0dHJpYnV0ZV9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMV9fLkF0dHJpYnV0ZS5wYXJzZSwgeyBub0luaGVyaXQ6IHRydWUsIHJlYWRv
bmx5OiB0cnVlIH1dLAorICAgICAgICAgIFtfY29uc3RhbnRfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzVfXy5Db25zdGFudC5wYXJzZV0sCisgICAgICAgICAgW19vcGVyYXRpb25fanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5PcGVyYXRpb24ucGFyc2UsIHsgcmVndWxhcjogdHJ1
ZSB9XSwKKyAgICAgICAgXSwKKyAgICAgIH0KKyAgICApOwogICB9CiAKICAgZ2V0IHR5cGUoKSB7
CkBAIC0yNzE5LDE1ICszMzg2LDI0IEBAIGNsYXNzIE5hbWVzcGFjZSBleHRlbmRzIF9jb250YWlu
ZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0KICAgfQogCiAg
ICp2YWxpZGF0ZShkZWZzKSB7Ci0gICAgaWYgKCF0aGlzLnBhcnRpYWwgJiYgdGhpcy5leHRBdHRy
cy5ldmVyeShleHRBdHRyID0+IGV4dEF0dHIubmFtZSAhPT0gIkV4cG9zZWQiKSkgeworICAgIGlm
ICgKKyAgICAgICF0aGlzLnBhcnRpYWwgJiYKKyAgICAgIHRoaXMuZXh0QXR0cnMuZXZlcnkoKGV4
dEF0dHIpID0+IGV4dEF0dHIubmFtZSAhPT0gIkV4cG9zZWQiKQorICAgICkgewogICAgICAgY29u
c3QgbWVzc2FnZSA9IGBOYW1lc3BhY2VzIG11c3QgaGF2ZSBbRXhwb3NlZF0gZXh0ZW5kZWQgYXR0
cmlidXRlLiBcCiBUbyBmaXgsIGFkZCwgZm9yIGV4YW1wbGUsIFtFeHBvc2VkPVdpbmRvd10uIFBs
ZWFzZSBhbHNvIGNvbnNpZGVyIGNhcmVmdWxseSBcCiBpZiB5b3VyIG5hbWVzcGFjZSBzaG91bGQg
YWxzbyBiZSBleHBvc2VkIGluIGEgV29ya2VyIHNjb3BlLiBSZWZlciB0byB0aGUgXAogW1dlYklE
TCBzcGVjIHNlY3Rpb24gb24gRXhwb3NlZF0oaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlk
bC8jRXhwb3NlZCkgXAogZm9yIG1vcmUgaW5mb3JtYXRpb24uYDsKLSAgICAgIHlpZWxkIE9iamVj
dChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1sidmFsaWRhdGlvbkVycm9y
Il0pKHRoaXMudG9rZW5zLm5hbWUsIHRoaXMsICJyZXF1aXJlLWV4cG9zZWQiLCBtZXNzYWdlLCB7
Ci0gICAgICAgIGF1dG9maXg6IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfNF9fWyJhdXRvZml4QWRkRXhwb3NlZFdpbmRvdyJdKSh0aGlzKQotICAgICAgfSk7Cisg
ICAgICB5aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy52YWxp
ZGF0aW9uRXJyb3IpKAorICAgICAgICB0aGlzLnRva2Vucy5uYW1lLAorICAgICAgICB0aGlzLAor
ICAgICAgICAicmVxdWlyZS1leHBvc2VkIiwKKyAgICAgICAgbWVzc2FnZSwKKyAgICAgICAgewor
ICAgICAgICAgIGF1dG9maXg6ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV80X18uYXV0b2ZpeEFkZEV4cG9zZWRXaW5kb3cpKHRoaXMpLAorICAgICAgICB9CisgICAgICAp
OwogICAgIH0KICAgICB5aWVsZCogc3VwZXIudmFsaWRhdGUoZGVmcyk7CiAgIH0KQEAgLTI3MzYs
MTEgKzM0MTIsMTIgQEAgZm9yIG1vcmUgaW5mb3JtYXRpb24uYDsKIAogLyoqKi8gfSksCiAvKiAy
OSAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJw
YWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1
bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0i
dXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7
Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9f
d2VicGFja19leHBvcnRzX18sICJDYWxsYmFja0ludGVyZmFjZSIsIGZ1bmN0aW9uKCkgeyByZXR1
cm4gQ2FsbGJhY2tJbnRlcmZhY2U7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNr
X3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICov
ICAgIkNhbGxiYWNrSW50ZXJmYWNlIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gQ2FsbGJhY2tJbnRl
cmZhY2UpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZh
ciBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tf
cmVxdWlyZV9fKDIwKTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfb3BlcmF0aW9uX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKTsKIC8q
IGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29uc3RhbnRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjEpOwpAQCAtMjc1MCw3ICszNDI3LDcgQEAg
X193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwogCiAKIAotY2xhc3Mg
Q2FsbGJhY2tJbnRlcmZhY2UgZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX19bIkNvbnRhaW5lciJdIHsKK2NsYXNzIENhbGxiYWNrSW50ZXJmYWNlIGV4dGVu
ZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkNvbnRhaW5lciB7
CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0
b2tlbmlzZXIKICAgICovCkBAIC0yNzYwLDE0ICszNDM3LDE4IEBAIGNsYXNzIENhbGxiYWNrSW50
ZXJmYWNlIGV4dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
WyJDb250CiAgICAgaWYgKCF0b2tlbnMuYmFzZSkgewogICAgICAgcmV0dXJuOwogICAgIH0KLSAg
ICByZXR1cm4gX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250
YWluZXIiXS5wYXJzZSh0b2tlbmlzZXIsIG5ldyBDYWxsYmFja0ludGVyZmFjZSh7IHNvdXJjZTog
dG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pLCB7Ci0gICAgICB0eXBlOiAiY2FsbGJhY2sgaW50
ZXJmYWNlIiwKLSAgICAgIGluaGVyaXRhYmxlOiAhcGFydGlhbCwKLSAgICAgIGFsbG93ZWRNZW1i
ZXJzOiBbCi0gICAgICAgIFtfY29uc3RhbnRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJf
X1siQ29uc3RhbnQiXS5wYXJzZV0sCi0gICAgICAgIFtfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX19bIk9wZXJhdGlvbiJdLnBhcnNlLCB7IHJlZ3VsYXI6IHRydWUgfV0K
LSAgICAgIF0KLSAgICB9KTsKKyAgICByZXR1cm4gX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMF9fLkNvbnRhaW5lci5wYXJzZSgKKyAgICAgIHRva2VuaXNlciwKKyAgICAg
IG5ldyBDYWxsYmFja0ludGVyZmFjZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5z
IH0pLAorICAgICAgeworICAgICAgICB0eXBlOiAiY2FsbGJhY2sgaW50ZXJmYWNlIiwKKyAgICAg
ICAgaW5oZXJpdGFibGU6ICFwYXJ0aWFsLAorICAgICAgICBhbGxvd2VkTWVtYmVyczogWworICAg
ICAgICAgIFtfY29uc3RhbnRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5Db25zdGFu
dC5wYXJzZV0sCisgICAgICAgICAgW19vcGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzFfXy5PcGVyYXRpb24ucGFyc2UsIHsgcmVndWxhcjogdHJ1ZSB9XSwKKyAgICAgICAgXSwK
KyAgICAgIH0KKyAgICApOwogICB9CiAKICAgZ2V0IHR5cGUoKSB7CkBAIC0yNzc4LDE5ICszNDU5
LDE5IEBAIGNsYXNzIENhbGxiYWNrSW50ZXJmYWNlIGV4dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250CiAKIC8qKiovIH0pLAogLyogMzAgKi8KLS8q
KiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1
aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9f
d2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJp
Y3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFy
bW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tf
ZXhwb3J0c19fLCAid3JpdGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHdyaXRlOyB9KTsKLQotCisv
KiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9y
dHNfXywgeworLyogaGFybW9ueSBleHBvcnQgKi8gICAiV3JpdGVyIjogKCkgPT4gKC8qIGJpbmRp
bmcgKi8gV3JpdGVyKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIndyaXRlIjogKCkgPT4gKC8q
IGJpbmRpbmcgKi8gd3JpdGUpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIGZ1bmN0aW9uIG5v
b3AoYXJnKSB7CiAgIHJldHVybiBhcmc7CiB9CiAKIGNvbnN0IHRlbXBsYXRlcyA9IHsKLSAgd3Jh
cDogaXRlbXMgPT4gaXRlbXMuam9pbigiIiksCisgIHdyYXA6IChpdGVtcykgPT4gaXRlbXMuam9p
bigiIiksCiAgIHRyaXZpYTogbm9vcCwKICAgbmFtZTogbm9vcCwKICAgcmVmZXJlbmNlOiBub29w
LApAQCAtMjgwMCwzMzUgKzM0ODEsNzQgQEAgY29uc3QgdGVtcGxhdGVzID0gewogICBpbmhlcml0
YW5jZTogbm9vcCwKICAgZGVmaW5pdGlvbjogbm9vcCwKICAgZXh0ZW5kZWRBdHRyaWJ1dGU6IG5v
b3AsCi0gIGV4dGVuZGVkQXR0cmlidXRlUmVmZXJlbmNlOiBub29wCisgIGV4dGVuZGVkQXR0cmli
dXRlUmVmZXJlbmNlOiBub29wLAogfTsKIAotZnVuY3Rpb24gd3JpdGUoYXN0LCB7IHRlbXBsYXRl
czogdHMgPSB0ZW1wbGF0ZXMgfSA9IHt9KSB7Ci0gIHRzID0gT2JqZWN0LmFzc2lnbih7fSwgdGVt
cGxhdGVzLCB0cyk7CitjbGFzcyBXcml0ZXIgeworICBjb25zdHJ1Y3Rvcih0cykgeworICAgIHRo
aXMudHMgPSBPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZXMsIHRzKTsKKyAgfQogCi0gIGZ1bmN0
aW9uIHJlZmVyZW5jZShyYXcsIHsgdW5lc2NhcGVkLCBjb250ZXh0IH0pIHsKKyAgcmVmZXJlbmNl
KHJhdywgeyB1bmVzY2FwZWQsIGNvbnRleHQgfSkgewogICAgIGlmICghdW5lc2NhcGVkKSB7CiAg
ICAgICB1bmVzY2FwZWQgPSByYXcuc3RhcnRzV2l0aCgiXyIpID8gcmF3LnNsaWNlKDEpIDogcmF3
OwogICAgIH0KLSAgICByZXR1cm4gdHMucmVmZXJlbmNlKHJhdywgdW5lc2NhcGVkLCBjb250ZXh0
KTsKKyAgICByZXR1cm4gdGhpcy50cy5yZWZlcmVuY2UocmF3LCB1bmVzY2FwZWQsIGNvbnRleHQp
OwogICB9CiAKLSAgZnVuY3Rpb24gdG9rZW4odCwgd3JhcHBlciA9IG5vb3AsIC4uLmFyZ3MpIHsK
KyAgdG9rZW4odCwgd3JhcHBlciA9IG5vb3AsIC4uLmFyZ3MpIHsKICAgICBpZiAoIXQpIHsKICAg
ICAgIHJldHVybiAiIjsKICAgICB9CiAgICAgY29uc3QgdmFsdWUgPSB3cmFwcGVyKHQudmFsdWUs
IC4uLmFyZ3MpOwotICAgIHJldHVybiB0cy53cmFwKFt0cy50cml2aWEodC50cml2aWEpLCB2YWx1
ZV0pOworICAgIHJldHVybiB0aGlzLnRzLndyYXAoW3RoaXMudHMudHJpdmlhKHQudHJpdmlhKSwg
dmFsdWVdKTsKICAgfQogCi0gIGZ1bmN0aW9uIHJlZmVyZW5jZV90b2tlbih0LCBjb250ZXh0KSB7
Ci0gICAgcmV0dXJuIHRva2VuKHQsIHJlZmVyZW5jZSwgeyBjb250ZXh0IH0pOworICByZWZlcmVu
Y2VfdG9rZW4odCwgY29udGV4dCkgeworICAgIHJldHVybiB0aGlzLnRva2VuKHQsIHRoaXMucmVm
ZXJlbmNlLmJpbmQodGhpcyksIHsgY29udGV4dCB9KTsKICAgfQogCi0gIGZ1bmN0aW9uIG5hbWVf
dG9rZW4odCwgYXJnKSB7Ci0gICAgcmV0dXJuIHRva2VuKHQsIHRzLm5hbWUsIGFyZyk7CisgIG5h
bWVfdG9rZW4odCwgYXJnKSB7CisgICAgcmV0dXJuIHRoaXMudG9rZW4odCwgdGhpcy50cy5uYW1l
LCBhcmcpOwogICB9CiAKLSAgZnVuY3Rpb24gdHlwZV9ib2R5KGl0KSB7Ci0gICAgaWYgKGl0LnVu
aW9uIHx8IGl0LmdlbmVyaWMpIHsKLSAgICAgIHJldHVybiB0cy53cmFwKFsKLSAgICAgICAgdG9r
ZW4oaXQudG9rZW5zLmJhc2UsIHRzLmdlbmVyaWMpLAotICAgICAgICB0b2tlbihpdC50b2tlbnMu
b3BlbiksCi0gICAgICAgIC4uLml0LnN1YnR5cGUubWFwKHR5cGUpLAotICAgICAgICB0b2tlbihp
dC50b2tlbnMuY2xvc2UpCi0gICAgICBdKTsKLSAgICB9Ci0gICAgY29uc3QgZmlyc3RUb2tlbiA9
IGl0LnRva2Vucy5wcmVmaXggfHwgaXQudG9rZW5zLmJhc2U7Ci0gICAgY29uc3QgcHJlZml4ID0g
aXQudG9rZW5zLnByZWZpeCA/IFsKLSAgICAgIGl0LnRva2Vucy5wcmVmaXgudmFsdWUsCi0gICAg
ICB0cy50cml2aWEoaXQudG9rZW5zLmJhc2UudHJpdmlhKQotICAgIF0gOiBbXTsKLSAgICBjb25z
dCByZWYgPSByZWZlcmVuY2UodHMud3JhcChbCi0gICAgICAuLi5wcmVmaXgsCi0gICAgICBpdC50
b2tlbnMuYmFzZS52YWx1ZSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5wb3N0Zml4KQotICAgIF0p
LCB7IHVuZXNjYXBlZDogaXQuaWRsVHlwZSwgY29udGV4dDogaXQgfSk7Ci0gICAgcmV0dXJuIHRz
LndyYXAoW3RzLnRyaXZpYShmaXJzdFRva2VuLnRyaXZpYSksIHJlZl0pOwotICB9Ci0gIGZ1bmN0
aW9uIHR5cGUoaXQpIHsKLSAgICByZXR1cm4gdHMud3JhcChbCi0gICAgICBleHRlbmRlZF9hdHRy
aWJ1dGVzKGl0LmV4dEF0dHJzKSwKLSAgICAgIHR5cGVfYm9keShpdCksCi0gICAgICB0b2tlbihp
dC50b2tlbnMubnVsbGFibGUpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLnNlcGFyYXRvcikKLSAg
ICBdKTsKLSAgfQotICBmdW5jdGlvbiBkZWZhdWx0XyhkZWYpIHsKLSAgICBpZiAoIWRlZikgewot
ICAgICAgcmV0dXJuICIiOwotICAgIH0KLSAgICByZXR1cm4gdHMud3JhcChbCi0gICAgICB0b2tl
bihkZWYudG9rZW5zLmFzc2lnbiksCi0gICAgICAuLi5kZWYuZXhwcmVzc2lvbi5tYXAodCA9PiB0
b2tlbih0KSkKLSAgICBdKTsKLSAgfQotICBmdW5jdGlvbiBhcmd1bWVudChhcmcpIHsKLSAgICBy
ZXR1cm4gdHMud3JhcChbCi0gICAgICBleHRlbmRlZF9hdHRyaWJ1dGVzKGFyZy5leHRBdHRycyks
Ci0gICAgICB0b2tlbihhcmcudG9rZW5zLm9wdGlvbmFsKSwKLSAgICAgIHRzLnR5cGUodHlwZShh
cmcuaWRsVHlwZSkpLAotICAgICAgdG9rZW4oYXJnLnRva2Vucy52YXJpYWRpYyksCi0gICAgICBu
YW1lX3Rva2VuKGFyZy50b2tlbnMubmFtZSwgeyBkYXRhOiBhcmcgfSksCi0gICAgICBkZWZhdWx0
XyhhcmcuZGVmYXVsdCksCi0gICAgICB0b2tlbihhcmcudG9rZW5zLnNlcGFyYXRvcikKLSAgICBd
KTsKLSAgfQotICBmdW5jdGlvbiBleHRlbmRlZF9hdHRyaWJ1dGVfbGlzdGl0ZW0oc3RyKSB7Ci0g
ICAgcmV0dXJuIHRzLndyYXAoWwotICAgICAgdG9rZW4oc3RyLnRva2Vucy52YWx1ZSksCi0gICAg
ICB0b2tlbihzdHIudG9rZW5zLnNlcGFyYXRvcikKLSAgICBdKTsKLSAgfQotICBmdW5jdGlvbiBp
ZGVudGlmaWVyKGlkLCBjb250ZXh0KSB7Ci0gICAgcmV0dXJuIHRzLndyYXAoWwotICAgICAgcmVm
ZXJlbmNlX3Rva2VuKGlkLnRva2Vucy52YWx1ZSwgY29udGV4dCksCi0gICAgICB0b2tlbihpZC50
b2tlbnMuc2VwYXJhdG9yKQotICAgIF0pOwotICB9Ci0gIGZ1bmN0aW9uIG1ha2VfZXh0X2F0KGl0
KSB7Ci0gICAgY29uc3QgeyByaHNUeXBlIH0gPSBpdC5wYXJhbXM7Ci0gICAgcmV0dXJuIHRzLndy
YXAoWwotICAgICAgdHMudHJpdmlhKGl0LnRva2Vucy5uYW1lLnRyaXZpYSksCi0gICAgICB0cy5l
eHRlbmRlZEF0dHJpYnV0ZSh0cy53cmFwKFsKLSAgICAgICAgdHMuZXh0ZW5kZWRBdHRyaWJ1dGVS
ZWZlcmVuY2UoaXQubmFtZSksCi0gICAgICAgIHRva2VuKGl0LnBhcmFtcy50b2tlbnMuYXNzaWdu
KSwKLSAgICAgICAgcmVmZXJlbmNlX3Rva2VuKGl0LnBhcmFtcy50b2tlbnMuc2Vjb25kYXJ5TmFt
ZSwgaXQpLAotICAgICAgICB0b2tlbihpdC5wYXJhbXMudG9rZW5zLm9wZW4pLAotICAgICAgICAu
Li4haXQucGFyYW1zLmxpc3QgPyBbXSA6Ci0gICAgICAgICAgaXQucGFyYW1zLmxpc3QubWFwKAot
ICAgICAgICAgICAgcmhzVHlwZSA9PT0gImlkZW50aWZpZXItbGlzdCIgPyBpZCA9PiBpZGVudGlm
aWVyKGlkLCBpdCkgOgotICAgICAgICAgICAgcmhzVHlwZSAmJiByaHNUeXBlLmVuZHNXaXRoKCIt
bGlzdCIpID8gZXh0ZW5kZWRfYXR0cmlidXRlX2xpc3RpdGVtIDoKLSAgICAgICAgICAgIGFyZ3Vt
ZW50Ci0gICAgICAgICAgKSwKLSAgICAgICAgdG9rZW4oaXQucGFyYW1zLnRva2Vucy5jbG9zZSkK
LSAgICAgIF0pKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5zZXBhcmF0b3IpCi0gICAgXSk7Ci0g
IH0KLSAgZnVuY3Rpb24gZXh0ZW5kZWRfYXR0cmlidXRlcyhlYXRzKSB7Ci0gICAgaWYgKCFlYXRz
Lmxlbmd0aCkgcmV0dXJuICIiOwotICAgIHJldHVybiB0cy53cmFwKFsKLSAgICAgIHRva2VuKGVh
dHMudG9rZW5zLm9wZW4pLAotICAgICAgLi4uZWF0cy5tYXAobWFrZV9leHRfYXQpLAotICAgICAg
dG9rZW4oZWF0cy50b2tlbnMuY2xvc2UpCisgIGlkZW50aWZpZXIoaWQsIGNvbnRleHQpIHsKKyAg
ICByZXR1cm4gdGhpcy50cy53cmFwKFsKKyAgICAgIHRoaXMucmVmZXJlbmNlX3Rva2VuKGlkLnRv
a2Vucy52YWx1ZSwgY29udGV4dCksCisgICAgICB0aGlzLnRva2VuKGlkLnRva2Vucy5zZXBhcmF0
b3IpLAogICAgIF0pOwogICB9Cit9CiAKLSAgZnVuY3Rpb24gb3BlcmF0aW9uKGl0LCBwYXJlbnQp
IHsKLSAgICBjb25zdCBib2R5ID0gaXQuaWRsVHlwZSA/IFsKLSAgICAgIHRzLnR5cGUodHlwZShp
dC5pZGxUeXBlKSksCi0gICAgICBuYW1lX3Rva2VuKGl0LnRva2Vucy5uYW1lLCB7IGRhdGE6IGl0
LCBwYXJlbnQgfSksCi0gICAgICB0b2tlbihpdC50b2tlbnMub3BlbiksCi0gICAgICB0cy53cmFw
KGl0LmFyZ3VtZW50cy5tYXAoYXJndW1lbnQpKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5jbG9z
ZSksCi0gICAgXSA6IFtdOwotICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWwotICAg
ICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCi0gICAgICBpdC50b2tlbnMubmFt
ZSA/IHRva2VuKGl0LnRva2Vucy5zcGVjaWFsKSA6IHRva2VuKGl0LnRva2Vucy5zcGVjaWFsLCB0
cy5uYW1lbGVzcywgeyBkYXRhOiBpdCwgcGFyZW50IH0pLAotICAgICAgLi4uYm9keSwKLSAgICAg
IHRva2VuKGl0LnRva2Vucy50ZXJtaW5hdGlvbikKLSAgICBdKSwgeyBkYXRhOiBpdCwgcGFyZW50
IH0pOwotICB9Ci0KLSAgZnVuY3Rpb24gYXR0cmlidXRlKGl0LCBwYXJlbnQpIHsKLSAgICByZXR1
cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKLSAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQu
ZXh0QXR0cnMpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLnNwZWNpYWwpLAotICAgICAgdG9rZW4o
aXQudG9rZW5zLnJlYWRvbmx5KSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5iYXNlKSwKLSAgICAg
IHRzLnR5cGUodHlwZShpdC5pZGxUeXBlKSksCi0gICAgICBuYW1lX3Rva2VuKGl0LnRva2Vucy5u
YW1lLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSksCi0gICAgICB0b2tlbihpdC50b2tlbnMudGVybWlu
YXRpb24pCi0gICAgXSksIHsgZGF0YTogaXQsIHBhcmVudCB9KTsKLSAgfQotCi0gIGZ1bmN0aW9u
IGNvbnN0cnVjdG9yKGl0LCBwYXJlbnQpIHsKLSAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53
cmFwKFsKLSAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAotICAgICAgdG9r
ZW4oaXQudG9rZW5zLmJhc2UsIHRzLm5hbWVsZXNzLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSksCi0g
ICAgICB0b2tlbihpdC50b2tlbnMub3BlbiksCi0gICAgICB0cy53cmFwKGl0LmFyZ3VtZW50cy5t
YXAoYXJndW1lbnQpKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5jbG9zZSksCi0gICAgICB0b2tl
bihpdC50b2tlbnMudGVybWluYXRpb24pCi0gICAgXSksIHsgZGF0YTogaXQsIHBhcmVudCB9KTsK
LSAgfQotCi0gIGZ1bmN0aW9uIGluaGVyaXRhbmNlKGluaCkgewotICAgIGlmICghaW5oLnRva2Vu
cy5pbmhlcml0YW5jZSkgewotICAgICAgcmV0dXJuICIiOwotICAgIH0KLSAgICByZXR1cm4gdHMu
d3JhcChbCi0gICAgICB0b2tlbihpbmgudG9rZW5zLmNvbG9uKSwKLSAgICAgIHRzLnRyaXZpYShp
bmgudG9rZW5zLmluaGVyaXRhbmNlLnRyaXZpYSksCi0gICAgICB0cy5pbmhlcml0YW5jZShyZWZl
cmVuY2UoaW5oLnRva2Vucy5pbmhlcml0YW5jZS52YWx1ZSwgeyBjb250ZXh0OiBpbmggfSkpCi0g
ICAgXSk7Ci0gIH0KK2Z1bmN0aW9uIHdyaXRlKGFzdCwgeyB0ZW1wbGF0ZXM6IHRzID0gdGVtcGxh
dGVzIH0gPSB7fSkgeworICB0cyA9IE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlcywgdHMpOwog
Ci0gIGZ1bmN0aW9uIGNvbnRhaW5lcihpdCkgewotICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRz
LndyYXAoWwotICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCi0gICAgICB0
b2tlbihpdC50b2tlbnMuY2FsbGJhY2spLAotICAgICAgdG9rZW4oaXQudG9rZW5zLnBhcnRpYWwp
LAotICAgICAgdG9rZW4oaXQudG9rZW5zLmJhc2UpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLm1p
eGluKSwKLSAgICAgIG5hbWVfdG9rZW4oaXQudG9rZW5zLm5hbWUsIHsgZGF0YTogaXQgfSksCi0g
ICAgICBpbmhlcml0YW5jZShpdCksCi0gICAgICB0b2tlbihpdC50b2tlbnMub3BlbiksCi0gICAg
ICBpdGVyYXRlKGl0Lm1lbWJlcnMsIGl0KSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5jbG9zZSks
Ci0gICAgICB0b2tlbihpdC50b2tlbnMudGVybWluYXRpb24pCi0gICAgXSksIHsgZGF0YTogaXQg
fSk7Ci0gIH0KLQotICBmdW5jdGlvbiBmaWVsZChpdCwgcGFyZW50KSB7Ci0gICAgcmV0dXJuIHRz
LmRlZmluaXRpb24odHMud3JhcChbCi0gICAgICBleHRlbmRlZF9hdHRyaWJ1dGVzKGl0LmV4dEF0
dHJzKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5yZXF1aXJlZCksCi0gICAgICB0cy50eXBlKHR5
cGUoaXQuaWRsVHlwZSkpLAotICAgICAgbmFtZV90b2tlbihpdC50b2tlbnMubmFtZSwgeyBkYXRh
OiBpdCwgcGFyZW50IH0pLAotICAgICAgZGVmYXVsdF8oaXQuZGVmYXVsdCksCi0gICAgICB0b2tl
bihpdC50b2tlbnMudGVybWluYXRpb24pCi0gICAgXSksIHsgZGF0YTogaXQsIHBhcmVudCB9KTsK
LSAgfQotICBmdW5jdGlvbiBjb25zdF8oaXQsIHBhcmVudCkgewotICAgIHJldHVybiB0cy5kZWZp
bml0aW9uKHRzLndyYXAoWwotICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyks
Ci0gICAgICB0b2tlbihpdC50b2tlbnMuYmFzZSksCi0gICAgICB0cy50eXBlKHR5cGUoaXQuaWRs
VHlwZSkpLAotICAgICAgbmFtZV90b2tlbihpdC50b2tlbnMubmFtZSwgeyBkYXRhOiBpdCwgcGFy
ZW50IH0pLAotICAgICAgdG9rZW4oaXQudG9rZW5zLmFzc2lnbiksCi0gICAgICB0b2tlbihpdC50
b2tlbnMudmFsdWUpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQotICAgIF0p
LCB7IGRhdGE6IGl0LCBwYXJlbnQgfSk7Ci0gIH0KLSAgZnVuY3Rpb24gdHlwZWRlZihpdCkgewot
ICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWwotICAgICAgZXh0ZW5kZWRfYXR0cmli
dXRlcyhpdC5leHRBdHRycyksCi0gICAgICB0b2tlbihpdC50b2tlbnMuYmFzZSksCi0gICAgICB0
cy50eXBlKHR5cGUoaXQuaWRsVHlwZSkpLAotICAgICAgbmFtZV90b2tlbihpdC50b2tlbnMubmFt
ZSwgeyBkYXRhOiBpdCB9KSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy50ZXJtaW5hdGlvbikKLSAg
ICBdKSwgeyBkYXRhOiBpdCB9KTsKLSAgfQotICBmdW5jdGlvbiBpbmNsdWRlcyhpdCkgewotICAg
IHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWwotICAgICAgZXh0ZW5kZWRfYXR0cmlidXRl
cyhpdC5leHRBdHRycyksCi0gICAgICByZWZlcmVuY2VfdG9rZW4oaXQudG9rZW5zLnRhcmdldCwg
aXQpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLmluY2x1ZGVzKSwKLSAgICAgIHJlZmVyZW5jZV90
b2tlbihpdC50b2tlbnMubWl4aW4sIGl0KSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy50ZXJtaW5h
dGlvbikKLSAgICBdKSwgeyBkYXRhOiBpdCB9KTsKLSAgfQotICBmdW5jdGlvbiBjYWxsYmFjayhp
dCkgewotICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWwotICAgICAgZXh0ZW5kZWRf
YXR0cmlidXRlcyhpdC5leHRBdHRycyksCi0gICAgICB0b2tlbihpdC50b2tlbnMuYmFzZSksCi0g
ICAgICBuYW1lX3Rva2VuKGl0LnRva2Vucy5uYW1lLCB7IGRhdGE6IGl0IH0pLAotICAgICAgdG9r
ZW4oaXQudG9rZW5zLmFzc2lnbiksCi0gICAgICB0cy50eXBlKHR5cGUoaXQuaWRsVHlwZSkpLAot
ICAgICAgdG9rZW4oaXQudG9rZW5zLm9wZW4pLAotICAgICAgLi4uaXQuYXJndW1lbnRzLm1hcChh
cmd1bWVudCksCi0gICAgICB0b2tlbihpdC50b2tlbnMuY2xvc2UpLAotICAgICAgdG9rZW4oaXQu
dG9rZW5zLnRlcm1pbmF0aW9uKSwKLSAgICBdKSwgeyBkYXRhOiBpdCB9KTsKLSAgfQotICBmdW5j
dGlvbiBlbnVtXyhpdCkgewotICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWwotICAg
ICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCi0gICAgICB0b2tlbihpdC50b2tl
bnMuYmFzZSksCi0gICAgICBuYW1lX3Rva2VuKGl0LnRva2Vucy5uYW1lLCB7IGRhdGE6IGl0IH0p
LAotICAgICAgdG9rZW4oaXQudG9rZW5zLm9wZW4pLAotICAgICAgaXRlcmF0ZShpdC52YWx1ZXMs
IGl0KSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5jbG9zZSksCi0gICAgICB0b2tlbihpdC50b2tl
bnMudGVybWluYXRpb24pCi0gICAgXSksIHsgZGF0YTogaXQgfSk7Ci0gIH0KLSAgZnVuY3Rpb24g
ZW51bV92YWx1ZSh2LCBwYXJlbnQpIHsKLSAgICByZXR1cm4gdHMud3JhcChbCi0gICAgICB0cy50
cml2aWEodi50b2tlbnMudmFsdWUudHJpdmlhKSwKLSAgICAgIHRzLmRlZmluaXRpb24oCi0gICAg
ICAgIHRzLndyYXAoWyciJywgdHMubmFtZSh2LnZhbHVlLCB7IGRhdGE6IHYsIHBhcmVudCB9KSwg
JyInXSksCi0gICAgICAgIHsgZGF0YTogdiwgcGFyZW50IH0KLSAgICAgICksCi0gICAgICB0b2tl
bih2LnRva2Vucy5zZXBhcmF0b3IpCi0gICAgXSk7Ci0gIH0KLSAgZnVuY3Rpb24gaXRlcmFibGVf
bGlrZShpdCwgcGFyZW50KSB7Ci0gICAgcmV0dXJuIHRzLmRlZmluaXRpb24odHMud3JhcChbCi0g
ICAgICBleHRlbmRlZF9hdHRyaWJ1dGVzKGl0LmV4dEF0dHJzKSwKLSAgICAgIHRva2VuKGl0LnRv
a2Vucy5yZWFkb25seSksCi0gICAgICB0b2tlbihpdC50b2tlbnMuYXN5bmMpLAotICAgICAgdG9r
ZW4oaXQudG9rZW5zLmJhc2UsIHRzLmdlbmVyaWMpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLm9w
ZW4pLAotICAgICAgdHMud3JhcChpdC5pZGxUeXBlLm1hcCh0eXBlKSksCi0gICAgICB0b2tlbihp
dC50b2tlbnMuY2xvc2UpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLmFyZ3NPcGVuKSwKLSAgICAg
IHRzLndyYXAoaXQuYXJndW1lbnRzLm1hcChhcmd1bWVudCkpLAotICAgICAgdG9rZW4oaXQudG9r
ZW5zLmFyZ3NDbG9zZSksCi0gICAgICB0b2tlbihpdC50b2tlbnMudGVybWluYXRpb24pCi0gICAg
XSksIHsgZGF0YTogaXQsIHBhcmVudCB9KTsKLSAgfQotICBmdW5jdGlvbiBlb2YoaXQpIHsKLSAg
ICByZXR1cm4gdHMudHJpdmlhKGl0LnRyaXZpYSk7Ci0gIH0KLQotICBjb25zdCB0YWJsZSA9IHsK
LSAgICBpbnRlcmZhY2U6IGNvbnRhaW5lciwKLSAgICAiaW50ZXJmYWNlIG1peGluIjogY29udGFp
bmVyLAotICAgIG5hbWVzcGFjZTogY29udGFpbmVyLAotICAgIG9wZXJhdGlvbiwKLSAgICBhdHRy
aWJ1dGUsCi0gICAgY29uc3RydWN0b3IsCi0gICAgZGljdGlvbmFyeTogY29udGFpbmVyLAotICAg
IGZpZWxkLAotICAgIGNvbnN0OiBjb25zdF8sCi0gICAgdHlwZWRlZiwKLSAgICBpbmNsdWRlcywK
LSAgICBjYWxsYmFjaywKLSAgICBlbnVtOiBlbnVtXywKLSAgICAiZW51bS12YWx1ZSI6IGVudW1f
dmFsdWUsCi0gICAgaXRlcmFibGU6IGl0ZXJhYmxlX2xpa2UsCi0gICAgbWFwbGlrZTogaXRlcmFi
bGVfbGlrZSwKLSAgICBzZXRsaWtlOiBpdGVyYWJsZV9saWtlLAotICAgICJjYWxsYmFjayBpbnRl
cmZhY2UiOiBjb250YWluZXIsCi0gICAgZW9mCi0gIH07Ci0gIGZ1bmN0aW9uIGRpc3BhdGNoKGl0
LCBwYXJlbnQpIHsKLSAgICBjb25zdCBkaXNwYXRjaGVyID0gdGFibGVbaXQudHlwZV07Ci0gICAg
aWYgKCFkaXNwYXRjaGVyKSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoYFR5cGUgIiR7aXQudHlw
ZX0iIGlzIHVuc3VwcG9ydGVkYCk7CisgIGNvbnN0IHcgPSBuZXcgV3JpdGVyKHRzKTsKKworICBm
dW5jdGlvbiBkaXNwYXRjaChpdCkgeworICAgIGlmIChpdC50eXBlID09PSAiZW9mIikgeworICAg
ICAgcmV0dXJuIHRzLnRyaXZpYShpdC50cml2aWEpOwogICAgIH0KLSAgICByZXR1cm4gdGFibGVb
aXQudHlwZV0oaXQsIHBhcmVudCk7Ci0gIH0KLSAgZnVuY3Rpb24gaXRlcmF0ZSh0aGluZ3MsIHBh
cmVudCkgewotICAgIGlmICghdGhpbmdzKSByZXR1cm47Ci0gICAgY29uc3QgcmVzdWx0cyA9IHRo
aW5ncy5tYXAodGhpbmcgPT4gZGlzcGF0Y2godGhpbmcsIHBhcmVudCkpOwotICAgIHJldHVybiB0
cy53cmFwKHJlc3VsdHMpOworICAgIHJldHVybiBpdC53cml0ZSh3KTsKICAgfQotICByZXR1cm4g
aXRlcmF0ZShhc3QpOworICByZXR1cm4gdHMud3JhcChhc3QubWFwKGRpc3BhdGNoKSk7CiB9CiAK
IAogLyoqKi8gfSksCiAvKiAzMSAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNr
X2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJw
YWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3Jl
cXVpcmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193
ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJw
YWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ2YWxpZGF0ZSIsIGZ1bmN0aW9u
KCkgeyByZXR1cm4gdmFsaWRhdGU7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNr
X3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICov
ICAgInZhbGlkYXRlIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gdmFsaWRhdGUpCisvKiBoYXJtb255
IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3JfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CiAKIAotCi0K
IGZ1bmN0aW9uIGdldE1peGluTWFwKGFsbCwgdW5pcXVlKSB7CiAgIGNvbnN0IG1hcCA9IG5ldyBN
YXAoKTsKLSAgY29uc3QgaW5jbHVkZXMgPSBhbGwuZmlsdGVyKGRlZiA9PiBkZWYudHlwZSA9PT0g
ImluY2x1ZGVzIik7CisgIGNvbnN0IGluY2x1ZGVzID0gYWxsLmZpbHRlcigoZGVmKSA9PiBkZWYu
dHlwZSA9PT0gImluY2x1ZGVzIik7CiAgIGZvciAoY29uc3QgaW5jbHVkZSBvZiBpbmNsdWRlcykg
ewogICAgIGNvbnN0IG1peGluID0gdW5pcXVlLmdldChpbmNsdWRlLmluY2x1ZGVzKTsKICAgICBp
ZiAoIW1peGluKSB7CkBAIC0zMTc4LDcgKzM1OTgsNyBAQCBmdW5jdGlvbiBncm91cERlZmluaXRp
b25zKGFsbCkgewogICAgIG1peGluTWFwOiBnZXRNaXhpbk1hcChhbGwsIHVuaXF1ZSksCiAgICAg
Y2FjaGU6IHsKICAgICAgIHR5cGVkZWZJbmNsdWRlc0RpY3Rpb25hcnk6IG5ldyBXZWFrTWFwKCks
Ci0gICAgICBkaWN0aW9uYXJ5SW5jbHVkZXNSZXF1aXJlZEZpZWxkOiBuZXcgV2Vha01hcCgpCisg
ICAgICBkaWN0aW9uYXJ5SW5jbHVkZXNSZXF1aXJlZEZpZWxkOiBuZXcgV2Vha01hcCgpLAogICAg
IH0sCiAgIH07CiB9CkBAIC0zMTg2LDggKzM2MDYsMTAgQEAgZnVuY3Rpb24gZ3JvdXBEZWZpbml0
aW9ucyhhbGwpIHsKIGZ1bmN0aW9uKiBjaGVja0R1cGxpY2F0ZWROYW1lcyh7IHVuaXF1ZSwgZHVw
bGljYXRlcyB9KSB7CiAgIGZvciAoY29uc3QgZHVwIG9mIGR1cGxpY2F0ZXMpIHsKICAgICBjb25z
dCB7IG5hbWUgfSA9IGR1cDsKLSAgICBjb25zdCBtZXNzYWdlID0gYFRoZSBuYW1lICIke25hbWV9
IiBvZiB0eXBlICIke3VuaXF1ZS5nZXQobmFtZSkudHlwZX0iIHdhcyBhbHJlYWR5IHNlZW5gOwot
ICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1si
dmFsaWRhdGlvbkVycm9yIl0pKGR1cC50b2tlbnMubmFtZSwgZHVwLCAibm8tZHVwbGljYXRlIiwg
bWVzc2FnZSk7CisgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgbmFtZSAiJHtuYW1lfSIgb2YgdHlw
ZSAiJHsKKyAgICAgIHVuaXF1ZS5nZXQobmFtZSkudHlwZQorICAgIH0iIHdhcyBhbHJlYWR5IHNl
ZW5gOworICAgIHlpZWxkICgwLF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
LnZhbGlkYXRpb25FcnJvcikoZHVwLnRva2Vucy5uYW1lLCBkdXAsICJuby1kdXBsaWNhdGUiLCBt
ZXNzYWdlKTsKICAgfQogfQogCkBAIC0zMjE4LDYgKzM2NDAsODUgQEAgZnVuY3Rpb24gdmFsaWRh
dGUoYXN0KSB7CiAKIAogLyoqKi8gfSkKLS8qKioqKiovIF0pOworLyoqKioqKi8gCV0pOworLyoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKi8KKy8qKioqKiovIAkvLyBUaGUgbW9kdWxlIGNhY2hlCisvKioqKioqLyAJ
dmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9OworLyoqKioqKi8gCQorLyoqKioqKi8g
CS8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uCisvKioqKioqLyAJZnVuY3Rpb24gX193ZWJwYWNrX3Jl
cXVpcmVfXyhtb2R1bGVJZCkgeworLyoqKioqKi8gCQkvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4g
Y2FjaGUKKy8qKioqKiovIAkJdmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2Fj
aGVfX1ttb2R1bGVJZF07CisvKioqKioqLyAJCWlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5l
ZCkgeworLyoqKioqKi8gCQkJcmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzOworLyoqKioqKi8g
CQl9CisvKioqKioqLyAJCS8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0
aGUgY2FjaGUpCisvKioqKioqLyAJCXZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hl
X19bbW9kdWxlSWRdID0geworLyoqKioqKi8gCQkJLy8gbm8gbW9kdWxlLmlkIG5lZWRlZAorLyoq
KioqKi8gCQkJLy8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWQKKy8qKioqKiovIAkJCWV4cG9ydHM6
IHt9CisvKioqKioqLyAJCX07CisvKioqKioqLyAJCisvKioqKioqLyAJCS8vIEV4ZWN1dGUgdGhl
IG1vZHVsZSBmdW5jdGlvbgorLyoqKioqKi8gCQlfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlk
XShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTsKKy8qKioqKiov
IAkKKy8qKioqKiovIAkJLy8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGUKKy8qKioq
KiovIAkJcmV0dXJuIG1vZHVsZS5leHBvcnRzOworLyoqKioqKi8gCX0KKy8qKioqKiovIAkKKy8q
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKiovCisvKioqKioqLyAJLyogd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9w
ZXJ0eSBnZXR0ZXJzICovCisvKioqKioqLyAJKCgpID0+IHsKKy8qKioqKiovIAkJLy8gZGVmaW5l
IGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0cworLyoqKioqKi8gCQlfX3dlYnBh
Y2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4geworLyoqKioqKi8gCQkJ
Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikgeworLyoqKioqKi8gCQkJCWlmKF9fd2VicGFja19y
ZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhw
b3J0cywga2V5KSkgeworLyoqKioqKi8gCQkJCQlPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0
cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pOworLyoq
KioqKi8gCQkJCX0KKy8qKioqKiovIAkJCX0KKy8qKioqKiovIAkJfTsKKy8qKioqKiovIAl9KSgp
OworLyoqKioqKi8gCQorLyoqKioqKi8gCS8qIHdlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0
eSBzaG9ydGhhbmQgKi8KKy8qKioqKiovIAkoKCkgPT4geworLyoqKioqKi8gCQlfX3dlYnBhY2tf
cmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9w
ZXJ0eS5jYWxsKG9iaiwgcHJvcCkpCisvKioqKioqLyAJfSkoKTsKKy8qKioqKiovIAkKKy8qKioq
KiovIAkvKiB3ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0ICovCisvKioqKioq
LyAJKCgpID0+IHsKKy8qKioqKiovIAkJLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0cwor
LyoqKioqKi8gCQlfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4geworLyoqKioq
Ki8gCQkJaWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5n
VGFnKSB7CisvKioqKioqLyAJCQkJT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJv
bC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7CisvKioqKioqLyAJCQl9CisvKioq
KioqLyAJCQlPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZh
bHVlOiB0cnVlIH0pOworLyoqKioqKi8gCQl9OworLyoqKioqKi8gCX0pKCk7CisvKioqKioqLyAJ
CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqLwordmFyIF9fd2VicGFja19leHBvcnRzX18gPSB7fTsKKy8vIFRo
aXMgZW50cnkgbmVlZCB0byBiZSB3cmFwcGVkIGluIGFuIElJRkUgYmVjYXVzZSBpdCBuZWVkIHRv
IGJlIGlzb2xhdGVkIGFnYWluc3Qgb3RoZXIgbW9kdWxlcyBpbiB0aGUgY2h1bmsuCisoKCkgPT4g
eworX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOworLyogaGFybW9u
eSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsK
Ky8qIGhhcm1vbnkgZXhwb3J0ICovICAgInBhcnNlIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUg
Ki8gX2xpYl93ZWJpZGwyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18ucGFyc2UpLAor
LyogaGFybW9ueSBleHBvcnQgKi8gICAid3JpdGUiOiAoKSA9PiAoLyogcmVleHBvcnQgc2FmZSAq
LyBfbGliX3dyaXRlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLndyaXRlKSwKKy8q
IGhhcm1vbnkgZXhwb3J0ICovICAgInZhbGlkYXRlIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUg
Ki8gX2xpYl92YWxpZGF0b3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy52YWxpZGF0
ZSksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJXZWJJRExQYXJzZUVycm9yIjogKCkgPT4gKC8q
IHJlZXhwb3J0IHNhZmUgKi8gX2xpYl90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzNfXy5XZWJJRExQYXJzZUVycm9yKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CisvKiBo
YXJtb255IGltcG9ydCAqLyB2YXIgX2xpYl93ZWJpZGwyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpOworLyogaGFybW9ueSBpbXBvcnQgKi8g
dmFyIF9saWJfd3JpdGVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBh
Y2tfcmVxdWlyZV9fKDMwKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfbGliX3ZhbGlkYXRv
cl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygz
MSk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2xpYl90b2tlbmlzZXJfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMik7CisKKworCisKKwor
fSkoKTsKKworLyoqKioqKi8gCXJldHVybiBfX3dlYnBhY2tfZXhwb3J0c19fOworLyoqKioqKi8g
fSkoKQorOwogfSk7CiAvLyMgc291cmNlTWFwcGluZ1VSTD13ZWJpZGwyLmpzLm1hcApcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNz
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVj
dGVkLnR4dAppbmRleCAzZDdjODAzY2NjMzY4YjIzZjNiMTBkMzY1YmVkOGU5MjA0YTc2Njg0Li5k
MWQxMzUyNTBjYmU2YzY0NThjNTYxN2E1ZTE1OTkyYTk1ZDdmNjY3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9kb20vaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9t
L2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC04MiwxNSArODIsMTAgQEAgUEFTUyBQ
YXJ0aWFsIGludGVyZmFjZSBtaXhpbiBEb2N1bWVudE9yU2hhZG93Um9vdFsyXTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgVUlFdmVudDogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVy
czogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1l
bnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1Mg
RG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50T3JTaGFkb3dSb290OiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1
YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50IGluY2x1
ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhU
TUxFbGVtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnM6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEVsZW1lbnRDb250
ZW50RWRpdGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50IGlu
Y2x1ZGVzIEhUTUxPclNWR0VsZW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEhU
TUxFbGVtZW50IGluY2x1ZGVzIEVsZW1lbnRDU1NJbmxpbmVTdHlsZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgSFRNTExpbmtFbGVtZW50IGluY2x1ZGVzIExpbmtTdHlsZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTFN0eWxlRWxlbWVudCBpbmNsdWRlcyBMaW5rU3R5
bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxCb2R5RWxlbWVudCBpbmNsdWRl
cyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQpAQCAtMTMyLDkg
KzEyNyw2IEBAIFBBU1MgRWxlbWVudEludGVybmFscyBpbmNsdWRlcyBBUklBTWl4aW46IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRs
ZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93
RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1
ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1Q
QVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQotUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vzc2lvblN0b3JhZ2U6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dMb2NhbFN0
b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlckdsb2JhbFNjb3BlIGlu
Y2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JJRDogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckxhbmd1YWdlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQpAQCAtMTQzLDYgKzEzNSw3IEBAIFBBU1MgTmF2aWdhdG9yIGluY2x1
ZGVzIE5hdmlnYXRvckNvbnRlbnRVdGlsczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
TmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvb2tpZXM6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JQbHVnaW5zOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29uY3VycmVu
dEhhcmR3YXJlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXaW5kb3cgaW5jbHVkZXMg
QW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV29ya2VyIGluY2x1ZGVzIEFic3RyYWN0V29y
a2VyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTaGFyZWRXb3JrZXIgaW5jbHVkZXMg
QWJzdHJhY3RXb3JrZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCkBAIC0xNTAsMjcgKzE0Mywz
MiBAQCBQQVNTIFdvcmtlck5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JJRDogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgV29ya2VyTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckxh
bmd1YWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW5j
bHVkZXMgTmF2aWdhdG9yT25MaW5lOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3Jr
ZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vzc2lvblN0b3Jh
Z2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dM
b2NhbFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxGcmFtZVNldEVs
ZW1lbnQgaW5jbHVkZXMgV2luZG93RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBBUklBTWl4aW46IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCi1QQVNTIEVsZW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGU6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGROb2RlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0YWJsZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHRWxlbWVudCBpbmNsdWRlcyBHbG9iYWxF
dmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdFbGVtZW50IGlu
Y2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgU1ZHRWxlbWVudEluc3RhbmNlOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdFbGVtZW50IGluY2x1ZGVzIEhUTUxPclNWR0Vs
ZW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMg
RWxlbWVudENTU0lubGluZVN0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdH
cmFwaGljc0VsZW1lbnQgaW5jbHVkZXMgU1ZHVGVzdHM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIFNWR1NWR0VsZW1lbnQgaW5jbHVkZXMgU1ZHRml0VG9WaWV3Qm94OiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdTVkdFbGVtZW50IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFu
ZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0ltYWdlRWxlbWVudCBpbmNs
dWRlcyBTVkdVUklSZWZlcmVuY2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR1Nj
cmlwdEVsZW1lbnQgaW5jbHVkZXMgU1ZHVVJJUmVmZXJlbmNlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQotUEFTUyBTVkdBRWxlbWVudCBpbmNsdWRlcyBTVkdVUklSZWZlcmVuY2U6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCi1GQUlMIFNWR0FFbGVtZW50IGluY2x1ZGVzIEhUTUxIeXBlcmxpbmtF
bGVtZW50VXRpbHM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIGFzc2VydF90cnVlOiBtZW1iZXIg
aHJlZiBpcyB1bmlxdWUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgSFRNTEVsZW1lbnQg
aW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQor
UEFTUyBTVkdFbGVtZW50IGluY2x1ZGVzIEVsZW1lbnRDU1NJbmxpbmVTdHlsZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5v
ZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVk
ZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERv
Y3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRPclNoYWRvd1Jvb3Q6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNoYWRvd1Jvb3QgaW5jbHVkZXMgRG9jdW1lbnRPclNoYWRv
d1Jvb3Q6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIFBh
cmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50RnJhZ21lbnQg
aW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVu
dCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVt
ZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxBbGxDb2xsZWN0aW9uIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgSFRNTEFsbENv
bGxlY3Rpb24gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgSFRNTEFsbENvbGxlY3Rpb24g
aW50ZXJmYWNlIG9iamVjdCBuYW1lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaWRsaGFybmVz
cy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaWRsaGFybmVzcy5odHRwcy1leHBl
Y3RlZC50eHQKaW5kZXggOTJmNGQ4NDkwOTQ2MDQ5OTUxOGRmM2MxYmRlOThhMDZhYzlmZWY2Ny4u
ZjkyYjlmNGMwMWIyODEyZjZiNjZiMDNlZGY0YzljM2Q2Y2JlNjU0MSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Rv
bS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtODIsMTUgKzgyLDEwIEBAIFBBU1Mg
UGFydGlhbCBpbnRlcmZhY2UgbWl4aW4gRG9jdW1lbnRPclNoYWRvd1Jvb3RbMl06IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFVJRXZlbnQ6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxl
cnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3Vt
ZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNT
IERvY3VtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1bWVudE9yU2hhZG93Um9vdDogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhFdmFs
dWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MRWxlbWVudCBpbmNs
dWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBI
VE1MRWxlbWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q29u
dGVudEVkaXRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MRWxlbWVudCBp
bmNsdWRlcyBIVE1MT3JTVkdFbGVtZW50OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBI
VE1MRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q1NTSW5saW5lU3R5bGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIEhUTUxMaW5rRWxlbWVudCBpbmNsdWRlcyBMaW5rU3R5bGU6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxTdHlsZUVsZW1lbnQgaW5jbHVkZXMgTGlua1N0
eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MQm9keUVsZW1lbnQgaW5jbHVk
ZXMgV2luZG93RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAgLTEzMiw5
ICsxMjcsNiBAQCBQQVNTIEVsZW1lbnRJbnRlcm5hbHMgaW5jbHVkZXMgQVJJQU1peGluOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5k
bGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRv
d0V2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNs
dWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQot
UEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKLVBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd1Nlc3Npb25TdG9yYWdlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93TG9jYWxT
dG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBp
bmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9ySUQ6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JMYW5ndWFnZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKQEAgLTE0Myw2ICsxMzUsNyBAQCBQQVNTIE5hdmlnYXRvciBpbmNs
dWRlcyBOYXZpZ2F0b3JDb250ZW50VXRpbHM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNT
IE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb29raWVzOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yUGx1Z2luczogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvbmN1cnJl
bnRIYXJkd2FyZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV2luZG93IGluY2x1ZGVz
IEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlciBpbmNsdWRlcyBBYnN0cmFjdFdv
cmtlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU2hhcmVkV29ya2VyIGluY2x1ZGVz
IEFic3RyYWN0V29ya2VyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQpAQCAtMTUwLDI3ICsxNDMs
MzIgQEAgUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9ySUQ6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlck5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JM
YW5ndWFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV29ya2VyTmF2aWdhdG9yIGlu
Y2x1ZGVzIE5hdmlnYXRvck9uTGluZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV29y
a2VyTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvbmN1cnJlbnRIYXJkd2FyZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd1Nlc3Npb25TdG9y
YWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93
TG9jYWxTdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MRnJhbWVTZXRF
bGVtZW50IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgQVJJQU1peGluOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQotUEFTUyBFbGVtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCi1QQVNTIEVsZW1lbnQgaW5jbHVkZXMgTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBFbGVtZW50IGluY2x1ZGVzIENoaWxkTm9kZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBTbG90dGFibGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgR2xvYmFs
RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHRWxlbWVudCBp
bmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBTVkdFbGVtZW50IGluY2x1ZGVzIFNWR0VsZW1lbnRJbnN0YW5jZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHRWxlbWVudCBpbmNsdWRlcyBIVE1MT3JTVkdF
bGVtZW50OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBTVkdFbGVtZW50IGluY2x1ZGVz
IEVsZW1lbnRDU1NJbmxpbmVTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZH
R3JhcGhpY3NFbGVtZW50IGluY2x1ZGVzIFNWR1Rlc3RzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBTVkdTVkdFbGVtZW50IGluY2x1ZGVzIFNWR0ZpdFRvVmlld0JveDogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHU1ZHRWxlbWVudCBpbmNsdWRlcyBXaW5kb3dFdmVudEhh
bmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdJbWFnZUVsZW1lbnQgaW5j
bHVkZXMgU1ZHVVJJUmVmZXJlbmNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdT
Y3JpcHRFbGVtZW50IGluY2x1ZGVzIFNWR1VSSVJlZmVyZW5jZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKLVBBU1MgU1ZHQUVsZW1lbnQgaW5jbHVkZXMgU1ZHVVJJUmVmZXJlbmNlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQotRkFJTCBTVkdBRWxlbWVudCBpbmNsdWRlcyBIVE1MSHlwZXJsaW5r
RWxlbWVudFV0aWxzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSBhc3NlcnRfdHJ1ZTogbWVtYmVy
IGhyZWYgaXMgdW5pcXVlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIEhUTUxFbGVtZW50
IGluY2x1ZGVzIEVsZW1lbnRDU1NJbmxpbmVTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
K1BBU1MgU1ZHRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q1NTSW5saW5lU3R5bGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnRO
b2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudEZyYWdtZW50IGluY2x1
ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBE
b2N1bWVudEZyYWdtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50T3JTaGFkb3dSb290OiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTaGFkb3dSb290IGluY2x1ZGVzIERvY3VtZW50T3JTaGFk
b3dSb290OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBQ
YXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudEZyYWdtZW50
IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1l
bnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxl
bWVudCBpbmNsdWRlcyBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhFdmFsdWF0b3JCYXNlOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MQWxsQ29sbGVjdGlvbiBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIEhUTUxBbGxD
b2xsZWN0aW9uIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCiBQQVNTIEhUTUxBbGxDb2xsZWN0aW9u
IGludGVyZmFjZSBvYmplY3QgbmFtZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432064</attachid>
            <date>2021-06-23 10:02:44 -0700</date>
            <delta_ts>2021-06-23 11:28:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227296-20210623100243.patch</filename>
            <type>text/plain</type>
            <size>492847</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTY5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmE5ZjNlODQ2MzFiMGJlOWU2ZjU5
NzRkNjBmNmY0OTFiZDVhODdiYy4uYjcwMzkyNmY3ODAxZGJhYjY3ODE2ZmVlYmFjMTU1NWRhMmNl
NDBjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTA2LTIzICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIFdQVCByZXNvdXJjZXMgZnJvbSB1cHN0
cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3
Mjk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20v
aWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDYtMjEgIERhcmluIEFkbGVy
ICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcHJvdmUgbW9yZSBvZiB0aGUgQ1NTIGxp
c3Qgc3R5bGUgaW1wbGVtZW50YXRpb25zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRl
eCAxYmZlZGEzNDI1MmI1NzY5ZTIwNDljMmM4ZDg3YmUwYjNiYjg0NzhiLi5jNTg3OGZlYzE0Nzc1
ZTdlYmQ0ODcwMTM1MWE2ZmMyOGFkNTAxYTg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw0NSBAQAorMjAyMS0wNi0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBXUFQgcmVzb3VyY2VzIGZyb20gdXBzdHJlYW0KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI5NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvaWRs
aGFybmVzcy5odHRwcy5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9XZWJDcnlwdG9BUEkvaWRsaGFybmVzcy5odHRwcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kv
c2VjdXJpdHlwb2xpY3l2aW9sYXRpb24vaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWFuaW1hdGlvbnMvaWRsaGFybmVz
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9u
dC1sb2FkaW5nL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXN5bnRheC9pbnB1dC1wcmVwcm9jZXNzaW5nLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9p
ZGxoYXJuZXNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvaWRsaGFybmVzcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pZGxoYXJuZXNzLndpbmRvdy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbXBhcnNpbmcvaWRsaGFy
bmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9l
dmVudHNvdXJjZS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkx
OC9pZGxoYXJuZXNzLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvaWRsaGFybmVzcy50ZW50YXRpdmUuYW55
Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2hyLXRp
bWUvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9oci10aW1lL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9uYXZp
Z2F0aW5nLWFjcm9zcy1kb2N1bWVudHMvamF2YXNjcmlwdC11cmwtcmV0dXJuLXZhbHVlLWhhbmRs
aW5nLWR5bmFtaWMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2RvbS9pZGxoYXJuZXNzLndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVy
ZWQtZGF0YS9zdHJ1Y3R1cmVkLWNsb25pbmctZXJyb3Itc3RhY2stb3B0aW9uYWwuc3ViLndpbmRv
dy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMv
RE9NLVBhcnNpbmcuaWRsOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2Vz
L1NWRy5pZGw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvbWVkaWFz
ZXNzaW9uLmlkbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9uL2lk
bGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvbm90aWZpY2F0aW9ucy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL25vdGlmaWNhdGlvbnMvaWRsaGFybmVzcy5odHRwcy5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcG9p
bnRlcmV2ZW50cy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgIFJlYmFz
ZWxpbmUgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzLyo6IFVwZGF0ZWQuCisKIDIwMjEtMDYtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgV1BUIHRvb2xzIGZyb20gdXBzdHJlYW0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4
dAppbmRleCA2MTQwNTRmOTFiMDJjODcxYjNmODExNjBiN2RiMzVhMDdiZTcwMmI2Li5kYTRiMGVi
N2ViYjU2YTUwYmI2YjBhNWM3MTMxMTY1YjZmYjBjOWRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFu
eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CkBAIC03LDEwICs3
LDEwIEBAIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgV2luZG93OiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dPcldv
cmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXb3JrZXJHbG9i
YWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd1Nlc3Np
b25TdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMg
V2luZG93TG9jYWxTdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBXb3JrZXJH
bG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBJREJSZXF1ZXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgSURCUmVxdWVzdCBpbnRlcmZhY2Ug
b2JqZWN0IGxlbmd0aAogUEFTUyBJREJSZXF1ZXN0IGludGVyZmFjZSBvYmplY3QgbmFtZQpAQCAt
MTk1LDUgKzE5NSw0IEBAIFBBU1MgSURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
b25hYm9ydAogUEFTUyBJREJUcmFuc2FjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmNvbXBs
ZXRlCiBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uZXJyb3IKIFBB
U1MgV2luZG93IGludGVyZmFjZTogYXR0cmlidXRlIGluZGV4ZWREQgotUEFTUyBXb3JrZXJHbG9i
YWxTY29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
b2JqZWN0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxo
YXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDY1MDkzZGEzMDI1MjBkMTljNjM2
YTI5YjlhOWY0Zjg1MDY1MmMwNzkuLjRiNjhiZDZlOGJjZjIxOTU1ZDdhYThkM2Y3ZTZkMjRlZTcx
ZWVhOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRs
aGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtNywxMCArNywxMCBAQCBQQVNTIFBh
cnRpYWwgaW50ZXJmYWNlIFdpbmRvdzogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2lu
ZG93IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29w
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVk
ZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3Rv
cmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5j
bHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
IFBBU1MgSURCUmVxdWVzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2Ugb2JqZWN0CiBQQVNTIElEQlJlcXVlc3QgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgK
IFBBU1MgSURCUmVxdWVzdCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKQEAgLTE5NCw2ICsxOTQsNSBA
QCBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIGFib3J0KCkKIFBBU1Mg
SURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25hYm9ydAogUEFTUyBJREJUcmFu
c2FjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmNvbXBsZXRlCiBQQVNTIElEQlRyYW5zYWN0
aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uZXJyb3IKLVBBU1MgV2luZG93IGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgV29ya2Vy
R2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaW5kZXhlZERCCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJ
L2lkbGhhcm5lc3MuaHR0cHMuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2lkbGhhcm5lc3MuaHR0cHMuYW55
LWV4cGVjdGVkLnR4dAppbmRleCAxZjRhN2VkOGJlMWUzN2Q2NDk0ZWE2YmNiMmQyYTA5NjM4NGFk
ZDRmLi45OTc4MjlkMjAyMGEwMjVkNjUzN2JkOWE0MjcxZmI0NDQ3ZWZjNmI0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQ
SS9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvaWRsaGFybmVzcy5odHRw
cy5hbnktZXhwZWN0ZWQudHh0CkBAIC03LDEwICs3LDEwIEBAIFBBU1MgUGFydGlhbCBpbnRlcmZh
Y2UgV2luZG93OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMg
R2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93
IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQorUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldv
cmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5j
bHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd1Nlc3Npb25TdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93TG9jYWxTdG9yYWdlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dP
cldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBDcnlwdG8g
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAog
UEFTUyBDcnlwdG8gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgQ3J5cHRvIGludGVyZmFj
ZSBvYmplY3QgbmFtZQpAQCAtNzksNSArNzksNCBAQCBQQVNTIFN1YnRsZUNyeXB0byBpbnRlcmZh
Y2U6IGNhbGxpbmcgd3JhcEtleShLZXlGb3JtYXQsIENyeXB0b0tleSwgQ3J5cHRvS2V5LCBBbAog
UEFTUyBTdWJ0bGVDcnlwdG8gaW50ZXJmYWNlOiBjcnlwdG8uc3VidGxlIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAidW53cmFwS2V5KEtleUZvcm1hdCwgQnVmZmVyU291cmNlLCBDcnlwdG9LZXksIEFs
Z29yaXRobUlkZW50aWZpZXIsIEFsZ29yaXRobUlkZW50aWZpZXIsIGJvb2xlYW4sIHNlcXVlbmNl
PEtleVVzYWdlPikiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFN1YnRsZUNyeXB0byBpbnRl
cmZhY2U6IGNhbGxpbmcgdW53cmFwS2V5KEtleUZvcm1hdCwgQnVmZmVyU291cmNlLCBDcnlwdG9L
ZXksIEFsZ29yaXRobUlkZW50aWZpZXIsIEFsZ29yaXRobUlkZW50aWZpZXIsIGJvb2xlYW4sIHNl
cXVlbmNlPEtleVVzYWdlPikgb24gY3J5cHRvLnN1YnRsZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yCiBQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBj
cnlwdG8KLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9pZGxoYXJuZXNzLmh0
dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvaWRsaGFybmVzcy5odHRwcy5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dAppbmRleCBhYjg2OWE1MjIyNTBlM2Y1MDdkM2UzNzU0YTQ0ZDFmZDIxZWFm
YjM4Li5lZjkxMDVkMWNkY2NiM2ZmYmVkNDQ5OTEzYTQ3ZjdlZWM2OTE2M2E2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQ
SS9pZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2lkbGhhcm5l
c3MuaHR0cHMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTcsMTAgKzcsMTAgQEAgUEFTUyBQ
YXJ0aWFsIGludGVyZmFjZSBXaW5kb3c6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdp
bmRvdyBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2Nv
cGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdvcmtlckdsb2JhbFNjb3BlIGluY2x1
ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vzc2lvblN0b3JhZ2U6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dMb2NhbFN0
b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGlu
Y2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIENyeXB0byBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0CiBQQVNTIENyeXB0byBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBD
cnlwdG8gaW50ZXJmYWNlIG9iamVjdCBuYW1lCkBAIC03OCw2ICs3OCw1IEBAIFBBU1MgU3VidGxl
Q3J5cHRvIGludGVyZmFjZTogY3J5cHRvLnN1YnRsZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIndy
YXBLZXkoS2V5Rm9yCiBQQVNTIFN1YnRsZUNyeXB0byBpbnRlcmZhY2U6IGNhbGxpbmcgd3JhcEtl
eShLZXlGb3JtYXQsIENyeXB0b0tleSwgQ3J5cHRvS2V5LCBBbGdvcml0aG1JZGVudGlmaWVyKSBv
biBjcnlwdG8uc3VidGxlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IKIFBBU1MgU3VidGxlQ3J5cHRvIGludGVyZmFjZTogY3J5cHRvLnN1YnRsZSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInVud3JhcEtleShLZXlGb3JtYXQsIEJ1ZmZlclNvdXJjZSwgQ3J5cHRvS2V5
LCBBbGdvcml0aG1JZGVudGlmaWVyLCBBbGdvcml0aG1JZGVudGlmaWVyLCBib29sZWFuLCBzZXF1
ZW5jZTxLZXlVc2FnZT4pIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBTdWJ0bGVDcnlwdG8g
aW50ZXJmYWNlOiBjYWxsaW5nIHVud3JhcEtleShLZXlGb3JtYXQsIEJ1ZmZlclNvdXJjZSwgQ3J5
cHRvS2V5LCBBbGdvcml0aG1JZGVudGlmaWVyLCBBbGdvcml0aG1JZGVudGlmaWVyLCBib29sZWFu
LCBzZXF1ZW5jZTxLZXlVc2FnZT4pIG9uIGNyeXB0by5zdWJ0bGUgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvcgotUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBXb3JrZXJHbG9iYWxT
Y29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjcnlwdG8KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaWRsaGFybmVzcy5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvYmVhY29uL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXgg
YmMwMDg5MGY3YWI5ZGI3OGRjYjkxNDRmMjNmNTBlYTc3MzY3ZDFjNy4uNjkwMTQ3YTFkNDZjZjdh
YzkzNDJhMzYyNDFmN2NhMDJiYjYyNTQ4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaWRsaGFybmVzcy5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2JlYWNvbi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xMSw2ICsx
MSw1IEBAIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvbnRlbnRVdGlsczogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNv
b2tpZXM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBO
YXZpZ2F0b3JQbHVnaW5zOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3Ig
aW5jbHVkZXMgTmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQotUEFTUyBOYXZpZ2F0b3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBOYXZpZ2F0b3IgaW50ZXJmYWNlOiBuYXZpZ2F0b3Ig
bXVzdCBub3QgaGF2ZSBwcm9wZXJ0eSAic2VuZEJlYWNvbiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBv
bGljeS9zZWN1cml0eXBvbGljeXZpb2xhdGlvbi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRlbnQt
c2VjdXJpdHktcG9saWN5L3NlY3VyaXR5cG9saWN5dmlvbGF0aW9uL2lkbGhhcm5lc3Mud2luZG93
LWV4cGVjdGVkLnR4dAppbmRleCAxYmRlNTZkYTliNjQ4NWM2ODNkMWY3YjRkODc5OTMyZWQxYWI5
NGY1Li4xNjdiMjJjYmE0ZTBjYTM1Zjk0ODQzYTE0MGMxNWI1MmUzODAxOWJhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRlbnQtc2Vj
dXJpdHktcG9saWN5L3NlY3VyaXR5cG9saWN5dmlvbGF0aW9uL2lkbGhhcm5lc3Mud2luZG93LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2NvbnRlbnQtc2VjdXJpdHktcG9saWN5L3NlY3VyaXR5cG9saWN5dmlvbGF0aW9uL2lkbGhh
cm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMTksNyArMTksNyBAQCBGQUlMIENTUFZpb2xh
dGlvblJlcG9ydEJvZHkgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc3RhdHVzQ29kZSBhc3NlcnRfb3du
X3Byb3BlcnR5OgogRkFJTCBDU1BWaW9sYXRpb25SZXBvcnRCb2R5IGludGVyZmFjZTogYXR0cmli
dXRlIGxpbmVOdW1iZXIgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiQ1NQVmlvbGF0aW9uUmVwb3J0Qm9keSIgZXhwZWN0ZWQgcHJvcGVydHkgIkNT
UFZpb2xhdGlvblJlcG9ydEJvZHkiIG1pc3NpbmcKIEZBSUwgQ1NQVmlvbGF0aW9uUmVwb3J0Qm9k
eSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjb2x1bW5OdW1iZXIgYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiQ1NQVmlvbGF0aW9uUmVwb3J0Qm9keSIg
ZXhwZWN0ZWQgcHJvcGVydHkgIkNTUFZpb2xhdGlvblJlcG9ydEJvZHkiIG1pc3NpbmcKIFBBU1Mg
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKK0ZBSUwgU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfZXF1YWxzOiB3cm9uZyB2YWx1
ZSBmb3IgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5sZW5ndGggZXhwZWN0ZWQgMCBidXQg
Z290IDEKIFBBU1MgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0
IG5hbWUKIFBBU1MgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAogUEFTUyBT
ZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9w
ZXJ0eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWFuaW1hdGlvbnMvaWRsaGFybmVzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtYW5pbWF0aW9ucy9p
ZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAppbmRleCBmOWFlNzY1NzI1YmQxYTdlNWUyYzhmYmFmNDJm
ODI3MDY5ODFmYWJiLi4yYjYyZGQ1NGQwMWUwNThhYzdmMjUwY2Q2OTcwOWE0MjFlZWIzZGQxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtYW5pbWF0aW9ucy9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtYW5pbWF0aW9ucy9pZGxo
YXJuZXNzLWV4cGVjdGVkLnR4dApAQCAtMTAsMjQgKzEwLDI0IEBAIFBBU1MgUGFydGlhbCBpbnRl
cmZhY2UgRG9jdW1lbnRbMl06IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwg
aW50ZXJmYWNlIFdpbmRvdzogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQg
aW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBh
cmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVz
IFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1
ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRN
TEVsZW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRI
YW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVk
ZXMgRWxlbWVudENvbnRlbnRFZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
SFRNTEVsZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZHRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKLVBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0eWxlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgR2xvYmFsRXZlbnRI
YW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdp
bmRvd0V2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBp
bmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd1Nlc3Npb25TdG9yYWdl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93TG9j
YWxTdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRl
cyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9j
dW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
RWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEVsZW1l
bnRDU1NJbmxpbmVTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgQW5pbWF0aW9u
RXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdAogUEFTUyBBbmltYXRpb25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBB
bmltYXRpb25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250LWxvYWRpbmcv
aWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udC1sb2FkaW5nL2lkbGhhcm5lc3MuaHR0cHMt
ZXhwZWN0ZWQudHh0CmluZGV4IDU5MzAxNzRiZTEwY2IyYWEyMDQwNDU5ZWUyNjI5ZDMwOTdmOWEy
MTEuLmUwNjNlNDI1ODg0ZWJiZTBiZjM4ODFjM2E4MTNjY2VkMDFlMmI2OWMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250
LWxvYWRpbmcvaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnQtbG9hZGluZy9pZGxo
YXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNCwxMiArNCwxMiBAQCBQQVNTIGlkbF90ZXN0
IHZhbGlkYXRpb24KIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnQ6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50WzJdOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBGb250RmFjZVNvdXJjZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMg
Rm9udEZhY2VTb3VyY2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGlu
Y2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBEb2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQog
UEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50QW5k
RWxlbWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdvcmtl
ckdsb2JhbFNjb3BlIGluY2x1ZGVzIEZvbnRGYWNlU291cmNlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2Jh
bFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBGb250RmFjZSBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIEZvbnRG
YWNlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCkBAIC05Myw1ICs5Myw0IEBAIFBBU1MgRm9udEZh
Y2VTZXQgaW50ZXJmYWNlOiBkb2N1bWVudC5mb250cyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJl
YWR5IiB3aXRoIHRoCiBQQVNTIEZvbnRGYWNlU2V0IGludGVyZmFjZTogZG9jdW1lbnQuZm9udHMg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdGF0dXMiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNT
IERvY3VtZW50IGludGVyZmFjZTogYXR0cmlidXRlIGZvbnRzCiBQQVNTIERvY3VtZW50IGludGVy
ZmFjZTogZG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJmb250cyIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc3ludGF4L2lucHV0LXBy
ZXByb2Nlc3NpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXN5bnRheC9pbnB1dC1wcmVwcm9jZXNzaW5nLWV4cGVjdGVk
LnR4dAppbmRleCA5ZDFjNjJlZDlmZTU4YzY1Nzg5OTQwYjQ1ODE2YTBmMjAyY2Y2ZTYzLi5mMGUz
YWUyNmJhMjMxYWQxMDA4M2M1NWU3Mjc2YjZlMGE2NGEwNDIwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc3ludGF4L2lucHV0
LXByZXByb2Nlc3NpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zeW50YXgvaW5wdXQtcHJlcHJvY2Vzc2luZy1l
eHBlY3RlZC50eHQKQEAgLTQsOSArNCw5IEBAIFBBU1MgImZcMG9vIiBiZWNvbWVzICJm77+9b28i
CiBQQVNTICJcMGZvbyIgYmVjb21lcyAi77+9Zm9vIgogUEFTUyAiXDAiIGJlY29tZXMgIu+/vSIK
IFBBU1MgIlwwXDBcMCIgYmVjb21lcyAi77+977+977+9IgotRkFJTCAiZm9vVStkODAwIiBiZWNv
bWVzICJmb2/vv70iIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJmb29cdWZmZmQiIGJ1dCBnb3Qg
ImZvb++/vSIKLUZBSUwgImZVK2Q4MDBvbyIgYmVjb21lcyAiZu+/vW9vIiBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiZlx1ZmZmZG9vIiBidXQgZ290ICJm77+9b28iCi1GQUlMICJVK2Q4MDBmb28i
IGJlY29tZXMgIu+/vWZvbyIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlx1ZmZmZGZvbyIgYnV0
IGdvdCAi77+9Zm9vIgotRkFJTCAiVStkODAwIiBiZWNvbWVzICLvv70iIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJcdWZmZmQiIGJ1dCBnb3QgIu+/vSIKLUZBSUwgIlUrZDgwMFUrZDgwMFUrZDgw
MCIgYmVjb21lcyAi77+977+977+9IiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiXHVmZmZkXHVm
ZmZkXHVmZmZkIiBidXQgZ290ICLvv73vv73vv70iCitGQUlMICJmb29VK2Q4MDAiIGJlY29tZXMg
ImZvb++/vSIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImZvb1x1ZmZmZCIgYnV0IGdvdCAiZm9v
VStkODAwIgorRkFJTCAiZlUrZDgwMG9vIiBiZWNvbWVzICJm77+9b28iIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJmXHVmZmZkb28iIGJ1dCBnb3QgImZVK2Q4MDBvbyIKK0ZBSUwgIlUrZDgwMGZv
byIgYmVjb21lcyAi77+9Zm9vIiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiXHVmZmZkZm9vIiBi
dXQgZ290ICJVK2Q4MDBmb28iCitGQUlMICJVK2Q4MDAiIGJlY29tZXMgIu+/vSIgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgIlx1ZmZmZCIgYnV0IGdvdCAiVStkODAwIgorRkFJTCAiVStkODAwVStk
ODAwVStkODAwIiBiZWNvbWVzICLvv73vv73vv70iIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJc
dWZmZmRcdWZmZmRcdWZmZmQiIGJ1dCBnb3QgIlUrZDgwMFUrZDgwMFUrZDgwMCIKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXRyYW5zaXRpb25zL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zL2lkbGhhcm5lc3Mt
ZXhwZWN0ZWQudHh0CmluZGV4IDA3YTI4M2ZlNjE1ZTliZDNiZmIyMzBhZTJkZDllZmY4ZTI0ODk4
ZjUuLjRjMDkzZTgzMjBjNTU0NDZmZjc4ODkzNDY5MzViYzBkZTYwYzljYjIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFu
c2l0aW9ucy9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvaWRsaGFybmVzcy1l
eHBlY3RlZC50eHQKQEAgLTgsOSArOCw2IEBAIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1l
bnRbMl06IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFdp
bmRvdzogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgR2xv
YmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQg
aW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZh
bHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5j
bHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
SFRNTEVsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENv
bnRlbnRFZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAgLTIxLDEwICsxOCwxMyBA
QCBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92
aWRlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRv
d1Nlc3Npb25TdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5j
bHVkZXMgV2luZG93TG9jYWxTdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBE
b2N1bWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9k
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5v
ZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRh
YmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0
aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFRyYW5zaXRpb25F
dmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0CiBQQVNTIFRyYW5zaXRpb25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBU
cmFuc2l0aW9uRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBuYW1lCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2lkbGhh
cm5lc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAppbmRleCBmZTEz
ZTk5OWM0NTY0YzRjOTU3MTRhODE5YmNjNDkxMzQ2NGYxZmQ4Li5mNTUyN2VmNzExOWM4OTRlN2Zh
OTVkMTlmZTcyZDFiZDI1MWU2MzM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2lkbGhhcm5lc3MtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKQEAgLTI5LDIwICsyOSwxMiBAQCBQ
QVNTIFBhcnRpYWwgaW50ZXJmYWNlIEhUTUxJbWFnZUVsZW1lbnRbMl06IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50WzRdOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBXaW5kb3dbM106IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIFRleHQgaW5jbHVkZXMgR2VvbWV0cnlVdGlsczogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgVGV4dCBpbmNsdWRlcyBTbG90dGFibGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgR2VvbWV0cnlVdGlsczogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50
VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNs
dWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEVsZW1lbnQgaW5j
bHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBDU1NQc2V1ZG9F
bGVtZW50IGluY2x1ZGVzIEdlb21ldHJ5VXRpbHM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIERvY3VtZW50IGluY2x1ZGVzIEdlb21ldHJ5VXRpbHM6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEVsZW1lbnRDU1NJbmxpbmVTdHlsZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRI
YW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMg
RG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
LVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFz
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxl
bWVudENTU0lubGluZVN0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MRWxl
bWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRs
ZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBF
bGVtZW50Q29udGVudEVkaXRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQpAQCAtNTMsOCAr
NDUsMTYgQEAgUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZy
YW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRl
cyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2lu
ZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
K1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBOb25Eb2N1bWVudFR5cGVD
aGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIENoYXJhY3RlckRhdGEgaW5j
bHVkZXMgTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQor
UEFTUyBFbGVtZW50IGluY2x1ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
IFBBU1MgQ2hhcmFjdGVyRGF0YSBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQorUEFTUyBUZXh0IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIE1lZGlhUXVlcnlMaXN0
IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCiBQQVNTIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZSBv
YmplY3QgbmFtZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3Nzb20vaWRsaGFybmVzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS9pZGxoYXJuZXNzLWV4
cGVjdGVkLnR4dAppbmRleCBhYjlkNjRiODEwM2VlNzRiMGI4YTQxMDQwZTkwNWY2OTBhZDYxNDVm
Li5kZmMwOTM3M2NkOTYwMjU4MjYzNGI1MDNhNzI5NjNmOWM3M2EzM2EwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS9pZGxo
YXJuZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dApAQCAtMTUsMTYg
KzE1LDE2IEBAIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgSFRNTFN0eWxlRWxlbWVudDogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgV2luZG93WzJdOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gaW5jbHVkZXMg
TGlua1N0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MRWxlbWVudCBpbmNs
dWRlcyBFbGVtZW50Q1NTSW5saW5lU3R5bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNT
IEhUTUxFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCi1QQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2
ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEhUTUxFbGVtZW50IGlu
Y2x1ZGVzIEVsZW1lbnRDb250ZW50RWRpdGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1Q
QVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEhUTUxPclNWR0VsZW1lbnQ6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0eWxl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdFbGVtZW50IGluY2x1ZGVzIEdsb2Jh
bEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQg
aW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgU1ZHRWxlbWVudCBpbmNsdWRlcyBTVkdFbGVtZW50SW5zdGFuY2U6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZH
RWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHU3R5bGVFbGVtZW50IGlu
Y2x1ZGVzIExpbmtTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgSFRNTEVsZW1l
bnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
K1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVy
czogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxl
bWVudENvbnRlbnRFZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgSFRNTEVs
ZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZHRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
IFBBU1MgSFRNTExpbmtFbGVtZW50IGluY2x1ZGVzIExpbmtTdHlsZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgSFRNTFN0eWxlRWxlbWVudCBpbmNsdWRlcyBMaW5rU3R5bGU6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRs
ZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQpAQCAtMzQsMTggKzM0LDE4IEBAIFBBU1MgV2lu
ZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVu
dFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50RnJhZ21l
bnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50T3JTaGFkb3dSb290OiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQorUEFTUyBTaGFkb3dSb290IGluY2x1ZGVzIERvY3VtZW50T3JTaGFkb3dS
b290OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBQYXJl
bnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBY
UGF0aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50
RnJhZ21lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgU2hhZG93Um9vdCBpbmNsdWRlcyBEb2N1bWVudE9yU2hh
ZG93Um9vdDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBQ
YXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVz
IE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1Mg
RWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNT
IEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBDaGFyYWN0ZXJEYXRhIGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIENoYXJhY3RlckRhdGEgaW5jbHVkZXMgQ2hpbGROb2Rl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0YWJs
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhF
dmFsdWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBNZWRpYUxpc3QgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFT
UyBNZWRpYUxpc3QgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgTWVkaWFMaXN0IGludGVy
ZmFjZSBvYmplY3QgbmFtZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2lkbGhhcm5l
c3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggZWIyZDlhYmQyYjE1MmUzMDAwODRlNzA4
ZGRkN2M4YmM5Zjc2NTdjOS4uZjZkMTk0ZmZmY2FmMWIxZjAzMDZlNWVjNDI3YWIxOTVjMzAzNDJi
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pZGxoYXJuZXNzLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC03LDIxICs3LDIxIEBAIFBBU1MgUGFydGlhbCBpbnRlcmZhY2Ug
RG9jdW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNl
IERvY3VtZW50WzJdOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQYXJ0aWFsIGludGVy
ZmFjZSBXaW5kb3dbMl06IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGlu
Y2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFT
UyBEb2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQot
UEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50QW5k
RWxlbWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3Vt
ZW50RnJhZ21lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2Rl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3Vt
ZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBp
bmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEVsZW1lbnQg
aW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBDaGFyYWN0
ZXJEYXRhIGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKLVBBU1MgQ2hhcmFjdGVyRGF0YSBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50VHlwZSBpbmNsdWRlcyBDaGlsZE5vZGU6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGROb2RlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBDaGFyYWN0ZXJEYXRhIGluY2x1ZGVzIENoaWxk
Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBTbG90
dGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFRleHQgaW5jbHVkZXMgU2xvdHRh
YmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0
aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFhQYXRoRXZhbHVh
dG9yIGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
K1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZl
bnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5j
bHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
SFRNTEVsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENv
bnRlbnRFZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAgLTIwNSw3ICsyMDUsNCBA
QCBQQVNTIFhQYXRoRXhwcmVzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIFhQYXRoTlNSZXNvbHZlciBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIFhQYXRoRXZh
bHVhdG9yIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QKIFBBU1MgWFNMVFByb2Nlc3NvciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIEhUTUxFbGVtZW50IGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKLVBBU1MgSFRNTFNsb3RF
bGVtZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QKLVBBU1MgV2luZG93IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBvYmplY3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaWRsaGFybmVz
cy53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IDliOTM3Y2MwNTVkY2RlMjVlYWUxMTZjOTM0OWRj
MTlkOThiNGYyNjMuLjViNDczNjM5OWMwYjgwZDNkZmY2MmZjZTAzZThhNDFjNzk0NzU5MmUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50
eHQKQEAgLTcsMjEgKzcsMjEgQEAgUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBEb2N1bWVudDogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnRbMl06
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFdpbmRvd1sy
XTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxl
bWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGlu
Y2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50
IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBB
U1MgRG9jdW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRI
YW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnRGcmFnbWVudCBp
bmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BB
U1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
IFBBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgTm9uRG9jdW1lbnRUeXBlQ2hpbGRO
b2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBFbGVtZW50IGluY2x1ZGVzIENoaWxk
Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBTbG90
dGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIENoYXJhY3RlckRhdGEgaW5jbHVk
ZXMgTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFT
UyBDaGFyYWN0ZXJEYXRhIGluY2x1ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgRG9jdW1lbnRUeXBlIGluY2x1ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCitQQVNTIENoYXJhY3RlckRhdGEgaW5jbHVkZXMgQ2hpbGROb2RlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgVGV4dCBpbmNsdWRlcyBTbG90dGFibGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFz
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgWFBhdGhFdmFsdWF0b3IgaW5jbHVkZXMg
WFBhdGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVu
dCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQor
UEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBHbG9iYWxF
dmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MRWxlbWVudCBp
bmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q29udGVudEVkaXRhYmxl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb21wYXJzaW5nL2lkbGhhcm5lc3Mud2luZG93LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tcGFyc2luZy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggNTFiZWNlMTlm
MGU0M2ZmOTQzYWM0M2Q0OGEyYjBmMDU0MjZmZDc4OC4uNDQ0NmE1NzUzZDU4ODFiNDNiNjYxYWMz
OGY1NzNkZjlmMjAyNDNlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb21wYXJzaW5nL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbXBh
cnNpbmcvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC02LDEzICs2LDEzIEBAIFBB
U1MgUGFydGlhbCBpbnRlcmZhY2UgRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgUGFydGlhbCBpbnRlcmZhY2UgUmFuZ2U6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkCiBQ
QVNTIFBhcnRpYWwgaW50ZXJmYWNlIFJhbmdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBFbGVtZW50IGluY2x1ZGVzIElubmVySFRNTDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BB
U1MgU2hhZG93Um9vdCBpbmNsdWRlcyBJbm5lckhUTUw6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CitQQVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgUGFy
ZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBQ
YXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVz
IE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
RWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNT
IEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFT
UyBTaGFkb3dSb290IGluY2x1ZGVzIElubmVySFRNTDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
LVBBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBQYXJl
bnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBYTUxTZXJpYWxpemVyIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1Mg
WE1MU2VyaWFsaXplciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBYTUxTZXJpYWxpemVy
IGludGVyZmFjZSBvYmplY3QgbmFtZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHNvdXJjZS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzb3Vy
Y2UvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKaW5kZXggMmI5MzFkZDM1MjViYTgyOWRiNTczNmQy
MTlmYTE2ZTJiMTZjYjZiNi4uYmEwYmM0Mzk4Mjc0NTE1MjVlNjMwYTZmZTkwYWFlNGZhODQyNmU1
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9ldmVudHNvdXJjZS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c291cmNlL2lkbGhhcm5lc3MtZXhw
ZWN0ZWQudHh0CkBAIC0zLDcgKzMsOSBAQCBDT05TT0xFIE1FU1NBR0U6IEV2ZW50U291cmNlIGNh
bm5vdCBsb2FkIGh0dHA6Ly9mb28vIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVjawogRXZlbnRT
b3VyY2UgSURMIHRlc3RzCiAKIAotUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CitGQUlMIEV2ZW50VGFyZ2V0IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNz
ZXJ0X3Rocm93c19qczogaW50ZXJmYWNlIG9iamVjdCBkaWRuJ3QgdGhyb3cgVHlwZUVycm9yIHdo
ZW4gY2FsbGVkIGFzIGEgY29uc3RydWN0b3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgICAgICBuZXcgaW50ZXJmYWNlX29iamVjdCgpOworICAgICAgICAgICAgfSIgZGlkIG5v
dCB0aHJvdwogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBF
dmVudFRhcmdldCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QKQEAgLTE4LDcgKzIwLDcgQEAgUEFTUyBFdmVudExpc3RlbmVyIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2IKIFBBU1MgRXZlbnRM
aXN0ZW5lciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkKIFBBU1MgRXZlbnRMaXN0
ZW5lciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBoYW5kbGVFdmVudChFdmVudCkKIFBBU1MgRXZlbnRT
b3VyY2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdAotUEFTUyBFdmVudFNvdXJjZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAorRkFJTCBFdmVu
dFNvdXJjZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfZXF1YWxzOiB3cm9uZyB2YWx1
ZSBmb3IgRXZlbnRTb3VyY2UubGVuZ3RoIGV4cGVjdGVkIDAgYnV0IGdvdCAxCiBQQVNTIEV2ZW50
U291cmNlIGludGVyZmFjZSBvYmplY3QgbmFtZQogUEFTUyBFdmVudFNvdXJjZSBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAog
UEFTUyBFdmVudFNvdXJjZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4
dAppbmRleCA0ZGFlNWE1Yjc1Zjk2MDY4MmE1NDViZjYxNGY5YmU3NWVkNDI0OWJiLi4yZWNkMjE1
MjA5OWMzZDBkN2E2YTIwODNkMjYxY2QxMTBkNzVmZjcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9pZGxoYXJuZXNzLmFu
eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CkBAIC05LDEwICs5
LDEwIEBAIFBBU1MgUmVzcG9uc2UgaW5jbHVkZXMgQm9keTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3Jr
ZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV29ya2VyR2xvYmFs
U2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9u
U3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdp
bmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV29ya2VyR2xv
YmFsU2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlIG9iamVjdCBs
ZW5ndGgKIFBBU1MgSGVhZGVycyBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKQEAgLTEzNyw1ICsxMzcs
NCBAQCBQQVNTIFJlc3BvbnNlIGludGVyZmFjZTogbmV3IFJlc3BvbnNlKCkgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJ0ZXh0KCkiIHdpdGggdGhlCiBQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBmZXRjaChSZXF1ZXN0SW5mbywgb3B0aW9uYWwgUmVxdWVzdEluaXQpCiBQQVNTIFdpbmRv
dyBpbnRlcmZhY2U6IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImZldGNoKFJlcXVlc3RJ
bmZvLCBvcHRpb25hbCBSZXF1ZXN0SW5pdCkiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFdp
bmRvdyBpbnRlcmZhY2U6IGNhbGxpbmcgZmV0Y2goUmVxdWVzdEluZm8sIG9wdGlvbmFsIFJlcXVl
c3RJbml0KSBvbiB3aW5kb3cgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvcgotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbGhhcm5lc3MuYW55Lndv
cmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4
IDFjNmY1NTAyMjg3MWEwMmVmODcxZjU0OTA3Y2Y0ODhmOWM1OTU0YmEuLmUyYjc0N2M2ZTA2ZTI2
OGMwODcyOGQ2MDNmYzc1NDAyM2NiYzFmZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbGhhcm5lc3MuYW55Lndvcmtl
ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAt
OSwxMCArOSwxMCBAQCBQQVNTIFJlc3BvbnNlIGluY2x1ZGVzIEJvZHk6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93RXZlbnRIYW5k
bGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRv
d09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdvcmtl
ckdsb2JhbFNjb3BlIGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3Zp
ZGVyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93
U2Vzc2lvblN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNs
dWRlcyBXaW5kb3dMb2NhbFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdv
cmtlckdsb2JhbFNjb3BlIGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBIZWFkZXJzIGludGVyZmFjZSBv
YmplY3QgbGVuZ3RoCiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlIG9iamVjdCBuYW1lCkBAIC0xMzQs
NyArMTM0LDYgQEAgUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IG5ldyBSZXNwb25zZSgpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAiYmxvYigpIiB3aXRoIHRoZQogUEFTUyBSZXNwb25zZSBpbnRlcmZh
Y2U6IG5ldyBSZXNwb25zZSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZm9ybURhdGEoKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBuZXcgUmVzcG9uc2Uo
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImpzb24oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBB
U1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBuZXcgUmVzcG9uc2UoKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInRleHQoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKLVBBU1MgV2luZG93IGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgV29ya2Vy
R2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBvcGVyYXRpb24gZmV0Y2goUmVxdWVzdEluZm8sIG9wdGlv
bmFsIFJlcXVlc3RJbml0KQogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJmZXRjaChSZXF1ZXN0SW5mbywgb3B0aW9uYWwgUmVxdWVz
dEluaXQpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRl
cmZhY2U6IGNhbGxpbmcgZmV0Y2goUmVxdWVzdEluZm8sIG9wdGlvbmFsIFJlcXVlc3RJbml0KSBv
biBzZWxmIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
Y29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkx
OC9pZGxoYXJuZXNzLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CmluZGV4IGIyNTg4OWUzY2Iw
NjlhZmUxMjQ2NjczZGVjN2MxZDgzNTY1ZTVlNTcuLjVjMGYxYzA4NzUzZDEyNDc0ZmFiZWNhMWY0
ZTgyZTliM2FiZDQwNTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0aXZlLmFu
eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvaWRsaGFybmVzcy50ZW50YXRpdmUuYW55LWV4cGVj
dGVkLnR4dApAQCAtOSwxMSArOSwxMCBAQCBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50
WzJdOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBEb2N1
bWVudFszXTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMg
R2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1l
bnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKK1BBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3Jr
ZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5j
bHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNT
IERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJH
bG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV29ya2VyR2xvYmFsU2Nv
cGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dAogRkFJTCBEb2N1bWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBhZGRyZXNzU3BhY2UgYXNzZXJ0
X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJhZGRyZXNz
U3BhY2UiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIERvY3VtZW50IGludGVyZmFjZTog
ZG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRyZXNzU3BhY2UiIHdpdGggdGhlIHBy
b3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImFkZHJlc3NTcGFjZSIgbm90IGZv
dW5kIGluIHByb3RvdHlwZSBjaGFpbgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9pZGxoYXJuZXNzLnRl
bnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0
aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDc0MGVhZDBmYWI3Y2Y1NTA2NDEzODJj
YjE3MjA2NjYyMzZmMWE4YzIuLmMzZTQxNTU3Mzc4NDQ4YWY2MjJjMTIzYjFlMTEyZWI2NmMxZTYz
ZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0aXZlLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0aXZlLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0CkBAIC05LDEyICs5LDEwIEBAIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1l
bnRbMl06IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIERv
Y3VtZW50WzNdOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRl
cyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1
bWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQorUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldv
cmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBp
bmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
IFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtl
ckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogRkFJTCBXb3JrZXJHbG9iYWxT
Y29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBhZGRyZXNzU3BhY2UgYXNzZXJ0X3RydWU6IFRoZSBw
cm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJhZGRyZXNzU3BhY2UiIGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2Vs
ZiBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZHJlc3NTcGFjZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiYWRkcmVzc1NwYWNlIiBub3QgZm91bmQgaW4g
cHJvdG90eXBlIGNoYWluCi1QQVNTIE5vZGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAotUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHItdGltZS9pZGxoYXJu
ZXNzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2hyLXRpbWUvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CmluZGV4IDhkZWZl
ZmIyZjBlNzdlY2Y1MTRmZGQ1MzdjNmI1MmNmMDhhYTFlOTkuLjEyNmUwOTk1NDZjY2U0YTZkMGVj
ZTY4YmFjOWJkNzFkNmE4ZjVlM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHItdGltZS9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9oci10aW1l
L2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dApAQCAtNywxMCArNywxMCBAQCBQQVNTIFBhcnRp
YWwgaW50ZXJmYWNlIFdpbmRvdzogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93
IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMg
V2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
V2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFn
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVk
ZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIG9iamVjdAogUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAog
UEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKQEAgLTI4LDUgKzI4LDQgQEAg
UEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2U6IHBlcmZvcm1hbmNlIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAidG9KU09OKCkiIHdpdGggdGgKIFBBU1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiBkZWZh
dWx0IHRvSlNPTiBvcGVyYXRpb24gb24gcGVyZm9ybWFuY2UKIFBBU1MgV2luZG93IGludGVyZmFj
ZTogYXR0cmlidXRlIHBlcmZvcm1hbmNlCiBQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IHNlbGYgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJwZXJmb3JtYW5jZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKLVBB
U1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2hyLXRpbWUvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHIt
dGltZS9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGNhY2IyN2FlM2Ji
ZTk3YjM1MTk5OGI4NTZlNTcyMDRiOGVkY2QxZDcuLjJkODJmYzY5YjFhODJjNjI3NTJlZjg1MmY4
ZWIzMTg3NzBlMWJiNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHItdGltZS9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHItdGlt
ZS9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC03LDEwICs3LDEwIEBAIFBB
U1MgUGFydGlhbCBpbnRlcmZhY2UgV2luZG93OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBXaW5kb3cgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2Jh
bFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBp
bmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd1Nlc3Npb25TdG9yYWdl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93TG9j
YWxTdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBXb3JrZXJHbG9iYWxTY29w
ZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIFBlcmZvcm1hbmNlIGludGVyZmFjZSBvYmplY3Qg
bGVuZ3RoCiBQQVNTIFBlcmZvcm1hbmNlIGludGVyZmFjZSBvYmplY3QgbmFtZQpAQCAtMjYsNyAr
MjYsNiBAQCBQQVNTIFBlcmZvcm1hbmNlIGludGVyZmFjZTogcGVyZm9ybWFuY2UgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJub3coKSIgd2l0aCB0aGUgcAogUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZh
Y2U6IHBlcmZvcm1hbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidGltZU9yaWdpbiIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUKIFBBU1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiBwZXJmb3JtYW5jZSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInRvSlNPTigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFT
UyBQZXJmb3JtYW5jZSBpbnRlcmZhY2U6IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvbiBwZXJm
b3JtYW5jZQotUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSBwZXJmb3JtYW5jZQogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNl
bGYgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJwZXJmb3JtYW5jZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvbmF2aWdhdGluZy1hY3Jvc3MtZG9j
dW1lbnRzL2phdmFzY3JpcHQtdXJsLXJldHVybi12YWx1ZS1oYW5kbGluZy1keW5hbWljLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL25hdmlnYXRpbmctYWNyb3NzLWRvY3VtZW50cy9q
YXZhc2NyaXB0LXVybC1yZXR1cm4tdmFsdWUtaGFuZGxpbmctZHluYW1pYy1leHBlY3RlZC50eHQK
aW5kZXggMzgxOWIwZDkwMDRlZjFiMjQ1NDk5ZTJiYmM5NzM4Y2RhMGUyMDZmYS4uYTI2NGQ2YTUw
MWUzMDNmMjc2ODM4YTViODE5NmNkMjBkMjg1YTA4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRo
ZS13ZWIvbmF2aWdhdGluZy1hY3Jvc3MtZG9jdW1lbnRzL2phdmFzY3JpcHQtdXJsLXJldHVybi12
YWx1ZS1oYW5kbGluZy1keW5hbWljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdl
Yi9uYXZpZ2F0aW5nLWFjcm9zcy1kb2N1bWVudHMvamF2YXNjcmlwdC11cmwtcmV0dXJuLXZhbHVl
LWhhbmRsaW5nLWR5bmFtaWMtZXhwZWN0ZWQudHh0CkBAIC04LDUgKzgsNSBAQCBGQUlMIFRlc3Qg
amF2YXNjcmlwdCBVUkwgc3RyaW5nIHJldHVybiB2YWx1ZXMgaW4gZGlyZWN0IGFuZCBpbmRpcmVj
dCAodGFyZ2V0KSBmcgogRkFJTCBUZXN0IGphdmFzY3JpcHQgVVJMIHN0cmluZyByZXR1cm4gdmFs
dWVzIGluIGRpcmVjdCBhbmQgaW5kaXJlY3QgKHRhcmdldCkgZnJhbWUgY29udGV4dHMuIDYgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgIsKAw78iIGJ1dCBnb3QgIiIKIEZBSUwgVGVzdCBqYXZhc2Ny
aXB0IFVSTCBzdHJpbmcgcmV0dXJuIHZhbHVlcyBpbiBkaXJlY3QgYW5kIGluZGlyZWN0ICh0YXJn
ZXQpIGZyYW1lIGNvbnRleHRzLiA3IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICLCgMO/xIAiIGJ1
dCBnb3QgIiIKIEZBSUwgVGVzdCBqYXZhc2NyaXB0IFVSTCBzdHJpbmcgcmV0dXJuIHZhbHVlcyBp
biBkaXJlY3QgYW5kIGluZGlyZWN0ICh0YXJnZXQpIGZyYW1lIGNvbnRleHRzLiA4IGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICLwn5iNIiBidXQgZ290ICIiCi1GQUlMIFRlc3QgamF2YXNjcmlwdCBV
Ukwgc3RyaW5nIHJldHVybiB2YWx1ZXMgaW4gZGlyZWN0IGFuZCBpbmRpcmVjdCAodGFyZ2V0KSBm
cmFtZSBjb250ZXh0cy4gOSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi77+9QSIgYnV0IGdvdCAi
IgorRkFJTCBUZXN0IGphdmFzY3JpcHQgVVJMIHN0cmluZyByZXR1cm4gdmFsdWVzIGluIGRpcmVj
dCBhbmQgaW5kaXJlY3QgKHRhcmdldCkgZnJhbWUgY29udGV4dHMuIDkgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgIlUrZGUwZEEiIGJ1dCBnb3QgIiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLndvcmtl
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvZG9tL2lkbGhhcm5lc3Mud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCAxOWI5YjZh
NjQzOTQwZGEzMzMyODg5YWM2MGEzYWM2ZmI5OGUyM2RjLi42ZGE1OGQxYzM0MTU3NWE4MDNkOGFj
MDlkMDQ1NmJjODcwZDQyNDFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3Mud29ya2VyLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
ZG9tL2lkbGhhcm5lc3Mud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtNzksMTUgKzc5LDEwIEBAIFBB
U1MgUGFydGlhbCBpbnRlcmZhY2UgV2luZG93OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBQYXJ0aWFsIGludGVyZmFjZSBVSUV2ZW50OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBEb2N1bWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhh
bmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBO
b25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1l
bnQgaW5jbHVkZXMgRG9jdW1lbnRPclNoYWRvd1Jvb3Q6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
Ci1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5k
bGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMg
RG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
IFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENvbnRlbnRFZGl0YWJsZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZHRWxl
bWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMg
RWxlbWVudENTU0lubGluZVN0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1M
TGlua0VsZW1lbnQgaW5jbHVkZXMgTGlua1N0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQog
UEFTUyBIVE1MU3R5bGVFbGVtZW50IGluY2x1ZGVzIExpbmtTdHlsZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgSFRNTEJvZHlFbGVtZW50IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxl
cnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCkBAIC0xMjksOSArMTI0LDYgQEAgUEFTUyBFbGVt
ZW50SW50ZXJuYWxzIGluY2x1ZGVzIEFSSUFNaXhpbjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
IFBBU1MgV2luZG93IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJH
bG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV2luZG93IGluY2x1ZGVz
IEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdp
bmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKLVBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3Jr
ZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGlu
Y2x1ZGVzIE5hdmlnYXRvcklEOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0
b3IgaW5jbHVkZXMgTmF2aWdhdG9yTGFuZ3VhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCkBA
IC0xNDAsNiArMTMyLDcgQEAgUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29udGVu
dFV0aWxzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMg
TmF2aWdhdG9yQ29va2llczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9y
IGluY2x1ZGVzIE5hdmlnYXRvclBsdWdpbnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNT
IE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCitQQVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3Zp
ZGVyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZSBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBXb3JrZXIgaW5jbHVkZXMgQWJzdHJhY3RXb3JrZXI6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFNoYXJlZFdvcmtlciBpbmNsdWRlcyBBYnN0cmFjdFdvcmtlcjogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAgLTE0NywxNSArMTQwLDIyIEBAIFBBU1MgV29ya2VyTmF2
aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvcklEOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBXb3JrZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yTGFuZ3VhZ2U6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlck5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JPbkxp
bmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlck5hdmlnYXRvciBpbmNsdWRl
cyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQ
QVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKK1BBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEZyYW1lU2V0RWxlbWVudCBpbmNsdWRlcyBXaW5k
b3dFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGlu
Y2x1ZGVzIEFSSUFNaXhpbjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQg
aW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQ
QVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50T3JTaGFk
b3dSb290OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBTaGFkb3dSb290IGluY2x1ZGVz
IERvY3VtZW50T3JTaGFkb3dSb290OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1
bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBE
b2N1bWVudEZyYWdtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGU6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGROb2RlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0YWJsZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBO
b25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1l
bnRGcmFnbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQot
UEFTUyBTaGFkb3dSb290IGluY2x1ZGVzIERvY3VtZW50T3JTaGFkb3dSb290OiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEVsZW1l
bnRDU1NJbmxpbmVTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEFsbENv
bGxlY3Rpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdAogUEFTUyBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbiBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIFJhZGlvTm9kZUxp
c3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dApAQCAtNzk0LDE0ICs3OTQsNCBAQCBQQVNTIEhUTUxGcmFtZUVsZW1lbnQgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBIVE1MRGly
ZWN0b3J5RWxlbWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0CiBQQVNTIEhUTUxGb250RWxlbWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIEV4dGVybmFsIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKLVBBU1MgTm9k
ZUxpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdAotUEFTUyBIVE1MQ29sbGVjdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIE5vZGUgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAotUEFTUyBEb2N1bWVudCBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIERv
Y3VtZW50RnJhZ21lbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIG9iamVjdAotUEFTUyBTaGFkb3dSb290IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKLVBBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIERPTVRva2Vu
TGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0Ci1QQVNTIFVJRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdAotUEFTUyBNb3VzZUV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL3Nh
ZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEvc3RydWN0dXJlZC1jbG9uaW5nLWVycm9yLXN0
YWNrLW9wdGlvbmFsLnN1Yi53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL3NhZmUtcGFzc2lu
Zy1vZi1zdHJ1Y3R1cmVkLWRhdGEvc3RydWN0dXJlZC1jbG9uaW5nLWVycm9yLXN0YWNrLW9wdGlv
bmFsLnN1Yi53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IDJjNzJkNWI5YjFlZjRjYTgxM2UzOThi
NWQ5ZWM0YmE5ZTE3NjgzMWUuLmEyOTg3MmQzYjUwNjI3MzU1ZWJmMzk2YzUzZTkyMGE2OGFlOGY4
NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9pbmZyYXN0cnVjdHVyZS9zYWZlLXBhc3Npbmctb2Ytc3RydWN0dXJlZC1kYXRhL3N0
cnVjdHVyZWQtY2xvbmluZy1lcnJvci1zdGFjay1vcHRpb25hbC5zdWIud2luZG93LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9zdHJ1Y3R1
cmVkLWNsb25pbmctZXJyb3Itc3RhY2stb3B0aW9uYWwuc3ViLndpbmRvdy1leHBlY3RlZC50eHQK
QEAgLTEzLDYgKzEzLDYgQEAgRkFJTCBKUy1lbmdpbmUtY3JlYXRlZCBUeXBlRXJyb3IgKHdvcmtl
cikgVGhlIG9iamVjdCBjYW4gbm90IGJlIGNsb25lZC4KIEZBSUwgSlMtZW5naW5lLWNyZWF0ZWQg
VHlwZUVycm9yIChjcm9zcy1zaXRlIGlmcmFtZSkgVGhlIG9iamVjdCBjYW4gbm90IGJlIGNsb25l
ZC4KIEZBSUwgd2ViIEFQSS1jcmVhdGVkIFR5cGVFcnJvciAod29ya2VyKSBUaGUgb2JqZWN0IGNh
biBub3QgYmUgY2xvbmVkLgogRkFJTCB3ZWIgQVBJLWNyZWF0ZWQgVHlwZUVycm9yIChjcm9zcy1z
aXRlIGlmcmFtZSkgVGhlIG9iamVjdCBjYW4gbm90IGJlIGNsb25lZC4KLUZBSUwgd2ViIEFQSS1j
cmVhdGVkIERPTUV4Y2VwdGlvbiAod29ya2VyKSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3Ry
aW5nKSAiY3JlYXRlRWxlbWVudEBbbmF0aXZlIGNvZGVdXG5AaHR0cDovL2xvY2FsaG9zdDo4ODAw
L2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9zdHJ1
Y3R1cmVkLWNsb25pbmctZXJyb3Itc3RhY2stb3B0aW9uYWwuc3ViLndpbmRvdy5qczozMzoyN1xu
QGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9odG1sL2luZnJhc3RydWN0dXJlL3NhZmUtcGFzc2luZy1v
Zi1zdHJ1Y3R1cmVkLWRhdGEvc3RydWN0dXJlZC1jbG9uaW5nLWVycm9yLXN0YWNrLW9wdGlvbmFs
LnN1Yi53aW5kb3cuanM6NDE6MzFcbkBodHRwOi8vbG9jYWxob3N0Ojg4MDAvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzOjIwNDQ6MzBcbmFzeW5jX3Rlc3RAaHR0cDovL2xvY2FsaG9zdDo4ODAwL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qczo2MDk6MzhcbnN0YWNrVGVzdHNAaHR0cDovL2xvY2FsaG9z
dDo4ODAwL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0
YS9zdHJ1Y3R1cmVkLWNsb25pbmctZXJyb3Itc3RhY2stb3B0aW9uYWwuc3ViLndpbmRvdy5qczo0
MDoxM1xuZ2xvYmFsIGNvZGVAaHR0cDovL2xvY2FsaG9zdDo4ODAwL2h0bWwvaW5mcmFzdHJ1Y3R1
cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9zdHJ1Y3R1cmVkLWNsb25pbmctZXJy
b3Itc3RhY2stb3B0aW9uYWwuc3ViLndpbmRvdy5qczozMToxMSIgYnV0IGdvdCAodW5kZWZpbmVk
KSB1bmRlZmluZWQKK0ZBSUwgd2ViIEFQSS1jcmVhdGVkIERPTUV4Y2VwdGlvbiAod29ya2VyKSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAiY3JlYXRlRWxlbWVudEBbbmF0aXZlIGNv
ZGVdXG5AaHR0cDovL2xvY2FsaG9zdDo4ODAwL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNz
aW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9zdHJ1Y3R1cmVkLWNsb25pbmctZXJyb3Itc3RhY2stb3B0
aW9uYWwuc3ViLndpbmRvdy5qczozMzoyN1xuQGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9odG1sL2lu
ZnJhc3RydWN0dXJlL3NhZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEvc3RydWN0dXJlZC1j
bG9uaW5nLWVycm9yLXN0YWNrLW9wdGlvbmFsLnN1Yi53aW5kb3cuanM6NDE6MzFcbkBodHRwOi8v
bG9jYWxob3N0Ojg4MDAvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzOjIwODc6MzBcbmFzeW5jX3Rl
c3RAaHR0cDovL2xvY2FsaG9zdDo4ODAwL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qczo1OTQ6Mzhc
bnN0YWNrVGVzdHNAaHR0cDovL2xvY2FsaG9zdDo4ODAwL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2Fm
ZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9zdHJ1Y3R1cmVkLWNsb25pbmctZXJyb3Itc3Rh
Y2stb3B0aW9uYWwuc3ViLndpbmRvdy5qczo0MDoxM1xuZ2xvYmFsIGNvZGVAaHR0cDovL2xvY2Fs
aG9zdDo4ODAwL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQt
ZGF0YS9zdHJ1Y3R1cmVkLWNsb25pbmctZXJyb3Itc3RhY2stb3B0aW9uYWwuc3ViLndpbmRvdy5q
czozMToxMSIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKIFRJTUVPVVQgd2ViIEFQSS1j
cmVhdGVkIERPTUV4Y2VwdGlvbiAoY3Jvc3Mtc2l0ZSBpZnJhbWUpIFRlc3QgdGltZWQgb3V0CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW50ZXJmYWNlcy9ET00tUGFyc2luZy5pZGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvRE9NLVBhcnNpbmcuaWRsCmluZGV4IDk5NzEyNjI5
MjIwODMwMDBiOTQ0ZTBkZTAzMjE2M2NlNzc4MTIwNDEuLmQwZDg0YWI2OTcyZjAyYWUxMWYyZTNh
ODUwNzQ5MDY0ZDYzZmEyOTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9ET00tUGFyc2luZy5pZGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL0RPTS1QYXJz
aW5nLmlkbApAQCAtMTgsNyArMTgsNyBAQCBTaGFkb3dSb290IGluY2x1ZGVzIElubmVySFRNTDsK
IAogcGFydGlhbCBpbnRlcmZhY2UgRWxlbWVudCB7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gRE9NU3RyaW5nIG91dGVySFRNTDsKLSAgW0NFUmVh
Y3Rpb25zXSB2b2lkIGluc2VydEFkamFjZW50SFRNTChET01TdHJpbmcgcG9zaXRpb24sIERPTVN0
cmluZyB0ZXh0KTsKKyAgW0NFUmVhY3Rpb25zXSB1bmRlZmluZWQgaW5zZXJ0QWRqYWNlbnRIVE1M
KERPTVN0cmluZyBwb3NpdGlvbiwgRE9NU3RyaW5nIHRleHQpOwogfTsKIAogcGFydGlhbCBpbnRl
cmZhY2UgUmFuZ2UgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL1NWRy5pZGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvU1ZHLmlkbAppbmRleCBmOGQyNGM5YzY2
NjM2ZDQxMWYzMWNkMmY3ODBiNzc0YWM2MzY2MzlkLi4xMWE1YzdjMjk5Y2QzYjhjNDE4YmJiNWRj
YWQ2N2IxMjkyMzgyOGNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvU1ZHLmlkbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvU1ZHLmlkbApAQCAtMjQsNiAr
MjQsNyBAQCBkaWN0aW9uYXJ5IFNWR0JvdW5kaW5nQm94T3B0aW9ucyB7CiAgIGJvb2xlYW4gY2xp
cHBlZCA9IGZhbHNlOwogfTsKIAorW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIFNWR0dyYXBo
aWNzRWxlbWVudCA6IFNWR0VsZW1lbnQgewogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmli
dXRlIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdCB0cmFuc2Zvcm07CiAKQEAgLTcwLDggKzcxLDgg
QEAgaW50ZXJmYWNlIFNWR0xlbmd0aCB7CiAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB2YWx1
ZUluU3BlY2lmaWVkVW5pdHM7CiAgICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsdWVB
c1N0cmluZzsKIAotICB2b2lkIG5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5zaWduZWQgc2hvcnQg
dW5pdFR5cGUsIGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7Ci0gIHZvaWQgY29udmVydFRv
U3BlY2lmaWVkVW5pdHModW5zaWduZWQgc2hvcnQgdW5pdFR5cGUpOworICB1bmRlZmluZWQgbmV3
VmFsdWVTcGVjaWZpZWRVbml0cyh1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSwgZmxvYXQgdmFsdWVJ
blNwZWNpZmllZFVuaXRzKTsKKyAgdW5kZWZpbmVkIGNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKHVu
c2lnbmVkIHNob3J0IHVuaXRUeXBlKTsKIH07CiAKIFtFeHBvc2VkPVdpbmRvd10KQEAgLTg5LDgg
KzkwLDggQEAgaW50ZXJmYWNlIFNWR0FuZ2xlIHsKICAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0
IHZhbHVlSW5TcGVjaWZpZWRVbml0czsKICAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyB2
YWx1ZUFzU3RyaW5nOwogCi0gIHZvaWQgbmV3VmFsdWVTcGVjaWZpZWRVbml0cyh1bnNpZ25lZCBz
aG9ydCB1bml0VHlwZSwgZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKLSAgdm9pZCBjb252
ZXJ0VG9TcGVjaWZpZWRVbml0cyh1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSk7CisgIHVuZGVmaW5l
ZCBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBmbG9hdCB2
YWx1ZUluU3BlY2lmaWVkVW5pdHMpOworICB1bmRlZmluZWQgY29udmVydFRvU3BlY2lmaWVkVW5p
dHModW5zaWduZWQgc2hvcnQgdW5pdFR5cGUpOwogfTsKIAogW0V4cG9zZWQ9V2luZG93XQpAQCAt
OTksMTQgKzEwMCwxNCBAQCBpbnRlcmZhY2UgU1ZHTnVtYmVyTGlzdCB7CiAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgbnVtYmVyT2ZJdGVtczsKIAotICB2b2lkIGNsZWFyKCk7CisgIHVuZGVmaW5lZCBj
bGVhcigpOwogICBTVkdOdW1iZXIgaW5pdGlhbGl6ZShTVkdOdW1iZXIgbmV3SXRlbSk7CiAgIGdl
dHRlciBTVkdOdW1iZXIgZ2V0SXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgU1ZHTnVtYmVy
IGluc2VydEl0ZW1CZWZvcmUoU1ZHTnVtYmVyIG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgp
OwogICBTVkdOdW1iZXIgcmVwbGFjZUl0ZW0oU1ZHTnVtYmVyIG5ld0l0ZW0sIHVuc2lnbmVkIGxv
bmcgaW5kZXgpOwogICBTVkdOdW1iZXIgcmVtb3ZlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsK
ICAgU1ZHTnVtYmVyIGFwcGVuZEl0ZW0oU1ZHTnVtYmVyIG5ld0l0ZW0pOwotICBzZXR0ZXIgdm9p
ZCAodW5zaWduZWQgbG9uZyBpbmRleCwgU1ZHTnVtYmVyIG5ld0l0ZW0pOworICBzZXR0ZXIgdW5k
ZWZpbmVkICh1bnNpZ25lZCBsb25nIGluZGV4LCBTVkdOdW1iZXIgbmV3SXRlbSk7CiB9OwogCiBb
RXhwb3NlZD1XaW5kb3ddCkBAIC0xMTUsMTQgKzExNiwxNCBAQCBpbnRlcmZhY2UgU1ZHTGVuZ3Ro
TGlzdCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJdGVtczsKIAotICB2b2lkIGNs
ZWFyKCk7CisgIHVuZGVmaW5lZCBjbGVhcigpOwogICBTVkdMZW5ndGggaW5pdGlhbGl6ZShTVkdM
ZW5ndGggbmV3SXRlbSk7CiAgIGdldHRlciBTVkdMZW5ndGggZ2V0SXRlbSh1bnNpZ25lZCBsb25n
IGluZGV4KTsKICAgU1ZHTGVuZ3RoIGluc2VydEl0ZW1CZWZvcmUoU1ZHTGVuZ3RoIG5ld0l0ZW0s
IHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICBTVkdMZW5ndGggcmVwbGFjZUl0ZW0oU1ZHTGVuZ3Ro
IG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICBTVkdMZW5ndGggcmVtb3ZlSXRlbSh1
bnNpZ25lZCBsb25nIGluZGV4KTsKICAgU1ZHTGVuZ3RoIGFwcGVuZEl0ZW0oU1ZHTGVuZ3RoIG5l
d0l0ZW0pOwotICBzZXR0ZXIgdm9pZCAodW5zaWduZWQgbG9uZyBpbmRleCwgU1ZHTGVuZ3RoIG5l
d0l0ZW0pOworICBzZXR0ZXIgdW5kZWZpbmVkICh1bnNpZ25lZCBsb25nIGluZGV4LCBTVkdMZW5n
dGggbmV3SXRlbSk7CiB9OwogCiBbRXhwb3NlZD1XaW5kb3ddCkBAIC0xMzEsMTQgKzEzMiwxNCBA
QCBpbnRlcmZhY2UgU1ZHU3RyaW5nTGlzdCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBsb25nIGxlbmd0aDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVy
T2ZJdGVtczsKIAotICB2b2lkIGNsZWFyKCk7CisgIHVuZGVmaW5lZCBjbGVhcigpOwogICBET01T
dHJpbmcgaW5pdGlhbGl6ZShET01TdHJpbmcgbmV3SXRlbSk7CiAgIGdldHRlciBET01TdHJpbmcg
Z2V0SXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgRE9NU3RyaW5nIGluc2VydEl0ZW1CZWZv
cmUoRE9NU3RyaW5nIG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICBET01TdHJpbmcg
cmVwbGFjZUl0ZW0oRE9NU3RyaW5nIG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICBE
T01TdHJpbmcgcmVtb3ZlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgRE9NU3RyaW5nIGFw
cGVuZEl0ZW0oRE9NU3RyaW5nIG5ld0l0ZW0pOwotICBzZXR0ZXIgdm9pZCAodW5zaWduZWQgbG9u
ZyBpbmRleCwgRE9NU3RyaW5nIG5ld0l0ZW0pOworICBzZXR0ZXIgdW5kZWZpbmVkICh1bnNpZ25l
ZCBsb25nIGluZGV4LCBET01TdHJpbmcgbmV3SXRlbSk7CiB9OwogCiBbRXhwb3NlZD1XaW5kb3dd
CkBAIC0yNDMsNyArMjQ0LDcgQEAgaW50ZXJmYWNlIFNWR1NWR0VsZW1lbnQgOiBTVkdHcmFwaGlj
c0VsZW1lbnQgewogICBib29sZWFuIGNoZWNrSW50ZXJzZWN0aW9uKFNWR0VsZW1lbnQgZWxlbWVu
dCwgRE9NUmVjdFJlYWRPbmx5IHJlY3QpOwogICBib29sZWFuIGNoZWNrRW5jbG9zdXJlKFNWR0Vs
ZW1lbnQgZWxlbWVudCwgRE9NUmVjdFJlYWRPbmx5IHJlY3QpOwogCi0gIHZvaWQgZGVzZWxlY3RB
bGwoKTsKKyAgdW5kZWZpbmVkIGRlc2VsZWN0QWxsKCk7CiAKICAgU1ZHTnVtYmVyIGNyZWF0ZVNW
R051bWJlcigpOwogICBTVkdMZW5ndGggY3JlYXRlU1ZHTGVuZ3RoKCk7CkBAIC0yNTIsMTYgKzI1
MywxNiBAQCBpbnRlcmZhY2UgU1ZHU1ZHRWxlbWVudCA6IFNWR0dyYXBoaWNzRWxlbWVudCB7CiAg
IERPTU1hdHJpeCBjcmVhdGVTVkdNYXRyaXgoKTsKICAgRE9NUmVjdCBjcmVhdGVTVkdSZWN0KCk7
CiAgIFNWR1RyYW5zZm9ybSBjcmVhdGVTVkdUcmFuc2Zvcm0oKTsKLSAgU1ZHVHJhbnNmb3JtIGNy
ZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgob3B0aW9uYWwgRE9NTWF0cml4MkRJbml0IG1hdHJp
eCk7CisgIFNWR1RyYW5zZm9ybSBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KG9wdGlvbmFs
IERPTU1hdHJpeDJESW5pdCBtYXRyaXggPSB7fSk7CiAKICAgRWxlbWVudCBnZXRFbGVtZW50QnlJ
ZChET01TdHJpbmcgZWxlbWVudElkKTsKIAogICAvLyBEZXByZWNhdGVkIG1ldGhvZHMgdGhhdCBo
YXZlIG5vIGVmZmVjdCB3aGVuIGNhbGxlZCwKICAgLy8gYnV0IHdoaWNoIGFyZSBrZXB0IGZvciBj
b21wYXRpYmlsaXR5IHJlYXNvbnMuCiAgIHVuc2lnbmVkIGxvbmcgc3VzcGVuZFJlZHJhdyh1bnNp
Z25lZCBsb25nIG1heFdhaXRNaWxsaXNlY29uZHMpOwotICB2b2lkIHVuc3VzcGVuZFJlZHJhdyh1
bnNpZ25lZCBsb25nIHN1c3BlbmRIYW5kbGVJRCk7Ci0gIHZvaWQgdW5zdXNwZW5kUmVkcmF3QWxs
KCk7Ci0gIHZvaWQgZm9yY2VSZWRyYXcoKTsKKyAgdW5kZWZpbmVkIHVuc3VzcGVuZFJlZHJhdyh1
bnNpZ25lZCBsb25nIHN1c3BlbmRIYW5kbGVJRCk7CisgIHVuZGVmaW5lZCB1bnN1c3BlbmRSZWRy
YXdBbGwoKTsKKyAgdW5kZWZpbmVkIGZvcmNlUmVkcmF3KCk7CiB9OwogCiBTVkdTVkdFbGVtZW50
IGluY2x1ZGVzIFNWR0ZpdFRvVmlld0JveDsKQEAgLTMxNCw4ICszMTUsOSBAQCBpbnRlcmZhY2Ug
bWl4aW4gU1ZHRWxlbWVudEluc3RhbmNlIHsKICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBTVkdVc2VFbGVtZW50PyBjb3JyZXNwb25kaW5nVXNlRWxlbWVudDsKIH07CiAKLVtDb25z
dHJ1Y3RvcihBbmltYXRpb24gc291cmNlLCBBbmltYXRhYmxlIG5ld1RhcmdldCksIEV4cG9zZWQ9
V2luZG93XQorW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIFNoYWRvd0FuaW1hdGlvbiA6IEFu
aW1hdGlvbiB7CisgIGNvbnN0cnVjdG9yKEFuaW1hdGlvbiBzb3VyY2UsIChFbGVtZW50IG9yIENT
U1BzZXVkb0VsZW1lbnQpIG5ld1RhcmdldCk7CiAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRy
aWJ1dGUgQW5pbWF0aW9uIHNvdXJjZUFuaW1hdGlvbjsKIH07CiAKQEAgLTM1MiwxMiArMzU0LDEy
IEBAIGludGVyZmFjZSBTVkdUcmFuc2Zvcm0gewogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0
cmlidXRlIERPTU1hdHJpeCBtYXRyaXg7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBhbmds
ZTsKIAotICB2b2lkIHNldE1hdHJpeChvcHRpb25hbCBET01NYXRyaXgyREluaXQgbWF0cml4KTsK
LSAgdm9pZCBzZXRUcmFuc2xhdGUoZmxvYXQgdHgsIGZsb2F0IHR5KTsKLSAgdm9pZCBzZXRTY2Fs
ZShmbG9hdCBzeCwgZmxvYXQgc3kpOwotICB2b2lkIHNldFJvdGF0ZShmbG9hdCBhbmdsZSwgZmxv
YXQgY3gsIGZsb2F0IGN5KTsKLSAgdm9pZCBzZXRTa2V3WChmbG9hdCBhbmdsZSk7Ci0gIHZvaWQg
c2V0U2tld1koZmxvYXQgYW5nbGUpOworICB1bmRlZmluZWQgc2V0TWF0cml4KG9wdGlvbmFsIERP
TU1hdHJpeDJESW5pdCBtYXRyaXggPSB7fSk7CisgIHVuZGVmaW5lZCBzZXRUcmFuc2xhdGUoZmxv
YXQgdHgsIGZsb2F0IHR5KTsKKyAgdW5kZWZpbmVkIHNldFNjYWxlKGZsb2F0IHN4LCBmbG9hdCBz
eSk7CisgIHVuZGVmaW5lZCBzZXRSb3RhdGUoZmxvYXQgYW5nbGUsIGZsb2F0IGN4LCBmbG9hdCBj
eSk7CisgIHVuZGVmaW5lZCBzZXRTa2V3WChmbG9hdCBhbmdsZSk7CisgIHVuZGVmaW5lZCBzZXRT
a2V3WShmbG9hdCBhbmdsZSk7CiB9OwogCiBbRXhwb3NlZD1XaW5kb3ddCkBAIC0zNjYsMTcgKzM2
OCwxNyBAQCBpbnRlcmZhY2UgU1ZHVHJhbnNmb3JtTGlzdCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgbnVtYmVyT2ZJdGVtczsKIAotICB2b2lkIGNsZWFyKCk7CisgIHVuZGVmaW5lZCBjbGVhcigp
OwogICBTVkdUcmFuc2Zvcm0gaW5pdGlhbGl6ZShTVkdUcmFuc2Zvcm0gbmV3SXRlbSk7CiAgIGdl
dHRlciBTVkdUcmFuc2Zvcm0gZ2V0SXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgU1ZHVHJh
bnNmb3JtIGluc2VydEl0ZW1CZWZvcmUoU1ZHVHJhbnNmb3JtIG5ld0l0ZW0sIHVuc2lnbmVkIGxv
bmcgaW5kZXgpOwogICBTVkdUcmFuc2Zvcm0gcmVwbGFjZUl0ZW0oU1ZHVHJhbnNmb3JtIG5ld0l0
ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICBTVkdUcmFuc2Zvcm0gcmVtb3ZlSXRlbSh1bnNp
Z25lZCBsb25nIGluZGV4KTsKICAgU1ZHVHJhbnNmb3JtIGFwcGVuZEl0ZW0oU1ZHVHJhbnNmb3Jt
IG5ld0l0ZW0pOwotICBzZXR0ZXIgdm9pZCAodW5zaWduZWQgbG9uZyBpbmRleCwgU1ZHVHJhbnNm
b3JtIG5ld0l0ZW0pOworICBzZXR0ZXIgdW5kZWZpbmVkICh1bnNpZ25lZCBsb25nIGluZGV4LCBT
VkdUcmFuc2Zvcm0gbmV3SXRlbSk7CiAKICAgLy8gQWRkaXRpb25hbCBtZXRob2RzIG5vdCBjb21t
b24gdG8gb3RoZXIgbGlzdCBpbnRlcmZhY2VzLgotICBTVkdUcmFuc2Zvcm0gY3JlYXRlU1ZHVHJh
bnNmb3JtRnJvbU1hdHJpeChvcHRpb25hbCBET01NYXRyaXgyREluaXQgbWF0cml4KTsKKyAgU1ZH
VHJhbnNmb3JtIGNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgob3B0aW9uYWwgRE9NTWF0cml4
MkRJbml0IG1hdHJpeCA9IHt9KTsKICAgU1ZHVHJhbnNmb3JtPyBjb25zb2xpZGF0ZSgpOwogfTsK
IApAQCAtNDY1LDE0ICs0NjcsMTQgQEAgaW50ZXJmYWNlIFNWR1BvaW50TGlzdCB7CiAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJdGVtczsKIAotICB2b2lkIGNsZWFyKCk7CisgIHVuZGVm
aW5lZCBjbGVhcigpOwogICBET01Qb2ludCBpbml0aWFsaXplKERPTVBvaW50IG5ld0l0ZW0pOwog
ICBnZXR0ZXIgRE9NUG9pbnQgZ2V0SXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgRE9NUG9p
bnQgaW5zZXJ0SXRlbUJlZm9yZShET01Qb2ludCBuZXdJdGVtLCB1bnNpZ25lZCBsb25nIGluZGV4
KTsKICAgRE9NUG9pbnQgcmVwbGFjZUl0ZW0oRE9NUG9pbnQgbmV3SXRlbSwgdW5zaWduZWQgbG9u
ZyBpbmRleCk7CiAgIERPTVBvaW50IHJlbW92ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CiAg
IERPTVBvaW50IGFwcGVuZEl0ZW0oRE9NUG9pbnQgbmV3SXRlbSk7Ci0gIHNldHRlciB2b2lkICh1
bnNpZ25lZCBsb25nIGluZGV4LCBET01Qb2ludCBuZXdJdGVtKTsKKyAgc2V0dGVyIHVuZGVmaW5l
ZCAodW5zaWduZWQgbG9uZyBpbmRleCwgRE9NUG9pbnQgbmV3SXRlbSk7CiB9OwogCiBbRXhwb3Nl
ZD1XaW5kb3ddCkBAIC01MDYsNyArNTA4LDcgQEAgaW50ZXJmYWNlIFNWR1RleHRDb250ZW50RWxl
bWVudCA6IFNWR0dyYXBoaWNzRWxlbWVudCB7CiAgIERPTVJlY3QgZ2V0RXh0ZW50T2ZDaGFyKHVu
c2lnbmVkIGxvbmcgY2hhcm51bSk7CiAgIGZsb2F0IGdldFJvdGF0aW9uT2ZDaGFyKHVuc2lnbmVk
IGxvbmcgY2hhcm51bSk7CiAgIGxvbmcgZ2V0Q2hhck51bUF0UG9zaXRpb24ob3B0aW9uYWwgRE9N
UG9pbnRJbml0IHBvaW50ID0ge30pOwotICB2b2lkIHNlbGVjdFN1YlN0cmluZyh1bnNpZ25lZCBs
b25nIGNoYXJudW0sIHVuc2lnbmVkIGxvbmcgbmNoYXJzKTsKKyAgdW5kZWZpbmVkIHNlbGVjdFN1
YlN0cmluZyh1bnNpZ25lZCBsb25nIGNoYXJudW0sIHVuc2lnbmVkIGxvbmcgbmNoYXJzKTsKIH07
CiAKIFtFeHBvc2VkPVdpbmRvd10KQEAgLTU4OCw4ICs1OTAsOCBAQCBpbnRlcmZhY2UgU1ZHTWFy
a2VyRWxlbWVudCA6IFNWR0VsZW1lbnQgewogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmli
dXRlIFNWR0FuaW1hdGVkQW5nbGUgb3JpZW50QW5nbGU7CiAgIGF0dHJpYnV0ZSBET01TdHJpbmcg
b3JpZW50OwogCi0gIHZvaWQgc2V0T3JpZW50VG9BdXRvKCk7Ci0gIHZvaWQgc2V0T3JpZW50VG9B
bmdsZShTVkdBbmdsZSBhbmdsZSk7CisgIHVuZGVmaW5lZCBzZXRPcmllbnRUb0F1dG8oKTsKKyAg
dW5kZWZpbmVkIHNldE9yaWVudFRvQW5nbGUoU1ZHQW5nbGUgYW5nbGUpOwogfTsKIAogU1ZHTWFy
a2VyRWxlbWVudCBpbmNsdWRlcyBTVkdGaXRUb1ZpZXdCb3g7CkBAIC02NzEsNyArNjczLDIwIEBA
IGludGVyZmFjZSBTVkdBRWxlbWVudCA6IFNWR0dyYXBoaWNzRWxlbWVudCB7CiB9OwogCiBTVkdB
RWxlbWVudCBpbmNsdWRlcyBTVkdVUklSZWZlcmVuY2U7Ci1TVkdBRWxlbWVudCBpbmNsdWRlcyBI
VE1MSHlwZXJsaW5rRWxlbWVudFV0aWxzOworCisvLyBJbmxpbmUgSFRNTEh5cGVybGlua0VsZW1l
bnRVdGlscyBleGNlcHQgaHJlZiwgd2hpY2ggY29uZmxpY3RzLgorcGFydGlhbCBpbnRlcmZhY2Ug
U1ZHQUVsZW1lbnQgeworICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIG9yaWdpbjsKKyAg
W0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgVVNWU3RyaW5nIHByb3RvY29sOworICBbQ0VSZWFjdGlv
bnNdIGF0dHJpYnV0ZSBVU1ZTdHJpbmcgdXNlcm5hbWU7CisgIFtDRVJlYWN0aW9uc10gYXR0cmli
dXRlIFVTVlN0cmluZyBwYXNzd29yZDsKKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgVVNWU3Ry
aW5nIGhvc3Q7CisgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFVTVlN0cmluZyBob3N0bmFtZTsK
KyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgVVNWU3RyaW5nIHBvcnQ7CisgIFtDRVJlYWN0aW9u
c10gYXR0cmlidXRlIFVTVlN0cmluZyBwYXRobmFtZTsKKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1
dGUgVVNWU3RyaW5nIHNlYXJjaDsKKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgVVNWU3RyaW5n
IGhhc2g7Cit9OwogCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgU1ZHVmlld0VsZW1lbnQg
OiBTVkdFbGVtZW50IHt9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC5pZGwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvY3Jl
ZGVudGlhbC1tYW5hZ2VtZW50LmlkbAppbmRleCBhMmIwNjJhN2ZmZDg2NGMzMmU0M2YxNjFhNDBm
ZGNmYjA1OGU5YmRhLi5hMDdhYTBiNDQ0N2NkMzExOWRjNWJkMjJjNWMzZDE2Njc5ZTNhZmU1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lu
dGVyZmFjZXMvY3JlZGVudGlhbC1tYW5hZ2VtZW50LmlkbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvY3JlZGVudGlhbC1tYW5hZ2Vt
ZW50LmlkbApAQCAtMjQsNyArMjQsNyBAQCBpbnRlcmZhY2UgQ3JlZGVudGlhbHNDb250YWluZXIg
ewogICBQcm9taXNlPENyZWRlbnRpYWw/PiBnZXQob3B0aW9uYWwgQ3JlZGVudGlhbFJlcXVlc3RP
cHRpb25zIG9wdGlvbnMgPSB7fSk7CiAgIFByb21pc2U8Q3JlZGVudGlhbD4gc3RvcmUoQ3JlZGVu
dGlhbCBjcmVkZW50aWFsKTsKICAgUHJvbWlzZTxDcmVkZW50aWFsPz4gY3JlYXRlKG9wdGlvbmFs
IENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKLSAgUHJvbWlzZTx2b2lk
PiBwcmV2ZW50U2lsZW50QWNjZXNzKCk7CisgIFByb21pc2U8dW5kZWZpbmVkPiBwcmV2ZW50U2ls
ZW50QWNjZXNzKCk7CiB9OwogCiBkaWN0aW9uYXJ5IENyZWRlbnRpYWxEYXRhIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNl
cy9tZWRpYXNlc3Npb24uaWRsIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbnRlcmZhY2VzL21lZGlhc2Vzc2lvbi5pZGwKaW5kZXggYzJiMmUwNTg5ZTFjMjE3
YTJlMTA4ZjhiMTJjMjVhZTJmMmFkMzk5OC4uNGNlYzM1NGM5ZDFlYzgwZDIwYjFmNTA2YmFhOTQ0
NDczMzBjOGJiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL21lZGlhc2Vzc2lvbi5pZGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL21lZGlhc2Vzc2lvbi5p
ZGwKQEAgLTIzLDEwICsyMywxMyBAQCBlbnVtIE1lZGlhU2Vzc2lvbkFjdGlvbiB7CiAgICJuZXh0
dHJhY2siLAogICAic2tpcGFkIiwKICAgInN0b3AiLAotICAic2Vla3RvIgorICAic2Vla3RvIiwK
KyAgInRvZ2dsZW1pY3JvcGhvbmUiLAorICAidG9nZ2xlY2FtZXJhIiwKKyAgImhhbmd1cCIKIH07
CiAKLWNhbGxiYWNrIE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIgPSB2b2lkKE1lZGlhU2Vzc2lv
bkFjdGlvbkRldGFpbHMgZGV0YWlscyk7CitjYWxsYmFjayBNZWRpYVNlc3Npb25BY3Rpb25IYW5k
bGVyID0gdW5kZWZpbmVkKE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMgZGV0YWlscyk7CiAKIFtF
eHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBNZWRpYVNlc3Npb24gewpAQCAtMzQsOSArMzcsMTMg
QEAgaW50ZXJmYWNlIE1lZGlhU2Vzc2lvbiB7CiAKICAgYXR0cmlidXRlIE1lZGlhU2Vzc2lvblBs
YXliYWNrU3RhdGUgcGxheWJhY2tTdGF0ZTsKIAotICB2b2lkIHNldEFjdGlvbkhhbmRsZXIoTWVk
aWFTZXNzaW9uQWN0aW9uIGFjdGlvbiwgTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj8gaGFuZGxl
cik7CisgIHVuZGVmaW5lZCBzZXRBY3Rpb25IYW5kbGVyKE1lZGlhU2Vzc2lvbkFjdGlvbiBhY3Rp
b24sIE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI/IGhhbmRsZXIpOwogCi0gIHZvaWQgc2V0UG9z
aXRpb25TdGF0ZShvcHRpb25hbCBNZWRpYVBvc2l0aW9uU3RhdGUgc3RhdGUgPSB7fSk7CisgIHVu
ZGVmaW5lZCBzZXRQb3NpdGlvblN0YXRlKG9wdGlvbmFsIE1lZGlhUG9zaXRpb25TdGF0ZSBzdGF0
ZSA9IHt9KTsKKworICB1bmRlZmluZWQgc2V0TWljcm9waG9uZUFjdGl2ZShib29sZWFuIGFjdGl2
ZSk7CisKKyAgdW5kZWZpbmVkIHNldENhbWVyYUFjdGl2ZShib29sZWFuIGFjdGl2ZSk7CiB9Owog
CiBbRXhwb3NlZD1XaW5kb3ddCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvd2ViZ2wxLmlkbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy93ZWJnbDEuaWRsCmluZGV4
IDk1YTBmYTM0MjY1MmQ1ZWQ3NmFkNTY3ZjJhNTQzN2I3Yzg4OGY3ZTAuLmNkOWVhYTE5YmM0OWJm
YmE2OTk2ZjMyYWI2MWZmZjc0NGFkMTdmM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy93ZWJnbDEuaWRsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy93ZWJn
bDEuaWRsCkBAIC01MjMsMzMgKzUyMywzMyBAQCBpbnRlcmZhY2UgbWl4aW4gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZQogICAgIHNlcXVlbmNlPERPTVN0cmluZz4/IGdldFN1cHBvcnRlZEV4dGVu
c2lvbnMoKTsKICAgICBvYmplY3Q/IGdldEV4dGVuc2lvbihET01TdHJpbmcgbmFtZSk7CiAKLSAg
ICB2b2lkIGFjdGl2ZVRleHR1cmUoR0xlbnVtIHRleHR1cmUpOwotICAgIHZvaWQgYXR0YWNoU2hh
ZGVyKFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBXZWJHTFNoYWRlciBzaGFkZXIpOwotICAgIHZvaWQg
YmluZEF0dHJpYkxvY2F0aW9uKFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBHTHVpbnQgaW5kZXgsIERP
TVN0cmluZyBuYW1lKTsKLSAgICB2b2lkIGJpbmRCdWZmZXIoR0xlbnVtIHRhcmdldCwgV2ViR0xC
dWZmZXI/IGJ1ZmZlcik7Ci0gICAgdm9pZCBiaW5kRnJhbWVidWZmZXIoR0xlbnVtIHRhcmdldCwg
V2ViR0xGcmFtZWJ1ZmZlcj8gZnJhbWVidWZmZXIpOwotICAgIHZvaWQgYmluZFJlbmRlcmJ1ZmZl
cihHTGVudW0gdGFyZ2V0LCBXZWJHTFJlbmRlcmJ1ZmZlcj8gcmVuZGVyYnVmZmVyKTsKLSAgICB2
b2lkIGJpbmRUZXh0dXJlKEdMZW51bSB0YXJnZXQsIFdlYkdMVGV4dHVyZT8gdGV4dHVyZSk7Ci0g
ICAgdm9pZCBibGVuZENvbG9yKEdMY2xhbXBmIHJlZCwgR0xjbGFtcGYgZ3JlZW4sIEdMY2xhbXBm
IGJsdWUsIEdMY2xhbXBmIGFscGhhKTsKLSAgICB2b2lkIGJsZW5kRXF1YXRpb24oR0xlbnVtIG1v
ZGUpOwotICAgIHZvaWQgYmxlbmRFcXVhdGlvblNlcGFyYXRlKEdMZW51bSBtb2RlUkdCLCBHTGVu
dW0gbW9kZUFscGhhKTsKLSAgICB2b2lkIGJsZW5kRnVuYyhHTGVudW0gc2ZhY3RvciwgR0xlbnVt
IGRmYWN0b3IpOwotICAgIHZvaWQgYmxlbmRGdW5jU2VwYXJhdGUoR0xlbnVtIHNyY1JHQiwgR0xl
bnVtIGRzdFJHQiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBzcmNBbHBoYSwg
R0xlbnVtIGRzdEFscGhhKTsKKyAgICB1bmRlZmluZWQgYWN0aXZlVGV4dHVyZShHTGVudW0gdGV4
dHVyZSk7CisgICAgdW5kZWZpbmVkIGF0dGFjaFNoYWRlcihXZWJHTFByb2dyYW0gcHJvZ3JhbSwg
V2ViR0xTaGFkZXIgc2hhZGVyKTsKKyAgICB1bmRlZmluZWQgYmluZEF0dHJpYkxvY2F0aW9uKFdl
YkdMUHJvZ3JhbSBwcm9ncmFtLCBHTHVpbnQgaW5kZXgsIERPTVN0cmluZyBuYW1lKTsKKyAgICB1
bmRlZmluZWQgYmluZEJ1ZmZlcihHTGVudW0gdGFyZ2V0LCBXZWJHTEJ1ZmZlcj8gYnVmZmVyKTsK
KyAgICB1bmRlZmluZWQgYmluZEZyYW1lYnVmZmVyKEdMZW51bSB0YXJnZXQsIFdlYkdMRnJhbWVi
dWZmZXI/IGZyYW1lYnVmZmVyKTsKKyAgICB1bmRlZmluZWQgYmluZFJlbmRlcmJ1ZmZlcihHTGVu
dW0gdGFyZ2V0LCBXZWJHTFJlbmRlcmJ1ZmZlcj8gcmVuZGVyYnVmZmVyKTsKKyAgICB1bmRlZmlu
ZWQgYmluZFRleHR1cmUoR0xlbnVtIHRhcmdldCwgV2ViR0xUZXh0dXJlPyB0ZXh0dXJlKTsKKyAg
ICB1bmRlZmluZWQgYmxlbmRDb2xvcihHTGNsYW1wZiByZWQsIEdMY2xhbXBmIGdyZWVuLCBHTGNs
YW1wZiBibHVlLCBHTGNsYW1wZiBhbHBoYSk7CisgICAgdW5kZWZpbmVkIGJsZW5kRXF1YXRpb24o
R0xlbnVtIG1vZGUpOworICAgIHVuZGVmaW5lZCBibGVuZEVxdWF0aW9uU2VwYXJhdGUoR0xlbnVt
IG1vZGVSR0IsIEdMZW51bSBtb2RlQWxwaGEpOworICAgIHVuZGVmaW5lZCBibGVuZEZ1bmMoR0xl
bnVtIHNmYWN0b3IsIEdMZW51bSBkZmFjdG9yKTsKKyAgICB1bmRlZmluZWQgYmxlbmRGdW5jU2Vw
YXJhdGUoR0xlbnVtIHNyY1JHQiwgR0xlbnVtIGRzdFJHQiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0xlbnVtIHNyY0FscGhhLCBHTGVudW0gZHN0QWxwaGEpOwogCiAgICAgW1dl
YkdMSGFuZGxlc0NvbnRleHRMb3NzXSBHTGVudW0gY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhHTGVu
dW0gdGFyZ2V0KTsKLSAgICB2b2lkIGNsZWFyKEdMYml0ZmllbGQgbWFzayk7Ci0gICAgdm9pZCBj
bGVhckNvbG9yKEdMY2xhbXBmIHJlZCwgR0xjbGFtcGYgZ3JlZW4sIEdMY2xhbXBmIGJsdWUsIEdM
Y2xhbXBmIGFscGhhKTsKLSAgICB2b2lkIGNsZWFyRGVwdGgoR0xjbGFtcGYgZGVwdGgpOwotICAg
IHZvaWQgY2xlYXJTdGVuY2lsKEdMaW50IHMpOwotICAgIHZvaWQgY29sb3JNYXNrKEdMYm9vbGVh
biByZWQsIEdMYm9vbGVhbiBncmVlbiwgR0xib29sZWFuIGJsdWUsIEdMYm9vbGVhbiBhbHBoYSk7
Ci0gICAgdm9pZCBjb21waWxlU2hhZGVyKFdlYkdMU2hhZGVyIHNoYWRlcik7Ci0KLSAgICB2b2lk
IGNvcHlUZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJu
YWxmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICBHTGludCB4LCBHTGludCB5LCBHTHNp
emVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwKLSAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50
IGJvcmRlcik7Ci0gICAgdm9pZCBjb3B5VGV4U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGlu
dCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdMaW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0
KTsKKyAgICB1bmRlZmluZWQgY2xlYXIoR0xiaXRmaWVsZCBtYXNrKTsKKyAgICB1bmRlZmluZWQg
Y2xlYXJDb2xvcihHTGNsYW1wZiByZWQsIEdMY2xhbXBmIGdyZWVuLCBHTGNsYW1wZiBibHVlLCBH
TGNsYW1wZiBhbHBoYSk7CisgICAgdW5kZWZpbmVkIGNsZWFyRGVwdGgoR0xjbGFtcGYgZGVwdGgp
OworICAgIHVuZGVmaW5lZCBjbGVhclN0ZW5jaWwoR0xpbnQgcyk7CisgICAgdW5kZWZpbmVkIGNv
bG9yTWFzayhHTGJvb2xlYW4gcmVkLCBHTGJvb2xlYW4gZ3JlZW4sIEdMYm9vbGVhbiBibHVlLCBH
TGJvb2xlYW4gYWxwaGEpOworICAgIHVuZGVmaW5lZCBjb21waWxlU2hhZGVyKFdlYkdMU2hhZGVy
IHNoYWRlcik7CisKKyAgICB1bmRlZmluZWQgY29weVRleEltYWdlMkQoR0xlbnVtIHRhcmdldCwg
R0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbGZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IGJvcmRlcik7CisgICAgdW5kZWZp
bmVkIGNvcHlUZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4
b2Zmc2V0LCBHTGludCB5b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
TGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCk7CiAKICAgICBX
ZWJHTEJ1ZmZlcj8gY3JlYXRlQnVmZmVyKCk7CiAgICAgV2ViR0xGcmFtZWJ1ZmZlcj8gY3JlYXRl
RnJhbWVidWZmZXIoKTsKQEAgLTU1OCwzNiArNTU4LDM2IEBAIGludGVyZmFjZSBtaXhpbiBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlCiAgICAgV2ViR0xTaGFkZXI/IGNyZWF0ZVNoYWRlcihHTGVu
dW0gdHlwZSk7CiAgICAgV2ViR0xUZXh0dXJlPyBjcmVhdGVUZXh0dXJlKCk7CiAKLSAgICB2b2lk
IGN1bGxGYWNlKEdMZW51bSBtb2RlKTsKLQotICAgIHZvaWQgZGVsZXRlQnVmZmVyKFdlYkdMQnVm
ZmVyPyBidWZmZXIpOwotICAgIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xGcmFtZWJ1ZmZl
cj8gZnJhbWVidWZmZXIpOwotICAgIHZvaWQgZGVsZXRlUHJvZ3JhbShXZWJHTFByb2dyYW0/IHBy
b2dyYW0pOwotICAgIHZvaWQgZGVsZXRlUmVuZGVyYnVmZmVyKFdlYkdMUmVuZGVyYnVmZmVyPyBy
ZW5kZXJidWZmZXIpOwotICAgIHZvaWQgZGVsZXRlU2hhZGVyKFdlYkdMU2hhZGVyPyBzaGFkZXIp
OwotICAgIHZvaWQgZGVsZXRlVGV4dHVyZShXZWJHTFRleHR1cmU/IHRleHR1cmUpOwotCi0gICAg
dm9pZCBkZXB0aEZ1bmMoR0xlbnVtIGZ1bmMpOwotICAgIHZvaWQgZGVwdGhNYXNrKEdMYm9vbGVh
biBmbGFnKTsKLSAgICB2b2lkIGRlcHRoUmFuZ2UoR0xjbGFtcGYgek5lYXIsIEdMY2xhbXBmIHpG
YXIpOwotICAgIHZvaWQgZGV0YWNoU2hhZGVyKFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBXZWJHTFNo
YWRlciBzaGFkZXIpOwotICAgIHZvaWQgZGlzYWJsZShHTGVudW0gY2FwKTsKLSAgICB2b2lkIGRp
c2FibGVWZXJ0ZXhBdHRyaWJBcnJheShHTHVpbnQgaW5kZXgpOwotICAgIHZvaWQgZHJhd0FycmF5
cyhHTGVudW0gbW9kZSwgR0xpbnQgZmlyc3QsIEdMc2l6ZWkgY291bnQpOwotICAgIHZvaWQgZHJh
d0VsZW1lbnRzKEdMZW51bSBtb2RlLCBHTHNpemVpIGNvdW50LCBHTGVudW0gdHlwZSwgR0xpbnRw
dHIgb2Zmc2V0KTsKLQotICAgIHZvaWQgZW5hYmxlKEdMZW51bSBjYXApOwotICAgIHZvaWQgZW5h
YmxlVmVydGV4QXR0cmliQXJyYXkoR0x1aW50IGluZGV4KTsKLSAgICB2b2lkIGZpbmlzaCgpOwot
ICAgIHZvaWQgZmx1c2goKTsKLSAgICB2b2lkIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMZW51
bSB0YXJnZXQsIEdMZW51bSBhdHRhY2htZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR0xlbnVtIHJlbmRlcmJ1ZmZlcnRhcmdldCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdlYkdMUmVuZGVyYnVmZmVyPyByZW5kZXJidWZmZXIpOwotICAgIHZvaWQgZnJh
bWVidWZmZXJUZXh0dXJlMkQoR0xlbnVtIHRhcmdldCwgR0xlbnVtIGF0dGFjaG1lbnQsIEdMZW51
bSB0ZXh0YXJnZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJHTFRleHR1cmU/
IHRleHR1cmUsIEdMaW50IGxldmVsKTsKLSAgICB2b2lkIGZyb250RmFjZShHTGVudW0gbW9kZSk7
Ci0KLSAgICB2b2lkIGdlbmVyYXRlTWlwbWFwKEdMZW51bSB0YXJnZXQpOworICAgIHVuZGVmaW5l
ZCBjdWxsRmFjZShHTGVudW0gbW9kZSk7CisKKyAgICB1bmRlZmluZWQgZGVsZXRlQnVmZmVyKFdl
YkdMQnVmZmVyPyBidWZmZXIpOworICAgIHVuZGVmaW5lZCBkZWxldGVGcmFtZWJ1ZmZlcihXZWJH
TEZyYW1lYnVmZmVyPyBmcmFtZWJ1ZmZlcik7CisgICAgdW5kZWZpbmVkIGRlbGV0ZVByb2dyYW0o
V2ViR0xQcm9ncmFtPyBwcm9ncmFtKTsKKyAgICB1bmRlZmluZWQgZGVsZXRlUmVuZGVyYnVmZmVy
KFdlYkdMUmVuZGVyYnVmZmVyPyByZW5kZXJidWZmZXIpOworICAgIHVuZGVmaW5lZCBkZWxldGVT
aGFkZXIoV2ViR0xTaGFkZXI/IHNoYWRlcik7CisgICAgdW5kZWZpbmVkIGRlbGV0ZVRleHR1cmUo
V2ViR0xUZXh0dXJlPyB0ZXh0dXJlKTsKKworICAgIHVuZGVmaW5lZCBkZXB0aEZ1bmMoR0xlbnVt
IGZ1bmMpOworICAgIHVuZGVmaW5lZCBkZXB0aE1hc2soR0xib29sZWFuIGZsYWcpOworICAgIHVu
ZGVmaW5lZCBkZXB0aFJhbmdlKEdMY2xhbXBmIHpOZWFyLCBHTGNsYW1wZiB6RmFyKTsKKyAgICB1
bmRlZmluZWQgZGV0YWNoU2hhZGVyKFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBXZWJHTFNoYWRlciBz
aGFkZXIpOworICAgIHVuZGVmaW5lZCBkaXNhYmxlKEdMZW51bSBjYXApOworICAgIHVuZGVmaW5l
ZCBkaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoR0x1aW50IGluZGV4KTsKKyAgICB1bmRlZmluZWQg
ZHJhd0FycmF5cyhHTGVudW0gbW9kZSwgR0xpbnQgZmlyc3QsIEdMc2l6ZWkgY291bnQpOworICAg
IHVuZGVmaW5lZCBkcmF3RWxlbWVudHMoR0xlbnVtIG1vZGUsIEdMc2l6ZWkgY291bnQsIEdMZW51
bSB0eXBlLCBHTGludHB0ciBvZmZzZXQpOworCisgICAgdW5kZWZpbmVkIGVuYWJsZShHTGVudW0g
Y2FwKTsKKyAgICB1bmRlZmluZWQgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoR0x1aW50IGluZGV4
KTsKKyAgICB1bmRlZmluZWQgZmluaXNoKCk7CisgICAgdW5kZWZpbmVkIGZsdXNoKCk7CisgICAg
dW5kZWZpbmVkIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMZW51bSB0YXJnZXQsIEdMZW51bSBh
dHRhY2htZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0g
cmVuZGVyYnVmZmVydGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXZWJHTFJlbmRlcmJ1ZmZlcj8gcmVuZGVyYnVmZmVyKTsKKyAgICB1bmRlZmluZWQgZnJhbWVi
dWZmZXJUZXh0dXJlMkQoR0xlbnVtIHRhcmdldCwgR0xlbnVtIGF0dGFjaG1lbnQsIEdMZW51bSB0
ZXh0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkdMVGV4dHVy
ZT8gdGV4dHVyZSwgR0xpbnQgbGV2ZWwpOworICAgIHVuZGVmaW5lZCBmcm9udEZhY2UoR0xlbnVt
IG1vZGUpOworCisgICAgdW5kZWZpbmVkIGdlbmVyYXRlTWlwbWFwKEdMZW51bSB0YXJnZXQpOwog
CiAgICAgV2ViR0xBY3RpdmVJbmZvPyBnZXRBY3RpdmVBdHRyaWIoV2ViR0xQcm9ncmFtIHByb2dy
YW0sIEdMdWludCBpbmRleCk7CiAgICAgV2ViR0xBY3RpdmVJbmZvPyBnZXRBY3RpdmVVbmlmb3Jt
KFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBHTHVpbnQgaW5kZXgpOwpAQCAtNjIxLDcgKzYyMSw3IEBA
IGludGVyZmFjZSBtaXhpbiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlCiAKICAgICBbV2ViR0xI
YW5kbGVzQ29udGV4dExvc3NdIEdMaW50cHRyIGdldFZlcnRleEF0dHJpYk9mZnNldChHTHVpbnQg
aW5kZXgsIEdMZW51bSBwbmFtZSk7CiAKLSAgICB2b2lkIGhpbnQoR0xlbnVtIHRhcmdldCwgR0xl
bnVtIG1vZGUpOworICAgIHVuZGVmaW5lZCBoaW50KEdMZW51bSB0YXJnZXQsIEdMZW51bSBtb2Rl
KTsKICAgICBbV2ViR0xIYW5kbGVzQ29udGV4dExvc3NdIEdMYm9vbGVhbiBpc0J1ZmZlcihXZWJH
TEJ1ZmZlcj8gYnVmZmVyKTsKICAgICBbV2ViR0xIYW5kbGVzQ29udGV4dExvc3NdIEdMYm9vbGVh
biBpc0VuYWJsZWQoR0xlbnVtIGNhcCk7CiAgICAgW1dlYkdMSGFuZGxlc0NvbnRleHRMb3NzXSBH
TGJvb2xlYW4gaXNGcmFtZWJ1ZmZlcihXZWJHTEZyYW1lYnVmZmVyPyBmcmFtZWJ1ZmZlcik7CkBA
IC02MjksOTkgKzYyOSw5OSBAQCBpbnRlcmZhY2UgbWl4aW4gV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZQogICAgIFtXZWJHTEhhbmRsZXNDb250ZXh0TG9zc10gR0xib29sZWFuIGlzUmVuZGVyYnVm
ZmVyKFdlYkdMUmVuZGVyYnVmZmVyPyByZW5kZXJidWZmZXIpOwogICAgIFtXZWJHTEhhbmRsZXND
b250ZXh0TG9zc10gR0xib29sZWFuIGlzU2hhZGVyKFdlYkdMU2hhZGVyPyBzaGFkZXIpOwogICAg
IFtXZWJHTEhhbmRsZXNDb250ZXh0TG9zc10gR0xib29sZWFuIGlzVGV4dHVyZShXZWJHTFRleHR1
cmU/IHRleHR1cmUpOwotICAgIHZvaWQgbGluZVdpZHRoKEdMZmxvYXQgd2lkdGgpOwotICAgIHZv
aWQgbGlua1Byb2dyYW0oV2ViR0xQcm9ncmFtIHByb2dyYW0pOwotICAgIHZvaWQgcGl4ZWxTdG9y
ZWkoR0xlbnVtIHBuYW1lLCBHTGludCBwYXJhbSk7Ci0gICAgdm9pZCBwb2x5Z29uT2Zmc2V0KEdM
ZmxvYXQgZmFjdG9yLCBHTGZsb2F0IHVuaXRzKTsKLQotICAgIHZvaWQgcmVuZGVyYnVmZmVyU3Rv
cmFnZShHTGVudW0gdGFyZ2V0LCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0KTsKLSAgICB2b2lk
IHNhbXBsZUNvdmVyYWdlKEdMY2xhbXBmIHZhbHVlLCBHTGJvb2xlYW4gaW52ZXJ0KTsKLSAgICB2
b2lkIHNjaXNzb3IoR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWln
aHQpOwotCi0gICAgdm9pZCBzaGFkZXJTb3VyY2UoV2ViR0xTaGFkZXIgc2hhZGVyLCBET01TdHJp
bmcgc291cmNlKTsKLQotICAgIHZvaWQgc3RlbmNpbEZ1bmMoR0xlbnVtIGZ1bmMsIEdMaW50IHJl
ZiwgR0x1aW50IG1hc2spOwotICAgIHZvaWQgc3RlbmNpbEZ1bmNTZXBhcmF0ZShHTGVudW0gZmFj
ZSwgR0xlbnVtIGZ1bmMsIEdMaW50IHJlZiwgR0x1aW50IG1hc2spOwotICAgIHZvaWQgc3RlbmNp
bE1hc2soR0x1aW50IG1hc2spOwotICAgIHZvaWQgc3RlbmNpbE1hc2tTZXBhcmF0ZShHTGVudW0g
ZmFjZSwgR0x1aW50IG1hc2spOwotICAgIHZvaWQgc3RlbmNpbE9wKEdMZW51bSBmYWlsLCBHTGVu
dW0gemZhaWwsIEdMZW51bSB6cGFzcyk7Ci0gICAgdm9pZCBzdGVuY2lsT3BTZXBhcmF0ZShHTGVu
dW0gZmFjZSwgR0xlbnVtIGZhaWwsIEdMZW51bSB6ZmFpbCwgR0xlbnVtIHpwYXNzKTsKLQotICAg
IHZvaWQgdGV4UGFyYW1ldGVyZihHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMZmxvYXQg
cGFyYW0pOwotICAgIHZvaWQgdGV4UGFyYW1ldGVyaShHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5h
bWUsIEdMaW50IHBhcmFtKTsKLQotICAgIHZvaWQgdW5pZm9ybTFmKFdlYkdMVW5pZm9ybUxvY2F0
aW9uPyBsb2NhdGlvbiwgR0xmbG9hdCB4KTsKLSAgICB2b2lkIHVuaWZvcm0yZihXZWJHTFVuaWZv
cm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMZmxvYXQgeCwgR0xmbG9hdCB5KTsKLSAgICB2b2lkIHVu
aWZvcm0zZihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMZmxvYXQgeCwgR0xmbG9h
dCB5LCBHTGZsb2F0IHopOwotICAgIHZvaWQgdW5pZm9ybTRmKFdlYkdMVW5pZm9ybUxvY2F0aW9u
PyBsb2NhdGlvbiwgR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQgeiwgR0xmbG9hdCB3KTsK
LQotICAgIHZvaWQgdW5pZm9ybTFpKFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xp
bnQgeCk7Ci0gICAgdm9pZCB1bmlmb3JtMmkoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9u
LCBHTGludCB4LCBHTGludCB5KTsKLSAgICB2b2lkIHVuaWZvcm0zaShXZWJHTFVuaWZvcm1Mb2Nh
dGlvbj8gbG9jYXRpb24sIEdMaW50IHgsIEdMaW50IHksIEdMaW50IHopOwotICAgIHZvaWQgdW5p
Zm9ybTRpKFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xpbnQgeCwgR0xpbnQgeSwg
R0xpbnQgeiwgR0xpbnQgdyk7Ci0KLSAgICB2b2lkIHVzZVByb2dyYW0oV2ViR0xQcm9ncmFtPyBw
cm9ncmFtKTsKLSAgICB2b2lkIHZhbGlkYXRlUHJvZ3JhbShXZWJHTFByb2dyYW0gcHJvZ3JhbSk7
Ci0KLSAgICB2b2lkIHZlcnRleEF0dHJpYjFmKEdMdWludCBpbmRleCwgR0xmbG9hdCB4KTsKLSAg
ICB2b2lkIHZlcnRleEF0dHJpYjJmKEdMdWludCBpbmRleCwgR0xmbG9hdCB4LCBHTGZsb2F0IHkp
OwotICAgIHZvaWQgdmVydGV4QXR0cmliM2YoR0x1aW50IGluZGV4LCBHTGZsb2F0IHgsIEdMZmxv
YXQgeSwgR0xmbG9hdCB6KTsKLSAgICB2b2lkIHZlcnRleEF0dHJpYjRmKEdMdWludCBpbmRleCwg
R0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQgeiwgR0xmbG9hdCB3KTsKLQotICAgIHZvaWQg
dmVydGV4QXR0cmliMWZ2KEdMdWludCBpbmRleCwgRmxvYXQzMkxpc3QgdmFsdWVzKTsKLSAgICB2
b2lkIHZlcnRleEF0dHJpYjJmdihHTHVpbnQgaW5kZXgsIEZsb2F0MzJMaXN0IHZhbHVlcyk7Ci0g
ICAgdm9pZCB2ZXJ0ZXhBdHRyaWIzZnYoR0x1aW50IGluZGV4LCBGbG9hdDMyTGlzdCB2YWx1ZXMp
OwotICAgIHZvaWQgdmVydGV4QXR0cmliNGZ2KEdMdWludCBpbmRleCwgRmxvYXQzMkxpc3QgdmFs
dWVzKTsKLQotICAgIHZvaWQgdmVydGV4QXR0cmliUG9pbnRlcihHTHVpbnQgaW5kZXgsIEdMaW50
IHNpemUsIEdMZW51bSB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGJvb2xl
YW4gbm9ybWFsaXplZCwgR0xzaXplaSBzdHJpZGUsIEdMaW50cHRyIG9mZnNldCk7Ci0KLSAgICB2
b2lkIHZpZXdwb3J0KEdMaW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVp
Z2h0KTsKKyAgICB1bmRlZmluZWQgbGluZVdpZHRoKEdMZmxvYXQgd2lkdGgpOworICAgIHVuZGVm
aW5lZCBsaW5rUHJvZ3JhbShXZWJHTFByb2dyYW0gcHJvZ3JhbSk7CisgICAgdW5kZWZpbmVkIHBp
eGVsU3RvcmVpKEdMZW51bSBwbmFtZSwgR0xpbnQgcGFyYW0pOworICAgIHVuZGVmaW5lZCBwb2x5
Z29uT2Zmc2V0KEdMZmxvYXQgZmFjdG9yLCBHTGZsb2F0IHVuaXRzKTsKKworICAgIHVuZGVmaW5l
ZCByZW5kZXJidWZmZXJTdG9yYWdlKEdMZW51bSB0YXJnZXQsIEdMZW51bSBpbnRlcm5hbGZvcm1h
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIHdpZHRoLCBHTHNp
emVpIGhlaWdodCk7CisgICAgdW5kZWZpbmVkIHNhbXBsZUNvdmVyYWdlKEdMY2xhbXBmIHZhbHVl
LCBHTGJvb2xlYW4gaW52ZXJ0KTsKKyAgICB1bmRlZmluZWQgc2Npc3NvcihHTGludCB4LCBHTGlu
dCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCk7CisKKyAgICB1bmRlZmluZWQgc2hh
ZGVyU291cmNlKFdlYkdMU2hhZGVyIHNoYWRlciwgRE9NU3RyaW5nIHNvdXJjZSk7CisKKyAgICB1
bmRlZmluZWQgc3RlbmNpbEZ1bmMoR0xlbnVtIGZ1bmMsIEdMaW50IHJlZiwgR0x1aW50IG1hc2sp
OworICAgIHVuZGVmaW5lZCBzdGVuY2lsRnVuY1NlcGFyYXRlKEdMZW51bSBmYWNlLCBHTGVudW0g
ZnVuYywgR0xpbnQgcmVmLCBHTHVpbnQgbWFzayk7CisgICAgdW5kZWZpbmVkIHN0ZW5jaWxNYXNr
KEdMdWludCBtYXNrKTsKKyAgICB1bmRlZmluZWQgc3RlbmNpbE1hc2tTZXBhcmF0ZShHTGVudW0g
ZmFjZSwgR0x1aW50IG1hc2spOworICAgIHVuZGVmaW5lZCBzdGVuY2lsT3AoR0xlbnVtIGZhaWws
IEdMZW51bSB6ZmFpbCwgR0xlbnVtIHpwYXNzKTsKKyAgICB1bmRlZmluZWQgc3RlbmNpbE9wU2Vw
YXJhdGUoR0xlbnVtIGZhY2UsIEdMZW51bSBmYWlsLCBHTGVudW0gemZhaWwsIEdMZW51bSB6cGFz
cyk7CisKKyAgICB1bmRlZmluZWQgdGV4UGFyYW1ldGVyZihHTGVudW0gdGFyZ2V0LCBHTGVudW0g
cG5hbWUsIEdMZmxvYXQgcGFyYW0pOworICAgIHVuZGVmaW5lZCB0ZXhQYXJhbWV0ZXJpKEdMZW51
bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgR0xpbnQgcGFyYW0pOworCisgICAgdW5kZWZpbmVkIHVu
aWZvcm0xZihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMZmxvYXQgeCk7CisgICAg
dW5kZWZpbmVkIHVuaWZvcm0yZihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMZmxv
YXQgeCwgR0xmbG9hdCB5KTsKKyAgICB1bmRlZmluZWQgdW5pZm9ybTNmKFdlYkdMVW5pZm9ybUxv
Y2F0aW9uPyBsb2NhdGlvbiwgR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQgeik7CisgICAg
dW5kZWZpbmVkIHVuaWZvcm00ZihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMZmxv
YXQgeCwgR0xmbG9hdCB5LCBHTGZsb2F0IHosIEdMZmxvYXQgdyk7CisKKyAgICB1bmRlZmluZWQg
dW5pZm9ybTFpKFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xpbnQgeCk7CisgICAg
dW5kZWZpbmVkIHVuaWZvcm0yaShXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMaW50
IHgsIEdMaW50IHkpOworICAgIHVuZGVmaW5lZCB1bmlmb3JtM2koV2ViR0xVbmlmb3JtTG9jYXRp
b24/IGxvY2F0aW9uLCBHTGludCB4LCBHTGludCB5LCBHTGludCB6KTsKKyAgICB1bmRlZmluZWQg
dW5pZm9ybTRpKFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xpbnQgeCwgR0xpbnQg
eSwgR0xpbnQgeiwgR0xpbnQgdyk7CisKKyAgICB1bmRlZmluZWQgdXNlUHJvZ3JhbShXZWJHTFBy
b2dyYW0/IHByb2dyYW0pOworICAgIHVuZGVmaW5lZCB2YWxpZGF0ZVByb2dyYW0oV2ViR0xQcm9n
cmFtIHByb2dyYW0pOworCisgICAgdW5kZWZpbmVkIHZlcnRleEF0dHJpYjFmKEdMdWludCBpbmRl
eCwgR0xmbG9hdCB4KTsKKyAgICB1bmRlZmluZWQgdmVydGV4QXR0cmliMmYoR0x1aW50IGluZGV4
LCBHTGZsb2F0IHgsIEdMZmxvYXQgeSk7CisgICAgdW5kZWZpbmVkIHZlcnRleEF0dHJpYjNmKEdM
dWludCBpbmRleCwgR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQgeik7CisgICAgdW5kZWZp
bmVkIHZlcnRleEF0dHJpYjRmKEdMdWludCBpbmRleCwgR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdM
ZmxvYXQgeiwgR0xmbG9hdCB3KTsKKworICAgIHVuZGVmaW5lZCB2ZXJ0ZXhBdHRyaWIxZnYoR0x1
aW50IGluZGV4LCBGbG9hdDMyTGlzdCB2YWx1ZXMpOworICAgIHVuZGVmaW5lZCB2ZXJ0ZXhBdHRy
aWIyZnYoR0x1aW50IGluZGV4LCBGbG9hdDMyTGlzdCB2YWx1ZXMpOworICAgIHVuZGVmaW5lZCB2
ZXJ0ZXhBdHRyaWIzZnYoR0x1aW50IGluZGV4LCBGbG9hdDMyTGlzdCB2YWx1ZXMpOworICAgIHVu
ZGVmaW5lZCB2ZXJ0ZXhBdHRyaWI0ZnYoR0x1aW50IGluZGV4LCBGbG9hdDMyTGlzdCB2YWx1ZXMp
OworCisgICAgdW5kZWZpbmVkIHZlcnRleEF0dHJpYlBvaW50ZXIoR0x1aW50IGluZGV4LCBHTGlu
dCBzaXplLCBHTGVudW0gdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
TGJvb2xlYW4gbm9ybWFsaXplZCwgR0xzaXplaSBzdHJpZGUsIEdMaW50cHRyIG9mZnNldCk7CisK
KyAgICB1bmRlZmluZWQgdmlld3BvcnQoR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCwg
R0xzaXplaSBoZWlnaHQpOwogfTsKIAogaW50ZXJmYWNlIG1peGluIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dE92ZXJsb2FkcwogewotICAgIHZvaWQgYnVmZmVyRGF0YShHTGVudW0gdGFyZ2V0LCBHTHNp
emVpcHRyIHNpemUsIEdMZW51bSB1c2FnZSk7Ci0gICAgdm9pZCBidWZmZXJEYXRhKEdMZW51bSB0
YXJnZXQsIFtBbGxvd1NoYXJlZF0gQnVmZmVyU291cmNlPyBkYXRhLCBHTGVudW0gdXNhZ2UpOwot
ICAgIHZvaWQgYnVmZmVyU3ViRGF0YShHTGVudW0gdGFyZ2V0LCBHTGludHB0ciBvZmZzZXQsIFtB
bGxvd1NoYXJlZF0gQnVmZmVyU291cmNlIGRhdGEpOwotCi0gICAgdm9pZCBjb21wcmVzc2VkVGV4
SW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsZm9ybWF0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBo
ZWlnaHQsIEdMaW50IGJvcmRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtBbGxv
d1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3IGRhdGEpOwotICAgIHZvaWQgY29tcHJlc3NlZFRleFN1
YkltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMZW51
bSBmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQWxsb3dTaGFyZWRd
IEFycmF5QnVmZmVyVmlldyBkYXRhKTsKLQotICAgIHZvaWQgcmVhZFBpeGVscyhHTGludCB4LCBH
TGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwKLSAgICAgICAgICAgICAgICAg
ICAgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJW
aWV3PyBwaXhlbHMpOwotCi0gICAgdm9pZCB0ZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50
IGxldmVsLCBHTGludCBpbnRlcm5hbGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgR0xzaXpl
aSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMaW50IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwKLSAg
ICAgICAgICAgICAgICAgICAgR0xlbnVtIHR5cGUsIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJW
aWV3PyBwaXhlbHMpOwotICAgIHZvaWQgdGV4SW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBs
ZXZlbCwgR0xpbnQgaW50ZXJuYWxmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgIEdMZW51bSBm
b3JtYXQsIEdMZW51bSB0eXBlLCBUZXhJbWFnZVNvdXJjZSBzb3VyY2UpOyAvLyBNYXkgdGhyb3cg
RE9NRXhjZXB0aW9uCi0KLSAgICB2b2lkIHRleFN1YkltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xp
bnQgbGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsCi0gICAgICAgICAgICAgICAg
ICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAotICAgICAgICAgICAgICAgICAg
ICAgICBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZl
clZpZXc/IHBpeGVscyk7Ci0gICAgdm9pZCB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdM
aW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LAotICAgICAgICAgICAgICAg
ICAgICAgICBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgVGV4SW1hZ2VTb3VyY2Ugc291cmNl
KTsgLy8gTWF5IHRocm93IERPTUV4Y2VwdGlvbgotCi0gICAgdm9pZCB1bmlmb3JtMWZ2KFdlYkdM
VW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgRmxvYXQzMkxpc3Qgdik7Ci0gICAgdm9pZCB1bmlm
b3JtMmZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgRmxvYXQzMkxpc3Qgdik7Ci0g
ICAgdm9pZCB1bmlmb3JtM2Z2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgRmxvYXQz
Mkxpc3Qgdik7Ci0gICAgdm9pZCB1bmlmb3JtNGZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2Nh
dGlvbiwgRmxvYXQzMkxpc3Qgdik7Ci0KLSAgICB2b2lkIHVuaWZvcm0xaXYoV2ViR0xVbmlmb3Jt
TG9jYXRpb24/IGxvY2F0aW9uLCBJbnQzMkxpc3Qgdik7Ci0gICAgdm9pZCB1bmlmb3JtMml2KFdl
YkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgSW50MzJMaXN0IHYpOwotICAgIHZvaWQgdW5p
Zm9ybTNpdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEludDMyTGlzdCB2KTsKLSAg
ICB2b2lkIHVuaWZvcm00aXYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBJbnQzMkxp
c3Qgdik7Ci0KLSAgICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/
IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCB2YWx1ZSk7Ci0gICAg
dm9pZCB1bmlmb3JtTWF0cml4M2Z2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xi
b29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgdmFsdWUpOwotICAgIHZvaWQgdW5pZm9ybU1h
dHJpeDRmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMYm9vbGVhbiB0cmFuc3Bv
c2UsIEZsb2F0MzJMaXN0IHZhbHVlKTsKKyAgICB1bmRlZmluZWQgYnVmZmVyRGF0YShHTGVudW0g
dGFyZ2V0LCBHTHNpemVpcHRyIHNpemUsIEdMZW51bSB1c2FnZSk7CisgICAgdW5kZWZpbmVkIGJ1
ZmZlckRhdGEoR0xlbnVtIHRhcmdldCwgW0FsbG93U2hhcmVkXSBCdWZmZXJTb3VyY2U/IGRhdGEs
IEdMZW51bSB1c2FnZSk7CisgICAgdW5kZWZpbmVkIGJ1ZmZlclN1YkRhdGEoR0xlbnVtIHRhcmdl
dCwgR0xpbnRwdHIgb2Zmc2V0LCBbQWxsb3dTaGFyZWRdIEJ1ZmZlclNvdXJjZSBkYXRhKTsKKwor
ICAgIHVuZGVmaW5lZCBjb21wcmVzc2VkVGV4SW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBs
ZXZlbCwgR0xlbnVtIGludGVybmFsZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xpbnQgYm9yZGVyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVy
VmlldyBkYXRhKTsKKyAgICB1bmRlZmluZWQgY29tcHJlc3NlZFRleFN1YkltYWdlMkQoR0xlbnVt
IHRhcmdldCwgR0xpbnQgbGV2ZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9y
bWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQWxsb3dTaGFyZWRd
IEFycmF5QnVmZmVyVmlldyBkYXRhKTsKKworICAgIHVuZGVmaW5lZCByZWFkUGl4ZWxzKEdMaW50
IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBbQWxsb3dTaGFyZWRdIEFy
cmF5QnVmZmVyVmlldz8gcGl4ZWxzKTsKKworICAgIHVuZGVmaW5lZCB0ZXhJbWFnZTJEKEdMZW51
bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbGZvcm1hdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xpbnQgYm9yZGVy
LCBHTGVudW0gZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSB0eXBlLCBb
QWxsb3dTaGFyZWRdIEFycmF5QnVmZmVyVmlldz8gcGl4ZWxzKTsKKyAgICB1bmRlZmluZWQgdGV4
SW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgaW50ZXJuYWxmb3JtYXQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIFRl
eEltYWdlU291cmNlIHNvdXJjZSk7IC8vIE1heSB0aHJvdyBET01FeGNlcHRpb24KKworICAgIHVu
ZGVmaW5lZCB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4
b2Zmc2V0LCBHTGludCB5b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6
ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdM
ZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVyVmlldz8g
cGl4ZWxzKTsKKyAgICB1bmRlZmluZWQgdGV4U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGlu
dCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgVGV4SW1hZ2VTb3VyY2Ugc291
cmNlKTsgLy8gTWF5IHRocm93IERPTUV4Y2VwdGlvbgorCisgICAgdW5kZWZpbmVkIHVuaWZvcm0x
ZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBGbG9hdDMyTGlzdCB2KTsKKyAgICB1
bmRlZmluZWQgdW5pZm9ybTJmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEZsb2F0
MzJMaXN0IHYpOworICAgIHVuZGVmaW5lZCB1bmlmb3JtM2Z2KFdlYkdMVW5pZm9ybUxvY2F0aW9u
PyBsb2NhdGlvbiwgRmxvYXQzMkxpc3Qgdik7CisgICAgdW5kZWZpbmVkIHVuaWZvcm00ZnYoV2Vi
R0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBGbG9hdDMyTGlzdCB2KTsKKworICAgIHVuZGVm
aW5lZCB1bmlmb3JtMWl2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgSW50MzJMaXN0
IHYpOworICAgIHVuZGVmaW5lZCB1bmlmb3JtMml2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2Nh
dGlvbiwgSW50MzJMaXN0IHYpOworICAgIHVuZGVmaW5lZCB1bmlmb3JtM2l2KFdlYkdMVW5pZm9y
bUxvY2F0aW9uPyBsb2NhdGlvbiwgSW50MzJMaXN0IHYpOworICAgIHVuZGVmaW5lZCB1bmlmb3Jt
NGl2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgSW50MzJMaXN0IHYpOworCisgICAg
dW5kZWZpbmVkIHVuaWZvcm1NYXRyaXgyZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9u
LCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCB2YWx1ZSk7CisgICAgdW5kZWZpbmVk
IHVuaWZvcm1NYXRyaXgzZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xl
YW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCB2YWx1ZSk7CisgICAgdW5kZWZpbmVkIHVuaWZvcm1N
YXRyaXg0ZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNw
b3NlLCBGbG9hdDMyTGlzdCB2YWx1ZSk7CiB9OwogCiBbRXhwb3NlZD0oV2luZG93LFdvcmtlcild
CkBAIC03MzEsMTAgKzczMSw5IEBAIGludGVyZmFjZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQKIFdl
YkdMUmVuZGVyaW5nQ29udGV4dCBpbmNsdWRlcyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOwog
V2ViR0xSZW5kZXJpbmdDb250ZXh0IGluY2x1ZGVzIFdlYkdMUmVuZGVyaW5nQ29udGV4dE92ZXJs
b2FkczsKIAotW0V4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpLAotIENvbnN0cnVjdG9yKERPTVN0cmlu
ZyB0eXBlLAotIG9wdGlvbmFsIFdlYkdMQ29udGV4dEV2ZW50SW5pdCBldmVudEluaXQgPSB7fSld
CitbRXhwb3NlZD0oV2luZG93LFdvcmtlcildCiBpbnRlcmZhY2UgV2ViR0xDb250ZXh0RXZlbnQg
OiBFdmVudCB7CisgICAgY29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIFdlYkdM
Q29udGV4dEV2ZW50SW5pdCBldmVudEluaXQgPSB7fSk7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyBzdGF0dXNNZXNzYWdlOwogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL3dlYmdsMi5pZGwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvd2Vi
Z2wyLmlkbAppbmRleCBiMmU2NjBlNmI2NTQ1ZjMzZTRhY2I2ZTM3OGJjZTM1MTdhYjRkNGNiLi41
MTg2MzdmY2M3MmQzZTAyOTI0ZjAwZDI2OWJmMWM1Njc5NDgwNmRkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvd2ViZ2wy
LmlkbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lu
dGVyZmFjZXMvd2ViZ2wyLmlkbApAQCAtMjk4LDI3OSArMjk4LDI3OSBAQCBpbnRlcmZhY2UgbWl4
aW4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dEJhc2UKICAgY29uc3QgR0xlbnVtIE1BWF9DTElFTlRf
V0FJVF9USU1FT1VUX1dFQkdMICAgICAgICAgICAgICAgICA9IDB4OTI0NzsKIAogICAvKiBCdWZm
ZXIgb2JqZWN0cyAqLwotICB2b2lkIGNvcHlCdWZmZXJTdWJEYXRhKEdMZW51bSByZWFkVGFyZ2V0
LCBHTGVudW0gd3JpdGVUYXJnZXQsIEdMaW50cHRyIHJlYWRPZmZzZXQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgR0xpbnRwdHIgd3JpdGVPZmZzZXQsIEdMc2l6ZWlwdHIgc2l6ZSk7CisgIHVu
ZGVmaW5lZCBjb3B5QnVmZmVyU3ViRGF0YShHTGVudW0gcmVhZFRhcmdldCwgR0xlbnVtIHdyaXRl
VGFyZ2V0LCBHTGludHB0ciByZWFkT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0xpbnRwdHIgd3JpdGVPZmZzZXQsIEdMc2l6ZWlwdHIgc2l6ZSk7CiAgIC8vIE1hcEJ1ZmZl
clJhbmdlLCBpbiBwYXJ0aWN1bGFyIGl0cyByZWFkLW9ubHkgYW5kIHdyaXRlLW9ubHkgbW9kZXMs
CiAgIC8vIGNhbiBub3QgYmUgZXhwb3NlZCBzYWZlbHkgdG8gSmF2YVNjcmlwdC4gR2V0QnVmZmVy
U3ViRGF0YQogICAvLyByZXBsYWNlcyBpdCBmb3IgdGhlIHB1cnBvc2Ugb2YgZmV0Y2hpbmcgZGF0
YSBiYWNrIGZyb20gdGhlIEdQVS4KLSAgdm9pZCBnZXRCdWZmZXJTdWJEYXRhKEdMZW51bSB0YXJn
ZXQsIEdMaW50cHRyIHNyY0J5dGVPZmZzZXQsIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3
IGRzdEJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBkc3RP
ZmZzZXQgPSAwLCBvcHRpb25hbCBHTHVpbnQgbGVuZ3RoID0gMCk7CisgIHVuZGVmaW5lZCBnZXRC
dWZmZXJTdWJEYXRhKEdMZW51bSB0YXJnZXQsIEdMaW50cHRyIHNyY0J5dGVPZmZzZXQsIFtBbGxv
d1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3IGRzdEJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3B0aW9uYWwgR0x1aW50IGRzdE9mZnNldCA9IDAsIG9wdGlvbmFsIEdMdWludCBs
ZW5ndGggPSAwKTsKIAogICAvKiBGcmFtZWJ1ZmZlciBvYmplY3RzICovCi0gIHZvaWQgYmxpdEZy
YW1lYnVmZmVyKEdMaW50IHNyY1gwLCBHTGludCBzcmNZMCwgR0xpbnQgc3JjWDEsIEdMaW50IHNy
Y1kxLCBHTGludCBkc3RYMCwgR0xpbnQgZHN0WTAsCi0gICAgICAgICAgICAgICAgICAgICAgIEdM
aW50IGRzdFgxLCBHTGludCBkc3RZMSwgR0xiaXRmaWVsZCBtYXNrLCBHTGVudW0gZmlsdGVyKTsK
LSAgdm9pZCBmcmFtZWJ1ZmZlclRleHR1cmVMYXllcihHTGVudW0gdGFyZ2V0LCBHTGVudW0gYXR0
YWNobWVudCwgV2ViR0xUZXh0dXJlPyB0ZXh0dXJlLCBHTGludCBsZXZlbCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHTGludCBsYXllcik7Ci0gIHZvaWQgaW52YWxpZGF0ZUZyYW1l
YnVmZmVyKEdMZW51bSB0YXJnZXQsIHNlcXVlbmNlPEdMZW51bT4gYXR0YWNobWVudHMpOwotICB2
b2lkIGludmFsaWRhdGVTdWJGcmFtZWJ1ZmZlcihHTGVudW0gdGFyZ2V0LCBzZXF1ZW5jZTxHTGVu
dW0+IGF0dGFjaG1lbnRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGludCB4
LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCk7Ci0gIHZvaWQgcmVhZEJ1
ZmZlcihHTGVudW0gc3JjKTsKKyAgdW5kZWZpbmVkIGJsaXRGcmFtZWJ1ZmZlcihHTGludCBzcmNY
MCwgR0xpbnQgc3JjWTAsIEdMaW50IHNyY1gxLCBHTGludCBzcmNZMSwgR0xpbnQgZHN0WDAsIEdM
aW50IGRzdFkwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IGRzdFgxLCBHTGlu
dCBkc3RZMSwgR0xiaXRmaWVsZCBtYXNrLCBHTGVudW0gZmlsdGVyKTsKKyAgdW5kZWZpbmVkIGZy
YW1lYnVmZmVyVGV4dHVyZUxheWVyKEdMZW51bSB0YXJnZXQsIEdMZW51bSBhdHRhY2htZW50LCBX
ZWJHTFRleHR1cmU/IHRleHR1cmUsIEdMaW50IGxldmVsLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR0xpbnQgbGF5ZXIpOworICB1bmRlZmluZWQgaW52YWxpZGF0ZUZyYW1l
YnVmZmVyKEdMZW51bSB0YXJnZXQsIHNlcXVlbmNlPEdMZW51bT4gYXR0YWNobWVudHMpOworICB1
bmRlZmluZWQgaW52YWxpZGF0ZVN1YkZyYW1lYnVmZmVyKEdMZW51bSB0YXJnZXQsIHNlcXVlbmNl
PEdMZW51bT4gYXR0YWNobWVudHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQpOworICB1
bmRlZmluZWQgcmVhZEJ1ZmZlcihHTGVudW0gc3JjKTsKIAogICAvKiBSZW5kZXJidWZmZXIgb2Jq
ZWN0cyAqLwogICBhbnkgZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoR0xlbnVtIHRhcmdldCwg
R0xlbnVtIGludGVybmFsZm9ybWF0LCBHTGVudW0gcG5hbWUpOwotICB2b2lkIHJlbmRlcmJ1ZmZl
clN0b3JhZ2VNdWx0aXNhbXBsZShHTGVudW0gdGFyZ2V0LCBHTHNpemVpIHNhbXBsZXMsIEdMZW51
bSBpbnRlcm5hbGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQpOworICB1bmRlZmluZWQgcmVuZGVyYnVmZmVy
U3RvcmFnZU11bHRpc2FtcGxlKEdMZW51bSB0YXJnZXQsIEdMc2l6ZWkgc2FtcGxlcywgR0xlbnVt
IGludGVybmFsZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0KTsKIAogICAvKiBUZXh0dXJlIG9iamVj
dHMgKi8KLSAgdm9pZCB0ZXhTdG9yYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xzaXplaSBsZXZlbHMs
IEdMZW51bSBpbnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0aCwKLSAgICAgICAgICAgICAgICAg
ICAgR0xzaXplaSBoZWlnaHQpOwotICB2b2lkIHRleFN0b3JhZ2UzRChHTGVudW0gdGFyZ2V0LCBH
THNpemVpIGxldmVscywgR0xlbnVtIGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLAotICAg
ICAgICAgICAgICAgICAgICBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCk7Ci0KLSAgdm9p
ZCB0ZXhJbWFnZTNEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbGZv
cm1hdCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsCi0gICAgICAgICAgICAgICAgICBH
THNpemVpIGRlcHRoLCBHTGludCBib3JkZXIsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBH
TGludHB0ciBwYm9PZmZzZXQpOwotICB2b2lkIHRleEltYWdlM0QoR0xlbnVtIHRhcmdldCwgR0xp
bnQgbGV2ZWwsIEdMaW50IGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhl
aWdodCwKLSAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgZGVwdGgsIEdMaW50IGJvcmRlciwgR0xl
bnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsCi0gICAgICAgICAgICAgICAgICBUZXhJbWFnZVNvdXJj
ZSBzb3VyY2UpOyAvLyBNYXkgdGhyb3cgRE9NRXhjZXB0aW9uCi0gIHZvaWQgdGV4SW1hZ2UzRChH
TGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkg
d2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAotICAgICAgICAgICAgICAgICAgR0xzaXplaSBkZXB0aCwg
R0xpbnQgYm9yZGVyLCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgW0FsbG93U2hhcmVkXSBB
cnJheUJ1ZmZlclZpZXc/IHNyY0RhdGEpOwotICB2b2lkIHRleEltYWdlM0QoR0xlbnVtIHRhcmdl
dCwgR0xpbnQgbGV2ZWwsIEdMaW50IGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNp
emVpIGhlaWdodCwKLSAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgZGVwdGgsIEdMaW50IGJvcmRl
ciwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJW
aWV3IHNyY0RhdGEsCi0gICAgICAgICAgICAgICAgICBHTHVpbnQgc3JjT2Zmc2V0KTsKLQotICB2
b2lkIHRleFN1YkltYWdlM0QoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhvZmZz
ZXQsIEdMaW50IHlvZmZzZXQsIEdMaW50IHpvZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICBH
THNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCwgR0xlbnVtIGZvcm1h
dCwgR0xlbnVtIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICBHTGludHB0ciBwYm9PZmZzZXQp
OwotICB2b2lkIHRleFN1YkltYWdlM0QoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50
IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsIEdMaW50IHpvZmZzZXQsCi0gICAgICAgICAgICAgICAg
ICAgICBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCwgR0xlbnVt
IGZvcm1hdCwgR0xlbnVtIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICBUZXhJbWFnZVNvdXJj
ZSBzb3VyY2UpOyAvLyBNYXkgdGhyb3cgRE9NRXhjZXB0aW9uCi0gIHZvaWQgdGV4U3ViSW1hZ2Uz
RChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNl
dCwgR0xpbnQgem9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdM
c2l6ZWkgaGVpZ2h0LCBHTHNpemVpIGRlcHRoLCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwK
LSAgICAgICAgICAgICAgICAgICAgIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3PyBzcmNE
YXRhLCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCk7Ci0KLSAgdm9pZCBjb3B5VGV4U3Vi
SW1hZ2UzRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQg
eW9mZnNldCwgR0xpbnQgem9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBHTGludCB4
LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCk7Ci0KLSAgdm9pZCBjb21w
cmVzc2VkVGV4SW1hZ2UzRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVy
bmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdM
c2l6ZWkgaGVpZ2h0LCBHTHNpemVpIGRlcHRoLCBHTGludCBib3JkZXIsIEdMc2l6ZWkgaW1hZ2VT
aXplLCBHTGludHB0ciBvZmZzZXQpOwotICB2b2lkIGNvbXByZXNzZWRUZXhJbWFnZTNEKEdMZW51
bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lk
dGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSBoZWlnaHQsIEdMc2l6ZWkg
ZGVwdGgsIEdMaW50IGJvcmRlciwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXcgc3JjRGF0
YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0
ID0gMCwgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aE92ZXJyaWRlID0gMCk7Ci0KLSAgdm9pZCBj
b21wcmVzc2VkVGV4U3ViSW1hZ2UzRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQg
eG9mZnNldCwgR0xpbnQgeW9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
TGludCB6b2Zmc2V0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0
aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBHTHNpemVp
IGltYWdlU2l6ZSwgR0xpbnRwdHIgb2Zmc2V0KTsKLSAgdm9pZCBjb21wcmVzc2VkVGV4U3ViSW1h
Z2UzRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9m
ZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGludCB6b2Zmc2V0LCBHTHNp
emVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVy
VmlldyBzcmNEYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdM
dWludCBzcmNPZmZzZXQgPSAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlv
bmFsIEdMdWludCBzcmNMZW5ndGhPdmVycmlkZSA9IDApOworICB1bmRlZmluZWQgdGV4U3RvcmFn
ZTJEKEdMZW51bSB0YXJnZXQsIEdMc2l6ZWkgbGV2ZWxzLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQs
IEdMc2l6ZWkgd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSBoZWlnaHQp
OworICB1bmRlZmluZWQgdGV4U3RvcmFnZTNEKEdMZW51bSB0YXJnZXQsIEdMc2l6ZWkgbGV2ZWxz
LCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgR0xzaXplaSBoZWlnaHQsIEdMc2l6ZWkgZGVwdGgpOworCisgIHVuZGVmaW5lZCB0
ZXhJbWFnZTNEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbGZvcm1h
dCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAg
IEdMc2l6ZWkgZGVwdGgsIEdMaW50IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUs
IEdMaW50cHRyIHBib09mZnNldCk7CisgIHVuZGVmaW5lZCB0ZXhJbWFnZTNEKEdMZW51bSB0YXJn
ZXQsIEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xz
aXplaSBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgZGVwdGgsIEdMaW50
IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsCisgICAgICAgICAgICAgICAgICAg
ICAgIFRleEltYWdlU291cmNlIHNvdXJjZSk7IC8vIE1heSB0aHJvdyBET01FeGNlcHRpb24KKyAg
dW5kZWZpbmVkIHRleEltYWdlM0QoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IGlu
dGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgR0xzaXplaSBkZXB0aCwgR0xpbnQgYm9yZGVyLCBHTGVudW0gZm9ybWF0LCBH
TGVudW0gdHlwZSwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXc/IHNyY0RhdGEpOworICB1
bmRlZmluZWQgdGV4SW1hZ2UzRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgaW50
ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAorICAgICAgICAgICAg
ICAgICAgICAgICBHTHNpemVpIGRlcHRoLCBHTGludCBib3JkZXIsIEdMZW51bSBmb3JtYXQsIEdM
ZW51bSB0eXBlLCBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVyVmlldyBzcmNEYXRhLAorICAgICAg
ICAgICAgICAgICAgICAgICBHTHVpbnQgc3JjT2Zmc2V0KTsKKworICB1bmRlZmluZWQgdGV4U3Vi
SW1hZ2UzRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQg
eW9mZnNldCwgR0xpbnQgem9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXpl
aSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMc2l6ZWkgZGVwdGgsIEdMZW51bSBmb3JtYXQsIEdM
ZW51bSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBHTGludHB0ciBwYm9PZmZzZXQp
OworICB1bmRlZmluZWQgdGV4U3ViSW1hZ2UzRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwg
R0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwgR0xpbnQgem9mZnNldCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMc2l6ZWkgZGVw
dGgsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICBUZXhJbWFnZVNvdXJjZSBzb3VyY2UpOyAvLyBNYXkgdGhyb3cgRE9NRXhjZXB0aW9uCisgIHVu
ZGVmaW5lZCB0ZXhTdWJJbWFnZTNEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4
b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTGludCB6b2Zmc2V0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCwgR0xl
bnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFtBbGxv
d1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3PyBzcmNEYXRhLCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zm
c2V0ID0gMCk7CisKKyAgdW5kZWZpbmVkIGNvcHlUZXhTdWJJbWFnZTNEKEdMZW51bSB0YXJnZXQs
IEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTGludCB6b2Zmc2V0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXpl
aSB3aWR0aCwgR0xzaXplaSBoZWlnaHQpOworCisgIHVuZGVmaW5lZCBjb21wcmVzc2VkVGV4SW1h
Z2UzRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsZm9ybWF0LCBH
THNpemVpIHdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSBo
ZWlnaHQsIEdMc2l6ZWkgZGVwdGgsIEdMaW50IGJvcmRlciwgR0xzaXplaSBpbWFnZVNpemUsIEdM
aW50cHRyIG9mZnNldCk7CisgIHVuZGVmaW5lZCBjb21wcmVzc2VkVGV4SW1hZ2UzRChHTGVudW0g
dGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRo
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSBoZWlnaHQsIEdMc2l6
ZWkgZGVwdGgsIEdMaW50IGJvcmRlciwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXcgc3Jj
RGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBz
cmNPZmZzZXQgPSAwLCBvcHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoT3ZlcnJpZGUgPSAwKTsKKwor
ICB1bmRlZmluZWQgY29tcHJlc3NlZFRleFN1YkltYWdlM0QoR0xlbnVtIHRhcmdldCwgR0xpbnQg
bGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHTGludCB6b2Zmc2V0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhl
aWdodCwgR0xzaXplaSBkZXB0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdMZW51bSBmb3JtYXQsIEdMc2l6ZWkgaW1hZ2VTaXplLCBHTGludHB0ciBvZmZzZXQpOworICB1
bmRlZmluZWQgY29tcHJlc3NlZFRleFN1YkltYWdlM0QoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2
ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHTGludCB6b2Zmc2V0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdo
dCwgR0xzaXplaSBkZXB0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdM
ZW51bSBmb3JtYXQsIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3IHNyY0RhdGEsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0
ID0gMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWlu
dCBzcmNMZW5ndGhPdmVycmlkZSA9IDApOwogCiAgIC8qIFByb2dyYW1zIGFuZCBzaGFkZXJzICov
CiAgIFtXZWJHTEhhbmRsZXNDb250ZXh0TG9zc10gR0xpbnQgZ2V0RnJhZ0RhdGFMb2NhdGlvbihX
ZWJHTFByb2dyYW0gcHJvZ3JhbSwgRE9NU3RyaW5nIG5hbWUpOwogCiAgIC8qIFVuaWZvcm1zICov
Ci0gIHZvaWQgdW5pZm9ybTF1aShXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMdWlu
dCB2MCk7Ci0gIHZvaWQgdW5pZm9ybTJ1aShXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24s
IEdMdWludCB2MCwgR0x1aW50IHYxKTsKLSAgdm9pZCB1bmlmb3JtM3VpKFdlYkdMVW5pZm9ybUxv
Y2F0aW9uPyBsb2NhdGlvbiwgR0x1aW50IHYwLCBHTHVpbnQgdjEsIEdMdWludCB2Mik7Ci0gIHZv
aWQgdW5pZm9ybTR1aShXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMdWludCB2MCwg
R0x1aW50IHYxLCBHTHVpbnQgdjIsIEdMdWludCB2Myk7Ci0KLSAgdm9pZCB1bmlmb3JtMXVpdihX
ZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIFVpbnQzMkxpc3QgZGF0YSwgb3B0aW9uYWwg
R0x1aW50IHNyY09mZnNldCA9IDAsCi0gICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQg
c3JjTGVuZ3RoID0gMCk7Ci0gIHZvaWQgdW5pZm9ybTJ1aXYoV2ViR0xVbmlmb3JtTG9jYXRpb24/
IGxvY2F0aW9uLCBVaW50MzJMaXN0IGRhdGEsIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAw
LAotICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOwotICB2
b2lkIHVuaWZvcm0zdWl2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgVWludDMyTGlz
dCBkYXRhLCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKLSAgICAgICAgICAgICAgICAg
IG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKLSAgdm9pZCB1bmlmb3JtNHVpdihXZWJH
TFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIFVpbnQzMkxpc3QgZGF0YSwgb3B0aW9uYWwgR0x1
aW50IHNyY09mZnNldCA9IDAsCi0gICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3Jj
TGVuZ3RoID0gMCk7Ci0gIHZvaWQgdW5pZm9ybU1hdHJpeDN4MmZ2KFdlYkdMVW5pZm9ybUxvY2F0
aW9uPyBsb2NhdGlvbiwgR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0YSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsIG9w
dGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKLSAgdm9pZCB1bmlmb3JtTWF0cml4NHgyZnYo
V2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9h
dDMyTGlzdCBkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQg
c3JjT2Zmc2V0ID0gMCwgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOwotCi0gIHZvaWQg
dW5pZm9ybU1hdHJpeDJ4M2Z2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xib29s
ZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsIG9wdGlvbmFsIEdMdWludCBzcmNMZW5n
dGggPSAwKTsKLSAgdm9pZCB1bmlmb3JtTWF0cml4NHgzZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/
IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCBkYXRhLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwgb3B0aW9u
YWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOwotCi0gIHZvaWQgdW5pZm9ybU1hdHJpeDJ4NGZ2KFdl
YkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQz
Mkxpc3QgZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNy
Y09mZnNldCA9IDAsIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKLSAgdm9pZCB1bmlm
b3JtTWF0cml4M3g0ZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xlYW4g
dHJhbnNwb3NlLCBGbG9hdDMyTGlzdCBkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICBv
cHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9
IDApOworICB1bmRlZmluZWQgdW5pZm9ybTF1aShXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRp
b24sIEdMdWludCB2MCk7CisgIHVuZGVmaW5lZCB1bmlmb3JtMnVpKFdlYkdMVW5pZm9ybUxvY2F0
aW9uPyBsb2NhdGlvbiwgR0x1aW50IHYwLCBHTHVpbnQgdjEpOworICB1bmRlZmluZWQgdW5pZm9y
bTN1aShXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMdWludCB2MCwgR0x1aW50IHYx
LCBHTHVpbnQgdjIpOworICB1bmRlZmluZWQgdW5pZm9ybTR1aShXZWJHTFVuaWZvcm1Mb2NhdGlv
bj8gbG9jYXRpb24sIEdMdWludCB2MCwgR0x1aW50IHYxLCBHTHVpbnQgdjIsIEdMdWludCB2Myk7
CisKKyAgdW5kZWZpbmVkIHVuaWZvcm0xdWl2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlv
biwgVWludDMyTGlzdCBkYXRhLCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKKyAgdW5k
ZWZpbmVkIHVuaWZvcm0ydWl2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgVWludDMy
TGlzdCBkYXRhLCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKKyAgdW5kZWZpbmVkIHVu
aWZvcm0zdWl2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgVWludDMyTGlzdCBkYXRh
LCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKKyAgICAgICAgICAgICAgICAgICAgICAg
IG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKKyAgdW5kZWZpbmVkIHVuaWZvcm00dWl2
KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgVWludDMyTGlzdCBkYXRhLCBvcHRpb25h
bCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFs
IEdMdWludCBzcmNMZW5ndGggPSAwKTsKKyAgdW5kZWZpbmVkIHVuaWZvcm1NYXRyaXgzeDJmdihX
ZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMYm9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0
MzJMaXN0IGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1
aW50IHNyY09mZnNldCA9IDAsIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKKyAgdW5k
ZWZpbmVkIHVuaWZvcm1NYXRyaXg0eDJmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24s
IEdMYm9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0IGRhdGEsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsIG9wdGlvbmFsIEdM
dWludCBzcmNMZW5ndGggPSAwKTsKKworICB1bmRlZmluZWQgdW5pZm9ybU1hdHJpeDJ4M2Z2KFdl
YkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQz
Mkxpc3QgZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVp
bnQgc3JjT2Zmc2V0ID0gMCwgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOworICB1bmRl
ZmluZWQgdW5pZm9ybU1hdHJpeDR4M2Z2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwg
R0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0YSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwgb3B0aW9uYWwgR0x1
aW50IHNyY0xlbmd0aCA9IDApOworCisgIHVuZGVmaW5lZCB1bmlmb3JtTWF0cml4Mng0ZnYoV2Vi
R0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMy
TGlzdCBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWlu
dCBzcmNPZmZzZXQgPSAwLCBvcHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoID0gMCk7CisgIHVuZGVm
aW5lZCB1bmlmb3JtTWF0cml4M3g0ZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBH
TGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCBkYXRhLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAwLCBvcHRpb25hbCBHTHVp
bnQgc3JjTGVuZ3RoID0gMCk7CiAKICAgLyogVmVydGV4IGF0dHJpYnMgKi8KLSAgdm9pZCB2ZXJ0
ZXhBdHRyaWJJNGkoR0x1aW50IGluZGV4LCBHTGludCB4LCBHTGludCB5LCBHTGludCB6LCBHTGlu
dCB3KTsKLSAgdm9pZCB2ZXJ0ZXhBdHRyaWJJNGl2KEdMdWludCBpbmRleCwgSW50MzJMaXN0IHZh
bHVlcyk7Ci0gIHZvaWQgdmVydGV4QXR0cmliSTR1aShHTHVpbnQgaW5kZXgsIEdMdWludCB4LCBH
THVpbnQgeSwgR0x1aW50IHosIEdMdWludCB3KTsKLSAgdm9pZCB2ZXJ0ZXhBdHRyaWJJNHVpdihH
THVpbnQgaW5kZXgsIFVpbnQzMkxpc3QgdmFsdWVzKTsKLSAgdm9pZCB2ZXJ0ZXhBdHRyaWJJUG9p
bnRlcihHTHVpbnQgaW5kZXgsIEdMaW50IHNpemUsIEdMZW51bSB0eXBlLCBHTHNpemVpIHN0cmlk
ZSwgR0xpbnRwdHIgb2Zmc2V0KTsKKyAgdW5kZWZpbmVkIHZlcnRleEF0dHJpYkk0aShHTHVpbnQg
aW5kZXgsIEdMaW50IHgsIEdMaW50IHksIEdMaW50IHosIEdMaW50IHcpOworICB1bmRlZmluZWQg
dmVydGV4QXR0cmliSTRpdihHTHVpbnQgaW5kZXgsIEludDMyTGlzdCB2YWx1ZXMpOworICB1bmRl
ZmluZWQgdmVydGV4QXR0cmliSTR1aShHTHVpbnQgaW5kZXgsIEdMdWludCB4LCBHTHVpbnQgeSwg
R0x1aW50IHosIEdMdWludCB3KTsKKyAgdW5kZWZpbmVkIHZlcnRleEF0dHJpYkk0dWl2KEdMdWlu
dCBpbmRleCwgVWludDMyTGlzdCB2YWx1ZXMpOworICB1bmRlZmluZWQgdmVydGV4QXR0cmliSVBv
aW50ZXIoR0x1aW50IGluZGV4LCBHTGludCBzaXplLCBHTGVudW0gdHlwZSwgR0xzaXplaSBzdHJp
ZGUsIEdMaW50cHRyIG9mZnNldCk7CiAKICAgLyogV3JpdGluZyB0byB0aGUgZHJhd2luZyBidWZm
ZXIgKi8KLSAgdm9pZCB2ZXJ0ZXhBdHRyaWJEaXZpc29yKEdMdWludCBpbmRleCwgR0x1aW50IGRp
dmlzb3IpOwotICB2b2lkIGRyYXdBcnJheXNJbnN0YW5jZWQoR0xlbnVtIG1vZGUsIEdMaW50IGZp
cnN0LCBHTHNpemVpIGNvdW50LCBHTHNpemVpIGluc3RhbmNlQ291bnQpOwotICB2b2lkIGRyYXdF
bGVtZW50c0luc3RhbmNlZChHTGVudW0gbW9kZSwgR0xzaXplaSBjb3VudCwgR0xlbnVtIHR5cGUs
IEdMaW50cHRyIG9mZnNldCwgR0xzaXplaSBpbnN0YW5jZUNvdW50KTsKLSAgdm9pZCBkcmF3UmFu
Z2VFbGVtZW50cyhHTGVudW0gbW9kZSwgR0x1aW50IHN0YXJ0LCBHTHVpbnQgZW5kLCBHTHNpemVp
IGNvdW50LCBHTGVudW0gdHlwZSwgR0xpbnRwdHIgb2Zmc2V0KTsKKyAgdW5kZWZpbmVkIHZlcnRl
eEF0dHJpYkRpdmlzb3IoR0x1aW50IGluZGV4LCBHTHVpbnQgZGl2aXNvcik7CisgIHVuZGVmaW5l
ZCBkcmF3QXJyYXlzSW5zdGFuY2VkKEdMZW51bSBtb2RlLCBHTGludCBmaXJzdCwgR0xzaXplaSBj
b3VudCwgR0xzaXplaSBpbnN0YW5jZUNvdW50KTsKKyAgdW5kZWZpbmVkIGRyYXdFbGVtZW50c0lu
c3RhbmNlZChHTGVudW0gbW9kZSwgR0xzaXplaSBjb3VudCwgR0xlbnVtIHR5cGUsIEdMaW50cHRy
IG9mZnNldCwgR0xzaXplaSBpbnN0YW5jZUNvdW50KTsKKyAgdW5kZWZpbmVkIGRyYXdSYW5nZUVs
ZW1lbnRzKEdMZW51bSBtb2RlLCBHTHVpbnQgc3RhcnQsIEdMdWludCBlbmQsIEdMc2l6ZWkgY291
bnQsIEdMZW51bSB0eXBlLCBHTGludHB0ciBvZmZzZXQpOwogCiAgIC8qIE11bHRpcGxlIFJlbmRl
ciBUYXJnZXRzICovCi0gIHZvaWQgZHJhd0J1ZmZlcnMoc2VxdWVuY2U8R0xlbnVtPiBidWZmZXJz
KTsKKyAgdW5kZWZpbmVkIGRyYXdCdWZmZXJzKHNlcXVlbmNlPEdMZW51bT4gYnVmZmVycyk7CiAK
LSAgdm9pZCBjbGVhckJ1ZmZlcmZ2KEdMZW51bSBidWZmZXIsIEdMaW50IGRyYXdidWZmZXIsIEZs
b2F0MzJMaXN0IHZhbHVlcywKLSAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBz
cmNPZmZzZXQgPSAwKTsKLSAgdm9pZCBjbGVhckJ1ZmZlcml2KEdMZW51bSBidWZmZXIsIEdMaW50
IGRyYXdidWZmZXIsIEludDMyTGlzdCB2YWx1ZXMsCi0gICAgICAgICAgICAgICAgICAgICBvcHRp
b25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCk7Ci0gIHZvaWQgY2xlYXJCdWZmZXJ1aXYoR0xlbnVt
IGJ1ZmZlciwgR0xpbnQgZHJhd2J1ZmZlciwgVWludDMyTGlzdCB2YWx1ZXMsCi0gICAgICAgICAg
ICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDApOworICB1bmRlZmluZWQg
Y2xlYXJCdWZmZXJmdihHTGVudW0gYnVmZmVyLCBHTGludCBkcmF3YnVmZmVyLCBGbG9hdDMyTGlz
dCB2YWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNP
ZmZzZXQgPSAwKTsKKyAgdW5kZWZpbmVkIGNsZWFyQnVmZmVyaXYoR0xlbnVtIGJ1ZmZlciwgR0xp
bnQgZHJhd2J1ZmZlciwgSW50MzJMaXN0IHZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDApOworICB1bmRlZmluZWQgY2xlYXJCdWZm
ZXJ1aXYoR0xlbnVtIGJ1ZmZlciwgR0xpbnQgZHJhd2J1ZmZlciwgVWludDMyTGlzdCB2YWx1ZXMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0g
MCk7CiAKLSAgdm9pZCBjbGVhckJ1ZmZlcmZpKEdMZW51bSBidWZmZXIsIEdMaW50IGRyYXdidWZm
ZXIsIEdMZmxvYXQgZGVwdGgsIEdMaW50IHN0ZW5jaWwpOworICB1bmRlZmluZWQgY2xlYXJCdWZm
ZXJmaShHTGVudW0gYnVmZmVyLCBHTGludCBkcmF3YnVmZmVyLCBHTGZsb2F0IGRlcHRoLCBHTGlu
dCBzdGVuY2lsKTsKIAogICAvKiBRdWVyeSBPYmplY3RzICovCiAgIFdlYkdMUXVlcnk/IGNyZWF0
ZVF1ZXJ5KCk7Ci0gIHZvaWQgZGVsZXRlUXVlcnkoV2ViR0xRdWVyeT8gcXVlcnkpOworICB1bmRl
ZmluZWQgZGVsZXRlUXVlcnkoV2ViR0xRdWVyeT8gcXVlcnkpOwogICBbV2ViR0xIYW5kbGVzQ29u
dGV4dExvc3NdIEdMYm9vbGVhbiBpc1F1ZXJ5KFdlYkdMUXVlcnk/IHF1ZXJ5KTsKLSAgdm9pZCBi
ZWdpblF1ZXJ5KEdMZW51bSB0YXJnZXQsIFdlYkdMUXVlcnkgcXVlcnkpOwotICB2b2lkIGVuZFF1
ZXJ5KEdMZW51bSB0YXJnZXQpOworICB1bmRlZmluZWQgYmVnaW5RdWVyeShHTGVudW0gdGFyZ2V0
LCBXZWJHTFF1ZXJ5IHF1ZXJ5KTsKKyAgdW5kZWZpbmVkIGVuZFF1ZXJ5KEdMZW51bSB0YXJnZXQp
OwogICBXZWJHTFF1ZXJ5PyBnZXRRdWVyeShHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUpOwog
ICBhbnkgZ2V0UXVlcnlQYXJhbWV0ZXIoV2ViR0xRdWVyeSBxdWVyeSwgR0xlbnVtIHBuYW1lKTsK
IAogICAvKiBTYW1wbGVyIE9iamVjdHMgKi8KICAgV2ViR0xTYW1wbGVyPyBjcmVhdGVTYW1wbGVy
KCk7Ci0gIHZvaWQgZGVsZXRlU2FtcGxlcihXZWJHTFNhbXBsZXI/IHNhbXBsZXIpOworICB1bmRl
ZmluZWQgZGVsZXRlU2FtcGxlcihXZWJHTFNhbXBsZXI/IHNhbXBsZXIpOwogICBbV2ViR0xIYW5k
bGVzQ29udGV4dExvc3NdIEdMYm9vbGVhbiBpc1NhbXBsZXIoV2ViR0xTYW1wbGVyPyBzYW1wbGVy
KTsKLSAgdm9pZCBiaW5kU2FtcGxlcihHTHVpbnQgdW5pdCwgV2ViR0xTYW1wbGVyPyBzYW1wbGVy
KTsKLSAgdm9pZCBzYW1wbGVyUGFyYW1ldGVyaShXZWJHTFNhbXBsZXIgc2FtcGxlciwgR0xlbnVt
IHBuYW1lLCBHTGludCBwYXJhbSk7Ci0gIHZvaWQgc2FtcGxlclBhcmFtZXRlcmYoV2ViR0xTYW1w
bGVyIHNhbXBsZXIsIEdMZW51bSBwbmFtZSwgR0xmbG9hdCBwYXJhbSk7CisgIHVuZGVmaW5lZCBi
aW5kU2FtcGxlcihHTHVpbnQgdW5pdCwgV2ViR0xTYW1wbGVyPyBzYW1wbGVyKTsKKyAgdW5kZWZp
bmVkIHNhbXBsZXJQYXJhbWV0ZXJpKFdlYkdMU2FtcGxlciBzYW1wbGVyLCBHTGVudW0gcG5hbWUs
IEdMaW50IHBhcmFtKTsKKyAgdW5kZWZpbmVkIHNhbXBsZXJQYXJhbWV0ZXJmKFdlYkdMU2FtcGxl
ciBzYW1wbGVyLCBHTGVudW0gcG5hbWUsIEdMZmxvYXQgcGFyYW0pOwogICBhbnkgZ2V0U2FtcGxl
clBhcmFtZXRlcihXZWJHTFNhbXBsZXIgc2FtcGxlciwgR0xlbnVtIHBuYW1lKTsKIAogICAvKiBT
eW5jIG9iamVjdHMgKi8KICAgV2ViR0xTeW5jPyBmZW5jZVN5bmMoR0xlbnVtIGNvbmRpdGlvbiwg
R0xiaXRmaWVsZCBmbGFncyk7CiAgIFtXZWJHTEhhbmRsZXNDb250ZXh0TG9zc10gR0xib29sZWFu
IGlzU3luYyhXZWJHTFN5bmM/IHN5bmMpOwotICB2b2lkIGRlbGV0ZVN5bmMoV2ViR0xTeW5jPyBz
eW5jKTsKKyAgdW5kZWZpbmVkIGRlbGV0ZVN5bmMoV2ViR0xTeW5jPyBzeW5jKTsKICAgR0xlbnVt
IGNsaWVudFdhaXRTeW5jKFdlYkdMU3luYyBzeW5jLCBHTGJpdGZpZWxkIGZsYWdzLCBHTHVpbnQ2
NCB0aW1lb3V0KTsKLSAgdm9pZCB3YWl0U3luYyhXZWJHTFN5bmMgc3luYywgR0xiaXRmaWVsZCBm
bGFncywgR0xpbnQ2NCB0aW1lb3V0KTsKKyAgdW5kZWZpbmVkIHdhaXRTeW5jKFdlYkdMU3luYyBz
eW5jLCBHTGJpdGZpZWxkIGZsYWdzLCBHTGludDY0IHRpbWVvdXQpOwogICBhbnkgZ2V0U3luY1Bh
cmFtZXRlcihXZWJHTFN5bmMgc3luYywgR0xlbnVtIHBuYW1lKTsKIAogICAvKiBUcmFuc2Zvcm0g
RmVlZGJhY2sgKi8KICAgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz8gY3JlYXRlVHJhbnNmb3JtRmVl
ZGJhY2soKTsKLSAgdm9pZCBkZWxldGVUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFRyYW5zZm9ybUZl
ZWRiYWNrPyB0Zik7CisgIHVuZGVmaW5lZCBkZWxldGVUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFRy
YW5zZm9ybUZlZWRiYWNrPyB0Zik7CiAgIFtXZWJHTEhhbmRsZXNDb250ZXh0TG9zc10gR0xib29s
ZWFuIGlzVHJhbnNmb3JtRmVlZGJhY2soV2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz8gdGYpOwotICB2
b2lkIGJpbmRUcmFuc2Zvcm1GZWVkYmFjayAoR0xlbnVtIHRhcmdldCwgV2ViR0xUcmFuc2Zvcm1G
ZWVkYmFjaz8gdGYpOwotICB2b2lkIGJlZ2luVHJhbnNmb3JtRmVlZGJhY2soR0xlbnVtIHByaW1p
dGl2ZU1vZGUpOwotICB2b2lkIGVuZFRyYW5zZm9ybUZlZWRiYWNrKCk7Ci0gIHZvaWQgdHJhbnNm
b3JtRmVlZGJhY2tWYXJ5aW5ncyhXZWJHTFByb2dyYW0gcHJvZ3JhbSwgc2VxdWVuY2U8RE9NU3Ry
aW5nPiB2YXJ5aW5ncywgR0xlbnVtIGJ1ZmZlck1vZGUpOworICB1bmRlZmluZWQgYmluZFRyYW5z
Zm9ybUZlZWRiYWNrIChHTGVudW0gdGFyZ2V0LCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrPyB0Zik7
CisgIHVuZGVmaW5lZCBiZWdpblRyYW5zZm9ybUZlZWRiYWNrKEdMZW51bSBwcmltaXRpdmVNb2Rl
KTsKKyAgdW5kZWZpbmVkIGVuZFRyYW5zZm9ybUZlZWRiYWNrKCk7CisgIHVuZGVmaW5lZCB0cmFu
c2Zvcm1GZWVkYmFja1ZhcnlpbmdzKFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBzZXF1ZW5jZTxET01T
dHJpbmc+IHZhcnlpbmdzLCBHTGVudW0gYnVmZmVyTW9kZSk7CiAgIFdlYkdMQWN0aXZlSW5mbz8g
Z2V0VHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5nKFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBHTHVpbnQg
aW5kZXgpOwotICB2b2lkIHBhdXNlVHJhbnNmb3JtRmVlZGJhY2soKTsKLSAgdm9pZCByZXN1bWVU
cmFuc2Zvcm1GZWVkYmFjaygpOworICB1bmRlZmluZWQgcGF1c2VUcmFuc2Zvcm1GZWVkYmFjaygp
OworICB1bmRlZmluZWQgcmVzdW1lVHJhbnNmb3JtRmVlZGJhY2soKTsKIAogICAvKiBVbmlmb3Jt
IEJ1ZmZlciBPYmplY3RzIGFuZCBUcmFuc2Zvcm0gRmVlZGJhY2sgQnVmZmVycyAqLwotICB2b2lk
IGJpbmRCdWZmZXJCYXNlKEdMZW51bSB0YXJnZXQsIEdMdWludCBpbmRleCwgV2ViR0xCdWZmZXI/
IGJ1ZmZlcik7Ci0gIHZvaWQgYmluZEJ1ZmZlclJhbmdlKEdMZW51bSB0YXJnZXQsIEdMdWludCBp
bmRleCwgV2ViR0xCdWZmZXI/IGJ1ZmZlciwgR0xpbnRwdHIgb2Zmc2V0LCBHTHNpemVpcHRyIHNp
emUpOworICB1bmRlZmluZWQgYmluZEJ1ZmZlckJhc2UoR0xlbnVtIHRhcmdldCwgR0x1aW50IGlu
ZGV4LCBXZWJHTEJ1ZmZlcj8gYnVmZmVyKTsKKyAgdW5kZWZpbmVkIGJpbmRCdWZmZXJSYW5nZShH
TGVudW0gdGFyZ2V0LCBHTHVpbnQgaW5kZXgsIFdlYkdMQnVmZmVyPyBidWZmZXIsIEdMaW50cHRy
IG9mZnNldCwgR0xzaXplaXB0ciBzaXplKTsKICAgYW55IGdldEluZGV4ZWRQYXJhbWV0ZXIoR0xl
bnVtIHRhcmdldCwgR0x1aW50IGluZGV4KTsKICAgc2VxdWVuY2U8R0x1aW50Pj8gZ2V0VW5pZm9y
bUluZGljZXMoV2ViR0xQcm9ncmFtIHByb2dyYW0sIHNlcXVlbmNlPERPTVN0cmluZz4gdW5pZm9y
bU5hbWVzKTsKICAgYW55IGdldEFjdGl2ZVVuaWZvcm1zKFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBz
ZXF1ZW5jZTxHTHVpbnQ+IHVuaWZvcm1JbmRpY2VzLCBHTGVudW0gcG5hbWUpOwogICBHTHVpbnQg
Z2V0VW5pZm9ybUJsb2NrSW5kZXgoV2ViR0xQcm9ncmFtIHByb2dyYW0sIERPTVN0cmluZyB1bmlm
b3JtQmxvY2tOYW1lKTsKICAgYW55IGdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihXZWJH
TFByb2dyYW0gcHJvZ3JhbSwgR0x1aW50IHVuaWZvcm1CbG9ja0luZGV4LCBHTGVudW0gcG5hbWUp
OwogICBET01TdHJpbmc/IGdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUoV2ViR0xQcm9ncmFtIHBy
b2dyYW0sIEdMdWludCB1bmlmb3JtQmxvY2tJbmRleCk7Ci0gIHZvaWQgdW5pZm9ybUJsb2NrQmlu
ZGluZyhXZWJHTFByb2dyYW0gcHJvZ3JhbSwgR0x1aW50IHVuaWZvcm1CbG9ja0luZGV4LCBHTHVp
bnQgdW5pZm9ybUJsb2NrQmluZGluZyk7CisgIHVuZGVmaW5lZCB1bmlmb3JtQmxvY2tCaW5kaW5n
KFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBHTHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdMdWludCB1
bmlmb3JtQmxvY2tCaW5kaW5nKTsKIAogICAvKiBWZXJ0ZXggQXJyYXkgT2JqZWN0cyAqLwogICBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0PyBjcmVhdGVWZXJ0ZXhBcnJheSgpOwotICB2b2lkIGRlbGV0
ZVZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3Q/IHZlcnRleEFycmF5KTsKKyAgdW5k
ZWZpbmVkIGRlbGV0ZVZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3Q/IHZlcnRleEFy
cmF5KTsKICAgW1dlYkdMSGFuZGxlc0NvbnRleHRMb3NzXSBHTGJvb2xlYW4gaXNWZXJ0ZXhBcnJh
eShXZWJHTFZlcnRleEFycmF5T2JqZWN0PyB2ZXJ0ZXhBcnJheSk7Ci0gIHZvaWQgYmluZFZlcnRl
eEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3Q/IGFycmF5KTsKKyAgdW5kZWZpbmVkIGJpbmRW
ZXJ0ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2JqZWN0PyBhcnJheSk7CiB9OwogCiBpbnRlcmZh
Y2UgbWl4aW4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dE92ZXJsb2FkcwogewogICAvLyBXZWJHTDE6
Ci0gIHZvaWQgYnVmZmVyRGF0YShHTGVudW0gdGFyZ2V0LCBHTHNpemVpcHRyIHNpemUsIEdMZW51
bSB1c2FnZSk7Ci0gIHZvaWQgYnVmZmVyRGF0YShHTGVudW0gdGFyZ2V0LCBbQWxsb3dTaGFyZWRd
IEJ1ZmZlclNvdXJjZT8gc3JjRGF0YSwgR0xlbnVtIHVzYWdlKTsKLSAgdm9pZCBidWZmZXJTdWJE
YXRhKEdMZW51bSB0YXJnZXQsIEdMaW50cHRyIGRzdEJ5dGVPZmZzZXQsIFtBbGxvd1NoYXJlZF0g
QnVmZmVyU291cmNlIHNyY0RhdGEpOworICB1bmRlZmluZWQgYnVmZmVyRGF0YShHTGVudW0gdGFy
Z2V0LCBHTHNpemVpcHRyIHNpemUsIEdMZW51bSB1c2FnZSk7CisgIHVuZGVmaW5lZCBidWZmZXJE
YXRhKEdMZW51bSB0YXJnZXQsIFtBbGxvd1NoYXJlZF0gQnVmZmVyU291cmNlPyBzcmNEYXRhLCBH
TGVudW0gdXNhZ2UpOworICB1bmRlZmluZWQgYnVmZmVyU3ViRGF0YShHTGVudW0gdGFyZ2V0LCBH
TGludHB0ciBkc3RCeXRlT2Zmc2V0LCBbQWxsb3dTaGFyZWRdIEJ1ZmZlclNvdXJjZSBzcmNEYXRh
KTsKICAgLy8gV2ViR0wyOgotICB2b2lkIGJ1ZmZlckRhdGEoR0xlbnVtIHRhcmdldCwgW0FsbG93
U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXcgc3JjRGF0YSwgR0xlbnVtIHVzYWdlLCBHTHVpbnQgc3Jj
T2Zmc2V0LAotICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IGxlbmd0aCA9IDApOwot
ICB2b2lkIGJ1ZmZlclN1YkRhdGEoR0xlbnVtIHRhcmdldCwgR0xpbnRwdHIgZHN0Qnl0ZU9mZnNl
dCwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXcgc3JjRGF0YSwKLSAgICAgICAgICAgICAg
ICAgICAgIEdMdWludCBzcmNPZmZzZXQsIG9wdGlvbmFsIEdMdWludCBsZW5ndGggPSAwKTsKKyAg
dW5kZWZpbmVkIGJ1ZmZlckRhdGEoR0xlbnVtIHRhcmdldCwgW0FsbG93U2hhcmVkXSBBcnJheUJ1
ZmZlclZpZXcgc3JjRGF0YSwgR0xlbnVtIHVzYWdlLCBHTHVpbnQgc3JjT2Zmc2V0LAorICAgICAg
ICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgbGVuZ3RoID0gMCk7CisgIHVuZGVmaW5l
ZCBidWZmZXJTdWJEYXRhKEdMZW51bSB0YXJnZXQsIEdMaW50cHRyIGRzdEJ5dGVPZmZzZXQsIFtB
bGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3IHNyY0RhdGEsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdMdWludCBzcmNPZmZzZXQsIG9wdGlvbmFsIEdMdWludCBsZW5ndGggPSAwKTsKIAog
ICAvLyBXZWJHTDEgbGVnYWN5IGVudHJ5cG9pbnRzOgotICB2b2lkIHRleEltYWdlMkQoR0xlbnVt
IHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IGludGVybmFsZm9ybWF0LAotICAgICAgICAgICAg
ICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMaW50IGJvcmRlciwgR0xlbnVt
IGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgIEdMZW51bSB0eXBlLCBbQWxsb3dTaGFyZWRdIEFy
cmF5QnVmZmVyVmlldz8gcGl4ZWxzKTsKLSAgdm9pZCB0ZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQs
IEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgIEdM
ZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBUZXhJbWFnZVNvdXJjZSBzb3VyY2UpOyAvLyBNYXkg
dGhyb3cgRE9NRXhjZXB0aW9uCi0KLSAgdm9pZCB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQs
IEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LAotICAgICAgICAgICAg
ICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsCi0gICAgICAgICAgICAgICAg
ICAgICBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZl
clZpZXc/IHBpeGVscyk7Ci0gIHZvaWQgdGV4U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGlu
dCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwKLSAgICAgICAgICAgICAgICAg
ICAgIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBUZXhJbWFnZVNvdXJjZSBzb3VyY2UpOyAv
LyBNYXkgdGhyb3cgRE9NRXhjZXB0aW9uCisgIHVuZGVmaW5lZCB0ZXhJbWFnZTJEKEdMZW51bSB0
YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbGZvcm1hdCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMaW50IGJvcmRlciwgR0xl
bnVtIGZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIHR5cGUsIFtBbGxvd1No
YXJlZF0gQXJyYXlCdWZmZXJWaWV3PyBwaXhlbHMpOworICB1bmRlZmluZWQgdGV4SW1hZ2UyRChH
TGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgaW50ZXJuYWxmb3JtYXQsCisgICAgICAg
ICAgICAgICAgICAgICAgIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBUZXhJbWFnZVNvdXJj
ZSBzb3VyY2UpOyAvLyBNYXkgdGhyb3cgRE9NRXhjZXB0aW9uCisKKyAgdW5kZWZpbmVkIHRleFN1
YkltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50
IHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6
ZWkgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBHTGVu
dW0gdHlwZSwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXc/IHBpeGVscyk7CisgIHVuZGVm
aW5lZCB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zm
c2V0LCBHTGludCB5b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gZm9y
bWF0LCBHTGVudW0gdHlwZSwgVGV4SW1hZ2VTb3VyY2Ugc291cmNlKTsgLy8gTWF5IHRocm93IERP
TUV4Y2VwdGlvbgogCiAgIC8vIFdlYkdMMiBlbnRyeXBvaW50czoKLSAgdm9pZCB0ZXhJbWFnZTJE
KEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbGZvcm1hdCwgR0xzaXpl
aSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsCi0gICAgICAgICAgICAgICAgICBHTGludCBib3JkZXIs
IEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBHTGludHB0ciBwYm9PZmZzZXQpOwotICB2b2lk
IHRleEltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IGludGVybmFsZm9y
bWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwKLSAgICAgICAgICAgICAgICAgIEdM
aW50IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsCi0gICAgICAgICAgICAgICAg
ICBUZXhJbWFnZVNvdXJjZSBzb3VyY2UpOyAvLyBNYXkgdGhyb3cgRE9NRXhjZXB0aW9uCi0gIHZv
aWQgdGV4SW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgaW50ZXJuYWxm
b3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAotICAgICAgICAgICAgICAgICAg
R0xpbnQgYm9yZGVyLCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgW0FsbG93U2hhcmVkXSBB
cnJheUJ1ZmZlclZpZXcgc3JjRGF0YSwKLSAgICAgICAgICAgICAgICAgIEdMdWludCBzcmNPZmZz
ZXQpOwotCi0gIHZvaWQgdGV4U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwg
R0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwgR0xzaXplaSB3aWR0aCwKLSAgICAgICAgICAg
ICAgICAgICAgIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgR0xp
bnRwdHIgcGJvT2Zmc2V0KTsKLSAgdm9pZCB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdM
aW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTHNpemVpIHdpZHRoLAot
ICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSBoZWlnaHQsIEdMZW51bSBmb3JtYXQsIEdMZW51
bSB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgVGV4SW1hZ2VTb3VyY2Ugc291cmNlKTsgLy8g
TWF5IHRocm93IERPTUV4Y2VwdGlvbgotICB2b2lkIHRleFN1YkltYWdlMkQoR0xlbnVtIHRhcmdl
dCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsIEdMc2l6ZWkgd2lk
dGgsCi0gICAgICAgICAgICAgICAgICAgICBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwg
R0xlbnVtIHR5cGUsIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3IHNyY0RhdGEsCi0gICAg
ICAgICAgICAgICAgICAgICBHTHVpbnQgc3JjT2Zmc2V0KTsKLQotICB2b2lkIGNvbXByZXNzZWRU
ZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdMc2l6ZWkgd2lkdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSBo
ZWlnaHQsIEdMaW50IGJvcmRlciwgR0xzaXplaSBpbWFnZVNpemUsIEdMaW50cHRyIG9mZnNldCk7
Ci0gIHZvaWQgY29tcHJlc3NlZFRleEltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWws
IEdMZW51bSBpbnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0aCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHTHNpemVpIGhlaWdodCwgR0xpbnQgYm9yZGVyLCBbQWxsb3dTaGFyZWRdIEFy
cmF5QnVmZmVyVmlldyBzcmNEYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlv
bmFsIEdMdWludCBzcmNPZmZzZXQgPSAwLCBvcHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoT3ZlcnJp
ZGUgPSAwKTsKLQotICB2b2lkIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQs
IEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0g
Zm9ybWF0LCBHTHNpemVpIGltYWdlU2l6ZSwgR0xpbnRwdHIgb2Zmc2V0KTsKLSAgdm9pZCBjb21w
cmVzc2VkVGV4U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9m
ZnNldCwgR0xpbnQgeW9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNp
emVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVyVmlldyBzcmNEYXRhLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQg
PSAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNM
ZW5ndGhPdmVycmlkZSA9IDApOwotCi0gIHZvaWQgdW5pZm9ybTFmdihXZWJHTFVuaWZvcm1Mb2Nh
dGlvbj8gbG9jYXRpb24sIEZsb2F0MzJMaXN0IGRhdGEsIG9wdGlvbmFsIEdMdWludCBzcmNPZmZz
ZXQgPSAwLAotICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDAp
OwotICB2b2lkIHVuaWZvcm0yZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBGbG9h
dDMyTGlzdCBkYXRhLCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKLSAgICAgICAgICAg
ICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKLSAgdm9pZCB1bmlmb3JtM2Z2
KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgRmxvYXQzMkxpc3QgZGF0YSwgb3B0aW9u
YWwgR0x1aW50IHNyY09mZnNldCA9IDAsCi0gICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVp
bnQgc3JjTGVuZ3RoID0gMCk7Ci0gIHZvaWQgdW5pZm9ybTRmdihXZWJHTFVuaWZvcm1Mb2NhdGlv
bj8gbG9jYXRpb24sIEZsb2F0MzJMaXN0IGRhdGEsIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQg
PSAwLAotICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOwot
Ci0gIHZvaWQgdW5pZm9ybTFpdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEludDMy
TGlzdCBkYXRhLCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKLSAgICAgICAgICAgICAg
ICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKLSAgdm9pZCB1bmlmb3JtMml2KFdl
YkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgSW50MzJMaXN0IGRhdGEsIG9wdGlvbmFsIEdM
dWludCBzcmNPZmZzZXQgPSAwLAotICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNy
Y0xlbmd0aCA9IDApOwotICB2b2lkIHVuaWZvcm0zaXYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxv
Y2F0aW9uLCBJbnQzMkxpc3QgZGF0YSwgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsCi0g
ICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoID0gMCk7Ci0gIHZvaWQg
dW5pZm9ybTRpdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEludDMyTGlzdCBkYXRh
LCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKLSAgICAgICAgICAgICAgICAgIG9wdGlv
bmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKLQotICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoV2Vi
R0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMy
TGlzdCBkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY09m
ZnNldCA9IDAsIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKLSAgdm9pZCB1bmlmb3Jt
TWF0cml4M2Z2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xib29sZWFuIHRyYW5z
cG9zZSwgRmxvYXQzMkxpc3QgZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFs
IEdMdWludCBzcmNPZmZzZXQgPSAwLCBvcHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoID0gMCk7Ci0g
IHZvaWQgdW5pZm9ybU1hdHJpeDRmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdM
Ym9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0IGRhdGEsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwgb3B0aW9uYWwgR0x1aW50IHNyY0xl
bmd0aCA9IDApOworICB1bmRlZmluZWQgdGV4SW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBs
ZXZlbCwgR0xpbnQgaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0
LAorICAgICAgICAgICAgICAgICAgICAgICBHTGludCBib3JkZXIsIEdMZW51bSBmb3JtYXQsIEdM
ZW51bSB0eXBlLCBHTGludHB0ciBwYm9PZmZzZXQpOworICB1bmRlZmluZWQgdGV4SW1hZ2UyRChH
TGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkg
d2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICBHTGludCBib3Jk
ZXIsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICBU
ZXhJbWFnZVNvdXJjZSBzb3VyY2UpOyAvLyBNYXkgdGhyb3cgRE9NRXhjZXB0aW9uCisgIHVuZGVm
aW5lZCB0ZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5h
bGZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsCisgICAgICAgICAgICAgICAg
ICAgICAgIEdMaW50IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIFtBbGxvd1No
YXJlZF0gQXJyYXlCdWZmZXJWaWV3IHNyY0RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgIEdM
dWludCBzcmNPZmZzZXQpOworCisgIHVuZGVmaW5lZCB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJn
ZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTHNpemVpIHdp
ZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZv
cm1hdCwgR0xlbnVtIHR5cGUsIEdMaW50cHRyIHBib09mZnNldCk7CisgIHVuZGVmaW5lZCB0ZXhT
dWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGlu
dCB5b2Zmc2V0LCBHTHNpemVpIHdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNp
emVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIFRleEltYWdlU291cmNlIHNvdXJjZSk7IC8vIE1heSB0aHJvdyBET01FeGNlcHRp
b24KKyAgdW5kZWZpbmVkIHRleFN1YkltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWws
IEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsIEdMc2l6ZWkgd2lkdGgsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlw
ZSwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXcgc3JjRGF0YSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0x1aW50IHNyY09mZnNldCk7CisKKyAgdW5kZWZpbmVkIGNvbXByZXNzZWRU
ZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdMc2l6ZWkgd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNp
emVpIGhlaWdodCwgR0xpbnQgYm9yZGVyLCBHTHNpemVpIGltYWdlU2l6ZSwgR0xpbnRwdHIgb2Zm
c2V0KTsKKyAgdW5kZWZpbmVkIGNvbXByZXNzZWRUZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdM
aW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIGhlaWdodCwgR0xpbnQgYm9yZGVyLCBb
QWxsb3dTaGFyZWRdIEFycmF5QnVmZmVyVmlldyBzcmNEYXRhLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsIG9wdGlvbmFsIEdM
dWludCBzcmNMZW5ndGhPdmVycmlkZSA9IDApOworCisgIHVuZGVmaW5lZCBjb21wcmVzc2VkVGV4
U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xp
bnQgeW9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkg
d2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTHNpemVpIGltYWdlU2l6ZSwg
R0xpbnRwdHIgb2Zmc2V0KTsKKyAgdW5kZWZpbmVkIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKEdM
ZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXpl
aSBoZWlnaHQsIEdMZW51bSBmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVyVmlldyBzcmNEYXRhLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjTGVu
Z3RoT3ZlcnJpZGUgPSAwKTsKKworICB1bmRlZmluZWQgdW5pZm9ybTFmdihXZWJHTFVuaWZvcm1M
b2NhdGlvbj8gbG9jYXRpb24sIEZsb2F0MzJMaXN0IGRhdGEsIG9wdGlvbmFsIEdMdWludCBzcmNP
ZmZzZXQgPSAwLAorICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjTGVu
Z3RoID0gMCk7CisgIHVuZGVmaW5lZCB1bmlmb3JtMmZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBs
b2NhdGlvbiwgRmxvYXQzMkxpc3QgZGF0YSwgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAs
CisgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsK
KyAgdW5kZWZpbmVkIHVuaWZvcm0zZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBG
bG9hdDMyTGlzdCBkYXRhLCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOworICB1bmRlZmlu
ZWQgdW5pZm9ybTRmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEZsb2F0MzJMaXN0
IGRhdGEsIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAwLAorICAgICAgICAgICAgICAgICAg
ICAgICBvcHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoID0gMCk7CisKKyAgdW5kZWZpbmVkIHVuaWZv
cm0xaXYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBJbnQzMkxpc3QgZGF0YSwgb3B0
aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsCisgICAgICAgICAgICAgICAgICAgICAgIG9wdGlv
bmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKKyAgdW5kZWZpbmVkIHVuaWZvcm0yaXYoV2ViR0xV
bmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBJbnQzMkxpc3QgZGF0YSwgb3B0aW9uYWwgR0x1aW50
IHNyY09mZnNldCA9IDAsCisgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBz
cmNMZW5ndGggPSAwKTsKKyAgdW5kZWZpbmVkIHVuaWZvcm0zaXYoV2ViR0xVbmlmb3JtTG9jYXRp
b24/IGxvY2F0aW9uLCBJbnQzMkxpc3QgZGF0YSwgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9
IDAsCisgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAw
KTsKKyAgdW5kZWZpbmVkIHVuaWZvcm00aXYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9u
LCBJbnQzMkxpc3QgZGF0YSwgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsCisgICAgICAg
ICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKKworICB1bmRl
ZmluZWQgdW5pZm9ybU1hdHJpeDJmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdM
Ym9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0IGRhdGEsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAwLCBvcHRpb25hbCBHTHVpbnQg
c3JjTGVuZ3RoID0gMCk7CisgIHVuZGVmaW5lZCB1bmlmb3JtTWF0cml4M2Z2KFdlYkdMVW5pZm9y
bUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0
YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNl
dCA9IDAsIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKKyAgdW5kZWZpbmVkIHVuaWZv
cm1NYXRyaXg0ZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJh
bnNwb3NlLCBGbG9hdDMyTGlzdCBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
cHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9
IDApOwogCiAgIC8qIFJlYWRpbmcgYmFjayBwaXhlbHMgKi8KICAgLy8gV2ViR0wxOgotICB2b2lk
IHJlYWRQaXhlbHMoR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWln
aHQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLAotICAgICAgICAgICAgICAgICAgW0FsbG93
U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXc/IGRzdERhdGEpOworICB1bmRlZmluZWQgcmVhZFBpeGVs
cyhHTGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVt
IGZvcm1hdCwgR0xlbnVtIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgIFtBbGxvd1NoYXJl
ZF0gQXJyYXlCdWZmZXJWaWV3PyBkc3REYXRhKTsKICAgLy8gV2ViR0wyOgotICB2b2lkIHJlYWRQ
aXhlbHMoR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdM
ZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLAotICAgICAgICAgICAgICAgICAgR0xpbnRwdHIgb2Zm
c2V0KTsKLSAgdm9pZCByZWFkUGl4ZWxzKEdMaW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGgs
IEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwKLSAgICAgICAgICAg
ICAgICAgIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3IGRzdERhdGEsIEdMdWludCBkc3RP
ZmZzZXQpOworICB1bmRlZmluZWQgcmVhZFBpeGVscyhHTGludCB4LCBHTGludCB5LCBHTHNpemVp
IHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsCisgICAg
ICAgICAgICAgICAgICAgICAgIEdMaW50cHRyIG9mZnNldCk7CisgIHVuZGVmaW5lZCByZWFkUGl4
ZWxzKEdMaW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVu
dW0gZm9ybWF0LCBHTGVudW0gdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgW0FsbG93U2hh
cmVkXSBBcnJheUJ1ZmZlclZpZXcgZHN0RGF0YSwgR0x1aW50IGRzdE9mZnNldCk7CiB9OwogCiBb
RXhwb3NlZD0oV2luZG93LFdvcmtlcildCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvd2VieHItZ2FtZXBhZHMtbW9kdWxl
LmlkbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJm
YWNlcy93ZWJ4ci1nYW1lcGFkcy1tb2R1bGUuaWRsCmluZGV4IGY2MjNjNjMyYmNlZjIzNmE0ZDU4
NzI5MTQ3NzhkNmYyNTM3NWJhMTQuLmY2MzkyMWMwMTUwNjZkMTEzNTVjODk3YWZjMzAwODRiMTdl
MzI3NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaW50ZXJmYWNlcy93ZWJ4ci1nYW1lcGFkcy1tb2R1bGUuaWRsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy93ZWJ4ci1nYW1l
cGFkcy1tb2R1bGUuaWRsCkBAIC02LDkgKzYsMyBAQAogcGFydGlhbCBpbnRlcmZhY2UgWFJJbnB1
dFNvdXJjZSB7CiAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgR2FtZXBhZD8gZ2Ft
ZXBhZDsKIH07Ci0KLWVudW0gR2FtZXBhZE1hcHBpbmdUeXBlIHsKLSAgIiIsICAgICAgICAgICAg
Ly8gRGVmaW5lZCBpbiB0aGUgR2FtZXBhZCBBUEkKLSAgInN0YW5kYXJkIiwgICAgLy8gRGVmaW5l
ZCBpbiB0aGUgR2FtZXBhZCBBUEkKLSAgInhyLXN0YW5kYXJkIiwKLX07CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvd2Vi
eHItaGFuZC1pbnB1dC5pZGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ludGVyZmFjZXMvd2VieHItaGFuZC1pbnB1dC5pZGwKaW5kZXggNDMzNGQ5Njc5M2My
MTFkZWFmOGE4ODE2Yjk1YjNjOTQ0MTg2ZTJlZS4uZTg5MjEwY2Q1Njk1MDQ5Zjk0NTViZWU0MmYz
ODY5OTllMTVkYTViYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL3dlYnhyLWhhbmQtaW5wdXQuaWRsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy93ZWJ4ci1o
YW5kLWlucHV0LmlkbApAQCAtNyw0NiArNyw1MSBAQCBwYXJ0aWFsIGludGVyZmFjZSBYUklucHV0
U291cmNlIHsKICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUkhhbmQ/IGhhbmQ7CiB9OwogCitlbnVt
IFhSSGFuZEpvaW50IHsKKyAgIndyaXN0IiwKKworICAidGh1bWItbWV0YWNhcnBhbCIsCisgICJ0
aHVtYi1waGFsYW54LXByb3hpbWFsIiwKKyAgInRodW1iLXBoYWxhbngtZGlzdGFsIiwKKyAgInRo
dW1iLXRpcCIsCisKKyAgImluZGV4LWZpbmdlci1tZXRhY2FycGFsIiwKKyAgImluZGV4LWZpbmdl
ci1waGFsYW54LXByb3hpbWFsIiwKKyAgImluZGV4LWZpbmdlci1waGFsYW54LWludGVybWVkaWF0
ZSIsCisgICJpbmRleC1maW5nZXItcGhhbGFueC1kaXN0YWwiLAorICAiaW5kZXgtZmluZ2VyLXRp
cCIsCisKKyAgIm1pZGRsZS1maW5nZXItbWV0YWNhcnBhbCIsCisgICJtaWRkbGUtZmluZ2VyLXBo
YWxhbngtcHJveGltYWwiLAorICAibWlkZGxlLWZpbmdlci1waGFsYW54LWludGVybWVkaWF0ZSIs
CisgICJtaWRkbGUtZmluZ2VyLXBoYWxhbngtZGlzdGFsIiwKKyAgIm1pZGRsZS1maW5nZXItdGlw
IiwKKworICAicmluZy1maW5nZXItbWV0YWNhcnBhbCIsCisgICJyaW5nLWZpbmdlci1waGFsYW54
LXByb3hpbWFsIiwKKyAgInJpbmctZmluZ2VyLXBoYWxhbngtaW50ZXJtZWRpYXRlIiwKKyAgInJp
bmctZmluZ2VyLXBoYWxhbngtZGlzdGFsIiwKKyAgInJpbmctZmluZ2VyLXRpcCIsCisKKyAgInBp
bmt5LWZpbmdlci1tZXRhY2FycGFsIiwKKyAgInBpbmt5LWZpbmdlci1waGFsYW54LXByb3hpbWFs
IiwKKyAgInBpbmt5LWZpbmdlci1waGFsYW54LWludGVybWVkaWF0ZSIsCisgICJwaW5reS1maW5n
ZXItcGhhbGFueC1kaXN0YWwiLAorICAicGlua3ktZmluZ2VyLXRpcCIKK307CisKIFtFeHBvc2Vk
PVdpbmRvd10KIGludGVyZmFjZSBYUkhhbmQgewotICAgIGl0ZXJhYmxlPFhSSm9pbnRTcGFjZT47
Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwotICAgIGdldHRl
ciBYUkpvaW50U3BhY2Ugam9pbnQodW5zaWduZWQgbG9uZyBqb2ludEluZGV4KTsKLQotICAgIGNv
bnN0IHVuc2lnbmVkIGxvbmcgV1JJU1QgPSAwOwotCi0gICAgY29uc3QgdW5zaWduZWQgbG9uZyBU
SFVNQl9NRVRBQ0FSUEFMID0gMTsKLSAgICBjb25zdCB1bnNpZ25lZCBsb25nIFRIVU1CX1BIQUxB
TlhfUFJPWElNQUwgPSAyOwotICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgVEhVTUJfUEhBTEFOWF9E
SVNUQUwgPSAzOwotICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgVEhVTUJfUEhBTEFOWF9USVAgPSA0
OwotCi0gICAgY29uc3QgdW5zaWduZWQgbG9uZyBJTkRFWF9NRVRBQ0FSUEFMID0gNTsKLSAgICBj
b25zdCB1bnNpZ25lZCBsb25nIElOREVYX1BIQUxBTlhfUFJPWElNQUwgPSA2OwotICAgIGNvbnN0
IHVuc2lnbmVkIGxvbmcgSU5ERVhfUEhBTEFOWF9JTlRFUk1FRElBVEUgPSA3OwotICAgIGNvbnN0
IHVuc2lnbmVkIGxvbmcgSU5ERVhfUEhBTEFOWF9ESVNUQUwgPSA4OwotICAgIGNvbnN0IHVuc2ln
bmVkIGxvbmcgSU5ERVhfUEhBTEFOWF9USVAgPSA5OwotCi0gICAgY29uc3QgdW5zaWduZWQgbG9u
ZyBNSURETEVfTUVUQUNBUlBBTCA9IDEwOwotICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgTUlERExF
X1BIQUxBTlhfUFJPWElNQUwgPSAxMTsKLSAgICBjb25zdCB1bnNpZ25lZCBsb25nIE1JRERMRV9Q
SEFMQU5YX0lOVEVSTUVESUFURSA9IDEyOwotICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgTUlERExF
X1BIQUxBTlhfRElTVEFMID0gMTM7Ci0gICAgY29uc3QgdW5zaWduZWQgbG9uZyBNSURETEVfUEhB
TEFOWF9USVAgPSAxNDsKLQotICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgUklOR19NRVRBQ0FSUEFM
ID0gMTU7Ci0gICAgY29uc3QgdW5zaWduZWQgbG9uZyBSSU5HX1BIQUxBTlhfUFJPWElNQUwgPSAx
NjsKLSAgICBjb25zdCB1bnNpZ25lZCBsb25nIFJJTkdfUEhBTEFOWF9JTlRFUk1FRElBVEUgPSAx
NzsKLSAgICBjb25zdCB1bnNpZ25lZCBsb25nIFJJTkdfUEhBTEFOWF9ESVNUQUwgPSAxODsKLSAg
ICBjb25zdCB1bnNpZ25lZCBsb25nIFJJTkdfUEhBTEFOWF9USVAgPSAxOTsKLQotICAgIGNvbnN0
IHVuc2lnbmVkIGxvbmcgTElUVExFX01FVEFDQVJQQUwgPSAyMDsKLSAgICBjb25zdCB1bnNpZ25l
ZCBsb25nIExJVFRMRV9QSEFMQU5YX1BST1hJTUFMID0gMjE7Ci0gICAgY29uc3QgdW5zaWduZWQg
bG9uZyBMSVRUTEVfUEhBTEFOWF9JTlRFUk1FRElBVEUgPSAyMjsKLSAgICBjb25zdCB1bnNpZ25l
ZCBsb25nIExJVFRMRV9QSEFMQU5YX0RJU1RBTCA9IDIzOwotICAgIGNvbnN0IHVuc2lnbmVkIGxv
bmcgTElUVExFX1BIQUxBTlhfVElQID0gMjQ7CisgICAgaXRlcmFibGU8WFJIYW5kSm9pbnQsIFhS
Sm9pbnRTcGFjZT47CisKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzaXpl
OworICAgIFhSSm9pbnRTcGFjZSBnZXQoWFJIYW5kSm9pbnQga2V5KTsKIH07CiAKIFtFeHBvc2Vk
PVdpbmRvd10KLWludGVyZmFjZSBYUkpvaW50U3BhY2U6IFhSU3BhY2Uge307CitpbnRlcmZhY2Ug
WFJKb2ludFNwYWNlOiBYUlNwYWNlIHsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIFhSSGFuZEpvaW50
IGpvaW50TmFtZTsKK307CiAKIHBhcnRpYWwgaW50ZXJmYWNlIFhSRnJhbWUgewogICAgIFhSSm9p
bnRQb3NlPyBnZXRKb2ludFBvc2UoWFJKb2ludFNwYWNlIGpvaW50LCBYUlNwYWNlIGJhc2VTcGFj
ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ludGVyZmFjZXMvd2VieHIuaWRsIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL3dlYnhyLmlkbAppbmRleCBjMWI3MTc1NzY1ZDc4OGI5
OTgxZDViZDBhNjY0MGI0NmNhZmI3Y2IyLi4zZTViNDMyNDY4NjQ4NjA2YzA0ZDExM2NjYjI5ZGRi
NjQyODcyYjVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ludGVyZmFjZXMvd2VieHIuaWRsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy93ZWJ4ci5pZGwKQEAgLTE0MSw2ICsx
NDEsOSBAQCBpbnRlcmZhY2UgWFJSaWdpZFRyYW5zZm9ybSB7CiAKIFtTZWN1cmVDb250ZXh0LCBF
eHBvc2VkPVdpbmRvd10gaW50ZXJmYWNlIFhSUG9zZSB7CiAgIFtTYW1lT2JqZWN0XSByZWFkb25s
eSBhdHRyaWJ1dGUgWFJSaWdpZFRyYW5zZm9ybSB0cmFuc2Zvcm07CisgIFtTYW1lT2JqZWN0XSBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NUG9pbnRSZWFkT25seT8gbGluZWFyVmVsb2NpdHk7CisgIFtT
YW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NUG9pbnRSZWFkT25seT8gYW5ndWxhclZl
bG9jaXR5OworCiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGVtdWxhdGVkUG9zaXRpb247
CiB9OwogCkBAIC0xOTksNiArMjAyLDcgQEAgaW50ZXJmYWNlIFhSV2ViR0xMYXllcjogWFJMYXll
ciB7CiAgIC8vIEF0dHJpYnV0ZXMKICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gYW50aWFs
aWFzOwogICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpZ25vcmVEZXB0aFZhbHVlczsKKyAg
YXR0cmlidXRlIGZsb2F0PyBmaXhlZEZvdmVhdGlvbjsKIAogICBbU2FtZU9iamVjdF0gcmVhZG9u
bHkgYXR0cmlidXRlIFdlYkdMRnJhbWVidWZmZXI/IGZyYW1lYnVmZmVyOwogICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBmcmFtZWJ1ZmZlcldpZHRoOwpAQCAtMjY4LDYgKzI3Miwx
MCBAQCBkaWN0aW9uYXJ5IFhSUmVmZXJlbmNlU3BhY2VFdmVudEluaXQgOiBFdmVudEluaXQgewog
ICBYUlJpZ2lkVHJhbnNmb3JtPyB0cmFuc2Zvcm0gPSBudWxsOwogfTsKIAorZGljdGlvbmFyeSBY
UlNlc3Npb25TdXBwb3J0ZWRQZXJtaXNzaW9uRGVzY3JpcHRvcjogUGVybWlzc2lvbkRlc2NyaXB0
b3IgeworICBYUlNlc3Npb25Nb2RlIG1vZGU7Cit9OworCiBkaWN0aW9uYXJ5IFhSUGVybWlzc2lv
bkRlc2NyaXB0b3I6IFBlcm1pc3Npb25EZXNjcmlwdG9yIHsKICAgWFJTZXNzaW9uTW9kZSBtb2Rl
OwogICBzZXF1ZW5jZTxhbnk+IHJlcXVpcmVkRmVhdHVyZXM7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhc2Vzc2lvbi9pZGxoYXJu
ZXNzLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL21lZGlhc2Vzc2lvbi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQK
aW5kZXggZmVjNmQ2NDM4OWVkZTFjMjBkNGYyNjIzNTdmMTI2MmM3MTFhMDEzNS4uZjRiMzE1OWRm
NThmZTU5OTI5MTJhODkzNTc0ZWIxN2RjZTYxOTM3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYXNlc3Npb24vaWRsaGFybmVzcy53
aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9uL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApA
QCAtMjIsNiArMjIsOCBAQCBQQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBt
ZXRhZGF0YQogUEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcGxheWJhY2tT
dGF0ZQogUEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0QWN0aW9uSGFu
ZGxlcihNZWRpYVNlc3Npb25BY3Rpb24sIE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI/KQogUEFT
UyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0UG9zaXRpb25TdGF0ZShvcHRp
b25hbCBNZWRpYVBvc2l0aW9uU3RhdGUpCitGQUlMIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IG9w
ZXJhdGlvbiBzZXRNaWNyb3Bob25lQWN0aXZlKGJvb2xlYW4pIGFzc2VydF9vd25fcHJvcGVydHk6
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24g
ZXhwZWN0ZWQgcHJvcGVydHkgInNldE1pY3JvcGhvbmVBY3RpdmUiIG1pc3NpbmcKK0ZBSUwgTWVk
aWFTZXNzaW9uIGludGVyZmFjZTogb3BlcmF0aW9uIHNldENhbWVyYUFjdGl2ZShib29sZWFuKSBh
c3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5v
bi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJzZXRDYW1lcmFBY3RpdmUiIG1p
c3NpbmcKIFBBU1MgTWVkaWFTZXNzaW9uIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbgogUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgbmF2aWdhdG9yLm1l
ZGlhU2Vzc2lvbgogUEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBuYXZpZ2F0b3IubWVkaWFT
ZXNzaW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibWV0YWRhdGEiIHdpdGggdGhlIHByb3BlciB0
eXBlCkBAIC0zMCw2ICszMiwxMCBAQCBQQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IG5hdmln
YXRvci5tZWRpYVNlc3Npb24gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZXRBYwogUEFTUyBNZWRp
YVNlc3Npb24gaW50ZXJmYWNlOiBjYWxsaW5nIHNldEFjdGlvbkhhbmRsZXIoTWVkaWFTZXNzaW9u
QWN0aW9uLCBNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyPykgb24gbmF2aWdhdG9yLm1lZGlhU2Vz
c2lvbiB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yCiBQQVNTIE1l
ZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IG5hdmlnYXRvci5tZWRpYVNlc3Npb24gbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJzZXRQb3NpdGlvblN0YXRlKG9wdGlvbmFsIE1lZGlhUG9zaXRpb25TdGF0ZSki
IHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGNhbGxp
bmcgc2V0UG9zaXRpb25TdGF0ZShvcHRpb25hbCBNZWRpYVBvc2l0aW9uU3RhdGUpIG9uIG5hdmln
YXRvci5tZWRpYVNlc3Npb24gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvcgorRkFJTCBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBuYXZpZ2F0b3IubWVkaWFTZXNzaW9u
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2V0TWljcm9waG9uZUFjdGl2ZShib29sZWFuKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAic2V0TWljcm9waG9u
ZUFjdGl2ZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBNZWRpYVNlc3Npb24g
aW50ZXJmYWNlOiBjYWxsaW5nIHNldE1pY3JvcGhvbmVBY3RpdmUoYm9vbGVhbikgb24gbmF2aWdh
dG9yLm1lZGlhU2Vzc2lvbiB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgInNldE1pY3JvcGhvbmVBY3RpdmUiIG5vdCBm
b3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgTWVkaWFTZXNzaW9uIGludGVyZmFjZTogbmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbiBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNldENhbWVyYUFjdGl2
ZShib29sZWFuKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0
eSAic2V0Q2FtZXJhQWN0aXZlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIE1l
ZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGNhbGxpbmcgc2V0Q2FtZXJhQWN0aXZlKGJvb2xlYW4pIG9u
IG5hdmlnYXRvci5tZWRpYVNlc3Npb24gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJzZXRDYW1lcmFBY3RpdmUiIG5v
dCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KIFBBU1MgTWVkaWFNZXRhZGF0YSBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIE1lZGlh
TWV0YWRhdGEgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgTWVkaWFNZXRhZGF0YSBpbnRl
cmZhY2Ugb2JqZWN0IG5hbWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL25v
dGlmaWNhdGlvbnMvaWRsaGFybmVzcy5odHRwcy5hbnktZXhwZWN0ZWQudHh0CmluZGV4IGYwZmVj
OTIxNjM5YTI0OGNlYjkxYWU1ZDRkOTJmNTY3NDQzYTA4MjQuLjM1ODk5NWQ2ZWY1ZWQwYjRkZDNm
NDQ2NTAyNzUyMTZmODkxMGY4M2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9pZGxoYXJuZXNzLmh0dHBzLmFueS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9ub3RpZmljYXRpb25zL2lkbGhhcm5lc3MuaHR0cHMuYW55LWV4cGVjdGVkLnR4dApAQCAt
NjQsNyArNjQsNCBAQCBQQVNTIE5vdGlmaWNhdGlvbiBpbnRlcmZhY2U6IG5vdGlmaWNhdGlvbiBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImNsb3NlKCkiIHdpdGggdAogUEFTUyBOb3RpZmljYXRpb25F
dmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0CiBGQUlMIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24g
c2hvd05vdGlmaWNhdGlvbihET01TdHJpbmcsIG9wdGlvbmFsIE5vdGlmaWNhdGlvbk9wdGlvbnMp
IGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcg
bm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgInNob3dOb3RpZmljYXRpb24i
IG1pc3NpbmcKIEZBSUwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBnZXROb3RpZmljYXRpb25zKG9wdGlvbmFsIEdldE5vdGlmaWNhdGlvbk9wdGlvbnMpIGFz
c2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9u
LXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImdldE5vdGlmaWNhdGlvbnMiIG1p
c3NpbmcKLVBBU1MgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKLVBBU1MgRXh0ZW5kYWJsZUV2ZW50
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QK
LVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL25vdGlmaWNhdGlvbnMvaWRsaGFybmVzcy5odHRwcy5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9pZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0CmluZGV4IDU5ODE1YTQ0M2Y2NzE3NDg5Y2M3OWRkNmMzNjYzZTQzZTgwOTkyZWUu
LmZlZjg0YWZjMzU0OWFiMGMzZWMwMTFmZGM0NTRkNWRlZGI1Mjg3OTkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9p
ZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9pZGxoYXJuZXNz
Lmh0dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC02Myw2ICs2Myw0IEBAIEZBSUwgTm90
aWZpY2F0aW9uIGludGVyZmFjZTogbm90aWZpY2F0aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
Y2xvc2UoKSIgd2l0aCB0CiBQQVNTIE5vdGlmaWNhdGlvbkV2ZW50IGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIEZBSUwgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzaG93Tm90aWZpY2F0aW9uKERPTVN0
cmluZywgb3B0aW9uYWwgTm90aWZpY2F0aW9uT3B0aW9ucykgYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
biIgZXhwZWN0ZWQgcHJvcGVydHkgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24iIG1pc3NpbmcK
IEZBSUwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRO
b3RpZmljYXRpb25zKG9wdGlvbmFsIEdldE5vdGlmaWNhdGlvbk9wdGlvbnMpIGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
IiBtaXNzaW5nCi1QQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIEV4dGVuZGFibGVF
dmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcG9pbnRlcmV2ZW50cy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVudHMvaWRs
aGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IGY3NmU2OTEyZDQ3OTkwNmY3Yjk5NWM5
MzY5ZTU3Y2I2NzkwNGU3ZjAuLjA3MzIyN2QzNjViYzcyZTM5NTNkZWU0NjdmODkwNmRmMjVhNjRj
NWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcG9pbnRlcmV2ZW50cy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzL2lk
bGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMTQsOSArMTQsNiBAQCBQQVNTIFBhcnRp
YWwgaW50ZXJmYWNlIERvY3VtZW50WzJdOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQ
YXJ0aWFsIGludGVyZmFjZSBXaW5kb3c6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERv
Y3VtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxl
cnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIE5vbkVs
ZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBp
bmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVu
dCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVu
dEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50
IGluY2x1ZGVzIEVsZW1lbnRDb250ZW50RWRpdGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CkBAIC0yNCw5ICsyMSw2IEBAIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZHRWxl
bWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEdsb2Jh
bEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNs
dWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBX
aW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKLVBBU1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9u
U3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV2luZG93IGluY2x1ZGVzIFdp
bmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9y
IGluY2x1ZGVzIE5hdmlnYXRvcklEOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZp
Z2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yTGFuZ3VhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JPbkxpbmU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCkBAIC0zNCwxMCArMjgsMTYgQEAgUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2
aWdhdG9yQ29udGVudFV0aWxzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0
b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29va2llczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvclBsdWdpbnM6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdh
cmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRp
b25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXaW5kb3cgaW5j
bHVkZXMgV2luZG93U2Vzc2lvblN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNT
IFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dMb2NhbFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgTm9uRG9jdW1lbnRU
eXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1
ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNs
dWRlcyBTbG90dGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGlu
Y2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
UG9pbnRlckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QKIFBBU1MgUG9pbnRlckV2ZW50IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCiBQ
QVNTIFBvaW50ZXJFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL2NoZWNrLWxh
eW91dC10aC5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2VzL2NoZWNrLWxheW91dC10aC5qcwppbmRleCA1ZDQyMzZkMWNlZGIwZTIwZGJjMWJi
MzA3MjJjYjBlOWUxNjBmMTEwLi5hNTA3YThkZmQ3ZjE5N2NiZjNmZjMwNzJlN2Y3MjkxODQ3Y2Q2
YWEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc291cmNlcy9jaGVjay1sYXlvdXQtdGguanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LXRoLmpzCkBA
IC0zNiw2ICszNiw3IEBAIGZ1bmN0aW9uIGNoZWNrRGF0YUtleXMobm9kZSkgewogICAgICAgICAi
ZGF0YS1leHBlY3RlZC1zY3JvbGwtd2lkdGgiLAogICAgICAgICAiZGF0YS1leHBlY3RlZC1zY3Jv
bGwtaGVpZ2h0IiwKICAgICAgICAgImRhdGEtZXhwZWN0ZWQtYm91bmRpbmctY2xpZW50LXJlY3Qt
d2lkdGgiLAorICAgICAgICAiZGF0YS1leHBlY3RlZC1ib3VuZGluZy1jbGllbnQtcmVjdC1oZWln
aHQiLAogICAgICAgICAiZGF0YS10b3RhbC14IiwKICAgICAgICAgImRhdGEtdG90YWwteSIsCiAg
ICAgICAgICJkYXRhLWV4cGVjdGVkLWRpc3BsYXkiLApAQCAtMTA3LDYgKzEwOCwxMSBAQCBmdW5j
dGlvbiBjaGVja0V4cGVjdGVkVmFsdWVzKHQsIG5vZGUsIHByZWZpeCkKICAgICAgICAgYXNzZXJ0
X3RvbGVyYW5jZShub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLCBleHBlY3RlZFdp
ZHRoLCBwcmVmaXggKyAiZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiKTsKICAgICB9CiAK
KyAgICB2YXIgZXhwZWN0ZWRIZWlnaHQgPSBjaGVja0F0dHJpYnV0ZShvdXRwdXQsIG5vZGUsICJk
YXRhLWV4cGVjdGVkLWJvdW5kaW5nLWNsaWVudC1yZWN0LWhlaWdodCIpOworICAgIGlmIChleHBl
Y3RlZEhlaWdodCkgeworICAgICAgICBhc3NlcnRfdG9sZXJhbmNlKG5vZGUuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCkuaGVpZ2h0LCBleHBlY3RlZEhlaWdodCwgcHJlZml4ICsgImdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpLmhlaWdodCIpOworICAgIH0KKwogICAgIHZhciBleHBlY3RlZE9mZnNldCA9
IGNoZWNrQXR0cmlidXRlKG91dHB1dCwgbm9kZSwgImRhdGEtdG90YWwteCIpOwogICAgIGlmIChl
eHBlY3RlZE9mZnNldCkgewogICAgICAgICB2YXIgdG90YWxMZWZ0ID0gbm9kZS5jbGllbnRMZWZ0
ICsgbm9kZS5vZmZzZXRMZWZ0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL2lkbGhhcm5lc3MuanMK
aW5kZXggNWE5N2IyNzNmMmJlZDE5NmQ2ZGRkODVjNTU5NmRlY2ZmMWJmODdhZS4uNmFlYzAyZTNh
YmUwNmIyMGQxMWJiNDZiZmQ1Yjc0MjMyNjg1MWM4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy9pZGxoYXJuZXNzLmpzCkBAIC0xLDEzICsxLDMgQEAKLS8qCi1EaXN0cmlidXRlZCB1bmRlciBi
b3RoIHRoZSBXM0MgVGVzdCBTdWl0ZSBMaWNlbnNlIFsxXSBhbmQgdGhlIFczQwotMy1jbGF1c2Ug
QlNEIExpY2Vuc2UgWzJdLiBUbyBjb250cmlidXRlIHRvIGEgVzNDIFRlc3QgU3VpdGUsIHNlZSB0
aGUKLXBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDA4LzA0LXRlc3RzdWl0ZS1saWNlbnNlCi1bMl0g
aHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDA4LzAzLWJzZC1saWNlbnNlCi1b
M10gaHR0cDovL3d3dy53My5vcmcvMjAwNC8xMC8yNy10ZXN0Y2FzZXMKLSovCi0KIC8qIEZvciB1
c2VyIGRvY3VtZW50YXRpb24gc2VlIGRvY3MvX3dyaXRpbmctdGVzdHMvaWRsaGFybmVzcy5tZCAq
LwogCiAvKioKQEAgLTEwMSw2ICs5MSwxNiBAQCBmdW5jdGlvbiBnbG9iYWxPZihmdW5jKQogICAg
IHJldHVybiBzZWxmOwogfQogCisvLyBodHRwczovL2VzZGlzY3Vzcy5vcmcvdG9waWMvaXNjb25z
dHJ1Y3RvciNjb250ZW50LTExCitmdW5jdGlvbiBpc0NvbnN0cnVjdG9yKG8pIHsKKyAgICB0cnkg
eworICAgICAgICBuZXcgKG5ldyBQcm94eShvLCB7Y29uc3RydWN0OiAoKSA9PiAoe30pfSkpOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KK30KKwogZnVuY3Rpb24gdGhyb3dPclJlamVjdChhX3Rlc3QsIG9wZXJhdGlv
biwgZm4sIG9iaiwgYXJncywgbWVzc2FnZSwgY2IpCiB7CiAgICAgaWYgKG9wZXJhdGlvbi5pZGxU
eXBlLmdlbmVyaWMgIT09ICJQcm9taXNlIikgewpAQCAtMTMxLDE3ICsxMzEsNiBAQCBmdW5jdGlv
biBhd2FpdE5DYWxsYmFja3MobiwgY2IsIGN0eCkKICAgICB9OwogfQogCi12YXIgZnJvdW5kID0K
LShmdW5jdGlvbigpewotICAgIGlmIChNYXRoLmZyb3VuZCkgcmV0dXJuIE1hdGguZnJvdW5kOwot
Ci0gICAgdmFyIGFyciA9IG5ldyBGbG9hdDMyQXJyYXkoMSk7Ci0gICAgcmV0dXJuIGZ1bmN0aW9u
IGZyb3VuZChuKSB7Ci0gICAgICAgIGFyclswXSA9IG47Ci0gICAgICAgIHJldHVybiBhcnJbMF07
Ci0gICAgfTsKLX0pKCk7Ci0KIC8vLyBJZGxIYXJuZXNzRXJyb3IgLy8vCiAvLyBFbnRyeSBwb2lu
dAogc2VsZi5JZGxIYXJuZXNzRXJyb3IgPSBmdW5jdGlvbihtZXNzYWdlKQpAQCAtMTg1LDMxICsx
NzQsMTUgQEAgc2VsZi5JZGxBcnJheSA9IGZ1bmN0aW9uKCkKIAogICAgIC8qKgogICAgICAqIFdo
ZW4gYWRkaW5nIG11bHRpcGxlIGNvbGxlY3Rpb25zIG9mIElETHMgb25lIGF0IGEgdGltZSwgYW4g
ZWFybGllciBvbmUKLSAgICAgKiBtaWdodCBjb250YWluIGEgcGFydGlhbCBpbnRlcmZhY2Ugb3Ig
aW1wbGVtZW50cyBzdGF0ZW1lbnQgdGhhdCBkZXBlbmRzCisgICAgICogbWlnaHQgY29udGFpbiBh
IHBhcnRpYWwgaW50ZXJmYWNlIG9yIGluY2x1ZGVzIHN0YXRlbWVudCB0aGF0IGRlcGVuZHMKICAg
ICAgKiBvbiBhIGxhdGVyIG9uZS4gIFNhdmUgdGhlc2UgdXAgYW5kIGhhbmRsZSB0aGVtIHJpZ2h0
IGJlZm9yZSB3ZSBydW4KICAgICAgKiB0ZXN0cy4KICAgICAgKgotICAgICAqIC5wYXJ0aWFscyBp
cyBzaW1wbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyBmcm9tIFdlYklETFBhcnNlci5qcycKLSAgICAg
KiAicGFydGlhbGludGVyZmFjZSIgcHJvZHVjdGlvbi4gIC5pbXBsZW1lbnRzIG1hcHMgc3RyaW5n
cyB0byBhcnJheXMgb2YKLSAgICAgKiBzdHJpbmdzLCBzdWNoIHRoYXQKLSAgICAgKgotICAgICAq
ICAgQSBpbXBsZW1lbnRzIEI7Ci0gICAgICogICBBIGltcGxlbWVudHMgQzsKLSAgICAgKiAgIEQg
aW1wbGVtZW50cyBFOwotICAgICAqCi0gICAgICogcmVzdWx0cyBpbiB0aGlzWyJpbXBsZW1lbnRz
Il0gPSB7IEE6IFsiQiIsICJDIl0sIEQ6IFsiRSJdIH0uCi0gICAgICoKLSAgICAgKiBTaW1pbGFy
bHksCi0gICAgICoKLSAgICAgKiAgIGludGVyZmFjZSBBIDogQiB7fTsKLSAgICAgKiAgIGludGVy
ZmFjZSBCIDogQyB7fTsKLSAgICAgKgotICAgICAqIHJlc3VsdHMgaW4gdGhpc1siaW5oZXJpdGFu
Y2UiXSA9IHsgQTogIkIiLCBCOiAiQyIgfQorICAgICAqIEJvdGggdGhpcy5wYXJ0aWFscyBhbmQg
dGhpcy5pbmNsdWRlcyB3aWxsIGJlIHRoZSBvYmplY3RzIGFzIHBhcnNlZCBieQorICAgICAqIFdl
YklETFBhcnNlci5qcywgbm90IHdyYXBwZWQgaW4gSWRsSW50ZXJmYWNlIG9yIHNpbWlsYXIuCiAg
ICAgICovCiAgICAgdGhpcy5wYXJ0aWFscyA9IFtdOwotICAgIHRoaXNbImltcGxlbWVudHMiXSA9
IHt9OwotICAgIHRoaXNbImluY2x1ZGVzIl0gPSB7fTsKLSAgICB0aGlzWyJpbmhlcml0YW5jZSJd
ID0ge307CisgICAgdGhpcy5pbmNsdWRlcyA9IFtdOwogCiAgICAgLyoqCiAgICAgICogUmVjb3Jk
IG9mIHNraXBwZWQgSURMIGl0ZW1zLCBpbiBjYXNlIHdlIGxhdGVyIHJlYWxpemUgdGhhdCB0aGV5
IGFyZSBhCkBAIC0yNjEsMTUgKzIzNCwxNSBAQCBJZGxBcnJheS5wcm90b3R5cGUuaW50ZXJuYWxf
YWRkX2RlcGVuZGVuY3lfaWRscyA9IGZ1bmN0aW9uKHBhcnNlZF9pZGxzLCBvcHRpb25zKQogICAg
IGNvbnN0IG5ld19vcHRpb25zID0geyBvbmx5OiBbXSB9CiAKICAgICBjb25zdCBhbGxfZGVwcyA9
IG5ldyBTZXQoKTsKLSAgICBPYmplY3QudmFsdWVzKHRoaXMuaW5oZXJpdGFuY2UpLmZvckVhY2go
diA9PiBhbGxfZGVwcy5hZGQodikpOwotICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuaW1wbGVtZW50
cykuZm9yRWFjaCgoW2ssIHZdKSA9PiB7Ci0gICAgICAgIGFsbF9kZXBzLmFkZChrKTsKLSAgICAg
ICAgYWxsX2RlcHMuYWRkKHYpOworICAgIE9iamVjdC52YWx1ZXModGhpcy5tZW1iZXJzKS5mb3JF
YWNoKHYgPT4geworICAgICAgICBpZiAodi5iYXNlKSB7CisgICAgICAgICAgICBhbGxfZGVwcy5h
ZGQodi5iYXNlKTsKKyAgICAgICAgfQogICAgIH0pOwotICAgIC8vIE5PVEU6IElmICdBIGluY2x1
ZGVzIEInIGZvciBCIHRoYXQgd2UgY2FyZSBhYm91dCwgdGhlbiBBIGlzIGFsc28gYSBkZXAuCi0g
ICAgT2JqZWN0LmtleXModGhpcy5pbmNsdWRlcykuZm9yRWFjaChrID0+IHsKLSAgICAgICAgYWxs
X2RlcHMuYWRkKGspOwotICAgICAgICB0aGlzLmluY2x1ZGVzW2tdLmZvckVhY2godiA9PiBhbGxf
ZGVwcy5hZGQodikpOworICAgIC8vIEFkZCBib3RoICdBJyBhbmQgJ0InIGZvciBlYWNoICdBIGlu
Y2x1ZGVzIEInIGVudHJ5LgorICAgIHRoaXMuaW5jbHVkZXMuZm9yRWFjaChpID0+IHsKKyAgICAg
ICAgYWxsX2RlcHMuYWRkKGkudGFyZ2V0KTsKKyAgICAgICAgYWxsX2RlcHMuYWRkKGkuaW5jbHVk
ZXMpOwogICAgIH0pOwogICAgIHRoaXMucGFydGlhbHMuZm9yRWFjaChwID0+IGFsbF9kZXBzLmFk
ZChwLm5hbWUpKTsKICAgICAvLyBBZGQgJ1R5cGVPZlR5cGUnIGZvciBlYWNoICJ0eXBlZGVmIFR5
cGVPZlR5cGUgTXlUeXBlOyIgZW50cnkuCkBAIC0zMjgsOSArMzAxLDYgQEAgSWRsQXJyYXkucHJv
dG90eXBlLmludGVybmFsX2FkZF9kZXBlbmRlbmN5X2lkbHMgPSBmdW5jdGlvbihwYXJzZWRfaWRs
cywgb3B0aW9ucykKICAgICAgICAgdmFyIGRlcHMgPSBbXTsKICAgICAgICAgaWYgKHBhcnNlZC5u
YW1lKSB7CiAgICAgICAgICAgICBkZXBzLnB1c2gocGFyc2VkLm5hbWUpOwotICAgICAgICB9IGVs
c2UgaWYgKHBhcnNlZC50eXBlID09PSAiaW1wbGVtZW50cyIpIHsKLSAgICAgICAgICAgIGRlcHMu
cHVzaChwYXJzZWQudGFyZ2V0KTsKLSAgICAgICAgICAgIGRlcHMucHVzaChwYXJzZWQuaW1wbGVt
ZW50cyk7CiAgICAgICAgIH0gZWxzZSBpZiAocGFyc2VkLnR5cGUgPT09ICJpbmNsdWRlcyIpIHsK
ICAgICAgICAgICAgIGRlcHMucHVzaChwYXJzZWQudGFyZ2V0KTsKICAgICAgICAgICAgIGRlcHMu
cHVzaChwYXJzZWQuaW5jbHVkZXMpOwpAQCAtMzU4LDcgKzMyOCw3IEBAIElkbEFycmF5LnByb3Rv
dHlwZS5pbnRlcm5hbF9hZGRfZGVwZW5kZW5jeV9pZGxzID0gZnVuY3Rpb24ocGFyc2VkX2lkbHMs
IG9wdGlvbnMpCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGNvbnN0IGZvbGxvd191cCA9
IG5ldyBTZXQoKTsKLSAgICAgICAgICAgIGZvciAoY29uc3QgZGVwX3R5cGUgb2YgWyJpbmhlcml0
YW5jZSIsICJpbXBsZW1lbnRzIiwgImluY2x1ZGVzIl0pIHsKKyAgICAgICAgICAgIGZvciAoY29u
c3QgZGVwX3R5cGUgb2YgWyJpbmhlcml0YW5jZSIsICJpbmNsdWRlcyJdKSB7CiAgICAgICAgICAg
ICAgICAgaWYgKHBhcnNlZFtkZXBfdHlwZV0pIHsKICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
aW5oZXJpdGluZyA9IHBhcnNlZFtkZXBfdHlwZV07CiAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGluaGVyaXRvciA9IHBhcnNlZC5uYW1lIHx8IHBhcnNlZC50YXJnZXQ7CkBAIC00NDcsMzEgKzQx
NywxMyBAQCBJZGxBcnJheS5wcm90b3R5cGUuaW50ZXJuYWxfYWRkX2lkbHMgPSBmdW5jdGlvbihw
YXJzZWRfaWRscywgb3B0aW9ucykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0g
ICAgICAgIGlmIChwYXJzZWRfaWRsLnR5cGUgPT0gImltcGxlbWVudHMiKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBpZiAoc2hvdWxkX3NraXAocGFyc2VkX2lkbC50YXJnZXQpKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGlmICghKHBhcnNlZF9pZGwudGFyZ2V0IGluIHRoaXNbImltcGxlbWVudHMiXSkpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgdGhpc1siaW1wbGVtZW50cyJdW3BhcnNlZF9pZGwudGFy
Z2V0XSA9IFtdOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdGhpc1siaW1wbGVtZW50cyJd
W3BhcnNlZF9pZGwudGFyZ2V0XS5wdXNoKHBhcnNlZF9pZGxbImltcGxlbWVudHMiXSk7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQogICAgICAgICBpZiAocGFyc2VkX2lkbC50eXBl
ID09ICJpbmNsdWRlcyIpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChzaG91bGRfc2tpcChw
YXJzZWRfaWRsLnRhcmdldCkpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCEocGFyc2VkX2lkbC50YXJnZXQgaW4g
dGhpc1siaW5jbHVkZXMiXSkpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdGhpc1si
aW5jbHVkZXMiXVtwYXJzZWRfaWRsLnRhcmdldF0gPSBbXTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHRoaXNbImluY2x1ZGVzIl1bcGFyc2VkX2lkbC50YXJnZXRdLnB1c2gocGFyc2VkX2lk
bFsiaW5jbHVkZXMiXSk7CisgICAgICAgICAgICB0aGlzLmluY2x1ZGVzLnB1c2gocGFyc2VkX2lk
bCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtNDg1LDE2ICs0MzcsNiBA
QCBJZGxBcnJheS5wcm90b3R5cGUuaW50ZXJuYWxfYWRkX2lkbHMgPSBmdW5jdGlvbihwYXJzZWRf
aWRscywgb3B0aW9ucykKICAgICAgICAgICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJyb3IoIkR1
cGxpY2F0ZSBpZGVudGlmaWVyICIgKyBwYXJzZWRfaWRsLm5hbWUpOwogICAgICAgICB9CiAKLSAg
ICAgICAgaWYgKHBhcnNlZF9pZGxbImluaGVyaXRhbmNlIl0pIHsKLSAgICAgICAgICAgIC8vIE5P
VEU6IENsYXNoIHNob3VsZCBiZSBpbXBvc3NpYmxlICh3b3VsZCByZXF1aXJlIHJlZGVmaW5pdGlv
biBvZiBwYXJzZWRfaWRsLm5hbWUpLgotICAgICAgICAgICAgaWYgKHBhcnNlZF9pZGwubmFtZSBp
biB0aGlzWyJpbmhlcml0YW5jZSJdCi0gICAgICAgICAgICAgICAgJiYgcGFyc2VkX2lkbFsiaW5o
ZXJpdGFuY2UiXSAhPSB0aGlzWyJpbmhlcml0YW5jZSJdW3BhcnNlZF9pZGwubmFtZV0pIHsKLSAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vycm9yKAotICAgICAgICAgICAgICAg
ICAgICBgSW5oZXJpdGFuY2UgZm9yICR7cGFyc2VkX2lkbC5uYW1lfSB3YXMgYWxyZWFkeSBkZWZp
bmVkYCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB0aGlzWyJpbmhlcml0YW5jZSJdW3Bh
cnNlZF9pZGwubmFtZV0gPSBwYXJzZWRfaWRsWyJpbmhlcml0YW5jZSJdOwotICAgICAgICB9Ci0K
ICAgICAgICAgc3dpdGNoKHBhcnNlZF9pZGwudHlwZSkKICAgICAgICAgewogICAgICAgICBjYXNl
ICJpbnRlcmZhY2UiOgpAQCAtNTYyLDYyICs1MDQsNiBAQCBJZGxBcnJheS5wcm90b3R5cGUucHJl
dmVudF9tdWx0aXBsZV90ZXN0aW5nID0gZnVuY3Rpb24obmFtZSkKICAgICB0aGlzLm1lbWJlcnNb
bmFtZV0ucHJldmVudF9tdWx0aXBsZV90ZXN0aW5nID0gdHJ1ZTsKIH07CiAKLUlkbEFycmF5LnBy
b3RvdHlwZS5yZWN1cnNpdmVseV9nZXRfaW1wbGVtZW50cyA9IGZ1bmN0aW9uKGludGVyZmFjZV9u
YW1lKQotewotICAgIC8qKgotICAgICAqIEhlbHBlciBmdW5jdGlvbiBmb3IgdGVzdCgpLiAgUmV0
dXJucyBhbiBhcnJheSBvZiB0aGluZ3MgdGhhdCBpbXBsZW1lbnQKLSAgICAgKiBpbnRlcmZhY2Vf
bmFtZSwgc28gaWYgdGhlIElETCBjb250YWlucwotICAgICAqCi0gICAgICogICBBIGltcGxlbWVu
dHMgQjsKLSAgICAgKiAgIEIgaW1wbGVtZW50cyBDOwotICAgICAqICAgQiBpbXBsZW1lbnRzIEQ7
Ci0gICAgICoKLSAgICAgKiB0aGVuIHJlY3Vyc2l2ZWx5X2dldF9pbXBsZW1lbnRzKCJBIikgc2hv
dWxkIHJldHVybiBbIkIiLCAiQyIsICJEIl0uCi0gICAgICovCi0gICAgdmFyIHJldCA9IHRoaXNb
ImltcGxlbWVudHMiXVtpbnRlcmZhY2VfbmFtZV07Ci0gICAgaWYgKHJldCA9PT0gdW5kZWZpbmVk
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIFtdOwotICAgIH0KLSAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHRoaXNbImltcGxlbWVudHMiXVtpbnRlcmZhY2VfbmFtZV0ubGVuZ3RoOyBpKyspCi0gICAg
ewotICAgICAgICByZXQgPSByZXQuY29uY2F0KHRoaXMucmVjdXJzaXZlbHlfZ2V0X2ltcGxlbWVu
dHMocmV0W2ldKSk7Ci0gICAgICAgIGlmIChyZXQuaW5kZXhPZihyZXRbaV0pICE9IHJldC5sYXN0
SW5kZXhPZihyZXRbaV0pKQotICAgICAgICB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgSWRsSGFy
bmVzc0Vycm9yKCJDaXJjdWxhciBpbXBsZW1lbnRzIHN0YXRlbWVudHMgaW52b2x2aW5nICIgKyBy
ZXRbaV0pOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci19OwotCi1JZGxBcnJh
eS5wcm90b3R5cGUucmVjdXJzaXZlbHlfZ2V0X2luY2x1ZGVzID0gZnVuY3Rpb24oaW50ZXJmYWNl
X25hbWUpCi17Ci0gICAgLyoqCi0gICAgICogSGVscGVyIGZ1bmN0aW9uIGZvciB0ZXN0KCkuICBS
ZXR1cm5zIGFuIGFycmF5IG9mIHRoaW5ncyB0aGF0IGltcGxlbWVudAotICAgICAqIGludGVyZmFj
ZV9uYW1lLCBzbyBpZiB0aGUgSURMIGNvbnRhaW5zCi0gICAgICoKLSAgICAgKiAgIEEgaW5jbHVk
ZXMgQjsKLSAgICAgKiAgIEIgaW5jbHVkZXMgQzsKLSAgICAgKiAgIEIgaW5jbHVkZXMgRDsKLSAg
ICAgKgotICAgICAqIHRoZW4gcmVjdXJzaXZlbHlfZ2V0X2luY2x1ZGVzKCJBIikgc2hvdWxkIHJl
dHVybiBbIkIiLCAiQyIsICJEIl0uCi0gICAgICovCi0gICAgdmFyIHJldCA9IHRoaXNbImluY2x1
ZGVzIl1baW50ZXJmYWNlX25hbWVdOwotICAgIGlmIChyZXQgPT09IHVuZGVmaW5lZCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBbXTsKLSAgICB9Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlz
WyJpbmNsdWRlcyJdW2ludGVyZmFjZV9uYW1lXS5sZW5ndGg7IGkrKykKLSAgICB7Ci0gICAgICAg
IHJldCA9IHJldC5jb25jYXQodGhpcy5yZWN1cnNpdmVseV9nZXRfaW5jbHVkZXMocmV0W2ldKSk7
Ci0gICAgICAgIGlmIChyZXQuaW5kZXhPZihyZXRbaV0pICE9IHJldC5sYXN0SW5kZXhPZihyZXRb
aV0pKQotICAgICAgICB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vycm9yKCJD
aXJjdWxhciBpbmNsdWRlcyBzdGF0ZW1lbnRzIGludm9sdmluZyAiICsgcmV0W2ldKTsKLSAgICAg
ICAgfQotICAgIH0KLSAgICByZXR1cm4gcmV0OwotfTsKLQogSWRsQXJyYXkucHJvdG90eXBlLmlz
X2pzb25fdHlwZSA9IGZ1bmN0aW9uKHR5cGUpCiB7CiAgICAgLyoqCkBAIC02OTUsMjUgKzU4MSwy
MyBAQCBJZGxBcnJheS5wcm90b3R5cGUuaXNfanNvbl90eXBlID0gZnVuY3Rpb24odHlwZSkKIAog
ICAgICAgICAgICAvLyAgZGljdGlvbmFyaWVzIHdoZXJlIGFsbCBvZiB0aGVpciBtZW1iZXJzIGFy
ZSBKU09OIHR5cGVzCiAgICAgICAgICAgIGlmICh0aGluZyBpbnN0YW5jZW9mIElkbERpY3Rpb25h
cnkpIHsKLSAgICAgICAgICAgICAgIHZhciBzdGFjayA9IHRoaW5nLmdldF9pbmhlcml0YW5jZV9z
dGFjaygpOwotICAgICAgICAgICAgICAgdmFyIG1hcCA9IG5ldyBNYXAoKTsKLSAgICAgICAgICAg
ICAgIHdoaWxlIChzdGFjay5sZW5ndGgpCi0gICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgc3RhY2sucG9wKCkubWVtYmVycy5mb3JFYWNoKGZ1bmN0aW9uKG0pIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgbWFwLnNldChtLm5hbWUsIG0uaWRsVHlwZSkKLSAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoKTsKKyAgICAgICAg
ICAgICAgIGZvciAoY29uc3QgZGljdCBvZiB0aGluZy5nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9z
dGFjaygpKSB7CisgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBtIG9mIGRpY3QubWVtYmVy
cykgeworICAgICAgICAgICAgICAgICAgICAgICBtYXAuc2V0KG0ubmFtZSwgbS5pZGxUeXBlKTsK
KyAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBy
ZXR1cm4gQXJyYXkuZnJvbShtYXAudmFsdWVzKCkpLmV2ZXJ5KHRoaXMuaXNfanNvbl90eXBlLCB0
aGlzKTsKICAgICAgICAgICAgfQogCiAgICAgICAgICAgIC8vICBpbnRlcmZhY2UgdHlwZXMgdGhh
dCBoYXZlIGEgdG9KU09OIG9wZXJhdGlvbiBkZWNsYXJlZCBvbiB0aGVtc2VsdmVzIG9yCi0gICAg
ICAgICAgIC8vICBvbmUgb2YgdGhlaXIgaW5oZXJpdGVkIG9yIGNvbnNlcXVlbnRpYWwgaW50ZXJm
YWNlcy4KKyAgICAgICAgICAgLy8gIG9uZSBvZiB0aGVpciBpbmhlcml0ZWQgaW50ZXJmYWNlcy4K
ICAgICAgICAgICAgaWYgKHRoaW5nIGluc3RhbmNlb2YgSWRsSW50ZXJmYWNlKSB7CiAgICAgICAg
ICAgICAgICB2YXIgYmFzZTsKICAgICAgICAgICAgICAgIHdoaWxlICh0aGluZykKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZiAodGhpbmcuaGFzX3RvX2pzb25fcmVndWxh
cl9vcGVyYXRpb24oKSkgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICAgICAgICAgICAgIHZhciBt
aXhpbnMgPSB0aGlzLmltcGxlbWVudHNbdGhpbmcubmFtZV0gfHwgdGhpcy5pbmNsdWRlc1t0aGlu
Zy5uYW1lXTsKKyAgICAgICAgICAgICAgICAgICB2YXIgbWl4aW5zID0gdGhpcy5pbmNsdWRlc1t0
aGluZy5uYW1lXTsKICAgICAgICAgICAgICAgICAgICBpZiAobWl4aW5zKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIG1peGlucyA9IG1peGlucy5tYXAoZnVuY3Rpb24oaWQpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZhciBtaXhpbiA9IHRoaXMubWVtYmVyc1tpZF07CkBAIC03NjYs
NyArNjUwLDcgQEAgZnVuY3Rpb24gZXhwb3N1cmVfc2V0KG9iamVjdCwgZGVmYXVsdF9zZXQpIHsK
IH0KIAogZnVuY3Rpb24gZXhwb3NlZF9pbihnbG9iYWxzKSB7Ci0gICAgaWYgKCdkb2N1bWVudCcg
aW4gc2VsZikgeworICAgIGlmICgnV2luZG93JyBpbiBzZWxmKSB7CiAgICAgICAgIHJldHVybiBn
bG9iYWxzLmhhcygiV2luZG93Iik7CiAgICAgfQogICAgIGlmICgnRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGUnIGluIHNlbGYgJiYKQEAgLTgxMyw2NiArNjk3LDkgQEAgSWRsQXJyYXkucHJvdG90
eXBlLnRlc3QgPSBmdW5jdGlvbigpCiB7CiAgICAgLyoqIEVudHJ5IHBvaW50LiAgU2VlIGRvY3Vt
ZW50YXRpb24gYXQgYmVnaW5uaW5nIG9mIGZpbGUuICovCiAKLSAgICAvLyBGaXJzdCBtZXJnZSBp
biBhbGwgdGhlIHBhcnRpYWwgaW50ZXJmYWNlcyBhbmQgaW1wbGVtZW50cyBzdGF0ZW1lbnRzIHdl
Ci0gICAgLy8gZW5jb3VudGVyZWQuCi0gICAgdGhpcy5jb2xsYXBzZV9wYXJ0aWFscygpOwotCi0g
ICAgZm9yICh2YXIgbGhzIGluIHRoaXNbImltcGxlbWVudHMiXSkKLSAgICB7Ci0gICAgICAgIHRo
aXMucmVjdXJzaXZlbHlfZ2V0X2ltcGxlbWVudHMobGhzKS5mb3JFYWNoKGZ1bmN0aW9uKHJocykK
LSAgICAgICAgewotICAgICAgICAgICAgdmFyIGVyclN0ciA9IGxocyArICIgaW1wbGVtZW50cyAi
ICsgcmhzICsgIiwgYnV0ICI7Ci0gICAgICAgICAgICBpZiAoIShsaHMgaW4gdGhpcy5tZW1iZXJz
KSkgdGhyb3cgZXJyU3RyICsgbGhzICsgIiBpcyB1bmRlZmluZWQuIjsKLSAgICAgICAgICAgIGlm
ICghKHRoaXMubWVtYmVyc1tsaHNdIGluc3RhbmNlb2YgSWRsSW50ZXJmYWNlKSkgdGhyb3cgZXJy
U3RyICsgbGhzICsgIiBpcyBub3QgYW4gaW50ZXJmYWNlLiI7Ci0gICAgICAgICAgICBpZiAoIShy
aHMgaW4gdGhpcy5tZW1iZXJzKSkgdGhyb3cgZXJyU3RyICsgcmhzICsgIiBpcyB1bmRlZmluZWQu
IjsKLSAgICAgICAgICAgIGlmICghKHRoaXMubWVtYmVyc1tyaHNdIGluc3RhbmNlb2YgSWRsSW50
ZXJmYWNlKSkgdGhyb3cgZXJyU3RyICsgcmhzICsgIiBpcyBub3QgYW4gaW50ZXJmYWNlLiI7Ci0K
LSAgICAgICAgICAgIGlmICh0aGlzLm1lbWJlcnNbcmhzXS5tZW1iZXJzLmxlbmd0aCkgewotICAg
ICAgICAgICAgICAgIHRlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgICAgICB2YXIg
Y2xhc2ggPSB0aGlzLm1lbWJlcnNbcmhzXS5tZW1iZXJzLmZpbmQoZnVuY3Rpb24obWVtYmVyKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tZW1iZXJzW2xoc10ubWVtYmVy
cy5maW5kKGZ1bmN0aW9uKG0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
dGhpcy5hcmVfZHVwbGljYXRlX21lbWJlcnMobSwgbWVtYmVyKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7
Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMubWVtYmVyc1tyaHNdLm1lbWJlcnMuZm9yRWFjaChm
dW5jdGlvbihtZW1iZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWVtYmVyc1ts
aHNdLm1lbWJlcnMucHVzaChuZXcgSWRsSW50ZXJmYWNlTWVtYmVyKG1lbWJlcikpOwotICAgICAg
ICAgICAgICAgICAgICB9LmJpbmQodGhpcykpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
dHJ1ZSghY2xhc2gsICJtZW1iZXIgIiArIChjbGFzaCAmJiBjbGFzaC5uYW1lKSArICIgaXMgdW5p
cXVlIik7Ci0gICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpLCBsaHMgKyAiIGltcGxlbWVudHMg
IiArIHJocyArICI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIik7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgfQotICAgIHRoaXNbImltcGxlbWVudHMiXSA9IHt9
OwotCi0gICAgZm9yICh2YXIgbGhzIGluIHRoaXNbImluY2x1ZGVzIl0pCi0gICAgewotICAgICAg
ICB0aGlzLnJlY3Vyc2l2ZWx5X2dldF9pbmNsdWRlcyhsaHMpLmZvckVhY2goZnVuY3Rpb24ocmhz
KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgZXJyU3RyID0gbGhzICsgIiBpbmNsdWRlcyAi
ICsgcmhzICsgIiwgYnV0ICI7Ci0gICAgICAgICAgICBpZiAoIShsaHMgaW4gdGhpcy5tZW1iZXJz
KSkgdGhyb3cgZXJyU3RyICsgbGhzICsgIiBpcyB1bmRlZmluZWQuIjsKLSAgICAgICAgICAgIGlm
ICghKHRoaXMubWVtYmVyc1tsaHNdIGluc3RhbmNlb2YgSWRsSW50ZXJmYWNlKSkgdGhyb3cgZXJy
U3RyICsgbGhzICsgIiBpcyBub3QgYW4gaW50ZXJmYWNlLiI7Ci0gICAgICAgICAgICBpZiAoIShy
aHMgaW4gdGhpcy5tZW1iZXJzKSkgdGhyb3cgZXJyU3RyICsgcmhzICsgIiBpcyB1bmRlZmluZWQu
IjsKLSAgICAgICAgICAgIGlmICghKHRoaXMubWVtYmVyc1tyaHNdIGluc3RhbmNlb2YgSWRsSW50
ZXJmYWNlKSkgdGhyb3cgZXJyU3RyICsgcmhzICsgIiBpcyBub3QgYW4gaW50ZXJmYWNlLiI7Ci0K
LSAgICAgICAgICAgIGlmICh0aGlzLm1lbWJlcnNbcmhzXS5tZW1iZXJzLmxlbmd0aCkgewotICAg
ICAgICAgICAgICAgIHRlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgICAgICB2YXIg
Y2xhc2ggPSB0aGlzLm1lbWJlcnNbcmhzXS5tZW1iZXJzLmZpbmQoZnVuY3Rpb24obWVtYmVyKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tZW1iZXJzW2xoc10ubWVtYmVy
cy5maW5kKGZ1bmN0aW9uKG0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
dGhpcy5hcmVfZHVwbGljYXRlX21lbWJlcnMobSwgbWVtYmVyKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7
Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMubWVtYmVyc1tyaHNdLm1lbWJlcnMuZm9yRWFjaChm
dW5jdGlvbihtZW1iZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWVtYmVyc1tsaHNdLm1lbWJlcnMuZXZl
cnkobSA9PiAhdGhpcy5hcmVfZHVwbGljYXRlX21lbWJlcnMobSwgbWVtYmVyKSksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIm1lbWJlciAiICsgbWVtYmVyLm5hbWUgKyAiIGlzIHVuaXF1
ZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tZW1iZXJzW2xoc10ubWVtYmVycy5w
dXNoKG5ldyBJZGxJbnRlcmZhY2VNZW1iZXIobWVtYmVyKSk7Ci0gICAgICAgICAgICAgICAgICAg
IH0uYmluZCh0aGlzKSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKCFjbGFzaCwg
Im1lbWJlciAiICsgKGNsYXNoICYmIGNsYXNoLm5hbWUpICsgIiBpcyB1bmlxdWUiKTsKLSAgICAg
ICAgICAgICAgICB9LmJpbmQodGhpcyksIGxocyArICIgaW5jbHVkZXMgIiArIHJocyArICI6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0uYmluZCh0
aGlzKSk7Ci0gICAgfQotICAgIHRoaXNbImluY2x1ZGVzIl0gPSB7fTsKKyAgICAvLyBGaXJzdCBt
ZXJnZSBpbiBhbGwgcGFydGlhbCBkZWZpbml0aW9ucyBhbmQgaW50ZXJmYWNlIG1peGlucy4KKyAg
ICB0aGlzLm1lcmdlX3BhcnRpYWxzKCk7CisgICAgdGhpcy5tZXJnZV9taXhpbnMoKTsKIAogICAg
IC8vIEFzc2VydCBCIGRlZmluZWQgZm9yIEEgOiBCCiAgICAgZm9yIChjb25zdCBtZW1iZXIgb2Yg
T2JqZWN0LnZhbHVlcyh0aGlzLm1lbWJlcnMpLmZpbHRlcihtID0+IG0uYmFzZSkpIHsKQEAgLTg4
Niw3ICs3MTMsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIGlmICghcmhzX2lzX2ludGVyZmFjZSkgdGhyb3cgbmV3IElkbEhhcm5lc3NFcnJvcihg
JHtsaHN9IGluaGVyaXRzICR7cmhzfSwgYnV0ICR7cmhzfSBpcyBub3QgYW4gaW50ZXJmYWNlLmAp
OwogICAgICAgICB9CiAgICAgICAgIC8vIENoZWNrIGZvciBjaXJjdWxhciBkZXBlbmRlbmNpZXMu
Ci0gICAgICAgIG1lbWJlci5nZXRfaW5oZXJpdGFuY2Vfc3RhY2soKTsKKyAgICAgICAgbWVtYmVy
LmdldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrKCk7CiAgICAgfQogCiAgICAgT2JqZWN0Lmdl
dE93blByb3BlcnR5TmFtZXModGhpcy5tZW1iZXJzKS5mb3JFYWNoKGZ1bmN0aW9uKG1lbWJlck5h
bWUpIHsKQEAgLTkyMSw3ICs3NDgsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0
aW9uKCkKICAgICB9CiB9OwogCi1JZGxBcnJheS5wcm90b3R5cGUuY29sbGFwc2VfcGFydGlhbHMg
PSBmdW5jdGlvbigpCitJZGxBcnJheS5wcm90b3R5cGUubWVyZ2VfcGFydGlhbHMgPSBmdW5jdGlv
bigpCiB7CiAgICAgY29uc3QgdGVzdGVkUGFydGlhbHMgPSBuZXcgTWFwKCk7CiAgICAgdGhpcy5w
YXJ0aWFscy5mb3JFYWNoKGZ1bmN0aW9uKHBhcnNlZF9pZGwpCkBAIC0xMDE1LDYgKzg0MiwzOSBA
QCBJZGxBcnJheS5wcm90b3R5cGUuY29sbGFwc2VfcGFydGlhbHMgPSBmdW5jdGlvbigpCiAgICAg
dGhpcy5wYXJ0aWFscyA9IFtdOwogfQogCitJZGxBcnJheS5wcm90b3R5cGUubWVyZ2VfbWl4aW5z
ID0gZnVuY3Rpb24oKQoreworICAgIGZvciAoY29uc3QgcGFyc2VkX2lkbCBvZiB0aGlzLmluY2x1
ZGVzKQorICAgIHsKKyAgICAgICAgY29uc3QgbGhzID0gcGFyc2VkX2lkbC50YXJnZXQ7CisgICAg
ICAgIGNvbnN0IHJocyA9IHBhcnNlZF9pZGwuaW5jbHVkZXM7CisKKyAgICAgICAgdmFyIGVyclN0
ciA9IGxocyArICIgaW5jbHVkZXMgIiArIHJocyArICIsIGJ1dCAiOworICAgICAgICBpZiAoIShs
aHMgaW4gdGhpcy5tZW1iZXJzKSkgdGhyb3cgZXJyU3RyICsgbGhzICsgIiBpcyB1bmRlZmluZWQu
IjsKKyAgICAgICAgaWYgKCEodGhpcy5tZW1iZXJzW2xoc10gaW5zdGFuY2VvZiBJZGxJbnRlcmZh
Y2UpKSB0aHJvdyBlcnJTdHIgKyBsaHMgKyAiIGlzIG5vdCBhbiBpbnRlcmZhY2UuIjsKKyAgICAg
ICAgaWYgKCEocmhzIGluIHRoaXMubWVtYmVycykpIHRocm93IGVyclN0ciArIHJocyArICIgaXMg
dW5kZWZpbmVkLiI7CisgICAgICAgIGlmICghKHRoaXMubWVtYmVyc1tyaHNdIGluc3RhbmNlb2Yg
SWRsSW50ZXJmYWNlKSkgdGhyb3cgZXJyU3RyICsgcmhzICsgIiBpcyBub3QgYW4gaW50ZXJmYWNl
LiI7CisKKyAgICAgICAgaWYgKHRoaXMubWVtYmVyc1tyaHNdLm1lbWJlcnMubGVuZ3RoKSB7Cisg
ICAgICAgICAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB2YXIgY2xhc2gg
PSB0aGlzLm1lbWJlcnNbcmhzXS5tZW1iZXJzLmZpbmQoZnVuY3Rpb24obWVtYmVyKSB7CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1lbWJlcnNbbGhzXS5tZW1iZXJzLmZpbmQoZnVu
Y3Rpb24obSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXJlX2R1cGxp
Y2F0ZV9tZW1iZXJzKG0sIG1lbWJlcik7CisgICAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlz
KSk7CisgICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgICAgICB0aGlz
Lm1lbWJlcnNbcmhzXS5tZW1iZXJzLmZvckVhY2goZnVuY3Rpb24obWVtYmVyKSB7CisgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF90cnVlKAorICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5t
ZW1iZXJzW2xoc10ubWVtYmVycy5ldmVyeShtID0+ICF0aGlzLmFyZV9kdXBsaWNhdGVfbWVtYmVy
cyhtLCBtZW1iZXIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJtZW1iZXIgIiArIG1lbWJl
ci5uYW1lICsgIiBpcyB1bmlxdWUiKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5tZW1iZXJz
W2xoc10ubWVtYmVycy5wdXNoKG5ldyBJZGxJbnRlcmZhY2VNZW1iZXIobWVtYmVyKSk7CisgICAg
ICAgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSgh
Y2xhc2gsICJtZW1iZXIgIiArIChjbGFzaCAmJiBjbGFzaC5uYW1lKSArICIgaXMgdW5pcXVlIik7
CisgICAgICAgICAgICB9LmJpbmQodGhpcyksIGxocyArICIgaW5jbHVkZXMgIiArIHJocyArICI6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgdGhpcy5p
bmNsdWRlcyA9IFtdOworfQorCiBJZGxBcnJheS5wcm90b3R5cGUuYXJlX2R1cGxpY2F0ZV9tZW1i
ZXJzID0gZnVuY3Rpb24obTEsIG0yKSB7CiAgICAgaWYgKG0xLm5hbWUgIT09IG0yLm5hbWUpIHsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTExNiw3ICs5NzYsNyBAQCBJZGxBcnJheS5wcm90
b3R5cGUuYXNzZXJ0X3R5cGVfaXMgPSBmdW5jdGlvbih2YWx1ZSwgdHlwZSkKIAogICAgIHN3aXRj
aCh0eXBlKQogICAgIHsKLSAgICAgICAgY2FzZSAidm9pZCI6CisgICAgICAgIGNhc2UgInVuZGVm
aW5lZCI6CiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHZhbHVlLCB1bmRlZmluZWQpOwogICAg
ICAgICAgICAgcmV0dXJuOwogCkBAIC0xMTcyLDcgKzEwMzIsNyBAQCBJZGxBcnJheS5wcm90b3R5
cGUuYXNzZXJ0X3R5cGVfaXMgPSBmdW5jdGlvbih2YWx1ZSwgdHlwZSkKIAogICAgICAgICBjYXNl
ICJmbG9hdCI6CiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiB2YWx1ZSwgIm51bWJl
ciIpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh2YWx1ZSwgZnJvdW5kKHZhbHVlKSwgImZs
b2F0IHJvdW5kZWQgdG8gMzItYml0IGZsb2F0IHNob3VsZCBiZSBpdHNlbGYiKTsKKyAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHModmFsdWUsIE1hdGguZnJvdW5kKHZhbHVlKSwgImZsb2F0IHJvdW5k
ZWQgdG8gMzItYml0IGZsb2F0IHNob3VsZCBiZSBpdHNlbGYiKTsKICAgICAgICAgICAgIGFzc2Vy
dF9ub3RfZXF1YWxzKHZhbHVlLCBJbmZpbml0eSk7CiAgICAgICAgICAgICBhc3NlcnRfbm90X2Vx
dWFscyh2YWx1ZSwgLUluZmluaXR5KTsKICAgICAgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHZh
bHVlLCBOYU4pOwpAQCAtMTE4OCw3ICsxMDQ4LDcgQEAgSWRsQXJyYXkucHJvdG90eXBlLmFzc2Vy
dF90eXBlX2lzID0gZnVuY3Rpb24odmFsdWUsIHR5cGUpCiAKICAgICAgICAgY2FzZSAidW5yZXN0
cmljdGVkIGZsb2F0IjoKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIHZhbHVlLCAi
bnVtYmVyIik7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHZhbHVlLCBmcm91bmQodmFsdWUp
LCAidW5yZXN0cmljdGVkIGZsb2F0IHJvdW5kZWQgdG8gMzItYml0IGZsb2F0IHNob3VsZCBiZSBp
dHNlbGYiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHModmFsdWUsIE1hdGguZnJvdW5kKHZh
bHVlKSwgInVucmVzdHJpY3RlZCBmbG9hdCByb3VuZGVkIHRvIDMyLWJpdCBmbG9hdCBzaG91bGQg
YmUgaXRzZWxmIik7CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgY2FzZSAidW5yZXN0
cmljdGVkIGRvdWJsZSI6CkBAIC0xMjM2LDExICsxMDk2LDExIEBAIElkbEFycmF5LnByb3RvdHlw
ZS5hc3NlcnRfdHlwZV9pcyA9IGZ1bmN0aW9uKHZhbHVlLCB0eXBlKQogICAgICAgICAvLyBXZSBk
b24ndCB3YW50IHRvIHJ1biB0aGUgZnVsbAogICAgICAgICAvLyBJZGxJbnRlcmZhY2UucHJvdG90
eXBlLnRlc3RfaW5zdGFuY2Vfb2YsIGJlY2F1c2UgdGhhdCBjb3VsZCByZXN1bHQKICAgICAgICAg
Ly8gaW4gYW4gaW5maW5pdGUgbG9vcC4gIFRPRE86IFRoaXMgbWVhbnMgd2UgZG9uJ3QgaGF2ZSB0
ZXN0cyBmb3IKLSAgICAgICAgLy8gTm9JbnRlcmZhY2VPYmplY3QgaW50ZXJmYWNlcywgYW5kIHdl
IGFsc28gY2FuJ3QgdGVzdCBvYmplY3RzIHRoYXQKLSAgICAgICAgLy8gY29tZSBmcm9tIGFub3Ro
ZXIgc2VsZi4KKyAgICAgICAgLy8gTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QgaW50ZXJmYWNlcywg
YW5kIHdlIGFsc28gY2FuJ3QgdGVzdCBvYmplY3RzCisgICAgICAgIC8vIHRoYXQgY29tZSBmcm9t
IGFub3RoZXIgc2VsZi4KICAgICAgICAgYXNzZXJ0X2luX2FycmF5KHR5cGVvZiB2YWx1ZSwgWyJv
YmplY3QiLCAiZnVuY3Rpb24iXSwgIndyb25nIHR5cGU6IG5vdCBvYmplY3Qgb3IgZnVuY3Rpb24i
KTsKICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0Ci0gICAgICAgICYmICF0aGlz
Lm1lbWJlcnNbdHlwZV0uaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiTm9JbnRlcmZhY2VPYmplY3Qi
KQorICAgICAgICAmJiAhdGhpcy5tZW1iZXJzW3R5cGVdLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUo
IkxlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0IikKICAgICAgICAgJiYgdHlwZSBpbiBzZWxmKQogICAg
ICAgICB7CiAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSh2YWx1ZSBpbnN0YW5jZW9mIHNlbGZbdHlw
ZV0sICJpbnN0YW5jZW9mICIgKyB0eXBlKTsKQEAgLTEzMTQsOCArMTE3NCw4IEBAIGZ1bmN0aW9u
IElkbERpY3Rpb25hcnkob2JqKQogCiBJZGxEaWN0aW9uYXJ5LnByb3RvdHlwZSA9IE9iamVjdC5j
cmVhdGUoSWRsT2JqZWN0LnByb3RvdHlwZSk7CiAKLUlkbERpY3Rpb25hcnkucHJvdG90eXBlLmdl
dF9pbmhlcml0YW5jZV9zdGFjayA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiBJZGxJbnRlcmZh
Y2UucHJvdG90eXBlLmdldF9pbmhlcml0YW5jZV9zdGFjay5jYWxsKHRoaXMpOworSWRsRGljdGlv
bmFyeS5wcm90b3R5cGUuZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2sgPSBmdW5jdGlvbigp
IHsKKyAgICByZXR1cm4gSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfcmV2ZXJzZV9pbmhlcml0
YW5jZV9zdGFjay5jYWxsKHRoaXMpOwogfTsKIAogLy8vIElkbEludGVyZmFjZSAvLy8KQEAgLTE0
MTUsMTAgKzEyNzUsMTAgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5zaG91bGRfaGF2ZV9pbnRl
cmZhY2Vfb2JqZWN0ID0gZnVuY3Rpb24oKQogICAgIC8vIGVudmlyb25tZW50IGFuZDoKICAgICAv
LyAqIGlzIGEgY2FsbGJhY2sgaW50ZXJmYWNlIHRoYXQgaGFzIGNvbnN0YW50cyBkZWNsYXJlZCBv
biBpdCwgb3IKICAgICAvLyAqIGlzIGEgbm9uLWNhbGxiYWNrIGludGVyZmFjZSB0aGF0IGlzIG5v
dCBkZWNsYXJlZCB3aXRoIHRoZQotICAgIC8vICAgW05vSW50ZXJmYWNlT2JqZWN0XSBleHRlbmRl
ZCBhdHRyaWJ1dGUsCisgICAgLy8gICBbTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RdIGV4dGVuZGVk
IGF0dHJpYnV0ZSwKICAgICAvLyBhIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgTVVTVCBleGlzdCBv
biB0aGUgRUNNQVNjcmlwdCBnbG9iYWwgb2JqZWN0LgogCi0gICAgcmV0dXJuIHRoaXMuaXNfY2Fs
bGJhY2soKSA/IHRoaXMuaGFzX2NvbnN0YW50cygpIDogIXRoaXMuaGFzX2V4dGVuZGVkX2F0dHJp
YnV0ZSgiTm9JbnRlcmZhY2VPYmplY3QiKTsKKyAgICByZXR1cm4gdGhpcy5pc19jYWxsYmFjaygp
ID8gdGhpcy5oYXNfY29uc3RhbnRzKCkgOiAhdGhpcy5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdCIpOwogfTsKIAogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5h
c3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMgPSBmdW5jdGlvbigpCkBAIC0xNDI5LDcgKzEy
ODksNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmFzc2VydF9pbnRlcmZhY2Vfb2JqZWN0X2V4
aXN0cyA9IGZ1bmN0aW9uKCkKIAogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfaW50ZXJmYWNl
X29iamVjdCA9IGZ1bmN0aW9uKCkgewogICAgIGlmICghdGhpcy5zaG91bGRfaGF2ZV9pbnRlcmZh
Y2Vfb2JqZWN0KCkpIHsKLSAgICAgICAgdmFyIHJlYXNvbiA9IHRoaXMuaXNfY2FsbGJhY2soKSA/
ICJsYWNrIG9mIGRlY2xhcmVkIGNvbnN0YW50cyIgOiAiZGVjbGFyZWQgW05vSW50ZXJmYWNlT2Jq
ZWN0XSBhdHRyaWJ1dGUiOworICAgICAgICB2YXIgcmVhc29uID0gdGhpcy5pc19jYWxsYmFjaygp
ID8gImxhY2sgb2YgZGVjbGFyZWQgY29uc3RhbnRzIiA6ICJkZWNsYXJlZCBbTGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3RdIGF0dHJpYnV0ZSI7CiAgICAgICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJy
b3IodGhpcy5uYW1lICsgIiBoYXMgbm8gaW50ZXJmYWNlIG9iamVjdCBkdWUgdG8gIiArIHJlYXNv
bik7CiAgICAgfQogCkBAIC0xNDU3LDM5ICsxMzE3LDM5IEBAIElkbEludGVyZmFjZS5wcm90b3R5
cGUuaGFzX2RlZmF1bHRfdG9fanNvbl9yZWd1bGFyX29wZXJhdGlvbiA9IGZ1bmN0aW9uKCkgewog
ICAgIH0pOwogfTsKIAotSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfaW5oZXJpdGFuY2Vfc3Rh
Y2sgPSBmdW5jdGlvbigpIHsKLSAgICAvKioKLSAgICAgKiBTZWUgaHR0cHM6Ly9oZXljYW0uZ2l0
aHViLmlvL3dlYmlkbC8jY3JlYXRlLWFuLWluaGVyaXRhbmNlLXN0YWNrCi0gICAgICoKLSAgICAg
KiBSZXR1cm5zIGFuIGFycmF5IG9mIElkbEludGVyZmFjZSBvYmplY3RzIHdoaWNoIGNvbnRhaW5z
IGl0c2VsZgotICAgICAqIGFuZCBhbGwgb2YgaXRzIGluaGVyaXRlZCBpbnRlcmZhY2VzLgotICAg
ICAqCi0gICAgICogU28gZ2l2ZW46Ci0gICAgICoKLSAgICAgKiAgIEEgOiBCIHt9OwotICAgICAq
ICAgQiA6IEMge307Ci0gICAgICogICBDIHt9OwotICAgICAqCi0gICAgICogdGhlbiBBLmdldF9p
bmhlcml0YW5jZV9zdGFjaygpIHNob3VsZCByZXR1cm4gW0EsIEIsIENdLAotICAgICAqIGFuZCBC
LmdldF9pbmhlcml0YW5jZV9zdGFjaygpIHNob3VsZCByZXR1cm4gW0IsIENdLgotICAgICAqCi0g
ICAgICogTm90ZTogYXMgZGljdGlvbmFyeSBpbmhlcml0YW5jZSBpcyBleHByZXNzZWQgaWRlbnRp
Y2FsbHkgYnkgdGhlIEFTVCwKLSAgICAgKiB0aGlzIHdvcmtzIGp1c3QgYXMgd2VsbCBmb3IgZ2V0
dGluZyBhIHN0YWNrIG9mIGluaGVyaXRlZCBkaWN0aW9uYXJpZXMuCi0gICAgICovCi0KLSAgICB2
YXIgc3RhY2sgPSBbdGhpc107Ci0gICAgdmFyIGlkbF9pbnRlcmZhY2UgPSB0aGlzOworLyoqCisg
KiBJbXBsZW1lbnRhdGlvbiBvZiBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNjcmVh
dGUtYW4taW5oZXJpdGFuY2Utc3RhY2sKKyAqIHdpdGggdGhlIG9yZGVyIHJldmVyc2VkLgorICoK
KyAqIFRoZSBvcmRlciBpcyByZXZlcnNlZCBzbyB0aGF0IHRoZSBiYXNlIGNsYXNzIGNvbWVzIGZp
cnN0IGluIHRoZSBsaXN0LCBiZWNhdXNlCisgKiB0aGlzIGlzIHdoYXQgYWxsIGNhbGwgc2l0ZXMg
bmVlZC4KKyAqCisgKiBTbyBnaXZlbjoKKyAqCisgKiAgIEEgOiBCIHt9OworICogICBCIDogQyB7
fTsKKyAqICAgQyB7fTsKKyAqCisgKiB0aGVuIEEuZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3Rh
Y2soKSByZXR1cm5zIFtDLCBCLCBBXSwKKyAqIGFuZCBCLmdldF9yZXZlcnNlX2luaGVyaXRhbmNl
X3N0YWNrKCkgcmV0dXJucyBbQywgQl0uCisgKgorICogTm90ZTogYXMgZGljdGlvbmFyeSBpbmhl
cml0YW5jZSBpcyBleHByZXNzZWQgaWRlbnRpY2FsbHkgYnkgdGhlIEFTVCwKKyAqIHRoaXMgd29y
a3MganVzdCBhcyB3ZWxsIGZvciBnZXR0aW5nIGEgc3RhY2sgb2YgaW5oZXJpdGVkIGRpY3Rpb25h
cmllcy4KKyAqLworSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfcmV2ZXJzZV9pbmhlcml0YW5j
ZV9zdGFjayA9IGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHN0YWNrID0gW3RoaXNdOworICAgIGxl
dCBpZGxfaW50ZXJmYWNlID0gdGhpczsKICAgICB3aGlsZSAoaWRsX2ludGVyZmFjZS5iYXNlKSB7
Ci0gICAgICAgIHZhciBiYXNlID0gdGhpcy5hcnJheS5tZW1iZXJzW2lkbF9pbnRlcmZhY2UuYmFz
ZV07CisgICAgICAgIGNvbnN0IGJhc2UgPSB0aGlzLmFycmF5Lm1lbWJlcnNbaWRsX2ludGVyZmFj
ZS5iYXNlXTsKICAgICAgICAgaWYgKCFiYXNlKSB7CiAgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoaWRsX2ludGVyZmFjZS50eXBlICsgIiAiICsgaWRsX2ludGVyZmFjZS5iYXNlICsgIiBub3Qg
Zm91bmQgKGluaGVyaXRlZCBieSAiICsgaWRsX2ludGVyZmFjZS5uYW1lICsgIikiKTsKICAgICAg
ICAgfSBlbHNlIGlmIChzdGFjay5pbmRleE9mKGJhc2UpID4gLTEpIHsKLSAgICAgICAgICAgIHN0
YWNrLnB1c2goYmFzZSk7Ci0gICAgICAgICAgICBsZXQgZGVwX2NoYWluID0gc3RhY2subWFwKGkg
PT4gaS5uYW1lKS5qb2luKCcsJyk7CisgICAgICAgICAgICBzdGFjay51bnNoaWZ0KGJhc2UpOwor
ICAgICAgICAgICAgY29uc3QgZGVwX2NoYWluID0gc3RhY2subWFwKGkgPT4gaS5uYW1lKS5qb2lu
KCcsJyk7CiAgICAgICAgICAgICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vycm9yKGAke3RoaXMubmFt
ZX0gaGFzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeTogJHtkZXBfY2hhaW59YCk7CiAgICAgICAgIH0K
ICAgICAgICAgaWRsX2ludGVyZmFjZSA9IGJhc2U7Ci0gICAgICAgIHN0YWNrLnB1c2goaWRsX2lu
dGVyZmFjZSk7CisgICAgICAgIHN0YWNrLnVuc2hpZnQoaWRsX2ludGVyZmFjZSk7CiAgICAgfQog
ICAgIHJldHVybiBzdGFjazsKIH07CkBAIC0xNTAzLDc2ICsxMzYzLDI3IEBAIElkbEludGVyZmFj
ZS5wcm90b3R5cGUuZ2V0X2luaGVyaXRhbmNlX3N0YWNrID0gZnVuY3Rpb24oKSB7CiAgKiBmb3Ig
aW5jbHVzaW9uIGluIHRoZSBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gZm9yIGVhc3kKICAqIGNv
bXBhcmlzb24gd2l0aCBhY3R1YWwgdmFsdWUKICAqLwotSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5k
ZWZhdWx0X3RvX2pzb25fb3BlcmF0aW9uID0gZnVuY3Rpb24oY2FsbGJhY2spIHsKLSAgICB2YXIg
bWFwID0gbmV3IE1hcCgpLCBpc0RlZmF1bHQgPSBmYWxzZTsKLSAgICB0aGlzLnRyYXZlcnNlX2lu
aGVyaXRlZF9hbmRfY29uc2VxdWVudGlhbF9pbnRlcmZhY2VzKGZ1bmN0aW9uKEkpIHsKK0lkbElu
dGVyZmFjZS5wcm90b3R5cGUuZGVmYXVsdF90b19qc29uX29wZXJhdGlvbiA9IGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoKQorICAgIGxldCBpc0RlZmF1bHQgPSBmYWxzZTsK
KyAgICBmb3IgKGNvbnN0IEkgb2YgdGhpcy5nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjaygp
KSB7CiAgICAgICAgIGlmIChJLmhhc19kZWZhdWx0X3RvX2pzb25fcmVndWxhcl9vcGVyYXRpb24o
KSkgewogICAgICAgICAgICAgaXNEZWZhdWx0ID0gdHJ1ZTsKLSAgICAgICAgICAgIEkubWVtYmVy
cy5mb3JFYWNoKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICAgIGZvciAoY29uc3QgbSBvZiBJLm1l
bWJlcnMpIHsKICAgICAgICAgICAgICAgICBpZiAobS5zcGVjaWFsICE9PSAic3RhdGljIiAmJiBt
LnR5cGUgPT0gImF0dHJpYnV0ZSIgJiYgSS5hcnJheS5pc19qc29uX3R5cGUobS5pZGxUeXBlKSkg
ewogICAgICAgICAgICAgICAgICAgICBtYXAuc2V0KG0ubmFtZSwgbS5pZGxUeXBlKTsKICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSBl
bHNlIGlmIChJLmhhc190b19qc29uX3JlZ3VsYXJfb3BlcmF0aW9uKCkpIHsKICAgICAgICAgICAg
IGlzRGVmYXVsdCA9IGZhbHNlOwogICAgICAgICB9Ci0gICAgfSk7Ci0gICAgcmV0dXJuIGlzRGVm
YXVsdCA/IG1hcCA6IG51bGw7Ci19OwotCi0vKioKLSAqIFRyYXZlcnNlcyBpbmhlcml0ZWQgaW50
ZXJmYWNlcyBmcm9tIHRoZSB0b3AgZG93bgotICogYW5kIGltZXBsZW1lbnRlZCBpbnRlcmZhY2Vz
IGluc2lkZSBvdXQuCi0gKiBJbnZva2VzIHxjYWxsYmFja3wgb24gZWFjaCBpbnRlcmZhY2UuCi0g
KgotICogVGhpcyBpcyBhbiBhYnN0cmFjdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdHJhdmVyc2Fs
Ci0gKiBhbGdvcml0aG0gc3BlY2lmaWVkIGluOgotICogaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlv
L3dlYmlkbC8jY29sbGVjdC1hdHRyaWJ1dGUtdmFsdWVzCi0gKiBHaXZlbiB0aGUgZm9sbG93aW5n
IGluaGVyaXRhbmNlIHRyZWU6Ci0gKgotICogICAgICAgICAgIEYKLSAqICAgICAgICAgICB8Ci0g
KiAgICAgICBDICAgRSAtIEkKLSAqICAgICAgIHwgICB8Ci0gKiAgICAgICBCIC0gRAotICogICAg
ICAgfAotICogICBHIC0gQSAtIEggLSBKCi0gKgotICogSW52b2tpbmcgdHJhdmVyc2VfaW5oZXJp
dGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMoKSBvbiBBCi0gKiB3b3VsZCB0cmF2ZXJz
ZSB0aGUgdHJlZSBpbiB0aGUgZm9sbG93aW5nIG9yZGVyOgotICogQyAtPiBCIC0+IEYgLT4gRSAt
PiBJIC0+IEQgLT4gQSAtPiBHIC0+IEggLT4gSgotICovCi0KLUlkbEludGVyZmFjZS5wcm90b3R5
cGUudHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMgPSBmdW5j
dGlvbihjYWxsYmFjaykgewotICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT0gImZ1bmN0aW9uIikg
ewotICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCk7CiAgICAgfQotICAgIHZhciBzdGFjayA9
IHRoaXMuZ2V0X2luaGVyaXRhbmNlX3N0YWNrKCk7Ci0gICAgX3RyYXZlcnNlX2luaGVyaXRlZF9h
bmRfY29uc2VxdWVudGlhbF9pbnRlcmZhY2VzKHN0YWNrLCBjYWxsYmFjayk7CisgICAgcmV0dXJu
IGlzRGVmYXVsdCA/IG1hcCA6IG51bGw7CiB9OwogCi1mdW5jdGlvbiBfdHJhdmVyc2VfaW5oZXJp
dGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMoc3RhY2ssIGNhbGxiYWNrKSB7Ci0gICAg
dmFyIEkgPSBzdGFjay5wb3AoKTsKLSAgICBjYWxsYmFjayhJKTsKLSAgICB2YXIgbWl4aW5zID0g
SS5hcnJheVsiaW1wbGVtZW50cyJdW0kubmFtZV0gfHwgSS5hcnJheVsiaW5jbHVkZXMiXVtJLm5h
bWVdOwotICAgIGlmIChtaXhpbnMpIHsKLSAgICAgICAgbWl4aW5zLmZvckVhY2goZnVuY3Rpb24o
aWQpIHsKLSAgICAgICAgICAgIHZhciBtaXhpbiA9IEkuYXJyYXkubWVtYmVyc1tpZF07Ci0gICAg
ICAgICAgICBpZiAoIW1peGluKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJ
bnRlcmZhY2UgIiArIGlkICsgIiBub3QgZm91bmQgKGltcGxlbWVudGVkIGJ5ICIgKyBJLm5hbWUg
KyAiKSIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdmFyIGludGVyZmFjZXMgPSBtaXhp
bi5nZXRfaW5oZXJpdGFuY2Vfc3RhY2soKTsKLSAgICAgICAgICAgIF90cmF2ZXJzZV9pbmhlcml0
ZWRfYW5kX2NvbnNlcXVlbnRpYWxfaW50ZXJmYWNlcyhpbnRlcmZhY2VzLCBjYWxsYmFjayk7Ci0g
ICAgICAgIH0pOwotICAgIH0KLSAgICBpZiAoc3RhY2subGVuZ3RoID4gMCkgewotICAgICAgICBf
dHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMoc3RhY2ssIGNh
bGxiYWNrKTsKLSAgICB9Ci19Ci0KIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0
aW9uKCkKIHsKLSAgICBpZiAodGhpcy5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJOb0ludGVyZmFj
ZU9iamVjdCIpIHx8IHRoaXMuaXNfbWl4aW4oKSkKKyAgICBpZiAodGhpcy5oYXNfZXh0ZW5kZWRf
YXR0cmlidXRlKCJMZWdhY3lOb0ludGVyZmFjZU9iamVjdCIpIHx8IHRoaXMuaXNfbWl4aW4oKSkK
ICAgICB7CiAgICAgICAgIC8vIE5vIHRlc3RzIHRvIGRvIHdpdGhvdXQgYW4gaW5zdGFuY2UuICBU
T0RPOiBXZSBzaG91bGQgc3RpbGwgYmUgYWJsZQogICAgICAgICAvLyB0byBydW4gdGVzdHMgb24g
dGhlIHByb3RvdHlwZSBvYmplY3QsIGlmIHdlIG9idGFpbiBvbmUgdGhyb3VnaCBzb21lCkBAIC0x
NTgwLDEwICsxMzkxLDE2IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9u
KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghdGhpcy5leHBvc2VkKSB7Ci0g
ICAgICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgYXNzZXJ0X2ZhbHNlKHRoaXMubmFtZSBpbiBzZWxmKTsKLSAgICAgICAgfS5iaW5k
KHRoaXMpLCB0aGlzLm5hbWUgKyAiIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QiKTsKKyAgICAvLyBJZiB0aGUgaW50ZXJmYWNlIG9iamVjdCBp
cyBub3QgZXhwb3NlZCwgb25seSB0ZXN0IHRoYXQuIE1lbWJlcnMgY2FuJ3QgYmUKKyAgICAvLyB0
ZXN0ZWQgZWl0aGVyLCBidXQgb2JqZWN0cyBjb3VsZCBzdGlsbCBiZSB0ZXN0ZWQgaW4gfHRlc3Rf
b2JqZWN0fC4KKyAgICBpZiAoIXRoaXMuZXhwb3NlZCkKKyAgICB7CisgICAgICAgIGlmICghdGhp
cy51bnRlc3RlZCkKKyAgICAgICAgeworICAgICAgICAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMu
bmFtZSwgdGVzdCwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHRo
aXMubmFtZSBpbiBzZWxmKTsKKyAgICAgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsg
IiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0
Iik7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTYwMywyMyArMTQy
MCwxNiBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3QgPSBmdW5jdGlvbigpCiAgICAgdGhp
cy50ZXN0X21lbWJlcnMoKTsKIH07CiAKLS8vIFRoaXMgc3VwcG9ydHMgYm90aCBDb25zdHJ1Y3Rv
ciBleHRlbmRlZCBhdHRyaWJ1dGVzIGFuZCBjb25zdHJ1Y3RvcgotLy8gb3BlcmF0aW9ucyB1bnRp
bCBhbGwgaWRsIGZyYWdtZW50cyBoYXZlIGJlZW4gdXBkYXRlZC4KIElkbEludGVyZmFjZS5wcm90
b3R5cGUuY29uc3RydWN0b3JzID0gZnVuY3Rpb24oKQogewotICAgIHZhciBleHRlbmRlZEF0dHJp
YnV0ZXMgPSB0aGlzLmV4dEF0dHJzCi0gICAgICAgIC5maWx0ZXIoZnVuY3Rpb24oYXR0cikgeyBy
ZXR1cm4gYXR0ci5uYW1lID09ICJDb25zdHJ1Y3RvciI7IH0pOwotICAgIHZhciBvcGVyYXRpb25z
ID0gdGhpcy5tZW1iZXJzCisgICAgcmV0dXJuIHRoaXMubWVtYmVycwogICAgICAgICAuZmlsdGVy
KGZ1bmN0aW9uKG0pIHsgcmV0dXJuIG0udHlwZSA9PSAiY29uc3RydWN0b3IiOyB9KTsKLSAgICBy
ZXR1cm4gZXh0ZW5kZWRBdHRyaWJ1dGVzLmNvbmNhdChvcGVyYXRpb25zKTsKIH0KIAogSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiB7CiAgICAgc3Vic2V0VGVz
dEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgLy8gVGhp
cyBmdW5jdGlvbiB0ZXN0cyBXZWJJREwgYXMgb2YgMjAxNS0wMS0xMy4KLQogICAgICAgICBpZiAo
IXRoaXMuc2hvdWxkX2hhdmVfaW50ZXJmYWNlX29iamVjdCgpKSB7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KQEAgLTE2NjEsOCArMTQ3MSw2IEBAIElkbEludGVyZmFjZS5wcm90b3R5
cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogCiAgICAgICAgIC8vICIqIEl0cyBbW0NvbnN0cnVj
dF1dIGludGVybmFsIHByb3BlcnR5IGlzIHNldCBhcyBkZXNjcmliZWQgaW4KICAgICAgICAgLy8g
ICAgRUNNQS0yNjIgc2VjdGlvbiAxOS4yLjIuMy4iCi0gICAgICAgIC8vIFRlc3RlZCBiZWxvdyBp
ZiBubyBjb25zdHJ1Y3RvciBpcyBkZWZpbmVkLiAgVE9ETzogdGVzdCBjb25zdHJ1Y3RvcnMKLSAg
ICAgICAgLy8gaWYgZGVmaW5lZC4KIAogICAgICAgICAvLyAiKiBJdHMgQEBoYXNJbnN0YW5jZSBw
cm9wZXJ0eSBpcyBzZXQgYXMgZGVzY3JpYmVkIGluIEVDTUEtMjYyCiAgICAgICAgIC8vICAgIHNl
Y3Rpb24gMTkuMi4zLjgsIHVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkLiIKQEAgLTE2ODEsNyAr
MTQ4OSw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgLy8gICAgdmFsdWUgb2YgW1tQcm90b3R5cGVdXSBpcyB0aGUgaW50ZXJmYWNl
IG9iamVjdCBmb3IgdGhhdCBvdGhlcgogICAgICAgICAgICAgLy8gICAgaW50ZXJmYWNlLiIKICAg
ICAgICAgICAgIHZhciBpbmhlcml0ZWRfaW50ZXJmYWNlID0gdGhpcy5hcnJheS5tZW1iZXJzW3Ro
aXMuYmFzZV07Ci0gICAgICAgICAgICBpZiAoIWluaGVyaXRlZF9pbnRlcmZhY2UuaGFzX2V4dGVu
ZGVkX2F0dHJpYnV0ZSgiTm9JbnRlcmZhY2VPYmplY3QiKSkgeworICAgICAgICAgICAgaWYgKCFp
bmhlcml0ZWRfaW50ZXJmYWNlLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIkxlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0IikpIHsKICAgICAgICAgICAgICAgICBpbmhlcml0ZWRfaW50ZXJmYWNlLmFzc2Vy
dF9pbnRlcmZhY2Vfb2JqZWN0X2V4aXN0cygpOwogICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMocHJvdG90eXBlLCBpbmhlcml0ZWRfaW50ZXJmYWNlLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCks
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvdG90eXBlIG9mICcgKyB0aGlzLm5h
bWUgKyAnIGlzIG5vdCAnICsKQEAgLTE2OTUsMTIgKzE1MDMsMTIgQEAgSWRsSW50ZXJmYWNlLnBy
b3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJwcm90b3R5cGUgb2Ygc2VsZidzIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1l
KSArICIgaXMgbm90IEZ1bmN0aW9uLnByb3RvdHlwZSIpOwogICAgICAgICB9CiAKKyAgICAgICAg
Ly8gQWx3YXlzIHRlc3QgZm9yIFtbQ29uc3RydWN0XV06CisgICAgICAgIC8vIGh0dHBzOi8vZ2l0
aHViLmNvbS9oZXljYW0vd2ViaWRsL2lzc3Vlcy82OTgKKyAgICAgICAgYXNzZXJ0X3RydWUoaXND
b25zdHJ1Y3Rvcih0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkpLCAiaW50ZXJmYWNlIG9iamVj
dCBtdXN0IHBhc3MgSXNDb25zdHJ1Y3RvciBjaGVjayIpOworCiAgICAgICAgIGlmICghdGhpcy5j
b25zdHJ1Y3RvcnMoKS5sZW5ndGgpIHsKLSAgICAgICAgICAgIC8vICJUaGUgaW50ZXJuYWwgW1tD
YWxsXV0gbWV0aG9kIG9mIHRoZSBpbnRlcmZhY2Ugb2JqZWN0IGJlaGF2ZXMgYXMKLSAgICAgICAg
ICAgIC8vIGZvbGxvd3MgLiAuIC4KLSAgICAgICAgICAgIC8vCi0gICAgICAgICAgICAvLyAiSWYg
SSB3YXMgbm90IGRlY2xhcmVkIHdpdGggYSBbQ29uc3RydWN0b3JdIGV4dGVuZGVkIGF0dHJpYnV0
ZSwKLSAgICAgICAgICAgIC8vIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IuIgorICAgICAgICAgICAg
Ly8gIklmIEkgd2FzIG5vdCBkZWNsYXJlZCB3aXRoIGEgY29uc3RydWN0b3Igb3BlcmF0aW9uLCB0
aGVuIHRocm93IGEgVHlwZUVycm9yLiIKICAgICAgICAgICAgIHZhciBpbnRlcmZhY2Vfb2JqZWN0
ID0gdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpOwogICAgICAgICAgICAgYXNzZXJ0X3Rocm93
c19qcyhnbG9iYWxPZihpbnRlcmZhY2Vfb2JqZWN0KS5UeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewog
ICAgICAgICAgICAgICAgIGludGVyZmFjZV9vYmplY3QoKTsKQEAgLTE3NzMsNyArMTU4MSw3IEBA
IElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgaWYgKCF0aGlzLmV4cG9zdXJlU2V0LmhhcygiV2luZG93IikpIHsKICAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vycm9yKCJJbnZhbGlkIElETDogTGVnYWN5V2luZG93QWxp
YXMgZXh0ZW5kZWQgYXR0cmlidXRlIG9uICIgKyB0aGlzLm5hbWUgKyAiIHdoaWNoIGlzIG5vdCBl
eHBvc2VkIGluIFdpbmRvdyIpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gVE9ETzog
d2hlbiB0ZXN0aW5nIG9mIFtOb0ludGVyZmFjZU9iamVjdF0gaW50ZXJmYWNlcyBpcyBzdXBwb3J0
ZWQsCisgICAgICAgICAgICAvLyBUT0RPOiB3aGVuIHRlc3Rpbmcgb2YgW0xlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0XSBpbnRlcmZhY2VzIGlzIHN1cHBvcnRlZCwKICAgICAgICAgICAgIC8vIGNoZWNr
IHRoYXQgaXQncyBub3Qgc3BlY2lmaWVkIHRvZ2V0aGVyIHdpdGggTGVnYWN5V2luZG93QWxpYXMu
CiAKICAgICAgICAgICAgIC8vIFRPRE86IG1heWJlIGNoZWNrIHRoYXQgW0xlZ2FjeVdpbmRvd0Fs
aWFzXcKgaXMgbm90IHNwZWNpZmllZCBvbiBhIHBhcnRpYWwgaW50ZXJmYWNlLgpAQCAtMTk2Myw3
ICsxNzcxLDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigp
CiAKICAgICAgICAgLy8gTmV4dCwgdGVzdCB0aGF0IHRoZSBbW1Byb3RvdHlwZV1dIG9mIHRoZSBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAogICAgICAgICAvLyBpcyBjb3JyZWN0LiAoVGhpcyBp
cyBtYWRlIHNvbWV3aGF0IGRpZmZpY3VsdCBieSB0aGUgZXhpc3RlbmNlIG9mCi0gICAgICAgIC8v
IFtOb0ludGVyZmFjZU9iamVjdF0uKQorICAgICAgICAvLyBbTGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3RdLikKICAgICAgICAgLy8gVE9ETzogQXJ5ZWggdGhpbmtzIHRoZXJlJ3MgYXQgbGVhc3Qgb3Ro
ZXIgcGxhY2UgaW4gdGhpcyBmaWxlIHdoZXJlCiAgICAgICAgIC8vICAgICAgIHdlIHRyeSB0byBm
aWd1cmUgb3V0IGlmIGFuIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGlzCiAgICAgICAgIC8v
ICAgICAgIGNvcnJlY3QuIENvbnNvbGlkYXRlIHRoYXQgY29kZS4KQEAgLTE5OTYsNyArMTgwNCw3
IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgaWYgKHRoaXMuYmFzZSkgewogICAgICAgICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNl
ID0gdGhpcy5iYXNlOwogICAgICAgICAgICAgICAgIHZhciBwYXJlbnQgPSB0aGlzLmFycmF5Lm1l
bWJlcnNbaW5oZXJpdF9pbnRlcmZhY2VdOwotICAgICAgICAgICAgICAgIGlmICghcGFyZW50Lmhh
c19leHRlbmRlZF9hdHRyaWJ1dGUoIk5vSW50ZXJmYWNlT2JqZWN0IikpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoIXBhcmVudC5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdCIpKSB7CiAgICAgICAgICAgICAgICAgICAgIHBhcmVudC5hc3NlcnRfaW50ZXJmYWNl
X29iamVjdF9leGlzdHMoKTsKICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdF9pbnRlcmZhY2Vf
aW50ZXJmYWNlX29iamVjdCA9IHBhcmVudC5nZXRfaW50ZXJmYWNlX29iamVjdCgpOwogICAgICAg
ICAgICAgICAgIH0KQEAgLTIwNzIsOCArMTg4MCw4IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUu
dGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHRoaXMu
Z2V0X2ludGVyZmFjZV9vYmplY3QoKSwgInByb3RvdHlwZSIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2ludGVyZmFjZSAiJyArIHRoaXMubmFtZSArICciIGRvZXMgbm90IGhhdmUgb3du
IHByb3BlcnR5ICJwcm90b3R5cGUiJyk7CiAKLSAgICAgICAgLy8gIklmIHRoZSBbTm9JbnRlcmZh
Y2VPYmplY3RdIGV4dGVuZGVkIGF0dHJpYnV0ZSB3YXMgbm90IHNwZWNpZmllZCBvbgotICAgICAg
ICAvLyB0aGUgaW50ZXJmYWNlLCB0aGVuIHRoZSBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBt
dXN0IGFsc28gaGF2ZSBhCisgICAgICAgIC8vICJJZiB0aGUgW0xlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0XSBleHRlbmRlZCBhdHRyaWJ1dGUgd2FzIG5vdCBzcGVjaWZpZWQKKyAgICAgICAgLy8gb24g
dGhlIGludGVyZmFjZSwgdGhlbiB0aGUgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBh
bHNvIGhhdmUgYQogICAgICAgICAvLyBwcm9wZXJ0eSBuYW1lZCDigJxjb25zdHJ1Y3RvcuKAnSB3
aXRoIGF0dHJpYnV0ZXMgeyBbW1dyaXRhYmxlXV06IHRydWUsCiAgICAgICAgIC8vIFtbRW51bWVy
YWJsZV1dOiBmYWxzZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZSB9IHdob3NlIHZhbHVlIGlzIGEK
ICAgICAgICAgLy8gcmVmZXJlbmNlIHRvIHRoZSBpbnRlcmZhY2Ugb2JqZWN0IGZvciB0aGUgaW50
ZXJmYWNlLiIKQEAgLTI4MTgsOSArMjYyNiw2IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVz
dF9vYmplY3QgPSBmdW5jdGlvbihkZXNjKQogICAgIHsKICAgICAgICAgLy8gUmVzdWx0IG9mIFtb
SXNIVE1MRERBXV0gc2xvdAogICAgICAgICBleHBlY3RlZF90eXBlb2YgPSAidW5kZWZpbmVkIjsK
LSAgICB9IGVsc2UgaWYgKHRoaXMubWVtYmVycy5zb21lKGZ1bmN0aW9uKG1lbWJlcikgeyByZXR1
cm4gbWVtYmVyLmxlZ2FjeWNhbGxlcjsgfSkpCi0gICAgewotICAgICAgICBleHBlY3RlZF90eXBl
b2YgPSAiZnVuY3Rpb24iOwogICAgIH0KICAgICBlbHNlCiAgICAgewpAQCAtMzA4MywxMSArMjg4
OCw2IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUuZG9faW50ZXJmYWNlX2F0dHJpYnV0ZV9hc3Nl
cnRzID0gZnVuY3Rpb24ob2JqLCBtZW1iZXIsIGFfCiAKICAgICB2YXIgcGVuZGluZ1Byb21pc2Vz
ID0gW107CiAKLSAgICAvLyAiRm9yIGVhY2ggZXhwb3NlZCBhdHRyaWJ1dGUgb2YgdGhlIGludGVy
ZmFjZSwgd2hldGhlciBpdCB3YXMgZGVjbGFyZWQgb24KLSAgICAvLyB0aGUgaW50ZXJmYWNlIGl0
c2VsZiBvciBvbmUgb2YgaXRzIGNvbnNlcXVlbnRpYWwgaW50ZXJmYWNlcywgdGhlcmUgTVVTVAot
ICAgIC8vIGV4aXN0IGEgY29ycmVzcG9uZGluZyBwcm9wZXJ0eS4gVGhlIGNoYXJhY3RlcmlzdGlj
cyBvZiB0aGlzIHByb3BlcnR5IGFyZQotICAgIC8vIGFzIGZvbGxvd3M6IgotCiAgICAgLy8gIlRo
ZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSBpcyB0aGUgaWRlbnRpZmllciBvZiB0aGUgYXR0cmlidXRl
LiIKICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KG9iaiwgbWVtYmVyLm5hbWUpOwogCkBAIC0zNTQz
LDggKzMzNDMsNiBAQCBJZGxOYW1lc3BhY2UucHJvdG90eXBlLnRlc3QgPSBmdW5jdGlvbiAoKQog
ZnVuY3Rpb24gaWRsX3Rlc3Qoc3JjcywgZGVwcywgaWRsX3NldHVwX2Z1bmMpIHsKICAgICByZXR1
cm4gcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICh0KSB7CiAgICAgICAgIHZhciBpZGxfYXJyYXkgPSBu
ZXcgSWRsQXJyYXkoKTsKLSAgICAgICAgc3JjcyA9IChzcmNzIGluc3RhbmNlb2YgQXJyYXkpID8g
c3JjcyA6IFtzcmNzXSB8fCBbXTsKLSAgICAgICAgZGVwcyA9IChkZXBzIGluc3RhbmNlb2YgQXJy
YXkpID8gZGVwcyA6IFtkZXBzXSB8fCBbXTsKICAgICAgICAgdmFyIHNldHVwX2Vycm9yID0gbnVs
bDsKICAgICAgICAgY29uc3QgdmFsaWRhdGlvbklnbm9yZWQgPSBbCiAgICAgICAgICAgICAiY29u
c3RydWN0b3ItbWVtYmVyIiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtb25seS1hcGkuanMgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0LW9ubHktYXBp
LmpzCmluZGV4IGVmNjZlMGU3MzNmOWM2ODAwNDEyOWQyNGIzYzlhZDEyYjlhYTA3MDguLmE2NmVi
NDRlZGU3YzE1YTM3ZmIxYTNjNWRkNWQyYWJjMTcxNzdjOGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtb25seS1h
cGkuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC1vbmx5LWFwaS5qcwpAQCAtMjksNzIgKzI5LDMgQEAgZnVuY3Rpb24gbG9h
ZFNjcmlwdChwYXRoKSB7CiAgICAgcmV0dXJuIHA7CiAgIH0KIH0KLQotLyoqCi0gKiBBIGhlbHBl
ciBmb3IgQ2hyb21pdW0tYmFzZWQgYnJvd3NlcnMgdG8gbG9hZCBNb2pvIEpTIGJpbmRpbmdzCi0g
KgotICogVGhpcyBpcyBhbiBhc3luYyBmdW5jdGlvbiB0aGF0IHdvcmtzIGluIGJvdGggd29ya2Vy
cyBhbmQgd2luZG93cy4gSXQgZmlyc3QKLSAqIGxvYWRzIG1vam9fYmluZGluZ3MuanMsIGRpc2Fi
bGVzIGF1dG9tYXRpYyBkZXBlbmRlbmN5IGxvYWRpbmcsIGFuZCBsb2FkcyBhbGwKLSAqIHJlc291
cmNlcyBzZXF1ZW50aWFsbHkuIFRoZSBwcm9taXNlIHJlc29sdmVzIGlmIGV2ZXJ5dGhpbmcgbG9h
ZHMKLSAqIHN1Y2Nlc3NmdWxseSwgb3IgcmVqZWN0cyBpZiBhbnkgZXhjZXB0aW9uIGlzIHJhaXNl
ZC4gSWYgdGVzdGhhcm5lc3MuanMgaXMKLSAqIHVzZWQsIGFuIHVuY2F1Z2h0IGV4Y2VwdGlvbiB3
aWxsIHRlcm1pbmF0ZSB0aGUgdGVzdCB3aXRoIGEgaGFybmVzcyBlcnJvcgotICogKHVubGVzcyBg
YWxsb3dfdW5jYXVnaHRfZXhjZXB0aW9uYCBpcyB0cnVlKSwgd2hpY2ggaXMgdXN1YWxseSB0aGUg
ZGVzaXJlZAotICogYmVoYXZpb3VyLgotICoKLSAqIFRoaXMgZnVuY3Rpb24gYWxzbyB3b3JrcyB3
aXRoIEJsaW5rIHdlYiB0ZXN0cyBsb2FkZWQgZnJvbSBmaWxlOi8vLCBpbiB3aGljaAotICogY2Fz
ZSBmaWxlOi8vIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCAnL2dlbi8uLi4nIFVSTHMuCi0gKgot
ICogT25seSBjYWxsIHRoaXMgZnVuY3Rpb24gaWYgaXNDaHJvbWl1bUJhc2VkID09PSB0cnVlLgot
ICoKLSAqIEBwYXJhbSB7QXJyYXkuPHN0cmluZz59IHJlc291cmNlcyAtIEEgbGlzdCBvZiBzY3Jp
cHRzIHRvIGxvYWQ6IE1vam8gSlMKLSAqICAgYmluZGluZ3Mgc2hvdWxkIGJlIG9mIHRoZSBmb3Jt
ICcvZ2VuLy4uLyoubW9qb20uanMnIG9yCi0gKiAgICcvZ2VuLy4uLyoubW9qb20tbGl0ZS5qcycg
KHJlcXVpcmVzIGBsaXRlYCB0byBiZSB0cnVlKTsgdGhlIG9yZGVyIGRvZXMgbm90Ci0gKiAgIG1h
dHRlci4gRG8gbm90IGluY2x1ZGUgJ21vam9fYmluZGluZ3MuanMnIG9yICdtb2pvX2JpbmRpbmdz
X2xpdGUuanMnLgotICogQHBhcmFtIHtib29sZWFuPX0gbGl0ZSAtIFdoZXRoZXIgdGhlIGxpdGUg
YmluZGluZ3MgKCoubW9qb20tbGl0ZS5qcykgYXJlIHVzZWQKLSAqICAgKGRlZmF1bHQgaXMgZmFs
c2UpLgotICogQHJldHVybnMge1Byb21pc2V9Ci0gKi8KLWFzeW5jIGZ1bmN0aW9uIGxvYWRNb2pv
UmVzb3VyY2VzKHJlc291cmNlcywgbGl0ZSA9IGZhbHNlKSB7Ci0gIGlmICghaXNDaHJvbWl1bUJh
c2VkKSB7Ci0gICAgdGhyb3cgbmV3IEVycm9yKCdNb2pvSlMgbm90IGVuYWJsZWQ7IHN0YXJ0IENo
cm9tZSB3aXRoIC0tZW5hYmxlLWJsaW5rLWZlYXR1cmVzPU1vam9KUyxNb2pvSlNUZXN0Jyk7Ci0g
IH0KLSAgaWYgKHJlc291cmNlcy5sZW5ndGggPT0gMCkgewotICAgIHJldHVybjsKLSAgfQotCi0g
IGxldCBnZW5QcmVmaXggPSAnJzsKLSAgaWYgKHNlbGYubG9jYXRpb24ucGF0aG5hbWUuaW5jbHVk
ZXMoJy93ZWJfdGVzdHMvJykpIHsKLSAgICAvLyBCbGluayBpbnRlcm5hbCB3ZWIgdGVzdHMKLSAg
ICBnZW5QcmVmaXggPSAnZmlsZTovLyc7Ci0gIH0KLQotICBmb3IgKGNvbnN0IHBhdGggb2YgcmVz
b3VyY2VzKSB7Ci0gICAgLy8gV2Ugd2FudCB0byBsb2FkIG1vam9fYmluZGluZ3MuanMgc2VwYXJh
dGVseSB0byBzZXQgbW9qby5jb25maWcuCi0gICAgaWYgKHBhdGguZW5kc1dpdGgoJy9tb2pvX2Jp
bmRpbmdzLmpzJykpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignRG8gbm90IGxvYWQgbW9qb19i
aW5kaW5ncy5qcyBleHBsaWNpdGx5LicpOwotICAgIH0KLSAgICBpZiAocGF0aC5lbmRzV2l0aCgn
L21vam9fYmluZGluZ3NfbGl0ZS5qcycpKSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RvIG5v
dCBsb2FkIG1vam9fYmluZGluZ3NfbGl0ZS5qcyBleHBsaWNpdGx5LicpOwotICAgIH0KLSAgICBp
ZiAobGl0ZSkgewotICAgICAgaWYgKCEgL15cL2dlblwvLipcLm1vam9tLWxpdGVcLmpzJC8udGVz
dChwYXRoKSkgewotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCByZXNvdXJj
ZSBwYXRoOiAke3BhdGh9YCk7Ci0gICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgIGlmICghIC9e
XC9nZW5cLy4qXC5tb2pvbVwuanMkLy50ZXN0KHBhdGgpKSB7Ci0gICAgICAgIHRocm93IG5ldyBF
cnJvcihgVW5yZWNvZ25pemVkIHJlc291cmNlIHBhdGg6ICR7cGF0aH1gKTsKLSAgICAgIH0KLSAg
ICB9Ci0gIH0KLQotICBpZiAobGl0ZSkgewotICAgIGF3YWl0IGxvYWRTY3JpcHQoZ2VuUHJlZml4
ICsgJy9nZW4vbGF5b3V0X3Rlc3RfZGF0YS9tb2pvL3B1YmxpYy9qcy9tb2pvX2JpbmRpbmdzX2xp
dGUuanMnKTsKLSAgfSBlbHNlIHsKLSAgICBhd2FpdCBsb2FkU2NyaXB0KGdlblByZWZpeCArICcv
Z2VuL2xheW91dF90ZXN0X2RhdGEvbW9qby9wdWJsaWMvanMvbW9qb19iaW5kaW5ncy5qcycpOwot
ICAgIG1vam8uY29uZmlnLmF1dG9Mb2FkTW9qb21EZXBzID0gZmFsc2U7Ci0gIH0KLQotICBmb3Ig
KGNvbnN0IHBhdGggb2YgcmVzb3VyY2VzKSB7Ci0gICAgYXdhaXQgbG9hZFNjcmlwdChnZW5QcmVm
aXggKyBwYXRoKTsKLSAgfQotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC9jb25mdGVzdC5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvY29uZnRl
c3QucHkKaW5kZXggMWJhZjY2MjJiMDU5OWM0NGZiODVkMjY3Mjg4MDMxYTA1ZTQyNDNkYy4uNzQ0
YTgwYzA4YmVmZWFhNGVhY2JjNTY3MTg2ZDNjN2UzZWUzNjM2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC9jb25m
dGVzdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Jlc291cmNlcy90ZXN0L2NvbmZ0ZXN0LnB5CkBAIC00LDEyICs0LDExIEBAIGltcG9ydCBvcwog
aW1wb3J0IHNzbAogaW1wb3J0IHN5cwogaW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCB1cmxsaWIK
IAogaW1wb3J0IGh0bWw1bGliCiBpbXBvcnQgcHkKIGltcG9ydCBweXRlc3QKLWZyb20gc2l4IGlt
cG9ydCB0ZXh0X3R5cGUKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCB1cmxsaWIKIAogZnJvbSB3cHRz
ZXJ2ZXIgaW1wb3J0IFdQVFNlcnZlcgogCkBAIC0xOSw2ICsxOCw5IEBAIEhBUk5FU1MgPSBvcy5w
YXRoLmpvaW4oSEVSRSwgJ2hhcm5lc3MuaHRtbCcpCiBURVNUX1RZUEVTID0gKCdmdW5jdGlvbmFs
JywgJ3VuaXQnKQogREVGQVVMVF9WQVJJQU5UUyA9IFsiP2RlZmF1bHQiXQogCitzeXMucGF0aC5p
bnNlcnQoMCwgb3MucGF0aC5ub3JtcGF0aChvcy5wYXRoLmpvaW4oV1BUX1JPT1QsICJ0b29scyIp
KSkKK2ltcG9ydCBsb2NhbHBhdGhzCisKIHN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLm5vcm1w
YXRoKG9zLnBhdGguam9pbihXUFRfUk9PVCwgInRvb2xzIiwgIndlYmRyaXZlciIpKSkKIGltcG9y
dCB3ZWJkcml2ZXIKIApAQCAtMzksNyArNDEsMTEgQEAgZGVmIHB5dGVzdF9jb2xsZWN0X2ZpbGUo
cGF0aCwgcGFyZW50KToKICAgICAgICAgcmV0dXJuCiAgICAgdGVzdF90eXBlID0gdGVzdF90eXBl
LnNwbGl0KG9zLnBhdGguc2VwKVsxXQogCi0gICAgcmV0dXJuIEhUTUxJdGVtKHN0cihwYXRoKSwg
dGVzdF90eXBlLCBwYXJlbnQpCisgICAgIyBIYW5kbGUgdGhlIGRlcHJlY2F0aW9uIG9mIE5vZGUg
Y29uc3RydWN0aW9uIGluIHB5dGVzdDYKKyAgICAjIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2Vu
L3N0YWJsZS9kZXByZWNhdGlvbnMuaHRtbCNub2RlLWNvbnN0cnVjdGlvbi1jaGFuZ2VkLXRvLW5v
ZGUtZnJvbS1wYXJlbnQKKyAgICBpZiBoYXNhdHRyKEhUTUxJdGVtLCAiZnJvbV9wYXJlbnQiKToK
KyAgICAgICAgcmV0dXJuIEhUTUxJdGVtLmZyb21fcGFyZW50KHBhcmVudCwgZmlsZW5hbWU9c3Ry
KHBhdGgpLCB0ZXN0X3R5cGU9dGVzdF90eXBlKQorICAgIHJldHVybiBIVE1MSXRlbShwYXJlbnQs
IHN0cihwYXRoKSwgdGVzdF90eXBlKQogCiAKIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6
CkBAIC01Niw4ICs2Miw2IEBAIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllcz1jYXBhYmlsaXRpZXMp
CiAgICAgY29uZmlnLmFkZF9jbGVhbnVwKGNvbmZpZy5kcml2ZXIuZW5kKQogCi0gICAgY29uZmln
LnNlcnZlciA9IFdQVFNlcnZlcihXUFRfUk9PVCkKLSAgICBjb25maWcuc2VydmVyLnN0YXJ0KCkK
ICAgICAjIEFsdGhvdWdoIHRoZSBuYW1lIG9mIHRoZSBgX2NyZWF0ZV91bnZlcmlmaWVkX2NvbnRl
eHRgIG1ldGhvZCBzdWdnZXN0cwogICAgICMgdGhhdCBpdCBpcyBub3QgaW50ZW5kZWQgZm9yIGV4
dGVybmFsIGNvbnN1bXB0aW9uLCB0aGUgc3RhbmRhcmQgbGlicmFyeSdzCiAgICAgIyBkb2N1bWVu
dGF0aW9uIGV4cGxpY2l0bHkgZW5kb3JzZXMgaXRzIHVzZToKQEAgLTY4LDYgKzcyLDkgQEAgZGVm
IHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKICAgICAjCiAgICAgIyBodHRwczovL2RvY3MucHl0
aG9uLm9yZy8yL2xpYnJhcnkvaHR0cGxpYi5odG1sI2h0dHBsaWIuSFRUUFNDb25uZWN0aW9uCiAg
ICAgY29uZmlnLnNzbF9jb250ZXh0ID0gc3NsLl9jcmVhdGVfdW52ZXJpZmllZF9jb250ZXh0KCkK
KworICAgIGNvbmZpZy5zZXJ2ZXIgPSBXUFRTZXJ2ZXIoV1BUX1JPT1QpCisgICAgY29uZmlnLnNl
cnZlci5zdGFydChjb25maWcuc3NsX2NvbnRleHQpCiAgICAgY29uZmlnLmFkZF9jbGVhbnVwKGNv
bmZpZy5zZXJ2ZXIuc3RvcCkKIAogCkBAIC04Myw3ICs5MCw3IEBAIGRlZiByZXNvbHZlX3VyaShj
b250ZXh0LCB1cmkpOgogCiAKIGNsYXNzIEhUTUxJdGVtKHB5dGVzdC5JdGVtLCBweXRlc3QuQ29s
bGVjdG9yKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZW5hbWUsIHRlc3RfdHlwZSwgcGFy
ZW50KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCBmaWxlbmFtZSwgdGVzdF90eXBl
KToKICAgICAgICAgc2VsZi51cmwgPSBwYXJlbnQuc2Vzc2lvbi5jb25maWcuc2VydmVyLnVybChm
aWxlbmFtZSkKICAgICAgICAgc2VsZi50eXBlID0gdGVzdF90eXBlCiAgICAgICAgIHNlbGYudmFy
aWFudHMgPSBbXQpAQCAtMTA1LDcgKzExMiw3IEBAIGNsYXNzIEhUTUxJdGVtKHB5dGVzdC5JdGVt
LCBweXRlc3QuQ29sbGVjdG9yKToKICAgICAgICAgaW5jbHVkZXNfdmFyaWFudHNfc2NyaXB0ID0g
RmFsc2UKICAgICAgICAgc2VsZi5leHBlY3RlZCA9IE5vbmUKIAotICAgICAgICBmb3IgZWxlbWVu
dCBpbiBwYXJzZWQuZ2V0aXRlcmF0b3IoKToKKyAgICAgICAgZm9yIGVsZW1lbnQgaW4gcGFyc2Vk
Lml0ZXIoKToKICAgICAgICAgICAgIGlmIG5vdCBuYW1lIGFuZCBlbGVtZW50LnRhZyA9PSAndGl0
bGUnOgogICAgICAgICAgICAgICAgIG5hbWUgPSBlbGVtZW50LnRleHQKICAgICAgICAgICAgICAg
ICBjb250aW51ZQpAQCAtMTE0LDcgKzEyMSwxMSBAQCBjbGFzcyBIVE1MSXRlbShweXRlc3QuSXRl
bSwgcHl0ZXN0LkNvbGxlY3Rvcik6CiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAg
ICAgIGlmIGVsZW1lbnQudGFnID09ICdzY3JpcHQnOgogICAgICAgICAgICAgICAgIGlmIGVsZW1l
bnQuYXR0cmliLmdldCgnaWQnKSA9PSAnZXhwZWN0ZWQnOgotICAgICAgICAgICAgICAgICAgICBz
ZWxmLmV4cGVjdGVkID0ganNvbi5sb2Fkcyh0ZXh0X3R5cGUoZWxlbWVudC50ZXh0KSkKKyAgICAg
ICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHBlY3Rl
ZCA9IGpzb24ubG9hZHMoZWxlbWVudC50ZXh0KQorICAgICAgICAgICAgICAgICAgICBleGNlcHQg
VmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCJGYWlsZWQgcGFyc2lu
ZyBKU09OIGluICVzIiAlIGZpbGVuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UK
IAogICAgICAgICAgICAgICAgIHNyYyA9IGVsZW1lbnQuYXR0cmliLmdldCgnc3JjJywgJycpCiAK
QEAgLTE5Miw2ICsyMDMsOCBAQCBjbGFzcyBIVE1MSXRlbShweXRlc3QuSXRlbSwgcHl0ZXN0LkNv
bGxlY3Rvcik6CiAgICAgICAgIHRlc3RfdXJsID0gc2VsZi51cmwgKyB2YXJpYW50CiAgICAgICAg
IGFjdHVhbCA9IGRyaXZlci5leGVjdXRlX2FzeW5jX3NjcmlwdCgncnVuVGVzdCgiJXMiLCAiZm9v
IiwgYXJndW1lbnRzWzBdKScgJSB0ZXN0X3VybCkKIAorICAgICAgICBwcmludChqc29uLmR1bXBz
KGFjdHVhbCwgaW5kZW50PTIpKQorCiAgICAgICAgIHN1bW1hcml6ZWQgPSBzZWxmLl9zdW1tYXJp
emUoY29weS5kZWVwY29weShhY3R1YWwpKQogCiAgICAgICAgIHByaW50KGpzb24uZHVtcHMoc3Vt
bWFyaXplZCwgaW5kZW50PTIpKQpAQCAtMjAzLDYgKzIxNiwxNyBAQCBjbGFzcyBIVE1MSXRlbShw
eXRlc3QuSXRlbSwgcHl0ZXN0LkNvbGxlY3Rvcik6CiAKICAgICAgICAgc2VsZi5leHBlY3RlZFt1
J3N1bW1hcml6ZWRfdGVzdHMnXS5zb3J0KGtleT1sYW1iZGEgdGVzdF9vYmo6IHRlc3Rfb2JqLmdl
dCgnbmFtZScpKQogCisgICAgICAgICMgTWFrZSBhc3NlcnRzIG9wdC1pbiBmb3Igbm93CisgICAg
ICAgIGlmICJzdW1tYXJpemVkX2Fzc2VydHMiIG5vdCBpbiBzZWxmLmV4cGVjdGVkOgorICAgICAg
ICAgICAgZGVsIHN1bW1hcml6ZWRbInN1bW1hcml6ZWRfYXNzZXJ0cyJdCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAjIFdlIGNhbid0IGJlIHN1cmUgb2YgdGhlIG9yZGVyIG9mIGFzc2VydHMg
ZXZlbiB3aXRoaW4gdGhlIHNhbWUgdGVzdAorICAgICAgICAgICAgIyBhbHRob3VnaCB3ZSBjb3Vs
ZCBhbHNvIGNoZWNrIGZvciB0aGUgZmFpbGluZyBhc3NlcnQgYmVpbmcgdGhlIGZpbmFsCisgICAg
ICAgICAgICAjIG9uZQorICAgICAgICAgICAgZm9yIG9iaiBpbiBbc3VtbWFyaXplZCwgc2VsZi5l
eHBlY3RlZF06CisgICAgICAgICAgICAgICAgb2JqWyJzdW1tYXJpemVkX2Fzc2VydHMiXS5zb3J0
KAorICAgICAgICAgICAgICAgICAgICBrZXk9bGFtYmRhIHg6ICh4WyJ0ZXN0Il0gb3IgIiIsIHhb
InN0YXR1cyJdLCB4WyJhc3NlcnRfbmFtZSJdLCB0dXBsZSh4WyJhcmdzIl0pKSkKKwogICAgICAg
ICBhc3NlcnQgc3VtbWFyaXplZCA9PSBzZWxmLmV4cGVjdGVkCiAKICAgICBkZWYgX3N1bW1hcml6
ZShzZWxmLCBhY3R1YWwpOgpAQCAtMjEyLDYgKzIzNiwxMSBAQCBjbGFzcyBIVE1MSXRlbShweXRl
c3QuSXRlbSwgcHl0ZXN0LkNvbGxlY3Rvcik6CiAgICAgICAgIHN1bW1hcml6ZWRbdSdzdW1tYXJp
emVkX3Rlc3RzJ10gPSBbCiAgICAgICAgICAgICBzZWxmLl9zdW1tYXJpemVfdGVzdCh0ZXN0KSBm
b3IgdGVzdCBpbiBhY3R1YWxbJ3Rlc3RzJ11dCiAgICAgICAgIHN1bW1hcml6ZWRbdSdzdW1tYXJp
emVkX3Rlc3RzJ10uc29ydChrZXk9bGFtYmRhIHRlc3Rfb2JqOiB0ZXN0X29iai5nZXQoJ25hbWUn
KSkKKyAgICAgICAgc3VtbWFyaXplZFt1J3N1bW1hcml6ZWRfYXNzZXJ0cyddID0gWworICAgICAg
ICAgICAgeyJhc3NlcnRfbmFtZSI6IGFzc2VydF9pdGVtWyJhc3NlcnRfbmFtZSJdLAorICAgICAg
ICAgICAgInRlc3QiOiBhc3NlcnRfaXRlbVsidGVzdCJdWyJuYW1lIl0gaWYgYXNzZXJ0X2l0ZW1b
InRlc3QiXSBlbHNlIE5vbmUsCisgICAgICAgICAgICAiYXJncyI6IGFzc2VydF9pdGVtWyJhcmdz
Il0sCisgICAgICAgICAgICAic3RhdHVzIjogYXNzZXJ0X2l0ZW1bInN0YXR1cyJdfSBmb3IgYXNz
ZXJ0X2l0ZW0gaW4gYWN0dWFsWyJhc3NlcnRzIl1dCiAgICAgICAgIHN1bW1hcml6ZWRbdSd0eXBl
J10gPSBhY3R1YWxbJ3R5cGUnXQogCiAgICAgICAgIHJldHVybiBzdW1tYXJpemVkCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0L3JlcXVpcmVtZW50cy50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3JlcXVpcmVtZW50cy50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTVkODdjMzg3NTZjNWE2YzI0OTRiOThhM2Q4MTVlMTAzZTljYzRlMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Vz
L3Rlc3QvcmVxdWlyZW1lbnRzLnR4dApAQCAtMCwwICsxIEBACitodG1sNWxpYj09MS4xCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291
cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvYXBpLXRlc3RzLTEuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVu
Y3Rpb25hbC9hcGktdGVzdHMtMS5odG1sCmluZGV4IDIzN2I0ZWE4NzZlNTg5Y2I2ZTIzMTg3MmRj
ODE2ZDcxNzFlNDdjM2UuLjQxYTc2NWY1NTc0NWMwYjhjN2Y0ODkxYWEyYjM0YzU4NjBhNzI1NjUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9hcGktdGVzdHMtMS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qv
dGVzdHMvZnVuY3Rpb25hbC9hcGktdGVzdHMtMS5odG1sCkBAIC01NjIsNiArNTYyLDQzMSBAQAog
ICAgICAgInByb3BlcnRpZXMiOiB7fQogICAgIH0KICAgXSwKKyAgInN1bW1hcml6ZWRfYXNzZXJ0
cyI6IFsKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X3RydWUiLAorICAgICAg
InRlc3QiOiAiU2V0dXAgZnVuY3Rpb24gcmFuIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAi
dHJ1ZSIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAg
ImFzc2VydF9uYW1lIjogImFzc2VydF9hcnJheV9lcXVhbHMiLAorICAgICAgInRlc3QiOiAib25f
ZXZlbnQgZG9lcyBub3QgdXNlIGV2ZW50IGNhcHR1cmUiLAorICAgICAgImFyZ3MiOiBbCisgICAg
ICAgICJbXCJpbm5lclwiLCBcIm91dGVyXCJdIiwKKyAgICAgICAgIltcImlubmVyXCIsIFwib3V0
ZXJcIl0iCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAg
ICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImRvY3VtZW50
LmJvZHkgc2hvdWxkIGJlIHRoZSBmaXJzdCBib2R5IGVsZW1lbnQgaW4gdGhlIGRvY3VtZW50IiwK
KyAgICAgICJhcmdzIjogWworICAgICAgICAiRWxlbWVudCBub2RlIDxib2R5IG9ubG9hZD1cImxv
YWRfdGVzdF9hdHRyLmRvbmUoKVwiPiA8aDE+U2FtcGxlIEhUTUw1IEFQLi4uIiwKKyAgICAgICAg
IkVsZW1lbnQgbm9kZSA8Ym9keSBvbmxvYWQ9XCJsb2FkX3Rlc3RfYXR0ci5kb25lKClcIj4gPGgx
PlNhbXBsZSBIVE1MNSBBUC4uLiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0s
CisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9lcXVhbHMiLAorICAgICAgInRl
c3QiOiAiYXNzZXJ0X2VxdWFscyB0ZXN0cyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIjEi
LAorICAgICAgICAiMSIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAg
eworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAi
YXNzZXJ0X2VxdWFscyB0ZXN0cyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIk5hTiIsCisg
ICAgICAgICJOYU4iLAorICAgICAgICAiXCJOYU4gY2FzZVwiIgorICAgICAgXSwKKyAgICAgICJz
dGF0dXMiOiAwCisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X2Vx
dWFscyIsCisgICAgICAidGVzdCI6ICJhc3NlcnRfZXF1YWxzIHRlc3RzIiwKKyAgICAgICJhcmdz
IjogWworICAgICAgICAiMCIsCisgICAgICAgICIwIiwKKyAgICAgICAgIlwiWmVybyBjYXNlXCIi
CisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3Nl
cnRfbmFtZSI6ICJhc3NlcnRfZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF9lcXVhbHMg
dGVzdHMgZXhwZWN0ZWQgdG8gZmFpbCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIi0wIiwK
KyAgICAgICAgIjAiLAorICAgICAgICAiXCJaZXJvIGNhc2VcIiIKKyAgICAgIF0sCisgICAgICAi
c3RhdHVzIjogMQorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9u
b3RfZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF9ub3RfZXF1YWxzIHRlc3RzIiwKKyAg
ICAgICJhcmdzIjogWworICAgICAgICAib2JqZWN0IFwiW29iamVjdCBPYmplY3RdXCIiLAorICAg
ICAgICAib2JqZWN0IFwiW29iamVjdCBPYmplY3RdXCIiLAorICAgICAgICAiXCJvYmplY3QgY2Fz
ZVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwKKyAgICB7CisgICAgICAi
YXNzZXJ0X25hbWUiOiAiYXNzZXJ0X25vdF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiYXNzZXJ0
X25vdF9lcXVhbHMgdGVzdHMiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICItMCIsCisgICAg
ICAgICIwIiwKKyAgICAgICAgIlwiWmVybyBjYXNlXCIiCisgICAgICBdLAorICAgICAgInN0YXR1
cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdHJ1ZSIs
CisgICAgICAidGVzdCI6ICJhc3NlcnRfdHJ1ZSBleHBlY3RlZCB0byBwYXNzIiwKKyAgICAgICJh
cmdzIjogWworICAgICAgICAidHJ1ZSIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAg
IH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90cnVlIiwKKyAgICAgICJ0
ZXN0IjogImFzc2VydF90cnVlIGV4cGVjdGVkIHRvIGZhaWwiLAorICAgICAgImFyZ3MiOiBbCisg
ICAgICAgICJmYWxzZSIsCisgICAgICAgICJcImZhbHNlIHNob3VsZCBub3QgYmUgdHJ1ZVwiIgor
ICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAxCisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0
X25hbWUiOiAiYXNzZXJ0X2FycmF5X2VxdWFscyIsCisgICAgICAidGVzdCI6ICJiYXNpYyBhc3Nl
cnRfYXJyYXlfZXF1YWxzIHRlc3QiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJbMSwgTmFO
XSIsCisgICAgICAgICJbMSwgTmFOXSIsCisgICAgICAgICJcIlsxLCBOYU5dIGlzIGVxdWFsIHRv
IFsxLCBOYU5dXCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsK
KyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfYXJyYXlfZXF1YWxzIiwKKyAgICAgICJ0ZXN0
IjogImFzc2VydF9hcnJheV9lcXVhbHMgd2l0aCBmaXJzdCBwYXJhbSB1bmRlZmluZWQiLAorICAg
ICAgImFyZ3MiOiBbCisgICAgICAgICJ1bmRlZmluZWQiLAorICAgICAgICAiWzFdIiwKKyAgICAg
ICAgIlwidW5kZWZpbmVkIGVxdWFscyBbMV0/XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6
IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfYXJyYXlfZXF1
YWxzIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF9hcnJheV9lcXVhbHMgd2l0aCBmaXJzdCBwYXJh
bSB0cnVlIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAidHJ1ZSIsCisgICAgICAgICJbMV0i
LAorICAgICAgICAiXCJ0cnVlIGVxdWFscyBbMV0/XCIiCisgICAgICBdLAorICAgICAgInN0YXR1
cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfYXJyYXlf
ZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF9hcnJheV9lcXVhbHMgd2l0aCBmaXJzdCBw
YXJhbSBmYWxzZSIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgImZhbHNlIiwKKyAgICAgICAg
IlsxXSIsCisgICAgICAgICJcImZhbHNlIGVxdWFscyBbMV0/XCIiCisgICAgICBdLAorICAgICAg
InN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRf
YXJyYXlfZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF9hcnJheV9lcXVhbHMgd2l0aCBm
aXJzdCBwYXJhbSBudWxsIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAibnVsbCIsCisgICAg
ICAgICJbMV0iLAorICAgICAgICAiXCJudWxsIGVxdWFscyBbMV0/XCIiCisgICAgICBdLAorICAg
ICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3Nl
cnRfYXJyYXlfZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF9hcnJheV9lcXVhbHMgd2l0
aCBmaXJzdCBwYXJhbSAxIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiMSIsCisgICAgICAg
ICJbMV0iLAorICAgICAgICAiXCIxIGVxdWFscyBbMV0/XCIiCisgICAgICBdLAorICAgICAgInN0
YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfYXJy
YXlfYXBwcm94X2VxdWFscyIsCisgICAgICAidGVzdCI6ICJiYXNpYyBhc3NlcnRfYXJyYXlfYXBw
cm94X2VxdWFscyB0ZXN0IiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiWzEwLCAxMV0iLAor
ICAgICAgICAiWzExLCAxMF0iLAorICAgICAgICAiMSIsCisgICAgICAgICJcIlsxMCwgMTFdIGlz
IGFwcHJveGltYXRlbHkgKCsvLSAxKSBbMTEsIDEwXVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0
dXMiOiAwCisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X2FwcHJv
eF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiYmFzaWMgYXNzZXJ0X2FwcHJveF9lcXVhbHMgdGVz
dCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIjEwIiwKKyAgICAgICAgIjExIiwKKyAgICAg
ICAgIjEiLAorICAgICAgICAiXCIxMCBpcyBhcHByb3hpbWF0ZWx5ICgrLy0gMSkgMTFcIiIKKyAg
ICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9u
YW1lIjogImFzc2VydF9hcHByb3hfZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImJhc2ljIGFzc2Vy
dF9sZXNzX3RoYW4gdGVzdCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIjEwIiwKKyAgICAg
ICAgIjExIiwKKyAgICAgICAgIjEiLAorICAgICAgICAiXCIxMCBpcyBhcHByb3hpbWF0ZWx5ICgr
Ly0gMSkgMTFcIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgewor
ICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9ncmVhdGVyX3RoYW4iLAorICAgICAgInRlc3Qi
OiAiYXNzZXJ0X2dyZWF0ZXJfdGhhbiBleHBlY3RlZCB0byBmYWlsIiwKKyAgICAgICJhcmdzIjog
WworICAgICAgICAiMTAiLAorICAgICAgICAiMTEiLAorICAgICAgICAiXCIxMCBpcyBub3QgZ3Jl
YXRlciB0aGFuIDExXCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAg
IHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsIiwKKyAg
ICAgICJ0ZXN0IjogImJhc2ljIGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwgdGVzdCIsCisgICAg
ICAiYXJncyI6IFsKKyAgICAgICAgIjEwIiwKKyAgICAgICAgIjEwIiwKKyAgICAgICAgIlwiMTAg
aXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEwXCIiCisgICAgICBdLAorICAgICAgInN0YXR1
cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfZ3JlYXRl
cl90aGFuX2VxdWFsIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF9sZXNzX3RoYW5fZXF1YWwgZXhw
ZWN0ZWQgdG8gZmFpbCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIlwiMTBcIiIsCisgICAg
ICAgICIxMCIsCisgICAgICAgICJcIicxMCcgaXMgbm90IGEgbnVtYmVyXCIiCisgICAgICBdLAor
ICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJh
c3NlcnRfb3duX3Byb3BlcnR5IiwKKyAgICAgICJ0ZXN0IjogInRlc3QgZm9yIGFzc2VydFtfbm90
XV9vd25fcHJvcGVydHkgYW5kIGluc2VydF9pbmhlcml0cyIsCisgICAgICAiYXJncyI6IFsKKyAg
ICAgICAgIm9iamVjdCBcIltvYmplY3QgT2JqZWN0XVwiIiwKKyAgICAgICAgIlwiYVwiIgorICAg
ICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25h
bWUiOiAiYXNzZXJ0X25vdF9vd25fcHJvcGVydHkiLAorICAgICAgInRlc3QiOiAidGVzdCBmb3Ig
YXNzZXJ0W19ub3RdX293bl9wcm9wZXJ0eSBhbmQgaW5zZXJ0X2luaGVyaXRzIiwKKyAgICAgICJh
cmdzIjogWworICAgICAgICAib2JqZWN0IFwiW29iamVjdCBPYmplY3RdXCIiLAorICAgICAgICAi
XCJiXCIiLAorICAgICAgICAiXCJ1bmV4cGVjdGVkIHByb3BlcnR5IGZvdW5kOiBcXFwiYlxcXCJc
IiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFz
c2VydF9uYW1lIjogImFzc2VydF9pbmhlcml0cyIsCisgICAgICAidGVzdCI6ICJ0ZXN0IGZvciBh
c3NlcnRbX25vdF1fb3duX3Byb3BlcnR5IGFuZCBpbnNlcnRfaW5oZXJpdHMiLAorICAgICAgImFy
Z3MiOiBbCisgICAgICAgICJvYmplY3QgXCJbb2JqZWN0IE9iamVjdF1cIiIsCisgICAgICAgICJc
ImJcIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAg
ImFzc2VydF9uYW1lIjogImFzc2VydF90aHJvd3NfZG9tIiwKKyAgICAgICJ0ZXN0IjogIlRlc3Qg
dGhyb3cgRE9NIGV4Y2VwdGlvbiIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIlwiTk9UX0ZP
VU5EX0VSUlwiIiwKKyAgICAgICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24gKCkge2EucmVtb3ZlQ2hp
bGQoYil9XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAg
ICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdGhyb3dzX2pzIiwKKyAgICAgICJ0ZXN0IjogIlRl
c3QgdGhyb3cgRE9NRXhjZXB0aW9uIGFzIEpTIGV4Y2VwdGlvbiBleHBlY3RlZCB0byBmYWlsIiwK
KyAgICAgICJhcmdzIjogWworICAgICAgICAiZnVuY3Rpb24gXCJmdW5jdGlvbiBET01FeGNlcHRp
b24oKSB7ICAgICBbbmF0aXZlIGNvZGVdIH1cIiIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0
aW9uICgpIHthLnJlbW92ZUNoaWxkKGIpfVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAx
CisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X3Rocm93c19qcyIs
CisgICAgICAidGVzdCI6ICJUZXN0IHRocm93IFN5bnRheEVycm9yIERPTUV4Y2VwdGlvbiB3aGVy
ZSBKUyBTeW50YXhFcnJvciBleHBlY3RlZDsgZXhwZWN0ZWQgdG8gZmFpbCIsCisgICAgICAiYXJn
cyI6IFsKKyAgICAgICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24gU3ludGF4RXJyb3IoKSB7ICAgICBb
bmF0aXZlIGNvZGVdIH1cIiIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uICgpIHtkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKFwiXCIpfVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAx
CisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X3Rocm93c19qcyIs
CisgICAgICAidGVzdCI6ICJUZXN0IHRocm93IEpTIFN5bnRheEVycm9yIiwKKyAgICAgICJhcmdz
IjogWworICAgICAgICAiZnVuY3Rpb24gXCJmdW5jdGlvbiBTeW50YXhFcnJvcigpIHsgICAgIFtu
YXRpdmUgY29kZV0gfVwiIiwKKyAgICAgICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24gKCkge0pTT04u
cGFyc2UoXCJ7XCIpfVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwKKyAg
ICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X3Rocm93c19kb20iLAorICAgICAgInRl
c3QiOiAiVGVzdCB0aHJvdyBET00gU3ludGF4RXJyb3IiLAorICAgICAgImFyZ3MiOiBbCisgICAg
ICAgICJcIlN5bnRheEVycm9yXCIiLAorICAgICAgICAiZnVuY3Rpb24gXCJmdW5jdGlvbiAoKSB7
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIlwiKX1cIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVz
IjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90aHJvd3Nf
ZG9tIiwKKyAgICAgICJ0ZXN0IjogIlRlc3QgdGhyb3cgRE9NIFN5bnRheEVycm9yIGZyb20gc3Vi
ZnJhbWUiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJcIlN5bnRheEVycm9yXCIiLAorICAg
ICAgICAiZnVuY3Rpb24gXCJmdW5jdGlvbiBET01FeGNlcHRpb24oKSB7ICAgICBbbmF0aXZlIGNv
ZGVdIH1cIiIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uICgpIHtpZnIuY29udGVudERv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJcIil9XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6
IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdGhyb3dzX2Rv
bSIsCisgICAgICAidGVzdCI6ICJUZXN0IHRocm93IERPTSBTeW50YXhFcnJvciBmcm9tIHN1YmZy
YW1lIHdpdGggaW5jb3JyZWN0IGdsb2JhbCBleHBlY3RhdGlvbjsgZXhwZWN0ZWQgdG8gZmFpbCIs
CisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIlwiU3ludGF4RXJyb3JcIiIsCisgICAgICAgICJm
dW5jdGlvbiBcImZ1bmN0aW9uICgpIHtpZnIuY29udGVudERvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
XCJcIil9XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAg
ICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdGhyb3dzX2RvbSIsCisgICAgICAidGVzdCI6ICJU
ZXN0IHRocm93IERPTSBTeW50YXhFcnJvciB3aXRoIGluY29ycmVjdCBleHBlY3RhdGlvbjsgZXhw
ZWN0ZWQgdG8gZmFpbCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIlwiU3ludGF4RXJyb3Jc
IiIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uIERPTUV4Y2VwdGlvbigpIHsgICAgIFtu
YXRpdmUgY29kZV0gfVwiIiwKKyAgICAgICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24gKCkge2RvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoXCJcIil9XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEK
KyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdGhyb3dzX2RvbSIs
CisgICAgICAidGVzdCI6ICJUZXN0IHRocm93IEpTIFN5bnRheEVycm9yIHdoZXJlIFN5bnRheEVy
cm9yIERPTUV4Y2VwdGlvbiBleHBlY3RlZDsgZXhwZWN0ZWQgdG8gZmFpbCIsCisgICAgICAiYXJn
cyI6IFsKKyAgICAgICAgIlwiU3ludGF4RXJyb3JcIiIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1
bmN0aW9uICgpIHtKU09OLnBhcnNlKFwie1wiKX1cIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVz
IjogMQorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90aHJvd3Nf
ZG9tIiwKKyAgICAgICJ0ZXN0IjogIlRlc3QgdGhyb3cgRE9NIGV4Y2VwdGlvbiBleHBlY3RlZCB0
byBmYWlsIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiXCJOT1RfRk9VTkRfRVJSXCIiLAor
ICAgICAgICAiZnVuY3Rpb24gXCJmdW5jdGlvbiAoKSB7YS5hcHBlbmRDaGlsZChiKX1cIiIKKyAg
ICAgIF0sCisgICAgICAic3RhdHVzIjogMQorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9u
YW1lIjogImFzc2VydF90aHJvd3NfZG9tIiwKKyAgICAgICJ0ZXN0IjogIlRlc3QgYXNzZXJ0X3Ro
cm93c19kb20gd2l0aCBhbWJpZ3VvdXMgRE9NLWV4Y2VwdGlvbiBleHBlY3RlZCB0byBGYWlsIiwK
KyAgICAgICJhcmdzIjogWworICAgICAgICAiMCIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0
aW9uKCkge3Rocm93IGV9XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAor
ICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdGhyb3dzX2RvbSIsCisgICAgICAi
dGVzdCI6ICJUZXN0IGFzc2VydF90aHJvd3NfZG9tIHdpdGggbm9uLURPTS1leGNlcHRpb24gZXhw
ZWN0ZWQgdG8gRmFpbCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIlwiVEVTVF9FUlJcIiIs
CisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uKCkge3Rocm93IGV9XCIiCisgICAgICBdLAor
ICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJh
c3NlcnRfdGhyb3dzX2RvbSIsCisgICAgICAidGVzdCI6ICJUZXN0IGFzc2VydF90aHJvd3NfZG9t
IHdpdGggbnVtYmVyIGNvZGUgdmFsdWUgZXhwZWN0ZWQgdG8gUGFzcyIsCisgICAgICAiYXJncyI6
IFsKKyAgICAgICAgIjEyIiwKKyAgICAgICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24oKSB7dGhyb3cg
ZX1cIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAg
ImFzc2VydF9uYW1lIjogImFzc2VydF90aHJvd3NfZG9tIiwKKyAgICAgICJ0ZXN0IjogIlRlc3Qg
YXNzZXJ0X3Rocm93c19kb20gd2l0aCBudW1iZXIgY29kZSB2YWx1ZSBhbmQgcmVhbCBET01FeGNl
cHRpb24gZXhwZWN0ZWQgdG8gUGFzcyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIjEyIiwK
KyAgICAgICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24oKSB7dGhyb3cgZX1cIiIKKyAgICAgIF0sCisg
ICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFz
c2VydF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiVGVzdCB0aGF0IGRlZmluZXMgYSBnbG9iYWwg
YW5kIGNsZWFucyBpdCB1cCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIjEiLAorICAgICAg
ICAiMSIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAg
ImFzc2VydF9uYW1lIjogImFzc2VydF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiVGVzdCB0aGF0
IGNsZWFudXAgaGFuZGxlcnMgZnJvbSBwcmV2aW91cyB0ZXN0IHJhbiIsCisgICAgICAiYXJncyI6
IFsKKyAgICAgICAgInVuZGVmaW5lZCIsCisgICAgICAgICJ1bmRlZmluZWQiCisgICAgICBdLAor
ICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJh
c3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6ICJUZXN0IHN0ZXBfZnVuYyIsCisgICAgICAiYXJn
cyI6IFsKKyAgICAgICAgInRydWUiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9
LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdHJ1ZSIsCisgICAgICAidGVz
dCI6ICJUZXN0IGFzeW5jIHRlc3Qgd2l0aCBjYWxsYmFjayIsCisgICAgICAiYXJncyI6IFsKKyAg
ICAgICAgInRydWUiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsK
KyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6ICJUZXN0
IGFzeW5jIHRlc3Qgd2l0aCBjYWxsYmFjayBhbmQgYHRoaXNgIG9iai4iLAorICAgICAgImFyZ3Mi
OiBbCisgICAgICAgICJ0cnVlIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfQor
ICBdLAogICAidHlwZSI6ICJjb21wbGV0ZSIKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90
ZXN0cy9mdW5jdGlvbmFsL2FwaS10ZXN0cy0yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvYXBp
LXRlc3RzLTIuaHRtbAppbmRleCAwOGEyYjg5M2MyNDRkYWU0MDUxODc0OWFjNGI2YmRjY2FhMjg0
YTAzLi5iYTdhMDhmNDhmZDdhYzg2YzkzODdlMDNiZjNkZjg4MTU1MDU3N2FhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90
ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvYXBpLXRlc3RzLTIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0
aW9uYWwvYXBpLXRlc3RzLTIuaHRtbApAQCAtNDAsNiArNDAsMjQgQEAgZG9uZSgpOwogICAgICAg
Im1lc3NhZ2UiOiBudWxsCiAgICAgfQogICBdLAorICAic3VtbWFyaXplZF9hc3NlcnRzIjogWwor
ICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6
ICJUZXN0IGRlZmluZWQgYmVmb3JlIG9ubG9hZCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAg
InRydWUiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAg
ICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6ICJUZXN0IGRlZmlu
ZWQgYWZ0ZXIgb25sb2FkIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAidHJ1ZSIKKyAgICAg
IF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0KKyAgXSwKICAgInR5cGUiOiAiY29tcGxldGUi
CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNz
L0lkbERpY3Rpb25hcnkvdGVzdF9wYXJ0aWFsX2ludGVyZmFjZV9vZi5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9m
dW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsRGljdGlvbmFyeS90ZXN0X3BhcnRpYWxfaW50ZXJmYWNl
X29mLmh0bWwKaW5kZXggNWVlM2ZlN2U4OTNmMTllZjMyOGMzYjVjOTk2YmY3YjQ3NTFiMmI3YS4u
MDVlNmUwYjFlMDZjNjM0ZWMyOTAwY2E0MzAyYjYxMWRkYTcyZWExNCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90
ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsRGljdGlvbmFyeS90ZXN0X3BhcnRpYWxfaW50
ZXJmYWNlX29mLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsRGlj
dGlvbmFyeS90ZXN0X3BhcnRpYWxfaW50ZXJmYWNlX29mLmh0bWwKQEAgLTQxLDcgKzQxLDcgQEAK
ICAgICAgIGlkbEFycmF5LmFkZF9pZGxzKGAKICAgICAgICAgcGFydGlhbCBkaWN0aW9uYXJ5IEMg
e307CiAgICAgICAgIG5hbWVzcGFjZSBDIHt9O2ApOwotICAgICAgaWRsQXJyYXkuY29sbGFwc2Vf
cGFydGlhbHMoKTsKKyAgICAgIGlkbEFycmF5Lm1lcmdlX3BhcnRpYWxzKCk7CiAgICAgfSkoKTsK
ICAgPC9zY3JpcHQ+CiAgIDxzY3JpcHQgdHlwZT0idGV4dC9qc29uIiBpZD0iZXhwZWN0ZWQiPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rl
c3RfaW1tdXRhYmxlX3Byb3RvdHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5l
c3MvSWRsSW50ZXJmYWNlL3Rlc3RfaW1tdXRhYmxlX3Byb3RvdHlwZS5odG1sCmluZGV4IDQwZjVk
YmZjYzcxYTYyNjc1NDRhZWM1YTc0YmVlY2RmOWZmMjBlZDYuLjU2MjVjN2Y1NTMwM2Y3M2E1YjIz
MWE0OGFhYmE4NmQzMzljZjljOTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxo
YXJuZXNzL0lkbEludGVyZmFjZS90ZXN0X2ltbXV0YWJsZV9wcm90b3R5cGUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0
L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxJbnRlcmZhY2UvdGVzdF9pbW11dGFibGVf
cHJvdG90eXBlLmh0bWwKQEAgLTMzLDggKzMzLDggQEAgaWRsQXJyYXkuYWRkX2lkbHMoCiAgICAg
IltHbG9iYWw9V2luZG93LCBFeHBvc2VkPVdpbmRvd11cbiIgKwogICAgICJpbnRlcmZhY2UgV2lu
ZG93IDogRXZlbnRUYXJnZXQge307XG4iICsKIAotICAgICJbR2xvYmFsPVdpbmRvdywgRXhwb3Nl
ZD1XaW5kb3csIENvbnN0cnVjdG9yKCldXG4iICsKLSAgICAiaW50ZXJmYWNlIEZvbyB7fTsiCisg
ICAgIltHbG9iYWw9V2luZG93LCBFeHBvc2VkPVdpbmRvd11cbiIgKworICAgICJpbnRlcmZhY2Ug
Rm9vIHsgY29uc3RydWN0b3IoKTsgfTsiCiAgICk7CiBpZGxBcnJheS5hZGRfb2JqZWN0cyh7CiAg
IEZvbzogWyJuZXcgRm9vKCkiXSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxo
YXJuZXNzL0lkbEludGVyZmFjZS90ZXN0X2ludGVyZmFjZV9taXhpbi5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9m
dW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rlc3RfaW50ZXJmYWNlX21peGluLmh0
bWwKaW5kZXggYTlhOTA5NGZlMzBhYjUwODU3NDIyNDcwNzhlYzc5YWNhZTFhMDcxMS4uMWUyMmM0
Zjg1YTVhMDRjNzJiYjQ5YzFlMmZkNTc1OTA3N2UyNzdhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9m
dW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rlc3RfaW50ZXJmYWNlX21peGluLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNv
dXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rlc3Rf
aW50ZXJmYWNlX21peGluLmh0bWwKQEAgLTE3LDMwICsxNyw1NiBAQAogICA8c2NyaXB0PgogICAg
ICJ1c2Ugc3RyaWN0IjsKIAotICAgIC8vIE5vIG9yaWdpbmFsIGV4aXN0ZW5jZQorICAgIC8vIFNp
bXBsZSBpbmNsdWRlcyBzdGF0ZW1lbnQgKHZhbGlkKQogICAgICgoKSA9PiB7CiAgICAgICBjb25z
dCBpZGxBcnJheSA9IG5ldyBJZGxBcnJheSgpOwotICAgICAgaWRsQXJyYXkuYWRkX2lkbHMoJ3Bh
cnRpYWwgaW50ZXJmYWNlIG1peGluIEEge307Jyk7Ci0gICAgICBpZGxBcnJheS50ZXN0KCk7Cisg
ICAgICBpZGxBcnJheS5hZGRfaWRscyhgCisgICAgICAgIFtFeHBvc2VkPVdpbmRvd10gaW50ZXJm
YWNlIEkxIHt9OworICAgICAgICBpbnRlcmZhY2UgbWl4aW4gTTEgeyBhdHRyaWJ1dGUgYW55IGEx
OyB9OworICAgICAgICBJMSBpbmNsdWRlcyBNMTtgKTsKKyAgICAgIGlkbEFycmF5Lm1lcmdlX3Bh
cnRpYWxzKCk7CisgICAgICBpZGxBcnJheS5tZXJnZV9taXhpbnMoKTsKKyAgICB9KSgpOworCisg
ICAgLy8gUGFydGlhbCBpbnRlcmZhY2UgbWl4aW4gKHZhbGlkKQorICAgICgoKSA9PiB7CisgICAg
ICBjb25zdCBpZGxBcnJheSA9IG5ldyBJZGxBcnJheSgpOworICAgICAgaWRsQXJyYXkuYWRkX2lk
bHMoYAorICAgICAgICBbRXhwb3NlZD1XaW5kb3ddIGludGVyZmFjZSBJMiB7fTsKKyAgICAgICAg
aW50ZXJmYWNlIG1peGluIE0yIHt9OworICAgICAgICBwYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBN
MiB7IGF0dHJpYnV0ZSBhbnkgYTI7IH07CisgICAgICAgIEkyIGluY2x1ZGVzIE0yO2ApOworICAg
ICAgaWRsQXJyYXkubWVyZ2VfcGFydGlhbHMoKTsKKyAgICAgIGlkbEFycmF5Lm1lcmdlX21peGlu
cygpOworICAgIH0pKCk7CisKKyAgICAvLyBQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiB3aXRob3V0
IG9yaWdpbmFsIG1peGluCisgICAgKCgpID0+IHsKKyAgICAgIGNvbnN0IGlkbEFycmF5ID0gbmV3
IElkbEFycmF5KCk7CisgICAgICBpZGxBcnJheS5hZGRfaWRscygncGFydGlhbCBpbnRlcmZhY2Ug
bWl4aW4gTTMge307Jyk7CisgICAgICBpZGxBcnJheS5tZXJnZV9wYXJ0aWFscygpOworICAgICAg
aWRsQXJyYXkubWVyZ2VfbWl4aW5zKCk7CiAgICAgfSkoKTsKIAotICAgIC8vIE5hbWUgY2xhc2gg
KHBhcnRpYWxzKQorICAgIC8vIE5hbWUgY2xhc2ggYmV0d2VlbiBtaXhpbiBhbmQgcGFydGlhbCBt
aXhpbgogICAgICgoKSA9PiB7CiAgICAgICBjb25zdCBpZGxBcnJheSA9IG5ldyBJZGxBcnJheSgp
OwogICAgICAgaWRsQXJyYXkuYWRkX2lkbHMoYAotICAgICAgICBpbnRlcmZhY2UgbWl4aW4gQiB7
IGF0dHJpYnV0ZSBhbnkgRjsgfTsKLSAgICAgICAgcGFydGlhbCBpbnRlcmZhY2UgbWl4aW4gQiB7
IGF0dHJpYnV0ZSBhbnkgRjsgfTtgKTsKLSAgICAgIGlkbEFycmF5LmNvbGxhcHNlX3BhcnRpYWxz
KCk7CisgICAgICAgIGludGVyZmFjZSBtaXhpbiBNNCB7IGF0dHJpYnV0ZSBhbnkgYTQ7IH07Cisg
ICAgICAgIHBhcnRpYWwgaW50ZXJmYWNlIG1peGluIE00IHsgYXR0cmlidXRlIGFueSBhNDsgfTtg
KTsKKyAgICAgIGlkbEFycmF5Lm1lcmdlX3BhcnRpYWxzKCk7CisgICAgICBpZGxBcnJheS5tZXJn
ZV9taXhpbnMoKTsKICAgICB9KSgpOwogCi0gICAgLy8gTmFtZSBjbGFzaCAoZGlmZmVyZW50IG1p
eGlucykKKyAgICAvLyBOYW1lIGNsYXNoIGJldHdlZW4gaW50ZXJmYWNlIGFuZCBtaXhpbgogICAg
ICgoKSA9PiB7CiAgICAgICBjb25zdCBpZGxBcnJheSA9IG5ldyBJZGxBcnJheSgpOwogICAgICAg
aWRsQXJyYXkuYWRkX3VudGVzdGVkX2lkbHMoYAotICAgICAgICBpbnRlcmZhY2UgbWl4aW4gQyB7
IGF0dHJpYnV0ZSBhbnkgRjsgfTsKLSAgICAgICAgaW50ZXJmYWNlIEQgeyBhdHRyaWJ1dGUgYW55
IEY7IH07Ci0gICAgICAgIEQgaW5jbHVkZXMgQztgKTsKLSAgICAgIGlkbEFycmF5LnRlc3QoKTsK
KyAgICAgICAgaW50ZXJmYWNlIG1peGluIE01IHsgYXR0cmlidXRlIGFueSBhNTsgfTsKKyAgICAg
ICAgaW50ZXJmYWNlIEk1IHsgYXR0cmlidXRlIGFueSBhNTsgfTsKKyAgICAgICAgSTUgaW5jbHVk
ZXMgTTU7YCk7CisgICAgICBpZGxBcnJheS5tZXJnZV9wYXJ0aWFscygpOworICAgICAgaWRsQXJy
YXkubWVyZ2VfbWl4aW5zKCk7CiAgICAgfSkoKTsKICAgPC9zY3JpcHQ+CiAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qc29uIiBpZD0iZXhwZWN0ZWQiPgpAQCAtNTEsMjggKzc3LDUyIEBACiAgIH0sCiAg
ICJzdW1tYXJpemVkX3Rlc3RzIjogWwogICAgIHsKLSAgICAgICJuYW1lIjogIlBhcnRpYWwgaW50
ZXJmYWNlIG1peGluIEE6IG9yaWdpbmFsIGludGVyZmFjZSBtaXhpbiBkZWZpbmVkIiwKKyAgICAg
ICJuYW1lIjogIkkxIGluY2x1ZGVzIE0xOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSIsCisgICAg
ICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKKyAgICAgICJwcm9wZXJ0aWVzIjoge30sCisgICAg
ICAibWVzc2FnZSI6IG51bGwKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkkyIGluY2x1
ZGVzIE0yOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSIsCisgICAgICAic3RhdHVzX3N0cmluZyI6
ICJQQVNTIiwKKyAgICAgICJwcm9wZXJ0aWVzIjoge30sCisgICAgICAibWVzc2FnZSI6IG51bGwK
KyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkk1IGluY2x1ZGVzIE01OiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZSIsCiAgICAgICAic3RhdHVzX3N0cmluZyI6ICJGQUlMIiwKICAgICAgICJw
cm9wZXJ0aWVzIjoge30sCi0gICAgICAibWVzc2FnZSI6ICJhc3NlcnRfdHJ1ZTogT3JpZ2luYWwg
aW50ZXJmYWNlIG1peGluIHNob3VsZCBiZSBkZWZpbmVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
IgorICAgICAgIm1lc3NhZ2UiOiAiYXNzZXJ0X3RydWU6IG1lbWJlciBhNSBpcyB1bmlxdWUgZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UiCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJQYXJ0
aWFsIGludGVyZmFjZSBtaXhpbiBNMjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUiLAorICAgICAg
InN0YXR1c19zdHJpbmciOiAiUEFTUyIsCisgICAgICAicHJvcGVydGllcyI6IHt9LAorICAgICAg
Im1lc3NhZ2UiOiBudWxsCiAgICAgfSwKICAgICB7Ci0gICAgICAibmFtZSI6ICJQYXJ0aWFsIGlu
dGVyZmFjZSBtaXhpbiBCOiBvcmlnaW5hbCBpbnRlcmZhY2UgbWl4aW4gZGVmaW5lZCIsCisgICAg
ICAibmFtZSI6ICJQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBNMjogb3JpZ2luYWwgaW50ZXJmYWNl
IG1peGluIGRlZmluZWQiLAogICAgICAgInN0YXR1c19zdHJpbmciOiAiUEFTUyIsCiAgICAgICAi
cHJvcGVydGllcyI6IHt9LAogICAgICAgIm1lc3NhZ2UiOiBudWxsCiAgICAgfSwKICAgICB7Ci0g
ICAgICAibmFtZSI6ICJQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBCOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZSIsCisgICAgICAibmFtZSI6ICJQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBNMzogb3Jp
Z2luYWwgaW50ZXJmYWNlIG1peGluIGRlZmluZWQiLAogICAgICAgInN0YXR1c19zdHJpbmciOiAi
RkFJTCIsCiAgICAgICAicHJvcGVydGllcyI6IHt9LAotICAgICAgIm1lc3NhZ2UiOiAiYXNzZXJ0
X3RydWU6IG1lbWJlciBGIGlzIHVuaXF1ZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZSIKKyAgICAg
ICJtZXNzYWdlIjogImFzc2VydF90cnVlOiBPcmlnaW5hbCBpbnRlcmZhY2UgbWl4aW4gc2hvdWxk
IGJlIGRlZmluZWQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UiCiAgICAgfSwKICAgICB7Ci0gICAg
ICAibmFtZSI6ICJEIGluY2x1ZGVzIEM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIiwKKyAgICAg
ICJuYW1lIjogIlBhcnRpYWwgaW50ZXJmYWNlIG1peGluIE00OiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZSIsCiAgICAgICAic3RhdHVzX3N0cmluZyI6ICJGQUlMIiwKICAgICAgICJwcm9wZXJ0aWVz
Ijoge30sCi0gICAgICAibWVzc2FnZSI6ICJhc3NlcnRfdHJ1ZTogbWVtYmVyIEYgaXMgdW5pcXVl
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlIgorICAgICAgIm1lc3NhZ2UiOiAiYXNzZXJ0X3RydWU6
IG1lbWJlciBhNCBpcyB1bmlxdWUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UiCisgICAgfSwKKyAg
ICB7CisgICAgICAibmFtZSI6ICJQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBNNDogb3JpZ2luYWwg
aW50ZXJmYWNlIG1peGluIGRlZmluZWQiLAorICAgICAgInN0YXR1c19zdHJpbmciOiAiUEFTUyIs
CisgICAgICAicHJvcGVydGllcyI6IHt9LAorICAgICAgIm1lc3NhZ2UiOiBudWxsCiAgICAgfQog
ICBdLAogICAidHlwZSI6ICJjb21wbGV0ZSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25h
bC9pZGxoYXJuZXNzL0lkbEludGVyZmFjZS90ZXN0X3BhcnRpYWxfaW50ZXJmYWNlX29mLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90
ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxJbnRlcmZhY2UvdGVzdF9wYXJ0aWFs
X2ludGVyZmFjZV9vZi5odG1sCmluZGV4IGQwZTgzYWY5NjY0MTBjMGE2ZDQxNTExOTQ4ZTUyNjJj
ODRhNDdjNDYuLjY3MTE5NmNjNWRmZWRjMjE0MGFhYWNjZWJjYzZmZjBkNzEyN2UzNWUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3Vy
Y2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbEludGVyZmFjZS90ZXN0X3Bh
cnRpYWxfaW50ZXJmYWNlX29mLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5l
c3MvSWRsSW50ZXJmYWNlL3Rlc3RfcGFydGlhbF9pbnRlcmZhY2Vfb2YuaHRtbApAQCAtMzksNyAr
MzksNyBAQAogCiAgICAgICAgIFtFeHBvc2VkPShXb3JrZXIpXQogICAgICAgICBwYXJ0aWFsIGlu
dGVyZmFjZSBDIHt9O2ApOwotICAgICAgaWRsQXJyYXkuY29sbGFwc2VfcGFydGlhbHMoKTsKKyAg
ICAgIGlkbEFycmF5Lm1lcmdlX3BhcnRpYWxzKCk7CiAgICAgfSkoKTsKIAogICAgIC8vIEludmFs
aWQgZXhwb3N1cmUKQEAgLTUxLDcgKzUxLDcgQEAKICAgICAgIGlkbEFycmF5LmFkZF9pZGxzKGAK
ICAgICAgICAgW0V4cG9zZWQ9KERlZGljYXRlZFdvcmtlcildCiAgICAgICAgIHBhcnRpYWwgaW50
ZXJmYWNlIEQge307YCk7Ci0gICAgICBpZGxBcnJheS5jb2xsYXBzZV9wYXJ0aWFscygpOworICAg
ICAgaWRsQXJyYXkubWVyZ2VfcGFydGlhbHMoKTsKICAgICB9KSgpOwogCiAgICAgLy8gT3JpZ2lu
YWwgaXMgYSBuYW1lc3BhY2UsIG5vdCBhbiBpbnRlcmZhY2UuCkBAIC02MCwxNCArNjAsMTQgQEAK
ICAgICAgIGlkbEFycmF5LmFkZF9pZGxzKGAKICAgICAgICAgcGFydGlhbCBpbnRlcmZhY2UgRSB7
fTsKICAgICAgICAgbmFtZXNwYWNlIEUge307YCk7Ci0gICAgICBpZGxBcnJheS5jb2xsYXBzZV9w
YXJ0aWFscygpOworICAgICAgaWRsQXJyYXkubWVyZ2VfcGFydGlhbHMoKTsKICAgICB9KSgpOwog
CiAgICAgKCgpID0+IHsKICAgICAgIGNvbnN0IGlkbEFycmF5ID0gbmV3IElkbEFycmF5KCk7CiAg
ICAgICBpZGxBcnJheS5hZGRfaWRscyhgCiAgICAgICAgIHBhcnRpYWwgaW50ZXJmYWNlIEYge307
Ci0gICAgICAgIHBhcnRpYWwgaW50ZXJmYWNlIG1peGluIEd7fTsKKyAgICAgICAgcGFydGlhbCBp
bnRlcmZhY2UgbWl4aW4gRyB7fTsKICAgICAgIGApOwogICAgICAgaWRsQXJyYXkuYWRkX2RlcGVu
ZGVuY3lfaWRscyhgCiAgICAgICAgIGludGVyZmFjZSBGIHt9OwpAQCAtODAsMTcgKzgwLDIwIEBA
CiAgICAgICAgIGludGVyZmFjZSBMIDogRiB7fTsKICAgICAgIGApOwogICAgICAgdGVzdCgoKSA9
PiB7CisgICAgICAgIC8vIENvbnZlcnQgaWRsQXJyYXkuaW5jbHVkZXMgaW50byBhIE1hcCBmcm9t
IG5hbWUgb2YgdGFyZ2V0IGludGVyZmFjZSB0bworICAgICAgICAvLyBuYW1lIG9mIGluY2x1ZGVk
IG1peGluLiAoVGhpcyBhc3N1bWVzIGVhY2ggaW50ZXJmYWNlIGluY2x1ZGVzIGF0IG1vc3QKKyAg
ICAgICAgLy8gb25lIG1peGluLCBvdGhlcndpc2UgbGF0ZXIgaW5jbHVkZXMgd291bGQgY2xvYmJl
ciBlYXJsaWVyIG9uZXMuKQorICAgICAgICBjb25zdCBpbmNsdWRlcyA9IG5ldyBNYXAoaWRsQXJy
YXkuaW5jbHVkZXMubWFwKGkgPT4gW2kudGFyZ2V0LCBpLmluY2x1ZGVzXSkpOwogICAgICAgICAv
LyBGIGlzIHRlc3RlZCwgc28gSCBpcyBhIGRlcC4KLSAgICAgICAgYXNzZXJ0X3RydWUoJ0YnIGlu
IGlkbEFycmF5LmluY2x1ZGVzLCAnRnMgaW5jbHVkZXMgc2hvdWxkIGJlIHBpY2tlZCB1cCcpOwot
ICAgICAgICBhc3NlcnRfdHJ1ZShpZGxBcnJheS5pbmNsdWRlcy5GLmluY2x1ZGVzKCdIJyksICdI
IHNob3VsZCBiZSBwaWNrZWQgdXAnKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhpbmNsdWRlcy5n
ZXQoJ0YnKSwgJ0gnLCAnRiBzaG91bGQgYmUgcGlja2VkIHVwJyk7CiAgICAgICAgIC8vIEggaXMg
bm90IHRlc3RlZCwgc28gSSBpcyBub3QgYSBkZXAuCi0gICAgICAgIGFzc2VydF9mYWxzZSgnSScg
aW4gaWRsQXJyYXkuaW5jbHVkZXMsICdJIHNob3VsZCBiZSBpZ25vcmVkJyk7CisgICAgICAgIGFz
c2VydF9mYWxzZShpbmNsdWRlcy5oYXMoJ0knKSwgJ0kgc2hvdWxkIGJlIGlnbm9yZWQnKTsKICAg
ICAgICAgLy8gRyBpcyBhIGRlcCwgc28gSiBpcyBhIGRlcC4KLSAgICAgICAgYXNzZXJ0X3RydWUo
J0onIGluIGlkbEFycmF5LmluY2x1ZGVzLCAnSiBzaG91bGQgYmUgcGlja2VkIHVwJyk7Ci0gICAg
ICAgIC8vIEJ1dCwgSyBpc24ndCBhIGRlcCBqdXN0IGJlY2F1c2Ugb2YgSi4KKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhpbmNsdWRlcy5nZXQoJ0onKSwgJ0cnLCAnSiBzaG91bGQgYmUgcGlja2VkIHVw
Jyk7CisgICAgICAgIC8vIEsgaXNuJ3QgYSBkZXAgYmVjYXVzZSBKIGlzbid0IGRlZmluZWQuCiAg
ICAgICAgIGFzc2VydF9mYWxzZSgnSycgaW4gaWRsQXJyYXkubWVtYmVycywgJ0sgc2hvdWxkIGJl
IGlnbm9yZWQnKTsKLSAgICAgICAgLy8gTCBpbmhlcml0cyBGLCBzbyBzaG91bGQgYmUgcGlja2Vk
IHVwLgotICAgICAgICBhc3NlcnRfZmFsc2UoJ0wnIGluIGlkbEFycmF5Lm1lbWJlcnMsICdMIHNo
b3VsZCBiZSBwaWNrZWQgdXAnKTsKKyAgICAgICAgLy8gTCBpc24ndCBhIGRlcCBiZWNhdXNlIEYg
aXMgdW50ZXN0ZWQuCisgICAgICAgIGFzc2VydF9mYWxzZSgnTCcgaW4gaWRsQXJyYXkubWVtYmVy
cywgJ0wgc2hvdWxkIGJlIGlnbm9yZWQnKTsKICAgICAgIH0sICdwYXJ0aWFsIG1peGluIGRlcCBp
bXBsaWNhdGlvbnMnKTsKICAgICB9KSgpOwogCkBAIC0xMDAsNyArMTAzLDcgQEAKICAgICAgIGlk
bEFycmF5LmFkZF9pZGxzKGAKICAgICAgICAgaW50ZXJmYWNlIE0geyBhdHRyaWJ1dGUgYW55IEE7
IH07CiAgICAgICAgIHBhcnRpYWwgaW50ZXJmYWNlIE0geyBhdHRyaWJ1dGUgYW55IEE7IH07YCk7
Ci0gICAgICBpZGxBcnJheS5jb2xsYXBzZV9wYXJ0aWFscygpOworICAgICAgaWRsQXJyYXkubWVy
Z2VfcGFydGlhbHMoKTsKICAgICB9KSgpOwogICA8L3NjcmlwdD4KICAgPHNjcmlwdCB0eXBlPSJ0
ZXh0L2pzb24iIGlkPSJleHBlY3RlZCI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwv
aWRsaGFybmVzcy9JZGxJbnRlcmZhY2UvdGVzdF9wcmltYXJ5X2ludGVyZmFjZV9vZi5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rlc3RfcHJpbWFyeV9p
bnRlcmZhY2Vfb2YuaHRtbAppbmRleCA1Y2U0NTdjYWZkNGZhZmUyMjdkNGUwMDA4NTliMDliNjA0
ZTkxNDE1Li5hYzRjMGIwMDBlYjY5ZmNiYTY1YzdhOGE5NzBjYjdjYTlhNDdiZmZjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxJbnRlcmZhY2UvdGVzdF9wcmlt
YXJ5X2ludGVyZmFjZV9vZi5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNz
L0lkbEludGVyZmFjZS90ZXN0X3ByaW1hcnlfaW50ZXJmYWNlX29mLmh0bWwKQEAgLTM0LDE0ICsz
NCwxMyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LkZvby5wcm90b3R5cGUsICJjb25z
dHJ1Y3RvciIsIHsKICAgICBjb25maWd1cmFibGU6IHRydWUsCiAgICAgdmFsdWU6IHdpbmRvdy5G
b28KICAgfSk7Ci1Gb28uX19wcm90b19fID0gRm9vUGFyZW50OworT2JqZWN0LnNldFByb3RvdHlw
ZU9mKEZvbywgRm9vUGFyZW50KTsKIEZvby5wcm90b3R5cGVbU3ltYm9sLnRvU3RyaW5nVGFnXSA9
ICJGb28iOwogCiB2YXIgaWRsQXJyYXkgPSBuZXcgSWRsQXJyYXkoKTsKIGlkbEFycmF5LmFkZF91
bnRlc3RlZF9pZGxzKCJpbnRlcmZhY2UgRm9vUGFyZW50IHt9OyIpOwogaWRsQXJyYXkuYWRkX2lk
bHMoCi0gICAgIltDb25zdHJ1Y3RvcigpXVxuIiArCi0gICAgImludGVyZmFjZSBGb28gOiBGb29Q
YXJlbnQge307IgorICAgICJpbnRlcmZhY2UgRm9vIDogRm9vUGFyZW50IHsgY29uc3RydWN0b3Io
KTsgfTsiCiAgICk7CiBpZGxBcnJheS5hZGRfb2JqZWN0cyh7CiAgIEZvbzogWyJuZXcgRm9vKCki
XSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbE5hbWVzcGFj
ZS90ZXN0X2F0dHJpYnV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRs
TmFtZXNwYWNlL3Rlc3RfYXR0cmlidXRlLmh0bWwKaW5kZXggY2E1ZWRmNDcyM2Q1YjVjMjA1NWMy
ZjAyNGQ5NTFlOTgxMjRjOGNkOS4uOWEwOGRkNDAwYzFkMmEyOWU2MGUzYWY2MjZmZTg4MzM0NzIx
ODUwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFtZXNw
YWNlL3Rlc3RfYXR0cmlidXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5l
c3MvSWRsTmFtZXNwYWNlL3Rlc3RfYXR0cmlidXRlLmh0bWwKQEAgLTcxLDYgKzcxLDE4IEBAIGlk
bEFycmF5LnRlc3QoKTsKICAgICAgICJwcm9wZXJ0aWVzIjoge30sCiAgICAgICAibWVzc2FnZSI6
IG51bGwKICAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImZvbyBuYW1lc3BhY2U6IGhhcyBu
byBsZW5ndGggcHJvcGVydHkiLAorICAgICAgInN0YXR1c19zdHJpbmciOiAiUEFTUyIsCisgICAg
ICAicHJvcGVydGllcyI6IHt9LAorICAgICAgIm1lc3NhZ2UiOiBudWxsCisgICAgfSwKKyAgICB7
CisgICAgICAibmFtZSI6ICJmb28gbmFtZXNwYWNlOiBoYXMgbm8gbmFtZSBwcm9wZXJ0eSIsCisg
ICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKKyAgICAgICJwcm9wZXJ0aWVzIjoge30sCisg
ICAgICAibWVzc2FnZSI6IG51bGwKKyAgICB9LAogICAgIHsKICAgICAgICJuYW1lIjogImZvbyBu
YW1lc3BhY2U6IGF0dHJpYnV0ZSB0cnV0aCIsCiAgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNT
IiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbE5hbWVzcGFj
ZS90ZXN0X29wZXJhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRs
TmFtZXNwYWNlL3Rlc3Rfb3BlcmF0aW9uLmh0bWwKaW5kZXggNjBkN2Q0N2M5ZWVhNjRhODFkNTM5
YWZhNmZkM2FjZDcyNTgxYzAwYi4uNjc5OGZlOGNmYzY3NzNkMTIxYzljYmRjMWU1NTlmY2E0MzRh
Yzc1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFtZXNw
YWNlL3Rlc3Rfb3BlcmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5l
c3MvSWRsTmFtZXNwYWNlL3Rlc3Rfb3BlcmF0aW9uLmh0bWwKQEAgLTU4LDEzICs1OCwxMyBAQCB2
YXIgaWRsQXJyYXkgPSBuZXcgSWRsQXJyYXkoKTsKIGlkbEFycmF5LmFkZF9pZGxzKGAKIFtFeHBv
c2VkPVdpbmRvd10KIG5hbWVzcGFjZSBmb28gewotICB2b2lkIFRydXRoKCk7Ci0gIHZvaWQgTGll
cygpOworICB1bmRlZmluZWQgVHJ1dGgoKTsKKyAgdW5kZWZpbmVkIExpZXMoKTsKIH07CiBbRXhw
b3NlZD1XaW5kb3ddCiBuYW1lc3BhY2UgYmFyIHsKICAgW0xlZ2FjeVVuZm9yZ2VhYmxlXQotICB2
b2lkIFRydXRoKCk7CisgIHVuZGVmaW5lZCBUcnV0aCgpOwogfTsKIFtFeHBvc2VkPVdpbmRvd10K
IG5hbWVzcGFjZSBiYXogewpAQCAtMTEwLDYgKzExMCwxOCBAQCBpZGxBcnJheS50ZXN0KCk7CiAg
ICAgICAicHJvcGVydGllcyI6IHt9LAogICAgICAgIm1lc3NhZ2UiOiBudWxsCiAgICAgfSwKKyAg
ICB7CisgICAgICAibmFtZSI6ICJmb28gbmFtZXNwYWNlOiBoYXMgbm8gbGVuZ3RoIHByb3BlcnR5
IiwKKyAgICAgICJzdGF0dXNfc3RyaW5nIjogIlBBU1MiLAorICAgICAgInByb3BlcnRpZXMiOiB7
fSwKKyAgICAgICJtZXNzYWdlIjogbnVsbAorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAi
Zm9vIG5hbWVzcGFjZTogaGFzIG5vIG5hbWUgcHJvcGVydHkiLAorICAgICAgInN0YXR1c19zdHJp
bmciOiAiUEFTUyIsCisgICAgICAicHJvcGVydGllcyI6IHt9LAorICAgICAgIm1lc3NhZ2UiOiBu
dWxsCisgICAgfSwKICAgICB7CiAgICAgICAibmFtZSI6ICJmb28gbmFtZXNwYWNlOiBvcGVyYXRp
b24gVHJ1dGgoKSIsCiAgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKQEAgLTEyMiw3ICsx
MzQsNiBAQCBpZGxBcnJheS50ZXN0KCk7CiAgICAgICAicHJvcGVydGllcyI6IHt9LAogICAgICAg
Im1lc3NhZ2UiOiAiYXNzZXJ0X293bl9wcm9wZXJ0eTogbmFtZXNwYWNlIG9iamVjdCBtaXNzaW5n
IG9wZXJhdGlvbiBcIkxpZXNcIiBleHBlY3RlZCBwcm9wZXJ0eSBcIkxpZXNcIiBtaXNzaW5nIgog
ICAgIH0sCi0KICAgICB7CiAgICAgICAibmFtZSI6ICJiYXIgbmFtZXNwYWNlOiBleHRlbmRlZCBh
dHRyaWJ1dGVzIiwKICAgICAgICJzdGF0dXNfc3RyaW5nIjogIlBBU1MiLApAQCAtMTUzLDYgKzE2
NCwxOCBAQCBpZGxBcnJheS50ZXN0KCk7CiAgICAgICAicHJvcGVydGllcyI6IHt9LAogICAgICAg
Im1lc3NhZ2UiOiBudWxsCiAgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJiYXIgbmFtZXNw
YWNlOiBoYXMgbm8gbGVuZ3RoIHByb3BlcnR5IiwKKyAgICAgICJzdGF0dXNfc3RyaW5nIjogIlBB
U1MiLAorICAgICAgInByb3BlcnRpZXMiOiB7fSwKKyAgICAgICJtZXNzYWdlIjogbnVsbAorICAg
IH0sCisgICAgeworICAgICAgIm5hbWUiOiAiYmFyIG5hbWVzcGFjZTogaGFzIG5vIG5hbWUgcHJv
cGVydHkiLAorICAgICAgInN0YXR1c19zdHJpbmciOiAiUEFTUyIsCisgICAgICAicHJvcGVydGll
cyI6IHt9LAorICAgICAgIm1lc3NhZ2UiOiBudWxsCisgICAgfSwKICAgICB7CiAgICAgICAibmFt
ZSI6ICJiYXIgbmFtZXNwYWNlOiBvcGVyYXRpb24gVHJ1dGgoKSIsCiAgICAgICAic3RhdHVzX3N0
cmluZyI6ICJQQVNTIiwKQEAgLTE5MCw2ICsyMTMsMTggQEAgaWRsQXJyYXkudGVzdCgpOwogICAg
ICAgInByb3BlcnRpZXMiOiB7fSwKICAgICAgICJtZXNzYWdlIjogbnVsbAogICAgIH0sCisgICAg
eworICAgICAgIm5hbWUiOiAiYmF6IG5hbWVzcGFjZTogaGFzIG5vIGxlbmd0aCBwcm9wZXJ0eSIs
CisgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKKyAgICAgICJwcm9wZXJ0aWVzIjoge30s
CisgICAgICAibWVzc2FnZSI6IG51bGwKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImJh
eiBuYW1lc3BhY2U6IGhhcyBubyBuYW1lIHByb3BlcnR5IiwKKyAgICAgICJzdGF0dXNfc3RyaW5n
IjogIlBBU1MiLAorICAgICAgInByb3BlcnRpZXMiOiB7fSwKKyAgICAgICJtZXNzYWdlIjogbnVs
bAorICAgIH0sCiAgICAgewogICAgICAgIm5hbWUiOiAiYmF6IG5hbWVzcGFjZTogb3BlcmF0aW9u
IExvbmdTdG9yeShhbnksIERPTVN0cmluZy4uLikiLAogICAgICAgInN0YXR1c19zdHJpbmciOiAi
UEFTUyIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxOYW1l
c3BhY2UvdGVzdF9wYXJ0aWFsX25hbWVzcGFjZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lk
bGhhcm5lc3MvSWRsTmFtZXNwYWNlL3Rlc3RfcGFydGlhbF9uYW1lc3BhY2UuaHRtbAppbmRleCBj
MzI3YThiMDAxZDI3ZTU0MmI2YjVhODU4YTA0MDBhMDQyYjNkM2Y3Li5jNjhhZGZhOTQxNzczZGQw
YzQ3ZWQzYTc1ODEyNTEzZThjODc0ODI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwv
aWRsaGFybmVzcy9JZGxOYW1lc3BhY2UvdGVzdF9wYXJ0aWFsX25hbWVzcGFjZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rl
c3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbE5hbWVzcGFjZS90ZXN0X3BhcnRpYWxf
bmFtZXNwYWNlLmh0bWwKQEAgLTQwLDcgKzQwLDcgQEAKIAogICAgICAgICBbRXhwb3NlZD0oV29y
a2VyKV0KICAgICAgICAgcGFydGlhbCBuYW1lc3BhY2UgQyB7fTtgKTsKLSAgICAgIGlkbEFycmF5
LmNvbGxhcHNlX3BhcnRpYWxzKCk7CisgICAgICBpZGxBcnJheS5tZXJnZV9wYXJ0aWFscygpOwog
ICAgIH0pKCk7CiAKICAgICAvLyBJbnZhbGlkIGV4cG9zdXJlCkBAIC01Miw3ICs1Miw3IEBACiAg
ICAgICBpZGxBcnJheS5hZGRfaWRscyhgCiAgICAgICAgIFtFeHBvc2VkPShEZWRpY2F0ZWRXb3Jr
ZXIpXQogICAgICAgICBwYXJ0aWFsIG5hbWVzcGFjZSBEIHt9O2ApOwotICAgICAgaWRsQXJyYXku
Y29sbGFwc2VfcGFydGlhbHMoKTsKKyAgICAgIGlkbEFycmF5Lm1lcmdlX3BhcnRpYWxzKCk7CiAg
ICAgfSkoKTsKIAogICAgIC8vIE9yaWdpbmFsIGlzIGFuIGludGVyZmFjZSwgbm90IGEgbmFtZXNw
YWNlLgpAQCAtNjEsNyArNjEsNyBAQAogICAgICAgaWRsQXJyYXkuYWRkX2lkbHMoYAogICAgICAg
ICBwYXJ0aWFsIG5hbWVzcGFjZSBFIHt9OwogICAgICAgICBpbnRlcmZhY2UgRSB7fTtgKTsKLSAg
ICAgIGlkbEFycmF5LmNvbGxhcHNlX3BhcnRpYWxzKCk7CisgICAgICBpZGxBcnJheS5tZXJnZV9w
YXJ0aWFscygpOwogICAgIH0pKCk7CiAgIDwvc2NyaXB0PgogICA8c2NyaXB0IHR5cGU9InRleHQv
anNvbiIgaWQ9ImV4cGVjdGVkIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9zZXR1
cC1mdW5jdGlvbi13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvc2V0dXAtZnVuY3Rpb24t
d29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyYzE0NTZhYTY0NDcyNjczNjFkOGNjODllMjg4NDBmYzQ5
MTNiNDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvc2V0dXAtZnVuY3Rp
b24td29ya2VyLmpzCkBAIC0wLDAgKzEsMTQgQEAKK2ltcG9ydFNjcmlwdHMoIi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiKTsKKworLy8gUmVncmVzc2lvbiB0ZXN0IGZvciBodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMjcyOTksCisvLyB3aGVyZSB3ZSBi
cm9rZSB0aGUgYWJpbGl0eSBmb3IgYSBzZXR1cCBmdW5jdGlvbiBpbiBhIHdvcmtlciB0byBjb250
YWluIGFuCisvLyBhc3NlcnRpb24gKGV2ZW4gYSBwYXNzaW5nIG9uZSkuCitzZXR1cChmdW5jdGlv
bigpIHsKKyAgICBhc3NlcnRfdHJ1ZSh0cnVlLCAiVHJ1ZSBpcyB0cnVlIik7Cit9KTsKKworLy8g
V2UgbXVzdCBkZWZpbmUgYXQgbGVhc3Qgb25lIHRlc3QgZm9yIHRoZSBoYXJuZXNzLCB0aG91Z2gg
aXQgaXMgbm90IHdoYXQgd2UKKy8vIGFyZSB0ZXN0aW5nIGhlcmUuCit0ZXN0KGZ1bmN0aW9uKCkg
eworICAgIGFzc2VydF9mYWxzZShmYWxzZSwgIkZhbHNlIGlzIGZhbHNlIik7Cit9LCAnV29ya2Vy
IHRlc3QnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9zZXR1cC13b3JrZXItc2Vy
dmljZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL3NldHVwLXdvcmtlci1zZXJ2aWNlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZGQ5ZDlmNTRlMDc3M2U0NWNkY2ZhNmZmZGNhZjBjZDVkMjk0OWNkMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9zZXR1cC13b3JrZXItc2VydmljZS5o
dG1sCkBAIC0wLDAgKzEsODggQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxt
ZXRhIG5hbWU9InZhcmlhbnQiIGNvbnRlbnQ9Ij9rZWVwLXByb21pc2UiPgorPHRpdGxlPlNldHVw
IGZ1bmN0aW9uIGluIGEgc2VydmljZSB3b3JrZXI8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3ZhcmlhbnRzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNldHVwIGZ1bmN0aW9uIGlu
IGEgc2VydmljZSB3b3JrZXI8L2gxPgorPHA+VGhpcyB0ZXN0IGFzc3VtZXMgdGhhdCB0aGUgYnJv
d3NlciBzdXBwb3J0cyA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9zZXJ2aWNlLXdvcmtl
cnMvIj5TZXJ2aWNlV29ya2VyczwvYT4uCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorCis8c2NyaXB0
PgordGVzdChmdW5jdGlvbih0KSB7CisgICAgYXNzZXJ0X3RydWUoInNlcnZpY2VXb3JrZXIiIGlu
IG5hdmlnYXRvciwKKyAgICAgICAgICAgICAgICAibmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIgZXhp
c3RzIik7Cit9LCAiQnJvd3NlciBzdXBwb3J0cyBTZXJ2aWNlV29ya2VyIik7CisKK3Byb21pc2Vf
dGVzdChmdW5jdGlvbigpIHsKKyAgICAvLyBTaW5jZSB0aGUgc2VydmljZSB3b3JrZXIgcmVnaXN0
cmF0aW9uIGNvdWxkIGJlIGluIGFuIGluZGV0ZXJtaW5hdGUKKyAgICAvLyBzdGF0ZSAoZHVlIHRv
LCBmb3IgZXhhbXBsZSwgYSBwcmV2aW91cyB0ZXN0IHJ1biBmYWlsaW5nKSwgd2Ugc3RhcnQgYnkK
KyAgICAvLyB1bnJlZ3N0ZXJpbmcgb3VyIHNlcnZpY2Ugd29ya2VyIGFuZCB0aGVuIHJlZ2lzdGVy
aW5nIGl0IGFnYWluLgorICAgIHZhciBzY29wZSA9ICJzZXJ2aWNlLXdvcmtlci1zY29wZSI7Cisg
ICAgdmFyIHdvcmtlcl91cmwgPSAic2V0dXAtZnVuY3Rpb24td29ya2VyLmpzIjsKKworICAgIHJl
dHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcih3b3JrZXJfdXJsLCB7c2NvcGU6
IHNjb3BlfSkKKyAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAg
ICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgfSkudGhlbihm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5y
ZWdpc3Rlcih3b3JrZXJfdXJsLCB7c2NvcGU6IHNjb3BlfSk7CisgICAgICAgIH0pLnRoZW4oZnVu
Y3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFj
ayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZWdpc3RyYXRpb24udW5yZWdpc3Rlcigp
OworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5j
dGlvbihyZXNvbHZlKSB7CisgICAgICAgICAgICAgICAgcmVnaXN0cmF0aW9uLmFkZEV2ZW50TGlz
dGVuZXIoInVwZGF0ZWZvdW5kIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHJl
c29sdmUocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcpOworICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24od29ya2VyKSB7CisgICAgICAg
ICAgICBmZXRjaF90ZXN0c19mcm9tX3dvcmtlcih3b3JrZXIpOworICAgICAgICB9KTsKK30sICJS
ZWdpc3RlciBTZXJ2aWNlV29ya2VyIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
c29uIiBpZD0iZXhwZWN0ZWQiPgoreworICAic3VtbWFyaXplZF9zdGF0dXMiOiB7CisgICAgInN0
YXR1c19zdHJpbmciOiAiT0siLAorICAgICJtZXNzYWdlIjogbnVsbAorICB9LAorICAic3VtbWFy
aXplZF90ZXN0cyI6IFsKKyAgICB7CisgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKKyAg
ICAgICJuYW1lIjogIkJyb3dzZXIgc3VwcG9ydHMgU2VydmljZVdvcmtlciIsCisgICAgICAicHJv
cGVydGllcyI6IHt9LAorICAgICAgIm1lc3NhZ2UiOiBudWxsCisgICAgfSwKKyAgICB7CisgICAg
ICAibWVzc2FnZSI6IG51bGwsCisgICAgICAibmFtZSI6ICJSZWdpc3RlciBTZXJ2aWNlV29ya2Vy
IiwKKyAgICAgICJwcm9wZXJ0aWVzIjoge30sCisgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNT
IgorICAgIH0sCisgICAgeworICAgICAgIm1lc3NhZ2UiOiBudWxsLAorICAgICAgIm5hbWUiOiAi
V29ya2VyIHRlc3QiLAorICAgICAgInByb3BlcnRpZXMiOiB7fSwKKyAgICAgICJzdGF0dXNfc3Ry
aW5nIjogIlBBU1MiCisgICAgfQorICBdLAorICAic3VtbWFyaXplZF9hc3NlcnRzIjogWworICAg
IHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6ICJC
cm93c2VyIHN1cHBvcnRzIFNlcnZpY2VXb3JrZXIiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAg
ICJ0cnVlIiwKKyAgICAgICAgIlwibmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIgZXhpc3RzXCIiCisg
ICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9CisgIF0sCisgICJ0eXBlIjogImNvbXBs
ZXRlIgorfQorPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9u
YWwvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvdzNjLWltcG9ydC5sb2cKaW5k
ZXggMTJiODBjMTMwNDg2YTMzOGJkYzY2ODc3ZTU1ZThmZTliZDFjNTQ4NS4uYTA2YzNhNTI4MGQ2
MjM4YjFiODkyYTU4ZDcwMWZkODlkYjAyMTBkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlv
bmFsL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC93M2MtaW1wb3J0Lmxv
ZwpAQCAtNDIsNiArNDIsOCBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9w
cm9taXNlLXdpdGgtc3luYy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL3Byb21pc2UuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rl
c3QvdGVzdHMvZnVuY3Rpb25hbC9xdWV1ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL3NldHVw
LWZ1bmN0aW9uLXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9zZXR1cC13b3JrZXItc2Vy
dmljZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL3NpbmdsZS1wYWdlLXRlc3QtZmFpbC5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMv
dGVzdC90ZXN0cy9mdW5jdGlvbmFsL3NpbmdsZS1wYWdlLXRlc3Qtbm8tYXNzZXJ0aW9ucy5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMv
dGVzdC90ZXN0cy9mdW5jdGlvbmFsL3NpbmdsZS1wYWdlLXRlc3Qtbm8tYm9keS5odG1sCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291
cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsQXJyYXkvaXNfanNvbl90eXBlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3Rz
L3VuaXQvSWRsQXJyYXkvaXNfanNvbl90eXBlLmh0bWwKaW5kZXggYWIwNjhiMjljYWMwZDcwODM0
NzFkNWQ1MjVmYjRjMjcxMjRkOWY3Ny4uYmQ4OWM5MTExMGQ4N2ZlY2ZiZTU2ZjYzOWYzNmQ4M2E1
M2JkYmZmNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEFycmF5L2lzX2pzb25fdHlwZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxBcnJheS9pc19qc29uX3R5cGUuaHRtbApAQCAtMTMx
LDE1ICsxMzEsMTAgQEAKICAgICB0ZXN0KGZ1bmN0aW9uKCkgewogICAgICAgICB2YXIgaWRsID0g
bmV3IElkbEFycmF5KCk7CiAgICAgICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJmYWNl
IEZvbyB7IH07IGludGVyZmFjZSBtaXhpbiBCYXIgeyBET01TdHJpbmcgdG9KU09OKCk7IH07IEZv
byBpbmNsdWRlcyBCYXI7Jyk7CisgICAgICAgIGlkbC5tZXJnZV9taXhpbnMoKTsKICAgICAgICAg
YXNzZXJ0X3RydWUoaWRsLmlzX2pzb25fdHlwZSh0eXBlRnJvbSgiRm9vIikpKTsKICAgICB9LCAn
c2hvdWxkIHJldHVybiB0cnVlIGZvciBpbnRlcmZhY2VzIHdoaWNoIG1peGluIGFuIGludGVyZmFj
ZSB3aGljaCBkZWNsYXJlIGEgdG9KU09OIG9wZXJhdGlvbicpOwogCi0vLyAgICB0ZXN0KGZ1bmN0
aW9uKCkgewotLy8gICAgICAgIHZhciBpZGwgPSBuZXcgSWRsQXJyYXkoKTsKLS8vICAgICAgICBp
ZGwuYWRkX3VudGVzdGVkX2lkbHMoJ2ludGVyZmFjZSBGb28geyB9OyBpbnRlcmZhY2UgQmFyIHsg
fTsgaW50ZXJmYWNlIEJheiB7IERPTVN0cmluZyB0b0pTT04oKTsgfTsgRm9vIGltcGxlbWVudHMg
QmFyOyBCYXIgaW1wbGVtZW50cyBCYXo7Jyk7Ci0vLyAgICAgICAgYXNzZXJ0X3RydWUoaWRsLmlz
X2pzb25fdHlwZSh0eXBlRnJvbSgiRm9vIikpKTsKLS8vICAgIH0sICdzaG91bGQgcmV0dXJuIHRy
dWUgZm9yIGludGVyZmFjZXMgd2hpY2ggbWl4aW4gYW4gaW50ZXJmYWNlIHdoaWNoIGl0c2VsZiBt
aXhlcyBpbiBhbiBpbnRlcmZhY2Ugd2hpY2ggZGVjbGFyZXMgYSB0b0pTT04gb3BlcmF0aW9uJyk7
Ci0KICAgICB0ZXN0KGZ1bmN0aW9uKCkgewogICAgICAgICB2YXIgaWRsID0gbmV3IElkbEFycmF5
KCk7CiAgICAgICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEZvbyB7IH07Jyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsRGljdGlvbmFyeS9nZXRfaW5oZXJpdGFuY2Vf
c3RhY2suaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxEaWN0aW9uYXJ5L2dldF9pbmhlcml0YW5jZV9z
dGFjay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNTI1OTJkZDQ2MDdkYmRh
NmNjMTc2MDMyNDlhMzhhZDUzYjQwYzljLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxEaWN0aW9uYXJ5L2dldF9pbmhlcml0YW5j
ZV9zdGFjay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotPCFET0NUWVBFIEhU
TUw+Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPklkbERpY3Rpb25hcnkucHJvdG90eXBlLmdldF9p
bmhlcml0YW5jZV9zdGFjaygpPC90aXRsZT4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9pZGwtaGVscGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0gICAgInVz
ZSBzdHJpY3QiOwotICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBzdGFjayA9IGRp
Y3Rpb25hcnlGcm9tKCdkaWN0aW9uYXJ5IEEgeyB9OycpLmdldF9pbmhlcml0YW5jZV9zdGFjaygp
OwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHN0YWNrLm1hcChkID0+IGQubmFtZSksIFsi
QSJdKTsKLSAgICB9LCAnc2hvdWxkIHJldHVybiBhbiBhcnJheSB0aGF0IGluY2x1ZGVzIGl0c2Vs
Zi4nKTsKLQotICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBkID0gZGljdGlvbmFy
eUZyb20oJ2RpY3Rpb25hcnkgQSA6IEIgeyB9OycpOwotICAgICAgICBhc3NlcnRfdGhyb3dzX2pz
KEVycm9yLCBfID0+IGQuZ2V0X2luaGVyaXRhbmNlX3N0YWNrKCkpOwotICAgIH0sICJzaG91bGQg
dGhyb3cgZm9yIGRpY3Rpb25hcmllcyB3aGljaCBpbmhlcml0IGZyb20gYW5vdGhlciBkaWN0aW9u
YXJ5IHdoaWNoIHdhc24ndCBhZGRlZCB0byB0aGUgSWRsQXJyYXkiKTsKLQotICAgIHRlc3QoZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIHZhciBpZGwgPSBuZXcgSWRsQXJyYXkoKTsKLSAgICAgICAgaWRs
LmFkZF9pZGxzKCdkaWN0aW9uYXJ5IEEgOiBCIHsgfTsnKTsKLSAgICAgICAgaWRsLmFkZF91bnRl
c3RlZF9pZGxzKCdkaWN0aW9uYXJ5IEIgOiBDIHsgfTsgZGljdGlvbmFyeSBDIHsgfTsnKTsKLSAg
ICAgICAgdmFyIEEgPSBpZGwubWVtYmVyc1siQSJdOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKEEuZ2V0X2luaGVyaXRhbmNlX3N0YWNrKCkubWFwKGQgPT4gZC5uYW1lKSwgWyJBIiwgIkIi
LCAiQyJdKTsKLSAgICB9LCAnc2hvdWxkIHJldHVybiBhbiBhcnJheSBvZiBpbmhlcml0ZWQgZGlj
dGlvbmFyaWVzIGluIG9yZGVyIG9mIGluaGVyaXRhbmNlLCBzdGFydGluZyB3aXRoIGl0c2VsZi4n
KTsKLQotICAgIHRlc3QoZnVuY3Rpb24gKCkgewotICAgICAgbGV0IGkgPSBuZXcgSWRsQXJyYXko
KTsKLSAgICAgIGkuYWRkX3VudGVzdGVkX2lkbHMoJ2RpY3Rpb25hcnkgQSA6IEIge307Jyk7Ci0g
ICAgICBpLmFzc2VydF90aHJvd3MobmV3IElkbEhhcm5lc3NFcnJvcignQSBpbmhlcml0cyBCLCBi
dXQgQiBpcyB1bmRlZmluZWQuJyksIGkgPT4gaS50ZXN0KCkpOwotICAgIH0sICdBIDogQiB3aXRo
IEIgdW5kZWNsYXJlZCBzaG91bGQgdGhyb3cgSWRsSGFybmVzc0Vycm9yJyk7Ci0KLSAgICB0ZXN0
KGZ1bmN0aW9uICgpIHsKLSAgICAgIGxldCBpID0gbmV3IElkbEFycmF5KCk7Ci0gICAgICBpLmFk
ZF91bnRlc3RlZF9pZGxzKCdkaWN0aW9uYXJ5IEEgOiBCIHt9OycpOwotICAgICAgaS5hZGRfdW50
ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEIge307Jyk7Ci0gICAgICBpLmFzc2VydF90aHJvd3MobmV3
IElkbEhhcm5lc3NFcnJvcignQSBpbmhlcml0cyBCLCBidXQgQSBpcyBub3QgYW4gaW50ZXJmYWNl
LicpLCBpID0+IGkudGVzdCgpKTsKLSAgICB9LCAnZGljdGlvbmFyeSBBIDogQiB3aXRoIEIgaW50
ZXJmYWNlIHNob3VsZCB0aHJvdyBJZGxIYXJuZXNzRXJyb3InKTsKLTwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbERpY3Rpb25hcnkvZ2V0X3Jl
dmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2suaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxEaWN0aW9uYXJ5
L2dldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDE4YmNkZWM5
MmFjMjI4MjJlZjczYjljNDI0OWU4MGNjNmFjZTZiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVz
dHMvdW5pdC9JZGxEaWN0aW9uYXJ5L2dldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrLmh0bWwK
QEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxl
PklkbERpY3Rpb25hcnkucHJvdG90eXBlLmdldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrKCk8
L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL2lkbGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2lkbC1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICAidXNlIHN0cmljdCI7CisgICAgdGVz
dChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHN0YWNrID0gZGljdGlvbmFyeUZyb20oJ2RpY3Rp
b25hcnkgQSB7IH07JykuZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2soKTsKKyAgICAgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhzdGFjay5tYXAoZCA9PiBkLm5hbWUpLCBbIkEiXSk7CisgICAg
fSwgJ3Nob3VsZCByZXR1cm4gYW4gYXJyYXkgdGhhdCBpbmNsdWRlcyBpdHNlbGYuJyk7CisKKyAg
ICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgZCA9IGRpY3Rpb25hcnlGcm9tKCdkaWN0
aW9uYXJ5IEEgOiBCIHsgfTsnKTsKKyAgICAgICAgYXNzZXJ0X3Rocm93c19qcyhFcnJvciwgXyA9
PiBkLmdldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrKCkpOworICAgIH0sICJzaG91bGQgdGhy
b3cgZm9yIGRpY3Rpb25hcmllcyB3aGljaCBpbmhlcml0IGZyb20gYW5vdGhlciBkaWN0aW9uYXJ5
IHdoaWNoIHdhc24ndCBhZGRlZCB0byB0aGUgSWRsQXJyYXkiKTsKKworICAgIHRlc3QoZnVuY3Rp
b24oKSB7CisgICAgICAgIHZhciBpZGwgPSBuZXcgSWRsQXJyYXkoKTsKKyAgICAgICAgaWRsLmFk
ZF9pZGxzKCdkaWN0aW9uYXJ5IEEgOiBCIHsgfTsnKTsKKyAgICAgICAgaWRsLmFkZF91bnRlc3Rl
ZF9pZGxzKCdkaWN0aW9uYXJ5IEIgOiBDIHsgfTsgZGljdGlvbmFyeSBDIHsgfTsnKTsKKyAgICAg
ICAgdmFyIEEgPSBpZGwubWVtYmVyc1siQSJdOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KEEuZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2soKS5tYXAoZCA9PiBkLm5hbWUpLCBbIkMi
LCAiQiIsICJBIl0pOworICAgIH0sICdzaG91bGQgcmV0dXJuIGFuIGFycmF5IG9mIGRpY3Rpb25h
cmllcyBpbiBvcmRlciBvZiBpbmhlcml0YW5jZSwgc3RhcnRpbmcgd2l0aCB0aGUgYmFzZSBkaWN0
aW9uYXJ5Jyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgIGxldCBpID0gbmV3IElk
bEFycmF5KCk7CisgICAgICBpLmFkZF91bnRlc3RlZF9pZGxzKCdkaWN0aW9uYXJ5IEEgOiBCIHt9
OycpOworICAgICAgaS5hc3NlcnRfdGhyb3dzKG5ldyBJZGxIYXJuZXNzRXJyb3IoJ0EgaW5oZXJp
dHMgQiwgYnV0IEIgaXMgdW5kZWZpbmVkLicpLCBpID0+IGkudGVzdCgpKTsKKyAgICB9LCAnQSA6
IEIgd2l0aCBCIHVuZGVjbGFyZWQgc2hvdWxkIHRocm93IElkbEhhcm5lc3NFcnJvcicpOworCisg
ICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICBsZXQgaSA9IG5ldyBJZGxBcnJheSgpOworICAg
ICAgaS5hZGRfdW50ZXN0ZWRfaWRscygnZGljdGlvbmFyeSBBIDogQiB7fTsnKTsKKyAgICAgIGku
YWRkX3VudGVzdGVkX2lkbHMoJ2ludGVyZmFjZSBCIHt9OycpOworICAgICAgaS5hc3NlcnRfdGhy
b3dzKG5ldyBJZGxIYXJuZXNzRXJyb3IoJ0EgaW5oZXJpdHMgQiwgYnV0IEEgaXMgbm90IGFuIGlu
dGVyZmFjZS4nKSwgaSA9PiBpLnRlc3QoKSk7CisgICAgfSwgJ2RpY3Rpb25hcnkgQSA6IEIgd2l0
aCBCIGludGVyZmFjZSBzaG91bGQgdGhyb3cgSWRsSGFybmVzc0Vycm9yJyk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxEaWN0aW9uYXJ5
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbERpY3Rpb25hcnkvdzNjLWltcG9ydC5s
b2cKaW5kZXggMDRiN2Y5MTE1ZjNlMWJmZGFjNmZhOTI5ODdiMWRkZmU4ODAyZGU0My4uYmFlMDRj
Y2E3NmQ1OGEzMDJkYWE4YzZjNDk3ZDViYWYxOGJhNDgyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91
bml0L0lkbERpY3Rpb25hcnkvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbERp
Y3Rpb25hcnkvdzNjLWltcG9ydC5sb2cKQEAgLTE0LDUgKzE0LDUgQEAgUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CiBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qg
b2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbERpY3Rpb25hcnkvZ2V0X2luaGVyaXRhbmNlX3N0
YWNrLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jl
c291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsRGljdGlvbmFyeS9nZXRfcmV2ZXJzZV9pbmhlcml0
YW5jZV9zdGFjay5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbERpY3Rpb25hcnkvdGVzdF9wYXJ0aWFs
X2RpY3Rpb25hcnkuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9j
b25zdHJ1Y3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvY29uc3RydWN0b3Jz
Lmh0bWwKaW5kZXggOTNjYzdmNDJjYzU1ODhmN2Y4ZjBjYjRjZmNkYjQ1NzMxZGRjZjhhOS4uZTll
ZTNmODY4MGFjMWI3MjE0YTM0YjI4MTQ1MjI0MzJiNTU0ZDQ4NSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0
cy91bml0L0lkbEludGVyZmFjZS9jb25zdHJ1Y3RvcnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQv
SWRsSW50ZXJmYWNlL2NvbnN0cnVjdG9ycy5odG1sCkBAIC04LDkgKzgsMTAgQEAKIDxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9pZGwtaGVscGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAidXNlIHN0
cmljdCI7CisvLyBbQ29uc3RydWN0b3JdIGV4dGVuZGVkIGF0dHJpYnV0ZSBzaG91bGQgbm90IGJl
IHN1cHBvcnRlZDoKIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgdmFyIGkgPSBpbnRlcmZhY2VGcm9t
KCdbQ29uc3RydWN0b3JdIGludGVyZmFjZSBBIHsgfTsnKTsKLSAgICBhc3NlcnRfZXF1YWxzKGku
Y29uc3RydWN0b3JzKCkubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnRfZXF1YWxzKGkuY29uc3RydWN0
b3JzKCkubGVuZ3RoLCAwKTsKIH0sICdJbnRlcmZhY2Ugd2l0aCBDb25zdHJ1Y3RvciBleHRlbmRl
ZCBhdHRyaWJ1dGUuJyk7CiAKIHRlc3QoZnVuY3Rpb24oKSB7CkBAIC0xOSw3ICsyMCw3IEBAIHRl
c3QoZnVuY3Rpb24oKSB7CiB9LCAnSW50ZXJmYWNlIHdpdGggY29uc3RydWN0b3IgbWV0aG9kJyk7
CiAKIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGkgPSBpbnRlcmZhY2VGcm9tKCdbQ29uc3Ry
dWN0b3JdIGludGVyZmFjZSBBIHsgY29uc3RydWN0b3IoKTsgfTsnKTsKKyAgICB2YXIgaSA9IGlu
dGVyZmFjZUZyb20oJ2ludGVyZmFjZSBBIHsgY29uc3RydWN0b3IoKTsgY29uc3RydWN0b3IoYW55
IHZhbHVlKTsgfTsnKTsKICAgICBhc3NlcnRfZXF1YWxzKGkuY29uc3RydWN0b3JzKCkubGVuZ3Ro
LCAyKTsKLX0sICdJbnRlcmZhY2Ugd2l0aCBib3RoJyk7Cit9LCAnSW50ZXJmYWNlIHdpdGggY29u
c3RydWN0b3Igb3ZlcmxvYWRzJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5p
dC9JZGxJbnRlcmZhY2UvZGVmYXVsdF90b19qc29uX29wZXJhdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91
bml0L0lkbEludGVyZmFjZS9kZWZhdWx0X3RvX2pzb25fb3BlcmF0aW9uLmh0bWwKaW5kZXggZTAz
ZWE4YjAzODc0Y2U3YWNmZmRjNzg0NjNhYjdjZjMzYWQyMjZkMC4uNWFkZTdkMGQyODJhMzQ2ZGU2
YjFmMDU0NDU3ZjQzMTM3NDg0Mzc3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVy
ZmFjZS9kZWZhdWx0X3RvX2pzb25fb3BlcmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lk
bEludGVyZmFjZS9kZWZhdWx0X3RvX2pzb25fb3BlcmF0aW9uLmh0bWwKQEAgLTEwLDQ0ICsxMCw2
IEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vaWRsLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08cHJlIGlkPWZyYWdtZW50
cz4KLSAgICBpbnRlcmZhY2UgQSA6IEIgewotICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBhOwot
ICAgIH07Ci0KLSAgICBpbnRlcmZhY2UgQiA6IEMgewotICAgICAgW0RlZmF1bHRdIG9iamVjdCB0
b0pTT04oKTsKLSAgICAgIGF0dHJpYnV0ZSBsb25nIGI7Ci0gICAgfTsKLQotICAgIGludGVyZmFj
ZSBDIHsKLSAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgYzsKLSAgICB9OwotCi0gICAgaW50ZXJm
YWNlIG1peGluIEQgewotICAgICAgW0RlZmF1bHRdIG9iamVjdCB0b0pTT04oKTsKLSAgICAgIGF0
dHJpYnV0ZSBmbG9hdCBkOwotICAgIH07Ci0KLSAgICBpbnRlcmZhY2UgbWl4aW4gRyB7Ci0gICAg
ICBbRGVmYXVsdF0gb2JqZWN0IHRvSlNPTigpOwotICAgICAgYXR0cmlidXRlIG9jdGV0IGc7Ci0g
ICAgfTsKLQotICAgIGludGVyZmFjZSBtaXhpbiBIIHsKLSAgICAgIFtEZWZhdWx0XSBvYmplY3Qg
dG9KU09OKCk7Ci0gICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGg7Ci0gICAgfTsKLQotICAgIGlu
dGVyZmFjZSBtaXhpbiBJIHsKLSAgICAgIFtEZWZhdWx0XSBvYmplY3QgdG9KU09OKCk7Ci0gICAg
ICBhdHRyaWJ1dGUgYm9vbGVhbiBpOwotICAgIH07Ci0KLSAgICBBIGluY2x1ZGVzIEc7Ci0gICAg
QSBpbmNsdWRlcyBIOwotICAgIEIgaW5jbHVkZXMgRDsKLTwvcHJlPgogPHNjcmlwdD4KICAgICAi
dXNlIHN0cmljdCI7CiAgICAgdGVzdChmdW5jdGlvbigpIHsKQEAgLTEyOCw0NSArOTAsMjQgQEAK
IAogICAgIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgICAgIHZhciBjb250ZXh0ID0gbmV3IElkbEFy
cmF5KCk7Ci0gICAgICAgIGNvbnRleHQuYWRkX2lkbHMoImludGVyZmFjZSBBIDogQiB7IFtEZWZh
dWx0XSBvYmplY3QgdG9KU09OKCk7IGF0dHJpYnV0ZSBET01TdHJpbmcgYTsgfTsiKTsKLSAgICAg
ICAgY29udGV4dC5hZGRfaWRscygiaW50ZXJmYWNlIEIgeyBvYmplY3QgdG9KU09OKCk7IGF0dHJp
YnV0ZSBsb25nIGI7IH07Iik7Ci0gICAgICAgIHZhciBtYXAgPSBjb250ZXh0Lm1lbWJlcnMuQS5k
ZWZhdWx0X3RvX2pzb25fb3BlcmF0aW9uKCk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMobWFwLnNp
emUsIDEpOwotICAgICAgICBhc3NlcnRfdHJ1ZShtYXAuaGFzKCJhIikpOwotICAgICAgICBhc3Nl
cnRfZmFsc2UobWFwLmhhcygiYiIpKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhtYXAuZ2V0KCJh
IikuaWRsVHlwZSwgIkRPTVN0cmluZyIpOworICAgICAgICBjb250ZXh0LmFkZF9pZGxzKCJpbnRl
cmZhY2UgQSB7IFtEZWZhdWx0XSBvYmplY3QgdG9KU09OKCk7IGF0dHJpYnV0ZSBET01TdHJpbmcg
YTsgfTsiKTsKKyAgICAgICAgY29udGV4dC5hZGRfaWRscygiaW50ZXJmYWNlIEIgOiBBIHsgYXR0
cmlidXRlIGFueSBiOyB9OyIpOworICAgICAgICBjb250ZXh0LmFkZF9pZGxzKCJpbnRlcmZhY2Ug
QyA6IEIgeyBbRGVmYXVsdF0gb2JqZWN0IHRvSlNPTigpOyBhdHRyaWJ1dGUgbG9uZyBjOyB9OyIp
OworICAgICAgICB2YXIgbWFwID0gY29udGV4dC5tZW1iZXJzLkMuZGVmYXVsdF90b19qc29uX29w
ZXJhdGlvbigpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKFsuLi5tYXAua2V5cygpXSwg
WyJhIiwgImMiXSk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLm1hcC52YWx1ZXMo
KV0ubWFwKHYgPT4gdi5pZGxUeXBlKSwgWyJET01TdHJpbmciLCAibG9uZyJdKTsKICAgICB9LCAn
c2hvdWxkIHJldHVybiBhbiBvcmRlcmVkIG1hcCB0aGF0IGlnbm9yZXMgYXR0cmlidXRlcyBvZiBp
bmhlcml0ZWQgaW50ZXJmYWNlcyB3aGljaCBkbyBub3QgZGVjbGFyZSBhIFtEZWZhdWx0XSB0b0pT
T04gb3BlcmF0aW9uLicpOwogCiAgICAgdGVzdChmdW5jdGlvbigpIHsKICAgICAgICAgdmFyIGNv
bnRleHQgPSBuZXcgSWRsQXJyYXkoKTsKLSAgICAgICAgY29udGV4dC5hZGRfaWRscygiaW50ZXJm
YWNlIEEgeyBbRGVmYXVsdF0gb2JqZWN0IHRvSlNPTigpOyBhdHRyaWJ1dGUgRE9NU3RyaW5nIGE7
IH07Iik7Ci0gICAgICAgIGNvbnRleHQuYWRkX2lkbHMoImludGVyZmFjZSBtaXhpbiBOIHsgW0Rl
ZmF1bHRdIG9iamVjdCB0b0pTT04oKTsgYXR0cmlidXRlIGxvbmcgbjsgfTsiKTsKLSAgICAgICAg
Y29udGV4dC5hZGRfaWRscygiQSBpbmNsdWRlcyBOOyIpOwotICAgICAgICB2YXIgbWFwID0gY29u
dGV4dC5tZW1iZXJzLkEuZGVmYXVsdF90b19qc29uX29wZXJhdGlvbigpOwotICAgICAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKFsuLi5tYXAua2V5cygpXSwgWyJhIiwgIm4iXSk7CisgICAgICAgIGNv
bnRleHQuYWRkX2lkbHMoImludGVyZmFjZSBEIHsgYXR0cmlidXRlIERPTVN0cmluZyBkOyB9OyIp
OworICAgICAgICBjb250ZXh0LmFkZF9pZGxzKCJpbnRlcmZhY2UgbWl4aW4gTSB7IFtEZWZhdWx0
XSBvYmplY3QgdG9KU09OKCk7IGF0dHJpYnV0ZSBsb25nIG07IH07Iik7CisgICAgICAgIGNvbnRl
eHQuYWRkX2lkbHMoIkQgaW5jbHVkZXMgTTsiKTsKKyAgICAgICAgY29udGV4dC5tZXJnZV9taXhp
bnMoKTsKKyAgICAgICAgdmFyIG1hcCA9IGNvbnRleHQubWVtYmVycy5ELmRlZmF1bHRfdG9fanNv
bl9vcGVyYXRpb24oKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhbLi4ubWFwLmtleXMo
KV0sIFsiZCIsICJtIl0pOwogICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKFsuLi5tYXAudmFs
dWVzKCldLm1hcCh2ID0+IHYuaWRsVHlwZSksIFsiRE9NU3RyaW5nIiwgImxvbmciXSk7CiAgICAg
fSwgJ3Nob3VsZCByZXR1cm4gYSBwcm9wZXJseSBvcmRlcmVkIG1hcCB0aGF0IGFjY291bnRzIGZv
ciBtaXhlZC1pbiBpbnRlcmZhY2VzIHdoaWNoIGRlY2xhcmUgYSBbRGVmYXVsdF0gdG9KU09OIG9w
ZXJhdGlvbi4nKTsKLQotICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBjb250ZXh0
ID0gbmV3IElkbEFycmF5KCk7Ci0gICAgICAgIGNvbnRleHQuYWRkX2lkbHMoImludGVyZmFjZSBB
IHsgW0RlZmF1bHRdIG9iamVjdCB0b0pTT04oKTsgYXR0cmlidXRlIERPTVN0cmluZyBhOyB9OyIp
OwotICAgICAgICBjb250ZXh0LmFkZF9pZGxzKCJpbnRlcmZhY2UgbWl4aW4gTiB7IGF0dHJpYnV0
ZSBsb25nIG47IH07Iik7Ci0gICAgICAgIGNvbnRleHQuYWRkX2lkbHMoIkEgaW5jbHVkZXMgTjsi
KTsKLSAgICAgICAgdmFyIG1hcCA9IGNvbnRleHQubWVtYmVycy5BLmRlZmF1bHRfdG9fanNvbl9v
cGVyYXRpb24oKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhtYXAuc2l6ZSwgMSk7Ci0gICAgICAg
IGFzc2VydF90cnVlKG1hcC5oYXMoImEiKSk7Ci0gICAgICAgIGFzc2VydF9mYWxzZShtYXAuaGFz
KCJuIikpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKG1hcC5nZXQoImEiKS5pZGxUeXBlLCAiRE9N
U3RyaW5nIik7Ci0gICAgfSwgJ3Nob3VsZCByZXR1cm4gYSBwcm9wZXJseSBvcmRlcmVkIG1hcCB0
aGF0IGlnbm9yZXMgbWl4ZWQtaW4gaW50ZXJmYWNlcyB3aGljaCBkbyBub3QgZGVjbGFyZSBhIFtE
ZWZhdWx0XSB0b0pTT04gb3BlcmF0aW9uLicpOwotCi0KLSAgICB0ZXN0KGZ1bmN0aW9uKCkgewot
ICAgICAgICB2YXIgY29udGV4dCA9IG5ldyBJZGxBcnJheSgpOwotICAgICAgICBjb250ZXh0LmFk
ZF9pZGxzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFnbWVudHMnKS50ZXh0Q29udGVudCk7
Ci0gICAgICAgIHZhciBtYXAgPSBjb250ZXh0Lm1lbWJlcnMuQS5kZWZhdWx0X3RvX2pzb25fb3Bl
cmF0aW9uKCk7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLm1hcC5rZXlzKCldLCBb
ImIiLCAiZCIsICJnIiwgImgiXSk7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLm1h
cC52YWx1ZXMoKV0ubWFwKHYgPT4gdi5pZGxUeXBlKSwgWyJsb25nIiwgImZsb2F0IiwgIm9jdGV0
IiwgIkRPTVN0cmluZyJdKTsKLSAgICB9LCAnc2hvdWxkIHJldHVybiBhIHByb3Blcmx5IG9yZGVy
ZWQgbWFwIG9mIG5hbWUvdHlwZSBwYWlycyBoYW5kbGluZyBpbmhlcml0ZWQgYW5kIGNvbnNlcXVl
bnRpYWwgaW50ZXJmYWNlcyBhcyBzcGVjaWZpZWQuJyk7CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvZ2V0X2luaGVyaXRh
bmNlX3N0YWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2dldF9pbmhlcml0YW5j
ZV9zdGFjay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZTkxODhjNzMxODky
MGY0NDkzNWU0MThhNTBhYTM1YTU4YmY1NzI1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvZ2V0X2luaGVyaXRh
bmNlX3N0YWNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08IURPQ1RZUEUg
SFRNTD4KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+SWRsSW50ZXJmYWNlLnByb3RvdHlwZS5nZXRf
aW5oZXJpdGFuY2Vfc3RhY2soKTwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9Imxv
ZyI+PC9kaXY+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vaWRsLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotICAgICJ1
c2Ugc3RyaWN0IjsKLSAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgc3RhY2sgPSBp
bnRlcmZhY2VGcm9tKCdpbnRlcmZhY2UgQSB7IH07JykuZ2V0X2luaGVyaXRhbmNlX3N0YWNrKCk7
Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc3RhY2subWFwKGkgPT4gaS5uYW1lKSwgWyJB
Il0pOwotICAgIH0sICdzaG91bGQgcmV0dXJuIGFuIGFycmF5IHRoYXQgaW5jbHVkZXMgaXRzZWxm
LicpOwotCi0gICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGkgPSBpbnRlcmZhY2VG
cm9tKCdpbnRlcmZhY2UgQSA6IEIgeyB9OycpOwotICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKEVy
cm9yLCBfID0+IGkuZ2V0X2luaGVyaXRhbmNlX3N0YWNrKCkpOwotICAgIH0sICJzaG91bGQgdGhy
b3cgZm9yIGludGVyZmFjZXMgd2hpY2ggaW5oZXJpdCBmcm9tIGFub3RoZXIgaW50ZXJmYWNlIHdo
aWNoIHdhc24ndCBhZGRlZCB0byB0aGUgSWRsQXJyYXkiKTsKLQotICAgIHRlc3QoZnVuY3Rpb24o
KSB7Ci0gICAgICAgIHZhciBpZGwgPSBuZXcgSWRsQXJyYXkoKTsKLSAgICAgICAgaWRsLmFkZF9p
ZGxzKCdpbnRlcmZhY2UgQSA6IEIgeyB9OycpOwotICAgICAgICBpZGwuYWRkX3VudGVzdGVkX2lk
bHMoJ2ludGVyZmFjZSBCIDogQyB7IH07IGludGVyZmFjZSBDIHsgfTsnKTsKLSAgICAgICAgdmFy
IEEgPSBpZGwubWVtYmVyc1siQSJdOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKEEuZ2V0
X2luaGVyaXRhbmNlX3N0YWNrKCkubWFwKGkgPT4gaS5uYW1lKSwgWyJBIiwgIkIiLCAiQyJdKTsK
LSAgICB9LCAnc2hvdWxkIHJldHVybiBhbiBhcnJheSBvZiBpbmhlcml0ZWQgaW50ZXJmYWNlcyBp
biBvcmRlciBvZiBpbmhlcml0YW5jZSwgc3RhcnRpbmcgd2l0aCBpdHNlbGYuJyk7Ci0KLSAgICB0
ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFyIGlkbCA9IG5ldyBJZGxBcnJheSgpOwotICAg
ICAgICBpZGwuYWRkX3VudGVzdGVkX2lkbHMoJ2ludGVyZmFjZSBBIDogQiB7IH07Jyk7Ci0gICAg
ICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEIgOiBBIHsgfTsnKTsKLSAgICAg
ICAgaWRsLmFzc2VydF90aHJvd3MoJ0EgaGFzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeTogQSxCLEEn
LCBpID0+IGkudGVzdCgpKTsKLSAgICB9LCAnc2hvdWxkIHRocm93IHdoZW4gaW5oZXJpdGFuY2Ug
aXMgY2lyY3VsYXInKTsKLQotICAgIHRlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICB2YXIgaWRs
ID0gbmV3IElkbEFycmF5KCk7Ci0gICAgICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJm
YWNlIEEgOiBCIHsgfTsnKTsKLSAgICAgICAgaWRsLmFzc2VydF90aHJvd3MoCi0gICAgICAgICAg
ICAnRHVwbGljYXRlIGlkZW50aWZpZXIgQScsCi0gICAgICAgICAgICBpID0+IGkuYWRkX3VudGVz
dGVkX2lkbHMoJ2ludGVyZmFjZSBBIDogQyB7IH07JykpOwotICAgIH0sICdzaG91bGQgdGhyb3cg
d2hlbiBtdWx0aXBsZSBpbmhlcml0YW5jZXMgZGVmaW5lZCcpOwotPC9zY3JpcHQ+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2dldF9yZXZl
cnNlX2luaGVyaXRhbmNlX3N0YWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2dl
dF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGMwNjZiYWFiYmNm
MDI2N2IxNTFhNGUyMWQ2YmVmZWYxN2UzNmY0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMv
dW5pdC9JZGxJbnRlcmZhY2UvZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2suaHRtbApAQCAt
MCwwICsxLDQ5IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+SWRs
SW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjaygpPC90aXRs
ZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL1dlYklETFBhcnNlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9p
ZGxoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9pZGwtaGVscGVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgInVzZSBzdHJpY3QiOworICAgIHRlc3QoZnVu
Y3Rpb24oKSB7CisgICAgICAgIHZhciBzdGFjayA9IGludGVyZmFjZUZyb20oJ2ludGVyZmFjZSBB
IHsgfTsnKS5nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjaygpOworICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKHN0YWNrLm1hcChpID0+IGkubmFtZSksIFsiQSJdKTsKKyAgICB9LCAnc2hv
dWxkIHJldHVybiBhbiBhcnJheSB0aGF0IGluY2x1ZGVzIGl0c2VsZi4nKTsKKworICAgIHRlc3Qo
ZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBpID0gaW50ZXJmYWNlRnJvbSgnaW50ZXJmYWNlIEEg
OiBCIHsgfTsnKTsKKyAgICAgICAgYXNzZXJ0X3Rocm93c19qcyhFcnJvciwgXyA9PiBpLmdldF9y
ZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrKCkpOworICAgIH0sICJzaG91bGQgdGhyb3cgZm9yIGlu
dGVyZmFjZXMgd2hpY2ggaW5oZXJpdCBmcm9tIGFub3RoZXIgaW50ZXJmYWNlIHdoaWNoIHdhc24n
dCBhZGRlZCB0byB0aGUgSWRsQXJyYXkiKTsKKworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAg
ICAgIHZhciBpZGwgPSBuZXcgSWRsQXJyYXkoKTsKKyAgICAgICAgaWRsLmFkZF9pZGxzKCdpbnRl
cmZhY2UgQSA6IEIgeyB9OycpOworICAgICAgICBpZGwuYWRkX3VudGVzdGVkX2lkbHMoJ2ludGVy
ZmFjZSBCIDogQyB7IH07IGludGVyZmFjZSBDIHsgfTsnKTsKKyAgICAgICAgdmFyIEEgPSBpZGwu
bWVtYmVyc1siQSJdOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKEEuZ2V0X3JldmVyc2Vf
aW5oZXJpdGFuY2Vfc3RhY2soKS5tYXAoaSA9PiBpLm5hbWUpLCBbIkMiLCAiQiIsICJBIl0pOwor
ICAgIH0sICdzaG91bGQgcmV0dXJuIGFuIGFycmF5IG9mIGludGVyZmFjZXMgaW4gb3JkZXIgb2Yg
aW5oZXJpdGFuY2UsIHN0YXJ0aW5nIHdpdGggdGhlIGJhc2UgaW50ZXJmYWNlJyk7CisKKyAgICB0
ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGlkbCA9IG5ldyBJZGxBcnJheSgpOworICAg
ICAgICBpZGwuYWRkX3VudGVzdGVkX2lkbHMoJ2ludGVyZmFjZSBBIDogQiB7IH07Jyk7CisgICAg
ICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEIgOiBBIHsgfTsnKTsKKyAgICAg
ICAgaWRsLmFzc2VydF90aHJvd3MoJ0EgaGFzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeTogQSxCLEEn
LCBpID0+IGkudGVzdCgpKTsKKyAgICB9LCAnc2hvdWxkIHRocm93IHdoZW4gaW5oZXJpdGFuY2Ug
aXMgY2lyY3VsYXInKTsKKworICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgaWRs
ID0gbmV3IElkbEFycmF5KCk7CisgICAgICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJm
YWNlIEEgOiBCIHsgfTsnKTsKKyAgICAgICAgaWRsLmFzc2VydF90aHJvd3MoCisgICAgICAgICAg
ICAnRHVwbGljYXRlIGlkZW50aWZpZXIgQScsCisgICAgICAgICAgICBpID0+IGkuYWRkX3VudGVz
dGVkX2lkbHMoJ2ludGVyZmFjZSBBIDogQyB7IH07JykpOworICAgIH0sICdzaG91bGQgdGhyb3cg
d2hlbiBtdWx0aXBsZSBpbmhlcml0YW5jZXMgZGVmaW5lZCcpOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL3Nob3VsZF9o
YXZlX2ludGVyZmFjZV9vYmplY3QuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2Uvc2hv
dWxkX2hhdmVfaW50ZXJmYWNlX29iamVjdC5odG1sCmluZGV4IGY1YmI3YmYzNWE1OGMyM2NiYWY3
NmYxNTE5YWMyZGZlYzVmM2FkNjIuLjNjZTk0NTc1MWQ4NTAyZGQ2ZDM1ZDE5ZjUyYzcxZjE3MDEz
MTNkNDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2Uvc2hvdWxkX2hhdmVf
aW50ZXJmYWNlX29iamVjdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2Uvc2hv
dWxkX2hhdmVfaW50ZXJmYWNlX29iamVjdC5odG1sCkBAIC0xNCwxNyArMTQsMTcgQEAgdGVzdChm
dW5jdGlvbigpIHsKIH0sICJjYWxsYmFjayBpbnRlcmZhY2Ugd2l0aCBhIGNvbnN0YW50Iik7CiAK
IHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGkgPSBpbnRlcmZhY2VGcm9tKCJjYWxsYmFjayBp
bnRlcmZhY2UgQSB7IHZvaWQgYigpOyBzZXF1ZW5jZTxhbnk+IGMoKTsgfTsiKTsKKyAgICB2YXIg
aSA9IGludGVyZmFjZUZyb20oImNhbGxiYWNrIGludGVyZmFjZSBBIHsgdW5kZWZpbmVkIGIoKTsg
c2VxdWVuY2U8YW55PiBjKCk7IH07Iik7CiAgICAgYXNzZXJ0X2ZhbHNlKGkuc2hvdWxkX2hhdmVf
aW50ZXJmYWNlX29iamVjdCgpKTsKIH0sICJjYWxsYmFjayBpbnRlcmZhY2Ugd2l0aG91dCBhIGNv
bnN0YW50Iik7CiAKIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGkgPSBpbnRlcmZhY2VGcm9t
KCJbTm9JbnRlcmZhY2VPYmplY3RdIGludGVyZmFjZSBBIHsgfTsiKTsKKyAgICB2YXIgaSA9IGlu
dGVyZmFjZUZyb20oIltMZWdhY3lOb0ludGVyZmFjZU9iamVjdF0gaW50ZXJmYWNlIEEgeyB9OyIp
OwogICAgIGFzc2VydF9mYWxzZShpLnNob3VsZF9oYXZlX2ludGVyZmFjZV9vYmplY3QoKSk7Ci19
LCAibm9uLWNhbGxiYWNrIGludGVyZmFjZSB3aXRoIFtOb0ludGVyZmFjZU9iamVjdF0iKTsKK30s
ICJub24tY2FsbGJhY2sgaW50ZXJmYWNlIHdpdGggW0xlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0XSIp
OwogCiB0ZXN0KGZ1bmN0aW9uKCkgewogICAgIHZhciBpID0gaW50ZXJmYWNlRnJvbSgiaW50ZXJm
YWNlIEEgeyB9OyIpOwogICAgIGFzc2VydF90cnVlKGkuc2hvdWxkX2hhdmVfaW50ZXJmYWNlX29i
amVjdCgpKTsKLX0sICJub24tY2FsbGJhY2sgaW50ZXJmYWNlIHdpdGhvdXQgW05vSW50ZXJmYWNl
T2JqZWN0XSIpOworfSwgIm5vbi1jYWxsYmFjayBpbnRlcmZhY2Ugd2l0aG91dCBbTGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3RdIik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9J
ZGxJbnRlcmZhY2UvdHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFj
ZXMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvdHJhdmVyc2VfaW5oZXJpdGVkX2Fu
ZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOTRiOTU2ZGI2ZWVkMWUxOWQ3ZGQzN2NhNjJhODA0YzRmZTM2ZWEyYS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50
ZXJmYWNlL3RyYXZlcnNlX2luaGVyaXRlZF9hbmRfY29uc2VxdWVudGlhbF9pbnRlcmZhY2VzLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi08IURPQ1RZUEUgSFRNTD4KLTxodG1s
PgotPGhlYWQ+Ci08dGl0bGU+SWRsRGljdGlvbmFyeS5wcm90b3R5cGUudHJhdmVyc2VfaW5oZXJp
dGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMoKTwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9XZWJJRExQYXJzZXIu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vaWRsLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08
cHJlIGlkPWZyYWdtZW50cz4KLSAgICBpbnRlcmZhY2UgQSA6IEIgeyB9OwotICAgIGludGVyZmFj
ZSBCIDogQyB7IH07Ci0gICAgaW50ZXJmYWNlIEMgeyB9OwotICAgIGludGVyZmFjZSBtaXhpbiBE
IHsgfTsKLSAgICBpbnRlcmZhY2UgbWl4aW4gRyB7IH07Ci0gICAgaW50ZXJmYWNlIG1peGluIEgg
eyB9OwotCi0gICAgQSBpbmNsdWRlcyBHOwotICAgIEEgaW5jbHVkZXMgSDsKLSAgICBCIGluY2x1
ZGVzIEQ7Ci08L3ByZT4KLTxzY3JpcHQ+Ci0gICAgInVzZSBzdHJpY3QiOwotICAgIHRlc3QoZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIHZhciBpbnRlcmZhY2VzID0gW107Ci0gICAgICAgIGludGVyZmFj
ZUZyb20oJ2ludGVyZmFjZSBBIHsgfTsnKS50cmF2ZXJzZV9pbmhlcml0ZWRfYW5kX2NvbnNlcXVl
bnRpYWxfaW50ZXJmYWNlcyhmdW5jdGlvbihpKSB7Ci0gICAgICAgICAgICBpbnRlcmZhY2VzLnB1
c2goaS5uYW1lKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoaW50
ZXJmYWNlcywgWyJBIl0pOwotICAgIH0sICdzaG91bGQgcmV0dXJuIGFuIGFycmF5IHRoYXQgaW5j
bHVkZXMgaXRzZWxmLicpOwotCi0gICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGNv
bnRleHQgPSBuZXcgSWRsQXJyYXkoKTsKLSAgICAgICAgY29udGV4dC5hZGRfaWRscygiaW50ZXJm
YWNlIEEgeyB9OyBBIGluY2x1ZGVzIEI7Iik7Ci0gICAgICAgIGFzc2VydF90aHJvd3NfanMoRXJy
b3IsIF8gPT4gY29udGV4dC5tZW1iZXJzWyJBIl0udHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25z
ZXF1ZW50aWFsX2ludGVyZmFjZXMoZnVuY3Rpb24oKSB7fSkpOwotICAgIH0sICJzaG91bGQgdGhy
b3cgZm9yIGludGVyZmFjZXMgd2hpY2ggYXJlIGV4dGVuZGVkIGJ5IGFub3RoZXIgaW50ZXJmYWNl
IHdoaWNoIHdhc24ndCBhZGRlZCB0byB0aGUgSWRsQXJyYXkuIik7Ci0KLSAgICB0ZXN0KGZ1bmN0
aW9uKCkgewotICAgICAgICB2YXIgY29udGV4dCA9IG5ldyBJZGxBcnJheSgpOwotICAgICAgICBj
b250ZXh0LmFkZF9pZGxzKCJpbnRlcmZhY2UgQSB7IH07Iik7Ci0gICAgICAgIGFzc2VydF90aHJv
d3NfanMoVHlwZUVycm9yLCBfID0+IGNvbnRleHQubWVtYmVyc1siQSJdLnRyYXZlcnNlX2luaGVy
aXRlZF9hbmRfY29uc2VxdWVudGlhbF9pbnRlcmZhY2VzKCkpOwotICAgIH0sICJzaG91bGQgdGhy
b3cgaWYgbm90IHBhc3NlZCBhIGNhbGxiYWNrIik7Ci0KLSAgICB0ZXN0KGZ1bmN0aW9uKCkgewot
ICAgICAgICB2YXIgY29udGV4dCA9IG5ldyBJZGxBcnJheSgpOwotICAgICAgICBjb250ZXh0LmFk
ZF9pZGxzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFnbWVudHMnKS50ZXh0Q29udGVudCk7
Ci0gICAgICAgIHZhciBpbnRlcmZhY2VzID0gW107Ci0gICAgICAgIGNvbnRleHQubWVtYmVyc1si
QSJdLnRyYXZlcnNlX2luaGVyaXRlZF9hbmRfY29uc2VxdWVudGlhbF9pbnRlcmZhY2VzKGZ1bmN0
aW9uKGkpIHsKLSAgICAgICAgICAgIGludGVyZmFjZXMucHVzaChpLm5hbWUpOwotICAgICAgICB9
KTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhpbnRlcmZhY2VzLCBbIkMiLCAiQiIsICJE
IiwgIkEiLCAiRyIsICJIIl0pOwotICAgIH0sICdzaG91bGQgcmV0dXJuIGFuIGFycmF5IHRoYXQg
aW5jbHVkZXMgdGhlIGlkZW50aWZpZXIgb2YgdGhlIGludGVyZmFjZXMgaW4gdGhlIGNvcnJlY3Qg
b3JkZXIuJyk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVz
dHMvdW5pdC9JZGxJbnRlcmZhY2UvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50
ZXJmYWNlL3czYy1pbXBvcnQubG9nCmluZGV4IDgyMzU1ZTA1YjU1YjdhMjE4ODEwNjE1ZDM2YTdi
YjRlNGMzNjAxZTkuLmJkNjdkZjk0NDUxMTBlMjc3OWRjYmQ0NmQ1Y2JhZTI2YTYwZjIyYTcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvdzNjLWltcG9ydC5sb2cKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dC90ZXN0cy91bml0L0lkbEludGVyZmFjZS93M2MtaW1wb3J0LmxvZwpAQCAtMTcsMTMgKzE3LDEy
IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9jb25zdHJ1Y3Rv
cnMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvZGVmYXVsdF90b19qc29uX29wZXJh
dGlvbi5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9kb19tZW1iZXJfdW5zY29wYWJs
ZV9hc3NlcnRzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2dldF9pbmhlcml0YW5j
ZV9zdGFjay5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9nZXRfaW50ZXJmYWNlX29i
amVjdC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9nZXRfaW50ZXJmYWNlX29iamVj
dF9vd25lci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9nZXRfbGVnYWN5X25hbWVz
cGFjZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9nZXRfcXVhbGlmaWVkX25hbWUu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3Vy
Y2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vf
c3RhY2suaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvaGFzX2RlZmF1bHRfdG9fanNv
bl9yZWd1bGFyX29wZXJhdGlvbi5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9oYXNf
dG9fanNvbl9yZWd1bGFyX29wZXJhdGlvbi5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFj
ZS9zaG91bGRfaGF2ZV9pbnRlcmZhY2Vfb2JqZWN0Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50
ZXJmYWNlL3Rlc3RfcHJpbWFyeV9pbnRlcmZhY2Vfb2ZfdW5kZWZpbmVkLmh0bWwKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3Rz
L3VuaXQvSWRsSW50ZXJmYWNlL3RyYXZlcnNlX2luaGVyaXRlZF9hbmRfY29uc2VxdWVudGlhbF9p
bnRlcmZhY2VzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2VNZW1i
ZXIvaXNfdG9fanNvbl9yZWd1bGFyX29wZXJhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbElu
dGVyZmFjZU1lbWJlci9pc190b19qc29uX3JlZ3VsYXJfb3BlcmF0aW9uLmh0bWwKaW5kZXggYWJm
YTRhYjgwMGIzYzhlNmI1ZjZmZDNiNDJhOTgyY2MyZTRmZTk5ZS4uYjNmNDAyZGQwODg1N2NmZTQx
Y2RjODU3M2ZmOGMzYzQwN2QyNWU4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVy
ZmFjZU1lbWJlci9pc190b19qc29uX3JlZ3VsYXJfb3BlcmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0
cy91bml0L0lkbEludGVyZmFjZU1lbWJlci9pc190b19qc29uX3JlZ3VsYXJfb3BlcmF0aW9uLmh0
bWwKQEAgLTE4LDcgKzE4LDcgQEAKICAgICB9LCAnc2hvdWxkIHJldHVybiBmYWxzZSB3aGVuIG1l
bWJlciBpcyBhbiBhdHRyaWJ1dGUuJyk7CiAKICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAg
ICB2YXIgbSA9IG1lbWJlckZyb20oInN0YXRpYyB2b2lkIGZvbygpIik7CisgICAgICAgIHZhciBt
ID0gbWVtYmVyRnJvbSgic3RhdGljIHVuZGVmaW5lZCBmb28oKSIpOwogICAgICAgICBhc3NlcnRf
ZmFsc2UobS5pc190b19qc29uX3JlZ3VsYXJfb3BlcmF0aW9uKCkpOwogICAgIH0sICdzaG91bGQg
cmV0dXJuIGZhbHNlIHdoZW4gbWVtYmVyIGlzIGEgc3RhdGljIG9wZXJhdGlvbi4nKTsKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNv
dXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZU1lbWJlci90b1N0cmluZy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dC90ZXN0cy91bml0L0lkbEludGVyZmFjZU1lbWJlci90b1N0cmluZy5odG1sCmluZGV4IDc3OWM3
YTE1ZTZkN2I5ZWMyMGMzOGJhMjQ5MDBmNzUyMDk2ZGYzZTIuLjA1NGRiYjFjY2JkNmVhMjczOTk4
NjI5NDMzYzE1Y2ViNTJhYjRiYmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZh
Y2VNZW1iZXIvdG9TdHJpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlTWVt
YmVyL3RvU3RyaW5nLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAgY29uc3QgdGVzdHMgPSBbCiBdOwog
Zm9yIChjb25zdCBbaW5wdXQsIG91dHB1dF0gb2YgdGVzdHMpIHsKICAgICB0ZXN0KGZ1bmN0aW9u
KCkgewotICAgICAgICB2YXIgbSA9IG1lbWJlckZyb20oYHZvaWQgZm9vKCR7aW5wdXR9KWApOwor
ICAgICAgICB2YXIgbSA9IG1lbWJlckZyb20oYHVuZGVmaW5lZCBmb28oJHtpbnB1dH0pYCk7CiAg
ICAgICAgIGFzc2VydF9lcXVhbHMobS50b1N0cmluZygpLCBgZm9vKCR7b3V0cHV0fSlgKTsKICAg
ICB9LCBgdG9TdHJpbmcgZm9yICR7aW5wdXR9YCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3Vu
aXQvaGVscGVycy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9oZWxwZXJzLmpzCmluZGV4IGIyNzNhNzI1ODlm
N2QzMzRkZTU4ZWU3ODBhYmJjNGMwZjRlMjJlYmQuLmNhMzc4YTI3YzkxNTI3NDJmNzUxZDBiOWM1
YzI3NmY0OGEyMTU2MGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9oZWxwZXJzLmpzCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rl
c3QvdGVzdHMvdW5pdC9oZWxwZXJzLmpzCkBAIC0xMSw3ICsxMSw3IEBAIGZ1bmN0aW9uIHRlc3Rf
ZmFpbHVyZShmbiwgbmFtZSkgewogICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEFzc2VydGlvbkVy
cm9yKSB7CiAgICAgICAgIHJldHVybjsKICAgICAgIH0KLSAgICAgIHRocm93IG5ldyBBc3NlcnRp
b25FcnJvcignRXhwZWN0ZWQgYW4gQXNzZXJ0aW9uRXJyb3IsIGJ1dCcpOworICAgICAgdGhyb3cg
bmV3IEFzc2VydGlvbkVycm9yKCdFeHBlY3RlZCBhbiBBc3NlcnRpb25FcnJvciwgYnV0JyArIGVy
cik7CiAgICAgfQogICAgIHRocm93IG5ldyBBc3NlcnRpb25FcnJvcigKICAgICAgICdFeHBlY3Rl
ZCBhbiBBc3NlcnRpb25FcnJvciwgYnV0IG5vIGVycm9yIHdhcyB0aHJvd24nCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90
ZXN0L3Rlc3RzL3VuaXQvdW5wYWlyZWQtc3Vycm9nYXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L3Vu
cGFpcmVkLXN1cnJvZ2F0ZXMuaHRtbAppbmRleCAxYjE2MmZlNzFkMjgzZDYzZGJkYWFjNWIzYmU4
ODdmNWNkODBkNTNmLi5iMjMyMTExMzI2NTllZWYxYzUwYjA0NmUwYTE1YmMwNmY2YmViZmMzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jl
c291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvdW5wYWlyZWQtc3Vycm9nYXRlcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qv
dGVzdHMvdW5pdC91bnBhaXJlZC1zdXJyb2dhdGVzLmh0bWwKQEAgLTExNCw2ICsxMTQsNyBAQCBw
cm9taXNlX3Rlc3QoKCkgPT4gewogICAgICAgICB0ZXN0KCgpID0+IHt9LCAnVStkODAwVStkODAx
IG11c3QgYmUgc2FuaXRpemVkOiBcdWQ4MDBcdWQ4MDEnKTsKICAgICAgICAgdGVzdCgoKSA9PiB7
fSwgJ1UrZGZmZiBtdXN0IGJlIHNhbml0aXplZDogXHVkZmZmJyk7CiAgICAgICAgIHRlc3QoKCkg
PT4ge30sICdVK2RjMDBVK2Q4MDBVK2RjMDBVK2Q4MDAgbXVzdCBiZSBzYW5pdGl6ZWQ6IFx1ZGMw
MFx1ZDgwMFx1ZGMwMFx1ZDgwMCcpOworICAgICAgICB0ZXN0KCgpID0+IHt9LCAnVStkYmZmVStk
ZmZmVStkZmZmIG11c3QgYmUgc2FuaXRpemVkOiBcdWRiZmZcdWRmZmZcdWRmZmYnKTsKICAgICAg
ICAgdGVzdCgoKSA9PiB7fSwgJ2FmdGVyJyk7CiAgICAgICB9CiAgICAgKS50aGVuKCh7aGFybmVz
cywgdGVzdHN9KSA9PiB7CkBAIC0xMzAsNiArMTMxLDEwIEBAIHByb21pc2VfdGVzdCgoKSA9PiB7
CiAgICAgICAgIHRlc3RzWydVK2RjMDBVK2Q4MDBVK2RjMDBVK2Q4MDAgbXVzdCBiZSBzYW5pdGl6
ZWQ6IFUrZGMwMFx1ZDgwMFx1ZGMwMFUrZDgwMCddLAogICAgICAgICAnUEFTUycKICAgICAgICk7
CisgICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICB0ZXN0c1snVStkYmZmVStkZmZmVStkZmZm
IG11c3QgYmUgc2FuaXRpemVkOiBcdWRiZmZcdWRmZmZVK2RmZmYnXSwKKyAgICAgICAgJ1BBU1Mn
CisgICAgICApOwogICAgICAgYXNzZXJ0X2VxdWFscyh0ZXN0cy5hZnRlciwgJ1BBU1MnKTsKICAg
ICB9KTsKIH0sICdzdWItdGVzdCBuYW1lcyB3aGljaCBpbmNsdWRlIHVucGFpcmVkIHN1cnJvZ2F0
ZXMnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3Rlc3QvdG94LmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdG94LmluaQppbmRleCAyNjZhNmU4OTUy
ZTA0ZDkwMTIwNjQ4MzYxNGJkYTkwOTc5MzNiYjhlLi5hOWMwN2MzZDIyYThhM2UyNjUzNWEwYjFl
ZjZlYWIyOGFmMDRjMjFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3RveC5pbmkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90b3guaW5pCkBA
IC0xLDE1ICsxLDEzIEBACiBbdG94XQotZW52bGlzdCA9IHB5MjcscHkzNixweTM4CitlbnZsaXN0
ID0gcHkzNixweTM3LHB5MzgscHkzOQogc2tpcHNkaXN0PVRydWUKIAogW3Rlc3RlbnZdCiBwYXNz
ZW52PURJU1BMQVkgIyBOZWNlc3NhcnkgZm9yIHRoZSBzcGF3bmVkIEdlY2tvRHJpdmVyIHByb2Nl
c3MgdG8gY29ubmVjdCB0bwogICAgICAgICAgICAgICAgICMgdGhlIGFwcHJvcHJpYXRlIGRpc3Bs
YXkuCisKIGRlcHMgPQotICBodG1sNWxpYgotICBweXRlc3Q+PTIuOSw8NiAjIHBpbm5lZCB0byA8
NiBkdWUgdG8gaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVz
LzI2MTMyCi0gIHB5dmlydHVhbGRpc3BsYXkKLSAgc2l4Ci0gIHJlcXVlc3RzCisgIC1ye3RveGlu
aWRpcn0vLi4vLi4vdG9vbHMvcmVxdWlyZW1lbnRzX3B5dGVzdC50eHQKKyAgLXJ7dG94aW5pZGly
fS9yZXF1aXJlbWVudHMudHh0CiAKIGNvbW1hbmRzID0gcHl0ZXN0IC12diB7cG9zYXJnc30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3czYy1pbXBvcnQubG9nCmluZGV4IGU3YTQ4
NmE5Yjk2YzEwNWViOWE1ZGY1YTA1Zjg5MzlhMTU5OWVhMGQuLjI3YjU0MjdmNGFkMmMwYWY3YmQ4
YWIxOWRkNGZkOWMzOTA5MjZmYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdzNjLWltcG9ydC5sb2cKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dC93M2MtaW1wb3J0LmxvZwpAQCAtMTksNiArMTksNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvaGFy
bmVzcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC9pZGwtaGVscGVyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC9uZXN0ZWQtdGVzdGhhcm5lc3MuanMKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0
L3JlcXVpcmVtZW50cy50eHQKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy90ZXN0L3RveC5pbmkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3ZhcmlhbnRzLmpzCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC93cHRzZXJ2
ZXIucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3Rlc3Qvd3B0c2VydmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC93cHRzZXJ2ZXIucHkKaW5kZXgg
YTUwNGE3NmE0NmUwMGRiOGY5YmI0YTE5ZGM5ZGNhNThlYzFjODMxNC4uYWJlMzBhZDNlZDJhODAy
OWYwZmU2Yjg3NTNkOTgzYzJjODg1ZTM2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC93cHRzZXJ2ZXIucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMv
dGVzdC93cHRzZXJ2ZXIucHkKQEAgLTMsMTcgKzMsMTggQEAgaW1wb3J0IG9zCiBpbXBvcnQgc3Vi
cHJvY2VzcwogaW1wb3J0IHRpbWUKIGltcG9ydCBzeXMKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCB1
cmxsaWIKK2ltcG9ydCB1cmxsaWIKIAogCiBjbGFzcyBXUFRTZXJ2ZXIob2JqZWN0KToKICAgICBk
ZWYgX19pbml0X18oc2VsZiwgd3B0X3Jvb3QpOgorICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dp
bmcuZ2V0TG9nZ2VyKCkKICAgICAgICAgc2VsZi53cHRfcm9vdCA9IHdwdF9yb290CiAKICAgICAg
ICAgIyBUaGlzIGlzIGEgdGVycmlibGUgaGFjayB0byBnZXQgdGhlIGRlZmF1bHQgY29uZmlnIG9m
IHdwdHNlcnZlLgogICAgICAgICBzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKHdwdF9y
b290LCAidG9vbHMiKSkKICAgICAgICAgZnJvbSBzZXJ2ZS5zZXJ2ZSBpbXBvcnQgYnVpbGRfY29u
ZmlnCi0gICAgICAgIHdpdGggYnVpbGRfY29uZmlnKCkgYXMgY29uZmlnOgorICAgICAgICB3aXRo
IGJ1aWxkX2NvbmZpZyhzZWxmLmxvZ2dlcikgYXMgY29uZmlnOgogICAgICAgICAgICAgc2VsZi5o
b3N0ID0gY29uZmlnWyJicm93c2VyX2hvc3QiXQogICAgICAgICAgICAgc2VsZi5odHRwX3BvcnQg
PSBjb25maWdbInBvcnRzIl1bImh0dHAiXVswXQogICAgICAgICAgICAgc2VsZi5odHRwc19wb3J0
ID0gY29uZmlnWyJwb3J0cyJdWyJodHRwcyJdWzBdCkBAIC0yMSwxMiArMjIsMTIgQEAgY2xhc3Mg
V1BUU2VydmVyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuYmFzZV91cmwgPSAnaHR0cDovLyVzOiVz
JyAlIChzZWxmLmhvc3QsIHNlbGYuaHR0cF9wb3J0KQogICAgICAgICBzZWxmLmh0dHBzX2Jhc2Vf
dXJsID0gJ2h0dHBzOi8vJXM6JXMnICUgKHNlbGYuaG9zdCwgc2VsZi5odHRwc19wb3J0KQogCi0g
ICAgZGVmIHN0YXJ0KHNlbGYpOgorICAgIGRlZiBzdGFydChzZWxmLCBzc2xfY29udGV4dCk6CiAg
ICAgICAgIHNlbGYuZGV2bnVsbCA9IG9wZW4ob3MuZGV2bnVsbCwgJ3cnKQogICAgICAgICB3cHRz
ZXJ2ZV9jbWQgPSBbb3MucGF0aC5qb2luKHNlbGYud3B0X3Jvb3QsICd3cHQnKSwgJ3NlcnZlJ10K
ICAgICAgICAgaWYgc3lzLmV4ZWN1dGFibGU6CiAgICAgICAgICAgICB3cHRzZXJ2ZV9jbWRbMDow
XSA9IFtzeXMuZXhlY3V0YWJsZV0KLSAgICAgICAgbG9nZ2luZy5pbmZvKCdFeGVjdXRpbmcgJXMn
ICUgJyAnLmpvaW4od3B0c2VydmVfY21kKSkKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygnRXhl
Y3V0aW5nICVzJyAlICcgJy5qb2luKHdwdHNlcnZlX2NtZCkpCiAgICAgICAgIHNlbGYucHJvYyA9
IHN1YnByb2Nlc3MuUG9wZW4oCiAgICAgICAgICAgICB3cHRzZXJ2ZV9jbWQsCiAgICAgICAgICAg
ICBzdGRlcnI9c2VsZi5kZXZudWxsLApAQCAtNDEsNiArNDIsNyBAQCBjbGFzcyBXUFRTZXJ2ZXIo
b2JqZWN0KToKICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgdHJ5OgogICAgICAg
ICAgICAgICAgIHVybGxpYi5yZXF1ZXN0LnVybG9wZW4oc2VsZi5iYXNlX3VybCwgdGltZW91dD0x
KQorICAgICAgICAgICAgICAgIHVybGxpYi5yZXF1ZXN0LnVybG9wZW4oc2VsZi5odHRwc19iYXNl
X3VybCwgdGltZW91dD0xLCBjb250ZXh0PXNzbF9jb250ZXh0KQogICAgICAgICAgICAgICAgIHJl
dHVybgogICAgICAgICAgICAgZXhjZXB0IHVybGxpYi5lcnJvci5VUkxFcnJvcjoKICAgICAgICAg
ICAgICAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVyLWFjdGlvbnMuanMgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVyLWFj
dGlvbnMuanMKaW5kZXggZjNlNjM4OGU4YWNkMTk5OGQ4OTc1MDE1MGUwNzc5ZGYzMjdhNTQxNy4u
NGRhZmEwYzAxOGIxMDE1NjNlOTk2NDNlYzBjODk2ZmIxNGVkOTg0MCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGRy
aXZlci1hY3Rpb25zLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItYWN0aW9ucy5qcwpAQCAtMjgxLDkgKzI4MSwx
MiBAQAogICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXIgc291cmNl
CiAgICAgICogQHJldHVybnMge0FjdGlvbnN9CiAgICAgICovCi0gICAgcG9pbnRlckRvd246IGZ1
bmN0aW9uKHtidXR0b249dGhpcy5CdXR0b25UeXBlLkxFRlQsIHNvdXJjZU5hbWU9bnVsbH09e30p
IHsKKyAgICBwb2ludGVyRG93bjogZnVuY3Rpb24oe2J1dHRvbj10aGlzLkJ1dHRvblR5cGUuTEVG
VCwgc291cmNlTmFtZT1udWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsIGhl
aWdodCwgcHJlc3N1cmUsIHRhbmdlbnRpYWxQcmVzc3VyZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRpbHRYLCB0aWx0WSwgdHdpc3QsIGFsdGl0dWRlQW5nbGUsIGF6aW11dGhBbmdsZX09
e30pIHsKICAgICAgIGxldCBzb3VyY2UgPSB0aGlzLmdldFNvdXJjZSgicG9pbnRlciIsIHNvdXJj
ZU5hbWUpOwotICAgICAgc291cmNlLnBvaW50ZXJEb3duKHRoaXMsIGJ1dHRvbik7CisgICAgICBz
b3VyY2UucG9pbnRlckRvd24odGhpcywgYnV0dG9uLCB3aWR0aCwgaGVpZ2h0LCBwcmVzc3VyZSwg
dGFuZ2VudGlhbFByZXNzdXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHRpbHRYLCB0aWx0
WSwgdHdpc3QsIGFsdGl0dWRlQW5nbGUsIGF6aW11dGhBbmdsZSk7CiAgICAgICByZXR1cm4gdGhp
czsKICAgICB9LAogCkBAIC0zMTQsOSArMzE3LDEzIEBACiAgICAgICogQHJldHVybnMge0FjdGlv
bnN9CiAgICAgICovCiAgICAgcG9pbnRlck1vdmU6IGZ1bmN0aW9uKHgsIHksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIHtvcmlnaW49InZpZXdwb3J0IiwgZHVyYXRpb24sIHNvdXJjZU5hbWU9
bnVsbH09e30pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAge29yaWdpbj0idmlld3BvcnQi
LCBkdXJhdGlvbiwgc291cmNlTmFtZT1udWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2lkdGgsIGhlaWdodCwgcHJlc3N1cmUsIHRhbmdlbnRpYWxQcmVzc3VyZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRpbHRYLCB0aWx0WSwgdHdpc3QsIGFsdGl0dWRlQW5nbGUsIGF6aW11
dGhBbmdsZX09e30pIHsKICAgICAgIGxldCBzb3VyY2UgPSB0aGlzLmdldFNvdXJjZSgicG9pbnRl
ciIsIHNvdXJjZU5hbWUpOwotICAgICAgc291cmNlLnBvaW50ZXJNb3ZlKHRoaXMsIHgsIHksIGR1
cmF0aW9uLCBvcmlnaW4pOworICAgICAgc291cmNlLnBvaW50ZXJNb3ZlKHRoaXMsIHgsIHksIGR1
cmF0aW9uLCBvcmlnaW4sIHdpZHRoLCBoZWlnaHQsIHByZXNzdXJlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgIHRhbmdlbnRpYWxQcmVzc3VyZSwgdGlsdFgsIHRpbHRZLCB0d2lzdCwgYWx0aXR1
ZGVBbmdsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBhemltdXRoQW5nbGUpOwogICAgICAg
cmV0dXJuIHRoaXM7CiAgICAgfSwKIApAQCAtNDI0LDYgKzQzMSwzOCBAQAogICAgIHRoaXMuYWN0
aW9ucyA9IG5ldyBNYXAoKTsKICAgfQogCisgIGZ1bmN0aW9uIHNldFBvaW50ZXJQcm9wZXJ0aWVz
KGFjdGlvbiwgd2lkdGgsIGhlaWdodCwgcHJlc3N1cmUsIHRhbmdlbnRpYWxQcmVzc3VyZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlsdFgsIHRpbHRZLCB0d2lzdCwgYWx0aXR1
ZGVBbmdsZSwgYXppbXV0aEFuZ2xlKSB7CisgICAgaWYgKHdpZHRoKSB7CisgICAgICBhY3Rpb24u
d2lkdGggPSB3aWR0aDsKKyAgICB9CisgICAgaWYgKGhlaWdodCkgeworICAgICAgYWN0aW9uLmhl
aWdodCA9IGhlaWdodDsKKyAgICB9CisgICAgaWYgKHByZXNzdXJlKSB7CisgICAgICBhY3Rpb24u
cHJlc3N1cmUgPSBwcmVzc3VyZTsKKyAgICB9CisgICAgaWYgKHRhbmdlbnRpYWxQcmVzc3VyZSkg
eworICAgICAgYWN0aW9uLnRhbmdlbnRpYWxQcmVzc3VyZSA9IHRhbmdlbnRpYWxQcmVzc3VyZTsK
KyAgICB9CisgICAgaWYgKHRpbHRYKSB7CisgICAgICBhY3Rpb24udGlsdFggPSB0aWx0WDsKKyAg
ICB9CisgICAgaWYgKHRpbHRZKSB7CisgICAgICBhY3Rpb24udGlsdFkgPSB0aWx0WTsKKyAgICB9
CisgICAgaWYgKHR3aXN0KSB7CisgICAgICBhY3Rpb24udHdpc3QgPSB0d2lzdDsKKyAgICB9Cisg
ICAgaWYgKGFsdGl0dWRlQW5nbGUpIHsKKyAgICAgIGFjdGlvbi5hbHRpdHVkZUFuZ2xlID0gYWx0
aXR1ZGVBbmdsZTsKKyAgICB9CisgICAgaWYgKGF6aW11dGhBbmdsZSkgeworICAgICAgYWN0aW9u
LmF6aW11dGhBbmdsZSA9IGF6aW11dGhBbmdsZTsKKyAgICB9CisgICAgcmV0dXJuIGFjdGlvbjsK
KyAgfQorCiAgIFBvaW50ZXJTb3VyY2UucHJvdG90eXBlID0gewogICAgIHNlcmlhbGl6ZTogZnVu
Y3Rpb24odGlja0NvdW50KSB7CiAgICAgICBpZiAoIXRoaXMuYWN0aW9ucy5zaXplKSB7CkBAIC00
NDEsMTIgKzQ4MCwxNiBAQAogICAgICAgcmV0dXJuIGRhdGE7CiAgICAgfSwKIAotICAgIHBvaW50
ZXJEb3duOiBmdW5jdGlvbihhY3Rpb25zLCBidXR0b24pIHsKKyAgICBwb2ludGVyRG93bjogZnVu
Y3Rpb24oYWN0aW9ucywgYnV0dG9uLCB3aWR0aCwgaGVpZ2h0LCBwcmVzc3VyZSwgdGFuZ2VudGlh
bFByZXNzdXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICB0aWx0WCwgdGlsdFksIHR3aXN0
LCBhbHRpdHVkZUFuZ2xlLCBhemltdXRoQW5nbGUpIHsKICAgICAgIGxldCB0aWNrID0gYWN0aW9u
cy50aWNrSWR4OwogICAgICAgaWYgKHRoaXMuYWN0aW9ucy5oYXModGljaykpIHsKICAgICAgICAg
dGljayA9IGFjdGlvbnMuYWRkVGljaygpLnRpY2tJZHg7CiAgICAgICB9Ci0gICAgICB0aGlzLmFj
dGlvbnMuc2V0KHRpY2ssIHt0eXBlOiAicG9pbnRlckRvd24iLCBidXR0b259KTsKKyAgICAgIGxl
dCBhY3Rpb25Qcm9wZXJ0aWVzID0gc2V0UG9pbnRlclByb3BlcnRpZXMoe3R5cGU6ICJwb2ludGVy
RG93biIsIGJ1dHRvbn0sIHdpZHRoLCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNzdXJlLCB0YW5nZW50aWFsUHJlc3N1cmUsIHRp
bHRYLCB0aWx0WSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdHdpc3QsIGFsdGl0dWRlQW5nbGUsIGF6aW11dGhBbmdsZSk7CisgICAgICB0aGlzLmFj
dGlvbnMuc2V0KHRpY2ssIGFjdGlvblByb3BlcnRpZXMpOwogICAgIH0sCiAKICAgICBwb2ludGVy
VXA6IGZ1bmN0aW9uKGFjdGlvbnMsIGJ1dHRvbikgewpAQCAtNDU3LDE1ICs1MDAsMjAgQEAKICAg
ICAgIHRoaXMuYWN0aW9ucy5zZXQodGljaywge3R5cGU6ICJwb2ludGVyVXAiLCBidXR0b259KTsK
ICAgICB9LAogCi0gICAgcG9pbnRlck1vdmU6IGZ1bmN0aW9uKGFjdGlvbnMsIHgsIHksIGR1cmF0
aW9uLCBvcmlnaW4pIHsKKyAgICBwb2ludGVyTW92ZTogZnVuY3Rpb24oYWN0aW9ucywgeCwgeSwg
ZHVyYXRpb24sIG9yaWdpbiwgd2lkdGgsIGhlaWdodCwgcHJlc3N1cmUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRhbmdlbnRpYWxQcmVzc3VyZSwgdGlsdFgsIHRpbHRZLCB0d2lzdCwgYWx0
aXR1ZGVBbmdsZSwgYXppbXV0aEFuZ2xlKSB7CiAgICAgICBsZXQgdGljayA9IGFjdGlvbnMudGlj
a0lkeDsKICAgICAgIGlmICh0aGlzLmFjdGlvbnMuaGFzKHRpY2spKSB7CiAgICAgICAgIHRpY2sg
PSBhY3Rpb25zLmFkZFRpY2soKS50aWNrSWR4OwogICAgICAgfQotICAgICAgdGhpcy5hY3Rpb25z
LnNldCh0aWNrLCB7dHlwZTogInBvaW50ZXJNb3ZlIiwgeCwgeSwgb3JpZ2lufSk7CisgICAgICBs
ZXQgbW92ZUFjdGlvbiA9IHt0eXBlOiAicG9pbnRlck1vdmUiLCB4LCB5LCBvcmlnaW59OwogICAg
ICAgaWYgKGR1cmF0aW9uKSB7Ci0gICAgICAgIHRoaXMuYWN0aW9ucy5nZXQodGljaykuZHVyYXRp
b24gPSBkdXJhdGlvbjsKKyAgICAgICAgbW92ZUFjdGlvbi5kdXJhdGlvbiA9IGR1cmF0aW9uOwog
ICAgICAgfQorICAgICAgbGV0IGFjdGlvblByb3BlcnRpZXMgPSBzZXRQb2ludGVyUHJvcGVydGll
cyhtb3ZlQWN0aW9uLCB3aWR0aCwgaGVpZ2h0LCBwcmVzc3VyZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFuZ2VudGlhbFByZXNzdXJlLCB0aWx0
WCwgdGlsdFksIHR3aXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhbHRpdHVkZUFuZ2xlLCBhemltdXRoQW5nbGUpOworICAgICAgdGhpcy5hY3Rp
b25zLnNldCh0aWNrLCBhY3Rpb25Qcm9wZXJ0aWVzKTsKICAgICB9LAogCiAgICAgYWRkUGF1c2U6
IGZ1bmN0aW9uKGFjdGlvbnMsIGR1cmF0aW9uKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dGRyaXZlci5qcwppbmRleCBjNTNiMjQxMzZjMDkxZjA1ZTRmZmJlMjg2ZDA2MGFiYTBmYTY2Y2Rm
Li5mMmRmMjZjZGExY2NkZjZkNmI1YzE3YWRmNjY0YjA3ZjJiNmNkN2VhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0
ZHJpdmVyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMKQEAgLTE0Niw2ICsxNDYsMjQgQEAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk6IGNlbnRlclBv
aW50WzFdfSk7CiAgICAgICAgIH0sCiAKKyAgICAgICAgLyoqCisgICAgICAgICAqIERlbGV0ZXMg
YWxsIGNvb2tpZXMuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgbWF0Y2hlcyB0aGUgYmVo
YXZpb3VyIG9mIHRoZSB7QGxpbmsKKyAgICAgICAgICogaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dl
YmRyaXZlci8jZGVsZXRlLWFsbC1jb29raWVzfFdlYkRyaXZlcgorICAgICAgICAgKiBEZWxldGUg
QWxsIENvb2tpZXMgY29tbWFuZH0uCisgICAgICAgICAqCisgICAgICAgICAqIEBwYXJhbSB7V2lu
ZG93UHJveHl9IGNvbnRleHQgLSBCcm93c2luZyBjb250ZXh0IGluIHdoaWNoCisgICAgICAgICAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBydW4gdGhlIGNhbGwsIG9yIG51bGwg
Zm9yIHRoZSBjdXJyZW50CisgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBicm93c2luZyBjb250ZXh0LgorICAgICAgICAgKgorICAgICAgICAgKiBAcmV0dXJucyB7UHJv
bWlzZX0gZnVsZmlsbGVkIGFmdGVyIGNvb2tpZXMgYXJlIGRlbGV0ZWQsIG9yIHJlamVjdGVkIGlu
CisgICAgICAgICAqICAgICAgICAgICAgICAgICAgICB0aGUgY2FzZXMgdGhlIFdlYkRyaXZlciBj
b21tYW5kIGVycm9ycworICAgICAgICAgKi8KKyAgICAgICAgZGVsZXRlX2FsbF9jb29raWVzOiBm
dW5jdGlvbihjb250ZXh0PW51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiB3aW5kb3cudGVzdF9k
cml2ZXJfaW50ZXJuYWwuZGVsZXRlX2FsbF9jb29raWVzKGNvbnRleHQpOworICAgICAgICB9LAor
CiAgICAgICAgIC8qKgogICAgICAgICAgKiBTZW5kIGtleXMgdG8gYW4gZWxlbWVudAogICAgICAg
ICAgKgpAQCAtMjU5LDcgKzI3Nyw3IEBACiAgICAgICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBm
dWxmaWxsZWQgYWZ0ZXIgdGhlIHBlcm1pc3Npb24gaXMgc2V0LCBvciByZWplY3RlZCBpZiBzZXR0
aW5nIHRoZQogICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgcGVybWlzc2lvbiBmYWlscwog
ICAgICAgICAgKi8KLSAgICAgICAgc2V0X3Blcm1pc3Npb246IGZ1bmN0aW9uKGRlc2NyaXB0b3Is
IHN0YXRlLCBvbmVfcmVhbG0sIGNvbnRleHQ9bnVsbCkgeworICAgICAgICBzZXRfcGVybWlzc2lv
bjogZnVuY3Rpb24oZGVzY3JpcHRvciwgc3RhdGUsIG9uZV9yZWFsbT1mYWxzZSwgY29udGV4dD1u
dWxsKSB7CiAgICAgICAgICAgICBsZXQgcGVybWlzc2lvbl9wYXJhbXMgPSB7CiAgICAgICAgICAg
ICAgIGRlc2NyaXB0b3IsCiAgICAgICAgICAgICAgIHN0YXRlLApAQCAtNDU4LDYgKzQ3NiwxMCBA
QAogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0sCiAKKyAgICAgICAgZGVsZXRlX2FsbF9jb29r
aWVzOiBmdW5jdGlvbihjb250ZXh0PW51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNl
LnJlamVjdChuZXcgRXJyb3IoInVuaW1wbGVtZW50ZWQiKSk7CisgICAgICAgIH0sCisKICAgICAg
ICAgc2VuZF9rZXlzOiBmdW5jdGlvbihlbGVtZW50LCBrZXlzKSB7CiAgICAgICAgICAgICBpZiAo
dGhpcy5pbl9hdXRvbWF0aW9uKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVq
ZWN0KG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJykpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcwppbmRleCBkNTBlMDk0MTE3ZGY1NmRiNDlkNzVmMTYyMGM0YWJhNTEz
MTlmYzNjLi5mODViMTlmZDliZDkwYzM0NzZkZWRjYmU1ODI1YjgyZmI0MGRlODJjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcwpAQCAtMSwyMSArMSwxMSBAQAogLypn
bG9iYWwgc2VsZiovCiAvKmpzaGludCBsYXRlZGVmOiBub2Z1bmMqLwotLyoKLURpc3RyaWJ1dGVk
IHVuZGVyIGJvdGggdGhlIFczQyBUZXN0IFN1aXRlIExpY2Vuc2UgWzFdIGFuZCB0aGUgVzNDCi0z
LWNsYXVzZSBCU0QgTGljZW5zZSBbMl0uIFRvIGNvbnRyaWJ1dGUgdG8gYSBXM0MgVGVzdCBTdWl0
ZSwgc2VlIHRoZQotcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCi0KLVsxXSBo
dHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDgvMDQtdGVzdHN1aXRlLWxpY2Vu
c2UKLVsyXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDgvMDMtYnNkLWxp
Y2Vuc2UKLVszXSBodHRwOi8vd3d3LnczLm9yZy8yMDA0LzEwLzI3LXRlc3RjYXNlcwotKi8KIAog
LyogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly93ZWItcGxhdGZvcm0tdGVzdHMub3JnL3dyaXRpbmct
dGVzdHMvdGVzdGhhcm5lc3MtYXBpLmh0bWwKICAqICguLi9kb2NzL193cml0aW5nLXRlc3RzL3Rl
c3RoYXJuZXNzLWFwaS5tZCkgKi8KIAogKGZ1bmN0aW9uIChnbG9iYWxfc2NvcGUpCiB7Ci0gICAg
dmFyIGRlYnVnID0gZmFsc2U7CiAgICAgLy8gZGVmYXVsdCB0aW1lb3V0IGlzIDEwIHNlY29uZHMs
IHRlc3QgY2FuIG92ZXJyaWRlIGlmIG5lZWRlZAogICAgIHZhciBzZXR0aW5ncyA9IHsKICAgICAg
ICAgb3V0cHV0OnRydWUsCkBAIC0yNCw3ICsxNCw4IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRp
b24gZm9ybXMgWzNdLgogICAgICAgICAgICAgImxvbmciOjYwMDAwCiAgICAgICAgIH0sCiAgICAg
ICAgIHRlc3RfdGltZW91dDpudWxsLAotICAgICAgICBtZXNzYWdlX2V2ZW50czogWyJzdGFydCIs
ICJ0ZXN0X3N0YXRlIiwgInJlc3VsdCIsICJjb21wbGV0aW9uIl0KKyAgICAgICAgbWVzc2FnZV9l
dmVudHM6IFsic3RhcnQiLCAidGVzdF9zdGF0ZSIsICJyZXN1bHQiLCAiY29tcGxldGlvbiJdLAor
ICAgICAgICBkZWJ1ZzogZmFsc2UsCiAgICAgfTsKIAogICAgIHZhciB4aHRtbF9ucyA9ICJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIjsKQEAgLTg3LDE0ICs3OCwxNSBAQCBwb2xpY2llcyBh
bmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3Q6IHRlc3Quc3RydWN0dXJlZF9jbG9uZSgpfSk7CiAgICAgICAg
ICAgICAgICAgICAgICB9XSwKICAgICAgICAgICAgIGNvbXBsZXRpb246IFthZGRfY29tcGxldGlv
bl9jYWxsYmFjaywgcmVtb3ZlX2NvbXBsZXRpb25fY2FsbGJhY2ssCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuY3Rpb24gKHRlc3RzLCBoYXJuZXNzX3N0YXR1cykgeworICAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uICh0ZXN0cywgaGFybmVzc19zdGF0dXMsIGFzc2VydHMpIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNsb25lZF90ZXN0cyA9IG1hcCh0ZXN0
cywgZnVuY3Rpb24odGVzdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHRlc3Quc3RydWN0dXJlZF9jbG9uZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc19vYmouX2Rpc3BhdGNoKCJj
b21wbGV0aW9uX2NhbGxiYWNrIiwgW3Rlc3RzLCBoYXJuZXNzX3N0YXR1c10sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dHlwZTogImNvbXBsZXRlIiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0czog
Y2xvbmVkX3Rlc3RzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXR1czogaGFybmVzc19zdGF0dXMuc3RydWN0dXJlZF9jbG9uZSgpfSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBoYXJu
ZXNzX3N0YXR1cy5zdHJ1Y3R1cmVkX2Nsb25lKCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0czogYXNzZXJ0cy5tYXAoYXNzZXJ0ID0+IGFz
c2VydC5zdHJ1Y3R1cmVkX2Nsb25lKCkpfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgfV0K
ICAgICAgICAgfQogCkBAIC0xMzEsMTEgKzEyMyw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRp
b24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc19zZWxlY3Rvcikg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHdbc2VsZWN0b3JdLmFwcGx5KHVuZGVmaW5lZCwgY2FsbGJhY2tfYXJncyk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoZGVidWcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRocm93IGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSBjYXRjaCAoZSkge30KICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBpZiAoc3VwcG9ydHNfcG9zdF9tZXNzYWdl
KHcpICYmIHcgIT09IHNlbGYpIHsKQEAgLTE5Miw4ICsxODAsOCBAQCBwb2xpY2llcyBhbmQgY29u
dHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgIHRoaXNfb2JqLm91dHB1dF9oYW5kbGVy
LnNob3dfc3RhdHVzKCk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIGFkZF9jb21wbGV0aW9uX2Nh
bGxiYWNrKGZ1bmN0aW9uICh0ZXN0cywgaGFybmVzc19zdGF0dXMpIHsKLSAgICAgICAgICAgIHRo
aXNfb2JqLm91dHB1dF9oYW5kbGVyLnNob3dfcmVzdWx0cyh0ZXN0cywgaGFybmVzc19zdGF0dXMp
OworICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbiAodGVzdHMsIGhhcm5l
c3Nfc3RhdHVzLCBhc3NlcnRzX3J1bikgeworICAgICAgICAgICAgdGhpc19vYmoub3V0cHV0X2hh
bmRsZXIuc2hvd19yZXN1bHRzKHRlc3RzLCBoYXJuZXNzX3N0YXR1cywgYXNzZXJ0c19ydW4pOwog
ICAgICAgICB9KTsKICAgICAgICAgdGhpcy5zZXR1cF9tZXNzYWdlcyhzZXR0aW5ncy5tZXNzYWdl
X2V2ZW50cyk7CiAgICAgfTsKQEAgLTMxNCwxNCArMzAyLDE1IEBAIHBvbGljaWVzIGFuZCBjb250
cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAg
ICAgICB9KTsKICAgICAgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soCi0gICAgICAgICAgICAg
ICAgZnVuY3Rpb24odGVzdHMsIGhhcm5lc3Nfc3RhdHVzKSB7CisgICAgICAgICAgICAgICAgZnVu
Y3Rpb24odGVzdHMsIGhhcm5lc3Nfc3RhdHVzLCBhc3NlcnRzKSB7CiAgICAgICAgICAgICAgICAg
ICAgIHRoaXNfb2JqLl9kaXNwYXRjaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAi
Y29tcGxldGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHM6IG1hcCh0ZXN0cywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbih0ZXN0KSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZXN0LnN0cnVjdHVyZWRfY2xvbmUoKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1
czogaGFybmVzc19zdGF0dXMuc3RydWN0dXJlZF9jbG9uZSgpCisgICAgICAgICAgICAgICAgICAg
ICAgICBzdGF0dXM6IGhhcm5lc3Nfc3RhdHVzLnN0cnVjdHVyZWRfY2xvbmUoKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydHM6IGFzc2VydHMubWFwKGFzc2VydCA9PiBhc3NlcnQuc3Ry
dWN0dXJlZF9jbG9uZSgpKSwKICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAg
ICAgfSk7CiAgICAgfTsKQEAgLTUwMCwxMSArNDg5LDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1
dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICByZXR1cm4gbmV3IERlZGljYXRlZFdvcmtlclRl
c3RFbnZpcm9ubWVudCgpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCEoJ2xvY2F0aW9uJyBp
biBnbG9iYWxfc2NvcGUpKSB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IFNoZWxsVGVzdEVudmly
b25tZW50KCk7Ci0gICAgICAgIH0KLQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9y
dGVkIHRlc3QgZW52aXJvbm1lbnQiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBTaGVsbFRlc3RFbnZp
cm9ubWVudCgpOwogICAgIH0KIAogICAgIHZhciB0ZXN0X2Vudmlyb25tZW50ID0gY3JlYXRlX3Rl
c3RfZW52aXJvbm1lbnQoKTsKQEAgLTExODcsMTkgKzExNzIsNTMgQEAgcG9saWNpZXMgYW5kIGNv
bnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICogQXNzZXJ0aW9ucwogICAgICAqLwogCisgICAg
ZnVuY3Rpb24gZXhwb3NlX2Fzc2VydChmLCBuYW1lKSB7CisgICAgICAgIGZ1bmN0aW9uIGFzc2Vy
dF93cmFwcGVyKC4uLmFyZ3MpIHsKKyAgICAgICAgICAgIGxldCBzdGF0dXMgPSBUZXN0LnN0YXR1
c2VzLlRJTUVPVVQ7CisgICAgICAgICAgICBsZXQgc3RhY2sgPSBudWxsOworICAgICAgICAgICAg
dHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAoc2V0dGluZ3MuZGVidWcpIHsKKyAgICAgICAgICAg
ICAgICAgICAgY29uc29sZS5kZWJ1ZygiQVNTRVJUIiwgbmFtZSwgdGVzdHMuY3VycmVudF90ZXN0
ICYmIHRlc3RzLmN1cnJlbnRfdGVzdC5uYW1lLCBhcmdzKTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgaWYgKHRlc3RzLm91dHB1dCkgeworICAgICAgICAgICAgICAgICAgICB0
ZXN0cy5zZXRfYXNzZXJ0KG5hbWUsIGFyZ3MpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBjb25zdCBydiA9IGYuYXBwbHkodW5kZWZpbmVkLCBhcmdzKTsKKyAgICAgICAgICAg
ICAgICBzdGF0dXMgPSBUZXN0LnN0YXR1c2VzLlBBU1M7CisgICAgICAgICAgICAgICAgcmV0dXJu
IHJ2OworICAgICAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICAgICAgaWYgKGUgaW5z
dGFuY2VvZiBBc3NlcnRpb25FcnJvcikgeworICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBU
ZXN0LnN0YXR1c2VzLkZBSUw7CisgICAgICAgICAgICAgICAgICAgIHN0YWNrID0gZS5zdGFjazsK
KyAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0g
VGVzdC5zdGF0dXNlcy5FUlJPUjsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IHRocm93IGU7CisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgICAgIGlmICh0
ZXN0cy5vdXRwdXQgJiYgIXN0YWNrKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YWNrID0gZ2V0
X3N0YWNrKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0ZXN0cy5v
dXRwdXQpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdHMuc2V0X2Fzc2VydF9zdGF0dXMoc3Rh
dHVzLCBzdGFjayk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgICAgIGV4cG9zZShhc3NlcnRfd3JhcHBlciwgbmFtZSk7CisgICAgfQorCiAgICAgZnVu
Y3Rpb24gYXNzZXJ0X3RydWUoYWN0dWFsLCBkZXNjcmlwdGlvbikKICAgICB7CiAgICAgICAgIGFz
c2VydChhY3R1YWwgPT09IHRydWUsICJhc3NlcnRfdHJ1ZSIsIGRlc2NyaXB0aW9uLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgdHJ1ZSBnb3QgJHthY3R1YWx9Iiwg
e2FjdHVhbDphY3R1YWx9KTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF90cnVlLCAiYXNzZXJ0
X3RydWUiKTsKKyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF90cnVlLCAiYXNzZXJ0X3RydWUiKTsK
IAogICAgIGZ1bmN0aW9uIGFzc2VydF9mYWxzZShhY3R1YWwsIGRlc2NyaXB0aW9uKQogICAgIHsK
ICAgICAgICAgYXNzZXJ0KGFjdHVhbCA9PT0gZmFsc2UsICJhc3NlcnRfZmFsc2UiLCBkZXNjcmlw
dGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCBmYWxzZSBn
b3QgJHthY3R1YWx9Iiwge2FjdHVhbDphY3R1YWx9KTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2Vy
dF9mYWxzZSwgImFzc2VydF9mYWxzZSIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X2ZhbHNl
LCAiYXNzZXJ0X2ZhbHNlIik7CiAKICAgICBmdW5jdGlvbiBzYW1lX3ZhbHVlKHgsIHkpIHsKICAg
ICAgICAgaWYgKHkgIT09IHkpIHsKQEAgLTEyMjksNyArMTI0OCw3IEBAIHBvbGljaWVzIGFuZCBj
b250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImV4cGVjdGVkICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9IiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtleHBlY3RlZDpleHBl
Y3RlZCwgYWN0dWFsOmFjdHVhbH0pOwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2VxdWFscywg
ImFzc2VydF9lcXVhbHMiKTsKKyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF9lcXVhbHMsICJhc3Nl
cnRfZXF1YWxzIik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfbm90X2VxdWFscyhhY3R1YWwsIGV4
cGVjdGVkLCBkZXNjcmlwdGlvbikKICAgICB7CkBAIC0xMjQxLDcgKzEyNjAsNyBAQCBwb2xpY2ll
cyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZ290IGRpc2FsbG93ZWQgdmFsdWUgJHthY3R1YWx9IiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YWN0dWFsOmFjdHVh
bH0pOwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X25vdF9lcXVhbHMsICJhc3NlcnRfbm90X2Vx
dWFscyIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X25vdF9lcXVhbHMsICJhc3NlcnRfbm90
X2VxdWFscyIpOwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X2luX2FycmF5KGFjdHVhbCwgZXhwZWN0
ZWQsIGRlc2NyaXB0aW9uKQogICAgIHsKQEAgLTEyNDksNyArMTI2OCw3IEBAIHBvbGljaWVzIGFu
ZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAidmFsdWUgJHthY3R1YWx9IG5vdCBpbiBhcnJheSAke2V4cGVjdGVk
fSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthY3R1
YWw6YWN0dWFsLCBleHBlY3RlZDpleHBlY3RlZH0pOwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0
X2luX2FycmF5LCAiYXNzZXJ0X2luX2FycmF5Iik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRf
aW5fYXJyYXksICJhc3NlcnRfaW5fYXJyYXkiKTsKIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gd2Fz
IGRlcHJlY2F0ZWQgaW4gSnVseSBvZiAyMDE1LgogICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMjAzMwpAQCAtMTI4Nyw3ICsxMzA2LDcg
QEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICB9CiAgICAg
ICAgICBjaGVja19lcXVhbChhY3R1YWwsIGV4cGVjdGVkLCBbXSk7CiAgICAgfQotICAgIGV4cG9z
ZShhc3NlcnRfb2JqZWN0X2VxdWFscywgImFzc2VydF9vYmplY3RfZXF1YWxzIik7CisgICAgZXhw
b3NlX2Fzc2VydChhc3NlcnRfb2JqZWN0X2VxdWFscywgImFzc2VydF9vYmplY3RfZXF1YWxzIik7
CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfYXJyYXlfZXF1YWxzKGFjdHVhbCwgZXhwZWN0ZWQsIGRl
c2NyaXB0aW9uKQogICAgIHsKQEAgLTEzNDQsNyArMTM2Myw3IEBAIHBvbGljaWVzIGFuZCBjb250
cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgICBhcnJheUV4cGVjdGVkOnNo
b3J0ZW5fYXJyYXkoZXhwZWN0ZWQsIGkpLCBhcnJheUFjdHVhbDpzaG9ydGVuX2FycmF5KGFjdHVh
bCwgaSl9KTsKICAgICAgICAgfQogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2FycmF5X2VxdWFs
cywgImFzc2VydF9hcnJheV9lcXVhbHMiKTsKKyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF9hcnJh
eV9lcXVhbHMsICJhc3NlcnRfYXJyYXlfZXF1YWxzIik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRf
YXJyYXlfYXBwcm94X2VxdWFscyhhY3R1YWwsIGV4cGVjdGVkLCBlcHNpbG9uLCBkZXNjcmlwdGlv
bikKICAgICB7CkBAIC0xMzcyLDcgKzEzOTEsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9u
IGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICAgICB7aTppLCBleHBlY3RlZDpleHBlY3RlZFtp
XSwgYWN0dWFsOmFjdHVhbFtpXSwgZXBzaWxvbjplcHNpbG9ufSk7CiAgICAgICAgIH0KICAgICB9
Ci0gICAgZXhwb3NlKGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzLCAiYXNzZXJ0X2FycmF5X2Fw
cHJveF9lcXVhbHMiKTsKKyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF9hcnJheV9hcHByb3hfZXF1
YWxzLCAiYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMiKTsKIAogICAgIGZ1bmN0aW9uIGFzc2Vy
dF9hcHByb3hfZXF1YWxzKGFjdHVhbCwgZXhwZWN0ZWQsIGVwc2lsb24sIGRlc2NyaXB0aW9uKQog
ICAgIHsKQEAgLTEzOTUsNyArMTQxNCw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9y
bXMgWzNdLgogICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhhY3R1YWwsIGV4cGVjdGVkKTsKICAg
ICAgICAgfQogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2FwcHJveF9lcXVhbHMsICJhc3NlcnRf
YXBwcm94X2VxdWFscyIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X2FwcHJveF9lcXVhbHMs
ICJhc3NlcnRfYXBwcm94X2VxdWFscyIpOwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X2xlc3NfdGhh
bihhY3R1YWwsIGV4cGVjdGVkLCBkZXNjcmlwdGlvbikKICAgICB7CkBAIC0xNDEyLDcgKzE0MzEs
NyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAg
ICJleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gJHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVh
bH0iLAogICAgICAgICAgICAgICAge2V4cGVjdGVkOmV4cGVjdGVkLCBhY3R1YWw6YWN0dWFsfSk7
CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfbGVzc190aGFuLCAiYXNzZXJ0X2xlc3NfdGhhbiIp
OworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X2xlc3NfdGhhbiwgImFzc2VydF9sZXNzX3RoYW4i
KTsKIAogICAgIGZ1bmN0aW9uIGFzc2VydF9ncmVhdGVyX3RoYW4oYWN0dWFsLCBleHBlY3RlZCwg
ZGVzY3JpcHRpb24pCiAgICAgewpAQCAtMTQyOSw3ICsxNDQ4LDcgQEAgcG9saWNpZXMgYW5kIGNv
bnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgYSBudW1iZXIg
Z3JlYXRlciB0aGFuICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9IiwKICAgICAgICAgICAg
ICAgIHtleHBlY3RlZDpleHBlY3RlZCwgYWN0dWFsOmFjdHVhbH0pOwogICAgIH0KLSAgICBleHBv
c2UoYXNzZXJ0X2dyZWF0ZXJfdGhhbiwgImFzc2VydF9ncmVhdGVyX3RoYW4iKTsKKyAgICBleHBv
c2VfYXNzZXJ0KGFzc2VydF9ncmVhdGVyX3RoYW4sICJhc3NlcnRfZ3JlYXRlcl90aGFuIik7CiAK
ICAgICBmdW5jdGlvbiBhc3NlcnRfYmV0d2Vlbl9leGNsdXNpdmUoYWN0dWFsLCBsb3dlciwgdXBw
ZXIsIGRlc2NyaXB0aW9uKQogICAgIHsKQEAgLTE0NDcsNyArMTQ2Niw3IEBAIHBvbGljaWVzIGFu
ZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgImFuZCBsZXNzIHRoYW4g
JHt1cHBlcn0gYnV0IGdvdCAke2FjdHVhbH0iLAogICAgICAgICAgICAgICAge2xvd2VyOmxvd2Vy
LCB1cHBlcjp1cHBlciwgYWN0dWFsOmFjdHVhbH0pOwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0
X2JldHdlZW5fZXhjbHVzaXZlLCAiYXNzZXJ0X2JldHdlZW5fZXhjbHVzaXZlIik7CisgICAgZXhw
b3NlX2Fzc2VydChhc3NlcnRfYmV0d2Vlbl9leGNsdXNpdmUsICJhc3NlcnRfYmV0d2Vlbl9leGNs
dXNpdmUiKTsKIAogICAgIGZ1bmN0aW9uIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoYWN0dWFsLCBl
eHBlY3RlZCwgZGVzY3JpcHRpb24pCiAgICAgewpAQCAtMTQ2NCw3ICsxNDgzLDcgQEAgcG9saWNp
ZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAgICAiZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1
YWx9IiwKICAgICAgICAgICAgICAgIHtleHBlY3RlZDpleHBlY3RlZCwgYWN0dWFsOmFjdHVhbH0p
OwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbCwgImFzc2VydF9sZXNz
X3RoYW5fZXF1YWwiKTsKKyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF9sZXNzX3RoYW5fZXF1YWws
ICJhc3NlcnRfbGVzc190aGFuX2VxdWFsIik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfZ3JlYXRl
cl90aGFuX2VxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKQogICAgIHsKQEAgLTE0
ODEsNyArMTUwMCw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAg
ICAgICAgICAgICAgImV4cGVjdGVkIGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAk
e2V4cGVjdGVkfSBidXQgZ290ICR7YWN0dWFsfSIsCiAgICAgICAgICAgICAgICB7ZXhwZWN0ZWQ6
ZXhwZWN0ZWQsIGFjdHVhbDphY3R1YWx9KTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF9ncmVh
dGVyX3RoYW5fZXF1YWwsICJhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsIik7CisgICAgZXhwb3Nl
X2Fzc2VydChhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsLCAiYXNzZXJ0X2dyZWF0ZXJfdGhhbl9l
cXVhbCIpOwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X2JldHdlZW5faW5jbHVzaXZlKGFjdHVhbCwg
bG93ZXIsIHVwcGVyLCBkZXNjcmlwdGlvbikKICAgICB7CkBAIC0xNDk5LDcgKzE1MTgsNyBAQCBw
b2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICJhbmQg
bGVzcyB0aGFuIG9yIGVxdWFsIHRvICR7dXBwZXJ9IGJ1dCBnb3QgJHthY3R1YWx9IiwKICAgICAg
ICAgICAgICAgIHtsb3dlcjpsb3dlciwgdXBwZXI6dXBwZXIsIGFjdHVhbDphY3R1YWx9KTsKICAg
ICB9Ci0gICAgZXhwb3NlKGFzc2VydF9iZXR3ZWVuX2luY2x1c2l2ZSwgImFzc2VydF9iZXR3ZWVu
X2luY2x1c2l2ZSIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X2JldHdlZW5faW5jbHVzaXZl
LCAiYXNzZXJ0X2JldHdlZW5faW5jbHVzaXZlIik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfcmVn
ZXhwX21hdGNoKGFjdHVhbCwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKSB7CiAgICAgICAgIC8qCkBA
IC0xNTEwLDcgKzE1MjksNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4K
ICAgICAgICAgICAgICAgICJleHBlY3RlZCAke2V4cGVjdGVkfSBidXQgZ290ICR7YWN0dWFsfSIs
CiAgICAgICAgICAgICAgICB7ZXhwZWN0ZWQ6ZXhwZWN0ZWQsIGFjdHVhbDphY3R1YWx9KTsKICAg
ICB9Ci0gICAgZXhwb3NlKGFzc2VydF9yZWdleHBfbWF0Y2gsICJhc3NlcnRfcmVnZXhwX21hdGNo
Iik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfcmVnZXhwX21hdGNoLCAiYXNzZXJ0X3JlZ2V4
cF9tYXRjaCIpOwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X2NsYXNzX3N0cmluZyhvYmplY3QsIGNs
YXNzX3N0cmluZywgZGVzY3JpcHRpb24pIHsKICAgICAgICAgdmFyIGFjdHVhbCA9IHt9LnRvU3Ry
aW5nLmNhbGwob2JqZWN0KTsKQEAgLTE1MTksMjcgKzE1MzgsMjcgQEAgcG9saWNpZXMgYW5kIGNv
bnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiZXhwZWN0ZWQgJHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH0iLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2V4cGVjdGVkOmV4cGVj
dGVkLCBhY3R1YWw6YWN0dWFsfSk7CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfY2xhc3Nfc3Ry
aW5nLCAiYXNzZXJ0X2NsYXNzX3N0cmluZyIpOwotCisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRf
Y2xhc3Nfc3RyaW5nLCAiYXNzZXJ0X2NsYXNzX3N0cmluZyIpOwogCiAgICAgZnVuY3Rpb24gYXNz
ZXJ0X293bl9wcm9wZXJ0eShvYmplY3QsIHByb3BlcnR5X25hbWUsIGRlc2NyaXB0aW9uKSB7CiAg
ICAgICAgIGFzc2VydChvYmplY3QuaGFzT3duUHJvcGVydHkocHJvcGVydHlfbmFtZSksCiAgICAg
ICAgICAgICAgICAiYXNzZXJ0X293bl9wcm9wZXJ0eSIsIGRlc2NyaXB0aW9uLAogICAgICAgICAg
ICAgICAgImV4cGVjdGVkIHByb3BlcnR5ICR7cH0gbWlzc2luZyIsIHtwOnByb3BlcnR5X25hbWV9
KTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF9vd25fcHJvcGVydHksICJhc3NlcnRfb3duX3By
b3BlcnR5Iik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfb3duX3Byb3BlcnR5LCAiYXNzZXJ0
X293bl9wcm9wZXJ0eSIpOwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X25vdF9vd25fcHJvcGVydHko
b2JqZWN0LCBwcm9wZXJ0eV9uYW1lLCBkZXNjcmlwdGlvbikgewogICAgICAgICBhc3NlcnQoIW9i
amVjdC5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eV9uYW1lKSwKICAgICAgICAgICAgICAgICJhc3Nl
cnRfbm90X293bl9wcm9wZXJ0eSIsIGRlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgInVuZXhw
ZWN0ZWQgcHJvcGVydHkgJHtwfSBpcyBmb3VuZCBvbiBvYmplY3QiLCB7cDpwcm9wZXJ0eV9uYW1l
fSk7CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfbm90X293bl9wcm9wZXJ0eSwgImFzc2VydF9u
b3Rfb3duX3Byb3BlcnR5Iik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfbm90X293bl9wcm9w
ZXJ0eSwgImFzc2VydF9ub3Rfb3duX3Byb3BlcnR5Iik7CiAKICAgICBmdW5jdGlvbiBfYXNzZXJ0
X2luaGVyaXRzKG5hbWUpIHsKICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChvYmplY3QsIHByb3Bl
cnR5X25hbWUsIGRlc2NyaXB0aW9uKQogICAgICAgICB7Ci0gICAgICAgICAgICBhc3NlcnQodHlw
ZW9mIG9iamVjdCA9PT0gIm9iamVjdCIgfHwgdHlwZW9mIG9iamVjdCA9PT0gImZ1bmN0aW9uIiB8
fAorICAgICAgICAgICAgYXNzZXJ0KCh0eXBlb2Ygb2JqZWN0ID09PSAib2JqZWN0IiAmJiBvYmpl
Y3QgIT09IG51bGwpIHx8CisgICAgICAgICAgICAgICAgICAgdHlwZW9mIG9iamVjdCA9PT0gImZ1
bmN0aW9uIiB8fAogICAgICAgICAgICAgICAgICAgIC8vIE9yIGhhcyBbW0lzSFRNTEREQV1dIHNs
b3QKICAgICAgICAgICAgICAgICAgICBTdHJpbmcob2JqZWN0KSA9PT0gIltvYmplY3QgSFRNTEFs
bENvbGxlY3Rpb25dIiwKICAgICAgICAgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKQEAg
LTE1NjAsOCArMTU3OSw4IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgog
ICAgICAgICAgICAgICAgICAgIHtwOnByb3BlcnR5X25hbWV9KTsKICAgICAgICAgfTsKICAgICB9
Ci0gICAgZXhwb3NlKF9hc3NlcnRfaW5oZXJpdHMoImFzc2VydF9pbmhlcml0cyIpLCAiYXNzZXJ0
X2luaGVyaXRzIik7Ci0gICAgZXhwb3NlKF9hc3NlcnRfaW5oZXJpdHMoImFzc2VydF9pZGxfYXR0
cmlidXRlIiksICJhc3NlcnRfaWRsX2F0dHJpYnV0ZSIpOworICAgIGV4cG9zZV9hc3NlcnQoX2Fz
c2VydF9pbmhlcml0cygiYXNzZXJ0X2luaGVyaXRzIiksICJhc3NlcnRfaW5oZXJpdHMiKTsKKyAg
ICBleHBvc2VfYXNzZXJ0KF9hc3NlcnRfaW5oZXJpdHMoImFzc2VydF9pZGxfYXR0cmlidXRlIiks
ICJhc3NlcnRfaWRsX2F0dHJpYnV0ZSIpOwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X3JlYWRvbmx5
KG9iamVjdCwgcHJvcGVydHlfbmFtZSwgZGVzY3JpcHRpb24pCiAgICAgewpAQCAtMTU3OCw3ICsx
NTk3LDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAg
ICAgb2JqZWN0W3Byb3BlcnR5X25hbWVdID0gaW5pdGlhbF92YWx1ZTsKICAgICAgICAgIH0KICAg
ICB9Ci0gICAgZXhwb3NlKGFzc2VydF9yZWFkb25seSwgImFzc2VydF9yZWFkb25seSIpOworICAg
IGV4cG9zZV9hc3NlcnQoYXNzZXJ0X3JlYWRvbmx5LCAiYXNzZXJ0X3JlYWRvbmx5Iik7CiAKICAg
ICAvKioKICAgICAgKiBBc3NlcnQgYSBKUyBFcnJvciB3aXRoIHRoZSBleHBlY3RlZCBjb25zdHJ1
Y3RvciBpcyB0aHJvd24uCkBAIC0xNTkyLDcgKzE2MTEsNyBAQCBwb2xpY2llcyBhbmQgY29udHJp
YnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgYXNzZXJ0X3Rocm93c19qc19pbXBsKGNvbnN0cnVj
dG9yLCBmdW5jLCBkZXNjcmlwdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJh
c3NlcnRfdGhyb3dzX2pzIik7CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfdGhyb3dzX2pzLCAi
YXNzZXJ0X3Rocm93c19qcyIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X3Rocm93c19qcywg
ImFzc2VydF90aHJvd3NfanMiKTsKIAogICAgIC8qKgogICAgICAqIExpa2UgYXNzZXJ0X3Rocm93
c19qcyBidXQgYWxsb3dzIHNwZWNpZnlpbmcgdGhlIGFzc2VydGlvbiB0eXBlCkBAIC0xNjkwLDcg
KzE3MDksNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAg
fQogICAgICAgICBhc3NlcnRfdGhyb3dzX2RvbV9pbXBsKHR5cGUsIGZ1bmMsIGRlc2NyaXB0aW9u
LCAiYXNzZXJ0X3Rocm93c19kb20iLCBjb25zdHJ1Y3RvcikKICAgICB9Ci0gICAgZXhwb3NlKGFz
c2VydF90aHJvd3NfZG9tLCAiYXNzZXJ0X3Rocm93c19kb20iKTsKKyAgICBleHBvc2VfYXNzZXJ0
KGFzc2VydF90aHJvd3NfZG9tLCAiYXNzZXJ0X3Rocm93c19kb20iKTsKIAogICAgIC8qKgogICAg
ICAqIFNpbWlsYXIgdG8gYXNzZXJ0X3Rocm93c19kb20gYnV0IGFsbG93cyBzcGVjaWZ5aW5nIHRo
ZSBhc3NlcnRpb24gdHlwZQpAQCAtMTg1Myw3ICsxODcyLDcgQEAgcG9saWNpZXMgYW5kIGNvbnRy
aWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgIGFzc2VydF90aHJvd3NfZXhhY3RseV9pbXBsKGV4
Y2VwdGlvbiwgZnVuYywgZGVzY3JpcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJhc3NlcnRfdGhyb3dzX2V4YWN0bHkiKTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2Vy
dF90aHJvd3NfZXhhY3RseSwgImFzc2VydF90aHJvd3NfZXhhY3RseSIpOworICAgIGV4cG9zZV9h
c3NlcnQoYXNzZXJ0X3Rocm93c19leGFjdGx5LCAiYXNzZXJ0X3Rocm93c19leGFjdGx5Iik7CiAK
ICAgICAvKioKICAgICAgKiBMaWtlIGFzc2VydF90aHJvd3NfZXhhY3RseSBidXQgYWxsb3dzIHNw
ZWNpZnlpbmcgdGhlIGFzc2VydGlvbiB0eXBlCkBAIC0xODgxLDcgKzE5MDAsNyBAQCBwb2xpY2ll
cyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgIGFzc2VydChmYWxzZSwgImFz
c2VydF91bnJlYWNoZWQiLCBkZXNjcmlwdGlvbiwKICAgICAgICAgICAgICAgICAiUmVhY2hlZCB1
bnJlYWNoYWJsZSBjb2RlIik7CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfdW5yZWFjaGVkLCAi
YXNzZXJ0X3VucmVhY2hlZCIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X3VucmVhY2hlZCwg
ImFzc2VydF91bnJlYWNoZWQiKTsKIAogICAgIGZ1bmN0aW9uIGFzc2VydF9hbnkoYXNzZXJ0X2Z1
bmMsIGFjdHVhbCwgZXhwZWN0ZWRfYXJyYXkpCiAgICAgewpAQCAtMTkwMiw2ICsxOTIxLDkgQEAg
cG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICB0aHJvdyBu
ZXcgQXNzZXJ0aW9uRXJyb3IoZXJyb3JzLmpvaW4oIlxuXG4iKSk7CiAgICAgICAgIH0KICAgICB9
CisgICAgLy8gRklYTUU6IGFzc2VydF9hbnkgY2Fubm90IHVzZSBleHBvc2VfYXNzZXJ0LCBiZWNh
dXNlIGFzc2VydF93cmFwcGVyIGRvZXMKKyAgICAvLyBub3Qgc3VwcG9ydCBuZXN0ZWQgYXNzZXJ0
IGNhbGxzIChlLmcuIHRvIGFzc2VydF9mdW5jKS4gV2UgbmVlZCB0bworICAgIC8vIHN1cHBvcnQg
YnlwYXNzaW5nIGFzc2VydF93cmFwcGVyIGZvciB0aGUgaW5uZXIgYXNzZXJ0cyBoZXJlLgogICAg
IGV4cG9zZShhc3NlcnRfYW55LCAiYXNzZXJ0X2FueSIpOwogCiAgICAgLyoqCkBAIC0xOTE5LDcg
KzE5NDEsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICBmdW5j
dGlvbiBhc3NlcnRfaW1wbGVtZW50cyhjb25kaXRpb24sIGRlc2NyaXB0aW9uKSB7CiAgICAgICAg
IGFzc2VydCghIWNvbmRpdGlvbiwgImFzc2VydF9pbXBsZW1lbnRzIiwgZGVzY3JpcHRpb24pOwog
ICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2ltcGxlbWVudHMsICJhc3NlcnRfaW1wbGVtZW50cyIp
CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfaW1wbGVtZW50cywgImFzc2VydF9pbXBsZW1lbnRz
IikKIAogICAgIC8qKgogICAgICAqIEFzc2VydCB0aGF0IGFuIG9wdGlvbmFsIGZlYXR1cmUgaXMg
aW1wbGVtZW50ZWQsIGJhc2VkIG9uIGEgJ3RydXRoeScgY29uZGl0aW9uLgpAQCAtMTkzOSw3ICsx
OTYxLDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAg
ICB0aHJvdyBuZXcgT3B0aW9uYWxGZWF0dXJlVW5zdXBwb3J0ZWRFcnJvcihkZXNjcmlwdGlvbik7
CiAgICAgICAgIH0KICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF9pbXBsZW1lbnRzX29wdGlvbmFs
LCAiYXNzZXJ0X2ltcGxlbWVudHNfb3B0aW9uYWwiKQorICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0
X2ltcGxlbWVudHNfb3B0aW9uYWwsICJhc3NlcnRfaW1wbGVtZW50c19vcHRpb25hbCIpCiAKICAg
ICBmdW5jdGlvbiBUZXN0KG5hbWUsIHByb3BlcnRpZXMpCiAgICAgewpAQCAtMTk5OSw2ICsyMDIx
LDE4IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICBDT01Q
TEVURTo0CiAgICAgfTsKIAorICAgIFRlc3QucHJvdG90eXBlLnN0YXR1c19mb3JtYXRzID0gewor
ICAgICAgICAwOiAiUGFzcyIsCisgICAgICAgIDE6ICJGYWlsIiwKKyAgICAgICAgMjogIlRpbWVv
dXQiLAorICAgICAgICAzOiAiTm90IFJ1biIsCisgICAgICAgIDQ6ICJPcHRpb25hbCBGZWF0dXJl
IFVuc3VwcG9ydGVkIiwKKyAgICB9CisKKyAgICBUZXN0LnByb3RvdHlwZS5mb3JtYXRfc3RhdHVz
ID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB0aGlzLnN0YXR1c19mb3JtYXRzW3RoaXMu
c3RhdHVzXTsKKyAgICB9CisKICAgICBUZXN0LnByb3RvdHlwZS5zdHJ1Y3R1cmVkX2Nsb25lID0g
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9zdHJ1Y3R1cmVkX2Nsb25lKSB7
CkBAIC0yMDIzLDExICsyMDU3LDE2IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMg
WzNdLgogICAgICAgICBpZiAodGhpcy5waGFzZSA+IHRoaXMucGhhc2VzLlNUQVJURUQpIHsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorCisgICAgICAgIGlmIChzZXR0aW5ncy5kZWJ1
ZyAmJiB0aGlzLnBoYXNlICE9PSB0aGlzLnBoYXNlcy5TVEFSVEVEKSB7CisgICAgICAgICAgICBj
b25zb2xlLmxvZygiVEVTVCBTVEFSVCIsIHRoaXMubmFtZSk7CisgICAgICAgIH0KICAgICAgICAg
dGhpcy5waGFzZSA9IHRoaXMucGhhc2VzLlNUQVJURUQ7CiAgICAgICAgIC8vSWYgd2UgZG9uJ3Qg
Z2V0IGEgcmVzdWx0IGJlZm9yZSB0aGUgaGFybmVzcyB0aW1lcyBvdXQgdGhhdCB3aWxsIGJlIGEg
dGVzdCB0aW1lb3V0CiAgICAgICAgIHRoaXMuc2V0X3N0YXR1cyh0aGlzLlRJTUVPVVQsICJUZXN0
IHRpbWVkIG91dCIpOwogCiAgICAgICAgIHRlc3RzLnN0YXJ0ZWQgPSB0cnVlOworICAgICAgICB0
ZXN0cy5jdXJyZW50X3Rlc3QgPSB0aGlzOwogICAgICAgICB0ZXN0cy5ub3RpZnlfdGVzdF9zdGF0
ZSh0aGlzKTsKIAogICAgICAgICBpZiAodGhpcy50aW1lb3V0X2lkID09PSBudWxsKSB7CkBAIC0y
MDQwLDYgKzIwNzksMTAgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAg
ICAgICAgICAgICB0aGlzX29iaiA9IHRoaXM7CiAgICAgICAgIH0KIAorICAgICAgICBpZiAoc2V0
dGluZ3MuZGVidWcpIHsKKyAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoIlRFU1QgU1RFUCIsIHRo
aXMubmFtZSk7CisgICAgICAgIH0KKwogICAgICAgICB0cnkgewogICAgICAgICAgICAgcmV0dXJu
IGZ1bmMuYXBwbHkodGhpc19vYmosIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50
cywgMikpOwogICAgICAgICB9IGNhdGNoIChlKSB7CkBAIC0yMDUzLDYgKzIwOTYsOCBAQCBwb2xp
Y2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgIHRoaXMuc2V0X3N0
YXR1cyhzdGF0dXMsIG1lc3NhZ2UsIHN0YWNrKTsKICAgICAgICAgICAgIHRoaXMucGhhc2UgPSB0
aGlzLnBoYXNlcy5IQVNfUkVTVUxUOwogICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAg
IH0gZmluYWxseSB7CisgICAgICAgICAgICB0aGlzLmN1cnJlbnRfdGVzdCA9IG51bGw7CiAgICAg
ICAgIH0KICAgICB9OwogCkBAIC0yMjcwLDYgKzIzMTUsMTIgQEAgcG9saWNpZXMgYW5kIGNvbnRy
aWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0
X2lkKTsKICAgICAgICAgfQogCisgICAgICAgIGlmIChzZXR0aW5ncy5kZWJ1ZykgeworICAgICAg
ICAgICAgY29uc29sZS5sb2coIlRFU1QgRE9ORSIsCisgICAgICAgICAgICAgICAgICAgICAgICB0
aGlzLnN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSwpCisgICAgICAg
IH0KKwogICAgICAgICB0aGlzLmNsZWFudXAoKTsKICAgICB9OwogCkBAIC0yNDY5LDYgKzI1MjAs
MTAgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAg
ICAgfSk7CiAgICAgfQogCisgICAgUmVtb3RlVGVzdC5wcm90b3R5cGUuZm9ybWF0X3N0YXR1cyA9
IGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gVGVzdC5wcm90b3R5cGUuc3RhdHVzX2Zvcm1h
dHNbdGhpcy5zdGF0dXNdOworICAgIH0KKwogICAgIC8qCiAgICAgICogQSBSZW1vdGVDb250ZXh0
IGxpc3RlbnMgZm9yIHRlc3QgZXZlbnRzIGZyb20gYSByZW1vdGUgdGVzdCBjb250ZXh0LCBzdWNo
CiAgICAgICogYXMgYW5vdGhlciB3aW5kb3cgb3IgYSB3b3JrZXIuIFRoZXNlIGV2ZW50cyBhcmUg
dGhlbiB1c2VkIHRvIGNvbnN0cnVjdApAQCAtMjU3Nyw2ICsyNjMyLDE2IEBAIHBvbGljaWVzIGFu
ZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgdGVzdHMuc2V0X3N0YXR1cyhk
YXRhLnN0YXR1cy5zdGF0dXMsIGRhdGEuc3RhdHVzLm1lc3NhZ2UsIGRhdGEuc3RhdHVzLnNhY2sp
OwogICAgICAgICB9CiAKKyAgICAgICAgZm9yIChsZXQgYXNzZXJ0IG9mIGRhdGEuYXNzZXJ0cykg
eworICAgICAgICAgICAgdmFyIHJlY29yZCA9IG5ldyBBc3NlcnRSZWNvcmQoKTsKKyAgICAgICAg
ICAgIHJlY29yZC5hc3NlcnRfbmFtZSA9IGFzc2VydC5hc3NlcnRfbmFtZTsKKyAgICAgICAgICAg
IHJlY29yZC5hcmdzID0gYXNzZXJ0LmFyZ3M7CisgICAgICAgICAgICByZWNvcmQudGVzdCA9IGFz
c2VydC50ZXN0ICE9IG51bGwgPyB0aGlzLnRlc3RzW2Fzc2VydC50ZXN0LmluZGV4XSA6IG51bGw7
CisgICAgICAgICAgICByZWNvcmQuc3RhdHVzID0gYXNzZXJ0LnN0YXR1czsKKyAgICAgICAgICAg
IHJlY29yZC5zdGFjayA9IGFzc2VydC5zdGFjazsKKyAgICAgICAgICAgIHRlc3RzLmFzc2VydHNf
cnVuLnB1c2gocmVjb3JkKTsKKyAgICAgICAgfQorCiAgICAgICAgIHRoaXMubWVzc2FnZV90YXJn
ZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRoaXMubWVzc2FnZV9oYW5kbGVyKTsK
ICAgICAgICAgdGhpcy5ydW5uaW5nID0gZmFsc2U7CiAKQEAgLTI2MjYsNiArMjY5MSwxNCBAQCBw
b2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KIAogICAgIFRlc3RzU3RhdHVzLnBy
b3RvdHlwZSA9IG1lcmdlKHt9LCBUZXN0c1N0YXR1cy5zdGF0dXNlcyk7CiAKKyAgICBUZXN0c1N0
YXR1cy5wcm90b3R5cGUuZm9ybWF0cyA9IHsKKyAgICAgICAgMDogIk9LIiwKKyAgICAgICAgMTog
IkVycm9yIiwKKyAgICAgICAgMjogIlRpbWVvdXQiLAorICAgICAgICAzOiAiT3B0aW9uYWwgRmVh
dHVyZSBVbnN1cHBvcnRlZCIKKyAgICB9CisKKwogICAgIFRlc3RzU3RhdHVzLnByb3RvdHlwZS5z
dHJ1Y3R1cmVkX2Nsb25lID0gZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9z
dHJ1Y3R1cmVkX2Nsb25lKSB7CkBAIC0yNjQwLDYgKzI3MTMsMjcgQEAgcG9saWNpZXMgYW5kIGNv
bnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgIHJldHVybiB0aGlzLl9zdHJ1Y3R1cmVkX2Ns
b25lOwogICAgIH07CiAKKyAgICBUZXN0c1N0YXR1cy5wcm90b3R5cGUuZm9ybWF0X3N0YXR1cyA9
IGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRzW3RoaXMuc3RhdHVzXTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBBc3NlcnRSZWNvcmQodGVzdCwgYXNzZXJ0X25hbWUsIGFy
Z3MgPSBbXSkgeworICAgICAgICB0aGlzLmFzc2VydF9uYW1lID0gYXNzZXJ0X25hbWU7CisgICAg
ICAgIHRoaXMudGVzdCA9IHRlc3Q7CisgICAgICAgIC8vIEF2b2lkIGtlZXBpbmcgY29tcGxleCBv
YmplY3RzIGFsaXZlCisgICAgICAgIHRoaXMuYXJncyA9IGFyZ3MubWFwKHggPT4gZm9ybWF0X3Zh
bHVlKHgpLnJlcGxhY2UoL1xuL2csICIgIikpOworICAgICAgICB0aGlzLnN0YXR1cyA9IG51bGw7
CisgICAgfQorCisgICAgQXNzZXJ0UmVjb3JkLnByb3RvdHlwZS5zdHJ1Y3R1cmVkX2Nsb25lID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBhc3NlcnRfbmFtZTog
dGhpcy5hc3NlcnRfbmFtZSwKKyAgICAgICAgICAgIHRlc3Q6IHRoaXMudGVzdCA/IHRoaXMudGVz
dC5zdHJ1Y3R1cmVkX2Nsb25lKCkgOiBudWxsLAorICAgICAgICAgICAgYXJnczogdGhpcy5hcmdz
LAorICAgICAgICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cywKKyAgICAgICAgfQorICAgIH0KKwog
ICAgIGZ1bmN0aW9uIFRlc3RzKCkKICAgICB7CiAgICAgICAgIHRoaXMudGVzdHMgPSBbXTsKQEAg
LTI2NzksNiArMjc3MywxOCBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4K
ICAgICAgICAgdGhpcy5oaWRlX3Rlc3Rfc3RhdGUgPSBmYWxzZTsKICAgICAgICAgdGhpcy5wZW5k
aW5nX3JlbW90ZXMgPSBbXTsKIAorICAgICAgICB0aGlzLmN1cnJlbnRfdGVzdCA9IG51bGw7Cisg
ICAgICAgIHRoaXMuYXNzZXJ0c19ydW4gPSBbXTsKKworICAgICAgICAvLyBUcmFjayB3aGV0aGVy
IG91dHB1dCBpcyBlbmFibGVkLCBhbmQgdGh1cyB3aGV0aGVyIG9yIG5vdCB3ZSBzaG91bGQKKyAg
ICAgICAgLy8gdHJhY2sgYXNzZXJ0cy4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gT24gd29ya2Vy
cyB3ZSBkb24ndCBnZXQgcHJvcGVydGllcyBzZXQgZnJvbSB0ZXN0aGFybmVzc3JlcG9ydC5qcywg
c28KKyAgICAgICAgLy8gd2UgZG9uJ3Qga25vdyB3aGV0aGVyIG9yIG5vdCB0byB0cmFjayBhc3Nl
cnRzLiBUbyBhdm9pZCB0aGUKKyAgICAgICAgLy8gcmVzdWx0aW5nIHBlcmZvcm1hbmNlIGhpdCwg
d2UgYXNzdW1lIHdlIGFyZSBub3QgbWVhbnQgdG8uIFRoaXMgbWVhbnMKKyAgICAgICAgLy8gdGhh
dCBhc3NlcnQgdHJhY2tpbmcgZG9lcyBub3QgZnVuY3Rpb24gb24gd29ya2Vycy4KKyAgICAgICAg
dGhpcy5vdXRwdXQgPSBzZXR0aW5ncy5vdXRwdXQgJiYgJ2RvY3VtZW50JyBpbiBnbG9iYWxfc2Nv
cGU7CisKICAgICAgICAgdGhpcy5zdGF0dXMgPSBuZXcgVGVzdHNTdGF0dXMoKTsKIAogICAgICAg
ICB2YXIgdGhpc19vYmogPSB0aGlzOwpAQCAtMjcyNiw2ICsyODMyLDEwIEBAIHBvbGljaWVzIGFu
ZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgfSBlbHNlIGlmIChwID09ICJoaWRlX3Rlc3Rfc3RhdGUiKSB7CiAgICAgICAgICAg
ICAgICAgICAgIHRoaXMuaGlkZV90ZXN0X3N0YXRlID0gdmFsdWU7CisgICAgICAgICAgICAgICAg
fSBlbHNlIGlmIChwID09ICJvdXRwdXQiKSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMub3V0
cHV0ID0gdmFsdWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwID09PSAiZGVidWciKSB7
CisgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzLmRlYnVnID0gdmFsdWU7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0yNzUwLDcgKzI4NjAsNyBAQCBw
b2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgdGhpcy53YWl0X2Zv
cl9maW5pc2ggPSB0cnVlOwogICAgICAgICB0aGlzLmZpbGVfaXNfdGVzdCA9IHRydWU7CiAgICAg
ICAgIC8vIENyZWF0ZSB0aGUgdGVzdCwgd2hpY2ggd2lsbCBhZGQgaXQgdG8gdGhlIGxpc3Qgb2Yg
dGVzdHMKLSAgICAgICAgYXN5bmNfdGVzdCgpOworICAgICAgICB0ZXN0cy5jdXJyZW50X3Rlc3Qg
PSBhc3luY190ZXN0KCk7CiAgICAgfTsKIAogICAgIFRlc3RzLnByb3RvdHlwZS5zZXRfc3RhdHVz
ID0gZnVuY3Rpb24oc3RhdHVzLCBtZXNzYWdlLCBzdGFjaykKQEAgLTI5MTQsNiArMzAyNCwxNiBA
QCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICAg
IGFsbF9jb21wbGV0ZSk7CiAgICAgfTsKIAorICAgIFRlc3RzLnByb3RvdHlwZS5zZXRfYXNzZXJ0
ID0gZnVuY3Rpb24oYXNzZXJ0X25hbWUsIGFyZ3MpIHsKKyAgICAgICAgdGhpcy5hc3NlcnRzX3J1
bi5wdXNoKG5ldyBBc3NlcnRSZWNvcmQodGhpcy5jdXJyZW50X3Rlc3QsIGFzc2VydF9uYW1lLCBh
cmdzKSkKKyAgICB9CisKKyAgICBUZXN0cy5wcm90b3R5cGUuc2V0X2Fzc2VydF9zdGF0dXMgPSBm
dW5jdGlvbihzdGF0dXMsIHN0YWNrKSB7CisgICAgICAgIGxldCBhc3NlcnRfcmVjb3JkID0gdGhp
cy5hc3NlcnRzX3J1blt0aGlzLmFzc2VydHNfcnVuLmxlbmd0aCAtIDFdOworICAgICAgICBhc3Nl
cnRfcmVjb3JkLnN0YXR1cyA9IHN0YXR1czsKKyAgICAgICAgYXNzZXJ0X3JlY29yZC5zdGFjayA9
IHN0YWNrOworICAgIH0KKwogICAgIC8qKgogICAgICAqIFVwZGF0ZSB0aGUgaGFybmVzcyBzdGF0
dXMgdG8gcmVmbGVjdCBhbiB1bnJlY292ZXJhYmxlIGhhcm5lc3MgZXJyb3IgdGhhdAogICAgICAq
IHNob3VsZCBjYW5jZWwgYWxsIGZ1cnRoZXIgdGVzdGluZy4gVXBkYXRlIGFsbCBwcmV2aW91c2x5
LWRlZmluZWQgdGVzdHMKQEAgLTI5NTYsMjIgKzMwNzYsMTYgQEAgcG9saWNpZXMgYW5kIGNvbnRy
aWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgfQogCiAgICAgZnVuY3Rpb24gc2FuaXRpemVfdW5wYWly
ZWRfc3Vycm9nYXRlcyhzdHIpIHsKLSAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oW1x1ZDgw
MC1cdWRiZmZdKSg/IVtcdWRjMDAtXHVkZmZmXSkvZywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uKF8sIHVucGFpcmVkKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2RlX3VuaXRfc3RyKHVucGFp
cmVkKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCi0gICAgICAgICAgICAgICAgICAv
LyBUaGlzIHJlcGxhY2VtZW50IGlzIGludGVudGlvbmFsbHkgaW1wbGVtZW50ZWQgd2l0aG91dCBh
bgotICAgICAgICAgICAgICAgICAgLy8gRVMyMDE4IG5lZ2F0aXZlIGxvb2tiZWhpbmQgYXNzZXJ0
aW9uIHRvIHN1cHBvcnQgcnVudGltZXMKLSAgICAgICAgICAgICAgICAgIC8vIHdoaWNoIGRvIG5v
dCB5ZXQgaW1wbGVtZW50IHRoYXQgbGFuZ3VhZ2UgZmVhdHVyZS4KLSAgICAgICAgICAgICAgICAg
IC5yZXBsYWNlKC8oXnxbXlx1ZDgwMC1cdWRiZmZdKShbXHVkYzAwLVx1ZGZmZl0pL2csCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbihfLCBwcmV2aW91cywgdW5wYWlyZWQpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvW1x1ZGMwMC1cdWRmZmZdLy50ZXN0
KHByZXZpb3VzKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3Vz
ID0gY29kZV91bml0X3N0cihwcmV2aW91cyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91cyArIGNv
ZGVfdW5pdF9zdHIodW5wYWlyZWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgKKyAgICAgICAgICAgIC8oW1x1ZDgwMC1cdWRiZmZd
KykoPyFbXHVkYzAwLVx1ZGZmZl0pfChefFteXHVkODAwLVx1ZGJmZl0pKFtcdWRjMDAtXHVkZmZm
XSspL2csCisgICAgICAgICAgICBmdW5jdGlvbihfLCBsb3csIHByZWZpeCwgaGlnaCkgeworICAg
ICAgICAgICAgICAgIHZhciBvdXRwdXQgPSBwcmVmaXggfHwgIiI7ICAvLyBwcmVmaXggbWF5IGJl
IHVuZGVmaW5lZAorICAgICAgICAgICAgICAgIHZhciBzdHJpbmcgPSBsb3cgfHwgaGlnaDsgIC8v
IG9ubHkgb25lIG9mIHRoZXNlIGFsdGVybmF0ZXMgY2FuIG1hdGNoCisgICAgICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAg
ICAgICAgb3V0cHV0ICs9IGNvZGVfdW5pdF9zdHIoc3RyaW5nW2ldKTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dDsKKyAgICAgICAgICAgIH0pOwogICAg
IH0KIAogICAgIGZ1bmN0aW9uIHNhbml0aXplX2FsbF91bnBhaXJlZF9zdXJyb2dhdGVzKHRlc3Rz
KSB7CkBAIC0zMDE3LDcgKzMxMzEsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1z
IFszXS4KICAgICAgICAgZm9yRWFjaCAodGhpcy5hbGxfZG9uZV9jYWxsYmFja3MsCiAgICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICBjYWxsYmFjayh0aGlzX29iai50ZXN0cywgdGhpc19vYmouc3RhdHVzKTsK
KyAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHRoaXNfb2JqLnRlc3RzLCB0aGlzX29iai5z
dGF0dXMsIHRoaXNfb2JqLmFzc2VydHNfcnVuKTsKICAgICAgICAgICAgICAgICAgfSk7CiAgICAg
fTsKIApAQCAtMzI0Myw3ICszMzU3LDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3Jt
cyBbM10uCiAgICAgICAgIH0KICAgICB9OwogCi0gICAgT3V0cHV0LnByb3RvdHlwZS5zaG93X3Jl
c3VsdHMgPSBmdW5jdGlvbiAodGVzdHMsIGhhcm5lc3Nfc3RhdHVzKSB7CisgICAgT3V0cHV0LnBy
b3RvdHlwZS5zaG93X3Jlc3VsdHMgPSBmdW5jdGlvbiAodGVzdHMsIGhhcm5lc3Nfc3RhdHVzLCBh
c3NlcnRzX3J1bikgewogICAgICAgICBpZiAodGhpcy5waGFzZSA+PSB0aGlzLkNPTVBMRVRFKSB7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTMyNzIsMjMgKzMzODYsMTAgQEAg
cG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICBoZWFkc1sw
XS5hcHBlbmRDaGlsZChzdHlsZXNoZWV0KTsKICAgICAgICAgfQogCi0gICAgICAgIHZhciBzdGF0
dXNfdGV4dF9oYXJuZXNzID0ge307Ci0gICAgICAgIHN0YXR1c190ZXh0X2hhcm5lc3NbaGFybmVz
c19zdGF0dXMuT0tdID0gIk9LIjsKLSAgICAgICAgc3RhdHVzX3RleHRfaGFybmVzc1toYXJuZXNz
X3N0YXR1cy5FUlJPUl0gPSAiRXJyb3IiOwotICAgICAgICBzdGF0dXNfdGV4dF9oYXJuZXNzW2hh
cm5lc3Nfc3RhdHVzLlRJTUVPVVRdID0gIlRpbWVvdXQiOwotICAgICAgICBzdGF0dXNfdGV4dF9o
YXJuZXNzW2hhcm5lc3Nfc3RhdHVzLlBSRUNPTkRJVElPTl9GQUlMRURdID0gIk9wdGlvbmFsIEZl
YXR1cmUgVW5zdXBwb3J0ZWQiOwotCi0gICAgICAgIHZhciBzdGF0dXNfdGV4dCA9IHt9OwotICAg
ICAgICBzdGF0dXNfdGV4dFtUZXN0LnByb3RvdHlwZS5QQVNTXSA9ICJQYXNzIjsKLSAgICAgICAg
c3RhdHVzX3RleHRbVGVzdC5wcm90b3R5cGUuRkFJTF0gPSAiRmFpbCI7Ci0gICAgICAgIHN0YXR1
c190ZXh0W1Rlc3QucHJvdG90eXBlLlRJTUVPVVRdID0gIlRpbWVvdXQiOwotICAgICAgICBzdGF0
dXNfdGV4dFtUZXN0LnByb3RvdHlwZS5OT1RSVU5dID0gIk5vdCBSdW4iOwotICAgICAgICBzdGF0
dXNfdGV4dFtUZXN0LnByb3RvdHlwZS5QUkVDT05ESVRJT05fRkFJTEVEXSA9ICJPcHRpb25hbCBG
ZWF0dXJlIFVuc3VwcG9ydGVkIjsKLQogICAgICAgICB2YXIgc3RhdHVzX251bWJlciA9IHt9Owog
ICAgICAgICBmb3JFYWNoKHRlc3RzLAogICAgICAgICAgICAgICAgIGZ1bmN0aW9uKHRlc3QpIHsK
LSAgICAgICAgICAgICAgICAgICAgdmFyIHN0YXR1cyA9IHN0YXR1c190ZXh0W3Rlc3Quc3RhdHVz
XTsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHN0YXR1cyA9IHRlc3QuZm9ybWF0X3N0YXR1cygp
OwogICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzX251bWJlci5oYXNPd25Qcm9wZXJ0eShz
dGF0dXMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNfbnVtYmVyW3N0YXR1c10g
Kz0gMTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTMzMDUsOCArMzQwNiw3IEBA
IHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbImgyIiwge30sICJTdW1tYXJ5Il0sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ewotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3RhdHVzID0gc3Rh
dHVzX3RleHRfaGFybmVzc1toYXJuZXNzX3N0YXR1cy5zdGF0dXNdOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIHN0YXR1cyA9IGhhcm5lc3Nfc3RhdHVzLmZvcm1hdF9z
dGF0dXMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBydiA9IFtb
InNlY3Rpb24iLCB7fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWyJwIiwge30sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiSGFybmVzcyBzdGF0dXM6ICIsCkBAIC0zMzI4LDEzICszNDI4LDE0IEBAIHBvbGlj
aWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZhciBydiA9IFtbImRpdiIsIHt9XV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2YXIgaSA9IDA7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGls
ZSAoc3RhdHVzX3RleHQuaGFzT3duUHJvcGVydHkoaSkpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzX251bWJlci5oYXNPd25Qcm9wZXJ0eShzdGF0
dXNfdGV4dFtpXSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdmFyIHN0YXR1cyA9IHN0YXR1c190ZXh0W2ldOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBydlswXS5wdXNoKFsiZGl2IiwgeyJjbGFzcyI6c3RhdHVzX2Ns
YXNzKHN0YXR1cyl9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUg
KFRlc3QucHJvdG90eXBlLnN0YXR1c19mb3JtYXRzLmhhc093blByb3BlcnR5KGkpKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1c19udW1iZXIuaGFz
T3duUHJvcGVydHkoVGVzdC5wcm90b3R5cGUuc3RhdHVzX2Zvcm1hdHNbaV0pKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdGF0dXMgPSBUZXN0LnBy
b3RvdHlwZS5zdGF0dXNfZm9ybWF0c1tpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcnZbMF0ucHVzaChbImRpdiIsIHt9LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImxhYmVsIiwge30sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImlu
cHV0Iiwge3R5cGU6ImNoZWNrYm94IiwgY2hlY2tlZDoiY2hlY2tlZCJ9XSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c19udW1i
ZXJbc3RhdHVzXSArICIgIiArIHN0YXR1c11dKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c19udW1iZXJbc3RhdHVzXSArICIg
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFsic3BhbiIsIHsiY2xhc3MiOnN0YXR1c19jbGFzcyhzdGF0dXMpfSwgc3RhdHVzXV1dKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaSsrOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQpAQCAtMzM1NCwxMyArMzQ1NSwxMyBAQCBwb2xpY2llcyBhbmQgY29udHJp
YnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdF9jbGFzcyA9IGVsZW1lbnQucGFyZW50Tm9k
ZS5nZXRBdHRyaWJ1dGUoImNsYXNzIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2YXIgcmVzdWx0X2NsYXNzID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJzcGFuW2NsYXNzXSIp
LmdldEF0dHJpYnV0ZSgiY2xhc3MiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZhciBzdHlsZV9lbGVtZW50ID0gb3V0cHV0X2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInN0eWxl
I2hpZGUtIiArIHJlc3VsdF9jbGFzcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2YXIgaW5wdXRfZWxlbWVudCA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3R5bGVfZWxlbWVudCAmJiAhaW5w
dXRfZWxlbWVudC5jaGVja2VkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3R5bGVfZWxlbWVudCA9IG91dHB1dF9kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoeGh0bWxf
bnMsICJzdHlsZSIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxl
X2VsZW1lbnQuaWQgPSAiaGlkZS0iICsgcmVzdWx0X2NsYXNzOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0eWxlX2VsZW1lbnQudGV4dENvbnRlbnQgPSAidGFibGUjcmVz
dWx0cyA+IHRib2R5ID4gdHIuIityZXN1bHRfY2xhc3MrIntkaXNwbGF5Om5vbmV9IjsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZV9lbGVtZW50LnRleHRDb250ZW50
ID0gInRhYmxlI3Jlc3VsdHMgPiB0Ym9keSA+IHRyLm92ZXJhbGwtIityZXN1bHRfY2xhc3MrIntk
aXNwbGF5Om5vbmV9IjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRw
dXRfZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzdHlsZV9lbGVtZW50KTsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3R5bGVfZWxlbWVudCAmJiBpbnB1dF9l
bGVtZW50LmNoZWNrZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dHlsZV9lbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGVfZWxlbWVudCk7CkBAIC0z
NDAxLDYgKzM1MDIsNTIgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAg
ICAgICAgICAgICByZXR1cm4gJyc7CiAgICAgICAgIH0KIAorICAgICAgICB2YXIgYXNzZXJ0c19y
dW5fYnlfdGVzdCA9IG5ldyBNYXAoKTsKKyAgICAgICAgYXNzZXJ0c19ydW4uZm9yRWFjaChhc3Nl
cnQgPT4geworICAgICAgICAgICAgaWYgKCFhc3NlcnRzX3J1bl9ieV90ZXN0Lmhhcyhhc3NlcnQu
dGVzdCkpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRzX3J1bl9ieV90ZXN0LnNldChhc3NlcnQu
dGVzdCwgW10pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXNzZXJ0c19ydW5fYnlfdGVz
dC5nZXQoYXNzZXJ0LnRlc3QpLnB1c2goYXNzZXJ0KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAg
ZnVuY3Rpb24gZ2V0X2Fzc2VydHNfb3V0cHV0KHRlc3QpIHsKKyAgICAgICAgICAgIHZhciBhc3Nl
cnRzID0gYXNzZXJ0c19ydW5fYnlfdGVzdC5nZXQodGVzdCk7CisgICAgICAgICAgICBpZiAoIWFz
c2VydHMpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gIk5vIGFzc2VydHMgcmFuIjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIHJ2ID0gIjx0YWJsZT4iOworICAgICAgICAgICAgcnYgKz0g
YXNzZXJ0cy5tYXAoYXNzZXJ0ID0+IHsKKyAgICAgICAgICAgICAgICB2YXIgb3V0cHV0X2ZuID0g
IjxzdHJvbmc+IiArIGVzY2FwZV9odG1sKGFzc2VydC5hc3NlcnRfbmFtZSkgKyAiPC9zdHJvbmc+
KCI7CisgICAgICAgICAgICAgICAgdmFyIHByZWZpeF9sZW4gPSBvdXRwdXRfZm4ubGVuZ3RoOwor
ICAgICAgICAgICAgICAgIHZhciBvdXRwdXRfYXJncyA9IGFzc2VydC5hcmdzOworICAgICAgICAg
ICAgICAgIHZhciBvdXRwdXRfbGVuID0gb3V0cHV0X2FyZ3MucmVkdWNlKChwcmV2LCBjdXJyZW50
KSA9PiBwcmV2K2N1cnJlbnQsIHByZWZpeF9sZW4pOworICAgICAgICAgICAgICAgIGlmIChvdXRw
dXRfbGVuW291dHB1dF9sZW4ubGVuZ3RoIC0gMV0gPiA1MCkgeworICAgICAgICAgICAgICAgICAg
ICBvdXRwdXRfYXJncyA9IG91dHB1dF9hcmdzLm1hcCgoeCwgaSkgPT4KKyAgICAgICAgICAgICAg
ICAgICAgKGkgPiAwID8gIiAgIi5yZXBlYXQocHJlZml4X2xlbikgOiAiIiApKyB4ICsgKGkgPCBv
dXRwdXRfYXJncy5sZW5ndGggLSAxID8gIixcbiIgOiAiIikpOworICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dF9hcmdzID0gb3V0cHV0X2FyZ3MubWFw
KCh4LCBpKSA9PiB4ICsgKGkgPCBvdXRwdXRfYXJncy5sZW5ndGggLSAxID8gIiwgIiA6ICIiKSk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG91dHB1dF9mbiArPSBlc2NhcGVf
aHRtbChvdXRwdXRfYXJncy5qb2luKCIiKSk7CisgICAgICAgICAgICAgICAgb3V0cHV0X2ZuICs9
ICcpJzsKKyAgICAgICAgICAgICAgICB2YXIgb3V0cHV0X2xvY2F0aW9uOworICAgICAgICAgICAg
ICAgIGlmIChhc3NlcnQuc3RhY2spIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2xvY2F0
aW9uID0gYXNzZXJ0LnN0YWNrLnNwbGl0KCJcbiIsIDEpWzBdLnJlcGxhY2UoL0A/XHcrOlwvXC9b
XiAiXC9dKyg/OjpcZCspPy9nLCAiICIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICByZXR1cm4gIjx0ciBjbGFzcz0nb3ZlcmFsbC0iICsKKyAgICAgICAgICAgICAgICAgICAg
c3RhdHVzX2NsYXNzKFRlc3QucHJvdG90eXBlLnN0YXR1c19mb3JtYXRzW2Fzc2VydC5zdGF0dXNd
KSArICInPiIgKworICAgICAgICAgICAgICAgICAgICAiPHRkIGNsYXNzPSciICsKKyAgICAgICAg
ICAgICAgICAgICAgc3RhdHVzX2NsYXNzKFRlc3QucHJvdG90eXBlLnN0YXR1c19mb3JtYXRzW2Fz
c2VydC5zdGF0dXNdKSArICInPiIgKworICAgICAgICAgICAgICAgICAgICBUZXN0LnByb3RvdHlw
ZS5zdGF0dXNfZm9ybWF0c1thc3NlcnQuc3RhdHVzXSArICI8L3RkPiIgKworICAgICAgICAgICAg
ICAgICAgICAiPHRkPjxwcmU+IiArCisgICAgICAgICAgICAgICAgICAgIG91dHB1dF9mbiArCisg
ICAgICAgICAgICAgICAgICAgIChvdXRwdXRfbG9jYXRpb24gPyAiXG4iICsgZXNjYXBlX2h0bWwo
b3V0cHV0X2xvY2F0aW9uKSA6ICIiKSArCisgICAgICAgICAgICAgICAgICAgICI8L3ByZT48L3Rk
PjwvdHI+IjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICkuam9pbigiXG4iKTsKKyAgICAg
ICAgICAgIHJ2ICs9ICI8L3RhYmxlPiI7CisgICAgICAgICAgICByZXR1cm4gcnY7CisgICAgICAg
IH0KKwogICAgICAgICBsb2cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHho
dG1sX25zLCAic2VjdGlvbiIpKTsKICAgICAgICAgdmFyIGFzc2VydGlvbnMgPSBoYXNfYXNzZXJ0
aW9ucygpOwogICAgICAgICB2YXIgaHRtbCA9ICI8aDI+RGV0YWlsczwvaDI+PHRhYmxlIGlkPSdy
ZXN1bHRzJyAiICsgKGFzc2VydGlvbnMgPyAiY2xhc3M9J2Fzc2VydGlvbnMnIiA6ICIiICkgKyAi
PiIgKwpAQCAtMzQwOSwxOSArMzU1NiwyNiBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZv
cm1zIFszXS4KICAgICAgICAgICAgICI8dGg+TWVzc2FnZTwvdGg+PC90cj48L3RoZWFkPiIgKwog
ICAgICAgICAgICAgIjx0Ym9keT4iOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3Rz
Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBodG1sICs9ICc8dHIgY2xhc3M9IicgKwotICAg
ICAgICAgICAgICAgIGVzY2FwZV9odG1sKHN0YXR1c19jbGFzcyhzdGF0dXNfdGV4dFt0ZXN0c1tp
XS5zdGF0dXNdKSkgKwotICAgICAgICAgICAgICAgICciPjx0ZD4nICsKLSAgICAgICAgICAgICAg
ICBlc2NhcGVfaHRtbChzdGF0dXNfdGV4dFt0ZXN0c1tpXS5zdGF0dXNdKSArCisgICAgICAgICAg
ICB2YXIgdGVzdCA9IHRlc3RzW2ldOworICAgICAgICAgICAgaHRtbCArPSAnPHRyIGNsYXNzPSJv
dmVyYWxsLScgKworICAgICAgICAgICAgICAgIHN0YXR1c19jbGFzcyh0ZXN0LmZvcm1hdF9zdGF0
dXMoKSkgKworICAgICAgICAgICAgICAgICciPicgKworICAgICAgICAgICAgICAgICc8dGQgY2xh
c3M9IicgKworICAgICAgICAgICAgICAgIHN0YXR1c19jbGFzcyh0ZXN0LmZvcm1hdF9zdGF0dXMo
KSkgKworICAgICAgICAgICAgICAgICciPicgKworICAgICAgICAgICAgICAgIHRlc3QuZm9ybWF0
X3N0YXR1cygpICsKICAgICAgICAgICAgICAgICAiPC90ZD48dGQ+IiArCi0gICAgICAgICAgICAg
ICAgZXNjYXBlX2h0bWwodGVzdHNbaV0ubmFtZSkgKworICAgICAgICAgICAgICAgIGVzY2FwZV9o
dG1sKHRlc3QubmFtZSkgKwogICAgICAgICAgICAgICAgICI8L3RkPjx0ZD4iICsKLSAgICAgICAg
ICAgICAgICAoYXNzZXJ0aW9ucyA/IGVzY2FwZV9odG1sKGdldF9hc3NlcnRpb24odGVzdHNbaV0p
KSArICI8L3RkPjx0ZD4iIDogIiIpICsKLSAgICAgICAgICAgICAgICBlc2NhcGVfaHRtbCh0ZXN0
c1tpXS5tZXNzYWdlID8gdGVzdHNbaV0ubWVzc2FnZSA6ICIgIikgKworICAgICAgICAgICAgICAg
IChhc3NlcnRpb25zID8gZXNjYXBlX2h0bWwoZ2V0X2Fzc2VydGlvbih0ZXN0KSkgKyAiPC90ZD48
dGQ+IiA6ICIiKSArCisgICAgICAgICAgICAgICAgZXNjYXBlX2h0bWwodGVzdC5tZXNzYWdlID8g
dGVzdHNbaV0ubWVzc2FnZSA6ICIgIikgKwogICAgICAgICAgICAgICAgICh0ZXN0c1tpXS5zdGFj
ayA/ICI8cHJlPiIgKwogICAgICAgICAgICAgICAgICBlc2NhcGVfaHRtbCh0ZXN0c1tpXS5zdGFj
aykgKwotICAgICAgICAgICAgICAgICAiPC9wcmU+IjogIiIpICsKLSAgICAgICAgICAgICAgICAi
PC90ZD48L3RyPiI7CisgICAgICAgICAgICAgICAgICI8L3ByZT4iOiAiIik7CisgICAgICAgICAg
ICBpZiAoISh0ZXN0IGluc3RhbmNlb2YgUmVtb3RlVGVzdCkpIHsKKyAgICAgICAgICAgICAgICAg
aHRtbCArPSAiPGRldGFpbHM+PHN1bW1hcnk+QXNzZXJ0cyBydW48L3N1bW1hcnk+IiArIGdldF9h
c3NlcnRzX291dHB1dCh0ZXN0KSArICI8L2RldGFpbHM+IgorICAgICAgICAgICAgfQorICAgICAg
ICAgICAgaHRtbCArPSAiPC90ZD48L3RyPiI7CiAgICAgICAgIH0KICAgICAgICAgaHRtbCArPSAi
PC90Ym9keT48L3RhYmxlPiI7CiAgICAgICAgIHRyeSB7CkBAIC0zNjEyLDE0ICszNzY2LDE3IEBA
IHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogCiAgICAgZnVuY3Rpb24gQXNz
ZXJ0aW9uRXJyb3IobWVzc2FnZSkKICAgICB7CisgICAgICAgIGlmICh0eXBlb2YgbWVzc2FnZSA9
PSAic3RyaW5nIikgeworICAgICAgICAgICAgbWVzc2FnZSA9IHNhbml0aXplX3VucGFpcmVkX3N1
cnJvZ2F0ZXMobWVzc2FnZSk7CisgICAgICAgIH0KICAgICAgICAgdGhpcy5tZXNzYWdlID0gbWVz
c2FnZTsKLSAgICAgICAgdGhpcy5zdGFjayA9IHRoaXMuZ2V0X3N0YWNrKCk7CisgICAgICAgIHRo
aXMuc3RhY2sgPSBnZXRfc3RhY2soKTsKICAgICB9CiAgICAgZXhwb3NlKEFzc2VydGlvbkVycm9y
LCAiQXNzZXJ0aW9uRXJyb3IiKTsKIAogICAgIEFzc2VydGlvbkVycm9yLnByb3RvdHlwZSA9IE9i
amVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKTsKIAotICAgIEFzc2VydGlvbkVycm9yLnByb3Rv
dHlwZS5nZXRfc3RhY2sgPSBmdW5jdGlvbigpIHsKKyAgICBjb25zdCBnZXRfc3RhY2sgPSBmdW5j
dGlvbigpIHsKICAgICAgICAgdmFyIHN0YWNrID0gbmV3IEVycm9yKCkuc3RhY2s7CiAgICAgICAg
IC8vIElFMTEgZG9lcyBub3QgaW5pdGlhbGl6ZSAnRXJyb3Iuc3RhY2snIHVudGlsIHRoZSBvYmpl
Y3QgaXMgdGhyb3duLgogICAgICAgICBpZiAoIXN0YWNrKSB7CkBAIC0zOTgzLDU0ICs0MTQwLDYy
IEBAIHRhYmxlI3Jlc3VsdHMge1wKICAgICB3aWR0aDoxMDAlO1wKIH1cCiBcCi10YWJsZSNyZXN1
bHRzIHRoOmZpcnN0LWNoaWxkLFwKLXRhYmxlI3Jlc3VsdHMgdGQ6Zmlyc3QtY2hpbGQge1wKK3Rh
YmxlI3Jlc3VsdHMgPiB0aGVhZCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXAordGFibGUjcmVzdWx0
cyA+IHRib2R5ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCB7XAogICAgIHdpZHRoOjhlbTtcCiB9XAog
XAotdGFibGUjcmVzdWx0cyB0aDpsYXN0LWNoaWxkLFwKLXRhYmxlI3Jlc3VsdHMgdGQ6bGFzdC1j
aGlsZCB7XAordGFibGUjcmVzdWx0cyA+IHRoZWFkID4gdHIgPiB0aDpsYXN0LWNoaWxkLFwKK3Rh
YmxlI3Jlc3VsdHMgPiB0aGVhZCA+IHRyID4gdGQ6bGFzdC1jaGlsZCB7XAogICAgIHdpZHRoOjUw
JTtcCiB9XAogXAotdGFibGUjcmVzdWx0cy5hc3NlcnRpb25zIHRoOmxhc3QtY2hpbGQsXAotdGFi
bGUjcmVzdWx0cy5hc3NlcnRpb25zIHRkOmxhc3QtY2hpbGQge1wKK3RhYmxlI3Jlc3VsdHMuYXNz
ZXJ0aW9ucyA+IHRoZWFkID4gdHIgPiB0aDpsYXN0LWNoaWxkLFwKK3RhYmxlI3Jlc3VsdHMuYXNz
ZXJ0aW9ucyA+IHRib2R5ID4gdHIgPiB0ZDpsYXN0LWNoaWxkIHtcCiAgICAgd2lkdGg6MzUlO1wK
IH1cCiBcCi10YWJsZSNyZXN1bHRzIHRoIHtcCit0YWJsZSNyZXN1bHRzID4gdGhlYWQgPiA+IHRy
ID4gdGgge1wKICAgICBwYWRkaW5nOjA7XAogICAgIHBhZGRpbmctYm90dG9tOjAuNWVtO1wKICAg
ICBib3JkZXItYm90dG9tOm1lZGl1bSBzb2xpZCBibGFjaztcCiB9XAogXAotdGFibGUjcmVzdWx0
cyB0ZCB7XAordGFibGUjcmVzdWx0cyA+IHRib2R5ID4gdHI+IHRkIHtcCiAgICAgcGFkZGluZzox
ZW07XAogICAgIHBhZGRpbmctYm90dG9tOjAuNWVtO1wKICAgICBib3JkZXItYm90dG9tOnRoaW4g
c29saWQgYmxhY2s7XAogfVwKIFwKLXRyLnBhc3MgPiB0ZDpmaXJzdC1jaGlsZCB7XAorLnBhc3Mg
e1wKICAgICBjb2xvcjpncmVlbjtcCiB9XAogXAotdHIuZmFpbCA+IHRkOmZpcnN0LWNoaWxkIHtc
CisuZmFpbCB7XAogICAgIGNvbG9yOnJlZDtcCiB9XAogXAotdHIudGltZW91dCA+IHRkOmZpcnN0
LWNoaWxkIHtcCit0ci50aW1lb3V0IHtcCiAgICAgY29sb3I6cmVkO1wKIH1cCiBcCi10ci5ub3Ry
dW4gPiB0ZDpmaXJzdC1jaGlsZCB7XAordHIubm90cnVuIHtcCiAgICAgY29sb3I6Ymx1ZTtcCiB9
XAogXAotdHIub3B0aW9uYWx1bnN1cHBvcnRlZCA+IHRkOmZpcnN0LWNoaWxkIHtcCit0ci5vcHRp
b25hbHVuc3VwcG9ydGVkIHtcCiAgICAgY29sb3I6Ymx1ZTtcCiB9XAogXAotLnBhc3MgPiB0ZDpm
aXJzdC1jaGlsZCwgLmZhaWwgPiB0ZDpmaXJzdC1jaGlsZCwgLnRpbWVvdXQgPiB0ZDpmaXJzdC1j
aGlsZCwgLm5vdHJ1biA+IHRkOmZpcnN0LWNoaWxkLCAub3B0aW9uYWx1bnN1cHBvcnRlZCA+IHRk
OmZpcnN0LWNoaWxkIHtcCisub2sge1wKKyAgICBjb2xvcjpncmVlbjtcCit9XAorXAorLmVycm9y
IHtcCisgICAgY29sb3I6cmVkO1wKK31cCitcCisucGFzcywgLmZhaWwsIC50aW1lb3V0LCAubm90
cnVuLCAub3B0aW9uYWx1bnN1cHBvcnRlZCAub2ssIC50aW1lb3V0LCAuZXJyb3Ige1wKICAgICBm
b250LXZhcmlhbnQ6c21hbGwtY2FwcztcCiB9XAogXApAQCAtNDA0NywyMiArNDIxMiw2IEBAIHRh
YmxlI3Jlc3VsdHMgc3Bhbi5hY3R1YWwge1wKICAgICBmb250LWZhbWlseTpEZWphVnUgU2FucyBN
b25vLCBCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8sIE1vbm9zcGFjZTtcCiAgICAgd2hpdGUtc3Bh
Y2U6cHJlO1wKIH1cCi1cCi1zcGFuLm9rIHtcCi0gICAgY29sb3I6Z3JlZW47XAotfVwKLVwKLXRy
LmVycm9yIHtcCi0gICAgY29sb3I6cmVkO1wKLX1cCi1cCi1zcGFuLnRpbWVvdXQge1wKLSAgICBj
b2xvcjpyZWQ7XAotfVwKLVwKLXNwYW4ub2ssIHNwYW4udGltZW91dCwgc3Bhbi5lcnJvciB7XAot
ICAgIGZvbnQtdmFyaWFudDpzbWFsbC1jYXBzO1wKLX1cCiAiOwogCiB9KShzZWxmKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3Vy
Y2VzL3dlYmlkbDIvbGliL1JFQURNRS5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3dlYmlkbDIvbGliL1JFQURNRS5tZAppbmRleCAxYmQ1
ODMyNjlkMjkyOWExNmIxYzdhZDBjNThmYWI2ZTk5YjcyYTEwLi5hZjBhZjNhOTAyZjJmM2EwMWFi
YTRjZmQ0OTRmMTQ0MzQ0MDg4OGM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy93ZWJpZGwyL2xpYi9SRUFETUUubWQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMv
d2ViaWRsMi9saWIvUkVBRE1FLm1kCkBAIC0xLDQgKzEsNiBAQAogVGhpcyBkaXJlY3RvcnkgY29u
dGFpbnMgYSBidWlsdCB2ZXJzaW9uIG9mIHRoZSBbd2ViaWRsMi5qcyBsaWJyYXJ5XShodHRwczov
L2dpdGh1Yi5jb20vdzNjL3dlYmlkbDIuanMpLgogSXQgaXMgYnVpbHQgYnkgcnVubmluZyBgbnBt
IHJ1biBidWlsZC1kZWJ1Z2AgYXQgdGhlIHJvb3Qgb2YgdGhhdCByZXBvc2l0b3J5LgogCitDdXJy
ZW50bHkgdXNpbmcgd2ViaWRsMi5qc0AyNC4xLjEgKDM3MmVhODNlYWExMGY2MGFkZmY0OWJkMGY0
ZjNjZTZhMTFkNmZiZWMpLgorCiBUaGUgYHdlYmlkbDIuanMuaGVhZGVyc2AgZmlsZSBpcyBhIGxv
Y2FsIGFkZGl0aW9uIHRvIGVuc3VyZSB0aGUgc2NyaXB0IGlzIGludGVycHJldGVkIGFzIFVURi04
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZXMvd2ViaWRsMi9saWIvd2ViaWRsMi5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3dlYmlkbDIvbGliL3dlYmlkbDIuanMK
aW5kZXggZDcwNzkwNWZhNjNlMTY4ODZlNGI4OWU2YTQwM2NkYWM2MmQ3ZGFkZC4uMzIyZjBlMTFh
NmFlNTZlYjY1YTFlNTc0ODJmZjUyMGIwNjU3ZGNkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvd2ViaWRsMi9saWIvd2Vi
aWRsMi5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Jlc291cmNlcy93ZWJpZGwyL2xpYi93ZWJpZGwyLmpzCkBAIC03LDEyNCArNywxOCBAQAogCQll
eHBvcnRzWyJXZWJJREwyIl0gPSBmYWN0b3J5KCk7CiAJZWxzZQogCQlyb290WyJXZWJJREwyIl0g
PSBmYWN0b3J5KCk7Ci19KSh0aGlzLCBmdW5jdGlvbigpIHsKLXJldHVybiAvKioqKioqLyAoZnVu
Y3Rpb24obW9kdWxlcykgeyAvLyB3ZWJwYWNrQm9vdHN0cmFwCi0vKioqKioqLyAJLy8gVGhlIG1v
ZHVsZSBjYWNoZQotLyoqKioqKi8gCXZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307Ci0vKioqKioq
LwotLyoqKioqKi8gCS8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uCi0vKioqKioqLyAJZnVuY3Rpb24g
X193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkgewotLyoqKioqKi8KLS8qKioqKiovIAkJLy8g
Q2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlCi0vKioqKioqLyAJCWlmKGluc3RhbGxlZE1vZHVs
ZXNbbW9kdWxlSWRdKSB7Ci0vKioqKioqLyAJCQlyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1
bGVJZF0uZXhwb3J0czsKLS8qKioqKiovIAkJfQotLyoqKioqKi8gCQkvLyBDcmVhdGUgYSBuZXcg
bW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKQotLyoqKioqKi8gCQl2YXIgbW9kdWxl
ID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7Ci0vKioqKioqLyAJCQlpOiBtb2R1bGVJ
ZCwKLS8qKioqKiovIAkJCWw6IGZhbHNlLAotLyoqKioqKi8gCQkJZXhwb3J0czoge30KLS8qKioq
KiovIAkJfTsKLS8qKioqKiovCi0vKioqKioqLyAJCS8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5j
dGlvbgotLyoqKioqKi8gCQltb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBt
b2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTsKLS8qKioqKiovCi0v
KioqKioqLyAJCS8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWQKLS8qKioqKiovIAkJbW9kdWxl
LmwgPSB0cnVlOwotLyoqKioqKi8KLS8qKioqKiovIAkJLy8gUmV0dXJuIHRoZSBleHBvcnRzIG9m
IHRoZSBtb2R1bGUKLS8qKioqKiovIAkJcmV0dXJuIG1vZHVsZS5leHBvcnRzOwotLyoqKioqKi8g
CX0KLS8qKioqKiovCi0vKioqKioqLwotLyoqKioqKi8gCS8vIGV4cG9zZSB0aGUgbW9kdWxlcyBv
YmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pCi0vKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVf
Xy5tID0gbW9kdWxlczsKLS8qKioqKiovCi0vKioqKioqLyAJLy8gZXhwb3NlIHRoZSBtb2R1bGUg
Y2FjaGUKLS8qKioqKiovIAlfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVz
OwotLyoqKioqKi8KLS8qKioqKiovIAkvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJt
b255IGV4cG9ydHMKLS8qKioqKiovIAlfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihl
eHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHsKLS8qKioqKiovIAkJaWYoIV9fd2VicGFja19yZXF1aXJl
X18ubyhleHBvcnRzLCBuYW1lKSkgewotLyoqKioqKi8gCQkJT2JqZWN0LmRlZmluZVByb3BlcnR5
KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7Ci0vKioq
KioqLyAJCX0KLS8qKioqKiovIAl9OwotLyoqKioqKi8KLS8qKioqKiovIAkvLyBkZWZpbmUgX19l
c01vZHVsZSBvbiBleHBvcnRzCi0vKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVu
Y3Rpb24oZXhwb3J0cykgewotLyoqKioqKi8gCQlpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZp
bmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHsKLS8qKioqKiovIAkJCU9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0p
OwotLyoqKioqKi8gCQl9Ci0vKioqKioqLyAJCU9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRz
LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7Ci0vKioqKioqLyAJfTsKLS8qKioqKiov
Ci0vKioqKioqLyAJLy8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0Ci0vKioqKioqLyAJ
Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0Ci0vKioqKioqLyAJ
Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zCi0v
KioqKioqLyAJLy8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0
Ci0vKioqKioqLyAJLy8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZQotLyoqKioqKi8g
CV9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7Ci0vKioqKioq
LyAJCWlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpOwotLyoq
KioqKi8gCQlpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlOwotLyoqKioqKi8gCQlpZigobW9kZSAm
IDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01v
ZHVsZSkgcmV0dXJuIHZhbHVlOwotLyoqKioqKi8gCQl2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51
bGwpOwotLyoqKioqKi8gCQlfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpOwotLyoqKioqKi8gCQlP
YmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2
YWx1ZTogdmFsdWUgfSk7Ci0vKioqKioqLyAJCWlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAh
PSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChu
cywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBr
ZXkpKTsKLS8qKioqKiovIAkJcmV0dXJuIG5zOwotLyoqKioqKi8gCX07Ci0vKioqKioqLwotLyoq
KioqKi8gCS8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0
aCBub24taGFybW9ueSBtb2R1bGVzCi0vKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5uID0g
ZnVuY3Rpb24obW9kdWxlKSB7Ci0vKioqKioqLyAJCXZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9k
dWxlLl9fZXNNb2R1bGUgPwotLyoqKioqKi8gCQkJZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0
dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDoKLS8qKioqKiovIAkJCWZ1bmN0aW9uIGdldE1vZHVs
ZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07Ci0vKioqKioqLyAJCV9fd2VicGFja19yZXF1
aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTsKLS8qKioqKiovIAkJcmV0dXJuIGdldHRlcjsK
LS8qKioqKiovIAl9OwotLyoqKioqKi8KLS8qKioqKiovIAkvLyBPYmplY3QucHJvdG90eXBlLmhh
c093blByb3BlcnR5LmNhbGwKLS8qKioqKiovIAlfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5j
dGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blBy
b3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07Ci0vKioqKioqLwotLyoqKioqKi8gCS8v
IF9fd2VicGFja19wdWJsaWNfcGF0aF9fCi0vKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5w
ID0gIiI7Ci0vKioqKioqLwotLyoqKioqKi8KLS8qKioqKiovIAkvLyBMb2FkIGVudHJ5IG1vZHVs
ZSBhbmQgcmV0dXJuIGV4cG9ydHMKLS8qKioqKiovIAlyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVf
XyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAwKTsKLS8qKioqKiovIH0pCi0vKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqLwotLyoqKioqKi8gKFsKLS8qIDAgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2Vi
cGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKLQotInVzZSBzdHJpY3QiOwot
X193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBp
bXBvcnQgKi8gdmFyIF9saWJfd2ViaWRsMl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTsKLS8qIGhhcm1vbnkgcmVleHBvcnQgKHNhZmUpICov
IF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAicGFyc2UiLCBmdW5j
dGlvbigpIHsgcmV0dXJuIF9saWJfd2ViaWRsMl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MF9fWyJwYXJzZSJdOyB9KTsKLQotLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9saWJfd3JpdGVy
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMw
KTsKLS8qIGhhcm1vbnkgcmVleHBvcnQgKHNhZmUpICovIF9fd2VicGFja19yZXF1aXJlX18uZChf
X3dlYnBhY2tfZXhwb3J0c19fLCAid3JpdGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIF9saWJfd3Jp
dGVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIndyaXRlIl07IH0pOwotCi0vKiBo
YXJtb255IGltcG9ydCAqLyB2YXIgX2xpYl92YWxpZGF0b3JfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMzEpOwotLyogaGFybW9ueSByZWV4cG9y
dCAoc2FmZSkgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ2
YWxpZGF0ZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gX2xpYl92YWxpZGF0b3JfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzJfX1sidmFsaWRhdGUiXTsgfSk7Ci0KLS8qIGhhcm1vbnkgaW1wb3J0
ICovIHZhciBfbGliX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0g
X193ZWJwYWNrX3JlcXVpcmVfXygyKTsKLS8qIGhhcm1vbnkgcmVleHBvcnQgKHNhZmUpICovIF9f
d2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiV2ViSURMUGFyc2VFcnJv
ciIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gX2xpYl90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzNfX1siV2ViSURMUGFyc2VFcnJvciJdOyB9KTsKLQotCi0KLQotCi0KLQotLyoq
Ki8gfSksCit9KShnbG9iYWxUaGlzLCBmdW5jdGlvbigpIHsKK3JldHVybiAvKioqKioqLyAoKCkg
PT4geyAvLyB3ZWJwYWNrQm9vdHN0cmFwCisvKioqKioqLyAJInVzZSBzdHJpY3QiOworLyoqKioq
Ki8gCXZhciBfX3dlYnBhY2tfbW9kdWxlc19fID0gKFsKKy8qIDAgKi8sCiAvKiAxICovCi0vKioq
LyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWly
ZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dl
YnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0
IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1v
bnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4
cG9ydHNfXywgInBhcnNlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBwYXJzZTsgfSk7CisvKiBoYXJt
b255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywg
eworLyogaGFybW9ueSBleHBvcnQgKi8gICAicGFyc2UiOiAoKSA9PiAoLyogYmluZGluZyAqLyBw
YXJzZSkKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oMik7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25zX2VudW1f
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTUp
OwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wcm9kdWN0aW9uc19pbmNsdWRlc19qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNik7CkBAIC0x
NTAsOCArNDQsNiBAQCBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7
CiAKIAogCi0KLQogLyoqCiAgKiBAcGFyYW0ge1Rva2VuaXNlcn0gdG9rZW5pc2VyCiAgKiBAcGFy
YW0ge29iamVjdH0gb3B0aW9ucwpAQCAtMTcyLDE2ICs2NCwxNyBAQCBmdW5jdGlvbiBwYXJzZUJ5
VG9rZW5zKHRva2VuaXNlciwgb3B0aW9ucykgewogICAgIGNvbnN0IGNhbGxiYWNrID0gY29uc3Vt
ZSgiY2FsbGJhY2siKTsKICAgICBpZiAoIWNhbGxiYWNrKSByZXR1cm47CiAgICAgaWYgKHRva2Vu
aXNlci5wcm9iZSgiaW50ZXJmYWNlIikpIHsKLSAgICAgIHJldHVybiBfcHJvZHVjdGlvbnNfY2Fs
bGJhY2tfaW50ZXJmYWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fWyJDYWxsYmFj
a0ludGVyZmFjZSJdLnBhcnNlKHRva2VuaXNlciwgY2FsbGJhY2spOworICAgICAgcmV0dXJuIF9w
cm9kdWN0aW9uc19jYWxsYmFja19pbnRlcmZhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzEwX18uQ2FsbGJhY2tJbnRlcmZhY2UucGFyc2UodG9rZW5pc2VyLCBjYWxsYmFjayk7CiAgICAg
fQotICAgIHJldHVybiBfcHJvZHVjdGlvbnNfY2FsbGJhY2tfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzVfX1siQ2FsbGJhY2tGdW5jdGlvbiJdLnBhcnNlKHRva2VuaXNlciwgY2FsbGJhY2sp
OworICAgIHJldHVybiBfcHJvZHVjdGlvbnNfY2FsbGJhY2tfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzVfXy5DYWxsYmFja0Z1bmN0aW9uLnBhcnNlKHRva2VuaXNlciwgY2FsbGJhY2spOwog
ICB9CiAKICAgZnVuY3Rpb24gaW50ZXJmYWNlXyhvcHRzKSB7CiAgICAgY29uc3QgYmFzZSA9IGNv
bnN1bWUoImludGVyZmFjZSIpOwogICAgIGlmICghYmFzZSkgcmV0dXJuOwotICAgIGNvbnN0IHJl
dCA9IF9wcm9kdWN0aW9uc19taXhpbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fWyJN
aXhpbiJdLnBhcnNlKHRva2VuaXNlciwgYmFzZSwgb3B0cykgfHwKLSAgICAgIF9wcm9kdWN0aW9u
c19pbnRlcmZhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1siSW50ZXJmYWNlIl0u
cGFyc2UodG9rZW5pc2VyLCBiYXNlLCBvcHRzKSB8fAorICAgIGNvbnN0IHJldCA9CisgICAgICBf
cHJvZHVjdGlvbnNfbWl4aW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5NaXhpbi5w
YXJzZSh0b2tlbmlzZXIsIGJhc2UsIG9wdHMpIHx8CisgICAgICBfcHJvZHVjdGlvbnNfaW50ZXJm
YWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uSW50ZXJmYWNlLnBhcnNlKHRva2Vu
aXNlciwgYmFzZSwgb3B0cykgfHwKICAgICAgIGVycm9yKCJJbnRlcmZhY2UgaGFzIG5vIHByb3Bl
ciBib2R5Iik7CiAgICAgcmV0dXJuIHJldDsKICAgfQpAQCAtMTg5LDM3ICs4Miw0MSBAQCBmdW5j
dGlvbiBwYXJzZUJ5VG9rZW5zKHRva2VuaXNlciwgb3B0aW9ucykgewogICBmdW5jdGlvbiBwYXJ0
aWFsKCkgewogICAgIGNvbnN0IHBhcnRpYWwgPSBjb25zdW1lKCJwYXJ0aWFsIik7CiAgICAgaWYg
KCFwYXJ0aWFsKSByZXR1cm47Ci0gICAgcmV0dXJuIF9wcm9kdWN0aW9uc19kaWN0aW9uYXJ5X2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X19bIkRpY3Rpb25hcnkiXS5wYXJzZSh0b2tlbmlz
ZXIsIHsgcGFydGlhbCB9KSB8fAorICAgIHJldHVybiAoCisgICAgICBfcHJvZHVjdGlvbnNfZGlj
dGlvbmFyeV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLkRpY3Rpb25hcnkucGFyc2Uo
dG9rZW5pc2VyLCB7IHBhcnRpYWwgfSkgfHwKICAgICAgIGludGVyZmFjZV8oeyBwYXJ0aWFsIH0p
IHx8Ci0gICAgICBfcHJvZHVjdGlvbnNfbmFtZXNwYWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV85X19bIk5hbWVzcGFjZSJdLnBhcnNlKHRva2VuaXNlciwgeyBwYXJ0aWFsIH0pIHx8Ci0g
ICAgICBlcnJvcigiUGFydGlhbCBkb2Vzbid0IGFwcGx5IHRvIGFueXRoaW5nIik7CisgICAgICBf
cHJvZHVjdGlvbnNfbmFtZXNwYWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18uTmFt
ZXNwYWNlLnBhcnNlKHRva2VuaXNlciwgeyBwYXJ0aWFsIH0pIHx8CisgICAgICBlcnJvcigiUGFy
dGlhbCBkb2Vzbid0IGFwcGx5IHRvIGFueXRoaW5nIikKKyAgICApOwogICB9CiAKICAgZnVuY3Rp
b24gZGVmaW5pdGlvbigpIHsKLSAgICByZXR1cm4gY2FsbGJhY2soKSB8fAorICAgIHJldHVybiAo
CisgICAgICBjYWxsYmFjaygpIHx8CiAgICAgICBpbnRlcmZhY2VfKCkgfHwKICAgICAgIHBhcnRp
YWwoKSB8fAotICAgICAgX3Byb2R1Y3Rpb25zX2RpY3Rpb25hcnlfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzhfX1siRGljdGlvbmFyeSJdLnBhcnNlKHRva2VuaXNlcikgfHwKLSAgICAgIF9w
cm9kdWN0aW9uc19lbnVtX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkVudW0iXS5w
YXJzZSh0b2tlbmlzZXIpIHx8Ci0gICAgICBfcHJvZHVjdGlvbnNfdHlwZWRlZl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfNF9fWyJUeXBlZGVmIl0ucGFyc2UodG9rZW5pc2VyKSB8fAotICAg
ICAgX3Byb2R1Y3Rpb25zX2luY2x1ZGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19b
IkluY2x1ZGVzIl0ucGFyc2UodG9rZW5pc2VyKSB8fAotICAgICAgX3Byb2R1Y3Rpb25zX25hbWVz
cGFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fWyJOYW1lc3BhY2UiXS5wYXJzZSh0
b2tlbmlzZXIpOworICAgICAgX3Byb2R1Y3Rpb25zX2RpY3Rpb25hcnlfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzhfXy5EaWN0aW9uYXJ5LnBhcnNlKHRva2VuaXNlcikgfHwKKyAgICAgIF9w
cm9kdWN0aW9uc19lbnVtX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uRW51bS5wYXJz
ZSh0b2tlbmlzZXIpIHx8CisgICAgICBfcHJvZHVjdGlvbnNfdHlwZWRlZl9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfNF9fLlR5cGVkZWYucGFyc2UodG9rZW5pc2VyKSB8fAorICAgICAgX3By
b2R1Y3Rpb25zX2luY2x1ZGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uSW5jbHVk
ZXMucGFyc2UodG9rZW5pc2VyKSB8fAorICAgICAgX3Byb2R1Y3Rpb25zX25hbWVzcGFjZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLk5hbWVzcGFjZS5wYXJzZSh0b2tlbmlzZXIpCisg
ICAgKTsKICAgfQogCiAgIGZ1bmN0aW9uIGRlZmluaXRpb25zKCkgewogICAgIGlmICghc291cmNl
Lmxlbmd0aCkgcmV0dXJuIFtdOwogICAgIGNvbnN0IGRlZnMgPSBbXTsKICAgICB3aGlsZSAodHJ1
ZSkgewotICAgICAgY29uc3QgZWEgPSBfcHJvZHVjdGlvbnNfZXh0ZW5kZWRfYXR0cmlidXRlc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJFeHRlbmRlZEF0dHJpYnV0ZXMiXS5wYXJz
ZSh0b2tlbmlzZXIpOworICAgICAgY29uc3QgZWEgPSBfcHJvZHVjdGlvbnNfZXh0ZW5kZWRfYXR0
cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLkV4dGVuZGVkQXR0cmlidXRl
cy5wYXJzZSh0b2tlbmlzZXIpOwogICAgICAgY29uc3QgZGVmID0gZGVmaW5pdGlvbigpOwogICAg
ICAgaWYgKCFkZWYpIHsKICAgICAgICAgaWYgKGVhLmxlbmd0aCkgZXJyb3IoIlN0cmF5IGV4dGVu
ZGVkIGF0dHJpYnV0ZXMiKTsKICAgICAgICAgYnJlYWs7CiAgICAgICB9Ci0gICAgICBPYmplY3Qo
X3Byb2R1Y3Rpb25zX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX19bImF1
dG9QYXJlbnRlciJdKShkZWYpLmV4dEF0dHJzID0gZWE7CisgICAgICAoMCxfcHJvZHVjdGlvbnNf
aGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5hdXRvUGFyZW50ZXIpKGRl
ZikuZXh0QXR0cnMgPSBlYTsKICAgICAgIGRlZnMucHVzaChkZWYpOwogICAgIH0KLSAgICBjb25z
dCBlb2YgPSBjb25zdW1lKCJlb2YiKTsKKyAgICBjb25zdCBlb2YgPSB0b2tlbmlzZXIuY29uc3Vt
ZVR5cGUoImVvZiIpOwogICAgIGlmIChvcHRpb25zLmNvbmNyZXRlKSB7CiAgICAgICBkZWZzLnB1
c2goZW9mKTsKICAgICB9CkBAIC0yMzcsNyArMTM0LDcgQEAgZnVuY3Rpb24gcGFyc2VCeVRva2Vu
cyh0b2tlbmlzZXIsIG9wdGlvbnMpIHsKICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuY29u
Y3JldGVdCiAgKi8KIGZ1bmN0aW9uIHBhcnNlKHN0ciwgb3B0aW9ucyA9IHt9KSB7Ci0gIGNvbnN0
IHRva2VuaXNlciA9IG5ldyBfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bIlRva2VuaXNlciJdKHN0cik7CisgIGNvbnN0IHRva2VuaXNlciA9IG5ldyBfdG9rZW5pc2Vy
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uVG9rZW5pc2VyKHN0cik7CiAgIGlmICh0
eXBlb2Ygb3B0aW9ucy5zb3VyY2VOYW1lICE9PSAidW5kZWZpbmVkIikgewogICAgIHRva2VuaXNl
ci5zb3VyY2UubmFtZSA9IG9wdGlvbnMuc291cmNlTmFtZTsKICAgfQpAQCAtMjQ3LDE1ICsxNDQs
MTYgQEAgZnVuY3Rpb24gcGFyc2Uoc3RyLCBvcHRpb25zID0ge30pIHsKIAogLyoqKi8gfSksCiAv
KiAyICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dl
YnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21v
ZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAK
LSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19f
KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQo
X193ZWJwYWNrX2V4cG9ydHNfXywgInR5cGVOYW1lS2V5d29yZHMiLCBmdW5jdGlvbigpIHsgcmV0
dXJuIHR5cGVOYW1lS2V5d29yZHM7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICov
IF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAic3RyaW5nVHlwZXMi
LCBmdW5jdGlvbigpIHsgcmV0dXJuIHN0cmluZ1R5cGVzOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0
IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywg
ImFyZ3VtZW50TmFtZUtleXdvcmRzIiwgZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudE5hbWVL
ZXl3b3JkczsgfSk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJUb2tlbmlzZXIiLCBmdW5jdGlvbigpIHsg
cmV0dXJuIFRva2VuaXNlcjsgfSk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193
ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJXZWJJRExQYXJzZUVycm9y
IiwgZnVuY3Rpb24oKSB7IHJldHVybiBXZWJJRExQYXJzZUVycm9yOyB9KTsKKy8qIGhhcm1vbnkg
ZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7Cisv
KiBoYXJtb255IGV4cG9ydCAqLyAgICJ0eXBlTmFtZUtleXdvcmRzIjogKCkgPT4gKC8qIGJpbmRp
bmcgKi8gdHlwZU5hbWVLZXl3b3JkcyksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJzdHJpbmdU
eXBlcyI6ICgpID0+ICgvKiBiaW5kaW5nICovIHN0cmluZ1R5cGVzKSwKKy8qIGhhcm1vbnkgZXhw
b3J0ICovICAgImFyZ3VtZW50TmFtZUtleXdvcmRzIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYXJn
dW1lbnROYW1lS2V5d29yZHMpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAiVG9rZW5pc2VyIjog
KCkgPT4gKC8qIGJpbmRpbmcgKi8gVG9rZW5pc2VyKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAg
IldlYklETFBhcnNlRXJyb3IiOiAoKSA9PiAoLyogYmluZGluZyAqLyBXZWJJRExQYXJzZUVycm9y
KQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Vy
cm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9f
KDMpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wcm9kdWN0aW9uc19oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwogCkBA
IC0yNjYsMTMgKzE2NCwxNCBAQCBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9y
dHNfXyk7CiBjb25zdCB0b2tlblJlID0gewogICAvLyBUaGlzIGV4cHJlc3Npb24gdXNlcyBhIGxv
b2thaGVhZCBhc3NlcnRpb24gdG8gY2F0Y2ggZmFsc2UgbWF0Y2hlcwogICAvLyBhZ2FpbnN0IGlu
dGVnZXJzIGVhcmx5LgotICAiZGVjaW1hbCI6IC8tPyg/PVswLTldKlwufFswLTldK1tlRV0pKChb
MC05XStcLlswLTldKnxbMC05XSpcLlswLTldKykoW0VlXVstK10/WzAtOV0rKT98WzAtOV0rW0Vl
XVstK10/WzAtOV0rKS95LAotICAiaW50ZWdlciI6IC8tPygwKFtYeF1bMC05QS1GYS1mXSt8WzAt
N10qKXxbMS05XVswLTldKikveSwKLSAgImlkZW50aWZpZXIiOiAvW18tXT9bQS1aYS16XVswLTlB
LVpfYS16LV0qL3ksCi0gICJzdHJpbmciOiAvIlteIl0qIi95LAotICAid2hpdGVzcGFjZSI6IC9b
XHRcblxyIF0rL3ksCi0gICJjb21tZW50IjogLygoXC8oXC8uKnxcKihbXipdfFwqW14vXSkqXCpc
LylbXHRcblxyIF0qKSspL3ksCi0gICJvdGhlciI6IC9bXlx0XG5cciAwLTlBLVphLXpdL3kKKyAg
ZGVjaW1hbDoKKyAgICAvLT8oPz1bMC05XSpcLnxbMC05XStbZUVdKSgoWzAtOV0rXC5bMC05XSp8
WzAtOV0qXC5bMC05XSspKFtFZV1bLStdP1swLTldKyk/fFswLTldK1tFZV1bLStdP1swLTldKykv
eSwKKyAgaW50ZWdlcjogLy0/KDAoW1h4XVswLTlBLUZhLWZdK3xbMC03XSopfFsxLTldWzAtOV0q
KS95LAorICBpZGVudGlmaWVyOiAvW18tXT9bQS1aYS16XVswLTlBLVpfYS16LV0qL3ksCisgIHN0
cmluZzogLyJbXiJdKiIveSwKKyAgd2hpdGVzcGFjZTogL1tcdFxuXHIgXSsveSwKKyAgY29tbWVu
dDogL1wvXC8uKnxcL1wqKC58XG4pKj9cKlwvL3ksCisgIG90aGVyOiAvW15cdFxuXHIgMC05QS1a
YS16XS95LAogfTsKIAogY29uc3QgdHlwZU5hbWVLZXl3b3JkcyA9IFsKQEAgLTI4OSwxNCArMTg4
LDEwIEBAIGNvbnN0IHR5cGVOYW1lS2V5d29yZHMgPSBbCiAgICJGbG9hdDY0QXJyYXkiLAogICAi
YW55IiwKICAgIm9iamVjdCIsCi0gICJzeW1ib2wiCisgICJzeW1ib2wiLAogXTsKIAotY29uc3Qg
c3RyaW5nVHlwZXMgPSBbCi0gICJCeXRlU3RyaW5nIiwKLSAgIkRPTVN0cmluZyIsCi0gICJVU1ZT
dHJpbmciCi1dOworY29uc3Qgc3RyaW5nVHlwZXMgPSBbIkJ5dGVTdHJpbmciLCAiRE9NU3RyaW5n
IiwgIlVTVlN0cmluZyJdOwogCiBjb25zdCBhcmd1bWVudE5hbWVLZXl3b3JkcyA9IFsKICAgImFz
eW5jIiwKQEAgLTMyMSw3ICsyMTYsNyBAQCBjb25zdCBhcmd1bWVudE5hbWVLZXl3b3JkcyA9IFsK
ICAgInN0YXRpYyIsCiAgICJzdHJpbmdpZmllciIsCiAgICJ0eXBlZGVmIiwKLSAgInVucmVzdHJp
Y3RlZCIKKyAgInVucmVzdHJpY3RlZCIsCiBdOwogCiBjb25zdCBub25SZWdleFRlcm1pbmFscyA9
IFsKQEAgLTMyOSw3ICsyMjQsOSBAQCBjb25zdCBub25SZWdleFRlcm1pbmFscyA9IFsKICAgIkZy
b3plbkFycmF5IiwKICAgIkluZmluaXR5IiwKICAgIk5hTiIsCisgICJPYnNlcnZhYmxlQXJyYXki
LAogICAiUHJvbWlzZSIsCisgICJiaWdpbnQiLAogICAiYm9vbGVhbiIsCiAgICJieXRlIiwKICAg
ImRvdWJsZSIsCkBAIC0zNDYsOCArMjQzLDkgQEAgY29uc3Qgbm9uUmVnZXhUZXJtaW5hbHMgPSBb
CiAgICJzZXF1ZW5jZSIsCiAgICJzaG9ydCIsCiAgICJ0cnVlIiwKKyAgInVuZGVmaW5lZCIsCiAg
ICJ1bnNpZ25lZCIsCi0gICJ2b2lkIgorICAidm9pZCIsCiBdLmNvbmNhdChhcmd1bWVudE5hbWVL
ZXl3b3Jkcywgc3RyaW5nVHlwZXMsIHR5cGVOYW1lS2V5d29yZHMpOwogCiBjb25zdCBwdW5jdHVh
dGlvbnMgPSBbCkBAIC0zNjQsNyArMjYyLDcgQEAgY29uc3QgcHVuY3R1YXRpb25zID0gWwogICAi
WyIsCiAgICJdIiwKICAgInsiLAotICAifSIKKyAgIn0iLAogXTsKIAogY29uc3QgcmVzZXJ2ZWQg
PSBbCkBAIC0zOTAsNyArMjg4LDcgQEAgZnVuY3Rpb24gdG9rZW5pc2Uoc3RyKSB7CiAKICAgICBp
ZiAoL1tcdFxuXHIgXS8udGVzdChuZXh0Q2hhcikpIHsKICAgICAgIHJlc3VsdCA9IGF0dGVtcHRU
b2tlbk1hdGNoKCJ3aGl0ZXNwYWNlIiwgeyBub0ZsdXNoVHJpdmlhOiB0cnVlIH0pOwotICAgIH0g
ZWxzZSBpZiAobmV4dENoYXIgPT09ICcvJykgeworICAgIH0gZWxzZSBpZiAobmV4dENoYXIgPT09
ICIvIikgewogICAgICAgcmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2goImNvbW1lbnQiLCB7IG5v
Rmx1c2hUcml2aWE6IHRydWUgfSk7CiAgICAgfQogCkBAIC00MTAsMTAgKzMwOCwxNCBAQCBmdW5j
dGlvbiB0b2tlbmlzZShzdHIpIHsKICAgICAgICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbbGFzdElu
ZGV4XTsKICAgICAgICAgaWYgKHJlc3VsdCAhPT0gLTEpIHsKICAgICAgICAgICBpZiAocmVzZXJ2
ZWQuaW5jbHVkZXModG9rZW4udmFsdWUpKSB7Ci0gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0g
YCR7T2JqZWN0KF9wcm9kdWN0aW9uc19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8xX19bInVuZXNjYXBlIl0pKHRva2VuLnZhbHVlKX0gaXMgYSByZXNlcnZlZCBpZGVudGlmaWVy
IGFuZCBtdXN0IG5vdCBiZSB1c2VkLmA7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgV2ViSURMUGFy
c2VFcnJvcihPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bInN5
bnRheEVycm9yIl0pKHRva2VucywgbGFzdEluZGV4LCBudWxsLCBtZXNzYWdlKSk7CisgICAgICAg
ICAgICBjb25zdCBtZXNzYWdlID0gYCR7KDAsX3Byb2R1Y3Rpb25zX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfXy51bmVzY2FwZSkoCisgICAgICAgICAgICAgIHRva2VuLnZh
bHVlCisgICAgICAgICAgICApfSBpcyBhIHJlc2VydmVkIGlkZW50aWZpZXIgYW5kIG11c3Qgbm90
IGJlIHVzZWQuYDsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJJRExQYXJzZUVycm9yKAorICAg
ICAgICAgICAgICAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5zeW50
YXhFcnJvcikodG9rZW5zLCBsYXN0SW5kZXgsIG51bGwsIG1lc3NhZ2UpCisgICAgICAgICAgICAp
OwogICAgICAgICAgIH0gZWxzZSBpZiAobm9uUmVnZXhUZXJtaW5hbHMuaW5jbHVkZXModG9rZW4u
dmFsdWUpKSB7Ci0gICAgICAgICAgICB0b2tlbi50eXBlID0gdG9rZW4udmFsdWU7CisgICAgICAg
ICAgICB0b2tlbi50eXBlID0gImlubGluZSI7CiAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
ICB9CkBAIC00MjMsNyArMzI1LDEzIEBAIGZ1bmN0aW9uIHRva2VuaXNlKHN0cikgewogCiAgICAg
Zm9yIChjb25zdCBwdW5jdHVhdGlvbiBvZiBwdW5jdHVhdGlvbnMpIHsKICAgICAgIGlmIChzdHIu
c3RhcnRzV2l0aChwdW5jdHVhdGlvbiwgbGFzdENoYXJJbmRleCkpIHsKLSAgICAgICAgdG9rZW5z
LnB1c2goeyB0eXBlOiBwdW5jdHVhdGlvbiwgdmFsdWU6IHB1bmN0dWF0aW9uLCB0cml2aWEsIGxp
bmUsIGluZGV4IH0pOworICAgICAgICB0b2tlbnMucHVzaCh7CisgICAgICAgICAgdHlwZTogImlu
bGluZSIsCisgICAgICAgICAgdmFsdWU6IHB1bmN0dWF0aW9uLAorICAgICAgICAgIHRyaXZpYSwK
KyAgICAgICAgICBsaW5lLAorICAgICAgICAgIGluZGV4LAorICAgICAgICB9KTsKICAgICAgICAg
dHJpdmlhID0gIiI7CiAgICAgICAgIGxhc3RDaGFySW5kZXggKz0gcHVuY3R1YXRpb24ubGVuZ3Ro
OwogICAgICAgICByZXN1bHQgPSBsYXN0Q2hhckluZGV4OwpAQCAtNDQ2LDcgKzM1NCw3IEBAIGZ1
bmN0aW9uIHRva2VuaXNlKHN0cikgewogICB0b2tlbnMucHVzaCh7CiAgICAgdHlwZTogImVvZiIs
CiAgICAgdmFsdWU6ICIiLAotICAgIHRyaXZpYQorICAgIHRyaXZpYSwKICAgfSk7CiAKICAgcmV0
dXJuIHRva2VuczsKQEAgLTQ4NSwyOCArMzkzLDU1IEBAIGNsYXNzIFRva2VuaXNlciB7CiAgICAq
IEByZXR1cm4ge25ldmVyfQogICAgKi8KICAgZXJyb3IobWVzc2FnZSkgewotICAgIHRocm93IG5l
dyBXZWJJRExQYXJzZUVycm9yKE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfX1sic3ludGF4RXJyb3IiXSkodGhpcy5zb3VyY2UsIHRoaXMucG9zaXRpb24sIHRoaXMu
Y3VycmVudCwgbWVzc2FnZSkpOworICAgIHRocm93IG5ldyBXZWJJRExQYXJzZUVycm9yKAorICAg
ICAgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uc3ludGF4RXJyb3Ip
KHRoaXMuc291cmNlLCB0aGlzLnBvc2l0aW9uLCB0aGlzLmN1cnJlbnQsIG1lc3NhZ2UpCisgICAg
KTsKICAgfQogCiAgIC8qKgogICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZQogICAgKi8KLSAgcHJv
YmUodHlwZSkgewotICAgIHJldHVybiB0aGlzLnNvdXJjZS5sZW5ndGggPiB0aGlzLnBvc2l0aW9u
ICYmIHRoaXMuc291cmNlW3RoaXMucG9zaXRpb25dLnR5cGUgPT09IHR5cGU7CisgIHByb2JlVHlw
ZSh0eXBlKSB7CisgICAgcmV0dXJuICgKKyAgICAgIHRoaXMuc291cmNlLmxlbmd0aCA+IHRoaXMu
cG9zaXRpb24gJiYKKyAgICAgIHRoaXMuc291cmNlW3RoaXMucG9zaXRpb25dLnR5cGUgPT09IHR5
cGUKKyAgICApOworICB9CisKKyAgLyoqCisgICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZQorICAg
Ki8KKyAgcHJvYmUodmFsdWUpIHsKKyAgICByZXR1cm4gKAorICAgICAgdGhpcy5wcm9iZVR5cGUo
ImlubGluZSIpICYmIHRoaXMuc291cmNlW3RoaXMucG9zaXRpb25dLnZhbHVlID09PSB2YWx1ZQor
ICAgICk7CiAgIH0KIAogICAvKioKICAgICogQHBhcmFtICB7Li4uc3RyaW5nfSBjYW5kaWRhdGVz
CiAgICAqLwotICBjb25zdW1lKC4uLmNhbmRpZGF0ZXMpIHsKKyAgY29uc3VtZVR5cGUoLi4uY2Fu
ZGlkYXRlcykgewogICAgIGZvciAoY29uc3QgdHlwZSBvZiBjYW5kaWRhdGVzKSB7Ci0gICAgICBp
ZiAoIXRoaXMucHJvYmUodHlwZSkpIGNvbnRpbnVlOworICAgICAgaWYgKCF0aGlzLnByb2JlVHlw
ZSh0eXBlKSkgY29udGludWU7CiAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuc291cmNlW3RoaXMu
cG9zaXRpb25dOwogICAgICAgdGhpcy5wb3NpdGlvbisrOwogICAgICAgcmV0dXJuIHRva2VuOwog
ICAgIH0KICAgfQogCisgIC8qKgorICAgKiBAcGFyYW0gIHsuLi5zdHJpbmd9IGNhbmRpZGF0ZXMK
KyAgICovCisgIGNvbnN1bWUoLi4uY2FuZGlkYXRlcykgeworICAgIGlmICghdGhpcy5wcm9iZVR5
cGUoImlubGluZSIpKSByZXR1cm47CisgICAgY29uc3QgdG9rZW4gPSB0aGlzLnNvdXJjZVt0aGlz
LnBvc2l0aW9uXTsKKyAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGNhbmRpZGF0ZXMpIHsKKyAgICAg
IGlmICh0b2tlbi52YWx1ZSAhPT0gdmFsdWUpIGNvbnRpbnVlOworICAgICAgdGhpcy5wb3NpdGlv
bisrOworICAgICAgcmV0dXJuIHRva2VuOworICAgIH0KKyAgfQorCiAgIC8qKgogICAgKiBAcGFy
YW0ge251bWJlcn0gcG9zaXRpb24KICAgICovCkBAIC01MjYsNyArNDYxLDE1IEBAIGNsYXNzIFdl
YklETFBhcnNlRXJyb3IgZXh0ZW5kcyBFcnJvciB7CiAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRp
b25zLmlucHV0CiAgICAqIEBwYXJhbSB7KltdfSBvcHRpb25zLnRva2VucwogICAgKi8KLSAgY29u
c3RydWN0b3IoeyBtZXNzYWdlLCBiYXJlTWVzc2FnZSwgY29udGV4dCwgbGluZSwgc291cmNlTmFt
ZSwgaW5wdXQsIHRva2VucyB9KSB7CisgIGNvbnN0cnVjdG9yKHsKKyAgICBtZXNzYWdlLAorICAg
IGJhcmVNZXNzYWdlLAorICAgIGNvbnRleHQsCisgICAgbGluZSwKKyAgICBzb3VyY2VOYW1lLAor
ICAgIGlucHV0LAorICAgIHRva2VucywKKyAgfSkgewogICAgIHN1cGVyKG1lc3NhZ2UpOwogCiAg
ICAgdGhpcy5uYW1lID0gIldlYklETFBhcnNlRXJyb3IiOyAvLyBub3QgdG8gYmUgbWFuZ2xlZApA
QCAtNTQyLDEyICs0ODUsMTMgQEAgY2xhc3MgV2ViSURMUGFyc2VFcnJvciBleHRlbmRzIEVycm9y
IHsKIAogLyoqKi8gfSksCiAvKiAzICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBh
Y2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dl
YnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tf
cmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihf
X3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dl
YnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInN5bnRheEVycm9yIiwgZnVu
Y3Rpb24oKSB7IHJldHVybiBzeW50YXhFcnJvcjsgfSk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmlu
ZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ2YWxp
ZGF0aW9uRXJyb3IiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHZhbGlkYXRpb25FcnJvcjsgfSk7Cisv
KiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9y
dHNfXywgeworLyogaGFybW9ueSBleHBvcnQgKi8gICAic3ludGF4RXJyb3IiOiAoKSA9PiAoLyog
YmluZGluZyAqLyBzeW50YXhFcnJvciksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJ2YWxpZGF0
aW9uRXJyb3IiOiAoKSA9PiAoLyogYmluZGluZyAqLyB2YWxpZGF0aW9uRXJyb3IpCisvKiBoYXJt
b255IGV4cG9ydCAqLyB9KTsKIC8qKgogICogQHBhcmFtIHtzdHJpbmd9IHRleHQKICAqLwpAQCAt
NTU2LDYgKzUwMCwyNCBAQCBmdW5jdGlvbiBsYXN0TGluZSh0ZXh0KSB7CiAgIHJldHVybiBzcGxp
dHRlZFtzcGxpdHRlZC5sZW5ndGggLSAxXTsKIH0KIAorZnVuY3Rpb24gYXBwZW5kSWZFeGlzdChi
YXNlLCB0YXJnZXQpIHsKKyAgbGV0IHJlc3VsdCA9IGJhc2U7CisgIGlmICh0YXJnZXQpIHsKKyAg
ICByZXN1bHQgKz0gYCAke3RhcmdldH1gOworICB9CisgIHJldHVybiByZXN1bHQ7Cit9CisKK2Z1
bmN0aW9uIGNvbnRleHRBc1RleHQobm9kZSkgeworICBjb25zdCBoaWVyYXJjaHkgPSBbbm9kZV07
CisgIHdoaWxlIChub2RlICYmIG5vZGUucGFyZW50KSB7CisgICAgY29uc3QgeyBwYXJlbnQgfSA9
IG5vZGU7CisgICAgaGllcmFyY2h5LnVuc2hpZnQocGFyZW50KTsKKyAgICBub2RlID0gcGFyZW50
OworICB9CisgIHJldHVybiBoaWVyYXJjaHkubWFwKChuKSA9PiBhcHBlbmRJZkV4aXN0KG4udHlw
ZSwgbi5uYW1lKSkuam9pbigiIC0+ICIpOworfQorCiAvKioKICAqIEB0eXBlZGVmIHtvYmplY3R9
IFdlYklETDJFcnJvck9wdGlvbnMKICAqIEBwcm9wZXJ0eSB7ImVycm9yIiB8ICJ3YXJuaW5nIn0g
W2xldmVsXQpAQCAtNTY1LDE4ICs1MjcsMjUgQEAgZnVuY3Rpb24gbGFzdExpbmUodGV4dCkgewog
ICogQHBhcmFtIHsiU3ludGF4IiB8ICJWYWxpZGF0aW9uIn0ga2luZCBlcnJvciB0eXBlCiAgKiBA
cGFyYW0ge1dlYklETDJFcnJvck9wdGlvbnN9IFtvcHRpb25zXQogICovCi1mdW5jdGlvbiBlcnJv
cihzb3VyY2UsIHBvc2l0aW9uLCBjdXJyZW50LCBtZXNzYWdlLCBraW5kLCB7IGxldmVsID0gImVy
cm9yIiwgYXV0b2ZpeCwgcnVsZU5hbWUgfSA9IHt9KSB7CitmdW5jdGlvbiBlcnJvcigKKyAgc291
cmNlLAorICBwb3NpdGlvbiwKKyAgY3VycmVudCwKKyAgbWVzc2FnZSwKKyAga2luZCwKKyAgeyBs
ZXZlbCA9ICJlcnJvciIsIGF1dG9maXgsIHJ1bGVOYW1lIH0gPSB7fQorKSB7CiAgIC8qKgogICAg
KiBAcGFyYW0ge251bWJlcn0gY291bnQKICAgICovCiAgIGZ1bmN0aW9uIHNsaWNlVG9rZW5zKGNv
dW50KSB7Ci0gICAgcmV0dXJuIGNvdW50ID4gMCA/Ci0gICAgICBzb3VyY2Uuc2xpY2UocG9zaXRp
b24sIHBvc2l0aW9uICsgY291bnQpIDoKLSAgICAgIHNvdXJjZS5zbGljZShNYXRoLm1heChwb3Np
dGlvbiArIGNvdW50LCAwKSwgcG9zaXRpb24pOworICAgIHJldHVybiBjb3VudCA+IDAKKyAgICAg
ID8gc291cmNlLnNsaWNlKHBvc2l0aW9uLCBwb3NpdGlvbiArIGNvdW50KQorICAgICAgOiBzb3Vy
Y2Uuc2xpY2UoTWF0aC5tYXgocG9zaXRpb24gKyBjb3VudCwgMCksIHBvc2l0aW9uKTsKICAgfQog
CiAgIGZ1bmN0aW9uIHRva2Vuc1RvVGV4dChpbnB1dHMsIHsgcHJlY2VkZXMgfSA9IHt9KSB7Ci0g
ICAgY29uc3QgdGV4dCA9IGlucHV0cy5tYXAodCA9PiB0LnRyaXZpYSArIHQudmFsdWUpLmpvaW4o
IiIpOworICAgIGNvbnN0IHRleHQgPSBpbnB1dHMubWFwKCh0KSA9PiB0LnRyaXZpYSArIHQudmFs
dWUpLmpvaW4oIiIpOwogICAgIGNvbnN0IG5leHRUb2tlbiA9IHNvdXJjZVtwb3NpdGlvbl07CiAg
ICAgaWYgKG5leHRUb2tlbi50eXBlID09PSAiZW9mIikgewogICAgICAgcmV0dXJuIHRleHQ7CkBA
IC01ODksOSArNTU4LDExIEBAIGZ1bmN0aW9uIGVycm9yKHNvdXJjZSwgcG9zaXRpb24sIGN1cnJl
bnQsIG1lc3NhZ2UsIGtpbmQsIHsgbGV2ZWwgPSAiZXJyb3IiLCBhdXRvCiAKICAgY29uc3QgbWF4
VG9rZW5zID0gNTsgLy8gYXJiaXRyYXJ5IGJ1dCB3b3JrcyB3ZWxsIGVub3VnaAogICBjb25zdCBs
aW5lID0KLSAgICBzb3VyY2VbcG9zaXRpb25dLnR5cGUgIT09ICJlb2YiID8gc291cmNlW3Bvc2l0
aW9uXS5saW5lIDoKLSAgICBzb3VyY2UubGVuZ3RoID4gMSA/IHNvdXJjZVtwb3NpdGlvbiAtIDFd
LmxpbmUgOgotICAgIDE7CisgICAgc291cmNlW3Bvc2l0aW9uXS50eXBlICE9PSAiZW9mIgorICAg
ICAgPyBzb3VyY2VbcG9zaXRpb25dLmxpbmUKKyAgICAgIDogc291cmNlLmxlbmd0aCA+IDEKKyAg
ICAgID8gc291cmNlW3Bvc2l0aW9uIC0gMV0ubGluZQorICAgICAgOiAxOwogCiAgIGNvbnN0IHBy
ZWNlZGluZ0xhc3RMaW5lID0gbGFzdExpbmUoCiAgICAgdG9rZW5zVG9UZXh0KHNsaWNlVG9rZW5z
KC1tYXhUb2tlbnMpLCB7IHByZWNlZGVzOiB0cnVlIH0pCkBAIC02MDYsNyArNTc3LDEyIEBAIGZ1
bmN0aW9uIGVycm9yKHNvdXJjZSwgcG9zaXRpb24sIGN1cnJlbnQsIG1lc3NhZ2UsIGtpbmQsIHsg
bGV2ZWwgPSAiZXJyb3IiLCBhdXRvCiAKICAgY29uc3QgY29udGV4dFR5cGUgPSBraW5kID09PSAi
U3ludGF4IiA/ICJzaW5jZSIgOiAiaW5zaWRlIjsKICAgY29uc3QgaW5Tb3VyY2VOYW1lID0gc291
cmNlLm5hbWUgPyBgIGluICR7c291cmNlLm5hbWV9YCA6ICIiOwotICBjb25zdCBncmFtbWF0aWNh
bENvbnRleHQgPSAoY3VycmVudCAmJiBjdXJyZW50Lm5hbWUpID8gYCwgJHtjb250ZXh0VHlwZX0g
XGAke2N1cnJlbnQucGFydGlhbCA/ICJwYXJ0aWFsICIgOiAiIn0ke2N1cnJlbnQudHlwZX0gJHtj
dXJyZW50Lm5hbWV9XGBgIDogIiI7CisgIGNvbnN0IGdyYW1tYXRpY2FsQ29udGV4dCA9CisgICAg
Y3VycmVudCAmJiBjdXJyZW50Lm5hbWUKKyAgICAgID8gYCwgJHtjb250ZXh0VHlwZX0gXGAke2N1
cnJlbnQucGFydGlhbCA/ICJwYXJ0aWFsICIgOiAiIn0ke2NvbnRleHRBc1RleHQoCisgICAgICAg
ICAgY3VycmVudAorICAgICAgICApfVxgYAorICAgICAgOiAiIjsKICAgY29uc3QgY29udGV4dCA9
IGAke2tpbmR9IGVycm9yIGF0IGxpbmUgJHtsaW5lfSR7aW5Tb3VyY2VOYW1lfSR7Z3JhbW1hdGlj
YWxDb250ZXh0fTpcbiR7c291cmNlQ29udGV4dH1gOwogICByZXR1cm4gewogICAgIG1lc3NhZ2U6
IGAke2NvbnRleHR9ICR7bWVzc2FnZX1gLApAQCAtNjE4LDcgKzU5NCw3IEBAIGZ1bmN0aW9uIGVy
cm9yKHNvdXJjZSwgcG9zaXRpb24sIGN1cnJlbnQsIG1lc3NhZ2UsIGtpbmQsIHsgbGV2ZWwgPSAi
ZXJyb3IiLCBhdXRvCiAgICAgcnVsZU5hbWUsCiAgICAgYXV0b2ZpeCwKICAgICBpbnB1dDogc3Vi
c2VxdWVudFRleHQsCi0gICAgdG9rZW5zOiBzdWJzZXF1ZW50VG9rZW5zCisgICAgdG9rZW5zOiBz
dWJzZXF1ZW50VG9rZW5zLAogICB9OwogfQogCkBAIC02MzMsMzMgKzYwOSw0NyBAQCBmdW5jdGlv
biBzeW50YXhFcnJvcihzb3VyY2UsIHBvc2l0aW9uLCBjdXJyZW50LCBtZXNzYWdlKSB7CiAgKiBA
cGFyYW0ge3N0cmluZ30gbWVzc2FnZSBlcnJvciBtZXNzYWdlCiAgKiBAcGFyYW0ge1dlYklETDJF
cnJvck9wdGlvbnN9IFtvcHRpb25zXQogICovCi1mdW5jdGlvbiB2YWxpZGF0aW9uRXJyb3IodG9r
ZW4sIGN1cnJlbnQsIHJ1bGVOYW1lLCBtZXNzYWdlLCBvcHRpb25zID0ge30pIHsKK2Z1bmN0aW9u
IHZhbGlkYXRpb25FcnJvcigKKyAgdG9rZW4sCisgIGN1cnJlbnQsCisgIHJ1bGVOYW1lLAorICBt
ZXNzYWdlLAorICBvcHRpb25zID0ge30KKykgewogICBvcHRpb25zLnJ1bGVOYW1lID0gcnVsZU5h
bWU7Ci0gIHJldHVybiBlcnJvcihjdXJyZW50LnNvdXJjZSwgdG9rZW4uaW5kZXgsIGN1cnJlbnQs
IG1lc3NhZ2UsICJWYWxpZGF0aW9uIiwgb3B0aW9ucyk7CisgIHJldHVybiBlcnJvcigKKyAgICBj
dXJyZW50LnNvdXJjZSwKKyAgICB0b2tlbi5pbmRleCwKKyAgICBjdXJyZW50LAorICAgIG1lc3Nh
Z2UsCisgICAgIlZhbGlkYXRpb24iLAorICAgIG9wdGlvbnMKKyAgKTsKIH0KIAogCiAvKioqLyB9
KSwKIC8qIDQgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18s
IF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBh
Y2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+
IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBv
cnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJl
X18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAidW5lc2NhcGUiLCBmdW5jdGlvbigpIHsgcmV0dXJu
IHVuZXNjYXBlOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tf
cmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImxpc3QiLCBmdW5jdGlvbigpIHsgcmV0
dXJuIGxpc3Q7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19y
ZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiY29uc3RfdmFsdWUiLCBmdW5jdGlvbigp
IHsgcmV0dXJuIGNvbnN0X3ZhbHVlOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAq
LyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImNvbnN0X2RhdGEi
LCBmdW5jdGlvbigpIHsgcmV0dXJuIGNvbnN0X2RhdGE7IH0pOwotLyogaGFybW9ueSBleHBvcnQg
KGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAi
cHJpbWl0aXZlX3R5cGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHByaW1pdGl2ZV90eXBlOyB9KTsK
LS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193
ZWJwYWNrX2V4cG9ydHNfXywgImFyZ3VtZW50X2xpc3QiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGFy
Z3VtZW50X2xpc3Q7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFj
a19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAidHlwZV93aXRoX2V4dGVuZGVkX2F0
dHJpYnV0ZXMiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1
dGVzOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWly
ZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInJldHVybl90eXBlIiwgZnVuY3Rpb24oKSB7IHJl
dHVybiByZXR1cm5fdHlwZTsgfSk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193
ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJzdHJpbmdpZmllciIsIGZ1
bmN0aW9uKCkgeyByZXR1cm4gc3RyaW5naWZpZXI7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJp
bmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiZ2V0
TGFzdEluZGVudGF0aW9uIiwgZnVuY3Rpb24oKSB7IHJldHVybiBnZXRMYXN0SW5kZW50YXRpb247
IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18u
ZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiZ2V0TWVtYmVySW5kZW50YXRpb24iLCBmdW5jdGlvbigp
IHsgcmV0dXJuIGdldE1lbWJlckluZGVudGF0aW9uOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChi
aW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImF1
dG9maXhBZGRFeHBvc2VkV2luZG93IiwgZnVuY3Rpb24oKSB7IHJldHVybiBhdXRvZml4QWRkRXhw
b3NlZFdpbmRvdzsgfSk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNr
X3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJnZXRGaXJzdFRva2VuIiwgZnVuY3Rp
b24oKSB7IHJldHVybiBnZXRGaXJzdFRva2VuOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5k
aW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImZpbmRM
YXN0SW5kZXgiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGZpbmRMYXN0SW5kZXg7IH0pOwotLyogaGFy
bW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tf
ZXhwb3J0c19fLCAiYXV0b1BhcmVudGVyIiwgZnVuY3Rpb24oKSB7IHJldHVybiBhdXRvUGFyZW50
ZXI7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2Vi
cGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgInVuZXNjYXBlIjogKCkg
PT4gKC8qIGJpbmRpbmcgKi8gdW5lc2NhcGUpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAibGlz
dCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGxpc3QpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAi
Y29uc3RfdmFsdWUiOiAoKSA9PiAoLyogYmluZGluZyAqLyBjb25zdF92YWx1ZSksCisvKiBoYXJt
b255IGV4cG9ydCAqLyAgICJjb25zdF9kYXRhIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gY29uc3Rf
ZGF0YSksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJwcmltaXRpdmVfdHlwZSI6ICgpID0+ICgv
KiBiaW5kaW5nICovIHByaW1pdGl2ZV90eXBlKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgImFy
Z3VtZW50X2xpc3QiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhcmd1bWVudF9saXN0KSwKKy8qIGhh
cm1vbnkgZXhwb3J0ICovICAgInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIjogKCkgPT4g
KC8qIGJpbmRpbmcgKi8gdHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMpLAorLyogaGFybW9u
eSBleHBvcnQgKi8gICAicmV0dXJuX3R5cGUiOiAoKSA9PiAoLyogYmluZGluZyAqLyByZXR1cm5f
dHlwZSksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJzdHJpbmdpZmllciI6ICgpID0+ICgvKiBi
aW5kaW5nICovIHN0cmluZ2lmaWVyKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgImdldExhc3RJ
bmRlbnRhdGlvbiI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldExhc3RJbmRlbnRhdGlvbiksCisv
KiBoYXJtb255IGV4cG9ydCAqLyAgICJnZXRNZW1iZXJJbmRlbnRhdGlvbiI6ICgpID0+ICgvKiBi
aW5kaW5nICovIGdldE1lbWJlckluZGVudGF0aW9uKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAg
ImF1dG9maXhBZGRFeHBvc2VkV2luZG93IjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYXV0b2ZpeEFk
ZEV4cG9zZWRXaW5kb3cpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAiZ2V0Rmlyc3RUb2tlbiI6
ICgpID0+ICgvKiBiaW5kaW5nICovIGdldEZpcnN0VG9rZW4pLAorLyogaGFybW9ueSBleHBvcnQg
Ki8gICAiZmluZExhc3RJbmRleCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGZpbmRMYXN0SW5kZXgp
LAorLyogaGFybW9ueSBleHBvcnQgKi8gICAiYXV0b1BhcmVudGVyIjogKCkgPT4gKC8qIGJpbmRp
bmcgKi8gYXV0b1BhcmVudGVyKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255
IGltcG9ydCAqLyB2YXIgX3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9f
d2VicGFja19yZXF1aXJlX18oNSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FyZ3VtZW50
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEx
KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4KTsKQEAgLTY3
Nyw3ICs2NjcsNyBAQCBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7
CiAgKiBAcGFyYW0ge3N0cmluZ30gaWRlbnRpZmllcgogICovCiBmdW5jdGlvbiB1bmVzY2FwZShp
ZGVudGlmaWVyKSB7Ci0gIHJldHVybiBpZGVudGlmaWVyLnN0YXJ0c1dpdGgoJ18nKSA/IGlkZW50
aWZpZXIuc2xpY2UoMSkgOiBpZGVudGlmaWVyOworICByZXR1cm4gaWRlbnRpZmllci5zdGFydHNX
aXRoKCJfIikgPyBpZGVudGlmaWVyLnNsaWNlKDEpIDogaWRlbnRpZmllcjsKIH0KIAogLyoqCkBA
IC03MTQsNyArNzA0LDEwIEBAIGZ1bmN0aW9uIGxpc3QodG9rZW5pc2VyLCB7IHBhcnNlciwgYWxs
b3dEYW5nbGVyLCBsaXN0TmFtZSA9ICJsaXN0IiB9KSB7CiAgKiBAcGFyYW0ge2ltcG9ydCgiLi4v
dG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAqLwogZnVuY3Rpb24gY29uc3RfdmFs
dWUodG9rZW5pc2VyKSB7Ci0gIHJldHVybiB0b2tlbmlzZXIuY29uc3VtZSgidHJ1ZSIsICJmYWxz
ZSIsICJJbmZpbml0eSIsICItSW5maW5pdHkiLCAiTmFOIiwgImRlY2ltYWwiLCAiaW50ZWdlciIp
OworICByZXR1cm4gKAorICAgIHRva2VuaXNlci5jb25zdW1lVHlwZSgiZGVjaW1hbCIsICJpbnRl
Z2VyIikgfHwKKyAgICB0b2tlbmlzZXIuY29uc3VtZSgidHJ1ZSIsICJmYWxzZSIsICJJbmZpbml0
eSIsICItSW5maW5pdHkiLCAiTmFOIikKKyAgKTsKIH0KIAogLyoqCkBAIC03MjQsMjMgKzcxNywy
NiBAQCBmdW5jdGlvbiBjb25zdF92YWx1ZSh0b2tlbmlzZXIpIHsKICAqLwogZnVuY3Rpb24gY29u
c3RfZGF0YSh7IHR5cGUsIHZhbHVlIH0pIHsKICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSAi
ZGVjaW1hbCI6CisgICAgY2FzZSAiaW50ZWdlciI6CisgICAgICByZXR1cm4geyB0eXBlOiAibnVt
YmVyIiwgdmFsdWUgfTsKKyAgICBjYXNlICJzdHJpbmciOgorICAgICAgcmV0dXJuIHsgdHlwZTog
InN0cmluZyIsIHZhbHVlOiB2YWx1ZS5zbGljZSgxLCAtMSkgfTsKKyAgfQorCisgIHN3aXRjaCAo
dmFsdWUpIHsKICAgICBjYXNlICJ0cnVlIjoKICAgICBjYXNlICJmYWxzZSI6Ci0gICAgICByZXR1
cm4geyB0eXBlOiAiYm9vbGVhbiIsIHZhbHVlOiB0eXBlID09PSAidHJ1ZSIgfTsKKyAgICAgIHJl
dHVybiB7IHR5cGU6ICJib29sZWFuIiwgdmFsdWU6IHZhbHVlID09PSAidHJ1ZSIgfTsKICAgICBj
YXNlICJJbmZpbml0eSI6CiAgICAgY2FzZSAiLUluZmluaXR5IjoKLSAgICAgIHJldHVybiB7IHR5
cGU6ICJJbmZpbml0eSIsIG5lZ2F0aXZlOiB0eXBlLnN0YXJ0c1dpdGgoIi0iKSB9OworICAgICAg
cmV0dXJuIHsgdHlwZTogIkluZmluaXR5IiwgbmVnYXRpdmU6IHZhbHVlLnN0YXJ0c1dpdGgoIi0i
KSB9OwogICAgIGNhc2UgIlsiOgogICAgICAgcmV0dXJuIHsgdHlwZTogInNlcXVlbmNlIiwgdmFs
dWU6IFtdIH07CiAgICAgY2FzZSAieyI6CiAgICAgICByZXR1cm4geyB0eXBlOiAiZGljdGlvbmFy
eSIgfTsKLSAgICBjYXNlICJkZWNpbWFsIjoKLSAgICBjYXNlICJpbnRlZ2VyIjoKLSAgICAgIHJl
dHVybiB7IHR5cGU6ICJudW1iZXIiLCB2YWx1ZSB9OwotICAgIGNhc2UgInN0cmluZyI6Ci0gICAg
ICByZXR1cm4geyB0eXBlOiAic3RyaW5nIiwgdmFsdWU6IHZhbHVlLnNsaWNlKDEsIC0xKSB9Owog
ICAgIGRlZmF1bHQ6Ci0gICAgICByZXR1cm4geyB0eXBlIH07CisgICAgICByZXR1cm4geyB0eXBl
OiB2YWx1ZSB9OwogICB9CiB9CiAKQEAgLTc1Myw3ICs3NDksNyBAQCBmdW5jdGlvbiBwcmltaXRp
dmVfdHlwZSh0b2tlbmlzZXIpIHsKICAgICBjb25zdCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUo
InNob3J0IiwgImxvbmciKTsKICAgICBpZiAoYmFzZSkgewogICAgICAgY29uc3QgcG9zdGZpeCA9
IHRva2VuaXNlci5jb25zdW1lKCJsb25nIik7Ci0gICAgICByZXR1cm4gbmV3IF90eXBlX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIlR5cGUiXSh7IHNvdXJjZSwgdG9rZW5zOiB7IHBy
ZWZpeCwgYmFzZSwgcG9zdGZpeCB9IH0pOworICAgICAgcmV0dXJuIG5ldyBfdHlwZV9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlR5cGUoeyBzb3VyY2UsIHRva2VuczogeyBwcmVmaXgs
IGJhc2UsIHBvc3RmaXggfSB9KTsKICAgICB9CiAgICAgaWYgKHByZWZpeCkgdG9rZW5pc2VyLmVy
cm9yKCJGYWlsZWQgdG8gcGFyc2UgaW50ZWdlciB0eXBlIik7CiAgIH0KQEAgLTc2Miw3ICs3NTgs
NyBAQCBmdW5jdGlvbiBwcmltaXRpdmVfdHlwZSh0b2tlbmlzZXIpIHsKICAgICBjb25zdCBwcmVm
aXggPSB0b2tlbmlzZXIuY29uc3VtZSgidW5yZXN0cmljdGVkIik7CiAgICAgY29uc3QgYmFzZSA9
IHRva2VuaXNlci5jb25zdW1lKCJmbG9hdCIsICJkb3VibGUiKTsKICAgICBpZiAoYmFzZSkgewot
ICAgICAgcmV0dXJuIG5ldyBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJU
eXBlIl0oeyBzb3VyY2UsIHRva2VuczogeyBwcmVmaXgsIGJhc2UgfSB9KTsKKyAgICAgIHJldHVy
biBuZXcgX3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5UeXBlKHsgc291cmNl
LCB0b2tlbnM6IHsgcHJlZml4LCBiYXNlIH0gfSk7CiAgICAgfQogICAgIGlmIChwcmVmaXgpIHRv
a2VuaXNlci5lcnJvcigiRmFpbGVkIHRvIHBhcnNlIGZsb2F0IHR5cGUiKTsKICAgfQpAQCAtNzcw
LDkgKzc2NiwxNSBAQCBmdW5jdGlvbiBwcmltaXRpdmVfdHlwZSh0b2tlbmlzZXIpIHsKICAgY29u
c3QgeyBzb3VyY2UgfSA9IHRva2VuaXNlcjsKICAgY29uc3QgbnVtX3R5cGUgPSBpbnRlZ2VyX3R5
cGUodG9rZW5pc2VyKSB8fCBkZWNpbWFsX3R5cGUodG9rZW5pc2VyKTsKICAgaWYgKG51bV90eXBl
KSByZXR1cm4gbnVtX3R5cGU7Ci0gIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiYm9v
bGVhbiIsICJieXRlIiwgIm9jdGV0Iik7CisgIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIuY29uc3Vt
ZSgKKyAgICAiYmlnaW50IiwKKyAgICAiYm9vbGVhbiIsCisgICAgImJ5dGUiLAorICAgICJvY3Rl
dCIsCisgICAgInVuZGVmaW5lZCIKKyAgKTsKICAgaWYgKGJhc2UpIHsKLSAgICByZXR1cm4gbmV3
IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIlR5cGUiXSh7IHNvdXJjZSwg
dG9rZW5zOiB7IGJhc2UgfSB9KTsKKyAgICByZXR1cm4gbmV3IF90eXBlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX18uVHlwZSh7IHNvdXJjZSwgdG9rZW5zOiB7IGJhc2UgfSB9KTsKICAg
fQogfQogCkBAIC03ODAsNyArNzgyLDEwIEBAIGZ1bmN0aW9uIHByaW1pdGl2ZV90eXBlKHRva2Vu
aXNlcikgewogICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9r
ZW5pc2VyCiAgKi8KIGZ1bmN0aW9uIGFyZ3VtZW50X2xpc3QodG9rZW5pc2VyKSB7Ci0gIHJldHVy
biBsaXN0KHRva2VuaXNlciwgeyBwYXJzZXI6IF9hcmd1bWVudF9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMV9fWyJBcmd1bWVudCJdLnBhcnNlLCBsaXN0TmFtZTogImFyZ3VtZW50cyBsaXN0
IiB9KTsKKyAgcmV0dXJuIGxpc3QodG9rZW5pc2VyLCB7CisgICAgcGFyc2VyOiBfYXJndW1lbnRf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5Bcmd1bWVudC5wYXJzZSwKKyAgICBsaXN0
TmFtZTogImFyZ3VtZW50cyBsaXN0IiwKKyAgfSk7CiB9CiAKIC8qKgpAQCAtNzg4LDggKzc5Myw4
IEBAIGZ1bmN0aW9uIGFyZ3VtZW50X2xpc3QodG9rZW5pc2VyKSB7CiAgKiBAcGFyYW0ge3N0cmlu
Z30gdHlwZU5hbWUKICAqLwogZnVuY3Rpb24gdHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMo
dG9rZW5pc2VyLCB0eXBlTmFtZSkgewotICBjb25zdCBleHRBdHRycyA9IF9leHRlbmRlZF9hdHRy
aWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkV4dGVuZGVkQXR0cmlidXRl
cyJdLnBhcnNlKHRva2VuaXNlcik7Ci0gIGNvbnN0IHJldCA9IF90eXBlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX19bIlR5cGUiXS5wYXJzZSh0b2tlbmlzZXIsIHR5cGVOYW1lKTsKKyAg
Y29uc3QgZXh0QXR0cnMgPSBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMl9fLkV4dGVuZGVkQXR0cmlidXRlcy5wYXJzZSh0b2tlbmlzZXIpOworICBjb25z
dCByZXQgPSBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlR5cGUucGFyc2Uo
dG9rZW5pc2VyLCB0eXBlTmFtZSk7CiAgIGlmIChyZXQpIGF1dG9QYXJlbnRlcihyZXQpLmV4dEF0
dHJzID0gZXh0QXR0cnM7CiAgIHJldHVybiByZXQ7CiB9CkBAIC03OTksMTMgKzgwNCwxNiBAQCBm
dW5jdGlvbiB0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyh0b2tlbmlzZXIsIHR5cGVOYW1l
KSB7CiAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZU5hbWUKICAqLwogZnVuY3Rpb24gcmV0dXJuX3R5
cGUodG9rZW5pc2VyLCB0eXBlTmFtZSkgewotICBjb25zdCB0eXAgPSBfdHlwZV9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJUeXBlIl0ucGFyc2UodG9rZW5pc2VyLCB0eXBlTmFtZSB8
fCAicmV0dXJuLXR5cGUiKTsKKyAgY29uc3QgdHlwID0gX3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfXy5UeXBlLnBhcnNlKHRva2VuaXNlciwgdHlwZU5hbWUgfHwgInJldHVybi10
eXBlIik7CiAgIGlmICh0eXApIHsKICAgICByZXR1cm4gdHlwOwogICB9CiAgIGNvbnN0IHZvaWRU
b2tlbiA9IHRva2VuaXNlci5jb25zdW1lKCJ2b2lkIik7CiAgIGlmICh2b2lkVG9rZW4pIHsKLSAg
ICBjb25zdCByZXQgPSBuZXcgX3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1si
VHlwZSJdKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnM6IHsgYmFzZTogdm9pZFRv
a2VuIH0gfSk7CisgICAgY29uc3QgcmV0ID0gbmV3IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX18uVHlwZSh7CisgICAgICBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsCisgICAg
ICB0b2tlbnM6IHsgYmFzZTogdm9pZFRva2VuIH0sCisgICAgfSk7CiAgICAgcmV0LnR5cGUgPSAi
cmV0dXJuLXR5cGUiOwogICAgIHJldHVybiByZXQ7CiAgIH0KQEAgLTgxNyw4ICs4MjUsOSBAQCBm
dW5jdGlvbiByZXR1cm5fdHlwZSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB7CiBmdW5jdGlvbiBzdHJp
bmdpZmllcih0b2tlbmlzZXIpIHsKICAgY29uc3Qgc3BlY2lhbCA9IHRva2VuaXNlci5jb25zdW1l
KCJzdHJpbmdpZmllciIpOwogICBpZiAoIXNwZWNpYWwpIHJldHVybjsKLSAgY29uc3QgbWVtYmVy
ID0gX2F0dHJpYnV0ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fWyJBdHRyaWJ1dGUi
XS5wYXJzZSh0b2tlbmlzZXIsIHsgc3BlY2lhbCB9KSB8fAotICAgIF9vcGVyYXRpb25fanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1siT3BlcmF0aW9uIl0ucGFyc2UodG9rZW5pc2VyLCB7
IHNwZWNpYWwgfSkgfHwKKyAgY29uc3QgbWVtYmVyID0KKyAgICBfYXR0cmlidXRlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV80X18uQXR0cmlidXRlLnBhcnNlKHRva2VuaXNlciwgeyBzcGVj
aWFsIH0pIHx8CisgICAgX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19f
Lk9wZXJhdGlvbi5wYXJzZSh0b2tlbmlzZXIsIHsgc3BlY2lhbCB9KSB8fAogICAgIHRva2VuaXNl
ci5lcnJvcigiVW50ZXJtaW5hdGVkIHN0cmluZ2lmaWVyIik7CiAgIHJldHVybiBtZW1iZXI7CiB9
CkBAIC04NTMsOSArODYyLDkgQEAgZnVuY3Rpb24gZ2V0TWVtYmVySW5kZW50YXRpb24ocGFyZW50
VHJpdmlhKSB7CiAgKi8KIGZ1bmN0aW9uIGF1dG9maXhBZGRFeHBvc2VkV2luZG93KGRlZikgewog
ICByZXR1cm4gKCkgPT4gewotICAgIGlmIChkZWYuZXh0QXR0cnMubGVuZ3RoKXsKLSAgICAgIGNv
bnN0IHRva2VuaXNlciA9IG5ldyBfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV81X19bIlRva2VuaXNlciJdKCJFeHBvc2VkPVdpbmRvdywiKTsKLSAgICAgIGNvbnN0IGV4cG9z
ZWQgPSBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9f
WyJTaW1wbGVFeHRlbmRlZEF0dHJpYnV0ZSJdLnBhcnNlKHRva2VuaXNlcik7CisgICAgaWYgKGRl
Zi5leHRBdHRycy5sZW5ndGgpIHsKKyAgICAgIGNvbnN0IHRva2VuaXNlciA9IG5ldyBfdG9rZW5p
c2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uVG9rZW5pc2VyKCJFeHBvc2VkPVdp
bmRvdywiKTsKKyAgICAgIGNvbnN0IGV4cG9zZWQgPSBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLlNpbXBsZUV4dGVuZGVkQXR0cmlidXRlLnBhcnNl
KHRva2VuaXNlcik7CiAgICAgICBleHBvc2VkLnRva2Vucy5zZXBhcmF0b3IgPSB0b2tlbmlzZXIu
Y29uc3VtZSgiLCIpOwogICAgICAgY29uc3QgZXhpc3RpbmcgPSBkZWYuZXh0QXR0cnNbMF07CiAg
ICAgICBpZiAoIS9eXHMvLnRlc3QoZXhpc3RpbmcudG9rZW5zLm5hbWUudHJpdmlhKSkgewpAQCAt
ODYzLDcgKzg3Miw5IEBAIGZ1bmN0aW9uIGF1dG9maXhBZGRFeHBvc2VkV2luZG93KGRlZikgewog
ICAgICAgfQogICAgICAgZGVmLmV4dEF0dHJzLnVuc2hpZnQoZXhwb3NlZCk7CiAgICAgfSBlbHNl
IHsKLSAgICAgIGF1dG9QYXJlbnRlcihkZWYpLmV4dEF0dHJzID0gX2V4dGVuZGVkX2F0dHJpYnV0
ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siRXh0ZW5kZWRBdHRyaWJ1dGVzIl0u
cGFyc2UobmV3IF90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1siVG9r
ZW5pc2VyIl0oIltFeHBvc2VkPVdpbmRvd10iKSk7CisgICAgICBhdXRvUGFyZW50ZXIoZGVmKS5l
eHRBdHRycyA9IF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8yX18uRXh0ZW5kZWRBdHRyaWJ1dGVzLnBhcnNlKAorICAgICAgICBuZXcgX3Rva2VuaXNlcl9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLlRva2VuaXNlcigiW0V4cG9zZWQ9V2luZG93
XSIpCisgICAgICApOwogICAgICAgY29uc3QgdHJpdmlhID0gZGVmLnRva2Vucy5iYXNlLnRyaXZp
YTsKICAgICAgIGRlZi5leHRBdHRycy50b2tlbnMub3Blbi50cml2aWEgPSB0cml2aWE7CiAgICAg
ICBkZWYudG9rZW5zLmJhc2UudHJpdmlhID0gYFxuJHtnZXRMYXN0SW5kZW50YXRpb24odHJpdmlh
KX1gOwpAQCAtOTQyLDE4ICs5NTMsMTkgQEAgZnVuY3Rpb24gYXV0b1BhcmVudGVyKGRhdGEsIHBh
cmVudCkgewogICAgICAgICB2YWx1ZS5wYXJlbnQgPSBwYXJlbnQ7CiAgICAgICB9CiAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICB9CisgICAgfSwKICAgfSk7CiB9CiAKIAogLyoqKi8gfSksCiAvKiA1
ICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBh
Y2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVs
ZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1
c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsK
LS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193
ZWJwYWNrX2V4cG9ydHNfXywgIlR5cGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIFR5cGU7IH0pOwor
LyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBv
cnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIlR5cGUiOiAoKSA9PiAoLyogYmluZGlu
ZyAqLyBUeXBlKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAq
LyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oNik7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CiAvKiBoYXJt
b255IGltcG9ydCAqLyB2YXIgX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
Ml9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTsKQEAgLTk3MiwzOCArOTg0LDY2IEBAIF9fd2Vi
cGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKICAqIEBwYXJhbSB7c3RyaW5n
fSB0eXBlTmFtZQogICovCiBmdW5jdGlvbiBnZW5lcmljX3R5cGUodG9rZW5pc2VyLCB0eXBlTmFt
ZSkgewotICBjb25zdCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoIkZyb3plbkFycmF5IiwgIlBy
b21pc2UiLCAic2VxdWVuY2UiLCAicmVjb3JkIik7CisgIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIu
Y29uc3VtZSgKKyAgICAiRnJvemVuQXJyYXkiLAorICAgICJPYnNlcnZhYmxlQXJyYXkiLAorICAg
ICJQcm9taXNlIiwKKyAgICAic2VxdWVuY2UiLAorICAgICJyZWNvcmQiCisgICk7CiAgIGlmICgh
YmFzZSkgewogICAgIHJldHVybjsKICAgfQotICBjb25zdCByZXQgPSBPYmplY3QoX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siYXV0b1BhcmVudGVyIl0pKG5ldyBUeXBl
KHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnM6IHsgYmFzZSB9IH0pKTsKLSAgcmV0
LnRva2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUoIjwiKSB8fCB0b2tlbmlzZXIuZXJyb3Io
YE5vIG9wZW5pbmcgYnJhY2tldCBhZnRlciAke2Jhc2UudHlwZX1gKTsKLSAgc3dpdGNoIChiYXNl
LnR5cGUpIHsKKyAgY29uc3QgcmV0ID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzFfXy5hdXRvUGFyZW50ZXIpKAorICAgIG5ldyBUeXBlKHsgc291cmNlOiB0b2tlbmlz
ZXIuc291cmNlLCB0b2tlbnM6IHsgYmFzZSB9IH0pCisgICk7CisgIHJldC50b2tlbnMub3BlbiA9
CisgICAgdG9rZW5pc2VyLmNvbnN1bWUoIjwiKSB8fAorICAgIHRva2VuaXNlci5lcnJvcihgTm8g
b3BlbmluZyBicmFja2V0IGFmdGVyICR7YmFzZS52YWx1ZX1gKTsKKyAgc3dpdGNoIChiYXNlLnZh
bHVlKSB7CiAgICAgY2FzZSAiUHJvbWlzZSI6IHsKLSAgICAgIGlmICh0b2tlbmlzZXIucHJvYmUo
IlsiKSkgdG9rZW5pc2VyLmVycm9yKCJQcm9taXNlIHR5cGUgY2Fubm90IGhhdmUgZXh0ZW5kZWQg
YXR0cmlidXRlIik7Ci0gICAgICBjb25zdCBzdWJ0eXBlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInJldHVybl90eXBlIl0pKHRva2VuaXNlciwgdHlw
ZU5hbWUpIHx8IHRva2VuaXNlci5lcnJvcigiTWlzc2luZyBQcm9taXNlIHN1YnR5cGUiKTsKKyAg
ICAgIGlmICh0b2tlbmlzZXIucHJvYmUoIlsiKSkKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJQ
cm9taXNlIHR5cGUgY2Fubm90IGhhdmUgZXh0ZW5kZWQgYXR0cmlidXRlIik7CisgICAgICBjb25z
dCBzdWJ0eXBlID0KKyAgICAgICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzFfXy5yZXR1cm5fdHlwZSkodG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwKKyAgICAgICAgdG9r
ZW5pc2VyLmVycm9yKCJNaXNzaW5nIFByb21pc2Ugc3VidHlwZSIpOwogICAgICAgcmV0LnN1YnR5
cGUucHVzaChzdWJ0eXBlKTsKICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlICJzZXF1ZW5j
ZSI6Ci0gICAgY2FzZSAiRnJvemVuQXJyYXkiOiB7Ci0gICAgICBjb25zdCBzdWJ0eXBlID0gT2Jq
ZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0aF9l
eHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRva2VuaXNlciwgdHlwZU5hbWUpIHx8IHRva2VuaXNlci5l
cnJvcihgTWlzc2luZyAke2Jhc2UudHlwZX0gc3VidHlwZWApOworICAgIGNhc2UgIkZyb3plbkFy
cmF5IjoKKyAgICBjYXNlICJPYnNlcnZhYmxlQXJyYXkiOiB7CisgICAgICBjb25zdCBzdWJ0eXBl
ID0KKyAgICAgICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50
eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcykodG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwKKyAg
ICAgICAgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nICR7YmFzZS52YWx1ZX0gc3VidHlwZWApOwog
ICAgICAgcmV0LnN1YnR5cGUucHVzaChzdWJ0eXBlKTsKICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICBjYXNlICJyZWNvcmQiOiB7Ci0gICAgICBpZiAodG9rZW5pc2VyLnByb2JlKCJbIikpIHRva2Vu
aXNlci5lcnJvcigiUmVjb3JkIGtleSBjYW5ub3QgaGF2ZSBleHRlbmRlZCBhdHRyaWJ1dGUiKTsK
LSAgICAgIGNvbnN0IGtleVR5cGUgPSB0b2tlbmlzZXIuY29uc3VtZSguLi5fdG9rZW5pc2VyX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInN0cmluZ1R5cGVzIl0pIHx8IHRva2VuaXNl
ci5lcnJvcihgUmVjb3JkIGtleSBtdXN0IGJlIG9uZSBvZjogJHtfdG9rZW5pc2VyX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInN0cmluZ1R5cGVzIl0uam9pbigiLCAiKX1gKTsKLSAg
ICAgIGNvbnN0IGtleUlkbFR5cGUgPSBuZXcgVHlwZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJj
ZSwgdG9rZW5zOiB7IGJhc2U6IGtleVR5cGUgfX0pOwotICAgICAga2V5SWRsVHlwZS50b2tlbnMu
c2VwYXJhdG9yID0gdG9rZW5pc2VyLmNvbnN1bWUoIiwiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIk1p
c3NpbmcgY29tbWEgYWZ0ZXIgcmVjb3JkIGtleSB0eXBlIik7CisgICAgICBpZiAodG9rZW5pc2Vy
LnByb2JlKCJbIikpCisgICAgICAgIHRva2VuaXNlci5lcnJvcigiUmVjb3JkIGtleSBjYW5ub3Qg
aGF2ZSBleHRlbmRlZCBhdHRyaWJ1dGUiKTsKKyAgICAgIGNvbnN0IGtleVR5cGUgPQorICAgICAg
ICB0b2tlbmlzZXIuY29uc3VtZSguLi5fdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8yX18uc3RyaW5nVHlwZXMpIHx8CisgICAgICAgIHRva2VuaXNlci5lcnJvcihgUmVjb3Jk
IGtleSBtdXN0IGJlIG9uZSBvZjogJHtfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8yX18uc3RyaW5nVHlwZXMuam9pbigiLCAiKX1gKTsKKyAgICAgIGNvbnN0IGtleUlkbFR5
cGUgPSBuZXcgVHlwZSh7CisgICAgICAgIHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwKKyAgICAg
ICAgdG9rZW5zOiB7IGJhc2U6IGtleVR5cGUgfSwKKyAgICAgIH0pOworICAgICAga2V5SWRsVHlw
ZS50b2tlbnMuc2VwYXJhdG9yID0KKyAgICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIiwiKSB8fAor
ICAgICAgICB0b2tlbmlzZXIuZXJyb3IoIk1pc3NpbmcgY29tbWEgYWZ0ZXIgcmVjb3JkIGtleSB0
eXBlIik7CiAgICAgICBrZXlJZGxUeXBlLnR5cGUgPSB0eXBlTmFtZTsKLSAgICAgIGNvbnN0IHZh
bHVlVHlwZSA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9f
WyJ0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyJdKSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB8
fCB0b2tlbmlzZXIuZXJyb3IoIkVycm9yIHBhcnNpbmcgZ2VuZXJpYyB0eXBlIHJlY29yZCIpOwor
ICAgICAgY29uc3QgdmFsdWVUeXBlID0KKyAgICAgICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzFfXy50eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcykodG9rZW5p
c2VyLCB0eXBlTmFtZSkgfHwKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJFcnJvciBwYXJzaW5n
IGdlbmVyaWMgdHlwZSByZWNvcmQiKTsKICAgICAgIHJldC5zdWJ0eXBlLnB1c2goa2V5SWRsVHlw
ZSwgdmFsdWVUeXBlKTsKICAgICAgIGJyZWFrOwogICAgIH0KICAgfQotICBpZiAoIXJldC5pZGxU
eXBlKSB0b2tlbmlzZXIuZXJyb3IoYEVycm9yIHBhcnNpbmcgZ2VuZXJpYyB0eXBlICR7YmFzZS50
eXBlfWApOwotICByZXQudG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIj4iKSB8fCB0
b2tlbmlzZXIuZXJyb3IoYE1pc3NpbmcgY2xvc2luZyBicmFja2V0IGFmdGVyICR7YmFzZS50eXBl
fWApOworICBpZiAoIXJldC5pZGxUeXBlKSB0b2tlbmlzZXIuZXJyb3IoYEVycm9yIHBhcnNpbmcg
Z2VuZXJpYyB0eXBlICR7YmFzZS52YWx1ZX1gKTsKKyAgcmV0LnRva2Vucy5jbG9zZSA9CisgICAg
dG9rZW5pc2VyLmNvbnN1bWUoIj4iKSB8fAorICAgIHRva2VuaXNlci5lcnJvcihgTWlzc2luZyBj
bG9zaW5nIGJyYWNrZXQgYWZ0ZXIgJHtiYXNlLnZhbHVlfWApOwogICByZXR1cm4gcmV0LnRoaXM7
CiB9CiAKQEAgLTEwMjMsMjEgKzEwNjMsMjUgQEAgZnVuY3Rpb24gdHlwZV9zdWZmaXgodG9rZW5p
c2VyLCBvYmopIHsKICAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlTmFtZQogICovCiBmdW5jdGlvbiBz
aW5nbGVfdHlwZSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB7Ci0gIGxldCByZXQgPSBnZW5lcmljX3R5
cGUodG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwgT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX19bInByaW1pdGl2ZV90eXBlIl0pKHRva2VuaXNlcik7CisgIGxldCBy
ZXQgPSBnZW5lcmljX3R5cGUodG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwgKDAsX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5wcmltaXRpdmVfdHlwZSkodG9rZW5pc2VyKTsK
ICAgaWYgKCFyZXQpIHsKLSAgICBjb25zdCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50
aWZpZXIiLCAuLi5fdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInN0
cmluZ1R5cGVzIl0sIC4uLl90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJf
X1sidHlwZU5hbWVLZXl3b3JkcyJdKTsKKyAgICBjb25zdCBiYXNlID0KKyAgICAgIHRva2VuaXNl
ci5jb25zdW1lVHlwZSgiaWRlbnRpZmllciIpIHx8CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgu
Li5fdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uc3RyaW5nVHlwZXMs
IC4uLl90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50eXBlTmFtZUtl
eXdvcmRzKTsKICAgICBpZiAoIWJhc2UpIHsKICAgICAgIHJldHVybjsKICAgICB9CiAgICAgcmV0
ID0gbmV3IFR5cGUoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyBiYXNlIH0g
fSk7Ci0gICAgaWYgKHRva2VuaXNlci5wcm9iZSgiPCIpKSB0b2tlbmlzZXIuZXJyb3IoYFVuc3Vw
cG9ydGVkIGdlbmVyaWMgdHlwZSAke2Jhc2UudmFsdWV9YCk7CisgICAgaWYgKHRva2VuaXNlci5w
cm9iZSgiPCIpKQorICAgICAgdG9rZW5pc2VyLmVycm9yKGBVbnN1cHBvcnRlZCBnZW5lcmljIHR5
cGUgJHtiYXNlLnZhbHVlfWApOwogICB9CiAgIGlmIChyZXQuZ2VuZXJpYyA9PT0gIlByb21pc2Ui
ICYmIHRva2VuaXNlci5wcm9iZSgiPyIpKSB7CiAgICAgdG9rZW5pc2VyLmVycm9yKCJQcm9taXNl
IHR5cGUgY2Fubm90IGJlIG51bGxhYmxlIik7CiAgIH0KICAgcmV0LnR5cGUgPSB0eXBlTmFtZSB8
fCBudWxsOwogICB0eXBlX3N1ZmZpeCh0b2tlbmlzZXIsIHJldCk7Ci0gIGlmIChyZXQubnVsbGFi
bGUgJiYgcmV0LmlkbFR5cGUgPT09ICJhbnkiKSB0b2tlbmlzZXIuZXJyb3IoIlR5cGUgYGFueWAg
Y2Fubm90IGJlIG1hZGUgbnVsbGFibGUiKTsKKyAgaWYgKHJldC5udWxsYWJsZSAmJiByZXQuaWRs
VHlwZSA9PT0gImFueSIpCisgICAgdG9rZW5pc2VyLmVycm9yKCJUeXBlIGBhbnlgIGNhbm5vdCBi
ZSBtYWRlIG51bGxhYmxlIik7CiAgIHJldHVybiByZXQ7CiB9CiAKQEAgLTEwNDksMjggKzEwOTMs
MzQgQEAgZnVuY3Rpb24gdW5pb25fdHlwZSh0b2tlbmlzZXIsIHR5cGUpIHsKICAgY29uc3QgdG9r
ZW5zID0ge307CiAgIHRva2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUoIigiKTsKICAgaWYg
KCF0b2tlbnMub3BlbikgcmV0dXJuOwotICBjb25zdCByZXQgPSBPYmplY3QoX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siYXV0b1BhcmVudGVyIl0pKG5ldyBUeXBlKHsg
c291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkpOworICBjb25zdCByZXQgPSAoMCxf
aGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmF1dG9QYXJlbnRlcikobmV3
IFR5cGUoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSk7CiAgIHJldC50eXBl
ID0gdHlwZSB8fCBudWxsOwogICB3aGlsZSAodHJ1ZSkgewotICAgIGNvbnN0IHR5cCA9IE9iamVj
dChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ0eXBlX3dpdGhfZXh0
ZW5kZWRfYXR0cmlidXRlcyJdKSh0b2tlbmlzZXIpIHx8IHRva2VuaXNlci5lcnJvcigiTm8gdHlw
ZSBhZnRlciBvcGVuIHBhcmVudGhlc2lzIG9yICdvcicgaW4gdW5pb24gdHlwZSIpOwotICAgIGlm
ICh0eXAuaWRsVHlwZSA9PT0gImFueSIpIHRva2VuaXNlci5lcnJvcigiVHlwZSBgYW55YCBjYW5u
b3QgYmUgaW5jbHVkZWQgaW4gYSB1bmlvbiB0eXBlIik7Ci0gICAgaWYgKHR5cC5nZW5lcmljID09
PSAiUHJvbWlzZSIpIHRva2VuaXNlci5lcnJvcigiVHlwZSBgUHJvbWlzZWAgY2Fubm90IGJlIGlu
Y2x1ZGVkIGluIGEgdW5pb24gdHlwZSIpOworICAgIGNvbnN0IHR5cCA9CisgICAgICAoMCxfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnR5cGVfd2l0aF9leHRlbmRlZF9h
dHRyaWJ1dGVzKSh0b2tlbmlzZXIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIk5vIHR5cGUg
YWZ0ZXIgb3BlbiBwYXJlbnRoZXNpcyBvciAnb3InIGluIHVuaW9uIHR5cGUiKTsKKyAgICBpZiAo
dHlwLmlkbFR5cGUgPT09ICJhbnkiKQorICAgICAgdG9rZW5pc2VyLmVycm9yKCJUeXBlIGBhbnlg
IGNhbm5vdCBiZSBpbmNsdWRlZCBpbiBhIHVuaW9uIHR5cGUiKTsKKyAgICBpZiAodHlwLmdlbmVy
aWMgPT09ICJQcm9taXNlIikKKyAgICAgIHRva2VuaXNlci5lcnJvcigiVHlwZSBgUHJvbWlzZWAg
Y2Fubm90IGJlIGluY2x1ZGVkIGluIGEgdW5pb24gdHlwZSIpOwogICAgIHJldC5zdWJ0eXBlLnB1
c2godHlwKTsKICAgICBjb25zdCBvciA9IHRva2VuaXNlci5jb25zdW1lKCJvciIpOwogICAgIGlm
IChvcikgewogICAgICAgdHlwLnRva2Vucy5zZXBhcmF0b3IgPSBvcjsKLSAgICB9Ci0gICAgZWxz
ZSBicmVhazsKKyAgICB9IGVsc2UgYnJlYWs7CiAgIH0KICAgaWYgKHJldC5pZGxUeXBlLmxlbmd0
aCA8IDIpIHsKLSAgICB0b2tlbmlzZXIuZXJyb3IoIkF0IGxlYXN0IHR3byB0eXBlcyBhcmUgZXhw
ZWN0ZWQgaW4gYSB1bmlvbiB0eXBlIGJ1dCBmb3VuZCBsZXNzIik7CisgICAgdG9rZW5pc2VyLmVy
cm9yKAorICAgICAgIkF0IGxlYXN0IHR3byB0eXBlcyBhcmUgZXhwZWN0ZWQgaW4gYSB1bmlvbiB0
eXBlIGJ1dCBmb3VuZCBsZXNzIgorICAgICk7CiAgIH0KLSAgdG9rZW5zLmNsb3NlID0gdG9rZW5p
c2VyLmNvbnN1bWUoIikiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCB1bmlvbiB0
eXBlIik7CisgIHRva2Vucy5jbG9zZSA9CisgICAgdG9rZW5pc2VyLmNvbnN1bWUoIikiKSB8fCB0
b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCB1bmlvbiB0eXBlIik7CiAgIHR5cGVfc3VmZml4
KHRva2VuaXNlciwgcmV0KTsKICAgcmV0dXJuIHJldC50aGlzOwogfQogCi1jbGFzcyBUeXBlIGV4
dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKK2Ns
YXNzIFR5cGUgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkJh
c2UgewogICAvKioKICAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNl
cn0gdG9rZW5pc2VyCiAgICAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlTmFtZQpAQCAtMTA4Miw3ICsx
MTMyLDcgQEAgY2xhc3MgVHlwZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX19bIkJhc2UiXSB7CiAgIGNvbnN0cnVjdG9yKHsgc291cmNlLCB0b2tlbnMgfSkgewog
ICAgIHN1cGVyKHsgc291cmNlLCB0b2tlbnMgfSk7CiAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5
KHRoaXMsICJzdWJ0eXBlIiwgeyB2YWx1ZTogW10sIHdyaXRhYmxlOiB0cnVlIH0pOwotICAgIHRo
aXMuZXh0QXR0cnMgPSBuZXcgX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzVfX1siRXh0ZW5kZWRBdHRyaWJ1dGVzIl0oe30pOworICAgIHRoaXMuZXh0QXR0
cnMgPSBuZXcgX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzVfXy5FeHRlbmRlZEF0dHJpYnV0ZXMoe30pOwogICB9CiAKICAgZ2V0IGdlbmVyaWMoKSB7CkBA
IC0xMTAyLDMyICsxMTUyLDQ3IEBAIGNsYXNzIFR5cGUgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgICAgcmV0dXJuIHRoaXMuc3VidHlw
ZTsKICAgICB9CiAgICAgLy8gQWRkaW5nIHByZWZpeGVzL3Bvc3RmaXhlcyBmb3IgInVucmVzdHJp
Y3RlZCBmbG9hdCIsIGV0Yy4KLSAgICBjb25zdCBuYW1lID0gWwotICAgICAgdGhpcy50b2tlbnMu
cHJlZml4LAotICAgICAgdGhpcy50b2tlbnMuYmFzZSwKLSAgICAgIHRoaXMudG9rZW5zLnBvc3Rm
aXgKLSAgICBdLmZpbHRlcih0ID0+IHQpLm1hcCh0ID0+IHQudmFsdWUpLmpvaW4oIiAiKTsKLSAg
ICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19b
InVuZXNjYXBlIl0pKG5hbWUpOworICAgIGNvbnN0IG5hbWUgPSBbdGhpcy50b2tlbnMucHJlZml4
LCB0aGlzLnRva2Vucy5iYXNlLCB0aGlzLnRva2Vucy5wb3N0Zml4XQorICAgICAgLmZpbHRlcigo
dCkgPT4gdCkKKyAgICAgIC5tYXAoKHQpID0+IHQudmFsdWUpCisgICAgICAuam9pbigiICIpOwor
ICAgIHJldHVybiAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVu
ZXNjYXBlKShuYW1lKTsKICAgfQogCiAgICp2YWxpZGF0ZShkZWZzKSB7CiAgICAgeWllbGQqIHRo
aXMuZXh0QXR0cnMudmFsaWRhdGUoZGVmcyk7CisKKyAgICBpZiAodGhpcy5pZGxUeXBlID09PSAi
dm9pZCIpIHsKKyAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgXGB2b2lkXGAgaXMgbm93IHJlcGxhY2Vk
IGJ5IFxgdW5kZWZpbmVkXGAuIFJlZmVyIHRvIHRoZSBcCitbcmVsZXZhbnQgR2l0SHViIGlzc3Vl
XShodHRwczovL2dpdGh1Yi5jb20vaGV5Y2FtL3dlYmlkbC9pc3N1ZXMvNjApIFwKK2ZvciBtb3Jl
IGluZm9ybWF0aW9uLmA7CisgICAgICB5aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzNfXy52YWxpZGF0aW9uRXJyb3IpKHRoaXMudG9rZW5zLmJhc2UsIHRoaXMsICJy
ZXBsYWNlLXZvaWQiLCBtZXNzYWdlLCB7CisgICAgICAgIGF1dG9maXg6IHJlcGxhY2VWb2lkKHRo
aXMpLAorICAgICAgfSk7CisgICAgfQorCiAgICAgLyoKICAgICAgKiBJZiBhIHVuaW9uIGlzIG51
bGxhYmxlLCBpdHMgc3VidW5pb25zIGNhbm5vdCBpbmNsdWRlIGEgZGljdGlvbmFyeQogICAgICAq
IElmIG5vdCwgc3VidW5pb25zIG1heSBpbmNsdWRlIGRpY3Rpb25hcmllcyBpZiBlYWNoIHVuaW9u
IGlzIG5vdCBudWxsYWJsZQogICAgICAqLwogICAgIGNvbnN0IHR5cGVkZWYgPSAhdGhpcy51bmlv
biAmJiBkZWZzLnVuaXF1ZS5nZXQodGhpcy5pZGxUeXBlKTsKLSAgICBjb25zdCB0YXJnZXQgPQot
ICAgICAgdGhpcy51bmlvbiA/IHRoaXMgOgotICAgICAgKHR5cGVkZWYgJiYgdHlwZWRlZi50eXBl
ID09PSAidHlwZWRlZiIpID8gdHlwZWRlZi5pZGxUeXBlIDoKLSAgICAgIHVuZGVmaW5lZDsKKyAg
ICBjb25zdCB0YXJnZXQgPSB0aGlzLnVuaW9uCisgICAgICA/IHRoaXMKKyAgICAgIDogdHlwZWRl
ZiAmJiB0eXBlZGVmLnR5cGUgPT09ICJ0eXBlZGVmIgorICAgICAgPyB0eXBlZGVmLmlkbFR5cGUK
KyAgICAgIDogdW5kZWZpbmVkOwogICAgIGlmICh0YXJnZXQgJiYgdGhpcy5udWxsYWJsZSkgewog
ICAgICAgLy8gZG8gbm90IGFsbG93IGFueSBkaWN0aW9uYXJ5Ci0gICAgICBjb25zdCB7IHJlZmVy
ZW5jZSB9ID0gT2JqZWN0KF92YWxpZGF0b3JzX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzRfX1siaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeSJdKSh0YXJnZXQsIGRlZnMpIHx8
IHt9OworICAgICAgY29uc3QgeyByZWZlcmVuY2UgfSA9ICgwLF92YWxpZGF0b3JzX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5pZGxUeXBlSW5jbHVkZXNEaWN0aW9uYXJ5
KSh0YXJnZXQsIGRlZnMpIHx8IHt9OwogICAgICAgaWYgKHJlZmVyZW5jZSkgewogICAgICAgICBj
b25zdCB0YXJnZXRUb2tlbiA9ICh0aGlzLnVuaW9uID8gcmVmZXJlbmNlIDogdGhpcykudG9rZW5z
LmJhc2U7Ci0gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgTnVsbGFibGUgdW5pb24gY2Fubm90IGlu
Y2x1ZGUgYSBkaWN0aW9uYXJ5IHR5cGVgOwotICAgICAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bInZhbGlkYXRpb25FcnJvciJdKSh0YXJnZXRU
b2tlbiwgdGhpcywgIm5vLW51bGxhYmxlLXVuaW9uLWRpY3QiLCBtZXNzYWdlKTsKKyAgICAgICAg
Y29uc3QgbWVzc2FnZSA9ICJOdWxsYWJsZSB1bmlvbiBjYW5ub3QgaW5jbHVkZSBhIGRpY3Rpb25h
cnkgdHlwZS4iOworICAgICAgICB5aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzNfXy52YWxpZGF0aW9uRXJyb3IpKAorICAgICAgICAgIHRhcmdldFRva2VuLAorICAg
ICAgICAgIHRoaXMsCisgICAgICAgICAgIm5vLW51bGxhYmxlLXVuaW9uLWRpY3QiLAorICAgICAg
ICAgIG1lc3NhZ2UKKyAgICAgICAgKTsKICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgLy8g
YWxsb3cgc29tZSBkaWN0aW9uYXJ5CkBAIC0xMTM2LDE2ICsxMjAxLDU5IEBAIGNsYXNzIFR5cGUg
ZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewog
ICAgICAgfQogICAgIH0KICAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpz
IikuV3JpdGVyKX0gdyAqLworICB3cml0ZSh3KSB7CisgICAgY29uc3QgdHlwZV9ib2R5ID0gKCkg
PT4geworICAgICAgaWYgKHRoaXMudW5pb24gfHwgdGhpcy5nZW5lcmljKSB7CisgICAgICAgIHJl
dHVybiB3LnRzLndyYXAoWworICAgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuYmFzZSwgdy50
cy5nZW5lcmljKSwKKyAgICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLm9wZW4pLAorICAgICAg
ICAgIC4uLnRoaXMuc3VidHlwZS5tYXAoKHQpID0+IHQud3JpdGUodykpLAorICAgICAgICAgIHcu
dG9rZW4odGhpcy50b2tlbnMuY2xvc2UpLAorICAgICAgICBdKTsKKyAgICAgIH0KKyAgICAgIGNv
bnN0IGZpcnN0VG9rZW4gPSB0aGlzLnRva2Vucy5wcmVmaXggfHwgdGhpcy50b2tlbnMuYmFzZTsK
KyAgICAgIGNvbnN0IHByZWZpeCA9IHRoaXMudG9rZW5zLnByZWZpeAorICAgICAgICA/IFt0aGlz
LnRva2Vucy5wcmVmaXgudmFsdWUsIHcudHMudHJpdmlhKHRoaXMudG9rZW5zLmJhc2UudHJpdmlh
KV0KKyAgICAgICAgOiBbXTsKKyAgICAgIGNvbnN0IHJlZiA9IHcucmVmZXJlbmNlKAorICAgICAg
ICB3LnRzLndyYXAoWworICAgICAgICAgIC4uLnByZWZpeCwKKyAgICAgICAgICB0aGlzLnRva2Vu
cy5iYXNlLnZhbHVlLAorICAgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMucG9zdGZpeCksCisg
ICAgICAgIF0pLAorICAgICAgICB7IHVuZXNjYXBlZDogdGhpcy5pZGxUeXBlLCBjb250ZXh0OiB0
aGlzIH0KKyAgICAgICk7CisgICAgICByZXR1cm4gdy50cy53cmFwKFt3LnRzLnRyaXZpYShmaXJz
dFRva2VuLnRyaXZpYSksIHJlZl0pOworICAgIH07CisgICAgcmV0dXJuIHcudHMud3JhcChbCisg
ICAgICB0aGlzLmV4dEF0dHJzLndyaXRlKHcpLAorICAgICAgdHlwZV9ib2R5KCksCisgICAgICB3
LnRva2VuKHRoaXMudG9rZW5zLm51bGxhYmxlKSwKKyAgICAgIHcudG9rZW4odGhpcy50b2tlbnMu
c2VwYXJhdG9yKSwKKyAgICBdKTsKKyAgfQorfQorCisvKioKKyAqIEBwYXJhbSB7VHlwZX0gdHlw
ZQorICovCitmdW5jdGlvbiByZXBsYWNlVm9pZCh0eXBlKSB7CisgIHJldHVybiAoKSA9PiB7Cisg
ICAgdHlwZS50b2tlbnMuYmFzZS52YWx1ZSA9ICJ1bmRlZmluZWQiOworICB9OwogfQogCiAKIC8q
KiovIH0pLAogLyogNiAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9y
dHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19f
d2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVf
XykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNr
X2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJCYXNlIiwgZnVuY3Rpb24oKSB7IHJldHVy
biBCYXNlOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChf
X3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJCYXNlIjogKCkg
PT4gKC8qIGJpbmRpbmcgKi8gQmFzZSkKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLy8gQHRz
LWNoZWNrCiAKIGNsYXNzIEJhc2UgewpAQCAtMTE1OSw3ICsxMjY3LDcgQEAgY2xhc3MgQmFzZSB7
CiAgICAgICBzb3VyY2U6IHsgdmFsdWU6IHNvdXJjZSB9LAogICAgICAgdG9rZW5zOiB7IHZhbHVl
OiB0b2tlbnMsIHdyaXRhYmxlOiB0cnVlIH0sCiAgICAgICBwYXJlbnQ6IHsgdmFsdWU6IG51bGws
IHdyaXRhYmxlOiB0cnVlIH0sCi0gICAgICB0aGlzOiB7IHZhbHVlOiB0aGlzIH0gLy8gdXNlZnVs
IHdoZW4gZXNjYXBpbmcgZnJvbSBwcm94eQorICAgICAgdGhpczogeyB2YWx1ZTogdGhpcyB9LCAv
LyB1c2VmdWwgd2hlbiBlc2NhcGluZyBmcm9tIHByb3h5CiAgICAgfSk7CiAgIH0KIApAQCAtMTE4
MywxMiArMTI5MSwxMyBAQCBjbGFzcyBCYXNlIHsKIAogLyoqKi8gfSksCiAvKiA3ICovCi0vKioq
LyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWly
ZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dl
YnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0
IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1v
bnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4
cG9ydHNfXywgImlkbFR5cGVJbmNsdWRlc0RpY3Rpb25hcnkiLCBmdW5jdGlvbigpIHsgcmV0dXJu
IGlkbFR5cGVJbmNsdWRlc0RpY3Rpb25hcnk7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRp
bmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiZGljdGlv
bmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gZGljdGlvbmFy
eUluY2x1ZGVzUmVxdWlyZWRGaWVsZDsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBh
Y2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBvcnQg
Ki8gICAiaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeSI6ICgpID0+ICgvKiBiaW5kaW5nICovIGlk
bFR5cGVJbmNsdWRlc0RpY3Rpb25hcnkpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAiZGljdGlv
bmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGRpY3Rpb25h
cnlJbmNsdWRlc1JlcXVpcmVkRmllbGQpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8vIEB0
cy1jaGVjawogCiAvKioKQEAgLTEyMDAsNyArMTMwOSwxMSBAQCBfX3dlYnBhY2tfcmVxdWlyZV9f
LnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnVz
ZU51bGxhYmxlSW5uZXJdIHVzZSB3aGVuIHRoZSBpbnB1dCBpZGxUeXBlIGlzIG51bGxhYmxlIGFu
ZCB5b3Ugd2FudCB0byB1c2UgaXRzIGlubmVyIHR5cGUKICAqIEByZXR1cm4ge3sgcmVmZXJlbmNl
OiAqLCBkaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5IH19IHRoZSB0eXBlIHJlZmVyZW5jZSB0aGF0IHVs
dGltYXRlbHkgaW5jbHVkZXMgZGljdGlvbmFyeS4KICAqLwotZnVuY3Rpb24gaWRsVHlwZUluY2x1
ZGVzRGljdGlvbmFyeShpZGxUeXBlLCBkZWZzLCB7IHVzZU51bGxhYmxlSW5uZXIgfSA9IHt9KSB7
CitmdW5jdGlvbiBpZGxUeXBlSW5jbHVkZXNEaWN0aW9uYXJ5KAorICBpZGxUeXBlLAorICBkZWZz
LAorICB7IHVzZU51bGxhYmxlSW5uZXIgfSA9IHt9CispIHsKICAgaWYgKCFpZGxUeXBlLnVuaW9u
KSB7CiAgICAgY29uc3QgZGVmID0gZGVmcy51bmlxdWUuZ2V0KGlkbFR5cGUuaWRsVHlwZSk7CiAg
ICAgaWYgKCFkZWYpIHsKQEAgLTEyMTksMTQgKzEzMzIsMTQgQEAgZnVuY3Rpb24gaWRsVHlwZUlu
Y2x1ZGVzRGljdGlvbmFyeShpZGxUeXBlLCBkZWZzLCB7IHVzZU51bGxhYmxlSW5uZXIgfSA9IHt9
KSB7CiAgICAgICBpZiAocmVzdWx0KSB7CiAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgcmVm
ZXJlbmNlOiBpZGxUeXBlLAotICAgICAgICAgIGRpY3Rpb25hcnk6IHJlc3VsdC5kaWN0aW9uYXJ5
CisgICAgICAgICAgZGljdGlvbmFyeTogcmVzdWx0LmRpY3Rpb25hcnksCiAgICAgICAgIH07CiAg
ICAgICB9CiAgICAgfQogICAgIGlmIChkZWYudHlwZSA9PT0gImRpY3Rpb25hcnkiICYmICh1c2VO
dWxsYWJsZUlubmVyIHx8ICFpZGxUeXBlLm51bGxhYmxlKSkgewogICAgICAgcmV0dXJuIHsKICAg
ICAgICAgcmVmZXJlbmNlOiBpZGxUeXBlLAotICAgICAgICBkaWN0aW9uYXJ5OiBkZWYKKyAgICAg
ICAgZGljdGlvbmFyeTogZGVmLAogICAgICAgfTsKICAgICB9CiAgIH0KQEAgLTEyMzgsNyArMTM1
MSw3IEBAIGZ1bmN0aW9uIGlkbFR5cGVJbmNsdWRlc0RpY3Rpb25hcnkoaWRsVHlwZSwgZGVmcywg
eyB1c2VOdWxsYWJsZUlubmVyIH0gPSB7fSkgewogICAgICAgfQogICAgICAgcmV0dXJuIHsKICAg
ICAgICAgcmVmZXJlbmNlOiBzdWJ0eXBlLAotICAgICAgICBkaWN0aW9uYXJ5OiByZXN1bHQuZGlj
dGlvbmFyeQorICAgICAgICBkaWN0aW9uYXJ5OiByZXN1bHQuZGljdGlvbmFyeSwKICAgICAgIH07
CiAgICAgfQogICB9CkBAIC0xMjUzLDE3ICsxMzY2LDE5IEBAIGZ1bmN0aW9uIGRpY3Rpb25hcnlJ
bmNsdWRlc1JlcXVpcmVkRmllbGQoZGljdCwgZGVmcykgewogICBpZiAoZGVmcy5jYWNoZS5kaWN0
aW9uYXJ5SW5jbHVkZXNSZXF1aXJlZEZpZWxkLmhhcyhkaWN0KSkgewogICAgIHJldHVybiBkZWZz
LmNhY2hlLmRpY3Rpb25hcnlJbmNsdWRlc1JlcXVpcmVkRmllbGQuZ2V0KGRpY3QpOwogICB9Ci0g
IGRlZnMuY2FjaGUuZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZC5zZXQoZGljdCwgdW5k
ZWZpbmVkKTsgLy8gaW5kZXRlcm1pbmF0ZQotICBpZiAoZGljdC5pbmhlcml0YW5jZSkgeworICAv
LyBTZXQgY2FjaGVkIHJlc3VsdCB0byBpbmRldGVybWluYXRlIHRvIHNob3J0LWNpcmN1aXQgY2ly
Y3VsYXIgZGVmaW5pdGlvbnMuCisgIC8vIFRoZSBmaW5hbCByZXN1bHQgd2lsbCBiZSB1cGRhdGVk
IHRvIHRydWUgb3IgZmFsc2UuCisgIGRlZnMuY2FjaGUuZGljdGlvbmFyeUluY2x1ZGVzUmVxdWly
ZWRGaWVsZC5zZXQoZGljdCwgdW5kZWZpbmVkKTsKKyAgbGV0IHJlc3VsdCA9IGRpY3QubWVtYmVy
cy5zb21lKChmaWVsZCkgPT4gZmllbGQucmVxdWlyZWQpOworICBpZiAoIXJlc3VsdCAmJiBkaWN0
LmluaGVyaXRhbmNlKSB7CiAgICAgY29uc3Qgc3VwZXJkaWN0ID0gZGVmcy51bmlxdWUuZ2V0KGRp
Y3QuaW5oZXJpdGFuY2UpOwogICAgIGlmICghc3VwZXJkaWN0KSB7Ci0gICAgICByZXR1cm4gdHJ1
ZTsKLSAgICB9Ci0gICAgaWYgKGRpY3Rpb25hcnlJbmNsdWRlc1JlcXVpcmVkRmllbGQoc3VwZXJk
aWN0LCBkZWZzKSkgewotICAgICAgcmV0dXJuIHRydWU7CisgICAgICAvLyBBc3N1bWUgcmVxdWly
ZWQgbWVtYmVycyBpbiB0aGUgc3VwZXJ0eXBlIGlmIGl0IGlzIHVua25vd24uCisgICAgICByZXN1
bHQgPSB0cnVlOworICAgIH0gZWxzZSBpZiAoZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVs
ZChzdXBlcmRpY3QsIGRlZnMpKSB7CisgICAgICByZXN1bHQgPSB0cnVlOwogICAgIH0KICAgfQot
ICBjb25zdCByZXN1bHQgPSBkaWN0Lm1lbWJlcnMuc29tZShmaWVsZCA9PiBmaWVsZC5yZXF1aXJl
ZCk7CiAgIGRlZnMuY2FjaGUuZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZC5zZXQoZGlj
dCwgcmVzdWx0KTsKICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTEyNzEsMTIgKzEzODYsMTMgQEAg
ZnVuY3Rpb24gZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZChkaWN0LCBkZWZzKSB7CiAK
IC8qKiovIH0pLAogLyogOCAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4
cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNr
X19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVp
cmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJw
YWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNr
X3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJTaW1wbGVFeHRlbmRlZEF0dHJpYnV0
ZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGU7IH0pOwotLyog
aGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBh
Y2tfZXhwb3J0c19fLCAiRXh0ZW5kZWRBdHRyaWJ1dGVzIiwgZnVuY3Rpb24oKSB7IHJldHVybiBF
eHRlbmRlZEF0dHJpYnV0ZXM7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAg
IlNpbXBsZUV4dGVuZGVkQXR0cmlidXRlIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gU2ltcGxlRXh0
ZW5kZWRBdHRyaWJ1dGUpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAiRXh0ZW5kZWRBdHRyaWJ1
dGVzIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gRXh0ZW5kZWRBdHRyaWJ1dGVzKQorLyogaGFybW9u
eSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CiAvKiBoYXJt
b255IGltcG9ydCAqLyB2YXIgX2FycmF5X2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oOSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIg
X3Rva2VuX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWly
ZV9fKDEwKTsKQEAgLTEyOTMsOSArMTQwOSw5IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dl
YnBhY2tfZXhwb3J0c19fKTsKICAqIEBwYXJhbSB7c3RyaW5nfSB0b2tlbk5hbWUKICAqLwogZnVu
Y3Rpb24gdG9rZW5zKHRva2VuaXNlciwgdG9rZW5OYW1lKSB7Ci0gIHJldHVybiBPYmplY3QoX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1sibGlzdCJdKSh0b2tlbmlzZXIs
IHsKLSAgICBwYXJzZXI6IF90b2tlbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJU
b2tlbiJdLnBhcnNlcih0b2tlbmlzZXIsIHRva2VuTmFtZSksCi0gICAgbGlzdE5hbWU6IHRva2Vu
TmFtZSArICIgbGlzdCIKKyAgcmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8zX18ubGlzdCkodG9rZW5pc2VyLCB7CisgICAgcGFyc2VyOiBfdG9rZW5fanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5XcmFwcGVkVG9rZW4ucGFyc2VyKHRva2VuaXNlciwg
dG9rZW5OYW1lKSwKKyAgICBsaXN0TmFtZTogdG9rZW5OYW1lICsgIiBsaXN0IiwKICAgfSk7CiB9
CiAKQEAgLTEzMTAsNyArMTQyNiw3IEBAIGNvbnN0IHNob3VsZEJlTGVnYWN5UHJlZml4ZWQgPSBb
CiBdOwogCiBjb25zdCByZW5hbWVkTGVnYWNpZXMgPSBuZXcgTWFwKFsKLSAgLi4uc2hvdWxkQmVM
ZWdhY3lQcmVmaXhlZC5tYXAobmFtZSA9PiBbbmFtZSwgYExlZ2FjeSR7bmFtZX1gXSksCisgIC4u
LnNob3VsZEJlTGVnYWN5UHJlZml4ZWQubWFwKChuYW1lKSA9PiBbbmFtZSwgYExlZ2FjeSR7bmFt
ZX1gXSksCiAgIFsiTmFtZWRDb25zdHJ1Y3RvciIsICJMZWdhY3lGYWN0b3J5RnVuY3Rpb24iXSwK
ICAgWyJPdmVycmlkZUJ1aWx0aW5zIiwgIkxlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiXSwKICAgWyJU
cmVhdE51bGxBcyIsICJMZWdhY3lOdWxsVG9FbXB0eVN0cmluZyJdLApAQCAtMTMyNywyOCArMTQ0
MywzMyBAQCBmdW5jdGlvbiBleHRBdHRyTGlzdEl0ZW1zKHRva2VuaXNlcikgewogICAgICAgcmV0
dXJuIHRva3M7CiAgICAgfQogICB9Ci0gIHRva2VuaXNlci5lcnJvcihgRXhwZWN0ZWQgaWRlbnRp
ZmllcnMsIHN0cmluZ3MsIGRlY2ltYWxzLCBvciBpbnRlZ2VycyBidXQgbm9uZSBmb3VuZGApOwor
ICB0b2tlbmlzZXIuZXJyb3IoCisgICAgYEV4cGVjdGVkIGlkZW50aWZpZXJzLCBzdHJpbmdzLCBk
ZWNpbWFscywgb3IgaW50ZWdlcnMgYnV0IG5vbmUgZm91bmRgCisgICk7CiB9CiAKLQotY2xhc3Mg
RXh0ZW5kZWRBdHRyaWJ1dGVQYXJhbWV0ZXJzIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKK2NsYXNzIEV4dGVuZGVkQXR0cmlidXRlUGFyYW1l
dGVycyBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7
CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0
b2tlbmlzZXIKICAgICovCiAgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKICAgICBjb25zdCB0
b2tlbnMgPSB7IGFzc2lnbjogdG9rZW5pc2VyLmNvbnN1bWUoIj0iKSB9OwotICAgIGNvbnN0IHJl
dCA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJhdXRv
UGFyZW50ZXIiXSkobmV3IEV4dGVuZGVkQXR0cmlidXRlUGFyYW1ldGVycyh7IHNvdXJjZTogdG9r
ZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pKTsKKyAgICBjb25zdCByZXQgPSAoMCxfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmF1dG9QYXJlbnRlcikoCisgICAgICBuZXcg
RXh0ZW5kZWRBdHRyaWJ1dGVQYXJhbWV0ZXJzKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0
b2tlbnMgfSkKKyAgICApOwogICAgIGlmICh0b2tlbnMuYXNzaWduKSB7Ci0gICAgICB0b2tlbnMu
c2Vjb25kYXJ5TmFtZSA9IHRva2VuaXNlci5jb25zdW1lKC4uLmV4dEF0dHJWYWx1ZVN5bnRheCk7
CisgICAgICB0b2tlbnMuc2Vjb25kYXJ5TmFtZSA9IHRva2VuaXNlci5jb25zdW1lVHlwZSguLi5l
eHRBdHRyVmFsdWVTeW50YXgpOwogICAgIH0KICAgICB0b2tlbnMub3BlbiA9IHRva2VuaXNlci5j
b25zdW1lKCIoIik7CiAgICAgaWYgKHRva2Vucy5vcGVuKSB7Ci0gICAgICByZXQubGlzdCA9IHJl
dC5yaHNJc0xpc3QgPwotICAgICAgICAvLyBbRXhwb3NlZD0oV2luZG93LFdvcmtlcildCi0gICAg
ICAgIGV4dEF0dHJMaXN0SXRlbXModG9rZW5pc2VyKSA6Ci0gICAgICAgIC8vIFtMZWdhY3lGYWN0
b3J5RnVuY3Rpb249QXVkaW8oRE9NU3RyaW5nIHNyYyldIG9yIFtDb25zdHJ1Y3RvcihET01TdHJp
bmcgc3RyKV0KLSAgICAgICAgT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8zX19bImFyZ3VtZW50X2xpc3QiXSkodG9rZW5pc2VyKTsKLSAgICAgIHRva2Vucy5jbG9z
ZSA9IHRva2VuaXNlci5jb25zdW1lKCIpIikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbmV4cGVjdGVk
IHRva2VuIGluIGV4dGVuZGVkIGF0dHJpYnV0ZSBhcmd1bWVudCBsaXN0Iik7CisgICAgICByZXQu
bGlzdCA9IHJldC5yaHNJc0xpc3QKKyAgICAgICAgPyAvLyBbRXhwb3NlZD0oV2luZG93LFdvcmtl
cildCisgICAgICAgICAgZXh0QXR0ckxpc3RJdGVtcyh0b2tlbmlzZXIpCisgICAgICAgIDogLy8g
W0xlZ2FjeUZhY3RvcnlGdW5jdGlvbj1BdWRpbyhET01TdHJpbmcgc3JjKV0gb3IgW0NvbnN0cnVj
dG9yKERPTVN0cmluZyBzdHIpXQorICAgICAgICAgICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8zX18uYXJndW1lbnRfbGlzdCkodG9rZW5pc2VyKTsKKyAgICAgIHRva2Vu
cy5jbG9zZSA9CisgICAgICAgIHRva2VuaXNlci5jb25zdW1lKCIpIikgfHwKKyAgICAgICAgdG9r
ZW5pc2VyLmVycm9yKCJVbmV4cGVjdGVkIHRva2VuIGluIGV4dGVuZGVkIGF0dHJpYnV0ZSBhcmd1
bWVudCBsaXN0Iik7CiAgICAgfSBlbHNlIGlmIChyZXQuaGFzUmhzICYmICF0b2tlbnMuc2Vjb25k
YXJ5TmFtZSkgewogICAgICAgdG9rZW5pc2VyLmVycm9yKCJObyByaWdodCBoYW5kIHNpZGUgdG8g
ZXh0ZW5kZWQgYXR0cmlidXRlIGFzc2lnbm1lbnQiKTsKICAgICB9CkBAIC0xMzY4LDE5ICsxNDg5
LDQ1IEBAIGNsYXNzIEV4dGVuZGVkQXR0cmlidXRlUGFyYW1ldGVycyBleHRlbmRzIF9iYXNlX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bCiAgICAgfQogICAgIHJldHVybiBudWxsOwog
ICB9CisKKyAgLyoqIEBwYXJhbSB7aW1wb3J0KCIuLi93cml0ZXIuanMiKS5Xcml0ZXIpfSB3ICov
CisgIHdyaXRlKHcpIHsKKyAgICBmdW5jdGlvbiBleHRlbmRlZF9hdHRyaWJ1dGVfbGlzdGl0ZW0o
aXRlbSkgeworICAgICAgcmV0dXJuIHcudHMud3JhcChbCisgICAgICAgIHcudG9rZW4oaXRlbS50
b2tlbnMudmFsdWUpLAorICAgICAgICB3LnRva2VuKGl0ZW0udG9rZW5zLnNlcGFyYXRvciksCisg
ICAgICBdKTsKKyAgICB9CisgICAgY29uc3QgeyByaHNUeXBlIH0gPSB0aGlzOworICAgIHJldHVy
biB3LnRzLndyYXAoWworICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5hc3NpZ24pLAorICAgICAg
dy5yZWZlcmVuY2VfdG9rZW4odGhpcy50b2tlbnMuc2Vjb25kYXJ5TmFtZSwgdGhpcy5wYXJlbnQp
LAorICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5vcGVuKSwKKyAgICAgIC4uLighdGhpcy5saXN0
CisgICAgICAgID8gW10KKyAgICAgICAgOiB0aGlzLmxpc3QubWFwKChwKSA9PiB7CisgICAgICAg
ICAgICByZXR1cm4gcmhzVHlwZSA9PT0gImlkZW50aWZpZXItbGlzdCIKKyAgICAgICAgICAgICAg
PyB3LmlkZW50aWZpZXIocCwgdGhpcy5wYXJlbnQpCisgICAgICAgICAgICAgIDogcmhzVHlwZSAm
JiByaHNUeXBlLmVuZHNXaXRoKCItbGlzdCIpCisgICAgICAgICAgICAgID8gZXh0ZW5kZWRfYXR0
cmlidXRlX2xpc3RpdGVtKHApCisgICAgICAgICAgICAgIDogcC53cml0ZSh3KTsKKyAgICAgICAg
ICB9KSksCisgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLmNsb3NlKSwKKyAgICBdKTsKKyAgfQog
fQogCi1jbGFzcyBTaW1wbGVFeHRlbmRlZEF0dHJpYnV0ZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CitjbGFzcyBTaW1wbGVFeHRlbmRlZEF0
dHJpYnV0ZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFz
ZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2Vy
fSB0b2tlbmlzZXIKICAgICovCiAgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKLSAgICBjb25z
dCBuYW1lID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiKTsKKyAgICBjb25zdCBuYW1l
ID0gdG9rZW5pc2VyLmNvbnN1bWVUeXBlKCJpZGVudGlmaWVyIik7CiAgICAgaWYgKG5hbWUpIHsK
ICAgICAgIHJldHVybiBuZXcgU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGUoewogICAgICAgICBzb3Vy
Y2U6IHRva2VuaXNlci5zb3VyY2UsCiAgICAgICAgIHRva2VuczogeyBuYW1lIH0sCi0gICAgICAg
IHBhcmFtczogRXh0ZW5kZWRBdHRyaWJ1dGVQYXJhbWV0ZXJzLnBhcnNlKHRva2VuaXNlcikKKyAg
ICAgICAgcGFyYW1zOiBFeHRlbmRlZEF0dHJpYnV0ZVBhcmFtZXRlcnMucGFyc2UodG9rZW5pc2Vy
KSwKICAgICAgIH0pOwogICAgIH0KICAgfQpAQCAtMTQwMiw3ICsxNTQ5LDkgQEAgY2xhc3MgU2lt
cGxlRXh0ZW5kZWRBdHRyaWJ1dGUgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fWyJCYXMKICAgICBpZiAoIXR5cGUpIHsKICAgICAgIHJldHVybiBudWxsOwogICAg
IH0KLSAgICBjb25zdCB2YWx1ZSA9IHRoaXMucGFyYW1zLnJoc0lzTGlzdCA/IGxpc3QgOiBPYmpl
Y3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1sidW5lc2NhcGUiXSko
dG9rZW5zLnNlY29uZGFyeU5hbWUudmFsdWUpOworICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wYXJh
bXMucmhzSXNMaXN0CisgICAgICA/IGxpc3QKKyAgICAgIDogKDAsX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzNfXy51bmVzY2FwZSkodG9rZW5zLnNlY29uZGFyeU5hbWUudmFs
dWUpOwogICAgIHJldHVybiB7IHR5cGUsIHZhbHVlIH07CiAgIH0KICAgZ2V0IGFyZ3VtZW50cygp
IHsKQEAgLTE0MjAsMjEgKzE1NjksNDEgQEAgY2xhc3MgU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGUg
ZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXMKIHVuZGVz
aXJhYmxlIGZlYXR1cmUgdGhhdCBtYXkgYmUgcmVtb3ZlZCBmcm9tIFdlYiBJREwgaW4gdGhlIGZ1
dHVyZS4gUmVmZXIgdG8gdGhlIFwKIFtyZWxldmFudCB1cHN0cmVhbSBQUl0oaHR0cHM6Ly9naXRo
dWIuY29tL2hleWNhbS93ZWJpZGwvcHVsbC82MDkpIGZvciBtb3JlIFwKIGluZm9ybWF0aW9uLmA7
Ci0gICAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80
X19bInZhbGlkYXRpb25FcnJvciJdKSh0aGlzLnRva2Vucy5uYW1lLCB0aGlzLCAibm8tbm9pbnRl
cmZhY2VvYmplY3QiLCBtZXNzYWdlLCB7IGxldmVsOiAid2FybmluZyIgfSk7CisgICAgICB5aWVs
ZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy52YWxpZGF0aW9uRXJy
b3IpKAorICAgICAgICB0aGlzLnRva2Vucy5uYW1lLAorICAgICAgICB0aGlzLAorICAgICAgICAi
bm8tbm9pbnRlcmZhY2VvYmplY3QiLAorICAgICAgICBtZXNzYWdlLAorICAgICAgICB7IGxldmVs
OiAid2FybmluZyIgfQorICAgICAgKTsKICAgICB9IGVsc2UgaWYgKHJlbmFtZWRMZWdhY2llcy5o
YXMobmFtZSkpIHsKICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgXGBbJHtuYW1lfV1cYCBleHRlbmRl
ZCBhdHRyaWJ1dGUgaXMgYSBsZWdhY3kgZmVhdHVyZSBcCiB0aGF0IGlzIG5vdyByZW5hbWVkIHRv
IFxgWyR7cmVuYW1lZExlZ2FjaWVzLmdldChuYW1lKX1dXGAuIFJlZmVyIHRvIHRoZSBcCiBbcmVs
ZXZhbnQgdXBzdHJlYW0gUFJdKGh0dHBzOi8vZ2l0aHViLmNvbS9oZXljYW0vd2ViaWRsL3B1bGwv
ODcwKSBmb3IgbW9yZSBcCiBpbmZvcm1hdGlvbi5gOwotICAgICAgeWllbGQgT2JqZWN0KF9lcnJv
cl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fWyJ2YWxpZGF0aW9uRXJyb3IiXSkodGhp
cy50b2tlbnMubmFtZSwgdGhpcywgInJlbmFtZWQtbGVnYWN5IiwgbWVzc2FnZSwgeworICAgICAg
eWllbGQgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udmFsaWRhdGlv
bkVycm9yKSh0aGlzLnRva2Vucy5uYW1lLCB0aGlzLCAicmVuYW1lZC1sZWdhY3kiLCBtZXNzYWdl
LCB7CiAgICAgICAgIGxldmVsOiAid2FybmluZyIsCi0gICAgICAgIGF1dG9maXg6IHJlbmFtZUxl
Z2FjeUV4dGVuZGVkQXR0cmlidXRlKHRoaXMpCisgICAgICAgIGF1dG9maXg6IHJlbmFtZUxlZ2Fj
eUV4dGVuZGVkQXR0cmlidXRlKHRoaXMpLAogICAgICAgfSk7CiAgICAgfQogICAgIGZvciAoY29u
c3QgYXJnIG9mIHRoaXMuYXJndW1lbnRzKSB7CiAgICAgICB5aWVsZCogYXJnLnZhbGlkYXRlKGRl
ZnMpOwogICAgIH0KICAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIiku
V3JpdGVyKX0gdyAqLworICB3cml0ZSh3KSB7CisgICAgcmV0dXJuIHcudHMud3JhcChbCisgICAg
ICB3LnRzLnRyaXZpYSh0aGlzLnRva2Vucy5uYW1lLnRyaXZpYSksCisgICAgICB3LnRzLmV4dGVu
ZGVkQXR0cmlidXRlKAorICAgICAgICB3LnRzLndyYXAoWworICAgICAgICAgIHcudHMuZXh0ZW5k
ZWRBdHRyaWJ1dGVSZWZlcmVuY2UodGhpcy5uYW1lKSwKKyAgICAgICAgICB0aGlzLnBhcmFtcy53
cml0ZSh3KSwKKyAgICAgICAgXSkKKyAgICAgICksCisgICAgICB3LnRva2VuKHRoaXMudG9rZW5z
LnNlcGFyYXRvciksCisgICAgXSk7CisgIH0KIH0KIAogLyoqCkBAIC0xNDUyLDcgKzE2MjEsNyBA
QCBmdW5jdGlvbiByZW5hbWVMZWdhY3lFeHRlbmRlZEF0dHJpYnV0ZShleHRBdHRyKSB7CiAKIC8v
IE5vdGU6IHdlIHBhcnNlIHNvbWV0aGluZyBzaW1wbGVyIHRoYW4gdGhlIG9mZmljaWFsIHN5bnRh
eC4gSXQncyBhbGwgdGhhdCBldmVyCiAvLyBzZWVtcyB0byBiZSB1c2VkCi1jbGFzcyBFeHRlbmRl
ZEF0dHJpYnV0ZXMgZXh0ZW5kcyBfYXJyYXlfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMV9fWyJBcnJheUJhc2UiXSB7CitjbGFzcyBFeHRlbmRlZEF0dHJpYnV0ZXMgZXh0ZW5kcyBf
YXJyYXlfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkFycmF5QmFzZSB7CiAg
IC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tl
bmlzZXIKICAgICovCkBAIC0xNDYxLDE2ICsxNjMwLDIyIEBAIGNsYXNzIEV4dGVuZGVkQXR0cmli
dXRlcyBleHRlbmRzIF9hcnJheV9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19b
IkFyCiAgICAgdG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgiWyIpOwogICAgIGlmICgh
dG9rZW5zLm9wZW4pIHJldHVybiBuZXcgRXh0ZW5kZWRBdHRyaWJ1dGVzKHt9KTsKICAgICBjb25z
dCByZXQgPSBuZXcgRXh0ZW5kZWRBdHRyaWJ1dGVzKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNl
LCB0b2tlbnMgfSk7Ci0gICAgcmV0LnB1c2goLi4uT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8zX19bImxpc3QiXSkodG9rZW5pc2VyLCB7Ci0gICAgICBwYXJzZXI6
IFNpbXBsZUV4dGVuZGVkQXR0cmlidXRlLnBhcnNlLAotICAgICAgbGlzdE5hbWU6ICJleHRlbmRl
ZCBhdHRyaWJ1dGUiCi0gICAgfSkpOwotICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25z
dW1lKCJdIikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbmV4cGVjdGVkIGNsb3NpbmcgdG9rZW4gb2Yg
ZXh0ZW5kZWQgYXR0cmlidXRlIik7CisgICAgcmV0LnB1c2goCisgICAgICAuLi4oMCxfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmxpc3QpKHRva2VuaXNlciwgeworICAg
ICAgICBwYXJzZXI6IFNpbXBsZUV4dGVuZGVkQXR0cmlidXRlLnBhcnNlLAorICAgICAgICBsaXN0
TmFtZTogImV4dGVuZGVkIGF0dHJpYnV0ZSIsCisgICAgICB9KQorICAgICk7CisgICAgdG9rZW5z
LmNsb3NlID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCJdIikgfHwKKyAgICAgIHRva2VuaXNl
ci5lcnJvcigiVW5leHBlY3RlZCBjbG9zaW5nIHRva2VuIG9mIGV4dGVuZGVkIGF0dHJpYnV0ZSIp
OwogICAgIGlmICghcmV0Lmxlbmd0aCkgewogICAgICAgdG9rZW5pc2VyLmVycm9yKCJGb3VuZCBh
biBlbXB0eSBleHRlbmRlZCBhdHRyaWJ1dGUiKTsKICAgICB9CiAgICAgaWYgKHRva2VuaXNlci5w
cm9iZSgiWyIpKSB7Ci0gICAgICB0b2tlbmlzZXIuZXJyb3IoIklsbGVnYWwgZG91YmxlIGV4dGVu
ZGVkIGF0dHJpYnV0ZSBsaXN0cywgY29uc2lkZXIgbWVyZ2luZyB0aGVtIik7CisgICAgICB0b2tl
bmlzZXIuZXJyb3IoCisgICAgICAgICJJbGxlZ2FsIGRvdWJsZSBleHRlbmRlZCBhdHRyaWJ1dGUg
bGlzdHMsIGNvbnNpZGVyIG1lcmdpbmcgdGhlbSIKKyAgICAgICk7CiAgICAgfQogICAgIHJldHVy
biByZXQ7CiAgIH0KQEAgLTE0ODAsMTYgKzE2NTUsMjcgQEAgY2xhc3MgRXh0ZW5kZWRBdHRyaWJ1
dGVzIGV4dGVuZHMgX2FycmF5X2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1si
QXIKICAgICAgIHlpZWxkKiBleHRBdHRyLnZhbGlkYXRlKGRlZnMpOwogICAgIH0KICAgfQorCisg
IC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyKX0gdyAqLworICB3cml0
ZSh3KSB7CisgICAgaWYgKCF0aGlzLmxlbmd0aCkgcmV0dXJuICIiOworICAgIHJldHVybiB3LnRz
LndyYXAoWworICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5vcGVuKSwKKyAgICAgIC4uLnRoaXMu
bWFwKChlYSkgPT4gZWEud3JpdGUodykpLAorICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5jbG9z
ZSksCisgICAgXSk7CisgIH0KIH0KIAogCiAvKioqLyB9KSwKIC8qIDkgKi8KLS8qKiovIChmdW5j
dGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsK
Ky8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19l
eHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193
ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBv
cnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19f
LCAiQXJyYXlCYXNlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBBcnJheUJhc2U7IH0pOworLyogaGFy
bW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18s
IHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIkFycmF5QmFzZSI6ICgpID0+ICgvKiBiaW5kaW5n
ICovIEFycmF5QmFzZSkKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLy8gQHRzLWNoZWNrCiAK
IGNsYXNzIEFycmF5QmFzZSBleHRlbmRzIEFycmF5IHsKQEAgLTE0OTgsNyArMTY4NCw3IEBAIGNs
YXNzIEFycmF5QmFzZSBleHRlbmRzIEFycmF5IHsKICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGll
cyh0aGlzLCB7CiAgICAgICBzb3VyY2U6IHsgdmFsdWU6IHNvdXJjZSB9LAogICAgICAgdG9rZW5z
OiB7IHZhbHVlOiB0b2tlbnMgfSwKLSAgICAgIHBhcmVudDogeyB2YWx1ZTogbnVsbCwgd3JpdGFi
bGU6IHRydWUgfQorICAgICAgcGFyZW50OiB7IHZhbHVlOiBudWxsLCB3cml0YWJsZTogdHJ1ZSB9
LAogICAgIH0pOwogICB9CiB9CkBAIC0xNTA2LDExICsxNjkyLDEyIEBAIGNsYXNzIEFycmF5QmFz
ZSBleHRlbmRzIEFycmF5IHsKIAogLyoqKi8gfSksCiAvKiAxMCAqLwotLyoqKi8gKGZ1bmN0aW9u
KG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoq
Ki8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9y
dHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBh
Y2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAo
YmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJU
b2tlbiIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gVG9rZW47IH0pOworLyogaGFybW9ueSBleHBvcnQg
Ki8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1v
bnkgZXhwb3J0ICovICAgIldyYXBwZWRUb2tlbiI6ICgpID0+ICgvKiBiaW5kaW5nICovIFdyYXBw
ZWRUb2tlbikKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8g
dmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVx
dWlyZV9fKDYpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwogLy8gQHRzLWNo
ZWNrCkBAIC0xNTE4LDMzICsxNzA1LDM3IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBh
Y2tfZXhwb3J0c19fKTsKIAogCiAKLWNsYXNzIFRva2VuIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKK2NsYXNzIFdyYXBwZWRUb2tlbiBleHRl
bmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgog
ICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIK
ICAgICogQHBhcmFtIHtzdHJpbmd9IHR5cGUKICAgICovCiAgIHN0YXRpYyBwYXJzZXIodG9rZW5p
c2VyLCB0eXBlKSB7CiAgICAgcmV0dXJuICgpID0+IHsKLSAgICAgIGNvbnN0IHZhbHVlID0gdG9r
ZW5pc2VyLmNvbnN1bWUodHlwZSk7CisgICAgICBjb25zdCB2YWx1ZSA9IHRva2VuaXNlci5jb25z
dW1lVHlwZSh0eXBlKTsKICAgICAgIGlmICh2YWx1ZSkgewotICAgICAgICByZXR1cm4gbmV3IFRv
a2VuKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnM6IHsgdmFsdWUgfSB9KTsKKyAg
ICAgICAgcmV0dXJuIG5ldyBXcmFwcGVkVG9rZW4oeworICAgICAgICAgIHNvdXJjZTogdG9rZW5p
c2VyLnNvdXJjZSwKKyAgICAgICAgICB0b2tlbnM6IHsgdmFsdWUgfSwKKyAgICAgICAgfSk7CiAg
ICAgICB9CiAgICAgfTsKICAgfQogCiAgIGdldCB2YWx1ZSgpIHsKLSAgICByZXR1cm4gT2JqZWN0
KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0pKHRo
aXMudG9rZW5zLnZhbHVlLnZhbHVlKTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfXy51bmVzY2FwZSkodGhpcy50b2tlbnMudmFsdWUudmFsdWUp
OwogICB9CiB9CiAKIAogLyoqKi8gfSksCiAvKiAxMSAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVs
ZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChf
X3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywg
X193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVx
dWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGlu
ZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJBcmd1bWVu
dCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gQXJndW1lbnQ7IH0pOworLyogaGFybW9ueSBleHBvcnQg
Ki8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1v
bnkgZXhwb3J0ICovICAgIkFyZ3VtZW50IjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gQXJndW1lbnQp
CisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFz
ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2
KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZGVmYXVsdF9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMik7CiAvKiBoYXJtb255IGltcG9y
dCAqLyB2YXIgX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oOCk7CkBAIC0xNTYyLDcgKzE3NTMsNyBAQCBfX3dl
YnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiAKIAogCi1jbGFzcyBBcmd1
bWVudCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2Ui
XSB7CitjbGFzcyBBcmd1bWVudCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2Vy
IikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCkBAIC0xNTcwLDIxICsxNzYxLDI1IEBAIGNs
YXNzIEFyZ3VtZW50IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
X1siQmFzZSJdIHsKICAgICBjb25zdCBzdGFydF9wb3NpdGlvbiA9IHRva2VuaXNlci5wb3NpdGlv
bjsKICAgICAvKiogQHR5cGUge0Jhc2VbInRva2VucyJdfSAqLwogICAgIGNvbnN0IHRva2VucyA9
IHt9OwotICAgIGNvbnN0IHJldCA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfM19fWyJhdXRvUGFyZW50ZXIiXSkobmV3IEFyZ3VtZW50KHsgc291cmNlOiB0b2tl
bmlzZXIuc291cmNlLCB0b2tlbnMgfSkpOwotICAgIHJldC5leHRBdHRycyA9IF9leHRlbmRlZF9h
dHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkV4dGVuZGVkQXR0cmli
dXRlcyJdLnBhcnNlKHRva2VuaXNlcik7CisgICAgY29uc3QgcmV0ID0gKDAsX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5hdXRvUGFyZW50ZXIpKAorICAgICAgbmV3IEFy
Z3VtZW50KHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkKKyAgICApOworICAg
IHJldC5leHRBdHRycyA9IF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8yX18uRXh0ZW5kZWRBdHRyaWJ1dGVzLnBhcnNlKHRva2VuaXNlcik7CiAgICAgdG9r
ZW5zLm9wdGlvbmFsID0gdG9rZW5pc2VyLmNvbnN1bWUoIm9wdGlvbmFsIik7Ci0gICAgcmV0Lmlk
bFR5cGUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1si
dHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMiXSkodG9rZW5pc2VyLCAiYXJndW1lbnQtdHlw
ZSIpOworICAgIHJldC5pZGxUeXBlID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzNfXy50eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcykodG9rZW5pc2VyLCAiYXJn
dW1lbnQtdHlwZSIpOwogICAgIGlmICghcmV0LmlkbFR5cGUpIHsKICAgICAgIHJldHVybiB0b2tl
bmlzZXIudW5jb25zdW1lKHN0YXJ0X3Bvc2l0aW9uKTsKICAgICB9CiAgICAgaWYgKCF0b2tlbnMu
b3B0aW9uYWwpIHsKICAgICAgIHRva2Vucy52YXJpYWRpYyA9IHRva2VuaXNlci5jb25zdW1lKCIu
Li4iKTsKICAgICB9Ci0gICAgdG9rZW5zLm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRp
ZmllciIsIC4uLl90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siYXJn
dW1lbnROYW1lS2V5d29yZHMiXSk7CisgICAgdG9rZW5zLm5hbWUgPQorICAgICAgdG9rZW5pc2Vy
LmNvbnN1bWVUeXBlKCJpZGVudGlmaWVyIikgfHwKKyAgICAgIHRva2VuaXNlci5jb25zdW1lKC4u
Ll90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hcmd1bWVudE5hbWVL
ZXl3b3Jkcyk7CiAgICAgaWYgKCF0b2tlbnMubmFtZSkgewogICAgICAgcmV0dXJuIHRva2VuaXNl
ci51bmNvbnN1bWUoc3RhcnRfcG9zaXRpb24pOwogICAgIH0KLSAgICByZXQuZGVmYXVsdCA9IHRv
a2Vucy5vcHRpb25hbCA/IF9kZWZhdWx0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19b
IkRlZmF1bHQiXS5wYXJzZSh0b2tlbmlzZXIpIDogbnVsbDsKKyAgICByZXQuZGVmYXVsdCA9IHRv
a2Vucy5vcHRpb25hbCA/IF9kZWZhdWx0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18u
RGVmYXVsdC5wYXJzZSh0b2tlbmlzZXIpIDogbnVsbDsKICAgICByZXR1cm4gcmV0LnRoaXM7CiAg
IH0KIApAQCAtMTU5OCwzNCArMTc5Myw3MSBAQCBjbGFzcyBBcmd1bWVudCBleHRlbmRzIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICAgcmV0dXJuICEh
dGhpcy50b2tlbnMudmFyaWFkaWM7CiAgIH0KICAgZ2V0IG5hbWUoKSB7Ci0gICAgcmV0dXJuIE9i
amVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJ1bmVzY2FwZSJd
KSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy51bmVzY2FwZSkodGhpcy50b2tlbnMubmFtZS52YWx1
ZSk7CiAgIH0KIAogICAvKioKICAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3ZhbGlkYXRvci5qcyIp
LkRlZmluaXRpb25zfSBkZWZzCiAgICAqLwogICAqdmFsaWRhdGUoZGVmcykgeworICAgIHlpZWxk
KiB0aGlzLmV4dEF0dHJzLnZhbGlkYXRlKGRlZnMpOwogICAgIHlpZWxkKiB0aGlzLmlkbFR5cGUu
dmFsaWRhdGUoZGVmcyk7Ci0gICAgY29uc3QgcmVzdWx0ID0gT2JqZWN0KF92YWxpZGF0b3JzX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1siaWRsVHlwZUluY2x1ZGVzRGlj
dGlvbmFyeSJdKSh0aGlzLmlkbFR5cGUsIGRlZnMsIHsgdXNlTnVsbGFibGVJbm5lcjogdHJ1ZSB9
KTsKKyAgICBjb25zdCByZXN1bHQgPSAoMCxfdmFsaWRhdG9yc19oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV82X18uaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeSkodGhpcy5pZGxU
eXBlLCBkZWZzLCB7CisgICAgICB1c2VOdWxsYWJsZUlubmVyOiB0cnVlLAorICAgIH0pOwogICAg
IGlmIChyZXN1bHQpIHsKICAgICAgIGlmICh0aGlzLmlkbFR5cGUubnVsbGFibGUpIHsKICAgICAg
ICAgY29uc3QgbWVzc2FnZSA9IGBEaWN0aW9uYXJ5IGFyZ3VtZW50cyBjYW5ub3QgYmUgbnVsbGFi
bGUuYDsKLSAgICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfNV9fWyJ2YWxpZGF0aW9uRXJyb3IiXSkodGhpcy50b2tlbnMubmFtZSwgdGhpcywgIm5v
LW51bGxhYmxlLWRpY3QtYXJnIiwgbWVzc2FnZSk7CisgICAgICAgIHlpZWxkICgwLF9lcnJvcl9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnZhbGlkYXRpb25FcnJvcikoCisgICAgICAg
ICAgdGhpcy50b2tlbnMubmFtZSwKKyAgICAgICAgICB0aGlzLAorICAgICAgICAgICJuby1udWxs
YWJsZS1kaWN0LWFyZyIsCisgICAgICAgICAgbWVzc2FnZQorICAgICAgICApOwogICAgICAgfSBl
bHNlIGlmICghdGhpcy5vcHRpb25hbCkgewotICAgICAgICBpZiAodGhpcy5wYXJlbnQgJiYgIU9i
amVjdChfdmFsaWRhdG9yc19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19b
ImRpY3Rpb25hcnlJbmNsdWRlc1JlcXVpcmVkRmllbGQiXSkocmVzdWx0LmRpY3Rpb25hcnksIGRl
ZnMpICYmIGlzTGFzdFJlcXVpcmVkQXJndW1lbnQodGhpcykpIHsKKyAgICAgICAgaWYgKAorICAg
ICAgICAgIHRoaXMucGFyZW50ICYmCisgICAgICAgICAgISgwLF92YWxpZGF0b3JzX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5kaWN0aW9uYXJ5SW5jbHVkZXNSZXF1aXJl
ZEZpZWxkKShyZXN1bHQuZGljdGlvbmFyeSwgZGVmcykgJiYKKyAgICAgICAgICBpc0xhc3RSZXF1
aXJlZEFyZ3VtZW50KHRoaXMpCisgICAgICAgICkgewogICAgICAgICAgIGNvbnN0IG1lc3NhZ2Ug
PSBgRGljdGlvbmFyeSBhcmd1bWVudCBtdXN0IGJlIG9wdGlvbmFsIGlmIGl0IGhhcyBubyByZXF1
aXJlZCBmaWVsZHNgOwotICAgICAgICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzVfX1sidmFsaWRhdGlvbkVycm9yIl0pKHRoaXMudG9rZW5zLm5hbWUs
IHRoaXMsICJkaWN0LWFyZy1vcHRpb25hbCIsIG1lc3NhZ2UsIHsKLSAgICAgICAgICAgIGF1dG9m
aXg6IGF1dG9maXhEaWN0aW9uYXJ5QXJndW1lbnRPcHRpb25hbGl0eSh0aGlzKQotICAgICAgICAg
IH0pOworICAgICAgICAgIHlpZWxkICgwLF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfNV9fLnZhbGlkYXRpb25FcnJvcikoCisgICAgICAgICAgICB0aGlzLnRva2Vucy5uYW1lLAor
ICAgICAgICAgICAgdGhpcywKKyAgICAgICAgICAgICJkaWN0LWFyZy1vcHRpb25hbCIsCisgICAg
ICAgICAgICBtZXNzYWdlLAorICAgICAgICAgICAgeworICAgICAgICAgICAgICBhdXRvZml4OiBh
dXRvZml4RGljdGlvbmFyeUFyZ3VtZW50T3B0aW9uYWxpdHkodGhpcyksCisgICAgICAgICAgICB9
CisgICAgICAgICAgKTsKICAgICAgICAgfQogICAgICAgfSBlbHNlIGlmICghdGhpcy5kZWZhdWx0
KSB7CiAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgT3B0aW9uYWwgZGljdGlvbmFyeSBhcmd1bWVu
dHMgbXVzdCBoYXZlIGEgZGVmYXVsdCB2YWx1ZSBvZiBcYHt9XGAuYDsKLSAgICAgICAgeWllbGQg
T2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fWyJ2YWxpZGF0aW9u
RXJyb3IiXSkodGhpcy50b2tlbnMubmFtZSwgdGhpcywgImRpY3QtYXJnLWRlZmF1bHQiLCBtZXNz
YWdlLCB7Ci0gICAgICAgICAgYXV0b2ZpeDogYXV0b2ZpeE9wdGlvbmFsRGljdGlvbmFyeURlZmF1
bHRWYWx1ZSh0aGlzKQotICAgICAgICB9KTsKKyAgICAgICAgeWllbGQgKDAsX2Vycm9yX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18udmFsaWRhdGlvbkVycm9yKSgKKyAgICAgICAgICB0
aGlzLnRva2Vucy5uYW1lLAorICAgICAgICAgIHRoaXMsCisgICAgICAgICAgImRpY3QtYXJnLWRl
ZmF1bHQiLAorICAgICAgICAgIG1lc3NhZ2UsCisgICAgICAgICAgeworICAgICAgICAgICAgYXV0
b2ZpeDogYXV0b2ZpeE9wdGlvbmFsRGljdGlvbmFyeURlZmF1bHRWYWx1ZSh0aGlzKSwKKyAgICAg
ICAgICB9CisgICAgICAgICk7CiAgICAgICB9CiAgICAgfQogICB9CisKKyAgLyoqIEBwYXJhbSB7
aW1wb3J0KCIuLi93cml0ZXIuanMiKS5Xcml0ZXJ9IHcgKi8KKyAgd3JpdGUodykgeworICAgIHJl
dHVybiB3LnRzLndyYXAoWworICAgICAgdGhpcy5leHRBdHRycy53cml0ZSh3KSwKKyAgICAgIHcu
dG9rZW4odGhpcy50b2tlbnMub3B0aW9uYWwpLAorICAgICAgdy50cy50eXBlKHRoaXMuaWRsVHlw
ZS53cml0ZSh3KSksCisgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnZhcmlhZGljKSwKKyAgICAg
IHcubmFtZV90b2tlbih0aGlzLnRva2Vucy5uYW1lLCB7IGRhdGE6IHRoaXMgfSksCisgICAgICB0
aGlzLmRlZmF1bHQgPyB0aGlzLmRlZmF1bHQud3JpdGUodykgOiAiIiwKKyAgICAgIHcudG9rZW4o
dGhpcy50b2tlbnMuc2VwYXJhdG9yKSwKKyAgICBdKTsKKyAgfQogfQogCiAvKioKQEAgLTE2MzQs
NyArMTg2Niw3IEBAIGNsYXNzIEFyZ3VtZW50IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKIGZ1bmN0aW9uIGlzTGFzdFJlcXVpcmVkQXJndW1l
bnQoYXJnKSB7CiAgIGNvbnN0IGxpc3QgPSBhcmcucGFyZW50LmFyZ3VtZW50cyB8fCBhcmcucGFy
ZW50Lmxpc3Q7CiAgIGNvbnN0IGluZGV4ID0gbGlzdC5pbmRleE9mKGFyZyk7Ci0gIGNvbnN0IHJl
cXVpcmVkRXhpc3RzID0gbGlzdC5zbGljZShpbmRleCArIDEpLnNvbWUoYSA9PiAhYS5vcHRpb25h
bCk7CisgIGNvbnN0IHJlcXVpcmVkRXhpc3RzID0gbGlzdC5zbGljZShpbmRleCArIDEpLnNvbWUo
KGEpID0+ICFhLm9wdGlvbmFsKTsKICAgcmV0dXJuICFyZXF1aXJlZEV4aXN0czsKIH0KIApAQCAt
MTY0Myw4ICsxODc1LDEyIEBAIGZ1bmN0aW9uIGlzTGFzdFJlcXVpcmVkQXJndW1lbnQoYXJnKSB7
CiAgKi8KIGZ1bmN0aW9uIGF1dG9maXhEaWN0aW9uYXJ5QXJndW1lbnRPcHRpb25hbGl0eShhcmcp
IHsKICAgcmV0dXJuICgpID0+IHsKLSAgICBjb25zdCBmaXJzdFRva2VuID0gT2JqZWN0KF9oZWxw
ZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bImdldEZpcnN0VG9rZW4iXSkoYXJn
LmlkbFR5cGUpOwotICAgIGFyZy50b2tlbnMub3B0aW9uYWwgPSB7IHR5cGU6ICJvcHRpb25hbCIs
IHZhbHVlOiAib3B0aW9uYWwiLCB0cml2aWE6IGZpcnN0VG9rZW4udHJpdmlhIH07CisgICAgY29u
c3QgZmlyc3RUb2tlbiA9ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8z
X18uZ2V0Rmlyc3RUb2tlbikoYXJnLmlkbFR5cGUpOworICAgIGFyZy50b2tlbnMub3B0aW9uYWwg
PSB7CisgICAgICB0eXBlOiAib3B0aW9uYWwiLAorICAgICAgdmFsdWU6ICJvcHRpb25hbCIsCisg
ICAgICB0cml2aWE6IGZpcnN0VG9rZW4udHJpdmlhLAorICAgIH07CiAgICAgZmlyc3RUb2tlbi50
cml2aWEgPSAiICI7CiAgICAgYXV0b2ZpeE9wdGlvbmFsRGljdGlvbmFyeURlZmF1bHRWYWx1ZShh
cmcpKCk7CiAgIH07CkBAIC0xNjU1LDI0ICsxODkxLDI1IEBAIGZ1bmN0aW9uIGF1dG9maXhEaWN0
aW9uYXJ5QXJndW1lbnRPcHRpb25hbGl0eShhcmcpIHsKICAqLwogZnVuY3Rpb24gYXV0b2ZpeE9w
dGlvbmFsRGljdGlvbmFyeURlZmF1bHRWYWx1ZShhcmcpIHsKICAgcmV0dXJuICgpID0+IHsKLSAg
ICBhcmcuZGVmYXVsdCA9IF9kZWZhdWx0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19b
IkRlZmF1bHQiXS5wYXJzZShuZXcgX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfNF9fWyJUb2tlbmlzZXIiXSgiID0ge30iKSk7CisgICAgYXJnLmRlZmF1bHQgPSBfZGVmYXVs
dF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkRlZmF1bHQucGFyc2UobmV3IF90b2tl
bmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5Ub2tlbmlzZXIoIiA9IHt9Iikp
OwogICB9OwogfQogCiAKIC8qKiovIH0pLAogLyogMTIgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1
bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgo
X191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18s
IF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3Jl
cXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRp
bmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiRGVmYXVs
dCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gRGVmYXVsdDsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAq
LyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgeworLyogaGFybW9u
eSBleHBvcnQgKi8gICAiRGVmYXVsdCI6ICgpID0+ICgvKiBiaW5kaW5nICovIERlZmF1bHQpCisv
KiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsK
IC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKIAogCiAKLWNsYXNzIERlZmF1bHQg
ZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewor
Y2xhc3MgRGVmYXVsdCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9r
ZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCkBAIC0xNjgxLDE2ICsxOTE4LDI4IEBAIGNsYXNzIERl
ZmF1bHQgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNl
Il0gewogICAgIGlmICghYXNzaWduKSB7CiAgICAgICByZXR1cm4gbnVsbDsKICAgICB9Ci0gICAg
Y29uc3QgZGVmID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X19bImNvbnN0X3ZhbHVlIl0pKHRva2VuaXNlcikgfHwgdG9rZW5pc2VyLmNvbnN1bWUoInN0cmlu
ZyIsICJudWxsIiwgIlsiLCAieyIpIHx8IHRva2VuaXNlci5lcnJvcigiTm8gdmFsdWUgZm9yIGRl
ZmF1bHQiKTsKKyAgICBjb25zdCBkZWYgPQorICAgICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzFfXy5jb25zdF92YWx1ZSkodG9rZW5pc2VyKSB8fAorICAgICAgdG9r
ZW5pc2VyLmNvbnN1bWVUeXBlKCJzdHJpbmciKSB8fAorICAgICAgdG9rZW5pc2VyLmNvbnN1bWUo
Im51bGwiLCAiWyIsICJ7IikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiTm8gdmFsdWUgZm9y
IGRlZmF1bHQiKTsKICAgICBjb25zdCBleHByZXNzaW9uID0gW2RlZl07Ci0gICAgaWYgKGRlZi50
eXBlID09PSAiWyIpIHsKLSAgICAgIGNvbnN0IGNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIl0i
KSB8fCB0b2tlbmlzZXIuZXJyb3IoIkRlZmF1bHQgc2VxdWVuY2UgdmFsdWUgbXVzdCBiZSBlbXB0
eSIpOworICAgIGlmIChkZWYudmFsdWUgPT09ICJbIikgeworICAgICAgY29uc3QgY2xvc2UgPQor
ICAgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiXSIpIHx8CisgICAgICAgIHRva2VuaXNlci5lcnJv
cigiRGVmYXVsdCBzZXF1ZW5jZSB2YWx1ZSBtdXN0IGJlIGVtcHR5Iik7CiAgICAgICBleHByZXNz
aW9uLnB1c2goY2xvc2UpOwotICAgIH0gZWxzZSBpZiAoZGVmLnR5cGUgPT09ICJ7IikgewotICAg
ICAgY29uc3QgY2xvc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgifSIpIHx8IHRva2VuaXNlci5lcnJv
cigiRGVmYXVsdCBkaWN0aW9uYXJ5IHZhbHVlIG11c3QgYmUgZW1wdHkiKTsKKyAgICB9IGVsc2Ug
aWYgKGRlZi52YWx1ZSA9PT0gInsiKSB7CisgICAgICBjb25zdCBjbG9zZSA9CisgICAgICAgIHRv
a2VuaXNlci5jb25zdW1lKCJ9IikgfHwKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJEZWZhdWx0
IGRpY3Rpb25hcnkgdmFsdWUgbXVzdCBiZSBlbXB0eSIpOwogICAgICAgZXhwcmVzc2lvbi5wdXNo
KGNsb3NlKTsKICAgICB9Ci0gICAgcmV0dXJuIG5ldyBEZWZhdWx0KHsgc291cmNlOiB0b2tlbmlz
ZXIuc291cmNlLCB0b2tlbnM6IHsgYXNzaWduIH0sIGV4cHJlc3Npb24gfSk7CisgICAgcmV0dXJu
IG5ldyBEZWZhdWx0KHsKKyAgICAgIHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwKKyAgICAgIHRv
a2VuczogeyBhc3NpZ24gfSwKKyAgICAgIGV4cHJlc3Npb24sCisgICAgfSk7CiAgIH0KIAogICBj
b25zdHJ1Y3Rvcih7IHNvdXJjZSwgdG9rZW5zLCBleHByZXNzaW9uIH0pIHsKQEAgLTE3MDAsMjQg
KzE5NDksMzMgQEAgY2xhc3MgRGVmYXVsdCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgIH0KIAogICBnZXQgdHlwZSgpIHsKLSAgICByZXR1
cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImNvbnN0
X2RhdGEiXSkodGhpcy5leHByZXNzaW9uWzBdKS50eXBlOworICAgIHJldHVybiAoMCxfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmNvbnN0X2RhdGEpKHRoaXMuZXhwcmVz
c2lvblswXSkudHlwZTsKICAgfQogICBnZXQgdmFsdWUoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChf
aGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJjb25zdF9kYXRhIl0pKHRo
aXMuZXhwcmVzc2lvblswXSkudmFsdWU7CisgICAgcmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX18uY29uc3RfZGF0YSkodGhpcy5leHByZXNzaW9uWzBdKS52
YWx1ZTsKICAgfQogICBnZXQgbmVnYXRpdmUoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJjb25zdF9kYXRhIl0pKHRoaXMuZXhw
cmVzc2lvblswXSkubmVnYXRpdmU7CisgICAgcmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8xX18uY29uc3RfZGF0YSkodGhpcy5leHByZXNzaW9uWzBdKS5uZWdh
dGl2ZTsKKyAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVy
KX0gdyAqLworICB3cml0ZSh3KSB7CisgICAgcmV0dXJuIHcudHMud3JhcChbCisgICAgICB3LnRv
a2VuKHRoaXMudG9rZW5zLmFzc2lnbiksCisgICAgICAuLi50aGlzLmV4cHJlc3Npb24ubWFwKCh0
KSA9PiB3LnRva2VuKHQpKSwKKyAgICBdKTsKICAgfQogfQogCiAKIC8qKiovIH0pLAogLyogMTMg
Ki8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFj
a19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxl
X18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVz
ZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwot
LyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dl
YnBhY2tfZXhwb3J0c19fLCAiT3BlcmF0aW9uIiwgZnVuY3Rpb24oKSB7IHJldHVybiBPcGVyYXRp
b247IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2Vi
cGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIk9wZXJhdGlvbiI6ICgp
ID0+ICgvKiBiaW5kaW5nICovIE9wZXJhdGlvbikKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwog
LyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVx
dWlyZV9fKDQpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJvcl9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKQEAgLTE3MjUsNyAr
MTk4Myw3IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAog
CiAKLWNsYXNzIE9wZXJhdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX19bIkJhc2UiXSB7CitjbGFzcyBPcGVyYXRpb24gZXh0ZW5kcyBfYmFzZV9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkJhc2UgewogICAvKioKICAgICogQHR5cGVkZWYge2lt
cG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW59IFRva2VuCiAgICAqCkBAIC0xNzM2LDcgKzE5
OTQsOSBAQCBjbGFzcyBPcGVyYXRpb24gZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgKi8KICAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwg
eyBzcGVjaWFsLCByZWd1bGFyIH0gPSB7fSkgewogICAgIGNvbnN0IHRva2VucyA9IHsgc3BlY2lh
bCB9OwotICAgIGNvbnN0IHJldCA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMV9fWyJhdXRvUGFyZW50ZXIiXSkobmV3IE9wZXJhdGlvbih7IHNvdXJjZTogdG9r
ZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pKTsKKyAgICBjb25zdCByZXQgPSAoMCxfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmF1dG9QYXJlbnRlcikoCisgICAgICBuZXcg
T3BlcmF0aW9uKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkKKyAgICApOwog
ICAgIGlmIChzcGVjaWFsICYmIHNwZWNpYWwudmFsdWUgPT09ICJzdHJpbmdpZmllciIpIHsKICAg
ICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7Iik7CiAgICAgICBp
ZiAodG9rZW5zLnRlcm1pbmF0aW9uKSB7CkBAIC0xNzQ3LDEyICsyMDA3LDE4IEBAIGNsYXNzIE9w
ZXJhdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJh
c2UiXSB7CiAgICAgaWYgKCFzcGVjaWFsICYmICFyZWd1bGFyKSB7CiAgICAgICB0b2tlbnMuc3Bl
Y2lhbCA9IHRva2VuaXNlci5jb25zdW1lKCJnZXR0ZXIiLCAic2V0dGVyIiwgImRlbGV0ZXIiKTsK
ICAgICB9Ci0gICAgcmV0LmlkbFR5cGUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfX1sicmV0dXJuX3R5cGUiXSkodG9rZW5pc2VyKSB8fCB0b2tlbmlzZXIu
ZXJyb3IoIk1pc3NpbmcgcmV0dXJuIHR5cGUiKTsKLSAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNl
ci5jb25zdW1lKCJpZGVudGlmaWVyIiwgImluY2x1ZGVzIik7Ci0gICAgdG9rZW5zLm9wZW4gPSB0
b2tlbmlzZXIuY29uc3VtZSgiKCIpIHx8IHRva2VuaXNlci5lcnJvcigiSW52YWxpZCBvcGVyYXRp
b24iKTsKLSAgICByZXQuYXJndW1lbnRzID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX19bImFyZ3VtZW50X2xpc3QiXSkodG9rZW5pc2VyKTsKLSAgICB0b2tl
bnMuY2xvc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50
ZXJtaW5hdGVkIG9wZXJhdGlvbiIpOwotICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNl
ci5jb25zdW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgb3BlcmF0aW9u
LCBleHBlY3RlZCBgO2AiKTsKKyAgICByZXQuaWRsVHlwZSA9CisgICAgICAoMCxfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnJldHVybl90eXBlKSh0b2tlbmlzZXIpIHx8
IHRva2VuaXNlci5lcnJvcigiTWlzc2luZyByZXR1cm4gdHlwZSIpOworICAgIHRva2Vucy5uYW1l
ID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lVHlwZSgiaWRlbnRpZmllciIpIHx8IHRva2VuaXNl
ci5jb25zdW1lKCJpbmNsdWRlcyIpOworICAgIHRva2Vucy5vcGVuID0KKyAgICAgIHRva2VuaXNl
ci5jb25zdW1lKCIoIikgfHwgdG9rZW5pc2VyLmVycm9yKCJJbnZhbGlkIG9wZXJhdGlvbiIpOwor
ICAgIHJldC5hcmd1bWVudHMgPSAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMV9fLmFyZ3VtZW50X2xpc3QpKHRva2VuaXNlcik7CisgICAgdG9rZW5zLmNsb3NlID0KKyAg
ICAgIHRva2VuaXNlci5jb25zdW1lKCIpIikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0
ZWQgb3BlcmF0aW9uIik7CisgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0KKyAgICAgIHRva2VuaXNl
ci5jb25zdW1lKCI7IikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIG9w
ZXJhdGlvbiwgZXhwZWN0ZWQgYDtgIik7CiAgICAgcmV0dXJuIHJldC50aGlzOwogICB9CiAKQEAg
LTE3NjQsNyArMjAzMCw3IEBAIGNsYXNzIE9wZXJhdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICAgaWYgKCFuYW1lKSB7CiAgICAg
ICByZXR1cm4gIiI7CiAgICAgfQotICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfX1sidW5lc2NhcGUiXSkobmFtZS52YWx1ZSk7CisgICAgcmV0
dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udW5lc2NhcGUp
KG5hbWUudmFsdWUpOwogICB9CiAgIGdldCBzcGVjaWFsKCkgewogICAgIGlmICghdGhpcy50b2tl
bnMuc3BlY2lhbCkgewpAQCAtMTc3NCw5ICsyMDQwLDEwIEBAIGNsYXNzIE9wZXJhdGlvbiBleHRl
bmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgIH0K
IAogICAqdmFsaWRhdGUoZGVmcykgeworICAgIHlpZWxkKiB0aGlzLmV4dEF0dHJzLnZhbGlkYXRl
KGRlZnMpOwogICAgIGlmICghdGhpcy5uYW1lICYmIFsiIiwgInN0YXRpYyJdLmluY2x1ZGVzKHRo
aXMuc3BlY2lhbCkpIHsKICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgUmVndWxhciBvciBzdGF0aWMg
b3BlcmF0aW9ucyBtdXN0IGhhdmUgYm90aCBhIHJldHVybiB0eXBlIGFuZCBhbiBpZGVudGlmaWVy
LmA7Ci0gICAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8yX19bInZhbGlkYXRpb25FcnJvciJdKSh0aGlzLnRva2Vucy5vcGVuLCB0aGlzLCAiaW5jb21w
bGV0ZS1vcCIsIG1lc3NhZ2UpOworICAgICAgeWllbGQgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8yX18udmFsaWRhdGlvbkVycm9yKSh0aGlzLnRva2Vucy5vcGVuLCB0aGlz
LCAiaW5jb21wbGV0ZS1vcCIsIG1lc3NhZ2UpOwogICAgIH0KICAgICBpZiAodGhpcy5pZGxUeXBl
KSB7CiAgICAgICB5aWVsZCogdGhpcy5pZGxUeXBlLnZhbGlkYXRlKGRlZnMpOwpAQCAtMTc4NSwy
OSArMjA1Miw3MCBAQCBjbGFzcyBPcGVyYXRpb24gZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgICAgeWllbGQqIGFyZ3VtZW50LnZhbGlk
YXRlKGRlZnMpOwogICAgIH0KICAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVy
LmpzIikuV3JpdGVyfSB3ICovCisgIHdyaXRlKHcpIHsKKyAgICBjb25zdCB7IHBhcmVudCB9ID0g
dGhpczsKKyAgICBjb25zdCBib2R5ID0gdGhpcy5pZGxUeXBlCisgICAgICA/IFsKKyAgICAgICAg
ICB3LnRzLnR5cGUodGhpcy5pZGxUeXBlLndyaXRlKHcpKSwKKyAgICAgICAgICB3Lm5hbWVfdG9r
ZW4odGhpcy50b2tlbnMubmFtZSwgeyBkYXRhOiB0aGlzLCBwYXJlbnQgfSksCisgICAgICAgICAg
dy50b2tlbih0aGlzLnRva2Vucy5vcGVuKSwKKyAgICAgICAgICB3LnRzLndyYXAodGhpcy5hcmd1
bWVudHMubWFwKChhcmcpID0+IGFyZy53cml0ZSh3KSkpLAorICAgICAgICAgIHcudG9rZW4odGhp
cy50b2tlbnMuY2xvc2UpLAorICAgICAgICBdCisgICAgICA6IFtdOworICAgIHJldHVybiB3LnRz
LmRlZmluaXRpb24oCisgICAgICB3LnRzLndyYXAoWworICAgICAgICB0aGlzLmV4dEF0dHJzLndy
aXRlKHcpLAorICAgICAgICB0aGlzLnRva2Vucy5uYW1lCisgICAgICAgICAgPyB3LnRva2VuKHRo
aXMudG9rZW5zLnNwZWNpYWwpCisgICAgICAgICAgOiB3LnRva2VuKHRoaXMudG9rZW5zLnNwZWNp
YWwsIHcudHMubmFtZWxlc3MsIHsgZGF0YTogdGhpcywgcGFyZW50IH0pLAorICAgICAgICAuLi5i
b2R5LAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAgICAgIF0p
LAorICAgICAgeyBkYXRhOiB0aGlzLCBwYXJlbnQgfQorICAgICk7CisgIH0KIH0KIAogCiAvKioq
LyB9KSwKIC8qIDE0ICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0
c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193
ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9f
KSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tf
ZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVx
dWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkF0dHJpYnV0ZSIsIGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gQXR0cmlidXRlOyB9KTsKLS8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKLS8q
IGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9f
d2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4
cG9ydCAqLyAgICJBdHRyaWJ1dGUiOiAoKSA9PiAoLyogYmluZGluZyAqLyBBdHRyaWJ1dGUpCisv
KiBoYXJtb255IGV4cG9ydCAqLyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3Jf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7
CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3ZhbGlkYXRvcnNfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3KTsKKy8qIGhhcm1v
bnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0g
X193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0
KTsKKy8vIEB0cy1jaGVjaworCiAKIAogCi1jbGFzcyBBdHRyaWJ1dGUgZXh0ZW5kcyBfYmFzZV9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0geworCisKK2NsYXNzIEF0dHJp
YnV0ZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQmFzZSB7
CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW5pc2Vy
fSB0b2tlbmlzZXIKKyAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zXQorICAgKiBAcGFyYW0g
e2ltcG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW59IFtvcHRpb25zLnNwZWNpYWxdCisgICAq
IEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubm9Jbmhlcml0XQorICAgKiBAcGFyYW0ge2Jvb2xl
YW59IFtvcHRpb25zLnJlYWRvbmx5XQogICAgKi8KLSAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwg
eyBzcGVjaWFsLCBub0luaGVyaXQgPSBmYWxzZSwgcmVhZG9ubHkgPSBmYWxzZSB9ID0ge30pIHsK
KyAgc3RhdGljIHBhcnNlKAorICAgIHRva2VuaXNlciwKKyAgICB7IHNwZWNpYWwsIG5vSW5oZXJp
dCA9IGZhbHNlLCByZWFkb25seSA9IGZhbHNlIH0gPSB7fQorICApIHsKICAgICBjb25zdCBzdGFy
dF9wb3NpdGlvbiA9IHRva2VuaXNlci5wb3NpdGlvbjsKICAgICBjb25zdCB0b2tlbnMgPSB7IHNw
ZWNpYWwgfTsKLSAgICBjb25zdCByZXQgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfX1siYXV0b1BhcmVudGVyIl0pKG5ldyBBdHRyaWJ1dGUoeyBzb3VyY2U6
IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSk7CisgICAgY29uc3QgcmV0ID0gKDAsX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5hdXRvUGFyZW50ZXIpKAorICAgICAg
bmV3IEF0dHJpYnV0ZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pCisgICAg
KTsKICAgICBpZiAoIXNwZWNpYWwgJiYgIW5vSW5oZXJpdCkgewogICAgICAgdG9rZW5zLnNwZWNp
YWwgPSB0b2tlbmlzZXIuY29uc3VtZSgiaW5oZXJpdCIpOwogICAgIH0KQEAgLTE4MjMsMTMgKzIx
MzEsMTYgQEAgY2xhc3MgQXR0cmlidXRlIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICAgIHRva2VuaXNlci51bmNvbnN1bWUoc3RhcnRf
cG9zaXRpb24pOwogICAgICAgcmV0dXJuOwogICAgIH0KLSAgICByZXQuaWRsVHlwZSA9IE9iamVj
dChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ0eXBlX3dpdGhfZXh0
ZW5kZWRfYXR0cmlidXRlcyJdKSh0b2tlbmlzZXIsICJhdHRyaWJ1dGUtdHlwZSIpIHx8IHRva2Vu
aXNlci5lcnJvcigiQXR0cmlidXRlIGxhY2tzIGEgdHlwZSIpOwotICAgIHN3aXRjaCAocmV0Lmlk
bFR5cGUuZ2VuZXJpYykgewotICAgICAgY2FzZSAic2VxdWVuY2UiOgotICAgICAgY2FzZSAicmVj
b3JkIjogdG9rZW5pc2VyLmVycm9yKGBBdHRyaWJ1dGVzIGNhbm5vdCBhY2NlcHQgJHtyZXQuaWRs
VHlwZS5nZW5lcmljfSB0eXBlc2ApOwotICAgIH0KLSAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNl
ci5jb25zdW1lKCJpZGVudGlmaWVyIiwgImFzeW5jIiwgInJlcXVpcmVkIikgfHwgdG9rZW5pc2Vy
LmVycm9yKCJBdHRyaWJ1dGUgbGFja3MgYSBuYW1lIik7Ci0gICAgdG9rZW5zLnRlcm1pbmF0aW9u
ID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRl
ZCBhdHRyaWJ1dGUsIGV4cGVjdGVkIGA7YCIpOworICAgIHJldC5pZGxUeXBlID0KKyAgICAgICgw
LF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udHlwZV93aXRoX2V4dGVu
ZGVkX2F0dHJpYnV0ZXMpKHRva2VuaXNlciwgImF0dHJpYnV0ZS10eXBlIikgfHwKKyAgICAgIHRv
a2VuaXNlci5lcnJvcigiQXR0cmlidXRlIGxhY2tzIGEgdHlwZSIpOworICAgIHRva2Vucy5uYW1l
ID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lVHlwZSgiaWRlbnRpZmllciIpIHx8CisgICAgICB0
b2tlbmlzZXIuY29uc3VtZSgiYXN5bmMiLCAicmVxdWlyZWQiKSB8fAorICAgICAgdG9rZW5pc2Vy
LmVycm9yKCJBdHRyaWJ1dGUgbGFja3MgYSBuYW1lIik7CisgICAgdG9rZW5zLnRlcm1pbmF0aW9u
ID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJv
cigiVW50ZXJtaW5hdGVkIGF0dHJpYnV0ZSwgZXhwZWN0ZWQgYDtgIik7CiAgICAgcmV0dXJuIHJl
dC50aGlzOwogICB9CiAKQEAgLTE4NDYsMjMgKzIxNTcsNzAgQEAgY2xhc3MgQXR0cmlidXRlIGV4
dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAg
ICByZXR1cm4gISF0aGlzLnRva2Vucy5yZWFkb25seTsKICAgfQogICBnZXQgbmFtZSgpIHsKLSAg
ICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19b
InVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLm5hbWUudmFsdWUpOworICAgIHJldHVybiAoMCxfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnVuZXNjYXBlKSh0aGlzLnRva2Vu
cy5uYW1lLnZhbHVlKTsKICAgfQogCiAgICp2YWxpZGF0ZShkZWZzKSB7CiAgICAgeWllbGQqIHRo
aXMuZXh0QXR0cnMudmFsaWRhdGUoZGVmcyk7CiAgICAgeWllbGQqIHRoaXMuaWRsVHlwZS52YWxp
ZGF0ZShkZWZzKTsKKworICAgIHN3aXRjaCAodGhpcy5pZGxUeXBlLmdlbmVyaWMpIHsKKyAgICAg
IGNhc2UgInNlcXVlbmNlIjoKKyAgICAgIGNhc2UgInJlY29yZCI6IHsKKyAgICAgICAgY29uc3Qg
bWVzc2FnZSA9IGBBdHRyaWJ1dGVzIGNhbm5vdCBhY2NlcHQgJHt0aGlzLmlkbFR5cGUuZ2VuZXJp
Y30gdHlwZXMuYDsKKyAgICAgICAgeWllbGQgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX18udmFsaWRhdGlvbkVycm9yKSgKKyAgICAgICAgICB0aGlzLnRva2Vucy5uYW1l
LAorICAgICAgICAgIHRoaXMsCisgICAgICAgICAgImF0dHItaW52YWxpZC10eXBlIiwKKyAgICAg
ICAgICBtZXNzYWdlCisgICAgICAgICk7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAg
ZGVmYXVsdDogeworICAgICAgICBjb25zdCB7IHJlZmVyZW5jZSB9ID0KKyAgICAgICAgICAoMCxf
dmFsaWRhdG9yc19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uaWRsVHlw
ZUluY2x1ZGVzRGljdGlvbmFyeSkodGhpcy5pZGxUeXBlLCBkZWZzKSB8fCB7fTsKKyAgICAgICAg
aWYgKHJlZmVyZW5jZSkgeworICAgICAgICAgIGNvbnN0IHRhcmdldFRva2VuID0gKHRoaXMuaWRs
VHlwZS51bmlvbiA/IHJlZmVyZW5jZSA6IHRoaXMuaWRsVHlwZSkKKyAgICAgICAgICAgIC50b2tl
bnMuYmFzZTsKKyAgICAgICAgICBjb25zdCBtZXNzYWdlID0gIkF0dHJpYnV0ZXMgY2Fubm90IGFj
Y2VwdCBkaWN0aW9uYXJ5IHR5cGVzLiI7CisgICAgICAgICAgeWllbGQgKDAsX2Vycm9yX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udmFsaWRhdGlvbkVycm9yKSgKKyAgICAgICAgICAg
IHRhcmdldFRva2VuLAorICAgICAgICAgICAgdGhpcywKKyAgICAgICAgICAgICJhdHRyLWludmFs
aWQtdHlwZSIsCisgICAgICAgICAgICBtZXNzYWdlCisgICAgICAgICAgKTsKKyAgICAgICAgfQor
ICAgICAgfQorICAgIH0KKyAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpz
IikuV3JpdGVyfSB3ICovCisgIHdyaXRlKHcpIHsKKyAgICBjb25zdCB7IHBhcmVudCB9ID0gdGhp
czsKKyAgICByZXR1cm4gdy50cy5kZWZpbml0aW9uKAorICAgICAgdy50cy53cmFwKFsKKyAgICAg
ICAgdGhpcy5leHRBdHRycy53cml0ZSh3KSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5z
cGVjaWFsKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5yZWFkb25seSksCisgICAgICAg
IHcudG9rZW4odGhpcy50b2tlbnMuYmFzZSksCisgICAgICAgIHcudHMudHlwZSh0aGlzLmlkbFR5
cGUud3JpdGUodykpLAorICAgICAgICB3Lm5hbWVfdG9rZW4odGhpcy50b2tlbnMubmFtZSwgeyBk
YXRhOiB0aGlzLCBwYXJlbnQgfSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMudGVybWlu
YXRpb24pLAorICAgICAgXSksCisgICAgICB7IGRhdGE6IHRoaXMsIHBhcmVudCB9CisgICAgKTsK
ICAgfQogfQogCiAKIC8qKiovIH0pLAogLyogMTUgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUs
IF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191
bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9f
d2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVp
cmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcp
ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiRW51bSIsIGZ1
bmN0aW9uKCkgeyByZXR1cm4gRW51bTsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBh
Y2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBvcnQg
Ki8gICAiRW51bSI6ICgpID0+ICgvKiBiaW5kaW5nICovIEVudW0pCisvKiBoYXJtb255IGV4cG9y
dCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKIC8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfdG9rZW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9f
d2VicGFja19yZXF1aXJlX18oMTApOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOwpA
QCAtMTg3MCwxMiArMjIyOCwxMiBAQCBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4
cG9ydHNfXyk7CiAKIAogCi1jbGFzcyBFbnVtVmFsdWUgZXh0ZW5kcyBfdG9rZW5fanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfX1siVG9rZW4iXSB7CitjbGFzcyBFbnVtVmFsdWUgZXh0ZW5k
cyBfdG9rZW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5XcmFwcGVkVG9rZW4gewog
ICAvKioKICAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9r
ZW5pc2VyCiAgICAqLwogICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyKSB7Ci0gICAgY29uc3QgdmFs
dWUgPSB0b2tlbmlzZXIuY29uc3VtZSgic3RyaW5nIik7CisgICAgY29uc3QgdmFsdWUgPSB0b2tl
bmlzZXIuY29uc3VtZVR5cGUoInN0cmluZyIpOwogICAgIGlmICh2YWx1ZSkgewogICAgICAgcmV0
dXJuIG5ldyBFbnVtVmFsdWUoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyB2
YWx1ZSB9IH0pOwogICAgIH0KQEAgLTE4ODcsOSArMjI0NSwyMiBAQCBjbGFzcyBFbnVtVmFsdWUg
ZXh0ZW5kcyBfdG9rZW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siVG9rZW4iXSB7
CiAgIGdldCB2YWx1ZSgpIHsKICAgICByZXR1cm4gc3VwZXIudmFsdWUuc2xpY2UoMSwgLTEpOwog
ICB9CisKKyAgLyoqIEBwYXJhbSB7aW1wb3J0KCIuLi93cml0ZXIuanMiKS5Xcml0ZXJ9IHcgKi8K
KyAgd3JpdGUodykgeworICAgIGNvbnN0IHsgcGFyZW50IH0gPSB0aGlzOworICAgIHJldHVybiB3
LnRzLndyYXAoWworICAgICAgdy50cy50cml2aWEodGhpcy50b2tlbnMudmFsdWUudHJpdmlhKSwK
KyAgICAgIHcudHMuZGVmaW5pdGlvbigKKyAgICAgICAgdy50cy53cmFwKFsnIicsIHcudHMubmFt
ZSh0aGlzLnZhbHVlLCB7IGRhdGE6IHRoaXMsIHBhcmVudCB9KSwgJyInXSksCisgICAgICAgIHsg
ZGF0YTogdGhpcywgcGFyZW50IH0KKyAgICAgICksCisgICAgICB3LnRva2VuKHRoaXMudG9rZW5z
LnNlcGFyYXRvciksCisgICAgXSk7CisgIH0KIH0KIAotY2xhc3MgRW51bSBleHRlbmRzIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkJhc2UiXSB7CitjbGFzcyBFbnVtIGV4
dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5CYXNlIHsKICAgLyoq
CiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNl
cgogICAgKi8KQEAgLTE5MDAsMjMgKzIyNzEsMjcgQEAgY2xhc3MgRW51bSBleHRlbmRzIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkJhc2UiXSB7CiAgICAgaWYgKCF0b2tl
bnMuYmFzZSkgewogICAgICAgcmV0dXJuOwogICAgIH0KLSAgICB0b2tlbnMubmFtZSA9IHRva2Vu
aXNlci5jb25zdW1lKCJpZGVudGlmaWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKCJObyBuYW1lIGZv
ciBlbnVtIik7Ci0gICAgY29uc3QgcmV0ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX19bImF1dG9QYXJlbnRlciJdKShuZXcgRW51bSh7IHNvdXJjZTogdG9r
ZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pKTsKKyAgICB0b2tlbnMubmFtZSA9CisgICAgICB0b2tl
bmlzZXIuY29uc3VtZVR5cGUoImlkZW50aWZpZXIiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9y
KCJObyBuYW1lIGZvciBlbnVtIik7CisgICAgY29uc3QgcmV0ID0gKDAsX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5hdXRvUGFyZW50ZXIpKG5ldyBFbnVtKHsgc291cmNl
OiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkpOwogICAgIHRva2VuaXNlci5jdXJyZW50ID0g
cmV0LnRoaXM7CiAgICAgdG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgieyIpIHx8IHRv
a2VuaXNlci5lcnJvcigiQm9keWxlc3MgZW51bSIpOwotICAgIHJldC52YWx1ZXMgPSBPYmplY3Qo
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1sibGlzdCJdKSh0b2tlbmlz
ZXIsIHsKKyAgICByZXQudmFsdWVzID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfXy5saXN0KSh0b2tlbmlzZXIsIHsKICAgICAgIHBhcnNlcjogRW51bVZhbHVlLnBh
cnNlLAogICAgICAgYWxsb3dEYW5nbGVyOiB0cnVlLAotICAgICAgbGlzdE5hbWU6ICJlbnVtZXJh
dGlvbiIKKyAgICAgIGxpc3ROYW1lOiAiZW51bWVyYXRpb24iLAogICAgIH0pOwotICAgIGlmICh0
b2tlbmlzZXIucHJvYmUoInN0cmluZyIpKSB7CisgICAgaWYgKHRva2VuaXNlci5wcm9iZVR5cGUo
InN0cmluZyIpKSB7CiAgICAgICB0b2tlbmlzZXIuZXJyb3IoIk5vIGNvbW1hIGJldHdlZW4gZW51
bSB2YWx1ZXMiKTsKICAgICB9Ci0gICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUo
In0iKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVuZXhwZWN0ZWQgdmFsdWUgaW4gZW51bSIpOworICAg
IHRva2Vucy5jbG9zZSA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgifSIpIHx8IHRva2VuaXNl
ci5lcnJvcigiVW5leHBlY3RlZCB2YWx1ZSBpbiBlbnVtIik7CiAgICAgaWYgKCFyZXQudmFsdWVz
Lmxlbmd0aCkgewogICAgICAgdG9rZW5pc2VyLmVycm9yKCJObyB2YWx1ZSBpbiBlbnVtIik7CiAg
ICAgfQotICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwg
dG9rZW5pc2VyLmVycm9yKCJObyBzZW1pY29sb24gYWZ0ZXIgZW51bSIpOworICAgIHRva2Vucy50
ZXJtaW5hdGlvbiA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRva2VuaXNlci5l
cnJvcigiTm8gc2VtaWNvbG9uIGFmdGVyIGVudW0iKTsKICAgICByZXR1cm4gcmV0LnRoaXM7CiAg
IH0KIApAQCAtMTkyNCwxOCArMjI5OSwzNSBAQCBjbGFzcyBFbnVtIGV4dGVuZHMgX2Jhc2VfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siQmFzZSJdIHsKICAgICByZXR1cm4gImVudW0i
OwogICB9CiAgIGdldCBuYW1lKCkgewotICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1sidW5lc2NhcGUiXSkodGhpcy50b2tlbnMubmFtZS52
YWx1ZSk7CisgICAgcmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX18udW5lc2NhcGUpKHRoaXMudG9rZW5zLm5hbWUudmFsdWUpOworICB9CisKKyAgLyoqIEBw
YXJhbSB7aW1wb3J0KCIuLi93cml0ZXIuanMiKS5Xcml0ZXJ9IHcgKi8KKyAgd3JpdGUodykgewor
ICAgIHJldHVybiB3LnRzLmRlZmluaXRpb24oCisgICAgICB3LnRzLndyYXAoWworICAgICAgICB0
aGlzLmV4dEF0dHJzLndyaXRlKHcpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLmJhc2Up
LAorICAgICAgICB3Lm5hbWVfdG9rZW4odGhpcy50b2tlbnMubmFtZSwgeyBkYXRhOiB0aGlzIH0p
LAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLm9wZW4pLAorICAgICAgICB3LnRzLndyYXAo
dGhpcy52YWx1ZXMubWFwKCh2KSA9PiB2LndyaXRlKHcpKSksCisgICAgICAgIHcudG9rZW4odGhp
cy50b2tlbnMuY2xvc2UpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnRlcm1pbmF0aW9u
KSwKKyAgICAgIF0pLAorICAgICAgeyBkYXRhOiB0aGlzIH0KKyAgICApOwogICB9CiB9CiAKIAog
LyoqKi8gfSksCiAvKiAxNiAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4
cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNr
X19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVp
cmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJw
YWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNr
X3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJJbmNsdWRlcyIsIGZ1bmN0aW9uKCkg
eyByZXR1cm4gSW5jbHVkZXM7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAg
IkluY2x1ZGVzIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gSW5jbHVkZXMpCisvKiBoYXJtb255IGV4
cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKIC8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0g
X193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKIC8vIEB0cy1jaGVjawpAQCAtMTk0MywxMiArMjMzNSwx
MiBAQCBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiAKIAogCi1j
bGFzcyBJbmNsdWRlcyBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bIkJhc2UiXSB7CitjbGFzcyBJbmNsdWRlcyBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4v
dG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCiAgIHN0YXRpYyBwYXJzZSh0
b2tlbmlzZXIpIHsKLSAgICBjb25zdCB0YXJnZXQgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRp
ZmllciIpOworICAgIGNvbnN0IHRhcmdldCA9IHRva2VuaXNlci5jb25zdW1lVHlwZSgiaWRlbnRp
ZmllciIpOwogICAgIGlmICghdGFyZ2V0KSB7CiAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTk1
OCw4ICsyMzUwLDEyIEBAIGNsYXNzIEluY2x1ZGVzIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICAgIHRva2VuaXNlci51bmNvbnN1bWUo
dGFyZ2V0LmluZGV4KTsKICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgdG9rZW5zLm1peGluID0g
dG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkluY29t
cGxldGUgaW5jbHVkZXMgc3RhdGVtZW50Iik7Ci0gICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9r
ZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIk5vIHRlcm1pbmF0aW5nIDsg
Zm9yIGluY2x1ZGVzIHN0YXRlbWVudCIpOworICAgIHRva2Vucy5taXhpbiA9CisgICAgICB0b2tl
bmlzZXIuY29uc3VtZVR5cGUoImlkZW50aWZpZXIiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9y
KCJJbmNvbXBsZXRlIGluY2x1ZGVzIHN0YXRlbWVudCIpOworICAgIHRva2Vucy50ZXJtaW5hdGlv
biA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJy
b3IoIk5vIHRlcm1pbmF0aW5nIDsgZm9yIGluY2x1ZGVzIHN0YXRlbWVudCIpOwogICAgIHJldHVy
biBuZXcgSW5jbHVkZXMoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsKICAg
fQogCkBAIC0xOTY3LDQyICsyMzYzLDYzIEBAIGNsYXNzIEluY2x1ZGVzIGV4dGVuZHMgX2Jhc2Vf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICByZXR1cm4gImlu
Y2x1ZGVzIjsKICAgfQogICBnZXQgdGFyZ2V0KCkgewotICAgIHJldHVybiBPYmplY3QoX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidW5lc2NhcGUiXSkodGhpcy50b2tl
bnMudGFyZ2V0LnZhbHVlKTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfXy51bmVzY2FwZSkodGhpcy50b2tlbnMudGFyZ2V0LnZhbHVlKTsKICAg
fQogICBnZXQgaW5jbHVkZXMoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5taXhpbi52
YWx1ZSk7CisgICAgcmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8xX18udW5lc2NhcGUpKHRoaXMudG9rZW5zLm1peGluLnZhbHVlKTsKKyAgfQorCisgIC8qKiBA
cGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyfSB3ICovCisgIHdyaXRlKHcpIHsK
KyAgICByZXR1cm4gdy50cy5kZWZpbml0aW9uKAorICAgICAgdy50cy53cmFwKFsKKyAgICAgICAg
dGhpcy5leHRBdHRycy53cml0ZSh3KSwKKyAgICAgICAgdy5yZWZlcmVuY2VfdG9rZW4odGhpcy50
b2tlbnMudGFyZ2V0LCB0aGlzKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5pbmNsdWRl
cyksCisgICAgICAgIHcucmVmZXJlbmNlX3Rva2VuKHRoaXMudG9rZW5zLm1peGluLCB0aGlzKSwK
KyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy50ZXJtaW5hdGlvbiksCisgICAgICBdKSwKKyAg
ICAgIHsgZGF0YTogdGhpcyB9CisgICAgKTsKICAgfQogfQogCiAKIC8qKiovIH0pLAogLyogMTcg
Ki8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFj
a19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxl
X18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVz
ZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwot
LyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dl
YnBhY2tfZXhwb3J0c19fLCAiVHlwZWRlZiIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gVHlwZWRlZjsg
fSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNr
X2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBvcnQgKi8gICAiVHlwZWRlZiI6ICgpID0+ICgv
KiBiaW5kaW5nICovIFR5cGVkZWYpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1v
bnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0g
X193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0
KTsKIAogCiAKLWNsYXNzIFR5cGVkZWYgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fWyJCYXNlIl0geworY2xhc3MgVHlwZWRlZiBleHRlbmRzIF9iYXNlX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2lt
cG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCiAgIHN0YXRp
YyBwYXJzZSh0b2tlbmlzZXIpIHsKICAgICAvKiogQHR5cGUge0Jhc2VbInRva2VucyJdfSAqLwog
ICAgIGNvbnN0IHRva2VucyA9IHt9OwotICAgIGNvbnN0IHJldCA9IE9iamVjdChfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJhdXRvUGFyZW50ZXIiXSkobmV3IFR5cGVk
ZWYoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSk7CisgICAgY29uc3QgcmV0
ID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5hdXRvUGFyZW50
ZXIpKG5ldyBUeXBlZGVmKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkpOwog
ICAgIHRva2Vucy5iYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoInR5cGVkZWYiKTsKICAgICBpZiAo
IXRva2Vucy5iYXNlKSB7CiAgICAgICByZXR1cm47CiAgICAgfQotICAgIHJldC5pZGxUeXBlID0g
T2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0
aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRva2VuaXNlciwgInR5cGVkZWYtdHlwZSIpIHx8IHRv
a2VuaXNlci5lcnJvcigiVHlwZWRlZiBsYWNrcyBhIHR5cGUiKTsKLSAgICB0b2tlbnMubmFtZSA9
IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKCJUeXBl
ZGVmIGxhY2tzIGEgbmFtZSIpOworICAgIHJldC5pZGxUeXBlID0KKyAgICAgICgwLF9oZWxwZXJz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udHlwZV93aXRoX2V4dGVuZGVkX2F0dHJp
YnV0ZXMpKHRva2VuaXNlciwgInR5cGVkZWYtdHlwZSIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJy
b3IoIlR5cGVkZWYgbGFja3MgYSB0eXBlIik7CisgICAgdG9rZW5zLm5hbWUgPQorICAgICAgdG9r
ZW5pc2VyLmNvbnN1bWVUeXBlKCJpZGVudGlmaWVyIikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJv
cigiVHlwZWRlZiBsYWNrcyBhIG5hbWUiKTsKICAgICB0b2tlbmlzZXIuY3VycmVudCA9IHJldC50
aGlzOwotICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwg
dG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgdHlwZWRlZiwgZXhwZWN0ZWQgYDtgIik7Cisg
ICAgdG9rZW5zLnRlcm1pbmF0aW9uID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwK
KyAgICAgIHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIHR5cGVkZWYsIGV4cGVjdGVkIGA7
YCIpOwogICAgIHJldHVybiByZXQudGhpczsKICAgfQogCkBAIC0yMDEwLDQyICsyNDI3LDY4IEBA
IGNsYXNzIFR5cGVkZWYgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MF9fWyJCYXNlIl0gewogICAgIHJldHVybiAidHlwZWRlZiI7CiAgIH0KICAgZ2V0IG5hbWUoKSB7
Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MV9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKKyAgICByZXR1cm4gKDAs
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51bmVzY2FwZSkodGhpcy50
b2tlbnMubmFtZS52YWx1ZSk7CiAgIH0KIAogICAqdmFsaWRhdGUoZGVmcykgewogICAgIHlpZWxk
KiB0aGlzLmlkbFR5cGUudmFsaWRhdGUoZGVmcyk7CiAgIH0KKworICAvKiogQHBhcmFtIHtpbXBv
cnQoIi4uL3dyaXRlci5qcyIpLldyaXRlcn0gdyAqLworICB3cml0ZSh3KSB7CisgICAgcmV0dXJu
IHcudHMuZGVmaW5pdGlvbigKKyAgICAgIHcudHMud3JhcChbCisgICAgICAgIHRoaXMuZXh0QXR0
cnMud3JpdGUodyksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuYmFzZSksCisgICAgICAg
IHcudHMudHlwZSh0aGlzLmlkbFR5cGUud3JpdGUodykpLAorICAgICAgICB3Lm5hbWVfdG9rZW4o
dGhpcy50b2tlbnMubmFtZSwgeyBkYXRhOiB0aGlzIH0pLAorICAgICAgICB3LnRva2VuKHRoaXMu
dG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAgICAgIF0pLAorICAgICAgeyBkYXRhOiB0aGlzIH0KKyAg
ICApOworICB9CiB9CiAKIAogLyoqKi8gfSksCiAvKiAxOCAqLwotLyoqKi8gKGZ1bmN0aW9uKG1v
ZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8g
KChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNf
XywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tf
cmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmlu
ZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJDYWxs
YmFja0Z1bmN0aW9uIiwgZnVuY3Rpb24oKSB7IHJldHVybiBDYWxsYmFja0Z1bmN0aW9uOyB9KTsK
Ky8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhw
b3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJDYWxsYmFja0Z1bmN0aW9uIjogKCkg
PT4gKC8qIGJpbmRpbmcgKi8gQ2FsbGJhY2tGdW5jdGlvbikKKy8qIGhhcm1vbnkgZXhwb3J0ICov
IH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOwogLyogaGFybW9ueSBpbXBvcnQg
Ki8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBh
Y2tfcmVxdWlyZV9fKDQpOwogCiAKIAotY2xhc3MgQ2FsbGJhY2tGdW5jdGlvbiBleHRlbmRzIF9i
YXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CitjbGFzcyBDYWxs
YmFja0Z1bmN0aW9uIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
Xy5CYXNlIHsKICAgLyoqCiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIuanMiKS5U
b2tlbmlzZXJ9IHRva2VuaXNlcgogICAgKi8KICAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgYmFz
ZSkgewogICAgIGNvbnN0IHRva2VucyA9IHsgYmFzZSB9OwotICAgIGNvbnN0IHJldCA9IE9iamVj
dChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJhdXRvUGFyZW50ZXIi
XSkobmV3IENhbGxiYWNrRnVuY3Rpb24oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2Vu
cyB9KSk7Ci0gICAgdG9rZW5zLm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIp
IHx8IHRva2VuaXNlci5lcnJvcigiQ2FsbGJhY2sgbGFja3MgYSBuYW1lIik7CisgICAgY29uc3Qg
cmV0ID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5hdXRvUGFy
ZW50ZXIpKAorICAgICAgbmV3IENhbGxiYWNrRnVuY3Rpb24oeyBzb3VyY2U6IHRva2VuaXNlci5z
b3VyY2UsIHRva2VucyB9KQorICAgICk7CisgICAgdG9rZW5zLm5hbWUgPQorICAgICAgdG9rZW5p
c2VyLmNvbnN1bWVUeXBlKCJpZGVudGlmaWVyIikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigi
Q2FsbGJhY2sgbGFja3MgYSBuYW1lIik7CiAgICAgdG9rZW5pc2VyLmN1cnJlbnQgPSByZXQudGhp
czsKLSAgICB0b2tlbnMuYXNzaWduID0gdG9rZW5pc2VyLmNvbnN1bWUoIj0iKSB8fCB0b2tlbmlz
ZXIuZXJyb3IoIkNhbGxiYWNrIGxhY2tzIGFuIGFzc2lnbm1lbnQiKTsKLSAgICByZXQuaWRsVHlw
ZSA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJyZXR1
cm5fdHlwZSJdKSh0b2tlbmlzZXIpIHx8IHRva2VuaXNlci5lcnJvcigiQ2FsbGJhY2sgbGFja3Mg
YSByZXR1cm4gdHlwZSIpOwotICAgIHRva2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUoIigi
KSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNhbGxiYWNrIGxhY2tzIHBhcmVudGhlc2VzIGZvciBhcmd1
bWVudHMiKTsKLSAgICByZXQuYXJndW1lbnRzID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8xX19bImFyZ3VtZW50X2xpc3QiXSkodG9rZW5pc2VyKTsKLSAgICB0
b2tlbnMuY2xvc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5lcnJvcigi
VW50ZXJtaW5hdGVkIGNhbGxiYWNrIik7Ci0gICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5p
c2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBjYWxsYmFj
aywgZXhwZWN0ZWQgYDtgIik7CisgICAgdG9rZW5zLmFzc2lnbiA9CisgICAgICB0b2tlbmlzZXIu
Y29uc3VtZSgiPSIpIHx8IHRva2VuaXNlci5lcnJvcigiQ2FsbGJhY2sgbGFja3MgYW4gYXNzaWdu
bWVudCIpOworICAgIHJldC5pZGxUeXBlID0KKyAgICAgICgwLF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8xX18ucmV0dXJuX3R5cGUpKHRva2VuaXNlcikgfHwgdG9rZW5pc2Vy
LmVycm9yKCJDYWxsYmFjayBsYWNrcyBhIHJldHVybiB0eXBlIik7CisgICAgdG9rZW5zLm9wZW4g
PQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIigiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9y
KCJDYWxsYmFjayBsYWNrcyBwYXJlbnRoZXNlcyBmb3IgYXJndW1lbnRzIik7CisgICAgcmV0LmFy
Z3VtZW50cyA9ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uYXJn
dW1lbnRfbGlzdCkodG9rZW5pc2VyKTsKKyAgICB0b2tlbnMuY2xvc2UgPQorICAgICAgdG9rZW5p
c2VyLmNvbnN1bWUoIikiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBjYWxsYmFj
ayIpOworICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgi
OyIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBjYWxsYmFjaywgZXhw
ZWN0ZWQgYDtgIik7CiAgICAgcmV0dXJuIHJldC50aGlzOwogICB9CiAKQEAgLTIwNTMsMjMgKzI0
OTYsNDIgQEAgY2xhc3MgQ2FsbGJhY2tGdW5jdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICAgcmV0dXJuICJjYWxsYmFjayI7CiAg
IH0KICAgZ2V0IG5hbWUoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVl
KTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFf
Xy51bmVzY2FwZSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7CiAgIH0KIAogICAqdmFsaWRhdGUo
ZGVmcykgewogICAgIHlpZWxkKiB0aGlzLmV4dEF0dHJzLnZhbGlkYXRlKGRlZnMpOwogICAgIHlp
ZWxkKiB0aGlzLmlkbFR5cGUudmFsaWRhdGUoZGVmcyk7CiAgIH0KKworICAvKiogQHBhcmFtIHtp
bXBvcnQoIi4uL3dyaXRlci5qcyIpLldyaXRlcn0gdyAqLworICB3cml0ZSh3KSB7CisgICAgcmV0
dXJuIHcudHMuZGVmaW5pdGlvbigKKyAgICAgIHcudHMud3JhcChbCisgICAgICAgIHRoaXMuZXh0
QXR0cnMud3JpdGUodyksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuYmFzZSksCisgICAg
ICAgIHcubmFtZV90b2tlbih0aGlzLnRva2Vucy5uYW1lLCB7IGRhdGE6IHRoaXMgfSksCisgICAg
ICAgIHcudG9rZW4odGhpcy50b2tlbnMuYXNzaWduKSwKKyAgICAgICAgdy50cy50eXBlKHRoaXMu
aWRsVHlwZS53cml0ZSh3KSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMub3BlbiksCisg
ICAgICAgIC4uLnRoaXMuYXJndW1lbnRzLm1hcCgoYXJnKSA9PiBhcmcud3JpdGUodykpLAorICAg
ICAgICB3LnRva2VuKHRoaXMudG9rZW5zLmNsb3NlKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRv
a2Vucy50ZXJtaW5hdGlvbiksCisgICAgICBdKSwKKyAgICAgIHsgZGF0YTogdGhpcyB9CisgICAg
KTsKKyAgfQogfQogCiAKIC8qKiovIH0pLAogLyogMTkgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1
bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgo
X191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18s
IF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3Jl
cXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRp
bmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiSW50ZXJm
YWNlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBJbnRlcmZhY2U7IH0pOworLyogaGFybW9ueSBleHBv
cnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhh
cm1vbnkgZXhwb3J0ICovICAgIkludGVyZmFjZSI6ICgpID0+ICgvKiBiaW5kaW5nICovIEludGVy
ZmFjZSkKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oMjApOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hdHRyaWJ1dGVfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTQpOwogLyog
aGFybW9ueSBpbXBvcnQgKi8gdmFyIF9vcGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTMpOwpAQCAtMjA5OSwzMSArMjU2MSwzNiBA
QCBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiBmdW5jdGlvbiBz
dGF0aWNfbWVtYmVyKHRva2VuaXNlcikgewogICBjb25zdCBzcGVjaWFsID0gdG9rZW5pc2VyLmNv
bnN1bWUoInN0YXRpYyIpOwogICBpZiAoIXNwZWNpYWwpIHJldHVybjsKLSAgY29uc3QgbWVtYmVy
ID0gX2F0dHJpYnV0ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJBdHRyaWJ1dGUi
XS5wYXJzZSh0b2tlbmlzZXIsIHsgc3BlY2lhbCB9KSB8fAotICAgIF9vcGVyYXRpb25fanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siT3BlcmF0aW9uIl0ucGFyc2UodG9rZW5pc2VyLCB7
IHNwZWNpYWwgfSkgfHwKKyAgY29uc3QgbWVtYmVyID0KKyAgICBfYXR0cmlidXRlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX18uQXR0cmlidXRlLnBhcnNlKHRva2VuaXNlciwgeyBzcGVj
aWFsIH0pIHx8CisgICAgX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9f
Lk9wZXJhdGlvbi5wYXJzZSh0b2tlbmlzZXIsIHsgc3BlY2lhbCB9KSB8fAogICAgIHRva2VuaXNl
ci5lcnJvcigiTm8gYm9keSBpbiBzdGF0aWMgbWVtYmVyIik7CiAgIHJldHVybiBtZW1iZXI7CiB9
CiAKLWNsYXNzIEludGVyZmFjZSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0geworY2xhc3MgSW50ZXJmYWNlIGV4dGVuZHMgX2Nv
bnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkNvbnRhaW5lciB7CiAgIC8q
KgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlz
ZXIKICAgICovCiAgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIsIGJhc2UsIHsgcGFydGlhbCA9IG51
bGwgfSA9IHt9KSB7CiAgICAgY29uc3QgdG9rZW5zID0geyBwYXJ0aWFsLCBiYXNlIH07Ci0gICAg
cmV0dXJuIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFp
bmVyIl0ucGFyc2UodG9rZW5pc2VyLCBuZXcgSW50ZXJmYWNlKHsgc291cmNlOiB0b2tlbmlzZXIu
c291cmNlLCB0b2tlbnMgfSksIHsKLSAgICAgIHR5cGU6ICJpbnRlcmZhY2UiLAotICAgICAgaW5o
ZXJpdGFibGU6ICFwYXJ0aWFsLAotICAgICAgYWxsb3dlZE1lbWJlcnM6IFsKLSAgICAgICAgW19j
b25zdGFudF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJDb25zdGFudCJdLnBhcnNl
XSwKLSAgICAgICAgW19jb25zdHJ1Y3Rvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9f
WyJDb25zdHJ1Y3RvciJdLnBhcnNlXSwKLSAgICAgICAgW3N0YXRpY19tZW1iZXJdLAotICAgICAg
ICBbX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1sic3RyaW5naWZpZXIi
XV0sCi0gICAgICAgIFtfaXRlcmFibGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1si
SXRlcmFibGVMaWtlIl0ucGFyc2VdLAotICAgICAgICBbX2F0dHJpYnV0ZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMV9fWyJBdHRyaWJ1dGUiXS5wYXJzZV0sCi0gICAgICAgIFtfb3BlcmF0
aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIk9wZXJhdGlvbiJdLnBhcnNlXQot
ICAgICAgXQotICAgIH0pOworICAgIHJldHVybiBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX18uQ29udGFpbmVyLnBhcnNlKAorICAgICAgdG9rZW5pc2VyLAorICAgICAg
bmV3IEludGVyZmFjZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pLAorICAg
ICAgeworICAgICAgICB0eXBlOiAiaW50ZXJmYWNlIiwKKyAgICAgICAgaW5oZXJpdGFibGU6ICFw
YXJ0aWFsLAorICAgICAgICBhbGxvd2VkTWVtYmVyczogWworICAgICAgICAgIFtfY29uc3RhbnRf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5Db25zdGFudC5wYXJzZV0sCisgICAgICAg
ICAgW19jb25zdHJ1Y3Rvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLkNvbnN0cnVj
dG9yLnBhcnNlXSwKKyAgICAgICAgICBbc3RhdGljX21lbWJlcl0sCisgICAgICAgICAgW19oZWxw
ZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uc3RyaW5naWZpZXJdLAorICAgICAg
ICAgIFtfaXRlcmFibGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5JdGVyYWJsZUxp
a2UucGFyc2VdLAorICAgICAgICAgIFtfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8xX18uQXR0cmlidXRlLnBhcnNlXSwKKyAgICAgICAgICBbX29wZXJhdGlvbl9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLk9wZXJhdGlvbi5wYXJzZV0sCisgICAgICAgIF0sCisg
ICAgICB9CisgICAgKTsKICAgfQogCiAgIGdldCB0eXBlKCkgewpAQCAtMjEzNCw2NiArMjYwMSwx
MDAgQEAgY2xhc3MgSW50ZXJmYWNlIGV4dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXQogICAgIHlpZWxkKiB0aGlzLmV4dEF0dHJzLnZh
bGlkYXRlKGRlZnMpOwogICAgIGlmICgKICAgICAgICF0aGlzLnBhcnRpYWwgJiYKLSAgICAgIHRo
aXMuZXh0QXR0cnMuZXZlcnkoZXh0QXR0ciA9PiBleHRBdHRyLm5hbWUgIT09ICJFeHBvc2VkIikg
JiYKLSAgICAgIHRoaXMuZXh0QXR0cnMuZXZlcnkoZXh0QXR0ciA9PiBleHRBdHRyLm5hbWUgIT09
ICJMZWdhY3lOb0ludGVyZmFjZU9iamVjdCIpCisgICAgICB0aGlzLmV4dEF0dHJzLmV2ZXJ5KChl
eHRBdHRyKSA9PiBleHRBdHRyLm5hbWUgIT09ICJFeHBvc2VkIikKICAgICApIHsKICAgICAgIGNv
bnN0IG1lc3NhZ2UgPSBgSW50ZXJmYWNlcyBtdXN0IGhhdmUgXGBbRXhwb3NlZF1cYCBleHRlbmRl
ZCBhdHRyaWJ1dGUuIFwKIFRvIGZpeCwgYWRkLCBmb3IgZXhhbXBsZSwgXGBbRXhwb3NlZD1XaW5k
b3ddXGAuIFBsZWFzZSBhbHNvIGNvbnNpZGVyIGNhcmVmdWxseSBcCiBpZiB5b3VyIGludGVyZmFj
ZSBzaG91bGQgYWxzbyBiZSBleHBvc2VkIGluIGEgV29ya2VyIHNjb3BlLiBSZWZlciB0byB0aGUg
XAogW1dlYklETCBzcGVjIHNlY3Rpb24gb24gRXhwb3NlZF0oaHR0cHM6Ly9oZXljYW0uZ2l0aHVi
LmlvL3dlYmlkbC8jRXhwb3NlZCkgXAogZm9yIG1vcmUgaW5mb3JtYXRpb24uYDsKLSAgICAgIHlp
ZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1sidmFsaWRh
dGlvbkVycm9yIl0pKHRoaXMudG9rZW5zLm5hbWUsIHRoaXMsICJyZXF1aXJlLWV4cG9zZWQiLCBt
ZXNzYWdlLCB7Ci0gICAgICAgIGF1dG9maXg6IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfNV9fWyJhdXRvZml4QWRkRXhwb3NlZFdpbmRvdyJdKSh0aGlzKQotICAg
ICAgfSk7CisgICAgICB5aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzZfXy52YWxpZGF0aW9uRXJyb3IpKAorICAgICAgICB0aGlzLnRva2Vucy5uYW1lLAorICAgICAg
ICB0aGlzLAorICAgICAgICAicmVxdWlyZS1leHBvc2VkIiwKKyAgICAgICAgbWVzc2FnZSwKKyAg
ICAgICAgeworICAgICAgICAgIGF1dG9maXg6ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV81X18uYXV0b2ZpeEFkZEV4cG9zZWRXaW5kb3cpKHRoaXMpLAorICAgICAgICB9
CisgICAgICApOwogICAgIH0KLSAgICBjb25zdCBvbGRDb25zdHJ1Y3RvcnMgPSB0aGlzLmV4dEF0
dHJzLmZpbHRlcihleHRBdHRyID0+IGV4dEF0dHIubmFtZSA9PT0gIkNvbnN0cnVjdG9yIik7Cisg
ICAgY29uc3Qgb2xkQ29uc3RydWN0b3JzID0gdGhpcy5leHRBdHRycy5maWx0ZXIoCisgICAgICAo
ZXh0QXR0cikgPT4gZXh0QXR0ci5uYW1lID09PSAiQ29uc3RydWN0b3IiCisgICAgKTsKICAgICBm
b3IgKGNvbnN0IGNvbnN0cnVjdG9yIG9mIG9sZENvbnN0cnVjdG9ycykgewogICAgICAgY29uc3Qg
bWVzc2FnZSA9IGBDb25zdHJ1Y3RvcnMgc2hvdWxkIG5vdyBiZSByZXByZXNlbnRlZCBhcyBhIFxg
Y29uc3RydWN0b3IoKVxgIG9wZXJhdGlvbiBvbiB0aGUgaW50ZXJmYWNlIFwKIGluc3RlYWQgb2Yg
XGBbQ29uc3RydWN0b3JdXGAgZXh0ZW5kZWQgYXR0cmlidXRlLiBSZWZlciB0byB0aGUgXAogW1dl
YklETCBzcGVjIHNlY3Rpb24gb24gY29uc3RydWN0b3Igb3BlcmF0aW9uc10oaHR0cHM6Ly9oZXlj
YW0uZ2l0aHViLmlvL3dlYmlkbC8jaWRsLWNvbnN0cnVjdG9ycykgXAogZm9yIG1vcmUgaW5mb3Jt
YXRpb24uYDsKLSAgICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzZfX1sidmFsaWRhdGlvbkVycm9yIl0pKGNvbnN0cnVjdG9yLnRva2Vucy5uYW1lLCB0
aGlzLCAiY29uc3RydWN0b3ItbWVtYmVyIiwgbWVzc2FnZSwgewotICAgICAgICBhdXRvZml4OiBh
dXRvZml4Q29uc3RydWN0b3IodGhpcywgY29uc3RydWN0b3IpCi0gICAgICB9KTsKKyAgICAgIHlp
ZWxkICgwLF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLnZhbGlkYXRpb25F
cnJvcikoCisgICAgICAgIGNvbnN0cnVjdG9yLnRva2Vucy5uYW1lLAorICAgICAgICB0aGlzLAor
ICAgICAgICAiY29uc3RydWN0b3ItbWVtYmVyIiwKKyAgICAgICAgbWVzc2FnZSwKKyAgICAgICAg
eworICAgICAgICAgIGF1dG9maXg6IGF1dG9maXhDb25zdHJ1Y3Rvcih0aGlzLCBjb25zdHJ1Y3Rv
ciksCisgICAgICAgIH0KKyAgICAgICk7CiAgICAgfQogCi0gICAgY29uc3QgaXNHbG9iYWwgPSB0
aGlzLmV4dEF0dHJzLnNvbWUoZXh0QXR0ciA9PiBleHRBdHRyLm5hbWUgPT09ICJHbG9iYWwiKTsK
KyAgICBjb25zdCBpc0dsb2JhbCA9IHRoaXMuZXh0QXR0cnMuc29tZSgoZXh0QXR0cikgPT4gZXh0
QXR0ci5uYW1lID09PSAiR2xvYmFsIik7CiAgICAgaWYgKGlzR2xvYmFsKSB7Ci0gICAgICBjb25z
dCBmYWN0b3J5RnVuY3Rpb25zID0gdGhpcy5leHRBdHRycy5maWx0ZXIoZXh0QXR0ciA9PiBleHRB
dHRyLm5hbWUgPT09ICJMZWdhY3lGYWN0b3J5RnVuY3Rpb24iKTsKKyAgICAgIGNvbnN0IGZhY3Rv
cnlGdW5jdGlvbnMgPSB0aGlzLmV4dEF0dHJzLmZpbHRlcigKKyAgICAgICAgKGV4dEF0dHIpID0+
IGV4dEF0dHIubmFtZSA9PT0gIkxlZ2FjeUZhY3RvcnlGdW5jdGlvbiIKKyAgICAgICk7CiAgICAg
ICBmb3IgKGNvbnN0IG5hbWVkIG9mIGZhY3RvcnlGdW5jdGlvbnMpIHsKICAgICAgICAgY29uc3Qg
bWVzc2FnZSA9IGBJbnRlcmZhY2VzIG1hcmtlZCBhcyBcYFtHbG9iYWxdXGAgY2Fubm90IGhhdmUg
ZmFjdG9yeSBmdW5jdGlvbnMuYDsKLSAgICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fWyJ2YWxpZGF0aW9uRXJyb3IiXSkobmFtZWQudG9rZW5z
Lm5hbWUsIHRoaXMsICJuby1jb25zdHJ1Y3RpYmxlLWdsb2JhbCIsIG1lc3NhZ2UpOworICAgICAg
ICB5aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy52YWxpZGF0
aW9uRXJyb3IpKAorICAgICAgICAgIG5hbWVkLnRva2Vucy5uYW1lLAorICAgICAgICAgIHRoaXMs
CisgICAgICAgICAgIm5vLWNvbnN0cnVjdGlibGUtZ2xvYmFsIiwKKyAgICAgICAgICBtZXNzYWdl
CisgICAgICAgICk7CiAgICAgICB9CiAKLSAgICAgIGNvbnN0IGNvbnN0cnVjdG9ycyA9IHRoaXMu
bWVtYmVycy5maWx0ZXIobWVtYmVyID0+IG1lbWJlci50eXBlID09PSAiY29uc3RydWN0b3IiKTsK
KyAgICAgIGNvbnN0IGNvbnN0cnVjdG9ycyA9IHRoaXMubWVtYmVycy5maWx0ZXIoCisgICAgICAg
IChtZW1iZXIpID0+IG1lbWJlci50eXBlID09PSAiY29uc3RydWN0b3IiCisgICAgICApOwogICAg
ICAgZm9yIChjb25zdCBuYW1lZCBvZiBjb25zdHJ1Y3RvcnMpIHsKICAgICAgICAgY29uc3QgbWVz
c2FnZSA9IGBJbnRlcmZhY2VzIG1hcmtlZCBhcyBcYFtHbG9iYWxdXGAgY2Fubm90IGhhdmUgY29u
c3RydWN0b3JzLmA7Ci0gICAgICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzZfX1sidmFsaWRhdGlvbkVycm9yIl0pKG5hbWVkLnRva2Vucy5iYXNlLCB0
aGlzLCAibm8tY29uc3RydWN0aWJsZS1nbG9iYWwiLCBtZXNzYWdlKTsKKyAgICAgICAgeWllbGQg
KDAsX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18udmFsaWRhdGlvbkVycm9y
KSgKKyAgICAgICAgICBuYW1lZC50b2tlbnMuYmFzZSwKKyAgICAgICAgICB0aGlzLAorICAgICAg
ICAgICJuby1jb25zdHJ1Y3RpYmxlLWdsb2JhbCIsCisgICAgICAgICAgbWVzc2FnZQorICAgICAg
ICApOwogICAgICAgfQogICAgIH0KIAogICAgIHlpZWxkKiBzdXBlci52YWxpZGF0ZShkZWZzKTsK
ICAgICBpZiAoIXRoaXMucGFydGlhbCkgewotICAgICAgeWllbGQqIE9iamVjdChfdmFsaWRhdG9y
c19pbnRlcmZhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX1siY2hlY2tJbnRlcmZh
Y2VNZW1iZXJEdXBsaWNhdGlvbiJdKShkZWZzLCB0aGlzKTsKKyAgICAgIHlpZWxkKiAoMCxfdmFs
aWRhdG9yc19pbnRlcmZhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5jaGVja0lu
dGVyZmFjZU1lbWJlckR1cGxpY2F0aW9uKShkZWZzLCB0aGlzKTsKICAgICB9CiAgIH0KIH0KIAog
ZnVuY3Rpb24gYXV0b2ZpeENvbnN0cnVjdG9yKGludGVyZmFjZURlZiwgY29uc3RydWN0b3JFeHRB
dHRyKSB7Ci0gIGludGVyZmFjZURlZiA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfNV9fWyJhdXRvUGFyZW50ZXIiXSkoaW50ZXJmYWNlRGVmKTsKKyAgaW50ZXJm
YWNlRGVmID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5hdXRv
UGFyZW50ZXIpKGludGVyZmFjZURlZik7CiAgIHJldHVybiAoKSA9PiB7Ci0gICAgY29uc3QgaW5k
ZW50YXRpb24gPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVf
X1siZ2V0TGFzdEluZGVudGF0aW9uIl0pKGludGVyZmFjZURlZi5leHRBdHRycy50b2tlbnMub3Bl
bi50cml2aWEpOwotICAgIGNvbnN0IG1lbWJlckluZGVudCA9IGludGVyZmFjZURlZi5tZW1iZXJz
Lmxlbmd0aCA/Ci0gICAgICBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzVfX1siZ2V0TGFzdEluZGVudGF0aW9uIl0pKE9iamVjdChfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfNV9fWyJnZXRGaXJzdFRva2VuIl0pKGludGVyZmFjZURlZi5tZW1i
ZXJzWzBdKS50cml2aWEpIDoKLSAgICAgIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfNV9fWyJnZXRNZW1iZXJJbmRlbnRhdGlvbiJdKShpbmRlbnRhdGlvbik7Ci0g
ICAgY29uc3QgY29uc3RydWN0b3JPcCA9IF9jb25zdHJ1Y3Rvcl9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfOF9fWyJDb25zdHJ1Y3RvciJdLnBhcnNlKG5ldyBfdG9rZW5pc2VyX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV85X19bIlRva2VuaXNlciJdKGBcbiR7bWVtYmVySW5kZW50fWNv
bnN0cnVjdG9yKCk7YCkpOwotICAgIGNvbnN0cnVjdG9yT3AuZXh0QXR0cnMgPSBuZXcgX2V4dGVu
ZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX19bIkV4dGVuZGVk
QXR0cmlidXRlcyJdKHt9KTsKLSAgICBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzVfX1siYXV0b1BhcmVudGVyIl0pKGNvbnN0cnVjdG9yT3ApLmFyZ3VtZW50cyA9
IGNvbnN0cnVjdG9yRXh0QXR0ci5hcmd1bWVudHM7Ci0KLSAgICBjb25zdCBleGlzdGluZ0luZGV4
ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19bImZpbmRM
YXN0SW5kZXgiXSkoaW50ZXJmYWNlRGVmLm1lbWJlcnMsIG0gPT4gbS50eXBlID09PSAiY29uc3Ry
dWN0b3IiKTsKKyAgICBjb25zdCBpbmRlbnRhdGlvbiA9ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV81X18uZ2V0TGFzdEluZGVudGF0aW9uKSgKKyAgICAgIGludGVyZmFj
ZURlZi5leHRBdHRycy50b2tlbnMub3Blbi50cml2aWEKKyAgICApOworICAgIGNvbnN0IG1lbWJl
ckluZGVudCA9IGludGVyZmFjZURlZi5tZW1iZXJzLmxlbmd0aAorICAgICAgPyAoMCxfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldExhc3RJbmRlbnRhdGlvbikoKDAs
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRGaXJzdFRva2VuKShp
bnRlcmZhY2VEZWYubWVtYmVyc1swXSkudHJpdmlhKQorICAgICAgOiAoMCxfaGVscGVyc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldE1lbWJlckluZGVudGF0aW9uKShpbmRlbnRh
dGlvbik7CisgICAgY29uc3QgY29uc3RydWN0b3JPcCA9IF9jb25zdHJ1Y3Rvcl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfOF9fLkNvbnN0cnVjdG9yLnBhcnNlKAorICAgICAgbmV3IF90b2tl
bmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5Ub2tlbmlzZXIoYFxuJHttZW1i
ZXJJbmRlbnR9Y29uc3RydWN0b3IoKTtgKQorICAgICk7CisgICAgY29uc3RydWN0b3JPcC5leHRB
dHRycyA9IG5ldyBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMTBfXy5FeHRlbmRlZEF0dHJpYnV0ZXMoe30pOworICAgICgwLF9oZWxwZXJzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV81X18uYXV0b1BhcmVudGVyKShjb25zdHJ1Y3Rvck9wKS5hcmd1
bWVudHMgPSBjb25zdHJ1Y3RvckV4dEF0dHIuYXJndW1lbnRzOworCisgICAgY29uc3QgZXhpc3Rp
bmdJbmRleCA9ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZmlu
ZExhc3RJbmRleCkoCisgICAgICBpbnRlcmZhY2VEZWYubWVtYmVycywKKyAgICAgIChtKSA9PiBt
LnR5cGUgPT09ICJjb25zdHJ1Y3RvciIKKyAgICApOwogICAgIGludGVyZmFjZURlZi5tZW1iZXJz
LnNwbGljZShleGlzdGluZ0luZGV4ICsgMSwgMCwgY29uc3RydWN0b3JPcCk7CiAKLSAgICBjb25z
dCB7IGNsb3NlIH0gID0gaW50ZXJmYWNlRGVmLnRva2VuczsKKyAgICBjb25zdCB7IGNsb3NlIH0g
PSBpbnRlcmZhY2VEZWYudG9rZW5zOwogICAgIGlmICghY2xvc2UudHJpdmlhLmluY2x1ZGVzKCJc
biIpKSB7CiAgICAgICBjbG9zZS50cml2aWEgKz0gYFxuJHtpbmRlbnRhdGlvbn1gOwogICAgIH0K
QEAgLTIyMTQsMTEgKzI3MTUsMTIgQEAgZnVuY3Rpb24gYXV0b2ZpeENvbnN0cnVjdG9yKGludGVy
ZmFjZURlZiwgY29uc3RydWN0b3JFeHRBdHRyKSB7CiAKIC8qKiovIH0pLAogLyogMjAgKi8KLS8q
KiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1
aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9f
d2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJp
Y3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFy
bW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tf
ZXhwb3J0c19fLCAiQ29udGFpbmVyIiwgZnVuY3Rpb24oKSB7IHJldHVybiBDb250YWluZXI7IH0p
OworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19l
eHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIkNvbnRhaW5lciI6ICgpID0+ICgv
KiBiaW5kaW5nICovIENvbnRhaW5lcikKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFy
bW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18g
PSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9leHRl
bmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBh
Y2tfcmVxdWlyZV9fKDgpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwpAQCAt
MjIzNCw3OSArMjczNiwxMTkgQEAgZnVuY3Rpb24gaW5oZXJpdGFuY2UodG9rZW5pc2VyKSB7CiAg
IGlmICghY29sb24pIHsKICAgICByZXR1cm4ge307CiAgIH0KLSAgY29uc3QgaW5oZXJpdGFuY2Ug
PSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIpIHx8IHRva2VuaXNlci5lcnJvcigiSW5o
ZXJpdGFuY2UgbGFja3MgYSB0eXBlIik7CisgIGNvbnN0IGluaGVyaXRhbmNlID0KKyAgICB0b2tl
bmlzZXIuY29uc3VtZVR5cGUoImlkZW50aWZpZXIiKSB8fAorICAgIHRva2VuaXNlci5lcnJvcigi
SW5oZXJpdGFuY2UgbGFja3MgYSB0eXBlIik7CiAgIHJldHVybiB7IGNvbG9uLCBpbmhlcml0YW5j
ZSB9OwogfQogCi1jbGFzcyBDb250YWluZXIgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewotICAgIC8qKgotICAgICAqIEB0ZW1wbGF0ZSBUCi0g
ICAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlci5qcyIpLlRva2VuaXNlcn0gdG9rZW5p
c2VyCi0gICAgICogQHBhcmFtIHtUfSBpbnN0YW5jZQotICAgICAqIEBwYXJhbSB7Kn0gYXJncwot
ICAgICAqLwotICAgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIsIGluc3RhbmNlLCB7IHR5cGUsIGlu
aGVyaXRhYmxlLCBhbGxvd2VkTWVtYmVycyB9KSB7Ci0gICAgICBjb25zdCB7IHRva2VucyB9ID0g
aW5zdGFuY2U7Ci0gICAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlm
aWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIG5hbWUgaW4gJHtpbnN0YW5jZS50eXBl
fWApOwotICAgICAgdG9rZW5pc2VyLmN1cnJlbnQgPSBpbnN0YW5jZTsKLSAgICAgIGluc3RhbmNl
ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bImF1dG9Q
YXJlbnRlciJdKShpbnN0YW5jZSk7Ci0gICAgICBpZiAoaW5oZXJpdGFibGUpIHsKLSAgICAgICAg
T2JqZWN0LmFzc2lnbih0b2tlbnMsIGluaGVyaXRhbmNlKHRva2VuaXNlcikpOworY2xhc3MgQ29u
dGFpbmVyIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5CYXNl
IHsKKyAgLyoqCisgICAqIEB0ZW1wbGF0ZSBUCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tl
bmlzZXIuanMiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKiBAcGFyYW0ge1R9IGluc3RhbmNl
CisgICAqIEBwYXJhbSB7Kn0gYXJncworICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwg
aW5zdGFuY2UsIHsgdHlwZSwgaW5oZXJpdGFibGUsIGFsbG93ZWRNZW1iZXJzIH0pIHsKKyAgICBj
b25zdCB7IHRva2VucyB9ID0gaW5zdGFuY2U7CisgICAgdG9rZW5zLm5hbWUgPQorICAgICAgdG9r
ZW5pc2VyLmNvbnN1bWVUeXBlKCJpZGVudGlmaWVyIikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJv
cihgTWlzc2luZyBuYW1lIGluICR7aW5zdGFuY2UudHlwZX1gKTsKKyAgICB0b2tlbmlzZXIuY3Vy
cmVudCA9IGluc3RhbmNlOworICAgIGluc3RhbmNlID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzJfXy5hdXRvUGFyZW50ZXIpKGluc3RhbmNlKTsKKyAgICBpZiAoaW5o
ZXJpdGFibGUpIHsKKyAgICAgIE9iamVjdC5hc3NpZ24odG9rZW5zLCBpbmhlcml0YW5jZSh0b2tl
bmlzZXIpKTsKKyAgICB9CisgICAgdG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgieyIp
IHx8IHRva2VuaXNlci5lcnJvcihgQm9keWxlc3MgJHt0eXBlfWApOworICAgIGluc3RhbmNlLm1l
bWJlcnMgPSBbXTsKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgdG9rZW5zLmNsb3NlID0gdG9r
ZW5pc2VyLmNvbnN1bWUoIn0iKTsKKyAgICAgIGlmICh0b2tlbnMuY2xvc2UpIHsKKyAgICAgICAg
dG9rZW5zLnRlcm1pbmF0aW9uID0KKyAgICAgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8
CisgICAgICAgICAgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIHNlbWljb2xvbiBhZnRlciAke3R5
cGV9YCk7CisgICAgICAgIHJldHVybiBpbnN0YW5jZS50aGlzOwogICAgICAgfQotICAgICAgdG9r
ZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgieyIpIHx8IHRva2VuaXNlci5lcnJvcihgQm9k
eWxlc3MgJHt0eXBlfWApOwotICAgICAgaW5zdGFuY2UubWVtYmVycyA9IFtdOwotICAgICAgd2hp
bGUgKHRydWUpIHsKLSAgICAgICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIn0i
KTsKLSAgICAgICAgaWYgKHRva2Vucy5jbG9zZSkgewotICAgICAgICAgIHRva2Vucy50ZXJtaW5h
dGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5n
IHNlbWljb2xvbiBhZnRlciAke3R5cGV9YCk7Ci0gICAgICAgICAgcmV0dXJuIGluc3RhbmNlLnRo
aXM7Ci0gICAgICAgIH0KLSAgICAgICAgY29uc3QgZWEgPSBfZXh0ZW5kZWRfYXR0cmlidXRlc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJFeHRlbmRlZEF0dHJpYnV0ZXMiXS5wYXJz
ZSh0b2tlbmlzZXIpOwotICAgICAgICBsZXQgbWVtOwotICAgICAgICBmb3IgKGNvbnN0IFtwYXJz
ZXIsIC4uLmFyZ3NdIG9mIGFsbG93ZWRNZW1iZXJzKSB7Ci0gICAgICAgICAgbWVtID0gT2JqZWN0
KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bImF1dG9QYXJlbnRlciJd
KShwYXJzZXIodG9rZW5pc2VyLCAuLi5hcmdzKSk7Ci0gICAgICAgICAgaWYgKG1lbSkgewotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmICghbWVt
KSB7Ci0gICAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJVbmtub3duIG1lbWJlciIpOworICAgICAg
Y29uc3QgZWEgPSBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMV9fLkV4dGVuZGVkQXR0cmlidXRlcy5wYXJzZSh0b2tlbmlzZXIpOworICAgICAgbGV0IG1l
bTsKKyAgICAgIGZvciAoY29uc3QgW3BhcnNlciwgLi4uYXJnc10gb2YgYWxsb3dlZE1lbWJlcnMp
IHsKKyAgICAgICAgbWVtID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzJfXy5hdXRvUGFyZW50ZXIpKHBhcnNlcih0b2tlbmlzZXIsIC4uLmFyZ3MpKTsKKyAgICAgICAg
aWYgKG1lbSkgeworICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIG1lbS5leHRB
dHRycyA9IGVhOwotICAgICAgICBpbnN0YW5jZS5tZW1iZXJzLnB1c2gobWVtLnRoaXMpOwogICAg
ICAgfQorICAgICAgaWYgKCFtZW0pIHsKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJVbmtub3du
IG1lbWJlciIpOworICAgICAgfQorICAgICAgbWVtLmV4dEF0dHJzID0gZWE7CisgICAgICBpbnN0
YW5jZS5tZW1iZXJzLnB1c2gobWVtLnRoaXMpOwogICAgIH0KKyAgfQogCi0gICAgZ2V0IHBhcnRp
YWwoKSB7Ci0gICAgICByZXR1cm4gISF0aGlzLnRva2Vucy5wYXJ0aWFsOwotICAgIH0KLSAgICBn
ZXQgbmFtZSgpIHsKLSAgICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzJfX1sidW5lc2NhcGUiXSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7Cisg
IGdldCBwYXJ0aWFsKCkgeworICAgIHJldHVybiAhIXRoaXMudG9rZW5zLnBhcnRpYWw7CisgIH0K
KyAgZ2V0IG5hbWUoKSB7CisgICAgcmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8yX18udW5lc2NhcGUpKHRoaXMudG9rZW5zLm5hbWUudmFsdWUpOworICB9Cisg
IGdldCBpbmhlcml0YW5jZSgpIHsKKyAgICBpZiAoIXRoaXMudG9rZW5zLmluaGVyaXRhbmNlKSB7
CisgICAgICByZXR1cm4gbnVsbDsKICAgICB9Ci0gICAgZ2V0IGluaGVyaXRhbmNlKCkgewotICAg
ICAgaWYgKCF0aGlzLnRva2Vucy5pbmhlcml0YW5jZSkgewotICAgICAgICByZXR1cm4gbnVsbDsK
KyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy51
bmVzY2FwZSkodGhpcy50b2tlbnMuaW5oZXJpdGFuY2UudmFsdWUpOworICB9CisKKyAgKnZhbGlk
YXRlKGRlZnMpIHsKKyAgICBmb3IgKGNvbnN0IG1lbWJlciBvZiB0aGlzLm1lbWJlcnMpIHsKKyAg
ICAgIGlmIChtZW1iZXIudmFsaWRhdGUpIHsKKyAgICAgICAgeWllbGQqIG1lbWJlci52YWxpZGF0
ZShkZWZzKTsKICAgICAgIH0KLSAgICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzJfX1sidW5lc2NhcGUiXSkodGhpcy50b2tlbnMuaW5oZXJpdGFu
Y2UudmFsdWUpOwogICAgIH0KKyAgfQogCi0gICAgKnZhbGlkYXRlKGRlZnMpIHsKLSAgICAgIGZv
ciAoY29uc3QgbWVtYmVyIG9mIHRoaXMubWVtYmVycykgewotICAgICAgICBpZiAobWVtYmVyLnZh
bGlkYXRlKSB7Ci0gICAgICAgICAgeWllbGQqIG1lbWJlci52YWxpZGF0ZShkZWZzKTsKLSAgICAg
ICAgfQorICAvKiogQHBhcmFtIHtpbXBvcnQoIi4uL3dyaXRlci5qcyIpLldyaXRlcn0gdyAqLwor
ICB3cml0ZSh3KSB7CisgICAgY29uc3QgaW5oZXJpdGFuY2UgPSAoKSA9PiB7CisgICAgICBpZiAo
IXRoaXMudG9rZW5zLmluaGVyaXRhbmNlKSB7CisgICAgICAgIHJldHVybiAiIjsKICAgICAgIH0K
LSAgICB9CisgICAgICByZXR1cm4gdy50cy53cmFwKFsKKyAgICAgICAgdy50b2tlbih0aGlzLnRv
a2Vucy5jb2xvbiksCisgICAgICAgIHcudHMudHJpdmlhKHRoaXMudG9rZW5zLmluaGVyaXRhbmNl
LnRyaXZpYSksCisgICAgICAgIHcudHMuaW5oZXJpdGFuY2UoCisgICAgICAgICAgdy5yZWZlcmVu
Y2UodGhpcy50b2tlbnMuaW5oZXJpdGFuY2UudmFsdWUsIHsgY29udGV4dDogdGhpcyB9KQorICAg
ICAgICApLAorICAgICAgXSk7CisgICAgfTsKKworICAgIHJldHVybiB3LnRzLmRlZmluaXRpb24o
CisgICAgICB3LnRzLndyYXAoWworICAgICAgICB0aGlzLmV4dEF0dHJzLndyaXRlKHcpLAorICAg
ICAgICB3LnRva2VuKHRoaXMudG9rZW5zLmNhbGxiYWNrKSwKKyAgICAgICAgdy50b2tlbih0aGlz
LnRva2Vucy5wYXJ0aWFsKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5iYXNlKSwKKyAg
ICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5taXhpbiksCisgICAgICAgIHcubmFtZV90b2tlbih0
aGlzLnRva2Vucy5uYW1lLCB7IGRhdGE6IHRoaXMgfSksCisgICAgICAgIGluaGVyaXRhbmNlKCks
CisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMub3BlbiksCisgICAgICAgIHcudHMud3JhcCh0
aGlzLm1lbWJlcnMubWFwKChtKSA9PiBtLndyaXRlKHcpKSksCisgICAgICAgIHcudG9rZW4odGhp
cy50b2tlbnMuY2xvc2UpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnRlcm1pbmF0aW9u
KSwKKyAgICAgIF0pLAorICAgICAgeyBkYXRhOiB0aGlzIH0KKyAgICApOwogICB9Cit9CiAKIAog
LyoqKi8gfSksCiAvKiAyMSAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4
cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNr
X19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVp
cmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJw
YWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNr
X3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJDb25zdGFudCIsIGZ1bmN0aW9uKCkg
eyByZXR1cm4gQ29uc3RhbnQ7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAg
IkNvbnN0YW50IjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gQ29uc3RhbnQpCisvKiBoYXJtb255IGV4
cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKIC8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193
ZWJwYWNrX3JlcXVpcmVfXyg1KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsK
QEAgLTIzMTQsNyArMjg1Niw3IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhw
b3J0c19fKTsKIAogCiAKLWNsYXNzIENvbnN0YW50IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKK2NsYXNzIENvbnN0YW50IGV4dGVuZHMgX2Jh
c2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5CYXNlIHsKICAgLyoqCiAgICAqIEBw
YXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIuanMiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgogICAg
Ki8KQEAgLTIzMjUsMjEgKzI4NjcsMjkgQEAgY2xhc3MgQ29uc3RhbnQgZXh0ZW5kcyBfYmFzZV9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgIGlmICghdG9rZW5z
LmJhc2UpIHsKICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgbGV0IGlkbFR5cGUgPSBPYmplY3Qo
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1sicHJpbWl0aXZlX3R5cGUi
XSkodG9rZW5pc2VyKTsKKyAgICBsZXQgaWRsVHlwZSA9ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8yX18ucHJpbWl0aXZlX3R5cGUpKHRva2VuaXNlcik7CiAgICAgaWYg
KCFpZGxUeXBlKSB7Ci0gICAgICBjb25zdCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50
aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNvbnN0IGxhY2tzIGEgdHlwZSIpOwotICAgICAg
aWRsVHlwZSA9IG5ldyBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJUeXBl
Il0oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyBiYXNlIH0gfSk7CisgICAg
ICBjb25zdCBiYXNlID0KKyAgICAgICAgdG9rZW5pc2VyLmNvbnN1bWVUeXBlKCJpZGVudGlmaWVy
IikgfHwKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyBhIHR5cGUiKTsKKyAg
ICAgIGlkbFR5cGUgPSBuZXcgX3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5U
eXBlKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnM6IHsgYmFzZSB9IH0pOwogICAg
IH0KICAgICBpZiAodG9rZW5pc2VyLnByb2JlKCI/IikpIHsKICAgICAgIHRva2VuaXNlci5lcnJv
cigiVW5leHBlY3RlZCBudWxsYWJsZSBjb25zdGFudCB0eXBlIik7CiAgICAgfQogICAgIGlkbFR5
cGUudHlwZSA9ICJjb25zdC10eXBlIjsKLSAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25z
dW1lKCJpZGVudGlmaWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyBhIG5hbWUi
KTsKLSAgICB0b2tlbnMuYXNzaWduID0gdG9rZW5pc2VyLmNvbnN1bWUoIj0iKSB8fCB0b2tlbmlz
ZXIuZXJyb3IoIkNvbnN0IGxhY2tzIHZhbHVlIGFzc2lnbm1lbnQiKTsKLSAgICB0b2tlbnMudmFs
dWUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siY29u
c3RfdmFsdWUiXSkodG9rZW5pc2VyKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNvbnN0IGxhY2tzIGEg
dmFsdWUiKTsKLSAgICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIp
IHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGNvbnN0LCBleHBlY3RlZCBgO2AiKTsK
KyAgICB0b2tlbnMubmFtZSA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZVR5cGUoImlkZW50aWZp
ZXIiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyBhIG5hbWUiKTsKKyAg
ICB0b2tlbnMuYXNzaWduID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCI9IikgfHwgdG9rZW5p
c2VyLmVycm9yKCJDb25zdCBsYWNrcyB2YWx1ZSBhc3NpZ25tZW50Iik7CisgICAgdG9rZW5zLnZh
bHVlID0KKyAgICAgICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18u
Y29uc3RfdmFsdWUpKHRva2VuaXNlcikgfHwgdG9rZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyBh
IHZhbHVlIik7CisgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0KKyAgICAgIHRva2VuaXNlci5jb25z
dW1lKCI7IikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGNvbnN0LCBl
eHBlY3RlZCBgO2AiKTsKICAgICBjb25zdCByZXQgPSBuZXcgQ29uc3RhbnQoeyBzb3VyY2U6IHRv
a2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsKLSAgICBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzJfX1siYXV0b1BhcmVudGVyIl0pKHJldCkuaWRsVHlwZSA9IGlk
bFR5cGU7CisgICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5h
dXRvUGFyZW50ZXIpKHJldCkuaWRsVHlwZSA9IGlkbFR5cGU7CiAgICAgcmV0dXJuIHJldDsKICAg
fQogCkBAIC0yMzQ3LDQyICsyODk3LDYzIEBAIGNsYXNzIENvbnN0YW50IGV4dGVuZHMgX2Jhc2Vf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICByZXR1cm4gImNv
bnN0IjsKICAgfQogICBnZXQgbmFtZSgpIHsKLSAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLm5h
bWUudmFsdWUpOworICAgIHJldHVybiAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMl9fLnVuZXNjYXBlKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKICAgfQogICBnZXQg
dmFsdWUoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMl9fWyJjb25zdF9kYXRhIl0pKHRoaXMudG9rZW5zLnZhbHVlKTsKKyAgICByZXR1
cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5jb25zdF9kYXRh
KSh0aGlzLnRva2Vucy52YWx1ZSk7CisgIH0KKworICAvKiogQHBhcmFtIHtpbXBvcnQoIi4uL3dy
aXRlci5qcyIpLldyaXRlcn0gdyAqLworICB3cml0ZSh3KSB7CisgICAgY29uc3QgeyBwYXJlbnQg
fSA9IHRoaXM7CisgICAgcmV0dXJuIHcudHMuZGVmaW5pdGlvbigKKyAgICAgIHcudHMud3JhcChb
CisgICAgICAgIHRoaXMuZXh0QXR0cnMud3JpdGUodyksCisgICAgICAgIHcudG9rZW4odGhpcy50
b2tlbnMuYmFzZSksCisgICAgICAgIHcudHMudHlwZSh0aGlzLmlkbFR5cGUud3JpdGUodykpLAor
ICAgICAgICB3Lm5hbWVfdG9rZW4odGhpcy50b2tlbnMubmFtZSwgeyBkYXRhOiB0aGlzLCBwYXJl
bnQgfSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuYXNzaWduKSwKKyAgICAgICAgdy50
b2tlbih0aGlzLnRva2Vucy52YWx1ZSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMudGVy
bWluYXRpb24pLAorICAgICAgXSksCisgICAgICB7IGRhdGE6IHRoaXMsIHBhcmVudCB9CisgICAg
KTsKICAgfQogfQogCiAKIC8qKiovIH0pLAogLyogMjIgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1
bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgo
X191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18s
IF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3Jl
cXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRp
bmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiSXRlcmFi
bGVMaWtlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBJdGVyYWJsZUxpa2U7IH0pOworLyogaGFybW9u
eSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsK
Ky8qIGhhcm1vbnkgZXhwb3J0ICovICAgIkl0ZXJhYmxlTGlrZSI6ICgpID0+ICgvKiBiaW5kaW5n
ICovIEl0ZXJhYmxlTGlrZSkKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBp
bXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dl
YnBhY2tfcmVxdWlyZV9fKDYpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwog
CiAKIAotY2xhc3MgSXRlcmFibGVMaWtlIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siQmFzZSJdIHsKK2NsYXNzIEl0ZXJhYmxlTGlrZSBleHRlbmRzIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFy
YW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICov
CiAgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKICAgICBjb25zdCBzdGFydF9wb3NpdGlvbiA9
IHRva2VuaXNlci5wb3NpdGlvbjsKICAgICBjb25zdCB0b2tlbnMgPSB7fTsKLSAgICBjb25zdCBy
ZXQgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siYXV0
b1BhcmVudGVyIl0pKG5ldyBJdGVyYWJsZUxpa2UoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2Us
IHRva2VucyB9KSk7CisgICAgY29uc3QgcmV0ID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfXy5hdXRvUGFyZW50ZXIpKAorICAgICAgbmV3IEl0ZXJhYmxlTGlrZSh7
IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pCisgICAgKTsKICAgICB0b2tlbnMu
cmVhZG9ubHkgPSB0b2tlbmlzZXIuY29uc3VtZSgicmVhZG9ubHkiKTsKICAgICBpZiAoIXRva2Vu
cy5yZWFkb25seSkgewogICAgICAgdG9rZW5zLmFzeW5jID0gdG9rZW5pc2VyLmNvbnN1bWUoImFz
eW5jIik7CiAgICAgfQotICAgIHRva2Vucy5iYXNlID0KLSAgICAgIHRva2Vucy5yZWFkb25seSA/
IHRva2VuaXNlci5jb25zdW1lKCJtYXBsaWtlIiwgInNldGxpa2UiKSA6Ci0gICAgICB0b2tlbnMu
YXN5bmMgPyB0b2tlbmlzZXIuY29uc3VtZSgiaXRlcmFibGUiKSA6Ci0gICAgICB0b2tlbmlzZXIu
Y29uc3VtZSgiaXRlcmFibGUiLCAibWFwbGlrZSIsICJzZXRsaWtlIik7CisgICAgdG9rZW5zLmJh
c2UgPSB0b2tlbnMucmVhZG9ubHkKKyAgICAgID8gdG9rZW5pc2VyLmNvbnN1bWUoIm1hcGxpa2Ui
LCAic2V0bGlrZSIpCisgICAgICA6IHRva2Vucy5hc3luYworICAgICAgPyB0b2tlbmlzZXIuY29u
c3VtZSgiaXRlcmFibGUiKQorICAgICAgOiB0b2tlbmlzZXIuY29uc3VtZSgiaXRlcmFibGUiLCAi
bWFwbGlrZSIsICJzZXRsaWtlIik7CiAgICAgaWYgKCF0b2tlbnMuYmFzZSkgewogICAgICAgdG9r
ZW5pc2VyLnVuY29uc3VtZShzdGFydF9wb3NpdGlvbik7CiAgICAgICByZXR1cm47CkBAIC0yMzkz
LDM0ICsyOTY0LDQzIEBAIGNsYXNzIEl0ZXJhYmxlTGlrZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICAgY29uc3Qgc2Vjb25kVHlwZUFs
bG93ZWQgPSBzZWNvbmRUeXBlUmVxdWlyZWQgfHwgdHlwZSA9PT0gIml0ZXJhYmxlIjsKICAgICBj
b25zdCBhcmd1bWVudEFsbG93ZWQgPSByZXQuYXN5bmMgJiYgdHlwZSA9PT0gIml0ZXJhYmxlIjsK
IAotICAgIHRva2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUoIjwiKSB8fCB0b2tlbmlzZXIu
ZXJyb3IoYE1pc3NpbmcgbGVzcy10aGFuIHNpZ24gXGA8XGAgaW4gJHt0eXBlfSBkZWNsYXJhdGlv
bmApOwotICAgIGNvbnN0IGZpcnN0ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8xX19bInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRva2VuaXNl
cikgfHwgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIGEgdHlwZSBhcmd1bWVudCBpbiAke3R5cGV9
IGRlY2xhcmF0aW9uYCk7CisgICAgdG9rZW5zLm9wZW4gPQorICAgICAgdG9rZW5pc2VyLmNvbnN1
bWUoIjwiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIGxlc3MtdGhhbiBzaWdu
IFxgPFxgIGluICR7dHlwZX0gZGVjbGFyYXRpb25gKTsKKyAgICBjb25zdCBmaXJzdCA9CisgICAg
ICAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnR5cGVfd2l0aF9l
eHRlbmRlZF9hdHRyaWJ1dGVzKSh0b2tlbmlzZXIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJyb3Io
YE1pc3NpbmcgYSB0eXBlIGFyZ3VtZW50IGluICR7dHlwZX0gZGVjbGFyYXRpb25gKTsKICAgICBy
ZXQuaWRsVHlwZSA9IFtmaXJzdF07CiAgICAgcmV0LmFyZ3VtZW50cyA9IFtdOwogCiAgICAgaWYg
KHNlY29uZFR5cGVBbGxvd2VkKSB7CiAgICAgICBmaXJzdC50b2tlbnMuc2VwYXJhdG9yID0gdG9r
ZW5pc2VyLmNvbnN1bWUoIiwiKTsKICAgICAgIGlmIChmaXJzdC50b2tlbnMuc2VwYXJhdG9yKSB7
Ci0gICAgICAgIHJldC5pZGxUeXBlLnB1c2goT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRva2Vu
aXNlcikpOwotICAgICAgfQotICAgICAgZWxzZSBpZiAoc2Vjb25kVHlwZVJlcXVpcmVkKSB7Cisg
ICAgICAgIHJldC5pZGxUeXBlLnB1c2goKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzFfXy50eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcykodG9rZW5pc2VyKSk7Cisg
ICAgICB9IGVsc2UgaWYgKHNlY29uZFR5cGVSZXF1aXJlZCkgewogICAgICAgICB0b2tlbmlzZXIu
ZXJyb3IoYE1pc3Npbmcgc2Vjb25kIHR5cGUgYXJndW1lbnQgaW4gJHt0eXBlfSBkZWNsYXJhdGlv
bmApOwogICAgICAgfQogICAgIH0KIAotICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25z
dW1lKCI+IikgfHwgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIGdyZWF0ZXItdGhhbiBzaWduIFxg
PlxgIGluICR7dHlwZX0gZGVjbGFyYXRpb25gKTsKKyAgICB0b2tlbnMuY2xvc2UgPQorICAgICAg
dG9rZW5pc2VyLmNvbnN1bWUoIj4iKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5n
IGdyZWF0ZXItdGhhbiBzaWduIFxgPlxgIGluICR7dHlwZX0gZGVjbGFyYXRpb25gKTsKIAogICAg
IGlmICh0b2tlbmlzZXIucHJvYmUoIigiKSkgewogICAgICAgaWYgKGFyZ3VtZW50QWxsb3dlZCkg
ewogICAgICAgICB0b2tlbnMuYXJnc09wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgiKCIpOwotICAg
ICAgICByZXQuYXJndW1lbnRzLnB1c2goLi4uT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX19bImFyZ3VtZW50X2xpc3QiXSkodG9rZW5pc2VyKSk7Ci0gICAgICAg
IHRva2Vucy5hcmdzQ2xvc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5l
cnJvcigiVW50ZXJtaW5hdGVkIGFzeW5jIGl0ZXJhYmxlIGFyZ3VtZW50IGxpc3QiKTsKKyAgICAg
ICAgcmV0LmFyZ3VtZW50cy5wdXNoKC4uLigwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xX18uYXJndW1lbnRfbGlzdCkodG9rZW5pc2VyKSk7CisgICAgICAgIHRva2Vucy5h
cmdzQ2xvc2UgPQorICAgICAgICAgIHRva2VuaXNlci5jb25zdW1lKCIpIikgfHwKKyAgICAgICAg
ICB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBhc3luYyBpdGVyYWJsZSBhcmd1bWVudCBs
aXN0Iik7CiAgICAgICB9IGVsc2UgewogICAgICAgICB0b2tlbmlzZXIuZXJyb3IoYEFyZ3VtZW50
cyBhcmUgb25seSBhbGxvd2VkIGZvciBcYGFzeW5jIGl0ZXJhYmxlXGBgKTsKICAgICAgIH0KICAg
ICB9CiAKLSAgICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8
IHRva2VuaXNlci5lcnJvcihgTWlzc2luZyBzZW1pY29sb24gYWZ0ZXIgJHt0eXBlfSBkZWNsYXJh
dGlvbmApOworICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9CisgICAgICB0b2tlbmlzZXIuY29uc3Vt
ZSgiOyIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJyb3IoYE1pc3Npbmcgc2VtaWNvbG9uIGFmdGVy
ICR7dHlwZX0gZGVjbGFyYXRpb25gKTsKIAogICAgIHJldHVybiByZXQudGhpczsKICAgfQpAQCAt
MjQ0MywyMyArMzAyMyw0NCBAQCBjbGFzcyBJdGVyYWJsZUxpa2UgZXh0ZW5kcyBfYmFzZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgICAgeWllbGQqIGFyZ3Vt
ZW50LnZhbGlkYXRlKGRlZnMpOwogICAgIH0KICAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgi
Li4vd3JpdGVyLmpzIikuV3JpdGVyfSB3ICovCisgIHdyaXRlKHcpIHsKKyAgICByZXR1cm4gdy50
cy5kZWZpbml0aW9uKAorICAgICAgdy50cy53cmFwKFsKKyAgICAgICAgdGhpcy5leHRBdHRycy53
cml0ZSh3KSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5yZWFkb25seSksCisgICAgICAg
IHcudG9rZW4odGhpcy50b2tlbnMuYXN5bmMpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5z
LmJhc2UsIHcudHMuZ2VuZXJpYyksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMub3Blbiks
CisgICAgICAgIHcudHMud3JhcCh0aGlzLmlkbFR5cGUubWFwKCh0KSA9PiB0LndyaXRlKHcpKSks
CisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuY2xvc2UpLAorICAgICAgICB3LnRva2VuKHRo
aXMudG9rZW5zLmFyZ3NPcGVuKSwKKyAgICAgICAgdy50cy53cmFwKHRoaXMuYXJndW1lbnRzLm1h
cCgoYXJnKSA9PiBhcmcud3JpdGUodykpKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5h
cmdzQ2xvc2UpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAg
ICAgIF0pLAorICAgICAgeyBkYXRhOiB0aGlzLCBwYXJlbnQ6IHRoaXMucGFyZW50IH0KKyAgICAp
OworICB9CiB9CiAKIAogLyoqKi8gfSksCiAvKiAyMyAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVs
ZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChf
X3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywg
X193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVx
dWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGlu
ZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJjaGVja0lu
dGVyZmFjZU1lbWJlckR1cGxpY2F0aW9uIiwgZnVuY3Rpb24oKSB7IHJldHVybiBjaGVja0ludGVy
ZmFjZU1lbWJlckR1cGxpY2F0aW9uOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFj
a19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAq
LyAgICJjaGVja0ludGVyZmFjZU1lbWJlckR1cGxpY2F0aW9uIjogKCkgPT4gKC8qIGJpbmRpbmcg
Ki8gY2hlY2tJbnRlcmZhY2VNZW1iZXJEdXBsaWNhdGlvbikKKy8qIGhhcm1vbnkgZXhwb3J0ICov
IH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKIC8vIEB0cy1jaGVjawogCiAK
IAogZnVuY3Rpb24qIGNoZWNrSW50ZXJmYWNlTWVtYmVyRHVwbGljYXRpb24oZGVmcywgaSkgewot
ICBjb25zdCBvcE5hbWVzID0gbmV3IFNldChnZXRPcGVyYXRpb25zKGkpLm1hcChvcCA9PiBvcC5u
YW1lKSk7CisgIGNvbnN0IG9wTmFtZXMgPSBuZXcgU2V0KGdldE9wZXJhdGlvbnMoaSkubWFwKChv
cCkgPT4gb3AubmFtZSkpOwogICBjb25zdCBwYXJ0aWFscyA9IGRlZnMucGFydGlhbHMuZ2V0KGku
bmFtZSkgfHwgW107CiAgIGNvbnN0IG1peGlucyA9IGRlZnMubWl4aW5NYXAuZ2V0KGkubmFtZSkg
fHwgW107CiAgIGZvciAoY29uc3QgZXh0IG9mIFsuLi5wYXJ0aWFscywgLi4ubWl4aW5zXSkgewpA
QCAtMjQ3NSwzMSArMzA3NiwzNiBAQCBmdW5jdGlvbiogY2hlY2tJbnRlcmZhY2VNZW1iZXJEdXBs
aWNhdGlvbihkZWZzLCBpKSB7CiAgICAgICBjb25zdCB7IG5hbWUgfSA9IGFkZGl0aW9uOwogICAg
ICAgaWYgKG5hbWUgJiYgZXhpc3RpbmdzLmhhcyhuYW1lKSkgewogICAgICAgICBjb25zdCBtZXNz
YWdlID0gYFRoZSBvcGVyYXRpb24gIiR7bmFtZX0iIGhhcyBhbHJlYWR5IGJlZW4gZGVmaW5lZCBm
b3IgdGhlIGJhc2UgaW50ZXJmYWNlICIke2Jhc2UubmFtZX0iIGVpdGhlciBpbiBpdHNlbGYgb3Ig
aW4gYSBtaXhpbmA7Ci0gICAgICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfX1sidmFsaWRhdGlvbkVycm9yIl0pKGFkZGl0aW9uLnRva2Vucy5uYW1l
LCBleHQsICJuby1jcm9zcy1vdmVybG9hZCIsIG1lc3NhZ2UpOworICAgICAgICB5aWVsZCAoMCxf
ZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy52YWxpZGF0aW9uRXJyb3IpKAor
ICAgICAgICAgIGFkZGl0aW9uLnRva2Vucy5uYW1lLAorICAgICAgICAgIGV4dCwKKyAgICAgICAg
ICAibm8tY3Jvc3Mtb3ZlcmxvYWQiLAorICAgICAgICAgIG1lc3NhZ2UKKyAgICAgICAgKTsKICAg
ICAgIH0KICAgICB9CiAgIH0KIAogICBmdW5jdGlvbiBnZXRPcGVyYXRpb25zKGkpIHsKLSAgICBy
ZXR1cm4gaS5tZW1iZXJzCi0gICAgICAuZmlsdGVyKCh7dHlwZX0pID0+IHR5cGUgPT09ICJvcGVy
YXRpb24iKTsKKyAgICByZXR1cm4gaS5tZW1iZXJzLmZpbHRlcigoeyB0eXBlIH0pID0+IHR5cGUg
PT09ICJvcGVyYXRpb24iKTsKICAgfQogfQogCiAKIC8qKiovIH0pLAogLyogMjQgKi8KLS8qKiov
IChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJl
X18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2Vi
cGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3Qi
OwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9u
eSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhw
b3J0c19fLCAiQ29uc3RydWN0b3IiLCBmdW5jdGlvbigpIHsgcmV0dXJuIENvbnN0cnVjdG9yOyB9
KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tf
ZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJDb25zdHJ1Y3RvciI6ICgpID0+
ICgvKiBiaW5kaW5nICovIENvbnN0cnVjdG9yKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAv
KiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIg
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1
aXJlX18oNCk7CiAKIAogCi1jbGFzcyBDb25zdHJ1Y3RvciBleHRlbmRzIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CitjbGFzcyBDb25zdHJ1Y3RvciBleHRl
bmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgog
ICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIK
ICAgICovCkBAIC0yNTEwLDEyICszMTE2LDE3IEBAIGNsYXNzIENvbnN0cnVjdG9yIGV4dGVuZHMg
X2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICB9CiAg
ICAgLyoqIEB0eXBlIHtCYXNlWyJ0b2tlbnMiXX0gKi8KICAgICBjb25zdCB0b2tlbnMgPSB7IGJh
c2UgfTsKLSAgICB0b2tlbnMub3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCIoIikgfHwgdG9rZW5p
c2VyLmVycm9yKCJObyBhcmd1bWVudCBsaXN0IGluIGNvbnN0cnVjdG9yIik7Ci0gICAgY29uc3Qg
YXJncyA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJh
cmd1bWVudF9saXN0Il0pKHRva2VuaXNlcik7Ci0gICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2Vy
LmNvbnN1bWUoIikiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBjb25zdHJ1Y3Rv
ciIpOwotICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwg
dG9rZW5pc2VyLmVycm9yKCJObyBzZW1pY29sb24gYWZ0ZXIgY29uc3RydWN0b3IiKTsKKyAgICB0
b2tlbnMub3BlbiA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiKCIpIHx8CisgICAgICB0b2tl
bmlzZXIuZXJyb3IoIk5vIGFyZ3VtZW50IGxpc3QgaW4gY29uc3RydWN0b3IiKTsKKyAgICBjb25z
dCBhcmdzID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5hcmd1
bWVudF9saXN0KSh0b2tlbmlzZXIpOworICAgIHRva2Vucy5jbG9zZSA9CisgICAgICB0b2tlbmlz
ZXIuY29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGNvbnN0cnVj
dG9yIik7CisgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1l
KCI7IikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiTm8gc2VtaWNvbG9uIGFmdGVyIGNvbnN0
cnVjdG9yIik7CiAgICAgY29uc3QgcmV0ID0gbmV3IENvbnN0cnVjdG9yKHsgc291cmNlOiB0b2tl
bmlzZXIuc291cmNlLCB0b2tlbnMgfSk7Ci0gICAgT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8xX19bImF1dG9QYXJlbnRlciJdKShyZXQpLmFyZ3VtZW50cyA9IGFy
Z3M7CisgICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5hdXRv
UGFyZW50ZXIpKHJldCkuYXJndW1lbnRzID0gYXJnczsKICAgICByZXR1cm4gcmV0OwogICB9CiAK
QEAgLTI1MzEsMTYgKzMxNDIsMzMgQEAgY2xhc3MgQ29uc3RydWN0b3IgZXh0ZW5kcyBfYmFzZV9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgICAgeWllbGQqIGFy
Z3VtZW50LnZhbGlkYXRlKGRlZnMpOwogICAgIH0KICAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9y
dCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyfSB3ICovCisgIHdyaXRlKHcpIHsKKyAgICBjb25zdCB7
IHBhcmVudCB9ID0gdGhpczsKKyAgICByZXR1cm4gdy50cy5kZWZpbml0aW9uKAorICAgICAgdy50
cy53cmFwKFsKKyAgICAgICAgdGhpcy5leHRBdHRycy53cml0ZSh3KSwKKyAgICAgICAgdy50b2tl
bih0aGlzLnRva2Vucy5iYXNlLCB3LnRzLm5hbWVsZXNzLCB7IGRhdGE6IHRoaXMsIHBhcmVudCB9
KSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5vcGVuKSwKKyAgICAgICAgdy50cy53cmFw
KHRoaXMuYXJndW1lbnRzLm1hcCgoYXJnKSA9PiBhcmcud3JpdGUodykpKSwKKyAgICAgICAgdy50
b2tlbih0aGlzLnRva2Vucy5jbG9zZSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMudGVy
bWluYXRpb24pLAorICAgICAgXSksCisgICAgICB7IGRhdGE6IHRoaXMsIHBhcmVudCB9CisgICAg
KTsKKyAgfQogfQogCiAKIC8qKiovIH0pLAogLyogMjUgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1
bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgo
X191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18s
IF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3Jl
cXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRp
bmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiTWl4aW4i
LCBmdW5jdGlvbigpIHsgcmV0dXJuIE1peGluOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9f
d2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4
cG9ydCAqLyAgICJNaXhpbiI6ICgpID0+ICgvKiBiaW5kaW5nICovIE1peGluKQorLyogaGFybW9u
eSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnRhaW5lcl9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCk7CiAv
KiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIxKTsKIC8qIGhhcm1vbnkgaW1wb3J0ICov
IHZhciBfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBh
Y2tfcmVxdWlyZV9fKDE0KTsKQEAgLTI1NTIsNyArMzE4MCw3IEBAIF9fd2VicGFja19yZXF1aXJl
X18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAogCiAKLWNsYXNzIE1peGluIGV4dGVuZHMgX2Nv
bnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXSB7Citj
bGFzcyBNaXhpbiBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfXy5Db250YWluZXIgewogICAvKioKICAgICogQHR5cGVkZWYge2ltcG9ydCgiLi4vdG9rZW5p
c2VyLmpzIikuVG9rZW59IFRva2VuCiAgICAqCkBAIC0yNTY3LDE1ICszMTk1LDE5IEBAIGNsYXNz
IE1peGluIGV4dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
WyJDb250YWluZXIiXSB7CiAgICAgaWYgKCF0b2tlbnMubWl4aW4pIHsKICAgICAgIHJldHVybjsK
ICAgICB9Ci0gICAgcmV0dXJuIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfX1siQ29udGFpbmVyIl0ucGFyc2UodG9rZW5pc2VyLCBuZXcgTWl4aW4oeyBzb3VyY2U6IHRv
a2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSwgewotICAgICAgdHlwZTogImludGVyZmFjZSBtaXhp
biIsCi0gICAgICBhbGxvd2VkTWVtYmVyczogWwotICAgICAgICBbX2NvbnN0YW50X2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkNvbnN0YW50Il0ucGFyc2VdLAotICAgICAgICBbX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1sic3RyaW5naWZpZXIiXV0sCi0g
ICAgICAgIFtfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkF0dHJp
YnV0ZSJdLnBhcnNlLCB7IG5vSW5oZXJpdDogdHJ1ZSB9XSwKLSAgICAgICAgW19vcGVyYXRpb25f
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1siT3BlcmF0aW9uIl0ucGFyc2UsIHsgcmVn
dWxhcjogdHJ1ZSB9XQotICAgICAgXQotICAgIH0pOworICAgIHJldHVybiBfY29udGFpbmVyX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQ29udGFpbmVyLnBhcnNlKAorICAgICAgdG9r
ZW5pc2VyLAorICAgICAgbmV3IE1peGluKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tl
bnMgfSksCisgICAgICB7CisgICAgICAgIHR5cGU6ICJpbnRlcmZhY2UgbWl4aW4iLAorICAgICAg
ICBhbGxvd2VkTWVtYmVyczogWworICAgICAgICAgIFtfY29uc3RhbnRfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfXy5Db25zdGFudC5wYXJzZV0sCisgICAgICAgICAgW19oZWxwZXJzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uc3RyaW5naWZpZXJdLAorICAgICAgICAgIFtf
YXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQXR0cmlidXRlLnBhcnNl
LCB7IG5vSW5oZXJpdDogdHJ1ZSB9XSwKKyAgICAgICAgICBbX29wZXJhdGlvbl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfM19fLk9wZXJhdGlvbi5wYXJzZSwgeyByZWd1bGFyOiB0cnVlIH1d
LAorICAgICAgICBdLAorICAgICAgfQorICAgICk7CiAgIH0KIAogICBnZXQgdHlwZSgpIHsKQEAg
LTI1ODYsMTEgKzMyMTgsMTIgQEAgY2xhc3MgTWl4aW4gZXh0ZW5kcyBfY29udGFpbmVyX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkNvbnRhaW5lciJdIHsKIAogLyoqKi8gfSksCiAv
KiAyNiAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193
ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19t
b2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewog
Ci0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNf
Xyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5k
KF9fd2VicGFja19leHBvcnRzX18sICJEaWN0aW9uYXJ5IiwgZnVuY3Rpb24oKSB7IHJldHVybiBE
aWN0aW9uYXJ5OyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18u
ZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJEaWN0aW9u
YXJ5IjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gRGljdGlvbmFyeSkKKy8qIGhhcm1vbnkgZXhwb3J0
ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb250YWluZXJfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjApOwogLyogaGFybW9u
eSBpbXBvcnQgKi8gdmFyIF9maWVsZF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0g
X193ZWJwYWNrX3JlcXVpcmVfXygyNyk7CiAvLyBAdHMtY2hlY2sKQEAgLTI1OTgsNyArMzIzMSw3
IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAogCiAKLWNs
YXNzIERpY3Rpb25hcnkgZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX19bIkNvbnRhaW5lciJdIHsKK2NsYXNzIERpY3Rpb25hcnkgZXh0ZW5kcyBfY29udGFp
bmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQ29udGFpbmVyIHsKICAgLyoqCiAg
ICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgog
ICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdCkBAIC0yNjEwLDEzICszMjQzLDE1IEBAIGNs
YXNzIERpY3Rpb25hcnkgZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX19bIkNvbnRhaW5lciJdCiAgICAgaWYgKCF0b2tlbnMuYmFzZSkgewogICAgICAgcmV0
dXJuOwogICAgIH0KLSAgICByZXR1cm4gX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fWyJDb250YWluZXIiXS5wYXJzZSh0b2tlbmlzZXIsIG5ldyBEaWN0aW9uYXJ5KHsg
c291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSksIHsKLSAgICAgIHR5cGU6ICJkaWN0
aW9uYXJ5IiwKLSAgICAgIGluaGVyaXRhYmxlOiAhcGFydGlhbCwKLSAgICAgIGFsbG93ZWRNZW1i
ZXJzOiBbCi0gICAgICAgIFtfZmllbGRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1si
RmllbGQiXS5wYXJzZV0sCi0gICAgICBdCi0gICAgfSk7CisgICAgcmV0dXJuIF9jb250YWluZXJf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5Db250YWluZXIucGFyc2UoCisgICAgICB0
b2tlbmlzZXIsCisgICAgICBuZXcgRGljdGlvbmFyeSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJj
ZSwgdG9rZW5zIH0pLAorICAgICAgeworICAgICAgICB0eXBlOiAiZGljdGlvbmFyeSIsCisgICAg
ICAgIGluaGVyaXRhYmxlOiAhcGFydGlhbCwKKyAgICAgICAgYWxsb3dlZE1lbWJlcnM6IFtbX2Zp
ZWxkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uRmllbGQucGFyc2VdXSwKKyAgICAg
IH0KKyAgICApOwogICB9CiAKICAgZ2V0IHR5cGUoKSB7CkBAIC0yNjI3LDExICszMjYyLDEyIEBA
IGNsYXNzIERpY3Rpb25hcnkgZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX19bIkNvbnRhaW5lciJdCiAKIC8qKiovIH0pLAogLyogMjcgKi8KLS8qKiovIChm
dW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18p
IHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFj
a19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwog
X193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBl
eHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0
c19fLCAiRmllbGQiLCBmdW5jdGlvbigpIHsgcmV0dXJuIEZpZWxkOyB9KTsKKy8qIGhhcm1vbnkg
ZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7Cisv
KiBoYXJtb255IGV4cG9ydCAqLyAgICJGaWVsZCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEZpZWxk
KQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jh
c2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18o
Nik7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CiAvKiBoYXJtb255IGltcG9y
dCAqLyB2YXIgX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oOCk7CkBAIC0yNjQxLDIxICszMjc3LDI4IEBAIF9f
d2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAogCiAKLWNsYXNzIEZp
ZWxkIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJd
IHsKK2NsYXNzIEZpZWxkIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfXy5CYXNlIHsKICAgLyoqCiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5U
b2tlbmlzZXJ9IHRva2VuaXNlcgogICAgKi8KICAgc3RhdGljIHBhcnNlKHRva2VuaXNlcikgewog
ICAgIC8qKiBAdHlwZSB7QmFzZVsidG9rZW5zIl19ICovCiAgICAgY29uc3QgdG9rZW5zID0ge307
Ci0gICAgY29uc3QgcmV0ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8xX19bImF1dG9QYXJlbnRlciJdKShuZXcgRmllbGQoeyBzb3VyY2U6IHRva2VuaXNlci5z
b3VyY2UsIHRva2VucyB9KSk7Ci0gICAgcmV0LmV4dEF0dHJzID0gX2V4dGVuZGVkX2F0dHJpYnV0
ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siRXh0ZW5kZWRBdHRyaWJ1dGVzIl0u
cGFyc2UodG9rZW5pc2VyKTsKKyAgICBjb25zdCByZXQgPSAoMCxfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fLmF1dG9QYXJlbnRlcikobmV3IEZpZWxkKHsgc291cmNlOiB0
b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkpOworICAgIHJldC5leHRBdHRycyA9IF9leHRlbmRl
ZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uRXh0ZW5kZWRBdHRy
aWJ1dGVzLnBhcnNlKHRva2VuaXNlcik7CiAgICAgdG9rZW5zLnJlcXVpcmVkID0gdG9rZW5pc2Vy
LmNvbnN1bWUoInJlcXVpcmVkIik7Ci0gICAgcmV0LmlkbFR5cGUgPSBPYmplY3QoX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidHlwZV93aXRoX2V4dGVuZGVkX2F0dHJp
YnV0ZXMiXSkodG9rZW5pc2VyLCAiZGljdGlvbmFyeS10eXBlIikgfHwgdG9rZW5pc2VyLmVycm9y
KCJEaWN0aW9uYXJ5IG1lbWJlciBsYWNrcyBhIHR5cGUiKTsKLSAgICB0b2tlbnMubmFtZSA9IHRv
a2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKCJEaWN0aW9u
YXJ5IG1lbWJlciBsYWNrcyBhIG5hbWUiKTsKLSAgICByZXQuZGVmYXVsdCA9IF9kZWZhdWx0X2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bIkRlZmF1bHQiXS5wYXJzZSh0b2tlbmlzZXIp
OwotICAgIGlmICh0b2tlbnMucmVxdWlyZWQgJiYgcmV0LmRlZmF1bHQpIHRva2VuaXNlci5lcnJv
cigiUmVxdWlyZWQgbWVtYmVyIG11c3Qgbm90IGhhdmUgYSBkZWZhdWx0Iik7Ci0gICAgdG9rZW5z
LnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3Io
IlVudGVybWluYXRlZCBkaWN0aW9uYXJ5IG1lbWJlciwgZXhwZWN0ZWQgYDtgIik7CisgICAgcmV0
LmlkbFR5cGUgPQorICAgICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfXy50eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcykodG9rZW5pc2VyLCAiZGljdGlvbmFy
eS10eXBlIikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiRGljdGlvbmFyeSBtZW1iZXIgbGFj
a3MgYSB0eXBlIik7CisgICAgdG9rZW5zLm5hbWUgPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWVU
eXBlKCJpZGVudGlmaWVyIikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiRGljdGlvbmFyeSBt
ZW1iZXIgbGFja3MgYSBuYW1lIik7CisgICAgcmV0LmRlZmF1bHQgPSBfZGVmYXVsdF9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLkRlZmF1bHQucGFyc2UodG9rZW5pc2VyKTsKKyAgICBp
ZiAodG9rZW5zLnJlcXVpcmVkICYmIHJldC5kZWZhdWx0KQorICAgICAgdG9rZW5pc2VyLmVycm9y
KCJSZXF1aXJlZCBtZW1iZXIgbXVzdCBub3QgaGF2ZSBhIGRlZmF1bHQiKTsKKyAgICB0b2tlbnMu
dGVybWluYXRpb24gPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fAorICAgICAgdG9r
ZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgZGljdGlvbmFyeSBtZW1iZXIsIGV4cGVjdGVkIGA7
YCIpOwogICAgIHJldHVybiByZXQudGhpczsKICAgfQogCkBAIC0yNjYzLDcgKzMzMDYsNyBAQCBj
bGFzcyBGaWVsZCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19b
IkJhc2UiXSB7CiAgICAgcmV0dXJuICJmaWVsZCI7CiAgIH0KICAgZ2V0IG5hbWUoKSB7Ci0gICAg
cmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1
bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKKyAgICByZXR1cm4gKDAsX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51bmVzY2FwZSkodGhpcy50b2tlbnMu
bmFtZS52YWx1ZSk7CiAgIH0KICAgZ2V0IHJlcXVpcmVkKCkgewogICAgIHJldHVybiAhIXRoaXMu
dG9rZW5zLnJlcXVpcmVkOwpAQCAtMjY3MiwyOCArMzMxNSw0NyBAQCBjbGFzcyBGaWVsZCBleHRl
bmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICp2
YWxpZGF0ZShkZWZzKSB7CiAgICAgeWllbGQqIHRoaXMuaWRsVHlwZS52YWxpZGF0ZShkZWZzKTsK
ICAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyfSB3ICov
CisgIHdyaXRlKHcpIHsKKyAgICBjb25zdCB7IHBhcmVudCB9ID0gdGhpczsKKyAgICByZXR1cm4g
dy50cy5kZWZpbml0aW9uKAorICAgICAgdy50cy53cmFwKFsKKyAgICAgICAgdGhpcy5leHRBdHRy
cy53cml0ZSh3KSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5yZXF1aXJlZCksCisgICAg
ICAgIHcudHMudHlwZSh0aGlzLmlkbFR5cGUud3JpdGUodykpLAorICAgICAgICB3Lm5hbWVfdG9r
ZW4odGhpcy50b2tlbnMubmFtZSwgeyBkYXRhOiB0aGlzLCBwYXJlbnQgfSksCisgICAgICAgIHRo
aXMuZGVmYXVsdCA/IHRoaXMuZGVmYXVsdC53cml0ZSh3KSA6ICIiLAorICAgICAgICB3LnRva2Vu
KHRoaXMudG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAgICAgIF0pLAorICAgICAgeyBkYXRhOiB0aGlz
LCBwYXJlbnQgfQorICAgICk7CisgIH0KIH0KIAogCiAvKioqLyB9KSwKIC8qIDI4ICovCi0vKioq
LyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWly
ZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dl
YnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0
IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1v
bnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4
cG9ydHNfXywgIk5hbWVzcGFjZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gTmFtZXNwYWNlOyB9KTsK
Ky8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhw
b3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJOYW1lc3BhY2UiOiAoKSA9PiAoLyog
YmluZGluZyAqLyBOYW1lc3BhY2UpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1v
bnkgaW1wb3J0ICovIHZhciBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIwKTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBf
YXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVx
dWlyZV9fKDE0KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfb3BlcmF0aW9uX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKTsKIC8qIGhh
cm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNf
XyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJl
X18oNCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50X2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIxKTsKIAogCiAKIAogCiAK
LWNsYXNzIE5hbWVzcGFjZSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfX1siQ29udGFpbmVyIl0geworCitjbGFzcyBOYW1lc3BhY2UgZXh0ZW5kcyBfY29u
dGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQ29udGFpbmVyIHsKICAgLyoq
CiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNl
cgogICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdCkBAIC0yNzA1LDEzICszMzY3LDE4IEBA
IGNsYXNzIE5hbWVzcGFjZSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfX1siQ29udGFpbmVyIl0KICAgICBpZiAoIXRva2Vucy5iYXNlKSB7CiAgICAgICBy
ZXR1cm47CiAgICAgfQotICAgIHJldHVybiBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX19bIkNvbnRhaW5lciJdLnBhcnNlKHRva2VuaXNlciwgbmV3IE5hbWVzcGFjZSh7
IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pLCB7Ci0gICAgICB0eXBlOiAibmFt
ZXNwYWNlIiwKLSAgICAgIGFsbG93ZWRNZW1iZXJzOiBbCi0gICAgICAgIFtfYXR0cmlidXRlX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkF0dHJpYnV0ZSJdLnBhcnNlLCB7IG5vSW5o
ZXJpdDogdHJ1ZSwgcmVhZG9ubHk6IHRydWUgfV0sCi0gICAgICAgIFtfb3BlcmF0aW9uX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIk9wZXJhdGlvbiJdLnBhcnNlLCB7IHJlZ3VsYXI6
IHRydWUgfV0KLSAgICAgIF0KLSAgICB9KTsKKyAgICByZXR1cm4gX2NvbnRhaW5lcl9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkNvbnRhaW5lci5wYXJzZSgKKyAgICAgIHRva2VuaXNl
ciwKKyAgICAgIG5ldyBOYW1lc3BhY2UoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2Vu
cyB9KSwKKyAgICAgIHsKKyAgICAgICAgdHlwZTogIm5hbWVzcGFjZSIsCisgICAgICAgIGFsbG93
ZWRNZW1iZXJzOiBbCisgICAgICAgICAgW19hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzFfXy5BdHRyaWJ1dGUucGFyc2UsIHsgbm9Jbmhlcml0OiB0cnVlLCByZWFkb25seTog
dHJ1ZSB9XSwKKyAgICAgICAgICBbX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV81X18uQ29uc3RhbnQucGFyc2VdLAorICAgICAgICAgIFtfb3BlcmF0aW9uX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8yX18uT3BlcmF0aW9uLnBhcnNlLCB7IHJlZ3VsYXI6IHRydWUgfV0s
CisgICAgICAgIF0sCisgICAgICB9CisgICAgKTsKICAgfQogCiAgIGdldCB0eXBlKCkgewpAQCAt
MjcxOSwxNSArMzM4NiwyNCBAQCBjbGFzcyBOYW1lc3BhY2UgZXh0ZW5kcyBfY29udGFpbmVyX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkNvbnRhaW5lciJdCiAgIH0KIAogICAqdmFs
aWRhdGUoZGVmcykgewotICAgIGlmICghdGhpcy5wYXJ0aWFsICYmIHRoaXMuZXh0QXR0cnMuZXZl
cnkoZXh0QXR0ciA9PiBleHRBdHRyLm5hbWUgIT09ICJFeHBvc2VkIikpIHsKKyAgICBpZiAoCisg
ICAgICAhdGhpcy5wYXJ0aWFsICYmCisgICAgICB0aGlzLmV4dEF0dHJzLmV2ZXJ5KChleHRBdHRy
KSA9PiBleHRBdHRyLm5hbWUgIT09ICJFeHBvc2VkIikKKyAgICApIHsKICAgICAgIGNvbnN0IG1l
c3NhZ2UgPSBgTmFtZXNwYWNlcyBtdXN0IGhhdmUgW0V4cG9zZWRdIGV4dGVuZGVkIGF0dHJpYnV0
ZS4gXAogVG8gZml4LCBhZGQsIGZvciBleGFtcGxlLCBbRXhwb3NlZD1XaW5kb3ddLiBQbGVhc2Ug
YWxzbyBjb25zaWRlciBjYXJlZnVsbHkgXAogaWYgeW91ciBuYW1lc3BhY2Ugc2hvdWxkIGFsc28g
YmUgZXhwb3NlZCBpbiBhIFdvcmtlciBzY29wZS4gUmVmZXIgdG8gdGhlIFwKIFtXZWJJREwgc3Bl
YyBzZWN0aW9uIG9uIEV4cG9zZWRdKGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI0V4
cG9zZWQpIFwKIGZvciBtb3JlIGluZm9ybWF0aW9uLmA7Ci0gICAgICB5aWVsZCBPYmplY3QoX2Vy
cm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bInZhbGlkYXRpb25FcnJvciJdKSh0
aGlzLnRva2Vucy5uYW1lLCB0aGlzLCAicmVxdWlyZS1leHBvc2VkIiwgbWVzc2FnZSwgewotICAg
ICAgICBhdXRvZml4OiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzRfX1siYXV0b2ZpeEFkZEV4cG9zZWRXaW5kb3ciXSkodGhpcykKLSAgICAgIH0pOworICAgICAg
eWllbGQgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udmFsaWRhdGlv
bkVycm9yKSgKKyAgICAgICAgdGhpcy50b2tlbnMubmFtZSwKKyAgICAgICAgdGhpcywKKyAgICAg
ICAgInJlcXVpcmUtZXhwb3NlZCIsCisgICAgICAgIG1lc3NhZ2UsCisgICAgICAgIHsKKyAgICAg
ICAgICBhdXRvZml4OiAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9f
LmF1dG9maXhBZGRFeHBvc2VkV2luZG93KSh0aGlzKSwKKyAgICAgICAgfQorICAgICAgKTsKICAg
ICB9CiAgICAgeWllbGQqIHN1cGVyLnZhbGlkYXRlKGRlZnMpOwogICB9CkBAIC0yNzM2LDExICsz
NDEyLDEyIEBAIGZvciBtb3JlIGluZm9ybWF0aW9uLmA7CiAKIC8qKiovIH0pLAogLyogMjkgKi8K
LS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19y
ZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18s
IF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBz
dHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyog
aGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBh
Y2tfZXhwb3J0c19fLCAiQ2FsbGJhY2tJbnRlcmZhY2UiLCBmdW5jdGlvbigpIHsgcmV0dXJuIENh
bGxiYWNrSW50ZXJmYWNlOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1
aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJD
YWxsYmFja0ludGVyZmFjZSI6ICgpID0+ICgvKiBiaW5kaW5nICovIENhbGxiYWNrSW50ZXJmYWNl
KQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Nv
bnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVp
cmVfXygyMCk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX29wZXJhdGlvbl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMyk7CiAvKiBoYXJt
b255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8y
X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIxKTsKQEAgLTI3NTAsNyArMzQyNyw3IEBAIF9fd2Vi
cGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAogCiAKLWNsYXNzIENhbGxi
YWNrSW50ZXJmYWNlIGV4dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fWyJDb250YWluZXIiXSB7CitjbGFzcyBDYWxsYmFja0ludGVyZmFjZSBleHRlbmRzIF9j
b250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5Db250YWluZXIgewogICAv
KioKICAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5p
c2VyCiAgICAqLwpAQCAtMjc2MCwxNCArMzQzNywxOCBAQCBjbGFzcyBDYWxsYmFja0ludGVyZmFj
ZSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29u
dAogICAgIGlmICghdG9rZW5zLmJhc2UpIHsKICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgcmV0
dXJuIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVy
Il0ucGFyc2UodG9rZW5pc2VyLCBuZXcgQ2FsbGJhY2tJbnRlcmZhY2UoeyBzb3VyY2U6IHRva2Vu
aXNlci5zb3VyY2UsIHRva2VucyB9KSwgewotICAgICAgdHlwZTogImNhbGxiYWNrIGludGVyZmFj
ZSIsCi0gICAgICBpbmhlcml0YWJsZTogIXBhcnRpYWwsCi0gICAgICBhbGxvd2VkTWVtYmVyczog
WwotICAgICAgICBbX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkNv
bnN0YW50Il0ucGFyc2VdLAotICAgICAgICBbX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMV9fWyJPcGVyYXRpb24iXS5wYXJzZSwgeyByZWd1bGFyOiB0cnVlIH1dCi0gICAg
ICBdCi0gICAgfSk7CisgICAgcmV0dXJuIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfXy5Db250YWluZXIucGFyc2UoCisgICAgICB0b2tlbmlzZXIsCisgICAgICBuZXcg
Q2FsbGJhY2tJbnRlcmZhY2UoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSwK
KyAgICAgIHsKKyAgICAgICAgdHlwZTogImNhbGxiYWNrIGludGVyZmFjZSIsCisgICAgICAgIGlu
aGVyaXRhYmxlOiAhcGFydGlhbCwKKyAgICAgICAgYWxsb3dlZE1lbWJlcnM6IFsKKyAgICAgICAg
ICBbX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQ29uc3RhbnQucGFy
c2VdLAorICAgICAgICAgIFtfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X18uT3BlcmF0aW9uLnBhcnNlLCB7IHJlZ3VsYXI6IHRydWUgfV0sCisgICAgICAgIF0sCisgICAg
ICB9CisgICAgKTsKICAgfQogCiAgIGdldCB0eXBlKCkgewpAQCAtMjc3OCwxOSArMzQ1OSwxOSBA
QCBjbGFzcyBDYWxsYmFja0ludGVyZmFjZSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfX1siQ29udAogCiAvKioqLyB9KSwKIC8qIDMwICovCi0vKioqLyAo
ZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9f
KSB7CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBh
Y2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsK
IF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkg
ZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9y
dHNfXywgIndyaXRlIiwgZnVuY3Rpb24oKSB7IHJldHVybiB3cml0ZTsgfSk7Ci0KLQorLyogaGFy
bW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18s
IHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIldyaXRlciI6ICgpID0+ICgvKiBiaW5kaW5nICov
IFdyaXRlciksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJ3cml0ZSI6ICgpID0+ICgvKiBiaW5k
aW5nICovIHdyaXRlKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiBmdW5jdGlvbiBub29wKGFy
ZykgewogICByZXR1cm4gYXJnOwogfQogCiBjb25zdCB0ZW1wbGF0ZXMgPSB7Ci0gIHdyYXA6IGl0
ZW1zID0+IGl0ZW1zLmpvaW4oIiIpLAorICB3cmFwOiAoaXRlbXMpID0+IGl0ZW1zLmpvaW4oIiIp
LAogICB0cml2aWE6IG5vb3AsCiAgIG5hbWU6IG5vb3AsCiAgIHJlZmVyZW5jZTogbm9vcCwKQEAg
LTI4MDAsMzM1ICszNDgxLDc0IEBAIGNvbnN0IHRlbXBsYXRlcyA9IHsKICAgaW5oZXJpdGFuY2U6
IG5vb3AsCiAgIGRlZmluaXRpb246IG5vb3AsCiAgIGV4dGVuZGVkQXR0cmlidXRlOiBub29wLAot
ICBleHRlbmRlZEF0dHJpYnV0ZVJlZmVyZW5jZTogbm9vcAorICBleHRlbmRlZEF0dHJpYnV0ZVJl
ZmVyZW5jZTogbm9vcCwKIH07CiAKLWZ1bmN0aW9uIHdyaXRlKGFzdCwgeyB0ZW1wbGF0ZXM6IHRz
ID0gdGVtcGxhdGVzIH0gPSB7fSkgewotICB0cyA9IE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRl
cywgdHMpOworY2xhc3MgV3JpdGVyIHsKKyAgY29uc3RydWN0b3IodHMpIHsKKyAgICB0aGlzLnRz
ID0gT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGVzLCB0cyk7CisgIH0KIAotICBmdW5jdGlvbiBy
ZWZlcmVuY2UocmF3LCB7IHVuZXNjYXBlZCwgY29udGV4dCB9KSB7CisgIHJlZmVyZW5jZShyYXcs
IHsgdW5lc2NhcGVkLCBjb250ZXh0IH0pIHsKICAgICBpZiAoIXVuZXNjYXBlZCkgewogICAgICAg
dW5lc2NhcGVkID0gcmF3LnN0YXJ0c1dpdGgoIl8iKSA/IHJhdy5zbGljZSgxKSA6IHJhdzsKICAg
ICB9Ci0gICAgcmV0dXJuIHRzLnJlZmVyZW5jZShyYXcsIHVuZXNjYXBlZCwgY29udGV4dCk7Cisg
ICAgcmV0dXJuIHRoaXMudHMucmVmZXJlbmNlKHJhdywgdW5lc2NhcGVkLCBjb250ZXh0KTsKICAg
fQogCi0gIGZ1bmN0aW9uIHRva2VuKHQsIHdyYXBwZXIgPSBub29wLCAuLi5hcmdzKSB7CisgIHRv
a2VuKHQsIHdyYXBwZXIgPSBub29wLCAuLi5hcmdzKSB7CiAgICAgaWYgKCF0KSB7CiAgICAgICBy
ZXR1cm4gIiI7CiAgICAgfQogICAgIGNvbnN0IHZhbHVlID0gd3JhcHBlcih0LnZhbHVlLCAuLi5h
cmdzKTsKLSAgICByZXR1cm4gdHMud3JhcChbdHMudHJpdmlhKHQudHJpdmlhKSwgdmFsdWVdKTsK
KyAgICByZXR1cm4gdGhpcy50cy53cmFwKFt0aGlzLnRzLnRyaXZpYSh0LnRyaXZpYSksIHZhbHVl
XSk7CiAgIH0KIAotICBmdW5jdGlvbiByZWZlcmVuY2VfdG9rZW4odCwgY29udGV4dCkgewotICAg
IHJldHVybiB0b2tlbih0LCByZWZlcmVuY2UsIHsgY29udGV4dCB9KTsKKyAgcmVmZXJlbmNlX3Rv
a2VuKHQsIGNvbnRleHQpIHsKKyAgICByZXR1cm4gdGhpcy50b2tlbih0LCB0aGlzLnJlZmVyZW5j
ZS5iaW5kKHRoaXMpLCB7IGNvbnRleHQgfSk7CiAgIH0KIAotICBmdW5jdGlvbiBuYW1lX3Rva2Vu
KHQsIGFyZykgewotICAgIHJldHVybiB0b2tlbih0LCB0cy5uYW1lLCBhcmcpOworICBuYW1lX3Rv
a2VuKHQsIGFyZykgeworICAgIHJldHVybiB0aGlzLnRva2VuKHQsIHRoaXMudHMubmFtZSwgYXJn
KTsKICAgfQogCi0gIGZ1bmN0aW9uIHR5cGVfYm9keShpdCkgewotICAgIGlmIChpdC51bmlvbiB8
fCBpdC5nZW5lcmljKSB7Ci0gICAgICByZXR1cm4gdHMud3JhcChbCi0gICAgICAgIHRva2VuKGl0
LnRva2Vucy5iYXNlLCB0cy5nZW5lcmljKSwKLSAgICAgICAgdG9rZW4oaXQudG9rZW5zLm9wZW4p
LAotICAgICAgICAuLi5pdC5zdWJ0eXBlLm1hcCh0eXBlKSwKLSAgICAgICAgdG9rZW4oaXQudG9r
ZW5zLmNsb3NlKQotICAgICAgXSk7Ci0gICAgfQotICAgIGNvbnN0IGZpcnN0VG9rZW4gPSBpdC50
b2tlbnMucHJlZml4IHx8IGl0LnRva2Vucy5iYXNlOwotICAgIGNvbnN0IHByZWZpeCA9IGl0LnRv
a2Vucy5wcmVmaXggPyBbCi0gICAgICBpdC50b2tlbnMucHJlZml4LnZhbHVlLAotICAgICAgdHMu
dHJpdmlhKGl0LnRva2Vucy5iYXNlLnRyaXZpYSkKLSAgICBdIDogW107Ci0gICAgY29uc3QgcmVm
ID0gcmVmZXJlbmNlKHRzLndyYXAoWwotICAgICAgLi4ucHJlZml4LAotICAgICAgaXQudG9rZW5z
LmJhc2UudmFsdWUsCi0gICAgICB0b2tlbihpdC50b2tlbnMucG9zdGZpeCkKLSAgICBdKSwgeyB1
bmVzY2FwZWQ6IGl0LmlkbFR5cGUsIGNvbnRleHQ6IGl0IH0pOwotICAgIHJldHVybiB0cy53cmFw
KFt0cy50cml2aWEoZmlyc3RUb2tlbi50cml2aWEpLCByZWZdKTsKLSAgfQotICBmdW5jdGlvbiB0
eXBlKGl0KSB7Ci0gICAgcmV0dXJuIHRzLndyYXAoWwotICAgICAgZXh0ZW5kZWRfYXR0cmlidXRl
cyhpdC5leHRBdHRycyksCi0gICAgICB0eXBlX2JvZHkoaXQpLAotICAgICAgdG9rZW4oaXQudG9r
ZW5zLm51bGxhYmxlKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5zZXBhcmF0b3IpCi0gICAgXSk7
Ci0gIH0KLSAgZnVuY3Rpb24gZGVmYXVsdF8oZGVmKSB7Ci0gICAgaWYgKCFkZWYpIHsKLSAgICAg
IHJldHVybiAiIjsKLSAgICB9Ci0gICAgcmV0dXJuIHRzLndyYXAoWwotICAgICAgdG9rZW4oZGVm
LnRva2Vucy5hc3NpZ24pLAotICAgICAgLi4uZGVmLmV4cHJlc3Npb24ubWFwKHQgPT4gdG9rZW4o
dCkpCi0gICAgXSk7Ci0gIH0KLSAgZnVuY3Rpb24gYXJndW1lbnQoYXJnKSB7Ci0gICAgcmV0dXJu
IHRzLndyYXAoWwotICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhhcmcuZXh0QXR0cnMpLAotICAg
ICAgdG9rZW4oYXJnLnRva2Vucy5vcHRpb25hbCksCi0gICAgICB0cy50eXBlKHR5cGUoYXJnLmlk
bFR5cGUpKSwKLSAgICAgIHRva2VuKGFyZy50b2tlbnMudmFyaWFkaWMpLAotICAgICAgbmFtZV90
b2tlbihhcmcudG9rZW5zLm5hbWUsIHsgZGF0YTogYXJnIH0pLAotICAgICAgZGVmYXVsdF8oYXJn
LmRlZmF1bHQpLAotICAgICAgdG9rZW4oYXJnLnRva2Vucy5zZXBhcmF0b3IpCi0gICAgXSk7Ci0g
IH0KLSAgZnVuY3Rpb24gZXh0ZW5kZWRfYXR0cmlidXRlX2xpc3RpdGVtKHN0cikgewotICAgIHJl
dHVybiB0cy53cmFwKFsKLSAgICAgIHRva2VuKHN0ci50b2tlbnMudmFsdWUpLAotICAgICAgdG9r
ZW4oc3RyLnRva2Vucy5zZXBhcmF0b3IpCi0gICAgXSk7Ci0gIH0KLSAgZnVuY3Rpb24gaWRlbnRp
ZmllcihpZCwgY29udGV4dCkgewotICAgIHJldHVybiB0cy53cmFwKFsKLSAgICAgIHJlZmVyZW5j
ZV90b2tlbihpZC50b2tlbnMudmFsdWUsIGNvbnRleHQpLAotICAgICAgdG9rZW4oaWQudG9rZW5z
LnNlcGFyYXRvcikKLSAgICBdKTsKLSAgfQotICBmdW5jdGlvbiBtYWtlX2V4dF9hdChpdCkgewot
ICAgIGNvbnN0IHsgcmhzVHlwZSB9ID0gaXQucGFyYW1zOwotICAgIHJldHVybiB0cy53cmFwKFsK
LSAgICAgIHRzLnRyaXZpYShpdC50b2tlbnMubmFtZS50cml2aWEpLAotICAgICAgdHMuZXh0ZW5k
ZWRBdHRyaWJ1dGUodHMud3JhcChbCi0gICAgICAgIHRzLmV4dGVuZGVkQXR0cmlidXRlUmVmZXJl
bmNlKGl0Lm5hbWUpLAotICAgICAgICB0b2tlbihpdC5wYXJhbXMudG9rZW5zLmFzc2lnbiksCi0g
ICAgICAgIHJlZmVyZW5jZV90b2tlbihpdC5wYXJhbXMudG9rZW5zLnNlY29uZGFyeU5hbWUsIGl0
KSwKLSAgICAgICAgdG9rZW4oaXQucGFyYW1zLnRva2Vucy5vcGVuKSwKLSAgICAgICAgLi4uIWl0
LnBhcmFtcy5saXN0ID8gW10gOgotICAgICAgICAgIGl0LnBhcmFtcy5saXN0Lm1hcCgKLSAgICAg
ICAgICAgIHJoc1R5cGUgPT09ICJpZGVudGlmaWVyLWxpc3QiID8gaWQgPT4gaWRlbnRpZmllcihp
ZCwgaXQpIDoKLSAgICAgICAgICAgIHJoc1R5cGUgJiYgcmhzVHlwZS5lbmRzV2l0aCgiLWxpc3Qi
KSA/IGV4dGVuZGVkX2F0dHJpYnV0ZV9saXN0aXRlbSA6Ci0gICAgICAgICAgICBhcmd1bWVudAot
ICAgICAgICAgICksCi0gICAgICAgIHRva2VuKGl0LnBhcmFtcy50b2tlbnMuY2xvc2UpCi0gICAg
ICBdKSksCi0gICAgICB0b2tlbihpdC50b2tlbnMuc2VwYXJhdG9yKQotICAgIF0pOwotICB9Ci0g
IGZ1bmN0aW9uIGV4dGVuZGVkX2F0dHJpYnV0ZXMoZWF0cykgewotICAgIGlmICghZWF0cy5sZW5n
dGgpIHJldHVybiAiIjsKLSAgICByZXR1cm4gdHMud3JhcChbCi0gICAgICB0b2tlbihlYXRzLnRv
a2Vucy5vcGVuKSwKLSAgICAgIC4uLmVhdHMubWFwKG1ha2VfZXh0X2F0KSwKLSAgICAgIHRva2Vu
KGVhdHMudG9rZW5zLmNsb3NlKQorICBpZGVudGlmaWVyKGlkLCBjb250ZXh0KSB7CisgICAgcmV0
dXJuIHRoaXMudHMud3JhcChbCisgICAgICB0aGlzLnJlZmVyZW5jZV90b2tlbihpZC50b2tlbnMu
dmFsdWUsIGNvbnRleHQpLAorICAgICAgdGhpcy50b2tlbihpZC50b2tlbnMuc2VwYXJhdG9yKSwK
ICAgICBdKTsKICAgfQorfQogCi0gIGZ1bmN0aW9uIG9wZXJhdGlvbihpdCwgcGFyZW50KSB7Ci0g
ICAgY29uc3QgYm9keSA9IGl0LmlkbFR5cGUgPyBbCi0gICAgICB0cy50eXBlKHR5cGUoaXQuaWRs
VHlwZSkpLAotICAgICAgbmFtZV90b2tlbihpdC50b2tlbnMubmFtZSwgeyBkYXRhOiBpdCwgcGFy
ZW50IH0pLAotICAgICAgdG9rZW4oaXQudG9rZW5zLm9wZW4pLAotICAgICAgdHMud3JhcChpdC5h
cmd1bWVudHMubWFwKGFyZ3VtZW50KSksCi0gICAgICB0b2tlbihpdC50b2tlbnMuY2xvc2UpLAot
ICAgIF0gOiBbXTsKLSAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKLSAgICAgIGV4
dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAotICAgICAgaXQudG9rZW5zLm5hbWUgPyB0
b2tlbihpdC50b2tlbnMuc3BlY2lhbCkgOiB0b2tlbihpdC50b2tlbnMuc3BlY2lhbCwgdHMubmFt
ZWxlc3MsIHsgZGF0YTogaXQsIHBhcmVudCB9KSwKLSAgICAgIC4uLmJvZHksCi0gICAgICB0b2tl
bihpdC50b2tlbnMudGVybWluYXRpb24pCi0gICAgXSksIHsgZGF0YTogaXQsIHBhcmVudCB9KTsK
LSAgfQotCi0gIGZ1bmN0aW9uIGF0dHJpYnV0ZShpdCwgcGFyZW50KSB7Ci0gICAgcmV0dXJuIHRz
LmRlZmluaXRpb24odHMud3JhcChbCi0gICAgICBleHRlbmRlZF9hdHRyaWJ1dGVzKGl0LmV4dEF0
dHJzKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5zcGVjaWFsKSwKLSAgICAgIHRva2VuKGl0LnRv
a2Vucy5yZWFkb25seSksCi0gICAgICB0b2tlbihpdC50b2tlbnMuYmFzZSksCi0gICAgICB0cy50
eXBlKHR5cGUoaXQuaWRsVHlwZSkpLAotICAgICAgbmFtZV90b2tlbihpdC50b2tlbnMubmFtZSwg
eyBkYXRhOiBpdCwgcGFyZW50IH0pLAotICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9u
KQotICAgIF0pLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSk7Ci0gIH0KLQotICBmdW5jdGlvbiBjb25z
dHJ1Y3RvcihpdCwgcGFyZW50KSB7Ci0gICAgcmV0dXJuIHRzLmRlZmluaXRpb24odHMud3JhcChb
Ci0gICAgICBleHRlbmRlZF9hdHRyaWJ1dGVzKGl0LmV4dEF0dHJzKSwKLSAgICAgIHRva2VuKGl0
LnRva2Vucy5iYXNlLCB0cy5uYW1lbGVzcywgeyBkYXRhOiBpdCwgcGFyZW50IH0pLAotICAgICAg
dG9rZW4oaXQudG9rZW5zLm9wZW4pLAotICAgICAgdHMud3JhcChpdC5hcmd1bWVudHMubWFwKGFy
Z3VtZW50KSksCi0gICAgICB0b2tlbihpdC50b2tlbnMuY2xvc2UpLAotICAgICAgdG9rZW4oaXQu
dG9rZW5zLnRlcm1pbmF0aW9uKQotICAgIF0pLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSk7Ci0gIH0K
LQotICBmdW5jdGlvbiBpbmhlcml0YW5jZShpbmgpIHsKLSAgICBpZiAoIWluaC50b2tlbnMuaW5o
ZXJpdGFuY2UpIHsKLSAgICAgIHJldHVybiAiIjsKLSAgICB9Ci0gICAgcmV0dXJuIHRzLndyYXAo
WwotICAgICAgdG9rZW4oaW5oLnRva2Vucy5jb2xvbiksCi0gICAgICB0cy50cml2aWEoaW5oLnRv
a2Vucy5pbmhlcml0YW5jZS50cml2aWEpLAotICAgICAgdHMuaW5oZXJpdGFuY2UocmVmZXJlbmNl
KGluaC50b2tlbnMuaW5oZXJpdGFuY2UudmFsdWUsIHsgY29udGV4dDogaW5oIH0pKQotICAgIF0p
OwotICB9CitmdW5jdGlvbiB3cml0ZShhc3QsIHsgdGVtcGxhdGVzOiB0cyA9IHRlbXBsYXRlcyB9
ID0ge30pIHsKKyAgdHMgPSBPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZXMsIHRzKTsKIAotICBm
dW5jdGlvbiBjb250YWluZXIoaXQpIHsKLSAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFw
KFsKLSAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAotICAgICAgdG9rZW4o
aXQudG9rZW5zLmNhbGxiYWNrKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5wYXJ0aWFsKSwKLSAg
ICAgIHRva2VuKGl0LnRva2Vucy5iYXNlKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5taXhpbiks
Ci0gICAgICBuYW1lX3Rva2VuKGl0LnRva2Vucy5uYW1lLCB7IGRhdGE6IGl0IH0pLAotICAgICAg
aW5oZXJpdGFuY2UoaXQpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLm9wZW4pLAotICAgICAgaXRl
cmF0ZShpdC5tZW1iZXJzLCBpdCksCi0gICAgICB0b2tlbihpdC50b2tlbnMuY2xvc2UpLAotICAg
ICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQotICAgIF0pLCB7IGRhdGE6IGl0IH0pOwot
ICB9Ci0KLSAgZnVuY3Rpb24gZmllbGQoaXQsIHBhcmVudCkgewotICAgIHJldHVybiB0cy5kZWZp
bml0aW9uKHRzLndyYXAoWwotICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyks
Ci0gICAgICB0b2tlbihpdC50b2tlbnMucmVxdWlyZWQpLAotICAgICAgdHMudHlwZSh0eXBlKGl0
LmlkbFR5cGUpKSwKLSAgICAgIG5hbWVfdG9rZW4oaXQudG9rZW5zLm5hbWUsIHsgZGF0YTogaXQs
IHBhcmVudCB9KSwKLSAgICAgIGRlZmF1bHRfKGl0LmRlZmF1bHQpLAotICAgICAgdG9rZW4oaXQu
dG9rZW5zLnRlcm1pbmF0aW9uKQotICAgIF0pLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSk7Ci0gIH0K
LSAgZnVuY3Rpb24gY29uc3RfKGl0LCBwYXJlbnQpIHsKLSAgICByZXR1cm4gdHMuZGVmaW5pdGlv
bih0cy53cmFwKFsKLSAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAotICAg
ICAgdG9rZW4oaXQudG9rZW5zLmJhc2UpLAotICAgICAgdHMudHlwZSh0eXBlKGl0LmlkbFR5cGUp
KSwKLSAgICAgIG5hbWVfdG9rZW4oaXQudG9rZW5zLm5hbWUsIHsgZGF0YTogaXQsIHBhcmVudCB9
KSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5hc3NpZ24pLAotICAgICAgdG9rZW4oaXQudG9rZW5z
LnZhbHVlKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy50ZXJtaW5hdGlvbikKLSAgICBdKSwgeyBk
YXRhOiBpdCwgcGFyZW50IH0pOwotICB9Ci0gIGZ1bmN0aW9uIHR5cGVkZWYoaXQpIHsKLSAgICBy
ZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKLSAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMo
aXQuZXh0QXR0cnMpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLmJhc2UpLAotICAgICAgdHMudHlw
ZSh0eXBlKGl0LmlkbFR5cGUpKSwKLSAgICAgIG5hbWVfdG9rZW4oaXQudG9rZW5zLm5hbWUsIHsg
ZGF0YTogaXQgfSksCi0gICAgICB0b2tlbihpdC50b2tlbnMudGVybWluYXRpb24pCi0gICAgXSks
IHsgZGF0YTogaXQgfSk7Ci0gIH0KLSAgZnVuY3Rpb24gaW5jbHVkZXMoaXQpIHsKLSAgICByZXR1
cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKLSAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQu
ZXh0QXR0cnMpLAotICAgICAgcmVmZXJlbmNlX3Rva2VuKGl0LnRva2Vucy50YXJnZXQsIGl0KSwK
LSAgICAgIHRva2VuKGl0LnRva2Vucy5pbmNsdWRlcyksCi0gICAgICByZWZlcmVuY2VfdG9rZW4o
aXQudG9rZW5zLm1peGluLCBpdCksCi0gICAgICB0b2tlbihpdC50b2tlbnMudGVybWluYXRpb24p
Ci0gICAgXSksIHsgZGF0YTogaXQgfSk7Ci0gIH0KLSAgZnVuY3Rpb24gY2FsbGJhY2soaXQpIHsK
LSAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKLSAgICAgIGV4dGVuZGVkX2F0dHJp
YnV0ZXMoaXQuZXh0QXR0cnMpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLmJhc2UpLAotICAgICAg
bmFtZV90b2tlbihpdC50b2tlbnMubmFtZSwgeyBkYXRhOiBpdCB9KSwKLSAgICAgIHRva2VuKGl0
LnRva2Vucy5hc3NpZ24pLAotICAgICAgdHMudHlwZSh0eXBlKGl0LmlkbFR5cGUpKSwKLSAgICAg
IHRva2VuKGl0LnRva2Vucy5vcGVuKSwKLSAgICAgIC4uLml0LmFyZ3VtZW50cy5tYXAoYXJndW1l
bnQpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLmNsb3NlKSwKLSAgICAgIHRva2VuKGl0LnRva2Vu
cy50ZXJtaW5hdGlvbiksCi0gICAgXSksIHsgZGF0YTogaXQgfSk7Ci0gIH0KLSAgZnVuY3Rpb24g
ZW51bV8oaXQpIHsKLSAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKLSAgICAgIGV4
dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLmJh
c2UpLAotICAgICAgbmFtZV90b2tlbihpdC50b2tlbnMubmFtZSwgeyBkYXRhOiBpdCB9KSwKLSAg
ICAgIHRva2VuKGl0LnRva2Vucy5vcGVuKSwKLSAgICAgIGl0ZXJhdGUoaXQudmFsdWVzLCBpdCks
Ci0gICAgICB0b2tlbihpdC50b2tlbnMuY2xvc2UpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLnRl
cm1pbmF0aW9uKQotICAgIF0pLCB7IGRhdGE6IGl0IH0pOwotICB9Ci0gIGZ1bmN0aW9uIGVudW1f
dmFsdWUodiwgcGFyZW50KSB7Ci0gICAgcmV0dXJuIHRzLndyYXAoWwotICAgICAgdHMudHJpdmlh
KHYudG9rZW5zLnZhbHVlLnRyaXZpYSksCi0gICAgICB0cy5kZWZpbml0aW9uKAotICAgICAgICB0
cy53cmFwKFsnIicsIHRzLm5hbWUodi52YWx1ZSwgeyBkYXRhOiB2LCBwYXJlbnQgfSksICciJ10p
LAotICAgICAgICB7IGRhdGE6IHYsIHBhcmVudCB9Ci0gICAgICApLAotICAgICAgdG9rZW4odi50
b2tlbnMuc2VwYXJhdG9yKQotICAgIF0pOwotICB9Ci0gIGZ1bmN0aW9uIGl0ZXJhYmxlX2xpa2Uo
aXQsIHBhcmVudCkgewotICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWwotICAgICAg
ZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCi0gICAgICB0b2tlbihpdC50b2tlbnMu
cmVhZG9ubHkpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLmFzeW5jKSwKLSAgICAgIHRva2VuKGl0
LnRva2Vucy5iYXNlLCB0cy5nZW5lcmljKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5vcGVuKSwK
LSAgICAgIHRzLndyYXAoaXQuaWRsVHlwZS5tYXAodHlwZSkpLAotICAgICAgdG9rZW4oaXQudG9r
ZW5zLmNsb3NlKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5hcmdzT3BlbiksCi0gICAgICB0cy53
cmFwKGl0LmFyZ3VtZW50cy5tYXAoYXJndW1lbnQpKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5h
cmdzQ2xvc2UpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQotICAgIF0pLCB7
IGRhdGE6IGl0LCBwYXJlbnQgfSk7Ci0gIH0KLSAgZnVuY3Rpb24gZW9mKGl0KSB7Ci0gICAgcmV0
dXJuIHRzLnRyaXZpYShpdC50cml2aWEpOwotICB9Ci0KLSAgY29uc3QgdGFibGUgPSB7Ci0gICAg
aW50ZXJmYWNlOiBjb250YWluZXIsCi0gICAgImludGVyZmFjZSBtaXhpbiI6IGNvbnRhaW5lciwK
LSAgICBuYW1lc3BhY2U6IGNvbnRhaW5lciwKLSAgICBvcGVyYXRpb24sCi0gICAgYXR0cmlidXRl
LAotICAgIGNvbnN0cnVjdG9yLAotICAgIGRpY3Rpb25hcnk6IGNvbnRhaW5lciwKLSAgICBmaWVs
ZCwKLSAgICBjb25zdDogY29uc3RfLAotICAgIHR5cGVkZWYsCi0gICAgaW5jbHVkZXMsCi0gICAg
Y2FsbGJhY2ssCi0gICAgZW51bTogZW51bV8sCi0gICAgImVudW0tdmFsdWUiOiBlbnVtX3ZhbHVl
LAotICAgIGl0ZXJhYmxlOiBpdGVyYWJsZV9saWtlLAotICAgIG1hcGxpa2U6IGl0ZXJhYmxlX2xp
a2UsCi0gICAgc2V0bGlrZTogaXRlcmFibGVfbGlrZSwKLSAgICAiY2FsbGJhY2sgaW50ZXJmYWNl
IjogY29udGFpbmVyLAotICAgIGVvZgotICB9OwotICBmdW5jdGlvbiBkaXNwYXRjaChpdCwgcGFy
ZW50KSB7Ci0gICAgY29uc3QgZGlzcGF0Y2hlciA9IHRhYmxlW2l0LnR5cGVdOwotICAgIGlmICgh
ZGlzcGF0Y2hlcikgewotICAgICAgdGhyb3cgbmV3IEVycm9yKGBUeXBlICIke2l0LnR5cGV9IiBp
cyB1bnN1cHBvcnRlZGApOworICBjb25zdCB3ID0gbmV3IFdyaXRlcih0cyk7CisKKyAgZnVuY3Rp
b24gZGlzcGF0Y2goaXQpIHsKKyAgICBpZiAoaXQudHlwZSA9PT0gImVvZiIpIHsKKyAgICAgIHJl
dHVybiB0cy50cml2aWEoaXQudHJpdmlhKTsKICAgICB9Ci0gICAgcmV0dXJuIHRhYmxlW2l0LnR5
cGVdKGl0LCBwYXJlbnQpOwotICB9Ci0gIGZ1bmN0aW9uIGl0ZXJhdGUodGhpbmdzLCBwYXJlbnQp
IHsKLSAgICBpZiAoIXRoaW5ncykgcmV0dXJuOwotICAgIGNvbnN0IHJlc3VsdHMgPSB0aGluZ3Mu
bWFwKHRoaW5nID0+IGRpc3BhdGNoKHRoaW5nLCBwYXJlbnQpKTsKLSAgICByZXR1cm4gdHMud3Jh
cChyZXN1bHRzKTsKKyAgICByZXR1cm4gaXQud3JpdGUodyk7CiAgIH0KLSAgcmV0dXJuIGl0ZXJh
dGUoYXN0KTsKKyAgcmV0dXJuIHRzLndyYXAoYXN0Lm1hcChkaXNwYXRjaCkpOwogfQogCiAKIC8q
KiovIH0pLAogLyogMzEgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBv
cnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19f
X3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJl
X18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFj
a19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19y
ZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAidmFsaWRhdGUiLCBmdW5jdGlvbigpIHsg
cmV0dXJuIHZhbGlkYXRlOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1
aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJ2
YWxpZGF0ZSI6ICgpID0+ICgvKiBiaW5kaW5nICovIHZhbGlkYXRlKQorLyogaGFybW9ueSBleHBv
cnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Vycm9yX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpOwogCiAKLQotCiBmdW5j
dGlvbiBnZXRNaXhpbk1hcChhbGwsIHVuaXF1ZSkgewogICBjb25zdCBtYXAgPSBuZXcgTWFwKCk7
Ci0gIGNvbnN0IGluY2x1ZGVzID0gYWxsLmZpbHRlcihkZWYgPT4gZGVmLnR5cGUgPT09ICJpbmNs
dWRlcyIpOworICBjb25zdCBpbmNsdWRlcyA9IGFsbC5maWx0ZXIoKGRlZikgPT4gZGVmLnR5cGUg
PT09ICJpbmNsdWRlcyIpOwogICBmb3IgKGNvbnN0IGluY2x1ZGUgb2YgaW5jbHVkZXMpIHsKICAg
ICBjb25zdCBtaXhpbiA9IHVuaXF1ZS5nZXQoaW5jbHVkZS5pbmNsdWRlcyk7CiAgICAgaWYgKCFt
aXhpbikgewpAQCAtMzE3OCw3ICszNTk4LDcgQEAgZnVuY3Rpb24gZ3JvdXBEZWZpbml0aW9ucyhh
bGwpIHsKICAgICBtaXhpbk1hcDogZ2V0TWl4aW5NYXAoYWxsLCB1bmlxdWUpLAogICAgIGNhY2hl
OiB7CiAgICAgICB0eXBlZGVmSW5jbHVkZXNEaWN0aW9uYXJ5OiBuZXcgV2Vha01hcCgpLAotICAg
ICAgZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZDogbmV3IFdlYWtNYXAoKQorICAgICAg
ZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZDogbmV3IFdlYWtNYXAoKSwKICAgICB9LAog
ICB9OwogfQpAQCAtMzE4Niw4ICszNjA2LDEwIEBAIGZ1bmN0aW9uIGdyb3VwRGVmaW5pdGlvbnMo
YWxsKSB7CiBmdW5jdGlvbiogY2hlY2tEdXBsaWNhdGVkTmFtZXMoeyB1bmlxdWUsIGR1cGxpY2F0
ZXMgfSkgewogICBmb3IgKGNvbnN0IGR1cCBvZiBkdXBsaWNhdGVzKSB7CiAgICAgY29uc3QgeyBu
YW1lIH0gPSBkdXA7Ci0gICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgbmFtZSAiJHtuYW1lfSIgb2Yg
dHlwZSAiJHt1bmlxdWUuZ2V0KG5hbWUpLnR5cGV9IiB3YXMgYWxyZWFkeSBzZWVuYDsKLSAgICB5
aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bInZhbGlk
YXRpb25FcnJvciJdKShkdXAudG9rZW5zLm5hbWUsIGR1cCwgIm5vLWR1cGxpY2F0ZSIsIG1lc3Nh
Z2UpOworICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlIG5hbWUgIiR7bmFtZX0iIG9mIHR5cGUgIiR7
CisgICAgICB1bmlxdWUuZ2V0KG5hbWUpLnR5cGUKKyAgICB9IiB3YXMgYWxyZWFkeSBzZWVuYDsK
KyAgICB5aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy52YWxp
ZGF0aW9uRXJyb3IpKGR1cC50b2tlbnMubmFtZSwgZHVwLCAibm8tZHVwbGljYXRlIiwgbWVzc2Fn
ZSk7CiAgIH0KIH0KIApAQCAtMzIxOCw2ICszNjQwLDg1IEBAIGZ1bmN0aW9uIHZhbGlkYXRlKGFz
dCkgewogCiAKIC8qKiovIH0pCi0vKioqKioqLyBdKTsKKy8qKioqKiovIAldKTsKKy8qKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKiovCisvKioqKioqLyAJLy8gVGhlIG1vZHVsZSBjYWNoZQorLyoqKioqKi8gCXZhciBf
X3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTsKKy8qKioqKiovIAkKKy8qKioqKiovIAkvLyBU
aGUgcmVxdWlyZSBmdW5jdGlvbgorLyoqKioqKi8gCWZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJl
X18obW9kdWxlSWQpIHsKKy8qKioqKiovIAkJLy8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hl
CisvKioqKioqLyAJCXZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19b
bW9kdWxlSWRdOworLyoqKioqKi8gCQlpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHsK
Ky8qKioqKiovIAkJCXJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0czsKKy8qKioqKiovIAkJfQor
LyoqKioqKi8gCQkvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNh
Y2hlKQorLyoqKioqKi8gCQl2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21v
ZHVsZUlkXSA9IHsKKy8qKioqKiovIAkJCS8vIG5vIG1vZHVsZS5pZCBuZWVkZWQKKy8qKioqKiov
IAkJCS8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkCisvKioqKioqLyAJCQlleHBvcnRzOiB7fQor
LyoqKioqKi8gCQl9OworLyoqKioqKi8gCQorLyoqKioqKi8gCQkvLyBFeGVjdXRlIHRoZSBtb2R1
bGUgZnVuY3Rpb24KKy8qKioqKiovIAkJX193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9k
dWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7CisvKioqKioqLyAJCisv
KioqKioqLyAJCS8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlCisvKioqKioqLyAJ
CXJldHVybiBtb2R1bGUuZXhwb3J0czsKKy8qKioqKiovIAl9CisvKioqKioqLyAJCisvKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqLworLyoqKioqKi8gCS8qIHdlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkg
Z2V0dGVycyAqLworLyoqKioqKi8gCSgoKSA9PiB7CisvKioqKioqLyAJCS8vIGRlZmluZSBnZXR0
ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHMKKy8qKioqKiovIAkJX193ZWJwYWNrX3Jl
cXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHsKKy8qKioqKiovIAkJCWZvcih2
YXIga2V5IGluIGRlZmluaXRpb24pIHsKKy8qKioqKiovIAkJCQlpZihfX3dlYnBhY2tfcmVxdWly
ZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMs
IGtleSkpIHsKKy8qKioqKiovIAkJCQkJT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtl
eSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTsKKy8qKioqKiov
IAkJCQl9CisvKioqKioqLyAJCQl9CisvKioqKioqLyAJCX07CisvKioqKioqLyAJfSkoKTsKKy8q
KioqKiovIAkKKy8qKioqKiovIAkvKiB3ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hv
cnRoYW5kICovCisvKioqKioqLyAJKCgpID0+IHsKKy8qKioqKiovIAkJX193ZWJwYWNrX3JlcXVp
cmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHku
Y2FsbChvYmosIHByb3ApKQorLyoqKioqKi8gCX0pKCk7CisvKioqKioqLyAJCisvKioqKioqLyAJ
Lyogd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCAqLworLyoqKioqKi8gCSgo
KSA9PiB7CisvKioqKioqLyAJCS8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHMKKy8qKioq
KiovIAkJX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHsKKy8qKioqKiovIAkJ
CWlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykg
eworLyoqKioqKi8gCQkJCU9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9T
dHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pOworLyoqKioqKi8gCQkJfQorLyoqKioqKi8g
CQkJT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTog
dHJ1ZSB9KTsKKy8qKioqKiovIAkJfTsKKy8qKioqKiovIAl9KSgpOworLyoqKioqKi8gCQorLyoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKi8KK3ZhciBfX3dlYnBhY2tfZXhwb3J0c19fID0ge307CisvLyBUaGlzIGVu
dHJ5IG5lZWQgdG8gYmUgd3JhcHBlZCBpbiBhbiBJSUZFIGJlY2F1c2UgaXQgbmVlZCB0byBiZSBp
c29sYXRlZCBhZ2FpbnN0IG90aGVyIG1vZHVsZXMgaW4gdGhlIGNodW5rLgorKCgpID0+IHsKK19f
d2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhw
b3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBo
YXJtb255IGV4cG9ydCAqLyAgICJwYXJzZSI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9s
aWJfd2ViaWRsMl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnBhcnNlKSwKKy8qIGhh
cm1vbnkgZXhwb3J0ICovICAgIndyaXRlIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2xp
Yl93cml0ZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy53cml0ZSksCisvKiBoYXJt
b255IGV4cG9ydCAqLyAgICJ2YWxpZGF0ZSI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9s
aWJfdmFsaWRhdG9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udmFsaWRhdGUpLAor
LyogaGFybW9ueSBleHBvcnQgKi8gICAiV2ViSURMUGFyc2VFcnJvciI6ICgpID0+ICgvKiByZWV4
cG9ydCBzYWZlICovIF9saWJfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8z
X18uV2ViSURMUGFyc2VFcnJvcikKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOworLyogaGFybW9u
eSBpbXBvcnQgKi8gdmFyIF9saWJfd2ViaWRsMl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBf
bGliX3dyaXRlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3Jl
cXVpcmVfXygzMCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2xpYl92YWxpZGF0b3JfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMzEpOwor
LyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9saWJfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpOworCisKKworCisKK30pKCk7
CisKKy8qKioqKiovIAlyZXR1cm4gX193ZWJwYWNrX2V4cG9ydHNfXzsKKy8qKioqKiovIH0pKCkK
KzsKIH0pOwogLy8jIHNvdXJjZU1hcHBpbmdVUkw9d2ViaWRsMi5qcy5tYXAKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3RlZC50eHQKaW5kZXggOTkw
MGMxMDMwYzYwZTZiZTk0MTI3YWEyM2EyNjJkMjJhZmFhMTIzZC4uZGUyNTMyZGRjNTk3MjI1OWQ5
ODM1Y2E3NGRjMTljOWQ0NWI0OTNhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvaWRsaGFybmVzcy5odHRwcy5h
bnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2lkbGhhcm5lc3MuaHR0cHMuYW55LWV4cGVjdGVkLnR4
dApAQCAtMTMsOSArMTMsNiBAQCBQQVNTIFNlcnZpY2VXb3JrZXIgaW5jbHVkZXMgQWJzdHJhY3RX
b3JrZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBHbG9i
YWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5j
bHVkZXMgV2luZG93RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
V2luZG93IGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCi1QQVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vzc2lv
blN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdpbmRvdyBpbmNsdWRlcyBX
aW5kb3dMb2NhbFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlckds
b2JhbFNjb3BlIGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JJRDogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckxhbmd1
YWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQpAQCAtMjQsMTAgKzIxLDEzIEBAIFBBU1MgTmF2
aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvbnRlbnRVdGlsczogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvb2tpZXM6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JQbHVnaW5z
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdh
dG9yQ29uY3VycmVudEhhcmR3YXJlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXaW5k
b3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgV29ya2VyTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvcklEOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yTGFu
Z3VhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlck5hdmlnYXRvciBpbmNs
dWRlcyBOYXZpZ2F0b3JPbkxpbmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtl
ck5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCitQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFn
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xv
Y2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU2VydmljZVdvcmtlciBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQ
QVNTIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgU2VydmljZVdv
cmtlciBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKQEAgLTE3Miw2ICsxNzIsNCBAQCBQQVNTIENhY2hl
U3RvcmFnZSBpbnRlcmZhY2U6IGNhbGxpbmcgZGVsZXRlKERPTVN0cmluZykgb24gY2FjaGVzIHdp
dGggdG9vIGZldyBhcgogUEFTUyBDYWNoZVN0b3JhZ2UgaW50ZXJmYWNlOiBjYWNoZXMgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJrZXlzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFdpbmRv
dyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjYWNoZXMKIFBBU1MgTmF2aWdhdG9yIGludGVyZmFjZTog
YXR0cmlidXRlIHNlcnZpY2VXb3JrZXIKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAotUEFTUyBXb3Jr
ZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9pZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvaWRsaGFybmVzcy5odHRwcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dAppbmRleCBkMWE0YTg1NmYzOTk1MWJhYjI4Y2M3Y2UyY2YxNDBkMzE5MGYzODJjLi44YjI2NDUw
M2Q1NTIyODZiNzdkYTRjMjNmOTM5MzI2N2VkY2U3OGZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9pZGxoYXJu
ZXNzLmh0dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2lkbGhhcm5lc3MuaHR0
cHMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEzLDkgKzEzLDYgQEAgUEFTUyBTZXJ2aWNl
V29ya2VyIGluY2x1ZGVzIEFic3RyYWN0V29ya2VyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQog
UEFTUyBXaW5kb3cgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckds
b2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBXaW5kb3cgaW5jbHVkZXMg
QW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV2lu
ZG93IGluY2x1ZGVzIFdpbmRvd1Nlc3Npb25TdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQotUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93TG9jYWxTdG9yYWdlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtl
ckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5j
bHVkZXMgTmF2aWdhdG9ySUQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRv
ciBpbmNsdWRlcyBOYXZpZ2F0b3JMYW5ndWFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAg
LTI0LDEwICsyMSwxMyBAQCBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb250ZW50
VXRpbHM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBO
YXZpZ2F0b3JDb29raWVzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3Ig
aW5jbHVkZXMgTmF2aWdhdG9yUGx1Z2luczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
TmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvbmN1cnJlbnRIYXJkd2FyZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKK1BBU1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlk
ZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlck5hdmlnYXRvciBpbmNsdWRl
cyBOYXZpZ2F0b3JJRDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV29ya2VyTmF2aWdh
dG9yIGluY2x1ZGVzIE5hdmlnYXRvckxhbmd1YWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQog
UEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yT25MaW5lOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29u
Y3VycmVudEhhcmR3YXJlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXaW5kb3cgaW5j
bHVkZXMgV2luZG93U2Vzc2lvblN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNT
IFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dMb2NhbFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBGQUlMIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJTZXJ2aWNlV29ya2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiU2Vy
dmljZVdvcmtlciIgbWlzc2luZwogRkFJTCBTZXJ2aWNlV29ya2VyIGludGVyZmFjZSBvYmplY3Qg
bGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVy
dHkgIlNlcnZpY2VXb3JrZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJTZXJ2aWNlV29ya2VyIiBtaXNz
aW5nCiBGQUlMIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNlcnZpY2VXb3JrZXIi
IGV4cGVjdGVkIHByb3BlcnR5ICJTZXJ2aWNlV29ya2VyIiBtaXNzaW5nCkBAIC0xNTAsOCArMTUw
LDYgQEAgUEFTUyBDYWNoZVN0b3JhZ2UgaW50ZXJmYWNlOiBjYWxsaW5nIG9wZW4oRE9NU3RyaW5n
KSBvbiBjYWNoZXMgd2l0aCB0b28gZmV3IGFyZ3UKIFBBU1MgQ2FjaGVTdG9yYWdlIGludGVyZmFj
ZTogY2FjaGVzIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGVsZXRlKERPTVN0cmluZykiIHdpdGgg
dGhlIHByb3BlciB0eXBlCiBQQVNTIENhY2hlU3RvcmFnZSBpbnRlcmZhY2U6IGNhbGxpbmcgZGVs
ZXRlKERPTVN0cmluZykgb24gY2FjaGVzIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IKIFBBU1MgQ2FjaGVTdG9yYWdlIGludGVyZmFjZTogY2FjaGVzIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAia2V5cygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQotUEFTUyBXaW5kb3cg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAot
UEFTUyBOYXZpZ2F0b3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIG9iamVjdAogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBjYWNoZXMKIFBBU1MgV29ya2VyTmF2aWdhdG9yIGludGVyZmFjZTogYXR0cmlidXRlIHNlcnZp
Y2VXb3JrZXIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zdmcvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdmcvaWRsaGFybmVzcy53aW5kb3ct
ZXhwZWN0ZWQudHh0CmluZGV4IDQzZTQ0ZTJmNGM4NmZhMmIyNGNiYjM3MzcwNDlmY2MxYmI0YjU1
NDAuLmZkNzM1MWU4YjVhOGZiNzMyYzBjNTM4ZWM5NWUyNDk2ODgwYzZkN2QgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3ZnL2lkbGhhcm5l
c3Mud2luZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3N2Zy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTMs
NiArMyw4IEBAIFBBU1MgaWRsX3Rlc3Qgc2V0dXAKIFBBU1MgaWRsX3Rlc3QgdmFsaWRhdGlvbgog
UEFTUyBQYXJ0aWFsIGludGVyZmFjZSBEb2N1bWVudDogb3JpZ2luYWwgaW50ZXJmYWNlIGRlZmlu
ZWQKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCitQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFNWR0FFbGVtZW50OiBvcmlnaW5hbCBpbnRlcmZh
Y2UgZGVmaW5lZAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBTVkdBRWxlbWVudDogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnRbMl06IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50WzNdOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBEb2N1bWVudFs0
XTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAgLTEwLDcgKzEyLDYgQEAgUEFTUyBTVkdFbGVt
ZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVy
czogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHRWxlbWVudCBpbmNsdWRlcyBTVkdF
bGVtZW50SW5zdGFuY2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQg
aW5jbHVkZXMgSFRNTE9yU1ZHRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1Mg
U1ZHRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q1NTSW5saW5lU3R5bGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFNWR0dyYXBoaWNzRWxlbWVudCBpbmNsdWRlcyBTVkdUZXN0czogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHU1ZHRWxlbWVudCBpbmNsdWRlcyBTVkdGaXRU
b1ZpZXdCb3g6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR1NWR0VsZW1lbnQgaW5j
bHVkZXMgV2luZG93RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAgLTI3
LDIwICsyOCwyMCBAQCBQQVNTIFNWR1BhdHRlcm5FbGVtZW50IGluY2x1ZGVzIFNWR0ZpdFRvVmll
d0JveDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHUGF0dGVybkVsZW1lbnQgaW5j
bHVkZXMgU1ZHVVJJUmVmZXJlbmNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdT
Y3JpcHRFbGVtZW50IGluY2x1ZGVzIFNWR1VSSVJlZmVyZW5jZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgU1ZHQUVsZW1lbnQgaW5jbHVkZXMgU1ZHVVJJUmVmZXJlbmNlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQotRkFJTCBTVkdBRWxlbWVudCBpbmNsdWRlcyBIVE1MSHlwZXJsaW5r
RWxlbWVudFV0aWxzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSBhc3NlcnRfdHJ1ZTogbWVtYmVy
IGhyZWYgaXMgdW5pcXVlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQQVNTIFNWR1ZpZXdFbGVt
ZW50IGluY2x1ZGVzIFNWR0ZpdFRvVmlld0JveDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BB
U1MgU1ZHRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q1NTSW5saW5lU3R5bGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgQW5pbWF0YWJsZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNo
aWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBD
aGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEVsZW1lbnQgaW5jbHVkZXMg
U2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRl
cyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1
bWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9k
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50
Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBh
dGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudEZy
YWdtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBEb2N1bWVudEZyYWdtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBOb25Eb2N1bWVudFR5
cGVDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVk
ZXMgQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1
ZGVzIFNsb3R0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5j
bHVkZXMgWFBhdGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBT
VkdFbGVtZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBvYmplY3QKIFBBU1MgU1ZHRWxlbWVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBT
VkdFbGVtZW50IGludGVyZmFjZSBvYmplY3QgbmFtZQpAQCAtMTYyMCw2ICsxNjIxLDE2IEBAIEZB
SUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaHJlZmxhbmcgYXNzZXJ0X3RydWU6
IFRoZSBwcm90b3R5cGUgb2JqZWN0CiBGQUlMIFNWR0FFbGVtZW50IGludGVyZmFjZTogYXR0cmli
dXRlIHR5cGUgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHBy
b3BlcnR5ICJ0eXBlIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBTVkdBRWxlbWVudCBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSB0ZXh0IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVj
dCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAidGV4dCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZB
SUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVmZXJyZXJQb2xpY3kgYXNzZXJ0
X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJyZWZlcnJl
clBvbGljeSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgU1ZHQUVsZW1lbnQgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgb3JpZ2luIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBt
dXN0IGhhdmUgYSBwcm9wZXJ0eSAib3JpZ2luIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJ
TCBTVkdBRWxlbWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBwcm90b2NvbCBhc3NlcnRfdHJ1ZTog
VGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgInByb3RvY29sIiBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBTVkdBRWxlbWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSB1c2VybmFtZSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEg
cHJvcGVydHkgInVzZXJuYW1lIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBTVkdBRWxl
bWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBwYXNzd29yZCBhc3NlcnRfdHJ1ZTogVGhlIHByb3Rv
dHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgInBhc3N3b3JkIiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQorRkFJTCBTVkdBRWxlbWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBob3N0IGFz
c2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiaG9z
dCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgaG9zdG5hbWUgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3Qg
aGF2ZSBhIHByb3BlcnR5ICJob3N0bmFtZSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwg
U1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcG9ydCBhc3NlcnRfdHJ1ZTogVGhlIHBy
b3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgInBvcnQiIGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCitGQUlMIFNWR0FFbGVtZW50IGludGVyZmFjZTogYXR0cmlidXRlIHBhdGhuYW1l
IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAi
cGF0aG5hbWUiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFNWR0FFbGVtZW50IGludGVy
ZmFjZTogYXR0cmlidXRlIHNlYXJjaCBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3Qg
bXVzdCBoYXZlIGEgcHJvcGVydHkgInNlYXJjaCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZB
SUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaGFzaCBhc3NlcnRfdHJ1ZTogVGhl
IHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgImhhc2giIGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCiBQQVNTIFNWR0FFbGVtZW50IGludGVyZmFjZTogYXR0cmlidXRlIGhyZWYK
IFBBU1MgU1ZHQUVsZW1lbnQgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBvYmplY3RzLmEK
IFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG9iamVjdHMuYQpAQCAtMTYzMiw2ICsxNjQzLDE2IEBA
IEZBSUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBvYmplY3RzLmEgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJocmVmbGFuZyIgd2l0aCB0aGUKIEZBSUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBvYmpl
Y3RzLmEgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0eXBlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBh
c3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJ0eXBlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNo
YWluCiBGQUlMIFNWR0FFbGVtZW50IGludGVyZmFjZTogb2JqZWN0cy5hIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAidGV4dCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9w
ZXJ0eSAidGV4dCIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgogRkFJTCBTVkdBRWxlbWVu
dCBpbnRlcmZhY2U6IG9iamVjdHMuYSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlZmVycmVyUG9s
aWN5IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJyZWZl
cnJlclBvbGljeSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBTVkdBRWxlbWVu
dCBpbnRlcmZhY2U6IG9iamVjdHMuYSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9yaWdpbiIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAib3JpZ2luIiBub3Qg
Zm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFNWR0FFbGVtZW50IGludGVyZmFjZTogb2Jq
ZWN0cy5hIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicHJvdG9jb2wiIHdpdGggdGhlIHByb3BlciB0
eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgInByb3RvY29sIiBub3QgZm91bmQgaW4gcHJv
dG90eXBlIGNoYWluCitGQUlMIFNWR0FFbGVtZW50IGludGVyZmFjZTogb2JqZWN0cy5hIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAidXNlcm5hbWUiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9p
bmhlcml0czogcHJvcGVydHkgInVzZXJuYW1lIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWlu
CitGQUlMIFNWR0FFbGVtZW50IGludGVyZmFjZTogb2JqZWN0cy5hIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAicGFzc3dvcmQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJv
cGVydHkgInBhc3N3b3JkIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFNWR0FF
bGVtZW50IGludGVyZmFjZTogb2JqZWN0cy5hIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaG9zdCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiaG9zdCIgbm90
IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBTVkdBRWxlbWVudCBpbnRlcmZhY2U6IG9i
amVjdHMuYSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImhvc3RuYW1lIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJob3N0bmFtZSIgbm90IGZvdW5kIGluIHBy
b3RvdHlwZSBjaGFpbgorRkFJTCBTVkdBRWxlbWVudCBpbnRlcmZhY2U6IG9iamVjdHMuYSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInBvcnQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhl
cml0czogcHJvcGVydHkgInBvcnQiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwg
U1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBvYmplY3RzLmEgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJw
YXRobmFtZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAi
cGF0aG5hbWUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgU1ZHQUVsZW1lbnQg
aW50ZXJmYWNlOiBvYmplY3RzLmEgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZWFyY2giIHdpdGgg
dGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgInNlYXJjaCIgbm90IGZv
dW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBTVkdBRWxlbWVudCBpbnRlcmZhY2U6IG9iamVj
dHMuYSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImhhc2giIHdpdGggdGhlIHByb3BlciB0eXBlIGFz
c2VydF9pbmhlcml0czogcHJvcGVydHkgImhhc2giIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hh
aW4KIFBBU1MgU1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBvYmplY3RzLmEgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJocmVmIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBTVkdHcmFwaGljc0VsZW1l
bnQgaW50ZXJmYWNlOiBvYmplY3RzLmEgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0cmFuc2Zvcm0i
IHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFNWR0dyYXBoaWNzRWxlbWVudCBpbnRlcmZhY2U6
IG9iamVjdHMuYSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldEJCb3gob3B0aW9uYWwgU1ZHQm91
bmRpbmdCb3hPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL2EtZWxlbWVudC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Vy
bC9hLWVsZW1lbnQtZXhwZWN0ZWQudHh0CmluZGV4IGU0YmE1NjI2OWFhMjMyYzk3ZDgyZWU5N2Nm
Y2FjNDc3ZThmMmM1YmUuLjhkMjNmOTAxOWRmNTEzZTdkZGM5YjFiNTAxYjY4NjNjM2RjMTA4OTEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dXJsL2EtZWxlbWVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvYS1lbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMzY2LDcg
KzM2Niw3IEBAIFBBU1MgUGFyc2luZzogPHNjOjphQGV4YW1wbGUubmV0PiBhZ2FpbnN0IDxhYm91
dDpibGFuaz4KIFBBU1MgUGFyc2luZzogPHdvdzolTkJEPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4K
IFBBU1MgUGFyc2luZzogPHdvdzolMUc+IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQYXJz
aW5nOiA8d293Ou+/vz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+Ci1QQVNTIFBhcnNpbmc6IDxodHRw
Oi8vZXhhbXBsZS5jb20vVStkODAw77+9VStkZmZlVStkZmZm77eQ77eP77ev77ew77++77+/P1Ur
ZDgwMO+/vVUrZGZmZVUrZGZmZu+3kO+3j++3r++3sO+/vu+/vz4gYWdhaW5zdCA8YWJvdXQ6Ymxh
bms+CitQQVNTIFBhcnNpbmc6IDxodHRwOi8vZXhhbXBsZS5jb20vVStkODAw8JCfvlUrZGZmZu+3
kO+3j++3r++3sO+/vu+/vz9VK2Q4MDDwkJ++VStkZmZm77eQ77eP77ev77ew77++77+/PiBhZ2Fp
bnN0IDxhYm91dDpibGFuaz4KIFBBU1MgUGFyc2luZzogPGh0dHA6Ly9hPGI+IGFnYWluc3QgPGFi
b3V0OmJsYW5rPgogUEFTUyBQYXJzaW5nOiA8aHR0cDovL2E+Yj4gYWdhaW5zdCA8YWJvdXQ6Ymxh
bms+CiBQQVNTIFBhcnNpbmc6IDxodHRwOi8vYV5iPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJs
L2EtZWxlbWVudC1vcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvYS1lbGVtZW50LW9yaWdpbi1leHBlY3RlZC50eHQKaW5k
ZXggODg3NmZhNThmMDU4YWVjNWNkYTM4OTE5ZDQ5NjcxYWYyOWZjODJlYy4uNzEwZjZkZWUyNDhj
MjVlMTgyMjQwOTNhNzYzNDhmMjQyOTQ1ODJiNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvYS1lbGVtZW50LW9yaWdpbi1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91
cmwvYS1lbGVtZW50LW9yaWdpbi1leHBlY3RlZC50eHQKQEAgLTI2Miw3ICsyNjIsNyBAQCBQQVNT
IFBhcnNpbmcgb3JpZ2luOiA8c2M6OmFAZXhhbXBsZS5uZXQ+IGFnYWluc3QgPGFib3V0OmJsYW5r
PgogUEFTUyBQYXJzaW5nIG9yaWdpbjogPHdvdzolTkJEPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4K
IFBBU1MgUGFyc2luZyBvcmlnaW46IDx3b3c6JTFHPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KIFBB
U1MgUGFyc2luZyBvcmlnaW46IDx3b3c677+/PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KLVBBU1Mg
UGFyc2luZyBvcmlnaW46IDxodHRwOi8vZXhhbXBsZS5jb20vVStkODAw77+9VStkZmZlVStkZmZm
77eQ77eP77ev77ew77++77+/P1UrZDgwMO+/vVUrZGZmZVUrZGZmZu+3kO+3j++3r++3sO+/vu+/
vz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CitQQVNTIFBhcnNpbmcgb3JpZ2luOiA8aHR0cDovL2V4
YW1wbGUuY29tL1UrZDgwMPCQn75VK2RmZmbvt5Dvt4/vt6/vt7Dvv77vv78/VStkODAw8JCfvlUr
ZGZmZu+3kO+3j++3r++3sO+/vu+/vz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQQVNTIFBhcnNp
bmcgb3JpZ2luOiA8aHR0cDovLx8hIiQmJygpKissLS47PV9ge31+Lz4gYWdhaW5zdCA8YWJvdXQ6
Ymxhbms+CiBQQVNTIFBhcnNpbmcgb3JpZ2luOiA8c2M6Ly8fISIkJicoKSorLC0uOz1fYHt9fi8+
IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQYXJzaW5nIG9yaWdpbjogPGZ0cDovLyVlMiU5
OCU4Mz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VybC9hLWVsZW1lbnQtb3JpZ2luLXhodG1sLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dXJsL2EtZWxlbWVudC1vcmlnaW4teGh0bWwtZXhwZWN0ZWQudHh0CmluZGV4IDg4NzZmYTU4ZjA1
OGFlYzVjZGEzODkxOWQ0OTY3MWFmMjlmYzgyZWMuLjcxMGY2ZGVlMjQ4YzI1ZTE4MjI0MDkzYTc2
MzQ4ZjI0Mjk0NTgyYjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdXJsL2EtZWxlbWVudC1vcmlnaW4teGh0bWwtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL2EtZWxl
bWVudC1vcmlnaW4teGh0bWwtZXhwZWN0ZWQudHh0CkBAIC0yNjIsNyArMjYyLDcgQEAgUEFTUyBQ
YXJzaW5nIG9yaWdpbjogPHNjOjphQGV4YW1wbGUubmV0PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4K
IFBBU1MgUGFyc2luZyBvcmlnaW46IDx3b3c6JU5CRD4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQ
QVNTIFBhcnNpbmcgb3JpZ2luOiA8d293OiUxRz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQQVNT
IFBhcnNpbmcgb3JpZ2luOiA8d293Ou+/vz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+Ci1QQVNTIFBh
cnNpbmcgb3JpZ2luOiA8aHR0cDovL2V4YW1wbGUuY29tL1UrZDgwMO+/vVUrZGZmZVUrZGZmZu+3
kO+3j++3r++3sO+/vu+/vz9VK2Q4MDDvv71VK2RmZmVVK2RmZmbvt5Dvt4/vt6/vt7Dvv77vv78+
IGFnYWluc3QgPGFib3V0OmJsYW5rPgorUEFTUyBQYXJzaW5nIG9yaWdpbjogPGh0dHA6Ly9leGFt
cGxlLmNvbS9VK2Q4MDDwkJ++VStkZmZm77eQ77eP77ev77ew77++77+/P1UrZDgwMPCQn75VK2Rm
Zmbvt5Dvt4/vt6/vt7Dvv77vv78+IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQYXJzaW5n
IG9yaWdpbjogPGh0dHA6Ly8fISIkJicoKSorLC0uOz1fYHt9fi8+IGFnYWluc3QgPGFib3V0OmJs
YW5rPgogUEFTUyBQYXJzaW5nIG9yaWdpbjogPHNjOi8vHyEiJCYnKCkqKywtLjs9X2B7fX4vPiBh
Z2FpbnN0IDxhYm91dDpibGFuaz4KIFBBU1MgUGFyc2luZyBvcmlnaW46IDxmdHA6Ly8lZTIlOTgl
ODM+IGFnYWluc3QgPGFib3V0OmJsYW5rPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvYS1lbGVtZW50LXhodG1sLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL2EtZWxl
bWVudC14aHRtbC1leHBlY3RlZC50eHQKaW5kZXggZTRiYTU2MjY5YWEyMzJjOTdkODJlZTk3Y2Zj
YWM0NzdlOGYyYzViZS4uOGQyM2Y5MDE5ZGY1MTNlN2RkYzliMWI1MDFiNjg2M2MzZGMxMDg5MSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91
cmwvYS1lbGVtZW50LXhodG1sLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VybC9hLWVsZW1lbnQteGh0bWwtZXhwZWN0ZWQudHh0
CkBAIC0zNjYsNyArMzY2LDcgQEAgUEFTUyBQYXJzaW5nOiA8c2M6OmFAZXhhbXBsZS5uZXQ+IGFn
YWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQYXJzaW5nOiA8d293OiVOQkQ+IGFnYWluc3QgPGFi
b3V0OmJsYW5rPgogUEFTUyBQYXJzaW5nOiA8d293OiUxRz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+
CiBQQVNTIFBhcnNpbmc6IDx3b3c677+/PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KLVBBU1MgUGFy
c2luZzogPGh0dHA6Ly9leGFtcGxlLmNvbS9VK2Q4MDDvv71VK2RmZmVVK2RmZmbvt5Dvt4/vt6/v
t7Dvv77vv78/VStkODAw77+9VStkZmZlVStkZmZm77eQ77eP77ev77ew77++77+/PiBhZ2FpbnN0
IDxhYm91dDpibGFuaz4KK1BBU1MgUGFyc2luZzogPGh0dHA6Ly9leGFtcGxlLmNvbS9VK2Q4MDDw
kJ++VStkZmZm77eQ77eP77ev77ew77++77+/P1UrZDgwMPCQn75VK2RmZmbvt5Dvt4/vt6/vt7Dv
v77vv78+IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQYXJzaW5nOiA8aHR0cDovL2E8Yj4g
YWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQQVNTIFBhcnNpbmc6IDxodHRwOi8vYT5iPiBhZ2FpbnN0
IDxhYm91dDpibGFuaz4KIFBBU1MgUGFyc2luZzogPGh0dHA6Ly9hXmI+IGFnYWluc3QgPGFib3V0
OmJsYW5rPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy91cmwvdXJsLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL3VybC1jb25zdHJ1Y3Rvci1leHBlY3Rl
ZC50eHQKaW5kZXggMGMyMTIzYjMyNjQ2Y2UxMDY3MzYwYWYxMzM0NjE2ZmI4YTU1NDRlNS4uMGZj
NTNlOTBhMzkyMmM5MDZjMGY3ZjgxOTQ0YTQwNjg2MGU3NmQ3OSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvdXJsLWNvbnN0cnVjdG9y
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3VybC91cmwtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CkBAIC0zNjUsNyArMzY1LDcg
QEAgUEFTUyBQYXJzaW5nOiA8c2M6OmFAZXhhbXBsZS5uZXQ+IGFnYWluc3QgPGFib3V0OmJsYW5r
PgogUEFTUyBQYXJzaW5nOiA8d293OiVOQkQ+IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQ
YXJzaW5nOiA8d293OiUxRz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQQVNTIFBhcnNpbmc6IDx3
b3c677+/PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KLVBBU1MgUGFyc2luZzogPGh0dHA6Ly9leGFt
cGxlLmNvbS9VK2Q4MDDvv71VK2RmZmVVK2RmZmbvt5Dvt4/vt6/vt7Dvv77vv78/VStkODAw77+9
VStkZmZlVStkZmZm77eQ77eP77ev77ew77++77+/PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KK1BB
U1MgUGFyc2luZzogPGh0dHA6Ly9leGFtcGxlLmNvbS9VK2Q4MDDwkJ++VStkZmZm77eQ77eP77ev
77ew77++77+/P1UrZDgwMPCQn75VK2RmZmbvt5Dvt4/vt6/vt7Dvv77vv78+IGFnYWluc3QgPGFi
b3V0OmJsYW5rPgogUEFTUyBQYXJzaW5nOiA8aHR0cDovL2E8Yj4gYWdhaW5zdCA8YWJvdXQ6Ymxh
bms+CiBQQVNTIFBhcnNpbmc6IDxodHRwOi8vYT5iPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KIFBB
U1MgUGFyc2luZzogPGh0dHA6Ly9hXmI+IGFnYWluc3QgPGFib3V0OmJsYW5rPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvdXJsLW9y
aWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3VybC91cmwtb3JpZ2luLWV4cGVjdGVkLnR4dAppbmRleCAwOGEzMzQ4MTJkZmRhYjE2
MGU0ZDc5ODNhMTFkZTM3Zjg5MjIzYjM1Li5jYjliY2VlMTVhZjQ2ZTBlNzQ2Yzc4YmU2YTQyNWJm
OWQ1OGMzNWFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3VybC91cmwtb3JpZ2luLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VybC91cmwtb3JpZ2luLWV4cGVjdGVkLnR4
dApAQCAtMjYxLDcgKzI2MSw3IEBAIFBBU1MgT3JpZ2luIHBhcnNpbmc6IDxzYzo6YUBleGFtcGxl
Lm5ldD4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQQVNTIE9yaWdpbiBwYXJzaW5nOiA8d293OiVO
QkQ+IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBPcmlnaW4gcGFyc2luZzogPHdvdzolMUc+
IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBPcmlnaW4gcGFyc2luZzogPHdvdzrvv78+IGFn
YWluc3QgPGFib3V0OmJsYW5rPgotUEFTUyBPcmlnaW4gcGFyc2luZzogPGh0dHA6Ly9leGFtcGxl
LmNvbS9VK2Q4MDDvv71VK2RmZmVVK2RmZmbvt5Dvt4/vt6/vt7Dvv77vv78/VStkODAw77+9VStk
ZmZlVStkZmZm77eQ77eP77ev77ew77++77+/PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KK1BBU1Mg
T3JpZ2luIHBhcnNpbmc6IDxodHRwOi8vZXhhbXBsZS5jb20vVStkODAw8JCfvlUrZGZmZu+3kO+3
j++3r++3sO+/vu+/vz9VK2Q4MDDwkJ++VStkZmZm77eQ77eP77ev77ew77++77+/PiBhZ2FpbnN0
IDxhYm91dDpibGFuaz4KIFBBU1MgT3JpZ2luIHBhcnNpbmc6IDxodHRwOi8vHyEiJCYnKCkqKywt
Ljs9X2B7fX4vPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KIFBBU1MgT3JpZ2luIHBhcnNpbmc6IDxz
YzovLx8hIiQmJygpKissLS47PV9ge31+Lz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQQVNTIE9y
aWdpbiBwYXJzaW5nOiA8ZnRwOi8vJWUyJTk4JTgzPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
LWFuaW1hdGlvbnMvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9pZGxoYXJuZXNz
LndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggMDliYzFiZThkZWUyNjZhNTQzOWQwODk2Nzc0N2Rj
MzkwOWQzMDJhNS4uMDlhYWQzZTg4NzU2ZWY5ZTI5MmE2Y2RjMzFkMWEwYmMwZjNlOGQ1NiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWIt
YW5pbWF0aW9ucy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9pZGxoYXJu
ZXNzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTgsMTkgKzgsMTkgQEAgUEFTUyBQYXJ0aWFsIGlu
dGVyZmFjZSBtaXhpbiBEb2N1bWVudE9yU2hhZG93Um9vdDogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnRbMl06IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50WzNdOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIEFuaW1hdGFibGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2Rl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudEZyYWdtZW50IGluY2x1ZGVz
IE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1
bWVudCBpbmNsdWRlcyBEb2N1bWVudE9yU2hhZG93Um9vdDogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKK1BBU1MgU2hhZG93Um9vdCBpbmNsdWRlcyBEb2N1bWVudE9yU2hhZG93Um9vdDogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBQYXJl
bnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIFBh
cmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMg
Tm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBF
bGVtZW50IGluY2x1ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
RWxlbWVudCBpbmNsdWRlcyBTbG90dGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNT
IERvY3VtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1bWVudE9yU2hhZG93Um9vdDogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhFdmFs
dWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRl
cyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1
bWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudEZyYWdtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQ
YXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudEZyYWdtZW50
IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFNoYWRv
d1Jvb3QgaW5jbHVkZXMgRG9jdW1lbnRPclNoYWRvd1Jvb3Q6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIEFuaW1hdGlvblRpbWVsaW5lIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgQW5pbWF0aW9uVGltZWxpbmUgaW50ZXJm
YWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgQW5pbWF0aW9uVGltZWxpbmUgaW50ZXJmYWNlIG9iamVj
dCBuYW1lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFy
bmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IDg3ZDI5OGZjMWJmODkwYzJlYTJm
OTc1YzMwNTIwOWY4MjZjYzUxNjIuLjI5NjFjMjY1NjgyYTcxNWViODM1MDViMTFhNGQ2OTM3ZThl
NTFjZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRs
aGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0xMTMzLDUgKzExMzMsNCBAQCBQ
QVNTIEF1ZGlvTm9kZSBpbnRlcmZhY2U6IHdvcmtsZXRfbm9kZSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImNoYW5uZWxDb3VudCIgd2l0aAogUEFTUyBBdWRpb05vZGUgaW50ZXJmYWNlOiB3b3JrbGV0
X25vZGUgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjaGFubmVsQ291bnRNb2RlIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZQogUEFTUyBBdWRpb05vZGUgaW50ZXJmYWNlOiB3b3JrbGV0X25vZGUgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJjaGFubmVsSW50ZXJwcmV0YXRpb24iIHdpdGggdGhlIHByb3BlciB0
eXBlCiBQQVNTIEF1ZGlvV29ya2xldFByb2Nlc3NvciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIFdvcmtsZXRHbG9iYWxTY29wZSBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VieHIvaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci9pZGxoYXJuZXNzLmh0dHBzLndp
bmRvdy1leHBlY3RlZC50eHQKaW5kZXggMDcxNTE5MDVmMTEzNzFlZTgyYzcwZDFjOGQ5OTYwYjY3
OTgwNmUwNi4uYTIyMzc0YjhjYWQ1ZTJmOTNlOWFlODBhNjA2OTM5MmU2ZjNjYzI2ZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci9p
ZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci9pZGxoYXJuZXNzLmh0dHBzLndpbmRv
dy1leHBlY3RlZC50eHQKQEAgLTE2OCw2ICsxNjgsOCBAQCBQQVNTIFhSUG9zZSBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAog
UEFTUyBYUlBvc2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5CiBQQVNTIFhSUG9z
ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkKIFBBU1MgWFJQb3NlIGludGVyZmFj
ZTogYXR0cmlidXRlIHRyYW5zZm9ybQorRkFJTCBYUlBvc2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
bGluZWFyVmVsb2NpdHkgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2
ZSBhIHByb3BlcnR5ICJsaW5lYXJWZWxvY2l0eSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZB
SUwgWFJQb3NlIGludGVyZmFjZTogYXR0cmlidXRlIGFuZ3VsYXJWZWxvY2l0eSBhc3NlcnRfdHJ1
ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgImFuZ3VsYXJWZWxv
Y2l0eSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIFBBU1MgWFJQb3NlIGludGVyZmFjZTogYXR0
cmlidXRlIGVtdWxhdGVkUG9zaXRpb24KIFBBU1MgWFJWaWV3ZXJQb3NlIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgWFJWaWV3ZXJQ
b3NlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCkBAIC0yMTIsNiArMjE0LDcgQEAgUEFTUyBYUldl
YkdMTGF5ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmoKIFBBU1MgWFJXZWJHTExheWVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxl
cyBwcm9wZXJ0eQogUEFTUyBYUldlYkdMTGF5ZXIgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgYW50aWFs
aWFzCiBQQVNTIFhSV2ViR0xMYXllciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpZ25vcmVEZXB0aFZh
bHVlcworRkFJTCBYUldlYkdMTGF5ZXIgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZml4ZWRGb3ZlYXRp
b24gYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5
ICJmaXhlZEZvdmVhdGlvbiIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIFBBU1MgWFJXZWJHTExh
eWVyIGludGVyZmFjZTogYXR0cmlidXRlIGZyYW1lYnVmZmVyCiBQQVNTIFhSV2ViR0xMYXllciBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBmcmFtZWJ1ZmZlcldpZHRoCiBQQVNTIFhSV2ViR0xMYXllciBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBmcmFtZWJ1ZmZlckhlaWdodApAQCAtMjIxLDYgKzIyNCw3IEBA
IFBBU1MgWFJXZWJHTExheWVyIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgeHJXZWJHTExh
eWVyCiBQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiB4cldlYkdMTGF5ZXIKIFBBU1MgWFJXZWJHTExh
eWVyIGludGVyZmFjZTogeHJXZWJHTExheWVyIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYW50aWFs
aWFzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBYUldlYkdMTGF5ZXIgaW50ZXJmYWNlOiB4
cldlYkdMTGF5ZXIgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpZ25vcmVEZXB0aFZhbHVlcyIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUKK0ZBSUwgWFJXZWJHTExheWVyIGludGVyZmFjZTogeHJXZWJHTExh
eWVyIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZml4ZWRGb3ZlYXRpb24iIHdpdGggdGhlIHByb3Bl
ciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImZpeGVkRm92ZWF0aW9uIiBub3QgZm91
bmQgaW4gcHJvdG90eXBlIGNoYWluCiBQQVNTIFhSV2ViR0xMYXllciBpbnRlcmZhY2U6IHhyV2Vi
R0xMYXllciBtdXN0IGluaGVyaXQgcHJvcGVydHkgImZyYW1lYnVmZmVyIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZQogUEFTUyBYUldlYkdMTGF5ZXIgaW50ZXJmYWNlOiB4cldlYkdMTGF5ZXIgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJmcmFtZWJ1ZmZlcldpZHRoIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQog
UEFTUyBYUldlYkdMTGF5ZXIgaW50ZXJmYWNlOiB4cldlYkdMTGF5ZXIgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJmcmFtZWJ1ZmZlckhlaWdodCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL2lkbGhh
cm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3hoci9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0
CmluZGV4IDQ4OWNmZjM1MWNmOWQ5ZGI5NDE4OGU5MjMyZTQzMDQ0ZjBiMmZhYjAuLmJjM2Y1NDY2
MTRiNGRlZTAwYzUzMzRmYThlZWM2NTNkMmNiMjJlZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL2lkbGhhcm5lc3MuYW55Lndvcmtl
ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy94aHIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMTU5LDYg
KzE1OSw0IEBAIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBQcm9ncmVzc0V2ZW50KCJ0eXBl
IikKIFBBU1MgUHJvZ3Jlc3NFdmVudCBpbnRlcmZhY2U6IG5ldyBQcm9ncmVzc0V2ZW50KCJ0eXBl
IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJsZW5ndGhDb21wdXRhYmxlIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZQogUEFTUyBQcm9ncmVzc0V2ZW50IGludGVyZmFjZTogbmV3IFByb2dyZXNzRXZlbnQo
InR5cGUiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImxvYWRlZCIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUKIFBBU1MgUHJvZ3Jlc3NFdmVudCBpbnRlcmZhY2U6IG5ldyBQcm9ncmVzc0V2ZW50KCJ0eXBl
IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0b3RhbCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKLVBB
U1MgTm9kZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
b2JqZWN0Ci1QQVNTIERvY3VtZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5l
c3MuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhw
ZWN0ZWQudHh0CmluZGV4IDNkN2M4MDNjY2MzNjhiMjNmM2IxMGQzNjViZWQ4ZTkyMDRhNzY2ODQu
LmQxZDEzNTI1MGNiZTZjNjQ1OGM1NjE3YTVlMTU5OTJhOTVkN2Y2NjcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2sxL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9k
b20vaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTgyLDE1ICs4MiwxMCBAQCBQQVNT
IFBhcnRpYWwgaW50ZXJmYWNlIG1peGluIERvY3VtZW50T3JTaGFkb3dSb290WzJdOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBVSUV2ZW50OiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRs
ZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1
bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFT
UyBEb2N1bWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRPclNoYWRvd1Jvb3Q6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZh
bHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5j
bHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
SFRNTEVsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENv
bnRlbnRFZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQg
aW5jbHVkZXMgSFRNTE9yU1ZHRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1Mg
SFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0eWxlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBIVE1MTGlua0VsZW1lbnQgaW5jbHVkZXMgTGlua1N0eWxlOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MU3R5bGVFbGVtZW50IGluY2x1ZGVzIExpbmtT
dHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEJvZHlFbGVtZW50IGluY2x1
ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCkBAIC0xMzIs
OSArMTI3LDYgQEAgUEFTUyBFbGVtZW50SW50ZXJuYWxzIGluY2x1ZGVzIEFSSUFNaXhpbjogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFu
ZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5k
b3dFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5j
bHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
LVBBU1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCi1QQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2Fs
U3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV29ya2VyR2xvYmFsU2NvcGUg
aW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvcklEOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yTGFuZ3VhZ2U6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCkBAIC0xNDMsNiArMTM1LDcgQEAgUEFTUyBOYXZpZ2F0b3IgaW5j
bHVkZXMgTmF2aWdhdG9yQ29udGVudFV0aWxzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29va2llczogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvclBsdWdpbnM6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb25jdXJy
ZW50SGFyZHdhcmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdpbmRvdyBpbmNsdWRl
cyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBE
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVy
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3JrZXIgaW5jbHVkZXMgQWJzdHJhY3RX
b3JrZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNoYXJlZFdvcmtlciBpbmNsdWRl
cyBBYnN0cmFjdFdvcmtlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAgLTE1MCwyNyArMTQz
LDMyIEBAIFBBU1MgV29ya2VyTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvcklEOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9y
TGFuZ3VhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlck5hdmlnYXRvciBp
bmNsdWRlcyBOYXZpZ2F0b3JPbkxpbmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdv
cmtlck5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3Rv
cmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRv
d0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEZyYW1lU2V0
RWxlbWVudCBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIEFSSUFNaXhpbjogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQotUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdFbGVtZW50IGluY2x1ZGVzIEdsb2Jh
bEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQg
aW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgU1ZHRWxlbWVudCBpbmNsdWRlcyBTVkdFbGVtZW50SW5zdGFuY2U6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZH
RWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgU1ZHRWxlbWVudCBpbmNsdWRl
cyBFbGVtZW50Q1NTSW5saW5lU3R5bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNW
R0dyYXBoaWNzRWxlbWVudCBpbmNsdWRlcyBTVkdUZXN0czogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgU1ZHU1ZHRWxlbWVudCBpbmNsdWRlcyBTVkdGaXRUb1ZpZXdCb3g6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR1NWR0VsZW1lbnQgaW5jbHVkZXMgV2luZG93RXZlbnRI
YW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHSW1hZ2VFbGVtZW50IGlu
Y2x1ZGVzIFNWR1VSSVJlZmVyZW5jZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZH
U2NyaXB0RWxlbWVudCBpbmNsdWRlcyBTVkdVUklSZWZlcmVuY2U6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCi1QQVNTIFNWR0FFbGVtZW50IGluY2x1ZGVzIFNWR1VSSVJlZmVyZW5jZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKLUZBSUwgU1ZHQUVsZW1lbnQgaW5jbHVkZXMgSFRNTEh5cGVybGlu
a0VsZW1lbnRVdGlsczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgYXNzZXJ0X3RydWU6IG1lbWJl
ciBocmVmIGlzIHVuaXF1ZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBIVE1MRWxlbWVu
dCBpbmNsdWRlcyBFbGVtZW50Q1NTSW5saW5lU3R5bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CitQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0eWxlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50
Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNs
dWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1Mg
RG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1bWVudE9yU2hhZG93Um9vdDogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU2hhZG93Um9vdCBpbmNsdWRlcyBEb2N1bWVudE9yU2hh
ZG93Um9vdDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMg
UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnRGcmFnbWVu
dCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVt
ZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVs
ZW1lbnQgaW5jbHVkZXMgTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBTbG90dGFibGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEFsbENvbGxlY3Rpb24gaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBIVE1MQWxs
Q29sbGVjdGlvbiBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBIVE1MQWxsQ29sbGVjdGlv
biBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJu
ZXNzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4
cGVjdGVkLnR4dAppbmRleCA5MmY0ZDg0OTA5NDYwNDk5NTE4ZGYzYzFiZGU5OGEwNmFjOWZlZjY3
Li5mOTJiOWY0YzAxYjI4MTJmNmI2NmIwM2VkZjRjOWMzZDZjYmU2NTQxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9kb20vaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
ZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC04MiwxNSArODIsMTAgQEAgUEFT
UyBQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBEb2N1bWVudE9yU2hhZG93Um9vdFsyXTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgVUlFdmVudDogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5k
bGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9j
dW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBB
U1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50T3JTaGFkb3dSb290OiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2Rl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2
YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50IGlu
Y2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNT
IEhUTUxFbGVtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnM6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEVsZW1lbnRD
b250ZW50RWRpdGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50
IGluY2x1ZGVzIEhUTUxPclNWR0VsZW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNT
IEhUTUxFbGVtZW50IGluY2x1ZGVzIEVsZW1lbnRDU1NJbmxpbmVTdHlsZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgSFRNTExpbmtFbGVtZW50IGluY2x1ZGVzIExpbmtTdHlsZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTFN0eWxlRWxlbWVudCBpbmNsdWRlcyBMaW5r
U3R5bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxCb2R5RWxlbWVudCBpbmNs
dWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQpAQCAtMTMy
LDkgKzEyNyw2IEBAIFBBU1MgRWxlbWVudEludGVybmFscyBpbmNsdWRlcyBBUklBTWl4aW46IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBHbG9iYWxFdmVudEhh
bmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2lu
ZG93RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGlu
Y2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
Ci1QQVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQotUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vzc2lvblN0b3JhZ2U6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dMb2Nh
bFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlckdsb2JhbFNjb3Bl
IGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JJRDogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckxhbmd1YWdlOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQpAQCAtMTQzLDYgKzEzNSw3IEBAIFBBU1MgTmF2aWdhdG9yIGlu
Y2x1ZGVzIE5hdmlnYXRvckNvbnRlbnRVdGlsczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvb2tpZXM6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JQbHVnaW5zOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29uY3Vy
cmVudEhhcmR3YXJlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXaW5kb3cgaW5jbHVk
ZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRl
cjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV29ya2VyIGluY2x1ZGVzIEFic3RyYWN0
V29ya2VyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTaGFyZWRXb3JrZXIgaW5jbHVk
ZXMgQWJzdHJhY3RXb3JrZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCkBAIC0xNTAsMjcgKzE0
MywzMiBAQCBQQVNTIFdvcmtlck5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JJRDogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV29ya2VyTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRv
ckxhbmd1YWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3JrZXJOYXZpZ2F0b3Ig
aW5jbHVkZXMgTmF2aWdhdG9yT25MaW5lOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBX
b3JrZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vzc2lvblN0
b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5k
b3dMb2NhbFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxGcmFtZVNl
dEVsZW1lbnQgaW5jbHVkZXMgV2luZG93RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBBUklBTWl4aW46IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCi1QQVNTIEVsZW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGROb2Rl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0YWJs
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHRWxlbWVudCBpbmNsdWRlcyBHbG9i
YWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdFbGVtZW50
IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgU1ZHRWxlbWVudEluc3RhbmNlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdFbGVtZW50IGluY2x1ZGVzIEhUTUxPclNW
R0VsZW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFNWR0VsZW1lbnQgaW5jbHVk
ZXMgRWxlbWVudENTU0lubGluZVN0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBT
VkdHcmFwaGljc0VsZW1lbnQgaW5jbHVkZXMgU1ZHVGVzdHM6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIFNWR1NWR0VsZW1lbnQgaW5jbHVkZXMgU1ZHRml0VG9WaWV3Qm94OiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdTVkdFbGVtZW50IGluY2x1ZGVzIFdpbmRvd0V2ZW50
SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0ltYWdlRWxlbWVudCBp
bmNsdWRlcyBTVkdVUklSZWZlcmVuY2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNW
R1NjcmlwdEVsZW1lbnQgaW5jbHVkZXMgU1ZHVVJJUmVmZXJlbmNlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQotUEFTUyBTVkdBRWxlbWVudCBpbmNsdWRlcyBTVkdVUklSZWZlcmVuY2U6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCi1GQUlMIFNWR0FFbGVtZW50IGluY2x1ZGVzIEhUTUxIeXBlcmxp
bmtFbGVtZW50VXRpbHM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIGFzc2VydF90cnVlOiBtZW1i
ZXIgaHJlZiBpcyB1bmlxdWUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgSFRNTEVsZW1l
bnQgaW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQorUEFTUyBTVkdFbGVtZW50IGluY2x1ZGVzIEVsZW1lbnRDU1NJbmxpbmVTdHlsZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVu
dE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50RnJhZ21lbnQgaW5j
bHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNT
IERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRPclNoYWRvd1Jvb3Q6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNoYWRvd1Jvb3QgaW5jbHVkZXMgRG9jdW1lbnRPclNo
YWRvd1Jvb3Q6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVz
IFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50RnJhZ21l
bnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxl
bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBF
bGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxBbGxDb2xsZWN0aW9uIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgSFRNTEFs
bENvbGxlY3Rpb24gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgSFRNTEFsbENvbGxlY3Rp
b24gaW50ZXJmYWNlIG9iamVjdCBuYW1lCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432075</attachid>
            <date>2021-06-23 11:28:27 -0700</date>
            <delta_ts>2021-06-23 15:52:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227296-20210623112826.patch</filename>
            <type>text/plain</type>
            <size>494316</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTY5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmE5ZjNlODQ2MzFiMGJlOWU2ZjU5
NzRkNjBmNmY0OTFiZDVhODdiYy4uYjcwMzkyNmY3ODAxZGJhYjY3ODE2ZmVlYmFjMTU1NWRhMmNl
NDBjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTA2LTIzICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIFdQVCByZXNvdXJjZXMgZnJvbSB1cHN0
cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3
Mjk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20v
aWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDYtMjEgIERhcmluIEFkbGVy
ICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcHJvdmUgbW9yZSBvZiB0aGUgQ1NTIGxp
c3Qgc3R5bGUgaW1wbGVtZW50YXRpb25zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRl
eCAxYmZlZGEzNDI1MmI1NzY5ZTIwNDljMmM4ZDg3YmUwYjNiYjg0NzhiLi5jNTg3OGZlYzE0Nzc1
ZTdlYmQ0ODcwMTM1MWE2ZmMyOGFkNTAxYTg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw0NSBAQAorMjAyMS0wNi0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBXUFQgcmVzb3VyY2VzIGZyb20gdXBzdHJlYW0KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI5NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvaWRs
aGFybmVzcy5odHRwcy5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9XZWJDcnlwdG9BUEkvaWRsaGFybmVzcy5odHRwcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kv
c2VjdXJpdHlwb2xpY3l2aW9sYXRpb24vaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWFuaW1hdGlvbnMvaWRsaGFybmVz
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9u
dC1sb2FkaW5nL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXN5bnRheC9pbnB1dC1wcmVwcm9jZXNzaW5nLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9p
ZGxoYXJuZXNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvaWRsaGFybmVzcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pZGxoYXJuZXNzLndpbmRvdy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbXBhcnNpbmcvaWRsaGFy
bmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9l
dmVudHNvdXJjZS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkx
OC9pZGxoYXJuZXNzLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvaWRsaGFybmVzcy50ZW50YXRpdmUuYW55
Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2hyLXRp
bWUvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9oci10aW1lL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9uYXZp
Z2F0aW5nLWFjcm9zcy1kb2N1bWVudHMvamF2YXNjcmlwdC11cmwtcmV0dXJuLXZhbHVlLWhhbmRs
aW5nLWR5bmFtaWMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2RvbS9pZGxoYXJuZXNzLndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVy
ZWQtZGF0YS9zdHJ1Y3R1cmVkLWNsb25pbmctZXJyb3Itc3RhY2stb3B0aW9uYWwuc3ViLndpbmRv
dy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMv
RE9NLVBhcnNpbmcuaWRsOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2Vz
L1NWRy5pZGw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvbWVkaWFz
ZXNzaW9uLmlkbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9uL2lk
bGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvbm90aWZpY2F0aW9ucy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL25vdGlmaWNhdGlvbnMvaWRsaGFybmVzcy5odHRwcy5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcG9p
bnRlcmV2ZW50cy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgIFJlYmFz
ZWxpbmUgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzLyo6IFVwZGF0ZWQuCisKIDIwMjEtMDYtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgV1BUIHRvb2xzIGZyb20gdXBzdHJlYW0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4
dAppbmRleCA2MTQwNTRmOTFiMDJjODcxYjNmODExNjBiN2RiMzVhMDdiZTcwMmI2Li5kYTRiMGVi
N2ViYjU2YTUwYmI2YjBhNWM3MTMxMTY1YjZmYjBjOWRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFu
eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CkBAIC03LDEwICs3
LDEwIEBAIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgV2luZG93OiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dPcldv
cmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXb3JrZXJHbG9i
YWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd1Nlc3Np
b25TdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMg
V2luZG93TG9jYWxTdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBXb3JrZXJH
bG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBJREJSZXF1ZXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgSURCUmVxdWVzdCBpbnRlcmZhY2Ug
b2JqZWN0IGxlbmd0aAogUEFTUyBJREJSZXF1ZXN0IGludGVyZmFjZSBvYmplY3QgbmFtZQpAQCAt
MTk1LDUgKzE5NSw0IEBAIFBBU1MgSURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
b25hYm9ydAogUEFTUyBJREJUcmFuc2FjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmNvbXBs
ZXRlCiBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uZXJyb3IKIFBB
U1MgV2luZG93IGludGVyZmFjZTogYXR0cmlidXRlIGluZGV4ZWREQgotUEFTUyBXb3JrZXJHbG9i
YWxTY29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
b2JqZWN0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxo
YXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDY1MDkzZGEzMDI1MjBkMTljNjM2
YTI5YjlhOWY0Zjg1MDY1MmMwNzkuLjRiNjhiZDZlOGJjZjIxOTU1ZDdhYThkM2Y3ZTZkMjRlZTcx
ZWVhOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRs
aGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtNywxMCArNywxMCBAQCBQQVNTIFBh
cnRpYWwgaW50ZXJmYWNlIFdpbmRvdzogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2lu
ZG93IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29w
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVk
ZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3Rv
cmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5j
bHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
IFBBU1MgSURCUmVxdWVzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2Ugb2JqZWN0CiBQQVNTIElEQlJlcXVlc3QgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgK
IFBBU1MgSURCUmVxdWVzdCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKQEAgLTE5NCw2ICsxOTQsNSBA
QCBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogb3BlcmF0aW9uIGFib3J0KCkKIFBBU1Mg
SURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25hYm9ydAogUEFTUyBJREJUcmFu
c2FjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmNvbXBsZXRlCiBQQVNTIElEQlRyYW5zYWN0
aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uZXJyb3IKLVBBU1MgV2luZG93IGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgV29ya2Vy
R2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaW5kZXhlZERCCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJ
L2lkbGhhcm5lc3MuaHR0cHMuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2lkbGhhcm5lc3MuaHR0cHMuYW55
LWV4cGVjdGVkLnR4dAppbmRleCAxZjRhN2VkOGJlMWUzN2Q2NDk0ZWE2YmNiMmQyYTA5NjM4NGFk
ZDRmLi45OTc4MjlkMjAyMGEwMjVkNjUzN2JkOWE0MjcxZmI0NDQ3ZWZjNmI0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQ
SS9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvaWRsaGFybmVzcy5odHRw
cy5hbnktZXhwZWN0ZWQudHh0CkBAIC03LDEwICs3LDEwIEBAIFBBU1MgUGFydGlhbCBpbnRlcmZh
Y2UgV2luZG93OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMg
R2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93
IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQorUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldv
cmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5j
bHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd1Nlc3Npb25TdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93TG9jYWxTdG9yYWdlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dP
cldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBDcnlwdG8g
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAog
UEFTUyBDcnlwdG8gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgQ3J5cHRvIGludGVyZmFj
ZSBvYmplY3QgbmFtZQpAQCAtNzksNSArNzksNCBAQCBQQVNTIFN1YnRsZUNyeXB0byBpbnRlcmZh
Y2U6IGNhbGxpbmcgd3JhcEtleShLZXlGb3JtYXQsIENyeXB0b0tleSwgQ3J5cHRvS2V5LCBBbAog
UEFTUyBTdWJ0bGVDcnlwdG8gaW50ZXJmYWNlOiBjcnlwdG8uc3VidGxlIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAidW53cmFwS2V5KEtleUZvcm1hdCwgQnVmZmVyU291cmNlLCBDcnlwdG9LZXksIEFs
Z29yaXRobUlkZW50aWZpZXIsIEFsZ29yaXRobUlkZW50aWZpZXIsIGJvb2xlYW4sIHNlcXVlbmNl
PEtleVVzYWdlPikiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFN1YnRsZUNyeXB0byBpbnRl
cmZhY2U6IGNhbGxpbmcgdW53cmFwS2V5KEtleUZvcm1hdCwgQnVmZmVyU291cmNlLCBDcnlwdG9L
ZXksIEFsZ29yaXRobUlkZW50aWZpZXIsIEFsZ29yaXRobUlkZW50aWZpZXIsIGJvb2xlYW4sIHNl
cXVlbmNlPEtleVVzYWdlPikgb24gY3J5cHRvLnN1YnRsZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRz
IG11c3QgdGhyb3cgVHlwZUVycm9yCiBQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBj
cnlwdG8KLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9pZGxoYXJuZXNzLmh0
dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvaWRsaGFybmVzcy5odHRwcy5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dAppbmRleCBhYjg2OWE1MjIyNTBlM2Y1MDdkM2UzNzU0YTQ0ZDFmZDIxZWFm
YjM4Li5lZjkxMDVkMWNkY2NiM2ZmYmVkNDQ5OTEzYTQ3ZjdlZWM2OTE2M2E2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQ
SS9pZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2lkbGhhcm5l
c3MuaHR0cHMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTcsMTAgKzcsMTAgQEAgUEFTUyBQ
YXJ0aWFsIGludGVyZmFjZSBXaW5kb3c6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdp
bmRvdyBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2Nv
cGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdvcmtlckdsb2JhbFNjb3BlIGluY2x1
ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vzc2lvblN0b3JhZ2U6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dMb2NhbFN0
b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGlu
Y2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIENyeXB0byBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0CiBQQVNTIENyeXB0byBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBD
cnlwdG8gaW50ZXJmYWNlIG9iamVjdCBuYW1lCkBAIC03OCw2ICs3OCw1IEBAIFBBU1MgU3VidGxl
Q3J5cHRvIGludGVyZmFjZTogY3J5cHRvLnN1YnRsZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIndy
YXBLZXkoS2V5Rm9yCiBQQVNTIFN1YnRsZUNyeXB0byBpbnRlcmZhY2U6IGNhbGxpbmcgd3JhcEtl
eShLZXlGb3JtYXQsIENyeXB0b0tleSwgQ3J5cHRvS2V5LCBBbGdvcml0aG1JZGVudGlmaWVyKSBv
biBjcnlwdG8uc3VidGxlIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJy
b3IKIFBBU1MgU3VidGxlQ3J5cHRvIGludGVyZmFjZTogY3J5cHRvLnN1YnRsZSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInVud3JhcEtleShLZXlGb3JtYXQsIEJ1ZmZlclNvdXJjZSwgQ3J5cHRvS2V5
LCBBbGdvcml0aG1JZGVudGlmaWVyLCBBbGdvcml0aG1JZGVudGlmaWVyLCBib29sZWFuLCBzZXF1
ZW5jZTxLZXlVc2FnZT4pIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBTdWJ0bGVDcnlwdG8g
aW50ZXJmYWNlOiBjYWxsaW5nIHVud3JhcEtleShLZXlGb3JtYXQsIEJ1ZmZlclNvdXJjZSwgQ3J5
cHRvS2V5LCBBbGdvcml0aG1JZGVudGlmaWVyLCBBbGdvcml0aG1JZGVudGlmaWVyLCBib29sZWFu
LCBzZXF1ZW5jZTxLZXlVc2FnZT4pIG9uIGNyeXB0by5zdWJ0bGUgd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvcgotUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBleGlzdGVu
Y2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBXb3JrZXJHbG9iYWxT
Y29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjcnlwdG8KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaWRsaGFybmVzcy5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvYmVhY29uL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXgg
YmMwMDg5MGY3YWI5ZGI3OGRjYjkxNDRmMjNmNTBlYTc3MzY3ZDFjNy4uNjkwMTQ3YTFkNDZjZjdh
YzkzNDJhMzYyNDFmN2NhMDJiYjYyNTQ4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaWRsaGFybmVzcy5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2JlYWNvbi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xMSw2ICsx
MSw1IEBAIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvbnRlbnRVdGlsczogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNv
b2tpZXM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBO
YXZpZ2F0b3JQbHVnaW5zOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3Ig
aW5jbHVkZXMgTmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQotUEFTUyBOYXZpZ2F0b3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBOYXZpZ2F0b3IgaW50ZXJmYWNlOiBuYXZpZ2F0b3Ig
bXVzdCBub3QgaGF2ZSBwcm9wZXJ0eSAic2VuZEJlYWNvbiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBv
bGljeS9zZWN1cml0eXBvbGljeXZpb2xhdGlvbi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRlbnQt
c2VjdXJpdHktcG9saWN5L3NlY3VyaXR5cG9saWN5dmlvbGF0aW9uL2lkbGhhcm5lc3Mud2luZG93
LWV4cGVjdGVkLnR4dAppbmRleCAxYmRlNTZkYTliNjQ4NWM2ODNkMWY3YjRkODc5OTMyZWQxYWI5
NGY1Li4xNjdiMjJjYmE0ZTBjYTM1Zjk0ODQzYTE0MGMxNWI1MmUzODAxOWJhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRlbnQtc2Vj
dXJpdHktcG9saWN5L3NlY3VyaXR5cG9saWN5dmlvbGF0aW9uL2lkbGhhcm5lc3Mud2luZG93LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2NvbnRlbnQtc2VjdXJpdHktcG9saWN5L3NlY3VyaXR5cG9saWN5dmlvbGF0aW9uL2lkbGhh
cm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMTksNyArMTksNyBAQCBGQUlMIENTUFZpb2xh
dGlvblJlcG9ydEJvZHkgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc3RhdHVzQ29kZSBhc3NlcnRfb3du
X3Byb3BlcnR5OgogRkFJTCBDU1BWaW9sYXRpb25SZXBvcnRCb2R5IGludGVyZmFjZTogYXR0cmli
dXRlIGxpbmVOdW1iZXIgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93
biBwcm9wZXJ0eSAiQ1NQVmlvbGF0aW9uUmVwb3J0Qm9keSIgZXhwZWN0ZWQgcHJvcGVydHkgIkNT
UFZpb2xhdGlvblJlcG9ydEJvZHkiIG1pc3NpbmcKIEZBSUwgQ1NQVmlvbGF0aW9uUmVwb3J0Qm9k
eSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjb2x1bW5OdW1iZXIgYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiQ1NQVmlvbGF0aW9uUmVwb3J0Qm9keSIg
ZXhwZWN0ZWQgcHJvcGVydHkgIkNTUFZpb2xhdGlvblJlcG9ydEJvZHkiIG1pc3NpbmcKIFBBU1Mg
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKK0ZBSUwgU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfZXF1YWxzOiB3cm9uZyB2YWx1
ZSBmb3IgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5sZW5ndGggZXhwZWN0ZWQgMCBidXQg
Z290IDEKIFBBU1MgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0
IG5hbWUKIFBBU1MgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAogUEFTUyBT
ZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9w
ZXJ0eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWFuaW1hdGlvbnMvaWRsaGFybmVzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtYW5pbWF0aW9ucy9p
ZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAppbmRleCBmOWFlNzY1NzI1YmQxYTdlNWUyYzhmYmFmNDJm
ODI3MDY5ODFmYWJiLi4yYjYyZGQ1NGQwMWUwNThhYzdmMjUwY2Q2OTcwOWE0MjFlZWIzZGQxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtYW5pbWF0aW9ucy9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtYW5pbWF0aW9ucy9pZGxo
YXJuZXNzLWV4cGVjdGVkLnR4dApAQCAtMTAsMjQgKzEwLDI0IEBAIFBBU1MgUGFydGlhbCBpbnRl
cmZhY2UgRG9jdW1lbnRbMl06IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwg
aW50ZXJmYWNlIFdpbmRvdzogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQg
aW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBh
cmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVz
IFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1
ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRN
TEVsZW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRI
YW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVk
ZXMgRWxlbWVudENvbnRlbnRFZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
SFRNTEVsZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZHRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKLVBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0eWxlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgR2xvYmFsRXZlbnRI
YW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdp
bmRvd0V2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBp
bmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd1Nlc3Npb25TdG9yYWdl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93TG9j
YWxTdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRl
cyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9j
dW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
RWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEVsZW1l
bnRDU1NJbmxpbmVTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgQW5pbWF0aW9u
RXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdAogUEFTUyBBbmltYXRpb25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBB
bmltYXRpb25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250LWxvYWRpbmcv
aWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udC1sb2FkaW5nL2lkbGhhcm5lc3MuaHR0cHMt
ZXhwZWN0ZWQudHh0CmluZGV4IDU5MzAxNzRiZTEwY2IyYWEyMDQwNDU5ZWUyNjI5ZDMwOTdmOWEy
MTEuLmUwNjNlNDI1ODg0ZWJiZTBiZjM4ODFjM2E4MTNjY2VkMDFlMmI2OWMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250
LWxvYWRpbmcvaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnQtbG9hZGluZy9pZGxo
YXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNCwxMiArNCwxMiBAQCBQQVNTIGlkbF90ZXN0
IHZhbGlkYXRpb24KIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnQ6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50WzJdOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBGb250RmFjZVNvdXJjZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMg
Rm9udEZhY2VTb3VyY2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGlu
Y2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBEb2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQog
UEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50QW5k
RWxlbWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdvcmtl
ckdsb2JhbFNjb3BlIGluY2x1ZGVzIEZvbnRGYWNlU291cmNlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2Jh
bFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBGb250RmFjZSBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIEZvbnRG
YWNlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCkBAIC05Myw1ICs5Myw0IEBAIFBBU1MgRm9udEZh
Y2VTZXQgaW50ZXJmYWNlOiBkb2N1bWVudC5mb250cyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJl
YWR5IiB3aXRoIHRoCiBQQVNTIEZvbnRGYWNlU2V0IGludGVyZmFjZTogZG9jdW1lbnQuZm9udHMg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdGF0dXMiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNT
IERvY3VtZW50IGludGVyZmFjZTogYXR0cmlidXRlIGZvbnRzCiBQQVNTIERvY3VtZW50IGludGVy
ZmFjZTogZG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJmb250cyIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc3ludGF4L2lucHV0LXBy
ZXByb2Nlc3NpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXN5bnRheC9pbnB1dC1wcmVwcm9jZXNzaW5nLWV4cGVjdGVk
LnR4dAppbmRleCA5ZDFjNjJlZDlmZTU4YzY1Nzg5OTQwYjQ1ODE2YTBmMjAyY2Y2ZTYzLi5mMGUz
YWUyNmJhMjMxYWQxMDA4M2M1NWU3Mjc2YjZlMGE2NGEwNDIwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc3ludGF4L2lucHV0
LXByZXByb2Nlc3NpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zeW50YXgvaW5wdXQtcHJlcHJvY2Vzc2luZy1l
eHBlY3RlZC50eHQKQEAgLTQsOSArNCw5IEBAIFBBU1MgImZcMG9vIiBiZWNvbWVzICJm77+9b28i
CiBQQVNTICJcMGZvbyIgYmVjb21lcyAi77+9Zm9vIgogUEFTUyAiXDAiIGJlY29tZXMgIu+/vSIK
IFBBU1MgIlwwXDBcMCIgYmVjb21lcyAi77+977+977+9IgotRkFJTCAiZm9vVStkODAwIiBiZWNv
bWVzICJmb2/vv70iIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJmb29cdWZmZmQiIGJ1dCBnb3Qg
ImZvb++/vSIKLUZBSUwgImZVK2Q4MDBvbyIgYmVjb21lcyAiZu+/vW9vIiBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiZlx1ZmZmZG9vIiBidXQgZ290ICJm77+9b28iCi1GQUlMICJVK2Q4MDBmb28i
IGJlY29tZXMgIu+/vWZvbyIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlx1ZmZmZGZvbyIgYnV0
IGdvdCAi77+9Zm9vIgotRkFJTCAiVStkODAwIiBiZWNvbWVzICLvv70iIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJcdWZmZmQiIGJ1dCBnb3QgIu+/vSIKLUZBSUwgIlUrZDgwMFUrZDgwMFUrZDgw
MCIgYmVjb21lcyAi77+977+977+9IiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiXHVmZmZkXHVm
ZmZkXHVmZmZkIiBidXQgZ290ICLvv73vv73vv70iCitGQUlMICJmb29VK2Q4MDAiIGJlY29tZXMg
ImZvb++/vSIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImZvb1x1ZmZmZCIgYnV0IGdvdCAiZm9v
VStkODAwIgorRkFJTCAiZlUrZDgwMG9vIiBiZWNvbWVzICJm77+9b28iIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJmXHVmZmZkb28iIGJ1dCBnb3QgImZVK2Q4MDBvbyIKK0ZBSUwgIlUrZDgwMGZv
byIgYmVjb21lcyAi77+9Zm9vIiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiXHVmZmZkZm9vIiBi
dXQgZ290ICJVK2Q4MDBmb28iCitGQUlMICJVK2Q4MDAiIGJlY29tZXMgIu+/vSIgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgIlx1ZmZmZCIgYnV0IGdvdCAiVStkODAwIgorRkFJTCAiVStkODAwVStk
ODAwVStkODAwIiBiZWNvbWVzICLvv73vv73vv70iIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJc
dWZmZmRcdWZmZmRcdWZmZmQiIGJ1dCBnb3QgIlUrZDgwMFUrZDgwMFUrZDgwMCIKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXRyYW5zaXRpb25zL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zL2lkbGhhcm5lc3Mt
ZXhwZWN0ZWQudHh0CmluZGV4IDA3YTI4M2ZlNjE1ZTliZDNiZmIyMzBhZTJkZDllZmY4ZTI0ODk4
ZjUuLjRjMDkzZTgzMjBjNTU0NDZmZjc4ODkzNDY5MzViYzBkZTYwYzljYjIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFu
c2l0aW9ucy9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvaWRsaGFybmVzcy1l
eHBlY3RlZC50eHQKQEAgLTgsOSArOCw2IEBAIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1l
bnRbMl06IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFdp
bmRvdzogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgR2xv
YmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQg
aW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZh
bHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5j
bHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
SFRNTEVsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENv
bnRlbnRFZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAgLTIxLDEwICsxOCwxMyBA
QCBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92
aWRlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRv
d1Nlc3Npb25TdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5j
bHVkZXMgV2luZG93TG9jYWxTdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBE
b2N1bWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9k
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5v
ZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRh
YmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0
aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFRyYW5zaXRpb25F
dmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0CiBQQVNTIFRyYW5zaXRpb25FdmVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBU
cmFuc2l0aW9uRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBuYW1lCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2lkbGhh
cm5lc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAppbmRleCBmZTEz
ZTk5OWM0NTY0YzRjOTU3MTRhODE5YmNjNDkxMzQ2NGYxZmQ4Li5mNTUyN2VmNzExOWM4OTRlN2Zh
OTVkMTlmZTcyZDFiZDI1MWU2MzM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2lkbGhhcm5lc3MtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKQEAgLTI5LDIwICsyOSwxMiBAQCBQ
QVNTIFBhcnRpYWwgaW50ZXJmYWNlIEhUTUxJbWFnZUVsZW1lbnRbMl06IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50WzRdOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBXaW5kb3dbM106IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIFRleHQgaW5jbHVkZXMgR2VvbWV0cnlVdGlsczogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgVGV4dCBpbmNsdWRlcyBTbG90dGFibGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgR2VvbWV0cnlVdGlsczogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50
VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNs
dWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEVsZW1lbnQgaW5j
bHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBDU1NQc2V1ZG9F
bGVtZW50IGluY2x1ZGVzIEdlb21ldHJ5VXRpbHM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIERvY3VtZW50IGluY2x1ZGVzIEdlb21ldHJ5VXRpbHM6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEVsZW1lbnRDU1NJbmxpbmVTdHlsZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRI
YW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMg
RG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
LVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFz
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxl
bWVudENTU0lubGluZVN0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MRWxl
bWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRs
ZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBF
bGVtZW50Q29udGVudEVkaXRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQpAQCAtNTMsOCAr
NDUsMTYgQEAgUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZy
YW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRl
cyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2lu
ZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
K1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBOb25Eb2N1bWVudFR5cGVD
aGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIENoYXJhY3RlckRhdGEgaW5j
bHVkZXMgTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQor
UEFTUyBFbGVtZW50IGluY2x1ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
IFBBU1MgQ2hhcmFjdGVyRGF0YSBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQorUEFTUyBUZXh0IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBNZWRpYVF1ZXJ5TGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIE1lZGlhUXVlcnlMaXN0
IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCiBQQVNTIE1lZGlhUXVlcnlMaXN0IGludGVyZmFjZSBv
YmplY3QgbmFtZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3Nzb20vaWRsaGFybmVzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS9pZGxoYXJuZXNzLWV4
cGVjdGVkLnR4dAppbmRleCBhYjlkNjRiODEwM2VlNzRiMGI4YTQxMDQwZTkwNWY2OTBhZDYxNDVm
Li5kZmMwOTM3M2NkOTYwMjU4MjYzNGI1MDNhNzI5NjNmOWM3M2EzM2EwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS9pZGxo
YXJuZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dApAQCAtMTUsMTYg
KzE1LDE2IEBAIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgSFRNTFN0eWxlRWxlbWVudDogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgV2luZG93WzJdOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gaW5jbHVkZXMg
TGlua1N0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MRWxlbWVudCBpbmNs
dWRlcyBFbGVtZW50Q1NTSW5saW5lU3R5bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNT
IEhUTUxFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCi1QQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2
ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEhUTUxFbGVtZW50IGlu
Y2x1ZGVzIEVsZW1lbnRDb250ZW50RWRpdGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1Q
QVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEhUTUxPclNWR0VsZW1lbnQ6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0eWxl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdFbGVtZW50IGluY2x1ZGVzIEdsb2Jh
bEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQg
aW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgU1ZHRWxlbWVudCBpbmNsdWRlcyBTVkdFbGVtZW50SW5zdGFuY2U6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZH
RWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHU3R5bGVFbGVtZW50IGlu
Y2x1ZGVzIExpbmtTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgSFRNTEVsZW1l
bnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
K1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVy
czogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxl
bWVudENvbnRlbnRFZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgSFRNTEVs
ZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZHRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
IFBBU1MgSFRNTExpbmtFbGVtZW50IGluY2x1ZGVzIExpbmtTdHlsZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgSFRNTFN0eWxlRWxlbWVudCBpbmNsdWRlcyBMaW5rU3R5bGU6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRs
ZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQpAQCAtMzQsMTggKzM0LDE4IEBAIFBBU1MgV2lu
ZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVu
dFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50RnJhZ21l
bnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50T3JTaGFkb3dSb290OiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQorUEFTUyBTaGFkb3dSb290IGluY2x1ZGVzIERvY3VtZW50T3JTaGFkb3dS
b290OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBQYXJl
bnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBY
UGF0aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50
RnJhZ21lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgU2hhZG93Um9vdCBpbmNsdWRlcyBEb2N1bWVudE9yU2hh
ZG93Um9vdDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBQ
YXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVz
IE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1Mg
RWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNT
IEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBDaGFyYWN0ZXJEYXRhIGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIENoYXJhY3RlckRhdGEgaW5jbHVkZXMgQ2hpbGROb2Rl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0YWJs
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhF
dmFsdWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBNZWRpYUxpc3QgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFT
UyBNZWRpYUxpc3QgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgTWVkaWFMaXN0IGludGVy
ZmFjZSBvYmplY3QgbmFtZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2lkbGhhcm5l
c3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggZWIyZDlhYmQyYjE1MmUzMDAwODRlNzA4
ZGRkN2M4YmM5Zjc2NTdjOS4uZjZkMTk0ZmZmY2FmMWIxZjAzMDZlNWVjNDI3YWIxOTVjMzAzNDJi
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pZGxoYXJuZXNzLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC03LDIxICs3LDIxIEBAIFBBU1MgUGFydGlhbCBpbnRlcmZhY2Ug
RG9jdW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNl
IERvY3VtZW50WzJdOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQYXJ0aWFsIGludGVy
ZmFjZSBXaW5kb3dbMl06IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGlu
Y2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFT
UyBEb2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQot
UEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50QW5k
RWxlbWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3Vt
ZW50RnJhZ21lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2Rl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3Vt
ZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBp
bmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEVsZW1lbnQg
aW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBDaGFyYWN0
ZXJEYXRhIGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKLVBBU1MgQ2hhcmFjdGVyRGF0YSBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50VHlwZSBpbmNsdWRlcyBDaGlsZE5vZGU6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGROb2RlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBDaGFyYWN0ZXJEYXRhIGluY2x1ZGVzIENoaWxk
Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBTbG90
dGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFRleHQgaW5jbHVkZXMgU2xvdHRh
YmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0
aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFhQYXRoRXZhbHVh
dG9yIGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
K1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZl
bnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5j
bHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
SFRNTEVsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENv
bnRlbnRFZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAgLTIwNSw3ICsyMDUsNCBA
QCBQQVNTIFhQYXRoRXhwcmVzc2lvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIFhQYXRoTlNSZXNvbHZlciBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIFhQYXRoRXZh
bHVhdG9yIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QKIFBBU1MgWFNMVFByb2Nlc3NvciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIEhUTUxFbGVtZW50IGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKLVBBU1MgSFRNTFNsb3RF
bGVtZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QKLVBBU1MgV2luZG93IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBvYmplY3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaWRsaGFybmVz
cy53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IDliOTM3Y2MwNTVkY2RlMjVlYWUxMTZjOTM0OWRj
MTlkOThiNGYyNjMuLjViNDczNjM5OWMwYjgwZDNkZmY2MmZjZTAzZThhNDFjNzk0NzU5MmUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50
eHQKQEAgLTcsMjEgKzcsMjEgQEAgUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBEb2N1bWVudDogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnRbMl06
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFdpbmRvd1sy
XTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxl
bWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGlu
Y2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50
IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBB
U1MgRG9jdW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRI
YW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnRGcmFnbWVudCBp
bmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BB
U1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
IFBBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgTm9uRG9jdW1lbnRUeXBlQ2hpbGRO
b2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBFbGVtZW50IGluY2x1ZGVzIENoaWxk
Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBTbG90
dGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIENoYXJhY3RlckRhdGEgaW5jbHVk
ZXMgTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFT
UyBDaGFyYWN0ZXJEYXRhIGluY2x1ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgRG9jdW1lbnRUeXBlIGluY2x1ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCitQQVNTIENoYXJhY3RlckRhdGEgaW5jbHVkZXMgQ2hpbGROb2RlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgVGV4dCBpbmNsdWRlcyBTbG90dGFibGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFz
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgWFBhdGhFdmFsdWF0b3IgaW5jbHVkZXMg
WFBhdGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVu
dCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQor
UEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBHbG9iYWxF
dmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MRWxlbWVudCBp
bmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q29udGVudEVkaXRhYmxl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb21wYXJzaW5nL2lkbGhhcm5lc3Mud2luZG93LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tcGFyc2luZy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggNTFiZWNlMTlm
MGU0M2ZmOTQzYWM0M2Q0OGEyYjBmMDU0MjZmZDc4OC4uNDQ0NmE1NzUzZDU4ODFiNDNiNjYxYWMz
OGY1NzNkZjlmMjAyNDNlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb21wYXJzaW5nL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbXBh
cnNpbmcvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC02LDEzICs2LDEzIEBAIFBB
U1MgUGFydGlhbCBpbnRlcmZhY2UgRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgUGFydGlhbCBpbnRlcmZhY2UgUmFuZ2U6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkCiBQ
QVNTIFBhcnRpYWwgaW50ZXJmYWNlIFJhbmdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBFbGVtZW50IGluY2x1ZGVzIElubmVySFRNTDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BB
U1MgU2hhZG93Um9vdCBpbmNsdWRlcyBJbm5lckhUTUw6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CitQQVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgUGFy
ZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBQ
YXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVz
IE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
RWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNT
IEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFT
UyBTaGFkb3dSb290IGluY2x1ZGVzIElubmVySFRNTDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
LVBBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBQYXJl
bnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBYTUxTZXJpYWxpemVyIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1Mg
WE1MU2VyaWFsaXplciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBYTUxTZXJpYWxpemVy
IGludGVyZmFjZSBvYmplY3QgbmFtZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHNvdXJjZS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzb3Vy
Y2UvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKaW5kZXggMmI5MzFkZDM1MjViYTgyOWRiNTczNmQy
MTlmYTE2ZTJiMTZjYjZiNi4uYmEwYmM0Mzk4Mjc0NTE1MjVlNjMwYTZmZTkwYWFlNGZhODQyNmU1
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9ldmVudHNvdXJjZS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c291cmNlL2lkbGhhcm5lc3MtZXhw
ZWN0ZWQudHh0CkBAIC0zLDcgKzMsOSBAQCBDT05TT0xFIE1FU1NBR0U6IEV2ZW50U291cmNlIGNh
bm5vdCBsb2FkIGh0dHA6Ly9mb28vIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVjawogRXZlbnRT
b3VyY2UgSURMIHRlc3RzCiAKIAotUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CitGQUlMIEV2ZW50VGFyZ2V0IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNz
ZXJ0X3Rocm93c19qczogaW50ZXJmYWNlIG9iamVjdCBkaWRuJ3QgdGhyb3cgVHlwZUVycm9yIHdo
ZW4gY2FsbGVkIGFzIGEgY29uc3RydWN0b3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgICAgICBuZXcgaW50ZXJmYWNlX29iamVjdCgpOworICAgICAgICAgICAgfSIgZGlkIG5v
dCB0aHJvdwogUEFTUyBFdmVudFRhcmdldCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBF
dmVudFRhcmdldCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QKQEAgLTE4LDcgKzIwLDcgQEAgUEFTUyBFdmVudExpc3RlbmVyIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2IKIFBBU1MgRXZlbnRM
aXN0ZW5lciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkKIFBBU1MgRXZlbnRMaXN0
ZW5lciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBoYW5kbGVFdmVudChFdmVudCkKIFBBU1MgRXZlbnRT
b3VyY2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdAotUEFTUyBFdmVudFNvdXJjZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAorRkFJTCBFdmVu
dFNvdXJjZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3NlcnRfZXF1YWxzOiB3cm9uZyB2YWx1
ZSBmb3IgRXZlbnRTb3VyY2UubGVuZ3RoIGV4cGVjdGVkIDAgYnV0IGdvdCAxCiBQQVNTIEV2ZW50
U291cmNlIGludGVyZmFjZSBvYmplY3QgbmFtZQogUEFTUyBFdmVudFNvdXJjZSBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAog
UEFTUyBFdmVudFNvdXJjZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4
dAppbmRleCA0ZGFlNWE1Yjc1Zjk2MDY4MmE1NDViZjYxNGY5YmU3NWVkNDI0OWJiLi4yZWNkMjE1
MjA5OWMzZDBkN2E2YTIwODNkMjYxY2QxMTBkNzVmZjcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9pZGxoYXJuZXNzLmFu
eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CkBAIC05LDEwICs5
LDEwIEBAIFBBU1MgUmVzcG9uc2UgaW5jbHVkZXMgQm9keTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3Jr
ZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV29ya2VyR2xvYmFs
U2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9u
U3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdp
bmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV29ya2VyR2xv
YmFsU2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgSGVhZGVycyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlIG9iamVjdCBs
ZW5ndGgKIFBBU1MgSGVhZGVycyBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKQEAgLTEzNyw1ICsxMzcs
NCBAQCBQQVNTIFJlc3BvbnNlIGludGVyZmFjZTogbmV3IFJlc3BvbnNlKCkgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJ0ZXh0KCkiIHdpdGggdGhlCiBQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBmZXRjaChSZXF1ZXN0SW5mbywgb3B0aW9uYWwgUmVxdWVzdEluaXQpCiBQQVNTIFdpbmRv
dyBpbnRlcmZhY2U6IHdpbmRvdyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImZldGNoKFJlcXVlc3RJ
bmZvLCBvcHRpb25hbCBSZXF1ZXN0SW5pdCkiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFdp
bmRvdyBpbnRlcmZhY2U6IGNhbGxpbmcgZmV0Y2goUmVxdWVzdEluZm8sIG9wdGlvbmFsIFJlcXVl
c3RJbml0KSBvbiB3aW5kb3cgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvcgotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJv
cGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbGhhcm5lc3MuYW55Lndv
cmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4
IDFjNmY1NTAyMjg3MWEwMmVmODcxZjU0OTA3Y2Y0ODhmOWM1OTU0YmEuLmUyYjc0N2M2ZTA2ZTI2
OGMwODcyOGQ2MDNmYzc1NDAyM2NiYzFmZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbGhhcm5lc3MuYW55Lndvcmtl
ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAt
OSwxMCArOSwxMCBAQCBQQVNTIFJlc3BvbnNlIGluY2x1ZGVzIEJvZHk6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93RXZlbnRIYW5k
bGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRv
d09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdvcmtl
ckdsb2JhbFNjb3BlIGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3Zp
ZGVyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93
U2Vzc2lvblN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNs
dWRlcyBXaW5kb3dMb2NhbFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdv
cmtlckdsb2JhbFNjb3BlIGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBIZWFkZXJzIGludGVyZmFjZSBv
YmplY3QgbGVuZ3RoCiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlIG9iamVjdCBuYW1lCkBAIC0xMzQs
NyArMTM0LDYgQEAgUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IG5ldyBSZXNwb25zZSgpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAiYmxvYigpIiB3aXRoIHRoZQogUEFTUyBSZXNwb25zZSBpbnRlcmZh
Y2U6IG5ldyBSZXNwb25zZSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZm9ybURhdGEoKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBuZXcgUmVzcG9uc2Uo
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImpzb24oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBB
U1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBuZXcgUmVzcG9uc2UoKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInRleHQoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKLVBBU1MgV2luZG93IGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgV29ya2Vy
R2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBvcGVyYXRpb24gZmV0Y2goUmVxdWVzdEluZm8sIG9wdGlv
bmFsIFJlcXVlc3RJbml0KQogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJmZXRjaChSZXF1ZXN0SW5mbywgb3B0aW9uYWwgUmVxdWVz
dEluaXQpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRl
cmZhY2U6IGNhbGxpbmcgZmV0Y2goUmVxdWVzdEluZm8sIG9wdGlvbmFsIFJlcXVlc3RJbml0KSBv
biBzZWxmIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
Y29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0aXZlLmFueS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkx
OC9pZGxoYXJuZXNzLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0CmluZGV4IGIyNTg4OWUzY2Iw
NjlhZmUxMjQ2NjczZGVjN2MxZDgzNTY1ZTVlNTcuLjVjMGYxYzA4NzUzZDEyNDc0ZmFiZWNhMWY0
ZTgyZTliM2FiZDQwNTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0aXZlLmFu
eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvaWRsaGFybmVzcy50ZW50YXRpdmUuYW55LWV4cGVj
dGVkLnR4dApAQCAtOSwxMSArOSwxMCBAQCBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50
WzJdOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBEb2N1
bWVudFszXTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMg
R2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1l
bnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKK1BBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3Jr
ZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5j
bHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNT
IERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJH
bG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV29ya2VyR2xvYmFsU2Nv
cGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dAogRkFJTCBEb2N1bWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBhZGRyZXNzU3BhY2UgYXNzZXJ0
X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJhZGRyZXNz
U3BhY2UiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIERvY3VtZW50IGludGVyZmFjZTog
ZG9jdW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRyZXNzU3BhY2UiIHdpdGggdGhlIHBy
b3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImFkZHJlc3NTcGFjZSIgbm90IGZv
dW5kIGluIHByb3RvdHlwZSBjaGFpbgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9pZGxoYXJuZXNzLnRl
bnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0
aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDc0MGVhZDBmYWI3Y2Y1NTA2NDEzODJj
YjE3MjA2NjYyMzZmMWE4YzIuLmMzZTQxNTU3Mzc4NDQ4YWY2MjJjMTIzYjFlMTEyZWI2NmMxZTYz
ZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0aXZlLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0aXZlLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0CkBAIC05LDEyICs5LDEwIEBAIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1l
bnRbMl06IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIERv
Y3VtZW50WzNdOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRl
cyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1
bWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQorUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldv
cmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBp
bmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
IFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtl
ckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogRkFJTCBXb3JrZXJHbG9iYWxT
Y29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBhZGRyZXNzU3BhY2UgYXNzZXJ0X3RydWU6IFRoZSBw
cm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJhZGRyZXNzU3BhY2UiIGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2Vs
ZiBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFkZHJlc3NTcGFjZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiYWRkcmVzc1NwYWNlIiBub3QgZm91bmQgaW4g
cHJvdG90eXBlIGNoYWluCi1QQVNTIE5vZGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAotUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHItdGltZS9pZGxoYXJu
ZXNzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2hyLXRpbWUvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CmluZGV4IDhkZWZl
ZmIyZjBlNzdlY2Y1MTRmZGQ1MzdjNmI1MmNmMDhhYTFlOTkuLjEyNmUwOTk1NDZjY2U0YTZkMGVj
ZTY4YmFjOWJkNzFkNmE4ZjVlM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHItdGltZS9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9oci10aW1l
L2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dApAQCAtNywxMCArNywxMCBAQCBQQVNTIFBhcnRp
YWwgaW50ZXJmYWNlIFdpbmRvdzogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93
IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMg
V2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
V2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFn
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVk
ZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIG9iamVjdAogUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAog
UEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKQEAgLTI4LDUgKzI4LDQgQEAg
UEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2U6IHBlcmZvcm1hbmNlIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAidG9KU09OKCkiIHdpdGggdGgKIFBBU1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiBkZWZh
dWx0IHRvSlNPTiBvcGVyYXRpb24gb24gcGVyZm9ybWFuY2UKIFBBU1MgV2luZG93IGludGVyZmFj
ZTogYXR0cmlidXRlIHBlcmZvcm1hbmNlCiBQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IHNlbGYgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJwZXJmb3JtYW5jZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKLVBB
U1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2hyLXRpbWUvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHIt
dGltZS9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGNhY2IyN2FlM2Ji
ZTk3YjM1MTk5OGI4NTZlNTcyMDRiOGVkY2QxZDcuLjJkODJmYzY5YjFhODJjNjI3NTJlZjg1MmY4
ZWIzMTg3NzBlMWJiNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHItdGltZS9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHItdGlt
ZS9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC03LDEwICs3LDEwIEBAIFBB
U1MgUGFydGlhbCBpbnRlcmZhY2UgV2luZG93OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBXaW5kb3cgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2Jh
bFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBp
bmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd1Nlc3Npb25TdG9yYWdl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93TG9j
YWxTdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBXb3JrZXJHbG9iYWxTY29w
ZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIFBlcmZvcm1hbmNlIGludGVyZmFjZSBvYmplY3Qg
bGVuZ3RoCiBQQVNTIFBlcmZvcm1hbmNlIGludGVyZmFjZSBvYmplY3QgbmFtZQpAQCAtMjYsNyAr
MjYsNiBAQCBQQVNTIFBlcmZvcm1hbmNlIGludGVyZmFjZTogcGVyZm9ybWFuY2UgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJub3coKSIgd2l0aCB0aGUgcAogUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZh
Y2U6IHBlcmZvcm1hbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidGltZU9yaWdpbiIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUKIFBBU1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiBwZXJmb3JtYW5jZSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInRvSlNPTigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFT
UyBQZXJmb3JtYW5jZSBpbnRlcmZhY2U6IGRlZmF1bHQgdG9KU09OIG9wZXJhdGlvbiBvbiBwZXJm
b3JtYW5jZQotUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSBwZXJmb3JtYW5jZQogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNl
bGYgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJwZXJmb3JtYW5jZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvbmF2aWdhdGluZy1hY3Jvc3MtZG9j
dW1lbnRzL2phdmFzY3JpcHQtdXJsLXJldHVybi12YWx1ZS1oYW5kbGluZy1keW5hbWljLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL25hdmlnYXRpbmctYWNyb3NzLWRvY3VtZW50cy9q
YXZhc2NyaXB0LXVybC1yZXR1cm4tdmFsdWUtaGFuZGxpbmctZHluYW1pYy1leHBlY3RlZC50eHQK
aW5kZXggMzgxOWIwZDkwMDRlZjFiMjQ1NDk5ZTJiYmM5NzM4Y2RhMGUyMDZmYS4uYTI2NGQ2YTUw
MWUzMDNmMjc2ODM4YTViODE5NmNkMjBkMjg1YTA4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRo
ZS13ZWIvbmF2aWdhdGluZy1hY3Jvc3MtZG9jdW1lbnRzL2phdmFzY3JpcHQtdXJsLXJldHVybi12
YWx1ZS1oYW5kbGluZy1keW5hbWljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdl
Yi9uYXZpZ2F0aW5nLWFjcm9zcy1kb2N1bWVudHMvamF2YXNjcmlwdC11cmwtcmV0dXJuLXZhbHVl
LWhhbmRsaW5nLWR5bmFtaWMtZXhwZWN0ZWQudHh0CkBAIC04LDUgKzgsNSBAQCBGQUlMIFRlc3Qg
amF2YXNjcmlwdCBVUkwgc3RyaW5nIHJldHVybiB2YWx1ZXMgaW4gZGlyZWN0IGFuZCBpbmRpcmVj
dCAodGFyZ2V0KSBmcgogRkFJTCBUZXN0IGphdmFzY3JpcHQgVVJMIHN0cmluZyByZXR1cm4gdmFs
dWVzIGluIGRpcmVjdCBhbmQgaW5kaXJlY3QgKHRhcmdldCkgZnJhbWUgY29udGV4dHMuIDYgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgIsKAw78iIGJ1dCBnb3QgIiIKIEZBSUwgVGVzdCBqYXZhc2Ny
aXB0IFVSTCBzdHJpbmcgcmV0dXJuIHZhbHVlcyBpbiBkaXJlY3QgYW5kIGluZGlyZWN0ICh0YXJn
ZXQpIGZyYW1lIGNvbnRleHRzLiA3IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICLCgMO/xIAiIGJ1
dCBnb3QgIiIKIEZBSUwgVGVzdCBqYXZhc2NyaXB0IFVSTCBzdHJpbmcgcmV0dXJuIHZhbHVlcyBp
biBkaXJlY3QgYW5kIGluZGlyZWN0ICh0YXJnZXQpIGZyYW1lIGNvbnRleHRzLiA4IGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICLwn5iNIiBidXQgZ290ICIiCi1GQUlMIFRlc3QgamF2YXNjcmlwdCBV
Ukwgc3RyaW5nIHJldHVybiB2YWx1ZXMgaW4gZGlyZWN0IGFuZCBpbmRpcmVjdCAodGFyZ2V0KSBm
cmFtZSBjb250ZXh0cy4gOSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi77+9QSIgYnV0IGdvdCAi
IgorRkFJTCBUZXN0IGphdmFzY3JpcHQgVVJMIHN0cmluZyByZXR1cm4gdmFsdWVzIGluIGRpcmVj
dCBhbmQgaW5kaXJlY3QgKHRhcmdldCkgZnJhbWUgY29udGV4dHMuIDkgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgIlUrZGUwZEEiIGJ1dCBnb3QgIiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLndvcmtl
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvZG9tL2lkbGhhcm5lc3Mud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCAxOWI5YjZh
NjQzOTQwZGEzMzMyODg5YWM2MGEzYWM2ZmI5OGUyM2RjLi42ZGE1OGQxYzM0MTU3NWE4MDNkOGFj
MDlkMDQ1NmJjODcwZDQyNDFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3Mud29ya2VyLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
ZG9tL2lkbGhhcm5lc3Mud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtNzksMTUgKzc5LDEwIEBAIFBB
U1MgUGFydGlhbCBpbnRlcmZhY2UgV2luZG93OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBQYXJ0aWFsIGludGVyZmFjZSBVSUV2ZW50OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBEb2N1bWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhh
bmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBO
b25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1l
bnQgaW5jbHVkZXMgRG9jdW1lbnRPclNoYWRvd1Jvb3Q6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
Ci1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5k
bGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMg
RG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
IFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENvbnRlbnRFZGl0YWJsZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZHRWxl
bWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMg
RWxlbWVudENTU0lubGluZVN0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1M
TGlua0VsZW1lbnQgaW5jbHVkZXMgTGlua1N0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQog
UEFTUyBIVE1MU3R5bGVFbGVtZW50IGluY2x1ZGVzIExpbmtTdHlsZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgSFRNTEJvZHlFbGVtZW50IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxl
cnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCkBAIC0xMjksOSArMTI0LDYgQEAgUEFTUyBFbGVt
ZW50SW50ZXJuYWxzIGluY2x1ZGVzIEFSSUFNaXhpbjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
IFBBU1MgV2luZG93IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJH
bG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV2luZG93IGluY2x1ZGVz
IEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdp
bmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKLVBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3Jr
ZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGlu
Y2x1ZGVzIE5hdmlnYXRvcklEOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0
b3IgaW5jbHVkZXMgTmF2aWdhdG9yTGFuZ3VhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCkBA
IC0xNDAsNiArMTMyLDcgQEAgUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29udGVu
dFV0aWxzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMg
TmF2aWdhdG9yQ29va2llczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9y
IGluY2x1ZGVzIE5hdmlnYXRvclBsdWdpbnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNT
IE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCitQQVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3Zp
ZGVyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZSBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBXb3JrZXIgaW5jbHVkZXMgQWJzdHJhY3RXb3JrZXI6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFNoYXJlZFdvcmtlciBpbmNsdWRlcyBBYnN0cmFjdFdvcmtlcjogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAgLTE0NywxNSArMTQwLDIyIEBAIFBBU1MgV29ya2VyTmF2
aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvcklEOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBXb3JrZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yTGFuZ3VhZ2U6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlck5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JPbkxp
bmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlck5hdmlnYXRvciBpbmNsdWRl
cyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQ
QVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKK1BBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEZyYW1lU2V0RWxlbWVudCBpbmNsdWRlcyBXaW5k
b3dFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGlu
Y2x1ZGVzIEFSSUFNaXhpbjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQg
aW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQ
QVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50T3JTaGFk
b3dSb290OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBTaGFkb3dSb290IGluY2x1ZGVz
IERvY3VtZW50T3JTaGFkb3dSb290OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1
bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBE
b2N1bWVudEZyYWdtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGU6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGROb2RlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0YWJsZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBO
b25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1l
bnRGcmFnbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQot
UEFTUyBTaGFkb3dSb290IGluY2x1ZGVzIERvY3VtZW50T3JTaGFkb3dSb290OiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEVsZW1l
bnRDU1NJbmxpbmVTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEFsbENv
bGxlY3Rpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdAogUEFTUyBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbiBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIFJhZGlvTm9kZUxp
c3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dApAQCAtNzk0LDE0ICs3OTQsNCBAQCBQQVNTIEhUTUxGcmFtZUVsZW1lbnQgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBIVE1MRGly
ZWN0b3J5RWxlbWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0CiBQQVNTIEhUTUxGb250RWxlbWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIEV4dGVybmFsIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKLVBBU1MgTm9k
ZUxpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdAotUEFTUyBIVE1MQ29sbGVjdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIE5vZGUgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAotUEFTUyBEb2N1bWVudCBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIERv
Y3VtZW50RnJhZ21lbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIG9iamVjdAotUEFTUyBTaGFkb3dSb290IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKLVBBU1MgRWxlbWVudCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIERPTVRva2Vu
TGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0Ci1QQVNTIFVJRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdAotUEFTUyBNb3VzZUV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL3Nh
ZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEvc3RydWN0dXJlZC1jbG9uaW5nLWVycm9yLXN0
YWNrLW9wdGlvbmFsLnN1Yi53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL3NhZmUtcGFzc2lu
Zy1vZi1zdHJ1Y3R1cmVkLWRhdGEvc3RydWN0dXJlZC1jbG9uaW5nLWVycm9yLXN0YWNrLW9wdGlv
bmFsLnN1Yi53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IDJjNzJkNWI5YjFlZjRjYTgxM2UzOThi
NWQ5ZWM0YmE5ZTE3NjgzMWUuLmEyOTg3MmQzYjUwNjI3MzU1ZWJmMzk2YzUzZTkyMGE2OGFlOGY4
NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9pbmZyYXN0cnVjdHVyZS9zYWZlLXBhc3Npbmctb2Ytc3RydWN0dXJlZC1kYXRhL3N0
cnVjdHVyZWQtY2xvbmluZy1lcnJvci1zdGFjay1vcHRpb25hbC5zdWIud2luZG93LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9zdHJ1Y3R1
cmVkLWNsb25pbmctZXJyb3Itc3RhY2stb3B0aW9uYWwuc3ViLndpbmRvdy1leHBlY3RlZC50eHQK
QEAgLTEzLDYgKzEzLDYgQEAgRkFJTCBKUy1lbmdpbmUtY3JlYXRlZCBUeXBlRXJyb3IgKHdvcmtl
cikgVGhlIG9iamVjdCBjYW4gbm90IGJlIGNsb25lZC4KIEZBSUwgSlMtZW5naW5lLWNyZWF0ZWQg
VHlwZUVycm9yIChjcm9zcy1zaXRlIGlmcmFtZSkgVGhlIG9iamVjdCBjYW4gbm90IGJlIGNsb25l
ZC4KIEZBSUwgd2ViIEFQSS1jcmVhdGVkIFR5cGVFcnJvciAod29ya2VyKSBUaGUgb2JqZWN0IGNh
biBub3QgYmUgY2xvbmVkLgogRkFJTCB3ZWIgQVBJLWNyZWF0ZWQgVHlwZUVycm9yIChjcm9zcy1z
aXRlIGlmcmFtZSkgVGhlIG9iamVjdCBjYW4gbm90IGJlIGNsb25lZC4KLUZBSUwgd2ViIEFQSS1j
cmVhdGVkIERPTUV4Y2VwdGlvbiAod29ya2VyKSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3Ry
aW5nKSAiY3JlYXRlRWxlbWVudEBbbmF0aXZlIGNvZGVdXG5AaHR0cDovL2xvY2FsaG9zdDo4ODAw
L2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9zdHJ1
Y3R1cmVkLWNsb25pbmctZXJyb3Itc3RhY2stb3B0aW9uYWwuc3ViLndpbmRvdy5qczozMzoyN1xu
QGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9odG1sL2luZnJhc3RydWN0dXJlL3NhZmUtcGFzc2luZy1v
Zi1zdHJ1Y3R1cmVkLWRhdGEvc3RydWN0dXJlZC1jbG9uaW5nLWVycm9yLXN0YWNrLW9wdGlvbmFs
LnN1Yi53aW5kb3cuanM6NDE6MzFcbkBodHRwOi8vbG9jYWxob3N0Ojg4MDAvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzOjIwNDQ6MzBcbmFzeW5jX3Rlc3RAaHR0cDovL2xvY2FsaG9zdDo4ODAwL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qczo2MDk6MzhcbnN0YWNrVGVzdHNAaHR0cDovL2xvY2FsaG9z
dDo4ODAwL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0
YS9zdHJ1Y3R1cmVkLWNsb25pbmctZXJyb3Itc3RhY2stb3B0aW9uYWwuc3ViLndpbmRvdy5qczo0
MDoxM1xuZ2xvYmFsIGNvZGVAaHR0cDovL2xvY2FsaG9zdDo4ODAwL2h0bWwvaW5mcmFzdHJ1Y3R1
cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9zdHJ1Y3R1cmVkLWNsb25pbmctZXJy
b3Itc3RhY2stb3B0aW9uYWwuc3ViLndpbmRvdy5qczozMToxMSIgYnV0IGdvdCAodW5kZWZpbmVk
KSB1bmRlZmluZWQKK0ZBSUwgd2ViIEFQSS1jcmVhdGVkIERPTUV4Y2VwdGlvbiAod29ya2VyKSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAiY3JlYXRlRWxlbWVudEBbbmF0aXZlIGNv
ZGVdXG5AaHR0cDovL2xvY2FsaG9zdDo4ODAwL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNz
aW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9zdHJ1Y3R1cmVkLWNsb25pbmctZXJyb3Itc3RhY2stb3B0
aW9uYWwuc3ViLndpbmRvdy5qczozMzoyN1xuQGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9odG1sL2lu
ZnJhc3RydWN0dXJlL3NhZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEvc3RydWN0dXJlZC1j
bG9uaW5nLWVycm9yLXN0YWNrLW9wdGlvbmFsLnN1Yi53aW5kb3cuanM6NDE6MzFcbkBodHRwOi8v
bG9jYWxob3N0Ojg4MDAvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzOjIwODc6MzBcbmFzeW5jX3Rl
c3RAaHR0cDovL2xvY2FsaG9zdDo4ODAwL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qczo1OTQ6Mzhc
bnN0YWNrVGVzdHNAaHR0cDovL2xvY2FsaG9zdDo4ODAwL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2Fm
ZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9zdHJ1Y3R1cmVkLWNsb25pbmctZXJyb3Itc3Rh
Y2stb3B0aW9uYWwuc3ViLndpbmRvdy5qczo0MDoxM1xuZ2xvYmFsIGNvZGVAaHR0cDovL2xvY2Fs
aG9zdDo4ODAwL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQt
ZGF0YS9zdHJ1Y3R1cmVkLWNsb25pbmctZXJyb3Itc3RhY2stb3B0aW9uYWwuc3ViLndpbmRvdy5q
czozMToxMSIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKIFRJTUVPVVQgd2ViIEFQSS1j
cmVhdGVkIERPTUV4Y2VwdGlvbiAoY3Jvc3Mtc2l0ZSBpZnJhbWUpIFRlc3QgdGltZWQgb3V0CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW50ZXJmYWNlcy9ET00tUGFyc2luZy5pZGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvRE9NLVBhcnNpbmcuaWRsCmluZGV4IDk5NzEyNjI5
MjIwODMwMDBiOTQ0ZTBkZTAzMjE2M2NlNzc4MTIwNDEuLmQwZDg0YWI2OTcyZjAyYWUxMWYyZTNh
ODUwNzQ5MDY0ZDYzZmEyOTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9ET00tUGFyc2luZy5pZGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL0RPTS1QYXJz
aW5nLmlkbApAQCAtMTgsNyArMTgsNyBAQCBTaGFkb3dSb290IGluY2x1ZGVzIElubmVySFRNTDsK
IAogcGFydGlhbCBpbnRlcmZhY2UgRWxlbWVudCB7CiAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gRE9NU3RyaW5nIG91dGVySFRNTDsKLSAgW0NFUmVh
Y3Rpb25zXSB2b2lkIGluc2VydEFkamFjZW50SFRNTChET01TdHJpbmcgcG9zaXRpb24sIERPTVN0
cmluZyB0ZXh0KTsKKyAgW0NFUmVhY3Rpb25zXSB1bmRlZmluZWQgaW5zZXJ0QWRqYWNlbnRIVE1M
KERPTVN0cmluZyBwb3NpdGlvbiwgRE9NU3RyaW5nIHRleHQpOwogfTsKIAogcGFydGlhbCBpbnRl
cmZhY2UgUmFuZ2UgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL1NWRy5pZGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvU1ZHLmlkbAppbmRleCBmOGQyNGM5YzY2
NjM2ZDQxMWYzMWNkMmY3ODBiNzc0YWM2MzY2MzlkLi4xMWE1YzdjMjk5Y2QzYjhjNDE4YmJiNWRj
YWQ2N2IxMjkyMzgyOGNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvU1ZHLmlkbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvU1ZHLmlkbApAQCAtMjQsNiAr
MjQsNyBAQCBkaWN0aW9uYXJ5IFNWR0JvdW5kaW5nQm94T3B0aW9ucyB7CiAgIGJvb2xlYW4gY2xp
cHBlZCA9IGZhbHNlOwogfTsKIAorW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIFNWR0dyYXBo
aWNzRWxlbWVudCA6IFNWR0VsZW1lbnQgewogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmli
dXRlIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdCB0cmFuc2Zvcm07CiAKQEAgLTcwLDggKzcxLDgg
QEAgaW50ZXJmYWNlIFNWR0xlbmd0aCB7CiAgICAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB2YWx1
ZUluU3BlY2lmaWVkVW5pdHM7CiAgICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsdWVB
c1N0cmluZzsKIAotICB2b2lkIG5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5zaWduZWQgc2hvcnQg
dW5pdFR5cGUsIGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7Ci0gIHZvaWQgY29udmVydFRv
U3BlY2lmaWVkVW5pdHModW5zaWduZWQgc2hvcnQgdW5pdFR5cGUpOworICB1bmRlZmluZWQgbmV3
VmFsdWVTcGVjaWZpZWRVbml0cyh1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSwgZmxvYXQgdmFsdWVJ
blNwZWNpZmllZFVuaXRzKTsKKyAgdW5kZWZpbmVkIGNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKHVu
c2lnbmVkIHNob3J0IHVuaXRUeXBlKTsKIH07CiAKIFtFeHBvc2VkPVdpbmRvd10KQEAgLTg5LDgg
KzkwLDggQEAgaW50ZXJmYWNlIFNWR0FuZ2xlIHsKICAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0
IHZhbHVlSW5TcGVjaWZpZWRVbml0czsKICAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyB2
YWx1ZUFzU3RyaW5nOwogCi0gIHZvaWQgbmV3VmFsdWVTcGVjaWZpZWRVbml0cyh1bnNpZ25lZCBz
aG9ydCB1bml0VHlwZSwgZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKLSAgdm9pZCBjb252
ZXJ0VG9TcGVjaWZpZWRVbml0cyh1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSk7CisgIHVuZGVmaW5l
ZCBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBmbG9hdCB2
YWx1ZUluU3BlY2lmaWVkVW5pdHMpOworICB1bmRlZmluZWQgY29udmVydFRvU3BlY2lmaWVkVW5p
dHModW5zaWduZWQgc2hvcnQgdW5pdFR5cGUpOwogfTsKIAogW0V4cG9zZWQ9V2luZG93XQpAQCAt
OTksMTQgKzEwMCwxNCBAQCBpbnRlcmZhY2UgU1ZHTnVtYmVyTGlzdCB7CiAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgbnVtYmVyT2ZJdGVtczsKIAotICB2b2lkIGNsZWFyKCk7CisgIHVuZGVmaW5lZCBj
bGVhcigpOwogICBTVkdOdW1iZXIgaW5pdGlhbGl6ZShTVkdOdW1iZXIgbmV3SXRlbSk7CiAgIGdl
dHRlciBTVkdOdW1iZXIgZ2V0SXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgU1ZHTnVtYmVy
IGluc2VydEl0ZW1CZWZvcmUoU1ZHTnVtYmVyIG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgp
OwogICBTVkdOdW1iZXIgcmVwbGFjZUl0ZW0oU1ZHTnVtYmVyIG5ld0l0ZW0sIHVuc2lnbmVkIGxv
bmcgaW5kZXgpOwogICBTVkdOdW1iZXIgcmVtb3ZlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsK
ICAgU1ZHTnVtYmVyIGFwcGVuZEl0ZW0oU1ZHTnVtYmVyIG5ld0l0ZW0pOwotICBzZXR0ZXIgdm9p
ZCAodW5zaWduZWQgbG9uZyBpbmRleCwgU1ZHTnVtYmVyIG5ld0l0ZW0pOworICBzZXR0ZXIgdW5k
ZWZpbmVkICh1bnNpZ25lZCBsb25nIGluZGV4LCBTVkdOdW1iZXIgbmV3SXRlbSk7CiB9OwogCiBb
RXhwb3NlZD1XaW5kb3ddCkBAIC0xMTUsMTQgKzExNiwxNCBAQCBpbnRlcmZhY2UgU1ZHTGVuZ3Ro
TGlzdCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJdGVtczsKIAotICB2b2lkIGNs
ZWFyKCk7CisgIHVuZGVmaW5lZCBjbGVhcigpOwogICBTVkdMZW5ndGggaW5pdGlhbGl6ZShTVkdM
ZW5ndGggbmV3SXRlbSk7CiAgIGdldHRlciBTVkdMZW5ndGggZ2V0SXRlbSh1bnNpZ25lZCBsb25n
IGluZGV4KTsKICAgU1ZHTGVuZ3RoIGluc2VydEl0ZW1CZWZvcmUoU1ZHTGVuZ3RoIG5ld0l0ZW0s
IHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICBTVkdMZW5ndGggcmVwbGFjZUl0ZW0oU1ZHTGVuZ3Ro
IG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICBTVkdMZW5ndGggcmVtb3ZlSXRlbSh1
bnNpZ25lZCBsb25nIGluZGV4KTsKICAgU1ZHTGVuZ3RoIGFwcGVuZEl0ZW0oU1ZHTGVuZ3RoIG5l
d0l0ZW0pOwotICBzZXR0ZXIgdm9pZCAodW5zaWduZWQgbG9uZyBpbmRleCwgU1ZHTGVuZ3RoIG5l
d0l0ZW0pOworICBzZXR0ZXIgdW5kZWZpbmVkICh1bnNpZ25lZCBsb25nIGluZGV4LCBTVkdMZW5n
dGggbmV3SXRlbSk7CiB9OwogCiBbRXhwb3NlZD1XaW5kb3ddCkBAIC0xMzEsMTQgKzEzMiwxNCBA
QCBpbnRlcmZhY2UgU1ZHU3RyaW5nTGlzdCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBsb25nIGxlbmd0aDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVy
T2ZJdGVtczsKIAotICB2b2lkIGNsZWFyKCk7CisgIHVuZGVmaW5lZCBjbGVhcigpOwogICBET01T
dHJpbmcgaW5pdGlhbGl6ZShET01TdHJpbmcgbmV3SXRlbSk7CiAgIGdldHRlciBET01TdHJpbmcg
Z2V0SXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgRE9NU3RyaW5nIGluc2VydEl0ZW1CZWZv
cmUoRE9NU3RyaW5nIG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICBET01TdHJpbmcg
cmVwbGFjZUl0ZW0oRE9NU3RyaW5nIG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICBE
T01TdHJpbmcgcmVtb3ZlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgRE9NU3RyaW5nIGFw
cGVuZEl0ZW0oRE9NU3RyaW5nIG5ld0l0ZW0pOwotICBzZXR0ZXIgdm9pZCAodW5zaWduZWQgbG9u
ZyBpbmRleCwgRE9NU3RyaW5nIG5ld0l0ZW0pOworICBzZXR0ZXIgdW5kZWZpbmVkICh1bnNpZ25l
ZCBsb25nIGluZGV4LCBET01TdHJpbmcgbmV3SXRlbSk7CiB9OwogCiBbRXhwb3NlZD1XaW5kb3dd
CkBAIC0yNDMsNyArMjQ0LDcgQEAgaW50ZXJmYWNlIFNWR1NWR0VsZW1lbnQgOiBTVkdHcmFwaGlj
c0VsZW1lbnQgewogICBib29sZWFuIGNoZWNrSW50ZXJzZWN0aW9uKFNWR0VsZW1lbnQgZWxlbWVu
dCwgRE9NUmVjdFJlYWRPbmx5IHJlY3QpOwogICBib29sZWFuIGNoZWNrRW5jbG9zdXJlKFNWR0Vs
ZW1lbnQgZWxlbWVudCwgRE9NUmVjdFJlYWRPbmx5IHJlY3QpOwogCi0gIHZvaWQgZGVzZWxlY3RB
bGwoKTsKKyAgdW5kZWZpbmVkIGRlc2VsZWN0QWxsKCk7CiAKICAgU1ZHTnVtYmVyIGNyZWF0ZVNW
R051bWJlcigpOwogICBTVkdMZW5ndGggY3JlYXRlU1ZHTGVuZ3RoKCk7CkBAIC0yNTIsMTYgKzI1
MywxNiBAQCBpbnRlcmZhY2UgU1ZHU1ZHRWxlbWVudCA6IFNWR0dyYXBoaWNzRWxlbWVudCB7CiAg
IERPTU1hdHJpeCBjcmVhdGVTVkdNYXRyaXgoKTsKICAgRE9NUmVjdCBjcmVhdGVTVkdSZWN0KCk7
CiAgIFNWR1RyYW5zZm9ybSBjcmVhdGVTVkdUcmFuc2Zvcm0oKTsKLSAgU1ZHVHJhbnNmb3JtIGNy
ZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgob3B0aW9uYWwgRE9NTWF0cml4MkRJbml0IG1hdHJp
eCk7CisgIFNWR1RyYW5zZm9ybSBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KG9wdGlvbmFs
IERPTU1hdHJpeDJESW5pdCBtYXRyaXggPSB7fSk7CiAKICAgRWxlbWVudCBnZXRFbGVtZW50QnlJ
ZChET01TdHJpbmcgZWxlbWVudElkKTsKIAogICAvLyBEZXByZWNhdGVkIG1ldGhvZHMgdGhhdCBo
YXZlIG5vIGVmZmVjdCB3aGVuIGNhbGxlZCwKICAgLy8gYnV0IHdoaWNoIGFyZSBrZXB0IGZvciBj
b21wYXRpYmlsaXR5IHJlYXNvbnMuCiAgIHVuc2lnbmVkIGxvbmcgc3VzcGVuZFJlZHJhdyh1bnNp
Z25lZCBsb25nIG1heFdhaXRNaWxsaXNlY29uZHMpOwotICB2b2lkIHVuc3VzcGVuZFJlZHJhdyh1
bnNpZ25lZCBsb25nIHN1c3BlbmRIYW5kbGVJRCk7Ci0gIHZvaWQgdW5zdXNwZW5kUmVkcmF3QWxs
KCk7Ci0gIHZvaWQgZm9yY2VSZWRyYXcoKTsKKyAgdW5kZWZpbmVkIHVuc3VzcGVuZFJlZHJhdyh1
bnNpZ25lZCBsb25nIHN1c3BlbmRIYW5kbGVJRCk7CisgIHVuZGVmaW5lZCB1bnN1c3BlbmRSZWRy
YXdBbGwoKTsKKyAgdW5kZWZpbmVkIGZvcmNlUmVkcmF3KCk7CiB9OwogCiBTVkdTVkdFbGVtZW50
IGluY2x1ZGVzIFNWR0ZpdFRvVmlld0JveDsKQEAgLTMxNCw4ICszMTUsOSBAQCBpbnRlcmZhY2Ug
bWl4aW4gU1ZHRWxlbWVudEluc3RhbmNlIHsKICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBTVkdVc2VFbGVtZW50PyBjb3JyZXNwb25kaW5nVXNlRWxlbWVudDsKIH07CiAKLVtDb25z
dHJ1Y3RvcihBbmltYXRpb24gc291cmNlLCBBbmltYXRhYmxlIG5ld1RhcmdldCksIEV4cG9zZWQ9
V2luZG93XQorW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIFNoYWRvd0FuaW1hdGlvbiA6IEFu
aW1hdGlvbiB7CisgIGNvbnN0cnVjdG9yKEFuaW1hdGlvbiBzb3VyY2UsIChFbGVtZW50IG9yIENT
U1BzZXVkb0VsZW1lbnQpIG5ld1RhcmdldCk7CiAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRy
aWJ1dGUgQW5pbWF0aW9uIHNvdXJjZUFuaW1hdGlvbjsKIH07CiAKQEAgLTM1MiwxMiArMzU0LDEy
IEBAIGludGVyZmFjZSBTVkdUcmFuc2Zvcm0gewogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0
cmlidXRlIERPTU1hdHJpeCBtYXRyaXg7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBhbmds
ZTsKIAotICB2b2lkIHNldE1hdHJpeChvcHRpb25hbCBET01NYXRyaXgyREluaXQgbWF0cml4KTsK
LSAgdm9pZCBzZXRUcmFuc2xhdGUoZmxvYXQgdHgsIGZsb2F0IHR5KTsKLSAgdm9pZCBzZXRTY2Fs
ZShmbG9hdCBzeCwgZmxvYXQgc3kpOwotICB2b2lkIHNldFJvdGF0ZShmbG9hdCBhbmdsZSwgZmxv
YXQgY3gsIGZsb2F0IGN5KTsKLSAgdm9pZCBzZXRTa2V3WChmbG9hdCBhbmdsZSk7Ci0gIHZvaWQg
c2V0U2tld1koZmxvYXQgYW5nbGUpOworICB1bmRlZmluZWQgc2V0TWF0cml4KG9wdGlvbmFsIERP
TU1hdHJpeDJESW5pdCBtYXRyaXggPSB7fSk7CisgIHVuZGVmaW5lZCBzZXRUcmFuc2xhdGUoZmxv
YXQgdHgsIGZsb2F0IHR5KTsKKyAgdW5kZWZpbmVkIHNldFNjYWxlKGZsb2F0IHN4LCBmbG9hdCBz
eSk7CisgIHVuZGVmaW5lZCBzZXRSb3RhdGUoZmxvYXQgYW5nbGUsIGZsb2F0IGN4LCBmbG9hdCBj
eSk7CisgIHVuZGVmaW5lZCBzZXRTa2V3WChmbG9hdCBhbmdsZSk7CisgIHVuZGVmaW5lZCBzZXRT
a2V3WShmbG9hdCBhbmdsZSk7CiB9OwogCiBbRXhwb3NlZD1XaW5kb3ddCkBAIC0zNjYsMTcgKzM2
OCwxNyBAQCBpbnRlcmZhY2UgU1ZHVHJhbnNmb3JtTGlzdCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgbnVtYmVyT2ZJdGVtczsKIAotICB2b2lkIGNsZWFyKCk7CisgIHVuZGVmaW5lZCBjbGVhcigp
OwogICBTVkdUcmFuc2Zvcm0gaW5pdGlhbGl6ZShTVkdUcmFuc2Zvcm0gbmV3SXRlbSk7CiAgIGdl
dHRlciBTVkdUcmFuc2Zvcm0gZ2V0SXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgU1ZHVHJh
bnNmb3JtIGluc2VydEl0ZW1CZWZvcmUoU1ZHVHJhbnNmb3JtIG5ld0l0ZW0sIHVuc2lnbmVkIGxv
bmcgaW5kZXgpOwogICBTVkdUcmFuc2Zvcm0gcmVwbGFjZUl0ZW0oU1ZHVHJhbnNmb3JtIG5ld0l0
ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICBTVkdUcmFuc2Zvcm0gcmVtb3ZlSXRlbSh1bnNp
Z25lZCBsb25nIGluZGV4KTsKICAgU1ZHVHJhbnNmb3JtIGFwcGVuZEl0ZW0oU1ZHVHJhbnNmb3Jt
IG5ld0l0ZW0pOwotICBzZXR0ZXIgdm9pZCAodW5zaWduZWQgbG9uZyBpbmRleCwgU1ZHVHJhbnNm
b3JtIG5ld0l0ZW0pOworICBzZXR0ZXIgdW5kZWZpbmVkICh1bnNpZ25lZCBsb25nIGluZGV4LCBT
VkdUcmFuc2Zvcm0gbmV3SXRlbSk7CiAKICAgLy8gQWRkaXRpb25hbCBtZXRob2RzIG5vdCBjb21t
b24gdG8gb3RoZXIgbGlzdCBpbnRlcmZhY2VzLgotICBTVkdUcmFuc2Zvcm0gY3JlYXRlU1ZHVHJh
bnNmb3JtRnJvbU1hdHJpeChvcHRpb25hbCBET01NYXRyaXgyREluaXQgbWF0cml4KTsKKyAgU1ZH
VHJhbnNmb3JtIGNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgob3B0aW9uYWwgRE9NTWF0cml4
MkRJbml0IG1hdHJpeCA9IHt9KTsKICAgU1ZHVHJhbnNmb3JtPyBjb25zb2xpZGF0ZSgpOwogfTsK
IApAQCAtNDY1LDE0ICs0NjcsMTQgQEAgaW50ZXJmYWNlIFNWR1BvaW50TGlzdCB7CiAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJdGVtczsKIAotICB2b2lkIGNsZWFyKCk7CisgIHVuZGVm
aW5lZCBjbGVhcigpOwogICBET01Qb2ludCBpbml0aWFsaXplKERPTVBvaW50IG5ld0l0ZW0pOwog
ICBnZXR0ZXIgRE9NUG9pbnQgZ2V0SXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgRE9NUG9p
bnQgaW5zZXJ0SXRlbUJlZm9yZShET01Qb2ludCBuZXdJdGVtLCB1bnNpZ25lZCBsb25nIGluZGV4
KTsKICAgRE9NUG9pbnQgcmVwbGFjZUl0ZW0oRE9NUG9pbnQgbmV3SXRlbSwgdW5zaWduZWQgbG9u
ZyBpbmRleCk7CiAgIERPTVBvaW50IHJlbW92ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CiAg
IERPTVBvaW50IGFwcGVuZEl0ZW0oRE9NUG9pbnQgbmV3SXRlbSk7Ci0gIHNldHRlciB2b2lkICh1
bnNpZ25lZCBsb25nIGluZGV4LCBET01Qb2ludCBuZXdJdGVtKTsKKyAgc2V0dGVyIHVuZGVmaW5l
ZCAodW5zaWduZWQgbG9uZyBpbmRleCwgRE9NUG9pbnQgbmV3SXRlbSk7CiB9OwogCiBbRXhwb3Nl
ZD1XaW5kb3ddCkBAIC01MDYsNyArNTA4LDcgQEAgaW50ZXJmYWNlIFNWR1RleHRDb250ZW50RWxl
bWVudCA6IFNWR0dyYXBoaWNzRWxlbWVudCB7CiAgIERPTVJlY3QgZ2V0RXh0ZW50T2ZDaGFyKHVu
c2lnbmVkIGxvbmcgY2hhcm51bSk7CiAgIGZsb2F0IGdldFJvdGF0aW9uT2ZDaGFyKHVuc2lnbmVk
IGxvbmcgY2hhcm51bSk7CiAgIGxvbmcgZ2V0Q2hhck51bUF0UG9zaXRpb24ob3B0aW9uYWwgRE9N
UG9pbnRJbml0IHBvaW50ID0ge30pOwotICB2b2lkIHNlbGVjdFN1YlN0cmluZyh1bnNpZ25lZCBs
b25nIGNoYXJudW0sIHVuc2lnbmVkIGxvbmcgbmNoYXJzKTsKKyAgdW5kZWZpbmVkIHNlbGVjdFN1
YlN0cmluZyh1bnNpZ25lZCBsb25nIGNoYXJudW0sIHVuc2lnbmVkIGxvbmcgbmNoYXJzKTsKIH07
CiAKIFtFeHBvc2VkPVdpbmRvd10KQEAgLTU4OCw4ICs1OTAsOCBAQCBpbnRlcmZhY2UgU1ZHTWFy
a2VyRWxlbWVudCA6IFNWR0VsZW1lbnQgewogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmli
dXRlIFNWR0FuaW1hdGVkQW5nbGUgb3JpZW50QW5nbGU7CiAgIGF0dHJpYnV0ZSBET01TdHJpbmcg
b3JpZW50OwogCi0gIHZvaWQgc2V0T3JpZW50VG9BdXRvKCk7Ci0gIHZvaWQgc2V0T3JpZW50VG9B
bmdsZShTVkdBbmdsZSBhbmdsZSk7CisgIHVuZGVmaW5lZCBzZXRPcmllbnRUb0F1dG8oKTsKKyAg
dW5kZWZpbmVkIHNldE9yaWVudFRvQW5nbGUoU1ZHQW5nbGUgYW5nbGUpOwogfTsKIAogU1ZHTWFy
a2VyRWxlbWVudCBpbmNsdWRlcyBTVkdGaXRUb1ZpZXdCb3g7CkBAIC02NzEsNyArNjczLDIwIEBA
IGludGVyZmFjZSBTVkdBRWxlbWVudCA6IFNWR0dyYXBoaWNzRWxlbWVudCB7CiB9OwogCiBTVkdB
RWxlbWVudCBpbmNsdWRlcyBTVkdVUklSZWZlcmVuY2U7Ci1TVkdBRWxlbWVudCBpbmNsdWRlcyBI
VE1MSHlwZXJsaW5rRWxlbWVudFV0aWxzOworCisvLyBJbmxpbmUgSFRNTEh5cGVybGlua0VsZW1l
bnRVdGlscyBleGNlcHQgaHJlZiwgd2hpY2ggY29uZmxpY3RzLgorcGFydGlhbCBpbnRlcmZhY2Ug
U1ZHQUVsZW1lbnQgeworICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIG9yaWdpbjsKKyAg
W0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgVVNWU3RyaW5nIHByb3RvY29sOworICBbQ0VSZWFjdGlv
bnNdIGF0dHJpYnV0ZSBVU1ZTdHJpbmcgdXNlcm5hbWU7CisgIFtDRVJlYWN0aW9uc10gYXR0cmli
dXRlIFVTVlN0cmluZyBwYXNzd29yZDsKKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgVVNWU3Ry
aW5nIGhvc3Q7CisgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFVTVlN0cmluZyBob3N0bmFtZTsK
KyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgVVNWU3RyaW5nIHBvcnQ7CisgIFtDRVJlYWN0aW9u
c10gYXR0cmlidXRlIFVTVlN0cmluZyBwYXRobmFtZTsKKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1
dGUgVVNWU3RyaW5nIHNlYXJjaDsKKyAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgVVNWU3RyaW5n
IGhhc2g7Cit9OwogCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgU1ZHVmlld0VsZW1lbnQg
OiBTVkdFbGVtZW50IHt9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC5pZGwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvY3Jl
ZGVudGlhbC1tYW5hZ2VtZW50LmlkbAppbmRleCBhMmIwNjJhN2ZmZDg2NGMzMmU0M2YxNjFhNDBm
ZGNmYjA1OGU5YmRhLi5hMDdhYTBiNDQ0N2NkMzExOWRjNWJkMjJjNWMzZDE2Njc5ZTNhZmU1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lu
dGVyZmFjZXMvY3JlZGVudGlhbC1tYW5hZ2VtZW50LmlkbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvY3JlZGVudGlhbC1tYW5hZ2Vt
ZW50LmlkbApAQCAtMjQsNyArMjQsNyBAQCBpbnRlcmZhY2UgQ3JlZGVudGlhbHNDb250YWluZXIg
ewogICBQcm9taXNlPENyZWRlbnRpYWw/PiBnZXQob3B0aW9uYWwgQ3JlZGVudGlhbFJlcXVlc3RP
cHRpb25zIG9wdGlvbnMgPSB7fSk7CiAgIFByb21pc2U8Q3JlZGVudGlhbD4gc3RvcmUoQ3JlZGVu
dGlhbCBjcmVkZW50aWFsKTsKICAgUHJvbWlzZTxDcmVkZW50aWFsPz4gY3JlYXRlKG9wdGlvbmFs
IENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucyA9IHt9KTsKLSAgUHJvbWlzZTx2b2lk
PiBwcmV2ZW50U2lsZW50QWNjZXNzKCk7CisgIFByb21pc2U8dW5kZWZpbmVkPiBwcmV2ZW50U2ls
ZW50QWNjZXNzKCk7CiB9OwogCiBkaWN0aW9uYXJ5IENyZWRlbnRpYWxEYXRhIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNl
cy9tZWRpYXNlc3Npb24uaWRsIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbnRlcmZhY2VzL21lZGlhc2Vzc2lvbi5pZGwKaW5kZXggYzJiMmUwNTg5ZTFjMjE3
YTJlMTA4ZjhiMTJjMjVhZTJmMmFkMzk5OC4uNGNlYzM1NGM5ZDFlYzgwZDIwYjFmNTA2YmFhOTQ0
NDczMzBjOGJiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL21lZGlhc2Vzc2lvbi5pZGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL21lZGlhc2Vzc2lvbi5p
ZGwKQEAgLTIzLDEwICsyMywxMyBAQCBlbnVtIE1lZGlhU2Vzc2lvbkFjdGlvbiB7CiAgICJuZXh0
dHJhY2siLAogICAic2tpcGFkIiwKICAgInN0b3AiLAotICAic2Vla3RvIgorICAic2Vla3RvIiwK
KyAgInRvZ2dsZW1pY3JvcGhvbmUiLAorICAidG9nZ2xlY2FtZXJhIiwKKyAgImhhbmd1cCIKIH07
CiAKLWNhbGxiYWNrIE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIgPSB2b2lkKE1lZGlhU2Vzc2lv
bkFjdGlvbkRldGFpbHMgZGV0YWlscyk7CitjYWxsYmFjayBNZWRpYVNlc3Npb25BY3Rpb25IYW5k
bGVyID0gdW5kZWZpbmVkKE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMgZGV0YWlscyk7CiAKIFtF
eHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBNZWRpYVNlc3Npb24gewpAQCAtMzQsOSArMzcsMTMg
QEAgaW50ZXJmYWNlIE1lZGlhU2Vzc2lvbiB7CiAKICAgYXR0cmlidXRlIE1lZGlhU2Vzc2lvblBs
YXliYWNrU3RhdGUgcGxheWJhY2tTdGF0ZTsKIAotICB2b2lkIHNldEFjdGlvbkhhbmRsZXIoTWVk
aWFTZXNzaW9uQWN0aW9uIGFjdGlvbiwgTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlcj8gaGFuZGxl
cik7CisgIHVuZGVmaW5lZCBzZXRBY3Rpb25IYW5kbGVyKE1lZGlhU2Vzc2lvbkFjdGlvbiBhY3Rp
b24sIE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI/IGhhbmRsZXIpOwogCi0gIHZvaWQgc2V0UG9z
aXRpb25TdGF0ZShvcHRpb25hbCBNZWRpYVBvc2l0aW9uU3RhdGUgc3RhdGUgPSB7fSk7CisgIHVu
ZGVmaW5lZCBzZXRQb3NpdGlvblN0YXRlKG9wdGlvbmFsIE1lZGlhUG9zaXRpb25TdGF0ZSBzdGF0
ZSA9IHt9KTsKKworICB1bmRlZmluZWQgc2V0TWljcm9waG9uZUFjdGl2ZShib29sZWFuIGFjdGl2
ZSk7CisKKyAgdW5kZWZpbmVkIHNldENhbWVyYUFjdGl2ZShib29sZWFuIGFjdGl2ZSk7CiB9Owog
CiBbRXhwb3NlZD1XaW5kb3ddCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvd2ViZ2wxLmlkbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy93ZWJnbDEuaWRsCmluZGV4
IDk1YTBmYTM0MjY1MmQ1ZWQ3NmFkNTY3ZjJhNTQzN2I3Yzg4OGY3ZTAuLmNkOWVhYTE5YmM0OWJm
YmE2OTk2ZjMyYWI2MWZmZjc0NGFkMTdmM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy93ZWJnbDEuaWRsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy93ZWJn
bDEuaWRsCkBAIC01MjMsMzMgKzUyMywzMyBAQCBpbnRlcmZhY2UgbWl4aW4gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZQogICAgIHNlcXVlbmNlPERPTVN0cmluZz4/IGdldFN1cHBvcnRlZEV4dGVu
c2lvbnMoKTsKICAgICBvYmplY3Q/IGdldEV4dGVuc2lvbihET01TdHJpbmcgbmFtZSk7CiAKLSAg
ICB2b2lkIGFjdGl2ZVRleHR1cmUoR0xlbnVtIHRleHR1cmUpOwotICAgIHZvaWQgYXR0YWNoU2hh
ZGVyKFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBXZWJHTFNoYWRlciBzaGFkZXIpOwotICAgIHZvaWQg
YmluZEF0dHJpYkxvY2F0aW9uKFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBHTHVpbnQgaW5kZXgsIERP
TVN0cmluZyBuYW1lKTsKLSAgICB2b2lkIGJpbmRCdWZmZXIoR0xlbnVtIHRhcmdldCwgV2ViR0xC
dWZmZXI/IGJ1ZmZlcik7Ci0gICAgdm9pZCBiaW5kRnJhbWVidWZmZXIoR0xlbnVtIHRhcmdldCwg
V2ViR0xGcmFtZWJ1ZmZlcj8gZnJhbWVidWZmZXIpOwotICAgIHZvaWQgYmluZFJlbmRlcmJ1ZmZl
cihHTGVudW0gdGFyZ2V0LCBXZWJHTFJlbmRlcmJ1ZmZlcj8gcmVuZGVyYnVmZmVyKTsKLSAgICB2
b2lkIGJpbmRUZXh0dXJlKEdMZW51bSB0YXJnZXQsIFdlYkdMVGV4dHVyZT8gdGV4dHVyZSk7Ci0g
ICAgdm9pZCBibGVuZENvbG9yKEdMY2xhbXBmIHJlZCwgR0xjbGFtcGYgZ3JlZW4sIEdMY2xhbXBm
IGJsdWUsIEdMY2xhbXBmIGFscGhhKTsKLSAgICB2b2lkIGJsZW5kRXF1YXRpb24oR0xlbnVtIG1v
ZGUpOwotICAgIHZvaWQgYmxlbmRFcXVhdGlvblNlcGFyYXRlKEdMZW51bSBtb2RlUkdCLCBHTGVu
dW0gbW9kZUFscGhhKTsKLSAgICB2b2lkIGJsZW5kRnVuYyhHTGVudW0gc2ZhY3RvciwgR0xlbnVt
IGRmYWN0b3IpOwotICAgIHZvaWQgYmxlbmRGdW5jU2VwYXJhdGUoR0xlbnVtIHNyY1JHQiwgR0xl
bnVtIGRzdFJHQiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBzcmNBbHBoYSwg
R0xlbnVtIGRzdEFscGhhKTsKKyAgICB1bmRlZmluZWQgYWN0aXZlVGV4dHVyZShHTGVudW0gdGV4
dHVyZSk7CisgICAgdW5kZWZpbmVkIGF0dGFjaFNoYWRlcihXZWJHTFByb2dyYW0gcHJvZ3JhbSwg
V2ViR0xTaGFkZXIgc2hhZGVyKTsKKyAgICB1bmRlZmluZWQgYmluZEF0dHJpYkxvY2F0aW9uKFdl
YkdMUHJvZ3JhbSBwcm9ncmFtLCBHTHVpbnQgaW5kZXgsIERPTVN0cmluZyBuYW1lKTsKKyAgICB1
bmRlZmluZWQgYmluZEJ1ZmZlcihHTGVudW0gdGFyZ2V0LCBXZWJHTEJ1ZmZlcj8gYnVmZmVyKTsK
KyAgICB1bmRlZmluZWQgYmluZEZyYW1lYnVmZmVyKEdMZW51bSB0YXJnZXQsIFdlYkdMRnJhbWVi
dWZmZXI/IGZyYW1lYnVmZmVyKTsKKyAgICB1bmRlZmluZWQgYmluZFJlbmRlcmJ1ZmZlcihHTGVu
dW0gdGFyZ2V0LCBXZWJHTFJlbmRlcmJ1ZmZlcj8gcmVuZGVyYnVmZmVyKTsKKyAgICB1bmRlZmlu
ZWQgYmluZFRleHR1cmUoR0xlbnVtIHRhcmdldCwgV2ViR0xUZXh0dXJlPyB0ZXh0dXJlKTsKKyAg
ICB1bmRlZmluZWQgYmxlbmRDb2xvcihHTGNsYW1wZiByZWQsIEdMY2xhbXBmIGdyZWVuLCBHTGNs
YW1wZiBibHVlLCBHTGNsYW1wZiBhbHBoYSk7CisgICAgdW5kZWZpbmVkIGJsZW5kRXF1YXRpb24o
R0xlbnVtIG1vZGUpOworICAgIHVuZGVmaW5lZCBibGVuZEVxdWF0aW9uU2VwYXJhdGUoR0xlbnVt
IG1vZGVSR0IsIEdMZW51bSBtb2RlQWxwaGEpOworICAgIHVuZGVmaW5lZCBibGVuZEZ1bmMoR0xl
bnVtIHNmYWN0b3IsIEdMZW51bSBkZmFjdG9yKTsKKyAgICB1bmRlZmluZWQgYmxlbmRGdW5jU2Vw
YXJhdGUoR0xlbnVtIHNyY1JHQiwgR0xlbnVtIGRzdFJHQiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0xlbnVtIHNyY0FscGhhLCBHTGVudW0gZHN0QWxwaGEpOwogCiAgICAgW1dl
YkdMSGFuZGxlc0NvbnRleHRMb3NzXSBHTGVudW0gY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhHTGVu
dW0gdGFyZ2V0KTsKLSAgICB2b2lkIGNsZWFyKEdMYml0ZmllbGQgbWFzayk7Ci0gICAgdm9pZCBj
bGVhckNvbG9yKEdMY2xhbXBmIHJlZCwgR0xjbGFtcGYgZ3JlZW4sIEdMY2xhbXBmIGJsdWUsIEdM
Y2xhbXBmIGFscGhhKTsKLSAgICB2b2lkIGNsZWFyRGVwdGgoR0xjbGFtcGYgZGVwdGgpOwotICAg
IHZvaWQgY2xlYXJTdGVuY2lsKEdMaW50IHMpOwotICAgIHZvaWQgY29sb3JNYXNrKEdMYm9vbGVh
biByZWQsIEdMYm9vbGVhbiBncmVlbiwgR0xib29sZWFuIGJsdWUsIEdMYm9vbGVhbiBhbHBoYSk7
Ci0gICAgdm9pZCBjb21waWxlU2hhZGVyKFdlYkdMU2hhZGVyIHNoYWRlcik7Ci0KLSAgICB2b2lk
IGNvcHlUZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJu
YWxmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICBHTGludCB4LCBHTGludCB5LCBHTHNp
emVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwKLSAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50
IGJvcmRlcik7Ci0gICAgdm9pZCBjb3B5VGV4U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGlu
dCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdMaW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0
KTsKKyAgICB1bmRlZmluZWQgY2xlYXIoR0xiaXRmaWVsZCBtYXNrKTsKKyAgICB1bmRlZmluZWQg
Y2xlYXJDb2xvcihHTGNsYW1wZiByZWQsIEdMY2xhbXBmIGdyZWVuLCBHTGNsYW1wZiBibHVlLCBH
TGNsYW1wZiBhbHBoYSk7CisgICAgdW5kZWZpbmVkIGNsZWFyRGVwdGgoR0xjbGFtcGYgZGVwdGgp
OworICAgIHVuZGVmaW5lZCBjbGVhclN0ZW5jaWwoR0xpbnQgcyk7CisgICAgdW5kZWZpbmVkIGNv
bG9yTWFzayhHTGJvb2xlYW4gcmVkLCBHTGJvb2xlYW4gZ3JlZW4sIEdMYm9vbGVhbiBibHVlLCBH
TGJvb2xlYW4gYWxwaGEpOworICAgIHVuZGVmaW5lZCBjb21waWxlU2hhZGVyKFdlYkdMU2hhZGVy
IHNoYWRlcik7CisKKyAgICB1bmRlZmluZWQgY29weVRleEltYWdlMkQoR0xlbnVtIHRhcmdldCwg
R0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbGZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IGJvcmRlcik7CisgICAgdW5kZWZp
bmVkIGNvcHlUZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4
b2Zmc2V0LCBHTGludCB5b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
TGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCk7CiAKICAgICBX
ZWJHTEJ1ZmZlcj8gY3JlYXRlQnVmZmVyKCk7CiAgICAgV2ViR0xGcmFtZWJ1ZmZlcj8gY3JlYXRl
RnJhbWVidWZmZXIoKTsKQEAgLTU1OCwzNiArNTU4LDM2IEBAIGludGVyZmFjZSBtaXhpbiBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlCiAgICAgV2ViR0xTaGFkZXI/IGNyZWF0ZVNoYWRlcihHTGVu
dW0gdHlwZSk7CiAgICAgV2ViR0xUZXh0dXJlPyBjcmVhdGVUZXh0dXJlKCk7CiAKLSAgICB2b2lk
IGN1bGxGYWNlKEdMZW51bSBtb2RlKTsKLQotICAgIHZvaWQgZGVsZXRlQnVmZmVyKFdlYkdMQnVm
ZmVyPyBidWZmZXIpOwotICAgIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xGcmFtZWJ1ZmZl
cj8gZnJhbWVidWZmZXIpOwotICAgIHZvaWQgZGVsZXRlUHJvZ3JhbShXZWJHTFByb2dyYW0/IHBy
b2dyYW0pOwotICAgIHZvaWQgZGVsZXRlUmVuZGVyYnVmZmVyKFdlYkdMUmVuZGVyYnVmZmVyPyBy
ZW5kZXJidWZmZXIpOwotICAgIHZvaWQgZGVsZXRlU2hhZGVyKFdlYkdMU2hhZGVyPyBzaGFkZXIp
OwotICAgIHZvaWQgZGVsZXRlVGV4dHVyZShXZWJHTFRleHR1cmU/IHRleHR1cmUpOwotCi0gICAg
dm9pZCBkZXB0aEZ1bmMoR0xlbnVtIGZ1bmMpOwotICAgIHZvaWQgZGVwdGhNYXNrKEdMYm9vbGVh
biBmbGFnKTsKLSAgICB2b2lkIGRlcHRoUmFuZ2UoR0xjbGFtcGYgek5lYXIsIEdMY2xhbXBmIHpG
YXIpOwotICAgIHZvaWQgZGV0YWNoU2hhZGVyKFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBXZWJHTFNo
YWRlciBzaGFkZXIpOwotICAgIHZvaWQgZGlzYWJsZShHTGVudW0gY2FwKTsKLSAgICB2b2lkIGRp
c2FibGVWZXJ0ZXhBdHRyaWJBcnJheShHTHVpbnQgaW5kZXgpOwotICAgIHZvaWQgZHJhd0FycmF5
cyhHTGVudW0gbW9kZSwgR0xpbnQgZmlyc3QsIEdMc2l6ZWkgY291bnQpOwotICAgIHZvaWQgZHJh
d0VsZW1lbnRzKEdMZW51bSBtb2RlLCBHTHNpemVpIGNvdW50LCBHTGVudW0gdHlwZSwgR0xpbnRw
dHIgb2Zmc2V0KTsKLQotICAgIHZvaWQgZW5hYmxlKEdMZW51bSBjYXApOwotICAgIHZvaWQgZW5h
YmxlVmVydGV4QXR0cmliQXJyYXkoR0x1aW50IGluZGV4KTsKLSAgICB2b2lkIGZpbmlzaCgpOwot
ICAgIHZvaWQgZmx1c2goKTsKLSAgICB2b2lkIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMZW51
bSB0YXJnZXQsIEdMZW51bSBhdHRhY2htZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR0xlbnVtIHJlbmRlcmJ1ZmZlcnRhcmdldCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdlYkdMUmVuZGVyYnVmZmVyPyByZW5kZXJidWZmZXIpOwotICAgIHZvaWQgZnJh
bWVidWZmZXJUZXh0dXJlMkQoR0xlbnVtIHRhcmdldCwgR0xlbnVtIGF0dGFjaG1lbnQsIEdMZW51
bSB0ZXh0YXJnZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJHTFRleHR1cmU/
IHRleHR1cmUsIEdMaW50IGxldmVsKTsKLSAgICB2b2lkIGZyb250RmFjZShHTGVudW0gbW9kZSk7
Ci0KLSAgICB2b2lkIGdlbmVyYXRlTWlwbWFwKEdMZW51bSB0YXJnZXQpOworICAgIHVuZGVmaW5l
ZCBjdWxsRmFjZShHTGVudW0gbW9kZSk7CisKKyAgICB1bmRlZmluZWQgZGVsZXRlQnVmZmVyKFdl
YkdMQnVmZmVyPyBidWZmZXIpOworICAgIHVuZGVmaW5lZCBkZWxldGVGcmFtZWJ1ZmZlcihXZWJH
TEZyYW1lYnVmZmVyPyBmcmFtZWJ1ZmZlcik7CisgICAgdW5kZWZpbmVkIGRlbGV0ZVByb2dyYW0o
V2ViR0xQcm9ncmFtPyBwcm9ncmFtKTsKKyAgICB1bmRlZmluZWQgZGVsZXRlUmVuZGVyYnVmZmVy
KFdlYkdMUmVuZGVyYnVmZmVyPyByZW5kZXJidWZmZXIpOworICAgIHVuZGVmaW5lZCBkZWxldGVT
aGFkZXIoV2ViR0xTaGFkZXI/IHNoYWRlcik7CisgICAgdW5kZWZpbmVkIGRlbGV0ZVRleHR1cmUo
V2ViR0xUZXh0dXJlPyB0ZXh0dXJlKTsKKworICAgIHVuZGVmaW5lZCBkZXB0aEZ1bmMoR0xlbnVt
IGZ1bmMpOworICAgIHVuZGVmaW5lZCBkZXB0aE1hc2soR0xib29sZWFuIGZsYWcpOworICAgIHVu
ZGVmaW5lZCBkZXB0aFJhbmdlKEdMY2xhbXBmIHpOZWFyLCBHTGNsYW1wZiB6RmFyKTsKKyAgICB1
bmRlZmluZWQgZGV0YWNoU2hhZGVyKFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBXZWJHTFNoYWRlciBz
aGFkZXIpOworICAgIHVuZGVmaW5lZCBkaXNhYmxlKEdMZW51bSBjYXApOworICAgIHVuZGVmaW5l
ZCBkaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoR0x1aW50IGluZGV4KTsKKyAgICB1bmRlZmluZWQg
ZHJhd0FycmF5cyhHTGVudW0gbW9kZSwgR0xpbnQgZmlyc3QsIEdMc2l6ZWkgY291bnQpOworICAg
IHVuZGVmaW5lZCBkcmF3RWxlbWVudHMoR0xlbnVtIG1vZGUsIEdMc2l6ZWkgY291bnQsIEdMZW51
bSB0eXBlLCBHTGludHB0ciBvZmZzZXQpOworCisgICAgdW5kZWZpbmVkIGVuYWJsZShHTGVudW0g
Y2FwKTsKKyAgICB1bmRlZmluZWQgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoR0x1aW50IGluZGV4
KTsKKyAgICB1bmRlZmluZWQgZmluaXNoKCk7CisgICAgdW5kZWZpbmVkIGZsdXNoKCk7CisgICAg
dW5kZWZpbmVkIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMZW51bSB0YXJnZXQsIEdMZW51bSBh
dHRhY2htZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0g
cmVuZGVyYnVmZmVydGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXZWJHTFJlbmRlcmJ1ZmZlcj8gcmVuZGVyYnVmZmVyKTsKKyAgICB1bmRlZmluZWQgZnJhbWVi
dWZmZXJUZXh0dXJlMkQoR0xlbnVtIHRhcmdldCwgR0xlbnVtIGF0dGFjaG1lbnQsIEdMZW51bSB0
ZXh0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkdMVGV4dHVy
ZT8gdGV4dHVyZSwgR0xpbnQgbGV2ZWwpOworICAgIHVuZGVmaW5lZCBmcm9udEZhY2UoR0xlbnVt
IG1vZGUpOworCisgICAgdW5kZWZpbmVkIGdlbmVyYXRlTWlwbWFwKEdMZW51bSB0YXJnZXQpOwog
CiAgICAgV2ViR0xBY3RpdmVJbmZvPyBnZXRBY3RpdmVBdHRyaWIoV2ViR0xQcm9ncmFtIHByb2dy
YW0sIEdMdWludCBpbmRleCk7CiAgICAgV2ViR0xBY3RpdmVJbmZvPyBnZXRBY3RpdmVVbmlmb3Jt
KFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBHTHVpbnQgaW5kZXgpOwpAQCAtNjIxLDcgKzYyMSw3IEBA
IGludGVyZmFjZSBtaXhpbiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlCiAKICAgICBbV2ViR0xI
YW5kbGVzQ29udGV4dExvc3NdIEdMaW50cHRyIGdldFZlcnRleEF0dHJpYk9mZnNldChHTHVpbnQg
aW5kZXgsIEdMZW51bSBwbmFtZSk7CiAKLSAgICB2b2lkIGhpbnQoR0xlbnVtIHRhcmdldCwgR0xl
bnVtIG1vZGUpOworICAgIHVuZGVmaW5lZCBoaW50KEdMZW51bSB0YXJnZXQsIEdMZW51bSBtb2Rl
KTsKICAgICBbV2ViR0xIYW5kbGVzQ29udGV4dExvc3NdIEdMYm9vbGVhbiBpc0J1ZmZlcihXZWJH
TEJ1ZmZlcj8gYnVmZmVyKTsKICAgICBbV2ViR0xIYW5kbGVzQ29udGV4dExvc3NdIEdMYm9vbGVh
biBpc0VuYWJsZWQoR0xlbnVtIGNhcCk7CiAgICAgW1dlYkdMSGFuZGxlc0NvbnRleHRMb3NzXSBH
TGJvb2xlYW4gaXNGcmFtZWJ1ZmZlcihXZWJHTEZyYW1lYnVmZmVyPyBmcmFtZWJ1ZmZlcik7CkBA
IC02MjksOTkgKzYyOSw5OSBAQCBpbnRlcmZhY2UgbWl4aW4gV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZQogICAgIFtXZWJHTEhhbmRsZXNDb250ZXh0TG9zc10gR0xib29sZWFuIGlzUmVuZGVyYnVm
ZmVyKFdlYkdMUmVuZGVyYnVmZmVyPyByZW5kZXJidWZmZXIpOwogICAgIFtXZWJHTEhhbmRsZXND
b250ZXh0TG9zc10gR0xib29sZWFuIGlzU2hhZGVyKFdlYkdMU2hhZGVyPyBzaGFkZXIpOwogICAg
IFtXZWJHTEhhbmRsZXNDb250ZXh0TG9zc10gR0xib29sZWFuIGlzVGV4dHVyZShXZWJHTFRleHR1
cmU/IHRleHR1cmUpOwotICAgIHZvaWQgbGluZVdpZHRoKEdMZmxvYXQgd2lkdGgpOwotICAgIHZv
aWQgbGlua1Byb2dyYW0oV2ViR0xQcm9ncmFtIHByb2dyYW0pOwotICAgIHZvaWQgcGl4ZWxTdG9y
ZWkoR0xlbnVtIHBuYW1lLCBHTGludCBwYXJhbSk7Ci0gICAgdm9pZCBwb2x5Z29uT2Zmc2V0KEdM
ZmxvYXQgZmFjdG9yLCBHTGZsb2F0IHVuaXRzKTsKLQotICAgIHZvaWQgcmVuZGVyYnVmZmVyU3Rv
cmFnZShHTGVudW0gdGFyZ2V0LCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0KTsKLSAgICB2b2lk
IHNhbXBsZUNvdmVyYWdlKEdMY2xhbXBmIHZhbHVlLCBHTGJvb2xlYW4gaW52ZXJ0KTsKLSAgICB2
b2lkIHNjaXNzb3IoR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWln
aHQpOwotCi0gICAgdm9pZCBzaGFkZXJTb3VyY2UoV2ViR0xTaGFkZXIgc2hhZGVyLCBET01TdHJp
bmcgc291cmNlKTsKLQotICAgIHZvaWQgc3RlbmNpbEZ1bmMoR0xlbnVtIGZ1bmMsIEdMaW50IHJl
ZiwgR0x1aW50IG1hc2spOwotICAgIHZvaWQgc3RlbmNpbEZ1bmNTZXBhcmF0ZShHTGVudW0gZmFj
ZSwgR0xlbnVtIGZ1bmMsIEdMaW50IHJlZiwgR0x1aW50IG1hc2spOwotICAgIHZvaWQgc3RlbmNp
bE1hc2soR0x1aW50IG1hc2spOwotICAgIHZvaWQgc3RlbmNpbE1hc2tTZXBhcmF0ZShHTGVudW0g
ZmFjZSwgR0x1aW50IG1hc2spOwotICAgIHZvaWQgc3RlbmNpbE9wKEdMZW51bSBmYWlsLCBHTGVu
dW0gemZhaWwsIEdMZW51bSB6cGFzcyk7Ci0gICAgdm9pZCBzdGVuY2lsT3BTZXBhcmF0ZShHTGVu
dW0gZmFjZSwgR0xlbnVtIGZhaWwsIEdMZW51bSB6ZmFpbCwgR0xlbnVtIHpwYXNzKTsKLQotICAg
IHZvaWQgdGV4UGFyYW1ldGVyZihHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMZmxvYXQg
cGFyYW0pOwotICAgIHZvaWQgdGV4UGFyYW1ldGVyaShHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5h
bWUsIEdMaW50IHBhcmFtKTsKLQotICAgIHZvaWQgdW5pZm9ybTFmKFdlYkdMVW5pZm9ybUxvY2F0
aW9uPyBsb2NhdGlvbiwgR0xmbG9hdCB4KTsKLSAgICB2b2lkIHVuaWZvcm0yZihXZWJHTFVuaWZv
cm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMZmxvYXQgeCwgR0xmbG9hdCB5KTsKLSAgICB2b2lkIHVu
aWZvcm0zZihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMZmxvYXQgeCwgR0xmbG9h
dCB5LCBHTGZsb2F0IHopOwotICAgIHZvaWQgdW5pZm9ybTRmKFdlYkdMVW5pZm9ybUxvY2F0aW9u
PyBsb2NhdGlvbiwgR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQgeiwgR0xmbG9hdCB3KTsK
LQotICAgIHZvaWQgdW5pZm9ybTFpKFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xp
bnQgeCk7Ci0gICAgdm9pZCB1bmlmb3JtMmkoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9u
LCBHTGludCB4LCBHTGludCB5KTsKLSAgICB2b2lkIHVuaWZvcm0zaShXZWJHTFVuaWZvcm1Mb2Nh
dGlvbj8gbG9jYXRpb24sIEdMaW50IHgsIEdMaW50IHksIEdMaW50IHopOwotICAgIHZvaWQgdW5p
Zm9ybTRpKFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xpbnQgeCwgR0xpbnQgeSwg
R0xpbnQgeiwgR0xpbnQgdyk7Ci0KLSAgICB2b2lkIHVzZVByb2dyYW0oV2ViR0xQcm9ncmFtPyBw
cm9ncmFtKTsKLSAgICB2b2lkIHZhbGlkYXRlUHJvZ3JhbShXZWJHTFByb2dyYW0gcHJvZ3JhbSk7
Ci0KLSAgICB2b2lkIHZlcnRleEF0dHJpYjFmKEdMdWludCBpbmRleCwgR0xmbG9hdCB4KTsKLSAg
ICB2b2lkIHZlcnRleEF0dHJpYjJmKEdMdWludCBpbmRleCwgR0xmbG9hdCB4LCBHTGZsb2F0IHkp
OwotICAgIHZvaWQgdmVydGV4QXR0cmliM2YoR0x1aW50IGluZGV4LCBHTGZsb2F0IHgsIEdMZmxv
YXQgeSwgR0xmbG9hdCB6KTsKLSAgICB2b2lkIHZlcnRleEF0dHJpYjRmKEdMdWludCBpbmRleCwg
R0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQgeiwgR0xmbG9hdCB3KTsKLQotICAgIHZvaWQg
dmVydGV4QXR0cmliMWZ2KEdMdWludCBpbmRleCwgRmxvYXQzMkxpc3QgdmFsdWVzKTsKLSAgICB2
b2lkIHZlcnRleEF0dHJpYjJmdihHTHVpbnQgaW5kZXgsIEZsb2F0MzJMaXN0IHZhbHVlcyk7Ci0g
ICAgdm9pZCB2ZXJ0ZXhBdHRyaWIzZnYoR0x1aW50IGluZGV4LCBGbG9hdDMyTGlzdCB2YWx1ZXMp
OwotICAgIHZvaWQgdmVydGV4QXR0cmliNGZ2KEdMdWludCBpbmRleCwgRmxvYXQzMkxpc3QgdmFs
dWVzKTsKLQotICAgIHZvaWQgdmVydGV4QXR0cmliUG9pbnRlcihHTHVpbnQgaW5kZXgsIEdMaW50
IHNpemUsIEdMZW51bSB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGJvb2xl
YW4gbm9ybWFsaXplZCwgR0xzaXplaSBzdHJpZGUsIEdMaW50cHRyIG9mZnNldCk7Ci0KLSAgICB2
b2lkIHZpZXdwb3J0KEdMaW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVp
Z2h0KTsKKyAgICB1bmRlZmluZWQgbGluZVdpZHRoKEdMZmxvYXQgd2lkdGgpOworICAgIHVuZGVm
aW5lZCBsaW5rUHJvZ3JhbShXZWJHTFByb2dyYW0gcHJvZ3JhbSk7CisgICAgdW5kZWZpbmVkIHBp
eGVsU3RvcmVpKEdMZW51bSBwbmFtZSwgR0xpbnQgcGFyYW0pOworICAgIHVuZGVmaW5lZCBwb2x5
Z29uT2Zmc2V0KEdMZmxvYXQgZmFjdG9yLCBHTGZsb2F0IHVuaXRzKTsKKworICAgIHVuZGVmaW5l
ZCByZW5kZXJidWZmZXJTdG9yYWdlKEdMZW51bSB0YXJnZXQsIEdMZW51bSBpbnRlcm5hbGZvcm1h
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIHdpZHRoLCBHTHNp
emVpIGhlaWdodCk7CisgICAgdW5kZWZpbmVkIHNhbXBsZUNvdmVyYWdlKEdMY2xhbXBmIHZhbHVl
LCBHTGJvb2xlYW4gaW52ZXJ0KTsKKyAgICB1bmRlZmluZWQgc2Npc3NvcihHTGludCB4LCBHTGlu
dCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCk7CisKKyAgICB1bmRlZmluZWQgc2hh
ZGVyU291cmNlKFdlYkdMU2hhZGVyIHNoYWRlciwgRE9NU3RyaW5nIHNvdXJjZSk7CisKKyAgICB1
bmRlZmluZWQgc3RlbmNpbEZ1bmMoR0xlbnVtIGZ1bmMsIEdMaW50IHJlZiwgR0x1aW50IG1hc2sp
OworICAgIHVuZGVmaW5lZCBzdGVuY2lsRnVuY1NlcGFyYXRlKEdMZW51bSBmYWNlLCBHTGVudW0g
ZnVuYywgR0xpbnQgcmVmLCBHTHVpbnQgbWFzayk7CisgICAgdW5kZWZpbmVkIHN0ZW5jaWxNYXNr
KEdMdWludCBtYXNrKTsKKyAgICB1bmRlZmluZWQgc3RlbmNpbE1hc2tTZXBhcmF0ZShHTGVudW0g
ZmFjZSwgR0x1aW50IG1hc2spOworICAgIHVuZGVmaW5lZCBzdGVuY2lsT3AoR0xlbnVtIGZhaWws
IEdMZW51bSB6ZmFpbCwgR0xlbnVtIHpwYXNzKTsKKyAgICB1bmRlZmluZWQgc3RlbmNpbE9wU2Vw
YXJhdGUoR0xlbnVtIGZhY2UsIEdMZW51bSBmYWlsLCBHTGVudW0gemZhaWwsIEdMZW51bSB6cGFz
cyk7CisKKyAgICB1bmRlZmluZWQgdGV4UGFyYW1ldGVyZihHTGVudW0gdGFyZ2V0LCBHTGVudW0g
cG5hbWUsIEdMZmxvYXQgcGFyYW0pOworICAgIHVuZGVmaW5lZCB0ZXhQYXJhbWV0ZXJpKEdMZW51
bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwgR0xpbnQgcGFyYW0pOworCisgICAgdW5kZWZpbmVkIHVu
aWZvcm0xZihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMZmxvYXQgeCk7CisgICAg
dW5kZWZpbmVkIHVuaWZvcm0yZihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMZmxv
YXQgeCwgR0xmbG9hdCB5KTsKKyAgICB1bmRlZmluZWQgdW5pZm9ybTNmKFdlYkdMVW5pZm9ybUxv
Y2F0aW9uPyBsb2NhdGlvbiwgR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQgeik7CisgICAg
dW5kZWZpbmVkIHVuaWZvcm00ZihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMZmxv
YXQgeCwgR0xmbG9hdCB5LCBHTGZsb2F0IHosIEdMZmxvYXQgdyk7CisKKyAgICB1bmRlZmluZWQg
dW5pZm9ybTFpKFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xpbnQgeCk7CisgICAg
dW5kZWZpbmVkIHVuaWZvcm0yaShXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMaW50
IHgsIEdMaW50IHkpOworICAgIHVuZGVmaW5lZCB1bmlmb3JtM2koV2ViR0xVbmlmb3JtTG9jYXRp
b24/IGxvY2F0aW9uLCBHTGludCB4LCBHTGludCB5LCBHTGludCB6KTsKKyAgICB1bmRlZmluZWQg
dW5pZm9ybTRpKFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xpbnQgeCwgR0xpbnQg
eSwgR0xpbnQgeiwgR0xpbnQgdyk7CisKKyAgICB1bmRlZmluZWQgdXNlUHJvZ3JhbShXZWJHTFBy
b2dyYW0/IHByb2dyYW0pOworICAgIHVuZGVmaW5lZCB2YWxpZGF0ZVByb2dyYW0oV2ViR0xQcm9n
cmFtIHByb2dyYW0pOworCisgICAgdW5kZWZpbmVkIHZlcnRleEF0dHJpYjFmKEdMdWludCBpbmRl
eCwgR0xmbG9hdCB4KTsKKyAgICB1bmRlZmluZWQgdmVydGV4QXR0cmliMmYoR0x1aW50IGluZGV4
LCBHTGZsb2F0IHgsIEdMZmxvYXQgeSk7CisgICAgdW5kZWZpbmVkIHZlcnRleEF0dHJpYjNmKEdM
dWludCBpbmRleCwgR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQgeik7CisgICAgdW5kZWZp
bmVkIHZlcnRleEF0dHJpYjRmKEdMdWludCBpbmRleCwgR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdM
ZmxvYXQgeiwgR0xmbG9hdCB3KTsKKworICAgIHVuZGVmaW5lZCB2ZXJ0ZXhBdHRyaWIxZnYoR0x1
aW50IGluZGV4LCBGbG9hdDMyTGlzdCB2YWx1ZXMpOworICAgIHVuZGVmaW5lZCB2ZXJ0ZXhBdHRy
aWIyZnYoR0x1aW50IGluZGV4LCBGbG9hdDMyTGlzdCB2YWx1ZXMpOworICAgIHVuZGVmaW5lZCB2
ZXJ0ZXhBdHRyaWIzZnYoR0x1aW50IGluZGV4LCBGbG9hdDMyTGlzdCB2YWx1ZXMpOworICAgIHVu
ZGVmaW5lZCB2ZXJ0ZXhBdHRyaWI0ZnYoR0x1aW50IGluZGV4LCBGbG9hdDMyTGlzdCB2YWx1ZXMp
OworCisgICAgdW5kZWZpbmVkIHZlcnRleEF0dHJpYlBvaW50ZXIoR0x1aW50IGluZGV4LCBHTGlu
dCBzaXplLCBHTGVudW0gdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
TGJvb2xlYW4gbm9ybWFsaXplZCwgR0xzaXplaSBzdHJpZGUsIEdMaW50cHRyIG9mZnNldCk7CisK
KyAgICB1bmRlZmluZWQgdmlld3BvcnQoR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCwg
R0xzaXplaSBoZWlnaHQpOwogfTsKIAogaW50ZXJmYWNlIG1peGluIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dE92ZXJsb2FkcwogewotICAgIHZvaWQgYnVmZmVyRGF0YShHTGVudW0gdGFyZ2V0LCBHTHNp
emVpcHRyIHNpemUsIEdMZW51bSB1c2FnZSk7Ci0gICAgdm9pZCBidWZmZXJEYXRhKEdMZW51bSB0
YXJnZXQsIFtBbGxvd1NoYXJlZF0gQnVmZmVyU291cmNlPyBkYXRhLCBHTGVudW0gdXNhZ2UpOwot
ICAgIHZvaWQgYnVmZmVyU3ViRGF0YShHTGVudW0gdGFyZ2V0LCBHTGludHB0ciBvZmZzZXQsIFtB
bGxvd1NoYXJlZF0gQnVmZmVyU291cmNlIGRhdGEpOwotCi0gICAgdm9pZCBjb21wcmVzc2VkVGV4
SW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsZm9ybWF0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBo
ZWlnaHQsIEdMaW50IGJvcmRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtBbGxv
d1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3IGRhdGEpOwotICAgIHZvaWQgY29tcHJlc3NlZFRleFN1
YkltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMZW51
bSBmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQWxsb3dTaGFyZWRd
IEFycmF5QnVmZmVyVmlldyBkYXRhKTsKLQotICAgIHZvaWQgcmVhZFBpeGVscyhHTGludCB4LCBH
TGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwKLSAgICAgICAgICAgICAgICAg
ICAgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJW
aWV3PyBwaXhlbHMpOwotCi0gICAgdm9pZCB0ZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50
IGxldmVsLCBHTGludCBpbnRlcm5hbGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgR0xzaXpl
aSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMaW50IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwKLSAg
ICAgICAgICAgICAgICAgICAgR0xlbnVtIHR5cGUsIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJW
aWV3PyBwaXhlbHMpOwotICAgIHZvaWQgdGV4SW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBs
ZXZlbCwgR0xpbnQgaW50ZXJuYWxmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgIEdMZW51bSBm
b3JtYXQsIEdMZW51bSB0eXBlLCBUZXhJbWFnZVNvdXJjZSBzb3VyY2UpOyAvLyBNYXkgdGhyb3cg
RE9NRXhjZXB0aW9uCi0KLSAgICB2b2lkIHRleFN1YkltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xp
bnQgbGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsCi0gICAgICAgICAgICAgICAg
ICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAotICAgICAgICAgICAgICAgICAg
ICAgICBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZl
clZpZXc/IHBpeGVscyk7Ci0gICAgdm9pZCB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdM
aW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LAotICAgICAgICAgICAgICAg
ICAgICAgICBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgVGV4SW1hZ2VTb3VyY2Ugc291cmNl
KTsgLy8gTWF5IHRocm93IERPTUV4Y2VwdGlvbgotCi0gICAgdm9pZCB1bmlmb3JtMWZ2KFdlYkdM
VW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgRmxvYXQzMkxpc3Qgdik7Ci0gICAgdm9pZCB1bmlm
b3JtMmZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgRmxvYXQzMkxpc3Qgdik7Ci0g
ICAgdm9pZCB1bmlmb3JtM2Z2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgRmxvYXQz
Mkxpc3Qgdik7Ci0gICAgdm9pZCB1bmlmb3JtNGZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2Nh
dGlvbiwgRmxvYXQzMkxpc3Qgdik7Ci0KLSAgICB2b2lkIHVuaWZvcm0xaXYoV2ViR0xVbmlmb3Jt
TG9jYXRpb24/IGxvY2F0aW9uLCBJbnQzMkxpc3Qgdik7Ci0gICAgdm9pZCB1bmlmb3JtMml2KFdl
YkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgSW50MzJMaXN0IHYpOwotICAgIHZvaWQgdW5p
Zm9ybTNpdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEludDMyTGlzdCB2KTsKLSAg
ICB2b2lkIHVuaWZvcm00aXYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBJbnQzMkxp
c3Qgdik7Ci0KLSAgICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/
IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCB2YWx1ZSk7Ci0gICAg
dm9pZCB1bmlmb3JtTWF0cml4M2Z2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xi
b29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgdmFsdWUpOwotICAgIHZvaWQgdW5pZm9ybU1h
dHJpeDRmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMYm9vbGVhbiB0cmFuc3Bv
c2UsIEZsb2F0MzJMaXN0IHZhbHVlKTsKKyAgICB1bmRlZmluZWQgYnVmZmVyRGF0YShHTGVudW0g
dGFyZ2V0LCBHTHNpemVpcHRyIHNpemUsIEdMZW51bSB1c2FnZSk7CisgICAgdW5kZWZpbmVkIGJ1
ZmZlckRhdGEoR0xlbnVtIHRhcmdldCwgW0FsbG93U2hhcmVkXSBCdWZmZXJTb3VyY2U/IGRhdGEs
IEdMZW51bSB1c2FnZSk7CisgICAgdW5kZWZpbmVkIGJ1ZmZlclN1YkRhdGEoR0xlbnVtIHRhcmdl
dCwgR0xpbnRwdHIgb2Zmc2V0LCBbQWxsb3dTaGFyZWRdIEJ1ZmZlclNvdXJjZSBkYXRhKTsKKwor
ICAgIHVuZGVmaW5lZCBjb21wcmVzc2VkVGV4SW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBs
ZXZlbCwgR0xlbnVtIGludGVybmFsZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xpbnQgYm9yZGVyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVy
VmlldyBkYXRhKTsKKyAgICB1bmRlZmluZWQgY29tcHJlc3NlZFRleFN1YkltYWdlMkQoR0xlbnVt
IHRhcmdldCwgR0xpbnQgbGV2ZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9y
bWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQWxsb3dTaGFyZWRd
IEFycmF5QnVmZmVyVmlldyBkYXRhKTsKKworICAgIHVuZGVmaW5lZCByZWFkUGl4ZWxzKEdMaW50
IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBbQWxsb3dTaGFyZWRdIEFy
cmF5QnVmZmVyVmlldz8gcGl4ZWxzKTsKKworICAgIHVuZGVmaW5lZCB0ZXhJbWFnZTJEKEdMZW51
bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbGZvcm1hdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xpbnQgYm9yZGVy
LCBHTGVudW0gZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSB0eXBlLCBb
QWxsb3dTaGFyZWRdIEFycmF5QnVmZmVyVmlldz8gcGl4ZWxzKTsKKyAgICB1bmRlZmluZWQgdGV4
SW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgaW50ZXJuYWxmb3JtYXQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIFRl
eEltYWdlU291cmNlIHNvdXJjZSk7IC8vIE1heSB0aHJvdyBET01FeGNlcHRpb24KKworICAgIHVu
ZGVmaW5lZCB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4
b2Zmc2V0LCBHTGludCB5b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6
ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdM
ZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVyVmlldz8g
cGl4ZWxzKTsKKyAgICB1bmRlZmluZWQgdGV4U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGlu
dCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgVGV4SW1hZ2VTb3VyY2Ugc291
cmNlKTsgLy8gTWF5IHRocm93IERPTUV4Y2VwdGlvbgorCisgICAgdW5kZWZpbmVkIHVuaWZvcm0x
ZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBGbG9hdDMyTGlzdCB2KTsKKyAgICB1
bmRlZmluZWQgdW5pZm9ybTJmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEZsb2F0
MzJMaXN0IHYpOworICAgIHVuZGVmaW5lZCB1bmlmb3JtM2Z2KFdlYkdMVW5pZm9ybUxvY2F0aW9u
PyBsb2NhdGlvbiwgRmxvYXQzMkxpc3Qgdik7CisgICAgdW5kZWZpbmVkIHVuaWZvcm00ZnYoV2Vi
R0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBGbG9hdDMyTGlzdCB2KTsKKworICAgIHVuZGVm
aW5lZCB1bmlmb3JtMWl2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgSW50MzJMaXN0
IHYpOworICAgIHVuZGVmaW5lZCB1bmlmb3JtMml2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2Nh
dGlvbiwgSW50MzJMaXN0IHYpOworICAgIHVuZGVmaW5lZCB1bmlmb3JtM2l2KFdlYkdMVW5pZm9y
bUxvY2F0aW9uPyBsb2NhdGlvbiwgSW50MzJMaXN0IHYpOworICAgIHVuZGVmaW5lZCB1bmlmb3Jt
NGl2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgSW50MzJMaXN0IHYpOworCisgICAg
dW5kZWZpbmVkIHVuaWZvcm1NYXRyaXgyZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9u
LCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCB2YWx1ZSk7CisgICAgdW5kZWZpbmVk
IHVuaWZvcm1NYXRyaXgzZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xl
YW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCB2YWx1ZSk7CisgICAgdW5kZWZpbmVkIHVuaWZvcm1N
YXRyaXg0ZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNw
b3NlLCBGbG9hdDMyTGlzdCB2YWx1ZSk7CiB9OwogCiBbRXhwb3NlZD0oV2luZG93LFdvcmtlcild
CkBAIC03MzEsMTAgKzczMSw5IEBAIGludGVyZmFjZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQKIFdl
YkdMUmVuZGVyaW5nQ29udGV4dCBpbmNsdWRlcyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOwog
V2ViR0xSZW5kZXJpbmdDb250ZXh0IGluY2x1ZGVzIFdlYkdMUmVuZGVyaW5nQ29udGV4dE92ZXJs
b2FkczsKIAotW0V4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpLAotIENvbnN0cnVjdG9yKERPTVN0cmlu
ZyB0eXBlLAotIG9wdGlvbmFsIFdlYkdMQ29udGV4dEV2ZW50SW5pdCBldmVudEluaXQgPSB7fSld
CitbRXhwb3NlZD0oV2luZG93LFdvcmtlcildCiBpbnRlcmZhY2UgV2ViR0xDb250ZXh0RXZlbnQg
OiBFdmVudCB7CisgICAgY29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIFdlYkdM
Q29udGV4dEV2ZW50SW5pdCBldmVudEluaXQgPSB7fSk7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyBzdGF0dXNNZXNzYWdlOwogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL3dlYmdsMi5pZGwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvd2Vi
Z2wyLmlkbAppbmRleCBiMmU2NjBlNmI2NTQ1ZjMzZTRhY2I2ZTM3OGJjZTM1MTdhYjRkNGNiLi41
MTg2MzdmY2M3MmQzZTAyOTI0ZjAwZDI2OWJmMWM1Njc5NDgwNmRkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvd2ViZ2wy
LmlkbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lu
dGVyZmFjZXMvd2ViZ2wyLmlkbApAQCAtMjk4LDI3OSArMjk4LDI3OSBAQCBpbnRlcmZhY2UgbWl4
aW4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dEJhc2UKICAgY29uc3QgR0xlbnVtIE1BWF9DTElFTlRf
V0FJVF9USU1FT1VUX1dFQkdMICAgICAgICAgICAgICAgICA9IDB4OTI0NzsKIAogICAvKiBCdWZm
ZXIgb2JqZWN0cyAqLwotICB2b2lkIGNvcHlCdWZmZXJTdWJEYXRhKEdMZW51bSByZWFkVGFyZ2V0
LCBHTGVudW0gd3JpdGVUYXJnZXQsIEdMaW50cHRyIHJlYWRPZmZzZXQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgR0xpbnRwdHIgd3JpdGVPZmZzZXQsIEdMc2l6ZWlwdHIgc2l6ZSk7CisgIHVu
ZGVmaW5lZCBjb3B5QnVmZmVyU3ViRGF0YShHTGVudW0gcmVhZFRhcmdldCwgR0xlbnVtIHdyaXRl
VGFyZ2V0LCBHTGludHB0ciByZWFkT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0xpbnRwdHIgd3JpdGVPZmZzZXQsIEdMc2l6ZWlwdHIgc2l6ZSk7CiAgIC8vIE1hcEJ1ZmZl
clJhbmdlLCBpbiBwYXJ0aWN1bGFyIGl0cyByZWFkLW9ubHkgYW5kIHdyaXRlLW9ubHkgbW9kZXMs
CiAgIC8vIGNhbiBub3QgYmUgZXhwb3NlZCBzYWZlbHkgdG8gSmF2YVNjcmlwdC4gR2V0QnVmZmVy
U3ViRGF0YQogICAvLyByZXBsYWNlcyBpdCBmb3IgdGhlIHB1cnBvc2Ugb2YgZmV0Y2hpbmcgZGF0
YSBiYWNrIGZyb20gdGhlIEdQVS4KLSAgdm9pZCBnZXRCdWZmZXJTdWJEYXRhKEdMZW51bSB0YXJn
ZXQsIEdMaW50cHRyIHNyY0J5dGVPZmZzZXQsIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3
IGRzdEJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBkc3RP
ZmZzZXQgPSAwLCBvcHRpb25hbCBHTHVpbnQgbGVuZ3RoID0gMCk7CisgIHVuZGVmaW5lZCBnZXRC
dWZmZXJTdWJEYXRhKEdMZW51bSB0YXJnZXQsIEdMaW50cHRyIHNyY0J5dGVPZmZzZXQsIFtBbGxv
d1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3IGRzdEJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3B0aW9uYWwgR0x1aW50IGRzdE9mZnNldCA9IDAsIG9wdGlvbmFsIEdMdWludCBs
ZW5ndGggPSAwKTsKIAogICAvKiBGcmFtZWJ1ZmZlciBvYmplY3RzICovCi0gIHZvaWQgYmxpdEZy
YW1lYnVmZmVyKEdMaW50IHNyY1gwLCBHTGludCBzcmNZMCwgR0xpbnQgc3JjWDEsIEdMaW50IHNy
Y1kxLCBHTGludCBkc3RYMCwgR0xpbnQgZHN0WTAsCi0gICAgICAgICAgICAgICAgICAgICAgIEdM
aW50IGRzdFgxLCBHTGludCBkc3RZMSwgR0xiaXRmaWVsZCBtYXNrLCBHTGVudW0gZmlsdGVyKTsK
LSAgdm9pZCBmcmFtZWJ1ZmZlclRleHR1cmVMYXllcihHTGVudW0gdGFyZ2V0LCBHTGVudW0gYXR0
YWNobWVudCwgV2ViR0xUZXh0dXJlPyB0ZXh0dXJlLCBHTGludCBsZXZlbCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHTGludCBsYXllcik7Ci0gIHZvaWQgaW52YWxpZGF0ZUZyYW1l
YnVmZmVyKEdMZW51bSB0YXJnZXQsIHNlcXVlbmNlPEdMZW51bT4gYXR0YWNobWVudHMpOwotICB2
b2lkIGludmFsaWRhdGVTdWJGcmFtZWJ1ZmZlcihHTGVudW0gdGFyZ2V0LCBzZXF1ZW5jZTxHTGVu
dW0+IGF0dGFjaG1lbnRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGludCB4
LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCk7Ci0gIHZvaWQgcmVhZEJ1
ZmZlcihHTGVudW0gc3JjKTsKKyAgdW5kZWZpbmVkIGJsaXRGcmFtZWJ1ZmZlcihHTGludCBzcmNY
MCwgR0xpbnQgc3JjWTAsIEdMaW50IHNyY1gxLCBHTGludCBzcmNZMSwgR0xpbnQgZHN0WDAsIEdM
aW50IGRzdFkwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IGRzdFgxLCBHTGlu
dCBkc3RZMSwgR0xiaXRmaWVsZCBtYXNrLCBHTGVudW0gZmlsdGVyKTsKKyAgdW5kZWZpbmVkIGZy
YW1lYnVmZmVyVGV4dHVyZUxheWVyKEdMZW51bSB0YXJnZXQsIEdMZW51bSBhdHRhY2htZW50LCBX
ZWJHTFRleHR1cmU/IHRleHR1cmUsIEdMaW50IGxldmVsLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR0xpbnQgbGF5ZXIpOworICB1bmRlZmluZWQgaW52YWxpZGF0ZUZyYW1l
YnVmZmVyKEdMZW51bSB0YXJnZXQsIHNlcXVlbmNlPEdMZW51bT4gYXR0YWNobWVudHMpOworICB1
bmRlZmluZWQgaW52YWxpZGF0ZVN1YkZyYW1lYnVmZmVyKEdMZW51bSB0YXJnZXQsIHNlcXVlbmNl
PEdMZW51bT4gYXR0YWNobWVudHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQpOworICB1
bmRlZmluZWQgcmVhZEJ1ZmZlcihHTGVudW0gc3JjKTsKIAogICAvKiBSZW5kZXJidWZmZXIgb2Jq
ZWN0cyAqLwogICBhbnkgZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoR0xlbnVtIHRhcmdldCwg
R0xlbnVtIGludGVybmFsZm9ybWF0LCBHTGVudW0gcG5hbWUpOwotICB2b2lkIHJlbmRlcmJ1ZmZl
clN0b3JhZ2VNdWx0aXNhbXBsZShHTGVudW0gdGFyZ2V0LCBHTHNpemVpIHNhbXBsZXMsIEdMZW51
bSBpbnRlcm5hbGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQpOworICB1bmRlZmluZWQgcmVuZGVyYnVmZmVy
U3RvcmFnZU11bHRpc2FtcGxlKEdMZW51bSB0YXJnZXQsIEdMc2l6ZWkgc2FtcGxlcywgR0xlbnVt
IGludGVybmFsZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0KTsKIAogICAvKiBUZXh0dXJlIG9iamVj
dHMgKi8KLSAgdm9pZCB0ZXhTdG9yYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xzaXplaSBsZXZlbHMs
IEdMZW51bSBpbnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0aCwKLSAgICAgICAgICAgICAgICAg
ICAgR0xzaXplaSBoZWlnaHQpOwotICB2b2lkIHRleFN0b3JhZ2UzRChHTGVudW0gdGFyZ2V0LCBH
THNpemVpIGxldmVscywgR0xlbnVtIGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLAotICAg
ICAgICAgICAgICAgICAgICBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCk7Ci0KLSAgdm9p
ZCB0ZXhJbWFnZTNEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbGZv
cm1hdCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsCi0gICAgICAgICAgICAgICAgICBH
THNpemVpIGRlcHRoLCBHTGludCBib3JkZXIsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBH
TGludHB0ciBwYm9PZmZzZXQpOwotICB2b2lkIHRleEltYWdlM0QoR0xlbnVtIHRhcmdldCwgR0xp
bnQgbGV2ZWwsIEdMaW50IGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhl
aWdodCwKLSAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgZGVwdGgsIEdMaW50IGJvcmRlciwgR0xl
bnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsCi0gICAgICAgICAgICAgICAgICBUZXhJbWFnZVNvdXJj
ZSBzb3VyY2UpOyAvLyBNYXkgdGhyb3cgRE9NRXhjZXB0aW9uCi0gIHZvaWQgdGV4SW1hZ2UzRChH
TGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkg
d2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAotICAgICAgICAgICAgICAgICAgR0xzaXplaSBkZXB0aCwg
R0xpbnQgYm9yZGVyLCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgW0FsbG93U2hhcmVkXSBB
cnJheUJ1ZmZlclZpZXc/IHNyY0RhdGEpOwotICB2b2lkIHRleEltYWdlM0QoR0xlbnVtIHRhcmdl
dCwgR0xpbnQgbGV2ZWwsIEdMaW50IGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNp
emVpIGhlaWdodCwKLSAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgZGVwdGgsIEdMaW50IGJvcmRl
ciwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJW
aWV3IHNyY0RhdGEsCi0gICAgICAgICAgICAgICAgICBHTHVpbnQgc3JjT2Zmc2V0KTsKLQotICB2
b2lkIHRleFN1YkltYWdlM0QoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhvZmZz
ZXQsIEdMaW50IHlvZmZzZXQsIEdMaW50IHpvZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICBH
THNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCwgR0xlbnVtIGZvcm1h
dCwgR0xlbnVtIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICBHTGludHB0ciBwYm9PZmZzZXQp
OwotICB2b2lkIHRleFN1YkltYWdlM0QoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50
IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsIEdMaW50IHpvZmZzZXQsCi0gICAgICAgICAgICAgICAg
ICAgICBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCwgR0xlbnVt
IGZvcm1hdCwgR0xlbnVtIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICBUZXhJbWFnZVNvdXJj
ZSBzb3VyY2UpOyAvLyBNYXkgdGhyb3cgRE9NRXhjZXB0aW9uCi0gIHZvaWQgdGV4U3ViSW1hZ2Uz
RChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNl
dCwgR0xpbnQgem9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdM
c2l6ZWkgaGVpZ2h0LCBHTHNpemVpIGRlcHRoLCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwK
LSAgICAgICAgICAgICAgICAgICAgIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3PyBzcmNE
YXRhLCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCk7Ci0KLSAgdm9pZCBjb3B5VGV4U3Vi
SW1hZ2UzRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQg
eW9mZnNldCwgR0xpbnQgem9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBHTGludCB4
LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCk7Ci0KLSAgdm9pZCBjb21w
cmVzc2VkVGV4SW1hZ2UzRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVy
bmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdM
c2l6ZWkgaGVpZ2h0LCBHTHNpemVpIGRlcHRoLCBHTGludCBib3JkZXIsIEdMc2l6ZWkgaW1hZ2VT
aXplLCBHTGludHB0ciBvZmZzZXQpOwotICB2b2lkIGNvbXByZXNzZWRUZXhJbWFnZTNEKEdMZW51
bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lk
dGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSBoZWlnaHQsIEdMc2l6ZWkg
ZGVwdGgsIEdMaW50IGJvcmRlciwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXcgc3JjRGF0
YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0
ID0gMCwgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aE92ZXJyaWRlID0gMCk7Ci0KLSAgdm9pZCBj
b21wcmVzc2VkVGV4U3ViSW1hZ2UzRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQg
eG9mZnNldCwgR0xpbnQgeW9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
TGludCB6b2Zmc2V0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0
aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBHTHNpemVp
IGltYWdlU2l6ZSwgR0xpbnRwdHIgb2Zmc2V0KTsKLSAgdm9pZCBjb21wcmVzc2VkVGV4U3ViSW1h
Z2UzRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9m
ZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGludCB6b2Zmc2V0LCBHTHNp
emVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVy
VmlldyBzcmNEYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdM
dWludCBzcmNPZmZzZXQgPSAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlv
bmFsIEdMdWludCBzcmNMZW5ndGhPdmVycmlkZSA9IDApOworICB1bmRlZmluZWQgdGV4U3RvcmFn
ZTJEKEdMZW51bSB0YXJnZXQsIEdMc2l6ZWkgbGV2ZWxzLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQs
IEdMc2l6ZWkgd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSBoZWlnaHQp
OworICB1bmRlZmluZWQgdGV4U3RvcmFnZTNEKEdMZW51bSB0YXJnZXQsIEdMc2l6ZWkgbGV2ZWxz
LCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgR0xzaXplaSBoZWlnaHQsIEdMc2l6ZWkgZGVwdGgpOworCisgIHVuZGVmaW5lZCB0
ZXhJbWFnZTNEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbGZvcm1h
dCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAg
IEdMc2l6ZWkgZGVwdGgsIEdMaW50IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUs
IEdMaW50cHRyIHBib09mZnNldCk7CisgIHVuZGVmaW5lZCB0ZXhJbWFnZTNEKEdMZW51bSB0YXJn
ZXQsIEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xz
aXplaSBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgZGVwdGgsIEdMaW50
IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsCisgICAgICAgICAgICAgICAgICAg
ICAgIFRleEltYWdlU291cmNlIHNvdXJjZSk7IC8vIE1heSB0aHJvdyBET01FeGNlcHRpb24KKyAg
dW5kZWZpbmVkIHRleEltYWdlM0QoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IGlu
dGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgR0xzaXplaSBkZXB0aCwgR0xpbnQgYm9yZGVyLCBHTGVudW0gZm9ybWF0LCBH
TGVudW0gdHlwZSwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXc/IHNyY0RhdGEpOworICB1
bmRlZmluZWQgdGV4SW1hZ2UzRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgaW50
ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAorICAgICAgICAgICAg
ICAgICAgICAgICBHTHNpemVpIGRlcHRoLCBHTGludCBib3JkZXIsIEdMZW51bSBmb3JtYXQsIEdM
ZW51bSB0eXBlLCBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVyVmlldyBzcmNEYXRhLAorICAgICAg
ICAgICAgICAgICAgICAgICBHTHVpbnQgc3JjT2Zmc2V0KTsKKworICB1bmRlZmluZWQgdGV4U3Vi
SW1hZ2UzRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQg
eW9mZnNldCwgR0xpbnQgem9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXpl
aSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMc2l6ZWkgZGVwdGgsIEdMZW51bSBmb3JtYXQsIEdM
ZW51bSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBHTGludHB0ciBwYm9PZmZzZXQp
OworICB1bmRlZmluZWQgdGV4U3ViSW1hZ2UzRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwg
R0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwgR0xpbnQgem9mZnNldCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMc2l6ZWkgZGVw
dGgsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICBUZXhJbWFnZVNvdXJjZSBzb3VyY2UpOyAvLyBNYXkgdGhyb3cgRE9NRXhjZXB0aW9uCisgIHVu
ZGVmaW5lZCB0ZXhTdWJJbWFnZTNEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4
b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTGludCB6b2Zmc2V0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCwgR0xl
bnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFtBbGxv
d1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3PyBzcmNEYXRhLCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zm
c2V0ID0gMCk7CisKKyAgdW5kZWZpbmVkIGNvcHlUZXhTdWJJbWFnZTNEKEdMZW51bSB0YXJnZXQs
IEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTGludCB6b2Zmc2V0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXpl
aSB3aWR0aCwgR0xzaXplaSBoZWlnaHQpOworCisgIHVuZGVmaW5lZCBjb21wcmVzc2VkVGV4SW1h
Z2UzRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsZm9ybWF0LCBH
THNpemVpIHdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSBo
ZWlnaHQsIEdMc2l6ZWkgZGVwdGgsIEdMaW50IGJvcmRlciwgR0xzaXplaSBpbWFnZVNpemUsIEdM
aW50cHRyIG9mZnNldCk7CisgIHVuZGVmaW5lZCBjb21wcmVzc2VkVGV4SW1hZ2UzRChHTGVudW0g
dGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRo
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSBoZWlnaHQsIEdMc2l6
ZWkgZGVwdGgsIEdMaW50IGJvcmRlciwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXcgc3Jj
RGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBz
cmNPZmZzZXQgPSAwLCBvcHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoT3ZlcnJpZGUgPSAwKTsKKwor
ICB1bmRlZmluZWQgY29tcHJlc3NlZFRleFN1YkltYWdlM0QoR0xlbnVtIHRhcmdldCwgR0xpbnQg
bGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHTGludCB6b2Zmc2V0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhl
aWdodCwgR0xzaXplaSBkZXB0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdMZW51bSBmb3JtYXQsIEdMc2l6ZWkgaW1hZ2VTaXplLCBHTGludHB0ciBvZmZzZXQpOworICB1
bmRlZmluZWQgY29tcHJlc3NlZFRleFN1YkltYWdlM0QoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2
ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHTGludCB6b2Zmc2V0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdo
dCwgR0xzaXplaSBkZXB0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdM
ZW51bSBmb3JtYXQsIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3IHNyY0RhdGEsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0
ID0gMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWlu
dCBzcmNMZW5ndGhPdmVycmlkZSA9IDApOwogCiAgIC8qIFByb2dyYW1zIGFuZCBzaGFkZXJzICov
CiAgIFtXZWJHTEhhbmRsZXNDb250ZXh0TG9zc10gR0xpbnQgZ2V0RnJhZ0RhdGFMb2NhdGlvbihX
ZWJHTFByb2dyYW0gcHJvZ3JhbSwgRE9NU3RyaW5nIG5hbWUpOwogCiAgIC8qIFVuaWZvcm1zICov
Ci0gIHZvaWQgdW5pZm9ybTF1aShXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMdWlu
dCB2MCk7Ci0gIHZvaWQgdW5pZm9ybTJ1aShXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24s
IEdMdWludCB2MCwgR0x1aW50IHYxKTsKLSAgdm9pZCB1bmlmb3JtM3VpKFdlYkdMVW5pZm9ybUxv
Y2F0aW9uPyBsb2NhdGlvbiwgR0x1aW50IHYwLCBHTHVpbnQgdjEsIEdMdWludCB2Mik7Ci0gIHZv
aWQgdW5pZm9ybTR1aShXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMdWludCB2MCwg
R0x1aW50IHYxLCBHTHVpbnQgdjIsIEdMdWludCB2Myk7Ci0KLSAgdm9pZCB1bmlmb3JtMXVpdihX
ZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIFVpbnQzMkxpc3QgZGF0YSwgb3B0aW9uYWwg
R0x1aW50IHNyY09mZnNldCA9IDAsCi0gICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQg
c3JjTGVuZ3RoID0gMCk7Ci0gIHZvaWQgdW5pZm9ybTJ1aXYoV2ViR0xVbmlmb3JtTG9jYXRpb24/
IGxvY2F0aW9uLCBVaW50MzJMaXN0IGRhdGEsIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAw
LAotICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOwotICB2
b2lkIHVuaWZvcm0zdWl2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgVWludDMyTGlz
dCBkYXRhLCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKLSAgICAgICAgICAgICAgICAg
IG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKLSAgdm9pZCB1bmlmb3JtNHVpdihXZWJH
TFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIFVpbnQzMkxpc3QgZGF0YSwgb3B0aW9uYWwgR0x1
aW50IHNyY09mZnNldCA9IDAsCi0gICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3Jj
TGVuZ3RoID0gMCk7Ci0gIHZvaWQgdW5pZm9ybU1hdHJpeDN4MmZ2KFdlYkdMVW5pZm9ybUxvY2F0
aW9uPyBsb2NhdGlvbiwgR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0YSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsIG9w
dGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKLSAgdm9pZCB1bmlmb3JtTWF0cml4NHgyZnYo
V2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9h
dDMyTGlzdCBkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQg
c3JjT2Zmc2V0ID0gMCwgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOwotCi0gIHZvaWQg
dW5pZm9ybU1hdHJpeDJ4M2Z2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xib29s
ZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsIG9wdGlvbmFsIEdMdWludCBzcmNMZW5n
dGggPSAwKTsKLSAgdm9pZCB1bmlmb3JtTWF0cml4NHgzZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/
IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCBkYXRhLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwgb3B0aW9u
YWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOwotCi0gIHZvaWQgdW5pZm9ybU1hdHJpeDJ4NGZ2KFdl
YkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQz
Mkxpc3QgZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNy
Y09mZnNldCA9IDAsIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKLSAgdm9pZCB1bmlm
b3JtTWF0cml4M3g0ZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xlYW4g
dHJhbnNwb3NlLCBGbG9hdDMyTGlzdCBkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICBv
cHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9
IDApOworICB1bmRlZmluZWQgdW5pZm9ybTF1aShXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRp
b24sIEdMdWludCB2MCk7CisgIHVuZGVmaW5lZCB1bmlmb3JtMnVpKFdlYkdMVW5pZm9ybUxvY2F0
aW9uPyBsb2NhdGlvbiwgR0x1aW50IHYwLCBHTHVpbnQgdjEpOworICB1bmRlZmluZWQgdW5pZm9y
bTN1aShXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMdWludCB2MCwgR0x1aW50IHYx
LCBHTHVpbnQgdjIpOworICB1bmRlZmluZWQgdW5pZm9ybTR1aShXZWJHTFVuaWZvcm1Mb2NhdGlv
bj8gbG9jYXRpb24sIEdMdWludCB2MCwgR0x1aW50IHYxLCBHTHVpbnQgdjIsIEdMdWludCB2Myk7
CisKKyAgdW5kZWZpbmVkIHVuaWZvcm0xdWl2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlv
biwgVWludDMyTGlzdCBkYXRhLCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKKyAgdW5k
ZWZpbmVkIHVuaWZvcm0ydWl2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgVWludDMy
TGlzdCBkYXRhLCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKKyAgdW5kZWZpbmVkIHVu
aWZvcm0zdWl2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgVWludDMyTGlzdCBkYXRh
LCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKKyAgICAgICAgICAgICAgICAgICAgICAg
IG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKKyAgdW5kZWZpbmVkIHVuaWZvcm00dWl2
KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgVWludDMyTGlzdCBkYXRhLCBvcHRpb25h
bCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFs
IEdMdWludCBzcmNMZW5ndGggPSAwKTsKKyAgdW5kZWZpbmVkIHVuaWZvcm1NYXRyaXgzeDJmdihX
ZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMYm9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0
MzJMaXN0IGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1
aW50IHNyY09mZnNldCA9IDAsIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKKyAgdW5k
ZWZpbmVkIHVuaWZvcm1NYXRyaXg0eDJmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24s
IEdMYm9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0IGRhdGEsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsIG9wdGlvbmFsIEdM
dWludCBzcmNMZW5ndGggPSAwKTsKKworICB1bmRlZmluZWQgdW5pZm9ybU1hdHJpeDJ4M2Z2KFdl
YkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQz
Mkxpc3QgZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVp
bnQgc3JjT2Zmc2V0ID0gMCwgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOworICB1bmRl
ZmluZWQgdW5pZm9ybU1hdHJpeDR4M2Z2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwg
R0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0YSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwgb3B0aW9uYWwgR0x1
aW50IHNyY0xlbmd0aCA9IDApOworCisgIHVuZGVmaW5lZCB1bmlmb3JtTWF0cml4Mng0ZnYoV2Vi
R0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMy
TGlzdCBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWlu
dCBzcmNPZmZzZXQgPSAwLCBvcHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoID0gMCk7CisgIHVuZGVm
aW5lZCB1bmlmb3JtTWF0cml4M3g0ZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBH
TGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCBkYXRhLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAwLCBvcHRpb25hbCBHTHVp
bnQgc3JjTGVuZ3RoID0gMCk7CiAKICAgLyogVmVydGV4IGF0dHJpYnMgKi8KLSAgdm9pZCB2ZXJ0
ZXhBdHRyaWJJNGkoR0x1aW50IGluZGV4LCBHTGludCB4LCBHTGludCB5LCBHTGludCB6LCBHTGlu
dCB3KTsKLSAgdm9pZCB2ZXJ0ZXhBdHRyaWJJNGl2KEdMdWludCBpbmRleCwgSW50MzJMaXN0IHZh
bHVlcyk7Ci0gIHZvaWQgdmVydGV4QXR0cmliSTR1aShHTHVpbnQgaW5kZXgsIEdMdWludCB4LCBH
THVpbnQgeSwgR0x1aW50IHosIEdMdWludCB3KTsKLSAgdm9pZCB2ZXJ0ZXhBdHRyaWJJNHVpdihH
THVpbnQgaW5kZXgsIFVpbnQzMkxpc3QgdmFsdWVzKTsKLSAgdm9pZCB2ZXJ0ZXhBdHRyaWJJUG9p
bnRlcihHTHVpbnQgaW5kZXgsIEdMaW50IHNpemUsIEdMZW51bSB0eXBlLCBHTHNpemVpIHN0cmlk
ZSwgR0xpbnRwdHIgb2Zmc2V0KTsKKyAgdW5kZWZpbmVkIHZlcnRleEF0dHJpYkk0aShHTHVpbnQg
aW5kZXgsIEdMaW50IHgsIEdMaW50IHksIEdMaW50IHosIEdMaW50IHcpOworICB1bmRlZmluZWQg
dmVydGV4QXR0cmliSTRpdihHTHVpbnQgaW5kZXgsIEludDMyTGlzdCB2YWx1ZXMpOworICB1bmRl
ZmluZWQgdmVydGV4QXR0cmliSTR1aShHTHVpbnQgaW5kZXgsIEdMdWludCB4LCBHTHVpbnQgeSwg
R0x1aW50IHosIEdMdWludCB3KTsKKyAgdW5kZWZpbmVkIHZlcnRleEF0dHJpYkk0dWl2KEdMdWlu
dCBpbmRleCwgVWludDMyTGlzdCB2YWx1ZXMpOworICB1bmRlZmluZWQgdmVydGV4QXR0cmliSVBv
aW50ZXIoR0x1aW50IGluZGV4LCBHTGludCBzaXplLCBHTGVudW0gdHlwZSwgR0xzaXplaSBzdHJp
ZGUsIEdMaW50cHRyIG9mZnNldCk7CiAKICAgLyogV3JpdGluZyB0byB0aGUgZHJhd2luZyBidWZm
ZXIgKi8KLSAgdm9pZCB2ZXJ0ZXhBdHRyaWJEaXZpc29yKEdMdWludCBpbmRleCwgR0x1aW50IGRp
dmlzb3IpOwotICB2b2lkIGRyYXdBcnJheXNJbnN0YW5jZWQoR0xlbnVtIG1vZGUsIEdMaW50IGZp
cnN0LCBHTHNpemVpIGNvdW50LCBHTHNpemVpIGluc3RhbmNlQ291bnQpOwotICB2b2lkIGRyYXdF
bGVtZW50c0luc3RhbmNlZChHTGVudW0gbW9kZSwgR0xzaXplaSBjb3VudCwgR0xlbnVtIHR5cGUs
IEdMaW50cHRyIG9mZnNldCwgR0xzaXplaSBpbnN0YW5jZUNvdW50KTsKLSAgdm9pZCBkcmF3UmFu
Z2VFbGVtZW50cyhHTGVudW0gbW9kZSwgR0x1aW50IHN0YXJ0LCBHTHVpbnQgZW5kLCBHTHNpemVp
IGNvdW50LCBHTGVudW0gdHlwZSwgR0xpbnRwdHIgb2Zmc2V0KTsKKyAgdW5kZWZpbmVkIHZlcnRl
eEF0dHJpYkRpdmlzb3IoR0x1aW50IGluZGV4LCBHTHVpbnQgZGl2aXNvcik7CisgIHVuZGVmaW5l
ZCBkcmF3QXJyYXlzSW5zdGFuY2VkKEdMZW51bSBtb2RlLCBHTGludCBmaXJzdCwgR0xzaXplaSBj
b3VudCwgR0xzaXplaSBpbnN0YW5jZUNvdW50KTsKKyAgdW5kZWZpbmVkIGRyYXdFbGVtZW50c0lu
c3RhbmNlZChHTGVudW0gbW9kZSwgR0xzaXplaSBjb3VudCwgR0xlbnVtIHR5cGUsIEdMaW50cHRy
IG9mZnNldCwgR0xzaXplaSBpbnN0YW5jZUNvdW50KTsKKyAgdW5kZWZpbmVkIGRyYXdSYW5nZUVs
ZW1lbnRzKEdMZW51bSBtb2RlLCBHTHVpbnQgc3RhcnQsIEdMdWludCBlbmQsIEdMc2l6ZWkgY291
bnQsIEdMZW51bSB0eXBlLCBHTGludHB0ciBvZmZzZXQpOwogCiAgIC8qIE11bHRpcGxlIFJlbmRl
ciBUYXJnZXRzICovCi0gIHZvaWQgZHJhd0J1ZmZlcnMoc2VxdWVuY2U8R0xlbnVtPiBidWZmZXJz
KTsKKyAgdW5kZWZpbmVkIGRyYXdCdWZmZXJzKHNlcXVlbmNlPEdMZW51bT4gYnVmZmVycyk7CiAK
LSAgdm9pZCBjbGVhckJ1ZmZlcmZ2KEdMZW51bSBidWZmZXIsIEdMaW50IGRyYXdidWZmZXIsIEZs
b2F0MzJMaXN0IHZhbHVlcywKLSAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBz
cmNPZmZzZXQgPSAwKTsKLSAgdm9pZCBjbGVhckJ1ZmZlcml2KEdMZW51bSBidWZmZXIsIEdMaW50
IGRyYXdidWZmZXIsIEludDMyTGlzdCB2YWx1ZXMsCi0gICAgICAgICAgICAgICAgICAgICBvcHRp
b25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCk7Ci0gIHZvaWQgY2xlYXJCdWZmZXJ1aXYoR0xlbnVt
IGJ1ZmZlciwgR0xpbnQgZHJhd2J1ZmZlciwgVWludDMyTGlzdCB2YWx1ZXMsCi0gICAgICAgICAg
ICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDApOworICB1bmRlZmluZWQg
Y2xlYXJCdWZmZXJmdihHTGVudW0gYnVmZmVyLCBHTGludCBkcmF3YnVmZmVyLCBGbG9hdDMyTGlz
dCB2YWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNP
ZmZzZXQgPSAwKTsKKyAgdW5kZWZpbmVkIGNsZWFyQnVmZmVyaXYoR0xlbnVtIGJ1ZmZlciwgR0xp
bnQgZHJhd2J1ZmZlciwgSW50MzJMaXN0IHZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDApOworICB1bmRlZmluZWQgY2xlYXJCdWZm
ZXJ1aXYoR0xlbnVtIGJ1ZmZlciwgR0xpbnQgZHJhd2J1ZmZlciwgVWludDMyTGlzdCB2YWx1ZXMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0g
MCk7CiAKLSAgdm9pZCBjbGVhckJ1ZmZlcmZpKEdMZW51bSBidWZmZXIsIEdMaW50IGRyYXdidWZm
ZXIsIEdMZmxvYXQgZGVwdGgsIEdMaW50IHN0ZW5jaWwpOworICB1bmRlZmluZWQgY2xlYXJCdWZm
ZXJmaShHTGVudW0gYnVmZmVyLCBHTGludCBkcmF3YnVmZmVyLCBHTGZsb2F0IGRlcHRoLCBHTGlu
dCBzdGVuY2lsKTsKIAogICAvKiBRdWVyeSBPYmplY3RzICovCiAgIFdlYkdMUXVlcnk/IGNyZWF0
ZVF1ZXJ5KCk7Ci0gIHZvaWQgZGVsZXRlUXVlcnkoV2ViR0xRdWVyeT8gcXVlcnkpOworICB1bmRl
ZmluZWQgZGVsZXRlUXVlcnkoV2ViR0xRdWVyeT8gcXVlcnkpOwogICBbV2ViR0xIYW5kbGVzQ29u
dGV4dExvc3NdIEdMYm9vbGVhbiBpc1F1ZXJ5KFdlYkdMUXVlcnk/IHF1ZXJ5KTsKLSAgdm9pZCBi
ZWdpblF1ZXJ5KEdMZW51bSB0YXJnZXQsIFdlYkdMUXVlcnkgcXVlcnkpOwotICB2b2lkIGVuZFF1
ZXJ5KEdMZW51bSB0YXJnZXQpOworICB1bmRlZmluZWQgYmVnaW5RdWVyeShHTGVudW0gdGFyZ2V0
LCBXZWJHTFF1ZXJ5IHF1ZXJ5KTsKKyAgdW5kZWZpbmVkIGVuZFF1ZXJ5KEdMZW51bSB0YXJnZXQp
OwogICBXZWJHTFF1ZXJ5PyBnZXRRdWVyeShHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUpOwog
ICBhbnkgZ2V0UXVlcnlQYXJhbWV0ZXIoV2ViR0xRdWVyeSBxdWVyeSwgR0xlbnVtIHBuYW1lKTsK
IAogICAvKiBTYW1wbGVyIE9iamVjdHMgKi8KICAgV2ViR0xTYW1wbGVyPyBjcmVhdGVTYW1wbGVy
KCk7Ci0gIHZvaWQgZGVsZXRlU2FtcGxlcihXZWJHTFNhbXBsZXI/IHNhbXBsZXIpOworICB1bmRl
ZmluZWQgZGVsZXRlU2FtcGxlcihXZWJHTFNhbXBsZXI/IHNhbXBsZXIpOwogICBbV2ViR0xIYW5k
bGVzQ29udGV4dExvc3NdIEdMYm9vbGVhbiBpc1NhbXBsZXIoV2ViR0xTYW1wbGVyPyBzYW1wbGVy
KTsKLSAgdm9pZCBiaW5kU2FtcGxlcihHTHVpbnQgdW5pdCwgV2ViR0xTYW1wbGVyPyBzYW1wbGVy
KTsKLSAgdm9pZCBzYW1wbGVyUGFyYW1ldGVyaShXZWJHTFNhbXBsZXIgc2FtcGxlciwgR0xlbnVt
IHBuYW1lLCBHTGludCBwYXJhbSk7Ci0gIHZvaWQgc2FtcGxlclBhcmFtZXRlcmYoV2ViR0xTYW1w
bGVyIHNhbXBsZXIsIEdMZW51bSBwbmFtZSwgR0xmbG9hdCBwYXJhbSk7CisgIHVuZGVmaW5lZCBi
aW5kU2FtcGxlcihHTHVpbnQgdW5pdCwgV2ViR0xTYW1wbGVyPyBzYW1wbGVyKTsKKyAgdW5kZWZp
bmVkIHNhbXBsZXJQYXJhbWV0ZXJpKFdlYkdMU2FtcGxlciBzYW1wbGVyLCBHTGVudW0gcG5hbWUs
IEdMaW50IHBhcmFtKTsKKyAgdW5kZWZpbmVkIHNhbXBsZXJQYXJhbWV0ZXJmKFdlYkdMU2FtcGxl
ciBzYW1wbGVyLCBHTGVudW0gcG5hbWUsIEdMZmxvYXQgcGFyYW0pOwogICBhbnkgZ2V0U2FtcGxl
clBhcmFtZXRlcihXZWJHTFNhbXBsZXIgc2FtcGxlciwgR0xlbnVtIHBuYW1lKTsKIAogICAvKiBT
eW5jIG9iamVjdHMgKi8KICAgV2ViR0xTeW5jPyBmZW5jZVN5bmMoR0xlbnVtIGNvbmRpdGlvbiwg
R0xiaXRmaWVsZCBmbGFncyk7CiAgIFtXZWJHTEhhbmRsZXNDb250ZXh0TG9zc10gR0xib29sZWFu
IGlzU3luYyhXZWJHTFN5bmM/IHN5bmMpOwotICB2b2lkIGRlbGV0ZVN5bmMoV2ViR0xTeW5jPyBz
eW5jKTsKKyAgdW5kZWZpbmVkIGRlbGV0ZVN5bmMoV2ViR0xTeW5jPyBzeW5jKTsKICAgR0xlbnVt
IGNsaWVudFdhaXRTeW5jKFdlYkdMU3luYyBzeW5jLCBHTGJpdGZpZWxkIGZsYWdzLCBHTHVpbnQ2
NCB0aW1lb3V0KTsKLSAgdm9pZCB3YWl0U3luYyhXZWJHTFN5bmMgc3luYywgR0xiaXRmaWVsZCBm
bGFncywgR0xpbnQ2NCB0aW1lb3V0KTsKKyAgdW5kZWZpbmVkIHdhaXRTeW5jKFdlYkdMU3luYyBz
eW5jLCBHTGJpdGZpZWxkIGZsYWdzLCBHTGludDY0IHRpbWVvdXQpOwogICBhbnkgZ2V0U3luY1Bh
cmFtZXRlcihXZWJHTFN5bmMgc3luYywgR0xlbnVtIHBuYW1lKTsKIAogICAvKiBUcmFuc2Zvcm0g
RmVlZGJhY2sgKi8KICAgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz8gY3JlYXRlVHJhbnNmb3JtRmVl
ZGJhY2soKTsKLSAgdm9pZCBkZWxldGVUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFRyYW5zZm9ybUZl
ZWRiYWNrPyB0Zik7CisgIHVuZGVmaW5lZCBkZWxldGVUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFRy
YW5zZm9ybUZlZWRiYWNrPyB0Zik7CiAgIFtXZWJHTEhhbmRsZXNDb250ZXh0TG9zc10gR0xib29s
ZWFuIGlzVHJhbnNmb3JtRmVlZGJhY2soV2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz8gdGYpOwotICB2
b2lkIGJpbmRUcmFuc2Zvcm1GZWVkYmFjayAoR0xlbnVtIHRhcmdldCwgV2ViR0xUcmFuc2Zvcm1G
ZWVkYmFjaz8gdGYpOwotICB2b2lkIGJlZ2luVHJhbnNmb3JtRmVlZGJhY2soR0xlbnVtIHByaW1p
dGl2ZU1vZGUpOwotICB2b2lkIGVuZFRyYW5zZm9ybUZlZWRiYWNrKCk7Ci0gIHZvaWQgdHJhbnNm
b3JtRmVlZGJhY2tWYXJ5aW5ncyhXZWJHTFByb2dyYW0gcHJvZ3JhbSwgc2VxdWVuY2U8RE9NU3Ry
aW5nPiB2YXJ5aW5ncywgR0xlbnVtIGJ1ZmZlck1vZGUpOworICB1bmRlZmluZWQgYmluZFRyYW5z
Zm9ybUZlZWRiYWNrIChHTGVudW0gdGFyZ2V0LCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrPyB0Zik7
CisgIHVuZGVmaW5lZCBiZWdpblRyYW5zZm9ybUZlZWRiYWNrKEdMZW51bSBwcmltaXRpdmVNb2Rl
KTsKKyAgdW5kZWZpbmVkIGVuZFRyYW5zZm9ybUZlZWRiYWNrKCk7CisgIHVuZGVmaW5lZCB0cmFu
c2Zvcm1GZWVkYmFja1ZhcnlpbmdzKFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBzZXF1ZW5jZTxET01T
dHJpbmc+IHZhcnlpbmdzLCBHTGVudW0gYnVmZmVyTW9kZSk7CiAgIFdlYkdMQWN0aXZlSW5mbz8g
Z2V0VHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5nKFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBHTHVpbnQg
aW5kZXgpOwotICB2b2lkIHBhdXNlVHJhbnNmb3JtRmVlZGJhY2soKTsKLSAgdm9pZCByZXN1bWVU
cmFuc2Zvcm1GZWVkYmFjaygpOworICB1bmRlZmluZWQgcGF1c2VUcmFuc2Zvcm1GZWVkYmFjaygp
OworICB1bmRlZmluZWQgcmVzdW1lVHJhbnNmb3JtRmVlZGJhY2soKTsKIAogICAvKiBVbmlmb3Jt
IEJ1ZmZlciBPYmplY3RzIGFuZCBUcmFuc2Zvcm0gRmVlZGJhY2sgQnVmZmVycyAqLwotICB2b2lk
IGJpbmRCdWZmZXJCYXNlKEdMZW51bSB0YXJnZXQsIEdMdWludCBpbmRleCwgV2ViR0xCdWZmZXI/
IGJ1ZmZlcik7Ci0gIHZvaWQgYmluZEJ1ZmZlclJhbmdlKEdMZW51bSB0YXJnZXQsIEdMdWludCBp
bmRleCwgV2ViR0xCdWZmZXI/IGJ1ZmZlciwgR0xpbnRwdHIgb2Zmc2V0LCBHTHNpemVpcHRyIHNp
emUpOworICB1bmRlZmluZWQgYmluZEJ1ZmZlckJhc2UoR0xlbnVtIHRhcmdldCwgR0x1aW50IGlu
ZGV4LCBXZWJHTEJ1ZmZlcj8gYnVmZmVyKTsKKyAgdW5kZWZpbmVkIGJpbmRCdWZmZXJSYW5nZShH
TGVudW0gdGFyZ2V0LCBHTHVpbnQgaW5kZXgsIFdlYkdMQnVmZmVyPyBidWZmZXIsIEdMaW50cHRy
IG9mZnNldCwgR0xzaXplaXB0ciBzaXplKTsKICAgYW55IGdldEluZGV4ZWRQYXJhbWV0ZXIoR0xl
bnVtIHRhcmdldCwgR0x1aW50IGluZGV4KTsKICAgc2VxdWVuY2U8R0x1aW50Pj8gZ2V0VW5pZm9y
bUluZGljZXMoV2ViR0xQcm9ncmFtIHByb2dyYW0sIHNlcXVlbmNlPERPTVN0cmluZz4gdW5pZm9y
bU5hbWVzKTsKICAgYW55IGdldEFjdGl2ZVVuaWZvcm1zKFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBz
ZXF1ZW5jZTxHTHVpbnQ+IHVuaWZvcm1JbmRpY2VzLCBHTGVudW0gcG5hbWUpOwogICBHTHVpbnQg
Z2V0VW5pZm9ybUJsb2NrSW5kZXgoV2ViR0xQcm9ncmFtIHByb2dyYW0sIERPTVN0cmluZyB1bmlm
b3JtQmxvY2tOYW1lKTsKICAgYW55IGdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihXZWJH
TFByb2dyYW0gcHJvZ3JhbSwgR0x1aW50IHVuaWZvcm1CbG9ja0luZGV4LCBHTGVudW0gcG5hbWUp
OwogICBET01TdHJpbmc/IGdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUoV2ViR0xQcm9ncmFtIHBy
b2dyYW0sIEdMdWludCB1bmlmb3JtQmxvY2tJbmRleCk7Ci0gIHZvaWQgdW5pZm9ybUJsb2NrQmlu
ZGluZyhXZWJHTFByb2dyYW0gcHJvZ3JhbSwgR0x1aW50IHVuaWZvcm1CbG9ja0luZGV4LCBHTHVp
bnQgdW5pZm9ybUJsb2NrQmluZGluZyk7CisgIHVuZGVmaW5lZCB1bmlmb3JtQmxvY2tCaW5kaW5n
KFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBHTHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdMdWludCB1
bmlmb3JtQmxvY2tCaW5kaW5nKTsKIAogICAvKiBWZXJ0ZXggQXJyYXkgT2JqZWN0cyAqLwogICBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0PyBjcmVhdGVWZXJ0ZXhBcnJheSgpOwotICB2b2lkIGRlbGV0
ZVZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3Q/IHZlcnRleEFycmF5KTsKKyAgdW5k
ZWZpbmVkIGRlbGV0ZVZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3Q/IHZlcnRleEFy
cmF5KTsKICAgW1dlYkdMSGFuZGxlc0NvbnRleHRMb3NzXSBHTGJvb2xlYW4gaXNWZXJ0ZXhBcnJh
eShXZWJHTFZlcnRleEFycmF5T2JqZWN0PyB2ZXJ0ZXhBcnJheSk7Ci0gIHZvaWQgYmluZFZlcnRl
eEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3Q/IGFycmF5KTsKKyAgdW5kZWZpbmVkIGJpbmRW
ZXJ0ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2JqZWN0PyBhcnJheSk7CiB9OwogCiBpbnRlcmZh
Y2UgbWl4aW4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dE92ZXJsb2FkcwogewogICAvLyBXZWJHTDE6
Ci0gIHZvaWQgYnVmZmVyRGF0YShHTGVudW0gdGFyZ2V0LCBHTHNpemVpcHRyIHNpemUsIEdMZW51
bSB1c2FnZSk7Ci0gIHZvaWQgYnVmZmVyRGF0YShHTGVudW0gdGFyZ2V0LCBbQWxsb3dTaGFyZWRd
IEJ1ZmZlclNvdXJjZT8gc3JjRGF0YSwgR0xlbnVtIHVzYWdlKTsKLSAgdm9pZCBidWZmZXJTdWJE
YXRhKEdMZW51bSB0YXJnZXQsIEdMaW50cHRyIGRzdEJ5dGVPZmZzZXQsIFtBbGxvd1NoYXJlZF0g
QnVmZmVyU291cmNlIHNyY0RhdGEpOworICB1bmRlZmluZWQgYnVmZmVyRGF0YShHTGVudW0gdGFy
Z2V0LCBHTHNpemVpcHRyIHNpemUsIEdMZW51bSB1c2FnZSk7CisgIHVuZGVmaW5lZCBidWZmZXJE
YXRhKEdMZW51bSB0YXJnZXQsIFtBbGxvd1NoYXJlZF0gQnVmZmVyU291cmNlPyBzcmNEYXRhLCBH
TGVudW0gdXNhZ2UpOworICB1bmRlZmluZWQgYnVmZmVyU3ViRGF0YShHTGVudW0gdGFyZ2V0LCBH
TGludHB0ciBkc3RCeXRlT2Zmc2V0LCBbQWxsb3dTaGFyZWRdIEJ1ZmZlclNvdXJjZSBzcmNEYXRh
KTsKICAgLy8gV2ViR0wyOgotICB2b2lkIGJ1ZmZlckRhdGEoR0xlbnVtIHRhcmdldCwgW0FsbG93
U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXcgc3JjRGF0YSwgR0xlbnVtIHVzYWdlLCBHTHVpbnQgc3Jj
T2Zmc2V0LAotICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IGxlbmd0aCA9IDApOwot
ICB2b2lkIGJ1ZmZlclN1YkRhdGEoR0xlbnVtIHRhcmdldCwgR0xpbnRwdHIgZHN0Qnl0ZU9mZnNl
dCwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXcgc3JjRGF0YSwKLSAgICAgICAgICAgICAg
ICAgICAgIEdMdWludCBzcmNPZmZzZXQsIG9wdGlvbmFsIEdMdWludCBsZW5ndGggPSAwKTsKKyAg
dW5kZWZpbmVkIGJ1ZmZlckRhdGEoR0xlbnVtIHRhcmdldCwgW0FsbG93U2hhcmVkXSBBcnJheUJ1
ZmZlclZpZXcgc3JjRGF0YSwgR0xlbnVtIHVzYWdlLCBHTHVpbnQgc3JjT2Zmc2V0LAorICAgICAg
ICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgbGVuZ3RoID0gMCk7CisgIHVuZGVmaW5l
ZCBidWZmZXJTdWJEYXRhKEdMZW51bSB0YXJnZXQsIEdMaW50cHRyIGRzdEJ5dGVPZmZzZXQsIFtB
bGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3IHNyY0RhdGEsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdMdWludCBzcmNPZmZzZXQsIG9wdGlvbmFsIEdMdWludCBsZW5ndGggPSAwKTsKIAog
ICAvLyBXZWJHTDEgbGVnYWN5IGVudHJ5cG9pbnRzOgotICB2b2lkIHRleEltYWdlMkQoR0xlbnVt
IHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IGludGVybmFsZm9ybWF0LAotICAgICAgICAgICAg
ICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMaW50IGJvcmRlciwgR0xlbnVt
IGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgIEdMZW51bSB0eXBlLCBbQWxsb3dTaGFyZWRdIEFy
cmF5QnVmZmVyVmlldz8gcGl4ZWxzKTsKLSAgdm9pZCB0ZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQs
IEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgIEdM
ZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBUZXhJbWFnZVNvdXJjZSBzb3VyY2UpOyAvLyBNYXkg
dGhyb3cgRE9NRXhjZXB0aW9uCi0KLSAgdm9pZCB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQs
IEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LAotICAgICAgICAgICAg
ICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsCi0gICAgICAgICAgICAgICAg
ICAgICBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZl
clZpZXc/IHBpeGVscyk7Ci0gIHZvaWQgdGV4U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGlu
dCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwKLSAgICAgICAgICAgICAgICAg
ICAgIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBUZXhJbWFnZVNvdXJjZSBzb3VyY2UpOyAv
LyBNYXkgdGhyb3cgRE9NRXhjZXB0aW9uCisgIHVuZGVmaW5lZCB0ZXhJbWFnZTJEKEdMZW51bSB0
YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbGZvcm1hdCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMaW50IGJvcmRlciwgR0xl
bnVtIGZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIHR5cGUsIFtBbGxvd1No
YXJlZF0gQXJyYXlCdWZmZXJWaWV3PyBwaXhlbHMpOworICB1bmRlZmluZWQgdGV4SW1hZ2UyRChH
TGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgaW50ZXJuYWxmb3JtYXQsCisgICAgICAg
ICAgICAgICAgICAgICAgIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBUZXhJbWFnZVNvdXJj
ZSBzb3VyY2UpOyAvLyBNYXkgdGhyb3cgRE9NRXhjZXB0aW9uCisKKyAgdW5kZWZpbmVkIHRleFN1
YkltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50
IHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6
ZWkgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBHTGVu
dW0gdHlwZSwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXc/IHBpeGVscyk7CisgIHVuZGVm
aW5lZCB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zm
c2V0LCBHTGludCB5b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gZm9y
bWF0LCBHTGVudW0gdHlwZSwgVGV4SW1hZ2VTb3VyY2Ugc291cmNlKTsgLy8gTWF5IHRocm93IERP
TUV4Y2VwdGlvbgogCiAgIC8vIFdlYkdMMiBlbnRyeXBvaW50czoKLSAgdm9pZCB0ZXhJbWFnZTJE
KEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbGZvcm1hdCwgR0xzaXpl
aSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsCi0gICAgICAgICAgICAgICAgICBHTGludCBib3JkZXIs
IEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBHTGludHB0ciBwYm9PZmZzZXQpOwotICB2b2lk
IHRleEltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IGludGVybmFsZm9y
bWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwKLSAgICAgICAgICAgICAgICAgIEdM
aW50IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsCi0gICAgICAgICAgICAgICAg
ICBUZXhJbWFnZVNvdXJjZSBzb3VyY2UpOyAvLyBNYXkgdGhyb3cgRE9NRXhjZXB0aW9uCi0gIHZv
aWQgdGV4SW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgaW50ZXJuYWxm
b3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAotICAgICAgICAgICAgICAgICAg
R0xpbnQgYm9yZGVyLCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgW0FsbG93U2hhcmVkXSBB
cnJheUJ1ZmZlclZpZXcgc3JjRGF0YSwKLSAgICAgICAgICAgICAgICAgIEdMdWludCBzcmNPZmZz
ZXQpOwotCi0gIHZvaWQgdGV4U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwg
R0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwgR0xzaXplaSB3aWR0aCwKLSAgICAgICAgICAg
ICAgICAgICAgIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgR0xp
bnRwdHIgcGJvT2Zmc2V0KTsKLSAgdm9pZCB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdM
aW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTHNpemVpIHdpZHRoLAot
ICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSBoZWlnaHQsIEdMZW51bSBmb3JtYXQsIEdMZW51
bSB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgVGV4SW1hZ2VTb3VyY2Ugc291cmNlKTsgLy8g
TWF5IHRocm93IERPTUV4Y2VwdGlvbgotICB2b2lkIHRleFN1YkltYWdlMkQoR0xlbnVtIHRhcmdl
dCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsIEdMc2l6ZWkgd2lk
dGgsCi0gICAgICAgICAgICAgICAgICAgICBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwg
R0xlbnVtIHR5cGUsIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3IHNyY0RhdGEsCi0gICAg
ICAgICAgICAgICAgICAgICBHTHVpbnQgc3JjT2Zmc2V0KTsKLQotICB2b2lkIGNvbXByZXNzZWRU
ZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdMc2l6ZWkgd2lkdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSBo
ZWlnaHQsIEdMaW50IGJvcmRlciwgR0xzaXplaSBpbWFnZVNpemUsIEdMaW50cHRyIG9mZnNldCk7
Ci0gIHZvaWQgY29tcHJlc3NlZFRleEltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWws
IEdMZW51bSBpbnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0aCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHTHNpemVpIGhlaWdodCwgR0xpbnQgYm9yZGVyLCBbQWxsb3dTaGFyZWRdIEFy
cmF5QnVmZmVyVmlldyBzcmNEYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlv
bmFsIEdMdWludCBzcmNPZmZzZXQgPSAwLCBvcHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoT3ZlcnJp
ZGUgPSAwKTsKLQotICB2b2lkIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQs
IEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0g
Zm9ybWF0LCBHTHNpemVpIGltYWdlU2l6ZSwgR0xpbnRwdHIgb2Zmc2V0KTsKLSAgdm9pZCBjb21w
cmVzc2VkVGV4U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9m
ZnNldCwgR0xpbnQgeW9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNp
emVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVyVmlldyBzcmNEYXRhLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQg
PSAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNM
ZW5ndGhPdmVycmlkZSA9IDApOwotCi0gIHZvaWQgdW5pZm9ybTFmdihXZWJHTFVuaWZvcm1Mb2Nh
dGlvbj8gbG9jYXRpb24sIEZsb2F0MzJMaXN0IGRhdGEsIG9wdGlvbmFsIEdMdWludCBzcmNPZmZz
ZXQgPSAwLAotICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDAp
OwotICB2b2lkIHVuaWZvcm0yZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBGbG9h
dDMyTGlzdCBkYXRhLCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKLSAgICAgICAgICAg
ICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKLSAgdm9pZCB1bmlmb3JtM2Z2
KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgRmxvYXQzMkxpc3QgZGF0YSwgb3B0aW9u
YWwgR0x1aW50IHNyY09mZnNldCA9IDAsCi0gICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVp
bnQgc3JjTGVuZ3RoID0gMCk7Ci0gIHZvaWQgdW5pZm9ybTRmdihXZWJHTFVuaWZvcm1Mb2NhdGlv
bj8gbG9jYXRpb24sIEZsb2F0MzJMaXN0IGRhdGEsIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQg
PSAwLAotICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOwot
Ci0gIHZvaWQgdW5pZm9ybTFpdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEludDMy
TGlzdCBkYXRhLCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKLSAgICAgICAgICAgICAg
ICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKLSAgdm9pZCB1bmlmb3JtMml2KFdl
YkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgSW50MzJMaXN0IGRhdGEsIG9wdGlvbmFsIEdM
dWludCBzcmNPZmZzZXQgPSAwLAotICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNy
Y0xlbmd0aCA9IDApOwotICB2b2lkIHVuaWZvcm0zaXYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxv
Y2F0aW9uLCBJbnQzMkxpc3QgZGF0YSwgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsCi0g
ICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoID0gMCk7Ci0gIHZvaWQg
dW5pZm9ybTRpdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEludDMyTGlzdCBkYXRh
LCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKLSAgICAgICAgICAgICAgICAgIG9wdGlv
bmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKLQotICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoV2Vi
R0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMy
TGlzdCBkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY09m
ZnNldCA9IDAsIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKLSAgdm9pZCB1bmlmb3Jt
TWF0cml4M2Z2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xib29sZWFuIHRyYW5z
cG9zZSwgRmxvYXQzMkxpc3QgZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFs
IEdMdWludCBzcmNPZmZzZXQgPSAwLCBvcHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoID0gMCk7Ci0g
IHZvaWQgdW5pZm9ybU1hdHJpeDRmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdM
Ym9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0IGRhdGEsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwgb3B0aW9uYWwgR0x1aW50IHNyY0xl
bmd0aCA9IDApOworICB1bmRlZmluZWQgdGV4SW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBs
ZXZlbCwgR0xpbnQgaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0
LAorICAgICAgICAgICAgICAgICAgICAgICBHTGludCBib3JkZXIsIEdMZW51bSBmb3JtYXQsIEdM
ZW51bSB0eXBlLCBHTGludHB0ciBwYm9PZmZzZXQpOworICB1bmRlZmluZWQgdGV4SW1hZ2UyRChH
TGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkg
d2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICBHTGludCBib3Jk
ZXIsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICBU
ZXhJbWFnZVNvdXJjZSBzb3VyY2UpOyAvLyBNYXkgdGhyb3cgRE9NRXhjZXB0aW9uCisgIHVuZGVm
aW5lZCB0ZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5h
bGZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsCisgICAgICAgICAgICAgICAg
ICAgICAgIEdMaW50IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIFtBbGxvd1No
YXJlZF0gQXJyYXlCdWZmZXJWaWV3IHNyY0RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgIEdM
dWludCBzcmNPZmZzZXQpOworCisgIHVuZGVmaW5lZCB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJn
ZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTHNpemVpIHdp
ZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZv
cm1hdCwgR0xlbnVtIHR5cGUsIEdMaW50cHRyIHBib09mZnNldCk7CisgIHVuZGVmaW5lZCB0ZXhT
dWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGlu
dCB5b2Zmc2V0LCBHTHNpemVpIHdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNp
emVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIFRleEltYWdlU291cmNlIHNvdXJjZSk7IC8vIE1heSB0aHJvdyBET01FeGNlcHRp
b24KKyAgdW5kZWZpbmVkIHRleFN1YkltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWws
IEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsIEdMc2l6ZWkgd2lkdGgsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlw
ZSwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXcgc3JjRGF0YSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0x1aW50IHNyY09mZnNldCk7CisKKyAgdW5kZWZpbmVkIGNvbXByZXNzZWRU
ZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdMc2l6ZWkgd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNp
emVpIGhlaWdodCwgR0xpbnQgYm9yZGVyLCBHTHNpemVpIGltYWdlU2l6ZSwgR0xpbnRwdHIgb2Zm
c2V0KTsKKyAgdW5kZWZpbmVkIGNvbXByZXNzZWRUZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdM
aW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIGhlaWdodCwgR0xpbnQgYm9yZGVyLCBb
QWxsb3dTaGFyZWRdIEFycmF5QnVmZmVyVmlldyBzcmNEYXRhLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsIG9wdGlvbmFsIEdM
dWludCBzcmNMZW5ndGhPdmVycmlkZSA9IDApOworCisgIHVuZGVmaW5lZCBjb21wcmVzc2VkVGV4
U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xp
bnQgeW9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkg
d2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTHNpemVpIGltYWdlU2l6ZSwg
R0xpbnRwdHIgb2Zmc2V0KTsKKyAgdW5kZWZpbmVkIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKEdM
ZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXpl
aSBoZWlnaHQsIEdMZW51bSBmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVyVmlldyBzcmNEYXRhLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjTGVu
Z3RoT3ZlcnJpZGUgPSAwKTsKKworICB1bmRlZmluZWQgdW5pZm9ybTFmdihXZWJHTFVuaWZvcm1M
b2NhdGlvbj8gbG9jYXRpb24sIEZsb2F0MzJMaXN0IGRhdGEsIG9wdGlvbmFsIEdMdWludCBzcmNP
ZmZzZXQgPSAwLAorICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjTGVu
Z3RoID0gMCk7CisgIHVuZGVmaW5lZCB1bmlmb3JtMmZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBs
b2NhdGlvbiwgRmxvYXQzMkxpc3QgZGF0YSwgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAs
CisgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsK
KyAgdW5kZWZpbmVkIHVuaWZvcm0zZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBG
bG9hdDMyTGlzdCBkYXRhLCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOworICB1bmRlZmlu
ZWQgdW5pZm9ybTRmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEZsb2F0MzJMaXN0
IGRhdGEsIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAwLAorICAgICAgICAgICAgICAgICAg
ICAgICBvcHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoID0gMCk7CisKKyAgdW5kZWZpbmVkIHVuaWZv
cm0xaXYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBJbnQzMkxpc3QgZGF0YSwgb3B0
aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsCisgICAgICAgICAgICAgICAgICAgICAgIG9wdGlv
bmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKKyAgdW5kZWZpbmVkIHVuaWZvcm0yaXYoV2ViR0xV
bmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBJbnQzMkxpc3QgZGF0YSwgb3B0aW9uYWwgR0x1aW50
IHNyY09mZnNldCA9IDAsCisgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBz
cmNMZW5ndGggPSAwKTsKKyAgdW5kZWZpbmVkIHVuaWZvcm0zaXYoV2ViR0xVbmlmb3JtTG9jYXRp
b24/IGxvY2F0aW9uLCBJbnQzMkxpc3QgZGF0YSwgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9
IDAsCisgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAw
KTsKKyAgdW5kZWZpbmVkIHVuaWZvcm00aXYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9u
LCBJbnQzMkxpc3QgZGF0YSwgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsCisgICAgICAg
ICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKKworICB1bmRl
ZmluZWQgdW5pZm9ybU1hdHJpeDJmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdM
Ym9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0IGRhdGEsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAwLCBvcHRpb25hbCBHTHVpbnQg
c3JjTGVuZ3RoID0gMCk7CisgIHVuZGVmaW5lZCB1bmlmb3JtTWF0cml4M2Z2KFdlYkdMVW5pZm9y
bUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0
YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNl
dCA9IDAsIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKKyAgdW5kZWZpbmVkIHVuaWZv
cm1NYXRyaXg0ZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJh
bnNwb3NlLCBGbG9hdDMyTGlzdCBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
cHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9
IDApOwogCiAgIC8qIFJlYWRpbmcgYmFjayBwaXhlbHMgKi8KICAgLy8gV2ViR0wxOgotICB2b2lk
IHJlYWRQaXhlbHMoR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWln
aHQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLAotICAgICAgICAgICAgICAgICAgW0FsbG93
U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXc/IGRzdERhdGEpOworICB1bmRlZmluZWQgcmVhZFBpeGVs
cyhHTGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVt
IGZvcm1hdCwgR0xlbnVtIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgIFtBbGxvd1NoYXJl
ZF0gQXJyYXlCdWZmZXJWaWV3PyBkc3REYXRhKTsKICAgLy8gV2ViR0wyOgotICB2b2lkIHJlYWRQ
aXhlbHMoR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdM
ZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLAotICAgICAgICAgICAgICAgICAgR0xpbnRwdHIgb2Zm
c2V0KTsKLSAgdm9pZCByZWFkUGl4ZWxzKEdMaW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGgs
IEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwKLSAgICAgICAgICAg
ICAgICAgIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3IGRzdERhdGEsIEdMdWludCBkc3RP
ZmZzZXQpOworICB1bmRlZmluZWQgcmVhZFBpeGVscyhHTGludCB4LCBHTGludCB5LCBHTHNpemVp
IHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsCisgICAg
ICAgICAgICAgICAgICAgICAgIEdMaW50cHRyIG9mZnNldCk7CisgIHVuZGVmaW5lZCByZWFkUGl4
ZWxzKEdMaW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVu
dW0gZm9ybWF0LCBHTGVudW0gdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgW0FsbG93U2hh
cmVkXSBBcnJheUJ1ZmZlclZpZXcgZHN0RGF0YSwgR0x1aW50IGRzdE9mZnNldCk7CiB9OwogCiBb
RXhwb3NlZD0oV2luZG93LFdvcmtlcildCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvd2VieHItZ2FtZXBhZHMtbW9kdWxl
LmlkbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJm
YWNlcy93ZWJ4ci1nYW1lcGFkcy1tb2R1bGUuaWRsCmluZGV4IGY2MjNjNjMyYmNlZjIzNmE0ZDU4
NzI5MTQ3NzhkNmYyNTM3NWJhMTQuLmY2MzkyMWMwMTUwNjZkMTEzNTVjODk3YWZjMzAwODRiMTdl
MzI3NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaW50ZXJmYWNlcy93ZWJ4ci1nYW1lcGFkcy1tb2R1bGUuaWRsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy93ZWJ4ci1nYW1l
cGFkcy1tb2R1bGUuaWRsCkBAIC02LDkgKzYsMyBAQAogcGFydGlhbCBpbnRlcmZhY2UgWFJJbnB1
dFNvdXJjZSB7CiAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgR2FtZXBhZD8gZ2Ft
ZXBhZDsKIH07Ci0KLWVudW0gR2FtZXBhZE1hcHBpbmdUeXBlIHsKLSAgIiIsICAgICAgICAgICAg
Ly8gRGVmaW5lZCBpbiB0aGUgR2FtZXBhZCBBUEkKLSAgInN0YW5kYXJkIiwgICAgLy8gRGVmaW5l
ZCBpbiB0aGUgR2FtZXBhZCBBUEkKLSAgInhyLXN0YW5kYXJkIiwKLX07CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvd2Vi
eHItaGFuZC1pbnB1dC5pZGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ludGVyZmFjZXMvd2VieHItaGFuZC1pbnB1dC5pZGwKaW5kZXggNDMzNGQ5Njc5M2My
MTFkZWFmOGE4ODE2Yjk1YjNjOTQ0MTg2ZTJlZS4uZTg5MjEwY2Q1Njk1MDQ5Zjk0NTViZWU0MmYz
ODY5OTllMTVkYTViYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL3dlYnhyLWhhbmQtaW5wdXQuaWRsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy93ZWJ4ci1o
YW5kLWlucHV0LmlkbApAQCAtNyw0NiArNyw1MSBAQCBwYXJ0aWFsIGludGVyZmFjZSBYUklucHV0
U291cmNlIHsKICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBYUkhhbmQ/IGhhbmQ7CiB9OwogCitlbnVt
IFhSSGFuZEpvaW50IHsKKyAgIndyaXN0IiwKKworICAidGh1bWItbWV0YWNhcnBhbCIsCisgICJ0
aHVtYi1waGFsYW54LXByb3hpbWFsIiwKKyAgInRodW1iLXBoYWxhbngtZGlzdGFsIiwKKyAgInRo
dW1iLXRpcCIsCisKKyAgImluZGV4LWZpbmdlci1tZXRhY2FycGFsIiwKKyAgImluZGV4LWZpbmdl
ci1waGFsYW54LXByb3hpbWFsIiwKKyAgImluZGV4LWZpbmdlci1waGFsYW54LWludGVybWVkaWF0
ZSIsCisgICJpbmRleC1maW5nZXItcGhhbGFueC1kaXN0YWwiLAorICAiaW5kZXgtZmluZ2VyLXRp
cCIsCisKKyAgIm1pZGRsZS1maW5nZXItbWV0YWNhcnBhbCIsCisgICJtaWRkbGUtZmluZ2VyLXBo
YWxhbngtcHJveGltYWwiLAorICAibWlkZGxlLWZpbmdlci1waGFsYW54LWludGVybWVkaWF0ZSIs
CisgICJtaWRkbGUtZmluZ2VyLXBoYWxhbngtZGlzdGFsIiwKKyAgIm1pZGRsZS1maW5nZXItdGlw
IiwKKworICAicmluZy1maW5nZXItbWV0YWNhcnBhbCIsCisgICJyaW5nLWZpbmdlci1waGFsYW54
LXByb3hpbWFsIiwKKyAgInJpbmctZmluZ2VyLXBoYWxhbngtaW50ZXJtZWRpYXRlIiwKKyAgInJp
bmctZmluZ2VyLXBoYWxhbngtZGlzdGFsIiwKKyAgInJpbmctZmluZ2VyLXRpcCIsCisKKyAgInBp
bmt5LWZpbmdlci1tZXRhY2FycGFsIiwKKyAgInBpbmt5LWZpbmdlci1waGFsYW54LXByb3hpbWFs
IiwKKyAgInBpbmt5LWZpbmdlci1waGFsYW54LWludGVybWVkaWF0ZSIsCisgICJwaW5reS1maW5n
ZXItcGhhbGFueC1kaXN0YWwiLAorICAicGlua3ktZmluZ2VyLXRpcCIKK307CisKIFtFeHBvc2Vk
PVdpbmRvd10KIGludGVyZmFjZSBYUkhhbmQgewotICAgIGl0ZXJhYmxlPFhSSm9pbnRTcGFjZT47
Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwotICAgIGdldHRl
ciBYUkpvaW50U3BhY2Ugam9pbnQodW5zaWduZWQgbG9uZyBqb2ludEluZGV4KTsKLQotICAgIGNv
bnN0IHVuc2lnbmVkIGxvbmcgV1JJU1QgPSAwOwotCi0gICAgY29uc3QgdW5zaWduZWQgbG9uZyBU
SFVNQl9NRVRBQ0FSUEFMID0gMTsKLSAgICBjb25zdCB1bnNpZ25lZCBsb25nIFRIVU1CX1BIQUxB
TlhfUFJPWElNQUwgPSAyOwotICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgVEhVTUJfUEhBTEFOWF9E
SVNUQUwgPSAzOwotICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgVEhVTUJfUEhBTEFOWF9USVAgPSA0
OwotCi0gICAgY29uc3QgdW5zaWduZWQgbG9uZyBJTkRFWF9NRVRBQ0FSUEFMID0gNTsKLSAgICBj
b25zdCB1bnNpZ25lZCBsb25nIElOREVYX1BIQUxBTlhfUFJPWElNQUwgPSA2OwotICAgIGNvbnN0
IHVuc2lnbmVkIGxvbmcgSU5ERVhfUEhBTEFOWF9JTlRFUk1FRElBVEUgPSA3OwotICAgIGNvbnN0
IHVuc2lnbmVkIGxvbmcgSU5ERVhfUEhBTEFOWF9ESVNUQUwgPSA4OwotICAgIGNvbnN0IHVuc2ln
bmVkIGxvbmcgSU5ERVhfUEhBTEFOWF9USVAgPSA5OwotCi0gICAgY29uc3QgdW5zaWduZWQgbG9u
ZyBNSURETEVfTUVUQUNBUlBBTCA9IDEwOwotICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgTUlERExF
X1BIQUxBTlhfUFJPWElNQUwgPSAxMTsKLSAgICBjb25zdCB1bnNpZ25lZCBsb25nIE1JRERMRV9Q
SEFMQU5YX0lOVEVSTUVESUFURSA9IDEyOwotICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgTUlERExF
X1BIQUxBTlhfRElTVEFMID0gMTM7Ci0gICAgY29uc3QgdW5zaWduZWQgbG9uZyBNSURETEVfUEhB
TEFOWF9USVAgPSAxNDsKLQotICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgUklOR19NRVRBQ0FSUEFM
ID0gMTU7Ci0gICAgY29uc3QgdW5zaWduZWQgbG9uZyBSSU5HX1BIQUxBTlhfUFJPWElNQUwgPSAx
NjsKLSAgICBjb25zdCB1bnNpZ25lZCBsb25nIFJJTkdfUEhBTEFOWF9JTlRFUk1FRElBVEUgPSAx
NzsKLSAgICBjb25zdCB1bnNpZ25lZCBsb25nIFJJTkdfUEhBTEFOWF9ESVNUQUwgPSAxODsKLSAg
ICBjb25zdCB1bnNpZ25lZCBsb25nIFJJTkdfUEhBTEFOWF9USVAgPSAxOTsKLQotICAgIGNvbnN0
IHVuc2lnbmVkIGxvbmcgTElUVExFX01FVEFDQVJQQUwgPSAyMDsKLSAgICBjb25zdCB1bnNpZ25l
ZCBsb25nIExJVFRMRV9QSEFMQU5YX1BST1hJTUFMID0gMjE7Ci0gICAgY29uc3QgdW5zaWduZWQg
bG9uZyBMSVRUTEVfUEhBTEFOWF9JTlRFUk1FRElBVEUgPSAyMjsKLSAgICBjb25zdCB1bnNpZ25l
ZCBsb25nIExJVFRMRV9QSEFMQU5YX0RJU1RBTCA9IDIzOwotICAgIGNvbnN0IHVuc2lnbmVkIGxv
bmcgTElUVExFX1BIQUxBTlhfVElQID0gMjQ7CisgICAgaXRlcmFibGU8WFJIYW5kSm9pbnQsIFhS
Sm9pbnRTcGFjZT47CisKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzaXpl
OworICAgIFhSSm9pbnRTcGFjZSBnZXQoWFJIYW5kSm9pbnQga2V5KTsKIH07CiAKIFtFeHBvc2Vk
PVdpbmRvd10KLWludGVyZmFjZSBYUkpvaW50U3BhY2U6IFhSU3BhY2Uge307CitpbnRlcmZhY2Ug
WFJKb2ludFNwYWNlOiBYUlNwYWNlIHsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIFhSSGFuZEpvaW50
IGpvaW50TmFtZTsKK307CiAKIHBhcnRpYWwgaW50ZXJmYWNlIFhSRnJhbWUgewogICAgIFhSSm9p
bnRQb3NlPyBnZXRKb2ludFBvc2UoWFJKb2ludFNwYWNlIGpvaW50LCBYUlNwYWNlIGJhc2VTcGFj
ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ludGVyZmFjZXMvd2VieHIuaWRsIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL3dlYnhyLmlkbAppbmRleCBjMWI3MTc1NzY1ZDc4OGI5
OTgxZDViZDBhNjY0MGI0NmNhZmI3Y2IyLi4zZTViNDMyNDY4NjQ4NjA2YzA0ZDExM2NjYjI5ZGRi
NjQyODcyYjVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ludGVyZmFjZXMvd2VieHIuaWRsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy93ZWJ4ci5pZGwKQEAgLTE0MSw2ICsx
NDEsOSBAQCBpbnRlcmZhY2UgWFJSaWdpZFRyYW5zZm9ybSB7CiAKIFtTZWN1cmVDb250ZXh0LCBF
eHBvc2VkPVdpbmRvd10gaW50ZXJmYWNlIFhSUG9zZSB7CiAgIFtTYW1lT2JqZWN0XSByZWFkb25s
eSBhdHRyaWJ1dGUgWFJSaWdpZFRyYW5zZm9ybSB0cmFuc2Zvcm07CisgIFtTYW1lT2JqZWN0XSBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NUG9pbnRSZWFkT25seT8gbGluZWFyVmVsb2NpdHk7CisgIFtT
YW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NUG9pbnRSZWFkT25seT8gYW5ndWxhclZl
bG9jaXR5OworCiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGVtdWxhdGVkUG9zaXRpb247
CiB9OwogCkBAIC0xOTksNiArMjAyLDcgQEAgaW50ZXJmYWNlIFhSV2ViR0xMYXllcjogWFJMYXll
ciB7CiAgIC8vIEF0dHJpYnV0ZXMKICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gYW50aWFs
aWFzOwogICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpZ25vcmVEZXB0aFZhbHVlczsKKyAg
YXR0cmlidXRlIGZsb2F0PyBmaXhlZEZvdmVhdGlvbjsKIAogICBbU2FtZU9iamVjdF0gcmVhZG9u
bHkgYXR0cmlidXRlIFdlYkdMRnJhbWVidWZmZXI/IGZyYW1lYnVmZmVyOwogICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBmcmFtZWJ1ZmZlcldpZHRoOwpAQCAtMjY4LDYgKzI3Miwx
MCBAQCBkaWN0aW9uYXJ5IFhSUmVmZXJlbmNlU3BhY2VFdmVudEluaXQgOiBFdmVudEluaXQgewog
ICBYUlJpZ2lkVHJhbnNmb3JtPyB0cmFuc2Zvcm0gPSBudWxsOwogfTsKIAorZGljdGlvbmFyeSBY
UlNlc3Npb25TdXBwb3J0ZWRQZXJtaXNzaW9uRGVzY3JpcHRvcjogUGVybWlzc2lvbkRlc2NyaXB0
b3IgeworICBYUlNlc3Npb25Nb2RlIG1vZGU7Cit9OworCiBkaWN0aW9uYXJ5IFhSUGVybWlzc2lv
bkRlc2NyaXB0b3I6IFBlcm1pc3Npb25EZXNjcmlwdG9yIHsKICAgWFJTZXNzaW9uTW9kZSBtb2Rl
OwogICBzZXF1ZW5jZTxhbnk+IHJlcXVpcmVkRmVhdHVyZXM7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhc2Vzc2lvbi9pZGxoYXJu
ZXNzLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL21lZGlhc2Vzc2lvbi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQK
aW5kZXggZmVjNmQ2NDM4OWVkZTFjMjBkNGYyNjIzNTdmMTI2MmM3MTFhMDEzNS4uZjRiMzE1OWRm
NThmZTU5OTI5MTJhODkzNTc0ZWIxN2RjZTYxOTM3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYXNlc3Npb24vaWRsaGFybmVzcy53
aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9uL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApA
QCAtMjIsNiArMjIsOCBAQCBQQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBt
ZXRhZGF0YQogUEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcGxheWJhY2tT
dGF0ZQogUEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0QWN0aW9uSGFu
ZGxlcihNZWRpYVNlc3Npb25BY3Rpb24sIE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI/KQogUEFT
UyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0UG9zaXRpb25TdGF0ZShvcHRp
b25hbCBNZWRpYVBvc2l0aW9uU3RhdGUpCitGQUlMIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IG9w
ZXJhdGlvbiBzZXRNaWNyb3Bob25lQWN0aXZlKGJvb2xlYW4pIGFzc2VydF9vd25fcHJvcGVydHk6
IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24g
ZXhwZWN0ZWQgcHJvcGVydHkgInNldE1pY3JvcGhvbmVBY3RpdmUiIG1pc3NpbmcKK0ZBSUwgTWVk
aWFTZXNzaW9uIGludGVyZmFjZTogb3BlcmF0aW9uIHNldENhbWVyYUFjdGl2ZShib29sZWFuKSBh
c3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5v
bi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJzZXRDYW1lcmFBY3RpdmUiIG1p
c3NpbmcKIFBBU1MgTWVkaWFTZXNzaW9uIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbgogUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgbmF2aWdhdG9yLm1l
ZGlhU2Vzc2lvbgogUEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBuYXZpZ2F0b3IubWVkaWFT
ZXNzaW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibWV0YWRhdGEiIHdpdGggdGhlIHByb3BlciB0
eXBlCkBAIC0zMCw2ICszMiwxMCBAQCBQQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IG5hdmln
YXRvci5tZWRpYVNlc3Npb24gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZXRBYwogUEFTUyBNZWRp
YVNlc3Npb24gaW50ZXJmYWNlOiBjYWxsaW5nIHNldEFjdGlvbkhhbmRsZXIoTWVkaWFTZXNzaW9u
QWN0aW9uLCBNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyPykgb24gbmF2aWdhdG9yLm1lZGlhU2Vz
c2lvbiB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yCiBQQVNTIE1l
ZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IG5hdmlnYXRvci5tZWRpYVNlc3Npb24gbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJzZXRQb3NpdGlvblN0YXRlKG9wdGlvbmFsIE1lZGlhUG9zaXRpb25TdGF0ZSki
IHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGNhbGxp
bmcgc2V0UG9zaXRpb25TdGF0ZShvcHRpb25hbCBNZWRpYVBvc2l0aW9uU3RhdGUpIG9uIG5hdmln
YXRvci5tZWRpYVNlc3Npb24gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVF
cnJvcgorRkFJTCBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBuYXZpZ2F0b3IubWVkaWFTZXNzaW9u
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2V0TWljcm9waG9uZUFjdGl2ZShib29sZWFuKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAic2V0TWljcm9waG9u
ZUFjdGl2ZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBNZWRpYVNlc3Npb24g
aW50ZXJmYWNlOiBjYWxsaW5nIHNldE1pY3JvcGhvbmVBY3RpdmUoYm9vbGVhbikgb24gbmF2aWdh
dG9yLm1lZGlhU2Vzc2lvbiB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgInNldE1pY3JvcGhvbmVBY3RpdmUiIG5vdCBm
b3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgTWVkaWFTZXNzaW9uIGludGVyZmFjZTogbmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbiBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNldENhbWVyYUFjdGl2
ZShib29sZWFuKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0
eSAic2V0Q2FtZXJhQWN0aXZlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIE1l
ZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGNhbGxpbmcgc2V0Q2FtZXJhQWN0aXZlKGJvb2xlYW4pIG9u
IG5hdmlnYXRvci5tZWRpYVNlc3Npb24gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJzZXRDYW1lcmFBY3RpdmUiIG5v
dCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KIFBBU1MgTWVkaWFNZXRhZGF0YSBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIE1lZGlh
TWV0YWRhdGEgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgTWVkaWFNZXRhZGF0YSBpbnRl
cmZhY2Ugb2JqZWN0IG5hbWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL25v
dGlmaWNhdGlvbnMvaWRsaGFybmVzcy5odHRwcy5hbnktZXhwZWN0ZWQudHh0CmluZGV4IGYwZmVj
OTIxNjM5YTI0OGNlYjkxYWU1ZDRkOTJmNTY3NDQzYTA4MjQuLjM1ODk5NWQ2ZWY1ZWQwYjRkZDNm
NDQ2NTAyNzUyMTZmODkxMGY4M2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9pZGxoYXJuZXNzLmh0dHBzLmFueS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9ub3RpZmljYXRpb25zL2lkbGhhcm5lc3MuaHR0cHMuYW55LWV4cGVjdGVkLnR4dApAQCAt
NjQsNyArNjQsNCBAQCBQQVNTIE5vdGlmaWNhdGlvbiBpbnRlcmZhY2U6IG5vdGlmaWNhdGlvbiBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImNsb3NlKCkiIHdpdGggdAogUEFTUyBOb3RpZmljYXRpb25F
dmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0CiBGQUlMIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24g
c2hvd05vdGlmaWNhdGlvbihET01TdHJpbmcsIG9wdGlvbmFsIE5vdGlmaWNhdGlvbk9wdGlvbnMp
IGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcg
bm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgInNob3dOb3RpZmljYXRpb24i
IG1pc3NpbmcKIEZBSUwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBnZXROb3RpZmljYXRpb25zKG9wdGlvbmFsIEdldE5vdGlmaWNhdGlvbk9wdGlvbnMpIGFz
c2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9u
LXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImdldE5vdGlmaWNhdGlvbnMiIG1p
c3NpbmcKLVBBU1MgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKLVBBU1MgRXh0ZW5kYWJsZUV2ZW50
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QK
LVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL25vdGlmaWNhdGlvbnMvaWRsaGFybmVzcy5odHRwcy5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9pZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0CmluZGV4IDU5ODE1YTQ0M2Y2NzE3NDg5Y2M3OWRkNmMzNjYzZTQzZTgwOTkyZWUu
LmZlZjg0YWZjMzU0OWFiMGMzZWMwMTFmZGM0NTRkNWRlZGI1Mjg3OTkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9p
ZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9pZGxoYXJuZXNz
Lmh0dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC02Myw2ICs2Myw0IEBAIEZBSUwgTm90
aWZpY2F0aW9uIGludGVyZmFjZTogbm90aWZpY2F0aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
Y2xvc2UoKSIgd2l0aCB0CiBQQVNTIE5vdGlmaWNhdGlvbkV2ZW50IGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIEZBSUwgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzaG93Tm90aWZpY2F0aW9uKERPTVN0
cmluZywgb3B0aW9uYWwgTm90aWZpY2F0aW9uT3B0aW9ucykgYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
biIgZXhwZWN0ZWQgcHJvcGVydHkgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24iIG1pc3NpbmcK
IEZBSUwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRO
b3RpZmljYXRpb25zKG9wdGlvbmFsIEdldE5vdGlmaWNhdGlvbk9wdGlvbnMpIGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
IiBtaXNzaW5nCi1QQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIEV4dGVuZGFibGVF
dmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcG9pbnRlcmV2ZW50cy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVudHMvaWRs
aGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IGY3NmU2OTEyZDQ3OTkwNmY3Yjk5NWM5
MzY5ZTU3Y2I2NzkwNGU3ZjAuLjA3MzIyN2QzNjViYzcyZTM5NTNkZWU0NjdmODkwNmRmMjVhNjRj
NWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcG9pbnRlcmV2ZW50cy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzL2lk
bGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMTQsOSArMTQsNiBAQCBQQVNTIFBhcnRp
YWwgaW50ZXJmYWNlIERvY3VtZW50WzJdOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQ
YXJ0aWFsIGludGVyZmFjZSBXaW5kb3c6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERv
Y3VtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxl
cnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIE5vbkVs
ZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBp
bmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVu
dCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVu
dEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50
IGluY2x1ZGVzIEVsZW1lbnRDb250ZW50RWRpdGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CkBAIC0yNCw5ICsyMSw2IEBAIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZHRWxl
bWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEdsb2Jh
bEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNs
dWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBX
aW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKLVBBU1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9u
U3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV2luZG93IGluY2x1ZGVzIFdp
bmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9y
IGluY2x1ZGVzIE5hdmlnYXRvcklEOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZp
Z2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yTGFuZ3VhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JPbkxpbmU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCkBAIC0zNCwxMCArMjgsMTYgQEAgUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2
aWdhdG9yQ29udGVudFV0aWxzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0
b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29va2llczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvclBsdWdpbnM6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdh
cmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRp
b25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXaW5kb3cgaW5j
bHVkZXMgV2luZG93U2Vzc2lvblN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNT
IFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dMb2NhbFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgTm9uRG9jdW1lbnRU
eXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1
ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNs
dWRlcyBTbG90dGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGlu
Y2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
UG9pbnRlckV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QKIFBBU1MgUG9pbnRlckV2ZW50IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCiBQ
QVNTIFBvaW50ZXJFdmVudCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL2NoZWNrLWxh
eW91dC10aC5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2VzL2NoZWNrLWxheW91dC10aC5qcwppbmRleCA1ZDQyMzZkMWNlZGIwZTIwZGJjMWJi
MzA3MjJjYjBlOWUxNjBmMTEwLi5hNTA3YThkZmQ3ZjE5N2NiZjNmZjMwNzJlN2Y3MjkxODQ3Y2Q2
YWEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc291cmNlcy9jaGVjay1sYXlvdXQtdGguanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LXRoLmpzCkBA
IC0zNiw2ICszNiw3IEBAIGZ1bmN0aW9uIGNoZWNrRGF0YUtleXMobm9kZSkgewogICAgICAgICAi
ZGF0YS1leHBlY3RlZC1zY3JvbGwtd2lkdGgiLAogICAgICAgICAiZGF0YS1leHBlY3RlZC1zY3Jv
bGwtaGVpZ2h0IiwKICAgICAgICAgImRhdGEtZXhwZWN0ZWQtYm91bmRpbmctY2xpZW50LXJlY3Qt
d2lkdGgiLAorICAgICAgICAiZGF0YS1leHBlY3RlZC1ib3VuZGluZy1jbGllbnQtcmVjdC1oZWln
aHQiLAogICAgICAgICAiZGF0YS10b3RhbC14IiwKICAgICAgICAgImRhdGEtdG90YWwteSIsCiAg
ICAgICAgICJkYXRhLWV4cGVjdGVkLWRpc3BsYXkiLApAQCAtMTA3LDYgKzEwOCwxMSBAQCBmdW5j
dGlvbiBjaGVja0V4cGVjdGVkVmFsdWVzKHQsIG5vZGUsIHByZWZpeCkKICAgICAgICAgYXNzZXJ0
X3RvbGVyYW5jZShub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLCBleHBlY3RlZFdp
ZHRoLCBwcmVmaXggKyAiZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiKTsKICAgICB9CiAK
KyAgICB2YXIgZXhwZWN0ZWRIZWlnaHQgPSBjaGVja0F0dHJpYnV0ZShvdXRwdXQsIG5vZGUsICJk
YXRhLWV4cGVjdGVkLWJvdW5kaW5nLWNsaWVudC1yZWN0LWhlaWdodCIpOworICAgIGlmIChleHBl
Y3RlZEhlaWdodCkgeworICAgICAgICBhc3NlcnRfdG9sZXJhbmNlKG5vZGUuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCkuaGVpZ2h0LCBleHBlY3RlZEhlaWdodCwgcHJlZml4ICsgImdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpLmhlaWdodCIpOworICAgIH0KKwogICAgIHZhciBleHBlY3RlZE9mZnNldCA9
IGNoZWNrQXR0cmlidXRlKG91dHB1dCwgbm9kZSwgImRhdGEtdG90YWwteCIpOwogICAgIGlmIChl
eHBlY3RlZE9mZnNldCkgewogICAgICAgICB2YXIgdG90YWxMZWZ0ID0gbm9kZS5jbGllbnRMZWZ0
ICsgbm9kZS5vZmZzZXRMZWZ0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL2lkbGhhcm5lc3MuanMK
aW5kZXggNWE5N2IyNzNmMmJlZDE5NmQ2ZGRkODVjNTU5NmRlY2ZmMWJmODdhZS4uNmFlYzAyZTNh
YmUwNmIyMGQxMWJiNDZiZmQ1Yjc0MjMyNjg1MWM4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy9pZGxoYXJuZXNzLmpzCkBAIC0xLDEzICsxLDMgQEAKLS8qCi1EaXN0cmlidXRlZCB1bmRlciBi
b3RoIHRoZSBXM0MgVGVzdCBTdWl0ZSBMaWNlbnNlIFsxXSBhbmQgdGhlIFczQwotMy1jbGF1c2Ug
QlNEIExpY2Vuc2UgWzJdLiBUbyBjb250cmlidXRlIHRvIGEgVzNDIFRlc3QgU3VpdGUsIHNlZSB0
aGUKLXBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgotCi1bMV0gaHR0cDovL3d3
dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDA4LzA0LXRlc3RzdWl0ZS1saWNlbnNlCi1bMl0g
aHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8yMDA4LzAzLWJzZC1saWNlbnNlCi1b
M10gaHR0cDovL3d3dy53My5vcmcvMjAwNC8xMC8yNy10ZXN0Y2FzZXMKLSovCi0KIC8qIEZvciB1
c2VyIGRvY3VtZW50YXRpb24gc2VlIGRvY3MvX3dyaXRpbmctdGVzdHMvaWRsaGFybmVzcy5tZCAq
LwogCiAvKioKQEAgLTEwMSw2ICs5MSwxNiBAQCBmdW5jdGlvbiBnbG9iYWxPZihmdW5jKQogICAg
IHJldHVybiBzZWxmOwogfQogCisvLyBodHRwczovL2VzZGlzY3Vzcy5vcmcvdG9waWMvaXNjb25z
dHJ1Y3RvciNjb250ZW50LTExCitmdW5jdGlvbiBpc0NvbnN0cnVjdG9yKG8pIHsKKyAgICB0cnkg
eworICAgICAgICBuZXcgKG5ldyBQcm94eShvLCB7Y29uc3RydWN0OiAoKSA9PiAoe30pfSkpOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KK30KKwogZnVuY3Rpb24gdGhyb3dPclJlamVjdChhX3Rlc3QsIG9wZXJhdGlv
biwgZm4sIG9iaiwgYXJncywgbWVzc2FnZSwgY2IpCiB7CiAgICAgaWYgKG9wZXJhdGlvbi5pZGxU
eXBlLmdlbmVyaWMgIT09ICJQcm9taXNlIikgewpAQCAtMTMxLDE3ICsxMzEsNiBAQCBmdW5jdGlv
biBhd2FpdE5DYWxsYmFja3MobiwgY2IsIGN0eCkKICAgICB9OwogfQogCi12YXIgZnJvdW5kID0K
LShmdW5jdGlvbigpewotICAgIGlmIChNYXRoLmZyb3VuZCkgcmV0dXJuIE1hdGguZnJvdW5kOwot
Ci0gICAgdmFyIGFyciA9IG5ldyBGbG9hdDMyQXJyYXkoMSk7Ci0gICAgcmV0dXJuIGZ1bmN0aW9u
IGZyb3VuZChuKSB7Ci0gICAgICAgIGFyclswXSA9IG47Ci0gICAgICAgIHJldHVybiBhcnJbMF07
Ci0gICAgfTsKLX0pKCk7Ci0KIC8vLyBJZGxIYXJuZXNzRXJyb3IgLy8vCiAvLyBFbnRyeSBwb2lu
dAogc2VsZi5JZGxIYXJuZXNzRXJyb3IgPSBmdW5jdGlvbihtZXNzYWdlKQpAQCAtMTg1LDMxICsx
NzQsMTUgQEAgc2VsZi5JZGxBcnJheSA9IGZ1bmN0aW9uKCkKIAogICAgIC8qKgogICAgICAqIFdo
ZW4gYWRkaW5nIG11bHRpcGxlIGNvbGxlY3Rpb25zIG9mIElETHMgb25lIGF0IGEgdGltZSwgYW4g
ZWFybGllciBvbmUKLSAgICAgKiBtaWdodCBjb250YWluIGEgcGFydGlhbCBpbnRlcmZhY2Ugb3Ig
aW1wbGVtZW50cyBzdGF0ZW1lbnQgdGhhdCBkZXBlbmRzCisgICAgICogbWlnaHQgY29udGFpbiBh
IHBhcnRpYWwgaW50ZXJmYWNlIG9yIGluY2x1ZGVzIHN0YXRlbWVudCB0aGF0IGRlcGVuZHMKICAg
ICAgKiBvbiBhIGxhdGVyIG9uZS4gIFNhdmUgdGhlc2UgdXAgYW5kIGhhbmRsZSB0aGVtIHJpZ2h0
IGJlZm9yZSB3ZSBydW4KICAgICAgKiB0ZXN0cy4KICAgICAgKgotICAgICAqIC5wYXJ0aWFscyBp
cyBzaW1wbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyBmcm9tIFdlYklETFBhcnNlci5qcycKLSAgICAg
KiAicGFydGlhbGludGVyZmFjZSIgcHJvZHVjdGlvbi4gIC5pbXBsZW1lbnRzIG1hcHMgc3RyaW5n
cyB0byBhcnJheXMgb2YKLSAgICAgKiBzdHJpbmdzLCBzdWNoIHRoYXQKLSAgICAgKgotICAgICAq
ICAgQSBpbXBsZW1lbnRzIEI7Ci0gICAgICogICBBIGltcGxlbWVudHMgQzsKLSAgICAgKiAgIEQg
aW1wbGVtZW50cyBFOwotICAgICAqCi0gICAgICogcmVzdWx0cyBpbiB0aGlzWyJpbXBsZW1lbnRz
Il0gPSB7IEE6IFsiQiIsICJDIl0sIEQ6IFsiRSJdIH0uCi0gICAgICoKLSAgICAgKiBTaW1pbGFy
bHksCi0gICAgICoKLSAgICAgKiAgIGludGVyZmFjZSBBIDogQiB7fTsKLSAgICAgKiAgIGludGVy
ZmFjZSBCIDogQyB7fTsKLSAgICAgKgotICAgICAqIHJlc3VsdHMgaW4gdGhpc1siaW5oZXJpdGFu
Y2UiXSA9IHsgQTogIkIiLCBCOiAiQyIgfQorICAgICAqIEJvdGggdGhpcy5wYXJ0aWFscyBhbmQg
dGhpcy5pbmNsdWRlcyB3aWxsIGJlIHRoZSBvYmplY3RzIGFzIHBhcnNlZCBieQorICAgICAqIFdl
YklETFBhcnNlci5qcywgbm90IHdyYXBwZWQgaW4gSWRsSW50ZXJmYWNlIG9yIHNpbWlsYXIuCiAg
ICAgICovCiAgICAgdGhpcy5wYXJ0aWFscyA9IFtdOwotICAgIHRoaXNbImltcGxlbWVudHMiXSA9
IHt9OwotICAgIHRoaXNbImluY2x1ZGVzIl0gPSB7fTsKLSAgICB0aGlzWyJpbmhlcml0YW5jZSJd
ID0ge307CisgICAgdGhpcy5pbmNsdWRlcyA9IFtdOwogCiAgICAgLyoqCiAgICAgICogUmVjb3Jk
IG9mIHNraXBwZWQgSURMIGl0ZW1zLCBpbiBjYXNlIHdlIGxhdGVyIHJlYWxpemUgdGhhdCB0aGV5
IGFyZSBhCkBAIC0yNjEsMTUgKzIzNCwxNSBAQCBJZGxBcnJheS5wcm90b3R5cGUuaW50ZXJuYWxf
YWRkX2RlcGVuZGVuY3lfaWRscyA9IGZ1bmN0aW9uKHBhcnNlZF9pZGxzLCBvcHRpb25zKQogICAg
IGNvbnN0IG5ld19vcHRpb25zID0geyBvbmx5OiBbXSB9CiAKICAgICBjb25zdCBhbGxfZGVwcyA9
IG5ldyBTZXQoKTsKLSAgICBPYmplY3QudmFsdWVzKHRoaXMuaW5oZXJpdGFuY2UpLmZvckVhY2go
diA9PiBhbGxfZGVwcy5hZGQodikpOwotICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuaW1wbGVtZW50
cykuZm9yRWFjaCgoW2ssIHZdKSA9PiB7Ci0gICAgICAgIGFsbF9kZXBzLmFkZChrKTsKLSAgICAg
ICAgYWxsX2RlcHMuYWRkKHYpOworICAgIE9iamVjdC52YWx1ZXModGhpcy5tZW1iZXJzKS5mb3JF
YWNoKHYgPT4geworICAgICAgICBpZiAodi5iYXNlKSB7CisgICAgICAgICAgICBhbGxfZGVwcy5h
ZGQodi5iYXNlKTsKKyAgICAgICAgfQogICAgIH0pOwotICAgIC8vIE5PVEU6IElmICdBIGluY2x1
ZGVzIEInIGZvciBCIHRoYXQgd2UgY2FyZSBhYm91dCwgdGhlbiBBIGlzIGFsc28gYSBkZXAuCi0g
ICAgT2JqZWN0LmtleXModGhpcy5pbmNsdWRlcykuZm9yRWFjaChrID0+IHsKLSAgICAgICAgYWxs
X2RlcHMuYWRkKGspOwotICAgICAgICB0aGlzLmluY2x1ZGVzW2tdLmZvckVhY2godiA9PiBhbGxf
ZGVwcy5hZGQodikpOworICAgIC8vIEFkZCBib3RoICdBJyBhbmQgJ0InIGZvciBlYWNoICdBIGlu
Y2x1ZGVzIEInIGVudHJ5LgorICAgIHRoaXMuaW5jbHVkZXMuZm9yRWFjaChpID0+IHsKKyAgICAg
ICAgYWxsX2RlcHMuYWRkKGkudGFyZ2V0KTsKKyAgICAgICAgYWxsX2RlcHMuYWRkKGkuaW5jbHVk
ZXMpOwogICAgIH0pOwogICAgIHRoaXMucGFydGlhbHMuZm9yRWFjaChwID0+IGFsbF9kZXBzLmFk
ZChwLm5hbWUpKTsKICAgICAvLyBBZGQgJ1R5cGVPZlR5cGUnIGZvciBlYWNoICJ0eXBlZGVmIFR5
cGVPZlR5cGUgTXlUeXBlOyIgZW50cnkuCkBAIC0zMjgsOSArMzAxLDYgQEAgSWRsQXJyYXkucHJv
dG90eXBlLmludGVybmFsX2FkZF9kZXBlbmRlbmN5X2lkbHMgPSBmdW5jdGlvbihwYXJzZWRfaWRs
cywgb3B0aW9ucykKICAgICAgICAgdmFyIGRlcHMgPSBbXTsKICAgICAgICAgaWYgKHBhcnNlZC5u
YW1lKSB7CiAgICAgICAgICAgICBkZXBzLnB1c2gocGFyc2VkLm5hbWUpOwotICAgICAgICB9IGVs
c2UgaWYgKHBhcnNlZC50eXBlID09PSAiaW1wbGVtZW50cyIpIHsKLSAgICAgICAgICAgIGRlcHMu
cHVzaChwYXJzZWQudGFyZ2V0KTsKLSAgICAgICAgICAgIGRlcHMucHVzaChwYXJzZWQuaW1wbGVt
ZW50cyk7CiAgICAgICAgIH0gZWxzZSBpZiAocGFyc2VkLnR5cGUgPT09ICJpbmNsdWRlcyIpIHsK
ICAgICAgICAgICAgIGRlcHMucHVzaChwYXJzZWQudGFyZ2V0KTsKICAgICAgICAgICAgIGRlcHMu
cHVzaChwYXJzZWQuaW5jbHVkZXMpOwpAQCAtMzU4LDcgKzMyOCw3IEBAIElkbEFycmF5LnByb3Rv
dHlwZS5pbnRlcm5hbF9hZGRfZGVwZW5kZW5jeV9pZGxzID0gZnVuY3Rpb24ocGFyc2VkX2lkbHMs
IG9wdGlvbnMpCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGNvbnN0IGZvbGxvd191cCA9
IG5ldyBTZXQoKTsKLSAgICAgICAgICAgIGZvciAoY29uc3QgZGVwX3R5cGUgb2YgWyJpbmhlcml0
YW5jZSIsICJpbXBsZW1lbnRzIiwgImluY2x1ZGVzIl0pIHsKKyAgICAgICAgICAgIGZvciAoY29u
c3QgZGVwX3R5cGUgb2YgWyJpbmhlcml0YW5jZSIsICJpbmNsdWRlcyJdKSB7CiAgICAgICAgICAg
ICAgICAgaWYgKHBhcnNlZFtkZXBfdHlwZV0pIHsKICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
aW5oZXJpdGluZyA9IHBhcnNlZFtkZXBfdHlwZV07CiAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGluaGVyaXRvciA9IHBhcnNlZC5uYW1lIHx8IHBhcnNlZC50YXJnZXQ7CkBAIC00NDcsMzEgKzQx
NywxMyBAQCBJZGxBcnJheS5wcm90b3R5cGUuaW50ZXJuYWxfYWRkX2lkbHMgPSBmdW5jdGlvbihw
YXJzZWRfaWRscywgb3B0aW9ucykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0g
ICAgICAgIGlmIChwYXJzZWRfaWRsLnR5cGUgPT0gImltcGxlbWVudHMiKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBpZiAoc2hvdWxkX3NraXAocGFyc2VkX2lkbC50YXJnZXQpKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGlmICghKHBhcnNlZF9pZGwudGFyZ2V0IGluIHRoaXNbImltcGxlbWVudHMiXSkpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgdGhpc1siaW1wbGVtZW50cyJdW3BhcnNlZF9pZGwudGFy
Z2V0XSA9IFtdOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdGhpc1siaW1wbGVtZW50cyJd
W3BhcnNlZF9pZGwudGFyZ2V0XS5wdXNoKHBhcnNlZF9pZGxbImltcGxlbWVudHMiXSk7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQogICAgICAgICBpZiAocGFyc2VkX2lkbC50eXBl
ID09ICJpbmNsdWRlcyIpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChzaG91bGRfc2tpcChw
YXJzZWRfaWRsLnRhcmdldCkpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCEocGFyc2VkX2lkbC50YXJnZXQgaW4g
dGhpc1siaW5jbHVkZXMiXSkpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdGhpc1si
aW5jbHVkZXMiXVtwYXJzZWRfaWRsLnRhcmdldF0gPSBbXTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHRoaXNbImluY2x1ZGVzIl1bcGFyc2VkX2lkbC50YXJnZXRdLnB1c2gocGFyc2VkX2lk
bFsiaW5jbHVkZXMiXSk7CisgICAgICAgICAgICB0aGlzLmluY2x1ZGVzLnB1c2gocGFyc2VkX2lk
bCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtNDg1LDE2ICs0MzcsNiBA
QCBJZGxBcnJheS5wcm90b3R5cGUuaW50ZXJuYWxfYWRkX2lkbHMgPSBmdW5jdGlvbihwYXJzZWRf
aWRscywgb3B0aW9ucykKICAgICAgICAgICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJyb3IoIkR1
cGxpY2F0ZSBpZGVudGlmaWVyICIgKyBwYXJzZWRfaWRsLm5hbWUpOwogICAgICAgICB9CiAKLSAg
ICAgICAgaWYgKHBhcnNlZF9pZGxbImluaGVyaXRhbmNlIl0pIHsKLSAgICAgICAgICAgIC8vIE5P
VEU6IENsYXNoIHNob3VsZCBiZSBpbXBvc3NpYmxlICh3b3VsZCByZXF1aXJlIHJlZGVmaW5pdGlv
biBvZiBwYXJzZWRfaWRsLm5hbWUpLgotICAgICAgICAgICAgaWYgKHBhcnNlZF9pZGwubmFtZSBp
biB0aGlzWyJpbmhlcml0YW5jZSJdCi0gICAgICAgICAgICAgICAgJiYgcGFyc2VkX2lkbFsiaW5o
ZXJpdGFuY2UiXSAhPSB0aGlzWyJpbmhlcml0YW5jZSJdW3BhcnNlZF9pZGwubmFtZV0pIHsKLSAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vycm9yKAotICAgICAgICAgICAgICAg
ICAgICBgSW5oZXJpdGFuY2UgZm9yICR7cGFyc2VkX2lkbC5uYW1lfSB3YXMgYWxyZWFkeSBkZWZp
bmVkYCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB0aGlzWyJpbmhlcml0YW5jZSJdW3Bh
cnNlZF9pZGwubmFtZV0gPSBwYXJzZWRfaWRsWyJpbmhlcml0YW5jZSJdOwotICAgICAgICB9Ci0K
ICAgICAgICAgc3dpdGNoKHBhcnNlZF9pZGwudHlwZSkKICAgICAgICAgewogICAgICAgICBjYXNl
ICJpbnRlcmZhY2UiOgpAQCAtNTYyLDYyICs1MDQsNiBAQCBJZGxBcnJheS5wcm90b3R5cGUucHJl
dmVudF9tdWx0aXBsZV90ZXN0aW5nID0gZnVuY3Rpb24obmFtZSkKICAgICB0aGlzLm1lbWJlcnNb
bmFtZV0ucHJldmVudF9tdWx0aXBsZV90ZXN0aW5nID0gdHJ1ZTsKIH07CiAKLUlkbEFycmF5LnBy
b3RvdHlwZS5yZWN1cnNpdmVseV9nZXRfaW1wbGVtZW50cyA9IGZ1bmN0aW9uKGludGVyZmFjZV9u
YW1lKQotewotICAgIC8qKgotICAgICAqIEhlbHBlciBmdW5jdGlvbiBmb3IgdGVzdCgpLiAgUmV0
dXJucyBhbiBhcnJheSBvZiB0aGluZ3MgdGhhdCBpbXBsZW1lbnQKLSAgICAgKiBpbnRlcmZhY2Vf
bmFtZSwgc28gaWYgdGhlIElETCBjb250YWlucwotICAgICAqCi0gICAgICogICBBIGltcGxlbWVu
dHMgQjsKLSAgICAgKiAgIEIgaW1wbGVtZW50cyBDOwotICAgICAqICAgQiBpbXBsZW1lbnRzIEQ7
Ci0gICAgICoKLSAgICAgKiB0aGVuIHJlY3Vyc2l2ZWx5X2dldF9pbXBsZW1lbnRzKCJBIikgc2hv
dWxkIHJldHVybiBbIkIiLCAiQyIsICJEIl0uCi0gICAgICovCi0gICAgdmFyIHJldCA9IHRoaXNb
ImltcGxlbWVudHMiXVtpbnRlcmZhY2VfbmFtZV07Ci0gICAgaWYgKHJldCA9PT0gdW5kZWZpbmVk
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIFtdOwotICAgIH0KLSAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHRoaXNbImltcGxlbWVudHMiXVtpbnRlcmZhY2VfbmFtZV0ubGVuZ3RoOyBpKyspCi0gICAg
ewotICAgICAgICByZXQgPSByZXQuY29uY2F0KHRoaXMucmVjdXJzaXZlbHlfZ2V0X2ltcGxlbWVu
dHMocmV0W2ldKSk7Ci0gICAgICAgIGlmIChyZXQuaW5kZXhPZihyZXRbaV0pICE9IHJldC5sYXN0
SW5kZXhPZihyZXRbaV0pKQotICAgICAgICB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgSWRsSGFy
bmVzc0Vycm9yKCJDaXJjdWxhciBpbXBsZW1lbnRzIHN0YXRlbWVudHMgaW52b2x2aW5nICIgKyBy
ZXRbaV0pOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci19OwotCi1JZGxBcnJh
eS5wcm90b3R5cGUucmVjdXJzaXZlbHlfZ2V0X2luY2x1ZGVzID0gZnVuY3Rpb24oaW50ZXJmYWNl
X25hbWUpCi17Ci0gICAgLyoqCi0gICAgICogSGVscGVyIGZ1bmN0aW9uIGZvciB0ZXN0KCkuICBS
ZXR1cm5zIGFuIGFycmF5IG9mIHRoaW5ncyB0aGF0IGltcGxlbWVudAotICAgICAqIGludGVyZmFj
ZV9uYW1lLCBzbyBpZiB0aGUgSURMIGNvbnRhaW5zCi0gICAgICoKLSAgICAgKiAgIEEgaW5jbHVk
ZXMgQjsKLSAgICAgKiAgIEIgaW5jbHVkZXMgQzsKLSAgICAgKiAgIEIgaW5jbHVkZXMgRDsKLSAg
ICAgKgotICAgICAqIHRoZW4gcmVjdXJzaXZlbHlfZ2V0X2luY2x1ZGVzKCJBIikgc2hvdWxkIHJl
dHVybiBbIkIiLCAiQyIsICJEIl0uCi0gICAgICovCi0gICAgdmFyIHJldCA9IHRoaXNbImluY2x1
ZGVzIl1baW50ZXJmYWNlX25hbWVdOwotICAgIGlmIChyZXQgPT09IHVuZGVmaW5lZCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBbXTsKLSAgICB9Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlz
WyJpbmNsdWRlcyJdW2ludGVyZmFjZV9uYW1lXS5sZW5ndGg7IGkrKykKLSAgICB7Ci0gICAgICAg
IHJldCA9IHJldC5jb25jYXQodGhpcy5yZWN1cnNpdmVseV9nZXRfaW5jbHVkZXMocmV0W2ldKSk7
Ci0gICAgICAgIGlmIChyZXQuaW5kZXhPZihyZXRbaV0pICE9IHJldC5sYXN0SW5kZXhPZihyZXRb
aV0pKQotICAgICAgICB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vycm9yKCJD
aXJjdWxhciBpbmNsdWRlcyBzdGF0ZW1lbnRzIGludm9sdmluZyAiICsgcmV0W2ldKTsKLSAgICAg
ICAgfQotICAgIH0KLSAgICByZXR1cm4gcmV0OwotfTsKLQogSWRsQXJyYXkucHJvdG90eXBlLmlz
X2pzb25fdHlwZSA9IGZ1bmN0aW9uKHR5cGUpCiB7CiAgICAgLyoqCkBAIC02OTUsMjUgKzU4MSwy
MyBAQCBJZGxBcnJheS5wcm90b3R5cGUuaXNfanNvbl90eXBlID0gZnVuY3Rpb24odHlwZSkKIAog
ICAgICAgICAgICAvLyAgZGljdGlvbmFyaWVzIHdoZXJlIGFsbCBvZiB0aGVpciBtZW1iZXJzIGFy
ZSBKU09OIHR5cGVzCiAgICAgICAgICAgIGlmICh0aGluZyBpbnN0YW5jZW9mIElkbERpY3Rpb25h
cnkpIHsKLSAgICAgICAgICAgICAgIHZhciBzdGFjayA9IHRoaW5nLmdldF9pbmhlcml0YW5jZV9z
dGFjaygpOwotICAgICAgICAgICAgICAgdmFyIG1hcCA9IG5ldyBNYXAoKTsKLSAgICAgICAgICAg
ICAgIHdoaWxlIChzdGFjay5sZW5ndGgpCi0gICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgc3RhY2sucG9wKCkubWVtYmVycy5mb3JFYWNoKGZ1bmN0aW9uKG0pIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgbWFwLnNldChtLm5hbWUsIG0uaWRsVHlwZSkKLSAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoKTsKKyAgICAgICAg
ICAgICAgIGZvciAoY29uc3QgZGljdCBvZiB0aGluZy5nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9z
dGFjaygpKSB7CisgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBtIG9mIGRpY3QubWVtYmVy
cykgeworICAgICAgICAgICAgICAgICAgICAgICBtYXAuc2V0KG0ubmFtZSwgbS5pZGxUeXBlKTsK
KyAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBy
ZXR1cm4gQXJyYXkuZnJvbShtYXAudmFsdWVzKCkpLmV2ZXJ5KHRoaXMuaXNfanNvbl90eXBlLCB0
aGlzKTsKICAgICAgICAgICAgfQogCiAgICAgICAgICAgIC8vICBpbnRlcmZhY2UgdHlwZXMgdGhh
dCBoYXZlIGEgdG9KU09OIG9wZXJhdGlvbiBkZWNsYXJlZCBvbiB0aGVtc2VsdmVzIG9yCi0gICAg
ICAgICAgIC8vICBvbmUgb2YgdGhlaXIgaW5oZXJpdGVkIG9yIGNvbnNlcXVlbnRpYWwgaW50ZXJm
YWNlcy4KKyAgICAgICAgICAgLy8gIG9uZSBvZiB0aGVpciBpbmhlcml0ZWQgaW50ZXJmYWNlcy4K
ICAgICAgICAgICAgaWYgKHRoaW5nIGluc3RhbmNlb2YgSWRsSW50ZXJmYWNlKSB7CiAgICAgICAg
ICAgICAgICB2YXIgYmFzZTsKICAgICAgICAgICAgICAgIHdoaWxlICh0aGluZykKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZiAodGhpbmcuaGFzX3RvX2pzb25fcmVndWxh
cl9vcGVyYXRpb24oKSkgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICAgICAgICAgICAgIHZhciBt
aXhpbnMgPSB0aGlzLmltcGxlbWVudHNbdGhpbmcubmFtZV0gfHwgdGhpcy5pbmNsdWRlc1t0aGlu
Zy5uYW1lXTsKKyAgICAgICAgICAgICAgICAgICB2YXIgbWl4aW5zID0gdGhpcy5pbmNsdWRlc1t0
aGluZy5uYW1lXTsKICAgICAgICAgICAgICAgICAgICBpZiAobWl4aW5zKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIG1peGlucyA9IG1peGlucy5tYXAoZnVuY3Rpb24oaWQpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZhciBtaXhpbiA9IHRoaXMubWVtYmVyc1tpZF07CkBAIC03NjYs
NyArNjUwLDcgQEAgZnVuY3Rpb24gZXhwb3N1cmVfc2V0KG9iamVjdCwgZGVmYXVsdF9zZXQpIHsK
IH0KIAogZnVuY3Rpb24gZXhwb3NlZF9pbihnbG9iYWxzKSB7Ci0gICAgaWYgKCdkb2N1bWVudCcg
aW4gc2VsZikgeworICAgIGlmICgnV2luZG93JyBpbiBzZWxmKSB7CiAgICAgICAgIHJldHVybiBn
bG9iYWxzLmhhcygiV2luZG93Iik7CiAgICAgfQogICAgIGlmICgnRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGUnIGluIHNlbGYgJiYKQEAgLTgxMyw2NiArNjk3LDkgQEAgSWRsQXJyYXkucHJvdG90
eXBlLnRlc3QgPSBmdW5jdGlvbigpCiB7CiAgICAgLyoqIEVudHJ5IHBvaW50LiAgU2VlIGRvY3Vt
ZW50YXRpb24gYXQgYmVnaW5uaW5nIG9mIGZpbGUuICovCiAKLSAgICAvLyBGaXJzdCBtZXJnZSBp
biBhbGwgdGhlIHBhcnRpYWwgaW50ZXJmYWNlcyBhbmQgaW1wbGVtZW50cyBzdGF0ZW1lbnRzIHdl
Ci0gICAgLy8gZW5jb3VudGVyZWQuCi0gICAgdGhpcy5jb2xsYXBzZV9wYXJ0aWFscygpOwotCi0g
ICAgZm9yICh2YXIgbGhzIGluIHRoaXNbImltcGxlbWVudHMiXSkKLSAgICB7Ci0gICAgICAgIHRo
aXMucmVjdXJzaXZlbHlfZ2V0X2ltcGxlbWVudHMobGhzKS5mb3JFYWNoKGZ1bmN0aW9uKHJocykK
LSAgICAgICAgewotICAgICAgICAgICAgdmFyIGVyclN0ciA9IGxocyArICIgaW1wbGVtZW50cyAi
ICsgcmhzICsgIiwgYnV0ICI7Ci0gICAgICAgICAgICBpZiAoIShsaHMgaW4gdGhpcy5tZW1iZXJz
KSkgdGhyb3cgZXJyU3RyICsgbGhzICsgIiBpcyB1bmRlZmluZWQuIjsKLSAgICAgICAgICAgIGlm
ICghKHRoaXMubWVtYmVyc1tsaHNdIGluc3RhbmNlb2YgSWRsSW50ZXJmYWNlKSkgdGhyb3cgZXJy
U3RyICsgbGhzICsgIiBpcyBub3QgYW4gaW50ZXJmYWNlLiI7Ci0gICAgICAgICAgICBpZiAoIShy
aHMgaW4gdGhpcy5tZW1iZXJzKSkgdGhyb3cgZXJyU3RyICsgcmhzICsgIiBpcyB1bmRlZmluZWQu
IjsKLSAgICAgICAgICAgIGlmICghKHRoaXMubWVtYmVyc1tyaHNdIGluc3RhbmNlb2YgSWRsSW50
ZXJmYWNlKSkgdGhyb3cgZXJyU3RyICsgcmhzICsgIiBpcyBub3QgYW4gaW50ZXJmYWNlLiI7Ci0K
LSAgICAgICAgICAgIGlmICh0aGlzLm1lbWJlcnNbcmhzXS5tZW1iZXJzLmxlbmd0aCkgewotICAg
ICAgICAgICAgICAgIHRlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgICAgICB2YXIg
Y2xhc2ggPSB0aGlzLm1lbWJlcnNbcmhzXS5tZW1iZXJzLmZpbmQoZnVuY3Rpb24obWVtYmVyKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tZW1iZXJzW2xoc10ubWVtYmVy
cy5maW5kKGZ1bmN0aW9uKG0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
dGhpcy5hcmVfZHVwbGljYXRlX21lbWJlcnMobSwgbWVtYmVyKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7
Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMubWVtYmVyc1tyaHNdLm1lbWJlcnMuZm9yRWFjaChm
dW5jdGlvbihtZW1iZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWVtYmVyc1ts
aHNdLm1lbWJlcnMucHVzaChuZXcgSWRsSW50ZXJmYWNlTWVtYmVyKG1lbWJlcikpOwotICAgICAg
ICAgICAgICAgICAgICB9LmJpbmQodGhpcykpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
dHJ1ZSghY2xhc2gsICJtZW1iZXIgIiArIChjbGFzaCAmJiBjbGFzaC5uYW1lKSArICIgaXMgdW5p
cXVlIik7Ci0gICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpLCBsaHMgKyAiIGltcGxlbWVudHMg
IiArIHJocyArICI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIik7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgfQotICAgIHRoaXNbImltcGxlbWVudHMiXSA9IHt9
OwotCi0gICAgZm9yICh2YXIgbGhzIGluIHRoaXNbImluY2x1ZGVzIl0pCi0gICAgewotICAgICAg
ICB0aGlzLnJlY3Vyc2l2ZWx5X2dldF9pbmNsdWRlcyhsaHMpLmZvckVhY2goZnVuY3Rpb24ocmhz
KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgZXJyU3RyID0gbGhzICsgIiBpbmNsdWRlcyAi
ICsgcmhzICsgIiwgYnV0ICI7Ci0gICAgICAgICAgICBpZiAoIShsaHMgaW4gdGhpcy5tZW1iZXJz
KSkgdGhyb3cgZXJyU3RyICsgbGhzICsgIiBpcyB1bmRlZmluZWQuIjsKLSAgICAgICAgICAgIGlm
ICghKHRoaXMubWVtYmVyc1tsaHNdIGluc3RhbmNlb2YgSWRsSW50ZXJmYWNlKSkgdGhyb3cgZXJy
U3RyICsgbGhzICsgIiBpcyBub3QgYW4gaW50ZXJmYWNlLiI7Ci0gICAgICAgICAgICBpZiAoIShy
aHMgaW4gdGhpcy5tZW1iZXJzKSkgdGhyb3cgZXJyU3RyICsgcmhzICsgIiBpcyB1bmRlZmluZWQu
IjsKLSAgICAgICAgICAgIGlmICghKHRoaXMubWVtYmVyc1tyaHNdIGluc3RhbmNlb2YgSWRsSW50
ZXJmYWNlKSkgdGhyb3cgZXJyU3RyICsgcmhzICsgIiBpcyBub3QgYW4gaW50ZXJmYWNlLiI7Ci0K
LSAgICAgICAgICAgIGlmICh0aGlzLm1lbWJlcnNbcmhzXS5tZW1iZXJzLmxlbmd0aCkgewotICAg
ICAgICAgICAgICAgIHRlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgICAgICB2YXIg
Y2xhc2ggPSB0aGlzLm1lbWJlcnNbcmhzXS5tZW1iZXJzLmZpbmQoZnVuY3Rpb24obWVtYmVyKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tZW1iZXJzW2xoc10ubWVtYmVy
cy5maW5kKGZ1bmN0aW9uKG0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
dGhpcy5hcmVfZHVwbGljYXRlX21lbWJlcnMobSwgbWVtYmVyKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7
Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMubWVtYmVyc1tyaHNdLm1lbWJlcnMuZm9yRWFjaChm
dW5jdGlvbihtZW1iZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWVtYmVyc1tsaHNdLm1lbWJlcnMuZXZl
cnkobSA9PiAhdGhpcy5hcmVfZHVwbGljYXRlX21lbWJlcnMobSwgbWVtYmVyKSksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIm1lbWJlciAiICsgbWVtYmVyLm5hbWUgKyAiIGlzIHVuaXF1
ZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tZW1iZXJzW2xoc10ubWVtYmVycy5w
dXNoKG5ldyBJZGxJbnRlcmZhY2VNZW1iZXIobWVtYmVyKSk7Ci0gICAgICAgICAgICAgICAgICAg
IH0uYmluZCh0aGlzKSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKCFjbGFzaCwg
Im1lbWJlciAiICsgKGNsYXNoICYmIGNsYXNoLm5hbWUpICsgIiBpcyB1bmlxdWUiKTsKLSAgICAg
ICAgICAgICAgICB9LmJpbmQodGhpcyksIGxocyArICIgaW5jbHVkZXMgIiArIHJocyArICI6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0uYmluZCh0
aGlzKSk7Ci0gICAgfQotICAgIHRoaXNbImluY2x1ZGVzIl0gPSB7fTsKKyAgICAvLyBGaXJzdCBt
ZXJnZSBpbiBhbGwgcGFydGlhbCBkZWZpbml0aW9ucyBhbmQgaW50ZXJmYWNlIG1peGlucy4KKyAg
ICB0aGlzLm1lcmdlX3BhcnRpYWxzKCk7CisgICAgdGhpcy5tZXJnZV9taXhpbnMoKTsKIAogICAg
IC8vIEFzc2VydCBCIGRlZmluZWQgZm9yIEEgOiBCCiAgICAgZm9yIChjb25zdCBtZW1iZXIgb2Yg
T2JqZWN0LnZhbHVlcyh0aGlzLm1lbWJlcnMpLmZpbHRlcihtID0+IG0uYmFzZSkpIHsKQEAgLTg4
Niw3ICs3MTMsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIGlmICghcmhzX2lzX2ludGVyZmFjZSkgdGhyb3cgbmV3IElkbEhhcm5lc3NFcnJvcihg
JHtsaHN9IGluaGVyaXRzICR7cmhzfSwgYnV0ICR7cmhzfSBpcyBub3QgYW4gaW50ZXJmYWNlLmAp
OwogICAgICAgICB9CiAgICAgICAgIC8vIENoZWNrIGZvciBjaXJjdWxhciBkZXBlbmRlbmNpZXMu
Ci0gICAgICAgIG1lbWJlci5nZXRfaW5oZXJpdGFuY2Vfc3RhY2soKTsKKyAgICAgICAgbWVtYmVy
LmdldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrKCk7CiAgICAgfQogCiAgICAgT2JqZWN0Lmdl
dE93blByb3BlcnR5TmFtZXModGhpcy5tZW1iZXJzKS5mb3JFYWNoKGZ1bmN0aW9uKG1lbWJlck5h
bWUpIHsKQEAgLTkyMSw3ICs3NDgsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0
aW9uKCkKICAgICB9CiB9OwogCi1JZGxBcnJheS5wcm90b3R5cGUuY29sbGFwc2VfcGFydGlhbHMg
PSBmdW5jdGlvbigpCitJZGxBcnJheS5wcm90b3R5cGUubWVyZ2VfcGFydGlhbHMgPSBmdW5jdGlv
bigpCiB7CiAgICAgY29uc3QgdGVzdGVkUGFydGlhbHMgPSBuZXcgTWFwKCk7CiAgICAgdGhpcy5w
YXJ0aWFscy5mb3JFYWNoKGZ1bmN0aW9uKHBhcnNlZF9pZGwpCkBAIC0xMDE1LDYgKzg0MiwzOSBA
QCBJZGxBcnJheS5wcm90b3R5cGUuY29sbGFwc2VfcGFydGlhbHMgPSBmdW5jdGlvbigpCiAgICAg
dGhpcy5wYXJ0aWFscyA9IFtdOwogfQogCitJZGxBcnJheS5wcm90b3R5cGUubWVyZ2VfbWl4aW5z
ID0gZnVuY3Rpb24oKQoreworICAgIGZvciAoY29uc3QgcGFyc2VkX2lkbCBvZiB0aGlzLmluY2x1
ZGVzKQorICAgIHsKKyAgICAgICAgY29uc3QgbGhzID0gcGFyc2VkX2lkbC50YXJnZXQ7CisgICAg
ICAgIGNvbnN0IHJocyA9IHBhcnNlZF9pZGwuaW5jbHVkZXM7CisKKyAgICAgICAgdmFyIGVyclN0
ciA9IGxocyArICIgaW5jbHVkZXMgIiArIHJocyArICIsIGJ1dCAiOworICAgICAgICBpZiAoIShs
aHMgaW4gdGhpcy5tZW1iZXJzKSkgdGhyb3cgZXJyU3RyICsgbGhzICsgIiBpcyB1bmRlZmluZWQu
IjsKKyAgICAgICAgaWYgKCEodGhpcy5tZW1iZXJzW2xoc10gaW5zdGFuY2VvZiBJZGxJbnRlcmZh
Y2UpKSB0aHJvdyBlcnJTdHIgKyBsaHMgKyAiIGlzIG5vdCBhbiBpbnRlcmZhY2UuIjsKKyAgICAg
ICAgaWYgKCEocmhzIGluIHRoaXMubWVtYmVycykpIHRocm93IGVyclN0ciArIHJocyArICIgaXMg
dW5kZWZpbmVkLiI7CisgICAgICAgIGlmICghKHRoaXMubWVtYmVyc1tyaHNdIGluc3RhbmNlb2Yg
SWRsSW50ZXJmYWNlKSkgdGhyb3cgZXJyU3RyICsgcmhzICsgIiBpcyBub3QgYW4gaW50ZXJmYWNl
LiI7CisKKyAgICAgICAgaWYgKHRoaXMubWVtYmVyc1tyaHNdLm1lbWJlcnMubGVuZ3RoKSB7Cisg
ICAgICAgICAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB2YXIgY2xhc2gg
PSB0aGlzLm1lbWJlcnNbcmhzXS5tZW1iZXJzLmZpbmQoZnVuY3Rpb24obWVtYmVyKSB7CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1lbWJlcnNbbGhzXS5tZW1iZXJzLmZpbmQoZnVu
Y3Rpb24obSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXJlX2R1cGxp
Y2F0ZV9tZW1iZXJzKG0sIG1lbWJlcik7CisgICAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlz
KSk7CisgICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgICAgICB0aGlz
Lm1lbWJlcnNbcmhzXS5tZW1iZXJzLmZvckVhY2goZnVuY3Rpb24obWVtYmVyKSB7CisgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF90cnVlKAorICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5t
ZW1iZXJzW2xoc10ubWVtYmVycy5ldmVyeShtID0+ICF0aGlzLmFyZV9kdXBsaWNhdGVfbWVtYmVy
cyhtLCBtZW1iZXIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJtZW1iZXIgIiArIG1lbWJl
ci5uYW1lICsgIiBpcyB1bmlxdWUiKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5tZW1iZXJz
W2xoc10ubWVtYmVycy5wdXNoKG5ldyBJZGxJbnRlcmZhY2VNZW1iZXIobWVtYmVyKSk7CisgICAg
ICAgICAgICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSgh
Y2xhc2gsICJtZW1iZXIgIiArIChjbGFzaCAmJiBjbGFzaC5uYW1lKSArICIgaXMgdW5pcXVlIik7
CisgICAgICAgICAgICB9LmJpbmQodGhpcyksIGxocyArICIgaW5jbHVkZXMgIiArIHJocyArICI6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgdGhpcy5p
bmNsdWRlcyA9IFtdOworfQorCiBJZGxBcnJheS5wcm90b3R5cGUuYXJlX2R1cGxpY2F0ZV9tZW1i
ZXJzID0gZnVuY3Rpb24obTEsIG0yKSB7CiAgICAgaWYgKG0xLm5hbWUgIT09IG0yLm5hbWUpIHsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTExNiw3ICs5NzYsNyBAQCBJZGxBcnJheS5wcm90
b3R5cGUuYXNzZXJ0X3R5cGVfaXMgPSBmdW5jdGlvbih2YWx1ZSwgdHlwZSkKIAogICAgIHN3aXRj
aCh0eXBlKQogICAgIHsKLSAgICAgICAgY2FzZSAidm9pZCI6CisgICAgICAgIGNhc2UgInVuZGVm
aW5lZCI6CiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHZhbHVlLCB1bmRlZmluZWQpOwogICAg
ICAgICAgICAgcmV0dXJuOwogCkBAIC0xMTcyLDcgKzEwMzIsNyBAQCBJZGxBcnJheS5wcm90b3R5
cGUuYXNzZXJ0X3R5cGVfaXMgPSBmdW5jdGlvbih2YWx1ZSwgdHlwZSkKIAogICAgICAgICBjYXNl
ICJmbG9hdCI6CiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiB2YWx1ZSwgIm51bWJl
ciIpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh2YWx1ZSwgZnJvdW5kKHZhbHVlKSwgImZs
b2F0IHJvdW5kZWQgdG8gMzItYml0IGZsb2F0IHNob3VsZCBiZSBpdHNlbGYiKTsKKyAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHModmFsdWUsIE1hdGguZnJvdW5kKHZhbHVlKSwgImZsb2F0IHJvdW5k
ZWQgdG8gMzItYml0IGZsb2F0IHNob3VsZCBiZSBpdHNlbGYiKTsKICAgICAgICAgICAgIGFzc2Vy
dF9ub3RfZXF1YWxzKHZhbHVlLCBJbmZpbml0eSk7CiAgICAgICAgICAgICBhc3NlcnRfbm90X2Vx
dWFscyh2YWx1ZSwgLUluZmluaXR5KTsKICAgICAgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHZh
bHVlLCBOYU4pOwpAQCAtMTE4OCw3ICsxMDQ4LDcgQEAgSWRsQXJyYXkucHJvdG90eXBlLmFzc2Vy
dF90eXBlX2lzID0gZnVuY3Rpb24odmFsdWUsIHR5cGUpCiAKICAgICAgICAgY2FzZSAidW5yZXN0
cmljdGVkIGZsb2F0IjoKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIHZhbHVlLCAi
bnVtYmVyIik7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHZhbHVlLCBmcm91bmQodmFsdWUp
LCAidW5yZXN0cmljdGVkIGZsb2F0IHJvdW5kZWQgdG8gMzItYml0IGZsb2F0IHNob3VsZCBiZSBp
dHNlbGYiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHModmFsdWUsIE1hdGguZnJvdW5kKHZh
bHVlKSwgInVucmVzdHJpY3RlZCBmbG9hdCByb3VuZGVkIHRvIDMyLWJpdCBmbG9hdCBzaG91bGQg
YmUgaXRzZWxmIik7CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgY2FzZSAidW5yZXN0
cmljdGVkIGRvdWJsZSI6CkBAIC0xMjM2LDExICsxMDk2LDExIEBAIElkbEFycmF5LnByb3RvdHlw
ZS5hc3NlcnRfdHlwZV9pcyA9IGZ1bmN0aW9uKHZhbHVlLCB0eXBlKQogICAgICAgICAvLyBXZSBk
b24ndCB3YW50IHRvIHJ1biB0aGUgZnVsbAogICAgICAgICAvLyBJZGxJbnRlcmZhY2UucHJvdG90
eXBlLnRlc3RfaW5zdGFuY2Vfb2YsIGJlY2F1c2UgdGhhdCBjb3VsZCByZXN1bHQKICAgICAgICAg
Ly8gaW4gYW4gaW5maW5pdGUgbG9vcC4gIFRPRE86IFRoaXMgbWVhbnMgd2UgZG9uJ3QgaGF2ZSB0
ZXN0cyBmb3IKLSAgICAgICAgLy8gTm9JbnRlcmZhY2VPYmplY3QgaW50ZXJmYWNlcywgYW5kIHdl
IGFsc28gY2FuJ3QgdGVzdCBvYmplY3RzIHRoYXQKLSAgICAgICAgLy8gY29tZSBmcm9tIGFub3Ro
ZXIgc2VsZi4KKyAgICAgICAgLy8gTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QgaW50ZXJmYWNlcywg
YW5kIHdlIGFsc28gY2FuJ3QgdGVzdCBvYmplY3RzCisgICAgICAgIC8vIHRoYXQgY29tZSBmcm9t
IGFub3RoZXIgc2VsZi4KICAgICAgICAgYXNzZXJ0X2luX2FycmF5KHR5cGVvZiB2YWx1ZSwgWyJv
YmplY3QiLCAiZnVuY3Rpb24iXSwgIndyb25nIHR5cGU6IG5vdCBvYmplY3Qgb3IgZnVuY3Rpb24i
KTsKICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0Ci0gICAgICAgICYmICF0aGlz
Lm1lbWJlcnNbdHlwZV0uaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiTm9JbnRlcmZhY2VPYmplY3Qi
KQorICAgICAgICAmJiAhdGhpcy5tZW1iZXJzW3R5cGVdLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUo
IkxlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0IikKICAgICAgICAgJiYgdHlwZSBpbiBzZWxmKQogICAg
ICAgICB7CiAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSh2YWx1ZSBpbnN0YW5jZW9mIHNlbGZbdHlw
ZV0sICJpbnN0YW5jZW9mICIgKyB0eXBlKTsKQEAgLTEzMTQsOCArMTE3NCw4IEBAIGZ1bmN0aW9u
IElkbERpY3Rpb25hcnkob2JqKQogCiBJZGxEaWN0aW9uYXJ5LnByb3RvdHlwZSA9IE9iamVjdC5j
cmVhdGUoSWRsT2JqZWN0LnByb3RvdHlwZSk7CiAKLUlkbERpY3Rpb25hcnkucHJvdG90eXBlLmdl
dF9pbmhlcml0YW5jZV9zdGFjayA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiBJZGxJbnRlcmZh
Y2UucHJvdG90eXBlLmdldF9pbmhlcml0YW5jZV9zdGFjay5jYWxsKHRoaXMpOworSWRsRGljdGlv
bmFyeS5wcm90b3R5cGUuZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2sgPSBmdW5jdGlvbigp
IHsKKyAgICByZXR1cm4gSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfcmV2ZXJzZV9pbmhlcml0
YW5jZV9zdGFjay5jYWxsKHRoaXMpOwogfTsKIAogLy8vIElkbEludGVyZmFjZSAvLy8KQEAgLTE0
MTUsMTAgKzEyNzUsMTAgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5zaG91bGRfaGF2ZV9pbnRl
cmZhY2Vfb2JqZWN0ID0gZnVuY3Rpb24oKQogICAgIC8vIGVudmlyb25tZW50IGFuZDoKICAgICAv
LyAqIGlzIGEgY2FsbGJhY2sgaW50ZXJmYWNlIHRoYXQgaGFzIGNvbnN0YW50cyBkZWNsYXJlZCBv
biBpdCwgb3IKICAgICAvLyAqIGlzIGEgbm9uLWNhbGxiYWNrIGludGVyZmFjZSB0aGF0IGlzIG5v
dCBkZWNsYXJlZCB3aXRoIHRoZQotICAgIC8vICAgW05vSW50ZXJmYWNlT2JqZWN0XSBleHRlbmRl
ZCBhdHRyaWJ1dGUsCisgICAgLy8gICBbTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RdIGV4dGVuZGVk
IGF0dHJpYnV0ZSwKICAgICAvLyBhIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgTVVTVCBleGlzdCBv
biB0aGUgRUNNQVNjcmlwdCBnbG9iYWwgb2JqZWN0LgogCi0gICAgcmV0dXJuIHRoaXMuaXNfY2Fs
bGJhY2soKSA/IHRoaXMuaGFzX2NvbnN0YW50cygpIDogIXRoaXMuaGFzX2V4dGVuZGVkX2F0dHJp
YnV0ZSgiTm9JbnRlcmZhY2VPYmplY3QiKTsKKyAgICByZXR1cm4gdGhpcy5pc19jYWxsYmFjaygp
ID8gdGhpcy5oYXNfY29uc3RhbnRzKCkgOiAhdGhpcy5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdCIpOwogfTsKIAogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5h
c3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMgPSBmdW5jdGlvbigpCkBAIC0xNDI5LDcgKzEy
ODksNyBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmFzc2VydF9pbnRlcmZhY2Vfb2JqZWN0X2V4
aXN0cyA9IGZ1bmN0aW9uKCkKIAogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfaW50ZXJmYWNl
X29iamVjdCA9IGZ1bmN0aW9uKCkgewogICAgIGlmICghdGhpcy5zaG91bGRfaGF2ZV9pbnRlcmZh
Y2Vfb2JqZWN0KCkpIHsKLSAgICAgICAgdmFyIHJlYXNvbiA9IHRoaXMuaXNfY2FsbGJhY2soKSA/
ICJsYWNrIG9mIGRlY2xhcmVkIGNvbnN0YW50cyIgOiAiZGVjbGFyZWQgW05vSW50ZXJmYWNlT2Jq
ZWN0XSBhdHRyaWJ1dGUiOworICAgICAgICB2YXIgcmVhc29uID0gdGhpcy5pc19jYWxsYmFjaygp
ID8gImxhY2sgb2YgZGVjbGFyZWQgY29uc3RhbnRzIiA6ICJkZWNsYXJlZCBbTGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3RdIGF0dHJpYnV0ZSI7CiAgICAgICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJy
b3IodGhpcy5uYW1lICsgIiBoYXMgbm8gaW50ZXJmYWNlIG9iamVjdCBkdWUgdG8gIiArIHJlYXNv
bik7CiAgICAgfQogCkBAIC0xNDU3LDM5ICsxMzE3LDM5IEBAIElkbEludGVyZmFjZS5wcm90b3R5
cGUuaGFzX2RlZmF1bHRfdG9fanNvbl9yZWd1bGFyX29wZXJhdGlvbiA9IGZ1bmN0aW9uKCkgewog
ICAgIH0pOwogfTsKIAotSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfaW5oZXJpdGFuY2Vfc3Rh
Y2sgPSBmdW5jdGlvbigpIHsKLSAgICAvKioKLSAgICAgKiBTZWUgaHR0cHM6Ly9oZXljYW0uZ2l0
aHViLmlvL3dlYmlkbC8jY3JlYXRlLWFuLWluaGVyaXRhbmNlLXN0YWNrCi0gICAgICoKLSAgICAg
KiBSZXR1cm5zIGFuIGFycmF5IG9mIElkbEludGVyZmFjZSBvYmplY3RzIHdoaWNoIGNvbnRhaW5z
IGl0c2VsZgotICAgICAqIGFuZCBhbGwgb2YgaXRzIGluaGVyaXRlZCBpbnRlcmZhY2VzLgotICAg
ICAqCi0gICAgICogU28gZ2l2ZW46Ci0gICAgICoKLSAgICAgKiAgIEEgOiBCIHt9OwotICAgICAq
ICAgQiA6IEMge307Ci0gICAgICogICBDIHt9OwotICAgICAqCi0gICAgICogdGhlbiBBLmdldF9p
bmhlcml0YW5jZV9zdGFjaygpIHNob3VsZCByZXR1cm4gW0EsIEIsIENdLAotICAgICAqIGFuZCBC
LmdldF9pbmhlcml0YW5jZV9zdGFjaygpIHNob3VsZCByZXR1cm4gW0IsIENdLgotICAgICAqCi0g
ICAgICogTm90ZTogYXMgZGljdGlvbmFyeSBpbmhlcml0YW5jZSBpcyBleHByZXNzZWQgaWRlbnRp
Y2FsbHkgYnkgdGhlIEFTVCwKLSAgICAgKiB0aGlzIHdvcmtzIGp1c3QgYXMgd2VsbCBmb3IgZ2V0
dGluZyBhIHN0YWNrIG9mIGluaGVyaXRlZCBkaWN0aW9uYXJpZXMuCi0gICAgICovCi0KLSAgICB2
YXIgc3RhY2sgPSBbdGhpc107Ci0gICAgdmFyIGlkbF9pbnRlcmZhY2UgPSB0aGlzOworLyoqCisg
KiBJbXBsZW1lbnRhdGlvbiBvZiBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNjcmVh
dGUtYW4taW5oZXJpdGFuY2Utc3RhY2sKKyAqIHdpdGggdGhlIG9yZGVyIHJldmVyc2VkLgorICoK
KyAqIFRoZSBvcmRlciBpcyByZXZlcnNlZCBzbyB0aGF0IHRoZSBiYXNlIGNsYXNzIGNvbWVzIGZp
cnN0IGluIHRoZSBsaXN0LCBiZWNhdXNlCisgKiB0aGlzIGlzIHdoYXQgYWxsIGNhbGwgc2l0ZXMg
bmVlZC4KKyAqCisgKiBTbyBnaXZlbjoKKyAqCisgKiAgIEEgOiBCIHt9OworICogICBCIDogQyB7
fTsKKyAqICAgQyB7fTsKKyAqCisgKiB0aGVuIEEuZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3Rh
Y2soKSByZXR1cm5zIFtDLCBCLCBBXSwKKyAqIGFuZCBCLmdldF9yZXZlcnNlX2luaGVyaXRhbmNl
X3N0YWNrKCkgcmV0dXJucyBbQywgQl0uCisgKgorICogTm90ZTogYXMgZGljdGlvbmFyeSBpbmhl
cml0YW5jZSBpcyBleHByZXNzZWQgaWRlbnRpY2FsbHkgYnkgdGhlIEFTVCwKKyAqIHRoaXMgd29y
a3MganVzdCBhcyB3ZWxsIGZvciBnZXR0aW5nIGEgc3RhY2sgb2YgaW5oZXJpdGVkIGRpY3Rpb25h
cmllcy4KKyAqLworSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfcmV2ZXJzZV9pbmhlcml0YW5j
ZV9zdGFjayA9IGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHN0YWNrID0gW3RoaXNdOworICAgIGxl
dCBpZGxfaW50ZXJmYWNlID0gdGhpczsKICAgICB3aGlsZSAoaWRsX2ludGVyZmFjZS5iYXNlKSB7
Ci0gICAgICAgIHZhciBiYXNlID0gdGhpcy5hcnJheS5tZW1iZXJzW2lkbF9pbnRlcmZhY2UuYmFz
ZV07CisgICAgICAgIGNvbnN0IGJhc2UgPSB0aGlzLmFycmF5Lm1lbWJlcnNbaWRsX2ludGVyZmFj
ZS5iYXNlXTsKICAgICAgICAgaWYgKCFiYXNlKSB7CiAgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoaWRsX2ludGVyZmFjZS50eXBlICsgIiAiICsgaWRsX2ludGVyZmFjZS5iYXNlICsgIiBub3Qg
Zm91bmQgKGluaGVyaXRlZCBieSAiICsgaWRsX2ludGVyZmFjZS5uYW1lICsgIikiKTsKICAgICAg
ICAgfSBlbHNlIGlmIChzdGFjay5pbmRleE9mKGJhc2UpID4gLTEpIHsKLSAgICAgICAgICAgIHN0
YWNrLnB1c2goYmFzZSk7Ci0gICAgICAgICAgICBsZXQgZGVwX2NoYWluID0gc3RhY2subWFwKGkg
PT4gaS5uYW1lKS5qb2luKCcsJyk7CisgICAgICAgICAgICBzdGFjay51bnNoaWZ0KGJhc2UpOwor
ICAgICAgICAgICAgY29uc3QgZGVwX2NoYWluID0gc3RhY2subWFwKGkgPT4gaS5uYW1lKS5qb2lu
KCcsJyk7CiAgICAgICAgICAgICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vycm9yKGAke3RoaXMubmFt
ZX0gaGFzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeTogJHtkZXBfY2hhaW59YCk7CiAgICAgICAgIH0K
ICAgICAgICAgaWRsX2ludGVyZmFjZSA9IGJhc2U7Ci0gICAgICAgIHN0YWNrLnB1c2goaWRsX2lu
dGVyZmFjZSk7CisgICAgICAgIHN0YWNrLnVuc2hpZnQoaWRsX2ludGVyZmFjZSk7CiAgICAgfQog
ICAgIHJldHVybiBzdGFjazsKIH07CkBAIC0xNTAzLDc2ICsxMzYzLDI3IEBAIElkbEludGVyZmFj
ZS5wcm90b3R5cGUuZ2V0X2luaGVyaXRhbmNlX3N0YWNrID0gZnVuY3Rpb24oKSB7CiAgKiBmb3Ig
aW5jbHVzaW9uIGluIHRoZSBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24gZm9yIGVhc3kKICAqIGNv
bXBhcmlzb24gd2l0aCBhY3R1YWwgdmFsdWUKICAqLwotSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5k
ZWZhdWx0X3RvX2pzb25fb3BlcmF0aW9uID0gZnVuY3Rpb24oY2FsbGJhY2spIHsKLSAgICB2YXIg
bWFwID0gbmV3IE1hcCgpLCBpc0RlZmF1bHQgPSBmYWxzZTsKLSAgICB0aGlzLnRyYXZlcnNlX2lu
aGVyaXRlZF9hbmRfY29uc2VxdWVudGlhbF9pbnRlcmZhY2VzKGZ1bmN0aW9uKEkpIHsKK0lkbElu
dGVyZmFjZS5wcm90b3R5cGUuZGVmYXVsdF90b19qc29uX29wZXJhdGlvbiA9IGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoKQorICAgIGxldCBpc0RlZmF1bHQgPSBmYWxzZTsK
KyAgICBmb3IgKGNvbnN0IEkgb2YgdGhpcy5nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjaygp
KSB7CiAgICAgICAgIGlmIChJLmhhc19kZWZhdWx0X3RvX2pzb25fcmVndWxhcl9vcGVyYXRpb24o
KSkgewogICAgICAgICAgICAgaXNEZWZhdWx0ID0gdHJ1ZTsKLSAgICAgICAgICAgIEkubWVtYmVy
cy5mb3JFYWNoKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICAgIGZvciAoY29uc3QgbSBvZiBJLm1l
bWJlcnMpIHsKICAgICAgICAgICAgICAgICBpZiAobS5zcGVjaWFsICE9PSAic3RhdGljIiAmJiBt
LnR5cGUgPT0gImF0dHJpYnV0ZSIgJiYgSS5hcnJheS5pc19qc29uX3R5cGUobS5pZGxUeXBlKSkg
ewogICAgICAgICAgICAgICAgICAgICBtYXAuc2V0KG0ubmFtZSwgbS5pZGxUeXBlKTsKICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSBl
bHNlIGlmIChJLmhhc190b19qc29uX3JlZ3VsYXJfb3BlcmF0aW9uKCkpIHsKICAgICAgICAgICAg
IGlzRGVmYXVsdCA9IGZhbHNlOwogICAgICAgICB9Ci0gICAgfSk7Ci0gICAgcmV0dXJuIGlzRGVm
YXVsdCA/IG1hcCA6IG51bGw7Ci19OwotCi0vKioKLSAqIFRyYXZlcnNlcyBpbmhlcml0ZWQgaW50
ZXJmYWNlcyBmcm9tIHRoZSB0b3AgZG93bgotICogYW5kIGltZXBsZW1lbnRlZCBpbnRlcmZhY2Vz
IGluc2lkZSBvdXQuCi0gKiBJbnZva2VzIHxjYWxsYmFja3wgb24gZWFjaCBpbnRlcmZhY2UuCi0g
KgotICogVGhpcyBpcyBhbiBhYnN0cmFjdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdHJhdmVyc2Fs
Ci0gKiBhbGdvcml0aG0gc3BlY2lmaWVkIGluOgotICogaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlv
L3dlYmlkbC8jY29sbGVjdC1hdHRyaWJ1dGUtdmFsdWVzCi0gKiBHaXZlbiB0aGUgZm9sbG93aW5n
IGluaGVyaXRhbmNlIHRyZWU6Ci0gKgotICogICAgICAgICAgIEYKLSAqICAgICAgICAgICB8Ci0g
KiAgICAgICBDICAgRSAtIEkKLSAqICAgICAgIHwgICB8Ci0gKiAgICAgICBCIC0gRAotICogICAg
ICAgfAotICogICBHIC0gQSAtIEggLSBKCi0gKgotICogSW52b2tpbmcgdHJhdmVyc2VfaW5oZXJp
dGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMoKSBvbiBBCi0gKiB3b3VsZCB0cmF2ZXJz
ZSB0aGUgdHJlZSBpbiB0aGUgZm9sbG93aW5nIG9yZGVyOgotICogQyAtPiBCIC0+IEYgLT4gRSAt
PiBJIC0+IEQgLT4gQSAtPiBHIC0+IEggLT4gSgotICovCi0KLUlkbEludGVyZmFjZS5wcm90b3R5
cGUudHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMgPSBmdW5j
dGlvbihjYWxsYmFjaykgewotICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT0gImZ1bmN0aW9uIikg
ewotICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCk7CiAgICAgfQotICAgIHZhciBzdGFjayA9
IHRoaXMuZ2V0X2luaGVyaXRhbmNlX3N0YWNrKCk7Ci0gICAgX3RyYXZlcnNlX2luaGVyaXRlZF9h
bmRfY29uc2VxdWVudGlhbF9pbnRlcmZhY2VzKHN0YWNrLCBjYWxsYmFjayk7CisgICAgcmV0dXJu
IGlzRGVmYXVsdCA/IG1hcCA6IG51bGw7CiB9OwogCi1mdW5jdGlvbiBfdHJhdmVyc2VfaW5oZXJp
dGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMoc3RhY2ssIGNhbGxiYWNrKSB7Ci0gICAg
dmFyIEkgPSBzdGFjay5wb3AoKTsKLSAgICBjYWxsYmFjayhJKTsKLSAgICB2YXIgbWl4aW5zID0g
SS5hcnJheVsiaW1wbGVtZW50cyJdW0kubmFtZV0gfHwgSS5hcnJheVsiaW5jbHVkZXMiXVtJLm5h
bWVdOwotICAgIGlmIChtaXhpbnMpIHsKLSAgICAgICAgbWl4aW5zLmZvckVhY2goZnVuY3Rpb24o
aWQpIHsKLSAgICAgICAgICAgIHZhciBtaXhpbiA9IEkuYXJyYXkubWVtYmVyc1tpZF07Ci0gICAg
ICAgICAgICBpZiAoIW1peGluKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJ
bnRlcmZhY2UgIiArIGlkICsgIiBub3QgZm91bmQgKGltcGxlbWVudGVkIGJ5ICIgKyBJLm5hbWUg
KyAiKSIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdmFyIGludGVyZmFjZXMgPSBtaXhp
bi5nZXRfaW5oZXJpdGFuY2Vfc3RhY2soKTsKLSAgICAgICAgICAgIF90cmF2ZXJzZV9pbmhlcml0
ZWRfYW5kX2NvbnNlcXVlbnRpYWxfaW50ZXJmYWNlcyhpbnRlcmZhY2VzLCBjYWxsYmFjayk7Ci0g
ICAgICAgIH0pOwotICAgIH0KLSAgICBpZiAoc3RhY2subGVuZ3RoID4gMCkgewotICAgICAgICBf
dHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMoc3RhY2ssIGNh
bGxiYWNrKTsKLSAgICB9Ci19Ci0KIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0
aW9uKCkKIHsKLSAgICBpZiAodGhpcy5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJOb0ludGVyZmFj
ZU9iamVjdCIpIHx8IHRoaXMuaXNfbWl4aW4oKSkKKyAgICBpZiAodGhpcy5oYXNfZXh0ZW5kZWRf
YXR0cmlidXRlKCJMZWdhY3lOb0ludGVyZmFjZU9iamVjdCIpIHx8IHRoaXMuaXNfbWl4aW4oKSkK
ICAgICB7CiAgICAgICAgIC8vIE5vIHRlc3RzIHRvIGRvIHdpdGhvdXQgYW4gaW5zdGFuY2UuICBU
T0RPOiBXZSBzaG91bGQgc3RpbGwgYmUgYWJsZQogICAgICAgICAvLyB0byBydW4gdGVzdHMgb24g
dGhlIHByb3RvdHlwZSBvYmplY3QsIGlmIHdlIG9idGFpbiBvbmUgdGhyb3VnaCBzb21lCkBAIC0x
NTgwLDEwICsxMzkxLDE2IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9u
KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghdGhpcy5leHBvc2VkKSB7Ci0g
ICAgICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgYXNzZXJ0X2ZhbHNlKHRoaXMubmFtZSBpbiBzZWxmKTsKLSAgICAgICAgfS5iaW5k
KHRoaXMpLCB0aGlzLm5hbWUgKyAiIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QiKTsKKyAgICAvLyBJZiB0aGUgaW50ZXJmYWNlIG9iamVjdCBp
cyBub3QgZXhwb3NlZCwgb25seSB0ZXN0IHRoYXQuIE1lbWJlcnMgY2FuJ3QgYmUKKyAgICAvLyB0
ZXN0ZWQgZWl0aGVyLCBidXQgb2JqZWN0cyBjb3VsZCBzdGlsbCBiZSB0ZXN0ZWQgaW4gfHRlc3Rf
b2JqZWN0fC4KKyAgICBpZiAoIXRoaXMuZXhwb3NlZCkKKyAgICB7CisgICAgICAgIGlmICghdGhp
cy51bnRlc3RlZCkKKyAgICAgICAgeworICAgICAgICAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMu
bmFtZSwgdGVzdCwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHRo
aXMubmFtZSBpbiBzZWxmKTsKKyAgICAgICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsg
IiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0
Iik7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTYwMywyMyArMTQy
MCwxNiBAQCBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3QgPSBmdW5jdGlvbigpCiAgICAgdGhp
cy50ZXN0X21lbWJlcnMoKTsKIH07CiAKLS8vIFRoaXMgc3VwcG9ydHMgYm90aCBDb25zdHJ1Y3Rv
ciBleHRlbmRlZCBhdHRyaWJ1dGVzIGFuZCBjb25zdHJ1Y3RvcgotLy8gb3BlcmF0aW9ucyB1bnRp
bCBhbGwgaWRsIGZyYWdtZW50cyBoYXZlIGJlZW4gdXBkYXRlZC4KIElkbEludGVyZmFjZS5wcm90
b3R5cGUuY29uc3RydWN0b3JzID0gZnVuY3Rpb24oKQogewotICAgIHZhciBleHRlbmRlZEF0dHJp
YnV0ZXMgPSB0aGlzLmV4dEF0dHJzCi0gICAgICAgIC5maWx0ZXIoZnVuY3Rpb24oYXR0cikgeyBy
ZXR1cm4gYXR0ci5uYW1lID09ICJDb25zdHJ1Y3RvciI7IH0pOwotICAgIHZhciBvcGVyYXRpb25z
ID0gdGhpcy5tZW1iZXJzCisgICAgcmV0dXJuIHRoaXMubWVtYmVycwogICAgICAgICAuZmlsdGVy
KGZ1bmN0aW9uKG0pIHsgcmV0dXJuIG0udHlwZSA9PSAiY29uc3RydWN0b3IiOyB9KTsKLSAgICBy
ZXR1cm4gZXh0ZW5kZWRBdHRyaWJ1dGVzLmNvbmNhdChvcGVyYXRpb25zKTsKIH0KIAogSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiB7CiAgICAgc3Vic2V0VGVz
dEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgLy8gVGhp
cyBmdW5jdGlvbiB0ZXN0cyBXZWJJREwgYXMgb2YgMjAxNS0wMS0xMy4KLQogICAgICAgICBpZiAo
IXRoaXMuc2hvdWxkX2hhdmVfaW50ZXJmYWNlX29iamVjdCgpKSB7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KQEAgLTE2NjEsOCArMTQ3MSw2IEBAIElkbEludGVyZmFjZS5wcm90b3R5
cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogCiAgICAgICAgIC8vICIqIEl0cyBbW0NvbnN0cnVj
dF1dIGludGVybmFsIHByb3BlcnR5IGlzIHNldCBhcyBkZXNjcmliZWQgaW4KICAgICAgICAgLy8g
ICAgRUNNQS0yNjIgc2VjdGlvbiAxOS4yLjIuMy4iCi0gICAgICAgIC8vIFRlc3RlZCBiZWxvdyBp
ZiBubyBjb25zdHJ1Y3RvciBpcyBkZWZpbmVkLiAgVE9ETzogdGVzdCBjb25zdHJ1Y3RvcnMKLSAg
ICAgICAgLy8gaWYgZGVmaW5lZC4KIAogICAgICAgICAvLyAiKiBJdHMgQEBoYXNJbnN0YW5jZSBw
cm9wZXJ0eSBpcyBzZXQgYXMgZGVzY3JpYmVkIGluIEVDTUEtMjYyCiAgICAgICAgIC8vICAgIHNl
Y3Rpb24gMTkuMi4zLjgsIHVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkLiIKQEAgLTE2ODEsNyAr
MTQ4OSw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgLy8gICAgdmFsdWUgb2YgW1tQcm90b3R5cGVdXSBpcyB0aGUgaW50ZXJmYWNl
IG9iamVjdCBmb3IgdGhhdCBvdGhlcgogICAgICAgICAgICAgLy8gICAgaW50ZXJmYWNlLiIKICAg
ICAgICAgICAgIHZhciBpbmhlcml0ZWRfaW50ZXJmYWNlID0gdGhpcy5hcnJheS5tZW1iZXJzW3Ro
aXMuYmFzZV07Ci0gICAgICAgICAgICBpZiAoIWluaGVyaXRlZF9pbnRlcmZhY2UuaGFzX2V4dGVu
ZGVkX2F0dHJpYnV0ZSgiTm9JbnRlcmZhY2VPYmplY3QiKSkgeworICAgICAgICAgICAgaWYgKCFp
bmhlcml0ZWRfaW50ZXJmYWNlLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIkxlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0IikpIHsKICAgICAgICAgICAgICAgICBpbmhlcml0ZWRfaW50ZXJmYWNlLmFzc2Vy
dF9pbnRlcmZhY2Vfb2JqZWN0X2V4aXN0cygpOwogICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMocHJvdG90eXBlLCBpbmhlcml0ZWRfaW50ZXJmYWNlLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCks
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvdG90eXBlIG9mICcgKyB0aGlzLm5h
bWUgKyAnIGlzIG5vdCAnICsKQEAgLTE2OTUsMTIgKzE1MDMsMTIgQEAgSWRsSW50ZXJmYWNlLnBy
b3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJwcm90b3R5cGUgb2Ygc2VsZidzIHByb3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1l
KSArICIgaXMgbm90IEZ1bmN0aW9uLnByb3RvdHlwZSIpOwogICAgICAgICB9CiAKKyAgICAgICAg
Ly8gQWx3YXlzIHRlc3QgZm9yIFtbQ29uc3RydWN0XV06CisgICAgICAgIC8vIGh0dHBzOi8vZ2l0
aHViLmNvbS9oZXljYW0vd2ViaWRsL2lzc3Vlcy82OTgKKyAgICAgICAgYXNzZXJ0X3RydWUoaXND
b25zdHJ1Y3Rvcih0aGlzLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCkpLCAiaW50ZXJmYWNlIG9iamVj
dCBtdXN0IHBhc3MgSXNDb25zdHJ1Y3RvciBjaGVjayIpOworCiAgICAgICAgIGlmICghdGhpcy5j
b25zdHJ1Y3RvcnMoKS5sZW5ndGgpIHsKLSAgICAgICAgICAgIC8vICJUaGUgaW50ZXJuYWwgW1tD
YWxsXV0gbWV0aG9kIG9mIHRoZSBpbnRlcmZhY2Ugb2JqZWN0IGJlaGF2ZXMgYXMKLSAgICAgICAg
ICAgIC8vIGZvbGxvd3MgLiAuIC4KLSAgICAgICAgICAgIC8vCi0gICAgICAgICAgICAvLyAiSWYg
SSB3YXMgbm90IGRlY2xhcmVkIHdpdGggYSBbQ29uc3RydWN0b3JdIGV4dGVuZGVkIGF0dHJpYnV0
ZSwKLSAgICAgICAgICAgIC8vIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IuIgorICAgICAgICAgICAg
Ly8gIklmIEkgd2FzIG5vdCBkZWNsYXJlZCB3aXRoIGEgY29uc3RydWN0b3Igb3BlcmF0aW9uLCB0
aGVuIHRocm93IGEgVHlwZUVycm9yLiIKICAgICAgICAgICAgIHZhciBpbnRlcmZhY2Vfb2JqZWN0
ID0gdGhpcy5nZXRfaW50ZXJmYWNlX29iamVjdCgpOwogICAgICAgICAgICAgYXNzZXJ0X3Rocm93
c19qcyhnbG9iYWxPZihpbnRlcmZhY2Vfb2JqZWN0KS5UeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewog
ICAgICAgICAgICAgICAgIGludGVyZmFjZV9vYmplY3QoKTsKQEAgLTE3NzMsNyArMTU4MSw3IEBA
IElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgaWYgKCF0aGlzLmV4cG9zdXJlU2V0LmhhcygiV2luZG93IikpIHsKICAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vycm9yKCJJbnZhbGlkIElETDogTGVnYWN5V2luZG93QWxp
YXMgZXh0ZW5kZWQgYXR0cmlidXRlIG9uICIgKyB0aGlzLm5hbWUgKyAiIHdoaWNoIGlzIG5vdCBl
eHBvc2VkIGluIFdpbmRvdyIpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gVE9ETzog
d2hlbiB0ZXN0aW5nIG9mIFtOb0ludGVyZmFjZU9iamVjdF0gaW50ZXJmYWNlcyBpcyBzdXBwb3J0
ZWQsCisgICAgICAgICAgICAvLyBUT0RPOiB3aGVuIHRlc3Rpbmcgb2YgW0xlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0XSBpbnRlcmZhY2VzIGlzIHN1cHBvcnRlZCwKICAgICAgICAgICAgIC8vIGNoZWNr
IHRoYXQgaXQncyBub3Qgc3BlY2lmaWVkIHRvZ2V0aGVyIHdpdGggTGVnYWN5V2luZG93QWxpYXMu
CiAKICAgICAgICAgICAgIC8vIFRPRE86IG1heWJlIGNoZWNrIHRoYXQgW0xlZ2FjeVdpbmRvd0Fs
aWFzXcKgaXMgbm90IHNwZWNpZmllZCBvbiBhIHBhcnRpYWwgaW50ZXJmYWNlLgpAQCAtMTk2Myw3
ICsxNzcxLDcgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigp
CiAKICAgICAgICAgLy8gTmV4dCwgdGVzdCB0aGF0IHRoZSBbW1Byb3RvdHlwZV1dIG9mIHRoZSBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAogICAgICAgICAvLyBpcyBjb3JyZWN0LiAoVGhpcyBp
cyBtYWRlIHNvbWV3aGF0IGRpZmZpY3VsdCBieSB0aGUgZXhpc3RlbmNlIG9mCi0gICAgICAgIC8v
IFtOb0ludGVyZmFjZU9iamVjdF0uKQorICAgICAgICAvLyBbTGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3RdLikKICAgICAgICAgLy8gVE9ETzogQXJ5ZWggdGhpbmtzIHRoZXJlJ3MgYXQgbGVhc3Qgb3Ro
ZXIgcGxhY2UgaW4gdGhpcyBmaWxlIHdoZXJlCiAgICAgICAgIC8vICAgICAgIHdlIHRyeSB0byBm
aWd1cmUgb3V0IGlmIGFuIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IGlzCiAgICAgICAgIC8v
ICAgICAgIGNvcnJlY3QuIENvbnNvbGlkYXRlIHRoYXQgY29kZS4KQEAgLTE5OTYsNyArMTgwNCw3
IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgaWYgKHRoaXMuYmFzZSkgewogICAgICAgICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNl
ID0gdGhpcy5iYXNlOwogICAgICAgICAgICAgICAgIHZhciBwYXJlbnQgPSB0aGlzLmFycmF5Lm1l
bWJlcnNbaW5oZXJpdF9pbnRlcmZhY2VdOwotICAgICAgICAgICAgICAgIGlmICghcGFyZW50Lmhh
c19leHRlbmRlZF9hdHRyaWJ1dGUoIk5vSW50ZXJmYWNlT2JqZWN0IikpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoIXBhcmVudC5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdCIpKSB7CiAgICAgICAgICAgICAgICAgICAgIHBhcmVudC5hc3NlcnRfaW50ZXJmYWNl
X29iamVjdF9leGlzdHMoKTsKICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdF9pbnRlcmZhY2Vf
aW50ZXJmYWNlX29iamVjdCA9IHBhcmVudC5nZXRfaW50ZXJmYWNlX29iamVjdCgpOwogICAgICAg
ICAgICAgICAgIH0KQEAgLTIwNzIsOCArMTg4MCw4IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUu
dGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHRoaXMu
Z2V0X2ludGVyZmFjZV9vYmplY3QoKSwgInByb3RvdHlwZSIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2ludGVyZmFjZSAiJyArIHRoaXMubmFtZSArICciIGRvZXMgbm90IGhhdmUgb3du
IHByb3BlcnR5ICJwcm90b3R5cGUiJyk7CiAKLSAgICAgICAgLy8gIklmIHRoZSBbTm9JbnRlcmZh
Y2VPYmplY3RdIGV4dGVuZGVkIGF0dHJpYnV0ZSB3YXMgbm90IHNwZWNpZmllZCBvbgotICAgICAg
ICAvLyB0aGUgaW50ZXJmYWNlLCB0aGVuIHRoZSBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBt
dXN0IGFsc28gaGF2ZSBhCisgICAgICAgIC8vICJJZiB0aGUgW0xlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0XSBleHRlbmRlZCBhdHRyaWJ1dGUgd2FzIG5vdCBzcGVjaWZpZWQKKyAgICAgICAgLy8gb24g
dGhlIGludGVyZmFjZSwgdGhlbiB0aGUgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBh
bHNvIGhhdmUgYQogICAgICAgICAvLyBwcm9wZXJ0eSBuYW1lZCDigJxjb25zdHJ1Y3RvcuKAnSB3
aXRoIGF0dHJpYnV0ZXMgeyBbW1dyaXRhYmxlXV06IHRydWUsCiAgICAgICAgIC8vIFtbRW51bWVy
YWJsZV1dOiBmYWxzZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZSB9IHdob3NlIHZhbHVlIGlzIGEK
ICAgICAgICAgLy8gcmVmZXJlbmNlIHRvIHRoZSBpbnRlcmZhY2Ugb2JqZWN0IGZvciB0aGUgaW50
ZXJmYWNlLiIKQEAgLTI4MTgsOSArMjYyNiw2IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVz
dF9vYmplY3QgPSBmdW5jdGlvbihkZXNjKQogICAgIHsKICAgICAgICAgLy8gUmVzdWx0IG9mIFtb
SXNIVE1MRERBXV0gc2xvdAogICAgICAgICBleHBlY3RlZF90eXBlb2YgPSAidW5kZWZpbmVkIjsK
LSAgICB9IGVsc2UgaWYgKHRoaXMubWVtYmVycy5zb21lKGZ1bmN0aW9uKG1lbWJlcikgeyByZXR1
cm4gbWVtYmVyLmxlZ2FjeWNhbGxlcjsgfSkpCi0gICAgewotICAgICAgICBleHBlY3RlZF90eXBl
b2YgPSAiZnVuY3Rpb24iOwogICAgIH0KICAgICBlbHNlCiAgICAgewpAQCAtMzA4MywxMSArMjg4
OCw2IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUuZG9faW50ZXJmYWNlX2F0dHJpYnV0ZV9hc3Nl
cnRzID0gZnVuY3Rpb24ob2JqLCBtZW1iZXIsIGFfCiAKICAgICB2YXIgcGVuZGluZ1Byb21pc2Vz
ID0gW107CiAKLSAgICAvLyAiRm9yIGVhY2ggZXhwb3NlZCBhdHRyaWJ1dGUgb2YgdGhlIGludGVy
ZmFjZSwgd2hldGhlciBpdCB3YXMgZGVjbGFyZWQgb24KLSAgICAvLyB0aGUgaW50ZXJmYWNlIGl0
c2VsZiBvciBvbmUgb2YgaXRzIGNvbnNlcXVlbnRpYWwgaW50ZXJmYWNlcywgdGhlcmUgTVVTVAot
ICAgIC8vIGV4aXN0IGEgY29ycmVzcG9uZGluZyBwcm9wZXJ0eS4gVGhlIGNoYXJhY3RlcmlzdGlj
cyBvZiB0aGlzIHByb3BlcnR5IGFyZQotICAgIC8vIGFzIGZvbGxvd3M6IgotCiAgICAgLy8gIlRo
ZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSBpcyB0aGUgaWRlbnRpZmllciBvZiB0aGUgYXR0cmlidXRl
LiIKICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KG9iaiwgbWVtYmVyLm5hbWUpOwogCkBAIC0zNTQz
LDggKzMzNDMsNiBAQCBJZGxOYW1lc3BhY2UucHJvdG90eXBlLnRlc3QgPSBmdW5jdGlvbiAoKQog
ZnVuY3Rpb24gaWRsX3Rlc3Qoc3JjcywgZGVwcywgaWRsX3NldHVwX2Z1bmMpIHsKICAgICByZXR1
cm4gcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICh0KSB7CiAgICAgICAgIHZhciBpZGxfYXJyYXkgPSBu
ZXcgSWRsQXJyYXkoKTsKLSAgICAgICAgc3JjcyA9IChzcmNzIGluc3RhbmNlb2YgQXJyYXkpID8g
c3JjcyA6IFtzcmNzXSB8fCBbXTsKLSAgICAgICAgZGVwcyA9IChkZXBzIGluc3RhbmNlb2YgQXJy
YXkpID8gZGVwcyA6IFtkZXBzXSB8fCBbXTsKICAgICAgICAgdmFyIHNldHVwX2Vycm9yID0gbnVs
bDsKICAgICAgICAgY29uc3QgdmFsaWRhdGlvbklnbm9yZWQgPSBbCiAgICAgICAgICAgICAiY29u
c3RydWN0b3ItbWVtYmVyIiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtb25seS1hcGkuanMgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0LW9ubHktYXBp
LmpzCmluZGV4IGVmNjZlMGU3MzNmOWM2ODAwNDEyOWQyNGIzYzlhZDEyYjlhYTA3MDguLmE2NmVi
NDRlZGU3YzE1YTM3ZmIxYTNjNWRkNWQyYWJjMTcxNzdjOGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtb25seS1h
cGkuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC1vbmx5LWFwaS5qcwpAQCAtMjksNzIgKzI5LDMgQEAgZnVuY3Rpb24gbG9h
ZFNjcmlwdChwYXRoKSB7CiAgICAgcmV0dXJuIHA7CiAgIH0KIH0KLQotLyoqCi0gKiBBIGhlbHBl
ciBmb3IgQ2hyb21pdW0tYmFzZWQgYnJvd3NlcnMgdG8gbG9hZCBNb2pvIEpTIGJpbmRpbmdzCi0g
KgotICogVGhpcyBpcyBhbiBhc3luYyBmdW5jdGlvbiB0aGF0IHdvcmtzIGluIGJvdGggd29ya2Vy
cyBhbmQgd2luZG93cy4gSXQgZmlyc3QKLSAqIGxvYWRzIG1vam9fYmluZGluZ3MuanMsIGRpc2Fi
bGVzIGF1dG9tYXRpYyBkZXBlbmRlbmN5IGxvYWRpbmcsIGFuZCBsb2FkcyBhbGwKLSAqIHJlc291
cmNlcyBzZXF1ZW50aWFsbHkuIFRoZSBwcm9taXNlIHJlc29sdmVzIGlmIGV2ZXJ5dGhpbmcgbG9h
ZHMKLSAqIHN1Y2Nlc3NmdWxseSwgb3IgcmVqZWN0cyBpZiBhbnkgZXhjZXB0aW9uIGlzIHJhaXNl
ZC4gSWYgdGVzdGhhcm5lc3MuanMgaXMKLSAqIHVzZWQsIGFuIHVuY2F1Z2h0IGV4Y2VwdGlvbiB3
aWxsIHRlcm1pbmF0ZSB0aGUgdGVzdCB3aXRoIGEgaGFybmVzcyBlcnJvcgotICogKHVubGVzcyBg
YWxsb3dfdW5jYXVnaHRfZXhjZXB0aW9uYCBpcyB0cnVlKSwgd2hpY2ggaXMgdXN1YWxseSB0aGUg
ZGVzaXJlZAotICogYmVoYXZpb3VyLgotICoKLSAqIFRoaXMgZnVuY3Rpb24gYWxzbyB3b3JrcyB3
aXRoIEJsaW5rIHdlYiB0ZXN0cyBsb2FkZWQgZnJvbSBmaWxlOi8vLCBpbiB3aGljaAotICogY2Fz
ZSBmaWxlOi8vIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCAnL2dlbi8uLi4nIFVSTHMuCi0gKgot
ICogT25seSBjYWxsIHRoaXMgZnVuY3Rpb24gaWYgaXNDaHJvbWl1bUJhc2VkID09PSB0cnVlLgot
ICoKLSAqIEBwYXJhbSB7QXJyYXkuPHN0cmluZz59IHJlc291cmNlcyAtIEEgbGlzdCBvZiBzY3Jp
cHRzIHRvIGxvYWQ6IE1vam8gSlMKLSAqICAgYmluZGluZ3Mgc2hvdWxkIGJlIG9mIHRoZSBmb3Jt
ICcvZ2VuLy4uLyoubW9qb20uanMnIG9yCi0gKiAgICcvZ2VuLy4uLyoubW9qb20tbGl0ZS5qcycg
KHJlcXVpcmVzIGBsaXRlYCB0byBiZSB0cnVlKTsgdGhlIG9yZGVyIGRvZXMgbm90Ci0gKiAgIG1h
dHRlci4gRG8gbm90IGluY2x1ZGUgJ21vam9fYmluZGluZ3MuanMnIG9yICdtb2pvX2JpbmRpbmdz
X2xpdGUuanMnLgotICogQHBhcmFtIHtib29sZWFuPX0gbGl0ZSAtIFdoZXRoZXIgdGhlIGxpdGUg
YmluZGluZ3MgKCoubW9qb20tbGl0ZS5qcykgYXJlIHVzZWQKLSAqICAgKGRlZmF1bHQgaXMgZmFs
c2UpLgotICogQHJldHVybnMge1Byb21pc2V9Ci0gKi8KLWFzeW5jIGZ1bmN0aW9uIGxvYWRNb2pv
UmVzb3VyY2VzKHJlc291cmNlcywgbGl0ZSA9IGZhbHNlKSB7Ci0gIGlmICghaXNDaHJvbWl1bUJh
c2VkKSB7Ci0gICAgdGhyb3cgbmV3IEVycm9yKCdNb2pvSlMgbm90IGVuYWJsZWQ7IHN0YXJ0IENo
cm9tZSB3aXRoIC0tZW5hYmxlLWJsaW5rLWZlYXR1cmVzPU1vam9KUyxNb2pvSlNUZXN0Jyk7Ci0g
IH0KLSAgaWYgKHJlc291cmNlcy5sZW5ndGggPT0gMCkgewotICAgIHJldHVybjsKLSAgfQotCi0g
IGxldCBnZW5QcmVmaXggPSAnJzsKLSAgaWYgKHNlbGYubG9jYXRpb24ucGF0aG5hbWUuaW5jbHVk
ZXMoJy93ZWJfdGVzdHMvJykpIHsKLSAgICAvLyBCbGluayBpbnRlcm5hbCB3ZWIgdGVzdHMKLSAg
ICBnZW5QcmVmaXggPSAnZmlsZTovLyc7Ci0gIH0KLQotICBmb3IgKGNvbnN0IHBhdGggb2YgcmVz
b3VyY2VzKSB7Ci0gICAgLy8gV2Ugd2FudCB0byBsb2FkIG1vam9fYmluZGluZ3MuanMgc2VwYXJh
dGVseSB0byBzZXQgbW9qby5jb25maWcuCi0gICAgaWYgKHBhdGguZW5kc1dpdGgoJy9tb2pvX2Jp
bmRpbmdzLmpzJykpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcignRG8gbm90IGxvYWQgbW9qb19i
aW5kaW5ncy5qcyBleHBsaWNpdGx5LicpOwotICAgIH0KLSAgICBpZiAocGF0aC5lbmRzV2l0aCgn
L21vam9fYmluZGluZ3NfbGl0ZS5qcycpKSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RvIG5v
dCBsb2FkIG1vam9fYmluZGluZ3NfbGl0ZS5qcyBleHBsaWNpdGx5LicpOwotICAgIH0KLSAgICBp
ZiAobGl0ZSkgewotICAgICAgaWYgKCEgL15cL2dlblwvLipcLm1vam9tLWxpdGVcLmpzJC8udGVz
dChwYXRoKSkgewotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCByZXNvdXJj
ZSBwYXRoOiAke3BhdGh9YCk7Ci0gICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgIGlmICghIC9e
XC9nZW5cLy4qXC5tb2pvbVwuanMkLy50ZXN0KHBhdGgpKSB7Ci0gICAgICAgIHRocm93IG5ldyBF
cnJvcihgVW5yZWNvZ25pemVkIHJlc291cmNlIHBhdGg6ICR7cGF0aH1gKTsKLSAgICAgIH0KLSAg
ICB9Ci0gIH0KLQotICBpZiAobGl0ZSkgewotICAgIGF3YWl0IGxvYWRTY3JpcHQoZ2VuUHJlZml4
ICsgJy9nZW4vbGF5b3V0X3Rlc3RfZGF0YS9tb2pvL3B1YmxpYy9qcy9tb2pvX2JpbmRpbmdzX2xp
dGUuanMnKTsKLSAgfSBlbHNlIHsKLSAgICBhd2FpdCBsb2FkU2NyaXB0KGdlblByZWZpeCArICcv
Z2VuL2xheW91dF90ZXN0X2RhdGEvbW9qby9wdWJsaWMvanMvbW9qb19iaW5kaW5ncy5qcycpOwot
ICAgIG1vam8uY29uZmlnLmF1dG9Mb2FkTW9qb21EZXBzID0gZmFsc2U7Ci0gIH0KLQotICBmb3Ig
KGNvbnN0IHBhdGggb2YgcmVzb3VyY2VzKSB7Ci0gICAgYXdhaXQgbG9hZFNjcmlwdChnZW5QcmVm
aXggKyBwYXRoKTsKLSAgfQotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC9jb25mdGVzdC5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvY29uZnRl
c3QucHkKaW5kZXggMWJhZjY2MjJiMDU5OWM0NGZiODVkMjY3Mjg4MDMxYTA1ZTQyNDNkYy4uNzQ0
YTgwYzA4YmVmZWFhNGVhY2JjNTY3MTg2ZDNjN2UzZWUzNjM2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC9jb25m
dGVzdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Jlc291cmNlcy90ZXN0L2NvbmZ0ZXN0LnB5CkBAIC00LDEyICs0LDExIEBAIGltcG9ydCBvcwog
aW1wb3J0IHNzbAogaW1wb3J0IHN5cwogaW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCB1cmxsaWIK
IAogaW1wb3J0IGh0bWw1bGliCiBpbXBvcnQgcHkKIGltcG9ydCBweXRlc3QKLWZyb20gc2l4IGlt
cG9ydCB0ZXh0X3R5cGUKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCB1cmxsaWIKIAogZnJvbSB3cHRz
ZXJ2ZXIgaW1wb3J0IFdQVFNlcnZlcgogCkBAIC0xOSw2ICsxOCw5IEBAIEhBUk5FU1MgPSBvcy5w
YXRoLmpvaW4oSEVSRSwgJ2hhcm5lc3MuaHRtbCcpCiBURVNUX1RZUEVTID0gKCdmdW5jdGlvbmFs
JywgJ3VuaXQnKQogREVGQVVMVF9WQVJJQU5UUyA9IFsiP2RlZmF1bHQiXQogCitzeXMucGF0aC5p
bnNlcnQoMCwgb3MucGF0aC5ub3JtcGF0aChvcy5wYXRoLmpvaW4oV1BUX1JPT1QsICJ0b29scyIp
KSkKK2ltcG9ydCBsb2NhbHBhdGhzCisKIHN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLm5vcm1w
YXRoKG9zLnBhdGguam9pbihXUFRfUk9PVCwgInRvb2xzIiwgIndlYmRyaXZlciIpKSkKIGltcG9y
dCB3ZWJkcml2ZXIKIApAQCAtMzksNyArNDEsMTEgQEAgZGVmIHB5dGVzdF9jb2xsZWN0X2ZpbGUo
cGF0aCwgcGFyZW50KToKICAgICAgICAgcmV0dXJuCiAgICAgdGVzdF90eXBlID0gdGVzdF90eXBl
LnNwbGl0KG9zLnBhdGguc2VwKVsxXQogCi0gICAgcmV0dXJuIEhUTUxJdGVtKHN0cihwYXRoKSwg
dGVzdF90eXBlLCBwYXJlbnQpCisgICAgIyBIYW5kbGUgdGhlIGRlcHJlY2F0aW9uIG9mIE5vZGUg
Y29uc3RydWN0aW9uIGluIHB5dGVzdDYKKyAgICAjIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2Vu
L3N0YWJsZS9kZXByZWNhdGlvbnMuaHRtbCNub2RlLWNvbnN0cnVjdGlvbi1jaGFuZ2VkLXRvLW5v
ZGUtZnJvbS1wYXJlbnQKKyAgICBpZiBoYXNhdHRyKEhUTUxJdGVtLCAiZnJvbV9wYXJlbnQiKToK
KyAgICAgICAgcmV0dXJuIEhUTUxJdGVtLmZyb21fcGFyZW50KHBhcmVudCwgZmlsZW5hbWU9c3Ry
KHBhdGgpLCB0ZXN0X3R5cGU9dGVzdF90eXBlKQorICAgIHJldHVybiBIVE1MSXRlbShwYXJlbnQs
IHN0cihwYXRoKSwgdGVzdF90eXBlKQogCiAKIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6
CkBAIC01Niw4ICs2Miw2IEBAIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllcz1jYXBhYmlsaXRpZXMp
CiAgICAgY29uZmlnLmFkZF9jbGVhbnVwKGNvbmZpZy5kcml2ZXIuZW5kKQogCi0gICAgY29uZmln
LnNlcnZlciA9IFdQVFNlcnZlcihXUFRfUk9PVCkKLSAgICBjb25maWcuc2VydmVyLnN0YXJ0KCkK
ICAgICAjIEFsdGhvdWdoIHRoZSBuYW1lIG9mIHRoZSBgX2NyZWF0ZV91bnZlcmlmaWVkX2NvbnRl
eHRgIG1ldGhvZCBzdWdnZXN0cwogICAgICMgdGhhdCBpdCBpcyBub3QgaW50ZW5kZWQgZm9yIGV4
dGVybmFsIGNvbnN1bXB0aW9uLCB0aGUgc3RhbmRhcmQgbGlicmFyeSdzCiAgICAgIyBkb2N1bWVu
dGF0aW9uIGV4cGxpY2l0bHkgZW5kb3JzZXMgaXRzIHVzZToKQEAgLTY4LDYgKzcyLDkgQEAgZGVm
IHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKICAgICAjCiAgICAgIyBodHRwczovL2RvY3MucHl0
aG9uLm9yZy8yL2xpYnJhcnkvaHR0cGxpYi5odG1sI2h0dHBsaWIuSFRUUFNDb25uZWN0aW9uCiAg
ICAgY29uZmlnLnNzbF9jb250ZXh0ID0gc3NsLl9jcmVhdGVfdW52ZXJpZmllZF9jb250ZXh0KCkK
KworICAgIGNvbmZpZy5zZXJ2ZXIgPSBXUFRTZXJ2ZXIoV1BUX1JPT1QpCisgICAgY29uZmlnLnNl
cnZlci5zdGFydChjb25maWcuc3NsX2NvbnRleHQpCiAgICAgY29uZmlnLmFkZF9jbGVhbnVwKGNv
bmZpZy5zZXJ2ZXIuc3RvcCkKIAogCkBAIC04Myw3ICs5MCw3IEBAIGRlZiByZXNvbHZlX3VyaShj
b250ZXh0LCB1cmkpOgogCiAKIGNsYXNzIEhUTUxJdGVtKHB5dGVzdC5JdGVtLCBweXRlc3QuQ29s
bGVjdG9yKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZW5hbWUsIHRlc3RfdHlwZSwgcGFy
ZW50KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCBmaWxlbmFtZSwgdGVzdF90eXBl
KToKICAgICAgICAgc2VsZi51cmwgPSBwYXJlbnQuc2Vzc2lvbi5jb25maWcuc2VydmVyLnVybChm
aWxlbmFtZSkKICAgICAgICAgc2VsZi50eXBlID0gdGVzdF90eXBlCiAgICAgICAgIHNlbGYudmFy
aWFudHMgPSBbXQpAQCAtMTA1LDcgKzExMiw3IEBAIGNsYXNzIEhUTUxJdGVtKHB5dGVzdC5JdGVt
LCBweXRlc3QuQ29sbGVjdG9yKToKICAgICAgICAgaW5jbHVkZXNfdmFyaWFudHNfc2NyaXB0ID0g
RmFsc2UKICAgICAgICAgc2VsZi5leHBlY3RlZCA9IE5vbmUKIAotICAgICAgICBmb3IgZWxlbWVu
dCBpbiBwYXJzZWQuZ2V0aXRlcmF0b3IoKToKKyAgICAgICAgZm9yIGVsZW1lbnQgaW4gcGFyc2Vk
Lml0ZXIoKToKICAgICAgICAgICAgIGlmIG5vdCBuYW1lIGFuZCBlbGVtZW50LnRhZyA9PSAndGl0
bGUnOgogICAgICAgICAgICAgICAgIG5hbWUgPSBlbGVtZW50LnRleHQKICAgICAgICAgICAgICAg
ICBjb250aW51ZQpAQCAtMTE0LDcgKzEyMSwxMSBAQCBjbGFzcyBIVE1MSXRlbShweXRlc3QuSXRl
bSwgcHl0ZXN0LkNvbGxlY3Rvcik6CiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAg
ICAgIGlmIGVsZW1lbnQudGFnID09ICdzY3JpcHQnOgogICAgICAgICAgICAgICAgIGlmIGVsZW1l
bnQuYXR0cmliLmdldCgnaWQnKSA9PSAnZXhwZWN0ZWQnOgotICAgICAgICAgICAgICAgICAgICBz
ZWxmLmV4cGVjdGVkID0ganNvbi5sb2Fkcyh0ZXh0X3R5cGUoZWxlbWVudC50ZXh0KSkKKyAgICAg
ICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHBlY3Rl
ZCA9IGpzb24ubG9hZHMoZWxlbWVudC50ZXh0KQorICAgICAgICAgICAgICAgICAgICBleGNlcHQg
VmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCJGYWlsZWQgcGFyc2lu
ZyBKU09OIGluICVzIiAlIGZpbGVuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UK
IAogICAgICAgICAgICAgICAgIHNyYyA9IGVsZW1lbnQuYXR0cmliLmdldCgnc3JjJywgJycpCiAK
QEAgLTE5Miw2ICsyMDMsOCBAQCBjbGFzcyBIVE1MSXRlbShweXRlc3QuSXRlbSwgcHl0ZXN0LkNv
bGxlY3Rvcik6CiAgICAgICAgIHRlc3RfdXJsID0gc2VsZi51cmwgKyB2YXJpYW50CiAgICAgICAg
IGFjdHVhbCA9IGRyaXZlci5leGVjdXRlX2FzeW5jX3NjcmlwdCgncnVuVGVzdCgiJXMiLCAiZm9v
IiwgYXJndW1lbnRzWzBdKScgJSB0ZXN0X3VybCkKIAorICAgICAgICBwcmludChqc29uLmR1bXBz
KGFjdHVhbCwgaW5kZW50PTIpKQorCiAgICAgICAgIHN1bW1hcml6ZWQgPSBzZWxmLl9zdW1tYXJp
emUoY29weS5kZWVwY29weShhY3R1YWwpKQogCiAgICAgICAgIHByaW50KGpzb24uZHVtcHMoc3Vt
bWFyaXplZCwgaW5kZW50PTIpKQpAQCAtMjAzLDYgKzIxNiwxNyBAQCBjbGFzcyBIVE1MSXRlbShw
eXRlc3QuSXRlbSwgcHl0ZXN0LkNvbGxlY3Rvcik6CiAKICAgICAgICAgc2VsZi5leHBlY3RlZFt1
J3N1bW1hcml6ZWRfdGVzdHMnXS5zb3J0KGtleT1sYW1iZGEgdGVzdF9vYmo6IHRlc3Rfb2JqLmdl
dCgnbmFtZScpKQogCisgICAgICAgICMgTWFrZSBhc3NlcnRzIG9wdC1pbiBmb3Igbm93CisgICAg
ICAgIGlmICJzdW1tYXJpemVkX2Fzc2VydHMiIG5vdCBpbiBzZWxmLmV4cGVjdGVkOgorICAgICAg
ICAgICAgZGVsIHN1bW1hcml6ZWRbInN1bW1hcml6ZWRfYXNzZXJ0cyJdCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAjIFdlIGNhbid0IGJlIHN1cmUgb2YgdGhlIG9yZGVyIG9mIGFzc2VydHMg
ZXZlbiB3aXRoaW4gdGhlIHNhbWUgdGVzdAorICAgICAgICAgICAgIyBhbHRob3VnaCB3ZSBjb3Vs
ZCBhbHNvIGNoZWNrIGZvciB0aGUgZmFpbGluZyBhc3NlcnQgYmVpbmcgdGhlIGZpbmFsCisgICAg
ICAgICAgICAjIG9uZQorICAgICAgICAgICAgZm9yIG9iaiBpbiBbc3VtbWFyaXplZCwgc2VsZi5l
eHBlY3RlZF06CisgICAgICAgICAgICAgICAgb2JqWyJzdW1tYXJpemVkX2Fzc2VydHMiXS5zb3J0
KAorICAgICAgICAgICAgICAgICAgICBrZXk9bGFtYmRhIHg6ICh4WyJ0ZXN0Il0gb3IgIiIsIHhb
InN0YXR1cyJdLCB4WyJhc3NlcnRfbmFtZSJdLCB0dXBsZSh4WyJhcmdzIl0pKSkKKwogICAgICAg
ICBhc3NlcnQgc3VtbWFyaXplZCA9PSBzZWxmLmV4cGVjdGVkCiAKICAgICBkZWYgX3N1bW1hcml6
ZShzZWxmLCBhY3R1YWwpOgpAQCAtMjEyLDYgKzIzNiwxMSBAQCBjbGFzcyBIVE1MSXRlbShweXRl
c3QuSXRlbSwgcHl0ZXN0LkNvbGxlY3Rvcik6CiAgICAgICAgIHN1bW1hcml6ZWRbdSdzdW1tYXJp
emVkX3Rlc3RzJ10gPSBbCiAgICAgICAgICAgICBzZWxmLl9zdW1tYXJpemVfdGVzdCh0ZXN0KSBm
b3IgdGVzdCBpbiBhY3R1YWxbJ3Rlc3RzJ11dCiAgICAgICAgIHN1bW1hcml6ZWRbdSdzdW1tYXJp
emVkX3Rlc3RzJ10uc29ydChrZXk9bGFtYmRhIHRlc3Rfb2JqOiB0ZXN0X29iai5nZXQoJ25hbWUn
KSkKKyAgICAgICAgc3VtbWFyaXplZFt1J3N1bW1hcml6ZWRfYXNzZXJ0cyddID0gWworICAgICAg
ICAgICAgeyJhc3NlcnRfbmFtZSI6IGFzc2VydF9pdGVtWyJhc3NlcnRfbmFtZSJdLAorICAgICAg
ICAgICAgInRlc3QiOiBhc3NlcnRfaXRlbVsidGVzdCJdWyJuYW1lIl0gaWYgYXNzZXJ0X2l0ZW1b
InRlc3QiXSBlbHNlIE5vbmUsCisgICAgICAgICAgICAiYXJncyI6IGFzc2VydF9pdGVtWyJhcmdz
Il0sCisgICAgICAgICAgICAic3RhdHVzIjogYXNzZXJ0X2l0ZW1bInN0YXR1cyJdfSBmb3IgYXNz
ZXJ0X2l0ZW0gaW4gYWN0dWFsWyJhc3NlcnRzIl1dCiAgICAgICAgIHN1bW1hcml6ZWRbdSd0eXBl
J10gPSBhY3R1YWxbJ3R5cGUnXQogCiAgICAgICAgIHJldHVybiBzdW1tYXJpemVkCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0L3JlcXVpcmVtZW50cy50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3JlcXVpcmVtZW50cy50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTVkODdjMzg3NTZjNWE2YzI0OTRiOThhM2Q4MTVlMTAzZTljYzRlMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Vz
L3Rlc3QvcmVxdWlyZW1lbnRzLnR4dApAQCAtMCwwICsxIEBACitodG1sNWxpYj09MS4xCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291
cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvYXBpLXRlc3RzLTEuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVu
Y3Rpb25hbC9hcGktdGVzdHMtMS5odG1sCmluZGV4IDIzN2I0ZWE4NzZlNTg5Y2I2ZTIzMTg3MmRj
ODE2ZDcxNzFlNDdjM2UuLjQxYTc2NWY1NTc0NWMwYjhjN2Y0ODkxYWEyYjM0YzU4NjBhNzI1NjUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9hcGktdGVzdHMtMS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qv
dGVzdHMvZnVuY3Rpb25hbC9hcGktdGVzdHMtMS5odG1sCkBAIC01NjIsNiArNTYyLDQzMSBAQAog
ICAgICAgInByb3BlcnRpZXMiOiB7fQogICAgIH0KICAgXSwKKyAgInN1bW1hcml6ZWRfYXNzZXJ0
cyI6IFsKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X3RydWUiLAorICAgICAg
InRlc3QiOiAiU2V0dXAgZnVuY3Rpb24gcmFuIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAi
dHJ1ZSIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAg
ImFzc2VydF9uYW1lIjogImFzc2VydF9hcnJheV9lcXVhbHMiLAorICAgICAgInRlc3QiOiAib25f
ZXZlbnQgZG9lcyBub3QgdXNlIGV2ZW50IGNhcHR1cmUiLAorICAgICAgImFyZ3MiOiBbCisgICAg
ICAgICJbXCJpbm5lclwiLCBcIm91dGVyXCJdIiwKKyAgICAgICAgIltcImlubmVyXCIsIFwib3V0
ZXJcIl0iCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAg
ICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImRvY3VtZW50
LmJvZHkgc2hvdWxkIGJlIHRoZSBmaXJzdCBib2R5IGVsZW1lbnQgaW4gdGhlIGRvY3VtZW50IiwK
KyAgICAgICJhcmdzIjogWworICAgICAgICAiRWxlbWVudCBub2RlIDxib2R5IG9ubG9hZD1cImxv
YWRfdGVzdF9hdHRyLmRvbmUoKVwiPiA8aDE+U2FtcGxlIEhUTUw1IEFQLi4uIiwKKyAgICAgICAg
IkVsZW1lbnQgbm9kZSA8Ym9keSBvbmxvYWQ9XCJsb2FkX3Rlc3RfYXR0ci5kb25lKClcIj4gPGgx
PlNhbXBsZSBIVE1MNSBBUC4uLiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0s
CisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9lcXVhbHMiLAorICAgICAgInRl
c3QiOiAiYXNzZXJ0X2VxdWFscyB0ZXN0cyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIjEi
LAorICAgICAgICAiMSIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAg
eworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAi
YXNzZXJ0X2VxdWFscyB0ZXN0cyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIk5hTiIsCisg
ICAgICAgICJOYU4iLAorICAgICAgICAiXCJOYU4gY2FzZVwiIgorICAgICAgXSwKKyAgICAgICJz
dGF0dXMiOiAwCisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X2Vx
dWFscyIsCisgICAgICAidGVzdCI6ICJhc3NlcnRfZXF1YWxzIHRlc3RzIiwKKyAgICAgICJhcmdz
IjogWworICAgICAgICAiMCIsCisgICAgICAgICIwIiwKKyAgICAgICAgIlwiWmVybyBjYXNlXCIi
CisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3Nl
cnRfbmFtZSI6ICJhc3NlcnRfZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF9lcXVhbHMg
dGVzdHMgZXhwZWN0ZWQgdG8gZmFpbCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIi0wIiwK
KyAgICAgICAgIjAiLAorICAgICAgICAiXCJaZXJvIGNhc2VcIiIKKyAgICAgIF0sCisgICAgICAi
c3RhdHVzIjogMQorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9u
b3RfZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF9ub3RfZXF1YWxzIHRlc3RzIiwKKyAg
ICAgICJhcmdzIjogWworICAgICAgICAib2JqZWN0IFwiW29iamVjdCBPYmplY3RdXCIiLAorICAg
ICAgICAib2JqZWN0IFwiW29iamVjdCBPYmplY3RdXCIiLAorICAgICAgICAiXCJvYmplY3QgY2Fz
ZVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwKKyAgICB7CisgICAgICAi
YXNzZXJ0X25hbWUiOiAiYXNzZXJ0X25vdF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiYXNzZXJ0
X25vdF9lcXVhbHMgdGVzdHMiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICItMCIsCisgICAg
ICAgICIwIiwKKyAgICAgICAgIlwiWmVybyBjYXNlXCIiCisgICAgICBdLAorICAgICAgInN0YXR1
cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdHJ1ZSIs
CisgICAgICAidGVzdCI6ICJhc3NlcnRfdHJ1ZSBleHBlY3RlZCB0byBwYXNzIiwKKyAgICAgICJh
cmdzIjogWworICAgICAgICAidHJ1ZSIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAg
IH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90cnVlIiwKKyAgICAgICJ0
ZXN0IjogImFzc2VydF90cnVlIGV4cGVjdGVkIHRvIGZhaWwiLAorICAgICAgImFyZ3MiOiBbCisg
ICAgICAgICJmYWxzZSIsCisgICAgICAgICJcImZhbHNlIHNob3VsZCBub3QgYmUgdHJ1ZVwiIgor
ICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAxCisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0
X25hbWUiOiAiYXNzZXJ0X2FycmF5X2VxdWFscyIsCisgICAgICAidGVzdCI6ICJiYXNpYyBhc3Nl
cnRfYXJyYXlfZXF1YWxzIHRlc3QiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJbMSwgTmFO
XSIsCisgICAgICAgICJbMSwgTmFOXSIsCisgICAgICAgICJcIlsxLCBOYU5dIGlzIGVxdWFsIHRv
IFsxLCBOYU5dXCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsK
KyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfYXJyYXlfZXF1YWxzIiwKKyAgICAgICJ0ZXN0
IjogImFzc2VydF9hcnJheV9lcXVhbHMgd2l0aCBmaXJzdCBwYXJhbSB1bmRlZmluZWQiLAorICAg
ICAgImFyZ3MiOiBbCisgICAgICAgICJ1bmRlZmluZWQiLAorICAgICAgICAiWzFdIiwKKyAgICAg
ICAgIlwidW5kZWZpbmVkIGVxdWFscyBbMV0/XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6
IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfYXJyYXlfZXF1
YWxzIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF9hcnJheV9lcXVhbHMgd2l0aCBmaXJzdCBwYXJh
bSB0cnVlIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAidHJ1ZSIsCisgICAgICAgICJbMV0i
LAorICAgICAgICAiXCJ0cnVlIGVxdWFscyBbMV0/XCIiCisgICAgICBdLAorICAgICAgInN0YXR1
cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfYXJyYXlf
ZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF9hcnJheV9lcXVhbHMgd2l0aCBmaXJzdCBw
YXJhbSBmYWxzZSIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgImZhbHNlIiwKKyAgICAgICAg
IlsxXSIsCisgICAgICAgICJcImZhbHNlIGVxdWFscyBbMV0/XCIiCisgICAgICBdLAorICAgICAg
InN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRf
YXJyYXlfZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF9hcnJheV9lcXVhbHMgd2l0aCBm
aXJzdCBwYXJhbSBudWxsIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAibnVsbCIsCisgICAg
ICAgICJbMV0iLAorICAgICAgICAiXCJudWxsIGVxdWFscyBbMV0/XCIiCisgICAgICBdLAorICAg
ICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3Nl
cnRfYXJyYXlfZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF9hcnJheV9lcXVhbHMgd2l0
aCBmaXJzdCBwYXJhbSAxIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiMSIsCisgICAgICAg
ICJbMV0iLAorICAgICAgICAiXCIxIGVxdWFscyBbMV0/XCIiCisgICAgICBdLAorICAgICAgInN0
YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfYXJy
YXlfYXBwcm94X2VxdWFscyIsCisgICAgICAidGVzdCI6ICJiYXNpYyBhc3NlcnRfYXJyYXlfYXBw
cm94X2VxdWFscyB0ZXN0IiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiWzEwLCAxMV0iLAor
ICAgICAgICAiWzExLCAxMF0iLAorICAgICAgICAiMSIsCisgICAgICAgICJcIlsxMCwgMTFdIGlz
IGFwcHJveGltYXRlbHkgKCsvLSAxKSBbMTEsIDEwXVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0
dXMiOiAwCisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X2FwcHJv
eF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiYmFzaWMgYXNzZXJ0X2FwcHJveF9lcXVhbHMgdGVz
dCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIjEwIiwKKyAgICAgICAgIjExIiwKKyAgICAg
ICAgIjEiLAorICAgICAgICAiXCIxMCBpcyBhcHByb3hpbWF0ZWx5ICgrLy0gMSkgMTFcIiIKKyAg
ICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9u
YW1lIjogImFzc2VydF9hcHByb3hfZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImJhc2ljIGFzc2Vy
dF9sZXNzX3RoYW4gdGVzdCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIjEwIiwKKyAgICAg
ICAgIjExIiwKKyAgICAgICAgIjEiLAorICAgICAgICAiXCIxMCBpcyBhcHByb3hpbWF0ZWx5ICgr
Ly0gMSkgMTFcIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgewor
ICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9ncmVhdGVyX3RoYW4iLAorICAgICAgInRlc3Qi
OiAiYXNzZXJ0X2dyZWF0ZXJfdGhhbiBleHBlY3RlZCB0byBmYWlsIiwKKyAgICAgICJhcmdzIjog
WworICAgICAgICAiMTAiLAorICAgICAgICAiMTEiLAorICAgICAgICAiXCIxMCBpcyBub3QgZ3Jl
YXRlciB0aGFuIDExXCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAg
IHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsIiwKKyAg
ICAgICJ0ZXN0IjogImJhc2ljIGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwgdGVzdCIsCisgICAg
ICAiYXJncyI6IFsKKyAgICAgICAgIjEwIiwKKyAgICAgICAgIjEwIiwKKyAgICAgICAgIlwiMTAg
aXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEwXCIiCisgICAgICBdLAorICAgICAgInN0YXR1
cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfZ3JlYXRl
cl90aGFuX2VxdWFsIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF9sZXNzX3RoYW5fZXF1YWwgZXhw
ZWN0ZWQgdG8gZmFpbCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIlwiMTBcIiIsCisgICAg
ICAgICIxMCIsCisgICAgICAgICJcIicxMCcgaXMgbm90IGEgbnVtYmVyXCIiCisgICAgICBdLAor
ICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJh
c3NlcnRfb3duX3Byb3BlcnR5IiwKKyAgICAgICJ0ZXN0IjogInRlc3QgZm9yIGFzc2VydFtfbm90
XV9vd25fcHJvcGVydHkgYW5kIGluc2VydF9pbmhlcml0cyIsCisgICAgICAiYXJncyI6IFsKKyAg
ICAgICAgIm9iamVjdCBcIltvYmplY3QgT2JqZWN0XVwiIiwKKyAgICAgICAgIlwiYVwiIgorICAg
ICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25h
bWUiOiAiYXNzZXJ0X25vdF9vd25fcHJvcGVydHkiLAorICAgICAgInRlc3QiOiAidGVzdCBmb3Ig
YXNzZXJ0W19ub3RdX293bl9wcm9wZXJ0eSBhbmQgaW5zZXJ0X2luaGVyaXRzIiwKKyAgICAgICJh
cmdzIjogWworICAgICAgICAib2JqZWN0IFwiW29iamVjdCBPYmplY3RdXCIiLAorICAgICAgICAi
XCJiXCIiLAorICAgICAgICAiXCJ1bmV4cGVjdGVkIHByb3BlcnR5IGZvdW5kOiBcXFwiYlxcXCJc
IiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFz
c2VydF9uYW1lIjogImFzc2VydF9pbmhlcml0cyIsCisgICAgICAidGVzdCI6ICJ0ZXN0IGZvciBh
c3NlcnRbX25vdF1fb3duX3Byb3BlcnR5IGFuZCBpbnNlcnRfaW5oZXJpdHMiLAorICAgICAgImFy
Z3MiOiBbCisgICAgICAgICJvYmplY3QgXCJbb2JqZWN0IE9iamVjdF1cIiIsCisgICAgICAgICJc
ImJcIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAg
ImFzc2VydF9uYW1lIjogImFzc2VydF90aHJvd3NfZG9tIiwKKyAgICAgICJ0ZXN0IjogIlRlc3Qg
dGhyb3cgRE9NIGV4Y2VwdGlvbiIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIlwiTk9UX0ZP
VU5EX0VSUlwiIiwKKyAgICAgICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24gKCkge2EucmVtb3ZlQ2hp
bGQoYil9XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAg
ICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdGhyb3dzX2pzIiwKKyAgICAgICJ0ZXN0IjogIlRl
c3QgdGhyb3cgRE9NRXhjZXB0aW9uIGFzIEpTIGV4Y2VwdGlvbiBleHBlY3RlZCB0byBmYWlsIiwK
KyAgICAgICJhcmdzIjogWworICAgICAgICAiZnVuY3Rpb24gXCJmdW5jdGlvbiBET01FeGNlcHRp
b24oKSB7ICAgICBbbmF0aXZlIGNvZGVdIH1cIiIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0
aW9uICgpIHthLnJlbW92ZUNoaWxkKGIpfVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAx
CisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X3Rocm93c19qcyIs
CisgICAgICAidGVzdCI6ICJUZXN0IHRocm93IFN5bnRheEVycm9yIERPTUV4Y2VwdGlvbiB3aGVy
ZSBKUyBTeW50YXhFcnJvciBleHBlY3RlZDsgZXhwZWN0ZWQgdG8gZmFpbCIsCisgICAgICAiYXJn
cyI6IFsKKyAgICAgICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24gU3ludGF4RXJyb3IoKSB7ICAgICBb
bmF0aXZlIGNvZGVdIH1cIiIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uICgpIHtkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKFwiXCIpfVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAx
CisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X3Rocm93c19qcyIs
CisgICAgICAidGVzdCI6ICJUZXN0IHRocm93IEpTIFN5bnRheEVycm9yIiwKKyAgICAgICJhcmdz
IjogWworICAgICAgICAiZnVuY3Rpb24gXCJmdW5jdGlvbiBTeW50YXhFcnJvcigpIHsgICAgIFtu
YXRpdmUgY29kZV0gfVwiIiwKKyAgICAgICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24gKCkge0pTT04u
cGFyc2UoXCJ7XCIpfVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwKKyAg
ICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X3Rocm93c19kb20iLAorICAgICAgInRl
c3QiOiAiVGVzdCB0aHJvdyBET00gU3ludGF4RXJyb3IiLAorICAgICAgImFyZ3MiOiBbCisgICAg
ICAgICJcIlN5bnRheEVycm9yXCIiLAorICAgICAgICAiZnVuY3Rpb24gXCJmdW5jdGlvbiAoKSB7
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIlwiKX1cIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVz
IjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90aHJvd3Nf
ZG9tIiwKKyAgICAgICJ0ZXN0IjogIlRlc3QgdGhyb3cgRE9NIFN5bnRheEVycm9yIGZyb20gc3Vi
ZnJhbWUiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJcIlN5bnRheEVycm9yXCIiLAorICAg
ICAgICAiZnVuY3Rpb24gXCJmdW5jdGlvbiBET01FeGNlcHRpb24oKSB7ICAgICBbbmF0aXZlIGNv
ZGVdIH1cIiIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uICgpIHtpZnIuY29udGVudERv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJcIil9XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6
IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdGhyb3dzX2Rv
bSIsCisgICAgICAidGVzdCI6ICJUZXN0IHRocm93IERPTSBTeW50YXhFcnJvciBmcm9tIHN1YmZy
YW1lIHdpdGggaW5jb3JyZWN0IGdsb2JhbCBleHBlY3RhdGlvbjsgZXhwZWN0ZWQgdG8gZmFpbCIs
CisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIlwiU3ludGF4RXJyb3JcIiIsCisgICAgICAgICJm
dW5jdGlvbiBcImZ1bmN0aW9uICgpIHtpZnIuY29udGVudERvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
XCJcIil9XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAg
ICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdGhyb3dzX2RvbSIsCisgICAgICAidGVzdCI6ICJU
ZXN0IHRocm93IERPTSBTeW50YXhFcnJvciB3aXRoIGluY29ycmVjdCBleHBlY3RhdGlvbjsgZXhw
ZWN0ZWQgdG8gZmFpbCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIlwiU3ludGF4RXJyb3Jc
IiIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uIERPTUV4Y2VwdGlvbigpIHsgICAgIFtu
YXRpdmUgY29kZV0gfVwiIiwKKyAgICAgICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24gKCkge2RvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoXCJcIil9XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEK
KyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdGhyb3dzX2RvbSIs
CisgICAgICAidGVzdCI6ICJUZXN0IHRocm93IEpTIFN5bnRheEVycm9yIHdoZXJlIFN5bnRheEVy
cm9yIERPTUV4Y2VwdGlvbiBleHBlY3RlZDsgZXhwZWN0ZWQgdG8gZmFpbCIsCisgICAgICAiYXJn
cyI6IFsKKyAgICAgICAgIlwiU3ludGF4RXJyb3JcIiIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1
bmN0aW9uICgpIHtKU09OLnBhcnNlKFwie1wiKX1cIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVz
IjogMQorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90aHJvd3Nf
ZG9tIiwKKyAgICAgICJ0ZXN0IjogIlRlc3QgdGhyb3cgRE9NIGV4Y2VwdGlvbiBleHBlY3RlZCB0
byBmYWlsIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiXCJOT1RfRk9VTkRfRVJSXCIiLAor
ICAgICAgICAiZnVuY3Rpb24gXCJmdW5jdGlvbiAoKSB7YS5hcHBlbmRDaGlsZChiKX1cIiIKKyAg
ICAgIF0sCisgICAgICAic3RhdHVzIjogMQorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9u
YW1lIjogImFzc2VydF90aHJvd3NfZG9tIiwKKyAgICAgICJ0ZXN0IjogIlRlc3QgYXNzZXJ0X3Ro
cm93c19kb20gd2l0aCBhbWJpZ3VvdXMgRE9NLWV4Y2VwdGlvbiBleHBlY3RlZCB0byBGYWlsIiwK
KyAgICAgICJhcmdzIjogWworICAgICAgICAiMCIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0
aW9uKCkge3Rocm93IGV9XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAor
ICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdGhyb3dzX2RvbSIsCisgICAgICAi
dGVzdCI6ICJUZXN0IGFzc2VydF90aHJvd3NfZG9tIHdpdGggbm9uLURPTS1leGNlcHRpb24gZXhw
ZWN0ZWQgdG8gRmFpbCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIlwiVEVTVF9FUlJcIiIs
CisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uKCkge3Rocm93IGV9XCIiCisgICAgICBdLAor
ICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJh
c3NlcnRfdGhyb3dzX2RvbSIsCisgICAgICAidGVzdCI6ICJUZXN0IGFzc2VydF90aHJvd3NfZG9t
IHdpdGggbnVtYmVyIGNvZGUgdmFsdWUgZXhwZWN0ZWQgdG8gUGFzcyIsCisgICAgICAiYXJncyI6
IFsKKyAgICAgICAgIjEyIiwKKyAgICAgICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24oKSB7dGhyb3cg
ZX1cIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAg
ImFzc2VydF9uYW1lIjogImFzc2VydF90aHJvd3NfZG9tIiwKKyAgICAgICJ0ZXN0IjogIlRlc3Qg
YXNzZXJ0X3Rocm93c19kb20gd2l0aCBudW1iZXIgY29kZSB2YWx1ZSBhbmQgcmVhbCBET01FeGNl
cHRpb24gZXhwZWN0ZWQgdG8gUGFzcyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIjEyIiwK
KyAgICAgICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24oKSB7dGhyb3cgZX1cIiIKKyAgICAgIF0sCisg
ICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFz
c2VydF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiVGVzdCB0aGF0IGRlZmluZXMgYSBnbG9iYWwg
YW5kIGNsZWFucyBpdCB1cCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIjEiLAorICAgICAg
ICAiMSIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAg
ImFzc2VydF9uYW1lIjogImFzc2VydF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiVGVzdCB0aGF0
IGNsZWFudXAgaGFuZGxlcnMgZnJvbSBwcmV2aW91cyB0ZXN0IHJhbiIsCisgICAgICAiYXJncyI6
IFsKKyAgICAgICAgInVuZGVmaW5lZCIsCisgICAgICAgICJ1bmRlZmluZWQiCisgICAgICBdLAor
ICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJh
c3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6ICJUZXN0IHN0ZXBfZnVuYyIsCisgICAgICAiYXJn
cyI6IFsKKyAgICAgICAgInRydWUiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9
LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdHJ1ZSIsCisgICAgICAidGVz
dCI6ICJUZXN0IGFzeW5jIHRlc3Qgd2l0aCBjYWxsYmFjayIsCisgICAgICAiYXJncyI6IFsKKyAg
ICAgICAgInRydWUiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsK
KyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6ICJUZXN0
IGFzeW5jIHRlc3Qgd2l0aCBjYWxsYmFjayBhbmQgYHRoaXNgIG9iai4iLAorICAgICAgImFyZ3Mi
OiBbCisgICAgICAgICJ0cnVlIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfQor
ICBdLAogICAidHlwZSI6ICJjb21wbGV0ZSIKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90
ZXN0cy9mdW5jdGlvbmFsL2FwaS10ZXN0cy0yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvYXBp
LXRlc3RzLTIuaHRtbAppbmRleCAwOGEyYjg5M2MyNDRkYWU0MDUxODc0OWFjNGI2YmRjY2FhMjg0
YTAzLi5iYTdhMDhmNDhmZDdhYzg2YzkzODdlMDNiZjNkZjg4MTU1MDU3N2FhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90
ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvYXBpLXRlc3RzLTIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0
aW9uYWwvYXBpLXRlc3RzLTIuaHRtbApAQCAtNDAsNiArNDAsMjQgQEAgZG9uZSgpOwogICAgICAg
Im1lc3NhZ2UiOiBudWxsCiAgICAgfQogICBdLAorICAic3VtbWFyaXplZF9hc3NlcnRzIjogWwor
ICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6
ICJUZXN0IGRlZmluZWQgYmVmb3JlIG9ubG9hZCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAg
InRydWUiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAg
ICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6ICJUZXN0IGRlZmlu
ZWQgYWZ0ZXIgb25sb2FkIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAidHJ1ZSIKKyAgICAg
IF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0KKyAgXSwKICAgInR5cGUiOiAiY29tcGxldGUi
CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNz
L0lkbERpY3Rpb25hcnkvdGVzdF9wYXJ0aWFsX2ludGVyZmFjZV9vZi5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9m
dW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsRGljdGlvbmFyeS90ZXN0X3BhcnRpYWxfaW50ZXJmYWNl
X29mLmh0bWwKaW5kZXggNWVlM2ZlN2U4OTNmMTllZjMyOGMzYjVjOTk2YmY3YjQ3NTFiMmI3YS4u
MDVlNmUwYjFlMDZjNjM0ZWMyOTAwY2E0MzAyYjYxMWRkYTcyZWExNCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90
ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsRGljdGlvbmFyeS90ZXN0X3BhcnRpYWxfaW50
ZXJmYWNlX29mLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsRGlj
dGlvbmFyeS90ZXN0X3BhcnRpYWxfaW50ZXJmYWNlX29mLmh0bWwKQEAgLTQxLDcgKzQxLDcgQEAK
ICAgICAgIGlkbEFycmF5LmFkZF9pZGxzKGAKICAgICAgICAgcGFydGlhbCBkaWN0aW9uYXJ5IEMg
e307CiAgICAgICAgIG5hbWVzcGFjZSBDIHt9O2ApOwotICAgICAgaWRsQXJyYXkuY29sbGFwc2Vf
cGFydGlhbHMoKTsKKyAgICAgIGlkbEFycmF5Lm1lcmdlX3BhcnRpYWxzKCk7CiAgICAgfSkoKTsK
ICAgPC9zY3JpcHQ+CiAgIDxzY3JpcHQgdHlwZT0idGV4dC9qc29uIiBpZD0iZXhwZWN0ZWQiPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rl
c3RfaW1tdXRhYmxlX3Byb3RvdHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5l
c3MvSWRsSW50ZXJmYWNlL3Rlc3RfaW1tdXRhYmxlX3Byb3RvdHlwZS5odG1sCmluZGV4IDQwZjVk
YmZjYzcxYTYyNjc1NDRhZWM1YTc0YmVlY2RmOWZmMjBlZDYuLjU2MjVjN2Y1NTMwM2Y3M2E1YjIz
MWE0OGFhYmE4NmQzMzljZjljOTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxo
YXJuZXNzL0lkbEludGVyZmFjZS90ZXN0X2ltbXV0YWJsZV9wcm90b3R5cGUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0
L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxJbnRlcmZhY2UvdGVzdF9pbW11dGFibGVf
cHJvdG90eXBlLmh0bWwKQEAgLTMzLDggKzMzLDggQEAgaWRsQXJyYXkuYWRkX2lkbHMoCiAgICAg
IltHbG9iYWw9V2luZG93LCBFeHBvc2VkPVdpbmRvd11cbiIgKwogICAgICJpbnRlcmZhY2UgV2lu
ZG93IDogRXZlbnRUYXJnZXQge307XG4iICsKIAotICAgICJbR2xvYmFsPVdpbmRvdywgRXhwb3Nl
ZD1XaW5kb3csIENvbnN0cnVjdG9yKCldXG4iICsKLSAgICAiaW50ZXJmYWNlIEZvbyB7fTsiCisg
ICAgIltHbG9iYWw9V2luZG93LCBFeHBvc2VkPVdpbmRvd11cbiIgKworICAgICJpbnRlcmZhY2Ug
Rm9vIHsgY29uc3RydWN0b3IoKTsgfTsiCiAgICk7CiBpZGxBcnJheS5hZGRfb2JqZWN0cyh7CiAg
IEZvbzogWyJuZXcgRm9vKCkiXSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxo
YXJuZXNzL0lkbEludGVyZmFjZS90ZXN0X2ludGVyZmFjZV9taXhpbi5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9m
dW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rlc3RfaW50ZXJmYWNlX21peGluLmh0
bWwKaW5kZXggYTlhOTA5NGZlMzBhYjUwODU3NDIyNDcwNzhlYzc5YWNhZTFhMDcxMS4uMWUyMmM0
Zjg1YTVhMDRjNzJiYjQ5YzFlMmZkNTc1OTA3N2UyNzdhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9m
dW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rlc3RfaW50ZXJmYWNlX21peGluLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNv
dXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rlc3Rf
aW50ZXJmYWNlX21peGluLmh0bWwKQEAgLTE3LDMwICsxNyw1NiBAQAogICA8c2NyaXB0PgogICAg
ICJ1c2Ugc3RyaWN0IjsKIAotICAgIC8vIE5vIG9yaWdpbmFsIGV4aXN0ZW5jZQorICAgIC8vIFNp
bXBsZSBpbmNsdWRlcyBzdGF0ZW1lbnQgKHZhbGlkKQogICAgICgoKSA9PiB7CiAgICAgICBjb25z
dCBpZGxBcnJheSA9IG5ldyBJZGxBcnJheSgpOwotICAgICAgaWRsQXJyYXkuYWRkX2lkbHMoJ3Bh
cnRpYWwgaW50ZXJmYWNlIG1peGluIEEge307Jyk7Ci0gICAgICBpZGxBcnJheS50ZXN0KCk7Cisg
ICAgICBpZGxBcnJheS5hZGRfaWRscyhgCisgICAgICAgIFtFeHBvc2VkPVdpbmRvd10gaW50ZXJm
YWNlIEkxIHt9OworICAgICAgICBpbnRlcmZhY2UgbWl4aW4gTTEgeyBhdHRyaWJ1dGUgYW55IGEx
OyB9OworICAgICAgICBJMSBpbmNsdWRlcyBNMTtgKTsKKyAgICAgIGlkbEFycmF5Lm1lcmdlX3Bh
cnRpYWxzKCk7CisgICAgICBpZGxBcnJheS5tZXJnZV9taXhpbnMoKTsKKyAgICB9KSgpOworCisg
ICAgLy8gUGFydGlhbCBpbnRlcmZhY2UgbWl4aW4gKHZhbGlkKQorICAgICgoKSA9PiB7CisgICAg
ICBjb25zdCBpZGxBcnJheSA9IG5ldyBJZGxBcnJheSgpOworICAgICAgaWRsQXJyYXkuYWRkX2lk
bHMoYAorICAgICAgICBbRXhwb3NlZD1XaW5kb3ddIGludGVyZmFjZSBJMiB7fTsKKyAgICAgICAg
aW50ZXJmYWNlIG1peGluIE0yIHt9OworICAgICAgICBwYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBN
MiB7IGF0dHJpYnV0ZSBhbnkgYTI7IH07CisgICAgICAgIEkyIGluY2x1ZGVzIE0yO2ApOworICAg
ICAgaWRsQXJyYXkubWVyZ2VfcGFydGlhbHMoKTsKKyAgICAgIGlkbEFycmF5Lm1lcmdlX21peGlu
cygpOworICAgIH0pKCk7CisKKyAgICAvLyBQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiB3aXRob3V0
IG9yaWdpbmFsIG1peGluCisgICAgKCgpID0+IHsKKyAgICAgIGNvbnN0IGlkbEFycmF5ID0gbmV3
IElkbEFycmF5KCk7CisgICAgICBpZGxBcnJheS5hZGRfaWRscygncGFydGlhbCBpbnRlcmZhY2Ug
bWl4aW4gTTMge307Jyk7CisgICAgICBpZGxBcnJheS5tZXJnZV9wYXJ0aWFscygpOworICAgICAg
aWRsQXJyYXkubWVyZ2VfbWl4aW5zKCk7CiAgICAgfSkoKTsKIAotICAgIC8vIE5hbWUgY2xhc2gg
KHBhcnRpYWxzKQorICAgIC8vIE5hbWUgY2xhc2ggYmV0d2VlbiBtaXhpbiBhbmQgcGFydGlhbCBt
aXhpbgogICAgICgoKSA9PiB7CiAgICAgICBjb25zdCBpZGxBcnJheSA9IG5ldyBJZGxBcnJheSgp
OwogICAgICAgaWRsQXJyYXkuYWRkX2lkbHMoYAotICAgICAgICBpbnRlcmZhY2UgbWl4aW4gQiB7
IGF0dHJpYnV0ZSBhbnkgRjsgfTsKLSAgICAgICAgcGFydGlhbCBpbnRlcmZhY2UgbWl4aW4gQiB7
IGF0dHJpYnV0ZSBhbnkgRjsgfTtgKTsKLSAgICAgIGlkbEFycmF5LmNvbGxhcHNlX3BhcnRpYWxz
KCk7CisgICAgICAgIGludGVyZmFjZSBtaXhpbiBNNCB7IGF0dHJpYnV0ZSBhbnkgYTQ7IH07Cisg
ICAgICAgIHBhcnRpYWwgaW50ZXJmYWNlIG1peGluIE00IHsgYXR0cmlidXRlIGFueSBhNDsgfTtg
KTsKKyAgICAgIGlkbEFycmF5Lm1lcmdlX3BhcnRpYWxzKCk7CisgICAgICBpZGxBcnJheS5tZXJn
ZV9taXhpbnMoKTsKICAgICB9KSgpOwogCi0gICAgLy8gTmFtZSBjbGFzaCAoZGlmZmVyZW50IG1p
eGlucykKKyAgICAvLyBOYW1lIGNsYXNoIGJldHdlZW4gaW50ZXJmYWNlIGFuZCBtaXhpbgogICAg
ICgoKSA9PiB7CiAgICAgICBjb25zdCBpZGxBcnJheSA9IG5ldyBJZGxBcnJheSgpOwogICAgICAg
aWRsQXJyYXkuYWRkX3VudGVzdGVkX2lkbHMoYAotICAgICAgICBpbnRlcmZhY2UgbWl4aW4gQyB7
IGF0dHJpYnV0ZSBhbnkgRjsgfTsKLSAgICAgICAgaW50ZXJmYWNlIEQgeyBhdHRyaWJ1dGUgYW55
IEY7IH07Ci0gICAgICAgIEQgaW5jbHVkZXMgQztgKTsKLSAgICAgIGlkbEFycmF5LnRlc3QoKTsK
KyAgICAgICAgaW50ZXJmYWNlIG1peGluIE01IHsgYXR0cmlidXRlIGFueSBhNTsgfTsKKyAgICAg
ICAgaW50ZXJmYWNlIEk1IHsgYXR0cmlidXRlIGFueSBhNTsgfTsKKyAgICAgICAgSTUgaW5jbHVk
ZXMgTTU7YCk7CisgICAgICBpZGxBcnJheS5tZXJnZV9wYXJ0aWFscygpOworICAgICAgaWRsQXJy
YXkubWVyZ2VfbWl4aW5zKCk7CiAgICAgfSkoKTsKICAgPC9zY3JpcHQ+CiAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qc29uIiBpZD0iZXhwZWN0ZWQiPgpAQCAtNTEsMjggKzc3LDUyIEBACiAgIH0sCiAg
ICJzdW1tYXJpemVkX3Rlc3RzIjogWwogICAgIHsKLSAgICAgICJuYW1lIjogIlBhcnRpYWwgaW50
ZXJmYWNlIG1peGluIEE6IG9yaWdpbmFsIGludGVyZmFjZSBtaXhpbiBkZWZpbmVkIiwKKyAgICAg
ICJuYW1lIjogIkkxIGluY2x1ZGVzIE0xOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSIsCisgICAg
ICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKKyAgICAgICJwcm9wZXJ0aWVzIjoge30sCisgICAg
ICAibWVzc2FnZSI6IG51bGwKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkkyIGluY2x1
ZGVzIE0yOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSIsCisgICAgICAic3RhdHVzX3N0cmluZyI6
ICJQQVNTIiwKKyAgICAgICJwcm9wZXJ0aWVzIjoge30sCisgICAgICAibWVzc2FnZSI6IG51bGwK
KyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkk1IGluY2x1ZGVzIE01OiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZSIsCiAgICAgICAic3RhdHVzX3N0cmluZyI6ICJGQUlMIiwKICAgICAgICJw
cm9wZXJ0aWVzIjoge30sCi0gICAgICAibWVzc2FnZSI6ICJhc3NlcnRfdHJ1ZTogT3JpZ2luYWwg
aW50ZXJmYWNlIG1peGluIHNob3VsZCBiZSBkZWZpbmVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
IgorICAgICAgIm1lc3NhZ2UiOiAiYXNzZXJ0X3RydWU6IG1lbWJlciBhNSBpcyB1bmlxdWUgZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UiCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJQYXJ0
aWFsIGludGVyZmFjZSBtaXhpbiBNMjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUiLAorICAgICAg
InN0YXR1c19zdHJpbmciOiAiUEFTUyIsCisgICAgICAicHJvcGVydGllcyI6IHt9LAorICAgICAg
Im1lc3NhZ2UiOiBudWxsCiAgICAgfSwKICAgICB7Ci0gICAgICAibmFtZSI6ICJQYXJ0aWFsIGlu
dGVyZmFjZSBtaXhpbiBCOiBvcmlnaW5hbCBpbnRlcmZhY2UgbWl4aW4gZGVmaW5lZCIsCisgICAg
ICAibmFtZSI6ICJQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBNMjogb3JpZ2luYWwgaW50ZXJmYWNl
IG1peGluIGRlZmluZWQiLAogICAgICAgInN0YXR1c19zdHJpbmciOiAiUEFTUyIsCiAgICAgICAi
cHJvcGVydGllcyI6IHt9LAogICAgICAgIm1lc3NhZ2UiOiBudWxsCiAgICAgfSwKICAgICB7Ci0g
ICAgICAibmFtZSI6ICJQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBCOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZSIsCisgICAgICAibmFtZSI6ICJQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBNMzogb3Jp
Z2luYWwgaW50ZXJmYWNlIG1peGluIGRlZmluZWQiLAogICAgICAgInN0YXR1c19zdHJpbmciOiAi
RkFJTCIsCiAgICAgICAicHJvcGVydGllcyI6IHt9LAotICAgICAgIm1lc3NhZ2UiOiAiYXNzZXJ0
X3RydWU6IG1lbWJlciBGIGlzIHVuaXF1ZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZSIKKyAgICAg
ICJtZXNzYWdlIjogImFzc2VydF90cnVlOiBPcmlnaW5hbCBpbnRlcmZhY2UgbWl4aW4gc2hvdWxk
IGJlIGRlZmluZWQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UiCiAgICAgfSwKICAgICB7Ci0gICAg
ICAibmFtZSI6ICJEIGluY2x1ZGVzIEM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIiwKKyAgICAg
ICJuYW1lIjogIlBhcnRpYWwgaW50ZXJmYWNlIG1peGluIE00OiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZSIsCiAgICAgICAic3RhdHVzX3N0cmluZyI6ICJGQUlMIiwKICAgICAgICJwcm9wZXJ0aWVz
Ijoge30sCi0gICAgICAibWVzc2FnZSI6ICJhc3NlcnRfdHJ1ZTogbWVtYmVyIEYgaXMgdW5pcXVl
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlIgorICAgICAgIm1lc3NhZ2UiOiAiYXNzZXJ0X3RydWU6
IG1lbWJlciBhNCBpcyB1bmlxdWUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UiCisgICAgfSwKKyAg
ICB7CisgICAgICAibmFtZSI6ICJQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBNNDogb3JpZ2luYWwg
aW50ZXJmYWNlIG1peGluIGRlZmluZWQiLAorICAgICAgInN0YXR1c19zdHJpbmciOiAiUEFTUyIs
CisgICAgICAicHJvcGVydGllcyI6IHt9LAorICAgICAgIm1lc3NhZ2UiOiBudWxsCiAgICAgfQog
ICBdLAogICAidHlwZSI6ICJjb21wbGV0ZSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25h
bC9pZGxoYXJuZXNzL0lkbEludGVyZmFjZS90ZXN0X3BhcnRpYWxfaW50ZXJmYWNlX29mLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90
ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxJbnRlcmZhY2UvdGVzdF9wYXJ0aWFs
X2ludGVyZmFjZV9vZi5odG1sCmluZGV4IGQwZTgzYWY5NjY0MTBjMGE2ZDQxNTExOTQ4ZTUyNjJj
ODRhNDdjNDYuLjY3MTE5NmNjNWRmZWRjMjE0MGFhYWNjZWJjYzZmZjBkNzEyN2UzNWUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3Vy
Y2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbEludGVyZmFjZS90ZXN0X3Bh
cnRpYWxfaW50ZXJmYWNlX29mLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5l
c3MvSWRsSW50ZXJmYWNlL3Rlc3RfcGFydGlhbF9pbnRlcmZhY2Vfb2YuaHRtbApAQCAtMzksNyAr
MzksNyBAQAogCiAgICAgICAgIFtFeHBvc2VkPShXb3JrZXIpXQogICAgICAgICBwYXJ0aWFsIGlu
dGVyZmFjZSBDIHt9O2ApOwotICAgICAgaWRsQXJyYXkuY29sbGFwc2VfcGFydGlhbHMoKTsKKyAg
ICAgIGlkbEFycmF5Lm1lcmdlX3BhcnRpYWxzKCk7CiAgICAgfSkoKTsKIAogICAgIC8vIEludmFs
aWQgZXhwb3N1cmUKQEAgLTUxLDcgKzUxLDcgQEAKICAgICAgIGlkbEFycmF5LmFkZF9pZGxzKGAK
ICAgICAgICAgW0V4cG9zZWQ9KERlZGljYXRlZFdvcmtlcildCiAgICAgICAgIHBhcnRpYWwgaW50
ZXJmYWNlIEQge307YCk7Ci0gICAgICBpZGxBcnJheS5jb2xsYXBzZV9wYXJ0aWFscygpOworICAg
ICAgaWRsQXJyYXkubWVyZ2VfcGFydGlhbHMoKTsKICAgICB9KSgpOwogCiAgICAgLy8gT3JpZ2lu
YWwgaXMgYSBuYW1lc3BhY2UsIG5vdCBhbiBpbnRlcmZhY2UuCkBAIC02MCwxNCArNjAsMTQgQEAK
ICAgICAgIGlkbEFycmF5LmFkZF9pZGxzKGAKICAgICAgICAgcGFydGlhbCBpbnRlcmZhY2UgRSB7
fTsKICAgICAgICAgbmFtZXNwYWNlIEUge307YCk7Ci0gICAgICBpZGxBcnJheS5jb2xsYXBzZV9w
YXJ0aWFscygpOworICAgICAgaWRsQXJyYXkubWVyZ2VfcGFydGlhbHMoKTsKICAgICB9KSgpOwog
CiAgICAgKCgpID0+IHsKICAgICAgIGNvbnN0IGlkbEFycmF5ID0gbmV3IElkbEFycmF5KCk7CiAg
ICAgICBpZGxBcnJheS5hZGRfaWRscyhgCiAgICAgICAgIHBhcnRpYWwgaW50ZXJmYWNlIEYge307
Ci0gICAgICAgIHBhcnRpYWwgaW50ZXJmYWNlIG1peGluIEd7fTsKKyAgICAgICAgcGFydGlhbCBp
bnRlcmZhY2UgbWl4aW4gRyB7fTsKICAgICAgIGApOwogICAgICAgaWRsQXJyYXkuYWRkX2RlcGVu
ZGVuY3lfaWRscyhgCiAgICAgICAgIGludGVyZmFjZSBGIHt9OwpAQCAtODAsMTcgKzgwLDIwIEBA
CiAgICAgICAgIGludGVyZmFjZSBMIDogRiB7fTsKICAgICAgIGApOwogICAgICAgdGVzdCgoKSA9
PiB7CisgICAgICAgIC8vIENvbnZlcnQgaWRsQXJyYXkuaW5jbHVkZXMgaW50byBhIE1hcCBmcm9t
IG5hbWUgb2YgdGFyZ2V0IGludGVyZmFjZSB0bworICAgICAgICAvLyBuYW1lIG9mIGluY2x1ZGVk
IG1peGluLiAoVGhpcyBhc3N1bWVzIGVhY2ggaW50ZXJmYWNlIGluY2x1ZGVzIGF0IG1vc3QKKyAg
ICAgICAgLy8gb25lIG1peGluLCBvdGhlcndpc2UgbGF0ZXIgaW5jbHVkZXMgd291bGQgY2xvYmJl
ciBlYXJsaWVyIG9uZXMuKQorICAgICAgICBjb25zdCBpbmNsdWRlcyA9IG5ldyBNYXAoaWRsQXJy
YXkuaW5jbHVkZXMubWFwKGkgPT4gW2kudGFyZ2V0LCBpLmluY2x1ZGVzXSkpOwogICAgICAgICAv
LyBGIGlzIHRlc3RlZCwgc28gSCBpcyBhIGRlcC4KLSAgICAgICAgYXNzZXJ0X3RydWUoJ0YnIGlu
IGlkbEFycmF5LmluY2x1ZGVzLCAnRnMgaW5jbHVkZXMgc2hvdWxkIGJlIHBpY2tlZCB1cCcpOwot
ICAgICAgICBhc3NlcnRfdHJ1ZShpZGxBcnJheS5pbmNsdWRlcy5GLmluY2x1ZGVzKCdIJyksICdI
IHNob3VsZCBiZSBwaWNrZWQgdXAnKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhpbmNsdWRlcy5n
ZXQoJ0YnKSwgJ0gnLCAnRiBzaG91bGQgYmUgcGlja2VkIHVwJyk7CiAgICAgICAgIC8vIEggaXMg
bm90IHRlc3RlZCwgc28gSSBpcyBub3QgYSBkZXAuCi0gICAgICAgIGFzc2VydF9mYWxzZSgnSScg
aW4gaWRsQXJyYXkuaW5jbHVkZXMsICdJIHNob3VsZCBiZSBpZ25vcmVkJyk7CisgICAgICAgIGFz
c2VydF9mYWxzZShpbmNsdWRlcy5oYXMoJ0knKSwgJ0kgc2hvdWxkIGJlIGlnbm9yZWQnKTsKICAg
ICAgICAgLy8gRyBpcyBhIGRlcCwgc28gSiBpcyBhIGRlcC4KLSAgICAgICAgYXNzZXJ0X3RydWUo
J0onIGluIGlkbEFycmF5LmluY2x1ZGVzLCAnSiBzaG91bGQgYmUgcGlja2VkIHVwJyk7Ci0gICAg
ICAgIC8vIEJ1dCwgSyBpc24ndCBhIGRlcCBqdXN0IGJlY2F1c2Ugb2YgSi4KKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhpbmNsdWRlcy5nZXQoJ0onKSwgJ0cnLCAnSiBzaG91bGQgYmUgcGlja2VkIHVw
Jyk7CisgICAgICAgIC8vIEsgaXNuJ3QgYSBkZXAgYmVjYXVzZSBKIGlzbid0IGRlZmluZWQuCiAg
ICAgICAgIGFzc2VydF9mYWxzZSgnSycgaW4gaWRsQXJyYXkubWVtYmVycywgJ0sgc2hvdWxkIGJl
IGlnbm9yZWQnKTsKLSAgICAgICAgLy8gTCBpbmhlcml0cyBGLCBzbyBzaG91bGQgYmUgcGlja2Vk
IHVwLgotICAgICAgICBhc3NlcnRfZmFsc2UoJ0wnIGluIGlkbEFycmF5Lm1lbWJlcnMsICdMIHNo
b3VsZCBiZSBwaWNrZWQgdXAnKTsKKyAgICAgICAgLy8gTCBpc24ndCBhIGRlcCBiZWNhdXNlIEYg
aXMgdW50ZXN0ZWQuCisgICAgICAgIGFzc2VydF9mYWxzZSgnTCcgaW4gaWRsQXJyYXkubWVtYmVy
cywgJ0wgc2hvdWxkIGJlIGlnbm9yZWQnKTsKICAgICAgIH0sICdwYXJ0aWFsIG1peGluIGRlcCBp
bXBsaWNhdGlvbnMnKTsKICAgICB9KSgpOwogCkBAIC0xMDAsNyArMTAzLDcgQEAKICAgICAgIGlk
bEFycmF5LmFkZF9pZGxzKGAKICAgICAgICAgaW50ZXJmYWNlIE0geyBhdHRyaWJ1dGUgYW55IEE7
IH07CiAgICAgICAgIHBhcnRpYWwgaW50ZXJmYWNlIE0geyBhdHRyaWJ1dGUgYW55IEE7IH07YCk7
Ci0gICAgICBpZGxBcnJheS5jb2xsYXBzZV9wYXJ0aWFscygpOworICAgICAgaWRsQXJyYXkubWVy
Z2VfcGFydGlhbHMoKTsKICAgICB9KSgpOwogICA8L3NjcmlwdD4KICAgPHNjcmlwdCB0eXBlPSJ0
ZXh0L2pzb24iIGlkPSJleHBlY3RlZCI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwv
aWRsaGFybmVzcy9JZGxJbnRlcmZhY2UvdGVzdF9wcmltYXJ5X2ludGVyZmFjZV9vZi5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rlc3RfcHJpbWFyeV9p
bnRlcmZhY2Vfb2YuaHRtbAppbmRleCA1Y2U0NTdjYWZkNGZhZmUyMjdkNGUwMDA4NTliMDliNjA0
ZTkxNDE1Li5hYzRjMGIwMDBlYjY5ZmNiYTY1YzdhOGE5NzBjYjdjYTlhNDdiZmZjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxJbnRlcmZhY2UvdGVzdF9wcmlt
YXJ5X2ludGVyZmFjZV9vZi5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNz
L0lkbEludGVyZmFjZS90ZXN0X3ByaW1hcnlfaW50ZXJmYWNlX29mLmh0bWwKQEAgLTM0LDE0ICsz
NCwxMyBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LkZvby5wcm90b3R5cGUsICJjb25z
dHJ1Y3RvciIsIHsKICAgICBjb25maWd1cmFibGU6IHRydWUsCiAgICAgdmFsdWU6IHdpbmRvdy5G
b28KICAgfSk7Ci1Gb28uX19wcm90b19fID0gRm9vUGFyZW50OworT2JqZWN0LnNldFByb3RvdHlw
ZU9mKEZvbywgRm9vUGFyZW50KTsKIEZvby5wcm90b3R5cGVbU3ltYm9sLnRvU3RyaW5nVGFnXSA9
ICJGb28iOwogCiB2YXIgaWRsQXJyYXkgPSBuZXcgSWRsQXJyYXkoKTsKIGlkbEFycmF5LmFkZF91
bnRlc3RlZF9pZGxzKCJpbnRlcmZhY2UgRm9vUGFyZW50IHt9OyIpOwogaWRsQXJyYXkuYWRkX2lk
bHMoCi0gICAgIltDb25zdHJ1Y3RvcigpXVxuIiArCi0gICAgImludGVyZmFjZSBGb28gOiBGb29Q
YXJlbnQge307IgorICAgICJpbnRlcmZhY2UgRm9vIDogRm9vUGFyZW50IHsgY29uc3RydWN0b3Io
KTsgfTsiCiAgICk7CiBpZGxBcnJheS5hZGRfb2JqZWN0cyh7CiAgIEZvbzogWyJuZXcgRm9vKCki
XSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbE5hbWVzcGFj
ZS90ZXN0X2F0dHJpYnV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRs
TmFtZXNwYWNlL3Rlc3RfYXR0cmlidXRlLmh0bWwKaW5kZXggY2E1ZWRmNDcyM2Q1YjVjMjA1NWMy
ZjAyNGQ5NTFlOTgxMjRjOGNkOS4uOWEwOGRkNDAwYzFkMmEyOWU2MGUzYWY2MjZmZTg4MzM0NzIx
ODUwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFtZXNw
YWNlL3Rlc3RfYXR0cmlidXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5l
c3MvSWRsTmFtZXNwYWNlL3Rlc3RfYXR0cmlidXRlLmh0bWwKQEAgLTcxLDYgKzcxLDE4IEBAIGlk
bEFycmF5LnRlc3QoKTsKICAgICAgICJwcm9wZXJ0aWVzIjoge30sCiAgICAgICAibWVzc2FnZSI6
IG51bGwKICAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImZvbyBuYW1lc3BhY2U6IGhhcyBu
byBsZW5ndGggcHJvcGVydHkiLAorICAgICAgInN0YXR1c19zdHJpbmciOiAiUEFTUyIsCisgICAg
ICAicHJvcGVydGllcyI6IHt9LAorICAgICAgIm1lc3NhZ2UiOiBudWxsCisgICAgfSwKKyAgICB7
CisgICAgICAibmFtZSI6ICJmb28gbmFtZXNwYWNlOiBoYXMgbm8gbmFtZSBwcm9wZXJ0eSIsCisg
ICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKKyAgICAgICJwcm9wZXJ0aWVzIjoge30sCisg
ICAgICAibWVzc2FnZSI6IG51bGwKKyAgICB9LAogICAgIHsKICAgICAgICJuYW1lIjogImZvbyBu
YW1lc3BhY2U6IGF0dHJpYnV0ZSB0cnV0aCIsCiAgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNT
IiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbE5hbWVzcGFj
ZS90ZXN0X29wZXJhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRs
TmFtZXNwYWNlL3Rlc3Rfb3BlcmF0aW9uLmh0bWwKaW5kZXggNjBkN2Q0N2M5ZWVhNjRhODFkNTM5
YWZhNmZkM2FjZDcyNTgxYzAwYi4uNjc5OGZlOGNmYzY3NzNkMTIxYzljYmRjMWU1NTlmY2E0MzRh
Yzc1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFtZXNw
YWNlL3Rlc3Rfb3BlcmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5l
c3MvSWRsTmFtZXNwYWNlL3Rlc3Rfb3BlcmF0aW9uLmh0bWwKQEAgLTU4LDEzICs1OCwxMyBAQCB2
YXIgaWRsQXJyYXkgPSBuZXcgSWRsQXJyYXkoKTsKIGlkbEFycmF5LmFkZF9pZGxzKGAKIFtFeHBv
c2VkPVdpbmRvd10KIG5hbWVzcGFjZSBmb28gewotICB2b2lkIFRydXRoKCk7Ci0gIHZvaWQgTGll
cygpOworICB1bmRlZmluZWQgVHJ1dGgoKTsKKyAgdW5kZWZpbmVkIExpZXMoKTsKIH07CiBbRXhw
b3NlZD1XaW5kb3ddCiBuYW1lc3BhY2UgYmFyIHsKICAgW0xlZ2FjeVVuZm9yZ2VhYmxlXQotICB2
b2lkIFRydXRoKCk7CisgIHVuZGVmaW5lZCBUcnV0aCgpOwogfTsKIFtFeHBvc2VkPVdpbmRvd10K
IG5hbWVzcGFjZSBiYXogewpAQCAtMTEwLDYgKzExMCwxOCBAQCBpZGxBcnJheS50ZXN0KCk7CiAg
ICAgICAicHJvcGVydGllcyI6IHt9LAogICAgICAgIm1lc3NhZ2UiOiBudWxsCiAgICAgfSwKKyAg
ICB7CisgICAgICAibmFtZSI6ICJmb28gbmFtZXNwYWNlOiBoYXMgbm8gbGVuZ3RoIHByb3BlcnR5
IiwKKyAgICAgICJzdGF0dXNfc3RyaW5nIjogIlBBU1MiLAorICAgICAgInByb3BlcnRpZXMiOiB7
fSwKKyAgICAgICJtZXNzYWdlIjogbnVsbAorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAi
Zm9vIG5hbWVzcGFjZTogaGFzIG5vIG5hbWUgcHJvcGVydHkiLAorICAgICAgInN0YXR1c19zdHJp
bmciOiAiUEFTUyIsCisgICAgICAicHJvcGVydGllcyI6IHt9LAorICAgICAgIm1lc3NhZ2UiOiBu
dWxsCisgICAgfSwKICAgICB7CiAgICAgICAibmFtZSI6ICJmb28gbmFtZXNwYWNlOiBvcGVyYXRp
b24gVHJ1dGgoKSIsCiAgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKQEAgLTEyMiw3ICsx
MzQsNiBAQCBpZGxBcnJheS50ZXN0KCk7CiAgICAgICAicHJvcGVydGllcyI6IHt9LAogICAgICAg
Im1lc3NhZ2UiOiAiYXNzZXJ0X293bl9wcm9wZXJ0eTogbmFtZXNwYWNlIG9iamVjdCBtaXNzaW5n
IG9wZXJhdGlvbiBcIkxpZXNcIiBleHBlY3RlZCBwcm9wZXJ0eSBcIkxpZXNcIiBtaXNzaW5nIgog
ICAgIH0sCi0KICAgICB7CiAgICAgICAibmFtZSI6ICJiYXIgbmFtZXNwYWNlOiBleHRlbmRlZCBh
dHRyaWJ1dGVzIiwKICAgICAgICJzdGF0dXNfc3RyaW5nIjogIlBBU1MiLApAQCAtMTUzLDYgKzE2
NCwxOCBAQCBpZGxBcnJheS50ZXN0KCk7CiAgICAgICAicHJvcGVydGllcyI6IHt9LAogICAgICAg
Im1lc3NhZ2UiOiBudWxsCiAgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJiYXIgbmFtZXNw
YWNlOiBoYXMgbm8gbGVuZ3RoIHByb3BlcnR5IiwKKyAgICAgICJzdGF0dXNfc3RyaW5nIjogIlBB
U1MiLAorICAgICAgInByb3BlcnRpZXMiOiB7fSwKKyAgICAgICJtZXNzYWdlIjogbnVsbAorICAg
IH0sCisgICAgeworICAgICAgIm5hbWUiOiAiYmFyIG5hbWVzcGFjZTogaGFzIG5vIG5hbWUgcHJv
cGVydHkiLAorICAgICAgInN0YXR1c19zdHJpbmciOiAiUEFTUyIsCisgICAgICAicHJvcGVydGll
cyI6IHt9LAorICAgICAgIm1lc3NhZ2UiOiBudWxsCisgICAgfSwKICAgICB7CiAgICAgICAibmFt
ZSI6ICJiYXIgbmFtZXNwYWNlOiBvcGVyYXRpb24gVHJ1dGgoKSIsCiAgICAgICAic3RhdHVzX3N0
cmluZyI6ICJQQVNTIiwKQEAgLTE5MCw2ICsyMTMsMTggQEAgaWRsQXJyYXkudGVzdCgpOwogICAg
ICAgInByb3BlcnRpZXMiOiB7fSwKICAgICAgICJtZXNzYWdlIjogbnVsbAogICAgIH0sCisgICAg
eworICAgICAgIm5hbWUiOiAiYmF6IG5hbWVzcGFjZTogaGFzIG5vIGxlbmd0aCBwcm9wZXJ0eSIs
CisgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKKyAgICAgICJwcm9wZXJ0aWVzIjoge30s
CisgICAgICAibWVzc2FnZSI6IG51bGwKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImJh
eiBuYW1lc3BhY2U6IGhhcyBubyBuYW1lIHByb3BlcnR5IiwKKyAgICAgICJzdGF0dXNfc3RyaW5n
IjogIlBBU1MiLAorICAgICAgInByb3BlcnRpZXMiOiB7fSwKKyAgICAgICJtZXNzYWdlIjogbnVs
bAorICAgIH0sCiAgICAgewogICAgICAgIm5hbWUiOiAiYmF6IG5hbWVzcGFjZTogb3BlcmF0aW9u
IExvbmdTdG9yeShhbnksIERPTVN0cmluZy4uLikiLAogICAgICAgInN0YXR1c19zdHJpbmciOiAi
UEFTUyIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxOYW1l
c3BhY2UvdGVzdF9wYXJ0aWFsX25hbWVzcGFjZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lk
bGhhcm5lc3MvSWRsTmFtZXNwYWNlL3Rlc3RfcGFydGlhbF9uYW1lc3BhY2UuaHRtbAppbmRleCBj
MzI3YThiMDAxZDI3ZTU0MmI2YjVhODU4YTA0MDBhMDQyYjNkM2Y3Li5jNjhhZGZhOTQxNzczZGQw
YzQ3ZWQzYTc1ODEyNTEzZThjODc0ODI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwv
aWRsaGFybmVzcy9JZGxOYW1lc3BhY2UvdGVzdF9wYXJ0aWFsX25hbWVzcGFjZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rl
c3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbE5hbWVzcGFjZS90ZXN0X3BhcnRpYWxf
bmFtZXNwYWNlLmh0bWwKQEAgLTQwLDcgKzQwLDcgQEAKIAogICAgICAgICBbRXhwb3NlZD0oV29y
a2VyKV0KICAgICAgICAgcGFydGlhbCBuYW1lc3BhY2UgQyB7fTtgKTsKLSAgICAgIGlkbEFycmF5
LmNvbGxhcHNlX3BhcnRpYWxzKCk7CisgICAgICBpZGxBcnJheS5tZXJnZV9wYXJ0aWFscygpOwog
ICAgIH0pKCk7CiAKICAgICAvLyBJbnZhbGlkIGV4cG9zdXJlCkBAIC01Miw3ICs1Miw3IEBACiAg
ICAgICBpZGxBcnJheS5hZGRfaWRscyhgCiAgICAgICAgIFtFeHBvc2VkPShEZWRpY2F0ZWRXb3Jr
ZXIpXQogICAgICAgICBwYXJ0aWFsIG5hbWVzcGFjZSBEIHt9O2ApOwotICAgICAgaWRsQXJyYXku
Y29sbGFwc2VfcGFydGlhbHMoKTsKKyAgICAgIGlkbEFycmF5Lm1lcmdlX3BhcnRpYWxzKCk7CiAg
ICAgfSkoKTsKIAogICAgIC8vIE9yaWdpbmFsIGlzIGFuIGludGVyZmFjZSwgbm90IGEgbmFtZXNw
YWNlLgpAQCAtNjEsNyArNjEsNyBAQAogICAgICAgaWRsQXJyYXkuYWRkX2lkbHMoYAogICAgICAg
ICBwYXJ0aWFsIG5hbWVzcGFjZSBFIHt9OwogICAgICAgICBpbnRlcmZhY2UgRSB7fTtgKTsKLSAg
ICAgIGlkbEFycmF5LmNvbGxhcHNlX3BhcnRpYWxzKCk7CisgICAgICBpZGxBcnJheS5tZXJnZV9w
YXJ0aWFscygpOwogICAgIH0pKCk7CiAgIDwvc2NyaXB0PgogICA8c2NyaXB0IHR5cGU9InRleHQv
anNvbiIgaWQ9ImV4cGVjdGVkIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9zZXR1
cC1mdW5jdGlvbi13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvc2V0dXAtZnVuY3Rpb24t
d29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyYzE0NTZhYTY0NDcyNjczNjFkOGNjODllMjg4NDBmYzQ5
MTNiNDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvc2V0dXAtZnVuY3Rp
b24td29ya2VyLmpzCkBAIC0wLDAgKzEsMTQgQEAKK2ltcG9ydFNjcmlwdHMoIi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiKTsKKworLy8gUmVncmVzc2lvbiB0ZXN0IGZvciBodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMjcyOTksCisvLyB3aGVyZSB3ZSBi
cm9rZSB0aGUgYWJpbGl0eSBmb3IgYSBzZXR1cCBmdW5jdGlvbiBpbiBhIHdvcmtlciB0byBjb250
YWluIGFuCisvLyBhc3NlcnRpb24gKGV2ZW4gYSBwYXNzaW5nIG9uZSkuCitzZXR1cChmdW5jdGlv
bigpIHsKKyAgICBhc3NlcnRfdHJ1ZSh0cnVlLCAiVHJ1ZSBpcyB0cnVlIik7Cit9KTsKKworLy8g
V2UgbXVzdCBkZWZpbmUgYXQgbGVhc3Qgb25lIHRlc3QgZm9yIHRoZSBoYXJuZXNzLCB0aG91Z2gg
aXQgaXMgbm90IHdoYXQgd2UKKy8vIGFyZSB0ZXN0aW5nIGhlcmUuCit0ZXN0KGZ1bmN0aW9uKCkg
eworICAgIGFzc2VydF9mYWxzZShmYWxzZSwgIkZhbHNlIGlzIGZhbHNlIik7Cit9LCAnV29ya2Vy
IHRlc3QnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9zZXR1cC13b3JrZXItc2Vy
dmljZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL3NldHVwLXdvcmtlci1zZXJ2aWNlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZGQ5ZDlmNTRlMDc3M2U0NWNkY2ZhNmZmZGNhZjBjZDVkMjk0OWNkMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9zZXR1cC13b3JrZXItc2VydmljZS5o
dG1sCkBAIC0wLDAgKzEsODggQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxt
ZXRhIG5hbWU9InZhcmlhbnQiIGNvbnRlbnQ9Ij9rZWVwLXByb21pc2UiPgorPHRpdGxlPlNldHVw
IGZ1bmN0aW9uIGluIGEgc2VydmljZSB3b3JrZXI8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3ZhcmlhbnRzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGgxPlNldHVwIGZ1bmN0aW9uIGlu
IGEgc2VydmljZSB3b3JrZXI8L2gxPgorPHA+VGhpcyB0ZXN0IGFzc3VtZXMgdGhhdCB0aGUgYnJv
d3NlciBzdXBwb3J0cyA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9zZXJ2aWNlLXdvcmtl
cnMvIj5TZXJ2aWNlV29ya2VyczwvYT4uCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorCis8c2NyaXB0
PgordGVzdChmdW5jdGlvbih0KSB7CisgICAgYXNzZXJ0X3RydWUoInNlcnZpY2VXb3JrZXIiIGlu
IG5hdmlnYXRvciwKKyAgICAgICAgICAgICAgICAibmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIgZXhp
c3RzIik7Cit9LCAiQnJvd3NlciBzdXBwb3J0cyBTZXJ2aWNlV29ya2VyIik7CisKK3Byb21pc2Vf
dGVzdChmdW5jdGlvbigpIHsKKyAgICAvLyBTaW5jZSB0aGUgc2VydmljZSB3b3JrZXIgcmVnaXN0
cmF0aW9uIGNvdWxkIGJlIGluIGFuIGluZGV0ZXJtaW5hdGUKKyAgICAvLyBzdGF0ZSAoZHVlIHRv
LCBmb3IgZXhhbXBsZSwgYSBwcmV2aW91cyB0ZXN0IHJ1biBmYWlsaW5nKSwgd2Ugc3RhcnQgYnkK
KyAgICAvLyB1bnJlZ3N0ZXJpbmcgb3VyIHNlcnZpY2Ugd29ya2VyIGFuZCB0aGVuIHJlZ2lzdGVy
aW5nIGl0IGFnYWluLgorICAgIHZhciBzY29wZSA9ICJzZXJ2aWNlLXdvcmtlci1zY29wZSI7Cisg
ICAgdmFyIHdvcmtlcl91cmwgPSAic2V0dXAtZnVuY3Rpb24td29ya2VyLmpzIjsKKworICAgIHJl
dHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcih3b3JrZXJfdXJsLCB7c2NvcGU6
IHNjb3BlfSkKKyAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAg
ICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgfSkudGhlbihm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5y
ZWdpc3Rlcih3b3JrZXJfdXJsLCB7c2NvcGU6IHNjb3BlfSk7CisgICAgICAgIH0pLnRoZW4oZnVu
Y3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFj
ayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZWdpc3RyYXRpb24udW5yZWdpc3Rlcigp
OworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5j
dGlvbihyZXNvbHZlKSB7CisgICAgICAgICAgICAgICAgcmVnaXN0cmF0aW9uLmFkZEV2ZW50TGlz
dGVuZXIoInVwZGF0ZWZvdW5kIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHJl
c29sdmUocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcpOworICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24od29ya2VyKSB7CisgICAgICAg
ICAgICBmZXRjaF90ZXN0c19mcm9tX3dvcmtlcih3b3JrZXIpOworICAgICAgICB9KTsKK30sICJS
ZWdpc3RlciBTZXJ2aWNlV29ya2VyIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
c29uIiBpZD0iZXhwZWN0ZWQiPgoreworICAic3VtbWFyaXplZF9zdGF0dXMiOiB7CisgICAgInN0
YXR1c19zdHJpbmciOiAiT0siLAorICAgICJtZXNzYWdlIjogbnVsbAorICB9LAorICAic3VtbWFy
aXplZF90ZXN0cyI6IFsKKyAgICB7CisgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKKyAg
ICAgICJuYW1lIjogIkJyb3dzZXIgc3VwcG9ydHMgU2VydmljZVdvcmtlciIsCisgICAgICAicHJv
cGVydGllcyI6IHt9LAorICAgICAgIm1lc3NhZ2UiOiBudWxsCisgICAgfSwKKyAgICB7CisgICAg
ICAibWVzc2FnZSI6IG51bGwsCisgICAgICAibmFtZSI6ICJSZWdpc3RlciBTZXJ2aWNlV29ya2Vy
IiwKKyAgICAgICJwcm9wZXJ0aWVzIjoge30sCisgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNT
IgorICAgIH0sCisgICAgeworICAgICAgIm1lc3NhZ2UiOiBudWxsLAorICAgICAgIm5hbWUiOiAi
V29ya2VyIHRlc3QiLAorICAgICAgInByb3BlcnRpZXMiOiB7fSwKKyAgICAgICJzdGF0dXNfc3Ry
aW5nIjogIlBBU1MiCisgICAgfQorICBdLAorICAic3VtbWFyaXplZF9hc3NlcnRzIjogWworICAg
IHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6ICJC
cm93c2VyIHN1cHBvcnRzIFNlcnZpY2VXb3JrZXIiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAg
ICJ0cnVlIiwKKyAgICAgICAgIlwibmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIgZXhpc3RzXCIiCisg
ICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9CisgIF0sCisgICJ0eXBlIjogImNvbXBs
ZXRlIgorfQorPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9u
YWwvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvdzNjLWltcG9ydC5sb2cKaW5k
ZXggMTJiODBjMTMwNDg2YTMzOGJkYzY2ODc3ZTU1ZThmZTliZDFjNTQ4NS4uYTA2YzNhNTI4MGQ2
MjM4YjFiODkyYTU4ZDcwMWZkODlkYjAyMTBkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlv
bmFsL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC93M2MtaW1wb3J0Lmxv
ZwpAQCAtNDIsNiArNDIsOCBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9w
cm9taXNlLXdpdGgtc3luYy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL3Byb21pc2UuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rl
c3QvdGVzdHMvZnVuY3Rpb25hbC9xdWV1ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL3NldHVw
LWZ1bmN0aW9uLXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9zZXR1cC13b3JrZXItc2Vy
dmljZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL3NpbmdsZS1wYWdlLXRlc3QtZmFpbC5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMv
dGVzdC90ZXN0cy9mdW5jdGlvbmFsL3NpbmdsZS1wYWdlLXRlc3Qtbm8tYXNzZXJ0aW9ucy5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMv
dGVzdC90ZXN0cy9mdW5jdGlvbmFsL3NpbmdsZS1wYWdlLXRlc3Qtbm8tYm9keS5odG1sCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291
cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsQXJyYXkvaXNfanNvbl90eXBlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3Rz
L3VuaXQvSWRsQXJyYXkvaXNfanNvbl90eXBlLmh0bWwKaW5kZXggYWIwNjhiMjljYWMwZDcwODM0
NzFkNWQ1MjVmYjRjMjcxMjRkOWY3Ny4uYmQ4OWM5MTExMGQ4N2ZlY2ZiZTU2ZjYzOWYzNmQ4M2E1
M2JkYmZmNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEFycmF5L2lzX2pzb25fdHlwZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxBcnJheS9pc19qc29uX3R5cGUuaHRtbApAQCAtMTMx
LDE1ICsxMzEsMTAgQEAKICAgICB0ZXN0KGZ1bmN0aW9uKCkgewogICAgICAgICB2YXIgaWRsID0g
bmV3IElkbEFycmF5KCk7CiAgICAgICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJmYWNl
IEZvbyB7IH07IGludGVyZmFjZSBtaXhpbiBCYXIgeyBET01TdHJpbmcgdG9KU09OKCk7IH07IEZv
byBpbmNsdWRlcyBCYXI7Jyk7CisgICAgICAgIGlkbC5tZXJnZV9taXhpbnMoKTsKICAgICAgICAg
YXNzZXJ0X3RydWUoaWRsLmlzX2pzb25fdHlwZSh0eXBlRnJvbSgiRm9vIikpKTsKICAgICB9LCAn
c2hvdWxkIHJldHVybiB0cnVlIGZvciBpbnRlcmZhY2VzIHdoaWNoIG1peGluIGFuIGludGVyZmFj
ZSB3aGljaCBkZWNsYXJlIGEgdG9KU09OIG9wZXJhdGlvbicpOwogCi0vLyAgICB0ZXN0KGZ1bmN0
aW9uKCkgewotLy8gICAgICAgIHZhciBpZGwgPSBuZXcgSWRsQXJyYXkoKTsKLS8vICAgICAgICBp
ZGwuYWRkX3VudGVzdGVkX2lkbHMoJ2ludGVyZmFjZSBGb28geyB9OyBpbnRlcmZhY2UgQmFyIHsg
fTsgaW50ZXJmYWNlIEJheiB7IERPTVN0cmluZyB0b0pTT04oKTsgfTsgRm9vIGltcGxlbWVudHMg
QmFyOyBCYXIgaW1wbGVtZW50cyBCYXo7Jyk7Ci0vLyAgICAgICAgYXNzZXJ0X3RydWUoaWRsLmlz
X2pzb25fdHlwZSh0eXBlRnJvbSgiRm9vIikpKTsKLS8vICAgIH0sICdzaG91bGQgcmV0dXJuIHRy
dWUgZm9yIGludGVyZmFjZXMgd2hpY2ggbWl4aW4gYW4gaW50ZXJmYWNlIHdoaWNoIGl0c2VsZiBt
aXhlcyBpbiBhbiBpbnRlcmZhY2Ugd2hpY2ggZGVjbGFyZXMgYSB0b0pTT04gb3BlcmF0aW9uJyk7
Ci0KICAgICB0ZXN0KGZ1bmN0aW9uKCkgewogICAgICAgICB2YXIgaWRsID0gbmV3IElkbEFycmF5
KCk7CiAgICAgICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEZvbyB7IH07Jyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsRGljdGlvbmFyeS9nZXRfaW5oZXJpdGFuY2Vf
c3RhY2suaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxEaWN0aW9uYXJ5L2dldF9pbmhlcml0YW5jZV9z
dGFjay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNTI1OTJkZDQ2MDdkYmRh
NmNjMTc2MDMyNDlhMzhhZDUzYjQwYzljLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxEaWN0aW9uYXJ5L2dldF9pbmhlcml0YW5j
ZV9zdGFjay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotPCFET0NUWVBFIEhU
TUw+Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPklkbERpY3Rpb25hcnkucHJvdG90eXBlLmdldF9p
bmhlcml0YW5jZV9zdGFjaygpPC90aXRsZT4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9pZGwtaGVscGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0gICAgInVz
ZSBzdHJpY3QiOwotICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBzdGFjayA9IGRp
Y3Rpb25hcnlGcm9tKCdkaWN0aW9uYXJ5IEEgeyB9OycpLmdldF9pbmhlcml0YW5jZV9zdGFjaygp
OwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHN0YWNrLm1hcChkID0+IGQubmFtZSksIFsi
QSJdKTsKLSAgICB9LCAnc2hvdWxkIHJldHVybiBhbiBhcnJheSB0aGF0IGluY2x1ZGVzIGl0c2Vs
Zi4nKTsKLQotICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBkID0gZGljdGlvbmFy
eUZyb20oJ2RpY3Rpb25hcnkgQSA6IEIgeyB9OycpOwotICAgICAgICBhc3NlcnRfdGhyb3dzX2pz
KEVycm9yLCBfID0+IGQuZ2V0X2luaGVyaXRhbmNlX3N0YWNrKCkpOwotICAgIH0sICJzaG91bGQg
dGhyb3cgZm9yIGRpY3Rpb25hcmllcyB3aGljaCBpbmhlcml0IGZyb20gYW5vdGhlciBkaWN0aW9u
YXJ5IHdoaWNoIHdhc24ndCBhZGRlZCB0byB0aGUgSWRsQXJyYXkiKTsKLQotICAgIHRlc3QoZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIHZhciBpZGwgPSBuZXcgSWRsQXJyYXkoKTsKLSAgICAgICAgaWRs
LmFkZF9pZGxzKCdkaWN0aW9uYXJ5IEEgOiBCIHsgfTsnKTsKLSAgICAgICAgaWRsLmFkZF91bnRl
c3RlZF9pZGxzKCdkaWN0aW9uYXJ5IEIgOiBDIHsgfTsgZGljdGlvbmFyeSBDIHsgfTsnKTsKLSAg
ICAgICAgdmFyIEEgPSBpZGwubWVtYmVyc1siQSJdOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKEEuZ2V0X2luaGVyaXRhbmNlX3N0YWNrKCkubWFwKGQgPT4gZC5uYW1lKSwgWyJBIiwgIkIi
LCAiQyJdKTsKLSAgICB9LCAnc2hvdWxkIHJldHVybiBhbiBhcnJheSBvZiBpbmhlcml0ZWQgZGlj
dGlvbmFyaWVzIGluIG9yZGVyIG9mIGluaGVyaXRhbmNlLCBzdGFydGluZyB3aXRoIGl0c2VsZi4n
KTsKLQotICAgIHRlc3QoZnVuY3Rpb24gKCkgewotICAgICAgbGV0IGkgPSBuZXcgSWRsQXJyYXko
KTsKLSAgICAgIGkuYWRkX3VudGVzdGVkX2lkbHMoJ2RpY3Rpb25hcnkgQSA6IEIge307Jyk7Ci0g
ICAgICBpLmFzc2VydF90aHJvd3MobmV3IElkbEhhcm5lc3NFcnJvcignQSBpbmhlcml0cyBCLCBi
dXQgQiBpcyB1bmRlZmluZWQuJyksIGkgPT4gaS50ZXN0KCkpOwotICAgIH0sICdBIDogQiB3aXRo
IEIgdW5kZWNsYXJlZCBzaG91bGQgdGhyb3cgSWRsSGFybmVzc0Vycm9yJyk7Ci0KLSAgICB0ZXN0
KGZ1bmN0aW9uICgpIHsKLSAgICAgIGxldCBpID0gbmV3IElkbEFycmF5KCk7Ci0gICAgICBpLmFk
ZF91bnRlc3RlZF9pZGxzKCdkaWN0aW9uYXJ5IEEgOiBCIHt9OycpOwotICAgICAgaS5hZGRfdW50
ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEIge307Jyk7Ci0gICAgICBpLmFzc2VydF90aHJvd3MobmV3
IElkbEhhcm5lc3NFcnJvcignQSBpbmhlcml0cyBCLCBidXQgQSBpcyBub3QgYW4gaW50ZXJmYWNl
LicpLCBpID0+IGkudGVzdCgpKTsKLSAgICB9LCAnZGljdGlvbmFyeSBBIDogQiB3aXRoIEIgaW50
ZXJmYWNlIHNob3VsZCB0aHJvdyBJZGxIYXJuZXNzRXJyb3InKTsKLTwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbERpY3Rpb25hcnkvZ2V0X3Jl
dmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2suaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxEaWN0aW9uYXJ5
L2dldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDE4YmNkZWM5
MmFjMjI4MjJlZjczYjljNDI0OWU4MGNjNmFjZTZiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVz
dHMvdW5pdC9JZGxEaWN0aW9uYXJ5L2dldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrLmh0bWwK
QEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxl
PklkbERpY3Rpb25hcnkucHJvdG90eXBlLmdldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrKCk8
L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL2lkbGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2lkbC1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICAidXNlIHN0cmljdCI7CisgICAgdGVz
dChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHN0YWNrID0gZGljdGlvbmFyeUZyb20oJ2RpY3Rp
b25hcnkgQSB7IH07JykuZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2soKTsKKyAgICAgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhzdGFjay5tYXAoZCA9PiBkLm5hbWUpLCBbIkEiXSk7CisgICAg
fSwgJ3Nob3VsZCByZXR1cm4gYW4gYXJyYXkgdGhhdCBpbmNsdWRlcyBpdHNlbGYuJyk7CisKKyAg
ICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgZCA9IGRpY3Rpb25hcnlGcm9tKCdkaWN0
aW9uYXJ5IEEgOiBCIHsgfTsnKTsKKyAgICAgICAgYXNzZXJ0X3Rocm93c19qcyhFcnJvciwgXyA9
PiBkLmdldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrKCkpOworICAgIH0sICJzaG91bGQgdGhy
b3cgZm9yIGRpY3Rpb25hcmllcyB3aGljaCBpbmhlcml0IGZyb20gYW5vdGhlciBkaWN0aW9uYXJ5
IHdoaWNoIHdhc24ndCBhZGRlZCB0byB0aGUgSWRsQXJyYXkiKTsKKworICAgIHRlc3QoZnVuY3Rp
b24oKSB7CisgICAgICAgIHZhciBpZGwgPSBuZXcgSWRsQXJyYXkoKTsKKyAgICAgICAgaWRsLmFk
ZF9pZGxzKCdkaWN0aW9uYXJ5IEEgOiBCIHsgfTsnKTsKKyAgICAgICAgaWRsLmFkZF91bnRlc3Rl
ZF9pZGxzKCdkaWN0aW9uYXJ5IEIgOiBDIHsgfTsgZGljdGlvbmFyeSBDIHsgfTsnKTsKKyAgICAg
ICAgdmFyIEEgPSBpZGwubWVtYmVyc1siQSJdOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KEEuZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2soKS5tYXAoZCA9PiBkLm5hbWUpLCBbIkMi
LCAiQiIsICJBIl0pOworICAgIH0sICdzaG91bGQgcmV0dXJuIGFuIGFycmF5IG9mIGRpY3Rpb25h
cmllcyBpbiBvcmRlciBvZiBpbmhlcml0YW5jZSwgc3RhcnRpbmcgd2l0aCB0aGUgYmFzZSBkaWN0
aW9uYXJ5Jyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgIGxldCBpID0gbmV3IElk
bEFycmF5KCk7CisgICAgICBpLmFkZF91bnRlc3RlZF9pZGxzKCdkaWN0aW9uYXJ5IEEgOiBCIHt9
OycpOworICAgICAgaS5hc3NlcnRfdGhyb3dzKG5ldyBJZGxIYXJuZXNzRXJyb3IoJ0EgaW5oZXJp
dHMgQiwgYnV0IEIgaXMgdW5kZWZpbmVkLicpLCBpID0+IGkudGVzdCgpKTsKKyAgICB9LCAnQSA6
IEIgd2l0aCBCIHVuZGVjbGFyZWQgc2hvdWxkIHRocm93IElkbEhhcm5lc3NFcnJvcicpOworCisg
ICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICBsZXQgaSA9IG5ldyBJZGxBcnJheSgpOworICAg
ICAgaS5hZGRfdW50ZXN0ZWRfaWRscygnZGljdGlvbmFyeSBBIDogQiB7fTsnKTsKKyAgICAgIGku
YWRkX3VudGVzdGVkX2lkbHMoJ2ludGVyZmFjZSBCIHt9OycpOworICAgICAgaS5hc3NlcnRfdGhy
b3dzKG5ldyBJZGxIYXJuZXNzRXJyb3IoJ0EgaW5oZXJpdHMgQiwgYnV0IEEgaXMgbm90IGFuIGlu
dGVyZmFjZS4nKSwgaSA9PiBpLnRlc3QoKSk7CisgICAgfSwgJ2RpY3Rpb25hcnkgQSA6IEIgd2l0
aCBCIGludGVyZmFjZSBzaG91bGQgdGhyb3cgSWRsSGFybmVzc0Vycm9yJyk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxEaWN0aW9uYXJ5
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbERpY3Rpb25hcnkvdzNjLWltcG9ydC5s
b2cKaW5kZXggMDRiN2Y5MTE1ZjNlMWJmZGFjNmZhOTI5ODdiMWRkZmU4ODAyZGU0My4uYmFlMDRj
Y2E3NmQ1OGEzMDJkYWE4YzZjNDk3ZDViYWYxOGJhNDgyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91
bml0L0lkbERpY3Rpb25hcnkvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbERp
Y3Rpb25hcnkvdzNjLWltcG9ydC5sb2cKQEAgLTE0LDUgKzE0LDUgQEAgUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CiBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qg
b2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbERpY3Rpb25hcnkvZ2V0X2luaGVyaXRhbmNlX3N0
YWNrLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jl
c291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsRGljdGlvbmFyeS9nZXRfcmV2ZXJzZV9pbmhlcml0
YW5jZV9zdGFjay5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbERpY3Rpb25hcnkvdGVzdF9wYXJ0aWFs
X2RpY3Rpb25hcnkuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9j
b25zdHJ1Y3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvY29uc3RydWN0b3Jz
Lmh0bWwKaW5kZXggOTNjYzdmNDJjYzU1ODhmN2Y4ZjBjYjRjZmNkYjQ1NzMxZGRjZjhhOS4uZTll
ZTNmODY4MGFjMWI3MjE0YTM0YjI4MTQ1MjI0MzJiNTU0ZDQ4NSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0
cy91bml0L0lkbEludGVyZmFjZS9jb25zdHJ1Y3RvcnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQv
SWRsSW50ZXJmYWNlL2NvbnN0cnVjdG9ycy5odG1sCkBAIC04LDkgKzgsMTAgQEAKIDxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9pZGwtaGVscGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAidXNlIHN0
cmljdCI7CisvLyBbQ29uc3RydWN0b3JdIGV4dGVuZGVkIGF0dHJpYnV0ZSBzaG91bGQgbm90IGJl
IHN1cHBvcnRlZDoKIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgdmFyIGkgPSBpbnRlcmZhY2VGcm9t
KCdbQ29uc3RydWN0b3JdIGludGVyZmFjZSBBIHsgfTsnKTsKLSAgICBhc3NlcnRfZXF1YWxzKGku
Y29uc3RydWN0b3JzKCkubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnRfZXF1YWxzKGkuY29uc3RydWN0
b3JzKCkubGVuZ3RoLCAwKTsKIH0sICdJbnRlcmZhY2Ugd2l0aCBDb25zdHJ1Y3RvciBleHRlbmRl
ZCBhdHRyaWJ1dGUuJyk7CiAKIHRlc3QoZnVuY3Rpb24oKSB7CkBAIC0xOSw3ICsyMCw3IEBAIHRl
c3QoZnVuY3Rpb24oKSB7CiB9LCAnSW50ZXJmYWNlIHdpdGggY29uc3RydWN0b3IgbWV0aG9kJyk7
CiAKIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGkgPSBpbnRlcmZhY2VGcm9tKCdbQ29uc3Ry
dWN0b3JdIGludGVyZmFjZSBBIHsgY29uc3RydWN0b3IoKTsgfTsnKTsKKyAgICB2YXIgaSA9IGlu
dGVyZmFjZUZyb20oJ2ludGVyZmFjZSBBIHsgY29uc3RydWN0b3IoKTsgY29uc3RydWN0b3IoYW55
IHZhbHVlKTsgfTsnKTsKICAgICBhc3NlcnRfZXF1YWxzKGkuY29uc3RydWN0b3JzKCkubGVuZ3Ro
LCAyKTsKLX0sICdJbnRlcmZhY2Ugd2l0aCBib3RoJyk7Cit9LCAnSW50ZXJmYWNlIHdpdGggY29u
c3RydWN0b3Igb3ZlcmxvYWRzJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5p
dC9JZGxJbnRlcmZhY2UvZGVmYXVsdF90b19qc29uX29wZXJhdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91
bml0L0lkbEludGVyZmFjZS9kZWZhdWx0X3RvX2pzb25fb3BlcmF0aW9uLmh0bWwKaW5kZXggZTAz
ZWE4YjAzODc0Y2U3YWNmZmRjNzg0NjNhYjdjZjMzYWQyMjZkMC4uNWFkZTdkMGQyODJhMzQ2ZGU2
YjFmMDU0NDU3ZjQzMTM3NDg0Mzc3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVy
ZmFjZS9kZWZhdWx0X3RvX2pzb25fb3BlcmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lk
bEludGVyZmFjZS9kZWZhdWx0X3RvX2pzb25fb3BlcmF0aW9uLmh0bWwKQEAgLTEwLDQ0ICsxMCw2
IEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vaWRsLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08cHJlIGlkPWZyYWdtZW50
cz4KLSAgICBpbnRlcmZhY2UgQSA6IEIgewotICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBhOwot
ICAgIH07Ci0KLSAgICBpbnRlcmZhY2UgQiA6IEMgewotICAgICAgW0RlZmF1bHRdIG9iamVjdCB0
b0pTT04oKTsKLSAgICAgIGF0dHJpYnV0ZSBsb25nIGI7Ci0gICAgfTsKLQotICAgIGludGVyZmFj
ZSBDIHsKLSAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgYzsKLSAgICB9OwotCi0gICAgaW50ZXJm
YWNlIG1peGluIEQgewotICAgICAgW0RlZmF1bHRdIG9iamVjdCB0b0pTT04oKTsKLSAgICAgIGF0
dHJpYnV0ZSBmbG9hdCBkOwotICAgIH07Ci0KLSAgICBpbnRlcmZhY2UgbWl4aW4gRyB7Ci0gICAg
ICBbRGVmYXVsdF0gb2JqZWN0IHRvSlNPTigpOwotICAgICAgYXR0cmlidXRlIG9jdGV0IGc7Ci0g
ICAgfTsKLQotICAgIGludGVyZmFjZSBtaXhpbiBIIHsKLSAgICAgIFtEZWZhdWx0XSBvYmplY3Qg
dG9KU09OKCk7Ci0gICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGg7Ci0gICAgfTsKLQotICAgIGlu
dGVyZmFjZSBtaXhpbiBJIHsKLSAgICAgIFtEZWZhdWx0XSBvYmplY3QgdG9KU09OKCk7Ci0gICAg
ICBhdHRyaWJ1dGUgYm9vbGVhbiBpOwotICAgIH07Ci0KLSAgICBBIGluY2x1ZGVzIEc7Ci0gICAg
QSBpbmNsdWRlcyBIOwotICAgIEIgaW5jbHVkZXMgRDsKLTwvcHJlPgogPHNjcmlwdD4KICAgICAi
dXNlIHN0cmljdCI7CiAgICAgdGVzdChmdW5jdGlvbigpIHsKQEAgLTEyOCw0NSArOTAsMjQgQEAK
IAogICAgIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgICAgIHZhciBjb250ZXh0ID0gbmV3IElkbEFy
cmF5KCk7Ci0gICAgICAgIGNvbnRleHQuYWRkX2lkbHMoImludGVyZmFjZSBBIDogQiB7IFtEZWZh
dWx0XSBvYmplY3QgdG9KU09OKCk7IGF0dHJpYnV0ZSBET01TdHJpbmcgYTsgfTsiKTsKLSAgICAg
ICAgY29udGV4dC5hZGRfaWRscygiaW50ZXJmYWNlIEIgeyBvYmplY3QgdG9KU09OKCk7IGF0dHJp
YnV0ZSBsb25nIGI7IH07Iik7Ci0gICAgICAgIHZhciBtYXAgPSBjb250ZXh0Lm1lbWJlcnMuQS5k
ZWZhdWx0X3RvX2pzb25fb3BlcmF0aW9uKCk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMobWFwLnNp
emUsIDEpOwotICAgICAgICBhc3NlcnRfdHJ1ZShtYXAuaGFzKCJhIikpOwotICAgICAgICBhc3Nl
cnRfZmFsc2UobWFwLmhhcygiYiIpKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhtYXAuZ2V0KCJh
IikuaWRsVHlwZSwgIkRPTVN0cmluZyIpOworICAgICAgICBjb250ZXh0LmFkZF9pZGxzKCJpbnRl
cmZhY2UgQSB7IFtEZWZhdWx0XSBvYmplY3QgdG9KU09OKCk7IGF0dHJpYnV0ZSBET01TdHJpbmcg
YTsgfTsiKTsKKyAgICAgICAgY29udGV4dC5hZGRfaWRscygiaW50ZXJmYWNlIEIgOiBBIHsgYXR0
cmlidXRlIGFueSBiOyB9OyIpOworICAgICAgICBjb250ZXh0LmFkZF9pZGxzKCJpbnRlcmZhY2Ug
QyA6IEIgeyBbRGVmYXVsdF0gb2JqZWN0IHRvSlNPTigpOyBhdHRyaWJ1dGUgbG9uZyBjOyB9OyIp
OworICAgICAgICB2YXIgbWFwID0gY29udGV4dC5tZW1iZXJzLkMuZGVmYXVsdF90b19qc29uX29w
ZXJhdGlvbigpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKFsuLi5tYXAua2V5cygpXSwg
WyJhIiwgImMiXSk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLm1hcC52YWx1ZXMo
KV0ubWFwKHYgPT4gdi5pZGxUeXBlKSwgWyJET01TdHJpbmciLCAibG9uZyJdKTsKICAgICB9LCAn
c2hvdWxkIHJldHVybiBhbiBvcmRlcmVkIG1hcCB0aGF0IGlnbm9yZXMgYXR0cmlidXRlcyBvZiBp
bmhlcml0ZWQgaW50ZXJmYWNlcyB3aGljaCBkbyBub3QgZGVjbGFyZSBhIFtEZWZhdWx0XSB0b0pT
T04gb3BlcmF0aW9uLicpOwogCiAgICAgdGVzdChmdW5jdGlvbigpIHsKICAgICAgICAgdmFyIGNv
bnRleHQgPSBuZXcgSWRsQXJyYXkoKTsKLSAgICAgICAgY29udGV4dC5hZGRfaWRscygiaW50ZXJm
YWNlIEEgeyBbRGVmYXVsdF0gb2JqZWN0IHRvSlNPTigpOyBhdHRyaWJ1dGUgRE9NU3RyaW5nIGE7
IH07Iik7Ci0gICAgICAgIGNvbnRleHQuYWRkX2lkbHMoImludGVyZmFjZSBtaXhpbiBOIHsgW0Rl
ZmF1bHRdIG9iamVjdCB0b0pTT04oKTsgYXR0cmlidXRlIGxvbmcgbjsgfTsiKTsKLSAgICAgICAg
Y29udGV4dC5hZGRfaWRscygiQSBpbmNsdWRlcyBOOyIpOwotICAgICAgICB2YXIgbWFwID0gY29u
dGV4dC5tZW1iZXJzLkEuZGVmYXVsdF90b19qc29uX29wZXJhdGlvbigpOwotICAgICAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKFsuLi5tYXAua2V5cygpXSwgWyJhIiwgIm4iXSk7CisgICAgICAgIGNv
bnRleHQuYWRkX2lkbHMoImludGVyZmFjZSBEIHsgYXR0cmlidXRlIERPTVN0cmluZyBkOyB9OyIp
OworICAgICAgICBjb250ZXh0LmFkZF9pZGxzKCJpbnRlcmZhY2UgbWl4aW4gTSB7IFtEZWZhdWx0
XSBvYmplY3QgdG9KU09OKCk7IGF0dHJpYnV0ZSBsb25nIG07IH07Iik7CisgICAgICAgIGNvbnRl
eHQuYWRkX2lkbHMoIkQgaW5jbHVkZXMgTTsiKTsKKyAgICAgICAgY29udGV4dC5tZXJnZV9taXhp
bnMoKTsKKyAgICAgICAgdmFyIG1hcCA9IGNvbnRleHQubWVtYmVycy5ELmRlZmF1bHRfdG9fanNv
bl9vcGVyYXRpb24oKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhbLi4ubWFwLmtleXMo
KV0sIFsiZCIsICJtIl0pOwogICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKFsuLi5tYXAudmFs
dWVzKCldLm1hcCh2ID0+IHYuaWRsVHlwZSksIFsiRE9NU3RyaW5nIiwgImxvbmciXSk7CiAgICAg
fSwgJ3Nob3VsZCByZXR1cm4gYSBwcm9wZXJseSBvcmRlcmVkIG1hcCB0aGF0IGFjY291bnRzIGZv
ciBtaXhlZC1pbiBpbnRlcmZhY2VzIHdoaWNoIGRlY2xhcmUgYSBbRGVmYXVsdF0gdG9KU09OIG9w
ZXJhdGlvbi4nKTsKLQotICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBjb250ZXh0
ID0gbmV3IElkbEFycmF5KCk7Ci0gICAgICAgIGNvbnRleHQuYWRkX2lkbHMoImludGVyZmFjZSBB
IHsgW0RlZmF1bHRdIG9iamVjdCB0b0pTT04oKTsgYXR0cmlidXRlIERPTVN0cmluZyBhOyB9OyIp
OwotICAgICAgICBjb250ZXh0LmFkZF9pZGxzKCJpbnRlcmZhY2UgbWl4aW4gTiB7IGF0dHJpYnV0
ZSBsb25nIG47IH07Iik7Ci0gICAgICAgIGNvbnRleHQuYWRkX2lkbHMoIkEgaW5jbHVkZXMgTjsi
KTsKLSAgICAgICAgdmFyIG1hcCA9IGNvbnRleHQubWVtYmVycy5BLmRlZmF1bHRfdG9fanNvbl9v
cGVyYXRpb24oKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhtYXAuc2l6ZSwgMSk7Ci0gICAgICAg
IGFzc2VydF90cnVlKG1hcC5oYXMoImEiKSk7Ci0gICAgICAgIGFzc2VydF9mYWxzZShtYXAuaGFz
KCJuIikpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKG1hcC5nZXQoImEiKS5pZGxUeXBlLCAiRE9N
U3RyaW5nIik7Ci0gICAgfSwgJ3Nob3VsZCByZXR1cm4gYSBwcm9wZXJseSBvcmRlcmVkIG1hcCB0
aGF0IGlnbm9yZXMgbWl4ZWQtaW4gaW50ZXJmYWNlcyB3aGljaCBkbyBub3QgZGVjbGFyZSBhIFtE
ZWZhdWx0XSB0b0pTT04gb3BlcmF0aW9uLicpOwotCi0KLSAgICB0ZXN0KGZ1bmN0aW9uKCkgewot
ICAgICAgICB2YXIgY29udGV4dCA9IG5ldyBJZGxBcnJheSgpOwotICAgICAgICBjb250ZXh0LmFk
ZF9pZGxzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFnbWVudHMnKS50ZXh0Q29udGVudCk7
Ci0gICAgICAgIHZhciBtYXAgPSBjb250ZXh0Lm1lbWJlcnMuQS5kZWZhdWx0X3RvX2pzb25fb3Bl
cmF0aW9uKCk7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLm1hcC5rZXlzKCldLCBb
ImIiLCAiZCIsICJnIiwgImgiXSk7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLm1h
cC52YWx1ZXMoKV0ubWFwKHYgPT4gdi5pZGxUeXBlKSwgWyJsb25nIiwgImZsb2F0IiwgIm9jdGV0
IiwgIkRPTVN0cmluZyJdKTsKLSAgICB9LCAnc2hvdWxkIHJldHVybiBhIHByb3Blcmx5IG9yZGVy
ZWQgbWFwIG9mIG5hbWUvdHlwZSBwYWlycyBoYW5kbGluZyBpbmhlcml0ZWQgYW5kIGNvbnNlcXVl
bnRpYWwgaW50ZXJmYWNlcyBhcyBzcGVjaWZpZWQuJyk7CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvZ2V0X2luaGVyaXRh
bmNlX3N0YWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2dldF9pbmhlcml0YW5j
ZV9zdGFjay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZTkxODhjNzMxODky
MGY0NDkzNWU0MThhNTBhYTM1YTU4YmY1NzI1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvZ2V0X2luaGVyaXRh
bmNlX3N0YWNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08IURPQ1RZUEUg
SFRNTD4KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+SWRsSW50ZXJmYWNlLnByb3RvdHlwZS5nZXRf
aW5oZXJpdGFuY2Vfc3RhY2soKTwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9Imxv
ZyI+PC9kaXY+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vaWRsLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotICAgICJ1
c2Ugc3RyaWN0IjsKLSAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgc3RhY2sgPSBp
bnRlcmZhY2VGcm9tKCdpbnRlcmZhY2UgQSB7IH07JykuZ2V0X2luaGVyaXRhbmNlX3N0YWNrKCk7
Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc3RhY2subWFwKGkgPT4gaS5uYW1lKSwgWyJB
Il0pOwotICAgIH0sICdzaG91bGQgcmV0dXJuIGFuIGFycmF5IHRoYXQgaW5jbHVkZXMgaXRzZWxm
LicpOwotCi0gICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGkgPSBpbnRlcmZhY2VG
cm9tKCdpbnRlcmZhY2UgQSA6IEIgeyB9OycpOwotICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKEVy
cm9yLCBfID0+IGkuZ2V0X2luaGVyaXRhbmNlX3N0YWNrKCkpOwotICAgIH0sICJzaG91bGQgdGhy
b3cgZm9yIGludGVyZmFjZXMgd2hpY2ggaW5oZXJpdCBmcm9tIGFub3RoZXIgaW50ZXJmYWNlIHdo
aWNoIHdhc24ndCBhZGRlZCB0byB0aGUgSWRsQXJyYXkiKTsKLQotICAgIHRlc3QoZnVuY3Rpb24o
KSB7Ci0gICAgICAgIHZhciBpZGwgPSBuZXcgSWRsQXJyYXkoKTsKLSAgICAgICAgaWRsLmFkZF9p
ZGxzKCdpbnRlcmZhY2UgQSA6IEIgeyB9OycpOwotICAgICAgICBpZGwuYWRkX3VudGVzdGVkX2lk
bHMoJ2ludGVyZmFjZSBCIDogQyB7IH07IGludGVyZmFjZSBDIHsgfTsnKTsKLSAgICAgICAgdmFy
IEEgPSBpZGwubWVtYmVyc1siQSJdOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKEEuZ2V0
X2luaGVyaXRhbmNlX3N0YWNrKCkubWFwKGkgPT4gaS5uYW1lKSwgWyJBIiwgIkIiLCAiQyJdKTsK
LSAgICB9LCAnc2hvdWxkIHJldHVybiBhbiBhcnJheSBvZiBpbmhlcml0ZWQgaW50ZXJmYWNlcyBp
biBvcmRlciBvZiBpbmhlcml0YW5jZSwgc3RhcnRpbmcgd2l0aCBpdHNlbGYuJyk7Ci0KLSAgICB0
ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFyIGlkbCA9IG5ldyBJZGxBcnJheSgpOwotICAg
ICAgICBpZGwuYWRkX3VudGVzdGVkX2lkbHMoJ2ludGVyZmFjZSBBIDogQiB7IH07Jyk7Ci0gICAg
ICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEIgOiBBIHsgfTsnKTsKLSAgICAg
ICAgaWRsLmFzc2VydF90aHJvd3MoJ0EgaGFzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeTogQSxCLEEn
LCBpID0+IGkudGVzdCgpKTsKLSAgICB9LCAnc2hvdWxkIHRocm93IHdoZW4gaW5oZXJpdGFuY2Ug
aXMgY2lyY3VsYXInKTsKLQotICAgIHRlc3QoZnVuY3Rpb24gKCkgewotICAgICAgICB2YXIgaWRs
ID0gbmV3IElkbEFycmF5KCk7Ci0gICAgICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJm
YWNlIEEgOiBCIHsgfTsnKTsKLSAgICAgICAgaWRsLmFzc2VydF90aHJvd3MoCi0gICAgICAgICAg
ICAnRHVwbGljYXRlIGlkZW50aWZpZXIgQScsCi0gICAgICAgICAgICBpID0+IGkuYWRkX3VudGVz
dGVkX2lkbHMoJ2ludGVyZmFjZSBBIDogQyB7IH07JykpOwotICAgIH0sICdzaG91bGQgdGhyb3cg
d2hlbiBtdWx0aXBsZSBpbmhlcml0YW5jZXMgZGVmaW5lZCcpOwotPC9zY3JpcHQ+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2dldF9yZXZl
cnNlX2luaGVyaXRhbmNlX3N0YWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2dl
dF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGMwNjZiYWFiYmNm
MDI2N2IxNTFhNGUyMWQ2YmVmZWYxN2UzNmY0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMv
dW5pdC9JZGxJbnRlcmZhY2UvZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2suaHRtbApAQCAt
MCwwICsxLDQ5IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+SWRs
SW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjaygpPC90aXRs
ZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL1dlYklETFBhcnNlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9p
ZGxoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9pZGwtaGVscGVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgInVzZSBzdHJpY3QiOworICAgIHRlc3QoZnVu
Y3Rpb24oKSB7CisgICAgICAgIHZhciBzdGFjayA9IGludGVyZmFjZUZyb20oJ2ludGVyZmFjZSBB
IHsgfTsnKS5nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjaygpOworICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKHN0YWNrLm1hcChpID0+IGkubmFtZSksIFsiQSJdKTsKKyAgICB9LCAnc2hv
dWxkIHJldHVybiBhbiBhcnJheSB0aGF0IGluY2x1ZGVzIGl0c2VsZi4nKTsKKworICAgIHRlc3Qo
ZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBpID0gaW50ZXJmYWNlRnJvbSgnaW50ZXJmYWNlIEEg
OiBCIHsgfTsnKTsKKyAgICAgICAgYXNzZXJ0X3Rocm93c19qcyhFcnJvciwgXyA9PiBpLmdldF9y
ZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrKCkpOworICAgIH0sICJzaG91bGQgdGhyb3cgZm9yIGlu
dGVyZmFjZXMgd2hpY2ggaW5oZXJpdCBmcm9tIGFub3RoZXIgaW50ZXJmYWNlIHdoaWNoIHdhc24n
dCBhZGRlZCB0byB0aGUgSWRsQXJyYXkiKTsKKworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAg
ICAgIHZhciBpZGwgPSBuZXcgSWRsQXJyYXkoKTsKKyAgICAgICAgaWRsLmFkZF9pZGxzKCdpbnRl
cmZhY2UgQSA6IEIgeyB9OycpOworICAgICAgICBpZGwuYWRkX3VudGVzdGVkX2lkbHMoJ2ludGVy
ZmFjZSBCIDogQyB7IH07IGludGVyZmFjZSBDIHsgfTsnKTsKKyAgICAgICAgdmFyIEEgPSBpZGwu
bWVtYmVyc1siQSJdOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKEEuZ2V0X3JldmVyc2Vf
aW5oZXJpdGFuY2Vfc3RhY2soKS5tYXAoaSA9PiBpLm5hbWUpLCBbIkMiLCAiQiIsICJBIl0pOwor
ICAgIH0sICdzaG91bGQgcmV0dXJuIGFuIGFycmF5IG9mIGludGVyZmFjZXMgaW4gb3JkZXIgb2Yg
aW5oZXJpdGFuY2UsIHN0YXJ0aW5nIHdpdGggdGhlIGJhc2UgaW50ZXJmYWNlJyk7CisKKyAgICB0
ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGlkbCA9IG5ldyBJZGxBcnJheSgpOworICAg
ICAgICBpZGwuYWRkX3VudGVzdGVkX2lkbHMoJ2ludGVyZmFjZSBBIDogQiB7IH07Jyk7CisgICAg
ICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEIgOiBBIHsgfTsnKTsKKyAgICAg
ICAgaWRsLmFzc2VydF90aHJvd3MoJ0EgaGFzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeTogQSxCLEEn
LCBpID0+IGkudGVzdCgpKTsKKyAgICB9LCAnc2hvdWxkIHRocm93IHdoZW4gaW5oZXJpdGFuY2Ug
aXMgY2lyY3VsYXInKTsKKworICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgaWRs
ID0gbmV3IElkbEFycmF5KCk7CisgICAgICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJm
YWNlIEEgOiBCIHsgfTsnKTsKKyAgICAgICAgaWRsLmFzc2VydF90aHJvd3MoCisgICAgICAgICAg
ICAnRHVwbGljYXRlIGlkZW50aWZpZXIgQScsCisgICAgICAgICAgICBpID0+IGkuYWRkX3VudGVz
dGVkX2lkbHMoJ2ludGVyZmFjZSBBIDogQyB7IH07JykpOworICAgIH0sICdzaG91bGQgdGhyb3cg
d2hlbiBtdWx0aXBsZSBpbmhlcml0YW5jZXMgZGVmaW5lZCcpOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL3Nob3VsZF9o
YXZlX2ludGVyZmFjZV9vYmplY3QuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2Uvc2hv
dWxkX2hhdmVfaW50ZXJmYWNlX29iamVjdC5odG1sCmluZGV4IGY1YmI3YmYzNWE1OGMyM2NiYWY3
NmYxNTE5YWMyZGZlYzVmM2FkNjIuLjNjZTk0NTc1MWQ4NTAyZGQ2ZDM1ZDE5ZjUyYzcxZjE3MDEz
MTNkNDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2Uvc2hvdWxkX2hhdmVf
aW50ZXJmYWNlX29iamVjdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2Uvc2hv
dWxkX2hhdmVfaW50ZXJmYWNlX29iamVjdC5odG1sCkBAIC0xNCwxNyArMTQsMTcgQEAgdGVzdChm
dW5jdGlvbigpIHsKIH0sICJjYWxsYmFjayBpbnRlcmZhY2Ugd2l0aCBhIGNvbnN0YW50Iik7CiAK
IHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGkgPSBpbnRlcmZhY2VGcm9tKCJjYWxsYmFjayBp
bnRlcmZhY2UgQSB7IHZvaWQgYigpOyBzZXF1ZW5jZTxhbnk+IGMoKTsgfTsiKTsKKyAgICB2YXIg
aSA9IGludGVyZmFjZUZyb20oImNhbGxiYWNrIGludGVyZmFjZSBBIHsgdW5kZWZpbmVkIGIoKTsg
c2VxdWVuY2U8YW55PiBjKCk7IH07Iik7CiAgICAgYXNzZXJ0X2ZhbHNlKGkuc2hvdWxkX2hhdmVf
aW50ZXJmYWNlX29iamVjdCgpKTsKIH0sICJjYWxsYmFjayBpbnRlcmZhY2Ugd2l0aG91dCBhIGNv
bnN0YW50Iik7CiAKIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGkgPSBpbnRlcmZhY2VGcm9t
KCJbTm9JbnRlcmZhY2VPYmplY3RdIGludGVyZmFjZSBBIHsgfTsiKTsKKyAgICB2YXIgaSA9IGlu
dGVyZmFjZUZyb20oIltMZWdhY3lOb0ludGVyZmFjZU9iamVjdF0gaW50ZXJmYWNlIEEgeyB9OyIp
OwogICAgIGFzc2VydF9mYWxzZShpLnNob3VsZF9oYXZlX2ludGVyZmFjZV9vYmplY3QoKSk7Ci19
LCAibm9uLWNhbGxiYWNrIGludGVyZmFjZSB3aXRoIFtOb0ludGVyZmFjZU9iamVjdF0iKTsKK30s
ICJub24tY2FsbGJhY2sgaW50ZXJmYWNlIHdpdGggW0xlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0XSIp
OwogCiB0ZXN0KGZ1bmN0aW9uKCkgewogICAgIHZhciBpID0gaW50ZXJmYWNlRnJvbSgiaW50ZXJm
YWNlIEEgeyB9OyIpOwogICAgIGFzc2VydF90cnVlKGkuc2hvdWxkX2hhdmVfaW50ZXJmYWNlX29i
amVjdCgpKTsKLX0sICJub24tY2FsbGJhY2sgaW50ZXJmYWNlIHdpdGhvdXQgW05vSW50ZXJmYWNl
T2JqZWN0XSIpOworfSwgIm5vbi1jYWxsYmFjayBpbnRlcmZhY2Ugd2l0aG91dCBbTGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3RdIik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9J
ZGxJbnRlcmZhY2UvdHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFj
ZXMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvdHJhdmVyc2VfaW5oZXJpdGVkX2Fu
ZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOTRiOTU2ZGI2ZWVkMWUxOWQ3ZGQzN2NhNjJhODA0YzRmZTM2ZWEyYS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50
ZXJmYWNlL3RyYXZlcnNlX2luaGVyaXRlZF9hbmRfY29uc2VxdWVudGlhbF9pbnRlcmZhY2VzLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi08IURPQ1RZUEUgSFRNTD4KLTxodG1s
PgotPGhlYWQ+Ci08dGl0bGU+SWRsRGljdGlvbmFyeS5wcm90b3R5cGUudHJhdmVyc2VfaW5oZXJp
dGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMoKTwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9XZWJJRExQYXJzZXIu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vaWRsLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08
cHJlIGlkPWZyYWdtZW50cz4KLSAgICBpbnRlcmZhY2UgQSA6IEIgeyB9OwotICAgIGludGVyZmFj
ZSBCIDogQyB7IH07Ci0gICAgaW50ZXJmYWNlIEMgeyB9OwotICAgIGludGVyZmFjZSBtaXhpbiBE
IHsgfTsKLSAgICBpbnRlcmZhY2UgbWl4aW4gRyB7IH07Ci0gICAgaW50ZXJmYWNlIG1peGluIEgg
eyB9OwotCi0gICAgQSBpbmNsdWRlcyBHOwotICAgIEEgaW5jbHVkZXMgSDsKLSAgICBCIGluY2x1
ZGVzIEQ7Ci08L3ByZT4KLTxzY3JpcHQ+Ci0gICAgInVzZSBzdHJpY3QiOwotICAgIHRlc3QoZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIHZhciBpbnRlcmZhY2VzID0gW107Ci0gICAgICAgIGludGVyZmFj
ZUZyb20oJ2ludGVyZmFjZSBBIHsgfTsnKS50cmF2ZXJzZV9pbmhlcml0ZWRfYW5kX2NvbnNlcXVl
bnRpYWxfaW50ZXJmYWNlcyhmdW5jdGlvbihpKSB7Ci0gICAgICAgICAgICBpbnRlcmZhY2VzLnB1
c2goaS5uYW1lKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoaW50
ZXJmYWNlcywgWyJBIl0pOwotICAgIH0sICdzaG91bGQgcmV0dXJuIGFuIGFycmF5IHRoYXQgaW5j
bHVkZXMgaXRzZWxmLicpOwotCi0gICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGNv
bnRleHQgPSBuZXcgSWRsQXJyYXkoKTsKLSAgICAgICAgY29udGV4dC5hZGRfaWRscygiaW50ZXJm
YWNlIEEgeyB9OyBBIGluY2x1ZGVzIEI7Iik7Ci0gICAgICAgIGFzc2VydF90aHJvd3NfanMoRXJy
b3IsIF8gPT4gY29udGV4dC5tZW1iZXJzWyJBIl0udHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25z
ZXF1ZW50aWFsX2ludGVyZmFjZXMoZnVuY3Rpb24oKSB7fSkpOwotICAgIH0sICJzaG91bGQgdGhy
b3cgZm9yIGludGVyZmFjZXMgd2hpY2ggYXJlIGV4dGVuZGVkIGJ5IGFub3RoZXIgaW50ZXJmYWNl
IHdoaWNoIHdhc24ndCBhZGRlZCB0byB0aGUgSWRsQXJyYXkuIik7Ci0KLSAgICB0ZXN0KGZ1bmN0
aW9uKCkgewotICAgICAgICB2YXIgY29udGV4dCA9IG5ldyBJZGxBcnJheSgpOwotICAgICAgICBj
b250ZXh0LmFkZF9pZGxzKCJpbnRlcmZhY2UgQSB7IH07Iik7Ci0gICAgICAgIGFzc2VydF90aHJv
d3NfanMoVHlwZUVycm9yLCBfID0+IGNvbnRleHQubWVtYmVyc1siQSJdLnRyYXZlcnNlX2luaGVy
aXRlZF9hbmRfY29uc2VxdWVudGlhbF9pbnRlcmZhY2VzKCkpOwotICAgIH0sICJzaG91bGQgdGhy
b3cgaWYgbm90IHBhc3NlZCBhIGNhbGxiYWNrIik7Ci0KLSAgICB0ZXN0KGZ1bmN0aW9uKCkgewot
ICAgICAgICB2YXIgY29udGV4dCA9IG5ldyBJZGxBcnJheSgpOwotICAgICAgICBjb250ZXh0LmFk
ZF9pZGxzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFnbWVudHMnKS50ZXh0Q29udGVudCk7
Ci0gICAgICAgIHZhciBpbnRlcmZhY2VzID0gW107Ci0gICAgICAgIGNvbnRleHQubWVtYmVyc1si
QSJdLnRyYXZlcnNlX2luaGVyaXRlZF9hbmRfY29uc2VxdWVudGlhbF9pbnRlcmZhY2VzKGZ1bmN0
aW9uKGkpIHsKLSAgICAgICAgICAgIGludGVyZmFjZXMucHVzaChpLm5hbWUpOwotICAgICAgICB9
KTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhpbnRlcmZhY2VzLCBbIkMiLCAiQiIsICJE
IiwgIkEiLCAiRyIsICJIIl0pOwotICAgIH0sICdzaG91bGQgcmV0dXJuIGFuIGFycmF5IHRoYXQg
aW5jbHVkZXMgdGhlIGlkZW50aWZpZXIgb2YgdGhlIGludGVyZmFjZXMgaW4gdGhlIGNvcnJlY3Qg
b3JkZXIuJyk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVz
dHMvdW5pdC9JZGxJbnRlcmZhY2UvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50
ZXJmYWNlL3czYy1pbXBvcnQubG9nCmluZGV4IDgyMzU1ZTA1YjU1YjdhMjE4ODEwNjE1ZDM2YTdi
YjRlNGMzNjAxZTkuLmJkNjdkZjk0NDUxMTBlMjc3OWRjYmQ0NmQ1Y2JhZTI2YTYwZjIyYTcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvdzNjLWltcG9ydC5sb2cKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dC90ZXN0cy91bml0L0lkbEludGVyZmFjZS93M2MtaW1wb3J0LmxvZwpAQCAtMTcsMTMgKzE3LDEy
IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9jb25zdHJ1Y3Rv
cnMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvZGVmYXVsdF90b19qc29uX29wZXJh
dGlvbi5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9kb19tZW1iZXJfdW5zY29wYWJs
ZV9hc3NlcnRzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2dldF9pbmhlcml0YW5j
ZV9zdGFjay5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9nZXRfaW50ZXJmYWNlX29i
amVjdC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9nZXRfaW50ZXJmYWNlX29iamVj
dF9vd25lci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9nZXRfbGVnYWN5X25hbWVz
cGFjZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9nZXRfcXVhbGlmaWVkX25hbWUu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3Vy
Y2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vf
c3RhY2suaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvaGFzX2RlZmF1bHRfdG9fanNv
bl9yZWd1bGFyX29wZXJhdGlvbi5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9oYXNf
dG9fanNvbl9yZWd1bGFyX29wZXJhdGlvbi5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFj
ZS9zaG91bGRfaGF2ZV9pbnRlcmZhY2Vfb2JqZWN0Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50
ZXJmYWNlL3Rlc3RfcHJpbWFyeV9pbnRlcmZhY2Vfb2ZfdW5kZWZpbmVkLmh0bWwKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3Rz
L3VuaXQvSWRsSW50ZXJmYWNlL3RyYXZlcnNlX2luaGVyaXRlZF9hbmRfY29uc2VxdWVudGlhbF9p
bnRlcmZhY2VzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2VNZW1i
ZXIvaXNfdG9fanNvbl9yZWd1bGFyX29wZXJhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbElu
dGVyZmFjZU1lbWJlci9pc190b19qc29uX3JlZ3VsYXJfb3BlcmF0aW9uLmh0bWwKaW5kZXggYWJm
YTRhYjgwMGIzYzhlNmI1ZjZmZDNiNDJhOTgyY2MyZTRmZTk5ZS4uYjNmNDAyZGQwODg1N2NmZTQx
Y2RjODU3M2ZmOGMzYzQwN2QyNWU4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVy
ZmFjZU1lbWJlci9pc190b19qc29uX3JlZ3VsYXJfb3BlcmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0
cy91bml0L0lkbEludGVyZmFjZU1lbWJlci9pc190b19qc29uX3JlZ3VsYXJfb3BlcmF0aW9uLmh0
bWwKQEAgLTE4LDcgKzE4LDcgQEAKICAgICB9LCAnc2hvdWxkIHJldHVybiBmYWxzZSB3aGVuIG1l
bWJlciBpcyBhbiBhdHRyaWJ1dGUuJyk7CiAKICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAg
ICB2YXIgbSA9IG1lbWJlckZyb20oInN0YXRpYyB2b2lkIGZvbygpIik7CisgICAgICAgIHZhciBt
ID0gbWVtYmVyRnJvbSgic3RhdGljIHVuZGVmaW5lZCBmb28oKSIpOwogICAgICAgICBhc3NlcnRf
ZmFsc2UobS5pc190b19qc29uX3JlZ3VsYXJfb3BlcmF0aW9uKCkpOwogICAgIH0sICdzaG91bGQg
cmV0dXJuIGZhbHNlIHdoZW4gbWVtYmVyIGlzIGEgc3RhdGljIG9wZXJhdGlvbi4nKTsKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNv
dXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZU1lbWJlci90b1N0cmluZy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dC90ZXN0cy91bml0L0lkbEludGVyZmFjZU1lbWJlci90b1N0cmluZy5odG1sCmluZGV4IDc3OWM3
YTE1ZTZkN2I5ZWMyMGMzOGJhMjQ5MDBmNzUyMDk2ZGYzZTIuLjA1NGRiYjFjY2JkNmVhMjczOTk4
NjI5NDMzYzE1Y2ViNTJhYjRiYmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZh
Y2VNZW1iZXIvdG9TdHJpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlTWVt
YmVyL3RvU3RyaW5nLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAgY29uc3QgdGVzdHMgPSBbCiBdOwog
Zm9yIChjb25zdCBbaW5wdXQsIG91dHB1dF0gb2YgdGVzdHMpIHsKICAgICB0ZXN0KGZ1bmN0aW9u
KCkgewotICAgICAgICB2YXIgbSA9IG1lbWJlckZyb20oYHZvaWQgZm9vKCR7aW5wdXR9KWApOwor
ICAgICAgICB2YXIgbSA9IG1lbWJlckZyb20oYHVuZGVmaW5lZCBmb28oJHtpbnB1dH0pYCk7CiAg
ICAgICAgIGFzc2VydF9lcXVhbHMobS50b1N0cmluZygpLCBgZm9vKCR7b3V0cHV0fSlgKTsKICAg
ICB9LCBgdG9TdHJpbmcgZm9yICR7aW5wdXR9YCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3Vu
aXQvaGVscGVycy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9oZWxwZXJzLmpzCmluZGV4IGIyNzNhNzI1ODlm
N2QzMzRkZTU4ZWU3ODBhYmJjNGMwZjRlMjJlYmQuLmNhMzc4YTI3YzkxNTI3NDJmNzUxZDBiOWM1
YzI3NmY0OGEyMTU2MGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9oZWxwZXJzLmpzCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rl
c3QvdGVzdHMvdW5pdC9oZWxwZXJzLmpzCkBAIC0xMSw3ICsxMSw3IEBAIGZ1bmN0aW9uIHRlc3Rf
ZmFpbHVyZShmbiwgbmFtZSkgewogICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEFzc2VydGlvbkVy
cm9yKSB7CiAgICAgICAgIHJldHVybjsKICAgICAgIH0KLSAgICAgIHRocm93IG5ldyBBc3NlcnRp
b25FcnJvcignRXhwZWN0ZWQgYW4gQXNzZXJ0aW9uRXJyb3IsIGJ1dCcpOworICAgICAgdGhyb3cg
bmV3IEFzc2VydGlvbkVycm9yKCdFeHBlY3RlZCBhbiBBc3NlcnRpb25FcnJvciwgYnV0JyArIGVy
cik7CiAgICAgfQogICAgIHRocm93IG5ldyBBc3NlcnRpb25FcnJvcigKICAgICAgICdFeHBlY3Rl
ZCBhbiBBc3NlcnRpb25FcnJvciwgYnV0IG5vIGVycm9yIHdhcyB0aHJvd24nCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90
ZXN0L3Rlc3RzL3VuaXQvdW5wYWlyZWQtc3Vycm9nYXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L3Vu
cGFpcmVkLXN1cnJvZ2F0ZXMuaHRtbAppbmRleCAxYjE2MmZlNzFkMjgzZDYzZGJkYWFjNWIzYmU4
ODdmNWNkODBkNTNmLi5iMjMyMTExMzI2NTllZWYxYzUwYjA0NmUwYTE1YmMwNmY2YmViZmMzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jl
c291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvdW5wYWlyZWQtc3Vycm9nYXRlcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qv
dGVzdHMvdW5pdC91bnBhaXJlZC1zdXJyb2dhdGVzLmh0bWwKQEAgLTExNCw2ICsxMTQsNyBAQCBw
cm9taXNlX3Rlc3QoKCkgPT4gewogICAgICAgICB0ZXN0KCgpID0+IHt9LCAnVStkODAwVStkODAx
IG11c3QgYmUgc2FuaXRpemVkOiBcdWQ4MDBcdWQ4MDEnKTsKICAgICAgICAgdGVzdCgoKSA9PiB7
fSwgJ1UrZGZmZiBtdXN0IGJlIHNhbml0aXplZDogXHVkZmZmJyk7CiAgICAgICAgIHRlc3QoKCkg
PT4ge30sICdVK2RjMDBVK2Q4MDBVK2RjMDBVK2Q4MDAgbXVzdCBiZSBzYW5pdGl6ZWQ6IFx1ZGMw
MFx1ZDgwMFx1ZGMwMFx1ZDgwMCcpOworICAgICAgICB0ZXN0KCgpID0+IHt9LCAnVStkYmZmVStk
ZmZmVStkZmZmIG11c3QgYmUgc2FuaXRpemVkOiBcdWRiZmZcdWRmZmZcdWRmZmYnKTsKICAgICAg
ICAgdGVzdCgoKSA9PiB7fSwgJ2FmdGVyJyk7CiAgICAgICB9CiAgICAgKS50aGVuKCh7aGFybmVz
cywgdGVzdHN9KSA9PiB7CkBAIC0xMzAsNiArMTMxLDEwIEBAIHByb21pc2VfdGVzdCgoKSA9PiB7
CiAgICAgICAgIHRlc3RzWydVK2RjMDBVK2Q4MDBVK2RjMDBVK2Q4MDAgbXVzdCBiZSBzYW5pdGl6
ZWQ6IFUrZGMwMFx1ZDgwMFx1ZGMwMFUrZDgwMCddLAogICAgICAgICAnUEFTUycKICAgICAgICk7
CisgICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICB0ZXN0c1snVStkYmZmVStkZmZmVStkZmZm
IG11c3QgYmUgc2FuaXRpemVkOiBcdWRiZmZcdWRmZmZVK2RmZmYnXSwKKyAgICAgICAgJ1BBU1Mn
CisgICAgICApOwogICAgICAgYXNzZXJ0X2VxdWFscyh0ZXN0cy5hZnRlciwgJ1BBU1MnKTsKICAg
ICB9KTsKIH0sICdzdWItdGVzdCBuYW1lcyB3aGljaCBpbmNsdWRlIHVucGFpcmVkIHN1cnJvZ2F0
ZXMnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3Rlc3QvdG94LmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdG94LmluaQppbmRleCAyNjZhNmU4OTUy
ZTA0ZDkwMTIwNjQ4MzYxNGJkYTkwOTc5MzNiYjhlLi5hOWMwN2MzZDIyYThhM2UyNjUzNWEwYjFl
ZjZlYWIyOGFmMDRjMjFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3RveC5pbmkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90b3guaW5pCkBA
IC0xLDE1ICsxLDEzIEBACiBbdG94XQotZW52bGlzdCA9IHB5MjcscHkzNixweTM4CitlbnZsaXN0
ID0gcHkzNixweTM3LHB5MzgscHkzOQogc2tpcHNkaXN0PVRydWUKIAogW3Rlc3RlbnZdCiBwYXNz
ZW52PURJU1BMQVkgIyBOZWNlc3NhcnkgZm9yIHRoZSBzcGF3bmVkIEdlY2tvRHJpdmVyIHByb2Nl
c3MgdG8gY29ubmVjdCB0bwogICAgICAgICAgICAgICAgICMgdGhlIGFwcHJvcHJpYXRlIGRpc3Bs
YXkuCisKIGRlcHMgPQotICBodG1sNWxpYgotICBweXRlc3Q+PTIuOSw8NiAjIHBpbm5lZCB0byA8
NiBkdWUgdG8gaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVz
LzI2MTMyCi0gIHB5dmlydHVhbGRpc3BsYXkKLSAgc2l4Ci0gIHJlcXVlc3RzCisgIC1ye3RveGlu
aWRpcn0vLi4vLi4vdG9vbHMvcmVxdWlyZW1lbnRzX3B5dGVzdC50eHQKKyAgLXJ7dG94aW5pZGly
fS9yZXF1aXJlbWVudHMudHh0CiAKIGNvbW1hbmRzID0gcHl0ZXN0IC12diB7cG9zYXJnc30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3czYy1pbXBvcnQubG9nCmluZGV4IGU3YTQ4
NmE5Yjk2YzEwNWViOWE1ZGY1YTA1Zjg5MzlhMTU5OWVhMGQuLjI3YjU0MjdmNGFkMmMwYWY3YmQ4
YWIxOWRkNGZkOWMzOTA5MjZmYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdzNjLWltcG9ydC5sb2cKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dC93M2MtaW1wb3J0LmxvZwpAQCAtMTksNiArMTksNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvaGFy
bmVzcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC9pZGwtaGVscGVyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC9uZXN0ZWQtdGVzdGhhcm5lc3MuanMKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0
L3JlcXVpcmVtZW50cy50eHQKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy90ZXN0L3RveC5pbmkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3ZhcmlhbnRzLmpzCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC93cHRzZXJ2
ZXIucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3Rlc3Qvd3B0c2VydmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC93cHRzZXJ2ZXIucHkKaW5kZXgg
YTUwNGE3NmE0NmUwMGRiOGY5YmI0YTE5ZGM5ZGNhNThlYzFjODMxNC4uYWJlMzBhZDNlZDJhODAy
OWYwZmU2Yjg3NTNkOTgzYzJjODg1ZTM2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC93cHRzZXJ2ZXIucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMv
dGVzdC93cHRzZXJ2ZXIucHkKQEAgLTMsMTcgKzMsMTggQEAgaW1wb3J0IG9zCiBpbXBvcnQgc3Vi
cHJvY2VzcwogaW1wb3J0IHRpbWUKIGltcG9ydCBzeXMKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCB1
cmxsaWIKK2ltcG9ydCB1cmxsaWIKIAogCiBjbGFzcyBXUFRTZXJ2ZXIob2JqZWN0KToKICAgICBk
ZWYgX19pbml0X18oc2VsZiwgd3B0X3Jvb3QpOgorICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dp
bmcuZ2V0TG9nZ2VyKCkKICAgICAgICAgc2VsZi53cHRfcm9vdCA9IHdwdF9yb290CiAKICAgICAg
ICAgIyBUaGlzIGlzIGEgdGVycmlibGUgaGFjayB0byBnZXQgdGhlIGRlZmF1bHQgY29uZmlnIG9m
IHdwdHNlcnZlLgogICAgICAgICBzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKHdwdF9y
b290LCAidG9vbHMiKSkKICAgICAgICAgZnJvbSBzZXJ2ZS5zZXJ2ZSBpbXBvcnQgYnVpbGRfY29u
ZmlnCi0gICAgICAgIHdpdGggYnVpbGRfY29uZmlnKCkgYXMgY29uZmlnOgorICAgICAgICB3aXRo
IGJ1aWxkX2NvbmZpZyhzZWxmLmxvZ2dlcikgYXMgY29uZmlnOgogICAgICAgICAgICAgc2VsZi5o
b3N0ID0gY29uZmlnWyJicm93c2VyX2hvc3QiXQogICAgICAgICAgICAgc2VsZi5odHRwX3BvcnQg
PSBjb25maWdbInBvcnRzIl1bImh0dHAiXVswXQogICAgICAgICAgICAgc2VsZi5odHRwc19wb3J0
ID0gY29uZmlnWyJwb3J0cyJdWyJodHRwcyJdWzBdCkBAIC0yMSwxMiArMjIsMTIgQEAgY2xhc3Mg
V1BUU2VydmVyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuYmFzZV91cmwgPSAnaHR0cDovLyVzOiVz
JyAlIChzZWxmLmhvc3QsIHNlbGYuaHR0cF9wb3J0KQogICAgICAgICBzZWxmLmh0dHBzX2Jhc2Vf
dXJsID0gJ2h0dHBzOi8vJXM6JXMnICUgKHNlbGYuaG9zdCwgc2VsZi5odHRwc19wb3J0KQogCi0g
ICAgZGVmIHN0YXJ0KHNlbGYpOgorICAgIGRlZiBzdGFydChzZWxmLCBzc2xfY29udGV4dCk6CiAg
ICAgICAgIHNlbGYuZGV2bnVsbCA9IG9wZW4ob3MuZGV2bnVsbCwgJ3cnKQogICAgICAgICB3cHRz
ZXJ2ZV9jbWQgPSBbb3MucGF0aC5qb2luKHNlbGYud3B0X3Jvb3QsICd3cHQnKSwgJ3NlcnZlJ10K
ICAgICAgICAgaWYgc3lzLmV4ZWN1dGFibGU6CiAgICAgICAgICAgICB3cHRzZXJ2ZV9jbWRbMDow
XSA9IFtzeXMuZXhlY3V0YWJsZV0KLSAgICAgICAgbG9nZ2luZy5pbmZvKCdFeGVjdXRpbmcgJXMn
ICUgJyAnLmpvaW4od3B0c2VydmVfY21kKSkKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygnRXhl
Y3V0aW5nICVzJyAlICcgJy5qb2luKHdwdHNlcnZlX2NtZCkpCiAgICAgICAgIHNlbGYucHJvYyA9
IHN1YnByb2Nlc3MuUG9wZW4oCiAgICAgICAgICAgICB3cHRzZXJ2ZV9jbWQsCiAgICAgICAgICAg
ICBzdGRlcnI9c2VsZi5kZXZudWxsLApAQCAtNDEsNiArNDIsNyBAQCBjbGFzcyBXUFRTZXJ2ZXIo
b2JqZWN0KToKICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgdHJ5OgogICAgICAg
ICAgICAgICAgIHVybGxpYi5yZXF1ZXN0LnVybG9wZW4oc2VsZi5iYXNlX3VybCwgdGltZW91dD0x
KQorICAgICAgICAgICAgICAgIHVybGxpYi5yZXF1ZXN0LnVybG9wZW4oc2VsZi5odHRwc19iYXNl
X3VybCwgdGltZW91dD0xLCBjb250ZXh0PXNzbF9jb250ZXh0KQogICAgICAgICAgICAgICAgIHJl
dHVybgogICAgICAgICAgICAgZXhjZXB0IHVybGxpYi5lcnJvci5VUkxFcnJvcjoKICAgICAgICAg
ICAgICAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVyLWFjdGlvbnMuanMgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVyLWFj
dGlvbnMuanMKaW5kZXggZjNlNjM4OGU4YWNkMTk5OGQ4OTc1MDE1MGUwNzc5ZGYzMjdhNTQxNy4u
NGRhZmEwYzAxOGIxMDE1NjNlOTk2NDNlYzBjODk2ZmIxNGVkOTg0MCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGRy
aXZlci1hY3Rpb25zLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItYWN0aW9ucy5qcwpAQCAtMjgxLDkgKzI4MSwx
MiBAQAogICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXIgc291cmNl
CiAgICAgICogQHJldHVybnMge0FjdGlvbnN9CiAgICAgICovCi0gICAgcG9pbnRlckRvd246IGZ1
bmN0aW9uKHtidXR0b249dGhpcy5CdXR0b25UeXBlLkxFRlQsIHNvdXJjZU5hbWU9bnVsbH09e30p
IHsKKyAgICBwb2ludGVyRG93bjogZnVuY3Rpb24oe2J1dHRvbj10aGlzLkJ1dHRvblR5cGUuTEVG
VCwgc291cmNlTmFtZT1udWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsIGhl
aWdodCwgcHJlc3N1cmUsIHRhbmdlbnRpYWxQcmVzc3VyZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRpbHRYLCB0aWx0WSwgdHdpc3QsIGFsdGl0dWRlQW5nbGUsIGF6aW11dGhBbmdsZX09
e30pIHsKICAgICAgIGxldCBzb3VyY2UgPSB0aGlzLmdldFNvdXJjZSgicG9pbnRlciIsIHNvdXJj
ZU5hbWUpOwotICAgICAgc291cmNlLnBvaW50ZXJEb3duKHRoaXMsIGJ1dHRvbik7CisgICAgICBz
b3VyY2UucG9pbnRlckRvd24odGhpcywgYnV0dG9uLCB3aWR0aCwgaGVpZ2h0LCBwcmVzc3VyZSwg
dGFuZ2VudGlhbFByZXNzdXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHRpbHRYLCB0aWx0
WSwgdHdpc3QsIGFsdGl0dWRlQW5nbGUsIGF6aW11dGhBbmdsZSk7CiAgICAgICByZXR1cm4gdGhp
czsKICAgICB9LAogCkBAIC0zMTQsOSArMzE3LDEzIEBACiAgICAgICogQHJldHVybnMge0FjdGlv
bnN9CiAgICAgICovCiAgICAgcG9pbnRlck1vdmU6IGZ1bmN0aW9uKHgsIHksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIHtvcmlnaW49InZpZXdwb3J0IiwgZHVyYXRpb24sIHNvdXJjZU5hbWU9
bnVsbH09e30pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAge29yaWdpbj0idmlld3BvcnQi
LCBkdXJhdGlvbiwgc291cmNlTmFtZT1udWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2lkdGgsIGhlaWdodCwgcHJlc3N1cmUsIHRhbmdlbnRpYWxQcmVzc3VyZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRpbHRYLCB0aWx0WSwgdHdpc3QsIGFsdGl0dWRlQW5nbGUsIGF6aW11
dGhBbmdsZX09e30pIHsKICAgICAgIGxldCBzb3VyY2UgPSB0aGlzLmdldFNvdXJjZSgicG9pbnRl
ciIsIHNvdXJjZU5hbWUpOwotICAgICAgc291cmNlLnBvaW50ZXJNb3ZlKHRoaXMsIHgsIHksIGR1
cmF0aW9uLCBvcmlnaW4pOworICAgICAgc291cmNlLnBvaW50ZXJNb3ZlKHRoaXMsIHgsIHksIGR1
cmF0aW9uLCBvcmlnaW4sIHdpZHRoLCBoZWlnaHQsIHByZXNzdXJlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgIHRhbmdlbnRpYWxQcmVzc3VyZSwgdGlsdFgsIHRpbHRZLCB0d2lzdCwgYWx0aXR1
ZGVBbmdsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBhemltdXRoQW5nbGUpOwogICAgICAg
cmV0dXJuIHRoaXM7CiAgICAgfSwKIApAQCAtNDI0LDYgKzQzMSwzOCBAQAogICAgIHRoaXMuYWN0
aW9ucyA9IG5ldyBNYXAoKTsKICAgfQogCisgIGZ1bmN0aW9uIHNldFBvaW50ZXJQcm9wZXJ0aWVz
KGFjdGlvbiwgd2lkdGgsIGhlaWdodCwgcHJlc3N1cmUsIHRhbmdlbnRpYWxQcmVzc3VyZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlsdFgsIHRpbHRZLCB0d2lzdCwgYWx0aXR1
ZGVBbmdsZSwgYXppbXV0aEFuZ2xlKSB7CisgICAgaWYgKHdpZHRoKSB7CisgICAgICBhY3Rpb24u
d2lkdGggPSB3aWR0aDsKKyAgICB9CisgICAgaWYgKGhlaWdodCkgeworICAgICAgYWN0aW9uLmhl
aWdodCA9IGhlaWdodDsKKyAgICB9CisgICAgaWYgKHByZXNzdXJlKSB7CisgICAgICBhY3Rpb24u
cHJlc3N1cmUgPSBwcmVzc3VyZTsKKyAgICB9CisgICAgaWYgKHRhbmdlbnRpYWxQcmVzc3VyZSkg
eworICAgICAgYWN0aW9uLnRhbmdlbnRpYWxQcmVzc3VyZSA9IHRhbmdlbnRpYWxQcmVzc3VyZTsK
KyAgICB9CisgICAgaWYgKHRpbHRYKSB7CisgICAgICBhY3Rpb24udGlsdFggPSB0aWx0WDsKKyAg
ICB9CisgICAgaWYgKHRpbHRZKSB7CisgICAgICBhY3Rpb24udGlsdFkgPSB0aWx0WTsKKyAgICB9
CisgICAgaWYgKHR3aXN0KSB7CisgICAgICBhY3Rpb24udHdpc3QgPSB0d2lzdDsKKyAgICB9Cisg
ICAgaWYgKGFsdGl0dWRlQW5nbGUpIHsKKyAgICAgIGFjdGlvbi5hbHRpdHVkZUFuZ2xlID0gYWx0
aXR1ZGVBbmdsZTsKKyAgICB9CisgICAgaWYgKGF6aW11dGhBbmdsZSkgeworICAgICAgYWN0aW9u
LmF6aW11dGhBbmdsZSA9IGF6aW11dGhBbmdsZTsKKyAgICB9CisgICAgcmV0dXJuIGFjdGlvbjsK
KyAgfQorCiAgIFBvaW50ZXJTb3VyY2UucHJvdG90eXBlID0gewogICAgIHNlcmlhbGl6ZTogZnVu
Y3Rpb24odGlja0NvdW50KSB7CiAgICAgICBpZiAoIXRoaXMuYWN0aW9ucy5zaXplKSB7CkBAIC00
NDEsMTIgKzQ4MCwxNiBAQAogICAgICAgcmV0dXJuIGRhdGE7CiAgICAgfSwKIAotICAgIHBvaW50
ZXJEb3duOiBmdW5jdGlvbihhY3Rpb25zLCBidXR0b24pIHsKKyAgICBwb2ludGVyRG93bjogZnVu
Y3Rpb24oYWN0aW9ucywgYnV0dG9uLCB3aWR0aCwgaGVpZ2h0LCBwcmVzc3VyZSwgdGFuZ2VudGlh
bFByZXNzdXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICB0aWx0WCwgdGlsdFksIHR3aXN0
LCBhbHRpdHVkZUFuZ2xlLCBhemltdXRoQW5nbGUpIHsKICAgICAgIGxldCB0aWNrID0gYWN0aW9u
cy50aWNrSWR4OwogICAgICAgaWYgKHRoaXMuYWN0aW9ucy5oYXModGljaykpIHsKICAgICAgICAg
dGljayA9IGFjdGlvbnMuYWRkVGljaygpLnRpY2tJZHg7CiAgICAgICB9Ci0gICAgICB0aGlzLmFj
dGlvbnMuc2V0KHRpY2ssIHt0eXBlOiAicG9pbnRlckRvd24iLCBidXR0b259KTsKKyAgICAgIGxl
dCBhY3Rpb25Qcm9wZXJ0aWVzID0gc2V0UG9pbnRlclByb3BlcnRpZXMoe3R5cGU6ICJwb2ludGVy
RG93biIsIGJ1dHRvbn0sIHdpZHRoLCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNzdXJlLCB0YW5nZW50aWFsUHJlc3N1cmUsIHRp
bHRYLCB0aWx0WSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdHdpc3QsIGFsdGl0dWRlQW5nbGUsIGF6aW11dGhBbmdsZSk7CisgICAgICB0aGlzLmFj
dGlvbnMuc2V0KHRpY2ssIGFjdGlvblByb3BlcnRpZXMpOwogICAgIH0sCiAKICAgICBwb2ludGVy
VXA6IGZ1bmN0aW9uKGFjdGlvbnMsIGJ1dHRvbikgewpAQCAtNDU3LDE1ICs1MDAsMjAgQEAKICAg
ICAgIHRoaXMuYWN0aW9ucy5zZXQodGljaywge3R5cGU6ICJwb2ludGVyVXAiLCBidXR0b259KTsK
ICAgICB9LAogCi0gICAgcG9pbnRlck1vdmU6IGZ1bmN0aW9uKGFjdGlvbnMsIHgsIHksIGR1cmF0
aW9uLCBvcmlnaW4pIHsKKyAgICBwb2ludGVyTW92ZTogZnVuY3Rpb24oYWN0aW9ucywgeCwgeSwg
ZHVyYXRpb24sIG9yaWdpbiwgd2lkdGgsIGhlaWdodCwgcHJlc3N1cmUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRhbmdlbnRpYWxQcmVzc3VyZSwgdGlsdFgsIHRpbHRZLCB0d2lzdCwgYWx0
aXR1ZGVBbmdsZSwgYXppbXV0aEFuZ2xlKSB7CiAgICAgICBsZXQgdGljayA9IGFjdGlvbnMudGlj
a0lkeDsKICAgICAgIGlmICh0aGlzLmFjdGlvbnMuaGFzKHRpY2spKSB7CiAgICAgICAgIHRpY2sg
PSBhY3Rpb25zLmFkZFRpY2soKS50aWNrSWR4OwogICAgICAgfQotICAgICAgdGhpcy5hY3Rpb25z
LnNldCh0aWNrLCB7dHlwZTogInBvaW50ZXJNb3ZlIiwgeCwgeSwgb3JpZ2lufSk7CisgICAgICBs
ZXQgbW92ZUFjdGlvbiA9IHt0eXBlOiAicG9pbnRlck1vdmUiLCB4LCB5LCBvcmlnaW59OwogICAg
ICAgaWYgKGR1cmF0aW9uKSB7Ci0gICAgICAgIHRoaXMuYWN0aW9ucy5nZXQodGljaykuZHVyYXRp
b24gPSBkdXJhdGlvbjsKKyAgICAgICAgbW92ZUFjdGlvbi5kdXJhdGlvbiA9IGR1cmF0aW9uOwog
ICAgICAgfQorICAgICAgbGV0IGFjdGlvblByb3BlcnRpZXMgPSBzZXRQb2ludGVyUHJvcGVydGll
cyhtb3ZlQWN0aW9uLCB3aWR0aCwgaGVpZ2h0LCBwcmVzc3VyZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFuZ2VudGlhbFByZXNzdXJlLCB0aWx0
WCwgdGlsdFksIHR3aXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhbHRpdHVkZUFuZ2xlLCBhemltdXRoQW5nbGUpOworICAgICAgdGhpcy5hY3Rp
b25zLnNldCh0aWNrLCBhY3Rpb25Qcm9wZXJ0aWVzKTsKICAgICB9LAogCiAgICAgYWRkUGF1c2U6
IGZ1bmN0aW9uKGFjdGlvbnMsIGR1cmF0aW9uKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dGRyaXZlci5qcwppbmRleCBjNTNiMjQxMzZjMDkxZjA1ZTRmZmJlMjg2ZDA2MGFiYTBmYTY2Y2Rm
Li5mMmRmMjZjZGExY2NkZjZkNmI1YzE3YWRmNjY0YjA3ZjJiNmNkN2VhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0
ZHJpdmVyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMKQEAgLTE0Niw2ICsxNDYsMjQgQEAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk6IGNlbnRlclBv
aW50WzFdfSk7CiAgICAgICAgIH0sCiAKKyAgICAgICAgLyoqCisgICAgICAgICAqIERlbGV0ZXMg
YWxsIGNvb2tpZXMuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgbWF0Y2hlcyB0aGUgYmVo
YXZpb3VyIG9mIHRoZSB7QGxpbmsKKyAgICAgICAgICogaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dl
YmRyaXZlci8jZGVsZXRlLWFsbC1jb29raWVzfFdlYkRyaXZlcgorICAgICAgICAgKiBEZWxldGUg
QWxsIENvb2tpZXMgY29tbWFuZH0uCisgICAgICAgICAqCisgICAgICAgICAqIEBwYXJhbSB7V2lu
ZG93UHJveHl9IGNvbnRleHQgLSBCcm93c2luZyBjb250ZXh0IGluIHdoaWNoCisgICAgICAgICAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBydW4gdGhlIGNhbGwsIG9yIG51bGwg
Zm9yIHRoZSBjdXJyZW50CisgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBicm93c2luZyBjb250ZXh0LgorICAgICAgICAgKgorICAgICAgICAgKiBAcmV0dXJucyB7UHJv
bWlzZX0gZnVsZmlsbGVkIGFmdGVyIGNvb2tpZXMgYXJlIGRlbGV0ZWQsIG9yIHJlamVjdGVkIGlu
CisgICAgICAgICAqICAgICAgICAgICAgICAgICAgICB0aGUgY2FzZXMgdGhlIFdlYkRyaXZlciBj
b21tYW5kIGVycm9ycworICAgICAgICAgKi8KKyAgICAgICAgZGVsZXRlX2FsbF9jb29raWVzOiBm
dW5jdGlvbihjb250ZXh0PW51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiB3aW5kb3cudGVzdF9k
cml2ZXJfaW50ZXJuYWwuZGVsZXRlX2FsbF9jb29raWVzKGNvbnRleHQpOworICAgICAgICB9LAor
CiAgICAgICAgIC8qKgogICAgICAgICAgKiBTZW5kIGtleXMgdG8gYW4gZWxlbWVudAogICAgICAg
ICAgKgpAQCAtMjU5LDcgKzI3Nyw3IEBACiAgICAgICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBm
dWxmaWxsZWQgYWZ0ZXIgdGhlIHBlcm1pc3Npb24gaXMgc2V0LCBvciByZWplY3RlZCBpZiBzZXR0
aW5nIHRoZQogICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgcGVybWlzc2lvbiBmYWlscwog
ICAgICAgICAgKi8KLSAgICAgICAgc2V0X3Blcm1pc3Npb246IGZ1bmN0aW9uKGRlc2NyaXB0b3Is
IHN0YXRlLCBvbmVfcmVhbG0sIGNvbnRleHQ9bnVsbCkgeworICAgICAgICBzZXRfcGVybWlzc2lv
bjogZnVuY3Rpb24oZGVzY3JpcHRvciwgc3RhdGUsIG9uZV9yZWFsbT1mYWxzZSwgY29udGV4dD1u
dWxsKSB7CiAgICAgICAgICAgICBsZXQgcGVybWlzc2lvbl9wYXJhbXMgPSB7CiAgICAgICAgICAg
ICAgIGRlc2NyaXB0b3IsCiAgICAgICAgICAgICAgIHN0YXRlLApAQCAtNDU4LDYgKzQ3NiwxMCBA
QAogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0sCiAKKyAgICAgICAgZGVsZXRlX2FsbF9jb29r
aWVzOiBmdW5jdGlvbihjb250ZXh0PW51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNl
LnJlamVjdChuZXcgRXJyb3IoInVuaW1wbGVtZW50ZWQiKSk7CisgICAgICAgIH0sCisKICAgICAg
ICAgc2VuZF9rZXlzOiBmdW5jdGlvbihlbGVtZW50LCBrZXlzKSB7CiAgICAgICAgICAgICBpZiAo
dGhpcy5pbl9hdXRvbWF0aW9uKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVq
ZWN0KG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJykpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcwppbmRleCBkNTBlMDk0MTE3ZGY1NmRiNDlkNzVmMTYyMGM0YWJhNTEz
MTlmYzNjLi5mODViMTlmZDliZDkwYzM0NzZkZWRjYmU1ODI1YjgyZmI0MGRlODJjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcwpAQCAtMSwyMSArMSwxMSBAQAogLypn
bG9iYWwgc2VsZiovCiAvKmpzaGludCBsYXRlZGVmOiBub2Z1bmMqLwotLyoKLURpc3RyaWJ1dGVk
IHVuZGVyIGJvdGggdGhlIFczQyBUZXN0IFN1aXRlIExpY2Vuc2UgWzFdIGFuZCB0aGUgVzNDCi0z
LWNsYXVzZSBCU0QgTGljZW5zZSBbMl0uIFRvIGNvbnRyaWJ1dGUgdG8gYSBXM0MgVGVzdCBTdWl0
ZSwgc2VlIHRoZQotcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCi0KLVsxXSBo
dHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDgvMDQtdGVzdHN1aXRlLWxpY2Vu
c2UKLVsyXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDgvMDMtYnNkLWxp
Y2Vuc2UKLVszXSBodHRwOi8vd3d3LnczLm9yZy8yMDA0LzEwLzI3LXRlc3RjYXNlcwotKi8KIAog
LyogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly93ZWItcGxhdGZvcm0tdGVzdHMub3JnL3dyaXRpbmct
dGVzdHMvdGVzdGhhcm5lc3MtYXBpLmh0bWwKICAqICguLi9kb2NzL193cml0aW5nLXRlc3RzL3Rl
c3RoYXJuZXNzLWFwaS5tZCkgKi8KIAogKGZ1bmN0aW9uIChnbG9iYWxfc2NvcGUpCiB7Ci0gICAg
dmFyIGRlYnVnID0gZmFsc2U7CiAgICAgLy8gZGVmYXVsdCB0aW1lb3V0IGlzIDEwIHNlY29uZHMs
IHRlc3QgY2FuIG92ZXJyaWRlIGlmIG5lZWRlZAogICAgIHZhciBzZXR0aW5ncyA9IHsKICAgICAg
ICAgb3V0cHV0OnRydWUsCkBAIC0yNCw3ICsxNCw4IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRp
b24gZm9ybXMgWzNdLgogICAgICAgICAgICAgImxvbmciOjYwMDAwCiAgICAgICAgIH0sCiAgICAg
ICAgIHRlc3RfdGltZW91dDpudWxsLAotICAgICAgICBtZXNzYWdlX2V2ZW50czogWyJzdGFydCIs
ICJ0ZXN0X3N0YXRlIiwgInJlc3VsdCIsICJjb21wbGV0aW9uIl0KKyAgICAgICAgbWVzc2FnZV9l
dmVudHM6IFsic3RhcnQiLCAidGVzdF9zdGF0ZSIsICJyZXN1bHQiLCAiY29tcGxldGlvbiJdLAor
ICAgICAgICBkZWJ1ZzogZmFsc2UsCiAgICAgfTsKIAogICAgIHZhciB4aHRtbF9ucyA9ICJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIjsKQEAgLTg3LDE0ICs3OCwxNSBAQCBwb2xpY2llcyBh
bmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3Q6IHRlc3Quc3RydWN0dXJlZF9jbG9uZSgpfSk7CiAgICAgICAg
ICAgICAgICAgICAgICB9XSwKICAgICAgICAgICAgIGNvbXBsZXRpb246IFthZGRfY29tcGxldGlv
bl9jYWxsYmFjaywgcmVtb3ZlX2NvbXBsZXRpb25fY2FsbGJhY2ssCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgZnVuY3Rpb24gKHRlc3RzLCBoYXJuZXNzX3N0YXR1cykgeworICAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uICh0ZXN0cywgaGFybmVzc19zdGF0dXMsIGFzc2VydHMpIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNsb25lZF90ZXN0cyA9IG1hcCh0ZXN0
cywgZnVuY3Rpb24odGVzdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHRlc3Quc3RydWN0dXJlZF9jbG9uZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc19vYmouX2Rpc3BhdGNoKCJj
b21wbGV0aW9uX2NhbGxiYWNrIiwgW3Rlc3RzLCBoYXJuZXNzX3N0YXR1c10sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dHlwZTogImNvbXBsZXRlIiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0czog
Y2xvbmVkX3Rlc3RzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXR1czogaGFybmVzc19zdGF0dXMuc3RydWN0dXJlZF9jbG9uZSgpfSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBoYXJu
ZXNzX3N0YXR1cy5zdHJ1Y3R1cmVkX2Nsb25lKCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0czogYXNzZXJ0cy5tYXAoYXNzZXJ0ID0+IGFz
c2VydC5zdHJ1Y3R1cmVkX2Nsb25lKCkpfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgfV0K
ICAgICAgICAgfQogCkBAIC0xMzEsMTEgKzEyMyw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRp
b24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc19zZWxlY3Rvcikg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHdbc2VsZWN0b3JdLmFwcGx5KHVuZGVmaW5lZCwgY2FsbGJhY2tfYXJncyk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoZGVidWcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRocm93IGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSBjYXRjaCAoZSkge30KICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBpZiAoc3VwcG9ydHNfcG9zdF9tZXNzYWdl
KHcpICYmIHcgIT09IHNlbGYpIHsKQEAgLTE5Miw4ICsxODAsOCBAQCBwb2xpY2llcyBhbmQgY29u
dHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgIHRoaXNfb2JqLm91dHB1dF9oYW5kbGVy
LnNob3dfc3RhdHVzKCk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIGFkZF9jb21wbGV0aW9uX2Nh
bGxiYWNrKGZ1bmN0aW9uICh0ZXN0cywgaGFybmVzc19zdGF0dXMpIHsKLSAgICAgICAgICAgIHRo
aXNfb2JqLm91dHB1dF9oYW5kbGVyLnNob3dfcmVzdWx0cyh0ZXN0cywgaGFybmVzc19zdGF0dXMp
OworICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbiAodGVzdHMsIGhhcm5l
c3Nfc3RhdHVzLCBhc3NlcnRzX3J1bikgeworICAgICAgICAgICAgdGhpc19vYmoub3V0cHV0X2hh
bmRsZXIuc2hvd19yZXN1bHRzKHRlc3RzLCBoYXJuZXNzX3N0YXR1cywgYXNzZXJ0c19ydW4pOwog
ICAgICAgICB9KTsKICAgICAgICAgdGhpcy5zZXR1cF9tZXNzYWdlcyhzZXR0aW5ncy5tZXNzYWdl
X2V2ZW50cyk7CiAgICAgfTsKQEAgLTMxNCwxNCArMzAyLDE1IEBAIHBvbGljaWVzIGFuZCBjb250
cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAg
ICAgICB9KTsKICAgICAgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soCi0gICAgICAgICAgICAg
ICAgZnVuY3Rpb24odGVzdHMsIGhhcm5lc3Nfc3RhdHVzKSB7CisgICAgICAgICAgICAgICAgZnVu
Y3Rpb24odGVzdHMsIGhhcm5lc3Nfc3RhdHVzLCBhc3NlcnRzKSB7CiAgICAgICAgICAgICAgICAg
ICAgIHRoaXNfb2JqLl9kaXNwYXRjaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAi
Y29tcGxldGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHM6IG1hcCh0ZXN0cywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbih0ZXN0KSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZXN0LnN0cnVjdHVyZWRfY2xvbmUoKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1
czogaGFybmVzc19zdGF0dXMuc3RydWN0dXJlZF9jbG9uZSgpCisgICAgICAgICAgICAgICAgICAg
ICAgICBzdGF0dXM6IGhhcm5lc3Nfc3RhdHVzLnN0cnVjdHVyZWRfY2xvbmUoKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydHM6IGFzc2VydHMubWFwKGFzc2VydCA9PiBhc3NlcnQuc3Ry
dWN0dXJlZF9jbG9uZSgpKSwKICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAg
ICAgfSk7CiAgICAgfTsKQEAgLTUwMCwxMSArNDg5LDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1
dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICByZXR1cm4gbmV3IERlZGljYXRlZFdvcmtlclRl
c3RFbnZpcm9ubWVudCgpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCEoJ2xvY2F0aW9uJyBp
biBnbG9iYWxfc2NvcGUpKSB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IFNoZWxsVGVzdEVudmly
b25tZW50KCk7Ci0gICAgICAgIH0KLQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9y
dGVkIHRlc3QgZW52aXJvbm1lbnQiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBTaGVsbFRlc3RFbnZp
cm9ubWVudCgpOwogICAgIH0KIAogICAgIHZhciB0ZXN0X2Vudmlyb25tZW50ID0gY3JlYXRlX3Rl
c3RfZW52aXJvbm1lbnQoKTsKQEAgLTExODcsMTkgKzExNzIsNTMgQEAgcG9saWNpZXMgYW5kIGNv
bnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICogQXNzZXJ0aW9ucwogICAgICAqLwogCisgICAg
ZnVuY3Rpb24gZXhwb3NlX2Fzc2VydChmLCBuYW1lKSB7CisgICAgICAgIGZ1bmN0aW9uIGFzc2Vy
dF93cmFwcGVyKC4uLmFyZ3MpIHsKKyAgICAgICAgICAgIGxldCBzdGF0dXMgPSBUZXN0LnN0YXR1
c2VzLlRJTUVPVVQ7CisgICAgICAgICAgICBsZXQgc3RhY2sgPSBudWxsOworICAgICAgICAgICAg
dHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAoc2V0dGluZ3MuZGVidWcpIHsKKyAgICAgICAgICAg
ICAgICAgICAgY29uc29sZS5kZWJ1ZygiQVNTRVJUIiwgbmFtZSwgdGVzdHMuY3VycmVudF90ZXN0
ICYmIHRlc3RzLmN1cnJlbnRfdGVzdC5uYW1lLCBhcmdzKTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgaWYgKHRlc3RzLm91dHB1dCkgeworICAgICAgICAgICAgICAgICAgICB0
ZXN0cy5zZXRfYXNzZXJ0KG5hbWUsIGFyZ3MpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBjb25zdCBydiA9IGYuYXBwbHkodW5kZWZpbmVkLCBhcmdzKTsKKyAgICAgICAgICAg
ICAgICBzdGF0dXMgPSBUZXN0LnN0YXR1c2VzLlBBU1M7CisgICAgICAgICAgICAgICAgcmV0dXJu
IHJ2OworICAgICAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICAgICAgaWYgKGUgaW5z
dGFuY2VvZiBBc3NlcnRpb25FcnJvcikgeworICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBU
ZXN0LnN0YXR1c2VzLkZBSUw7CisgICAgICAgICAgICAgICAgICAgIHN0YWNrID0gZS5zdGFjazsK
KyAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0g
VGVzdC5zdGF0dXNlcy5FUlJPUjsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IHRocm93IGU7CisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgICAgIGlmICh0
ZXN0cy5vdXRwdXQgJiYgIXN0YWNrKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YWNrID0gZ2V0
X3N0YWNrKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0ZXN0cy5v
dXRwdXQpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdHMuc2V0X2Fzc2VydF9zdGF0dXMoc3Rh
dHVzLCBzdGFjayk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgICAgIGV4cG9zZShhc3NlcnRfd3JhcHBlciwgbmFtZSk7CisgICAgfQorCiAgICAgZnVu
Y3Rpb24gYXNzZXJ0X3RydWUoYWN0dWFsLCBkZXNjcmlwdGlvbikKICAgICB7CiAgICAgICAgIGFz
c2VydChhY3R1YWwgPT09IHRydWUsICJhc3NlcnRfdHJ1ZSIsIGRlc2NyaXB0aW9uLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgdHJ1ZSBnb3QgJHthY3R1YWx9Iiwg
e2FjdHVhbDphY3R1YWx9KTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF90cnVlLCAiYXNzZXJ0
X3RydWUiKTsKKyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF90cnVlLCAiYXNzZXJ0X3RydWUiKTsK
IAogICAgIGZ1bmN0aW9uIGFzc2VydF9mYWxzZShhY3R1YWwsIGRlc2NyaXB0aW9uKQogICAgIHsK
ICAgICAgICAgYXNzZXJ0KGFjdHVhbCA9PT0gZmFsc2UsICJhc3NlcnRfZmFsc2UiLCBkZXNjcmlw
dGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCBmYWxzZSBn
b3QgJHthY3R1YWx9Iiwge2FjdHVhbDphY3R1YWx9KTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2Vy
dF9mYWxzZSwgImFzc2VydF9mYWxzZSIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X2ZhbHNl
LCAiYXNzZXJ0X2ZhbHNlIik7CiAKICAgICBmdW5jdGlvbiBzYW1lX3ZhbHVlKHgsIHkpIHsKICAg
ICAgICAgaWYgKHkgIT09IHkpIHsKQEAgLTEyMjksNyArMTI0OCw3IEBAIHBvbGljaWVzIGFuZCBj
b250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImV4cGVjdGVkICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9IiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtleHBlY3RlZDpleHBl
Y3RlZCwgYWN0dWFsOmFjdHVhbH0pOwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2VxdWFscywg
ImFzc2VydF9lcXVhbHMiKTsKKyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF9lcXVhbHMsICJhc3Nl
cnRfZXF1YWxzIik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfbm90X2VxdWFscyhhY3R1YWwsIGV4
cGVjdGVkLCBkZXNjcmlwdGlvbikKICAgICB7CkBAIC0xMjQxLDcgKzEyNjAsNyBAQCBwb2xpY2ll
cyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZ290IGRpc2FsbG93ZWQgdmFsdWUgJHthY3R1YWx9IiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YWN0dWFsOmFjdHVh
bH0pOwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X25vdF9lcXVhbHMsICJhc3NlcnRfbm90X2Vx
dWFscyIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X25vdF9lcXVhbHMsICJhc3NlcnRfbm90
X2VxdWFscyIpOwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X2luX2FycmF5KGFjdHVhbCwgZXhwZWN0
ZWQsIGRlc2NyaXB0aW9uKQogICAgIHsKQEAgLTEyNDksNyArMTI2OCw3IEBAIHBvbGljaWVzIGFu
ZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAidmFsdWUgJHthY3R1YWx9IG5vdCBpbiBhcnJheSAke2V4cGVjdGVk
fSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthY3R1
YWw6YWN0dWFsLCBleHBlY3RlZDpleHBlY3RlZH0pOwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0
X2luX2FycmF5LCAiYXNzZXJ0X2luX2FycmF5Iik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRf
aW5fYXJyYXksICJhc3NlcnRfaW5fYXJyYXkiKTsKIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gd2Fz
IGRlcHJlY2F0ZWQgaW4gSnVseSBvZiAyMDE1LgogICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMjAzMwpAQCAtMTI4Nyw3ICsxMzA2LDcg
QEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICB9CiAgICAg
ICAgICBjaGVja19lcXVhbChhY3R1YWwsIGV4cGVjdGVkLCBbXSk7CiAgICAgfQotICAgIGV4cG9z
ZShhc3NlcnRfb2JqZWN0X2VxdWFscywgImFzc2VydF9vYmplY3RfZXF1YWxzIik7CisgICAgZXhw
b3NlX2Fzc2VydChhc3NlcnRfb2JqZWN0X2VxdWFscywgImFzc2VydF9vYmplY3RfZXF1YWxzIik7
CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfYXJyYXlfZXF1YWxzKGFjdHVhbCwgZXhwZWN0ZWQsIGRl
c2NyaXB0aW9uKQogICAgIHsKQEAgLTEzNDQsNyArMTM2Myw3IEBAIHBvbGljaWVzIGFuZCBjb250
cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgICBhcnJheUV4cGVjdGVkOnNo
b3J0ZW5fYXJyYXkoZXhwZWN0ZWQsIGkpLCBhcnJheUFjdHVhbDpzaG9ydGVuX2FycmF5KGFjdHVh
bCwgaSl9KTsKICAgICAgICAgfQogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2FycmF5X2VxdWFs
cywgImFzc2VydF9hcnJheV9lcXVhbHMiKTsKKyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF9hcnJh
eV9lcXVhbHMsICJhc3NlcnRfYXJyYXlfZXF1YWxzIik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRf
YXJyYXlfYXBwcm94X2VxdWFscyhhY3R1YWwsIGV4cGVjdGVkLCBlcHNpbG9uLCBkZXNjcmlwdGlv
bikKICAgICB7CkBAIC0xMzcyLDcgKzEzOTEsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9u
IGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICAgICB7aTppLCBleHBlY3RlZDpleHBlY3RlZFtp
XSwgYWN0dWFsOmFjdHVhbFtpXSwgZXBzaWxvbjplcHNpbG9ufSk7CiAgICAgICAgIH0KICAgICB9
Ci0gICAgZXhwb3NlKGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzLCAiYXNzZXJ0X2FycmF5X2Fw
cHJveF9lcXVhbHMiKTsKKyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF9hcnJheV9hcHByb3hfZXF1
YWxzLCAiYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMiKTsKIAogICAgIGZ1bmN0aW9uIGFzc2Vy
dF9hcHByb3hfZXF1YWxzKGFjdHVhbCwgZXhwZWN0ZWQsIGVwc2lsb24sIGRlc2NyaXB0aW9uKQog
ICAgIHsKQEAgLTEzOTUsNyArMTQxNCw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9y
bXMgWzNdLgogICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhhY3R1YWwsIGV4cGVjdGVkKTsKICAg
ICAgICAgfQogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2FwcHJveF9lcXVhbHMsICJhc3NlcnRf
YXBwcm94X2VxdWFscyIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X2FwcHJveF9lcXVhbHMs
ICJhc3NlcnRfYXBwcm94X2VxdWFscyIpOwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X2xlc3NfdGhh
bihhY3R1YWwsIGV4cGVjdGVkLCBkZXNjcmlwdGlvbikKICAgICB7CkBAIC0xNDEyLDcgKzE0MzEs
NyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAg
ICJleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gJHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVh
bH0iLAogICAgICAgICAgICAgICAge2V4cGVjdGVkOmV4cGVjdGVkLCBhY3R1YWw6YWN0dWFsfSk7
CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfbGVzc190aGFuLCAiYXNzZXJ0X2xlc3NfdGhhbiIp
OworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X2xlc3NfdGhhbiwgImFzc2VydF9sZXNzX3RoYW4i
KTsKIAogICAgIGZ1bmN0aW9uIGFzc2VydF9ncmVhdGVyX3RoYW4oYWN0dWFsLCBleHBlY3RlZCwg
ZGVzY3JpcHRpb24pCiAgICAgewpAQCAtMTQyOSw3ICsxNDQ4LDcgQEAgcG9saWNpZXMgYW5kIGNv
bnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgYSBudW1iZXIg
Z3JlYXRlciB0aGFuICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9IiwKICAgICAgICAgICAg
ICAgIHtleHBlY3RlZDpleHBlY3RlZCwgYWN0dWFsOmFjdHVhbH0pOwogICAgIH0KLSAgICBleHBv
c2UoYXNzZXJ0X2dyZWF0ZXJfdGhhbiwgImFzc2VydF9ncmVhdGVyX3RoYW4iKTsKKyAgICBleHBv
c2VfYXNzZXJ0KGFzc2VydF9ncmVhdGVyX3RoYW4sICJhc3NlcnRfZ3JlYXRlcl90aGFuIik7CiAK
ICAgICBmdW5jdGlvbiBhc3NlcnRfYmV0d2Vlbl9leGNsdXNpdmUoYWN0dWFsLCBsb3dlciwgdXBw
ZXIsIGRlc2NyaXB0aW9uKQogICAgIHsKQEAgLTE0NDcsNyArMTQ2Niw3IEBAIHBvbGljaWVzIGFu
ZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgImFuZCBsZXNzIHRoYW4g
JHt1cHBlcn0gYnV0IGdvdCAke2FjdHVhbH0iLAogICAgICAgICAgICAgICAge2xvd2VyOmxvd2Vy
LCB1cHBlcjp1cHBlciwgYWN0dWFsOmFjdHVhbH0pOwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0
X2JldHdlZW5fZXhjbHVzaXZlLCAiYXNzZXJ0X2JldHdlZW5fZXhjbHVzaXZlIik7CisgICAgZXhw
b3NlX2Fzc2VydChhc3NlcnRfYmV0d2Vlbl9leGNsdXNpdmUsICJhc3NlcnRfYmV0d2Vlbl9leGNs
dXNpdmUiKTsKIAogICAgIGZ1bmN0aW9uIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoYWN0dWFsLCBl
eHBlY3RlZCwgZGVzY3JpcHRpb24pCiAgICAgewpAQCAtMTQ2NCw3ICsxNDgzLDcgQEAgcG9saWNp
ZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAgICAiZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1
YWx9IiwKICAgICAgICAgICAgICAgIHtleHBlY3RlZDpleHBlY3RlZCwgYWN0dWFsOmFjdHVhbH0p
OwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbCwgImFzc2VydF9sZXNz
X3RoYW5fZXF1YWwiKTsKKyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF9sZXNzX3RoYW5fZXF1YWws
ICJhc3NlcnRfbGVzc190aGFuX2VxdWFsIik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfZ3JlYXRl
cl90aGFuX2VxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKQogICAgIHsKQEAgLTE0
ODEsNyArMTUwMCw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAg
ICAgICAgICAgICAgImV4cGVjdGVkIGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAk
e2V4cGVjdGVkfSBidXQgZ290ICR7YWN0dWFsfSIsCiAgICAgICAgICAgICAgICB7ZXhwZWN0ZWQ6
ZXhwZWN0ZWQsIGFjdHVhbDphY3R1YWx9KTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF9ncmVh
dGVyX3RoYW5fZXF1YWwsICJhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsIik7CisgICAgZXhwb3Nl
X2Fzc2VydChhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsLCAiYXNzZXJ0X2dyZWF0ZXJfdGhhbl9l
cXVhbCIpOwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X2JldHdlZW5faW5jbHVzaXZlKGFjdHVhbCwg
bG93ZXIsIHVwcGVyLCBkZXNjcmlwdGlvbikKICAgICB7CkBAIC0xNDk5LDcgKzE1MTgsNyBAQCBw
b2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICJhbmQg
bGVzcyB0aGFuIG9yIGVxdWFsIHRvICR7dXBwZXJ9IGJ1dCBnb3QgJHthY3R1YWx9IiwKICAgICAg
ICAgICAgICAgIHtsb3dlcjpsb3dlciwgdXBwZXI6dXBwZXIsIGFjdHVhbDphY3R1YWx9KTsKICAg
ICB9Ci0gICAgZXhwb3NlKGFzc2VydF9iZXR3ZWVuX2luY2x1c2l2ZSwgImFzc2VydF9iZXR3ZWVu
X2luY2x1c2l2ZSIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X2JldHdlZW5faW5jbHVzaXZl
LCAiYXNzZXJ0X2JldHdlZW5faW5jbHVzaXZlIik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfcmVn
ZXhwX21hdGNoKGFjdHVhbCwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKSB7CiAgICAgICAgIC8qCkBA
IC0xNTEwLDcgKzE1MjksNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4K
ICAgICAgICAgICAgICAgICJleHBlY3RlZCAke2V4cGVjdGVkfSBidXQgZ290ICR7YWN0dWFsfSIs
CiAgICAgICAgICAgICAgICB7ZXhwZWN0ZWQ6ZXhwZWN0ZWQsIGFjdHVhbDphY3R1YWx9KTsKICAg
ICB9Ci0gICAgZXhwb3NlKGFzc2VydF9yZWdleHBfbWF0Y2gsICJhc3NlcnRfcmVnZXhwX21hdGNo
Iik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfcmVnZXhwX21hdGNoLCAiYXNzZXJ0X3JlZ2V4
cF9tYXRjaCIpOwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X2NsYXNzX3N0cmluZyhvYmplY3QsIGNs
YXNzX3N0cmluZywgZGVzY3JpcHRpb24pIHsKICAgICAgICAgdmFyIGFjdHVhbCA9IHt9LnRvU3Ry
aW5nLmNhbGwob2JqZWN0KTsKQEAgLTE1MTksMjcgKzE1MzgsMjcgQEAgcG9saWNpZXMgYW5kIGNv
bnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiZXhwZWN0ZWQgJHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH0iLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2V4cGVjdGVkOmV4cGVj
dGVkLCBhY3R1YWw6YWN0dWFsfSk7CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfY2xhc3Nfc3Ry
aW5nLCAiYXNzZXJ0X2NsYXNzX3N0cmluZyIpOwotCisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRf
Y2xhc3Nfc3RyaW5nLCAiYXNzZXJ0X2NsYXNzX3N0cmluZyIpOwogCiAgICAgZnVuY3Rpb24gYXNz
ZXJ0X293bl9wcm9wZXJ0eShvYmplY3QsIHByb3BlcnR5X25hbWUsIGRlc2NyaXB0aW9uKSB7CiAg
ICAgICAgIGFzc2VydChvYmplY3QuaGFzT3duUHJvcGVydHkocHJvcGVydHlfbmFtZSksCiAgICAg
ICAgICAgICAgICAiYXNzZXJ0X293bl9wcm9wZXJ0eSIsIGRlc2NyaXB0aW9uLAogICAgICAgICAg
ICAgICAgImV4cGVjdGVkIHByb3BlcnR5ICR7cH0gbWlzc2luZyIsIHtwOnByb3BlcnR5X25hbWV9
KTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF9vd25fcHJvcGVydHksICJhc3NlcnRfb3duX3By
b3BlcnR5Iik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfb3duX3Byb3BlcnR5LCAiYXNzZXJ0
X293bl9wcm9wZXJ0eSIpOwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X25vdF9vd25fcHJvcGVydHko
b2JqZWN0LCBwcm9wZXJ0eV9uYW1lLCBkZXNjcmlwdGlvbikgewogICAgICAgICBhc3NlcnQoIW9i
amVjdC5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eV9uYW1lKSwKICAgICAgICAgICAgICAgICJhc3Nl
cnRfbm90X293bl9wcm9wZXJ0eSIsIGRlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgInVuZXhw
ZWN0ZWQgcHJvcGVydHkgJHtwfSBpcyBmb3VuZCBvbiBvYmplY3QiLCB7cDpwcm9wZXJ0eV9uYW1l
fSk7CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfbm90X293bl9wcm9wZXJ0eSwgImFzc2VydF9u
b3Rfb3duX3Byb3BlcnR5Iik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfbm90X293bl9wcm9w
ZXJ0eSwgImFzc2VydF9ub3Rfb3duX3Byb3BlcnR5Iik7CiAKICAgICBmdW5jdGlvbiBfYXNzZXJ0
X2luaGVyaXRzKG5hbWUpIHsKICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChvYmplY3QsIHByb3Bl
cnR5X25hbWUsIGRlc2NyaXB0aW9uKQogICAgICAgICB7Ci0gICAgICAgICAgICBhc3NlcnQodHlw
ZW9mIG9iamVjdCA9PT0gIm9iamVjdCIgfHwgdHlwZW9mIG9iamVjdCA9PT0gImZ1bmN0aW9uIiB8
fAorICAgICAgICAgICAgYXNzZXJ0KCh0eXBlb2Ygb2JqZWN0ID09PSAib2JqZWN0IiAmJiBvYmpl
Y3QgIT09IG51bGwpIHx8CisgICAgICAgICAgICAgICAgICAgdHlwZW9mIG9iamVjdCA9PT0gImZ1
bmN0aW9uIiB8fAogICAgICAgICAgICAgICAgICAgIC8vIE9yIGhhcyBbW0lzSFRNTEREQV1dIHNs
b3QKICAgICAgICAgICAgICAgICAgICBTdHJpbmcob2JqZWN0KSA9PT0gIltvYmplY3QgSFRNTEFs
bENvbGxlY3Rpb25dIiwKICAgICAgICAgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKQEAg
LTE1NjAsOCArMTU3OSw4IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgog
ICAgICAgICAgICAgICAgICAgIHtwOnByb3BlcnR5X25hbWV9KTsKICAgICAgICAgfTsKICAgICB9
Ci0gICAgZXhwb3NlKF9hc3NlcnRfaW5oZXJpdHMoImFzc2VydF9pbmhlcml0cyIpLCAiYXNzZXJ0
X2luaGVyaXRzIik7Ci0gICAgZXhwb3NlKF9hc3NlcnRfaW5oZXJpdHMoImFzc2VydF9pZGxfYXR0
cmlidXRlIiksICJhc3NlcnRfaWRsX2F0dHJpYnV0ZSIpOworICAgIGV4cG9zZV9hc3NlcnQoX2Fz
c2VydF9pbmhlcml0cygiYXNzZXJ0X2luaGVyaXRzIiksICJhc3NlcnRfaW5oZXJpdHMiKTsKKyAg
ICBleHBvc2VfYXNzZXJ0KF9hc3NlcnRfaW5oZXJpdHMoImFzc2VydF9pZGxfYXR0cmlidXRlIiks
ICJhc3NlcnRfaWRsX2F0dHJpYnV0ZSIpOwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X3JlYWRvbmx5
KG9iamVjdCwgcHJvcGVydHlfbmFtZSwgZGVzY3JpcHRpb24pCiAgICAgewpAQCAtMTU3OCw3ICsx
NTk3LDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAg
ICAgb2JqZWN0W3Byb3BlcnR5X25hbWVdID0gaW5pdGlhbF92YWx1ZTsKICAgICAgICAgIH0KICAg
ICB9Ci0gICAgZXhwb3NlKGFzc2VydF9yZWFkb25seSwgImFzc2VydF9yZWFkb25seSIpOworICAg
IGV4cG9zZV9hc3NlcnQoYXNzZXJ0X3JlYWRvbmx5LCAiYXNzZXJ0X3JlYWRvbmx5Iik7CiAKICAg
ICAvKioKICAgICAgKiBBc3NlcnQgYSBKUyBFcnJvciB3aXRoIHRoZSBleHBlY3RlZCBjb25zdHJ1
Y3RvciBpcyB0aHJvd24uCkBAIC0xNTkyLDcgKzE2MTEsNyBAQCBwb2xpY2llcyBhbmQgY29udHJp
YnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgYXNzZXJ0X3Rocm93c19qc19pbXBsKGNvbnN0cnVj
dG9yLCBmdW5jLCBkZXNjcmlwdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJh
c3NlcnRfdGhyb3dzX2pzIik7CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfdGhyb3dzX2pzLCAi
YXNzZXJ0X3Rocm93c19qcyIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X3Rocm93c19qcywg
ImFzc2VydF90aHJvd3NfanMiKTsKIAogICAgIC8qKgogICAgICAqIExpa2UgYXNzZXJ0X3Rocm93
c19qcyBidXQgYWxsb3dzIHNwZWNpZnlpbmcgdGhlIGFzc2VydGlvbiB0eXBlCkBAIC0xNjkwLDcg
KzE3MDksNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAg
fQogICAgICAgICBhc3NlcnRfdGhyb3dzX2RvbV9pbXBsKHR5cGUsIGZ1bmMsIGRlc2NyaXB0aW9u
LCAiYXNzZXJ0X3Rocm93c19kb20iLCBjb25zdHJ1Y3RvcikKICAgICB9Ci0gICAgZXhwb3NlKGFz
c2VydF90aHJvd3NfZG9tLCAiYXNzZXJ0X3Rocm93c19kb20iKTsKKyAgICBleHBvc2VfYXNzZXJ0
KGFzc2VydF90aHJvd3NfZG9tLCAiYXNzZXJ0X3Rocm93c19kb20iKTsKIAogICAgIC8qKgogICAg
ICAqIFNpbWlsYXIgdG8gYXNzZXJ0X3Rocm93c19kb20gYnV0IGFsbG93cyBzcGVjaWZ5aW5nIHRo
ZSBhc3NlcnRpb24gdHlwZQpAQCAtMTg1Myw3ICsxODcyLDcgQEAgcG9saWNpZXMgYW5kIGNvbnRy
aWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgIGFzc2VydF90aHJvd3NfZXhhY3RseV9pbXBsKGV4
Y2VwdGlvbiwgZnVuYywgZGVzY3JpcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJhc3NlcnRfdGhyb3dzX2V4YWN0bHkiKTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2Vy
dF90aHJvd3NfZXhhY3RseSwgImFzc2VydF90aHJvd3NfZXhhY3RseSIpOworICAgIGV4cG9zZV9h
c3NlcnQoYXNzZXJ0X3Rocm93c19leGFjdGx5LCAiYXNzZXJ0X3Rocm93c19leGFjdGx5Iik7CiAK
ICAgICAvKioKICAgICAgKiBMaWtlIGFzc2VydF90aHJvd3NfZXhhY3RseSBidXQgYWxsb3dzIHNw
ZWNpZnlpbmcgdGhlIGFzc2VydGlvbiB0eXBlCkBAIC0xODgxLDcgKzE5MDAsNyBAQCBwb2xpY2ll
cyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgIGFzc2VydChmYWxzZSwgImFz
c2VydF91bnJlYWNoZWQiLCBkZXNjcmlwdGlvbiwKICAgICAgICAgICAgICAgICAiUmVhY2hlZCB1
bnJlYWNoYWJsZSBjb2RlIik7CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfdW5yZWFjaGVkLCAi
YXNzZXJ0X3VucmVhY2hlZCIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X3VucmVhY2hlZCwg
ImFzc2VydF91bnJlYWNoZWQiKTsKIAogICAgIGZ1bmN0aW9uIGFzc2VydF9hbnkoYXNzZXJ0X2Z1
bmMsIGFjdHVhbCwgZXhwZWN0ZWRfYXJyYXkpCiAgICAgewpAQCAtMTkwMiw2ICsxOTIxLDkgQEAg
cG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICB0aHJvdyBu
ZXcgQXNzZXJ0aW9uRXJyb3IoZXJyb3JzLmpvaW4oIlxuXG4iKSk7CiAgICAgICAgIH0KICAgICB9
CisgICAgLy8gRklYTUU6IGFzc2VydF9hbnkgY2Fubm90IHVzZSBleHBvc2VfYXNzZXJ0LCBiZWNh
dXNlIGFzc2VydF93cmFwcGVyIGRvZXMKKyAgICAvLyBub3Qgc3VwcG9ydCBuZXN0ZWQgYXNzZXJ0
IGNhbGxzIChlLmcuIHRvIGFzc2VydF9mdW5jKS4gV2UgbmVlZCB0bworICAgIC8vIHN1cHBvcnQg
YnlwYXNzaW5nIGFzc2VydF93cmFwcGVyIGZvciB0aGUgaW5uZXIgYXNzZXJ0cyBoZXJlLgogICAg
IGV4cG9zZShhc3NlcnRfYW55LCAiYXNzZXJ0X2FueSIpOwogCiAgICAgLyoqCkBAIC0xOTE5LDcg
KzE5NDEsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICBmdW5j
dGlvbiBhc3NlcnRfaW1wbGVtZW50cyhjb25kaXRpb24sIGRlc2NyaXB0aW9uKSB7CiAgICAgICAg
IGFzc2VydCghIWNvbmRpdGlvbiwgImFzc2VydF9pbXBsZW1lbnRzIiwgZGVzY3JpcHRpb24pOwog
ICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2ltcGxlbWVudHMsICJhc3NlcnRfaW1wbGVtZW50cyIp
CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfaW1wbGVtZW50cywgImFzc2VydF9pbXBsZW1lbnRz
IikKIAogICAgIC8qKgogICAgICAqIEFzc2VydCB0aGF0IGFuIG9wdGlvbmFsIGZlYXR1cmUgaXMg
aW1wbGVtZW50ZWQsIGJhc2VkIG9uIGEgJ3RydXRoeScgY29uZGl0aW9uLgpAQCAtMTkzOSw3ICsx
OTYxLDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAg
ICB0aHJvdyBuZXcgT3B0aW9uYWxGZWF0dXJlVW5zdXBwb3J0ZWRFcnJvcihkZXNjcmlwdGlvbik7
CiAgICAgICAgIH0KICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF9pbXBsZW1lbnRzX29wdGlvbmFs
LCAiYXNzZXJ0X2ltcGxlbWVudHNfb3B0aW9uYWwiKQorICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0
X2ltcGxlbWVudHNfb3B0aW9uYWwsICJhc3NlcnRfaW1wbGVtZW50c19vcHRpb25hbCIpCiAKICAg
ICBmdW5jdGlvbiBUZXN0KG5hbWUsIHByb3BlcnRpZXMpCiAgICAgewpAQCAtMTk5OSw2ICsyMDIx
LDE4IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICBDT01Q
TEVURTo0CiAgICAgfTsKIAorICAgIFRlc3QucHJvdG90eXBlLnN0YXR1c19mb3JtYXRzID0gewor
ICAgICAgICAwOiAiUGFzcyIsCisgICAgICAgIDE6ICJGYWlsIiwKKyAgICAgICAgMjogIlRpbWVv
dXQiLAorICAgICAgICAzOiAiTm90IFJ1biIsCisgICAgICAgIDQ6ICJPcHRpb25hbCBGZWF0dXJl
IFVuc3VwcG9ydGVkIiwKKyAgICB9CisKKyAgICBUZXN0LnByb3RvdHlwZS5mb3JtYXRfc3RhdHVz
ID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB0aGlzLnN0YXR1c19mb3JtYXRzW3RoaXMu
c3RhdHVzXTsKKyAgICB9CisKICAgICBUZXN0LnByb3RvdHlwZS5zdHJ1Y3R1cmVkX2Nsb25lID0g
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9zdHJ1Y3R1cmVkX2Nsb25lKSB7
CkBAIC0yMDIzLDExICsyMDU3LDE2IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMg
WzNdLgogICAgICAgICBpZiAodGhpcy5waGFzZSA+IHRoaXMucGhhc2VzLlNUQVJURUQpIHsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorCisgICAgICAgIGlmIChzZXR0aW5ncy5kZWJ1
ZyAmJiB0aGlzLnBoYXNlICE9PSB0aGlzLnBoYXNlcy5TVEFSVEVEKSB7CisgICAgICAgICAgICBj
b25zb2xlLmxvZygiVEVTVCBTVEFSVCIsIHRoaXMubmFtZSk7CisgICAgICAgIH0KICAgICAgICAg
dGhpcy5waGFzZSA9IHRoaXMucGhhc2VzLlNUQVJURUQ7CiAgICAgICAgIC8vSWYgd2UgZG9uJ3Qg
Z2V0IGEgcmVzdWx0IGJlZm9yZSB0aGUgaGFybmVzcyB0aW1lcyBvdXQgdGhhdCB3aWxsIGJlIGEg
dGVzdCB0aW1lb3V0CiAgICAgICAgIHRoaXMuc2V0X3N0YXR1cyh0aGlzLlRJTUVPVVQsICJUZXN0
IHRpbWVkIG91dCIpOwogCiAgICAgICAgIHRlc3RzLnN0YXJ0ZWQgPSB0cnVlOworICAgICAgICB0
ZXN0cy5jdXJyZW50X3Rlc3QgPSB0aGlzOwogICAgICAgICB0ZXN0cy5ub3RpZnlfdGVzdF9zdGF0
ZSh0aGlzKTsKIAogICAgICAgICBpZiAodGhpcy50aW1lb3V0X2lkID09PSBudWxsKSB7CkBAIC0y
MDQwLDYgKzIwNzksMTAgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAg
ICAgICAgICAgICB0aGlzX29iaiA9IHRoaXM7CiAgICAgICAgIH0KIAorICAgICAgICBpZiAoc2V0
dGluZ3MuZGVidWcpIHsKKyAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoIlRFU1QgU1RFUCIsIHRo
aXMubmFtZSk7CisgICAgICAgIH0KKwogICAgICAgICB0cnkgewogICAgICAgICAgICAgcmV0dXJu
IGZ1bmMuYXBwbHkodGhpc19vYmosIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50
cywgMikpOwogICAgICAgICB9IGNhdGNoIChlKSB7CkBAIC0yMDUzLDYgKzIwOTYsOCBAQCBwb2xp
Y2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgIHRoaXMuc2V0X3N0
YXR1cyhzdGF0dXMsIG1lc3NhZ2UsIHN0YWNrKTsKICAgICAgICAgICAgIHRoaXMucGhhc2UgPSB0
aGlzLnBoYXNlcy5IQVNfUkVTVUxUOwogICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAg
IH0gZmluYWxseSB7CisgICAgICAgICAgICB0aGlzLmN1cnJlbnRfdGVzdCA9IG51bGw7CiAgICAg
ICAgIH0KICAgICB9OwogCkBAIC0yMjcwLDYgKzIzMTUsMTIgQEAgcG9saWNpZXMgYW5kIGNvbnRy
aWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0
X2lkKTsKICAgICAgICAgfQogCisgICAgICAgIGlmIChzZXR0aW5ncy5kZWJ1ZykgeworICAgICAg
ICAgICAgY29uc29sZS5sb2coIlRFU1QgRE9ORSIsCisgICAgICAgICAgICAgICAgICAgICAgICB0
aGlzLnN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZSwpCisgICAgICAg
IH0KKwogICAgICAgICB0aGlzLmNsZWFudXAoKTsKICAgICB9OwogCkBAIC0yNDY5LDYgKzI1MjAs
MTAgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAg
ICAgfSk7CiAgICAgfQogCisgICAgUmVtb3RlVGVzdC5wcm90b3R5cGUuZm9ybWF0X3N0YXR1cyA9
IGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gVGVzdC5wcm90b3R5cGUuc3RhdHVzX2Zvcm1h
dHNbdGhpcy5zdGF0dXNdOworICAgIH0KKwogICAgIC8qCiAgICAgICogQSBSZW1vdGVDb250ZXh0
IGxpc3RlbnMgZm9yIHRlc3QgZXZlbnRzIGZyb20gYSByZW1vdGUgdGVzdCBjb250ZXh0LCBzdWNo
CiAgICAgICogYXMgYW5vdGhlciB3aW5kb3cgb3IgYSB3b3JrZXIuIFRoZXNlIGV2ZW50cyBhcmUg
dGhlbiB1c2VkIHRvIGNvbnN0cnVjdApAQCAtMjU3Nyw2ICsyNjMyLDE2IEBAIHBvbGljaWVzIGFu
ZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgdGVzdHMuc2V0X3N0YXR1cyhk
YXRhLnN0YXR1cy5zdGF0dXMsIGRhdGEuc3RhdHVzLm1lc3NhZ2UsIGRhdGEuc3RhdHVzLnNhY2sp
OwogICAgICAgICB9CiAKKyAgICAgICAgZm9yIChsZXQgYXNzZXJ0IG9mIGRhdGEuYXNzZXJ0cykg
eworICAgICAgICAgICAgdmFyIHJlY29yZCA9IG5ldyBBc3NlcnRSZWNvcmQoKTsKKyAgICAgICAg
ICAgIHJlY29yZC5hc3NlcnRfbmFtZSA9IGFzc2VydC5hc3NlcnRfbmFtZTsKKyAgICAgICAgICAg
IHJlY29yZC5hcmdzID0gYXNzZXJ0LmFyZ3M7CisgICAgICAgICAgICByZWNvcmQudGVzdCA9IGFz
c2VydC50ZXN0ICE9IG51bGwgPyB0aGlzLnRlc3RzW2Fzc2VydC50ZXN0LmluZGV4XSA6IG51bGw7
CisgICAgICAgICAgICByZWNvcmQuc3RhdHVzID0gYXNzZXJ0LnN0YXR1czsKKyAgICAgICAgICAg
IHJlY29yZC5zdGFjayA9IGFzc2VydC5zdGFjazsKKyAgICAgICAgICAgIHRlc3RzLmFzc2VydHNf
cnVuLnB1c2gocmVjb3JkKTsKKyAgICAgICAgfQorCiAgICAgICAgIHRoaXMubWVzc2FnZV90YXJn
ZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRoaXMubWVzc2FnZV9oYW5kbGVyKTsK
ICAgICAgICAgdGhpcy5ydW5uaW5nID0gZmFsc2U7CiAKQEAgLTI2MjYsNiArMjY5MSwxNCBAQCBw
b2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KIAogICAgIFRlc3RzU3RhdHVzLnBy
b3RvdHlwZSA9IG1lcmdlKHt9LCBUZXN0c1N0YXR1cy5zdGF0dXNlcyk7CiAKKyAgICBUZXN0c1N0
YXR1cy5wcm90b3R5cGUuZm9ybWF0cyA9IHsKKyAgICAgICAgMDogIk9LIiwKKyAgICAgICAgMTog
IkVycm9yIiwKKyAgICAgICAgMjogIlRpbWVvdXQiLAorICAgICAgICAzOiAiT3B0aW9uYWwgRmVh
dHVyZSBVbnN1cHBvcnRlZCIKKyAgICB9CisKKwogICAgIFRlc3RzU3RhdHVzLnByb3RvdHlwZS5z
dHJ1Y3R1cmVkX2Nsb25lID0gZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9z
dHJ1Y3R1cmVkX2Nsb25lKSB7CkBAIC0yNjQwLDYgKzI3MTMsMjcgQEAgcG9saWNpZXMgYW5kIGNv
bnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgIHJldHVybiB0aGlzLl9zdHJ1Y3R1cmVkX2Ns
b25lOwogICAgIH07CiAKKyAgICBUZXN0c1N0YXR1cy5wcm90b3R5cGUuZm9ybWF0X3N0YXR1cyA9
IGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRzW3RoaXMuc3RhdHVzXTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBBc3NlcnRSZWNvcmQodGVzdCwgYXNzZXJ0X25hbWUsIGFy
Z3MgPSBbXSkgeworICAgICAgICB0aGlzLmFzc2VydF9uYW1lID0gYXNzZXJ0X25hbWU7CisgICAg
ICAgIHRoaXMudGVzdCA9IHRlc3Q7CisgICAgICAgIC8vIEF2b2lkIGtlZXBpbmcgY29tcGxleCBv
YmplY3RzIGFsaXZlCisgICAgICAgIHRoaXMuYXJncyA9IGFyZ3MubWFwKHggPT4gZm9ybWF0X3Zh
bHVlKHgpLnJlcGxhY2UoL1xuL2csICIgIikpOworICAgICAgICB0aGlzLnN0YXR1cyA9IG51bGw7
CisgICAgfQorCisgICAgQXNzZXJ0UmVjb3JkLnByb3RvdHlwZS5zdHJ1Y3R1cmVkX2Nsb25lID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBhc3NlcnRfbmFtZTog
dGhpcy5hc3NlcnRfbmFtZSwKKyAgICAgICAgICAgIHRlc3Q6IHRoaXMudGVzdCA/IHRoaXMudGVz
dC5zdHJ1Y3R1cmVkX2Nsb25lKCkgOiBudWxsLAorICAgICAgICAgICAgYXJnczogdGhpcy5hcmdz
LAorICAgICAgICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cywKKyAgICAgICAgfQorICAgIH0KKwog
ICAgIGZ1bmN0aW9uIFRlc3RzKCkKICAgICB7CiAgICAgICAgIHRoaXMudGVzdHMgPSBbXTsKQEAg
LTI2NzksNiArMjc3MywxOCBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4K
ICAgICAgICAgdGhpcy5oaWRlX3Rlc3Rfc3RhdGUgPSBmYWxzZTsKICAgICAgICAgdGhpcy5wZW5k
aW5nX3JlbW90ZXMgPSBbXTsKIAorICAgICAgICB0aGlzLmN1cnJlbnRfdGVzdCA9IG51bGw7Cisg
ICAgICAgIHRoaXMuYXNzZXJ0c19ydW4gPSBbXTsKKworICAgICAgICAvLyBUcmFjayB3aGV0aGVy
IG91dHB1dCBpcyBlbmFibGVkLCBhbmQgdGh1cyB3aGV0aGVyIG9yIG5vdCB3ZSBzaG91bGQKKyAg
ICAgICAgLy8gdHJhY2sgYXNzZXJ0cy4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gT24gd29ya2Vy
cyB3ZSBkb24ndCBnZXQgcHJvcGVydGllcyBzZXQgZnJvbSB0ZXN0aGFybmVzc3JlcG9ydC5qcywg
c28KKyAgICAgICAgLy8gd2UgZG9uJ3Qga25vdyB3aGV0aGVyIG9yIG5vdCB0byB0cmFjayBhc3Nl
cnRzLiBUbyBhdm9pZCB0aGUKKyAgICAgICAgLy8gcmVzdWx0aW5nIHBlcmZvcm1hbmNlIGhpdCwg
d2UgYXNzdW1lIHdlIGFyZSBub3QgbWVhbnQgdG8uIFRoaXMgbWVhbnMKKyAgICAgICAgLy8gdGhh
dCBhc3NlcnQgdHJhY2tpbmcgZG9lcyBub3QgZnVuY3Rpb24gb24gd29ya2Vycy4KKyAgICAgICAg
dGhpcy5vdXRwdXQgPSBzZXR0aW5ncy5vdXRwdXQgJiYgJ2RvY3VtZW50JyBpbiBnbG9iYWxfc2Nv
cGU7CisKICAgICAgICAgdGhpcy5zdGF0dXMgPSBuZXcgVGVzdHNTdGF0dXMoKTsKIAogICAgICAg
ICB2YXIgdGhpc19vYmogPSB0aGlzOwpAQCAtMjcyNiw2ICsyODMyLDEwIEBAIHBvbGljaWVzIGFu
ZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgfSBlbHNlIGlmIChwID09ICJoaWRlX3Rlc3Rfc3RhdGUiKSB7CiAgICAgICAgICAg
ICAgICAgICAgIHRoaXMuaGlkZV90ZXN0X3N0YXRlID0gdmFsdWU7CisgICAgICAgICAgICAgICAg
fSBlbHNlIGlmIChwID09ICJvdXRwdXQiKSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMub3V0
cHV0ID0gdmFsdWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwID09PSAiZGVidWciKSB7
CisgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzLmRlYnVnID0gdmFsdWU7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0yNzUwLDcgKzI4NjAsNyBAQCBw
b2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgdGhpcy53YWl0X2Zv
cl9maW5pc2ggPSB0cnVlOwogICAgICAgICB0aGlzLmZpbGVfaXNfdGVzdCA9IHRydWU7CiAgICAg
ICAgIC8vIENyZWF0ZSB0aGUgdGVzdCwgd2hpY2ggd2lsbCBhZGQgaXQgdG8gdGhlIGxpc3Qgb2Yg
dGVzdHMKLSAgICAgICAgYXN5bmNfdGVzdCgpOworICAgICAgICB0ZXN0cy5jdXJyZW50X3Rlc3Qg
PSBhc3luY190ZXN0KCk7CiAgICAgfTsKIAogICAgIFRlc3RzLnByb3RvdHlwZS5zZXRfc3RhdHVz
ID0gZnVuY3Rpb24oc3RhdHVzLCBtZXNzYWdlLCBzdGFjaykKQEAgLTI5MTQsNiArMzAyNCwxNiBA
QCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICAg
IGFsbF9jb21wbGV0ZSk7CiAgICAgfTsKIAorICAgIFRlc3RzLnByb3RvdHlwZS5zZXRfYXNzZXJ0
ID0gZnVuY3Rpb24oYXNzZXJ0X25hbWUsIGFyZ3MpIHsKKyAgICAgICAgdGhpcy5hc3NlcnRzX3J1
bi5wdXNoKG5ldyBBc3NlcnRSZWNvcmQodGhpcy5jdXJyZW50X3Rlc3QsIGFzc2VydF9uYW1lLCBh
cmdzKSkKKyAgICB9CisKKyAgICBUZXN0cy5wcm90b3R5cGUuc2V0X2Fzc2VydF9zdGF0dXMgPSBm
dW5jdGlvbihzdGF0dXMsIHN0YWNrKSB7CisgICAgICAgIGxldCBhc3NlcnRfcmVjb3JkID0gdGhp
cy5hc3NlcnRzX3J1blt0aGlzLmFzc2VydHNfcnVuLmxlbmd0aCAtIDFdOworICAgICAgICBhc3Nl
cnRfcmVjb3JkLnN0YXR1cyA9IHN0YXR1czsKKyAgICAgICAgYXNzZXJ0X3JlY29yZC5zdGFjayA9
IHN0YWNrOworICAgIH0KKwogICAgIC8qKgogICAgICAqIFVwZGF0ZSB0aGUgaGFybmVzcyBzdGF0
dXMgdG8gcmVmbGVjdCBhbiB1bnJlY292ZXJhYmxlIGhhcm5lc3MgZXJyb3IgdGhhdAogICAgICAq
IHNob3VsZCBjYW5jZWwgYWxsIGZ1cnRoZXIgdGVzdGluZy4gVXBkYXRlIGFsbCBwcmV2aW91c2x5
LWRlZmluZWQgdGVzdHMKQEAgLTI5NTYsMjIgKzMwNzYsMTYgQEAgcG9saWNpZXMgYW5kIGNvbnRy
aWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgfQogCiAgICAgZnVuY3Rpb24gc2FuaXRpemVfdW5wYWly
ZWRfc3Vycm9nYXRlcyhzdHIpIHsKLSAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oW1x1ZDgw
MC1cdWRiZmZdKSg/IVtcdWRjMDAtXHVkZmZmXSkvZywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uKF8sIHVucGFpcmVkKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2RlX3VuaXRfc3RyKHVucGFp
cmVkKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCi0gICAgICAgICAgICAgICAgICAv
LyBUaGlzIHJlcGxhY2VtZW50IGlzIGludGVudGlvbmFsbHkgaW1wbGVtZW50ZWQgd2l0aG91dCBh
bgotICAgICAgICAgICAgICAgICAgLy8gRVMyMDE4IG5lZ2F0aXZlIGxvb2tiZWhpbmQgYXNzZXJ0
aW9uIHRvIHN1cHBvcnQgcnVudGltZXMKLSAgICAgICAgICAgICAgICAgIC8vIHdoaWNoIGRvIG5v
dCB5ZXQgaW1wbGVtZW50IHRoYXQgbGFuZ3VhZ2UgZmVhdHVyZS4KLSAgICAgICAgICAgICAgICAg
IC5yZXBsYWNlKC8oXnxbXlx1ZDgwMC1cdWRiZmZdKShbXHVkYzAwLVx1ZGZmZl0pL2csCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbihfLCBwcmV2aW91cywgdW5wYWlyZWQpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvW1x1ZGMwMC1cdWRmZmZdLy50ZXN0
KHByZXZpb3VzKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3Vz
ID0gY29kZV91bml0X3N0cihwcmV2aW91cyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91cyArIGNv
ZGVfdW5pdF9zdHIodW5wYWlyZWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgKKyAgICAgICAgICAgIC8oW1x1ZDgwMC1cdWRiZmZd
KykoPyFbXHVkYzAwLVx1ZGZmZl0pfChefFteXHVkODAwLVx1ZGJmZl0pKFtcdWRjMDAtXHVkZmZm
XSspL2csCisgICAgICAgICAgICBmdW5jdGlvbihfLCBsb3csIHByZWZpeCwgaGlnaCkgeworICAg
ICAgICAgICAgICAgIHZhciBvdXRwdXQgPSBwcmVmaXggfHwgIiI7ICAvLyBwcmVmaXggbWF5IGJl
IHVuZGVmaW5lZAorICAgICAgICAgICAgICAgIHZhciBzdHJpbmcgPSBsb3cgfHwgaGlnaDsgIC8v
IG9ubHkgb25lIG9mIHRoZXNlIGFsdGVybmF0ZXMgY2FuIG1hdGNoCisgICAgICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAg
ICAgICAgb3V0cHV0ICs9IGNvZGVfdW5pdF9zdHIoc3RyaW5nW2ldKTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dDsKKyAgICAgICAgICAgIH0pOwogICAg
IH0KIAogICAgIGZ1bmN0aW9uIHNhbml0aXplX2FsbF91bnBhaXJlZF9zdXJyb2dhdGVzKHRlc3Rz
KSB7CkBAIC0zMDE3LDcgKzMxMzEsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1z
IFszXS4KICAgICAgICAgZm9yRWFjaCAodGhpcy5hbGxfZG9uZV9jYWxsYmFja3MsCiAgICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICBjYWxsYmFjayh0aGlzX29iai50ZXN0cywgdGhpc19vYmouc3RhdHVzKTsK
KyAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHRoaXNfb2JqLnRlc3RzLCB0aGlzX29iai5z
dGF0dXMsIHRoaXNfb2JqLmFzc2VydHNfcnVuKTsKICAgICAgICAgICAgICAgICAgfSk7CiAgICAg
fTsKIApAQCAtMzI0Myw3ICszMzU3LDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3Jt
cyBbM10uCiAgICAgICAgIH0KICAgICB9OwogCi0gICAgT3V0cHV0LnByb3RvdHlwZS5zaG93X3Jl
c3VsdHMgPSBmdW5jdGlvbiAodGVzdHMsIGhhcm5lc3Nfc3RhdHVzKSB7CisgICAgT3V0cHV0LnBy
b3RvdHlwZS5zaG93X3Jlc3VsdHMgPSBmdW5jdGlvbiAodGVzdHMsIGhhcm5lc3Nfc3RhdHVzLCBh
c3NlcnRzX3J1bikgewogICAgICAgICBpZiAodGhpcy5waGFzZSA+PSB0aGlzLkNPTVBMRVRFKSB7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTMyNzIsMjMgKzMzODYsMTAgQEAg
cG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICBoZWFkc1sw
XS5hcHBlbmRDaGlsZChzdHlsZXNoZWV0KTsKICAgICAgICAgfQogCi0gICAgICAgIHZhciBzdGF0
dXNfdGV4dF9oYXJuZXNzID0ge307Ci0gICAgICAgIHN0YXR1c190ZXh0X2hhcm5lc3NbaGFybmVz
c19zdGF0dXMuT0tdID0gIk9LIjsKLSAgICAgICAgc3RhdHVzX3RleHRfaGFybmVzc1toYXJuZXNz
X3N0YXR1cy5FUlJPUl0gPSAiRXJyb3IiOwotICAgICAgICBzdGF0dXNfdGV4dF9oYXJuZXNzW2hh
cm5lc3Nfc3RhdHVzLlRJTUVPVVRdID0gIlRpbWVvdXQiOwotICAgICAgICBzdGF0dXNfdGV4dF9o
YXJuZXNzW2hhcm5lc3Nfc3RhdHVzLlBSRUNPTkRJVElPTl9GQUlMRURdID0gIk9wdGlvbmFsIEZl
YXR1cmUgVW5zdXBwb3J0ZWQiOwotCi0gICAgICAgIHZhciBzdGF0dXNfdGV4dCA9IHt9OwotICAg
ICAgICBzdGF0dXNfdGV4dFtUZXN0LnByb3RvdHlwZS5QQVNTXSA9ICJQYXNzIjsKLSAgICAgICAg
c3RhdHVzX3RleHRbVGVzdC5wcm90b3R5cGUuRkFJTF0gPSAiRmFpbCI7Ci0gICAgICAgIHN0YXR1
c190ZXh0W1Rlc3QucHJvdG90eXBlLlRJTUVPVVRdID0gIlRpbWVvdXQiOwotICAgICAgICBzdGF0
dXNfdGV4dFtUZXN0LnByb3RvdHlwZS5OT1RSVU5dID0gIk5vdCBSdW4iOwotICAgICAgICBzdGF0
dXNfdGV4dFtUZXN0LnByb3RvdHlwZS5QUkVDT05ESVRJT05fRkFJTEVEXSA9ICJPcHRpb25hbCBG
ZWF0dXJlIFVuc3VwcG9ydGVkIjsKLQogICAgICAgICB2YXIgc3RhdHVzX251bWJlciA9IHt9Owog
ICAgICAgICBmb3JFYWNoKHRlc3RzLAogICAgICAgICAgICAgICAgIGZ1bmN0aW9uKHRlc3QpIHsK
LSAgICAgICAgICAgICAgICAgICAgdmFyIHN0YXR1cyA9IHN0YXR1c190ZXh0W3Rlc3Quc3RhdHVz
XTsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHN0YXR1cyA9IHRlc3QuZm9ybWF0X3N0YXR1cygp
OwogICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzX251bWJlci5oYXNPd25Qcm9wZXJ0eShz
dGF0dXMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNfbnVtYmVyW3N0YXR1c10g
Kz0gMTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTMzMDUsOCArMzQwNiw3IEBA
IHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbImgyIiwge30sICJTdW1tYXJ5Il0sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ewotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3RhdHVzID0gc3Rh
dHVzX3RleHRfaGFybmVzc1toYXJuZXNzX3N0YXR1cy5zdGF0dXNdOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIHN0YXR1cyA9IGhhcm5lc3Nfc3RhdHVzLmZvcm1hdF9z
dGF0dXMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBydiA9IFtb
InNlY3Rpb24iLCB7fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWyJwIiwge30sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiSGFybmVzcyBzdGF0dXM6ICIsCkBAIC0zMzI4LDEzICszNDI4LDE0IEBAIHBvbGlj
aWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZhciBydiA9IFtbImRpdiIsIHt9XV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2YXIgaSA9IDA7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGls
ZSAoc3RhdHVzX3RleHQuaGFzT3duUHJvcGVydHkoaSkpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzX251bWJlci5oYXNPd25Qcm9wZXJ0eShzdGF0
dXNfdGV4dFtpXSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdmFyIHN0YXR1cyA9IHN0YXR1c190ZXh0W2ldOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBydlswXS5wdXNoKFsiZGl2IiwgeyJjbGFzcyI6c3RhdHVzX2Ns
YXNzKHN0YXR1cyl9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUg
KFRlc3QucHJvdG90eXBlLnN0YXR1c19mb3JtYXRzLmhhc093blByb3BlcnR5KGkpKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1c19udW1iZXIuaGFz
T3duUHJvcGVydHkoVGVzdC5wcm90b3R5cGUuc3RhdHVzX2Zvcm1hdHNbaV0pKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdGF0dXMgPSBUZXN0LnBy
b3RvdHlwZS5zdGF0dXNfZm9ybWF0c1tpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcnZbMF0ucHVzaChbImRpdiIsIHt9LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImxhYmVsIiwge30sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImlu
cHV0Iiwge3R5cGU6ImNoZWNrYm94IiwgY2hlY2tlZDoiY2hlY2tlZCJ9XSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c19udW1i
ZXJbc3RhdHVzXSArICIgIiArIHN0YXR1c11dKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c19udW1iZXJbc3RhdHVzXSArICIg
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFsic3BhbiIsIHsiY2xhc3MiOnN0YXR1c19jbGFzcyhzdGF0dXMpfSwgc3RhdHVzXV1dKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaSsrOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQpAQCAtMzM1NCwxMyArMzQ1NSwxMyBAQCBwb2xpY2llcyBhbmQgY29udHJp
YnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdF9jbGFzcyA9IGVsZW1lbnQucGFyZW50Tm9k
ZS5nZXRBdHRyaWJ1dGUoImNsYXNzIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2YXIgcmVzdWx0X2NsYXNzID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCJzcGFuW2NsYXNzXSIp
LmdldEF0dHJpYnV0ZSgiY2xhc3MiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZhciBzdHlsZV9lbGVtZW50ID0gb3V0cHV0X2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInN0eWxl
I2hpZGUtIiArIHJlc3VsdF9jbGFzcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2YXIgaW5wdXRfZWxlbWVudCA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3R5bGVfZWxlbWVudCAmJiAhaW5w
dXRfZWxlbWVudC5jaGVja2VkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3R5bGVfZWxlbWVudCA9IG91dHB1dF9kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoeGh0bWxf
bnMsICJzdHlsZSIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxl
X2VsZW1lbnQuaWQgPSAiaGlkZS0iICsgcmVzdWx0X2NsYXNzOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0eWxlX2VsZW1lbnQudGV4dENvbnRlbnQgPSAidGFibGUjcmVz
dWx0cyA+IHRib2R5ID4gdHIuIityZXN1bHRfY2xhc3MrIntkaXNwbGF5Om5vbmV9IjsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZV9lbGVtZW50LnRleHRDb250ZW50
ID0gInRhYmxlI3Jlc3VsdHMgPiB0Ym9keSA+IHRyLm92ZXJhbGwtIityZXN1bHRfY2xhc3MrIntk
aXNwbGF5Om5vbmV9IjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRw
dXRfZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzdHlsZV9lbGVtZW50KTsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3R5bGVfZWxlbWVudCAmJiBpbnB1dF9l
bGVtZW50LmNoZWNrZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dHlsZV9lbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGVfZWxlbWVudCk7CkBAIC0z
NDAxLDYgKzM1MDIsNTIgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAg
ICAgICAgICAgICByZXR1cm4gJyc7CiAgICAgICAgIH0KIAorICAgICAgICB2YXIgYXNzZXJ0c19y
dW5fYnlfdGVzdCA9IG5ldyBNYXAoKTsKKyAgICAgICAgYXNzZXJ0c19ydW4uZm9yRWFjaChhc3Nl
cnQgPT4geworICAgICAgICAgICAgaWYgKCFhc3NlcnRzX3J1bl9ieV90ZXN0Lmhhcyhhc3NlcnQu
dGVzdCkpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRzX3J1bl9ieV90ZXN0LnNldChhc3NlcnQu
dGVzdCwgW10pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXNzZXJ0c19ydW5fYnlfdGVz
dC5nZXQoYXNzZXJ0LnRlc3QpLnB1c2goYXNzZXJ0KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAg
ZnVuY3Rpb24gZ2V0X2Fzc2VydHNfb3V0cHV0KHRlc3QpIHsKKyAgICAgICAgICAgIHZhciBhc3Nl
cnRzID0gYXNzZXJ0c19ydW5fYnlfdGVzdC5nZXQodGVzdCk7CisgICAgICAgICAgICBpZiAoIWFz
c2VydHMpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gIk5vIGFzc2VydHMgcmFuIjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIHJ2ID0gIjx0YWJsZT4iOworICAgICAgICAgICAgcnYgKz0g
YXNzZXJ0cy5tYXAoYXNzZXJ0ID0+IHsKKyAgICAgICAgICAgICAgICB2YXIgb3V0cHV0X2ZuID0g
IjxzdHJvbmc+IiArIGVzY2FwZV9odG1sKGFzc2VydC5hc3NlcnRfbmFtZSkgKyAiPC9zdHJvbmc+
KCI7CisgICAgICAgICAgICAgICAgdmFyIHByZWZpeF9sZW4gPSBvdXRwdXRfZm4ubGVuZ3RoOwor
ICAgICAgICAgICAgICAgIHZhciBvdXRwdXRfYXJncyA9IGFzc2VydC5hcmdzOworICAgICAgICAg
ICAgICAgIHZhciBvdXRwdXRfbGVuID0gb3V0cHV0X2FyZ3MucmVkdWNlKChwcmV2LCBjdXJyZW50
KSA9PiBwcmV2K2N1cnJlbnQsIHByZWZpeF9sZW4pOworICAgICAgICAgICAgICAgIGlmIChvdXRw
dXRfbGVuW291dHB1dF9sZW4ubGVuZ3RoIC0gMV0gPiA1MCkgeworICAgICAgICAgICAgICAgICAg
ICBvdXRwdXRfYXJncyA9IG91dHB1dF9hcmdzLm1hcCgoeCwgaSkgPT4KKyAgICAgICAgICAgICAg
ICAgICAgKGkgPiAwID8gIiAgIi5yZXBlYXQocHJlZml4X2xlbikgOiAiIiApKyB4ICsgKGkgPCBv
dXRwdXRfYXJncy5sZW5ndGggLSAxID8gIixcbiIgOiAiIikpOworICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dF9hcmdzID0gb3V0cHV0X2FyZ3MubWFw
KCh4LCBpKSA9PiB4ICsgKGkgPCBvdXRwdXRfYXJncy5sZW5ndGggLSAxID8gIiwgIiA6ICIiKSk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG91dHB1dF9mbiArPSBlc2NhcGVf
aHRtbChvdXRwdXRfYXJncy5qb2luKCIiKSk7CisgICAgICAgICAgICAgICAgb3V0cHV0X2ZuICs9
ICcpJzsKKyAgICAgICAgICAgICAgICB2YXIgb3V0cHV0X2xvY2F0aW9uOworICAgICAgICAgICAg
ICAgIGlmIChhc3NlcnQuc3RhY2spIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2xvY2F0
aW9uID0gYXNzZXJ0LnN0YWNrLnNwbGl0KCJcbiIsIDEpWzBdLnJlcGxhY2UoL0A/XHcrOlwvXC9b
XiAiXC9dKyg/OjpcZCspPy9nLCAiICIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICByZXR1cm4gIjx0ciBjbGFzcz0nb3ZlcmFsbC0iICsKKyAgICAgICAgICAgICAgICAgICAg
c3RhdHVzX2NsYXNzKFRlc3QucHJvdG90eXBlLnN0YXR1c19mb3JtYXRzW2Fzc2VydC5zdGF0dXNd
KSArICInPiIgKworICAgICAgICAgICAgICAgICAgICAiPHRkIGNsYXNzPSciICsKKyAgICAgICAg
ICAgICAgICAgICAgc3RhdHVzX2NsYXNzKFRlc3QucHJvdG90eXBlLnN0YXR1c19mb3JtYXRzW2Fz
c2VydC5zdGF0dXNdKSArICInPiIgKworICAgICAgICAgICAgICAgICAgICBUZXN0LnByb3RvdHlw
ZS5zdGF0dXNfZm9ybWF0c1thc3NlcnQuc3RhdHVzXSArICI8L3RkPiIgKworICAgICAgICAgICAg
ICAgICAgICAiPHRkPjxwcmU+IiArCisgICAgICAgICAgICAgICAgICAgIG91dHB1dF9mbiArCisg
ICAgICAgICAgICAgICAgICAgIChvdXRwdXRfbG9jYXRpb24gPyAiXG4iICsgZXNjYXBlX2h0bWwo
b3V0cHV0X2xvY2F0aW9uKSA6ICIiKSArCisgICAgICAgICAgICAgICAgICAgICI8L3ByZT48L3Rk
PjwvdHI+IjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICkuam9pbigiXG4iKTsKKyAgICAg
ICAgICAgIHJ2ICs9ICI8L3RhYmxlPiI7CisgICAgICAgICAgICByZXR1cm4gcnY7CisgICAgICAg
IH0KKwogICAgICAgICBsb2cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHho
dG1sX25zLCAic2VjdGlvbiIpKTsKICAgICAgICAgdmFyIGFzc2VydGlvbnMgPSBoYXNfYXNzZXJ0
aW9ucygpOwogICAgICAgICB2YXIgaHRtbCA9ICI8aDI+RGV0YWlsczwvaDI+PHRhYmxlIGlkPSdy
ZXN1bHRzJyAiICsgKGFzc2VydGlvbnMgPyAiY2xhc3M9J2Fzc2VydGlvbnMnIiA6ICIiICkgKyAi
PiIgKwpAQCAtMzQwOSwxOSArMzU1NiwyNiBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZv
cm1zIFszXS4KICAgICAgICAgICAgICI8dGg+TWVzc2FnZTwvdGg+PC90cj48L3RoZWFkPiIgKwog
ICAgICAgICAgICAgIjx0Ym9keT4iOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3Rz
Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBodG1sICs9ICc8dHIgY2xhc3M9IicgKwotICAg
ICAgICAgICAgICAgIGVzY2FwZV9odG1sKHN0YXR1c19jbGFzcyhzdGF0dXNfdGV4dFt0ZXN0c1tp
XS5zdGF0dXNdKSkgKwotICAgICAgICAgICAgICAgICciPjx0ZD4nICsKLSAgICAgICAgICAgICAg
ICBlc2NhcGVfaHRtbChzdGF0dXNfdGV4dFt0ZXN0c1tpXS5zdGF0dXNdKSArCisgICAgICAgICAg
ICB2YXIgdGVzdCA9IHRlc3RzW2ldOworICAgICAgICAgICAgaHRtbCArPSAnPHRyIGNsYXNzPSJv
dmVyYWxsLScgKworICAgICAgICAgICAgICAgIHN0YXR1c19jbGFzcyh0ZXN0LmZvcm1hdF9zdGF0
dXMoKSkgKworICAgICAgICAgICAgICAgICciPicgKworICAgICAgICAgICAgICAgICc8dGQgY2xh
c3M9IicgKworICAgICAgICAgICAgICAgIHN0YXR1c19jbGFzcyh0ZXN0LmZvcm1hdF9zdGF0dXMo
KSkgKworICAgICAgICAgICAgICAgICciPicgKworICAgICAgICAgICAgICAgIHRlc3QuZm9ybWF0
X3N0YXR1cygpICsKICAgICAgICAgICAgICAgICAiPC90ZD48dGQ+IiArCi0gICAgICAgICAgICAg
ICAgZXNjYXBlX2h0bWwodGVzdHNbaV0ubmFtZSkgKworICAgICAgICAgICAgICAgIGVzY2FwZV9o
dG1sKHRlc3QubmFtZSkgKwogICAgICAgICAgICAgICAgICI8L3RkPjx0ZD4iICsKLSAgICAgICAg
ICAgICAgICAoYXNzZXJ0aW9ucyA/IGVzY2FwZV9odG1sKGdldF9hc3NlcnRpb24odGVzdHNbaV0p
KSArICI8L3RkPjx0ZD4iIDogIiIpICsKLSAgICAgICAgICAgICAgICBlc2NhcGVfaHRtbCh0ZXN0
c1tpXS5tZXNzYWdlID8gdGVzdHNbaV0ubWVzc2FnZSA6ICIgIikgKworICAgICAgICAgICAgICAg
IChhc3NlcnRpb25zID8gZXNjYXBlX2h0bWwoZ2V0X2Fzc2VydGlvbih0ZXN0KSkgKyAiPC90ZD48
dGQ+IiA6ICIiKSArCisgICAgICAgICAgICAgICAgZXNjYXBlX2h0bWwodGVzdC5tZXNzYWdlID8g
dGVzdHNbaV0ubWVzc2FnZSA6ICIgIikgKwogICAgICAgICAgICAgICAgICh0ZXN0c1tpXS5zdGFj
ayA/ICI8cHJlPiIgKwogICAgICAgICAgICAgICAgICBlc2NhcGVfaHRtbCh0ZXN0c1tpXS5zdGFj
aykgKwotICAgICAgICAgICAgICAgICAiPC9wcmU+IjogIiIpICsKLSAgICAgICAgICAgICAgICAi
PC90ZD48L3RyPiI7CisgICAgICAgICAgICAgICAgICI8L3ByZT4iOiAiIik7CisgICAgICAgICAg
ICBpZiAoISh0ZXN0IGluc3RhbmNlb2YgUmVtb3RlVGVzdCkpIHsKKyAgICAgICAgICAgICAgICAg
aHRtbCArPSAiPGRldGFpbHM+PHN1bW1hcnk+QXNzZXJ0cyBydW48L3N1bW1hcnk+IiArIGdldF9h
c3NlcnRzX291dHB1dCh0ZXN0KSArICI8L2RldGFpbHM+IgorICAgICAgICAgICAgfQorICAgICAg
ICAgICAgaHRtbCArPSAiPC90ZD48L3RyPiI7CiAgICAgICAgIH0KICAgICAgICAgaHRtbCArPSAi
PC90Ym9keT48L3RhYmxlPiI7CiAgICAgICAgIHRyeSB7CkBAIC0zNjEyLDE0ICszNzY2LDE3IEBA
IHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogCiAgICAgZnVuY3Rpb24gQXNz
ZXJ0aW9uRXJyb3IobWVzc2FnZSkKICAgICB7CisgICAgICAgIGlmICh0eXBlb2YgbWVzc2FnZSA9
PSAic3RyaW5nIikgeworICAgICAgICAgICAgbWVzc2FnZSA9IHNhbml0aXplX3VucGFpcmVkX3N1
cnJvZ2F0ZXMobWVzc2FnZSk7CisgICAgICAgIH0KICAgICAgICAgdGhpcy5tZXNzYWdlID0gbWVz
c2FnZTsKLSAgICAgICAgdGhpcy5zdGFjayA9IHRoaXMuZ2V0X3N0YWNrKCk7CisgICAgICAgIHRo
aXMuc3RhY2sgPSBnZXRfc3RhY2soKTsKICAgICB9CiAgICAgZXhwb3NlKEFzc2VydGlvbkVycm9y
LCAiQXNzZXJ0aW9uRXJyb3IiKTsKIAogICAgIEFzc2VydGlvbkVycm9yLnByb3RvdHlwZSA9IE9i
amVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKTsKIAotICAgIEFzc2VydGlvbkVycm9yLnByb3Rv
dHlwZS5nZXRfc3RhY2sgPSBmdW5jdGlvbigpIHsKKyAgICBjb25zdCBnZXRfc3RhY2sgPSBmdW5j
dGlvbigpIHsKICAgICAgICAgdmFyIHN0YWNrID0gbmV3IEVycm9yKCkuc3RhY2s7CiAgICAgICAg
IC8vIElFMTEgZG9lcyBub3QgaW5pdGlhbGl6ZSAnRXJyb3Iuc3RhY2snIHVudGlsIHRoZSBvYmpl
Y3QgaXMgdGhyb3duLgogICAgICAgICBpZiAoIXN0YWNrKSB7CkBAIC0zOTgzLDU0ICs0MTQwLDYy
IEBAIHRhYmxlI3Jlc3VsdHMge1wKICAgICB3aWR0aDoxMDAlO1wKIH1cCiBcCi10YWJsZSNyZXN1
bHRzIHRoOmZpcnN0LWNoaWxkLFwKLXRhYmxlI3Jlc3VsdHMgdGQ6Zmlyc3QtY2hpbGQge1wKK3Rh
YmxlI3Jlc3VsdHMgPiB0aGVhZCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXAordGFibGUjcmVzdWx0
cyA+IHRib2R5ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCB7XAogICAgIHdpZHRoOjhlbTtcCiB9XAog
XAotdGFibGUjcmVzdWx0cyB0aDpsYXN0LWNoaWxkLFwKLXRhYmxlI3Jlc3VsdHMgdGQ6bGFzdC1j
aGlsZCB7XAordGFibGUjcmVzdWx0cyA+IHRoZWFkID4gdHIgPiB0aDpsYXN0LWNoaWxkLFwKK3Rh
YmxlI3Jlc3VsdHMgPiB0aGVhZCA+IHRyID4gdGQ6bGFzdC1jaGlsZCB7XAogICAgIHdpZHRoOjUw
JTtcCiB9XAogXAotdGFibGUjcmVzdWx0cy5hc3NlcnRpb25zIHRoOmxhc3QtY2hpbGQsXAotdGFi
bGUjcmVzdWx0cy5hc3NlcnRpb25zIHRkOmxhc3QtY2hpbGQge1wKK3RhYmxlI3Jlc3VsdHMuYXNz
ZXJ0aW9ucyA+IHRoZWFkID4gdHIgPiB0aDpsYXN0LWNoaWxkLFwKK3RhYmxlI3Jlc3VsdHMuYXNz
ZXJ0aW9ucyA+IHRib2R5ID4gdHIgPiB0ZDpsYXN0LWNoaWxkIHtcCiAgICAgd2lkdGg6MzUlO1wK
IH1cCiBcCi10YWJsZSNyZXN1bHRzIHRoIHtcCit0YWJsZSNyZXN1bHRzID4gdGhlYWQgPiA+IHRy
ID4gdGgge1wKICAgICBwYWRkaW5nOjA7XAogICAgIHBhZGRpbmctYm90dG9tOjAuNWVtO1wKICAg
ICBib3JkZXItYm90dG9tOm1lZGl1bSBzb2xpZCBibGFjaztcCiB9XAogXAotdGFibGUjcmVzdWx0
cyB0ZCB7XAordGFibGUjcmVzdWx0cyA+IHRib2R5ID4gdHI+IHRkIHtcCiAgICAgcGFkZGluZzox
ZW07XAogICAgIHBhZGRpbmctYm90dG9tOjAuNWVtO1wKICAgICBib3JkZXItYm90dG9tOnRoaW4g
c29saWQgYmxhY2s7XAogfVwKIFwKLXRyLnBhc3MgPiB0ZDpmaXJzdC1jaGlsZCB7XAorLnBhc3Mg
e1wKICAgICBjb2xvcjpncmVlbjtcCiB9XAogXAotdHIuZmFpbCA+IHRkOmZpcnN0LWNoaWxkIHtc
CisuZmFpbCB7XAogICAgIGNvbG9yOnJlZDtcCiB9XAogXAotdHIudGltZW91dCA+IHRkOmZpcnN0
LWNoaWxkIHtcCit0ci50aW1lb3V0IHtcCiAgICAgY29sb3I6cmVkO1wKIH1cCiBcCi10ci5ub3Ry
dW4gPiB0ZDpmaXJzdC1jaGlsZCB7XAordHIubm90cnVuIHtcCiAgICAgY29sb3I6Ymx1ZTtcCiB9
XAogXAotdHIub3B0aW9uYWx1bnN1cHBvcnRlZCA+IHRkOmZpcnN0LWNoaWxkIHtcCit0ci5vcHRp
b25hbHVuc3VwcG9ydGVkIHtcCiAgICAgY29sb3I6Ymx1ZTtcCiB9XAogXAotLnBhc3MgPiB0ZDpm
aXJzdC1jaGlsZCwgLmZhaWwgPiB0ZDpmaXJzdC1jaGlsZCwgLnRpbWVvdXQgPiB0ZDpmaXJzdC1j
aGlsZCwgLm5vdHJ1biA+IHRkOmZpcnN0LWNoaWxkLCAub3B0aW9uYWx1bnN1cHBvcnRlZCA+IHRk
OmZpcnN0LWNoaWxkIHtcCisub2sge1wKKyAgICBjb2xvcjpncmVlbjtcCit9XAorXAorLmVycm9y
IHtcCisgICAgY29sb3I6cmVkO1wKK31cCitcCisucGFzcywgLmZhaWwsIC50aW1lb3V0LCAubm90
cnVuLCAub3B0aW9uYWx1bnN1cHBvcnRlZCAub2ssIC50aW1lb3V0LCAuZXJyb3Ige1wKICAgICBm
b250LXZhcmlhbnQ6c21hbGwtY2FwcztcCiB9XAogXApAQCAtNDA0NywyMiArNDIxMiw2IEBAIHRh
YmxlI3Jlc3VsdHMgc3Bhbi5hY3R1YWwge1wKICAgICBmb250LWZhbWlseTpEZWphVnUgU2FucyBN
b25vLCBCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8sIE1vbm9zcGFjZTtcCiAgICAgd2hpdGUtc3Bh
Y2U6cHJlO1wKIH1cCi1cCi1zcGFuLm9rIHtcCi0gICAgY29sb3I6Z3JlZW47XAotfVwKLVwKLXRy
LmVycm9yIHtcCi0gICAgY29sb3I6cmVkO1wKLX1cCi1cCi1zcGFuLnRpbWVvdXQge1wKLSAgICBj
b2xvcjpyZWQ7XAotfVwKLVwKLXNwYW4ub2ssIHNwYW4udGltZW91dCwgc3Bhbi5lcnJvciB7XAot
ICAgIGZvbnQtdmFyaWFudDpzbWFsbC1jYXBzO1wKLX1cCiAiOwogCiB9KShzZWxmKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3Vy
Y2VzL3dlYmlkbDIvbGliL1JFQURNRS5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3dlYmlkbDIvbGliL1JFQURNRS5tZAppbmRleCAxYmQ1
ODMyNjlkMjkyOWExNmIxYzdhZDBjNThmYWI2ZTk5YjcyYTEwLi5hZjBhZjNhOTAyZjJmM2EwMWFi
YTRjZmQ0OTRmMTQ0MzQ0MDg4OGM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy93ZWJpZGwyL2xpYi9SRUFETUUubWQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMv
d2ViaWRsMi9saWIvUkVBRE1FLm1kCkBAIC0xLDQgKzEsNiBAQAogVGhpcyBkaXJlY3RvcnkgY29u
dGFpbnMgYSBidWlsdCB2ZXJzaW9uIG9mIHRoZSBbd2ViaWRsMi5qcyBsaWJyYXJ5XShodHRwczov
L2dpdGh1Yi5jb20vdzNjL3dlYmlkbDIuanMpLgogSXQgaXMgYnVpbHQgYnkgcnVubmluZyBgbnBt
IHJ1biBidWlsZC1kZWJ1Z2AgYXQgdGhlIHJvb3Qgb2YgdGhhdCByZXBvc2l0b3J5LgogCitDdXJy
ZW50bHkgdXNpbmcgd2ViaWRsMi5qc0AyNC4xLjEgKDM3MmVhODNlYWExMGY2MGFkZmY0OWJkMGY0
ZjNjZTZhMTFkNmZiZWMpLgorCiBUaGUgYHdlYmlkbDIuanMuaGVhZGVyc2AgZmlsZSBpcyBhIGxv
Y2FsIGFkZGl0aW9uIHRvIGVuc3VyZSB0aGUgc2NyaXB0IGlzIGludGVycHJldGVkIGFzIFVURi04
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZXMvd2ViaWRsMi9saWIvd2ViaWRsMi5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3dlYmlkbDIvbGliL3dlYmlkbDIuanMK
aW5kZXggZDcwNzkwNWZhNjNlMTY4ODZlNGI4OWU2YTQwM2NkYWM2MmQ3ZGFkZC4uMzIyZjBlMTFh
NmFlNTZlYjY1YTFlNTc0ODJmZjUyMGIwNjU3ZGNkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvd2ViaWRsMi9saWIvd2Vi
aWRsMi5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Jlc291cmNlcy93ZWJpZGwyL2xpYi93ZWJpZGwyLmpzCkBAIC03LDEyNCArNywxOCBAQAogCQll
eHBvcnRzWyJXZWJJREwyIl0gPSBmYWN0b3J5KCk7CiAJZWxzZQogCQlyb290WyJXZWJJREwyIl0g
PSBmYWN0b3J5KCk7Ci19KSh0aGlzLCBmdW5jdGlvbigpIHsKLXJldHVybiAvKioqKioqLyAoZnVu
Y3Rpb24obW9kdWxlcykgeyAvLyB3ZWJwYWNrQm9vdHN0cmFwCi0vKioqKioqLyAJLy8gVGhlIG1v
ZHVsZSBjYWNoZQotLyoqKioqKi8gCXZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307Ci0vKioqKioq
LwotLyoqKioqKi8gCS8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uCi0vKioqKioqLyAJZnVuY3Rpb24g
X193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkgewotLyoqKioqKi8KLS8qKioqKiovIAkJLy8g
Q2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlCi0vKioqKioqLyAJCWlmKGluc3RhbGxlZE1vZHVs
ZXNbbW9kdWxlSWRdKSB7Ci0vKioqKioqLyAJCQlyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1
bGVJZF0uZXhwb3J0czsKLS8qKioqKiovIAkJfQotLyoqKioqKi8gCQkvLyBDcmVhdGUgYSBuZXcg
bW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKQotLyoqKioqKi8gCQl2YXIgbW9kdWxl
ID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7Ci0vKioqKioqLyAJCQlpOiBtb2R1bGVJ
ZCwKLS8qKioqKiovIAkJCWw6IGZhbHNlLAotLyoqKioqKi8gCQkJZXhwb3J0czoge30KLS8qKioq
KiovIAkJfTsKLS8qKioqKiovCi0vKioqKioqLyAJCS8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5j
dGlvbgotLyoqKioqKi8gCQltb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBt
b2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTsKLS8qKioqKiovCi0v
KioqKioqLyAJCS8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWQKLS8qKioqKiovIAkJbW9kdWxl
LmwgPSB0cnVlOwotLyoqKioqKi8KLS8qKioqKiovIAkJLy8gUmV0dXJuIHRoZSBleHBvcnRzIG9m
IHRoZSBtb2R1bGUKLS8qKioqKiovIAkJcmV0dXJuIG1vZHVsZS5leHBvcnRzOwotLyoqKioqKi8g
CX0KLS8qKioqKiovCi0vKioqKioqLwotLyoqKioqKi8gCS8vIGV4cG9zZSB0aGUgbW9kdWxlcyBv
YmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pCi0vKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVf
Xy5tID0gbW9kdWxlczsKLS8qKioqKiovCi0vKioqKioqLyAJLy8gZXhwb3NlIHRoZSBtb2R1bGUg
Y2FjaGUKLS8qKioqKiovIAlfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVz
OwotLyoqKioqKi8KLS8qKioqKiovIAkvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJt
b255IGV4cG9ydHMKLS8qKioqKiovIAlfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihl
eHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHsKLS8qKioqKiovIAkJaWYoIV9fd2VicGFja19yZXF1aXJl
X18ubyhleHBvcnRzLCBuYW1lKSkgewotLyoqKioqKi8gCQkJT2JqZWN0LmRlZmluZVByb3BlcnR5
KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7Ci0vKioq
KioqLyAJCX0KLS8qKioqKiovIAl9OwotLyoqKioqKi8KLS8qKioqKiovIAkvLyBkZWZpbmUgX19l
c01vZHVsZSBvbiBleHBvcnRzCi0vKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVu
Y3Rpb24oZXhwb3J0cykgewotLyoqKioqKi8gCQlpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZp
bmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHsKLS8qKioqKiovIAkJCU9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0p
OwotLyoqKioqKi8gCQl9Ci0vKioqKioqLyAJCU9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRz
LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7Ci0vKioqKioqLyAJfTsKLS8qKioqKiov
Ci0vKioqKioqLyAJLy8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0Ci0vKioqKioqLyAJ
Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0Ci0vKioqKioqLyAJ
Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zCi0v
KioqKioqLyAJLy8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0
Ci0vKioqKioqLyAJLy8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZQotLyoqKioqKi8g
CV9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7Ci0vKioqKioq
LyAJCWlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpOwotLyoq
KioqKi8gCQlpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlOwotLyoqKioqKi8gCQlpZigobW9kZSAm
IDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01v
ZHVsZSkgcmV0dXJuIHZhbHVlOwotLyoqKioqKi8gCQl2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51
bGwpOwotLyoqKioqKi8gCQlfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpOwotLyoqKioqKi8gCQlP
YmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2
YWx1ZTogdmFsdWUgfSk7Ci0vKioqKioqLyAJCWlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAh
PSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChu
cywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBr
ZXkpKTsKLS8qKioqKiovIAkJcmV0dXJuIG5zOwotLyoqKioqKi8gCX07Ci0vKioqKioqLwotLyoq
KioqKi8gCS8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0
aCBub24taGFybW9ueSBtb2R1bGVzCi0vKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5uID0g
ZnVuY3Rpb24obW9kdWxlKSB7Ci0vKioqKioqLyAJCXZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9k
dWxlLl9fZXNNb2R1bGUgPwotLyoqKioqKi8gCQkJZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0
dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDoKLS8qKioqKiovIAkJCWZ1bmN0aW9uIGdldE1vZHVs
ZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07Ci0vKioqKioqLyAJCV9fd2VicGFja19yZXF1
aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTsKLS8qKioqKiovIAkJcmV0dXJuIGdldHRlcjsK
LS8qKioqKiovIAl9OwotLyoqKioqKi8KLS8qKioqKiovIAkvLyBPYmplY3QucHJvdG90eXBlLmhh
c093blByb3BlcnR5LmNhbGwKLS8qKioqKiovIAlfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5j
dGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blBy
b3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07Ci0vKioqKioqLwotLyoqKioqKi8gCS8v
IF9fd2VicGFja19wdWJsaWNfcGF0aF9fCi0vKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5w
ID0gIiI7Ci0vKioqKioqLwotLyoqKioqKi8KLS8qKioqKiovIAkvLyBMb2FkIGVudHJ5IG1vZHVs
ZSBhbmQgcmV0dXJuIGV4cG9ydHMKLS8qKioqKiovIAlyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVf
XyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAwKTsKLS8qKioqKiovIH0pCi0vKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqLwotLyoqKioqKi8gKFsKLS8qIDAgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2Vi
cGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKLQotInVzZSBzdHJpY3QiOwot
X193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBp
bXBvcnQgKi8gdmFyIF9saWJfd2ViaWRsMl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTsKLS8qIGhhcm1vbnkgcmVleHBvcnQgKHNhZmUpICov
IF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAicGFyc2UiLCBmdW5j
dGlvbigpIHsgcmV0dXJuIF9saWJfd2ViaWRsMl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MF9fWyJwYXJzZSJdOyB9KTsKLQotLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9saWJfd3JpdGVy
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMw
KTsKLS8qIGhhcm1vbnkgcmVleHBvcnQgKHNhZmUpICovIF9fd2VicGFja19yZXF1aXJlX18uZChf
X3dlYnBhY2tfZXhwb3J0c19fLCAid3JpdGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIF9saWJfd3Jp
dGVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIndyaXRlIl07IH0pOwotCi0vKiBo
YXJtb255IGltcG9ydCAqLyB2YXIgX2xpYl92YWxpZGF0b3JfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMzEpOwotLyogaGFybW9ueSByZWV4cG9y
dCAoc2FmZSkgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ2
YWxpZGF0ZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gX2xpYl92YWxpZGF0b3JfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzJfX1sidmFsaWRhdGUiXTsgfSk7Ci0KLS8qIGhhcm1vbnkgaW1wb3J0
ICovIHZhciBfbGliX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0g
X193ZWJwYWNrX3JlcXVpcmVfXygyKTsKLS8qIGhhcm1vbnkgcmVleHBvcnQgKHNhZmUpICovIF9f
d2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiV2ViSURMUGFyc2VFcnJv
ciIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gX2xpYl90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzNfX1siV2ViSURMUGFyc2VFcnJvciJdOyB9KTsKLQotCi0KLQotCi0KLQotLyoq
Ki8gfSksCit9KShnbG9iYWxUaGlzLCBmdW5jdGlvbigpIHsKK3JldHVybiAvKioqKioqLyAoKCkg
PT4geyAvLyB3ZWJwYWNrQm9vdHN0cmFwCisvKioqKioqLyAJInVzZSBzdHJpY3QiOworLyoqKioq
Ki8gCXZhciBfX3dlYnBhY2tfbW9kdWxlc19fID0gKFsKKy8qIDAgKi8sCiAvKiAxICovCi0vKioq
LyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWly
ZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dl
YnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0
IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1v
bnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4
cG9ydHNfXywgInBhcnNlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBwYXJzZTsgfSk7CisvKiBoYXJt
b255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywg
eworLyogaGFybW9ueSBleHBvcnQgKi8gICAicGFyc2UiOiAoKSA9PiAoLyogYmluZGluZyAqLyBw
YXJzZSkKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oMik7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25zX2VudW1f
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTUp
OwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wcm9kdWN0aW9uc19pbmNsdWRlc19qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNik7CkBAIC0x
NTAsOCArNDQsNiBAQCBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7
CiAKIAogCi0KLQogLyoqCiAgKiBAcGFyYW0ge1Rva2VuaXNlcn0gdG9rZW5pc2VyCiAgKiBAcGFy
YW0ge29iamVjdH0gb3B0aW9ucwpAQCAtMTcyLDE2ICs2NCwxNyBAQCBmdW5jdGlvbiBwYXJzZUJ5
VG9rZW5zKHRva2VuaXNlciwgb3B0aW9ucykgewogICAgIGNvbnN0IGNhbGxiYWNrID0gY29uc3Vt
ZSgiY2FsbGJhY2siKTsKICAgICBpZiAoIWNhbGxiYWNrKSByZXR1cm47CiAgICAgaWYgKHRva2Vu
aXNlci5wcm9iZSgiaW50ZXJmYWNlIikpIHsKLSAgICAgIHJldHVybiBfcHJvZHVjdGlvbnNfY2Fs
bGJhY2tfaW50ZXJmYWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fWyJDYWxsYmFj
a0ludGVyZmFjZSJdLnBhcnNlKHRva2VuaXNlciwgY2FsbGJhY2spOworICAgICAgcmV0dXJuIF9w
cm9kdWN0aW9uc19jYWxsYmFja19pbnRlcmZhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzEwX18uQ2FsbGJhY2tJbnRlcmZhY2UucGFyc2UodG9rZW5pc2VyLCBjYWxsYmFjayk7CiAgICAg
fQotICAgIHJldHVybiBfcHJvZHVjdGlvbnNfY2FsbGJhY2tfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzVfX1siQ2FsbGJhY2tGdW5jdGlvbiJdLnBhcnNlKHRva2VuaXNlciwgY2FsbGJhY2sp
OworICAgIHJldHVybiBfcHJvZHVjdGlvbnNfY2FsbGJhY2tfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzVfXy5DYWxsYmFja0Z1bmN0aW9uLnBhcnNlKHRva2VuaXNlciwgY2FsbGJhY2spOwog
ICB9CiAKICAgZnVuY3Rpb24gaW50ZXJmYWNlXyhvcHRzKSB7CiAgICAgY29uc3QgYmFzZSA9IGNv
bnN1bWUoImludGVyZmFjZSIpOwogICAgIGlmICghYmFzZSkgcmV0dXJuOwotICAgIGNvbnN0IHJl
dCA9IF9wcm9kdWN0aW9uc19taXhpbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fWyJN
aXhpbiJdLnBhcnNlKHRva2VuaXNlciwgYmFzZSwgb3B0cykgfHwKLSAgICAgIF9wcm9kdWN0aW9u
c19pbnRlcmZhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1siSW50ZXJmYWNlIl0u
cGFyc2UodG9rZW5pc2VyLCBiYXNlLCBvcHRzKSB8fAorICAgIGNvbnN0IHJldCA9CisgICAgICBf
cHJvZHVjdGlvbnNfbWl4aW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5NaXhpbi5w
YXJzZSh0b2tlbmlzZXIsIGJhc2UsIG9wdHMpIHx8CisgICAgICBfcHJvZHVjdGlvbnNfaW50ZXJm
YWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uSW50ZXJmYWNlLnBhcnNlKHRva2Vu
aXNlciwgYmFzZSwgb3B0cykgfHwKICAgICAgIGVycm9yKCJJbnRlcmZhY2UgaGFzIG5vIHByb3Bl
ciBib2R5Iik7CiAgICAgcmV0dXJuIHJldDsKICAgfQpAQCAtMTg5LDM3ICs4Miw0MSBAQCBmdW5j
dGlvbiBwYXJzZUJ5VG9rZW5zKHRva2VuaXNlciwgb3B0aW9ucykgewogICBmdW5jdGlvbiBwYXJ0
aWFsKCkgewogICAgIGNvbnN0IHBhcnRpYWwgPSBjb25zdW1lKCJwYXJ0aWFsIik7CiAgICAgaWYg
KCFwYXJ0aWFsKSByZXR1cm47Ci0gICAgcmV0dXJuIF9wcm9kdWN0aW9uc19kaWN0aW9uYXJ5X2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X19bIkRpY3Rpb25hcnkiXS5wYXJzZSh0b2tlbmlz
ZXIsIHsgcGFydGlhbCB9KSB8fAorICAgIHJldHVybiAoCisgICAgICBfcHJvZHVjdGlvbnNfZGlj
dGlvbmFyeV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLkRpY3Rpb25hcnkucGFyc2Uo
dG9rZW5pc2VyLCB7IHBhcnRpYWwgfSkgfHwKICAgICAgIGludGVyZmFjZV8oeyBwYXJ0aWFsIH0p
IHx8Ci0gICAgICBfcHJvZHVjdGlvbnNfbmFtZXNwYWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV85X19bIk5hbWVzcGFjZSJdLnBhcnNlKHRva2VuaXNlciwgeyBwYXJ0aWFsIH0pIHx8Ci0g
ICAgICBlcnJvcigiUGFydGlhbCBkb2Vzbid0IGFwcGx5IHRvIGFueXRoaW5nIik7CisgICAgICBf
cHJvZHVjdGlvbnNfbmFtZXNwYWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18uTmFt
ZXNwYWNlLnBhcnNlKHRva2VuaXNlciwgeyBwYXJ0aWFsIH0pIHx8CisgICAgICBlcnJvcigiUGFy
dGlhbCBkb2Vzbid0IGFwcGx5IHRvIGFueXRoaW5nIikKKyAgICApOwogICB9CiAKICAgZnVuY3Rp
b24gZGVmaW5pdGlvbigpIHsKLSAgICByZXR1cm4gY2FsbGJhY2soKSB8fAorICAgIHJldHVybiAo
CisgICAgICBjYWxsYmFjaygpIHx8CiAgICAgICBpbnRlcmZhY2VfKCkgfHwKICAgICAgIHBhcnRp
YWwoKSB8fAotICAgICAgX3Byb2R1Y3Rpb25zX2RpY3Rpb25hcnlfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzhfX1siRGljdGlvbmFyeSJdLnBhcnNlKHRva2VuaXNlcikgfHwKLSAgICAgIF9w
cm9kdWN0aW9uc19lbnVtX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkVudW0iXS5w
YXJzZSh0b2tlbmlzZXIpIHx8Ci0gICAgICBfcHJvZHVjdGlvbnNfdHlwZWRlZl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfNF9fWyJUeXBlZGVmIl0ucGFyc2UodG9rZW5pc2VyKSB8fAotICAg
ICAgX3Byb2R1Y3Rpb25zX2luY2x1ZGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19b
IkluY2x1ZGVzIl0ucGFyc2UodG9rZW5pc2VyKSB8fAotICAgICAgX3Byb2R1Y3Rpb25zX25hbWVz
cGFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fWyJOYW1lc3BhY2UiXS5wYXJzZSh0
b2tlbmlzZXIpOworICAgICAgX3Byb2R1Y3Rpb25zX2RpY3Rpb25hcnlfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzhfXy5EaWN0aW9uYXJ5LnBhcnNlKHRva2VuaXNlcikgfHwKKyAgICAgIF9w
cm9kdWN0aW9uc19lbnVtX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uRW51bS5wYXJz
ZSh0b2tlbmlzZXIpIHx8CisgICAgICBfcHJvZHVjdGlvbnNfdHlwZWRlZl9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfNF9fLlR5cGVkZWYucGFyc2UodG9rZW5pc2VyKSB8fAorICAgICAgX3By
b2R1Y3Rpb25zX2luY2x1ZGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uSW5jbHVk
ZXMucGFyc2UodG9rZW5pc2VyKSB8fAorICAgICAgX3Byb2R1Y3Rpb25zX25hbWVzcGFjZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fLk5hbWVzcGFjZS5wYXJzZSh0b2tlbmlzZXIpCisg
ICAgKTsKICAgfQogCiAgIGZ1bmN0aW9uIGRlZmluaXRpb25zKCkgewogICAgIGlmICghc291cmNl
Lmxlbmd0aCkgcmV0dXJuIFtdOwogICAgIGNvbnN0IGRlZnMgPSBbXTsKICAgICB3aGlsZSAodHJ1
ZSkgewotICAgICAgY29uc3QgZWEgPSBfcHJvZHVjdGlvbnNfZXh0ZW5kZWRfYXR0cmlidXRlc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJFeHRlbmRlZEF0dHJpYnV0ZXMiXS5wYXJz
ZSh0b2tlbmlzZXIpOworICAgICAgY29uc3QgZWEgPSBfcHJvZHVjdGlvbnNfZXh0ZW5kZWRfYXR0
cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLkV4dGVuZGVkQXR0cmlidXRl
cy5wYXJzZSh0b2tlbmlzZXIpOwogICAgICAgY29uc3QgZGVmID0gZGVmaW5pdGlvbigpOwogICAg
ICAgaWYgKCFkZWYpIHsKICAgICAgICAgaWYgKGVhLmxlbmd0aCkgZXJyb3IoIlN0cmF5IGV4dGVu
ZGVkIGF0dHJpYnV0ZXMiKTsKICAgICAgICAgYnJlYWs7CiAgICAgICB9Ci0gICAgICBPYmplY3Qo
X3Byb2R1Y3Rpb25zX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX19bImF1
dG9QYXJlbnRlciJdKShkZWYpLmV4dEF0dHJzID0gZWE7CisgICAgICAoMCxfcHJvZHVjdGlvbnNf
aGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfXy5hdXRvUGFyZW50ZXIpKGRl
ZikuZXh0QXR0cnMgPSBlYTsKICAgICAgIGRlZnMucHVzaChkZWYpOwogICAgIH0KLSAgICBjb25z
dCBlb2YgPSBjb25zdW1lKCJlb2YiKTsKKyAgICBjb25zdCBlb2YgPSB0b2tlbmlzZXIuY29uc3Vt
ZVR5cGUoImVvZiIpOwogICAgIGlmIChvcHRpb25zLmNvbmNyZXRlKSB7CiAgICAgICBkZWZzLnB1
c2goZW9mKTsKICAgICB9CkBAIC0yMzcsNyArMTM0LDcgQEAgZnVuY3Rpb24gcGFyc2VCeVRva2Vu
cyh0b2tlbmlzZXIsIG9wdGlvbnMpIHsKICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuY29u
Y3JldGVdCiAgKi8KIGZ1bmN0aW9uIHBhcnNlKHN0ciwgb3B0aW9ucyA9IHt9KSB7Ci0gIGNvbnN0
IHRva2VuaXNlciA9IG5ldyBfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bIlRva2VuaXNlciJdKHN0cik7CisgIGNvbnN0IHRva2VuaXNlciA9IG5ldyBfdG9rZW5pc2Vy
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uVG9rZW5pc2VyKHN0cik7CiAgIGlmICh0
eXBlb2Ygb3B0aW9ucy5zb3VyY2VOYW1lICE9PSAidW5kZWZpbmVkIikgewogICAgIHRva2VuaXNl
ci5zb3VyY2UubmFtZSA9IG9wdGlvbnMuc291cmNlTmFtZTsKICAgfQpAQCAtMjQ3LDE1ICsxNDQs
MTYgQEAgZnVuY3Rpb24gcGFyc2Uoc3RyLCBvcHRpb25zID0ge30pIHsKIAogLyoqKi8gfSksCiAv
KiAyICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dl
YnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21v
ZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAK
LSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19f
KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQo
X193ZWJwYWNrX2V4cG9ydHNfXywgInR5cGVOYW1lS2V5d29yZHMiLCBmdW5jdGlvbigpIHsgcmV0
dXJuIHR5cGVOYW1lS2V5d29yZHM7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICov
IF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAic3RyaW5nVHlwZXMi
LCBmdW5jdGlvbigpIHsgcmV0dXJuIHN0cmluZ1R5cGVzOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0
IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywg
ImFyZ3VtZW50TmFtZUtleXdvcmRzIiwgZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudE5hbWVL
ZXl3b3JkczsgfSk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJUb2tlbmlzZXIiLCBmdW5jdGlvbigpIHsg
cmV0dXJuIFRva2VuaXNlcjsgfSk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193
ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJXZWJJRExQYXJzZUVycm9y
IiwgZnVuY3Rpb24oKSB7IHJldHVybiBXZWJJRExQYXJzZUVycm9yOyB9KTsKKy8qIGhhcm1vbnkg
ZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7Cisv
KiBoYXJtb255IGV4cG9ydCAqLyAgICJ0eXBlTmFtZUtleXdvcmRzIjogKCkgPT4gKC8qIGJpbmRp
bmcgKi8gdHlwZU5hbWVLZXl3b3JkcyksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJzdHJpbmdU
eXBlcyI6ICgpID0+ICgvKiBiaW5kaW5nICovIHN0cmluZ1R5cGVzKSwKKy8qIGhhcm1vbnkgZXhw
b3J0ICovICAgImFyZ3VtZW50TmFtZUtleXdvcmRzIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYXJn
dW1lbnROYW1lS2V5d29yZHMpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAiVG9rZW5pc2VyIjog
KCkgPT4gKC8qIGJpbmRpbmcgKi8gVG9rZW5pc2VyKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAg
IldlYklETFBhcnNlRXJyb3IiOiAoKSA9PiAoLyogYmluZGluZyAqLyBXZWJJRExQYXJzZUVycm9y
KQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Vy
cm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9f
KDMpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9wcm9kdWN0aW9uc19oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwogCkBA
IC0yNjYsMTMgKzE2NCwxNCBAQCBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9y
dHNfXyk7CiBjb25zdCB0b2tlblJlID0gewogICAvLyBUaGlzIGV4cHJlc3Npb24gdXNlcyBhIGxv
b2thaGVhZCBhc3NlcnRpb24gdG8gY2F0Y2ggZmFsc2UgbWF0Y2hlcwogICAvLyBhZ2FpbnN0IGlu
dGVnZXJzIGVhcmx5LgotICAiZGVjaW1hbCI6IC8tPyg/PVswLTldKlwufFswLTldK1tlRV0pKChb
MC05XStcLlswLTldKnxbMC05XSpcLlswLTldKykoW0VlXVstK10/WzAtOV0rKT98WzAtOV0rW0Vl
XVstK10/WzAtOV0rKS95LAotICAiaW50ZWdlciI6IC8tPygwKFtYeF1bMC05QS1GYS1mXSt8WzAt
N10qKXxbMS05XVswLTldKikveSwKLSAgImlkZW50aWZpZXIiOiAvW18tXT9bQS1aYS16XVswLTlB
LVpfYS16LV0qL3ksCi0gICJzdHJpbmciOiAvIlteIl0qIi95LAotICAid2hpdGVzcGFjZSI6IC9b
XHRcblxyIF0rL3ksCi0gICJjb21tZW50IjogLygoXC8oXC8uKnxcKihbXipdfFwqW14vXSkqXCpc
LylbXHRcblxyIF0qKSspL3ksCi0gICJvdGhlciI6IC9bXlx0XG5cciAwLTlBLVphLXpdL3kKKyAg
ZGVjaW1hbDoKKyAgICAvLT8oPz1bMC05XSpcLnxbMC05XStbZUVdKSgoWzAtOV0rXC5bMC05XSp8
WzAtOV0qXC5bMC05XSspKFtFZV1bLStdP1swLTldKyk/fFswLTldK1tFZV1bLStdP1swLTldKykv
eSwKKyAgaW50ZWdlcjogLy0/KDAoW1h4XVswLTlBLUZhLWZdK3xbMC03XSopfFsxLTldWzAtOV0q
KS95LAorICBpZGVudGlmaWVyOiAvW18tXT9bQS1aYS16XVswLTlBLVpfYS16LV0qL3ksCisgIHN0
cmluZzogLyJbXiJdKiIveSwKKyAgd2hpdGVzcGFjZTogL1tcdFxuXHIgXSsveSwKKyAgY29tbWVu
dDogL1wvXC8uKnxcL1wqKC58XG4pKj9cKlwvL3ksCisgIG90aGVyOiAvW15cdFxuXHIgMC05QS1a
YS16XS95LAogfTsKIAogY29uc3QgdHlwZU5hbWVLZXl3b3JkcyA9IFsKQEAgLTI4OSwxNCArMTg4
LDEwIEBAIGNvbnN0IHR5cGVOYW1lS2V5d29yZHMgPSBbCiAgICJGbG9hdDY0QXJyYXkiLAogICAi
YW55IiwKICAgIm9iamVjdCIsCi0gICJzeW1ib2wiCisgICJzeW1ib2wiLAogXTsKIAotY29uc3Qg
c3RyaW5nVHlwZXMgPSBbCi0gICJCeXRlU3RyaW5nIiwKLSAgIkRPTVN0cmluZyIsCi0gICJVU1ZT
dHJpbmciCi1dOworY29uc3Qgc3RyaW5nVHlwZXMgPSBbIkJ5dGVTdHJpbmciLCAiRE9NU3RyaW5n
IiwgIlVTVlN0cmluZyJdOwogCiBjb25zdCBhcmd1bWVudE5hbWVLZXl3b3JkcyA9IFsKICAgImFz
eW5jIiwKQEAgLTMyMSw3ICsyMTYsNyBAQCBjb25zdCBhcmd1bWVudE5hbWVLZXl3b3JkcyA9IFsK
ICAgInN0YXRpYyIsCiAgICJzdHJpbmdpZmllciIsCiAgICJ0eXBlZGVmIiwKLSAgInVucmVzdHJp
Y3RlZCIKKyAgInVucmVzdHJpY3RlZCIsCiBdOwogCiBjb25zdCBub25SZWdleFRlcm1pbmFscyA9
IFsKQEAgLTMyOSw3ICsyMjQsOSBAQCBjb25zdCBub25SZWdleFRlcm1pbmFscyA9IFsKICAgIkZy
b3plbkFycmF5IiwKICAgIkluZmluaXR5IiwKICAgIk5hTiIsCisgICJPYnNlcnZhYmxlQXJyYXki
LAogICAiUHJvbWlzZSIsCisgICJiaWdpbnQiLAogICAiYm9vbGVhbiIsCiAgICJieXRlIiwKICAg
ImRvdWJsZSIsCkBAIC0zNDYsOCArMjQzLDkgQEAgY29uc3Qgbm9uUmVnZXhUZXJtaW5hbHMgPSBb
CiAgICJzZXF1ZW5jZSIsCiAgICJzaG9ydCIsCiAgICJ0cnVlIiwKKyAgInVuZGVmaW5lZCIsCiAg
ICJ1bnNpZ25lZCIsCi0gICJ2b2lkIgorICAidm9pZCIsCiBdLmNvbmNhdChhcmd1bWVudE5hbWVL
ZXl3b3Jkcywgc3RyaW5nVHlwZXMsIHR5cGVOYW1lS2V5d29yZHMpOwogCiBjb25zdCBwdW5jdHVh
dGlvbnMgPSBbCkBAIC0zNjQsNyArMjYyLDcgQEAgY29uc3QgcHVuY3R1YXRpb25zID0gWwogICAi
WyIsCiAgICJdIiwKICAgInsiLAotICAifSIKKyAgIn0iLAogXTsKIAogY29uc3QgcmVzZXJ2ZWQg
PSBbCkBAIC0zOTAsNyArMjg4LDcgQEAgZnVuY3Rpb24gdG9rZW5pc2Uoc3RyKSB7CiAKICAgICBp
ZiAoL1tcdFxuXHIgXS8udGVzdChuZXh0Q2hhcikpIHsKICAgICAgIHJlc3VsdCA9IGF0dGVtcHRU
b2tlbk1hdGNoKCJ3aGl0ZXNwYWNlIiwgeyBub0ZsdXNoVHJpdmlhOiB0cnVlIH0pOwotICAgIH0g
ZWxzZSBpZiAobmV4dENoYXIgPT09ICcvJykgeworICAgIH0gZWxzZSBpZiAobmV4dENoYXIgPT09
ICIvIikgewogICAgICAgcmVzdWx0ID0gYXR0ZW1wdFRva2VuTWF0Y2goImNvbW1lbnQiLCB7IG5v
Rmx1c2hUcml2aWE6IHRydWUgfSk7CiAgICAgfQogCkBAIC00MTAsMTAgKzMwOCwxNCBAQCBmdW5j
dGlvbiB0b2tlbmlzZShzdHIpIHsKICAgICAgICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbbGFzdElu
ZGV4XTsKICAgICAgICAgaWYgKHJlc3VsdCAhPT0gLTEpIHsKICAgICAgICAgICBpZiAocmVzZXJ2
ZWQuaW5jbHVkZXModG9rZW4udmFsdWUpKSB7Ci0gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0g
YCR7T2JqZWN0KF9wcm9kdWN0aW9uc19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8xX19bInVuZXNjYXBlIl0pKHRva2VuLnZhbHVlKX0gaXMgYSByZXNlcnZlZCBpZGVudGlmaWVy
IGFuZCBtdXN0IG5vdCBiZSB1c2VkLmA7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgV2ViSURMUGFy
c2VFcnJvcihPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bInN5
bnRheEVycm9yIl0pKHRva2VucywgbGFzdEluZGV4LCBudWxsLCBtZXNzYWdlKSk7CisgICAgICAg
ICAgICBjb25zdCBtZXNzYWdlID0gYCR7KDAsX3Byb2R1Y3Rpb25zX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfXy51bmVzY2FwZSkoCisgICAgICAgICAgICAgIHRva2VuLnZh
bHVlCisgICAgICAgICAgICApfSBpcyBhIHJlc2VydmVkIGlkZW50aWZpZXIgYW5kIG11c3Qgbm90
IGJlIHVzZWQuYDsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJJRExQYXJzZUVycm9yKAorICAg
ICAgICAgICAgICAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5zeW50
YXhFcnJvcikodG9rZW5zLCBsYXN0SW5kZXgsIG51bGwsIG1lc3NhZ2UpCisgICAgICAgICAgICAp
OwogICAgICAgICAgIH0gZWxzZSBpZiAobm9uUmVnZXhUZXJtaW5hbHMuaW5jbHVkZXModG9rZW4u
dmFsdWUpKSB7Ci0gICAgICAgICAgICB0b2tlbi50eXBlID0gdG9rZW4udmFsdWU7CisgICAgICAg
ICAgICB0b2tlbi50eXBlID0gImlubGluZSI7CiAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
ICB9CkBAIC00MjMsNyArMzI1LDEzIEBAIGZ1bmN0aW9uIHRva2VuaXNlKHN0cikgewogCiAgICAg
Zm9yIChjb25zdCBwdW5jdHVhdGlvbiBvZiBwdW5jdHVhdGlvbnMpIHsKICAgICAgIGlmIChzdHIu
c3RhcnRzV2l0aChwdW5jdHVhdGlvbiwgbGFzdENoYXJJbmRleCkpIHsKLSAgICAgICAgdG9rZW5z
LnB1c2goeyB0eXBlOiBwdW5jdHVhdGlvbiwgdmFsdWU6IHB1bmN0dWF0aW9uLCB0cml2aWEsIGxp
bmUsIGluZGV4IH0pOworICAgICAgICB0b2tlbnMucHVzaCh7CisgICAgICAgICAgdHlwZTogImlu
bGluZSIsCisgICAgICAgICAgdmFsdWU6IHB1bmN0dWF0aW9uLAorICAgICAgICAgIHRyaXZpYSwK
KyAgICAgICAgICBsaW5lLAorICAgICAgICAgIGluZGV4LAorICAgICAgICB9KTsKICAgICAgICAg
dHJpdmlhID0gIiI7CiAgICAgICAgIGxhc3RDaGFySW5kZXggKz0gcHVuY3R1YXRpb24ubGVuZ3Ro
OwogICAgICAgICByZXN1bHQgPSBsYXN0Q2hhckluZGV4OwpAQCAtNDQ2LDcgKzM1NCw3IEBAIGZ1
bmN0aW9uIHRva2VuaXNlKHN0cikgewogICB0b2tlbnMucHVzaCh7CiAgICAgdHlwZTogImVvZiIs
CiAgICAgdmFsdWU6ICIiLAotICAgIHRyaXZpYQorICAgIHRyaXZpYSwKICAgfSk7CiAKICAgcmV0
dXJuIHRva2VuczsKQEAgLTQ4NSwyOCArMzkzLDU1IEBAIGNsYXNzIFRva2VuaXNlciB7CiAgICAq
IEByZXR1cm4ge25ldmVyfQogICAgKi8KICAgZXJyb3IobWVzc2FnZSkgewotICAgIHRocm93IG5l
dyBXZWJJRExQYXJzZUVycm9yKE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfX1sic3ludGF4RXJyb3IiXSkodGhpcy5zb3VyY2UsIHRoaXMucG9zaXRpb24sIHRoaXMu
Y3VycmVudCwgbWVzc2FnZSkpOworICAgIHRocm93IG5ldyBXZWJJRExQYXJzZUVycm9yKAorICAg
ICAgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uc3ludGF4RXJyb3Ip
KHRoaXMuc291cmNlLCB0aGlzLnBvc2l0aW9uLCB0aGlzLmN1cnJlbnQsIG1lc3NhZ2UpCisgICAg
KTsKICAgfQogCiAgIC8qKgogICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZQogICAgKi8KLSAgcHJv
YmUodHlwZSkgewotICAgIHJldHVybiB0aGlzLnNvdXJjZS5sZW5ndGggPiB0aGlzLnBvc2l0aW9u
ICYmIHRoaXMuc291cmNlW3RoaXMucG9zaXRpb25dLnR5cGUgPT09IHR5cGU7CisgIHByb2JlVHlw
ZSh0eXBlKSB7CisgICAgcmV0dXJuICgKKyAgICAgIHRoaXMuc291cmNlLmxlbmd0aCA+IHRoaXMu
cG9zaXRpb24gJiYKKyAgICAgIHRoaXMuc291cmNlW3RoaXMucG9zaXRpb25dLnR5cGUgPT09IHR5
cGUKKyAgICApOworICB9CisKKyAgLyoqCisgICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZQorICAg
Ki8KKyAgcHJvYmUodmFsdWUpIHsKKyAgICByZXR1cm4gKAorICAgICAgdGhpcy5wcm9iZVR5cGUo
ImlubGluZSIpICYmIHRoaXMuc291cmNlW3RoaXMucG9zaXRpb25dLnZhbHVlID09PSB2YWx1ZQor
ICAgICk7CiAgIH0KIAogICAvKioKICAgICogQHBhcmFtICB7Li4uc3RyaW5nfSBjYW5kaWRhdGVz
CiAgICAqLwotICBjb25zdW1lKC4uLmNhbmRpZGF0ZXMpIHsKKyAgY29uc3VtZVR5cGUoLi4uY2Fu
ZGlkYXRlcykgewogICAgIGZvciAoY29uc3QgdHlwZSBvZiBjYW5kaWRhdGVzKSB7Ci0gICAgICBp
ZiAoIXRoaXMucHJvYmUodHlwZSkpIGNvbnRpbnVlOworICAgICAgaWYgKCF0aGlzLnByb2JlVHlw
ZSh0eXBlKSkgY29udGludWU7CiAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuc291cmNlW3RoaXMu
cG9zaXRpb25dOwogICAgICAgdGhpcy5wb3NpdGlvbisrOwogICAgICAgcmV0dXJuIHRva2VuOwog
ICAgIH0KICAgfQogCisgIC8qKgorICAgKiBAcGFyYW0gIHsuLi5zdHJpbmd9IGNhbmRpZGF0ZXMK
KyAgICovCisgIGNvbnN1bWUoLi4uY2FuZGlkYXRlcykgeworICAgIGlmICghdGhpcy5wcm9iZVR5
cGUoImlubGluZSIpKSByZXR1cm47CisgICAgY29uc3QgdG9rZW4gPSB0aGlzLnNvdXJjZVt0aGlz
LnBvc2l0aW9uXTsKKyAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGNhbmRpZGF0ZXMpIHsKKyAgICAg
IGlmICh0b2tlbi52YWx1ZSAhPT0gdmFsdWUpIGNvbnRpbnVlOworICAgICAgdGhpcy5wb3NpdGlv
bisrOworICAgICAgcmV0dXJuIHRva2VuOworICAgIH0KKyAgfQorCiAgIC8qKgogICAgKiBAcGFy
YW0ge251bWJlcn0gcG9zaXRpb24KICAgICovCkBAIC01MjYsNyArNDYxLDE1IEBAIGNsYXNzIFdl
YklETFBhcnNlRXJyb3IgZXh0ZW5kcyBFcnJvciB7CiAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRp
b25zLmlucHV0CiAgICAqIEBwYXJhbSB7KltdfSBvcHRpb25zLnRva2VucwogICAgKi8KLSAgY29u
c3RydWN0b3IoeyBtZXNzYWdlLCBiYXJlTWVzc2FnZSwgY29udGV4dCwgbGluZSwgc291cmNlTmFt
ZSwgaW5wdXQsIHRva2VucyB9KSB7CisgIGNvbnN0cnVjdG9yKHsKKyAgICBtZXNzYWdlLAorICAg
IGJhcmVNZXNzYWdlLAorICAgIGNvbnRleHQsCisgICAgbGluZSwKKyAgICBzb3VyY2VOYW1lLAor
ICAgIGlucHV0LAorICAgIHRva2VucywKKyAgfSkgewogICAgIHN1cGVyKG1lc3NhZ2UpOwogCiAg
ICAgdGhpcy5uYW1lID0gIldlYklETFBhcnNlRXJyb3IiOyAvLyBub3QgdG8gYmUgbWFuZ2xlZApA
QCAtNTQyLDEyICs0ODUsMTMgQEAgY2xhc3MgV2ViSURMUGFyc2VFcnJvciBleHRlbmRzIEVycm9y
IHsKIAogLyoqKi8gfSksCiAvKiAzICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBh
Y2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dl
YnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tf
cmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihf
X3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dl
YnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInN5bnRheEVycm9yIiwgZnVu
Y3Rpb24oKSB7IHJldHVybiBzeW50YXhFcnJvcjsgfSk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmlu
ZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ2YWxp
ZGF0aW9uRXJyb3IiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHZhbGlkYXRpb25FcnJvcjsgfSk7Cisv
KiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9y
dHNfXywgeworLyogaGFybW9ueSBleHBvcnQgKi8gICAic3ludGF4RXJyb3IiOiAoKSA9PiAoLyog
YmluZGluZyAqLyBzeW50YXhFcnJvciksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJ2YWxpZGF0
aW9uRXJyb3IiOiAoKSA9PiAoLyogYmluZGluZyAqLyB2YWxpZGF0aW9uRXJyb3IpCisvKiBoYXJt
b255IGV4cG9ydCAqLyB9KTsKIC8qKgogICogQHBhcmFtIHtzdHJpbmd9IHRleHQKICAqLwpAQCAt
NTU2LDYgKzUwMCwyNCBAQCBmdW5jdGlvbiBsYXN0TGluZSh0ZXh0KSB7CiAgIHJldHVybiBzcGxp
dHRlZFtzcGxpdHRlZC5sZW5ndGggLSAxXTsKIH0KIAorZnVuY3Rpb24gYXBwZW5kSWZFeGlzdChi
YXNlLCB0YXJnZXQpIHsKKyAgbGV0IHJlc3VsdCA9IGJhc2U7CisgIGlmICh0YXJnZXQpIHsKKyAg
ICByZXN1bHQgKz0gYCAke3RhcmdldH1gOworICB9CisgIHJldHVybiByZXN1bHQ7Cit9CisKK2Z1
bmN0aW9uIGNvbnRleHRBc1RleHQobm9kZSkgeworICBjb25zdCBoaWVyYXJjaHkgPSBbbm9kZV07
CisgIHdoaWxlIChub2RlICYmIG5vZGUucGFyZW50KSB7CisgICAgY29uc3QgeyBwYXJlbnQgfSA9
IG5vZGU7CisgICAgaGllcmFyY2h5LnVuc2hpZnQocGFyZW50KTsKKyAgICBub2RlID0gcGFyZW50
OworICB9CisgIHJldHVybiBoaWVyYXJjaHkubWFwKChuKSA9PiBhcHBlbmRJZkV4aXN0KG4udHlw
ZSwgbi5uYW1lKSkuam9pbigiIC0+ICIpOworfQorCiAvKioKICAqIEB0eXBlZGVmIHtvYmplY3R9
IFdlYklETDJFcnJvck9wdGlvbnMKICAqIEBwcm9wZXJ0eSB7ImVycm9yIiB8ICJ3YXJuaW5nIn0g
W2xldmVsXQpAQCAtNTY1LDE4ICs1MjcsMjUgQEAgZnVuY3Rpb24gbGFzdExpbmUodGV4dCkgewog
ICogQHBhcmFtIHsiU3ludGF4IiB8ICJWYWxpZGF0aW9uIn0ga2luZCBlcnJvciB0eXBlCiAgKiBA
cGFyYW0ge1dlYklETDJFcnJvck9wdGlvbnN9IFtvcHRpb25zXQogICovCi1mdW5jdGlvbiBlcnJv
cihzb3VyY2UsIHBvc2l0aW9uLCBjdXJyZW50LCBtZXNzYWdlLCBraW5kLCB7IGxldmVsID0gImVy
cm9yIiwgYXV0b2ZpeCwgcnVsZU5hbWUgfSA9IHt9KSB7CitmdW5jdGlvbiBlcnJvcigKKyAgc291
cmNlLAorICBwb3NpdGlvbiwKKyAgY3VycmVudCwKKyAgbWVzc2FnZSwKKyAga2luZCwKKyAgeyBs
ZXZlbCA9ICJlcnJvciIsIGF1dG9maXgsIHJ1bGVOYW1lIH0gPSB7fQorKSB7CiAgIC8qKgogICAg
KiBAcGFyYW0ge251bWJlcn0gY291bnQKICAgICovCiAgIGZ1bmN0aW9uIHNsaWNlVG9rZW5zKGNv
dW50KSB7Ci0gICAgcmV0dXJuIGNvdW50ID4gMCA/Ci0gICAgICBzb3VyY2Uuc2xpY2UocG9zaXRp
b24sIHBvc2l0aW9uICsgY291bnQpIDoKLSAgICAgIHNvdXJjZS5zbGljZShNYXRoLm1heChwb3Np
dGlvbiArIGNvdW50LCAwKSwgcG9zaXRpb24pOworICAgIHJldHVybiBjb3VudCA+IDAKKyAgICAg
ID8gc291cmNlLnNsaWNlKHBvc2l0aW9uLCBwb3NpdGlvbiArIGNvdW50KQorICAgICAgOiBzb3Vy
Y2Uuc2xpY2UoTWF0aC5tYXgocG9zaXRpb24gKyBjb3VudCwgMCksIHBvc2l0aW9uKTsKICAgfQog
CiAgIGZ1bmN0aW9uIHRva2Vuc1RvVGV4dChpbnB1dHMsIHsgcHJlY2VkZXMgfSA9IHt9KSB7Ci0g
ICAgY29uc3QgdGV4dCA9IGlucHV0cy5tYXAodCA9PiB0LnRyaXZpYSArIHQudmFsdWUpLmpvaW4o
IiIpOworICAgIGNvbnN0IHRleHQgPSBpbnB1dHMubWFwKCh0KSA9PiB0LnRyaXZpYSArIHQudmFs
dWUpLmpvaW4oIiIpOwogICAgIGNvbnN0IG5leHRUb2tlbiA9IHNvdXJjZVtwb3NpdGlvbl07CiAg
ICAgaWYgKG5leHRUb2tlbi50eXBlID09PSAiZW9mIikgewogICAgICAgcmV0dXJuIHRleHQ7CkBA
IC01ODksOSArNTU4LDExIEBAIGZ1bmN0aW9uIGVycm9yKHNvdXJjZSwgcG9zaXRpb24sIGN1cnJl
bnQsIG1lc3NhZ2UsIGtpbmQsIHsgbGV2ZWwgPSAiZXJyb3IiLCBhdXRvCiAKICAgY29uc3QgbWF4
VG9rZW5zID0gNTsgLy8gYXJiaXRyYXJ5IGJ1dCB3b3JrcyB3ZWxsIGVub3VnaAogICBjb25zdCBs
aW5lID0KLSAgICBzb3VyY2VbcG9zaXRpb25dLnR5cGUgIT09ICJlb2YiID8gc291cmNlW3Bvc2l0
aW9uXS5saW5lIDoKLSAgICBzb3VyY2UubGVuZ3RoID4gMSA/IHNvdXJjZVtwb3NpdGlvbiAtIDFd
LmxpbmUgOgotICAgIDE7CisgICAgc291cmNlW3Bvc2l0aW9uXS50eXBlICE9PSAiZW9mIgorICAg
ICAgPyBzb3VyY2VbcG9zaXRpb25dLmxpbmUKKyAgICAgIDogc291cmNlLmxlbmd0aCA+IDEKKyAg
ICAgID8gc291cmNlW3Bvc2l0aW9uIC0gMV0ubGluZQorICAgICAgOiAxOwogCiAgIGNvbnN0IHBy
ZWNlZGluZ0xhc3RMaW5lID0gbGFzdExpbmUoCiAgICAgdG9rZW5zVG9UZXh0KHNsaWNlVG9rZW5z
KC1tYXhUb2tlbnMpLCB7IHByZWNlZGVzOiB0cnVlIH0pCkBAIC02MDYsNyArNTc3LDEyIEBAIGZ1
bmN0aW9uIGVycm9yKHNvdXJjZSwgcG9zaXRpb24sIGN1cnJlbnQsIG1lc3NhZ2UsIGtpbmQsIHsg
bGV2ZWwgPSAiZXJyb3IiLCBhdXRvCiAKICAgY29uc3QgY29udGV4dFR5cGUgPSBraW5kID09PSAi
U3ludGF4IiA/ICJzaW5jZSIgOiAiaW5zaWRlIjsKICAgY29uc3QgaW5Tb3VyY2VOYW1lID0gc291
cmNlLm5hbWUgPyBgIGluICR7c291cmNlLm5hbWV9YCA6ICIiOwotICBjb25zdCBncmFtbWF0aWNh
bENvbnRleHQgPSAoY3VycmVudCAmJiBjdXJyZW50Lm5hbWUpID8gYCwgJHtjb250ZXh0VHlwZX0g
XGAke2N1cnJlbnQucGFydGlhbCA/ICJwYXJ0aWFsICIgOiAiIn0ke2N1cnJlbnQudHlwZX0gJHtj
dXJyZW50Lm5hbWV9XGBgIDogIiI7CisgIGNvbnN0IGdyYW1tYXRpY2FsQ29udGV4dCA9CisgICAg
Y3VycmVudCAmJiBjdXJyZW50Lm5hbWUKKyAgICAgID8gYCwgJHtjb250ZXh0VHlwZX0gXGAke2N1
cnJlbnQucGFydGlhbCA/ICJwYXJ0aWFsICIgOiAiIn0ke2NvbnRleHRBc1RleHQoCisgICAgICAg
ICAgY3VycmVudAorICAgICAgICApfVxgYAorICAgICAgOiAiIjsKICAgY29uc3QgY29udGV4dCA9
IGAke2tpbmR9IGVycm9yIGF0IGxpbmUgJHtsaW5lfSR7aW5Tb3VyY2VOYW1lfSR7Z3JhbW1hdGlj
YWxDb250ZXh0fTpcbiR7c291cmNlQ29udGV4dH1gOwogICByZXR1cm4gewogICAgIG1lc3NhZ2U6
IGAke2NvbnRleHR9ICR7bWVzc2FnZX1gLApAQCAtNjE4LDcgKzU5NCw3IEBAIGZ1bmN0aW9uIGVy
cm9yKHNvdXJjZSwgcG9zaXRpb24sIGN1cnJlbnQsIG1lc3NhZ2UsIGtpbmQsIHsgbGV2ZWwgPSAi
ZXJyb3IiLCBhdXRvCiAgICAgcnVsZU5hbWUsCiAgICAgYXV0b2ZpeCwKICAgICBpbnB1dDogc3Vi
c2VxdWVudFRleHQsCi0gICAgdG9rZW5zOiBzdWJzZXF1ZW50VG9rZW5zCisgICAgdG9rZW5zOiBz
dWJzZXF1ZW50VG9rZW5zLAogICB9OwogfQogCkBAIC02MzMsMzMgKzYwOSw0NyBAQCBmdW5jdGlv
biBzeW50YXhFcnJvcihzb3VyY2UsIHBvc2l0aW9uLCBjdXJyZW50LCBtZXNzYWdlKSB7CiAgKiBA
cGFyYW0ge3N0cmluZ30gbWVzc2FnZSBlcnJvciBtZXNzYWdlCiAgKiBAcGFyYW0ge1dlYklETDJF
cnJvck9wdGlvbnN9IFtvcHRpb25zXQogICovCi1mdW5jdGlvbiB2YWxpZGF0aW9uRXJyb3IodG9r
ZW4sIGN1cnJlbnQsIHJ1bGVOYW1lLCBtZXNzYWdlLCBvcHRpb25zID0ge30pIHsKK2Z1bmN0aW9u
IHZhbGlkYXRpb25FcnJvcigKKyAgdG9rZW4sCisgIGN1cnJlbnQsCisgIHJ1bGVOYW1lLAorICBt
ZXNzYWdlLAorICBvcHRpb25zID0ge30KKykgewogICBvcHRpb25zLnJ1bGVOYW1lID0gcnVsZU5h
bWU7Ci0gIHJldHVybiBlcnJvcihjdXJyZW50LnNvdXJjZSwgdG9rZW4uaW5kZXgsIGN1cnJlbnQs
IG1lc3NhZ2UsICJWYWxpZGF0aW9uIiwgb3B0aW9ucyk7CisgIHJldHVybiBlcnJvcigKKyAgICBj
dXJyZW50LnNvdXJjZSwKKyAgICB0b2tlbi5pbmRleCwKKyAgICBjdXJyZW50LAorICAgIG1lc3Nh
Z2UsCisgICAgIlZhbGlkYXRpb24iLAorICAgIG9wdGlvbnMKKyAgKTsKIH0KIAogCiAvKioqLyB9
KSwKIC8qIDQgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18s
IF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBh
Y2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+
IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBv
cnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJl
X18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAidW5lc2NhcGUiLCBmdW5jdGlvbigpIHsgcmV0dXJu
IHVuZXNjYXBlOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tf
cmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImxpc3QiLCBmdW5jdGlvbigpIHsgcmV0
dXJuIGxpc3Q7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19y
ZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiY29uc3RfdmFsdWUiLCBmdW5jdGlvbigp
IHsgcmV0dXJuIGNvbnN0X3ZhbHVlOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAq
LyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImNvbnN0X2RhdGEi
LCBmdW5jdGlvbigpIHsgcmV0dXJuIGNvbnN0X2RhdGE7IH0pOwotLyogaGFybW9ueSBleHBvcnQg
KGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAi
cHJpbWl0aXZlX3R5cGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHByaW1pdGl2ZV90eXBlOyB9KTsK
LS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193
ZWJwYWNrX2V4cG9ydHNfXywgImFyZ3VtZW50X2xpc3QiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGFy
Z3VtZW50X2xpc3Q7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFj
a19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAidHlwZV93aXRoX2V4dGVuZGVkX2F0
dHJpYnV0ZXMiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1
dGVzOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWly
ZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInJldHVybl90eXBlIiwgZnVuY3Rpb24oKSB7IHJl
dHVybiByZXR1cm5fdHlwZTsgfSk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193
ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJzdHJpbmdpZmllciIsIGZ1
bmN0aW9uKCkgeyByZXR1cm4gc3RyaW5naWZpZXI7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJp
bmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiZ2V0
TGFzdEluZGVudGF0aW9uIiwgZnVuY3Rpb24oKSB7IHJldHVybiBnZXRMYXN0SW5kZW50YXRpb247
IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18u
ZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiZ2V0TWVtYmVySW5kZW50YXRpb24iLCBmdW5jdGlvbigp
IHsgcmV0dXJuIGdldE1lbWJlckluZGVudGF0aW9uOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChi
aW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImF1
dG9maXhBZGRFeHBvc2VkV2luZG93IiwgZnVuY3Rpb24oKSB7IHJldHVybiBhdXRvZml4QWRkRXhw
b3NlZFdpbmRvdzsgfSk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNr
X3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJnZXRGaXJzdFRva2VuIiwgZnVuY3Rp
b24oKSB7IHJldHVybiBnZXRGaXJzdFRva2VuOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5k
aW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImZpbmRM
YXN0SW5kZXgiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGZpbmRMYXN0SW5kZXg7IH0pOwotLyogaGFy
bW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tf
ZXhwb3J0c19fLCAiYXV0b1BhcmVudGVyIiwgZnVuY3Rpb24oKSB7IHJldHVybiBhdXRvUGFyZW50
ZXI7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2Vi
cGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgInVuZXNjYXBlIjogKCkg
PT4gKC8qIGJpbmRpbmcgKi8gdW5lc2NhcGUpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAibGlz
dCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGxpc3QpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAi
Y29uc3RfdmFsdWUiOiAoKSA9PiAoLyogYmluZGluZyAqLyBjb25zdF92YWx1ZSksCisvKiBoYXJt
b255IGV4cG9ydCAqLyAgICJjb25zdF9kYXRhIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gY29uc3Rf
ZGF0YSksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJwcmltaXRpdmVfdHlwZSI6ICgpID0+ICgv
KiBiaW5kaW5nICovIHByaW1pdGl2ZV90eXBlKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgImFy
Z3VtZW50X2xpc3QiOiAoKSA9PiAoLyogYmluZGluZyAqLyBhcmd1bWVudF9saXN0KSwKKy8qIGhh
cm1vbnkgZXhwb3J0ICovICAgInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIjogKCkgPT4g
KC8qIGJpbmRpbmcgKi8gdHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMpLAorLyogaGFybW9u
eSBleHBvcnQgKi8gICAicmV0dXJuX3R5cGUiOiAoKSA9PiAoLyogYmluZGluZyAqLyByZXR1cm5f
dHlwZSksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJzdHJpbmdpZmllciI6ICgpID0+ICgvKiBi
aW5kaW5nICovIHN0cmluZ2lmaWVyKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgImdldExhc3RJ
bmRlbnRhdGlvbiI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldExhc3RJbmRlbnRhdGlvbiksCisv
KiBoYXJtb255IGV4cG9ydCAqLyAgICJnZXRNZW1iZXJJbmRlbnRhdGlvbiI6ICgpID0+ICgvKiBi
aW5kaW5nICovIGdldE1lbWJlckluZGVudGF0aW9uKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAg
ImF1dG9maXhBZGRFeHBvc2VkV2luZG93IjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYXV0b2ZpeEFk
ZEV4cG9zZWRXaW5kb3cpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAiZ2V0Rmlyc3RUb2tlbiI6
ICgpID0+ICgvKiBiaW5kaW5nICovIGdldEZpcnN0VG9rZW4pLAorLyogaGFybW9ueSBleHBvcnQg
Ki8gICAiZmluZExhc3RJbmRleCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGZpbmRMYXN0SW5kZXgp
LAorLyogaGFybW9ueSBleHBvcnQgKi8gICAiYXV0b1BhcmVudGVyIjogKCkgPT4gKC8qIGJpbmRp
bmcgKi8gYXV0b1BhcmVudGVyKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255
IGltcG9ydCAqLyB2YXIgX3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9f
d2VicGFja19yZXF1aXJlX18oNSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FyZ3VtZW50
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEx
KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4KTsKQEAgLTY3
Nyw3ICs2NjcsNyBAQCBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7
CiAgKiBAcGFyYW0ge3N0cmluZ30gaWRlbnRpZmllcgogICovCiBmdW5jdGlvbiB1bmVzY2FwZShp
ZGVudGlmaWVyKSB7Ci0gIHJldHVybiBpZGVudGlmaWVyLnN0YXJ0c1dpdGgoJ18nKSA/IGlkZW50
aWZpZXIuc2xpY2UoMSkgOiBpZGVudGlmaWVyOworICByZXR1cm4gaWRlbnRpZmllci5zdGFydHNX
aXRoKCJfIikgPyBpZGVudGlmaWVyLnNsaWNlKDEpIDogaWRlbnRpZmllcjsKIH0KIAogLyoqCkBA
IC03MTQsNyArNzA0LDEwIEBAIGZ1bmN0aW9uIGxpc3QodG9rZW5pc2VyLCB7IHBhcnNlciwgYWxs
b3dEYW5nbGVyLCBsaXN0TmFtZSA9ICJsaXN0IiB9KSB7CiAgKiBAcGFyYW0ge2ltcG9ydCgiLi4v
dG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAqLwogZnVuY3Rpb24gY29uc3RfdmFs
dWUodG9rZW5pc2VyKSB7Ci0gIHJldHVybiB0b2tlbmlzZXIuY29uc3VtZSgidHJ1ZSIsICJmYWxz
ZSIsICJJbmZpbml0eSIsICItSW5maW5pdHkiLCAiTmFOIiwgImRlY2ltYWwiLCAiaW50ZWdlciIp
OworICByZXR1cm4gKAorICAgIHRva2VuaXNlci5jb25zdW1lVHlwZSgiZGVjaW1hbCIsICJpbnRl
Z2VyIikgfHwKKyAgICB0b2tlbmlzZXIuY29uc3VtZSgidHJ1ZSIsICJmYWxzZSIsICJJbmZpbml0
eSIsICItSW5maW5pdHkiLCAiTmFOIikKKyAgKTsKIH0KIAogLyoqCkBAIC03MjQsMjMgKzcxNywy
NiBAQCBmdW5jdGlvbiBjb25zdF92YWx1ZSh0b2tlbmlzZXIpIHsKICAqLwogZnVuY3Rpb24gY29u
c3RfZGF0YSh7IHR5cGUsIHZhbHVlIH0pIHsKICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSAi
ZGVjaW1hbCI6CisgICAgY2FzZSAiaW50ZWdlciI6CisgICAgICByZXR1cm4geyB0eXBlOiAibnVt
YmVyIiwgdmFsdWUgfTsKKyAgICBjYXNlICJzdHJpbmciOgorICAgICAgcmV0dXJuIHsgdHlwZTog
InN0cmluZyIsIHZhbHVlOiB2YWx1ZS5zbGljZSgxLCAtMSkgfTsKKyAgfQorCisgIHN3aXRjaCAo
dmFsdWUpIHsKICAgICBjYXNlICJ0cnVlIjoKICAgICBjYXNlICJmYWxzZSI6Ci0gICAgICByZXR1
cm4geyB0eXBlOiAiYm9vbGVhbiIsIHZhbHVlOiB0eXBlID09PSAidHJ1ZSIgfTsKKyAgICAgIHJl
dHVybiB7IHR5cGU6ICJib29sZWFuIiwgdmFsdWU6IHZhbHVlID09PSAidHJ1ZSIgfTsKICAgICBj
YXNlICJJbmZpbml0eSI6CiAgICAgY2FzZSAiLUluZmluaXR5IjoKLSAgICAgIHJldHVybiB7IHR5
cGU6ICJJbmZpbml0eSIsIG5lZ2F0aXZlOiB0eXBlLnN0YXJ0c1dpdGgoIi0iKSB9OworICAgICAg
cmV0dXJuIHsgdHlwZTogIkluZmluaXR5IiwgbmVnYXRpdmU6IHZhbHVlLnN0YXJ0c1dpdGgoIi0i
KSB9OwogICAgIGNhc2UgIlsiOgogICAgICAgcmV0dXJuIHsgdHlwZTogInNlcXVlbmNlIiwgdmFs
dWU6IFtdIH07CiAgICAgY2FzZSAieyI6CiAgICAgICByZXR1cm4geyB0eXBlOiAiZGljdGlvbmFy
eSIgfTsKLSAgICBjYXNlICJkZWNpbWFsIjoKLSAgICBjYXNlICJpbnRlZ2VyIjoKLSAgICAgIHJl
dHVybiB7IHR5cGU6ICJudW1iZXIiLCB2YWx1ZSB9OwotICAgIGNhc2UgInN0cmluZyI6Ci0gICAg
ICByZXR1cm4geyB0eXBlOiAic3RyaW5nIiwgdmFsdWU6IHZhbHVlLnNsaWNlKDEsIC0xKSB9Owog
ICAgIGRlZmF1bHQ6Ci0gICAgICByZXR1cm4geyB0eXBlIH07CisgICAgICByZXR1cm4geyB0eXBl
OiB2YWx1ZSB9OwogICB9CiB9CiAKQEAgLTc1Myw3ICs3NDksNyBAQCBmdW5jdGlvbiBwcmltaXRp
dmVfdHlwZSh0b2tlbmlzZXIpIHsKICAgICBjb25zdCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUo
InNob3J0IiwgImxvbmciKTsKICAgICBpZiAoYmFzZSkgewogICAgICAgY29uc3QgcG9zdGZpeCA9
IHRva2VuaXNlci5jb25zdW1lKCJsb25nIik7Ci0gICAgICByZXR1cm4gbmV3IF90eXBlX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIlR5cGUiXSh7IHNvdXJjZSwgdG9rZW5zOiB7IHBy
ZWZpeCwgYmFzZSwgcG9zdGZpeCB9IH0pOworICAgICAgcmV0dXJuIG5ldyBfdHlwZV9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlR5cGUoeyBzb3VyY2UsIHRva2VuczogeyBwcmVmaXgs
IGJhc2UsIHBvc3RmaXggfSB9KTsKICAgICB9CiAgICAgaWYgKHByZWZpeCkgdG9rZW5pc2VyLmVy
cm9yKCJGYWlsZWQgdG8gcGFyc2UgaW50ZWdlciB0eXBlIik7CiAgIH0KQEAgLTc2Miw3ICs3NTgs
NyBAQCBmdW5jdGlvbiBwcmltaXRpdmVfdHlwZSh0b2tlbmlzZXIpIHsKICAgICBjb25zdCBwcmVm
aXggPSB0b2tlbmlzZXIuY29uc3VtZSgidW5yZXN0cmljdGVkIik7CiAgICAgY29uc3QgYmFzZSA9
IHRva2VuaXNlci5jb25zdW1lKCJmbG9hdCIsICJkb3VibGUiKTsKICAgICBpZiAoYmFzZSkgewot
ICAgICAgcmV0dXJuIG5ldyBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJU
eXBlIl0oeyBzb3VyY2UsIHRva2VuczogeyBwcmVmaXgsIGJhc2UgfSB9KTsKKyAgICAgIHJldHVy
biBuZXcgX3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5UeXBlKHsgc291cmNl
LCB0b2tlbnM6IHsgcHJlZml4LCBiYXNlIH0gfSk7CiAgICAgfQogICAgIGlmIChwcmVmaXgpIHRv
a2VuaXNlci5lcnJvcigiRmFpbGVkIHRvIHBhcnNlIGZsb2F0IHR5cGUiKTsKICAgfQpAQCAtNzcw
LDkgKzc2NiwxNSBAQCBmdW5jdGlvbiBwcmltaXRpdmVfdHlwZSh0b2tlbmlzZXIpIHsKICAgY29u
c3QgeyBzb3VyY2UgfSA9IHRva2VuaXNlcjsKICAgY29uc3QgbnVtX3R5cGUgPSBpbnRlZ2VyX3R5
cGUodG9rZW5pc2VyKSB8fCBkZWNpbWFsX3R5cGUodG9rZW5pc2VyKTsKICAgaWYgKG51bV90eXBl
KSByZXR1cm4gbnVtX3R5cGU7Ci0gIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiYm9v
bGVhbiIsICJieXRlIiwgIm9jdGV0Iik7CisgIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIuY29uc3Vt
ZSgKKyAgICAiYmlnaW50IiwKKyAgICAiYm9vbGVhbiIsCisgICAgImJ5dGUiLAorICAgICJvY3Rl
dCIsCisgICAgInVuZGVmaW5lZCIKKyAgKTsKICAgaWYgKGJhc2UpIHsKLSAgICByZXR1cm4gbmV3
IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIlR5cGUiXSh7IHNvdXJjZSwg
dG9rZW5zOiB7IGJhc2UgfSB9KTsKKyAgICByZXR1cm4gbmV3IF90eXBlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX18uVHlwZSh7IHNvdXJjZSwgdG9rZW5zOiB7IGJhc2UgfSB9KTsKICAg
fQogfQogCkBAIC03ODAsNyArNzgyLDEwIEBAIGZ1bmN0aW9uIHByaW1pdGl2ZV90eXBlKHRva2Vu
aXNlcikgewogICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9r
ZW5pc2VyCiAgKi8KIGZ1bmN0aW9uIGFyZ3VtZW50X2xpc3QodG9rZW5pc2VyKSB7Ci0gIHJldHVy
biBsaXN0KHRva2VuaXNlciwgeyBwYXJzZXI6IF9hcmd1bWVudF9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMV9fWyJBcmd1bWVudCJdLnBhcnNlLCBsaXN0TmFtZTogImFyZ3VtZW50cyBsaXN0
IiB9KTsKKyAgcmV0dXJuIGxpc3QodG9rZW5pc2VyLCB7CisgICAgcGFyc2VyOiBfYXJndW1lbnRf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5Bcmd1bWVudC5wYXJzZSwKKyAgICBsaXN0
TmFtZTogImFyZ3VtZW50cyBsaXN0IiwKKyAgfSk7CiB9CiAKIC8qKgpAQCAtNzg4LDggKzc5Myw4
IEBAIGZ1bmN0aW9uIGFyZ3VtZW50X2xpc3QodG9rZW5pc2VyKSB7CiAgKiBAcGFyYW0ge3N0cmlu
Z30gdHlwZU5hbWUKICAqLwogZnVuY3Rpb24gdHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMo
dG9rZW5pc2VyLCB0eXBlTmFtZSkgewotICBjb25zdCBleHRBdHRycyA9IF9leHRlbmRlZF9hdHRy
aWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkV4dGVuZGVkQXR0cmlidXRl
cyJdLnBhcnNlKHRva2VuaXNlcik7Ci0gIGNvbnN0IHJldCA9IF90eXBlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX19bIlR5cGUiXS5wYXJzZSh0b2tlbmlzZXIsIHR5cGVOYW1lKTsKKyAg
Y29uc3QgZXh0QXR0cnMgPSBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMl9fLkV4dGVuZGVkQXR0cmlidXRlcy5wYXJzZSh0b2tlbmlzZXIpOworICBjb25z
dCByZXQgPSBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLlR5cGUucGFyc2Uo
dG9rZW5pc2VyLCB0eXBlTmFtZSk7CiAgIGlmIChyZXQpIGF1dG9QYXJlbnRlcihyZXQpLmV4dEF0
dHJzID0gZXh0QXR0cnM7CiAgIHJldHVybiByZXQ7CiB9CkBAIC03OTksMTMgKzgwNCwxNiBAQCBm
dW5jdGlvbiB0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyh0b2tlbmlzZXIsIHR5cGVOYW1l
KSB7CiAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZU5hbWUKICAqLwogZnVuY3Rpb24gcmV0dXJuX3R5
cGUodG9rZW5pc2VyLCB0eXBlTmFtZSkgewotICBjb25zdCB0eXAgPSBfdHlwZV9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJUeXBlIl0ucGFyc2UodG9rZW5pc2VyLCB0eXBlTmFtZSB8
fCAicmV0dXJuLXR5cGUiKTsKKyAgY29uc3QgdHlwID0gX3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfXy5UeXBlLnBhcnNlKHRva2VuaXNlciwgdHlwZU5hbWUgfHwgInJldHVybi10
eXBlIik7CiAgIGlmICh0eXApIHsKICAgICByZXR1cm4gdHlwOwogICB9CiAgIGNvbnN0IHZvaWRU
b2tlbiA9IHRva2VuaXNlci5jb25zdW1lKCJ2b2lkIik7CiAgIGlmICh2b2lkVG9rZW4pIHsKLSAg
ICBjb25zdCByZXQgPSBuZXcgX3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1si
VHlwZSJdKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnM6IHsgYmFzZTogdm9pZFRv
a2VuIH0gfSk7CisgICAgY29uc3QgcmV0ID0gbmV3IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX18uVHlwZSh7CisgICAgICBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsCisgICAg
ICB0b2tlbnM6IHsgYmFzZTogdm9pZFRva2VuIH0sCisgICAgfSk7CiAgICAgcmV0LnR5cGUgPSAi
cmV0dXJuLXR5cGUiOwogICAgIHJldHVybiByZXQ7CiAgIH0KQEAgLTgxNyw4ICs4MjUsOSBAQCBm
dW5jdGlvbiByZXR1cm5fdHlwZSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB7CiBmdW5jdGlvbiBzdHJp
bmdpZmllcih0b2tlbmlzZXIpIHsKICAgY29uc3Qgc3BlY2lhbCA9IHRva2VuaXNlci5jb25zdW1l
KCJzdHJpbmdpZmllciIpOwogICBpZiAoIXNwZWNpYWwpIHJldHVybjsKLSAgY29uc3QgbWVtYmVy
ID0gX2F0dHJpYnV0ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fWyJBdHRyaWJ1dGUi
XS5wYXJzZSh0b2tlbmlzZXIsIHsgc3BlY2lhbCB9KSB8fAotICAgIF9vcGVyYXRpb25fanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1siT3BlcmF0aW9uIl0ucGFyc2UodG9rZW5pc2VyLCB7
IHNwZWNpYWwgfSkgfHwKKyAgY29uc3QgbWVtYmVyID0KKyAgICBfYXR0cmlidXRlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV80X18uQXR0cmlidXRlLnBhcnNlKHRva2VuaXNlciwgeyBzcGVj
aWFsIH0pIHx8CisgICAgX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19f
Lk9wZXJhdGlvbi5wYXJzZSh0b2tlbmlzZXIsIHsgc3BlY2lhbCB9KSB8fAogICAgIHRva2VuaXNl
ci5lcnJvcigiVW50ZXJtaW5hdGVkIHN0cmluZ2lmaWVyIik7CiAgIHJldHVybiBtZW1iZXI7CiB9
CkBAIC04NTMsOSArODYyLDkgQEAgZnVuY3Rpb24gZ2V0TWVtYmVySW5kZW50YXRpb24ocGFyZW50
VHJpdmlhKSB7CiAgKi8KIGZ1bmN0aW9uIGF1dG9maXhBZGRFeHBvc2VkV2luZG93KGRlZikgewog
ICByZXR1cm4gKCkgPT4gewotICAgIGlmIChkZWYuZXh0QXR0cnMubGVuZ3RoKXsKLSAgICAgIGNv
bnN0IHRva2VuaXNlciA9IG5ldyBfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV81X19bIlRva2VuaXNlciJdKCJFeHBvc2VkPVdpbmRvdywiKTsKLSAgICAgIGNvbnN0IGV4cG9z
ZWQgPSBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9f
WyJTaW1wbGVFeHRlbmRlZEF0dHJpYnV0ZSJdLnBhcnNlKHRva2VuaXNlcik7CisgICAgaWYgKGRl
Zi5leHRBdHRycy5sZW5ndGgpIHsKKyAgICAgIGNvbnN0IHRva2VuaXNlciA9IG5ldyBfdG9rZW5p
c2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uVG9rZW5pc2VyKCJFeHBvc2VkPVdp
bmRvdywiKTsKKyAgICAgIGNvbnN0IGV4cG9zZWQgPSBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLlNpbXBsZUV4dGVuZGVkQXR0cmlidXRlLnBhcnNl
KHRva2VuaXNlcik7CiAgICAgICBleHBvc2VkLnRva2Vucy5zZXBhcmF0b3IgPSB0b2tlbmlzZXIu
Y29uc3VtZSgiLCIpOwogICAgICAgY29uc3QgZXhpc3RpbmcgPSBkZWYuZXh0QXR0cnNbMF07CiAg
ICAgICBpZiAoIS9eXHMvLnRlc3QoZXhpc3RpbmcudG9rZW5zLm5hbWUudHJpdmlhKSkgewpAQCAt
ODYzLDcgKzg3Miw5IEBAIGZ1bmN0aW9uIGF1dG9maXhBZGRFeHBvc2VkV2luZG93KGRlZikgewog
ICAgICAgfQogICAgICAgZGVmLmV4dEF0dHJzLnVuc2hpZnQoZXhwb3NlZCk7CiAgICAgfSBlbHNl
IHsKLSAgICAgIGF1dG9QYXJlbnRlcihkZWYpLmV4dEF0dHJzID0gX2V4dGVuZGVkX2F0dHJpYnV0
ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siRXh0ZW5kZWRBdHRyaWJ1dGVzIl0u
cGFyc2UobmV3IF90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1siVG9r
ZW5pc2VyIl0oIltFeHBvc2VkPVdpbmRvd10iKSk7CisgICAgICBhdXRvUGFyZW50ZXIoZGVmKS5l
eHRBdHRycyA9IF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8yX18uRXh0ZW5kZWRBdHRyaWJ1dGVzLnBhcnNlKAorICAgICAgICBuZXcgX3Rva2VuaXNlcl9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLlRva2VuaXNlcigiW0V4cG9zZWQ9V2luZG93
XSIpCisgICAgICApOwogICAgICAgY29uc3QgdHJpdmlhID0gZGVmLnRva2Vucy5iYXNlLnRyaXZp
YTsKICAgICAgIGRlZi5leHRBdHRycy50b2tlbnMub3Blbi50cml2aWEgPSB0cml2aWE7CiAgICAg
ICBkZWYudG9rZW5zLmJhc2UudHJpdmlhID0gYFxuJHtnZXRMYXN0SW5kZW50YXRpb24odHJpdmlh
KX1gOwpAQCAtOTQyLDE4ICs5NTMsMTkgQEAgZnVuY3Rpb24gYXV0b1BhcmVudGVyKGRhdGEsIHBh
cmVudCkgewogICAgICAgICB2YWx1ZS5wYXJlbnQgPSBwYXJlbnQ7CiAgICAgICB9CiAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICB9CisgICAgfSwKICAgfSk7CiB9CiAKIAogLyoqKi8gfSksCiAvKiA1
ICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBh
Y2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVs
ZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1
c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsK
LS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193
ZWJwYWNrX2V4cG9ydHNfXywgIlR5cGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIFR5cGU7IH0pOwor
LyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBv
cnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIlR5cGUiOiAoKSA9PiAoLyogYmluZGlu
ZyAqLyBUeXBlKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAq
LyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oNik7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CiAvKiBoYXJt
b255IGltcG9ydCAqLyB2YXIgX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
Ml9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTsKQEAgLTk3MiwzOCArOTg0LDY2IEBAIF9fd2Vi
cGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKICAqIEBwYXJhbSB7c3RyaW5n
fSB0eXBlTmFtZQogICovCiBmdW5jdGlvbiBnZW5lcmljX3R5cGUodG9rZW5pc2VyLCB0eXBlTmFt
ZSkgewotICBjb25zdCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoIkZyb3plbkFycmF5IiwgIlBy
b21pc2UiLCAic2VxdWVuY2UiLCAicmVjb3JkIik7CisgIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIu
Y29uc3VtZSgKKyAgICAiRnJvemVuQXJyYXkiLAorICAgICJPYnNlcnZhYmxlQXJyYXkiLAorICAg
ICJQcm9taXNlIiwKKyAgICAic2VxdWVuY2UiLAorICAgICJyZWNvcmQiCisgICk7CiAgIGlmICgh
YmFzZSkgewogICAgIHJldHVybjsKICAgfQotICBjb25zdCByZXQgPSBPYmplY3QoX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siYXV0b1BhcmVudGVyIl0pKG5ldyBUeXBl
KHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnM6IHsgYmFzZSB9IH0pKTsKLSAgcmV0
LnRva2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUoIjwiKSB8fCB0b2tlbmlzZXIuZXJyb3Io
YE5vIG9wZW5pbmcgYnJhY2tldCBhZnRlciAke2Jhc2UudHlwZX1gKTsKLSAgc3dpdGNoIChiYXNl
LnR5cGUpIHsKKyAgY29uc3QgcmV0ID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzFfXy5hdXRvUGFyZW50ZXIpKAorICAgIG5ldyBUeXBlKHsgc291cmNlOiB0b2tlbmlz
ZXIuc291cmNlLCB0b2tlbnM6IHsgYmFzZSB9IH0pCisgICk7CisgIHJldC50b2tlbnMub3BlbiA9
CisgICAgdG9rZW5pc2VyLmNvbnN1bWUoIjwiKSB8fAorICAgIHRva2VuaXNlci5lcnJvcihgTm8g
b3BlbmluZyBicmFja2V0IGFmdGVyICR7YmFzZS52YWx1ZX1gKTsKKyAgc3dpdGNoIChiYXNlLnZh
bHVlKSB7CiAgICAgY2FzZSAiUHJvbWlzZSI6IHsKLSAgICAgIGlmICh0b2tlbmlzZXIucHJvYmUo
IlsiKSkgdG9rZW5pc2VyLmVycm9yKCJQcm9taXNlIHR5cGUgY2Fubm90IGhhdmUgZXh0ZW5kZWQg
YXR0cmlidXRlIik7Ci0gICAgICBjb25zdCBzdWJ0eXBlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInJldHVybl90eXBlIl0pKHRva2VuaXNlciwgdHlw
ZU5hbWUpIHx8IHRva2VuaXNlci5lcnJvcigiTWlzc2luZyBQcm9taXNlIHN1YnR5cGUiKTsKKyAg
ICAgIGlmICh0b2tlbmlzZXIucHJvYmUoIlsiKSkKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJQ
cm9taXNlIHR5cGUgY2Fubm90IGhhdmUgZXh0ZW5kZWQgYXR0cmlidXRlIik7CisgICAgICBjb25z
dCBzdWJ0eXBlID0KKyAgICAgICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzFfXy5yZXR1cm5fdHlwZSkodG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwKKyAgICAgICAgdG9r
ZW5pc2VyLmVycm9yKCJNaXNzaW5nIFByb21pc2Ugc3VidHlwZSIpOwogICAgICAgcmV0LnN1YnR5
cGUucHVzaChzdWJ0eXBlKTsKICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlICJzZXF1ZW5j
ZSI6Ci0gICAgY2FzZSAiRnJvemVuQXJyYXkiOiB7Ci0gICAgICBjb25zdCBzdWJ0eXBlID0gT2Jq
ZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0aF9l
eHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRva2VuaXNlciwgdHlwZU5hbWUpIHx8IHRva2VuaXNlci5l
cnJvcihgTWlzc2luZyAke2Jhc2UudHlwZX0gc3VidHlwZWApOworICAgIGNhc2UgIkZyb3plbkFy
cmF5IjoKKyAgICBjYXNlICJPYnNlcnZhYmxlQXJyYXkiOiB7CisgICAgICBjb25zdCBzdWJ0eXBl
ID0KKyAgICAgICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50
eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcykodG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwKKyAg
ICAgICAgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nICR7YmFzZS52YWx1ZX0gc3VidHlwZWApOwog
ICAgICAgcmV0LnN1YnR5cGUucHVzaChzdWJ0eXBlKTsKICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICBjYXNlICJyZWNvcmQiOiB7Ci0gICAgICBpZiAodG9rZW5pc2VyLnByb2JlKCJbIikpIHRva2Vu
aXNlci5lcnJvcigiUmVjb3JkIGtleSBjYW5ub3QgaGF2ZSBleHRlbmRlZCBhdHRyaWJ1dGUiKTsK
LSAgICAgIGNvbnN0IGtleVR5cGUgPSB0b2tlbmlzZXIuY29uc3VtZSguLi5fdG9rZW5pc2VyX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInN0cmluZ1R5cGVzIl0pIHx8IHRva2VuaXNl
ci5lcnJvcihgUmVjb3JkIGtleSBtdXN0IGJlIG9uZSBvZjogJHtfdG9rZW5pc2VyX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInN0cmluZ1R5cGVzIl0uam9pbigiLCAiKX1gKTsKLSAg
ICAgIGNvbnN0IGtleUlkbFR5cGUgPSBuZXcgVHlwZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJj
ZSwgdG9rZW5zOiB7IGJhc2U6IGtleVR5cGUgfX0pOwotICAgICAga2V5SWRsVHlwZS50b2tlbnMu
c2VwYXJhdG9yID0gdG9rZW5pc2VyLmNvbnN1bWUoIiwiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIk1p
c3NpbmcgY29tbWEgYWZ0ZXIgcmVjb3JkIGtleSB0eXBlIik7CisgICAgICBpZiAodG9rZW5pc2Vy
LnByb2JlKCJbIikpCisgICAgICAgIHRva2VuaXNlci5lcnJvcigiUmVjb3JkIGtleSBjYW5ub3Qg
aGF2ZSBleHRlbmRlZCBhdHRyaWJ1dGUiKTsKKyAgICAgIGNvbnN0IGtleVR5cGUgPQorICAgICAg
ICB0b2tlbmlzZXIuY29uc3VtZSguLi5fdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8yX18uc3RyaW5nVHlwZXMpIHx8CisgICAgICAgIHRva2VuaXNlci5lcnJvcihgUmVjb3Jk
IGtleSBtdXN0IGJlIG9uZSBvZjogJHtfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8yX18uc3RyaW5nVHlwZXMuam9pbigiLCAiKX1gKTsKKyAgICAgIGNvbnN0IGtleUlkbFR5
cGUgPSBuZXcgVHlwZSh7CisgICAgICAgIHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwKKyAgICAg
ICAgdG9rZW5zOiB7IGJhc2U6IGtleVR5cGUgfSwKKyAgICAgIH0pOworICAgICAga2V5SWRsVHlw
ZS50b2tlbnMuc2VwYXJhdG9yID0KKyAgICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIiwiKSB8fAor
ICAgICAgICB0b2tlbmlzZXIuZXJyb3IoIk1pc3NpbmcgY29tbWEgYWZ0ZXIgcmVjb3JkIGtleSB0
eXBlIik7CiAgICAgICBrZXlJZGxUeXBlLnR5cGUgPSB0eXBlTmFtZTsKLSAgICAgIGNvbnN0IHZh
bHVlVHlwZSA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9f
WyJ0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyJdKSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB8
fCB0b2tlbmlzZXIuZXJyb3IoIkVycm9yIHBhcnNpbmcgZ2VuZXJpYyB0eXBlIHJlY29yZCIpOwor
ICAgICAgY29uc3QgdmFsdWVUeXBlID0KKyAgICAgICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzFfXy50eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcykodG9rZW5p
c2VyLCB0eXBlTmFtZSkgfHwKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJFcnJvciBwYXJzaW5n
IGdlbmVyaWMgdHlwZSByZWNvcmQiKTsKICAgICAgIHJldC5zdWJ0eXBlLnB1c2goa2V5SWRsVHlw
ZSwgdmFsdWVUeXBlKTsKICAgICAgIGJyZWFrOwogICAgIH0KICAgfQotICBpZiAoIXJldC5pZGxU
eXBlKSB0b2tlbmlzZXIuZXJyb3IoYEVycm9yIHBhcnNpbmcgZ2VuZXJpYyB0eXBlICR7YmFzZS50
eXBlfWApOwotICByZXQudG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIj4iKSB8fCB0
b2tlbmlzZXIuZXJyb3IoYE1pc3NpbmcgY2xvc2luZyBicmFja2V0IGFmdGVyICR7YmFzZS50eXBl
fWApOworICBpZiAoIXJldC5pZGxUeXBlKSB0b2tlbmlzZXIuZXJyb3IoYEVycm9yIHBhcnNpbmcg
Z2VuZXJpYyB0eXBlICR7YmFzZS52YWx1ZX1gKTsKKyAgcmV0LnRva2Vucy5jbG9zZSA9CisgICAg
dG9rZW5pc2VyLmNvbnN1bWUoIj4iKSB8fAorICAgIHRva2VuaXNlci5lcnJvcihgTWlzc2luZyBj
bG9zaW5nIGJyYWNrZXQgYWZ0ZXIgJHtiYXNlLnZhbHVlfWApOwogICByZXR1cm4gcmV0LnRoaXM7
CiB9CiAKQEAgLTEwMjMsMjEgKzEwNjMsMjUgQEAgZnVuY3Rpb24gdHlwZV9zdWZmaXgodG9rZW5p
c2VyLCBvYmopIHsKICAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlTmFtZQogICovCiBmdW5jdGlvbiBz
aW5nbGVfdHlwZSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB7Ci0gIGxldCByZXQgPSBnZW5lcmljX3R5
cGUodG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwgT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX19bInByaW1pdGl2ZV90eXBlIl0pKHRva2VuaXNlcik7CisgIGxldCBy
ZXQgPSBnZW5lcmljX3R5cGUodG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwgKDAsX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5wcmltaXRpdmVfdHlwZSkodG9rZW5pc2VyKTsK
ICAgaWYgKCFyZXQpIHsKLSAgICBjb25zdCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50
aWZpZXIiLCAuLi5fdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInN0
cmluZ1R5cGVzIl0sIC4uLl90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJf
X1sidHlwZU5hbWVLZXl3b3JkcyJdKTsKKyAgICBjb25zdCBiYXNlID0KKyAgICAgIHRva2VuaXNl
ci5jb25zdW1lVHlwZSgiaWRlbnRpZmllciIpIHx8CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgu
Li5fdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uc3RyaW5nVHlwZXMs
IC4uLl90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy50eXBlTmFtZUtl
eXdvcmRzKTsKICAgICBpZiAoIWJhc2UpIHsKICAgICAgIHJldHVybjsKICAgICB9CiAgICAgcmV0
ID0gbmV3IFR5cGUoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyBiYXNlIH0g
fSk7Ci0gICAgaWYgKHRva2VuaXNlci5wcm9iZSgiPCIpKSB0b2tlbmlzZXIuZXJyb3IoYFVuc3Vw
cG9ydGVkIGdlbmVyaWMgdHlwZSAke2Jhc2UudmFsdWV9YCk7CisgICAgaWYgKHRva2VuaXNlci5w
cm9iZSgiPCIpKQorICAgICAgdG9rZW5pc2VyLmVycm9yKGBVbnN1cHBvcnRlZCBnZW5lcmljIHR5
cGUgJHtiYXNlLnZhbHVlfWApOwogICB9CiAgIGlmIChyZXQuZ2VuZXJpYyA9PT0gIlByb21pc2Ui
ICYmIHRva2VuaXNlci5wcm9iZSgiPyIpKSB7CiAgICAgdG9rZW5pc2VyLmVycm9yKCJQcm9taXNl
IHR5cGUgY2Fubm90IGJlIG51bGxhYmxlIik7CiAgIH0KICAgcmV0LnR5cGUgPSB0eXBlTmFtZSB8
fCBudWxsOwogICB0eXBlX3N1ZmZpeCh0b2tlbmlzZXIsIHJldCk7Ci0gIGlmIChyZXQubnVsbGFi
bGUgJiYgcmV0LmlkbFR5cGUgPT09ICJhbnkiKSB0b2tlbmlzZXIuZXJyb3IoIlR5cGUgYGFueWAg
Y2Fubm90IGJlIG1hZGUgbnVsbGFibGUiKTsKKyAgaWYgKHJldC5udWxsYWJsZSAmJiByZXQuaWRs
VHlwZSA9PT0gImFueSIpCisgICAgdG9rZW5pc2VyLmVycm9yKCJUeXBlIGBhbnlgIGNhbm5vdCBi
ZSBtYWRlIG51bGxhYmxlIik7CiAgIHJldHVybiByZXQ7CiB9CiAKQEAgLTEwNDksMjggKzEwOTMs
MzQgQEAgZnVuY3Rpb24gdW5pb25fdHlwZSh0b2tlbmlzZXIsIHR5cGUpIHsKICAgY29uc3QgdG9r
ZW5zID0ge307CiAgIHRva2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUoIigiKTsKICAgaWYg
KCF0b2tlbnMub3BlbikgcmV0dXJuOwotICBjb25zdCByZXQgPSBPYmplY3QoX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siYXV0b1BhcmVudGVyIl0pKG5ldyBUeXBlKHsg
c291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkpOworICBjb25zdCByZXQgPSAoMCxf
aGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmF1dG9QYXJlbnRlcikobmV3
IFR5cGUoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSk7CiAgIHJldC50eXBl
ID0gdHlwZSB8fCBudWxsOwogICB3aGlsZSAodHJ1ZSkgewotICAgIGNvbnN0IHR5cCA9IE9iamVj
dChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ0eXBlX3dpdGhfZXh0
ZW5kZWRfYXR0cmlidXRlcyJdKSh0b2tlbmlzZXIpIHx8IHRva2VuaXNlci5lcnJvcigiTm8gdHlw
ZSBhZnRlciBvcGVuIHBhcmVudGhlc2lzIG9yICdvcicgaW4gdW5pb24gdHlwZSIpOwotICAgIGlm
ICh0eXAuaWRsVHlwZSA9PT0gImFueSIpIHRva2VuaXNlci5lcnJvcigiVHlwZSBgYW55YCBjYW5u
b3QgYmUgaW5jbHVkZWQgaW4gYSB1bmlvbiB0eXBlIik7Ci0gICAgaWYgKHR5cC5nZW5lcmljID09
PSAiUHJvbWlzZSIpIHRva2VuaXNlci5lcnJvcigiVHlwZSBgUHJvbWlzZWAgY2Fubm90IGJlIGlu
Y2x1ZGVkIGluIGEgdW5pb24gdHlwZSIpOworICAgIGNvbnN0IHR5cCA9CisgICAgICAoMCxfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnR5cGVfd2l0aF9leHRlbmRlZF9h
dHRyaWJ1dGVzKSh0b2tlbmlzZXIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIk5vIHR5cGUg
YWZ0ZXIgb3BlbiBwYXJlbnRoZXNpcyBvciAnb3InIGluIHVuaW9uIHR5cGUiKTsKKyAgICBpZiAo
dHlwLmlkbFR5cGUgPT09ICJhbnkiKQorICAgICAgdG9rZW5pc2VyLmVycm9yKCJUeXBlIGBhbnlg
IGNhbm5vdCBiZSBpbmNsdWRlZCBpbiBhIHVuaW9uIHR5cGUiKTsKKyAgICBpZiAodHlwLmdlbmVy
aWMgPT09ICJQcm9taXNlIikKKyAgICAgIHRva2VuaXNlci5lcnJvcigiVHlwZSBgUHJvbWlzZWAg
Y2Fubm90IGJlIGluY2x1ZGVkIGluIGEgdW5pb24gdHlwZSIpOwogICAgIHJldC5zdWJ0eXBlLnB1
c2godHlwKTsKICAgICBjb25zdCBvciA9IHRva2VuaXNlci5jb25zdW1lKCJvciIpOwogICAgIGlm
IChvcikgewogICAgICAgdHlwLnRva2Vucy5zZXBhcmF0b3IgPSBvcjsKLSAgICB9Ci0gICAgZWxz
ZSBicmVhazsKKyAgICB9IGVsc2UgYnJlYWs7CiAgIH0KICAgaWYgKHJldC5pZGxUeXBlLmxlbmd0
aCA8IDIpIHsKLSAgICB0b2tlbmlzZXIuZXJyb3IoIkF0IGxlYXN0IHR3byB0eXBlcyBhcmUgZXhw
ZWN0ZWQgaW4gYSB1bmlvbiB0eXBlIGJ1dCBmb3VuZCBsZXNzIik7CisgICAgdG9rZW5pc2VyLmVy
cm9yKAorICAgICAgIkF0IGxlYXN0IHR3byB0eXBlcyBhcmUgZXhwZWN0ZWQgaW4gYSB1bmlvbiB0
eXBlIGJ1dCBmb3VuZCBsZXNzIgorICAgICk7CiAgIH0KLSAgdG9rZW5zLmNsb3NlID0gdG9rZW5p
c2VyLmNvbnN1bWUoIikiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCB1bmlvbiB0
eXBlIik7CisgIHRva2Vucy5jbG9zZSA9CisgICAgdG9rZW5pc2VyLmNvbnN1bWUoIikiKSB8fCB0
b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCB1bmlvbiB0eXBlIik7CiAgIHR5cGVfc3VmZml4
KHRva2VuaXNlciwgcmV0KTsKICAgcmV0dXJuIHJldC50aGlzOwogfQogCi1jbGFzcyBUeXBlIGV4
dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKK2Ns
YXNzIFR5cGUgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkJh
c2UgewogICAvKioKICAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNl
cn0gdG9rZW5pc2VyCiAgICAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlTmFtZQpAQCAtMTA4Miw3ICsx
MTMyLDcgQEAgY2xhc3MgVHlwZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX19bIkJhc2UiXSB7CiAgIGNvbnN0cnVjdG9yKHsgc291cmNlLCB0b2tlbnMgfSkgewog
ICAgIHN1cGVyKHsgc291cmNlLCB0b2tlbnMgfSk7CiAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5
KHRoaXMsICJzdWJ0eXBlIiwgeyB2YWx1ZTogW10sIHdyaXRhYmxlOiB0cnVlIH0pOwotICAgIHRo
aXMuZXh0QXR0cnMgPSBuZXcgX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzVfX1siRXh0ZW5kZWRBdHRyaWJ1dGVzIl0oe30pOworICAgIHRoaXMuZXh0QXR0
cnMgPSBuZXcgX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzVfXy5FeHRlbmRlZEF0dHJpYnV0ZXMoe30pOwogICB9CiAKICAgZ2V0IGdlbmVyaWMoKSB7CkBA
IC0xMTAyLDMyICsxMTUyLDQ3IEBAIGNsYXNzIFR5cGUgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgICAgcmV0dXJuIHRoaXMuc3VidHlw
ZTsKICAgICB9CiAgICAgLy8gQWRkaW5nIHByZWZpeGVzL3Bvc3RmaXhlcyBmb3IgInVucmVzdHJp
Y3RlZCBmbG9hdCIsIGV0Yy4KLSAgICBjb25zdCBuYW1lID0gWwotICAgICAgdGhpcy50b2tlbnMu
cHJlZml4LAotICAgICAgdGhpcy50b2tlbnMuYmFzZSwKLSAgICAgIHRoaXMudG9rZW5zLnBvc3Rm
aXgKLSAgICBdLmZpbHRlcih0ID0+IHQpLm1hcCh0ID0+IHQudmFsdWUpLmpvaW4oIiAiKTsKLSAg
ICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19b
InVuZXNjYXBlIl0pKG5hbWUpOworICAgIGNvbnN0IG5hbWUgPSBbdGhpcy50b2tlbnMucHJlZml4
LCB0aGlzLnRva2Vucy5iYXNlLCB0aGlzLnRva2Vucy5wb3N0Zml4XQorICAgICAgLmZpbHRlcigo
dCkgPT4gdCkKKyAgICAgIC5tYXAoKHQpID0+IHQudmFsdWUpCisgICAgICAuam9pbigiICIpOwor
ICAgIHJldHVybiAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVu
ZXNjYXBlKShuYW1lKTsKICAgfQogCiAgICp2YWxpZGF0ZShkZWZzKSB7CiAgICAgeWllbGQqIHRo
aXMuZXh0QXR0cnMudmFsaWRhdGUoZGVmcyk7CisKKyAgICBpZiAodGhpcy5pZGxUeXBlID09PSAi
dm9pZCIpIHsKKyAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgXGB2b2lkXGAgaXMgbm93IHJlcGxhY2Vk
IGJ5IFxgdW5kZWZpbmVkXGAuIFJlZmVyIHRvIHRoZSBcCitbcmVsZXZhbnQgR2l0SHViIGlzc3Vl
XShodHRwczovL2dpdGh1Yi5jb20vaGV5Y2FtL3dlYmlkbC9pc3N1ZXMvNjApIFwKK2ZvciBtb3Jl
IGluZm9ybWF0aW9uLmA7CisgICAgICB5aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzNfXy52YWxpZGF0aW9uRXJyb3IpKHRoaXMudG9rZW5zLmJhc2UsIHRoaXMsICJy
ZXBsYWNlLXZvaWQiLCBtZXNzYWdlLCB7CisgICAgICAgIGF1dG9maXg6IHJlcGxhY2VWb2lkKHRo
aXMpLAorICAgICAgfSk7CisgICAgfQorCiAgICAgLyoKICAgICAgKiBJZiBhIHVuaW9uIGlzIG51
bGxhYmxlLCBpdHMgc3VidW5pb25zIGNhbm5vdCBpbmNsdWRlIGEgZGljdGlvbmFyeQogICAgICAq
IElmIG5vdCwgc3VidW5pb25zIG1heSBpbmNsdWRlIGRpY3Rpb25hcmllcyBpZiBlYWNoIHVuaW9u
IGlzIG5vdCBudWxsYWJsZQogICAgICAqLwogICAgIGNvbnN0IHR5cGVkZWYgPSAhdGhpcy51bmlv
biAmJiBkZWZzLnVuaXF1ZS5nZXQodGhpcy5pZGxUeXBlKTsKLSAgICBjb25zdCB0YXJnZXQgPQot
ICAgICAgdGhpcy51bmlvbiA/IHRoaXMgOgotICAgICAgKHR5cGVkZWYgJiYgdHlwZWRlZi50eXBl
ID09PSAidHlwZWRlZiIpID8gdHlwZWRlZi5pZGxUeXBlIDoKLSAgICAgIHVuZGVmaW5lZDsKKyAg
ICBjb25zdCB0YXJnZXQgPSB0aGlzLnVuaW9uCisgICAgICA/IHRoaXMKKyAgICAgIDogdHlwZWRl
ZiAmJiB0eXBlZGVmLnR5cGUgPT09ICJ0eXBlZGVmIgorICAgICAgPyB0eXBlZGVmLmlkbFR5cGUK
KyAgICAgIDogdW5kZWZpbmVkOwogICAgIGlmICh0YXJnZXQgJiYgdGhpcy5udWxsYWJsZSkgewog
ICAgICAgLy8gZG8gbm90IGFsbG93IGFueSBkaWN0aW9uYXJ5Ci0gICAgICBjb25zdCB7IHJlZmVy
ZW5jZSB9ID0gT2JqZWN0KF92YWxpZGF0b3JzX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzRfX1siaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeSJdKSh0YXJnZXQsIGRlZnMpIHx8
IHt9OworICAgICAgY29uc3QgeyByZWZlcmVuY2UgfSA9ICgwLF92YWxpZGF0b3JzX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5pZGxUeXBlSW5jbHVkZXNEaWN0aW9uYXJ5
KSh0YXJnZXQsIGRlZnMpIHx8IHt9OwogICAgICAgaWYgKHJlZmVyZW5jZSkgewogICAgICAgICBj
b25zdCB0YXJnZXRUb2tlbiA9ICh0aGlzLnVuaW9uID8gcmVmZXJlbmNlIDogdGhpcykudG9rZW5z
LmJhc2U7Ci0gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgTnVsbGFibGUgdW5pb24gY2Fubm90IGlu
Y2x1ZGUgYSBkaWN0aW9uYXJ5IHR5cGVgOwotICAgICAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bInZhbGlkYXRpb25FcnJvciJdKSh0YXJnZXRU
b2tlbiwgdGhpcywgIm5vLW51bGxhYmxlLXVuaW9uLWRpY3QiLCBtZXNzYWdlKTsKKyAgICAgICAg
Y29uc3QgbWVzc2FnZSA9ICJOdWxsYWJsZSB1bmlvbiBjYW5ub3QgaW5jbHVkZSBhIGRpY3Rpb25h
cnkgdHlwZS4iOworICAgICAgICB5aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzNfXy52YWxpZGF0aW9uRXJyb3IpKAorICAgICAgICAgIHRhcmdldFRva2VuLAorICAg
ICAgICAgIHRoaXMsCisgICAgICAgICAgIm5vLW51bGxhYmxlLXVuaW9uLWRpY3QiLAorICAgICAg
ICAgIG1lc3NhZ2UKKyAgICAgICAgKTsKICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgLy8g
YWxsb3cgc29tZSBkaWN0aW9uYXJ5CkBAIC0xMTM2LDE2ICsxMjAxLDU5IEBAIGNsYXNzIFR5cGUg
ZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewog
ICAgICAgfQogICAgIH0KICAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpz
IikuV3JpdGVyKX0gdyAqLworICB3cml0ZSh3KSB7CisgICAgY29uc3QgdHlwZV9ib2R5ID0gKCkg
PT4geworICAgICAgaWYgKHRoaXMudW5pb24gfHwgdGhpcy5nZW5lcmljKSB7CisgICAgICAgIHJl
dHVybiB3LnRzLndyYXAoWworICAgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuYmFzZSwgdy50
cy5nZW5lcmljKSwKKyAgICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLm9wZW4pLAorICAgICAg
ICAgIC4uLnRoaXMuc3VidHlwZS5tYXAoKHQpID0+IHQud3JpdGUodykpLAorICAgICAgICAgIHcu
dG9rZW4odGhpcy50b2tlbnMuY2xvc2UpLAorICAgICAgICBdKTsKKyAgICAgIH0KKyAgICAgIGNv
bnN0IGZpcnN0VG9rZW4gPSB0aGlzLnRva2Vucy5wcmVmaXggfHwgdGhpcy50b2tlbnMuYmFzZTsK
KyAgICAgIGNvbnN0IHByZWZpeCA9IHRoaXMudG9rZW5zLnByZWZpeAorICAgICAgICA/IFt0aGlz
LnRva2Vucy5wcmVmaXgudmFsdWUsIHcudHMudHJpdmlhKHRoaXMudG9rZW5zLmJhc2UudHJpdmlh
KV0KKyAgICAgICAgOiBbXTsKKyAgICAgIGNvbnN0IHJlZiA9IHcucmVmZXJlbmNlKAorICAgICAg
ICB3LnRzLndyYXAoWworICAgICAgICAgIC4uLnByZWZpeCwKKyAgICAgICAgICB0aGlzLnRva2Vu
cy5iYXNlLnZhbHVlLAorICAgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMucG9zdGZpeCksCisg
ICAgICAgIF0pLAorICAgICAgICB7IHVuZXNjYXBlZDogdGhpcy5pZGxUeXBlLCBjb250ZXh0OiB0
aGlzIH0KKyAgICAgICk7CisgICAgICByZXR1cm4gdy50cy53cmFwKFt3LnRzLnRyaXZpYShmaXJz
dFRva2VuLnRyaXZpYSksIHJlZl0pOworICAgIH07CisgICAgcmV0dXJuIHcudHMud3JhcChbCisg
ICAgICB0aGlzLmV4dEF0dHJzLndyaXRlKHcpLAorICAgICAgdHlwZV9ib2R5KCksCisgICAgICB3
LnRva2VuKHRoaXMudG9rZW5zLm51bGxhYmxlKSwKKyAgICAgIHcudG9rZW4odGhpcy50b2tlbnMu
c2VwYXJhdG9yKSwKKyAgICBdKTsKKyAgfQorfQorCisvKioKKyAqIEBwYXJhbSB7VHlwZX0gdHlw
ZQorICovCitmdW5jdGlvbiByZXBsYWNlVm9pZCh0eXBlKSB7CisgIHJldHVybiAoKSA9PiB7Cisg
ICAgdHlwZS50b2tlbnMuYmFzZS52YWx1ZSA9ICJ1bmRlZmluZWQiOworICB9OwogfQogCiAKIC8q
KiovIH0pLAogLyogNiAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9y
dHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19f
d2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVf
XykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNr
X2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJCYXNlIiwgZnVuY3Rpb24oKSB7IHJldHVy
biBCYXNlOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChf
X3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJCYXNlIjogKCkg
PT4gKC8qIGJpbmRpbmcgKi8gQmFzZSkKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLy8gQHRz
LWNoZWNrCiAKIGNsYXNzIEJhc2UgewpAQCAtMTE1OSw3ICsxMjY3LDcgQEAgY2xhc3MgQmFzZSB7
CiAgICAgICBzb3VyY2U6IHsgdmFsdWU6IHNvdXJjZSB9LAogICAgICAgdG9rZW5zOiB7IHZhbHVl
OiB0b2tlbnMsIHdyaXRhYmxlOiB0cnVlIH0sCiAgICAgICBwYXJlbnQ6IHsgdmFsdWU6IG51bGws
IHdyaXRhYmxlOiB0cnVlIH0sCi0gICAgICB0aGlzOiB7IHZhbHVlOiB0aGlzIH0gLy8gdXNlZnVs
IHdoZW4gZXNjYXBpbmcgZnJvbSBwcm94eQorICAgICAgdGhpczogeyB2YWx1ZTogdGhpcyB9LCAv
LyB1c2VmdWwgd2hlbiBlc2NhcGluZyBmcm9tIHByb3h5CiAgICAgfSk7CiAgIH0KIApAQCAtMTE4
MywxMiArMTI5MSwxMyBAQCBjbGFzcyBCYXNlIHsKIAogLyoqKi8gfSksCiAvKiA3ICovCi0vKioq
LyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWly
ZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dl
YnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0
IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1v
bnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4
cG9ydHNfXywgImlkbFR5cGVJbmNsdWRlc0RpY3Rpb25hcnkiLCBmdW5jdGlvbigpIHsgcmV0dXJu
IGlkbFR5cGVJbmNsdWRlc0RpY3Rpb25hcnk7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRp
bmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiZGljdGlv
bmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gZGljdGlvbmFy
eUluY2x1ZGVzUmVxdWlyZWRGaWVsZDsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBh
Y2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBvcnQg
Ki8gICAiaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeSI6ICgpID0+ICgvKiBiaW5kaW5nICovIGlk
bFR5cGVJbmNsdWRlc0RpY3Rpb25hcnkpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAiZGljdGlv
bmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGRpY3Rpb25h
cnlJbmNsdWRlc1JlcXVpcmVkRmllbGQpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8vIEB0
cy1jaGVjawogCiAvKioKQEAgLTEyMDAsNyArMTMwOSwxMSBAQCBfX3dlYnBhY2tfcmVxdWlyZV9f
LnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnVz
ZU51bGxhYmxlSW5uZXJdIHVzZSB3aGVuIHRoZSBpbnB1dCBpZGxUeXBlIGlzIG51bGxhYmxlIGFu
ZCB5b3Ugd2FudCB0byB1c2UgaXRzIGlubmVyIHR5cGUKICAqIEByZXR1cm4ge3sgcmVmZXJlbmNl
OiAqLCBkaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5IH19IHRoZSB0eXBlIHJlZmVyZW5jZSB0aGF0IHVs
dGltYXRlbHkgaW5jbHVkZXMgZGljdGlvbmFyeS4KICAqLwotZnVuY3Rpb24gaWRsVHlwZUluY2x1
ZGVzRGljdGlvbmFyeShpZGxUeXBlLCBkZWZzLCB7IHVzZU51bGxhYmxlSW5uZXIgfSA9IHt9KSB7
CitmdW5jdGlvbiBpZGxUeXBlSW5jbHVkZXNEaWN0aW9uYXJ5KAorICBpZGxUeXBlLAorICBkZWZz
LAorICB7IHVzZU51bGxhYmxlSW5uZXIgfSA9IHt9CispIHsKICAgaWYgKCFpZGxUeXBlLnVuaW9u
KSB7CiAgICAgY29uc3QgZGVmID0gZGVmcy51bmlxdWUuZ2V0KGlkbFR5cGUuaWRsVHlwZSk7CiAg
ICAgaWYgKCFkZWYpIHsKQEAgLTEyMTksMTQgKzEzMzIsMTQgQEAgZnVuY3Rpb24gaWRsVHlwZUlu
Y2x1ZGVzRGljdGlvbmFyeShpZGxUeXBlLCBkZWZzLCB7IHVzZU51bGxhYmxlSW5uZXIgfSA9IHt9
KSB7CiAgICAgICBpZiAocmVzdWx0KSB7CiAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgcmVm
ZXJlbmNlOiBpZGxUeXBlLAotICAgICAgICAgIGRpY3Rpb25hcnk6IHJlc3VsdC5kaWN0aW9uYXJ5
CisgICAgICAgICAgZGljdGlvbmFyeTogcmVzdWx0LmRpY3Rpb25hcnksCiAgICAgICAgIH07CiAg
ICAgICB9CiAgICAgfQogICAgIGlmIChkZWYudHlwZSA9PT0gImRpY3Rpb25hcnkiICYmICh1c2VO
dWxsYWJsZUlubmVyIHx8ICFpZGxUeXBlLm51bGxhYmxlKSkgewogICAgICAgcmV0dXJuIHsKICAg
ICAgICAgcmVmZXJlbmNlOiBpZGxUeXBlLAotICAgICAgICBkaWN0aW9uYXJ5OiBkZWYKKyAgICAg
ICAgZGljdGlvbmFyeTogZGVmLAogICAgICAgfTsKICAgICB9CiAgIH0KQEAgLTEyMzgsNyArMTM1
MSw3IEBAIGZ1bmN0aW9uIGlkbFR5cGVJbmNsdWRlc0RpY3Rpb25hcnkoaWRsVHlwZSwgZGVmcywg
eyB1c2VOdWxsYWJsZUlubmVyIH0gPSB7fSkgewogICAgICAgfQogICAgICAgcmV0dXJuIHsKICAg
ICAgICAgcmVmZXJlbmNlOiBzdWJ0eXBlLAotICAgICAgICBkaWN0aW9uYXJ5OiByZXN1bHQuZGlj
dGlvbmFyeQorICAgICAgICBkaWN0aW9uYXJ5OiByZXN1bHQuZGljdGlvbmFyeSwKICAgICAgIH07
CiAgICAgfQogICB9CkBAIC0xMjUzLDE3ICsxMzY2LDE5IEBAIGZ1bmN0aW9uIGRpY3Rpb25hcnlJ
bmNsdWRlc1JlcXVpcmVkRmllbGQoZGljdCwgZGVmcykgewogICBpZiAoZGVmcy5jYWNoZS5kaWN0
aW9uYXJ5SW5jbHVkZXNSZXF1aXJlZEZpZWxkLmhhcyhkaWN0KSkgewogICAgIHJldHVybiBkZWZz
LmNhY2hlLmRpY3Rpb25hcnlJbmNsdWRlc1JlcXVpcmVkRmllbGQuZ2V0KGRpY3QpOwogICB9Ci0g
IGRlZnMuY2FjaGUuZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZC5zZXQoZGljdCwgdW5k
ZWZpbmVkKTsgLy8gaW5kZXRlcm1pbmF0ZQotICBpZiAoZGljdC5pbmhlcml0YW5jZSkgeworICAv
LyBTZXQgY2FjaGVkIHJlc3VsdCB0byBpbmRldGVybWluYXRlIHRvIHNob3J0LWNpcmN1aXQgY2ly
Y3VsYXIgZGVmaW5pdGlvbnMuCisgIC8vIFRoZSBmaW5hbCByZXN1bHQgd2lsbCBiZSB1cGRhdGVk
IHRvIHRydWUgb3IgZmFsc2UuCisgIGRlZnMuY2FjaGUuZGljdGlvbmFyeUluY2x1ZGVzUmVxdWly
ZWRGaWVsZC5zZXQoZGljdCwgdW5kZWZpbmVkKTsKKyAgbGV0IHJlc3VsdCA9IGRpY3QubWVtYmVy
cy5zb21lKChmaWVsZCkgPT4gZmllbGQucmVxdWlyZWQpOworICBpZiAoIXJlc3VsdCAmJiBkaWN0
LmluaGVyaXRhbmNlKSB7CiAgICAgY29uc3Qgc3VwZXJkaWN0ID0gZGVmcy51bmlxdWUuZ2V0KGRp
Y3QuaW5oZXJpdGFuY2UpOwogICAgIGlmICghc3VwZXJkaWN0KSB7Ci0gICAgICByZXR1cm4gdHJ1
ZTsKLSAgICB9Ci0gICAgaWYgKGRpY3Rpb25hcnlJbmNsdWRlc1JlcXVpcmVkRmllbGQoc3VwZXJk
aWN0LCBkZWZzKSkgewotICAgICAgcmV0dXJuIHRydWU7CisgICAgICAvLyBBc3N1bWUgcmVxdWly
ZWQgbWVtYmVycyBpbiB0aGUgc3VwZXJ0eXBlIGlmIGl0IGlzIHVua25vd24uCisgICAgICByZXN1
bHQgPSB0cnVlOworICAgIH0gZWxzZSBpZiAoZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVs
ZChzdXBlcmRpY3QsIGRlZnMpKSB7CisgICAgICByZXN1bHQgPSB0cnVlOwogICAgIH0KICAgfQot
ICBjb25zdCByZXN1bHQgPSBkaWN0Lm1lbWJlcnMuc29tZShmaWVsZCA9PiBmaWVsZC5yZXF1aXJl
ZCk7CiAgIGRlZnMuY2FjaGUuZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZC5zZXQoZGlj
dCwgcmVzdWx0KTsKICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTEyNzEsMTIgKzEzODYsMTMgQEAg
ZnVuY3Rpb24gZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZChkaWN0LCBkZWZzKSB7CiAK
IC8qKiovIH0pLAogLyogOCAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4
cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNr
X19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVp
cmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJw
YWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNr
X3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJTaW1wbGVFeHRlbmRlZEF0dHJpYnV0
ZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGU7IH0pOwotLyog
aGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBh
Y2tfZXhwb3J0c19fLCAiRXh0ZW5kZWRBdHRyaWJ1dGVzIiwgZnVuY3Rpb24oKSB7IHJldHVybiBF
eHRlbmRlZEF0dHJpYnV0ZXM7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAg
IlNpbXBsZUV4dGVuZGVkQXR0cmlidXRlIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gU2ltcGxlRXh0
ZW5kZWRBdHRyaWJ1dGUpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAiRXh0ZW5kZWRBdHRyaWJ1
dGVzIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gRXh0ZW5kZWRBdHRyaWJ1dGVzKQorLyogaGFybW9u
eSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CiAvKiBoYXJt
b255IGltcG9ydCAqLyB2YXIgX2FycmF5X2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oOSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIg
X3Rva2VuX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWly
ZV9fKDEwKTsKQEAgLTEyOTMsOSArMTQwOSw5IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dl
YnBhY2tfZXhwb3J0c19fKTsKICAqIEBwYXJhbSB7c3RyaW5nfSB0b2tlbk5hbWUKICAqLwogZnVu
Y3Rpb24gdG9rZW5zKHRva2VuaXNlciwgdG9rZW5OYW1lKSB7Ci0gIHJldHVybiBPYmplY3QoX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1sibGlzdCJdKSh0b2tlbmlzZXIs
IHsKLSAgICBwYXJzZXI6IF90b2tlbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJU
b2tlbiJdLnBhcnNlcih0b2tlbmlzZXIsIHRva2VuTmFtZSksCi0gICAgbGlzdE5hbWU6IHRva2Vu
TmFtZSArICIgbGlzdCIKKyAgcmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8zX18ubGlzdCkodG9rZW5pc2VyLCB7CisgICAgcGFyc2VyOiBfdG9rZW5fanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5XcmFwcGVkVG9rZW4ucGFyc2VyKHRva2VuaXNlciwg
dG9rZW5OYW1lKSwKKyAgICBsaXN0TmFtZTogdG9rZW5OYW1lICsgIiBsaXN0IiwKICAgfSk7CiB9
CiAKQEAgLTEzMTAsNyArMTQyNiw3IEBAIGNvbnN0IHNob3VsZEJlTGVnYWN5UHJlZml4ZWQgPSBb
CiBdOwogCiBjb25zdCByZW5hbWVkTGVnYWNpZXMgPSBuZXcgTWFwKFsKLSAgLi4uc2hvdWxkQmVM
ZWdhY3lQcmVmaXhlZC5tYXAobmFtZSA9PiBbbmFtZSwgYExlZ2FjeSR7bmFtZX1gXSksCisgIC4u
LnNob3VsZEJlTGVnYWN5UHJlZml4ZWQubWFwKChuYW1lKSA9PiBbbmFtZSwgYExlZ2FjeSR7bmFt
ZX1gXSksCiAgIFsiTmFtZWRDb25zdHJ1Y3RvciIsICJMZWdhY3lGYWN0b3J5RnVuY3Rpb24iXSwK
ICAgWyJPdmVycmlkZUJ1aWx0aW5zIiwgIkxlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiXSwKICAgWyJU
cmVhdE51bGxBcyIsICJMZWdhY3lOdWxsVG9FbXB0eVN0cmluZyJdLApAQCAtMTMyNywyOCArMTQ0
MywzMyBAQCBmdW5jdGlvbiBleHRBdHRyTGlzdEl0ZW1zKHRva2VuaXNlcikgewogICAgICAgcmV0
dXJuIHRva3M7CiAgICAgfQogICB9Ci0gIHRva2VuaXNlci5lcnJvcihgRXhwZWN0ZWQgaWRlbnRp
ZmllcnMsIHN0cmluZ3MsIGRlY2ltYWxzLCBvciBpbnRlZ2VycyBidXQgbm9uZSBmb3VuZGApOwor
ICB0b2tlbmlzZXIuZXJyb3IoCisgICAgYEV4cGVjdGVkIGlkZW50aWZpZXJzLCBzdHJpbmdzLCBk
ZWNpbWFscywgb3IgaW50ZWdlcnMgYnV0IG5vbmUgZm91bmRgCisgICk7CiB9CiAKLQotY2xhc3Mg
RXh0ZW5kZWRBdHRyaWJ1dGVQYXJhbWV0ZXJzIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKK2NsYXNzIEV4dGVuZGVkQXR0cmlidXRlUGFyYW1l
dGVycyBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7
CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0
b2tlbmlzZXIKICAgICovCiAgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKICAgICBjb25zdCB0
b2tlbnMgPSB7IGFzc2lnbjogdG9rZW5pc2VyLmNvbnN1bWUoIj0iKSB9OwotICAgIGNvbnN0IHJl
dCA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJhdXRv
UGFyZW50ZXIiXSkobmV3IEV4dGVuZGVkQXR0cmlidXRlUGFyYW1ldGVycyh7IHNvdXJjZTogdG9r
ZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pKTsKKyAgICBjb25zdCByZXQgPSAoMCxfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmF1dG9QYXJlbnRlcikoCisgICAgICBuZXcg
RXh0ZW5kZWRBdHRyaWJ1dGVQYXJhbWV0ZXJzKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0
b2tlbnMgfSkKKyAgICApOwogICAgIGlmICh0b2tlbnMuYXNzaWduKSB7Ci0gICAgICB0b2tlbnMu
c2Vjb25kYXJ5TmFtZSA9IHRva2VuaXNlci5jb25zdW1lKC4uLmV4dEF0dHJWYWx1ZVN5bnRheCk7
CisgICAgICB0b2tlbnMuc2Vjb25kYXJ5TmFtZSA9IHRva2VuaXNlci5jb25zdW1lVHlwZSguLi5l
eHRBdHRyVmFsdWVTeW50YXgpOwogICAgIH0KICAgICB0b2tlbnMub3BlbiA9IHRva2VuaXNlci5j
b25zdW1lKCIoIik7CiAgICAgaWYgKHRva2Vucy5vcGVuKSB7Ci0gICAgICByZXQubGlzdCA9IHJl
dC5yaHNJc0xpc3QgPwotICAgICAgICAvLyBbRXhwb3NlZD0oV2luZG93LFdvcmtlcildCi0gICAg
ICAgIGV4dEF0dHJMaXN0SXRlbXModG9rZW5pc2VyKSA6Ci0gICAgICAgIC8vIFtMZWdhY3lGYWN0
b3J5RnVuY3Rpb249QXVkaW8oRE9NU3RyaW5nIHNyYyldIG9yIFtDb25zdHJ1Y3RvcihET01TdHJp
bmcgc3RyKV0KLSAgICAgICAgT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8zX19bImFyZ3VtZW50X2xpc3QiXSkodG9rZW5pc2VyKTsKLSAgICAgIHRva2Vucy5jbG9z
ZSA9IHRva2VuaXNlci5jb25zdW1lKCIpIikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbmV4cGVjdGVk
IHRva2VuIGluIGV4dGVuZGVkIGF0dHJpYnV0ZSBhcmd1bWVudCBsaXN0Iik7CisgICAgICByZXQu
bGlzdCA9IHJldC5yaHNJc0xpc3QKKyAgICAgICAgPyAvLyBbRXhwb3NlZD0oV2luZG93LFdvcmtl
cildCisgICAgICAgICAgZXh0QXR0ckxpc3RJdGVtcyh0b2tlbmlzZXIpCisgICAgICAgIDogLy8g
W0xlZ2FjeUZhY3RvcnlGdW5jdGlvbj1BdWRpbyhET01TdHJpbmcgc3JjKV0gb3IgW0NvbnN0cnVj
dG9yKERPTVN0cmluZyBzdHIpXQorICAgICAgICAgICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8zX18uYXJndW1lbnRfbGlzdCkodG9rZW5pc2VyKTsKKyAgICAgIHRva2Vu
cy5jbG9zZSA9CisgICAgICAgIHRva2VuaXNlci5jb25zdW1lKCIpIikgfHwKKyAgICAgICAgdG9r
ZW5pc2VyLmVycm9yKCJVbmV4cGVjdGVkIHRva2VuIGluIGV4dGVuZGVkIGF0dHJpYnV0ZSBhcmd1
bWVudCBsaXN0Iik7CiAgICAgfSBlbHNlIGlmIChyZXQuaGFzUmhzICYmICF0b2tlbnMuc2Vjb25k
YXJ5TmFtZSkgewogICAgICAgdG9rZW5pc2VyLmVycm9yKCJObyByaWdodCBoYW5kIHNpZGUgdG8g
ZXh0ZW5kZWQgYXR0cmlidXRlIGFzc2lnbm1lbnQiKTsKICAgICB9CkBAIC0xMzY4LDE5ICsxNDg5
LDQ1IEBAIGNsYXNzIEV4dGVuZGVkQXR0cmlidXRlUGFyYW1ldGVycyBleHRlbmRzIF9iYXNlX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bCiAgICAgfQogICAgIHJldHVybiBudWxsOwog
ICB9CisKKyAgLyoqIEBwYXJhbSB7aW1wb3J0KCIuLi93cml0ZXIuanMiKS5Xcml0ZXIpfSB3ICov
CisgIHdyaXRlKHcpIHsKKyAgICBmdW5jdGlvbiBleHRlbmRlZF9hdHRyaWJ1dGVfbGlzdGl0ZW0o
aXRlbSkgeworICAgICAgcmV0dXJuIHcudHMud3JhcChbCisgICAgICAgIHcudG9rZW4oaXRlbS50
b2tlbnMudmFsdWUpLAorICAgICAgICB3LnRva2VuKGl0ZW0udG9rZW5zLnNlcGFyYXRvciksCisg
ICAgICBdKTsKKyAgICB9CisgICAgY29uc3QgeyByaHNUeXBlIH0gPSB0aGlzOworICAgIHJldHVy
biB3LnRzLndyYXAoWworICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5hc3NpZ24pLAorICAgICAg
dy5yZWZlcmVuY2VfdG9rZW4odGhpcy50b2tlbnMuc2Vjb25kYXJ5TmFtZSwgdGhpcy5wYXJlbnQp
LAorICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5vcGVuKSwKKyAgICAgIC4uLighdGhpcy5saXN0
CisgICAgICAgID8gW10KKyAgICAgICAgOiB0aGlzLmxpc3QubWFwKChwKSA9PiB7CisgICAgICAg
ICAgICByZXR1cm4gcmhzVHlwZSA9PT0gImlkZW50aWZpZXItbGlzdCIKKyAgICAgICAgICAgICAg
PyB3LmlkZW50aWZpZXIocCwgdGhpcy5wYXJlbnQpCisgICAgICAgICAgICAgIDogcmhzVHlwZSAm
JiByaHNUeXBlLmVuZHNXaXRoKCItbGlzdCIpCisgICAgICAgICAgICAgID8gZXh0ZW5kZWRfYXR0
cmlidXRlX2xpc3RpdGVtKHApCisgICAgICAgICAgICAgIDogcC53cml0ZSh3KTsKKyAgICAgICAg
ICB9KSksCisgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLmNsb3NlKSwKKyAgICBdKTsKKyAgfQog
fQogCi1jbGFzcyBTaW1wbGVFeHRlbmRlZEF0dHJpYnV0ZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CitjbGFzcyBTaW1wbGVFeHRlbmRlZEF0
dHJpYnV0ZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFz
ZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2Vy
fSB0b2tlbmlzZXIKICAgICovCiAgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKLSAgICBjb25z
dCBuYW1lID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiKTsKKyAgICBjb25zdCBuYW1l
ID0gdG9rZW5pc2VyLmNvbnN1bWVUeXBlKCJpZGVudGlmaWVyIik7CiAgICAgaWYgKG5hbWUpIHsK
ICAgICAgIHJldHVybiBuZXcgU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGUoewogICAgICAgICBzb3Vy
Y2U6IHRva2VuaXNlci5zb3VyY2UsCiAgICAgICAgIHRva2VuczogeyBuYW1lIH0sCi0gICAgICAg
IHBhcmFtczogRXh0ZW5kZWRBdHRyaWJ1dGVQYXJhbWV0ZXJzLnBhcnNlKHRva2VuaXNlcikKKyAg
ICAgICAgcGFyYW1zOiBFeHRlbmRlZEF0dHJpYnV0ZVBhcmFtZXRlcnMucGFyc2UodG9rZW5pc2Vy
KSwKICAgICAgIH0pOwogICAgIH0KICAgfQpAQCAtMTQwMiw3ICsxNTQ5LDkgQEAgY2xhc3MgU2lt
cGxlRXh0ZW5kZWRBdHRyaWJ1dGUgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fWyJCYXMKICAgICBpZiAoIXR5cGUpIHsKICAgICAgIHJldHVybiBudWxsOwogICAg
IH0KLSAgICBjb25zdCB2YWx1ZSA9IHRoaXMucGFyYW1zLnJoc0lzTGlzdCA/IGxpc3QgOiBPYmpl
Y3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1sidW5lc2NhcGUiXSko
dG9rZW5zLnNlY29uZGFyeU5hbWUudmFsdWUpOworICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wYXJh
bXMucmhzSXNMaXN0CisgICAgICA/IGxpc3QKKyAgICAgIDogKDAsX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzNfXy51bmVzY2FwZSkodG9rZW5zLnNlY29uZGFyeU5hbWUudmFs
dWUpOwogICAgIHJldHVybiB7IHR5cGUsIHZhbHVlIH07CiAgIH0KICAgZ2V0IGFyZ3VtZW50cygp
IHsKQEAgLTE0MjAsMjEgKzE1NjksNDEgQEAgY2xhc3MgU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGUg
ZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXMKIHVuZGVz
aXJhYmxlIGZlYXR1cmUgdGhhdCBtYXkgYmUgcmVtb3ZlZCBmcm9tIFdlYiBJREwgaW4gdGhlIGZ1
dHVyZS4gUmVmZXIgdG8gdGhlIFwKIFtyZWxldmFudCB1cHN0cmVhbSBQUl0oaHR0cHM6Ly9naXRo
dWIuY29tL2hleWNhbS93ZWJpZGwvcHVsbC82MDkpIGZvciBtb3JlIFwKIGluZm9ybWF0aW9uLmA7
Ci0gICAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80
X19bInZhbGlkYXRpb25FcnJvciJdKSh0aGlzLnRva2Vucy5uYW1lLCB0aGlzLCAibm8tbm9pbnRl
cmZhY2VvYmplY3QiLCBtZXNzYWdlLCB7IGxldmVsOiAid2FybmluZyIgfSk7CisgICAgICB5aWVs
ZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy52YWxpZGF0aW9uRXJy
b3IpKAorICAgICAgICB0aGlzLnRva2Vucy5uYW1lLAorICAgICAgICB0aGlzLAorICAgICAgICAi
bm8tbm9pbnRlcmZhY2VvYmplY3QiLAorICAgICAgICBtZXNzYWdlLAorICAgICAgICB7IGxldmVs
OiAid2FybmluZyIgfQorICAgICAgKTsKICAgICB9IGVsc2UgaWYgKHJlbmFtZWRMZWdhY2llcy5o
YXMobmFtZSkpIHsKICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgXGBbJHtuYW1lfV1cYCBleHRlbmRl
ZCBhdHRyaWJ1dGUgaXMgYSBsZWdhY3kgZmVhdHVyZSBcCiB0aGF0IGlzIG5vdyByZW5hbWVkIHRv
IFxgWyR7cmVuYW1lZExlZ2FjaWVzLmdldChuYW1lKX1dXGAuIFJlZmVyIHRvIHRoZSBcCiBbcmVs
ZXZhbnQgdXBzdHJlYW0gUFJdKGh0dHBzOi8vZ2l0aHViLmNvbS9oZXljYW0vd2ViaWRsL3B1bGwv
ODcwKSBmb3IgbW9yZSBcCiBpbmZvcm1hdGlvbi5gOwotICAgICAgeWllbGQgT2JqZWN0KF9lcnJv
cl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fWyJ2YWxpZGF0aW9uRXJyb3IiXSkodGhp
cy50b2tlbnMubmFtZSwgdGhpcywgInJlbmFtZWQtbGVnYWN5IiwgbWVzc2FnZSwgeworICAgICAg
eWllbGQgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18udmFsaWRhdGlv
bkVycm9yKSh0aGlzLnRva2Vucy5uYW1lLCB0aGlzLCAicmVuYW1lZC1sZWdhY3kiLCBtZXNzYWdl
LCB7CiAgICAgICAgIGxldmVsOiAid2FybmluZyIsCi0gICAgICAgIGF1dG9maXg6IHJlbmFtZUxl
Z2FjeUV4dGVuZGVkQXR0cmlidXRlKHRoaXMpCisgICAgICAgIGF1dG9maXg6IHJlbmFtZUxlZ2Fj
eUV4dGVuZGVkQXR0cmlidXRlKHRoaXMpLAogICAgICAgfSk7CiAgICAgfQogICAgIGZvciAoY29u
c3QgYXJnIG9mIHRoaXMuYXJndW1lbnRzKSB7CiAgICAgICB5aWVsZCogYXJnLnZhbGlkYXRlKGRl
ZnMpOwogICAgIH0KICAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIiku
V3JpdGVyKX0gdyAqLworICB3cml0ZSh3KSB7CisgICAgcmV0dXJuIHcudHMud3JhcChbCisgICAg
ICB3LnRzLnRyaXZpYSh0aGlzLnRva2Vucy5uYW1lLnRyaXZpYSksCisgICAgICB3LnRzLmV4dGVu
ZGVkQXR0cmlidXRlKAorICAgICAgICB3LnRzLndyYXAoWworICAgICAgICAgIHcudHMuZXh0ZW5k
ZWRBdHRyaWJ1dGVSZWZlcmVuY2UodGhpcy5uYW1lKSwKKyAgICAgICAgICB0aGlzLnBhcmFtcy53
cml0ZSh3KSwKKyAgICAgICAgXSkKKyAgICAgICksCisgICAgICB3LnRva2VuKHRoaXMudG9rZW5z
LnNlcGFyYXRvciksCisgICAgXSk7CisgIH0KIH0KIAogLyoqCkBAIC0xNDUyLDcgKzE2MjEsNyBA
QCBmdW5jdGlvbiByZW5hbWVMZWdhY3lFeHRlbmRlZEF0dHJpYnV0ZShleHRBdHRyKSB7CiAKIC8v
IE5vdGU6IHdlIHBhcnNlIHNvbWV0aGluZyBzaW1wbGVyIHRoYW4gdGhlIG9mZmljaWFsIHN5bnRh
eC4gSXQncyBhbGwgdGhhdCBldmVyCiAvLyBzZWVtcyB0byBiZSB1c2VkCi1jbGFzcyBFeHRlbmRl
ZEF0dHJpYnV0ZXMgZXh0ZW5kcyBfYXJyYXlfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMV9fWyJBcnJheUJhc2UiXSB7CitjbGFzcyBFeHRlbmRlZEF0dHJpYnV0ZXMgZXh0ZW5kcyBf
YXJyYXlfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkFycmF5QmFzZSB7CiAg
IC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tl
bmlzZXIKICAgICovCkBAIC0xNDYxLDE2ICsxNjMwLDIyIEBAIGNsYXNzIEV4dGVuZGVkQXR0cmli
dXRlcyBleHRlbmRzIF9hcnJheV9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19b
IkFyCiAgICAgdG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgiWyIpOwogICAgIGlmICgh
dG9rZW5zLm9wZW4pIHJldHVybiBuZXcgRXh0ZW5kZWRBdHRyaWJ1dGVzKHt9KTsKICAgICBjb25z
dCByZXQgPSBuZXcgRXh0ZW5kZWRBdHRyaWJ1dGVzKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNl
LCB0b2tlbnMgfSk7Ci0gICAgcmV0LnB1c2goLi4uT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8zX19bImxpc3QiXSkodG9rZW5pc2VyLCB7Ci0gICAgICBwYXJzZXI6
IFNpbXBsZUV4dGVuZGVkQXR0cmlidXRlLnBhcnNlLAotICAgICAgbGlzdE5hbWU6ICJleHRlbmRl
ZCBhdHRyaWJ1dGUiCi0gICAgfSkpOwotICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25z
dW1lKCJdIikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbmV4cGVjdGVkIGNsb3NpbmcgdG9rZW4gb2Yg
ZXh0ZW5kZWQgYXR0cmlidXRlIik7CisgICAgcmV0LnB1c2goCisgICAgICAuLi4oMCxfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLmxpc3QpKHRva2VuaXNlciwgeworICAg
ICAgICBwYXJzZXI6IFNpbXBsZUV4dGVuZGVkQXR0cmlidXRlLnBhcnNlLAorICAgICAgICBsaXN0
TmFtZTogImV4dGVuZGVkIGF0dHJpYnV0ZSIsCisgICAgICB9KQorICAgICk7CisgICAgdG9rZW5z
LmNsb3NlID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCJdIikgfHwKKyAgICAgIHRva2VuaXNl
ci5lcnJvcigiVW5leHBlY3RlZCBjbG9zaW5nIHRva2VuIG9mIGV4dGVuZGVkIGF0dHJpYnV0ZSIp
OwogICAgIGlmICghcmV0Lmxlbmd0aCkgewogICAgICAgdG9rZW5pc2VyLmVycm9yKCJGb3VuZCBh
biBlbXB0eSBleHRlbmRlZCBhdHRyaWJ1dGUiKTsKICAgICB9CiAgICAgaWYgKHRva2VuaXNlci5w
cm9iZSgiWyIpKSB7Ci0gICAgICB0b2tlbmlzZXIuZXJyb3IoIklsbGVnYWwgZG91YmxlIGV4dGVu
ZGVkIGF0dHJpYnV0ZSBsaXN0cywgY29uc2lkZXIgbWVyZ2luZyB0aGVtIik7CisgICAgICB0b2tl
bmlzZXIuZXJyb3IoCisgICAgICAgICJJbGxlZ2FsIGRvdWJsZSBleHRlbmRlZCBhdHRyaWJ1dGUg
bGlzdHMsIGNvbnNpZGVyIG1lcmdpbmcgdGhlbSIKKyAgICAgICk7CiAgICAgfQogICAgIHJldHVy
biByZXQ7CiAgIH0KQEAgLTE0ODAsMTYgKzE2NTUsMjcgQEAgY2xhc3MgRXh0ZW5kZWRBdHRyaWJ1
dGVzIGV4dGVuZHMgX2FycmF5X2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1si
QXIKICAgICAgIHlpZWxkKiBleHRBdHRyLnZhbGlkYXRlKGRlZnMpOwogICAgIH0KICAgfQorCisg
IC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyKX0gdyAqLworICB3cml0
ZSh3KSB7CisgICAgaWYgKCF0aGlzLmxlbmd0aCkgcmV0dXJuICIiOworICAgIHJldHVybiB3LnRz
LndyYXAoWworICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5vcGVuKSwKKyAgICAgIC4uLnRoaXMu
bWFwKChlYSkgPT4gZWEud3JpdGUodykpLAorICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5jbG9z
ZSksCisgICAgXSk7CisgIH0KIH0KIAogCiAvKioqLyB9KSwKIC8qIDkgKi8KLS8qKiovIChmdW5j
dGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsK
Ky8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19l
eHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193
ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBv
cnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19f
LCAiQXJyYXlCYXNlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBBcnJheUJhc2U7IH0pOworLyogaGFy
bW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18s
IHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIkFycmF5QmFzZSI6ICgpID0+ICgvKiBiaW5kaW5n
ICovIEFycmF5QmFzZSkKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLy8gQHRzLWNoZWNrCiAK
IGNsYXNzIEFycmF5QmFzZSBleHRlbmRzIEFycmF5IHsKQEAgLTE0OTgsNyArMTY4NCw3IEBAIGNs
YXNzIEFycmF5QmFzZSBleHRlbmRzIEFycmF5IHsKICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGll
cyh0aGlzLCB7CiAgICAgICBzb3VyY2U6IHsgdmFsdWU6IHNvdXJjZSB9LAogICAgICAgdG9rZW5z
OiB7IHZhbHVlOiB0b2tlbnMgfSwKLSAgICAgIHBhcmVudDogeyB2YWx1ZTogbnVsbCwgd3JpdGFi
bGU6IHRydWUgfQorICAgICAgcGFyZW50OiB7IHZhbHVlOiBudWxsLCB3cml0YWJsZTogdHJ1ZSB9
LAogICAgIH0pOwogICB9CiB9CkBAIC0xNTA2LDExICsxNjkyLDEyIEBAIGNsYXNzIEFycmF5QmFz
ZSBleHRlbmRzIEFycmF5IHsKIAogLyoqKi8gfSksCiAvKiAxMCAqLwotLyoqKi8gKGZ1bmN0aW9u
KG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoq
Ki8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9y
dHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBh
Y2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAo
YmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJU
b2tlbiIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gVG9rZW47IH0pOworLyogaGFybW9ueSBleHBvcnQg
Ki8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1v
bnkgZXhwb3J0ICovICAgIldyYXBwZWRUb2tlbiI6ICgpID0+ICgvKiBiaW5kaW5nICovIFdyYXBw
ZWRUb2tlbikKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8g
dmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVx
dWlyZV9fKDYpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwogLy8gQHRzLWNo
ZWNrCkBAIC0xNTE4LDMzICsxNzA1LDM3IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBh
Y2tfZXhwb3J0c19fKTsKIAogCiAKLWNsYXNzIFRva2VuIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKK2NsYXNzIFdyYXBwZWRUb2tlbiBleHRl
bmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgog
ICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIK
ICAgICogQHBhcmFtIHtzdHJpbmd9IHR5cGUKICAgICovCiAgIHN0YXRpYyBwYXJzZXIodG9rZW5p
c2VyLCB0eXBlKSB7CiAgICAgcmV0dXJuICgpID0+IHsKLSAgICAgIGNvbnN0IHZhbHVlID0gdG9r
ZW5pc2VyLmNvbnN1bWUodHlwZSk7CisgICAgICBjb25zdCB2YWx1ZSA9IHRva2VuaXNlci5jb25z
dW1lVHlwZSh0eXBlKTsKICAgICAgIGlmICh2YWx1ZSkgewotICAgICAgICByZXR1cm4gbmV3IFRv
a2VuKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnM6IHsgdmFsdWUgfSB9KTsKKyAg
ICAgICAgcmV0dXJuIG5ldyBXcmFwcGVkVG9rZW4oeworICAgICAgICAgIHNvdXJjZTogdG9rZW5p
c2VyLnNvdXJjZSwKKyAgICAgICAgICB0b2tlbnM6IHsgdmFsdWUgfSwKKyAgICAgICAgfSk7CiAg
ICAgICB9CiAgICAgfTsKICAgfQogCiAgIGdldCB2YWx1ZSgpIHsKLSAgICByZXR1cm4gT2JqZWN0
KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0pKHRo
aXMudG9rZW5zLnZhbHVlLnZhbHVlKTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfXy51bmVzY2FwZSkodGhpcy50b2tlbnMudmFsdWUudmFsdWUp
OwogICB9CiB9CiAKIAogLyoqKi8gfSksCiAvKiAxMSAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVs
ZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChf
X3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywg
X193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVx
dWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGlu
ZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJBcmd1bWVu
dCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gQXJndW1lbnQ7IH0pOworLyogaGFybW9ueSBleHBvcnQg
Ki8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1v
bnkgZXhwb3J0ICovICAgIkFyZ3VtZW50IjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gQXJndW1lbnQp
CisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFz
ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2
KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZGVmYXVsdF9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMik7CiAvKiBoYXJtb255IGltcG9y
dCAqLyB2YXIgX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oOCk7CkBAIC0xNTYyLDcgKzE3NTMsNyBAQCBfX3dl
YnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiAKIAogCi1jbGFzcyBBcmd1
bWVudCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2Ui
XSB7CitjbGFzcyBBcmd1bWVudCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2Vy
IikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCkBAIC0xNTcwLDIxICsxNzYxLDI1IEBAIGNs
YXNzIEFyZ3VtZW50IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
X1siQmFzZSJdIHsKICAgICBjb25zdCBzdGFydF9wb3NpdGlvbiA9IHRva2VuaXNlci5wb3NpdGlv
bjsKICAgICAvKiogQHR5cGUge0Jhc2VbInRva2VucyJdfSAqLwogICAgIGNvbnN0IHRva2VucyA9
IHt9OwotICAgIGNvbnN0IHJldCA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfM19fWyJhdXRvUGFyZW50ZXIiXSkobmV3IEFyZ3VtZW50KHsgc291cmNlOiB0b2tl
bmlzZXIuc291cmNlLCB0b2tlbnMgfSkpOwotICAgIHJldC5leHRBdHRycyA9IF9leHRlbmRlZF9h
dHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkV4dGVuZGVkQXR0cmli
dXRlcyJdLnBhcnNlKHRva2VuaXNlcik7CisgICAgY29uc3QgcmV0ID0gKDAsX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5hdXRvUGFyZW50ZXIpKAorICAgICAgbmV3IEFy
Z3VtZW50KHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkKKyAgICApOworICAg
IHJldC5leHRBdHRycyA9IF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8yX18uRXh0ZW5kZWRBdHRyaWJ1dGVzLnBhcnNlKHRva2VuaXNlcik7CiAgICAgdG9r
ZW5zLm9wdGlvbmFsID0gdG9rZW5pc2VyLmNvbnN1bWUoIm9wdGlvbmFsIik7Ci0gICAgcmV0Lmlk
bFR5cGUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1si
dHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMiXSkodG9rZW5pc2VyLCAiYXJndW1lbnQtdHlw
ZSIpOworICAgIHJldC5pZGxUeXBlID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzNfXy50eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcykodG9rZW5pc2VyLCAiYXJn
dW1lbnQtdHlwZSIpOwogICAgIGlmICghcmV0LmlkbFR5cGUpIHsKICAgICAgIHJldHVybiB0b2tl
bmlzZXIudW5jb25zdW1lKHN0YXJ0X3Bvc2l0aW9uKTsKICAgICB9CiAgICAgaWYgKCF0b2tlbnMu
b3B0aW9uYWwpIHsKICAgICAgIHRva2Vucy52YXJpYWRpYyA9IHRva2VuaXNlci5jb25zdW1lKCIu
Li4iKTsKICAgICB9Ci0gICAgdG9rZW5zLm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRp
ZmllciIsIC4uLl90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siYXJn
dW1lbnROYW1lS2V5d29yZHMiXSk7CisgICAgdG9rZW5zLm5hbWUgPQorICAgICAgdG9rZW5pc2Vy
LmNvbnN1bWVUeXBlKCJpZGVudGlmaWVyIikgfHwKKyAgICAgIHRva2VuaXNlci5jb25zdW1lKC4u
Ll90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5hcmd1bWVudE5hbWVL
ZXl3b3Jkcyk7CiAgICAgaWYgKCF0b2tlbnMubmFtZSkgewogICAgICAgcmV0dXJuIHRva2VuaXNl
ci51bmNvbnN1bWUoc3RhcnRfcG9zaXRpb24pOwogICAgIH0KLSAgICByZXQuZGVmYXVsdCA9IHRv
a2Vucy5vcHRpb25hbCA/IF9kZWZhdWx0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19b
IkRlZmF1bHQiXS5wYXJzZSh0b2tlbmlzZXIpIDogbnVsbDsKKyAgICByZXQuZGVmYXVsdCA9IHRv
a2Vucy5vcHRpb25hbCA/IF9kZWZhdWx0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18u
RGVmYXVsdC5wYXJzZSh0b2tlbmlzZXIpIDogbnVsbDsKICAgICByZXR1cm4gcmV0LnRoaXM7CiAg
IH0KIApAQCAtMTU5OCwzNCArMTc5Myw3MSBAQCBjbGFzcyBBcmd1bWVudCBleHRlbmRzIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICAgcmV0dXJuICEh
dGhpcy50b2tlbnMudmFyaWFkaWM7CiAgIH0KICAgZ2V0IG5hbWUoKSB7Ci0gICAgcmV0dXJuIE9i
amVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJ1bmVzY2FwZSJd
KSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy51bmVzY2FwZSkodGhpcy50b2tlbnMubmFtZS52YWx1
ZSk7CiAgIH0KIAogICAvKioKICAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3ZhbGlkYXRvci5qcyIp
LkRlZmluaXRpb25zfSBkZWZzCiAgICAqLwogICAqdmFsaWRhdGUoZGVmcykgeworICAgIHlpZWxk
KiB0aGlzLmV4dEF0dHJzLnZhbGlkYXRlKGRlZnMpOwogICAgIHlpZWxkKiB0aGlzLmlkbFR5cGUu
dmFsaWRhdGUoZGVmcyk7Ci0gICAgY29uc3QgcmVzdWx0ID0gT2JqZWN0KF92YWxpZGF0b3JzX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1siaWRsVHlwZUluY2x1ZGVzRGlj
dGlvbmFyeSJdKSh0aGlzLmlkbFR5cGUsIGRlZnMsIHsgdXNlTnVsbGFibGVJbm5lcjogdHJ1ZSB9
KTsKKyAgICBjb25zdCByZXN1bHQgPSAoMCxfdmFsaWRhdG9yc19oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV82X18uaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeSkodGhpcy5pZGxU
eXBlLCBkZWZzLCB7CisgICAgICB1c2VOdWxsYWJsZUlubmVyOiB0cnVlLAorICAgIH0pOwogICAg
IGlmIChyZXN1bHQpIHsKICAgICAgIGlmICh0aGlzLmlkbFR5cGUubnVsbGFibGUpIHsKICAgICAg
ICAgY29uc3QgbWVzc2FnZSA9IGBEaWN0aW9uYXJ5IGFyZ3VtZW50cyBjYW5ub3QgYmUgbnVsbGFi
bGUuYDsKLSAgICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfNV9fWyJ2YWxpZGF0aW9uRXJyb3IiXSkodGhpcy50b2tlbnMubmFtZSwgdGhpcywgIm5v
LW51bGxhYmxlLWRpY3QtYXJnIiwgbWVzc2FnZSk7CisgICAgICAgIHlpZWxkICgwLF9lcnJvcl9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnZhbGlkYXRpb25FcnJvcikoCisgICAgICAg
ICAgdGhpcy50b2tlbnMubmFtZSwKKyAgICAgICAgICB0aGlzLAorICAgICAgICAgICJuby1udWxs
YWJsZS1kaWN0LWFyZyIsCisgICAgICAgICAgbWVzc2FnZQorICAgICAgICApOwogICAgICAgfSBl
bHNlIGlmICghdGhpcy5vcHRpb25hbCkgewotICAgICAgICBpZiAodGhpcy5wYXJlbnQgJiYgIU9i
amVjdChfdmFsaWRhdG9yc19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19b
ImRpY3Rpb25hcnlJbmNsdWRlc1JlcXVpcmVkRmllbGQiXSkocmVzdWx0LmRpY3Rpb25hcnksIGRl
ZnMpICYmIGlzTGFzdFJlcXVpcmVkQXJndW1lbnQodGhpcykpIHsKKyAgICAgICAgaWYgKAorICAg
ICAgICAgIHRoaXMucGFyZW50ICYmCisgICAgICAgICAgISgwLF92YWxpZGF0b3JzX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy5kaWN0aW9uYXJ5SW5jbHVkZXNSZXF1aXJl
ZEZpZWxkKShyZXN1bHQuZGljdGlvbmFyeSwgZGVmcykgJiYKKyAgICAgICAgICBpc0xhc3RSZXF1
aXJlZEFyZ3VtZW50KHRoaXMpCisgICAgICAgICkgewogICAgICAgICAgIGNvbnN0IG1lc3NhZ2Ug
PSBgRGljdGlvbmFyeSBhcmd1bWVudCBtdXN0IGJlIG9wdGlvbmFsIGlmIGl0IGhhcyBubyByZXF1
aXJlZCBmaWVsZHNgOwotICAgICAgICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzVfX1sidmFsaWRhdGlvbkVycm9yIl0pKHRoaXMudG9rZW5zLm5hbWUs
IHRoaXMsICJkaWN0LWFyZy1vcHRpb25hbCIsIG1lc3NhZ2UsIHsKLSAgICAgICAgICAgIGF1dG9m
aXg6IGF1dG9maXhEaWN0aW9uYXJ5QXJndW1lbnRPcHRpb25hbGl0eSh0aGlzKQotICAgICAgICAg
IH0pOworICAgICAgICAgIHlpZWxkICgwLF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfNV9fLnZhbGlkYXRpb25FcnJvcikoCisgICAgICAgICAgICB0aGlzLnRva2Vucy5uYW1lLAor
ICAgICAgICAgICAgdGhpcywKKyAgICAgICAgICAgICJkaWN0LWFyZy1vcHRpb25hbCIsCisgICAg
ICAgICAgICBtZXNzYWdlLAorICAgICAgICAgICAgeworICAgICAgICAgICAgICBhdXRvZml4OiBh
dXRvZml4RGljdGlvbmFyeUFyZ3VtZW50T3B0aW9uYWxpdHkodGhpcyksCisgICAgICAgICAgICB9
CisgICAgICAgICAgKTsKICAgICAgICAgfQogICAgICAgfSBlbHNlIGlmICghdGhpcy5kZWZhdWx0
KSB7CiAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgT3B0aW9uYWwgZGljdGlvbmFyeSBhcmd1bWVu
dHMgbXVzdCBoYXZlIGEgZGVmYXVsdCB2YWx1ZSBvZiBcYHt9XGAuYDsKLSAgICAgICAgeWllbGQg
T2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fWyJ2YWxpZGF0aW9u
RXJyb3IiXSkodGhpcy50b2tlbnMubmFtZSwgdGhpcywgImRpY3QtYXJnLWRlZmF1bHQiLCBtZXNz
YWdlLCB7Ci0gICAgICAgICAgYXV0b2ZpeDogYXV0b2ZpeE9wdGlvbmFsRGljdGlvbmFyeURlZmF1
bHRWYWx1ZSh0aGlzKQotICAgICAgICB9KTsKKyAgICAgICAgeWllbGQgKDAsX2Vycm9yX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18udmFsaWRhdGlvbkVycm9yKSgKKyAgICAgICAgICB0
aGlzLnRva2Vucy5uYW1lLAorICAgICAgICAgIHRoaXMsCisgICAgICAgICAgImRpY3QtYXJnLWRl
ZmF1bHQiLAorICAgICAgICAgIG1lc3NhZ2UsCisgICAgICAgICAgeworICAgICAgICAgICAgYXV0
b2ZpeDogYXV0b2ZpeE9wdGlvbmFsRGljdGlvbmFyeURlZmF1bHRWYWx1ZSh0aGlzKSwKKyAgICAg
ICAgICB9CisgICAgICAgICk7CiAgICAgICB9CiAgICAgfQogICB9CisKKyAgLyoqIEBwYXJhbSB7
aW1wb3J0KCIuLi93cml0ZXIuanMiKS5Xcml0ZXJ9IHcgKi8KKyAgd3JpdGUodykgeworICAgIHJl
dHVybiB3LnRzLndyYXAoWworICAgICAgdGhpcy5leHRBdHRycy53cml0ZSh3KSwKKyAgICAgIHcu
dG9rZW4odGhpcy50b2tlbnMub3B0aW9uYWwpLAorICAgICAgdy50cy50eXBlKHRoaXMuaWRsVHlw
ZS53cml0ZSh3KSksCisgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnZhcmlhZGljKSwKKyAgICAg
IHcubmFtZV90b2tlbih0aGlzLnRva2Vucy5uYW1lLCB7IGRhdGE6IHRoaXMgfSksCisgICAgICB0
aGlzLmRlZmF1bHQgPyB0aGlzLmRlZmF1bHQud3JpdGUodykgOiAiIiwKKyAgICAgIHcudG9rZW4o
dGhpcy50b2tlbnMuc2VwYXJhdG9yKSwKKyAgICBdKTsKKyAgfQogfQogCiAvKioKQEAgLTE2MzQs
NyArMTg2Niw3IEBAIGNsYXNzIEFyZ3VtZW50IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKIGZ1bmN0aW9uIGlzTGFzdFJlcXVpcmVkQXJndW1l
bnQoYXJnKSB7CiAgIGNvbnN0IGxpc3QgPSBhcmcucGFyZW50LmFyZ3VtZW50cyB8fCBhcmcucGFy
ZW50Lmxpc3Q7CiAgIGNvbnN0IGluZGV4ID0gbGlzdC5pbmRleE9mKGFyZyk7Ci0gIGNvbnN0IHJl
cXVpcmVkRXhpc3RzID0gbGlzdC5zbGljZShpbmRleCArIDEpLnNvbWUoYSA9PiAhYS5vcHRpb25h
bCk7CisgIGNvbnN0IHJlcXVpcmVkRXhpc3RzID0gbGlzdC5zbGljZShpbmRleCArIDEpLnNvbWUo
KGEpID0+ICFhLm9wdGlvbmFsKTsKICAgcmV0dXJuICFyZXF1aXJlZEV4aXN0czsKIH0KIApAQCAt
MTY0Myw4ICsxODc1LDEyIEBAIGZ1bmN0aW9uIGlzTGFzdFJlcXVpcmVkQXJndW1lbnQoYXJnKSB7
CiAgKi8KIGZ1bmN0aW9uIGF1dG9maXhEaWN0aW9uYXJ5QXJndW1lbnRPcHRpb25hbGl0eShhcmcp
IHsKICAgcmV0dXJuICgpID0+IHsKLSAgICBjb25zdCBmaXJzdFRva2VuID0gT2JqZWN0KF9oZWxw
ZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bImdldEZpcnN0VG9rZW4iXSkoYXJn
LmlkbFR5cGUpOwotICAgIGFyZy50b2tlbnMub3B0aW9uYWwgPSB7IHR5cGU6ICJvcHRpb25hbCIs
IHZhbHVlOiAib3B0aW9uYWwiLCB0cml2aWE6IGZpcnN0VG9rZW4udHJpdmlhIH07CisgICAgY29u
c3QgZmlyc3RUb2tlbiA9ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8z
X18uZ2V0Rmlyc3RUb2tlbikoYXJnLmlkbFR5cGUpOworICAgIGFyZy50b2tlbnMub3B0aW9uYWwg
PSB7CisgICAgICB0eXBlOiAib3B0aW9uYWwiLAorICAgICAgdmFsdWU6ICJvcHRpb25hbCIsCisg
ICAgICB0cml2aWE6IGZpcnN0VG9rZW4udHJpdmlhLAorICAgIH07CiAgICAgZmlyc3RUb2tlbi50
cml2aWEgPSAiICI7CiAgICAgYXV0b2ZpeE9wdGlvbmFsRGljdGlvbmFyeURlZmF1bHRWYWx1ZShh
cmcpKCk7CiAgIH07CkBAIC0xNjU1LDI0ICsxODkxLDI1IEBAIGZ1bmN0aW9uIGF1dG9maXhEaWN0
aW9uYXJ5QXJndW1lbnRPcHRpb25hbGl0eShhcmcpIHsKICAqLwogZnVuY3Rpb24gYXV0b2ZpeE9w
dGlvbmFsRGljdGlvbmFyeURlZmF1bHRWYWx1ZShhcmcpIHsKICAgcmV0dXJuICgpID0+IHsKLSAg
ICBhcmcuZGVmYXVsdCA9IF9kZWZhdWx0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19b
IkRlZmF1bHQiXS5wYXJzZShuZXcgX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfNF9fWyJUb2tlbmlzZXIiXSgiID0ge30iKSk7CisgICAgYXJnLmRlZmF1bHQgPSBfZGVmYXVs
dF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkRlZmF1bHQucGFyc2UobmV3IF90b2tl
bmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5Ub2tlbmlzZXIoIiA9IHt9Iikp
OwogICB9OwogfQogCiAKIC8qKiovIH0pLAogLyogMTIgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1
bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgo
X191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18s
IF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3Jl
cXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRp
bmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiRGVmYXVs
dCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gRGVmYXVsdDsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAq
LyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgeworLyogaGFybW9u
eSBleHBvcnQgKi8gICAiRGVmYXVsdCI6ICgpID0+ICgvKiBiaW5kaW5nICovIERlZmF1bHQpCisv
KiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsK
IC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKIAogCiAKLWNsYXNzIERlZmF1bHQg
ZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewor
Y2xhc3MgRGVmYXVsdCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9r
ZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCkBAIC0xNjgxLDE2ICsxOTE4LDI4IEBAIGNsYXNzIERl
ZmF1bHQgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNl
Il0gewogICAgIGlmICghYXNzaWduKSB7CiAgICAgICByZXR1cm4gbnVsbDsKICAgICB9Ci0gICAg
Y29uc3QgZGVmID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X19bImNvbnN0X3ZhbHVlIl0pKHRva2VuaXNlcikgfHwgdG9rZW5pc2VyLmNvbnN1bWUoInN0cmlu
ZyIsICJudWxsIiwgIlsiLCAieyIpIHx8IHRva2VuaXNlci5lcnJvcigiTm8gdmFsdWUgZm9yIGRl
ZmF1bHQiKTsKKyAgICBjb25zdCBkZWYgPQorICAgICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzFfXy5jb25zdF92YWx1ZSkodG9rZW5pc2VyKSB8fAorICAgICAgdG9r
ZW5pc2VyLmNvbnN1bWVUeXBlKCJzdHJpbmciKSB8fAorICAgICAgdG9rZW5pc2VyLmNvbnN1bWUo
Im51bGwiLCAiWyIsICJ7IikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiTm8gdmFsdWUgZm9y
IGRlZmF1bHQiKTsKICAgICBjb25zdCBleHByZXNzaW9uID0gW2RlZl07Ci0gICAgaWYgKGRlZi50
eXBlID09PSAiWyIpIHsKLSAgICAgIGNvbnN0IGNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIl0i
KSB8fCB0b2tlbmlzZXIuZXJyb3IoIkRlZmF1bHQgc2VxdWVuY2UgdmFsdWUgbXVzdCBiZSBlbXB0
eSIpOworICAgIGlmIChkZWYudmFsdWUgPT09ICJbIikgeworICAgICAgY29uc3QgY2xvc2UgPQor
ICAgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiXSIpIHx8CisgICAgICAgIHRva2VuaXNlci5lcnJv
cigiRGVmYXVsdCBzZXF1ZW5jZSB2YWx1ZSBtdXN0IGJlIGVtcHR5Iik7CiAgICAgICBleHByZXNz
aW9uLnB1c2goY2xvc2UpOwotICAgIH0gZWxzZSBpZiAoZGVmLnR5cGUgPT09ICJ7IikgewotICAg
ICAgY29uc3QgY2xvc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgifSIpIHx8IHRva2VuaXNlci5lcnJv
cigiRGVmYXVsdCBkaWN0aW9uYXJ5IHZhbHVlIG11c3QgYmUgZW1wdHkiKTsKKyAgICB9IGVsc2Ug
aWYgKGRlZi52YWx1ZSA9PT0gInsiKSB7CisgICAgICBjb25zdCBjbG9zZSA9CisgICAgICAgIHRv
a2VuaXNlci5jb25zdW1lKCJ9IikgfHwKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJEZWZhdWx0
IGRpY3Rpb25hcnkgdmFsdWUgbXVzdCBiZSBlbXB0eSIpOwogICAgICAgZXhwcmVzc2lvbi5wdXNo
KGNsb3NlKTsKICAgICB9Ci0gICAgcmV0dXJuIG5ldyBEZWZhdWx0KHsgc291cmNlOiB0b2tlbmlz
ZXIuc291cmNlLCB0b2tlbnM6IHsgYXNzaWduIH0sIGV4cHJlc3Npb24gfSk7CisgICAgcmV0dXJu
IG5ldyBEZWZhdWx0KHsKKyAgICAgIHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwKKyAgICAgIHRv
a2VuczogeyBhc3NpZ24gfSwKKyAgICAgIGV4cHJlc3Npb24sCisgICAgfSk7CiAgIH0KIAogICBj
b25zdHJ1Y3Rvcih7IHNvdXJjZSwgdG9rZW5zLCBleHByZXNzaW9uIH0pIHsKQEAgLTE3MDAsMjQg
KzE5NDksMzMgQEAgY2xhc3MgRGVmYXVsdCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgIH0KIAogICBnZXQgdHlwZSgpIHsKLSAgICByZXR1
cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImNvbnN0
X2RhdGEiXSkodGhpcy5leHByZXNzaW9uWzBdKS50eXBlOworICAgIHJldHVybiAoMCxfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmNvbnN0X2RhdGEpKHRoaXMuZXhwcmVz
c2lvblswXSkudHlwZTsKICAgfQogICBnZXQgdmFsdWUoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChf
aGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJjb25zdF9kYXRhIl0pKHRo
aXMuZXhwcmVzc2lvblswXSkudmFsdWU7CisgICAgcmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX18uY29uc3RfZGF0YSkodGhpcy5leHByZXNzaW9uWzBdKS52
YWx1ZTsKICAgfQogICBnZXQgbmVnYXRpdmUoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJjb25zdF9kYXRhIl0pKHRoaXMuZXhw
cmVzc2lvblswXSkubmVnYXRpdmU7CisgICAgcmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8xX18uY29uc3RfZGF0YSkodGhpcy5leHByZXNzaW9uWzBdKS5uZWdh
dGl2ZTsKKyAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVy
KX0gdyAqLworICB3cml0ZSh3KSB7CisgICAgcmV0dXJuIHcudHMud3JhcChbCisgICAgICB3LnRv
a2VuKHRoaXMudG9rZW5zLmFzc2lnbiksCisgICAgICAuLi50aGlzLmV4cHJlc3Npb24ubWFwKCh0
KSA9PiB3LnRva2VuKHQpKSwKKyAgICBdKTsKICAgfQogfQogCiAKIC8qKiovIH0pLAogLyogMTMg
Ki8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFj
a19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxl
X18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVz
ZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwot
LyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dl
YnBhY2tfZXhwb3J0c19fLCAiT3BlcmF0aW9uIiwgZnVuY3Rpb24oKSB7IHJldHVybiBPcGVyYXRp
b247IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2Vi
cGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIk9wZXJhdGlvbiI6ICgp
ID0+ICgvKiBiaW5kaW5nICovIE9wZXJhdGlvbikKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwog
LyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVx
dWlyZV9fKDQpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJvcl9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKQEAgLTE3MjUsNyAr
MTk4Myw3IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAog
CiAKLWNsYXNzIE9wZXJhdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX19bIkJhc2UiXSB7CitjbGFzcyBPcGVyYXRpb24gZXh0ZW5kcyBfYmFzZV9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkJhc2UgewogICAvKioKICAgICogQHR5cGVkZWYge2lt
cG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW59IFRva2VuCiAgICAqCkBAIC0xNzM2LDcgKzE5
OTQsOSBAQCBjbGFzcyBPcGVyYXRpb24gZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgKi8KICAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwg
eyBzcGVjaWFsLCByZWd1bGFyIH0gPSB7fSkgewogICAgIGNvbnN0IHRva2VucyA9IHsgc3BlY2lh
bCB9OwotICAgIGNvbnN0IHJldCA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMV9fWyJhdXRvUGFyZW50ZXIiXSkobmV3IE9wZXJhdGlvbih7IHNvdXJjZTogdG9r
ZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pKTsKKyAgICBjb25zdCByZXQgPSAoMCxfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmF1dG9QYXJlbnRlcikoCisgICAgICBuZXcg
T3BlcmF0aW9uKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkKKyAgICApOwog
ICAgIGlmIChzcGVjaWFsICYmIHNwZWNpYWwudmFsdWUgPT09ICJzdHJpbmdpZmllciIpIHsKICAg
ICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7Iik7CiAgICAgICBp
ZiAodG9rZW5zLnRlcm1pbmF0aW9uKSB7CkBAIC0xNzQ3LDEyICsyMDA3LDE4IEBAIGNsYXNzIE9w
ZXJhdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJh
c2UiXSB7CiAgICAgaWYgKCFzcGVjaWFsICYmICFyZWd1bGFyKSB7CiAgICAgICB0b2tlbnMuc3Bl
Y2lhbCA9IHRva2VuaXNlci5jb25zdW1lKCJnZXR0ZXIiLCAic2V0dGVyIiwgImRlbGV0ZXIiKTsK
ICAgICB9Ci0gICAgcmV0LmlkbFR5cGUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfX1sicmV0dXJuX3R5cGUiXSkodG9rZW5pc2VyKSB8fCB0b2tlbmlzZXIu
ZXJyb3IoIk1pc3NpbmcgcmV0dXJuIHR5cGUiKTsKLSAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNl
ci5jb25zdW1lKCJpZGVudGlmaWVyIiwgImluY2x1ZGVzIik7Ci0gICAgdG9rZW5zLm9wZW4gPSB0
b2tlbmlzZXIuY29uc3VtZSgiKCIpIHx8IHRva2VuaXNlci5lcnJvcigiSW52YWxpZCBvcGVyYXRp
b24iKTsKLSAgICByZXQuYXJndW1lbnRzID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX19bImFyZ3VtZW50X2xpc3QiXSkodG9rZW5pc2VyKTsKLSAgICB0b2tl
bnMuY2xvc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50
ZXJtaW5hdGVkIG9wZXJhdGlvbiIpOwotICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNl
ci5jb25zdW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgb3BlcmF0aW9u
LCBleHBlY3RlZCBgO2AiKTsKKyAgICByZXQuaWRsVHlwZSA9CisgICAgICAoMCxfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnJldHVybl90eXBlKSh0b2tlbmlzZXIpIHx8
IHRva2VuaXNlci5lcnJvcigiTWlzc2luZyByZXR1cm4gdHlwZSIpOworICAgIHRva2Vucy5uYW1l
ID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lVHlwZSgiaWRlbnRpZmllciIpIHx8IHRva2VuaXNl
ci5jb25zdW1lKCJpbmNsdWRlcyIpOworICAgIHRva2Vucy5vcGVuID0KKyAgICAgIHRva2VuaXNl
ci5jb25zdW1lKCIoIikgfHwgdG9rZW5pc2VyLmVycm9yKCJJbnZhbGlkIG9wZXJhdGlvbiIpOwor
ICAgIHJldC5hcmd1bWVudHMgPSAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMV9fLmFyZ3VtZW50X2xpc3QpKHRva2VuaXNlcik7CisgICAgdG9rZW5zLmNsb3NlID0KKyAg
ICAgIHRva2VuaXNlci5jb25zdW1lKCIpIikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0
ZWQgb3BlcmF0aW9uIik7CisgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0KKyAgICAgIHRva2VuaXNl
ci5jb25zdW1lKCI7IikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIG9w
ZXJhdGlvbiwgZXhwZWN0ZWQgYDtgIik7CiAgICAgcmV0dXJuIHJldC50aGlzOwogICB9CiAKQEAg
LTE3NjQsNyArMjAzMCw3IEBAIGNsYXNzIE9wZXJhdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICAgaWYgKCFuYW1lKSB7CiAgICAg
ICByZXR1cm4gIiI7CiAgICAgfQotICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfX1sidW5lc2NhcGUiXSkobmFtZS52YWx1ZSk7CisgICAgcmV0
dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udW5lc2NhcGUp
KG5hbWUudmFsdWUpOwogICB9CiAgIGdldCBzcGVjaWFsKCkgewogICAgIGlmICghdGhpcy50b2tl
bnMuc3BlY2lhbCkgewpAQCAtMTc3NCw5ICsyMDQwLDEwIEBAIGNsYXNzIE9wZXJhdGlvbiBleHRl
bmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgIH0K
IAogICAqdmFsaWRhdGUoZGVmcykgeworICAgIHlpZWxkKiB0aGlzLmV4dEF0dHJzLnZhbGlkYXRl
KGRlZnMpOwogICAgIGlmICghdGhpcy5uYW1lICYmIFsiIiwgInN0YXRpYyJdLmluY2x1ZGVzKHRo
aXMuc3BlY2lhbCkpIHsKICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgUmVndWxhciBvciBzdGF0aWMg
b3BlcmF0aW9ucyBtdXN0IGhhdmUgYm90aCBhIHJldHVybiB0eXBlIGFuZCBhbiBpZGVudGlmaWVy
LmA7Ci0gICAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8yX19bInZhbGlkYXRpb25FcnJvciJdKSh0aGlzLnRva2Vucy5vcGVuLCB0aGlzLCAiaW5jb21w
bGV0ZS1vcCIsIG1lc3NhZ2UpOworICAgICAgeWllbGQgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8yX18udmFsaWRhdGlvbkVycm9yKSh0aGlzLnRva2Vucy5vcGVuLCB0aGlz
LCAiaW5jb21wbGV0ZS1vcCIsIG1lc3NhZ2UpOwogICAgIH0KICAgICBpZiAodGhpcy5pZGxUeXBl
KSB7CiAgICAgICB5aWVsZCogdGhpcy5pZGxUeXBlLnZhbGlkYXRlKGRlZnMpOwpAQCAtMTc4NSwy
OSArMjA1Miw3MCBAQCBjbGFzcyBPcGVyYXRpb24gZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgICAgeWllbGQqIGFyZ3VtZW50LnZhbGlk
YXRlKGRlZnMpOwogICAgIH0KICAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVy
LmpzIikuV3JpdGVyfSB3ICovCisgIHdyaXRlKHcpIHsKKyAgICBjb25zdCB7IHBhcmVudCB9ID0g
dGhpczsKKyAgICBjb25zdCBib2R5ID0gdGhpcy5pZGxUeXBlCisgICAgICA/IFsKKyAgICAgICAg
ICB3LnRzLnR5cGUodGhpcy5pZGxUeXBlLndyaXRlKHcpKSwKKyAgICAgICAgICB3Lm5hbWVfdG9r
ZW4odGhpcy50b2tlbnMubmFtZSwgeyBkYXRhOiB0aGlzLCBwYXJlbnQgfSksCisgICAgICAgICAg
dy50b2tlbih0aGlzLnRva2Vucy5vcGVuKSwKKyAgICAgICAgICB3LnRzLndyYXAodGhpcy5hcmd1
bWVudHMubWFwKChhcmcpID0+IGFyZy53cml0ZSh3KSkpLAorICAgICAgICAgIHcudG9rZW4odGhp
cy50b2tlbnMuY2xvc2UpLAorICAgICAgICBdCisgICAgICA6IFtdOworICAgIHJldHVybiB3LnRz
LmRlZmluaXRpb24oCisgICAgICB3LnRzLndyYXAoWworICAgICAgICB0aGlzLmV4dEF0dHJzLndy
aXRlKHcpLAorICAgICAgICB0aGlzLnRva2Vucy5uYW1lCisgICAgICAgICAgPyB3LnRva2VuKHRo
aXMudG9rZW5zLnNwZWNpYWwpCisgICAgICAgICAgOiB3LnRva2VuKHRoaXMudG9rZW5zLnNwZWNp
YWwsIHcudHMubmFtZWxlc3MsIHsgZGF0YTogdGhpcywgcGFyZW50IH0pLAorICAgICAgICAuLi5i
b2R5LAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAgICAgIF0p
LAorICAgICAgeyBkYXRhOiB0aGlzLCBwYXJlbnQgfQorICAgICk7CisgIH0KIH0KIAogCiAvKioq
LyB9KSwKIC8qIDE0ICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0
c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193
ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9f
KSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tf
ZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVx
dWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIkF0dHJpYnV0ZSIsIGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gQXR0cmlidXRlOyB9KTsKLS8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKLS8q
IGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9f
d2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4
cG9ydCAqLyAgICJBdHRyaWJ1dGUiOiAoKSA9PiAoLyogYmluZGluZyAqLyBBdHRyaWJ1dGUpCisv
KiBoYXJtb255IGV4cG9ydCAqLyB9KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3Jf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7
CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3ZhbGlkYXRvcnNfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3KTsKKy8qIGhhcm1v
bnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0g
X193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0
KTsKKy8vIEB0cy1jaGVjaworCiAKIAogCi1jbGFzcyBBdHRyaWJ1dGUgZXh0ZW5kcyBfYmFzZV9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0geworCisKK2NsYXNzIEF0dHJp
YnV0ZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQmFzZSB7
CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW5pc2Vy
fSB0b2tlbmlzZXIKKyAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zXQorICAgKiBAcGFyYW0g
e2ltcG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW59IFtvcHRpb25zLnNwZWNpYWxdCisgICAq
IEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubm9Jbmhlcml0XQorICAgKiBAcGFyYW0ge2Jvb2xl
YW59IFtvcHRpb25zLnJlYWRvbmx5XQogICAgKi8KLSAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwg
eyBzcGVjaWFsLCBub0luaGVyaXQgPSBmYWxzZSwgcmVhZG9ubHkgPSBmYWxzZSB9ID0ge30pIHsK
KyAgc3RhdGljIHBhcnNlKAorICAgIHRva2VuaXNlciwKKyAgICB7IHNwZWNpYWwsIG5vSW5oZXJp
dCA9IGZhbHNlLCByZWFkb25seSA9IGZhbHNlIH0gPSB7fQorICApIHsKICAgICBjb25zdCBzdGFy
dF9wb3NpdGlvbiA9IHRva2VuaXNlci5wb3NpdGlvbjsKICAgICBjb25zdCB0b2tlbnMgPSB7IHNw
ZWNpYWwgfTsKLSAgICBjb25zdCByZXQgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfX1siYXV0b1BhcmVudGVyIl0pKG5ldyBBdHRyaWJ1dGUoeyBzb3VyY2U6
IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSk7CisgICAgY29uc3QgcmV0ID0gKDAsX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5hdXRvUGFyZW50ZXIpKAorICAgICAg
bmV3IEF0dHJpYnV0ZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pCisgICAg
KTsKICAgICBpZiAoIXNwZWNpYWwgJiYgIW5vSW5oZXJpdCkgewogICAgICAgdG9rZW5zLnNwZWNp
YWwgPSB0b2tlbmlzZXIuY29uc3VtZSgiaW5oZXJpdCIpOwogICAgIH0KQEAgLTE4MjMsMTMgKzIx
MzEsMTYgQEAgY2xhc3MgQXR0cmlidXRlIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICAgIHRva2VuaXNlci51bmNvbnN1bWUoc3RhcnRf
cG9zaXRpb24pOwogICAgICAgcmV0dXJuOwogICAgIH0KLSAgICByZXQuaWRsVHlwZSA9IE9iamVj
dChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ0eXBlX3dpdGhfZXh0
ZW5kZWRfYXR0cmlidXRlcyJdKSh0b2tlbmlzZXIsICJhdHRyaWJ1dGUtdHlwZSIpIHx8IHRva2Vu
aXNlci5lcnJvcigiQXR0cmlidXRlIGxhY2tzIGEgdHlwZSIpOwotICAgIHN3aXRjaCAocmV0Lmlk
bFR5cGUuZ2VuZXJpYykgewotICAgICAgY2FzZSAic2VxdWVuY2UiOgotICAgICAgY2FzZSAicmVj
b3JkIjogdG9rZW5pc2VyLmVycm9yKGBBdHRyaWJ1dGVzIGNhbm5vdCBhY2NlcHQgJHtyZXQuaWRs
VHlwZS5nZW5lcmljfSB0eXBlc2ApOwotICAgIH0KLSAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNl
ci5jb25zdW1lKCJpZGVudGlmaWVyIiwgImFzeW5jIiwgInJlcXVpcmVkIikgfHwgdG9rZW5pc2Vy
LmVycm9yKCJBdHRyaWJ1dGUgbGFja3MgYSBuYW1lIik7Ci0gICAgdG9rZW5zLnRlcm1pbmF0aW9u
ID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRl
ZCBhdHRyaWJ1dGUsIGV4cGVjdGVkIGA7YCIpOworICAgIHJldC5pZGxUeXBlID0KKyAgICAgICgw
LF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udHlwZV93aXRoX2V4dGVu
ZGVkX2F0dHJpYnV0ZXMpKHRva2VuaXNlciwgImF0dHJpYnV0ZS10eXBlIikgfHwKKyAgICAgIHRv
a2VuaXNlci5lcnJvcigiQXR0cmlidXRlIGxhY2tzIGEgdHlwZSIpOworICAgIHRva2Vucy5uYW1l
ID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lVHlwZSgiaWRlbnRpZmllciIpIHx8CisgICAgICB0
b2tlbmlzZXIuY29uc3VtZSgiYXN5bmMiLCAicmVxdWlyZWQiKSB8fAorICAgICAgdG9rZW5pc2Vy
LmVycm9yKCJBdHRyaWJ1dGUgbGFja3MgYSBuYW1lIik7CisgICAgdG9rZW5zLnRlcm1pbmF0aW9u
ID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJv
cigiVW50ZXJtaW5hdGVkIGF0dHJpYnV0ZSwgZXhwZWN0ZWQgYDtgIik7CiAgICAgcmV0dXJuIHJl
dC50aGlzOwogICB9CiAKQEAgLTE4NDYsMjMgKzIxNTcsNzAgQEAgY2xhc3MgQXR0cmlidXRlIGV4
dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAg
ICByZXR1cm4gISF0aGlzLnRva2Vucy5yZWFkb25seTsKICAgfQogICBnZXQgbmFtZSgpIHsKLSAg
ICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19b
InVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLm5hbWUudmFsdWUpOworICAgIHJldHVybiAoMCxfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLnVuZXNjYXBlKSh0aGlzLnRva2Vu
cy5uYW1lLnZhbHVlKTsKICAgfQogCiAgICp2YWxpZGF0ZShkZWZzKSB7CiAgICAgeWllbGQqIHRo
aXMuZXh0QXR0cnMudmFsaWRhdGUoZGVmcyk7CiAgICAgeWllbGQqIHRoaXMuaWRsVHlwZS52YWxp
ZGF0ZShkZWZzKTsKKworICAgIHN3aXRjaCAodGhpcy5pZGxUeXBlLmdlbmVyaWMpIHsKKyAgICAg
IGNhc2UgInNlcXVlbmNlIjoKKyAgICAgIGNhc2UgInJlY29yZCI6IHsKKyAgICAgICAgY29uc3Qg
bWVzc2FnZSA9IGBBdHRyaWJ1dGVzIGNhbm5vdCBhY2NlcHQgJHt0aGlzLmlkbFR5cGUuZ2VuZXJp
Y30gdHlwZXMuYDsKKyAgICAgICAgeWllbGQgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX18udmFsaWRhdGlvbkVycm9yKSgKKyAgICAgICAgICB0aGlzLnRva2Vucy5uYW1l
LAorICAgICAgICAgIHRoaXMsCisgICAgICAgICAgImF0dHItaW52YWxpZC10eXBlIiwKKyAgICAg
ICAgICBtZXNzYWdlCisgICAgICAgICk7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAg
ZGVmYXVsdDogeworICAgICAgICBjb25zdCB7IHJlZmVyZW5jZSB9ID0KKyAgICAgICAgICAoMCxf
dmFsaWRhdG9yc19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uaWRsVHlw
ZUluY2x1ZGVzRGljdGlvbmFyeSkodGhpcy5pZGxUeXBlLCBkZWZzKSB8fCB7fTsKKyAgICAgICAg
aWYgKHJlZmVyZW5jZSkgeworICAgICAgICAgIGNvbnN0IHRhcmdldFRva2VuID0gKHRoaXMuaWRs
VHlwZS51bmlvbiA/IHJlZmVyZW5jZSA6IHRoaXMuaWRsVHlwZSkKKyAgICAgICAgICAgIC50b2tl
bnMuYmFzZTsKKyAgICAgICAgICBjb25zdCBtZXNzYWdlID0gIkF0dHJpYnV0ZXMgY2Fubm90IGFj
Y2VwdCBkaWN0aW9uYXJ5IHR5cGVzLiI7CisgICAgICAgICAgeWllbGQgKDAsX2Vycm9yX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udmFsaWRhdGlvbkVycm9yKSgKKyAgICAgICAgICAg
IHRhcmdldFRva2VuLAorICAgICAgICAgICAgdGhpcywKKyAgICAgICAgICAgICJhdHRyLWludmFs
aWQtdHlwZSIsCisgICAgICAgICAgICBtZXNzYWdlCisgICAgICAgICAgKTsKKyAgICAgICAgfQor
ICAgICAgfQorICAgIH0KKyAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpz
IikuV3JpdGVyfSB3ICovCisgIHdyaXRlKHcpIHsKKyAgICBjb25zdCB7IHBhcmVudCB9ID0gdGhp
czsKKyAgICByZXR1cm4gdy50cy5kZWZpbml0aW9uKAorICAgICAgdy50cy53cmFwKFsKKyAgICAg
ICAgdGhpcy5leHRBdHRycy53cml0ZSh3KSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5z
cGVjaWFsKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5yZWFkb25seSksCisgICAgICAg
IHcudG9rZW4odGhpcy50b2tlbnMuYmFzZSksCisgICAgICAgIHcudHMudHlwZSh0aGlzLmlkbFR5
cGUud3JpdGUodykpLAorICAgICAgICB3Lm5hbWVfdG9rZW4odGhpcy50b2tlbnMubmFtZSwgeyBk
YXRhOiB0aGlzLCBwYXJlbnQgfSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMudGVybWlu
YXRpb24pLAorICAgICAgXSksCisgICAgICB7IGRhdGE6IHRoaXMsIHBhcmVudCB9CisgICAgKTsK
ICAgfQogfQogCiAKIC8qKiovIH0pLAogLyogMTUgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUs
IF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191
bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9f
d2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVp
cmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcp
ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiRW51bSIsIGZ1
bmN0aW9uKCkgeyByZXR1cm4gRW51bTsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBh
Y2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBvcnQg
Ki8gICAiRW51bSI6ICgpID0+ICgvKiBiaW5kaW5nICovIEVudW0pCisvKiBoYXJtb255IGV4cG9y
dCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKIC8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfdG9rZW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9f
d2VicGFja19yZXF1aXJlX18oMTApOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOwpA
QCAtMTg3MCwxMiArMjIyOCwxMiBAQCBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4
cG9ydHNfXyk7CiAKIAogCi1jbGFzcyBFbnVtVmFsdWUgZXh0ZW5kcyBfdG9rZW5fanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfX1siVG9rZW4iXSB7CitjbGFzcyBFbnVtVmFsdWUgZXh0ZW5k
cyBfdG9rZW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5XcmFwcGVkVG9rZW4gewog
ICAvKioKICAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9r
ZW5pc2VyCiAgICAqLwogICBzdGF0aWMgcGFyc2UodG9rZW5pc2VyKSB7Ci0gICAgY29uc3QgdmFs
dWUgPSB0b2tlbmlzZXIuY29uc3VtZSgic3RyaW5nIik7CisgICAgY29uc3QgdmFsdWUgPSB0b2tl
bmlzZXIuY29uc3VtZVR5cGUoInN0cmluZyIpOwogICAgIGlmICh2YWx1ZSkgewogICAgICAgcmV0
dXJuIG5ldyBFbnVtVmFsdWUoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyB2
YWx1ZSB9IH0pOwogICAgIH0KQEAgLTE4ODcsOSArMjI0NSwyMiBAQCBjbGFzcyBFbnVtVmFsdWUg
ZXh0ZW5kcyBfdG9rZW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siVG9rZW4iXSB7
CiAgIGdldCB2YWx1ZSgpIHsKICAgICByZXR1cm4gc3VwZXIudmFsdWUuc2xpY2UoMSwgLTEpOwog
ICB9CisKKyAgLyoqIEBwYXJhbSB7aW1wb3J0KCIuLi93cml0ZXIuanMiKS5Xcml0ZXJ9IHcgKi8K
KyAgd3JpdGUodykgeworICAgIGNvbnN0IHsgcGFyZW50IH0gPSB0aGlzOworICAgIHJldHVybiB3
LnRzLndyYXAoWworICAgICAgdy50cy50cml2aWEodGhpcy50b2tlbnMudmFsdWUudHJpdmlhKSwK
KyAgICAgIHcudHMuZGVmaW5pdGlvbigKKyAgICAgICAgdy50cy53cmFwKFsnIicsIHcudHMubmFt
ZSh0aGlzLnZhbHVlLCB7IGRhdGE6IHRoaXMsIHBhcmVudCB9KSwgJyInXSksCisgICAgICAgIHsg
ZGF0YTogdGhpcywgcGFyZW50IH0KKyAgICAgICksCisgICAgICB3LnRva2VuKHRoaXMudG9rZW5z
LnNlcGFyYXRvciksCisgICAgXSk7CisgIH0KIH0KIAotY2xhc3MgRW51bSBleHRlbmRzIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkJhc2UiXSB7CitjbGFzcyBFbnVtIGV4
dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5CYXNlIHsKICAgLyoq
CiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNl
cgogICAgKi8KQEAgLTE5MDAsMjMgKzIyNzEsMjcgQEAgY2xhc3MgRW51bSBleHRlbmRzIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkJhc2UiXSB7CiAgICAgaWYgKCF0b2tl
bnMuYmFzZSkgewogICAgICAgcmV0dXJuOwogICAgIH0KLSAgICB0b2tlbnMubmFtZSA9IHRva2Vu
aXNlci5jb25zdW1lKCJpZGVudGlmaWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKCJObyBuYW1lIGZv
ciBlbnVtIik7Ci0gICAgY29uc3QgcmV0ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX19bImF1dG9QYXJlbnRlciJdKShuZXcgRW51bSh7IHNvdXJjZTogdG9r
ZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pKTsKKyAgICB0b2tlbnMubmFtZSA9CisgICAgICB0b2tl
bmlzZXIuY29uc3VtZVR5cGUoImlkZW50aWZpZXIiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9y
KCJObyBuYW1lIGZvciBlbnVtIik7CisgICAgY29uc3QgcmV0ID0gKDAsX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5hdXRvUGFyZW50ZXIpKG5ldyBFbnVtKHsgc291cmNl
OiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkpOwogICAgIHRva2VuaXNlci5jdXJyZW50ID0g
cmV0LnRoaXM7CiAgICAgdG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgieyIpIHx8IHRv
a2VuaXNlci5lcnJvcigiQm9keWxlc3MgZW51bSIpOwotICAgIHJldC52YWx1ZXMgPSBPYmplY3Qo
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1sibGlzdCJdKSh0b2tlbmlz
ZXIsIHsKKyAgICByZXQudmFsdWVzID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfXy5saXN0KSh0b2tlbmlzZXIsIHsKICAgICAgIHBhcnNlcjogRW51bVZhbHVlLnBh
cnNlLAogICAgICAgYWxsb3dEYW5nbGVyOiB0cnVlLAotICAgICAgbGlzdE5hbWU6ICJlbnVtZXJh
dGlvbiIKKyAgICAgIGxpc3ROYW1lOiAiZW51bWVyYXRpb24iLAogICAgIH0pOwotICAgIGlmICh0
b2tlbmlzZXIucHJvYmUoInN0cmluZyIpKSB7CisgICAgaWYgKHRva2VuaXNlci5wcm9iZVR5cGUo
InN0cmluZyIpKSB7CiAgICAgICB0b2tlbmlzZXIuZXJyb3IoIk5vIGNvbW1hIGJldHdlZW4gZW51
bSB2YWx1ZXMiKTsKICAgICB9Ci0gICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUo
In0iKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVuZXhwZWN0ZWQgdmFsdWUgaW4gZW51bSIpOworICAg
IHRva2Vucy5jbG9zZSA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgifSIpIHx8IHRva2VuaXNl
ci5lcnJvcigiVW5leHBlY3RlZCB2YWx1ZSBpbiBlbnVtIik7CiAgICAgaWYgKCFyZXQudmFsdWVz
Lmxlbmd0aCkgewogICAgICAgdG9rZW5pc2VyLmVycm9yKCJObyB2YWx1ZSBpbiBlbnVtIik7CiAg
ICAgfQotICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwg
dG9rZW5pc2VyLmVycm9yKCJObyBzZW1pY29sb24gYWZ0ZXIgZW51bSIpOworICAgIHRva2Vucy50
ZXJtaW5hdGlvbiA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRva2VuaXNlci5l
cnJvcigiTm8gc2VtaWNvbG9uIGFmdGVyIGVudW0iKTsKICAgICByZXR1cm4gcmV0LnRoaXM7CiAg
IH0KIApAQCAtMTkyNCwxOCArMjI5OSwzNSBAQCBjbGFzcyBFbnVtIGV4dGVuZHMgX2Jhc2VfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siQmFzZSJdIHsKICAgICByZXR1cm4gImVudW0i
OwogICB9CiAgIGdldCBuYW1lKCkgewotICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1sidW5lc2NhcGUiXSkodGhpcy50b2tlbnMubmFtZS52
YWx1ZSk7CisgICAgcmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX18udW5lc2NhcGUpKHRoaXMudG9rZW5zLm5hbWUudmFsdWUpOworICB9CisKKyAgLyoqIEBw
YXJhbSB7aW1wb3J0KCIuLi93cml0ZXIuanMiKS5Xcml0ZXJ9IHcgKi8KKyAgd3JpdGUodykgewor
ICAgIHJldHVybiB3LnRzLmRlZmluaXRpb24oCisgICAgICB3LnRzLndyYXAoWworICAgICAgICB0
aGlzLmV4dEF0dHJzLndyaXRlKHcpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLmJhc2Up
LAorICAgICAgICB3Lm5hbWVfdG9rZW4odGhpcy50b2tlbnMubmFtZSwgeyBkYXRhOiB0aGlzIH0p
LAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLm9wZW4pLAorICAgICAgICB3LnRzLndyYXAo
dGhpcy52YWx1ZXMubWFwKCh2KSA9PiB2LndyaXRlKHcpKSksCisgICAgICAgIHcudG9rZW4odGhp
cy50b2tlbnMuY2xvc2UpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnRlcm1pbmF0aW9u
KSwKKyAgICAgIF0pLAorICAgICAgeyBkYXRhOiB0aGlzIH0KKyAgICApOwogICB9CiB9CiAKIAog
LyoqKi8gfSksCiAvKiAxNiAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4
cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNr
X19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVp
cmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJw
YWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNr
X3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJJbmNsdWRlcyIsIGZ1bmN0aW9uKCkg
eyByZXR1cm4gSW5jbHVkZXM7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAg
IkluY2x1ZGVzIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gSW5jbHVkZXMpCisvKiBoYXJtb255IGV4
cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKIC8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0g
X193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKIC8vIEB0cy1jaGVjawpAQCAtMTk0MywxMiArMjMzNSwx
MiBAQCBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiAKIAogCi1j
bGFzcyBJbmNsdWRlcyBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bIkJhc2UiXSB7CitjbGFzcyBJbmNsdWRlcyBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4v
dG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCiAgIHN0YXRpYyBwYXJzZSh0
b2tlbmlzZXIpIHsKLSAgICBjb25zdCB0YXJnZXQgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRp
ZmllciIpOworICAgIGNvbnN0IHRhcmdldCA9IHRva2VuaXNlci5jb25zdW1lVHlwZSgiaWRlbnRp
ZmllciIpOwogICAgIGlmICghdGFyZ2V0KSB7CiAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTk1
OCw4ICsyMzUwLDEyIEBAIGNsYXNzIEluY2x1ZGVzIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICAgIHRva2VuaXNlci51bmNvbnN1bWUo
dGFyZ2V0LmluZGV4KTsKICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgdG9rZW5zLm1peGluID0g
dG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkluY29t
cGxldGUgaW5jbHVkZXMgc3RhdGVtZW50Iik7Ci0gICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9r
ZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIk5vIHRlcm1pbmF0aW5nIDsg
Zm9yIGluY2x1ZGVzIHN0YXRlbWVudCIpOworICAgIHRva2Vucy5taXhpbiA9CisgICAgICB0b2tl
bmlzZXIuY29uc3VtZVR5cGUoImlkZW50aWZpZXIiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9y
KCJJbmNvbXBsZXRlIGluY2x1ZGVzIHN0YXRlbWVudCIpOworICAgIHRva2Vucy50ZXJtaW5hdGlv
biA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJy
b3IoIk5vIHRlcm1pbmF0aW5nIDsgZm9yIGluY2x1ZGVzIHN0YXRlbWVudCIpOwogICAgIHJldHVy
biBuZXcgSW5jbHVkZXMoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsKICAg
fQogCkBAIC0xOTY3LDQyICsyMzYzLDYzIEBAIGNsYXNzIEluY2x1ZGVzIGV4dGVuZHMgX2Jhc2Vf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICByZXR1cm4gImlu
Y2x1ZGVzIjsKICAgfQogICBnZXQgdGFyZ2V0KCkgewotICAgIHJldHVybiBPYmplY3QoX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidW5lc2NhcGUiXSkodGhpcy50b2tl
bnMudGFyZ2V0LnZhbHVlKTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfXy51bmVzY2FwZSkodGhpcy50b2tlbnMudGFyZ2V0LnZhbHVlKTsKICAg
fQogICBnZXQgaW5jbHVkZXMoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5taXhpbi52
YWx1ZSk7CisgICAgcmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8xX18udW5lc2NhcGUpKHRoaXMudG9rZW5zLm1peGluLnZhbHVlKTsKKyAgfQorCisgIC8qKiBA
cGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyfSB3ICovCisgIHdyaXRlKHcpIHsK
KyAgICByZXR1cm4gdy50cy5kZWZpbml0aW9uKAorICAgICAgdy50cy53cmFwKFsKKyAgICAgICAg
dGhpcy5leHRBdHRycy53cml0ZSh3KSwKKyAgICAgICAgdy5yZWZlcmVuY2VfdG9rZW4odGhpcy50
b2tlbnMudGFyZ2V0LCB0aGlzKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5pbmNsdWRl
cyksCisgICAgICAgIHcucmVmZXJlbmNlX3Rva2VuKHRoaXMudG9rZW5zLm1peGluLCB0aGlzKSwK
KyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy50ZXJtaW5hdGlvbiksCisgICAgICBdKSwKKyAg
ICAgIHsgZGF0YTogdGhpcyB9CisgICAgKTsKICAgfQogfQogCiAKIC8qKiovIH0pLAogLyogMTcg
Ki8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFj
a19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxl
X18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVz
ZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwot
LyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dl
YnBhY2tfZXhwb3J0c19fLCAiVHlwZWRlZiIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gVHlwZWRlZjsg
fSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNr
X2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBvcnQgKi8gICAiVHlwZWRlZiI6ICgpID0+ICgv
KiBiaW5kaW5nICovIFR5cGVkZWYpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1v
bnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0g
X193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0
KTsKIAogCiAKLWNsYXNzIFR5cGVkZWYgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fWyJCYXNlIl0geworY2xhc3MgVHlwZWRlZiBleHRlbmRzIF9iYXNlX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2lt
cG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCiAgIHN0YXRp
YyBwYXJzZSh0b2tlbmlzZXIpIHsKICAgICAvKiogQHR5cGUge0Jhc2VbInRva2VucyJdfSAqLwog
ICAgIGNvbnN0IHRva2VucyA9IHt9OwotICAgIGNvbnN0IHJldCA9IE9iamVjdChfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJhdXRvUGFyZW50ZXIiXSkobmV3IFR5cGVk
ZWYoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSk7CisgICAgY29uc3QgcmV0
ID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5hdXRvUGFyZW50
ZXIpKG5ldyBUeXBlZGVmKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkpOwog
ICAgIHRva2Vucy5iYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoInR5cGVkZWYiKTsKICAgICBpZiAo
IXRva2Vucy5iYXNlKSB7CiAgICAgICByZXR1cm47CiAgICAgfQotICAgIHJldC5pZGxUeXBlID0g
T2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0
aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRva2VuaXNlciwgInR5cGVkZWYtdHlwZSIpIHx8IHRv
a2VuaXNlci5lcnJvcigiVHlwZWRlZiBsYWNrcyBhIHR5cGUiKTsKLSAgICB0b2tlbnMubmFtZSA9
IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKCJUeXBl
ZGVmIGxhY2tzIGEgbmFtZSIpOworICAgIHJldC5pZGxUeXBlID0KKyAgICAgICgwLF9oZWxwZXJz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udHlwZV93aXRoX2V4dGVuZGVkX2F0dHJp
YnV0ZXMpKHRva2VuaXNlciwgInR5cGVkZWYtdHlwZSIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJy
b3IoIlR5cGVkZWYgbGFja3MgYSB0eXBlIik7CisgICAgdG9rZW5zLm5hbWUgPQorICAgICAgdG9r
ZW5pc2VyLmNvbnN1bWVUeXBlKCJpZGVudGlmaWVyIikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJv
cigiVHlwZWRlZiBsYWNrcyBhIG5hbWUiKTsKICAgICB0b2tlbmlzZXIuY3VycmVudCA9IHJldC50
aGlzOwotICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwg
dG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgdHlwZWRlZiwgZXhwZWN0ZWQgYDtgIik7Cisg
ICAgdG9rZW5zLnRlcm1pbmF0aW9uID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwK
KyAgICAgIHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIHR5cGVkZWYsIGV4cGVjdGVkIGA7
YCIpOwogICAgIHJldHVybiByZXQudGhpczsKICAgfQogCkBAIC0yMDEwLDQyICsyNDI3LDY4IEBA
IGNsYXNzIFR5cGVkZWYgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MF9fWyJCYXNlIl0gewogICAgIHJldHVybiAidHlwZWRlZiI7CiAgIH0KICAgZ2V0IG5hbWUoKSB7
Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MV9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKKyAgICByZXR1cm4gKDAs
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51bmVzY2FwZSkodGhpcy50
b2tlbnMubmFtZS52YWx1ZSk7CiAgIH0KIAogICAqdmFsaWRhdGUoZGVmcykgewogICAgIHlpZWxk
KiB0aGlzLmlkbFR5cGUudmFsaWRhdGUoZGVmcyk7CiAgIH0KKworICAvKiogQHBhcmFtIHtpbXBv
cnQoIi4uL3dyaXRlci5qcyIpLldyaXRlcn0gdyAqLworICB3cml0ZSh3KSB7CisgICAgcmV0dXJu
IHcudHMuZGVmaW5pdGlvbigKKyAgICAgIHcudHMud3JhcChbCisgICAgICAgIHRoaXMuZXh0QXR0
cnMud3JpdGUodyksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuYmFzZSksCisgICAgICAg
IHcudHMudHlwZSh0aGlzLmlkbFR5cGUud3JpdGUodykpLAorICAgICAgICB3Lm5hbWVfdG9rZW4o
dGhpcy50b2tlbnMubmFtZSwgeyBkYXRhOiB0aGlzIH0pLAorICAgICAgICB3LnRva2VuKHRoaXMu
dG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAgICAgIF0pLAorICAgICAgeyBkYXRhOiB0aGlzIH0KKyAg
ICApOworICB9CiB9CiAKIAogLyoqKi8gfSksCiAvKiAxOCAqLwotLyoqKi8gKGZ1bmN0aW9uKG1v
ZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8g
KChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNf
XywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tf
cmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmlu
ZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJDYWxs
YmFja0Z1bmN0aW9uIiwgZnVuY3Rpb24oKSB7IHJldHVybiBDYWxsYmFja0Z1bmN0aW9uOyB9KTsK
Ky8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhw
b3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJDYWxsYmFja0Z1bmN0aW9uIjogKCkg
PT4gKC8qIGJpbmRpbmcgKi8gQ2FsbGJhY2tGdW5jdGlvbikKKy8qIGhhcm1vbnkgZXhwb3J0ICov
IH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOwogLyogaGFybW9ueSBpbXBvcnQg
Ki8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBh
Y2tfcmVxdWlyZV9fKDQpOwogCiAKIAotY2xhc3MgQ2FsbGJhY2tGdW5jdGlvbiBleHRlbmRzIF9i
YXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CitjbGFzcyBDYWxs
YmFja0Z1bmN0aW9uIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
Xy5CYXNlIHsKICAgLyoqCiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIuanMiKS5U
b2tlbmlzZXJ9IHRva2VuaXNlcgogICAgKi8KICAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgYmFz
ZSkgewogICAgIGNvbnN0IHRva2VucyA9IHsgYmFzZSB9OwotICAgIGNvbnN0IHJldCA9IE9iamVj
dChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJhdXRvUGFyZW50ZXIi
XSkobmV3IENhbGxiYWNrRnVuY3Rpb24oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2Vu
cyB9KSk7Ci0gICAgdG9rZW5zLm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIp
IHx8IHRva2VuaXNlci5lcnJvcigiQ2FsbGJhY2sgbGFja3MgYSBuYW1lIik7CisgICAgY29uc3Qg
cmV0ID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5hdXRvUGFy
ZW50ZXIpKAorICAgICAgbmV3IENhbGxiYWNrRnVuY3Rpb24oeyBzb3VyY2U6IHRva2VuaXNlci5z
b3VyY2UsIHRva2VucyB9KQorICAgICk7CisgICAgdG9rZW5zLm5hbWUgPQorICAgICAgdG9rZW5p
c2VyLmNvbnN1bWVUeXBlKCJpZGVudGlmaWVyIikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigi
Q2FsbGJhY2sgbGFja3MgYSBuYW1lIik7CiAgICAgdG9rZW5pc2VyLmN1cnJlbnQgPSByZXQudGhp
czsKLSAgICB0b2tlbnMuYXNzaWduID0gdG9rZW5pc2VyLmNvbnN1bWUoIj0iKSB8fCB0b2tlbmlz
ZXIuZXJyb3IoIkNhbGxiYWNrIGxhY2tzIGFuIGFzc2lnbm1lbnQiKTsKLSAgICByZXQuaWRsVHlw
ZSA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJyZXR1
cm5fdHlwZSJdKSh0b2tlbmlzZXIpIHx8IHRva2VuaXNlci5lcnJvcigiQ2FsbGJhY2sgbGFja3Mg
YSByZXR1cm4gdHlwZSIpOwotICAgIHRva2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUoIigi
KSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNhbGxiYWNrIGxhY2tzIHBhcmVudGhlc2VzIGZvciBhcmd1
bWVudHMiKTsKLSAgICByZXQuYXJndW1lbnRzID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8xX19bImFyZ3VtZW50X2xpc3QiXSkodG9rZW5pc2VyKTsKLSAgICB0
b2tlbnMuY2xvc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5lcnJvcigi
VW50ZXJtaW5hdGVkIGNhbGxiYWNrIik7Ci0gICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5p
c2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBjYWxsYmFj
aywgZXhwZWN0ZWQgYDtgIik7CisgICAgdG9rZW5zLmFzc2lnbiA9CisgICAgICB0b2tlbmlzZXIu
Y29uc3VtZSgiPSIpIHx8IHRva2VuaXNlci5lcnJvcigiQ2FsbGJhY2sgbGFja3MgYW4gYXNzaWdu
bWVudCIpOworICAgIHJldC5pZGxUeXBlID0KKyAgICAgICgwLF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8xX18ucmV0dXJuX3R5cGUpKHRva2VuaXNlcikgfHwgdG9rZW5pc2Vy
LmVycm9yKCJDYWxsYmFjayBsYWNrcyBhIHJldHVybiB0eXBlIik7CisgICAgdG9rZW5zLm9wZW4g
PQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIigiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9y
KCJDYWxsYmFjayBsYWNrcyBwYXJlbnRoZXNlcyBmb3IgYXJndW1lbnRzIik7CisgICAgcmV0LmFy
Z3VtZW50cyA9ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uYXJn
dW1lbnRfbGlzdCkodG9rZW5pc2VyKTsKKyAgICB0b2tlbnMuY2xvc2UgPQorICAgICAgdG9rZW5p
c2VyLmNvbnN1bWUoIikiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBjYWxsYmFj
ayIpOworICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgi
OyIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBjYWxsYmFjaywgZXhw
ZWN0ZWQgYDtgIik7CiAgICAgcmV0dXJuIHJldC50aGlzOwogICB9CiAKQEAgLTIwNTMsMjMgKzI0
OTYsNDIgQEAgY2xhc3MgQ2FsbGJhY2tGdW5jdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICAgcmV0dXJuICJjYWxsYmFjayI7CiAg
IH0KICAgZ2V0IG5hbWUoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVl
KTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFf
Xy51bmVzY2FwZSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7CiAgIH0KIAogICAqdmFsaWRhdGUo
ZGVmcykgewogICAgIHlpZWxkKiB0aGlzLmV4dEF0dHJzLnZhbGlkYXRlKGRlZnMpOwogICAgIHlp
ZWxkKiB0aGlzLmlkbFR5cGUudmFsaWRhdGUoZGVmcyk7CiAgIH0KKworICAvKiogQHBhcmFtIHtp
bXBvcnQoIi4uL3dyaXRlci5qcyIpLldyaXRlcn0gdyAqLworICB3cml0ZSh3KSB7CisgICAgcmV0
dXJuIHcudHMuZGVmaW5pdGlvbigKKyAgICAgIHcudHMud3JhcChbCisgICAgICAgIHRoaXMuZXh0
QXR0cnMud3JpdGUodyksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuYmFzZSksCisgICAg
ICAgIHcubmFtZV90b2tlbih0aGlzLnRva2Vucy5uYW1lLCB7IGRhdGE6IHRoaXMgfSksCisgICAg
ICAgIHcudG9rZW4odGhpcy50b2tlbnMuYXNzaWduKSwKKyAgICAgICAgdy50cy50eXBlKHRoaXMu
aWRsVHlwZS53cml0ZSh3KSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMub3BlbiksCisg
ICAgICAgIC4uLnRoaXMuYXJndW1lbnRzLm1hcCgoYXJnKSA9PiBhcmcud3JpdGUodykpLAorICAg
ICAgICB3LnRva2VuKHRoaXMudG9rZW5zLmNsb3NlKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRv
a2Vucy50ZXJtaW5hdGlvbiksCisgICAgICBdKSwKKyAgICAgIHsgZGF0YTogdGhpcyB9CisgICAg
KTsKKyAgfQogfQogCiAKIC8qKiovIH0pLAogLyogMTkgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1
bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgo
X191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18s
IF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3Jl
cXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRp
bmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiSW50ZXJm
YWNlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBJbnRlcmZhY2U7IH0pOworLyogaGFybW9ueSBleHBv
cnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhh
cm1vbnkgZXhwb3J0ICovICAgIkludGVyZmFjZSI6ICgpID0+ICgvKiBiaW5kaW5nICovIEludGVy
ZmFjZSkKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oMjApOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9hdHRyaWJ1dGVfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTQpOwogLyog
aGFybW9ueSBpbXBvcnQgKi8gdmFyIF9vcGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTMpOwpAQCAtMjA5OSwzMSArMjU2MSwzNiBA
QCBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiBmdW5jdGlvbiBz
dGF0aWNfbWVtYmVyKHRva2VuaXNlcikgewogICBjb25zdCBzcGVjaWFsID0gdG9rZW5pc2VyLmNv
bnN1bWUoInN0YXRpYyIpOwogICBpZiAoIXNwZWNpYWwpIHJldHVybjsKLSAgY29uc3QgbWVtYmVy
ID0gX2F0dHJpYnV0ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJBdHRyaWJ1dGUi
XS5wYXJzZSh0b2tlbmlzZXIsIHsgc3BlY2lhbCB9KSB8fAotICAgIF9vcGVyYXRpb25fanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siT3BlcmF0aW9uIl0ucGFyc2UodG9rZW5pc2VyLCB7
IHNwZWNpYWwgfSkgfHwKKyAgY29uc3QgbWVtYmVyID0KKyAgICBfYXR0cmlidXRlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX18uQXR0cmlidXRlLnBhcnNlKHRva2VuaXNlciwgeyBzcGVj
aWFsIH0pIHx8CisgICAgX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9f
Lk9wZXJhdGlvbi5wYXJzZSh0b2tlbmlzZXIsIHsgc3BlY2lhbCB9KSB8fAogICAgIHRva2VuaXNl
ci5lcnJvcigiTm8gYm9keSBpbiBzdGF0aWMgbWVtYmVyIik7CiAgIHJldHVybiBtZW1iZXI7CiB9
CiAKLWNsYXNzIEludGVyZmFjZSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0geworY2xhc3MgSW50ZXJmYWNlIGV4dGVuZHMgX2Nv
bnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkNvbnRhaW5lciB7CiAgIC8q
KgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlz
ZXIKICAgICovCiAgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIsIGJhc2UsIHsgcGFydGlhbCA9IG51
bGwgfSA9IHt9KSB7CiAgICAgY29uc3QgdG9rZW5zID0geyBwYXJ0aWFsLCBiYXNlIH07Ci0gICAg
cmV0dXJuIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFp
bmVyIl0ucGFyc2UodG9rZW5pc2VyLCBuZXcgSW50ZXJmYWNlKHsgc291cmNlOiB0b2tlbmlzZXIu
c291cmNlLCB0b2tlbnMgfSksIHsKLSAgICAgIHR5cGU6ICJpbnRlcmZhY2UiLAotICAgICAgaW5o
ZXJpdGFibGU6ICFwYXJ0aWFsLAotICAgICAgYWxsb3dlZE1lbWJlcnM6IFsKLSAgICAgICAgW19j
b25zdGFudF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJDb25zdGFudCJdLnBhcnNl
XSwKLSAgICAgICAgW19jb25zdHJ1Y3Rvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9f
WyJDb25zdHJ1Y3RvciJdLnBhcnNlXSwKLSAgICAgICAgW3N0YXRpY19tZW1iZXJdLAotICAgICAg
ICBbX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1sic3RyaW5naWZpZXIi
XV0sCi0gICAgICAgIFtfaXRlcmFibGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1si
SXRlcmFibGVMaWtlIl0ucGFyc2VdLAotICAgICAgICBbX2F0dHJpYnV0ZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMV9fWyJBdHRyaWJ1dGUiXS5wYXJzZV0sCi0gICAgICAgIFtfb3BlcmF0
aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIk9wZXJhdGlvbiJdLnBhcnNlXQot
ICAgICAgXQotICAgIH0pOworICAgIHJldHVybiBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX18uQ29udGFpbmVyLnBhcnNlKAorICAgICAgdG9rZW5pc2VyLAorICAgICAg
bmV3IEludGVyZmFjZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pLAorICAg
ICAgeworICAgICAgICB0eXBlOiAiaW50ZXJmYWNlIiwKKyAgICAgICAgaW5oZXJpdGFibGU6ICFw
YXJ0aWFsLAorICAgICAgICBhbGxvd2VkTWVtYmVyczogWworICAgICAgICAgIFtfY29uc3RhbnRf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy5Db25zdGFudC5wYXJzZV0sCisgICAgICAg
ICAgW19jb25zdHJ1Y3Rvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLkNvbnN0cnVj
dG9yLnBhcnNlXSwKKyAgICAgICAgICBbc3RhdGljX21lbWJlcl0sCisgICAgICAgICAgW19oZWxw
ZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uc3RyaW5naWZpZXJdLAorICAgICAg
ICAgIFtfaXRlcmFibGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXy5JdGVyYWJsZUxp
a2UucGFyc2VdLAorICAgICAgICAgIFtfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8xX18uQXR0cmlidXRlLnBhcnNlXSwKKyAgICAgICAgICBbX29wZXJhdGlvbl9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLk9wZXJhdGlvbi5wYXJzZV0sCisgICAgICAgIF0sCisg
ICAgICB9CisgICAgKTsKICAgfQogCiAgIGdldCB0eXBlKCkgewpAQCAtMjEzNCw2NiArMjYwMSwx
MDAgQEAgY2xhc3MgSW50ZXJmYWNlIGV4dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXQogICAgIHlpZWxkKiB0aGlzLmV4dEF0dHJzLnZh
bGlkYXRlKGRlZnMpOwogICAgIGlmICgKICAgICAgICF0aGlzLnBhcnRpYWwgJiYKLSAgICAgIHRo
aXMuZXh0QXR0cnMuZXZlcnkoZXh0QXR0ciA9PiBleHRBdHRyLm5hbWUgIT09ICJFeHBvc2VkIikg
JiYKLSAgICAgIHRoaXMuZXh0QXR0cnMuZXZlcnkoZXh0QXR0ciA9PiBleHRBdHRyLm5hbWUgIT09
ICJMZWdhY3lOb0ludGVyZmFjZU9iamVjdCIpCisgICAgICB0aGlzLmV4dEF0dHJzLmV2ZXJ5KChl
eHRBdHRyKSA9PiBleHRBdHRyLm5hbWUgIT09ICJFeHBvc2VkIikKICAgICApIHsKICAgICAgIGNv
bnN0IG1lc3NhZ2UgPSBgSW50ZXJmYWNlcyBtdXN0IGhhdmUgXGBbRXhwb3NlZF1cYCBleHRlbmRl
ZCBhdHRyaWJ1dGUuIFwKIFRvIGZpeCwgYWRkLCBmb3IgZXhhbXBsZSwgXGBbRXhwb3NlZD1XaW5k
b3ddXGAuIFBsZWFzZSBhbHNvIGNvbnNpZGVyIGNhcmVmdWxseSBcCiBpZiB5b3VyIGludGVyZmFj
ZSBzaG91bGQgYWxzbyBiZSBleHBvc2VkIGluIGEgV29ya2VyIHNjb3BlLiBSZWZlciB0byB0aGUg
XAogW1dlYklETCBzcGVjIHNlY3Rpb24gb24gRXhwb3NlZF0oaHR0cHM6Ly9oZXljYW0uZ2l0aHVi
LmlvL3dlYmlkbC8jRXhwb3NlZCkgXAogZm9yIG1vcmUgaW5mb3JtYXRpb24uYDsKLSAgICAgIHlp
ZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1sidmFsaWRh
dGlvbkVycm9yIl0pKHRoaXMudG9rZW5zLm5hbWUsIHRoaXMsICJyZXF1aXJlLWV4cG9zZWQiLCBt
ZXNzYWdlLCB7Ci0gICAgICAgIGF1dG9maXg6IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfNV9fWyJhdXRvZml4QWRkRXhwb3NlZFdpbmRvdyJdKSh0aGlzKQotICAg
ICAgfSk7CisgICAgICB5aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzZfXy52YWxpZGF0aW9uRXJyb3IpKAorICAgICAgICB0aGlzLnRva2Vucy5uYW1lLAorICAgICAg
ICB0aGlzLAorICAgICAgICAicmVxdWlyZS1leHBvc2VkIiwKKyAgICAgICAgbWVzc2FnZSwKKyAg
ICAgICAgeworICAgICAgICAgIGF1dG9maXg6ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV81X18uYXV0b2ZpeEFkZEV4cG9zZWRXaW5kb3cpKHRoaXMpLAorICAgICAgICB9
CisgICAgICApOwogICAgIH0KLSAgICBjb25zdCBvbGRDb25zdHJ1Y3RvcnMgPSB0aGlzLmV4dEF0
dHJzLmZpbHRlcihleHRBdHRyID0+IGV4dEF0dHIubmFtZSA9PT0gIkNvbnN0cnVjdG9yIik7Cisg
ICAgY29uc3Qgb2xkQ29uc3RydWN0b3JzID0gdGhpcy5leHRBdHRycy5maWx0ZXIoCisgICAgICAo
ZXh0QXR0cikgPT4gZXh0QXR0ci5uYW1lID09PSAiQ29uc3RydWN0b3IiCisgICAgKTsKICAgICBm
b3IgKGNvbnN0IGNvbnN0cnVjdG9yIG9mIG9sZENvbnN0cnVjdG9ycykgewogICAgICAgY29uc3Qg
bWVzc2FnZSA9IGBDb25zdHJ1Y3RvcnMgc2hvdWxkIG5vdyBiZSByZXByZXNlbnRlZCBhcyBhIFxg
Y29uc3RydWN0b3IoKVxgIG9wZXJhdGlvbiBvbiB0aGUgaW50ZXJmYWNlIFwKIGluc3RlYWQgb2Yg
XGBbQ29uc3RydWN0b3JdXGAgZXh0ZW5kZWQgYXR0cmlidXRlLiBSZWZlciB0byB0aGUgXAogW1dl
YklETCBzcGVjIHNlY3Rpb24gb24gY29uc3RydWN0b3Igb3BlcmF0aW9uc10oaHR0cHM6Ly9oZXlj
YW0uZ2l0aHViLmlvL3dlYmlkbC8jaWRsLWNvbnN0cnVjdG9ycykgXAogZm9yIG1vcmUgaW5mb3Jt
YXRpb24uYDsKLSAgICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzZfX1sidmFsaWRhdGlvbkVycm9yIl0pKGNvbnN0cnVjdG9yLnRva2Vucy5uYW1lLCB0
aGlzLCAiY29uc3RydWN0b3ItbWVtYmVyIiwgbWVzc2FnZSwgewotICAgICAgICBhdXRvZml4OiBh
dXRvZml4Q29uc3RydWN0b3IodGhpcywgY29uc3RydWN0b3IpCi0gICAgICB9KTsKKyAgICAgIHlp
ZWxkICgwLF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fLnZhbGlkYXRpb25F
cnJvcikoCisgICAgICAgIGNvbnN0cnVjdG9yLnRva2Vucy5uYW1lLAorICAgICAgICB0aGlzLAor
ICAgICAgICAiY29uc3RydWN0b3ItbWVtYmVyIiwKKyAgICAgICAgbWVzc2FnZSwKKyAgICAgICAg
eworICAgICAgICAgIGF1dG9maXg6IGF1dG9maXhDb25zdHJ1Y3Rvcih0aGlzLCBjb25zdHJ1Y3Rv
ciksCisgICAgICAgIH0KKyAgICAgICk7CiAgICAgfQogCi0gICAgY29uc3QgaXNHbG9iYWwgPSB0
aGlzLmV4dEF0dHJzLnNvbWUoZXh0QXR0ciA9PiBleHRBdHRyLm5hbWUgPT09ICJHbG9iYWwiKTsK
KyAgICBjb25zdCBpc0dsb2JhbCA9IHRoaXMuZXh0QXR0cnMuc29tZSgoZXh0QXR0cikgPT4gZXh0
QXR0ci5uYW1lID09PSAiR2xvYmFsIik7CiAgICAgaWYgKGlzR2xvYmFsKSB7Ci0gICAgICBjb25z
dCBmYWN0b3J5RnVuY3Rpb25zID0gdGhpcy5leHRBdHRycy5maWx0ZXIoZXh0QXR0ciA9PiBleHRB
dHRyLm5hbWUgPT09ICJMZWdhY3lGYWN0b3J5RnVuY3Rpb24iKTsKKyAgICAgIGNvbnN0IGZhY3Rv
cnlGdW5jdGlvbnMgPSB0aGlzLmV4dEF0dHJzLmZpbHRlcigKKyAgICAgICAgKGV4dEF0dHIpID0+
IGV4dEF0dHIubmFtZSA9PT0gIkxlZ2FjeUZhY3RvcnlGdW5jdGlvbiIKKyAgICAgICk7CiAgICAg
ICBmb3IgKGNvbnN0IG5hbWVkIG9mIGZhY3RvcnlGdW5jdGlvbnMpIHsKICAgICAgICAgY29uc3Qg
bWVzc2FnZSA9IGBJbnRlcmZhY2VzIG1hcmtlZCBhcyBcYFtHbG9iYWxdXGAgY2Fubm90IGhhdmUg
ZmFjdG9yeSBmdW5jdGlvbnMuYDsKLSAgICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fWyJ2YWxpZGF0aW9uRXJyb3IiXSkobmFtZWQudG9rZW5z
Lm5hbWUsIHRoaXMsICJuby1jb25zdHJ1Y3RpYmxlLWdsb2JhbCIsIG1lc3NhZ2UpOworICAgICAg
ICB5aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy52YWxpZGF0
aW9uRXJyb3IpKAorICAgICAgICAgIG5hbWVkLnRva2Vucy5uYW1lLAorICAgICAgICAgIHRoaXMs
CisgICAgICAgICAgIm5vLWNvbnN0cnVjdGlibGUtZ2xvYmFsIiwKKyAgICAgICAgICBtZXNzYWdl
CisgICAgICAgICk7CiAgICAgICB9CiAKLSAgICAgIGNvbnN0IGNvbnN0cnVjdG9ycyA9IHRoaXMu
bWVtYmVycy5maWx0ZXIobWVtYmVyID0+IG1lbWJlci50eXBlID09PSAiY29uc3RydWN0b3IiKTsK
KyAgICAgIGNvbnN0IGNvbnN0cnVjdG9ycyA9IHRoaXMubWVtYmVycy5maWx0ZXIoCisgICAgICAg
IChtZW1iZXIpID0+IG1lbWJlci50eXBlID09PSAiY29uc3RydWN0b3IiCisgICAgICApOwogICAg
ICAgZm9yIChjb25zdCBuYW1lZCBvZiBjb25zdHJ1Y3RvcnMpIHsKICAgICAgICAgY29uc3QgbWVz
c2FnZSA9IGBJbnRlcmZhY2VzIG1hcmtlZCBhcyBcYFtHbG9iYWxdXGAgY2Fubm90IGhhdmUgY29u
c3RydWN0b3JzLmA7Ci0gICAgICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzZfX1sidmFsaWRhdGlvbkVycm9yIl0pKG5hbWVkLnRva2Vucy5iYXNlLCB0
aGlzLCAibm8tY29uc3RydWN0aWJsZS1nbG9iYWwiLCBtZXNzYWdlKTsKKyAgICAgICAgeWllbGQg
KDAsX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18udmFsaWRhdGlvbkVycm9y
KSgKKyAgICAgICAgICBuYW1lZC50b2tlbnMuYmFzZSwKKyAgICAgICAgICB0aGlzLAorICAgICAg
ICAgICJuby1jb25zdHJ1Y3RpYmxlLWdsb2JhbCIsCisgICAgICAgICAgbWVzc2FnZQorICAgICAg
ICApOwogICAgICAgfQogICAgIH0KIAogICAgIHlpZWxkKiBzdXBlci52YWxpZGF0ZShkZWZzKTsK
ICAgICBpZiAoIXRoaXMucGFydGlhbCkgewotICAgICAgeWllbGQqIE9iamVjdChfdmFsaWRhdG9y
c19pbnRlcmZhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX1siY2hlY2tJbnRlcmZh
Y2VNZW1iZXJEdXBsaWNhdGlvbiJdKShkZWZzLCB0aGlzKTsKKyAgICAgIHlpZWxkKiAoMCxfdmFs
aWRhdG9yc19pbnRlcmZhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5jaGVja0lu
dGVyZmFjZU1lbWJlckR1cGxpY2F0aW9uKShkZWZzLCB0aGlzKTsKICAgICB9CiAgIH0KIH0KIAog
ZnVuY3Rpb24gYXV0b2ZpeENvbnN0cnVjdG9yKGludGVyZmFjZURlZiwgY29uc3RydWN0b3JFeHRB
dHRyKSB7Ci0gIGludGVyZmFjZURlZiA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfNV9fWyJhdXRvUGFyZW50ZXIiXSkoaW50ZXJmYWNlRGVmKTsKKyAgaW50ZXJm
YWNlRGVmID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5hdXRv
UGFyZW50ZXIpKGludGVyZmFjZURlZik7CiAgIHJldHVybiAoKSA9PiB7Ci0gICAgY29uc3QgaW5k
ZW50YXRpb24gPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVf
X1siZ2V0TGFzdEluZGVudGF0aW9uIl0pKGludGVyZmFjZURlZi5leHRBdHRycy50b2tlbnMub3Bl
bi50cml2aWEpOwotICAgIGNvbnN0IG1lbWJlckluZGVudCA9IGludGVyZmFjZURlZi5tZW1iZXJz
Lmxlbmd0aCA/Ci0gICAgICBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzVfX1siZ2V0TGFzdEluZGVudGF0aW9uIl0pKE9iamVjdChfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfNV9fWyJnZXRGaXJzdFRva2VuIl0pKGludGVyZmFjZURlZi5tZW1i
ZXJzWzBdKS50cml2aWEpIDoKLSAgICAgIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfNV9fWyJnZXRNZW1iZXJJbmRlbnRhdGlvbiJdKShpbmRlbnRhdGlvbik7Ci0g
ICAgY29uc3QgY29uc3RydWN0b3JPcCA9IF9jb25zdHJ1Y3Rvcl9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfOF9fWyJDb25zdHJ1Y3RvciJdLnBhcnNlKG5ldyBfdG9rZW5pc2VyX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV85X19bIlRva2VuaXNlciJdKGBcbiR7bWVtYmVySW5kZW50fWNv
bnN0cnVjdG9yKCk7YCkpOwotICAgIGNvbnN0cnVjdG9yT3AuZXh0QXR0cnMgPSBuZXcgX2V4dGVu
ZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX19bIkV4dGVuZGVk
QXR0cmlidXRlcyJdKHt9KTsKLSAgICBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzVfX1siYXV0b1BhcmVudGVyIl0pKGNvbnN0cnVjdG9yT3ApLmFyZ3VtZW50cyA9
IGNvbnN0cnVjdG9yRXh0QXR0ci5hcmd1bWVudHM7Ci0KLSAgICBjb25zdCBleGlzdGluZ0luZGV4
ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19bImZpbmRM
YXN0SW5kZXgiXSkoaW50ZXJmYWNlRGVmLm1lbWJlcnMsIG0gPT4gbS50eXBlID09PSAiY29uc3Ry
dWN0b3IiKTsKKyAgICBjb25zdCBpbmRlbnRhdGlvbiA9ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV81X18uZ2V0TGFzdEluZGVudGF0aW9uKSgKKyAgICAgIGludGVyZmFj
ZURlZi5leHRBdHRycy50b2tlbnMub3Blbi50cml2aWEKKyAgICApOworICAgIGNvbnN0IG1lbWJl
ckluZGVudCA9IGludGVyZmFjZURlZi5tZW1iZXJzLmxlbmd0aAorICAgICAgPyAoMCxfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldExhc3RJbmRlbnRhdGlvbikoKDAs
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5nZXRGaXJzdFRva2VuKShp
bnRlcmZhY2VEZWYubWVtYmVyc1swXSkudHJpdmlhKQorICAgICAgOiAoMCxfaGVscGVyc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLmdldE1lbWJlckluZGVudGF0aW9uKShpbmRlbnRh
dGlvbik7CisgICAgY29uc3QgY29uc3RydWN0b3JPcCA9IF9jb25zdHJ1Y3Rvcl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfOF9fLkNvbnN0cnVjdG9yLnBhcnNlKAorICAgICAgbmV3IF90b2tl
bmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfXy5Ub2tlbmlzZXIoYFxuJHttZW1i
ZXJJbmRlbnR9Y29uc3RydWN0b3IoKTtgKQorICAgICk7CisgICAgY29uc3RydWN0b3JPcC5leHRB
dHRycyA9IG5ldyBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMTBfXy5FeHRlbmRlZEF0dHJpYnV0ZXMoe30pOworICAgICgwLF9oZWxwZXJzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV81X18uYXV0b1BhcmVudGVyKShjb25zdHJ1Y3Rvck9wKS5hcmd1
bWVudHMgPSBjb25zdHJ1Y3RvckV4dEF0dHIuYXJndW1lbnRzOworCisgICAgY29uc3QgZXhpc3Rp
bmdJbmRleCA9ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZmlu
ZExhc3RJbmRleCkoCisgICAgICBpbnRlcmZhY2VEZWYubWVtYmVycywKKyAgICAgIChtKSA9PiBt
LnR5cGUgPT09ICJjb25zdHJ1Y3RvciIKKyAgICApOwogICAgIGludGVyZmFjZURlZi5tZW1iZXJz
LnNwbGljZShleGlzdGluZ0luZGV4ICsgMSwgMCwgY29uc3RydWN0b3JPcCk7CiAKLSAgICBjb25z
dCB7IGNsb3NlIH0gID0gaW50ZXJmYWNlRGVmLnRva2VuczsKKyAgICBjb25zdCB7IGNsb3NlIH0g
PSBpbnRlcmZhY2VEZWYudG9rZW5zOwogICAgIGlmICghY2xvc2UudHJpdmlhLmluY2x1ZGVzKCJc
biIpKSB7CiAgICAgICBjbG9zZS50cml2aWEgKz0gYFxuJHtpbmRlbnRhdGlvbn1gOwogICAgIH0K
QEAgLTIyMTQsMTEgKzI3MTUsMTIgQEAgZnVuY3Rpb24gYXV0b2ZpeENvbnN0cnVjdG9yKGludGVy
ZmFjZURlZiwgY29uc3RydWN0b3JFeHRBdHRyKSB7CiAKIC8qKiovIH0pLAogLyogMjAgKi8KLS8q
KiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1
aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9f
d2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJp
Y3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFy
bW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tf
ZXhwb3J0c19fLCAiQ29udGFpbmVyIiwgZnVuY3Rpb24oKSB7IHJldHVybiBDb250YWluZXI7IH0p
OworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19l
eHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIkNvbnRhaW5lciI6ICgpID0+ICgv
KiBiaW5kaW5nICovIENvbnRhaW5lcikKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFy
bW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18g
PSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9leHRl
bmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBh
Y2tfcmVxdWlyZV9fKDgpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwpAQCAt
MjIzNCw3OSArMjczNiwxMTkgQEAgZnVuY3Rpb24gaW5oZXJpdGFuY2UodG9rZW5pc2VyKSB7CiAg
IGlmICghY29sb24pIHsKICAgICByZXR1cm4ge307CiAgIH0KLSAgY29uc3QgaW5oZXJpdGFuY2Ug
PSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIpIHx8IHRva2VuaXNlci5lcnJvcigiSW5o
ZXJpdGFuY2UgbGFja3MgYSB0eXBlIik7CisgIGNvbnN0IGluaGVyaXRhbmNlID0KKyAgICB0b2tl
bmlzZXIuY29uc3VtZVR5cGUoImlkZW50aWZpZXIiKSB8fAorICAgIHRva2VuaXNlci5lcnJvcigi
SW5oZXJpdGFuY2UgbGFja3MgYSB0eXBlIik7CiAgIHJldHVybiB7IGNvbG9uLCBpbmhlcml0YW5j
ZSB9OwogfQogCi1jbGFzcyBDb250YWluZXIgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewotICAgIC8qKgotICAgICAqIEB0ZW1wbGF0ZSBUCi0g
ICAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlci5qcyIpLlRva2VuaXNlcn0gdG9rZW5p
c2VyCi0gICAgICogQHBhcmFtIHtUfSBpbnN0YW5jZQotICAgICAqIEBwYXJhbSB7Kn0gYXJncwot
ICAgICAqLwotICAgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIsIGluc3RhbmNlLCB7IHR5cGUsIGlu
aGVyaXRhYmxlLCBhbGxvd2VkTWVtYmVycyB9KSB7Ci0gICAgICBjb25zdCB7IHRva2VucyB9ID0g
aW5zdGFuY2U7Ci0gICAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlm
aWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIG5hbWUgaW4gJHtpbnN0YW5jZS50eXBl
fWApOwotICAgICAgdG9rZW5pc2VyLmN1cnJlbnQgPSBpbnN0YW5jZTsKLSAgICAgIGluc3RhbmNl
ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bImF1dG9Q
YXJlbnRlciJdKShpbnN0YW5jZSk7Ci0gICAgICBpZiAoaW5oZXJpdGFibGUpIHsKLSAgICAgICAg
T2JqZWN0LmFzc2lnbih0b2tlbnMsIGluaGVyaXRhbmNlKHRva2VuaXNlcikpOworY2xhc3MgQ29u
dGFpbmVyIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5CYXNl
IHsKKyAgLyoqCisgICAqIEB0ZW1wbGF0ZSBUCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tl
bmlzZXIuanMiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgorICAgKiBAcGFyYW0ge1R9IGluc3RhbmNl
CisgICAqIEBwYXJhbSB7Kn0gYXJncworICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwg
aW5zdGFuY2UsIHsgdHlwZSwgaW5oZXJpdGFibGUsIGFsbG93ZWRNZW1iZXJzIH0pIHsKKyAgICBj
b25zdCB7IHRva2VucyB9ID0gaW5zdGFuY2U7CisgICAgdG9rZW5zLm5hbWUgPQorICAgICAgdG9r
ZW5pc2VyLmNvbnN1bWVUeXBlKCJpZGVudGlmaWVyIikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJv
cihgTWlzc2luZyBuYW1lIGluICR7aW5zdGFuY2UudHlwZX1gKTsKKyAgICB0b2tlbmlzZXIuY3Vy
cmVudCA9IGluc3RhbmNlOworICAgIGluc3RhbmNlID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzJfXy5hdXRvUGFyZW50ZXIpKGluc3RhbmNlKTsKKyAgICBpZiAoaW5o
ZXJpdGFibGUpIHsKKyAgICAgIE9iamVjdC5hc3NpZ24odG9rZW5zLCBpbmhlcml0YW5jZSh0b2tl
bmlzZXIpKTsKKyAgICB9CisgICAgdG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgieyIp
IHx8IHRva2VuaXNlci5lcnJvcihgQm9keWxlc3MgJHt0eXBlfWApOworICAgIGluc3RhbmNlLm1l
bWJlcnMgPSBbXTsKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgdG9rZW5zLmNsb3NlID0gdG9r
ZW5pc2VyLmNvbnN1bWUoIn0iKTsKKyAgICAgIGlmICh0b2tlbnMuY2xvc2UpIHsKKyAgICAgICAg
dG9rZW5zLnRlcm1pbmF0aW9uID0KKyAgICAgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8
CisgICAgICAgICAgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIHNlbWljb2xvbiBhZnRlciAke3R5
cGV9YCk7CisgICAgICAgIHJldHVybiBpbnN0YW5jZS50aGlzOwogICAgICAgfQotICAgICAgdG9r
ZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgieyIpIHx8IHRva2VuaXNlci5lcnJvcihgQm9k
eWxlc3MgJHt0eXBlfWApOwotICAgICAgaW5zdGFuY2UubWVtYmVycyA9IFtdOwotICAgICAgd2hp
bGUgKHRydWUpIHsKLSAgICAgICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIn0i
KTsKLSAgICAgICAgaWYgKHRva2Vucy5jbG9zZSkgewotICAgICAgICAgIHRva2Vucy50ZXJtaW5h
dGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5n
IHNlbWljb2xvbiBhZnRlciAke3R5cGV9YCk7Ci0gICAgICAgICAgcmV0dXJuIGluc3RhbmNlLnRo
aXM7Ci0gICAgICAgIH0KLSAgICAgICAgY29uc3QgZWEgPSBfZXh0ZW5kZWRfYXR0cmlidXRlc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJFeHRlbmRlZEF0dHJpYnV0ZXMiXS5wYXJz
ZSh0b2tlbmlzZXIpOwotICAgICAgICBsZXQgbWVtOwotICAgICAgICBmb3IgKGNvbnN0IFtwYXJz
ZXIsIC4uLmFyZ3NdIG9mIGFsbG93ZWRNZW1iZXJzKSB7Ci0gICAgICAgICAgbWVtID0gT2JqZWN0
KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bImF1dG9QYXJlbnRlciJd
KShwYXJzZXIodG9rZW5pc2VyLCAuLi5hcmdzKSk7Ci0gICAgICAgICAgaWYgKG1lbSkgewotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmICghbWVt
KSB7Ci0gICAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJVbmtub3duIG1lbWJlciIpOworICAgICAg
Y29uc3QgZWEgPSBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMV9fLkV4dGVuZGVkQXR0cmlidXRlcy5wYXJzZSh0b2tlbmlzZXIpOworICAgICAgbGV0IG1l
bTsKKyAgICAgIGZvciAoY29uc3QgW3BhcnNlciwgLi4uYXJnc10gb2YgYWxsb3dlZE1lbWJlcnMp
IHsKKyAgICAgICAgbWVtID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzJfXy5hdXRvUGFyZW50ZXIpKHBhcnNlcih0b2tlbmlzZXIsIC4uLmFyZ3MpKTsKKyAgICAgICAg
aWYgKG1lbSkgeworICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIG1lbS5leHRB
dHRycyA9IGVhOwotICAgICAgICBpbnN0YW5jZS5tZW1iZXJzLnB1c2gobWVtLnRoaXMpOwogICAg
ICAgfQorICAgICAgaWYgKCFtZW0pIHsKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJVbmtub3du
IG1lbWJlciIpOworICAgICAgfQorICAgICAgbWVtLmV4dEF0dHJzID0gZWE7CisgICAgICBpbnN0
YW5jZS5tZW1iZXJzLnB1c2gobWVtLnRoaXMpOwogICAgIH0KKyAgfQogCi0gICAgZ2V0IHBhcnRp
YWwoKSB7Ci0gICAgICByZXR1cm4gISF0aGlzLnRva2Vucy5wYXJ0aWFsOwotICAgIH0KLSAgICBn
ZXQgbmFtZSgpIHsKLSAgICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzJfX1sidW5lc2NhcGUiXSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7Cisg
IGdldCBwYXJ0aWFsKCkgeworICAgIHJldHVybiAhIXRoaXMudG9rZW5zLnBhcnRpYWw7CisgIH0K
KyAgZ2V0IG5hbWUoKSB7CisgICAgcmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8yX18udW5lc2NhcGUpKHRoaXMudG9rZW5zLm5hbWUudmFsdWUpOworICB9Cisg
IGdldCBpbmhlcml0YW5jZSgpIHsKKyAgICBpZiAoIXRoaXMudG9rZW5zLmluaGVyaXRhbmNlKSB7
CisgICAgICByZXR1cm4gbnVsbDsKICAgICB9Ci0gICAgZ2V0IGluaGVyaXRhbmNlKCkgewotICAg
ICAgaWYgKCF0aGlzLnRva2Vucy5pbmhlcml0YW5jZSkgewotICAgICAgICByZXR1cm4gbnVsbDsK
KyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy51
bmVzY2FwZSkodGhpcy50b2tlbnMuaW5oZXJpdGFuY2UudmFsdWUpOworICB9CisKKyAgKnZhbGlk
YXRlKGRlZnMpIHsKKyAgICBmb3IgKGNvbnN0IG1lbWJlciBvZiB0aGlzLm1lbWJlcnMpIHsKKyAg
ICAgIGlmIChtZW1iZXIudmFsaWRhdGUpIHsKKyAgICAgICAgeWllbGQqIG1lbWJlci52YWxpZGF0
ZShkZWZzKTsKICAgICAgIH0KLSAgICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzJfX1sidW5lc2NhcGUiXSkodGhpcy50b2tlbnMuaW5oZXJpdGFu
Y2UudmFsdWUpOwogICAgIH0KKyAgfQogCi0gICAgKnZhbGlkYXRlKGRlZnMpIHsKLSAgICAgIGZv
ciAoY29uc3QgbWVtYmVyIG9mIHRoaXMubWVtYmVycykgewotICAgICAgICBpZiAobWVtYmVyLnZh
bGlkYXRlKSB7Ci0gICAgICAgICAgeWllbGQqIG1lbWJlci52YWxpZGF0ZShkZWZzKTsKLSAgICAg
ICAgfQorICAvKiogQHBhcmFtIHtpbXBvcnQoIi4uL3dyaXRlci5qcyIpLldyaXRlcn0gdyAqLwor
ICB3cml0ZSh3KSB7CisgICAgY29uc3QgaW5oZXJpdGFuY2UgPSAoKSA9PiB7CisgICAgICBpZiAo
IXRoaXMudG9rZW5zLmluaGVyaXRhbmNlKSB7CisgICAgICAgIHJldHVybiAiIjsKICAgICAgIH0K
LSAgICB9CisgICAgICByZXR1cm4gdy50cy53cmFwKFsKKyAgICAgICAgdy50b2tlbih0aGlzLnRv
a2Vucy5jb2xvbiksCisgICAgICAgIHcudHMudHJpdmlhKHRoaXMudG9rZW5zLmluaGVyaXRhbmNl
LnRyaXZpYSksCisgICAgICAgIHcudHMuaW5oZXJpdGFuY2UoCisgICAgICAgICAgdy5yZWZlcmVu
Y2UodGhpcy50b2tlbnMuaW5oZXJpdGFuY2UudmFsdWUsIHsgY29udGV4dDogdGhpcyB9KQorICAg
ICAgICApLAorICAgICAgXSk7CisgICAgfTsKKworICAgIHJldHVybiB3LnRzLmRlZmluaXRpb24o
CisgICAgICB3LnRzLndyYXAoWworICAgICAgICB0aGlzLmV4dEF0dHJzLndyaXRlKHcpLAorICAg
ICAgICB3LnRva2VuKHRoaXMudG9rZW5zLmNhbGxiYWNrKSwKKyAgICAgICAgdy50b2tlbih0aGlz
LnRva2Vucy5wYXJ0aWFsKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5iYXNlKSwKKyAg
ICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5taXhpbiksCisgICAgICAgIHcubmFtZV90b2tlbih0
aGlzLnRva2Vucy5uYW1lLCB7IGRhdGE6IHRoaXMgfSksCisgICAgICAgIGluaGVyaXRhbmNlKCks
CisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMub3BlbiksCisgICAgICAgIHcudHMud3JhcCh0
aGlzLm1lbWJlcnMubWFwKChtKSA9PiBtLndyaXRlKHcpKSksCisgICAgICAgIHcudG9rZW4odGhp
cy50b2tlbnMuY2xvc2UpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnRlcm1pbmF0aW9u
KSwKKyAgICAgIF0pLAorICAgICAgeyBkYXRhOiB0aGlzIH0KKyAgICApOwogICB9Cit9CiAKIAog
LyoqKi8gfSksCiAvKiAyMSAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4
cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNr
X19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVp
cmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJw
YWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNr
X3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJDb25zdGFudCIsIGZ1bmN0aW9uKCkg
eyByZXR1cm4gQ29uc3RhbnQ7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAg
IkNvbnN0YW50IjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gQ29uc3RhbnQpCisvKiBoYXJtb255IGV4
cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKIC8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193
ZWJwYWNrX3JlcXVpcmVfXyg1KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsK
QEAgLTIzMTQsNyArMjg1Niw3IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhw
b3J0c19fKTsKIAogCiAKLWNsYXNzIENvbnN0YW50IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKK2NsYXNzIENvbnN0YW50IGV4dGVuZHMgX2Jh
c2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5CYXNlIHsKICAgLyoqCiAgICAqIEBw
YXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIuanMiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgogICAg
Ki8KQEAgLTIzMjUsMjEgKzI4NjcsMjkgQEAgY2xhc3MgQ29uc3RhbnQgZXh0ZW5kcyBfYmFzZV9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgIGlmICghdG9rZW5z
LmJhc2UpIHsKICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgbGV0IGlkbFR5cGUgPSBPYmplY3Qo
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1sicHJpbWl0aXZlX3R5cGUi
XSkodG9rZW5pc2VyKTsKKyAgICBsZXQgaWRsVHlwZSA9ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8yX18ucHJpbWl0aXZlX3R5cGUpKHRva2VuaXNlcik7CiAgICAgaWYg
KCFpZGxUeXBlKSB7Ci0gICAgICBjb25zdCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50
aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNvbnN0IGxhY2tzIGEgdHlwZSIpOwotICAgICAg
aWRsVHlwZSA9IG5ldyBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJUeXBl
Il0oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyBiYXNlIH0gfSk7CisgICAg
ICBjb25zdCBiYXNlID0KKyAgICAgICAgdG9rZW5pc2VyLmNvbnN1bWVUeXBlKCJpZGVudGlmaWVy
IikgfHwKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyBhIHR5cGUiKTsKKyAg
ICAgIGlkbFR5cGUgPSBuZXcgX3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5U
eXBlKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnM6IHsgYmFzZSB9IH0pOwogICAg
IH0KICAgICBpZiAodG9rZW5pc2VyLnByb2JlKCI/IikpIHsKICAgICAgIHRva2VuaXNlci5lcnJv
cigiVW5leHBlY3RlZCBudWxsYWJsZSBjb25zdGFudCB0eXBlIik7CiAgICAgfQogICAgIGlkbFR5
cGUudHlwZSA9ICJjb25zdC10eXBlIjsKLSAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25z
dW1lKCJpZGVudGlmaWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyBhIG5hbWUi
KTsKLSAgICB0b2tlbnMuYXNzaWduID0gdG9rZW5pc2VyLmNvbnN1bWUoIj0iKSB8fCB0b2tlbmlz
ZXIuZXJyb3IoIkNvbnN0IGxhY2tzIHZhbHVlIGFzc2lnbm1lbnQiKTsKLSAgICB0b2tlbnMudmFs
dWUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siY29u
c3RfdmFsdWUiXSkodG9rZW5pc2VyKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNvbnN0IGxhY2tzIGEg
dmFsdWUiKTsKLSAgICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIp
IHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGNvbnN0LCBleHBlY3RlZCBgO2AiKTsK
KyAgICB0b2tlbnMubmFtZSA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZVR5cGUoImlkZW50aWZp
ZXIiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyBhIG5hbWUiKTsKKyAg
ICB0b2tlbnMuYXNzaWduID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCI9IikgfHwgdG9rZW5p
c2VyLmVycm9yKCJDb25zdCBsYWNrcyB2YWx1ZSBhc3NpZ25tZW50Iik7CisgICAgdG9rZW5zLnZh
bHVlID0KKyAgICAgICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18u
Y29uc3RfdmFsdWUpKHRva2VuaXNlcikgfHwgdG9rZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyBh
IHZhbHVlIik7CisgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0KKyAgICAgIHRva2VuaXNlci5jb25z
dW1lKCI7IikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGNvbnN0LCBl
eHBlY3RlZCBgO2AiKTsKICAgICBjb25zdCByZXQgPSBuZXcgQ29uc3RhbnQoeyBzb3VyY2U6IHRv
a2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsKLSAgICBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzJfX1siYXV0b1BhcmVudGVyIl0pKHJldCkuaWRsVHlwZSA9IGlk
bFR5cGU7CisgICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5h
dXRvUGFyZW50ZXIpKHJldCkuaWRsVHlwZSA9IGlkbFR5cGU7CiAgICAgcmV0dXJuIHJldDsKICAg
fQogCkBAIC0yMzQ3LDQyICsyODk3LDYzIEBAIGNsYXNzIENvbnN0YW50IGV4dGVuZHMgX2Jhc2Vf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICByZXR1cm4gImNv
bnN0IjsKICAgfQogICBnZXQgbmFtZSgpIHsKLSAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLm5h
bWUudmFsdWUpOworICAgIHJldHVybiAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMl9fLnVuZXNjYXBlKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKICAgfQogICBnZXQg
dmFsdWUoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMl9fWyJjb25zdF9kYXRhIl0pKHRoaXMudG9rZW5zLnZhbHVlKTsKKyAgICByZXR1
cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5jb25zdF9kYXRh
KSh0aGlzLnRva2Vucy52YWx1ZSk7CisgIH0KKworICAvKiogQHBhcmFtIHtpbXBvcnQoIi4uL3dy
aXRlci5qcyIpLldyaXRlcn0gdyAqLworICB3cml0ZSh3KSB7CisgICAgY29uc3QgeyBwYXJlbnQg
fSA9IHRoaXM7CisgICAgcmV0dXJuIHcudHMuZGVmaW5pdGlvbigKKyAgICAgIHcudHMud3JhcChb
CisgICAgICAgIHRoaXMuZXh0QXR0cnMud3JpdGUodyksCisgICAgICAgIHcudG9rZW4odGhpcy50
b2tlbnMuYmFzZSksCisgICAgICAgIHcudHMudHlwZSh0aGlzLmlkbFR5cGUud3JpdGUodykpLAor
ICAgICAgICB3Lm5hbWVfdG9rZW4odGhpcy50b2tlbnMubmFtZSwgeyBkYXRhOiB0aGlzLCBwYXJl
bnQgfSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuYXNzaWduKSwKKyAgICAgICAgdy50
b2tlbih0aGlzLnRva2Vucy52YWx1ZSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMudGVy
bWluYXRpb24pLAorICAgICAgXSksCisgICAgICB7IGRhdGE6IHRoaXMsIHBhcmVudCB9CisgICAg
KTsKICAgfQogfQogCiAKIC8qKiovIH0pLAogLyogMjIgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1
bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgo
X191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18s
IF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3Jl
cXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRp
bmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiSXRlcmFi
bGVMaWtlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBJdGVyYWJsZUxpa2U7IH0pOworLyogaGFybW9u
eSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsK
Ky8qIGhhcm1vbnkgZXhwb3J0ICovICAgIkl0ZXJhYmxlTGlrZSI6ICgpID0+ICgvKiBiaW5kaW5n
ICovIEl0ZXJhYmxlTGlrZSkKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBp
bXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dl
YnBhY2tfcmVxdWlyZV9fKDYpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwog
CiAKIAotY2xhc3MgSXRlcmFibGVMaWtlIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siQmFzZSJdIHsKK2NsYXNzIEl0ZXJhYmxlTGlrZSBleHRlbmRzIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFy
YW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICov
CiAgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKICAgICBjb25zdCBzdGFydF9wb3NpdGlvbiA9
IHRva2VuaXNlci5wb3NpdGlvbjsKICAgICBjb25zdCB0b2tlbnMgPSB7fTsKLSAgICBjb25zdCBy
ZXQgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siYXV0
b1BhcmVudGVyIl0pKG5ldyBJdGVyYWJsZUxpa2UoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2Us
IHRva2VucyB9KSk7CisgICAgY29uc3QgcmV0ID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfXy5hdXRvUGFyZW50ZXIpKAorICAgICAgbmV3IEl0ZXJhYmxlTGlrZSh7
IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pCisgICAgKTsKICAgICB0b2tlbnMu
cmVhZG9ubHkgPSB0b2tlbmlzZXIuY29uc3VtZSgicmVhZG9ubHkiKTsKICAgICBpZiAoIXRva2Vu
cy5yZWFkb25seSkgewogICAgICAgdG9rZW5zLmFzeW5jID0gdG9rZW5pc2VyLmNvbnN1bWUoImFz
eW5jIik7CiAgICAgfQotICAgIHRva2Vucy5iYXNlID0KLSAgICAgIHRva2Vucy5yZWFkb25seSA/
IHRva2VuaXNlci5jb25zdW1lKCJtYXBsaWtlIiwgInNldGxpa2UiKSA6Ci0gICAgICB0b2tlbnMu
YXN5bmMgPyB0b2tlbmlzZXIuY29uc3VtZSgiaXRlcmFibGUiKSA6Ci0gICAgICB0b2tlbmlzZXIu
Y29uc3VtZSgiaXRlcmFibGUiLCAibWFwbGlrZSIsICJzZXRsaWtlIik7CisgICAgdG9rZW5zLmJh
c2UgPSB0b2tlbnMucmVhZG9ubHkKKyAgICAgID8gdG9rZW5pc2VyLmNvbnN1bWUoIm1hcGxpa2Ui
LCAic2V0bGlrZSIpCisgICAgICA6IHRva2Vucy5hc3luYworICAgICAgPyB0b2tlbmlzZXIuY29u
c3VtZSgiaXRlcmFibGUiKQorICAgICAgOiB0b2tlbmlzZXIuY29uc3VtZSgiaXRlcmFibGUiLCAi
bWFwbGlrZSIsICJzZXRsaWtlIik7CiAgICAgaWYgKCF0b2tlbnMuYmFzZSkgewogICAgICAgdG9r
ZW5pc2VyLnVuY29uc3VtZShzdGFydF9wb3NpdGlvbik7CiAgICAgICByZXR1cm47CkBAIC0yMzkz
LDM0ICsyOTY0LDQzIEBAIGNsYXNzIEl0ZXJhYmxlTGlrZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICAgY29uc3Qgc2Vjb25kVHlwZUFs
bG93ZWQgPSBzZWNvbmRUeXBlUmVxdWlyZWQgfHwgdHlwZSA9PT0gIml0ZXJhYmxlIjsKICAgICBj
b25zdCBhcmd1bWVudEFsbG93ZWQgPSByZXQuYXN5bmMgJiYgdHlwZSA9PT0gIml0ZXJhYmxlIjsK
IAotICAgIHRva2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUoIjwiKSB8fCB0b2tlbmlzZXIu
ZXJyb3IoYE1pc3NpbmcgbGVzcy10aGFuIHNpZ24gXGA8XGAgaW4gJHt0eXBlfSBkZWNsYXJhdGlv
bmApOwotICAgIGNvbnN0IGZpcnN0ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8xX19bInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRva2VuaXNl
cikgfHwgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIGEgdHlwZSBhcmd1bWVudCBpbiAke3R5cGV9
IGRlY2xhcmF0aW9uYCk7CisgICAgdG9rZW5zLm9wZW4gPQorICAgICAgdG9rZW5pc2VyLmNvbnN1
bWUoIjwiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIGxlc3MtdGhhbiBzaWdu
IFxgPFxgIGluICR7dHlwZX0gZGVjbGFyYXRpb25gKTsKKyAgICBjb25zdCBmaXJzdCA9CisgICAg
ICAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnR5cGVfd2l0aF9l
eHRlbmRlZF9hdHRyaWJ1dGVzKSh0b2tlbmlzZXIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJyb3Io
YE1pc3NpbmcgYSB0eXBlIGFyZ3VtZW50IGluICR7dHlwZX0gZGVjbGFyYXRpb25gKTsKICAgICBy
ZXQuaWRsVHlwZSA9IFtmaXJzdF07CiAgICAgcmV0LmFyZ3VtZW50cyA9IFtdOwogCiAgICAgaWYg
KHNlY29uZFR5cGVBbGxvd2VkKSB7CiAgICAgICBmaXJzdC50b2tlbnMuc2VwYXJhdG9yID0gdG9r
ZW5pc2VyLmNvbnN1bWUoIiwiKTsKICAgICAgIGlmIChmaXJzdC50b2tlbnMuc2VwYXJhdG9yKSB7
Ci0gICAgICAgIHJldC5pZGxUeXBlLnB1c2goT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRva2Vu
aXNlcikpOwotICAgICAgfQotICAgICAgZWxzZSBpZiAoc2Vjb25kVHlwZVJlcXVpcmVkKSB7Cisg
ICAgICAgIHJldC5pZGxUeXBlLnB1c2goKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzFfXy50eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcykodG9rZW5pc2VyKSk7Cisg
ICAgICB9IGVsc2UgaWYgKHNlY29uZFR5cGVSZXF1aXJlZCkgewogICAgICAgICB0b2tlbmlzZXIu
ZXJyb3IoYE1pc3Npbmcgc2Vjb25kIHR5cGUgYXJndW1lbnQgaW4gJHt0eXBlfSBkZWNsYXJhdGlv
bmApOwogICAgICAgfQogICAgIH0KIAotICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25z
dW1lKCI+IikgfHwgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIGdyZWF0ZXItdGhhbiBzaWduIFxg
PlxgIGluICR7dHlwZX0gZGVjbGFyYXRpb25gKTsKKyAgICB0b2tlbnMuY2xvc2UgPQorICAgICAg
dG9rZW5pc2VyLmNvbnN1bWUoIj4iKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5n
IGdyZWF0ZXItdGhhbiBzaWduIFxgPlxgIGluICR7dHlwZX0gZGVjbGFyYXRpb25gKTsKIAogICAg
IGlmICh0b2tlbmlzZXIucHJvYmUoIigiKSkgewogICAgICAgaWYgKGFyZ3VtZW50QWxsb3dlZCkg
ewogICAgICAgICB0b2tlbnMuYXJnc09wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgiKCIpOwotICAg
ICAgICByZXQuYXJndW1lbnRzLnB1c2goLi4uT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX19bImFyZ3VtZW50X2xpc3QiXSkodG9rZW5pc2VyKSk7Ci0gICAgICAg
IHRva2Vucy5hcmdzQ2xvc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5l
cnJvcigiVW50ZXJtaW5hdGVkIGFzeW5jIGl0ZXJhYmxlIGFyZ3VtZW50IGxpc3QiKTsKKyAgICAg
ICAgcmV0LmFyZ3VtZW50cy5wdXNoKC4uLigwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xX18uYXJndW1lbnRfbGlzdCkodG9rZW5pc2VyKSk7CisgICAgICAgIHRva2Vucy5h
cmdzQ2xvc2UgPQorICAgICAgICAgIHRva2VuaXNlci5jb25zdW1lKCIpIikgfHwKKyAgICAgICAg
ICB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBhc3luYyBpdGVyYWJsZSBhcmd1bWVudCBs
aXN0Iik7CiAgICAgICB9IGVsc2UgewogICAgICAgICB0b2tlbmlzZXIuZXJyb3IoYEFyZ3VtZW50
cyBhcmUgb25seSBhbGxvd2VkIGZvciBcYGFzeW5jIGl0ZXJhYmxlXGBgKTsKICAgICAgIH0KICAg
ICB9CiAKLSAgICB0b2tlbnMudGVybWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8
IHRva2VuaXNlci5lcnJvcihgTWlzc2luZyBzZW1pY29sb24gYWZ0ZXIgJHt0eXBlfSBkZWNsYXJh
dGlvbmApOworICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9CisgICAgICB0b2tlbmlzZXIuY29uc3Vt
ZSgiOyIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJyb3IoYE1pc3Npbmcgc2VtaWNvbG9uIGFmdGVy
ICR7dHlwZX0gZGVjbGFyYXRpb25gKTsKIAogICAgIHJldHVybiByZXQudGhpczsKICAgfQpAQCAt
MjQ0MywyMyArMzAyMyw0NCBAQCBjbGFzcyBJdGVyYWJsZUxpa2UgZXh0ZW5kcyBfYmFzZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgICAgeWllbGQqIGFyZ3Vt
ZW50LnZhbGlkYXRlKGRlZnMpOwogICAgIH0KICAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgi
Li4vd3JpdGVyLmpzIikuV3JpdGVyfSB3ICovCisgIHdyaXRlKHcpIHsKKyAgICByZXR1cm4gdy50
cy5kZWZpbml0aW9uKAorICAgICAgdy50cy53cmFwKFsKKyAgICAgICAgdGhpcy5leHRBdHRycy53
cml0ZSh3KSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5yZWFkb25seSksCisgICAgICAg
IHcudG9rZW4odGhpcy50b2tlbnMuYXN5bmMpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5z
LmJhc2UsIHcudHMuZ2VuZXJpYyksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMub3Blbiks
CisgICAgICAgIHcudHMud3JhcCh0aGlzLmlkbFR5cGUubWFwKCh0KSA9PiB0LndyaXRlKHcpKSks
CisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuY2xvc2UpLAorICAgICAgICB3LnRva2VuKHRo
aXMudG9rZW5zLmFyZ3NPcGVuKSwKKyAgICAgICAgdy50cy53cmFwKHRoaXMuYXJndW1lbnRzLm1h
cCgoYXJnKSA9PiBhcmcud3JpdGUodykpKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5h
cmdzQ2xvc2UpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAg
ICAgIF0pLAorICAgICAgeyBkYXRhOiB0aGlzLCBwYXJlbnQ6IHRoaXMucGFyZW50IH0KKyAgICAp
OworICB9CiB9CiAKIAogLyoqKi8gfSksCiAvKiAyMyAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVs
ZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChf
X3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywg
X193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVx
dWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGlu
ZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJjaGVja0lu
dGVyZmFjZU1lbWJlckR1cGxpY2F0aW9uIiwgZnVuY3Rpb24oKSB7IHJldHVybiBjaGVja0ludGVy
ZmFjZU1lbWJlckR1cGxpY2F0aW9uOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFj
a19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAq
LyAgICJjaGVja0ludGVyZmFjZU1lbWJlckR1cGxpY2F0aW9uIjogKCkgPT4gKC8qIGJpbmRpbmcg
Ki8gY2hlY2tJbnRlcmZhY2VNZW1iZXJEdXBsaWNhdGlvbikKKy8qIGhhcm1vbnkgZXhwb3J0ICov
IH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKIC8vIEB0cy1jaGVjawogCiAK
IAogZnVuY3Rpb24qIGNoZWNrSW50ZXJmYWNlTWVtYmVyRHVwbGljYXRpb24oZGVmcywgaSkgewot
ICBjb25zdCBvcE5hbWVzID0gbmV3IFNldChnZXRPcGVyYXRpb25zKGkpLm1hcChvcCA9PiBvcC5u
YW1lKSk7CisgIGNvbnN0IG9wTmFtZXMgPSBuZXcgU2V0KGdldE9wZXJhdGlvbnMoaSkubWFwKChv
cCkgPT4gb3AubmFtZSkpOwogICBjb25zdCBwYXJ0aWFscyA9IGRlZnMucGFydGlhbHMuZ2V0KGku
bmFtZSkgfHwgW107CiAgIGNvbnN0IG1peGlucyA9IGRlZnMubWl4aW5NYXAuZ2V0KGkubmFtZSkg
fHwgW107CiAgIGZvciAoY29uc3QgZXh0IG9mIFsuLi5wYXJ0aWFscywgLi4ubWl4aW5zXSkgewpA
QCAtMjQ3NSwzMSArMzA3NiwzNiBAQCBmdW5jdGlvbiogY2hlY2tJbnRlcmZhY2VNZW1iZXJEdXBs
aWNhdGlvbihkZWZzLCBpKSB7CiAgICAgICBjb25zdCB7IG5hbWUgfSA9IGFkZGl0aW9uOwogICAg
ICAgaWYgKG5hbWUgJiYgZXhpc3RpbmdzLmhhcyhuYW1lKSkgewogICAgICAgICBjb25zdCBtZXNz
YWdlID0gYFRoZSBvcGVyYXRpb24gIiR7bmFtZX0iIGhhcyBhbHJlYWR5IGJlZW4gZGVmaW5lZCBm
b3IgdGhlIGJhc2UgaW50ZXJmYWNlICIke2Jhc2UubmFtZX0iIGVpdGhlciBpbiBpdHNlbGYgb3Ig
aW4gYSBtaXhpbmA7Ci0gICAgICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfX1sidmFsaWRhdGlvbkVycm9yIl0pKGFkZGl0aW9uLnRva2Vucy5uYW1l
LCBleHQsICJuby1jcm9zcy1vdmVybG9hZCIsIG1lc3NhZ2UpOworICAgICAgICB5aWVsZCAoMCxf
ZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy52YWxpZGF0aW9uRXJyb3IpKAor
ICAgICAgICAgIGFkZGl0aW9uLnRva2Vucy5uYW1lLAorICAgICAgICAgIGV4dCwKKyAgICAgICAg
ICAibm8tY3Jvc3Mtb3ZlcmxvYWQiLAorICAgICAgICAgIG1lc3NhZ2UKKyAgICAgICAgKTsKICAg
ICAgIH0KICAgICB9CiAgIH0KIAogICBmdW5jdGlvbiBnZXRPcGVyYXRpb25zKGkpIHsKLSAgICBy
ZXR1cm4gaS5tZW1iZXJzCi0gICAgICAuZmlsdGVyKCh7dHlwZX0pID0+IHR5cGUgPT09ICJvcGVy
YXRpb24iKTsKKyAgICByZXR1cm4gaS5tZW1iZXJzLmZpbHRlcigoeyB0eXBlIH0pID0+IHR5cGUg
PT09ICJvcGVyYXRpb24iKTsKICAgfQogfQogCiAKIC8qKiovIH0pLAogLyogMjQgKi8KLS8qKiov
IChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJl
X18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2Vi
cGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3Qi
OwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9u
eSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhw
b3J0c19fLCAiQ29uc3RydWN0b3IiLCBmdW5jdGlvbigpIHsgcmV0dXJuIENvbnN0cnVjdG9yOyB9
KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tf
ZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJDb25zdHJ1Y3RvciI6ICgpID0+
ICgvKiBiaW5kaW5nICovIENvbnN0cnVjdG9yKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAv
KiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIg
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1
aXJlX18oNCk7CiAKIAogCi1jbGFzcyBDb25zdHJ1Y3RvciBleHRlbmRzIF9iYXNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CitjbGFzcyBDb25zdHJ1Y3RvciBleHRl
bmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgog
ICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIK
ICAgICovCkBAIC0yNTEwLDEyICszMTE2LDE3IEBAIGNsYXNzIENvbnN0cnVjdG9yIGV4dGVuZHMg
X2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICB9CiAg
ICAgLyoqIEB0eXBlIHtCYXNlWyJ0b2tlbnMiXX0gKi8KICAgICBjb25zdCB0b2tlbnMgPSB7IGJh
c2UgfTsKLSAgICB0b2tlbnMub3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCIoIikgfHwgdG9rZW5p
c2VyLmVycm9yKCJObyBhcmd1bWVudCBsaXN0IGluIGNvbnN0cnVjdG9yIik7Ci0gICAgY29uc3Qg
YXJncyA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJh
cmd1bWVudF9saXN0Il0pKHRva2VuaXNlcik7Ci0gICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2Vy
LmNvbnN1bWUoIikiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBjb25zdHJ1Y3Rv
ciIpOwotICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwg
dG9rZW5pc2VyLmVycm9yKCJObyBzZW1pY29sb24gYWZ0ZXIgY29uc3RydWN0b3IiKTsKKyAgICB0
b2tlbnMub3BlbiA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiKCIpIHx8CisgICAgICB0b2tl
bmlzZXIuZXJyb3IoIk5vIGFyZ3VtZW50IGxpc3QgaW4gY29uc3RydWN0b3IiKTsKKyAgICBjb25z
dCBhcmdzID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5hcmd1
bWVudF9saXN0KSh0b2tlbmlzZXIpOworICAgIHRva2Vucy5jbG9zZSA9CisgICAgICB0b2tlbmlz
ZXIuY29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGNvbnN0cnVj
dG9yIik7CisgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1l
KCI7IikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiTm8gc2VtaWNvbG9uIGFmdGVyIGNvbnN0
cnVjdG9yIik7CiAgICAgY29uc3QgcmV0ID0gbmV3IENvbnN0cnVjdG9yKHsgc291cmNlOiB0b2tl
bmlzZXIuc291cmNlLCB0b2tlbnMgfSk7Ci0gICAgT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8xX19bImF1dG9QYXJlbnRlciJdKShyZXQpLmFyZ3VtZW50cyA9IGFy
Z3M7CisgICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5hdXRv
UGFyZW50ZXIpKHJldCkuYXJndW1lbnRzID0gYXJnczsKICAgICByZXR1cm4gcmV0OwogICB9CiAK
QEAgLTI1MzEsMTYgKzMxNDIsMzMgQEAgY2xhc3MgQ29uc3RydWN0b3IgZXh0ZW5kcyBfYmFzZV9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgICAgeWllbGQqIGFy
Z3VtZW50LnZhbGlkYXRlKGRlZnMpOwogICAgIH0KICAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9y
dCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyfSB3ICovCisgIHdyaXRlKHcpIHsKKyAgICBjb25zdCB7
IHBhcmVudCB9ID0gdGhpczsKKyAgICByZXR1cm4gdy50cy5kZWZpbml0aW9uKAorICAgICAgdy50
cy53cmFwKFsKKyAgICAgICAgdGhpcy5leHRBdHRycy53cml0ZSh3KSwKKyAgICAgICAgdy50b2tl
bih0aGlzLnRva2Vucy5iYXNlLCB3LnRzLm5hbWVsZXNzLCB7IGRhdGE6IHRoaXMsIHBhcmVudCB9
KSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5vcGVuKSwKKyAgICAgICAgdy50cy53cmFw
KHRoaXMuYXJndW1lbnRzLm1hcCgoYXJnKSA9PiBhcmcud3JpdGUodykpKSwKKyAgICAgICAgdy50
b2tlbih0aGlzLnRva2Vucy5jbG9zZSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMudGVy
bWluYXRpb24pLAorICAgICAgXSksCisgICAgICB7IGRhdGE6IHRoaXMsIHBhcmVudCB9CisgICAg
KTsKKyAgfQogfQogCiAKIC8qKiovIH0pLAogLyogMjUgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1
bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgo
X191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18s
IF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3Jl
cXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRp
bmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiTWl4aW4i
LCBmdW5jdGlvbigpIHsgcmV0dXJuIE1peGluOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9f
d2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4
cG9ydCAqLyAgICJNaXhpbiI6ICgpID0+ICgvKiBiaW5kaW5nICovIE1peGluKQorLyogaGFybW9u
eSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnRhaW5lcl9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCk7CiAv
KiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIxKTsKIC8qIGhhcm1vbnkgaW1wb3J0ICov
IHZhciBfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBh
Y2tfcmVxdWlyZV9fKDE0KTsKQEAgLTI1NTIsNyArMzE4MCw3IEBAIF9fd2VicGFja19yZXF1aXJl
X18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAogCiAKLWNsYXNzIE1peGluIGV4dGVuZHMgX2Nv
bnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXSB7Citj
bGFzcyBNaXhpbiBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfXy5Db250YWluZXIgewogICAvKioKICAgICogQHR5cGVkZWYge2ltcG9ydCgiLi4vdG9rZW5p
c2VyLmpzIikuVG9rZW59IFRva2VuCiAgICAqCkBAIC0yNTY3LDE1ICszMTk1LDE5IEBAIGNsYXNz
IE1peGluIGV4dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
WyJDb250YWluZXIiXSB7CiAgICAgaWYgKCF0b2tlbnMubWl4aW4pIHsKICAgICAgIHJldHVybjsK
ICAgICB9Ci0gICAgcmV0dXJuIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfX1siQ29udGFpbmVyIl0ucGFyc2UodG9rZW5pc2VyLCBuZXcgTWl4aW4oeyBzb3VyY2U6IHRv
a2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSwgewotICAgICAgdHlwZTogImludGVyZmFjZSBtaXhp
biIsCi0gICAgICBhbGxvd2VkTWVtYmVyczogWwotICAgICAgICBbX2NvbnN0YW50X2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkNvbnN0YW50Il0ucGFyc2VdLAotICAgICAgICBbX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1sic3RyaW5naWZpZXIiXV0sCi0g
ICAgICAgIFtfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkF0dHJp
YnV0ZSJdLnBhcnNlLCB7IG5vSW5oZXJpdDogdHJ1ZSB9XSwKLSAgICAgICAgW19vcGVyYXRpb25f
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1siT3BlcmF0aW9uIl0ucGFyc2UsIHsgcmVn
dWxhcjogdHJ1ZSB9XQotICAgICAgXQotICAgIH0pOworICAgIHJldHVybiBfY29udGFpbmVyX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQ29udGFpbmVyLnBhcnNlKAorICAgICAgdG9r
ZW5pc2VyLAorICAgICAgbmV3IE1peGluKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tl
bnMgfSksCisgICAgICB7CisgICAgICAgIHR5cGU6ICJpbnRlcmZhY2UgbWl4aW4iLAorICAgICAg
ICBhbGxvd2VkTWVtYmVyczogWworICAgICAgICAgIFtfY29uc3RhbnRfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfXy5Db25zdGFudC5wYXJzZV0sCisgICAgICAgICAgW19oZWxwZXJzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18uc3RyaW5naWZpZXJdLAorICAgICAgICAgIFtf
YXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQXR0cmlidXRlLnBhcnNl
LCB7IG5vSW5oZXJpdDogdHJ1ZSB9XSwKKyAgICAgICAgICBbX29wZXJhdGlvbl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfM19fLk9wZXJhdGlvbi5wYXJzZSwgeyByZWd1bGFyOiB0cnVlIH1d
LAorICAgICAgICBdLAorICAgICAgfQorICAgICk7CiAgIH0KIAogICBnZXQgdHlwZSgpIHsKQEAg
LTI1ODYsMTEgKzMyMTgsMTIgQEAgY2xhc3MgTWl4aW4gZXh0ZW5kcyBfY29udGFpbmVyX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkNvbnRhaW5lciJdIHsKIAogLyoqKi8gfSksCiAv
KiAyNiAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193
ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19t
b2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewog
Ci0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNf
Xyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5k
KF9fd2VicGFja19leHBvcnRzX18sICJEaWN0aW9uYXJ5IiwgZnVuY3Rpb24oKSB7IHJldHVybiBE
aWN0aW9uYXJ5OyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18u
ZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJEaWN0aW9u
YXJ5IjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gRGljdGlvbmFyeSkKKy8qIGhhcm1vbnkgZXhwb3J0
ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb250YWluZXJfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjApOwogLyogaGFybW9u
eSBpbXBvcnQgKi8gdmFyIF9maWVsZF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0g
X193ZWJwYWNrX3JlcXVpcmVfXygyNyk7CiAvLyBAdHMtY2hlY2sKQEAgLTI1OTgsNyArMzIzMSw3
IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAogCiAKLWNs
YXNzIERpY3Rpb25hcnkgZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX19bIkNvbnRhaW5lciJdIHsKK2NsYXNzIERpY3Rpb25hcnkgZXh0ZW5kcyBfY29udGFp
bmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQ29udGFpbmVyIHsKICAgLyoqCiAg
ICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgog
ICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdCkBAIC0yNjEwLDEzICszMjQzLDE1IEBAIGNs
YXNzIERpY3Rpb25hcnkgZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX19bIkNvbnRhaW5lciJdCiAgICAgaWYgKCF0b2tlbnMuYmFzZSkgewogICAgICAgcmV0
dXJuOwogICAgIH0KLSAgICByZXR1cm4gX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fWyJDb250YWluZXIiXS5wYXJzZSh0b2tlbmlzZXIsIG5ldyBEaWN0aW9uYXJ5KHsg
c291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSksIHsKLSAgICAgIHR5cGU6ICJkaWN0
aW9uYXJ5IiwKLSAgICAgIGluaGVyaXRhYmxlOiAhcGFydGlhbCwKLSAgICAgIGFsbG93ZWRNZW1i
ZXJzOiBbCi0gICAgICAgIFtfZmllbGRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1si
RmllbGQiXS5wYXJzZV0sCi0gICAgICBdCi0gICAgfSk7CisgICAgcmV0dXJuIF9jb250YWluZXJf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5Db250YWluZXIucGFyc2UoCisgICAgICB0
b2tlbmlzZXIsCisgICAgICBuZXcgRGljdGlvbmFyeSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJj
ZSwgdG9rZW5zIH0pLAorICAgICAgeworICAgICAgICB0eXBlOiAiZGljdGlvbmFyeSIsCisgICAg
ICAgIGluaGVyaXRhYmxlOiAhcGFydGlhbCwKKyAgICAgICAgYWxsb3dlZE1lbWJlcnM6IFtbX2Zp
ZWxkX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uRmllbGQucGFyc2VdXSwKKyAgICAg
IH0KKyAgICApOwogICB9CiAKICAgZ2V0IHR5cGUoKSB7CkBAIC0yNjI3LDExICszMjYyLDEyIEBA
IGNsYXNzIERpY3Rpb25hcnkgZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX19bIkNvbnRhaW5lciJdCiAKIC8qKiovIH0pLAogLyogMjcgKi8KLS8qKiovIChm
dW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18p
IHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFj
a19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwog
X193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBl
eHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0
c19fLCAiRmllbGQiLCBmdW5jdGlvbigpIHsgcmV0dXJuIEZpZWxkOyB9KTsKKy8qIGhhcm1vbnkg
ZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7Cisv
KiBoYXJtb255IGV4cG9ydCAqLyAgICJGaWVsZCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEZpZWxk
KQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jh
c2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18o
Nik7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CiAvKiBoYXJtb255IGltcG9y
dCAqLyB2YXIgX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oOCk7CkBAIC0yNjQxLDIxICszMjc3LDI4IEBAIF9f
d2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAogCiAKLWNsYXNzIEZp
ZWxkIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJd
IHsKK2NsYXNzIEZpZWxkIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzBfXy5CYXNlIHsKICAgLyoqCiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5U
b2tlbmlzZXJ9IHRva2VuaXNlcgogICAgKi8KICAgc3RhdGljIHBhcnNlKHRva2VuaXNlcikgewog
ICAgIC8qKiBAdHlwZSB7QmFzZVsidG9rZW5zIl19ICovCiAgICAgY29uc3QgdG9rZW5zID0ge307
Ci0gICAgY29uc3QgcmV0ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8xX19bImF1dG9QYXJlbnRlciJdKShuZXcgRmllbGQoeyBzb3VyY2U6IHRva2VuaXNlci5z
b3VyY2UsIHRva2VucyB9KSk7Ci0gICAgcmV0LmV4dEF0dHJzID0gX2V4dGVuZGVkX2F0dHJpYnV0
ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siRXh0ZW5kZWRBdHRyaWJ1dGVzIl0u
cGFyc2UodG9rZW5pc2VyKTsKKyAgICBjb25zdCByZXQgPSAoMCxfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fLmF1dG9QYXJlbnRlcikobmV3IEZpZWxkKHsgc291cmNlOiB0
b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkpOworICAgIHJldC5leHRBdHRycyA9IF9leHRlbmRl
ZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uRXh0ZW5kZWRBdHRy
aWJ1dGVzLnBhcnNlKHRva2VuaXNlcik7CiAgICAgdG9rZW5zLnJlcXVpcmVkID0gdG9rZW5pc2Vy
LmNvbnN1bWUoInJlcXVpcmVkIik7Ci0gICAgcmV0LmlkbFR5cGUgPSBPYmplY3QoX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sidHlwZV93aXRoX2V4dGVuZGVkX2F0dHJp
YnV0ZXMiXSkodG9rZW5pc2VyLCAiZGljdGlvbmFyeS10eXBlIikgfHwgdG9rZW5pc2VyLmVycm9y
KCJEaWN0aW9uYXJ5IG1lbWJlciBsYWNrcyBhIHR5cGUiKTsKLSAgICB0b2tlbnMubmFtZSA9IHRv
a2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKCJEaWN0aW9u
YXJ5IG1lbWJlciBsYWNrcyBhIG5hbWUiKTsKLSAgICByZXQuZGVmYXVsdCA9IF9kZWZhdWx0X2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bIkRlZmF1bHQiXS5wYXJzZSh0b2tlbmlzZXIp
OwotICAgIGlmICh0b2tlbnMucmVxdWlyZWQgJiYgcmV0LmRlZmF1bHQpIHRva2VuaXNlci5lcnJv
cigiUmVxdWlyZWQgbWVtYmVyIG11c3Qgbm90IGhhdmUgYSBkZWZhdWx0Iik7Ci0gICAgdG9rZW5z
LnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3Io
IlVudGVybWluYXRlZCBkaWN0aW9uYXJ5IG1lbWJlciwgZXhwZWN0ZWQgYDtgIik7CisgICAgcmV0
LmlkbFR5cGUgPQorICAgICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfXy50eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcykodG9rZW5pc2VyLCAiZGljdGlvbmFy
eS10eXBlIikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiRGljdGlvbmFyeSBtZW1iZXIgbGFj
a3MgYSB0eXBlIik7CisgICAgdG9rZW5zLm5hbWUgPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWVU
eXBlKCJpZGVudGlmaWVyIikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiRGljdGlvbmFyeSBt
ZW1iZXIgbGFja3MgYSBuYW1lIik7CisgICAgcmV0LmRlZmF1bHQgPSBfZGVmYXVsdF9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLkRlZmF1bHQucGFyc2UodG9rZW5pc2VyKTsKKyAgICBp
ZiAodG9rZW5zLnJlcXVpcmVkICYmIHJldC5kZWZhdWx0KQorICAgICAgdG9rZW5pc2VyLmVycm9y
KCJSZXF1aXJlZCBtZW1iZXIgbXVzdCBub3QgaGF2ZSBhIGRlZmF1bHQiKTsKKyAgICB0b2tlbnMu
dGVybWluYXRpb24gPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fAorICAgICAgdG9r
ZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgZGljdGlvbmFyeSBtZW1iZXIsIGV4cGVjdGVkIGA7
YCIpOwogICAgIHJldHVybiByZXQudGhpczsKICAgfQogCkBAIC0yNjYzLDcgKzMzMDYsNyBAQCBj
bGFzcyBGaWVsZCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19b
IkJhc2UiXSB7CiAgICAgcmV0dXJuICJmaWVsZCI7CiAgIH0KICAgZ2V0IG5hbWUoKSB7Ci0gICAg
cmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1
bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKKyAgICByZXR1cm4gKDAsX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51bmVzY2FwZSkodGhpcy50b2tlbnMu
bmFtZS52YWx1ZSk7CiAgIH0KICAgZ2V0IHJlcXVpcmVkKCkgewogICAgIHJldHVybiAhIXRoaXMu
dG9rZW5zLnJlcXVpcmVkOwpAQCAtMjY3MiwyOCArMzMxNSw0NyBAQCBjbGFzcyBGaWVsZCBleHRl
bmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICp2
YWxpZGF0ZShkZWZzKSB7CiAgICAgeWllbGQqIHRoaXMuaWRsVHlwZS52YWxpZGF0ZShkZWZzKTsK
ICAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyfSB3ICov
CisgIHdyaXRlKHcpIHsKKyAgICBjb25zdCB7IHBhcmVudCB9ID0gdGhpczsKKyAgICByZXR1cm4g
dy50cy5kZWZpbml0aW9uKAorICAgICAgdy50cy53cmFwKFsKKyAgICAgICAgdGhpcy5leHRBdHRy
cy53cml0ZSh3KSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5yZXF1aXJlZCksCisgICAg
ICAgIHcudHMudHlwZSh0aGlzLmlkbFR5cGUud3JpdGUodykpLAorICAgICAgICB3Lm5hbWVfdG9r
ZW4odGhpcy50b2tlbnMubmFtZSwgeyBkYXRhOiB0aGlzLCBwYXJlbnQgfSksCisgICAgICAgIHRo
aXMuZGVmYXVsdCA/IHRoaXMuZGVmYXVsdC53cml0ZSh3KSA6ICIiLAorICAgICAgICB3LnRva2Vu
KHRoaXMudG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAgICAgIF0pLAorICAgICAgeyBkYXRhOiB0aGlz
LCBwYXJlbnQgfQorICAgICk7CisgIH0KIH0KIAogCiAvKioqLyB9KSwKIC8qIDI4ICovCi0vKioq
LyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWly
ZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dl
YnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0
IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1v
bnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4
cG9ydHNfXywgIk5hbWVzcGFjZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gTmFtZXNwYWNlOyB9KTsK
Ky8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhw
b3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJOYW1lc3BhY2UiOiAoKSA9PiAoLyog
YmluZGluZyAqLyBOYW1lc3BhY2UpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1v
bnkgaW1wb3J0ICovIHZhciBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIwKTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBf
YXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVx
dWlyZV9fKDE0KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfb3BlcmF0aW9uX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKTsKIC8qIGhh
cm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNf
XyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJl
X18oNCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50X2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV81X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIxKTsKIAogCiAKIAogCiAK
LWNsYXNzIE5hbWVzcGFjZSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfX1siQ29udGFpbmVyIl0geworCitjbGFzcyBOYW1lc3BhY2UgZXh0ZW5kcyBfY29u
dGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQ29udGFpbmVyIHsKICAgLyoq
CiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNl
cgogICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdCkBAIC0yNzA1LDEzICszMzY3LDE4IEBA
IGNsYXNzIE5hbWVzcGFjZSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfX1siQ29udGFpbmVyIl0KICAgICBpZiAoIXRva2Vucy5iYXNlKSB7CiAgICAgICBy
ZXR1cm47CiAgICAgfQotICAgIHJldHVybiBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX19bIkNvbnRhaW5lciJdLnBhcnNlKHRva2VuaXNlciwgbmV3IE5hbWVzcGFjZSh7
IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pLCB7Ci0gICAgICB0eXBlOiAibmFt
ZXNwYWNlIiwKLSAgICAgIGFsbG93ZWRNZW1iZXJzOiBbCi0gICAgICAgIFtfYXR0cmlidXRlX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkF0dHJpYnV0ZSJdLnBhcnNlLCB7IG5vSW5o
ZXJpdDogdHJ1ZSwgcmVhZG9ubHk6IHRydWUgfV0sCi0gICAgICAgIFtfb3BlcmF0aW9uX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIk9wZXJhdGlvbiJdLnBhcnNlLCB7IHJlZ3VsYXI6
IHRydWUgfV0KLSAgICAgIF0KLSAgICB9KTsKKyAgICByZXR1cm4gX2NvbnRhaW5lcl9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkNvbnRhaW5lci5wYXJzZSgKKyAgICAgIHRva2VuaXNl
ciwKKyAgICAgIG5ldyBOYW1lc3BhY2UoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2Vu
cyB9KSwKKyAgICAgIHsKKyAgICAgICAgdHlwZTogIm5hbWVzcGFjZSIsCisgICAgICAgIGFsbG93
ZWRNZW1iZXJzOiBbCisgICAgICAgICAgW19hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzFfXy5BdHRyaWJ1dGUucGFyc2UsIHsgbm9Jbmhlcml0OiB0cnVlLCByZWFkb25seTog
dHJ1ZSB9XSwKKyAgICAgICAgICBbX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV81X18uQ29uc3RhbnQucGFyc2VdLAorICAgICAgICAgIFtfb3BlcmF0aW9uX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8yX18uT3BlcmF0aW9uLnBhcnNlLCB7IHJlZ3VsYXI6IHRydWUgfV0s
CisgICAgICAgIF0sCisgICAgICB9CisgICAgKTsKICAgfQogCiAgIGdldCB0eXBlKCkgewpAQCAt
MjcxOSwxNSArMzM4NiwyNCBAQCBjbGFzcyBOYW1lc3BhY2UgZXh0ZW5kcyBfY29udGFpbmVyX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkNvbnRhaW5lciJdCiAgIH0KIAogICAqdmFs
aWRhdGUoZGVmcykgewotICAgIGlmICghdGhpcy5wYXJ0aWFsICYmIHRoaXMuZXh0QXR0cnMuZXZl
cnkoZXh0QXR0ciA9PiBleHRBdHRyLm5hbWUgIT09ICJFeHBvc2VkIikpIHsKKyAgICBpZiAoCisg
ICAgICAhdGhpcy5wYXJ0aWFsICYmCisgICAgICB0aGlzLmV4dEF0dHJzLmV2ZXJ5KChleHRBdHRy
KSA9PiBleHRBdHRyLm5hbWUgIT09ICJFeHBvc2VkIikKKyAgICApIHsKICAgICAgIGNvbnN0IG1l
c3NhZ2UgPSBgTmFtZXNwYWNlcyBtdXN0IGhhdmUgW0V4cG9zZWRdIGV4dGVuZGVkIGF0dHJpYnV0
ZS4gXAogVG8gZml4LCBhZGQsIGZvciBleGFtcGxlLCBbRXhwb3NlZD1XaW5kb3ddLiBQbGVhc2Ug
YWxzbyBjb25zaWRlciBjYXJlZnVsbHkgXAogaWYgeW91ciBuYW1lc3BhY2Ugc2hvdWxkIGFsc28g
YmUgZXhwb3NlZCBpbiBhIFdvcmtlciBzY29wZS4gUmVmZXIgdG8gdGhlIFwKIFtXZWJJREwgc3Bl
YyBzZWN0aW9uIG9uIEV4cG9zZWRdKGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI0V4
cG9zZWQpIFwKIGZvciBtb3JlIGluZm9ybWF0aW9uLmA7Ci0gICAgICB5aWVsZCBPYmplY3QoX2Vy
cm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bInZhbGlkYXRpb25FcnJvciJdKSh0
aGlzLnRva2Vucy5uYW1lLCB0aGlzLCAicmVxdWlyZS1leHBvc2VkIiwgbWVzc2FnZSwgewotICAg
ICAgICBhdXRvZml4OiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzRfX1siYXV0b2ZpeEFkZEV4cG9zZWRXaW5kb3ciXSkodGhpcykKLSAgICAgIH0pOworICAgICAg
eWllbGQgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18udmFsaWRhdGlv
bkVycm9yKSgKKyAgICAgICAgdGhpcy50b2tlbnMubmFtZSwKKyAgICAgICAgdGhpcywKKyAgICAg
ICAgInJlcXVpcmUtZXhwb3NlZCIsCisgICAgICAgIG1lc3NhZ2UsCisgICAgICAgIHsKKyAgICAg
ICAgICBhdXRvZml4OiAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9f
LmF1dG9maXhBZGRFeHBvc2VkV2luZG93KSh0aGlzKSwKKyAgICAgICAgfQorICAgICAgKTsKICAg
ICB9CiAgICAgeWllbGQqIHN1cGVyLnZhbGlkYXRlKGRlZnMpOwogICB9CkBAIC0yNzM2LDExICsz
NDEyLDEyIEBAIGZvciBtb3JlIGluZm9ybWF0aW9uLmA7CiAKIC8qKiovIH0pLAogLyogMjkgKi8K
LS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19y
ZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18s
IF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBz
dHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyog
aGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBh
Y2tfZXhwb3J0c19fLCAiQ2FsbGJhY2tJbnRlcmZhY2UiLCBmdW5jdGlvbigpIHsgcmV0dXJuIENh
bGxiYWNrSW50ZXJmYWNlOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1
aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJD
YWxsYmFja0ludGVyZmFjZSI6ICgpID0+ICgvKiBiaW5kaW5nICovIENhbGxiYWNrSW50ZXJmYWNl
KQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Nv
bnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVp
cmVfXygyMCk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX29wZXJhdGlvbl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMyk7CiAvKiBoYXJt
b255IGltcG9ydCAqLyB2YXIgX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8y
X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIxKTsKQEAgLTI3NTAsNyArMzQyNyw3IEBAIF9fd2Vi
cGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAogCiAKLWNsYXNzIENhbGxi
YWNrSW50ZXJmYWNlIGV4dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fWyJDb250YWluZXIiXSB7CitjbGFzcyBDYWxsYmFja0ludGVyZmFjZSBleHRlbmRzIF9j
b250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5Db250YWluZXIgewogICAv
KioKICAgICogQHBhcmFtIHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5p
c2VyCiAgICAqLwpAQCAtMjc2MCwxNCArMzQzNywxOCBAQCBjbGFzcyBDYWxsYmFja0ludGVyZmFj
ZSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29u
dAogICAgIGlmICghdG9rZW5zLmJhc2UpIHsKICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgcmV0
dXJuIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVy
Il0ucGFyc2UodG9rZW5pc2VyLCBuZXcgQ2FsbGJhY2tJbnRlcmZhY2UoeyBzb3VyY2U6IHRva2Vu
aXNlci5zb3VyY2UsIHRva2VucyB9KSwgewotICAgICAgdHlwZTogImNhbGxiYWNrIGludGVyZmFj
ZSIsCi0gICAgICBpbmhlcml0YWJsZTogIXBhcnRpYWwsCi0gICAgICBhbGxvd2VkTWVtYmVyczog
WwotICAgICAgICBbX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkNv
bnN0YW50Il0ucGFyc2VdLAotICAgICAgICBbX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMV9fWyJPcGVyYXRpb24iXS5wYXJzZSwgeyByZWd1bGFyOiB0cnVlIH1dCi0gICAg
ICBdCi0gICAgfSk7CisgICAgcmV0dXJuIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfXy5Db250YWluZXIucGFyc2UoCisgICAgICB0b2tlbmlzZXIsCisgICAgICBuZXcg
Q2FsbGJhY2tJbnRlcmZhY2UoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSwK
KyAgICAgIHsKKyAgICAgICAgdHlwZTogImNhbGxiYWNrIGludGVyZmFjZSIsCisgICAgICAgIGlu
aGVyaXRhYmxlOiAhcGFydGlhbCwKKyAgICAgICAgYWxsb3dlZE1lbWJlcnM6IFsKKyAgICAgICAg
ICBbX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQ29uc3RhbnQucGFy
c2VdLAorICAgICAgICAgIFtfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X18uT3BlcmF0aW9uLnBhcnNlLCB7IHJlZ3VsYXI6IHRydWUgfV0sCisgICAgICAgIF0sCisgICAg
ICB9CisgICAgKTsKICAgfQogCiAgIGdldCB0eXBlKCkgewpAQCAtMjc3OCwxOSArMzQ1OSwxOSBA
QCBjbGFzcyBDYWxsYmFja0ludGVyZmFjZSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfX1siQ29udAogCiAvKioqLyB9KSwKIC8qIDMwICovCi0vKioqLyAo
ZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9f
KSB7CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBh
Y2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsK
IF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkg
ZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9y
dHNfXywgIndyaXRlIiwgZnVuY3Rpb24oKSB7IHJldHVybiB3cml0ZTsgfSk7Ci0KLQorLyogaGFy
bW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18s
IHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIldyaXRlciI6ICgpID0+ICgvKiBiaW5kaW5nICov
IFdyaXRlciksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJ3cml0ZSI6ICgpID0+ICgvKiBiaW5k
aW5nICovIHdyaXRlKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiBmdW5jdGlvbiBub29wKGFy
ZykgewogICByZXR1cm4gYXJnOwogfQogCiBjb25zdCB0ZW1wbGF0ZXMgPSB7Ci0gIHdyYXA6IGl0
ZW1zID0+IGl0ZW1zLmpvaW4oIiIpLAorICB3cmFwOiAoaXRlbXMpID0+IGl0ZW1zLmpvaW4oIiIp
LAogICB0cml2aWE6IG5vb3AsCiAgIG5hbWU6IG5vb3AsCiAgIHJlZmVyZW5jZTogbm9vcCwKQEAg
LTI4MDAsMzM1ICszNDgxLDc0IEBAIGNvbnN0IHRlbXBsYXRlcyA9IHsKICAgaW5oZXJpdGFuY2U6
IG5vb3AsCiAgIGRlZmluaXRpb246IG5vb3AsCiAgIGV4dGVuZGVkQXR0cmlidXRlOiBub29wLAot
ICBleHRlbmRlZEF0dHJpYnV0ZVJlZmVyZW5jZTogbm9vcAorICBleHRlbmRlZEF0dHJpYnV0ZVJl
ZmVyZW5jZTogbm9vcCwKIH07CiAKLWZ1bmN0aW9uIHdyaXRlKGFzdCwgeyB0ZW1wbGF0ZXM6IHRz
ID0gdGVtcGxhdGVzIH0gPSB7fSkgewotICB0cyA9IE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRl
cywgdHMpOworY2xhc3MgV3JpdGVyIHsKKyAgY29uc3RydWN0b3IodHMpIHsKKyAgICB0aGlzLnRz
ID0gT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGVzLCB0cyk7CisgIH0KIAotICBmdW5jdGlvbiBy
ZWZlcmVuY2UocmF3LCB7IHVuZXNjYXBlZCwgY29udGV4dCB9KSB7CisgIHJlZmVyZW5jZShyYXcs
IHsgdW5lc2NhcGVkLCBjb250ZXh0IH0pIHsKICAgICBpZiAoIXVuZXNjYXBlZCkgewogICAgICAg
dW5lc2NhcGVkID0gcmF3LnN0YXJ0c1dpdGgoIl8iKSA/IHJhdy5zbGljZSgxKSA6IHJhdzsKICAg
ICB9Ci0gICAgcmV0dXJuIHRzLnJlZmVyZW5jZShyYXcsIHVuZXNjYXBlZCwgY29udGV4dCk7Cisg
ICAgcmV0dXJuIHRoaXMudHMucmVmZXJlbmNlKHJhdywgdW5lc2NhcGVkLCBjb250ZXh0KTsKICAg
fQogCi0gIGZ1bmN0aW9uIHRva2VuKHQsIHdyYXBwZXIgPSBub29wLCAuLi5hcmdzKSB7CisgIHRv
a2VuKHQsIHdyYXBwZXIgPSBub29wLCAuLi5hcmdzKSB7CiAgICAgaWYgKCF0KSB7CiAgICAgICBy
ZXR1cm4gIiI7CiAgICAgfQogICAgIGNvbnN0IHZhbHVlID0gd3JhcHBlcih0LnZhbHVlLCAuLi5h
cmdzKTsKLSAgICByZXR1cm4gdHMud3JhcChbdHMudHJpdmlhKHQudHJpdmlhKSwgdmFsdWVdKTsK
KyAgICByZXR1cm4gdGhpcy50cy53cmFwKFt0aGlzLnRzLnRyaXZpYSh0LnRyaXZpYSksIHZhbHVl
XSk7CiAgIH0KIAotICBmdW5jdGlvbiByZWZlcmVuY2VfdG9rZW4odCwgY29udGV4dCkgewotICAg
IHJldHVybiB0b2tlbih0LCByZWZlcmVuY2UsIHsgY29udGV4dCB9KTsKKyAgcmVmZXJlbmNlX3Rv
a2VuKHQsIGNvbnRleHQpIHsKKyAgICByZXR1cm4gdGhpcy50b2tlbih0LCB0aGlzLnJlZmVyZW5j
ZS5iaW5kKHRoaXMpLCB7IGNvbnRleHQgfSk7CiAgIH0KIAotICBmdW5jdGlvbiBuYW1lX3Rva2Vu
KHQsIGFyZykgewotICAgIHJldHVybiB0b2tlbih0LCB0cy5uYW1lLCBhcmcpOworICBuYW1lX3Rv
a2VuKHQsIGFyZykgeworICAgIHJldHVybiB0aGlzLnRva2VuKHQsIHRoaXMudHMubmFtZSwgYXJn
KTsKICAgfQogCi0gIGZ1bmN0aW9uIHR5cGVfYm9keShpdCkgewotICAgIGlmIChpdC51bmlvbiB8
fCBpdC5nZW5lcmljKSB7Ci0gICAgICByZXR1cm4gdHMud3JhcChbCi0gICAgICAgIHRva2VuKGl0
LnRva2Vucy5iYXNlLCB0cy5nZW5lcmljKSwKLSAgICAgICAgdG9rZW4oaXQudG9rZW5zLm9wZW4p
LAotICAgICAgICAuLi5pdC5zdWJ0eXBlLm1hcCh0eXBlKSwKLSAgICAgICAgdG9rZW4oaXQudG9r
ZW5zLmNsb3NlKQotICAgICAgXSk7Ci0gICAgfQotICAgIGNvbnN0IGZpcnN0VG9rZW4gPSBpdC50
b2tlbnMucHJlZml4IHx8IGl0LnRva2Vucy5iYXNlOwotICAgIGNvbnN0IHByZWZpeCA9IGl0LnRv
a2Vucy5wcmVmaXggPyBbCi0gICAgICBpdC50b2tlbnMucHJlZml4LnZhbHVlLAotICAgICAgdHMu
dHJpdmlhKGl0LnRva2Vucy5iYXNlLnRyaXZpYSkKLSAgICBdIDogW107Ci0gICAgY29uc3QgcmVm
ID0gcmVmZXJlbmNlKHRzLndyYXAoWwotICAgICAgLi4ucHJlZml4LAotICAgICAgaXQudG9rZW5z
LmJhc2UudmFsdWUsCi0gICAgICB0b2tlbihpdC50b2tlbnMucG9zdGZpeCkKLSAgICBdKSwgeyB1
bmVzY2FwZWQ6IGl0LmlkbFR5cGUsIGNvbnRleHQ6IGl0IH0pOwotICAgIHJldHVybiB0cy53cmFw
KFt0cy50cml2aWEoZmlyc3RUb2tlbi50cml2aWEpLCByZWZdKTsKLSAgfQotICBmdW5jdGlvbiB0
eXBlKGl0KSB7Ci0gICAgcmV0dXJuIHRzLndyYXAoWwotICAgICAgZXh0ZW5kZWRfYXR0cmlidXRl
cyhpdC5leHRBdHRycyksCi0gICAgICB0eXBlX2JvZHkoaXQpLAotICAgICAgdG9rZW4oaXQudG9r
ZW5zLm51bGxhYmxlKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5zZXBhcmF0b3IpCi0gICAgXSk7
Ci0gIH0KLSAgZnVuY3Rpb24gZGVmYXVsdF8oZGVmKSB7Ci0gICAgaWYgKCFkZWYpIHsKLSAgICAg
IHJldHVybiAiIjsKLSAgICB9Ci0gICAgcmV0dXJuIHRzLndyYXAoWwotICAgICAgdG9rZW4oZGVm
LnRva2Vucy5hc3NpZ24pLAotICAgICAgLi4uZGVmLmV4cHJlc3Npb24ubWFwKHQgPT4gdG9rZW4o
dCkpCi0gICAgXSk7Ci0gIH0KLSAgZnVuY3Rpb24gYXJndW1lbnQoYXJnKSB7Ci0gICAgcmV0dXJu
IHRzLndyYXAoWwotICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhhcmcuZXh0QXR0cnMpLAotICAg
ICAgdG9rZW4oYXJnLnRva2Vucy5vcHRpb25hbCksCi0gICAgICB0cy50eXBlKHR5cGUoYXJnLmlk
bFR5cGUpKSwKLSAgICAgIHRva2VuKGFyZy50b2tlbnMudmFyaWFkaWMpLAotICAgICAgbmFtZV90
b2tlbihhcmcudG9rZW5zLm5hbWUsIHsgZGF0YTogYXJnIH0pLAotICAgICAgZGVmYXVsdF8oYXJn
LmRlZmF1bHQpLAotICAgICAgdG9rZW4oYXJnLnRva2Vucy5zZXBhcmF0b3IpCi0gICAgXSk7Ci0g
IH0KLSAgZnVuY3Rpb24gZXh0ZW5kZWRfYXR0cmlidXRlX2xpc3RpdGVtKHN0cikgewotICAgIHJl
dHVybiB0cy53cmFwKFsKLSAgICAgIHRva2VuKHN0ci50b2tlbnMudmFsdWUpLAotICAgICAgdG9r
ZW4oc3RyLnRva2Vucy5zZXBhcmF0b3IpCi0gICAgXSk7Ci0gIH0KLSAgZnVuY3Rpb24gaWRlbnRp
ZmllcihpZCwgY29udGV4dCkgewotICAgIHJldHVybiB0cy53cmFwKFsKLSAgICAgIHJlZmVyZW5j
ZV90b2tlbihpZC50b2tlbnMudmFsdWUsIGNvbnRleHQpLAotICAgICAgdG9rZW4oaWQudG9rZW5z
LnNlcGFyYXRvcikKLSAgICBdKTsKLSAgfQotICBmdW5jdGlvbiBtYWtlX2V4dF9hdChpdCkgewot
ICAgIGNvbnN0IHsgcmhzVHlwZSB9ID0gaXQucGFyYW1zOwotICAgIHJldHVybiB0cy53cmFwKFsK
LSAgICAgIHRzLnRyaXZpYShpdC50b2tlbnMubmFtZS50cml2aWEpLAotICAgICAgdHMuZXh0ZW5k
ZWRBdHRyaWJ1dGUodHMud3JhcChbCi0gICAgICAgIHRzLmV4dGVuZGVkQXR0cmlidXRlUmVmZXJl
bmNlKGl0Lm5hbWUpLAotICAgICAgICB0b2tlbihpdC5wYXJhbXMudG9rZW5zLmFzc2lnbiksCi0g
ICAgICAgIHJlZmVyZW5jZV90b2tlbihpdC5wYXJhbXMudG9rZW5zLnNlY29uZGFyeU5hbWUsIGl0
KSwKLSAgICAgICAgdG9rZW4oaXQucGFyYW1zLnRva2Vucy5vcGVuKSwKLSAgICAgICAgLi4uIWl0
LnBhcmFtcy5saXN0ID8gW10gOgotICAgICAgICAgIGl0LnBhcmFtcy5saXN0Lm1hcCgKLSAgICAg
ICAgICAgIHJoc1R5cGUgPT09ICJpZGVudGlmaWVyLWxpc3QiID8gaWQgPT4gaWRlbnRpZmllcihp
ZCwgaXQpIDoKLSAgICAgICAgICAgIHJoc1R5cGUgJiYgcmhzVHlwZS5lbmRzV2l0aCgiLWxpc3Qi
KSA/IGV4dGVuZGVkX2F0dHJpYnV0ZV9saXN0aXRlbSA6Ci0gICAgICAgICAgICBhcmd1bWVudAot
ICAgICAgICAgICksCi0gICAgICAgIHRva2VuKGl0LnBhcmFtcy50b2tlbnMuY2xvc2UpCi0gICAg
ICBdKSksCi0gICAgICB0b2tlbihpdC50b2tlbnMuc2VwYXJhdG9yKQotICAgIF0pOwotICB9Ci0g
IGZ1bmN0aW9uIGV4dGVuZGVkX2F0dHJpYnV0ZXMoZWF0cykgewotICAgIGlmICghZWF0cy5sZW5n
dGgpIHJldHVybiAiIjsKLSAgICByZXR1cm4gdHMud3JhcChbCi0gICAgICB0b2tlbihlYXRzLnRv
a2Vucy5vcGVuKSwKLSAgICAgIC4uLmVhdHMubWFwKG1ha2VfZXh0X2F0KSwKLSAgICAgIHRva2Vu
KGVhdHMudG9rZW5zLmNsb3NlKQorICBpZGVudGlmaWVyKGlkLCBjb250ZXh0KSB7CisgICAgcmV0
dXJuIHRoaXMudHMud3JhcChbCisgICAgICB0aGlzLnJlZmVyZW5jZV90b2tlbihpZC50b2tlbnMu
dmFsdWUsIGNvbnRleHQpLAorICAgICAgdGhpcy50b2tlbihpZC50b2tlbnMuc2VwYXJhdG9yKSwK
ICAgICBdKTsKICAgfQorfQogCi0gIGZ1bmN0aW9uIG9wZXJhdGlvbihpdCwgcGFyZW50KSB7Ci0g
ICAgY29uc3QgYm9keSA9IGl0LmlkbFR5cGUgPyBbCi0gICAgICB0cy50eXBlKHR5cGUoaXQuaWRs
VHlwZSkpLAotICAgICAgbmFtZV90b2tlbihpdC50b2tlbnMubmFtZSwgeyBkYXRhOiBpdCwgcGFy
ZW50IH0pLAotICAgICAgdG9rZW4oaXQudG9rZW5zLm9wZW4pLAotICAgICAgdHMud3JhcChpdC5h
cmd1bWVudHMubWFwKGFyZ3VtZW50KSksCi0gICAgICB0b2tlbihpdC50b2tlbnMuY2xvc2UpLAot
ICAgIF0gOiBbXTsKLSAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKLSAgICAgIGV4
dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAotICAgICAgaXQudG9rZW5zLm5hbWUgPyB0
b2tlbihpdC50b2tlbnMuc3BlY2lhbCkgOiB0b2tlbihpdC50b2tlbnMuc3BlY2lhbCwgdHMubmFt
ZWxlc3MsIHsgZGF0YTogaXQsIHBhcmVudCB9KSwKLSAgICAgIC4uLmJvZHksCi0gICAgICB0b2tl
bihpdC50b2tlbnMudGVybWluYXRpb24pCi0gICAgXSksIHsgZGF0YTogaXQsIHBhcmVudCB9KTsK
LSAgfQotCi0gIGZ1bmN0aW9uIGF0dHJpYnV0ZShpdCwgcGFyZW50KSB7Ci0gICAgcmV0dXJuIHRz
LmRlZmluaXRpb24odHMud3JhcChbCi0gICAgICBleHRlbmRlZF9hdHRyaWJ1dGVzKGl0LmV4dEF0
dHJzKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5zcGVjaWFsKSwKLSAgICAgIHRva2VuKGl0LnRv
a2Vucy5yZWFkb25seSksCi0gICAgICB0b2tlbihpdC50b2tlbnMuYmFzZSksCi0gICAgICB0cy50
eXBlKHR5cGUoaXQuaWRsVHlwZSkpLAotICAgICAgbmFtZV90b2tlbihpdC50b2tlbnMubmFtZSwg
eyBkYXRhOiBpdCwgcGFyZW50IH0pLAotICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9u
KQotICAgIF0pLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSk7Ci0gIH0KLQotICBmdW5jdGlvbiBjb25z
dHJ1Y3RvcihpdCwgcGFyZW50KSB7Ci0gICAgcmV0dXJuIHRzLmRlZmluaXRpb24odHMud3JhcChb
Ci0gICAgICBleHRlbmRlZF9hdHRyaWJ1dGVzKGl0LmV4dEF0dHJzKSwKLSAgICAgIHRva2VuKGl0
LnRva2Vucy5iYXNlLCB0cy5uYW1lbGVzcywgeyBkYXRhOiBpdCwgcGFyZW50IH0pLAotICAgICAg
dG9rZW4oaXQudG9rZW5zLm9wZW4pLAotICAgICAgdHMud3JhcChpdC5hcmd1bWVudHMubWFwKGFy
Z3VtZW50KSksCi0gICAgICB0b2tlbihpdC50b2tlbnMuY2xvc2UpLAotICAgICAgdG9rZW4oaXQu
dG9rZW5zLnRlcm1pbmF0aW9uKQotICAgIF0pLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSk7Ci0gIH0K
LQotICBmdW5jdGlvbiBpbmhlcml0YW5jZShpbmgpIHsKLSAgICBpZiAoIWluaC50b2tlbnMuaW5o
ZXJpdGFuY2UpIHsKLSAgICAgIHJldHVybiAiIjsKLSAgICB9Ci0gICAgcmV0dXJuIHRzLndyYXAo
WwotICAgICAgdG9rZW4oaW5oLnRva2Vucy5jb2xvbiksCi0gICAgICB0cy50cml2aWEoaW5oLnRv
a2Vucy5pbmhlcml0YW5jZS50cml2aWEpLAotICAgICAgdHMuaW5oZXJpdGFuY2UocmVmZXJlbmNl
KGluaC50b2tlbnMuaW5oZXJpdGFuY2UudmFsdWUsIHsgY29udGV4dDogaW5oIH0pKQotICAgIF0p
OwotICB9CitmdW5jdGlvbiB3cml0ZShhc3QsIHsgdGVtcGxhdGVzOiB0cyA9IHRlbXBsYXRlcyB9
ID0ge30pIHsKKyAgdHMgPSBPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZXMsIHRzKTsKIAotICBm
dW5jdGlvbiBjb250YWluZXIoaXQpIHsKLSAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFw
KFsKLSAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAotICAgICAgdG9rZW4o
aXQudG9rZW5zLmNhbGxiYWNrKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5wYXJ0aWFsKSwKLSAg
ICAgIHRva2VuKGl0LnRva2Vucy5iYXNlKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5taXhpbiks
Ci0gICAgICBuYW1lX3Rva2VuKGl0LnRva2Vucy5uYW1lLCB7IGRhdGE6IGl0IH0pLAotICAgICAg
aW5oZXJpdGFuY2UoaXQpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLm9wZW4pLAotICAgICAgaXRl
cmF0ZShpdC5tZW1iZXJzLCBpdCksCi0gICAgICB0b2tlbihpdC50b2tlbnMuY2xvc2UpLAotICAg
ICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQotICAgIF0pLCB7IGRhdGE6IGl0IH0pOwot
ICB9Ci0KLSAgZnVuY3Rpb24gZmllbGQoaXQsIHBhcmVudCkgewotICAgIHJldHVybiB0cy5kZWZp
bml0aW9uKHRzLndyYXAoWwotICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyks
Ci0gICAgICB0b2tlbihpdC50b2tlbnMucmVxdWlyZWQpLAotICAgICAgdHMudHlwZSh0eXBlKGl0
LmlkbFR5cGUpKSwKLSAgICAgIG5hbWVfdG9rZW4oaXQudG9rZW5zLm5hbWUsIHsgZGF0YTogaXQs
IHBhcmVudCB9KSwKLSAgICAgIGRlZmF1bHRfKGl0LmRlZmF1bHQpLAotICAgICAgdG9rZW4oaXQu
dG9rZW5zLnRlcm1pbmF0aW9uKQotICAgIF0pLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSk7Ci0gIH0K
LSAgZnVuY3Rpb24gY29uc3RfKGl0LCBwYXJlbnQpIHsKLSAgICByZXR1cm4gdHMuZGVmaW5pdGlv
bih0cy53cmFwKFsKLSAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAotICAg
ICAgdG9rZW4oaXQudG9rZW5zLmJhc2UpLAotICAgICAgdHMudHlwZSh0eXBlKGl0LmlkbFR5cGUp
KSwKLSAgICAgIG5hbWVfdG9rZW4oaXQudG9rZW5zLm5hbWUsIHsgZGF0YTogaXQsIHBhcmVudCB9
KSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5hc3NpZ24pLAotICAgICAgdG9rZW4oaXQudG9rZW5z
LnZhbHVlKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy50ZXJtaW5hdGlvbikKLSAgICBdKSwgeyBk
YXRhOiBpdCwgcGFyZW50IH0pOwotICB9Ci0gIGZ1bmN0aW9uIHR5cGVkZWYoaXQpIHsKLSAgICBy
ZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKLSAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMo
aXQuZXh0QXR0cnMpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLmJhc2UpLAotICAgICAgdHMudHlw
ZSh0eXBlKGl0LmlkbFR5cGUpKSwKLSAgICAgIG5hbWVfdG9rZW4oaXQudG9rZW5zLm5hbWUsIHsg
ZGF0YTogaXQgfSksCi0gICAgICB0b2tlbihpdC50b2tlbnMudGVybWluYXRpb24pCi0gICAgXSks
IHsgZGF0YTogaXQgfSk7Ci0gIH0KLSAgZnVuY3Rpb24gaW5jbHVkZXMoaXQpIHsKLSAgICByZXR1
cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKLSAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQu
ZXh0QXR0cnMpLAotICAgICAgcmVmZXJlbmNlX3Rva2VuKGl0LnRva2Vucy50YXJnZXQsIGl0KSwK
LSAgICAgIHRva2VuKGl0LnRva2Vucy5pbmNsdWRlcyksCi0gICAgICByZWZlcmVuY2VfdG9rZW4o
aXQudG9rZW5zLm1peGluLCBpdCksCi0gICAgICB0b2tlbihpdC50b2tlbnMudGVybWluYXRpb24p
Ci0gICAgXSksIHsgZGF0YTogaXQgfSk7Ci0gIH0KLSAgZnVuY3Rpb24gY2FsbGJhY2soaXQpIHsK
LSAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKLSAgICAgIGV4dGVuZGVkX2F0dHJp
YnV0ZXMoaXQuZXh0QXR0cnMpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLmJhc2UpLAotICAgICAg
bmFtZV90b2tlbihpdC50b2tlbnMubmFtZSwgeyBkYXRhOiBpdCB9KSwKLSAgICAgIHRva2VuKGl0
LnRva2Vucy5hc3NpZ24pLAotICAgICAgdHMudHlwZSh0eXBlKGl0LmlkbFR5cGUpKSwKLSAgICAg
IHRva2VuKGl0LnRva2Vucy5vcGVuKSwKLSAgICAgIC4uLml0LmFyZ3VtZW50cy5tYXAoYXJndW1l
bnQpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLmNsb3NlKSwKLSAgICAgIHRva2VuKGl0LnRva2Vu
cy50ZXJtaW5hdGlvbiksCi0gICAgXSksIHsgZGF0YTogaXQgfSk7Ci0gIH0KLSAgZnVuY3Rpb24g
ZW51bV8oaXQpIHsKLSAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKLSAgICAgIGV4
dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLmJh
c2UpLAotICAgICAgbmFtZV90b2tlbihpdC50b2tlbnMubmFtZSwgeyBkYXRhOiBpdCB9KSwKLSAg
ICAgIHRva2VuKGl0LnRva2Vucy5vcGVuKSwKLSAgICAgIGl0ZXJhdGUoaXQudmFsdWVzLCBpdCks
Ci0gICAgICB0b2tlbihpdC50b2tlbnMuY2xvc2UpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLnRl
cm1pbmF0aW9uKQotICAgIF0pLCB7IGRhdGE6IGl0IH0pOwotICB9Ci0gIGZ1bmN0aW9uIGVudW1f
dmFsdWUodiwgcGFyZW50KSB7Ci0gICAgcmV0dXJuIHRzLndyYXAoWwotICAgICAgdHMudHJpdmlh
KHYudG9rZW5zLnZhbHVlLnRyaXZpYSksCi0gICAgICB0cy5kZWZpbml0aW9uKAotICAgICAgICB0
cy53cmFwKFsnIicsIHRzLm5hbWUodi52YWx1ZSwgeyBkYXRhOiB2LCBwYXJlbnQgfSksICciJ10p
LAotICAgICAgICB7IGRhdGE6IHYsIHBhcmVudCB9Ci0gICAgICApLAotICAgICAgdG9rZW4odi50
b2tlbnMuc2VwYXJhdG9yKQotICAgIF0pOwotICB9Ci0gIGZ1bmN0aW9uIGl0ZXJhYmxlX2xpa2Uo
aXQsIHBhcmVudCkgewotICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWwotICAgICAg
ZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCi0gICAgICB0b2tlbihpdC50b2tlbnMu
cmVhZG9ubHkpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLmFzeW5jKSwKLSAgICAgIHRva2VuKGl0
LnRva2Vucy5iYXNlLCB0cy5nZW5lcmljKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5vcGVuKSwK
LSAgICAgIHRzLndyYXAoaXQuaWRsVHlwZS5tYXAodHlwZSkpLAotICAgICAgdG9rZW4oaXQudG9r
ZW5zLmNsb3NlKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5hcmdzT3BlbiksCi0gICAgICB0cy53
cmFwKGl0LmFyZ3VtZW50cy5tYXAoYXJndW1lbnQpKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5h
cmdzQ2xvc2UpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQotICAgIF0pLCB7
IGRhdGE6IGl0LCBwYXJlbnQgfSk7Ci0gIH0KLSAgZnVuY3Rpb24gZW9mKGl0KSB7Ci0gICAgcmV0
dXJuIHRzLnRyaXZpYShpdC50cml2aWEpOwotICB9Ci0KLSAgY29uc3QgdGFibGUgPSB7Ci0gICAg
aW50ZXJmYWNlOiBjb250YWluZXIsCi0gICAgImludGVyZmFjZSBtaXhpbiI6IGNvbnRhaW5lciwK
LSAgICBuYW1lc3BhY2U6IGNvbnRhaW5lciwKLSAgICBvcGVyYXRpb24sCi0gICAgYXR0cmlidXRl
LAotICAgIGNvbnN0cnVjdG9yLAotICAgIGRpY3Rpb25hcnk6IGNvbnRhaW5lciwKLSAgICBmaWVs
ZCwKLSAgICBjb25zdDogY29uc3RfLAotICAgIHR5cGVkZWYsCi0gICAgaW5jbHVkZXMsCi0gICAg
Y2FsbGJhY2ssCi0gICAgZW51bTogZW51bV8sCi0gICAgImVudW0tdmFsdWUiOiBlbnVtX3ZhbHVl
LAotICAgIGl0ZXJhYmxlOiBpdGVyYWJsZV9saWtlLAotICAgIG1hcGxpa2U6IGl0ZXJhYmxlX2xp
a2UsCi0gICAgc2V0bGlrZTogaXRlcmFibGVfbGlrZSwKLSAgICAiY2FsbGJhY2sgaW50ZXJmYWNl
IjogY29udGFpbmVyLAotICAgIGVvZgotICB9OwotICBmdW5jdGlvbiBkaXNwYXRjaChpdCwgcGFy
ZW50KSB7Ci0gICAgY29uc3QgZGlzcGF0Y2hlciA9IHRhYmxlW2l0LnR5cGVdOwotICAgIGlmICgh
ZGlzcGF0Y2hlcikgewotICAgICAgdGhyb3cgbmV3IEVycm9yKGBUeXBlICIke2l0LnR5cGV9IiBp
cyB1bnN1cHBvcnRlZGApOworICBjb25zdCB3ID0gbmV3IFdyaXRlcih0cyk7CisKKyAgZnVuY3Rp
b24gZGlzcGF0Y2goaXQpIHsKKyAgICBpZiAoaXQudHlwZSA9PT0gImVvZiIpIHsKKyAgICAgIHJl
dHVybiB0cy50cml2aWEoaXQudHJpdmlhKTsKICAgICB9Ci0gICAgcmV0dXJuIHRhYmxlW2l0LnR5
cGVdKGl0LCBwYXJlbnQpOwotICB9Ci0gIGZ1bmN0aW9uIGl0ZXJhdGUodGhpbmdzLCBwYXJlbnQp
IHsKLSAgICBpZiAoIXRoaW5ncykgcmV0dXJuOwotICAgIGNvbnN0IHJlc3VsdHMgPSB0aGluZ3Mu
bWFwKHRoaW5nID0+IGRpc3BhdGNoKHRoaW5nLCBwYXJlbnQpKTsKLSAgICByZXR1cm4gdHMud3Jh
cChyZXN1bHRzKTsKKyAgICByZXR1cm4gaXQud3JpdGUodyk7CiAgIH0KLSAgcmV0dXJuIGl0ZXJh
dGUoYXN0KTsKKyAgcmV0dXJuIHRzLndyYXAoYXN0Lm1hcChkaXNwYXRjaCkpOwogfQogCiAKIC8q
KiovIH0pLAogLyogMzEgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBv
cnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19f
X3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJl
X18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFj
a19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19y
ZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAidmFsaWRhdGUiLCBmdW5jdGlvbigpIHsg
cmV0dXJuIHZhbGlkYXRlOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1
aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJ2
YWxpZGF0ZSI6ICgpID0+ICgvKiBiaW5kaW5nICovIHZhbGlkYXRlKQorLyogaGFybW9ueSBleHBv
cnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Vycm9yX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpOwogCiAKLQotCiBmdW5j
dGlvbiBnZXRNaXhpbk1hcChhbGwsIHVuaXF1ZSkgewogICBjb25zdCBtYXAgPSBuZXcgTWFwKCk7
Ci0gIGNvbnN0IGluY2x1ZGVzID0gYWxsLmZpbHRlcihkZWYgPT4gZGVmLnR5cGUgPT09ICJpbmNs
dWRlcyIpOworICBjb25zdCBpbmNsdWRlcyA9IGFsbC5maWx0ZXIoKGRlZikgPT4gZGVmLnR5cGUg
PT09ICJpbmNsdWRlcyIpOwogICBmb3IgKGNvbnN0IGluY2x1ZGUgb2YgaW5jbHVkZXMpIHsKICAg
ICBjb25zdCBtaXhpbiA9IHVuaXF1ZS5nZXQoaW5jbHVkZS5pbmNsdWRlcyk7CiAgICAgaWYgKCFt
aXhpbikgewpAQCAtMzE3OCw3ICszNTk4LDcgQEAgZnVuY3Rpb24gZ3JvdXBEZWZpbml0aW9ucyhh
bGwpIHsKICAgICBtaXhpbk1hcDogZ2V0TWl4aW5NYXAoYWxsLCB1bmlxdWUpLAogICAgIGNhY2hl
OiB7CiAgICAgICB0eXBlZGVmSW5jbHVkZXNEaWN0aW9uYXJ5OiBuZXcgV2Vha01hcCgpLAotICAg
ICAgZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZDogbmV3IFdlYWtNYXAoKQorICAgICAg
ZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZDogbmV3IFdlYWtNYXAoKSwKICAgICB9LAog
ICB9OwogfQpAQCAtMzE4Niw4ICszNjA2LDEwIEBAIGZ1bmN0aW9uIGdyb3VwRGVmaW5pdGlvbnMo
YWxsKSB7CiBmdW5jdGlvbiogY2hlY2tEdXBsaWNhdGVkTmFtZXMoeyB1bmlxdWUsIGR1cGxpY2F0
ZXMgfSkgewogICBmb3IgKGNvbnN0IGR1cCBvZiBkdXBsaWNhdGVzKSB7CiAgICAgY29uc3QgeyBu
YW1lIH0gPSBkdXA7Ci0gICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgbmFtZSAiJHtuYW1lfSIgb2Yg
dHlwZSAiJHt1bmlxdWUuZ2V0KG5hbWUpLnR5cGV9IiB3YXMgYWxyZWFkeSBzZWVuYDsKLSAgICB5
aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bInZhbGlk
YXRpb25FcnJvciJdKShkdXAudG9rZW5zLm5hbWUsIGR1cCwgIm5vLWR1cGxpY2F0ZSIsIG1lc3Nh
Z2UpOworICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlIG5hbWUgIiR7bmFtZX0iIG9mIHR5cGUgIiR7
CisgICAgICB1bmlxdWUuZ2V0KG5hbWUpLnR5cGUKKyAgICB9IiB3YXMgYWxyZWFkeSBzZWVuYDsK
KyAgICB5aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy52YWxp
ZGF0aW9uRXJyb3IpKGR1cC50b2tlbnMubmFtZSwgZHVwLCAibm8tZHVwbGljYXRlIiwgbWVzc2Fn
ZSk7CiAgIH0KIH0KIApAQCAtMzIxOCw2ICszNjQwLDg1IEBAIGZ1bmN0aW9uIHZhbGlkYXRlKGFz
dCkgewogCiAKIC8qKiovIH0pCi0vKioqKioqLyBdKTsKKy8qKioqKiovIAldKTsKKy8qKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKiovCisvKioqKioqLyAJLy8gVGhlIG1vZHVsZSBjYWNoZQorLyoqKioqKi8gCXZhciBf
X3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTsKKy8qKioqKiovIAkKKy8qKioqKiovIAkvLyBU
aGUgcmVxdWlyZSBmdW5jdGlvbgorLyoqKioqKi8gCWZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJl
X18obW9kdWxlSWQpIHsKKy8qKioqKiovIAkJLy8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hl
CisvKioqKioqLyAJCXZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19b
bW9kdWxlSWRdOworLyoqKioqKi8gCQlpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHsK
Ky8qKioqKiovIAkJCXJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0czsKKy8qKioqKiovIAkJfQor
LyoqKioqKi8gCQkvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNh
Y2hlKQorLyoqKioqKi8gCQl2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21v
ZHVsZUlkXSA9IHsKKy8qKioqKiovIAkJCS8vIG5vIG1vZHVsZS5pZCBuZWVkZWQKKy8qKioqKiov
IAkJCS8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkCisvKioqKioqLyAJCQlleHBvcnRzOiB7fQor
LyoqKioqKi8gCQl9OworLyoqKioqKi8gCQorLyoqKioqKi8gCQkvLyBFeGVjdXRlIHRoZSBtb2R1
bGUgZnVuY3Rpb24KKy8qKioqKiovIAkJX193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9k
dWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7CisvKioqKioqLyAJCisv
KioqKioqLyAJCS8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlCisvKioqKioqLyAJ
CXJldHVybiBtb2R1bGUuZXhwb3J0czsKKy8qKioqKiovIAl9CisvKioqKioqLyAJCisvKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqLworLyoqKioqKi8gCS8qIHdlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkg
Z2V0dGVycyAqLworLyoqKioqKi8gCSgoKSA9PiB7CisvKioqKioqLyAJCS8vIGRlZmluZSBnZXR0
ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHMKKy8qKioqKiovIAkJX193ZWJwYWNrX3Jl
cXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHsKKy8qKioqKiovIAkJCWZvcih2
YXIga2V5IGluIGRlZmluaXRpb24pIHsKKy8qKioqKiovIAkJCQlpZihfX3dlYnBhY2tfcmVxdWly
ZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMs
IGtleSkpIHsKKy8qKioqKiovIAkJCQkJT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtl
eSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTsKKy8qKioqKiov
IAkJCQl9CisvKioqKioqLyAJCQl9CisvKioqKioqLyAJCX07CisvKioqKioqLyAJfSkoKTsKKy8q
KioqKiovIAkKKy8qKioqKiovIAkvKiB3ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hv
cnRoYW5kICovCisvKioqKioqLyAJKCgpID0+IHsKKy8qKioqKiovIAkJX193ZWJwYWNrX3JlcXVp
cmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHku
Y2FsbChvYmosIHByb3ApKQorLyoqKioqKi8gCX0pKCk7CisvKioqKioqLyAJCisvKioqKioqLyAJ
Lyogd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCAqLworLyoqKioqKi8gCSgo
KSA9PiB7CisvKioqKioqLyAJCS8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHMKKy8qKioq
KiovIAkJX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHsKKy8qKioqKiovIAkJ
CWlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykg
eworLyoqKioqKi8gCQkJCU9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9T
dHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pOworLyoqKioqKi8gCQkJfQorLyoqKioqKi8g
CQkJT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTog
dHJ1ZSB9KTsKKy8qKioqKiovIAkJfTsKKy8qKioqKiovIAl9KSgpOworLyoqKioqKi8gCQorLyoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKi8KK3ZhciBfX3dlYnBhY2tfZXhwb3J0c19fID0ge307CisvLyBUaGlzIGVu
dHJ5IG5lZWQgdG8gYmUgd3JhcHBlZCBpbiBhbiBJSUZFIGJlY2F1c2UgaXQgbmVlZCB0byBiZSBp
c29sYXRlZCBhZ2FpbnN0IG90aGVyIG1vZHVsZXMgaW4gdGhlIGNodW5rLgorKCgpID0+IHsKK19f
d2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhw
b3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBo
YXJtb255IGV4cG9ydCAqLyAgICJwYXJzZSI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9s
aWJfd2ViaWRsMl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLnBhcnNlKSwKKy8qIGhh
cm1vbnkgZXhwb3J0ICovICAgIndyaXRlIjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2xp
Yl93cml0ZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy53cml0ZSksCisvKiBoYXJt
b255IGV4cG9ydCAqLyAgICJ2YWxpZGF0ZSI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9s
aWJfdmFsaWRhdG9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udmFsaWRhdGUpLAor
LyogaGFybW9ueSBleHBvcnQgKi8gICAiV2ViSURMUGFyc2VFcnJvciI6ICgpID0+ICgvKiByZWV4
cG9ydCBzYWZlICovIF9saWJfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8z
X18uV2ViSURMUGFyc2VFcnJvcikKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOworLyogaGFybW9u
eSBpbXBvcnQgKi8gdmFyIF9saWJfd2ViaWRsMl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBf
bGliX3dyaXRlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3Jl
cXVpcmVfXygzMCk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2xpYl92YWxpZGF0b3JfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMzEpOwor
LyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9saWJfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpOworCisKKworCisKK30pKCk7
CisKKy8qKioqKiovIAlyZXR1cm4gX193ZWJwYWNrX2V4cG9ydHNfXzsKKy8qKioqKiovIH0pKCkK
KzsKIH0pOwogLy8jIHNvdXJjZU1hcHBpbmdVUkw9d2ViaWRsMi5qcy5tYXAKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3RlZC50eHQKaW5kZXggOTkw
MGMxMDMwYzYwZTZiZTk0MTI3YWEyM2EyNjJkMjJhZmFhMTIzZC4uZGUyNTMyZGRjNTk3MjI1OWQ5
ODM1Y2E3NGRjMTljOWQ0NWI0OTNhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvaWRsaGFybmVzcy5odHRwcy5h
bnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2lkbGhhcm5lc3MuaHR0cHMuYW55LWV4cGVjdGVkLnR4
dApAQCAtMTMsOSArMTMsNiBAQCBQQVNTIFNlcnZpY2VXb3JrZXIgaW5jbHVkZXMgQWJzdHJhY3RX
b3JrZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBHbG9i
YWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5j
bHVkZXMgV2luZG93RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
V2luZG93IGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCi1QQVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vzc2lv
blN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdpbmRvdyBpbmNsdWRlcyBX
aW5kb3dMb2NhbFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlckds
b2JhbFNjb3BlIGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JJRDogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckxhbmd1
YWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQpAQCAtMjQsMTAgKzIxLDEzIEBAIFBBU1MgTmF2
aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvbnRlbnRVdGlsczogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvb2tpZXM6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JQbHVnaW5z
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdh
dG9yQ29uY3VycmVudEhhcmR3YXJlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXaW5k
b3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgV29ya2VyTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvcklEOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yTGFu
Z3VhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlck5hdmlnYXRvciBpbmNs
dWRlcyBOYXZpZ2F0b3JPbkxpbmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtl
ck5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCitQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFn
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xv
Y2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU2VydmljZVdvcmtlciBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQ
QVNTIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgU2VydmljZVdv
cmtlciBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKQEAgLTE3Miw2ICsxNzIsNCBAQCBQQVNTIENhY2hl
U3RvcmFnZSBpbnRlcmZhY2U6IGNhbGxpbmcgZGVsZXRlKERPTVN0cmluZykgb24gY2FjaGVzIHdp
dGggdG9vIGZldyBhcgogUEFTUyBDYWNoZVN0b3JhZ2UgaW50ZXJmYWNlOiBjYWNoZXMgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJrZXlzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFdpbmRv
dyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjYWNoZXMKIFBBU1MgTmF2aWdhdG9yIGludGVyZmFjZTog
YXR0cmlidXRlIHNlcnZpY2VXb3JrZXIKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAotUEFTUyBXb3Jr
ZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9pZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvaWRsaGFybmVzcy5odHRwcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dAppbmRleCBkMWE0YTg1NmYzOTk1MWJhYjI4Y2M3Y2UyY2YxNDBkMzE5MGYzODJjLi44YjI2NDUw
M2Q1NTIyODZiNzdkYTRjMjNmOTM5MzI2N2VkY2U3OGZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9pZGxoYXJu
ZXNzLmh0dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2lkbGhhcm5lc3MuaHR0
cHMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEzLDkgKzEzLDYgQEAgUEFTUyBTZXJ2aWNl
V29ya2VyIGluY2x1ZGVzIEFic3RyYWN0V29ya2VyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQog
UEFTUyBXaW5kb3cgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckds
b2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBXaW5kb3cgaW5jbHVkZXMg
QW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV2lu
ZG93IGluY2x1ZGVzIFdpbmRvd1Nlc3Npb25TdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQotUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93TG9jYWxTdG9yYWdlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtl
ckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5j
bHVkZXMgTmF2aWdhdG9ySUQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRv
ciBpbmNsdWRlcyBOYXZpZ2F0b3JMYW5ndWFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAg
LTI0LDEwICsyMSwxMyBAQCBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb250ZW50
VXRpbHM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBO
YXZpZ2F0b3JDb29raWVzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3Ig
aW5jbHVkZXMgTmF2aWdhdG9yUGx1Z2luczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
TmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvbmN1cnJlbnRIYXJkd2FyZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKK1BBU1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlk
ZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlck5hdmlnYXRvciBpbmNsdWRl
cyBOYXZpZ2F0b3JJRDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV29ya2VyTmF2aWdh
dG9yIGluY2x1ZGVzIE5hdmlnYXRvckxhbmd1YWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQog
UEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yT25MaW5lOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29u
Y3VycmVudEhhcmR3YXJlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXaW5kb3cgaW5j
bHVkZXMgV2luZG93U2Vzc2lvblN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNT
IFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dMb2NhbFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBGQUlMIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJTZXJ2aWNlV29ya2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiU2Vy
dmljZVdvcmtlciIgbWlzc2luZwogRkFJTCBTZXJ2aWNlV29ya2VyIGludGVyZmFjZSBvYmplY3Qg
bGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVy
dHkgIlNlcnZpY2VXb3JrZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJTZXJ2aWNlV29ya2VyIiBtaXNz
aW5nCiBGQUlMIFNlcnZpY2VXb3JrZXIgaW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25f
cHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNlcnZpY2VXb3JrZXIi
IGV4cGVjdGVkIHByb3BlcnR5ICJTZXJ2aWNlV29ya2VyIiBtaXNzaW5nCkBAIC0xNTAsOCArMTUw
LDYgQEAgUEFTUyBDYWNoZVN0b3JhZ2UgaW50ZXJmYWNlOiBjYWxsaW5nIG9wZW4oRE9NU3RyaW5n
KSBvbiBjYWNoZXMgd2l0aCB0b28gZmV3IGFyZ3UKIFBBU1MgQ2FjaGVTdG9yYWdlIGludGVyZmFj
ZTogY2FjaGVzIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGVsZXRlKERPTVN0cmluZykiIHdpdGgg
dGhlIHByb3BlciB0eXBlCiBQQVNTIENhY2hlU3RvcmFnZSBpbnRlcmZhY2U6IGNhbGxpbmcgZGVs
ZXRlKERPTVN0cmluZykgb24gY2FjaGVzIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IKIFBBU1MgQ2FjaGVTdG9yYWdlIGludGVyZmFjZTogY2FjaGVzIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAia2V5cygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQotUEFTUyBXaW5kb3cg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAot
UEFTUyBOYXZpZ2F0b3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIG9iamVjdAogUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBjYWNoZXMKIFBBU1MgV29ya2VyTmF2aWdhdG9yIGludGVyZmFjZTogYXR0cmlidXRlIHNlcnZp
Y2VXb3JrZXIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zdmcvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdmcvaWRsaGFybmVzcy53aW5kb3ct
ZXhwZWN0ZWQudHh0CmluZGV4IDQzZTQ0ZTJmNGM4NmZhMmIyNGNiYjM3MzcwNDlmY2MxYmI0YjU1
NDAuLmZkNzM1MWU4YjVhOGZiNzMyYzBjNTM4ZWM5NWUyNDk2ODgwYzZkN2QgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3ZnL2lkbGhhcm5l
c3Mud2luZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3N2Zy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTMs
NiArMyw4IEBAIFBBU1MgaWRsX3Rlc3Qgc2V0dXAKIFBBU1MgaWRsX3Rlc3QgdmFsaWRhdGlvbgog
UEFTUyBQYXJ0aWFsIGludGVyZmFjZSBEb2N1bWVudDogb3JpZ2luYWwgaW50ZXJmYWNlIGRlZmlu
ZWQKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCitQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFNWR0FFbGVtZW50OiBvcmlnaW5hbCBpbnRlcmZh
Y2UgZGVmaW5lZAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBTVkdBRWxlbWVudDogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnRbMl06IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50WzNdOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBEb2N1bWVudFs0
XTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAgLTEwLDcgKzEyLDYgQEAgUEFTUyBTVkdFbGVt
ZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVy
czogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHRWxlbWVudCBpbmNsdWRlcyBTVkdF
bGVtZW50SW5zdGFuY2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQg
aW5jbHVkZXMgSFRNTE9yU1ZHRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1Mg
U1ZHRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q1NTSW5saW5lU3R5bGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFNWR0dyYXBoaWNzRWxlbWVudCBpbmNsdWRlcyBTVkdUZXN0czogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHU1ZHRWxlbWVudCBpbmNsdWRlcyBTVkdGaXRU
b1ZpZXdCb3g6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR1NWR0VsZW1lbnQgaW5j
bHVkZXMgV2luZG93RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAgLTI3
LDIwICsyOCwyMCBAQCBQQVNTIFNWR1BhdHRlcm5FbGVtZW50IGluY2x1ZGVzIFNWR0ZpdFRvVmll
d0JveDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHUGF0dGVybkVsZW1lbnQgaW5j
bHVkZXMgU1ZHVVJJUmVmZXJlbmNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdT
Y3JpcHRFbGVtZW50IGluY2x1ZGVzIFNWR1VSSVJlZmVyZW5jZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgU1ZHQUVsZW1lbnQgaW5jbHVkZXMgU1ZHVVJJUmVmZXJlbmNlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQotRkFJTCBTVkdBRWxlbWVudCBpbmNsdWRlcyBIVE1MSHlwZXJsaW5r
RWxlbWVudFV0aWxzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSBhc3NlcnRfdHJ1ZTogbWVtYmVy
IGhyZWYgaXMgdW5pcXVlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQQVNTIFNWR1ZpZXdFbGVt
ZW50IGluY2x1ZGVzIFNWR0ZpdFRvVmlld0JveDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BB
U1MgU1ZHRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q1NTSW5saW5lU3R5bGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgQW5pbWF0YWJsZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNo
aWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBD
aGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEVsZW1lbnQgaW5jbHVkZXMg
U2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRl
cyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1
bWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9k
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50
Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBh
dGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudEZy
YWdtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBEb2N1bWVudEZyYWdtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBOb25Eb2N1bWVudFR5
cGVDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVk
ZXMgQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1
ZGVzIFNsb3R0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5j
bHVkZXMgWFBhdGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBT
VkdFbGVtZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBvYmplY3QKIFBBU1MgU1ZHRWxlbWVudCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBT
VkdFbGVtZW50IGludGVyZmFjZSBvYmplY3QgbmFtZQpAQCAtMTYyMCw2ICsxNjIxLDE2IEBAIEZB
SUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaHJlZmxhbmcgYXNzZXJ0X3RydWU6
IFRoZSBwcm90b3R5cGUgb2JqZWN0CiBGQUlMIFNWR0FFbGVtZW50IGludGVyZmFjZTogYXR0cmli
dXRlIHR5cGUgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHBy
b3BlcnR5ICJ0eXBlIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBTVkdBRWxlbWVudCBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSB0ZXh0IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVj
dCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAidGV4dCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZB
SUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVmZXJyZXJQb2xpY3kgYXNzZXJ0
X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJyZWZlcnJl
clBvbGljeSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgU1ZHQUVsZW1lbnQgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgb3JpZ2luIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBt
dXN0IGhhdmUgYSBwcm9wZXJ0eSAib3JpZ2luIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJ
TCBTVkdBRWxlbWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBwcm90b2NvbCBhc3NlcnRfdHJ1ZTog
VGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgInByb3RvY29sIiBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBTVkdBRWxlbWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSB1c2VybmFtZSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEg
cHJvcGVydHkgInVzZXJuYW1lIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBTVkdBRWxl
bWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBwYXNzd29yZCBhc3NlcnRfdHJ1ZTogVGhlIHByb3Rv
dHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgInBhc3N3b3JkIiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQorRkFJTCBTVkdBRWxlbWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBob3N0IGFz
c2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiaG9z
dCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgaG9zdG5hbWUgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3Qg
aGF2ZSBhIHByb3BlcnR5ICJob3N0bmFtZSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwg
U1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcG9ydCBhc3NlcnRfdHJ1ZTogVGhlIHBy
b3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgInBvcnQiIGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCitGQUlMIFNWR0FFbGVtZW50IGludGVyZmFjZTogYXR0cmlidXRlIHBhdGhuYW1l
IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAi
cGF0aG5hbWUiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFNWR0FFbGVtZW50IGludGVy
ZmFjZTogYXR0cmlidXRlIHNlYXJjaCBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3Qg
bXVzdCBoYXZlIGEgcHJvcGVydHkgInNlYXJjaCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZB
SUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaGFzaCBhc3NlcnRfdHJ1ZTogVGhl
IHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgImhhc2giIGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCiBQQVNTIFNWR0FFbGVtZW50IGludGVyZmFjZTogYXR0cmlidXRlIGhyZWYK
IFBBU1MgU1ZHQUVsZW1lbnQgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBvYmplY3RzLmEK
IFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG9iamVjdHMuYQpAQCAtMTYzMiw2ICsxNjQzLDE2IEBA
IEZBSUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBvYmplY3RzLmEgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJocmVmbGFuZyIgd2l0aCB0aGUKIEZBSUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBvYmpl
Y3RzLmEgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0eXBlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBh
c3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJ0eXBlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNo
YWluCiBGQUlMIFNWR0FFbGVtZW50IGludGVyZmFjZTogb2JqZWN0cy5hIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAidGV4dCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9w
ZXJ0eSAidGV4dCIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgogRkFJTCBTVkdBRWxlbWVu
dCBpbnRlcmZhY2U6IG9iamVjdHMuYSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlZmVycmVyUG9s
aWN5IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJyZWZl
cnJlclBvbGljeSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBTVkdBRWxlbWVu
dCBpbnRlcmZhY2U6IG9iamVjdHMuYSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9yaWdpbiIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAib3JpZ2luIiBub3Qg
Zm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFNWR0FFbGVtZW50IGludGVyZmFjZTogb2Jq
ZWN0cy5hIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicHJvdG9jb2wiIHdpdGggdGhlIHByb3BlciB0
eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgInByb3RvY29sIiBub3QgZm91bmQgaW4gcHJv
dG90eXBlIGNoYWluCitGQUlMIFNWR0FFbGVtZW50IGludGVyZmFjZTogb2JqZWN0cy5hIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAidXNlcm5hbWUiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9p
bmhlcml0czogcHJvcGVydHkgInVzZXJuYW1lIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWlu
CitGQUlMIFNWR0FFbGVtZW50IGludGVyZmFjZTogb2JqZWN0cy5hIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAicGFzc3dvcmQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJv
cGVydHkgInBhc3N3b3JkIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFNWR0FF
bGVtZW50IGludGVyZmFjZTogb2JqZWN0cy5hIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaG9zdCIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiaG9zdCIgbm90
IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBTVkdBRWxlbWVudCBpbnRlcmZhY2U6IG9i
amVjdHMuYSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImhvc3RuYW1lIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJob3N0bmFtZSIgbm90IGZvdW5kIGluIHBy
b3RvdHlwZSBjaGFpbgorRkFJTCBTVkdBRWxlbWVudCBpbnRlcmZhY2U6IG9iamVjdHMuYSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInBvcnQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhl
cml0czogcHJvcGVydHkgInBvcnQiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwg
U1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBvYmplY3RzLmEgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJw
YXRobmFtZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAi
cGF0aG5hbWUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgU1ZHQUVsZW1lbnQg
aW50ZXJmYWNlOiBvYmplY3RzLmEgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZWFyY2giIHdpdGgg
dGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgInNlYXJjaCIgbm90IGZv
dW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBTVkdBRWxlbWVudCBpbnRlcmZhY2U6IG9iamVj
dHMuYSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImhhc2giIHdpdGggdGhlIHByb3BlciB0eXBlIGFz
c2VydF9pbmhlcml0czogcHJvcGVydHkgImhhc2giIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hh
aW4KIFBBU1MgU1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBvYmplY3RzLmEgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJocmVmIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBTVkdHcmFwaGljc0VsZW1l
bnQgaW50ZXJmYWNlOiBvYmplY3RzLmEgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0cmFuc2Zvcm0i
IHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFNWR0dyYXBoaWNzRWxlbWVudCBpbnRlcmZhY2U6
IG9iamVjdHMuYSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImdldEJCb3gob3B0aW9uYWwgU1ZHQm91
bmRpbmdCb3hPcHRpb25zKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL2EtZWxlbWVudC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Vy
bC9hLWVsZW1lbnQtZXhwZWN0ZWQudHh0CmluZGV4IGU0YmE1NjI2OWFhMjMyYzk3ZDgyZWU5N2Nm
Y2FjNDc3ZThmMmM1YmUuLjhkMjNmOTAxOWRmNTEzZTdkZGM5YjFiNTAxYjY4NjNjM2RjMTA4OTEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dXJsL2EtZWxlbWVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvYS1lbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMzY2LDcg
KzM2Niw3IEBAIFBBU1MgUGFyc2luZzogPHNjOjphQGV4YW1wbGUubmV0PiBhZ2FpbnN0IDxhYm91
dDpibGFuaz4KIFBBU1MgUGFyc2luZzogPHdvdzolTkJEPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4K
IFBBU1MgUGFyc2luZzogPHdvdzolMUc+IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQYXJz
aW5nOiA8d293Ou+/vz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+Ci1QQVNTIFBhcnNpbmc6IDxodHRw
Oi8vZXhhbXBsZS5jb20vVStkODAw77+9VStkZmZlVStkZmZm77eQ77eP77ev77ew77++77+/P1Ur
ZDgwMO+/vVUrZGZmZVUrZGZmZu+3kO+3j++3r++3sO+/vu+/vz4gYWdhaW5zdCA8YWJvdXQ6Ymxh
bms+CitQQVNTIFBhcnNpbmc6IDxodHRwOi8vZXhhbXBsZS5jb20vVStkODAw8JCfvlUrZGZmZu+3
kO+3j++3r++3sO+/vu+/vz9VK2Q4MDDwkJ++VStkZmZm77eQ77eP77ev77ew77++77+/PiBhZ2Fp
bnN0IDxhYm91dDpibGFuaz4KIFBBU1MgUGFyc2luZzogPGh0dHA6Ly9hPGI+IGFnYWluc3QgPGFi
b3V0OmJsYW5rPgogUEFTUyBQYXJzaW5nOiA8aHR0cDovL2E+Yj4gYWdhaW5zdCA8YWJvdXQ6Ymxh
bms+CiBQQVNTIFBhcnNpbmc6IDxodHRwOi8vYV5iPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJs
L2EtZWxlbWVudC1vcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvYS1lbGVtZW50LW9yaWdpbi1leHBlY3RlZC50eHQKaW5k
ZXggODg3NmZhNThmMDU4YWVjNWNkYTM4OTE5ZDQ5NjcxYWYyOWZjODJlYy4uNzEwZjZkZWUyNDhj
MjVlMTgyMjQwOTNhNzYzNDhmMjQyOTQ1ODJiNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvYS1lbGVtZW50LW9yaWdpbi1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91
cmwvYS1lbGVtZW50LW9yaWdpbi1leHBlY3RlZC50eHQKQEAgLTI2Miw3ICsyNjIsNyBAQCBQQVNT
IFBhcnNpbmcgb3JpZ2luOiA8c2M6OmFAZXhhbXBsZS5uZXQ+IGFnYWluc3QgPGFib3V0OmJsYW5r
PgogUEFTUyBQYXJzaW5nIG9yaWdpbjogPHdvdzolTkJEPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4K
IFBBU1MgUGFyc2luZyBvcmlnaW46IDx3b3c6JTFHPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KIFBB
U1MgUGFyc2luZyBvcmlnaW46IDx3b3c677+/PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KLVBBU1Mg
UGFyc2luZyBvcmlnaW46IDxodHRwOi8vZXhhbXBsZS5jb20vVStkODAw77+9VStkZmZlVStkZmZm
77eQ77eP77ev77ew77++77+/P1UrZDgwMO+/vVUrZGZmZVUrZGZmZu+3kO+3j++3r++3sO+/vu+/
vz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CitQQVNTIFBhcnNpbmcgb3JpZ2luOiA8aHR0cDovL2V4
YW1wbGUuY29tL1UrZDgwMPCQn75VK2RmZmbvt5Dvt4/vt6/vt7Dvv77vv78/VStkODAw8JCfvlUr
ZGZmZu+3kO+3j++3r++3sO+/vu+/vz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQQVNTIFBhcnNp
bmcgb3JpZ2luOiA8aHR0cDovLx8hIiQmJygpKissLS47PV9ge31+Lz4gYWdhaW5zdCA8YWJvdXQ6
Ymxhbms+CiBQQVNTIFBhcnNpbmcgb3JpZ2luOiA8c2M6Ly8fISIkJicoKSorLC0uOz1fYHt9fi8+
IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQYXJzaW5nIG9yaWdpbjogPGZ0cDovLyVlMiU5
OCU4Mz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VybC9hLWVsZW1lbnQtb3JpZ2luLXhodG1sLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dXJsL2EtZWxlbWVudC1vcmlnaW4teGh0bWwtZXhwZWN0ZWQudHh0CmluZGV4IDg4NzZmYTU4ZjA1
OGFlYzVjZGEzODkxOWQ0OTY3MWFmMjlmYzgyZWMuLjcxMGY2ZGVlMjQ4YzI1ZTE4MjI0MDkzYTc2
MzQ4ZjI0Mjk0NTgyYjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdXJsL2EtZWxlbWVudC1vcmlnaW4teGh0bWwtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL2EtZWxl
bWVudC1vcmlnaW4teGh0bWwtZXhwZWN0ZWQudHh0CkBAIC0yNjIsNyArMjYyLDcgQEAgUEFTUyBQ
YXJzaW5nIG9yaWdpbjogPHNjOjphQGV4YW1wbGUubmV0PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4K
IFBBU1MgUGFyc2luZyBvcmlnaW46IDx3b3c6JU5CRD4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQ
QVNTIFBhcnNpbmcgb3JpZ2luOiA8d293OiUxRz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQQVNT
IFBhcnNpbmcgb3JpZ2luOiA8d293Ou+/vz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+Ci1QQVNTIFBh
cnNpbmcgb3JpZ2luOiA8aHR0cDovL2V4YW1wbGUuY29tL1UrZDgwMO+/vVUrZGZmZVUrZGZmZu+3
kO+3j++3r++3sO+/vu+/vz9VK2Q4MDDvv71VK2RmZmVVK2RmZmbvt5Dvt4/vt6/vt7Dvv77vv78+
IGFnYWluc3QgPGFib3V0OmJsYW5rPgorUEFTUyBQYXJzaW5nIG9yaWdpbjogPGh0dHA6Ly9leGFt
cGxlLmNvbS9VK2Q4MDDwkJ++VStkZmZm77eQ77eP77ev77ew77++77+/P1UrZDgwMPCQn75VK2Rm
Zmbvt5Dvt4/vt6/vt7Dvv77vv78+IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQYXJzaW5n
IG9yaWdpbjogPGh0dHA6Ly8fISIkJicoKSorLC0uOz1fYHt9fi8+IGFnYWluc3QgPGFib3V0OmJs
YW5rPgogUEFTUyBQYXJzaW5nIG9yaWdpbjogPHNjOi8vHyEiJCYnKCkqKywtLjs9X2B7fX4vPiBh
Z2FpbnN0IDxhYm91dDpibGFuaz4KIFBBU1MgUGFyc2luZyBvcmlnaW46IDxmdHA6Ly8lZTIlOTgl
ODM+IGFnYWluc3QgPGFib3V0OmJsYW5rPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvYS1lbGVtZW50LXhodG1sLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL2EtZWxl
bWVudC14aHRtbC1leHBlY3RlZC50eHQKaW5kZXggZTRiYTU2MjY5YWEyMzJjOTdkODJlZTk3Y2Zj
YWM0NzdlOGYyYzViZS4uOGQyM2Y5MDE5ZGY1MTNlN2RkYzliMWI1MDFiNjg2M2MzZGMxMDg5MSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91
cmwvYS1lbGVtZW50LXhodG1sLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VybC9hLWVsZW1lbnQteGh0bWwtZXhwZWN0ZWQudHh0
CkBAIC0zNjYsNyArMzY2LDcgQEAgUEFTUyBQYXJzaW5nOiA8c2M6OmFAZXhhbXBsZS5uZXQ+IGFn
YWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQYXJzaW5nOiA8d293OiVOQkQ+IGFnYWluc3QgPGFi
b3V0OmJsYW5rPgogUEFTUyBQYXJzaW5nOiA8d293OiUxRz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+
CiBQQVNTIFBhcnNpbmc6IDx3b3c677+/PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KLVBBU1MgUGFy
c2luZzogPGh0dHA6Ly9leGFtcGxlLmNvbS9VK2Q4MDDvv71VK2RmZmVVK2RmZmbvt5Dvt4/vt6/v
t7Dvv77vv78/VStkODAw77+9VStkZmZlVStkZmZm77eQ77eP77ev77ew77++77+/PiBhZ2FpbnN0
IDxhYm91dDpibGFuaz4KK1BBU1MgUGFyc2luZzogPGh0dHA6Ly9leGFtcGxlLmNvbS9VK2Q4MDDw
kJ++VStkZmZm77eQ77eP77ev77ew77++77+/P1UrZDgwMPCQn75VK2RmZmbvt5Dvt4/vt6/vt7Dv
v77vv78+IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQYXJzaW5nOiA8aHR0cDovL2E8Yj4g
YWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQQVNTIFBhcnNpbmc6IDxodHRwOi8vYT5iPiBhZ2FpbnN0
IDxhYm91dDpibGFuaz4KIFBBU1MgUGFyc2luZzogPGh0dHA6Ly9hXmI+IGFnYWluc3QgPGFib3V0
OmJsYW5rPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy91cmwvdXJsLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL3VybC1jb25zdHJ1Y3Rvci1leHBlY3Rl
ZC50eHQKaW5kZXggMGMyMTIzYjMyNjQ2Y2UxMDY3MzYwYWYxMzM0NjE2ZmI4YTU1NDRlNS4uMGZj
NTNlOTBhMzkyMmM5MDZjMGY3ZjgxOTQ0YTQwNjg2MGU3NmQ3OSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvdXJsLWNvbnN0cnVjdG9y
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3VybC91cmwtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CkBAIC0zNjUsNyArMzY1LDcg
QEAgUEFTUyBQYXJzaW5nOiA8c2M6OmFAZXhhbXBsZS5uZXQ+IGFnYWluc3QgPGFib3V0OmJsYW5r
PgogUEFTUyBQYXJzaW5nOiA8d293OiVOQkQ+IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQ
YXJzaW5nOiA8d293OiUxRz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQQVNTIFBhcnNpbmc6IDx3
b3c677+/PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KLVBBU1MgUGFyc2luZzogPGh0dHA6Ly9leGFt
cGxlLmNvbS9VK2Q4MDDvv71VK2RmZmVVK2RmZmbvt5Dvt4/vt6/vt7Dvv77vv78/VStkODAw77+9
VStkZmZlVStkZmZm77eQ77eP77ev77ew77++77+/PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KK1BB
U1MgUGFyc2luZzogPGh0dHA6Ly9leGFtcGxlLmNvbS9VK2Q4MDDwkJ++VStkZmZm77eQ77eP77ev
77ew77++77+/P1UrZDgwMPCQn75VK2RmZmbvt5Dvt4/vt6/vt7Dvv77vv78+IGFnYWluc3QgPGFi
b3V0OmJsYW5rPgogUEFTUyBQYXJzaW5nOiA8aHR0cDovL2E8Yj4gYWdhaW5zdCA8YWJvdXQ6Ymxh
bms+CiBQQVNTIFBhcnNpbmc6IDxodHRwOi8vYT5iPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KIFBB
U1MgUGFyc2luZzogPGh0dHA6Ly9hXmI+IGFnYWluc3QgPGFib3V0OmJsYW5rPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvdXJsLW9y
aWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3VybC91cmwtb3JpZ2luLWV4cGVjdGVkLnR4dAppbmRleCAwOGEzMzQ4MTJkZmRhYjE2
MGU0ZDc5ODNhMTFkZTM3Zjg5MjIzYjM1Li5jYjliY2VlMTVhZjQ2ZTBlNzQ2Yzc4YmU2YTQyNWJm
OWQ1OGMzNWFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3VybC91cmwtb3JpZ2luLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VybC91cmwtb3JpZ2luLWV4cGVjdGVkLnR4
dApAQCAtMjYxLDcgKzI2MSw3IEBAIFBBU1MgT3JpZ2luIHBhcnNpbmc6IDxzYzo6YUBleGFtcGxl
Lm5ldD4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQQVNTIE9yaWdpbiBwYXJzaW5nOiA8d293OiVO
QkQ+IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBPcmlnaW4gcGFyc2luZzogPHdvdzolMUc+
IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBPcmlnaW4gcGFyc2luZzogPHdvdzrvv78+IGFn
YWluc3QgPGFib3V0OmJsYW5rPgotUEFTUyBPcmlnaW4gcGFyc2luZzogPGh0dHA6Ly9leGFtcGxl
LmNvbS9VK2Q4MDDvv71VK2RmZmVVK2RmZmbvt5Dvt4/vt6/vt7Dvv77vv78/VStkODAw77+9VStk
ZmZlVStkZmZm77eQ77eP77ev77ew77++77+/PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KK1BBU1Mg
T3JpZ2luIHBhcnNpbmc6IDxodHRwOi8vZXhhbXBsZS5jb20vVStkODAw8JCfvlUrZGZmZu+3kO+3
j++3r++3sO+/vu+/vz9VK2Q4MDDwkJ++VStkZmZm77eQ77eP77ev77ew77++77+/PiBhZ2FpbnN0
IDxhYm91dDpibGFuaz4KIFBBU1MgT3JpZ2luIHBhcnNpbmc6IDxodHRwOi8vHyEiJCYnKCkqKywt
Ljs9X2B7fX4vPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KIFBBU1MgT3JpZ2luIHBhcnNpbmc6IDxz
YzovLx8hIiQmJygpKissLS47PV9ge31+Lz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQQVNTIE9y
aWdpbiBwYXJzaW5nOiA8ZnRwOi8vJWUyJTk4JTgzPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
LWFuaW1hdGlvbnMvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9pZGxoYXJuZXNz
LndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggMDliYzFiZThkZWUyNjZhNTQzOWQwODk2Nzc0N2Rj
MzkwOWQzMDJhNS4uMDlhYWQzZTg4NzU2ZWY5ZTI5MmE2Y2RjMzFkMWEwYmMwZjNlOGQ1NiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWIt
YW5pbWF0aW9ucy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9pZGxoYXJu
ZXNzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTgsMTkgKzgsMTkgQEAgUEFTUyBQYXJ0aWFsIGlu
dGVyZmFjZSBtaXhpbiBEb2N1bWVudE9yU2hhZG93Um9vdDogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnRbMl06IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50WzNdOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIEFuaW1hdGFibGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2Rl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudEZyYWdtZW50IGluY2x1ZGVz
IE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1
bWVudCBpbmNsdWRlcyBEb2N1bWVudE9yU2hhZG93Um9vdDogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKK1BBU1MgU2hhZG93Um9vdCBpbmNsdWRlcyBEb2N1bWVudE9yU2hhZG93Um9vdDogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBQYXJl
bnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIFBh
cmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMg
Tm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBF
bGVtZW50IGluY2x1ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
RWxlbWVudCBpbmNsdWRlcyBTbG90dGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNT
IERvY3VtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1bWVudE9yU2hhZG93Um9vdDogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhFdmFs
dWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRl
cyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1
bWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudEZyYWdtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQ
YXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudEZyYWdtZW50
IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFNoYWRv
d1Jvb3QgaW5jbHVkZXMgRG9jdW1lbnRPclNoYWRvd1Jvb3Q6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIEFuaW1hdGlvblRpbWVsaW5lIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgQW5pbWF0aW9uVGltZWxpbmUgaW50ZXJm
YWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgQW5pbWF0aW9uVGltZWxpbmUgaW50ZXJmYWNlIG9iamVj
dCBuYW1lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFy
bmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IDg3ZDI5OGZjMWJmODkwYzJlYTJm
OTc1YzMwNTIwOWY4MjZjYzUxNjIuLjI5NjFjMjY1NjgyYTcxNWViODM1MDViMTFhNGQ2OTM3ZThl
NTFjZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRs
aGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0xMTMzLDUgKzExMzMsNCBAQCBQ
QVNTIEF1ZGlvTm9kZSBpbnRlcmZhY2U6IHdvcmtsZXRfbm9kZSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImNoYW5uZWxDb3VudCIgd2l0aAogUEFTUyBBdWRpb05vZGUgaW50ZXJmYWNlOiB3b3JrbGV0
X25vZGUgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjaGFubmVsQ291bnRNb2RlIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZQogUEFTUyBBdWRpb05vZGUgaW50ZXJmYWNlOiB3b3JrbGV0X25vZGUgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJjaGFubmVsSW50ZXJwcmV0YXRpb24iIHdpdGggdGhlIHByb3BlciB0
eXBlCiBQQVNTIEF1ZGlvV29ya2xldFByb2Nlc3NvciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIFdvcmtsZXRHbG9iYWxTY29wZSBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VieHIvaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci9pZGxoYXJuZXNzLmh0dHBzLndp
bmRvdy1leHBlY3RlZC50eHQKaW5kZXggMDcxNTE5MDVmMTEzNzFlZTgyYzcwZDFjOGQ5OTYwYjY3
OTgwNmUwNi4uYTIyMzc0YjhjYWQ1ZTJmOTNlOWFlODBhNjA2OTM5MmU2ZjNjYzI2ZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci9p
ZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci9pZGxoYXJuZXNzLmh0dHBzLndpbmRv
dy1leHBlY3RlZC50eHQKQEAgLTE2OCw2ICsxNjgsOCBAQCBQQVNTIFhSUG9zZSBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAog
UEFTUyBYUlBvc2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5CiBQQVNTIFhSUG9z
ZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkKIFBBU1MgWFJQb3NlIGludGVyZmFj
ZTogYXR0cmlidXRlIHRyYW5zZm9ybQorRkFJTCBYUlBvc2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
bGluZWFyVmVsb2NpdHkgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2
ZSBhIHByb3BlcnR5ICJsaW5lYXJWZWxvY2l0eSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZB
SUwgWFJQb3NlIGludGVyZmFjZTogYXR0cmlidXRlIGFuZ3VsYXJWZWxvY2l0eSBhc3NlcnRfdHJ1
ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgImFuZ3VsYXJWZWxv
Y2l0eSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIFBBU1MgWFJQb3NlIGludGVyZmFjZTogYXR0
cmlidXRlIGVtdWxhdGVkUG9zaXRpb24KIFBBU1MgWFJWaWV3ZXJQb3NlIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgWFJWaWV3ZXJQ
b3NlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCkBAIC0yMTIsNiArMjE0LDcgQEAgUEFTUyBYUldl
YkdMTGF5ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmoKIFBBU1MgWFJXZWJHTExheWVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxl
cyBwcm9wZXJ0eQogUEFTUyBYUldlYkdMTGF5ZXIgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgYW50aWFs
aWFzCiBQQVNTIFhSV2ViR0xMYXllciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpZ25vcmVEZXB0aFZh
bHVlcworRkFJTCBYUldlYkdMTGF5ZXIgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZml4ZWRGb3ZlYXRp
b24gYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5
ICJmaXhlZEZvdmVhdGlvbiIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIFBBU1MgWFJXZWJHTExh
eWVyIGludGVyZmFjZTogYXR0cmlidXRlIGZyYW1lYnVmZmVyCiBQQVNTIFhSV2ViR0xMYXllciBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBmcmFtZWJ1ZmZlcldpZHRoCiBQQVNTIFhSV2ViR0xMYXllciBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBmcmFtZWJ1ZmZlckhlaWdodApAQCAtMjIxLDYgKzIyNCw3IEBA
IFBBU1MgWFJXZWJHTExheWVyIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgeHJXZWJHTExh
eWVyCiBQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiB4cldlYkdMTGF5ZXIKIFBBU1MgWFJXZWJHTExh
eWVyIGludGVyZmFjZTogeHJXZWJHTExheWVyIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYW50aWFs
aWFzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBYUldlYkdMTGF5ZXIgaW50ZXJmYWNlOiB4
cldlYkdMTGF5ZXIgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJpZ25vcmVEZXB0aFZhbHVlcyIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUKK0ZBSUwgWFJXZWJHTExheWVyIGludGVyZmFjZTogeHJXZWJHTExh
eWVyIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZml4ZWRGb3ZlYXRpb24iIHdpdGggdGhlIHByb3Bl
ciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImZpeGVkRm92ZWF0aW9uIiBub3QgZm91
bmQgaW4gcHJvdG90eXBlIGNoYWluCiBQQVNTIFhSV2ViR0xMYXllciBpbnRlcmZhY2U6IHhyV2Vi
R0xMYXllciBtdXN0IGluaGVyaXQgcHJvcGVydHkgImZyYW1lYnVmZmVyIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZQogUEFTUyBYUldlYkdMTGF5ZXIgaW50ZXJmYWNlOiB4cldlYkdMTGF5ZXIgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJmcmFtZWJ1ZmZlcldpZHRoIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQog
UEFTUyBYUldlYkdMTGF5ZXIgaW50ZXJmYWNlOiB4cldlYkdMTGF5ZXIgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJmcmFtZWJ1ZmZlckhlaWdodCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL2lkbGhh
cm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3hoci9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0
CmluZGV4IDQ4OWNmZjM1MWNmOWQ5ZGI5NDE4OGU5MjMyZTQzMDQ0ZjBiMmZhYjAuLmJjM2Y1NDY2
MTRiNGRlZTAwYzUzMzRmYThlZWM2NTNkMmNiMjJlZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL2lkbGhhcm5lc3MuYW55Lndvcmtl
ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy94aHIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMTU5LDYg
KzE1OSw0IEBAIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBQcm9ncmVzc0V2ZW50KCJ0eXBl
IikKIFBBU1MgUHJvZ3Jlc3NFdmVudCBpbnRlcmZhY2U6IG5ldyBQcm9ncmVzc0V2ZW50KCJ0eXBl
IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJsZW5ndGhDb21wdXRhYmxlIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZQogUEFTUyBQcm9ncmVzc0V2ZW50IGludGVyZmFjZTogbmV3IFByb2dyZXNzRXZlbnQo
InR5cGUiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImxvYWRlZCIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUKIFBBU1MgUHJvZ3Jlc3NFdmVudCBpbnRlcmZhY2U6IG5ldyBQcm9ncmVzc0V2ZW50KCJ0eXBl
IikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0b3RhbCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKLVBB
U1MgTm9kZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
b2JqZWN0Ci1QQVNTIERvY3VtZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5l
c3MuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhw
ZWN0ZWQudHh0CmluZGV4IDNkN2M4MDNjY2MzNjhiMjNmM2IxMGQzNjViZWQ4ZTkyMDRhNzY2ODQu
LmQxZDEzNTI1MGNiZTZjNjQ1OGM1NjE3YTVlMTU5OTJhOTVkN2Y2NjcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2sxL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9k
b20vaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTgyLDE1ICs4MiwxMCBAQCBQQVNT
IFBhcnRpYWwgaW50ZXJmYWNlIG1peGluIERvY3VtZW50T3JTaGFkb3dSb290WzJdOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBVSUV2ZW50OiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRs
ZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1
bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFT
UyBEb2N1bWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRPclNoYWRvd1Jvb3Q6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZh
bHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5j
bHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
SFRNTEVsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENv
bnRlbnRFZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQg
aW5jbHVkZXMgSFRNTE9yU1ZHRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1Mg
SFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0eWxlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBIVE1MTGlua0VsZW1lbnQgaW5jbHVkZXMgTGlua1N0eWxlOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MU3R5bGVFbGVtZW50IGluY2x1ZGVzIExpbmtT
dHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEJvZHlFbGVtZW50IGluY2x1
ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCkBAIC0xMzIs
OSArMTI3LDYgQEAgUEFTUyBFbGVtZW50SW50ZXJuYWxzIGluY2x1ZGVzIEFSSUFNaXhpbjogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFu
ZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5k
b3dFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5j
bHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
LVBBU1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCi1QQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2Fs
U3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV29ya2VyR2xvYmFsU2NvcGUg
aW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvcklEOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yTGFuZ3VhZ2U6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCkBAIC0xNDMsNiArMTM1LDcgQEAgUEFTUyBOYXZpZ2F0b3IgaW5j
bHVkZXMgTmF2aWdhdG9yQ29udGVudFV0aWxzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29va2llczogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvclBsdWdpbnM6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb25jdXJy
ZW50SGFyZHdhcmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdpbmRvdyBpbmNsdWRl
cyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBE
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVy
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3JrZXIgaW5jbHVkZXMgQWJzdHJhY3RX
b3JrZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNoYXJlZFdvcmtlciBpbmNsdWRl
cyBBYnN0cmFjdFdvcmtlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAgLTE1MCwyNyArMTQz
LDMyIEBAIFBBU1MgV29ya2VyTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvcklEOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9y
TGFuZ3VhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlck5hdmlnYXRvciBp
bmNsdWRlcyBOYXZpZ2F0b3JPbkxpbmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdv
cmtlck5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3Rv
cmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRv
d0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEZyYW1lU2V0
RWxlbWVudCBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIEFSSUFNaXhpbjogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQotUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdFbGVtZW50IGluY2x1ZGVzIEdsb2Jh
bEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQg
aW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgU1ZHRWxlbWVudCBpbmNsdWRlcyBTVkdFbGVtZW50SW5zdGFuY2U6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZH
RWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgU1ZHRWxlbWVudCBpbmNsdWRl
cyBFbGVtZW50Q1NTSW5saW5lU3R5bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNW
R0dyYXBoaWNzRWxlbWVudCBpbmNsdWRlcyBTVkdUZXN0czogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgU1ZHU1ZHRWxlbWVudCBpbmNsdWRlcyBTVkdGaXRUb1ZpZXdCb3g6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR1NWR0VsZW1lbnQgaW5jbHVkZXMgV2luZG93RXZlbnRI
YW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHSW1hZ2VFbGVtZW50IGlu
Y2x1ZGVzIFNWR1VSSVJlZmVyZW5jZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZH
U2NyaXB0RWxlbWVudCBpbmNsdWRlcyBTVkdVUklSZWZlcmVuY2U6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCi1QQVNTIFNWR0FFbGVtZW50IGluY2x1ZGVzIFNWR1VSSVJlZmVyZW5jZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKLUZBSUwgU1ZHQUVsZW1lbnQgaW5jbHVkZXMgSFRNTEh5cGVybGlu
a0VsZW1lbnRVdGlsczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgYXNzZXJ0X3RydWU6IG1lbWJl
ciBocmVmIGlzIHVuaXF1ZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBIVE1MRWxlbWVu
dCBpbmNsdWRlcyBFbGVtZW50Q1NTSW5saW5lU3R5bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CitQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0eWxlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50
Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNs
dWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1Mg
RG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1bWVudE9yU2hhZG93Um9vdDogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU2hhZG93Um9vdCBpbmNsdWRlcyBEb2N1bWVudE9yU2hh
ZG93Um9vdDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMg
UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnRGcmFnbWVu
dCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVt
ZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVs
ZW1lbnQgaW5jbHVkZXMgTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBTbG90dGFibGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEFsbENvbGxlY3Rpb24gaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBIVE1MQWxs
Q29sbGVjdGlvbiBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBIVE1MQWxsQ29sbGVjdGlv
biBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ub3RpZmljYXRpb25zL2lk
bGhhcm5lc3MuaHR0cHMuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ub3RpZmljYXRpb25zL2lkbGhh
cm5lc3MuaHR0cHMuYW55LWV4cGVjdGVkLnR4dAppbmRleCA0MWE3MGExYTk1NzczM2ExM2I1YzYz
ZDg3OGJmY2ZkNmEwMzhiODMwLi42YWVlMWNjODFmMmFlZTZhMjFlMWMxN2E5Y2MxZDk0NGRlOGI3
YjljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9pZGxoYXJuZXNzLmh0dHBzLmFueS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL25vdGlmaWNhdGlvbnMvaWRsaGFybmVzcy5odHRwcy5hbnkt
ZXhwZWN0ZWQudHh0CkBAIC02NCw3ICs2NCw0IEBAIFBBU1MgTm90aWZpY2F0aW9uIGludGVyZmFj
ZTogbm90aWZpY2F0aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xvc2UoKSIgd2l0aCB0CiBQ
QVNTIE5vdGlmaWNhdGlvbkV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QKIEZBSUwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRl
cmZhY2U6IG9wZXJhdGlvbiBzaG93Tm90aWZpY2F0aW9uKERPTVN0cmluZywgb3B0aW9uYWwgTm90
aWZpY2F0aW9uT3B0aW9ucykgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiIgZXhwZWN0ZWQgcHJvcGVy
dHkgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24iIG1pc3NpbmcKIEZBSUwgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXROb3RpZmljYXRpb25zKG9wdGlv
bmFsIEdldE5vdGlmaWNhdGlvbk9wdGlvbnMpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9l
cyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24iIGV4cGVj
dGVkIHByb3BlcnR5ICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIiBtaXNzaW5nCi1QQVNTIFNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIEV4dGVuZGFibGVFdmVudCBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIFdvcmtlckds
b2JhbFNjb3BlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBvYmplY3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDkyZjRkODQ5MDk0NjA0OTk1MThkZjNjMWJkZTk4YTA2YWM5ZmVmNjcuLmY5MmI5ZjRjMDFi
MjgxMmY2YjY2YjAzZWRmNGM5YzNkNmNiZTY1NDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9p
ZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaWRsaGFybmVz
cy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTgyLDE1ICs4MiwxMCBAQCBQQVNTIFBhcnRpYWwgaW50
ZXJmYWNlIG1peGluIERvY3VtZW50T3JTaGFkb3dSb290WzJdOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBVSUV2ZW50OiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1l
bnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBp
bmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBB
U1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRPclNoYWRvd1Jvb3Q6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgR2xvYmFs
RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQg
aW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENvbnRlbnRFZGl0YWJs
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgSFRN
TE9yU1ZHRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgSFRNTEVsZW1lbnQg
aW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQog
UEFTUyBIVE1MTGlua0VsZW1lbnQgaW5jbHVkZXMgTGlua1N0eWxlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBIVE1MU3R5bGVFbGVtZW50IGluY2x1ZGVzIExpbmtTdHlsZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEJvZHlFbGVtZW50IGluY2x1ZGVzIFdpbmRvd0V2
ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCkBAIC0xMzIsOSArMTI3LDYgQEAg
UEFTUyBFbGVtZW50SW50ZXJuYWxzIGluY2x1ZGVzIEFSSUFNaXhpbjogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRs
ZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93
T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV2luZG93
IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
Ci1QQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKLVBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgV2lu
ZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2
aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvcklEOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yTGFuZ3VhZ2U6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCkBAIC0xNDMsNiArMTM1LDcgQEAgUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdh
dG9yQ29udGVudFV0aWxzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3Ig
aW5jbHVkZXMgTmF2aWdhdG9yQ29va2llczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
TmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvclBsdWdpbnM6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25G
cmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3JrZXIgaW5jbHVkZXMgQWJzdHJhY3RXb3JrZXI6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNoYXJlZFdvcmtlciBpbmNsdWRlcyBBYnN0cmFjdFdv
cmtlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAgLTE1MCwyNyArMTQzLDMyIEBAIFBBU1Mg
V29ya2VyTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvcklEOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yTGFuZ3VhZ2U6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlck5hdmlnYXRvciBpbmNsdWRlcyBOYXZp
Z2F0b3JPbkxpbmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlck5hdmlnYXRv
ciBpbmNsdWRlcyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCitQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFn
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEZyYW1lU2V0RWxlbWVudCBpbmNs
dWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBF
bGVtZW50IGluY2x1ZGVzIEFSSUFNaXhpbjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1Mg
RWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFT
UyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCi1QQVNTIEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxl
cnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgRG9j
dW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgU1ZHRWxlbWVudCBpbmNsdWRlcyBTVkdFbGVtZW50SW5zdGFuY2U6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZHRWxlbWVudDogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgU1ZHRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q1NT
SW5saW5lU3R5bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0dyYXBoaWNzRWxl
bWVudCBpbmNsdWRlcyBTVkdUZXN0czogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZH
U1ZHRWxlbWVudCBpbmNsdWRlcyBTVkdGaXRUb1ZpZXdCb3g6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIFNWR1NWR0VsZW1lbnQgaW5jbHVkZXMgV2luZG93RXZlbnRIYW5kbGVyczogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHSW1hZ2VFbGVtZW50IGluY2x1ZGVzIFNWR1VS
SVJlZmVyZW5jZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHU2NyaXB0RWxlbWVu
dCBpbmNsdWRlcyBTVkdVUklSZWZlcmVuY2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNT
IFNWR0FFbGVtZW50IGluY2x1ZGVzIFNWR1VSSVJlZmVyZW5jZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKLUZBSUwgU1ZHQUVsZW1lbnQgaW5jbHVkZXMgSFRNTEh5cGVybGlua0VsZW1lbnRVdGls
czogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgYXNzZXJ0X3RydWU6IG1lbWJlciBocmVmIGlzIHVu
aXF1ZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBF
bGVtZW50Q1NTSW5saW5lU3R5bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFNWR0Vs
ZW1lbnQgaW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBOb25FbGVt
ZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnRGcmFn
bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBE
b2N1bWVudCBpbmNsdWRlcyBEb2N1bWVudE9yU2hhZG93Um9vdDogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgU2hhZG93Um9vdCBpbmNsdWRlcyBEb2N1bWVudE9yU2hhZG93Um9vdDogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBQ
YXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVz
IFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVk
ZXMgTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFT
UyBFbGVtZW50IGluY2x1ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BB
U1MgRWxlbWVudCBpbmNsdWRlcyBTbG90dGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQ
QVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgSFRNTEFsbENvbGxlY3Rpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBIVE1MQWxsQ29sbGVjdGlvbiBp
bnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBIVE1MQWxsQ29sbGVjdGlvbiBpbnRlcmZhY2Ug
b2JqZWN0IG5hbWUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432099</attachid>
            <date>2021-06-23 15:52:11 -0700</date>
            <delta_ts>2021-06-23 18:58:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227296-20210623155210.patch</filename>
            <type>text/plain</type>
            <size>502729</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTkzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzA4YmVjZjc5ZjY5NTU0YjNjOTU4
Mjc1ZWZhOGYzOGU2M2FlMTdlYS4uOWQwY2UwZmZhOGVhODBjNjRjYjgyZTY0MTBiYTQ5OWJhMzk3
MmM3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTA2LTIzICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIFdQVCByZXNvdXJjZXMgZnJvbSB1cHN0
cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3
Mjk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20v
aWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDYtMjMgIEZ1amlpIEhpcm9u
b3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBVbnJl
dmlld2VkIHRlc3QgZ2FyZGVuaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBj
ZGY4MzgyOWJkOGM4NDQxMzk0YjI0NGU1N2M5ZTFiMDg4YTQ2ZWY5Li5hMWU3ZWJhNDhiYmIzZDhm
MzQ1MDI3NmZiNTE3ZjljODA3NmU4Yjg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0NSBAQAorMjAyMS0wNi0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIFVwZGF0ZSBXUFQgcmVzb3VyY2VzIGZyb20gdXBzdHJlYW0KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzI5NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvaWRsaGFy
bmVzcy5odHRwcy5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9XZWJDcnlwdG9BUEkvaWRsaGFybmVzcy5odHRwcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kvc2Vj
dXJpdHlwb2xpY3l2aW9sYXRpb24vaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWFuaW1hdGlvbnMvaWRsaGFybmVzcy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udC1s
b2FkaW5nL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXN5bnRheC9pbnB1dC1wcmVwcm9jZXNzaW5nLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9pZGxo
YXJuZXNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvaWRsaGFybmVzcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3NvbS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbXBhcnNpbmcvaWRsaGFybmVz
cy53aW5kb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9ldmVu
dHNvdXJjZS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9p
ZGxoYXJuZXNzLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvaWRsaGFybmVzcy50ZW50YXRpdmUuYW55Lndv
cmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2hyLXRpbWUv
aWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9oci10aW1lL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9uYXZpZ2F0
aW5nLWFjcm9zcy1kb2N1bWVudHMvamF2YXNjcmlwdC11cmwtcmV0dXJuLXZhbHVlLWhhbmRsaW5n
LWR5bmFtaWMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2RvbS9pZGxoYXJuZXNzLndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQt
ZGF0YS9zdHJ1Y3R1cmVkLWNsb25pbmctZXJyb3Itc3RhY2stb3B0aW9uYWwuc3ViLndpbmRvdy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvRE9N
LVBhcnNpbmcuaWRsOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL1NW
Ry5pZGw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvbWVkaWFzZXNz
aW9uLmlkbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9uL2lkbGhh
cm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
bm90aWZpY2F0aW9ucy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL25vdGlmaWNhdGlvbnMvaWRsaGFybmVzcy5odHRwcy5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcG9pbnRl
cmV2ZW50cy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgIFJlYmFzZWxp
bmUgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3Vy
Y2VzLyo6IFVwZGF0ZWQuCisKIDIwMjEtMDYtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXN5bmMgSW5kZXhlZERCIFdQVCB0ZXN0cyBmcm9tIHVwc3RyZWFt
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS1leHBl
Y3RlZC50eHQKaW5kZXggNjE0MDU0ZjkxYjAyYzg3MWIzZjgxMTYwYjdkYjM1YTA3YmU3MDJiNi4u
ZGE0YjBlYjdlYmI1NmE1MGJiNmIwYTVjNzEzMTE2NWI2ZmIwYzlkZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFy
bmVzcy5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dApAQCAt
NywxMCArNywxMCBAQCBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFdpbmRvdzogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhh
bmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2lu
ZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV29y
a2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJv
dmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5k
b3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGlu
Y2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1Mg
V29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSURCUmVxdWVzdCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIElEQlJlcXVlc3QgaW50
ZXJmYWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgSURCUmVxdWVzdCBpbnRlcmZhY2Ugb2JqZWN0IG5h
bWUKQEAgLTE5NSw1ICsxOTUsNCBAQCBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogYXR0
cmlidXRlIG9uYWJvcnQKIFBBU1MgSURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
b25jb21wbGV0ZQogUEFTUyBJREJUcmFuc2FjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmVy
cm9yCiBQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpbmRleGVkREIKLVBBU1MgV29y
a2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIG9iamVjdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA2NTA5M2RhMzAyNTIw
ZDE5YzYzNmEyOWI5YTlmNGY4NTA2NTJjMDc5Li40YjY4YmQ2ZThiY2YyMTk1NWQ3YWE4ZDNmN2U2
ZDI0ZWU3MWVlYThiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTcsMTAgKzcsMTAgQEAg
UEFTUyBQYXJ0aWFsIGludGVyZmFjZSBXaW5kb3c6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIFdpbmRvdyBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93RXZlbnRIYW5kbGVyczogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xv
YmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdvcmtlckdsb2JhbFNjb3Bl
IGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vzc2lvblN0b3Jh
Z2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dM
b2NhbFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdvcmtlckdsb2JhbFNj
b3BlIGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIElEQlJlcXVlc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBJREJSZXF1ZXN0IGludGVyZmFjZSBvYmplY3Qg
bGVuZ3RoCiBQQVNTIElEQlJlcXVlc3QgaW50ZXJmYWNlIG9iamVjdCBuYW1lCkBAIC0xOTQsNiAr
MTk0LDUgQEAgUEFTUyBJREJUcmFuc2FjdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBhYm9ydCgp
CiBQQVNTIElEQlRyYW5zYWN0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG9uYWJvcnQKIFBBU1Mg
SURCVHJhbnNhY3Rpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb25jb21wbGV0ZQogUEFTUyBJREJU
cmFuc2FjdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbmVycm9yCi1QQVNTIFdpbmRvdyBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNT
IFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogYXR0cmlidXRlIGluZGV4ZWREQgogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNy
eXB0b0FQSS9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9pZGxoYXJuZXNzLmh0
dHBzLmFueS1leHBlY3RlZC50eHQKaW5kZXggMWY0YTdlZDhiZTFlMzdkNjQ5NGVhNmJjYjJkMmEw
OTYzODRhZGQ0Zi4uOTk3ODI5ZDIwMjBhMDI1ZDY1MzdiZDlhNDI3MWZiNDQ0N2VmYzZiNCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJD
cnlwdG9BUEkvaWRsaGFybmVzcy5odHRwcy5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2lkbGhhcm5l
c3MuaHR0cHMuYW55LWV4cGVjdGVkLnR4dApAQCAtNywxMCArNywxMCBAQCBQQVNTIFBhcnRpYWwg
aW50ZXJmYWNlIFdpbmRvdzogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGlu
Y2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNT
IFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgV2lu
ZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2lu
ZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMg
V2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
Q3J5cHRvIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QKIFBBU1MgQ3J5cHRvIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCiBQQVNTIENyeXB0byBp
bnRlcmZhY2Ugb2JqZWN0IG5hbWUKQEAgLTc5LDUgKzc5LDQgQEAgUEFTUyBTdWJ0bGVDcnlwdG8g
aW50ZXJmYWNlOiBjYWxsaW5nIHdyYXBLZXkoS2V5Rm9ybWF0LCBDcnlwdG9LZXksIENyeXB0b0tl
eSwgQWwKIFBBU1MgU3VidGxlQ3J5cHRvIGludGVyZmFjZTogY3J5cHRvLnN1YnRsZSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgInVud3JhcEtleShLZXlGb3JtYXQsIEJ1ZmZlclNvdXJjZSwgQ3J5cHRv
S2V5LCBBbGdvcml0aG1JZGVudGlmaWVyLCBBbGdvcml0aG1JZGVudGlmaWVyLCBib29sZWFuLCBz
ZXF1ZW5jZTxLZXlVc2FnZT4pIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBTdWJ0bGVDcnlw
dG8gaW50ZXJmYWNlOiBjYWxsaW5nIHVud3JhcEtleShLZXlGb3JtYXQsIEJ1ZmZlclNvdXJjZSwg
Q3J5cHRvS2V5LCBBbGdvcml0aG1JZGVudGlmaWVyLCBBbGdvcml0aG1JZGVudGlmaWVyLCBib29s
ZWFuLCBzZXF1ZW5jZTxLZXlVc2FnZT4pIG9uIGNyeXB0by5zdWJ0bGUgd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvcgogUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgY3J5cHRvCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvaWRsaGFy
bmVzcy5odHRwcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2lkbGhhcm5lc3MuaHR0cHMuYW55
Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggYWI4NjlhNTIyMjUwZTNmNTA3ZDNlMzc1NGE0NGQx
ZmQyMWVhZmIzOC4uZWY5MTA1ZDFjZGNjYjNmZmJlZDQ0OTkxM2E0N2Y3ZWVjNjkxNjNhNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJD
cnlwdG9BUEkvaWRsaGFybmVzcy5odHRwcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9p
ZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC03LDEwICs3LDEwIEBA
IFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgV2luZG93OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQog
UEFTUyBXaW5kb3cgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckds
b2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXb3JrZXJHbG9iYWxTY29w
ZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd1Nlc3Npb25TdG9y
YWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93
TG9jYWxTdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBXb3JrZXJHbG9iYWxT
Y29wZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBDcnlwdG8gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBDcnlwdG8gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgK
IFBBU1MgQ3J5cHRvIGludGVyZmFjZSBvYmplY3QgbmFtZQpAQCAtNzgsNiArNzgsNSBAQCBQQVNT
IFN1YnRsZUNyeXB0byBpbnRlcmZhY2U6IGNyeXB0by5zdWJ0bGUgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJ3cmFwS2V5KEtleUZvcgogUEFTUyBTdWJ0bGVDcnlwdG8gaW50ZXJmYWNlOiBjYWxsaW5n
IHdyYXBLZXkoS2V5Rm9ybWF0LCBDcnlwdG9LZXksIENyeXB0b0tleSwgQWxnb3JpdGhtSWRlbnRp
Zmllcikgb24gY3J5cHRvLnN1YnRsZSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cg
VHlwZUVycm9yCiBQQVNTIFN1YnRsZUNyeXB0byBpbnRlcmZhY2U6IGNyeXB0by5zdWJ0bGUgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJ1bndyYXBLZXkoS2V5Rm9ybWF0LCBCdWZmZXJTb3VyY2UsIENy
eXB0b0tleSwgQWxnb3JpdGhtSWRlbnRpZmllciwgQWxnb3JpdGhtSWRlbnRpZmllciwgYm9vbGVh
biwgc2VxdWVuY2U8S2V5VXNhZ2U+KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgU3VidGxl
Q3J5cHRvIGludGVyZmFjZTogY2FsbGluZyB1bndyYXBLZXkoS2V5Rm9ybWF0LCBCdWZmZXJTb3Vy
Y2UsIENyeXB0b0tleSwgQWxnb3JpdGhtSWRlbnRpZmllciwgQWxnb3JpdGhtSWRlbnRpZmllciwg
Ym9vbGVhbiwgc2VxdWVuY2U8S2V5VXNhZ2U+KSBvbiBjcnlwdG8uc3VidGxlIHdpdGggdG9vIGZl
dyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IKLVBBU1MgV2luZG93IGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgV29ya2Vy
R2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY3J5cHRvCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2lkbGhhcm5l
c3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0
CmluZGV4IGJjMDA4OTBmN2FiOWRiNzhkY2I5MTQ0ZjIzZjUwZWE3NzM2N2QxYzcuLjY5MDE0N2Ex
ZDQ2Y2Y3YWM5MzQyYTM2MjQxZjdjYTAyYmI2MjU0ODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2lkbGhhcm5lc3MuYW55Lndv
cmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9iZWFjb24vaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAt
MTEsNiArMTEsNSBAQCBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb250ZW50VXRp
bHM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZp
Z2F0b3JDb29raWVzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5j
bHVkZXMgTmF2aWdhdG9yUGx1Z2luczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2
aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvbmN1cnJlbnRIYXJkd2FyZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKLVBBU1MgTmF2aWdhdG9yIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgTmF2aWdhdG9yIGludGVyZmFjZTogbmF2
aWdhdG9yIG11c3Qgbm90IGhhdmUgcHJvcGVydHkgInNlbmRCZWFjb24iCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1zZWN1
cml0eS1wb2xpY3kvc2VjdXJpdHlwb2xpY3l2aW9sYXRpb24vaWRsaGFybmVzcy53aW5kb3ctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
b250ZW50LXNlY3VyaXR5LXBvbGljeS9zZWN1cml0eXBvbGljeXZpb2xhdGlvbi9pZGxoYXJuZXNz
LndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggMWJkZTU2ZGE5YjY0ODVjNjgzZDFmN2I0ZDg3OTkz
MmVkMWFiOTRmNS4uMTY3YjIyY2JhNGUwY2EzNWY5NDg0M2ExNDBjMTViNTJlMzgwMTliYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb250
ZW50LXNlY3VyaXR5LXBvbGljeS9zZWN1cml0eXBvbGljeXZpb2xhdGlvbi9pZGxoYXJuZXNzLndp
bmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBvbGljeS9zZWN1cml0eXBvbGljeXZpb2xhdGlv
bi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTE5LDcgKzE5LDcgQEAgRkFJTCBD
U1BWaW9sYXRpb25SZXBvcnRCb2R5IGludGVyZmFjZTogYXR0cmlidXRlIHN0YXR1c0NvZGUgYXNz
ZXJ0X293bl9wcm9wZXJ0eToKIEZBSUwgQ1NQVmlvbGF0aW9uUmVwb3J0Qm9keSBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBsaW5lTnVtYmVyIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3Qg
aGF2ZSBvd24gcHJvcGVydHkgIkNTUFZpb2xhdGlvblJlcG9ydEJvZHkiIGV4cGVjdGVkIHByb3Bl
cnR5ICJDU1BWaW9sYXRpb25SZXBvcnRCb2R5IiBtaXNzaW5nCiBGQUlMIENTUFZpb2xhdGlvblJl
cG9ydEJvZHkgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY29sdW1uTnVtYmVyIGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIkNTUFZpb2xhdGlvblJlcG9y
dEJvZHkiIGV4cGVjdGVkIHByb3BlcnR5ICJDU1BWaW9sYXRpb25SZXBvcnRCb2R5IiBtaXNzaW5n
CiBQQVNTIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAotUEFTUyBTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCitGQUlMIFNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X2VxdWFsczogd3Jv
bmcgdmFsdWUgZm9yIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQubGVuZ3RoIGV4cGVjdGVk
IDAgYnV0IGdvdCAxCiBQQVNTIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQgaW50ZXJmYWNl
IG9iamVjdCBuYW1lCiBQQVNTIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QK
IFBBU1MgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3Rv
ciIgcHJvcGVydHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1hbmltYXRpb25zL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWFuaW1h
dGlvbnMvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKaW5kZXggZjlhZTc2NTcyNWJkMWE3ZTVlMmM4
ZmJhZjQyZjgyNzA2OTgxZmFiYi4uMmI2MmRkNTRkMDFlMDU4YWM3ZjI1MGNkNjk3MDlhNDIxZWVi
M2RkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWFuaW1hdGlvbnMvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWFuaW1hdGlv
bnMvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKQEAgLTEwLDI0ICsxMCwyNCBAQCBQQVNTIFBhcnRp
YWwgaW50ZXJmYWNlIERvY3VtZW50WzJdOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQ
YXJ0aWFsIGludGVyZmFjZSBXaW5kb3c6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERv
Y3VtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxl
cnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIE5vbkVs
ZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBp
bmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVu
dCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVu
dEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50
IGluY2x1ZGVzIEVsZW1lbnRDb250ZW50RWRpdGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEhUTUxPclNWR0VsZW1lbnQ6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCi1QQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEVsZW1lbnRDU1NJbmxpbmVT
dHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEdsb2Jh
bEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNs
dWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBX
aW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9u
U3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdp
bmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQg
aW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQ
QVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGU6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGROb2RlOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhFdmFsdWF0
b3JCYXNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRl
cyBFbGVtZW50Q1NTSW5saW5lU3R5bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEFu
aW1hdGlvbkV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QKIFBBU1MgQW5pbWF0aW9uRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgK
IFBBU1MgQW5pbWF0aW9uRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBuYW1lCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udC1s
b2FkaW5nL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnQtbG9hZGluZy9pZGxoYXJuZXNz
Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA1OTMwMTc0YmUxMGNiMmFhMjA0MDQ1OWVlMjYyOWQz
MDk3ZjlhMjExLi5lMDYzZTQyNTg4NGViYmUwYmYzODgxYzNhODEzY2NlZDAxZTJiNjljIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtZm9udC1sb2FkaW5nL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250LWxvYWRp
bmcvaWRsaGFybmVzcy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTQsMTIgKzQsMTIgQEAgUEFTUyBp
ZGxfdGVzdCB2YWxpZGF0aW9uCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50OiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBEb2N1bWVudFsyXTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgRm9udEZhY2VT
b3VyY2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdvcmtlckdsb2JhbFNjb3BlIGlu
Y2x1ZGVzIEZvbnRGYWNlU291cmNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1
bWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRs
ZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1
bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFT
UyBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBGb250RmFjZVNvdXJjZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3Jr
ZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRm9udEZhY2UgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFT
UyBGb250RmFjZSBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aApAQCAtOTMsNSArOTMsNCBAQCBQQVNT
IEZvbnRGYWNlU2V0IGludGVyZmFjZTogZG9jdW1lbnQuZm9udHMgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJyZWFkeSIgd2l0aCB0aAogUEFTUyBGb250RmFjZVNldCBpbnRlcmZhY2U6IGRvY3VtZW50
LmZvbnRzIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3RhdHVzIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZQogUEFTUyBEb2N1bWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBmb250cwogUEFTUyBEb2N1bWVu
dCBpbnRlcmZhY2U6IGRvY3VtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZm9udHMiIHdpdGgg
dGhlIHByb3BlciB0eXBlCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXN5bnRheC9p
bnB1dC1wcmVwcm9jZXNzaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zeW50YXgvaW5wdXQtcHJlcHJvY2Vzc2luZy1l
eHBlY3RlZC50eHQKaW5kZXggOWQxYzYyZWQ5ZmU1OGM2NTc4OTk0MGI0NTgxNmEwZjIwMmNmNmU2
My4uZjBlM2FlMjZiYTIzMWFkMTAwODNjNTVlNzI3NmI2ZTBhNjRhMDQyMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXN5bnRh
eC9pbnB1dC1wcmVwcm9jZXNzaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc3ludGF4L2lucHV0LXByZXByb2Nl
c3NpbmctZXhwZWN0ZWQudHh0CkBAIC00LDkgKzQsOSBAQCBQQVNTICJmXDBvbyIgYmVjb21lcyAi
Zu+/vW9vIgogUEFTUyAiXDBmb28iIGJlY29tZXMgIu+/vWZvbyIKIFBBU1MgIlwwIiBiZWNvbWVz
ICLvv70iCiBQQVNTICJcMFwwXDAiIGJlY29tZXMgIu+/ve+/ve+/vSIKLUZBSUwgImZvb1UrZDgw
MCIgYmVjb21lcyAiZm9v77+9IiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZm9vXHVmZmZkIiBi
dXQgZ290ICJmb2/vv70iCi1GQUlMICJmVStkODAwb28iIGJlY29tZXMgImbvv71vbyIgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgImZcdWZmZmRvbyIgYnV0IGdvdCAiZu+/vW9vIgotRkFJTCAiVStk
ODAwZm9vIiBiZWNvbWVzICLvv71mb28iIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJcdWZmZmRm
b28iIGJ1dCBnb3QgIu+/vWZvbyIKLUZBSUwgIlUrZDgwMCIgYmVjb21lcyAi77+9IiBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAiXHVmZmZkIiBidXQgZ290ICLvv70iCi1GQUlMICJVK2Q4MDBVK2Q4
MDBVK2Q4MDAiIGJlY29tZXMgIu+/ve+/ve+/vSIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlx1
ZmZmZFx1ZmZmZFx1ZmZmZCIgYnV0IGdvdCAi77+977+977+9IgorRkFJTCAiZm9vVStkODAwIiBi
ZWNvbWVzICJmb2/vv70iIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJmb29cdWZmZmQiIGJ1dCBn
b3QgImZvb1UrZDgwMCIKK0ZBSUwgImZVK2Q4MDBvbyIgYmVjb21lcyAiZu+/vW9vIiBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAiZlx1ZmZmZG9vIiBidXQgZ290ICJmVStkODAwb28iCitGQUlMICJV
K2Q4MDBmb28iIGJlY29tZXMgIu+/vWZvbyIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlx1ZmZm
ZGZvbyIgYnV0IGdvdCAiVStkODAwZm9vIgorRkFJTCAiVStkODAwIiBiZWNvbWVzICLvv70iIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJcdWZmZmQiIGJ1dCBnb3QgIlUrZDgwMCIKK0ZBSUwgIlUr
ZDgwMFUrZDgwMFUrZDgwMCIgYmVjb21lcyAi77+977+977+9IiBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAiXHVmZmZkXHVmZmZkXHVmZmZkIiBidXQgZ290ICJVK2Q4MDBVK2Q4MDBVK2Q4MDAiCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy10cmFuc2l0aW9ucy9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9pZGxo
YXJuZXNzLWV4cGVjdGVkLnR4dAppbmRleCAwN2EyODNmZTYxNWU5YmQzYmZiMjMwYWUyZGQ5ZWZm
OGUyNDg5OGY1Li40YzA5M2U4MzIwYzU1NDQ2ZmY3ODg5MzQ2OTM1YmMwZGU2MGM5Y2IyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtdHJhbnNpdGlvbnMvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zL2lkbGhh
cm5lc3MtZXhwZWN0ZWQudHh0CkBAIC04LDkgKzgsNiBAQCBQQVNTIFBhcnRpYWwgaW50ZXJmYWNl
IERvY3VtZW50WzJdOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQYXJ0aWFsIGludGVy
ZmFjZSBXaW5kb3c6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGluY2x1
ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERv
Y3VtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnRO
b2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBQYXJl
bnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBY
UGF0aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVt
ZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxl
cnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEVs
ZW1lbnRDb250ZW50RWRpdGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCkBAIC0yMSwxMCAr
MTgsMTMgQEAgUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZy
YW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRl
cyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2lu
ZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
K1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBOb25Eb2N1bWVudFR5cGVD
aGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMg
Q2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVz
IFNsb3R0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVk
ZXMgWFBhdGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBUcmFu
c2l0aW9uRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdAogUEFTUyBUcmFuc2l0aW9uRXZlbnQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgK
IFBBU1MgVHJhbnNpdGlvbkV2ZW50IGludGVyZmFjZSBvYmplY3QgbmFtZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmll
dy9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKaW5k
ZXggZmUxM2U5OTljNDU2NGM0Yzk1NzE0YTgxOWJjYzQ5MTM0NjRmMWZkOC4uZjU1MjdlZjcxMTlj
ODk0ZTdmYTk1ZDE5ZmU3MmQxYmQyNTFlNjMzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9pZGxoYXJuZXNzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0CkBAIC0yOSwyMCArMjks
MTIgQEAgUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBIVE1MSW1hZ2VFbGVtZW50WzJdOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBEb2N1bWVudFs0XTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgV2luZG93WzNdOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBUZXh0IGluY2x1ZGVzIEdlb21ldHJ5VXRpbHM6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFRleHQgaW5jbHVkZXMgU2xvdHRhYmxlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIEdlb21ldHJ5VXRp
bHM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEVsZW1lbnQgaW5jbHVkZXMgUGFyZW50
Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBOb25E
b2N1bWVudFR5cGVDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEVsZW1l
bnQgaW5jbHVkZXMgQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBFbGVt
ZW50IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgQ1NT
UHNldWRvRWxlbWVudCBpbmNsdWRlcyBHZW9tZXRyeVV0aWxzOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBHZW9tZXRyeVV0aWxzOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQorUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q1NTSW5saW5lU3R5
bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGluY2x1ZGVzIEdsb2Jh
bEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGlu
Y2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1
YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEhUTUxFbGVtZW50IGluY2x1
ZGVzIEVsZW1lbnRDU1NJbmxpbmVTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
SFRNTEVsZW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZl
bnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5j
bHVkZXMgRWxlbWVudENvbnRlbnRFZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAg
LTUzLDggKzQ1LDE2IEBAIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFs
U2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBBbmlt
YXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cg
aW5jbHVkZXMgV2luZG93U2Vzc2lvblN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dMb2NhbFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgTm9uRG9jdW1l
bnRUeXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBDaGFyYWN0ZXJE
YXRhIGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIENoYXJhY3RlckRhdGEgaW5jbHVkZXMgQ2hpbGROb2RlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKK1BBU1MgVGV4dCBpbmNsdWRlcyBTbG90dGFibGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTWVkaWFRdWVyeUxpc3QgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBNZWRpYVF1
ZXJ5TGlzdCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBNZWRpYVF1ZXJ5TGlzdCBpbnRl
cmZhY2Ugb2JqZWN0IG5hbWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20vaWRsaGFy
bmVzcy1leHBlY3RlZC50eHQKaW5kZXggYWI5ZDY0YjgxMDNlZTc0YjBiOGE0MTA0MGU5MDVmNjkw
YWQ2MTQ1Zi4uZGZjMDkzNzNjZDk2MDI1ODI2MzRiNTAzYTcyOTYzZjljNzNhMzNhMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20vaWRsaGFybmVzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20vaWRsaGFybmVzcy1leHBlY3RlZC50eHQKQEAg
LTE1LDE2ICsxNSwxNiBAQCBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIEhUTUxTdHlsZUVsZW1lbnQ6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFdpbmRvd1sy
XTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgUHJvY2Vzc2luZ0luc3RydWN0aW9uIGlu
Y2x1ZGVzIExpbmtTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1l
bnQgaW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQotUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVs
ZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBIVE1MRWxl
bWVudCBpbmNsdWRlcyBFbGVtZW50Q29udGVudEVkaXRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQotUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBIVE1MT3JTVkdFbGVtZW50OiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdFbGVtZW50IGluY2x1ZGVzIEVsZW1lbnRDU1NJbmxp
bmVTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHRWxlbWVudCBpbmNsdWRl
cyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdF
bGVtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgU1ZHRWxlbWVudEluc3Rh
bmNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdFbGVtZW50IGluY2x1ZGVzIEhU
TUxPclNWR0VsZW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR1N0eWxlRWxl
bWVudCBpbmNsdWRlcyBMaW5rU3R5bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEhU
TUxFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50
SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEhUTUxFbGVtZW50IGluY2x1
ZGVzIEVsZW1lbnRDb250ZW50RWRpdGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNT
IEhUTUxFbGVtZW50IGluY2x1ZGVzIEhUTUxPclNWR0VsZW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIEhUTUxMaW5rRWxlbWVudCBpbmNsdWRlcyBMaW5rU3R5bGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxTdHlsZUVsZW1lbnQgaW5jbHVkZXMgTGlua1N0eWxl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgR2xvYmFsRXZl
bnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAgLTM0LDE4ICszNCwxOCBAQCBQ
QVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vzc2lvblN0b3JhZ2U6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dMb2NhbFN0
b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGluY2x1ZGVzIE5v
bkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVu
dEZyYWdtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1bWVudE9yU2hhZG93Um9vdDogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgU2hhZG93Um9vdCBpbmNsdWRlcyBEb2N1bWVudE9y
U2hhZG93Um9vdDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVk
ZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5j
bHVkZXMgWFBhdGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBE
b2N1bWVudEZyYWdtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudEZyYWdtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFNoYWRvd1Jvb3QgaW5jbHVkZXMgRG9jdW1l
bnRPclNoYWRvd1Jvb3Q6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5j
bHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBp
bmNsdWRlcyBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
Ci1QQVNTIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQotUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgQ2hhcmFjdGVyRGF0YSBpbmNsdWRlcyBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGROb2Rl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBDaGFyYWN0ZXJEYXRhIGluY2x1ZGVzIENo
aWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBT
bG90dGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVz
IFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTWVkaWFM
aXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmpl
Y3QKIFBBU1MgTWVkaWFMaXN0IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCiBQQVNTIE1lZGlhTGlz
dCBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9p
ZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGViMmQ5YWJkMmIxNTJlMzAw
MDg0ZTcwOGRkZDdjOGJjOWY3NjU3YzkuLmY2ZDE5NGZmZmNhZjFiMWYwMzA2ZTVlYzQyN2FiMTk1
YzMwMzQyYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaWRsaGFybmVzcy5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtNywyMSArNywyMSBAQCBQQVNTIFBhcnRpYWwgaW50
ZXJmYWNlIERvY3VtZW50OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQYXJ0aWFsIGlu
dGVyZmFjZSBEb2N1bWVudFsyXTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgUGFydGlh
bCBpbnRlcmZhY2UgV2luZG93WzJdOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1
bWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRs
ZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1
bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBEb2N1bWVudEZyYWdtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudEZyYWdtZW50IGluY2x1ZGVzIFBhcmVu
dE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgUGFy
ZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBO
b25Eb2N1bWVudFR5cGVDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEVs
ZW1lbnQgaW5jbHVkZXMgQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBF
bGVtZW50IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
Q2hhcmFjdGVyRGF0YSBpbmNsdWRlcyBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCi1QQVNTIENoYXJhY3RlckRhdGEgaW5jbHVkZXMgQ2hpbGROb2RlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudFR5cGUgaW5jbHVkZXMgQ2hpbGRO
b2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIENoaWxk
Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgQ2hhcmFjdGVyRGF0YSBpbmNsdWRl
cyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVk
ZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBUZXh0IGluY2x1ZGVz
IFNsb3R0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVk
ZXMgWFBhdGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBYUGF0
aEV2YWx1YXRvciBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxl
bWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVt
ZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxl
cnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEVs
ZW1lbnRDb250ZW50RWRpdGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCkBAIC0yMDUsNyAr
MjA1LDQgQEAgUEFTUyBYUGF0aEV4cHJlc3Npb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBYUGF0aE5TUmVzb2x2ZXIgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBY
UGF0aEV2YWx1YXRvciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0CiBQQVNTIFhTTFRQcm9jZXNzb3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAotUEFTUyBIVE1MRWxlbWVudCBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIEhU
TUxTbG90RWxlbWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2Ugb2JqZWN0Ci1QQVNTIFdpbmRvdyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2lk
bGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dAppbmRleCA5YjkzN2NjMDU1ZGNkZTI1ZWFlMTE2
YzkzNDlkYzE5ZDk4YjRmMjYzLi41YjQ3MzYzOTljMGI4MGQzZGZmNjJmY2UwM2U4YTQxYzc5NDc1
OTJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaWRsaGFybmVzcy53aW5kb3ctZXhw
ZWN0ZWQudHh0CkBAIC03LDIxICs3LDIxIEBAIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgRG9jdW1l
bnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIERvY3Vt
ZW50WzJdOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBX
aW5kb3dbMl06IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGluY2x1ZGVz
IE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1
bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBE
b2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVu
dEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50RnJh
Z21lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlw
ZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRl
cyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEVsZW1lbnQgaW5jbHVk
ZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBDaGFyYWN0ZXJEYXRh
IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKLVBBU1MgQ2hhcmFjdGVyRGF0YSBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIERvY3VtZW50VHlwZSBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGROb2RlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBDaGFyYWN0ZXJEYXRhIGluY2x1ZGVzIENoaWxkTm9kZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBTbG90dGFibGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFRleHQgaW5jbHVkZXMgU2xvdHRhYmxlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1
YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFhQYXRoRXZhbHVhdG9yIGlu
Y2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1Mg
RG9jdW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5k
bGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMg
R2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVs
ZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENvbnRlbnRF
ZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tcGFyc2luZy9pZGxoYXJuZXNzLndp
bmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbXBhcnNpbmcvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IDUx
YmVjZTE5ZjBlNDNmZjk0M2FjNDNkNDhhMmIwZjA1NDI2ZmQ3ODguLjQ0NDZhNTc1M2Q1ODgxYjQz
YjY2MWFjMzhmNTczZGY5ZjIwMjQzZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tcGFyc2luZy9pZGxoYXJuZXNzLndpbmRvdy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb21wYXJzaW5nL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApAQCAtNiwxMyArNiwx
MyBAQCBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIEVsZW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFJhbmdlOiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVm
aW5lZAogUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBSYW5nZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBJbm5lckhUTUw6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCitQQVNTIFNoYWRvd1Jvb3QgaW5jbHVkZXMgSW5uZXJIVE1MOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQorUEFTUyBEb2N1bWVudEZyYWdtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnRO
b2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudEZyYWdtZW50IGluY2x1
ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5j
bHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBp
bmNsdWRlcyBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKLVBBU1MgU2hhZG93Um9vdCBpbmNsdWRlcyBJbm5lckhUTUw6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCi1QQVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5v
ZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVk
ZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgWE1MU2VyaWFsaXpl
ciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0
CiBQQVNTIFhNTFNlcmlhbGl6ZXIgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgWE1MU2Vy
aWFsaXplciBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzb3VyY2UvaWRsaGFybmVzcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2V2
ZW50c291cmNlL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0CmluZGV4IDJiOTMxZGQzNTI1YmE4Mjlk
YjU3MzZkMjE5ZmExNmUyYjE2Y2I2YjYuLmJhMGJjNDM5ODI3NDUxNTI1ZTYzMGE2ZmU5MGFhZTRm
YTg0MjZlNWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZXZlbnRzb3VyY2UvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHNvdXJjZS9pZGxoYXJu
ZXNzLWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDkgQEAgQ09OU09MRSBNRVNTQUdFOiBFdmVudFNv
dXJjZSBjYW5ub3QgbG9hZCBodHRwOi8vZm9vLyBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2sK
IEV2ZW50U291cmNlIElETCB0ZXN0cwogCiAKLVBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAorRkFJTCBFdmVudFRh
cmdldCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0IGFzc2VydF90aHJvd3NfanM6IGludGVyZmFjZSBvYmplY3QgZGlkbid0IHRocm93IFR5cGVF
cnJvciB3aGVuIGNhbGxlZCBhcyBhIGNvbnN0cnVjdG9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICAgICAgbmV3IGludGVyZmFjZV9vYmplY3QoKTsKKyAgICAgICAgICAgIH0i
IGRpZCBub3QgdGhyb3cKIFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgK
IFBBU1MgRXZlbnRUYXJnZXQgaW50ZXJmYWNlIG9iamVjdCBuYW1lCiBQQVNTIEV2ZW50VGFyZ2V0
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0CkBAIC0xOCw3ICsyMCw3IEBAIFBBU1MgRXZlbnRMaXN0ZW5lciBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iCiBQQVNT
IEV2ZW50TGlzdGVuZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5CiBQQVNTIEV2
ZW50TGlzdGVuZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gaGFuZGxlRXZlbnQoRXZlbnQpCiBQQVNT
IEV2ZW50U291cmNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QKLVBBU1MgRXZlbnRTb3VyY2UgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKK0ZB
SUwgRXZlbnRTb3VyY2UgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X2VxdWFsczogd3Jv
bmcgdmFsdWUgZm9yIEV2ZW50U291cmNlLmxlbmd0aCBleHBlY3RlZCAwIGJ1dCBnb3QgMQogUEFT
UyBFdmVudFNvdXJjZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKIFBBU1MgRXZlbnRTb3VyY2UgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QKIFBBU1MgRXZlbnRTb3VyY2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9pZGxoYXJuZXNzLmFueS1leHBl
Y3RlZC50eHQKaW5kZXggNGRhZTVhNWI3NWY5NjA2ODJhNTQ1YmY2MTRmOWJlNzVlZDQyNDliYi4u
MmVjZDIxNTIwOTljM2QwZDdhNmEyMDgzZDI2MWNkMTEwZDc1ZmY3MCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaWRsaGFy
bmVzcy5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dApAQCAt
OSwxMCArOSwxMCBAQCBQQVNTIFJlc3BvbnNlIGluY2x1ZGVzIEJvZHk6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93RXZlbnRIYW5k
bGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRv
d09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdvcmtl
ckdsb2JhbFNjb3BlIGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3Zp
ZGVyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93
U2Vzc2lvblN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNs
dWRlcyBXaW5kb3dMb2NhbFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdv
cmtlckdsb2JhbFNjb3BlIGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBIZWFkZXJzIGludGVyZmFjZSBv
YmplY3QgbGVuZ3RoCiBQQVNTIEhlYWRlcnMgaW50ZXJmYWNlIG9iamVjdCBuYW1lCkBAIC0xMzcs
NSArMTM3LDQgQEAgUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IG5ldyBSZXNwb25zZSgpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAidGV4dCgpIiB3aXRoIHRoZQogUEFTUyBXaW5kb3cgaW50ZXJmYWNl
OiBvcGVyYXRpb24gZmV0Y2goUmVxdWVzdEluZm8sIG9wdGlvbmFsIFJlcXVlc3RJbml0KQogUEFT
UyBXaW5kb3cgaW50ZXJmYWNlOiB3aW5kb3cgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJmZXRjaChS
ZXF1ZXN0SW5mbywgb3B0aW9uYWwgUmVxdWVzdEluaXQpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQog
UEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBjYWxsaW5nIGZldGNoKFJlcXVlc3RJbmZvLCBvcHRpb25h
bCBSZXF1ZXN0SW5pdCkgb24gd2luZG93IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9pZGxoYXJuZXNz
LmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dAppbmRleCAxYzZmNTUwMjI4NzFhMDJlZjg3MWY1NDkwN2NmNDg4ZjljNTk1NGJhLi5lMmI3NDdj
NmUwNmUyNjhjMDg3MjhkNjAzZmM3NTQwMjNjYmMxZmQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9pZGxoYXJuZXNzLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50
eHQKQEAgLTksMTAgKzksMTAgQEAgUEFTUyBSZXNwb25zZSBpbmNsdWRlcyBCb2R5OiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVy
czogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0V2
ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRl
cyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFT
UyBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJh
bWVQcm92aWRlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVz
IFdpbmRvd1Nlc3Npb25TdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5k
b3cgaW5jbHVkZXMgV2luZG93TG9jYWxTdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQot
UEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3Bl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIZWFkZXJzIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgSGVhZGVycyBpbnRl
cmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBIZWFkZXJzIGludGVyZmFjZSBvYmplY3QgbmFtZQpA
QCAtMTM0LDcgKzEzNCw2IEBAIFBBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBuZXcgUmVzcG9uc2Uo
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImJsb2IoKSIgd2l0aCB0aGUKIFBBU1MgUmVzcG9uc2Ug
aW50ZXJmYWNlOiBuZXcgUmVzcG9uc2UoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImZvcm1EYXRh
KCkiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFJlc3BvbnNlIGludGVyZmFjZTogbmV3IFJl
c3BvbnNlKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJqc29uKCkiIHdpdGggdGhlIHByb3BlciB0
eXBlCiBQQVNTIFJlc3BvbnNlIGludGVyZmFjZTogbmV3IFJlc3BvbnNlKCkgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJ0ZXh0KCkiIHdpdGggdGhlIHByb3BlciB0eXBlCi1QQVNTIFdpbmRvdyBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNT
IFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogb3BlcmF0aW9uIGZldGNoKFJlcXVlc3RJbmZv
LCBvcHRpb25hbCBSZXF1ZXN0SW5pdCkKIFBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNl
OiBzZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZmV0Y2goUmVxdWVzdEluZm8sIG9wdGlvbmFs
IFJlcXVlc3RJbml0KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgV29ya2VyR2xvYmFsU2Nv
cGUgaW50ZXJmYWNlOiBjYWxsaW5nIGZldGNoKFJlcXVlc3RJbmZvLCBvcHRpb25hbCBSZXF1ZXN0
SW5pdCkgb24gc2VsZiB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9y
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2NvcnMtcmZjMTkxOC9pZGxoYXJuZXNzLnRlbnRhdGl2ZS5hbnktZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3Jz
LXJmYzE5MTgvaWRsaGFybmVzcy50ZW50YXRpdmUuYW55LWV4cGVjdGVkLnR4dAppbmRleCBiMjU4
ODllM2NiMDY5YWZlMTI0NjY3M2RlYzdjMWQ4MzU2NWU1ZTU3Li41YzBmMWMwODc1M2QxMjQ3NGZh
YmVjYTFmNGU4MmU5YjNhYmQ0MDU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9pZGxoYXJuZXNzLnRlbnRh
dGl2ZS5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0aXZlLmFu
eS1leHBlY3RlZC50eHQKQEAgLTksMTEgKzksMTAgQEAgUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBE
b2N1bWVudFsyXTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgUGFydGlhbCBpbnRlcmZh
Y2UgRG9jdW1lbnRbM106IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGlu
Y2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNT
IERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnM6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdvcmtlckdsb2JhbFNjb3BlIGluY2x1ZGVzIFdpbmRv
d09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3Vt
ZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGluY2x1ZGVzIFdpbmRvd09y
V29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdvcmtlckds
b2JhbFNjb3BlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBvYmplY3QKIEZBSUwgRG9jdW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgYWRkcmVzc1NwYWNl
IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAi
YWRkcmVzc1NwYWNlIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBEb2N1bWVudCBpbnRl
cmZhY2U6IGRvY3VtZW50IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWRkcmVzc1NwYWNlIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJhZGRyZXNzU3BhY2Ui
IG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvaWRsaGFy
bmVzcy50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9pZGxoYXJuZXNz
LnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA3NDBlYWQwZmFiN2NmNTUw
NjQxMzgyY2IxNzIwNjY2MjM2ZjFhOGMyLi5jM2U0MTU1NzM3ODQ0OGFmNjIyYzEyM2IxZTExMmVi
NjZjMWU2M2RhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9pZGxoYXJuZXNzLnRlbnRhdGl2ZS5hbnkud29y
a2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9pZGxoYXJuZXNzLnRlbnRhdGl2ZS5hbnkud29y
a2VyLWV4cGVjdGVkLnR4dApAQCAtOSwxMiArOSwxMCBAQCBQQVNTIFBhcnRpYWwgaW50ZXJmYWNl
IERvY3VtZW50WzJdOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQYXJ0aWFsIGludGVy
ZmFjZSBEb2N1bWVudFszXTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQg
aW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgV2lu
ZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9j
dW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgV2luZG93
T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIEZBSUwgV29ya2Vy
R2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgYWRkcmVzc1NwYWNlIGFzc2VydF90cnVl
OiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiYWRkcmVzc1NwYWNl
IiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZh
Y2U6IHNlbGYgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhZGRyZXNzU3BhY2UiIHdpdGggdGhlIHBy
b3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImFkZHJlc3NTcGFjZSIgbm90IGZv
dW5kIGluIHByb3RvdHlwZSBjaGFpbgotUEFTUyBOb2RlIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKLVBBU1MgRG9jdW1lbnQgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2hyLXRpbWUv
aWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9oci10aW1lL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dAppbmRl
eCA4ZGVmZWZiMmYwZTc3ZWNmNTE0ZmRkNTM3YzZiNTJjZjA4YWExZTk5Li4xMjZlMDk5NTQ2Y2Nl
NGE2ZDBlY2U2OGJhYzliZDcxZDZhOGY1ZTNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2hyLXRpbWUvaWRsaGFybmVzcy5hbnktZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHItdGltZS9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQKQEAgLTcsMTAgKzcsMTAgQEAgUEFT
UyBQYXJ0aWFsIGludGVyZmFjZSBXaW5kb3c6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNT
IFdpbmRvdyBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93RXZlbnRIYW5kbGVyczogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFs
U2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdvcmtlckdsb2JhbFNjb3BlIGlu
Y2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vzc2lvblN0b3JhZ2U6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dMb2Nh
bFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdvcmtlckdsb2JhbFNjb3Bl
IGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIFBlcmZvcm1hbmNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlIG9iamVjdCBs
ZW5ndGgKIFBBU1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlIG9iamVjdCBuYW1lCkBAIC0yOCw1ICsy
OCw0IEBAIFBBU1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiBwZXJmb3JtYW5jZSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgInRvSlNPTigpIiB3aXRoIHRoCiBQQVNTIFBlcmZvcm1hbmNlIGludGVyZmFj
ZTogZGVmYXVsdCB0b0pTT04gb3BlcmF0aW9uIG9uIHBlcmZvcm1hbmNlCiBQQVNTIFdpbmRvdyBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBwZXJmb3JtYW5jZQogUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBz
ZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicGVyZm9ybWFuY2UiIHdpdGggdGhlIHByb3BlciB0
eXBlCi1QQVNTIFdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9oci10aW1lL2lkbGhhcm5lc3MuYW55Lndvcmtl
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2hyLXRpbWUvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBjYWNi
MjdhZTNiYmU5N2IzNTE5OThiODU2ZTU3MjA0YjhlZGNkMWQ3Li4yZDgyZmM2OWIxYTgyYzYyNzUy
ZWY4NTJmOGViMzE4NzcwZTFiYjRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2hyLXRpbWUvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2hyLXRpbWUvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtNywxMCArNywx
MCBAQCBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFdpbmRvdzogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3Jr
ZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV29ya2VyR2xvYmFs
U2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9u
U3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdp
bmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV29ya2VyR2xv
YmFsU2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2Ug
b2JqZWN0IGxlbmd0aAogUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKQEAg
LTI2LDcgKzI2LDYgQEAgUEFTUyBQZXJmb3JtYW5jZSBpbnRlcmZhY2U6IHBlcmZvcm1hbmNlIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAibm93KCkiIHdpdGggdGhlIHAKIFBBU1MgUGVyZm9ybWFuY2Ug
aW50ZXJmYWNlOiBwZXJmb3JtYW5jZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRpbWVPcmlnaW4i
IHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFBlcmZvcm1hbmNlIGludGVyZmFjZTogcGVyZm9y
bWFuY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0b0pTT04oKSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUKIFBBU1MgUGVyZm9ybWFuY2UgaW50ZXJmYWNlOiBkZWZhdWx0IHRvSlNPTiBvcGVyYXRpb24g
b24gcGVyZm9ybWFuY2UKLVBBU1MgV2luZG93IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgcGVyZm9ybWFuY2UKIFBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJm
YWNlOiBzZWxmIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicGVyZm9ybWFuY2UiIHdpdGggdGhlIHBy
b3BlciB0eXBlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL25hdmlnYXRpbmctYWNy
b3NzLWRvY3VtZW50cy9qYXZhc2NyaXB0LXVybC1yZXR1cm4tdmFsdWUtaGFuZGxpbmctZHluYW1p
Yy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9uYXZpZ2F0aW5nLWFjcm9zcy1kb2N1
bWVudHMvamF2YXNjcmlwdC11cmwtcmV0dXJuLXZhbHVlLWhhbmRsaW5nLWR5bmFtaWMtZXhwZWN0
ZWQudHh0CmluZGV4IDM4MTliMGQ5MDA0ZWYxYjI0NTQ5OWUyYmJjOTczOGNkYTBlMjA2ZmEuLmEy
NjRkNmE1MDFlMzAzZjI3NjgzOGE1YjgxOTZjZDIwZDI4NWEwODAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9icm93
c2luZy10aGUtd2ViL25hdmlnYXRpbmctYWNyb3NzLWRvY3VtZW50cy9qYXZhc2NyaXB0LXVybC1y
ZXR1cm4tdmFsdWUtaGFuZGxpbmctZHluYW1pYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2Jyb3dzaW5n
LXRoZS13ZWIvbmF2aWdhdGluZy1hY3Jvc3MtZG9jdW1lbnRzL2phdmFzY3JpcHQtdXJsLXJldHVy
bi12YWx1ZS1oYW5kbGluZy1keW5hbWljLWV4cGVjdGVkLnR4dApAQCAtOCw1ICs4LDUgQEAgRkFJ
TCBUZXN0IGphdmFzY3JpcHQgVVJMIHN0cmluZyByZXR1cm4gdmFsdWVzIGluIGRpcmVjdCBhbmQg
aW5kaXJlY3QgKHRhcmdldCkgZnIKIEZBSUwgVGVzdCBqYXZhc2NyaXB0IFVSTCBzdHJpbmcgcmV0
dXJuIHZhbHVlcyBpbiBkaXJlY3QgYW5kIGluZGlyZWN0ICh0YXJnZXQpIGZyYW1lIGNvbnRleHRz
LiA2IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICLCgMO/IiBidXQgZ290ICIiCiBGQUlMIFRlc3Qg
amF2YXNjcmlwdCBVUkwgc3RyaW5nIHJldHVybiB2YWx1ZXMgaW4gZGlyZWN0IGFuZCBpbmRpcmVj
dCAodGFyZ2V0KSBmcmFtZSBjb250ZXh0cy4gNyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiwoDD
v8SAIiBidXQgZ290ICIiCiBGQUlMIFRlc3QgamF2YXNjcmlwdCBVUkwgc3RyaW5nIHJldHVybiB2
YWx1ZXMgaW4gZGlyZWN0IGFuZCBpbmRpcmVjdCAodGFyZ2V0KSBmcmFtZSBjb250ZXh0cy4gOCBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi8J+YjSIgYnV0IGdvdCAiIgotRkFJTCBUZXN0IGphdmFz
Y3JpcHQgVVJMIHN0cmluZyByZXR1cm4gdmFsdWVzIGluIGRpcmVjdCBhbmQgaW5kaXJlY3QgKHRh
cmdldCkgZnJhbWUgY29udGV4dHMuIDkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIu+/vUEiIGJ1
dCBnb3QgIiIKK0ZBSUwgVGVzdCBqYXZhc2NyaXB0IFVSTCBzdHJpbmcgcmV0dXJuIHZhbHVlcyBp
biBkaXJlY3QgYW5kIGluZGlyZWN0ICh0YXJnZXQpIGZyYW1lIGNvbnRleHRzLiA5IGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJVK2RlMGRBIiBidXQgZ290ICIiCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaWRsaGFybmVz
cy53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLndvcmtlci1leHBlY3RlZC50eHQKaW5kZXgg
MTliOWI2YTY0Mzk0MGRhMzMzMjg4OWFjNjBhM2FjNmZiOThlMjNkYy4uNmRhNThkMWMzNDE1NzVh
ODAzZDhhYzA5ZDA0NTZiYzg3MGQ0MjQxYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLndvcmtlci1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2RvbS9pZGxoYXJuZXNzLndvcmtlci1leHBlY3RlZC50eHQKQEAgLTc5LDE1ICs3OSwx
MCBAQCBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIFdpbmRvdzogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgUGFydGlhbCBpbnRlcmZhY2UgVUlFdmVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50
RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5j
bHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNT
IERvY3VtZW50IGluY2x1ZGVzIERvY3VtZW50T3JTaGFkb3dSb290OiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2
ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50IGlu
Y2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEVsZW1lbnRDb250ZW50RWRpdGFibGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEhUTUxP
clNWR0VsZW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEhUTUxFbGVtZW50IGlu
Y2x1ZGVzIEVsZW1lbnRDU1NJbmxpbmVTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgSFRNTExpbmtFbGVtZW50IGluY2x1ZGVzIExpbmtTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgSFRNTFN0eWxlRWxlbWVudCBpbmNsdWRlcyBMaW5rU3R5bGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxCb2R5RWxlbWVudCBpbmNsdWRlcyBXaW5kb3dFdmVu
dEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQpAQCAtMTI5LDkgKzEyNCw2IEBAIFBB
U1MgRWxlbWVudEludGVybmFscyBpbmNsdWRlcyBBUklBTWl4aW46IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93RXZlbnRIYW5kbGVy
czogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd09y
V29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdpbmRvdyBp
bmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQot
UEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vzc2lvblN0b3JhZ2U6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCi1QQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dMb2NhbFN0b3JhZ2U6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlckdsb2JhbFNjb3BlIGluY2x1ZGVzIFdpbmRv
d09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmln
YXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JJRDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
TmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckxhbmd1YWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQpAQCAtMTQwLDYgKzEzMiw3IEBAIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRv
ckNvbnRlbnRVdGlsczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGlu
Y2x1ZGVzIE5hdmlnYXRvckNvb2tpZXM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5h
dmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JQbHVnaW5zOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJh
bWVQcm92aWRlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGUgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgV29ya2VyIGluY2x1ZGVzIEFic3RyYWN0V29ya2VyOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTaGFyZWRXb3JrZXIgaW5jbHVkZXMgQWJzdHJhY3RXb3Jr
ZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCkBAIC0xNDcsMTUgKzE0MCwyMiBAQCBQQVNTIFdv
cmtlck5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JJRDogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgV29ya2VyTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckxhbmd1YWdlOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdh
dG9yT25MaW5lOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3JrZXJOYXZpZ2F0b3Ig
aW5jbHVkZXMgTmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQorUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vzc2lvblN0b3JhZ2U6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCitQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dMb2NhbFN0b3JhZ2U6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxGcmFtZVNldEVsZW1lbnQgaW5jbHVk
ZXMgV2luZG93RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxl
bWVudCBpbmNsdWRlcyBBUklBTWl4aW46IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERv
Y3VtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQorUEFTUyBEb2N1bWVudEZyYWdtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2Rl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1bWVu
dE9yU2hhZG93Um9vdDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgU2hhZG93Um9vdCBp
bmNsdWRlcyBEb2N1bWVudE9yU2hhZG93Um9vdDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BB
U1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
K1BBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgTm9uRG9jdW1lbnRUeXBlQ2hpbGRO
b2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIENoaWxk
Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBTbG90
dGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50RnJhZ21lbnQgaW5j
bHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNT
IERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKLVBBU1MgU2hhZG93Um9vdCBpbmNsdWRlcyBEb2N1bWVudE9yU2hhZG93Um9vdDogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhFdmFsdWF0
b3JCYXNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRl
cyBFbGVtZW50Q1NTSW5saW5lU3R5bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhU
TUxBbGxDb2xsZWN0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBvYmplY3QKIFBBU1MgSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24gaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBSYWRp
b05vZGVMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBvYmplY3QKQEAgLTc5NCwxNCArNzk0LDQgQEAgUEFTUyBIVE1MRnJhbWVFbGVtZW50IGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1Mg
SFRNTERpcmVjdG9yeUVsZW1lbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBIVE1MRm9udEVsZW1lbnQgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBFeHRlcm5hbCBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1Q
QVNTIE5vZGVMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QKLVBBU1MgSFRNTENvbGxlY3Rpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAotUEFTUyBOb2RlIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKLVBBU1MgRG9jdW1lbnQg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAot
UEFTUyBEb2N1bWVudEZyYWdtZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QKLVBBU1MgU2hhZG93Um9vdCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIEVsZW1lbnQgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAotUEFTUyBE
T01Ub2tlbkxpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdAotUEFTUyBVSUV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBvYmplY3QKLVBBU1MgTW91c2VFdmVudCBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9pbmZyYXN0cnVj
dHVyZS9zYWZlLXBhc3Npbmctb2Ytc3RydWN0dXJlZC1kYXRhL3N0cnVjdHVyZWQtY2xvbmluZy1l
cnJvci1zdGFjay1vcHRpb25hbC5zdWIud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9pbmZyYXN0cnVjdHVyZS9zYWZl
LXBhc3Npbmctb2Ytc3RydWN0dXJlZC1kYXRhL3N0cnVjdHVyZWQtY2xvbmluZy1lcnJvci1zdGFj
ay1vcHRpb25hbC5zdWIud2luZG93LWV4cGVjdGVkLnR4dAppbmRleCAyYzcyZDViOWIxZWY0Y2E4
MTNlMzk4YjVkOWVjNGJhOWUxNzY4MzFlLi5hMjk4NzJkM2I1MDYyNzM1NWViZjM5NmM1M2U5MjBh
NjhhZThmODRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQt
ZGF0YS9zdHJ1Y3R1cmVkLWNsb25pbmctZXJyb3Itc3RhY2stb3B0aW9uYWwuc3ViLndpbmRvdy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL3NhZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEv
c3RydWN0dXJlZC1jbG9uaW5nLWVycm9yLXN0YWNrLW9wdGlvbmFsLnN1Yi53aW5kb3ctZXhwZWN0
ZWQudHh0CkBAIC0xMyw2ICsxMyw2IEBAIEZBSUwgSlMtZW5naW5lLWNyZWF0ZWQgVHlwZUVycm9y
ICh3b3JrZXIpIFRoZSBvYmplY3QgY2FuIG5vdCBiZSBjbG9uZWQuCiBGQUlMIEpTLWVuZ2luZS1j
cmVhdGVkIFR5cGVFcnJvciAoY3Jvc3Mtc2l0ZSBpZnJhbWUpIFRoZSBvYmplY3QgY2FuIG5vdCBi
ZSBjbG9uZWQuCiBGQUlMIHdlYiBBUEktY3JlYXRlZCBUeXBlRXJyb3IgKHdvcmtlcikgVGhlIG9i
amVjdCBjYW4gbm90IGJlIGNsb25lZC4KIEZBSUwgd2ViIEFQSS1jcmVhdGVkIFR5cGVFcnJvciAo
Y3Jvc3Mtc2l0ZSBpZnJhbWUpIFRoZSBvYmplY3QgY2FuIG5vdCBiZSBjbG9uZWQuCi1GQUlMIHdl
YiBBUEktY3JlYXRlZCBET01FeGNlcHRpb24gKHdvcmtlcikgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgKHN0cmluZykgImNyZWF0ZUVsZW1lbnRAW25hdGl2ZSBjb2RlXVxuQGh0dHA6Ly9sb2NhbGhv
c3Q6ODgwMC9odG1sL2luZnJhc3RydWN0dXJlL3NhZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRh
dGEvc3RydWN0dXJlZC1jbG9uaW5nLWVycm9yLXN0YWNrLW9wdGlvbmFsLnN1Yi53aW5kb3cuanM6
MzM6MjdcbkBodHRwOi8vbG9jYWxob3N0Ojg4MDAvaHRtbC9pbmZyYXN0cnVjdHVyZS9zYWZlLXBh
c3Npbmctb2Ytc3RydWN0dXJlZC1kYXRhL3N0cnVjdHVyZWQtY2xvbmluZy1lcnJvci1zdGFjay1v
cHRpb25hbC5zdWIud2luZG93LmpzOjQxOjMxXG5AaHR0cDovL2xvY2FsaG9zdDo4ODAwL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qczoyMDQ0OjMwXG5hc3luY190ZXN0QGh0dHA6Ly9sb2NhbGhvc3Q6
ODgwMC9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM6NjA5OjM4XG5zdGFja1Rlc3RzQGh0dHA6Ly9s
b2NhbGhvc3Q6ODgwMC9odG1sL2luZnJhc3RydWN0dXJlL3NhZmUtcGFzc2luZy1vZi1zdHJ1Y3R1
cmVkLWRhdGEvc3RydWN0dXJlZC1jbG9uaW5nLWVycm9yLXN0YWNrLW9wdGlvbmFsLnN1Yi53aW5k
b3cuanM6NDA6MTNcbmdsb2JhbCBjb2RlQGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9odG1sL2luZnJh
c3RydWN0dXJlL3NhZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEvc3RydWN0dXJlZC1jbG9u
aW5nLWVycm9yLXN0YWNrLW9wdGlvbmFsLnN1Yi53aW5kb3cuanM6MzE6MTEiIGJ1dCBnb3QgKHVu
ZGVmaW5lZCkgdW5kZWZpbmVkCitGQUlMIHdlYiBBUEktY3JlYXRlZCBET01FeGNlcHRpb24gKHdv
cmtlcikgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgImNyZWF0ZUVsZW1lbnRAW25h
dGl2ZSBjb2RlXVxuQGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9odG1sL2luZnJhc3RydWN0dXJlL3Nh
ZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEvc3RydWN0dXJlZC1jbG9uaW5nLWVycm9yLXN0
YWNrLW9wdGlvbmFsLnN1Yi53aW5kb3cuanM6MzM6MjdcbkBodHRwOi8vbG9jYWxob3N0Ojg4MDAv
aHRtbC9pbmZyYXN0cnVjdHVyZS9zYWZlLXBhc3Npbmctb2Ytc3RydWN0dXJlZC1kYXRhL3N0cnVj
dHVyZWQtY2xvbmluZy1lcnJvci1zdGFjay1vcHRpb25hbC5zdWIud2luZG93LmpzOjQxOjMxXG5A
aHR0cDovL2xvY2FsaG9zdDo4ODAwL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qczoyMDg3OjMwXG5h
c3luY190ZXN0QGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM6
NTk0OjM4XG5zdGFja1Rlc3RzQGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9odG1sL2luZnJhc3RydWN0
dXJlL3NhZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEvc3RydWN0dXJlZC1jbG9uaW5nLWVy
cm9yLXN0YWNrLW9wdGlvbmFsLnN1Yi53aW5kb3cuanM6NDA6MTNcbmdsb2JhbCBjb2RlQGh0dHA6
Ly9sb2NhbGhvc3Q6ODgwMC9odG1sL2luZnJhc3RydWN0dXJlL3NhZmUtcGFzc2luZy1vZi1zdHJ1
Y3R1cmVkLWRhdGEvc3RydWN0dXJlZC1jbG9uaW5nLWVycm9yLXN0YWNrLW9wdGlvbmFsLnN1Yi53
aW5kb3cuanM6MzE6MTEiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCiBUSU1FT1VUIHdl
YiBBUEktY3JlYXRlZCBET01FeGNlcHRpb24gKGNyb3NzLXNpdGUgaWZyYW1lKSBUZXN0IHRpbWVk
IG91dAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ludGVyZmFjZXMvRE9NLVBhcnNpbmcuaWRsIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL0RPTS1QYXJzaW5nLmlkbAppbmRleCA5
OTcxMjYyOTIyMDgzMDAwYjk0NGUwZGUwMzIxNjNjZTc3ODEyMDQxLi5kMGQ4NGFiNjk3MmYwMmFl
MTFmMmUzYTg1MDc0OTA2NGQ2M2ZhMjk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvRE9NLVBhcnNpbmcuaWRsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9E
T00tUGFyc2luZy5pZGwKQEAgLTE4LDcgKzE4LDcgQEAgU2hhZG93Um9vdCBpbmNsdWRlcyBJbm5l
ckhUTUw7CiAKIHBhcnRpYWwgaW50ZXJmYWNlIEVsZW1lbnQgewogICBbQ0VSZWFjdGlvbnNdIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIERPTVN0cmluZyBvdXRlckhUTUw7Ci0g
IFtDRVJlYWN0aW9uc10gdm9pZCBpbnNlcnRBZGphY2VudEhUTUwoRE9NU3RyaW5nIHBvc2l0aW9u
LCBET01TdHJpbmcgdGV4dCk7CisgIFtDRVJlYWN0aW9uc10gdW5kZWZpbmVkIGluc2VydEFkamFj
ZW50SFRNTChET01TdHJpbmcgcG9zaXRpb24sIERPTVN0cmluZyB0ZXh0KTsKIH07CiAKIHBhcnRp
YWwgaW50ZXJmYWNlIFJhbmdlIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9TVkcuaWRsIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL1NWRy5pZGwKaW5kZXggZjhk
MjRjOWM2NjYzNmQ0MTFmMzFjZDJmNzgwYjc3NGFjNjM2NjM5ZC4uMTFhNWM3YzI5OWNkM2I4YzQx
OGJiYjVkY2FkNjdiMTI5MjM4MjhjZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL1NWRy5pZGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL1NWRy5pZGwKQEAg
LTI0LDYgKzI0LDcgQEAgZGljdGlvbmFyeSBTVkdCb3VuZGluZ0JveE9wdGlvbnMgewogICBib29s
ZWFuIGNsaXBwZWQgPSBmYWxzZTsKIH07CiAKK1tFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBT
VkdHcmFwaGljc0VsZW1lbnQgOiBTVkdFbGVtZW50IHsKICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QgdHJhbnNmb3JtOwogCkBAIC03MCw4
ICs3MSw4IEBAIGludGVyZmFjZSBTVkdMZW5ndGggewogICAgICAgICAgICBhdHRyaWJ1dGUgZmxv
YXQgdmFsdWVJblNwZWNpZmllZFVuaXRzOwogICAgICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5n
IHZhbHVlQXNTdHJpbmc7CiAKLSAgdm9pZCBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKHVuc2lnbmVk
IHNob3J0IHVuaXRUeXBlLCBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpOwotICB2b2lkIGNv
bnZlcnRUb1NwZWNpZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlKTsKKyAgdW5kZWZp
bmVkIG5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5zaWduZWQgc2hvcnQgdW5pdFR5cGUsIGZsb2F0
IHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7CisgIHVuZGVmaW5lZCBjb252ZXJ0VG9TcGVjaWZpZWRV
bml0cyh1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSk7CiB9OwogCiBbRXhwb3NlZD1XaW5kb3ddCkBA
IC04OSw4ICs5MCw4IEBAIGludGVyZmFjZSBTVkdBbmdsZSB7CiAgICAgICAgICAgIGF0dHJpYnV0
ZSBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHM7CiAgICAgICAgICAgIGF0dHJpYnV0ZSBET01T
dHJpbmcgdmFsdWVBc1N0cmluZzsKIAotICB2b2lkIG5ld1ZhbHVlU3BlY2lmaWVkVW5pdHModW5z
aWduZWQgc2hvcnQgdW5pdFR5cGUsIGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0cyk7Ci0gIHZv
aWQgY29udmVydFRvU3BlY2lmaWVkVW5pdHModW5zaWduZWQgc2hvcnQgdW5pdFR5cGUpOworICB1
bmRlZmluZWQgbmV3VmFsdWVTcGVjaWZpZWRVbml0cyh1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSwg
ZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzKTsKKyAgdW5kZWZpbmVkIGNvbnZlcnRUb1NwZWNp
ZmllZFVuaXRzKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlKTsKIH07CiAKIFtFeHBvc2VkPVdpbmRv
d10KQEAgLTk5LDE0ICsxMDAsMTQgQEAgaW50ZXJmYWNlIFNWR051bWJlckxpc3QgewogICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CiAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnNpZ25lZCBsb25nIG51bWJlck9mSXRlbXM7CiAKLSAgdm9pZCBjbGVhcigpOworICB1bmRl
ZmluZWQgY2xlYXIoKTsKICAgU1ZHTnVtYmVyIGluaXRpYWxpemUoU1ZHTnVtYmVyIG5ld0l0ZW0p
OwogICBnZXR0ZXIgU1ZHTnVtYmVyIGdldEl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CiAgIFNW
R051bWJlciBpbnNlcnRJdGVtQmVmb3JlKFNWR051bWJlciBuZXdJdGVtLCB1bnNpZ25lZCBsb25n
IGluZGV4KTsKICAgU1ZHTnVtYmVyIHJlcGxhY2VJdGVtKFNWR051bWJlciBuZXdJdGVtLCB1bnNp
Z25lZCBsb25nIGluZGV4KTsKICAgU1ZHTnVtYmVyIHJlbW92ZUl0ZW0odW5zaWduZWQgbG9uZyBp
bmRleCk7CiAgIFNWR051bWJlciBhcHBlbmRJdGVtKFNWR051bWJlciBuZXdJdGVtKTsKLSAgc2V0
dGVyIHZvaWQgKHVuc2lnbmVkIGxvbmcgaW5kZXgsIFNWR051bWJlciBuZXdJdGVtKTsKKyAgc2V0
dGVyIHVuZGVmaW5lZCAodW5zaWduZWQgbG9uZyBpbmRleCwgU1ZHTnVtYmVyIG5ld0l0ZW0pOwog
fTsKIAogW0V4cG9zZWQ9V2luZG93XQpAQCAtMTE1LDE0ICsxMTYsMTQgQEAgaW50ZXJmYWNlIFNW
R0xlbmd0aExpc3QgewogICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7
CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIG51bWJlck9mSXRlbXM7CiAKLSAg
dm9pZCBjbGVhcigpOworICB1bmRlZmluZWQgY2xlYXIoKTsKICAgU1ZHTGVuZ3RoIGluaXRpYWxp
emUoU1ZHTGVuZ3RoIG5ld0l0ZW0pOwogICBnZXR0ZXIgU1ZHTGVuZ3RoIGdldEl0ZW0odW5zaWdu
ZWQgbG9uZyBpbmRleCk7CiAgIFNWR0xlbmd0aCBpbnNlcnRJdGVtQmVmb3JlKFNWR0xlbmd0aCBu
ZXdJdGVtLCB1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgU1ZHTGVuZ3RoIHJlcGxhY2VJdGVtKFNW
R0xlbmd0aCBuZXdJdGVtLCB1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgU1ZHTGVuZ3RoIHJlbW92
ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CiAgIFNWR0xlbmd0aCBhcHBlbmRJdGVtKFNWR0xl
bmd0aCBuZXdJdGVtKTsKLSAgc2V0dGVyIHZvaWQgKHVuc2lnbmVkIGxvbmcgaW5kZXgsIFNWR0xl
bmd0aCBuZXdJdGVtKTsKKyAgc2V0dGVyIHVuZGVmaW5lZCAodW5zaWduZWQgbG9uZyBpbmRleCwg
U1ZHTGVuZ3RoIG5ld0l0ZW0pOwogfTsKIAogW0V4cG9zZWQ9V2luZG93XQpAQCAtMTMxLDE0ICsx
MzIsMTQgQEAgaW50ZXJmYWNlIFNWR1N0cmluZ0xpc3QgewogICByZWFkb25seSBhdHRyaWJ1dGUg
dW5zaWduZWQgbG9uZyBsZW5ndGg7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25n
IG51bWJlck9mSXRlbXM7CiAKLSAgdm9pZCBjbGVhcigpOworICB1bmRlZmluZWQgY2xlYXIoKTsK
ICAgRE9NU3RyaW5nIGluaXRpYWxpemUoRE9NU3RyaW5nIG5ld0l0ZW0pOwogICBnZXR0ZXIgRE9N
U3RyaW5nIGdldEl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CiAgIERPTVN0cmluZyBpbnNlcnRJ
dGVtQmVmb3JlKERPTVN0cmluZyBuZXdJdGVtLCB1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgRE9N
U3RyaW5nIHJlcGxhY2VJdGVtKERPTVN0cmluZyBuZXdJdGVtLCB1bnNpZ25lZCBsb25nIGluZGV4
KTsKICAgRE9NU3RyaW5nIHJlbW92ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CiAgIERPTVN0
cmluZyBhcHBlbmRJdGVtKERPTVN0cmluZyBuZXdJdGVtKTsKLSAgc2V0dGVyIHZvaWQgKHVuc2ln
bmVkIGxvbmcgaW5kZXgsIERPTVN0cmluZyBuZXdJdGVtKTsKKyAgc2V0dGVyIHVuZGVmaW5lZCAo
dW5zaWduZWQgbG9uZyBpbmRleCwgRE9NU3RyaW5nIG5ld0l0ZW0pOwogfTsKIAogW0V4cG9zZWQ9
V2luZG93XQpAQCAtMjQzLDcgKzI0NCw3IEBAIGludGVyZmFjZSBTVkdTVkdFbGVtZW50IDogU1ZH
R3JhcGhpY3NFbGVtZW50IHsKICAgYm9vbGVhbiBjaGVja0ludGVyc2VjdGlvbihTVkdFbGVtZW50
IGVsZW1lbnQsIERPTVJlY3RSZWFkT25seSByZWN0KTsKICAgYm9vbGVhbiBjaGVja0VuY2xvc3Vy
ZShTVkdFbGVtZW50IGVsZW1lbnQsIERPTVJlY3RSZWFkT25seSByZWN0KTsKIAotICB2b2lkIGRl
c2VsZWN0QWxsKCk7CisgIHVuZGVmaW5lZCBkZXNlbGVjdEFsbCgpOwogCiAgIFNWR051bWJlciBj
cmVhdGVTVkdOdW1iZXIoKTsKICAgU1ZHTGVuZ3RoIGNyZWF0ZVNWR0xlbmd0aCgpOwpAQCAtMjUy
LDE2ICsyNTMsMTYgQEAgaW50ZXJmYWNlIFNWR1NWR0VsZW1lbnQgOiBTVkdHcmFwaGljc0VsZW1l
bnQgewogICBET01NYXRyaXggY3JlYXRlU1ZHTWF0cml4KCk7CiAgIERPTVJlY3QgY3JlYXRlU1ZH
UmVjdCgpOwogICBTVkdUcmFuc2Zvcm0gY3JlYXRlU1ZHVHJhbnNmb3JtKCk7Ci0gIFNWR1RyYW5z
Zm9ybSBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KG9wdGlvbmFsIERPTU1hdHJpeDJESW5p
dCBtYXRyaXgpOworICBTVkdUcmFuc2Zvcm0gY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChv
cHRpb25hbCBET01NYXRyaXgyREluaXQgbWF0cml4ID0ge30pOwogCiAgIEVsZW1lbnQgZ2V0RWxl
bWVudEJ5SWQoRE9NU3RyaW5nIGVsZW1lbnRJZCk7CiAKICAgLy8gRGVwcmVjYXRlZCBtZXRob2Rz
IHRoYXQgaGF2ZSBubyBlZmZlY3Qgd2hlbiBjYWxsZWQsCiAgIC8vIGJ1dCB3aGljaCBhcmUga2Vw
dCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zLgogICB1bnNpZ25lZCBsb25nIHN1c3BlbmRSZWRy
YXcodW5zaWduZWQgbG9uZyBtYXhXYWl0TWlsbGlzZWNvbmRzKTsKLSAgdm9pZCB1bnN1c3BlbmRS
ZWRyYXcodW5zaWduZWQgbG9uZyBzdXNwZW5kSGFuZGxlSUQpOwotICB2b2lkIHVuc3VzcGVuZFJl
ZHJhd0FsbCgpOwotICB2b2lkIGZvcmNlUmVkcmF3KCk7CisgIHVuZGVmaW5lZCB1bnN1c3BlbmRS
ZWRyYXcodW5zaWduZWQgbG9uZyBzdXNwZW5kSGFuZGxlSUQpOworICB1bmRlZmluZWQgdW5zdXNw
ZW5kUmVkcmF3QWxsKCk7CisgIHVuZGVmaW5lZCBmb3JjZVJlZHJhdygpOwogfTsKIAogU1ZHU1ZH
RWxlbWVudCBpbmNsdWRlcyBTVkdGaXRUb1ZpZXdCb3g7CkBAIC0zMTQsOCArMzE1LDkgQEAgaW50
ZXJmYWNlIG1peGluIFNWR0VsZW1lbnRJbnN0YW5jZSB7CiAgIFtTYW1lT2JqZWN0XSByZWFkb25s
eSBhdHRyaWJ1dGUgU1ZHVXNlRWxlbWVudD8gY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQ7CiB9Owog
Ci1bQ29uc3RydWN0b3IoQW5pbWF0aW9uIHNvdXJjZSwgQW5pbWF0YWJsZSBuZXdUYXJnZXQpLCBF
eHBvc2VkPVdpbmRvd10KK1tFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBTaGFkb3dBbmltYXRp
b24gOiBBbmltYXRpb24geworICBjb25zdHJ1Y3RvcihBbmltYXRpb24gc291cmNlLCAoRWxlbWVu
dCBvciBDU1NQc2V1ZG9FbGVtZW50KSBuZXdUYXJnZXQpOwogICBbU2FtZU9iamVjdF0gcmVhZG9u
bHkgYXR0cmlidXRlIEFuaW1hdGlvbiBzb3VyY2VBbmltYXRpb247CiB9OwogCkBAIC0zNTIsMTIg
KzM1NCwxMiBAQCBpbnRlcmZhY2UgU1ZHVHJhbnNmb3JtIHsKICAgW1NhbWVPYmplY3RdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01NYXRyaXggbWF0cml4OwogICByZWFkb25seSBhdHRyaWJ1dGUgZmxv
YXQgYW5nbGU7CiAKLSAgdm9pZCBzZXRNYXRyaXgob3B0aW9uYWwgRE9NTWF0cml4MkRJbml0IG1h
dHJpeCk7Ci0gIHZvaWQgc2V0VHJhbnNsYXRlKGZsb2F0IHR4LCBmbG9hdCB0eSk7Ci0gIHZvaWQg
c2V0U2NhbGUoZmxvYXQgc3gsIGZsb2F0IHN5KTsKLSAgdm9pZCBzZXRSb3RhdGUoZmxvYXQgYW5n
bGUsIGZsb2F0IGN4LCBmbG9hdCBjeSk7Ci0gIHZvaWQgc2V0U2tld1goZmxvYXQgYW5nbGUpOwot
ICB2b2lkIHNldFNrZXdZKGZsb2F0IGFuZ2xlKTsKKyAgdW5kZWZpbmVkIHNldE1hdHJpeChvcHRp
b25hbCBET01NYXRyaXgyREluaXQgbWF0cml4ID0ge30pOworICB1bmRlZmluZWQgc2V0VHJhbnNs
YXRlKGZsb2F0IHR4LCBmbG9hdCB0eSk7CisgIHVuZGVmaW5lZCBzZXRTY2FsZShmbG9hdCBzeCwg
ZmxvYXQgc3kpOworICB1bmRlZmluZWQgc2V0Um90YXRlKGZsb2F0IGFuZ2xlLCBmbG9hdCBjeCwg
ZmxvYXQgY3kpOworICB1bmRlZmluZWQgc2V0U2tld1goZmxvYXQgYW5nbGUpOworICB1bmRlZmlu
ZWQgc2V0U2tld1koZmxvYXQgYW5nbGUpOwogfTsKIAogW0V4cG9zZWQ9V2luZG93XQpAQCAtMzY2
LDE3ICszNjgsMTcgQEAgaW50ZXJmYWNlIFNWR1RyYW5zZm9ybUxpc3QgewogICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBsb25nIG51bWJlck9mSXRlbXM7CiAKLSAgdm9pZCBjbGVhcigpOworICB1bmRlZmluZWQg
Y2xlYXIoKTsKICAgU1ZHVHJhbnNmb3JtIGluaXRpYWxpemUoU1ZHVHJhbnNmb3JtIG5ld0l0ZW0p
OwogICBnZXR0ZXIgU1ZHVHJhbnNmb3JtIGdldEl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CiAg
IFNWR1RyYW5zZm9ybSBpbnNlcnRJdGVtQmVmb3JlKFNWR1RyYW5zZm9ybSBuZXdJdGVtLCB1bnNp
Z25lZCBsb25nIGluZGV4KTsKICAgU1ZHVHJhbnNmb3JtIHJlcGxhY2VJdGVtKFNWR1RyYW5zZm9y
bSBuZXdJdGVtLCB1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgU1ZHVHJhbnNmb3JtIHJlbW92ZUl0
ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CiAgIFNWR1RyYW5zZm9ybSBhcHBlbmRJdGVtKFNWR1Ry
YW5zZm9ybSBuZXdJdGVtKTsKLSAgc2V0dGVyIHZvaWQgKHVuc2lnbmVkIGxvbmcgaW5kZXgsIFNW
R1RyYW5zZm9ybSBuZXdJdGVtKTsKKyAgc2V0dGVyIHVuZGVmaW5lZCAodW5zaWduZWQgbG9uZyBp
bmRleCwgU1ZHVHJhbnNmb3JtIG5ld0l0ZW0pOwogCiAgIC8vIEFkZGl0aW9uYWwgbWV0aG9kcyBu
b3QgY29tbW9uIHRvIG90aGVyIGxpc3QgaW50ZXJmYWNlcy4KLSAgU1ZHVHJhbnNmb3JtIGNyZWF0
ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgob3B0aW9uYWwgRE9NTWF0cml4MkRJbml0IG1hdHJpeCk7
CisgIFNWR1RyYW5zZm9ybSBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KG9wdGlvbmFsIERP
TU1hdHJpeDJESW5pdCBtYXRyaXggPSB7fSk7CiAgIFNWR1RyYW5zZm9ybT8gY29uc29saWRhdGUo
KTsKIH07CiAKQEAgLTQ2NSwxNCArNDY3LDE0IEBAIGludGVyZmFjZSBTVkdQb2ludExpc3Qgewog
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CiAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBsb25nIG51bWJlck9mSXRlbXM7CiAKLSAgdm9pZCBjbGVhcigpOwor
ICB1bmRlZmluZWQgY2xlYXIoKTsKICAgRE9NUG9pbnQgaW5pdGlhbGl6ZShET01Qb2ludCBuZXdJ
dGVtKTsKICAgZ2V0dGVyIERPTVBvaW50IGdldEl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CiAg
IERPTVBvaW50IGluc2VydEl0ZW1CZWZvcmUoRE9NUG9pbnQgbmV3SXRlbSwgdW5zaWduZWQgbG9u
ZyBpbmRleCk7CiAgIERPTVBvaW50IHJlcGxhY2VJdGVtKERPTVBvaW50IG5ld0l0ZW0sIHVuc2ln
bmVkIGxvbmcgaW5kZXgpOwogICBET01Qb2ludCByZW1vdmVJdGVtKHVuc2lnbmVkIGxvbmcgaW5k
ZXgpOwogICBET01Qb2ludCBhcHBlbmRJdGVtKERPTVBvaW50IG5ld0l0ZW0pOwotICBzZXR0ZXIg
dm9pZCAodW5zaWduZWQgbG9uZyBpbmRleCwgRE9NUG9pbnQgbmV3SXRlbSk7CisgIHNldHRlciB1
bmRlZmluZWQgKHVuc2lnbmVkIGxvbmcgaW5kZXgsIERPTVBvaW50IG5ld0l0ZW0pOwogfTsKIAog
W0V4cG9zZWQ9V2luZG93XQpAQCAtNTA2LDcgKzUwOCw3IEBAIGludGVyZmFjZSBTVkdUZXh0Q29u
dGVudEVsZW1lbnQgOiBTVkdHcmFwaGljc0VsZW1lbnQgewogICBET01SZWN0IGdldEV4dGVudE9m
Q2hhcih1bnNpZ25lZCBsb25nIGNoYXJudW0pOwogICBmbG9hdCBnZXRSb3RhdGlvbk9mQ2hhcih1
bnNpZ25lZCBsb25nIGNoYXJudW0pOwogICBsb25nIGdldENoYXJOdW1BdFBvc2l0aW9uKG9wdGlv
bmFsIERPTVBvaW50SW5pdCBwb2ludCA9IHt9KTsKLSAgdm9pZCBzZWxlY3RTdWJTdHJpbmcodW5z
aWduZWQgbG9uZyBjaGFybnVtLCB1bnNpZ25lZCBsb25nIG5jaGFycyk7CisgIHVuZGVmaW5lZCBz
ZWxlY3RTdWJTdHJpbmcodW5zaWduZWQgbG9uZyBjaGFybnVtLCB1bnNpZ25lZCBsb25nIG5jaGFy
cyk7CiB9OwogCiBbRXhwb3NlZD1XaW5kb3ddCkBAIC01ODgsOCArNTkwLDggQEAgaW50ZXJmYWNl
IFNWR01hcmtlckVsZW1lbnQgOiBTVkdFbGVtZW50IHsKICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEFuZ2xlIG9yaWVudEFuZ2xlOwogICBhdHRyaWJ1dGUgRE9N
U3RyaW5nIG9yaWVudDsKIAotICB2b2lkIHNldE9yaWVudFRvQXV0bygpOwotICB2b2lkIHNldE9y
aWVudFRvQW5nbGUoU1ZHQW5nbGUgYW5nbGUpOworICB1bmRlZmluZWQgc2V0T3JpZW50VG9BdXRv
KCk7CisgIHVuZGVmaW5lZCBzZXRPcmllbnRUb0FuZ2xlKFNWR0FuZ2xlIGFuZ2xlKTsKIH07CiAK
IFNWR01hcmtlckVsZW1lbnQgaW5jbHVkZXMgU1ZHRml0VG9WaWV3Qm94OwpAQCAtNjcxLDcgKzY3
MywyMCBAQCBpbnRlcmZhY2UgU1ZHQUVsZW1lbnQgOiBTVkdHcmFwaGljc0VsZW1lbnQgewogfTsK
IAogU1ZHQUVsZW1lbnQgaW5jbHVkZXMgU1ZHVVJJUmVmZXJlbmNlOwotU1ZHQUVsZW1lbnQgaW5j
bHVkZXMgSFRNTEh5cGVybGlua0VsZW1lbnRVdGlsczsKKworLy8gSW5saW5lIEhUTUxIeXBlcmxp
bmtFbGVtZW50VXRpbHMgZXhjZXB0IGhyZWYsIHdoaWNoIGNvbmZsaWN0cy4KK3BhcnRpYWwgaW50
ZXJmYWNlIFNWR0FFbGVtZW50IHsKKyAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0cmluZyBvcmln
aW47CisgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFVTVlN0cmluZyBwcm90b2NvbDsKKyAgW0NF
UmVhY3Rpb25zXSBhdHRyaWJ1dGUgVVNWU3RyaW5nIHVzZXJuYW1lOworICBbQ0VSZWFjdGlvbnNd
IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgcGFzc3dvcmQ7CisgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRl
IFVTVlN0cmluZyBob3N0OworICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBVU1ZTdHJpbmcgaG9z
dG5hbWU7CisgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFVTVlN0cmluZyBwb3J0OworICBbQ0VS
ZWFjdGlvbnNdIGF0dHJpYnV0ZSBVU1ZTdHJpbmcgcGF0aG5hbWU7CisgIFtDRVJlYWN0aW9uc10g
YXR0cmlidXRlIFVTVlN0cmluZyBzZWFyY2g7CisgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFVT
VlN0cmluZyBoYXNoOworfTsKIAogW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIFNWR1ZpZXdF
bGVtZW50IDogU1ZHRWxlbWVudCB7fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9jcmVkZW50aWFsLW1hbmFnZW1lbnQu
aWRsIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZh
Y2VzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC5pZGwKaW5kZXggYTJiMDYyYTdmZmQ4NjRjMzJlNDNm
MTYxYTQwZmRjZmIwNThlOWJkYS4uYTA3YWEwYjQ0NDdjZDMxMTlkYzViZDIyYzVjM2QxNjY3OWUz
YWZlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9pbnRlcmZhY2VzL2NyZWRlbnRpYWwtbWFuYWdlbWVudC5pZGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL2NyZWRlbnRpYWwt
bWFuYWdlbWVudC5pZGwKQEAgLTI0LDcgKzI0LDcgQEAgaW50ZXJmYWNlIENyZWRlbnRpYWxzQ29u
dGFpbmVyIHsKICAgUHJvbWlzZTxDcmVkZW50aWFsPz4gZ2V0KG9wdGlvbmFsIENyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucyBvcHRpb25zID0ge30pOwogICBQcm9taXNlPENyZWRlbnRpYWw+IHN0b3Jl
KENyZWRlbnRpYWwgY3JlZGVudGlhbCk7CiAgIFByb21pc2U8Q3JlZGVudGlhbD8+IGNyZWF0ZShv
cHRpb25hbCBDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMgPSB7fSk7Ci0gIFByb21p
c2U8dm9pZD4gcHJldmVudFNpbGVudEFjY2VzcygpOworICBQcm9taXNlPHVuZGVmaW5lZD4gcHJl
dmVudFNpbGVudEFjY2VzcygpOwogfTsKIAogZGljdGlvbmFyeSBDcmVkZW50aWFsRGF0YSB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lu
dGVyZmFjZXMvbWVkaWFzZXNzaW9uLmlkbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9tZWRpYXNlc3Npb24uaWRsCmluZGV4IGMyYjJlMDU4
OWUxYzIxN2EyZTEwOGY4YjEyYzI1YWUyZjJhZDM5OTguLjRjZWMzNTRjOWQxZWM4MGQyMGIxZjUw
NmJhYTk0NDQ3MzMwYzhiYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9tZWRpYXNlc3Npb24uaWRsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy9tZWRpYXNl
c3Npb24uaWRsCkBAIC0yMywxMCArMjMsMTMgQEAgZW51bSBNZWRpYVNlc3Npb25BY3Rpb24gewog
ICAibmV4dHRyYWNrIiwKICAgInNraXBhZCIsCiAgICJzdG9wIiwKLSAgInNlZWt0byIKKyAgInNl
ZWt0byIsCisgICJ0b2dnbGVtaWNyb3Bob25lIiwKKyAgInRvZ2dsZWNhbWVyYSIsCisgICJoYW5n
dXAiCiB9OwogCi1jYWxsYmFjayBNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyID0gdm9pZChNZWRp
YVNlc3Npb25BY3Rpb25EZXRhaWxzIGRldGFpbHMpOworY2FsbGJhY2sgTWVkaWFTZXNzaW9uQWN0
aW9uSGFuZGxlciA9IHVuZGVmaW5lZChNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzIGRldGFpbHMp
OwogCiBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgTWVkaWFTZXNzaW9uIHsKQEAgLTM0LDkg
KzM3LDEzIEBAIGludGVyZmFjZSBNZWRpYVNlc3Npb24gewogCiAgIGF0dHJpYnV0ZSBNZWRpYVNl
c3Npb25QbGF5YmFja1N0YXRlIHBsYXliYWNrU3RhdGU7CiAKLSAgdm9pZCBzZXRBY3Rpb25IYW5k
bGVyKE1lZGlhU2Vzc2lvbkFjdGlvbiBhY3Rpb24sIE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI/
IGhhbmRsZXIpOworICB1bmRlZmluZWQgc2V0QWN0aW9uSGFuZGxlcihNZWRpYVNlc3Npb25BY3Rp
b24gYWN0aW9uLCBNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyPyBoYW5kbGVyKTsKIAotICB2b2lk
IHNldFBvc2l0aW9uU3RhdGUob3B0aW9uYWwgTWVkaWFQb3NpdGlvblN0YXRlIHN0YXRlID0ge30p
OworICB1bmRlZmluZWQgc2V0UG9zaXRpb25TdGF0ZShvcHRpb25hbCBNZWRpYVBvc2l0aW9uU3Rh
dGUgc3RhdGUgPSB7fSk7CisKKyAgdW5kZWZpbmVkIHNldE1pY3JvcGhvbmVBY3RpdmUoYm9vbGVh
biBhY3RpdmUpOworCisgIHVuZGVmaW5lZCBzZXRDYW1lcmFBY3RpdmUoYm9vbGVhbiBhY3RpdmUp
OwogfTsKIAogW0V4cG9zZWQ9V2luZG93XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzL21lZGlhc3RyZWFtLXJlY29yZGlu
Zy5pZGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVy
ZmFjZXMvbWVkaWFzdHJlYW0tcmVjb3JkaW5nLmlkbAppbmRleCBjNTM0Nzk1OTM4M2QxZmNlNzRh
MDdiZTliMjcwOWNhYzhmOWVhNWIyLi44NjgxYTVhZDQyOGRmOTgzOGU3Zjg4Nzc5ZjQyMTQ2ZTA0
OGZhYzdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ludGVyZmFjZXMvbWVkaWFzdHJlYW0tcmVjb3JkaW5nLmlkbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvbWVkaWFzdHJl
YW0tcmVjb3JkaW5nLmlkbApAQCAtMyw5ICszLDkgQEAKIC8vIChodHRwczovL2dpdGh1Yi5jb20v
dzNjL3dlYnJlZikKIC8vIFNvdXJjZTogTWVkaWFTdHJlYW0gUmVjb3JkaW5nIChodHRwczovL3cz
Yy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLXJlY29yZC8pCiAKLVtFeHBvc2VkPVdpbmRvdywKLSBD
b25zdHJ1Y3RvcihNZWRpYVN0cmVhbSBzdHJlYW0sIG9wdGlvbmFsIE1lZGlhUmVjb3JkZXJPcHRp
b25zIG9wdGlvbnMgPSB7fSldCitbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgTWVkaWFSZWNv
cmRlciA6IEV2ZW50VGFyZ2V0IHsKKyAgY29uc3RydWN0b3IoTWVkaWFTdHJlYW0gc3RyZWFtLCBv
cHRpb25hbCBNZWRpYVJlY29yZGVyT3B0aW9ucyBvcHRpb25zID0ge30pOwogICByZWFkb25seSBh
dHRyaWJ1dGUgTWVkaWFTdHJlYW0gc3RyZWFtOwogICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIG1pbWVUeXBlOwogICByZWFkb25seSBhdHRyaWJ1dGUgUmVjb3JkaW5nU3RhdGUgc3RhdGU7
CkBAIC0xOSwxMSArMTksMTEgQEAgaW50ZXJmYWNlIE1lZGlhUmVjb3JkZXIgOiBFdmVudFRhcmdl
dCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGF1ZGlvQml0c1BlclNlY29u
ZDsKICAgcmVhZG9ubHkgYXR0cmlidXRlIEJpdHJhdGVNb2RlIGF1ZGlvQml0cmF0ZU1vZGU7CiAK
LSAgdm9pZCBzdGFydChvcHRpb25hbCB1bnNpZ25lZCBsb25nIHRpbWVzbGljZSk7Ci0gIHZvaWQg
c3RvcCgpOwotICB2b2lkIHBhdXNlKCk7Ci0gIHZvaWQgcmVzdW1lKCk7Ci0gIHZvaWQgcmVxdWVz
dERhdGEoKTsKKyAgdW5kZWZpbmVkIHN0YXJ0KG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgdGltZXNs
aWNlKTsKKyAgdW5kZWZpbmVkIHN0b3AoKTsKKyAgdW5kZWZpbmVkIHBhdXNlKCk7CisgIHVuZGVm
aW5lZCByZXN1bWUoKTsKKyAgdW5kZWZpbmVkIHJlcXVlc3REYXRhKCk7CiAKICAgc3RhdGljIGJv
b2xlYW4gaXNUeXBlU3VwcG9ydGVkKERPTVN0cmluZyB0eXBlKTsKIH07CkBAIC0zMywxMiArMzMs
MTIgQEAgZGljdGlvbmFyeSBNZWRpYVJlY29yZGVyT3B0aW9ucyB7CiAgIHVuc2lnbmVkIGxvbmcg
YXVkaW9CaXRzUGVyU2Vjb25kOwogICB1bnNpZ25lZCBsb25nIHZpZGVvQml0c1BlclNlY29uZDsK
ICAgdW5zaWduZWQgbG9uZyBiaXRzUGVyU2Vjb25kOwotICBCaXRyYXRlTW9kZSBhdWRpb0JpdHJh
dGVNb2RlID0gInZiciI7CisgIEJpdHJhdGVNb2RlIGF1ZGlvQml0cmF0ZU1vZGUgPSAidmFyaWFi
bGUiOwogfTsKIAogZW51bSBCaXRyYXRlTW9kZSB7Ci0gICJjYnIiLAotICAidmJyIgorICAiY29u
c3RhbnQiLAorICAidmFyaWFibGUiCiB9OwogCiBlbnVtIFJlY29yZGluZ1N0YXRlIHsKQEAgLTQ3
LDggKzQ3LDkgQEAgZW51bSBSZWNvcmRpbmdTdGF0ZSB7CiAgICJwYXVzZWQiCiB9OwogCi1bRXhw
b3NlZD1XaW5kb3csIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBCbG9iRXZlbnRJbml0IGV2
ZW50SW5pdERpY3QpXQorW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIEJsb2JFdmVudCA6IEV2
ZW50IHsKKyAgY29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIEJsb2JFdmVudEluaXQgZXZlbnRJ
bml0RGljdCk7CiAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgQmxvYiBkYXRhOwog
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lY29kZTsKIH07CkBA
IC02Miw3ICs2Myw4IEBAIGRpY3Rpb25hcnkgTWVkaWFSZWNvcmRlckVycm9yRXZlbnRJbml0IDog
RXZlbnRJbml0IHsKICAgcmVxdWlyZWQgRE9NRXhjZXB0aW9uIGVycm9yOwogfTsKIAotW0V4cG9z
ZWQ9V2luZG93LCBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgTWVkaWFSZWNvcmRlckVycm9y
RXZlbnRJbml0IGV2ZW50SW5pdERpY3QpXQorW0V4cG9zZWQ9V2luZG93XQogaW50ZXJmYWNlIE1l
ZGlhUmVjb3JkZXJFcnJvckV2ZW50IDogRXZlbnQgeworICBjb25zdHJ1Y3RvcihET01TdHJpbmcg
dHlwZSwgTWVkaWFSZWNvcmRlckVycm9yRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpOwogICBbU2Ft
ZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTUV4Y2VwdGlvbiBlcnJvcjsKIH07CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVy
ZmFjZXMvd2ViZ2wxLmlkbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaW50ZXJmYWNlcy93ZWJnbDEuaWRsCmluZGV4IDk1YTBmYTM0MjY1MmQ1ZWQ3NmFkNTY3
ZjJhNTQzN2I3Yzg4OGY3ZTAuLmNkOWVhYTE5YmM0OWJmYmE2OTk2ZjMyYWI2MWZmZjc0NGFkMTdm
M2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaW50ZXJmYWNlcy93ZWJnbDEuaWRsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy93ZWJnbDEuaWRsCkBAIC01MjMsMzMgKzUyMywz
MyBAQCBpbnRlcmZhY2UgbWl4aW4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZQogICAgIHNlcXVl
bmNlPERPTVN0cmluZz4/IGdldFN1cHBvcnRlZEV4dGVuc2lvbnMoKTsKICAgICBvYmplY3Q/IGdl
dEV4dGVuc2lvbihET01TdHJpbmcgbmFtZSk7CiAKLSAgICB2b2lkIGFjdGl2ZVRleHR1cmUoR0xl
bnVtIHRleHR1cmUpOwotICAgIHZvaWQgYXR0YWNoU2hhZGVyKFdlYkdMUHJvZ3JhbSBwcm9ncmFt
LCBXZWJHTFNoYWRlciBzaGFkZXIpOwotICAgIHZvaWQgYmluZEF0dHJpYkxvY2F0aW9uKFdlYkdM
UHJvZ3JhbSBwcm9ncmFtLCBHTHVpbnQgaW5kZXgsIERPTVN0cmluZyBuYW1lKTsKLSAgICB2b2lk
IGJpbmRCdWZmZXIoR0xlbnVtIHRhcmdldCwgV2ViR0xCdWZmZXI/IGJ1ZmZlcik7Ci0gICAgdm9p
ZCBiaW5kRnJhbWVidWZmZXIoR0xlbnVtIHRhcmdldCwgV2ViR0xGcmFtZWJ1ZmZlcj8gZnJhbWVi
dWZmZXIpOwotICAgIHZvaWQgYmluZFJlbmRlcmJ1ZmZlcihHTGVudW0gdGFyZ2V0LCBXZWJHTFJl
bmRlcmJ1ZmZlcj8gcmVuZGVyYnVmZmVyKTsKLSAgICB2b2lkIGJpbmRUZXh0dXJlKEdMZW51bSB0
YXJnZXQsIFdlYkdMVGV4dHVyZT8gdGV4dHVyZSk7Ci0gICAgdm9pZCBibGVuZENvbG9yKEdMY2xh
bXBmIHJlZCwgR0xjbGFtcGYgZ3JlZW4sIEdMY2xhbXBmIGJsdWUsIEdMY2xhbXBmIGFscGhhKTsK
LSAgICB2b2lkIGJsZW5kRXF1YXRpb24oR0xlbnVtIG1vZGUpOwotICAgIHZvaWQgYmxlbmRFcXVh
dGlvblNlcGFyYXRlKEdMZW51bSBtb2RlUkdCLCBHTGVudW0gbW9kZUFscGhhKTsKLSAgICB2b2lk
IGJsZW5kRnVuYyhHTGVudW0gc2ZhY3RvciwgR0xlbnVtIGRmYWN0b3IpOwotICAgIHZvaWQgYmxl
bmRGdW5jU2VwYXJhdGUoR0xlbnVtIHNyY1JHQiwgR0xlbnVtIGRzdFJHQiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdMZW51bSBzcmNBbHBoYSwgR0xlbnVtIGRzdEFscGhhKTsKKyAgICB1
bmRlZmluZWQgYWN0aXZlVGV4dHVyZShHTGVudW0gdGV4dHVyZSk7CisgICAgdW5kZWZpbmVkIGF0
dGFjaFNoYWRlcihXZWJHTFByb2dyYW0gcHJvZ3JhbSwgV2ViR0xTaGFkZXIgc2hhZGVyKTsKKyAg
ICB1bmRlZmluZWQgYmluZEF0dHJpYkxvY2F0aW9uKFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBHTHVp
bnQgaW5kZXgsIERPTVN0cmluZyBuYW1lKTsKKyAgICB1bmRlZmluZWQgYmluZEJ1ZmZlcihHTGVu
dW0gdGFyZ2V0LCBXZWJHTEJ1ZmZlcj8gYnVmZmVyKTsKKyAgICB1bmRlZmluZWQgYmluZEZyYW1l
YnVmZmVyKEdMZW51bSB0YXJnZXQsIFdlYkdMRnJhbWVidWZmZXI/IGZyYW1lYnVmZmVyKTsKKyAg
ICB1bmRlZmluZWQgYmluZFJlbmRlcmJ1ZmZlcihHTGVudW0gdGFyZ2V0LCBXZWJHTFJlbmRlcmJ1
ZmZlcj8gcmVuZGVyYnVmZmVyKTsKKyAgICB1bmRlZmluZWQgYmluZFRleHR1cmUoR0xlbnVtIHRh
cmdldCwgV2ViR0xUZXh0dXJlPyB0ZXh0dXJlKTsKKyAgICB1bmRlZmluZWQgYmxlbmRDb2xvcihH
TGNsYW1wZiByZWQsIEdMY2xhbXBmIGdyZWVuLCBHTGNsYW1wZiBibHVlLCBHTGNsYW1wZiBhbHBo
YSk7CisgICAgdW5kZWZpbmVkIGJsZW5kRXF1YXRpb24oR0xlbnVtIG1vZGUpOworICAgIHVuZGVm
aW5lZCBibGVuZEVxdWF0aW9uU2VwYXJhdGUoR0xlbnVtIG1vZGVSR0IsIEdMZW51bSBtb2RlQWxw
aGEpOworICAgIHVuZGVmaW5lZCBibGVuZEZ1bmMoR0xlbnVtIHNmYWN0b3IsIEdMZW51bSBkZmFj
dG9yKTsKKyAgICB1bmRlZmluZWQgYmxlbmRGdW5jU2VwYXJhdGUoR0xlbnVtIHNyY1JHQiwgR0xl
bnVtIGRzdFJHQiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIHNyY0Fs
cGhhLCBHTGVudW0gZHN0QWxwaGEpOwogCiAgICAgW1dlYkdMSGFuZGxlc0NvbnRleHRMb3NzXSBH
TGVudW0gY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhHTGVudW0gdGFyZ2V0KTsKLSAgICB2b2lkIGNs
ZWFyKEdMYml0ZmllbGQgbWFzayk7Ci0gICAgdm9pZCBjbGVhckNvbG9yKEdMY2xhbXBmIHJlZCwg
R0xjbGFtcGYgZ3JlZW4sIEdMY2xhbXBmIGJsdWUsIEdMY2xhbXBmIGFscGhhKTsKLSAgICB2b2lk
IGNsZWFyRGVwdGgoR0xjbGFtcGYgZGVwdGgpOwotICAgIHZvaWQgY2xlYXJTdGVuY2lsKEdMaW50
IHMpOwotICAgIHZvaWQgY29sb3JNYXNrKEdMYm9vbGVhbiByZWQsIEdMYm9vbGVhbiBncmVlbiwg
R0xib29sZWFuIGJsdWUsIEdMYm9vbGVhbiBhbHBoYSk7Ci0gICAgdm9pZCBjb21waWxlU2hhZGVy
KFdlYkdMU2hhZGVyIHNoYWRlcik7Ci0KLSAgICB2b2lkIGNvcHlUZXhJbWFnZTJEKEdMZW51bSB0
YXJnZXQsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICBHTGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdo
dCwKLSAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IGJvcmRlcik7Ci0gICAgdm9pZCBjb3B5
VGV4U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwg
R0xpbnQgeW9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IHgsIEdMaW50
IHksIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0KTsKKyAgICB1bmRlZmluZWQgY2xlYXIo
R0xiaXRmaWVsZCBtYXNrKTsKKyAgICB1bmRlZmluZWQgY2xlYXJDb2xvcihHTGNsYW1wZiByZWQs
IEdMY2xhbXBmIGdyZWVuLCBHTGNsYW1wZiBibHVlLCBHTGNsYW1wZiBhbHBoYSk7CisgICAgdW5k
ZWZpbmVkIGNsZWFyRGVwdGgoR0xjbGFtcGYgZGVwdGgpOworICAgIHVuZGVmaW5lZCBjbGVhclN0
ZW5jaWwoR0xpbnQgcyk7CisgICAgdW5kZWZpbmVkIGNvbG9yTWFzayhHTGJvb2xlYW4gcmVkLCBH
TGJvb2xlYW4gZ3JlZW4sIEdMYm9vbGVhbiBibHVlLCBHTGJvb2xlYW4gYWxwaGEpOworICAgIHVu
ZGVmaW5lZCBjb21waWxlU2hhZGVyKFdlYkdMU2hhZGVyIHNoYWRlcik7CisKKyAgICB1bmRlZmlu
ZWQgY29weVRleEltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRl
cm5hbGZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgeCwgR0xpbnQg
eSwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdMaW50IGJvcmRlcik7CisgICAgdW5kZWZpbmVkIGNvcHlUZXhTdWJJbWFnZTJEKEdM
ZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGludCB4LCBHTGludCB5LCBHTHNpemVp
IHdpZHRoLCBHTHNpemVpIGhlaWdodCk7CiAKICAgICBXZWJHTEJ1ZmZlcj8gY3JlYXRlQnVmZmVy
KCk7CiAgICAgV2ViR0xGcmFtZWJ1ZmZlcj8gY3JlYXRlRnJhbWVidWZmZXIoKTsKQEAgLTU1OCwz
NiArNTU4LDM2IEBAIGludGVyZmFjZSBtaXhpbiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlCiAg
ICAgV2ViR0xTaGFkZXI/IGNyZWF0ZVNoYWRlcihHTGVudW0gdHlwZSk7CiAgICAgV2ViR0xUZXh0
dXJlPyBjcmVhdGVUZXh0dXJlKCk7CiAKLSAgICB2b2lkIGN1bGxGYWNlKEdMZW51bSBtb2RlKTsK
LQotICAgIHZvaWQgZGVsZXRlQnVmZmVyKFdlYkdMQnVmZmVyPyBidWZmZXIpOwotICAgIHZvaWQg
ZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xGcmFtZWJ1ZmZlcj8gZnJhbWVidWZmZXIpOwotICAgIHZv
aWQgZGVsZXRlUHJvZ3JhbShXZWJHTFByb2dyYW0/IHByb2dyYW0pOwotICAgIHZvaWQgZGVsZXRl
UmVuZGVyYnVmZmVyKFdlYkdMUmVuZGVyYnVmZmVyPyByZW5kZXJidWZmZXIpOwotICAgIHZvaWQg
ZGVsZXRlU2hhZGVyKFdlYkdMU2hhZGVyPyBzaGFkZXIpOwotICAgIHZvaWQgZGVsZXRlVGV4dHVy
ZShXZWJHTFRleHR1cmU/IHRleHR1cmUpOwotCi0gICAgdm9pZCBkZXB0aEZ1bmMoR0xlbnVtIGZ1
bmMpOwotICAgIHZvaWQgZGVwdGhNYXNrKEdMYm9vbGVhbiBmbGFnKTsKLSAgICB2b2lkIGRlcHRo
UmFuZ2UoR0xjbGFtcGYgek5lYXIsIEdMY2xhbXBmIHpGYXIpOwotICAgIHZvaWQgZGV0YWNoU2hh
ZGVyKFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBXZWJHTFNoYWRlciBzaGFkZXIpOwotICAgIHZvaWQg
ZGlzYWJsZShHTGVudW0gY2FwKTsKLSAgICB2b2lkIGRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShH
THVpbnQgaW5kZXgpOwotICAgIHZvaWQgZHJhd0FycmF5cyhHTGVudW0gbW9kZSwgR0xpbnQgZmly
c3QsIEdMc2l6ZWkgY291bnQpOwotICAgIHZvaWQgZHJhd0VsZW1lbnRzKEdMZW51bSBtb2RlLCBH
THNpemVpIGNvdW50LCBHTGVudW0gdHlwZSwgR0xpbnRwdHIgb2Zmc2V0KTsKLQotICAgIHZvaWQg
ZW5hYmxlKEdMZW51bSBjYXApOwotICAgIHZvaWQgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoR0x1
aW50IGluZGV4KTsKLSAgICB2b2lkIGZpbmlzaCgpOwotICAgIHZvaWQgZmx1c2goKTsKLSAgICB2
b2lkIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMZW51bSB0YXJnZXQsIEdMZW51bSBhdHRhY2ht
ZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIHJlbmRlcmJ1ZmZl
cnRhcmdldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkdMUmVuZGVyYnVm
ZmVyPyByZW5kZXJidWZmZXIpOwotICAgIHZvaWQgZnJhbWVidWZmZXJUZXh0dXJlMkQoR0xlbnVt
IHRhcmdldCwgR0xlbnVtIGF0dGFjaG1lbnQsIEdMZW51bSB0ZXh0YXJnZXQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXZWJHTFRleHR1cmU/IHRleHR1cmUsIEdMaW50IGxldmVsKTsK
LSAgICB2b2lkIGZyb250RmFjZShHTGVudW0gbW9kZSk7Ci0KLSAgICB2b2lkIGdlbmVyYXRlTWlw
bWFwKEdMZW51bSB0YXJnZXQpOworICAgIHVuZGVmaW5lZCBjdWxsRmFjZShHTGVudW0gbW9kZSk7
CisKKyAgICB1bmRlZmluZWQgZGVsZXRlQnVmZmVyKFdlYkdMQnVmZmVyPyBidWZmZXIpOworICAg
IHVuZGVmaW5lZCBkZWxldGVGcmFtZWJ1ZmZlcihXZWJHTEZyYW1lYnVmZmVyPyBmcmFtZWJ1ZmZl
cik7CisgICAgdW5kZWZpbmVkIGRlbGV0ZVByb2dyYW0oV2ViR0xQcm9ncmFtPyBwcm9ncmFtKTsK
KyAgICB1bmRlZmluZWQgZGVsZXRlUmVuZGVyYnVmZmVyKFdlYkdMUmVuZGVyYnVmZmVyPyByZW5k
ZXJidWZmZXIpOworICAgIHVuZGVmaW5lZCBkZWxldGVTaGFkZXIoV2ViR0xTaGFkZXI/IHNoYWRl
cik7CisgICAgdW5kZWZpbmVkIGRlbGV0ZVRleHR1cmUoV2ViR0xUZXh0dXJlPyB0ZXh0dXJlKTsK
KworICAgIHVuZGVmaW5lZCBkZXB0aEZ1bmMoR0xlbnVtIGZ1bmMpOworICAgIHVuZGVmaW5lZCBk
ZXB0aE1hc2soR0xib29sZWFuIGZsYWcpOworICAgIHVuZGVmaW5lZCBkZXB0aFJhbmdlKEdMY2xh
bXBmIHpOZWFyLCBHTGNsYW1wZiB6RmFyKTsKKyAgICB1bmRlZmluZWQgZGV0YWNoU2hhZGVyKFdl
YkdMUHJvZ3JhbSBwcm9ncmFtLCBXZWJHTFNoYWRlciBzaGFkZXIpOworICAgIHVuZGVmaW5lZCBk
aXNhYmxlKEdMZW51bSBjYXApOworICAgIHVuZGVmaW5lZCBkaXNhYmxlVmVydGV4QXR0cmliQXJy
YXkoR0x1aW50IGluZGV4KTsKKyAgICB1bmRlZmluZWQgZHJhd0FycmF5cyhHTGVudW0gbW9kZSwg
R0xpbnQgZmlyc3QsIEdMc2l6ZWkgY291bnQpOworICAgIHVuZGVmaW5lZCBkcmF3RWxlbWVudHMo
R0xlbnVtIG1vZGUsIEdMc2l6ZWkgY291bnQsIEdMZW51bSB0eXBlLCBHTGludHB0ciBvZmZzZXQp
OworCisgICAgdW5kZWZpbmVkIGVuYWJsZShHTGVudW0gY2FwKTsKKyAgICB1bmRlZmluZWQgZW5h
YmxlVmVydGV4QXR0cmliQXJyYXkoR0x1aW50IGluZGV4KTsKKyAgICB1bmRlZmluZWQgZmluaXNo
KCk7CisgICAgdW5kZWZpbmVkIGZsdXNoKCk7CisgICAgdW5kZWZpbmVkIGZyYW1lYnVmZmVyUmVu
ZGVyYnVmZmVyKEdMZW51bSB0YXJnZXQsIEdMZW51bSBhdHRhY2htZW50LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gcmVuZGVyYnVmZmVydGFyZ2V0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJHTFJlbmRlcmJ1ZmZlcj8gcmVu
ZGVyYnVmZmVyKTsKKyAgICB1bmRlZmluZWQgZnJhbWVidWZmZXJUZXh0dXJlMkQoR0xlbnVtIHRh
cmdldCwgR0xlbnVtIGF0dGFjaG1lbnQsIEdMZW51bSB0ZXh0YXJnZXQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYkdMVGV4dHVyZT8gdGV4dHVyZSwgR0xpbnQgbGV2ZWwp
OworICAgIHVuZGVmaW5lZCBmcm9udEZhY2UoR0xlbnVtIG1vZGUpOworCisgICAgdW5kZWZpbmVk
IGdlbmVyYXRlTWlwbWFwKEdMZW51bSB0YXJnZXQpOwogCiAgICAgV2ViR0xBY3RpdmVJbmZvPyBn
ZXRBY3RpdmVBdHRyaWIoV2ViR0xQcm9ncmFtIHByb2dyYW0sIEdMdWludCBpbmRleCk7CiAgICAg
V2ViR0xBY3RpdmVJbmZvPyBnZXRBY3RpdmVVbmlmb3JtKFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBH
THVpbnQgaW5kZXgpOwpAQCAtNjIxLDcgKzYyMSw3IEBAIGludGVyZmFjZSBtaXhpbiBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlCiAKICAgICBbV2ViR0xIYW5kbGVzQ29udGV4dExvc3NdIEdMaW50
cHRyIGdldFZlcnRleEF0dHJpYk9mZnNldChHTHVpbnQgaW5kZXgsIEdMZW51bSBwbmFtZSk7CiAK
LSAgICB2b2lkIGhpbnQoR0xlbnVtIHRhcmdldCwgR0xlbnVtIG1vZGUpOworICAgIHVuZGVmaW5l
ZCBoaW50KEdMZW51bSB0YXJnZXQsIEdMZW51bSBtb2RlKTsKICAgICBbV2ViR0xIYW5kbGVzQ29u
dGV4dExvc3NdIEdMYm9vbGVhbiBpc0J1ZmZlcihXZWJHTEJ1ZmZlcj8gYnVmZmVyKTsKICAgICBb
V2ViR0xIYW5kbGVzQ29udGV4dExvc3NdIEdMYm9vbGVhbiBpc0VuYWJsZWQoR0xlbnVtIGNhcCk7
CiAgICAgW1dlYkdMSGFuZGxlc0NvbnRleHRMb3NzXSBHTGJvb2xlYW4gaXNGcmFtZWJ1ZmZlcihX
ZWJHTEZyYW1lYnVmZmVyPyBmcmFtZWJ1ZmZlcik7CkBAIC02MjksOTkgKzYyOSw5OSBAQCBpbnRl
cmZhY2UgbWl4aW4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZQogICAgIFtXZWJHTEhhbmRsZXND
b250ZXh0TG9zc10gR0xib29sZWFuIGlzUmVuZGVyYnVmZmVyKFdlYkdMUmVuZGVyYnVmZmVyPyBy
ZW5kZXJidWZmZXIpOwogICAgIFtXZWJHTEhhbmRsZXNDb250ZXh0TG9zc10gR0xib29sZWFuIGlz
U2hhZGVyKFdlYkdMU2hhZGVyPyBzaGFkZXIpOwogICAgIFtXZWJHTEhhbmRsZXNDb250ZXh0TG9z
c10gR0xib29sZWFuIGlzVGV4dHVyZShXZWJHTFRleHR1cmU/IHRleHR1cmUpOwotICAgIHZvaWQg
bGluZVdpZHRoKEdMZmxvYXQgd2lkdGgpOwotICAgIHZvaWQgbGlua1Byb2dyYW0oV2ViR0xQcm9n
cmFtIHByb2dyYW0pOwotICAgIHZvaWQgcGl4ZWxTdG9yZWkoR0xlbnVtIHBuYW1lLCBHTGludCBw
YXJhbSk7Ci0gICAgdm9pZCBwb2x5Z29uT2Zmc2V0KEdMZmxvYXQgZmFjdG9yLCBHTGZsb2F0IHVu
aXRzKTsKLQotICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZShHTGVudW0gdGFyZ2V0LCBHTGVu
dW0gaW50ZXJuYWxmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkg
d2lkdGgsIEdMc2l6ZWkgaGVpZ2h0KTsKLSAgICB2b2lkIHNhbXBsZUNvdmVyYWdlKEdMY2xhbXBm
IHZhbHVlLCBHTGJvb2xlYW4gaW52ZXJ0KTsKLSAgICB2b2lkIHNjaXNzb3IoR0xpbnQgeCwgR0xp
bnQgeSwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQpOwotCi0gICAgdm9pZCBzaGFkZXJT
b3VyY2UoV2ViR0xTaGFkZXIgc2hhZGVyLCBET01TdHJpbmcgc291cmNlKTsKLQotICAgIHZvaWQg
c3RlbmNpbEZ1bmMoR0xlbnVtIGZ1bmMsIEdMaW50IHJlZiwgR0x1aW50IG1hc2spOwotICAgIHZv
aWQgc3RlbmNpbEZ1bmNTZXBhcmF0ZShHTGVudW0gZmFjZSwgR0xlbnVtIGZ1bmMsIEdMaW50IHJl
ZiwgR0x1aW50IG1hc2spOwotICAgIHZvaWQgc3RlbmNpbE1hc2soR0x1aW50IG1hc2spOwotICAg
IHZvaWQgc3RlbmNpbE1hc2tTZXBhcmF0ZShHTGVudW0gZmFjZSwgR0x1aW50IG1hc2spOwotICAg
IHZvaWQgc3RlbmNpbE9wKEdMZW51bSBmYWlsLCBHTGVudW0gemZhaWwsIEdMZW51bSB6cGFzcyk7
Ci0gICAgdm9pZCBzdGVuY2lsT3BTZXBhcmF0ZShHTGVudW0gZmFjZSwgR0xlbnVtIGZhaWwsIEdM
ZW51bSB6ZmFpbCwgR0xlbnVtIHpwYXNzKTsKLQotICAgIHZvaWQgdGV4UGFyYW1ldGVyZihHTGVu
dW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMZmxvYXQgcGFyYW0pOwotICAgIHZvaWQgdGV4UGFy
YW1ldGVyaShHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMaW50IHBhcmFtKTsKLQotICAg
IHZvaWQgdW5pZm9ybTFmKFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xmbG9hdCB4
KTsKLSAgICB2b2lkIHVuaWZvcm0yZihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdM
ZmxvYXQgeCwgR0xmbG9hdCB5KTsKLSAgICB2b2lkIHVuaWZvcm0zZihXZWJHTFVuaWZvcm1Mb2Nh
dGlvbj8gbG9jYXRpb24sIEdMZmxvYXQgeCwgR0xmbG9hdCB5LCBHTGZsb2F0IHopOwotICAgIHZv
aWQgdW5pZm9ybTRmKFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xmbG9hdCB4LCBH
TGZsb2F0IHksIEdMZmxvYXQgeiwgR0xmbG9hdCB3KTsKLQotICAgIHZvaWQgdW5pZm9ybTFpKFdl
YkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xpbnQgeCk7Ci0gICAgdm9pZCB1bmlmb3Jt
MmkoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGludCB4LCBHTGludCB5KTsKLSAg
ICB2b2lkIHVuaWZvcm0zaShXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMaW50IHgs
IEdMaW50IHksIEdMaW50IHopOwotICAgIHZvaWQgdW5pZm9ybTRpKFdlYkdMVW5pZm9ybUxvY2F0
aW9uPyBsb2NhdGlvbiwgR0xpbnQgeCwgR0xpbnQgeSwgR0xpbnQgeiwgR0xpbnQgdyk7Ci0KLSAg
ICB2b2lkIHVzZVByb2dyYW0oV2ViR0xQcm9ncmFtPyBwcm9ncmFtKTsKLSAgICB2b2lkIHZhbGlk
YXRlUHJvZ3JhbShXZWJHTFByb2dyYW0gcHJvZ3JhbSk7Ci0KLSAgICB2b2lkIHZlcnRleEF0dHJp
YjFmKEdMdWludCBpbmRleCwgR0xmbG9hdCB4KTsKLSAgICB2b2lkIHZlcnRleEF0dHJpYjJmKEdM
dWludCBpbmRleCwgR0xmbG9hdCB4LCBHTGZsb2F0IHkpOwotICAgIHZvaWQgdmVydGV4QXR0cmli
M2YoR0x1aW50IGluZGV4LCBHTGZsb2F0IHgsIEdMZmxvYXQgeSwgR0xmbG9hdCB6KTsKLSAgICB2
b2lkIHZlcnRleEF0dHJpYjRmKEdMdWludCBpbmRleCwgR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdM
ZmxvYXQgeiwgR0xmbG9hdCB3KTsKLQotICAgIHZvaWQgdmVydGV4QXR0cmliMWZ2KEdMdWludCBp
bmRleCwgRmxvYXQzMkxpc3QgdmFsdWVzKTsKLSAgICB2b2lkIHZlcnRleEF0dHJpYjJmdihHTHVp
bnQgaW5kZXgsIEZsb2F0MzJMaXN0IHZhbHVlcyk7Ci0gICAgdm9pZCB2ZXJ0ZXhBdHRyaWIzZnYo
R0x1aW50IGluZGV4LCBGbG9hdDMyTGlzdCB2YWx1ZXMpOwotICAgIHZvaWQgdmVydGV4QXR0cmli
NGZ2KEdMdWludCBpbmRleCwgRmxvYXQzMkxpc3QgdmFsdWVzKTsKLQotICAgIHZvaWQgdmVydGV4
QXR0cmliUG9pbnRlcihHTHVpbnQgaW5kZXgsIEdMaW50IHNpemUsIEdMZW51bSB0eXBlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHTGJvb2xlYW4gbm9ybWFsaXplZCwgR0xzaXplaSBz
dHJpZGUsIEdMaW50cHRyIG9mZnNldCk7Ci0KLSAgICB2b2lkIHZpZXdwb3J0KEdMaW50IHgsIEdM
aW50IHksIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0KTsKKyAgICB1bmRlZmluZWQgbGlu
ZVdpZHRoKEdMZmxvYXQgd2lkdGgpOworICAgIHVuZGVmaW5lZCBsaW5rUHJvZ3JhbShXZWJHTFBy
b2dyYW0gcHJvZ3JhbSk7CisgICAgdW5kZWZpbmVkIHBpeGVsU3RvcmVpKEdMZW51bSBwbmFtZSwg
R0xpbnQgcGFyYW0pOworICAgIHVuZGVmaW5lZCBwb2x5Z29uT2Zmc2V0KEdMZmxvYXQgZmFjdG9y
LCBHTGZsb2F0IHVuaXRzKTsKKworICAgIHVuZGVmaW5lZCByZW5kZXJidWZmZXJTdG9yYWdlKEdM
ZW51bSB0YXJnZXQsIEdMZW51bSBpbnRlcm5hbGZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCk7CisgICAgdW5kZWZp
bmVkIHNhbXBsZUNvdmVyYWdlKEdMY2xhbXBmIHZhbHVlLCBHTGJvb2xlYW4gaW52ZXJ0KTsKKyAg
ICB1bmRlZmluZWQgc2Npc3NvcihHTGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNp
emVpIGhlaWdodCk7CisKKyAgICB1bmRlZmluZWQgc2hhZGVyU291cmNlKFdlYkdMU2hhZGVyIHNo
YWRlciwgRE9NU3RyaW5nIHNvdXJjZSk7CisKKyAgICB1bmRlZmluZWQgc3RlbmNpbEZ1bmMoR0xl
bnVtIGZ1bmMsIEdMaW50IHJlZiwgR0x1aW50IG1hc2spOworICAgIHVuZGVmaW5lZCBzdGVuY2ls
RnVuY1NlcGFyYXRlKEdMZW51bSBmYWNlLCBHTGVudW0gZnVuYywgR0xpbnQgcmVmLCBHTHVpbnQg
bWFzayk7CisgICAgdW5kZWZpbmVkIHN0ZW5jaWxNYXNrKEdMdWludCBtYXNrKTsKKyAgICB1bmRl
ZmluZWQgc3RlbmNpbE1hc2tTZXBhcmF0ZShHTGVudW0gZmFjZSwgR0x1aW50IG1hc2spOworICAg
IHVuZGVmaW5lZCBzdGVuY2lsT3AoR0xlbnVtIGZhaWwsIEdMZW51bSB6ZmFpbCwgR0xlbnVtIHpw
YXNzKTsKKyAgICB1bmRlZmluZWQgc3RlbmNpbE9wU2VwYXJhdGUoR0xlbnVtIGZhY2UsIEdMZW51
bSBmYWlsLCBHTGVudW0gemZhaWwsIEdMZW51bSB6cGFzcyk7CisKKyAgICB1bmRlZmluZWQgdGV4
UGFyYW1ldGVyZihHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUsIEdMZmxvYXQgcGFyYW0pOwor
ICAgIHVuZGVmaW5lZCB0ZXhQYXJhbWV0ZXJpKEdMZW51bSB0YXJnZXQsIEdMZW51bSBwbmFtZSwg
R0xpbnQgcGFyYW0pOworCisgICAgdW5kZWZpbmVkIHVuaWZvcm0xZihXZWJHTFVuaWZvcm1Mb2Nh
dGlvbj8gbG9jYXRpb24sIEdMZmxvYXQgeCk7CisgICAgdW5kZWZpbmVkIHVuaWZvcm0yZihXZWJH
TFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMZmxvYXQgeCwgR0xmbG9hdCB5KTsKKyAgICB1
bmRlZmluZWQgdW5pZm9ybTNmKFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xmbG9h
dCB4LCBHTGZsb2F0IHksIEdMZmxvYXQgeik7CisgICAgdW5kZWZpbmVkIHVuaWZvcm00ZihXZWJH
TFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMZmxvYXQgeCwgR0xmbG9hdCB5LCBHTGZsb2F0
IHosIEdMZmxvYXQgdyk7CisKKyAgICB1bmRlZmluZWQgdW5pZm9ybTFpKFdlYkdMVW5pZm9ybUxv
Y2F0aW9uPyBsb2NhdGlvbiwgR0xpbnQgeCk7CisgICAgdW5kZWZpbmVkIHVuaWZvcm0yaShXZWJH
TFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMaW50IHgsIEdMaW50IHkpOworICAgIHVuZGVm
aW5lZCB1bmlmb3JtM2koV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGludCB4LCBH
TGludCB5LCBHTGludCB6KTsKKyAgICB1bmRlZmluZWQgdW5pZm9ybTRpKFdlYkdMVW5pZm9ybUxv
Y2F0aW9uPyBsb2NhdGlvbiwgR0xpbnQgeCwgR0xpbnQgeSwgR0xpbnQgeiwgR0xpbnQgdyk7CisK
KyAgICB1bmRlZmluZWQgdXNlUHJvZ3JhbShXZWJHTFByb2dyYW0/IHByb2dyYW0pOworICAgIHVu
ZGVmaW5lZCB2YWxpZGF0ZVByb2dyYW0oV2ViR0xQcm9ncmFtIHByb2dyYW0pOworCisgICAgdW5k
ZWZpbmVkIHZlcnRleEF0dHJpYjFmKEdMdWludCBpbmRleCwgR0xmbG9hdCB4KTsKKyAgICB1bmRl
ZmluZWQgdmVydGV4QXR0cmliMmYoR0x1aW50IGluZGV4LCBHTGZsb2F0IHgsIEdMZmxvYXQgeSk7
CisgICAgdW5kZWZpbmVkIHZlcnRleEF0dHJpYjNmKEdMdWludCBpbmRleCwgR0xmbG9hdCB4LCBH
TGZsb2F0IHksIEdMZmxvYXQgeik7CisgICAgdW5kZWZpbmVkIHZlcnRleEF0dHJpYjRmKEdMdWlu
dCBpbmRleCwgR0xmbG9hdCB4LCBHTGZsb2F0IHksIEdMZmxvYXQgeiwgR0xmbG9hdCB3KTsKKwor
ICAgIHVuZGVmaW5lZCB2ZXJ0ZXhBdHRyaWIxZnYoR0x1aW50IGluZGV4LCBGbG9hdDMyTGlzdCB2
YWx1ZXMpOworICAgIHVuZGVmaW5lZCB2ZXJ0ZXhBdHRyaWIyZnYoR0x1aW50IGluZGV4LCBGbG9h
dDMyTGlzdCB2YWx1ZXMpOworICAgIHVuZGVmaW5lZCB2ZXJ0ZXhBdHRyaWIzZnYoR0x1aW50IGlu
ZGV4LCBGbG9hdDMyTGlzdCB2YWx1ZXMpOworICAgIHVuZGVmaW5lZCB2ZXJ0ZXhBdHRyaWI0ZnYo
R0x1aW50IGluZGV4LCBGbG9hdDMyTGlzdCB2YWx1ZXMpOworCisgICAgdW5kZWZpbmVkIHZlcnRl
eEF0dHJpYlBvaW50ZXIoR0x1aW50IGluZGV4LCBHTGludCBzaXplLCBHTGVudW0gdHlwZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGJvb2xlYW4gbm9ybWFsaXplZCwgR0xz
aXplaSBzdHJpZGUsIEdMaW50cHRyIG9mZnNldCk7CisKKyAgICB1bmRlZmluZWQgdmlld3BvcnQo
R0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQpOwogfTsKIAog
aW50ZXJmYWNlIG1peGluIFdlYkdMUmVuZGVyaW5nQ29udGV4dE92ZXJsb2FkcwogewotICAgIHZv
aWQgYnVmZmVyRGF0YShHTGVudW0gdGFyZ2V0LCBHTHNpemVpcHRyIHNpemUsIEdMZW51bSB1c2Fn
ZSk7Ci0gICAgdm9pZCBidWZmZXJEYXRhKEdMZW51bSB0YXJnZXQsIFtBbGxvd1NoYXJlZF0gQnVm
ZmVyU291cmNlPyBkYXRhLCBHTGVudW0gdXNhZ2UpOwotICAgIHZvaWQgYnVmZmVyU3ViRGF0YShH
TGVudW0gdGFyZ2V0LCBHTGludHB0ciBvZmZzZXQsIFtBbGxvd1NoYXJlZF0gQnVmZmVyU291cmNl
IGRhdGEpOwotCi0gICAgdm9pZCBjb21wcmVzc2VkVGV4SW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBH
TGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsZm9ybWF0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMaW50IGJvcmRlciwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3
IGRhdGEpOwotICAgIHZvaWQgY29tcHJlc3NlZFRleFN1YkltYWdlMkQoR0xlbnVtIHRhcmdldCwg
R0xpbnQgbGV2ZWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGludCB4b2Zm
c2V0LCBHTGludCB5b2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xz
aXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMZW51bSBmb3JtYXQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVyVmlldyBkYXRhKTsK
LQotICAgIHZvaWQgcmVhZFBpeGVscyhHTGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBH
THNpemVpIGhlaWdodCwKLSAgICAgICAgICAgICAgICAgICAgR0xlbnVtIGZvcm1hdCwgR0xlbnVt
IHR5cGUsIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3PyBwaXhlbHMpOwotCi0gICAgdm9p
ZCB0ZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbGZv
cm1hdCwKLSAgICAgICAgICAgICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQs
IEdMaW50IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgR0xlbnVt
IHR5cGUsIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3PyBwaXhlbHMpOwotICAgIHZvaWQg
dGV4SW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgaW50ZXJuYWxmb3Jt
YXQsCi0gICAgICAgICAgICAgICAgICAgIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBUZXhJ
bWFnZVNvdXJjZSBzb3VyY2UpOyAvLyBNYXkgdGhyb3cgRE9NRXhjZXB0aW9uCi0KLSAgICB2b2lk
IHRleFN1YkltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhvZmZzZXQs
IEdMaW50IHlvZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdM
c2l6ZWkgaGVpZ2h0LAotICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBHTGVu
dW0gdHlwZSwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXc/IHBpeGVscyk7Ci0gICAgdm9p
ZCB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0
LCBHTGludCB5b2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBH
TGVudW0gdHlwZSwgVGV4SW1hZ2VTb3VyY2Ugc291cmNlKTsgLy8gTWF5IHRocm93IERPTUV4Y2Vw
dGlvbgotCi0gICAgdm9pZCB1bmlmb3JtMWZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlv
biwgRmxvYXQzMkxpc3Qgdik7Ci0gICAgdm9pZCB1bmlmb3JtMmZ2KFdlYkdMVW5pZm9ybUxvY2F0
aW9uPyBsb2NhdGlvbiwgRmxvYXQzMkxpc3Qgdik7Ci0gICAgdm9pZCB1bmlmb3JtM2Z2KFdlYkdM
VW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgRmxvYXQzMkxpc3Qgdik7Ci0gICAgdm9pZCB1bmlm
b3JtNGZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgRmxvYXQzMkxpc3Qgdik7Ci0K
LSAgICB2b2lkIHVuaWZvcm0xaXYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBJbnQz
Mkxpc3Qgdik7Ci0gICAgdm9pZCB1bmlmb3JtMml2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2Nh
dGlvbiwgSW50MzJMaXN0IHYpOwotICAgIHZvaWQgdW5pZm9ybTNpdihXZWJHTFVuaWZvcm1Mb2Nh
dGlvbj8gbG9jYXRpb24sIEludDMyTGlzdCB2KTsKLSAgICB2b2lkIHVuaWZvcm00aXYoV2ViR0xV
bmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBJbnQzMkxpc3Qgdik7Ci0KLSAgICB2b2lkIHVuaWZv
cm1NYXRyaXgyZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJh
bnNwb3NlLCBGbG9hdDMyTGlzdCB2YWx1ZSk7Ci0gICAgdm9pZCB1bmlmb3JtTWF0cml4M2Z2KFdl
YkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQz
Mkxpc3QgdmFsdWUpOwotICAgIHZvaWQgdW5pZm9ybU1hdHJpeDRmdihXZWJHTFVuaWZvcm1Mb2Nh
dGlvbj8gbG9jYXRpb24sIEdMYm9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0IHZhbHVlKTsK
KyAgICB1bmRlZmluZWQgYnVmZmVyRGF0YShHTGVudW0gdGFyZ2V0LCBHTHNpemVpcHRyIHNpemUs
IEdMZW51bSB1c2FnZSk7CisgICAgdW5kZWZpbmVkIGJ1ZmZlckRhdGEoR0xlbnVtIHRhcmdldCwg
W0FsbG93U2hhcmVkXSBCdWZmZXJTb3VyY2U/IGRhdGEsIEdMZW51bSB1c2FnZSk7CisgICAgdW5k
ZWZpbmVkIGJ1ZmZlclN1YkRhdGEoR0xlbnVtIHRhcmdldCwgR0xpbnRwdHIgb2Zmc2V0LCBbQWxs
b3dTaGFyZWRdIEJ1ZmZlclNvdXJjZSBkYXRhKTsKKworICAgIHVuZGVmaW5lZCBjb21wcmVzc2Vk
VGV4SW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsZm9y
bWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIHdpZHRoLCBH
THNpemVpIGhlaWdodCwgR0xpbnQgYm9yZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVyVmlldyBkYXRhKTsKKyAgICB1bmRlZmlu
ZWQgY29tcHJlc3NlZFRleFN1YkltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IHhvZmZzZXQsIEdMaW50
IHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkg
d2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVyVmlldyBkYXRhKTsK
KworICAgIHVuZGVmaW5lZCByZWFkUGl4ZWxzKEdMaW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lk
dGgsIEdMc2l6ZWkgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBmb3Jt
YXQsIEdMZW51bSB0eXBlLCBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVyVmlldz8gcGl4ZWxzKTsK
KworICAgIHVuZGVmaW5lZCB0ZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBH
TGludCBpbnRlcm5hbGZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIHdp
ZHRoLCBHTHNpemVpIGhlaWdodCwgR0xpbnQgYm9yZGVyLCBHTGVudW0gZm9ybWF0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgIEdMZW51bSB0eXBlLCBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVy
Vmlldz8gcGl4ZWxzKTsKKyAgICB1bmRlZmluZWQgdGV4SW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBH
TGludCBsZXZlbCwgR0xpbnQgaW50ZXJuYWxmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIFRleEltYWdlU291cmNlIHNvdXJjZSk7IC8v
IE1heSB0aHJvdyBET01FeGNlcHRpb24KKworICAgIHVuZGVmaW5lZCB0ZXhTdWJJbWFnZTJEKEdM
ZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBl
LCBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVyVmlldz8gcGl4ZWxzKTsKKyAgICB1bmRlZmluZWQg
dGV4U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwg
R0xpbnQgeW9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0
LCBHTGVudW0gdHlwZSwgVGV4SW1hZ2VTb3VyY2Ugc291cmNlKTsgLy8gTWF5IHRocm93IERPTUV4
Y2VwdGlvbgorCisgICAgdW5kZWZpbmVkIHVuaWZvcm0xZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/
IGxvY2F0aW9uLCBGbG9hdDMyTGlzdCB2KTsKKyAgICB1bmRlZmluZWQgdW5pZm9ybTJmdihXZWJH
TFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEZsb2F0MzJMaXN0IHYpOworICAgIHVuZGVmaW5l
ZCB1bmlmb3JtM2Z2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgRmxvYXQzMkxpc3Qg
dik7CisgICAgdW5kZWZpbmVkIHVuaWZvcm00ZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0
aW9uLCBGbG9hdDMyTGlzdCB2KTsKKworICAgIHVuZGVmaW5lZCB1bmlmb3JtMWl2KFdlYkdMVW5p
Zm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgSW50MzJMaXN0IHYpOworICAgIHVuZGVmaW5lZCB1bmlm
b3JtMml2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgSW50MzJMaXN0IHYpOworICAg
IHVuZGVmaW5lZCB1bmlmb3JtM2l2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgSW50
MzJMaXN0IHYpOworICAgIHVuZGVmaW5lZCB1bmlmb3JtNGl2KFdlYkdMVW5pZm9ybUxvY2F0aW9u
PyBsb2NhdGlvbiwgSW50MzJMaXN0IHYpOworCisgICAgdW5kZWZpbmVkIHVuaWZvcm1NYXRyaXgy
ZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBG
bG9hdDMyTGlzdCB2YWx1ZSk7CisgICAgdW5kZWZpbmVkIHVuaWZvcm1NYXRyaXgzZnYoV2ViR0xV
bmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlz
dCB2YWx1ZSk7CisgICAgdW5kZWZpbmVkIHVuaWZvcm1NYXRyaXg0ZnYoV2ViR0xVbmlmb3JtTG9j
YXRpb24/IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCB2YWx1ZSk7
CiB9OwogCiBbRXhwb3NlZD0oV2luZG93LFdvcmtlcildCkBAIC03MzEsMTAgKzczMSw5IEBAIGlu
dGVyZmFjZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQKIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBpbmNs
dWRlcyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOwogV2ViR0xSZW5kZXJpbmdDb250ZXh0IGlu
Y2x1ZGVzIFdlYkdMUmVuZGVyaW5nQ29udGV4dE92ZXJsb2FkczsKIAotW0V4cG9zZWQ9KFdpbmRv
dyxXb3JrZXIpLAotIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLAotIG9wdGlvbmFsIFdlYkdM
Q29udGV4dEV2ZW50SW5pdCBldmVudEluaXQgPSB7fSldCitbRXhwb3NlZD0oV2luZG93LFdvcmtl
cildCiBpbnRlcmZhY2UgV2ViR0xDb250ZXh0RXZlbnQgOiBFdmVudCB7CisgICAgY29uc3RydWN0
b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIFdlYkdMQ29udGV4dEV2ZW50SW5pdCBldmVudElu
aXQgPSB7fSk7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzdGF0dXNNZXNzYWdl
OwogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbnRlcmZhY2VzL3dlYmdsMi5pZGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvd2ViZ2wyLmlkbAppbmRleCBiMmU2NjBlNmI2
NTQ1ZjMzZTRhY2I2ZTM3OGJjZTM1MTdhYjRkNGNiLi41MTg2MzdmY2M3MmQzZTAyOTI0ZjAwZDI2
OWJmMWM1Njc5NDgwNmRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvd2ViZ2wyLmlkbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvd2ViZ2wyLmlkbApAQCAt
Mjk4LDI3OSArMjk4LDI3OSBAQCBpbnRlcmZhY2UgbWl4aW4gV2ViR0wyUmVuZGVyaW5nQ29udGV4
dEJhc2UKICAgY29uc3QgR0xlbnVtIE1BWF9DTElFTlRfV0FJVF9USU1FT1VUX1dFQkdMICAgICAg
ICAgICAgICAgICA9IDB4OTI0NzsKIAogICAvKiBCdWZmZXIgb2JqZWN0cyAqLwotICB2b2lkIGNv
cHlCdWZmZXJTdWJEYXRhKEdMZW51bSByZWFkVGFyZ2V0LCBHTGVudW0gd3JpdGVUYXJnZXQsIEdM
aW50cHRyIHJlYWRPZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnRwdHIgd3Jp
dGVPZmZzZXQsIEdMc2l6ZWlwdHIgc2l6ZSk7CisgIHVuZGVmaW5lZCBjb3B5QnVmZmVyU3ViRGF0
YShHTGVudW0gcmVhZFRhcmdldCwgR0xlbnVtIHdyaXRlVGFyZ2V0LCBHTGludHB0ciByZWFkT2Zm
c2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnRwdHIgd3JpdGVPZmZzZXQs
IEdMc2l6ZWlwdHIgc2l6ZSk7CiAgIC8vIE1hcEJ1ZmZlclJhbmdlLCBpbiBwYXJ0aWN1bGFyIGl0
cyByZWFkLW9ubHkgYW5kIHdyaXRlLW9ubHkgbW9kZXMsCiAgIC8vIGNhbiBub3QgYmUgZXhwb3Nl
ZCBzYWZlbHkgdG8gSmF2YVNjcmlwdC4gR2V0QnVmZmVyU3ViRGF0YQogICAvLyByZXBsYWNlcyBp
dCBmb3IgdGhlIHB1cnBvc2Ugb2YgZmV0Y2hpbmcgZGF0YSBiYWNrIGZyb20gdGhlIEdQVS4KLSAg
dm9pZCBnZXRCdWZmZXJTdWJEYXRhKEdMZW51bSB0YXJnZXQsIEdMaW50cHRyIHNyY0J5dGVPZmZz
ZXQsIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3IGRzdEJ1ZmZlciwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBkc3RPZmZzZXQgPSAwLCBvcHRpb25hbCBHTHVp
bnQgbGVuZ3RoID0gMCk7CisgIHVuZGVmaW5lZCBnZXRCdWZmZXJTdWJEYXRhKEdMZW51bSB0YXJn
ZXQsIEdMaW50cHRyIHNyY0J5dGVPZmZzZXQsIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3
IGRzdEJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50
IGRzdE9mZnNldCA9IDAsIG9wdGlvbmFsIEdMdWludCBsZW5ndGggPSAwKTsKIAogICAvKiBGcmFt
ZWJ1ZmZlciBvYmplY3RzICovCi0gIHZvaWQgYmxpdEZyYW1lYnVmZmVyKEdMaW50IHNyY1gwLCBH
TGludCBzcmNZMCwgR0xpbnQgc3JjWDEsIEdMaW50IHNyY1kxLCBHTGludCBkc3RYMCwgR0xpbnQg
ZHN0WTAsCi0gICAgICAgICAgICAgICAgICAgICAgIEdMaW50IGRzdFgxLCBHTGludCBkc3RZMSwg
R0xiaXRmaWVsZCBtYXNrLCBHTGVudW0gZmlsdGVyKTsKLSAgdm9pZCBmcmFtZWJ1ZmZlclRleHR1
cmVMYXllcihHTGVudW0gdGFyZ2V0LCBHTGVudW0gYXR0YWNobWVudCwgV2ViR0xUZXh0dXJlPyB0
ZXh0dXJlLCBHTGludCBsZXZlbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGlu
dCBsYXllcik7Ci0gIHZvaWQgaW52YWxpZGF0ZUZyYW1lYnVmZmVyKEdMZW51bSB0YXJnZXQsIHNl
cXVlbmNlPEdMZW51bT4gYXR0YWNobWVudHMpOwotICB2b2lkIGludmFsaWRhdGVTdWJGcmFtZWJ1
ZmZlcihHTGVudW0gdGFyZ2V0LCBzZXF1ZW5jZTxHTGVudW0+IGF0dGFjaG1lbnRzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHTGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRo
LCBHTHNpemVpIGhlaWdodCk7Ci0gIHZvaWQgcmVhZEJ1ZmZlcihHTGVudW0gc3JjKTsKKyAgdW5k
ZWZpbmVkIGJsaXRGcmFtZWJ1ZmZlcihHTGludCBzcmNYMCwgR0xpbnQgc3JjWTAsIEdMaW50IHNy
Y1gxLCBHTGludCBzcmNZMSwgR0xpbnQgZHN0WDAsIEdMaW50IGRzdFkwLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdMaW50IGRzdFgxLCBHTGludCBkc3RZMSwgR0xiaXRmaWVsZCBtYXNr
LCBHTGVudW0gZmlsdGVyKTsKKyAgdW5kZWZpbmVkIGZyYW1lYnVmZmVyVGV4dHVyZUxheWVyKEdM
ZW51bSB0YXJnZXQsIEdMZW51bSBhdHRhY2htZW50LCBXZWJHTFRleHR1cmU/IHRleHR1cmUsIEdM
aW50IGxldmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgbGF5
ZXIpOworICB1bmRlZmluZWQgaW52YWxpZGF0ZUZyYW1lYnVmZmVyKEdMZW51bSB0YXJnZXQsIHNl
cXVlbmNlPEdMZW51bT4gYXR0YWNobWVudHMpOworICB1bmRlZmluZWQgaW52YWxpZGF0ZVN1YkZy
YW1lYnVmZmVyKEdMZW51bSB0YXJnZXQsIHNlcXVlbmNlPEdMZW51bT4gYXR0YWNobWVudHMsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgeCwgR0xpbnQgeSwgR0xz
aXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQpOworICB1bmRlZmluZWQgcmVhZEJ1ZmZlcihHTGVu
dW0gc3JjKTsKIAogICAvKiBSZW5kZXJidWZmZXIgb2JqZWN0cyAqLwogICBhbnkgZ2V0SW50ZXJu
YWxmb3JtYXRQYXJhbWV0ZXIoR0xlbnVtIHRhcmdldCwgR0xlbnVtIGludGVybmFsZm9ybWF0LCBH
TGVudW0gcG5hbWUpOwotICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZShHTGVu
dW0gdGFyZ2V0LCBHTHNpemVpIHNhbXBsZXMsIEdMZW51bSBpbnRlcm5hbGZvcm1hdCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBo
ZWlnaHQpOworICB1bmRlZmluZWQgcmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdMZW51
bSB0YXJnZXQsIEdMc2l6ZWkgc2FtcGxlcywgR0xlbnVtIGludGVybmFsZm9ybWF0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6
ZWkgaGVpZ2h0KTsKIAogICAvKiBUZXh0dXJlIG9iamVjdHMgKi8KLSAgdm9pZCB0ZXhTdG9yYWdl
MkQoR0xlbnVtIHRhcmdldCwgR0xzaXplaSBsZXZlbHMsIEdMZW51bSBpbnRlcm5hbGZvcm1hdCwg
R0xzaXplaSB3aWR0aCwKLSAgICAgICAgICAgICAgICAgICAgR0xzaXplaSBoZWlnaHQpOwotICB2
b2lkIHRleFN0b3JhZ2UzRChHTGVudW0gdGFyZ2V0LCBHTHNpemVpIGxldmVscywgR0xlbnVtIGlu
dGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLAotICAgICAgICAgICAgICAgICAgICBHTHNpemVp
IGhlaWdodCwgR0xzaXplaSBkZXB0aCk7Ci0KLSAgdm9pZCB0ZXhJbWFnZTNEKEdMZW51bSB0YXJn
ZXQsIEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xz
aXplaSBoZWlnaHQsCi0gICAgICAgICAgICAgICAgICBHTHNpemVpIGRlcHRoLCBHTGludCBib3Jk
ZXIsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBHTGludHB0ciBwYm9PZmZzZXQpOwotICB2
b2lkIHRleEltYWdlM0QoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IGludGVybmFs
Zm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwKLSAgICAgICAgICAgICAgICAg
IEdMc2l6ZWkgZGVwdGgsIEdMaW50IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUs
Ci0gICAgICAgICAgICAgICAgICBUZXhJbWFnZVNvdXJjZSBzb3VyY2UpOyAvLyBNYXkgdGhyb3cg
RE9NRXhjZXB0aW9uCi0gIHZvaWQgdGV4SW1hZ2UzRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZl
bCwgR0xpbnQgaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAot
ICAgICAgICAgICAgICAgICAgR0xzaXplaSBkZXB0aCwgR0xpbnQgYm9yZGVyLCBHTGVudW0gZm9y
bWF0LCBHTGVudW0gdHlwZSwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXc/IHNyY0RhdGEp
OwotICB2b2lkIHRleEltYWdlM0QoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IGlu
dGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwKLSAgICAgICAgICAg
ICAgICAgIEdMc2l6ZWkgZGVwdGgsIEdMaW50IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwgR0xlbnVt
IHR5cGUsIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3IHNyY0RhdGEsCi0gICAgICAgICAg
ICAgICAgICBHTHVpbnQgc3JjT2Zmc2V0KTsKLQotICB2b2lkIHRleFN1YkltYWdlM0QoR0xlbnVt
IHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsIEdMaW50
IHpvZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhl
aWdodCwgR0xzaXplaSBkZXB0aCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsCi0gICAgICAg
ICAgICAgICAgICAgICBHTGludHB0ciBwYm9PZmZzZXQpOwotICB2b2lkIHRleFN1YkltYWdlM0Qo
R0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQs
IEdMaW50IHpvZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICBHTHNpemVpIHdpZHRoLCBHTHNp
emVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsCi0g
ICAgICAgICAgICAgICAgICAgICBUZXhJbWFnZVNvdXJjZSBzb3VyY2UpOyAvLyBNYXkgdGhyb3cg
RE9NRXhjZXB0aW9uCi0gIHZvaWQgdGV4U3ViSW1hZ2UzRChHTGVudW0gdGFyZ2V0LCBHTGludCBs
ZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwgR0xpbnQgem9mZnNldCwKLSAgICAg
ICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTHNpemVpIGRl
cHRoLCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgIFtB
bGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3PyBzcmNEYXRhLCBvcHRpb25hbCBHTHVpbnQgc3Jj
T2Zmc2V0ID0gMCk7Ci0KLSAgdm9pZCBjb3B5VGV4U3ViSW1hZ2UzRChHTGVudW0gdGFyZ2V0LCBH
TGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwgR0xpbnQgem9mZnNldCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICBHTGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRo
LCBHTHNpemVpIGhlaWdodCk7Ci0KLSAgdm9pZCBjb21wcmVzc2VkVGV4SW1hZ2UzRChHTGVudW0g
dGFyZ2V0LCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRo
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgaGVpZ2h0LCBHTHNpemVpIGRl
cHRoLCBHTGludCBib3JkZXIsIEdMc2l6ZWkgaW1hZ2VTaXplLCBHTGludHB0ciBvZmZzZXQpOwot
ICB2b2lkIGNvbXByZXNzZWRUZXhJbWFnZTNEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBH
TGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR0xzaXplaSBoZWlnaHQsIEdMc2l6ZWkgZGVwdGgsIEdMaW50IGJvcmRlciwgW0Fs
bG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXcgc3JjRGF0YSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwgb3B0aW9uYWwgR0x1aW50IHNy
Y0xlbmd0aE92ZXJyaWRlID0gMCk7Ci0KLSAgdm9pZCBjb21wcmVzc2VkVGV4U3ViSW1hZ2UzRChH
TGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGludCB6b2Zmc2V0LCBHTHNpemVpIHdp
ZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBHTHNpemVpIGltYWdlU2l6ZSwgR0xpbnRwdHIgb2Zm
c2V0KTsKLSAgdm9pZCBjb21wcmVzc2VkVGV4U3ViSW1hZ2UzRChHTGVudW0gdGFyZ2V0LCBHTGlu
dCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHTGludCB6b2Zmc2V0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdo
dCwgR0xzaXplaSBkZXB0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0g
Zm9ybWF0LCBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVyVmlldyBzcmNEYXRhLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAwLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGhPdmVy
cmlkZSA9IDApOworICB1bmRlZmluZWQgdGV4U3RvcmFnZTJEKEdMZW51bSB0YXJnZXQsIEdMc2l6
ZWkgbGV2ZWxzLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgR0xzaXplaSBoZWlnaHQpOworICB1bmRlZmluZWQgdGV4U3RvcmFn
ZTNEKEdMZW51bSB0YXJnZXQsIEdMc2l6ZWkgbGV2ZWxzLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQs
IEdMc2l6ZWkgd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSBoZWlnaHQs
IEdMc2l6ZWkgZGVwdGgpOworCisgIHVuZGVmaW5lZCB0ZXhJbWFnZTNEKEdMZW51bSB0YXJnZXQs
IEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xzaXpl
aSBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgZGVwdGgsIEdMaW50IGJv
cmRlciwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIEdMaW50cHRyIHBib09mZnNldCk7Cisg
IHVuZGVmaW5lZCB0ZXhJbWFnZTNEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCBp
bnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsCisgICAgICAgICAg
ICAgICAgICAgICAgIEdMc2l6ZWkgZGVwdGgsIEdMaW50IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwg
R0xlbnVtIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgIFRleEltYWdlU291cmNlIHNvdXJj
ZSk7IC8vIE1heSB0aHJvdyBET01FeGNlcHRpb24KKyAgdW5kZWZpbmVkIHRleEltYWdlM0QoR0xl
bnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdp
ZHRoLCBHTHNpemVpIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSBkZXB0
aCwgR0xpbnQgYm9yZGVyLCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgW0FsbG93U2hhcmVk
XSBBcnJheUJ1ZmZlclZpZXc/IHNyY0RhdGEpOworICB1bmRlZmluZWQgdGV4SW1hZ2UzRChHTGVu
dW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lk
dGgsIEdMc2l6ZWkgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIGRlcHRo
LCBHTGludCBib3JkZXIsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBbQWxsb3dTaGFyZWRd
IEFycmF5QnVmZmVyVmlldyBzcmNEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICBHTHVpbnQg
c3JjT2Zmc2V0KTsKKworICB1bmRlZmluZWQgdGV4U3ViSW1hZ2UzRChHTGVudW0gdGFyZ2V0LCBH
TGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwgR0xpbnQgem9mZnNldCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQs
IEdMc2l6ZWkgZGVwdGgsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICBHTGludHB0ciBwYm9PZmZzZXQpOworICB1bmRlZmluZWQgdGV4U3ViSW1h
Z2UzRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9m
ZnNldCwgR0xpbnQgem9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSB3
aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMc2l6ZWkgZGVwdGgsIEdMZW51bSBmb3JtYXQsIEdMZW51
bSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBUZXhJbWFnZVNvdXJjZSBzb3VyY2Up
OyAvLyBNYXkgdGhyb3cgRE9NRXhjZXB0aW9uCisgIHVuZGVmaW5lZCB0ZXhTdWJJbWFnZTNEKEdM
ZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBH
TGludCB6b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIHdpZHRoLCBH
THNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3
PyBzcmNEYXRhLCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCk7CisKKyAgdW5kZWZpbmVk
IGNvcHlUZXhTdWJJbWFnZTNEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zm
c2V0LCBHTGludCB5b2Zmc2V0LCBHTGludCB6b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR0xpbnQgeCwgR0xpbnQgeSwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQp
OworCisgIHVuZGVmaW5lZCBjb21wcmVzc2VkVGV4SW1hZ2UzRChHTGVudW0gdGFyZ2V0LCBHTGlu
dCBsZXZlbCwgR0xlbnVtIGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSBoZWlnaHQsIEdMc2l6ZWkgZGVwdGgsIEdM
aW50IGJvcmRlciwgR0xzaXplaSBpbWFnZVNpemUsIEdMaW50cHRyIG9mZnNldCk7CisgIHVuZGVm
aW5lZCBjb21wcmVzc2VkVGV4SW1hZ2UzRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xl
bnVtIGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0xzaXplaSBoZWlnaHQsIEdMc2l6ZWkgZGVwdGgsIEdMaW50IGJvcmRlciwg
W0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXcgc3JjRGF0YSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAwLCBvcHRpb25hbCBH
THVpbnQgc3JjTGVuZ3RoT3ZlcnJpZGUgPSAwKTsKKworICB1bmRlZmluZWQgY29tcHJlc3NlZFRl
eFN1YkltYWdlM0QoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdM
aW50IHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGludCB6
b2Zmc2V0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBmb3JtYXQsIEdMc2l6ZWkg
aW1hZ2VTaXplLCBHTGludHB0ciBvZmZzZXQpOworICB1bmRlZmluZWQgY29tcHJlc3NlZFRleFN1
YkltYWdlM0QoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50
IHlvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGludCB6b2Zm
c2V0LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xzaXplaSBkZXB0aCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBmb3JtYXQsIFtBbGxvd1NoYXJl
ZF0gQXJyYXlCdWZmZXJWaWV3IHNyY0RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGhPdmVycmlkZSA9IDAp
OwogCiAgIC8qIFByb2dyYW1zIGFuZCBzaGFkZXJzICovCiAgIFtXZWJHTEhhbmRsZXNDb250ZXh0
TG9zc10gR0xpbnQgZ2V0RnJhZ0RhdGFMb2NhdGlvbihXZWJHTFByb2dyYW0gcHJvZ3JhbSwgRE9N
U3RyaW5nIG5hbWUpOwogCiAgIC8qIFVuaWZvcm1zICovCi0gIHZvaWQgdW5pZm9ybTF1aShXZWJH
TFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMdWludCB2MCk7Ci0gIHZvaWQgdW5pZm9ybTJ1
aShXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMdWludCB2MCwgR0x1aW50IHYxKTsK
LSAgdm9pZCB1bmlmb3JtM3VpKFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0x1aW50
IHYwLCBHTHVpbnQgdjEsIEdMdWludCB2Mik7Ci0gIHZvaWQgdW5pZm9ybTR1aShXZWJHTFVuaWZv
cm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMdWludCB2MCwgR0x1aW50IHYxLCBHTHVpbnQgdjIsIEdM
dWludCB2Myk7Ci0KLSAgdm9pZCB1bmlmb3JtMXVpdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9j
YXRpb24sIFVpbnQzMkxpc3QgZGF0YSwgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsCi0g
ICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoID0gMCk7Ci0gIHZvaWQg
dW5pZm9ybTJ1aXYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBVaW50MzJMaXN0IGRh
dGEsIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAwLAotICAgICAgICAgICAgICAgICAgb3B0
aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOwotICB2b2lkIHVuaWZvcm0zdWl2KFdlYkdMVW5p
Zm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgVWludDMyTGlzdCBkYXRhLCBvcHRpb25hbCBHTHVpbnQg
c3JjT2Zmc2V0ID0gMCwKLSAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5n
dGggPSAwKTsKLSAgdm9pZCB1bmlmb3JtNHVpdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRp
b24sIFVpbnQzMkxpc3QgZGF0YSwgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsCi0gICAg
ICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoID0gMCk7Ci0gIHZvaWQgdW5p
Zm9ybU1hdHJpeDN4MmZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xib29sZWFu
IHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
b3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGgg
PSAwKTsKLSAgdm9pZCB1bmlmb3JtTWF0cml4NHgyZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxv
Y2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCBkYXRhLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwgb3B0aW9uYWwg
R0x1aW50IHNyY0xlbmd0aCA9IDApOwotCi0gIHZvaWQgdW5pZm9ybU1hdHJpeDJ4M2Z2KFdlYkdM
VW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxp
c3QgZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY09m
ZnNldCA9IDAsIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKLSAgdm9pZCB1bmlmb3Jt
TWF0cml4NHgzZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJh
bnNwb3NlLCBGbG9hdDMyTGlzdCBkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRp
b25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDAp
OwotCi0gIHZvaWQgdW5pZm9ybU1hdHJpeDJ4NGZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2Nh
dGlvbiwgR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0YSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsIG9wdGlvbmFsIEdM
dWludCBzcmNMZW5ndGggPSAwKTsKLSAgdm9pZCB1bmlmb3JtTWF0cml4M3g0ZnYoV2ViR0xVbmlm
b3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCBk
YXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0
ID0gMCwgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOworICB1bmRlZmluZWQgdW5pZm9y
bTF1aShXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMdWludCB2MCk7CisgIHVuZGVm
aW5lZCB1bmlmb3JtMnVpKFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0x1aW50IHYw
LCBHTHVpbnQgdjEpOworICB1bmRlZmluZWQgdW5pZm9ybTN1aShXZWJHTFVuaWZvcm1Mb2NhdGlv
bj8gbG9jYXRpb24sIEdMdWludCB2MCwgR0x1aW50IHYxLCBHTHVpbnQgdjIpOworICB1bmRlZmlu
ZWQgdW5pZm9ybTR1aShXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMdWludCB2MCwg
R0x1aW50IHYxLCBHTHVpbnQgdjIsIEdMdWludCB2Myk7CisKKyAgdW5kZWZpbmVkIHVuaWZvcm0x
dWl2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgVWludDMyTGlzdCBkYXRhLCBvcHRp
b25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlv
bmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKKyAgdW5kZWZpbmVkIHVuaWZvcm0ydWl2KFdlYkdM
VW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgVWludDMyTGlzdCBkYXRhLCBvcHRpb25hbCBHTHVp
bnQgc3JjT2Zmc2V0ID0gMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWlu
dCBzcmNMZW5ndGggPSAwKTsKKyAgdW5kZWZpbmVkIHVuaWZvcm0zdWl2KFdlYkdMVW5pZm9ybUxv
Y2F0aW9uPyBsb2NhdGlvbiwgVWludDMyTGlzdCBkYXRhLCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zm
c2V0ID0gMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5n
dGggPSAwKTsKKyAgdW5kZWZpbmVkIHVuaWZvcm00dWl2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBs
b2NhdGlvbiwgVWludDMyTGlzdCBkYXRhLCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwK
KyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsK
KyAgdW5kZWZpbmVkIHVuaWZvcm1NYXRyaXgzeDJmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9j
YXRpb24sIEdMYm9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0MzJMaXN0IGRhdGEsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsIG9wdGlv
bmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKKyAgdW5kZWZpbmVkIHVuaWZvcm1NYXRyaXg0eDJm
dihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMYm9vbGVhbiB0cmFuc3Bvc2UsIEZs
b2F0MzJMaXN0IGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwg
R0x1aW50IHNyY09mZnNldCA9IDAsIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKKwor
ICB1bmRlZmluZWQgdW5pZm9ybU1hdHJpeDJ4M2Z2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2Nh
dGlvbiwgR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0YSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwgb3B0aW9u
YWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOworICB1bmRlZmluZWQgdW5pZm9ybU1hdHJpeDR4M2Z2
KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xib29sZWFuIHRyYW5zcG9zZSwgRmxv
YXQzMkxpc3QgZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBH
THVpbnQgc3JjT2Zmc2V0ID0gMCwgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOworCisg
IHVuZGVmaW5lZCB1bmlmb3JtTWF0cml4Mng0ZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0
aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCBkYXRhLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAwLCBvcHRpb25h
bCBHTHVpbnQgc3JjTGVuZ3RoID0gMCk7CisgIHVuZGVmaW5lZCB1bmlmb3JtTWF0cml4M3g0ZnYo
V2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9h
dDMyTGlzdCBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdM
dWludCBzcmNPZmZzZXQgPSAwLCBvcHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoID0gMCk7CiAKICAg
LyogVmVydGV4IGF0dHJpYnMgKi8KLSAgdm9pZCB2ZXJ0ZXhBdHRyaWJJNGkoR0x1aW50IGluZGV4
LCBHTGludCB4LCBHTGludCB5LCBHTGludCB6LCBHTGludCB3KTsKLSAgdm9pZCB2ZXJ0ZXhBdHRy
aWJJNGl2KEdMdWludCBpbmRleCwgSW50MzJMaXN0IHZhbHVlcyk7Ci0gIHZvaWQgdmVydGV4QXR0
cmliSTR1aShHTHVpbnQgaW5kZXgsIEdMdWludCB4LCBHTHVpbnQgeSwgR0x1aW50IHosIEdMdWlu
dCB3KTsKLSAgdm9pZCB2ZXJ0ZXhBdHRyaWJJNHVpdihHTHVpbnQgaW5kZXgsIFVpbnQzMkxpc3Qg
dmFsdWVzKTsKLSAgdm9pZCB2ZXJ0ZXhBdHRyaWJJUG9pbnRlcihHTHVpbnQgaW5kZXgsIEdMaW50
IHNpemUsIEdMZW51bSB0eXBlLCBHTHNpemVpIHN0cmlkZSwgR0xpbnRwdHIgb2Zmc2V0KTsKKyAg
dW5kZWZpbmVkIHZlcnRleEF0dHJpYkk0aShHTHVpbnQgaW5kZXgsIEdMaW50IHgsIEdMaW50IHks
IEdMaW50IHosIEdMaW50IHcpOworICB1bmRlZmluZWQgdmVydGV4QXR0cmliSTRpdihHTHVpbnQg
aW5kZXgsIEludDMyTGlzdCB2YWx1ZXMpOworICB1bmRlZmluZWQgdmVydGV4QXR0cmliSTR1aShH
THVpbnQgaW5kZXgsIEdMdWludCB4LCBHTHVpbnQgeSwgR0x1aW50IHosIEdMdWludCB3KTsKKyAg
dW5kZWZpbmVkIHZlcnRleEF0dHJpYkk0dWl2KEdMdWludCBpbmRleCwgVWludDMyTGlzdCB2YWx1
ZXMpOworICB1bmRlZmluZWQgdmVydGV4QXR0cmliSVBvaW50ZXIoR0x1aW50IGluZGV4LCBHTGlu
dCBzaXplLCBHTGVudW0gdHlwZSwgR0xzaXplaSBzdHJpZGUsIEdMaW50cHRyIG9mZnNldCk7CiAK
ICAgLyogV3JpdGluZyB0byB0aGUgZHJhd2luZyBidWZmZXIgKi8KLSAgdm9pZCB2ZXJ0ZXhBdHRy
aWJEaXZpc29yKEdMdWludCBpbmRleCwgR0x1aW50IGRpdmlzb3IpOwotICB2b2lkIGRyYXdBcnJh
eXNJbnN0YW5jZWQoR0xlbnVtIG1vZGUsIEdMaW50IGZpcnN0LCBHTHNpemVpIGNvdW50LCBHTHNp
emVpIGluc3RhbmNlQ291bnQpOwotICB2b2lkIGRyYXdFbGVtZW50c0luc3RhbmNlZChHTGVudW0g
bW9kZSwgR0xzaXplaSBjb3VudCwgR0xlbnVtIHR5cGUsIEdMaW50cHRyIG9mZnNldCwgR0xzaXpl
aSBpbnN0YW5jZUNvdW50KTsKLSAgdm9pZCBkcmF3UmFuZ2VFbGVtZW50cyhHTGVudW0gbW9kZSwg
R0x1aW50IHN0YXJ0LCBHTHVpbnQgZW5kLCBHTHNpemVpIGNvdW50LCBHTGVudW0gdHlwZSwgR0xp
bnRwdHIgb2Zmc2V0KTsKKyAgdW5kZWZpbmVkIHZlcnRleEF0dHJpYkRpdmlzb3IoR0x1aW50IGlu
ZGV4LCBHTHVpbnQgZGl2aXNvcik7CisgIHVuZGVmaW5lZCBkcmF3QXJyYXlzSW5zdGFuY2VkKEdM
ZW51bSBtb2RlLCBHTGludCBmaXJzdCwgR0xzaXplaSBjb3VudCwgR0xzaXplaSBpbnN0YW5jZUNv
dW50KTsKKyAgdW5kZWZpbmVkIGRyYXdFbGVtZW50c0luc3RhbmNlZChHTGVudW0gbW9kZSwgR0xz
aXplaSBjb3VudCwgR0xlbnVtIHR5cGUsIEdMaW50cHRyIG9mZnNldCwgR0xzaXplaSBpbnN0YW5j
ZUNvdW50KTsKKyAgdW5kZWZpbmVkIGRyYXdSYW5nZUVsZW1lbnRzKEdMZW51bSBtb2RlLCBHTHVp
bnQgc3RhcnQsIEdMdWludCBlbmQsIEdMc2l6ZWkgY291bnQsIEdMZW51bSB0eXBlLCBHTGludHB0
ciBvZmZzZXQpOwogCiAgIC8qIE11bHRpcGxlIFJlbmRlciBUYXJnZXRzICovCi0gIHZvaWQgZHJh
d0J1ZmZlcnMoc2VxdWVuY2U8R0xlbnVtPiBidWZmZXJzKTsKKyAgdW5kZWZpbmVkIGRyYXdCdWZm
ZXJzKHNlcXVlbmNlPEdMZW51bT4gYnVmZmVycyk7CiAKLSAgdm9pZCBjbGVhckJ1ZmZlcmZ2KEdM
ZW51bSBidWZmZXIsIEdMaW50IGRyYXdidWZmZXIsIEZsb2F0MzJMaXN0IHZhbHVlcywKLSAgICAg
ICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAwKTsKLSAgdm9pZCBj
bGVhckJ1ZmZlcml2KEdMZW51bSBidWZmZXIsIEdMaW50IGRyYXdidWZmZXIsIEludDMyTGlzdCB2
YWx1ZXMsCi0gICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0g
MCk7Ci0gIHZvaWQgY2xlYXJCdWZmZXJ1aXYoR0xlbnVtIGJ1ZmZlciwgR0xpbnQgZHJhd2J1ZmZl
ciwgVWludDMyTGlzdCB2YWx1ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1
aW50IHNyY09mZnNldCA9IDApOworICB1bmRlZmluZWQgY2xlYXJCdWZmZXJmdihHTGVudW0gYnVm
ZmVyLCBHTGludCBkcmF3YnVmZmVyLCBGbG9hdDMyTGlzdCB2YWx1ZXMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAwKTsKKyAgdW5kZWZpbmVk
IGNsZWFyQnVmZmVyaXYoR0xlbnVtIGJ1ZmZlciwgR0xpbnQgZHJhd2J1ZmZlciwgSW50MzJMaXN0
IHZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY09m
ZnNldCA9IDApOworICB1bmRlZmluZWQgY2xlYXJCdWZmZXJ1aXYoR0xlbnVtIGJ1ZmZlciwgR0xp
bnQgZHJhd2J1ZmZlciwgVWludDMyTGlzdCB2YWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCk7CiAKLSAgdm9pZCBjbGVhckJ1ZmZl
cmZpKEdMZW51bSBidWZmZXIsIEdMaW50IGRyYXdidWZmZXIsIEdMZmxvYXQgZGVwdGgsIEdMaW50
IHN0ZW5jaWwpOworICB1bmRlZmluZWQgY2xlYXJCdWZmZXJmaShHTGVudW0gYnVmZmVyLCBHTGlu
dCBkcmF3YnVmZmVyLCBHTGZsb2F0IGRlcHRoLCBHTGludCBzdGVuY2lsKTsKIAogICAvKiBRdWVy
eSBPYmplY3RzICovCiAgIFdlYkdMUXVlcnk/IGNyZWF0ZVF1ZXJ5KCk7Ci0gIHZvaWQgZGVsZXRl
UXVlcnkoV2ViR0xRdWVyeT8gcXVlcnkpOworICB1bmRlZmluZWQgZGVsZXRlUXVlcnkoV2ViR0xR
dWVyeT8gcXVlcnkpOwogICBbV2ViR0xIYW5kbGVzQ29udGV4dExvc3NdIEdMYm9vbGVhbiBpc1F1
ZXJ5KFdlYkdMUXVlcnk/IHF1ZXJ5KTsKLSAgdm9pZCBiZWdpblF1ZXJ5KEdMZW51bSB0YXJnZXQs
IFdlYkdMUXVlcnkgcXVlcnkpOwotICB2b2lkIGVuZFF1ZXJ5KEdMZW51bSB0YXJnZXQpOworICB1
bmRlZmluZWQgYmVnaW5RdWVyeShHTGVudW0gdGFyZ2V0LCBXZWJHTFF1ZXJ5IHF1ZXJ5KTsKKyAg
dW5kZWZpbmVkIGVuZFF1ZXJ5KEdMZW51bSB0YXJnZXQpOwogICBXZWJHTFF1ZXJ5PyBnZXRRdWVy
eShHTGVudW0gdGFyZ2V0LCBHTGVudW0gcG5hbWUpOwogICBhbnkgZ2V0UXVlcnlQYXJhbWV0ZXIo
V2ViR0xRdWVyeSBxdWVyeSwgR0xlbnVtIHBuYW1lKTsKIAogICAvKiBTYW1wbGVyIE9iamVjdHMg
Ki8KICAgV2ViR0xTYW1wbGVyPyBjcmVhdGVTYW1wbGVyKCk7Ci0gIHZvaWQgZGVsZXRlU2FtcGxl
cihXZWJHTFNhbXBsZXI/IHNhbXBsZXIpOworICB1bmRlZmluZWQgZGVsZXRlU2FtcGxlcihXZWJH
TFNhbXBsZXI/IHNhbXBsZXIpOwogICBbV2ViR0xIYW5kbGVzQ29udGV4dExvc3NdIEdMYm9vbGVh
biBpc1NhbXBsZXIoV2ViR0xTYW1wbGVyPyBzYW1wbGVyKTsKLSAgdm9pZCBiaW5kU2FtcGxlcihH
THVpbnQgdW5pdCwgV2ViR0xTYW1wbGVyPyBzYW1wbGVyKTsKLSAgdm9pZCBzYW1wbGVyUGFyYW1l
dGVyaShXZWJHTFNhbXBsZXIgc2FtcGxlciwgR0xlbnVtIHBuYW1lLCBHTGludCBwYXJhbSk7Ci0g
IHZvaWQgc2FtcGxlclBhcmFtZXRlcmYoV2ViR0xTYW1wbGVyIHNhbXBsZXIsIEdMZW51bSBwbmFt
ZSwgR0xmbG9hdCBwYXJhbSk7CisgIHVuZGVmaW5lZCBiaW5kU2FtcGxlcihHTHVpbnQgdW5pdCwg
V2ViR0xTYW1wbGVyPyBzYW1wbGVyKTsKKyAgdW5kZWZpbmVkIHNhbXBsZXJQYXJhbWV0ZXJpKFdl
YkdMU2FtcGxlciBzYW1wbGVyLCBHTGVudW0gcG5hbWUsIEdMaW50IHBhcmFtKTsKKyAgdW5kZWZp
bmVkIHNhbXBsZXJQYXJhbWV0ZXJmKFdlYkdMU2FtcGxlciBzYW1wbGVyLCBHTGVudW0gcG5hbWUs
IEdMZmxvYXQgcGFyYW0pOwogICBhbnkgZ2V0U2FtcGxlclBhcmFtZXRlcihXZWJHTFNhbXBsZXIg
c2FtcGxlciwgR0xlbnVtIHBuYW1lKTsKIAogICAvKiBTeW5jIG9iamVjdHMgKi8KICAgV2ViR0xT
eW5jPyBmZW5jZVN5bmMoR0xlbnVtIGNvbmRpdGlvbiwgR0xiaXRmaWVsZCBmbGFncyk7CiAgIFtX
ZWJHTEhhbmRsZXNDb250ZXh0TG9zc10gR0xib29sZWFuIGlzU3luYyhXZWJHTFN5bmM/IHN5bmMp
OwotICB2b2lkIGRlbGV0ZVN5bmMoV2ViR0xTeW5jPyBzeW5jKTsKKyAgdW5kZWZpbmVkIGRlbGV0
ZVN5bmMoV2ViR0xTeW5jPyBzeW5jKTsKICAgR0xlbnVtIGNsaWVudFdhaXRTeW5jKFdlYkdMU3lu
YyBzeW5jLCBHTGJpdGZpZWxkIGZsYWdzLCBHTHVpbnQ2NCB0aW1lb3V0KTsKLSAgdm9pZCB3YWl0
U3luYyhXZWJHTFN5bmMgc3luYywgR0xiaXRmaWVsZCBmbGFncywgR0xpbnQ2NCB0aW1lb3V0KTsK
KyAgdW5kZWZpbmVkIHdhaXRTeW5jKFdlYkdMU3luYyBzeW5jLCBHTGJpdGZpZWxkIGZsYWdzLCBH
TGludDY0IHRpbWVvdXQpOwogICBhbnkgZ2V0U3luY1BhcmFtZXRlcihXZWJHTFN5bmMgc3luYywg
R0xlbnVtIHBuYW1lKTsKIAogICAvKiBUcmFuc2Zvcm0gRmVlZGJhY2sgKi8KICAgV2ViR0xUcmFu
c2Zvcm1GZWVkYmFjaz8gY3JlYXRlVHJhbnNmb3JtRmVlZGJhY2soKTsKLSAgdm9pZCBkZWxldGVU
cmFuc2Zvcm1GZWVkYmFjayhXZWJHTFRyYW5zZm9ybUZlZWRiYWNrPyB0Zik7CisgIHVuZGVmaW5l
ZCBkZWxldGVUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFRyYW5zZm9ybUZlZWRiYWNrPyB0Zik7CiAg
IFtXZWJHTEhhbmRsZXNDb250ZXh0TG9zc10gR0xib29sZWFuIGlzVHJhbnNmb3JtRmVlZGJhY2so
V2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz8gdGYpOwotICB2b2lkIGJpbmRUcmFuc2Zvcm1GZWVkYmFj
ayAoR0xlbnVtIHRhcmdldCwgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz8gdGYpOwotICB2b2lkIGJl
Z2luVHJhbnNmb3JtRmVlZGJhY2soR0xlbnVtIHByaW1pdGl2ZU1vZGUpOwotICB2b2lkIGVuZFRy
YW5zZm9ybUZlZWRiYWNrKCk7Ci0gIHZvaWQgdHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5ncyhXZWJH
TFByb2dyYW0gcHJvZ3JhbSwgc2VxdWVuY2U8RE9NU3RyaW5nPiB2YXJ5aW5ncywgR0xlbnVtIGJ1
ZmZlck1vZGUpOworICB1bmRlZmluZWQgYmluZFRyYW5zZm9ybUZlZWRiYWNrIChHTGVudW0gdGFy
Z2V0LCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrPyB0Zik7CisgIHVuZGVmaW5lZCBiZWdpblRyYW5z
Zm9ybUZlZWRiYWNrKEdMZW51bSBwcmltaXRpdmVNb2RlKTsKKyAgdW5kZWZpbmVkIGVuZFRyYW5z
Zm9ybUZlZWRiYWNrKCk7CisgIHVuZGVmaW5lZCB0cmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzKFdl
YkdMUHJvZ3JhbSBwcm9ncmFtLCBzZXF1ZW5jZTxET01TdHJpbmc+IHZhcnlpbmdzLCBHTGVudW0g
YnVmZmVyTW9kZSk7CiAgIFdlYkdMQWN0aXZlSW5mbz8gZ2V0VHJhbnNmb3JtRmVlZGJhY2tWYXJ5
aW5nKFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBHTHVpbnQgaW5kZXgpOwotICB2b2lkIHBhdXNlVHJh
bnNmb3JtRmVlZGJhY2soKTsKLSAgdm9pZCByZXN1bWVUcmFuc2Zvcm1GZWVkYmFjaygpOworICB1
bmRlZmluZWQgcGF1c2VUcmFuc2Zvcm1GZWVkYmFjaygpOworICB1bmRlZmluZWQgcmVzdW1lVHJh
bnNmb3JtRmVlZGJhY2soKTsKIAogICAvKiBVbmlmb3JtIEJ1ZmZlciBPYmplY3RzIGFuZCBUcmFu
c2Zvcm0gRmVlZGJhY2sgQnVmZmVycyAqLwotICB2b2lkIGJpbmRCdWZmZXJCYXNlKEdMZW51bSB0
YXJnZXQsIEdMdWludCBpbmRleCwgV2ViR0xCdWZmZXI/IGJ1ZmZlcik7Ci0gIHZvaWQgYmluZEJ1
ZmZlclJhbmdlKEdMZW51bSB0YXJnZXQsIEdMdWludCBpbmRleCwgV2ViR0xCdWZmZXI/IGJ1ZmZl
ciwgR0xpbnRwdHIgb2Zmc2V0LCBHTHNpemVpcHRyIHNpemUpOworICB1bmRlZmluZWQgYmluZEJ1
ZmZlckJhc2UoR0xlbnVtIHRhcmdldCwgR0x1aW50IGluZGV4LCBXZWJHTEJ1ZmZlcj8gYnVmZmVy
KTsKKyAgdW5kZWZpbmVkIGJpbmRCdWZmZXJSYW5nZShHTGVudW0gdGFyZ2V0LCBHTHVpbnQgaW5k
ZXgsIFdlYkdMQnVmZmVyPyBidWZmZXIsIEdMaW50cHRyIG9mZnNldCwgR0xzaXplaXB0ciBzaXpl
KTsKICAgYW55IGdldEluZGV4ZWRQYXJhbWV0ZXIoR0xlbnVtIHRhcmdldCwgR0x1aW50IGluZGV4
KTsKICAgc2VxdWVuY2U8R0x1aW50Pj8gZ2V0VW5pZm9ybUluZGljZXMoV2ViR0xQcm9ncmFtIHBy
b2dyYW0sIHNlcXVlbmNlPERPTVN0cmluZz4gdW5pZm9ybU5hbWVzKTsKICAgYW55IGdldEFjdGl2
ZVVuaWZvcm1zKFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBzZXF1ZW5jZTxHTHVpbnQ+IHVuaWZvcm1J
bmRpY2VzLCBHTGVudW0gcG5hbWUpOwogICBHTHVpbnQgZ2V0VW5pZm9ybUJsb2NrSW5kZXgoV2Vi
R0xQcm9ncmFtIHByb2dyYW0sIERPTVN0cmluZyB1bmlmb3JtQmxvY2tOYW1lKTsKICAgYW55IGdl
dEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihXZWJHTFByb2dyYW0gcHJvZ3JhbSwgR0x1aW50
IHVuaWZvcm1CbG9ja0luZGV4LCBHTGVudW0gcG5hbWUpOwogICBET01TdHJpbmc/IGdldEFjdGl2
ZVVuaWZvcm1CbG9ja05hbWUoV2ViR0xQcm9ncmFtIHByb2dyYW0sIEdMdWludCB1bmlmb3JtQmxv
Y2tJbmRleCk7Ci0gIHZvaWQgdW5pZm9ybUJsb2NrQmluZGluZyhXZWJHTFByb2dyYW0gcHJvZ3Jh
bSwgR0x1aW50IHVuaWZvcm1CbG9ja0luZGV4LCBHTHVpbnQgdW5pZm9ybUJsb2NrQmluZGluZyk7
CisgIHVuZGVmaW5lZCB1bmlmb3JtQmxvY2tCaW5kaW5nKFdlYkdMUHJvZ3JhbSBwcm9ncmFtLCBH
THVpbnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdMdWludCB1bmlmb3JtQmxvY2tCaW5kaW5nKTsKIAog
ICAvKiBWZXJ0ZXggQXJyYXkgT2JqZWN0cyAqLwogICBXZWJHTFZlcnRleEFycmF5T2JqZWN0PyBj
cmVhdGVWZXJ0ZXhBcnJheSgpOwotICB2b2lkIGRlbGV0ZVZlcnRleEFycmF5KFdlYkdMVmVydGV4
QXJyYXlPYmplY3Q/IHZlcnRleEFycmF5KTsKKyAgdW5kZWZpbmVkIGRlbGV0ZVZlcnRleEFycmF5
KFdlYkdMVmVydGV4QXJyYXlPYmplY3Q/IHZlcnRleEFycmF5KTsKICAgW1dlYkdMSGFuZGxlc0Nv
bnRleHRMb3NzXSBHTGJvb2xlYW4gaXNWZXJ0ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2JqZWN0
PyB2ZXJ0ZXhBcnJheSk7Ci0gIHZvaWQgYmluZFZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJyYXlP
YmplY3Q/IGFycmF5KTsKKyAgdW5kZWZpbmVkIGJpbmRWZXJ0ZXhBcnJheShXZWJHTFZlcnRleEFy
cmF5T2JqZWN0PyBhcnJheSk7CiB9OwogCiBpbnRlcmZhY2UgbWl4aW4gV2ViR0wyUmVuZGVyaW5n
Q29udGV4dE92ZXJsb2FkcwogewogICAvLyBXZWJHTDE6Ci0gIHZvaWQgYnVmZmVyRGF0YShHTGVu
dW0gdGFyZ2V0LCBHTHNpemVpcHRyIHNpemUsIEdMZW51bSB1c2FnZSk7Ci0gIHZvaWQgYnVmZmVy
RGF0YShHTGVudW0gdGFyZ2V0LCBbQWxsb3dTaGFyZWRdIEJ1ZmZlclNvdXJjZT8gc3JjRGF0YSwg
R0xlbnVtIHVzYWdlKTsKLSAgdm9pZCBidWZmZXJTdWJEYXRhKEdMZW51bSB0YXJnZXQsIEdMaW50
cHRyIGRzdEJ5dGVPZmZzZXQsIFtBbGxvd1NoYXJlZF0gQnVmZmVyU291cmNlIHNyY0RhdGEpOwor
ICB1bmRlZmluZWQgYnVmZmVyRGF0YShHTGVudW0gdGFyZ2V0LCBHTHNpemVpcHRyIHNpemUsIEdM
ZW51bSB1c2FnZSk7CisgIHVuZGVmaW5lZCBidWZmZXJEYXRhKEdMZW51bSB0YXJnZXQsIFtBbGxv
d1NoYXJlZF0gQnVmZmVyU291cmNlPyBzcmNEYXRhLCBHTGVudW0gdXNhZ2UpOworICB1bmRlZmlu
ZWQgYnVmZmVyU3ViRGF0YShHTGVudW0gdGFyZ2V0LCBHTGludHB0ciBkc3RCeXRlT2Zmc2V0LCBb
QWxsb3dTaGFyZWRdIEJ1ZmZlclNvdXJjZSBzcmNEYXRhKTsKICAgLy8gV2ViR0wyOgotICB2b2lk
IGJ1ZmZlckRhdGEoR0xlbnVtIHRhcmdldCwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXcg
c3JjRGF0YSwgR0xlbnVtIHVzYWdlLCBHTHVpbnQgc3JjT2Zmc2V0LAotICAgICAgICAgICAgICAg
ICAgb3B0aW9uYWwgR0x1aW50IGxlbmd0aCA9IDApOwotICB2b2lkIGJ1ZmZlclN1YkRhdGEoR0xl
bnVtIHRhcmdldCwgR0xpbnRwdHIgZHN0Qnl0ZU9mZnNldCwgW0FsbG93U2hhcmVkXSBBcnJheUJ1
ZmZlclZpZXcgc3JjRGF0YSwKLSAgICAgICAgICAgICAgICAgICAgIEdMdWludCBzcmNPZmZzZXQs
IG9wdGlvbmFsIEdMdWludCBsZW5ndGggPSAwKTsKKyAgdW5kZWZpbmVkIGJ1ZmZlckRhdGEoR0xl
bnVtIHRhcmdldCwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXcgc3JjRGF0YSwgR0xlbnVt
IHVzYWdlLCBHTHVpbnQgc3JjT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25h
bCBHTHVpbnQgbGVuZ3RoID0gMCk7CisgIHVuZGVmaW5lZCBidWZmZXJTdWJEYXRhKEdMZW51bSB0
YXJnZXQsIEdMaW50cHRyIGRzdEJ5dGVPZmZzZXQsIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJW
aWV3IHNyY0RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEdMdWludCBzcmNPZmZzZXQs
IG9wdGlvbmFsIEdMdWludCBsZW5ndGggPSAwKTsKIAogICAvLyBXZWJHTDEgbGVnYWN5IGVudHJ5
cG9pbnRzOgotICB2b2lkIHRleEltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdM
aW50IGludGVybmFsZm9ybWF0LAotICAgICAgICAgICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xz
aXplaSBoZWlnaHQsIEdMaW50IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwKLSAgICAgICAgICAgICAg
ICAgIEdMZW51bSB0eXBlLCBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVyVmlldz8gcGl4ZWxzKTsK
LSAgdm9pZCB0ZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCBpbnRl
cm5hbGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBl
LCBUZXhJbWFnZVNvdXJjZSBzb3VyY2UpOyAvLyBNYXkgdGhyb3cgRE9NRXhjZXB0aW9uCi0KLSAg
dm9pZCB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zm
c2V0LCBHTGludCB5b2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSB3aWR0aCwg
R0xzaXplaSBoZWlnaHQsCi0gICAgICAgICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBHTGVu
dW0gdHlwZSwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXc/IHBpeGVscyk7Ci0gIHZvaWQg
dGV4U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwg
R0xpbnQgeW9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBmb3JtYXQsIEdMZW51
bSB0eXBlLCBUZXhJbWFnZVNvdXJjZSBzb3VyY2UpOyAvLyBNYXkgdGhyb3cgRE9NRXhjZXB0aW9u
CisgIHVuZGVmaW5lZCB0ZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGlu
dCBpbnRlcm5hbGZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSB3aWR0aCwg
R0xzaXplaSBoZWlnaHQsIEdMaW50IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgR0xlbnVtIHR5cGUsIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3PyBw
aXhlbHMpOworICB1bmRlZmluZWQgdGV4SW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZl
bCwgR0xpbnQgaW50ZXJuYWxmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBm
b3JtYXQsIEdMZW51bSB0eXBlLCBUZXhJbWFnZVNvdXJjZSBzb3VyY2UpOyAvLyBNYXkgdGhyb3cg
RE9NRXhjZXB0aW9uCisKKyAgdW5kZWZpbmVkIHRleFN1YkltYWdlMkQoR0xlbnVtIHRhcmdldCwg
R0xpbnQgbGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50IHlvZmZzZXQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgW0FsbG93U2hhcmVkXSBB
cnJheUJ1ZmZlclZpZXc/IHBpeGVscyk7CisgIHVuZGVmaW5lZCB0ZXhTdWJJbWFnZTJEKEdMZW51
bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgVGV4SW1h
Z2VTb3VyY2Ugc291cmNlKTsgLy8gTWF5IHRocm93IERPTUV4Y2VwdGlvbgogCiAgIC8vIFdlYkdM
MiBlbnRyeXBvaW50czoKLSAgdm9pZCB0ZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxl
dmVsLCBHTGludCBpbnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQs
Ci0gICAgICAgICAgICAgICAgICBHTGludCBib3JkZXIsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0
eXBlLCBHTGludHB0ciBwYm9PZmZzZXQpOwotICB2b2lkIHRleEltYWdlMkQoR0xlbnVtIHRhcmdl
dCwgR0xpbnQgbGV2ZWwsIEdMaW50IGludGVybmFsZm9ybWF0LCBHTHNpemVpIHdpZHRoLCBHTHNp
emVpIGhlaWdodCwKLSAgICAgICAgICAgICAgICAgIEdMaW50IGJvcmRlciwgR0xlbnVtIGZvcm1h
dCwgR0xlbnVtIHR5cGUsCi0gICAgICAgICAgICAgICAgICBUZXhJbWFnZVNvdXJjZSBzb3VyY2Up
OyAvLyBNYXkgdGhyb3cgRE9NRXhjZXB0aW9uCi0gIHZvaWQgdGV4SW1hZ2UyRChHTGVudW0gdGFy
Z2V0LCBHTGludCBsZXZlbCwgR0xpbnQgaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdM
c2l6ZWkgaGVpZ2h0LAotICAgICAgICAgICAgICAgICAgR0xpbnQgYm9yZGVyLCBHTGVudW0gZm9y
bWF0LCBHTGVudW0gdHlwZSwgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXcgc3JjRGF0YSwK
LSAgICAgICAgICAgICAgICAgIEdMdWludCBzcmNPZmZzZXQpOwotCi0gIHZvaWQgdGV4U3ViSW1h
Z2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9m
ZnNldCwgR0xzaXplaSB3aWR0aCwKLSAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgaGVpZ2h0
LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgR0xpbnRwdHIgcGJvT2Zmc2V0KTsKLSAgdm9p
ZCB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0
LCBHTGludCB5b2Zmc2V0LCBHTHNpemVpIHdpZHRoLAotICAgICAgICAgICAgICAgICAgICAgR0xz
aXplaSBoZWlnaHQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLAotICAgICAgICAgICAgICAg
ICAgICAgVGV4SW1hZ2VTb3VyY2Ugc291cmNlKTsgLy8gTWF5IHRocm93IERPTUV4Y2VwdGlvbgot
ICB2b2lkIHRleFN1YkltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhv
ZmZzZXQsIEdMaW50IHlvZmZzZXQsIEdMc2l6ZWkgd2lkdGgsCi0gICAgICAgICAgICAgICAgICAg
ICBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIFtBbGxvd1NoYXJl
ZF0gQXJyYXlCdWZmZXJWaWV3IHNyY0RhdGEsCi0gICAgICAgICAgICAgICAgICAgICBHTHVpbnQg
c3JjT2Zmc2V0KTsKLQotICB2b2lkIGNvbXByZXNzZWRUZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQs
IEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR0xzaXplaSBoZWlnaHQsIEdMaW50IGJvcmRlciwgR0xz
aXplaSBpbWFnZVNpemUsIEdMaW50cHRyIG9mZnNldCk7Ci0gIHZvaWQgY29tcHJlc3NlZFRleElt
YWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbGZvcm1hdCwg
R0xzaXplaSB3aWR0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIGhlaWdo
dCwgR0xpbnQgYm9yZGVyLCBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVyVmlldyBzcmNEYXRhLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAw
LCBvcHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoT3ZlcnJpZGUgPSAwKTsKLQotICB2b2lkIGNvbXBy
ZXNzZWRUZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4b2Zm
c2V0LCBHTGludCB5b2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6
ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTHNpemVpIGltYWdlU2l6
ZSwgR0xpbnRwdHIgb2Zmc2V0KTsKLSAgdm9pZCBjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRChHTGVu
dW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdo
dCwgR0xlbnVtIGZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQWxsb3dT
aGFyZWRdIEFycmF5QnVmZmVyVmlldyBzcmNEYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAwLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGhPdmVycmlkZSA9IDApOwotCi0g
IHZvaWQgdW5pZm9ybTFmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEZsb2F0MzJM
aXN0IGRhdGEsIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAwLAotICAgICAgICAgICAgICAg
ICAgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOwotICB2b2lkIHVuaWZvcm0yZnYoV2Vi
R0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBGbG9hdDMyTGlzdCBkYXRhLCBvcHRpb25hbCBH
THVpbnQgc3JjT2Zmc2V0ID0gMCwKLSAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBz
cmNMZW5ndGggPSAwKTsKLSAgdm9pZCB1bmlmb3JtM2Z2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBs
b2NhdGlvbiwgRmxvYXQzMkxpc3QgZGF0YSwgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAs
Ci0gICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoID0gMCk7Ci0gIHZv
aWQgdW5pZm9ybTRmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEZsb2F0MzJMaXN0
IGRhdGEsIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAwLAotICAgICAgICAgICAgICAgICAg
b3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOwotCi0gIHZvaWQgdW5pZm9ybTFpdihXZWJH
TFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEludDMyTGlzdCBkYXRhLCBvcHRpb25hbCBHTHVp
bnQgc3JjT2Zmc2V0ID0gMCwKLSAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNM
ZW5ndGggPSAwKTsKLSAgdm9pZCB1bmlmb3JtMml2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2Nh
dGlvbiwgSW50MzJMaXN0IGRhdGEsIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAwLAotICAg
ICAgICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOwotICB2b2lkIHVu
aWZvcm0zaXYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBJbnQzMkxpc3QgZGF0YSwg
b3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsCi0gICAgICAgICAgICAgICAgICBvcHRpb25h
bCBHTHVpbnQgc3JjTGVuZ3RoID0gMCk7Ci0gIHZvaWQgdW5pZm9ybTRpdihXZWJHTFVuaWZvcm1M
b2NhdGlvbj8gbG9jYXRpb24sIEludDMyTGlzdCBkYXRhLCBvcHRpb25hbCBHTHVpbnQgc3JjT2Zm
c2V0ID0gMCwKLSAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAw
KTsKLQotICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0
aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCBkYXRhLAotICAgICAgICAgICAg
ICAgICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsIG9wdGlvbmFsIEdMdWlu
dCBzcmNMZW5ndGggPSAwKTsKLSAgdm9pZCB1bmlmb3JtTWF0cml4M2Z2KFdlYkdMVW5pZm9ybUxv
Y2F0aW9uPyBsb2NhdGlvbiwgR0xib29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0YSwK
LSAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAwLCBv
cHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoID0gMCk7Ci0gIHZvaWQgdW5pZm9ybU1hdHJpeDRmdihX
ZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMYm9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0
MzJMaXN0IGRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3Jj
T2Zmc2V0ID0gMCwgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOworICB1bmRlZmluZWQg
dGV4SW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZlbCwgR0xpbnQgaW50ZXJuYWxmb3Jt
YXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAg
ICBHTGludCBib3JkZXIsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBHTGludHB0ciBwYm9P
ZmZzZXQpOworICB1bmRlZmluZWQgdGV4SW1hZ2UyRChHTGVudW0gdGFyZ2V0LCBHTGludCBsZXZl
bCwgR0xpbnQgaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LAor
ICAgICAgICAgICAgICAgICAgICAgICBHTGludCBib3JkZXIsIEdMZW51bSBmb3JtYXQsIEdMZW51
bSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICBUZXhJbWFnZVNvdXJjZSBzb3VyY2UpOyAv
LyBNYXkgdGhyb3cgRE9NRXhjZXB0aW9uCisgIHVuZGVmaW5lZCB0ZXhJbWFnZTJEKEdMZW51bSB0
YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCBpbnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0aCwg
R0xzaXplaSBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IGJvcmRlciwgR0xl
bnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3IHNy
Y0RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgIEdMdWludCBzcmNPZmZzZXQpOworCisgIHVu
ZGVmaW5lZCB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGludCB4
b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTHNpemVpIHdpZHRoLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIEdMaW50
cHRyIHBib09mZnNldCk7CisgIHVuZGVmaW5lZCB0ZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQs
IEdMaW50IGxldmVsLCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LCBHTHNpemVpIHdpZHRo
LAorICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1h
dCwgR0xlbnVtIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFRleEltYWdlU291cmNl
IHNvdXJjZSk7IC8vIE1heSB0aHJvdyBET01FeGNlcHRpb24KKyAgdW5kZWZpbmVkIHRleFN1Yklt
YWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMaW50IHhvZmZzZXQsIEdMaW50IHlv
ZmZzZXQsIEdMc2l6ZWkgd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkg
aGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgW0FsbG93U2hhcmVkXSBBcnJheUJ1
ZmZlclZpZXcgc3JjRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgR0x1aW50IHNyY09m
ZnNldCk7CisKKyAgdW5kZWZpbmVkIGNvbXByZXNzZWRUZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQs
IEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIGhlaWdodCwgR0xpbnQgYm9yZGVy
LCBHTHNpemVpIGltYWdlU2l6ZSwgR0xpbnRwdHIgb2Zmc2V0KTsKKyAgdW5kZWZpbmVkIGNvbXBy
ZXNzZWRUZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJu
YWxmb3JtYXQsIEdMc2l6ZWkgd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHTHNpemVpIGhlaWdodCwgR0xpbnQgYm9yZGVyLCBbQWxsb3dTaGFyZWRdIEFycmF5QnVmZmVy
VmlldyBzcmNEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwg
R0x1aW50IHNyY09mZnNldCA9IDAsIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGhPdmVycmlkZSA9
IDApOworCisgIHVuZGVmaW5lZCBjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRChHTGVudW0gdGFyZ2V0
LCBHTGludCBsZXZlbCwgR0xpbnQgeG9mZnNldCwgR0xpbnQgeW9mZnNldCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBH
TGVudW0gZm9ybWF0LCBHTHNpemVpIGltYWdlU2l6ZSwgR0xpbnRwdHIgb2Zmc2V0KTsKKyAgdW5k
ZWZpbmVkIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVs
LCBHTGludCB4b2Zmc2V0LCBHTGludCB5b2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMZW51bSBmb3JtYXQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQWxsb3dTaGFyZWRdIEFycmF5
QnVmZmVyVmlldyBzcmNEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoT3ZlcnJpZGUgPSAwKTsKKworICB1
bmRlZmluZWQgdW5pZm9ybTFmdihXZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEZsb2F0
MzJMaXN0IGRhdGEsIG9wdGlvbmFsIEdMdWludCBzcmNPZmZzZXQgPSAwLAorICAgICAgICAgICAg
ICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoID0gMCk7CisgIHVuZGVmaW5lZCB1
bmlmb3JtMmZ2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgRmxvYXQzMkxpc3QgZGF0
YSwgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsCisgICAgICAgICAgICAgICAgICAgICAg
IG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKKyAgdW5kZWZpbmVkIHVuaWZvcm0zZnYo
V2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBGbG9hdDMyTGlzdCBkYXRhLCBvcHRpb25h
bCBHTHVpbnQgc3JjT2Zmc2V0ID0gMCwKKyAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwg
R0x1aW50IHNyY0xlbmd0aCA9IDApOworICB1bmRlZmluZWQgdW5pZm9ybTRmdihXZWJHTFVuaWZv
cm1Mb2NhdGlvbj8gbG9jYXRpb24sIEZsb2F0MzJMaXN0IGRhdGEsIG9wdGlvbmFsIEdMdWludCBz
cmNPZmZzZXQgPSAwLAorICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3Jj
TGVuZ3RoID0gMCk7CisKKyAgdW5kZWZpbmVkIHVuaWZvcm0xaXYoV2ViR0xVbmlmb3JtTG9jYXRp
b24/IGxvY2F0aW9uLCBJbnQzMkxpc3QgZGF0YSwgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9
IDAsCisgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAw
KTsKKyAgdW5kZWZpbmVkIHVuaWZvcm0yaXYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9u
LCBJbnQzMkxpc3QgZGF0YSwgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsCisgICAgICAg
ICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKKyAgdW5kZWZp
bmVkIHVuaWZvcm0zaXYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBJbnQzMkxpc3Qg
ZGF0YSwgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsCisgICAgICAgICAgICAgICAgICAg
ICAgIG9wdGlvbmFsIEdMdWludCBzcmNMZW5ndGggPSAwKTsKKyAgdW5kZWZpbmVkIHVuaWZvcm00
aXYoV2ViR0xVbmlmb3JtTG9jYXRpb24/IGxvY2F0aW9uLCBJbnQzMkxpc3QgZGF0YSwgb3B0aW9u
YWwgR0x1aW50IHNyY09mZnNldCA9IDAsCisgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFs
IEdMdWludCBzcmNMZW5ndGggPSAwKTsKKworICB1bmRlZmluZWQgdW5pZm9ybU1hdHJpeDJmdihX
ZWJHTFVuaWZvcm1Mb2NhdGlvbj8gbG9jYXRpb24sIEdMYm9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0
MzJMaXN0IGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIEdMdWlu
dCBzcmNPZmZzZXQgPSAwLCBvcHRpb25hbCBHTHVpbnQgc3JjTGVuZ3RoID0gMCk7CisgIHVuZGVm
aW5lZCB1bmlmb3JtTWF0cml4M2Z2KFdlYkdMVW5pZm9ybUxvY2F0aW9uPyBsb2NhdGlvbiwgR0xi
b29sZWFuIHRyYW5zcG9zZSwgRmxvYXQzMkxpc3QgZGF0YSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3B0aW9uYWwgR0x1aW50IHNyY09mZnNldCA9IDAsIG9wdGlvbmFsIEdMdWludCBz
cmNMZW5ndGggPSAwKTsKKyAgdW5kZWZpbmVkIHVuaWZvcm1NYXRyaXg0ZnYoV2ViR0xVbmlmb3Jt
TG9jYXRpb24/IGxvY2F0aW9uLCBHTGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyTGlzdCBkYXRh
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBHTHVpbnQgc3JjT2Zmc2V0
ID0gMCwgb3B0aW9uYWwgR0x1aW50IHNyY0xlbmd0aCA9IDApOwogCiAgIC8qIFJlYWRpbmcgYmFj
ayBwaXhlbHMgKi8KICAgLy8gV2ViR0wxOgotICB2b2lkIHJlYWRQaXhlbHMoR0xpbnQgeCwgR0xp
bnQgeSwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMZW51bSBmb3JtYXQsIEdMZW51
bSB0eXBlLAotICAgICAgICAgICAgICAgICAgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXc/
IGRzdERhdGEpOworICB1bmRlZmluZWQgcmVhZFBpeGVscyhHTGludCB4LCBHTGludCB5LCBHTHNp
emVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsCisg
ICAgICAgICAgICAgICAgICAgICAgIFtBbGxvd1NoYXJlZF0gQXJyYXlCdWZmZXJWaWV3PyBkc3RE
YXRhKTsKICAgLy8gV2ViR0wyOgotICB2b2lkIHJlYWRQaXhlbHMoR0xpbnQgeCwgR0xpbnQgeSwg
R0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBl
LAotICAgICAgICAgICAgICAgICAgR0xpbnRwdHIgb2Zmc2V0KTsKLSAgdm9pZCByZWFkUGl4ZWxz
KEdMaW50IHgsIEdMaW50IHksIEdMc2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0g
Zm9ybWF0LCBHTGVudW0gdHlwZSwKLSAgICAgICAgICAgICAgICAgIFtBbGxvd1NoYXJlZF0gQXJy
YXlCdWZmZXJWaWV3IGRzdERhdGEsIEdMdWludCBkc3RPZmZzZXQpOworICB1bmRlZmluZWQgcmVh
ZFBpeGVscyhHTGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpIGhlaWdodCwg
R0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgIEdMaW50
cHRyIG9mZnNldCk7CisgIHVuZGVmaW5lZCByZWFkUGl4ZWxzKEdMaW50IHgsIEdMaW50IHksIEdM
c2l6ZWkgd2lkdGgsIEdMc2l6ZWkgaGVpZ2h0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgW0FsbG93U2hhcmVkXSBBcnJheUJ1ZmZlclZpZXcgZHN0
RGF0YSwgR0x1aW50IGRzdE9mZnNldCk7CiB9OwogCiBbRXhwb3NlZD0oV2luZG93LFdvcmtlcild
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ludGVyZmFjZXMvd2VieHItZ2FtZXBhZHMtbW9kdWxlLmlkbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy93ZWJ4ci1nYW1lcGFkcy1tb2R1
bGUuaWRsCmluZGV4IGY2MjNjNjMyYmNlZjIzNmE0ZDU4NzI5MTQ3NzhkNmYyNTM3NWJhMTQuLmY2
MzkyMWMwMTUwNjZkMTEzNTVjODk3YWZjMzAwODRiMTdlMzI3NTcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy93ZWJ4ci1n
YW1lcGFkcy1tb2R1bGUuaWRsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaW50ZXJmYWNlcy93ZWJ4ci1nYW1lcGFkcy1tb2R1bGUuaWRsCkBAIC02LDkg
KzYsMyBAQAogcGFydGlhbCBpbnRlcmZhY2UgWFJJbnB1dFNvdXJjZSB7CiAgIFtTYW1lT2JqZWN0
XSByZWFkb25seSBhdHRyaWJ1dGUgR2FtZXBhZD8gZ2FtZXBhZDsKIH07Ci0KLWVudW0gR2FtZXBh
ZE1hcHBpbmdUeXBlIHsKLSAgIiIsICAgICAgICAgICAgLy8gRGVmaW5lZCBpbiB0aGUgR2FtZXBh
ZCBBUEkKLSAgInN0YW5kYXJkIiwgICAgLy8gRGVmaW5lZCBpbiB0aGUgR2FtZXBhZCBBUEkKLSAg
InhyLXN0YW5kYXJkIiwKLX07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvd2VieHItaGFuZC1pbnB1dC5pZGwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvd2VieHIt
aGFuZC1pbnB1dC5pZGwKaW5kZXggNDMzNGQ5Njc5M2MyMTFkZWFmOGE4ODE2Yjk1YjNjOTQ0MTg2
ZTJlZS4uZTg5MjEwY2Q1Njk1MDQ5Zjk0NTViZWU0MmYzODY5OTllMTVkYTViYyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2Vz
L3dlYnhyLWhhbmQtaW5wdXQuaWRsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW50ZXJmYWNlcy93ZWJ4ci1oYW5kLWlucHV0LmlkbApAQCAtNyw0NiAr
Nyw1MSBAQCBwYXJ0aWFsIGludGVyZmFjZSBYUklucHV0U291cmNlIHsKICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBYUkhhbmQ/IGhhbmQ7CiB9OwogCitlbnVtIFhSSGFuZEpvaW50IHsKKyAgIndyaXN0
IiwKKworICAidGh1bWItbWV0YWNhcnBhbCIsCisgICJ0aHVtYi1waGFsYW54LXByb3hpbWFsIiwK
KyAgInRodW1iLXBoYWxhbngtZGlzdGFsIiwKKyAgInRodW1iLXRpcCIsCisKKyAgImluZGV4LWZp
bmdlci1tZXRhY2FycGFsIiwKKyAgImluZGV4LWZpbmdlci1waGFsYW54LXByb3hpbWFsIiwKKyAg
ImluZGV4LWZpbmdlci1waGFsYW54LWludGVybWVkaWF0ZSIsCisgICJpbmRleC1maW5nZXItcGhh
bGFueC1kaXN0YWwiLAorICAiaW5kZXgtZmluZ2VyLXRpcCIsCisKKyAgIm1pZGRsZS1maW5nZXIt
bWV0YWNhcnBhbCIsCisgICJtaWRkbGUtZmluZ2VyLXBoYWxhbngtcHJveGltYWwiLAorICAibWlk
ZGxlLWZpbmdlci1waGFsYW54LWludGVybWVkaWF0ZSIsCisgICJtaWRkbGUtZmluZ2VyLXBoYWxh
bngtZGlzdGFsIiwKKyAgIm1pZGRsZS1maW5nZXItdGlwIiwKKworICAicmluZy1maW5nZXItbWV0
YWNhcnBhbCIsCisgICJyaW5nLWZpbmdlci1waGFsYW54LXByb3hpbWFsIiwKKyAgInJpbmctZmlu
Z2VyLXBoYWxhbngtaW50ZXJtZWRpYXRlIiwKKyAgInJpbmctZmluZ2VyLXBoYWxhbngtZGlzdGFs
IiwKKyAgInJpbmctZmluZ2VyLXRpcCIsCisKKyAgInBpbmt5LWZpbmdlci1tZXRhY2FycGFsIiwK
KyAgInBpbmt5LWZpbmdlci1waGFsYW54LXByb3hpbWFsIiwKKyAgInBpbmt5LWZpbmdlci1waGFs
YW54LWludGVybWVkaWF0ZSIsCisgICJwaW5reS1maW5nZXItcGhhbGFueC1kaXN0YWwiLAorICAi
cGlua3ktZmluZ2VyLXRpcCIKK307CisKIFtFeHBvc2VkPVdpbmRvd10KIGludGVyZmFjZSBYUkhh
bmQgewotICAgIGl0ZXJhYmxlPFhSSm9pbnRTcGFjZT47Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwotICAgIGdldHRlciBYUkpvaW50U3BhY2Ugam9pbnQodW5z
aWduZWQgbG9uZyBqb2ludEluZGV4KTsKLQotICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgV1JJU1Qg
PSAwOwotCi0gICAgY29uc3QgdW5zaWduZWQgbG9uZyBUSFVNQl9NRVRBQ0FSUEFMID0gMTsKLSAg
ICBjb25zdCB1bnNpZ25lZCBsb25nIFRIVU1CX1BIQUxBTlhfUFJPWElNQUwgPSAyOwotICAgIGNv
bnN0IHVuc2lnbmVkIGxvbmcgVEhVTUJfUEhBTEFOWF9ESVNUQUwgPSAzOwotICAgIGNvbnN0IHVu
c2lnbmVkIGxvbmcgVEhVTUJfUEhBTEFOWF9USVAgPSA0OwotCi0gICAgY29uc3QgdW5zaWduZWQg
bG9uZyBJTkRFWF9NRVRBQ0FSUEFMID0gNTsKLSAgICBjb25zdCB1bnNpZ25lZCBsb25nIElOREVY
X1BIQUxBTlhfUFJPWElNQUwgPSA2OwotICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgSU5ERVhfUEhB
TEFOWF9JTlRFUk1FRElBVEUgPSA3OwotICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgSU5ERVhfUEhB
TEFOWF9ESVNUQUwgPSA4OwotICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgSU5ERVhfUEhBTEFOWF9U
SVAgPSA5OwotCi0gICAgY29uc3QgdW5zaWduZWQgbG9uZyBNSURETEVfTUVUQUNBUlBBTCA9IDEw
OwotICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgTUlERExFX1BIQUxBTlhfUFJPWElNQUwgPSAxMTsK
LSAgICBjb25zdCB1bnNpZ25lZCBsb25nIE1JRERMRV9QSEFMQU5YX0lOVEVSTUVESUFURSA9IDEy
OwotICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgTUlERExFX1BIQUxBTlhfRElTVEFMID0gMTM7Ci0g
ICAgY29uc3QgdW5zaWduZWQgbG9uZyBNSURETEVfUEhBTEFOWF9USVAgPSAxNDsKLQotICAgIGNv
bnN0IHVuc2lnbmVkIGxvbmcgUklOR19NRVRBQ0FSUEFMID0gMTU7Ci0gICAgY29uc3QgdW5zaWdu
ZWQgbG9uZyBSSU5HX1BIQUxBTlhfUFJPWElNQUwgPSAxNjsKLSAgICBjb25zdCB1bnNpZ25lZCBs
b25nIFJJTkdfUEhBTEFOWF9JTlRFUk1FRElBVEUgPSAxNzsKLSAgICBjb25zdCB1bnNpZ25lZCBs
b25nIFJJTkdfUEhBTEFOWF9ESVNUQUwgPSAxODsKLSAgICBjb25zdCB1bnNpZ25lZCBsb25nIFJJ
TkdfUEhBTEFOWF9USVAgPSAxOTsKLQotICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgTElUVExFX01F
VEFDQVJQQUwgPSAyMDsKLSAgICBjb25zdCB1bnNpZ25lZCBsb25nIExJVFRMRV9QSEFMQU5YX1BS
T1hJTUFMID0gMjE7Ci0gICAgY29uc3QgdW5zaWduZWQgbG9uZyBMSVRUTEVfUEhBTEFOWF9JTlRF
Uk1FRElBVEUgPSAyMjsKLSAgICBjb25zdCB1bnNpZ25lZCBsb25nIExJVFRMRV9QSEFMQU5YX0RJ
U1RBTCA9IDIzOwotICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgTElUVExFX1BIQUxBTlhfVElQID0g
MjQ7CisgICAgaXRlcmFibGU8WFJIYW5kSm9pbnQsIFhSSm9pbnRTcGFjZT47CisKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzaXplOworICAgIFhSSm9pbnRTcGFjZSBnZXQo
WFJIYW5kSm9pbnQga2V5KTsKIH07CiAKIFtFeHBvc2VkPVdpbmRvd10KLWludGVyZmFjZSBYUkpv
aW50U3BhY2U6IFhSU3BhY2Uge307CitpbnRlcmZhY2UgWFJKb2ludFNwYWNlOiBYUlNwYWNlIHsK
KyAgcmVhZG9ubHkgYXR0cmlidXRlIFhSSGFuZEpvaW50IGpvaW50TmFtZTsKK307CiAKIHBhcnRp
YWwgaW50ZXJmYWNlIFhSRnJhbWUgewogICAgIFhSSm9pbnRQb3NlPyBnZXRKb2ludFBvc2UoWFJK
b2ludFNwYWNlIGpvaW50LCBYUlNwYWNlIGJhc2VTcGFjZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvd2VieHIuaWRs
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2Vz
L3dlYnhyLmlkbAppbmRleCBjMWI3MTc1NzY1ZDc4OGI5OTgxZDViZDBhNjY0MGI0NmNhZmI3Y2Iy
Li4zZTViNDMyNDY4NjQ4NjA2YzA0ZDExM2NjYjI5ZGRiNjQyODcyYjVmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMvd2Vi
eHIuaWRsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW50ZXJmYWNlcy93ZWJ4ci5pZGwKQEAgLTE0MSw2ICsxNDEsOSBAQCBpbnRlcmZhY2UgWFJSaWdp
ZFRyYW5zZm9ybSB7CiAKIFtTZWN1cmVDb250ZXh0LCBFeHBvc2VkPVdpbmRvd10gaW50ZXJmYWNl
IFhSUG9zZSB7CiAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgWFJSaWdpZFRyYW5z
Zm9ybSB0cmFuc2Zvcm07CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NUG9p
bnRSZWFkT25seT8gbGluZWFyVmVsb2NpdHk7CisgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRy
aWJ1dGUgRE9NUG9pbnRSZWFkT25seT8gYW5ndWxhclZlbG9jaXR5OworCiAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBib29sZWFuIGVtdWxhdGVkUG9zaXRpb247CiB9OwogCkBAIC0xOTksNiArMjAyLDcg
QEAgaW50ZXJmYWNlIFhSV2ViR0xMYXllcjogWFJMYXllciB7CiAgIC8vIEF0dHJpYnV0ZXMKICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gYW50aWFsaWFzOwogICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiBpZ25vcmVEZXB0aFZhbHVlczsKKyAgYXR0cmlidXRlIGZsb2F0PyBmaXhlZEZv
dmVhdGlvbjsKIAogICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFdlYkdMRnJhbWVi
dWZmZXI/IGZyYW1lYnVmZmVyOwogICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBm
cmFtZWJ1ZmZlcldpZHRoOwpAQCAtMjY4LDYgKzI3MiwxMCBAQCBkaWN0aW9uYXJ5IFhSUmVmZXJl
bmNlU3BhY2VFdmVudEluaXQgOiBFdmVudEluaXQgewogICBYUlJpZ2lkVHJhbnNmb3JtPyB0cmFu
c2Zvcm0gPSBudWxsOwogfTsKIAorZGljdGlvbmFyeSBYUlNlc3Npb25TdXBwb3J0ZWRQZXJtaXNz
aW9uRGVzY3JpcHRvcjogUGVybWlzc2lvbkRlc2NyaXB0b3IgeworICBYUlNlc3Npb25Nb2RlIG1v
ZGU7Cit9OworCiBkaWN0aW9uYXJ5IFhSUGVybWlzc2lvbkRlc2NyaXB0b3I6IFBlcm1pc3Npb25E
ZXNjcmlwdG9yIHsKICAgWFJTZXNzaW9uTW9kZSBtb2RlOwogICBzZXF1ZW5jZTxhbnk+IHJlcXVp
cmVkRmVhdHVyZXM7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL21lZGlhc2Vzc2lvbi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhc2Vzc2lv
bi9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggZmVjNmQ2NDM4OWVkZTFjMjBk
NGYyNjIzNTdmMTI2MmM3MTFhMDEzNS4uZjRiMzE1OWRmNThmZTU5OTI5MTJhODkzNTc0ZWIxN2Rj
ZTYxOTM3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9tZWRpYXNlc3Npb24vaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9u
L2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMjIsNiArMjIsOCBAQCBQQVNTIE1l
ZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtZXRhZGF0YQogUEFTUyBNZWRpYVNlc3Np
b24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcGxheWJhY2tTdGF0ZQogUEFTUyBNZWRpYVNlc3Npb24g
aW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0QWN0aW9uSGFuZGxlcihNZWRpYVNlc3Npb25BY3Rpb24s
IE1lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXI/KQogUEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNl
OiBvcGVyYXRpb24gc2V0UG9zaXRpb25TdGF0ZShvcHRpb25hbCBNZWRpYVBvc2l0aW9uU3RhdGUp
CitGQUlMIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRNaWNyb3Bob25lQWN0
aXZlKGJvb2xlYW4pIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgInNldE1p
Y3JvcGhvbmVBY3RpdmUiIG1pc3NpbmcKK0ZBSUwgTWVkaWFTZXNzaW9uIGludGVyZmFjZTogb3Bl
cmF0aW9uIHNldENhbWVyYUFjdGl2ZShib29sZWFuKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVj
dGVkIHByb3BlcnR5ICJzZXRDYW1lcmFBY3RpdmUiIG1pc3NpbmcKIFBBU1MgTWVkaWFTZXNzaW9u
IG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbgogUEFT
UyBTdHJpbmdpZmljYXRpb24gb2YgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbgogUEFTUyBNZWRpYVNl
c3Npb24gaW50ZXJmYWNlOiBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAibWV0YWRhdGEiIHdpdGggdGhlIHByb3BlciB0eXBlCkBAIC0zMCw2ICszMiwxMCBAQCBQ
QVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IG5hdmlnYXRvci5tZWRpYVNlc3Npb24gbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJzZXRBYwogUEFTUyBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBjYWxs
aW5nIHNldEFjdGlvbkhhbmRsZXIoTWVkaWFTZXNzaW9uQWN0aW9uLCBNZWRpYVNlc3Npb25BY3Rp
b25IYW5kbGVyPykgb24gbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbiB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yCiBQQVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IG5h
dmlnYXRvci5tZWRpYVNlc3Npb24gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzZXRQb3NpdGlvblN0
YXRlKG9wdGlvbmFsIE1lZGlhUG9zaXRpb25TdGF0ZSkiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQ
QVNTIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGNhbGxpbmcgc2V0UG9zaXRpb25TdGF0ZShvcHRp
b25hbCBNZWRpYVBvc2l0aW9uU3RhdGUpIG9uIG5hdmlnYXRvci5tZWRpYVNlc3Npb24gd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvcgorRkFJTCBNZWRpYVNlc3Npb24g
aW50ZXJmYWNlOiBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
c2V0TWljcm9waG9uZUFjdGl2ZShib29sZWFuKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0
X2luaGVyaXRzOiBwcm9wZXJ0eSAic2V0TWljcm9waG9uZUFjdGl2ZSIgbm90IGZvdW5kIGluIHBy
b3RvdHlwZSBjaGFpbgorRkFJTCBNZWRpYVNlc3Npb24gaW50ZXJmYWNlOiBjYWxsaW5nIHNldE1p
Y3JvcGhvbmVBY3RpdmUoYm9vbGVhbikgb24gbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbiB3aXRoIHRv
byBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIGFzc2VydF9pbmhlcml0czogcHJv
cGVydHkgInNldE1pY3JvcGhvbmVBY3RpdmUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4K
K0ZBSUwgTWVkaWFTZXNzaW9uIGludGVyZmFjZTogbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbiBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInNldENhbWVyYUFjdGl2ZShib29sZWFuKSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAic2V0Q2FtZXJhQWN0aXZlIiBub3Qg
Zm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIE1lZGlhU2Vzc2lvbiBpbnRlcmZhY2U6IGNh
bGxpbmcgc2V0Q2FtZXJhQWN0aXZlKGJvb2xlYW4pIG9uIG5hdmlnYXRvci5tZWRpYVNlc3Npb24g
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciBhc3NlcnRfaW5oZXJp
dHM6IHByb3BlcnR5ICJzZXRDYW1lcmFBY3RpdmUiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hh
aW4KIFBBU1MgTWVkaWFNZXRhZGF0YSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIE1lZGlhTWV0YWRhdGEgaW50ZXJmYWNlIG9iamVj
dCBsZW5ndGgKIFBBU1MgTWVkaWFNZXRhZGF0YSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZp
Y2F0aW9ucy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL25vdGlmaWNhdGlvbnMvaWRsaGFybmVzcy5o
dHRwcy5hbnktZXhwZWN0ZWQudHh0CmluZGV4IGYwZmVjOTIxNjM5YTI0OGNlYjkxYWU1ZDRkOTJm
NTY3NDQzYTA4MjQuLjM1ODk5NWQ2ZWY1ZWQwYjRkZDNmNDQ2NTAyNzUyMTZmODkxMGY4M2IgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbm90
aWZpY2F0aW9ucy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ub3RpZmljYXRpb25zL2lkbGhh
cm5lc3MuaHR0cHMuYW55LWV4cGVjdGVkLnR4dApAQCAtNjQsNyArNjQsNCBAQCBQQVNTIE5vdGlm
aWNhdGlvbiBpbnRlcmZhY2U6IG5vdGlmaWNhdGlvbiBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNs
b3NlKCkiIHdpdGggdAogUEFTUyBOb3RpZmljYXRpb25FdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBGQUlMIFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gc2hvd05vdGlmaWNhdGlvbihET01TdHJp
bmcsIG9wdGlvbmFsIE5vdGlmaWNhdGlvbk9wdGlvbnMpIGFzc2VydF9vd25fcHJvcGVydHk6IGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhw
ZWN0ZWQgcHJvcGVydHkgInNob3dOb3RpZmljYXRpb24iIG1pc3NpbmcKIEZBSUwgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXROb3RpZmljYXRpb25zKG9w
dGlvbmFsIEdldE5vdGlmaWNhdGlvbk9wdGlvbnMpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0
ZWQgcHJvcGVydHkgImdldE5vdGlmaWNhdGlvbnMiIG1pc3NpbmcKLVBBU1MgU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QKLVBBU1MgRXh0ZW5kYWJsZUV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKLVBBU1MgV29ya2VyR2xvYmFsU2NvcGUg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L25vdGlmaWNhdGlvbnMvaWRsaGFybmVzcy5odHRwcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9u
cy9pZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDU5ODE1YTQ0
M2Y2NzE3NDg5Y2M3OWRkNmMzNjYzZTQzZTgwOTkyZWUuLmZlZjg0YWZjMzU0OWFiMGMzZWMwMTFm
ZGM0NTRkNWRlZGI1Mjg3OTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9pZGxoYXJuZXNzLmh0dHBzLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbm90aWZpY2F0aW9ucy9pZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXItZXhwZWN0
ZWQudHh0CkBAIC02Myw2ICs2Myw0IEBAIEZBSUwgTm90aWZpY2F0aW9uIGludGVyZmFjZTogbm90
aWZpY2F0aW9uIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xvc2UoKSIgd2l0aCB0CiBQQVNTIE5v
dGlmaWNhdGlvbkV2ZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBvYmplY3QKIEZBSUwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBzaG93Tm90aWZpY2F0aW9uKERPTVN0cmluZywgb3B0aW9uYWwgTm90aWZpY2F0
aW9uT3B0aW9ucykgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiIgZXhwZWN0ZWQgcHJvcGVydHkgIlNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb24iIG1pc3NpbmcKIEZBSUwgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXROb3RpZmljYXRpb25zKG9wdGlvbmFsIEdl
dE5vdGlmaWNhdGlvbk9wdGlvbnMpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3Qg
aGF2ZSBvd24gcHJvcGVydHkgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24iIGV4cGVjdGVkIHBy
b3BlcnR5ICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIiBtaXNzaW5nCi1QQVNTIFNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIEV4dGVuZGFibGVFdmVudCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcG9pbnRlcmV2ZW50cy9pZGxo
YXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVudHMvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQu
dHh0CmluZGV4IGY3NmU2OTEyZDQ3OTkwNmY3Yjk5NWM5MzY5ZTU3Y2I2NzkwNGU3ZjAuLjA3MzIy
N2QzNjViYzcyZTM5NTNkZWU0NjdmODkwNmRmMjVhNjRjNWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcG9pbnRlcmV2ZW50cy9pZGxoYXJu
ZXNzLndpbmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVk
LnR4dApAQCAtMTQsOSArMTQsNiBAQCBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50WzJd
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBXaW5kb3c6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGluY2x1ZGVzIEdsb2JhbEV2
ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIERvY3VtZW50IGluY2x1
ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRv
ckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVz
IEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxF
bGVtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEVsZW1lbnRDb250ZW50
RWRpdGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCkBAIC0yNCw5ICsyMSw2IEBAIFBBU1Mg
SFRNTEVsZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZHRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJz
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JX
b3JrZXJHbG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV2luZG93IGlu
Y2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1Q
QVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKLVBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvcklEOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9y
TGFuZ3VhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRl
cyBOYXZpZ2F0b3JPbkxpbmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCkBAIC0zNCwxMCArMjgs
MTYgQEAgUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29udGVudFV0aWxzOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29v
a2llczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5h
dmlnYXRvclBsdWdpbnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBp
bmNsdWRlcyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCitQQVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vzc2lvblN0b3Jh
Z2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dM
b2NhbFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1
ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBE
b2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBFbGVtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIEVsZW1lbnQgaW5jbHVkZXMgTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBTbG90dGFibGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFz
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgUG9pbnRlckV2ZW50IGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgUG9pbnRl
ckV2ZW50IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCiBQQVNTIFBvaW50ZXJFdmVudCBpbnRlcmZh
Y2Ugb2JqZWN0IG5hbWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL2NoZWNrLWxheW91dC10aC5qcyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL2NoZWNrLWxheW91dC10
aC5qcwppbmRleCA1ZDQyMzZkMWNlZGIwZTIwZGJjMWJiMzA3MjJjYjBlOWUxNjBmMTEwLi5hNTA3
YThkZmQ3ZjE5N2NiZjNmZjMwNzJlN2Y3MjkxODQ3Y2Q2YWEyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy9jaGVjay1sYXlv
dXQtdGguanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LXRoLmpzCkBAIC0zNiw2ICszNiw3IEBAIGZ1bmN0aW9u
IGNoZWNrRGF0YUtleXMobm9kZSkgewogICAgICAgICAiZGF0YS1leHBlY3RlZC1zY3JvbGwtd2lk
dGgiLAogICAgICAgICAiZGF0YS1leHBlY3RlZC1zY3JvbGwtaGVpZ2h0IiwKICAgICAgICAgImRh
dGEtZXhwZWN0ZWQtYm91bmRpbmctY2xpZW50LXJlY3Qtd2lkdGgiLAorICAgICAgICAiZGF0YS1l
eHBlY3RlZC1ib3VuZGluZy1jbGllbnQtcmVjdC1oZWlnaHQiLAogICAgICAgICAiZGF0YS10b3Rh
bC14IiwKICAgICAgICAgImRhdGEtdG90YWwteSIsCiAgICAgICAgICJkYXRhLWV4cGVjdGVkLWRp
c3BsYXkiLApAQCAtMTA3LDYgKzEwOCwxMSBAQCBmdW5jdGlvbiBjaGVja0V4cGVjdGVkVmFsdWVz
KHQsIG5vZGUsIHByZWZpeCkKICAgICAgICAgYXNzZXJ0X3RvbGVyYW5jZShub2RlLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpLndpZHRoLCBleHBlY3RlZFdpZHRoLCBwcmVmaXggKyAiZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCkud2lkdGgiKTsKICAgICB9CiAKKyAgICB2YXIgZXhwZWN0ZWRIZWlnaHQg
PSBjaGVja0F0dHJpYnV0ZShvdXRwdXQsIG5vZGUsICJkYXRhLWV4cGVjdGVkLWJvdW5kaW5nLWNs
aWVudC1yZWN0LWhlaWdodCIpOworICAgIGlmIChleHBlY3RlZEhlaWdodCkgeworICAgICAgICBh
c3NlcnRfdG9sZXJhbmNlKG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0LCBleHBl
Y3RlZEhlaWdodCwgcHJlZml4ICsgImdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCIpOwor
ICAgIH0KKwogICAgIHZhciBleHBlY3RlZE9mZnNldCA9IGNoZWNrQXR0cmlidXRlKG91dHB1dCwg
bm9kZSwgImRhdGEtdG90YWwteCIpOwogICAgIGlmIChleHBlY3RlZE9mZnNldCkgewogICAgICAg
ICB2YXIgdG90YWxMZWZ0ID0gbm9kZS5jbGllbnRMZWZ0ICsgbm9kZS5vZmZzZXRMZWZ0OwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNv
dXJjZXMvaWRsaGFybmVzcy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcmVzb3VyY2VzL2lkbGhhcm5lc3MuanMKaW5kZXggNWE5N2IyNzNmMmJlZDE5NmQ2
ZGRkODVjNTU5NmRlY2ZmMWJmODdhZS4uNmFlYzAyZTNhYmUwNmIyMGQxMWJiNDZiZmQ1Yjc0MjMy
Njg1MWM4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzCkBAIC0xLDEz
ICsxLDMgQEAKLS8qCi1EaXN0cmlidXRlZCB1bmRlciBib3RoIHRoZSBXM0MgVGVzdCBTdWl0ZSBM
aWNlbnNlIFsxXSBhbmQgdGhlIFczQwotMy1jbGF1c2UgQlNEIExpY2Vuc2UgWzJdLiBUbyBjb250
cmlidXRlIHRvIGEgVzNDIFRlc3QgU3VpdGUsIHNlZSB0aGUKLXBvbGljaWVzIGFuZCBjb250cmli
dXRpb24gZm9ybXMgWzNdLgotCi1bMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdh
bC8yMDA4LzA0LXRlc3RzdWl0ZS1saWNlbnNlCi1bMl0gaHR0cDovL3d3dy53My5vcmcvQ29uc29y
dGl1bS9MZWdhbC8yMDA4LzAzLWJzZC1saWNlbnNlCi1bM10gaHR0cDovL3d3dy53My5vcmcvMjAw
NC8xMC8yNy10ZXN0Y2FzZXMKLSovCi0KIC8qIEZvciB1c2VyIGRvY3VtZW50YXRpb24gc2VlIGRv
Y3MvX3dyaXRpbmctdGVzdHMvaWRsaGFybmVzcy5tZCAqLwogCiAvKioKQEAgLTEwMSw2ICs5MSwx
NiBAQCBmdW5jdGlvbiBnbG9iYWxPZihmdW5jKQogICAgIHJldHVybiBzZWxmOwogfQogCisvLyBo
dHRwczovL2VzZGlzY3Vzcy5vcmcvdG9waWMvaXNjb25zdHJ1Y3RvciNjb250ZW50LTExCitmdW5j
dGlvbiBpc0NvbnN0cnVjdG9yKG8pIHsKKyAgICB0cnkgeworICAgICAgICBuZXcgKG5ldyBQcm94
eShvLCB7Y29uc3RydWN0OiAoKSA9PiAoe30pfSkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9IGNhdGNoKGUpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwogZnVuY3Rp
b24gdGhyb3dPclJlamVjdChhX3Rlc3QsIG9wZXJhdGlvbiwgZm4sIG9iaiwgYXJncywgbWVzc2Fn
ZSwgY2IpCiB7CiAgICAgaWYgKG9wZXJhdGlvbi5pZGxUeXBlLmdlbmVyaWMgIT09ICJQcm9taXNl
IikgewpAQCAtMTMxLDE3ICsxMzEsNiBAQCBmdW5jdGlvbiBhd2FpdE5DYWxsYmFja3MobiwgY2Is
IGN0eCkKICAgICB9OwogfQogCi12YXIgZnJvdW5kID0KLShmdW5jdGlvbigpewotICAgIGlmIChN
YXRoLmZyb3VuZCkgcmV0dXJuIE1hdGguZnJvdW5kOwotCi0gICAgdmFyIGFyciA9IG5ldyBGbG9h
dDMyQXJyYXkoMSk7Ci0gICAgcmV0dXJuIGZ1bmN0aW9uIGZyb3VuZChuKSB7Ci0gICAgICAgIGFy
clswXSA9IG47Ci0gICAgICAgIHJldHVybiBhcnJbMF07Ci0gICAgfTsKLX0pKCk7Ci0KIC8vLyBJ
ZGxIYXJuZXNzRXJyb3IgLy8vCiAvLyBFbnRyeSBwb2ludAogc2VsZi5JZGxIYXJuZXNzRXJyb3Ig
PSBmdW5jdGlvbihtZXNzYWdlKQpAQCAtMTg1LDMxICsxNzQsMTUgQEAgc2VsZi5JZGxBcnJheSA9
IGZ1bmN0aW9uKCkKIAogICAgIC8qKgogICAgICAqIFdoZW4gYWRkaW5nIG11bHRpcGxlIGNvbGxl
Y3Rpb25zIG9mIElETHMgb25lIGF0IGEgdGltZSwgYW4gZWFybGllciBvbmUKLSAgICAgKiBtaWdo
dCBjb250YWluIGEgcGFydGlhbCBpbnRlcmZhY2Ugb3IgaW1wbGVtZW50cyBzdGF0ZW1lbnQgdGhh
dCBkZXBlbmRzCisgICAgICogbWlnaHQgY29udGFpbiBhIHBhcnRpYWwgaW50ZXJmYWNlIG9yIGlu
Y2x1ZGVzIHN0YXRlbWVudCB0aGF0IGRlcGVuZHMKICAgICAgKiBvbiBhIGxhdGVyIG9uZS4gIFNh
dmUgdGhlc2UgdXAgYW5kIGhhbmRsZSB0aGVtIHJpZ2h0IGJlZm9yZSB3ZSBydW4KICAgICAgKiB0
ZXN0cy4KICAgICAgKgotICAgICAqIC5wYXJ0aWFscyBpcyBzaW1wbHkgYW4gYXJyYXkgb2Ygb2Jq
ZWN0cyBmcm9tIFdlYklETFBhcnNlci5qcycKLSAgICAgKiAicGFydGlhbGludGVyZmFjZSIgcHJv
ZHVjdGlvbi4gIC5pbXBsZW1lbnRzIG1hcHMgc3RyaW5ncyB0byBhcnJheXMgb2YKLSAgICAgKiBz
dHJpbmdzLCBzdWNoIHRoYXQKLSAgICAgKgotICAgICAqICAgQSBpbXBsZW1lbnRzIEI7Ci0gICAg
ICogICBBIGltcGxlbWVudHMgQzsKLSAgICAgKiAgIEQgaW1wbGVtZW50cyBFOwotICAgICAqCi0g
ICAgICogcmVzdWx0cyBpbiB0aGlzWyJpbXBsZW1lbnRzIl0gPSB7IEE6IFsiQiIsICJDIl0sIEQ6
IFsiRSJdIH0uCi0gICAgICoKLSAgICAgKiBTaW1pbGFybHksCi0gICAgICoKLSAgICAgKiAgIGlu
dGVyZmFjZSBBIDogQiB7fTsKLSAgICAgKiAgIGludGVyZmFjZSBCIDogQyB7fTsKLSAgICAgKgot
ICAgICAqIHJlc3VsdHMgaW4gdGhpc1siaW5oZXJpdGFuY2UiXSA9IHsgQTogIkIiLCBCOiAiQyIg
fQorICAgICAqIEJvdGggdGhpcy5wYXJ0aWFscyBhbmQgdGhpcy5pbmNsdWRlcyB3aWxsIGJlIHRo
ZSBvYmplY3RzIGFzIHBhcnNlZCBieQorICAgICAqIFdlYklETFBhcnNlci5qcywgbm90IHdyYXBw
ZWQgaW4gSWRsSW50ZXJmYWNlIG9yIHNpbWlsYXIuCiAgICAgICovCiAgICAgdGhpcy5wYXJ0aWFs
cyA9IFtdOwotICAgIHRoaXNbImltcGxlbWVudHMiXSA9IHt9OwotICAgIHRoaXNbImluY2x1ZGVz
Il0gPSB7fTsKLSAgICB0aGlzWyJpbmhlcml0YW5jZSJdID0ge307CisgICAgdGhpcy5pbmNsdWRl
cyA9IFtdOwogCiAgICAgLyoqCiAgICAgICogUmVjb3JkIG9mIHNraXBwZWQgSURMIGl0ZW1zLCBp
biBjYXNlIHdlIGxhdGVyIHJlYWxpemUgdGhhdCB0aGV5IGFyZSBhCkBAIC0yNjEsMTUgKzIzNCwx
NSBAQCBJZGxBcnJheS5wcm90b3R5cGUuaW50ZXJuYWxfYWRkX2RlcGVuZGVuY3lfaWRscyA9IGZ1
bmN0aW9uKHBhcnNlZF9pZGxzLCBvcHRpb25zKQogICAgIGNvbnN0IG5ld19vcHRpb25zID0geyBv
bmx5OiBbXSB9CiAKICAgICBjb25zdCBhbGxfZGVwcyA9IG5ldyBTZXQoKTsKLSAgICBPYmplY3Qu
dmFsdWVzKHRoaXMuaW5oZXJpdGFuY2UpLmZvckVhY2godiA9PiBhbGxfZGVwcy5hZGQodikpOwot
ICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuaW1wbGVtZW50cykuZm9yRWFjaCgoW2ssIHZdKSA9PiB7
Ci0gICAgICAgIGFsbF9kZXBzLmFkZChrKTsKLSAgICAgICAgYWxsX2RlcHMuYWRkKHYpOworICAg
IE9iamVjdC52YWx1ZXModGhpcy5tZW1iZXJzKS5mb3JFYWNoKHYgPT4geworICAgICAgICBpZiAo
di5iYXNlKSB7CisgICAgICAgICAgICBhbGxfZGVwcy5hZGQodi5iYXNlKTsKKyAgICAgICAgfQog
ICAgIH0pOwotICAgIC8vIE5PVEU6IElmICdBIGluY2x1ZGVzIEInIGZvciBCIHRoYXQgd2UgY2Fy
ZSBhYm91dCwgdGhlbiBBIGlzIGFsc28gYSBkZXAuCi0gICAgT2JqZWN0LmtleXModGhpcy5pbmNs
dWRlcykuZm9yRWFjaChrID0+IHsKLSAgICAgICAgYWxsX2RlcHMuYWRkKGspOwotICAgICAgICB0
aGlzLmluY2x1ZGVzW2tdLmZvckVhY2godiA9PiBhbGxfZGVwcy5hZGQodikpOworICAgIC8vIEFk
ZCBib3RoICdBJyBhbmQgJ0InIGZvciBlYWNoICdBIGluY2x1ZGVzIEInIGVudHJ5LgorICAgIHRo
aXMuaW5jbHVkZXMuZm9yRWFjaChpID0+IHsKKyAgICAgICAgYWxsX2RlcHMuYWRkKGkudGFyZ2V0
KTsKKyAgICAgICAgYWxsX2RlcHMuYWRkKGkuaW5jbHVkZXMpOwogICAgIH0pOwogICAgIHRoaXMu
cGFydGlhbHMuZm9yRWFjaChwID0+IGFsbF9kZXBzLmFkZChwLm5hbWUpKTsKICAgICAvLyBBZGQg
J1R5cGVPZlR5cGUnIGZvciBlYWNoICJ0eXBlZGVmIFR5cGVPZlR5cGUgTXlUeXBlOyIgZW50cnku
CkBAIC0zMjgsOSArMzAxLDYgQEAgSWRsQXJyYXkucHJvdG90eXBlLmludGVybmFsX2FkZF9kZXBl
bmRlbmN5X2lkbHMgPSBmdW5jdGlvbihwYXJzZWRfaWRscywgb3B0aW9ucykKICAgICAgICAgdmFy
IGRlcHMgPSBbXTsKICAgICAgICAgaWYgKHBhcnNlZC5uYW1lKSB7CiAgICAgICAgICAgICBkZXBz
LnB1c2gocGFyc2VkLm5hbWUpOwotICAgICAgICB9IGVsc2UgaWYgKHBhcnNlZC50eXBlID09PSAi
aW1wbGVtZW50cyIpIHsKLSAgICAgICAgICAgIGRlcHMucHVzaChwYXJzZWQudGFyZ2V0KTsKLSAg
ICAgICAgICAgIGRlcHMucHVzaChwYXJzZWQuaW1wbGVtZW50cyk7CiAgICAgICAgIH0gZWxzZSBp
ZiAocGFyc2VkLnR5cGUgPT09ICJpbmNsdWRlcyIpIHsKICAgICAgICAgICAgIGRlcHMucHVzaChw
YXJzZWQudGFyZ2V0KTsKICAgICAgICAgICAgIGRlcHMucHVzaChwYXJzZWQuaW5jbHVkZXMpOwpA
QCAtMzU4LDcgKzMyOCw3IEBAIElkbEFycmF5LnByb3RvdHlwZS5pbnRlcm5hbF9hZGRfZGVwZW5k
ZW5jeV9pZGxzID0gZnVuY3Rpb24ocGFyc2VkX2lkbHMsIG9wdGlvbnMpCiAgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgIGNvbnN0IGZvbGxvd191cCA9IG5ldyBTZXQoKTsKLSAgICAgICAgICAg
IGZvciAoY29uc3QgZGVwX3R5cGUgb2YgWyJpbmhlcml0YW5jZSIsICJpbXBsZW1lbnRzIiwgImlu
Y2x1ZGVzIl0pIHsKKyAgICAgICAgICAgIGZvciAoY29uc3QgZGVwX3R5cGUgb2YgWyJpbmhlcml0
YW5jZSIsICJpbmNsdWRlcyJdKSB7CiAgICAgICAgICAgICAgICAgaWYgKHBhcnNlZFtkZXBfdHlw
ZV0pIHsKICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5oZXJpdGluZyA9IHBhcnNlZFtkZXBf
dHlwZV07CiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluaGVyaXRvciA9IHBhcnNlZC5uYW1l
IHx8IHBhcnNlZC50YXJnZXQ7CkBAIC00NDcsMzEgKzQxNywxMyBAQCBJZGxBcnJheS5wcm90b3R5
cGUuaW50ZXJuYWxfYWRkX2lkbHMgPSBmdW5jdGlvbihwYXJzZWRfaWRscywgb3B0aW9ucykKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChwYXJzZWRfaWRsLnR5
cGUgPT0gImltcGxlbWVudHMiKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoc2hvdWxkX3Nr
aXAocGFyc2VkX2lkbC50YXJnZXQpKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghKHBhcnNlZF9pZGwudGFyZ2V0
IGluIHRoaXNbImltcGxlbWVudHMiXSkpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
dGhpc1siaW1wbGVtZW50cyJdW3BhcnNlZF9pZGwudGFyZ2V0XSA9IFtdOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgdGhpc1siaW1wbGVtZW50cyJdW3BhcnNlZF9pZGwudGFyZ2V0XS5wdXNo
KHBhcnNlZF9pZGxbImltcGxlbWVudHMiXSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLQogICAgICAgICBpZiAocGFyc2VkX2lkbC50eXBlID09ICJpbmNsdWRlcyIpCiAgICAgICAg
IHsKICAgICAgICAgICAgIGlmIChzaG91bGRfc2tpcChwYXJzZWRfaWRsLnRhcmdldCkpCiAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgaWYgKCEocGFyc2VkX2lkbC50YXJnZXQgaW4gdGhpc1siaW5jbHVkZXMiXSkpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdGhpc1siaW5jbHVkZXMiXVtwYXJzZWRfaWRsLnRh
cmdldF0gPSBbXTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRoaXNbImluY2x1ZGVzIl1b
cGFyc2VkX2lkbC50YXJnZXRdLnB1c2gocGFyc2VkX2lkbFsiaW5jbHVkZXMiXSk7CisgICAgICAg
ICAgICB0aGlzLmluY2x1ZGVzLnB1c2gocGFyc2VkX2lkbCk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtNDg1LDE2ICs0MzcsNiBAQCBJZGxBcnJheS5wcm90b3R5cGUuaW50
ZXJuYWxfYWRkX2lkbHMgPSBmdW5jdGlvbihwYXJzZWRfaWRscywgb3B0aW9ucykKICAgICAgICAg
ICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJyb3IoIkR1cGxpY2F0ZSBpZGVudGlmaWVyICIgKyBw
YXJzZWRfaWRsLm5hbWUpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHBhcnNlZF9pZGxbImlu
aGVyaXRhbmNlIl0pIHsKLSAgICAgICAgICAgIC8vIE5PVEU6IENsYXNoIHNob3VsZCBiZSBpbXBv
c3NpYmxlICh3b3VsZCByZXF1aXJlIHJlZGVmaW5pdGlvbiBvZiBwYXJzZWRfaWRsLm5hbWUpLgot
ICAgICAgICAgICAgaWYgKHBhcnNlZF9pZGwubmFtZSBpbiB0aGlzWyJpbmhlcml0YW5jZSJdCi0g
ICAgICAgICAgICAgICAgJiYgcGFyc2VkX2lkbFsiaW5oZXJpdGFuY2UiXSAhPSB0aGlzWyJpbmhl
cml0YW5jZSJdW3BhcnNlZF9pZGwubmFtZV0pIHsKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
SWRsSGFybmVzc0Vycm9yKAotICAgICAgICAgICAgICAgICAgICBgSW5oZXJpdGFuY2UgZm9yICR7
cGFyc2VkX2lkbC5uYW1lfSB3YXMgYWxyZWFkeSBkZWZpbmVkYCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB0aGlzWyJpbmhlcml0YW5jZSJdW3BhcnNlZF9pZGwubmFtZV0gPSBwYXJzZWRf
aWRsWyJpbmhlcml0YW5jZSJdOwotICAgICAgICB9Ci0KICAgICAgICAgc3dpdGNoKHBhcnNlZF9p
ZGwudHlwZSkKICAgICAgICAgewogICAgICAgICBjYXNlICJpbnRlcmZhY2UiOgpAQCAtNTYyLDYy
ICs1MDQsNiBAQCBJZGxBcnJheS5wcm90b3R5cGUucHJldmVudF9tdWx0aXBsZV90ZXN0aW5nID0g
ZnVuY3Rpb24obmFtZSkKICAgICB0aGlzLm1lbWJlcnNbbmFtZV0ucHJldmVudF9tdWx0aXBsZV90
ZXN0aW5nID0gdHJ1ZTsKIH07CiAKLUlkbEFycmF5LnByb3RvdHlwZS5yZWN1cnNpdmVseV9nZXRf
aW1wbGVtZW50cyA9IGZ1bmN0aW9uKGludGVyZmFjZV9uYW1lKQotewotICAgIC8qKgotICAgICAq
IEhlbHBlciBmdW5jdGlvbiBmb3IgdGVzdCgpLiAgUmV0dXJucyBhbiBhcnJheSBvZiB0aGluZ3Mg
dGhhdCBpbXBsZW1lbnQKLSAgICAgKiBpbnRlcmZhY2VfbmFtZSwgc28gaWYgdGhlIElETCBjb250
YWlucwotICAgICAqCi0gICAgICogICBBIGltcGxlbWVudHMgQjsKLSAgICAgKiAgIEIgaW1wbGVt
ZW50cyBDOwotICAgICAqICAgQiBpbXBsZW1lbnRzIEQ7Ci0gICAgICoKLSAgICAgKiB0aGVuIHJl
Y3Vyc2l2ZWx5X2dldF9pbXBsZW1lbnRzKCJBIikgc2hvdWxkIHJldHVybiBbIkIiLCAiQyIsICJE
Il0uCi0gICAgICovCi0gICAgdmFyIHJldCA9IHRoaXNbImltcGxlbWVudHMiXVtpbnRlcmZhY2Vf
bmFtZV07Ci0gICAgaWYgKHJldCA9PT0gdW5kZWZpbmVkKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IFtdOwotICAgIH0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXNbImltcGxlbWVudHMiXVtp
bnRlcmZhY2VfbmFtZV0ubGVuZ3RoOyBpKyspCi0gICAgewotICAgICAgICByZXQgPSByZXQuY29u
Y2F0KHRoaXMucmVjdXJzaXZlbHlfZ2V0X2ltcGxlbWVudHMocmV0W2ldKSk7Ci0gICAgICAgIGlm
IChyZXQuaW5kZXhPZihyZXRbaV0pICE9IHJldC5sYXN0SW5kZXhPZihyZXRbaV0pKQotICAgICAg
ICB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vycm9yKCJDaXJjdWxhciBpbXBs
ZW1lbnRzIHN0YXRlbWVudHMgaW52b2x2aW5nICIgKyByZXRbaV0pOwotICAgICAgICB9Ci0gICAg
fQotICAgIHJldHVybiByZXQ7Ci19OwotCi1JZGxBcnJheS5wcm90b3R5cGUucmVjdXJzaXZlbHlf
Z2V0X2luY2x1ZGVzID0gZnVuY3Rpb24oaW50ZXJmYWNlX25hbWUpCi17Ci0gICAgLyoqCi0gICAg
ICogSGVscGVyIGZ1bmN0aW9uIGZvciB0ZXN0KCkuICBSZXR1cm5zIGFuIGFycmF5IG9mIHRoaW5n
cyB0aGF0IGltcGxlbWVudAotICAgICAqIGludGVyZmFjZV9uYW1lLCBzbyBpZiB0aGUgSURMIGNv
bnRhaW5zCi0gICAgICoKLSAgICAgKiAgIEEgaW5jbHVkZXMgQjsKLSAgICAgKiAgIEIgaW5jbHVk
ZXMgQzsKLSAgICAgKiAgIEIgaW5jbHVkZXMgRDsKLSAgICAgKgotICAgICAqIHRoZW4gcmVjdXJz
aXZlbHlfZ2V0X2luY2x1ZGVzKCJBIikgc2hvdWxkIHJldHVybiBbIkIiLCAiQyIsICJEIl0uCi0g
ICAgICovCi0gICAgdmFyIHJldCA9IHRoaXNbImluY2x1ZGVzIl1baW50ZXJmYWNlX25hbWVdOwot
ICAgIGlmIChyZXQgPT09IHVuZGVmaW5lZCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBbXTsKLSAg
ICB9Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzWyJpbmNsdWRlcyJdW2ludGVyZmFjZV9u
YW1lXS5sZW5ndGg7IGkrKykKLSAgICB7Ci0gICAgICAgIHJldCA9IHJldC5jb25jYXQodGhpcy5y
ZWN1cnNpdmVseV9nZXRfaW5jbHVkZXMocmV0W2ldKSk7Ci0gICAgICAgIGlmIChyZXQuaW5kZXhP
ZihyZXRbaV0pICE9IHJldC5sYXN0SW5kZXhPZihyZXRbaV0pKQotICAgICAgICB7Ci0gICAgICAg
ICAgICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vycm9yKCJDaXJjdWxhciBpbmNsdWRlcyBzdGF0ZW1l
bnRzIGludm9sdmluZyAiICsgcmV0W2ldKTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4g
cmV0OwotfTsKLQogSWRsQXJyYXkucHJvdG90eXBlLmlzX2pzb25fdHlwZSA9IGZ1bmN0aW9uKHR5
cGUpCiB7CiAgICAgLyoqCkBAIC02OTUsMjUgKzU4MSwyMyBAQCBJZGxBcnJheS5wcm90b3R5cGUu
aXNfanNvbl90eXBlID0gZnVuY3Rpb24odHlwZSkKIAogICAgICAgICAgICAvLyAgZGljdGlvbmFy
aWVzIHdoZXJlIGFsbCBvZiB0aGVpciBtZW1iZXJzIGFyZSBKU09OIHR5cGVzCiAgICAgICAgICAg
IGlmICh0aGluZyBpbnN0YW5jZW9mIElkbERpY3Rpb25hcnkpIHsKLSAgICAgICAgICAgICAgIHZh
ciBzdGFjayA9IHRoaW5nLmdldF9pbmhlcml0YW5jZV9zdGFjaygpOwotICAgICAgICAgICAgICAg
dmFyIG1hcCA9IG5ldyBNYXAoKTsKLSAgICAgICAgICAgICAgIHdoaWxlIChzdGFjay5sZW5ndGgp
Ci0gICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgc3RhY2sucG9wKCkubWVtYmVy
cy5mb3JFYWNoKGZ1bmN0aW9uKG0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgbWFwLnNldCht
Lm5hbWUsIG0uaWRsVHlwZSkKLSAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
IGNvbnN0IG1hcCA9IG5ldyBNYXAoKTsKKyAgICAgICAgICAgICAgIGZvciAoY29uc3QgZGljdCBv
ZiB0aGluZy5nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjaygpKSB7CisgICAgICAgICAgICAg
ICAgICAgZm9yIChjb25zdCBtIG9mIGRpY3QubWVtYmVycykgeworICAgICAgICAgICAgICAgICAg
ICAgICBtYXAuc2V0KG0ubmFtZSwgbS5pZGxUeXBlKTsKKyAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShtYXAudmFs
dWVzKCkpLmV2ZXJ5KHRoaXMuaXNfanNvbl90eXBlLCB0aGlzKTsKICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgIC8vICBpbnRlcmZhY2UgdHlwZXMgdGhhdCBoYXZlIGEgdG9KU09OIG9wZXJhdGlv
biBkZWNsYXJlZCBvbiB0aGVtc2VsdmVzIG9yCi0gICAgICAgICAgIC8vICBvbmUgb2YgdGhlaXIg
aW5oZXJpdGVkIG9yIGNvbnNlcXVlbnRpYWwgaW50ZXJmYWNlcy4KKyAgICAgICAgICAgLy8gIG9u
ZSBvZiB0aGVpciBpbmhlcml0ZWQgaW50ZXJmYWNlcy4KICAgICAgICAgICAgaWYgKHRoaW5nIGlu
c3RhbmNlb2YgSWRsSW50ZXJmYWNlKSB7CiAgICAgICAgICAgICAgICB2YXIgYmFzZTsKICAgICAg
ICAgICAgICAgIHdoaWxlICh0aGluZykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICBpZiAodGhpbmcuaGFzX3RvX2pzb25fcmVndWxhcl9vcGVyYXRpb24oKSkgeyByZXR1cm4g
dHJ1ZTsgfQotICAgICAgICAgICAgICAgICAgIHZhciBtaXhpbnMgPSB0aGlzLmltcGxlbWVudHNb
dGhpbmcubmFtZV0gfHwgdGhpcy5pbmNsdWRlc1t0aGluZy5uYW1lXTsKKyAgICAgICAgICAgICAg
ICAgICB2YXIgbWl4aW5zID0gdGhpcy5pbmNsdWRlc1t0aGluZy5uYW1lXTsKICAgICAgICAgICAg
ICAgICAgICBpZiAobWl4aW5zKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG1peGlucyA9IG1p
eGlucy5tYXAoZnVuY3Rpb24oaWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBt
aXhpbiA9IHRoaXMubWVtYmVyc1tpZF07CkBAIC03NjYsNyArNjUwLDcgQEAgZnVuY3Rpb24gZXhw
b3N1cmVfc2V0KG9iamVjdCwgZGVmYXVsdF9zZXQpIHsKIH0KIAogZnVuY3Rpb24gZXhwb3NlZF9p
bihnbG9iYWxzKSB7Ci0gICAgaWYgKCdkb2N1bWVudCcgaW4gc2VsZikgeworICAgIGlmICgnV2lu
ZG93JyBpbiBzZWxmKSB7CiAgICAgICAgIHJldHVybiBnbG9iYWxzLmhhcygiV2luZG93Iik7CiAg
ICAgfQogICAgIGlmICgnRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUnIGluIHNlbGYgJiYKQEAg
LTgxMyw2NiArNjk3LDkgQEAgSWRsQXJyYXkucHJvdG90eXBlLnRlc3QgPSBmdW5jdGlvbigpCiB7
CiAgICAgLyoqIEVudHJ5IHBvaW50LiAgU2VlIGRvY3VtZW50YXRpb24gYXQgYmVnaW5uaW5nIG9m
IGZpbGUuICovCiAKLSAgICAvLyBGaXJzdCBtZXJnZSBpbiBhbGwgdGhlIHBhcnRpYWwgaW50ZXJm
YWNlcyBhbmQgaW1wbGVtZW50cyBzdGF0ZW1lbnRzIHdlCi0gICAgLy8gZW5jb3VudGVyZWQuCi0g
ICAgdGhpcy5jb2xsYXBzZV9wYXJ0aWFscygpOwotCi0gICAgZm9yICh2YXIgbGhzIGluIHRoaXNb
ImltcGxlbWVudHMiXSkKLSAgICB7Ci0gICAgICAgIHRoaXMucmVjdXJzaXZlbHlfZ2V0X2ltcGxl
bWVudHMobGhzKS5mb3JFYWNoKGZ1bmN0aW9uKHJocykKLSAgICAgICAgewotICAgICAgICAgICAg
dmFyIGVyclN0ciA9IGxocyArICIgaW1wbGVtZW50cyAiICsgcmhzICsgIiwgYnV0ICI7Ci0gICAg
ICAgICAgICBpZiAoIShsaHMgaW4gdGhpcy5tZW1iZXJzKSkgdGhyb3cgZXJyU3RyICsgbGhzICsg
IiBpcyB1bmRlZmluZWQuIjsKLSAgICAgICAgICAgIGlmICghKHRoaXMubWVtYmVyc1tsaHNdIGlu
c3RhbmNlb2YgSWRsSW50ZXJmYWNlKSkgdGhyb3cgZXJyU3RyICsgbGhzICsgIiBpcyBub3QgYW4g
aW50ZXJmYWNlLiI7Ci0gICAgICAgICAgICBpZiAoIShyaHMgaW4gdGhpcy5tZW1iZXJzKSkgdGhy
b3cgZXJyU3RyICsgcmhzICsgIiBpcyB1bmRlZmluZWQuIjsKLSAgICAgICAgICAgIGlmICghKHRo
aXMubWVtYmVyc1tyaHNdIGluc3RhbmNlb2YgSWRsSW50ZXJmYWNlKSkgdGhyb3cgZXJyU3RyICsg
cmhzICsgIiBpcyBub3QgYW4gaW50ZXJmYWNlLiI7Ci0KLSAgICAgICAgICAgIGlmICh0aGlzLm1l
bWJlcnNbcmhzXS5tZW1iZXJzLmxlbmd0aCkgewotICAgICAgICAgICAgICAgIHRlc3QoZnVuY3Rp
b24gKCkgewotICAgICAgICAgICAgICAgICAgICB2YXIgY2xhc2ggPSB0aGlzLm1lbWJlcnNbcmhz
XS5tZW1iZXJzLmZpbmQoZnVuY3Rpb24obWVtYmVyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gdGhpcy5tZW1iZXJzW2xoc10ubWVtYmVycy5maW5kKGZ1bmN0aW9uKG0pIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hcmVfZHVwbGljYXRlX21lbWJl
cnMobSwgbWVtYmVyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7Ci0g
ICAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgICAgICAgICAgICAgICAgIHRo
aXMubWVtYmVyc1tyaHNdLm1lbWJlcnMuZm9yRWFjaChmdW5jdGlvbihtZW1iZXIpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHRoaXMubWVtYmVyc1tsaHNdLm1lbWJlcnMucHVzaChuZXcgSWRs
SW50ZXJmYWNlTWVtYmVyKG1lbWJlcikpOwotICAgICAgICAgICAgICAgICAgICB9LmJpbmQodGhp
cykpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSghY2xhc2gsICJtZW1iZXIgIiAr
IChjbGFzaCAmJiBjbGFzaC5uYW1lKSArICIgaXMgdW5pcXVlIik7Ci0gICAgICAgICAgICAgICAg
fS5iaW5kKHRoaXMpLCBsaHMgKyAiIGltcGxlbWVudHMgIiArIHJocyArICI6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0uYmluZCh0aGlzKSk7Ci0g
ICAgfQotICAgIHRoaXNbImltcGxlbWVudHMiXSA9IHt9OwotCi0gICAgZm9yICh2YXIgbGhzIGlu
IHRoaXNbImluY2x1ZGVzIl0pCi0gICAgewotICAgICAgICB0aGlzLnJlY3Vyc2l2ZWx5X2dldF9p
bmNsdWRlcyhsaHMpLmZvckVhY2goZnVuY3Rpb24ocmhzKQotICAgICAgICB7Ci0gICAgICAgICAg
ICB2YXIgZXJyU3RyID0gbGhzICsgIiBpbmNsdWRlcyAiICsgcmhzICsgIiwgYnV0ICI7Ci0gICAg
ICAgICAgICBpZiAoIShsaHMgaW4gdGhpcy5tZW1iZXJzKSkgdGhyb3cgZXJyU3RyICsgbGhzICsg
IiBpcyB1bmRlZmluZWQuIjsKLSAgICAgICAgICAgIGlmICghKHRoaXMubWVtYmVyc1tsaHNdIGlu
c3RhbmNlb2YgSWRsSW50ZXJmYWNlKSkgdGhyb3cgZXJyU3RyICsgbGhzICsgIiBpcyBub3QgYW4g
aW50ZXJmYWNlLiI7Ci0gICAgICAgICAgICBpZiAoIShyaHMgaW4gdGhpcy5tZW1iZXJzKSkgdGhy
b3cgZXJyU3RyICsgcmhzICsgIiBpcyB1bmRlZmluZWQuIjsKLSAgICAgICAgICAgIGlmICghKHRo
aXMubWVtYmVyc1tyaHNdIGluc3RhbmNlb2YgSWRsSW50ZXJmYWNlKSkgdGhyb3cgZXJyU3RyICsg
cmhzICsgIiBpcyBub3QgYW4gaW50ZXJmYWNlLiI7Ci0KLSAgICAgICAgICAgIGlmICh0aGlzLm1l
bWJlcnNbcmhzXS5tZW1iZXJzLmxlbmd0aCkgewotICAgICAgICAgICAgICAgIHRlc3QoZnVuY3Rp
b24gKCkgewotICAgICAgICAgICAgICAgICAgICB2YXIgY2xhc2ggPSB0aGlzLm1lbWJlcnNbcmhz
XS5tZW1iZXJzLmZpbmQoZnVuY3Rpb24obWVtYmVyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gdGhpcy5tZW1iZXJzW2xoc10ubWVtYmVycy5maW5kKGZ1bmN0aW9uKG0pIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hcmVfZHVwbGljYXRlX21lbWJl
cnMobSwgbWVtYmVyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7Ci0g
ICAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgICAgICAgICAgICAgICAgIHRo
aXMubWVtYmVyc1tyaHNdLm1lbWJlcnMuZm9yRWFjaChmdW5jdGlvbihtZW1iZXIpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRoaXMubWVtYmVyc1tsaHNdLm1lbWJlcnMuZXZlcnkobSA9PiAhdGhpcy5hcmVfZHVwbGlj
YXRlX21lbWJlcnMobSwgbWVtYmVyKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1l
bWJlciAiICsgbWVtYmVyLm5hbWUgKyAiIGlzIHVuaXF1ZSIpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgdGhpcy5tZW1iZXJzW2xoc10ubWVtYmVycy5wdXNoKG5ldyBJZGxJbnRlcmZhY2VNZW1i
ZXIobWVtYmVyKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgICAg
ICAgICAgICAgICAgIGFzc2VydF90cnVlKCFjbGFzaCwgIm1lbWJlciAiICsgKGNsYXNoICYmIGNs
YXNoLm5hbWUpICsgIiBpcyB1bmlxdWUiKTsKLSAgICAgICAgICAgICAgICB9LmJpbmQodGhpcyks
IGxocyArICIgaW5jbHVkZXMgIiArIHJocyArICI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIik7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0uYmluZCh0aGlzKSk7Ci0gICAgfQotICAgIHRoaXNb
ImluY2x1ZGVzIl0gPSB7fTsKKyAgICAvLyBGaXJzdCBtZXJnZSBpbiBhbGwgcGFydGlhbCBkZWZp
bml0aW9ucyBhbmQgaW50ZXJmYWNlIG1peGlucy4KKyAgICB0aGlzLm1lcmdlX3BhcnRpYWxzKCk7
CisgICAgdGhpcy5tZXJnZV9taXhpbnMoKTsKIAogICAgIC8vIEFzc2VydCBCIGRlZmluZWQgZm9y
IEEgOiBCCiAgICAgZm9yIChjb25zdCBtZW1iZXIgb2YgT2JqZWN0LnZhbHVlcyh0aGlzLm1lbWJl
cnMpLmZpbHRlcihtID0+IG0uYmFzZSkpIHsKQEAgLTg4Niw3ICs3MTMsNyBAQCBJZGxBcnJheS5w
cm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIGlmICghcmhzX2lzX2ludGVy
ZmFjZSkgdGhyb3cgbmV3IElkbEhhcm5lc3NFcnJvcihgJHtsaHN9IGluaGVyaXRzICR7cmhzfSwg
YnV0ICR7cmhzfSBpcyBub3QgYW4gaW50ZXJmYWNlLmApOwogICAgICAgICB9CiAgICAgICAgIC8v
IENoZWNrIGZvciBjaXJjdWxhciBkZXBlbmRlbmNpZXMuCi0gICAgICAgIG1lbWJlci5nZXRfaW5o
ZXJpdGFuY2Vfc3RhY2soKTsKKyAgICAgICAgbWVtYmVyLmdldF9yZXZlcnNlX2luaGVyaXRhbmNl
X3N0YWNrKCk7CiAgICAgfQogCiAgICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcy5t
ZW1iZXJzKS5mb3JFYWNoKGZ1bmN0aW9uKG1lbWJlck5hbWUpIHsKQEAgLTkyMSw3ICs3NDgsNyBA
QCBJZGxBcnJheS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKICAgICB9CiB9OwogCi1JZGxB
cnJheS5wcm90b3R5cGUuY29sbGFwc2VfcGFydGlhbHMgPSBmdW5jdGlvbigpCitJZGxBcnJheS5w
cm90b3R5cGUubWVyZ2VfcGFydGlhbHMgPSBmdW5jdGlvbigpCiB7CiAgICAgY29uc3QgdGVzdGVk
UGFydGlhbHMgPSBuZXcgTWFwKCk7CiAgICAgdGhpcy5wYXJ0aWFscy5mb3JFYWNoKGZ1bmN0aW9u
KHBhcnNlZF9pZGwpCkBAIC0xMDE1LDYgKzg0MiwzOSBAQCBJZGxBcnJheS5wcm90b3R5cGUuY29s
bGFwc2VfcGFydGlhbHMgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5wYXJ0aWFscyA9IFtdOwogfQog
CitJZGxBcnJheS5wcm90b3R5cGUubWVyZ2VfbWl4aW5zID0gZnVuY3Rpb24oKQoreworICAgIGZv
ciAoY29uc3QgcGFyc2VkX2lkbCBvZiB0aGlzLmluY2x1ZGVzKQorICAgIHsKKyAgICAgICAgY29u
c3QgbGhzID0gcGFyc2VkX2lkbC50YXJnZXQ7CisgICAgICAgIGNvbnN0IHJocyA9IHBhcnNlZF9p
ZGwuaW5jbHVkZXM7CisKKyAgICAgICAgdmFyIGVyclN0ciA9IGxocyArICIgaW5jbHVkZXMgIiAr
IHJocyArICIsIGJ1dCAiOworICAgICAgICBpZiAoIShsaHMgaW4gdGhpcy5tZW1iZXJzKSkgdGhy
b3cgZXJyU3RyICsgbGhzICsgIiBpcyB1bmRlZmluZWQuIjsKKyAgICAgICAgaWYgKCEodGhpcy5t
ZW1iZXJzW2xoc10gaW5zdGFuY2VvZiBJZGxJbnRlcmZhY2UpKSB0aHJvdyBlcnJTdHIgKyBsaHMg
KyAiIGlzIG5vdCBhbiBpbnRlcmZhY2UuIjsKKyAgICAgICAgaWYgKCEocmhzIGluIHRoaXMubWVt
YmVycykpIHRocm93IGVyclN0ciArIHJocyArICIgaXMgdW5kZWZpbmVkLiI7CisgICAgICAgIGlm
ICghKHRoaXMubWVtYmVyc1tyaHNdIGluc3RhbmNlb2YgSWRsSW50ZXJmYWNlKSkgdGhyb3cgZXJy
U3RyICsgcmhzICsgIiBpcyBub3QgYW4gaW50ZXJmYWNlLiI7CisKKyAgICAgICAgaWYgKHRoaXMu
bWVtYmVyc1tyaHNdLm1lbWJlcnMubGVuZ3RoKSB7CisgICAgICAgICAgICB0ZXN0KGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgICAgICB2YXIgY2xhc2ggPSB0aGlzLm1lbWJlcnNbcmhzXS5tZW1i
ZXJzLmZpbmQoZnVuY3Rpb24obWVtYmVyKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0
aGlzLm1lbWJlcnNbbGhzXS5tZW1iZXJzLmZpbmQoZnVuY3Rpb24obSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXJlX2R1cGxpY2F0ZV9tZW1iZXJzKG0sIG1lbWJlcik7
CisgICAgICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgICAgICAgICAgICAgfS5i
aW5kKHRoaXMpKTsKKyAgICAgICAgICAgICAgICB0aGlzLm1lbWJlcnNbcmhzXS5tZW1iZXJzLmZv
ckVhY2goZnVuY3Rpb24obWVtYmVyKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVl
KAorICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tZW1iZXJzW2xoc10ubWVtYmVycy5ldmVy
eShtID0+ICF0aGlzLmFyZV9kdXBsaWNhdGVfbWVtYmVycyhtLCBtZW1iZXIpKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICJtZW1iZXIgIiArIG1lbWJlci5uYW1lICsgIiBpcyB1bmlxdWUiKTsK
KyAgICAgICAgICAgICAgICAgICAgdGhpcy5tZW1iZXJzW2xoc10ubWVtYmVycy5wdXNoKG5ldyBJ
ZGxJbnRlcmZhY2VNZW1iZXIobWVtYmVyKSk7CisgICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMp
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSghY2xhc2gsICJtZW1iZXIgIiArIChjbGFz
aCAmJiBjbGFzaC5uYW1lKSArICIgaXMgdW5pcXVlIik7CisgICAgICAgICAgICB9LmJpbmQodGhp
cyksIGxocyArICIgaW5jbHVkZXMgIiArIHJocyArICI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
Iik7CisgICAgICAgIH0KKyAgICB9CisgICAgdGhpcy5pbmNsdWRlcyA9IFtdOworfQorCiBJZGxB
cnJheS5wcm90b3R5cGUuYXJlX2R1cGxpY2F0ZV9tZW1iZXJzID0gZnVuY3Rpb24obTEsIG0yKSB7
CiAgICAgaWYgKG0xLm5hbWUgIT09IG0yLm5hbWUpIHsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtMTExNiw3ICs5NzYsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUuYXNzZXJ0X3R5cGVfaXMgPSBm
dW5jdGlvbih2YWx1ZSwgdHlwZSkKIAogICAgIHN3aXRjaCh0eXBlKQogICAgIHsKLSAgICAgICAg
Y2FzZSAidm9pZCI6CisgICAgICAgIGNhc2UgInVuZGVmaW5lZCI6CiAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHZhbHVlLCB1bmRlZmluZWQpOwogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0x
MTcyLDcgKzEwMzIsNyBAQCBJZGxBcnJheS5wcm90b3R5cGUuYXNzZXJ0X3R5cGVfaXMgPSBmdW5j
dGlvbih2YWx1ZSwgdHlwZSkKIAogICAgICAgICBjYXNlICJmbG9hdCI6CiAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHR5cGVvZiB2YWx1ZSwgIm51bWJlciIpOwotICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyh2YWx1ZSwgZnJvdW5kKHZhbHVlKSwgImZsb2F0IHJvdW5kZWQgdG8gMzItYml0IGZs
b2F0IHNob3VsZCBiZSBpdHNlbGYiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHModmFsdWUs
IE1hdGguZnJvdW5kKHZhbHVlKSwgImZsb2F0IHJvdW5kZWQgdG8gMzItYml0IGZsb2F0IHNob3Vs
ZCBiZSBpdHNlbGYiKTsKICAgICAgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHZhbHVlLCBJbmZp
bml0eSk7CiAgICAgICAgICAgICBhc3NlcnRfbm90X2VxdWFscyh2YWx1ZSwgLUluZmluaXR5KTsK
ICAgICAgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHZhbHVlLCBOYU4pOwpAQCAtMTE4OCw3ICsx
MDQ4LDcgQEAgSWRsQXJyYXkucHJvdG90eXBlLmFzc2VydF90eXBlX2lzID0gZnVuY3Rpb24odmFs
dWUsIHR5cGUpCiAKICAgICAgICAgY2FzZSAidW5yZXN0cmljdGVkIGZsb2F0IjoKICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHModHlwZW9mIHZhbHVlLCAibnVtYmVyIik7Ci0gICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHZhbHVlLCBmcm91bmQodmFsdWUpLCAidW5yZXN0cmljdGVkIGZsb2F0IHJv
dW5kZWQgdG8gMzItYml0IGZsb2F0IHNob3VsZCBiZSBpdHNlbGYiKTsKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHModmFsdWUsIE1hdGguZnJvdW5kKHZhbHVlKSwgInVucmVzdHJpY3RlZCBmbG9h
dCByb3VuZGVkIHRvIDMyLWJpdCBmbG9hdCBzaG91bGQgYmUgaXRzZWxmIik7CiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgY2FzZSAidW5yZXN0cmljdGVkIGRvdWJsZSI6CkBAIC0xMjM2
LDExICsxMDk2LDExIEBAIElkbEFycmF5LnByb3RvdHlwZS5hc3NlcnRfdHlwZV9pcyA9IGZ1bmN0
aW9uKHZhbHVlLCB0eXBlKQogICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHJ1biB0aGUgZnVs
bAogICAgICAgICAvLyBJZGxJbnRlcmZhY2UucHJvdG90eXBlLnRlc3RfaW5zdGFuY2Vfb2YsIGJl
Y2F1c2UgdGhhdCBjb3VsZCByZXN1bHQKICAgICAgICAgLy8gaW4gYW4gaW5maW5pdGUgbG9vcC4g
IFRPRE86IFRoaXMgbWVhbnMgd2UgZG9uJ3QgaGF2ZSB0ZXN0cyBmb3IKLSAgICAgICAgLy8gTm9J
bnRlcmZhY2VPYmplY3QgaW50ZXJmYWNlcywgYW5kIHdlIGFsc28gY2FuJ3QgdGVzdCBvYmplY3Rz
IHRoYXQKLSAgICAgICAgLy8gY29tZSBmcm9tIGFub3RoZXIgc2VsZi4KKyAgICAgICAgLy8gTGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QgaW50ZXJmYWNlcywgYW5kIHdlIGFsc28gY2FuJ3QgdGVzdCBv
YmplY3RzCisgICAgICAgIC8vIHRoYXQgY29tZSBmcm9tIGFub3RoZXIgc2VsZi4KICAgICAgICAg
YXNzZXJ0X2luX2FycmF5KHR5cGVvZiB2YWx1ZSwgWyJvYmplY3QiLCAiZnVuY3Rpb24iXSwgIndy
b25nIHR5cGU6IG5vdCBvYmplY3Qgb3IgZnVuY3Rpb24iKTsKICAgICAgICAgaWYgKHZhbHVlIGlu
c3RhbmNlb2YgT2JqZWN0Ci0gICAgICAgICYmICF0aGlzLm1lbWJlcnNbdHlwZV0uaGFzX2V4dGVu
ZGVkX2F0dHJpYnV0ZSgiTm9JbnRlcmZhY2VPYmplY3QiKQorICAgICAgICAmJiAhdGhpcy5tZW1i
ZXJzW3R5cGVdLmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIkxlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
IikKICAgICAgICAgJiYgdHlwZSBpbiBzZWxmKQogICAgICAgICB7CiAgICAgICAgICAgICBhc3Nl
cnRfdHJ1ZSh2YWx1ZSBpbnN0YW5jZW9mIHNlbGZbdHlwZV0sICJpbnN0YW5jZW9mICIgKyB0eXBl
KTsKQEAgLTEzMTQsOCArMTE3NCw4IEBAIGZ1bmN0aW9uIElkbERpY3Rpb25hcnkob2JqKQogCiBJ
ZGxEaWN0aW9uYXJ5LnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoSWRsT2JqZWN0LnByb3RvdHlw
ZSk7CiAKLUlkbERpY3Rpb25hcnkucHJvdG90eXBlLmdldF9pbmhlcml0YW5jZV9zdGFjayA9IGZ1
bmN0aW9uKCkgewotICAgIHJldHVybiBJZGxJbnRlcmZhY2UucHJvdG90eXBlLmdldF9pbmhlcml0
YW5jZV9zdGFjay5jYWxsKHRoaXMpOworSWRsRGljdGlvbmFyeS5wcm90b3R5cGUuZ2V0X3JldmVy
c2VfaW5oZXJpdGFuY2Vfc3RhY2sgPSBmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gSWRsSW50ZXJm
YWNlLnByb3RvdHlwZS5nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjay5jYWxsKHRoaXMpOwog
fTsKIAogLy8vIElkbEludGVyZmFjZSAvLy8KQEAgLTE0MTUsMTAgKzEyNzUsMTAgQEAgSWRsSW50
ZXJmYWNlLnByb3RvdHlwZS5zaG91bGRfaGF2ZV9pbnRlcmZhY2Vfb2JqZWN0ID0gZnVuY3Rpb24o
KQogICAgIC8vIGVudmlyb25tZW50IGFuZDoKICAgICAvLyAqIGlzIGEgY2FsbGJhY2sgaW50ZXJm
YWNlIHRoYXQgaGFzIGNvbnN0YW50cyBkZWNsYXJlZCBvbiBpdCwgb3IKICAgICAvLyAqIGlzIGEg
bm9uLWNhbGxiYWNrIGludGVyZmFjZSB0aGF0IGlzIG5vdCBkZWNsYXJlZCB3aXRoIHRoZQotICAg
IC8vICAgW05vSW50ZXJmYWNlT2JqZWN0XSBleHRlbmRlZCBhdHRyaWJ1dGUsCisgICAgLy8gICBb
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RdIGV4dGVuZGVkIGF0dHJpYnV0ZSwKICAgICAvLyBhIGNv
cnJlc3BvbmRpbmcgcHJvcGVydHkgTVVTVCBleGlzdCBvbiB0aGUgRUNNQVNjcmlwdCBnbG9iYWwg
b2JqZWN0LgogCi0gICAgcmV0dXJuIHRoaXMuaXNfY2FsbGJhY2soKSA/IHRoaXMuaGFzX2NvbnN0
YW50cygpIDogIXRoaXMuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiTm9JbnRlcmZhY2VPYmplY3Qi
KTsKKyAgICByZXR1cm4gdGhpcy5pc19jYWxsYmFjaygpID8gdGhpcy5oYXNfY29uc3RhbnRzKCkg
OiAhdGhpcy5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJMZWdhY3lOb0ludGVyZmFjZU9iamVjdCIp
OwogfTsKIAogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9l
eGlzdHMgPSBmdW5jdGlvbigpCkBAIC0xNDI5LDcgKzEyODksNyBAQCBJZGxJbnRlcmZhY2UucHJv
dG90eXBlLmFzc2VydF9pbnRlcmZhY2Vfb2JqZWN0X2V4aXN0cyA9IGZ1bmN0aW9uKCkKIAogSWRs
SW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfaW50ZXJmYWNlX29iamVjdCA9IGZ1bmN0aW9uKCkgewog
ICAgIGlmICghdGhpcy5zaG91bGRfaGF2ZV9pbnRlcmZhY2Vfb2JqZWN0KCkpIHsKLSAgICAgICAg
dmFyIHJlYXNvbiA9IHRoaXMuaXNfY2FsbGJhY2soKSA/ICJsYWNrIG9mIGRlY2xhcmVkIGNvbnN0
YW50cyIgOiAiZGVjbGFyZWQgW05vSW50ZXJmYWNlT2JqZWN0XSBhdHRyaWJ1dGUiOworICAgICAg
ICB2YXIgcmVhc29uID0gdGhpcy5pc19jYWxsYmFjaygpID8gImxhY2sgb2YgZGVjbGFyZWQgY29u
c3RhbnRzIiA6ICJkZWNsYXJlZCBbTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RdIGF0dHJpYnV0ZSI7
CiAgICAgICAgIHRocm93IG5ldyBJZGxIYXJuZXNzRXJyb3IodGhpcy5uYW1lICsgIiBoYXMgbm8g
aW50ZXJmYWNlIG9iamVjdCBkdWUgdG8gIiArIHJlYXNvbik7CiAgICAgfQogCkBAIC0xNDU3LDM5
ICsxMzE3LDM5IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUuaGFzX2RlZmF1bHRfdG9fanNvbl9y
ZWd1bGFyX29wZXJhdGlvbiA9IGZ1bmN0aW9uKCkgewogICAgIH0pOwogfTsKIAotSWRsSW50ZXJm
YWNlLnByb3RvdHlwZS5nZXRfaW5oZXJpdGFuY2Vfc3RhY2sgPSBmdW5jdGlvbigpIHsKLSAgICAv
KioKLSAgICAgKiBTZWUgaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jY3JlYXRlLWFu
LWluaGVyaXRhbmNlLXN0YWNrCi0gICAgICoKLSAgICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIElk
bEludGVyZmFjZSBvYmplY3RzIHdoaWNoIGNvbnRhaW5zIGl0c2VsZgotICAgICAqIGFuZCBhbGwg
b2YgaXRzIGluaGVyaXRlZCBpbnRlcmZhY2VzLgotICAgICAqCi0gICAgICogU28gZ2l2ZW46Ci0g
ICAgICoKLSAgICAgKiAgIEEgOiBCIHt9OwotICAgICAqICAgQiA6IEMge307Ci0gICAgICogICBD
IHt9OwotICAgICAqCi0gICAgICogdGhlbiBBLmdldF9pbmhlcml0YW5jZV9zdGFjaygpIHNob3Vs
ZCByZXR1cm4gW0EsIEIsIENdLAotICAgICAqIGFuZCBCLmdldF9pbmhlcml0YW5jZV9zdGFjaygp
IHNob3VsZCByZXR1cm4gW0IsIENdLgotICAgICAqCi0gICAgICogTm90ZTogYXMgZGljdGlvbmFy
eSBpbmhlcml0YW5jZSBpcyBleHByZXNzZWQgaWRlbnRpY2FsbHkgYnkgdGhlIEFTVCwKLSAgICAg
KiB0aGlzIHdvcmtzIGp1c3QgYXMgd2VsbCBmb3IgZ2V0dGluZyBhIHN0YWNrIG9mIGluaGVyaXRl
ZCBkaWN0aW9uYXJpZXMuCi0gICAgICovCi0KLSAgICB2YXIgc3RhY2sgPSBbdGhpc107Ci0gICAg
dmFyIGlkbF9pbnRlcmZhY2UgPSB0aGlzOworLyoqCisgKiBJbXBsZW1lbnRhdGlvbiBvZiBodHRw
czovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNjcmVhdGUtYW4taW5oZXJpdGFuY2Utc3RhY2sK
KyAqIHdpdGggdGhlIG9yZGVyIHJldmVyc2VkLgorICoKKyAqIFRoZSBvcmRlciBpcyByZXZlcnNl
ZCBzbyB0aGF0IHRoZSBiYXNlIGNsYXNzIGNvbWVzIGZpcnN0IGluIHRoZSBsaXN0LCBiZWNhdXNl
CisgKiB0aGlzIGlzIHdoYXQgYWxsIGNhbGwgc2l0ZXMgbmVlZC4KKyAqCisgKiBTbyBnaXZlbjoK
KyAqCisgKiAgIEEgOiBCIHt9OworICogICBCIDogQyB7fTsKKyAqICAgQyB7fTsKKyAqCisgKiB0
aGVuIEEuZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2soKSByZXR1cm5zIFtDLCBCLCBBXSwK
KyAqIGFuZCBCLmdldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrKCkgcmV0dXJucyBbQywgQl0u
CisgKgorICogTm90ZTogYXMgZGljdGlvbmFyeSBpbmhlcml0YW5jZSBpcyBleHByZXNzZWQgaWRl
bnRpY2FsbHkgYnkgdGhlIEFTVCwKKyAqIHRoaXMgd29ya3MganVzdCBhcyB3ZWxsIGZvciBnZXR0
aW5nIGEgc3RhY2sgb2YgaW5oZXJpdGVkIGRpY3Rpb25hcmllcy4KKyAqLworSWRsSW50ZXJmYWNl
LnByb3RvdHlwZS5nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjayA9IGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHN0YWNrID0gW3RoaXNdOworICAgIGxldCBpZGxfaW50ZXJmYWNlID0gdGhpczsK
ICAgICB3aGlsZSAoaWRsX2ludGVyZmFjZS5iYXNlKSB7Ci0gICAgICAgIHZhciBiYXNlID0gdGhp
cy5hcnJheS5tZW1iZXJzW2lkbF9pbnRlcmZhY2UuYmFzZV07CisgICAgICAgIGNvbnN0IGJhc2Ug
PSB0aGlzLmFycmF5Lm1lbWJlcnNbaWRsX2ludGVyZmFjZS5iYXNlXTsKICAgICAgICAgaWYgKCFi
YXNlKSB7CiAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoaWRsX2ludGVyZmFjZS50eXBlICsg
IiAiICsgaWRsX2ludGVyZmFjZS5iYXNlICsgIiBub3QgZm91bmQgKGluaGVyaXRlZCBieSAiICsg
aWRsX2ludGVyZmFjZS5uYW1lICsgIikiKTsKICAgICAgICAgfSBlbHNlIGlmIChzdGFjay5pbmRl
eE9mKGJhc2UpID4gLTEpIHsKLSAgICAgICAgICAgIHN0YWNrLnB1c2goYmFzZSk7Ci0gICAgICAg
ICAgICBsZXQgZGVwX2NoYWluID0gc3RhY2subWFwKGkgPT4gaS5uYW1lKS5qb2luKCcsJyk7Cisg
ICAgICAgICAgICBzdGFjay51bnNoaWZ0KGJhc2UpOworICAgICAgICAgICAgY29uc3QgZGVwX2No
YWluID0gc3RhY2subWFwKGkgPT4gaS5uYW1lKS5qb2luKCcsJyk7CiAgICAgICAgICAgICB0aHJv
dyBuZXcgSWRsSGFybmVzc0Vycm9yKGAke3RoaXMubmFtZX0gaGFzIGEgY2lyY3VsYXIgZGVwZW5k
ZW5jeTogJHtkZXBfY2hhaW59YCk7CiAgICAgICAgIH0KICAgICAgICAgaWRsX2ludGVyZmFjZSA9
IGJhc2U7Ci0gICAgICAgIHN0YWNrLnB1c2goaWRsX2ludGVyZmFjZSk7CisgICAgICAgIHN0YWNr
LnVuc2hpZnQoaWRsX2ludGVyZmFjZSk7CiAgICAgfQogICAgIHJldHVybiBzdGFjazsKIH07CkBA
IC0xNTAzLDc2ICsxMzYzLDI3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUuZ2V0X2luaGVyaXRh
bmNlX3N0YWNrID0gZnVuY3Rpb24oKSB7CiAgKiBmb3IgaW5jbHVzaW9uIGluIHRoZSBkZWZhdWx0
IHRvSlNPTiBvcGVyYXRpb24gZm9yIGVhc3kKICAqIGNvbXBhcmlzb24gd2l0aCBhY3R1YWwgdmFs
dWUKICAqLwotSWRsSW50ZXJmYWNlLnByb3RvdHlwZS5kZWZhdWx0X3RvX2pzb25fb3BlcmF0aW9u
ID0gZnVuY3Rpb24oY2FsbGJhY2spIHsKLSAgICB2YXIgbWFwID0gbmV3IE1hcCgpLCBpc0RlZmF1
bHQgPSBmYWxzZTsKLSAgICB0aGlzLnRyYXZlcnNlX2luaGVyaXRlZF9hbmRfY29uc2VxdWVudGlh
bF9pbnRlcmZhY2VzKGZ1bmN0aW9uKEkpIHsKK0lkbEludGVyZmFjZS5wcm90b3R5cGUuZGVmYXVs
dF90b19qc29uX29wZXJhdGlvbiA9IGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IG1hcCA9IG5ldyBN
YXAoKQorICAgIGxldCBpc0RlZmF1bHQgPSBmYWxzZTsKKyAgICBmb3IgKGNvbnN0IEkgb2YgdGhp
cy5nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjaygpKSB7CiAgICAgICAgIGlmIChJLmhhc19k
ZWZhdWx0X3RvX2pzb25fcmVndWxhcl9vcGVyYXRpb24oKSkgewogICAgICAgICAgICAgaXNEZWZh
dWx0ID0gdHJ1ZTsKLSAgICAgICAgICAgIEkubWVtYmVycy5mb3JFYWNoKGZ1bmN0aW9uKG0pIHsK
KyAgICAgICAgICAgIGZvciAoY29uc3QgbSBvZiBJLm1lbWJlcnMpIHsKICAgICAgICAgICAgICAg
ICBpZiAobS5zcGVjaWFsICE9PSAic3RhdGljIiAmJiBtLnR5cGUgPT0gImF0dHJpYnV0ZSIgJiYg
SS5hcnJheS5pc19qc29uX3R5cGUobS5pZGxUeXBlKSkgewogICAgICAgICAgICAgICAgICAgICBt
YXAuc2V0KG0ubmFtZSwgbS5pZGxUeXBlKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmIChJLmhhc190b19qc29uX3Jl
Z3VsYXJfb3BlcmF0aW9uKCkpIHsKICAgICAgICAgICAgIGlzRGVmYXVsdCA9IGZhbHNlOwogICAg
ICAgICB9Ci0gICAgfSk7Ci0gICAgcmV0dXJuIGlzRGVmYXVsdCA/IG1hcCA6IG51bGw7Ci19Owot
Ci0vKioKLSAqIFRyYXZlcnNlcyBpbmhlcml0ZWQgaW50ZXJmYWNlcyBmcm9tIHRoZSB0b3AgZG93
bgotICogYW5kIGltZXBsZW1lbnRlZCBpbnRlcmZhY2VzIGluc2lkZSBvdXQuCi0gKiBJbnZva2Vz
IHxjYWxsYmFja3wgb24gZWFjaCBpbnRlcmZhY2UuCi0gKgotICogVGhpcyBpcyBhbiBhYnN0cmFj
dCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdHJhdmVyc2FsCi0gKiBhbGdvcml0aG0gc3BlY2lmaWVk
IGluOgotICogaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jY29sbGVjdC1hdHRyaWJ1
dGUtdmFsdWVzCi0gKiBHaXZlbiB0aGUgZm9sbG93aW5nIGluaGVyaXRhbmNlIHRyZWU6Ci0gKgot
ICogICAgICAgICAgIEYKLSAqICAgICAgICAgICB8Ci0gKiAgICAgICBDICAgRSAtIEkKLSAqICAg
ICAgIHwgICB8Ci0gKiAgICAgICBCIC0gRAotICogICAgICAgfAotICogICBHIC0gQSAtIEggLSBK
Ci0gKgotICogSW52b2tpbmcgdHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50aWFsX2lu
dGVyZmFjZXMoKSBvbiBBCi0gKiB3b3VsZCB0cmF2ZXJzZSB0aGUgdHJlZSBpbiB0aGUgZm9sbG93
aW5nIG9yZGVyOgotICogQyAtPiBCIC0+IEYgLT4gRSAtPiBJIC0+IEQgLT4gQSAtPiBHIC0+IEgg
LT4gSgotICovCi0KLUlkbEludGVyZmFjZS5wcm90b3R5cGUudHJhdmVyc2VfaW5oZXJpdGVkX2Fu
ZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMgPSBmdW5jdGlvbihjYWxsYmFjaykgewotICAgIGlm
ICh0eXBlb2YgY2FsbGJhY2sgIT0gImZ1bmN0aW9uIikgewotICAgICAgICB0aHJvdyBuZXcgVHlw
ZUVycm9yKCk7CiAgICAgfQotICAgIHZhciBzdGFjayA9IHRoaXMuZ2V0X2luaGVyaXRhbmNlX3N0
YWNrKCk7Ci0gICAgX3RyYXZlcnNlX2luaGVyaXRlZF9hbmRfY29uc2VxdWVudGlhbF9pbnRlcmZh
Y2VzKHN0YWNrLCBjYWxsYmFjayk7CisgICAgcmV0dXJuIGlzRGVmYXVsdCA/IG1hcCA6IG51bGw7
CiB9OwogCi1mdW5jdGlvbiBfdHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50aWFsX2lu
dGVyZmFjZXMoc3RhY2ssIGNhbGxiYWNrKSB7Ci0gICAgdmFyIEkgPSBzdGFjay5wb3AoKTsKLSAg
ICBjYWxsYmFjayhJKTsKLSAgICB2YXIgbWl4aW5zID0gSS5hcnJheVsiaW1wbGVtZW50cyJdW0ku
bmFtZV0gfHwgSS5hcnJheVsiaW5jbHVkZXMiXVtJLm5hbWVdOwotICAgIGlmIChtaXhpbnMpIHsK
LSAgICAgICAgbWl4aW5zLmZvckVhY2goZnVuY3Rpb24oaWQpIHsKLSAgICAgICAgICAgIHZhciBt
aXhpbiA9IEkuYXJyYXkubWVtYmVyc1tpZF07Ci0gICAgICAgICAgICBpZiAoIW1peGluKSB7Ci0g
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbnRlcmZhY2UgIiArIGlkICsgIiBub3Qg
Zm91bmQgKGltcGxlbWVudGVkIGJ5ICIgKyBJLm5hbWUgKyAiKSIpOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgdmFyIGludGVyZmFjZXMgPSBtaXhpbi5nZXRfaW5oZXJpdGFuY2Vfc3RhY2so
KTsKLSAgICAgICAgICAgIF90cmF2ZXJzZV9pbmhlcml0ZWRfYW5kX2NvbnNlcXVlbnRpYWxfaW50
ZXJmYWNlcyhpbnRlcmZhY2VzLCBjYWxsYmFjayk7Ci0gICAgICAgIH0pOwotICAgIH0KLSAgICBp
ZiAoc3RhY2subGVuZ3RoID4gMCkgewotICAgICAgICBfdHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9j
b25zZXF1ZW50aWFsX2ludGVyZmFjZXMoc3RhY2ssIGNhbGxiYWNrKTsKLSAgICB9Ci19Ci0KIElk
bEludGVyZmFjZS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKIHsKLSAgICBpZiAodGhpcy5o
YXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJOb0ludGVyZmFjZU9iamVjdCIpIHx8IHRoaXMuaXNfbWl4
aW4oKSkKKyAgICBpZiAodGhpcy5oYXNfZXh0ZW5kZWRfYXR0cmlidXRlKCJMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdCIpIHx8IHRoaXMuaXNfbWl4aW4oKSkKICAgICB7CiAgICAgICAgIC8vIE5vIHRl
c3RzIHRvIGRvIHdpdGhvdXQgYW4gaW5zdGFuY2UuICBUT0RPOiBXZSBzaG91bGQgc3RpbGwgYmUg
YWJsZQogICAgICAgICAvLyB0byBydW4gdGVzdHMgb24gdGhlIHByb3RvdHlwZSBvYmplY3QsIGlm
IHdlIG9idGFpbiBvbmUgdGhyb3VnaCBzb21lCkBAIC0xNTgwLDEwICsxMzkxLDE2IEBAIElkbElu
dGVyZmFjZS5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIGlmICghdGhpcy5leHBvc2VkKSB7Ci0gICAgICAgIHN1YnNldFRlc3RCeUtleSh0
aGlzLm5hbWUsIHRlc3QsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHRo
aXMubmFtZSBpbiBzZWxmKTsKLSAgICAgICAgfS5iaW5kKHRoaXMpLCB0aGlzLm5hbWUgKyAiIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QiKTsK
KyAgICAvLyBJZiB0aGUgaW50ZXJmYWNlIG9iamVjdCBpcyBub3QgZXhwb3NlZCwgb25seSB0ZXN0
IHRoYXQuIE1lbWJlcnMgY2FuJ3QgYmUKKyAgICAvLyB0ZXN0ZWQgZWl0aGVyLCBidXQgb2JqZWN0
cyBjb3VsZCBzdGlsbCBiZSB0ZXN0ZWQgaW4gfHRlc3Rfb2JqZWN0fC4KKyAgICBpZiAoIXRoaXMu
ZXhwb3NlZCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy51bnRlc3RlZCkKKyAgICAgICAgewor
ICAgICAgICAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHRoaXMubmFtZSBpbiBzZWxmKTsKKyAgICAg
ICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5uYW1lICsgIiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Iik7CisgICAgICAgIH0KICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtMTYwMywyMyArMTQyMCwxNiBAQCBJZGxJbnRlcmZhY2UucHJv
dG90eXBlLnRlc3QgPSBmdW5jdGlvbigpCiAgICAgdGhpcy50ZXN0X21lbWJlcnMoKTsKIH07CiAK
LS8vIFRoaXMgc3VwcG9ydHMgYm90aCBDb25zdHJ1Y3RvciBleHRlbmRlZCBhdHRyaWJ1dGVzIGFu
ZCBjb25zdHJ1Y3RvcgotLy8gb3BlcmF0aW9ucyB1bnRpbCBhbGwgaWRsIGZyYWdtZW50cyBoYXZl
IGJlZW4gdXBkYXRlZC4KIElkbEludGVyZmFjZS5wcm90b3R5cGUuY29uc3RydWN0b3JzID0gZnVu
Y3Rpb24oKQogewotICAgIHZhciBleHRlbmRlZEF0dHJpYnV0ZXMgPSB0aGlzLmV4dEF0dHJzCi0g
ICAgICAgIC5maWx0ZXIoZnVuY3Rpb24oYXR0cikgeyByZXR1cm4gYXR0ci5uYW1lID09ICJDb25z
dHJ1Y3RvciI7IH0pOwotICAgIHZhciBvcGVyYXRpb25zID0gdGhpcy5tZW1iZXJzCisgICAgcmV0
dXJuIHRoaXMubWVtYmVycwogICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uKG0pIHsgcmV0dXJuIG0u
dHlwZSA9PSAiY29uc3RydWN0b3IiOyB9KTsKLSAgICByZXR1cm4gZXh0ZW5kZWRBdHRyaWJ1dGVz
LmNvbmNhdChvcGVyYXRpb25zKTsKIH0KIAogSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3Nl
bGYgPSBmdW5jdGlvbigpCiB7CiAgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwg
ZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiB0ZXN0cyBXZWJJREwg
YXMgb2YgMjAxNS0wMS0xMy4KLQogICAgICAgICBpZiAoIXRoaXMuc2hvdWxkX2hhdmVfaW50ZXJm
YWNlX29iamVjdCgpKSB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTE2NjEs
OCArMTQ3MSw2IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24o
KQogCiAgICAgICAgIC8vICIqIEl0cyBbW0NvbnN0cnVjdF1dIGludGVybmFsIHByb3BlcnR5IGlz
IHNldCBhcyBkZXNjcmliZWQgaW4KICAgICAgICAgLy8gICAgRUNNQS0yNjIgc2VjdGlvbiAxOS4y
LjIuMy4iCi0gICAgICAgIC8vIFRlc3RlZCBiZWxvdyBpZiBubyBjb25zdHJ1Y3RvciBpcyBkZWZp
bmVkLiAgVE9ETzogdGVzdCBjb25zdHJ1Y3RvcnMKLSAgICAgICAgLy8gaWYgZGVmaW5lZC4KIAog
ICAgICAgICAvLyAiKiBJdHMgQEBoYXNJbnN0YW5jZSBwcm9wZXJ0eSBpcyBzZXQgYXMgZGVzY3Jp
YmVkIGluIEVDTUEtMjYyCiAgICAgICAgIC8vICAgIHNlY3Rpb24gMTkuMi4zLjgsIHVubGVzcyBv
dGhlcndpc2Ugc3BlY2lmaWVkLiIKQEAgLTE2ODEsNyArMTQ4OSw3IEBAIElkbEludGVyZmFjZS5w
cm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgLy8gICAgdmFsdWUg
b2YgW1tQcm90b3R5cGVdXSBpcyB0aGUgaW50ZXJmYWNlIG9iamVjdCBmb3IgdGhhdCBvdGhlcgog
ICAgICAgICAgICAgLy8gICAgaW50ZXJmYWNlLiIKICAgICAgICAgICAgIHZhciBpbmhlcml0ZWRf
aW50ZXJmYWNlID0gdGhpcy5hcnJheS5tZW1iZXJzW3RoaXMuYmFzZV07Ci0gICAgICAgICAgICBp
ZiAoIWluaGVyaXRlZF9pbnRlcmZhY2UuaGFzX2V4dGVuZGVkX2F0dHJpYnV0ZSgiTm9JbnRlcmZh
Y2VPYmplY3QiKSkgeworICAgICAgICAgICAgaWYgKCFpbmhlcml0ZWRfaW50ZXJmYWNlLmhhc19l
eHRlbmRlZF9hdHRyaWJ1dGUoIkxlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0IikpIHsKICAgICAgICAg
ICAgICAgICBpbmhlcml0ZWRfaW50ZXJmYWNlLmFzc2VydF9pbnRlcmZhY2Vfb2JqZWN0X2V4aXN0
cygpOwogICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocHJvdG90eXBlLCBpbmhlcml0ZWRf
aW50ZXJmYWNlLmdldF9pbnRlcmZhY2Vfb2JqZWN0KCksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAncHJvdG90eXBlIG9mICcgKyB0aGlzLm5hbWUgKyAnIGlzIG5vdCAnICsKQEAgLTE2
OTUsMTIgKzE1MDMsMTIgQEAgSWRsSW50ZXJmYWNlLnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5j
dGlvbigpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm90b3R5cGUgb2Ygc2VsZidzIHBy
b3BlcnR5ICIgKyBmb3JtYXRfdmFsdWUodGhpcy5uYW1lKSArICIgaXMgbm90IEZ1bmN0aW9uLnBy
b3RvdHlwZSIpOwogICAgICAgICB9CiAKKyAgICAgICAgLy8gQWx3YXlzIHRlc3QgZm9yIFtbQ29u
c3RydWN0XV06CisgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9oZXljYW0vd2ViaWRsL2lz
c3Vlcy82OTgKKyAgICAgICAgYXNzZXJ0X3RydWUoaXNDb25zdHJ1Y3Rvcih0aGlzLmdldF9pbnRl
cmZhY2Vfb2JqZWN0KCkpLCAiaW50ZXJmYWNlIG9iamVjdCBtdXN0IHBhc3MgSXNDb25zdHJ1Y3Rv
ciBjaGVjayIpOworCiAgICAgICAgIGlmICghdGhpcy5jb25zdHJ1Y3RvcnMoKS5sZW5ndGgpIHsK
LSAgICAgICAgICAgIC8vICJUaGUgaW50ZXJuYWwgW1tDYWxsXV0gbWV0aG9kIG9mIHRoZSBpbnRl
cmZhY2Ugb2JqZWN0IGJlaGF2ZXMgYXMKLSAgICAgICAgICAgIC8vIGZvbGxvd3MgLiAuIC4KLSAg
ICAgICAgICAgIC8vCi0gICAgICAgICAgICAvLyAiSWYgSSB3YXMgbm90IGRlY2xhcmVkIHdpdGgg
YSBbQ29uc3RydWN0b3JdIGV4dGVuZGVkIGF0dHJpYnV0ZSwKLSAgICAgICAgICAgIC8vIHRoZW4g
dGhyb3cgYSBUeXBlRXJyb3IuIgorICAgICAgICAgICAgLy8gIklmIEkgd2FzIG5vdCBkZWNsYXJl
ZCB3aXRoIGEgY29uc3RydWN0b3Igb3BlcmF0aW9uLCB0aGVuIHRocm93IGEgVHlwZUVycm9yLiIK
ICAgICAgICAgICAgIHZhciBpbnRlcmZhY2Vfb2JqZWN0ID0gdGhpcy5nZXRfaW50ZXJmYWNlX29i
amVjdCgpOwogICAgICAgICAgICAgYXNzZXJ0X3Rocm93c19qcyhnbG9iYWxPZihpbnRlcmZhY2Vf
b2JqZWN0KS5UeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIGludGVyZmFj
ZV9vYmplY3QoKTsKQEAgLTE3NzMsNyArMTU4MSw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUu
dGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgaWYgKCF0aGlzLmV4cG9zdXJlU2V0
LmhhcygiV2luZG93IikpIHsKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWRsSGFybmVzc0Vy
cm9yKCJJbnZhbGlkIElETDogTGVnYWN5V2luZG93QWxpYXMgZXh0ZW5kZWQgYXR0cmlidXRlIG9u
ICIgKyB0aGlzLm5hbWUgKyAiIHdoaWNoIGlzIG5vdCBleHBvc2VkIGluIFdpbmRvdyIpOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgLy8gVE9ETzogd2hlbiB0ZXN0aW5nIG9mIFtOb0ludGVy
ZmFjZU9iamVjdF0gaW50ZXJmYWNlcyBpcyBzdXBwb3J0ZWQsCisgICAgICAgICAgICAvLyBUT0RP
OiB3aGVuIHRlc3Rpbmcgb2YgW0xlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0XSBpbnRlcmZhY2VzIGlz
IHN1cHBvcnRlZCwKICAgICAgICAgICAgIC8vIGNoZWNrIHRoYXQgaXQncyBub3Qgc3BlY2lmaWVk
IHRvZ2V0aGVyIHdpdGggTGVnYWN5V2luZG93QWxpYXMuCiAKICAgICAgICAgICAgIC8vIFRPRE86
IG1heWJlIGNoZWNrIHRoYXQgW0xlZ2FjeVdpbmRvd0FsaWFzXcKgaXMgbm90IHNwZWNpZmllZCBv
biBhIHBhcnRpYWwgaW50ZXJmYWNlLgpAQCAtMTk2Myw3ICsxNzcxLDcgQEAgSWRsSW50ZXJmYWNl
LnByb3RvdHlwZS50ZXN0X3NlbGYgPSBmdW5jdGlvbigpCiAKICAgICAgICAgLy8gTmV4dCwgdGVz
dCB0aGF0IHRoZSBbW1Byb3RvdHlwZV1dIG9mIHRoZSBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVj
dAogICAgICAgICAvLyBpcyBjb3JyZWN0LiAoVGhpcyBpcyBtYWRlIHNvbWV3aGF0IGRpZmZpY3Vs
dCBieSB0aGUgZXhpc3RlbmNlIG9mCi0gICAgICAgIC8vIFtOb0ludGVyZmFjZU9iamVjdF0uKQor
ICAgICAgICAvLyBbTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RdLikKICAgICAgICAgLy8gVE9ETzog
QXJ5ZWggdGhpbmtzIHRoZXJlJ3MgYXQgbGVhc3Qgb3RoZXIgcGxhY2UgaW4gdGhpcyBmaWxlIHdo
ZXJlCiAgICAgICAgIC8vICAgICAgIHdlIHRyeSB0byBmaWd1cmUgb3V0IGlmIGFuIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0IGlzCiAgICAgICAgIC8vICAgICAgIGNvcnJlY3QuIENvbnNvbGlk
YXRlIHRoYXQgY29kZS4KQEAgLTE5OTYsNyArMTgwNCw3IEBAIElkbEludGVyZmFjZS5wcm90b3R5
cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgaWYgKHRoaXMuYmFzZSkgewog
ICAgICAgICAgICAgICAgIGluaGVyaXRfaW50ZXJmYWNlID0gdGhpcy5iYXNlOwogICAgICAgICAg
ICAgICAgIHZhciBwYXJlbnQgPSB0aGlzLmFycmF5Lm1lbWJlcnNbaW5oZXJpdF9pbnRlcmZhY2Vd
OwotICAgICAgICAgICAgICAgIGlmICghcGFyZW50Lmhhc19leHRlbmRlZF9hdHRyaWJ1dGUoIk5v
SW50ZXJmYWNlT2JqZWN0IikpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXBhcmVudC5oYXNfZXh0
ZW5kZWRfYXR0cmlidXRlKCJMZWdhY3lOb0ludGVyZmFjZU9iamVjdCIpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIHBhcmVudC5hc3NlcnRfaW50ZXJmYWNlX29iamVjdF9leGlzdHMoKTsKICAgICAg
ICAgICAgICAgICAgICAgaW5oZXJpdF9pbnRlcmZhY2VfaW50ZXJmYWNlX29iamVjdCA9IHBhcmVu
dC5nZXRfaW50ZXJmYWNlX29iamVjdCgpOwogICAgICAgICAgICAgICAgIH0KQEAgLTIwNzIsOCAr
MTg4MCw4IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3Rpb24oKQog
ICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KHRoaXMuZ2V0X2ludGVyZmFjZV9vYmplY3QoKSwg
InByb3RvdHlwZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludGVyZmFjZSAiJyAr
IHRoaXMubmFtZSArICciIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJwcm90b3R5cGUiJyk7
CiAKLSAgICAgICAgLy8gIklmIHRoZSBbTm9JbnRlcmZhY2VPYmplY3RdIGV4dGVuZGVkIGF0dHJp
YnV0ZSB3YXMgbm90IHNwZWNpZmllZCBvbgotICAgICAgICAvLyB0aGUgaW50ZXJmYWNlLCB0aGVu
IHRoZSBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtdXN0IGFsc28gaGF2ZSBhCisgICAgICAg
IC8vICJJZiB0aGUgW0xlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0XSBleHRlbmRlZCBhdHRyaWJ1dGUg
d2FzIG5vdCBzcGVjaWZpZWQKKyAgICAgICAgLy8gb24gdGhlIGludGVyZmFjZSwgdGhlbiB0aGUg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBhbHNvIGhhdmUgYQogICAgICAgICAvLyBw
cm9wZXJ0eSBuYW1lZCDigJxjb25zdHJ1Y3RvcuKAnSB3aXRoIGF0dHJpYnV0ZXMgeyBbW1dyaXRh
YmxlXV06IHRydWUsCiAgICAgICAgIC8vIFtbRW51bWVyYWJsZV1dOiBmYWxzZSwgW1tDb25maWd1
cmFibGVdXTogdHJ1ZSB9IHdob3NlIHZhbHVlIGlzIGEKICAgICAgICAgLy8gcmVmZXJlbmNlIHRv
IHRoZSBpbnRlcmZhY2Ugb2JqZWN0IGZvciB0aGUgaW50ZXJmYWNlLiIKQEAgLTI4MTgsOSArMjYy
Niw2IEBAIElkbEludGVyZmFjZS5wcm90b3R5cGUudGVzdF9vYmplY3QgPSBmdW5jdGlvbihkZXNj
KQogICAgIHsKICAgICAgICAgLy8gUmVzdWx0IG9mIFtbSXNIVE1MRERBXV0gc2xvdAogICAgICAg
ICBleHBlY3RlZF90eXBlb2YgPSAidW5kZWZpbmVkIjsKLSAgICB9IGVsc2UgaWYgKHRoaXMubWVt
YmVycy5zb21lKGZ1bmN0aW9uKG1lbWJlcikgeyByZXR1cm4gbWVtYmVyLmxlZ2FjeWNhbGxlcjsg
fSkpCi0gICAgewotICAgICAgICBleHBlY3RlZF90eXBlb2YgPSAiZnVuY3Rpb24iOwogICAgIH0K
ICAgICBlbHNlCiAgICAgewpAQCAtMzA4MywxMSArMjg4OCw2IEBAIElkbEludGVyZmFjZS5wcm90
b3R5cGUuZG9faW50ZXJmYWNlX2F0dHJpYnV0ZV9hc3NlcnRzID0gZnVuY3Rpb24ob2JqLCBtZW1i
ZXIsIGFfCiAKICAgICB2YXIgcGVuZGluZ1Byb21pc2VzID0gW107CiAKLSAgICAvLyAiRm9yIGVh
Y2ggZXhwb3NlZCBhdHRyaWJ1dGUgb2YgdGhlIGludGVyZmFjZSwgd2hldGhlciBpdCB3YXMgZGVj
bGFyZWQgb24KLSAgICAvLyB0aGUgaW50ZXJmYWNlIGl0c2VsZiBvciBvbmUgb2YgaXRzIGNvbnNl
cXVlbnRpYWwgaW50ZXJmYWNlcywgdGhlcmUgTVVTVAotICAgIC8vIGV4aXN0IGEgY29ycmVzcG9u
ZGluZyBwcm9wZXJ0eS4gVGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGlzIHByb3BlcnR5IGFyZQot
ICAgIC8vIGFzIGZvbGxvd3M6IgotCiAgICAgLy8gIlRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSBp
cyB0aGUgaWRlbnRpZmllciBvZiB0aGUgYXR0cmlidXRlLiIKICAgICBhc3NlcnRfb3duX3Byb3Bl
cnR5KG9iaiwgbWVtYmVyLm5hbWUpOwogCkBAIC0zNTQzLDggKzMzNDMsNiBAQCBJZGxOYW1lc3Bh
Y2UucHJvdG90eXBlLnRlc3QgPSBmdW5jdGlvbiAoKQogZnVuY3Rpb24gaWRsX3Rlc3Qoc3Jjcywg
ZGVwcywgaWRsX3NldHVwX2Z1bmMpIHsKICAgICByZXR1cm4gcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
ICh0KSB7CiAgICAgICAgIHZhciBpZGxfYXJyYXkgPSBuZXcgSWRsQXJyYXkoKTsKLSAgICAgICAg
c3JjcyA9IChzcmNzIGluc3RhbmNlb2YgQXJyYXkpID8gc3JjcyA6IFtzcmNzXSB8fCBbXTsKLSAg
ICAgICAgZGVwcyA9IChkZXBzIGluc3RhbmNlb2YgQXJyYXkpID8gZGVwcyA6IFtkZXBzXSB8fCBb
XTsKICAgICAgICAgdmFyIHNldHVwX2Vycm9yID0gbnVsbDsKICAgICAgICAgY29uc3QgdmFsaWRh
dGlvbklnbm9yZWQgPSBbCiAgICAgICAgICAgICAiY29uc3RydWN0b3ItbWVtYmVyIiwKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3Vy
Y2VzL3Rlc3Qtb25seS1hcGkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0LW9ubHktYXBpLmpzCmluZGV4IGVmNjZlMGU3MzNmOWM2
ODAwNDEyOWQyNGIzYzlhZDEyYjlhYTA3MDguLmE2NmViNDRlZGU3YzE1YTM3ZmIxYTNjNWRkNWQy
YWJjMTcxNzdjOGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qtb25seS1hcGkuanMKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC1vbmx5LWFwaS5q
cwpAQCAtMjksNzIgKzI5LDMgQEAgZnVuY3Rpb24gbG9hZFNjcmlwdChwYXRoKSB7CiAgICAgcmV0
dXJuIHA7CiAgIH0KIH0KLQotLyoqCi0gKiBBIGhlbHBlciBmb3IgQ2hyb21pdW0tYmFzZWQgYnJv
d3NlcnMgdG8gbG9hZCBNb2pvIEpTIGJpbmRpbmdzCi0gKgotICogVGhpcyBpcyBhbiBhc3luYyBm
dW5jdGlvbiB0aGF0IHdvcmtzIGluIGJvdGggd29ya2VycyBhbmQgd2luZG93cy4gSXQgZmlyc3QK
LSAqIGxvYWRzIG1vam9fYmluZGluZ3MuanMsIGRpc2FibGVzIGF1dG9tYXRpYyBkZXBlbmRlbmN5
IGxvYWRpbmcsIGFuZCBsb2FkcyBhbGwKLSAqIHJlc291cmNlcyBzZXF1ZW50aWFsbHkuIFRoZSBw
cm9taXNlIHJlc29sdmVzIGlmIGV2ZXJ5dGhpbmcgbG9hZHMKLSAqIHN1Y2Nlc3NmdWxseSwgb3Ig
cmVqZWN0cyBpZiBhbnkgZXhjZXB0aW9uIGlzIHJhaXNlZC4gSWYgdGVzdGhhcm5lc3MuanMgaXMK
LSAqIHVzZWQsIGFuIHVuY2F1Z2h0IGV4Y2VwdGlvbiB3aWxsIHRlcm1pbmF0ZSB0aGUgdGVzdCB3
aXRoIGEgaGFybmVzcyBlcnJvcgotICogKHVubGVzcyBgYWxsb3dfdW5jYXVnaHRfZXhjZXB0aW9u
YCBpcyB0cnVlKSwgd2hpY2ggaXMgdXN1YWxseSB0aGUgZGVzaXJlZAotICogYmVoYXZpb3VyLgot
ICoKLSAqIFRoaXMgZnVuY3Rpb24gYWxzbyB3b3JrcyB3aXRoIEJsaW5rIHdlYiB0ZXN0cyBsb2Fk
ZWQgZnJvbSBmaWxlOi8vLCBpbiB3aGljaAotICogY2FzZSBmaWxlOi8vIHdpbGwgYmUgcHJlcGVu
ZGVkIHRvIGFsbCAnL2dlbi8uLi4nIFVSTHMuCi0gKgotICogT25seSBjYWxsIHRoaXMgZnVuY3Rp
b24gaWYgaXNDaHJvbWl1bUJhc2VkID09PSB0cnVlLgotICoKLSAqIEBwYXJhbSB7QXJyYXkuPHN0
cmluZz59IHJlc291cmNlcyAtIEEgbGlzdCBvZiBzY3JpcHRzIHRvIGxvYWQ6IE1vam8gSlMKLSAq
ICAgYmluZGluZ3Mgc2hvdWxkIGJlIG9mIHRoZSBmb3JtICcvZ2VuLy4uLyoubW9qb20uanMnIG9y
Ci0gKiAgICcvZ2VuLy4uLyoubW9qb20tbGl0ZS5qcycgKHJlcXVpcmVzIGBsaXRlYCB0byBiZSB0
cnVlKTsgdGhlIG9yZGVyIGRvZXMgbm90Ci0gKiAgIG1hdHRlci4gRG8gbm90IGluY2x1ZGUgJ21v
am9fYmluZGluZ3MuanMnIG9yICdtb2pvX2JpbmRpbmdzX2xpdGUuanMnLgotICogQHBhcmFtIHti
b29sZWFuPX0gbGl0ZSAtIFdoZXRoZXIgdGhlIGxpdGUgYmluZGluZ3MgKCoubW9qb20tbGl0ZS5q
cykgYXJlIHVzZWQKLSAqICAgKGRlZmF1bHQgaXMgZmFsc2UpLgotICogQHJldHVybnMge1Byb21p
c2V9Ci0gKi8KLWFzeW5jIGZ1bmN0aW9uIGxvYWRNb2pvUmVzb3VyY2VzKHJlc291cmNlcywgbGl0
ZSA9IGZhbHNlKSB7Ci0gIGlmICghaXNDaHJvbWl1bUJhc2VkKSB7Ci0gICAgdGhyb3cgbmV3IEVy
cm9yKCdNb2pvSlMgbm90IGVuYWJsZWQ7IHN0YXJ0IENocm9tZSB3aXRoIC0tZW5hYmxlLWJsaW5r
LWZlYXR1cmVzPU1vam9KUyxNb2pvSlNUZXN0Jyk7Ci0gIH0KLSAgaWYgKHJlc291cmNlcy5sZW5n
dGggPT0gMCkgewotICAgIHJldHVybjsKLSAgfQotCi0gIGxldCBnZW5QcmVmaXggPSAnJzsKLSAg
aWYgKHNlbGYubG9jYXRpb24ucGF0aG5hbWUuaW5jbHVkZXMoJy93ZWJfdGVzdHMvJykpIHsKLSAg
ICAvLyBCbGluayBpbnRlcm5hbCB3ZWIgdGVzdHMKLSAgICBnZW5QcmVmaXggPSAnZmlsZTovLyc7
Ci0gIH0KLQotICBmb3IgKGNvbnN0IHBhdGggb2YgcmVzb3VyY2VzKSB7Ci0gICAgLy8gV2Ugd2Fu
dCB0byBsb2FkIG1vam9fYmluZGluZ3MuanMgc2VwYXJhdGVseSB0byBzZXQgbW9qby5jb25maWcu
Ci0gICAgaWYgKHBhdGguZW5kc1dpdGgoJy9tb2pvX2JpbmRpbmdzLmpzJykpIHsKLSAgICAgIHRo
cm93IG5ldyBFcnJvcignRG8gbm90IGxvYWQgbW9qb19iaW5kaW5ncy5qcyBleHBsaWNpdGx5Licp
OwotICAgIH0KLSAgICBpZiAocGF0aC5lbmRzV2l0aCgnL21vam9fYmluZGluZ3NfbGl0ZS5qcycp
KSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RvIG5vdCBsb2FkIG1vam9fYmluZGluZ3NfbGl0
ZS5qcyBleHBsaWNpdGx5LicpOwotICAgIH0KLSAgICBpZiAobGl0ZSkgewotICAgICAgaWYgKCEg
L15cL2dlblwvLipcLm1vam9tLWxpdGVcLmpzJC8udGVzdChwYXRoKSkgewotICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCByZXNvdXJjZSBwYXRoOiAke3BhdGh9YCk7Ci0gICAg
ICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgIGlmICghIC9eXC9nZW5cLy4qXC5tb2pvbVwuanMkLy50
ZXN0KHBhdGgpKSB7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5yZWNvZ25pemVkIHJlc291
cmNlIHBhdGg6ICR7cGF0aH1gKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLQotICBpZiAobGl0ZSkg
ewotICAgIGF3YWl0IGxvYWRTY3JpcHQoZ2VuUHJlZml4ICsgJy9nZW4vbGF5b3V0X3Rlc3RfZGF0
YS9tb2pvL3B1YmxpYy9qcy9tb2pvX2JpbmRpbmdzX2xpdGUuanMnKTsKLSAgfSBlbHNlIHsKLSAg
ICBhd2FpdCBsb2FkU2NyaXB0KGdlblByZWZpeCArICcvZ2VuL2xheW91dF90ZXN0X2RhdGEvbW9q
by9wdWJsaWMvanMvbW9qb19iaW5kaW5ncy5qcycpOwotICAgIG1vam8uY29uZmlnLmF1dG9Mb2Fk
TW9qb21EZXBzID0gZmFsc2U7Ci0gIH0KLQotICBmb3IgKGNvbnN0IHBhdGggb2YgcmVzb3VyY2Vz
KSB7Ci0gICAgYXdhaXQgbG9hZFNjcmlwdChnZW5QcmVmaXggKyBwYXRoKTsKLSAgfQotfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNv
dXJjZXMvdGVzdC9jb25mdGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvY29uZnRlc3QucHkKaW5kZXggMWJhZjY2MjJiMDU5
OWM0NGZiODVkMjY3Mjg4MDMxYTA1ZTQyNDNkYy4uNzQ0YTgwYzA4YmVmZWFhNGVhY2JjNTY3MTg2
ZDNjN2UzZWUzNjM2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC9jb25mdGVzdC5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L2NvbmZ0ZXN0
LnB5CkBAIC00LDEyICs0LDExIEBAIGltcG9ydCBvcwogaW1wb3J0IHNzbAogaW1wb3J0IHN5cwog
aW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCB1cmxsaWIKIAogaW1wb3J0IGh0bWw1bGliCiBpbXBv
cnQgcHkKIGltcG9ydCBweXRlc3QKLWZyb20gc2l4IGltcG9ydCB0ZXh0X3R5cGUKLWZyb20gc2l4
Lm1vdmVzIGltcG9ydCB1cmxsaWIKIAogZnJvbSB3cHRzZXJ2ZXIgaW1wb3J0IFdQVFNlcnZlcgog
CkBAIC0xOSw2ICsxOCw5IEBAIEhBUk5FU1MgPSBvcy5wYXRoLmpvaW4oSEVSRSwgJ2hhcm5lc3Mu
aHRtbCcpCiBURVNUX1RZUEVTID0gKCdmdW5jdGlvbmFsJywgJ3VuaXQnKQogREVGQVVMVF9WQVJJ
QU5UUyA9IFsiP2RlZmF1bHQiXQogCitzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5ub3JtcGF0
aChvcy5wYXRoLmpvaW4oV1BUX1JPT1QsICJ0b29scyIpKSkKK2ltcG9ydCBsb2NhbHBhdGhzCisK
IHN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGguam9pbihXUFRfUk9P
VCwgInRvb2xzIiwgIndlYmRyaXZlciIpKSkKIGltcG9ydCB3ZWJkcml2ZXIKIApAQCAtMzksNyAr
NDEsMTEgQEAgZGVmIHB5dGVzdF9jb2xsZWN0X2ZpbGUocGF0aCwgcGFyZW50KToKICAgICAgICAg
cmV0dXJuCiAgICAgdGVzdF90eXBlID0gdGVzdF90eXBlLnNwbGl0KG9zLnBhdGguc2VwKVsxXQog
Ci0gICAgcmV0dXJuIEhUTUxJdGVtKHN0cihwYXRoKSwgdGVzdF90eXBlLCBwYXJlbnQpCisgICAg
IyBIYW5kbGUgdGhlIGRlcHJlY2F0aW9uIG9mIE5vZGUgY29uc3RydWN0aW9uIGluIHB5dGVzdDYK
KyAgICAjIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL3N0YWJsZS9kZXByZWNhdGlvbnMuaHRt
bCNub2RlLWNvbnN0cnVjdGlvbi1jaGFuZ2VkLXRvLW5vZGUtZnJvbS1wYXJlbnQKKyAgICBpZiBo
YXNhdHRyKEhUTUxJdGVtLCAiZnJvbV9wYXJlbnQiKToKKyAgICAgICAgcmV0dXJuIEhUTUxJdGVt
LmZyb21fcGFyZW50KHBhcmVudCwgZmlsZW5hbWU9c3RyKHBhdGgpLCB0ZXN0X3R5cGU9dGVzdF90
eXBlKQorICAgIHJldHVybiBIVE1MSXRlbShwYXJlbnQsIHN0cihwYXRoKSwgdGVzdF90eXBlKQog
CiAKIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CkBAIC01Niw4ICs2Miw2IEBAIGRlZiBw
eXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNhcGFiaWxpdGllcz1jYXBhYmlsaXRpZXMpCiAgICAgY29uZmlnLmFkZF9jbGVhbnVw
KGNvbmZpZy5kcml2ZXIuZW5kKQogCi0gICAgY29uZmlnLnNlcnZlciA9IFdQVFNlcnZlcihXUFRf
Uk9PVCkKLSAgICBjb25maWcuc2VydmVyLnN0YXJ0KCkKICAgICAjIEFsdGhvdWdoIHRoZSBuYW1l
IG9mIHRoZSBgX2NyZWF0ZV91bnZlcmlmaWVkX2NvbnRleHRgIG1ldGhvZCBzdWdnZXN0cwogICAg
ICMgdGhhdCBpdCBpcyBub3QgaW50ZW5kZWQgZm9yIGV4dGVybmFsIGNvbnN1bXB0aW9uLCB0aGUg
c3RhbmRhcmQgbGlicmFyeSdzCiAgICAgIyBkb2N1bWVudGF0aW9uIGV4cGxpY2l0bHkgZW5kb3Jz
ZXMgaXRzIHVzZToKQEAgLTY4LDYgKzcyLDkgQEAgZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmln
KToKICAgICAjCiAgICAgIyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8yL2xpYnJhcnkvaHR0cGxp
Yi5odG1sI2h0dHBsaWIuSFRUUFNDb25uZWN0aW9uCiAgICAgY29uZmlnLnNzbF9jb250ZXh0ID0g
c3NsLl9jcmVhdGVfdW52ZXJpZmllZF9jb250ZXh0KCkKKworICAgIGNvbmZpZy5zZXJ2ZXIgPSBX
UFRTZXJ2ZXIoV1BUX1JPT1QpCisgICAgY29uZmlnLnNlcnZlci5zdGFydChjb25maWcuc3NsX2Nv
bnRleHQpCiAgICAgY29uZmlnLmFkZF9jbGVhbnVwKGNvbmZpZy5zZXJ2ZXIuc3RvcCkKIAogCkBA
IC04Myw3ICs5MCw3IEBAIGRlZiByZXNvbHZlX3VyaShjb250ZXh0LCB1cmkpOgogCiAKIGNsYXNz
IEhUTUxJdGVtKHB5dGVzdC5JdGVtLCBweXRlc3QuQ29sbGVjdG9yKToKLSAgICBkZWYgX19pbml0
X18oc2VsZiwgZmlsZW5hbWUsIHRlc3RfdHlwZSwgcGFyZW50KToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgcGFyZW50LCBmaWxlbmFtZSwgdGVzdF90eXBlKToKICAgICAgICAgc2VsZi51cmwgPSBw
YXJlbnQuc2Vzc2lvbi5jb25maWcuc2VydmVyLnVybChmaWxlbmFtZSkKICAgICAgICAgc2VsZi50
eXBlID0gdGVzdF90eXBlCiAgICAgICAgIHNlbGYudmFyaWFudHMgPSBbXQpAQCAtMTA1LDcgKzEx
Miw3IEBAIGNsYXNzIEhUTUxJdGVtKHB5dGVzdC5JdGVtLCBweXRlc3QuQ29sbGVjdG9yKToKICAg
ICAgICAgaW5jbHVkZXNfdmFyaWFudHNfc2NyaXB0ID0gRmFsc2UKICAgICAgICAgc2VsZi5leHBl
Y3RlZCA9IE5vbmUKIAotICAgICAgICBmb3IgZWxlbWVudCBpbiBwYXJzZWQuZ2V0aXRlcmF0b3Io
KToKKyAgICAgICAgZm9yIGVsZW1lbnQgaW4gcGFyc2VkLml0ZXIoKToKICAgICAgICAgICAgIGlm
IG5vdCBuYW1lIGFuZCBlbGVtZW50LnRhZyA9PSAndGl0bGUnOgogICAgICAgICAgICAgICAgIG5h
bWUgPSBlbGVtZW50LnRleHQKICAgICAgICAgICAgICAgICBjb250aW51ZQpAQCAtMTE0LDcgKzEy
MSwxMSBAQCBjbGFzcyBIVE1MSXRlbShweXRlc3QuSXRlbSwgcHl0ZXN0LkNvbGxlY3Rvcik6CiAg
ICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGlmIGVsZW1lbnQudGFnID09ICdz
Y3JpcHQnOgogICAgICAgICAgICAgICAgIGlmIGVsZW1lbnQuYXR0cmliLmdldCgnaWQnKSA9PSAn
ZXhwZWN0ZWQnOgotICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkID0ganNvbi5sb2Fk
cyh0ZXh0X3R5cGUoZWxlbWVudC50ZXh0KSkKKyAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHBlY3RlZCA9IGpzb24ubG9hZHMoZWxlbWVudC50
ZXh0KQorICAgICAgICAgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHByaW50KCJGYWlsZWQgcGFyc2luZyBKU09OIGluICVzIiAlIGZpbGVuYW1l
KQorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UKIAogICAgICAgICAgICAgICAgIHNyYyA9
IGVsZW1lbnQuYXR0cmliLmdldCgnc3JjJywgJycpCiAKQEAgLTE5Miw2ICsyMDMsOCBAQCBjbGFz
cyBIVE1MSXRlbShweXRlc3QuSXRlbSwgcHl0ZXN0LkNvbGxlY3Rvcik6CiAgICAgICAgIHRlc3Rf
dXJsID0gc2VsZi51cmwgKyB2YXJpYW50CiAgICAgICAgIGFjdHVhbCA9IGRyaXZlci5leGVjdXRl
X2FzeW5jX3NjcmlwdCgncnVuVGVzdCgiJXMiLCAiZm9vIiwgYXJndW1lbnRzWzBdKScgJSB0ZXN0
X3VybCkKIAorICAgICAgICBwcmludChqc29uLmR1bXBzKGFjdHVhbCwgaW5kZW50PTIpKQorCiAg
ICAgICAgIHN1bW1hcml6ZWQgPSBzZWxmLl9zdW1tYXJpemUoY29weS5kZWVwY29weShhY3R1YWwp
KQogCiAgICAgICAgIHByaW50KGpzb24uZHVtcHMoc3VtbWFyaXplZCwgaW5kZW50PTIpKQpAQCAt
MjAzLDYgKzIxNiwxNyBAQCBjbGFzcyBIVE1MSXRlbShweXRlc3QuSXRlbSwgcHl0ZXN0LkNvbGxl
Y3Rvcik6CiAKICAgICAgICAgc2VsZi5leHBlY3RlZFt1J3N1bW1hcml6ZWRfdGVzdHMnXS5zb3J0
KGtleT1sYW1iZGEgdGVzdF9vYmo6IHRlc3Rfb2JqLmdldCgnbmFtZScpKQogCisgICAgICAgICMg
TWFrZSBhc3NlcnRzIG9wdC1pbiBmb3Igbm93CisgICAgICAgIGlmICJzdW1tYXJpemVkX2Fzc2Vy
dHMiIG5vdCBpbiBzZWxmLmV4cGVjdGVkOgorICAgICAgICAgICAgZGVsIHN1bW1hcml6ZWRbInN1
bW1hcml6ZWRfYXNzZXJ0cyJdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIFdlIGNhbid0
IGJlIHN1cmUgb2YgdGhlIG9yZGVyIG9mIGFzc2VydHMgZXZlbiB3aXRoaW4gdGhlIHNhbWUgdGVz
dAorICAgICAgICAgICAgIyBhbHRob3VnaCB3ZSBjb3VsZCBhbHNvIGNoZWNrIGZvciB0aGUgZmFp
bGluZyBhc3NlcnQgYmVpbmcgdGhlIGZpbmFsCisgICAgICAgICAgICAjIG9uZQorICAgICAgICAg
ICAgZm9yIG9iaiBpbiBbc3VtbWFyaXplZCwgc2VsZi5leHBlY3RlZF06CisgICAgICAgICAgICAg
ICAgb2JqWyJzdW1tYXJpemVkX2Fzc2VydHMiXS5zb3J0KAorICAgICAgICAgICAgICAgICAgICBr
ZXk9bGFtYmRhIHg6ICh4WyJ0ZXN0Il0gb3IgIiIsIHhbInN0YXR1cyJdLCB4WyJhc3NlcnRfbmFt
ZSJdLCB0dXBsZSh4WyJhcmdzIl0pKSkKKwogICAgICAgICBhc3NlcnQgc3VtbWFyaXplZCA9PSBz
ZWxmLmV4cGVjdGVkCiAKICAgICBkZWYgX3N1bW1hcml6ZShzZWxmLCBhY3R1YWwpOgpAQCAtMjEy
LDYgKzIzNiwxMSBAQCBjbGFzcyBIVE1MSXRlbShweXRlc3QuSXRlbSwgcHl0ZXN0LkNvbGxlY3Rv
cik6CiAgICAgICAgIHN1bW1hcml6ZWRbdSdzdW1tYXJpemVkX3Rlc3RzJ10gPSBbCiAgICAgICAg
ICAgICBzZWxmLl9zdW1tYXJpemVfdGVzdCh0ZXN0KSBmb3IgdGVzdCBpbiBhY3R1YWxbJ3Rlc3Rz
J11dCiAgICAgICAgIHN1bW1hcml6ZWRbdSdzdW1tYXJpemVkX3Rlc3RzJ10uc29ydChrZXk9bGFt
YmRhIHRlc3Rfb2JqOiB0ZXN0X29iai5nZXQoJ25hbWUnKSkKKyAgICAgICAgc3VtbWFyaXplZFt1
J3N1bW1hcml6ZWRfYXNzZXJ0cyddID0gWworICAgICAgICAgICAgeyJhc3NlcnRfbmFtZSI6IGFz
c2VydF9pdGVtWyJhc3NlcnRfbmFtZSJdLAorICAgICAgICAgICAgInRlc3QiOiBhc3NlcnRfaXRl
bVsidGVzdCJdWyJuYW1lIl0gaWYgYXNzZXJ0X2l0ZW1bInRlc3QiXSBlbHNlIE5vbmUsCisgICAg
ICAgICAgICAiYXJncyI6IGFzc2VydF9pdGVtWyJhcmdzIl0sCisgICAgICAgICAgICAic3RhdHVz
IjogYXNzZXJ0X2l0ZW1bInN0YXR1cyJdfSBmb3IgYXNzZXJ0X2l0ZW0gaW4gYWN0dWFsWyJhc3Nl
cnRzIl1dCiAgICAgICAgIHN1bW1hcml6ZWRbdSd0eXBlJ10gPSBhY3R1YWxbJ3R5cGUnXQogCiAg
ICAgICAgIHJldHVybiBzdW1tYXJpemVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3JlcXVpcmVtZW50cy50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90
ZXN0L3JlcXVpcmVtZW50cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTVkODdjMzg3NTZjNWE2YzI0OTRiOThh
M2Q4MTVlMTAzZTljYzRlMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvcmVxdWlyZW1lbnRzLnR4dApA
QCAtMCwwICsxIEBACitodG1sNWxpYj09MS4xCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9u
YWwvYXBpLXRlc3RzLTEuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9hcGktdGVzdHMtMS5odG1s
CmluZGV4IDIzN2I0ZWE4NzZlNTg5Y2I2ZTIzMTg3MmRjODE2ZDcxNzFlNDdjM2UuLjQxYTc2NWY1
NTc0NWMwYjhjN2Y0ODkxYWEyYjM0YzU4NjBhNzI1NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVu
Y3Rpb25hbC9hcGktdGVzdHMtMS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9hcGktdGVz
dHMtMS5odG1sCkBAIC01NjIsNiArNTYyLDQzMSBAQAogICAgICAgInByb3BlcnRpZXMiOiB7fQog
ICAgIH0KICAgXSwKKyAgInN1bW1hcml6ZWRfYXNzZXJ0cyI6IFsKKyAgICB7CisgICAgICAiYXNz
ZXJ0X25hbWUiOiAiYXNzZXJ0X3RydWUiLAorICAgICAgInRlc3QiOiAiU2V0dXAgZnVuY3Rpb24g
cmFuIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAidHJ1ZSIKKyAgICAgIF0sCisgICAgICAi
c3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9h
cnJheV9lcXVhbHMiLAorICAgICAgInRlc3QiOiAib25fZXZlbnQgZG9lcyBub3QgdXNlIGV2ZW50
IGNhcHR1cmUiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJbXCJpbm5lclwiLCBcIm91dGVy
XCJdIiwKKyAgICAgICAgIltcImlubmVyXCIsIFwib3V0ZXJcIl0iCisgICAgICBdLAorICAgICAg
InN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRf
ZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImRvY3VtZW50LmJvZHkgc2hvdWxkIGJlIHRoZSBmaXJz
dCBib2R5IGVsZW1lbnQgaW4gdGhlIGRvY3VtZW50IiwKKyAgICAgICJhcmdzIjogWworICAgICAg
ICAiRWxlbWVudCBub2RlIDxib2R5IG9ubG9hZD1cImxvYWRfdGVzdF9hdHRyLmRvbmUoKVwiPiA8
aDE+U2FtcGxlIEhUTUw1IEFQLi4uIiwKKyAgICAgICAgIkVsZW1lbnQgbm9kZSA8Ym9keSBvbmxv
YWQ9XCJsb2FkX3Rlc3RfYXR0ci5kb25lKClcIj4gPGgxPlNhbXBsZSBIVE1MNSBBUC4uLiIKKyAg
ICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9u
YW1lIjogImFzc2VydF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiYXNzZXJ0X2VxdWFscyB0ZXN0
cyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIjEiLAorICAgICAgICAiMSIKKyAgICAgIF0s
CisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjog
ImFzc2VydF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiYXNzZXJ0X2VxdWFscyB0ZXN0cyIsCisg
ICAgICAiYXJncyI6IFsKKyAgICAgICAgIk5hTiIsCisgICAgICAgICJOYU4iLAorICAgICAgICAi
XCJOYU4gY2FzZVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwKKyAgICB7
CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X2VxdWFscyIsCisgICAgICAidGVzdCI6ICJh
c3NlcnRfZXF1YWxzIHRlc3RzIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiMCIsCisgICAg
ICAgICIwIiwKKyAgICAgICAgIlwiWmVybyBjYXNlXCIiCisgICAgICBdLAorICAgICAgInN0YXR1
cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfZXF1YWxz
IiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF9lcXVhbHMgdGVzdHMgZXhwZWN0ZWQgdG8gZmFpbCIs
CisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIi0wIiwKKyAgICAgICAgIjAiLAorICAgICAgICAi
XCJaZXJvIGNhc2VcIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMQorICAgIH0sCisgICAg
eworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9ub3RfZXF1YWxzIiwKKyAgICAgICJ0ZXN0
IjogImFzc2VydF9ub3RfZXF1YWxzIHRlc3RzIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAi
b2JqZWN0IFwiW29iamVjdCBPYmplY3RdXCIiLAorICAgICAgICAib2JqZWN0IFwiW29iamVjdCBP
YmplY3RdXCIiLAorICAgICAgICAiXCJvYmplY3QgY2FzZVwiIgorICAgICAgXSwKKyAgICAgICJz
dGF0dXMiOiAwCisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X25v
dF9lcXVhbHMiLAorICAgICAgInRlc3QiOiAiYXNzZXJ0X25vdF9lcXVhbHMgdGVzdHMiLAorICAg
ICAgImFyZ3MiOiBbCisgICAgICAgICItMCIsCisgICAgICAgICIwIiwKKyAgICAgICAgIlwiWmVy
byBjYXNlXCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAg
ICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6ICJhc3NlcnRf
dHJ1ZSBleHBlY3RlZCB0byBwYXNzIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAidHJ1ZSIK
KyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2Vy
dF9uYW1lIjogImFzc2VydF90cnVlIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF90cnVlIGV4cGVj
dGVkIHRvIGZhaWwiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJmYWxzZSIsCisgICAgICAg
ICJcImZhbHNlIHNob3VsZCBub3QgYmUgdHJ1ZVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMi
OiAxCisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X2FycmF5X2Vx
dWFscyIsCisgICAgICAidGVzdCI6ICJiYXNpYyBhc3NlcnRfYXJyYXlfZXF1YWxzIHRlc3QiLAor
ICAgICAgImFyZ3MiOiBbCisgICAgICAgICJbMSwgTmFOXSIsCisgICAgICAgICJbMSwgTmFOXSIs
CisgICAgICAgICJcIlsxLCBOYU5dIGlzIGVxdWFsIHRvIFsxLCBOYU5dXCIiCisgICAgICBdLAor
ICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJh
c3NlcnRfYXJyYXlfZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImFzc2VydF9hcnJheV9lcXVhbHMg
d2l0aCBmaXJzdCBwYXJhbSB1bmRlZmluZWQiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJ1
bmRlZmluZWQiLAorICAgICAgICAiWzFdIiwKKyAgICAgICAgIlwidW5kZWZpbmVkIGVxdWFscyBb
MV0/XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAg
ICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfYXJyYXlfZXF1YWxzIiwKKyAgICAgICJ0ZXN0IjogImFz
c2VydF9hcnJheV9lcXVhbHMgd2l0aCBmaXJzdCBwYXJhbSB0cnVlIiwKKyAgICAgICJhcmdzIjog
WworICAgICAgICAidHJ1ZSIsCisgICAgICAgICJbMV0iLAorICAgICAgICAiXCJ0cnVlIGVxdWFs
cyBbMV0/XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAg
ICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfYXJyYXlfZXF1YWxzIiwKKyAgICAgICJ0ZXN0Ijog
ImFzc2VydF9hcnJheV9lcXVhbHMgd2l0aCBmaXJzdCBwYXJhbSBmYWxzZSIsCisgICAgICAiYXJn
cyI6IFsKKyAgICAgICAgImZhbHNlIiwKKyAgICAgICAgIlsxXSIsCisgICAgICAgICJcImZhbHNl
IGVxdWFscyBbMV0/XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAg
IHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfYXJyYXlfZXF1YWxzIiwKKyAgICAgICJ0
ZXN0IjogImFzc2VydF9hcnJheV9lcXVhbHMgd2l0aCBmaXJzdCBwYXJhbSBudWxsIiwKKyAgICAg
ICJhcmdzIjogWworICAgICAgICAibnVsbCIsCisgICAgICAgICJbMV0iLAorICAgICAgICAiXCJu
dWxsIGVxdWFscyBbMV0/XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAor
ICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfYXJyYXlfZXF1YWxzIiwKKyAgICAg
ICJ0ZXN0IjogImFzc2VydF9hcnJheV9lcXVhbHMgd2l0aCBmaXJzdCBwYXJhbSAxIiwKKyAgICAg
ICJhcmdzIjogWworICAgICAgICAiMSIsCisgICAgICAgICJbMV0iLAorICAgICAgICAiXCIxIGVx
dWFscyBbMV0/XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsK
KyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfYXJyYXlfYXBwcm94X2VxdWFscyIsCisgICAg
ICAidGVzdCI6ICJiYXNpYyBhc3NlcnRfYXJyYXlfYXBwcm94X2VxdWFscyB0ZXN0IiwKKyAgICAg
ICJhcmdzIjogWworICAgICAgICAiWzEwLCAxMV0iLAorICAgICAgICAiWzExLCAxMF0iLAorICAg
ICAgICAiMSIsCisgICAgICAgICJcIlsxMCwgMTFdIGlzIGFwcHJveGltYXRlbHkgKCsvLSAxKSBb
MTEsIDEwXVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwKKyAgICB7Cisg
ICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X2FwcHJveF9lcXVhbHMiLAorICAgICAgInRlc3Qi
OiAiYmFzaWMgYXNzZXJ0X2FwcHJveF9lcXVhbHMgdGVzdCIsCisgICAgICAiYXJncyI6IFsKKyAg
ICAgICAgIjEwIiwKKyAgICAgICAgIjExIiwKKyAgICAgICAgIjEiLAorICAgICAgICAiXCIxMCBp
cyBhcHByb3hpbWF0ZWx5ICgrLy0gMSkgMTFcIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjog
MAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9hcHByb3hfZXF1
YWxzIiwKKyAgICAgICJ0ZXN0IjogImJhc2ljIGFzc2VydF9sZXNzX3RoYW4gdGVzdCIsCisgICAg
ICAiYXJncyI6IFsKKyAgICAgICAgIjEwIiwKKyAgICAgICAgIjExIiwKKyAgICAgICAgIjEiLAor
ICAgICAgICAiXCIxMCBpcyBhcHByb3hpbWF0ZWx5ICgrLy0gMSkgMTFcIiIKKyAgICAgIF0sCisg
ICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFz
c2VydF9ncmVhdGVyX3RoYW4iLAorICAgICAgInRlc3QiOiAiYXNzZXJ0X2dyZWF0ZXJfdGhhbiBl
eHBlY3RlZCB0byBmYWlsIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiMTAiLAorICAgICAg
ICAiMTEiLAorICAgICAgICAiXCIxMCBpcyBub3QgZ3JlYXRlciB0aGFuIDExXCIiCisgICAgICBd
LAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6
ICJhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsIiwKKyAgICAgICJ0ZXN0IjogImJhc2ljIGFzc2Vy
dF9ncmVhdGVyX3RoYW5fZXF1YWwgdGVzdCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIjEw
IiwKKyAgICAgICAgIjEwIiwKKyAgICAgICAgIlwiMTAgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFs
IHRvIDEwXCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAg
ICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsIiwKKyAgICAgICJ0
ZXN0IjogImFzc2VydF9sZXNzX3RoYW5fZXF1YWwgZXhwZWN0ZWQgdG8gZmFpbCIsCisgICAgICAi
YXJncyI6IFsKKyAgICAgICAgIlwiMTBcIiIsCisgICAgICAgICIxMCIsCisgICAgICAgICJcIicx
MCcgaXMgbm90IGEgbnVtYmVyXCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9
LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfb3duX3Byb3BlcnR5IiwKKyAg
ICAgICJ0ZXN0IjogInRlc3QgZm9yIGFzc2VydFtfbm90XV9vd25fcHJvcGVydHkgYW5kIGluc2Vy
dF9pbmhlcml0cyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIm9iamVjdCBcIltvYmplY3Qg
T2JqZWN0XVwiIiwKKyAgICAgICAgIlwiYVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAw
CisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUiOiAiYXNzZXJ0X25vdF9vd25fcHJv
cGVydHkiLAorICAgICAgInRlc3QiOiAidGVzdCBmb3IgYXNzZXJ0W19ub3RdX293bl9wcm9wZXJ0
eSBhbmQgaW5zZXJ0X2luaGVyaXRzIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAib2JqZWN0
IFwiW29iamVjdCBPYmplY3RdXCIiLAorICAgICAgICAiXCJiXCIiLAorICAgICAgICAiXCJ1bmV4
cGVjdGVkIHByb3BlcnR5IGZvdW5kOiBcXFwiYlxcXCJcIiIKKyAgICAgIF0sCisgICAgICAic3Rh
dHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9pbmhl
cml0cyIsCisgICAgICAidGVzdCI6ICJ0ZXN0IGZvciBhc3NlcnRbX25vdF1fb3duX3Byb3BlcnR5
IGFuZCBpbnNlcnRfaW5oZXJpdHMiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJvYmplY3Qg
XCJbb2JqZWN0IE9iamVjdF1cIiIsCisgICAgICAgICJcImJcIiIKKyAgICAgIF0sCisgICAgICAi
c3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90
aHJvd3NfZG9tIiwKKyAgICAgICJ0ZXN0IjogIlRlc3QgdGhyb3cgRE9NIGV4Y2VwdGlvbiIsCisg
ICAgICAiYXJncyI6IFsKKyAgICAgICAgIlwiTk9UX0ZPVU5EX0VSUlwiIiwKKyAgICAgICAgImZ1
bmN0aW9uIFwiZnVuY3Rpb24gKCkge2EucmVtb3ZlQ2hpbGQoYil9XCIiCisgICAgICBdLAorICAg
ICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3Nl
cnRfdGhyb3dzX2pzIiwKKyAgICAgICJ0ZXN0IjogIlRlc3QgdGhyb3cgRE9NRXhjZXB0aW9uIGFz
IEpTIGV4Y2VwdGlvbiBleHBlY3RlZCB0byBmYWlsIiwKKyAgICAgICJhcmdzIjogWworICAgICAg
ICAiZnVuY3Rpb24gXCJmdW5jdGlvbiBET01FeGNlcHRpb24oKSB7ICAgICBbbmF0aXZlIGNvZGVd
IH1cIiIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uICgpIHthLnJlbW92ZUNoaWxkKGIp
fVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAxCisgICAgfSwKKyAgICB7CisgICAgICAi
YXNzZXJ0X25hbWUiOiAiYXNzZXJ0X3Rocm93c19qcyIsCisgICAgICAidGVzdCI6ICJUZXN0IHRo
cm93IFN5bnRheEVycm9yIERPTUV4Y2VwdGlvbiB3aGVyZSBKUyBTeW50YXhFcnJvciBleHBlY3Rl
ZDsgZXhwZWN0ZWQgdG8gZmFpbCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgImZ1bmN0aW9u
IFwiZnVuY3Rpb24gU3ludGF4RXJyb3IoKSB7ICAgICBbbmF0aXZlIGNvZGVdIH1cIiIsCisgICAg
ICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uICgpIHtkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiXCIp
fVwiIgorICAgICAgXSwKKyAgICAgICJzdGF0dXMiOiAxCisgICAgfSwKKyAgICB7CisgICAgICAi
YXNzZXJ0X25hbWUiOiAiYXNzZXJ0X3Rocm93c19qcyIsCisgICAgICAidGVzdCI6ICJUZXN0IHRo
cm93IEpTIFN5bnRheEVycm9yIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICAiZnVuY3Rpb24g
XCJmdW5jdGlvbiBTeW50YXhFcnJvcigpIHsgICAgIFtuYXRpdmUgY29kZV0gfVwiIiwKKyAgICAg
ICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24gKCkge0pTT04ucGFyc2UoXCJ7XCIpfVwiIgorICAgICAg
XSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfSwKKyAgICB7CisgICAgICAiYXNzZXJ0X25hbWUi
OiAiYXNzZXJ0X3Rocm93c19kb20iLAorICAgICAgInRlc3QiOiAiVGVzdCB0aHJvdyBET00gU3lu
dGF4RXJyb3IiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJcIlN5bnRheEVycm9yXCIiLAor
ICAgICAgICAiZnVuY3Rpb24gXCJmdW5jdGlvbiAoKSB7ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihc
IlwiKX1cIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAg
ICAgImFzc2VydF9uYW1lIjogImFzc2VydF90aHJvd3NfZG9tIiwKKyAgICAgICJ0ZXN0IjogIlRl
c3QgdGhyb3cgRE9NIFN5bnRheEVycm9yIGZyb20gc3ViZnJhbWUiLAorICAgICAgImFyZ3MiOiBb
CisgICAgICAgICJcIlN5bnRheEVycm9yXCIiLAorICAgICAgICAiZnVuY3Rpb24gXCJmdW5jdGlv
biBET01FeGNlcHRpb24oKSB7ICAgICBbbmF0aXZlIGNvZGVdIH1cIiIsCisgICAgICAgICJmdW5j
dGlvbiBcImZ1bmN0aW9uICgpIHtpZnIuY29udGVudERvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJc
Iil9XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAg
ICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdGhyb3dzX2RvbSIsCisgICAgICAidGVzdCI6ICJUZXN0
IHRocm93IERPTSBTeW50YXhFcnJvciBmcm9tIHN1YmZyYW1lIHdpdGggaW5jb3JyZWN0IGdsb2Jh
bCBleHBlY3RhdGlvbjsgZXhwZWN0ZWQgdG8gZmFpbCIsCisgICAgICAiYXJncyI6IFsKKyAgICAg
ICAgIlwiU3ludGF4RXJyb3JcIiIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uICgpIHtp
ZnIuY29udGVudERvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJcIil9XCIiCisgICAgICBdLAorICAg
ICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3Nl
cnRfdGhyb3dzX2RvbSIsCisgICAgICAidGVzdCI6ICJUZXN0IHRocm93IERPTSBTeW50YXhFcnJv
ciB3aXRoIGluY29ycmVjdCBleHBlY3RhdGlvbjsgZXhwZWN0ZWQgdG8gZmFpbCIsCisgICAgICAi
YXJncyI6IFsKKyAgICAgICAgIlwiU3ludGF4RXJyb3JcIiIsCisgICAgICAgICJmdW5jdGlvbiBc
ImZ1bmN0aW9uIERPTUV4Y2VwdGlvbigpIHsgICAgIFtuYXRpdmUgY29kZV0gfVwiIiwKKyAgICAg
ICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24gKCkge2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJcIil9
XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJh
c3NlcnRfbmFtZSI6ICJhc3NlcnRfdGhyb3dzX2RvbSIsCisgICAgICAidGVzdCI6ICJUZXN0IHRo
cm93IEpTIFN5bnRheEVycm9yIHdoZXJlIFN5bnRheEVycm9yIERPTUV4Y2VwdGlvbiBleHBlY3Rl
ZDsgZXhwZWN0ZWQgdG8gZmFpbCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIlwiU3ludGF4
RXJyb3JcIiIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uICgpIHtKU09OLnBhcnNlKFwi
e1wiKX1cIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMQorICAgIH0sCisgICAgeworICAg
ICAgImFzc2VydF9uYW1lIjogImFzc2VydF90aHJvd3NfZG9tIiwKKyAgICAgICJ0ZXN0IjogIlRl
c3QgdGhyb3cgRE9NIGV4Y2VwdGlvbiBleHBlY3RlZCB0byBmYWlsIiwKKyAgICAgICJhcmdzIjog
WworICAgICAgICAiXCJOT1RfRk9VTkRfRVJSXCIiLAorICAgICAgICAiZnVuY3Rpb24gXCJmdW5j
dGlvbiAoKSB7YS5hcHBlbmRDaGlsZChiKX1cIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjog
MQorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90aHJvd3NfZG9t
IiwKKyAgICAgICJ0ZXN0IjogIlRlc3QgYXNzZXJ0X3Rocm93c19kb20gd2l0aCBhbWJpZ3VvdXMg
RE9NLWV4Y2VwdGlvbiBleHBlY3RlZCB0byBGYWlsIiwKKyAgICAgICJhcmdzIjogWworICAgICAg
ICAiMCIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1bmN0aW9uKCkge3Rocm93IGV9XCIiCisgICAg
ICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFt
ZSI6ICJhc3NlcnRfdGhyb3dzX2RvbSIsCisgICAgICAidGVzdCI6ICJUZXN0IGFzc2VydF90aHJv
d3NfZG9tIHdpdGggbm9uLURPTS1leGNlcHRpb24gZXhwZWN0ZWQgdG8gRmFpbCIsCisgICAgICAi
YXJncyI6IFsKKyAgICAgICAgIlwiVEVTVF9FUlJcIiIsCisgICAgICAgICJmdW5jdGlvbiBcImZ1
bmN0aW9uKCkge3Rocm93IGV9XCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDEKKyAgICB9
LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdGhyb3dzX2RvbSIsCisgICAg
ICAidGVzdCI6ICJUZXN0IGFzc2VydF90aHJvd3NfZG9tIHdpdGggbnVtYmVyIGNvZGUgdmFsdWUg
ZXhwZWN0ZWQgdG8gUGFzcyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIjEyIiwKKyAgICAg
ICAgImZ1bmN0aW9uIFwiZnVuY3Rpb24oKSB7dGhyb3cgZX1cIiIKKyAgICAgIF0sCisgICAgICAi
c3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF90
aHJvd3NfZG9tIiwKKyAgICAgICJ0ZXN0IjogIlRlc3QgYXNzZXJ0X3Rocm93c19kb20gd2l0aCBu
dW1iZXIgY29kZSB2YWx1ZSBhbmQgcmVhbCBET01FeGNlcHRpb24gZXhwZWN0ZWQgdG8gUGFzcyIs
CisgICAgICAiYXJncyI6IFsKKyAgICAgICAgIjEyIiwKKyAgICAgICAgImZ1bmN0aW9uIFwiZnVu
Y3Rpb24oKSB7dGhyb3cgZX1cIiIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAorICAgIH0s
CisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9lcXVhbHMiLAorICAgICAgInRl
c3QiOiAiVGVzdCB0aGF0IGRlZmluZXMgYSBnbG9iYWwgYW5kIGNsZWFucyBpdCB1cCIsCisgICAg
ICAiYXJncyI6IFsKKyAgICAgICAgIjEiLAorICAgICAgICAiMSIKKyAgICAgIF0sCisgICAgICAi
c3RhdHVzIjogMAorICAgIH0sCisgICAgeworICAgICAgImFzc2VydF9uYW1lIjogImFzc2VydF9l
cXVhbHMiLAorICAgICAgInRlc3QiOiAiVGVzdCB0aGF0IGNsZWFudXAgaGFuZGxlcnMgZnJvbSBw
cmV2aW91cyB0ZXN0IHJhbiIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgInVuZGVmaW5lZCIs
CisgICAgICAgICJ1bmRlZmluZWQiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9
LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRfdHJ1ZSIsCisgICAgICAidGVz
dCI6ICJUZXN0IHN0ZXBfZnVuYyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgInRydWUiCisg
ICAgICBdLAorICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRf
bmFtZSI6ICJhc3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6ICJUZXN0IGFzeW5jIHRlc3Qgd2l0
aCBjYWxsYmFjayIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgInRydWUiCisgICAgICBdLAor
ICAgICAgInN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJh
c3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6ICJUZXN0IGFzeW5jIHRlc3Qgd2l0aCBjYWxsYmFj
ayBhbmQgYHRoaXNgIG9iai4iLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJ0cnVlIgorICAg
ICAgXSwKKyAgICAgICJzdGF0dXMiOiAwCisgICAgfQorICBdLAogICAidHlwZSI6ICJjb21wbGV0
ZSIKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2FwaS10ZXN0
cy0yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jl
c291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvYXBpLXRlc3RzLTIuaHRtbAppbmRleCAwOGEy
Yjg5M2MyNDRkYWU0MDUxODc0OWFjNGI2YmRjY2FhMjg0YTAzLi5iYTdhMDhmNDhmZDdhYzg2Yzkz
ODdlMDNiZjNkZjg4MTU1MDU3N2FhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvYXBp
LXRlc3RzLTIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvYXBpLXRlc3RzLTIuaHRtbApA
QCAtNDAsNiArNDAsMjQgQEAgZG9uZSgpOwogICAgICAgIm1lc3NhZ2UiOiBudWxsCiAgICAgfQog
ICBdLAorICAic3VtbWFyaXplZF9hc3NlcnRzIjogWworICAgIHsKKyAgICAgICJhc3NlcnRfbmFt
ZSI6ICJhc3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6ICJUZXN0IGRlZmluZWQgYmVmb3JlIG9u
bG9hZCIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgInRydWUiCisgICAgICBdLAorICAgICAg
InN0YXR1cyI6IDAKKyAgICB9LAorICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6ICJhc3NlcnRf
dHJ1ZSIsCisgICAgICAidGVzdCI6ICJUZXN0IGRlZmluZWQgYWZ0ZXIgb25sb2FkIiwKKyAgICAg
ICJhcmdzIjogWworICAgICAgICAidHJ1ZSIKKyAgICAgIF0sCisgICAgICAic3RhdHVzIjogMAor
ICAgIH0KKyAgXSwKICAgInR5cGUiOiAiY29tcGxldGUiCiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Vz
L3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbERpY3Rpb25hcnkvdGVzdF9wYXJ0
aWFsX2ludGVyZmFjZV9vZi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRs
RGljdGlvbmFyeS90ZXN0X3BhcnRpYWxfaW50ZXJmYWNlX29mLmh0bWwKaW5kZXggNWVlM2ZlN2U4
OTNmMTllZjMyOGMzYjVjOTk2YmY3YjQ3NTFiMmI3YS4uMDVlNmUwYjFlMDZjNjM0ZWMyOTAwY2E0
MzAyYjYxMWRkYTcyZWExNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5l
c3MvSWRsRGljdGlvbmFyeS90ZXN0X3BhcnRpYWxfaW50ZXJmYWNlX29mLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90
ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsRGljdGlvbmFyeS90ZXN0X3BhcnRpYWxfaW50
ZXJmYWNlX29mLmh0bWwKQEAgLTQxLDcgKzQxLDcgQEAKICAgICAgIGlkbEFycmF5LmFkZF9pZGxz
KGAKICAgICAgICAgcGFydGlhbCBkaWN0aW9uYXJ5IEMge307CiAgICAgICAgIG5hbWVzcGFjZSBD
IHt9O2ApOwotICAgICAgaWRsQXJyYXkuY29sbGFwc2VfcGFydGlhbHMoKTsKKyAgICAgIGlkbEFy
cmF5Lm1lcmdlX3BhcnRpYWxzKCk7CiAgICAgfSkoKTsKICAgPC9zY3JpcHQ+CiAgIDxzY3JpcHQg
dHlwZT0idGV4dC9qc29uIiBpZD0iZXhwZWN0ZWQiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5j
dGlvbmFsL2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rlc3RfaW1tdXRhYmxlX3Byb3RvdHlwZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJj
ZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rlc3RfaW1t
dXRhYmxlX3Byb3RvdHlwZS5odG1sCmluZGV4IDQwZjVkYmZjYzcxYTYyNjc1NDRhZWM1YTc0YmVl
Y2RmOWZmMjBlZDYuLjU2MjVjN2Y1NTMwM2Y3M2E1YjIzMWE0OGFhYmE4NmQzMzljZjljOTMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbEludGVyZmFjZS90ZXN0
X2ltbXV0YWJsZV9wcm90b3R5cGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFy
bmVzcy9JZGxJbnRlcmZhY2UvdGVzdF9pbW11dGFibGVfcHJvdG90eXBlLmh0bWwKQEAgLTMzLDgg
KzMzLDggQEAgaWRsQXJyYXkuYWRkX2lkbHMoCiAgICAgIltHbG9iYWw9V2luZG93LCBFeHBvc2Vk
PVdpbmRvd11cbiIgKwogICAgICJpbnRlcmZhY2UgV2luZG93IDogRXZlbnRUYXJnZXQge307XG4i
ICsKIAotICAgICJbR2xvYmFsPVdpbmRvdywgRXhwb3NlZD1XaW5kb3csIENvbnN0cnVjdG9yKCld
XG4iICsKLSAgICAiaW50ZXJmYWNlIEZvbyB7fTsiCisgICAgIltHbG9iYWw9V2luZG93LCBFeHBv
c2VkPVdpbmRvd11cbiIgKworICAgICJpbnRlcmZhY2UgRm9vIHsgY29uc3RydWN0b3IoKTsgfTsi
CiAgICk7CiBpZGxBcnJheS5hZGRfb2JqZWN0cyh7CiAgIEZvbzogWyJuZXcgRm9vKCkiXSwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbEludGVyZmFjZS90ZXN0
X2ludGVyZmFjZV9taXhpbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRs
SW50ZXJmYWNlL3Rlc3RfaW50ZXJmYWNlX21peGluLmh0bWwKaW5kZXggYTlhOTA5NGZlMzBhYjUw
ODU3NDIyNDcwNzhlYzc5YWNhZTFhMDcxMS4uMWUyMmM0Zjg1YTVhMDRjNzJiYjQ5YzFlMmZkNTc1
OTA3N2UyNzdhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRs
SW50ZXJmYWNlL3Rlc3RfaW50ZXJmYWNlX21peGluLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlv
bmFsL2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rlc3RfaW50ZXJmYWNlX21peGluLmh0bWwKQEAg
LTE3LDMwICsxNyw1NiBAQAogICA8c2NyaXB0PgogICAgICJ1c2Ugc3RyaWN0IjsKIAotICAgIC8v
IE5vIG9yaWdpbmFsIGV4aXN0ZW5jZQorICAgIC8vIFNpbXBsZSBpbmNsdWRlcyBzdGF0ZW1lbnQg
KHZhbGlkKQogICAgICgoKSA9PiB7CiAgICAgICBjb25zdCBpZGxBcnJheSA9IG5ldyBJZGxBcnJh
eSgpOwotICAgICAgaWRsQXJyYXkuYWRkX2lkbHMoJ3BhcnRpYWwgaW50ZXJmYWNlIG1peGluIEEg
e307Jyk7Ci0gICAgICBpZGxBcnJheS50ZXN0KCk7CisgICAgICBpZGxBcnJheS5hZGRfaWRscyhg
CisgICAgICAgIFtFeHBvc2VkPVdpbmRvd10gaW50ZXJmYWNlIEkxIHt9OworICAgICAgICBpbnRl
cmZhY2UgbWl4aW4gTTEgeyBhdHRyaWJ1dGUgYW55IGExOyB9OworICAgICAgICBJMSBpbmNsdWRl
cyBNMTtgKTsKKyAgICAgIGlkbEFycmF5Lm1lcmdlX3BhcnRpYWxzKCk7CisgICAgICBpZGxBcnJh
eS5tZXJnZV9taXhpbnMoKTsKKyAgICB9KSgpOworCisgICAgLy8gUGFydGlhbCBpbnRlcmZhY2Ug
bWl4aW4gKHZhbGlkKQorICAgICgoKSA9PiB7CisgICAgICBjb25zdCBpZGxBcnJheSA9IG5ldyBJ
ZGxBcnJheSgpOworICAgICAgaWRsQXJyYXkuYWRkX2lkbHMoYAorICAgICAgICBbRXhwb3NlZD1X
aW5kb3ddIGludGVyZmFjZSBJMiB7fTsKKyAgICAgICAgaW50ZXJmYWNlIG1peGluIE0yIHt9Owor
ICAgICAgICBwYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBNMiB7IGF0dHJpYnV0ZSBhbnkgYTI7IH07
CisgICAgICAgIEkyIGluY2x1ZGVzIE0yO2ApOworICAgICAgaWRsQXJyYXkubWVyZ2VfcGFydGlh
bHMoKTsKKyAgICAgIGlkbEFycmF5Lm1lcmdlX21peGlucygpOworICAgIH0pKCk7CisKKyAgICAv
LyBQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiB3aXRob3V0IG9yaWdpbmFsIG1peGluCisgICAgKCgp
ID0+IHsKKyAgICAgIGNvbnN0IGlkbEFycmF5ID0gbmV3IElkbEFycmF5KCk7CisgICAgICBpZGxB
cnJheS5hZGRfaWRscygncGFydGlhbCBpbnRlcmZhY2UgbWl4aW4gTTMge307Jyk7CisgICAgICBp
ZGxBcnJheS5tZXJnZV9wYXJ0aWFscygpOworICAgICAgaWRsQXJyYXkubWVyZ2VfbWl4aW5zKCk7
CiAgICAgfSkoKTsKIAotICAgIC8vIE5hbWUgY2xhc2ggKHBhcnRpYWxzKQorICAgIC8vIE5hbWUg
Y2xhc2ggYmV0d2VlbiBtaXhpbiBhbmQgcGFydGlhbCBtaXhpbgogICAgICgoKSA9PiB7CiAgICAg
ICBjb25zdCBpZGxBcnJheSA9IG5ldyBJZGxBcnJheSgpOwogICAgICAgaWRsQXJyYXkuYWRkX2lk
bHMoYAotICAgICAgICBpbnRlcmZhY2UgbWl4aW4gQiB7IGF0dHJpYnV0ZSBhbnkgRjsgfTsKLSAg
ICAgICAgcGFydGlhbCBpbnRlcmZhY2UgbWl4aW4gQiB7IGF0dHJpYnV0ZSBhbnkgRjsgfTtgKTsK
LSAgICAgIGlkbEFycmF5LmNvbGxhcHNlX3BhcnRpYWxzKCk7CisgICAgICAgIGludGVyZmFjZSBt
aXhpbiBNNCB7IGF0dHJpYnV0ZSBhbnkgYTQ7IH07CisgICAgICAgIHBhcnRpYWwgaW50ZXJmYWNl
IG1peGluIE00IHsgYXR0cmlidXRlIGFueSBhNDsgfTtgKTsKKyAgICAgIGlkbEFycmF5Lm1lcmdl
X3BhcnRpYWxzKCk7CisgICAgICBpZGxBcnJheS5tZXJnZV9taXhpbnMoKTsKICAgICB9KSgpOwog
Ci0gICAgLy8gTmFtZSBjbGFzaCAoZGlmZmVyZW50IG1peGlucykKKyAgICAvLyBOYW1lIGNsYXNo
IGJldHdlZW4gaW50ZXJmYWNlIGFuZCBtaXhpbgogICAgICgoKSA9PiB7CiAgICAgICBjb25zdCBp
ZGxBcnJheSA9IG5ldyBJZGxBcnJheSgpOwogICAgICAgaWRsQXJyYXkuYWRkX3VudGVzdGVkX2lk
bHMoYAotICAgICAgICBpbnRlcmZhY2UgbWl4aW4gQyB7IGF0dHJpYnV0ZSBhbnkgRjsgfTsKLSAg
ICAgICAgaW50ZXJmYWNlIEQgeyBhdHRyaWJ1dGUgYW55IEY7IH07Ci0gICAgICAgIEQgaW5jbHVk
ZXMgQztgKTsKLSAgICAgIGlkbEFycmF5LnRlc3QoKTsKKyAgICAgICAgaW50ZXJmYWNlIG1peGlu
IE01IHsgYXR0cmlidXRlIGFueSBhNTsgfTsKKyAgICAgICAgaW50ZXJmYWNlIEk1IHsgYXR0cmli
dXRlIGFueSBhNTsgfTsKKyAgICAgICAgSTUgaW5jbHVkZXMgTTU7YCk7CisgICAgICBpZGxBcnJh
eS5tZXJnZV9wYXJ0aWFscygpOworICAgICAgaWRsQXJyYXkubWVyZ2VfbWl4aW5zKCk7CiAgICAg
fSkoKTsKICAgPC9zY3JpcHQ+CiAgIDxzY3JpcHQgdHlwZT0idGV4dC9qc29uIiBpZD0iZXhwZWN0
ZWQiPgpAQCAtNTEsMjggKzc3LDUyIEBACiAgIH0sCiAgICJzdW1tYXJpemVkX3Rlc3RzIjogWwog
ICAgIHsKLSAgICAgICJuYW1lIjogIlBhcnRpYWwgaW50ZXJmYWNlIG1peGluIEE6IG9yaWdpbmFs
IGludGVyZmFjZSBtaXhpbiBkZWZpbmVkIiwKKyAgICAgICJuYW1lIjogIkkxIGluY2x1ZGVzIE0x
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSIsCisgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNT
IiwKKyAgICAgICJwcm9wZXJ0aWVzIjoge30sCisgICAgICAibWVzc2FnZSI6IG51bGwKKyAgICB9
LAorICAgIHsKKyAgICAgICJuYW1lIjogIkkyIGluY2x1ZGVzIE0yOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZSIsCisgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKKyAgICAgICJwcm9wZXJ0
aWVzIjoge30sCisgICAgICAibWVzc2FnZSI6IG51bGwKKyAgICB9LAorICAgIHsKKyAgICAgICJu
YW1lIjogIkk1IGluY2x1ZGVzIE01OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSIsCiAgICAgICAi
c3RhdHVzX3N0cmluZyI6ICJGQUlMIiwKICAgICAgICJwcm9wZXJ0aWVzIjoge30sCi0gICAgICAi
bWVzc2FnZSI6ICJhc3NlcnRfdHJ1ZTogT3JpZ2luYWwgaW50ZXJmYWNlIG1peGluIHNob3VsZCBi
ZSBkZWZpbmVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlIgorICAgICAgIm1lc3NhZ2UiOiAiYXNz
ZXJ0X3RydWU6IG1lbWJlciBhNSBpcyB1bmlxdWUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UiCisg
ICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBNMjog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUiLAorICAgICAgInN0YXR1c19zdHJpbmciOiAiUEFTUyIs
CisgICAgICAicHJvcGVydGllcyI6IHt9LAorICAgICAgIm1lc3NhZ2UiOiBudWxsCiAgICAgfSwK
ICAgICB7Ci0gICAgICAibmFtZSI6ICJQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBCOiBvcmlnaW5h
bCBpbnRlcmZhY2UgbWl4aW4gZGVmaW5lZCIsCisgICAgICAibmFtZSI6ICJQYXJ0aWFsIGludGVy
ZmFjZSBtaXhpbiBNMjogb3JpZ2luYWwgaW50ZXJmYWNlIG1peGluIGRlZmluZWQiLAogICAgICAg
InN0YXR1c19zdHJpbmciOiAiUEFTUyIsCiAgICAgICAicHJvcGVydGllcyI6IHt9LAogICAgICAg
Im1lc3NhZ2UiOiBudWxsCiAgICAgfSwKICAgICB7Ci0gICAgICAibmFtZSI6ICJQYXJ0aWFsIGlu
dGVyZmFjZSBtaXhpbiBCOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSIsCisgICAgICAibmFtZSI6
ICJQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBNMzogb3JpZ2luYWwgaW50ZXJmYWNlIG1peGluIGRl
ZmluZWQiLAogICAgICAgInN0YXR1c19zdHJpbmciOiAiRkFJTCIsCiAgICAgICAicHJvcGVydGll
cyI6IHt9LAotICAgICAgIm1lc3NhZ2UiOiAiYXNzZXJ0X3RydWU6IG1lbWJlciBGIGlzIHVuaXF1
ZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZSIKKyAgICAgICJtZXNzYWdlIjogImFzc2VydF90cnVl
OiBPcmlnaW5hbCBpbnRlcmZhY2UgbWl4aW4gc2hvdWxkIGJlIGRlZmluZWQgZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UiCiAgICAgfSwKICAgICB7Ci0gICAgICAibmFtZSI6ICJEIGluY2x1ZGVzIEM6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIiwKKyAgICAgICJuYW1lIjogIlBhcnRpYWwgaW50ZXJm
YWNlIG1peGluIE00OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSIsCiAgICAgICAic3RhdHVzX3N0
cmluZyI6ICJGQUlMIiwKICAgICAgICJwcm9wZXJ0aWVzIjoge30sCi0gICAgICAibWVzc2FnZSI6
ICJhc3NlcnRfdHJ1ZTogbWVtYmVyIEYgaXMgdW5pcXVlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
IgorICAgICAgIm1lc3NhZ2UiOiAiYXNzZXJ0X3RydWU6IG1lbWJlciBhNCBpcyB1bmlxdWUgZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UiCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJQYXJ0
aWFsIGludGVyZmFjZSBtaXhpbiBNNDogb3JpZ2luYWwgaW50ZXJmYWNlIG1peGluIGRlZmluZWQi
LAorICAgICAgInN0YXR1c19zdHJpbmciOiAiUEFTUyIsCisgICAgICAicHJvcGVydGllcyI6IHt9
LAorICAgICAgIm1lc3NhZ2UiOiBudWxsCiAgICAgfQogICBdLAogICAidHlwZSI6ICJjb21wbGV0
ZSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbEludGVyZmFj
ZS90ZXN0X3BhcnRpYWxfaW50ZXJmYWNlX29mLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRs
aGFybmVzcy9JZGxJbnRlcmZhY2UvdGVzdF9wYXJ0aWFsX2ludGVyZmFjZV9vZi5odG1sCmluZGV4
IGQwZTgzYWY5NjY0MTBjMGE2ZDQxNTExOTQ4ZTUyNjJjODRhNDdjNDYuLjY3MTE5NmNjNWRmZWRj
MjE0MGFhYWNjZWJjYzZmZjBkNzEyN2UzNWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25h
bC9pZGxoYXJuZXNzL0lkbEludGVyZmFjZS90ZXN0X3BhcnRpYWxfaW50ZXJmYWNlX29mLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJj
ZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsSW50ZXJmYWNlL3Rlc3RfcGFy
dGlhbF9pbnRlcmZhY2Vfb2YuaHRtbApAQCAtMzksNyArMzksNyBAQAogCiAgICAgICAgIFtFeHBv
c2VkPShXb3JrZXIpXQogICAgICAgICBwYXJ0aWFsIGludGVyZmFjZSBDIHt9O2ApOwotICAgICAg
aWRsQXJyYXkuY29sbGFwc2VfcGFydGlhbHMoKTsKKyAgICAgIGlkbEFycmF5Lm1lcmdlX3BhcnRp
YWxzKCk7CiAgICAgfSkoKTsKIAogICAgIC8vIEludmFsaWQgZXhwb3N1cmUKQEAgLTUxLDcgKzUx
LDcgQEAKICAgICAgIGlkbEFycmF5LmFkZF9pZGxzKGAKICAgICAgICAgW0V4cG9zZWQ9KERlZGlj
YXRlZFdvcmtlcildCiAgICAgICAgIHBhcnRpYWwgaW50ZXJmYWNlIEQge307YCk7Ci0gICAgICBp
ZGxBcnJheS5jb2xsYXBzZV9wYXJ0aWFscygpOworICAgICAgaWRsQXJyYXkubWVyZ2VfcGFydGlh
bHMoKTsKICAgICB9KSgpOwogCiAgICAgLy8gT3JpZ2luYWwgaXMgYSBuYW1lc3BhY2UsIG5vdCBh
biBpbnRlcmZhY2UuCkBAIC02MCwxNCArNjAsMTQgQEAKICAgICAgIGlkbEFycmF5LmFkZF9pZGxz
KGAKICAgICAgICAgcGFydGlhbCBpbnRlcmZhY2UgRSB7fTsKICAgICAgICAgbmFtZXNwYWNlIEUg
e307YCk7Ci0gICAgICBpZGxBcnJheS5jb2xsYXBzZV9wYXJ0aWFscygpOworICAgICAgaWRsQXJy
YXkubWVyZ2VfcGFydGlhbHMoKTsKICAgICB9KSgpOwogCiAgICAgKCgpID0+IHsKICAgICAgIGNv
bnN0IGlkbEFycmF5ID0gbmV3IElkbEFycmF5KCk7CiAgICAgICBpZGxBcnJheS5hZGRfaWRscyhg
CiAgICAgICAgIHBhcnRpYWwgaW50ZXJmYWNlIEYge307Ci0gICAgICAgIHBhcnRpYWwgaW50ZXJm
YWNlIG1peGluIEd7fTsKKyAgICAgICAgcGFydGlhbCBpbnRlcmZhY2UgbWl4aW4gRyB7fTsKICAg
ICAgIGApOwogICAgICAgaWRsQXJyYXkuYWRkX2RlcGVuZGVuY3lfaWRscyhgCiAgICAgICAgIGlu
dGVyZmFjZSBGIHt9OwpAQCAtODAsMTcgKzgwLDIwIEBACiAgICAgICAgIGludGVyZmFjZSBMIDog
RiB7fTsKICAgICAgIGApOwogICAgICAgdGVzdCgoKSA9PiB7CisgICAgICAgIC8vIENvbnZlcnQg
aWRsQXJyYXkuaW5jbHVkZXMgaW50byBhIE1hcCBmcm9tIG5hbWUgb2YgdGFyZ2V0IGludGVyZmFj
ZSB0bworICAgICAgICAvLyBuYW1lIG9mIGluY2x1ZGVkIG1peGluLiAoVGhpcyBhc3N1bWVzIGVh
Y2ggaW50ZXJmYWNlIGluY2x1ZGVzIGF0IG1vc3QKKyAgICAgICAgLy8gb25lIG1peGluLCBvdGhl
cndpc2UgbGF0ZXIgaW5jbHVkZXMgd291bGQgY2xvYmJlciBlYXJsaWVyIG9uZXMuKQorICAgICAg
ICBjb25zdCBpbmNsdWRlcyA9IG5ldyBNYXAoaWRsQXJyYXkuaW5jbHVkZXMubWFwKGkgPT4gW2ku
dGFyZ2V0LCBpLmluY2x1ZGVzXSkpOwogICAgICAgICAvLyBGIGlzIHRlc3RlZCwgc28gSCBpcyBh
IGRlcC4KLSAgICAgICAgYXNzZXJ0X3RydWUoJ0YnIGluIGlkbEFycmF5LmluY2x1ZGVzLCAnRnMg
aW5jbHVkZXMgc2hvdWxkIGJlIHBpY2tlZCB1cCcpOwotICAgICAgICBhc3NlcnRfdHJ1ZShpZGxB
cnJheS5pbmNsdWRlcy5GLmluY2x1ZGVzKCdIJyksICdIIHNob3VsZCBiZSBwaWNrZWQgdXAnKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhpbmNsdWRlcy5nZXQoJ0YnKSwgJ0gnLCAnRiBzaG91bGQg
YmUgcGlja2VkIHVwJyk7CiAgICAgICAgIC8vIEggaXMgbm90IHRlc3RlZCwgc28gSSBpcyBub3Qg
YSBkZXAuCi0gICAgICAgIGFzc2VydF9mYWxzZSgnSScgaW4gaWRsQXJyYXkuaW5jbHVkZXMsICdJ
IHNob3VsZCBiZSBpZ25vcmVkJyk7CisgICAgICAgIGFzc2VydF9mYWxzZShpbmNsdWRlcy5oYXMo
J0knKSwgJ0kgc2hvdWxkIGJlIGlnbm9yZWQnKTsKICAgICAgICAgLy8gRyBpcyBhIGRlcCwgc28g
SiBpcyBhIGRlcC4KLSAgICAgICAgYXNzZXJ0X3RydWUoJ0onIGluIGlkbEFycmF5LmluY2x1ZGVz
LCAnSiBzaG91bGQgYmUgcGlja2VkIHVwJyk7Ci0gICAgICAgIC8vIEJ1dCwgSyBpc24ndCBhIGRl
cCBqdXN0IGJlY2F1c2Ugb2YgSi4KKyAgICAgICAgYXNzZXJ0X2VxdWFscyhpbmNsdWRlcy5nZXQo
J0onKSwgJ0cnLCAnSiBzaG91bGQgYmUgcGlja2VkIHVwJyk7CisgICAgICAgIC8vIEsgaXNuJ3Qg
YSBkZXAgYmVjYXVzZSBKIGlzbid0IGRlZmluZWQuCiAgICAgICAgIGFzc2VydF9mYWxzZSgnSycg
aW4gaWRsQXJyYXkubWVtYmVycywgJ0sgc2hvdWxkIGJlIGlnbm9yZWQnKTsKLSAgICAgICAgLy8g
TCBpbmhlcml0cyBGLCBzbyBzaG91bGQgYmUgcGlja2VkIHVwLgotICAgICAgICBhc3NlcnRfZmFs
c2UoJ0wnIGluIGlkbEFycmF5Lm1lbWJlcnMsICdMIHNob3VsZCBiZSBwaWNrZWQgdXAnKTsKKyAg
ICAgICAgLy8gTCBpc24ndCBhIGRlcCBiZWNhdXNlIEYgaXMgdW50ZXN0ZWQuCisgICAgICAgIGFz
c2VydF9mYWxzZSgnTCcgaW4gaWRsQXJyYXkubWVtYmVycywgJ0wgc2hvdWxkIGJlIGlnbm9yZWQn
KTsKICAgICAgIH0sICdwYXJ0aWFsIG1peGluIGRlcCBpbXBsaWNhdGlvbnMnKTsKICAgICB9KSgp
OwogCkBAIC0xMDAsNyArMTAzLDcgQEAKICAgICAgIGlkbEFycmF5LmFkZF9pZGxzKGAKICAgICAg
ICAgaW50ZXJmYWNlIE0geyBhdHRyaWJ1dGUgYW55IEE7IH07CiAgICAgICAgIHBhcnRpYWwgaW50
ZXJmYWNlIE0geyBhdHRyaWJ1dGUgYW55IEE7IH07YCk7Ci0gICAgICBpZGxBcnJheS5jb2xsYXBz
ZV9wYXJ0aWFscygpOworICAgICAgaWRsQXJyYXkubWVyZ2VfcGFydGlhbHMoKTsKICAgICB9KSgp
OwogICA8L3NjcmlwdD4KICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2pzb24iIGlkPSJleHBlY3RlZCI+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxJbnRlcmZhY2Uv
dGVzdF9wcmltYXJ5X2ludGVyZmFjZV9vZi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhh
cm5lc3MvSWRsSW50ZXJmYWNlL3Rlc3RfcHJpbWFyeV9pbnRlcmZhY2Vfb2YuaHRtbAppbmRleCA1
Y2U0NTdjYWZkNGZhZmUyMjdkNGUwMDA4NTliMDliNjA0ZTkxNDE1Li5hYzRjMGIwMDBlYjY5ZmNi
YTY1YzdhOGE5NzBjYjdjYTlhNDdiZmZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwv
aWRsaGFybmVzcy9JZGxJbnRlcmZhY2UvdGVzdF9wcmltYXJ5X2ludGVyZmFjZV9vZi5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Vz
L3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbEludGVyZmFjZS90ZXN0X3ByaW1h
cnlfaW50ZXJmYWNlX29mLmh0bWwKQEAgLTM0LDE0ICszNCwxMyBAQCBPYmplY3QuZGVmaW5lUHJv
cGVydHkod2luZG93LkZvby5wcm90b3R5cGUsICJjb25zdHJ1Y3RvciIsIHsKICAgICBjb25maWd1
cmFibGU6IHRydWUsCiAgICAgdmFsdWU6IHdpbmRvdy5Gb28KICAgfSk7Ci1Gb28uX19wcm90b19f
ID0gRm9vUGFyZW50OworT2JqZWN0LnNldFByb3RvdHlwZU9mKEZvbywgRm9vUGFyZW50KTsKIEZv
by5wcm90b3R5cGVbU3ltYm9sLnRvU3RyaW5nVGFnXSA9ICJGb28iOwogCiB2YXIgaWRsQXJyYXkg
PSBuZXcgSWRsQXJyYXkoKTsKIGlkbEFycmF5LmFkZF91bnRlc3RlZF9pZGxzKCJpbnRlcmZhY2Ug
Rm9vUGFyZW50IHt9OyIpOwogaWRsQXJyYXkuYWRkX2lkbHMoCi0gICAgIltDb25zdHJ1Y3Rvcigp
XVxuIiArCi0gICAgImludGVyZmFjZSBGb28gOiBGb29QYXJlbnQge307IgorICAgICJpbnRlcmZh
Y2UgRm9vIDogRm9vUGFyZW50IHsgY29uc3RydWN0b3IoKTsgfTsiCiAgICk7CiBpZGxBcnJheS5h
ZGRfb2JqZWN0cyh7CiAgIEZvbzogWyJuZXcgRm9vKCkiXSwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMv
ZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbE5hbWVzcGFjZS90ZXN0X2F0dHJpYnV0ZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFtZXNwYWNlL3Rlc3RfYXR0cmlidXRl
Lmh0bWwKaW5kZXggY2E1ZWRmNDcyM2Q1YjVjMjA1NWMyZjAyNGQ5NTFlOTgxMjRjOGNkOS4uOWEw
OGRkNDAwYzFkMmEyOWU2MGUzYWY2MjZmZTg4MzM0NzIxODUwMyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0
cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFtZXNwYWNlL3Rlc3RfYXR0cmlidXRlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJj
ZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFtZXNwYWNlL3Rlc3RfYXR0
cmlidXRlLmh0bWwKQEAgLTcxLDYgKzcxLDE4IEBAIGlkbEFycmF5LnRlc3QoKTsKICAgICAgICJw
cm9wZXJ0aWVzIjoge30sCiAgICAgICAibWVzc2FnZSI6IG51bGwKICAgICB9LAorICAgIHsKKyAg
ICAgICJuYW1lIjogImZvbyBuYW1lc3BhY2U6IGhhcyBubyBsZW5ndGggcHJvcGVydHkiLAorICAg
ICAgInN0YXR1c19zdHJpbmciOiAiUEFTUyIsCisgICAgICAicHJvcGVydGllcyI6IHt9LAorICAg
ICAgIm1lc3NhZ2UiOiBudWxsCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJmb28gbmFt
ZXNwYWNlOiBoYXMgbm8gbmFtZSBwcm9wZXJ0eSIsCisgICAgICAic3RhdHVzX3N0cmluZyI6ICJQ
QVNTIiwKKyAgICAgICJwcm9wZXJ0aWVzIjoge30sCisgICAgICAibWVzc2FnZSI6IG51bGwKKyAg
ICB9LAogICAgIHsKICAgICAgICJuYW1lIjogImZvbyBuYW1lc3BhY2U6IGF0dHJpYnV0ZSB0cnV0
aCIsCiAgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMv
ZnVuY3Rpb25hbC9pZGxoYXJuZXNzL0lkbE5hbWVzcGFjZS90ZXN0X29wZXJhdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFtZXNwYWNlL3Rlc3Rfb3BlcmF0aW9u
Lmh0bWwKaW5kZXggNjBkN2Q0N2M5ZWVhNjRhODFkNTM5YWZhNmZkM2FjZDcyNTgxYzAwYi4uNjc5
OGZlOGNmYzY3NzNkMTIxYzljYmRjMWU1NTlmY2E0MzRhYzc1NyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0
cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFtZXNwYWNlL3Rlc3Rfb3BlcmF0aW9uLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJj
ZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFtZXNwYWNlL3Rlc3Rfb3Bl
cmF0aW9uLmh0bWwKQEAgLTU4LDEzICs1OCwxMyBAQCB2YXIgaWRsQXJyYXkgPSBuZXcgSWRsQXJy
YXkoKTsKIGlkbEFycmF5LmFkZF9pZGxzKGAKIFtFeHBvc2VkPVdpbmRvd10KIG5hbWVzcGFjZSBm
b28gewotICB2b2lkIFRydXRoKCk7Ci0gIHZvaWQgTGllcygpOworICB1bmRlZmluZWQgVHJ1dGgo
KTsKKyAgdW5kZWZpbmVkIExpZXMoKTsKIH07CiBbRXhwb3NlZD1XaW5kb3ddCiBuYW1lc3BhY2Ug
YmFyIHsKICAgW0xlZ2FjeVVuZm9yZ2VhYmxlXQotICB2b2lkIFRydXRoKCk7CisgIHVuZGVmaW5l
ZCBUcnV0aCgpOwogfTsKIFtFeHBvc2VkPVdpbmRvd10KIG5hbWVzcGFjZSBiYXogewpAQCAtMTEw
LDYgKzExMCwxOCBAQCBpZGxBcnJheS50ZXN0KCk7CiAgICAgICAicHJvcGVydGllcyI6IHt9LAog
ICAgICAgIm1lc3NhZ2UiOiBudWxsCiAgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJmb28g
bmFtZXNwYWNlOiBoYXMgbm8gbGVuZ3RoIHByb3BlcnR5IiwKKyAgICAgICJzdGF0dXNfc3RyaW5n
IjogIlBBU1MiLAorICAgICAgInByb3BlcnRpZXMiOiB7fSwKKyAgICAgICJtZXNzYWdlIjogbnVs
bAorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiZm9vIG5hbWVzcGFjZTogaGFzIG5vIG5h
bWUgcHJvcGVydHkiLAorICAgICAgInN0YXR1c19zdHJpbmciOiAiUEFTUyIsCisgICAgICAicHJv
cGVydGllcyI6IHt9LAorICAgICAgIm1lc3NhZ2UiOiBudWxsCisgICAgfSwKICAgICB7CiAgICAg
ICAibmFtZSI6ICJmb28gbmFtZXNwYWNlOiBvcGVyYXRpb24gVHJ1dGgoKSIsCiAgICAgICAic3Rh
dHVzX3N0cmluZyI6ICJQQVNTIiwKQEAgLTEyMiw3ICsxMzQsNiBAQCBpZGxBcnJheS50ZXN0KCk7
CiAgICAgICAicHJvcGVydGllcyI6IHt9LAogICAgICAgIm1lc3NhZ2UiOiAiYXNzZXJ0X293bl9w
cm9wZXJ0eTogbmFtZXNwYWNlIG9iamVjdCBtaXNzaW5nIG9wZXJhdGlvbiBcIkxpZXNcIiBleHBl
Y3RlZCBwcm9wZXJ0eSBcIkxpZXNcIiBtaXNzaW5nIgogICAgIH0sCi0KICAgICB7CiAgICAgICAi
bmFtZSI6ICJiYXIgbmFtZXNwYWNlOiBleHRlbmRlZCBhdHRyaWJ1dGVzIiwKICAgICAgICJzdGF0
dXNfc3RyaW5nIjogIlBBU1MiLApAQCAtMTUzLDYgKzE2NCwxOCBAQCBpZGxBcnJheS50ZXN0KCk7
CiAgICAgICAicHJvcGVydGllcyI6IHt9LAogICAgICAgIm1lc3NhZ2UiOiBudWxsCiAgICAgfSwK
KyAgICB7CisgICAgICAibmFtZSI6ICJiYXIgbmFtZXNwYWNlOiBoYXMgbm8gbGVuZ3RoIHByb3Bl
cnR5IiwKKyAgICAgICJzdGF0dXNfc3RyaW5nIjogIlBBU1MiLAorICAgICAgInByb3BlcnRpZXMi
OiB7fSwKKyAgICAgICJtZXNzYWdlIjogbnVsbAorICAgIH0sCisgICAgeworICAgICAgIm5hbWUi
OiAiYmFyIG5hbWVzcGFjZTogaGFzIG5vIG5hbWUgcHJvcGVydHkiLAorICAgICAgInN0YXR1c19z
dHJpbmciOiAiUEFTUyIsCisgICAgICAicHJvcGVydGllcyI6IHt9LAorICAgICAgIm1lc3NhZ2Ui
OiBudWxsCisgICAgfSwKICAgICB7CiAgICAgICAibmFtZSI6ICJiYXIgbmFtZXNwYWNlOiBvcGVy
YXRpb24gVHJ1dGgoKSIsCiAgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKQEAgLTE5MCw2
ICsyMTMsMTggQEAgaWRsQXJyYXkudGVzdCgpOwogICAgICAgInByb3BlcnRpZXMiOiB7fSwKICAg
ICAgICJtZXNzYWdlIjogbnVsbAogICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiYmF6IG5h
bWVzcGFjZTogaGFzIG5vIGxlbmd0aCBwcm9wZXJ0eSIsCisgICAgICAic3RhdHVzX3N0cmluZyI6
ICJQQVNTIiwKKyAgICAgICJwcm9wZXJ0aWVzIjoge30sCisgICAgICAibWVzc2FnZSI6IG51bGwK
KyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogImJheiBuYW1lc3BhY2U6IGhhcyBubyBuYW1l
IHByb3BlcnR5IiwKKyAgICAgICJzdGF0dXNfc3RyaW5nIjogIlBBU1MiLAorICAgICAgInByb3Bl
cnRpZXMiOiB7fSwKKyAgICAgICJtZXNzYWdlIjogbnVsbAorICAgIH0sCiAgICAgewogICAgICAg
Im5hbWUiOiAiYmF6IG5hbWVzcGFjZTogb3BlcmF0aW9uIExvbmdTdG9yeShhbnksIERPTVN0cmlu
Zy4uLikiLAogICAgICAgInN0YXR1c19zdHJpbmciOiAiUEFTUyIsCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rl
c3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxOYW1lc3BhY2UvdGVzdF9wYXJ0aWFsX25hbWVz
cGFjZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL2lkbGhhcm5lc3MvSWRsTmFtZXNwYWNlL3Rl
c3RfcGFydGlhbF9uYW1lc3BhY2UuaHRtbAppbmRleCBjMzI3YThiMDAxZDI3ZTU0MmI2YjVhODU4
YTA0MDBhMDQyYjNkM2Y3Li5jNjhhZGZhOTQxNzczZGQwYzQ3ZWQzYTc1ODEyNTEzZThjODc0ODI4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvaWRsaGFybmVzcy9JZGxOYW1lc3BhY2Uv
dGVzdF9wYXJ0aWFsX25hbWVzcGFjZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9pZGxo
YXJuZXNzL0lkbE5hbWVzcGFjZS90ZXN0X3BhcnRpYWxfbmFtZXNwYWNlLmh0bWwKQEAgLTQwLDcg
KzQwLDcgQEAKIAogICAgICAgICBbRXhwb3NlZD0oV29ya2VyKV0KICAgICAgICAgcGFydGlhbCBu
YW1lc3BhY2UgQyB7fTtgKTsKLSAgICAgIGlkbEFycmF5LmNvbGxhcHNlX3BhcnRpYWxzKCk7Cisg
ICAgICBpZGxBcnJheS5tZXJnZV9wYXJ0aWFscygpOwogICAgIH0pKCk7CiAKICAgICAvLyBJbnZh
bGlkIGV4cG9zdXJlCkBAIC01Miw3ICs1Miw3IEBACiAgICAgICBpZGxBcnJheS5hZGRfaWRscyhg
CiAgICAgICAgIFtFeHBvc2VkPShEZWRpY2F0ZWRXb3JrZXIpXQogICAgICAgICBwYXJ0aWFsIG5h
bWVzcGFjZSBEIHt9O2ApOwotICAgICAgaWRsQXJyYXkuY29sbGFwc2VfcGFydGlhbHMoKTsKKyAg
ICAgIGlkbEFycmF5Lm1lcmdlX3BhcnRpYWxzKCk7CiAgICAgfSkoKTsKIAogICAgIC8vIE9yaWdp
bmFsIGlzIGFuIGludGVyZmFjZSwgbm90IGEgbmFtZXNwYWNlLgpAQCAtNjEsNyArNjEsNyBAQAog
ICAgICAgaWRsQXJyYXkuYWRkX2lkbHMoYAogICAgICAgICBwYXJ0aWFsIG5hbWVzcGFjZSBFIHt9
OwogICAgICAgICBpbnRlcmZhY2UgRSB7fTtgKTsKLSAgICAgIGlkbEFycmF5LmNvbGxhcHNlX3Bh
cnRpYWxzKCk7CisgICAgICBpZGxBcnJheS5tZXJnZV9wYXJ0aWFscygpOwogICAgIH0pKCk7CiAg
IDwvc2NyaXB0PgogICA8c2NyaXB0IHR5cGU9InRleHQvanNvbiIgaWQ9ImV4cGVjdGVkIj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9zZXR1cC1mdW5jdGlvbi13b3JrZXIuanMgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0
L3Rlc3RzL2Z1bmN0aW9uYWwvc2V0dXAtZnVuY3Rpb24td29ya2VyLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgy
YzE0NTZhYTY0NDcyNjczNjFkOGNjODllMjg4NDBmYzQ5MTNiNDYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90
ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvc2V0dXAtZnVuY3Rpb24td29ya2VyLmpzCkBAIC0wLDAgKzEs
MTQgQEAKK2ltcG9ydFNjcmlwdHMoIi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiKTsKKworLy8g
UmVncmVzc2lvbiB0ZXN0IGZvciBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9pc3N1ZXMvMjcyOTksCisvLyB3aGVyZSB3ZSBicm9rZSB0aGUgYWJpbGl0eSBmb3IgYSBz
ZXR1cCBmdW5jdGlvbiBpbiBhIHdvcmtlciB0byBjb250YWluIGFuCisvLyBhc3NlcnRpb24gKGV2
ZW4gYSBwYXNzaW5nIG9uZSkuCitzZXR1cChmdW5jdGlvbigpIHsKKyAgICBhc3NlcnRfdHJ1ZSh0
cnVlLCAiVHJ1ZSBpcyB0cnVlIik7Cit9KTsKKworLy8gV2UgbXVzdCBkZWZpbmUgYXQgbGVhc3Qg
b25lIHRlc3QgZm9yIHRoZSBoYXJuZXNzLCB0aG91Z2ggaXQgaXMgbm90IHdoYXQgd2UKKy8vIGFy
ZSB0ZXN0aW5nIGhlcmUuCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIGFzc2VydF9mYWxzZShmYWxz
ZSwgIkZhbHNlIGlzIGZhbHNlIik7Cit9LCAnV29ya2VyIHRlc3QnKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qv
dGVzdHMvZnVuY3Rpb25hbC9zZXR1cC13b3JrZXItc2VydmljZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5j
dGlvbmFsL3NldHVwLXdvcmtlci1zZXJ2aWNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ5ZDlmNTRlMDc3
M2U0NWNkY2ZhNmZmZGNhZjBjZDVkMjk0OWNkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMv
ZnVuY3Rpb25hbC9zZXR1cC13b3JrZXItc2VydmljZS5odG1sCkBAIC0wLDAgKzEsODggQEAKKzwh
RE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIG5hbWU9InZhcmlhbnQiIGNvbnRl
bnQ9Ij9rZWVwLXByb21pc2UiPgorPHRpdGxlPlNldHVwIGZ1bmN0aW9uIGluIGEgc2VydmljZSB3
b3JrZXI8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3ZhcmlhbnRzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGgxPlNldHVwIGZ1bmN0aW9uIGluIGEgc2VydmljZSB3b3JrZXI8L2gxPgor
PHA+VGhpcyB0ZXN0IGFzc3VtZXMgdGhhdCB0aGUgYnJvd3NlciBzdXBwb3J0cyA8YSBocmVmPSJo
dHRwOi8vd3d3LnczLm9yZy9UUi9zZXJ2aWNlLXdvcmtlcnMvIj5TZXJ2aWNlV29ya2VyczwvYT4u
Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorCis8c2NyaXB0PgordGVzdChmdW5jdGlvbih0KSB7Cisg
ICAgYXNzZXJ0X3RydWUoInNlcnZpY2VXb3JrZXIiIGluIG5hdmlnYXRvciwKKyAgICAgICAgICAg
ICAgICAibmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIgZXhpc3RzIik7Cit9LCAiQnJvd3NlciBzdXBw
b3J0cyBTZXJ2aWNlV29ya2VyIik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbigpIHsKKyAgICAv
LyBTaW5jZSB0aGUgc2VydmljZSB3b3JrZXIgcmVnaXN0cmF0aW9uIGNvdWxkIGJlIGluIGFuIGlu
ZGV0ZXJtaW5hdGUKKyAgICAvLyBzdGF0ZSAoZHVlIHRvLCBmb3IgZXhhbXBsZSwgYSBwcmV2aW91
cyB0ZXN0IHJ1biBmYWlsaW5nKSwgd2Ugc3RhcnQgYnkKKyAgICAvLyB1bnJlZ3N0ZXJpbmcgb3Vy
IHNlcnZpY2Ugd29ya2VyIGFuZCB0aGVuIHJlZ2lzdGVyaW5nIGl0IGFnYWluLgorICAgIHZhciBz
Y29wZSA9ICJzZXJ2aWNlLXdvcmtlci1zY29wZSI7CisgICAgdmFyIHdvcmtlcl91cmwgPSAic2V0
dXAtZnVuY3Rpb24td29ya2VyLmpzIjsKKworICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdv
cmtlci5yZWdpc3Rlcih3b3JrZXJfdXJsLCB7c2NvcGU6IHNjb3BlfSkKKyAgICAgICAgLnRoZW4o
ZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9u
LnVucmVnaXN0ZXIoKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcih3b3JrZXJfdXJsLCB7c2Nv
cGU6IHNjb3BlfSk7CisgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Cisg
ICAgICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICAgICAgfSk7CisKKyAg
ICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICAg
ICAgICAgICAgcmVnaXN0cmF0aW9uLmFkZEV2ZW50TGlzdGVuZXIoInVwZGF0ZWZvdW5kIiwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVnaXN0cmF0aW9uLmluc3Rh
bGxpbmcpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0p
LnRoZW4oZnVuY3Rpb24od29ya2VyKSB7CisgICAgICAgICAgICBmZXRjaF90ZXN0c19mcm9tX3dv
cmtlcih3b3JrZXIpOworICAgICAgICB9KTsKK30sICJSZWdpc3RlciBTZXJ2aWNlV29ya2VyIik7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qc29uIiBpZD0iZXhwZWN0ZWQiPgorewor
ICAic3VtbWFyaXplZF9zdGF0dXMiOiB7CisgICAgInN0YXR1c19zdHJpbmciOiAiT0siLAorICAg
ICJtZXNzYWdlIjogbnVsbAorICB9LAorICAic3VtbWFyaXplZF90ZXN0cyI6IFsKKyAgICB7Cisg
ICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIiwKKyAgICAgICJuYW1lIjogIkJyb3dzZXIgc3Vw
cG9ydHMgU2VydmljZVdvcmtlciIsCisgICAgICAicHJvcGVydGllcyI6IHt9LAorICAgICAgIm1l
c3NhZ2UiOiBudWxsCisgICAgfSwKKyAgICB7CisgICAgICAibWVzc2FnZSI6IG51bGwsCisgICAg
ICAibmFtZSI6ICJSZWdpc3RlciBTZXJ2aWNlV29ya2VyIiwKKyAgICAgICJwcm9wZXJ0aWVzIjog
e30sCisgICAgICAic3RhdHVzX3N0cmluZyI6ICJQQVNTIgorICAgIH0sCisgICAgeworICAgICAg
Im1lc3NhZ2UiOiBudWxsLAorICAgICAgIm5hbWUiOiAiV29ya2VyIHRlc3QiLAorICAgICAgInBy
b3BlcnRpZXMiOiB7fSwKKyAgICAgICJzdGF0dXNfc3RyaW5nIjogIlBBU1MiCisgICAgfQorICBd
LAorICAic3VtbWFyaXplZF9hc3NlcnRzIjogWworICAgIHsKKyAgICAgICJhc3NlcnRfbmFtZSI6
ICJhc3NlcnRfdHJ1ZSIsCisgICAgICAidGVzdCI6ICJCcm93c2VyIHN1cHBvcnRzIFNlcnZpY2VX
b3JrZXIiLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgICJ0cnVlIiwKKyAgICAgICAgIlwibmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIgZXhpc3RzXCIiCisgICAgICBdLAorICAgICAgInN0YXR1cyI6
IDAKKyAgICB9CisgIF0sCisgICJ0eXBlIjogImNvbXBsZXRlIgorfQorPC9zY3JpcHQ+Cis8L2Jv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL2Z1bmN0aW9uYWwvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rl
c3RzL2Z1bmN0aW9uYWwvdzNjLWltcG9ydC5sb2cKaW5kZXggMTJiODBjMTMwNDg2YTMzOGJkYzY2
ODc3ZTU1ZThmZTliZDFjNTQ4NS4uYTA2YzNhNTI4MGQ2MjM4YjFiODkyYTU4ZDcwMWZkODlkYjAy
MTBkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL3czYy1pbXBvcnQubG9nCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rl
c3QvdGVzdHMvZnVuY3Rpb25hbC93M2MtaW1wb3J0LmxvZwpAQCAtNDIsNiArNDIsOCBAQCBMaXN0
IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9wcm9taXNlLXdpdGgtc3luYy5odG1sCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dC90ZXN0cy9mdW5jdGlvbmFsL3Byb21pc2UuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvZnVuY3Rpb25hbC9xdWV1
ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNv
dXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL3NldHVwLWZ1bmN0aW9uLXdvcmtlci5qcworL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qv
dGVzdHMvZnVuY3Rpb25hbC9zZXR1cC13b3JrZXItc2VydmljZS5odG1sCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5j
dGlvbmFsL3NpbmdsZS1wYWdlLXRlc3QtZmFpbC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL3Np
bmdsZS1wYWdlLXRlc3Qtbm8tYXNzZXJ0aW9ucy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy9mdW5jdGlvbmFsL3Np
bmdsZS1wYWdlLXRlc3Qtbm8tYm9keS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRs
QXJyYXkvaXNfanNvbl90eXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsQXJyYXkvaXNfanNvbl90
eXBlLmh0bWwKaW5kZXggYWIwNjhiMjljYWMwZDcwODM0NzFkNWQ1MjVmYjRjMjcxMjRkOWY3Ny4u
YmQ4OWM5MTExMGQ4N2ZlY2ZiZTU2ZjYzOWYzNmQ4M2E1M2JkYmZmNSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90
ZXN0cy91bml0L0lkbEFycmF5L2lzX2pzb25fdHlwZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9J
ZGxBcnJheS9pc19qc29uX3R5cGUuaHRtbApAQCAtMTMxLDE1ICsxMzEsMTAgQEAKICAgICB0ZXN0
KGZ1bmN0aW9uKCkgewogICAgICAgICB2YXIgaWRsID0gbmV3IElkbEFycmF5KCk7CiAgICAgICAg
IGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEZvbyB7IH07IGludGVyZmFjZSBtaXhp
biBCYXIgeyBET01TdHJpbmcgdG9KU09OKCk7IH07IEZvbyBpbmNsdWRlcyBCYXI7Jyk7CisgICAg
ICAgIGlkbC5tZXJnZV9taXhpbnMoKTsKICAgICAgICAgYXNzZXJ0X3RydWUoaWRsLmlzX2pzb25f
dHlwZSh0eXBlRnJvbSgiRm9vIikpKTsKICAgICB9LCAnc2hvdWxkIHJldHVybiB0cnVlIGZvciBp
bnRlcmZhY2VzIHdoaWNoIG1peGluIGFuIGludGVyZmFjZSB3aGljaCBkZWNsYXJlIGEgdG9KU09O
IG9wZXJhdGlvbicpOwogCi0vLyAgICB0ZXN0KGZ1bmN0aW9uKCkgewotLy8gICAgICAgIHZhciBp
ZGwgPSBuZXcgSWRsQXJyYXkoKTsKLS8vICAgICAgICBpZGwuYWRkX3VudGVzdGVkX2lkbHMoJ2lu
dGVyZmFjZSBGb28geyB9OyBpbnRlcmZhY2UgQmFyIHsgfTsgaW50ZXJmYWNlIEJheiB7IERPTVN0
cmluZyB0b0pTT04oKTsgfTsgRm9vIGltcGxlbWVudHMgQmFyOyBCYXIgaW1wbGVtZW50cyBCYXo7
Jyk7Ci0vLyAgICAgICAgYXNzZXJ0X3RydWUoaWRsLmlzX2pzb25fdHlwZSh0eXBlRnJvbSgiRm9v
IikpKTsKLS8vICAgIH0sICdzaG91bGQgcmV0dXJuIHRydWUgZm9yIGludGVyZmFjZXMgd2hpY2gg
bWl4aW4gYW4gaW50ZXJmYWNlIHdoaWNoIGl0c2VsZiBtaXhlcyBpbiBhbiBpbnRlcmZhY2Ugd2hp
Y2ggZGVjbGFyZXMgYSB0b0pTT04gb3BlcmF0aW9uJyk7Ci0KICAgICB0ZXN0KGZ1bmN0aW9uKCkg
ewogICAgICAgICB2YXIgaWRsID0gbmV3IElkbEFycmF5KCk7CiAgICAgICAgIGlkbC5hZGRfdW50
ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEZvbyB7IH07Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3Vu
aXQvSWRsRGljdGlvbmFyeS9nZXRfaW5oZXJpdGFuY2Vfc3RhY2suaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5p
dC9JZGxEaWN0aW9uYXJ5L2dldF9pbmhlcml0YW5jZV9zdGFjay5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwNTI1OTJkZDQ2MDdkYmRhNmNjMTc2MDMyNDlhMzhhZDUzYjQwYzlj
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMv
dW5pdC9JZGxEaWN0aW9uYXJ5L2dldF9pbmhlcml0YW5jZV9zdGFjay5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNDcgKzAsMCBAQAotPCFET0NUWVBFIEhUTUw+Ci08aHRtbD4KLTxoZWFkPgotPHRp
dGxlPklkbERpY3Rpb25hcnkucHJvdG90eXBlLmdldF9pbmhlcml0YW5jZV9zdGFjaygpPC90aXRs
ZT4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0ibG9nIj48L2Rpdj4KLTxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL1dlYklETFBhcnNlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9p
ZGxoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9pZGwtaGVscGVy
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0gICAgInVzZSBzdHJpY3QiOwotICAgIHRlc3QoZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIHZhciBzdGFjayA9IGRpY3Rpb25hcnlGcm9tKCdkaWN0aW9uYXJ5
IEEgeyB9OycpLmdldF9pbmhlcml0YW5jZV9zdGFjaygpOwotICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKHN0YWNrLm1hcChkID0+IGQubmFtZSksIFsiQSJdKTsKLSAgICB9LCAnc2hvdWxkIHJl
dHVybiBhbiBhcnJheSB0aGF0IGluY2x1ZGVzIGl0c2VsZi4nKTsKLQotICAgIHRlc3QoZnVuY3Rp
b24oKSB7Ci0gICAgICAgIHZhciBkID0gZGljdGlvbmFyeUZyb20oJ2RpY3Rpb25hcnkgQSA6IEIg
eyB9OycpOwotICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKEVycm9yLCBfID0+IGQuZ2V0X2luaGVy
aXRhbmNlX3N0YWNrKCkpOwotICAgIH0sICJzaG91bGQgdGhyb3cgZm9yIGRpY3Rpb25hcmllcyB3
aGljaCBpbmhlcml0IGZyb20gYW5vdGhlciBkaWN0aW9uYXJ5IHdoaWNoIHdhc24ndCBhZGRlZCB0
byB0aGUgSWRsQXJyYXkiKTsKLQotICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBp
ZGwgPSBuZXcgSWRsQXJyYXkoKTsKLSAgICAgICAgaWRsLmFkZF9pZGxzKCdkaWN0aW9uYXJ5IEEg
OiBCIHsgfTsnKTsKLSAgICAgICAgaWRsLmFkZF91bnRlc3RlZF9pZGxzKCdkaWN0aW9uYXJ5IEIg
OiBDIHsgfTsgZGljdGlvbmFyeSBDIHsgfTsnKTsKLSAgICAgICAgdmFyIEEgPSBpZGwubWVtYmVy
c1siQSJdOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKEEuZ2V0X2luaGVyaXRhbmNlX3N0
YWNrKCkubWFwKGQgPT4gZC5uYW1lKSwgWyJBIiwgIkIiLCAiQyJdKTsKLSAgICB9LCAnc2hvdWxk
IHJldHVybiBhbiBhcnJheSBvZiBpbmhlcml0ZWQgZGljdGlvbmFyaWVzIGluIG9yZGVyIG9mIGlu
aGVyaXRhbmNlLCBzdGFydGluZyB3aXRoIGl0c2VsZi4nKTsKLQotICAgIHRlc3QoZnVuY3Rpb24g
KCkgewotICAgICAgbGV0IGkgPSBuZXcgSWRsQXJyYXkoKTsKLSAgICAgIGkuYWRkX3VudGVzdGVk
X2lkbHMoJ2RpY3Rpb25hcnkgQSA6IEIge307Jyk7Ci0gICAgICBpLmFzc2VydF90aHJvd3MobmV3
IElkbEhhcm5lc3NFcnJvcignQSBpbmhlcml0cyBCLCBidXQgQiBpcyB1bmRlZmluZWQuJyksIGkg
PT4gaS50ZXN0KCkpOwotICAgIH0sICdBIDogQiB3aXRoIEIgdW5kZWNsYXJlZCBzaG91bGQgdGhy
b3cgSWRsSGFybmVzc0Vycm9yJyk7Ci0KLSAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAgIGxl
dCBpID0gbmV3IElkbEFycmF5KCk7Ci0gICAgICBpLmFkZF91bnRlc3RlZF9pZGxzKCdkaWN0aW9u
YXJ5IEEgOiBCIHt9OycpOwotICAgICAgaS5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEIg
e307Jyk7Ci0gICAgICBpLmFzc2VydF90aHJvd3MobmV3IElkbEhhcm5lc3NFcnJvcignQSBpbmhl
cml0cyBCLCBidXQgQSBpcyBub3QgYW4gaW50ZXJmYWNlLicpLCBpID0+IGkudGVzdCgpKTsKLSAg
ICB9LCAnZGljdGlvbmFyeSBBIDogQiB3aXRoIEIgaW50ZXJmYWNlIHNob3VsZCB0aHJvdyBJZGxI
YXJuZXNzRXJyb3InKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dC90ZXN0cy91bml0L0lkbERpY3Rpb25hcnkvZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2su
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3Vy
Y2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxEaWN0aW9uYXJ5L2dldF9yZXZlcnNlX2luaGVyaXRhbmNl
X3N0YWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDE4YmNkZWM5MmFjMjI4MjJlZjczYjljNDI0OWU4MGNj
NmFjZTZiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxEaWN0aW9uYXJ5L2dl
dF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrLmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPCFET0NU
WVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPklkbERpY3Rpb25hcnkucHJvdG90eXBl
LmdldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrKCk8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+
Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL2lkbGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2lkbC1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KKyAgICAidXNlIHN0cmljdCI7CisgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAg
dmFyIHN0YWNrID0gZGljdGlvbmFyeUZyb20oJ2RpY3Rpb25hcnkgQSB7IH07JykuZ2V0X3JldmVy
c2VfaW5oZXJpdGFuY2Vfc3RhY2soKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzdGFj
ay5tYXAoZCA9PiBkLm5hbWUpLCBbIkEiXSk7CisgICAgfSwgJ3Nob3VsZCByZXR1cm4gYW4gYXJy
YXkgdGhhdCBpbmNsdWRlcyBpdHNlbGYuJyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAg
ICAgICB2YXIgZCA9IGRpY3Rpb25hcnlGcm9tKCdkaWN0aW9uYXJ5IEEgOiBCIHsgfTsnKTsKKyAg
ICAgICAgYXNzZXJ0X3Rocm93c19qcyhFcnJvciwgXyA9PiBkLmdldF9yZXZlcnNlX2luaGVyaXRh
bmNlX3N0YWNrKCkpOworICAgIH0sICJzaG91bGQgdGhyb3cgZm9yIGRpY3Rpb25hcmllcyB3aGlj
aCBpbmhlcml0IGZyb20gYW5vdGhlciBkaWN0aW9uYXJ5IHdoaWNoIHdhc24ndCBhZGRlZCB0byB0
aGUgSWRsQXJyYXkiKTsKKworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBpZGwg
PSBuZXcgSWRsQXJyYXkoKTsKKyAgICAgICAgaWRsLmFkZF9pZGxzKCdkaWN0aW9uYXJ5IEEgOiBC
IHsgfTsnKTsKKyAgICAgICAgaWRsLmFkZF91bnRlc3RlZF9pZGxzKCdkaWN0aW9uYXJ5IEIgOiBD
IHsgfTsgZGljdGlvbmFyeSBDIHsgfTsnKTsKKyAgICAgICAgdmFyIEEgPSBpZGwubWVtYmVyc1si
QSJdOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKEEuZ2V0X3JldmVyc2VfaW5oZXJpdGFu
Y2Vfc3RhY2soKS5tYXAoZCA9PiBkLm5hbWUpLCBbIkMiLCAiQiIsICJBIl0pOworICAgIH0sICdz
aG91bGQgcmV0dXJuIGFuIGFycmF5IG9mIGRpY3Rpb25hcmllcyBpbiBvcmRlciBvZiBpbmhlcml0
YW5jZSwgc3RhcnRpbmcgd2l0aCB0aGUgYmFzZSBkaWN0aW9uYXJ5Jyk7CisKKyAgICB0ZXN0KGZ1
bmN0aW9uICgpIHsKKyAgICAgIGxldCBpID0gbmV3IElkbEFycmF5KCk7CisgICAgICBpLmFkZF91
bnRlc3RlZF9pZGxzKCdkaWN0aW9uYXJ5IEEgOiBCIHt9OycpOworICAgICAgaS5hc3NlcnRfdGhy
b3dzKG5ldyBJZGxIYXJuZXNzRXJyb3IoJ0EgaW5oZXJpdHMgQiwgYnV0IEIgaXMgdW5kZWZpbmVk
LicpLCBpID0+IGkudGVzdCgpKTsKKyAgICB9LCAnQSA6IEIgd2l0aCBCIHVuZGVjbGFyZWQgc2hv
dWxkIHRocm93IElkbEhhcm5lc3NFcnJvcicpOworCisgICAgdGVzdChmdW5jdGlvbiAoKSB7Cisg
ICAgICBsZXQgaSA9IG5ldyBJZGxBcnJheSgpOworICAgICAgaS5hZGRfdW50ZXN0ZWRfaWRscygn
ZGljdGlvbmFyeSBBIDogQiB7fTsnKTsKKyAgICAgIGkuYWRkX3VudGVzdGVkX2lkbHMoJ2ludGVy
ZmFjZSBCIHt9OycpOworICAgICAgaS5hc3NlcnRfdGhyb3dzKG5ldyBJZGxIYXJuZXNzRXJyb3Io
J0EgaW5oZXJpdHMgQiwgYnV0IEEgaXMgbm90IGFuIGludGVyZmFjZS4nKSwgaSA9PiBpLnRlc3Qo
KSk7CisgICAgfSwgJ2RpY3Rpb25hcnkgQSA6IEIgd2l0aCBCIGludGVyZmFjZSBzaG91bGQgdGhy
b3cgSWRsSGFybmVzc0Vycm9yJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3Vy
Y2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxEaWN0aW9uYXJ5L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0
cy91bml0L0lkbERpY3Rpb25hcnkvdzNjLWltcG9ydC5sb2cKaW5kZXggMDRiN2Y5MTE1ZjNlMWJm
ZGFjNmZhOTI5ODdiMWRkZmU4ODAyZGU0My4uYmFlMDRjY2E3NmQ1OGEzMDJkYWE4YzZjNDk3ZDVi
YWYxOGJhNDgyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbERpY3Rpb25hcnkvdzNjLWlt
cG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbERpY3Rpb25hcnkvdzNjLWltcG9ydC5sb2cK
QEAgLTE0LDUgKzE0LDUgQEAgUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CiBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0
L0lkbERpY3Rpb25hcnkvZ2V0X2luaGVyaXRhbmNlX3N0YWNrLmh0bWwKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQv
SWRsRGljdGlvbmFyeS9nZXRfcmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjay5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0
cy91bml0L0lkbERpY3Rpb25hcnkvdGVzdF9wYXJ0aWFsX2RpY3Rpb25hcnkuaHRtbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJj
ZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9jb25zdHJ1Y3RvcnMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVz
dHMvdW5pdC9JZGxJbnRlcmZhY2UvY29uc3RydWN0b3JzLmh0bWwKaW5kZXggOTNjYzdmNDJjYzU1
ODhmN2Y4ZjBjYjRjZmNkYjQ1NzMxZGRjZjhhOS4uZTllZTNmODY4MGFjMWI3MjE0YTM0YjI4MTQ1
MjI0MzJiNTU0ZDQ4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9jb25z
dHJ1Y3RvcnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2NvbnN0cnVjdG9y
cy5odG1sCkBAIC04LDkgKzgsMTAgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9pZGwtaGVscGVy
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAidXNlIHN0cmljdCI7CisvLyBbQ29uc3RydWN0b3Jd
IGV4dGVuZGVkIGF0dHJpYnV0ZSBzaG91bGQgbm90IGJlIHN1cHBvcnRlZDoKIHRlc3QoZnVuY3Rp
b24oKSB7CiAgICAgdmFyIGkgPSBpbnRlcmZhY2VGcm9tKCdbQ29uc3RydWN0b3JdIGludGVyZmFj
ZSBBIHsgfTsnKTsKLSAgICBhc3NlcnRfZXF1YWxzKGkuY29uc3RydWN0b3JzKCkubGVuZ3RoLCAx
KTsKKyAgICBhc3NlcnRfZXF1YWxzKGkuY29uc3RydWN0b3JzKCkubGVuZ3RoLCAwKTsKIH0sICdJ
bnRlcmZhY2Ugd2l0aCBDb25zdHJ1Y3RvciBleHRlbmRlZCBhdHRyaWJ1dGUuJyk7CiAKIHRlc3Qo
ZnVuY3Rpb24oKSB7CkBAIC0xOSw3ICsyMCw3IEBAIHRlc3QoZnVuY3Rpb24oKSB7CiB9LCAnSW50
ZXJmYWNlIHdpdGggY29uc3RydWN0b3IgbWV0aG9kJyk7CiAKIHRlc3QoZnVuY3Rpb24oKSB7Ci0g
ICAgdmFyIGkgPSBpbnRlcmZhY2VGcm9tKCdbQ29uc3RydWN0b3JdIGludGVyZmFjZSBBIHsgY29u
c3RydWN0b3IoKTsgfTsnKTsKKyAgICB2YXIgaSA9IGludGVyZmFjZUZyb20oJ2ludGVyZmFjZSBB
IHsgY29uc3RydWN0b3IoKTsgY29uc3RydWN0b3IoYW55IHZhbHVlKTsgfTsnKTsKICAgICBhc3Nl
cnRfZXF1YWxzKGkuY29uc3RydWN0b3JzKCkubGVuZ3RoLCAyKTsKLX0sICdJbnRlcmZhY2Ugd2l0
aCBib3RoJyk7Cit9LCAnSW50ZXJmYWNlIHdpdGggY29uc3RydWN0b3Igb3ZlcmxvYWRzJyk7CiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvZGVmYXVsdF90
b19qc29uX29wZXJhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9kZWZhdWx0
X3RvX2pzb25fb3BlcmF0aW9uLmh0bWwKaW5kZXggZTAzZWE4YjAzODc0Y2U3YWNmZmRjNzg0NjNh
YjdjZjMzYWQyMjZkMC4uNWFkZTdkMGQyODJhMzQ2ZGU2YjFmMDU0NDU3ZjQzMTM3NDg0Mzc3OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9kZWZhdWx0X3RvX2pzb25fb3Bl
cmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9kZWZhdWx0X3RvX2pz
b25fb3BlcmF0aW9uLmh0bWwKQEAgLTEwLDQ0ICsxMCw2IEBACiA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy9XZWJJRExQYXJzZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
aWRsaGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vaWRsLWhlbHBl
ci5qcyI+PC9zY3JpcHQ+Ci08cHJlIGlkPWZyYWdtZW50cz4KLSAgICBpbnRlcmZhY2UgQSA6IEIg
ewotICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBhOwotICAgIH07Ci0KLSAgICBpbnRlcmZhY2Ug
QiA6IEMgewotICAgICAgW0RlZmF1bHRdIG9iamVjdCB0b0pTT04oKTsKLSAgICAgIGF0dHJpYnV0
ZSBsb25nIGI7Ci0gICAgfTsKLQotICAgIGludGVyZmFjZSBDIHsKLSAgICAgIGF0dHJpYnV0ZSBE
T01TdHJpbmcgYzsKLSAgICB9OwotCi0gICAgaW50ZXJmYWNlIG1peGluIEQgewotICAgICAgW0Rl
ZmF1bHRdIG9iamVjdCB0b0pTT04oKTsKLSAgICAgIGF0dHJpYnV0ZSBmbG9hdCBkOwotICAgIH07
Ci0KLSAgICBpbnRlcmZhY2UgbWl4aW4gRyB7Ci0gICAgICBbRGVmYXVsdF0gb2JqZWN0IHRvSlNP
TigpOwotICAgICAgYXR0cmlidXRlIG9jdGV0IGc7Ci0gICAgfTsKLQotICAgIGludGVyZmFjZSBt
aXhpbiBIIHsKLSAgICAgIFtEZWZhdWx0XSBvYmplY3QgdG9KU09OKCk7Ci0gICAgICBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGg7Ci0gICAgfTsKLQotICAgIGludGVyZmFjZSBtaXhpbiBJIHsKLSAgICAg
IFtEZWZhdWx0XSBvYmplY3QgdG9KU09OKCk7Ci0gICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBpOwot
ICAgIH07Ci0KLSAgICBBIGluY2x1ZGVzIEc7Ci0gICAgQSBpbmNsdWRlcyBIOwotICAgIEIgaW5j
bHVkZXMgRDsKLTwvcHJlPgogPHNjcmlwdD4KICAgICAidXNlIHN0cmljdCI7CiAgICAgdGVzdChm
dW5jdGlvbigpIHsKQEAgLTEyOCw0NSArOTAsMjQgQEAKIAogICAgIHRlc3QoZnVuY3Rpb24oKSB7
CiAgICAgICAgIHZhciBjb250ZXh0ID0gbmV3IElkbEFycmF5KCk7Ci0gICAgICAgIGNvbnRleHQu
YWRkX2lkbHMoImludGVyZmFjZSBBIDogQiB7IFtEZWZhdWx0XSBvYmplY3QgdG9KU09OKCk7IGF0
dHJpYnV0ZSBET01TdHJpbmcgYTsgfTsiKTsKLSAgICAgICAgY29udGV4dC5hZGRfaWRscygiaW50
ZXJmYWNlIEIgeyBvYmplY3QgdG9KU09OKCk7IGF0dHJpYnV0ZSBsb25nIGI7IH07Iik7Ci0gICAg
ICAgIHZhciBtYXAgPSBjb250ZXh0Lm1lbWJlcnMuQS5kZWZhdWx0X3RvX2pzb25fb3BlcmF0aW9u
KCk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMobWFwLnNpemUsIDEpOwotICAgICAgICBhc3NlcnRf
dHJ1ZShtYXAuaGFzKCJhIikpOwotICAgICAgICBhc3NlcnRfZmFsc2UobWFwLmhhcygiYiIpKTsK
LSAgICAgICAgYXNzZXJ0X2VxdWFscyhtYXAuZ2V0KCJhIikuaWRsVHlwZSwgIkRPTVN0cmluZyIp
OworICAgICAgICBjb250ZXh0LmFkZF9pZGxzKCJpbnRlcmZhY2UgQSB7IFtEZWZhdWx0XSBvYmpl
Y3QgdG9KU09OKCk7IGF0dHJpYnV0ZSBET01TdHJpbmcgYTsgfTsiKTsKKyAgICAgICAgY29udGV4
dC5hZGRfaWRscygiaW50ZXJmYWNlIEIgOiBBIHsgYXR0cmlidXRlIGFueSBiOyB9OyIpOworICAg
ICAgICBjb250ZXh0LmFkZF9pZGxzKCJpbnRlcmZhY2UgQyA6IEIgeyBbRGVmYXVsdF0gb2JqZWN0
IHRvSlNPTigpOyBhdHRyaWJ1dGUgbG9uZyBjOyB9OyIpOworICAgICAgICB2YXIgbWFwID0gY29u
dGV4dC5tZW1iZXJzLkMuZGVmYXVsdF90b19qc29uX29wZXJhdGlvbigpOworICAgICAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKFsuLi5tYXAua2V5cygpXSwgWyJhIiwgImMiXSk7CisgICAgICAgIGFz
c2VydF9hcnJheV9lcXVhbHMoWy4uLm1hcC52YWx1ZXMoKV0ubWFwKHYgPT4gdi5pZGxUeXBlKSwg
WyJET01TdHJpbmciLCAibG9uZyJdKTsKICAgICB9LCAnc2hvdWxkIHJldHVybiBhbiBvcmRlcmVk
IG1hcCB0aGF0IGlnbm9yZXMgYXR0cmlidXRlcyBvZiBpbmhlcml0ZWQgaW50ZXJmYWNlcyB3aGlj
aCBkbyBub3QgZGVjbGFyZSBhIFtEZWZhdWx0XSB0b0pTT04gb3BlcmF0aW9uLicpOwogCiAgICAg
dGVzdChmdW5jdGlvbigpIHsKICAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgSWRsQXJyYXkoKTsK
LSAgICAgICAgY29udGV4dC5hZGRfaWRscygiaW50ZXJmYWNlIEEgeyBbRGVmYXVsdF0gb2JqZWN0
IHRvSlNPTigpOyBhdHRyaWJ1dGUgRE9NU3RyaW5nIGE7IH07Iik7Ci0gICAgICAgIGNvbnRleHQu
YWRkX2lkbHMoImludGVyZmFjZSBtaXhpbiBOIHsgW0RlZmF1bHRdIG9iamVjdCB0b0pTT04oKTsg
YXR0cmlidXRlIGxvbmcgbjsgfTsiKTsKLSAgICAgICAgY29udGV4dC5hZGRfaWRscygiQSBpbmNs
dWRlcyBOOyIpOwotICAgICAgICB2YXIgbWFwID0gY29udGV4dC5tZW1iZXJzLkEuZGVmYXVsdF90
b19qc29uX29wZXJhdGlvbigpOwotICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKFsuLi5tYXAu
a2V5cygpXSwgWyJhIiwgIm4iXSk7CisgICAgICAgIGNvbnRleHQuYWRkX2lkbHMoImludGVyZmFj
ZSBEIHsgYXR0cmlidXRlIERPTVN0cmluZyBkOyB9OyIpOworICAgICAgICBjb250ZXh0LmFkZF9p
ZGxzKCJpbnRlcmZhY2UgbWl4aW4gTSB7IFtEZWZhdWx0XSBvYmplY3QgdG9KU09OKCk7IGF0dHJp
YnV0ZSBsb25nIG07IH07Iik7CisgICAgICAgIGNvbnRleHQuYWRkX2lkbHMoIkQgaW5jbHVkZXMg
TTsiKTsKKyAgICAgICAgY29udGV4dC5tZXJnZV9taXhpbnMoKTsKKyAgICAgICAgdmFyIG1hcCA9
IGNvbnRleHQubWVtYmVycy5ELmRlZmF1bHRfdG9fanNvbl9vcGVyYXRpb24oKTsKKyAgICAgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhbLi4ubWFwLmtleXMoKV0sIFsiZCIsICJtIl0pOwogICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKFsuLi5tYXAudmFsdWVzKCldLm1hcCh2ID0+IHYuaWRsVHlw
ZSksIFsiRE9NU3RyaW5nIiwgImxvbmciXSk7CiAgICAgfSwgJ3Nob3VsZCByZXR1cm4gYSBwcm9w
ZXJseSBvcmRlcmVkIG1hcCB0aGF0IGFjY291bnRzIGZvciBtaXhlZC1pbiBpbnRlcmZhY2VzIHdo
aWNoIGRlY2xhcmUgYSBbRGVmYXVsdF0gdG9KU09OIG9wZXJhdGlvbi4nKTsKLQotICAgIHRlc3Qo
ZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBjb250ZXh0ID0gbmV3IElkbEFycmF5KCk7Ci0gICAg
ICAgIGNvbnRleHQuYWRkX2lkbHMoImludGVyZmFjZSBBIHsgW0RlZmF1bHRdIG9iamVjdCB0b0pT
T04oKTsgYXR0cmlidXRlIERPTVN0cmluZyBhOyB9OyIpOwotICAgICAgICBjb250ZXh0LmFkZF9p
ZGxzKCJpbnRlcmZhY2UgbWl4aW4gTiB7IGF0dHJpYnV0ZSBsb25nIG47IH07Iik7Ci0gICAgICAg
IGNvbnRleHQuYWRkX2lkbHMoIkEgaW5jbHVkZXMgTjsiKTsKLSAgICAgICAgdmFyIG1hcCA9IGNv
bnRleHQubWVtYmVycy5BLmRlZmF1bHRfdG9fanNvbl9vcGVyYXRpb24oKTsKLSAgICAgICAgYXNz
ZXJ0X2VxdWFscyhtYXAuc2l6ZSwgMSk7Ci0gICAgICAgIGFzc2VydF90cnVlKG1hcC5oYXMoImEi
KSk7Ci0gICAgICAgIGFzc2VydF9mYWxzZShtYXAuaGFzKCJuIikpOwotICAgICAgICBhc3NlcnRf
ZXF1YWxzKG1hcC5nZXQoImEiKS5pZGxUeXBlLCAiRE9NU3RyaW5nIik7Ci0gICAgfSwgJ3Nob3Vs
ZCByZXR1cm4gYSBwcm9wZXJseSBvcmRlcmVkIG1hcCB0aGF0IGlnbm9yZXMgbWl4ZWQtaW4gaW50
ZXJmYWNlcyB3aGljaCBkbyBub3QgZGVjbGFyZSBhIFtEZWZhdWx0XSB0b0pTT04gb3BlcmF0aW9u
LicpOwotCi0KLSAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgY29udGV4dCA9IG5l
dyBJZGxBcnJheSgpOwotICAgICAgICBjb250ZXh0LmFkZF9pZGxzKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdmcmFnbWVudHMnKS50ZXh0Q29udGVudCk7Ci0gICAgICAgIHZhciBtYXAgPSBjb250
ZXh0Lm1lbWJlcnMuQS5kZWZhdWx0X3RvX2pzb25fb3BlcmF0aW9uKCk7Ci0gICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMoWy4uLm1hcC5rZXlzKCldLCBbImIiLCAiZCIsICJnIiwgImgiXSk7Ci0g
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLm1hcC52YWx1ZXMoKV0ubWFwKHYgPT4gdi5p
ZGxUeXBlKSwgWyJsb25nIiwgImZsb2F0IiwgIm9jdGV0IiwgIkRPTVN0cmluZyJdKTsKLSAgICB9
LCAnc2hvdWxkIHJldHVybiBhIHByb3Blcmx5IG9yZGVyZWQgbWFwIG9mIG5hbWUvdHlwZSBwYWly
cyBoYW5kbGluZyBpbmhlcml0ZWQgYW5kIGNvbnNlcXVlbnRpYWwgaW50ZXJmYWNlcyBhcyBzcGVj
aWZpZWQuJyk7CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVz
dHMvdW5pdC9JZGxJbnRlcmZhY2UvZ2V0X2luaGVyaXRhbmNlX3N0YWNrLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3Rz
L3VuaXQvSWRsSW50ZXJmYWNlL2dldF9pbmhlcml0YW5jZV9zdGFjay5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3ZTkxODhjNzMxODkyMGY0NDkzNWU0MThhNTBhYTM1YTU4YmY1
NzI1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVz
dHMvdW5pdC9JZGxJbnRlcmZhY2UvZ2V0X2luaGVyaXRhbmNlX3N0YWNrLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw0OSArMCwwIEBACi08IURPQ1RZUEUgSFRNTD4KLTxodG1sPgotPGhlYWQ+Ci08
dGl0bGU+SWRsSW50ZXJmYWNlLnByb3RvdHlwZS5nZXRfaW5oZXJpdGFuY2Vfc3RhY2soKTwvdGl0
bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci08c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy9XZWJJRExQYXJzZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
aWRsaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vaWRsLWhlbHBl
ci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotICAgICJ1c2Ugc3RyaWN0IjsKLSAgICB0ZXN0KGZ1
bmN0aW9uKCkgewotICAgICAgICB2YXIgc3RhY2sgPSBpbnRlcmZhY2VGcm9tKCdpbnRlcmZhY2Ug
QSB7IH07JykuZ2V0X2luaGVyaXRhbmNlX3N0YWNrKCk7Ci0gICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoc3RhY2subWFwKGkgPT4gaS5uYW1lKSwgWyJBIl0pOwotICAgIH0sICdzaG91bGQgcmV0
dXJuIGFuIGFycmF5IHRoYXQgaW5jbHVkZXMgaXRzZWxmLicpOwotCi0gICAgdGVzdChmdW5jdGlv
bigpIHsKLSAgICAgICAgdmFyIGkgPSBpbnRlcmZhY2VGcm9tKCdpbnRlcmZhY2UgQSA6IEIgeyB9
OycpOwotICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKEVycm9yLCBfID0+IGkuZ2V0X2luaGVyaXRh
bmNlX3N0YWNrKCkpOwotICAgIH0sICJzaG91bGQgdGhyb3cgZm9yIGludGVyZmFjZXMgd2hpY2gg
aW5oZXJpdCBmcm9tIGFub3RoZXIgaW50ZXJmYWNlIHdoaWNoIHdhc24ndCBhZGRlZCB0byB0aGUg
SWRsQXJyYXkiKTsKLQotICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBpZGwgPSBu
ZXcgSWRsQXJyYXkoKTsKLSAgICAgICAgaWRsLmFkZF9pZGxzKCdpbnRlcmZhY2UgQSA6IEIgeyB9
OycpOwotICAgICAgICBpZGwuYWRkX3VudGVzdGVkX2lkbHMoJ2ludGVyZmFjZSBCIDogQyB7IH07
IGludGVyZmFjZSBDIHsgfTsnKTsKLSAgICAgICAgdmFyIEEgPSBpZGwubWVtYmVyc1siQSJdOwot
ICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKEEuZ2V0X2luaGVyaXRhbmNlX3N0YWNrKCkubWFw
KGkgPT4gaS5uYW1lKSwgWyJBIiwgIkIiLCAiQyJdKTsKLSAgICB9LCAnc2hvdWxkIHJldHVybiBh
biBhcnJheSBvZiBpbmhlcml0ZWQgaW50ZXJmYWNlcyBpbiBvcmRlciBvZiBpbmhlcml0YW5jZSwg
c3RhcnRpbmcgd2l0aCBpdHNlbGYuJyk7Ci0KLSAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgdmFyIGlkbCA9IG5ldyBJZGxBcnJheSgpOwotICAgICAgICBpZGwuYWRkX3VudGVzdGVkX2lk
bHMoJ2ludGVyZmFjZSBBIDogQiB7IH07Jyk7Ci0gICAgICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRs
cygnaW50ZXJmYWNlIEIgOiBBIHsgfTsnKTsKLSAgICAgICAgaWRsLmFzc2VydF90aHJvd3MoJ0Eg
aGFzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeTogQSxCLEEnLCBpID0+IGkudGVzdCgpKTsKLSAgICB9
LCAnc2hvdWxkIHRocm93IHdoZW4gaW5oZXJpdGFuY2UgaXMgY2lyY3VsYXInKTsKLQotICAgIHRl
c3QoZnVuY3Rpb24gKCkgewotICAgICAgICB2YXIgaWRsID0gbmV3IElkbEFycmF5KCk7Ci0gICAg
ICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEEgOiBCIHsgfTsnKTsKLSAgICAg
ICAgaWRsLmFzc2VydF90aHJvd3MoCi0gICAgICAgICAgICAnRHVwbGljYXRlIGlkZW50aWZpZXIg
QScsCi0gICAgICAgICAgICBpID0+IGkuYWRkX3VudGVzdGVkX2lkbHMoJ2ludGVyZmFjZSBBIDog
QyB7IH07JykpOwotICAgIH0sICdzaG91bGQgdGhyb3cgd2hlbiBtdWx0aXBsZSBpbmhlcml0YW5j
ZXMgZGVmaW5lZCcpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0
L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2dldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNrLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL2dldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0
YWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMGMwNjZiYWFiYmNmMDI2N2IxNTFhNGUyMWQ2YmVmZWYxN2Uz
NmY0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvZ2V0X3Jl
dmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2suaHRtbApAQCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUg
SFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+SWRsSW50ZXJmYWNlLnByb3RvdHlwZS5nZXRf
cmV2ZXJzZV9pbmhlcml0YW5jZV9zdGFjaygpPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRp
diBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9pZGwtaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisgICAgInVzZSBzdHJpY3QiOworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBz
dGFjayA9IGludGVyZmFjZUZyb20oJ2ludGVyZmFjZSBBIHsgfTsnKS5nZXRfcmV2ZXJzZV9pbmhl
cml0YW5jZV9zdGFjaygpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHN0YWNrLm1hcChp
ID0+IGkubmFtZSksIFsiQSJdKTsKKyAgICB9LCAnc2hvdWxkIHJldHVybiBhbiBhcnJheSB0aGF0
IGluY2x1ZGVzIGl0c2VsZi4nKTsKKworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZh
ciBpID0gaW50ZXJmYWNlRnJvbSgnaW50ZXJmYWNlIEEgOiBCIHsgfTsnKTsKKyAgICAgICAgYXNz
ZXJ0X3Rocm93c19qcyhFcnJvciwgXyA9PiBpLmdldF9yZXZlcnNlX2luaGVyaXRhbmNlX3N0YWNr
KCkpOworICAgIH0sICJzaG91bGQgdGhyb3cgZm9yIGludGVyZmFjZXMgd2hpY2ggaW5oZXJpdCBm
cm9tIGFub3RoZXIgaW50ZXJmYWNlIHdoaWNoIHdhc24ndCBhZGRlZCB0byB0aGUgSWRsQXJyYXki
KTsKKworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBpZGwgPSBuZXcgSWRsQXJy
YXkoKTsKKyAgICAgICAgaWRsLmFkZF9pZGxzKCdpbnRlcmZhY2UgQSA6IEIgeyB9OycpOworICAg
ICAgICBpZGwuYWRkX3VudGVzdGVkX2lkbHMoJ2ludGVyZmFjZSBCIDogQyB7IH07IGludGVyZmFj
ZSBDIHsgfTsnKTsKKyAgICAgICAgdmFyIEEgPSBpZGwubWVtYmVyc1siQSJdOworICAgICAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKEEuZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2soKS5tYXAo
aSA9PiBpLm5hbWUpLCBbIkMiLCAiQiIsICJBIl0pOworICAgIH0sICdzaG91bGQgcmV0dXJuIGFu
IGFycmF5IG9mIGludGVyZmFjZXMgaW4gb3JkZXIgb2YgaW5oZXJpdGFuY2UsIHN0YXJ0aW5nIHdp
dGggdGhlIGJhc2UgaW50ZXJmYWNlJyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgdmFyIGlkbCA9IG5ldyBJZGxBcnJheSgpOworICAgICAgICBpZGwuYWRkX3VudGVzdGVkX2lk
bHMoJ2ludGVyZmFjZSBBIDogQiB7IH07Jyk7CisgICAgICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRs
cygnaW50ZXJmYWNlIEIgOiBBIHsgfTsnKTsKKyAgICAgICAgaWRsLmFzc2VydF90aHJvd3MoJ0Eg
aGFzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeTogQSxCLEEnLCBpID0+IGkudGVzdCgpKTsKKyAgICB9
LCAnc2hvdWxkIHRocm93IHdoZW4gaW5oZXJpdGFuY2UgaXMgY2lyY3VsYXInKTsKKworICAgIHRl
c3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgaWRsID0gbmV3IElkbEFycmF5KCk7CisgICAg
ICAgIGlkbC5hZGRfdW50ZXN0ZWRfaWRscygnaW50ZXJmYWNlIEEgOiBCIHsgfTsnKTsKKyAgICAg
ICAgaWRsLmFzc2VydF90aHJvd3MoCisgICAgICAgICAgICAnRHVwbGljYXRlIGlkZW50aWZpZXIg
QScsCisgICAgICAgICAgICBpID0+IGkuYWRkX3VudGVzdGVkX2lkbHMoJ2ludGVyZmFjZSBBIDog
QyB7IH07JykpOworICAgIH0sICdzaG91bGQgdGhyb3cgd2hlbiBtdWx0aXBsZSBpbmhlcml0YW5j
ZXMgZGVmaW5lZCcpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0
L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL3Nob3VsZF9oYXZlX2ludGVyZmFjZV9vYmplY3QuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Vz
L3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2Uvc2hvdWxkX2hhdmVfaW50ZXJmYWNlX29iamVj
dC5odG1sCmluZGV4IGY1YmI3YmYzNWE1OGMyM2NiYWY3NmYxNTE5YWMyZGZlYzVmM2FkNjIuLjNj
ZTk0NTc1MWQ4NTAyZGQ2ZDM1ZDE5ZjUyYzcxZjE3MDEzMTNkNDcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVz
dHMvdW5pdC9JZGxJbnRlcmZhY2Uvc2hvdWxkX2hhdmVfaW50ZXJmYWNlX29iamVjdC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Vz
L3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2Uvc2hvdWxkX2hhdmVfaW50ZXJmYWNlX29iamVj
dC5odG1sCkBAIC0xNCwxNyArMTQsMTcgQEAgdGVzdChmdW5jdGlvbigpIHsKIH0sICJjYWxsYmFj
ayBpbnRlcmZhY2Ugd2l0aCBhIGNvbnN0YW50Iik7CiAKIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAg
dmFyIGkgPSBpbnRlcmZhY2VGcm9tKCJjYWxsYmFjayBpbnRlcmZhY2UgQSB7IHZvaWQgYigpOyBz
ZXF1ZW5jZTxhbnk+IGMoKTsgfTsiKTsKKyAgICB2YXIgaSA9IGludGVyZmFjZUZyb20oImNhbGxi
YWNrIGludGVyZmFjZSBBIHsgdW5kZWZpbmVkIGIoKTsgc2VxdWVuY2U8YW55PiBjKCk7IH07Iik7
CiAgICAgYXNzZXJ0X2ZhbHNlKGkuc2hvdWxkX2hhdmVfaW50ZXJmYWNlX29iamVjdCgpKTsKIH0s
ICJjYWxsYmFjayBpbnRlcmZhY2Ugd2l0aG91dCBhIGNvbnN0YW50Iik7CiAKIHRlc3QoZnVuY3Rp
b24oKSB7Ci0gICAgdmFyIGkgPSBpbnRlcmZhY2VGcm9tKCJbTm9JbnRlcmZhY2VPYmplY3RdIGlu
dGVyZmFjZSBBIHsgfTsiKTsKKyAgICB2YXIgaSA9IGludGVyZmFjZUZyb20oIltMZWdhY3lOb0lu
dGVyZmFjZU9iamVjdF0gaW50ZXJmYWNlIEEgeyB9OyIpOwogICAgIGFzc2VydF9mYWxzZShpLnNo
b3VsZF9oYXZlX2ludGVyZmFjZV9vYmplY3QoKSk7Ci19LCAibm9uLWNhbGxiYWNrIGludGVyZmFj
ZSB3aXRoIFtOb0ludGVyZmFjZU9iamVjdF0iKTsKK30sICJub24tY2FsbGJhY2sgaW50ZXJmYWNl
IHdpdGggW0xlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0XSIpOwogCiB0ZXN0KGZ1bmN0aW9uKCkgewog
ICAgIHZhciBpID0gaW50ZXJmYWNlRnJvbSgiaW50ZXJmYWNlIEEgeyB9OyIpOwogICAgIGFzc2Vy
dF90cnVlKGkuc2hvdWxkX2hhdmVfaW50ZXJmYWNlX29iamVjdCgpKTsKLX0sICJub24tY2FsbGJh
Y2sgaW50ZXJmYWNlIHdpdGhvdXQgW05vSW50ZXJmYWNlT2JqZWN0XSIpOworfSwgIm5vbi1jYWxs
YmFjayBpbnRlcmZhY2Ugd2l0aG91dCBbTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RdIik7CiA8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvdHJhdmVyc2VfaW5o
ZXJpdGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9J
ZGxJbnRlcmZhY2UvdHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFj
ZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRiOTU2ZGI2ZWVkMWUxOWQ3
ZGQzN2NhNjJhODA0YzRmZTM2ZWEyYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL3RyYXZlcnNlX2luaGVyaXRl
ZF9hbmRfY29uc2VxdWVudGlhbF9pbnRlcmZhY2VzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1
OCArMCwwIEBACi08IURPQ1RZUEUgSFRNTD4KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+SWRsRGlj
dGlvbmFyeS5wcm90b3R5cGUudHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50aWFsX2lu
dGVyZmFjZXMoKTwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+
Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vaWRsLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08cHJlIGlkPWZyYWdtZW50cz4KLSAgICBp
bnRlcmZhY2UgQSA6IEIgeyB9OwotICAgIGludGVyZmFjZSBCIDogQyB7IH07Ci0gICAgaW50ZXJm
YWNlIEMgeyB9OwotICAgIGludGVyZmFjZSBtaXhpbiBEIHsgfTsKLSAgICBpbnRlcmZhY2UgbWl4
aW4gRyB7IH07Ci0gICAgaW50ZXJmYWNlIG1peGluIEggeyB9OwotCi0gICAgQSBpbmNsdWRlcyBH
OwotICAgIEEgaW5jbHVkZXMgSDsKLSAgICBCIGluY2x1ZGVzIEQ7Ci08L3ByZT4KLTxzY3JpcHQ+
Ci0gICAgInVzZSBzdHJpY3QiOwotICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBp
bnRlcmZhY2VzID0gW107Ci0gICAgICAgIGludGVyZmFjZUZyb20oJ2ludGVyZmFjZSBBIHsgfTsn
KS50cmF2ZXJzZV9pbmhlcml0ZWRfYW5kX2NvbnNlcXVlbnRpYWxfaW50ZXJmYWNlcyhmdW5jdGlv
bihpKSB7Ci0gICAgICAgICAgICBpbnRlcmZhY2VzLnB1c2goaS5uYW1lKTsKLSAgICAgICAgfSk7
Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoaW50ZXJmYWNlcywgWyJBIl0pOwotICAgIH0s
ICdzaG91bGQgcmV0dXJuIGFuIGFycmF5IHRoYXQgaW5jbHVkZXMgaXRzZWxmLicpOwotCi0gICAg
dGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgSWRsQXJyYXkoKTsK
LSAgICAgICAgY29udGV4dC5hZGRfaWRscygiaW50ZXJmYWNlIEEgeyB9OyBBIGluY2x1ZGVzIEI7
Iik7Ci0gICAgICAgIGFzc2VydF90aHJvd3NfanMoRXJyb3IsIF8gPT4gY29udGV4dC5tZW1iZXJz
WyJBIl0udHJhdmVyc2VfaW5oZXJpdGVkX2FuZF9jb25zZXF1ZW50aWFsX2ludGVyZmFjZXMoZnVu
Y3Rpb24oKSB7fSkpOwotICAgIH0sICJzaG91bGQgdGhyb3cgZm9yIGludGVyZmFjZXMgd2hpY2gg
YXJlIGV4dGVuZGVkIGJ5IGFub3RoZXIgaW50ZXJmYWNlIHdoaWNoIHdhc24ndCBhZGRlZCB0byB0
aGUgSWRsQXJyYXkuIik7Ci0KLSAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgY29u
dGV4dCA9IG5ldyBJZGxBcnJheSgpOwotICAgICAgICBjb250ZXh0LmFkZF9pZGxzKCJpbnRlcmZh
Y2UgQSB7IH07Iik7Ci0gICAgICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBfID0+IGNv
bnRleHQubWVtYmVyc1siQSJdLnRyYXZlcnNlX2luaGVyaXRlZF9hbmRfY29uc2VxdWVudGlhbF9p
bnRlcmZhY2VzKCkpOwotICAgIH0sICJzaG91bGQgdGhyb3cgaWYgbm90IHBhc3NlZCBhIGNhbGxi
YWNrIik7Ci0KLSAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgY29udGV4dCA9IG5l
dyBJZGxBcnJheSgpOwotICAgICAgICBjb250ZXh0LmFkZF9pZGxzKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdmcmFnbWVudHMnKS50ZXh0Q29udGVudCk7Ci0gICAgICAgIHZhciBpbnRlcmZhY2Vz
ID0gW107Ci0gICAgICAgIGNvbnRleHQubWVtYmVyc1siQSJdLnRyYXZlcnNlX2luaGVyaXRlZF9h
bmRfY29uc2VxdWVudGlhbF9pbnRlcmZhY2VzKGZ1bmN0aW9uKGkpIHsKLSAgICAgICAgICAgIGlu
dGVyZmFjZXMucHVzaChpLm5hbWUpOwotICAgICAgICB9KTsKLSAgICAgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhpbnRlcmZhY2VzLCBbIkMiLCAiQiIsICJEIiwgIkEiLCAiRyIsICJIIl0pOwotICAg
IH0sICdzaG91bGQgcmV0dXJuIGFuIGFycmF5IHRoYXQgaW5jbHVkZXMgdGhlIGlkZW50aWZpZXIg
b2YgdGhlIGludGVyZmFjZXMgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuJyk7Ci08L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2UvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL3czYy1pbXBvcnQubG9nCmlu
ZGV4IDgyMzU1ZTA1YjU1YjdhMjE4ODEwNjE1ZDM2YTdiYjRlNGMzNjAxZTkuLmJkNjdkZjk0NDUx
MTBlMjc3OWRjYmQ0NmQ1Y2JhZTI2YTYwZjIyYTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9J
ZGxJbnRlcmZhY2UvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFj
ZS93M2MtaW1wb3J0LmxvZwpAQCAtMTcsMTMgKzE3LDEyIEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90
ZXN0cy91bml0L0lkbEludGVyZmFjZS9jb25zdHJ1Y3RvcnMuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9J
ZGxJbnRlcmZhY2UvZGVmYXVsdF90b19qc29uX29wZXJhdGlvbi5odG1sCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0
L0lkbEludGVyZmFjZS9kb19tZW1iZXJfdW5zY29wYWJsZV9hc3NlcnRzLmh0bWwKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3Rz
L3VuaXQvSWRsSW50ZXJmYWNlL2dldF9pbmhlcml0YW5jZV9zdGFjay5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91
bml0L0lkbEludGVyZmFjZS9nZXRfaW50ZXJmYWNlX29iamVjdC5odG1sCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0
L0lkbEludGVyZmFjZS9nZXRfaW50ZXJmYWNlX29iamVjdF9vd25lci5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91
bml0L0lkbEludGVyZmFjZS9nZXRfbGVnYWN5X25hbWVzcGFjZS5odG1sCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0
L0lkbEludGVyZmFjZS9nZXRfcXVhbGlmaWVkX25hbWUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJ
bnRlcmZhY2UvZ2V0X3JldmVyc2VfaW5oZXJpdGFuY2Vfc3RhY2suaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5p
dC9JZGxJbnRlcmZhY2UvaGFzX2RlZmF1bHRfdG9fanNvbl9yZWd1bGFyX29wZXJhdGlvbi5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMv
dGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9oYXNfdG9fanNvbl9yZWd1bGFyX29wZXJhdGlv
bi5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNv
dXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZS9zaG91bGRfaGF2ZV9pbnRlcmZhY2Vf
b2JqZWN0Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL3Rlc3RfcHJpbWFyeV9pbnRl
cmZhY2Vfb2ZfdW5kZWZpbmVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlL3RyYXZl
cnNlX2luaGVyaXRlZF9hbmRfY29uc2VxdWVudGlhbF9pbnRlcmZhY2VzLmh0bWwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Vz
L3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2VNZW1iZXIvaXNfdG9fanNvbl9yZWd1bGFyX29w
ZXJhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZU1lbWJlci9pc190b19qc29u
X3JlZ3VsYXJfb3BlcmF0aW9uLmh0bWwKaW5kZXggYWJmYTRhYjgwMGIzYzhlNmI1ZjZmZDNiNDJh
OTgyY2MyZTRmZTk5ZS4uYjNmNDAyZGQwODg1N2NmZTQxY2RjODU3M2ZmOGMzYzQwN2QyNWU4YSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZU1lbWJlci9pc190b19qc29uX3Jl
Z3VsYXJfb3BlcmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFjZU1lbWJl
ci9pc190b19qc29uX3JlZ3VsYXJfb3BlcmF0aW9uLmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAKICAg
ICB9LCAnc2hvdWxkIHJldHVybiBmYWxzZSB3aGVuIG1lbWJlciBpcyBhbiBhdHRyaWJ1dGUuJyk7
CiAKICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgbSA9IG1lbWJlckZyb20oInN0
YXRpYyB2b2lkIGZvbygpIik7CisgICAgICAgIHZhciBtID0gbWVtYmVyRnJvbSgic3RhdGljIHVu
ZGVmaW5lZCBmb28oKSIpOwogICAgICAgICBhc3NlcnRfZmFsc2UobS5pc190b19qc29uX3JlZ3Vs
YXJfb3BlcmF0aW9uKCkpOwogICAgIH0sICdzaG91bGQgcmV0dXJuIGZhbHNlIHdoZW4gbWVtYmVy
IGlzIGEgc3RhdGljIG9wZXJhdGlvbi4nKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lk
bEludGVyZmFjZU1lbWJlci90b1N0cmluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L0lkbEludGVyZmFj
ZU1lbWJlci90b1N0cmluZy5odG1sCmluZGV4IDc3OWM3YTE1ZTZkN2I5ZWMyMGMzOGJhMjQ5MDBm
NzUyMDk2ZGYzZTIuLjA1NGRiYjFjY2JkNmVhMjczOTk4NjI5NDMzYzE1Y2ViNTJhYjRiYmEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9JZGxJbnRlcmZhY2VNZW1iZXIvdG9TdHJpbmcuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0L3Rlc3RzL3VuaXQvSWRsSW50ZXJmYWNlTWVtYmVyL3RvU3RyaW5nLmh0bWwKQEAgLTI3
LDcgKzI3LDcgQEAgY29uc3QgdGVzdHMgPSBbCiBdOwogZm9yIChjb25zdCBbaW5wdXQsIG91dHB1
dF0gb2YgdGVzdHMpIHsKICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgbSA9IG1l
bWJlckZyb20oYHZvaWQgZm9vKCR7aW5wdXR9KWApOworICAgICAgICB2YXIgbSA9IG1lbWJlckZy
b20oYHVuZGVmaW5lZCBmb28oJHtpbnB1dH0pYCk7CiAgICAgICAgIGFzc2VydF9lcXVhbHMobS50
b1N0cmluZygpLCBgZm9vKCR7b3V0cHV0fSlgKTsKICAgICB9LCBgdG9TdHJpbmcgZm9yICR7aW5w
dXR9YCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvaGVscGVycy5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMv
dW5pdC9oZWxwZXJzLmpzCmluZGV4IGIyNzNhNzI1ODlmN2QzMzRkZTU4ZWU3ODBhYmJjNGMwZjRl
MjJlYmQuLmNhMzc4YTI3YzkxNTI3NDJmNzUxZDBiOWM1YzI3NmY0OGEyMTU2MGMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Vz
L3Rlc3QvdGVzdHMvdW5pdC9oZWxwZXJzLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9oZWxwZXJzLmpz
CkBAIC0xMSw3ICsxMSw3IEBAIGZ1bmN0aW9uIHRlc3RfZmFpbHVyZShmbiwgbmFtZSkgewogICAg
ICAgaWYgKGVyciBpbnN0YW5jZW9mIEFzc2VydGlvbkVycm9yKSB7CiAgICAgICAgIHJldHVybjsK
ICAgICAgIH0KLSAgICAgIHRocm93IG5ldyBBc3NlcnRpb25FcnJvcignRXhwZWN0ZWQgYW4gQXNz
ZXJ0aW9uRXJyb3IsIGJ1dCcpOworICAgICAgdGhyb3cgbmV3IEFzc2VydGlvbkVycm9yKCdFeHBl
Y3RlZCBhbiBBc3NlcnRpb25FcnJvciwgYnV0JyArIGVycik7CiAgICAgfQogICAgIHRocm93IG5l
dyBBc3NlcnRpb25FcnJvcigKICAgICAgICdFeHBlY3RlZCBhbiBBc3NlcnRpb25FcnJvciwgYnV0
IG5vIGVycm9yIHdhcyB0aHJvd24nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvdW5wYWlyZWQt
c3Vycm9nYXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L3VucGFpcmVkLXN1cnJvZ2F0ZXMuaHRtbApp
bmRleCAxYjE2MmZlNzFkMjgzZDYzZGJkYWFjNWIzYmU4ODdmNWNkODBkNTNmLi5iMjMyMTExMzI2
NTllZWYxYzUwYjA0NmUwYTE1YmMwNmY2YmViZmMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQv
dW5wYWlyZWQtc3Vycm9nYXRlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC91bnBhaXJlZC1zdXJy
b2dhdGVzLmh0bWwKQEAgLTExNCw2ICsxMTQsNyBAQCBwcm9taXNlX3Rlc3QoKCkgPT4gewogICAg
ICAgICB0ZXN0KCgpID0+IHt9LCAnVStkODAwVStkODAxIG11c3QgYmUgc2FuaXRpemVkOiBcdWQ4
MDBcdWQ4MDEnKTsKICAgICAgICAgdGVzdCgoKSA9PiB7fSwgJ1UrZGZmZiBtdXN0IGJlIHNhbml0
aXplZDogXHVkZmZmJyk7CiAgICAgICAgIHRlc3QoKCkgPT4ge30sICdVK2RjMDBVK2Q4MDBVK2Rj
MDBVK2Q4MDAgbXVzdCBiZSBzYW5pdGl6ZWQ6IFx1ZGMwMFx1ZDgwMFx1ZGMwMFx1ZDgwMCcpOwor
ICAgICAgICB0ZXN0KCgpID0+IHt9LCAnVStkYmZmVStkZmZmVStkZmZmIG11c3QgYmUgc2FuaXRp
emVkOiBcdWRiZmZcdWRmZmZcdWRmZmYnKTsKICAgICAgICAgdGVzdCgoKSA9PiB7fSwgJ2FmdGVy
Jyk7CiAgICAgICB9CiAgICAgKS50aGVuKCh7aGFybmVzcywgdGVzdHN9KSA9PiB7CkBAIC0xMzAs
NiArMTMxLDEwIEBAIHByb21pc2VfdGVzdCgoKSA9PiB7CiAgICAgICAgIHRlc3RzWydVK2RjMDBV
K2Q4MDBVK2RjMDBVK2Q4MDAgbXVzdCBiZSBzYW5pdGl6ZWQ6IFUrZGMwMFx1ZDgwMFx1ZGMwMFUr
ZDgwMCddLAogICAgICAgICAnUEFTUycKICAgICAgICk7CisgICAgICBhc3NlcnRfZXF1YWxzKAor
ICAgICAgICB0ZXN0c1snVStkYmZmVStkZmZmVStkZmZmIG11c3QgYmUgc2FuaXRpemVkOiBcdWRi
ZmZcdWRmZmZVK2RmZmYnXSwKKyAgICAgICAgJ1BBU1MnCisgICAgICApOwogICAgICAgYXNzZXJ0
X2VxdWFscyh0ZXN0cy5hZnRlciwgJ1BBU1MnKTsKICAgICB9KTsKIH0sICdzdWItdGVzdCBuYW1l
cyB3aGljaCBpbmNsdWRlIHVucGFpcmVkIHN1cnJvZ2F0ZXMnKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdG94
LmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3Vy
Y2VzL3Rlc3QvdG94LmluaQppbmRleCAyNjZhNmU4OTUyZTA0ZDkwMTIwNjQ4MzYxNGJkYTkwOTc5
MzNiYjhlLi5hOWMwN2MzZDIyYThhM2UyNjUzNWEwYjFlZjZlYWIyOGFmMDRjMjFmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0L3RveC5pbmkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90b3guaW5pCkBAIC0xLDE1ICsxLDEzIEBACiBbdG94XQot
ZW52bGlzdCA9IHB5MjcscHkzNixweTM4CitlbnZsaXN0ID0gcHkzNixweTM3LHB5MzgscHkzOQog
c2tpcHNkaXN0PVRydWUKIAogW3Rlc3RlbnZdCiBwYXNzZW52PURJU1BMQVkgIyBOZWNlc3Nhcnkg
Zm9yIHRoZSBzcGF3bmVkIEdlY2tvRHJpdmVyIHByb2Nlc3MgdG8gY29ubmVjdCB0bwogICAgICAg
ICAgICAgICAgICMgdGhlIGFwcHJvcHJpYXRlIGRpc3BsYXkuCisKIGRlcHMgPQotICBodG1sNWxp
YgotICBweXRlc3Q+PTIuOSw8NiAjIHBpbm5lZCB0byA8NiBkdWUgdG8gaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzI2MTMyCi0gIHB5dmlydHVhbGRpc3Bs
YXkKLSAgc2l4Ci0gIHJlcXVlc3RzCisgIC1ye3RveGluaWRpcn0vLi4vLi4vdG9vbHMvcmVxdWly
ZW1lbnRzX3B5dGVzdC50eHQKKyAgLXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVudHMudHh0CiAKIGNv
bW1hbmRzID0gcHl0ZXN0IC12diB7cG9zYXJnc30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0L3czYy1pbXBvcnQubG9nCmluZGV4IGU3YTQ4NmE5Yjk2YzEwNWViOWE1ZGY1YTA1Zjg5
MzlhMTU5OWVhMGQuLjI3YjU0MjdmNGFkMmMwYWY3YmQ4YWIxOWRkNGZkOWMzOTA5MjZmYTAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3QvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC93M2MtaW1wb3J0LmxvZwpAQCAtMTks
NiArMTksNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvaGFybmVzcy5odG1sCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC9pZGwtaGVscGVy
LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJj
ZXMvdGVzdC9uZXN0ZWQtdGVzdGhhcm5lc3MuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3JlcXVpcmVtZW50cy50eHQKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rv
eC5pbmkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291
cmNlcy90ZXN0L3ZhcmlhbnRzLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC93cHRzZXJ2ZXIucHkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Qvd3B0
c2VydmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdC93cHRzZXJ2ZXIucHkKaW5kZXggYTUwNGE3NmE0NmUwMGRiOGY5YmI0YTE5
ZGM5ZGNhNThlYzFjODMxNC4uYWJlMzBhZDNlZDJhODAyOWYwZmU2Yjg3NTNkOTgzYzJjODg1ZTM2
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZXMvdGVzdC93cHRzZXJ2ZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC93cHRzZXJ2ZXIucHkKQEAgLTMs
MTcgKzMsMTggQEAgaW1wb3J0IG9zCiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHRpbWUKIGlt
cG9ydCBzeXMKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCB1cmxsaWIKK2ltcG9ydCB1cmxsaWIKIAog
CiBjbGFzcyBXUFRTZXJ2ZXIob2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgd3B0X3Jv
b3QpOgorICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkKICAgICAgICAg
c2VsZi53cHRfcm9vdCA9IHdwdF9yb290CiAKICAgICAgICAgIyBUaGlzIGlzIGEgdGVycmlibGUg
aGFjayB0byBnZXQgdGhlIGRlZmF1bHQgY29uZmlnIG9mIHdwdHNlcnZlLgogICAgICAgICBzeXMu
cGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKHdwdF9yb290LCAidG9vbHMiKSkKICAgICAgICAg
ZnJvbSBzZXJ2ZS5zZXJ2ZSBpbXBvcnQgYnVpbGRfY29uZmlnCi0gICAgICAgIHdpdGggYnVpbGRf
Y29uZmlnKCkgYXMgY29uZmlnOgorICAgICAgICB3aXRoIGJ1aWxkX2NvbmZpZyhzZWxmLmxvZ2dl
cikgYXMgY29uZmlnOgogICAgICAgICAgICAgc2VsZi5ob3N0ID0gY29uZmlnWyJicm93c2VyX2hv
c3QiXQogICAgICAgICAgICAgc2VsZi5odHRwX3BvcnQgPSBjb25maWdbInBvcnRzIl1bImh0dHAi
XVswXQogICAgICAgICAgICAgc2VsZi5odHRwc19wb3J0ID0gY29uZmlnWyJwb3J0cyJdWyJodHRw
cyJdWzBdCkBAIC0yMSwxMiArMjIsMTIgQEAgY2xhc3MgV1BUU2VydmVyKG9iamVjdCk6CiAgICAg
ICAgIHNlbGYuYmFzZV91cmwgPSAnaHR0cDovLyVzOiVzJyAlIChzZWxmLmhvc3QsIHNlbGYuaHR0
cF9wb3J0KQogICAgICAgICBzZWxmLmh0dHBzX2Jhc2VfdXJsID0gJ2h0dHBzOi8vJXM6JXMnICUg
KHNlbGYuaG9zdCwgc2VsZi5odHRwc19wb3J0KQogCi0gICAgZGVmIHN0YXJ0KHNlbGYpOgorICAg
IGRlZiBzdGFydChzZWxmLCBzc2xfY29udGV4dCk6CiAgICAgICAgIHNlbGYuZGV2bnVsbCA9IG9w
ZW4ob3MuZGV2bnVsbCwgJ3cnKQogICAgICAgICB3cHRzZXJ2ZV9jbWQgPSBbb3MucGF0aC5qb2lu
KHNlbGYud3B0X3Jvb3QsICd3cHQnKSwgJ3NlcnZlJ10KICAgICAgICAgaWYgc3lzLmV4ZWN1dGFi
bGU6CiAgICAgICAgICAgICB3cHRzZXJ2ZV9jbWRbMDowXSA9IFtzeXMuZXhlY3V0YWJsZV0KLSAg
ICAgICAgbG9nZ2luZy5pbmZvKCdFeGVjdXRpbmcgJXMnICUgJyAnLmpvaW4od3B0c2VydmVfY21k
KSkKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygnRXhlY3V0aW5nICVzJyAlICcgJy5qb2luKHdw
dHNlcnZlX2NtZCkpCiAgICAgICAgIHNlbGYucHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oCiAgICAg
ICAgICAgICB3cHRzZXJ2ZV9jbWQsCiAgICAgICAgICAgICBzdGRlcnI9c2VsZi5kZXZudWxsLApA
QCAtNDEsNiArNDIsNyBAQCBjbGFzcyBXUFRTZXJ2ZXIob2JqZWN0KToKICAgICAgICAgICAgICAg
ICBicmVhawogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHVybGxpYi5yZXF1ZXN0
LnVybG9wZW4oc2VsZi5iYXNlX3VybCwgdGltZW91dD0xKQorICAgICAgICAgICAgICAgIHVybGxp
Yi5yZXF1ZXN0LnVybG9wZW4oc2VsZi5odHRwc19iYXNlX3VybCwgdGltZW91dD0xLCBjb250ZXh0
PXNzbF9jb250ZXh0KQogICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgZXhjZXB0
IHVybGxpYi5lcnJvci5VUkxFcnJvcjoKICAgICAgICAgICAgICAgICBwYXNzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90
ZXN0ZHJpdmVyLWFjdGlvbnMuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVyLWFjdGlvbnMuanMKaW5kZXggZjNlNjM4OGU4
YWNkMTk5OGQ4OTc1MDE1MGUwNzc5ZGYzMjdhNTQxNy4uNGRhZmEwYzAxOGIxMDE1NjNlOTk2NDNl
YzBjODk2ZmIxNGVkOTg0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGRyaXZlci1hY3Rpb25zLmpzCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Rk
cml2ZXItYWN0aW9ucy5qcwpAQCAtMjgxLDkgKzI4MSwxMiBAQAogICAgICAqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBvaW50ZXIgc291cmNlCiAgICAgICogQHJldHVybnMge0FjdGlv
bnN9CiAgICAgICovCi0gICAgcG9pbnRlckRvd246IGZ1bmN0aW9uKHtidXR0b249dGhpcy5CdXR0
b25UeXBlLkxFRlQsIHNvdXJjZU5hbWU9bnVsbH09e30pIHsKKyAgICBwb2ludGVyRG93bjogZnVu
Y3Rpb24oe2J1dHRvbj10aGlzLkJ1dHRvblR5cGUuTEVGVCwgc291cmNlTmFtZT1udWxsLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsIGhlaWdodCwgcHJlc3N1cmUsIHRhbmdlbnRp
YWxQcmVzc3VyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbHRYLCB0aWx0WSwgdHdp
c3QsIGFsdGl0dWRlQW5nbGUsIGF6aW11dGhBbmdsZX09e30pIHsKICAgICAgIGxldCBzb3VyY2Ug
PSB0aGlzLmdldFNvdXJjZSgicG9pbnRlciIsIHNvdXJjZU5hbWUpOwotICAgICAgc291cmNlLnBv
aW50ZXJEb3duKHRoaXMsIGJ1dHRvbik7CisgICAgICBzb3VyY2UucG9pbnRlckRvd24odGhpcywg
YnV0dG9uLCB3aWR0aCwgaGVpZ2h0LCBwcmVzc3VyZSwgdGFuZ2VudGlhbFByZXNzdXJlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIHRpbHRYLCB0aWx0WSwgdHdpc3QsIGFsdGl0dWRlQW5nbGUs
IGF6aW11dGhBbmdsZSk7CiAgICAgICByZXR1cm4gdGhpczsKICAgICB9LAogCkBAIC0zMTQsOSAr
MzE3LDEzIEBACiAgICAgICogQHJldHVybnMge0FjdGlvbnN9CiAgICAgICovCiAgICAgcG9pbnRl
ck1vdmU6IGZ1bmN0aW9uKHgsIHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHtvcmlnaW49
InZpZXdwb3J0IiwgZHVyYXRpb24sIHNvdXJjZU5hbWU9bnVsbH09e30pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAge29yaWdpbj0idmlld3BvcnQiLCBkdXJhdGlvbiwgc291cmNlTmFtZT1u
dWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsIGhlaWdodCwgcHJlc3N1cmUs
IHRhbmdlbnRpYWxQcmVzc3VyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbHRYLCB0
aWx0WSwgdHdpc3QsIGFsdGl0dWRlQW5nbGUsIGF6aW11dGhBbmdsZX09e30pIHsKICAgICAgIGxl
dCBzb3VyY2UgPSB0aGlzLmdldFNvdXJjZSgicG9pbnRlciIsIHNvdXJjZU5hbWUpOwotICAgICAg
c291cmNlLnBvaW50ZXJNb3ZlKHRoaXMsIHgsIHksIGR1cmF0aW9uLCBvcmlnaW4pOworICAgICAg
c291cmNlLnBvaW50ZXJNb3ZlKHRoaXMsIHgsIHksIGR1cmF0aW9uLCBvcmlnaW4sIHdpZHRoLCBo
ZWlnaHQsIHByZXNzdXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHRhbmdlbnRpYWxQcmVz
c3VyZSwgdGlsdFgsIHRpbHRZLCB0d2lzdCwgYWx0aXR1ZGVBbmdsZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBhemltdXRoQW5nbGUpOwogICAgICAgcmV0dXJuIHRoaXM7CiAgICAgfSwKIApA
QCAtNDI0LDYgKzQzMSwzOCBAQAogICAgIHRoaXMuYWN0aW9ucyA9IG5ldyBNYXAoKTsKICAgfQog
CisgIGZ1bmN0aW9uIHNldFBvaW50ZXJQcm9wZXJ0aWVzKGFjdGlvbiwgd2lkdGgsIGhlaWdodCwg
cHJlc3N1cmUsIHRhbmdlbnRpYWxQcmVzc3VyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGlsdFgsIHRpbHRZLCB0d2lzdCwgYWx0aXR1ZGVBbmdsZSwgYXppbXV0aEFuZ2xlKSB7
CisgICAgaWYgKHdpZHRoKSB7CisgICAgICBhY3Rpb24ud2lkdGggPSB3aWR0aDsKKyAgICB9Cisg
ICAgaWYgKGhlaWdodCkgeworICAgICAgYWN0aW9uLmhlaWdodCA9IGhlaWdodDsKKyAgICB9Cisg
ICAgaWYgKHByZXNzdXJlKSB7CisgICAgICBhY3Rpb24ucHJlc3N1cmUgPSBwcmVzc3VyZTsKKyAg
ICB9CisgICAgaWYgKHRhbmdlbnRpYWxQcmVzc3VyZSkgeworICAgICAgYWN0aW9uLnRhbmdlbnRp
YWxQcmVzc3VyZSA9IHRhbmdlbnRpYWxQcmVzc3VyZTsKKyAgICB9CisgICAgaWYgKHRpbHRYKSB7
CisgICAgICBhY3Rpb24udGlsdFggPSB0aWx0WDsKKyAgICB9CisgICAgaWYgKHRpbHRZKSB7Cisg
ICAgICBhY3Rpb24udGlsdFkgPSB0aWx0WTsKKyAgICB9CisgICAgaWYgKHR3aXN0KSB7CisgICAg
ICBhY3Rpb24udHdpc3QgPSB0d2lzdDsKKyAgICB9CisgICAgaWYgKGFsdGl0dWRlQW5nbGUpIHsK
KyAgICAgIGFjdGlvbi5hbHRpdHVkZUFuZ2xlID0gYWx0aXR1ZGVBbmdsZTsKKyAgICB9CisgICAg
aWYgKGF6aW11dGhBbmdsZSkgeworICAgICAgYWN0aW9uLmF6aW11dGhBbmdsZSA9IGF6aW11dGhB
bmdsZTsKKyAgICB9CisgICAgcmV0dXJuIGFjdGlvbjsKKyAgfQorCiAgIFBvaW50ZXJTb3VyY2Uu
cHJvdG90eXBlID0gewogICAgIHNlcmlhbGl6ZTogZnVuY3Rpb24odGlja0NvdW50KSB7CiAgICAg
ICBpZiAoIXRoaXMuYWN0aW9ucy5zaXplKSB7CkBAIC00NDEsMTIgKzQ4MCwxNiBAQAogICAgICAg
cmV0dXJuIGRhdGE7CiAgICAgfSwKIAotICAgIHBvaW50ZXJEb3duOiBmdW5jdGlvbihhY3Rpb25z
LCBidXR0b24pIHsKKyAgICBwb2ludGVyRG93bjogZnVuY3Rpb24oYWN0aW9ucywgYnV0dG9uLCB3
aWR0aCwgaGVpZ2h0LCBwcmVzc3VyZSwgdGFuZ2VudGlhbFByZXNzdXJlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aWx0WCwgdGlsdFksIHR3aXN0LCBhbHRpdHVkZUFuZ2xlLCBhemltdXRo
QW5nbGUpIHsKICAgICAgIGxldCB0aWNrID0gYWN0aW9ucy50aWNrSWR4OwogICAgICAgaWYgKHRo
aXMuYWN0aW9ucy5oYXModGljaykpIHsKICAgICAgICAgdGljayA9IGFjdGlvbnMuYWRkVGljaygp
LnRpY2tJZHg7CiAgICAgICB9Ci0gICAgICB0aGlzLmFjdGlvbnMuc2V0KHRpY2ssIHt0eXBlOiAi
cG9pbnRlckRvd24iLCBidXR0b259KTsKKyAgICAgIGxldCBhY3Rpb25Qcm9wZXJ0aWVzID0gc2V0
UG9pbnRlclByb3BlcnRpZXMoe3R5cGU6ICJwb2ludGVyRG93biIsIGJ1dHRvbn0sIHdpZHRoLCBo
ZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByZXNzdXJlLCB0YW5nZW50aWFsUHJlc3N1cmUsIHRpbHRYLCB0aWx0WSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHdpc3QsIGFsdGl0dWRlQW5n
bGUsIGF6aW11dGhBbmdsZSk7CisgICAgICB0aGlzLmFjdGlvbnMuc2V0KHRpY2ssIGFjdGlvblBy
b3BlcnRpZXMpOwogICAgIH0sCiAKICAgICBwb2ludGVyVXA6IGZ1bmN0aW9uKGFjdGlvbnMsIGJ1
dHRvbikgewpAQCAtNDU3LDE1ICs1MDAsMjAgQEAKICAgICAgIHRoaXMuYWN0aW9ucy5zZXQodGlj
aywge3R5cGU6ICJwb2ludGVyVXAiLCBidXR0b259KTsKICAgICB9LAogCi0gICAgcG9pbnRlck1v
dmU6IGZ1bmN0aW9uKGFjdGlvbnMsIHgsIHksIGR1cmF0aW9uLCBvcmlnaW4pIHsKKyAgICBwb2lu
dGVyTW92ZTogZnVuY3Rpb24oYWN0aW9ucywgeCwgeSwgZHVyYXRpb24sIG9yaWdpbiwgd2lkdGgs
IGhlaWdodCwgcHJlc3N1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRhbmdlbnRpYWxQ
cmVzc3VyZSwgdGlsdFgsIHRpbHRZLCB0d2lzdCwgYWx0aXR1ZGVBbmdsZSwgYXppbXV0aEFuZ2xl
KSB7CiAgICAgICBsZXQgdGljayA9IGFjdGlvbnMudGlja0lkeDsKICAgICAgIGlmICh0aGlzLmFj
dGlvbnMuaGFzKHRpY2spKSB7CiAgICAgICAgIHRpY2sgPSBhY3Rpb25zLmFkZFRpY2soKS50aWNr
SWR4OwogICAgICAgfQotICAgICAgdGhpcy5hY3Rpb25zLnNldCh0aWNrLCB7dHlwZTogInBvaW50
ZXJNb3ZlIiwgeCwgeSwgb3JpZ2lufSk7CisgICAgICBsZXQgbW92ZUFjdGlvbiA9IHt0eXBlOiAi
cG9pbnRlck1vdmUiLCB4LCB5LCBvcmlnaW59OwogICAgICAgaWYgKGR1cmF0aW9uKSB7Ci0gICAg
ICAgIHRoaXMuYWN0aW9ucy5nZXQodGljaykuZHVyYXRpb24gPSBkdXJhdGlvbjsKKyAgICAgICAg
bW92ZUFjdGlvbi5kdXJhdGlvbiA9IGR1cmF0aW9uOwogICAgICAgfQorICAgICAgbGV0IGFjdGlv
blByb3BlcnRpZXMgPSBzZXRQb2ludGVyUHJvcGVydGllcyhtb3ZlQWN0aW9uLCB3aWR0aCwgaGVp
Z2h0LCBwcmVzc3VyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGFuZ2VudGlhbFByZXNzdXJlLCB0aWx0WCwgdGlsdFksIHR3aXN0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRpdHVkZUFuZ2xl
LCBhemltdXRoQW5nbGUpOworICAgICAgdGhpcy5hY3Rpb25zLnNldCh0aWNrLCBhY3Rpb25Qcm9w
ZXJ0aWVzKTsKICAgICB9LAogCiAgICAgYWRkUGF1c2U6IGZ1bmN0aW9uKGFjdGlvbnMsIGR1cmF0
aW9uKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcwppbmRleCBjNTNiMjQx
MzZjMDkxZjA1ZTRmZmJlMjg2ZDA2MGFiYTBmYTY2Y2RmLi5mMmRmMjZjZGExY2NkZjZkNmI1YzE3
YWRmNjY0YjA3ZjJiNmNkN2VhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIu
anMKQEAgLTE0Niw2ICsxNDYsMjQgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHk6IGNlbnRlclBvaW50WzFdfSk7CiAgICAgICAgIH0sCiAK
KyAgICAgICAgLyoqCisgICAgICAgICAqIERlbGV0ZXMgYWxsIGNvb2tpZXMuCisgICAgICAgICAq
CisgICAgICAgICAqIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3VyIG9mIHRoZSB7QGxpbmsKKyAg
ICAgICAgICogaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci8jZGVsZXRlLWFsbC1jb29r
aWVzfFdlYkRyaXZlcgorICAgICAgICAgKiBEZWxldGUgQWxsIENvb2tpZXMgY29tbWFuZH0uCisg
ICAgICAgICAqCisgICAgICAgICAqIEBwYXJhbSB7V2luZG93UHJveHl9IGNvbnRleHQgLSBCcm93
c2luZyBjb250ZXh0IGluIHdoaWNoCisgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0byBydW4gdGhlIGNhbGwsIG9yIG51bGwgZm9yIHRoZSBjdXJyZW50CisgICAgICAg
ICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicm93c2luZyBjb250ZXh0LgorICAg
ICAgICAgKgorICAgICAgICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gZnVsZmlsbGVkIGFmdGVyIGNv
b2tpZXMgYXJlIGRlbGV0ZWQsIG9yIHJlamVjdGVkIGluCisgICAgICAgICAqICAgICAgICAgICAg
ICAgICAgICB0aGUgY2FzZXMgdGhlIFdlYkRyaXZlciBjb21tYW5kIGVycm9ycworICAgICAgICAg
Ki8KKyAgICAgICAgZGVsZXRlX2FsbF9jb29raWVzOiBmdW5jdGlvbihjb250ZXh0PW51bGwpIHsK
KyAgICAgICAgICAgIHJldHVybiB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuZGVsZXRlX2Fs
bF9jb29raWVzKGNvbnRleHQpOworICAgICAgICB9LAorCiAgICAgICAgIC8qKgogICAgICAgICAg
KiBTZW5kIGtleXMgdG8gYW4gZWxlbWVudAogICAgICAgICAgKgpAQCAtMjU5LDcgKzI3Nyw3IEBA
CiAgICAgICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBmdWxmaWxsZWQgYWZ0ZXIgdGhlIHBlcm1p
c3Npb24gaXMgc2V0LCBvciByZWplY3RlZCBpZiBzZXR0aW5nIHRoZQogICAgICAgICAgKiAgICAg
ICAgICAgICAgICAgICAgcGVybWlzc2lvbiBmYWlscwogICAgICAgICAgKi8KLSAgICAgICAgc2V0
X3Blcm1pc3Npb246IGZ1bmN0aW9uKGRlc2NyaXB0b3IsIHN0YXRlLCBvbmVfcmVhbG0sIGNvbnRl
eHQ9bnVsbCkgeworICAgICAgICBzZXRfcGVybWlzc2lvbjogZnVuY3Rpb24oZGVzY3JpcHRvciwg
c3RhdGUsIG9uZV9yZWFsbT1mYWxzZSwgY29udGV4dD1udWxsKSB7CiAgICAgICAgICAgICBsZXQg
cGVybWlzc2lvbl9wYXJhbXMgPSB7CiAgICAgICAgICAgICAgIGRlc2NyaXB0b3IsCiAgICAgICAg
ICAgICAgIHN0YXRlLApAQCAtNDU4LDYgKzQ3NiwxMCBAQAogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0sCiAKKyAgICAgICAgZGVsZXRlX2FsbF9jb29raWVzOiBmdW5jdGlvbihjb250ZXh0PW51
bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoInVuaW1w
bGVtZW50ZWQiKSk7CisgICAgICAgIH0sCisKICAgICAgICAgc2VuZF9rZXlzOiBmdW5jdGlvbihl
bGVtZW50LCBrZXlzKSB7CiAgICAgICAgICAgICBpZiAodGhpcy5pbl9hdXRvbWF0aW9uKSB7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignTm90IGltcGxl
bWVudGVkJykpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcwppbmRleCBk
NTBlMDk0MTE3ZGY1NmRiNDlkNzVmMTYyMGM0YWJhNTEzMTlmYzNjLi5mODViMTlmZDliZDkwYzM0
NzZkZWRjYmU1ODI1YjgyZmI0MGRlODJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcwpAQCAtMSwyMSArMSwxMSBAQAogLypnbG9iYWwgc2VsZiovCiAvKmpzaGludCBs
YXRlZGVmOiBub2Z1bmMqLwotLyoKLURpc3RyaWJ1dGVkIHVuZGVyIGJvdGggdGhlIFczQyBUZXN0
IFN1aXRlIExpY2Vuc2UgWzFdIGFuZCB0aGUgVzNDCi0zLWNsYXVzZSBCU0QgTGljZW5zZSBbMl0u
IFRvIGNvbnRyaWJ1dGUgdG8gYSBXM0MgVGVzdCBTdWl0ZSwgc2VlIHRoZQotcG9saWNpZXMgYW5k
IGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCi0KLVsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0
aXVtL0xlZ2FsLzIwMDgvMDQtdGVzdHN1aXRlLWxpY2Vuc2UKLVsyXSBodHRwOi8vd3d3LnczLm9y
Zy9Db25zb3J0aXVtL0xlZ2FsLzIwMDgvMDMtYnNkLWxpY2Vuc2UKLVszXSBodHRwOi8vd3d3Lncz
Lm9yZy8yMDA0LzEwLzI3LXRlc3RjYXNlcwotKi8KIAogLyogRG9jdW1lbnRhdGlvbjogaHR0cHM6
Ly93ZWItcGxhdGZvcm0tdGVzdHMub3JnL3dyaXRpbmctdGVzdHMvdGVzdGhhcm5lc3MtYXBpLmh0
bWwKICAqICguLi9kb2NzL193cml0aW5nLXRlc3RzL3Rlc3RoYXJuZXNzLWFwaS5tZCkgKi8KIAog
KGZ1bmN0aW9uIChnbG9iYWxfc2NvcGUpCiB7Ci0gICAgdmFyIGRlYnVnID0gZmFsc2U7CiAgICAg
Ly8gZGVmYXVsdCB0aW1lb3V0IGlzIDEwIHNlY29uZHMsIHRlc3QgY2FuIG92ZXJyaWRlIGlmIG5l
ZWRlZAogICAgIHZhciBzZXR0aW5ncyA9IHsKICAgICAgICAgb3V0cHV0OnRydWUsCkBAIC0yNCw3
ICsxNCw4IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAg
ICAgImxvbmciOjYwMDAwCiAgICAgICAgIH0sCiAgICAgICAgIHRlc3RfdGltZW91dDpudWxsLAot
ICAgICAgICBtZXNzYWdlX2V2ZW50czogWyJzdGFydCIsICJ0ZXN0X3N0YXRlIiwgInJlc3VsdCIs
ICJjb21wbGV0aW9uIl0KKyAgICAgICAgbWVzc2FnZV9ldmVudHM6IFsic3RhcnQiLCAidGVzdF9z
dGF0ZSIsICJyZXN1bHQiLCAiY29tcGxldGlvbiJdLAorICAgICAgICBkZWJ1ZzogZmFsc2UsCiAg
ICAgfTsKIAogICAgIHZhciB4aHRtbF9ucyA9ICJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IjsKQEAgLTg3LDE0ICs3OCwxNSBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFsz
XS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Q6IHRl
c3Quc3RydWN0dXJlZF9jbG9uZSgpfSk7CiAgICAgICAgICAgICAgICAgICAgICB9XSwKICAgICAg
ICAgICAgIGNvbXBsZXRpb246IFthZGRfY29tcGxldGlvbl9jYWxsYmFjaywgcmVtb3ZlX2NvbXBs
ZXRpb25fY2FsbGJhY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKHRlc3Rz
LCBoYXJuZXNzX3N0YXR1cykgeworICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICh0
ZXN0cywgaGFybmVzc19zdGF0dXMsIGFzc2VydHMpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmFyIGNsb25lZF90ZXN0cyA9IG1hcCh0ZXN0cywgZnVuY3Rpb24odGVzdCkgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRlc3Quc3RydWN0dXJlZF9jbG9u
ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpc19vYmouX2Rpc3BhdGNoKCJjb21wbGV0aW9uX2NhbGxiYWNrIiwgW3Rl
c3RzLCBoYXJuZXNzX3N0YXR1c10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7dHlwZTogImNvbXBsZXRlIiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0czogY2xvbmVkX3Rlc3RzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogaGFybmVzc19z
dGF0dXMuc3RydWN0dXJlZF9jbG9uZSgpfSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBoYXJuZXNzX3N0YXR1cy5zdHJ1Y3R1cmVkX2Ns
b25lKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0czogYXNzZXJ0cy5tYXAoYXNzZXJ0ID0+IGFzc2VydC5zdHJ1Y3R1cmVkX2Nsb25lKCkp
fSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgfV0KICAgICAgICAgfQogCkBAIC0xMzEsMTEg
KzEyMyw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGhhc19zZWxlY3RvcikgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdbc2VsZWN0b3Jd
LmFwcGx5KHVuZGVmaW5lZCwgY2FsbGJhY2tfYXJncyk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
ZGVidWcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGU7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge30KICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICBpZiAoc3VwcG9ydHNfcG9zdF9tZXNzYWdlKHcpICYmIHcgIT09IHNlbGYpIHsKQEAg
LTE5Miw4ICsxODAsOCBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAg
ICAgICAgICAgIHRoaXNfb2JqLm91dHB1dF9oYW5kbGVyLnNob3dfc3RhdHVzKCk7CiAgICAgICAg
IH0pOwogCi0gICAgICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uICh0ZXN0cywg
aGFybmVzc19zdGF0dXMpIHsKLSAgICAgICAgICAgIHRoaXNfb2JqLm91dHB1dF9oYW5kbGVyLnNo
b3dfcmVzdWx0cyh0ZXN0cywgaGFybmVzc19zdGF0dXMpOworICAgICAgICBhZGRfY29tcGxldGlv
bl9jYWxsYmFjayhmdW5jdGlvbiAodGVzdHMsIGhhcm5lc3Nfc3RhdHVzLCBhc3NlcnRzX3J1bikg
eworICAgICAgICAgICAgdGhpc19vYmoub3V0cHV0X2hhbmRsZXIuc2hvd19yZXN1bHRzKHRlc3Rz
LCBoYXJuZXNzX3N0YXR1cywgYXNzZXJ0c19ydW4pOwogICAgICAgICB9KTsKICAgICAgICAgdGhp
cy5zZXR1cF9tZXNzYWdlcyhzZXR0aW5ncy5tZXNzYWdlX2V2ZW50cyk7CiAgICAgfTsKQEAgLTMx
NCwxNCArMzAyLDE1IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAg
ICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgYWRkX2Nv
bXBsZXRpb25fY2FsbGJhY2soCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24odGVzdHMsIGhhcm5l
c3Nfc3RhdHVzKSB7CisgICAgICAgICAgICAgICAgZnVuY3Rpb24odGVzdHMsIGhhcm5lc3Nfc3Rh
dHVzLCBhc3NlcnRzKSB7CiAgICAgICAgICAgICAgICAgICAgIHRoaXNfb2JqLl9kaXNwYXRjaCh7
CiAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAiY29tcGxldGUiLAogICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdHM6IG1hcCh0ZXN0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jdGlvbih0ZXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biB0ZXN0LnN0cnVjdHVyZWRfY2xvbmUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogaGFybmVzc19zdGF0dXMuc3RydWN0
dXJlZF9jbG9uZSgpCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IGhhcm5lc3Nfc3Rh
dHVzLnN0cnVjdHVyZWRfY2xvbmUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydHM6
IGFzc2VydHMubWFwKGFzc2VydCA9PiBhc3NlcnQuc3RydWN0dXJlZF9jbG9uZSgpKSwKICAgICAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgfTsKQEAgLTUwMCwx
MSArNDg5LDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAg
ICAgICByZXR1cm4gbmV3IERlZGljYXRlZFdvcmtlclRlc3RFbnZpcm9ubWVudCgpOwogICAgICAg
ICB9CiAKLSAgICAgICAgaWYgKCEoJ2xvY2F0aW9uJyBpbiBnbG9iYWxfc2NvcGUpKSB7Ci0gICAg
ICAgICAgICByZXR1cm4gbmV3IFNoZWxsVGVzdEVudmlyb25tZW50KCk7Ci0gICAgICAgIH0KLQot
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHRlc3QgZW52aXJvbm1lbnQiKTsK
KyAgICAgICAgcmV0dXJuIG5ldyBTaGVsbFRlc3RFbnZpcm9ubWVudCgpOwogICAgIH0KIAogICAg
IHZhciB0ZXN0X2Vudmlyb25tZW50ID0gY3JlYXRlX3Rlc3RfZW52aXJvbm1lbnQoKTsKQEAgLTEx
ODcsMTkgKzExNzIsNTMgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAg
ICAgICogQXNzZXJ0aW9ucwogICAgICAqLwogCisgICAgZnVuY3Rpb24gZXhwb3NlX2Fzc2VydChm
LCBuYW1lKSB7CisgICAgICAgIGZ1bmN0aW9uIGFzc2VydF93cmFwcGVyKC4uLmFyZ3MpIHsKKyAg
ICAgICAgICAgIGxldCBzdGF0dXMgPSBUZXN0LnN0YXR1c2VzLlRJTUVPVVQ7CisgICAgICAgICAg
ICBsZXQgc3RhY2sgPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBp
ZiAoc2V0dGluZ3MuZGVidWcpIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZS5kZWJ1Zygi
QVNTRVJUIiwgbmFtZSwgdGVzdHMuY3VycmVudF90ZXN0ICYmIHRlc3RzLmN1cnJlbnRfdGVzdC5u
YW1lLCBhcmdzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHRlc3Rz
Lm91dHB1dCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0cy5zZXRfYXNzZXJ0KG5hbWUsIGFy
Z3MpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb25zdCBydiA9IGYuYXBw
bHkodW5kZWZpbmVkLCBhcmdzKTsKKyAgICAgICAgICAgICAgICBzdGF0dXMgPSBUZXN0LnN0YXR1
c2VzLlBBU1M7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJ2OworICAgICAgICAgICAgfSBjYXRj
aChlKSB7CisgICAgICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBBc3NlcnRpb25FcnJvcikg
eworICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBUZXN0LnN0YXR1c2VzLkZBSUw7CisgICAg
ICAgICAgICAgICAgICAgIHN0YWNrID0gZS5zdGFjazsKKyAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gVGVzdC5zdGF0dXNlcy5FUlJPUjsKKyAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9
IGZpbmFsbHkgeworICAgICAgICAgICAgICAgIGlmICh0ZXN0cy5vdXRwdXQgJiYgIXN0YWNrKSB7
CisgICAgICAgICAgICAgICAgICAgIHN0YWNrID0gZ2V0X3N0YWNrKCk7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGlmICh0ZXN0cy5vdXRwdXQpIHsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdHMuc2V0X2Fzc2VydF9zdGF0dXMoc3RhdHVzLCBzdGFjayk7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGV4cG9zZShhc3NlcnRf
d3JhcHBlciwgbmFtZSk7CisgICAgfQorCiAgICAgZnVuY3Rpb24gYXNzZXJ0X3RydWUoYWN0dWFs
LCBkZXNjcmlwdGlvbikKICAgICB7CiAgICAgICAgIGFzc2VydChhY3R1YWwgPT09IHRydWUsICJh
c3NlcnRfdHJ1ZSIsIGRlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZXhwZWN0ZWQgdHJ1ZSBnb3QgJHthY3R1YWx9Iiwge2FjdHVhbDphY3R1YWx9KTsKICAgICB9
Ci0gICAgZXhwb3NlKGFzc2VydF90cnVlLCAiYXNzZXJ0X3RydWUiKTsKKyAgICBleHBvc2VfYXNz
ZXJ0KGFzc2VydF90cnVlLCAiYXNzZXJ0X3RydWUiKTsKIAogICAgIGZ1bmN0aW9uIGFzc2VydF9m
YWxzZShhY3R1YWwsIGRlc2NyaXB0aW9uKQogICAgIHsKICAgICAgICAgYXNzZXJ0KGFjdHVhbCA9
PT0gZmFsc2UsICJhc3NlcnRfZmFsc2UiLCBkZXNjcmlwdGlvbiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJleHBlY3RlZCBmYWxzZSBnb3QgJHthY3R1YWx9Iiwge2FjdHVhbDph
Y3R1YWx9KTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF9mYWxzZSwgImFzc2VydF9mYWxzZSIp
OworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X2ZhbHNlLCAiYXNzZXJ0X2ZhbHNlIik7CiAKICAg
ICBmdW5jdGlvbiBzYW1lX3ZhbHVlKHgsIHkpIHsKICAgICAgICAgaWYgKHkgIT09IHkpIHsKQEAg
LTEyMjksNyArMTI0OCw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkICR7
ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHtleHBlY3RlZDpleHBlY3RlZCwgYWN0dWFsOmFjdHVhbH0pOwog
ICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2VxdWFscywgImFzc2VydF9lcXVhbHMiKTsKKyAgICBl
eHBvc2VfYXNzZXJ0KGFzc2VydF9lcXVhbHMsICJhc3NlcnRfZXF1YWxzIik7CiAKICAgICBmdW5j
dGlvbiBhc3NlcnRfbm90X2VxdWFscyhhY3R1YWwsIGV4cGVjdGVkLCBkZXNjcmlwdGlvbikKICAg
ICB7CkBAIC0xMjQxLDcgKzEyNjAsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1z
IFszXS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZ290
IGRpc2FsbG93ZWQgdmFsdWUgJHthY3R1YWx9IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7YWN0dWFsOmFjdHVhbH0pOwogICAgIH0KLSAgICBleHBvc2Uo
YXNzZXJ0X25vdF9lcXVhbHMsICJhc3NlcnRfbm90X2VxdWFscyIpOworICAgIGV4cG9zZV9hc3Nl
cnQoYXNzZXJ0X25vdF9lcXVhbHMsICJhc3NlcnRfbm90X2VxdWFscyIpOwogCiAgICAgZnVuY3Rp
b24gYXNzZXJ0X2luX2FycmF5KGFjdHVhbCwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKQogICAgIHsK
QEAgLTEyNDksNyArMTI2OCw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNd
LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUg
JHthY3R1YWx9IG5vdCBpbiBhcnJheSAke2V4cGVjdGVkfSIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthY3R1YWw6YWN0dWFsLCBleHBlY3RlZDpleHBl
Y3RlZH0pOwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2luX2FycmF5LCAiYXNzZXJ0X2luX2Fy
cmF5Iik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfaW5fYXJyYXksICJhc3NlcnRfaW5fYXJy
YXkiKTsKIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gd2FzIGRlcHJlY2F0ZWQgaW4gSnVseSBvZiAy
MDE1LgogICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9pc3N1ZXMvMjAzMwpAQCAtMTI4Nyw3ICsxMzA2LDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1
dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICB9CiAgICAgICAgICBjaGVja19lcXVhbChhY3R1YWws
IGV4cGVjdGVkLCBbXSk7CiAgICAgfQotICAgIGV4cG9zZShhc3NlcnRfb2JqZWN0X2VxdWFscywg
ImFzc2VydF9vYmplY3RfZXF1YWxzIik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfb2JqZWN0
X2VxdWFscywgImFzc2VydF9vYmplY3RfZXF1YWxzIik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRf
YXJyYXlfZXF1YWxzKGFjdHVhbCwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKQogICAgIHsKQEAgLTEz
NDQsNyArMTM2Myw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAg
ICAgICAgICAgICAgICAgICBhcnJheUV4cGVjdGVkOnNob3J0ZW5fYXJyYXkoZXhwZWN0ZWQsIGkp
LCBhcnJheUFjdHVhbDpzaG9ydGVuX2FycmF5KGFjdHVhbCwgaSl9KTsKICAgICAgICAgfQogICAg
IH0KLSAgICBleHBvc2UoYXNzZXJ0X2FycmF5X2VxdWFscywgImFzc2VydF9hcnJheV9lcXVhbHMi
KTsKKyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF9hcnJheV9lcXVhbHMsICJhc3NlcnRfYXJyYXlf
ZXF1YWxzIik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfYXJyYXlfYXBwcm94X2VxdWFscyhhY3R1
YWwsIGV4cGVjdGVkLCBlcHNpbG9uLCBkZXNjcmlwdGlvbikKICAgICB7CkBAIC0xMzcyLDcgKzEz
OTEsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAg
ICAgICAgICB7aTppLCBleHBlY3RlZDpleHBlY3RlZFtpXSwgYWN0dWFsOmFjdHVhbFtpXSwgZXBz
aWxvbjplcHNpbG9ufSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF9hcnJh
eV9hcHByb3hfZXF1YWxzLCAiYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMiKTsKKyAgICBleHBv
c2VfYXNzZXJ0KGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzLCAiYXNzZXJ0X2FycmF5X2FwcHJv
eF9lcXVhbHMiKTsKIAogICAgIGZ1bmN0aW9uIGFzc2VydF9hcHByb3hfZXF1YWxzKGFjdHVhbCwg
ZXhwZWN0ZWQsIGVwc2lsb24sIGRlc2NyaXB0aW9uKQogICAgIHsKQEAgLTEzOTUsNyArMTQxNCw3
IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhhY3R1YWwsIGV4cGVjdGVkKTsKICAgICAgICAgfQogICAgIH0KLSAgICBleHBv
c2UoYXNzZXJ0X2FwcHJveF9lcXVhbHMsICJhc3NlcnRfYXBwcm94X2VxdWFscyIpOworICAgIGV4
cG9zZV9hc3NlcnQoYXNzZXJ0X2FwcHJveF9lcXVhbHMsICJhc3NlcnRfYXBwcm94X2VxdWFscyIp
OwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X2xlc3NfdGhhbihhY3R1YWwsIGV4cGVjdGVkLCBkZXNj
cmlwdGlvbikKICAgICB7CkBAIC0xNDEyLDcgKzE0MzEsNyBAQCBwb2xpY2llcyBhbmQgY29udHJp
YnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICJleHBlY3RlZCBhIG51bWJlciBsZXNz
IHRoYW4gJHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH0iLAogICAgICAgICAgICAgICAge2V4
cGVjdGVkOmV4cGVjdGVkLCBhY3R1YWw6YWN0dWFsfSk7CiAgICAgfQotICAgIGV4cG9zZShhc3Nl
cnRfbGVzc190aGFuLCAiYXNzZXJ0X2xlc3NfdGhhbiIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNz
ZXJ0X2xlc3NfdGhhbiwgImFzc2VydF9sZXNzX3RoYW4iKTsKIAogICAgIGZ1bmN0aW9uIGFzc2Vy
dF9ncmVhdGVyX3RoYW4oYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRpb24pCiAgICAgewpAQCAt
MTQyOSw3ICsxNDQ4LDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAg
ICAgICAgICAgICAgICAiZXhwZWN0ZWQgYSBudW1iZXIgZ3JlYXRlciB0aGFuICR7ZXhwZWN0ZWR9
IGJ1dCBnb3QgJHthY3R1YWx9IiwKICAgICAgICAgICAgICAgIHtleHBlY3RlZDpleHBlY3RlZCwg
YWN0dWFsOmFjdHVhbH0pOwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2dyZWF0ZXJfdGhhbiwg
ImFzc2VydF9ncmVhdGVyX3RoYW4iKTsKKyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF9ncmVhdGVy
X3RoYW4sICJhc3NlcnRfZ3JlYXRlcl90aGFuIik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfYmV0
d2Vlbl9leGNsdXNpdmUoYWN0dWFsLCBsb3dlciwgdXBwZXIsIGRlc2NyaXB0aW9uKQogICAgIHsK
QEAgLTE0NDcsNyArMTQ2Niw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNd
LgogICAgICAgICAgICAgICAgImFuZCBsZXNzIHRoYW4gJHt1cHBlcn0gYnV0IGdvdCAke2FjdHVh
bH0iLAogICAgICAgICAgICAgICAge2xvd2VyOmxvd2VyLCB1cHBlcjp1cHBlciwgYWN0dWFsOmFj
dHVhbH0pOwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0X2JldHdlZW5fZXhjbHVzaXZlLCAiYXNz
ZXJ0X2JldHdlZW5fZXhjbHVzaXZlIik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfYmV0d2Vl
bl9leGNsdXNpdmUsICJhc3NlcnRfYmV0d2Vlbl9leGNsdXNpdmUiKTsKIAogICAgIGZ1bmN0aW9u
IGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRpb24pCiAg
ICAgewpAQCAtMTQ2NCw3ICsxNDgzLDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3Jt
cyBbM10uCiAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIG9yIGVx
dWFsIHRvICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9IiwKICAgICAgICAgICAgICAgIHtl
eHBlY3RlZDpleHBlY3RlZCwgYWN0dWFsOmFjdHVhbH0pOwogICAgIH0KLSAgICBleHBvc2UoYXNz
ZXJ0X2xlc3NfdGhhbl9lcXVhbCwgImFzc2VydF9sZXNzX3RoYW5fZXF1YWwiKTsKKyAgICBleHBv
c2VfYXNzZXJ0KGFzc2VydF9sZXNzX3RoYW5fZXF1YWwsICJhc3NlcnRfbGVzc190aGFuX2VxdWFs
Iik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKGFjdHVhbCwgZXhw
ZWN0ZWQsIGRlc2NyaXB0aW9uKQogICAgIHsKQEAgLTE0ODEsNyArMTUwMCw3IEBAIHBvbGljaWVz
IGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgImV4cGVjdGVkIGEg
bnVtYmVyIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAke2V4cGVjdGVkfSBidXQgZ290ICR7YWN0
dWFsfSIsCiAgICAgICAgICAgICAgICB7ZXhwZWN0ZWQ6ZXhwZWN0ZWQsIGFjdHVhbDphY3R1YWx9
KTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwsICJhc3NlcnRf
Z3JlYXRlcl90aGFuX2VxdWFsIik7CisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfZ3JlYXRlcl90
aGFuX2VxdWFsLCAiYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbCIpOwogCiAgICAgZnVuY3Rpb24g
YXNzZXJ0X2JldHdlZW5faW5jbHVzaXZlKGFjdHVhbCwgbG93ZXIsIHVwcGVyLCBkZXNjcmlwdGlv
bikKICAgICB7CkBAIC0xNDk5LDcgKzE1MTgsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9u
IGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICJhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICR7
dXBwZXJ9IGJ1dCBnb3QgJHthY3R1YWx9IiwKICAgICAgICAgICAgICAgIHtsb3dlcjpsb3dlciwg
dXBwZXI6dXBwZXIsIGFjdHVhbDphY3R1YWx9KTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF9i
ZXR3ZWVuX2luY2x1c2l2ZSwgImFzc2VydF9iZXR3ZWVuX2luY2x1c2l2ZSIpOworICAgIGV4cG9z
ZV9hc3NlcnQoYXNzZXJ0X2JldHdlZW5faW5jbHVzaXZlLCAiYXNzZXJ0X2JldHdlZW5faW5jbHVz
aXZlIik7CiAKICAgICBmdW5jdGlvbiBhc3NlcnRfcmVnZXhwX21hdGNoKGFjdHVhbCwgZXhwZWN0
ZWQsIGRlc2NyaXB0aW9uKSB7CiAgICAgICAgIC8qCkBAIC0xNTEwLDcgKzE1MjksNyBAQCBwb2xp
Y2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICJleHBlY3Rl
ZCAke2V4cGVjdGVkfSBidXQgZ290ICR7YWN0dWFsfSIsCiAgICAgICAgICAgICAgICB7ZXhwZWN0
ZWQ6ZXhwZWN0ZWQsIGFjdHVhbDphY3R1YWx9KTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF9y
ZWdleHBfbWF0Y2gsICJhc3NlcnRfcmVnZXhwX21hdGNoIik7CisgICAgZXhwb3NlX2Fzc2VydChh
c3NlcnRfcmVnZXhwX21hdGNoLCAiYXNzZXJ0X3JlZ2V4cF9tYXRjaCIpOwogCiAgICAgZnVuY3Rp
b24gYXNzZXJ0X2NsYXNzX3N0cmluZyhvYmplY3QsIGNsYXNzX3N0cmluZywgZGVzY3JpcHRpb24p
IHsKICAgICAgICAgdmFyIGFjdHVhbCA9IHt9LnRvU3RyaW5nLmNhbGwob2JqZWN0KTsKQEAgLTE1
MTksMjcgKzE1MzgsMjcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgJHtl
eHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH0iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAge2V4cGVjdGVkOmV4cGVjdGVkLCBhY3R1YWw6YWN0dWFsfSk7CiAg
ICAgfQotICAgIGV4cG9zZShhc3NlcnRfY2xhc3Nfc3RyaW5nLCAiYXNzZXJ0X2NsYXNzX3N0cmlu
ZyIpOwotCisgICAgZXhwb3NlX2Fzc2VydChhc3NlcnRfY2xhc3Nfc3RyaW5nLCAiYXNzZXJ0X2Ns
YXNzX3N0cmluZyIpOwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X293bl9wcm9wZXJ0eShvYmplY3Qs
IHByb3BlcnR5X25hbWUsIGRlc2NyaXB0aW9uKSB7CiAgICAgICAgIGFzc2VydChvYmplY3QuaGFz
T3duUHJvcGVydHkocHJvcGVydHlfbmFtZSksCiAgICAgICAgICAgICAgICAiYXNzZXJ0X293bl9w
cm9wZXJ0eSIsIGRlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgImV4cGVjdGVkIHByb3BlcnR5
ICR7cH0gbWlzc2luZyIsIHtwOnByb3BlcnR5X25hbWV9KTsKICAgICB9Ci0gICAgZXhwb3NlKGFz
c2VydF9vd25fcHJvcGVydHksICJhc3NlcnRfb3duX3Byb3BlcnR5Iik7CisgICAgZXhwb3NlX2Fz
c2VydChhc3NlcnRfb3duX3Byb3BlcnR5LCAiYXNzZXJ0X293bl9wcm9wZXJ0eSIpOwogCiAgICAg
ZnVuY3Rpb24gYXNzZXJ0X25vdF9vd25fcHJvcGVydHkob2JqZWN0LCBwcm9wZXJ0eV9uYW1lLCBk
ZXNjcmlwdGlvbikgewogICAgICAgICBhc3NlcnQoIW9iamVjdC5oYXNPd25Qcm9wZXJ0eShwcm9w
ZXJ0eV9uYW1lKSwKICAgICAgICAgICAgICAgICJhc3NlcnRfbm90X293bl9wcm9wZXJ0eSIsIGRl
c2NyaXB0aW9uLAogICAgICAgICAgICAgICAgInVuZXhwZWN0ZWQgcHJvcGVydHkgJHtwfSBpcyBm
b3VuZCBvbiBvYmplY3QiLCB7cDpwcm9wZXJ0eV9uYW1lfSk7CiAgICAgfQotICAgIGV4cG9zZShh
c3NlcnRfbm90X293bl9wcm9wZXJ0eSwgImFzc2VydF9ub3Rfb3duX3Byb3BlcnR5Iik7CisgICAg
ZXhwb3NlX2Fzc2VydChhc3NlcnRfbm90X293bl9wcm9wZXJ0eSwgImFzc2VydF9ub3Rfb3duX3By
b3BlcnR5Iik7CiAKICAgICBmdW5jdGlvbiBfYXNzZXJ0X2luaGVyaXRzKG5hbWUpIHsKICAgICAg
ICAgcmV0dXJuIGZ1bmN0aW9uIChvYmplY3QsIHByb3BlcnR5X25hbWUsIGRlc2NyaXB0aW9uKQog
ICAgICAgICB7Ci0gICAgICAgICAgICBhc3NlcnQodHlwZW9mIG9iamVjdCA9PT0gIm9iamVjdCIg
fHwgdHlwZW9mIG9iamVjdCA9PT0gImZ1bmN0aW9uIiB8fAorICAgICAgICAgICAgYXNzZXJ0KCh0
eXBlb2Ygb2JqZWN0ID09PSAib2JqZWN0IiAmJiBvYmplY3QgIT09IG51bGwpIHx8CisgICAgICAg
ICAgICAgICAgICAgdHlwZW9mIG9iamVjdCA9PT0gImZ1bmN0aW9uIiB8fAogICAgICAgICAgICAg
ICAgICAgIC8vIE9yIGhhcyBbW0lzSFRNTEREQV1dIHNsb3QKICAgICAgICAgICAgICAgICAgICBT
dHJpbmcob2JqZWN0KSA9PT0gIltvYmplY3QgSFRNTEFsbENvbGxlY3Rpb25dIiwKICAgICAgICAg
ICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKQEAgLTE1NjAsOCArMTU3OSw4IEBAIHBvbGlj
aWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgIHtwOnBy
b3BlcnR5X25hbWV9KTsKICAgICAgICAgfTsKICAgICB9Ci0gICAgZXhwb3NlKF9hc3NlcnRfaW5o
ZXJpdHMoImFzc2VydF9pbmhlcml0cyIpLCAiYXNzZXJ0X2luaGVyaXRzIik7Ci0gICAgZXhwb3Nl
KF9hc3NlcnRfaW5oZXJpdHMoImFzc2VydF9pZGxfYXR0cmlidXRlIiksICJhc3NlcnRfaWRsX2F0
dHJpYnV0ZSIpOworICAgIGV4cG9zZV9hc3NlcnQoX2Fzc2VydF9pbmhlcml0cygiYXNzZXJ0X2lu
aGVyaXRzIiksICJhc3NlcnRfaW5oZXJpdHMiKTsKKyAgICBleHBvc2VfYXNzZXJ0KF9hc3NlcnRf
aW5oZXJpdHMoImFzc2VydF9pZGxfYXR0cmlidXRlIiksICJhc3NlcnRfaWRsX2F0dHJpYnV0ZSIp
OwogCiAgICAgZnVuY3Rpb24gYXNzZXJ0X3JlYWRvbmx5KG9iamVjdCwgcHJvcGVydHlfbmFtZSwg
ZGVzY3JpcHRpb24pCiAgICAgewpAQCAtMTU3OCw3ICsxNTk3LDcgQEAgcG9saWNpZXMgYW5kIGNv
bnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAgb2JqZWN0W3Byb3BlcnR5X25hbWVd
ID0gaW5pdGlhbF92YWx1ZTsKICAgICAgICAgIH0KICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF9y
ZWFkb25seSwgImFzc2VydF9yZWFkb25seSIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X3Jl
YWRvbmx5LCAiYXNzZXJ0X3JlYWRvbmx5Iik7CiAKICAgICAvKioKICAgICAgKiBBc3NlcnQgYSBK
UyBFcnJvciB3aXRoIHRoZSBleHBlY3RlZCBjb25zdHJ1Y3RvciBpcyB0aHJvd24uCkBAIC0xNTky
LDcgKzE2MTEsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAg
ICAgYXNzZXJ0X3Rocm93c19qc19pbXBsKGNvbnN0cnVjdG9yLCBmdW5jLCBkZXNjcmlwdGlvbiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhc3NlcnRfdGhyb3dzX2pzIik7CiAgICAg
fQotICAgIGV4cG9zZShhc3NlcnRfdGhyb3dzX2pzLCAiYXNzZXJ0X3Rocm93c19qcyIpOworICAg
IGV4cG9zZV9hc3NlcnQoYXNzZXJ0X3Rocm93c19qcywgImFzc2VydF90aHJvd3NfanMiKTsKIAog
ICAgIC8qKgogICAgICAqIExpa2UgYXNzZXJ0X3Rocm93c19qcyBidXQgYWxsb3dzIHNwZWNpZnlp
bmcgdGhlIGFzc2VydGlvbiB0eXBlCkBAIC0xNjkwLDcgKzE3MDksNyBAQCBwb2xpY2llcyBhbmQg
Y29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgfQogICAgICAgICBhc3NlcnRfdGhyb3dz
X2RvbV9pbXBsKHR5cGUsIGZ1bmMsIGRlc2NyaXB0aW9uLCAiYXNzZXJ0X3Rocm93c19kb20iLCBj
b25zdHJ1Y3RvcikKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF90aHJvd3NfZG9tLCAiYXNzZXJ0
X3Rocm93c19kb20iKTsKKyAgICBleHBvc2VfYXNzZXJ0KGFzc2VydF90aHJvd3NfZG9tLCAiYXNz
ZXJ0X3Rocm93c19kb20iKTsKIAogICAgIC8qKgogICAgICAqIFNpbWlsYXIgdG8gYXNzZXJ0X3Ro
cm93c19kb20gYnV0IGFsbG93cyBzcGVjaWZ5aW5nIHRoZSBhc3NlcnRpb24gdHlwZQpAQCAtMTg1
Myw3ICsxODcyLDcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAg
ICAgIGFzc2VydF90aHJvd3NfZXhhY3RseV9pbXBsKGV4Y2VwdGlvbiwgZnVuYywgZGVzY3JpcHRp
b24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhc3NlcnRfdGhyb3dzX2V4
YWN0bHkiKTsKICAgICB9Ci0gICAgZXhwb3NlKGFzc2VydF90aHJvd3NfZXhhY3RseSwgImFzc2Vy
dF90aHJvd3NfZXhhY3RseSIpOworICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X3Rocm93c19leGFj
dGx5LCAiYXNzZXJ0X3Rocm93c19leGFjdGx5Iik7CiAKICAgICAvKioKICAgICAgKiBMaWtlIGFz
c2VydF90aHJvd3NfZXhhY3RseSBidXQgYWxsb3dzIHNwZWNpZnlpbmcgdGhlIGFzc2VydGlvbiB0
eXBlCkBAIC0xODgxLDcgKzE5MDAsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1z
IFszXS4KICAgICAgICAgIGFzc2VydChmYWxzZSwgImFzc2VydF91bnJlYWNoZWQiLCBkZXNjcmlw
dGlvbiwKICAgICAgICAgICAgICAgICAiUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlIik7CiAgICAg
fQotICAgIGV4cG9zZShhc3NlcnRfdW5yZWFjaGVkLCAiYXNzZXJ0X3VucmVhY2hlZCIpOworICAg
IGV4cG9zZV9hc3NlcnQoYXNzZXJ0X3VucmVhY2hlZCwgImFzc2VydF91bnJlYWNoZWQiKTsKIAog
ICAgIGZ1bmN0aW9uIGFzc2VydF9hbnkoYXNzZXJ0X2Z1bmMsIGFjdHVhbCwgZXhwZWN0ZWRfYXJy
YXkpCiAgICAgewpAQCAtMTkwMiw2ICsxOTIxLDkgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlv
biBmb3JtcyBbM10uCiAgICAgICAgICAgICB0aHJvdyBuZXcgQXNzZXJ0aW9uRXJyb3IoZXJyb3Jz
LmpvaW4oIlxuXG4iKSk7CiAgICAgICAgIH0KICAgICB9CisgICAgLy8gRklYTUU6IGFzc2VydF9h
bnkgY2Fubm90IHVzZSBleHBvc2VfYXNzZXJ0LCBiZWNhdXNlIGFzc2VydF93cmFwcGVyIGRvZXMK
KyAgICAvLyBub3Qgc3VwcG9ydCBuZXN0ZWQgYXNzZXJ0IGNhbGxzIChlLmcuIHRvIGFzc2VydF9m
dW5jKS4gV2UgbmVlZCB0bworICAgIC8vIHN1cHBvcnQgYnlwYXNzaW5nIGFzc2VydF93cmFwcGVy
IGZvciB0aGUgaW5uZXIgYXNzZXJ0cyBoZXJlLgogICAgIGV4cG9zZShhc3NlcnRfYW55LCAiYXNz
ZXJ0X2FueSIpOwogCiAgICAgLyoqCkBAIC0xOTE5LDcgKzE5NDEsNyBAQCBwb2xpY2llcyBhbmQg
Y29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICBmdW5jdGlvbiBhc3NlcnRfaW1wbGVtZW50cyhj
b25kaXRpb24sIGRlc2NyaXB0aW9uKSB7CiAgICAgICAgIGFzc2VydCghIWNvbmRpdGlvbiwgImFz
c2VydF9pbXBsZW1lbnRzIiwgZGVzY3JpcHRpb24pOwogICAgIH0KLSAgICBleHBvc2UoYXNzZXJ0
X2ltcGxlbWVudHMsICJhc3NlcnRfaW1wbGVtZW50cyIpCisgICAgZXhwb3NlX2Fzc2VydChhc3Nl
cnRfaW1wbGVtZW50cywgImFzc2VydF9pbXBsZW1lbnRzIikKIAogICAgIC8qKgogICAgICAqIEFz
c2VydCB0aGF0IGFuIG9wdGlvbmFsIGZlYXR1cmUgaXMgaW1wbGVtZW50ZWQsIGJhc2VkIG9uIGEg
J3RydXRoeScgY29uZGl0aW9uLgpAQCAtMTkzOSw3ICsxOTYxLDcgQEAgcG9saWNpZXMgYW5kIGNv
bnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICB0aHJvdyBuZXcgT3B0aW9uYWxGZWF0
dXJlVW5zdXBwb3J0ZWRFcnJvcihkZXNjcmlwdGlvbik7CiAgICAgICAgIH0KICAgICB9Ci0gICAg
ZXhwb3NlKGFzc2VydF9pbXBsZW1lbnRzX29wdGlvbmFsLCAiYXNzZXJ0X2ltcGxlbWVudHNfb3B0
aW9uYWwiKQorICAgIGV4cG9zZV9hc3NlcnQoYXNzZXJ0X2ltcGxlbWVudHNfb3B0aW9uYWwsICJh
c3NlcnRfaW1wbGVtZW50c19vcHRpb25hbCIpCiAKICAgICBmdW5jdGlvbiBUZXN0KG5hbWUsIHBy
b3BlcnRpZXMpCiAgICAgewpAQCAtMTk5OSw2ICsyMDIxLDE4IEBAIHBvbGljaWVzIGFuZCBjb250
cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICBDT01QTEVURTo0CiAgICAgfTsKIAorICAgIFRl
c3QucHJvdG90eXBlLnN0YXR1c19mb3JtYXRzID0geworICAgICAgICAwOiAiUGFzcyIsCisgICAg
ICAgIDE6ICJGYWlsIiwKKyAgICAgICAgMjogIlRpbWVvdXQiLAorICAgICAgICAzOiAiTm90IFJ1
biIsCisgICAgICAgIDQ6ICJPcHRpb25hbCBGZWF0dXJlIFVuc3VwcG9ydGVkIiwKKyAgICB9CisK
KyAgICBUZXN0LnByb3RvdHlwZS5mb3JtYXRfc3RhdHVzID0gZnVuY3Rpb24oKSB7CisgICAgICAg
IHJldHVybiB0aGlzLnN0YXR1c19mb3JtYXRzW3RoaXMuc3RhdHVzXTsKKyAgICB9CisKICAgICBU
ZXN0LnByb3RvdHlwZS5zdHJ1Y3R1cmVkX2Nsb25lID0gZnVuY3Rpb24oKQogICAgIHsKICAgICAg
ICAgaWYgKCF0aGlzLl9zdHJ1Y3R1cmVkX2Nsb25lKSB7CkBAIC0yMDIzLDExICsyMDU3LDE2IEBA
IHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNdLgogICAgICAgICBpZiAodGhpcy5w
aGFzZSA+IHRoaXMucGhhc2VzLlNUQVJURUQpIHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQorCisgICAgICAgIGlmIChzZXR0aW5ncy5kZWJ1ZyAmJiB0aGlzLnBoYXNlICE9PSB0aGlz
LnBoYXNlcy5TVEFSVEVEKSB7CisgICAgICAgICAgICBjb25zb2xlLmxvZygiVEVTVCBTVEFSVCIs
IHRoaXMubmFtZSk7CisgICAgICAgIH0KICAgICAgICAgdGhpcy5waGFzZSA9IHRoaXMucGhhc2Vz
LlNUQVJURUQ7CiAgICAgICAgIC8vSWYgd2UgZG9uJ3QgZ2V0IGEgcmVzdWx0IGJlZm9yZSB0aGUg
aGFybmVzcyB0aW1lcyBvdXQgdGhhdCB3aWxsIGJlIGEgdGVzdCB0aW1lb3V0CiAgICAgICAgIHRo
aXMuc2V0X3N0YXR1cyh0aGlzLlRJTUVPVVQsICJUZXN0IHRpbWVkIG91dCIpOwogCiAgICAgICAg
IHRlc3RzLnN0YXJ0ZWQgPSB0cnVlOworICAgICAgICB0ZXN0cy5jdXJyZW50X3Rlc3QgPSB0aGlz
OwogICAgICAgICB0ZXN0cy5ub3RpZnlfdGVzdF9zdGF0ZSh0aGlzKTsKIAogICAgICAgICBpZiAo
dGhpcy50aW1lb3V0X2lkID09PSBudWxsKSB7CkBAIC0yMDQwLDYgKzIwNzksMTAgQEAgcG9saWNp
ZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICB0aGlzX29iaiA9IHRo
aXM7CiAgICAgICAgIH0KIAorICAgICAgICBpZiAoc2V0dGluZ3MuZGVidWcpIHsKKyAgICAgICAg
ICAgIGNvbnNvbGUuZGVidWcoIlRFU1QgU1RFUCIsIHRoaXMubmFtZSk7CisgICAgICAgIH0KKwog
ICAgICAgICB0cnkgewogICAgICAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkodGhpc19vYmosIEFy
cmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMikpOwogICAgICAgICB9IGNhdGNo
IChlKSB7CkBAIC0yMDUzLDYgKzIwOTYsOCBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZv
cm1zIFszXS4KICAgICAgICAgICAgIHRoaXMuc2V0X3N0YXR1cyhzdGF0dXMsIG1lc3NhZ2UsIHN0
YWNrKTsKICAgICAgICAgICAgIHRoaXMucGhhc2UgPSB0aGlzLnBoYXNlcy5IQVNfUkVTVUxUOwog
ICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAg
ICB0aGlzLmN1cnJlbnRfdGVzdCA9IG51bGw7CiAgICAgICAgIH0KICAgICB9OwogCkBAIC0yMjcw
LDYgKzIzMTUsMTIgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAg
ICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0X2lkKTsKICAgICAgICAgfQogCisgICAg
ICAgIGlmIChzZXR0aW5ncy5kZWJ1ZykgeworICAgICAgICAgICAgY29uc29sZS5sb2coIlRFU1Qg
RE9ORSIsCisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXR1cywKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRoaXMubmFtZSwpCisgICAgICAgIH0KKwogICAgICAgICB0aGlzLmNsZWFu
dXAoKTsKICAgICB9OwogCkBAIC0yNDY5LDYgKzI1MjAsMTAgQEAgcG9saWNpZXMgYW5kIGNvbnRy
aWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICAgICAgfSk7CiAgICAgfQogCisgICAgUmVt
b3RlVGVzdC5wcm90b3R5cGUuZm9ybWF0X3N0YXR1cyA9IGZ1bmN0aW9uKCkgeworICAgICAgICBy
ZXR1cm4gVGVzdC5wcm90b3R5cGUuc3RhdHVzX2Zvcm1hdHNbdGhpcy5zdGF0dXNdOworICAgIH0K
KwogICAgIC8qCiAgICAgICogQSBSZW1vdGVDb250ZXh0IGxpc3RlbnMgZm9yIHRlc3QgZXZlbnRz
IGZyb20gYSByZW1vdGUgdGVzdCBjb250ZXh0LCBzdWNoCiAgICAgICogYXMgYW5vdGhlciB3aW5k
b3cgb3IgYSB3b3JrZXIuIFRoZXNlIGV2ZW50cyBhcmUgdGhlbiB1c2VkIHRvIGNvbnN0cnVjdApA
QCAtMjU3Nyw2ICsyNjMyLDE2IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNd
LgogICAgICAgICAgICAgdGVzdHMuc2V0X3N0YXR1cyhkYXRhLnN0YXR1cy5zdGF0dXMsIGRhdGEu
c3RhdHVzLm1lc3NhZ2UsIGRhdGEuc3RhdHVzLnNhY2spOwogICAgICAgICB9CiAKKyAgICAgICAg
Zm9yIChsZXQgYXNzZXJ0IG9mIGRhdGEuYXNzZXJ0cykgeworICAgICAgICAgICAgdmFyIHJlY29y
ZCA9IG5ldyBBc3NlcnRSZWNvcmQoKTsKKyAgICAgICAgICAgIHJlY29yZC5hc3NlcnRfbmFtZSA9
IGFzc2VydC5hc3NlcnRfbmFtZTsKKyAgICAgICAgICAgIHJlY29yZC5hcmdzID0gYXNzZXJ0LmFy
Z3M7CisgICAgICAgICAgICByZWNvcmQudGVzdCA9IGFzc2VydC50ZXN0ICE9IG51bGwgPyB0aGlz
LnRlc3RzW2Fzc2VydC50ZXN0LmluZGV4XSA6IG51bGw7CisgICAgICAgICAgICByZWNvcmQuc3Rh
dHVzID0gYXNzZXJ0LnN0YXR1czsKKyAgICAgICAgICAgIHJlY29yZC5zdGFjayA9IGFzc2VydC5z
dGFjazsKKyAgICAgICAgICAgIHRlc3RzLmFzc2VydHNfcnVuLnB1c2gocmVjb3JkKTsKKyAgICAg
ICAgfQorCiAgICAgICAgIHRoaXMubWVzc2FnZV90YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigi
bWVzc2FnZSIsIHRoaXMubWVzc2FnZV9oYW5kbGVyKTsKICAgICAgICAgdGhpcy5ydW5uaW5nID0g
ZmFsc2U7CiAKQEAgLTI2MjYsNiArMjY5MSwxNCBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9u
IGZvcm1zIFszXS4KIAogICAgIFRlc3RzU3RhdHVzLnByb3RvdHlwZSA9IG1lcmdlKHt9LCBUZXN0
c1N0YXR1cy5zdGF0dXNlcyk7CiAKKyAgICBUZXN0c1N0YXR1cy5wcm90b3R5cGUuZm9ybWF0cyA9
IHsKKyAgICAgICAgMDogIk9LIiwKKyAgICAgICAgMTogIkVycm9yIiwKKyAgICAgICAgMjogIlRp
bWVvdXQiLAorICAgICAgICAzOiAiT3B0aW9uYWwgRmVhdHVyZSBVbnN1cHBvcnRlZCIKKyAgICB9
CisKKwogICAgIFRlc3RzU3RhdHVzLnByb3RvdHlwZS5zdHJ1Y3R1cmVkX2Nsb25lID0gZnVuY3Rp
b24oKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9zdHJ1Y3R1cmVkX2Nsb25lKSB7CkBAIC0y
NjQwLDYgKzI3MTMsMjcgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAg
ICAgICAgIHJldHVybiB0aGlzLl9zdHJ1Y3R1cmVkX2Nsb25lOwogICAgIH07CiAKKyAgICBUZXN0
c1N0YXR1cy5wcm90b3R5cGUuZm9ybWF0X3N0YXR1cyA9IGZ1bmN0aW9uKCkgeworICAgICAgICBy
ZXR1cm4gdGhpcy5mb3JtYXRzW3RoaXMuc3RhdHVzXTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBB
c3NlcnRSZWNvcmQodGVzdCwgYXNzZXJ0X25hbWUsIGFyZ3MgPSBbXSkgeworICAgICAgICB0aGlz
LmFzc2VydF9uYW1lID0gYXNzZXJ0X25hbWU7CisgICAgICAgIHRoaXMudGVzdCA9IHRlc3Q7Cisg
ICAgICAgIC8vIEF2b2lkIGtlZXBpbmcgY29tcGxleCBvYmplY3RzIGFsaXZlCisgICAgICAgIHRo
aXMuYXJncyA9IGFyZ3MubWFwKHggPT4gZm9ybWF0X3ZhbHVlKHgpLnJlcGxhY2UoL1xuL2csICIg
IikpOworICAgICAgICB0aGlzLnN0YXR1cyA9IG51bGw7CisgICAgfQorCisgICAgQXNzZXJ0UmVj
b3JkLnByb3RvdHlwZS5zdHJ1Y3R1cmVkX2Nsb25lID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHJl
dHVybiB7CisgICAgICAgICAgICBhc3NlcnRfbmFtZTogdGhpcy5hc3NlcnRfbmFtZSwKKyAgICAg
ICAgICAgIHRlc3Q6IHRoaXMudGVzdCA/IHRoaXMudGVzdC5zdHJ1Y3R1cmVkX2Nsb25lKCkgOiBu
dWxsLAorICAgICAgICAgICAgYXJnczogdGhpcy5hcmdzLAorICAgICAgICAgICAgc3RhdHVzOiB0
aGlzLnN0YXR1cywKKyAgICAgICAgfQorICAgIH0KKwogICAgIGZ1bmN0aW9uIFRlc3RzKCkKICAg
ICB7CiAgICAgICAgIHRoaXMudGVzdHMgPSBbXTsKQEAgLTI2NzksNiArMjc3MywxOCBAQCBwb2xp
Y2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgdGhpcy5oaWRlX3Rlc3Rf
c3RhdGUgPSBmYWxzZTsKICAgICAgICAgdGhpcy5wZW5kaW5nX3JlbW90ZXMgPSBbXTsKIAorICAg
ICAgICB0aGlzLmN1cnJlbnRfdGVzdCA9IG51bGw7CisgICAgICAgIHRoaXMuYXNzZXJ0c19ydW4g
PSBbXTsKKworICAgICAgICAvLyBUcmFjayB3aGV0aGVyIG91dHB1dCBpcyBlbmFibGVkLCBhbmQg
dGh1cyB3aGV0aGVyIG9yIG5vdCB3ZSBzaG91bGQKKyAgICAgICAgLy8gdHJhY2sgYXNzZXJ0cy4K
KyAgICAgICAgLy8KKyAgICAgICAgLy8gT24gd29ya2VycyB3ZSBkb24ndCBnZXQgcHJvcGVydGll
cyBzZXQgZnJvbSB0ZXN0aGFybmVzc3JlcG9ydC5qcywgc28KKyAgICAgICAgLy8gd2UgZG9uJ3Qg
a25vdyB3aGV0aGVyIG9yIG5vdCB0byB0cmFjayBhc3NlcnRzLiBUbyBhdm9pZCB0aGUKKyAgICAg
ICAgLy8gcmVzdWx0aW5nIHBlcmZvcm1hbmNlIGhpdCwgd2UgYXNzdW1lIHdlIGFyZSBub3QgbWVh
bnQgdG8uIFRoaXMgbWVhbnMKKyAgICAgICAgLy8gdGhhdCBhc3NlcnQgdHJhY2tpbmcgZG9lcyBu
b3QgZnVuY3Rpb24gb24gd29ya2Vycy4KKyAgICAgICAgdGhpcy5vdXRwdXQgPSBzZXR0aW5ncy5v
dXRwdXQgJiYgJ2RvY3VtZW50JyBpbiBnbG9iYWxfc2NvcGU7CisKICAgICAgICAgdGhpcy5zdGF0
dXMgPSBuZXcgVGVzdHNTdGF0dXMoKTsKIAogICAgICAgICB2YXIgdGhpc19vYmogPSB0aGlzOwpA
QCAtMjcyNiw2ICsyODMyLDEwIEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9ybXMgWzNd
LgogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwID09
ICJoaWRlX3Rlc3Rfc3RhdGUiKSB7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZV90ZXN0
X3N0YXRlID0gdmFsdWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwID09ICJvdXRwdXQi
KSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMub3V0cHV0ID0gdmFsdWU7CisgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChwID09PSAiZGVidWciKSB7CisgICAgICAgICAgICAgICAgICAgIHNl
dHRpbmdzLmRlYnVnID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQog
ICAgICAgICB9CkBAIC0yNzUwLDcgKzI4NjAsNyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9u
IGZvcm1zIFszXS4KICAgICAgICAgdGhpcy53YWl0X2Zvcl9maW5pc2ggPSB0cnVlOwogICAgICAg
ICB0aGlzLmZpbGVfaXNfdGVzdCA9IHRydWU7CiAgICAgICAgIC8vIENyZWF0ZSB0aGUgdGVzdCwg
d2hpY2ggd2lsbCBhZGQgaXQgdG8gdGhlIGxpc3Qgb2YgdGVzdHMKLSAgICAgICAgYXN5bmNfdGVz
dCgpOworICAgICAgICB0ZXN0cy5jdXJyZW50X3Rlc3QgPSBhc3luY190ZXN0KCk7CiAgICAgfTsK
IAogICAgIFRlc3RzLnByb3RvdHlwZS5zZXRfc3RhdHVzID0gZnVuY3Rpb24oc3RhdHVzLCBtZXNz
YWdlLCBzdGFjaykKQEAgLTI5MTQsNiArMzAyNCwxNiBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0
aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICAgICAgIGFsbF9jb21wbGV0ZSk7CiAgICAgfTsK
IAorICAgIFRlc3RzLnByb3RvdHlwZS5zZXRfYXNzZXJ0ID0gZnVuY3Rpb24oYXNzZXJ0X25hbWUs
IGFyZ3MpIHsKKyAgICAgICAgdGhpcy5hc3NlcnRzX3J1bi5wdXNoKG5ldyBBc3NlcnRSZWNvcmQo
dGhpcy5jdXJyZW50X3Rlc3QsIGFzc2VydF9uYW1lLCBhcmdzKSkKKyAgICB9CisKKyAgICBUZXN0
cy5wcm90b3R5cGUuc2V0X2Fzc2VydF9zdGF0dXMgPSBmdW5jdGlvbihzdGF0dXMsIHN0YWNrKSB7
CisgICAgICAgIGxldCBhc3NlcnRfcmVjb3JkID0gdGhpcy5hc3NlcnRzX3J1blt0aGlzLmFzc2Vy
dHNfcnVuLmxlbmd0aCAtIDFdOworICAgICAgICBhc3NlcnRfcmVjb3JkLnN0YXR1cyA9IHN0YXR1
czsKKyAgICAgICAgYXNzZXJ0X3JlY29yZC5zdGFjayA9IHN0YWNrOworICAgIH0KKwogICAgIC8q
KgogICAgICAqIFVwZGF0ZSB0aGUgaGFybmVzcyBzdGF0dXMgdG8gcmVmbGVjdCBhbiB1bnJlY292
ZXJhYmxlIGhhcm5lc3MgZXJyb3IgdGhhdAogICAgICAqIHNob3VsZCBjYW5jZWwgYWxsIGZ1cnRo
ZXIgdGVzdGluZy4gVXBkYXRlIGFsbCBwcmV2aW91c2x5LWRlZmluZWQgdGVzdHMKQEAgLTI5NTYs
MjIgKzMwNzYsMTYgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAg
fQogCiAgICAgZnVuY3Rpb24gc2FuaXRpemVfdW5wYWlyZWRfc3Vycm9nYXRlcyhzdHIpIHsKLSAg
ICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oW1x1ZDgwMC1cdWRiZmZdKSg/IVtcdWRjMDAtXHVk
ZmZmXSkvZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKF8sIHVucGFpcmVk
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBjb2RlX3VuaXRfc3RyKHVucGFpcmVkKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0pCi0gICAgICAgICAgICAgICAgICAvLyBUaGlzIHJlcGxhY2VtZW50IGlzIGlu
dGVudGlvbmFsbHkgaW1wbGVtZW50ZWQgd2l0aG91dCBhbgotICAgICAgICAgICAgICAgICAgLy8g
RVMyMDE4IG5lZ2F0aXZlIGxvb2tiZWhpbmQgYXNzZXJ0aW9uIHRvIHN1cHBvcnQgcnVudGltZXMK
LSAgICAgICAgICAgICAgICAgIC8vIHdoaWNoIGRvIG5vdCB5ZXQgaW1wbGVtZW50IHRoYXQgbGFu
Z3VhZ2UgZmVhdHVyZS4KLSAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8oXnxbXlx1ZDgwMC1c
dWRiZmZdKShbXHVkYzAwLVx1ZGZmZl0pL2csCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jdGlvbihfLCBwcmV2aW91cywgdW5wYWlyZWQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICgvW1x1ZGMwMC1cdWRmZmZdLy50ZXN0KHByZXZpb3VzKSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzID0gY29kZV91bml0X3N0cihwcmV2aW91
cyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBwcmV2aW91cyArIGNvZGVfdW5pdF9zdHIodW5wYWlyZWQpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIHJldHVybiBzdHIucmVwbGFj
ZSgKKyAgICAgICAgICAgIC8oW1x1ZDgwMC1cdWRiZmZdKykoPyFbXHVkYzAwLVx1ZGZmZl0pfChe
fFteXHVkODAwLVx1ZGJmZl0pKFtcdWRjMDAtXHVkZmZmXSspL2csCisgICAgICAgICAgICBmdW5j
dGlvbihfLCBsb3csIHByZWZpeCwgaGlnaCkgeworICAgICAgICAgICAgICAgIHZhciBvdXRwdXQg
PSBwcmVmaXggfHwgIiI7ICAvLyBwcmVmaXggbWF5IGJlIHVuZGVmaW5lZAorICAgICAgICAgICAg
ICAgIHZhciBzdHJpbmcgPSBsb3cgfHwgaGlnaDsgIC8vIG9ubHkgb25lIG9mIHRoZXNlIGFsdGVy
bmF0ZXMgY2FuIG1hdGNoCisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHJp
bmcubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9IGNvZGVfdW5p
dF9zdHIoc3RyaW5nW2ldKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0
dXJuIG91dHB1dDsKKyAgICAgICAgICAgIH0pOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHNhbml0
aXplX2FsbF91bnBhaXJlZF9zdXJyb2dhdGVzKHRlc3RzKSB7CkBAIC0zMDE3LDcgKzMxMzEsNyBA
QCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgZm9yRWFjaCAo
dGhpcy5hbGxfZG9uZV9jYWxsYmFja3MsCiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGNhbGxi
YWNrKQogICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayh0
aGlzX29iai50ZXN0cywgdGhpc19vYmouc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgIGNh
bGxiYWNrKHRoaXNfb2JqLnRlc3RzLCB0aGlzX29iai5zdGF0dXMsIHRoaXNfb2JqLmFzc2VydHNf
cnVuKTsKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgfTsKIApAQCAtMzI0Myw3ICszMzU3LDcg
QEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgIH0KICAgICB9
OwogCi0gICAgT3V0cHV0LnByb3RvdHlwZS5zaG93X3Jlc3VsdHMgPSBmdW5jdGlvbiAodGVzdHMs
IGhhcm5lc3Nfc3RhdHVzKSB7CisgICAgT3V0cHV0LnByb3RvdHlwZS5zaG93X3Jlc3VsdHMgPSBm
dW5jdGlvbiAodGVzdHMsIGhhcm5lc3Nfc3RhdHVzLCBhc3NlcnRzX3J1bikgewogICAgICAgICBp
ZiAodGhpcy5waGFzZSA+PSB0aGlzLkNPTVBMRVRFKSB7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KQEAgLTMyNzIsMjMgKzMzODYsMTAgQEAgcG9saWNpZXMgYW5kIGNvbnRyaWJ1dGlv
biBmb3JtcyBbM10uCiAgICAgICAgICAgICBoZWFkc1swXS5hcHBlbmRDaGlsZChzdHlsZXNoZWV0
KTsKICAgICAgICAgfQogCi0gICAgICAgIHZhciBzdGF0dXNfdGV4dF9oYXJuZXNzID0ge307Ci0g
ICAgICAgIHN0YXR1c190ZXh0X2hhcm5lc3NbaGFybmVzc19zdGF0dXMuT0tdID0gIk9LIjsKLSAg
ICAgICAgc3RhdHVzX3RleHRfaGFybmVzc1toYXJuZXNzX3N0YXR1cy5FUlJPUl0gPSAiRXJyb3Ii
OwotICAgICAgICBzdGF0dXNfdGV4dF9oYXJuZXNzW2hhcm5lc3Nfc3RhdHVzLlRJTUVPVVRdID0g
IlRpbWVvdXQiOwotICAgICAgICBzdGF0dXNfdGV4dF9oYXJuZXNzW2hhcm5lc3Nfc3RhdHVzLlBS
RUNPTkRJVElPTl9GQUlMRURdID0gIk9wdGlvbmFsIEZlYXR1cmUgVW5zdXBwb3J0ZWQiOwotCi0g
ICAgICAgIHZhciBzdGF0dXNfdGV4dCA9IHt9OwotICAgICAgICBzdGF0dXNfdGV4dFtUZXN0LnBy
b3RvdHlwZS5QQVNTXSA9ICJQYXNzIjsKLSAgICAgICAgc3RhdHVzX3RleHRbVGVzdC5wcm90b3R5
cGUuRkFJTF0gPSAiRmFpbCI7Ci0gICAgICAgIHN0YXR1c190ZXh0W1Rlc3QucHJvdG90eXBlLlRJ
TUVPVVRdID0gIlRpbWVvdXQiOwotICAgICAgICBzdGF0dXNfdGV4dFtUZXN0LnByb3RvdHlwZS5O
T1RSVU5dID0gIk5vdCBSdW4iOwotICAgICAgICBzdGF0dXNfdGV4dFtUZXN0LnByb3RvdHlwZS5Q
UkVDT05ESVRJT05fRkFJTEVEXSA9ICJPcHRpb25hbCBGZWF0dXJlIFVuc3VwcG9ydGVkIjsKLQog
ICAgICAgICB2YXIgc3RhdHVzX251bWJlciA9IHt9OwogICAgICAgICBmb3JFYWNoKHRlc3RzLAog
ICAgICAgICAgICAgICAgIGZ1bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFy
IHN0YXR1cyA9IHN0YXR1c190ZXh0W3Rlc3Quc3RhdHVzXTsKKyAgICAgICAgICAgICAgICAgICAg
dmFyIHN0YXR1cyA9IHRlc3QuZm9ybWF0X3N0YXR1cygpOwogICAgICAgICAgICAgICAgICAgICBp
ZiAoc3RhdHVzX251bWJlci5oYXNPd25Qcm9wZXJ0eShzdGF0dXMpKSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBzdGF0dXNfbnVtYmVyW3N0YXR1c10gKz0gMTsKICAgICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKQEAgLTMzMDUsOCArMzQwNiw3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRp
b24gZm9ybXMgWzNdLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImgyIiwge30s
ICJTdW1tYXJ5Il0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewotCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YXIgc3RhdHVzID0gc3RhdHVzX3RleHRfaGFybmVzc1toYXJuZXNz
X3N0YXR1cy5zdGF0dXNdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFy
IHN0YXR1cyA9IGhhcm5lc3Nfc3RhdHVzLmZvcm1hdF9zdGF0dXMoKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZhciBydiA9IFtbInNlY3Rpb24iLCB7fSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJwIiwge30sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSGFybmVzcyBzdGF0dXM6
ICIsCkBAIC0zMzI4LDEzICszNDI4LDE0IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRpb24gZm9y
bXMgWzNdLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBydiA9IFtbImRpdiIsIHt9XV07
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaSA9IDA7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc3RhdHVzX3RleHQuaGFzT3duUHJv
cGVydHkoaSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
c3RhdHVzX251bWJlci5oYXNPd25Qcm9wZXJ0eShzdGF0dXNfdGV4dFtpXSkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHN0YXR1cyA9IHN0YXR1c190
ZXh0W2ldOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydlsw
XS5wdXNoKFsiZGl2IiwgeyJjbGFzcyI6c3RhdHVzX2NsYXNzKHN0YXR1cyl9LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKFRlc3QucHJvdG90eXBlLnN0YXR1c19m
b3JtYXRzLmhhc093blByb3BlcnR5KGkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHN0YXR1c19udW1iZXIuaGFzT3duUHJvcGVydHkoVGVzdC5wcm90b3R5
cGUuc3RhdHVzX2Zvcm1hdHNbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHZhciBzdGF0dXMgPSBUZXN0LnByb3RvdHlwZS5zdGF0dXNfZm9ybWF0c1tp
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnZbMF0ucHVz
aChbImRpdiIsIHt9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbImxhYmVsIiwge30sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImlucHV0Iiwge3R5cGU6ImNoZWNrYm94Iiwg
Y2hlY2tlZDoiY2hlY2tlZCJ9XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c19udW1iZXJbc3RhdHVzXSArICIgIiArIHN0YXR1
c11dKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXR1c19udW1iZXJbc3RhdHVzXSArICIgIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsic3BhbiIsIHsiY2xhc3MiOnN0
YXR1c19jbGFzcyhzdGF0dXMpfSwgc3RhdHVzXV1dKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaSsrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMzM1NCwx
MyArMzQ1NSwxMyBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFy
IHJlc3VsdF9jbGFzcyA9IGVsZW1lbnQucGFyZW50Tm9kZS5nZXRBdHRyaWJ1dGUoImNsYXNzIik7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0X2NsYXNzID0gZWxl
bWVudC5xdWVyeVNlbGVjdG9yKCJzcGFuW2NsYXNzXSIpLmdldEF0dHJpYnV0ZSgiY2xhc3MiKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdHlsZV9lbGVtZW50ID0gb3V0
cHV0X2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInN0eWxlI2hpZGUtIiArIHJlc3VsdF9jbGFzcyk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXRfZWxlbWVudCA9IGVs
ZW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICghc3R5bGVfZWxlbWVudCAmJiAhaW5wdXRfZWxlbWVudC5jaGVja2VkKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVfZWxlbWVudCA9IG91dHB1
dF9kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoeGh0bWxfbnMsICJzdHlsZSIpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlX2VsZW1lbnQuaWQgPSAiaGlkZS0iICsg
cmVzdWx0X2NsYXNzOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxl
X2VsZW1lbnQudGV4dENvbnRlbnQgPSAidGFibGUjcmVzdWx0cyA+IHRib2R5ID4gdHIuIityZXN1
bHRfY2xhc3MrIntkaXNwbGF5Om5vbmV9IjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdHlsZV9lbGVtZW50LnRleHRDb250ZW50ID0gInRhYmxlI3Jlc3VsdHMgPiB0Ym9k
eSA+IHRyLm92ZXJhbGwtIityZXN1bHRfY2xhc3MrIntkaXNwbGF5Om5vbmV9IjsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChzdHlsZV9lbGVtZW50KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0g
ZWxzZSBpZiAoc3R5bGVfZWxlbWVudCAmJiBpbnB1dF9lbGVtZW50LmNoZWNrZWQpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZV9lbGVtZW50LnBhcmVudE5vZGUu
cmVtb3ZlQ2hpbGQoc3R5bGVfZWxlbWVudCk7CkBAIC0zNDAxLDYgKzM1MDIsNTIgQEAgcG9saWNp
ZXMgYW5kIGNvbnRyaWJ1dGlvbiBmb3JtcyBbM10uCiAgICAgICAgICAgICByZXR1cm4gJyc7CiAg
ICAgICAgIH0KIAorICAgICAgICB2YXIgYXNzZXJ0c19ydW5fYnlfdGVzdCA9IG5ldyBNYXAoKTsK
KyAgICAgICAgYXNzZXJ0c19ydW4uZm9yRWFjaChhc3NlcnQgPT4geworICAgICAgICAgICAgaWYg
KCFhc3NlcnRzX3J1bl9ieV90ZXN0Lmhhcyhhc3NlcnQudGVzdCkpIHsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRzX3J1bl9ieV90ZXN0LnNldChhc3NlcnQudGVzdCwgW10pOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgYXNzZXJ0c19ydW5fYnlfdGVzdC5nZXQoYXNzZXJ0LnRlc3QpLnB1c2go
YXNzZXJ0KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZnVuY3Rpb24gZ2V0X2Fzc2VydHNfb3V0
cHV0KHRlc3QpIHsKKyAgICAgICAgICAgIHZhciBhc3NlcnRzID0gYXNzZXJ0c19ydW5fYnlfdGVz
dC5nZXQodGVzdCk7CisgICAgICAgICAgICBpZiAoIWFzc2VydHMpIHsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gIk5vIGFzc2VydHMgcmFuIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJ2
ID0gIjx0YWJsZT4iOworICAgICAgICAgICAgcnYgKz0gYXNzZXJ0cy5tYXAoYXNzZXJ0ID0+IHsK
KyAgICAgICAgICAgICAgICB2YXIgb3V0cHV0X2ZuID0gIjxzdHJvbmc+IiArIGVzY2FwZV9odG1s
KGFzc2VydC5hc3NlcnRfbmFtZSkgKyAiPC9zdHJvbmc+KCI7CisgICAgICAgICAgICAgICAgdmFy
IHByZWZpeF9sZW4gPSBvdXRwdXRfZm4ubGVuZ3RoOworICAgICAgICAgICAgICAgIHZhciBvdXRw
dXRfYXJncyA9IGFzc2VydC5hcmdzOworICAgICAgICAgICAgICAgIHZhciBvdXRwdXRfbGVuID0g
b3V0cHV0X2FyZ3MucmVkdWNlKChwcmV2LCBjdXJyZW50KSA9PiBwcmV2K2N1cnJlbnQsIHByZWZp
eF9sZW4pOworICAgICAgICAgICAgICAgIGlmIChvdXRwdXRfbGVuW291dHB1dF9sZW4ubGVuZ3Ro
IC0gMV0gPiA1MCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXRfYXJncyA9IG91dHB1dF9h
cmdzLm1hcCgoeCwgaSkgPT4KKyAgICAgICAgICAgICAgICAgICAgKGkgPiAwID8gIiAgIi5yZXBl
YXQocHJlZml4X2xlbikgOiAiIiApKyB4ICsgKGkgPCBvdXRwdXRfYXJncy5sZW5ndGggLSAxID8g
IixcbiIgOiAiIikpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
ICAgIG91dHB1dF9hcmdzID0gb3V0cHV0X2FyZ3MubWFwKCh4LCBpKSA9PiB4ICsgKGkgPCBvdXRw
dXRfYXJncy5sZW5ndGggLSAxID8gIiwgIiA6ICIiKSk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIG91dHB1dF9mbiArPSBlc2NhcGVfaHRtbChvdXRwdXRfYXJncy5qb2luKCIi
KSk7CisgICAgICAgICAgICAgICAgb3V0cHV0X2ZuICs9ICcpJzsKKyAgICAgICAgICAgICAgICB2
YXIgb3V0cHV0X2xvY2F0aW9uOworICAgICAgICAgICAgICAgIGlmIChhc3NlcnQuc3RhY2spIHsK
KyAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2xvY2F0aW9uID0gYXNzZXJ0LnN0YWNrLnNwbGl0
KCJcbiIsIDEpWzBdLnJlcGxhY2UoL0A/XHcrOlwvXC9bXiAiXC9dKyg/OjpcZCspPy9nLCAiICIp
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gIjx0ciBjbGFzcz0n
b3ZlcmFsbC0iICsKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzX2NsYXNzKFRlc3QucHJvdG90
eXBlLnN0YXR1c19mb3JtYXRzW2Fzc2VydC5zdGF0dXNdKSArICInPiIgKworICAgICAgICAgICAg
ICAgICAgICAiPHRkIGNsYXNzPSciICsKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzX2NsYXNz
KFRlc3QucHJvdG90eXBlLnN0YXR1c19mb3JtYXRzW2Fzc2VydC5zdGF0dXNdKSArICInPiIgKwor
ICAgICAgICAgICAgICAgICAgICBUZXN0LnByb3RvdHlwZS5zdGF0dXNfZm9ybWF0c1thc3NlcnQu
c3RhdHVzXSArICI8L3RkPiIgKworICAgICAgICAgICAgICAgICAgICAiPHRkPjxwcmU+IiArCisg
ICAgICAgICAgICAgICAgICAgIG91dHB1dF9mbiArCisgICAgICAgICAgICAgICAgICAgIChvdXRw
dXRfbG9jYXRpb24gPyAiXG4iICsgZXNjYXBlX2h0bWwob3V0cHV0X2xvY2F0aW9uKSA6ICIiKSAr
CisgICAgICAgICAgICAgICAgICAgICI8L3ByZT48L3RkPjwvdHI+IjsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICkuam9pbigiXG4iKTsKKyAgICAgICAgICAgIHJ2ICs9ICI8L3RhYmxlPiI7
CisgICAgICAgICAgICByZXR1cm4gcnY7CisgICAgICAgIH0KKwogICAgICAgICBsb2cuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHhodG1sX25zLCAic2VjdGlvbiIpKTsKICAg
ICAgICAgdmFyIGFzc2VydGlvbnMgPSBoYXNfYXNzZXJ0aW9ucygpOwogICAgICAgICB2YXIgaHRt
bCA9ICI8aDI+RGV0YWlsczwvaDI+PHRhYmxlIGlkPSdyZXN1bHRzJyAiICsgKGFzc2VydGlvbnMg
PyAiY2xhc3M9J2Fzc2VydGlvbnMnIiA6ICIiICkgKyAiPiIgKwpAQCAtMzQwOSwxOSArMzU1Niwy
NiBAQCBwb2xpY2llcyBhbmQgY29udHJpYnV0aW9uIGZvcm1zIFszXS4KICAgICAgICAgICAgICI8
dGg+TWVzc2FnZTwvdGg+PC90cj48L3RoZWFkPiIgKwogICAgICAgICAgICAgIjx0Ym9keT4iOwog
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAg
ICAgICBodG1sICs9ICc8dHIgY2xhc3M9IicgKwotICAgICAgICAgICAgICAgIGVzY2FwZV9odG1s
KHN0YXR1c19jbGFzcyhzdGF0dXNfdGV4dFt0ZXN0c1tpXS5zdGF0dXNdKSkgKwotICAgICAgICAg
ICAgICAgICciPjx0ZD4nICsKLSAgICAgICAgICAgICAgICBlc2NhcGVfaHRtbChzdGF0dXNfdGV4
dFt0ZXN0c1tpXS5zdGF0dXNdKSArCisgICAgICAgICAgICB2YXIgdGVzdCA9IHRlc3RzW2ldOwor
ICAgICAgICAgICAgaHRtbCArPSAnPHRyIGNsYXNzPSJvdmVyYWxsLScgKworICAgICAgICAgICAg
ICAgIHN0YXR1c19jbGFzcyh0ZXN0LmZvcm1hdF9zdGF0dXMoKSkgKworICAgICAgICAgICAgICAg
ICciPicgKworICAgICAgICAgICAgICAgICc8dGQgY2xhc3M9IicgKworICAgICAgICAgICAgICAg
IHN0YXR1c19jbGFzcyh0ZXN0LmZvcm1hdF9zdGF0dXMoKSkgKworICAgICAgICAgICAgICAgICci
PicgKworICAgICAgICAgICAgICAgIHRlc3QuZm9ybWF0X3N0YXR1cygpICsKICAgICAgICAgICAg
ICAgICAiPC90ZD48dGQ+IiArCi0gICAgICAgICAgICAgICAgZXNjYXBlX2h0bWwodGVzdHNbaV0u
bmFtZSkgKworICAgICAgICAgICAgICAgIGVzY2FwZV9odG1sKHRlc3QubmFtZSkgKwogICAgICAg
ICAgICAgICAgICI8L3RkPjx0ZD4iICsKLSAgICAgICAgICAgICAgICAoYXNzZXJ0aW9ucyA/IGVz
Y2FwZV9odG1sKGdldF9hc3NlcnRpb24odGVzdHNbaV0pKSArICI8L3RkPjx0ZD4iIDogIiIpICsK
LSAgICAgICAgICAgICAgICBlc2NhcGVfaHRtbCh0ZXN0c1tpXS5tZXNzYWdlID8gdGVzdHNbaV0u
bWVzc2FnZSA6ICIgIikgKworICAgICAgICAgICAgICAgIChhc3NlcnRpb25zID8gZXNjYXBlX2h0
bWwoZ2V0X2Fzc2VydGlvbih0ZXN0KSkgKyAiPC90ZD48dGQ+IiA6ICIiKSArCisgICAgICAgICAg
ICAgICAgZXNjYXBlX2h0bWwodGVzdC5tZXNzYWdlID8gdGVzdHNbaV0ubWVzc2FnZSA6ICIgIikg
KwogICAgICAgICAgICAgICAgICh0ZXN0c1tpXS5zdGFjayA/ICI8cHJlPiIgKwogICAgICAgICAg
ICAgICAgICBlc2NhcGVfaHRtbCh0ZXN0c1tpXS5zdGFjaykgKwotICAgICAgICAgICAgICAgICAi
PC9wcmU+IjogIiIpICsKLSAgICAgICAgICAgICAgICAiPC90ZD48L3RyPiI7CisgICAgICAgICAg
ICAgICAgICI8L3ByZT4iOiAiIik7CisgICAgICAgICAgICBpZiAoISh0ZXN0IGluc3RhbmNlb2Yg
UmVtb3RlVGVzdCkpIHsKKyAgICAgICAgICAgICAgICAgaHRtbCArPSAiPGRldGFpbHM+PHN1bW1h
cnk+QXNzZXJ0cyBydW48L3N1bW1hcnk+IiArIGdldF9hc3NlcnRzX291dHB1dCh0ZXN0KSArICI8
L2RldGFpbHM+IgorICAgICAgICAgICAgfQorICAgICAgICAgICAgaHRtbCArPSAiPC90ZD48L3Ry
PiI7CiAgICAgICAgIH0KICAgICAgICAgaHRtbCArPSAiPC90Ym9keT48L3RhYmxlPiI7CiAgICAg
ICAgIHRyeSB7CkBAIC0zNjEyLDE0ICszNzY2LDE3IEBAIHBvbGljaWVzIGFuZCBjb250cmlidXRp
b24gZm9ybXMgWzNdLgogCiAgICAgZnVuY3Rpb24gQXNzZXJ0aW9uRXJyb3IobWVzc2FnZSkKICAg
ICB7CisgICAgICAgIGlmICh0eXBlb2YgbWVzc2FnZSA9PSAic3RyaW5nIikgeworICAgICAgICAg
ICAgbWVzc2FnZSA9IHNhbml0aXplX3VucGFpcmVkX3N1cnJvZ2F0ZXMobWVzc2FnZSk7CisgICAg
ICAgIH0KICAgICAgICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTsKLSAgICAgICAgdGhpcy5zdGFj
ayA9IHRoaXMuZ2V0X3N0YWNrKCk7CisgICAgICAgIHRoaXMuc3RhY2sgPSBnZXRfc3RhY2soKTsK
ICAgICB9CiAgICAgZXhwb3NlKEFzc2VydGlvbkVycm9yLCAiQXNzZXJ0aW9uRXJyb3IiKTsKIAog
ICAgIEFzc2VydGlvbkVycm9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90
eXBlKTsKIAotICAgIEFzc2VydGlvbkVycm9yLnByb3RvdHlwZS5nZXRfc3RhY2sgPSBmdW5jdGlv
bigpIHsKKyAgICBjb25zdCBnZXRfc3RhY2sgPSBmdW5jdGlvbigpIHsKICAgICAgICAgdmFyIHN0
YWNrID0gbmV3IEVycm9yKCkuc3RhY2s7CiAgICAgICAgIC8vIElFMTEgZG9lcyBub3QgaW5pdGlh
bGl6ZSAnRXJyb3Iuc3RhY2snIHVudGlsIHRoZSBvYmplY3QgaXMgdGhyb3duLgogICAgICAgICBp
ZiAoIXN0YWNrKSB7CkBAIC0zOTgzLDU0ICs0MTQwLDYyIEBAIHRhYmxlI3Jlc3VsdHMge1wKICAg
ICB3aWR0aDoxMDAlO1wKIH1cCiBcCi10YWJsZSNyZXN1bHRzIHRoOmZpcnN0LWNoaWxkLFwKLXRh
YmxlI3Jlc3VsdHMgdGQ6Zmlyc3QtY2hpbGQge1wKK3RhYmxlI3Jlc3VsdHMgPiB0aGVhZCA+IHRy
ID4gdGg6Zmlyc3QtY2hpbGQsXAordGFibGUjcmVzdWx0cyA+IHRib2R5ID4gdHIgPiB0ZDpmaXJz
dC1jaGlsZCB7XAogICAgIHdpZHRoOjhlbTtcCiB9XAogXAotdGFibGUjcmVzdWx0cyB0aDpsYXN0
LWNoaWxkLFwKLXRhYmxlI3Jlc3VsdHMgdGQ6bGFzdC1jaGlsZCB7XAordGFibGUjcmVzdWx0cyA+
IHRoZWFkID4gdHIgPiB0aDpsYXN0LWNoaWxkLFwKK3RhYmxlI3Jlc3VsdHMgPiB0aGVhZCA+IHRy
ID4gdGQ6bGFzdC1jaGlsZCB7XAogICAgIHdpZHRoOjUwJTtcCiB9XAogXAotdGFibGUjcmVzdWx0
cy5hc3NlcnRpb25zIHRoOmxhc3QtY2hpbGQsXAotdGFibGUjcmVzdWx0cy5hc3NlcnRpb25zIHRk
Omxhc3QtY2hpbGQge1wKK3RhYmxlI3Jlc3VsdHMuYXNzZXJ0aW9ucyA+IHRoZWFkID4gdHIgPiB0
aDpsYXN0LWNoaWxkLFwKK3RhYmxlI3Jlc3VsdHMuYXNzZXJ0aW9ucyA+IHRib2R5ID4gdHIgPiB0
ZDpsYXN0LWNoaWxkIHtcCiAgICAgd2lkdGg6MzUlO1wKIH1cCiBcCi10YWJsZSNyZXN1bHRzIHRo
IHtcCit0YWJsZSNyZXN1bHRzID4gdGhlYWQgPiA+IHRyID4gdGgge1wKICAgICBwYWRkaW5nOjA7
XAogICAgIHBhZGRpbmctYm90dG9tOjAuNWVtO1wKICAgICBib3JkZXItYm90dG9tOm1lZGl1bSBz
b2xpZCBibGFjaztcCiB9XAogXAotdGFibGUjcmVzdWx0cyB0ZCB7XAordGFibGUjcmVzdWx0cyA+
IHRib2R5ID4gdHI+IHRkIHtcCiAgICAgcGFkZGluZzoxZW07XAogICAgIHBhZGRpbmctYm90dG9t
OjAuNWVtO1wKICAgICBib3JkZXItYm90dG9tOnRoaW4gc29saWQgYmxhY2s7XAogfVwKIFwKLXRy
LnBhc3MgPiB0ZDpmaXJzdC1jaGlsZCB7XAorLnBhc3Mge1wKICAgICBjb2xvcjpncmVlbjtcCiB9
XAogXAotdHIuZmFpbCA+IHRkOmZpcnN0LWNoaWxkIHtcCisuZmFpbCB7XAogICAgIGNvbG9yOnJl
ZDtcCiB9XAogXAotdHIudGltZW91dCA+IHRkOmZpcnN0LWNoaWxkIHtcCit0ci50aW1lb3V0IHtc
CiAgICAgY29sb3I6cmVkO1wKIH1cCiBcCi10ci5ub3RydW4gPiB0ZDpmaXJzdC1jaGlsZCB7XAor
dHIubm90cnVuIHtcCiAgICAgY29sb3I6Ymx1ZTtcCiB9XAogXAotdHIub3B0aW9uYWx1bnN1cHBv
cnRlZCA+IHRkOmZpcnN0LWNoaWxkIHtcCit0ci5vcHRpb25hbHVuc3VwcG9ydGVkIHtcCiAgICAg
Y29sb3I6Ymx1ZTtcCiB9XAogXAotLnBhc3MgPiB0ZDpmaXJzdC1jaGlsZCwgLmZhaWwgPiB0ZDpm
aXJzdC1jaGlsZCwgLnRpbWVvdXQgPiB0ZDpmaXJzdC1jaGlsZCwgLm5vdHJ1biA+IHRkOmZpcnN0
LWNoaWxkLCAub3B0aW9uYWx1bnN1cHBvcnRlZCA+IHRkOmZpcnN0LWNoaWxkIHtcCisub2sge1wK
KyAgICBjb2xvcjpncmVlbjtcCit9XAorXAorLmVycm9yIHtcCisgICAgY29sb3I6cmVkO1wKK31c
CitcCisucGFzcywgLmZhaWwsIC50aW1lb3V0LCAubm90cnVuLCAub3B0aW9uYWx1bnN1cHBvcnRl
ZCAub2ssIC50aW1lb3V0LCAuZXJyb3Ige1wKICAgICBmb250LXZhcmlhbnQ6c21hbGwtY2Fwcztc
CiB9XAogXApAQCAtNDA0NywyMiArNDIxMiw2IEBAIHRhYmxlI3Jlc3VsdHMgc3Bhbi5hY3R1YWwg
e1wKICAgICBmb250LWZhbWlseTpEZWphVnUgU2FucyBNb25vLCBCaXRzdHJlYW0gVmVyYSBTYW5z
IE1vbm8sIE1vbm9zcGFjZTtcCiAgICAgd2hpdGUtc3BhY2U6cHJlO1wKIH1cCi1cCi1zcGFuLm9r
IHtcCi0gICAgY29sb3I6Z3JlZW47XAotfVwKLVwKLXRyLmVycm9yIHtcCi0gICAgY29sb3I6cmVk
O1wKLX1cCi1cCi1zcGFuLnRpbWVvdXQge1wKLSAgICBjb2xvcjpyZWQ7XAotfVwKLVwKLXNwYW4u
b2ssIHNwYW4udGltZW91dCwgc3Bhbi5lcnJvciB7XAotICAgIGZvbnQtdmFyaWFudDpzbWFsbC1j
YXBzO1wKLX1cCiAiOwogCiB9KShzZWxmKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3dlYmlkbDIvbGliL1JFQURNRS5t
ZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Vz
L3dlYmlkbDIvbGliL1JFQURNRS5tZAppbmRleCAxYmQ1ODMyNjlkMjkyOWExNmIxYzdhZDBjNThm
YWI2ZTk5YjcyYTEwLi5hZjBhZjNhOTAyZjJmM2EwMWFiYTRjZmQ0OTRmMTQ0MzQ0MDg4OGM3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jl
c291cmNlcy93ZWJpZGwyL2xpYi9SRUFETUUubWQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvd2ViaWRsMi9saWIvUkVBRE1FLm1kCkBA
IC0xLDQgKzEsNiBAQAogVGhpcyBkaXJlY3RvcnkgY29udGFpbnMgYSBidWlsdCB2ZXJzaW9uIG9m
IHRoZSBbd2ViaWRsMi5qcyBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYmlkbDIu
anMpLgogSXQgaXMgYnVpbHQgYnkgcnVubmluZyBgbnBtIHJ1biBidWlsZC1kZWJ1Z2AgYXQgdGhl
IHJvb3Qgb2YgdGhhdCByZXBvc2l0b3J5LgogCitDdXJyZW50bHkgdXNpbmcgd2ViaWRsMi5qc0Ay
NC4xLjEgKDM3MmVhODNlYWExMGY2MGFkZmY0OWJkMGY0ZjNjZTZhMTFkNmZiZWMpLgorCiBUaGUg
YHdlYmlkbDIuanMuaGVhZGVyc2AgZmlsZSBpcyBhIGxvY2FsIGFkZGl0aW9uIHRvIGVuc3VyZSB0
aGUgc2NyaXB0IGlzIGludGVycHJldGVkIGFzIFVURi04LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvd2ViaWRsMi9saWIv
d2ViaWRsMi5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2VzL3dlYmlkbDIvbGliL3dlYmlkbDIuanMKaW5kZXggZDcwNzkwNWZhNjNlMTY4ODZl
NGI4OWU2YTQwM2NkYWM2MmQ3ZGFkZC4uMzIyZjBlMTFhNmFlNTZlYjY1YTFlNTc0ODJmZjUyMGIw
NjU3ZGNkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZXMvd2ViaWRsMi9saWIvd2ViaWRsMi5qcworKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy93ZWJpZGwyL2xpYi93
ZWJpZGwyLmpzCkBAIC03LDEyNCArNywxOCBAQAogCQlleHBvcnRzWyJXZWJJREwyIl0gPSBmYWN0
b3J5KCk7CiAJZWxzZQogCQlyb290WyJXZWJJREwyIl0gPSBmYWN0b3J5KCk7Ci19KSh0aGlzLCBm
dW5jdGlvbigpIHsKLXJldHVybiAvKioqKioqLyAoZnVuY3Rpb24obW9kdWxlcykgeyAvLyB3ZWJw
YWNrQm9vdHN0cmFwCi0vKioqKioqLyAJLy8gVGhlIG1vZHVsZSBjYWNoZQotLyoqKioqKi8gCXZh
ciBpbnN0YWxsZWRNb2R1bGVzID0ge307Ci0vKioqKioqLwotLyoqKioqKi8gCS8vIFRoZSByZXF1
aXJlIGZ1bmN0aW9uCi0vKioqKioqLyAJZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1
bGVJZCkgewotLyoqKioqKi8KLS8qKioqKiovIAkJLy8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNh
Y2hlCi0vKioqKioqLyAJCWlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7Ci0vKioqKioq
LyAJCQlyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0czsKLS8qKioqKiov
IAkJfQotLyoqKioqKi8gCQkvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8g
dGhlIGNhY2hlKQotLyoqKioqKi8gCQl2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1
bGVJZF0gPSB7Ci0vKioqKioqLyAJCQlpOiBtb2R1bGVJZCwKLS8qKioqKiovIAkJCWw6IGZhbHNl
LAotLyoqKioqKi8gCQkJZXhwb3J0czoge30KLS8qKioqKiovIAkJfTsKLS8qKioqKiovCi0vKioq
KioqLyAJCS8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvbgotLyoqKioqKi8gCQltb2R1bGVz
W21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBf
X3dlYnBhY2tfcmVxdWlyZV9fKTsKLS8qKioqKiovCi0vKioqKioqLyAJCS8vIEZsYWcgdGhlIG1v
ZHVsZSBhcyBsb2FkZWQKLS8qKioqKiovIAkJbW9kdWxlLmwgPSB0cnVlOwotLyoqKioqKi8KLS8q
KioqKiovIAkJLy8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGUKLS8qKioqKiovIAkJ
cmV0dXJuIG1vZHVsZS5leHBvcnRzOwotLyoqKioqKi8gCX0KLS8qKioqKiovCi0vKioqKioqLwot
LyoqKioqKi8gCS8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVz
X18pCi0vKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlczsKLS8qKioqKiov
Ci0vKioqKioqLyAJLy8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGUKLS8qKioqKiovIAlfX3dlYnBh
Y2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzOwotLyoqKioqKi8KLS8qKioqKiovIAkv
LyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHMKLS8qKioqKiovIAlf
X3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHsK
LS8qKioqKiovIAkJaWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkgewot
LyoqKioqKi8gCQkJT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVy
YWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7Ci0vKioqKioqLyAJCX0KLS8qKioqKiovIAl9Owot
LyoqKioqKi8KLS8qKioqKiovIAkvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzCi0vKioq
KioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykgewotLyoqKioq
Ki8gCQlpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdU
YWcpIHsKLS8qKioqKiovIAkJCU9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wu
dG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pOwotLyoqKioqKi8gCQl9Ci0vKioqKioq
LyAJCU9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6
IHRydWUgfSk7Ci0vKioqKioqLyAJfTsKLS8qKioqKiovCi0vKioqKioqLyAJLy8gY3JlYXRlIGEg
ZmFrZSBuYW1lc3BhY2Ugb2JqZWN0Ci0vKioqKioqLyAJLy8gbW9kZSAmIDE6IHZhbHVlIGlzIGEg
bW9kdWxlIGlkLCByZXF1aXJlIGl0Ci0vKioqKioqLyAJLy8gbW9kZSAmIDI6IG1lcmdlIGFsbCBw
cm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zCi0vKioqKioqLyAJLy8gbW9kZSAmIDQ6IHJl
dHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0Ci0vKioqKioqLyAJLy8gbW9kZSAmIDh8
MTogYmVoYXZlIGxpa2UgcmVxdWlyZQotLyoqKioqKi8gCV9fd2VicGFja19yZXF1aXJlX18udCA9
IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7Ci0vKioqKioqLyAJCWlmKG1vZGUgJiAxKSB2YWx1ZSA9
IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpOwotLyoqKioqKi8gCQlpZihtb2RlICYgOCkgcmV0
dXJuIHZhbHVlOwotLyoqKioqKi8gCQlpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0g
J29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlOwotLyoq
KioqKi8gCQl2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpOwotLyoqKioqKi8gCQlfX3dlYnBh
Y2tfcmVxdWlyZV9fLnIobnMpOwotLyoqKioqKi8gCQlPYmplY3QuZGVmaW5lUHJvcGVydHkobnMs
ICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7Ci0vKioqKioq
LyAJCWlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkg
aW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsg
cmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTsKLS8qKioqKiovIAkJcmV0dXJu
IG5zOwotLyoqKioqKi8gCX07Ci0vKioqKioqLwotLyoqKioqKi8gCS8vIGdldERlZmF1bHRFeHBv
cnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzCi0v
KioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7Ci0vKioq
KioqLyAJCXZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgPwotLyoqKioq
Ki8gCQkJZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9
IDoKLS8qKioqKiovIAkJCWZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1
bGU7IH07Ci0vKioqKioqLyAJCV9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0
dGVyKTsKLS8qKioqKiovIAkJcmV0dXJuIGdldHRlcjsKLS8qKioqKiovIAl9OwotLyoqKioqKi8K
LS8qKioqKiovIAkvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwKLS8qKioq
KiovIAlfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7
IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9w
ZXJ0eSk7IH07Ci0vKioqKioqLwotLyoqKioqKi8gCS8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9f
Ci0vKioqKioqLyAJX193ZWJwYWNrX3JlcXVpcmVfXy5wID0gIiI7Ci0vKioqKioqLwotLyoqKioq
Ki8KLS8qKioqKiovIAkvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHMKLS8q
KioqKiovIAlyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMg
PSAwKTsKLS8qKioqKiovIH0pCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoqKioqKi8gKFsKLS8qIDAg
Ki8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFj
a19yZXF1aXJlX18pIHsKLQotInVzZSBzdHJpY3QiOwotX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9f
d2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9saWJfd2ViaWRs
Ml9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygx
KTsKLS8qIGhhcm1vbnkgcmVleHBvcnQgKHNhZmUpICovIF9fd2VicGFja19yZXF1aXJlX18uZChf
X3dlYnBhY2tfZXhwb3J0c19fLCAicGFyc2UiLCBmdW5jdGlvbigpIHsgcmV0dXJuIF9saWJfd2Vi
aWRsMl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJwYXJzZSJdOyB9KTsKLQotLyog
aGFybW9ueSBpbXBvcnQgKi8gdmFyIF9saWJfd3JpdGVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMwKTsKLS8qIGhhcm1vbnkgcmVleHBvcnQg
KHNhZmUpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAid3Jp
dGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIF9saWJfd3JpdGVyX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xX19bIndyaXRlIl07IH0pOwotCi0vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2xp
Yl92YWxpZGF0b3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19y
ZXF1aXJlX18oMzEpOwotLyogaGFybW9ueSByZWV4cG9ydCAoc2FmZSkgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ2YWxpZGF0ZSIsIGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gX2xpYl92YWxpZGF0b3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1sidmFs
aWRhdGUiXTsgfSk7Ci0KLS8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfbGliX3Rva2VuaXNlcl9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTsK
LS8qIGhhcm1vbnkgcmVleHBvcnQgKHNhZmUpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dl
YnBhY2tfZXhwb3J0c19fLCAiV2ViSURMUGFyc2VFcnJvciIsIGZ1bmN0aW9uKCkgeyByZXR1cm4g
X2xpYl90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1siV2ViSURMUGFy
c2VFcnJvciJdOyB9KTsKLQotCi0KLQotCi0KLQotLyoqKi8gfSksCit9KShnbG9iYWxUaGlzLCBm
dW5jdGlvbigpIHsKK3JldHVybiAvKioqKioqLyAoKCkgPT4geyAvLyB3ZWJwYWNrQm9vdHN0cmFw
CisvKioqKioqLyAJInVzZSBzdHJpY3QiOworLyoqKioqKi8gCXZhciBfX3dlYnBhY2tfbW9kdWxl
c19fID0gKFsKKy8qIDAgKi8sCiAvKiAxICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dl
YnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9fdW51c2Vk
X3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBh
Y2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1aXJlX18u
cihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBf
X3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInBhcnNlIiwgZnVuY3Rp
b24oKSB7IHJldHVybiBwYXJzZTsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tf
cmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBvcnQgKi8g
ICAicGFyc2UiOiAoKSA9PiAoLyogYmluZGluZyAqLyBwYXJzZSkKKy8qIGhhcm1vbnkgZXhwb3J0
ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF90b2tlbmlzZXJfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMik7CiAvKiBoYXJtb255
IGltcG9ydCAqLyB2YXIgX3Byb2R1Y3Rpb25zX2VudW1fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTUpOwogLyogaGFybW9ueSBpbXBvcnQgKi8g
dmFyIF9wcm9kdWN0aW9uc19pbmNsdWRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9f
ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNik7CkBAIC0xNTAsOCArNDQsNiBAQCBfX3dlYnBhY2tf
cmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiAKIAogCi0KLQogLyoqCiAgKiBAcGFy
YW0ge1Rva2VuaXNlcn0gdG9rZW5pc2VyCiAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucwpAQCAt
MTcyLDE2ICs2NCwxNyBAQCBmdW5jdGlvbiBwYXJzZUJ5VG9rZW5zKHRva2VuaXNlciwgb3B0aW9u
cykgewogICAgIGNvbnN0IGNhbGxiYWNrID0gY29uc3VtZSgiY2FsbGJhY2siKTsKICAgICBpZiAo
IWNhbGxiYWNrKSByZXR1cm47CiAgICAgaWYgKHRva2VuaXNlci5wcm9iZSgiaW50ZXJmYWNlIikp
IHsKLSAgICAgIHJldHVybiBfcHJvZHVjdGlvbnNfY2FsbGJhY2tfaW50ZXJmYWNlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fWyJDYWxsYmFja0ludGVyZmFjZSJdLnBhcnNlKHRva2Vu
aXNlciwgY2FsbGJhY2spOworICAgICAgcmV0dXJuIF9wcm9kdWN0aW9uc19jYWxsYmFja19pbnRl
cmZhY2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX18uQ2FsbGJhY2tJbnRlcmZhY2Uu
cGFyc2UodG9rZW5pc2VyLCBjYWxsYmFjayk7CiAgICAgfQotICAgIHJldHVybiBfcHJvZHVjdGlv
bnNfY2FsbGJhY2tfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1siQ2FsbGJhY2tGdW5j
dGlvbiJdLnBhcnNlKHRva2VuaXNlciwgY2FsbGJhY2spOworICAgIHJldHVybiBfcHJvZHVjdGlv
bnNfY2FsbGJhY2tfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5DYWxsYmFja0Z1bmN0
aW9uLnBhcnNlKHRva2VuaXNlciwgY2FsbGJhY2spOwogICB9CiAKICAgZnVuY3Rpb24gaW50ZXJm
YWNlXyhvcHRzKSB7CiAgICAgY29uc3QgYmFzZSA9IGNvbnN1bWUoImludGVyZmFjZSIpOwogICAg
IGlmICghYmFzZSkgcmV0dXJuOwotICAgIGNvbnN0IHJldCA9IF9wcm9kdWN0aW9uc19taXhpbl9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fWyJNaXhpbiJdLnBhcnNlKHRva2VuaXNlciwg
YmFzZSwgb3B0cykgfHwKLSAgICAgIF9wcm9kdWN0aW9uc19pbnRlcmZhY2VfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzZfX1siSW50ZXJmYWNlIl0ucGFyc2UodG9rZW5pc2VyLCBiYXNlLCBv
cHRzKSB8fAorICAgIGNvbnN0IHJldCA9CisgICAgICBfcHJvZHVjdGlvbnNfbWl4aW5fanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5NaXhpbi5wYXJzZSh0b2tlbmlzZXIsIGJhc2UsIG9w
dHMpIHx8CisgICAgICBfcHJvZHVjdGlvbnNfaW50ZXJmYWNlX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV82X18uSW50ZXJmYWNlLnBhcnNlKHRva2VuaXNlciwgYmFzZSwgb3B0cykgfHwKICAg
ICAgIGVycm9yKCJJbnRlcmZhY2UgaGFzIG5vIHByb3BlciBib2R5Iik7CiAgICAgcmV0dXJuIHJl
dDsKICAgfQpAQCAtMTg5LDM3ICs4Miw0MSBAQCBmdW5jdGlvbiBwYXJzZUJ5VG9rZW5zKHRva2Vu
aXNlciwgb3B0aW9ucykgewogICBmdW5jdGlvbiBwYXJ0aWFsKCkgewogICAgIGNvbnN0IHBhcnRp
YWwgPSBjb25zdW1lKCJwYXJ0aWFsIik7CiAgICAgaWYgKCFwYXJ0aWFsKSByZXR1cm47Ci0gICAg
cmV0dXJuIF9wcm9kdWN0aW9uc19kaWN0aW9uYXJ5X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV84X19bIkRpY3Rpb25hcnkiXS5wYXJzZSh0b2tlbmlzZXIsIHsgcGFydGlhbCB9KSB8fAorICAg
IHJldHVybiAoCisgICAgICBfcHJvZHVjdGlvbnNfZGljdGlvbmFyeV9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfOF9fLkRpY3Rpb25hcnkucGFyc2UodG9rZW5pc2VyLCB7IHBhcnRpYWwgfSkg
fHwKICAgICAgIGludGVyZmFjZV8oeyBwYXJ0aWFsIH0pIHx8Ci0gICAgICBfcHJvZHVjdGlvbnNf
bmFtZXNwYWNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X19bIk5hbWVzcGFjZSJdLnBh
cnNlKHRva2VuaXNlciwgeyBwYXJ0aWFsIH0pIHx8Ci0gICAgICBlcnJvcigiUGFydGlhbCBkb2Vz
bid0IGFwcGx5IHRvIGFueXRoaW5nIik7CisgICAgICBfcHJvZHVjdGlvbnNfbmFtZXNwYWNlX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X18uTmFtZXNwYWNlLnBhcnNlKHRva2VuaXNlciwg
eyBwYXJ0aWFsIH0pIHx8CisgICAgICBlcnJvcigiUGFydGlhbCBkb2Vzbid0IGFwcGx5IHRvIGFu
eXRoaW5nIikKKyAgICApOwogICB9CiAKICAgZnVuY3Rpb24gZGVmaW5pdGlvbigpIHsKLSAgICBy
ZXR1cm4gY2FsbGJhY2soKSB8fAorICAgIHJldHVybiAoCisgICAgICBjYWxsYmFjaygpIHx8CiAg
ICAgICBpbnRlcmZhY2VfKCkgfHwKICAgICAgIHBhcnRpYWwoKSB8fAotICAgICAgX3Byb2R1Y3Rp
b25zX2RpY3Rpb25hcnlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfX1siRGljdGlvbmFy
eSJdLnBhcnNlKHRva2VuaXNlcikgfHwKLSAgICAgIF9wcm9kdWN0aW9uc19lbnVtX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkVudW0iXS5wYXJzZSh0b2tlbmlzZXIpIHx8Ci0gICAg
ICBfcHJvZHVjdGlvbnNfdHlwZWRlZl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fWyJU
eXBlZGVmIl0ucGFyc2UodG9rZW5pc2VyKSB8fAotICAgICAgX3Byb2R1Y3Rpb25zX2luY2x1ZGVz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkluY2x1ZGVzIl0ucGFyc2UodG9rZW5p
c2VyKSB8fAotICAgICAgX3Byb2R1Y3Rpb25zX25hbWVzcGFjZV9qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfOV9fWyJOYW1lc3BhY2UiXS5wYXJzZSh0b2tlbmlzZXIpOworICAgICAgX3Byb2R1
Y3Rpb25zX2RpY3Rpb25hcnlfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfXy5EaWN0aW9u
YXJ5LnBhcnNlKHRva2VuaXNlcikgfHwKKyAgICAgIF9wcm9kdWN0aW9uc19lbnVtX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX18uRW51bS5wYXJzZSh0b2tlbmlzZXIpIHx8CisgICAgICBf
cHJvZHVjdGlvbnNfdHlwZWRlZl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLlR5cGVk
ZWYucGFyc2UodG9rZW5pc2VyKSB8fAorICAgICAgX3Byb2R1Y3Rpb25zX2luY2x1ZGVzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uSW5jbHVkZXMucGFyc2UodG9rZW5pc2VyKSB8fAor
ICAgICAgX3Byb2R1Y3Rpb25zX25hbWVzcGFjZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
OV9fLk5hbWVzcGFjZS5wYXJzZSh0b2tlbmlzZXIpCisgICAgKTsKICAgfQogCiAgIGZ1bmN0aW9u
IGRlZmluaXRpb25zKCkgewogICAgIGlmICghc291cmNlLmxlbmd0aCkgcmV0dXJuIFtdOwogICAg
IGNvbnN0IGRlZnMgPSBbXTsKICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgY29uc3QgZWEgPSBf
cHJvZHVjdGlvbnNfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfM19fWyJFeHRlbmRlZEF0dHJpYnV0ZXMiXS5wYXJzZSh0b2tlbmlzZXIpOworICAgICAgY29u
c3QgZWEgPSBfcHJvZHVjdGlvbnNfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfM19fLkV4dGVuZGVkQXR0cmlidXRlcy5wYXJzZSh0b2tlbmlzZXIpOwogICAg
ICAgY29uc3QgZGVmID0gZGVmaW5pdGlvbigpOwogICAgICAgaWYgKCFkZWYpIHsKICAgICAgICAg
aWYgKGVhLmxlbmd0aCkgZXJyb3IoIlN0cmF5IGV4dGVuZGVkIGF0dHJpYnV0ZXMiKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgICB9Ci0gICAgICBPYmplY3QoX3Byb2R1Y3Rpb25zX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX19bImF1dG9QYXJlbnRlciJdKShkZWYpLmV4dEF0
dHJzID0gZWE7CisgICAgICAoMCxfcHJvZHVjdGlvbnNfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMTFfXy5hdXRvUGFyZW50ZXIpKGRlZikuZXh0QXR0cnMgPSBlYTsKICAgICAg
IGRlZnMucHVzaChkZWYpOwogICAgIH0KLSAgICBjb25zdCBlb2YgPSBjb25zdW1lKCJlb2YiKTsK
KyAgICBjb25zdCBlb2YgPSB0b2tlbmlzZXIuY29uc3VtZVR5cGUoImVvZiIpOwogICAgIGlmIChv
cHRpb25zLmNvbmNyZXRlKSB7CiAgICAgICBkZWZzLnB1c2goZW9mKTsKICAgICB9CkBAIC0yMzcs
NyArMTM0LDcgQEAgZnVuY3Rpb24gcGFyc2VCeVRva2Vucyh0b2tlbmlzZXIsIG9wdGlvbnMpIHsK
ICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuY29uY3JldGVdCiAgKi8KIGZ1bmN0aW9uIHBh
cnNlKHN0ciwgb3B0aW9ucyA9IHt9KSB7Ci0gIGNvbnN0IHRva2VuaXNlciA9IG5ldyBfdG9rZW5p
c2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIlRva2VuaXNlciJdKHN0cik7Cisg
IGNvbnN0IHRva2VuaXNlciA9IG5ldyBfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX18uVG9rZW5pc2VyKHN0cik7CiAgIGlmICh0eXBlb2Ygb3B0aW9ucy5zb3VyY2VOYW1l
ICE9PSAidW5kZWZpbmVkIikgewogICAgIHRva2VuaXNlci5zb3VyY2UubmFtZSA9IG9wdGlvbnMu
c291cmNlTmFtZTsKICAgfQpAQCAtMjQ3LDE1ICsxNDQsMTYgQEAgZnVuY3Rpb24gcGFyc2Uoc3Ry
LCBvcHRpb25zID0ge30pIHsKIAogLyoqKi8gfSksCiAvKiAyICovCi0vKioqLyAoZnVuY3Rpb24o
bW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioq
LyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0
c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFj
a19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChi
aW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgInR5
cGVOYW1lS2V5d29yZHMiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHR5cGVOYW1lS2V5d29yZHM7IH0p
OwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChf
X3dlYnBhY2tfZXhwb3J0c19fLCAic3RyaW5nVHlwZXMiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHN0
cmluZ1R5cGVzOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tf
cmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImFyZ3VtZW50TmFtZUtleXdvcmRzIiwg
ZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudE5hbWVLZXl3b3JkczsgfSk7Ci0vKiBoYXJtb255
IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBv
cnRzX18sICJUb2tlbmlzZXIiLCBmdW5jdGlvbigpIHsgcmV0dXJuIFRva2VuaXNlcjsgfSk7Ci0v
KiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2Vi
cGFja19leHBvcnRzX18sICJXZWJJRExQYXJzZUVycm9yIiwgZnVuY3Rpb24oKSB7IHJldHVybiBX
ZWJJRExQYXJzZUVycm9yOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1
aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJ0
eXBlTmFtZUtleXdvcmRzIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gdHlwZU5hbWVLZXl3b3Jkcyks
CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJzdHJpbmdUeXBlcyI6ICgpID0+ICgvKiBiaW5kaW5n
ICovIHN0cmluZ1R5cGVzKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgImFyZ3VtZW50TmFtZUtl
eXdvcmRzIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYXJndW1lbnROYW1lS2V5d29yZHMpLAorLyog
aGFybW9ueSBleHBvcnQgKi8gICAiVG9rZW5pc2VyIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gVG9r
ZW5pc2VyKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIldlYklETFBhcnNlRXJyb3IiOiAoKSA9
PiAoLyogYmluZGluZyAqLyBXZWJJRExQYXJzZUVycm9yKQorLyogaGFybW9ueSBleHBvcnQgKi8g
fSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpOwogLyogaGFybW9ueSBpbXBvcnQg
Ki8gdmFyIF9wcm9kdWN0aW9uc19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwogCkBAIC0yNjYsMTMgKzE2NCwxNCBAQCBfX3dl
YnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiBjb25zdCB0b2tlblJlID0g
ewogICAvLyBUaGlzIGV4cHJlc3Npb24gdXNlcyBhIGxvb2thaGVhZCBhc3NlcnRpb24gdG8gY2F0
Y2ggZmFsc2UgbWF0Y2hlcwogICAvLyBhZ2FpbnN0IGludGVnZXJzIGVhcmx5LgotICAiZGVjaW1h
bCI6IC8tPyg/PVswLTldKlwufFswLTldK1tlRV0pKChbMC05XStcLlswLTldKnxbMC05XSpcLlsw
LTldKykoW0VlXVstK10/WzAtOV0rKT98WzAtOV0rW0VlXVstK10/WzAtOV0rKS95LAotICAiaW50
ZWdlciI6IC8tPygwKFtYeF1bMC05QS1GYS1mXSt8WzAtN10qKXxbMS05XVswLTldKikveSwKLSAg
ImlkZW50aWZpZXIiOiAvW18tXT9bQS1aYS16XVswLTlBLVpfYS16LV0qL3ksCi0gICJzdHJpbmci
OiAvIlteIl0qIi95LAotICAid2hpdGVzcGFjZSI6IC9bXHRcblxyIF0rL3ksCi0gICJjb21tZW50
IjogLygoXC8oXC8uKnxcKihbXipdfFwqW14vXSkqXCpcLylbXHRcblxyIF0qKSspL3ksCi0gICJv
dGhlciI6IC9bXlx0XG5cciAwLTlBLVphLXpdL3kKKyAgZGVjaW1hbDoKKyAgICAvLT8oPz1bMC05
XSpcLnxbMC05XStbZUVdKSgoWzAtOV0rXC5bMC05XSp8WzAtOV0qXC5bMC05XSspKFtFZV1bLStd
P1swLTldKyk/fFswLTldK1tFZV1bLStdP1swLTldKykveSwKKyAgaW50ZWdlcjogLy0/KDAoW1h4
XVswLTlBLUZhLWZdK3xbMC03XSopfFsxLTldWzAtOV0qKS95LAorICBpZGVudGlmaWVyOiAvW18t
XT9bQS1aYS16XVswLTlBLVpfYS16LV0qL3ksCisgIHN0cmluZzogLyJbXiJdKiIveSwKKyAgd2hp
dGVzcGFjZTogL1tcdFxuXHIgXSsveSwKKyAgY29tbWVudDogL1wvXC8uKnxcL1wqKC58XG4pKj9c
KlwvL3ksCisgIG90aGVyOiAvW15cdFxuXHIgMC05QS1aYS16XS95LAogfTsKIAogY29uc3QgdHlw
ZU5hbWVLZXl3b3JkcyA9IFsKQEAgLTI4OSwxNCArMTg4LDEwIEBAIGNvbnN0IHR5cGVOYW1lS2V5
d29yZHMgPSBbCiAgICJGbG9hdDY0QXJyYXkiLAogICAiYW55IiwKICAgIm9iamVjdCIsCi0gICJz
eW1ib2wiCisgICJzeW1ib2wiLAogXTsKIAotY29uc3Qgc3RyaW5nVHlwZXMgPSBbCi0gICJCeXRl
U3RyaW5nIiwKLSAgIkRPTVN0cmluZyIsCi0gICJVU1ZTdHJpbmciCi1dOworY29uc3Qgc3RyaW5n
VHlwZXMgPSBbIkJ5dGVTdHJpbmciLCAiRE9NU3RyaW5nIiwgIlVTVlN0cmluZyJdOwogCiBjb25z
dCBhcmd1bWVudE5hbWVLZXl3b3JkcyA9IFsKICAgImFzeW5jIiwKQEAgLTMyMSw3ICsyMTYsNyBA
QCBjb25zdCBhcmd1bWVudE5hbWVLZXl3b3JkcyA9IFsKICAgInN0YXRpYyIsCiAgICJzdHJpbmdp
ZmllciIsCiAgICJ0eXBlZGVmIiwKLSAgInVucmVzdHJpY3RlZCIKKyAgInVucmVzdHJpY3RlZCIs
CiBdOwogCiBjb25zdCBub25SZWdleFRlcm1pbmFscyA9IFsKQEAgLTMyOSw3ICsyMjQsOSBAQCBj
b25zdCBub25SZWdleFRlcm1pbmFscyA9IFsKICAgIkZyb3plbkFycmF5IiwKICAgIkluZmluaXR5
IiwKICAgIk5hTiIsCisgICJPYnNlcnZhYmxlQXJyYXkiLAogICAiUHJvbWlzZSIsCisgICJiaWdp
bnQiLAogICAiYm9vbGVhbiIsCiAgICJieXRlIiwKICAgImRvdWJsZSIsCkBAIC0zNDYsOCArMjQz
LDkgQEAgY29uc3Qgbm9uUmVnZXhUZXJtaW5hbHMgPSBbCiAgICJzZXF1ZW5jZSIsCiAgICJzaG9y
dCIsCiAgICJ0cnVlIiwKKyAgInVuZGVmaW5lZCIsCiAgICJ1bnNpZ25lZCIsCi0gICJ2b2lkIgor
ICAidm9pZCIsCiBdLmNvbmNhdChhcmd1bWVudE5hbWVLZXl3b3Jkcywgc3RyaW5nVHlwZXMsIHR5
cGVOYW1lS2V5d29yZHMpOwogCiBjb25zdCBwdW5jdHVhdGlvbnMgPSBbCkBAIC0zNjQsNyArMjYy
LDcgQEAgY29uc3QgcHVuY3R1YXRpb25zID0gWwogICAiWyIsCiAgICJdIiwKICAgInsiLAotICAi
fSIKKyAgIn0iLAogXTsKIAogY29uc3QgcmVzZXJ2ZWQgPSBbCkBAIC0zOTAsNyArMjg4LDcgQEAg
ZnVuY3Rpb24gdG9rZW5pc2Uoc3RyKSB7CiAKICAgICBpZiAoL1tcdFxuXHIgXS8udGVzdChuZXh0
Q2hhcikpIHsKICAgICAgIHJlc3VsdCA9IGF0dGVtcHRUb2tlbk1hdGNoKCJ3aGl0ZXNwYWNlIiwg
eyBub0ZsdXNoVHJpdmlhOiB0cnVlIH0pOwotICAgIH0gZWxzZSBpZiAobmV4dENoYXIgPT09ICcv
JykgeworICAgIH0gZWxzZSBpZiAobmV4dENoYXIgPT09ICIvIikgewogICAgICAgcmVzdWx0ID0g
YXR0ZW1wdFRva2VuTWF0Y2goImNvbW1lbnQiLCB7IG5vRmx1c2hUcml2aWE6IHRydWUgfSk7CiAg
ICAgfQogCkBAIC00MTAsMTAgKzMwOCwxNCBAQCBmdW5jdGlvbiB0b2tlbmlzZShzdHIpIHsKICAg
ICAgICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbbGFzdEluZGV4XTsKICAgICAgICAgaWYgKHJlc3Vs
dCAhPT0gLTEpIHsKICAgICAgICAgICBpZiAocmVzZXJ2ZWQuaW5jbHVkZXModG9rZW4udmFsdWUp
KSB7Ci0gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYCR7T2JqZWN0KF9wcm9kdWN0aW9uc19o
ZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0pKHRva2Vu
LnZhbHVlKX0gaXMgYSByZXNlcnZlZCBpZGVudGlmaWVyIGFuZCBtdXN0IG5vdCBiZSB1c2VkLmA7
Ci0gICAgICAgICAgICB0aHJvdyBuZXcgV2ViSURMUGFyc2VFcnJvcihPYmplY3QoX2Vycm9yX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bInN5bnRheEVycm9yIl0pKHRva2VucywgbGFz
dEluZGV4LCBudWxsLCBtZXNzYWdlKSk7CisgICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYCR7
KDAsX3Byb2R1Y3Rpb25zX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51
bmVzY2FwZSkoCisgICAgICAgICAgICAgIHRva2VuLnZhbHVlCisgICAgICAgICAgICApfSBpcyBh
IHJlc2VydmVkIGlkZW50aWZpZXIgYW5kIG11c3Qgbm90IGJlIHVzZWQuYDsKKyAgICAgICAgICAg
IHRocm93IG5ldyBXZWJJRExQYXJzZUVycm9yKAorICAgICAgICAgICAgICAoMCxfZXJyb3JfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5zeW50YXhFcnJvcikodG9rZW5zLCBsYXN0SW5k
ZXgsIG51bGwsIG1lc3NhZ2UpCisgICAgICAgICAgICApOwogICAgICAgICAgIH0gZWxzZSBpZiAo
bm9uUmVnZXhUZXJtaW5hbHMuaW5jbHVkZXModG9rZW4udmFsdWUpKSB7Ci0gICAgICAgICAgICB0
b2tlbi50eXBlID0gdG9rZW4udmFsdWU7CisgICAgICAgICAgICB0b2tlbi50eXBlID0gImlubGlu
ZSI7CiAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICB9CkBAIC00MjMsNyArMzI1LDEzIEBA
IGZ1bmN0aW9uIHRva2VuaXNlKHN0cikgewogCiAgICAgZm9yIChjb25zdCBwdW5jdHVhdGlvbiBv
ZiBwdW5jdHVhdGlvbnMpIHsKICAgICAgIGlmIChzdHIuc3RhcnRzV2l0aChwdW5jdHVhdGlvbiwg
bGFzdENoYXJJbmRleCkpIHsKLSAgICAgICAgdG9rZW5zLnB1c2goeyB0eXBlOiBwdW5jdHVhdGlv
biwgdmFsdWU6IHB1bmN0dWF0aW9uLCB0cml2aWEsIGxpbmUsIGluZGV4IH0pOworICAgICAgICB0
b2tlbnMucHVzaCh7CisgICAgICAgICAgdHlwZTogImlubGluZSIsCisgICAgICAgICAgdmFsdWU6
IHB1bmN0dWF0aW9uLAorICAgICAgICAgIHRyaXZpYSwKKyAgICAgICAgICBsaW5lLAorICAgICAg
ICAgIGluZGV4LAorICAgICAgICB9KTsKICAgICAgICAgdHJpdmlhID0gIiI7CiAgICAgICAgIGxh
c3RDaGFySW5kZXggKz0gcHVuY3R1YXRpb24ubGVuZ3RoOwogICAgICAgICByZXN1bHQgPSBsYXN0
Q2hhckluZGV4OwpAQCAtNDQ2LDcgKzM1NCw3IEBAIGZ1bmN0aW9uIHRva2VuaXNlKHN0cikgewog
ICB0b2tlbnMucHVzaCh7CiAgICAgdHlwZTogImVvZiIsCiAgICAgdmFsdWU6ICIiLAotICAgIHRy
aXZpYQorICAgIHRyaXZpYSwKICAgfSk7CiAKICAgcmV0dXJuIHRva2VuczsKQEAgLTQ4NSwyOCAr
MzkzLDU1IEBAIGNsYXNzIFRva2VuaXNlciB7CiAgICAqIEByZXR1cm4ge25ldmVyfQogICAgKi8K
ICAgZXJyb3IobWVzc2FnZSkgewotICAgIHRocm93IG5ldyBXZWJJRExQYXJzZUVycm9yKE9iamVj
dChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1sic3ludGF4RXJyb3IiXSko
dGhpcy5zb3VyY2UsIHRoaXMucG9zaXRpb24sIHRoaXMuY3VycmVudCwgbWVzc2FnZSkpOworICAg
IHRocm93IG5ldyBXZWJJRExQYXJzZUVycm9yKAorICAgICAgKDAsX2Vycm9yX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8wX18uc3ludGF4RXJyb3IpKHRoaXMuc291cmNlLCB0aGlzLnBvc2l0
aW9uLCB0aGlzLmN1cnJlbnQsIG1lc3NhZ2UpCisgICAgKTsKICAgfQogCiAgIC8qKgogICAgKiBA
cGFyYW0ge3N0cmluZ30gdHlwZQogICAgKi8KLSAgcHJvYmUodHlwZSkgewotICAgIHJldHVybiB0
aGlzLnNvdXJjZS5sZW5ndGggPiB0aGlzLnBvc2l0aW9uICYmIHRoaXMuc291cmNlW3RoaXMucG9z
aXRpb25dLnR5cGUgPT09IHR5cGU7CisgIHByb2JlVHlwZSh0eXBlKSB7CisgICAgcmV0dXJuICgK
KyAgICAgIHRoaXMuc291cmNlLmxlbmd0aCA+IHRoaXMucG9zaXRpb24gJiYKKyAgICAgIHRoaXMu
c291cmNlW3RoaXMucG9zaXRpb25dLnR5cGUgPT09IHR5cGUKKyAgICApOworICB9CisKKyAgLyoq
CisgICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZQorICAgKi8KKyAgcHJvYmUodmFsdWUpIHsKKyAg
ICByZXR1cm4gKAorICAgICAgdGhpcy5wcm9iZVR5cGUoImlubGluZSIpICYmIHRoaXMuc291cmNl
W3RoaXMucG9zaXRpb25dLnZhbHVlID09PSB2YWx1ZQorICAgICk7CiAgIH0KIAogICAvKioKICAg
ICogQHBhcmFtICB7Li4uc3RyaW5nfSBjYW5kaWRhdGVzCiAgICAqLwotICBjb25zdW1lKC4uLmNh
bmRpZGF0ZXMpIHsKKyAgY29uc3VtZVR5cGUoLi4uY2FuZGlkYXRlcykgewogICAgIGZvciAoY29u
c3QgdHlwZSBvZiBjYW5kaWRhdGVzKSB7Ci0gICAgICBpZiAoIXRoaXMucHJvYmUodHlwZSkpIGNv
bnRpbnVlOworICAgICAgaWYgKCF0aGlzLnByb2JlVHlwZSh0eXBlKSkgY29udGludWU7CiAgICAg
ICBjb25zdCB0b2tlbiA9IHRoaXMuc291cmNlW3RoaXMucG9zaXRpb25dOwogICAgICAgdGhpcy5w
b3NpdGlvbisrOwogICAgICAgcmV0dXJuIHRva2VuOwogICAgIH0KICAgfQogCisgIC8qKgorICAg
KiBAcGFyYW0gIHsuLi5zdHJpbmd9IGNhbmRpZGF0ZXMKKyAgICovCisgIGNvbnN1bWUoLi4uY2Fu
ZGlkYXRlcykgeworICAgIGlmICghdGhpcy5wcm9iZVR5cGUoImlubGluZSIpKSByZXR1cm47Cisg
ICAgY29uc3QgdG9rZW4gPSB0aGlzLnNvdXJjZVt0aGlzLnBvc2l0aW9uXTsKKyAgICBmb3IgKGNv
bnN0IHZhbHVlIG9mIGNhbmRpZGF0ZXMpIHsKKyAgICAgIGlmICh0b2tlbi52YWx1ZSAhPT0gdmFs
dWUpIGNvbnRpbnVlOworICAgICAgdGhpcy5wb3NpdGlvbisrOworICAgICAgcmV0dXJuIHRva2Vu
OworICAgIH0KKyAgfQorCiAgIC8qKgogICAgKiBAcGFyYW0ge251bWJlcn0gcG9zaXRpb24KICAg
ICovCkBAIC01MjYsNyArNDYxLDE1IEBAIGNsYXNzIFdlYklETFBhcnNlRXJyb3IgZXh0ZW5kcyBF
cnJvciB7CiAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmlucHV0CiAgICAqIEBwYXJhbSB7
KltdfSBvcHRpb25zLnRva2VucwogICAgKi8KLSAgY29uc3RydWN0b3IoeyBtZXNzYWdlLCBiYXJl
TWVzc2FnZSwgY29udGV4dCwgbGluZSwgc291cmNlTmFtZSwgaW5wdXQsIHRva2VucyB9KSB7Cisg
IGNvbnN0cnVjdG9yKHsKKyAgICBtZXNzYWdlLAorICAgIGJhcmVNZXNzYWdlLAorICAgIGNvbnRl
eHQsCisgICAgbGluZSwKKyAgICBzb3VyY2VOYW1lLAorICAgIGlucHV0LAorICAgIHRva2VucywK
KyAgfSkgewogICAgIHN1cGVyKG1lc3NhZ2UpOwogCiAgICAgdGhpcy5uYW1lID0gIldlYklETFBh
cnNlRXJyb3IiOyAvLyBub3QgdG8gYmUgbWFuZ2xlZApAQCAtNTQyLDEyICs0ODUsMTMgQEAgY2xh
c3MgV2ViSURMUGFyc2VFcnJvciBleHRlbmRzIEVycm9yIHsKIAogLyoqKi8gfSksCiAvKiAzICov
Ci0vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tf
cmVxdWlyZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9f
LCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ug
c3RyaWN0IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8q
IGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJw
YWNrX2V4cG9ydHNfXywgInN5bnRheEVycm9yIiwgZnVuY3Rpb24oKSB7IHJldHVybiBzeW50YXhF
cnJvcjsgfSk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVp
cmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJ2YWxpZGF0aW9uRXJyb3IiLCBmdW5jdGlvbigp
IHsgcmV0dXJuIHZhbGlkYXRpb25FcnJvcjsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dl
YnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBv
cnQgKi8gICAic3ludGF4RXJyb3IiOiAoKSA9PiAoLyogYmluZGluZyAqLyBzeW50YXhFcnJvciks
CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJ2YWxpZGF0aW9uRXJyb3IiOiAoKSA9PiAoLyogYmlu
ZGluZyAqLyB2YWxpZGF0aW9uRXJyb3IpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qKgog
ICogQHBhcmFtIHtzdHJpbmd9IHRleHQKICAqLwpAQCAtNTU2LDYgKzUwMCwyNCBAQCBmdW5jdGlv
biBsYXN0TGluZSh0ZXh0KSB7CiAgIHJldHVybiBzcGxpdHRlZFtzcGxpdHRlZC5sZW5ndGggLSAx
XTsKIH0KIAorZnVuY3Rpb24gYXBwZW5kSWZFeGlzdChiYXNlLCB0YXJnZXQpIHsKKyAgbGV0IHJl
c3VsdCA9IGJhc2U7CisgIGlmICh0YXJnZXQpIHsKKyAgICByZXN1bHQgKz0gYCAke3RhcmdldH1g
OworICB9CisgIHJldHVybiByZXN1bHQ7Cit9CisKK2Z1bmN0aW9uIGNvbnRleHRBc1RleHQobm9k
ZSkgeworICBjb25zdCBoaWVyYXJjaHkgPSBbbm9kZV07CisgIHdoaWxlIChub2RlICYmIG5vZGUu
cGFyZW50KSB7CisgICAgY29uc3QgeyBwYXJlbnQgfSA9IG5vZGU7CisgICAgaGllcmFyY2h5LnVu
c2hpZnQocGFyZW50KTsKKyAgICBub2RlID0gcGFyZW50OworICB9CisgIHJldHVybiBoaWVyYXJj
aHkubWFwKChuKSA9PiBhcHBlbmRJZkV4aXN0KG4udHlwZSwgbi5uYW1lKSkuam9pbigiIC0+ICIp
OworfQorCiAvKioKICAqIEB0eXBlZGVmIHtvYmplY3R9IFdlYklETDJFcnJvck9wdGlvbnMKICAq
IEBwcm9wZXJ0eSB7ImVycm9yIiB8ICJ3YXJuaW5nIn0gW2xldmVsXQpAQCAtNTY1LDE4ICs1Mjcs
MjUgQEAgZnVuY3Rpb24gbGFzdExpbmUodGV4dCkgewogICogQHBhcmFtIHsiU3ludGF4IiB8ICJW
YWxpZGF0aW9uIn0ga2luZCBlcnJvciB0eXBlCiAgKiBAcGFyYW0ge1dlYklETDJFcnJvck9wdGlv
bnN9IFtvcHRpb25zXQogICovCi1mdW5jdGlvbiBlcnJvcihzb3VyY2UsIHBvc2l0aW9uLCBjdXJy
ZW50LCBtZXNzYWdlLCBraW5kLCB7IGxldmVsID0gImVycm9yIiwgYXV0b2ZpeCwgcnVsZU5hbWUg
fSA9IHt9KSB7CitmdW5jdGlvbiBlcnJvcigKKyAgc291cmNlLAorICBwb3NpdGlvbiwKKyAgY3Vy
cmVudCwKKyAgbWVzc2FnZSwKKyAga2luZCwKKyAgeyBsZXZlbCA9ICJlcnJvciIsIGF1dG9maXgs
IHJ1bGVOYW1lIH0gPSB7fQorKSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge251bWJlcn0gY291bnQK
ICAgICovCiAgIGZ1bmN0aW9uIHNsaWNlVG9rZW5zKGNvdW50KSB7Ci0gICAgcmV0dXJuIGNvdW50
ID4gMCA/Ci0gICAgICBzb3VyY2Uuc2xpY2UocG9zaXRpb24sIHBvc2l0aW9uICsgY291bnQpIDoK
LSAgICAgIHNvdXJjZS5zbGljZShNYXRoLm1heChwb3NpdGlvbiArIGNvdW50LCAwKSwgcG9zaXRp
b24pOworICAgIHJldHVybiBjb3VudCA+IDAKKyAgICAgID8gc291cmNlLnNsaWNlKHBvc2l0aW9u
LCBwb3NpdGlvbiArIGNvdW50KQorICAgICAgOiBzb3VyY2Uuc2xpY2UoTWF0aC5tYXgocG9zaXRp
b24gKyBjb3VudCwgMCksIHBvc2l0aW9uKTsKICAgfQogCiAgIGZ1bmN0aW9uIHRva2Vuc1RvVGV4
dChpbnB1dHMsIHsgcHJlY2VkZXMgfSA9IHt9KSB7Ci0gICAgY29uc3QgdGV4dCA9IGlucHV0cy5t
YXAodCA9PiB0LnRyaXZpYSArIHQudmFsdWUpLmpvaW4oIiIpOworICAgIGNvbnN0IHRleHQgPSBp
bnB1dHMubWFwKCh0KSA9PiB0LnRyaXZpYSArIHQudmFsdWUpLmpvaW4oIiIpOwogICAgIGNvbnN0
IG5leHRUb2tlbiA9IHNvdXJjZVtwb3NpdGlvbl07CiAgICAgaWYgKG5leHRUb2tlbi50eXBlID09
PSAiZW9mIikgewogICAgICAgcmV0dXJuIHRleHQ7CkBAIC01ODksOSArNTU4LDExIEBAIGZ1bmN0
aW9uIGVycm9yKHNvdXJjZSwgcG9zaXRpb24sIGN1cnJlbnQsIG1lc3NhZ2UsIGtpbmQsIHsgbGV2
ZWwgPSAiZXJyb3IiLCBhdXRvCiAKICAgY29uc3QgbWF4VG9rZW5zID0gNTsgLy8gYXJiaXRyYXJ5
IGJ1dCB3b3JrcyB3ZWxsIGVub3VnaAogICBjb25zdCBsaW5lID0KLSAgICBzb3VyY2VbcG9zaXRp
b25dLnR5cGUgIT09ICJlb2YiID8gc291cmNlW3Bvc2l0aW9uXS5saW5lIDoKLSAgICBzb3VyY2Uu
bGVuZ3RoID4gMSA/IHNvdXJjZVtwb3NpdGlvbiAtIDFdLmxpbmUgOgotICAgIDE7CisgICAgc291
cmNlW3Bvc2l0aW9uXS50eXBlICE9PSAiZW9mIgorICAgICAgPyBzb3VyY2VbcG9zaXRpb25dLmxp
bmUKKyAgICAgIDogc291cmNlLmxlbmd0aCA+IDEKKyAgICAgID8gc291cmNlW3Bvc2l0aW9uIC0g
MV0ubGluZQorICAgICAgOiAxOwogCiAgIGNvbnN0IHByZWNlZGluZ0xhc3RMaW5lID0gbGFzdExp
bmUoCiAgICAgdG9rZW5zVG9UZXh0KHNsaWNlVG9rZW5zKC1tYXhUb2tlbnMpLCB7IHByZWNlZGVz
OiB0cnVlIH0pCkBAIC02MDYsNyArNTc3LDEyIEBAIGZ1bmN0aW9uIGVycm9yKHNvdXJjZSwgcG9z
aXRpb24sIGN1cnJlbnQsIG1lc3NhZ2UsIGtpbmQsIHsgbGV2ZWwgPSAiZXJyb3IiLCBhdXRvCiAK
ICAgY29uc3QgY29udGV4dFR5cGUgPSBraW5kID09PSAiU3ludGF4IiA/ICJzaW5jZSIgOiAiaW5z
aWRlIjsKICAgY29uc3QgaW5Tb3VyY2VOYW1lID0gc291cmNlLm5hbWUgPyBgIGluICR7c291cmNl
Lm5hbWV9YCA6ICIiOwotICBjb25zdCBncmFtbWF0aWNhbENvbnRleHQgPSAoY3VycmVudCAmJiBj
dXJyZW50Lm5hbWUpID8gYCwgJHtjb250ZXh0VHlwZX0gXGAke2N1cnJlbnQucGFydGlhbCA/ICJw
YXJ0aWFsICIgOiAiIn0ke2N1cnJlbnQudHlwZX0gJHtjdXJyZW50Lm5hbWV9XGBgIDogIiI7Cisg
IGNvbnN0IGdyYW1tYXRpY2FsQ29udGV4dCA9CisgICAgY3VycmVudCAmJiBjdXJyZW50Lm5hbWUK
KyAgICAgID8gYCwgJHtjb250ZXh0VHlwZX0gXGAke2N1cnJlbnQucGFydGlhbCA/ICJwYXJ0aWFs
ICIgOiAiIn0ke2NvbnRleHRBc1RleHQoCisgICAgICAgICAgY3VycmVudAorICAgICAgICApfVxg
YAorICAgICAgOiAiIjsKICAgY29uc3QgY29udGV4dCA9IGAke2tpbmR9IGVycm9yIGF0IGxpbmUg
JHtsaW5lfSR7aW5Tb3VyY2VOYW1lfSR7Z3JhbW1hdGljYWxDb250ZXh0fTpcbiR7c291cmNlQ29u
dGV4dH1gOwogICByZXR1cm4gewogICAgIG1lc3NhZ2U6IGAke2NvbnRleHR9ICR7bWVzc2FnZX1g
LApAQCAtNjE4LDcgKzU5NCw3IEBAIGZ1bmN0aW9uIGVycm9yKHNvdXJjZSwgcG9zaXRpb24sIGN1
cnJlbnQsIG1lc3NhZ2UsIGtpbmQsIHsgbGV2ZWwgPSAiZXJyb3IiLCBhdXRvCiAgICAgcnVsZU5h
bWUsCiAgICAgYXV0b2ZpeCwKICAgICBpbnB1dDogc3Vic2VxdWVudFRleHQsCi0gICAgdG9rZW5z
OiBzdWJzZXF1ZW50VG9rZW5zCisgICAgdG9rZW5zOiBzdWJzZXF1ZW50VG9rZW5zLAogICB9Owog
fQogCkBAIC02MzMsMzMgKzYwOSw0NyBAQCBmdW5jdGlvbiBzeW50YXhFcnJvcihzb3VyY2UsIHBv
c2l0aW9uLCBjdXJyZW50LCBtZXNzYWdlKSB7CiAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSBl
cnJvciBtZXNzYWdlCiAgKiBAcGFyYW0ge1dlYklETDJFcnJvck9wdGlvbnN9IFtvcHRpb25zXQog
ICovCi1mdW5jdGlvbiB2YWxpZGF0aW9uRXJyb3IodG9rZW4sIGN1cnJlbnQsIHJ1bGVOYW1lLCBt
ZXNzYWdlLCBvcHRpb25zID0ge30pIHsKK2Z1bmN0aW9uIHZhbGlkYXRpb25FcnJvcigKKyAgdG9r
ZW4sCisgIGN1cnJlbnQsCisgIHJ1bGVOYW1lLAorICBtZXNzYWdlLAorICBvcHRpb25zID0ge30K
KykgewogICBvcHRpb25zLnJ1bGVOYW1lID0gcnVsZU5hbWU7Ci0gIHJldHVybiBlcnJvcihjdXJy
ZW50LnNvdXJjZSwgdG9rZW4uaW5kZXgsIGN1cnJlbnQsIG1lc3NhZ2UsICJWYWxpZGF0aW9uIiwg
b3B0aW9ucyk7CisgIHJldHVybiBlcnJvcigKKyAgICBjdXJyZW50LnNvdXJjZSwKKyAgICB0b2tl
bi5pbmRleCwKKyAgICBjdXJyZW50LAorICAgIG1lc3NhZ2UsCisgICAgIlZhbGlkYXRpb24iLAor
ICAgIG9wdGlvbnMKKyAgKTsKIH0KIAogCiAvKioqLyB9KSwKIC8qIDQgKi8KLS8qKiovIChmdW5j
dGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsK
Ky8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19l
eHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193
ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBv
cnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19f
LCAidW5lc2NhcGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHVuZXNjYXBlOyB9KTsKLS8qIGhhcm1v
bnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4
cG9ydHNfXywgImxpc3QiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGxpc3Q7IH0pOwotLyogaGFybW9u
eSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhw
b3J0c19fLCAiY29uc3RfdmFsdWUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGNvbnN0X3ZhbHVlOyB9
KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQo
X193ZWJwYWNrX2V4cG9ydHNfXywgImNvbnN0X2RhdGEiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGNv
bnN0X2RhdGE7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19y
ZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAicHJpbWl0aXZlX3R5cGUiLCBmdW5jdGlv
bigpIHsgcmV0dXJuIHByaW1pdGl2ZV90eXBlOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5k
aW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImFyZ3Vt
ZW50X2xpc3QiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50X2xpc3Q7IH0pOwotLyogaGFy
bW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tf
ZXhwb3J0c19fLCAidHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMiLCBmdW5jdGlvbigpIHsg
cmV0dXJuIHR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzOyB9KTsKLS8qIGhhcm1vbnkgZXhw
b3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNf
XywgInJldHVybl90eXBlIiwgZnVuY3Rpb24oKSB7IHJldHVybiByZXR1cm5fdHlwZTsgfSk7Ci0v
KiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2Vi
cGFja19leHBvcnRzX18sICJzdHJpbmdpZmllciIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gc3RyaW5n
aWZpZXI7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1
aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiZ2V0TGFzdEluZGVudGF0aW9uIiwgZnVuY3Rp
b24oKSB7IHJldHVybiBnZXRMYXN0SW5kZW50YXRpb247IH0pOwotLyogaGFybW9ueSBleHBvcnQg
KGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAi
Z2V0TWVtYmVySW5kZW50YXRpb24iLCBmdW5jdGlvbigpIHsgcmV0dXJuIGdldE1lbWJlckluZGVu
dGF0aW9uOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVx
dWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImF1dG9maXhBZGRFeHBvc2VkV2luZG93Iiwg
ZnVuY3Rpb24oKSB7IHJldHVybiBhdXRvZml4QWRkRXhwb3NlZFdpbmRvdzsgfSk7Ci0vKiBoYXJt
b255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19l
eHBvcnRzX18sICJnZXRGaXJzdFRva2VuIiwgZnVuY3Rpb24oKSB7IHJldHVybiBnZXRGaXJzdFRv
a2VuOyB9KTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWly
ZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImZpbmRMYXN0SW5kZXgiLCBmdW5jdGlvbigpIHsg
cmV0dXJuIGZpbmRMYXN0SW5kZXg7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICov
IF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiYXV0b1BhcmVudGVy
IiwgZnVuY3Rpb24oKSB7IHJldHVybiBhdXRvUGFyZW50ZXI7IH0pOworLyogaGFybW9ueSBleHBv
cnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhh
cm1vbnkgZXhwb3J0ICovICAgInVuZXNjYXBlIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gdW5lc2Nh
cGUpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAibGlzdCI6ICgpID0+ICgvKiBiaW5kaW5nICov
IGxpc3QpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAiY29uc3RfdmFsdWUiOiAoKSA9PiAoLyog
YmluZGluZyAqLyBjb25zdF92YWx1ZSksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJjb25zdF9k
YXRhIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gY29uc3RfZGF0YSksCisvKiBoYXJtb255IGV4cG9y
dCAqLyAgICJwcmltaXRpdmVfdHlwZSI6ICgpID0+ICgvKiBiaW5kaW5nICovIHByaW1pdGl2ZV90
eXBlKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgImFyZ3VtZW50X2xpc3QiOiAoKSA9PiAoLyog
YmluZGluZyAqLyBhcmd1bWVudF9saXN0KSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgInR5cGVf
d2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gdHlwZV93aXRo
X2V4dGVuZGVkX2F0dHJpYnV0ZXMpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAicmV0dXJuX3R5
cGUiOiAoKSA9PiAoLyogYmluZGluZyAqLyByZXR1cm5fdHlwZSksCisvKiBoYXJtb255IGV4cG9y
dCAqLyAgICJzdHJpbmdpZmllciI6ICgpID0+ICgvKiBiaW5kaW5nICovIHN0cmluZ2lmaWVyKSwK
Ky8qIGhhcm1vbnkgZXhwb3J0ICovICAgImdldExhc3RJbmRlbnRhdGlvbiI6ICgpID0+ICgvKiBi
aW5kaW5nICovIGdldExhc3RJbmRlbnRhdGlvbiksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJn
ZXRNZW1iZXJJbmRlbnRhdGlvbiI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdldE1lbWJlckluZGVu
dGF0aW9uKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgImF1dG9maXhBZGRFeHBvc2VkV2luZG93
IjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYXV0b2ZpeEFkZEV4cG9zZWRXaW5kb3cpLAorLyogaGFy
bW9ueSBleHBvcnQgKi8gICAiZ2V0Rmlyc3RUb2tlbiI6ICgpID0+ICgvKiBiaW5kaW5nICovIGdl
dEZpcnN0VG9rZW4pLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAiZmluZExhc3RJbmRleCI6ICgp
ID0+ICgvKiBiaW5kaW5nICovIGZpbmRMYXN0SW5kZXgpLAorLyogaGFybW9ueSBleHBvcnQgKi8g
ICAiYXV0b1BhcmVudGVyIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gYXV0b1BhcmVudGVyKQorLyog
aGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3R5cGVfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNSk7CiAv
KiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FyZ3VtZW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDExKTsKIC8qIGhhcm1vbnkgaW1wb3J0ICov
IHZhciBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9f
ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4KTsKQEAgLTY3Nyw3ICs2NjcsNyBAQCBfX3dlYnBhY2tf
cmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiAgKiBAcGFyYW0ge3N0cmluZ30gaWRl
bnRpZmllcgogICovCiBmdW5jdGlvbiB1bmVzY2FwZShpZGVudGlmaWVyKSB7Ci0gIHJldHVybiBp
ZGVudGlmaWVyLnN0YXJ0c1dpdGgoJ18nKSA/IGlkZW50aWZpZXIuc2xpY2UoMSkgOiBpZGVudGlm
aWVyOworICByZXR1cm4gaWRlbnRpZmllci5zdGFydHNXaXRoKCJfIikgPyBpZGVudGlmaWVyLnNs
aWNlKDEpIDogaWRlbnRpZmllcjsKIH0KIAogLyoqCkBAIC03MTQsNyArNzA0LDEwIEBAIGZ1bmN0
aW9uIGxpc3QodG9rZW5pc2VyLCB7IHBhcnNlciwgYWxsb3dEYW5nbGVyLCBsaXN0TmFtZSA9ICJs
aXN0IiB9KSB7CiAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0
b2tlbmlzZXIKICAqLwogZnVuY3Rpb24gY29uc3RfdmFsdWUodG9rZW5pc2VyKSB7Ci0gIHJldHVy
biB0b2tlbmlzZXIuY29uc3VtZSgidHJ1ZSIsICJmYWxzZSIsICJJbmZpbml0eSIsICItSW5maW5p
dHkiLCAiTmFOIiwgImRlY2ltYWwiLCAiaW50ZWdlciIpOworICByZXR1cm4gKAorICAgIHRva2Vu
aXNlci5jb25zdW1lVHlwZSgiZGVjaW1hbCIsICJpbnRlZ2VyIikgfHwKKyAgICB0b2tlbmlzZXIu
Y29uc3VtZSgidHJ1ZSIsICJmYWxzZSIsICJJbmZpbml0eSIsICItSW5maW5pdHkiLCAiTmFOIikK
KyAgKTsKIH0KIAogLyoqCkBAIC03MjQsMjMgKzcxNywyNiBAQCBmdW5jdGlvbiBjb25zdF92YWx1
ZSh0b2tlbmlzZXIpIHsKICAqLwogZnVuY3Rpb24gY29uc3RfZGF0YSh7IHR5cGUsIHZhbHVlIH0p
IHsKICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSAiZGVjaW1hbCI6CisgICAgY2FzZSAiaW50
ZWdlciI6CisgICAgICByZXR1cm4geyB0eXBlOiAibnVtYmVyIiwgdmFsdWUgfTsKKyAgICBjYXNl
ICJzdHJpbmciOgorICAgICAgcmV0dXJuIHsgdHlwZTogInN0cmluZyIsIHZhbHVlOiB2YWx1ZS5z
bGljZSgxLCAtMSkgfTsKKyAgfQorCisgIHN3aXRjaCAodmFsdWUpIHsKICAgICBjYXNlICJ0cnVl
IjoKICAgICBjYXNlICJmYWxzZSI6Ci0gICAgICByZXR1cm4geyB0eXBlOiAiYm9vbGVhbiIsIHZh
bHVlOiB0eXBlID09PSAidHJ1ZSIgfTsKKyAgICAgIHJldHVybiB7IHR5cGU6ICJib29sZWFuIiwg
dmFsdWU6IHZhbHVlID09PSAidHJ1ZSIgfTsKICAgICBjYXNlICJJbmZpbml0eSI6CiAgICAgY2Fz
ZSAiLUluZmluaXR5IjoKLSAgICAgIHJldHVybiB7IHR5cGU6ICJJbmZpbml0eSIsIG5lZ2F0aXZl
OiB0eXBlLnN0YXJ0c1dpdGgoIi0iKSB9OworICAgICAgcmV0dXJuIHsgdHlwZTogIkluZmluaXR5
IiwgbmVnYXRpdmU6IHZhbHVlLnN0YXJ0c1dpdGgoIi0iKSB9OwogICAgIGNhc2UgIlsiOgogICAg
ICAgcmV0dXJuIHsgdHlwZTogInNlcXVlbmNlIiwgdmFsdWU6IFtdIH07CiAgICAgY2FzZSAieyI6
CiAgICAgICByZXR1cm4geyB0eXBlOiAiZGljdGlvbmFyeSIgfTsKLSAgICBjYXNlICJkZWNpbWFs
IjoKLSAgICBjYXNlICJpbnRlZ2VyIjoKLSAgICAgIHJldHVybiB7IHR5cGU6ICJudW1iZXIiLCB2
YWx1ZSB9OwotICAgIGNhc2UgInN0cmluZyI6Ci0gICAgICByZXR1cm4geyB0eXBlOiAic3RyaW5n
IiwgdmFsdWU6IHZhbHVlLnNsaWNlKDEsIC0xKSB9OwogICAgIGRlZmF1bHQ6Ci0gICAgICByZXR1
cm4geyB0eXBlIH07CisgICAgICByZXR1cm4geyB0eXBlOiB2YWx1ZSB9OwogICB9CiB9CiAKQEAg
LTc1Myw3ICs3NDksNyBAQCBmdW5jdGlvbiBwcmltaXRpdmVfdHlwZSh0b2tlbmlzZXIpIHsKICAg
ICBjb25zdCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoInNob3J0IiwgImxvbmciKTsKICAgICBp
ZiAoYmFzZSkgewogICAgICAgY29uc3QgcG9zdGZpeCA9IHRva2VuaXNlci5jb25zdW1lKCJsb25n
Iik7Ci0gICAgICByZXR1cm4gbmV3IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bIlR5cGUiXSh7IHNvdXJjZSwgdG9rZW5zOiB7IHByZWZpeCwgYmFzZSwgcG9zdGZpeCB9IH0p
OworICAgICAgcmV0dXJuIG5ldyBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
LlR5cGUoeyBzb3VyY2UsIHRva2VuczogeyBwcmVmaXgsIGJhc2UsIHBvc3RmaXggfSB9KTsKICAg
ICB9CiAgICAgaWYgKHByZWZpeCkgdG9rZW5pc2VyLmVycm9yKCJGYWlsZWQgdG8gcGFyc2UgaW50
ZWdlciB0eXBlIik7CiAgIH0KQEAgLTc2Miw3ICs3NTgsNyBAQCBmdW5jdGlvbiBwcmltaXRpdmVf
dHlwZSh0b2tlbmlzZXIpIHsKICAgICBjb25zdCBwcmVmaXggPSB0b2tlbmlzZXIuY29uc3VtZSgi
dW5yZXN0cmljdGVkIik7CiAgICAgY29uc3QgYmFzZSA9IHRva2VuaXNlci5jb25zdW1lKCJmbG9h
dCIsICJkb3VibGUiKTsKICAgICBpZiAoYmFzZSkgewotICAgICAgcmV0dXJuIG5ldyBfdHlwZV9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJUeXBlIl0oeyBzb3VyY2UsIHRva2Vuczog
eyBwcmVmaXgsIGJhc2UgfSB9KTsKKyAgICAgIHJldHVybiBuZXcgX3R5cGVfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfXy5UeXBlKHsgc291cmNlLCB0b2tlbnM6IHsgcHJlZml4LCBiYXNl
IH0gfSk7CiAgICAgfQogICAgIGlmIChwcmVmaXgpIHRva2VuaXNlci5lcnJvcigiRmFpbGVkIHRv
IHBhcnNlIGZsb2F0IHR5cGUiKTsKICAgfQpAQCAtNzcwLDkgKzc2NiwxNSBAQCBmdW5jdGlvbiBw
cmltaXRpdmVfdHlwZSh0b2tlbmlzZXIpIHsKICAgY29uc3QgeyBzb3VyY2UgfSA9IHRva2VuaXNl
cjsKICAgY29uc3QgbnVtX3R5cGUgPSBpbnRlZ2VyX3R5cGUodG9rZW5pc2VyKSB8fCBkZWNpbWFs
X3R5cGUodG9rZW5pc2VyKTsKICAgaWYgKG51bV90eXBlKSByZXR1cm4gbnVtX3R5cGU7Ci0gIGNv
bnN0IGJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiYm9vbGVhbiIsICJieXRlIiwgIm9jdGV0Iik7
CisgIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgKKyAgICAiYmlnaW50IiwKKyAgICAi
Ym9vbGVhbiIsCisgICAgImJ5dGUiLAorICAgICJvY3RldCIsCisgICAgInVuZGVmaW5lZCIKKyAg
KTsKICAgaWYgKGJhc2UpIHsKLSAgICByZXR1cm4gbmV3IF90eXBlX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX19bIlR5cGUiXSh7IHNvdXJjZSwgdG9rZW5zOiB7IGJhc2UgfSB9KTsKKyAg
ICByZXR1cm4gbmV3IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uVHlwZSh7
IHNvdXJjZSwgdG9rZW5zOiB7IGJhc2UgfSB9KTsKICAgfQogfQogCkBAIC03ODAsNyArNzgyLDEw
IEBAIGZ1bmN0aW9uIHByaW1pdGl2ZV90eXBlKHRva2VuaXNlcikgewogICogQHBhcmFtIHtpbXBv
cnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCiAgKi8KIGZ1bmN0aW9uIGFy
Z3VtZW50X2xpc3QodG9rZW5pc2VyKSB7Ci0gIHJldHVybiBsaXN0KHRva2VuaXNlciwgeyBwYXJz
ZXI6IF9hcmd1bWVudF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJBcmd1bWVudCJd
LnBhcnNlLCBsaXN0TmFtZTogImFyZ3VtZW50cyBsaXN0IiB9KTsKKyAgcmV0dXJuIGxpc3QodG9r
ZW5pc2VyLCB7CisgICAgcGFyc2VyOiBfYXJndW1lbnRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzFfXy5Bcmd1bWVudC5wYXJzZSwKKyAgICBsaXN0TmFtZTogImFyZ3VtZW50cyBsaXN0IiwK
KyAgfSk7CiB9CiAKIC8qKgpAQCAtNzg4LDggKzc5Myw4IEBAIGZ1bmN0aW9uIGFyZ3VtZW50X2xp
c3QodG9rZW5pc2VyKSB7CiAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZU5hbWUKICAqLwogZnVuY3Rp
b24gdHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXModG9rZW5pc2VyLCB0eXBlTmFtZSkgewot
ICBjb25zdCBleHRBdHRycyA9IF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8yX19bIkV4dGVuZGVkQXR0cmlidXRlcyJdLnBhcnNlKHRva2VuaXNlcik7Ci0g
IGNvbnN0IHJldCA9IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIlR5cGUi
XS5wYXJzZSh0b2tlbmlzZXIsIHR5cGVOYW1lKTsKKyAgY29uc3QgZXh0QXR0cnMgPSBfZXh0ZW5k
ZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLkV4dGVuZGVkQXR0
cmlidXRlcy5wYXJzZSh0b2tlbmlzZXIpOworICBjb25zdCByZXQgPSBfdHlwZV9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fLlR5cGUucGFyc2UodG9rZW5pc2VyLCB0eXBlTmFtZSk7CiAg
IGlmIChyZXQpIGF1dG9QYXJlbnRlcihyZXQpLmV4dEF0dHJzID0gZXh0QXR0cnM7CiAgIHJldHVy
biByZXQ7CiB9CkBAIC03OTksMTMgKzgwNCwxNiBAQCBmdW5jdGlvbiB0eXBlX3dpdGhfZXh0ZW5k
ZWRfYXR0cmlidXRlcyh0b2tlbmlzZXIsIHR5cGVOYW1lKSB7CiAgKiBAcGFyYW0ge3N0cmluZ30g
dHlwZU5hbWUKICAqLwogZnVuY3Rpb24gcmV0dXJuX3R5cGUodG9rZW5pc2VyLCB0eXBlTmFtZSkg
ewotICBjb25zdCB0eXAgPSBfdHlwZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJU
eXBlIl0ucGFyc2UodG9rZW5pc2VyLCB0eXBlTmFtZSB8fCAicmV0dXJuLXR5cGUiKTsKKyAgY29u
c3QgdHlwID0gX3R5cGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5UeXBlLnBhcnNl
KHRva2VuaXNlciwgdHlwZU5hbWUgfHwgInJldHVybi10eXBlIik7CiAgIGlmICh0eXApIHsKICAg
ICByZXR1cm4gdHlwOwogICB9CiAgIGNvbnN0IHZvaWRUb2tlbiA9IHRva2VuaXNlci5jb25zdW1l
KCJ2b2lkIik7CiAgIGlmICh2b2lkVG9rZW4pIHsKLSAgICBjb25zdCByZXQgPSBuZXcgX3R5cGVf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siVHlwZSJdKHsgc291cmNlOiB0b2tlbmlz
ZXIuc291cmNlLCB0b2tlbnM6IHsgYmFzZTogdm9pZFRva2VuIH0gfSk7CisgICAgY29uc3QgcmV0
ID0gbmV3IF90eXBlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uVHlwZSh7CisgICAg
ICBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsCisgICAgICB0b2tlbnM6IHsgYmFzZTogdm9pZFRv
a2VuIH0sCisgICAgfSk7CiAgICAgcmV0LnR5cGUgPSAicmV0dXJuLXR5cGUiOwogICAgIHJldHVy
biByZXQ7CiAgIH0KQEAgLTgxNyw4ICs4MjUsOSBAQCBmdW5jdGlvbiByZXR1cm5fdHlwZSh0b2tl
bmlzZXIsIHR5cGVOYW1lKSB7CiBmdW5jdGlvbiBzdHJpbmdpZmllcih0b2tlbmlzZXIpIHsKICAg
Y29uc3Qgc3BlY2lhbCA9IHRva2VuaXNlci5jb25zdW1lKCJzdHJpbmdpZmllciIpOwogICBpZiAo
IXNwZWNpYWwpIHJldHVybjsKLSAgY29uc3QgbWVtYmVyID0gX2F0dHJpYnV0ZV9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfNF9fWyJBdHRyaWJ1dGUiXS5wYXJzZSh0b2tlbmlzZXIsIHsgc3Bl
Y2lhbCB9KSB8fAotICAgIF9vcGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNf
X1siT3BlcmF0aW9uIl0ucGFyc2UodG9rZW5pc2VyLCB7IHNwZWNpYWwgfSkgfHwKKyAgY29uc3Qg
bWVtYmVyID0KKyAgICBfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X18u
QXR0cmlidXRlLnBhcnNlKHRva2VuaXNlciwgeyBzcGVjaWFsIH0pIHx8CisgICAgX29wZXJhdGlv
bl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLk9wZXJhdGlvbi5wYXJzZSh0b2tlbmlz
ZXIsIHsgc3BlY2lhbCB9KSB8fAogICAgIHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIHN0
cmluZ2lmaWVyIik7CiAgIHJldHVybiBtZW1iZXI7CiB9CkBAIC04NTMsOSArODYyLDkgQEAgZnVu
Y3Rpb24gZ2V0TWVtYmVySW5kZW50YXRpb24ocGFyZW50VHJpdmlhKSB7CiAgKi8KIGZ1bmN0aW9u
IGF1dG9maXhBZGRFeHBvc2VkV2luZG93KGRlZikgewogICByZXR1cm4gKCkgPT4gewotICAgIGlm
IChkZWYuZXh0QXR0cnMubGVuZ3RoKXsKLSAgICAgIGNvbnN0IHRva2VuaXNlciA9IG5ldyBfdG9r
ZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19bIlRva2VuaXNlciJdKCJFeHBv
c2VkPVdpbmRvdywiKTsKLSAgICAgIGNvbnN0IGV4cG9zZWQgPSBfZXh0ZW5kZWRfYXR0cmlidXRl
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJTaW1wbGVFeHRlbmRlZEF0dHJpYnV0
ZSJdLnBhcnNlKHRva2VuaXNlcik7CisgICAgaWYgKGRlZi5leHRBdHRycy5sZW5ndGgpIHsKKyAg
ICAgIGNvbnN0IHRva2VuaXNlciA9IG5ldyBfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV81X18uVG9rZW5pc2VyKCJFeHBvc2VkPVdpbmRvdywiKTsKKyAgICAgIGNvbnN0IGV4
cG9zZWQgPSBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
Ml9fLlNpbXBsZUV4dGVuZGVkQXR0cmlidXRlLnBhcnNlKHRva2VuaXNlcik7CiAgICAgICBleHBv
c2VkLnRva2Vucy5zZXBhcmF0b3IgPSB0b2tlbmlzZXIuY29uc3VtZSgiLCIpOwogICAgICAgY29u
c3QgZXhpc3RpbmcgPSBkZWYuZXh0QXR0cnNbMF07CiAgICAgICBpZiAoIS9eXHMvLnRlc3QoZXhp
c3RpbmcudG9rZW5zLm5hbWUudHJpdmlhKSkgewpAQCAtODYzLDcgKzg3Miw5IEBAIGZ1bmN0aW9u
IGF1dG9maXhBZGRFeHBvc2VkV2luZG93KGRlZikgewogICAgICAgfQogICAgICAgZGVmLmV4dEF0
dHJzLnVuc2hpZnQoZXhwb3NlZCk7CiAgICAgfSBlbHNlIHsKLSAgICAgIGF1dG9QYXJlbnRlcihk
ZWYpLmV4dEF0dHJzID0gX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzJfX1siRXh0ZW5kZWRBdHRyaWJ1dGVzIl0ucGFyc2UobmV3IF90b2tlbmlzZXJfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1siVG9rZW5pc2VyIl0oIltFeHBvc2VkPVdpbmRv
d10iKSk7CisgICAgICBhdXRvUGFyZW50ZXIoZGVmKS5leHRBdHRycyA9IF9leHRlbmRlZF9hdHRy
aWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uRXh0ZW5kZWRBdHRyaWJ1dGVz
LnBhcnNlKAorICAgICAgICBuZXcgX3Rva2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfNV9fLlRva2VuaXNlcigiW0V4cG9zZWQ9V2luZG93XSIpCisgICAgICApOwogICAgICAgY29u
c3QgdHJpdmlhID0gZGVmLnRva2Vucy5iYXNlLnRyaXZpYTsKICAgICAgIGRlZi5leHRBdHRycy50
b2tlbnMub3Blbi50cml2aWEgPSB0cml2aWE7CiAgICAgICBkZWYudG9rZW5zLmJhc2UudHJpdmlh
ID0gYFxuJHtnZXRMYXN0SW5kZW50YXRpb24odHJpdmlhKX1gOwpAQCAtOTQyLDE4ICs5NTMsMTkg
QEAgZnVuY3Rpb24gYXV0b1BhcmVudGVyKGRhdGEsIHBhcmVudCkgewogICAgICAgICB2YWx1ZS5w
YXJlbnQgPSBwYXJlbnQ7CiAgICAgICB9CiAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9CisgICAg
fSwKICAgfSk7CiB9CiAKIAogLyoqKi8gfSksCiAvKiA1ICovCi0vKioqLyAoZnVuY3Rpb24obW9k
dWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAo
KF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19f
LCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19y
ZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5k
aW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIlR5cGUi
LCBmdW5jdGlvbigpIHsgcmV0dXJuIFR5cGU7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193
ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhw
b3J0ICovICAgIlR5cGUiOiAoKSA9PiAoLyogYmluZGluZyAqLyBUeXBlKQorLyogaGFybW9ueSBl
eHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CiAvKiBoYXJtb255
IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9
IF9fd2VicGFja19yZXF1aXJlX18oNCk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Rva2Vu
aXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVf
XygyKTsKQEAgLTk3MiwzOCArOTg0LDY2IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBh
Y2tfZXhwb3J0c19fKTsKICAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlTmFtZQogICovCiBmdW5jdGlv
biBnZW5lcmljX3R5cGUodG9rZW5pc2VyLCB0eXBlTmFtZSkgewotICBjb25zdCBiYXNlID0gdG9r
ZW5pc2VyLmNvbnN1bWUoIkZyb3plbkFycmF5IiwgIlByb21pc2UiLCAic2VxdWVuY2UiLCAicmVj
b3JkIik7CisgIGNvbnN0IGJhc2UgPSB0b2tlbmlzZXIuY29uc3VtZSgKKyAgICAiRnJvemVuQXJy
YXkiLAorICAgICJPYnNlcnZhYmxlQXJyYXkiLAorICAgICJQcm9taXNlIiwKKyAgICAic2VxdWVu
Y2UiLAorICAgICJyZWNvcmQiCisgICk7CiAgIGlmICghYmFzZSkgewogICAgIHJldHVybjsKICAg
fQotICBjb25zdCByZXQgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzFfX1siYXV0b1BhcmVudGVyIl0pKG5ldyBUeXBlKHsgc291cmNlOiB0b2tlbmlzZXIuc291
cmNlLCB0b2tlbnM6IHsgYmFzZSB9IH0pKTsKLSAgcmV0LnRva2Vucy5vcGVuID0gdG9rZW5pc2Vy
LmNvbnN1bWUoIjwiKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE5vIG9wZW5pbmcgYnJhY2tldCBhZnRl
ciAke2Jhc2UudHlwZX1gKTsKLSAgc3dpdGNoIChiYXNlLnR5cGUpIHsKKyAgY29uc3QgcmV0ID0g
KDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5hdXRvUGFyZW50ZXIp
KAorICAgIG5ldyBUeXBlKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnM6IHsgYmFz
ZSB9IH0pCisgICk7CisgIHJldC50b2tlbnMub3BlbiA9CisgICAgdG9rZW5pc2VyLmNvbnN1bWUo
IjwiKSB8fAorICAgIHRva2VuaXNlci5lcnJvcihgTm8gb3BlbmluZyBicmFja2V0IGFmdGVyICR7
YmFzZS52YWx1ZX1gKTsKKyAgc3dpdGNoIChiYXNlLnZhbHVlKSB7CiAgICAgY2FzZSAiUHJvbWlz
ZSI6IHsKLSAgICAgIGlmICh0b2tlbmlzZXIucHJvYmUoIlsiKSkgdG9rZW5pc2VyLmVycm9yKCJQ
cm9taXNlIHR5cGUgY2Fubm90IGhhdmUgZXh0ZW5kZWQgYXR0cmlidXRlIik7Ci0gICAgICBjb25z
dCBzdWJ0eXBlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8x
X19bInJldHVybl90eXBlIl0pKHRva2VuaXNlciwgdHlwZU5hbWUpIHx8IHRva2VuaXNlci5lcnJv
cigiTWlzc2luZyBQcm9taXNlIHN1YnR5cGUiKTsKKyAgICAgIGlmICh0b2tlbmlzZXIucHJvYmUo
IlsiKSkKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJQcm9taXNlIHR5cGUgY2Fubm90IGhhdmUg
ZXh0ZW5kZWQgYXR0cmlidXRlIik7CisgICAgICBjb25zdCBzdWJ0eXBlID0KKyAgICAgICAgKDAs
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5yZXR1cm5fdHlwZSkodG9r
ZW5pc2VyLCB0eXBlTmFtZSkgfHwKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJNaXNzaW5nIFBy
b21pc2Ugc3VidHlwZSIpOwogICAgICAgcmV0LnN1YnR5cGUucHVzaChzdWJ0eXBlKTsKICAgICAg
IGJyZWFrOwogICAgIH0KICAgICBjYXNlICJzZXF1ZW5jZSI6Ci0gICAgY2FzZSAiRnJvemVuQXJy
YXkiOiB7Ci0gICAgICBjb25zdCBzdWJ0eXBlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRv
a2VuaXNlciwgdHlwZU5hbWUpIHx8IHRva2VuaXNlci5lcnJvcihgTWlzc2luZyAke2Jhc2UudHlw
ZX0gc3VidHlwZWApOworICAgIGNhc2UgIkZyb3plbkFycmF5IjoKKyAgICBjYXNlICJPYnNlcnZh
YmxlQXJyYXkiOiB7CisgICAgICBjb25zdCBzdWJ0eXBlID0KKyAgICAgICAgKDAsX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmli
dXRlcykodG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKGBN
aXNzaW5nICR7YmFzZS52YWx1ZX0gc3VidHlwZWApOwogICAgICAgcmV0LnN1YnR5cGUucHVzaChz
dWJ0eXBlKTsKICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlICJyZWNvcmQiOiB7Ci0gICAg
ICBpZiAodG9rZW5pc2VyLnByb2JlKCJbIikpIHRva2VuaXNlci5lcnJvcigiUmVjb3JkIGtleSBj
YW5ub3QgaGF2ZSBleHRlbmRlZCBhdHRyaWJ1dGUiKTsKLSAgICAgIGNvbnN0IGtleVR5cGUgPSB0
b2tlbmlzZXIuY29uc3VtZSguLi5fdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8yX19bInN0cmluZ1R5cGVzIl0pIHx8IHRva2VuaXNlci5lcnJvcihgUmVjb3JkIGtleSBtdXN0
IGJlIG9uZSBvZjogJHtfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19b
InN0cmluZ1R5cGVzIl0uam9pbigiLCAiKX1gKTsKLSAgICAgIGNvbnN0IGtleUlkbFR5cGUgPSBu
ZXcgVHlwZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zOiB7IGJhc2U6IGtleVR5
cGUgfX0pOwotICAgICAga2V5SWRsVHlwZS50b2tlbnMuc2VwYXJhdG9yID0gdG9rZW5pc2VyLmNv
bnN1bWUoIiwiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIk1pc3NpbmcgY29tbWEgYWZ0ZXIgcmVjb3Jk
IGtleSB0eXBlIik7CisgICAgICBpZiAodG9rZW5pc2VyLnByb2JlKCJbIikpCisgICAgICAgIHRv
a2VuaXNlci5lcnJvcigiUmVjb3JkIGtleSBjYW5ub3QgaGF2ZSBleHRlbmRlZCBhdHRyaWJ1dGUi
KTsKKyAgICAgIGNvbnN0IGtleVR5cGUgPQorICAgICAgICB0b2tlbmlzZXIuY29uc3VtZSguLi5f
dG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uc3RyaW5nVHlwZXMpIHx8
CisgICAgICAgIHRva2VuaXNlci5lcnJvcihgUmVjb3JkIGtleSBtdXN0IGJlIG9uZSBvZjogJHtf
dG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uc3RyaW5nVHlwZXMuam9p
bigiLCAiKX1gKTsKKyAgICAgIGNvbnN0IGtleUlkbFR5cGUgPSBuZXcgVHlwZSh7CisgICAgICAg
IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwKKyAgICAgICAgdG9rZW5zOiB7IGJhc2U6IGtleVR5
cGUgfSwKKyAgICAgIH0pOworICAgICAga2V5SWRsVHlwZS50b2tlbnMuc2VwYXJhdG9yID0KKyAg
ICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIiwiKSB8fAorICAgICAgICB0b2tlbmlzZXIuZXJyb3Io
Ik1pc3NpbmcgY29tbWEgYWZ0ZXIgcmVjb3JkIGtleSB0eXBlIik7CiAgICAgICBrZXlJZGxUeXBl
LnR5cGUgPSB0eXBlTmFtZTsKLSAgICAgIGNvbnN0IHZhbHVlVHlwZSA9IE9iamVjdChfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0
cmlidXRlcyJdKSh0b2tlbmlzZXIsIHR5cGVOYW1lKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkVycm9y
IHBhcnNpbmcgZ2VuZXJpYyB0eXBlIHJlY29yZCIpOworICAgICAgY29uc3QgdmFsdWVUeXBlID0K
KyAgICAgICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50eXBl
X3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcykodG9rZW5pc2VyLCB0eXBlTmFtZSkgfHwKKyAgICAg
ICAgdG9rZW5pc2VyLmVycm9yKCJFcnJvciBwYXJzaW5nIGdlbmVyaWMgdHlwZSByZWNvcmQiKTsK
ICAgICAgIHJldC5zdWJ0eXBlLnB1c2goa2V5SWRsVHlwZSwgdmFsdWVUeXBlKTsKICAgICAgIGJy
ZWFrOwogICAgIH0KICAgfQotICBpZiAoIXJldC5pZGxUeXBlKSB0b2tlbmlzZXIuZXJyb3IoYEVy
cm9yIHBhcnNpbmcgZ2VuZXJpYyB0eXBlICR7YmFzZS50eXBlfWApOwotICByZXQudG9rZW5zLmNs
b3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIj4iKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE1pc3Npbmcg
Y2xvc2luZyBicmFja2V0IGFmdGVyICR7YmFzZS50eXBlfWApOworICBpZiAoIXJldC5pZGxUeXBl
KSB0b2tlbmlzZXIuZXJyb3IoYEVycm9yIHBhcnNpbmcgZ2VuZXJpYyB0eXBlICR7YmFzZS52YWx1
ZX1gKTsKKyAgcmV0LnRva2Vucy5jbG9zZSA9CisgICAgdG9rZW5pc2VyLmNvbnN1bWUoIj4iKSB8
fAorICAgIHRva2VuaXNlci5lcnJvcihgTWlzc2luZyBjbG9zaW5nIGJyYWNrZXQgYWZ0ZXIgJHti
YXNlLnZhbHVlfWApOwogICByZXR1cm4gcmV0LnRoaXM7CiB9CiAKQEAgLTEwMjMsMjEgKzEwNjMs
MjUgQEAgZnVuY3Rpb24gdHlwZV9zdWZmaXgodG9rZW5pc2VyLCBvYmopIHsKICAqIEBwYXJhbSB7
c3RyaW5nfSB0eXBlTmFtZQogICovCiBmdW5jdGlvbiBzaW5nbGVfdHlwZSh0b2tlbmlzZXIsIHR5
cGVOYW1lKSB7Ci0gIGxldCByZXQgPSBnZW5lcmljX3R5cGUodG9rZW5pc2VyLCB0eXBlTmFtZSkg
fHwgT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInByaW1p
dGl2ZV90eXBlIl0pKHRva2VuaXNlcik7CisgIGxldCByZXQgPSBnZW5lcmljX3R5cGUodG9rZW5p
c2VyLCB0eXBlTmFtZSkgfHwgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfXy5wcmltaXRpdmVfdHlwZSkodG9rZW5pc2VyKTsKICAgaWYgKCFyZXQpIHsKLSAgICBjb25z
dCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiLCAuLi5fdG9rZW5pc2VyX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInN0cmluZ1R5cGVzIl0sIC4uLl90b2tlbmlz
ZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1sidHlwZU5hbWVLZXl3b3JkcyJdKTsK
KyAgICBjb25zdCBiYXNlID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lVHlwZSgiaWRlbnRpZmll
ciIpIHx8CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSguLi5fdG9rZW5pc2VyX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8yX18uc3RyaW5nVHlwZXMsIC4uLl90b2tlbmlzZXJfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzJfXy50eXBlTmFtZUtleXdvcmRzKTsKICAgICBpZiAoIWJhc2Up
IHsKICAgICAgIHJldHVybjsKICAgICB9CiAgICAgcmV0ID0gbmV3IFR5cGUoeyBzb3VyY2U6IHRv
a2VuaXNlci5zb3VyY2UsIHRva2VuczogeyBiYXNlIH0gfSk7Ci0gICAgaWYgKHRva2VuaXNlci5w
cm9iZSgiPCIpKSB0b2tlbmlzZXIuZXJyb3IoYFVuc3VwcG9ydGVkIGdlbmVyaWMgdHlwZSAke2Jh
c2UudmFsdWV9YCk7CisgICAgaWYgKHRva2VuaXNlci5wcm9iZSgiPCIpKQorICAgICAgdG9rZW5p
c2VyLmVycm9yKGBVbnN1cHBvcnRlZCBnZW5lcmljIHR5cGUgJHtiYXNlLnZhbHVlfWApOwogICB9
CiAgIGlmIChyZXQuZ2VuZXJpYyA9PT0gIlByb21pc2UiICYmIHRva2VuaXNlci5wcm9iZSgiPyIp
KSB7CiAgICAgdG9rZW5pc2VyLmVycm9yKCJQcm9taXNlIHR5cGUgY2Fubm90IGJlIG51bGxhYmxl
Iik7CiAgIH0KICAgcmV0LnR5cGUgPSB0eXBlTmFtZSB8fCBudWxsOwogICB0eXBlX3N1ZmZpeCh0
b2tlbmlzZXIsIHJldCk7Ci0gIGlmIChyZXQubnVsbGFibGUgJiYgcmV0LmlkbFR5cGUgPT09ICJh
bnkiKSB0b2tlbmlzZXIuZXJyb3IoIlR5cGUgYGFueWAgY2Fubm90IGJlIG1hZGUgbnVsbGFibGUi
KTsKKyAgaWYgKHJldC5udWxsYWJsZSAmJiByZXQuaWRsVHlwZSA9PT0gImFueSIpCisgICAgdG9r
ZW5pc2VyLmVycm9yKCJUeXBlIGBhbnlgIGNhbm5vdCBiZSBtYWRlIG51bGxhYmxlIik7CiAgIHJl
dHVybiByZXQ7CiB9CiAKQEAgLTEwNDksMjggKzEwOTMsMzQgQEAgZnVuY3Rpb24gdW5pb25fdHlw
ZSh0b2tlbmlzZXIsIHR5cGUpIHsKICAgY29uc3QgdG9rZW5zID0ge307CiAgIHRva2Vucy5vcGVu
ID0gdG9rZW5pc2VyLmNvbnN1bWUoIigiKTsKICAgaWYgKCF0b2tlbnMub3BlbikgcmV0dXJuOwot
ICBjb25zdCByZXQgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzFfX1siYXV0b1BhcmVudGVyIl0pKG5ldyBUeXBlKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNl
LCB0b2tlbnMgfSkpOworICBjb25zdCByZXQgPSAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMV9fLmF1dG9QYXJlbnRlcikobmV3IFR5cGUoeyBzb3VyY2U6IHRva2VuaXNl
ci5zb3VyY2UsIHRva2VucyB9KSk7CiAgIHJldC50eXBlID0gdHlwZSB8fCBudWxsOwogICB3aGls
ZSAodHJ1ZSkgewotICAgIGNvbnN0IHR5cCA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMV9fWyJ0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyJdKSh0b2tl
bmlzZXIpIHx8IHRva2VuaXNlci5lcnJvcigiTm8gdHlwZSBhZnRlciBvcGVuIHBhcmVudGhlc2lz
IG9yICdvcicgaW4gdW5pb24gdHlwZSIpOwotICAgIGlmICh0eXAuaWRsVHlwZSA9PT0gImFueSIp
IHRva2VuaXNlci5lcnJvcigiVHlwZSBgYW55YCBjYW5ub3QgYmUgaW5jbHVkZWQgaW4gYSB1bmlv
biB0eXBlIik7Ci0gICAgaWYgKHR5cC5nZW5lcmljID09PSAiUHJvbWlzZSIpIHRva2VuaXNlci5l
cnJvcigiVHlwZSBgUHJvbWlzZWAgY2Fubm90IGJlIGluY2x1ZGVkIGluIGEgdW5pb24gdHlwZSIp
OworICAgIGNvbnN0IHR5cCA9CisgICAgICAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfMV9fLnR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzKSh0b2tlbmlzZXIpIHx8
CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIk5vIHR5cGUgYWZ0ZXIgb3BlbiBwYXJlbnRoZXNpcyBv
ciAnb3InIGluIHVuaW9uIHR5cGUiKTsKKyAgICBpZiAodHlwLmlkbFR5cGUgPT09ICJhbnkiKQor
ICAgICAgdG9rZW5pc2VyLmVycm9yKCJUeXBlIGBhbnlgIGNhbm5vdCBiZSBpbmNsdWRlZCBpbiBh
IHVuaW9uIHR5cGUiKTsKKyAgICBpZiAodHlwLmdlbmVyaWMgPT09ICJQcm9taXNlIikKKyAgICAg
IHRva2VuaXNlci5lcnJvcigiVHlwZSBgUHJvbWlzZWAgY2Fubm90IGJlIGluY2x1ZGVkIGluIGEg
dW5pb24gdHlwZSIpOwogICAgIHJldC5zdWJ0eXBlLnB1c2godHlwKTsKICAgICBjb25zdCBvciA9
IHRva2VuaXNlci5jb25zdW1lKCJvciIpOwogICAgIGlmIChvcikgewogICAgICAgdHlwLnRva2Vu
cy5zZXBhcmF0b3IgPSBvcjsKLSAgICB9Ci0gICAgZWxzZSBicmVhazsKKyAgICB9IGVsc2UgYnJl
YWs7CiAgIH0KICAgaWYgKHJldC5pZGxUeXBlLmxlbmd0aCA8IDIpIHsKLSAgICB0b2tlbmlzZXIu
ZXJyb3IoIkF0IGxlYXN0IHR3byB0eXBlcyBhcmUgZXhwZWN0ZWQgaW4gYSB1bmlvbiB0eXBlIGJ1
dCBmb3VuZCBsZXNzIik7CisgICAgdG9rZW5pc2VyLmVycm9yKAorICAgICAgIkF0IGxlYXN0IHR3
byB0eXBlcyBhcmUgZXhwZWN0ZWQgaW4gYSB1bmlvbiB0eXBlIGJ1dCBmb3VuZCBsZXNzIgorICAg
ICk7CiAgIH0KLSAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIikiKSB8fCB0b2tl
bmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCB1bmlvbiB0eXBlIik7CisgIHRva2Vucy5jbG9zZSA9
CisgICAgdG9rZW5pc2VyLmNvbnN1bWUoIikiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWlu
YXRlZCB1bmlvbiB0eXBlIik7CiAgIHR5cGVfc3VmZml4KHRva2VuaXNlciwgcmV0KTsKICAgcmV0
dXJuIHJldC50aGlzOwogfQogCi1jbGFzcyBUeXBlIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKK2NsYXNzIFR5cGUgZXh0ZW5kcyBfYmFzZV9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fLkJhc2UgewogICAvKioKICAgICogQHBhcmFt
IHtpbXBvcnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCiAgICAqIEBwYXJh
bSB7c3RyaW5nfSB0eXBlTmFtZQpAQCAtMTA4Miw3ICsxMTMyLDcgQEAgY2xhc3MgVHlwZSBleHRl
bmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgIGNv
bnN0cnVjdG9yKHsgc291cmNlLCB0b2tlbnMgfSkgewogICAgIHN1cGVyKHsgc291cmNlLCB0b2tl
bnMgfSk7CiAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICJzdWJ0eXBlIiwgeyB2YWx1
ZTogW10sIHdyaXRhYmxlOiB0cnVlIH0pOwotICAgIHRoaXMuZXh0QXR0cnMgPSBuZXcgX2V4dGVu
ZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1siRXh0ZW5kZWRB
dHRyaWJ1dGVzIl0oe30pOworICAgIHRoaXMuZXh0QXR0cnMgPSBuZXcgX2V4dGVuZGVkX2F0dHJp
YnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5FeHRlbmRlZEF0dHJpYnV0ZXMo
e30pOwogICB9CiAKICAgZ2V0IGdlbmVyaWMoKSB7CkBAIC0xMTAyLDMyICsxMTUyLDQ3IEBAIGNs
YXNzIFR5cGUgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJC
YXNlIl0gewogICAgICAgcmV0dXJuIHRoaXMuc3VidHlwZTsKICAgICB9CiAgICAgLy8gQWRkaW5n
IHByZWZpeGVzL3Bvc3RmaXhlcyBmb3IgInVucmVzdHJpY3RlZCBmbG9hdCIsIGV0Yy4KLSAgICBj
b25zdCBuYW1lID0gWwotICAgICAgdGhpcy50b2tlbnMucHJlZml4LAotICAgICAgdGhpcy50b2tl
bnMuYmFzZSwKLSAgICAgIHRoaXMudG9rZW5zLnBvc3RmaXgKLSAgICBdLmZpbHRlcih0ID0+IHQp
Lm1hcCh0ID0+IHQudmFsdWUpLmpvaW4oIiAiKTsKLSAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0pKG5hbWUpOworICAg
IGNvbnN0IG5hbWUgPSBbdGhpcy50b2tlbnMucHJlZml4LCB0aGlzLnRva2Vucy5iYXNlLCB0aGlz
LnRva2Vucy5wb3N0Zml4XQorICAgICAgLmZpbHRlcigodCkgPT4gdCkKKyAgICAgIC5tYXAoKHQp
ID0+IHQudmFsdWUpCisgICAgICAuam9pbigiICIpOworICAgIHJldHVybiAoMCxfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLnVuZXNjYXBlKShuYW1lKTsKICAgfQogCiAg
ICp2YWxpZGF0ZShkZWZzKSB7CiAgICAgeWllbGQqIHRoaXMuZXh0QXR0cnMudmFsaWRhdGUoZGVm
cyk7CisKKyAgICBpZiAodGhpcy5pZGxUeXBlID09PSAidm9pZCIpIHsKKyAgICAgIGNvbnN0IG1l
c3NhZ2UgPSBgXGB2b2lkXGAgaXMgbm93IHJlcGxhY2VkIGJ5IFxgdW5kZWZpbmVkXGAuIFJlZmVy
IHRvIHRoZSBcCitbcmVsZXZhbnQgR2l0SHViIGlzc3VlXShodHRwczovL2dpdGh1Yi5jb20vaGV5
Y2FtL3dlYmlkbC9pc3N1ZXMvNjApIFwKK2ZvciBtb3JlIGluZm9ybWF0aW9uLmA7CisgICAgICB5
aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy52YWxpZGF0aW9u
RXJyb3IpKHRoaXMudG9rZW5zLmJhc2UsIHRoaXMsICJyZXBsYWNlLXZvaWQiLCBtZXNzYWdlLCB7
CisgICAgICAgIGF1dG9maXg6IHJlcGxhY2VWb2lkKHRoaXMpLAorICAgICAgfSk7CisgICAgfQor
CiAgICAgLyoKICAgICAgKiBJZiBhIHVuaW9uIGlzIG51bGxhYmxlLCBpdHMgc3VidW5pb25zIGNh
bm5vdCBpbmNsdWRlIGEgZGljdGlvbmFyeQogICAgICAqIElmIG5vdCwgc3VidW5pb25zIG1heSBp
bmNsdWRlIGRpY3Rpb25hcmllcyBpZiBlYWNoIHVuaW9uIGlzIG5vdCBudWxsYWJsZQogICAgICAq
LwogICAgIGNvbnN0IHR5cGVkZWYgPSAhdGhpcy51bmlvbiAmJiBkZWZzLnVuaXF1ZS5nZXQodGhp
cy5pZGxUeXBlKTsKLSAgICBjb25zdCB0YXJnZXQgPQotICAgICAgdGhpcy51bmlvbiA/IHRoaXMg
OgotICAgICAgKHR5cGVkZWYgJiYgdHlwZWRlZi50eXBlID09PSAidHlwZWRlZiIpID8gdHlwZWRl
Zi5pZGxUeXBlIDoKLSAgICAgIHVuZGVmaW5lZDsKKyAgICBjb25zdCB0YXJnZXQgPSB0aGlzLnVu
aW9uCisgICAgICA/IHRoaXMKKyAgICAgIDogdHlwZWRlZiAmJiB0eXBlZGVmLnR5cGUgPT09ICJ0
eXBlZGVmIgorICAgICAgPyB0eXBlZGVmLmlkbFR5cGUKKyAgICAgIDogdW5kZWZpbmVkOwogICAg
IGlmICh0YXJnZXQgJiYgdGhpcy5udWxsYWJsZSkgewogICAgICAgLy8gZG8gbm90IGFsbG93IGFu
eSBkaWN0aW9uYXJ5Ci0gICAgICBjb25zdCB7IHJlZmVyZW5jZSB9ID0gT2JqZWN0KF92YWxpZGF0
b3JzX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siaWRsVHlwZUluY2x1
ZGVzRGljdGlvbmFyeSJdKSh0YXJnZXQsIGRlZnMpIHx8IHt9OworICAgICAgY29uc3QgeyByZWZl
cmVuY2UgfSA9ICgwLF92YWxpZGF0b3JzX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzRfXy5pZGxUeXBlSW5jbHVkZXNEaWN0aW9uYXJ5KSh0YXJnZXQsIGRlZnMpIHx8IHt9Owog
ICAgICAgaWYgKHJlZmVyZW5jZSkgewogICAgICAgICBjb25zdCB0YXJnZXRUb2tlbiA9ICh0aGlz
LnVuaW9uID8gcmVmZXJlbmNlIDogdGhpcykudG9rZW5zLmJhc2U7Ci0gICAgICAgIGNvbnN0IG1l
c3NhZ2UgPSBgTnVsbGFibGUgdW5pb24gY2Fubm90IGluY2x1ZGUgYSBkaWN0aW9uYXJ5IHR5cGVg
OwotICAgICAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8zX19bInZhbGlkYXRpb25FcnJvciJdKSh0YXJnZXRUb2tlbiwgdGhpcywgIm5vLW51bGxhYmxl
LXVuaW9uLWRpY3QiLCBtZXNzYWdlKTsKKyAgICAgICAgY29uc3QgbWVzc2FnZSA9ICJOdWxsYWJs
ZSB1bmlvbiBjYW5ub3QgaW5jbHVkZSBhIGRpY3Rpb25hcnkgdHlwZS4iOworICAgICAgICB5aWVs
ZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy52YWxpZGF0aW9uRXJy
b3IpKAorICAgICAgICAgIHRhcmdldFRva2VuLAorICAgICAgICAgIHRoaXMsCisgICAgICAgICAg
Im5vLW51bGxhYmxlLXVuaW9uLWRpY3QiLAorICAgICAgICAgIG1lc3NhZ2UKKyAgICAgICAgKTsK
ICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgLy8gYWxsb3cgc29tZSBkaWN0aW9uYXJ5CkBA
IC0xMTM2LDE2ICsxMjAxLDU5IEBAIGNsYXNzIFR5cGUgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgICAgfQogICAgIH0KICAgfQorCisg
IC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyKX0gdyAqLworICB3cml0
ZSh3KSB7CisgICAgY29uc3QgdHlwZV9ib2R5ID0gKCkgPT4geworICAgICAgaWYgKHRoaXMudW5p
b24gfHwgdGhpcy5nZW5lcmljKSB7CisgICAgICAgIHJldHVybiB3LnRzLndyYXAoWworICAgICAg
ICAgIHcudG9rZW4odGhpcy50b2tlbnMuYmFzZSwgdy50cy5nZW5lcmljKSwKKyAgICAgICAgICB3
LnRva2VuKHRoaXMudG9rZW5zLm9wZW4pLAorICAgICAgICAgIC4uLnRoaXMuc3VidHlwZS5tYXAo
KHQpID0+IHQud3JpdGUodykpLAorICAgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuY2xvc2Up
LAorICAgICAgICBdKTsKKyAgICAgIH0KKyAgICAgIGNvbnN0IGZpcnN0VG9rZW4gPSB0aGlzLnRv
a2Vucy5wcmVmaXggfHwgdGhpcy50b2tlbnMuYmFzZTsKKyAgICAgIGNvbnN0IHByZWZpeCA9IHRo
aXMudG9rZW5zLnByZWZpeAorICAgICAgICA/IFt0aGlzLnRva2Vucy5wcmVmaXgudmFsdWUsIHcu
dHMudHJpdmlhKHRoaXMudG9rZW5zLmJhc2UudHJpdmlhKV0KKyAgICAgICAgOiBbXTsKKyAgICAg
IGNvbnN0IHJlZiA9IHcucmVmZXJlbmNlKAorICAgICAgICB3LnRzLndyYXAoWworICAgICAgICAg
IC4uLnByZWZpeCwKKyAgICAgICAgICB0aGlzLnRva2Vucy5iYXNlLnZhbHVlLAorICAgICAgICAg
IHcudG9rZW4odGhpcy50b2tlbnMucG9zdGZpeCksCisgICAgICAgIF0pLAorICAgICAgICB7IHVu
ZXNjYXBlZDogdGhpcy5pZGxUeXBlLCBjb250ZXh0OiB0aGlzIH0KKyAgICAgICk7CisgICAgICBy
ZXR1cm4gdy50cy53cmFwKFt3LnRzLnRyaXZpYShmaXJzdFRva2VuLnRyaXZpYSksIHJlZl0pOwor
ICAgIH07CisgICAgcmV0dXJuIHcudHMud3JhcChbCisgICAgICB0aGlzLmV4dEF0dHJzLndyaXRl
KHcpLAorICAgICAgdHlwZV9ib2R5KCksCisgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLm51bGxh
YmxlKSwKKyAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuc2VwYXJhdG9yKSwKKyAgICBdKTsKKyAg
fQorfQorCisvKioKKyAqIEBwYXJhbSB7VHlwZX0gdHlwZQorICovCitmdW5jdGlvbiByZXBsYWNl
Vm9pZCh0eXBlKSB7CisgIHJldHVybiAoKSA9PiB7CisgICAgdHlwZS50b2tlbnMuYmFzZS52YWx1
ZSA9ICJ1bmRlZmluZWQiOworICB9OwogfQogCiAKIC8qKiovIH0pLAogLyogNiAqLwotLyoqKi8g
KGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVf
XykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJw
YWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7
CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255
IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBv
cnRzX18sICJCYXNlIiwgZnVuY3Rpb24oKSB7IHJldHVybiBCYXNlOyB9KTsKKy8qIGhhcm1vbnkg
ZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7Cisv
KiBoYXJtb255IGV4cG9ydCAqLyAgICJCYXNlIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gQmFzZSkK
Ky8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLy8gQHRzLWNoZWNrCiAKIGNsYXNzIEJhc2UgewpA
QCAtMTE1OSw3ICsxMjY3LDcgQEAgY2xhc3MgQmFzZSB7CiAgICAgICBzb3VyY2U6IHsgdmFsdWU6
IHNvdXJjZSB9LAogICAgICAgdG9rZW5zOiB7IHZhbHVlOiB0b2tlbnMsIHdyaXRhYmxlOiB0cnVl
IH0sCiAgICAgICBwYXJlbnQ6IHsgdmFsdWU6IG51bGwsIHdyaXRhYmxlOiB0cnVlIH0sCi0gICAg
ICB0aGlzOiB7IHZhbHVlOiB0aGlzIH0gLy8gdXNlZnVsIHdoZW4gZXNjYXBpbmcgZnJvbSBwcm94
eQorICAgICAgdGhpczogeyB2YWx1ZTogdGhpcyB9LCAvLyB1c2VmdWwgd2hlbiBlc2NhcGluZyBm
cm9tIHByb3h5CiAgICAgfSk7CiAgIH0KIApAQCAtMTE4MywxMiArMTI5MSwxMyBAQCBjbGFzcyBC
YXNlIHsKIAogLyoqKi8gfSksCiAvKiA3ICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dl
YnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9fdW51c2Vk
X3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBh
Y2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1aXJlX18u
cihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBf
X3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgImlkbFR5cGVJbmNsdWRl
c0RpY3Rpb25hcnkiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGlkbFR5cGVJbmNsdWRlc0RpY3Rpb25h
cnk7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJl
X18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVs
ZCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZDsg
fSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNr
X2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBvcnQgKi8gICAiaWRsVHlwZUluY2x1ZGVzRGlj
dGlvbmFyeSI6ICgpID0+ICgvKiBiaW5kaW5nICovIGlkbFR5cGVJbmNsdWRlc0RpY3Rpb25hcnkp
LAorLyogaGFybW9ueSBleHBvcnQgKi8gICAiZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVs
ZCI6ICgpID0+ICgvKiBiaW5kaW5nICovIGRpY3Rpb25hcnlJbmNsdWRlc1JlcXVpcmVkRmllbGQp
CisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8vIEB0cy1jaGVjawogCiAvKioKQEAgLTEyMDAs
NyArMTMwOSwxMSBAQCBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7
CiAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnVzZU51bGxhYmxlSW5uZXJdIHVzZSB3aGVu
IHRoZSBpbnB1dCBpZGxUeXBlIGlzIG51bGxhYmxlIGFuZCB5b3Ugd2FudCB0byB1c2UgaXRzIGlu
bmVyIHR5cGUKICAqIEByZXR1cm4ge3sgcmVmZXJlbmNlOiAqLCBkaWN0aW9uYXJ5OiBEaWN0aW9u
YXJ5IH19IHRoZSB0eXBlIHJlZmVyZW5jZSB0aGF0IHVsdGltYXRlbHkgaW5jbHVkZXMgZGljdGlv
bmFyeS4KICAqLwotZnVuY3Rpb24gaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeShpZGxUeXBlLCBk
ZWZzLCB7IHVzZU51bGxhYmxlSW5uZXIgfSA9IHt9KSB7CitmdW5jdGlvbiBpZGxUeXBlSW5jbHVk
ZXNEaWN0aW9uYXJ5KAorICBpZGxUeXBlLAorICBkZWZzLAorICB7IHVzZU51bGxhYmxlSW5uZXIg
fSA9IHt9CispIHsKICAgaWYgKCFpZGxUeXBlLnVuaW9uKSB7CiAgICAgY29uc3QgZGVmID0gZGVm
cy51bmlxdWUuZ2V0KGlkbFR5cGUuaWRsVHlwZSk7CiAgICAgaWYgKCFkZWYpIHsKQEAgLTEyMTks
MTQgKzEzMzIsMTQgQEAgZnVuY3Rpb24gaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeShpZGxUeXBl
LCBkZWZzLCB7IHVzZU51bGxhYmxlSW5uZXIgfSA9IHt9KSB7CiAgICAgICBpZiAocmVzdWx0KSB7
CiAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgcmVmZXJlbmNlOiBpZGxUeXBlLAotICAgICAg
ICAgIGRpY3Rpb25hcnk6IHJlc3VsdC5kaWN0aW9uYXJ5CisgICAgICAgICAgZGljdGlvbmFyeTog
cmVzdWx0LmRpY3Rpb25hcnksCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIGlmIChk
ZWYudHlwZSA9PT0gImRpY3Rpb25hcnkiICYmICh1c2VOdWxsYWJsZUlubmVyIHx8ICFpZGxUeXBl
Lm51bGxhYmxlKSkgewogICAgICAgcmV0dXJuIHsKICAgICAgICAgcmVmZXJlbmNlOiBpZGxUeXBl
LAotICAgICAgICBkaWN0aW9uYXJ5OiBkZWYKKyAgICAgICAgZGljdGlvbmFyeTogZGVmLAogICAg
ICAgfTsKICAgICB9CiAgIH0KQEAgLTEyMzgsNyArMTM1MSw3IEBAIGZ1bmN0aW9uIGlkbFR5cGVJ
bmNsdWRlc0RpY3Rpb25hcnkoaWRsVHlwZSwgZGVmcywgeyB1c2VOdWxsYWJsZUlubmVyIH0gPSB7
fSkgewogICAgICAgfQogICAgICAgcmV0dXJuIHsKICAgICAgICAgcmVmZXJlbmNlOiBzdWJ0eXBl
LAotICAgICAgICBkaWN0aW9uYXJ5OiByZXN1bHQuZGljdGlvbmFyeQorICAgICAgICBkaWN0aW9u
YXJ5OiByZXN1bHQuZGljdGlvbmFyeSwKICAgICAgIH07CiAgICAgfQogICB9CkBAIC0xMjUzLDE3
ICsxMzY2LDE5IEBAIGZ1bmN0aW9uIGRpY3Rpb25hcnlJbmNsdWRlc1JlcXVpcmVkRmllbGQoZGlj
dCwgZGVmcykgewogICBpZiAoZGVmcy5jYWNoZS5kaWN0aW9uYXJ5SW5jbHVkZXNSZXF1aXJlZEZp
ZWxkLmhhcyhkaWN0KSkgewogICAgIHJldHVybiBkZWZzLmNhY2hlLmRpY3Rpb25hcnlJbmNsdWRl
c1JlcXVpcmVkRmllbGQuZ2V0KGRpY3QpOwogICB9Ci0gIGRlZnMuY2FjaGUuZGljdGlvbmFyeUlu
Y2x1ZGVzUmVxdWlyZWRGaWVsZC5zZXQoZGljdCwgdW5kZWZpbmVkKTsgLy8gaW5kZXRlcm1pbmF0
ZQotICBpZiAoZGljdC5pbmhlcml0YW5jZSkgeworICAvLyBTZXQgY2FjaGVkIHJlc3VsdCB0byBp
bmRldGVybWluYXRlIHRvIHNob3J0LWNpcmN1aXQgY2lyY3VsYXIgZGVmaW5pdGlvbnMuCisgIC8v
IFRoZSBmaW5hbCByZXN1bHQgd2lsbCBiZSB1cGRhdGVkIHRvIHRydWUgb3IgZmFsc2UuCisgIGRl
ZnMuY2FjaGUuZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZC5zZXQoZGljdCwgdW5kZWZp
bmVkKTsKKyAgbGV0IHJlc3VsdCA9IGRpY3QubWVtYmVycy5zb21lKChmaWVsZCkgPT4gZmllbGQu
cmVxdWlyZWQpOworICBpZiAoIXJlc3VsdCAmJiBkaWN0LmluaGVyaXRhbmNlKSB7CiAgICAgY29u
c3Qgc3VwZXJkaWN0ID0gZGVmcy51bmlxdWUuZ2V0KGRpY3QuaW5oZXJpdGFuY2UpOwogICAgIGlm
ICghc3VwZXJkaWN0KSB7Ci0gICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgaWYgKGRpY3Rp
b25hcnlJbmNsdWRlc1JlcXVpcmVkRmllbGQoc3VwZXJkaWN0LCBkZWZzKSkgewotICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAvLyBBc3N1bWUgcmVxdWlyZWQgbWVtYmVycyBpbiB0aGUgc3VwZXJ0
eXBlIGlmIGl0IGlzIHVua25vd24uCisgICAgICByZXN1bHQgPSB0cnVlOworICAgIH0gZWxzZSBp
ZiAoZGljdGlvbmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZChzdXBlcmRpY3QsIGRlZnMpKSB7Cisg
ICAgICByZXN1bHQgPSB0cnVlOwogICAgIH0KICAgfQotICBjb25zdCByZXN1bHQgPSBkaWN0Lm1l
bWJlcnMuc29tZShmaWVsZCA9PiBmaWVsZC5yZXF1aXJlZCk7CiAgIGRlZnMuY2FjaGUuZGljdGlv
bmFyeUluY2x1ZGVzUmVxdWlyZWRGaWVsZC5zZXQoZGljdCwgcmVzdWx0KTsKICAgcmV0dXJuIHJl
c3VsdDsKIH0KQEAgLTEyNzEsMTIgKzEzODYsMTMgQEAgZnVuY3Rpb24gZGljdGlvbmFyeUluY2x1
ZGVzUmVxdWlyZWRGaWVsZChkaWN0LCBkZWZzKSB7CiAKIC8qKiovIH0pLAogLyogOCAqLwotLyoq
Ki8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVp
cmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193
ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmlj
dCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJt
b255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19l
eHBvcnRzX18sICJTaW1wbGVFeHRlbmRlZEF0dHJpYnV0ZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4g
U2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGU7IH0pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcp
ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiRXh0ZW5kZWRB
dHRyaWJ1dGVzIiwgZnVuY3Rpb24oKSB7IHJldHVybiBFeHRlbmRlZEF0dHJpYnV0ZXM7IH0pOwor
LyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBv
cnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIlNpbXBsZUV4dGVuZGVkQXR0cmlidXRl
IjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGUpLAorLyogaGFy
bW9ueSBleHBvcnQgKi8gICAiRXh0ZW5kZWRBdHRyaWJ1dGVzIjogKCkgPT4gKC8qIGJpbmRpbmcg
Ki8gRXh0ZW5kZWRBdHRyaWJ1dGVzKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJt
b255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9
IF9fd2VicGFja19yZXF1aXJlX18oNik7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2FycmF5
X2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJl
X18oOSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX3Rva2VuX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwKTsKQEAgLTEyOTMsOSArMTQw
OSw5IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKICAqIEBw
YXJhbSB7c3RyaW5nfSB0b2tlbk5hbWUKICAqLwogZnVuY3Rpb24gdG9rZW5zKHRva2VuaXNlciwg
dG9rZW5OYW1lKSB7Ci0gIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzNfX1sibGlzdCJdKSh0b2tlbmlzZXIsIHsKLSAgICBwYXJzZXI6IF90b2tlbl9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJUb2tlbiJdLnBhcnNlcih0b2tlbmlzZXIs
IHRva2VuTmFtZSksCi0gICAgbGlzdE5hbWU6IHRva2VuTmFtZSArICIgbGlzdCIKKyAgcmV0dXJu
ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18ubGlzdCkodG9rZW5p
c2VyLCB7CisgICAgcGFyc2VyOiBfdG9rZW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJf
Xy5XcmFwcGVkVG9rZW4ucGFyc2VyKHRva2VuaXNlciwgdG9rZW5OYW1lKSwKKyAgICBsaXN0TmFt
ZTogdG9rZW5OYW1lICsgIiBsaXN0IiwKICAgfSk7CiB9CiAKQEAgLTEzMTAsNyArMTQyNiw3IEBA
IGNvbnN0IHNob3VsZEJlTGVnYWN5UHJlZml4ZWQgPSBbCiBdOwogCiBjb25zdCByZW5hbWVkTGVn
YWNpZXMgPSBuZXcgTWFwKFsKLSAgLi4uc2hvdWxkQmVMZWdhY3lQcmVmaXhlZC5tYXAobmFtZSA9
PiBbbmFtZSwgYExlZ2FjeSR7bmFtZX1gXSksCisgIC4uLnNob3VsZEJlTGVnYWN5UHJlZml4ZWQu
bWFwKChuYW1lKSA9PiBbbmFtZSwgYExlZ2FjeSR7bmFtZX1gXSksCiAgIFsiTmFtZWRDb25zdHJ1
Y3RvciIsICJMZWdhY3lGYWN0b3J5RnVuY3Rpb24iXSwKICAgWyJPdmVycmlkZUJ1aWx0aW5zIiwg
IkxlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiXSwKICAgWyJUcmVhdE51bGxBcyIsICJMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZyJdLApAQCAtMTMyNywyOCArMTQ0MywzMyBAQCBmdW5jdGlvbiBleHRBdHRy
TGlzdEl0ZW1zKHRva2VuaXNlcikgewogICAgICAgcmV0dXJuIHRva3M7CiAgICAgfQogICB9Ci0g
IHRva2VuaXNlci5lcnJvcihgRXhwZWN0ZWQgaWRlbnRpZmllcnMsIHN0cmluZ3MsIGRlY2ltYWxz
LCBvciBpbnRlZ2VycyBidXQgbm9uZSBmb3VuZGApOworICB0b2tlbmlzZXIuZXJyb3IoCisgICAg
YEV4cGVjdGVkIGlkZW50aWZpZXJzLCBzdHJpbmdzLCBkZWNpbWFscywgb3IgaW50ZWdlcnMgYnV0
IG5vbmUgZm91bmRgCisgICk7CiB9CiAKLQotY2xhc3MgRXh0ZW5kZWRBdHRyaWJ1dGVQYXJhbWV0
ZXJzIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJd
IHsKK2NsYXNzIEV4dGVuZGVkQXR0cmlidXRlUGFyYW1ldGVycyBleHRlbmRzIF9iYXNlX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2lt
cG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCiAgIHN0YXRp
YyBwYXJzZSh0b2tlbmlzZXIpIHsKICAgICBjb25zdCB0b2tlbnMgPSB7IGFzc2lnbjogdG9rZW5p
c2VyLmNvbnN1bWUoIj0iKSB9OwotICAgIGNvbnN0IHJldCA9IE9iamVjdChfaGVscGVyc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJhdXRvUGFyZW50ZXIiXSkobmV3IEV4dGVuZGVk
QXR0cmlidXRlUGFyYW1ldGVycyh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0p
KTsKKyAgICBjb25zdCByZXQgPSAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfM19fLmF1dG9QYXJlbnRlcikoCisgICAgICBuZXcgRXh0ZW5kZWRBdHRyaWJ1dGVQYXJhbWV0
ZXJzKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkKKyAgICApOwogICAgIGlm
ICh0b2tlbnMuYXNzaWduKSB7Ci0gICAgICB0b2tlbnMuc2Vjb25kYXJ5TmFtZSA9IHRva2VuaXNl
ci5jb25zdW1lKC4uLmV4dEF0dHJWYWx1ZVN5bnRheCk7CisgICAgICB0b2tlbnMuc2Vjb25kYXJ5
TmFtZSA9IHRva2VuaXNlci5jb25zdW1lVHlwZSguLi5leHRBdHRyVmFsdWVTeW50YXgpOwogICAg
IH0KICAgICB0b2tlbnMub3BlbiA9IHRva2VuaXNlci5jb25zdW1lKCIoIik7CiAgICAgaWYgKHRv
a2Vucy5vcGVuKSB7Ci0gICAgICByZXQubGlzdCA9IHJldC5yaHNJc0xpc3QgPwotICAgICAgICAv
LyBbRXhwb3NlZD0oV2luZG93LFdvcmtlcildCi0gICAgICAgIGV4dEF0dHJMaXN0SXRlbXModG9r
ZW5pc2VyKSA6Ci0gICAgICAgIC8vIFtMZWdhY3lGYWN0b3J5RnVuY3Rpb249QXVkaW8oRE9NU3Ry
aW5nIHNyYyldIG9yIFtDb25zdHJ1Y3RvcihET01TdHJpbmcgc3RyKV0KLSAgICAgICAgT2JqZWN0
KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bImFyZ3VtZW50X2xpc3Qi
XSkodG9rZW5pc2VyKTsKLSAgICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCIp
IikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbmV4cGVjdGVkIHRva2VuIGluIGV4dGVuZGVkIGF0dHJp
YnV0ZSBhcmd1bWVudCBsaXN0Iik7CisgICAgICByZXQubGlzdCA9IHJldC5yaHNJc0xpc3QKKyAg
ICAgICAgPyAvLyBbRXhwb3NlZD0oV2luZG93LFdvcmtlcildCisgICAgICAgICAgZXh0QXR0ckxp
c3RJdGVtcyh0b2tlbmlzZXIpCisgICAgICAgIDogLy8gW0xlZ2FjeUZhY3RvcnlGdW5jdGlvbj1B
dWRpbyhET01TdHJpbmcgc3JjKV0gb3IgW0NvbnN0cnVjdG9yKERPTVN0cmluZyBzdHIpXQorICAg
ICAgICAgICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uYXJndW1l
bnRfbGlzdCkodG9rZW5pc2VyKTsKKyAgICAgIHRva2Vucy5jbG9zZSA9CisgICAgICAgIHRva2Vu
aXNlci5jb25zdW1lKCIpIikgfHwKKyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJVbmV4cGVjdGVk
IHRva2VuIGluIGV4dGVuZGVkIGF0dHJpYnV0ZSBhcmd1bWVudCBsaXN0Iik7CiAgICAgfSBlbHNl
IGlmIChyZXQuaGFzUmhzICYmICF0b2tlbnMuc2Vjb25kYXJ5TmFtZSkgewogICAgICAgdG9rZW5p
c2VyLmVycm9yKCJObyByaWdodCBoYW5kIHNpZGUgdG8gZXh0ZW5kZWQgYXR0cmlidXRlIGFzc2ln
bm1lbnQiKTsKICAgICB9CkBAIC0xMzY4LDE5ICsxNDg5LDQ1IEBAIGNsYXNzIEV4dGVuZGVkQXR0
cmlidXRlUGFyYW1ldGVycyBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX19bCiAgICAgfQogICAgIHJldHVybiBudWxsOwogICB9CisKKyAgLyoqIEBwYXJhbSB7aW1w
b3J0KCIuLi93cml0ZXIuanMiKS5Xcml0ZXIpfSB3ICovCisgIHdyaXRlKHcpIHsKKyAgICBmdW5j
dGlvbiBleHRlbmRlZF9hdHRyaWJ1dGVfbGlzdGl0ZW0oaXRlbSkgeworICAgICAgcmV0dXJuIHcu
dHMud3JhcChbCisgICAgICAgIHcudG9rZW4oaXRlbS50b2tlbnMudmFsdWUpLAorICAgICAgICB3
LnRva2VuKGl0ZW0udG9rZW5zLnNlcGFyYXRvciksCisgICAgICBdKTsKKyAgICB9CisgICAgY29u
c3QgeyByaHNUeXBlIH0gPSB0aGlzOworICAgIHJldHVybiB3LnRzLndyYXAoWworICAgICAgdy50
b2tlbih0aGlzLnRva2Vucy5hc3NpZ24pLAorICAgICAgdy5yZWZlcmVuY2VfdG9rZW4odGhpcy50
b2tlbnMuc2Vjb25kYXJ5TmFtZSwgdGhpcy5wYXJlbnQpLAorICAgICAgdy50b2tlbih0aGlzLnRv
a2Vucy5vcGVuKSwKKyAgICAgIC4uLighdGhpcy5saXN0CisgICAgICAgID8gW10KKyAgICAgICAg
OiB0aGlzLmxpc3QubWFwKChwKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gcmhzVHlwZSA9PT0g
ImlkZW50aWZpZXItbGlzdCIKKyAgICAgICAgICAgICAgPyB3LmlkZW50aWZpZXIocCwgdGhpcy5w
YXJlbnQpCisgICAgICAgICAgICAgIDogcmhzVHlwZSAmJiByaHNUeXBlLmVuZHNXaXRoKCItbGlz
dCIpCisgICAgICAgICAgICAgID8gZXh0ZW5kZWRfYXR0cmlidXRlX2xpc3RpdGVtKHApCisgICAg
ICAgICAgICAgIDogcC53cml0ZSh3KTsKKyAgICAgICAgICB9KSksCisgICAgICB3LnRva2VuKHRo
aXMudG9rZW5zLmNsb3NlKSwKKyAgICBdKTsKKyAgfQogfQogCi1jbGFzcyBTaW1wbGVFeHRlbmRl
ZEF0dHJpYnV0ZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19b
IkJhc2UiXSB7CitjbGFzcyBTaW1wbGVFeHRlbmRlZEF0dHJpYnV0ZSBleHRlbmRzIF9iYXNlX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0g
e2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCiAgIHN0
YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKLSAgICBjb25zdCBuYW1lID0gdG9rZW5pc2VyLmNvbnN1
bWUoImlkZW50aWZpZXIiKTsKKyAgICBjb25zdCBuYW1lID0gdG9rZW5pc2VyLmNvbnN1bWVUeXBl
KCJpZGVudGlmaWVyIik7CiAgICAgaWYgKG5hbWUpIHsKICAgICAgIHJldHVybiBuZXcgU2ltcGxl
RXh0ZW5kZWRBdHRyaWJ1dGUoewogICAgICAgICBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsCiAg
ICAgICAgIHRva2VuczogeyBuYW1lIH0sCi0gICAgICAgIHBhcmFtczogRXh0ZW5kZWRBdHRyaWJ1
dGVQYXJhbWV0ZXJzLnBhcnNlKHRva2VuaXNlcikKKyAgICAgICAgcGFyYW1zOiBFeHRlbmRlZEF0
dHJpYnV0ZVBhcmFtZXRlcnMucGFyc2UodG9rZW5pc2VyKSwKICAgICAgIH0pOwogICAgIH0KICAg
fQpAQCAtMTQwMiw3ICsxNTQ5LDkgQEAgY2xhc3MgU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGUgZXh0
ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXMKICAgICBpZiAo
IXR5cGUpIHsKICAgICAgIHJldHVybiBudWxsOwogICAgIH0KLSAgICBjb25zdCB2YWx1ZSA9IHRo
aXMucGFyYW1zLnJoc0lzTGlzdCA/IGxpc3QgOiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzNfX1sidW5lc2NhcGUiXSkodG9rZW5zLnNlY29uZGFyeU5hbWUudmFs
dWUpOworICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wYXJhbXMucmhzSXNMaXN0CisgICAgICA/IGxp
c3QKKyAgICAgIDogKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy51
bmVzY2FwZSkodG9rZW5zLnNlY29uZGFyeU5hbWUudmFsdWUpOwogICAgIHJldHVybiB7IHR5cGUs
IHZhbHVlIH07CiAgIH0KICAgZ2V0IGFyZ3VtZW50cygpIHsKQEAgLTE0MjAsMjEgKzE1NjksNDEg
QEAgY2xhc3MgU2ltcGxlRXh0ZW5kZWRBdHRyaWJ1dGUgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXMKIHVuZGVzaXJhYmxlIGZlYXR1cmUgdGhhdCBtYXkg
YmUgcmVtb3ZlZCBmcm9tIFdlYiBJREwgaW4gdGhlIGZ1dHVyZS4gUmVmZXIgdG8gdGhlIFwKIFty
ZWxldmFudCB1cHN0cmVhbSBQUl0oaHR0cHM6Ly9naXRodWIuY29tL2hleWNhbS93ZWJpZGwvcHVs
bC82MDkpIGZvciBtb3JlIFwKIGluZm9ybWF0aW9uLmA7Ci0gICAgICB5aWVsZCBPYmplY3QoX2Vy
cm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19bInZhbGlkYXRpb25FcnJvciJdKSh0
aGlzLnRva2Vucy5uYW1lLCB0aGlzLCAibm8tbm9pbnRlcmZhY2VvYmplY3QiLCBtZXNzYWdlLCB7
IGxldmVsOiAid2FybmluZyIgfSk7CisgICAgICB5aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzRfXy52YWxpZGF0aW9uRXJyb3IpKAorICAgICAgICB0aGlzLnRva2Vu
cy5uYW1lLAorICAgICAgICB0aGlzLAorICAgICAgICAibm8tbm9pbnRlcmZhY2VvYmplY3QiLAor
ICAgICAgICBtZXNzYWdlLAorICAgICAgICB7IGxldmVsOiAid2FybmluZyIgfQorICAgICAgKTsK
ICAgICB9IGVsc2UgaWYgKHJlbmFtZWRMZWdhY2llcy5oYXMobmFtZSkpIHsKICAgICAgIGNvbnN0
IG1lc3NhZ2UgPSBgXGBbJHtuYW1lfV1cYCBleHRlbmRlZCBhdHRyaWJ1dGUgaXMgYSBsZWdhY3kg
ZmVhdHVyZSBcCiB0aGF0IGlzIG5vdyByZW5hbWVkIHRvIFxgWyR7cmVuYW1lZExlZ2FjaWVzLmdl
dChuYW1lKX1dXGAuIFJlZmVyIHRvIHRoZSBcCiBbcmVsZXZhbnQgdXBzdHJlYW0gUFJdKGh0dHBz
Oi8vZ2l0aHViLmNvbS9oZXljYW0vd2ViaWRsL3B1bGwvODcwKSBmb3IgbW9yZSBcCiBpbmZvcm1h
dGlvbi5gOwotICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfNF9fWyJ2YWxpZGF0aW9uRXJyb3IiXSkodGhpcy50b2tlbnMubmFtZSwgdGhpcywgInJl
bmFtZWQtbGVnYWN5IiwgbWVzc2FnZSwgeworICAgICAgeWllbGQgKDAsX2Vycm9yX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV80X18udmFsaWRhdGlvbkVycm9yKSh0aGlzLnRva2Vucy5uYW1l
LCB0aGlzLCAicmVuYW1lZC1sZWdhY3kiLCBtZXNzYWdlLCB7CiAgICAgICAgIGxldmVsOiAid2Fy
bmluZyIsCi0gICAgICAgIGF1dG9maXg6IHJlbmFtZUxlZ2FjeUV4dGVuZGVkQXR0cmlidXRlKHRo
aXMpCisgICAgICAgIGF1dG9maXg6IHJlbmFtZUxlZ2FjeUV4dGVuZGVkQXR0cmlidXRlKHRoaXMp
LAogICAgICAgfSk7CiAgICAgfQogICAgIGZvciAoY29uc3QgYXJnIG9mIHRoaXMuYXJndW1lbnRz
KSB7CiAgICAgICB5aWVsZCogYXJnLnZhbGlkYXRlKGRlZnMpOwogICAgIH0KICAgfQorCisgIC8q
KiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyKX0gdyAqLworICB3cml0ZSh3
KSB7CisgICAgcmV0dXJuIHcudHMud3JhcChbCisgICAgICB3LnRzLnRyaXZpYSh0aGlzLnRva2Vu
cy5uYW1lLnRyaXZpYSksCisgICAgICB3LnRzLmV4dGVuZGVkQXR0cmlidXRlKAorICAgICAgICB3
LnRzLndyYXAoWworICAgICAgICAgIHcudHMuZXh0ZW5kZWRBdHRyaWJ1dGVSZWZlcmVuY2UodGhp
cy5uYW1lKSwKKyAgICAgICAgICB0aGlzLnBhcmFtcy53cml0ZSh3KSwKKyAgICAgICAgXSkKKyAg
ICAgICksCisgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnNlcGFyYXRvciksCisgICAgXSk7Cisg
IH0KIH0KIAogLyoqCkBAIC0xNDUyLDcgKzE2MjEsNyBAQCBmdW5jdGlvbiByZW5hbWVMZWdhY3lF
eHRlbmRlZEF0dHJpYnV0ZShleHRBdHRyKSB7CiAKIC8vIE5vdGU6IHdlIHBhcnNlIHNvbWV0aGlu
ZyBzaW1wbGVyIHRoYW4gdGhlIG9mZmljaWFsIHN5bnRheC4gSXQncyBhbGwgdGhhdCBldmVyCiAv
LyBzZWVtcyB0byBiZSB1c2VkCi1jbGFzcyBFeHRlbmRlZEF0dHJpYnV0ZXMgZXh0ZW5kcyBfYXJy
YXlfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJBcnJheUJhc2UiXSB7Citj
bGFzcyBFeHRlbmRlZEF0dHJpYnV0ZXMgZXh0ZW5kcyBfYXJyYXlfYmFzZV9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMV9fLkFycmF5QmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9y
dCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCkBAIC0xNDYxLDE2
ICsxNjMwLDIyIEBAIGNsYXNzIEV4dGVuZGVkQXR0cmlidXRlcyBleHRlbmRzIF9hcnJheV9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkFyCiAgICAgdG9rZW5zLm9wZW4gPSB0
b2tlbmlzZXIuY29uc3VtZSgiWyIpOwogICAgIGlmICghdG9rZW5zLm9wZW4pIHJldHVybiBuZXcg
RXh0ZW5kZWRBdHRyaWJ1dGVzKHt9KTsKICAgICBjb25zdCByZXQgPSBuZXcgRXh0ZW5kZWRBdHRy
aWJ1dGVzKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSk7Ci0gICAgcmV0LnB1
c2goLi4uT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19bImxp
c3QiXSkodG9rZW5pc2VyLCB7Ci0gICAgICBwYXJzZXI6IFNpbXBsZUV4dGVuZGVkQXR0cmlidXRl
LnBhcnNlLAotICAgICAgbGlzdE5hbWU6ICJleHRlbmRlZCBhdHRyaWJ1dGUiCi0gICAgfSkpOwot
ICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCJdIikgfHwgdG9rZW5pc2VyLmVy
cm9yKCJVbmV4cGVjdGVkIGNsb3NpbmcgdG9rZW4gb2YgZXh0ZW5kZWQgYXR0cmlidXRlIik7Cisg
ICAgcmV0LnB1c2goCisgICAgICAuLi4oMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfM19fLmxpc3QpKHRva2VuaXNlciwgeworICAgICAgICBwYXJzZXI6IFNpbXBsZUV4dGVu
ZGVkQXR0cmlidXRlLnBhcnNlLAorICAgICAgICBsaXN0TmFtZTogImV4dGVuZGVkIGF0dHJpYnV0
ZSIsCisgICAgICB9KQorICAgICk7CisgICAgdG9rZW5zLmNsb3NlID0KKyAgICAgIHRva2VuaXNl
ci5jb25zdW1lKCJdIikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiVW5leHBlY3RlZCBjbG9z
aW5nIHRva2VuIG9mIGV4dGVuZGVkIGF0dHJpYnV0ZSIpOwogICAgIGlmICghcmV0Lmxlbmd0aCkg
ewogICAgICAgdG9rZW5pc2VyLmVycm9yKCJGb3VuZCBhbiBlbXB0eSBleHRlbmRlZCBhdHRyaWJ1
dGUiKTsKICAgICB9CiAgICAgaWYgKHRva2VuaXNlci5wcm9iZSgiWyIpKSB7Ci0gICAgICB0b2tl
bmlzZXIuZXJyb3IoIklsbGVnYWwgZG91YmxlIGV4dGVuZGVkIGF0dHJpYnV0ZSBsaXN0cywgY29u
c2lkZXIgbWVyZ2luZyB0aGVtIik7CisgICAgICB0b2tlbmlzZXIuZXJyb3IoCisgICAgICAgICJJ
bGxlZ2FsIGRvdWJsZSBleHRlbmRlZCBhdHRyaWJ1dGUgbGlzdHMsIGNvbnNpZGVyIG1lcmdpbmcg
dGhlbSIKKyAgICAgICk7CiAgICAgfQogICAgIHJldHVybiByZXQ7CiAgIH0KQEAgLTE0ODAsMTYg
KzE2NTUsMjcgQEAgY2xhc3MgRXh0ZW5kZWRBdHRyaWJ1dGVzIGV4dGVuZHMgX2FycmF5X2Jhc2Vf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siQXIKICAgICAgIHlpZWxkKiBleHRBdHRy
LnZhbGlkYXRlKGRlZnMpOwogICAgIH0KICAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4v
d3JpdGVyLmpzIikuV3JpdGVyKX0gdyAqLworICB3cml0ZSh3KSB7CisgICAgaWYgKCF0aGlzLmxl
bmd0aCkgcmV0dXJuICIiOworICAgIHJldHVybiB3LnRzLndyYXAoWworICAgICAgdy50b2tlbih0
aGlzLnRva2Vucy5vcGVuKSwKKyAgICAgIC4uLnRoaXMubWFwKChlYSkgPT4gZWEud3JpdGUodykp
LAorICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5jbG9zZSksCisgICAgXSk7CisgIH0KIH0KIAog
CiAvKioqLyB9KSwKIC8qIDkgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19l
eHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFj
a19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1
aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2Vi
cGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFj
a19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQXJyYXlCYXNlIiwgZnVuY3Rpb24o
KSB7IHJldHVybiBBcnJheUJhc2U7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNr
X3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICov
ICAgIkFycmF5QmFzZSI6ICgpID0+ICgvKiBiaW5kaW5nICovIEFycmF5QmFzZSkKKy8qIGhhcm1v
bnkgZXhwb3J0ICovIH0pOwogLy8gQHRzLWNoZWNrCiAKIGNsYXNzIEFycmF5QmFzZSBleHRlbmRz
IEFycmF5IHsKQEAgLTE0OTgsNyArMTY4NCw3IEBAIGNsYXNzIEFycmF5QmFzZSBleHRlbmRzIEFy
cmF5IHsKICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0aGlzLCB7CiAgICAgICBzb3VyY2U6
IHsgdmFsdWU6IHNvdXJjZSB9LAogICAgICAgdG9rZW5zOiB7IHZhbHVlOiB0b2tlbnMgfSwKLSAg
ICAgIHBhcmVudDogeyB2YWx1ZTogbnVsbCwgd3JpdGFibGU6IHRydWUgfQorICAgICAgcGFyZW50
OiB7IHZhbHVlOiBudWxsLCB3cml0YWJsZTogdHJ1ZSB9LAogICAgIH0pOwogICB9CiB9CkBAIC0x
NTA2LDExICsxNjkyLDEyIEBAIGNsYXNzIEFycmF5QmFzZSBleHRlbmRzIEFycmF5IHsKIAogLyoq
Ki8gfSksCiAvKiAxMCAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9y
dHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19f
d2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVf
XykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNr
X2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJUb2tlbiIsIGZ1bmN0aW9uKCkgeyByZXR1
cm4gVG9rZW47IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5k
KF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIldyYXBwZWRU
b2tlbiI6ICgpID0+ICgvKiBiaW5kaW5nICovIFdyYXBwZWRUb2tlbikKKy8qIGhhcm1vbnkgZXhw
b3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOwogLyogaGFybW9ueSBp
bXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBf
X3dlYnBhY2tfcmVxdWlyZV9fKDQpOwogLy8gQHRzLWNoZWNrCkBAIC0xNTE4LDMzICsxNzA1LDM3
IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAogCiAKLWNs
YXNzIFRva2VuIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1si
QmFzZSJdIHsKK2NsYXNzIFdyYXBwZWRUb2tlbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4v
dG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICogQHBhcmFtIHtzdHJpbmd9IHR5
cGUKICAgICovCiAgIHN0YXRpYyBwYXJzZXIodG9rZW5pc2VyLCB0eXBlKSB7CiAgICAgcmV0dXJu
ICgpID0+IHsKLSAgICAgIGNvbnN0IHZhbHVlID0gdG9rZW5pc2VyLmNvbnN1bWUodHlwZSk7Cisg
ICAgICBjb25zdCB2YWx1ZSA9IHRva2VuaXNlci5jb25zdW1lVHlwZSh0eXBlKTsKICAgICAgIGlm
ICh2YWx1ZSkgewotICAgICAgICByZXR1cm4gbmV3IFRva2VuKHsgc291cmNlOiB0b2tlbmlzZXIu
c291cmNlLCB0b2tlbnM6IHsgdmFsdWUgfSB9KTsKKyAgICAgICAgcmV0dXJuIG5ldyBXcmFwcGVk
VG9rZW4oeworICAgICAgICAgIHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwKKyAgICAgICAgICB0
b2tlbnM6IHsgdmFsdWUgfSwKKyAgICAgICAgfSk7CiAgICAgICB9CiAgICAgfTsKICAgfQogCiAg
IGdldCB2YWx1ZSgpIHsKLSAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLnZhbHVlLnZhbHVlKTsK
KyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51
bmVzY2FwZSkodGhpcy50b2tlbnMudmFsdWUudmFsdWUpOwogICB9CiB9CiAKIAogLyoqKi8gfSks
CiAvKiAxMSAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywg
X193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFj
a19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4g
ewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9y
dHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVf
Xy5kKF9fd2VicGFja19leHBvcnRzX18sICJBcmd1bWVudCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4g
QXJndW1lbnQ7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5k
KF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIkFyZ3VtZW50
IjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gQXJndW1lbnQpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9
KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICov
IHZhciBfZGVmYXVsdF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNr
X3JlcXVpcmVfXygxMik7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2V4dGVuZGVkX2F0dHJp
YnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJl
X18oOCk7CkBAIC0xNTYyLDcgKzE3NTMsNyBAQCBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJw
YWNrX2V4cG9ydHNfXyk7CiAKIAogCi1jbGFzcyBBcmd1bWVudCBleHRlbmRzIF9iYXNlX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CitjbGFzcyBBcmd1bWVudCBleHRl
bmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgog
ICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIK
ICAgICovCkBAIC0xNTcwLDIxICsxNzYxLDI1IEBAIGNsYXNzIEFyZ3VtZW50IGV4dGVuZHMgX2Jh
c2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICBjb25zdCBz
dGFydF9wb3NpdGlvbiA9IHRva2VuaXNlci5wb3NpdGlvbjsKICAgICAvKiogQHR5cGUge0Jhc2Vb
InRva2VucyJdfSAqLwogICAgIGNvbnN0IHRva2VucyA9IHt9OwotICAgIGNvbnN0IHJldCA9IE9i
amVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fWyJhdXRvUGFyZW50
ZXIiXSkobmV3IEFyZ3VtZW50KHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkp
OwotICAgIHJldC5leHRBdHRycyA9IF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8yX19bIkV4dGVuZGVkQXR0cmlidXRlcyJdLnBhcnNlKHRva2VuaXNlcik7
CisgICAgY29uc3QgcmV0ID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzNfXy5hdXRvUGFyZW50ZXIpKAorICAgICAgbmV3IEFyZ3VtZW50KHsgc291cmNlOiB0b2tlbmlz
ZXIuc291cmNlLCB0b2tlbnMgfSkKKyAgICApOworICAgIHJldC5leHRBdHRycyA9IF9leHRlbmRl
ZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uRXh0ZW5kZWRBdHRy
aWJ1dGVzLnBhcnNlKHRva2VuaXNlcik7CiAgICAgdG9rZW5zLm9wdGlvbmFsID0gdG9rZW5pc2Vy
LmNvbnN1bWUoIm9wdGlvbmFsIik7Ci0gICAgcmV0LmlkbFR5cGUgPSBPYmplY3QoX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1sidHlwZV93aXRoX2V4dGVuZGVkX2F0dHJp
YnV0ZXMiXSkodG9rZW5pc2VyLCAiYXJndW1lbnQtdHlwZSIpOworICAgIHJldC5pZGxUeXBlID0g
KDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXy50eXBlX3dpdGhfZXh0
ZW5kZWRfYXR0cmlidXRlcykodG9rZW5pc2VyLCAiYXJndW1lbnQtdHlwZSIpOwogICAgIGlmICgh
cmV0LmlkbFR5cGUpIHsKICAgICAgIHJldHVybiB0b2tlbmlzZXIudW5jb25zdW1lKHN0YXJ0X3Bv
c2l0aW9uKTsKICAgICB9CiAgICAgaWYgKCF0b2tlbnMub3B0aW9uYWwpIHsKICAgICAgIHRva2Vu
cy52YXJpYWRpYyA9IHRva2VuaXNlci5jb25zdW1lKCIuLi4iKTsKICAgICB9Ci0gICAgdG9rZW5z
Lm5hbWUgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIsIC4uLl90b2tlbmlzZXJfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siYXJndW1lbnROYW1lS2V5d29yZHMiXSk7Cisg
ICAgdG9rZW5zLm5hbWUgPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWVUeXBlKCJpZGVudGlmaWVy
IikgfHwKKyAgICAgIHRva2VuaXNlci5jb25zdW1lKC4uLl90b2tlbmlzZXJfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzRfXy5hcmd1bWVudE5hbWVLZXl3b3Jkcyk7CiAgICAgaWYgKCF0b2tl
bnMubmFtZSkgewogICAgICAgcmV0dXJuIHRva2VuaXNlci51bmNvbnN1bWUoc3RhcnRfcG9zaXRp
b24pOwogICAgIH0KLSAgICByZXQuZGVmYXVsdCA9IHRva2Vucy5vcHRpb25hbCA/IF9kZWZhdWx0
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkRlZmF1bHQiXS5wYXJzZSh0b2tlbmlz
ZXIpIDogbnVsbDsKKyAgICByZXQuZGVmYXVsdCA9IHRva2Vucy5vcHRpb25hbCA/IF9kZWZhdWx0
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uRGVmYXVsdC5wYXJzZSh0b2tlbmlzZXIp
IDogbnVsbDsKICAgICByZXR1cm4gcmV0LnRoaXM7CiAgIH0KIApAQCAtMTU5OCwzNCArMTc5Myw3
MSBAQCBjbGFzcyBBcmd1bWVudCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX19bIkJhc2UiXSB7CiAgICAgcmV0dXJuICEhdGhpcy50b2tlbnMudmFyaWFkaWM7CiAg
IH0KICAgZ2V0IG5hbWUoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfM19fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVl
KTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNf
Xy51bmVzY2FwZSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7CiAgIH0KIAogICAvKioKICAgICog
QHBhcmFtIHtpbXBvcnQoIi4uL3ZhbGlkYXRvci5qcyIpLkRlZmluaXRpb25zfSBkZWZzCiAgICAq
LwogICAqdmFsaWRhdGUoZGVmcykgeworICAgIHlpZWxkKiB0aGlzLmV4dEF0dHJzLnZhbGlkYXRl
KGRlZnMpOwogICAgIHlpZWxkKiB0aGlzLmlkbFR5cGUudmFsaWRhdGUoZGVmcyk7Ci0gICAgY29u
c3QgcmVzdWx0ID0gT2JqZWN0KF92YWxpZGF0b3JzX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzZfX1siaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeSJdKSh0aGlzLmlkbFR5cGUs
IGRlZnMsIHsgdXNlTnVsbGFibGVJbm5lcjogdHJ1ZSB9KTsKKyAgICBjb25zdCByZXN1bHQgPSAo
MCxfdmFsaWRhdG9yc19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X18uaWRs
VHlwZUluY2x1ZGVzRGljdGlvbmFyeSkodGhpcy5pZGxUeXBlLCBkZWZzLCB7CisgICAgICB1c2VO
dWxsYWJsZUlubmVyOiB0cnVlLAorICAgIH0pOwogICAgIGlmIChyZXN1bHQpIHsKICAgICAgIGlm
ICh0aGlzLmlkbFR5cGUubnVsbGFibGUpIHsKICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBEaWN0
aW9uYXJ5IGFyZ3VtZW50cyBjYW5ub3QgYmUgbnVsbGFibGUuYDsKLSAgICAgICAgeWllbGQgT2Jq
ZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fWyJ2YWxpZGF0aW9uRXJy
b3IiXSkodGhpcy50b2tlbnMubmFtZSwgdGhpcywgIm5vLW51bGxhYmxlLWRpY3QtYXJnIiwgbWVz
c2FnZSk7CisgICAgICAgIHlpZWxkICgwLF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfNV9fLnZhbGlkYXRpb25FcnJvcikoCisgICAgICAgICAgdGhpcy50b2tlbnMubmFtZSwKKyAg
ICAgICAgICB0aGlzLAorICAgICAgICAgICJuby1udWxsYWJsZS1kaWN0LWFyZyIsCisgICAgICAg
ICAgbWVzc2FnZQorICAgICAgICApOwogICAgICAgfSBlbHNlIGlmICghdGhpcy5vcHRpb25hbCkg
ewotICAgICAgICBpZiAodGhpcy5wYXJlbnQgJiYgIU9iamVjdChfdmFsaWRhdG9yc19oZWxwZXJz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19bImRpY3Rpb25hcnlJbmNsdWRlc1JlcXVp
cmVkRmllbGQiXSkocmVzdWx0LmRpY3Rpb25hcnksIGRlZnMpICYmIGlzTGFzdFJlcXVpcmVkQXJn
dW1lbnQodGhpcykpIHsKKyAgICAgICAgaWYgKAorICAgICAgICAgIHRoaXMucGFyZW50ICYmCisg
ICAgICAgICAgISgwLF92YWxpZGF0b3JzX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzZfXy5kaWN0aW9uYXJ5SW5jbHVkZXNSZXF1aXJlZEZpZWxkKShyZXN1bHQuZGljdGlvbmFy
eSwgZGVmcykgJiYKKyAgICAgICAgICBpc0xhc3RSZXF1aXJlZEFyZ3VtZW50KHRoaXMpCisgICAg
ICAgICkgewogICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgRGljdGlvbmFyeSBhcmd1bWVudCBt
dXN0IGJlIG9wdGlvbmFsIGlmIGl0IGhhcyBubyByZXF1aXJlZCBmaWVsZHNgOwotICAgICAgICAg
IHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1sidmFs
aWRhdGlvbkVycm9yIl0pKHRoaXMudG9rZW5zLm5hbWUsIHRoaXMsICJkaWN0LWFyZy1vcHRpb25h
bCIsIG1lc3NhZ2UsIHsKLSAgICAgICAgICAgIGF1dG9maXg6IGF1dG9maXhEaWN0aW9uYXJ5QXJn
dW1lbnRPcHRpb25hbGl0eSh0aGlzKQotICAgICAgICAgIH0pOworICAgICAgICAgIHlpZWxkICgw
LF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fLnZhbGlkYXRpb25FcnJvciko
CisgICAgICAgICAgICB0aGlzLnRva2Vucy5uYW1lLAorICAgICAgICAgICAgdGhpcywKKyAgICAg
ICAgICAgICJkaWN0LWFyZy1vcHRpb25hbCIsCisgICAgICAgICAgICBtZXNzYWdlLAorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICBhdXRvZml4OiBhdXRvZml4RGljdGlvbmFyeUFyZ3VtZW50
T3B0aW9uYWxpdHkodGhpcyksCisgICAgICAgICAgICB9CisgICAgICAgICAgKTsKICAgICAgICAg
fQogICAgICAgfSBlbHNlIGlmICghdGhpcy5kZWZhdWx0KSB7CiAgICAgICAgIGNvbnN0IG1lc3Nh
Z2UgPSBgT3B0aW9uYWwgZGljdGlvbmFyeSBhcmd1bWVudHMgbXVzdCBoYXZlIGEgZGVmYXVsdCB2
YWx1ZSBvZiBcYHt9XGAuYDsKLSAgICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfNV9fWyJ2YWxpZGF0aW9uRXJyb3IiXSkodGhpcy50b2tlbnMubmFt
ZSwgdGhpcywgImRpY3QtYXJnLWRlZmF1bHQiLCBtZXNzYWdlLCB7Ci0gICAgICAgICAgYXV0b2Zp
eDogYXV0b2ZpeE9wdGlvbmFsRGljdGlvbmFyeURlZmF1bHRWYWx1ZSh0aGlzKQotICAgICAgICB9
KTsKKyAgICAgICAgeWllbGQgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81
X18udmFsaWRhdGlvbkVycm9yKSgKKyAgICAgICAgICB0aGlzLnRva2Vucy5uYW1lLAorICAgICAg
ICAgIHRoaXMsCisgICAgICAgICAgImRpY3QtYXJnLWRlZmF1bHQiLAorICAgICAgICAgIG1lc3Nh
Z2UsCisgICAgICAgICAgeworICAgICAgICAgICAgYXV0b2ZpeDogYXV0b2ZpeE9wdGlvbmFsRGlj
dGlvbmFyeURlZmF1bHRWYWx1ZSh0aGlzKSwKKyAgICAgICAgICB9CisgICAgICAgICk7CiAgICAg
ICB9CiAgICAgfQogICB9CisKKyAgLyoqIEBwYXJhbSB7aW1wb3J0KCIuLi93cml0ZXIuanMiKS5X
cml0ZXJ9IHcgKi8KKyAgd3JpdGUodykgeworICAgIHJldHVybiB3LnRzLndyYXAoWworICAgICAg
dGhpcy5leHRBdHRycy53cml0ZSh3KSwKKyAgICAgIHcudG9rZW4odGhpcy50b2tlbnMub3B0aW9u
YWwpLAorICAgICAgdy50cy50eXBlKHRoaXMuaWRsVHlwZS53cml0ZSh3KSksCisgICAgICB3LnRv
a2VuKHRoaXMudG9rZW5zLnZhcmlhZGljKSwKKyAgICAgIHcubmFtZV90b2tlbih0aGlzLnRva2Vu
cy5uYW1lLCB7IGRhdGE6IHRoaXMgfSksCisgICAgICB0aGlzLmRlZmF1bHQgPyB0aGlzLmRlZmF1
bHQud3JpdGUodykgOiAiIiwKKyAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuc2VwYXJhdG9yKSwK
KyAgICBdKTsKKyAgfQogfQogCiAvKioKQEAgLTE2MzQsNyArMTg2Niw3IEBAIGNsYXNzIEFyZ3Vt
ZW50IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJd
IHsKIGZ1bmN0aW9uIGlzTGFzdFJlcXVpcmVkQXJndW1lbnQoYXJnKSB7CiAgIGNvbnN0IGxpc3Qg
PSBhcmcucGFyZW50LmFyZ3VtZW50cyB8fCBhcmcucGFyZW50Lmxpc3Q7CiAgIGNvbnN0IGluZGV4
ID0gbGlzdC5pbmRleE9mKGFyZyk7Ci0gIGNvbnN0IHJlcXVpcmVkRXhpc3RzID0gbGlzdC5zbGlj
ZShpbmRleCArIDEpLnNvbWUoYSA9PiAhYS5vcHRpb25hbCk7CisgIGNvbnN0IHJlcXVpcmVkRXhp
c3RzID0gbGlzdC5zbGljZShpbmRleCArIDEpLnNvbWUoKGEpID0+ICFhLm9wdGlvbmFsKTsKICAg
cmV0dXJuICFyZXF1aXJlZEV4aXN0czsKIH0KIApAQCAtMTY0Myw4ICsxODc1LDEyIEBAIGZ1bmN0
aW9uIGlzTGFzdFJlcXVpcmVkQXJndW1lbnQoYXJnKSB7CiAgKi8KIGZ1bmN0aW9uIGF1dG9maXhE
aWN0aW9uYXJ5QXJndW1lbnRPcHRpb25hbGl0eShhcmcpIHsKICAgcmV0dXJuICgpID0+IHsKLSAg
ICBjb25zdCBmaXJzdFRva2VuID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8zX19bImdldEZpcnN0VG9rZW4iXSkoYXJnLmlkbFR5cGUpOwotICAgIGFyZy50b2tl
bnMub3B0aW9uYWwgPSB7IHR5cGU6ICJvcHRpb25hbCIsIHZhbHVlOiAib3B0aW9uYWwiLCB0cml2
aWE6IGZpcnN0VG9rZW4udHJpdmlhIH07CisgICAgY29uc3QgZmlyc3RUb2tlbiA9ICgwLF9oZWxw
ZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uZ2V0Rmlyc3RUb2tlbikoYXJnLmlk
bFR5cGUpOworICAgIGFyZy50b2tlbnMub3B0aW9uYWwgPSB7CisgICAgICB0eXBlOiAib3B0aW9u
YWwiLAorICAgICAgdmFsdWU6ICJvcHRpb25hbCIsCisgICAgICB0cml2aWE6IGZpcnN0VG9rZW4u
dHJpdmlhLAorICAgIH07CiAgICAgZmlyc3RUb2tlbi50cml2aWEgPSAiICI7CiAgICAgYXV0b2Zp
eE9wdGlvbmFsRGljdGlvbmFyeURlZmF1bHRWYWx1ZShhcmcpKCk7CiAgIH07CkBAIC0xNjU1LDI0
ICsxODkxLDI1IEBAIGZ1bmN0aW9uIGF1dG9maXhEaWN0aW9uYXJ5QXJndW1lbnRPcHRpb25hbGl0
eShhcmcpIHsKICAqLwogZnVuY3Rpb24gYXV0b2ZpeE9wdGlvbmFsRGljdGlvbmFyeURlZmF1bHRW
YWx1ZShhcmcpIHsKICAgcmV0dXJuICgpID0+IHsKLSAgICBhcmcuZGVmYXVsdCA9IF9kZWZhdWx0
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bIkRlZmF1bHQiXS5wYXJzZShuZXcgX3Rv
a2VuaXNlcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fWyJUb2tlbmlzZXIiXSgiID0g
e30iKSk7CisgICAgYXJnLmRlZmF1bHQgPSBfZGVmYXVsdF9qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMV9fLkRlZmF1bHQucGFyc2UobmV3IF90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzRfXy5Ub2tlbmlzZXIoIiA9IHt9IikpOwogICB9OwogfQogCiAKIC8qKiovIH0p
LAogLyogMTIgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18s
IF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBh
Y2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+
IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBv
cnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJl
X18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiRGVmYXVsdCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4g
RGVmYXVsdDsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQo
X193ZWJwYWNrX2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBvcnQgKi8gICAiRGVmYXVsdCI6
ICgpID0+ICgvKiBiaW5kaW5nICovIERlZmF1bHQpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsK
IC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZh
ciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3Jl
cXVpcmVfXyg0KTsKIAogCiAKLWNsYXNzIERlZmF1bHQgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0geworY2xhc3MgRGVmYXVsdCBleHRlbmRzIF9i
YXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBA
cGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICov
CkBAIC0xNjgxLDE2ICsxOTE4LDI4IEBAIGNsYXNzIERlZmF1bHQgZXh0ZW5kcyBfYmFzZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgIGlmICghYXNzaWduKSB7
CiAgICAgICByZXR1cm4gbnVsbDsKICAgICB9Ci0gICAgY29uc3QgZGVmID0gT2JqZWN0KF9oZWxw
ZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImNvbnN0X3ZhbHVlIl0pKHRva2Vu
aXNlcikgfHwgdG9rZW5pc2VyLmNvbnN1bWUoInN0cmluZyIsICJudWxsIiwgIlsiLCAieyIpIHx8
IHRva2VuaXNlci5lcnJvcigiTm8gdmFsdWUgZm9yIGRlZmF1bHQiKTsKKyAgICBjb25zdCBkZWYg
PQorICAgICAgKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5jb25z
dF92YWx1ZSkodG9rZW5pc2VyKSB8fAorICAgICAgdG9rZW5pc2VyLmNvbnN1bWVUeXBlKCJzdHJp
bmciKSB8fAorICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIm51bGwiLCAiWyIsICJ7IikgfHwKKyAg
ICAgIHRva2VuaXNlci5lcnJvcigiTm8gdmFsdWUgZm9yIGRlZmF1bHQiKTsKICAgICBjb25zdCBl
eHByZXNzaW9uID0gW2RlZl07Ci0gICAgaWYgKGRlZi50eXBlID09PSAiWyIpIHsKLSAgICAgIGNv
bnN0IGNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIl0iKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkRl
ZmF1bHQgc2VxdWVuY2UgdmFsdWUgbXVzdCBiZSBlbXB0eSIpOworICAgIGlmIChkZWYudmFsdWUg
PT09ICJbIikgeworICAgICAgY29uc3QgY2xvc2UgPQorICAgICAgICB0b2tlbmlzZXIuY29uc3Vt
ZSgiXSIpIHx8CisgICAgICAgIHRva2VuaXNlci5lcnJvcigiRGVmYXVsdCBzZXF1ZW5jZSB2YWx1
ZSBtdXN0IGJlIGVtcHR5Iik7CiAgICAgICBleHByZXNzaW9uLnB1c2goY2xvc2UpOwotICAgIH0g
ZWxzZSBpZiAoZGVmLnR5cGUgPT09ICJ7IikgewotICAgICAgY29uc3QgY2xvc2UgPSB0b2tlbmlz
ZXIuY29uc3VtZSgifSIpIHx8IHRva2VuaXNlci5lcnJvcigiRGVmYXVsdCBkaWN0aW9uYXJ5IHZh
bHVlIG11c3QgYmUgZW1wdHkiKTsKKyAgICB9IGVsc2UgaWYgKGRlZi52YWx1ZSA9PT0gInsiKSB7
CisgICAgICBjb25zdCBjbG9zZSA9CisgICAgICAgIHRva2VuaXNlci5jb25zdW1lKCJ9IikgfHwK
KyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJEZWZhdWx0IGRpY3Rpb25hcnkgdmFsdWUgbXVzdCBi
ZSBlbXB0eSIpOwogICAgICAgZXhwcmVzc2lvbi5wdXNoKGNsb3NlKTsKICAgICB9Ci0gICAgcmV0
dXJuIG5ldyBEZWZhdWx0KHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnM6IHsgYXNz
aWduIH0sIGV4cHJlc3Npb24gfSk7CisgICAgcmV0dXJuIG5ldyBEZWZhdWx0KHsKKyAgICAgIHNv
dXJjZTogdG9rZW5pc2VyLnNvdXJjZSwKKyAgICAgIHRva2VuczogeyBhc3NpZ24gfSwKKyAgICAg
IGV4cHJlc3Npb24sCisgICAgfSk7CiAgIH0KIAogICBjb25zdHJ1Y3Rvcih7IHNvdXJjZSwgdG9r
ZW5zLCBleHByZXNzaW9uIH0pIHsKQEAgLTE3MDAsMjQgKzE5NDksMzMgQEAgY2xhc3MgRGVmYXVs
dCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7
CiAgIH0KIAogICBnZXQgdHlwZSgpIHsKLSAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImNvbnN0X2RhdGEiXSkodGhpcy5leHByZXNzaW9u
WzBdKS50eXBlOworICAgIHJldHVybiAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMV9fLmNvbnN0X2RhdGEpKHRoaXMuZXhwcmVzc2lvblswXSkudHlwZTsKICAgfQogICBn
ZXQgdmFsdWUoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMV9fWyJjb25zdF9kYXRhIl0pKHRoaXMuZXhwcmVzc2lvblswXSkudmFsdWU7
CisgICAgcmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18u
Y29uc3RfZGF0YSkodGhpcy5leHByZXNzaW9uWzBdKS52YWx1ZTsKICAgfQogICBnZXQgbmVnYXRp
dmUoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMV9fWyJjb25zdF9kYXRhIl0pKHRoaXMuZXhwcmVzc2lvblswXSkubmVnYXRpdmU7Cisg
ICAgcmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uY29u
c3RfZGF0YSkodGhpcy5leHByZXNzaW9uWzBdKS5uZWdhdGl2ZTsKKyAgfQorCisgIC8qKiBAcGFy
YW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyKX0gdyAqLworICB3cml0ZSh3KSB7Cisg
ICAgcmV0dXJuIHcudHMud3JhcChbCisgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLmFzc2lnbiks
CisgICAgICAuLi50aGlzLmV4cHJlc3Npb24ubWFwKCh0KSA9PiB3LnRva2VuKHQpKSwKKyAgICBd
KTsKICAgfQogfQogCiAKIC8qKiovIH0pLAogLyogMTMgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1
bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgo
X191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18s
IF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3Jl
cXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRp
bmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiT3BlcmF0
aW9uIiwgZnVuY3Rpb24oKSB7IHJldHVybiBPcGVyYXRpb247IH0pOworLyogaGFybW9ueSBleHBv
cnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhh
cm1vbnkgZXhwb3J0ICovICAgIk9wZXJhdGlvbiI6ICgpID0+ICgvKiBiaW5kaW5nICovIE9wZXJh
dGlvbikKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWly
ZV9fKDYpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwogLyogaGFybW9ueSBp
bXBvcnQgKi8gdmFyIF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193
ZWJwYWNrX3JlcXVpcmVfXygzKTsKQEAgLTE3MjUsNyArMTk4Myw3IEBAIF9fd2VicGFja19yZXF1
aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAogCiAKLWNsYXNzIE9wZXJhdGlvbiBleHRl
bmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CitjbGFz
cyBPcGVyYXRpb24gZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
LkJhc2UgewogICAvKioKICAgICogQHR5cGVkZWYge2ltcG9ydCgiLi4vdG9rZW5pc2VyLmpzIiku
VG9rZW59IFRva2VuCiAgICAqCkBAIC0xNzM2LDcgKzE5OTQsOSBAQCBjbGFzcyBPcGVyYXRpb24g
ZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewog
ICAgKi8KICAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgeyBzcGVjaWFsLCByZWd1bGFyIH0gPSB7
fSkgewogICAgIGNvbnN0IHRva2VucyA9IHsgc3BlY2lhbCB9OwotICAgIGNvbnN0IHJldCA9IE9i
amVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJhdXRvUGFyZW50
ZXIiXSkobmV3IE9wZXJhdGlvbih7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0p
KTsKKyAgICBjb25zdCByZXQgPSAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMV9fLmF1dG9QYXJlbnRlcikoCisgICAgICBuZXcgT3BlcmF0aW9uKHsgc291cmNlOiB0b2tl
bmlzZXIuc291cmNlLCB0b2tlbnMgfSkKKyAgICApOwogICAgIGlmIChzcGVjaWFsICYmIHNwZWNp
YWwudmFsdWUgPT09ICJzdHJpbmdpZmllciIpIHsKICAgICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9
IHRva2VuaXNlci5jb25zdW1lKCI7Iik7CiAgICAgICBpZiAodG9rZW5zLnRlcm1pbmF0aW9uKSB7
CkBAIC0xNzQ3LDEyICsyMDA3LDE4IEBAIGNsYXNzIE9wZXJhdGlvbiBleHRlbmRzIF9iYXNlX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICAgaWYgKCFzcGVjaWFs
ICYmICFyZWd1bGFyKSB7CiAgICAgICB0b2tlbnMuc3BlY2lhbCA9IHRva2VuaXNlci5jb25zdW1l
KCJnZXR0ZXIiLCAic2V0dGVyIiwgImRlbGV0ZXIiKTsKICAgICB9Ci0gICAgcmV0LmlkbFR5cGUg
PSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1sicmV0dXJu
X3R5cGUiXSkodG9rZW5pc2VyKSB8fCB0b2tlbmlzZXIuZXJyb3IoIk1pc3NpbmcgcmV0dXJuIHR5
cGUiKTsKLSAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIiwg
ImluY2x1ZGVzIik7Ci0gICAgdG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgiKCIpIHx8
IHRva2VuaXNlci5lcnJvcigiSW52YWxpZCBvcGVyYXRpb24iKTsKLSAgICByZXQuYXJndW1lbnRz
ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImFyZ3Vt
ZW50X2xpc3QiXSkodG9rZW5pc2VyKTsKLSAgICB0b2tlbnMuY2xvc2UgPSB0b2tlbmlzZXIuY29u
c3VtZSgiKSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIG9wZXJhdGlvbiIpOwot
ICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwgdG9rZW5p
c2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgb3BlcmF0aW9uLCBleHBlY3RlZCBgO2AiKTsKKyAgICBy
ZXQuaWRsVHlwZSA9CisgICAgICAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMV9fLnJldHVybl90eXBlKSh0b2tlbmlzZXIpIHx8IHRva2VuaXNlci5lcnJvcigiTWlzc2lu
ZyByZXR1cm4gdHlwZSIpOworICAgIHRva2Vucy5uYW1lID0KKyAgICAgIHRva2VuaXNlci5jb25z
dW1lVHlwZSgiaWRlbnRpZmllciIpIHx8IHRva2VuaXNlci5jb25zdW1lKCJpbmNsdWRlcyIpOwor
ICAgIHRva2Vucy5vcGVuID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCIoIikgfHwgdG9rZW5p
c2VyLmVycm9yKCJJbnZhbGlkIG9wZXJhdGlvbiIpOworICAgIHJldC5hcmd1bWVudHMgPSAoMCxf
aGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmFyZ3VtZW50X2xpc3QpKHRv
a2VuaXNlcik7CisgICAgdG9rZW5zLmNsb3NlID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCIp
IikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0ZWQgb3BlcmF0aW9uIik7CisgICAgdG9r
ZW5zLnRlcm1pbmF0aW9uID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwKKyAgICAg
IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIG9wZXJhdGlvbiwgZXhwZWN0ZWQgYDtgIik7
CiAgICAgcmV0dXJuIHJldC50aGlzOwogICB9CiAKQEAgLTE3NjQsNyArMjAzMCw3IEBAIGNsYXNz
IE9wZXJhdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19b
IkJhc2UiXSB7CiAgICAgaWYgKCFuYW1lKSB7CiAgICAgICByZXR1cm4gIiI7CiAgICAgfQotICAg
IHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1si
dW5lc2NhcGUiXSkobmFtZS52YWx1ZSk7CisgICAgcmV0dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX18udW5lc2NhcGUpKG5hbWUudmFsdWUpOwogICB9CiAgIGdl
dCBzcGVjaWFsKCkgewogICAgIGlmICghdGhpcy50b2tlbnMuc3BlY2lhbCkgewpAQCAtMTc3NCw5
ICsyMDQwLDEwIEBAIGNsYXNzIE9wZXJhdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgIH0KIAogICAqdmFsaWRhdGUoZGVmcykgewor
ICAgIHlpZWxkKiB0aGlzLmV4dEF0dHJzLnZhbGlkYXRlKGRlZnMpOwogICAgIGlmICghdGhpcy5u
YW1lICYmIFsiIiwgInN0YXRpYyJdLmluY2x1ZGVzKHRoaXMuc3BlY2lhbCkpIHsKICAgICAgIGNv
bnN0IG1lc3NhZ2UgPSBgUmVndWxhciBvciBzdGF0aWMgb3BlcmF0aW9ucyBtdXN0IGhhdmUgYm90
aCBhIHJldHVybiB0eXBlIGFuZCBhbiBpZGVudGlmaWVyLmA7Ci0gICAgICB5aWVsZCBPYmplY3Qo
X2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bInZhbGlkYXRpb25FcnJvciJd
KSh0aGlzLnRva2Vucy5vcGVuLCB0aGlzLCAiaW5jb21wbGV0ZS1vcCIsIG1lc3NhZ2UpOworICAg
ICAgeWllbGQgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udmFsaWRh
dGlvbkVycm9yKSh0aGlzLnRva2Vucy5vcGVuLCB0aGlzLCAiaW5jb21wbGV0ZS1vcCIsIG1lc3Nh
Z2UpOwogICAgIH0KICAgICBpZiAodGhpcy5pZGxUeXBlKSB7CiAgICAgICB5aWVsZCogdGhpcy5p
ZGxUeXBlLnZhbGlkYXRlKGRlZnMpOwpAQCAtMTc4NSwyOSArMjA1Miw3MCBAQCBjbGFzcyBPcGVy
YXRpb24gZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNl
Il0gewogICAgICAgeWllbGQqIGFyZ3VtZW50LnZhbGlkYXRlKGRlZnMpOwogICAgIH0KICAgfQor
CisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyfSB3ICovCisgIHdy
aXRlKHcpIHsKKyAgICBjb25zdCB7IHBhcmVudCB9ID0gdGhpczsKKyAgICBjb25zdCBib2R5ID0g
dGhpcy5pZGxUeXBlCisgICAgICA/IFsKKyAgICAgICAgICB3LnRzLnR5cGUodGhpcy5pZGxUeXBl
LndyaXRlKHcpKSwKKyAgICAgICAgICB3Lm5hbWVfdG9rZW4odGhpcy50b2tlbnMubmFtZSwgeyBk
YXRhOiB0aGlzLCBwYXJlbnQgfSksCisgICAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5vcGVu
KSwKKyAgICAgICAgICB3LnRzLndyYXAodGhpcy5hcmd1bWVudHMubWFwKChhcmcpID0+IGFyZy53
cml0ZSh3KSkpLAorICAgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuY2xvc2UpLAorICAgICAg
ICBdCisgICAgICA6IFtdOworICAgIHJldHVybiB3LnRzLmRlZmluaXRpb24oCisgICAgICB3LnRz
LndyYXAoWworICAgICAgICB0aGlzLmV4dEF0dHJzLndyaXRlKHcpLAorICAgICAgICB0aGlzLnRv
a2Vucy5uYW1lCisgICAgICAgICAgPyB3LnRva2VuKHRoaXMudG9rZW5zLnNwZWNpYWwpCisgICAg
ICAgICAgOiB3LnRva2VuKHRoaXMudG9rZW5zLnNwZWNpYWwsIHcudHMubmFtZWxlc3MsIHsgZGF0
YTogdGhpcywgcGFyZW50IH0pLAorICAgICAgICAuLi5ib2R5LAorICAgICAgICB3LnRva2VuKHRo
aXMudG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAgICAgIF0pLAorICAgICAgeyBkYXRhOiB0aGlzLCBw
YXJlbnQgfQorICAgICk7CisgIH0KIH0KIAogCiAvKioqLyB9KSwKIC8qIDE0ICovCi0vKioqLyAo
ZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9f
KSB7CisvKioqLyAoKF9fdW51c2VkX3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBh
Y2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsK
IF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkg
ZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9y
dHNfXywgIkF0dHJpYnV0ZSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gQXR0cmlidXRlOyB9KTsKLS8q
IGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKLS8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBf
aGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVp
cmVfXyg0KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dl
YnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJBdHRyaWJ1dGUiOiAo
KSA9PiAoLyogYmluZGluZyAqLyBBdHRyaWJ1dGUpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsK
Ky8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CisvKiBoYXJtb255IGltcG9ydCAqLyB2
YXIgX3ZhbGlkYXRvcnNfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0g
X193ZWJwYWNrX3JlcXVpcmVfXyg3KTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsK
Ky8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfM19fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKKy8vIEB0cy1jaGVjaworCiAKIAog
Ci1jbGFzcyBBdHRyaWJ1dGUgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fWyJCYXNlIl0geworCisKK2NsYXNzIEF0dHJpYnV0ZSBleHRlbmRzIF9iYXNlX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2lt
cG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKKyAgICogQHBhcmFt
IHtvYmplY3R9IFtvcHRpb25zXQorICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyLmpz
IikuVG9rZW59IFtvcHRpb25zLnNwZWNpYWxdCisgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlv
bnMubm9Jbmhlcml0XQorICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnJlYWRvbmx5XQog
ICAgKi8KLSAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgeyBzcGVjaWFsLCBub0luaGVyaXQgPSBm
YWxzZSwgcmVhZG9ubHkgPSBmYWxzZSB9ID0ge30pIHsKKyAgc3RhdGljIHBhcnNlKAorICAgIHRv
a2VuaXNlciwKKyAgICB7IHNwZWNpYWwsIG5vSW5oZXJpdCA9IGZhbHNlLCByZWFkb25seSA9IGZh
bHNlIH0gPSB7fQorICApIHsKICAgICBjb25zdCBzdGFydF9wb3NpdGlvbiA9IHRva2VuaXNlci5w
b3NpdGlvbjsKICAgICBjb25zdCB0b2tlbnMgPSB7IHNwZWNpYWwgfTsKLSAgICBjb25zdCByZXQg
PSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siYXV0b1Bh
cmVudGVyIl0pKG5ldyBBdHRyaWJ1dGUoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2Vu
cyB9KSk7CisgICAgY29uc3QgcmV0ID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzNfXy5hdXRvUGFyZW50ZXIpKAorICAgICAgbmV3IEF0dHJpYnV0ZSh7IHNvdXJjZTog
dG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pCisgICAgKTsKICAgICBpZiAoIXNwZWNpYWwgJiYg
IW5vSW5oZXJpdCkgewogICAgICAgdG9rZW5zLnNwZWNpYWwgPSB0b2tlbmlzZXIuY29uc3VtZSgi
aW5oZXJpdCIpOwogICAgIH0KQEAgLTE4MjMsMTMgKzIxMzEsMTYgQEAgY2xhc3MgQXR0cmlidXRl
IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsK
ICAgICAgIHRva2VuaXNlci51bmNvbnN1bWUoc3RhcnRfcG9zaXRpb24pOwogICAgICAgcmV0dXJu
OwogICAgIH0KLSAgICByZXQuaWRsVHlwZSA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMV9fWyJ0eXBlX3dpdGhfZXh0ZW5kZWRfYXR0cmlidXRlcyJdKSh0b2tl
bmlzZXIsICJhdHRyaWJ1dGUtdHlwZSIpIHx8IHRva2VuaXNlci5lcnJvcigiQXR0cmlidXRlIGxh
Y2tzIGEgdHlwZSIpOwotICAgIHN3aXRjaCAocmV0LmlkbFR5cGUuZ2VuZXJpYykgewotICAgICAg
Y2FzZSAic2VxdWVuY2UiOgotICAgICAgY2FzZSAicmVjb3JkIjogdG9rZW5pc2VyLmVycm9yKGBB
dHRyaWJ1dGVzIGNhbm5vdCBhY2NlcHQgJHtyZXQuaWRsVHlwZS5nZW5lcmljfSB0eXBlc2ApOwot
ICAgIH0KLSAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIiwg
ImFzeW5jIiwgInJlcXVpcmVkIikgfHwgdG9rZW5pc2VyLmVycm9yKCJBdHRyaWJ1dGUgbGFja3Mg
YSBuYW1lIik7Ci0gICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsi
KSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBhdHRyaWJ1dGUsIGV4cGVjdGVkIGA7
YCIpOworICAgIHJldC5pZGxUeXBlID0KKyAgICAgICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8zX18udHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMpKHRva2VuaXNl
ciwgImF0dHJpYnV0ZS10eXBlIikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiQXR0cmlidXRl
IGxhY2tzIGEgdHlwZSIpOworICAgIHRva2Vucy5uYW1lID0KKyAgICAgIHRva2VuaXNlci5jb25z
dW1lVHlwZSgiaWRlbnRpZmllciIpIHx8CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiYXN5bmMi
LCAicmVxdWlyZWQiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKCJBdHRyaWJ1dGUgbGFja3Mg
YSBuYW1lIik7CisgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0KKyAgICAgIHRva2VuaXNlci5jb25z
dW1lKCI7IikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGF0dHJpYnV0
ZSwgZXhwZWN0ZWQgYDtgIik7CiAgICAgcmV0dXJuIHJldC50aGlzOwogICB9CiAKQEAgLTE4NDYs
MjMgKzIxNTcsNzAgQEAgY2xhc3MgQXR0cmlidXRlIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICByZXR1cm4gISF0aGlzLnRva2Vucy5y
ZWFkb25seTsKICAgfQogICBnZXQgbmFtZSgpIHsKLSAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5z
Lm5hbWUudmFsdWUpOworICAgIHJldHVybiAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRF
RF9NT0RVTEVfM19fLnVuZXNjYXBlKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKICAgfQogCiAg
ICp2YWxpZGF0ZShkZWZzKSB7CiAgICAgeWllbGQqIHRoaXMuZXh0QXR0cnMudmFsaWRhdGUoZGVm
cyk7CiAgICAgeWllbGQqIHRoaXMuaWRsVHlwZS52YWxpZGF0ZShkZWZzKTsKKworICAgIHN3aXRj
aCAodGhpcy5pZGxUeXBlLmdlbmVyaWMpIHsKKyAgICAgIGNhc2UgInNlcXVlbmNlIjoKKyAgICAg
IGNhc2UgInJlY29yZCI6IHsKKyAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBBdHRyaWJ1dGVzIGNh
bm5vdCBhY2NlcHQgJHt0aGlzLmlkbFR5cGUuZ2VuZXJpY30gdHlwZXMuYDsKKyAgICAgICAgeWll
bGQgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udmFsaWRhdGlvbkVy
cm9yKSgKKyAgICAgICAgICB0aGlzLnRva2Vucy5uYW1lLAorICAgICAgICAgIHRoaXMsCisgICAg
ICAgICAgImF0dHItaW52YWxpZC10eXBlIiwKKyAgICAgICAgICBtZXNzYWdlCisgICAgICAgICk7
CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgZGVmYXVsdDogeworICAgICAgICBjb25z
dCB7IHJlZmVyZW5jZSB9ID0KKyAgICAgICAgICAoMCxfdmFsaWRhdG9yc19oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uaWRsVHlwZUluY2x1ZGVzRGljdGlvbmFyeSkodGhp
cy5pZGxUeXBlLCBkZWZzKSB8fCB7fTsKKyAgICAgICAgaWYgKHJlZmVyZW5jZSkgeworICAgICAg
ICAgIGNvbnN0IHRhcmdldFRva2VuID0gKHRoaXMuaWRsVHlwZS51bmlvbiA/IHJlZmVyZW5jZSA6
IHRoaXMuaWRsVHlwZSkKKyAgICAgICAgICAgIC50b2tlbnMuYmFzZTsKKyAgICAgICAgICBjb25z
dCBtZXNzYWdlID0gIkF0dHJpYnV0ZXMgY2Fubm90IGFjY2VwdCBkaWN0aW9uYXJ5IHR5cGVzLiI7
CisgICAgICAgICAgeWllbGQgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X18udmFsaWRhdGlvbkVycm9yKSgKKyAgICAgICAgICAgIHRhcmdldFRva2VuLAorICAgICAgICAg
ICAgdGhpcywKKyAgICAgICAgICAgICJhdHRyLWludmFsaWQtdHlwZSIsCisgICAgICAgICAgICBt
ZXNzYWdlCisgICAgICAgICAgKTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgfQorCisg
IC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyfSB3ICovCisgIHdyaXRl
KHcpIHsKKyAgICBjb25zdCB7IHBhcmVudCB9ID0gdGhpczsKKyAgICByZXR1cm4gdy50cy5kZWZp
bml0aW9uKAorICAgICAgdy50cy53cmFwKFsKKyAgICAgICAgdGhpcy5leHRBdHRycy53cml0ZSh3
KSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5zcGVjaWFsKSwKKyAgICAgICAgdy50b2tl
bih0aGlzLnRva2Vucy5yZWFkb25seSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuYmFz
ZSksCisgICAgICAgIHcudHMudHlwZSh0aGlzLmlkbFR5cGUud3JpdGUodykpLAorICAgICAgICB3
Lm5hbWVfdG9rZW4odGhpcy50b2tlbnMubmFtZSwgeyBkYXRhOiB0aGlzLCBwYXJlbnQgfSksCisg
ICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMudGVybWluYXRpb24pLAorICAgICAgXSksCisgICAg
ICB7IGRhdGE6IHRoaXMsIHBhcmVudCB9CisgICAgKTsKICAgfQogfQogCiAKIC8qKiovIH0pLAog
LyogMTUgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9f
d2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tf
bW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsK
IAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRz
X18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18u
ZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiRW51bSIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gRW51bTsg
fSk7CisvKiBoYXJtb255IGV4cG9ydCAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNr
X2V4cG9ydHNfXywgeworLyogaGFybW9ueSBleHBvcnQgKi8gICAiRW51bSI6ICgpID0+ICgvKiBi
aW5kaW5nICovIEVudW0pCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1w
b3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193
ZWJwYWNrX3JlcXVpcmVfXyg0KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdG9rZW5fanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTApOwog
LyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOwpAQCAtMTg3MCwxMiArMjIyOCwxMiBAQCBf
X3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiAKIAogCi1jbGFzcyBF
bnVtVmFsdWUgZXh0ZW5kcyBfdG9rZW5fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1si
VG9rZW4iXSB7CitjbGFzcyBFbnVtVmFsdWUgZXh0ZW5kcyBfdG9rZW5fanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfXy5XcmFwcGVkVG9rZW4gewogICAvKioKICAgICogQHBhcmFtIHtpbXBv
cnQoIi4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCiAgICAqLwogICBzdGF0aWMg
cGFyc2UodG9rZW5pc2VyKSB7Ci0gICAgY29uc3QgdmFsdWUgPSB0b2tlbmlzZXIuY29uc3VtZSgi
c3RyaW5nIik7CisgICAgY29uc3QgdmFsdWUgPSB0b2tlbmlzZXIuY29uc3VtZVR5cGUoInN0cmlu
ZyIpOwogICAgIGlmICh2YWx1ZSkgewogICAgICAgcmV0dXJuIG5ldyBFbnVtVmFsdWUoeyBzb3Vy
Y2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VuczogeyB2YWx1ZSB9IH0pOwogICAgIH0KQEAgLTE4
ODcsOSArMjI0NSwyMiBAQCBjbGFzcyBFbnVtVmFsdWUgZXh0ZW5kcyBfdG9rZW5fanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfX1siVG9rZW4iXSB7CiAgIGdldCB2YWx1ZSgpIHsKICAgICBy
ZXR1cm4gc3VwZXIudmFsdWUuc2xpY2UoMSwgLTEpOwogICB9CisKKyAgLyoqIEBwYXJhbSB7aW1w
b3J0KCIuLi93cml0ZXIuanMiKS5Xcml0ZXJ9IHcgKi8KKyAgd3JpdGUodykgeworICAgIGNvbnN0
IHsgcGFyZW50IH0gPSB0aGlzOworICAgIHJldHVybiB3LnRzLndyYXAoWworICAgICAgdy50cy50
cml2aWEodGhpcy50b2tlbnMudmFsdWUudHJpdmlhKSwKKyAgICAgIHcudHMuZGVmaW5pdGlvbigK
KyAgICAgICAgdy50cy53cmFwKFsnIicsIHcudHMubmFtZSh0aGlzLnZhbHVlLCB7IGRhdGE6IHRo
aXMsIHBhcmVudCB9KSwgJyInXSksCisgICAgICAgIHsgZGF0YTogdGhpcywgcGFyZW50IH0KKyAg
ICAgICksCisgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnNlcGFyYXRvciksCisgICAgXSk7Cisg
IH0KIH0KIAotY2xhc3MgRW51bSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8yX19bIkJhc2UiXSB7CitjbGFzcyBFbnVtIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzJfXy5CYXNlIHsKICAgLyoqCiAgICAqIEBwYXJhbSB7aW1wb3J0KCIu
Li90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgogICAgKi8KQEAgLTE5MDAsMjMgKzIy
NzEsMjcgQEAgY2xhc3MgRW51bSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8yX19bIkJhc2UiXSB7CiAgICAgaWYgKCF0b2tlbnMuYmFzZSkgewogICAgICAgcmV0dXJu
OwogICAgIH0KLSAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVy
IikgfHwgdG9rZW5pc2VyLmVycm9yKCJObyBuYW1lIGZvciBlbnVtIik7Ci0gICAgY29uc3QgcmV0
ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bImF1dG9Q
YXJlbnRlciJdKShuZXcgRW51bSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0p
KTsKKyAgICB0b2tlbnMubmFtZSA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZVR5cGUoImlkZW50
aWZpZXIiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKCJObyBuYW1lIGZvciBlbnVtIik7Cisg
ICAgY29uc3QgcmV0ID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
Xy5hdXRvUGFyZW50ZXIpKG5ldyBFbnVtKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tl
bnMgfSkpOwogICAgIHRva2VuaXNlci5jdXJyZW50ID0gcmV0LnRoaXM7CiAgICAgdG9rZW5zLm9w
ZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgieyIpIHx8IHRva2VuaXNlci5lcnJvcigiQm9keWxlc3Mg
ZW51bSIpOwotICAgIHJldC52YWx1ZXMgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfX1sibGlzdCJdKSh0b2tlbmlzZXIsIHsKKyAgICByZXQudmFsdWVzID0g
KDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5saXN0KSh0b2tlbmlz
ZXIsIHsKICAgICAgIHBhcnNlcjogRW51bVZhbHVlLnBhcnNlLAogICAgICAgYWxsb3dEYW5nbGVy
OiB0cnVlLAotICAgICAgbGlzdE5hbWU6ICJlbnVtZXJhdGlvbiIKKyAgICAgIGxpc3ROYW1lOiAi
ZW51bWVyYXRpb24iLAogICAgIH0pOwotICAgIGlmICh0b2tlbmlzZXIucHJvYmUoInN0cmluZyIp
KSB7CisgICAgaWYgKHRva2VuaXNlci5wcm9iZVR5cGUoInN0cmluZyIpKSB7CiAgICAgICB0b2tl
bmlzZXIuZXJyb3IoIk5vIGNvbW1hIGJldHdlZW4gZW51bSB2YWx1ZXMiKTsKICAgICB9Ci0gICAg
dG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIn0iKSB8fCB0b2tlbmlzZXIuZXJyb3Io
IlVuZXhwZWN0ZWQgdmFsdWUgaW4gZW51bSIpOworICAgIHRva2Vucy5jbG9zZSA9CisgICAgICB0
b2tlbmlzZXIuY29uc3VtZSgifSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW5leHBlY3RlZCB2YWx1
ZSBpbiBlbnVtIik7CiAgICAgaWYgKCFyZXQudmFsdWVzLmxlbmd0aCkgewogICAgICAgdG9rZW5p
c2VyLmVycm9yKCJObyB2YWx1ZSBpbiBlbnVtIik7CiAgICAgfQotICAgIHRva2Vucy50ZXJtaW5h
dGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKCJObyBzZW1p
Y29sb24gYWZ0ZXIgZW51bSIpOworICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9CisgICAgICB0b2tl
bmlzZXIuY29uc3VtZSgiOyIpIHx8IHRva2VuaXNlci5lcnJvcigiTm8gc2VtaWNvbG9uIGFmdGVy
IGVudW0iKTsKICAgICByZXR1cm4gcmV0LnRoaXM7CiAgIH0KIApAQCAtMTkyNCwxOCArMjI5OSwz
NSBAQCBjbGFzcyBFbnVtIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzJfX1siQmFzZSJdIHsKICAgICByZXR1cm4gImVudW0iOwogICB9CiAgIGdldCBuYW1lKCkgewot
ICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBf
X1sidW5lc2NhcGUiXSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7CisgICAgcmV0dXJuICgwLF9o
ZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18udW5lc2NhcGUpKHRoaXMudG9r
ZW5zLm5hbWUudmFsdWUpOworICB9CisKKyAgLyoqIEBwYXJhbSB7aW1wb3J0KCIuLi93cml0ZXIu
anMiKS5Xcml0ZXJ9IHcgKi8KKyAgd3JpdGUodykgeworICAgIHJldHVybiB3LnRzLmRlZmluaXRp
b24oCisgICAgICB3LnRzLndyYXAoWworICAgICAgICB0aGlzLmV4dEF0dHJzLndyaXRlKHcpLAor
ICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLmJhc2UpLAorICAgICAgICB3Lm5hbWVfdG9rZW4o
dGhpcy50b2tlbnMubmFtZSwgeyBkYXRhOiB0aGlzIH0pLAorICAgICAgICB3LnRva2VuKHRoaXMu
dG9rZW5zLm9wZW4pLAorICAgICAgICB3LnRzLndyYXAodGhpcy52YWx1ZXMubWFwKCh2KSA9PiB2
LndyaXRlKHcpKSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuY2xvc2UpLAorICAgICAg
ICB3LnRva2VuKHRoaXMudG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAgICAgIF0pLAorICAgICAgeyBk
YXRhOiB0aGlzIH0KKyAgICApOwogICB9CiB9CiAKIAogLyoqKi8gfSksCiAvKiAxNiAqLwotLyoq
Ki8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVp
cmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193
ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmlj
dCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJt
b255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19l
eHBvcnRzX18sICJJbmNsdWRlcyIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gSW5jbHVkZXM7IH0pOwor
LyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBv
cnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIkluY2x1ZGVzIjogKCkgPT4gKC8qIGJp
bmRpbmcgKi8gSW5jbHVkZXMpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193
ZWJwYWNrX3JlcXVpcmVfXyg2KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsK
IC8vIEB0cy1jaGVjawpAQCAtMTk0MywxMiArMjMzNSwxMiBAQCBfX3dlYnBhY2tfcmVxdWlyZV9f
LnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiAKIAogCi1jbGFzcyBJbmNsdWRlcyBleHRlbmRzIF9i
YXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CitjbGFzcyBJbmNs
dWRlcyBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQmFzZSB7
CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0
b2tlbmlzZXIKICAgICovCiAgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKLSAgICBjb25zdCB0
YXJnZXQgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIpOworICAgIGNvbnN0IHRhcmdl
dCA9IHRva2VuaXNlci5jb25zdW1lVHlwZSgiaWRlbnRpZmllciIpOwogICAgIGlmICghdGFyZ2V0
KSB7CiAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTk1OCw4ICsyMzUwLDEyIEBAIGNsYXNzIElu
Y2x1ZGVzIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFz
ZSJdIHsKICAgICAgIHRva2VuaXNlci51bmNvbnN1bWUodGFyZ2V0LmluZGV4KTsKICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgdG9rZW5zLm1peGluID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50
aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkluY29tcGxldGUgaW5jbHVkZXMgc3RhdGVtZW50
Iik7Ci0gICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0
b2tlbmlzZXIuZXJyb3IoIk5vIHRlcm1pbmF0aW5nIDsgZm9yIGluY2x1ZGVzIHN0YXRlbWVudCIp
OworICAgIHRva2Vucy5taXhpbiA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZVR5cGUoImlkZW50
aWZpZXIiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKCJJbmNvbXBsZXRlIGluY2x1ZGVzIHN0
YXRlbWVudCIpOworICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9CisgICAgICB0b2tlbmlzZXIuY29u
c3VtZSgiOyIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIk5vIHRlcm1pbmF0aW5nIDsgZm9y
IGluY2x1ZGVzIHN0YXRlbWVudCIpOwogICAgIHJldHVybiBuZXcgSW5jbHVkZXMoeyBzb3VyY2U6
IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KTsKICAgfQogCkBAIC0xOTY3LDQyICsyMzYzLDYz
IEBAIGNsYXNzIEluY2x1ZGVzIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfX1siQmFzZSJdIHsKICAgICByZXR1cm4gImluY2x1ZGVzIjsKICAgfQogICBnZXQgdGFy
Z2V0KCkgewotICAgIHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzFfX1sidW5lc2NhcGUiXSkodGhpcy50b2tlbnMudGFyZ2V0LnZhbHVlKTsKKyAgICBy
ZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51bmVzY2Fw
ZSkodGhpcy50b2tlbnMudGFyZ2V0LnZhbHVlKTsKICAgfQogICBnZXQgaW5jbHVkZXMoKSB7Ci0g
ICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9f
WyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5taXhpbi52YWx1ZSk7CisgICAgcmV0dXJuICgwLF9o
ZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18udW5lc2NhcGUpKHRoaXMudG9r
ZW5zLm1peGluLnZhbHVlKTsKKyAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVy
LmpzIikuV3JpdGVyfSB3ICovCisgIHdyaXRlKHcpIHsKKyAgICByZXR1cm4gdy50cy5kZWZpbml0
aW9uKAorICAgICAgdy50cy53cmFwKFsKKyAgICAgICAgdGhpcy5leHRBdHRycy53cml0ZSh3KSwK
KyAgICAgICAgdy5yZWZlcmVuY2VfdG9rZW4odGhpcy50b2tlbnMudGFyZ2V0LCB0aGlzKSwKKyAg
ICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5pbmNsdWRlcyksCisgICAgICAgIHcucmVmZXJlbmNl
X3Rva2VuKHRoaXMudG9rZW5zLm1peGluLCB0aGlzKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRv
a2Vucy50ZXJtaW5hdGlvbiksCisgICAgICBdKSwKKyAgICAgIHsgZGF0YTogdGhpcyB9CisgICAg
KTsKICAgfQogfQogCiAKIC8qKiovIH0pLAogLyogMTcgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1
bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgo
X191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18s
IF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3Jl
cXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRp
bmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiVHlwZWRl
ZiIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gVHlwZWRlZjsgfSk7CisvKiBoYXJtb255IGV4cG9ydCAq
LyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgeworLyogaGFybW9u
eSBleHBvcnQgKi8gICAiVHlwZWRlZiI6ICgpID0+ICgvKiBiaW5kaW5nICovIFR5cGVkZWYpCisv
KiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYmFzZV9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsK
IC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKIAogCiAKLWNsYXNzIFR5cGVkZWYg
ZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewor
Y2xhc3MgVHlwZWRlZiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2VyIikuVG9r
ZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCiAgIHN0YXRpYyBwYXJzZSh0b2tlbmlzZXIpIHsKICAg
ICAvKiogQHR5cGUge0Jhc2VbInRva2VucyJdfSAqLwogICAgIGNvbnN0IHRva2VucyA9IHt9Owot
ICAgIGNvbnN0IHJldCA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMV9fWyJhdXRvUGFyZW50ZXIiXSkobmV3IFR5cGVkZWYoeyBzb3VyY2U6IHRva2VuaXNlci5z
b3VyY2UsIHRva2VucyB9KSk7CisgICAgY29uc3QgcmV0ID0gKDAsX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzFfXy5hdXRvUGFyZW50ZXIpKG5ldyBUeXBlZGVmKHsgc291cmNl
OiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSkpOwogICAgIHRva2Vucy5iYXNlID0gdG9rZW5p
c2VyLmNvbnN1bWUoInR5cGVkZWYiKTsKICAgICBpZiAoIXRva2Vucy5iYXNlKSB7CiAgICAgICBy
ZXR1cm47CiAgICAgfQotICAgIHJldC5pZGxUeXBlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0p
KHRva2VuaXNlciwgInR5cGVkZWYtdHlwZSIpIHx8IHRva2VuaXNlci5lcnJvcigiVHlwZWRlZiBs
YWNrcyBhIHR5cGUiKTsKLSAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVu
dGlmaWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKCJUeXBlZGVmIGxhY2tzIGEgbmFtZSIpOworICAg
IHJldC5pZGxUeXBlID0KKyAgICAgICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8xX18udHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMpKHRva2VuaXNlciwgInR5cGVk
ZWYtdHlwZSIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIlR5cGVkZWYgbGFja3MgYSB0eXBl
Iik7CisgICAgdG9rZW5zLm5hbWUgPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWVUeXBlKCJpZGVu
dGlmaWVyIikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiVHlwZWRlZiBsYWNrcyBhIG5hbWUi
KTsKICAgICB0b2tlbmlzZXIuY3VycmVudCA9IHJldC50aGlzOwotICAgIHRva2Vucy50ZXJtaW5h
dGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1p
bmF0ZWQgdHlwZWRlZiwgZXhwZWN0ZWQgYDtgIik7CisgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0K
KyAgICAgIHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigi
VW50ZXJtaW5hdGVkIHR5cGVkZWYsIGV4cGVjdGVkIGA7YCIpOwogICAgIHJldHVybiByZXQudGhp
czsKICAgfQogCkBAIC0yMDEwLDQyICsyNDI3LDY4IEBAIGNsYXNzIFR5cGVkZWYgZXh0ZW5kcyBf
YmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0gewogICAgIHJldHVy
biAidHlwZWRlZiI7CiAgIH0KICAgZ2V0IG5hbWUoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChfaGVs
cGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRv
a2Vucy5uYW1lLnZhbHVlKTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfXy51bmVzY2FwZSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7CiAgIH0K
IAogICAqdmFsaWRhdGUoZGVmcykgewogICAgIHlpZWxkKiB0aGlzLmlkbFR5cGUudmFsaWRhdGUo
ZGVmcyk7CiAgIH0KKworICAvKiogQHBhcmFtIHtpbXBvcnQoIi4uL3dyaXRlci5qcyIpLldyaXRl
cn0gdyAqLworICB3cml0ZSh3KSB7CisgICAgcmV0dXJuIHcudHMuZGVmaW5pdGlvbigKKyAgICAg
IHcudHMud3JhcChbCisgICAgICAgIHRoaXMuZXh0QXR0cnMud3JpdGUodyksCisgICAgICAgIHcu
dG9rZW4odGhpcy50b2tlbnMuYmFzZSksCisgICAgICAgIHcudHMudHlwZSh0aGlzLmlkbFR5cGUu
d3JpdGUodykpLAorICAgICAgICB3Lm5hbWVfdG9rZW4odGhpcy50b2tlbnMubmFtZSwgeyBkYXRh
OiB0aGlzIH0pLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAg
ICAgIF0pLAorICAgICAgeyBkYXRhOiB0aGlzIH0KKyAgICApOworICB9CiB9CiAKIAogLyoqKi8g
fSksCiAvKiAxOCAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNf
XywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2Vi
cGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykg
PT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4
cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVp
cmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJDYWxsYmFja0Z1bmN0aW9uIiwgZnVuY3Rpb24o
KSB7IHJldHVybiBDYWxsYmFja0Z1bmN0aW9uOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9f
d2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4
cG9ydCAqLyAgICJDYWxsYmFja0Z1bmN0aW9uIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gQ2FsbGJh
Y2tGdW5jdGlvbikKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQg
Ki8gdmFyIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tf
cmVxdWlyZV9fKDYpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwogCiAKIAot
Y2xhc3MgQ2FsbGJhY2tGdW5jdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX19bIkJhc2UiXSB7CitjbGFzcyBDYWxsYmFja0Z1bmN0aW9uIGV4dGVuZHMgX2Jh
c2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5CYXNlIHsKICAgLyoqCiAgICAqIEBw
YXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIuanMiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgogICAg
Ki8KICAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgYmFzZSkgewogICAgIGNvbnN0IHRva2VucyA9
IHsgYmFzZSB9OwotICAgIGNvbnN0IHJldCA9IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMV9fWyJhdXRvUGFyZW50ZXIiXSkobmV3IENhbGxiYWNrRnVuY3Rpb24o
eyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSk7Ci0gICAgdG9rZW5zLm5hbWUg
PSB0b2tlbmlzZXIuY29uc3VtZSgiaWRlbnRpZmllciIpIHx8IHRva2VuaXNlci5lcnJvcigiQ2Fs
bGJhY2sgbGFja3MgYSBuYW1lIik7CisgICAgY29uc3QgcmV0ID0gKDAsX2hlbHBlcnNfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5hdXRvUGFyZW50ZXIpKAorICAgICAgbmV3IENhbGxi
YWNrRnVuY3Rpb24oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KQorICAgICk7
CisgICAgdG9rZW5zLm5hbWUgPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWVUeXBlKCJpZGVudGlm
aWVyIikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcigiQ2FsbGJhY2sgbGFja3MgYSBuYW1lIik7
CiAgICAgdG9rZW5pc2VyLmN1cnJlbnQgPSByZXQudGhpczsKLSAgICB0b2tlbnMuYXNzaWduID0g
dG9rZW5pc2VyLmNvbnN1bWUoIj0iKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNhbGxiYWNrIGxhY2tz
IGFuIGFzc2lnbm1lbnQiKTsKLSAgICByZXQuaWRsVHlwZSA9IE9iamVjdChfaGVscGVyc19qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJyZXR1cm5fdHlwZSJdKSh0b2tlbmlzZXIpIHx8
IHRva2VuaXNlci5lcnJvcigiQ2FsbGJhY2sgbGFja3MgYSByZXR1cm4gdHlwZSIpOwotICAgIHRv
a2Vucy5vcGVuID0gdG9rZW5pc2VyLmNvbnN1bWUoIigiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNh
bGxiYWNrIGxhY2tzIHBhcmVudGhlc2VzIGZvciBhcmd1bWVudHMiKTsKLSAgICByZXQuYXJndW1l
bnRzID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImFy
Z3VtZW50X2xpc3QiXSkodG9rZW5pc2VyKTsKLSAgICB0b2tlbnMuY2xvc2UgPSB0b2tlbmlzZXIu
Y29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGNhbGxiYWNrIik7
Ci0gICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2VyLmNvbnN1bWUoIjsiKSB8fCB0b2tl
bmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBjYWxsYmFjaywgZXhwZWN0ZWQgYDtgIik7CisgICAg
dG9rZW5zLmFzc2lnbiA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiPSIpIHx8IHRva2VuaXNl
ci5lcnJvcigiQ2FsbGJhY2sgbGFja3MgYW4gYXNzaWdubWVudCIpOworICAgIHJldC5pZGxUeXBl
ID0KKyAgICAgICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18ucmV0
dXJuX3R5cGUpKHRva2VuaXNlcikgfHwgdG9rZW5pc2VyLmVycm9yKCJDYWxsYmFjayBsYWNrcyBh
IHJldHVybiB0eXBlIik7CisgICAgdG9rZW5zLm9wZW4gPQorICAgICAgdG9rZW5pc2VyLmNvbnN1
bWUoIigiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKCJDYWxsYmFjayBsYWNrcyBwYXJlbnRo
ZXNlcyBmb3IgYXJndW1lbnRzIik7CisgICAgcmV0LmFyZ3VtZW50cyA9ICgwLF9oZWxwZXJzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uYXJndW1lbnRfbGlzdCkodG9rZW5pc2VyKTsK
KyAgICB0b2tlbnMuY2xvc2UgPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIikiKSB8fCB0b2tl
bmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBjYWxsYmFjayIpOworICAgIHRva2Vucy50ZXJtaW5h
dGlvbiA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8CisgICAgICB0b2tlbmlzZXIu
ZXJyb3IoIlVudGVybWluYXRlZCBjYWxsYmFjaywgZXhwZWN0ZWQgYDtgIik7CiAgICAgcmV0dXJu
IHJldC50aGlzOwogICB9CiAKQEAgLTIwNTMsMjMgKzI0OTYsNDIgQEAgY2xhc3MgQ2FsbGJhY2tG
dW5jdGlvbiBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJh
c2UiXSB7CiAgICAgcmV0dXJuICJjYWxsYmFjayI7CiAgIH0KICAgZ2V0IG5hbWUoKSB7Ci0gICAg
cmV0dXJuIE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1
bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5uYW1lLnZhbHVlKTsKKyAgICByZXR1cm4gKDAsX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy51bmVzY2FwZSkodGhpcy50b2tlbnMu
bmFtZS52YWx1ZSk7CiAgIH0KIAogICAqdmFsaWRhdGUoZGVmcykgewogICAgIHlpZWxkKiB0aGlz
LmV4dEF0dHJzLnZhbGlkYXRlKGRlZnMpOwogICAgIHlpZWxkKiB0aGlzLmlkbFR5cGUudmFsaWRh
dGUoZGVmcyk7CiAgIH0KKworICAvKiogQHBhcmFtIHtpbXBvcnQoIi4uL3dyaXRlci5qcyIpLldy
aXRlcn0gdyAqLworICB3cml0ZSh3KSB7CisgICAgcmV0dXJuIHcudHMuZGVmaW5pdGlvbigKKyAg
ICAgIHcudHMud3JhcChbCisgICAgICAgIHRoaXMuZXh0QXR0cnMud3JpdGUodyksCisgICAgICAg
IHcudG9rZW4odGhpcy50b2tlbnMuYmFzZSksCisgICAgICAgIHcubmFtZV90b2tlbih0aGlzLnRv
a2Vucy5uYW1lLCB7IGRhdGE6IHRoaXMgfSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMu
YXNzaWduKSwKKyAgICAgICAgdy50cy50eXBlKHRoaXMuaWRsVHlwZS53cml0ZSh3KSksCisgICAg
ICAgIHcudG9rZW4odGhpcy50b2tlbnMub3BlbiksCisgICAgICAgIC4uLnRoaXMuYXJndW1lbnRz
Lm1hcCgoYXJnKSA9PiBhcmcud3JpdGUodykpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5z
LmNsb3NlKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy50ZXJtaW5hdGlvbiksCisgICAg
ICBdKSwKKyAgICAgIHsgZGF0YTogdGhpcyB9CisgICAgKTsKKyAgfQogfQogCiAKIC8qKiovIH0p
LAogLyogMTkgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18s
IF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBh
Y2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+
IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBv
cnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJl
X18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiSW50ZXJmYWNlIiwgZnVuY3Rpb24oKSB7IHJldHVy
biBJbnRlcmZhY2U7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVf
Xy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIkludGVy
ZmFjZSI6ICgpID0+ICgvKiBiaW5kaW5nICovIEludGVyZmFjZSkKKy8qIGhhcm1vbnkgZXhwb3J0
ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9jb250YWluZXJfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjApOwogLyogaGFybW9u
eSBpbXBvcnQgKi8gdmFyIF9hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFf
XyA9IF9fd2VicGFja19yZXF1aXJlX18oMTQpOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9v
cGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1
aXJlX18oMTMpOwpAQCAtMjA5OSwzMSArMjU2MSwzNiBAQCBfX3dlYnBhY2tfcmVxdWlyZV9fLnIo
X193ZWJwYWNrX2V4cG9ydHNfXyk7CiBmdW5jdGlvbiBzdGF0aWNfbWVtYmVyKHRva2VuaXNlcikg
ewogICBjb25zdCBzcGVjaWFsID0gdG9rZW5pc2VyLmNvbnN1bWUoInN0YXRpYyIpOwogICBpZiAo
IXNwZWNpYWwpIHJldHVybjsKLSAgY29uc3QgbWVtYmVyID0gX2F0dHJpYnV0ZV9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fWyJBdHRyaWJ1dGUiXS5wYXJzZSh0b2tlbmlzZXIsIHsgc3Bl
Y2lhbCB9KSB8fAotICAgIF9vcGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJf
X1siT3BlcmF0aW9uIl0ucGFyc2UodG9rZW5pc2VyLCB7IHNwZWNpYWwgfSkgfHwKKyAgY29uc3Qg
bWVtYmVyID0KKyAgICBfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18u
QXR0cmlidXRlLnBhcnNlKHRva2VuaXNlciwgeyBzcGVjaWFsIH0pIHx8CisgICAgX29wZXJhdGlv
bl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLk9wZXJhdGlvbi5wYXJzZSh0b2tlbmlz
ZXIsIHsgc3BlY2lhbCB9KSB8fAogICAgIHRva2VuaXNlci5lcnJvcigiTm8gYm9keSBpbiBzdGF0
aWMgbWVtYmVyIik7CiAgIHJldHVybiBtZW1iZXI7CiB9CiAKLWNsYXNzIEludGVyZmFjZSBleHRl
bmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVy
Il0geworY2xhc3MgSW50ZXJmYWNlIGV4dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMF9fLkNvbnRhaW5lciB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgi
Li4vdG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCiAgIHN0YXRpYyBwYXJz
ZSh0b2tlbmlzZXIsIGJhc2UsIHsgcGFydGlhbCA9IG51bGwgfSA9IHt9KSB7CiAgICAgY29uc3Qg
dG9rZW5zID0geyBwYXJ0aWFsLCBiYXNlIH07Ci0gICAgcmV0dXJuIF9jb250YWluZXJfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0ucGFyc2UodG9rZW5pc2VyLCBu
ZXcgSW50ZXJmYWNlKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSksIHsKLSAg
ICAgIHR5cGU6ICJpbnRlcmZhY2UiLAotICAgICAgaW5oZXJpdGFibGU6ICFwYXJ0aWFsLAotICAg
ICAgYWxsb3dlZE1lbWJlcnM6IFsKLSAgICAgICAgW19jb25zdGFudF9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfM19fWyJDb25zdGFudCJdLnBhcnNlXSwKLSAgICAgICAgW19jb25zdHJ1Y3Rv
cl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fWyJDb25zdHJ1Y3RvciJdLnBhcnNlXSwK
LSAgICAgICAgW3N0YXRpY19tZW1iZXJdLAotICAgICAgICBbX2hlbHBlcnNfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzVfX1sic3RyaW5naWZpZXIiXV0sCi0gICAgICAgIFtfaXRlcmFibGVf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siSXRlcmFibGVMaWtlIl0ucGFyc2VdLAot
ICAgICAgICBbX2F0dHJpYnV0ZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJBdHRy
aWJ1dGUiXS5wYXJzZV0sCi0gICAgICAgIFtfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8yX19bIk9wZXJhdGlvbiJdLnBhcnNlXQotICAgICAgXQotICAgIH0pOworICAgIHJl
dHVybiBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18uQ29udGFpbmVy
LnBhcnNlKAorICAgICAgdG9rZW5pc2VyLAorICAgICAgbmV3IEludGVyZmFjZSh7IHNvdXJjZTog
dG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pLAorICAgICAgeworICAgICAgICB0eXBlOiAiaW50
ZXJmYWNlIiwKKyAgICAgICAgaW5oZXJpdGFibGU6ICFwYXJ0aWFsLAorICAgICAgICBhbGxvd2Vk
TWVtYmVyczogWworICAgICAgICAgIFtfY29uc3RhbnRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzNfXy5Db25zdGFudC5wYXJzZV0sCisgICAgICAgICAgW19jb25zdHJ1Y3Rvcl9qc19fV0VC
UEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLkNvbnN0cnVjdG9yLnBhcnNlXSwKKyAgICAgICAgICBb
c3RhdGljX21lbWJlcl0sCisgICAgICAgICAgW19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV81X18uc3RyaW5naWZpZXJdLAorICAgICAgICAgIFtfaXRlcmFibGVfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzRfXy5JdGVyYWJsZUxpa2UucGFyc2VdLAorICAgICAgICAgIFtf
YXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uQXR0cmlidXRlLnBhcnNl
XSwKKyAgICAgICAgICBbX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9f
Lk9wZXJhdGlvbi5wYXJzZV0sCisgICAgICAgIF0sCisgICAgICB9CisgICAgKTsKICAgfQogCiAg
IGdldCB0eXBlKCkgewpAQCAtMjEzNCw2NiArMjYwMSwxMDAgQEAgY2xhc3MgSW50ZXJmYWNlIGV4
dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWlu
ZXIiXQogICAgIHlpZWxkKiB0aGlzLmV4dEF0dHJzLnZhbGlkYXRlKGRlZnMpOwogICAgIGlmICgK
ICAgICAgICF0aGlzLnBhcnRpYWwgJiYKLSAgICAgIHRoaXMuZXh0QXR0cnMuZXZlcnkoZXh0QXR0
ciA9PiBleHRBdHRyLm5hbWUgIT09ICJFeHBvc2VkIikgJiYKLSAgICAgIHRoaXMuZXh0QXR0cnMu
ZXZlcnkoZXh0QXR0ciA9PiBleHRBdHRyLm5hbWUgIT09ICJMZWdhY3lOb0ludGVyZmFjZU9iamVj
dCIpCisgICAgICB0aGlzLmV4dEF0dHJzLmV2ZXJ5KChleHRBdHRyKSA9PiBleHRBdHRyLm5hbWUg
IT09ICJFeHBvc2VkIikKICAgICApIHsKICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgSW50ZXJmYWNl
cyBtdXN0IGhhdmUgXGBbRXhwb3NlZF1cYCBleHRlbmRlZCBhdHRyaWJ1dGUuIFwKIFRvIGZpeCwg
YWRkLCBmb3IgZXhhbXBsZSwgXGBbRXhwb3NlZD1XaW5kb3ddXGAuIFBsZWFzZSBhbHNvIGNvbnNp
ZGVyIGNhcmVmdWxseSBcCiBpZiB5b3VyIGludGVyZmFjZSBzaG91bGQgYWxzbyBiZSBleHBvc2Vk
IGluIGEgV29ya2VyIHNjb3BlLiBSZWZlciB0byB0aGUgXAogW1dlYklETCBzcGVjIHNlY3Rpb24g
b24gRXhwb3NlZF0oaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jRXhwb3NlZCkgXAog
Zm9yIG1vcmUgaW5mb3JtYXRpb24uYDsKLSAgICAgIHlpZWxkIE9iamVjdChfZXJyb3JfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1sidmFsaWRhdGlvbkVycm9yIl0pKHRoaXMudG9rZW5z
Lm5hbWUsIHRoaXMsICJyZXF1aXJlLWV4cG9zZWQiLCBtZXNzYWdlLCB7Ci0gICAgICAgIGF1dG9m
aXg6IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fWyJhdXRv
Zml4QWRkRXhwb3NlZFdpbmRvdyJdKSh0aGlzKQotICAgICAgfSk7CisgICAgICB5aWVsZCAoMCxf
ZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy52YWxpZGF0aW9uRXJyb3IpKAor
ICAgICAgICB0aGlzLnRva2Vucy5uYW1lLAorICAgICAgICB0aGlzLAorICAgICAgICAicmVxdWly
ZS1leHBvc2VkIiwKKyAgICAgICAgbWVzc2FnZSwKKyAgICAgICAgeworICAgICAgICAgIGF1dG9m
aXg6ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uYXV0b2ZpeEFk
ZEV4cG9zZWRXaW5kb3cpKHRoaXMpLAorICAgICAgICB9CisgICAgICApOwogICAgIH0KLSAgICBj
b25zdCBvbGRDb25zdHJ1Y3RvcnMgPSB0aGlzLmV4dEF0dHJzLmZpbHRlcihleHRBdHRyID0+IGV4
dEF0dHIubmFtZSA9PT0gIkNvbnN0cnVjdG9yIik7CisgICAgY29uc3Qgb2xkQ29uc3RydWN0b3Jz
ID0gdGhpcy5leHRBdHRycy5maWx0ZXIoCisgICAgICAoZXh0QXR0cikgPT4gZXh0QXR0ci5uYW1l
ID09PSAiQ29uc3RydWN0b3IiCisgICAgKTsKICAgICBmb3IgKGNvbnN0IGNvbnN0cnVjdG9yIG9m
IG9sZENvbnN0cnVjdG9ycykgewogICAgICAgY29uc3QgbWVzc2FnZSA9IGBDb25zdHJ1Y3RvcnMg
c2hvdWxkIG5vdyBiZSByZXByZXNlbnRlZCBhcyBhIFxgY29uc3RydWN0b3IoKVxgIG9wZXJhdGlv
biBvbiB0aGUgaW50ZXJmYWNlIFwKIGluc3RlYWQgb2YgXGBbQ29uc3RydWN0b3JdXGAgZXh0ZW5k
ZWQgYXR0cmlidXRlLiBSZWZlciB0byB0aGUgXAogW1dlYklETCBzcGVjIHNlY3Rpb24gb24gY29u
c3RydWN0b3Igb3BlcmF0aW9uc10oaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jaWRs
LWNvbnN0cnVjdG9ycykgXAogZm9yIG1vcmUgaW5mb3JtYXRpb24uYDsKLSAgICAgIHlpZWxkIE9i
amVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1sidmFsaWRhdGlvbkVy
cm9yIl0pKGNvbnN0cnVjdG9yLnRva2Vucy5uYW1lLCB0aGlzLCAiY29uc3RydWN0b3ItbWVtYmVy
IiwgbWVzc2FnZSwgewotICAgICAgICBhdXRvZml4OiBhdXRvZml4Q29uc3RydWN0b3IodGhpcywg
Y29uc3RydWN0b3IpCi0gICAgICB9KTsKKyAgICAgIHlpZWxkICgwLF9lcnJvcl9qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfNl9fLnZhbGlkYXRpb25FcnJvcikoCisgICAgICAgIGNvbnN0cnVj
dG9yLnRva2Vucy5uYW1lLAorICAgICAgICB0aGlzLAorICAgICAgICAiY29uc3RydWN0b3ItbWVt
YmVyIiwKKyAgICAgICAgbWVzc2FnZSwKKyAgICAgICAgeworICAgICAgICAgIGF1dG9maXg6IGF1
dG9maXhDb25zdHJ1Y3Rvcih0aGlzLCBjb25zdHJ1Y3RvciksCisgICAgICAgIH0KKyAgICAgICk7
CiAgICAgfQogCi0gICAgY29uc3QgaXNHbG9iYWwgPSB0aGlzLmV4dEF0dHJzLnNvbWUoZXh0QXR0
ciA9PiBleHRBdHRyLm5hbWUgPT09ICJHbG9iYWwiKTsKKyAgICBjb25zdCBpc0dsb2JhbCA9IHRo
aXMuZXh0QXR0cnMuc29tZSgoZXh0QXR0cikgPT4gZXh0QXR0ci5uYW1lID09PSAiR2xvYmFsIik7
CiAgICAgaWYgKGlzR2xvYmFsKSB7Ci0gICAgICBjb25zdCBmYWN0b3J5RnVuY3Rpb25zID0gdGhp
cy5leHRBdHRycy5maWx0ZXIoZXh0QXR0ciA9PiBleHRBdHRyLm5hbWUgPT09ICJMZWdhY3lGYWN0
b3J5RnVuY3Rpb24iKTsKKyAgICAgIGNvbnN0IGZhY3RvcnlGdW5jdGlvbnMgPSB0aGlzLmV4dEF0
dHJzLmZpbHRlcigKKyAgICAgICAgKGV4dEF0dHIpID0+IGV4dEF0dHIubmFtZSA9PT0gIkxlZ2Fj
eUZhY3RvcnlGdW5jdGlvbiIKKyAgICAgICk7CiAgICAgICBmb3IgKGNvbnN0IG5hbWVkIG9mIGZh
Y3RvcnlGdW5jdGlvbnMpIHsKICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBJbnRlcmZhY2VzIG1h
cmtlZCBhcyBcYFtHbG9iYWxdXGAgY2Fubm90IGhhdmUgZmFjdG9yeSBmdW5jdGlvbnMuYDsKLSAg
ICAgICAgeWllbGQgT2JqZWN0KF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9f
WyJ2YWxpZGF0aW9uRXJyb3IiXSkobmFtZWQudG9rZW5zLm5hbWUsIHRoaXMsICJuby1jb25zdHJ1
Y3RpYmxlLWdsb2JhbCIsIG1lc3NhZ2UpOworICAgICAgICB5aWVsZCAoMCxfZXJyb3JfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfXy52YWxpZGF0aW9uRXJyb3IpKAorICAgICAgICAgIG5h
bWVkLnRva2Vucy5uYW1lLAorICAgICAgICAgIHRoaXMsCisgICAgICAgICAgIm5vLWNvbnN0cnVj
dGlibGUtZ2xvYmFsIiwKKyAgICAgICAgICBtZXNzYWdlCisgICAgICAgICk7CiAgICAgICB9CiAK
LSAgICAgIGNvbnN0IGNvbnN0cnVjdG9ycyA9IHRoaXMubWVtYmVycy5maWx0ZXIobWVtYmVyID0+
IG1lbWJlci50eXBlID09PSAiY29uc3RydWN0b3IiKTsKKyAgICAgIGNvbnN0IGNvbnN0cnVjdG9y
cyA9IHRoaXMubWVtYmVycy5maWx0ZXIoCisgICAgICAgIChtZW1iZXIpID0+IG1lbWJlci50eXBl
ID09PSAiY29uc3RydWN0b3IiCisgICAgICApOwogICAgICAgZm9yIChjb25zdCBuYW1lZCBvZiBj
b25zdHJ1Y3RvcnMpIHsKICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBJbnRlcmZhY2VzIG1hcmtl
ZCBhcyBcYFtHbG9iYWxdXGAgY2Fubm90IGhhdmUgY29uc3RydWN0b3JzLmA7Ci0gICAgICAgIHlp
ZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1sidmFsaWRh
dGlvbkVycm9yIl0pKG5hbWVkLnRva2Vucy5iYXNlLCB0aGlzLCAibm8tY29uc3RydWN0aWJsZS1n
bG9iYWwiLCBtZXNzYWdlKTsKKyAgICAgICAgeWllbGQgKDAsX2Vycm9yX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV82X18udmFsaWRhdGlvbkVycm9yKSgKKyAgICAgICAgICBuYW1lZC50b2tl
bnMuYmFzZSwKKyAgICAgICAgICB0aGlzLAorICAgICAgICAgICJuby1jb25zdHJ1Y3RpYmxlLWds
b2JhbCIsCisgICAgICAgICAgbWVzc2FnZQorICAgICAgICApOwogICAgICAgfQogICAgIH0KIAog
ICAgIHlpZWxkKiBzdXBlci52YWxpZGF0ZShkZWZzKTsKICAgICBpZiAoIXRoaXMucGFydGlhbCkg
ewotICAgICAgeWllbGQqIE9iamVjdChfdmFsaWRhdG9yc19pbnRlcmZhY2VfanNfX1dFQlBBQ0tf
SU1QT1JURURfTU9EVUxFXzdfX1siY2hlY2tJbnRlcmZhY2VNZW1iZXJEdXBsaWNhdGlvbiJdKShk
ZWZzLCB0aGlzKTsKKyAgICAgIHlpZWxkKiAoMCxfdmFsaWRhdG9yc19pbnRlcmZhY2VfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfXy5jaGVja0ludGVyZmFjZU1lbWJlckR1cGxpY2F0aW9u
KShkZWZzLCB0aGlzKTsKICAgICB9CiAgIH0KIH0KIAogZnVuY3Rpb24gYXV0b2ZpeENvbnN0cnVj
dG9yKGludGVyZmFjZURlZiwgY29uc3RydWN0b3JFeHRBdHRyKSB7Ci0gIGludGVyZmFjZURlZiA9
IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fWyJhdXRvUGFy
ZW50ZXIiXSkoaW50ZXJmYWNlRGVmKTsKKyAgaW50ZXJmYWNlRGVmID0gKDAsX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfXy5hdXRvUGFyZW50ZXIpKGludGVyZmFjZURlZik7
CiAgIHJldHVybiAoKSA9PiB7Ci0gICAgY29uc3QgaW5kZW50YXRpb24gPSBPYmplY3QoX2hlbHBl
cnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1siZ2V0TGFzdEluZGVudGF0aW9uIl0p
KGludGVyZmFjZURlZi5leHRBdHRycy50b2tlbnMub3Blbi50cml2aWEpOwotICAgIGNvbnN0IG1l
bWJlckluZGVudCA9IGludGVyZmFjZURlZi5tZW1iZXJzLmxlbmd0aCA/Ci0gICAgICBPYmplY3Qo
X2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1siZ2V0TGFzdEluZGVudGF0
aW9uIl0pKE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fWyJn
ZXRGaXJzdFRva2VuIl0pKGludGVyZmFjZURlZi5tZW1iZXJzWzBdKS50cml2aWEpIDoKLSAgICAg
IE9iamVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fWyJnZXRNZW1i
ZXJJbmRlbnRhdGlvbiJdKShpbmRlbnRhdGlvbik7Ci0gICAgY29uc3QgY29uc3RydWN0b3JPcCA9
IF9jb25zdHJ1Y3Rvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fWyJDb25zdHJ1Y3Rv
ciJdLnBhcnNlKG5ldyBfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X19b
IlRva2VuaXNlciJdKGBcbiR7bWVtYmVySW5kZW50fWNvbnN0cnVjdG9yKCk7YCkpOwotICAgIGNv
bnN0cnVjdG9yT3AuZXh0QXR0cnMgPSBuZXcgX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzEwX19bIkV4dGVuZGVkQXR0cmlidXRlcyJdKHt9KTsKLSAgICBP
YmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1siYXV0b1BhcmVu
dGVyIl0pKGNvbnN0cnVjdG9yT3ApLmFyZ3VtZW50cyA9IGNvbnN0cnVjdG9yRXh0QXR0ci5hcmd1
bWVudHM7Ci0KLSAgICBjb25zdCBleGlzdGluZ0luZGV4ID0gT2JqZWN0KF9oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19bImZpbmRMYXN0SW5kZXgiXSkoaW50ZXJmYWNlRGVm
Lm1lbWJlcnMsIG0gPT4gbS50eXBlID09PSAiY29uc3RydWN0b3IiKTsKKyAgICBjb25zdCBpbmRl
bnRhdGlvbiA9ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZ2V0
TGFzdEluZGVudGF0aW9uKSgKKyAgICAgIGludGVyZmFjZURlZi5leHRBdHRycy50b2tlbnMub3Bl
bi50cml2aWEKKyAgICApOworICAgIGNvbnN0IG1lbWJlckluZGVudCA9IGludGVyZmFjZURlZi5t
ZW1iZXJzLmxlbmd0aAorICAgICAgPyAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9N
T0RVTEVfNV9fLmdldExhc3RJbmRlbnRhdGlvbikoKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzVfXy5nZXRGaXJzdFRva2VuKShpbnRlcmZhY2VEZWYubWVtYmVyc1swXSku
dHJpdmlhKQorICAgICAgOiAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
NV9fLmdldE1lbWJlckluZGVudGF0aW9uKShpbmRlbnRhdGlvbik7CisgICAgY29uc3QgY29uc3Ry
dWN0b3JPcCA9IF9jb25zdHJ1Y3Rvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fLkNv
bnN0cnVjdG9yLnBhcnNlKAorICAgICAgbmV3IF90b2tlbmlzZXJfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzlfXy5Ub2tlbmlzZXIoYFxuJHttZW1iZXJJbmRlbnR9Y29uc3RydWN0b3IoKTtg
KQorICAgICk7CisgICAgY29uc3RydWN0b3JPcC5leHRBdHRycyA9IG5ldyBfZXh0ZW5kZWRfYXR0
cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfXy5FeHRlbmRlZEF0dHJpYnV0
ZXMoe30pOworICAgICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18u
YXV0b1BhcmVudGVyKShjb25zdHJ1Y3Rvck9wKS5hcmd1bWVudHMgPSBjb25zdHJ1Y3RvckV4dEF0
dHIuYXJndW1lbnRzOworCisgICAgY29uc3QgZXhpc3RpbmdJbmRleCA9ICgwLF9oZWxwZXJzX2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uZmluZExhc3RJbmRleCkoCisgICAgICBpbnRl
cmZhY2VEZWYubWVtYmVycywKKyAgICAgIChtKSA9PiBtLnR5cGUgPT09ICJjb25zdHJ1Y3RvciIK
KyAgICApOwogICAgIGludGVyZmFjZURlZi5tZW1iZXJzLnNwbGljZShleGlzdGluZ0luZGV4ICsg
MSwgMCwgY29uc3RydWN0b3JPcCk7CiAKLSAgICBjb25zdCB7IGNsb3NlIH0gID0gaW50ZXJmYWNl
RGVmLnRva2VuczsKKyAgICBjb25zdCB7IGNsb3NlIH0gPSBpbnRlcmZhY2VEZWYudG9rZW5zOwog
ICAgIGlmICghY2xvc2UudHJpdmlhLmluY2x1ZGVzKCJcbiIpKSB7CiAgICAgICBjbG9zZS50cml2
aWEgKz0gYFxuJHtpbmRlbnRhdGlvbn1gOwogICAgIH0KQEAgLTIyMTQsMTEgKzI3MTUsMTIgQEAg
ZnVuY3Rpb24gYXV0b2ZpeENvbnN0cnVjdG9yKGludGVyZmFjZURlZiwgY29uc3RydWN0b3JFeHRB
dHRyKSB7CiAKIC8qKiovIH0pLAogLyogMjAgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9f
d2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVz
ZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2Vi
cGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVf
Xy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICov
IF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQ29udGFpbmVyIiwg
ZnVuY3Rpb24oKSB7IHJldHVybiBDb250YWluZXI7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8g
X193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkg
ZXhwb3J0ICovICAgIkNvbnRhaW5lciI6ICgpID0+ICgvKiBiaW5kaW5nICovIENvbnRhaW5lcikK
Ky8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYp
OwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDgpOwogLyogaGFy
bW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8y
X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwpAQCAtMjIzNCw3OSArMjczNiwxMTkgQEAgZnVu
Y3Rpb24gaW5oZXJpdGFuY2UodG9rZW5pc2VyKSB7CiAgIGlmICghY29sb24pIHsKICAgICByZXR1
cm4ge307CiAgIH0KLSAgY29uc3QgaW5oZXJpdGFuY2UgPSB0b2tlbmlzZXIuY29uc3VtZSgiaWRl
bnRpZmllciIpIHx8IHRva2VuaXNlci5lcnJvcigiSW5oZXJpdGFuY2UgbGFja3MgYSB0eXBlIik7
CisgIGNvbnN0IGluaGVyaXRhbmNlID0KKyAgICB0b2tlbmlzZXIuY29uc3VtZVR5cGUoImlkZW50
aWZpZXIiKSB8fAorICAgIHRva2VuaXNlci5lcnJvcigiSW5oZXJpdGFuY2UgbGFja3MgYSB0eXBl
Iik7CiAgIHJldHVybiB7IGNvbG9uLCBpbmhlcml0YW5jZSB9OwogfQogCi1jbGFzcyBDb250YWlu
ZXIgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJCYXNlIl0g
ewotICAgIC8qKgotICAgICAqIEB0ZW1wbGF0ZSBUCi0gICAgICogQHBhcmFtIHtpbXBvcnQoIi4u
L3Rva2VuaXNlci5qcyIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCi0gICAgICogQHBhcmFtIHtUfSBp
bnN0YW5jZQotICAgICAqIEBwYXJhbSB7Kn0gYXJncwotICAgICAqLwotICAgIHN0YXRpYyBwYXJz
ZSh0b2tlbmlzZXIsIGluc3RhbmNlLCB7IHR5cGUsIGluaGVyaXRhYmxlLCBhbGxvd2VkTWVtYmVy
cyB9KSB7Ci0gICAgICBjb25zdCB7IHRva2VucyB9ID0gaW5zdGFuY2U7Ci0gICAgICB0b2tlbnMu
bmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIikgfHwgdG9rZW5pc2VyLmVycm9y
KGBNaXNzaW5nIG5hbWUgaW4gJHtpbnN0YW5jZS50eXBlfWApOwotICAgICAgdG9rZW5pc2VyLmN1
cnJlbnQgPSBpbnN0YW5jZTsKLSAgICAgIGluc3RhbmNlID0gT2JqZWN0KF9oZWxwZXJzX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bImF1dG9QYXJlbnRlciJdKShpbnN0YW5jZSk7Ci0g
ICAgICBpZiAoaW5oZXJpdGFibGUpIHsKLSAgICAgICAgT2JqZWN0LmFzc2lnbih0b2tlbnMsIGlu
aGVyaXRhbmNlKHRva2VuaXNlcikpOworY2xhc3MgQ29udGFpbmVyIGV4dGVuZHMgX2Jhc2VfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5CYXNlIHsKKyAgLyoqCisgICAqIEB0ZW1wbGF0
ZSBUCisgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIuanMiKS5Ub2tlbmlzZXJ9IHRv
a2VuaXNlcgorICAgKiBAcGFyYW0ge1R9IGluc3RhbmNlCisgICAqIEBwYXJhbSB7Kn0gYXJncwor
ICAgKi8KKyAgc3RhdGljIHBhcnNlKHRva2VuaXNlciwgaW5zdGFuY2UsIHsgdHlwZSwgaW5oZXJp
dGFibGUsIGFsbG93ZWRNZW1iZXJzIH0pIHsKKyAgICBjb25zdCB7IHRva2VucyB9ID0gaW5zdGFu
Y2U7CisgICAgdG9rZW5zLm5hbWUgPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWVUeXBlKCJpZGVu
dGlmaWVyIikgfHwKKyAgICAgIHRva2VuaXNlci5lcnJvcihgTWlzc2luZyBuYW1lIGluICR7aW5z
dGFuY2UudHlwZX1gKTsKKyAgICB0b2tlbmlzZXIuY3VycmVudCA9IGluc3RhbmNlOworICAgIGlu
c3RhbmNlID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5hdXRv
UGFyZW50ZXIpKGluc3RhbmNlKTsKKyAgICBpZiAoaW5oZXJpdGFibGUpIHsKKyAgICAgIE9iamVj
dC5hc3NpZ24odG9rZW5zLCBpbmhlcml0YW5jZSh0b2tlbmlzZXIpKTsKKyAgICB9CisgICAgdG9r
ZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgieyIpIHx8IHRva2VuaXNlci5lcnJvcihgQm9k
eWxlc3MgJHt0eXBlfWApOworICAgIGluc3RhbmNlLm1lbWJlcnMgPSBbXTsKKyAgICB3aGlsZSAo
dHJ1ZSkgeworICAgICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIn0iKTsKKyAg
ICAgIGlmICh0b2tlbnMuY2xvc2UpIHsKKyAgICAgICAgdG9rZW5zLnRlcm1pbmF0aW9uID0KKyAg
ICAgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8CisgICAgICAgICAgdG9rZW5pc2VyLmVy
cm9yKGBNaXNzaW5nIHNlbWljb2xvbiBhZnRlciAke3R5cGV9YCk7CisgICAgICAgIHJldHVybiBp
bnN0YW5jZS50aGlzOwogICAgICAgfQotICAgICAgdG9rZW5zLm9wZW4gPSB0b2tlbmlzZXIuY29u
c3VtZSgieyIpIHx8IHRva2VuaXNlci5lcnJvcihgQm9keWxlc3MgJHt0eXBlfWApOwotICAgICAg
aW5zdGFuY2UubWVtYmVycyA9IFtdOwotICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgdG9r
ZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIn0iKTsKLSAgICAgICAgaWYgKHRva2Vucy5j
bG9zZSkgewotICAgICAgICAgIHRva2Vucy50ZXJtaW5hdGlvbiA9IHRva2VuaXNlci5jb25zdW1l
KCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIHNlbWljb2xvbiBhZnRlciAke3R5cGV9
YCk7Ci0gICAgICAgICAgcmV0dXJuIGluc3RhbmNlLnRoaXM7Ci0gICAgICAgIH0KLSAgICAgICAg
Y29uc3QgZWEgPSBfZXh0ZW5kZWRfYXR0cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMV9fWyJFeHRlbmRlZEF0dHJpYnV0ZXMiXS5wYXJzZSh0b2tlbmlzZXIpOwotICAgICAgICBs
ZXQgbWVtOwotICAgICAgICBmb3IgKGNvbnN0IFtwYXJzZXIsIC4uLmFyZ3NdIG9mIGFsbG93ZWRN
ZW1iZXJzKSB7Ci0gICAgICAgICAgbWVtID0gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8yX19bImF1dG9QYXJlbnRlciJdKShwYXJzZXIodG9rZW5pc2VyLCAuLi5h
cmdzKSk7Ci0gICAgICAgICAgaWYgKG1lbSkgewotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmICghbWVtKSB7Ci0gICAgICAgICAgdG9rZW5pc2Vy
LmVycm9yKCJVbmtub3duIG1lbWJlciIpOworICAgICAgY29uc3QgZWEgPSBfZXh0ZW5kZWRfYXR0
cmlidXRlc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLkV4dGVuZGVkQXR0cmlidXRl
cy5wYXJzZSh0b2tlbmlzZXIpOworICAgICAgbGV0IG1lbTsKKyAgICAgIGZvciAoY29uc3QgW3Bh
cnNlciwgLi4uYXJnc10gb2YgYWxsb3dlZE1lbWJlcnMpIHsKKyAgICAgICAgbWVtID0gKDAsX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5hdXRvUGFyZW50ZXIpKHBhcnNl
cih0b2tlbmlzZXIsIC4uLmFyZ3MpKTsKKyAgICAgICAgaWYgKG1lbSkgeworICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9Ci0gICAgICAgIG1lbS5leHRBdHRycyA9IGVhOwotICAgICAgICBpbnN0
YW5jZS5tZW1iZXJzLnB1c2gobWVtLnRoaXMpOwogICAgICAgfQorICAgICAgaWYgKCFtZW0pIHsK
KyAgICAgICAgdG9rZW5pc2VyLmVycm9yKCJVbmtub3duIG1lbWJlciIpOworICAgICAgfQorICAg
ICAgbWVtLmV4dEF0dHJzID0gZWE7CisgICAgICBpbnN0YW5jZS5tZW1iZXJzLnB1c2gobWVtLnRo
aXMpOwogICAgIH0KKyAgfQogCi0gICAgZ2V0IHBhcnRpYWwoKSB7Ci0gICAgICByZXR1cm4gISF0
aGlzLnRva2Vucy5wYXJ0aWFsOwotICAgIH0KLSAgICBnZXQgbmFtZSgpIHsKLSAgICAgIHJldHVy
biBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1sidW5lc2Nh
cGUiXSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7CisgIGdldCBwYXJ0aWFsKCkgeworICAgIHJl
dHVybiAhIXRoaXMudG9rZW5zLnBhcnRpYWw7CisgIH0KKyAgZ2V0IG5hbWUoKSB7CisgICAgcmV0
dXJuICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18udW5lc2NhcGUp
KHRoaXMudG9rZW5zLm5hbWUudmFsdWUpOworICB9CisgIGdldCBpbmhlcml0YW5jZSgpIHsKKyAg
ICBpZiAoIXRoaXMudG9rZW5zLmluaGVyaXRhbmNlKSB7CisgICAgICByZXR1cm4gbnVsbDsKICAg
ICB9Ci0gICAgZ2V0IGluaGVyaXRhbmNlKCkgewotICAgICAgaWYgKCF0aGlzLnRva2Vucy5pbmhl
cml0YW5jZSkgewotICAgICAgICByZXR1cm4gbnVsbDsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy51bmVzY2FwZSkodGhpcy50b2tlbnMuaW5o
ZXJpdGFuY2UudmFsdWUpOworICB9CisKKyAgKnZhbGlkYXRlKGRlZnMpIHsKKyAgICBmb3IgKGNv
bnN0IG1lbWJlciBvZiB0aGlzLm1lbWJlcnMpIHsKKyAgICAgIGlmIChtZW1iZXIudmFsaWRhdGUp
IHsKKyAgICAgICAgeWllbGQqIG1lbWJlci52YWxpZGF0ZShkZWZzKTsKICAgICAgIH0KLSAgICAg
IHJldHVybiBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1si
dW5lc2NhcGUiXSkodGhpcy50b2tlbnMuaW5oZXJpdGFuY2UudmFsdWUpOwogICAgIH0KKyAgfQog
Ci0gICAgKnZhbGlkYXRlKGRlZnMpIHsKLSAgICAgIGZvciAoY29uc3QgbWVtYmVyIG9mIHRoaXMu
bWVtYmVycykgewotICAgICAgICBpZiAobWVtYmVyLnZhbGlkYXRlKSB7Ci0gICAgICAgICAgeWll
bGQqIG1lbWJlci52YWxpZGF0ZShkZWZzKTsKLSAgICAgICAgfQorICAvKiogQHBhcmFtIHtpbXBv
cnQoIi4uL3dyaXRlci5qcyIpLldyaXRlcn0gdyAqLworICB3cml0ZSh3KSB7CisgICAgY29uc3Qg
aW5oZXJpdGFuY2UgPSAoKSA9PiB7CisgICAgICBpZiAoIXRoaXMudG9rZW5zLmluaGVyaXRhbmNl
KSB7CisgICAgICAgIHJldHVybiAiIjsKICAgICAgIH0KLSAgICB9CisgICAgICByZXR1cm4gdy50
cy53cmFwKFsKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5jb2xvbiksCisgICAgICAgIHcu
dHMudHJpdmlhKHRoaXMudG9rZW5zLmluaGVyaXRhbmNlLnRyaXZpYSksCisgICAgICAgIHcudHMu
aW5oZXJpdGFuY2UoCisgICAgICAgICAgdy5yZWZlcmVuY2UodGhpcy50b2tlbnMuaW5oZXJpdGFu
Y2UudmFsdWUsIHsgY29udGV4dDogdGhpcyB9KQorICAgICAgICApLAorICAgICAgXSk7CisgICAg
fTsKKworICAgIHJldHVybiB3LnRzLmRlZmluaXRpb24oCisgICAgICB3LnRzLndyYXAoWworICAg
ICAgICB0aGlzLmV4dEF0dHJzLndyaXRlKHcpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5z
LmNhbGxiYWNrKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5wYXJ0aWFsKSwKKyAgICAg
ICAgdy50b2tlbih0aGlzLnRva2Vucy5iYXNlKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vu
cy5taXhpbiksCisgICAgICAgIHcubmFtZV90b2tlbih0aGlzLnRva2Vucy5uYW1lLCB7IGRhdGE6
IHRoaXMgfSksCisgICAgICAgIGluaGVyaXRhbmNlKCksCisgICAgICAgIHcudG9rZW4odGhpcy50
b2tlbnMub3BlbiksCisgICAgICAgIHcudHMud3JhcCh0aGlzLm1lbWJlcnMubWFwKChtKSA9PiBt
LndyaXRlKHcpKSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuY2xvc2UpLAorICAgICAg
ICB3LnRva2VuKHRoaXMudG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAgICAgIF0pLAorICAgICAgeyBk
YXRhOiB0aGlzIH0KKyAgICApOwogICB9Cit9CiAKIAogLyoqKi8gfSksCiAvKiAyMSAqLwotLyoq
Ki8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVp
cmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193
ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmlj
dCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJt
b255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19l
eHBvcnRzX18sICJDb25zdGFudCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gQ29uc3RhbnQ7IH0pOwor
LyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBv
cnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIkNvbnN0YW50IjogKCkgPT4gKC8qIGJp
bmRpbmcgKi8gQ29uc3RhbnQpCisvKiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193
ZWJwYWNrX3JlcXVpcmVfXyg2KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfdHlwZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1KTsKIC8q
IGhhcm1vbnkgaW1wb3J0ICovIHZhciBfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTsKQEAgLTIzMTQsNyArMjg1Niw3IEBAIF9f
d2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAogCiAKLWNsYXNzIENv
bnN0YW50IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFz
ZSJdIHsKK2NsYXNzIENvbnN0YW50IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfXy5CYXNlIHsKICAgLyoqCiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlz
ZXIuanMiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgogICAgKi8KQEAgLTIzMjUsMjEgKzI4NjcsMjkg
QEAgY2xhc3MgQ29uc3RhbnQgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fWyJCYXNlIl0gewogICAgIGlmICghdG9rZW5zLmJhc2UpIHsKICAgICAgIHJldHVybjsK
ICAgICB9Ci0gICAgbGV0IGlkbFR5cGUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzJfX1sicHJpbWl0aXZlX3R5cGUiXSkodG9rZW5pc2VyKTsKKyAgICBsZXQg
aWRsVHlwZSA9ICgwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18ucHJp
bWl0aXZlX3R5cGUpKHRva2VuaXNlcik7CiAgICAgaWYgKCFpZGxUeXBlKSB7Ci0gICAgICBjb25z
dCBiYXNlID0gdG9rZW5pc2VyLmNvbnN1bWUoImlkZW50aWZpZXIiKSB8fCB0b2tlbmlzZXIuZXJy
b3IoIkNvbnN0IGxhY2tzIGEgdHlwZSIpOwotICAgICAgaWRsVHlwZSA9IG5ldyBfdHlwZV9qc19f
V0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJUeXBlIl0oeyBzb3VyY2U6IHRva2VuaXNlci5z
b3VyY2UsIHRva2VuczogeyBiYXNlIH0gfSk7CisgICAgICBjb25zdCBiYXNlID0KKyAgICAgICAg
dG9rZW5pc2VyLmNvbnN1bWVUeXBlKCJpZGVudGlmaWVyIikgfHwKKyAgICAgICAgdG9rZW5pc2Vy
LmVycm9yKCJDb25zdCBsYWNrcyBhIHR5cGUiKTsKKyAgICAgIGlkbFR5cGUgPSBuZXcgX3R5cGVf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5UeXBlKHsgc291cmNlOiB0b2tlbmlzZXIu
c291cmNlLCB0b2tlbnM6IHsgYmFzZSB9IH0pOwogICAgIH0KICAgICBpZiAodG9rZW5pc2VyLnBy
b2JlKCI/IikpIHsKICAgICAgIHRva2VuaXNlci5lcnJvcigiVW5leHBlY3RlZCBudWxsYWJsZSBj
b25zdGFudCB0eXBlIik7CiAgICAgfQogICAgIGlkbFR5cGUudHlwZSA9ICJjb25zdC10eXBlIjsK
LSAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlmaWVyIikgfHwgdG9r
ZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyBhIG5hbWUiKTsKLSAgICB0b2tlbnMuYXNzaWduID0g
dG9rZW5pc2VyLmNvbnN1bWUoIj0iKSB8fCB0b2tlbmlzZXIuZXJyb3IoIkNvbnN0IGxhY2tzIHZh
bHVlIGFzc2lnbm1lbnQiKTsKLSAgICB0b2tlbnMudmFsdWUgPSBPYmplY3QoX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1siY29uc3RfdmFsdWUiXSkodG9rZW5pc2VyKSB8
fCB0b2tlbmlzZXIuZXJyb3IoIkNvbnN0IGxhY2tzIGEgdmFsdWUiKTsKLSAgICB0b2tlbnMudGVy
bWluYXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50
ZXJtaW5hdGVkIGNvbnN0LCBleHBlY3RlZCBgO2AiKTsKKyAgICB0b2tlbnMubmFtZSA9CisgICAg
ICB0b2tlbmlzZXIuY29uc3VtZVR5cGUoImlkZW50aWZpZXIiKSB8fAorICAgICAgdG9rZW5pc2Vy
LmVycm9yKCJDb25zdCBsYWNrcyBhIG5hbWUiKTsKKyAgICB0b2tlbnMuYXNzaWduID0KKyAgICAg
IHRva2VuaXNlci5jb25zdW1lKCI9IikgfHwgdG9rZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyB2
YWx1ZSBhc3NpZ25tZW50Iik7CisgICAgdG9rZW5zLnZhbHVlID0KKyAgICAgICgwLF9oZWxwZXJz
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uY29uc3RfdmFsdWUpKHRva2VuaXNlcikg
fHwgdG9rZW5pc2VyLmVycm9yKCJDb25zdCBsYWNrcyBhIHZhbHVlIik7CisgICAgdG9rZW5zLnRl
cm1pbmF0aW9uID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwKKyAgICAgIHRva2Vu
aXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGNvbnN0LCBleHBlY3RlZCBgO2AiKTsKICAgICBjb25z
dCByZXQgPSBuZXcgQ29uc3RhbnQoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9
KTsKLSAgICBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1si
YXV0b1BhcmVudGVyIl0pKHJldCkuaWRsVHlwZSA9IGlkbFR5cGU7CisgICAgKDAsX2hlbHBlcnNf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXy5hdXRvUGFyZW50ZXIpKHJldCkuaWRsVHlw
ZSA9IGlkbFR5cGU7CiAgICAgcmV0dXJuIHJldDsKICAgfQogCkBAIC0yMzQ3LDQyICsyODk3LDYz
IEBAIGNsYXNzIENvbnN0YW50IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfX1siQmFzZSJdIHsKICAgICByZXR1cm4gImNvbnN0IjsKICAgfQogICBnZXQgbmFtZSgp
IHsKLSAgICByZXR1cm4gT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8yX19bInVuZXNjYXBlIl0pKHRoaXMudG9rZW5zLm5hbWUudmFsdWUpOworICAgIHJldHVybiAo
MCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fLnVuZXNjYXBlKSh0aGlz
LnRva2Vucy5uYW1lLnZhbHVlKTsKICAgfQogICBnZXQgdmFsdWUoKSB7Ci0gICAgcmV0dXJuIE9i
amVjdChfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fWyJjb25zdF9kYXRh
Il0pKHRoaXMudG9rZW5zLnZhbHVlKTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzJfXy5jb25zdF9kYXRhKSh0aGlzLnRva2Vucy52YWx1ZSk7Cisg
IH0KKworICAvKiogQHBhcmFtIHtpbXBvcnQoIi4uL3dyaXRlci5qcyIpLldyaXRlcn0gdyAqLwor
ICB3cml0ZSh3KSB7CisgICAgY29uc3QgeyBwYXJlbnQgfSA9IHRoaXM7CisgICAgcmV0dXJuIHcu
dHMuZGVmaW5pdGlvbigKKyAgICAgIHcudHMud3JhcChbCisgICAgICAgIHRoaXMuZXh0QXR0cnMu
d3JpdGUodyksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuYmFzZSksCisgICAgICAgIHcu
dHMudHlwZSh0aGlzLmlkbFR5cGUud3JpdGUodykpLAorICAgICAgICB3Lm5hbWVfdG9rZW4odGhp
cy50b2tlbnMubmFtZSwgeyBkYXRhOiB0aGlzLCBwYXJlbnQgfSksCisgICAgICAgIHcudG9rZW4o
dGhpcy50b2tlbnMuYXNzaWduKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy52YWx1ZSks
CisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMudGVybWluYXRpb24pLAorICAgICAgXSksCisg
ICAgICB7IGRhdGE6IHRoaXMsIHBhcmVudCB9CisgICAgKTsKICAgfQogfQogCiAKIC8qKiovIH0p
LAogLyogMjIgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18s
IF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBh
Y2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+
IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBv
cnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJl
X18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiSXRlcmFibGVMaWtlIiwgZnVuY3Rpb24oKSB7IHJl
dHVybiBJdGVyYWJsZUxpa2U7IH0pOworLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNrX3Jl
cXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAg
Ikl0ZXJhYmxlTGlrZSI6ICgpID0+ICgvKiBiaW5kaW5nICovIEl0ZXJhYmxlTGlrZSkKKy8qIGhh
cm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9iYXNlX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOwogLyog
aGFybW9ueSBpbXBvcnQgKi8gdmFyIF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwogCiAKIAotY2xhc3MgSXRlcmFibGVMaWtl
IGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsK
K2NsYXNzIEl0ZXJhYmxlTGlrZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01P
RFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4vdG9rZW5pc2Vy
LmpzIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCiAgIHN0YXRpYyBwYXJzZSh0b2tlbmlz
ZXIpIHsKICAgICBjb25zdCBzdGFydF9wb3NpdGlvbiA9IHRva2VuaXNlci5wb3NpdGlvbjsKICAg
ICBjb25zdCB0b2tlbnMgPSB7fTsKLSAgICBjb25zdCByZXQgPSBPYmplY3QoX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siYXV0b1BhcmVudGVyIl0pKG5ldyBJdGVyYWJs
ZUxpa2UoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSk7CisgICAgY29uc3Qg
cmV0ID0gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5hdXRvUGFy
ZW50ZXIpKAorICAgICAgbmV3IEl0ZXJhYmxlTGlrZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJj
ZSwgdG9rZW5zIH0pCisgICAgKTsKICAgICB0b2tlbnMucmVhZG9ubHkgPSB0b2tlbmlzZXIuY29u
c3VtZSgicmVhZG9ubHkiKTsKICAgICBpZiAoIXRva2Vucy5yZWFkb25seSkgewogICAgICAgdG9r
ZW5zLmFzeW5jID0gdG9rZW5pc2VyLmNvbnN1bWUoImFzeW5jIik7CiAgICAgfQotICAgIHRva2Vu
cy5iYXNlID0KLSAgICAgIHRva2Vucy5yZWFkb25seSA/IHRva2VuaXNlci5jb25zdW1lKCJtYXBs
aWtlIiwgInNldGxpa2UiKSA6Ci0gICAgICB0b2tlbnMuYXN5bmMgPyB0b2tlbmlzZXIuY29uc3Vt
ZSgiaXRlcmFibGUiKSA6Ci0gICAgICB0b2tlbmlzZXIuY29uc3VtZSgiaXRlcmFibGUiLCAibWFw
bGlrZSIsICJzZXRsaWtlIik7CisgICAgdG9rZW5zLmJhc2UgPSB0b2tlbnMucmVhZG9ubHkKKyAg
ICAgID8gdG9rZW5pc2VyLmNvbnN1bWUoIm1hcGxpa2UiLCAic2V0bGlrZSIpCisgICAgICA6IHRv
a2Vucy5hc3luYworICAgICAgPyB0b2tlbmlzZXIuY29uc3VtZSgiaXRlcmFibGUiKQorICAgICAg
OiB0b2tlbmlzZXIuY29uc3VtZSgiaXRlcmFibGUiLCAibWFwbGlrZSIsICJzZXRsaWtlIik7CiAg
ICAgaWYgKCF0b2tlbnMuYmFzZSkgewogICAgICAgdG9rZW5pc2VyLnVuY29uc3VtZShzdGFydF9w
b3NpdGlvbik7CiAgICAgICByZXR1cm47CkBAIC0yMzkzLDM0ICsyOTY0LDQzIEBAIGNsYXNzIEl0
ZXJhYmxlTGlrZSBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19b
IkJhc2UiXSB7CiAgICAgY29uc3Qgc2Vjb25kVHlwZUFsbG93ZWQgPSBzZWNvbmRUeXBlUmVxdWly
ZWQgfHwgdHlwZSA9PT0gIml0ZXJhYmxlIjsKICAgICBjb25zdCBhcmd1bWVudEFsbG93ZWQgPSBy
ZXQuYXN5bmMgJiYgdHlwZSA9PT0gIml0ZXJhYmxlIjsKIAotICAgIHRva2Vucy5vcGVuID0gdG9r
ZW5pc2VyLmNvbnN1bWUoIjwiKSB8fCB0b2tlbmlzZXIuZXJyb3IoYE1pc3NpbmcgbGVzcy10aGFu
IHNpZ24gXGA8XGAgaW4gJHt0eXBlfSBkZWNsYXJhdGlvbmApOwotICAgIGNvbnN0IGZpcnN0ID0g
T2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5cGVfd2l0
aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRva2VuaXNlcikgfHwgdG9rZW5pc2VyLmVycm9yKGBN
aXNzaW5nIGEgdHlwZSBhcmd1bWVudCBpbiAke3R5cGV9IGRlY2xhcmF0aW9uYCk7CisgICAgdG9r
ZW5zLm9wZW4gPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIjwiKSB8fAorICAgICAgdG9rZW5p
c2VyLmVycm9yKGBNaXNzaW5nIGxlc3MtdGhhbiBzaWduIFxgPFxgIGluICR7dHlwZX0gZGVjbGFy
YXRpb25gKTsKKyAgICBjb25zdCBmaXJzdCA9CisgICAgICAoMCxfaGVscGVyc19qc19fV0VCUEFD
S19JTVBPUlRFRF9NT0RVTEVfMV9fLnR5cGVfd2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzKSh0b2tl
bmlzZXIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJyb3IoYE1pc3NpbmcgYSB0eXBlIGFyZ3VtZW50
IGluICR7dHlwZX0gZGVjbGFyYXRpb25gKTsKICAgICByZXQuaWRsVHlwZSA9IFtmaXJzdF07CiAg
ICAgcmV0LmFyZ3VtZW50cyA9IFtdOwogCiAgICAgaWYgKHNlY29uZFR5cGVBbGxvd2VkKSB7CiAg
ICAgICBmaXJzdC50b2tlbnMuc2VwYXJhdG9yID0gdG9rZW5pc2VyLmNvbnN1bWUoIiwiKTsKICAg
ICAgIGlmIChmaXJzdC50b2tlbnMuc2VwYXJhdG9yKSB7Ci0gICAgICAgIHJldC5pZGxUeXBlLnB1
c2goT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bInR5cGVf
d2l0aF9leHRlbmRlZF9hdHRyaWJ1dGVzIl0pKHRva2VuaXNlcikpOwotICAgICAgfQotICAgICAg
ZWxzZSBpZiAoc2Vjb25kVHlwZVJlcXVpcmVkKSB7CisgICAgICAgIHJldC5pZGxUeXBlLnB1c2go
KDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50eXBlX3dpdGhfZXh0
ZW5kZWRfYXR0cmlidXRlcykodG9rZW5pc2VyKSk7CisgICAgICB9IGVsc2UgaWYgKHNlY29uZFR5
cGVSZXF1aXJlZCkgewogICAgICAgICB0b2tlbmlzZXIuZXJyb3IoYE1pc3Npbmcgc2Vjb25kIHR5
cGUgYXJndW1lbnQgaW4gJHt0eXBlfSBkZWNsYXJhdGlvbmApOwogICAgICAgfQogICAgIH0KIAot
ICAgIHRva2Vucy5jbG9zZSA9IHRva2VuaXNlci5jb25zdW1lKCI+IikgfHwgdG9rZW5pc2VyLmVy
cm9yKGBNaXNzaW5nIGdyZWF0ZXItdGhhbiBzaWduIFxgPlxgIGluICR7dHlwZX0gZGVjbGFyYXRp
b25gKTsKKyAgICB0b2tlbnMuY2xvc2UgPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWUoIj4iKSB8
fAorICAgICAgdG9rZW5pc2VyLmVycm9yKGBNaXNzaW5nIGdyZWF0ZXItdGhhbiBzaWduIFxgPlxg
IGluICR7dHlwZX0gZGVjbGFyYXRpb25gKTsKIAogICAgIGlmICh0b2tlbmlzZXIucHJvYmUoIigi
KSkgewogICAgICAgaWYgKGFyZ3VtZW50QWxsb3dlZCkgewogICAgICAgICB0b2tlbnMuYXJnc09w
ZW4gPSB0b2tlbmlzZXIuY29uc3VtZSgiKCIpOwotICAgICAgICByZXQuYXJndW1lbnRzLnB1c2go
Li4uT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImFyZ3Vt
ZW50X2xpc3QiXSkodG9rZW5pc2VyKSk7Ci0gICAgICAgIHRva2Vucy5hcmdzQ2xvc2UgPSB0b2tl
bmlzZXIuY29uc3VtZSgiKSIpIHx8IHRva2VuaXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGFzeW5j
IGl0ZXJhYmxlIGFyZ3VtZW50IGxpc3QiKTsKKyAgICAgICAgcmV0LmFyZ3VtZW50cy5wdXNoKC4u
LigwLF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uYXJndW1lbnRfbGlz
dCkodG9rZW5pc2VyKSk7CisgICAgICAgIHRva2Vucy5hcmdzQ2xvc2UgPQorICAgICAgICAgIHRv
a2VuaXNlci5jb25zdW1lKCIpIikgfHwKKyAgICAgICAgICB0b2tlbmlzZXIuZXJyb3IoIlVudGVy
bWluYXRlZCBhc3luYyBpdGVyYWJsZSBhcmd1bWVudCBsaXN0Iik7CiAgICAgICB9IGVsc2Ugewog
ICAgICAgICB0b2tlbmlzZXIuZXJyb3IoYEFyZ3VtZW50cyBhcmUgb25seSBhbGxvd2VkIGZvciBc
YGFzeW5jIGl0ZXJhYmxlXGBgKTsKICAgICAgIH0KICAgICB9CiAKLSAgICB0b2tlbnMudGVybWlu
YXRpb24gPSB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8IHRva2VuaXNlci5lcnJvcihgTWlzc2lu
ZyBzZW1pY29sb24gYWZ0ZXIgJHt0eXBlfSBkZWNsYXJhdGlvbmApOworICAgIHRva2Vucy50ZXJt
aW5hdGlvbiA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiOyIpIHx8CisgICAgICB0b2tlbmlz
ZXIuZXJyb3IoYE1pc3Npbmcgc2VtaWNvbG9uIGFmdGVyICR7dHlwZX0gZGVjbGFyYXRpb25gKTsK
IAogICAgIHJldHVybiByZXQudGhpczsKICAgfQpAQCAtMjQ0MywyMyArMzAyMyw0NCBAQCBjbGFz
cyBJdGVyYWJsZUxpa2UgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MF9fWyJCYXNlIl0gewogICAgICAgeWllbGQqIGFyZ3VtZW50LnZhbGlkYXRlKGRlZnMpOwogICAg
IH0KICAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyfSB3
ICovCisgIHdyaXRlKHcpIHsKKyAgICByZXR1cm4gdy50cy5kZWZpbml0aW9uKAorICAgICAgdy50
cy53cmFwKFsKKyAgICAgICAgdGhpcy5leHRBdHRycy53cml0ZSh3KSwKKyAgICAgICAgdy50b2tl
bih0aGlzLnRva2Vucy5yZWFkb25seSksCisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMuYXN5
bmMpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLmJhc2UsIHcudHMuZ2VuZXJpYyksCisg
ICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMub3BlbiksCisgICAgICAgIHcudHMud3JhcCh0aGlz
LmlkbFR5cGUubWFwKCh0KSA9PiB0LndyaXRlKHcpKSksCisgICAgICAgIHcudG9rZW4odGhpcy50
b2tlbnMuY2xvc2UpLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLmFyZ3NPcGVuKSwKKyAg
ICAgICAgdy50cy53cmFwKHRoaXMuYXJndW1lbnRzLm1hcCgoYXJnKSA9PiBhcmcud3JpdGUodykp
KSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5hcmdzQ2xvc2UpLAorICAgICAgICB3LnRv
a2VuKHRoaXMudG9rZW5zLnRlcm1pbmF0aW9uKSwKKyAgICAgIF0pLAorICAgICAgeyBkYXRhOiB0
aGlzLCBwYXJlbnQ6IHRoaXMucGFyZW50IH0KKyAgICApOworICB9CiB9CiAKIAogLyoqKi8gfSks
CiAvKiAyMyAqLwotLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywg
X193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoqKi8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFj
a19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4g
ewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9y
dHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVf
Xy5kKF9fd2VicGFja19leHBvcnRzX18sICJjaGVja0ludGVyZmFjZU1lbWJlckR1cGxpY2F0aW9u
IiwgZnVuY3Rpb24oKSB7IHJldHVybiBjaGVja0ludGVyZmFjZU1lbWJlckR1cGxpY2F0aW9uOyB9
KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tf
ZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJjaGVja0ludGVyZmFjZU1lbWJl
ckR1cGxpY2F0aW9uIjogKCkgPT4gKC8qIGJpbmRpbmcgKi8gY2hlY2tJbnRlcmZhY2VNZW1iZXJE
dXBsaWNhdGlvbikKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBvcnQg
Ki8gdmFyIF9lcnJvcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNr
X3JlcXVpcmVfXygzKTsKIC8vIEB0cy1jaGVjawogCiAKIAogZnVuY3Rpb24qIGNoZWNrSW50ZXJm
YWNlTWVtYmVyRHVwbGljYXRpb24oZGVmcywgaSkgewotICBjb25zdCBvcE5hbWVzID0gbmV3IFNl
dChnZXRPcGVyYXRpb25zKGkpLm1hcChvcCA9PiBvcC5uYW1lKSk7CisgIGNvbnN0IG9wTmFtZXMg
PSBuZXcgU2V0KGdldE9wZXJhdGlvbnMoaSkubWFwKChvcCkgPT4gb3AubmFtZSkpOwogICBjb25z
dCBwYXJ0aWFscyA9IGRlZnMucGFydGlhbHMuZ2V0KGkubmFtZSkgfHwgW107CiAgIGNvbnN0IG1p
eGlucyA9IGRlZnMubWl4aW5NYXAuZ2V0KGkubmFtZSkgfHwgW107CiAgIGZvciAoY29uc3QgZXh0
IG9mIFsuLi5wYXJ0aWFscywgLi4ubWl4aW5zXSkgewpAQCAtMjQ3NSwzMSArMzA3NiwzNiBAQCBm
dW5jdGlvbiogY2hlY2tJbnRlcmZhY2VNZW1iZXJEdXBsaWNhdGlvbihkZWZzLCBpKSB7CiAgICAg
ICBjb25zdCB7IG5hbWUgfSA9IGFkZGl0aW9uOwogICAgICAgaWYgKG5hbWUgJiYgZXhpc3Rpbmdz
LmhhcyhuYW1lKSkgewogICAgICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSBvcGVyYXRpb24gIiR7
bmFtZX0iIGhhcyBhbHJlYWR5IGJlZW4gZGVmaW5lZCBmb3IgdGhlIGJhc2UgaW50ZXJmYWNlICIk
e2Jhc2UubmFtZX0iIGVpdGhlciBpbiBpdHNlbGYgb3IgaW4gYSBtaXhpbmA7Ci0gICAgICAgIHlp
ZWxkIE9iamVjdChfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1sidmFsaWRh
dGlvbkVycm9yIl0pKGFkZGl0aW9uLnRva2Vucy5uYW1lLCBleHQsICJuby1jcm9zcy1vdmVybG9h
ZCIsIG1lc3NhZ2UpOworICAgICAgICB5aWVsZCAoMCxfZXJyb3JfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfXy52YWxpZGF0aW9uRXJyb3IpKAorICAgICAgICAgIGFkZGl0aW9uLnRva2Vu
cy5uYW1lLAorICAgICAgICAgIGV4dCwKKyAgICAgICAgICAibm8tY3Jvc3Mtb3ZlcmxvYWQiLAor
ICAgICAgICAgIG1lc3NhZ2UKKyAgICAgICAgKTsKICAgICAgIH0KICAgICB9CiAgIH0KIAogICBm
dW5jdGlvbiBnZXRPcGVyYXRpb25zKGkpIHsKLSAgICByZXR1cm4gaS5tZW1iZXJzCi0gICAgICAu
ZmlsdGVyKCh7dHlwZX0pID0+IHR5cGUgPT09ICJvcGVyYXRpb24iKTsKKyAgICByZXR1cm4gaS5t
ZW1iZXJzLmZpbHRlcigoeyB0eXBlIH0pID0+IHR5cGUgPT09ICJvcGVyYXRpb24iKTsKICAgfQog
fQogCiAKIC8qKiovIH0pLAogLyogMjQgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2Vi
cGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRf
d2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFj
a19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5y
KF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9f
d2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQ29uc3RydWN0b3IiLCBm
dW5jdGlvbigpIHsgcmV0dXJuIENvbnN0cnVjdG9yOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICov
IF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255
IGV4cG9ydCAqLyAgICJDb25zdHJ1Y3RvciI6ICgpID0+ICgvKiBiaW5kaW5nICovIENvbnN0cnVj
dG9yKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIg
X2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJl
X18oNik7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CiAKIAogCi1jbGFzcyBD
b25zdHJ1Y3RvciBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19b
IkJhc2UiXSB7CitjbGFzcyBDb25zdHJ1Y3RvciBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX18uQmFzZSB7CiAgIC8qKgogICAgKiBAcGFyYW0ge2ltcG9ydCgiLi4v
dG9rZW5pc2VyIikuVG9rZW5pc2VyfSB0b2tlbmlzZXIKICAgICovCkBAIC0yNTEwLDEyICszMTE2
LDE3IEBAIGNsYXNzIENvbnN0cnVjdG9yIGV4dGVuZHMgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzBfX1siQmFzZSJdIHsKICAgICB9CiAgICAgLyoqIEB0eXBlIHtCYXNlWyJ0b2tl
bnMiXX0gKi8KICAgICBjb25zdCB0b2tlbnMgPSB7IGJhc2UgfTsKLSAgICB0b2tlbnMub3BlbiA9
IHRva2VuaXNlci5jb25zdW1lKCIoIikgfHwgdG9rZW5pc2VyLmVycm9yKCJObyBhcmd1bWVudCBs
aXN0IGluIGNvbnN0cnVjdG9yIik7Ci0gICAgY29uc3QgYXJncyA9IE9iamVjdChfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJhcmd1bWVudF9saXN0Il0pKHRva2VuaXNl
cik7Ci0gICAgdG9rZW5zLmNsb3NlID0gdG9rZW5pc2VyLmNvbnN1bWUoIikiKSB8fCB0b2tlbmlz
ZXIuZXJyb3IoIlVudGVybWluYXRlZCBjb25zdHJ1Y3RvciIpOwotICAgIHRva2Vucy50ZXJtaW5h
dGlvbiA9IHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwgdG9rZW5pc2VyLmVycm9yKCJObyBzZW1p
Y29sb24gYWZ0ZXIgY29uc3RydWN0b3IiKTsKKyAgICB0b2tlbnMub3BlbiA9CisgICAgICB0b2tl
bmlzZXIuY29uc3VtZSgiKCIpIHx8CisgICAgICB0b2tlbmlzZXIuZXJyb3IoIk5vIGFyZ3VtZW50
IGxpc3QgaW4gY29uc3RydWN0b3IiKTsKKyAgICBjb25zdCBhcmdzID0gKDAsX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5hcmd1bWVudF9saXN0KSh0b2tlbmlzZXIpOwor
ICAgIHRva2Vucy5jbG9zZSA9CisgICAgICB0b2tlbmlzZXIuY29uc3VtZSgiKSIpIHx8IHRva2Vu
aXNlci5lcnJvcigiVW50ZXJtaW5hdGVkIGNvbnN0cnVjdG9yIik7CisgICAgdG9rZW5zLnRlcm1p
bmF0aW9uID0KKyAgICAgIHRva2VuaXNlci5jb25zdW1lKCI7IikgfHwKKyAgICAgIHRva2VuaXNl
ci5lcnJvcigiTm8gc2VtaWNvbG9uIGFmdGVyIGNvbnN0cnVjdG9yIik7CiAgICAgY29uc3QgcmV0
ID0gbmV3IENvbnN0cnVjdG9yKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSk7
Ci0gICAgT2JqZWN0KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImF1
dG9QYXJlbnRlciJdKShyZXQpLmFyZ3VtZW50cyA9IGFyZ3M7CisgICAgKDAsX2hlbHBlcnNfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5hdXRvUGFyZW50ZXIpKHJldCkuYXJndW1lbnRz
ID0gYXJnczsKICAgICByZXR1cm4gcmV0OwogICB9CiAKQEAgLTI1MzEsMTYgKzMxNDIsMzMgQEAg
Y2xhc3MgQ29uc3RydWN0b3IgZXh0ZW5kcyBfYmFzZV9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RV
TEVfMF9fWyJCYXNlIl0gewogICAgICAgeWllbGQqIGFyZ3VtZW50LnZhbGlkYXRlKGRlZnMpOwog
ICAgIH0KICAgfQorCisgIC8qKiBAcGFyYW0ge2ltcG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVy
fSB3ICovCisgIHdyaXRlKHcpIHsKKyAgICBjb25zdCB7IHBhcmVudCB9ID0gdGhpczsKKyAgICBy
ZXR1cm4gdy50cy5kZWZpbml0aW9uKAorICAgICAgdy50cy53cmFwKFsKKyAgICAgICAgdGhpcy5l
eHRBdHRycy53cml0ZSh3KSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5iYXNlLCB3LnRz
Lm5hbWVsZXNzLCB7IGRhdGE6IHRoaXMsIHBhcmVudCB9KSwKKyAgICAgICAgdy50b2tlbih0aGlz
LnRva2Vucy5vcGVuKSwKKyAgICAgICAgdy50cy53cmFwKHRoaXMuYXJndW1lbnRzLm1hcCgoYXJn
KSA9PiBhcmcud3JpdGUodykpKSwKKyAgICAgICAgdy50b2tlbih0aGlzLnRva2Vucy5jbG9zZSks
CisgICAgICAgIHcudG9rZW4odGhpcy50b2tlbnMudGVybWluYXRpb24pLAorICAgICAgXSksCisg
ICAgICB7IGRhdGE6IHRoaXMsIHBhcmVudCB9CisgICAgKTsKKyAgfQogfQogCiAKIC8qKiovIH0p
LAogLyogMjUgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18s
IF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBh
Y2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+
IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBv
cnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJl
X18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiTWl4aW4iLCBmdW5jdGlvbigpIHsgcmV0dXJuIE1p
eGluOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dl
YnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJNaXhpbiI6ICgpID0+
ICgvKiBiaW5kaW5nICovIE1peGluKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJt
b255IGltcG9ydCAqLyB2YXIgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVf
MF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIg
X2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVx
dWlyZV9fKDIxKTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYXR0cmlidXRlX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE0KTsKQEAgLTI1
NTIsNyArMzE4MCw3IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19f
KTsKIAogCiAKLWNsYXNzIE1peGluIGV4dGVuZHMgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXSB7CitjbGFzcyBNaXhpbiBleHRlbmRzIF9jb250
YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5Db250YWluZXIgewogICAvKioK
ICAgICogQHR5cGVkZWYge2ltcG9ydCgiLi4vdG9rZW5pc2VyLmpzIikuVG9rZW59IFRva2VuCiAg
ICAqCkBAIC0yNTY3LDE1ICszMTk1LDE5IEBAIGNsYXNzIE1peGluIGV4dGVuZHMgX2NvbnRhaW5l
cl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXSB7CiAgICAgaWYg
KCF0b2tlbnMubWl4aW4pIHsKICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgcmV0dXJuIF9jb250
YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0ucGFyc2Uo
dG9rZW5pc2VyLCBuZXcgTWl4aW4oeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9
KSwgewotICAgICAgdHlwZTogImludGVyZmFjZSBtaXhpbiIsCi0gICAgICBhbGxvd2VkTWVtYmVy
czogWwotICAgICAgICBbX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19b
IkNvbnN0YW50Il0ucGFyc2VdLAotICAgICAgICBbX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzRfX1sic3RyaW5naWZpZXIiXV0sCi0gICAgICAgIFtfYXR0cmlidXRlX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkF0dHJpYnV0ZSJdLnBhcnNlLCB7IG5vSW5oZXJp
dDogdHJ1ZSB9XSwKLSAgICAgICAgW19vcGVyYXRpb25fanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzNfX1siT3BlcmF0aW9uIl0ucGFyc2UsIHsgcmVndWxhcjogdHJ1ZSB9XQotICAgICAgXQot
ICAgIH0pOworICAgIHJldHVybiBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX18uQ29udGFpbmVyLnBhcnNlKAorICAgICAgdG9rZW5pc2VyLAorICAgICAgbmV3IE1peGlu
KHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMgfSksCisgICAgICB7CisgICAgICAg
IHR5cGU6ICJpbnRlcmZhY2UgbWl4aW4iLAorICAgICAgICBhbGxvd2VkTWVtYmVyczogWworICAg
ICAgICAgIFtfY29uc3RhbnRfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5Db25zdGFu
dC5wYXJzZV0sCisgICAgICAgICAgW19oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV80X18uc3RyaW5naWZpZXJdLAorICAgICAgICAgIFtfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8yX18uQXR0cmlidXRlLnBhcnNlLCB7IG5vSW5oZXJpdDogdHJ1ZSB9XSwK
KyAgICAgICAgICBbX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fLk9w
ZXJhdGlvbi5wYXJzZSwgeyByZWd1bGFyOiB0cnVlIH1dLAorICAgICAgICBdLAorICAgICAgfQor
ICAgICk7CiAgIH0KIAogICBnZXQgdHlwZSgpIHsKQEAgLTI1ODYsMTEgKzMyMTgsMTIgQEAgY2xh
c3MgTWl4aW4gZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8w
X19bIkNvbnRhaW5lciJdIHsKIAogLyoqKi8gfSksCiAvKiAyNiAqLwotLyoqKi8gKGZ1bmN0aW9u
KG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgeworLyoq
Ki8gKChfX3VudXNlZF93ZWJwYWNrX19fd2VicGFja19tb2R1bGVfXywgX193ZWJwYWNrX2V4cG9y
dHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgPT4gewogCi0idXNlIHN0cmljdCI7CiBfX3dlYnBh
Y2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7Ci0vKiBoYXJtb255IGV4cG9ydCAo
YmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sICJE
aWN0aW9uYXJ5IiwgZnVuY3Rpb24oKSB7IHJldHVybiBEaWN0aW9uYXJ5OyB9KTsKKy8qIGhhcm1v
bnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7
CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJEaWN0aW9uYXJ5IjogKCkgPT4gKC8qIGJpbmRpbmcg
Ki8gRGljdGlvbmFyeSkKKy8qIGhhcm1vbnkgZXhwb3J0ICovIH0pOwogLyogaGFybW9ueSBpbXBv
cnQgKi8gdmFyIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyA9IF9f
d2VicGFja19yZXF1aXJlX18oMjApOwogLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9maWVsZF9q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyNyk7
CiAvLyBAdHMtY2hlY2sKQEAgLTI1OTgsNyArMzIzMSw3IEBAIF9fd2VicGFja19yZXF1aXJlX18u
cihfX3dlYnBhY2tfZXhwb3J0c19fKTsKIAogCiAKLWNsYXNzIERpY3Rpb25hcnkgZXh0ZW5kcyBf
Y29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkNvbnRhaW5lciJdIHsK
K2NsYXNzIERpY3Rpb25hcnkgZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8wX18uQ29udGFpbmVyIHsKICAgLyoqCiAgICAqIEBwYXJhbSB7aW1wb3J0KCIuLi90
b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgogICAgKiBAcGFyYW0ge29iamVjdH0gW29w
dGlvbnNdCkBAIC0yNjEwLDEzICszMjQzLDE1IEBAIGNsYXNzIERpY3Rpb25hcnkgZXh0ZW5kcyBf
Y29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkNvbnRhaW5lciJdCiAg
ICAgaWYgKCF0b2tlbnMuYmFzZSkgewogICAgICAgcmV0dXJuOwogICAgIH0KLSAgICByZXR1cm4g
X2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXS5w
YXJzZSh0b2tlbmlzZXIsIG5ldyBEaWN0aW9uYXJ5KHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNl
LCB0b2tlbnMgfSksIHsKLSAgICAgIHR5cGU6ICJkaWN0aW9uYXJ5IiwKLSAgICAgIGluaGVyaXRh
YmxlOiAhcGFydGlhbCwKLSAgICAgIGFsbG93ZWRNZW1iZXJzOiBbCi0gICAgICAgIFtfZmllbGRf
anNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1siRmllbGQiXS5wYXJzZV0sCi0gICAgICBd
Ci0gICAgfSk7CisgICAgcmV0dXJuIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzBfXy5Db250YWluZXIucGFyc2UoCisgICAgICB0b2tlbmlzZXIsCisgICAgICBuZXcgRGlj
dGlvbmFyeSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJjZSwgdG9rZW5zIH0pLAorICAgICAgewor
ICAgICAgICB0eXBlOiAiZGljdGlvbmFyeSIsCisgICAgICAgIGluaGVyaXRhYmxlOiAhcGFydGlh
bCwKKyAgICAgICAgYWxsb3dlZE1lbWJlcnM6IFtbX2ZpZWxkX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8xX18uRmllbGQucGFyc2VdXSwKKyAgICAgIH0KKyAgICApOwogICB9CiAKICAgZ2V0
IHR5cGUoKSB7CkBAIC0yNjI3LDExICszMjYyLDEyIEBAIGNsYXNzIERpY3Rpb25hcnkgZXh0ZW5k
cyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkNvbnRhaW5lciJd
CiAKIC8qKiovIH0pLAogLyogMjcgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFj
a19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191bnVzZWRfd2Vi
cGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19y
ZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9f
d2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2Vi
cGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiRmllbGQiLCBmdW5jdGlvbigp
IHsgcmV0dXJuIEZpZWxkOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1
aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJG
aWVsZCI6ICgpID0+ICgvKiBiaW5kaW5nICovIEZpZWxkKQorLyogaGFybW9ueSBleHBvcnQgKi8g
fSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzBfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7CiAvKiBoYXJtb255IGltcG9ydCAq
LyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXyA9IF9fd2VicGFj
a19yZXF1aXJlX18oNCk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2V4dGVuZGVkX2F0dHJp
YnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfXyA9IF9fd2VicGFja19yZXF1aXJl
X18oOCk7CkBAIC0yNjQxLDIxICszMjc3LDI4IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dl
YnBhY2tfZXhwb3J0c19fKTsKIAogCiAKLWNsYXNzIEZpZWxkIGV4dGVuZHMgX2Jhc2VfanNfX1dF
QlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQmFzZSJdIHsKK2NsYXNzIEZpZWxkIGV4dGVuZHMg
X2Jhc2VfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5CYXNlIHsKICAgLyoqCiAgICAq
IEBwYXJhbSB7aW1wb3J0KCIuLi90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgogICAg
Ki8KICAgc3RhdGljIHBhcnNlKHRva2VuaXNlcikgewogICAgIC8qKiBAdHlwZSB7QmFzZVsidG9r
ZW5zIl19ICovCiAgICAgY29uc3QgdG9rZW5zID0ge307Ci0gICAgY29uc3QgcmV0ID0gT2JqZWN0
KF9oZWxwZXJzX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19bImF1dG9QYXJlbnRlciJd
KShuZXcgRmllbGQoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSk7Ci0gICAg
cmV0LmV4dEF0dHJzID0gX2V4dGVuZGVkX2F0dHJpYnV0ZXNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzJfX1siRXh0ZW5kZWRBdHRyaWJ1dGVzIl0ucGFyc2UodG9rZW5pc2VyKTsKKyAgICBj
b25zdCByZXQgPSAoMCxfaGVscGVyc19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fLmF1
dG9QYXJlbnRlcikobmV3IEZpZWxkKHsgc291cmNlOiB0b2tlbmlzZXIuc291cmNlLCB0b2tlbnMg
fSkpOworICAgIHJldC5leHRBdHRycyA9IF9leHRlbmRlZF9hdHRyaWJ1dGVzX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8yX18uRXh0ZW5kZWRBdHRyaWJ1dGVzLnBhcnNlKHRva2VuaXNlcik7
CiAgICAgdG9rZW5zLnJlcXVpcmVkID0gdG9rZW5pc2VyLmNvbnN1bWUoInJlcXVpcmVkIik7Ci0g
ICAgcmV0LmlkbFR5cGUgPSBPYmplY3QoX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9E
VUxFXzFfX1sidHlwZV93aXRoX2V4dGVuZGVkX2F0dHJpYnV0ZXMiXSkodG9rZW5pc2VyLCAiZGlj
dGlvbmFyeS10eXBlIikgfHwgdG9rZW5pc2VyLmVycm9yKCJEaWN0aW9uYXJ5IG1lbWJlciBsYWNr
cyBhIHR5cGUiKTsKLSAgICB0b2tlbnMubmFtZSA9IHRva2VuaXNlci5jb25zdW1lKCJpZGVudGlm
aWVyIikgfHwgdG9rZW5pc2VyLmVycm9yKCJEaWN0aW9uYXJ5IG1lbWJlciBsYWNrcyBhIG5hbWUi
KTsKLSAgICByZXQuZGVmYXVsdCA9IF9kZWZhdWx0X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8zX19bIkRlZmF1bHQiXS5wYXJzZSh0b2tlbmlzZXIpOwotICAgIGlmICh0b2tlbnMucmVxdWly
ZWQgJiYgcmV0LmRlZmF1bHQpIHRva2VuaXNlci5lcnJvcigiUmVxdWlyZWQgbWVtYmVyIG11c3Qg
bm90IGhhdmUgYSBkZWZhdWx0Iik7Ci0gICAgdG9rZW5zLnRlcm1pbmF0aW9uID0gdG9rZW5pc2Vy
LmNvbnN1bWUoIjsiKSB8fCB0b2tlbmlzZXIuZXJyb3IoIlVudGVybWluYXRlZCBkaWN0aW9uYXJ5
IG1lbWJlciwgZXhwZWN0ZWQgYDtgIik7CisgICAgcmV0LmlkbFR5cGUgPQorICAgICAgKDAsX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy50eXBlX3dpdGhfZXh0ZW5kZWRf
YXR0cmlidXRlcykodG9rZW5pc2VyLCAiZGljdGlvbmFyeS10eXBlIikgfHwKKyAgICAgIHRva2Vu
aXNlci5lcnJvcigiRGljdGlvbmFyeSBtZW1iZXIgbGFja3MgYSB0eXBlIik7CisgICAgdG9rZW5z
Lm5hbWUgPQorICAgICAgdG9rZW5pc2VyLmNvbnN1bWVUeXBlKCJpZGVudGlmaWVyIikgfHwKKyAg
ICAgIHRva2VuaXNlci5lcnJvcigiRGljdGlvbmFyeSBtZW1iZXIgbGFja3MgYSBuYW1lIik7Cisg
ICAgcmV0LmRlZmF1bHQgPSBfZGVmYXVsdF9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19f
LkRlZmF1bHQucGFyc2UodG9rZW5pc2VyKTsKKyAgICBpZiAodG9rZW5zLnJlcXVpcmVkICYmIHJl
dC5kZWZhdWx0KQorICAgICAgdG9rZW5pc2VyLmVycm9yKCJSZXF1aXJlZCBtZW1iZXIgbXVzdCBu
b3QgaGF2ZSBhIGRlZmF1bHQiKTsKKyAgICB0b2tlbnMudGVybWluYXRpb24gPQorICAgICAgdG9r
ZW5pc2VyLmNvbnN1bWUoIjsiKSB8fAorICAgICAgdG9rZW5pc2VyLmVycm9yKCJVbnRlcm1pbmF0
ZWQgZGljdGlvbmFyeSBtZW1iZXIsIGV4cGVjdGVkIGA7YCIpOwogICAgIHJldHVybiByZXQudGhp
czsKICAgfQogCkBAIC0yNjYzLDcgKzMzMDYsNyBAQCBjbGFzcyBGaWVsZCBleHRlbmRzIF9iYXNl
X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICAgcmV0dXJuICJm
aWVsZCI7CiAgIH0KICAgZ2V0IG5hbWUoKSB7Ci0gICAgcmV0dXJuIE9iamVjdChfaGVscGVyc19q
c19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJ1bmVzY2FwZSJdKSh0aGlzLnRva2Vucy5u
YW1lLnZhbHVlKTsKKyAgICByZXR1cm4gKDAsX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURf
TU9EVUxFXzFfXy51bmVzY2FwZSkodGhpcy50b2tlbnMubmFtZS52YWx1ZSk7CiAgIH0KICAgZ2V0
IHJlcXVpcmVkKCkgewogICAgIHJldHVybiAhIXRoaXMudG9rZW5zLnJlcXVpcmVkOwpAQCAtMjY3
MiwyOCArMzMxNSw0NyBAQCBjbGFzcyBGaWVsZCBleHRlbmRzIF9iYXNlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8wX19bIkJhc2UiXSB7CiAgICp2YWxpZGF0ZShkZWZzKSB7CiAgICAgeWll
bGQqIHRoaXMuaWRsVHlwZS52YWxpZGF0ZShkZWZzKTsKICAgfQorCisgIC8qKiBAcGFyYW0ge2lt
cG9ydCgiLi4vd3JpdGVyLmpzIikuV3JpdGVyfSB3ICovCisgIHdyaXRlKHcpIHsKKyAgICBjb25z
dCB7IHBhcmVudCB9ID0gdGhpczsKKyAgICByZXR1cm4gdy50cy5kZWZpbml0aW9uKAorICAgICAg
dy50cy53cmFwKFsKKyAgICAgICAgdGhpcy5leHRBdHRycy53cml0ZSh3KSwKKyAgICAgICAgdy50
b2tlbih0aGlzLnRva2Vucy5yZXF1aXJlZCksCisgICAgICAgIHcudHMudHlwZSh0aGlzLmlkbFR5
cGUud3JpdGUodykpLAorICAgICAgICB3Lm5hbWVfdG9rZW4odGhpcy50b2tlbnMubmFtZSwgeyBk
YXRhOiB0aGlzLCBwYXJlbnQgfSksCisgICAgICAgIHRoaXMuZGVmYXVsdCA/IHRoaXMuZGVmYXVs
dC53cml0ZSh3KSA6ICIiLAorICAgICAgICB3LnRva2VuKHRoaXMudG9rZW5zLnRlcm1pbmF0aW9u
KSwKKyAgICAgIF0pLAorICAgICAgeyBkYXRhOiB0aGlzLCBwYXJlbnQgfQorICAgICk7CisgIH0K
IH0KIAogCiAvKioqLyB9KSwKIC8qIDI4ICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dl
YnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9fdW51c2Vk
X3dlYnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBh
Y2tfcmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1aXJlX18u
cihfX3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBf
X3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIk5hbWVzcGFjZSIsIGZ1
bmN0aW9uKCkgeyByZXR1cm4gTmFtZXNwYWNlOyB9KTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9f
d2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4
cG9ydCAqLyAgICJOYW1lc3BhY2UiOiAoKSA9PiAoLyogYmluZGluZyAqLyBOYW1lc3BhY2UpCisv
KiBoYXJtb255IGV4cG9ydCAqLyB9KTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfY29udGFp
bmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9f
KDIwKTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lN
UE9SVEVEX01PRFVMRV8xX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE0KTsKIC8qIGhhcm1vbnkg
aW1wb3J0ICovIHZhciBfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18g
PSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKTsKIC8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfZXJy
b3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfXyA9IF9fd2VicGFja19yZXF1aXJlX18o
Myk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2hlbHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JU
RURfTU9EVUxFXzRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CisvKiBoYXJtb255IGltcG9y
dCAqLyB2YXIgX2NvbnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18gPSBfX3dl
YnBhY2tfcmVxdWlyZV9fKDIxKTsKIAogCiAKIAogCiAKLWNsYXNzIE5hbWVzcGFjZSBleHRlbmRz
IF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0g
eworCitjbGFzcyBOYW1lc3BhY2UgZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9S
VEVEX01PRFVMRV8wX18uQ29udGFpbmVyIHsKICAgLyoqCiAgICAqIEBwYXJhbSB7aW1wb3J0KCIu
Li90b2tlbmlzZXIiKS5Ub2tlbmlzZXJ9IHRva2VuaXNlcgogICAgKiBAcGFyYW0ge29iamVjdH0g
W29wdGlvbnNdCkBAIC0yNzA1LDEzICszMzY3LDE4IEBAIGNsYXNzIE5hbWVzcGFjZSBleHRlbmRz
IF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0K
ICAgICBpZiAoIXRva2Vucy5iYXNlKSB7CiAgICAgICByZXR1cm47CiAgICAgfQotICAgIHJldHVy
biBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bIkNvbnRhaW5lciJd
LnBhcnNlKHRva2VuaXNlciwgbmV3IE5hbWVzcGFjZSh7IHNvdXJjZTogdG9rZW5pc2VyLnNvdXJj
ZSwgdG9rZW5zIH0pLCB7Ci0gICAgICB0eXBlOiAibmFtZXNwYWNlIiwKLSAgICAgIGFsbG93ZWRN
ZW1iZXJzOiBbCi0gICAgICAgIFtfYXR0cmlidXRlX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8xX19bIkF0dHJpYnV0ZSJdLnBhcnNlLCB7IG5vSW5oZXJpdDogdHJ1ZSwgcmVhZG9ubHk6IHRy
dWUgfV0sCi0gICAgICAgIFtfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8y
X19bIk9wZXJhdGlvbiJdLnBhcnNlLCB7IHJlZ3VsYXI6IHRydWUgfV0KLSAgICAgIF0KLSAgICB9
KTsKKyAgICByZXR1cm4gX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9f
LkNvbnRhaW5lci5wYXJzZSgKKyAgICAgIHRva2VuaXNlciwKKyAgICAgIG5ldyBOYW1lc3BhY2Uo
eyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSwKKyAgICAgIHsKKyAgICAgICAg
dHlwZTogIm5hbWVzcGFjZSIsCisgICAgICAgIGFsbG93ZWRNZW1iZXJzOiBbCisgICAgICAgICAg
W19hdHRyaWJ1dGVfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfXy5BdHRyaWJ1dGUucGFy
c2UsIHsgbm9Jbmhlcml0OiB0cnVlLCByZWFkb25seTogdHJ1ZSB9XSwKKyAgICAgICAgICBbX2Nv
bnN0YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X18uQ29uc3RhbnQucGFyc2VdLAor
ICAgICAgICAgIFtfb3BlcmF0aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18uT3Bl
cmF0aW9uLnBhcnNlLCB7IHJlZ3VsYXI6IHRydWUgfV0sCisgICAgICAgIF0sCisgICAgICB9Cisg
ICAgKTsKICAgfQogCiAgIGdldCB0eXBlKCkgewpAQCAtMjcxOSwxNSArMzM4NiwyNCBAQCBjbGFz
cyBOYW1lc3BhY2UgZXh0ZW5kcyBfY29udGFpbmVyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVM
RV8wX19bIkNvbnRhaW5lciJdCiAgIH0KIAogICAqdmFsaWRhdGUoZGVmcykgewotICAgIGlmICgh
dGhpcy5wYXJ0aWFsICYmIHRoaXMuZXh0QXR0cnMuZXZlcnkoZXh0QXR0ciA9PiBleHRBdHRyLm5h
bWUgIT09ICJFeHBvc2VkIikpIHsKKyAgICBpZiAoCisgICAgICAhdGhpcy5wYXJ0aWFsICYmCisg
ICAgICB0aGlzLmV4dEF0dHJzLmV2ZXJ5KChleHRBdHRyKSA9PiBleHRBdHRyLm5hbWUgIT09ICJF
eHBvc2VkIikKKyAgICApIHsKICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgTmFtZXNwYWNlcyBtdXN0
IGhhdmUgW0V4cG9zZWRdIGV4dGVuZGVkIGF0dHJpYnV0ZS4gXAogVG8gZml4LCBhZGQsIGZvciBl
eGFtcGxlLCBbRXhwb3NlZD1XaW5kb3ddLiBQbGVhc2UgYWxzbyBjb25zaWRlciBjYXJlZnVsbHkg
XAogaWYgeW91ciBuYW1lc3BhY2Ugc2hvdWxkIGFsc28gYmUgZXhwb3NlZCBpbiBhIFdvcmtlciBz
Y29wZS4gUmVmZXIgdG8gdGhlIFwKIFtXZWJJREwgc3BlYyBzZWN0aW9uIG9uIEV4cG9zZWRdKGh0
dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI0V4cG9zZWQpIFwKIGZvciBtb3JlIGluZm9y
bWF0aW9uLmA7Ci0gICAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVE
X01PRFVMRV8zX19bInZhbGlkYXRpb25FcnJvciJdKSh0aGlzLnRva2Vucy5uYW1lLCB0aGlzLCAi
cmVxdWlyZS1leHBvc2VkIiwgbWVzc2FnZSwgewotICAgICAgICBhdXRvZml4OiBPYmplY3QoX2hl
bHBlcnNfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1siYXV0b2ZpeEFkZEV4cG9zZWRX
aW5kb3ciXSkodGhpcykKLSAgICAgIH0pOworICAgICAgeWllbGQgKDAsX2Vycm9yX2pzX19XRUJQ
QUNLX0lNUE9SVEVEX01PRFVMRV8zX18udmFsaWRhdGlvbkVycm9yKSgKKyAgICAgICAgdGhpcy50
b2tlbnMubmFtZSwKKyAgICAgICAgdGhpcywKKyAgICAgICAgInJlcXVpcmUtZXhwb3NlZCIsCisg
ICAgICAgIG1lc3NhZ2UsCisgICAgICAgIHsKKyAgICAgICAgICBhdXRvZml4OiAoMCxfaGVscGVy
c19qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fLmF1dG9maXhBZGRFeHBvc2VkV2luZG93
KSh0aGlzKSwKKyAgICAgICAgfQorICAgICAgKTsKICAgICB9CiAgICAgeWllbGQqIHN1cGVyLnZh
bGlkYXRlKGRlZnMpOwogICB9CkBAIC0yNzM2LDExICszNDEyLDEyIEBAIGZvciBtb3JlIGluZm9y
bWF0aW9uLmA7CiAKIC8qKiovIH0pLAogLyogMjkgKi8KLS8qKiovIChmdW5jdGlvbihtb2R1bGUs
IF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKKy8qKiovICgoX191
bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2VicGFja19leHBvcnRzX18sIF9f
d2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3QiOwogX193ZWJwYWNrX3JlcXVp
cmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcp
ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiQ2FsbGJhY2tJ
bnRlcmZhY2UiLCBmdW5jdGlvbigpIHsgcmV0dXJuIENhbGxiYWNrSW50ZXJmYWNlOyB9KTsKKy8q
IGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0
c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJDYWxsYmFja0ludGVyZmFjZSI6ICgpID0+
ICgvKiBiaW5kaW5nICovIENhbGxiYWNrSW50ZXJmYWNlKQorLyogaGFybW9ueSBleHBvcnQgKi8g
fSk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnRhaW5lcl9qc19fV0VCUEFDS19JTVBP
UlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCk7CiAvKiBoYXJtb255IGlt
cG9ydCAqLyB2YXIgX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fID0g
X193ZWJwYWNrX3JlcXVpcmVfXygxMyk7CiAvKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX2NvbnN0
YW50X2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9f
KDIxKTsKQEAgLTI3NTAsNyArMzQyNyw3IEBAIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBh
Y2tfZXhwb3J0c19fKTsKIAogCiAKLWNsYXNzIENhbGxiYWNrSW50ZXJmYWNlIGV4dGVuZHMgX2Nv
bnRhaW5lcl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWyJDb250YWluZXIiXSB7Citj
bGFzcyBDYWxsYmFja0ludGVyZmFjZSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzBfXy5Db250YWluZXIgewogICAvKioKICAgICogQHBhcmFtIHtpbXBvcnQo
Ii4uL3Rva2VuaXNlciIpLlRva2VuaXNlcn0gdG9rZW5pc2VyCiAgICAqLwpAQCAtMjc2MCwxNCAr
MzQzNywxOCBAQCBjbGFzcyBDYWxsYmFja0ludGVyZmFjZSBleHRlbmRzIF9jb250YWluZXJfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udAogICAgIGlmICghdG9rZW5zLmJhc2Up
IHsKICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgcmV0dXJuIF9jb250YWluZXJfanNfX1dFQlBB
Q0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29udGFpbmVyIl0ucGFyc2UodG9rZW5pc2VyLCBuZXcg
Q2FsbGJhY2tJbnRlcmZhY2UoeyBzb3VyY2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSwg
ewotICAgICAgdHlwZTogImNhbGxiYWNrIGludGVyZmFjZSIsCi0gICAgICBpbmhlcml0YWJsZTog
IXBhcnRpYWwsCi0gICAgICBhbGxvd2VkTWVtYmVyczogWwotICAgICAgICBbX2NvbnN0YW50X2pz
X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19bIkNvbnN0YW50Il0ucGFyc2VdLAotICAgICAg
ICBbX29wZXJhdGlvbl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fWyJPcGVyYXRpb24i
XS5wYXJzZSwgeyByZWd1bGFyOiB0cnVlIH1dCi0gICAgICBdCi0gICAgfSk7CisgICAgcmV0dXJu
IF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy5Db250YWluZXIucGFy
c2UoCisgICAgICB0b2tlbmlzZXIsCisgICAgICBuZXcgQ2FsbGJhY2tJbnRlcmZhY2UoeyBzb3Vy
Y2U6IHRva2VuaXNlci5zb3VyY2UsIHRva2VucyB9KSwKKyAgICAgIHsKKyAgICAgICAgdHlwZTog
ImNhbGxiYWNrIGludGVyZmFjZSIsCisgICAgICAgIGluaGVyaXRhYmxlOiAhcGFydGlhbCwKKyAg
ICAgICAgYWxsb3dlZE1lbWJlcnM6IFsKKyAgICAgICAgICBbX2NvbnN0YW50X2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8yX18uQ29uc3RhbnQucGFyc2VdLAorICAgICAgICAgIFtfb3BlcmF0
aW9uX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX18uT3BlcmF0aW9uLnBhcnNlLCB7IHJl
Z3VsYXI6IHRydWUgfV0sCisgICAgICAgIF0sCisgICAgICB9CisgICAgKTsKICAgfQogCiAgIGdl
dCB0eXBlKCkgewpAQCAtMjc3OCwxOSArMzQ1OSwxOSBAQCBjbGFzcyBDYWxsYmFja0ludGVyZmFj
ZSBleHRlbmRzIF9jb250YWluZXJfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1siQ29u
dAogCiAvKioqLyB9KSwKIC8qIDMwICovCi0vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBh
Y2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CisvKioqLyAoKF9fdW51c2VkX3dl
YnBhY2tfX193ZWJwYWNrX21vZHVsZV9fLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tf
cmVxdWlyZV9fKSA9PiB7CiAKLSJ1c2Ugc3RyaWN0IjsKIF9fd2VicGFja19yZXF1aXJlX18ucihf
X3dlYnBhY2tfZXhwb3J0c19fKTsKLS8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dl
YnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgIndyaXRlIiwgZnVuY3Rpb24o
KSB7IHJldHVybiB3cml0ZTsgfSk7Ci0KLQorLyogaGFybW9ueSBleHBvcnQgKi8gX193ZWJwYWNr
X3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIHsKKy8qIGhhcm1vbnkgZXhwb3J0ICov
ICAgIldyaXRlciI6ICgpID0+ICgvKiBiaW5kaW5nICovIFdyaXRlciksCisvKiBoYXJtb255IGV4
cG9ydCAqLyAgICJ3cml0ZSI6ICgpID0+ICgvKiBiaW5kaW5nICovIHdyaXRlKQorLyogaGFybW9u
eSBleHBvcnQgKi8gfSk7CiBmdW5jdGlvbiBub29wKGFyZykgewogICByZXR1cm4gYXJnOwogfQog
CiBjb25zdCB0ZW1wbGF0ZXMgPSB7Ci0gIHdyYXA6IGl0ZW1zID0+IGl0ZW1zLmpvaW4oIiIpLAor
ICB3cmFwOiAoaXRlbXMpID0+IGl0ZW1zLmpvaW4oIiIpLAogICB0cml2aWE6IG5vb3AsCiAgIG5h
bWU6IG5vb3AsCiAgIHJlZmVyZW5jZTogbm9vcCwKQEAgLTI4MDAsMzM1ICszNDgxLDc0IEBAIGNv
bnN0IHRlbXBsYXRlcyA9IHsKICAgaW5oZXJpdGFuY2U6IG5vb3AsCiAgIGRlZmluaXRpb246IG5v
b3AsCiAgIGV4dGVuZGVkQXR0cmlidXRlOiBub29wLAotICBleHRlbmRlZEF0dHJpYnV0ZVJlZmVy
ZW5jZTogbm9vcAorICBleHRlbmRlZEF0dHJpYnV0ZVJlZmVyZW5jZTogbm9vcCwKIH07CiAKLWZ1
bmN0aW9uIHdyaXRlKGFzdCwgeyB0ZW1wbGF0ZXM6IHRzID0gdGVtcGxhdGVzIH0gPSB7fSkgewot
ICB0cyA9IE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlcywgdHMpOworY2xhc3MgV3JpdGVyIHsK
KyAgY29uc3RydWN0b3IodHMpIHsKKyAgICB0aGlzLnRzID0gT2JqZWN0LmFzc2lnbih7fSwgdGVt
cGxhdGVzLCB0cyk7CisgIH0KIAotICBmdW5jdGlvbiByZWZlcmVuY2UocmF3LCB7IHVuZXNjYXBl
ZCwgY29udGV4dCB9KSB7CisgIHJlZmVyZW5jZShyYXcsIHsgdW5lc2NhcGVkLCBjb250ZXh0IH0p
IHsKICAgICBpZiAoIXVuZXNjYXBlZCkgewogICAgICAgdW5lc2NhcGVkID0gcmF3LnN0YXJ0c1dp
dGgoIl8iKSA/IHJhdy5zbGljZSgxKSA6IHJhdzsKICAgICB9Ci0gICAgcmV0dXJuIHRzLnJlZmVy
ZW5jZShyYXcsIHVuZXNjYXBlZCwgY29udGV4dCk7CisgICAgcmV0dXJuIHRoaXMudHMucmVmZXJl
bmNlKHJhdywgdW5lc2NhcGVkLCBjb250ZXh0KTsKICAgfQogCi0gIGZ1bmN0aW9uIHRva2VuKHQs
IHdyYXBwZXIgPSBub29wLCAuLi5hcmdzKSB7CisgIHRva2VuKHQsIHdyYXBwZXIgPSBub29wLCAu
Li5hcmdzKSB7CiAgICAgaWYgKCF0KSB7CiAgICAgICByZXR1cm4gIiI7CiAgICAgfQogICAgIGNv
bnN0IHZhbHVlID0gd3JhcHBlcih0LnZhbHVlLCAuLi5hcmdzKTsKLSAgICByZXR1cm4gdHMud3Jh
cChbdHMudHJpdmlhKHQudHJpdmlhKSwgdmFsdWVdKTsKKyAgICByZXR1cm4gdGhpcy50cy53cmFw
KFt0aGlzLnRzLnRyaXZpYSh0LnRyaXZpYSksIHZhbHVlXSk7CiAgIH0KIAotICBmdW5jdGlvbiBy
ZWZlcmVuY2VfdG9rZW4odCwgY29udGV4dCkgewotICAgIHJldHVybiB0b2tlbih0LCByZWZlcmVu
Y2UsIHsgY29udGV4dCB9KTsKKyAgcmVmZXJlbmNlX3Rva2VuKHQsIGNvbnRleHQpIHsKKyAgICBy
ZXR1cm4gdGhpcy50b2tlbih0LCB0aGlzLnJlZmVyZW5jZS5iaW5kKHRoaXMpLCB7IGNvbnRleHQg
fSk7CiAgIH0KIAotICBmdW5jdGlvbiBuYW1lX3Rva2VuKHQsIGFyZykgewotICAgIHJldHVybiB0
b2tlbih0LCB0cy5uYW1lLCBhcmcpOworICBuYW1lX3Rva2VuKHQsIGFyZykgeworICAgIHJldHVy
biB0aGlzLnRva2VuKHQsIHRoaXMudHMubmFtZSwgYXJnKTsKICAgfQogCi0gIGZ1bmN0aW9uIHR5
cGVfYm9keShpdCkgewotICAgIGlmIChpdC51bmlvbiB8fCBpdC5nZW5lcmljKSB7Ci0gICAgICBy
ZXR1cm4gdHMud3JhcChbCi0gICAgICAgIHRva2VuKGl0LnRva2Vucy5iYXNlLCB0cy5nZW5lcmlj
KSwKLSAgICAgICAgdG9rZW4oaXQudG9rZW5zLm9wZW4pLAotICAgICAgICAuLi5pdC5zdWJ0eXBl
Lm1hcCh0eXBlKSwKLSAgICAgICAgdG9rZW4oaXQudG9rZW5zLmNsb3NlKQotICAgICAgXSk7Ci0g
ICAgfQotICAgIGNvbnN0IGZpcnN0VG9rZW4gPSBpdC50b2tlbnMucHJlZml4IHx8IGl0LnRva2Vu
cy5iYXNlOwotICAgIGNvbnN0IHByZWZpeCA9IGl0LnRva2Vucy5wcmVmaXggPyBbCi0gICAgICBp
dC50b2tlbnMucHJlZml4LnZhbHVlLAotICAgICAgdHMudHJpdmlhKGl0LnRva2Vucy5iYXNlLnRy
aXZpYSkKLSAgICBdIDogW107Ci0gICAgY29uc3QgcmVmID0gcmVmZXJlbmNlKHRzLndyYXAoWwot
ICAgICAgLi4ucHJlZml4LAotICAgICAgaXQudG9rZW5zLmJhc2UudmFsdWUsCi0gICAgICB0b2tl
bihpdC50b2tlbnMucG9zdGZpeCkKLSAgICBdKSwgeyB1bmVzY2FwZWQ6IGl0LmlkbFR5cGUsIGNv
bnRleHQ6IGl0IH0pOwotICAgIHJldHVybiB0cy53cmFwKFt0cy50cml2aWEoZmlyc3RUb2tlbi50
cml2aWEpLCByZWZdKTsKLSAgfQotICBmdW5jdGlvbiB0eXBlKGl0KSB7Ci0gICAgcmV0dXJuIHRz
LndyYXAoWwotICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCi0gICAgICB0
eXBlX2JvZHkoaXQpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLm51bGxhYmxlKSwKLSAgICAgIHRv
a2VuKGl0LnRva2Vucy5zZXBhcmF0b3IpCi0gICAgXSk7Ci0gIH0KLSAgZnVuY3Rpb24gZGVmYXVs
dF8oZGVmKSB7Ci0gICAgaWYgKCFkZWYpIHsKLSAgICAgIHJldHVybiAiIjsKLSAgICB9Ci0gICAg
cmV0dXJuIHRzLndyYXAoWwotICAgICAgdG9rZW4oZGVmLnRva2Vucy5hc3NpZ24pLAotICAgICAg
Li4uZGVmLmV4cHJlc3Npb24ubWFwKHQgPT4gdG9rZW4odCkpCi0gICAgXSk7Ci0gIH0KLSAgZnVu
Y3Rpb24gYXJndW1lbnQoYXJnKSB7Ci0gICAgcmV0dXJuIHRzLndyYXAoWwotICAgICAgZXh0ZW5k
ZWRfYXR0cmlidXRlcyhhcmcuZXh0QXR0cnMpLAotICAgICAgdG9rZW4oYXJnLnRva2Vucy5vcHRp
b25hbCksCi0gICAgICB0cy50eXBlKHR5cGUoYXJnLmlkbFR5cGUpKSwKLSAgICAgIHRva2VuKGFy
Zy50b2tlbnMudmFyaWFkaWMpLAotICAgICAgbmFtZV90b2tlbihhcmcudG9rZW5zLm5hbWUsIHsg
ZGF0YTogYXJnIH0pLAotICAgICAgZGVmYXVsdF8oYXJnLmRlZmF1bHQpLAotICAgICAgdG9rZW4o
YXJnLnRva2Vucy5zZXBhcmF0b3IpCi0gICAgXSk7Ci0gIH0KLSAgZnVuY3Rpb24gZXh0ZW5kZWRf
YXR0cmlidXRlX2xpc3RpdGVtKHN0cikgewotICAgIHJldHVybiB0cy53cmFwKFsKLSAgICAgIHRv
a2VuKHN0ci50b2tlbnMudmFsdWUpLAotICAgICAgdG9rZW4oc3RyLnRva2Vucy5zZXBhcmF0b3Ip
Ci0gICAgXSk7Ci0gIH0KLSAgZnVuY3Rpb24gaWRlbnRpZmllcihpZCwgY29udGV4dCkgewotICAg
IHJldHVybiB0cy53cmFwKFsKLSAgICAgIHJlZmVyZW5jZV90b2tlbihpZC50b2tlbnMudmFsdWUs
IGNvbnRleHQpLAotICAgICAgdG9rZW4oaWQudG9rZW5zLnNlcGFyYXRvcikKLSAgICBdKTsKLSAg
fQotICBmdW5jdGlvbiBtYWtlX2V4dF9hdChpdCkgewotICAgIGNvbnN0IHsgcmhzVHlwZSB9ID0g
aXQucGFyYW1zOwotICAgIHJldHVybiB0cy53cmFwKFsKLSAgICAgIHRzLnRyaXZpYShpdC50b2tl
bnMubmFtZS50cml2aWEpLAotICAgICAgdHMuZXh0ZW5kZWRBdHRyaWJ1dGUodHMud3JhcChbCi0g
ICAgICAgIHRzLmV4dGVuZGVkQXR0cmlidXRlUmVmZXJlbmNlKGl0Lm5hbWUpLAotICAgICAgICB0
b2tlbihpdC5wYXJhbXMudG9rZW5zLmFzc2lnbiksCi0gICAgICAgIHJlZmVyZW5jZV90b2tlbihp
dC5wYXJhbXMudG9rZW5zLnNlY29uZGFyeU5hbWUsIGl0KSwKLSAgICAgICAgdG9rZW4oaXQucGFy
YW1zLnRva2Vucy5vcGVuKSwKLSAgICAgICAgLi4uIWl0LnBhcmFtcy5saXN0ID8gW10gOgotICAg
ICAgICAgIGl0LnBhcmFtcy5saXN0Lm1hcCgKLSAgICAgICAgICAgIHJoc1R5cGUgPT09ICJpZGVu
dGlmaWVyLWxpc3QiID8gaWQgPT4gaWRlbnRpZmllcihpZCwgaXQpIDoKLSAgICAgICAgICAgIHJo
c1R5cGUgJiYgcmhzVHlwZS5lbmRzV2l0aCgiLWxpc3QiKSA/IGV4dGVuZGVkX2F0dHJpYnV0ZV9s
aXN0aXRlbSA6Ci0gICAgICAgICAgICBhcmd1bWVudAotICAgICAgICAgICksCi0gICAgICAgIHRv
a2VuKGl0LnBhcmFtcy50b2tlbnMuY2xvc2UpCi0gICAgICBdKSksCi0gICAgICB0b2tlbihpdC50
b2tlbnMuc2VwYXJhdG9yKQotICAgIF0pOwotICB9Ci0gIGZ1bmN0aW9uIGV4dGVuZGVkX2F0dHJp
YnV0ZXMoZWF0cykgewotICAgIGlmICghZWF0cy5sZW5ndGgpIHJldHVybiAiIjsKLSAgICByZXR1
cm4gdHMud3JhcChbCi0gICAgICB0b2tlbihlYXRzLnRva2Vucy5vcGVuKSwKLSAgICAgIC4uLmVh
dHMubWFwKG1ha2VfZXh0X2F0KSwKLSAgICAgIHRva2VuKGVhdHMudG9rZW5zLmNsb3NlKQorICBp
ZGVudGlmaWVyKGlkLCBjb250ZXh0KSB7CisgICAgcmV0dXJuIHRoaXMudHMud3JhcChbCisgICAg
ICB0aGlzLnJlZmVyZW5jZV90b2tlbihpZC50b2tlbnMudmFsdWUsIGNvbnRleHQpLAorICAgICAg
dGhpcy50b2tlbihpZC50b2tlbnMuc2VwYXJhdG9yKSwKICAgICBdKTsKICAgfQorfQogCi0gIGZ1
bmN0aW9uIG9wZXJhdGlvbihpdCwgcGFyZW50KSB7Ci0gICAgY29uc3QgYm9keSA9IGl0LmlkbFR5
cGUgPyBbCi0gICAgICB0cy50eXBlKHR5cGUoaXQuaWRsVHlwZSkpLAotICAgICAgbmFtZV90b2tl
bihpdC50b2tlbnMubmFtZSwgeyBkYXRhOiBpdCwgcGFyZW50IH0pLAotICAgICAgdG9rZW4oaXQu
dG9rZW5zLm9wZW4pLAotICAgICAgdHMud3JhcChpdC5hcmd1bWVudHMubWFwKGFyZ3VtZW50KSks
Ci0gICAgICB0b2tlbihpdC50b2tlbnMuY2xvc2UpLAotICAgIF0gOiBbXTsKLSAgICByZXR1cm4g
dHMuZGVmaW5pdGlvbih0cy53cmFwKFsKLSAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0
QXR0cnMpLAotICAgICAgaXQudG9rZW5zLm5hbWUgPyB0b2tlbihpdC50b2tlbnMuc3BlY2lhbCkg
OiB0b2tlbihpdC50b2tlbnMuc3BlY2lhbCwgdHMubmFtZWxlc3MsIHsgZGF0YTogaXQsIHBhcmVu
dCB9KSwKLSAgICAgIC4uLmJvZHksCi0gICAgICB0b2tlbihpdC50b2tlbnMudGVybWluYXRpb24p
Ci0gICAgXSksIHsgZGF0YTogaXQsIHBhcmVudCB9KTsKLSAgfQotCi0gIGZ1bmN0aW9uIGF0dHJp
YnV0ZShpdCwgcGFyZW50KSB7Ci0gICAgcmV0dXJuIHRzLmRlZmluaXRpb24odHMud3JhcChbCi0g
ICAgICBleHRlbmRlZF9hdHRyaWJ1dGVzKGl0LmV4dEF0dHJzKSwKLSAgICAgIHRva2VuKGl0LnRv
a2Vucy5zcGVjaWFsKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5yZWFkb25seSksCi0gICAgICB0
b2tlbihpdC50b2tlbnMuYmFzZSksCi0gICAgICB0cy50eXBlKHR5cGUoaXQuaWRsVHlwZSkpLAot
ICAgICAgbmFtZV90b2tlbihpdC50b2tlbnMubmFtZSwgeyBkYXRhOiBpdCwgcGFyZW50IH0pLAot
ICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQotICAgIF0pLCB7IGRhdGE6IGl0LCBw
YXJlbnQgfSk7Ci0gIH0KLQotICBmdW5jdGlvbiBjb25zdHJ1Y3RvcihpdCwgcGFyZW50KSB7Ci0g
ICAgcmV0dXJuIHRzLmRlZmluaXRpb24odHMud3JhcChbCi0gICAgICBleHRlbmRlZF9hdHRyaWJ1
dGVzKGl0LmV4dEF0dHJzKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5iYXNlLCB0cy5uYW1lbGVz
cywgeyBkYXRhOiBpdCwgcGFyZW50IH0pLAotICAgICAgdG9rZW4oaXQudG9rZW5zLm9wZW4pLAot
ICAgICAgdHMud3JhcChpdC5hcmd1bWVudHMubWFwKGFyZ3VtZW50KSksCi0gICAgICB0b2tlbihp
dC50b2tlbnMuY2xvc2UpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQotICAg
IF0pLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSk7Ci0gIH0KLQotICBmdW5jdGlvbiBpbmhlcml0YW5j
ZShpbmgpIHsKLSAgICBpZiAoIWluaC50b2tlbnMuaW5oZXJpdGFuY2UpIHsKLSAgICAgIHJldHVy
biAiIjsKLSAgICB9Ci0gICAgcmV0dXJuIHRzLndyYXAoWwotICAgICAgdG9rZW4oaW5oLnRva2Vu
cy5jb2xvbiksCi0gICAgICB0cy50cml2aWEoaW5oLnRva2Vucy5pbmhlcml0YW5jZS50cml2aWEp
LAotICAgICAgdHMuaW5oZXJpdGFuY2UocmVmZXJlbmNlKGluaC50b2tlbnMuaW5oZXJpdGFuY2Uu
dmFsdWUsIHsgY29udGV4dDogaW5oIH0pKQotICAgIF0pOwotICB9CitmdW5jdGlvbiB3cml0ZShh
c3QsIHsgdGVtcGxhdGVzOiB0cyA9IHRlbXBsYXRlcyB9ID0ge30pIHsKKyAgdHMgPSBPYmplY3Qu
YXNzaWduKHt9LCB0ZW1wbGF0ZXMsIHRzKTsKIAotICBmdW5jdGlvbiBjb250YWluZXIoaXQpIHsK
LSAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKLSAgICAgIGV4dGVuZGVkX2F0dHJp
YnV0ZXMoaXQuZXh0QXR0cnMpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLmNhbGxiYWNrKSwKLSAg
ICAgIHRva2VuKGl0LnRva2Vucy5wYXJ0aWFsKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5iYXNl
KSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5taXhpbiksCi0gICAgICBuYW1lX3Rva2VuKGl0LnRv
a2Vucy5uYW1lLCB7IGRhdGE6IGl0IH0pLAotICAgICAgaW5oZXJpdGFuY2UoaXQpLAotICAgICAg
dG9rZW4oaXQudG9rZW5zLm9wZW4pLAotICAgICAgaXRlcmF0ZShpdC5tZW1iZXJzLCBpdCksCi0g
ICAgICB0b2tlbihpdC50b2tlbnMuY2xvc2UpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1p
bmF0aW9uKQotICAgIF0pLCB7IGRhdGE6IGl0IH0pOwotICB9Ci0KLSAgZnVuY3Rpb24gZmllbGQo
aXQsIHBhcmVudCkgewotICAgIHJldHVybiB0cy5kZWZpbml0aW9uKHRzLndyYXAoWwotICAgICAg
ZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5leHRBdHRycyksCi0gICAgICB0b2tlbihpdC50b2tlbnMu
cmVxdWlyZWQpLAotICAgICAgdHMudHlwZSh0eXBlKGl0LmlkbFR5cGUpKSwKLSAgICAgIG5hbWVf
dG9rZW4oaXQudG9rZW5zLm5hbWUsIHsgZGF0YTogaXQsIHBhcmVudCB9KSwKLSAgICAgIGRlZmF1
bHRfKGl0LmRlZmF1bHQpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQotICAg
IF0pLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSk7Ci0gIH0KLSAgZnVuY3Rpb24gY29uc3RfKGl0LCBw
YXJlbnQpIHsKLSAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFwKFsKLSAgICAgIGV4dGVu
ZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLmJhc2Up
LAotICAgICAgdHMudHlwZSh0eXBlKGl0LmlkbFR5cGUpKSwKLSAgICAgIG5hbWVfdG9rZW4oaXQu
dG9rZW5zLm5hbWUsIHsgZGF0YTogaXQsIHBhcmVudCB9KSwKLSAgICAgIHRva2VuKGl0LnRva2Vu
cy5hc3NpZ24pLAotICAgICAgdG9rZW4oaXQudG9rZW5zLnZhbHVlKSwKLSAgICAgIHRva2VuKGl0
LnRva2Vucy50ZXJtaW5hdGlvbikKLSAgICBdKSwgeyBkYXRhOiBpdCwgcGFyZW50IH0pOwotICB9
Ci0gIGZ1bmN0aW9uIHR5cGVkZWYoaXQpIHsKLSAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53
cmFwKFsKLSAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAotICAgICAgdG9r
ZW4oaXQudG9rZW5zLmJhc2UpLAotICAgICAgdHMudHlwZSh0eXBlKGl0LmlkbFR5cGUpKSwKLSAg
ICAgIG5hbWVfdG9rZW4oaXQudG9rZW5zLm5hbWUsIHsgZGF0YTogaXQgfSksCi0gICAgICB0b2tl
bihpdC50b2tlbnMudGVybWluYXRpb24pCi0gICAgXSksIHsgZGF0YTogaXQgfSk7Ci0gIH0KLSAg
ZnVuY3Rpb24gaW5jbHVkZXMoaXQpIHsKLSAgICByZXR1cm4gdHMuZGVmaW5pdGlvbih0cy53cmFw
KFsKLSAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAotICAgICAgcmVmZXJl
bmNlX3Rva2VuKGl0LnRva2Vucy50YXJnZXQsIGl0KSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5p
bmNsdWRlcyksCi0gICAgICByZWZlcmVuY2VfdG9rZW4oaXQudG9rZW5zLm1peGluLCBpdCksCi0g
ICAgICB0b2tlbihpdC50b2tlbnMudGVybWluYXRpb24pCi0gICAgXSksIHsgZGF0YTogaXQgfSk7
Ci0gIH0KLSAgZnVuY3Rpb24gY2FsbGJhY2soaXQpIHsKLSAgICByZXR1cm4gdHMuZGVmaW5pdGlv
bih0cy53cmFwKFsKLSAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0QXR0cnMpLAotICAg
ICAgdG9rZW4oaXQudG9rZW5zLmJhc2UpLAotICAgICAgbmFtZV90b2tlbihpdC50b2tlbnMubmFt
ZSwgeyBkYXRhOiBpdCB9KSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5hc3NpZ24pLAotICAgICAg
dHMudHlwZSh0eXBlKGl0LmlkbFR5cGUpKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5vcGVuKSwK
LSAgICAgIC4uLml0LmFyZ3VtZW50cy5tYXAoYXJndW1lbnQpLAotICAgICAgdG9rZW4oaXQudG9r
ZW5zLmNsb3NlKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy50ZXJtaW5hdGlvbiksCi0gICAgXSks
IHsgZGF0YTogaXQgfSk7Ci0gIH0KLSAgZnVuY3Rpb24gZW51bV8oaXQpIHsKLSAgICByZXR1cm4g
dHMuZGVmaW5pdGlvbih0cy53cmFwKFsKLSAgICAgIGV4dGVuZGVkX2F0dHJpYnV0ZXMoaXQuZXh0
QXR0cnMpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLmJhc2UpLAotICAgICAgbmFtZV90b2tlbihp
dC50b2tlbnMubmFtZSwgeyBkYXRhOiBpdCB9KSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5vcGVu
KSwKLSAgICAgIGl0ZXJhdGUoaXQudmFsdWVzLCBpdCksCi0gICAgICB0b2tlbihpdC50b2tlbnMu
Y2xvc2UpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLnRlcm1pbmF0aW9uKQotICAgIF0pLCB7IGRh
dGE6IGl0IH0pOwotICB9Ci0gIGZ1bmN0aW9uIGVudW1fdmFsdWUodiwgcGFyZW50KSB7Ci0gICAg
cmV0dXJuIHRzLndyYXAoWwotICAgICAgdHMudHJpdmlhKHYudG9rZW5zLnZhbHVlLnRyaXZpYSks
Ci0gICAgICB0cy5kZWZpbml0aW9uKAotICAgICAgICB0cy53cmFwKFsnIicsIHRzLm5hbWUodi52
YWx1ZSwgeyBkYXRhOiB2LCBwYXJlbnQgfSksICciJ10pLAotICAgICAgICB7IGRhdGE6IHYsIHBh
cmVudCB9Ci0gICAgICApLAotICAgICAgdG9rZW4odi50b2tlbnMuc2VwYXJhdG9yKQotICAgIF0p
OwotICB9Ci0gIGZ1bmN0aW9uIGl0ZXJhYmxlX2xpa2UoaXQsIHBhcmVudCkgewotICAgIHJldHVy
biB0cy5kZWZpbml0aW9uKHRzLndyYXAoWwotICAgICAgZXh0ZW5kZWRfYXR0cmlidXRlcyhpdC5l
eHRBdHRycyksCi0gICAgICB0b2tlbihpdC50b2tlbnMucmVhZG9ubHkpLAotICAgICAgdG9rZW4o
aXQudG9rZW5zLmFzeW5jKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5iYXNlLCB0cy5nZW5lcmlj
KSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5vcGVuKSwKLSAgICAgIHRzLndyYXAoaXQuaWRsVHlw
ZS5tYXAodHlwZSkpLAotICAgICAgdG9rZW4oaXQudG9rZW5zLmNsb3NlKSwKLSAgICAgIHRva2Vu
KGl0LnRva2Vucy5hcmdzT3BlbiksCi0gICAgICB0cy53cmFwKGl0LmFyZ3VtZW50cy5tYXAoYXJn
dW1lbnQpKSwKLSAgICAgIHRva2VuKGl0LnRva2Vucy5hcmdzQ2xvc2UpLAotICAgICAgdG9rZW4o
aXQudG9rZW5zLnRlcm1pbmF0aW9uKQotICAgIF0pLCB7IGRhdGE6IGl0LCBwYXJlbnQgfSk7Ci0g
IH0KLSAgZnVuY3Rpb24gZW9mKGl0KSB7Ci0gICAgcmV0dXJuIHRzLnRyaXZpYShpdC50cml2aWEp
OwotICB9Ci0KLSAgY29uc3QgdGFibGUgPSB7Ci0gICAgaW50ZXJmYWNlOiBjb250YWluZXIsCi0g
ICAgImludGVyZmFjZSBtaXhpbiI6IGNvbnRhaW5lciwKLSAgICBuYW1lc3BhY2U6IGNvbnRhaW5l
ciwKLSAgICBvcGVyYXRpb24sCi0gICAgYXR0cmlidXRlLAotICAgIGNvbnN0cnVjdG9yLAotICAg
IGRpY3Rpb25hcnk6IGNvbnRhaW5lciwKLSAgICBmaWVsZCwKLSAgICBjb25zdDogY29uc3RfLAot
ICAgIHR5cGVkZWYsCi0gICAgaW5jbHVkZXMsCi0gICAgY2FsbGJhY2ssCi0gICAgZW51bTogZW51
bV8sCi0gICAgImVudW0tdmFsdWUiOiBlbnVtX3ZhbHVlLAotICAgIGl0ZXJhYmxlOiBpdGVyYWJs
ZV9saWtlLAotICAgIG1hcGxpa2U6IGl0ZXJhYmxlX2xpa2UsCi0gICAgc2V0bGlrZTogaXRlcmFi
bGVfbGlrZSwKLSAgICAiY2FsbGJhY2sgaW50ZXJmYWNlIjogY29udGFpbmVyLAotICAgIGVvZgot
ICB9OwotICBmdW5jdGlvbiBkaXNwYXRjaChpdCwgcGFyZW50KSB7Ci0gICAgY29uc3QgZGlzcGF0
Y2hlciA9IHRhYmxlW2l0LnR5cGVdOwotICAgIGlmICghZGlzcGF0Y2hlcikgewotICAgICAgdGhy
b3cgbmV3IEVycm9yKGBUeXBlICIke2l0LnR5cGV9IiBpcyB1bnN1cHBvcnRlZGApOworICBjb25z
dCB3ID0gbmV3IFdyaXRlcih0cyk7CisKKyAgZnVuY3Rpb24gZGlzcGF0Y2goaXQpIHsKKyAgICBp
ZiAoaXQudHlwZSA9PT0gImVvZiIpIHsKKyAgICAgIHJldHVybiB0cy50cml2aWEoaXQudHJpdmlh
KTsKICAgICB9Ci0gICAgcmV0dXJuIHRhYmxlW2l0LnR5cGVdKGl0LCBwYXJlbnQpOwotICB9Ci0g
IGZ1bmN0aW9uIGl0ZXJhdGUodGhpbmdzLCBwYXJlbnQpIHsKLSAgICBpZiAoIXRoaW5ncykgcmV0
dXJuOwotICAgIGNvbnN0IHJlc3VsdHMgPSB0aGluZ3MubWFwKHRoaW5nID0+IGRpc3BhdGNoKHRo
aW5nLCBwYXJlbnQpKTsKLSAgICByZXR1cm4gdHMud3JhcChyZXN1bHRzKTsKKyAgICByZXR1cm4g
aXQud3JpdGUodyk7CiAgIH0KLSAgcmV0dXJuIGl0ZXJhdGUoYXN0KTsKKyAgcmV0dXJuIHRzLndy
YXAoYXN0Lm1hcChkaXNwYXRjaCkpOwogfQogCiAKIC8qKiovIH0pLAogLyogMzEgKi8KLS8qKiov
IChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJl
X18pIHsKKy8qKiovICgoX191bnVzZWRfd2VicGFja19fX3dlYnBhY2tfbW9kdWxlX18sIF9fd2Vi
cGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pID0+IHsKIAotInVzZSBzdHJpY3Qi
OwogX193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pOwotLyogaGFybW9u
eSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhw
b3J0c19fLCAidmFsaWRhdGUiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHZhbGlkYXRlOyB9KTsKKy8q
IGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0
c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJ2YWxpZGF0ZSI6ICgpID0+ICgvKiBiaW5k
aW5nICovIHZhbGlkYXRlKQorLyogaGFybW9ueSBleHBvcnQgKi8gfSk7CiAvKiBoYXJtb255IGlt
cG9ydCAqLyB2YXIgX2Vycm9yX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dl
YnBhY2tfcmVxdWlyZV9fKDMpOwogCiAKLQotCiBmdW5jdGlvbiBnZXRNaXhpbk1hcChhbGwsIHVu
aXF1ZSkgewogICBjb25zdCBtYXAgPSBuZXcgTWFwKCk7Ci0gIGNvbnN0IGluY2x1ZGVzID0gYWxs
LmZpbHRlcihkZWYgPT4gZGVmLnR5cGUgPT09ICJpbmNsdWRlcyIpOworICBjb25zdCBpbmNsdWRl
cyA9IGFsbC5maWx0ZXIoKGRlZikgPT4gZGVmLnR5cGUgPT09ICJpbmNsdWRlcyIpOwogICBmb3Ig
KGNvbnN0IGluY2x1ZGUgb2YgaW5jbHVkZXMpIHsKICAgICBjb25zdCBtaXhpbiA9IHVuaXF1ZS5n
ZXQoaW5jbHVkZS5pbmNsdWRlcyk7CiAgICAgaWYgKCFtaXhpbikgewpAQCAtMzE3OCw3ICszNTk4
LDcgQEAgZnVuY3Rpb24gZ3JvdXBEZWZpbml0aW9ucyhhbGwpIHsKICAgICBtaXhpbk1hcDogZ2V0
TWl4aW5NYXAoYWxsLCB1bmlxdWUpLAogICAgIGNhY2hlOiB7CiAgICAgICB0eXBlZGVmSW5jbHVk
ZXNEaWN0aW9uYXJ5OiBuZXcgV2Vha01hcCgpLAotICAgICAgZGljdGlvbmFyeUluY2x1ZGVzUmVx
dWlyZWRGaWVsZDogbmV3IFdlYWtNYXAoKQorICAgICAgZGljdGlvbmFyeUluY2x1ZGVzUmVxdWly
ZWRGaWVsZDogbmV3IFdlYWtNYXAoKSwKICAgICB9LAogICB9OwogfQpAQCAtMzE4Niw4ICszNjA2
LDEwIEBAIGZ1bmN0aW9uIGdyb3VwRGVmaW5pdGlvbnMoYWxsKSB7CiBmdW5jdGlvbiogY2hlY2tE
dXBsaWNhdGVkTmFtZXMoeyB1bmlxdWUsIGR1cGxpY2F0ZXMgfSkgewogICBmb3IgKGNvbnN0IGR1
cCBvZiBkdXBsaWNhdGVzKSB7CiAgICAgY29uc3QgeyBuYW1lIH0gPSBkdXA7Ci0gICAgY29uc3Qg
bWVzc2FnZSA9IGBUaGUgbmFtZSAiJHtuYW1lfSIgb2YgdHlwZSAiJHt1bmlxdWUuZ2V0KG5hbWUp
LnR5cGV9IiB3YXMgYWxyZWFkeSBzZWVuYDsKLSAgICB5aWVsZCBPYmplY3QoX2Vycm9yX2pzX19X
RUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bInZhbGlkYXRpb25FcnJvciJdKShkdXAudG9rZW5z
Lm5hbWUsIGR1cCwgIm5vLWR1cGxpY2F0ZSIsIG1lc3NhZ2UpOworICAgIGNvbnN0IG1lc3NhZ2Ug
PSBgVGhlIG5hbWUgIiR7bmFtZX0iIG9mIHR5cGUgIiR7CisgICAgICB1bmlxdWUuZ2V0KG5hbWUp
LnR5cGUKKyAgICB9IiB3YXMgYWxyZWFkeSBzZWVuYDsKKyAgICB5aWVsZCAoMCxfZXJyb3JfanNf
X1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXy52YWxpZGF0aW9uRXJyb3IpKGR1cC50b2tlbnMu
bmFtZSwgZHVwLCAibm8tZHVwbGljYXRlIiwgbWVzc2FnZSk7CiAgIH0KIH0KIApAQCAtMzIxOCw2
ICszNjQwLDg1IEBAIGZ1bmN0aW9uIHZhbGlkYXRlKGFzdCkgewogCiAKIC8qKiovIH0pCi0vKioq
KioqLyBdKTsKKy8qKioqKiovIAldKTsKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioqKioqLyAJLy8g
VGhlIG1vZHVsZSBjYWNoZQorLyoqKioqKi8gCXZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18g
PSB7fTsKKy8qKioqKiovIAkKKy8qKioqKiovIAkvLyBUaGUgcmVxdWlyZSBmdW5jdGlvbgorLyoq
KioqKi8gCWZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHsKKy8qKioqKiov
IAkJLy8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlCisvKioqKioqLyAJCXZhciBjYWNoZWRN
b2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdOworLyoqKioqKi8gCQlp
ZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHsKKy8qKioqKiovIAkJCXJldHVybiBjYWNo
ZWRNb2R1bGUuZXhwb3J0czsKKy8qKioqKiovIAkJfQorLyoqKioqKi8gCQkvLyBDcmVhdGUgYSBu
ZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKQorLyoqKioqKi8gCQl2YXIgbW9k
dWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHsKKy8qKioqKiovIAkJ
CS8vIG5vIG1vZHVsZS5pZCBuZWVkZWQKKy8qKioqKiovIAkJCS8vIG5vIG1vZHVsZS5sb2FkZWQg
bmVlZGVkCisvKioqKioqLyAJCQlleHBvcnRzOiB7fQorLyoqKioqKi8gCQl9OworLyoqKioqKi8g
CQorLyoqKioqKi8gCQkvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb24KKy8qKioqKiovIAkJ
X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193
ZWJwYWNrX3JlcXVpcmVfXyk7CisvKioqKioqLyAJCisvKioqKioqLyAJCS8vIFJldHVybiB0aGUg
ZXhwb3J0cyBvZiB0aGUgbW9kdWxlCisvKioqKioqLyAJCXJldHVybiBtb2R1bGUuZXhwb3J0czsK
Ky8qKioqKiovIAl9CisvKioqKioqLyAJCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqKioqKi8gCS8q
IHdlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyAqLworLyoqKioqKi8gCSgo
KSA9PiB7CisvKioqKioqLyAJCS8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255
IGV4cG9ydHMKKy8qKioqKiovIAkJX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRl
ZmluaXRpb24pID0+IHsKKy8qKioqKiovIAkJCWZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHsK
Ky8qKioqKiovIAkJCQlpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAm
JiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHsKKy8qKioqKiovIAkJCQkJ
T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBn
ZXQ6IGRlZmluaXRpb25ba2V5XSB9KTsKKy8qKioqKiovIAkJCQl9CisvKioqKioqLyAJCQl9Cisv
KioqKioqLyAJCX07CisvKioqKioqLyAJfSkoKTsKKy8qKioqKiovIAkKKy8qKioqKiovIAkvKiB3
ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kICovCisvKioqKioqLyAJKCgp
ID0+IHsKKy8qKioqKiovIAkJX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4g
KE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKQorLyoqKioq
Ki8gCX0pKCk7CisvKioqKioqLyAJCisvKioqKioqLyAJLyogd2VicGFjay9ydW50aW1lL21ha2Ug
bmFtZXNwYWNlIG9iamVjdCAqLworLyoqKioqKi8gCSgoKSA9PiB7CisvKioqKioqLyAJCS8vIGRl
ZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHMKKy8qKioqKiovIAkJX193ZWJwYWNrX3JlcXVpcmVf
Xy5yID0gKGV4cG9ydHMpID0+IHsKKy8qKioqKiovIAkJCWlmKHR5cGVvZiBTeW1ib2wgIT09ICd1
bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykgeworLyoqKioqKi8gCQkJCU9iamVjdC5k
ZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1
bGUnIH0pOworLyoqKioqKi8gCQkJfQorLyoqKioqKi8gCQkJT2JqZWN0LmRlZmluZVByb3BlcnR5
KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTsKKy8qKioqKiovIAkJfTsK
Ky8qKioqKiovIAl9KSgpOworLyoqKioqKi8gCQorLyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3ZhciBfX3dl
YnBhY2tfZXhwb3J0c19fID0ge307CisvLyBUaGlzIGVudHJ5IG5lZWQgdG8gYmUgd3JhcHBlZCBp
biBhbiBJSUZFIGJlY2F1c2UgaXQgbmVlZCB0byBiZSBpc29sYXRlZCBhZ2FpbnN0IG90aGVyIG1v
ZHVsZXMgaW4gdGhlIGNodW5rLgorKCgpID0+IHsKK19fd2VicGFja19yZXF1aXJlX18ucihfX3dl
YnBhY2tfZXhwb3J0c19fKTsKKy8qIGhhcm1vbnkgZXhwb3J0ICovIF9fd2VicGFja19yZXF1aXJl
X18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCB7CisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJwYXJz
ZSI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9saWJfd2ViaWRsMl9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMF9fLnBhcnNlKSwKKy8qIGhhcm1vbnkgZXhwb3J0ICovICAgIndyaXRl
IjogKCkgPT4gKC8qIHJlZXhwb3J0IHNhZmUgKi8gX2xpYl93cml0ZXJfanNfX1dFQlBBQ0tfSU1Q
T1JURURfTU9EVUxFXzFfXy53cml0ZSksCisvKiBoYXJtb255IGV4cG9ydCAqLyAgICJ2YWxpZGF0
ZSI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9saWJfdmFsaWRhdG9yX2pzX19XRUJQQUNL
X0lNUE9SVEVEX01PRFVMRV8yX18udmFsaWRhdGUpLAorLyogaGFybW9ueSBleHBvcnQgKi8gICAi
V2ViSURMUGFyc2VFcnJvciI6ICgpID0+ICgvKiByZWV4cG9ydCBzYWZlICovIF9saWJfdG9rZW5p
c2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18uV2ViSURMUGFyc2VFcnJvcikKKy8q
IGhhcm1vbnkgZXhwb3J0ICovIH0pOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9saWJfd2Vi
aWRsMl9qc19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fID0gX193ZWJwYWNrX3JlcXVpcmVf
XygxKTsKKy8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfbGliX3dyaXRlcl9qc19fV0VCUEFDS19J
TVBPUlRFRF9NT0RVTEVfMV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzMCk7CisvKiBoYXJtb255
IGltcG9ydCAqLyB2YXIgX2xpYl92YWxpZGF0b3JfanNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxF
XzJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMzEpOworLyogaGFybW9ueSBpbXBvcnQgKi8gdmFy
IF9saWJfdG9rZW5pc2VyX2pzX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX18gPSBfX3dlYnBh
Y2tfcmVxdWlyZV9fKDIpOworCisKKworCisKK30pKCk7CisKKy8qKioqKiovIAlyZXR1cm4gX193
ZWJwYWNrX2V4cG9ydHNfXzsKKy8qKioqKiovIH0pKCkKKzsKIH0pOwogLy8jIHNvdXJjZU1hcHBp
bmdVUkw9d2ViaWRsMi5qcy5tYXAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9pZGxoYXJuZXNz
Lmh0dHBzLmFueS1leHBlY3RlZC50eHQKaW5kZXggOTkwMGMxMDMwYzYwZTZiZTk0MTI3YWEyM2Ey
NjJkMjJhZmFhMTIzZC4uZGUyNTMyZGRjNTk3MjI1OWQ5ODM1Y2E3NGRjMTljOWQ0NWI0OTNhNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvaWRsaGFybmVzcy5odHRwcy5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L2lkbGhhcm5lc3MuaHR0cHMuYW55LWV4cGVjdGVkLnR4dApAQCAtMTMsOSArMTMsNiBAQCBQQVNT
IFNlcnZpY2VXb3JrZXIgaW5jbHVkZXMgQWJzdHJhY3RXb3JrZXI6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93RXZlbnRIYW5kbGVy
czogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd09y
V29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdpbmRvdyBp
bmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQot
UEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vzc2lvblN0b3JhZ2U6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCi1QQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dMb2NhbFN0b3JhZ2U6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlckdsb2JhbFNjb3BlIGluY2x1ZGVzIFdpbmRv
d09yV29ya2VyR2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmln
YXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JJRDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
TmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckxhbmd1YWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQpAQCAtMjQsMTAgKzIxLDEzIEBAIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRv
ckNvbnRlbnRVdGlsczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGlu
Y2x1ZGVzIE5hdmlnYXRvckNvb2tpZXM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5h
dmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JQbHVnaW5zOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJh
bWVQcm92aWRlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV29ya2VyTmF2aWdhdG9y
IGluY2x1ZGVzIE5hdmlnYXRvcklEOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3Jr
ZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yTGFuZ3VhZ2U6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIFdvcmtlck5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JPbkxpbmU6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlck5hdmlnYXRvciBpbmNsdWRlcyBOYXZp
Z2F0b3JDb25jdXJyZW50SGFyZHdhcmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdp
bmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKK1BBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBQQVNTIFNlcnZpY2VXb3JrZXIgaW50ZXJm
YWNlIG9iamVjdCBsZW5ndGgKIFBBU1MgU2VydmljZVdvcmtlciBpbnRlcmZhY2Ugb2JqZWN0IG5h
bWUKQEAgLTE3Miw2ICsxNzIsNCBAQCBQQVNTIENhY2hlU3RvcmFnZSBpbnRlcmZhY2U6IGNhbGxp
bmcgZGVsZXRlKERPTVN0cmluZykgb24gY2FjaGVzIHdpdGggdG9vIGZldyBhcgogUEFTUyBDYWNo
ZVN0b3JhZ2UgaW50ZXJmYWNlOiBjYWNoZXMgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJrZXlzKCki
IHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFdpbmRvdyBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBj
YWNoZXMKIFBBU1MgTmF2aWdhdG9yIGludGVyZmFjZTogYXR0cmlidXRlIHNlcnZpY2VXb3JrZXIK
LVBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdAotUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9pZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvaWRsaGFy
bmVzcy5odHRwcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBkMWE0YTg1NmYzOTk1MWJh
YjI4Y2M3Y2UyY2YxNDBkMzE5MGYzODJjLi44YjI2NDUwM2Q1NTIyODZiNzdkYTRjMjNmOTM5MzI2
N2VkY2U3OGZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9pZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL2lkbGhhcm5lc3MuaHR0cHMuYW55Lndvcmtlci1leHBlY3RlZC50
eHQKQEAgLTEzLDkgKzEzLDYgQEAgUEFTUyBTZXJ2aWNlV29ya2VyIGluY2x1ZGVzIEFic3RyYWN0
V29ya2VyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgR2xv
YmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGlu
Y2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNT
IFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQotUEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd1Nlc3Np
b25TdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBXaW5kb3cgaW5jbHVkZXMg
V2luZG93TG9jYWxTdG9yYWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3JrZXJH
bG9iYWxTY29wZSBpbmNsdWRlcyBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9ySUQ6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JMYW5n
dWFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAgLTI0LDEwICsyMSwxMyBAQCBQQVNTIE5h
dmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb250ZW50VXRpbHM6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb29raWVzOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yUGx1Z2lu
czogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmln
YXRvckNvbmN1cnJlbnRIYXJkd2FyZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgV2lu
ZG93IGluY2x1ZGVzIEFuaW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIFdvcmtlck5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JJRDogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgV29ya2VyTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckxh
bmd1YWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW5j
bHVkZXMgTmF2aWdhdG9yT25MaW5lOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3Jr
ZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vzc2lvblN0b3Jh
Z2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dM
b2NhbFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBGQUlMIFNlcnZpY2VXb3JrZXIg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJTZXJ2
aWNlV29ya2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiU2VydmljZVdvcmtlciIgbWlzc2luZwogRkFJ
TCBTZXJ2aWNlV29ya2VyIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVy
dHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNlcnZpY2VXb3JrZXIiIGV4cGVj
dGVkIHByb3BlcnR5ICJTZXJ2aWNlV29ya2VyIiBtaXNzaW5nCiBGQUlMIFNlcnZpY2VXb3JrZXIg
aW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3Qg
aGF2ZSBvd24gcHJvcGVydHkgIlNlcnZpY2VXb3JrZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJTZXJ2
aWNlV29ya2VyIiBtaXNzaW5nCkBAIC0xNTAsOCArMTUwLDYgQEAgUEFTUyBDYWNoZVN0b3JhZ2Ug
aW50ZXJmYWNlOiBjYWxsaW5nIG9wZW4oRE9NU3RyaW5nKSBvbiBjYWNoZXMgd2l0aCB0b28gZmV3
IGFyZ3UKIFBBU1MgQ2FjaGVTdG9yYWdlIGludGVyZmFjZTogY2FjaGVzIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiZGVsZXRlKERPTVN0cmluZykiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIENh
Y2hlU3RvcmFnZSBpbnRlcmZhY2U6IGNhbGxpbmcgZGVsZXRlKERPTVN0cmluZykgb24gY2FjaGVz
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IKIFBBU1MgQ2FjaGVT
dG9yYWdlIGludGVyZmFjZTogY2FjaGVzIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAia2V5cygpIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZQotUEFTUyBXaW5kb3cgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAotUEFTUyBOYXZpZ2F0b3IgaW50ZXJmYWNl
OiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBXb3Jr
ZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjYWNoZXMKIFBBU1MgV29ya2VyTmF2
aWdhdG9yIGludGVyZmFjZTogYXR0cmlidXRlIHNlcnZpY2VXb3JrZXIKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdmcvaWRsaGFybmVz
cy53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zdmcvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CmluZGV4IDQzZTQ0
ZTJmNGM4NmZhMmIyNGNiYjM3MzcwNDlmY2MxYmI0YjU1NDAuLmZkNzM1MWU4YjVhOGZiNzMyYzBj
NTM4ZWM5NWUyNDk2ODgwYzZkN2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc3ZnL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N2Zy9pZGxo
YXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTMsNiArMyw4IEBAIFBBU1MgaWRsX3Rlc3Qg
c2V0dXAKIFBBU1MgaWRsX3Rlc3QgdmFsaWRhdGlvbgogUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBE
b2N1bWVudDogb3JpZ2luYWwgaW50ZXJmYWNlIGRlZmluZWQKIFBBU1MgUGFydGlhbCBpbnRlcmZh
Y2UgRG9jdW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFBhcnRpYWwgaW50ZXJm
YWNlIFNWR0FFbGVtZW50OiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZAorUEFTUyBQYXJ0aWFs
IGludGVyZmFjZSBTVkdBRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgUGFy
dGlhbCBpbnRlcmZhY2UgRG9jdW1lbnRbMl06IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNT
IFBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50WzNdOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQog
UEFTUyBQYXJ0aWFsIGludGVyZmFjZSBEb2N1bWVudFs0XTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKQEAgLTEwLDcgKzEyLDYgQEAgUEFTUyBTVkdFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50
SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQgaW5jbHVk
ZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgU1ZHRWxlbWVudCBpbmNsdWRlcyBTVkdFbGVtZW50SW5zdGFuY2U6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZHRWxlbWVu
dDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgU1ZHRWxlbWVudCBpbmNsdWRlcyBFbGVt
ZW50Q1NTSW5saW5lU3R5bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0dyYXBo
aWNzRWxlbWVudCBpbmNsdWRlcyBTVkdUZXN0czogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgU1ZHU1ZHRWxlbWVudCBpbmNsdWRlcyBTVkdGaXRUb1ZpZXdCb3g6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFNWR1NWR0VsZW1lbnQgaW5jbHVkZXMgV2luZG93RXZlbnRIYW5kbGVy
czogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKQEAgLTI3LDIwICsyOCwyMCBAQCBQQVNTIFNWR1Bh
dHRlcm5FbGVtZW50IGluY2x1ZGVzIFNWR0ZpdFRvVmlld0JveDogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgU1ZHUGF0dGVybkVsZW1lbnQgaW5jbHVkZXMgU1ZHVVJJUmVmZXJlbmNlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdTY3JpcHRFbGVtZW50IGluY2x1ZGVzIFNW
R1VSSVJlZmVyZW5jZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHQUVsZW1lbnQg
aW5jbHVkZXMgU1ZHVVJJUmVmZXJlbmNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotRkFJTCBT
VkdBRWxlbWVudCBpbmNsdWRlcyBIVE1MSHlwZXJsaW5rRWxlbWVudFV0aWxzOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZSBhc3NlcnRfdHJ1ZTogbWVtYmVyIGhyZWYgaXMgdW5pcXVlIGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCiBQQVNTIFNWR1ZpZXdFbGVtZW50IGluY2x1ZGVzIFNWR0ZpdFRvVmll
d0JveDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgU1ZHRWxlbWVudCBpbmNsdWRlcyBF
bGVtZW50Q1NTSW5saW5lU3R5bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEVsZW1l
bnQgaW5jbHVkZXMgQW5pbWF0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxl
bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBF
bGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCi1QQVNTIEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1bWVudEFu
ZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1
bWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudEZyYWdtZW50IGluY2x1ZGVzIE5vbkVsZW1l
bnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNs
dWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudEZy
YWdtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNT
IEVsZW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BB
U1MgRWxlbWVudCBpbmNsdWRlcyBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGROb2RlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhFdmFsdWF0b3JCYXNl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdFbGVtZW50IGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgU1ZHRWxlbWVu
dCBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBTVkdFbGVtZW50IGludGVyZmFjZSBvYmpl
Y3QgbmFtZQpAQCAtMTYyMCw2ICsxNjIxLDE2IEBAIEZBSUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgaHJlZmxhbmcgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0CiBG
QUlMIFNWR0FFbGVtZW50IGludGVyZmFjZTogYXR0cmlidXRlIHR5cGUgYXNzZXJ0X3RydWU6IFRo
ZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJ0eXBlIiBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQogRkFJTCBTVkdBRWxlbWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB0ZXh0
IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAi
dGV4dCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgcmVmZXJyZXJQb2xpY3kgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2Jq
ZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJyZWZlcnJlclBvbGljeSIgZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKK0ZBSUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgb3JpZ2luIGFz
c2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAib3Jp
Z2luIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBTVkdBRWxlbWVudCBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBwcm90b2NvbCBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVz
dCBoYXZlIGEgcHJvcGVydHkgInByb3RvY29sIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJ
TCBTVkdBRWxlbWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB1c2VybmFtZSBhc3NlcnRfdHJ1ZTog
VGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgInVzZXJuYW1lIiBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBTVkdBRWxlbWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBwYXNzd29yZCBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEg
cHJvcGVydHkgInBhc3N3b3JkIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBTVkdBRWxl
bWVudCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBob3N0IGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBl
IG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAiaG9zdCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKK0ZBSUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaG9zdG5hbWUgYXNzZXJ0
X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJob3N0bmFt
ZSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBh
dHRyaWJ1dGUgcG9ydCBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZl
IGEgcHJvcGVydHkgInBvcnQiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFNWR0FFbGVt
ZW50IGludGVyZmFjZTogYXR0cmlidXRlIHBhdGhuYW1lIGFzc2VydF90cnVlOiBUaGUgcHJvdG90
eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAicGF0aG5hbWUiIGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCitGQUlMIFNWR0FFbGVtZW50IGludGVyZmFjZTogYXR0cmlidXRlIHNlYXJjaCBh
c3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgInNl
YXJjaCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgaGFzaCBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBo
YXZlIGEgcHJvcGVydHkgImhhc2giIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQQVNTIFNWR0FF
bGVtZW50IGludGVyZmFjZTogYXR0cmlidXRlIGhyZWYKIFBBU1MgU1ZHQUVsZW1lbnQgbXVzdCBi
ZSBwcmltYXJ5IGludGVyZmFjZSBvZiBvYmplY3RzLmEKIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9m
IG9iamVjdHMuYQpAQCAtMTYzMiw2ICsxNjQzLDE2IEBAIEZBSUwgU1ZHQUVsZW1lbnQgaW50ZXJm
YWNlOiBvYmplY3RzLmEgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJocmVmbGFuZyIgd2l0aCB0aGUK
IEZBSUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBvYmplY3RzLmEgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJ0eXBlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5
ICJ0eXBlIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCiBGQUlMIFNWR0FFbGVtZW50IGlu
dGVyZmFjZTogb2JqZWN0cy5hIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidGV4dCIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAidGV4dCIgbm90IGZvdW5kIGlu
IHByb3RvdHlwZSBjaGFpbgogRkFJTCBTVkdBRWxlbWVudCBpbnRlcmZhY2U6IG9iamVjdHMuYSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInJlZmVycmVyUG9saWN5IiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSBhc3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJyZWZlcnJlclBvbGljeSIgbm90IGZvdW5kIGlu
IHByb3RvdHlwZSBjaGFpbgorRkFJTCBTVkdBRWxlbWVudCBpbnRlcmZhY2U6IG9iamVjdHMuYSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgIm9yaWdpbiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0
X2luaGVyaXRzOiBwcm9wZXJ0eSAib3JpZ2luIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWlu
CitGQUlMIFNWR0FFbGVtZW50IGludGVyZmFjZTogb2JqZWN0cy5hIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAicHJvdG9jb2wiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJv
cGVydHkgInByb3RvY29sIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFNWR0FF
bGVtZW50IGludGVyZmFjZTogb2JqZWN0cy5hIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidXNlcm5h
bWUiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgInVzZXJu
YW1lIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFNWR0FFbGVtZW50IGludGVy
ZmFjZTogb2JqZWN0cy5hIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicGFzc3dvcmQiIHdpdGggdGhl
IHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgInBhc3N3b3JkIiBub3QgZm91
bmQgaW4gcHJvdG90eXBlIGNoYWluCitGQUlMIFNWR0FFbGVtZW50IGludGVyZmFjZTogb2JqZWN0
cy5hIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaG9zdCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNz
ZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiaG9zdCIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFp
bgorRkFJTCBTVkdBRWxlbWVudCBpbnRlcmZhY2U6IG9iamVjdHMuYSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImhvc3RuYW1lIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6IHBy
b3BlcnR5ICJob3N0bmFtZSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorRkFJTCBTVkdB
RWxlbWVudCBpbnRlcmZhY2U6IG9iamVjdHMuYSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInBvcnQi
IHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgInBvcnQiIG5v
dCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK0ZBSUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBv
YmplY3RzLmEgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJwYXRobmFtZSIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAicGF0aG5hbWUiIG5vdCBmb3VuZCBpbiBw
cm90b3R5cGUgY2hhaW4KK0ZBSUwgU1ZHQUVsZW1lbnQgaW50ZXJmYWNlOiBvYmplY3RzLmEgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJzZWFyY2giIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9p
bmhlcml0czogcHJvcGVydHkgInNlYXJjaCIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgor
RkFJTCBTVkdBRWxlbWVudCBpbnRlcmZhY2U6IG9iamVjdHMuYSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImhhc2giIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkg
Imhhc2giIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KIFBBU1MgU1ZHQUVsZW1lbnQgaW50
ZXJmYWNlOiBvYmplY3RzLmEgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJocmVmIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZQogUEFTUyBTVkdHcmFwaGljc0VsZW1lbnQgaW50ZXJmYWNlOiBvYmplY3RzLmEg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0cmFuc2Zvcm0iIHdpdGggdGhlIHByb3BlciB0eXBlCiBQ
QVNTIFNWR0dyYXBoaWNzRWxlbWVudCBpbnRlcmZhY2U6IG9iamVjdHMuYSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImdldEJCb3gob3B0aW9uYWwgU1ZHQm91bmRpbmdCb3hPcHRpb25zKSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdXJsL2EtZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VybC9hLWVsZW1lbnQtZXhwZWN0ZWQudHh0
CmluZGV4IGU0YmE1NjI2OWFhMjMyYzk3ZDgyZWU5N2NmY2FjNDc3ZThmMmM1YmUuLjhkMjNmOTAx
OWRmNTEzZTdkZGM5YjFiNTAxYjY4NjNjM2RjMTA4OTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL2EtZWxlbWVudC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwv
YS1lbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMzY2LDcgKzM2Niw3IEBAIFBBU1MgUGFyc2luZzog
PHNjOjphQGV4YW1wbGUubmV0PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KIFBBU1MgUGFyc2luZzog
PHdvdzolTkJEPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KIFBBU1MgUGFyc2luZzogPHdvdzolMUc+
IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQYXJzaW5nOiA8d293Ou+/vz4gYWdhaW5zdCA8
YWJvdXQ6Ymxhbms+Ci1QQVNTIFBhcnNpbmc6IDxodHRwOi8vZXhhbXBsZS5jb20vVStkODAw77+9
VStkZmZlVStkZmZm77eQ77eP77ev77ew77++77+/P1UrZDgwMO+/vVUrZGZmZVUrZGZmZu+3kO+3
j++3r++3sO+/vu+/vz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CitQQVNTIFBhcnNpbmc6IDxodHRw
Oi8vZXhhbXBsZS5jb20vVStkODAw8JCfvlUrZGZmZu+3kO+3j++3r++3sO+/vu+/vz9VK2Q4MDDw
kJ++VStkZmZm77eQ77eP77ev77ew77++77+/PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KIFBBU1Mg
UGFyc2luZzogPGh0dHA6Ly9hPGI+IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQYXJzaW5n
OiA8aHR0cDovL2E+Yj4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQQVNTIFBhcnNpbmc6IDxodHRw
Oi8vYV5iPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL2EtZWxlbWVudC1vcmlnaW4tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwv
YS1lbGVtZW50LW9yaWdpbi1leHBlY3RlZC50eHQKaW5kZXggODg3NmZhNThmMDU4YWVjNWNkYTM4
OTE5ZDQ5NjcxYWYyOWZjODJlYy4uNzEwZjZkZWUyNDhjMjVlMTgyMjQwOTNhNzYzNDhmMjQyOTQ1
ODJiNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy91cmwvYS1lbGVtZW50LW9yaWdpbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvYS1lbGVtZW50LW9yaWdpbi1leHBl
Y3RlZC50eHQKQEAgLTI2Miw3ICsyNjIsNyBAQCBQQVNTIFBhcnNpbmcgb3JpZ2luOiA8c2M6OmFA
ZXhhbXBsZS5uZXQ+IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQYXJzaW5nIG9yaWdpbjog
PHdvdzolTkJEPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KIFBBU1MgUGFyc2luZyBvcmlnaW46IDx3
b3c6JTFHPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KIFBBU1MgUGFyc2luZyBvcmlnaW46IDx3b3c6
77+/PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KLVBBU1MgUGFyc2luZyBvcmlnaW46IDxodHRwOi8v
ZXhhbXBsZS5jb20vVStkODAw77+9VStkZmZlVStkZmZm77eQ77eP77ev77ew77++77+/P1UrZDgw
MO+/vVUrZGZmZVUrZGZmZu+3kO+3j++3r++3sO+/vu+/vz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+
CitQQVNTIFBhcnNpbmcgb3JpZ2luOiA8aHR0cDovL2V4YW1wbGUuY29tL1UrZDgwMPCQn75VK2Rm
Zmbvt5Dvt4/vt6/vt7Dvv77vv78/VStkODAw8JCfvlUrZGZmZu+3kO+3j++3r++3sO+/vu+/vz4g
YWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQQVNTIFBhcnNpbmcgb3JpZ2luOiA8aHR0cDovLx8hIiQm
JygpKissLS47PV9ge31+Lz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQQVNTIFBhcnNpbmcgb3Jp
Z2luOiA8c2M6Ly8fISIkJicoKSorLC0uOz1fYHt9fi8+IGFnYWluc3QgPGFib3V0OmJsYW5rPgog
UEFTUyBQYXJzaW5nIG9yaWdpbjogPGZ0cDovLyVlMiU5OCU4Mz4gYWdhaW5zdCA8YWJvdXQ6Ymxh
bms+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3VybC9hLWVsZW1lbnQtb3JpZ2luLXhodG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL2EtZWxlbWVudC1vcmlnaW4teGh0
bWwtZXhwZWN0ZWQudHh0CmluZGV4IDg4NzZmYTU4ZjA1OGFlYzVjZGEzODkxOWQ0OTY3MWFmMjlm
YzgyZWMuLjcxMGY2ZGVlMjQ4YzI1ZTE4MjI0MDkzYTc2MzQ4ZjI0Mjk0NTgyYjUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL2EtZWxl
bWVudC1vcmlnaW4teGh0bWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL2EtZWxlbWVudC1vcmlnaW4teGh0bWwtZXhwZWN0
ZWQudHh0CkBAIC0yNjIsNyArMjYyLDcgQEAgUEFTUyBQYXJzaW5nIG9yaWdpbjogPHNjOjphQGV4
YW1wbGUubmV0PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KIFBBU1MgUGFyc2luZyBvcmlnaW46IDx3
b3c6JU5CRD4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQQVNTIFBhcnNpbmcgb3JpZ2luOiA8d293
OiUxRz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQQVNTIFBhcnNpbmcgb3JpZ2luOiA8d293Ou+/
vz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+Ci1QQVNTIFBhcnNpbmcgb3JpZ2luOiA8aHR0cDovL2V4
YW1wbGUuY29tL1UrZDgwMO+/vVUrZGZmZVUrZGZmZu+3kO+3j++3r++3sO+/vu+/vz9VK2Q4MDDv
v71VK2RmZmVVK2RmZmbvt5Dvt4/vt6/vt7Dvv77vv78+IGFnYWluc3QgPGFib3V0OmJsYW5rPgor
UEFTUyBQYXJzaW5nIG9yaWdpbjogPGh0dHA6Ly9leGFtcGxlLmNvbS9VK2Q4MDDwkJ++VStkZmZm
77eQ77eP77ev77ew77++77+/P1UrZDgwMPCQn75VK2RmZmbvt5Dvt4/vt6/vt7Dvv77vv78+IGFn
YWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQYXJzaW5nIG9yaWdpbjogPGh0dHA6Ly8fISIkJico
KSorLC0uOz1fYHt9fi8+IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQYXJzaW5nIG9yaWdp
bjogPHNjOi8vHyEiJCYnKCkqKywtLjs9X2B7fX4vPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KIFBB
U1MgUGFyc2luZyBvcmlnaW46IDxmdHA6Ly8lZTIlOTglODM+IGFnYWluc3QgPGFib3V0OmJsYW5r
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy91cmwvYS1lbGVtZW50LXhodG1sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsL2EtZWxlbWVudC14aHRtbC1leHBlY3RlZC50eHQK
aW5kZXggZTRiYTU2MjY5YWEyMzJjOTdkODJlZTk3Y2ZjYWM0NzdlOGYyYzViZS4uOGQyM2Y5MDE5
ZGY1MTNlN2RkYzliMWI1MDFiNjg2M2MzZGMxMDg5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvYS1lbGVtZW50LXhodG1sLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3VybC9hLWVsZW1lbnQteGh0bWwtZXhwZWN0ZWQudHh0CkBAIC0zNjYsNyArMzY2LDcgQEAgUEFT
UyBQYXJzaW5nOiA8c2M6OmFAZXhhbXBsZS5uZXQ+IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFT
UyBQYXJzaW5nOiA8d293OiVOQkQ+IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQYXJzaW5n
OiA8d293OiUxRz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQQVNTIFBhcnNpbmc6IDx3b3c677+/
PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KLVBBU1MgUGFyc2luZzogPGh0dHA6Ly9leGFtcGxlLmNv
bS9VK2Q4MDDvv71VK2RmZmVVK2RmZmbvt5Dvt4/vt6/vt7Dvv77vv78/VStkODAw77+9VStkZmZl
VStkZmZm77eQ77eP77ev77ew77++77+/PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KK1BBU1MgUGFy
c2luZzogPGh0dHA6Ly9leGFtcGxlLmNvbS9VK2Q4MDDwkJ++VStkZmZm77eQ77eP77ev77ew77++
77+/P1UrZDgwMPCQn75VK2RmZmbvt5Dvt4/vt6/vt7Dvv77vv78+IGFnYWluc3QgPGFib3V0OmJs
YW5rPgogUEFTUyBQYXJzaW5nOiA8aHR0cDovL2E8Yj4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQ
QVNTIFBhcnNpbmc6IDxodHRwOi8vYT5iPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KIFBBU1MgUGFy
c2luZzogPGh0dHA6Ly9hXmI+IGFnYWluc3QgPGFib3V0OmJsYW5rPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvdXJsLWNvbnN0cnVj
dG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdXJsL3VybC1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQKaW5kZXggMGMyMTIzYjMyNjQ2
Y2UxMDY3MzYwYWYxMzM0NjE2ZmI4YTU1NDRlNS4uMGZjNTNlOTBhMzkyMmM5MDZjMGY3ZjgxOTQ0
YTQwNjg2MGU3NmQ3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy91cmwvdXJsLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VybC91cmwtY29uc3RydWN0
b3ItZXhwZWN0ZWQudHh0CkBAIC0zNjUsNyArMzY1LDcgQEAgUEFTUyBQYXJzaW5nOiA8c2M6OmFA
ZXhhbXBsZS5uZXQ+IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQYXJzaW5nOiA8d293OiVO
QkQ+IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQYXJzaW5nOiA8d293OiUxRz4gYWdhaW5z
dCA8YWJvdXQ6Ymxhbms+CiBQQVNTIFBhcnNpbmc6IDx3b3c677+/PiBhZ2FpbnN0IDxhYm91dDpi
bGFuaz4KLVBBU1MgUGFyc2luZzogPGh0dHA6Ly9leGFtcGxlLmNvbS9VK2Q4MDDvv71VK2RmZmVV
K2RmZmbvt5Dvt4/vt6/vt7Dvv77vv78/VStkODAw77+9VStkZmZlVStkZmZm77eQ77eP77ev77ew
77++77+/PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KK1BBU1MgUGFyc2luZzogPGh0dHA6Ly9leGFt
cGxlLmNvbS9VK2Q4MDDwkJ++VStkZmZm77eQ77eP77ev77ew77++77+/P1UrZDgwMPCQn75VK2Rm
Zmbvt5Dvt4/vt6/vt7Dvv77vv78+IGFnYWluc3QgPGFib3V0OmJsYW5rPgogUEFTUyBQYXJzaW5n
OiA8aHR0cDovL2E8Yj4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQQVNTIFBhcnNpbmc6IDxodHRw
Oi8vYT5iPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KIFBBU1MgUGFyc2luZzogPGh0dHA6Ly9hXmI+
IGFnYWluc3QgPGFib3V0OmJsYW5rPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvdXJsLW9yaWdpbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VybC91cmwtb3JpZ2luLWV4
cGVjdGVkLnR4dAppbmRleCAwOGEzMzQ4MTJkZmRhYjE2MGU0ZDc5ODNhMTFkZTM3Zjg5MjIzYjM1
Li5jYjliY2VlMTVhZjQ2ZTBlNzQ2Yzc4YmU2YTQyNWJmOWQ1OGMzNWFkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VybC91cmwtb3JpZ2lu
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3VybC91cmwtb3JpZ2luLWV4cGVjdGVkLnR4dApAQCAtMjYxLDcgKzI2MSw3IEBAIFBB
U1MgT3JpZ2luIHBhcnNpbmc6IDxzYzo6YUBleGFtcGxlLm5ldD4gYWdhaW5zdCA8YWJvdXQ6Ymxh
bms+CiBQQVNTIE9yaWdpbiBwYXJzaW5nOiA8d293OiVOQkQ+IGFnYWluc3QgPGFib3V0OmJsYW5r
PgogUEFTUyBPcmlnaW4gcGFyc2luZzogPHdvdzolMUc+IGFnYWluc3QgPGFib3V0OmJsYW5rPgog
UEFTUyBPcmlnaW4gcGFyc2luZzogPHdvdzrvv78+IGFnYWluc3QgPGFib3V0OmJsYW5rPgotUEFT
UyBPcmlnaW4gcGFyc2luZzogPGh0dHA6Ly9leGFtcGxlLmNvbS9VK2Q4MDDvv71VK2RmZmVVK2Rm
Zmbvt5Dvt4/vt6/vt7Dvv77vv78/VStkODAw77+9VStkZmZlVStkZmZm77eQ77eP77ev77ew77++
77+/PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KK1BBU1MgT3JpZ2luIHBhcnNpbmc6IDxodHRwOi8v
ZXhhbXBsZS5jb20vVStkODAw8JCfvlUrZGZmZu+3kO+3j++3r++3sO+/vu+/vz9VK2Q4MDDwkJ++
VStkZmZm77eQ77eP77ev77ew77++77+/PiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KIFBBU1MgT3Jp
Z2luIHBhcnNpbmc6IDxodHRwOi8vHyEiJCYnKCkqKywtLjs9X2B7fX4vPiBhZ2FpbnN0IDxhYm91
dDpibGFuaz4KIFBBU1MgT3JpZ2luIHBhcnNpbmc6IDxzYzovLx8hIiQmJygpKissLS47PV9ge31+
Lz4gYWdhaW5zdCA8YWJvdXQ6Ymxhbms+CiBQQVNTIE9yaWdpbiBwYXJzaW5nOiA8ZnRwOi8vJWUy
JTk4JTgzPiBhZ2FpbnN0IDxhYm91dDpibGFuaz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvaWRsaGFybmVzcy53
aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWItYW5pbWF0aW9ucy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKaW5k
ZXggMDliYzFiZThkZWUyNjZhNTQzOWQwODk2Nzc0N2RjMzkwOWQzMDJhNS4uMDlhYWQzZTg4NzU2
ZWY5ZTI5MmE2Y2RjMzFkMWEwYmMwZjNlOGQ1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9pZGxoYXJuZXNzLndp
bmRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQK
QEAgLTgsMTkgKzgsMTkgQEAgUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBEb2N1bWVudE9y
U2hhZG93Um9vdDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgUGFydGlhbCBpbnRlcmZh
Y2UgRG9jdW1lbnRbMl06IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFBhcnRpYWwgaW50
ZXJmYWNlIERvY3VtZW50WzNdOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50
IGluY2x1ZGVzIEFuaW1hdGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3Vt
ZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQorUEFTUyBEb2N1bWVudEZyYWdtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1bWVudE9y
U2hhZG93Um9vdDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgU2hhZG93Um9vdCBpbmNs
dWRlcyBEb2N1bWVudE9yU2hhZG93Um9vdDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1Mg
RG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BB
U1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIEVsZW1lbnQgaW5jbHVkZXMgTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2Rl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1ZGVzIENoaWxkTm9k
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBTbG90dGFi
bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIE5vbkVs
ZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBp
bmNsdWRlcyBEb2N1bWVudE9yU2hhZG93Um9vdDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBB
U1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
IFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgWFBhdGhFdmFsdWF0b3JCYXNlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1bWVudEFu
ZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1
bWVudEZyYWdtZW50IGluY2x1ZGVzIE5vbkVsZW1lbnRQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudEZyYWdtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFNoYWRvd1Jvb3QgaW5jbHVkZXMgRG9jdW1lbnRP
clNoYWRvd1Jvb3Q6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEFuaW1hdGlvblRpbWVs
aW5lIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmpl
Y3QKIFBBU1MgQW5pbWF0aW9uVGltZWxpbmUgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKIFBBU1Mg
QW5pbWF0aW9uVGltZWxpbmUgaW50ZXJmYWNlIG9iamVjdCBuYW1lCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2lkbGhhcm5l
c3MuaHR0cHMud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhwZWN0
ZWQudHh0CmluZGV4IDg3ZDI5OGZjMWJmODkwYzJlYTJmOTc1YzMwNTIwOWY4MjZjYzUxNjIuLjI5
NjFjMjY1NjgyYTcxNWViODM1MDViMTFhNGQ2OTM3ZThlNTFjZjIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFybmVz
cy5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaWRsaGFybmVzcy5odHRwcy53aW5kb3ctZXhw
ZWN0ZWQudHh0CkBAIC0xMTMzLDUgKzExMzMsNCBAQCBQQVNTIEF1ZGlvTm9kZSBpbnRlcmZhY2U6
IHdvcmtsZXRfbm9kZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNoYW5uZWxDb3VudCIgd2l0aAog
UEFTUyBBdWRpb05vZGUgaW50ZXJmYWNlOiB3b3JrbGV0X25vZGUgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJjaGFubmVsQ291bnRNb2RlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBBdWRpb05v
ZGUgaW50ZXJmYWNlOiB3b3JrbGV0X25vZGUgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjaGFubmVs
SW50ZXJwcmV0YXRpb24iIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIEF1ZGlvV29ya2xldFBy
b2Nlc3NvciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
b2JqZWN0Ci1QQVNTIFdvcmtsZXRHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIvaWRsaGFybmVzcy5odHRwcy53
aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJ4ci9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXgg
MDcxNTE5MDVmMTEzNzFlZTgyYzcwZDFjOGQ5OTYwYjY3OTgwNmUwNi4uYTIyMzc0YjhjYWQ1ZTJm
OTNlOWFlODBhNjA2OTM5MmU2ZjNjYzI2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJ4ci9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTE2OCw2
ICsxNjgsOCBAQCBQQVNTIFhSUG9zZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAogUEFTUyBYUlBvc2UgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyAi
Y29uc3RydWN0b3IiIHByb3BlcnR5CiBQQVNTIFhSUG9zZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJs
ZXMgcHJvcGVydHkKIFBBU1MgWFJQb3NlIGludGVyZmFjZTogYXR0cmlidXRlIHRyYW5zZm9ybQor
RkFJTCBYUlBvc2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbGluZWFyVmVsb2NpdHkgYXNzZXJ0X3Ry
dWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJsaW5lYXJWZWxv
Y2l0eSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgWFJQb3NlIGludGVyZmFjZTogYXR0
cmlidXRlIGFuZ3VsYXJWZWxvY2l0eSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3Qg
bXVzdCBoYXZlIGEgcHJvcGVydHkgImFuZ3VsYXJWZWxvY2l0eSIgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKIFBBU1MgWFJQb3NlIGludGVyZmFjZTogYXR0cmlidXRlIGVtdWxhdGVkUG9zaXRpb24K
IFBBU1MgWFJWaWV3ZXJQb3NlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBvYmplY3QKIFBBU1MgWFJWaWV3ZXJQb3NlIGludGVyZmFjZSBvYmplY3QgbGVu
Z3RoCkBAIC0yMTIsNiArMjE0LDcgQEAgUEFTUyBYUldlYkdMTGF5ZXIgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmoKIFBBU1MgWFJX
ZWJHTExheWVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQogUEFTUyBYUldlYkdM
TGF5ZXIgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgYW50aWFsaWFzCiBQQVNTIFhSV2ViR0xMYXllciBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSBpZ25vcmVEZXB0aFZhbHVlcworRkFJTCBYUldlYkdMTGF5ZXIg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgZml4ZWRGb3ZlYXRpb24gYXNzZXJ0X3RydWU6IFRoZSBwcm90
b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHByb3BlcnR5ICJmaXhlZEZvdmVhdGlvbiIgZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKIFBBU1MgWFJXZWJHTExheWVyIGludGVyZmFjZTogYXR0cmlidXRl
IGZyYW1lYnVmZmVyCiBQQVNTIFhSV2ViR0xMYXllciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBmcmFt
ZWJ1ZmZlcldpZHRoCiBQQVNTIFhSV2ViR0xMYXllciBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBmcmFt
ZWJ1ZmZlckhlaWdodApAQCAtMjIxLDYgKzIyNCw3IEBAIFBBU1MgWFJXZWJHTExheWVyIG11c3Qg
YmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgeHJXZWJHTExheWVyCiBQQVNTIFN0cmluZ2lmaWNhdGlv
biBvZiB4cldlYkdMTGF5ZXIKIFBBU1MgWFJXZWJHTExheWVyIGludGVyZmFjZTogeHJXZWJHTExh
eWVyIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYW50aWFsaWFzIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZQogUEFTUyBYUldlYkdMTGF5ZXIgaW50ZXJmYWNlOiB4cldlYkdMTGF5ZXIgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJpZ25vcmVEZXB0aFZhbHVlcyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK0ZBSUwg
WFJXZWJHTExheWVyIGludGVyZmFjZTogeHJXZWJHTExheWVyIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiZml4ZWRGb3ZlYXRpb24iIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czog
cHJvcGVydHkgImZpeGVkRm92ZWF0aW9uIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCiBQ
QVNTIFhSV2ViR0xMYXllciBpbnRlcmZhY2U6IHhyV2ViR0xMYXllciBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImZyYW1lYnVmZmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBYUldlYkdMTGF5
ZXIgaW50ZXJmYWNlOiB4cldlYkdMTGF5ZXIgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJmcmFtZWJ1
ZmZlcldpZHRoIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBYUldlYkdMTGF5ZXIgaW50ZXJm
YWNlOiB4cldlYkdMTGF5ZXIgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJmcmFtZWJ1ZmZlckhlaWdo
dCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9p
ZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDQ4OWNmZjM1MWNmOWQ5ZGI5
NDE4OGU5MjMyZTQzMDQ0ZjBiMmZhYjAuLmJjM2Y1NDY2MTRiNGRlZTAwYzUzMzRmYThlZWM2NTNk
MmNiMjJlZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMveGhyL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvaWRsaGFybmVzcy5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMTU5LDYgKzE1OSw0IEBAIFBBU1MgU3RyaW5naWZp
Y2F0aW9uIG9mIG5ldyBQcm9ncmVzc0V2ZW50KCJ0eXBlIikKIFBBU1MgUHJvZ3Jlc3NFdmVudCBp
bnRlcmZhY2U6IG5ldyBQcm9ncmVzc0V2ZW50KCJ0eXBlIikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJsZW5ndGhDb21wdXRhYmxlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBQcm9ncmVzc0V2
ZW50IGludGVyZmFjZTogbmV3IFByb2dyZXNzRXZlbnQoInR5cGUiKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImxvYWRlZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgUHJvZ3Jlc3NFdmVudCBp
bnRlcmZhY2U6IG5ldyBQcm9ncmVzc0V2ZW50KCJ0eXBlIikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJ0b3RhbCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKLVBBU1MgTm9kZSBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0Ci1QQVNTIERvY3VtZW50IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDQ5YTEwZTNl
ZTkzZDAzNDFlMjFjMTMwODIzZmMyM2M5ZmE1YTBkYmQuLmM1ZmU1NDU0ZjRlNWFlY2JmMGFlY2U4
NGEyN2Q2OTU3MTNhZjFiZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13
azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaWRsaGFybmVzcy5odHRwcy1leHBl
Y3RlZC50eHQKQEAgLTgyLDE1ICs4MiwxMCBAQCBQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIG1peGlu
IERvY3VtZW50T3JTaGFkb3dSb290WzJdOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBQ
YXJ0aWFsIGludGVyZmFjZSBVSUV2ZW50OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBE
b2N1bWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRs
ZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBOb25F
bGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQg
aW5jbHVkZXMgRG9jdW1lbnRPclNoYWRvd1Jvb3Q6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1Q
QVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
Ci1QQVNTIERvY3VtZW50IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVy
czogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRG9j
dW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENvbnRlbnRFZGl0YWJsZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZHRWxlbWVu
dDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxl
bWVudENTU0lubGluZVN0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBIVE1MTGlu
a0VsZW1lbnQgaW5jbHVkZXMgTGlua1N0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBIVE1MU3R5bGVFbGVtZW50IGluY2x1ZGVzIExpbmtTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgSFRNTEJvZHlFbGVtZW50IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCkBAIC0xMzIsOSArMTI3LDYgQEAgUEFTUyBFbGVtZW50
SW50ZXJuYWxzIGluY2x1ZGVzIEFSSUFNaXhpbjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgV2luZG93IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJHbG9i
YWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgV2luZG93IGluY2x1ZGVzIEFu
aW1hdGlvbkZyYW1lUHJvdmlkZXI6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdpbmRv
dyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
LVBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMgV2luZG93T3JXb3JrZXJH
bG9iYWxTY29wZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1
ZGVzIE5hdmlnYXRvcklEOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3Ig
aW5jbHVkZXMgTmF2aWdhdG9yTGFuZ3VhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCkBAIC0x
NDMsNiArMTM1LDcgQEAgUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29udGVudFV0
aWxzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2
aWdhdG9yQ29va2llczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGlu
Y2x1ZGVzIE5hdmlnYXRvclBsdWdpbnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5h
dmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCitQQVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVy
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZSBpbmNsdWRlcyBBbmltYXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBXb3JrZXIgaW5jbHVkZXMgQWJzdHJhY3RXb3JrZXI6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIFNoYXJlZFdvcmtlciBpbmNsdWRlcyBBYnN0cmFjdFdvcmtlcjogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKQEAgLTE1MCwyNyArMTQzLDMyIEBAIFBBU1MgV29ya2VyTmF2aWdh
dG9yIGluY2x1ZGVzIE5hdmlnYXRvcklEOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBX
b3JrZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yTGFuZ3VhZ2U6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFdvcmtlck5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JPbkxpbmU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdvcmtlck5hdmlnYXRvciBpbmNsdWRlcyBO
YXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNT
IFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dTZXNzaW9uU3RvcmFnZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKK1BBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd0xvY2FsU3RvcmFnZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTEZyYW1lU2V0RWxlbWVudCBpbmNsdWRlcyBXaW5kb3dF
dmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBFbGVtZW50IGluY2x1
ZGVzIEFSSUFNaXhpbjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNs
dWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBFbGVtZW50IGlu
Y2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
LVBBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
Ci1QQVNTIEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQogUEFTUyBTVkdFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVt
ZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHRWxlbWVu
dCBpbmNsdWRlcyBTVkdFbGVtZW50SW5zdGFuY2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZHRWxlbWVudDogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKLVBBU1MgU1ZHRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q1NTSW5saW5lU3R5bGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0dyYXBoaWNzRWxlbWVudCBpbmNsdWRl
cyBTVkdUZXN0czogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHU1ZHRWxlbWVudCBp
bmNsdWRlcyBTVkdGaXRUb1ZpZXdCb3g6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNW
R1NWR0VsZW1lbnQgaW5jbHVkZXMgV2luZG93RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKIFBBU1MgU1ZHSW1hZ2VFbGVtZW50IGluY2x1ZGVzIFNWR1VSSVJlZmVyZW5jZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZHU2NyaXB0RWxlbWVudCBpbmNsdWRlcyBT
VkdVUklSZWZlcmVuY2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFNWR0FFbGVtZW50
IGluY2x1ZGVzIFNWR1VSSVJlZmVyZW5jZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLUZBSUwg
U1ZHQUVsZW1lbnQgaW5jbHVkZXMgSFRNTEh5cGVybGlua0VsZW1lbnRVdGlsczogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUgYXNzZXJ0X3RydWU6IG1lbWJlciBocmVmIGlzIHVuaXF1ZSBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q1NTSW5s
aW5lU3R5bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIFNWR0VsZW1lbnQgaW5jbHVk
ZXMgRWxlbWVudENTU0lubGluZVN0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBE
b2N1bWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBOb25FbGVtZW50UGFyZW50Tm9k
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRl
cyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNs
dWRlcyBEb2N1bWVudE9yU2hhZG93Um9vdDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
U2hhZG93Um9vdCBpbmNsdWRlcyBEb2N1bWVudE9yU2hhZG93Um9vdDogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnRGcmFnbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgTm9uRG9jdW1l
bnRUeXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGlu
Y2x1ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBp
bmNsdWRlcyBTbG90dGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50
IGluY2x1ZGVzIFhQYXRoRXZhbHVhdG9yQmFzZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgSFRNTEFsbENvbGxlY3Rpb24gaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBIVE1MQWxsQ29sbGVjdGlvbiBpbnRlcmZhY2Ugb2Jq
ZWN0IGxlbmd0aAogUEFTUyBIVE1MQWxsQ29sbGVjdGlvbiBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAzZDdjODAz
Y2NjMzY4YjIzZjNiMTBkMzY1YmVkOGU5MjA0YTc2Njg0Li5kMWQxMzUyNTBjYmU2YzY0NThjNTYx
N2E1ZTE1OTkyYTk1ZDdmNjY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2sxL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaWRsaGFybmVzcy5o
dHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhw
ZWN0ZWQudHh0CkBAIC04MiwxNSArODIsMTAgQEAgUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBtaXhp
biBEb2N1bWVudE9yU2hhZG93Um9vdFsyXTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
UGFydGlhbCBpbnRlcmZhY2UgVUlFdmVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
RG9jdW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5k
bGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9u
RWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50
IGluY2x1ZGVzIERvY3VtZW50T3JTaGFkb3dSb290OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQot
UEFTUyBEb2N1bWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQotUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxl
cnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIERv
Y3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEVsZW1lbnRDb250ZW50RWRpdGFibGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEhUTUxPclNWR0VsZW1l
bnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEVs
ZW1lbnRDU1NJbmxpbmVTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTExp
bmtFbGVtZW50IGluY2x1ZGVzIExpbmtTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBB
U1MgSFRNTFN0eWxlRWxlbWVudCBpbmNsdWRlcyBMaW5rU3R5bGU6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIEhUTUxCb2R5RWxlbWVudCBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJz
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQpAQCAtMTMyLDkgKzEyNyw2IEBAIFBBU1MgRWxlbWVu
dEludGVybmFscyBpbmNsdWRlcyBBUklBTWl4aW46IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIFdpbmRvdyBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBXaW5kb3cgaW5jbHVkZXMgV2luZG93RXZlbnRIYW5kbGVyczogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xv
YmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdpbmRvdyBpbmNsdWRlcyBB
bmltYXRpb25GcmFtZVByb3ZpZGVyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBXaW5k
b3cgaW5jbHVkZXMgV2luZG93U2Vzc2lvblN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
Ci1QQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dMb2NhbFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFdvcmtlckdsb2JhbFNjb3BlIGluY2x1ZGVzIFdpbmRvd09yV29ya2Vy
R2xvYmFsU2NvcGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNs
dWRlcyBOYXZpZ2F0b3JJRDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9y
IGluY2x1ZGVzIE5hdmlnYXRvckxhbmd1YWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQpAQCAt
MTQzLDYgKzEzNSw3IEBAIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvbnRlbnRV
dGlsczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5h
dmlnYXRvckNvb2tpZXM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBp
bmNsdWRlcyBOYXZpZ2F0b3JQbHVnaW5zOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBO
YXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQorUEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRl
cjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgV29ya2VyIGluY2x1ZGVzIEFic3RyYWN0V29ya2VyOiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQogUEFTUyBTaGFyZWRXb3JrZXIgaW5jbHVkZXMgQWJzdHJhY3RXb3JrZXI6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCkBAIC0xNTAsMjcgKzE0MywzMiBAQCBQQVNTIFdvcmtlck5hdmln
YXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JJRDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
V29ya2VyTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckxhbmd1YWdlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQogUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yT25MaW5l
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW5jbHVkZXMg
TmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFT
UyBXaW5kb3cgaW5jbHVkZXMgV2luZG93U2Vzc2lvblN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCitQQVNTIFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dMb2NhbFN0b3JhZ2U6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxGcmFtZVNldEVsZW1lbnQgaW5jbHVkZXMgV2luZG93
RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNs
dWRlcyBBUklBTWl4aW46IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEVsZW1lbnQgaW5j
bHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBp
bmNsdWRlcyBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
Ci1QQVNTIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQotUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUKIFBBU1MgU1ZHRWxlbWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIg
bmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdFbGVtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxl
bWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1l
bnQgaW5jbHVkZXMgU1ZHRWxlbWVudEluc3RhbmNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQog
UEFTUyBTVkdFbGVtZW50IGluY2x1ZGVzIEhUTUxPclNWR0VsZW1lbnQ6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCi1QQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0eWxl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdHcmFwaGljc0VsZW1lbnQgaW5jbHVk
ZXMgU1ZHVGVzdHM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR1NWR0VsZW1lbnQg
aW5jbHVkZXMgU1ZHRml0VG9WaWV3Qm94OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBT
VkdTVkdFbGVtZW50IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCiBQQVNTIFNWR0ltYWdlRWxlbWVudCBpbmNsdWRlcyBTVkdVUklSZWZlcmVuY2U6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR1NjcmlwdEVsZW1lbnQgaW5jbHVkZXMg
U1ZHVVJJUmVmZXJlbmNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBTVkdBRWxlbWVu
dCBpbmNsdWRlcyBTVkdVUklSZWZlcmVuY2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1GQUlM
IFNWR0FFbGVtZW50IGluY2x1ZGVzIEhUTUxIeXBlcmxpbmtFbGVtZW50VXRpbHM6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlIGFzc2VydF90cnVlOiBtZW1iZXIgaHJlZiBpcyB1bmlxdWUgZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENTU0lu
bGluZVN0eWxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBTVkdFbGVtZW50IGluY2x1
ZGVzIEVsZW1lbnRDU1NJbmxpbmVTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1Mg
RG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCiBQQVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5v
ZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVk
ZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5j
bHVkZXMgRG9jdW1lbnRPclNoYWRvd1Jvb3Q6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNT
IFNoYWRvd1Jvb3QgaW5jbHVkZXMgRG9jdW1lbnRPclNoYWRvd1Jvb3Q6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCitQQVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCitQQVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2Rl
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3Vt
ZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBp
bmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQg
aW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVu
dCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIEhUTUxBbGxDb2xsZWN0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgSFRNTEFsbENvbGxlY3Rpb24gaW50ZXJmYWNlIG9i
amVjdCBsZW5ndGgKIFBBU1MgSFRNTEFsbENvbGxlY3Rpb24gaW50ZXJmYWNlIG9iamVjdCBuYW1l
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3Rl
ZC50eHQKaW5kZXggNDFhNzBhMWE5NTc3MzNhMTNiNWM2M2Q4NzhiZmNmZDZhMDM4YjgzMC4uNmFl
ZTFjYzgxZjJhZWU2YTIxZTFjMTdhOWNjMWQ5NDRkZThiN2I5YyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL25v
dGlmaWNhdGlvbnMvaWRsaGFybmVzcy5odHRwcy5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9u
b3RpZmljYXRpb25zL2lkbGhhcm5lc3MuaHR0cHMuYW55LWV4cGVjdGVkLnR4dApAQCAtNjQsNyAr
NjQsNCBAQCBQQVNTIE5vdGlmaWNhdGlvbiBpbnRlcmZhY2U6IG5vdGlmaWNhdGlvbiBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImNsb3NlKCkiIHdpdGggdAogUEFTUyBOb3RpZmljYXRpb25FdmVudCBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiBG
QUlMIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gc2hvd05v
dGlmaWNhdGlvbihET01TdHJpbmcsIG9wdGlvbmFsIE5vdGlmaWNhdGlvbk9wdGlvbnMpIGFzc2Vy
dF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIlNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb24iIGV4cGVjdGVkIHByb3BlcnR5ICJTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uIiBtaXNzaW5nCiBGQUlMIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNl
OiBvcGVyYXRpb24gZ2V0Tm90aWZpY2F0aW9ucyhvcHRpb25hbCBHZXROb3RpZmljYXRpb25PcHRp
b25zKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIiBleHBlY3RlZCBwcm9wZXJ0eSAiU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbiIgbWlzc2luZwotUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUg
aW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAot
UEFTUyBFeHRlbmRhYmxlRXZlbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdAotUEFTUyBXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2RvbS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Rv
bS9pZGxoYXJuZXNzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA5MmY0ZDg0OTA5NDYwNDk5NTE4
ZGYzYzFiZGU5OGEwNmFjOWZlZjY3Li5mOTJiOWY0YzAxYjI4MTJmNmI2NmIwM2VkZjRjOWMzZDZj
YmU2NTQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaWRsaGFybmVzcy5odHRwcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMtZXhwZWN0ZWQudHh0CkBA
IC04MiwxNSArODIsMTAgQEAgUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBEb2N1bWVudE9y
U2hhZG93Um9vdFsyXTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgUGFydGlhbCBpbnRl
cmZhY2UgVUlFdmVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRG9jdW1lbnQgaW5j
bHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1Mg
RG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRG9jdW1lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVu
dE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50IGluY2x1ZGVzIERv
Y3VtZW50T3JTaGFkb3dSb290OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1bWVu
dCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBEb2N1
bWVudCBpbmNsdWRlcyBYUGF0aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxl
bWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxFbGVt
ZW50IGluY2x1ZGVzIEVsZW1lbnRDb250ZW50RWRpdGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEhUTUxPclNWR0VsZW1lbnQ6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCi1QQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEVsZW1lbnRDU1NJbmxp
bmVTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTExpbmtFbGVtZW50IGlu
Y2x1ZGVzIExpbmtTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgSFRNTFN0eWxl
RWxlbWVudCBpbmNsdWRlcyBMaW5rU3R5bGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNT
IEhUTUxCb2R5RWxlbWVudCBpbmNsdWRlcyBXaW5kb3dFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQpAQCAtMTMyLDkgKzEyNyw2IEBAIFBBU1MgRWxlbWVudEludGVybmFscyBp
bmNsdWRlcyBBUklBTWl4aW46IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFdpbmRvdyBp
bmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBXaW5kb3cgaW5jbHVkZXMgV2luZG93RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUKIFBBU1MgV2luZG93IGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdpbmRvdyBpbmNsdWRlcyBBbmltYXRpb25GcmFt
ZVByb3ZpZGVyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBXaW5kb3cgaW5jbHVkZXMg
V2luZG93U2Vzc2lvblN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIFdpbmRv
dyBpbmNsdWRlcyBXaW5kb3dMb2NhbFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIFdvcmtlckdsb2JhbFNjb3BlIGluY2x1ZGVzIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0
b3JJRDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5h
dmlnYXRvckxhbmd1YWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQpAQCAtMTQzLDYgKzEzNSw3
IEBAIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvbnRlbnRVdGlsczogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvb2tp
ZXM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZp
Z2F0b3JQbHVnaW5zOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBOYXZpZ2F0b3IgaW5j
bHVkZXMgTmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1
ZQorUEFTUyBXaW5kb3cgaW5jbHVkZXMgQW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKIFBBU1MgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgaW5jbHVkZXMg
QW5pbWF0aW9uRnJhbWVQcm92aWRlcjogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV29y
a2VyIGluY2x1ZGVzIEFic3RyYWN0V29ya2VyOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFT
UyBTaGFyZWRXb3JrZXIgaW5jbHVkZXMgQWJzdHJhY3RXb3JrZXI6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCkBAIC0xNTAsMjcgKzE0MywzMiBAQCBQQVNTIFdvcmtlck5hdmlnYXRvciBpbmNsdWRl
cyBOYXZpZ2F0b3JJRDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgV29ya2VyTmF2aWdh
dG9yIGluY2x1ZGVzIE5hdmlnYXRvckxhbmd1YWdlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQog
UEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yT25MaW5lOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBXb3JrZXJOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29u
Y3VycmVudEhhcmR3YXJlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBXaW5kb3cgaW5j
bHVkZXMgV2luZG93U2Vzc2lvblN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNT
IFdpbmRvdyBpbmNsdWRlcyBXaW5kb3dMb2NhbFN0b3JhZ2U6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCiBQQVNTIEhUTUxGcmFtZVNldEVsZW1lbnQgaW5jbHVkZXMgV2luZG93RXZlbnRIYW5kbGVy
czogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgRWxlbWVudCBpbmNsdWRlcyBBUklBTWl4
aW46IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEVsZW1lbnQgaW5jbHVkZXMgUGFyZW50
Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKLVBBU1MgRWxlbWVudCBpbmNsdWRlcyBOb25E
b2N1bWVudFR5cGVDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1QQVNTIEVsZW1l
bnQgaW5jbHVkZXMgQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBFbGVt
ZW50IGluY2x1ZGVzIFNsb3R0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKIFBBU1MgU1ZH
RWxlbWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVu
aXF1ZQogUEFTUyBTVkdFbGVtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2ZW50SGFu
ZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMg
U1ZHRWxlbWVudEluc3RhbmNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdFbGVt
ZW50IGluY2x1ZGVzIEhUTUxPclNWR0VsZW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1Q
QVNTIFNWR0VsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0eWxlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdHcmFwaGljc0VsZW1lbnQgaW5jbHVkZXMgU1ZHVGVzdHM6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNWR1NWR0VsZW1lbnQgaW5jbHVkZXMgU1ZH
Rml0VG9WaWV3Qm94OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQogUEFTUyBTVkdTVkdFbGVtZW50
IGluY2x1ZGVzIFdpbmRvd0V2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQ
QVNTIFNWR0ltYWdlRWxlbWVudCBpbmNsdWRlcyBTVkdVUklSZWZlcmVuY2U6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCiBQQVNTIFNWR1NjcmlwdEVsZW1lbnQgaW5jbHVkZXMgU1ZHVVJJUmVmZXJl
bmNlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQotUEFTUyBTVkdBRWxlbWVudCBpbmNsdWRlcyBT
VkdVUklSZWZlcmVuY2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCi1GQUlMIFNWR0FFbGVtZW50
IGluY2x1ZGVzIEhUTUxIeXBlcmxpbmtFbGVtZW50VXRpbHM6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlIGFzc2VydF90cnVlOiBtZW1iZXIgaHJlZiBpcyB1bmlxdWUgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKK1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENTU0lubGluZVN0eWxlOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBTVkdFbGVtZW50IGluY2x1ZGVzIEVsZW1lbnRD
U1NJbmxpbmVTdHlsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5j
bHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNT
IERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgTm9uRWxlbWVudFBhcmVudE5vZGU6IG1lbWJlciBu
YW1lcyBhcmUgdW5pcXVlCi1QQVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgUGFyZW50Tm9k
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRG9jdW1lbnQgaW5jbHVkZXMgRG9jdW1l
bnRPclNoYWRvd1Jvb3Q6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIFNoYWRvd1Jvb3Qg
aW5jbHVkZXMgRG9jdW1lbnRPclNoYWRvd1Jvb3Q6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQ
QVNTIERvY3VtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVl
CitQQVNTIERvY3VtZW50RnJhZ21lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxk
Tm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGls
ZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgU2xv
dHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBEb2N1bWVudCBpbmNsdWRlcyBY
UGF0aEV2YWx1YXRvckJhc2U6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCiBQQVNTIEhUTUxBbGxD
b2xsZWN0aW9uIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBvYmplY3QKIFBBU1MgSFRNTEFsbENvbGxlY3Rpb24gaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgK
IFBBU1MgSFRNTEFsbENvbGxlY3Rpb24gaW50ZXJmYWNlIG9iamVjdCBuYW1lCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>