<?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>235057</bug_id>
          
          <creation_ts>2022-01-10 19:14:36 -0800</creation_ts>
          <short_desc>Rewrite touch and drag tests to be more robust.</short_desc>
          <delta_ts>2022-01-11 15:18:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>cdumez</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1829715</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2022-01-10 19:14:36 -0800</bug_when>
    <thetext>Rewrite touch and drag tests to be more robust.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829717</commentid>
    <comment_count>1</comment_count>
      <attachid>448826</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2022-01-10 19:33:04 -0800</bug_when>
    <thetext>Created attachment 448826
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829730</commentid>
    <comment_count>2</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-01-10 21:47:09 -0800</bug_when>
    <thetext>rdar://86035420</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829731</commentid>
    <comment_count>3</comment_count>
      <attachid>448826</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-01-10 21:50:26 -0800</bug_when>
    <thetext>Comment on attachment 448826
Patch

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

&gt; LayoutTests/fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-up-to-change-selected-text.html:14
&gt; +if (!testRunner.runUIScript)

Nit - it looks like this line isn&apos;t indented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829924</commentid>
    <comment_count>4</comment_count>
      <attachid>448881</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2022-01-11 14:46:36 -0800</bug_when>
    <thetext>Created attachment 448881
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829935</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-11 15:18:11 -0800</bug_when>
    <thetext>Committed r287898 (245935@main): &lt;https://commits.webkit.org/245935@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 448881.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448826</attachid>
            <date>2022-01-10 19:33:04 -0800</date>
            <delta_ts>2022-01-11 14:46:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235057-20220110193303.patch</filename>
            <type>text/plain</type>
            <size>51160</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NzMxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGZlN2EwNTFmMjMwNDc5NGVkMTZk
