<?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>177636</bug_id>
          
          <creation_ts>2017-09-28 18:59:51 -0700</creation_ts>
          <short_desc>Clean up Long Press Selection Tests</short_desc>
          <delta_ts>2017-10-02 18:04:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>aestes</cc>
    
    <cc>simon.fraser</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>1354410</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-09-28 18:59:51 -0700</bug_when>
    <thetext>Clean up Long Press Selection Tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354412</commentid>
    <comment_count>1</comment_count>
      <attachid>322155</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-09-28 19:08:00 -0700</bug_when>
    <thetext>Created attachment 322155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354413</commentid>
    <comment_count>2</comment_count>
      <attachid>322155</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-09-28 19:13:49 -0700</bug_when>
    <thetext>Comment on attachment 322155
Patch

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

&gt; LayoutTests/fast/events/touch/ios/long-press-then-drag-down-to-change-selected-text.html:22
&gt; +            var pressPointX = firstTargetRect.x + firstTargetRect.width/2;

Spaces around operators! Always! :)

&gt; LayoutTests/fast/events/touch/ios/long-press-then-drag-down-to-change-selected-text.html:95
&gt; -    &lt;meta name=&quot;viewport&quot; content=&quot;initial-scale=1&quot;&gt;
&gt; +    &lt;meta name=&quot;viewport&quot; content=&quot;initial-scale=1.0&quot;&gt;

This was better before IMO

