<?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>182266</bug_id>
          
          <creation_ts>2018-01-29 15:27:00 -0800</creation_ts>
          <short_desc>Should fetch owner commits in build-requests-fetcher.</short_desc>
          <delta_ts>2018-01-30 13:57:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>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>1394294</commentid>
    <comment_count>0</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2018-01-29 15:27:00 -0800</bug_when>
    <thetext>Should fetch owner commits in build-requests-fetcher.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394299</commentid>
    <comment_count>1</comment_count>
      <attachid>332590</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2018-01-29 15:36:25 -0800</bug_when>
    <thetext>Created attachment 332590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394339</commentid>
    <comment_count>2</comment_count>
      <attachid>332590</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-01-29 16:55:01 -0800</bug_when>
    <thetext>Comment on attachment 332590
Patch

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

&gt; Websites/perf.webkit.org/public/include/build-requests-fetcher.php:135
&gt; +            if ($commit_owner_id &amp;&amp; !array_key_exists($commit_owner_id, $this-&gt;commits_by_id))
&gt; +                $commit_owners[$commit_owner_id] = TRUE;

Rather than manually finding owner commits like this, we should simply query the database as so:
SELECT * FROM commits, repositories WHERE commit_repository = repository_id AND commit_id
    IN (SELECT commitset_commit FROM commit_set_items WHERE commitset_set = $1);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394344</commentid>
    <comment_count>3</comment_count>
      <attachid>332607</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2018-01-29 17:19:26 -0800</bug_when>
    <thetext>Created attachment 332607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394462</commentid>
    <comment_count>4</comment_count>
      <attachid>332607</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-01-30 00:26:58 -0800</bug_when>
    <thetext>Comment on attachment 332607
Patch

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

&gt; Websites/perf.webkit.org/public/include/build-requests-fetcher.php:149
&gt; +        $owner_commits_rows = $this-&gt;db-&gt;query_and_fetch_all(&apos;SELECT * FROM commits WHERE commit_id IN
&gt; +            (SELECT DISTINCT(commitset_commit_owner) FROM commit_set_items WHERE commitset_set = $1
&gt; +            AND commitset_commit_owner IS NOT NULL)&apos;, array($commit_set_id));

I would have indented this query as:
SELECT * FROM commits WHERE commit_id
    IN (SELECT DISTINCT(commitset_commit_owner) FROM commit_set_items
        WHERE commitset_set = $1 AND commitset_commit_owner IS NOT NULL)

&gt; Websites/perf.webkit.org/public/include/build-requests-fetcher.php:158
&gt; +                &apos;repository&apos; =&gt; $row[&apos;commit_repository&apos;],

Do: $resolve_ids ? $row[&apos;repository_name&apos;] : $row[&apos;repository_id&apos;];

&gt; Websites/perf.webkit.org/public/include/build-requests-fetcher.php:159
&gt; +                &apos;commitOwner&apos; =&gt; NULL,

We should assert that $row[&apos;commitset_commit_owner&apos;] is NULL.

&gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:289
&gt; +        return MockData.addTestGroupWithOwnerCommitNotInCommitSet(TestServer.database()).then(() =&gt; {
&gt; +            return Manifest.fetch();
&gt; +        }).then(() =&gt; {
&gt; +            return BuildRequest.fetchForTriggerable(&apos;build-webkit&apos;);
&gt; +        }).then((buildRequests) =&gt; {

Use await!
await MockData.addTestGroupWithOwnerCommitNotInCommitSet(TestServer.database());
await Manifest.fetch();
const buildRequests = await BuildRequest.fetchForTriggerable(&apos;build-webkit&apos;);

&gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:292
&gt; +            let test = Test.findById(200);

const.

&gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:295
&gt; +            let platform = Platform.findById(65);

const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394473</commentid>
    <comment_count>5</comment_count>
      <attachid>332607</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2018-01-30 01:54:21 -0800</bug_when>
    <thetext>Comment on attachment 332607
Patch

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

&gt;&gt; Websites/perf.webkit.org/public/include/build-requests-fetcher.php:158
&gt;&gt; +                &apos;repository&apos; =&gt; $row[&apos;commit_repository&apos;],
&gt; 
&gt; Do: $resolve_ids ? $row[&apos;repository_name&apos;] : $row[&apos;repository_id&apos;];

Nice catch.

&gt;&gt; Websites/perf.webkit.org/public/include/build-requests-fetcher.php:159
&gt;&gt; +                &apos;commitOwner&apos; =&gt; NULL,
&gt; 
&gt; We should assert that $row[&apos;commitset_commit_owner&apos;] is NULL.

$owner_commits_rows only contains information from commits table which does not contains &apos;commitset_commit_owner&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394735</commentid>
    <comment_count>6</comment_count>
      <attachid>332607</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-01-30 13:57:58 -0800</bug_when>
    <thetext>Comment on attachment 332607
Patch

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

&gt;&gt;&gt; Websites/perf.webkit.org/public/include/build-requests-fetcher.php:159
&gt;&gt;&gt; +                &apos;commitOwner&apos; =&gt; NULL,
&gt;&gt; 
&gt;&gt; We should assert that $row[&apos;commitset_commit_owner&apos;] is NULL.
&gt; 
&gt; $owner_commits_rows only contains information from commits table which does not contains &apos;commitset_commit_owner&apos;

That just happens to be true for our database today. We always should be asserting those conditions in the case they change.
What&apos;s the chance you&apos;d remember to fix this code five years from now when that condition changes?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332590</attachid>
            <date>2018-01-29 15:36:25 -0800</date>
            <delta_ts>2018-01-29 17:19:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182266-20180129153625.patch</filename>
            <type>text/plain</type>
            <size>8544</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3NzU4CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA4ZDAwMWY4ODM2Y2IzYjYzNGRmZTA0N2Q5YWQ5NTNiODkwZDZiODYwLi5lOWEzYTZjYTIw
NDUwZDhiM2Y5MGFiNDJhYTRkOGVkZDE4NTI1ZGZjIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxOC0wMS0yOSAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBTaG91bGQgZmV0Y2ggb3duZXIgY29tbWl0cyBpbiBidWls
ZC1yZXF1ZXN0cy1mZXRjaGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgyMjY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW4gYSBidWlsZCByZXF1ZXN0LCBvd25lciBjb21taXQgb2YgYSBjb21taXQg
aXMgbm90IGFsd2F5cyBvbmUgb2YgYSBjb21taXQgaW4gdGhlIGNvbW1pdCBzZXQuCisgICAgICAg
IEJ1aWxkIHJlcXVlc3QgYXBpIHNob3VsZCBjb250YWluIG93bmVyIGNvbW1pdHMgaW4gdGhlICdj
b21taXRzJyBmaWVsZCBvZiB0aGUgcmV0dXJuIHZhbHVlLgorCisgICAgICAgICogcHVibGljL2lu
Y2x1ZGUvYnVpbGQtcmVxdWVzdHMtZmV0Y2hlci5waHA6IEFkZGVkIGxvZ2ljIHRvIGZldGNoIG93
bmVyIGNvbW1pdHMgYW5kIGFkZGVkIHRoZW0gaW50byAnY29tbWl0cycuCisgICAgICAgICogc2Vy
dmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qczogQWRkZWQgYSB1bml0IHRlc3Qu
CisgICAgICAgICogc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanM6CisgICAgICAg
IChNb2NrRGF0YS5zZXQgYWRkVGVzdEdyb3VwV2l0aE93bmVyQ29tbWl0Tm90SW5Db21taXRTZXQp
OiBBZGRlZCBhIHRlc3QgZ3JvdXAgd2l0aCBhIGJ1aWxkIHJlcXVlc3QsIHRoZSBjb21taXQgc2V0
IG9mIHdoaWNoIGRvZXMKKyAgICAgICAgbm90IGNvbnRhaW4gb3duZXIgY29tbWl0IG9mIG9uZSBj
b21taXQuCisKIDIwMTgtMDEtMjkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgQWRkIHRoZSBzdXBwb3J0IGZvciByZXBvcnRpbmcgU3BlZWRvbWV0ZXIgMi4wIHJl
c3VsdHMgdG8gcGVyZiBkYXNoYm9hcmQKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvaW5jbHVkZS9idWlsZC1yZXF1ZXN0cy1mZXRjaGVyLnBocCBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9idWlsZC1yZXF1ZXN0cy1mZXRjaGVyLnBo
cAppbmRleCBlZDk5OWM0NTNmYzYxNTk4YzI5YzAxZmE1ODg2OTY2NTA1NDU2MWIxLi5hNDM5ZDhl
OTdlYzJkNzFjNjA2Y2IwY2RiZTU5OGEyODNhYzM5Y2I4IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvYnVpbGQtcmVxdWVzdHMtZmV0Y2hlci5waHAK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2J1aWxkLXJlcXVl
c3RzLWZldGNoZXIucGhwCkBAIC0xMDEsNiArMTAxLDcgQEAgY2xhc3MgQnVpbGRSZXF1ZXN0c0Zl
dGNoZXIgewogCiAgICAgICAgICRjdXN0b21fcm9vdHMgPSBhcnJheSgpOwogICAgICAgICAkcmV2
aXNpb25faXRlbXMgPSBhcnJheSgpOworICAgICAgICAkY29tbWl0X293bmVycyA9IGFycmF5KCk7
CiAgICAgICAgIGZvcmVhY2ggKCRjb21taXRfc2V0X2l0ZW1zIGFzICRyb3cpIHsKICAgICAgICAg
ICAgICRyZXBvc2l0b3J5X2lkID0gJHJlc29sdmVfaWRzID8gJHJvd1sncmVwb3NpdG9yeV9uYW1l
J10gOiAkcm93WydyZXBvc2l0b3J5X2lkJ107CiAgICAgICAgICAgICAkcmV2aXNpb24gPSAkcm93
Wydjb21taXRfcmV2aXNpb24nXTsKQEAgLTEwOCw2ICsxMDksNyBAQCBjbGFzcyBCdWlsZFJlcXVl
c3RzRmV0Y2hlciB7CiAKICAgICAgICAgICAgICRyb290X2ZpbGVfaWQgPSAkcm93Wydjb21taXRz
ZXRfcm9vdF9maWxlJ107CiAgICAgICAgICAgICAkY29tbWl0X2lkID0gJHJvd1snY29tbWl0c2V0
X2NvbW1pdCddOworICAgICAgICAgICAgJGNvbW1pdF9vd25lcl9pZCA9ICRyb3dbJ2NvbW1pdHNl
dF9jb21taXRfb3duZXInXTsKICAgICAgICAgICAgIGlmICgkcm9vdF9maWxlX2lkICYmICEkY29t
bWl0X2lkKSB7CiAgICAgICAgICAgICAgICAgJHRoaXMtPmFkZF91cGxvYWRlZF9maWxlKCRyb290
X2ZpbGVfaWQpOwogICAgICAgICAgICAgICAgIGFycmF5X3B1c2goJGN1c3RvbV9yb290cywgJHJv
b3RfZmlsZV9pZCk7CkBAIC0xMjYsOSArMTI4LDEyIEBAIGNsYXNzIEJ1aWxkUmVxdWVzdHNGZXRj
aGVyIHsKICAgICAgICAgICAgICAgICAnY29tbWl0JyA9PiAkcm93Wydjb21taXRfaWQnXSwKICAg
ICAgICAgICAgICAgICAncGF0Y2gnID0+ICRwYXRjaF9maWxlX2lkLAogICAgICAgICAgICAgICAg
ICdyb290RmlsZScgPT4gJHJvb3RfZmlsZV9pZCwKLSAgICAgICAgICAgICAgICAnY29tbWl0T3du
ZXInID0+ICRyb3dbJ2NvbW1pdHNldF9jb21taXRfb3duZXInXSwKKyAgICAgICAgICAgICAgICAn
Y29tbWl0T3duZXInID0+ICRjb21taXRfb3duZXJfaWQsCiAgICAgICAgICAgICAgICAgJ3JlcXVp
cmVzQnVpbGQnID0+IERhdGFiYXNlOjppc190cnVlKCRyb3dbJ2NvbW1pdHNldF9yZXF1aXJlc19i
dWlsZCddKSkpOwogCisgICAgICAgICAgICBpZiAoJGNvbW1pdF9vd25lcl9pZCAmJiAhYXJyYXlf
a2V5X2V4aXN0cygkY29tbWl0X293bmVyX2lkLCAkdGhpcy0+Y29tbWl0c19ieV9pZCkpCisgICAg
ICAgICAgICAgICAgJGNvbW1pdF9vd25lcnNbJGNvbW1pdF9vd25lcl9pZF0gPSBUUlVFOworCiAg
ICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygkY29tbWl0X2lkLCAkdGhpcy0+Y29tbWl0
c19ieV9pZCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKQEAgLTE0NCw2ICsxNDksMTkg
QEAgY2xhc3MgQnVpbGRSZXF1ZXN0c0ZldGNoZXIgewogCiAgICAgICAgICR0aGlzLT5jb21taXRf
c2V0c19ieV9pZFskY29tbWl0X3NldF9pZF0gPSBUUlVFOwogCisgICAgICAgICRvd25lcl9jb21t
aXRzX3Jvd3MgPSAkdGhpcy0+ZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCAqIEZST00g
Y29tbWl0cyBXSEVSRSBjb21taXRfaWQgPSBBTlkoJDEpJywKKyAgICAgICAgICAgIGFycmF5KCd7
JyAuIGltcGxvZGUoJywgJywgYXJyYXlfa2V5cygkY29tbWl0X293bmVycykpIC4gJ30nKSk7Cisg
ICAgICAgIGZvcmVhY2ggKCRvd25lcl9jb21taXRzX3Jvd3MgYXMgJHJvdykgeworICAgICAgICAg
ICAgJGNvbW1pdF9pZCA9ICRyb3dbJ2NvbW1pdF9pZCddOworICAgICAgICAgICAgYXJyYXlfcHVz
aCgkdGhpcy0+Y29tbWl0cywgYXJyYXkoCisgICAgICAgICAgICAgICAgJ2lkJyA9PiAkY29tbWl0
X2lkLAorICAgICAgICAgICAgICAgICdyZXBvc2l0b3J5JyA9PiAkcm93Wydjb21taXRfcmVwb3Np
dG9yeSddLAorICAgICAgICAgICAgICAgICdjb21taXRPd25lcicgPT4gTlVMTCwKKyAgICAgICAg
ICAgICAgICAncmV2aXNpb24nID0+ICRyb3dbJ2NvbW1pdF9yZXZpc2lvbiddLAorICAgICAgICAg
ICAgICAgICd0aW1lJyA9PiBEYXRhYmFzZTo6dG9fanNfdGltZSgkcm93Wydjb21taXRfdGltZSdd
KSkpOworICAgICAgICAgICAgJHRoaXMtPmNvbW1pdHNfYnlfaWRbJGNvbW1pdF9pZF0gPSBUUlVF
OworICAgICAgICB9CisKICAgICAgICAgYXJyYXlfcHVzaCgkdGhpcy0+Y29tbWl0X3NldHMsIGFy
cmF5KCdpZCcgPT4gJGNvbW1pdF9zZXRfaWQsICdyZXZpc2lvbkl0ZW1zJyA9PiAkcmV2aXNpb25f
aXRlbXMsICdjdXN0b21Sb290cycgPT4gJGN1c3RvbV9yb290cykpOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktYnVpbGQtcmVx
dWVzdHMtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fw
aS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcwppbmRleCAxZmEwMTQ2MTZiNjg2NTQxZTUyYWNkNWE4
YTBhYWFhNGE1NjQ2NjY0Li43Y2U4OTcyMjgyMDIxYWY0MWYwNjU2YzY3NjVmOTkwNzAwZjQ4NjFj
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1i
dWlsZC1yZXF1ZXN0cy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcwpAQCAtMjgxLDYgKzI4MSw1MyBA
QCBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
fSk7CiAgICAgfSk7CiAKKyAgICBpdCgnYSByZXBvc2l0b3J5IGdyb3VwIG9mIGEgYnVpbGQgcmVx
dWVzdCBzaG91bGQgYWNjZXB0cyB0aGUgY29tbWl0IHNldCBvZiB0aGUgc2FtZSBidWlsZCByZXF1
ZXN0JywgKCkgPT4geworICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkVGVzdEdyb3VwV2l0aE93
bmVyQ29tbWl0Tm90SW5Db21taXRTZXQoVGVzdFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgpID0+
IHsKKyAgICAgICAgICAgIHJldHVybiBNYW5pZmVzdC5mZXRjaCgpOworICAgICAgICB9KS50aGVu
KCgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2Vy
YWJsZSgnYnVpbGQtd2Via2l0Jyk7CisgICAgICAgIH0pLnRoZW4oKGJ1aWxkUmVxdWVzdHMpID0+
IHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgMSk7CisK
KyAgICAgICAgICAgIGxldCB0ZXN0ID0gVGVzdC5maW5kQnlJZCgyMDApOworICAgICAgICAgICAg
YXNzZXJ0KHRlc3QpOworCisgICAgICAgICAgICBsZXQgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5k
QnlJZCg2NSk7CisgICAgICAgICAgICBhc3NlcnQocGxhdGZvcm0pOworCisgICAgICAgICAgICBj
b25zdCBidWlsZFJlcXVlc3QgPSBidWlsZFJlcXVlc3RzWzBdOworCisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmlkKCksIDcwNCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnRlc3RHcm91cElkKCksIDkwMCk7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnRlc3QoKSwgdGVzdCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnBsYXRmb3JtKCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Qub3JkZXIoKSwgMCk7CisgICAgICAgICAgICBhc3NlcnQub2so
YnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpIGluc3RhbmNlb2YgQ29tbWl0U2V0KTsKKyAgICAgICAg
ICAgIGFzc2VydC5vayghYnVpbGRSZXF1ZXN0Lmhhc0ZpbmlzaGVkKCkpOworICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFidWlsZFJlcXVlc3QuaGFzU3RhcnRlZCgpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5vayhidWlsZFJlcXVlc3QuaXNQZW5kaW5nKCkpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworCisgICAgICAgICAgICBj
b25zdCBvc3ggPSBSZXBvc2l0b3J5LmZpbmRCeUlkKDkpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG9zeC5uYW1lKCksICdtYWNPUycpOworCisgICAgICAgICAgICBjb25zdCB3ZWJraXQgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKDExKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh3ZWJraXQu
bmFtZSgpLCAnV2ViS2l0Jyk7CisKKyAgICAgICAgICAgIGNvbnN0IGpzYyA9IFJlcG9zaXRvcnku
ZmluZEJ5SWQoMjEzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChqc2MubmFtZSgpLCAnSmF2
YVNjcmlwdENvcmUnKTsKKworICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeShvc3gpLCAnMTAuMTEgMTVBMjg0Jyk7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTky
NzM2Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeShqc2MpLCAnb3duZWQtanNjLTkxOTEnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb21taXRTZXQub3duZXJSZXZpc2lvbkZvclJlcG9zaXRvcnkoanNjKSwgJzE5MTYyMicpOwor
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQudG9wTGV2ZWxSZXBvc2l0b3Jp
ZXMoKS5zb3J0KChvbmUsIGFub3RoZXIpID0+IG9uZS5pZCgpIDwgYW5vdGhlci5pZCgpKSwgW29z
eCwgd2Via2l0XSk7CisgICAgICAgICAgICBhc3NlcnQub2soYnVpbGRSZXF1ZXN0LnJlcG9zaXRv
cnlHcm91cCgpLmFjY2VwdHMoY29tbWl0U2V0KSk7CisgICAgICAgIH0pOworICAgIH0pOworCiAg
ICAgaXQoJ3Nob3VsZCBiZSBmZXRjaGFibGUgYnkgQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dl
cmFibGUnLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBNb2NrRGF0YS5hZGRNb2NrRGF0YShUZXN0
U2VydmVyLmRhdGFiYXNlKCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIE1hbmlm
ZXN0LmZldGNoKCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMKaW5kZXggYmUxYzczNDk5NzU3ZGFh
MWY0ZGZkOWU0NTdhNjQxNzk5ODU1MmM5ZC4uMTFlMWQ4ZDZkNDhhNmY1NTg5NWExMjFmOWQ4MmNj
NmRiODgxYmZkYiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcwpAQCAtMTYxLDYgKzE2MSwyMiBA
QCBNb2NrRGF0YSA9IHsKICAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7
aWQ6IDcwNywgc3RhdHVzOiBzdGF0dXNMaXN0WzNdLCB0cmlnZ2VyYWJsZTogMTAwMCwgcmVwb3Np
dG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCB0ZXN0OiAyMDAsIGdyb3VwOiA5MDAsIG9y
ZGVyOiAzLCBjb21taXRfc2V0OiA0MDR9KSwKICAgICAgICAgXSk7CiAgICAgfSwKKyAgICBhZGRU
ZXN0R3JvdXBXaXRoT3duZXJDb21taXROb3RJbkNvbW1pdFNldChkYikKKyAgICB7CisgICAgICAg
IHJldHVybiBQcm9taXNlLmFsbChbCisgICAgICAgICAgICB0aGlzLmFkZE1vY2tDb25maWd1cmF0
aW9uKGRiKSwKKyAgICAgICAgICAgIHRoaXMuYWRkQW5vdGhlclRyaWdnZXJhYmxlKGRiKSwKKyAg
ICAgICAgICAgIGRiLmluc2VydCgnYW5hbHlzaXNfdGFza3MnLCB7aWQ6IDEwODAsIHBsYXRmb3Jt
OiA2NSwgbWV0cmljOiAzMDAsIG5hbWU6ICdzb21lIHRhc2sgd2l0aCBjb21wb25lbnQgdGVzdCcs
CisgICAgICAgICAgICAgICAgc3RhcnRfcnVuOiA4MDEsIHN0YXJ0X3J1bl90aW1lOiAnMjAxNS0x
MC0yN1QxMjowNToyNy4xWicsCisgICAgICAgICAgICAgICAgZW5kX3J1bjogODAxLCBlbmRfcnVu
X3RpbWU6ICcyMDE1LTEwLTI3VDEyOjA1OjI3LjFaJ30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0
KCdhbmFseXNpc190ZXN0X2dyb3VwcycsIHtpZDogOTAwLCB0YXNrOiAxMDgwLCBuYW1lOiAnc29t
ZSB0ZXN0IGdyb3VwIHdpdGggY29tcG9uZW50IHRlc3QnfSksCisgICAgICAgICAgICBkYi5pbnNl
cnQoJ2NvbW1pdF9zZXRzJywge2lkOiA0MDR9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29t
bWl0X3NldF9pdGVtcycsIHtzZXQ6IDQwNCwgY29tbWl0OiA4NzgzMn0pLAorICAgICAgICAgICAg
ZGIuaW5zZXJ0KCdjb21taXRfc2V0X2l0ZW1zJywge3NldDogNDA0LCBjb21taXQ6IDk2MzM2fSks
CisgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA0MDQsIGNv
bW1pdDogMjAxNywgY29tbWl0X293bmVyOiA5MzExNiwgcmVxdWlyZXNfYnVpbGQ6IHRydWV9KSwK
KyAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDcwNCwgc3RhdHVz
OiAncGVuZGluZycsIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3VwOiAyMDAxLCBw
bGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDkwMCwgb3JkZXI6IDAsIGNvbW1pdF9zZXQ6
IDQwNH0pLAorICAgICAgICBdKTsKKyAgICB9LAogICAgIG1vY2tUZXN0U3luY0NvbmZpZ1dpdGhT
aW5nbGVCdWlsZGVyOiBmdW5jdGlvbiAoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332607</attachid>
            <date>2018-01-29 17:19:26 -0800</date>
            <delta_ts>2018-01-30 00:26:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182266-20180129171925.patch</filename>
            <type>text/plain</type>
            <size>7348</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3NzU4CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA4ZDAwMWY4ODM2Y2IzYjYzNGRmZTA0N2Q5YWQ5NTNiODkwZDZiODYwLi5lOWEzYTZjYTIw
NDUwZDhiM2Y5MGFiNDJhYTRkOGVkZDE4NTI1ZGZjIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxOC0wMS0yOSAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBTaG91bGQgZmV0Y2ggb3duZXIgY29tbWl0cyBpbiBidWls
ZC1yZXF1ZXN0cy1mZXRjaGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgyMjY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW4gYSBidWlsZCByZXF1ZXN0LCBvd25lciBjb21taXQgb2YgYSBjb21taXQg
aXMgbm90IGFsd2F5cyBvbmUgb2YgYSBjb21taXQgaW4gdGhlIGNvbW1pdCBzZXQuCisgICAgICAg
IEJ1aWxkIHJlcXVlc3QgYXBpIHNob3VsZCBjb250YWluIG93bmVyIGNvbW1pdHMgaW4gdGhlICdj
b21taXRzJyBmaWVsZCBvZiB0aGUgcmV0dXJuIHZhbHVlLgorCisgICAgICAgICogcHVibGljL2lu
Y2x1ZGUvYnVpbGQtcmVxdWVzdHMtZmV0Y2hlci5waHA6IEFkZGVkIGxvZ2ljIHRvIGZldGNoIG93
bmVyIGNvbW1pdHMgYW5kIGFkZGVkIHRoZW0gaW50byAnY29tbWl0cycuCisgICAgICAgICogc2Vy
dmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qczogQWRkZWQgYSB1bml0IHRlc3Qu
CisgICAgICAgICogc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanM6CisgICAgICAg
IChNb2NrRGF0YS5zZXQgYWRkVGVzdEdyb3VwV2l0aE93bmVyQ29tbWl0Tm90SW5Db21taXRTZXQp
OiBBZGRlZCBhIHRlc3QgZ3JvdXAgd2l0aCBhIGJ1aWxkIHJlcXVlc3QsIHRoZSBjb21taXQgc2V0
IG9mIHdoaWNoIGRvZXMKKyAgICAgICAgbm90IGNvbnRhaW4gb3duZXIgY29tbWl0IG9mIG9uZSBj
b21taXQuCisKIDIwMTgtMDEtMjkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgQWRkIHRoZSBzdXBwb3J0IGZvciByZXBvcnRpbmcgU3BlZWRvbWV0ZXIgMi4wIHJl
c3VsdHMgdG8gcGVyZiBkYXNoYm9hcmQKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvaW5jbHVkZS9idWlsZC1yZXF1ZXN0cy1mZXRjaGVyLnBocCBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9idWlsZC1yZXF1ZXN0cy1mZXRjaGVyLnBo
cAppbmRleCBlZDk5OWM0NTNmYzYxNTk4YzI5YzAxZmE1ODg2OTY2NTA1NDU2MWIxLi42ZmRlYmUx
MDBhZTJjYjdiZDBhNjAxMDgxMGZjMzljMmUxYmE2N2VjIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvYnVpbGQtcmVxdWVzdHMtZmV0Y2hlci5waHAK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2J1aWxkLXJlcXVl
c3RzLWZldGNoZXIucGhwCkBAIC0xNDQsNiArMTQ0LDI0IEBAIGNsYXNzIEJ1aWxkUmVxdWVzdHNG
ZXRjaGVyIHsKIAogICAgICAgICAkdGhpcy0+Y29tbWl0X3NldHNfYnlfaWRbJGNvbW1pdF9zZXRf
aWRdID0gVFJVRTsKIAorICAgICAgICAkb3duZXJfY29tbWl0c19yb3dzID0gJHRoaXMtPmRiLT5x
dWVyeV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgKiBGUk9NIGNvbW1pdHMgV0hFUkUgY29tbWl0X2lk
IElOCisgICAgICAgICAgICAoU0VMRUNUIERJU1RJTkNUKGNvbW1pdHNldF9jb21taXRfb3duZXIp
IEZST00gY29tbWl0X3NldF9pdGVtcyBXSEVSRSBjb21taXRzZXRfc2V0ID0gJDEKKyAgICAgICAg
ICAgIEFORCBjb21taXRzZXRfY29tbWl0X293bmVyIElTIE5PVCBOVUxMKScsIGFycmF5KCRjb21t
aXRfc2V0X2lkKSk7CisKKyAgICAgICAgZm9yZWFjaCAoJG93bmVyX2NvbW1pdHNfcm93cyBhcyAk
cm93KSB7CisgICAgICAgICAgICAkY29tbWl0X2lkID0gJHJvd1snY29tbWl0X2lkJ107CisgICAg
ICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygkY29tbWl0X2lkLCAkdGhpcy0+Y29tbWl0c19i
eV9pZCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGFycmF5X3B1
c2goJHRoaXMtPmNvbW1pdHMsIGFycmF5KAorICAgICAgICAgICAgICAgICdpZCcgPT4gJGNvbW1p
dF9pZCwKKyAgICAgICAgICAgICAgICAncmVwb3NpdG9yeScgPT4gJHJvd1snY29tbWl0X3JlcG9z
aXRvcnknXSwKKyAgICAgICAgICAgICAgICAnY29tbWl0T3duZXInID0+IE5VTEwsCisgICAgICAg
ICAgICAgICAgJ3JldmlzaW9uJyA9PiAkcm93Wydjb21taXRfcmV2aXNpb24nXSwKKyAgICAgICAg
ICAgICAgICAndGltZScgPT4gRGF0YWJhc2U6OnRvX2pzX3RpbWUoJHJvd1snY29tbWl0X3RpbWUn
XSkpKTsKKyAgICAgICAgICAgICR0aGlzLT5jb21taXRzX2J5X2lkWyRjb21taXRfaWRdID0gVFJV
RTsKKyAgICAgICAgfQorCiAgICAgICAgIGFycmF5X3B1c2goJHRoaXMtPmNvbW1pdF9zZXRzLCBh
cnJheSgnaWQnID0+ICRjb21taXRfc2V0X2lkLCAncmV2aXNpb25JdGVtcycgPT4gJHJldmlzaW9u
X2l0ZW1zLCAnY3VzdG9tUm9vdHMnID0+ICRjdXN0b21fcm9vdHMpKTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJl
cXVlc3RzLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
cGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKaW5kZXggMWZhMDE0NjE2YjY4NjU0MWU1MmFjZDVh
OGEwYWFhYTRhNTY0NjY2NC4uN2NlODk3MjI4MjAyMWFmNDFmMDY1NmM2NzY1Zjk5MDcwMGY0ODYx
YyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGkt
YnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKQEAgLTI4MSw2ICsyODEsNTMg
QEAgZGVzY3JpYmUoJy9hcGkvYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCisgICAgaXQoJ2EgcmVwb3NpdG9yeSBncm91cCBvZiBhIGJ1aWxkIHJl
cXVlc3Qgc2hvdWxkIGFjY2VwdHMgdGhlIGNvbW1pdCBzZXQgb2YgdGhlIHNhbWUgYnVpbGQgcmVx
dWVzdCcsICgpID0+IHsKKyAgICAgICAgcmV0dXJuIE1vY2tEYXRhLmFkZFRlc3RHcm91cFdpdGhP
d25lckNvbW1pdE5vdEluQ29tbWl0U2V0KFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSkudGhlbigoKSA9
PiB7CisgICAgICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0Y2goKTsKKyAgICAgICAgfSkudGhl
bigoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dl
cmFibGUoJ2J1aWxkLXdlYmtpdCcpOworICAgICAgICB9KS50aGVuKChidWlsZFJlcXVlc3RzKSA9
PiB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5ndGgsIDEpOwor
CisgICAgICAgICAgICBsZXQgdGVzdCA9IFRlc3QuZmluZEJ5SWQoMjAwKTsKKyAgICAgICAgICAg
IGFzc2VydCh0ZXN0KTsKKworICAgICAgICAgICAgbGV0IHBsYXRmb3JtID0gUGxhdGZvcm0uZmlu
ZEJ5SWQoNjUpOworICAgICAgICAgICAgYXNzZXJ0KHBsYXRmb3JtKTsKKworICAgICAgICAgICAg
Y29uc3QgYnVpbGRSZXF1ZXN0ID0gYnVpbGRSZXF1ZXN0c1swXTsKKworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5pZCgpLCA3MDQpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC50ZXN0R3JvdXBJZCgpLCA5MDApOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC50ZXN0KCksIHRlc3QpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5wbGF0Zm9ybSgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0Lm9yZGVyKCksIDApOworICAgICAgICAgICAgYXNzZXJ0Lm9r
KGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKSBpbnN0YW5jZW9mIENvbW1pdFNldCk7CisgICAgICAg
ICAgICBhc3NlcnQub2soIWJ1aWxkUmVxdWVzdC5oYXNGaW5pc2hlZCgpKTsKKyAgICAgICAgICAg
IGFzc2VydC5vayghYnVpbGRSZXF1ZXN0Lmhhc1N0YXJ0ZWQoKSk7CisgICAgICAgICAgICBhc3Nl
cnQub2soYnVpbGRSZXF1ZXN0LmlzUGVuZGluZygpKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKworICAgICAgICAgICAg
Y29uc3Qgb3N4ID0gUmVwb3NpdG9yeS5maW5kQnlJZCg5KTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvc3gubmFtZSgpLCAnbWFjT1MnKTsKKworICAgICAgICAgICAgY29uc3Qgd2Via2l0ID0g
UmVwb3NpdG9yeS5maW5kQnlJZCgxMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwod2Via2l0
Lm5hbWUoKSwgJ1dlYktpdCcpOworCisgICAgICAgICAgICBjb25zdCBqc2MgPSBSZXBvc2l0b3J5
LmZpbmRCeUlkKDIxMyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoanNjLm5hbWUoKSwgJ0ph
dmFTY3JpcHRDb3JlJyk7CisKKyAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkob3N4KSwgJzEwLjExIDE1QTI4NCcpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5
MjczNicpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJl
cG9zaXRvcnkoanNjKSwgJ293bmVkLWpzYy05MTkxJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoY29tbWl0U2V0Lm93bmVyUmV2aXNpb25Gb3JSZXBvc2l0b3J5KGpzYyksICcxOTE2MjInKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LnRvcExldmVsUmVwb3NpdG9y
aWVzKCkuc29ydCgob25lLCBhbm90aGVyKSA9PiBvbmUuaWQoKSA8IGFub3RoZXIuaWQoKSksIFtv
c3gsIHdlYmtpdF0pOworICAgICAgICAgICAgYXNzZXJ0Lm9rKGJ1aWxkUmVxdWVzdC5yZXBvc2l0
b3J5R3JvdXAoKS5hY2NlcHRzKGNvbW1pdFNldCkpOworICAgICAgICB9KTsKKyAgICB9KTsKKwog
ICAgIGl0KCdzaG91bGQgYmUgZmV0Y2hhYmxlIGJ5IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdn
ZXJhYmxlJywgKCkgPT4gewogICAgICAgICByZXR1cm4gTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVz
dFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBNYW5p
ZmVzdC5mZXRjaCgpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCmluZGV4IGJlMWM3MzQ5OTc1N2Rh
YTFmNGRmZDllNDU3YTY0MTc5OTg1NTJjOWQuLjExZTFkOGQ2ZDQ4YTZmNTU4OTVhMTIxZjlkODJj
YzZkYjg4MWJmZGIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMKQEAgLTE2MSw2ICsxNjEsMjIg
QEAgTW9ja0RhdGEgPSB7CiAgICAgICAgICAgICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVlc3RzJywg
e2lkOiA3MDcsIHN0YXR1czogc3RhdHVzTGlzdFszXSwgdHJpZ2dlcmFibGU6IDEwMDAsIHJlcG9z
aXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgdGVzdDogMjAwLCBncm91cDogOTAwLCBv
cmRlcjogMywgY29tbWl0X3NldDogNDA0fSksCiAgICAgICAgIF0pOwogICAgIH0sCisgICAgYWRk
VGVzdEdyb3VwV2l0aE93bmVyQ29tbWl0Tm90SW5Db21taXRTZXQoZGIpCisgICAgeworICAgICAg
ICByZXR1cm4gUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgdGhpcy5hZGRNb2NrQ29uZmlndXJh
dGlvbihkYiksCisgICAgICAgICAgICB0aGlzLmFkZEFub3RoZXJUcmlnZ2VyYWJsZShkYiksCisg
ICAgICAgICAgICBkYi5pbnNlcnQoJ2FuYWx5c2lzX3Rhc2tzJywge2lkOiAxMDgwLCBwbGF0Zm9y
bTogNjUsIG1ldHJpYzogMzAwLCBuYW1lOiAnc29tZSB0YXNrIHdpdGggY29tcG9uZW50IHRlc3Qn
LAorICAgICAgICAgICAgICAgIHN0YXJ0X3J1bjogODAxLCBzdGFydF9ydW5fdGltZTogJzIwMTUt
MTAtMjdUMTI6MDU6MjcuMVonLAorICAgICAgICAgICAgICAgIGVuZF9ydW46IDgwMSwgZW5kX3J1
bl90aW1lOiAnMjAxNS0xMC0yN1QxMjowNToyNy4xWid9KSwKKyAgICAgICAgICAgIGRiLmluc2Vy
dCgnYW5hbHlzaXNfdGVzdF9ncm91cHMnLCB7aWQ6IDkwMCwgdGFzazogMTA4MCwgbmFtZTogJ3Nv
bWUgdGVzdCBncm91cCB3aXRoIGNvbXBvbmVudCB0ZXN0J30pLAorICAgICAgICAgICAgZGIuaW5z
ZXJ0KCdjb21taXRfc2V0cycsIHtpZDogNDA0fSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2Nv
bW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA0MDQsIGNvbW1pdDogODc4MzJ9KSwKKyAgICAgICAgICAg
IGRiLmluc2VydCgnY29tbWl0X3NldF9pdGVtcycsIHtzZXQ6IDQwNCwgY29tbWl0OiA5NjMzNn0p
LAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0X2l0ZW1zJywge3NldDogNDA0LCBj
b21taXQ6IDIwMTcsIGNvbW1pdF9vd25lcjogOTMxMTYsIHJlcXVpcmVzX2J1aWxkOiB0cnVlfSks
CisgICAgICAgICAgICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVlc3RzJywge2lkOiA3MDQsIHN0YXR1
czogJ3BlbmRpbmcnLCB0cmlnZ2VyYWJsZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwg
cGxhdGZvcm06IDY1LCB0ZXN0OiAyMDAsIGdyb3VwOiA5MDAsIG9yZGVyOiAwLCBjb21taXRfc2V0
OiA0MDR9KSwKKyAgICAgICAgXSk7CisgICAgfSwKICAgICBtb2NrVGVzdFN5bmNDb25maWdXaXRo
U2luZ2xlQnVpbGRlcjogZnVuY3Rpb24gKCkKICAgICB7CiAgICAgICAgIHJldHVybiB7Cg==
</data>
<flag name="review"
          id="351541"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>