YWJlMjE1MGMxODA2ZDMwMjFhYi4uYjgwMWU2MjhhZjQ0OGFmYjMyMjA4MWViMzA0YTRkM2M2ZjZl
ZmY2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAxLTEwICBNZWdhbiBHYXJkbmVyICA8
bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV3cml0ZSB0b3VjaCBhbmQgZHJh
ZyB0ZXN0cyB0byBiZSBtb3JlIHJvYnVzdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNTA1NworICAgICAgICByZGFyOi8vODYwMzU0MjAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXdyaXRlIHRoZSB0
b3VjaC1hbmQtZHJhZyB0ZXN0cyB0byBjaGVjayBmb3Igc2VsZWN0aW9uIGNoYW5nZXMsIG5vdCBz
cGVjaWZpYyB0ZXh0IHNlbGVjdGlvbnMuCisgICAgICAgIFNwZWNpZmljIHNlbGVjdGlvbnMgYW5k
IHN1YmplY3QgdG8gc21hbGwgY2hhbmdlcyBpbiBmb250IGFuZCBsYXlvdXQsIGFuZCBhbGwgdGhh
dCBpcyBhY3R1YWxseSBpbXBvcnRhbnQgaXMgdGhhdAorICAgICAgICB0aGVyZSBoYXZlIGJlZW4g
c2VsZWN0aW9uIGNoYW5nZXMgYmFzZWQgb2ZmIG9mIGRyYWdnZWQgdG91Y2hlcy4KKyAgICAgICAg
VGhlIHRvdWNoLWV2ZW50LXJhZGl1cyB0ZXN0IGhhcyBiZWVuIHVwZGF0ZWQgdG8gdXNlIHRoZSBz
Y3JlZW4gc2l6ZSBkaXJlY3RseSwgc2luY2UgdGhlIHJhZGl1cyBpcyBzY2FsZWQgYnkgdGhlIHNj
cmVlbiBzaXplCisgICAgICAgIGludGVybmFsbHkuIFRoZSBvdXRwdXQgaGFzIGJlZW4gY2hhbmdl
ZCB0byBub3QgbmVlZCB0byBiZSB1cGRhdGVkIHdoZW4gdGhlIHRlc3QgcGhvbmUgY2hhbmdlcy4K
KworICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLW9uLWVkaXRhYmxl
LWNvbnRlbnQtZm9yLXNlbGVjdGlvbi10aGVuLWRyYWctZG93bi10by1jaGFuZ2Utc2VsZWN0ZWQt
dGV4dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJs
ZS10YXAtb24tZWRpdGFibGUtY29udGVudC1mb3Itc2VsZWN0aW9uLXRoZW4tZHJhZy1kb3duLXRv
LWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2RvdWJsZS10YXAtb24tZWRpdGFibGUtY29udGVudC1mb3Itc2VsZWN0aW9uLXRoZW4tZHJh
Zy11cC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtb24tZWRpdGFibGUtY29udGVudC1mb3Itc2Vs
ZWN0aW9uLXRoZW4tZHJhZy11cC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sOgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQt
dGhlbi1kcmFnLXVwLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWw6CisgICAgICAgICogZmFz
dC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3MtdGhlbi1kcmFnLWRvd24tdG8tY2hhbmdlLXNl
bGVjdGVkLXRleHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lv
cy9sb25nLXByZXNzLXRoZW4tZHJhZy1kb3duLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWw6
CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3MtdGhlbi1kcmFnLXRv
LXNlbGVjdC10ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9p
b3MvbG9uZy1wcmVzcy10aGVuLWRyYWctdG8tc2VsZWN0LXRleHQuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy10aGVuLWRyYWctdXAtdG8tY2hhbmdlLXNl
bGVjdGVkLXRleHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lv
cy9sb25nLXByZXNzLXRoZW4tZHJhZy11cC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sOgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90b3VjaC1ldmVudC1yYWRpdXMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90b3VjaC1ldmVudC1yYWRp
dXMuaHRtbDoKKwogMjAyMi0wMS0wNiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI4MTM4OSk6IFRleHQgd3JhcHMgdW5uZWNl
c3NhcmlseSB3aXRoaW4gaW50cmluc2ljYWxseS1zaXplZCBlbGVtZW50cyB3aGVuIHVzaW5nIGNl
cnRhaW4gZm9udHMgYW5kIHRoZSBpbm5lciBIVE1MIG9mIHRoZSBlbGVtZW50IGNvbnRhaW5zIGEg
bmV3IGxpbmUgdGhhdCBpcyBub3QgcHJlY2VkZWQgYnkgYSBzcGFjZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtb24tZWRpdGFibGUtY29u
dGVudC1mb3Itc2VsZWN0aW9uLXRoZW4tZHJhZy1kb3duLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUt
dGFwLW9uLWVkaXRhYmxlLWNvbnRlbnQtZm9yLXNlbGVjdGlvbi10aGVuLWRyYWctZG93bi10by1j
aGFuZ2Utc2VsZWN0ZWQtdGV4dC1leHBlY3RlZC50eHQKaW5kZXggZTRiNjQyMTA4OTEzMjRkNzYy
YWMyOTgxMTM5MzIzMzZlOGUxZGM1Yy4uZDYyMDEzOTljMWIzZDc1NDU1YjVmZmMyNTM2MjlkOGUz
OGZmZmQxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2Rv
dWJsZS10YXAtb24tZWRpdGFibGUtY29udGVudC1mb3Itc2VsZWN0aW9uLXRoZW4tZHJhZy1kb3du
LXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1vbi1lZGl0YWJsZS1jb250ZW50LWZvci1z
ZWxlY3Rpb24tdGhlbi1kcmFnLWRvd24tdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQtZXhwZWN0ZWQu
dHh0CkBAIC0xLDggKzEsNiBAQAogUEFTUzogSGFzIENhcmV0IFNlbGVjdGlvbgotUEFTUzogQ29y
cmVjdCBTZWxlY3Rpb24KLVBBU1M6IENvcnJlY3QgU2VsZWN0aW9uCi1QQVNTOiBDb3JyZWN0IFNl
bGVjdGlvbgotUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24KLVBBU1M6IENvcnJlY3QgU2VsZWN0aW9u
Ci1QQVNTOiBDb3JyZWN0IFNlbGVjdGlvbgorUEFTUzogSGFzIFNlbGVjdGlvbgorUEFTUzogU2Vs
ZWN0aW9uIENoYW5nZWQKK1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2VkCitQQVNTOiBTZWxlY3Rpb24g
Q2hhbmdlZAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mv
ZG91YmxlLXRhcC1vbi1lZGl0YWJsZS1jb250ZW50LWZvci1zZWxlY3Rpb24tdGhlbi1kcmFnLWRv
d24tdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2lvcy9kb3VibGUtdGFwLW9uLWVkaXRhYmxlLWNvbnRlbnQtZm9yLXNlbGVjdGlvbi10
aGVuLWRyYWctZG93bi10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sCmluZGV4IGIyYWUwOTlj
ODkzZWUxM2VhOTBmYTY4NTRlNjA2NTlkYjQxYTliZTAuLjEwNWMzZTBjMmE0YzdiYjdjNjAwYzlj
ZGRjZGI4NjJiOTg5ODMwMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2lvcy9kb3VibGUtdGFwLW9uLWVkaXRhYmxlLWNvbnRlbnQtZm9yLXNlbGVjdGlvbi10aGVu
LWRyYWctZG93bi10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLW9uLWVkaXRhYmxlLWNvbnRlbnQtZm9y
LXNlbGVjdGlvbi10aGVuLWRyYWctZG93bi10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sCkBA
IC0xLDUgKzEsNCBAQAogPCFET0NUWVBFIGh0bWw+Ci0KIDxodG1sPgogPGhlYWQ+CiAgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9iYXNpYy1nZXN0dXJlcy5qcyI+PC9zY3Jp
cHQ+CkBAIC05LDI5ICs4LDI2IEBACiAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICB9Ci0g
ICAgCisKICAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgICAgIHsKICAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKICAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIAorCiAgICAgICAgICAgICB2YXIgb3V0cHV0ID0gJyc7CiAgICAgICAgICAg
ICB2YXIgZWRpdGFibGVUYXJnZXRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRh
YmxlJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgICAgICB2YXIgZmlyc3RUYXJn
ZXRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpcnN0U2VsZWN0aW9uJykuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgICAgICB2YXIgc2Vjb25kVGFyZ2V0UmVjdCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWNvbmRTZWxlY3Rpb24nKS5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKTsKLSAgICAgICAgICAgIHZhciB0aGlyZFRhcmdldFJlY3QgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGhpcmRTZWxlY3Rpb24nKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAg
ICAgICAgICAgIHZhciBlZGl0YWJsZVRvTm9uZWRpdGFibGVPZmZzZXQgPSAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ25vbmVkaXRhYmxlJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueSAtIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0YWJsZScpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
Lnk7Ci0gICAgICAgIAorCiAgICAgICAgICAgICB2YXIgdGFwUG9pbnRYID0gZWRpdGFibGVUYXJn
ZXRSZWN0LnggKyBlZGl0YWJsZVRhcmdldFJlY3Qud2lkdGggLyAyOwogICAgICAgICAgICAgdmFy
IHRhcFBvaW50WSA9IGVkaXRhYmxlVGFyZ2V0UmVjdC55ICsgZWRpdGFibGVUYXJnZXRSZWN0Lmhl
aWdodCAvIDI7Ci0gICAgICAgICAgICB2YXIgZG91YmxlVGFwUG9pbnRYID0gZmlyc3RUYXJnZXRS
ZWN0LnggKyBmaXJzdFRhcmdldFJlY3Qud2lkdGggLyAyOwotICAgICAgICAgICAgdmFyIGRvdWJs
ZVRhcFBvaW50WSA9IGZpcnN0VGFyZ2V0UmVjdC55ICsgZmlyc3RUYXJnZXRSZWN0LmhlaWdodCAv
IDIgLSBlZGl0YWJsZVRvTm9uZWRpdGFibGVPZmZzZXQ7Ci0gICAgICAgICAgICB2YXIgZHJhZ1kg
PSBmaXJzdFRhcmdldFJlY3QueSArIGZpcnN0VGFyZ2V0UmVjdC5oZWlnaHQgLSBlZGl0YWJsZVRv
Tm9uZWRpdGFibGVPZmZzZXQ7Ci0gICAgICAgICAgICB2YXIgZHJhZ1ggPSBmaXJzdFRhcmdldFJl
Y3QueCArIGZpcnN0VGFyZ2V0UmVjdC53aWR0aDsKLSAgICAgICAgICAgIHZhciBkcmFnWTIgPSBz
ZWNvbmRUYXJnZXRSZWN0LnkgKyBzZWNvbmRUYXJnZXRSZWN0LmhlaWdodCAtIGVkaXRhYmxlVG9O
b25lZGl0YWJsZU9mZnNldDsKLSAgICAgICAgICAgIHZhciBkcmFnWTMgPSB0aGlyZFRhcmdldFJl
Y3QueSArIHRoaXJkVGFyZ2V0UmVjdC5oZWlnaHQgLSBlZGl0YWJsZVRvTm9uZWRpdGFibGVPZmZz
ZXQ7Ci0gICAgICAgICAgICB2YXIgZHJhZ1k0ID0gZmlyc3RUYXJnZXRSZWN0LnkgLSBmaXJzdFRh
cmdldFJlY3QuaGVpZ2h0IC0gZWRpdGFibGVUb05vbmVkaXRhYmxlT2Zmc2V0OwotICAgICAgICAK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgdmFyIGZvbnRIZWlnaHQgPSAzMDsKKworICAgICAg
ICAgICAgdmFyIHNlbGVjdGlvbkNoYW5nZWRDb3VudCA9IDA7CisgICAgICAgICAgICB2YXIgbGFz
dFNlbGVjdGlvbkNoYW5nZUNvdW50ID0gMDsKKyAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50
TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsICgpID0+IHsKKyAgICAgICAgICAgICAgICBzZWxl
Y3Rpb25DaGFuZ2VkQ291bnQrKzsKKyAgICAgICAgICAgIH0pOworCiAgICAgICAgICAgICBhd2Fp
dCBVSUhlbHBlci50YXBBdCh0YXBQb2ludFgsIHRhcFBvaW50WSk7CiAgICAgICAgICAgICBpZiAo
ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudHlwZSA9PSAiQ2FyZXQiKQogICAgICAgICAgICAgICAg
IG91dHB1dCArPSAnUEFTUzogSGFzIENhcmV0IFNlbGVjdGlvbic7CkBAIC00MSw5NSArMzcsNzQg
QEAKIAogICAgICAgICAgICAgYXdhaXQgZGlkU2hvd0tleWJvYXJkKCk7CiAKLSAgICAgICAgICAg
IGF3YWl0IFVJSGVscGVyLmRvdWJsZVRhcEF0KGRvdWJsZVRhcFBvaW50WCwgZG91YmxlVGFwUG9p
bnRZKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygp
ID09ICJzZWQiKQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxl
Y3Rpb24nOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuZG91YmxlVGFwQXQodGFwUG9pbnRY
LCB0YXBQb2ludFkpOworICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRv
U3RyaW5nKCkgIT0gIiIpCisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBIYXMgU2Vs
ZWN0aW9uJzsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZB
SUw6IGZhaWxlZCB0byBzZWxlY3QgYSB3b3JkIGFzIGEgcmVzdWx0IG9mIGEgbG9uZyBwcmVzcy4g
SW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5n
KCk7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gc2VsZWN0IGEg
d29yZCBhcyBhIHJlc3VsdCBvZiBhIGRvdWJsZSB0YXAuJzsKICAgICAgICAgICAgIG91dHB1dCAr
PSAnPGJyPic7CiAKICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JEb3VibGVUYXBE
ZWxheSgpOwogCi0gICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50
KGRyYWdYLCBkcmFnWSwgZHJhZ1gsIGRyYWdZMik7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQu
Z2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAic2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lk
aWR1biIpCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlv
bic7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBm
YWlsZWQgdG8gc2VsZWN0IGFkZGl0aW9uYWwgbGluZSBhZnRlciBhIGRyYWcuIEluY29ycmVjdCBT
ZWxlY3Rpb246ICcgKyBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOwotICAgICAg
ICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKKyAgICAgICAgICAgIHZhciBncmFiYmVyTWlkcG9pbnQg
PSBVSUhlbHBlci5taWRQb2ludE9mUmVjdChhd2FpdCBVSUhlbHBlci5nZXRTZWxlY3Rpb25FbmRH
cmFiYmVyVmlld1JlY3QoKSk7CiAKLSAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Q
b2ludFRvUG9pbnQoZHJhZ1gsIGRyYWdZMiwgZHJhZ1gsIGRyYWdZMyk7Ci0gICAgICAgICAgICBp
ZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAic2VkIGRvIGVpdXNtb2Qg
dGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYSIpCi0gICAgICAgICAgICAg
ICAgb3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7Ci0gICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gc2VsZWN0IGFkZGl0
aW9uYWwgbGluZSBhZnRlciBhIGRyYWcuIEluY29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1bWVu
dC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOwotICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+
JzsKKyAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZ3JhYmJl
ck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55LCBncmFiYmVyTWlkcG9pbnQueCwgZ3JhYmJl
ck1pZHBvaW50LnkgKyAoZm9udEhlaWdodCAqIDIpKTsKIAotICAgICAgICAgICAgYXdhaXQgdG91
Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChkcmFnWCwgZHJhZ1kzLCBkcmFnWCwgZHJhZ1kyKTsK
LSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJz
ZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVuIikKLSAgICAgICAgICAgICAgICBvdXRwdXQg
Kz0gJ1BBU1M6IENvcnJlY3QgU2VsZWN0aW9uJzsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb25D
aGFuZ2VkQ291bnQgPiBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQpCisgICAgICAgICAgICAgICAg
b3V0cHV0ICs9ICdQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZCA8L2JyPic7CiAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gZGVzZWxlY3Qg
bGluZSBhZnRlciBhIGRyYWcuIEluY29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1bWVudC5nZXRT
ZWxlY3Rpb24oKS50b1N0cmluZygpOwotICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKKyAg
ICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IFNlbGVjdGlvbiBkaWQgbm90IGNoYW5nZSA8
YnI+JyArIHNlbGVjdGlvbkNoYW5nZWRDb3VudDsKKworICAgICAgICAgICAgbGFzdFNlbGVjdGlv
bkNoYW5nZUNvdW50ID0gc2VsZWN0aW9uQ2hhbmdlZENvdW50OworICAgICAgICAgICAgZ3JhYmJl
ck1pZHBvaW50ID0gVUlIZWxwZXIubWlkUG9pbnRPZlJlY3QoYXdhaXQgVUlIZWxwZXIuZ2V0U2Vs
ZWN0aW9uRW5kR3JhYmJlclZpZXdSZWN0KCkpOworICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmRE
cmFnRnJvbVBvaW50VG9Qb2ludChncmFiYmVyTWlkcG9pbnQueCwgZ3JhYmJlck1pZHBvaW50Lnks
IGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSAtIChmb250SGVpZ2h0KSk7CiAK
LSAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZHJhZ1gsIGRy
YWdZMiwgZHJhZ1gsIGRyYWdZKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rp
b24oKS50b1N0cmluZygpID09ICJzZWQiKQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFT
UzogQ29ycmVjdCBTZWxlY3Rpb24nOworICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkNoYW5nZWRD
b3VudCA+IGxhc3RTZWxlY3Rpb25DaGFuZ2VDb3VudCkKKyAgICAgICAgICAgICAgICBvdXRwdXQg
Kz0gJ1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2VkIDwvYnI+JzsKICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBkZXNlbGVjdCBsaW5lIGFm
dGVyIGEgZHJhZy4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50LmdldFNlbGVjdGlv
bigpLnRvU3RyaW5nKCk7Ci0gICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOworICAgICAgICAg
ICAgICAgIG91dHB1dCArPSAnRkFJTDogU2VsZWN0aW9uIGRpZCBub3QgY2hhbmdlIDxicj4nICsg
c2VsZWN0aW9uQ2hhbmdlZENvdW50OworCisgICAgICAgICAgICBsYXN0U2VsZWN0aW9uQ2hhbmdl
Q291bnQgPSBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CisgICAgICAgICAgICBncmFiYmVyTWlkcG9p
bnQgPSBVSUhlbHBlci5taWRQb2ludE9mUmVjdChhd2FpdCBVSUhlbHBlci5nZXRTZWxlY3Rpb25F
bmRHcmFiYmVyVmlld1JlY3QoKSk7CisgICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9t
UG9pbnRUb1BvaW50KGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSwgZ3JhYmJl
ck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55IC0gKGZvbnRIZWlnaHQgKiA0KSk7CiAKLSAg
ICAgICAgICAgIHZhciByZXN1bHQgPSBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50
KGRyYWdYLCBkcmFnWSwgZHJhZ1gsIGRyYWdZNCk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQu
Z2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAic2VkIikKLSAgICAgICAgICAgICAgICBvdXRw
dXQgKz0gJ1BBU1M6IENvcnJlY3QgU2VsZWN0aW9uJzsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rp
b25DaGFuZ2VkQ291bnQgPiBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQpCisgICAgICAgICAgICAg
ICAgb3V0cHV0ICs9ICdQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZCA8L2JyPic7CiAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gcmVkdWNl
IHNlbGVjdGlvbiB0byBhIHNpbmdsZSBjaGFyYWN0ZXIgYnkgZHJhZ2dpbmcgdXAuIEluY29ycmVj
dCBTZWxlY3Rpb246ICcgKyBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOwotICAg
ICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKLSAgICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7
CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBTZWxlY3Rpb24gZGlkIG5vdCBjaGFu
Z2UgPGJyPicgKyBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CiAKLSAgICAgICAgICAgIHZhciBub25l
ZGl0YWJsZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm9uZWRpdGFibGUnKTsK
LSAgICAgICAgICAgIG5vbmVkaXRhYmxlRWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG5v
bmVkaXRhYmxlRWxlbWVudCk7CiAgICAgICAgICAgICB2YXIgZWRpdGFibGVFbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRhYmxlJyk7CiAgICAgICAgICAgICBlZGl0YWJsZUVs
ZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlZGl0YWJsZUVsZW1lbnQpOwogICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLmlubmVySFRNTCA9IG91dHB1dDsK
ICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9Ci0gICAgCisK
ICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBydW5UZXN0LCBmYWxzZSk7
CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPgotICAgICAgICAjbm9uZWRpdGFibGUgewotICAg
ICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgI3RhcmdldCB7CisgICAgICAgICAgICBo
ZWlnaHQ6IDUwcHg7CiAgICAgICAgICAgICB3aWR0aDogMzAwcHg7CiAgICAgICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBzaWx2ZXI7CiAgICAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNl
OwogICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICB9CiAgICAgICAgICNlZGl0
YWJsZSB7Ci0gICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAz
MDBweDsKICAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKICAgICAgICAgICAgIGJhY2tncm91bmQt
Y29sb3I6IHNpbHZlcjsKICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Ci0gICAg
ICAgICAgICBmb250LXNpemU6IDE4cHg7Ci0gICAgICAgIH0KLSAgICAgICAgI3RhcmdldCB7Ci0g
ICAgICAgICAgICBoZWlnaHQ6IDUwcHg7Ci0gICAgICAgICAgICB3aWR0aDogMzAwcHg7Ci0gICAg
ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7Ci0gICAgICAgICAgICBmb250LWZhbWls
eTogbW9ub3NwYWNlOwotICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4OworICAgICAgICAgICAg
Zm9udC1zaXplOiAzMHB4OwogICAgICAgICB9CiAgICAgPC9zdHlsZT4KICAgICA8bWV0YSBuYW1l
PSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEi
PgogPC9oZWFkPgogPGJvZHk+Ci0gICAgPGRpdiBpZD0iZWRpdGFibGUiIGNvbnRlbnRlZGl0YWJs
ZT4KLSAgICAgICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFk
aXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3Jl
IGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5v
c3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEg
Y29tbW9kbyBjb25zZXF1YXQuPC9wPgotICAgIDwvZGl2PiAKLSAgICA8ZGl2IGlkPSJub25lZGl0
YWJsZSI+Ci0gICAgICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1
ciBhZGlwaXNjaW5nIGVsaXQsIDxzcGFuIGlkPSJmaXJzdFNlbGVjdGlvbiI+c2VkPC9zcGFuPiBk
byBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW48c3BhbiBpZD0ic2Vjb25kU2VsZWN0aW9uIj48L3Nw
YW4+dCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZzxzcGFuIGlkPSJ0aGlyZFNlbGVjdGlvbiI+PC9z
cGFuPm5hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVy
Y2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNv
bnNlcXVhdC48L3A+Ci0gICAgPC9kaXY+CiAgICAgPGRpdiBpZD0idGFyZ2V0Ij4KICAgICAgICAg
VGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2NyaXB0Q29udHJvbGxlciB0byBydW4uCiAgICAgPC9kaXY+
CisgICAgPGRpdiBpZD0iZWRpdGFibGUiIGNvbnRlbnRlZGl0YWJsZT4KKyAgICAgICAgPHA+SGVy
ZSdzIHRvIHRoZSBjcmF6eSBvbmVzLiBUaGUgbWlzZml0cy4gVGhlIHJlYmVscy4gVGhlIHRyb3Vi
bGVtYWtlcnMuIFRoZSByb3VuZCBwZWdzIGluIHRoZSBzcXVhcmUgaG9sZXMuPC9wPgorICAgIDwv
ZGl2PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtb24tZWRpdGFibGUtY29udGVudC1mb3Itc2VsZWN0aW9u
LXRoZW4tZHJhZy11cC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1vbi1lZGl0YWJsZS1jb250
ZW50LWZvci1zZWxlY3Rpb24tdGhlbi1kcmFnLXVwLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0LWV4
cGVjdGVkLnR4dAppbmRleCBlNGI2NDIxMDg5MTMyNGQ3NjJhYzI5ODExMzkzMjMzNmU4ZTFkYzVj
Li5kNjIwMTM5OWMxYjNkNzU0NTViNWZmYzI1MzYyOWQ4ZTM4ZmZmZDEzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1vbi1lZGl0YWJsZS1j
b250ZW50LWZvci1zZWxlY3Rpb24tdGhlbi1kcmFnLXVwLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91
YmxlLXRhcC1vbi1lZGl0YWJsZS1jb250ZW50LWZvci1zZWxlY3Rpb24tdGhlbi1kcmFnLXVwLXRv
LWNoYW5nZS1zZWxlY3RlZC10ZXh0LWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDYgQEAKIFBBU1M6
IEhhcyBDYXJldCBTZWxlY3Rpb24KLVBBU1M6IENvcnJlY3QgU2VsZWN0aW9uCi1QQVNTOiBDb3Jy
ZWN0IFNlbGVjdGlvbgotUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24KLVBBU1M6IENvcnJlY3QgU2Vs
ZWN0aW9uCi1QQVNTOiBDb3JyZWN0IFNlbGVjdGlvbgotUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24K
K1BBU1M6IEhhcyBTZWxlY3Rpb24KK1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2VkCitQQVNTOiBTZWxl
Y3Rpb24gQ2hhbmdlZAorUEFTUzogU2VsZWN0aW9uIENoYW5nZWQKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtb24tZWRpdGFibGUtY29u
dGVudC1mb3Itc2VsZWN0aW9uLXRoZW4tZHJhZy11cC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtb24tZWRp
dGFibGUtY29udGVudC1mb3Itc2VsZWN0aW9uLXRoZW4tZHJhZy11cC10by1jaGFuZ2Utc2VsZWN0
ZWQtdGV4dC5odG1sCmluZGV4IDU0MTg2OGE3MDg4YTgyNzAzMmYyN2M4MjYyMjdhZmNjZTQ3YjUx
Y2EuLjBmYmRhNjg1NTRhYjdkOTBiYzkxMzcwMWE1YzM2ZjViMzAxZDRmNmYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLW9uLWVkaXRhYmxl
LWNvbnRlbnQtZm9yLXNlbGVjdGlvbi10aGVuLWRyYWctdXAtdG8tY2hhbmdlLXNlbGVjdGVkLXRl
eHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRh
cC1vbi1lZGl0YWJsZS1jb250ZW50LWZvci1zZWxlY3Rpb24tdGhlbi1kcmFnLXVwLXRvLWNoYW5n
ZS1zZWxlY3RlZC10ZXh0Lmh0bWwKQEAgLTEsNSArMSw0IEBACiA8IURPQ1RZUEUgaHRtbD4KLQog
PGh0bWw+CiA8aGVhZD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2Jh
c2ljLWdlc3R1cmVzLmpzIj48L3NjcmlwdD4KQEAgLTksMjkgKzgsMjYgQEAKICAgICAgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CiAgICAgICAgIH0KLSAgICAKKwogICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5U
ZXN0KCkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0
KQoraWYgKCF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQogICAgICAgICAgICAgICAgIHJldHVybjsK
IAogICAgICAgICAgICAgdmFyIG91dHB1dCA9ICcnOwogICAgICAgICAgICAgdmFyIGVkaXRhYmxl
VGFyZ2V0UmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0YWJsZScpLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpOwotICAgICAgICAgICAgdmFyIGZpcnN0VGFyZ2V0UmVjdCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdmaXJzdFNlbGVjdGlvbicpLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpOwotICAgICAgICAgICAgdmFyIHNlY29uZFRhcmdldFJlY3QgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnc2Vjb25kU2VsZWN0aW9uJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAg
ICAgICAgICB2YXIgdGhpcmRUYXJnZXRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Ro
aXJkU2VsZWN0aW9uJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgICAgICB2YXIg
ZWRpdGFibGVUb05vbmVkaXRhYmxlT2Zmc2V0ID0gIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdu
b25lZGl0YWJsZScpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnkgLSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZWRpdGFibGUnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55OwotICAgICAgICAK
KwogICAgICAgICAgICAgdmFyIHRhcFBvaW50WCA9IGVkaXRhYmxlVGFyZ2V0UmVjdC54ICsgZWRp
dGFibGVUYXJnZXRSZWN0LndpZHRoIC8gMjsKICAgICAgICAgICAgIHZhciB0YXBQb2ludFkgPSBl
ZGl0YWJsZVRhcmdldFJlY3QueSArIGVkaXRhYmxlVGFyZ2V0UmVjdC5oZWlnaHQgLyAyOwotICAg
ICAgICAgICAgdmFyIGRvdWJsZVRhcFBvaW50WCA9IGZpcnN0VGFyZ2V0UmVjdC54ICsgZmlyc3RU
YXJnZXRSZWN0LndpZHRoIC8gMjsKLSAgICAgICAgICAgIHZhciBkb3VibGVUYXBQb2ludFkgPSBm
aXJzdFRhcmdldFJlY3QueSArIGZpcnN0VGFyZ2V0UmVjdC5oZWlnaHQgLyAyIC0gZWRpdGFibGVU
b05vbmVkaXRhYmxlT2Zmc2V0OwotICAgICAgICAgICAgdmFyIGRyYWdZID0gZmlyc3RUYXJnZXRS
ZWN0LnkgLSBlZGl0YWJsZVRvTm9uZWRpdGFibGVPZmZzZXQ7Ci0gICAgICAgICAgICB2YXIgZHJh
Z1ggPSBmaXJzdFRhcmdldFJlY3QueDsKLSAgICAgICAgICAgIHZhciBkcmFnWTIgPSBzZWNvbmRU
YXJnZXRSZWN0LnkgLSBlZGl0YWJsZVRvTm9uZWRpdGFibGVPZmZzZXQ7Ci0gICAgICAgICAgICB2
YXIgZHJhZ1kzID0gdGhpcmRUYXJnZXRSZWN0LnkgLSBlZGl0YWJsZVRvTm9uZWRpdGFibGVPZmZz
ZXQ7Ci0gICAgICAgICAgICB2YXIgZHJhZ1k0ID0gZmlyc3RUYXJnZXRSZWN0LnkgKyBmaXJzdFRh
cmdldFJlY3QuaGVpZ2h0IC0gZWRpdGFibGVUb05vbmVkaXRhYmxlT2Zmc2V0OwotICAgICAgICAK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgdmFyIGZvbnRIZWlnaHQgPSAzMDsKKworICAgICAg
ICAgICAgdmFyIHNlbGVjdGlvbkNoYW5nZWRDb3VudCA9IDA7CisgICAgICAgICAgICB2YXIgbGFz
dFNlbGVjdGlvbkNoYW5nZUNvdW50ID0gMDsKKyAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50
TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsICgpID0+IHsKKyAgICAgICAgICAgICAgICBzZWxl
Y3Rpb25DaGFuZ2VkQ291bnQrKzsKKyAgICAgICAgICAgIH0pOworCiAgICAgICAgICAgICBhd2Fp
dCBVSUhlbHBlci50YXBBdCh0YXBQb2ludFgsIHRhcFBvaW50WSk7CiAgICAgICAgICAgICBpZiAo
ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudHlwZSA9PSAiQ2FyZXQiKQogICAgICAgICAgICAgICAg
IG91dHB1dCArPSAnUEFTUzogSGFzIENhcmV0IFNlbGVjdGlvbic7CkBAIC00MSw1MyArMzcsNDMg
QEAKIAogICAgICAgICAgICAgYXdhaXQgZGlkU2hvd0tleWJvYXJkKCk7CiAKLSAgICAgICAgICAg
IGF3YWl0IFVJSGVscGVyLmRvdWJsZVRhcEF0KGRvdWJsZVRhcFBvaW50WCwgZG91YmxlVGFwUG9p
bnRZKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygp
ID09ICJhdCIpCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVj
dGlvbic7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5kb3VibGVUYXBBdCh0YXBQb2ludFgs
IHRhcFBvaW50WSk7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9T
dHJpbmcoKSAhPSAiIikKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IEhhcyBTZWxl
Y3Rpb24nOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJ
TDogZmFpbGVkIHRvIHNlbGVjdCBhIHdvcmQgYXMgYSByZXN1bHQgb2YgYSBsb25nIHByZXNzLiBJ
bmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmco
KTsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBzZWxlY3QgYSB3
b3JkIGFzIGEgcmVzdWx0IG9mIGEgZG91YmxlIHRhcC4nOwogICAgICAgICAgICAgb3V0cHV0ICs9
ICc8YnI+JzsKIAogICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvckRvdWJsZVRhcERl
bGF5KCk7CiAKLSAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQo
ZHJhZ1gsIGRyYWdZLCBkcmFnWCwgZHJhZ1kyKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5n
ZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQg
YXQiKQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24n
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFp
bGVkIHRvIHNlbGVjdCBhZGRpdGlvbmFsIGxpbmUgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2Vs
ZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAg
ICAgIG91dHB1dCArPSAnPGJyPic7CisgICAgICAgICAgICBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291
bnQgPSBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CisgICAgICAgICAgICB2YXIgZ3JhYmJlck1pZHBv
aW50ID0gVUlIZWxwZXIubWlkUG9pbnRPZlJlY3QoYXdhaXQgVUlIZWxwZXIuZ2V0U2VsZWN0aW9u
U3RhcnRHcmFiYmVyVmlld1JlY3QoKSk7CisgICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdG
cm9tUG9pbnRUb1BvaW50KGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSAsIGdy
YWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSAtIChmb250SGVpZ2h0ICogMikpOwog
Ci0gICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGRyYWdYLCBk
cmFnWTIsIGRyYWdYLCBkcmFnWTMpOwotICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVj
dGlvbigpLnRvU3RyaW5nKCkgPT0gIiBhZGlwaXNjaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRl
bXBvciBpbmNpZGlkdW50IGF0IikKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IENv
cnJlY3QgU2VsZWN0aW9uJzsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb25DaGFuZ2VkQ291bnQg
PiBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQpCisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQ
QVNTOiBTZWxlY3Rpb24gQ2hhbmdlZCA8L2JyPic7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gc2VsZWN0IGFkZGl0aW9uYWwgbGlu
ZSBhZnRlciBhIGRyYWcuIEluY29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1bWVudC5nZXRTZWxl
Y3Rpb24oKS50b1N0cmluZygpOwotICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKKyAgICAg
ICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IFNlbGVjdGlvbiBkaWQgbm90IGNoYW5nZSA8YnI+
JyArIHNlbGVjdGlvbkNoYW5nZWRDb3VudDsKIAotICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmRE
cmFnRnJvbVBvaW50VG9Qb2ludChkcmFnWCwgZHJhZ1kzLCBkcmFnWCwgZHJhZ1kyKTsKLSAgICAg
ICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJvIGVpdXNt
b2QgdGVtcG9yIGluY2lkaWR1bnQgYXQiKQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFT
UzogQ29ycmVjdCBTZWxlY3Rpb24nOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIGRlc2VsZWN0IGxpbmUgYWZ0ZXIgYSBkcmFnLiBJ
bmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmco
KTsKLSAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7CisgICAgICAgICAgICBsYXN0U2VsZWN0
aW9uQ2hhbmdlQ291bnQgPSBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CisgICAgICAgICAgICBncmFi
YmVyTWlkcG9pbnQgPSBVSUhlbHBlci5taWRQb2ludE9mUmVjdChhd2FpdCBVSUhlbHBlci5nZXRT
ZWxlY3Rpb25TdGFydEdyYWJiZXJWaWV3UmVjdCgpKTsKKyAgICAgICAgICAgIGF3YWl0IHRvdWNo
QW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2lu
dC55ICwgZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55ICsgKGZvbnRIZWlnaHQg
KiAzKSk7CisgICAgICAgICAgICBhd2FpdCBsaWZ0VXBBdFBvaW50KGdyYWJiZXJNaWRwb2ludC54
LCBncmFiYmVyTWlkcG9pbnQueSAtIChmb250SGVpZ2h0ICogMykpOwogCi0gICAgICAgICAgICBh
d2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGRyYWdYLCBkcmFnWTIsIGRyYWdYLCBk
cmFnWSk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmco
KSA9PSAiYXQiKQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxl
Y3Rpb24nOworICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkNoYW5nZWRDb3VudCA+IGxhc3RTZWxl
Y3Rpb25DaGFuZ2VDb3VudCkKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IFNlbGVj
dGlvbiBDaGFuZ2VkIDwvYnI+JzsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBv
dXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBkZXNlbGVjdCBsaW5lIGFmdGVyIGEgZHJhZy4gSW5j
b3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7
Ci0gICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOworICAgICAgICAgICAgICAgIG91dHB1dCAr
PSAnRkFJTDogU2VsZWN0aW9uIGRpZCBub3QgY2hhbmdlIDxicj4nICsgc2VsZWN0aW9uQ2hhbmdl
ZENvdW50OworICAgICAgICAgICAgCisgICAgICAgICAgICBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291
bnQgPSBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CisgICAgICAgICAgICBncmFiYmVyTWlkcG9pbnQg
PSBVSUhlbHBlci5taWRQb2ludE9mUmVjdChhd2FpdCBVSUhlbHBlci5nZXRTZWxlY3Rpb25TdGFy
dEdyYWJiZXJWaWV3UmVjdCgpKTsKKyAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Q
b2ludFRvUG9pbnQoZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55ICwgZ3JhYmJl
ck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55ICsgKGZvbnRIZWlnaHQgKiAyKSk7CiAKLSAg
ICAgICAgICAgIHZhciByZXN1bHQgPSBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50
KGRyYWdYLCBkcmFnWSwgZHJhZ1gsIGRyYWdZNCk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQu
Z2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAiYXQiKQotICAgICAgICAgICAgICAgIG91dHB1
dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOworICAgICAgICAgICAgaWYgKHNlbGVjdGlv
bkNoYW5nZWRDb3VudCA+IGxhc3RTZWxlY3Rpb25DaGFuZ2VDb3VudCkKKyAgICAgICAgICAgICAg
ICBvdXRwdXQgKz0gJ1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2VkIDwvYnI+JzsKICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byByZWR1Y2Ug
c2VsZWN0aW9uIHRvIGEgc2luZ2xlIGNoYXJhY3RlciBieSBkcmFnZ2luZyBkb3duLiBJbmNvcnJl
Y3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAg
ICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7Ci0gICAgICAgICAgICBvdXRwdXQgKz0gcmVzdWx0
OworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogU2VsZWN0aW9uIGNoYW5nZWQgPGJy
PicgKyBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CiAKLSAgICAgICAgICAgIHZhciBub25lZGl0YWJs
ZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm9uZWRpdGFibGUnKTsKLSAgICAg
ICAgICAgIG5vbmVkaXRhYmxlRWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG5vbmVkaXRh
YmxlRWxlbWVudCk7CiAgICAgICAgICAgICB2YXIgZWRpdGFibGVFbGVtZW50ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2VkaXRhYmxlJyk7CiAgICAgICAgICAgICBlZGl0YWJsZUVsZW1lbnQu
cGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlZGl0YWJsZUVsZW1lbnQpOwogICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLmlubmVySFRNTCA9IG91dHB1dDsKQEAgLTk3
LDM5ICs4MywzMCBAQAogICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1
blRlc3QsIGZhbHNlKTsKICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+Ci0gICAgICAgICNub25l
ZGl0YWJsZSB7Ci0gICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAjdGFyZ2V0IHsK
KyAgICAgICAgICAgIGhlaWdodDogNTBweDsKICAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKICAg
ICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKICAgICAgICAgICAgIGZvbnQtZmFt
aWx5OiBtb25vc3BhY2U7CiAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgIH0K
ICAgICAgICAgI2VkaXRhYmxlIHsKLSAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAg
ICAgICBoZWlnaHQ6IDMwMHB4OwogICAgICAgICAgICAgd2lkdGg6IDMwMHB4OwogICAgICAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOwogICAgICAgICAgICAgZm9udC1mYW1pbHk6IG1v
bm9zcGFjZTsKLSAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKLSAgICAgICAgfQotICAgICAg
ICAjdGFyZ2V0IHsKLSAgICAgICAgICAgIGhlaWdodDogNTBweDsKLSAgICAgICAgICAgIHdpZHRo
OiAzMDBweDsKLSAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKLSAgICAgICAg
ICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Ci0gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7
CisgICAgICAgICAgICBmb250LXNpemU6IDMwcHg7CiAgICAgICAgIH0KICAgICA8L3N0eWxlPgot
ICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEiPgorICAg
IDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRp
YWwtc2NhbGU9MSI+CiA8L2hlYWQ+CiA8Ym9keT4KLSAgICA8ZGl2IGlkPSJlZGl0YWJsZSIgY29u
dGVudGVkaXRhYmxlPgotICAgICAgICA8cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29u
c2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVu
dCBhdCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5p
YW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxp
cXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC48L3A+Ci0gICAgPC9kaXY+IAotICAgIDxkaXYg
aWQ9Im5vbmVkaXRhYmxlIj4KLSAgICAgICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQs
IGNvbnNlY3RldHVyPHNwYW4gaWQ9InRoaXJkU2VsZWN0aW9uIj48L3NwYW4+IGFkaXBpc2Npbmcg
ZWxpdCwgc2VkIGQ8c3BhbiBpZD0ic2Vjb25kU2VsZWN0aW9uIj48L3NwYW4+byBlaXVzbW9kIHRl
bXBvciBpbmNpZGlkdW50IDxzcGFuIGlkPSJmaXJzdFNlbGVjdGlvbiI+YXQ8L3NwYW4+IGxhYm9y
ZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBu
b3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVh
IGNvbW1vZG8gY29uc2VxdWF0LjwvcD4KLSAgICA8L2Rpdj4KICAgICA8ZGl2IGlkPSJ0YXJnZXQi
PgogICAgICAgICBUaGlzIHRlc3QgcmVxdWlyZXMgVUlTY3JpcHRDb250cm9sbGVyIHRvIHJ1bi4K
ICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJlZGl0YWJsZSIgY29udGVudGVkaXRhYmxlPgorICAg
ICAgICA8cD5IZXJlJ3MgdG8gdGhlIGNyYXp5IG9uZXMuIFRoZSBtaXNmaXRzLiBUaGUgcmViZWxz
LiBUaGUgdHJvdWJsZSBtYWtlcnMuIFRoZSByb3VuZCBwZWdzIGluIHRoZSBzcXVhcmUgaG9sZXMu
PC9wPgorICAgIDwvZGl2PgogPC9ib2R5PgogPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1lZGl0YWJsZS1jb250ZW50
LXRoZW4tZHJhZy11cC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3Mtb24tZWRpdGFibGUtY29udGVudC10aGVu
LWRyYWctdXAtdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQuaHRtbAppbmRleCA3MjMzMzVkNzRmNzQy
NTdiMDcxMWY4ZDBmZWE3NjExYmFiOGMxNjZmLi43YmRmZGY0OWEzMTE1ZTc1MWNhOGUzNjlmZDhj
MGY4NWVhOGE4MzdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9p
b3MvbG9uZy1wcmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy11cC10by1jaGFuZ2Ut
c2VsZWN0ZWQtdGV4dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lv
cy9sb25nLXByZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1kcmFnLXVwLXRvLWNoYW5nZS1z
ZWxlY3RlZC10ZXh0Lmh0bWwKQEAgLTM3LDI3ICszNywzMCBAQAogICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhIHdvcmQgYXMgYSByZXN1bHQgb2YgYSBs
b25nIHByZXNzLic7CiAgICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOwogCisgICAgICAgICAg
ICBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQgPSBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CiAgICAg
ICAgICAgICB2YXIgZ3JhYmJlck1pZHBvaW50ID0gVUlIZWxwZXIubWlkUG9pbnRPZlJlY3QoYXdh
aXQgVUlIZWxwZXIuZ2V0U2VsZWN0aW9uU3RhcnRHcmFiYmVyVmlld1JlY3QoKSk7CiAgICAgICAg
ICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGdyYWJiZXJNaWRwb2ludC54
LCBncmFiYmVyTWlkcG9pbnQueSAsIGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQu
eSAtIChmb250SGVpZ2h0ICogMikpOwogCi0gICAgICAgICAgICBpZiAoc2VsZWN0aW9uQ2hhbmdl
ZENvdW50ID09IDMpCisgICAgICAgICAgICBpZiAoc2VsZWN0aW9uQ2hhbmdlZENvdW50ID4gbGFz
dFNlbGVjdGlvbkNoYW5nZUNvdW50KQogICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzog
U2VsZWN0aW9uIENoYW5nZWQgPC9icj4nOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgIG91dHB1dCArPSAnRkFJTDogU2VsZWN0aW9uIGRpZCBub3QgY2hhbmdlIDxicj4nICsgc2Vs
ZWN0aW9uQ2hhbmdlZENvdW50OwogCisgICAgICAgICAgICBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291
bnQgPSBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CiAgICAgICAgICAgICBncmFiYmVyTWlkcG9pbnQg
PSBVSUhlbHBlci5taWRQb2ludE9mUmVjdChhd2FpdCBVSUhlbHBlci5nZXRTZWxlY3Rpb25TdGFy
dEdyYWJiZXJWaWV3UmVjdCgpKTsKICAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Q
b2ludFRvUG9pbnQoZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55ICwgZ3JhYmJl
ck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55ICsgKGZvbnRIZWlnaHQgKiAzKSk7CiAgICAg
ICAgICAgICBhd2FpdCBsaWZ0VXBBdFBvaW50KGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlk
cG9pbnQueSAtIChmb250SGVpZ2h0ICogMykpOwogCi0gICAgICAgICAgICBpZiAoc2VsZWN0aW9u
Q2hhbmdlZENvdW50ID09IDUpCisgICAgICAgICAgICBpZiAoc2VsZWN0aW9uQ2hhbmdlZENvdW50
ID4gbGFzdFNlbGVjdGlvbkNoYW5nZUNvdW50KQogICAgICAgICAgICAgICAgIG91dHB1dCArPSAn
UEFTUzogU2VsZWN0aW9uIENoYW5nZWQgPC9icj4nOwogICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogU2VsZWN0aW9uIGRpZCBub3QgY2hhbmdlIDxicj4n
ICsgc2VsZWN0aW9uQ2hhbmdlZENvdW50OwogICAgICAgICAgICAgCisgICAgICAgICAgICBsYXN0
U2VsZWN0aW9uQ2hhbmdlQ291bnQgPSBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CiAgICAgICAgICAg
ICBncmFiYmVyTWlkcG9pbnQgPSBVSUhlbHBlci5taWRQb2ludE9mUmVjdChhd2FpdCBVSUhlbHBl
ci5nZXRTZWxlY3Rpb25TdGFydEdyYWJiZXJWaWV3UmVjdCgpKTsKICAgICAgICAgICAgIGF3YWl0
IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJN
aWRwb2ludC55ICwgZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55ICsgKGZvbnRI
ZWlnaHQgKiAyKSk7CiAKLSAgICAgICAgICAgIGlmIChzZWxlY3Rpb25DaGFuZ2VkQ291bnQgPT0g
NykKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb25DaGFuZ2VkQ291bnQgPiBsYXN0U2VsZWN0aW9u
Q2hhbmdlQ291bnQpCiAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBTZWxlY3Rpb24g
Q2hhbmdlZCA8L2JyPic7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgb3V0cHV0
ICs9ICdGQUlMOiBTZWxlY3Rpb24gY2hhbmdlZCA8YnI+JyArIHNlbGVjdGlvbkNoYW5nZWRDb3Vu
dDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXBy
ZXNzLXRoZW4tZHJhZy1kb3duLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLXRoZW4tZHJhZy1k
b3duLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0LWV4cGVjdGVkLnR4dAppbmRleCBkZTUxYWEzMTU1
ZjMyMjU3Yzc4NTY3ODAwY2QxNTNlNDcyNWE2ZjEyLi5jYzdhNDM1NzE2ZDhjMDVlNmY2ZDU5M2Ji
MWE1OTFmZTY4OTI2N2Q1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9pb3MvbG9uZy1wcmVzcy10aGVuLWRyYWctZG93bi10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmct
cHJlc3MtdGhlbi1kcmFnLWRvd24tdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQtZXhwZWN0ZWQudHh0
CkBAIC0xLDcgKzEsNSBAQAotUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24KLVBBU1M6IENvcnJlY3Qg
U2VsZWN0aW9uCi1QQVNTOiBDb3JyZWN0IFNlbGVjdGlvbgotUEFTUzogQ29ycmVjdCBTZWxlY3Rp
b24KLVBBU1M6IENvcnJlY3QgU2VsZWN0aW9uCi1QQVNTOiBDb3JyZWN0IFNlbGVjdGlvbgorUEFT
UzogSGFzIFNlbGVjdGlvbgorUEFTUzogU2VsZWN0aW9uIENoYW5nZWQKK1BBU1M6IFNlbGVjdGlv
biBDaGFuZ2VkCitQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy10aGVuLWRyYWctZG93bi10by1j
aGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2xvbmctcHJlc3MtdGhlbi1kcmFnLWRvd24tdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQuaHRt
bAppbmRleCBkYzEyNGYwOTcyZmFmNGZhMTFmN2QwZDJjMzBkMmJjN2NjMjJkN2NjLi42NzczZWU3
Y2ZhMzQyYzU3MThjZmE5YjE2MTI2YzZjOGZmY2JhNjIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy10aGVuLWRyYWctZG93bi10by1jaGFu
Z2Utc2VsZWN0ZWQtdGV4dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNo
L2lvcy9sb25nLXByZXNzLXRoZW4tZHJhZy1kb3duLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0
bWwKQEAgLTEsOTYgKzEsOTggQEAKIDwhRE9DVFlQRSBodG1sPgotCiA8aHRtbD4KIDxoZWFkPgog
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVs
cGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgogICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgIH0KLSAgICAKKwogICAgICAg
ICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCF0
ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQogICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
CisKICAgICAgICAgICAgIHZhciBvdXRwdXQgPSAnJzsKLSAgICAgICAgICAgIHZhciBmaXJzdFRh
cmdldFJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlyc3RTZWxlY3Rpb24nKS5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgICAgICAgIHZhciBzZWNvbmRUYXJnZXRSZWN0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlY29uZFNlbGVjdGlvbicpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpOwotICAgICAgICAgICAgdmFyIHRoaXJkVGFyZ2V0UmVjdCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0aGlyZFNlbGVjdGlvbicpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwot
ICAgICAgICAKLSAgICAgICAgICAgIHZhciBwcmVzc1BvaW50WCA9IGZpcnN0VGFyZ2V0UmVjdC54
ICsgZmlyc3RUYXJnZXRSZWN0LndpZHRoIC8gMjsKLSAgICAgICAgICAgIHZhciBwcmVzc1BvaW50
WSA9IGZpcnN0VGFyZ2V0UmVjdC55ICsgZmlyc3RUYXJnZXRSZWN0LmhlaWdodCAvIDI7Ci0gICAg
ICAgICAgICB2YXIgZHJhZ1kgPSBmaXJzdFRhcmdldFJlY3QueSArIGZpcnN0VGFyZ2V0UmVjdC5o
ZWlnaHQ7Ci0gICAgICAgICAgICB2YXIgZHJhZ1ggPSBmaXJzdFRhcmdldFJlY3QueCArIGZpcnN0
VGFyZ2V0UmVjdC53aWR0aDsKLSAgICAgICAgICAgIHZhciBkcmFnWTIgPSBzZWNvbmRUYXJnZXRS
ZWN0LnkgKyBzZWNvbmRUYXJnZXRSZWN0LmhlaWdodDsKLSAgICAgICAgICAgIHZhciBkcmFnWTMg
PSB0aGlyZFRhcmdldFJlY3QueSArIHRoaXJkVGFyZ2V0UmVjdC5oZWlnaHQ7Ci0gICAgICAgICAg
ICB2YXIgZHJhZ1k0ID0gZmlyc3RUYXJnZXRSZWN0LnkgLSBmaXJzdFRhcmdldFJlY3QuaGVpZ2h0
OwotICAgICAgICAKLSAgICAgICAgICAgIGF3YWl0IGxvbmdQcmVzc0F0UG9pbnQocHJlc3NQb2lu
dFgscHJlc3NQb2ludFkpOwotICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVjdGlvbigp
LnRvU3RyaW5nKCkgPT0gInNlZCIpCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBD
b3JyZWN0IFNlbGVjdGlvbic7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0
cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gc2VsZWN0IGEgd29yZCBhcyBhIHJlc3VsdCBvZiBhIGxv
bmcgcHJlc3MuIEluY29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1bWVudC5nZXRTZWxlY3Rpb24o
KS50b1N0cmluZygpOwotICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKKyAgICAgICAgICAg
IHZhciB0YXJnZXRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpOwogCi0gICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9t
UG9pbnRUb1BvaW50KGRyYWdYLCBkcmFnWSwgZHJhZ1gsIGRyYWdZMik7Ci0gICAgICAgICAgICBp
ZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAic2VkIGRvIGVpdXNtb2Qg
dGVtcG9yIGluY2lkaWR1biIpCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBDb3Jy
ZWN0IFNlbGVjdGlvbic7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0
ICs9ICdGQUlMOiBmYWlsZWQgdG8gc2VsZWN0IGFkZGl0aW9uYWwgbGluZSBhZnRlciBhIGRyYWcu
IEluY29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmlu
ZygpOwotICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKKyAgICAgICAgICAgIHZhciBwcmVz
c1BvaW50WCA9IHRhcmdldFJlY3QueCArIHRhcmdldFJlY3Qud2lkdGggLyAyOworICAgICAgICAg
ICAgdmFyIHByZXNzUG9pbnRZID0gdGFyZ2V0UmVjdC55ICsgdGFyZ2V0UmVjdC5oZWlnaHQgLyAy
OworICAgICAgICAgICAgCisgICAgICAgICAgICB2YXIgZm9udEhlaWdodCA9IDMwOworCisgICAg
ICAgICAgICB2YXIgc2VsZWN0aW9uQ2hhbmdlZENvdW50ID0gMDsKKyAgICAgICAgICAgIHZhciBs
YXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQgPSAwOworICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIiwgKCkgPT4geworICAgICAgICAgICAgICAgIHNl
bGVjdGlvbkNoYW5nZWRDb3VudCsrOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGF3
YWl0IGxvbmdQcmVzc0F0UG9pbnQocHJlc3NQb2ludFgsIHByZXNzUG9pbnRZKTsKIAotICAgICAg
ICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChkcmFnWCwgZHJhZ1kyLCBk
cmFnWCwgZHJhZ1kzKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50
b1N0cmluZygpID09ICJzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUg
ZXQgZG9sb3JlIG1hIikKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IENvcnJlY3Qg
U2VsZWN0aW9uJzsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JTZWxlY3Rpb25U
b0FwcGVhcigpOworCisgICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9T
dHJpbmcoKSAhPSAiIikKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IEhhcyBTZWxl
Y3Rpb24nOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJ
TDogZmFpbGVkIHRvIHNlbGVjdCBhZGRpdGlvbmFsIGxpbmUgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJl
Y3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKKyAg
ICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBzZWxlY3QgYSB3b3JkIGFz
IGEgcmVzdWx0IG9mIGEgbG9uZyBwcmVzcy4nOwogICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+
JzsKIAotICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChkcmFn
WCwgZHJhZ1kzLCBkcmFnWCwgZHJhZ1kyKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRT
ZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVu
IikKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IENvcnJlY3QgU2VsZWN0aW9uJzsK
KyAgICAgICAgICAgIGxhc3RTZWxlY3Rpb25DaGFuZ2VDb3VudCA9IHNlbGVjdGlvbkNoYW5nZWRD
b3VudDsKKyAgICAgICAgICAgIHZhciBncmFiYmVyTWlkcG9pbnQgPSBVSUhlbHBlci5taWRQb2lu
dE9mUmVjdChhd2FpdCBVSUhlbHBlci5nZXRTZWxlY3Rpb25FbmRHcmFiYmVyVmlld1JlY3QoKSk7
CisgICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGdyYWJiZXJN
aWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSwgZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJN
aWRwb2ludC55ICsgKGZvbnRIZWlnaHQgKiAyKSk7CisKKyAgICAgICAgICAgIGlmIChzZWxlY3Rp
b25DaGFuZ2VkQ291bnQgPiBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQpCisgICAgICAgICAgICAg
ICAgb3V0cHV0ICs9ICdQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZCA8L2JyPic7CiAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gZGVzZWxl
Y3QgbGluZSBhZnRlciBhIGRyYWcuIEluY29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1bWVudC5n
ZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOwotICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsK
KyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IFNlbGVjdGlvbiBkaWQgbm90IGNoYW5n
ZSA8YnI+JyArIHNlbGVjdGlvbkNoYW5nZWRDb3VudDsKKworICAgICAgICAgICAgbGFzdFNlbGVj
dGlvbkNoYW5nZUNvdW50ID0gc2VsZWN0aW9uQ2hhbmdlZENvdW50OworICAgICAgICAgICAgZ3Jh
YmJlck1pZHBvaW50ID0gVUlIZWxwZXIubWlkUG9pbnRPZlJlY3QoYXdhaXQgVUlIZWxwZXIuZ2V0
U2VsZWN0aW9uRW5kR3JhYmJlclZpZXdSZWN0KCkpOworICAgICAgICAgICAgYXdhaXQgdG91Y2hB
bmREcmFnRnJvbVBvaW50VG9Qb2ludChncmFiYmVyTWlkcG9pbnQueCwgZ3JhYmJlck1pZHBvaW50
LnksIGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSAtIChmb250SGVpZ2h0KSk7
CiAKLSAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZHJhZ1gs
IGRyYWdZMiwgZHJhZ1gsIGRyYWdZKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxl
Y3Rpb24oKS50b1N0cmluZygpID09ICJzZWQiKQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAn
UEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOworICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkNoYW5n
ZWRDb3VudCA+IGxhc3RTZWxlY3Rpb25DaGFuZ2VDb3VudCkKKyAgICAgICAgICAgICAgICBvdXRw
dXQgKz0gJ1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2VkIDwvYnI+JzsKICAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBkZXNlbGVjdCBsaW5l
IGFmdGVyIGEgZHJhZy4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50LmdldFNlbGVj
dGlvbigpLnRvU3RyaW5nKCk7Ci0gICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOworICAgICAg
ICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogU2VsZWN0aW9uIGRpZCBub3QgY2hhbmdlIDxicj4n
ICsgc2VsZWN0aW9uQ2hhbmdlZENvdW50OwogCi0gICAgICAgICAgICB2YXIgcmVzdWx0ID0gYXdh
aXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChkcmFnWCwgZHJhZ1ksIGRyYWdYLCBkcmFn
WTQpOwotICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkg
PT0gInNlZCIpCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVj
dGlvbic7CisgICAgICAgICAgICBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQgPSBzZWxlY3Rpb25D
aGFuZ2VkQ291bnQ7CisgICAgICAgICAgICBncmFiYmVyTWlkcG9pbnQgPSBVSUhlbHBlci5taWRQ
b2ludE9mUmVjdChhd2FpdCBVSUhlbHBlci5nZXRTZWxlY3Rpb25FbmRHcmFiYmVyVmlld1JlY3Qo
KSk7CisgICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGdyYWJi
ZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSwgZ3JhYmJlck1pZHBvaW50LngsIGdyYWJi
ZXJNaWRwb2ludC55IC0gKGZvbnRIZWlnaHQgKiA0KSk7CisKKyAgICAgICAgICAgIGlmIChzZWxl
Y3Rpb25DaGFuZ2VkQ291bnQgPiBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQpCisgICAgICAgICAg
ICAgICAgb3V0cHV0ICs9ICdQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZCA8L2JyPic7CiAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gcmVk
dWNlIHNlbGVjdGlvbiB0byBhIHNpbmdsZSBjaGFyYWN0ZXIgYnkgZHJhZ2dpbmcgdXAuIEluY29y
cmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOwot
ICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKLSAgICAgICAgICAgIG91dHB1dCArPSByZXN1
bHQ7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBTZWxlY3Rpb24gZGlkIG5vdCBj
aGFuZ2UgPGJyPicgKyBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CisKICAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5pbm5lckhUTUwgPSBvdXRwdXQ7CiAgICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfQotICAgIAorCiAgICAgICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOwogICAgIDwv
c2NyaXB0PgogICAgIDxzdHlsZT4KICAgICAgICAgI3RhcmdldCB7Ci0gICAgICAgICAgICBoZWln
aHQ6IDQwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiA1MHB4OwogICAgICAgICAgICAgd2lkdGg6
IDMwMHB4OwogICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOwogICAgICAgICAg
ICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsK
ICAgICAgICAgfQorICAgICAgICAjZWRpdGFibGUgeworICAgICAgICAgICAgaGVpZ2h0OiAzMDBw
eDsKKyAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29s
b3I6IHNpbHZlcjsKKyAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisgICAgICAg
ICAgICBmb250LXNpemU6IDMwcHg7CisgICAgICAgIH0KICAgICA8L3N0eWxlPgotICAgIDxtZXRh
IG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEiPgorICAgIDxtZXRhIG5h
bWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9
MSI+CiA8L2hlYWQ+CiA8Ym9keT4KICAgICA8ZGl2IGlkPSJ0YXJnZXQiPgotICAgICAgICA8cD5M
b3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LCA8
c3BhbiBpZD0iZmlyc3RTZWxlY3Rpb24iPnNlZDwvc3Bhbj4gZG8gZWl1c21vZCB0ZW1wb3IgaW5j
aWRpZHVuPHNwYW4gaWQ9InNlY29uZFNlbGVjdGlvbiI+PC9zcGFuPnQgdXQgbGFib3JlIGV0IGRv
bG9yZSBtYWc8c3BhbiBpZD0idGhpcmRTZWxlY3Rpb24iPjwvc3Bhbj5uYSBhbGlxdWEuIFV0IGVu
aW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFi
b3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuPC9wPgotICAgICAg
ICAKLSAgICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2NyaXB0Q29udHJvbGxlciB0byBydW4u
CisgICAgICAgIDxwPkhlcmUncyB0byB0aGUgY3Jhenkgb25lcy4gVGhlIG1pc2ZpdHMuIFRoZSBy
ZWJlbHMuIFRoZSB0cm91YmxlbWFrZXJzLiBUaGUgcm91bmQgcGVncyBpbiB0aGUgc3F1YXJlIGhv
bGVzLjwvcD4KKyAgICAgICAgPHA+VGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2NyaXB0Q29udHJvbGxl
ciB0byBydW4uPC9wPgogICAgIDwvZGl2PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3MtdGhlbi1kcmFnLXRv
LXNlbGVjdC10ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNo
L2lvcy9sb25nLXByZXNzLXRoZW4tZHJhZy10by1zZWxlY3QtdGV4dC1leHBlY3RlZC50eHQKaW5k
ZXggNmQ1MDNkMTMyZGVmMWJjYTQxYzFlMDJjNTE2MGI5M2QxNjJjNzM1OS4uYTM4NmEyYjFjZTU1
MjUyZjYyN2ZiZTVjM2Y1ZmM1MmIwOGE5NDkyNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3MtdGhlbi1kcmFnLXRvLXNlbGVjdC10ZXh0LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1w
cmVzcy10aGVuLWRyYWctdG8tc2VsZWN0LXRleHQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNCBA
QAotUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24KLVBBU1M6IENvcnJlY3QgU2VsZWN0aW9uCitQQVNT
OiBIYXMgU2VsZWN0aW9uCitQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZAorCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLXRoZW4tZHJhZy10
by1zZWxlY3QtdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xv
bmctcHJlc3MtdGhlbi1kcmFnLXRvLXNlbGVjdC10ZXh0Lmh0bWwKaW5kZXggOTIyOTA5ZmYwMjg3
OGI2NGMzMTdjOWUzY2JlNzk3YTUzMGFkMTQyNS4uNmU2ZmZiNGY0YTc1YWRhZGQ3NDIzZjhkZWE1
ZmU2ZjdlMGRlNTI0YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2xvbmctcHJlc3MtdGhlbi1kcmFnLXRvLXNlbGVjdC10ZXh0Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3MtdGhlbi1kcmFnLXRvLXNlbGVj
dC10ZXh0Lmh0bWwKQEAgLTMsNiArMyw3IEBACiA8aHRtbD4KIDxoZWFkPgogICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0PgogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwpAQCAtMTUsMjYgKzE2LDMzIEBACiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICB2YXIgb3V0cHV0ID0gJyc7Ci0g
ICAgICAgICAgICB2YXIgZmlyc3RUYXJnZXRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2ZpcnN0U2VsZWN0aW9uJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgICAgICB2
YXIgc2Vjb25kVGFyZ2V0UmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWNvbmRTZWxl
Y3Rpb24nKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgICAgCi0gICAgICAgICAgICB2
YXIgcHJlc3NQb2ludFggPSBmaXJzdFRhcmdldFJlY3QueCArIGZpcnN0VGFyZ2V0UmVjdC53aWR0
aCAvIDI7Ci0gICAgICAgICAgICB2YXIgcHJlc3NQb2ludFkgPSBmaXJzdFRhcmdldFJlY3QueSAr
IGZpcnN0VGFyZ2V0UmVjdC5oZWlnaHQgLyAyOwotICAgICAgICAgICAgdmFyIGRyYWdYID0gc2Vj
b25kVGFyZ2V0UmVjdC54ICsgc2Vjb25kVGFyZ2V0UmVjdC53aWR0aCAvIDI7Ci0gICAgICAgICAg
ICB2YXIgZHJhZ1kgPSBzZWNvbmRUYXJnZXRSZWN0LnkgKyBzZWNvbmRUYXJnZXRSZWN0LmhlaWdo
dCAvIDI7Ci0gICAgICAgIAotICAgICAgICAgICAgYXdhaXQgbG9uZ1ByZXNzQW5kSG9sZEF0UG9p
bnQocHJlc3NQb2ludFgsIHByZXNzUG9pbnRZKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5n
ZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJtYWduYSIpCi0gICAgICAgICAgICAgICAgb3V0
cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7CisgICAgICAgICAgICB2YXIgdGFyZ2V0
UmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKTsKKworICAgICAgICAgICAgdmFyIHByZXNzUG9pbnRYID0gdGFyZ2V0UmVjdC54ICsg
dGFyZ2V0UmVjdC53aWR0aCAvIDI7CisgICAgICAgICAgICB2YXIgcHJlc3NQb2ludFkgPSB0YXJn
ZXRSZWN0LnkgKyB0YXJnZXRSZWN0LmhlaWdodCAvIDI7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIHZhciBmb250SGVpZ2h0ID0gMzA7CisKKyAgICAgICAgICAgIHZhciBzZWxlY3Rpb25DaGFu
Z2VkQ291bnQgPSAwOworICAgICAgICAgICAgdmFyIGxhc3RTZWxlY3Rpb25DaGFuZ2VDb3VudCA9
IDA7CisgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFu
Z2UiLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZENvdW50Kys7Cisg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgYXdhaXQgbG9uZ1ByZXNzQXRQb2ludChwcmVz
c1BvaW50WCwgcHJlc3NQb2ludFkpOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZv
clNlbGVjdGlvblRvQXBwZWFyKCk7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0
aW9uKCkudG9TdHJpbmcoKSAhPSAiIikKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6
IEhhcyBTZWxlY3Rpb24nOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1
dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhIHdvcmQgYXMgYSByZXN1bHQgb2YgYSBsb25n
IHByZXNzLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCku
dG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBz
ZWxlY3QgYSB3b3JkIGFzIGEgcmVzdWx0IG9mIGEgbG9uZyBwcmVzcy4nOwogICAgICAgICAgICAg
b3V0cHV0ICs9ICc8YnI+JzsKIAotICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGF3YWl0IGNvbnRp
bnVlVG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChwcmVzc1BvaW50WCwgcHJlc3NQb2ludFks
IGRyYWdYLCBkcmFnWSk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCku
dG9TdHJpbmcoKSA9PSAiZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9s
b3JlIG1hZ25hIikKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IENvcnJlY3QgU2Vs
ZWN0aW9uJzsKKyAgICAgICAgICAgIGxhc3RTZWxlY3Rpb25DaGFuZ2VDb3VudCA9IHNlbGVjdGlv
bkNoYW5nZWRDb3VudDsKKyAgICAgICAgICAgIHZhciByZXN1bHQgPSBhd2FpdCBjb250aW51ZVRv
dWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQocHJlc3NQb2ludFgsIHByZXNzUG9pbnRZLCBwcmVz
c1BvaW50WCwgcHJlc3NQb2ludFkgKyAoZm9udEhlaWdodCAqIDIpKTsKKyAgICAgICAgICAgIGlm
IChzZWxlY3Rpb25DaGFuZ2VkQ291bnQgPiBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQpCisgICAg
ICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZCA8L2JyPic7CiAg
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQg
dG8gcmVkdWNlIHNlbGVjdGlvbiB0byBhIHNpbmdsZSBjaGFyYWN0ZXIgYnkgZHJhZ2dpbmcgZG93
bi4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3Ry
aW5nKCk7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBTZWxlY3Rpb24gZGlkIG5v
dCBjaGFuZ2UgPGJyPicgKyBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CiAgICAgICAgICAgICBvdXRw
dXQgKz0gJzxicj4nOwogICAgICAgICAgICAgb3V0cHV0ICs9IHJlc3VsdDsKICAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5pbm5lckhUTUwgPSBvdXRwdXQ7CkBA
IC00NSwyMCArNTMsMjYgQEAKICAgICA8L3NjcmlwdD4KICAgICA8c3R5bGU+CiAgICAgICAgICN0
YXJnZXQgewotICAgICAgICAgICAgaGVpZ2h0OiA0MDBweDsKKyAgICAgICAgICAgIGhlaWdodDog
NTBweDsKICAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKICAgICAgICAgICAgIGJhY2tncm91bmQt
Y29sb3I6IHNpbHZlcjsKICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAg
ICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgIH0KKyAgICAgICAgI2VkaXRhYmxlIHsK
KyAgICAgICAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICAgICAgICB3aWR0aDogMzAwcHg7Cisg
ICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7CisgICAgICAgICAgICBmb250LWZh
bWlseTogbW9ub3NwYWNlOworICAgICAgICAgICAgZm9udC1zaXplOiAzMHB4OworICAgICAgICB9
CiAgICAgPC9zdHlsZT4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlh
bC1zY2FsZT0xIj4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2
aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgogPC9oZWFkPgogPGJvZHk+CiAgICAgPGRpdiBp
ZD0idGFyZ2V0Ij4KLSAgICAgICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNl
Y3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQg
dXQgPHNwYW4gaWQ9InNlY29uZFNlbGVjdGlvbiI+bGFib3JlPC9zcGFuPiBldCBkb2xvcmUgPHNw
YW4gaWQ9ImZpcnN0U2VsZWN0aW9uIj5tYWduYTwvc3Bhbj4gYWxpcXVhLiBVdCBlbmltIGFkIG1p
bmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlz
aSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9s
b3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3Jl
IGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci48L3A+Ci0gICAgICAgIAotICAgICAgICBUaGlzIHRl
c3QgcmVxdWlyZXMgVUlTY3JpcHRDb250cm9sbGVyIHRvIHJ1bi4KKyAgICAgICAgPHA+SGVyZSdz
IHRvIHRoZSBjcmF6eSBvbmVzLiBUaGUgbWlzZml0cy4gVGhlIHJlYmVscy4gVGhlIHRyb3VibGVt
YWtlcnMuIFRoZSByb3VuZCBwZWdzIGluIHRoZSBzcXVhcmUgaG9sZXMuPC9wPgorICAgICAgICA8
cD5UaGlzIHRlc3QgcmVxdWlyZXMgVUlTY3JpcHRDb250cm9sbGVyIHRvIHJ1bi48L3A+CiAgICAg
PC9kaXY+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy10aGVuLWRyYWctdXAtdG8tY2hhbmdlLXNlbGVjdGVk
LXRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xv
bmctcHJlc3MtdGhlbi1kcmFnLXVwLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0LWV4cGVjdGVkLnR4
dAppbmRleCBkZTUxYWEzMTU1ZjMyMjU3Yzc4NTY3ODAwY2QxNTNlNDcyNWE2ZjEyLi5jYzdhNDM1
NzE2ZDhjMDVlNmY2ZDU5M2JiMWE1OTFmZTY4OTI2N2Q1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy10aGVuLWRyYWctdXAtdG8tY2hhbmdl
LXNlbGVjdGVkLXRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2lvcy9sb25nLXByZXNzLXRoZW4tZHJhZy11cC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4
dC1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw1IEBACi1QQVNTOiBDb3JyZWN0IFNlbGVjdGlvbgot
UEFTUzogQ29ycmVjdCBTZWxlY3Rpb24KLVBBU1M6IENvcnJlY3QgU2VsZWN0aW9uCi1QQVNTOiBD
b3JyZWN0IFNlbGVjdGlvbgotUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24KLVBBU1M6IENvcnJlY3Qg
U2VsZWN0aW9uCitQQVNTOiBIYXMgU2VsZWN0aW9uCitQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZAor
UEFTUzogU2VsZWN0aW9uIENoYW5nZWQKK1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2VkCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLXRoZW4t
ZHJhZy11cC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3MtdGhlbi1kcmFnLXVwLXRvLWNoYW5nZS1zZWxlY3Rl
ZC10ZXh0Lmh0bWwKaW5kZXggMWYyODlmZjQxY2VmNzRkNmEyMjljZWUyN2MzMDYyOWM5MWUyOWE0
ZS4uMjg3N2M5YjRkMGY2MmFlZDEwNTllYzBmMzRlMTExMjhjMmNhOTE1MCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3MtdGhlbi1kcmFnLXVw
LXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL2xvbmctcHJlc3MtdGhlbi1kcmFnLXVwLXRvLWNoYW5nZS1zZWxlY3RlZC10
ZXh0Lmh0bWwKQEAgLTEsNzQgKzEsNzAgQEAKIDwhRE9DVFlQRSBodG1sPgotCiA8aHRtbD4KIDxo
ZWFkPgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVy
ZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
dWktaGVscGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgogICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAg
ICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgIH0KLSAgICAKKwog
ICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAgICAgewogICAgICAgICAgICAg
aWYgKCF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQogICAgICAgICAgICAgICAgIHJldHVybjsKIAog
ICAgICAgICAgICAgdmFyIG91dHB1dCA9ICcnOwotICAgICAgICAgICAgdmFyIGZpcnN0VGFyZ2V0
UmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaXJzdFNlbGVjdGlvbicpLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpOwotICAgICAgICAgICAgdmFyIHNlY29uZFRhcmdldFJlY3QgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vjb25kU2VsZWN0aW9uJykuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCk7Ci0gICAgICAgICAgICB2YXIgdGhpcmRUYXJnZXRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3RoaXJkU2VsZWN0aW9uJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAg
ICAgIAotICAgICAgICAgICAgdmFyIHByZXNzUG9pbnRYID0gZmlyc3RUYXJnZXRSZWN0LngrZmly
c3RUYXJnZXRSZWN0LndpZHRoIC8gMjsKLSAgICAgICAgICAgIHZhciBwcmVzc1BvaW50WSA9IGZp
cnN0VGFyZ2V0UmVjdC55K2ZpcnN0VGFyZ2V0UmVjdC5oZWlnaHQgLyAyOwotICAgICAgICAgICAg
dmFyIGRyYWdZID0gZmlyc3RUYXJnZXRSZWN0Lnk7Ci0gICAgICAgICAgICB2YXIgZHJhZ1ggPSBm
aXJzdFRhcmdldFJlY3QueDsKLSAgICAgICAgICAgIHZhciBkcmFnWTIgPSBzZWNvbmRUYXJnZXRS
ZWN0Lnk7Ci0gICAgICAgICAgICB2YXIgZHJhZ1kzID0gdGhpcmRUYXJnZXRSZWN0Lnk7Ci0gICAg
ICAgICAgICB2YXIgZHJhZ1k0ID0gZmlyc3RUYXJnZXRSZWN0LnkgKyBmaXJzdFRhcmdldFJlY3Qu
aGVpZ2h0OwotICAgICAgICAKKyAgICAgICAgICAgIHZhciB0YXJnZXRSZWN0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworCisgICAg
ICAgICAgICB2YXIgcHJlc3NQb2ludFggPSB0YXJnZXRSZWN0LnggKyB0YXJnZXRSZWN0LndpZHRo
IC8gMjsKKyAgICAgICAgICAgIHZhciBwcmVzc1BvaW50WSA9IHRhcmdldFJlY3QueSArIHRhcmdl
dFJlY3QuaGVpZ2h0ICogLjY1OworICAgICAgICAgICAgCisgICAgICAgICAgICB2YXIgZm9udEhl
aWdodCA9IDMwOworCisgICAgICAgICAgICB2YXIgc2VsZWN0aW9uQ2hhbmdlZENvdW50ID0gMDsK
KyAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIs
ICgpID0+IHsKKyAgICAgICAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkQ291bnQrKzsKKyAgICAg
ICAgICAgIH0pOworCiAgICAgICAgICAgICBhd2FpdCBsb25nUHJlc3NBdFBvaW50KHByZXNzUG9p
bnRYLCBwcmVzc1BvaW50WSk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9u
KCkudG9TdHJpbmcoKSA9PSAidXQiKQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzog
Q29ycmVjdCBTZWxlY3Rpb24nOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhIHdvcmQgYXMgYSByZXN1bHQgb2YgYSBs
b25nIHByZXNzLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9u
KCkudG9TdHJpbmcoKTsKLSAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7CiAKLSAgICAgICAg
ICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZHJhZ1gsIGRyYWdZLCBkcmFn
WCwgZHJhZ1kyKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0
cmluZygpID09ICJvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQiKQotICAgICAgICAgICAg
ICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOwotICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhZGRp
dGlvbmFsIGxpbmUgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1l
bnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAgICAgIG91dHB1dCArPSAnPGJy
Pic7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2VsZWN0aW9uVG9BcHBlYXIo
KTsKIAotICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChkcmFn
WCwgZHJhZ1kyLCBkcmFnWCwgZHJhZ1kzKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRT
ZWxlY3Rpb24oKS50b1N0cmluZygpID09ICIgYWRpcGlzY2luZyBlbGl0LCBzZWQgZG8gZWl1c21v
ZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCIpCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNT
OiBDb3JyZWN0IFNlbGVjdGlvbic7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0
aW9uKCkudG9TdHJpbmcoKSAhPSAiIikKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6
IEhhcyBTZWxlY3Rpb24nOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1
dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhZGRpdGlvbmFsIGxpbmUgYWZ0ZXIgYSBkcmFn
LiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJp
bmcoKTsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBzZWxlY3Qg
YSB3b3JkIGFzIGEgcmVzdWx0IG9mIGEgbG9uZyBwcmVzcy4nOwogICAgICAgICAgICAgb3V0cHV0
ICs9ICc8YnI+JzsKIAotICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Q
b2ludChkcmFnWCwgZHJhZ1kzLCBkcmFnWCwgZHJhZ1kyKTsKLSAgICAgICAgICAgIGlmIChkb2N1
bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJvIGVpdXNtb2QgdGVtcG9yIGluY2lk
aWR1bnQgdXQiKQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxl
Y3Rpb24nOworICAgICAgICAgICAgbGFzdFNlbGVjdGlvbkNoYW5nZUNvdW50ID0gc2VsZWN0aW9u
Q2hhbmdlZENvdW50OworICAgICAgICAgICAgdmFyIGdyYWJiZXJNaWRwb2ludCA9IFVJSGVscGVy
Lm1pZFBvaW50T2ZSZWN0KGF3YWl0IFVJSGVscGVyLmdldFNlbGVjdGlvblN0YXJ0R3JhYmJlclZp
ZXdSZWN0KCkpOworICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2lu
dChncmFiYmVyTWlkcG9pbnQueCwgZ3JhYmJlck1pZHBvaW50LnkgLCBncmFiYmVyTWlkcG9pbnQu
eCwgZ3JhYmJlck1pZHBvaW50LnkgLSAoZm9udEhlaWdodCAqIDIpKTsKKworICAgICAgICAgICAg
aWYgKHNlbGVjdGlvbkNoYW5nZWRDb3VudCA+IGxhc3RTZWxlY3Rpb25DaGFuZ2VDb3VudCkKKyAg
ICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2VkIDwvYnI+JzsK
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxl
ZCB0byBkZXNlbGVjdCBsaW5lIGFmdGVyIGEgZHJhZy4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyAr
IGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7Ci0gICAgICAgICAgICBvdXRwdXQg
Kz0gJzxicj4nOworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogU2VsZWN0aW9uIGRp
ZCBub3QgY2hhbmdlIDxicj4nICsgc2VsZWN0aW9uQ2hhbmdlZENvdW50OworCisgICAgICAgICAg
ICBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQgPSBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CisgICAg
ICAgICAgICBncmFiYmVyTWlkcG9pbnQgPSBVSUhlbHBlci5taWRQb2ludE9mUmVjdChhd2FpdCBV
SUhlbHBlci5nZXRTZWxlY3Rpb25TdGFydEdyYWJiZXJWaWV3UmVjdCgpKTsKKyAgICAgICAgICAg
IGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZ3JhYmJlck1pZHBvaW50LngsIGdy
YWJiZXJNaWRwb2ludC55ICwgZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55ICsg
KGZvbnRIZWlnaHQgKiAzKSk7CisgICAgICAgICAgICBhd2FpdCBsaWZ0VXBBdFBvaW50KGdyYWJi
ZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSAtIChmb250SGVpZ2h0ICogMykpOwogCi0g
ICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGRyYWdYLCBkcmFn
WTIsIGRyYWdYLCBkcmFnWSk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9u
KCkudG9TdHJpbmcoKSA9PSAidXQiKQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzog
Q29ycmVjdCBTZWxlY3Rpb24nOworICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkNoYW5nZWRDb3Vu
dCA+IGxhc3RTZWxlY3Rpb25DaGFuZ2VDb3VudCkKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0g
J1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2VkIDwvYnI+JzsKICAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBkZXNlbGVjdCBsaW5lIGFmdGVy
IGEgZHJhZy4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50LmdldFNlbGVjdGlvbigp
LnRvU3RyaW5nKCk7Ci0gICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOworICAgICAgICAgICAg
ICAgIG91dHB1dCArPSAnRkFJTDogU2VsZWN0aW9uIGRpZCBub3QgY2hhbmdlIDxicj4nICsgc2Vs
ZWN0aW9uQ2hhbmdlZENvdW50OworICAgICAgICAgICAgCisgICAgICAgICAgICBsYXN0U2VsZWN0
aW9uQ2hhbmdlQ291bnQgPSBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CisgICAgICAgICAgICBncmFi
YmVyTWlkcG9pbnQgPSBVSUhlbHBlci5taWRQb2ludE9mUmVjdChhd2FpdCBVSUhlbHBlci5nZXRT
ZWxlY3Rpb25TdGFydEdyYWJiZXJWaWV3UmVjdCgpKTsKKyAgICAgICAgICAgIGF3YWl0IHRvdWNo
QW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2lu
dC55ICwgZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55ICsgKGZvbnRIZWlnaHQg
KiAyKSk7CiAKLSAgICAgICAgICAgIHZhciByZXN1bHQgPSBhd2FpdCB0b3VjaEFuZERyYWdGcm9t
UG9pbnRUb1BvaW50KGRyYWdYLCBkcmFnWSwgZHJhZ1gsIGRyYWdZNCk7Ci0gICAgICAgICAgICBp
ZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAidXQiKQotICAgICAgICAg
ICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOworICAgICAgICAgICAg
aWYgKHNlbGVjdGlvbkNoYW5nZWRDb3VudCA+IGxhc3RTZWxlY3Rpb25DaGFuZ2VDb3VudCkKKyAg
ICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2VkIDwvYnI+JzsK
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxl
ZCB0byByZWR1Y2Ugc2VsZWN0aW9uIHRvIGEgc2luZ2xlIGNoYXJhY3RlciBieSBkcmFnZ2luZyBk
b3duLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9T
dHJpbmcoKTsKLSAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7Ci0gICAgICAgICAgICBvdXRw
dXQgKz0gcmVzdWx0OworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogU2VsZWN0aW9u
IGNoYW5nZWQgPGJyPicgKyBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CisKICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5pbm5lckhUTUwgPSBvdXRwdXQ7CiAgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfQpAQCAtNzcsMjAgKzcz
LDI3IEBACiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPgogICAgICAgICAjdGFyZ2V0IHsKLSAg
ICAgICAgICAgIGhlaWdodDogNDAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDUwcHg7CiAgICAg
ICAgICAgICB3aWR0aDogMzAwcHg7CiAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2
ZXI7CiAgICAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgICAgZm9u
dC1zaXplOiAxOHB4OwogICAgICAgICB9CisgICAgICAgICNlZGl0YWJsZSB7CisgICAgICAgICAg
ICBoZWlnaHQ6IDMwMHB4OworICAgICAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOworICAgICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9z
cGFjZTsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDsKKyAgICAgICAgfQogICAgIDwvc3R5
bGU+Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MSI+
CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwg
aW5pdGlhbC1zY2FsZT0xIj4KIDwvaGVhZD4KIDxib2R5PgogICAgIDxkaXYgaWQ9InRhcmdldCI+
Ci0gICAgICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1cjxzcGFu
IGlkPSJ0aGlyZFNlbGVjdGlvbiI+PC9zcGFuPiBhZGlwaXNjaW5nIGVsaXQsIHNlZCBkPHNwYW4g
aWQ9InNlY29uZFNlbGVjdGlvbiI+PC9zcGFuPm8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCA8
c3BhbiBpZD0iZmlyc3RTZWxlY3Rpb24iPnV0PC9zcGFuPiBsYWJvcmUgZXQgZG9sb3JlIG1hZ25h
IGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRp
b24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVh
dC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZl
bGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuPC9wPgotICAg
ICAgICAKLSAgICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2NyaXB0Q29udHJvbGxlciB0byBy
dW4uCisgICAgICAgIDxwPkhlcmUncyB0byB0aGUgY3Jhenkgb25lcy4gVGhlIG1pc2ZpdHMuIFRo
ZSByZWJlbHMuIFRoZSB0cm91YmxlIG1ha2Vycy4gVGhlIHJvdW5kIHBlZ3MgaW4gdGhlIHNxdWFy
ZSBob2xlcy48L3A+CisgICAgICAgIDxwPlRoaXMgdGVzdCByZXF1aXJlcyBVSVNjcmlwdENvbnRy
b2xsZXIgdG8gcnVuLjwvcD4KICAgICA8L2Rpdj4KIDwvYm9keT4KIDwvaHRtbD4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RvdWNoLWV2ZW50LXJhZGl1
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdG91Y2gt
ZXZlbnQtcmFkaXVzLWV4cGVjdGVkLnR4dAppbmRleCAwZDI0NjY5Y2YyMTQ5NThiODNiMmExNjhh
N2NkNTVmMDJkNTYxNTA3Li41ZjBjMzc1YzRhNjZlYmRkN2UxOGU3MmE1ZWI5YjVjZjRkZjUyNzI0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdG91Y2gtZXZl
bnQtcmFkaXVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9pb3MvdG91Y2gtZXZlbnQtcmFkaXVzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKLVBB
U1M6IHJhZGl1c1ggaXMgNTYuOAotUEFTUzogcmFkaXVzWSBpcyA1Ni44CitQQVNTOiByYWRpdXNY
IGlzIGNvcnJlY3QuCitQQVNTOiByYWRpdXNZIGlzIGNvcnJlY3QuCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90b3VjaC1ldmVudC1yYWRpdXMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90b3VjaC1ldmVudC1yYWRpdXMuaHRt
bAppbmRleCA2NTY1N2Y4Mjk4MjI5ZGRiZDJlOWUyNzNkZWU0NTlmYTAyZjBmNGQ4Li44OTgxOGE2
ZTIxZTU4ZjgzM2U0NDhhYmFjY2RiYWExMzMyMGIwNzZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdG91Y2gtZXZlbnQtcmFkaXVzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RvdWNoLWV2ZW50LXJhZGl1cy5odG1sCkBA
IC02MywxNiArNjMsMTYgQEAKICAgICAgICAgICAgIHZhciBmb3JjZXMgPSBbXTsKICAgICAgICAg
ICAgIAogICAgICAgICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBm
dW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgICAgIHZhciBleHBlY3RlZCA9IE1hdGgucm91
bmQoMC4xMCAqIDU2OCAqIDEwKSAvIDEwOworICAgICAgICAgICAgICAgIHZhciBleHBlY3RlZCA9
IE1hdGgucm91bmQoMC4xMCAqIHdpbmRvdy5zY3JlZW4uaGVpZ2h0ICogMTApIC8gMTA7CiAgICAg
ICAgICAgICAgICAgdmFyIHJhZGl1c1ggPSBNYXRoLnJvdW5kKGV2ZW50LnRvdWNoZXNbMF0ucmFk
aXVzWCAqIDEwKSAvIDEwOwogICAgICAgICAgICAgICAgIGlmIChyYWRpdXNYID09IGV4cGVjdGVk
KQotICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IHJhZGl1c1ggaXMgJyArIGV4
cGVjdGVkICsgJzxicj4nOworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IHJh
ZGl1c1ggaXMgY29ycmVjdC48YnI+JzsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogcmFkaXVzWCBzaG91bGQgYmUgJyArIGV4cGVjdGVk
ICsgJywgd2FzICcgKyByYWRpdXNYICsgJzxicj4nOwogCiAgICAgICAgICAgICAgICAgdmFyIHJh
ZGl1c1kgPSBNYXRoLnJvdW5kKGV2ZW50LnRvdWNoZXNbMF0ucmFkaXVzWSAqIDEwKSAvIDEwOwog
ICAgICAgICAgICAgICAgIGlmIChyYWRpdXNZID09IGV4cGVjdGVkKQotICAgICAgICAgICAgICAg
ICAgICBvdXRwdXQgKz0gJ1BBU1M6IHJhZGl1c1kgaXMgJyArIGV4cGVjdGVkICsgJzxicj4nOwor
ICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IHJhZGl1c1kgaXMgY29ycmVjdC48
YnI+JzsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIG91dHB1dCAr
PSAnRkFJTDogcmFkaXVzWSBzaG91bGQgYmUgJyArIGV4cGVjdGVkICsgJywgd2FzICcgKyByYWRp
dXNZICsgJzxicj4nOwogICAgICAgICAgICAgfSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448881</attachid>
            <date>2022-01-11 14:46:36 -0800</date>
            <delta_ts>2022-01-11 15:18:12 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-235057-20220111144635.patch</filename>
            <type>text/plain</type>
            <size>51121</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NzMxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGZlN2EwNTFmMjMwNDc5NGVkMTZk
