<?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>185925</bug_id>
          
          <creation_ts>2018-05-23 16:26:38 -0700</creation_ts>
          <short_desc>OSBuildFetcher should respect maxRevision while finding OS builds to report.</short_desc>
          <delta_ts>2018-05-23 17:11:02 -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>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>dewei_zhu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dewei_zhu</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1426772</commentid>
    <comment_count>0</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2018-05-23 16:26:38 -0700</bug_when>
    <thetext>OSBuildFetcher should respect maxRevision while finding OS builds to report.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426791</commentid>
    <comment_count>1</comment_count>
      <attachid>341148</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2018-05-23 16:59:23 -0700</bug_when>
    <thetext>Created attachment 341148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426799</commentid>
    <comment_count>2</comment_count>
      <attachid>341148</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-05-23 17:08:44 -0700</bug_when>
    <thetext>Comment on attachment 341148
Patch

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

&gt; Websites/perf.webkit.org/tools/js/os-build-fetcher.js:101
&gt; -                .filter((commit) =&gt; commit[&apos;order&apos;] &gt; minOrder);
&gt; +                .filter((commit) =&gt; commit[&apos;order&apos;] &gt; minOrder &amp;&amp; commit[&apos;order&apos;] &lt; maxOrder);

It seems that minOrder &amp; maxOrder should be inclusive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426801</commentid>
    <comment_count>3</comment_count>
      <attachid>341148</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2018-05-23 17:11:02 -0700</bug_when>
    <thetext>Comment on attachment 341148
Patch

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

&gt;&gt; Websites/perf.webkit.org/tools/js/os-build-fetcher.js:101
&gt;&gt; +                .filter((commit) =&gt; commit[&apos;order&apos;] &gt; minOrder &amp;&amp; commit[&apos;order&apos;] &lt; maxOrder);
&gt; 
&gt; It seems that minOrder &amp; maxOrder should be inclusive.

For minOrder, it should be exclusive as it is from &apos;last-reported&apos; api and we don&apos;t want to report &apos;last-reported&apos; again. For maxOrder, it could be both either way.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341148</attachid>
            <date>2018-05-23 16:59:23 -0700</date>
            <delta_ts>2018-05-23 17:08:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185925-20180523165922.patch</filename>
            <type>text/plain</type>
            <size>25712</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMTM0CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBiZDViMDI0YzA0M2U5MmM3N2EyYzU0N2M0NjU5MDVjOTE0ZTdjNWRlLi5hZGRlYjZhYjdi