&gt; LayoutTests/fast/events/touch/ios/long-press-then-drag-right-to-change-selected-text.html:59
&gt; +                                testRunner.runUIScript(touchAndDragFromPointToPoint(dragX2,dragY,dragX,dragY), function(result) {

Spaces after commas too!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355655</commentid>
    <comment_count>3</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-10-02 18:03:56 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/222643/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355656</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-10-02 18:04:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/34782026&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322155</attachid>
            <date>2017-09-28 19:08:00 -0700</date>
            <delta_ts>2017-09-28 19:13:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177636-20170928190759.patch</filename>
            <type>text/plain</type>
            <size>44758</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIyMjY0MikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE3LTA5LTI4ICBNZWdhbiBHYXJkbmVyICA8
bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgTG9uZyBQcmVzcyBT
ZWxlY3Rpb24gVGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3NzYzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENsZWFuIHVwIHRlc3RzIHRvIHVzZSBiZXR0ZXIgbWV0aG9kcyBvZiBmaW5kaW5nIHNl
bGVjdGlvbiBsb2NhdGlvbnMgc28gdGhhdCAKKyAgICAgICAgdGVzdHMgYXJlIG1vcmUgcm9idXN0
IGFuZCBsZXNzIGxpa2VseSB0byBiZSBhZmZlY3RlZCBieSB1bnJlbGF0ZWQgY2hhbmdlcy4KKwor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLXRoZW4tZHJhZy1kb3du
LXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91
Y2gvaW9zL2xvbmctcHJlc3MtdGhlbi1kcmFnLWxlZnQtdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQu
aHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy10aGVuLWRy
YWctcmlnaHQtdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2
ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy10aGVuLWRyYWctdXAtdG8tY2hhbmdlLXNlbGVjdGVk
LXRleHQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy10
by1zZWxlY3QtYW5kLXRhcC10by1jbGVhci1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9l
dmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3MtdG8tc2VsZWN0LWFuZC10YXAtdG8tY2xlYXIuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy10by1zZWxlY3Qt
dGV4dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmct
cHJlc3MtdG8tc2VsZWN0LXRleHQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9p
b3MvcmVzb3VyY2VzL2Jhc2ljLWdlc3R1cmVzLmpzOgorICAgICAgICAobG9uZ1ByZXNzQXRQb2lu
dCk6CisgICAgICAgICh0YXBBdFBvaW50KToKKyAgICAgICAgKHRvdWNoQW5kRHJhZ0Zyb21Qb2lu
dFRvUG9pbnQpOgorICAgICAgICAocHJlc3NBdFBvaW50KTogRGVsZXRlZC4KKyAgICAgICAgKGRy
YWdGcm9tUG9pbnRUb1BvaW50KTogRGVsZXRlZC4KKwogMjAxNy0wOS0yOCAgSm9hbm1hcmllIERp
Z2dzICA8amRpZ2dzQGlnYWxpYS5jb20+CiAKICAgICAgICAgQVg6IFtBVEtdIG9iamVjdDpzdGF0
ZS1jaGFuZ2VkIG5vdGlmaWNhdGlvbnMgbWlzc2luZyBmb3IgbXVsdGlwbGUgQVJJQSBhdHRyaWJ1
dGVzCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy10
aGVuLWRyYWctZG93bi10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLXRoZW4tZHJhZy1k
b3duLXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWwJKHJldmlzaW9uIDIyMjYzMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLXRoZW4tZHJhZy1kb3du
LXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsMTE2ICsy
LDcyIEBACiAKIDxodG1sPgogPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9iYXNp
Yy1nZXN0dXJlcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAg
ICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICB9Ci0KLSAgICAg
ICAgZnVuY3Rpb24gZ2V0SW5pdGFsUHJlc3NTY3JpcHQoKQotICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gYAotICAgICAgICAgICAgKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIHVp
Q29udHJvbGxlci5sb25nUHJlc3NBdFBvaW50KDY1LCAxMDAsIGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKLSAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pKCk7YAotICAgICAgICB9Ci0KLSAgICAgICAg
ZnVuY3Rpb24gZ2V0RHJhZ1NjcmlwdChzdGFydFgsIHN0YXJ0WSwgZW5kWCwgZW5kWSkKLSAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIGAKLSAgICAgICAgICAgIChmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgIHZhciBldmVudFN0cmVhbSA9IHsKLSAgICAgICAgICAgIGV2ZW50cyA6IFsKLSAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50ZXJwb2xhdGUgOiAibGluZWFyIiwK
LSAgICAgICAgICAgICAgICB0aW1lc3RlcDogMC4xLAotICAgICAgICAgICAgICAgIGNvb3JkaW5h
dGVTcGFjZSA6ICJnbG9iYWwiLAotICAgICAgICAgICAgICAgIHN0YXJ0RXZlbnQgOiB7Ci0gICAg
ICAgICAgICAgICAgICAgIGlucHV0VHlwZSA6ICJoYW5kIiwKLSAgICAgICAgICAgICAgICAgICAg
dGltZU9mZnNldCA6IDAsCi0gICAgICAgICAgICAgICAgICAgIHRvdWNoZXMgOiBbCi0gICAgICAg
ICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFR5cGUgOiAi
ZmluZ2VyIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBoYXNlIDogImJlZ2FuIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGlkIDogMSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHggOiAk
e3N0YXJ0WH0sCi0gICAgICAgICAgICAgICAgICAgICAgICB5IDogJHtzdGFydFl9LAotICAgICAg
ICAgICAgICAgICAgICAgICAgcHJlc3N1cmUgOiAwCi0gICAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAg
ICAgIGVuZEV2ZW50IDogewotICAgICAgICAgICAgICAgICAgICBpbnB1dFR5cGUgOiAiaGFuZCIs
Ci0gICAgICAgICAgICAgICAgICAgIHRpbWVPZmZzZXQgOiAwLjUsCi0gICAgICAgICAgICAgICAg
ICAgIHRvdWNoZXMgOiBbCi0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBpbnB1dFR5cGUgOiAiZmluZ2VyIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
IHBoYXNlIDogIm1vdmVkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGlkIDogMSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHggOiAke2VuZFh9LAotICAgICAgICAgICAgICAgICAgICAgICAg
eSA6ICR7ZW5kWX0sCi0gICAgICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZSA6IDAKLSAgICAg
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgXQotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH1dfTsKLSAgICAgICAgICAgICAKLSAgICAgICAgICAgIHVpQ29u
dHJvbGxlci5zZW5kRXZlbnRTdHJlYW0oSlNPTi5zdHJpbmdpZnkoZXZlbnRTdHJlYW0pLCBmdW5j
dGlvbigpIHt9KTsKLSAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0
ZSgpOwotICAgICAgICAgICAgfSkoKTtgCi0gICAgICAgIH0KLQorICAgIAogICAgICAgICBmdW5j
dGlvbiBydW5UZXN0KCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLnJ1
blVJU2NyaXB0KQogICAgICAgICAgICAgICAgIHJldHVybjsKLQorICAgICAgICAKICAgICAgICAg
ICAgIHZhciBvdXRwdXQgPSAnJzsKLSAgICAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7Ci0gICAgICAgICAgICAKKyAgICAgICAgICAgIHZhciBm
aXJzdFRhcmdldFJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlyc3RTZWxlY3Rpb24n
KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgICAgIHZhciBzZWNvbmRUYXJnZXRS
ZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlY29uZFNlbGVjdGlvbicpLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpOworICAgICAgICAgICAgdmFyIHRoaXJkVGFyZ2V0UmVjdCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0aGlyZFNlbGVjdGlvbicpLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpOworICAgICAgICAKKyAgICAgICAgICAgIHZhciBwcmVzc1BvaW50WCA9IGZpcnN0VGFyZ2V0
UmVjdC54ICsgZmlyc3RUYXJnZXRSZWN0LndpZHRoLzI7CisgICAgICAgICAgICB2YXIgcHJlc3NQ
b2ludFkgPSBmaXJzdFRhcmdldFJlY3QueSArIGZpcnN0VGFyZ2V0UmVjdC5oZWlnaHQvMjsKKyAg
ICAgICAgICAgIHZhciBkcmFnWSA9IGZpcnN0VGFyZ2V0UmVjdC55ICsgZmlyc3RUYXJnZXRSZWN0
LmhlaWdodDsKKyAgICAgICAgICAgIHZhciBkcmFnWCA9IGZpcnN0VGFyZ2V0UmVjdC54ICsgZmly
c3RUYXJnZXRSZWN0LndpZHRoOworICAgICAgICAgICAgdmFyIGRyYWdZMiA9IHNlY29uZFRhcmdl
dFJlY3QueSArIHNlY29uZFRhcmdldFJlY3QuaGVpZ2h0OworICAgICAgICAgICAgdmFyIGRyYWdZ
MyA9IHRoaXJkVGFyZ2V0UmVjdC55ICsgdGhpcmRUYXJnZXRSZWN0LmhlaWdodDsKKyAgICAgICAg
ICAgIHZhciBkcmFnWTQgPSBmaXJzdFRhcmdldFJlY3QueSAtIGZpcnN0VGFyZ2V0UmVjdC5oZWln
aHQ7CisgICAgICAgIAogICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIucnVuVUlTY3JpcHQpIHsK
LSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldEluaXRhbFByZXNzU2Ny
aXB0KCksIGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1l
bnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAiVXQiKQorICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIucnVuVUlTY3JpcHQobG9uZ1ByZXNzQXRQb2ludChwcmVzc1BvaW50WCxwcmVzc1Bv
aW50WSksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1l
bnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAic2VkIikKICAgICAgICAgICAgICAgICAg
ICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOwogICAgICAgICAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZh
aWxlZCB0byBzZWxlY3QgYSB3b3JkIGFzIGEgcmVzdWx0IG9mIGEgbG9uZyBwcmVzcyc7CisgICAg
ICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBzZWxlY3QgYSB3
b3JkIGFzIGEgcmVzdWx0IG9mIGEgbG9uZyBwcmVzcy4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyAr
IGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgICAg
IG91dHB1dCArPSAnPGJyPic7Ci0KLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5V
SVNjcmlwdChnZXREcmFnU2NyaXB0KDcyLCAxMjAsIDcyLCAxNDApLCBmdW5jdGlvbihyZXN1bHQp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50
b1N0cmluZygpID09ICJVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcSIpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1
blVJU2NyaXB0KHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZHJhZ1gsIGRyYWdZLCBkcmFn
WCwgZHJhZ1kyKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAic2VkIGRvIGVpdXNtb2Qg
dGVtcG9yIGluY2lkaWR1biIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9
ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7CiAgICAgICAgICAgICAgICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8g
c2VsZWN0IGFkZGl0aW9uYWwgbGluZSBhZnRlciBhIGRyYWcuJworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhZGRpdGlvbmFsIGxp
bmUgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2Vs
ZWN0aW9uKCkudG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAn
PGJyPic7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0RHJhZ1NjcmlwdCg3
MiwgMTQwLCA3MiwgMTYwKSwgZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgPT0gIlV0IGVu
aW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aSIpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KHRvdWNoQW5kRHJhZ0Zyb21Q
b2ludFRvUG9pbnQoZHJhZ1gsIGRyYWdZMiwgZHJhZ1gsIGRyYWdZMyksIGZ1bmN0aW9uKHJlc3Vs
dCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rp
b24oKS50b1N0cmluZygpID09ICJzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBs
YWJvcmUgZXQgZG9sb3JlIG1hIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0
cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZB
SUw6IGZhaWxlZCB0byBzZWxlY3QgYWRkaXRpb25hbCBsaW5lIGFmdGVyIGEgZHJhZy4nCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNl
bGVjdCBhZGRpdGlvbmFsIGxpbmUgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAn
ICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOwotCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXREcmFnU2NyaXB0KDcyLCAxNjAsIDcyLCAxNDAp
LCBmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgPT0gIlV0IGVuaW0gYWQgbWluaW0g
dmVuaWFtLCBxIikKKyAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCh0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1Bv
aW50KGRyYWdYLCBkcmFnWTMsIGRyYWdYLCBkcmFnWTIpLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVjdGlvbigp
LnRvU3RyaW5nKCkgPT0gInNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW4iKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNl
bGVjdGlvbic7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIGRl
c2VsZWN0IGxpbmUgYWZ0ZXIgYSBkcmFnLicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIGRlc2VsZWN0IGxpbmUgYWZ0ZXIgYSBk
cmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9T
dHJpbmcoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+
JzsKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2Ny
aXB0KGdldERyYWdTY3JpcHQoNzIsIDE0MCwgNzIsIDExNSksIGZ1bmN0aW9uKHJlc3VsdCkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVj
dGlvbigpLnRvU3RyaW5nKCkgPT0gIlV0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIucnVuVUlTY3JpcHQodG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChkcmFnWCwgZHJh
Z1kyLCBkcmFnWCwgZHJhZ1kpLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygp
ID09ICJzZWQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1
dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIGRlc2VsZWN0IGxpbmUgYWZ0ZXIgYSBkcmFnLicK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6
IGZhaWxlZCB0byBkZXNlbGVjdCBsaW5lIGFmdGVyIGEgZHJhZy4gSW5jb3JyZWN0IFNlbGVjdGlv
bjogJyArIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ydW5VSVNjcmlwdChnZXREcmFnU2NyaXB0KDcyLCAxMTUsIDcyLCA4MCksIGZ1bmN0aW9u
KHJlc3VsdCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChk
b2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJVIikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3Jp
cHQodG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChkcmFnWCwgZHJhZ1ksIGRyYWdYLCBkcmFn
WTQpLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAicyIpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFT
UzogQ29ycmVjdCBTZWxlY3Rpb24nOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gcmVkdWNlIHNlbGVjdGlvbiB0byBhIHNpbmdsZSBj
aGFyYWN0ZXIgYnkgZHJhZ2dpbmcgdXAuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byByZWR1Y2Ugc2VsZWN0aW9u
IHRvIGEgc2luZ2xlIGNoYXJhY3RlciBieSBkcmFnZ2luZyB1cC4gSW5jb3JyZWN0IFNlbGVjdGlv
bjogJyArIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcmVzdWx0OwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
YXJnZXQnKS5pbm5lckhUTUwgPSBvdXRwdXQ7CkBAIC0xMjQsMjMgKzgwLDI1IEBACiAgICAgICAg
ICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLQorICAgIAogICAgICAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1blRlc3QsIGZhbHNlKTsKICAgICA8L3Nj
cmlwdD4KICAgICA8c3R5bGU+CiAgICAgICAgICN0YXJnZXQgewogICAgICAgICAgICAgaGVpZ2h0
OiA0MDBweDsKLSAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAz
MDBweDsKICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKKyAgICAgICAgICAg
IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAg
ICAgICAgIH0KICAgICA8L3N0eWxlPgotICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50
PSJpbml0aWFsLXNjYWxlPTEiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJp
bml0aWFsLXNjYWxlPTEuMCI+CiA8L2hlYWQ+CiA8Ym9keT4KLTxkaXYgaWQ9InRhcmdldCI+Ci0g
ICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2Npbmcg
ZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9y
ZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhl
cmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBj
b25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVw
dGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBF
eGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1
bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLjwvcD4K
LQotICAgIFRoaXMgdGVzdCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8gcnVuLgotPC9k
aXY+CisgICAgPGRpdiBpZD0idGFyZ2V0Ij4KKyAgICAgICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Ig
c2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgPHNwYW4gaWQ9ImZpcnN0U2Vs
ZWN0aW9uIj5zZWQ8L3NwYW4+IGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bjxzcGFuIGlkPSJz
ZWNvbmRTZWxlY3Rpb24iPjwvc3Bhbj50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnPHNwYW4gaWQ9
InRoaXJkU2VsZWN0aW9uIj48L3NwYW4+bmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlh
bSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlx
dWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LjwvcD4KKyAgICAgICAgCisgICAgICAgIFRoaXMg
dGVzdCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8gcnVuLgorICAgIDwvZGl2PgogPC9i
b2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xv
bmctcHJlc3MtdGhlbi1kcmFnLWxlZnQtdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy10
aGVuLWRyYWctbGVmdC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sCShyZXZpc2lvbiAyMjI2
MzApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1wcmVzcy10aGVu
LWRyYWctbGVmdC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xMyw1MSArMTMsNjEgQEAKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVy
LnJ1blVJU2NyaXB0KQogICAgICAgICAgICAgICAgIHJldHVybjsKLQorICAgICAgICAKICAgICAg
ICAgICAgIHZhciBvdXRwdXQgPSAnJzsKLSAgICAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7Ci0gICAgICAgICAgICAKKyAgICAgICAgICAgIHZh
ciBmaXJzdFRhcmdldFJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlyc3RTZWxlY3Rp
b24nKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgICAgIHZhciBzZWNvbmRUYXJn
ZXRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlY29uZFNlbGVjdGlvbicpLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICAgICAgdmFyIHRoaXJkVGFyZ2V0UmVjdCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aGlyZFNlbGVjdGlvbicpLmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpOworICAgICAgICAKKyAgICAgICAgICAgIHZhciBwcmVzc1BvaW50WCA9IGZpcnN0VGFy
Z2V0UmVjdC54K2ZpcnN0VGFyZ2V0UmVjdC53aWR0aC8yOworICAgICAgICAgICAgdmFyIHByZXNz
UG9pbnRZID0gZmlyc3RUYXJnZXRSZWN0LnkrZmlyc3RUYXJnZXRSZWN0LmhlaWdodC8yOworICAg
ICAgICAgICAgdmFyIGRyYWdZID0gZmlyc3RUYXJnZXRSZWN0Lnk7CisgICAgICAgICAgICB2YXIg
ZHJhZ1ggPSBmaXJzdFRhcmdldFJlY3QueDsKKyAgICAgICAgICAgIHZhciBkcmFnWDIgPSBzZWNv
bmRUYXJnZXRSZWN0Lng7CisgICAgICAgICAgICB2YXIgZHJhZ1gzID0gdGhpcmRUYXJnZXRSZWN0
Lng7CisgICAgICAgICAgICB2YXIgZHJhZ1g0ID0gZmlyc3RUYXJnZXRSZWN0LnggK2ZpcnN0VGFy
Z2V0UmVjdC53aWR0aDsKKyAgICAgICAgCiAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5ydW5V
SVNjcmlwdCkgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQocHJlc3NB
dFBvaW50KDE4MSwgMTA0KSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5ydW5VSVNjcmlwdChsb25nUHJlc3NBdFBvaW50KHByZXNzUG9pbnRYLCBwcmVzc1Bv
aW50WSksIGZ1bmN0aW9uKHJlc3VsdCkgewogICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1l
bnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAiYWxpcXVhIikKICAgICAgICAgICAgICAg
ICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOwogICAgICAgICAg
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6
IGZhaWxlZCB0byBzZWxlY3QgYSB3b3JkIGFzIGEgcmVzdWx0IG9mIGEgbG9uZyBwcmVzcyc7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBzZWxlY3Qg
YSB3b3JkIGFzIGEgcmVzdWx0IG9mIGEgbG9uZyBwcmVzcy4gSW5jb3JyZWN0IFNlbGVjdGlvbjog
JyArIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAg
ICAgIG91dHB1dCArPSAnPGJyPic7Ci0KLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5y
dW5VSVNjcmlwdChkcmFnRnJvbVBvaW50VG9Qb2ludCgxNDksOTAsODQsOTApLCBmdW5jdGlvbihy
ZXN1bHQpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1
blVJU2NyaXB0KHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZHJhZ1gsZHJhZ1ksZHJhZ1gy
LGRyYWdZKSwgZnVuY3Rpb24ocmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAibWFnbmEgYWxpcXVhIikKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IENvcnJlY3QgU2VsZWN0
aW9uJzsKICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBzZWxlY3QgYWRkaXRpb25hbCBsaW5l
IGFmdGVyIGEgZHJhZy4nICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVj
dCBhZGRpdGlvbmFsIHdvcmQgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsg
ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIG91dHB1dCArPSAnPGJyPic7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQo
ZHJhZ0Zyb21Qb2ludFRvUG9pbnQoODQsOTAsOCw5MCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQo
ZHJhZ1gyLGRyYWdZLGRyYWdYMyxkcmFnWSksIGZ1bmN0aW9uKHJlc3VsdCkgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygp
ID09ICJkb2xvcmUgbWFnbmEgYWxpcXVhIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQg
Kz0gJ0ZBSUw6IGZhaWxlZCB0byBzZWxlY3QgYWRkaXRpb25hbCBsaW5lIGFmdGVyIGEgZHJhZy4n
ICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBzZWxlY3QgYWRkaXRpb25h
bCB3b3JkIGFmdGVyIGEgZHJhZy4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50Lmdl
dFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0
cHV0ICs9ICc8YnI+JzsKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
cnVuVUlTY3JpcHQoZHJhZ0Zyb21Qb2ludFRvUG9pbnQoOCw5MCw4NCw5MCksIGZ1bmN0aW9uKHJl
c3VsdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQodG91Y2hBbmRE
cmFnRnJvbVBvaW50VG9Qb2ludChkcmFnWDMsZHJhZ1ksZHJhZ1gyLGRyYWdZKSwgZnVuY3Rpb24o
cmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5n
ZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICJtYWduYSBhbGlxdWEiKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlv
bic7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIGRlc2VsZWN0
IGxpbmUgYWZ0ZXIgYSBkcmFnLicgKyBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZh
aWxlZCB0byBkZXNlbGVjdCB3b3JkIGFmdGVyIGEgZHJhZy4gSW5jb3JyZWN0IFNlbGVjdGlvbjog
JyArIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7Ci0KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChkcmFnRnJvbVBvaW50VG9Qb2ludCg4
NCw5MCwxNDksOTApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0
KHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQoZHJhZ1gyLGRyYWdZLGRyYWdYLGRyYWdZKSwg
ZnVuY3Rpb24ocmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAiYWxpcXVhIikKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IENvcnJl
Y3QgU2VsZWN0aW9uJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6
IGZhaWxlZCB0byBkZXNlbGVjdCBsaW5lIGFmdGVyIGEgZHJhZy4nICsgZG9jdW1lbnQuZ2V0U2Vs
ZWN0aW9uKCkudG9TdHJpbmcoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIGRlc2VsZWN0IHdvcmQgYWZ0ZXIgYSBkcmFn
LiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJp
bmcoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnPGJy
Pic7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGRyYWdGcm9tUG9pbnRUb1BvaW50
KDE0OSw5MCwyNTAsOTApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQodG91Y2hBbmREcmFnRnJvbVBv
aW50VG9Qb2ludChkcmFnWCxkcmFnWSxkcmFnWDQsZHJhZ1kpLCBmdW5jdGlvbihyZXN1bHQpIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0
U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAiYSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQg
dG8gcmVkdWNlIHNlbGVjdGlvbiB0byBhIHNpbmdsZSBjaGFyYWN0ZXIgYnkgZHJhZ2dpbmcgdXAu
JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0g
J0ZBSUw6IGZhaWxlZCB0byByZWR1Y2Ugc2VsZWN0aW9uIHRvIGEgc2luZ2xlIGNoYXJhY3RlciBi
eSBkcmFnZ2luZyByaWdodC4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArICAgICBkb2N1bWVudC5n
ZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3V0cHV0ICs9IHJlc3VsdDsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0JykuaW5uZXJIVE1M
ID0gb3V0cHV0OwpAQCAtNzAsNyArODAsNyBAQAogICAgICAgICAgICAgICAgIH0pOwogICAgICAg
ICAgICAgfQogICAgICAgICB9Ci0KKyAgICAKICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ2xvYWQnLCBydW5UZXN0LCBmYWxzZSk7CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPgpA
QCAtODIsMTIgKzkyLDEzIEBACiAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAg
IH0KICAgICA8L3N0eWxlPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0
aWFsLXNjYWxlPTEuMCI+CiA8L2hlYWQ+CiA8Ym9keT4KLTxkaXYgaWQ9InRhcmdldCI+Ci0gICAg
PHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxp
dCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBt
YWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNp
dGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25z
ZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0
ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNl
cHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBh
IHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLjwvcD4KLQot
ICAgIFRoaXMgdGVzdCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8gcnVuLgotPC9kaXY+
CisgICAgPGRpdiBpZD0idGFyZ2V0Ij4KKyAgICAgICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0
IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9y
IGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IDxzcGFuIGlkPSJ0aGlyZFNlbGVjdGlvbiI+PC9zcGFu
PmRvbG9yZSA8c3BhbiBpZD0ic2Vjb25kU2VsZWN0aW9uIj48L3NwYW4+bWFnbmEgPHNwYW4gaWQ9
ImZpcnN0U2VsZWN0aW9uIj5hbGlxdWE8L3NwYW4+LiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwg
cXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlw
IGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LjwvcD4KKyAgICAgICAgCisgICAgICAgIFRoaXMgdGVz
dCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8gcnVuLgorICAgIDwvZGl2PgogPC9ib2R5
PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmct
cHJlc3MtdGhlbi1kcmFnLXJpZ2h0LXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3MtdGhl
bi1kcmFnLXJpZ2h0LXRvLWNoYW5nZS1zZWxlY3RlZC10ZXh0Lmh0bWwJKHJldmlzaW9uIDIyMjYz
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLXRoZW4t
ZHJhZy1yaWdodC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xNSw0OSArMTUsNTkgQEAKICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAg
IHZhciBvdXRwdXQgPSAnJzsKLSAgICAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGFyZ2V0Jyk7Ci0gICAgICAgICAgICAKKyAgICAgICAgICAgIHZhciBmaXJz
dFRhcmdldFJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlyc3RTZWxlY3Rpb24nKS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgICAgIHZhciBzZWNvbmRUYXJnZXRSZWN0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlY29uZFNlbGVjdGlvbicpLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpOworICAgICAgICAgICAgdmFyIHRoaXJkVGFyZ2V0UmVjdCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0aGlyZFNlbGVjdGlvbicpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
OworCisgICAgICAgICAgICB2YXIgcHJlc3NQb2ludFggPSBmaXJzdFRhcmdldFJlY3QueCArIGZp
cnN0VGFyZ2V0UmVjdC53aWR0aC8yOworICAgICAgICAgICAgdmFyIHByZXNzUG9pbnRZID0gZmly
c3RUYXJnZXRSZWN0LnkgKyBmaXJzdFRhcmdldFJlY3QuaGVpZ2h0LzI7CisgICAgICAgICAgICB2
YXIgZHJhZ1kgPSBmaXJzdFRhcmdldFJlY3QueSArIGZpcnN0VGFyZ2V0UmVjdC5oZWlnaHQ7Cisg
ICAgICAgICAgICB2YXIgZHJhZ1ggPSBmaXJzdFRhcmdldFJlY3QueCArIGZpcnN0VGFyZ2V0UmVj
dC53aWR0aDsKKyAgICAgICAgICAgIHZhciBkcmFnWDIgPSBzZWNvbmRUYXJnZXRSZWN0Lng7Cisg
ICAgICAgICAgICB2YXIgZHJhZ1gzID0gdGhpcmRUYXJnZXRSZWN0Lng7CisgICAgICAgICAgICB2
YXIgZHJhZ1g0ID0gZmlyc3RUYXJnZXRSZWN0LnggLSBmaXJzdFRhcmdldFJlY3Qud2lkdGg7Cisg
ICAgICAgIAogICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIucnVuVUlTY3JpcHQpIHsKLSAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KHByZXNzQXRQb2ludCgxMTAsIDEwNCks
IGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3Jp
cHQobG9uZ1ByZXNzQXRQb2ludChwcmVzc1BvaW50WCwgcHJlc3NQb2ludFkpLCBmdW5jdGlvbihy
ZXN1bHQpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVjdGlvbigp
LnRvU3RyaW5nKCkgPT0gIm1hZ25hIikKICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCAr
PSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOwogICAgICAgICAgICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBzZWxlY3Qg
YSB3b3JkIGFzIGEgcmVzdWx0IG9mIGEgbG9uZyBwcmVzcyc7CisgICAgICAgICAgICAgICAgICAg
ICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBzZWxlY3QgYSB3b3JkIGFzIGEgcmVzdWx0
IG9mIGEgbG9uZyBwcmVzcy4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50LmdldFNl
bGVjdGlvbigpLnRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnPGJy
Pic7CiAKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChkcmFnRnJv
bVBvaW50VG9Qb2ludCgxMzksMTIwLDIyNCwxMjApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCh0b3VjaEFuZERyYWdGcm9tUG9p
bnRUb1BvaW50KGRyYWdYLGRyYWdZLGRyYWdYMixkcmFnWSksIGZ1bmN0aW9uKHJlc3VsdCkgewog
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3Ry
aW5nKCkgPT0gIm1hZ25hIGFsaXF1YS4iKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOwogICAgICAgICAgICAgICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFp
bGVkIHRvIHNlbGVjdCBhZGRpdGlvbmFsIGxpbmUgYWZ0ZXIgYSBkcmFnLicgKyBkb2N1bWVudC5n
ZXRTZWxlY3Rpb24oKS50b1N0cmluZygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0
cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gc2VsZWN0IGFkZGl0aW9uYWwgd29yZCBhZnRlciBhIGRy
YWcuIEluY29ycmVjdCBTZWxlY3Rpb246ICcgKyBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0
cmluZygpOwogICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChkcmFnRnJvbVBvaW50VG9Qb2ludCgyMjQsMTIw
LDI1NSwxMjApLCBmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSA9PSAibWFnbmEgYWxpcXVh
LiBVdCAiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQodG91Y2hBbmREcmFnRnJvbVBv
aW50VG9Qb2ludChkcmFnWDIsZHJhZ1ksZHJhZ1gzLGRyYWdZKSwgZnVuY3Rpb24ocmVzdWx0KSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVjdGlvbigp
LnRvU3RyaW5nKCkgPT0gIm1hZ25hIGFsaXF1YS4gVXQiKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IENvcnJlY3QgU2VsZWN0aW9uJzsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhZGRpdGlvbmFsIGxpbmUgYWZ0ZXIg
YSBkcmFnLicgKyBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpKycvZW5kJworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBz
ZWxlY3QgYWRkaXRpb25hbCB3b3JkIGFmdGVyIGEgZHJhZy4gSW5jb3JyZWN0IFNlbGVjdGlvbjog
JyArIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+JzsKIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZHJhZ0Zyb21Qb2ludFRvUG9pbnQoMjU1LDEyMCwy
MjQsMTIwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5ydW5VSVNjcmlwdCh0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGRyYWdY
MyxkcmFnWSxkcmFnWDIsZHJhZ1kpLCBmdW5jdGlvbihyZXN1bHQpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkg
PT0gIm1hZ25hIGFsaXF1YS4iKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIGRlc2VsZWN0IGxpbmUgYWZ0ZXIgYSBkcmFnLicgKyBk
b2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBkZXNlbGVjdCB3b3JkIGFm
dGVyIGEgZHJhZy4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3VtZW50LmdldFNlbGVjdGlv
bigpLnRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCAr
PSAnPGJyPic7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5y
dW5VSVNjcmlwdChkcmFnRnJvbVBvaW50VG9Qb2ludCgyMjQsMTIwLDEzOSwxMjApLCBmdW5jdGlv
bihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5y
dW5VSVNjcmlwdCh0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KGRyYWdYMixkcmFnWSxkcmFn
WCxkcmFnWSksIGZ1bmN0aW9uKHJlc3VsdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgPT0gIm1hZ25h
IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BB
U1M6IENvcnJlY3QgU2VsZWN0aW9uJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQg
Kz0gJ0ZBSUw6IGZhaWxlZCB0byBkZXNlbGVjdCBsaW5lIGFmdGVyIGEgZHJhZy4nICsgZG9jdW1l
bnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIGRlc2VsZWN0IHdvcmQgYWZ0
ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9u
KCkudG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1
dCArPSAnPGJyPic7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGRyYWdGcm9tUG9p
bnRUb1BvaW50KDEzOSwxMjAsNDAsMTIwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIucnVuVUlTY3JpcHQodG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChkcmFnWCxkcmFn
WSxkcmFnWDQsZHJhZ1kpLCBmdW5jdGlvbihyZXN1bHQpIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmco
KSA9PSAibSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gcmVkdWNlIHNlbGVjdGlvbiB0
byBhIHNpbmdsZSBjaGFyYWN0ZXIgYnkgZHJhZ2dpbmcgdXAuJworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byByZWR1
Y2Ugc2VsZWN0aW9uIHRvIGEgc2luZ2xlIGNoYXJhY3RlciBieSBkcmFnZ2luZyBsZWZ0LiBJbmNv
cnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4n
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSByZXN1
bHQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RhcmdldCcpLmlubmVySFRNTCA9IG91dHB1dDsKQEAgLTgyLDEyICs5Miwx
MyBAQAogICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICB9CiAgICAgPC9zdHls
ZT4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xLjAi
PgogPC9oZWFkPgogPGJvZHk+Ci08ZGl2IGlkPSJ0YXJnZXQiPgotICAgIDxwPkxvcmVtIGlwc3Vt
IGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQsIHNlZCBkbyBlaXVz
bW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBV
dCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNv
IGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1
dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBj
aWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci48L3A+CisgICAgPGRpdiBpZD0i
dGFyZ2V0Ij4KKyAgICAgICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3Rl
dHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQg
bGFib3JlIGV0IGRvbG9yZSA8c3BhbiBpZD0iZmlyc3RTZWxlY3Rpb24iPm1hZ25hPC9zcGFuPiBh
bGlxdWEuPHNwYW4gaWQ9InNlY29uZFNlbGVjdGlvbiI+PC9zcGFuPiBVdDxzcGFuIGlkPSJ0aGly
ZFNlbGVjdGlvbiI+PC9zcGFuPiBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4
ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8g
Y29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1
cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci48
L3A+CiAKLSAgICBUaGlzIHRlc3QgcmVxdWlyZXMgVUlTY3JpcHRDb250cm9sbGVyIHRvIHJ1bi4K
LTwvZGl2PgorICAgICAgICBUaGlzIHRlc3QgcmVxdWlyZXMgVUlTY3JpcHRDb250cm9sbGVyIHRv
IHJ1bi4KKyAgICA8L2Rpdj4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLXRoZW4tZHJhZy11cC10by1jaGFuZ2Utc2Vs
ZWN0ZWQtdGV4dC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2lvcy9sb25nLXByZXNzLXRoZW4tZHJhZy11cC10by1jaGFuZ2Utc2VsZWN0ZWQtdGV4dC5o
dG1sCShyZXZpc2lvbiAyMjI2MzApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9p
b3MvbG9uZy1wcmVzcy10aGVuLWRyYWctdXAtdG8tY2hhbmdlLXNlbGVjdGVkLXRleHQuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMiw2NiArMiwxMiBAQAogCiA8aHRtbD4KIDxoZWFkPgorICAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQ+CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKICAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGdldEluaXRhbFByZXNzU2NyaXB0
KCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGAKLSAgICAgICAgICAgIChmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIubG9uZ1ByZXNzQXRQb2ludCg2NSwg
MTAwLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51
aVNjcmlwdENvbXBsZXRlKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KSgp
O2AKLSAgICAgICAgfQotICAgIAotICAgICAgICBmdW5jdGlvbiBnZXREcmFnU2NyaXB0KHN0YXJ0
WCwgc3RhcnRZLCBlbmRYLCBlbmRZKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYAot
ICAgICAgICAgICAgKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdmFyIGV2ZW50U3RyZWFtID0g
ewotICAgICAgICAgICAgZXZlbnRzIDogWwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBpbnRlcnBvbGF0ZSA6ICJsaW5lYXIiLAotICAgICAgICAgICAgICAgIHRpbWVzdGVwOiAw
LjEsCi0gICAgICAgICAgICAgICAgY29vcmRpbmF0ZVNwYWNlIDogImNvbnRlbnQiLAotICAgICAg
ICAgICAgICAgIHN0YXJ0RXZlbnQgOiB7Ci0gICAgICAgICAgICAgICAgICAgIGlucHV0VHlwZSA6
ICJoYW5kIiwKLSAgICAgICAgICAgICAgICAgICAgdGltZU9mZnNldCA6IDAsCi0gICAgICAgICAg
ICAgICAgICAgIHRvdWNoZXMgOiBbCi0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBpbnB1dFR5cGUgOiAiZmluZ2VyIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHBoYXNlIDogImJlZ2FuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGlkIDogMSwK
LSAgICAgICAgICAgICAgICAgICAgICAgIHggOiAke3N0YXJ0WH0sCi0gICAgICAgICAgICAgICAg
ICAgICAgICB5IDogJHtzdGFydFl9LAotICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmUg
OiAwCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIF0KLSAg
ICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIGVuZEV2ZW50IDogewotICAgICAgICAg
ICAgICAgICAgICBpbnB1dFR5cGUgOiAiaGFuZCIsCi0gICAgICAgICAgICAgICAgICAgIHRpbWVP
ZmZzZXQgOiAwLjUsCi0gICAgICAgICAgICAgICAgICAgIHRvdWNoZXMgOiBbCi0gICAgICAgICAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFR5cGUgOiAiZmlu
Z2VyIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBoYXNlIDogIm1vdmVkIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGlkIDogMSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHggOiAke2Vu
ZFh9LAotICAgICAgICAgICAgICAgICAgICAgICAgeSA6ICR7ZW5kWX0sCi0gICAgICAgICAgICAg
ICAgICAgICAgICBwcmVzc3VyZSA6IDAKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH1dfTsKLSAg
ICAgICAgICAgICAKLSAgICAgICAgICAgIHVpQ29udHJvbGxlci5zZW5kRXZlbnRTdHJlYW0oSlNP
Ti5zdHJpbmdpZnkoZXZlbnRTdHJlYW0pLCBmdW5jdGlvbigpIHt9KTsKLSAgICAgICAgICAgICAg
ICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOwotICAgICAgICAgICAgfSkoKTtgCi0g
ICAgICAgIH0KICAgICAKICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgICAgIHsKQEAg
LTY5LDQ5ICsxNSw1OSBAQAogICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAg
dmFyIG91dHB1dCA9ICcnOwotICAgICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0YXJnZXQnKTsKLSAgICAgICAgICAgIAorICAgICAgICAgICAgdmFyIGZpcnN0
VGFyZ2V0UmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaXJzdFNlbGVjdGlvbicpLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICAgICAgdmFyIHNlY29uZFRhcmdldFJlY3Qg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vjb25kU2VsZWN0aW9uJykuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk7CisgICAgICAgICAgICB2YXIgdGhpcmRUYXJnZXRSZWN0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RoaXJkU2VsZWN0aW9uJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7
CisgICAgICAgIAorICAgICAgICAgICAgdmFyIHByZXNzUG9pbnRYID0gZmlyc3RUYXJnZXRSZWN0
LngrZmlyc3RUYXJnZXRSZWN0LndpZHRoLzI7CisgICAgICAgICAgICB2YXIgcHJlc3NQb2ludFkg
PSBmaXJzdFRhcmdldFJlY3QueStmaXJzdFRhcmdldFJlY3QuaGVpZ2h0LzI7CisgICAgICAgICAg
ICB2YXIgZHJhZ1kgPSBmaXJzdFRhcmdldFJlY3QueTsKKyAgICAgICAgICAgIHZhciBkcmFnWCA9
IGZpcnN0VGFyZ2V0UmVjdC54OworICAgICAgICAgICAgdmFyIGRyYWdZMiA9IHNlY29uZFRhcmdl
dFJlY3QueTsKKyAgICAgICAgICAgIHZhciBkcmFnWTMgPSB0aGlyZFRhcmdldFJlY3QueTsKKyAg
ICAgICAgICAgIHZhciBkcmFnWTQgPSBmaXJzdFRhcmdldFJlY3QueSArIGZpcnN0VGFyZ2V0UmVj
dC5oZWlnaHQ7CisgICAgICAgIAogICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIucnVuVUlTY3Jp
cHQpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldEluaXRhbFBy
ZXNzU2NyaXB0KCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIucnVuVUlTY3JpcHQobG9uZ1ByZXNzQXRQb2ludChwcmVzc1BvaW50WCwgcHJlc3NQb2ludFkp
LCBmdW5jdGlvbihyZXN1bHQpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50Lmdl
dFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgPT0gIlV0IikKICAgICAgICAgICAgICAgICAgICAgICAg
IG91dHB1dCArPSAnUEFTUzogQ29ycmVjdCBTZWxlY3Rpb24nOwogICAgICAgICAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0
byBzZWxlY3QgYSB3b3JkIGFzIGEgcmVzdWx0IG9mIGEgbG9uZyBwcmVzcyc7CisgICAgICAgICAg
ICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBzZWxlY3QgYSB3b3JkIGFz
IGEgcmVzdWx0IG9mIGEgbG9uZyBwcmVzcy4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3Vt
ZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgICAgIG91dHB1
dCArPSAnPGJyPic7CiAKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlw
dChnZXREcmFnU2NyaXB0KDU2LCA4OSwgNTYsIDc0KSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQodG91Y2hBbmREcmFnRnJvbVBv
aW50VG9Qb2ludChkcmFnWCwgZHJhZ1ksIGRyYWdYLCBkcmFnWTIpLCBmdW5jdGlvbihyZXN1bHQp
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50
b1N0cmluZygpID09ICJlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IikKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IENvcnJlY3QgU2VsZWN0aW9uJzsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
dXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBzZWxlY3QgYWRkaXRpb25hbCBsaW5lIGFmdGVyIGEg
ZHJhZy4nICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhZGRpdGlv
bmFsIGxpbmUgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQu
Z2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1
dCArPSAnPGJyPic7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0RHJhZ1Nj
cmlwdCg1NiwgNzQsIDU2LCA1NSksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIucnVuVUlTY3JpcHQodG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChkcmFnWCwgZHJhZ1ky
LCBkcmFnWCwgZHJhZ1kzKSwgZnVuY3Rpb24ocmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgPT0gIm1vZCB0
ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQiKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IENvcnJlY3Qg
U2VsZWN0aW9uJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBh
ZGRpdGlvbmFsIGxpbmUgYWZ0ZXIgYSBkcmFnLicgKyBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50
b1N0cmluZygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJ
TDogZmFpbGVkIHRvIHNlbGVjdCBhZGRpdGlvbmFsIGxpbmUgYWZ0ZXIgYSBkcmFnLiBJbmNvcnJl
Y3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOwogCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXREcmFnU2NyaXB0KDU2
LCA1NSwgNTYsIDc0KSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCh0b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50
KGRyYWdYLCBkcmFnWTMsIGRyYWdYLCBkcmFnWTIpLCBmdW5jdGlvbihyZXN1bHQpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRv
U3RyaW5nKCkgPT0gImUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQiKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlv
bic7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIGRlc2VsZWN0
IGxpbmUgYWZ0ZXIgYSBkcmFnLicgKyBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZh
aWxlZCB0byBkZXNlbGVjdCBsaW5lIGFmdGVyIGEgZHJhZy4gSW5jb3JyZWN0IFNlbGVjdGlvbjog
JyArIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7CiAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXREcmFnU2NyaXB0KDU2LCA3NCwg
NTYsIDkyKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQodG91Y2hBbmREcmFnRnJvbVBvaW50VG9Qb2ludChk
cmFnWCwgZHJhZ1kyLCBkcmFnWCwgZHJhZ1kpLCBmdW5jdGlvbihyZXN1bHQpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50
b1N0cmluZygpID09ICJVdCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3V0cHV0ICs9ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBmYWlsZWQgdG8gZGVzZWxlY3QgbGluZSBhZnRlciBh
IGRyYWcuJyArIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUw6IGZhaWxlZCB0byBk
ZXNlbGVjdCBsaW5lIGFmdGVyIGEgZHJhZy4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArIGRvY3Vt
ZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvdXRwdXQgKz0gJzxicj4nOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNj
cmlwdChnZXREcmFnU2NyaXB0KDU2LCA5MiwgNTYsIDEyMCksIGZ1bmN0aW9uKHJlc3VsdCkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRvUG9pbnQo
ZHJhZ1gsIGRyYWdZLCBkcmFnWCwgZHJhZ1k0KSwgZnVuY3Rpb24ocmVzdWx0KSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVjdGlv
bigpLnRvU3RyaW5nKCkgPT0gInQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6IENvcnJlY3QgU2VsZWN0aW9uJzsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHJlZHVj
ZSBzZWxlY3Rpb24gdG8gYSBzaW5nbGUgY2hhcmFjdGVyIGJ5IGRyYWdnaW5nIHVwLicKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBm
YWlsZWQgdG8gcmVkdWNlIHNlbGVjdGlvbiB0byBhIHNpbmdsZSBjaGFyYWN0ZXIgYnkgZHJhZ2dp
bmcgZG93bi4gSW5jb3JyZWN0IFNlbGVjdGlvbjogJyArICAgICBkb2N1bWVudC5nZXRTZWxlY3Rp
b24oKS50b1N0cmluZygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG91dHB1dCArPSAnPGJyPic7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3V0cHV0ICs9IHJlc3VsdDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0JykuaW5uZXJIVE1MID0gb3V0cHV0
OwpAQCAtMTMwLDE3ICs4NiwxOSBAQAogICAgIDxzdHlsZT4KICAgICAgICAgI3RhcmdldCB7CiAg
ICAgICAgICAgICBoZWlnaHQ6IDQwMHB4OwotICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAg
ICAgICAgICAgd2lkdGg6IDMwMHB4OwogICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2ls
dmVyOworICAgICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKKyAgICAgICAgICAgIGZv
bnQtc2l6ZTogMThweDsKICAgICAgICAgfQogICAgIDwvc3R5bGU+Ci0gICAgPG1ldGEgbmFtZT0i
dmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MSI+CisgICAgPG1ldGEgbmFtZT0idmll
d3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MS4wIj4KIDwvaGVhZD4KIDxib2R5PgotPGRp
diBpZD0idGFyZ2V0Ij4KLSAgICA8cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2Vj
dGV0dXIgYWRpcGlzY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1
dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0s
IHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVp
cCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJl
aGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQg
bnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJv
aWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQg
ZXN0IGxhYm9ydW0uPC9wPgotCi0gICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2NyaXB0Q29udHJv
bGxlciB0byBydW4uCi08L2Rpdj4KKyAgICA8ZGl2IGlkPSJ0YXJnZXQiPgorICAgICAgICA8cD5M
b3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXI8c3BhbiBpZD0idGhpcmRTZWxl
Y3Rpb24iPjwvc3Bhbj4gYWRpcGlzY2luZyBlbGl0LCBzZWQgZDxzcGFuIGlkPSJzZWNvbmRTZWxl
Y3Rpb24iPjwvc3Bhbj5vIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgPHNwYW4gaWQ9ImZpcnN0
U2VsZWN0aW9uIj51dDwvc3Bhbj4gbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVu
aW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFi
b3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBp
cnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1
bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLjwvcD4KKyAgICAgICAgCisgICAgICAg
IFRoaXMgdGVzdCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8gcnVuLgorICAgIDwvZGl2
PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL2xvbmctcHJlc3MtdG8tc2VsZWN0LWFuZC10YXAtdG8tY2xlYXItZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNz
LXRvLXNlbGVjdC1hbmQtdGFwLXRvLWNsZWFyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIyNjMw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2xvbmctcHJlc3MtdG8tc2Vs
ZWN0LWFuZC10YXAtdG8tY2xlYXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMyBAQAotUEFTUzogU2VsZWN0ZWQ6IFByZXNzTWUKK1BBU1M6IENvcnJlY3QgU2VsZWN0aW9u
CiBQQVNTOiBDbGVhcmVkIHNlbGVjdGlvbgogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3MvbG9uZy1wcmVzcy10by1zZWxlY3QtYW5kLXRhcC10by1jbGVhci5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNz
LXRvLXNlbGVjdC1hbmQtdGFwLXRvLWNsZWFyLmh0bWwJKHJldmlzaW9uIDIyMjYzMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLXRvLXNlbGVjdC1hbmQt
dGFwLXRvLWNsZWFyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsMzEgKzIsMTIgQEAKIAogPGh0
bWw+CiA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Jhc2ljLWdlc3R1cmVzLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0PgogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBn
ZXRQcmVzc1NjcmlwdCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBgCi0gICAgICAg
ICAgICAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLmxvbmdQcmVz
c0F0UG9pbnQoMzAsIDIwLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgdWlDb250
cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgIH0pKCk7YAotICAgICAgICB9Ci0gICAgCi0gICAgICAgIGZ1bmN0aW9uIGdldFRhcFNjcmlw
dCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBgCi0gICAgICAgICAgICAoZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICAgdWlDb250cm9sbGVyLnNpbmdsZVRhcEF0UG9pbnQoMzAsIDIw
LCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29t
cGxldGUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICB9KSgpO2AKLSAgICAg
ICAgfQogICAgIAogICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAgICAgewpAQCAtMzQs
MjQgKzE1LDI2IEBACiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICB2YXIg
b3V0cHV0ID0gJyc7Ci0gICAgICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3RhcmdldCcpOworICAgICAgICAgICAgdmFyIHRhcmdldFJlY3QgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnc2VsZWN0aW9uJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIHZhciBwcmVzc1BvaW50WCA9IHRhcmdldFJlY3QueCt0YXJn
ZXRSZWN0LndpZHRoLzI7CisgICAgICAgICAgICB2YXIgcHJlc3NQb2ludFkgPSB0YXJnZXRSZWN0
LnkrdGFyZ2V0UmVjdC5oZWlnaHQvMjsKKyAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHRl
c3RSdW5uZXIucnVuVUlTY3JpcHQpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJ
U2NyaXB0KGdldFByZXNzU2NyaXB0KCksIGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICAgICAg
ICAgICAgICB2YXIgc2VsZWN0aW9uVGV4dCA9IGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3Ry
aW5nKCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb25UZXh0ID09ICJQcmVzc01l
IikKLSAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogU2VsZWN0ZWQ6ICcg
KyBzZWxlY3Rpb25UZXh0OworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQo
bG9uZ1ByZXNzQXRQb2ludChwcmVzc1BvaW50WCwgcHJlc3NQb2ludFkpLCBmdW5jdGlvbihyZXN1
bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRv
U3RyaW5nKCkgPT0gIlByZXNzTWUiKQorICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9
ICdQQVNTOiBDb3JyZWN0IFNlbGVjdGlvbic7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBh
IHdvcmQgYXMgYSByZXN1bHQgb2YgYSBsb25nIHByZXNzJzsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhIHdvcmQgYXMgYSByZXN1bHQg
b2YgYSBsb25nIHByZXNzLiBJbmNvcnJlY3QgU2VsZWN0aW9uOiAnICsgZG9jdW1lbnQuZ2V0U2Vs
ZWN0aW9uKCkudG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICc8YnI+
JzsKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRUYXBTY3Jp
cHQoKSwgZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgdmFyIHNlY29u
ZFNlbGVjdGlvblRleHQgPSBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOwotICAg
ICAgICAgICAgICAgICAgICAgIGlmIChzZWNvbmRTZWxlY3Rpb25UZXh0ID09ICIiKQorICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KHRhcEF0UG9pbnQoMTAwLCAxMDAp
LCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVu
dC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09ICIiKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG91dHB1dCArPSAnUEFTUzogQ2xlYXJlZCBzZWxlY3Rpb24nOwotICAgICAgICAgICAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZB
SUw6IGZhaWxlZCB0byBjbGVhciBzZWxlY3Rpb24gYWZ0ZXIgdGFwLicKLSAgICAgICAgICAgICAg
ICAgICAgICBvdXRwdXQgKz0gJzxicj4nOwotICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5pbm5lckhUTUwgPSBvdXRwdXQ7Ci0gICAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMOiBm
YWlsZWQgdG8gY2xlYXIgc2VsZWN0aW9uIGFmdGVyIHRhcC4nICsgZG9jdW1lbnQuZ2V0U2VsZWN0
aW9uKCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnPGJy
Pic7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFy
Z2V0JykuaW5uZXJIVE1MID0gb3V0cHV0OworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAg
ICAgIH0pOwogICAgICAgICAgICAgfQpAQCAtNzAsNyArNTMsNyBAQAogPC9oZWFkPgogPGJvZHk+
CiA8ZGl2IGlkPSJ0YXJnZXQiPgotCTxwPlByZXNzTWU8L3A+CisJPHA+PHNwYW4gaWQ9InNlbGVj
dGlvbiI+UHJlc3NNZTwvc3Bhbj48L3A+CiAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2NyaXB0
Q29udHJvbGxlciB0byBydW4uCiA8L2Rpdj4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLXRvLXNlbGVjdC10ZXh0LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1w
cmVzcy10by1zZWxlY3QtdGV4dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMjYzMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLXRvLXNlbGVjdC10ZXh0
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwyICsxLDIgQEAKLVBBU1M6IHN1Y2Nl
c3NmdWxseSBzZWxlY3RlZCB0aGUgd29yZCBQcmVzc01lCi1Eb25lCitQQVNTOiBDb3JyZWN0IFNl
bGVjdGlvbgorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvbG9uZy1w
cmVzcy10by1zZWxlY3QtdGV4dC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNzLXRvLXNlbGVjdC10ZXh0Lmh0bWwJKHJldmlzaW9u
IDIyMjYzMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9sb25nLXByZXNz
LXRvLXNlbGVjdC10ZXh0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsMzcgKzIsMjggQEAKIAog
PGh0bWw+CiA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Jhc2ljLWdlc3R1cmVz
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlv
biBnZXRVSVNjcmlwdCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBgCi0gICAgICAg
ICAgICAoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLmxvbmdQcmVz
c0F0UG9pbnQoMzAsIDIwLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgdWlDb250
cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoIkRvbmUiKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAg
ICAgICAgICAgIH0pKCk7YAotICAgICAgICB9Ci0KICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgp
CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgIHZhciBvdXRwdXQgPSAnJzsKLSAg
ICAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7
Ci0gICAgICAgICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBmdW5jdGlv
bihldmVudCkgewotICAgICAgICAgICAgICAgIG91dHB1dCArPSAnUEFTUzogc3VjY2Vzc2Z1bGx5
IHNlbGVjdGVkIHRoZSB3b3JkICc7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGlmICh0
ZXN0UnVubmVyLnJ1blVJU2NyaXB0KSB7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5V
SVNjcmlwdChnZXRVSVNjcmlwdCgpLCBmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAgICAgICAg
ICAgICAgdmFyIHNlbGVjdGlvblRleHQgPSBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmlu
ZygpOwotICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uVGV4dCAhPT0gIiIpCi0gICAg
ICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gc2VsZWN0aW9uVGV4dDsKKyAgICAgICAgICAg
IHZhciB0YXJnZXRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlbGVjdGlvbicpLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICB2YXIgcHJl
c3NQb2ludFggPSB0YXJnZXRSZWN0LngrdGFyZ2V0UmVjdC53aWR0aC8yOworICAgICAgICAgICAg
dmFyIHByZXNzUG9pbnRZID0gdGFyZ2V0UmVjdC55K3RhcmdldFJlY3QuaGVpZ2h0LzI7CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KSB7ICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQobG9uZ1By
ZXNzQXRQb2ludChwcmVzc1BvaW50WCwgcHJlc3NQb2ludFkpLCBmdW5jdGlvbihyZXN1bHQpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5n
KCkgPT0gIlByZXNzTWUiKQorICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdQQVNT
OiBDb3JyZWN0IFNlbGVjdGlvbic7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTDogZmFpbGVkIHRvIHNlbGVjdCBhIHdvcmQg
YXMgYSByZXN1bHQgb2YgYSBsb25nIHByZXNzJzsKICAgICAgICAgICAgICAgICAgICAgb3V0cHV0
ICs9ICc8YnI+JzsKQEAgLTU2LDcgKzQ3LDcgQEAKIDwvaGVhZD4KIDxib2R5PgogPGRpdiBpZD0i
dGFyZ2V0Ij4KLQk8cD5QcmVzc01lPC9wPgorCTxwPjxzcGFuIGlkPSJzZWxlY3Rpb24iPlByZXNz
TWU8L3NwYW4+PC9wPgogICAgIFRoaXMgdGVzdCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIg
dG8gcnVuLgogPC9kaXY+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9pb3MvcmVzb3VyY2VzL2Jhc2ljLWdlc3R1cmVzLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9yZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMJ
KHJldmlzaW9uIDIyMjYzMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9y
ZXNvdXJjZXMvYmFzaWMtZ2VzdHVyZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBA
Ci1mdW5jdGlvbiBwcmVzc0F0UG9pbnQoeCwgeSkKK2Z1bmN0aW9uIGxvbmdQcmVzc0F0UG9pbnQo
eCwgeSkKIHsKICAgICByZXR1cm4gYAogICAgIChmdW5jdGlvbigpIHsKQEAgLTgsNyArOCwxNyBA
QCBmdW5jdGlvbiBwcmVzc0F0UG9pbnQoeCwgeSkKICAgICB9KSgpO2AKIH0KIAotZnVuY3Rpb24g
ZHJhZ0Zyb21Qb2ludFRvUG9pbnQoc3RhcnRYLCBzdGFydFksIGVuZFgsIGVuZFkpCitmdW5jdGlv
biB0YXBBdFBvaW50KHgsIHkpCit7CisgICAgcmV0dXJuIGAKKyAgICAoZnVuY3Rpb24oKSB7Cisg
ICAgICAgIHVpQ29udHJvbGxlci5zaW5nbGVUYXBBdFBvaW50KCR7eH0sICR7eX0sIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAg
ICAgfSk7CisgICAgfSkoKTtgCit9CisKK2Z1bmN0aW9uIHRvdWNoQW5kRHJhZ0Zyb21Qb2ludFRv
UG9pbnQoc3RhcnRYLCBzdGFydFksIGVuZFgsIGVuZFkpCiB7CiAgICAgcmV0dXJuIGAKICAgICAo
ZnVuY3Rpb24oKSB7Cg==
</data>
<flag name="review"
          id="342066"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>