YWJlMjE1MGMxODA2ZDMwMjFhYi4uYjM0YTE3MDRkMzgxMmViMzNhMDQwYjc3OWYwN2QxNTE0NDQy
OTFhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAxLTEwICBNZWdhbiBHYXJkbmVyICA8
bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV3cml0ZSB0b3VjaCBhbmQgZHJh
ZyB0ZXN0cyB0byBiZSBtb3JlIHJvYnVzdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNTA1NworICAgICAgICByZGFyOi8vODYwMzU0MjAKKworICAg
ICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgUmV3cml0ZSB0aGUgdG91
Y2gtYW5kLWRyYWcgdGVzdHMgdG8gY2hlY2sgZm9yIHNlbGVjdGlvbiBjaGFuZ2VzLCBub3Qgc3Bl
Y2lmaWMgdGV4dCBzZWxlY3Rpb25zLgorICAgICAgICBTcGVjaWZpYyBzZWxlY3Rpb25zIGFuZCBz
dWJqZWN0IHRvIHNtYWxsIGNoYW5nZXMgaW4gZm9udCBhbmQgbGF5b3V0LCBhbmQgYWxsIHRoYXQg
aXMgYWN0dWFsbHkgaW1wb3J0YW50IGlzIHRoYXQKKyAgICAgICAgdGhlcmUgaGF2ZSBiZWVuIHNl
bGVjdGlvbiBjaGFuZ2VzIGJhc2VkIG9mZiBvZiBkcmFnZ2VkIHRvdWNoZXMuCisgICAgICAgIFRo
ZSB0b3VjaC1ldmVudC1yYWRpdXMgdGVzdCBoYXMgYmVlbiB1cGRhdGVkIHRvIHVzZSB0aGUgc2Ny
ZWVuIHNpemUgZGlyZWN0bHksIHNpbmNlIHRoZSByYWRpdXMgaXMgc2NhbGVkIGJ5IHRoZSBzY3Jl
ZW4gc2l6ZQorICAgICAgICBpbnRlcm5hbGx5LiBUaGUgb3V0cHV0IGhhcyBiZWVuIGNoYW5nZWQg
dG8gbm90IG5lZWQgdG8gYmUgdXBkYXRlZCB3aGVuIHRoZSB0ZXN0IHBob25lIGNoYW5nZXMuCisK
KyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1vbi1lZGl0YWJsZS1j
b250ZW50LWZvci1zZWxlY3Rpb24tdGhlbi1kcmFnLWRvd24tdG8tY2hhbmdlLXNlbGVjdGVkLXRl
eHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUt
dGFwLW9uLWVkaXRhYmxlLWNvbnRlbnQtZm9yLXNlbGVjdGlvbi10aGVuLWRyYWctZG93bi10by1j
aGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lv
cy9kb3VibGUtdGFwLW9uLWVkaXRhYmxlLWNvbnRlbnQtZm9yLXNlbGVjdGlvbi10aGVuLWRyYWct
dXAtdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLW9uLWVkaXRhYmxlLWNvbnRlbnQtZm9yLXNlbGVj
dGlvbi10aGVuLWRyYWctdXAtdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQuaHRtbDoKKyAgICAgICAg
KiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRo
ZW4tZHJhZy11cC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sOgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLXRoZW4tZHJhZy1kb3duLXRvLWNoYW5nZS1zZWxl
Y3RlZC10ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3Mv
bG9uZy1wcmVzcy10aGVuLWRyYWctZG93bi10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sOgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLXRoZW4tZHJhZy10by1z
ZWxlY3QtdGV4dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9z
L2xvbmctcHJlc3MtdGhlbi1kcmFnLXRvLXNlbGVjdC10ZXh0Lmh0bWw6CisgICAgICAgICogZmFz
dC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3MtdGhlbi1kcmFnLXVwLXRvLWNoYW5nZS1zZWxl
Y3RlZC10ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3Mv
bG9uZy1wcmVzcy10aGVuLWRyYWctdXAtdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdG91Y2gtZXZlbnQtcmFkaXVzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdG91Y2gtZXZlbnQtcmFkaXVz
Lmh0bWw6CisKIDIwMjItMDEtMDYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxl
LmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyODEzODkpOiBUZXh0IHdyYXBzIHVubmVjZXNz
YXJpbHkgd2l0aGluIGludHJpbnNpY2FsbHktc2l6ZWQgZWxlbWVudHMgd2hlbiB1c2luZyBjZXJ0
YWluIGZvbnRzIGFuZCB0aGUgaW5uZXIgSFRNTCBvZiB0aGUgZWxlbWVudCBjb250YWlucyBhIG5l
dyBsaW5lIHRoYXQgaXMgbm90IHByZWNlZGVkIGJ5IGEgc3BhY2UKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLW9uLWVkaXRhYmxlLWNvbnRl
bnQtZm9yLXNlbGVjdGlvbi10aGVuLWRyYWctZG93bi10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRh
cC1vbi1lZGl0YWJsZS1jb250ZW50LWZvci1zZWxlY3Rpb24tdGhlbi1kcmFnLWRvd24tdG8tY2hh
bmdlLXNlbGVjdGVkLXRleHQtZXhwZWN0ZWQudHh0CmluZGV4IGU0YjY0MjEwODkxMzI0ZDc2MmFj
Mjk4MTEzOTMyMzM2ZThlMWRjNWMuLmQ2MjAxMzk5YzFiM2Q3NTQ1NWI1ZmZjMjUzNjI5ZDhlMzhm
ZmZkMTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3Vi
bGUtdGFwLW9uLWVkaXRhYmxlLWNvbnRlbnQtZm9yLXNlbGVjdGlvbi10aGVuLWRyYWctZG93bi10
by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtb24tZWRpdGFibGUtY29udGVudC1mb3Itc2Vs
ZWN0aW9uLXRoZW4tZHJhZy1kb3duLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0LWV4cGVjdGVkLnR4
dApAQCAtMSw4ICsxLDYgQEAKIFBBU1M6IEhhcyBDYXJldCBTZWxlY3Rpb24KLVBBU1M6IENvcnJl
Y3QgU2VsZWN0aW9uCi1QQVNTOiBDb3JyZWN0IFNlbGVjdGlvbgotUEFTUzogQ29ycmVjdCBTZWxl
Y3Rpb24KLVBBU1M6IENvcnJlY3QgU2VsZWN0aW9uCi1QQVNTOiBDb3JyZWN0IFNlbGVjdGlvbgot
UEFTUzogQ29ycmVjdCBTZWxlY3Rpb24KK1BBU1M6IEhhcyBTZWxlY3Rpb24KK1BBU1M6IFNlbGVj
dGlvbiBDaGFuZ2VkCitQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZAorUEFTUzogU2VsZWN0aW9uIENo
YW5nZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2Rv
dWJsZS10YXAtb24tZWRpdGFibGUtY29udGVudC1mb3Itc2VsZWN0aW9uLXRoZW4tZHJhZy1kb3du
LXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9pb3MvZG91YmxlLXRhcC1vbi1lZGl0YWJsZS1jb250ZW50LWZvci1zZWxlY3Rpb24tdGhl
bi1kcmFnLWRvd24tdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQuaHRtbAppbmRleCBiMmFlMDk5Yzg5
M2VlMTNlYTkwZmE2ODU0ZTYwNjU5ZGI0MWE5YmUwLi4xMDVjM2UwYzJhNGM3YmI3YzYwMGM5Y2Rk
Y2RiODYyYjk4OTgzMDAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9pb3MvZG91YmxlLXRhcC1vbi1lZGl0YWJsZS1jb250ZW50LWZvci1zZWxlY3Rpb24tdGhlbi1k
cmFnLWRvd24tdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1vbi1lZGl0YWJsZS1jb250ZW50LWZvci1z
ZWxlY3Rpb24tdGhlbi1kcmFnLWRvd24tdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQuaHRtbApAQCAt
MSw1ICsxLDQgQEAKIDwhRE9DVFlQRSBodG1sPgotCiA8aHRtbD4KIDxoZWFkPgogICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMiPjwvc2NyaXB0
PgpAQCAtOSwyOSArOCwyNiBAQAogICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CiAgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAgICAgfQotICAg
IAorCiAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgICAgICB7CiAgICAgICAg
ICAgICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCiAgICAgICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAKKwogICAgICAgICAgICAgdmFyIG91dHB1dCA9ICcnOwogICAgICAgICAgICAg
dmFyIGVkaXRhYmxlVGFyZ2V0UmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0YWJs
ZScpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICAgICAgdmFyIGZpcnN0VGFyZ2V0
UmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaXJzdFNlbGVjdGlvbicpLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpOwotICAgICAgICAgICAgdmFyIHNlY29uZFRhcmdldFJlY3QgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vjb25kU2VsZWN0aW9uJykuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCk7Ci0gICAgICAgICAgICB2YXIgdGhpcmRUYXJnZXRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3RoaXJkU2VsZWN0aW9uJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAg
ICAgICAgICB2YXIgZWRpdGFibGVUb05vbmVkaXRhYmxlT2Zmc2V0ID0gIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdub25lZGl0YWJsZScpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnkgLSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdGFibGUnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55
OwotICAgICAgICAKKwogICAgICAgICAgICAgdmFyIHRhcFBvaW50WCA9IGVkaXRhYmxlVGFyZ2V0
UmVjdC54ICsgZWRpdGFibGVUYXJnZXRSZWN0LndpZHRoIC8gMjsKICAgICAgICAgICAgIHZhciB0
YXBQb2ludFkgPSBlZGl0YWJsZVRhcmdldFJlY3QueSArIGVkaXRhYmxlVGFyZ2V0UmVjdC5oZWln
aHQgLyAyOwotICAgICAgICAgICAgdmFyIGRvdWJsZVRhcFBvaW50WCA9IGZpcnN0VGFyZ2V0UmVj
dC54ICsgZmlyc3RUYXJnZXRSZWN0LndpZHRoIC8gMjsKLSAgICAgICAgICAgIHZhciBkb3VibGVU
YXBQb2ludFkgPSBmaXJzdFRhcmdldFJlY3QueSArIGZpcnN0VGFyZ2V0UmVjdC5oZWlnaHQgLyAy
IC0gZWRpdGFibGVUb05vbmVkaXRhYmxlT2Zmc2V0OwotICAgICAgICAgICAgdmFyIGRyYWdZID0g
Zmlyc3RUYXJnZXRSZWN0LnkgKyBmaXJzdFRhcmdldFJlY3QuaGVpZ2h0IC0gZWRpdGFibGVUb05v
bmVkaXRhYmxlT2Zmc2V0OwotICAgICAgICAgICAgdmFyIGRyYWdYID0gZmlyc3RUYXJnZXRSZWN0
LnggKyBmaXJzdFRhcmdldFJlY3Qud2lkdGg7Ci0gICAgICAgICAgICB2YXIgZHJhZ1kyID0gc2Vj
b25kVGFyZ2V0UmVjdC55ICsgc2Vjb25kVGFyZ2V0UmVjdC5oZWlnaHQgLSBlZGl0YWJsZVRvTm9u
ZWRpdGFibGVPZmZzZXQ7Ci0gICAgICAgICAgICB2YXIgZHJhZ1kzID0gdGhpcmRUYXJnZXRSZWN0
LnkgKyB0aGlyZFRhcmdldFJlY3QuaGVpZ2h0IC0gZWRpdGFibGVUb05vbmVkaXRhYmxlT2Zmc2V0
OwotICAgICAgICAgICAgdmFyIGRyYWdZNCA9IGZpcnN0VGFyZ2V0UmVjdC55IC0gZmlyc3RUYXJn
ZXRSZWN0LmhlaWdodCAtIGVkaXRhYmxlVG9Ob25lZGl0YWJsZU9mZnNldDsKLSAgICAgICAgCisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIHZhciBmb250SGVpZ2h0ID0gMzA7CisKKyAgICAgICAg
ICAgIHZhciBzZWxlY3Rpb25DaGFuZ2VkQ291bnQgPSAwOworICAgICAgICAgICAgdmFyIGxhc3RT
ZWxlY3Rpb25DaGFuZ2VDb3VudCA9IDA7CisgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExp
c3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgc2VsZWN0
aW9uQ2hhbmdlZENvdW50Kys7CisgICAgICAgICAgICB9KTsKKwogICAgICAgICAgICAgYXdhaXQg
VUlIZWxwZXIudGFwQXQodGFwUG9pbnRYLCB0YXBQb2ludFkpOwogICAgICAgICAgICAgaWYgKGRv
Y3VtZW50LmdldFNlbGVjdGlvbigpLnR5cGUgPT0gIkNhcmV0IikKICAgICAgICAgICAgICAgICBv
dXRwdXQgKz0gJ1BBU1M6IEhhcyBDYXJldCBTZWxlY3Rpb24nOwpAQCAtNDEsOTUgKzM3LDc0IEBA
CiAKICAgICAgICAgICAgIGF3YWl0IGRpZFNob3dLZXlib2FyZCgpOwogCi0gICAgICAgICAgICBh
d2FpdCBVSUhlbHBlci5kb3VibGVUYXBBdChkb3VibGVUYXBQb2ludFgsIGRvdWJsZVRhcFBvaW50
WSk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9
PSAic2VkIikKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IENvcnJlY3QgU2VsZWN0
aW9uJzsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmRvdWJsZVRhcEF0KHRhcFBvaW50WCwg
dGFwUG9pbnRZKTsKKyAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0
cmluZygpICE9ICIiKQorICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogSGFzIFNlbGVj
dGlvbic7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlM
OiBmYWlsZWQgdG8gc2VsZWN0IGEgd29yZCBhcyBhIHJlc3VsdCBvZiBhIGxvbmcgcHJlc3MuIElu
Y29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygp
OworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhIHdv
cmQgYXMgYSByZXN1bHQgb2YgYSBkb3VibGUgdGFwLic7CiAgICAgICAgICAgICBvdXRwdXQgKz0g
Jzxicj4nOwogCiAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yRG91YmxlVGFwRGVs
YXkoKTsKIAotICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChk
cmFnWCwgZHJhZ1ksIGRyYWdYLCBkcmFnWTIpOwotICAgICAgICAgICAgaWYgKGRvY3VtZW50Lmdl
dFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgPT0gInNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlk
dW4iKQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24n
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFp
bGVkIHRvIHNlbGVjdCBhZGRpdGlvbmFsIGxpbmUgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2Vs
ZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAg
ICAgIG91dHB1dCArPSAnPGJyPic7CisgICAgICAgICAgICB2YXIgZ3JhYmJlck1pZHBvaW50ID0g
VUlIZWxwZXIubWlkUG9pbnRPZlJlY3QoYXdhaXQgVUlIZWxwZXIuZ2V0U2VsZWN0aW9uRW5kR3Jh
YmJlclZpZXdSZWN0KCkpOwogCi0gICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9p
bnRUb1BvaW50KGRyYWdYLCBkcmFnWTIsIGRyYWdYLCBkcmFnWTMpOwotICAgICAgICAgICAgaWYg
KGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgPT0gInNlZCBkbyBlaXVzbW9kIHRl
bXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWEiKQotICAgICAgICAgICAgICAg
IG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOwotICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhZGRpdGlv
bmFsIGxpbmUgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQu
Z2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7
CisgICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGdyYWJiZXJN
aWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSwgZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJN
aWRwb2ludC55ICsgKGZvbnRIZWlnaHQgKiAyKSk7CiAKLSAgICAgICAgICAgIGF3YWl0IHRvdWNo
QW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZHJhZ1gsIGRyYWdZMywgZHJhZ1gsIGRyYWdZMik7Ci0g
ICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAic2Vk
IGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1biIpCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9
ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7CisgICAgICAgICAgICBpZiAoc2VsZWN0aW9uQ2hh
bmdlZENvdW50ID4gbGFzdFNlbGVjdGlvbkNoYW5nZUNvdW50KQorICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnUEFTUzogU2VsZWN0aW9uIENoYW5nZWQgPC9icj4nOwogICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIGRlc2VsZWN0IGxp
bmUgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2Vs
ZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7CisgICAg
ICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBTZWxlY3Rpb24gZGlkIG5vdCBjaGFuZ2UgPGJy
PicgKyBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CisKKyAgICAgICAgICAgIGxhc3RTZWxlY3Rpb25D
aGFuZ2VDb3VudCA9IHNlbGVjdGlvbkNoYW5nZWRDb3VudDsKKyAgICAgICAgICAgIGdyYWJiZXJN
aWRwb2ludCA9IFVJSGVscGVyLm1pZFBvaW50T2ZSZWN0KGF3YWl0IFVJSGVscGVyLmdldFNlbGVj
dGlvbkVuZEdyYWJiZXJWaWV3UmVjdCgpKTsKKyAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJh
Z0Zyb21Qb2ludFRvUG9pbnQoZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55LCBn
cmFiYmVyTWlkcG9pbnQueCwgZ3JhYmJlck1pZHBvaW50LnkgLSAoZm9udEhlaWdodCkpOwogCi0g
ICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGRyYWdYLCBkcmFn
WTIsIGRyYWdYLCBkcmFnWSk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9u
KCkudG9TdHJpbmcoKSA9PSAic2VkIikKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6
IENvcnJlY3QgU2VsZWN0aW9uJzsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb25DaGFuZ2VkQ291
bnQgPiBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQpCisgICAgICAgICAgICAgICAgb3V0cHV0ICs9
ICdQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZCA8L2JyPic7CiAgICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gZGVzZWxlY3QgbGluZSBhZnRl
ciBhIGRyYWcuIEluY29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1bWVudC5nZXRTZWxlY3Rpb24o
KS50b1N0cmluZygpOwotICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKKyAgICAgICAgICAg
ICAgICBvdXRwdXQgKz0gJ0ZBSUw6IFNlbGVjdGlvbiBkaWQgbm90IGNoYW5nZSA8YnI+JyArIHNl
bGVjdGlvbkNoYW5nZWRDb3VudDsKKworICAgICAgICAgICAgbGFzdFNlbGVjdGlvbkNoYW5nZUNv
dW50ID0gc2VsZWN0aW9uQ2hhbmdlZENvdW50OworICAgICAgICAgICAgZ3JhYmJlck1pZHBvaW50
ID0gVUlIZWxwZXIubWlkUG9pbnRPZlJlY3QoYXdhaXQgVUlIZWxwZXIuZ2V0U2VsZWN0aW9uRW5k
R3JhYmJlclZpZXdSZWN0KCkpOworICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBv
aW50VG9Qb2ludChncmFiYmVyTWlkcG9pbnQueCwgZ3JhYmJlck1pZHBvaW50LnksIGdyYWJiZXJN
aWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSAtIChmb250SGVpZ2h0ICogNCkpOwogCi0gICAg
ICAgICAgICB2YXIgcmVzdWx0ID0gYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChk
cmFnWCwgZHJhZ1ksIGRyYWdYLCBkcmFnWTQpOwotICAgICAgICAgICAgaWYgKGRvY3VtZW50Lmdl
dFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgPT0gInNlZCIpCi0gICAgICAgICAgICAgICAgb3V0cHV0
ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7CisgICAgICAgICAgICBpZiAoc2VsZWN0aW9u
Q2hhbmdlZENvdW50ID4gbGFzdFNlbGVjdGlvbkNoYW5nZUNvdW50KQorICAgICAgICAgICAgICAg
IG91dHB1dCArPSAnUEFTUzogU2VsZWN0aW9uIENoYW5nZWQgPC9icj4nOwogICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHJlZHVjZSBz
ZWxlY3Rpb24gdG8gYSBzaW5nbGUgY2hhcmFjdGVyIGJ5IGRyYWdnaW5nIHVwLiBJbmNvcnJlY3Qg
U2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAg
ICAgICAgIG91dHB1dCArPSAnPGJyPic7Ci0gICAgICAgICAgICBvdXRwdXQgKz0gcmVzdWx0Owor
ICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogU2VsZWN0aW9uIGRpZCBub3QgY2hhbmdl
IDxicj4nICsgc2VsZWN0aW9uQ2hhbmdlZENvdW50OwogCi0gICAgICAgICAgICB2YXIgbm9uZWRp
dGFibGVFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vbmVkaXRhYmxlJyk7Ci0g
ICAgICAgICAgICBub25lZGl0YWJsZUVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChub25l
ZGl0YWJsZUVsZW1lbnQpOwogICAgICAgICAgICAgdmFyIGVkaXRhYmxlRWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0YWJsZScpOwogICAgICAgICAgICAgZWRpdGFibGVFbGVt
ZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWRpdGFibGVFbGVtZW50KTsKICAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5pbm5lckhUTUwgPSBvdXRwdXQ7CiAg
ICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfQotICAgIAorCiAg
ICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOwog
ICAgIDwvc2NyaXB0PgogICAgIDxzdHlsZT4KLSAgICAgICAgI25vbmVkaXRhYmxlIHsKLSAgICAg
ICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICN0YXJnZXQgeworICAgICAgICAgICAgaGVp
Z2h0OiA1MHB4OwogICAgICAgICAgICAgd2lkdGg6IDMwMHB4OwogICAgICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogc2lsdmVyOwogICAgICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsK
ICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgfQogICAgICAgICAjZWRpdGFi
bGUgewotICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMzAw
cHg7CiAgICAgICAgICAgICB3aWR0aDogMzAwcHg7CiAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBzaWx2ZXI7CiAgICAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwotICAgICAg
ICAgICAgZm9udC1zaXplOiAxOHB4OwotICAgICAgICB9Ci0gICAgICAgICN0YXJnZXQgewotICAg
ICAgICAgICAgaGVpZ2h0OiA1MHB4OwotICAgICAgICAgICAgd2lkdGg6IDMwMHB4OwotICAgICAg
ICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOwotICAgICAgICAgICAgZm9udC1mYW1pbHk6
IG1vbm9zcGFjZTsKLSAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKKyAgICAgICAgICAgIGZv
bnQtc2l6ZTogMzBweDsKICAgICAgICAgfQogICAgIDwvc3R5bGU+CiAgICAgPG1ldGEgbmFtZT0i
dmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4K
IDwvaGVhZD4KIDxib2R5PgotICAgIDxkaXYgaWQ9ImVkaXRhYmxlIiBjb250ZW50ZWRpdGFibGU+
Ci0gICAgICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlw
aXNjaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBl
dCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0
cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNv
bW1vZG8gY29uc2VxdWF0LjwvcD4KLSAgICA8L2Rpdj4gCi0gICAgPGRpdiBpZD0ibm9uZWRpdGFi
bGUiPgotICAgICAgICA8cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIg
YWRpcGlzY2luZyBlbGl0LCA8c3BhbiBpZD0iZmlyc3RTZWxlY3Rpb24iPnNlZDwvc3Bhbj4gZG8g
ZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVuPHNwYW4gaWQ9InNlY29uZFNlbGVjdGlvbiI+PC9zcGFu
PnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWc8c3BhbiBpZD0idGhpcmRTZWxlY3Rpb24iPjwvc3Bh
bj5uYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNp
dGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25z
ZXF1YXQuPC9wPgotICAgIDwvZGl2PgogICAgIDxkaXYgaWQ9InRhcmdldCI+CiAgICAgICAgIFRo
aXMgdGVzdCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8gcnVuLgogICAgIDwvZGl2Pgor
ICAgIDxkaXYgaWQ9ImVkaXRhYmxlIiBjb250ZW50ZWRpdGFibGU+CisgICAgICAgIDxwPkhlcmUn
cyB0byB0aGUgY3Jhenkgb25lcy4gVGhlIG1pc2ZpdHMuIFRoZSByZWJlbHMuIFRoZSB0cm91Ymxl
bWFrZXJzLiBUaGUgcm91bmQgcGVncyBpbiB0aGUgc3F1YXJlIGhvbGVzLjwvcD4KKyAgICA8L2Rp
dj4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2lvcy9kb3VibGUtdGFwLW9uLWVkaXRhYmxlLWNvbnRlbnQtZm9yLXNlbGVjdGlvbi10
aGVuLWRyYWctdXAtdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtb24tZWRpdGFibGUtY29udGVu
dC1mb3Itc2VsZWN0aW9uLXRoZW4tZHJhZy11cC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC1leHBl
Y3RlZC50eHQKaW5kZXggZTRiNjQyMTA4OTEzMjRkNzYyYWMyOTgxMTM5MzIzMzZlOGUxZGM1Yy4u
ZDYyMDEzOTljMWIzZDc1NDU1YjVmZmMyNTM2MjlkOGUzOGZmZmQxMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAtb24tZWRpdGFibGUtY29u
dGVudC1mb3Itc2VsZWN0aW9uLXRoZW4tZHJhZy11cC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJs
ZS10YXAtb24tZWRpdGFibGUtY29udGVudC1mb3Itc2VsZWN0aW9uLXRoZW4tZHJhZy11cC10by1j
aGFuZ2Utc2VsZWN0ZWQtdGV4dC1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw2IEBACiBQQVNTOiBI
YXMgQ2FyZXQgU2VsZWN0aW9uCi1QQVNTOiBDb3JyZWN0IFNlbGVjdGlvbgotUEFTUzogQ29ycmVj
dCBTZWxlY3Rpb24KLVBBU1M6IENvcnJlY3QgU2VsZWN0aW9uCi1QQVNTOiBDb3JyZWN0IFNlbGVj
dGlvbgotUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24KLVBBU1M6IENvcnJlY3QgU2VsZWN0aW9uCitQ
QVNTOiBIYXMgU2VsZWN0aW9uCitQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZAorUEFTUzogU2VsZWN0
aW9uIENoYW5nZWQKK1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2VkCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLW9uLWVkaXRhYmxlLWNvbnRl
bnQtZm9yLXNlbGVjdGlvbi10aGVuLWRyYWctdXAtdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9kb3VibGUtdGFwLW9uLWVkaXRh
YmxlLWNvbnRlbnQtZm9yLXNlbGVjdGlvbi10aGVuLWRyYWctdXAtdG8tY2hhbmdlLXNlbGVjdGVk
LXRleHQuaHRtbAppbmRleCA1NDE4NjhhNzA4OGE4MjcwMzJmMjdjODI2MjI3YWZjY2U0N2I1MWNh
Li5kOTc4YjcyNjQ3OWJjODM5ZWQxNTJlYzY0NTE4YTdiNjFjMmExMzg2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvZG91YmxlLXRhcC1vbi1lZGl0YWJsZS1j
b250ZW50LWZvci1zZWxlY3Rpb24tdGhlbi1kcmFnLXVwLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2RvdWJsZS10YXAt
b24tZWRpdGFibGUtY29udGVudC1mb3Itc2VsZWN0aW9uLXRoZW4tZHJhZy11cC10by1jaGFuZ2Ut
c2VsZWN0ZWQtdGV4dC5odG1sCkBAIC0xLDUgKzEsNCBAQAogPCFET0NUWVBFIGh0bWw+Ci0KIDxo
dG1sPgogPGhlYWQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9iYXNp
Yy1nZXN0dXJlcy5qcyI+PC9zY3JpcHQ+CkBAIC05LDcgKzgsNyBAQAogICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKICAgICAgICAgfQotICAgIAorCiAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3Qo
KQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCkBA
IC0xNywyMSArMTYsMTggQEAKIAogICAgICAgICAgICAgdmFyIG91dHB1dCA9ICcnOwogICAgICAg
ICAgICAgdmFyIGVkaXRhYmxlVGFyZ2V0UmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdl
ZGl0YWJsZScpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICAgICAgdmFyIGZpcnN0
VGFyZ2V0UmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaXJzdFNlbGVjdGlvbicpLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICAgICAgdmFyIHNlY29uZFRhcmdldFJlY3Qg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vjb25kU2VsZWN0aW9uJykuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk7Ci0gICAgICAgICAgICB2YXIgdGhpcmRUYXJnZXRSZWN0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RoaXJkU2VsZWN0aW9uJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7
Ci0gICAgICAgICAgICB2YXIgZWRpdGFibGVUb05vbmVkaXRhYmxlT2Zmc2V0ID0gIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdub25lZGl0YWJsZScpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnkg
LSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdGFibGUnKS5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKS55OwotICAgICAgICAKKwogICAgICAgICAgICAgdmFyIHRhcFBvaW50WCA9IGVkaXRhYmxl
VGFyZ2V0UmVjdC54ICsgZWRpdGFibGVUYXJnZXRSZWN0LndpZHRoIC8gMjsKICAgICAgICAgICAg
IHZhciB0YXBQb2ludFkgPSBlZGl0YWJsZVRhcmdldFJlY3QueSArIGVkaXRhYmxlVGFyZ2V0UmVj
dC5oZWlnaHQgLyAyOwotICAgICAgICAgICAgdmFyIGRvdWJsZVRhcFBvaW50WCA9IGZpcnN0VGFy
Z2V0UmVjdC54ICsgZmlyc3RUYXJnZXRSZWN0LndpZHRoIC8gMjsKLSAgICAgICAgICAgIHZhciBk
b3VibGVUYXBQb2ludFkgPSBmaXJzdFRhcmdldFJlY3QueSArIGZpcnN0VGFyZ2V0UmVjdC5oZWln
aHQgLyAyIC0gZWRpdGFibGVUb05vbmVkaXRhYmxlT2Zmc2V0OwotICAgICAgICAgICAgdmFyIGRy
YWdZID0gZmlyc3RUYXJnZXRSZWN0LnkgLSBlZGl0YWJsZVRvTm9uZWRpdGFibGVPZmZzZXQ7Ci0g
ICAgICAgICAgICB2YXIgZHJhZ1ggPSBmaXJzdFRhcmdldFJlY3QueDsKLSAgICAgICAgICAgIHZh
ciBkcmFnWTIgPSBzZWNvbmRUYXJnZXRSZWN0LnkgLSBlZGl0YWJsZVRvTm9uZWRpdGFibGVPZmZz
ZXQ7Ci0gICAgICAgICAgICB2YXIgZHJhZ1kzID0gdGhpcmRUYXJnZXRSZWN0LnkgLSBlZGl0YWJs
ZVRvTm9uZWRpdGFibGVPZmZzZXQ7Ci0gICAgICAgICAgICB2YXIgZHJhZ1k0ID0gZmlyc3RUYXJn
ZXRSZWN0LnkgKyBmaXJzdFRhcmdldFJlY3QuaGVpZ2h0IC0gZWRpdGFibGVUb05vbmVkaXRhYmxl
T2Zmc2V0OwotICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdmFyIGZvbnRIZWln
aHQgPSAzMDsKKworICAgICAgICAgICAgdmFyIHNlbGVjdGlvbkNoYW5nZWRDb3VudCA9IDA7Cisg
ICAgICAgICAgICB2YXIgbGFzdFNlbGVjdGlvbkNoYW5nZUNvdW50ID0gMDsKKyAgICAgICAgICAg
IGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsICgpID0+IHsKKyAg
ICAgICAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkQ291bnQrKzsKKyAgICAgICAgICAgIH0pOwor
CiAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci50YXBBdCh0YXBQb2ludFgsIHRhcFBvaW50WSk7
CiAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudHlwZSA9PSAiQ2FyZXQi
KQogICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogSGFzIENhcmV0IFNlbGVjdGlvbic7
CkBAIC00MSw1MyArMzcsNDMgQEAKIAogICAgICAgICAgICAgYXdhaXQgZGlkU2hvd0tleWJvYXJk
KCk7CiAKLSAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmRvdWJsZVRhcEF0KGRvdWJsZVRhcFBv
aW50WCwgZG91YmxlVGFwUG9pbnRZKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxl
Y3Rpb24oKS50b1N0cmluZygpID09ICJhdCIpCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQ
QVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5kb3Vi
bGVUYXBBdCh0YXBQb2ludFgsIHRhcFBvaW50WSk7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnQu
Z2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSAhPSAiIikKKyAgICAgICAgICAgICAgICBvdXRwdXQg
Kz0gJ1BBU1M6IEhhcyBTZWxlY3Rpb24nOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhIHdvcmQgYXMgYSByZXN1bHQg
b2YgYSBsb25nIHByZXNzLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2Vs
ZWN0aW9uKCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZh
aWxlZCB0byBzZWxlY3QgYSB3b3JkIGFzIGEgcmVzdWx0IG9mIGEgZG91YmxlIHRhcC4nOwogICAg
ICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKIAogICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIu
d2FpdEZvckRvdWJsZVRhcERlbGF5KCk7CiAKLSAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJh
Z0Zyb21Qb2ludFRvUG9pbnQoZHJhZ1gsIGRyYWdZLCBkcmFnWCwgZHJhZ1kyKTsKLSAgICAgICAg
ICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJvIGVpdXNtb2Qg
dGVtcG9yIGluY2lkaWR1bnQgYXQiKQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzog
Q29ycmVjdCBTZWxlY3Rpb24nOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhZGRpdGlvbmFsIGxpbmUgYWZ0ZXIgYSBk
cmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9T
dHJpbmcoKTsKLSAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7CisgICAgICAgICAgICBsYXN0
U2VsZWN0aW9uQ2hhbmdlQ291bnQgPSBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CisgICAgICAgICAg
ICB2YXIgZ3JhYmJlck1pZHBvaW50ID0gVUlIZWxwZXIubWlkUG9pbnRPZlJlY3QoYXdhaXQgVUlI
ZWxwZXIuZ2V0U2VsZWN0aW9uU3RhcnRHcmFiYmVyVmlld1JlY3QoKSk7CisgICAgICAgICAgICBh
d2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGdyYWJiZXJNaWRwb2ludC54LCBncmFi
YmVyTWlkcG9pbnQueSAsIGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSAtIChm
b250SGVpZ2h0ICogMikpOwogCi0gICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9p
bnRUb1BvaW50KGRyYWdYLCBkcmFnWTIsIGRyYWdYLCBkcmFnWTMpOwotICAgICAgICAgICAgaWYg
KGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgPT0gIiBhZGlwaXNjaW5nIGVsaXQs
IHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IGF0IikKLSAgICAgICAgICAgICAgICBv
dXRwdXQgKz0gJ1BBU1M6IENvcnJlY3QgU2VsZWN0aW9uJzsKKyAgICAgICAgICAgIGlmIChzZWxl
Y3Rpb25DaGFuZ2VkQ291bnQgPiBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQpCisgICAgICAgICAg
ICAgICAgb3V0cHV0ICs9ICdQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZCA8L2JyPic7CiAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gc2Vs
ZWN0IGFkZGl0aW9uYWwgbGluZSBhZnRlciBhIGRyYWcuIEluY29ycmVjdCBTZWxlY3Rpb246ICcg
KyBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOwotICAgICAgICAgICAgb3V0cHV0
ICs9ICc8YnI+JzsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IFNlbGVjdGlvbiBk
aWQgbm90IGNoYW5nZSA8YnI+JyArIHNlbGVjdGlvbkNoYW5nZWRDb3VudDsKIAotICAgICAgICAg
ICAgYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChkcmFnWCwgZHJhZ1kzLCBkcmFn
WCwgZHJhZ1kyKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0
cmluZygpID09ICJvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgYXQiKQotICAgICAgICAgICAg
ICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOwotICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIGRlc2VsZWN0IGxp
bmUgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2Vs
ZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7CisgICAg
ICAgICAgICBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQgPSBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7
CisgICAgICAgICAgICBncmFiYmVyTWlkcG9pbnQgPSBVSUhlbHBlci5taWRQb2ludE9mUmVjdChh
d2FpdCBVSUhlbHBlci5nZXRTZWxlY3Rpb25TdGFydEdyYWJiZXJWaWV3UmVjdCgpKTsKKyAgICAg
ICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZ3JhYmJlck1pZHBvaW50
LngsIGdyYWJiZXJNaWRwb2ludC55ICwgZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2lu
dC55ICsgKGZvbnRIZWlnaHQgKiAzKSk7CisgICAgICAgICAgICBhd2FpdCBsaWZ0VXBBdFBvaW50
KGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSAtIChmb250SGVpZ2h0ICogMykp
OwogCi0gICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGRyYWdY
LCBkcmFnWTIsIGRyYWdYLCBkcmFnWSk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2Vs
ZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAiYXQiKQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAn
UEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOworICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkNoYW5n
ZWRDb3VudCA+IGxhc3RTZWxlY3Rpb25DaGFuZ2VDb3VudCkKKyAgICAgICAgICAgICAgICBvdXRw
dXQgKz0gJ1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2VkIDwvYnI+JzsKICAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBkZXNlbGVjdCBsaW5l
IGFmdGVyIGEgZHJhZy4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50LmdldFNlbGVj
dGlvbigpLnRvU3RyaW5nKCk7Ci0gICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOworICAgICAg
ICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogU2VsZWN0aW9uIGRpZCBub3QgY2hhbmdlIDxicj4n
ICsgc2VsZWN0aW9uQ2hhbmdlZENvdW50OworICAgICAgICAgICAgCisgICAgICAgICAgICBsYXN0
U2VsZWN0aW9uQ2hhbmdlQ291bnQgPSBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CisgICAgICAgICAg
ICBncmFiYmVyTWlkcG9pbnQgPSBVSUhlbHBlci5taWRQb2ludE9mUmVjdChhd2FpdCBVSUhlbHBl
ci5nZXRTZWxlY3Rpb25TdGFydEdyYWJiZXJWaWV3UmVjdCgpKTsKKyAgICAgICAgICAgIGF3YWl0
IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJN
aWRwb2ludC55ICwgZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55ICsgKGZvbnRI
ZWlnaHQgKiAyKSk7CiAKLSAgICAgICAgICAgIHZhciByZXN1bHQgPSBhd2FpdCB0b3VjaEFuZERy
YWdGcm9tUG9pbnRUb1BvaW50KGRyYWdYLCBkcmFnWSwgZHJhZ1gsIGRyYWdZNCk7Ci0gICAgICAg
ICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAiYXQiKQotICAg
ICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOworICAgICAg
ICAgICAgaWYgKHNlbGVjdGlvbkNoYW5nZWRDb3VudCA+IGxhc3RTZWxlY3Rpb25DaGFuZ2VDb3Vu
dCkKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2VkIDwv
YnI+JzsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6
IGZhaWxlZCB0byByZWR1Y2Ugc2VsZWN0aW9uIHRvIGEgc2luZ2xlIGNoYXJhY3RlciBieSBkcmFn
Z2luZyBkb3duLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9u
KCkudG9TdHJpbmcoKTsKLSAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7Ci0gICAgICAgICAg
ICBvdXRwdXQgKz0gcmVzdWx0OworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogU2Vs
ZWN0aW9uIGNoYW5nZWQgPGJyPicgKyBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CiAKLSAgICAgICAg
ICAgIHZhciBub25lZGl0YWJsZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm9u
ZWRpdGFibGUnKTsKLSAgICAgICAgICAgIG5vbmVkaXRhYmxlRWxlbWVudC5wYXJlbnROb2RlLnJl
bW92ZUNoaWxkKG5vbmVkaXRhYmxlRWxlbWVudCk7CiAgICAgICAgICAgICB2YXIgZWRpdGFibGVF
bGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRhYmxlJyk7CiAgICAgICAgICAg
ICBlZGl0YWJsZUVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlZGl0YWJsZUVsZW1lbnQp
OwogICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLmlubmVySFRN
TCA9IG91dHB1dDsKQEAgLTk3LDM5ICs4MywzMCBAQAogICAgICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbG9hZCcsIHJ1blRlc3QsIGZhbHNlKTsKICAgICA8L3NjcmlwdD4KICAgICA8c3R5
bGU+Ci0gICAgICAgICNub25lZGl0YWJsZSB7Ci0gICAgICAgICAgICBoZWlnaHQ6IDIwMHB4Owor
ICAgICAgICAjdGFyZ2V0IHsKKyAgICAgICAgICAgIGhlaWdodDogNTBweDsKICAgICAgICAgICAg
IHdpZHRoOiAzMDBweDsKICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKICAg
ICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgICAgICBmb250LXNpemU6
IDE4cHg7CiAgICAgICAgIH0KICAgICAgICAgI2VkaXRhYmxlIHsKLSAgICAgICAgICAgIGhlaWdo
dDogMjAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDMwMHB4OwogICAgICAgICAgICAgd2lkdGg6
IDMwMHB4OwogICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOwogICAgICAgICAg
ICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKLSAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsK
LSAgICAgICAgfQotICAgICAgICAjdGFyZ2V0IHsKLSAgICAgICAgICAgIGhlaWdodDogNTBweDsK
LSAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKLSAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6
IHNpbHZlcjsKLSAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Ci0gICAgICAgICAg
ICBmb250LXNpemU6IDE4cHg7CisgICAgICAgICAgICBmb250LXNpemU6IDMwcHg7CiAgICAgICAg
IH0KICAgICA8L3N0eWxlPgotICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0
aWFsLXNjYWxlPTEiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1k
ZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CiA8L2hlYWQ+CiA8Ym9keT4KLSAgICA8ZGl2
IGlkPSJlZGl0YWJsZSIgY29udGVudGVkaXRhYmxlPgotICAgICAgICA8cD5Mb3JlbSBpcHN1bSBk
b2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LCBzZWQgZG8gZWl1c21v
ZCB0ZW1wb3IgaW5jaWRpZHVudCBhdCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQg
ZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBs
YWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC48L3A+Ci0gICAg
PC9kaXY+IAotICAgIDxkaXYgaWQ9Im5vbmVkaXRhYmxlIj4KLSAgICAgICAgPHA+TG9yZW0gaXBz
dW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyPHNwYW4gaWQ9InRoaXJkU2VsZWN0aW9uIj48
L3NwYW4+IGFkaXBpc2NpbmcgZWxpdCwgc2VkIGQ8c3BhbiBpZD0ic2Vjb25kU2VsZWN0aW9uIj48
L3NwYW4+byBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IDxzcGFuIGlkPSJmaXJzdFNlbGVjdGlv
biI+YXQ8L3NwYW4+IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1p
bmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlz
aSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LjwvcD4KLSAgICA8L2Rpdj4KICAg
ICA8ZGl2IGlkPSJ0YXJnZXQiPgogICAgICAgICBUaGlzIHRlc3QgcmVxdWlyZXMgVUlTY3JpcHRD
b250cm9sbGVyIHRvIHJ1bi4KICAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJlZGl0YWJsZSIgY29u
dGVudGVkaXRhYmxlPgorICAgICAgICA8cD5IZXJlJ3MgdG8gdGhlIGNyYXp5IG9uZXMuIFRoZSBt
aXNmaXRzLiBUaGUgcmViZWxzLiBUaGUgdHJvdWJsZSBtYWtlcnMuIFRoZSByb3VuZCBwZWdzIGlu
IHRoZSBzcXVhcmUgaG9sZXMuPC9wPgorICAgIDwvZGl2PgogPC9ib2R5PgogPC9odG1sPgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1v
bi1lZGl0YWJsZS1jb250ZW50LXRoZW4tZHJhZy11cC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3Mtb24tZWRp
dGFibGUtY29udGVudC10aGVuLWRyYWctdXAtdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQuaHRtbApp
bmRleCA3MjMzMzVkNzRmNzQyNTdiMDcxMWY4ZDBmZWE3NjExYmFiOGMxNjZmLi43YmRmZGY0OWEz
MTE1ZTc1MWNhOGUzNjlmZDhjMGY4NWVhOGE4MzdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy1vbi1lZGl0YWJsZS1jb250ZW50LXRoZW4t
ZHJhZy11cC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLW9uLWVkaXRhYmxlLWNvbnRlbnQtdGhlbi1k
cmFnLXVwLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWwKQEAgLTM3LDI3ICszNywzMCBAQAog
ICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhIHdvcmQg
YXMgYSByZXN1bHQgb2YgYSBsb25nIHByZXNzLic7CiAgICAgICAgICAgICBvdXRwdXQgKz0gJzxi
cj4nOwogCisgICAgICAgICAgICBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQgPSBzZWxlY3Rpb25D
aGFuZ2VkQ291bnQ7CiAgICAgICAgICAgICB2YXIgZ3JhYmJlck1pZHBvaW50ID0gVUlIZWxwZXIu
bWlkUG9pbnRPZlJlY3QoYXdhaXQgVUlIZWxwZXIuZ2V0U2VsZWN0aW9uU3RhcnRHcmFiYmVyVmll
d1JlY3QoKSk7CiAgICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50
KGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSAsIGdyYWJiZXJNaWRwb2ludC54
LCBncmFiYmVyTWlkcG9pbnQueSAtIChmb250SGVpZ2h0ICogMikpOwogCi0gICAgICAgICAgICBp
ZiAoc2VsZWN0aW9uQ2hhbmdlZENvdW50ID09IDMpCisgICAgICAgICAgICBpZiAoc2VsZWN0aW9u
Q2hhbmdlZENvdW50ID4gbGFzdFNlbGVjdGlvbkNoYW5nZUNvdW50KQogICAgICAgICAgICAgICAg
IG91dHB1dCArPSAnUEFTUzogU2VsZWN0aW9uIENoYW5nZWQgPC9icj4nOwogICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogU2VsZWN0aW9uIGRpZCBub3Qg
Y2hhbmdlIDxicj4nICsgc2VsZWN0aW9uQ2hhbmdlZENvdW50OwogCisgICAgICAgICAgICBsYXN0
U2VsZWN0aW9uQ2hhbmdlQ291bnQgPSBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CiAgICAgICAgICAg
ICBncmFiYmVyTWlkcG9pbnQgPSBVSUhlbHBlci5taWRQb2ludE9mUmVjdChhd2FpdCBVSUhlbHBl
ci5nZXRTZWxlY3Rpb25TdGFydEdyYWJiZXJWaWV3UmVjdCgpKTsKICAgICAgICAgICAgIGF3YWl0
IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJN
aWRwb2ludC55ICwgZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55ICsgKGZvbnRI
ZWlnaHQgKiAzKSk7CiAgICAgICAgICAgICBhd2FpdCBsaWZ0VXBBdFBvaW50KGdyYWJiZXJNaWRw
b2ludC54LCBncmFiYmVyTWlkcG9pbnQueSAtIChmb250SGVpZ2h0ICogMykpOwogCi0gICAgICAg
ICAgICBpZiAoc2VsZWN0aW9uQ2hhbmdlZENvdW50ID09IDUpCisgICAgICAgICAgICBpZiAoc2Vs
ZWN0aW9uQ2hhbmdlZENvdW50ID4gbGFzdFNlbGVjdGlvbkNoYW5nZUNvdW50KQogICAgICAgICAg
ICAgICAgIG91dHB1dCArPSAnUEFTUzogU2VsZWN0aW9uIENoYW5nZWQgPC9icj4nOwogICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogU2VsZWN0aW9uIGRp
ZCBub3QgY2hhbmdlIDxicj4nICsgc2VsZWN0aW9uQ2hhbmdlZENvdW50OwogICAgICAgICAgICAg
CisgICAgICAgICAgICBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQgPSBzZWxlY3Rpb25DaGFuZ2Vk
Q291bnQ7CiAgICAgICAgICAgICBncmFiYmVyTWlkcG9pbnQgPSBVSUhlbHBlci5taWRQb2ludE9m
UmVjdChhd2FpdCBVSUhlbHBlci5nZXRTZWxlY3Rpb25TdGFydEdyYWJiZXJWaWV3UmVjdCgpKTsK
ICAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZ3JhYmJlck1p
ZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55ICwgZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJN
aWRwb2ludC55ICsgKGZvbnRIZWlnaHQgKiAyKSk7CiAKLSAgICAgICAgICAgIGlmIChzZWxlY3Rp
b25DaGFuZ2VkQ291bnQgPT0gNykKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb25DaGFuZ2VkQ291
bnQgPiBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQpCiAgICAgICAgICAgICAgICAgb3V0cHV0ICs9
ICdQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZCA8L2JyPic7CiAgICAgICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBTZWxlY3Rpb24gY2hhbmdlZCA8YnI+JyArIHNl
bGVjdGlvbkNoYW5nZWRDb3VudDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2lvcy9sb25nLXByZXNzLXRoZW4tZHJhZy1kb3duLXRvLWNoYW5nZS1zZWxlY3RlZC10
ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25n
LXByZXNzLXRoZW4tZHJhZy1kb3duLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0LWV4cGVjdGVkLnR4
dAppbmRleCBkZTUxYWEzMTU1ZjMyMjU3Yzc4NTY3ODAwY2QxNTNlNDcyNWE2ZjEyLi5jYzdhNDM1
NzE2ZDhjMDVlNmY2ZDU5M2JiMWE1OTFmZTY4OTI2N2Q1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy10aGVuLWRyYWctZG93bi10by1jaGFu
Z2Utc2VsZWN0ZWQtdGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL2xvbmctcHJlc3MtdGhlbi1kcmFnLWRvd24tdG8tY2hhbmdlLXNlbGVjdGVk
LXRleHQtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNSBAQAotUEFTUzogQ29ycmVjdCBTZWxlY3Rp
b24KLVBBU1M6IENvcnJlY3QgU2VsZWN0aW9uCi1QQVNTOiBDb3JyZWN0IFNlbGVjdGlvbgotUEFT
UzogQ29ycmVjdCBTZWxlY3Rpb24KLVBBU1M6IENvcnJlY3QgU2VsZWN0aW9uCi1QQVNTOiBDb3Jy
ZWN0IFNlbGVjdGlvbgorUEFTUzogSGFzIFNlbGVjdGlvbgorUEFTUzogU2VsZWN0aW9uIENoYW5n
ZWQKK1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2VkCitQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy10
aGVuLWRyYWctZG93bi10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3MtdGhlbi1kcmFnLWRvd24tdG8tY2hhbmdl
LXNlbGVjdGVkLXRleHQuaHRtbAppbmRleCBkYzEyNGYwOTcyZmFmNGZhMTFmN2QwZDJjMzBkMmJj
N2NjMjJkN2NjLi42NzczZWU3Y2ZhMzQyYzU3MThjZmE5YjE2MTI2YzZjOGZmY2JhNjIwIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy10aGVu
LWRyYWctZG93bi10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLXRoZW4tZHJhZy1kb3duLXRvLWNoYW5n
ZS1zZWxlY3RlZC10ZXh0Lmh0bWwKQEAgLTEsOTYgKzEsOTggQEAKIDwhRE9DVFlQRSBodG1sPgot
CiA8aHRtbD4KIDxoZWFkPgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
YmFzaWMtZ2VzdHVyZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgogICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAg
IH0KLSAgICAKKwogICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAgICAgewog
ICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQogICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgCisKICAgICAgICAgICAgIHZhciBvdXRwdXQgPSAnJzsKLSAgICAg
ICAgICAgIHZhciBmaXJzdFRhcmdldFJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmly
c3RTZWxlY3Rpb24nKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgICAgICAgIHZhciBz
ZWNvbmRUYXJnZXRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlY29uZFNlbGVjdGlv
bicpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICAgICAgdmFyIHRoaXJkVGFyZ2V0
UmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aGlyZFNlbGVjdGlvbicpLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpOwotICAgICAgICAKLSAgICAgICAgICAgIHZhciBwcmVzc1BvaW50WCA9
IGZpcnN0VGFyZ2V0UmVjdC54ICsgZmlyc3RUYXJnZXRSZWN0LndpZHRoIC8gMjsKLSAgICAgICAg
ICAgIHZhciBwcmVzc1BvaW50WSA9IGZpcnN0VGFyZ2V0UmVjdC55ICsgZmlyc3RUYXJnZXRSZWN0
LmhlaWdodCAvIDI7Ci0gICAgICAgICAgICB2YXIgZHJhZ1kgPSBmaXJzdFRhcmdldFJlY3QueSAr
IGZpcnN0VGFyZ2V0UmVjdC5oZWlnaHQ7Ci0gICAgICAgICAgICB2YXIgZHJhZ1ggPSBmaXJzdFRh
cmdldFJlY3QueCArIGZpcnN0VGFyZ2V0UmVjdC53aWR0aDsKLSAgICAgICAgICAgIHZhciBkcmFn
WTIgPSBzZWNvbmRUYXJnZXRSZWN0LnkgKyBzZWNvbmRUYXJnZXRSZWN0LmhlaWdodDsKLSAgICAg
ICAgICAgIHZhciBkcmFnWTMgPSB0aGlyZFRhcmdldFJlY3QueSArIHRoaXJkVGFyZ2V0UmVjdC5o
ZWlnaHQ7Ci0gICAgICAgICAgICB2YXIgZHJhZ1k0ID0gZmlyc3RUYXJnZXRSZWN0LnkgLSBmaXJz
dFRhcmdldFJlY3QuaGVpZ2h0OwotICAgICAgICAKLSAgICAgICAgICAgIGF3YWl0IGxvbmdQcmVz
c0F0UG9pbnQocHJlc3NQb2ludFgscHJlc3NQb2ludFkpOwotICAgICAgICAgICAgaWYgKGRvY3Vt
ZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgPT0gInNlZCIpCi0gICAgICAgICAgICAgICAg
b3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7Ci0gICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gc2VsZWN0IGEgd29yZCBh
cyBhIHJlc3VsdCBvZiBhIGxvbmcgcHJlc3MuIEluY29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1
bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOwotICAgICAgICAgICAgb3V0cHV0ICs9ICc8
YnI+JzsKKyAgICAgICAgICAgIHZhciB0YXJnZXRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3RhcmdldCcpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogCi0gICAgICAgICAgICBhd2Fp
dCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGRyYWdYLCBkcmFnWSwgZHJhZ1gsIGRyYWdZ
Mik7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9
PSAic2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1biIpCi0gICAgICAgICAgICAgICAgb3V0
cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7Ci0gICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gc2VsZWN0IGFkZGl0aW9uYWwg
bGluZSBhZnRlciBhIGRyYWcuIEluY29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1bWVudC5nZXRT
ZWxlY3Rpb24oKS50b1N0cmluZygpOwotICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKKyAg
ICAgICAgICAgIHZhciBwcmVzc1BvaW50WCA9IHRhcmdldFJlY3QueCArIHRhcmdldFJlY3Qud2lk
dGggLyAyOworICAgICAgICAgICAgdmFyIHByZXNzUG9pbnRZID0gdGFyZ2V0UmVjdC55ICsgdGFy
Z2V0UmVjdC5oZWlnaHQgLyAyOworICAgICAgICAgICAgCisgICAgICAgICAgICB2YXIgZm9udEhl
aWdodCA9IDMwOworCisgICAgICAgICAgICB2YXIgc2VsZWN0aW9uQ2hhbmdlZENvdW50ID0gMDsK
KyAgICAgICAgICAgIHZhciBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQgPSAwOworICAgICAgICAg
ICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIiwgKCkgPT4gewor
ICAgICAgICAgICAgICAgIHNlbGVjdGlvbkNoYW5nZWRDb3VudCsrOworICAgICAgICAgICAgfSk7
CisKKyAgICAgICAgICAgIGF3YWl0IGxvbmdQcmVzc0F0UG9pbnQocHJlc3NQb2ludFgsIHByZXNz
UG9pbnRZKTsKIAotICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2lu
dChkcmFnWCwgZHJhZ1kyLCBkcmFnWCwgZHJhZ1kzKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVu
dC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5j
aWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hIikKLSAgICAgICAgICAgICAgICBvdXRwdXQg
Kz0gJ1BBU1M6IENvcnJlY3QgU2VsZWN0aW9uJzsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVy
LndhaXRGb3JTZWxlY3Rpb25Ub0FwcGVhcigpOworCisgICAgICAgICAgICBpZiAoZG9jdW1lbnQu
Z2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSAhPSAiIikKKyAgICAgICAgICAgICAgICBvdXRwdXQg
Kz0gJ1BBU1M6IEhhcyBTZWxlY3Rpb24nOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhZGRpdGlvbmFsIGxpbmUgYWZ0
ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9u
KCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0
byBzZWxlY3QgYSB3b3JkIGFzIGEgcmVzdWx0IG9mIGEgbG9uZyBwcmVzcy4nOwogICAgICAgICAg
ICAgb3V0cHV0ICs9ICc8YnI+JzsKIAotICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJv
bVBvaW50VG9Qb2ludChkcmFnWCwgZHJhZ1kzLCBkcmFnWCwgZHJhZ1kyKTsKLSAgICAgICAgICAg
IGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJzZWQgZG8gZWl1c21v
ZCB0ZW1wb3IgaW5jaWRpZHVuIikKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IENv
cnJlY3QgU2VsZWN0aW9uJzsKKyAgICAgICAgICAgIGxhc3RTZWxlY3Rpb25DaGFuZ2VDb3VudCA9
IHNlbGVjdGlvbkNoYW5nZWRDb3VudDsKKyAgICAgICAgICAgIHZhciBncmFiYmVyTWlkcG9pbnQg
PSBVSUhlbHBlci5taWRQb2ludE9mUmVjdChhd2FpdCBVSUhlbHBlci5nZXRTZWxlY3Rpb25FbmRH
cmFiYmVyVmlld1JlY3QoKSk7CisgICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9p
bnRUb1BvaW50KGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSwgZ3JhYmJlck1p
ZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55ICsgKGZvbnRIZWlnaHQgKiAyKSk7CisKKyAgICAg
ICAgICAgIGlmIChzZWxlY3Rpb25DaGFuZ2VkQ291bnQgPiBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291
bnQpCisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBTZWxlY3Rpb24gQ2hhbmdlZCA8
L2JyPic7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlM
OiBmYWlsZWQgdG8gZGVzZWxlY3QgbGluZSBhZnRlciBhIGRyYWcuIEluY29ycmVjdCBTZWxlY3Rp
b246ICcgKyBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOwotICAgICAgICAgICAg
b3V0cHV0ICs9ICc8YnI+JzsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IFNlbGVj
dGlvbiBkaWQgbm90IGNoYW5nZSA8YnI+JyArIHNlbGVjdGlvbkNoYW5nZWRDb3VudDsKKworICAg
ICAgICAgICAgbGFzdFNlbGVjdGlvbkNoYW5nZUNvdW50ID0gc2VsZWN0aW9uQ2hhbmdlZENvdW50
OworICAgICAgICAgICAgZ3JhYmJlck1pZHBvaW50ID0gVUlIZWxwZXIubWlkUG9pbnRPZlJlY3Qo
YXdhaXQgVUlIZWxwZXIuZ2V0U2VsZWN0aW9uRW5kR3JhYmJlclZpZXdSZWN0KCkpOworICAgICAg
ICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChncmFiYmVyTWlkcG9pbnQu
eCwgZ3JhYmJlck1pZHBvaW50LnksIGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQu
eSAtIChmb250SGVpZ2h0KSk7CiAKLSAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Q
b2ludFRvUG9pbnQoZHJhZ1gsIGRyYWdZMiwgZHJhZ1gsIGRyYWdZKTsKLSAgICAgICAgICAgIGlm
IChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJzZWQiKQotICAgICAgICAg
ICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOworICAgICAgICAgICAg
aWYgKHNlbGVjdGlvbkNoYW5nZWRDb3VudCA+IGxhc3RTZWxlY3Rpb25DaGFuZ2VDb3VudCkKKyAg
ICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2VkIDwvYnI+JzsK
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxl
ZCB0byBkZXNlbGVjdCBsaW5lIGFmdGVyIGEgZHJhZy4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyAr
IGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7Ci0gICAgICAgICAgICBvdXRwdXQg
Kz0gJzxicj4nOworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogU2VsZWN0aW9uIGRp
ZCBub3QgY2hhbmdlIDxicj4nICsgc2VsZWN0aW9uQ2hhbmdlZENvdW50OwogCi0gICAgICAgICAg
ICB2YXIgcmVzdWx0ID0gYXdhaXQgdG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChkcmFnWCwg
ZHJhZ1ksIGRyYWdYLCBkcmFnWTQpOwotICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVj
dGlvbigpLnRvU3RyaW5nKCkgPT0gInNlZCIpCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQ
QVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7CisgICAgICAgICAgICBsYXN0U2VsZWN0aW9uQ2hhbmdl
Q291bnQgPSBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CisgICAgICAgICAgICBncmFiYmVyTWlkcG9p
bnQgPSBVSUhlbHBlci5taWRQb2ludE9mUmVjdChhd2FpdCBVSUhlbHBlci5nZXRTZWxlY3Rpb25F
bmRHcmFiYmVyVmlld1JlY3QoKSk7CisgICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9t
UG9pbnRUb1BvaW50KGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSwgZ3JhYmJl
ck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55IC0gKGZvbnRIZWlnaHQgKiA0KSk7CisKKyAg
ICAgICAgICAgIGlmIChzZWxlY3Rpb25DaGFuZ2VkQ291bnQgPiBsYXN0U2VsZWN0aW9uQ2hhbmdl
Q291bnQpCisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBTZWxlY3Rpb24gQ2hhbmdl
ZCA8L2JyPic7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdG
QUlMOiBmYWlsZWQgdG8gcmVkdWNlIHNlbGVjdGlvbiB0byBhIHNpbmdsZSBjaGFyYWN0ZXIgYnkg
ZHJhZ2dpbmcgdXAuIEluY29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1bWVudC5nZXRTZWxlY3Rp
b24oKS50b1N0cmluZygpOwotICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKLSAgICAgICAg
ICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBT
ZWxlY3Rpb24gZGlkIG5vdCBjaGFuZ2UgPGJyPicgKyBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7CisK
ICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5pbm5lckhUTUwg
PSBvdXRwdXQ7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAg
fQotICAgIAorCiAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcnVuVGVz
dCwgZmFsc2UpOwogICAgIDwvc2NyaXB0PgogICAgIDxzdHlsZT4KICAgICAgICAgI3RhcmdldCB7
Ci0gICAgICAgICAgICBoZWlnaHQ6IDQwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiA1MHB4Owog
ICAgICAgICAgICAgd2lkdGg6IDMwMHB4OwogICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
c2lsdmVyOwogICAgICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgICAg
IGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgfQorICAgICAgICAjZWRpdGFibGUgeworICAgICAg
ICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKKyAgICAgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKKyAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBt
b25vc3BhY2U7CisgICAgICAgICAgICBmb250LXNpemU6IDMwcHg7CisgICAgICAgIH0KICAgICA8
L3N0eWxlPgotICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxl
PTEiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lk
dGgsIGluaXRpYWwtc2NhbGU9MSI+CiA8L2hlYWQ+CiA8Ym9keT4KICAgICA8ZGl2IGlkPSJ0YXJn
ZXQiPgotICAgICAgICA8cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIg
YWRpcGlzY2luZyBlbGl0LCA8c3BhbiBpZD0iZmlyc3RTZWxlY3Rpb24iPnNlZDwvc3Bhbj4gZG8g
ZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVuPHNwYW4gaWQ9InNlY29uZFNlbGVjdGlvbiI+PC9zcGFu
PnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWc8c3BhbiBpZD0idGhpcmRTZWxlY3Rpb24iPjwvc3Bh
bj5uYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNp
dGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25z
ZXF1YXQuPC9wPgotICAgICAgICAKLSAgICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2NyaXB0
Q29udHJvbGxlciB0byBydW4uCisgICAgICAgIDxwPkhlcmUncyB0byB0aGUgY3Jhenkgb25lcy4g
VGhlIG1pc2ZpdHMuIFRoZSByZWJlbHMuIFRoZSB0cm91YmxlbWFrZXJzLiBUaGUgcm91bmQgcGVn
cyBpbiB0aGUgc3F1YXJlIGhvbGVzLjwvcD4KKyAgICAgICAgPHA+VGhpcyB0ZXN0IHJlcXVpcmVz
IFVJU2NyaXB0Q29udHJvbGxlciB0byBydW4uPC9wPgogICAgIDwvZGl2PgogPC9ib2R5PgogPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmct
cHJlc3MtdGhlbi1kcmFnLXRvLXNlbGVjdC10ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLXRoZW4tZHJhZy10by1zZWxlY3QtdGV4
dC1leHBlY3RlZC50eHQKaW5kZXggNmQ1MDNkMTMyZGVmMWJjYTQxYzFlMDJjNTE2MGI5M2QxNjJj
NzM1OS4uYTM4NmEyYjFjZTU1MjUyZjYyN2ZiZTVjM2Y1ZmM1MmIwOGE5NDkyNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3MtdGhlbi1kcmFn
LXRvLXNlbGVjdC10ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3MvbG9uZy1wcmVzcy10aGVuLWRyYWctdG8tc2VsZWN0LXRleHQtZXhwZWN0ZWQu
dHh0CkBAIC0xLDMgKzEsNCBAQAotUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24KLVBBU1M6IENvcnJl
Y3QgU2VsZWN0aW9uCitQQVNTOiBIYXMgU2VsZWN0aW9uCitQQVNTOiBTZWxlY3Rpb24gQ2hhbmdl
ZAorCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25n
LXByZXNzLXRoZW4tZHJhZy10by1zZWxlY3QtdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3MtdGhlbi1kcmFnLXRvLXNlbGVjdC10ZXh0Lmh0bWwK
aW5kZXggOTIyOTA5ZmYwMjg3OGI2NGMzMTdjOWUzY2JlNzk3YTUzMGFkMTQyNS4uNmU2ZmZiNGY0
YTc1YWRhZGQ3NDIzZjhkZWE1ZmU2ZjdlMGRlNTI0YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3MtdGhlbi1kcmFnLXRvLXNlbGVjdC10ZXh0
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3Mt
dGhlbi1kcmFnLXRvLXNlbGVjdC10ZXh0Lmh0bWwKQEAgLTMsNiArMyw3IEBACiA8aHRtbD4KIDxo
ZWFkPgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVy
ZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
dWktaGVscGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgogICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwpAQCAt
MTUsMjYgKzE2LDMzIEBACiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICB2
YXIgb3V0cHV0ID0gJyc7Ci0gICAgICAgICAgICB2YXIgZmlyc3RUYXJnZXRSZWN0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpcnN0U2VsZWN0aW9uJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCk7Ci0gICAgICAgICAgICB2YXIgc2Vjb25kVGFyZ2V0UmVjdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdzZWNvbmRTZWxlY3Rpb24nKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAg
ICAgCi0gICAgICAgICAgICB2YXIgcHJlc3NQb2ludFggPSBmaXJzdFRhcmdldFJlY3QueCArIGZp
cnN0VGFyZ2V0UmVjdC53aWR0aCAvIDI7Ci0gICAgICAgICAgICB2YXIgcHJlc3NQb2ludFkgPSBm
aXJzdFRhcmdldFJlY3QueSArIGZpcnN0VGFyZ2V0UmVjdC5oZWlnaHQgLyAyOwotICAgICAgICAg
ICAgdmFyIGRyYWdYID0gc2Vjb25kVGFyZ2V0UmVjdC54ICsgc2Vjb25kVGFyZ2V0UmVjdC53aWR0
aCAvIDI7Ci0gICAgICAgICAgICB2YXIgZHJhZ1kgPSBzZWNvbmRUYXJnZXRSZWN0LnkgKyBzZWNv
bmRUYXJnZXRSZWN0LmhlaWdodCAvIDI7Ci0gICAgICAgIAotICAgICAgICAgICAgYXdhaXQgbG9u
Z1ByZXNzQW5kSG9sZEF0UG9pbnQocHJlc3NQb2ludFgsIHByZXNzUG9pbnRZKTsKLSAgICAgICAg
ICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJtYWduYSIpCi0g
ICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7CisgICAg
ICAgICAgICB2YXIgdGFyZ2V0UmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQn
KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKworICAgICAgICAgICAgdmFyIHByZXNzUG9pbnRY
ID0gdGFyZ2V0UmVjdC54ICsgdGFyZ2V0UmVjdC53aWR0aCAvIDI7CisgICAgICAgICAgICB2YXIg
cHJlc3NQb2ludFkgPSB0YXJnZXRSZWN0LnkgKyB0YXJnZXRSZWN0LmhlaWdodCAvIDI7CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIHZhciBmb250SGVpZ2h0ID0gMzA7CisKKyAgICAgICAgICAg
IHZhciBzZWxlY3Rpb25DaGFuZ2VkQ291bnQgPSAwOworICAgICAgICAgICAgdmFyIGxhc3RTZWxl
Y3Rpb25DaGFuZ2VDb3VudCA9IDA7CisgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3Rl
bmVyKCJzZWxlY3Rpb25jaGFuZ2UiLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgc2VsZWN0aW9u
Q2hhbmdlZENvdW50Kys7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgYXdhaXQgbG9u
Z1ByZXNzQXRQb2ludChwcmVzc1BvaW50WCwgcHJlc3NQb2ludFkpOworICAgICAgICAgICAgYXdh
aXQgVUlIZWxwZXIud2FpdEZvclNlbGVjdGlvblRvQXBwZWFyKCk7CisgICAgICAgICAgICBpZiAo
ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSAhPSAiIikKKyAgICAgICAgICAgICAg
ICBvdXRwdXQgKz0gJ1BBU1M6IEhhcyBTZWxlY3Rpb24nOwogICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhIHdvcmQgYXMg
YSByZXN1bHQgb2YgYSBsb25nIHByZXNzLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1l
bnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0g
J0ZBSUw6IGZhaWxlZCB0byBzZWxlY3QgYSB3b3JkIGFzIGEgcmVzdWx0IG9mIGEgbG9uZyBwcmVz
cy4nOwogICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKIAotICAgICAgICAgICAgdmFyIHJl
c3VsdCA9IGF3YWl0IGNvbnRpbnVlVG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChwcmVzc1Bv
aW50WCwgcHJlc3NQb2ludFksIGRyYWdYLCBkcmFnWSk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1l
bnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAiZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVu
dCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIikKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0g
J1BBU1M6IENvcnJlY3QgU2VsZWN0aW9uJzsKKyAgICAgICAgICAgIGxhc3RTZWxlY3Rpb25DaGFu
Z2VDb3VudCA9IHNlbGVjdGlvbkNoYW5nZWRDb3VudDsKKyAgICAgICAgICAgIHZhciByZXN1bHQg
PSBhd2FpdCBjb250aW51ZVRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQocHJlc3NQb2ludFgs
IHByZXNzUG9pbnRZLCBwcmVzc1BvaW50WCwgcHJlc3NQb2ludFkgKyAoZm9udEhlaWdodCAqIDIp
KTsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb25DaGFuZ2VkQ291bnQgPiBsYXN0U2VsZWN0aW9u
Q2hhbmdlQ291bnQpCisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBTZWxlY3Rpb24g
Q2hhbmdlZCA8L2JyPic7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0
ICs9ICdGQUlMOiBmYWlsZWQgdG8gcmVkdWNlIHNlbGVjdGlvbiB0byBhIHNpbmdsZSBjaGFyYWN0
ZXIgYnkgZHJhZ2dpbmcgZG93bi4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50Lmdl
dFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlM
OiBTZWxlY3Rpb24gZGlkIG5vdCBjaGFuZ2UgPGJyPicgKyBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7
CiAgICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOwogICAgICAgICAgICAgb3V0cHV0ICs9IHJl
c3VsdDsKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5pbm5l
ckhUTUwgPSBvdXRwdXQ7CkBAIC00NSwyMCArNTMsMjYgQEAKICAgICA8L3NjcmlwdD4KICAgICA8
c3R5bGU+CiAgICAgICAgICN0YXJnZXQgewotICAgICAgICAgICAgaGVpZ2h0OiA0MDBweDsKKyAg
ICAgICAgICAgIGhlaWdodDogNTBweDsKICAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKICAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKICAgICAgICAgICAgIGZvbnQtZmFtaWx5
OiBtb25vc3BhY2U7CiAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgIH0KKyAg
ICAgICAgI2VkaXRhYmxlIHsKKyAgICAgICAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICAgICAg
ICB3aWR0aDogMzAwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7Cisg
ICAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOworICAgICAgICAgICAgZm9udC1zaXpl
OiAzMHB4OworICAgICAgICB9CiAgICAgPC9zdHlsZT4KLSAgICA8bWV0YSBuYW1lPSJ2aWV3cG9y
dCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xIj4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg
Y29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgogPC9oZWFkPgog
PGJvZHk+CiAgICAgPGRpdiBpZD0idGFyZ2V0Ij4KLSAgICAgICAgPHA+TG9yZW0gaXBzdW0gZG9s
b3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2Qg
dGVtcG9yIGluY2lkaWR1bnQgdXQgPHNwYW4gaWQ9InNlY29uZFNlbGVjdGlvbiI+bGFib3JlPC9z
cGFuPiBldCBkb2xvcmUgPHNwYW4gaWQ9ImZpcnN0U2VsZWN0aW9uIj5tYWduYTwvc3Bhbj4gYWxp
cXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1
bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBE
dWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQg
ZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci48L3A+Ci0gICAgICAg
IAotICAgICAgICBUaGlzIHRlc3QgcmVxdWlyZXMgVUlTY3JpcHRDb250cm9sbGVyIHRvIHJ1bi4K
KyAgICAgICAgPHA+SGVyZSdzIHRvIHRoZSBjcmF6eSBvbmVzLiBUaGUgbWlzZml0cy4gVGhlIHJl
YmVscy4gVGhlIHRyb3VibGVtYWtlcnMuIFRoZSByb3VuZCBwZWdzIGluIHRoZSBzcXVhcmUgaG9s
ZXMuPC9wPgorICAgICAgICA8cD5UaGlzIHRlc3QgcmVxdWlyZXMgVUlTY3JpcHRDb250cm9sbGVy
IHRvIHJ1bi48L3A+CiAgICAgPC9kaXY+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy10aGVuLWRyYWctdXAt
dG8tY2hhbmdlLXNlbGVjdGVkLXRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3MtdGhlbi1kcmFnLXVwLXRvLWNoYW5nZS1zZWxlY3Rl
ZC10ZXh0LWV4cGVjdGVkLnR4dAppbmRleCBkZTUxYWEzMTU1ZjMyMjU3Yzc4NTY3ODAwY2QxNTNl
NDcyNWE2ZjEyLi5jYzdhNDM1NzE2ZDhjMDVlNmY2ZDU5M2JiMWE1OTFmZTY4OTI2N2Q1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy10aGVu
LWRyYWctdXAtdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLXRoZW4tZHJhZy11cC10by1j
aGFuZ2Utc2VsZWN0ZWQtdGV4dC1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw1IEBACi1QQVNTOiBD
b3JyZWN0IFNlbGVjdGlvbgotUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24KLVBBU1M6IENvcnJlY3Qg
U2VsZWN0aW9uCi1QQVNTOiBDb3JyZWN0IFNlbGVjdGlvbgotUEFTUzogQ29ycmVjdCBTZWxlY3Rp
b24KLVBBU1M6IENvcnJlY3QgU2VsZWN0aW9uCitQQVNTOiBIYXMgU2VsZWN0aW9uCitQQVNTOiBT
ZWxlY3Rpb24gQ2hhbmdlZAorUEFTUzogU2VsZWN0aW9uIENoYW5nZWQKK1BBU1M6IFNlbGVjdGlv
biBDaGFuZ2VkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lv
cy9sb25nLXByZXNzLXRoZW4tZHJhZy11cC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3MtdGhlbi1kcmFnLXVw
LXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWwKaW5kZXggMWYyODlmZjQxY2VmNzRkNmEyMjlj
ZWUyN2MzMDYyOWM5MWUyOWE0ZS4uMjg3N2M5YjRkMGY2MmFlZDEwNTllYzBmMzRlMTExMjhjMmNh
OTE1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmct
cHJlc3MtdGhlbi1kcmFnLXVwLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3MtdGhlbi1kcmFnLXVwLXRv
LWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWwKQEAgLTEsNzQgKzEsNzAgQEAKIDwhRE9DVFlQRSBo
dG1sPgotCiA8aHRtbD4KIDxoZWFkPgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0Pgog
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAg
ICAgICAgIH0KLSAgICAKKwogICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAg
ICAgewogICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQogICAgICAgICAg
ICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgdmFyIG91dHB1dCA9ICcnOwotICAgICAgICAg
ICAgdmFyIGZpcnN0VGFyZ2V0UmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaXJzdFNl
bGVjdGlvbicpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICAgICAgdmFyIHNlY29u
ZFRhcmdldFJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vjb25kU2VsZWN0aW9uJyku
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgICAgICB2YXIgdGhpcmRUYXJnZXRSZWN0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RoaXJkU2VsZWN0aW9uJykuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk7Ci0gICAgICAgIAotICAgICAgICAgICAgdmFyIHByZXNzUG9pbnRYID0gZmly
c3RUYXJnZXRSZWN0LngrZmlyc3RUYXJnZXRSZWN0LndpZHRoIC8gMjsKLSAgICAgICAgICAgIHZh
ciBwcmVzc1BvaW50WSA9IGZpcnN0VGFyZ2V0UmVjdC55K2ZpcnN0VGFyZ2V0UmVjdC5oZWlnaHQg
LyAyOwotICAgICAgICAgICAgdmFyIGRyYWdZID0gZmlyc3RUYXJnZXRSZWN0Lnk7Ci0gICAgICAg
ICAgICB2YXIgZHJhZ1ggPSBmaXJzdFRhcmdldFJlY3QueDsKLSAgICAgICAgICAgIHZhciBkcmFn
WTIgPSBzZWNvbmRUYXJnZXRSZWN0Lnk7Ci0gICAgICAgICAgICB2YXIgZHJhZ1kzID0gdGhpcmRU
YXJnZXRSZWN0Lnk7Ci0gICAgICAgICAgICB2YXIgZHJhZ1k0ID0gZmlyc3RUYXJnZXRSZWN0Lnkg
KyBmaXJzdFRhcmdldFJlY3QuaGVpZ2h0OwotICAgICAgICAKKyAgICAgICAgICAgIHZhciB0YXJn
ZXRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpOworCisgICAgICAgICAgICB2YXIgcHJlc3NQb2ludFggPSB0YXJnZXRSZWN0Lngg
KyB0YXJnZXRSZWN0LndpZHRoIC8gMjsKKyAgICAgICAgICAgIHZhciBwcmVzc1BvaW50WSA9IHRh
cmdldFJlY3QueSArIHRhcmdldFJlY3QuaGVpZ2h0ICogLjY1OworICAgICAgICAgICAgCisgICAg
ICAgICAgICB2YXIgZm9udEhlaWdodCA9IDMwOworCisgICAgICAgICAgICB2YXIgc2VsZWN0aW9u
Q2hhbmdlZENvdW50ID0gMDsKKyAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIo
InNlbGVjdGlvbmNoYW5nZSIsICgpID0+IHsKKyAgICAgICAgICAgICAgICBzZWxlY3Rpb25DaGFu
Z2VkQ291bnQrKzsKKyAgICAgICAgICAgIH0pOworCiAgICAgICAgICAgICBhd2FpdCBsb25nUHJl
c3NBdFBvaW50KHByZXNzUG9pbnRYLCBwcmVzc1BvaW50WSk7Ci0gICAgICAgICAgICBpZiAoZG9j
dW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAidXQiKQotICAgICAgICAgICAgICAg
IG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOwotICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhIHdvcmQg
YXMgYSByZXN1bHQgb2YgYSBsb25nIHByZXNzLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9j
dW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAgICAgIG91dHB1dCArPSAn
PGJyPic7CiAKLSAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQo
ZHJhZ1gsIGRyYWdZLCBkcmFnWCwgZHJhZ1kyKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudC5n
ZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQg
dXQiKQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24n
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFp
bGVkIHRvIHNlbGVjdCBhZGRpdGlvbmFsIGxpbmUgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2Vs
ZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAg
ICAgIG91dHB1dCArPSAnPGJyPic7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9y
U2VsZWN0aW9uVG9BcHBlYXIoKTsKIAotICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmREcmFnRnJv
bVBvaW50VG9Qb2ludChkcmFnWCwgZHJhZ1kyLCBkcmFnWCwgZHJhZ1kzKTsKLSAgICAgICAgICAg
IGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICIgYWRpcGlzY2luZyBl
bGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCIpCi0gICAgICAgICAgICAg
ICAgb3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7CisgICAgICAgICAgICBpZiAo
ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSAhPSAiIikKKyAgICAgICAgICAgICAg
ICBvdXRwdXQgKz0gJ1BBU1M6IEhhcyBTZWxlY3Rpb24nOwogICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhZGRpdGlvbmFs
IGxpbmUgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0
U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6
IGZhaWxlZCB0byBzZWxlY3QgYSB3b3JkIGFzIGEgcmVzdWx0IG9mIGEgbG9uZyBwcmVzcy4nOwog
ICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKIAotICAgICAgICAgICAgYXdhaXQgdG91Y2hB
bmREcmFnRnJvbVBvaW50VG9Qb2ludChkcmFnWCwgZHJhZ1kzLCBkcmFnWCwgZHJhZ1kyKTsKLSAg
ICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJvIGVp
dXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQiKQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAn
UEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOworICAgICAgICAgICAgbGFzdFNlbGVjdGlvbkNoYW5n
ZUNvdW50ID0gc2VsZWN0aW9uQ2hhbmdlZENvdW50OworICAgICAgICAgICAgdmFyIGdyYWJiZXJN
aWRwb2ludCA9IFVJSGVscGVyLm1pZFBvaW50T2ZSZWN0KGF3YWl0IFVJSGVscGVyLmdldFNlbGVj
dGlvblN0YXJ0R3JhYmJlclZpZXdSZWN0KCkpOworICAgICAgICAgICAgYXdhaXQgdG91Y2hBbmRE
cmFnRnJvbVBvaW50VG9Qb2ludChncmFiYmVyTWlkcG9pbnQueCwgZ3JhYmJlck1pZHBvaW50Lnkg
LCBncmFiYmVyTWlkcG9pbnQueCwgZ3JhYmJlck1pZHBvaW50LnkgLSAoZm9udEhlaWdodCAqIDIp
KTsKKworICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkNoYW5nZWRDb3VudCA+IGxhc3RTZWxlY3Rp
b25DaGFuZ2VDb3VudCkKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IFNlbGVjdGlv
biBDaGFuZ2VkIDwvYnI+JzsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBvdXRw
dXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBkZXNlbGVjdCBsaW5lIGFmdGVyIGEgZHJhZy4gSW5jb3Jy
ZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7Ci0g
ICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOworICAgICAgICAgICAgICAgIG91dHB1dCArPSAn
RkFJTDogU2VsZWN0aW9uIGRpZCBub3QgY2hhbmdlIDxicj4nICsgc2VsZWN0aW9uQ2hhbmdlZENv
dW50OworCisgICAgICAgICAgICBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQgPSBzZWxlY3Rpb25D
aGFuZ2VkQ291bnQ7CisgICAgICAgICAgICBncmFiYmVyTWlkcG9pbnQgPSBVSUhlbHBlci5taWRQ
b2ludE9mUmVjdChhd2FpdCBVSUhlbHBlci5nZXRTZWxlY3Rpb25TdGFydEdyYWJiZXJWaWV3UmVj
dCgpKTsKKyAgICAgICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZ3Jh
YmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2ludC55ICwgZ3JhYmJlck1pZHBvaW50LngsIGdy
YWJiZXJNaWRwb2ludC55ICsgKGZvbnRIZWlnaHQgKiAzKSk7CisgICAgICAgICAgICBhd2FpdCBs
aWZ0VXBBdFBvaW50KGdyYWJiZXJNaWRwb2ludC54LCBncmFiYmVyTWlkcG9pbnQueSAtIChmb250
SGVpZ2h0ICogMykpOwogCi0gICAgICAgICAgICBhd2FpdCB0b3VjaEFuZERyYWdGcm9tUG9pbnRU
b1BvaW50KGRyYWdYLCBkcmFnWTIsIGRyYWdYLCBkcmFnWSk7Ci0gICAgICAgICAgICBpZiAoZG9j
dW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAidXQiKQotICAgICAgICAgICAgICAg
IG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOworICAgICAgICAgICAgaWYgKHNl
bGVjdGlvbkNoYW5nZWRDb3VudCA+IGxhc3RTZWxlY3Rpb25DaGFuZ2VDb3VudCkKKyAgICAgICAg
ICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IFNlbGVjdGlvbiBDaGFuZ2VkIDwvYnI+JzsKICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBk
ZXNlbGVjdCBsaW5lIGFmdGVyIGEgZHJhZy4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3Vt
ZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7Ci0gICAgICAgICAgICBvdXRwdXQgKz0gJzxi
cj4nOworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogU2VsZWN0aW9uIGRpZCBub3Qg
Y2hhbmdlIDxicj4nICsgc2VsZWN0aW9uQ2hhbmdlZENvdW50OworICAgICAgICAgICAgCisgICAg
ICAgICAgICBsYXN0U2VsZWN0aW9uQ2hhbmdlQ291bnQgPSBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7
CisgICAgICAgICAgICBncmFiYmVyTWlkcG9pbnQgPSBVSUhlbHBlci5taWRQb2ludE9mUmVjdChh
d2FpdCBVSUhlbHBlci5nZXRTZWxlY3Rpb25TdGFydEdyYWJiZXJWaWV3UmVjdCgpKTsKKyAgICAg
ICAgICAgIGF3YWl0IHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZ3JhYmJlck1pZHBvaW50
LngsIGdyYWJiZXJNaWRwb2ludC55ICwgZ3JhYmJlck1pZHBvaW50LngsIGdyYWJiZXJNaWRwb2lu
dC55ICsgKGZvbnRIZWlnaHQgKiAyKSk7CiAKLSAgICAgICAgICAgIHZhciByZXN1bHQgPSBhd2Fp
dCB0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGRyYWdYLCBkcmFnWSwgZHJhZ1gsIGRyYWdZ
NCk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9
PSAidXQiKQotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rp
b24nOworICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkNoYW5nZWRDb3VudCA+IGxhc3RTZWxlY3Rp
b25DaGFuZ2VDb3VudCkKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IFNlbGVjdGlv
biBDaGFuZ2VkIDwvYnI+JzsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBvdXRw
dXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byByZWR1Y2Ugc2VsZWN0aW9uIHRvIGEgc2luZ2xlIGNoYXJh
Y3RlciBieSBkcmFnZ2luZyBkb3duLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQu
Z2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7
Ci0gICAgICAgICAgICBvdXRwdXQgKz0gcmVzdWx0OworICAgICAgICAgICAgICAgIG91dHB1dCAr
PSAnRkFJTDogU2VsZWN0aW9uIGNoYW5nZWQgPGJyPicgKyBzZWxlY3Rpb25DaGFuZ2VkQ291bnQ7
CisKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5pbm5lckhU
TUwgPSBvdXRwdXQ7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAg
ICAgfQpAQCAtNzcsMjAgKzczLDI3IEBACiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPgogICAg
ICAgICAjdGFyZ2V0IHsKLSAgICAgICAgICAgIGhlaWdodDogNDAwcHg7CisgICAgICAgICAgICBo
ZWlnaHQ6IDUwcHg7CiAgICAgICAgICAgICB3aWR0aDogMzAwcHg7CiAgICAgICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBzaWx2ZXI7CiAgICAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNl
OwogICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICB9CisgICAgICAgICNlZGl0
YWJsZSB7CisgICAgICAgICAgICBoZWlnaHQ6IDMwMHB4OworICAgICAgICAgICAgd2lkdGg6IDMw
MHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOworICAgICAgICAgICAg
Zm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDsKKyAg
ICAgICAgfQogICAgIDwvc3R5bGU+Ci0gICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9
ImluaXRpYWwtc2NhbGU9MSI+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9Indp
ZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KIDwvaGVhZD4KIDxib2R5PgogICAg
IDxkaXYgaWQ9InRhcmdldCI+Ci0gICAgICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0
LCBjb25zZWN0ZXR1cjxzcGFuIGlkPSJ0aGlyZFNlbGVjdGlvbiI+PC9zcGFuPiBhZGlwaXNjaW5n
IGVsaXQsIHNlZCBkPHNwYW4gaWQ9InNlY29uZFNlbGVjdGlvbiI+PC9zcGFuPm8gZWl1c21vZCB0
ZW1wb3IgaW5jaWRpZHVudCA8c3BhbiBpZD0iZmlyc3RTZWxlY3Rpb24iPnV0PC9zcGFuPiBsYWJv
cmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMg
bm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBl
YSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVy
aXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEg
cGFyaWF0dXIuPC9wPgotICAgICAgICAKLSAgICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2Ny
aXB0Q29udHJvbGxlciB0byBydW4uCisgICAgICAgIDxwPkhlcmUncyB0byB0aGUgY3Jhenkgb25l
cy4gVGhlIG1pc2ZpdHMuIFRoZSByZWJlbHMuIFRoZSB0cm91YmxlIG1ha2Vycy4gVGhlIHJvdW5k
IHBlZ3MgaW4gdGhlIHNxdWFyZSBob2xlcy48L3A+CisgICAgICAgIDxwPlRoaXMgdGVzdCByZXF1
aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8gcnVuLjwvcD4KICAgICA8L2Rpdj4KIDwvYm9keT4K
IDwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9z
L3RvdWNoLWV2ZW50LXJhZGl1cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3MvdG91Y2gtZXZlbnQtcmFkaXVzLWV4cGVjdGVkLnR4dAppbmRleCAwZDI0NjY5
Y2YyMTQ5NThiODNiMmExNjhhN2NkNTVmMDJkNTYxNTA3Li41ZjBjMzc1YzRhNjZlYmRkN2UxOGU3
MmE1ZWI5YjVjZjRkZjUyNzI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9pb3MvdG91Y2gtZXZlbnQtcmFkaXVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdG91Y2gtZXZlbnQtcmFkaXVzLWV4cGVjdGVkLnR4dApA
QCAtMSwzICsxLDMgQEAKLVBBU1M6IHJhZGl1c1ggaXMgNTYuOAotUEFTUzogcmFkaXVzWSBpcyA1
Ni44CitQQVNTOiByYWRpdXNYIGlzIGNvcnJlY3QuCitQQVNTOiByYWRpdXNZIGlzIGNvcnJlY3Qu
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90b3VjaC1l
dmVudC1yYWRpdXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90b3Vj
aC1ldmVudC1yYWRpdXMuaHRtbAppbmRleCA2NTY1N2Y4Mjk4MjI5ZGRiZDJlOWUyNzNkZWU0NTlm
YTAyZjBmNGQ4Li44OTgxOGE2ZTIxZTU4ZjgzM2U0NDhhYmFjY2RiYWExMzMyMGIwNzZkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdG91Y2gtZXZlbnQtcmFk
aXVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RvdWNoLWV2
ZW50LXJhZGl1cy5odG1sCkBAIC02MywxNiArNjMsMTYgQEAKICAgICAgICAgICAgIHZhciBmb3Jj
ZXMgPSBbXTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVu
ZXIoJ3RvdWNoc3RhcnQnLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgICAgIHZhciBl
eHBlY3RlZCA9IE1hdGgucm91bmQoMC4xMCAqIDU2OCAqIDEwKSAvIDEwOworICAgICAgICAgICAg
ICAgIHZhciBleHBlY3RlZCA9IE1hdGgucm91bmQoMC4xMCAqIHdpbmRvdy5zY3JlZW4uaGVpZ2h0
ICogMTApIC8gMTA7CiAgICAgICAgICAgICAgICAgdmFyIHJhZGl1c1ggPSBNYXRoLnJvdW5kKGV2
ZW50LnRvdWNoZXNbMF0ucmFkaXVzWCAqIDEwKSAvIDEwOwogICAgICAgICAgICAgICAgIGlmIChy
YWRpdXNYID09IGV4cGVjdGVkKQotICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6
IHJhZGl1c1ggaXMgJyArIGV4cGVjdGVkICsgJzxicj4nOworICAgICAgICAgICAgICAgICAgICBv
dXRwdXQgKz0gJ1BBU1M6IHJhZGl1c1ggaXMgY29ycmVjdC48YnI+JzsKICAgICAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogcmFkaXVzWCBzaG91
bGQgYmUgJyArIGV4cGVjdGVkICsgJywgd2FzICcgKyByYWRpdXNYICsgJzxicj4nOwogCiAgICAg
ICAgICAgICAgICAgdmFyIHJhZGl1c1kgPSBNYXRoLnJvdW5kKGV2ZW50LnRvdWNoZXNbMF0ucmFk
aXVzWSAqIDEwKSAvIDEwOwogICAgICAgICAgICAgICAgIGlmIChyYWRpdXNZID09IGV4cGVjdGVk
KQotICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IHJhZGl1c1kgaXMgJyArIGV4
cGVjdGVkICsgJzxicj4nOworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IHJh
ZGl1c1kgaXMgY29ycmVjdC48YnI+JzsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogcmFkaXVzWSBzaG91bGQgYmUgJyArIGV4cGVjdGVk
ICsgJywgd2FzICcgKyByYWRpdXNZICsgJzxicj4nOwogICAgICAgICAgICAgfSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>