ZDU0MTgzMWZkMDNiN2VkMTA1MjhjOGYxYjNkYjVjIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0wNS0yMyAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBPU0J1aWxkRmV0Y2hlciBzaG91bGQgcmVzcGVjdCBtYXhS
ZXZpc2lvbiB3aGlsZSBmaW5kaW5nIE9TIGJ1aWxkcyB0byByZXBvcnQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODU5MjUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNlcnZlci10ZXN0cy90b29scy1v
cy1idWlsZC1mZXRjaGVyLXRlc3RzLmpzOiBGaXggYSB0eXBvIGluIHRoZSB1bml0IHRlc3RzLgor
ICAgICAgICBBZGRlZCB1bml0IHRlc3RzIGZvciB0aGlzIGNoYW5nZS4gQXNsbyBjb252ZXJ0IGFu
IGV4aXN0aW5nIHRlc3QgdXNpbmcgYXN5bmMuCisgICAgICAgICogdG9vbHMvanMvb3MtYnVpbGQt
ZmV0Y2hlci5qczoKKyAgICAgICAgKHByb3RvdHlwZS5fZmV0Y2hBdmFpbGFibGVCdWlsZHMpOiBJ
dCBzaG91bGQgYWxzbyB1c2UgJ21heFJldmlzaW9uJyB0byBmaWx0ZXIgYnVpbGRzIHRvIGJlIHJl
cG9ydGVkLgorICAgICAgICAocHJvdG90eXBlLl9jb21taXRzRm9yQXZhaWxhYmxlQnVpbGRzKTog
VGFrZXMgbWF4T3JkZXIgYXMgZmlmdGggYXJndW1lbnQuCisKIDIwMTgtMDUtMTAgIERld2VpIFpo
dSAgPGRld2VpX3podUBhcHBsZS5jb20+CiAKICAgICAgICAgQ29tbWl0TG9nVmlld2VyLl9wcmVj
ZWVkaW5nQ29tbWl0IHNob3VsZCBub3QgYWx3YXlzIGJlIG51bGwKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtb3MtYnVpbGQtZmV0Y2hlci10
ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtb3Mt
YnVpbGQtZmV0Y2hlci10ZXN0cy5qcwppbmRleCBkNjVjNmNlMWQ4YzJjMGVjYmQ5MjVmYTIwYjRm
MDNkNjgxM2Q3ZjkxLi5jMDA4YjAwNzQ0OWI5YWRjYjljN2IzOWJhYTUwMzlkODBhNWI2ODk3IDEw
MDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLW9z
LWJ1aWxkLWZldGNoZXItdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy90b29scy1vcy1idWlsZC1mZXRjaGVyLXRlc3RzLmpzCkBAIC03Nyw3ICs3Nyw3
IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgIH07CiAKIAot
ICAgIGNvbnN0IGNvbmZpZ1dpdGhvdXRvd25lZENvbW1pdENvbW1hbmQgPSB7CisgICAgY29uc3Qg
Y29uZmlnV2l0aG91dE93bmVkQ29tbWl0Q29tbWFuZCA9IHsKICAgICAgICAgJ25hbWUnOiAnT1NY
JywKICAgICAgICAgJ2N1c3RvbUNvbW1hbmRzJzogWwogICAgICAgICAgICAgewpAQCAtMTI0LDkg
KzEyNCw5IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogICAgIGRl
c2NyaWJlKCdPU0J1aWxkZXJGZXRjaGVyLl9jb21taXRzRm9yQXZhaWxhYmxlQnVpbGRzJywgKCkg
PT4gewogICAgICAgICBpdCgnc2hvdWxkIG9ubHkgcmV0dXJuIGNvbW1pdHMgd2hvc2Ugb3JkZXJz
IGFyZSBoaWdoZXIgdGhhbiBzcGVjaWZpZWQgb3JkZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBj
b25zdCBsb2dnZXIgPSBuZXcgTW9ja0xvZ2dlcjsKLSAgICAgICAgICAgIGNvbnN0IGZldGNodGVy
ID0gbmV3IE9TQnVpbGRGZXRjaGVyKHt9LCBudWxsLCBudWxsLCBNb2NrU3VicHJvY2VzcywgbG9n
Z2VyKTsKKyAgICAgICAgICAgIGNvbnN0IGZldGNoZXIgPSBuZXcgT1NCdWlsZEZldGNoZXIoe30s
IG51bGwsIG51bGwsIE1vY2tTdWJwcm9jZXNzLCBsb2dnZXIpOwogICAgICAgICAgICAgY29uc3Qg
d2FpdEZvckludm9jYXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRp
b24oKTsKLSAgICAgICAgICAgIGNvbnN0IGZldGNoQ29tbWl0c1Byb21pc2UgPSBmZXRjaHRlci5f
Y29tbWl0c0ZvckF2YWlsYWJsZUJ1aWxkcygnT1NYJywgWydsaXN0JywgJ2J1aWxkMSddLCAnXlxc
LiokJywgMTYwNDAwMDAwMCk7CisgICAgICAgICAgICBjb25zdCBmZXRjaENvbW1pdHNQcm9taXNl
ID0gZmV0Y2hlci5fY29tbWl0c0ZvckF2YWlsYWJsZUJ1aWxkcygnT1NYJywgWydsaXN0JywgJ2J1
aWxkMSddLCAnXlxcLiokJywgMTYwNDAwMDAwMCwgMTYwNjAwMDAwMCk7CiAKICAgICAgICAgICAg
IHJldHVybiB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25zLmxlbmd0aCwgMSk7
CkBAIC0xMzksMTQgKzEzOSwzMSBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlv
bigpIHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdHNbMV0sIHtyZXBv
c2l0b3J5OiAnT1NYJywgb3JkZXI6IDE2MDUwMzIxMDAsIHJldmlzaW9uOiAnMTZGMzIxJ30pOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgb25seSBy
ZXR1cm4gY29tbWl0cyB3aG9zZSBvcmRlcnMgYXJlIGhpZ2hlciB0aGFuIG1pbk9yZGVyIGFuZCBs
b3dlciB0aGFuIHRoZSBtYXhPcmRlcicsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGxvZ2dl
ciA9IG5ldyBNb2NrTG9nZ2VyOworICAgICAgICAgICAgY29uc3QgZmV0Y2hlciA9IG5ldyBPU0J1
aWxkRmV0Y2hlcih7fSwgbnVsbCwgbnVsbCwgTW9ja1N1YnByb2Nlc3MsIGxvZ2dlcik7CisgICAg
ICAgICAgICBjb25zdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53
YWl0Rm9ySW52b2NhdGlvbigpOworICAgICAgICAgICAgY29uc3QgZmV0Y2hDb21taXRzUHJvbWlz
ZSA9IGZldGNoZXIuX2NvbW1pdHNGb3JBdmFpbGFibGVCdWlsZHMoJ09TWCcsIFsnbGlzdCcsICdi
dWlsZDEnXSwgJ15cXC4qJCcsIDE2MDQwMDAwMDAsIDE2MDUwMDAwMDApOworCisgICAgICAgICAg
ICByZXR1cm4gd2FpdEZvckludm9jYXRpb25Qcm9taXNlLnRoZW4oKCkgPT4geworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEp
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1N1YnByb2Nlc3MuaW52b2Nh
dGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2J1aWxkMSddKTsKKyAgICAgICAgICAgICAgICBN
b2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9uc1swXS5yZXNvbHZlKCcxNkQzMjFcbjE2RTMyMXpcblxu
MTZGMzIxJyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZldGNoQ29tbWl0c1Byb21pc2U7Cisg
ICAgICAgICAgICB9KS50aGVuKChyZXN1bHRzKSA9PiB7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdHMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlc3VsdHNbMF0sIHtyZXBvc2l0b3J5OiAnT1NYJywgb3JkZXI6IDE2MDQwMzIxMjYsIHJl
dmlzaW9uOiAnMTZFMzIxeid9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKICAgICB9
KTsKIAogICAgIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlci5fYWRkT3duZWRDb21taXRzRm9yQnVp
bGQnLCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgYWRkIG93bmVkLWNvbW1pdCBpbmZvIGZv
ciBjb21taXRzJywgKCkgPT4gewogICAgICAgICAgICAgY29uc3QgbG9nZ2VyID0gbmV3IE1vY2tM
b2dnZXI7Ci0gICAgICAgICAgICBjb25zdCBmZXRjaHRlciA9IG5ldyBPU0J1aWxkRmV0Y2hlcih7
fSwgbnVsbCwgbnVsbCwgTW9ja1N1YnByb2Nlc3MsIGxvZ2dlcik7CisgICAgICAgICAgICBjb25z
dCBmZXRjaGVyID0gbmV3IE9TQnVpbGRGZXRjaGVyKHt9LCBudWxsLCBudWxsLCBNb2NrU3VicHJv
Y2VzcywgbG9nZ2VyKTsKICAgICAgICAgICAgIGNvbnN0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlz
ZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJbnZvY2F0aW9uKCk7Ci0gICAgICAgICAgICBjb25z
dCBhZGRvd25lZENvbW1pdFByb21pc2UgPSBmZXRjaHRlci5fYWRkT3duZWRDb21taXRzRm9yQnVp
bGQoW29zeENvbW1pdCwgYW5vdGhlck9TWENvbW1pdF0sIFsnb3duZWRDb21taXQnLCAnZm9yJywg
J3JldmlzaW9uJ10pOworICAgICAgICAgICAgY29uc3QgYWRkb3duZWRDb21taXRQcm9taXNlID0g
ZmV0Y2hlci5fYWRkT3duZWRDb21taXRzRm9yQnVpbGQoW29zeENvbW1pdCwgYW5vdGhlck9TWENv
bW1pdF0sIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJ10pOwogCiAgICAgICAgICAg
ICByZXR1cm4gd2FpdEZvckludm9jYXRpb25Qcm9taXNlLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrU3VicHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEp
OwpAQCAtMTcyLDkgKzE4OSw5IEBAIGRlc2NyaWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9u
KCkgewogCiAgICAgICAgIGl0KCdzaG91bGQgZmFpbCBpZiB0aGUgY29tbWFuZCB0byBnZXQgb3du
ZWQtY29tbWl0IGluZm8gZmFpbHMnLCAoKSA9PiB7CiAgICAgICAgICAgICBjb25zdCBsb2dnZXIg
PSBuZXcgTW9ja0xvZ2dlcjsKLSAgICAgICAgICAgIGNvbnN0IGZldGNodGVyID0gbmV3IE9TQnVp
bGRGZXRjaGVyKHt9LCBudWxsLCBudWxsLCBNb2NrU3VicHJvY2VzcywgbG9nZ2VyKTsKKyAgICAg
ICAgICAgIGNvbnN0IGZldGNoZXIgPSBuZXcgT1NCdWlsZEZldGNoZXIoe30sIG51bGwsIG51bGws
IE1vY2tTdWJwcm9jZXNzLCBsb2dnZXIpOwogICAgICAgICAgICAgY29uc3Qgd2FpdEZvckludm9j
YXRpb25Qcm9taXNlID0gTW9ja1N1YnByb2Nlc3Mud2FpdEZvckludm9jYXRpb24oKTsKLSAgICAg
ICAgICAgIGNvbnN0IGFkZG93bmVkQ29tbWl0UHJvbWlzZSA9IGZldGNodGVyLl9hZGRPd25lZENv
bW1pdHNGb3JCdWlsZChbb3N4Q29tbWl0XSwgWydvd25lZENvbW1pdCcsICdmb3InLCAncmV2aXNp
b24nXSkKKyAgICAgICAgICAgIGNvbnN0IGFkZG93bmVkQ29tbWl0UHJvbWlzZSA9IGZldGNoZXIu
X2FkZE93bmVkQ29tbWl0c0ZvckJ1aWxkKFtvc3hDb21taXRdLCBbJ293bmVkQ29tbWl0JywgJ2Zv
cicsICdyZXZpc2lvbiddKQogCiAgICAgICAgICAgICByZXR1cm4gd2FpdEZvckludm9jYXRpb25Q
cm9taXNlLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrU3Vi
cHJvY2Vzcy5pbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwpAQCAtMTkzLDkgKzIxMCw5IEBAIGRlc2Ny
aWJlKCdPU0J1aWxkRmV0Y2hlcicsIGZ1bmN0aW9uKCkgewogCiAgICAgICAgIGl0KCdzaG91bGQg
ZmFpbCBpZiBlbnRyaWVzIGluIG93bmVkLWNvbW1pdHMgZG9lcyBub3QgY29udGFpbiByZXZpc2lv
bicsICgpID0+IHsKICAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOwot
ICAgICAgICAgICAgY29uc3QgZmV0Y2h0ZXIgPSBuZXcgT1NCdWlsZEZldGNoZXIoe30sIG51bGws
IG51bGwsIE1vY2tTdWJwcm9jZXNzLCBsb2dnZXIpOworICAgICAgICAgICAgY29uc3QgZmV0Y2hl
ciA9IG5ldyBPU0J1aWxkRmV0Y2hlcih7fSwgbnVsbCwgbnVsbCwgTW9ja1N1YnByb2Nlc3MsIGxv
Z2dlcik7CiAgICAgICAgICAgICBjb25zdCB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UgPSBNb2Nr
U3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwotICAgICAgICAgICAgY29uc3QgYWRkb3du
ZWRDb21taXRQcm9taXNlID0gZmV0Y2h0ZXIuX2FkZE93bmVkQ29tbWl0c0ZvckJ1aWxkKFtvc3hD
b21taXRdLCBbJ293bmVkQ29tbWl0JywgJ2ZvcicsICdyZXZpc2lvbiddKQorICAgICAgICAgICAg
Y29uc3QgYWRkb3duZWRDb21taXRQcm9taXNlID0gZmV0Y2hlci5fYWRkT3duZWRDb21taXRzRm9y
QnVpbGQoW29zeENvbW1pdF0sIFsnb3duZWRDb21taXQnLCAnZm9yJywgJ3JldmlzaW9uJ10pCiAK
ICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9ySW52b2NhdGlvblByb21pc2UudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tTdWJwcm9jZXNzLmludm9jYXRpb25z
Lmxlbmd0aCwgMSk7CkBAIC0yMjUsNyArMjQyLDcgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVy
JywgZnVuY3Rpb24oKSB7CiAKICAgICAgICAgaXQoJ3Nob3VsZCByZXBvcnQgYWxsIGJ1aWxkIGNv
bW1pdHMgd2l0aCBvd25lZC1jb21taXRzJywgKCkgPT4gewogICAgICAgICAgICAgY29uc3QgbG9n
Z2VyID0gbmV3IE1vY2tMb2dnZXI7Ci0gICAgICAgICAgICBjb25zdCBmZXRjaHRlciA9IG5ldyBP
U0J1aWxkRmV0Y2hlcihjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIHNsYXZlQXV0aCwg
TW9ja1N1YnByb2Nlc3MsIGxvZ2dlcik7CisgICAgICAgICAgICBjb25zdCBmZXRjaGVyID0gbmV3
IE9TQnVpbGRGZXRjaGVyKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgc2xhdmVBdXRo
LCBNb2NrU3VicHJvY2VzcywgbG9nZ2VyKTsKICAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNl
cnZlci5kYXRhYmFzZSgpOwogICAgICAgICAgICAgbGV0IGZldGNoQW5kUmVwb3J0UHJvbWlzZSA9
IG51bGw7CiAgICAgICAgICAgICBsZXQgZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlID0gbnVs
bDsKQEAgLTI1MSw3ICsyNjgsNyBAQCBkZXNjcmliZSgnT1NCdWlsZEZldGNoZXInLCBmdW5jdGlv
bigpIHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1b
J3JldmlzaW9uJ10sICdTaWVycmExNkUzM2cnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDcpOwogICAgICAgICAg
ICAgICAgIGNvbnN0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndh
aXRGb3JJbnZvY2F0aW9uKCk7Ci0gICAgICAgICAgICAgICAgZmV0Y2hBdmFpbGFibGVCdWlsZHNQ
cm9taXNlID0gZmV0Y2h0ZXIuX2ZldGNoQXZhaWxhYmxlQnVpbGRzKCk7CisgICAgICAgICAgICAg
ICAgZmV0Y2hBdmFpbGFibGVCdWlsZHNQcm9taXNlID0gZmV0Y2hlci5fZmV0Y2hBdmFpbGFibGVC
dWlsZHMoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gd2FpdEZvckludm9jYXRpb25Qcm9taXNl
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CkBAIC0yODEsNyArMjk4LDcgQEAgZGVzY3JpYmUo
J09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB9KS50aGVuKChyZXN1
bHRzKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdHMubGVuZ3RoLCAz
KTsKICAgICAgICAgICAgICAgICBNb2NrU3VicHJvY2Vzcy5yZXNldCgpOwotICAgICAgICAgICAg
ICAgIGZldGNoQW5kUmVwb3J0UHJvbWlzZSA9IGZldGNodGVyLmZldGNoQW5kUmVwb3J0TmV3QnVp
bGRzKCk7CisgICAgICAgICAgICAgICAgZmV0Y2hBbmRSZXBvcnRQcm9taXNlID0gZmV0Y2hlci5m
ZXRjaEFuZFJlcG9ydE5ld0J1aWxkcygpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrU3Vi
cHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7CkBA
IC0zNTUsOTQgKzM3MiwxNjYgQEAgZGVzY3JpYmUoJ09TQnVpbGRGZXRjaGVyJywgZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgaXQoJ3Nob3VsZCBy
ZXBvcnQgY29tbWl0cyB3aXRob3V0IG93bmVkLWNvbW1pdHMgaWYgIm93bmVkQ29tbWl0Q29tbWFu
ZCIgaXMgbm90IHNwZWNpZmllZCBpbiBjb25maWcnLCAoKSA9PiB7CisgICAgICAgIGl0KCdzaG91
bGQgcmVwb3J0IGNvbW1pdHMgd2l0aG91dCBvd25lZC1jb21taXRzIGlmICJvd25lZENvbW1pdENv
bW1hbmQiIGlzIG5vdCBzcGVjaWZpZWQgaW4gY29uZmlnJywgYXN5bmMgKCkgPT4geworCiAgICAg
ICAgICAgICBjb25zdCBsb2dnZXIgPSBuZXcgTW9ja0xvZ2dlcjsKLSAgICAgICAgICAgIGNvbnN0
IGZldGNodGVyID0gbmV3IE9TQnVpbGRGZXRjaGVyKGNvbmZpZ1dpdGhvdXRvd25lZENvbW1pdENv
bW1hbmQsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIHNsYXZlQXV0aCwgTW9ja1N1YnByb2Nlc3Ms
IGxvZ2dlcik7CisgICAgICAgICAgICBjb25zdCBmZXRjaGVyID0gbmV3IE9TQnVpbGRGZXRjaGVy
KGNvbmZpZ1dpdGhvdXRPd25lZENvbW1pdENvbW1hbmQsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCks
IHNsYXZlQXV0aCwgTW9ja1N1YnByb2Nlc3MsIGxvZ2dlcik7CiAgICAgICAgICAgICBjb25zdCBk
YiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKLSAgICAgICAgICAgIGxldCBmZXRjaEFuZFJlcG9y
dFByb21pc2UgPSBudWxsOwotICAgICAgICAgICAgbGV0IGZldGNoQXZhaWxhYmxlQnVpbGRzUHJv
bWlzZSA9IG51bGw7Ci0KLSAgICAgICAgICAgIHJldHVybiBhZGRTbGF2ZUZvclJlcG9ydChlbXB0
eVJlcG9ydCkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxs
KFsKLSAgICAgICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7J2lkJzog
MTAsICduYW1lJzogJ09TWCd9KSwKLSAgICAgICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21t
aXRzJywgeydyZXBvc2l0b3J5JzogMTAsICdyZXZpc2lvbic6ICdTaWVycmExNkQ2NycsICdvcmRl
cic6IDE2MDMwMDY3MDAsICdyZXBvcnRlZCc6IHRydWV9KSwKLSAgICAgICAgICAgICAgICAgICAg
ZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMTAsICdyZXZpc2lvbic6ICdTaWVy
cmExNkQ2OCcsICdvcmRlcic6IDE2MDMwMDY4MDAsICdyZXBvcnRlZCc6IHRydWV9KSwKLSAgICAg
ICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMTAsICdy
ZXZpc2lvbic6ICdTaWVycmExNkQ2OScsICdvcmRlcic6IDE2MDMwMDY5MDAsICdyZXBvcnRlZCc6
IGZhbHNlfSksCi0gICAgICAgICAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0cycsIHsncmVw
b3NpdG9yeSc6IDEwLCAncmV2aXNpb24nOiAnU2llcnJhMTZFMzInLCAnb3JkZXInOiAxNjA0MDAz
MjAwLCAncmVwb3J0ZWQnOiB0cnVlfSksCi0gICAgICAgICAgICAgICAgICAgIGRiLmluc2VydCgn
Y29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEwLCAncmV2aXNpb24nOiAnU2llcnJhMTZFMzMnLCAn
b3JkZXInOiAxNjA0MDAzMzAwLCAncmVwb3J0ZWQnOiB0cnVlfSksCi0gICAgICAgICAgICAgICAg
ICAgIGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEwLCAncmV2aXNpb24nOiAn
U2llcnJhMTZFMzNnJywgJ29yZGVyJzogMTYwNDAwMzMwNywgJ3JlcG9ydGVkJzogdHJ1ZX0pXSk7
Ci0gICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICByZXR1cm4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0
ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKLSAgICAgICAgICAgIH0pLnRoZW4o
KHJlc3VsdCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXS5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjAzMDA2ODAwKTsK
LQotICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04o
Jy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5
OTkwMCcpOwotICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2ll
cnJhMTZFMzNnJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0
cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKLSAgICAgICAgICAgICAgICBjb25zdCB3YWl0
Rm9ySW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigp
OwotICAgICAgICAgICAgICAgIGZldGNoQW5kUmVwb3J0UHJvbWlzZSA9IGZldGNodGVyLmZldGNo
QW5kUmVwb3J0TmV3QnVpbGRzKCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JJbnZv
Y2F0aW9uUHJvbWlzZTsKLSAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBv
c3ggMTZEeHggYnVpbGRzJ10pOwotICAgICAgICAgICAgICAgIGludm9jYXRpb25zWzBdLnJlc29s
dmUoJ1xuXG5TaWVycmExNkQ2OFxuU2llcnJhMTZENjlcbicpOwotICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZvY2F0aW9uKCk7Ci0gICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2Nh
dGlvbnMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9j
YXRpb25zWzBdLmNvbW1hbmQsIFsnbGlzdCcsICdhbGwgb3N4IDE2RXh4IGJ1aWxkcyddKTsKLSAg
ICAgICAgICAgICAgICBpbnZvY2F0aW9uc1swXS5yZXNvbHZlKCdcblxuU2llcnJhMTZFMzJcblNp
ZXJyYTE2RTMzXG5TaWVycmExNkUzM2hcblNpZXJyYTE2RTM0Jyk7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIGZldGNoQW5kUmVwb3J0UHJvbWlzZTsKLSAgICAgICAgICAgIH0pLnRoZW4oKHJlc3Vs
dCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAn
T0snKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoWwotICAgICAgICAgICAg
ICAgICAgICBkYi5zZWxlY3RSb3dzKCdyZXBvc2l0b3JpZXMnLCB7J25hbWUnOiAnV2ViS2l0J30p
LAotICAgICAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdyZXBvc2l0b3JpZXMnLCB7J25h
bWUnOiAnSmF2YVNjcmlwdENvcmUnfSksCi0gICAgICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJv
d3MoJ2NvbW1pdHMnLCB7J3JldmlzaW9uJzogJ1NpZXJyYTE2RDY5J30pLAotICAgICAgICAgICAg
ICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydyZXZpc2lvbic6ICdTaWVycmExNkUz
M2gnfSksCi0gICAgICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J3Jl
dmlzaW9uJzogJ1NpZXJyYTE2RTM0J30pXSk7Ci0gICAgICAgICAgICB9KS50aGVuKChyZXN1bHRz
KSA9PiB7Ci0gICAgICAgICAgICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9yeSA9IHJlc3VsdHNb
MF07Ci0gICAgICAgICAgICAgICAgY29uc3QganNjUmVwb3NpdG9yeSA9IHJlc3VsdHNbMV07Ci0g
ICAgICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZENjkgPSByZXN1bHRzWzJdOwotICAgICAg
ICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RTMzaCA9IHJlc3VsdHNbM107Ci0gICAgICAgICAg
ICAgICAgY29uc3Qgb3N4Q29tbWl0MTZFMzQgPSByZXN1bHRzWzRdOwotCi0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAwKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoanNjUmVwb3NpdG9yeS5sZW5ndGgsIDApOwotCi0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZENjlbMF1bJ29yZGVyJ10s
IDE2MDMwMDY5MDApOwogCi0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2
RTMzaC5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQx
NkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQxNkUzM2hbMF1bJ29yZGVyJ10sIDE2MDQwMDMzMDgpOwotCi0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEwKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3N4Q29tbWl0MTZFMzRbMF1bJ29yZGVyJ10s
IDE2MDQwMDM0MDApOworICAgICAgICAgICAgYXdhaXQgYWRkU2xhdmVGb3JSZXBvcnQoZW1wdHlS
ZXBvcnQpOworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAg
IGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywgeydpZCc6IDEwLCAnbmFtZSc6ICdPU1gnfSksCisg
ICAgICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMTAsICdy
ZXZpc2lvbic6ICdTaWVycmExNkQ2NycsICdvcmRlcic6IDE2MDMwMDY3MDAsICdyZXBvcnRlZCc6
IHRydWV9KSwKKyAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRv
cnknOiAxMCwgJ3JldmlzaW9uJzogJ1NpZXJyYTE2RDY4JywgJ29yZGVyJzogMTYwMzAwNjgwMCwg
J3JlcG9ydGVkJzogdHJ1ZX0pLAorICAgICAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0cycs
IHsncmVwb3NpdG9yeSc6IDEwLCAncmV2aXNpb24nOiAnU2llcnJhMTZENjknLCAnb3JkZXInOiAx
NjAzMDA2OTAwLCAncmVwb3J0ZWQnOiBmYWxzZX0pLAorICAgICAgICAgICAgICAgIGRiLmluc2Vy
dCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEwLCAncmV2aXNpb24nOiAnU2llcnJhMTZFMzIn
LCAnb3JkZXInOiAxNjA0MDAzMjAwLCAncmVwb3J0ZWQnOiB0cnVlfSksCisgICAgICAgICAgICAg
ICAgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMTAsICdyZXZpc2lvbic6ICdT
aWVycmExNkUzMycsICdvcmRlcic6IDE2MDQwMDMzMDAsICdyZXBvcnRlZCc6IHRydWV9KSwKKyAg
ICAgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnknOiAxMCwgJ3Jl
dmlzaW9uJzogJ1NpZXJyYTE2RTMzZycsICdvcmRlcic6IDE2MDQwMDMzMDcsICdyZXBvcnRlZCc6
IHRydWV9KV0pOworCisgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0x
NjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjgnKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwMzAwNjgwMCk7
CisKKyAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0x
NjA0MDk5OTAwJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10u
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTMzZycpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlc3VsdFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKKyAgICAgICAgICAg
IGNvbnN0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJ
bnZvY2F0aW9uKCk7CisgICAgICAgICAgICBjb25zdCBmZXRjaEFuZFJlcG9ydFByb21pc2UgPSBm
ZXRjaGVyLmZldGNoQW5kUmVwb3J0TmV3QnVpbGRzKCk7CisgICAgICAgICAgICBhd2FpdCB3YWl0
Rm9ySW52b2NhdGlvblByb21pc2U7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlv
bnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNb
MF0uY29tbWFuZCwgWydsaXN0JywgJ2FsbCBvc3ggMTZEeHggYnVpbGRzJ10pOworICAgICAgICAg
ICAgaW52b2NhdGlvbnNbMF0ucmVzb2x2ZSgnXG5cblNpZXJyYTE2RDY4XG5TaWVycmExNkQ2OScp
OworCisgICAgICAgICAgICBhd2FpdCBNb2NrU3VicHJvY2Vzcy5yZXNldEFuZFdhaXRGb3JJbnZv
Y2F0aW9uKCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoaW52b2NhdGlvbnMubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoaW52b2NhdGlvbnNbMF0uY29tbWFuZCwg
WydsaXN0JywgJ2FsbCBvc3ggMTZFeHggYnVpbGRzJ10pOworICAgICAgICAgICAgaW52b2NhdGlv
bnNbMF0ucmVzb2x2ZSgnXG5cblNpZXJyYTE2RTMyXG5TaWVycmExNkUzM1xuU2llcnJhMTZFMzNo
XG5TaWVycmExNkUzNCcpOworCisgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBmZXRjaEFuZFJl
cG9ydFByb21pc2U7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0WydzdGF0dXMnXSwg
J09LJyk7CisgICAgICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoWwor
ICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJvd3MoJ3JlcG9zaXRvcmllcycsIHsnbmFtZSc6ICdX
ZWJLaXQnfSksCisgICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93cygncmVwb3NpdG9yaWVzJywg
eyduYW1lJzogJ0phdmFTY3JpcHRDb3JlJ30pLAorICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJv
d3MoJ2NvbW1pdHMnLCB7J3JldmlzaW9uJzogJ1NpZXJyYTE2RDY5J30pLAorICAgICAgICAgICAg
ICAgIGRiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J3JldmlzaW9uJzogJ1NpZXJyYTE2RTMzaCd9
KSwKKyAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21taXRzJywgeydyZXZpc2lvbic6
ICdTaWVycmExNkUzNCd9KV0pOworCisgICAgICAgICAgICBjb25zdCB3ZWJraXRSZXBvc2l0b3J5
ID0gcmVzdWx0c1swXTsKKyAgICAgICAgICAgIGNvbnN0IGpzY1JlcG9zaXRvcnkgPSByZXN1bHRz
WzFdOworICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZENjkgPSByZXN1bHRzWzJdOworICAg
ICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZFMzNoID0gcmVzdWx0c1szXTsKKyAgICAgICAgICAg
IGNvbnN0IG9zeENvbW1pdDE2RTM0ID0gcmVzdWx0c1s0XTsKKworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAwKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9z
eENvbW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvc3hDb21taXQxNkQ2OVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7CisKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3RoLCAxKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9zaXRvcnknXSwgMTApOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFswXVsnb3JkZXInXSwgMTYwNDAw
MzMwOCk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNC5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTM0WzBdWydyZXBvc2l0
b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzNFswXVsn
b3JkZXInXSwgMTYwNDAwMzQwMCk7CisKKworICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1pdHMvT1NYL2xhc3QtcmVwb3J0
ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAnU2llcnJhMTZENjknKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYw
MzAwNjkwMCk7CisKKyAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAw
MDAwMCZ0bz0xNjA0MDk5OTAwJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydj
b21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2Nv
bW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDQwMDM0MDApOworICAg
ICAgICB9KTsKIAotICAgICAgICAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LmdldEpTT04oJy9hcGkvY29tbWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDMwMDAwMDAm
dG89MTYwMzA5OTkwMCcpOwotICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lv
biddLCAnU2llcnJhMTZENjknKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY5MDApOworICAgICAgICBpdCgnc2hvdWxk
IHJlcG9ydCBjb21taXRzIHdpdGhpbiBzcGVjaWZpZWQgcmV2aXNpb24gcmFuZ2UnLCBhc3luYyAo
KSA9PiB7CisgICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBuZXcgTW9ja0xvZ2dlcjsKKyAgICAg
ICAgICAgIGNvbnN0IGZldGNoZXIgPSBuZXcgT1NCdWlsZEZldGNoZXIoY29uZmlnV2l0aG91dE93
bmVkQ29tbWl0Q29tbWFuZCwgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgc2xhdmVBdXRoLCBNb2Nr
U3VicHJvY2VzcywgbG9nZ2VyKTsKKyAgICAgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5k
YXRhYmFzZSgpOwogCi0gICAgICAgICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwNDAwMDAw
MCZ0bz0xNjA0MDk5OTAwJyk7Ci0gICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3Jldmlz
aW9uJ10sICdTaWVycmExNkUzNCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHRbJ2NvbW1pdHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7Ci0gICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZlRm9yUmVwb3J0KGVtcHR5UmVwb3J0KTsKKyAgICAg
ICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ3Jl
cG9zaXRvcmllcycsIHsnaWQnOiAxMCwgJ25hbWUnOiAnT1NYJ30pLAorICAgICAgICAgICAgICAg
IGRiLmluc2VydCgnY29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEwLCAncmV2aXNpb24nOiAnU2ll
cnJhMTZENjcnLCAnb3JkZXInOiAxNjAzMDA2NzAwLCAncmVwb3J0ZWQnOiB0cnVlfSksCisgICAg
ICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMTAsICdyZXZp
c2lvbic6ICdTaWVycmExNkQ2OCcsICdvcmRlcic6IDE2MDMwMDY4MDAsICdyZXBvcnRlZCc6IHRy
dWV9KSwKKyAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7J3JlcG9zaXRvcnkn
OiAxMCwgJ3JldmlzaW9uJzogJ1NpZXJyYTE2RDY5JywgJ29yZGVyJzogMTYwMzAwNjkwMCwgJ3Jl
cG9ydGVkJzogZmFsc2V9KSwKKyAgICAgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7
J3JlcG9zaXRvcnknOiAxMCwgJ3JldmlzaW9uJzogJ1NpZXJyYTE2RTMyJywgJ29yZGVyJzogMTYw
NDAwMzIwMCwgJ3JlcG9ydGVkJzogdHJ1ZX0pLAorICAgICAgICAgICAgICAgIGRiLmluc2VydCgn
Y29tbWl0cycsIHsncmVwb3NpdG9yeSc6IDEwLCAncmV2aXNpb24nOiAnU2llcnJhMTZFMzMnLCAn
b3JkZXInOiAxNjA0MDAzMzAwLCAncmVwb3J0ZWQnOiB0cnVlfSksCisgICAgICAgICAgICAgICAg
ZGIuaW5zZXJ0KCdjb21taXRzJywgeydyZXBvc2l0b3J5JzogMTAsICdyZXZpc2lvbic6ICdTaWVy
cmExNkUzM2cnLCAnb3JkZXInOiAxNjA0MDAzMzA3LCAncmVwb3J0ZWQnOiB0cnVlfSldKTsKKwor
ICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0
SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJlcG9ydGVkP2Zyb209MTYwMzAwMDAwMCZ0bz0x
NjAzMDk5OTAwJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10u
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVsw
XVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RDY4Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10sIDE2MDMwMDY4MDApOworCisgICAgICAgICAg
ICByZXN1bHQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvY29t
bWl0cy9PU1gvbGFzdC1yZXBvcnRlZD9mcm9tPTE2MDQwMDAwMDAmdG89MTYwNDA5OTkwMCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddLmxlbmd0aCwgMSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ3JldmlzaW9uJ10s
ICdTaWVycmExNkUzM2cnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1p
dHMnXVswXVsnb3JkZXInXSwgMTYwNDAwMzMwNyk7CisgICAgICAgICAgICBjb25zdCB3YWl0Rm9y
SW52b2NhdGlvblByb21pc2UgPSBNb2NrU3VicHJvY2Vzcy53YWl0Rm9ySW52b2NhdGlvbigpOwor
ICAgICAgICAgICAgY29uc3QgZmV0Y2hBbmRSZXBvcnRQcm9taXNlID0gZmV0Y2hlci5mZXRjaEFu
ZFJlcG9ydE5ld0J1aWxkcygpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvckludm9jYXRpb25Q
cm9taXNlOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGludm9jYXRpb25zLmxlbmd0aCwgMSk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGludm9jYXRpb25zWzBdLmNvbW1hbmQsIFsn
bGlzdCcsICdhbGwgb3N4IDE2RHh4IGJ1aWxkcyddKTsKKyAgICAgICAgICAgIGludm9jYXRpb25z
WzBdLnJlc29sdmUoJ1xuXG5TaWVycmExNkQ2OFxuU2llcnJhMTZENjlcblNpZXJyYTE2RDEwMDAw
Jyk7CisKKyAgICAgICAgICAgIGF3YWl0IE1vY2tTdWJwcm9jZXNzLnJlc2V0QW5kV2FpdEZvcklu
dm9jYXRpb24oKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9ucy5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChpbnZvY2F0aW9uc1swXS5jb21tYW5k
LCBbJ2xpc3QnLCAnYWxsIG9zeCAxNkV4eCBidWlsZHMnXSk7CisgICAgICAgICAgICBpbnZvY2F0
aW9uc1swXS5yZXNvbHZlKCdcblxuU2llcnJhMTZFMzJcblNpZXJyYTE2RTMzXG5TaWVycmExNkUz
M2hcblNpZXJyYTE2RTM0XG5TaWVycmExNkUxMDAwMCcpOworCisgICAgICAgICAgICByZXN1bHQg
PSBhd2FpdCBmZXRjaEFuZFJlcG9ydFByb21pc2U7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVzdWx0WydzdGF0dXMnXSwgJ09LJyk7CisgICAgICAgICAgICBjb25zdCByZXN1bHRzID0gYXdh
aXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJvd3MoJ3JlcG9zaXRv
cmllcycsIHsnbmFtZSc6ICdXZWJLaXQnfSksCisgICAgICAgICAgICAgICAgZGIuc2VsZWN0Um93
cygncmVwb3NpdG9yaWVzJywgeyduYW1lJzogJ0phdmFTY3JpcHRDb3JlJ30pLAorICAgICAgICAg
ICAgICAgIGRiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J3JldmlzaW9uJzogJ1NpZXJyYTE2RDY5
J30pLAorICAgICAgICAgICAgICAgIGRiLnNlbGVjdFJvd3MoJ2NvbW1pdHMnLCB7J3JldmlzaW9u
JzogJ1NpZXJyYTE2RTMzaCd9KSwKKyAgICAgICAgICAgICAgICBkYi5zZWxlY3RSb3dzKCdjb21t
aXRzJywgeydyZXZpc2lvbic6ICdTaWVycmExNkUzNCd9KV0pOworCisgICAgICAgICAgICBjb25z
dCB3ZWJraXRSZXBvc2l0b3J5ID0gcmVzdWx0c1swXTsKKyAgICAgICAgICAgIGNvbnN0IGpzY1Jl
cG9zaXRvcnkgPSByZXN1bHRzWzFdOworICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZENjkg
PSByZXN1bHRzWzJdOworICAgICAgICAgICAgY29uc3Qgb3N4Q29tbWl0MTZFMzNoID0gcmVzdWx0
c1szXTsKKyAgICAgICAgICAgIGNvbnN0IG9zeENvbW1pdDE2RTM0ID0gcmVzdWx0c1s0XTsKKwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHdlYmtpdFJlcG9zaXRvcnkubGVuZ3RoLCAwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChqc2NSZXBvc2l0b3J5Lmxlbmd0aCwgMCk7CisKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OS5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RDY5WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkQ2OVswXVsnb3JkZXInXSwgMTYwMzAw
NjkwMCk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2gubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hDb21taXQxNkUzM2hbMF1bJ3JlcG9z
aXRvcnknXSwgMTApOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1pdDE2RTMzaFsw
XVsnb3JkZXInXSwgMTYwNDAwMzMwOCk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvc3hD
b21taXQxNkUzNC5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG9zeENvbW1p
dDE2RTM0WzBdWydyZXBvc2l0b3J5J10sIDEwKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
c3hDb21taXQxNkUzNFswXVsnb3JkZXInXSwgMTYwNDAwMzQwMCk7CisKKworICAgICAgICAgICAg
cmVzdWx0ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OKCcvYXBpL2NvbW1p
dHMvT1NYL2xhc3QtcmVwb3J0ZWQ/ZnJvbT0xNjAzMDAwMDAwJnRvPTE2MDMwOTk5MDAnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXS5sZW5ndGgsIDEpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdFsnY29tbWl0cyddWzBdWydyZXZpc2lvbiddLCAn
U2llcnJhMTZENjknKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMn
XVswXVsnb3JkZXInXSwgMTYwMzAwNjkwMCk7CisKKyAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTignL2FwaS9jb21taXRzL09TWC9sYXN0LXJl
cG9ydGVkP2Zyb209MTYwNDAwMDAwMCZ0bz0xNjA0MDk5OTAwJyk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSwgJ1NpZXJyYTE2RTM0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0Wydjb21taXRzJ11bMF1bJ29yZGVyJ10s
IDE2MDQwMDM0MDApOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHN0b3AgcmVw
b3J0aW5nIGlmIGFueSBjdXN0b20gY29tbWFuZCBmYWlscycsICgpID0+IHsKICAgICAgICAgICAg
IGNvbnN0IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOwotICAgICAgICAgICAgY29uc3QgZmV0Y2h0
ZXIgPSBuZXcgT1NCdWlsZEZldGNoZXIoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBz
bGF2ZUF1dGgsIE1vY2tTdWJwcm9jZXNzLCBsb2dnZXIpOworICAgICAgICAgICAgY29uc3QgZmV0
Y2hlciA9IG5ldyBPU0J1aWxkRmV0Y2hlcihjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCks
IHNsYXZlQXV0aCwgTW9ja1N1YnByb2Nlc3MsIGxvZ2dlcik7CiAgICAgICAgICAgICBjb25zdCBk
YiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKICAgICAgICAgICAgIGxldCBmZXRjaEFuZFJlcG9y
dFByb21pc2UgPSBudWxsOwogCkBAIC00NjksNyArNTU4LDcgQEAgZGVzY3JpYmUoJ09TQnVpbGRG
ZXRjaGVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3Vs
dFsnY29tbWl0cyddWzBdWydvcmRlciddLCAxNjA0MDAzMzA3KTsKIAogICAgICAgICAgICAgICAg
IGNvbnN0IHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZSA9IE1vY2tTdWJwcm9jZXNzLndhaXRGb3JJ
bnZvY2F0aW9uKCk7Ci0gICAgICAgICAgICAgICAgZmV0Y2hBbmRSZXBvcnRQcm9taXNlID0gZmV0
Y2h0ZXIuZmV0Y2hBbmRSZXBvcnROZXdCdWlsZHMoKTsKKyAgICAgICAgICAgICAgICBmZXRjaEFu
ZFJlcG9ydFByb21pc2UgPSBmZXRjaGVyLmZldGNoQW5kUmVwb3J0TmV3QnVpbGRzKCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JJbnZvY2F0aW9uUHJvbWlzZTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChpbnZvY2F0aW9u
cy5sZW5ndGgsIDEpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xz
L2pzL29zLWJ1aWxkLWZldGNoZXIuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMv
anMvb3MtYnVpbGQtZmV0Y2hlci5qcwppbmRleCAzYjc5NWEzZjI0MzVkN2Q2MmJhZTdkMTRlZTc4
Y2JhMDVjNmNmNjNlLi45NGE5YzI2N2U2YjQwZTRiMTMxY2U2ZDRmYjBiZDlkNjExNjg4NmVjIDEw
MDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvb3MtYnVpbGQtZmV0
Y2hlci5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvb3MtYnVpbGQt
ZmV0Y2hlci5qcwpAQCAtNjIsNyArNjIsNyBAQCBjbGFzcyBPU0J1aWxkRmV0Y2hlciB7CiAKICAg
ICAgICAgICAgIHJldHVybiB0aGlzLl9yZW1vdGVBUEkuZ2V0SlNPTldpdGhTdGF0dXModXJsKS50
aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBtaW5PcmRlciA9IHJlc3Vs
dFsnY29tbWl0cyddLmxlbmd0aCA9PSAxID8gcGFyc2VJbnQocmVzdWx0Wydjb21taXRzJ11bMF1b
J29yZGVyJ10pIDogMDsKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fY29tbWl0c0ZvckF2
YWlsYWJsZUJ1aWxkcyhyZXBvc2l0b3J5TmFtZSwgY29tbWFuZFsnY29tbWFuZCddLCBjb21tYW5k
WydsaW5lc1RvSWdub3JlJ10sIG1pbk9yZGVyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhp
cy5fY29tbWl0c0ZvckF2YWlsYWJsZUJ1aWxkcyhyZXBvc2l0b3J5TmFtZSwgY29tbWFuZFsnY29t
bWFuZCddLCBjb21tYW5kWydsaW5lc1RvSWdub3JlJ10sIG1pbk9yZGVyLCBtYXhSZXZpc2lvbk9y
ZGVyKTsKICAgICAgICAgICAgIH0pLnRoZW4oKGNvbW1pdHMpID0+IHsKICAgICAgICAgICAgICAg
ICBjb25zdCBsYWJlbCA9ICduYW1lJyBpbiBjb21tYW5kID8gYCIke2NvbW1hbmRbJ25hbWUnXX0i
YCA6IGAiJHtjb21tYW5kWydtaW5SZXZpc2lvbiddfSIgdG8gIiR7Y29tbWFuZFsnbWF4UmV2aXNp
b24nXX0iYDsKICAgICAgICAgICAgICAgICB0aGlzLl9sb2dnZXIubG9nKGBGb3VuZCAke2NvbW1p
dHMubGVuZ3RofSBidWlsZHMgZm9yICR7bGFiZWx9YCk7CkBAIC04OSw3ICs4OSw3IEBAIGNsYXNz
IE9TQnVpbGRGZXRjaGVyIHsKICAgICAgICAgcmV0dXJuICgobWFqb3IgKiAxMDAgKyBraW5kKSAq
IDEwMDAwICsgbWlub3IpICogMTAwICsgdmFyaWFudDsKICAgICB9CiAKLSAgICBfY29tbWl0c0Zv
ckF2YWlsYWJsZUJ1aWxkcyhyZXBvc2l0b3J5LCBjb21tYW5kLCBsaW5lc1RvSWdub3JlLCBtaW5P
cmRlcikKKyAgICBfY29tbWl0c0ZvckF2YWlsYWJsZUJ1aWxkcyhyZXBvc2l0b3J5LCBjb21tYW5k
LCBsaW5lc1RvSWdub3JlLCBtaW5PcmRlciwgbWF4T3JkZXIpCiAgICAgewogICAgICAgICByZXR1
cm4gdGhpcy5fc3VicHJvY2Vzcy5leGVjdXRlKGNvbW1hbmQpLnRoZW4oKG91dHB1dCkgPT4gewog
ICAgICAgICAgICAgbGV0IGxpbmVzID0gb3V0cHV0LnNwbGl0KCdcbicpOwpAQCAtOTgsNyArOTgs
NyBAQCBjbGFzcyBPU0J1aWxkRmV0Y2hlciB7CiAgICAgICAgICAgICAgICAgbGluZXMgPSBsaW5l
cy5maWx0ZXIoKGxpbmUpID0+ICFyZWdleC5leGVjKGxpbmUpKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIHJldHVybiBsaW5lcy5tYXAoKHJldmlzaW9uKSA9PiAoe3JlcG9zaXRvcnksIHJl
dmlzaW9uLCAnb3JkZXInOiB0aGlzLl9jb21wdXRlT3JkZXIocmV2aXNpb24pfSkpCi0gICAgICAg
ICAgICAgICAgLmZpbHRlcigoY29tbWl0KSA9PiBjb21taXRbJ29yZGVyJ10gPiBtaW5PcmRlcik7
CisgICAgICAgICAgICAgICAgLmZpbHRlcigoY29tbWl0KSA9PiBjb21taXRbJ29yZGVyJ10gPiBt
aW5PcmRlciAmJiBjb21taXRbJ29yZGVyJ10gPCBtYXhPcmRlcik7CiAgICAgICAgIH0pOwogICAg
IH0KIAo=
</data>
<flag name="review"
          id="359343"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>