<?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>76011</bug_id>
          
          <creation_ts>2012-01-10 17:26:29 -0800</creation_ts>
          <short_desc>last-green-revision should give us per-bot information</short_desc>
          <delta_ts>2012-01-11 15:09:31 -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>Tools / Tests</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>76109</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>eae</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>533512</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-10 17:26:29 -0800</bug_when>
    <thetext>last-green-revision has been returning None for a while and isn&apos;t really useful because there are always some failing bots. It&apos;s much more useful if it provided such information per-bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533513</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-10 17:27:30 -0800</bug_when>
    <thetext>Do you want is to tell you about all the bots, or do you want to be able to query it per bot?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533517</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-10 17:30:10 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Do you want is to tell you about all the bots, or do you want to be able to query it per bot?

Query per bot. e.g. if I ask last-green-revision &quot;Chromium Win&quot; then it should tell me when &quot;Chromium Win Release&quot; was green and also when &quot;Chromium Win Release Tests&quot; was green.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533554</commentid>
    <comment_count>3</comment_count>
      <attachid>121957</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-10 18:22:07 -0800</bug_when>
    <thetext>Created attachment 121957
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533558</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-10 18:28:50 -0800</bug_when>
    <thetext>I guess we can extend it so that it tries to find the revision for which all bots succeeded first and then fallbacks to this per-bot version when that fails.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533704</commentid>
    <comment_count>5</comment_count>
      <attachid>121957</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-11 00:15:17 -0800</bug_when>
    <thetext>Comment on attachment 121957
Patch

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

&gt; Tools/Scripts/webkitpy/common/net/buildbot/buildbot.py:436
&gt; +        builder_page_url = &quot;%s/builders/%s?numbuilds=100&quot; % (self.buildbot_url, builder.name().replace(&apos; &apos;, &apos;%20&apos;))

replace(&apos; &apos;, &apos;%20&apos;) =&gt; does we need to use some more general URL encoding function?

&gt; Tools/Scripts/webkitpy/common/net/buildbot/buildbot.py:443
&gt; +        for status_row in soup.find(&apos;table&apos;).findAll(&apos;tr&apos;):

Should we be using the JSON API instead?

&gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:60
&gt; +        return &quot;%s: %s&quot; % (nick, urls.view_revision_url(tool.buildbot.last_green_revision(args[0])))

view_revision_url still right?  last_green_revision seems to return a string now, not a revision number.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533705</commentid>
    <comment_count>6</comment_count>
      <attachid>121957</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-11 00:19:08 -0800</bug_when>
    <thetext>Comment on attachment 121957
Patch

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

Thanks for the review.

&gt;&gt; Tools/Scripts/webkitpy/common/net/buildbot/buildbot.py:436
&gt;&gt; +        builder_page_url = &quot;%s/builders/%s?numbuilds=100&quot; % (self.buildbot_url, builder.name().replace(&apos; &apos;, &apos;%20&apos;))
&gt; 
&gt; replace(&apos; &apos;, &apos;%20&apos;) =&gt; does we need to use some more general URL encoding function?

urllib2.quote?

&gt;&gt; Tools/Scripts/webkitpy/common/net/buildbot/buildbot.py:443
&gt;&gt; +        for status_row in soup.find(&apos;table&apos;).findAll(&apos;tr&apos;):
&gt; 
&gt; Should we be using the JSON API instead?

I don&apos;t think build.webkit.org has JSON API. We could add those if we&apos;re so inclined.

&gt;&gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:60
&gt;&gt; +        return &quot;%s: %s&quot; % (nick, urls.view_revision_url(tool.buildbot.last_green_revision(args[0])))
&gt; 
&gt; view_revision_url still right?  last_green_revision seems to return a string now, not a revision number.

Oh oops, yeah, I shouldn&apos;t be calling urls.view_revision_url here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533716</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-11 00:36:04 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 121957 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=121957&amp;action=review
&gt; 
&gt; &gt;&gt; Tools/Scripts/webkitpy/common/net/buildbot/buildbot.py:443
&gt; &gt;&gt; +        for status_row in soup.find(&apos;table&apos;).findAll(&apos;tr&apos;):
&gt; &gt; 
&gt; &gt; Should we be using the JSON API instead?
&gt; 
&gt; I don&apos;t think build.webkit.org has JSON API. We could add those if we&apos;re so inclined.

Oh, it totally does:

http://build.webkit.org/json/builders/

I&apos;m not sure what all is there, but I bet this information is there somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533726</commentid>
    <comment_count>8</comment_count>
      <attachid>121957</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-11 00:52:55 -0800</bug_when>
    <thetext>Comment on attachment 121957
Patch

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

&gt;&gt;&gt;&gt; Tools/Scripts/webkitpy/common/net/buildbot/buildbot.py:443
&gt;&gt;&gt;&gt; +        for status_row in soup.find(&apos;table&apos;).findAll(&apos;tr&apos;):
&gt;&gt;&gt; 
&gt;&gt;&gt; Should we be using the JSON API instead?
&gt;&gt; 
&gt;&gt; I don&apos;t think build.webkit.org has JSON API. We could add those if we&apos;re so inclined.
&gt; 
&gt; Oh, it totally does:
&gt; 
&gt; http://build.webkit.org/json/builders/
&gt; 
&gt; I&apos;m not sure what all is there, but I bet this information is there somewhere.

Unfortunately it doesn&apos;t provide the information I need in an efficient manner. I&apos;ll have to make 100 http requests to get the status on 100 runs :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533728</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-11 00:59:44 -0800</bug_when>
    <thetext>Ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534091</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-11 11:53:04 -0800</bug_when>
    <thetext>Committed r104729: &lt;http://trac.webkit.org/changeset/104729&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534094</commentid>
    <comment_count>11</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-01-11 11:56:00 -0800</bug_when>
    <thetext>This is a good start but limiting it to the last 100 runs is unfortunate. Anyway, thanks for doing this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121957</attachid>
            <date>2012-01-10 18:22:07 -0800</date>
            <delta_ts>2012-01-11 00:52:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76011-20120110182206.patch</filename>
            <type>text/plain</type>
            <size>12127</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDEwNDY1OSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI2IEBACisyMDEyLTAxLTEwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIGxhc3QtZ3JlZW4tcmV2aXNpb24gc2hvdWxkIGdpdmUgdXMgcGVyLWJvdCBpbmZv
cm1hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzYwMTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZXdyb3RlIGxhc3QtZ3JlZW4tcmV2aXNpb24gY29tbWFuZC4gSW5zdGVhZCBvZiBmaW5kaW5nIGEg
cmV2aXNpb24gZm9yIHdoaWNoIGFsbCBib3RzIHN1Y2NlZWRlZCwKKyAgICAgICAgd2UgcmVwb3J0
IHRoZSBsYXRlc3QgZ3JlZW4gcnVuIG9uIGVhY2ggYm90IGZyb20gdGhlIGxhc3QgMTAwIHJ1bnMu
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVpbGRi
b3QucHk6CisgICAgICAgIChCdWlsZEJvdC5fZmV0Y2hfYnVpbGRlcl9wYWdlKToKKyAgICAgICAg
KEJ1aWxkQm90KToKKyAgICAgICAgKEJ1aWxkQm90Ll9ncmVlbl9yZXZpc2lvbl9mb3JfYnVpbGRl
cik6CisgICAgICAgIChCdWlsZEJvdC5sYXN0X2dyZWVuX3JldmlzaW9uKToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVpbGRib3RfdW5pdHRlc3QucHk6
CisgICAgICAgICh0ZXN0X2dyZWVuX3JldmlzaW9uX2Zvcl9idWlsZGVyKToKKyAgICAgICAgKHRl
c3RfbGFzdF9ncmVlbl9yZXZpc2lvbik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9pcmNfY29tbWFuZC5weToKKyAgICAgICAgKExhc3RHcmVlblJldmlzaW9uLmV4ZWN1dGUp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWVyaWVzLnB5Ogor
ICAgICAgICAoTGFzdEdyZWVuUmV2aXNpb24uZXhlY3V0ZSk6CisKIDIwMTItMDEtMTAgIFZpbmNl
bnQgU2NoZWliICA8c2NoZWliQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDbGFyaWZ5IHJ1bi13
ZWJraXQtdGVzdHMgb3B0aW9ucyByZXNldC1yZXN1bHRzIGFuZCBuZXctYmFzZWxpbmUKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWlsZGJvdC9idWlsZGJvdC5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRib3Qv
YnVpbGRib3QucHkJKHJldmlzaW9uIDEwNDY0MikKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL25ldC9idWlsZGJvdC9idWlsZGJvdC5weQkod29ya2luZyBjb3B5KQpAQCAtNDMyLDIz
ICs0MzIsMzkgQEAgY2xhc3MgQnVpbGRCb3Qob2JqZWN0KToKICAgICAgICAgICAgICAgICByZXR1
cm4gYnVpbGQKICAgICAgICAgICAgIGJ1aWxkID0gYnVpbGQucHJldmlvdXNfYnVpbGQoKQogCi0g
ICAgZGVmIGxhc3RfZ3JlZW5fcmV2aXNpb24oc2VsZik6Ci0gICAgICAgIGJ1aWxkcyA9IHNlbGYu
X2xhdGVzdF9idWlsZHNfZnJvbV9idWlsZGVycygpCi0gICAgICAgIHRhcmdldF9yZXZpc2lvbiA9
IGJ1aWxkc1swXS5yZXZpc2lvbigpCi0gICAgICAgICMgQW4gYWx0ZXJuYXRlIHdheSB0byBkbyB0
aGlzIHdvdWxkIGJlIHRvIHN0YXJ0IGF0IG9uZSByZXZpc2lvbiBhbmQgd2FsayBiYWNrd2FyZHMK
LSAgICAgICAgIyBjaGVja2luZyBidWlsZGVyLmJ1aWxkX2Zvcl9yZXZpc2lvbiwgaG93ZXZlciBi
dWlsZF9mb3JfcmV2aXNpb24gaXMgdmVyeSBzbG93IG9uIGZpcnN0IGxvYWQuCi0gICAgICAgIHdo
aWxlIFRydWU6Ci0gICAgICAgICAgICAjIE1ha2UgYnVpbGRzIGFncmVlIG9uIHJldmlzaW9uCi0g
ICAgICAgICAgICBidWlsZHMgPSBbc2VsZi5fYnVpbGRfYXRfb3JfYmVmb3JlX3JldmlzaW9uKGJ1
aWxkLCB0YXJnZXRfcmV2aXNpb24pIGZvciBidWlsZCBpbiBidWlsZHNdCi0gICAgICAgICAgICBp
ZiBOb25lIGluIGJ1aWxkczogIyBPbmUgb2YgdGhlIGJ1aWxkcyBmYWlsZWQgdG8gbG9hZCBmcm9t
IHRoZSBzZXJ2ZXIuCi0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgICAgIG1p
bl9yZXZpc2lvbiA9IG1pbihtYXAobGFtYmRhIGJ1aWxkOiBidWlsZC5yZXZpc2lvbigpLCBidWls
ZHMpKQotICAgICAgICAgICAgaWYgbWluX3JldmlzaW9uICE9IHRhcmdldF9yZXZpc2lvbjoKLSAg
ICAgICAgICAgICAgICB0YXJnZXRfcmV2aXNpb24gPSBtaW5fcmV2aXNpb24KLSAgICAgICAgICAg
ICAgICBjb250aW51ZSAjIEJ1aWxkcyBkb24ndCBhbGwgYWdyZWUgb24gcmV2aXNpb24sIGtlZXAg
c2VhcmNoaW5nCi0gICAgICAgICAgICAjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGV5J3JlIGFsbCBn
cmVlbgotICAgICAgICAgICAgYWxsX2FyZV9ncmVlbiA9IHJlZHVjZShvcGVyYXRvci5hbmRfLCBt
YXAobGFtYmRhIGJ1aWxkOiBidWlsZC5pc19ncmVlbigpLCBidWlsZHMpKQotICAgICAgICAgICAg
aWYgbm90IGFsbF9hcmVfZ3JlZW46Ci0gICAgICAgICAgICAgICAgdGFyZ2V0X3JldmlzaW9uIC09
IDEKKyAgICBkZWYgX2ZldGNoX2J1aWxkZXJfcGFnZShzZWxmLCBidWlsZGVyKToKKyAgICAgICAg
YnVpbGRlcl9wYWdlX3VybCA9ICIlcy9idWlsZGVycy8lcz9udW1idWlsZHM9MTAwIiAlIChzZWxm
LmJ1aWxkYm90X3VybCwgYnVpbGRlci5uYW1lKCkucmVwbGFjZSgnICcsICclMjAnKSkKKyAgICAg
ICAgcmV0dXJuIHVybGxpYjIudXJsb3BlbihidWlsZGVyX3BhZ2VfdXJsKQorCisgICAgZGVmIF9n
cmVlbl9yZXZpc2lvbl9mb3JfYnVpbGRlcihzZWxmLCBidWlsZGVyKToKKyAgICAgICAgc291cCA9
IEJlYXV0aWZ1bFNvdXAoc2VsZi5fZmV0Y2hfYnVpbGRlcl9wYWdlKGJ1aWxkZXIpKQorICAgICAg
ICByZXZpc2lvbiA9IE5vbmUKKyAgICAgICAgbnVtYmVyX29mX3JldmlzaW9ucyA9IDAKKyAgICAg
ICAgZm9yIHN0YXR1c19yb3cgaW4gc291cC5maW5kKCd0YWJsZScpLmZpbmRBbGwoJ3RyJyk6Cisg
ICAgICAgICAgICByZXZpc2lvbl9hbmNob3IgPSBzdGF0dXNfcm93LmZpbmQoJ2EnKQorICAgICAg
ICAgICAgdGFibGVfY2VsbHMgPSBzdGF0dXNfcm93LmZpbmRBbGwoJ3RkJykKKyAgICAgICAgICAg
IGlmIG5vdCByZXZpc2lvbl9hbmNob3Igb3Igbm90IHRhYmxlX2NlbGxzIG9yIGxlbih0YWJsZV9j
ZWxscykgPCAzIG9yIG5vdCB0YWJsZV9jZWxsc1syXS5zdHJpbmc6CiAgICAgICAgICAgICAgICAg
Y29udGludWUKLSAgICAgICAgICAgIHJldHVybiBtaW5fcmV2aXNpb24KKyAgICAgICAgICAgIG51
bWJlcl9vZl9yZXZpc2lvbnMgKz0gMQorICAgICAgICAgICAgaWYgcmV2aXNpb24gPT0gTm9uZSBh
bmQgJ3N1Y2Nlc3MnIGluIHRhYmxlX2NlbGxzWzJdLnN0cmluZzoKKyAgICAgICAgICAgICAgICBy
ZXZpc2lvbiA9IGludChyZXZpc2lvbl9hbmNob3Iuc3RyaW5nKQorICAgICAgICByZXR1cm4gcmV2
aXNpb24sIG51bWJlcl9vZl9yZXZpc2lvbnMKKworICAgIGRlZiBsYXN0X2dyZWVuX3JldmlzaW9u
KHNlbGYsIGJ1aWxkZXJfbmFtZV9yZWdleCk6CisgICAgICAgIGNvbXBpbGVkX2J1aWxkZXJfbmFt
ZV9yZWdleCA9IHJlLmNvbXBpbGUoYnVpbGRlcl9uYW1lX3JlZ2V4LCBmbGFncz1yZS5JR05PUkVD
QVNFKQorICAgICAgICBidWlsZGVycyA9IFtidWlsZGVyIGZvciBidWlsZGVyIGluIHNlbGYuYnVp
bGRlcnMoKSBpZiBjb21waWxlZF9idWlsZGVyX25hbWVfcmVnZXguc2VhcmNoKGJ1aWxkZXIubmFt
ZSgpKV0KKyAgICAgICAgaWYgbGVuKGJ1aWxkZXJzKSA+IDEwOgorICAgICAgICAgICAgcmV0dXJu
ICciJXMiIG1hdGNoZXMgdG9vIG1hbnkgYm90cycgJSBidWlsZGVyX25hbWVfcmVnZXgKKyAgICAg
ICAgZWxpZiBub3QgbGVuKGJ1aWxkZXJzKToKKyAgICAgICAgICAgIHJldHVybiAnIiVzIiBkb2Vz
blwndCBtYXRjaCBhbnkgYm90JyAlIGJ1aWxkZXJfbmFtZV9yZWdleAorCisgICAgICAgIHJlc3Vs
dCA9ICcnCisgICAgICAgIGZvciBidWlsZGVyIGluIGJ1aWxkZXJzOgorICAgICAgICAgICAgcmV2
aXNpb24sIG51bWJlcl9vZl9yZXZpc2lvbnMgPSBzZWxmLl9ncmVlbl9yZXZpc2lvbl9mb3JfYnVp
bGRlcihidWlsZGVyKQorICAgICAgICAgICAgaWYgcmV2aXNpb24gPT0gTm9uZToKKyAgICAgICAg
ICAgICAgICByZXN1bHQgKz0gJyVzIGhhcyBoYWQgbm8gZ3JlZW4gcmV2aXNpb24gaW4gdGhlIGxh
c3QgJWQgcnVucycgJSAoYnVpbGRlci5uYW1lKCksIG51bWJlcl9vZl9yZXZpc2lvbnMpCisgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnJXM6ICVkJyAlIChidWls
ZGVyLm5hbWUoKSwgcmV2aXNpb24pCisgICAgICAgICAgICByZXN1bHQgKz0gIlxuIgorCisgICAg
ICAgIHJldHVybiByZXN1bHQKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25l
dC9idWlsZGJvdC9idWlsZGJvdF91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVpbGRib3QvYnVpbGRib3RfdW5pdHRlc3QucHkJKHJl
dmlzaW9uIDEwNDY0MikKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWls
ZGJvdC9idWlsZGJvdF91bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtMjk5LDM3ICsyOTks
ODIgQEAgY2xhc3MgQnVpbGRCb3RUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgZmls
ZXMgPSBidWlsZGJvdC5fcGFyc2VfdHdpc3RlZF9kaXJlY3RvcnlfbGlzdGluZyhzZWxmLl9leGFt
cGxlX2RpcmVjdG9yeV9saXN0aW5nKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX2V4
cGVjdGVkX2ZpbGVzLCBmaWxlcykKIAotICAgICMgUmV2aXNpb24sIGlzX2dyZWVuCi0gICAgIyBP
cmRlcmVkIGZyb20gbmV3ZXN0IChoaWdoZXN0IG51bWJlcikgdG8gb2xkZXN0LgotICAgIGZha2Vf
YnVpbGRlcjEgPSBbCi0gICAgICAgIFsyLCBGYWxzZV0sCi0gICAgICAgIFsxLCBUcnVlXSwKLSAg
ICBdCi0gICAgZmFrZV9idWlsZGVyMiA9IFsKLSAgICAgICAgWzIsIEZhbHNlXSwKLSAgICAgICAg
WzEsIFRydWVdLAotICAgIF0KLSAgICBmYWtlX2J1aWxkZXJzID0gWwotICAgICAgICBmYWtlX2J1
aWxkZXIxLAotICAgICAgICBmYWtlX2J1aWxkZXIyLAotICAgIF0KLSAgICBkZWYgX2J1aWxkX2Zy
b21fZmFrZShzZWxmLCBmYWtlX2J1aWxkZXIsIGluZGV4KToKLSAgICAgICAgaWYgaW5kZXggPj0g
bGVuKGZha2VfYnVpbGRlcik6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBmYWtl
X2J1aWxkID0gZmFrZV9idWlsZGVyW2luZGV4XQotICAgICAgICBidWlsZCA9IEJ1aWxkKAotICAg
ICAgICAgICAgYnVpbGRlcj1mYWtlX2J1aWxkZXIsCi0gICAgICAgICAgICBidWlsZF9udW1iZXI9
aW5kZXgsCi0gICAgICAgICAgICByZXZpc2lvbj1mYWtlX2J1aWxkWzBdLAotICAgICAgICAgICAg
aXNfZ3JlZW49ZmFrZV9idWlsZFsxXSwKLSAgICAgICAgKQotICAgICAgICBkZWYgbW9ja19wcmV2
aW91c19idWlsZCgpOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxkX2Zyb21fZmFrZShm
YWtlX2J1aWxkZXIsIGluZGV4ICsgMSkKLSAgICAgICAgYnVpbGQucHJldmlvdXNfYnVpbGQgPSBt
b2NrX3ByZXZpb3VzX2J1aWxkCi0gICAgICAgIHJldHVybiBidWlsZAorICAgIF9mYWtlX2J1aWxk
ZXJfcGFnZSA9ICcnJworICAgIDxib2R5PgorICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgorICAg
IDxoMT5Tb21lIEJ1aWxkZXI8L2gxPgorICAgIDxwPig8YSBocmVmPSIuLi93YXRlcmZhbGw/c2hv
dz1Tb21lIEJ1aWxkZXIiPnZpZXcgaW4gd2F0ZXJmYWxsPC9hPik8L3A+CisgICAgPGRpdiBjbGFz
cz0iY29sdW1uIj4KKyAgICA8aDI+UmVjZW50IEJ1aWxkczo8L2gyPgorICAgIDx0YWJsZSBjbGFz
cz0iaW5mbyI+CisgICAgICA8dHI+CisgICAgICAgIDx0aD5UaW1lPC90aD4KKyAgICAgICAgPHRo
PlJldmlzaW9uPC90aD4KKyAgICAgICAgPHRoPlJlc3VsdDwvdGg+ICAgIDx0aD5CdWlsZCAjPC90
aD4KKyAgICAgICAgPHRoPkluZm88L3RoPgorICAgICAgPC90cj4KKyAgICAgIDx0ciBjbGFzcz0i
YWx0Ij4KKyAgICAgICAgPHRkPkphbiAxMCAxNTo0OTwvdGQ+CisgICAgICAgIDx0ZD48c3BhbiBj
bGFzcz0icmV2aXNpb24iIHRpdGxlPSJSZXZpc2lvbiAxMDQ2NDMiPjxhIGhyZWY9Imh0dHA6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEwNDY0MyI+MTA0NjQzPC9hPjwvc3Bhbj48L3RkPgor
ICAgICAgICA8dGQgY2xhc3M9InN1Y2Nlc3MiPmZhaWx1cmU8L3RkPiAgICA8dGQ+PGEgaHJlZj0i
Li4uLzM3NjA0Ij4jMzc2MDQ8L2E+PC90ZD4KKyAgICAgICAgPHRkIGNsYXNzPSJsZWZ0Ij5CdWls
ZCBzdWNjZXNzZnVsPC90ZD4KKyAgICAgIDwvdHI+CisgICAgICA8dHIgY2xhc3M9IiI+CisgICAg
ICAgIDx0ZD5KYW4gMTAgMTU6MzI8L3RkPgorICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9InJldmlz
aW9uIiB0aXRsZT0iUmV2aXNpb24gMTA0NjM2Ij48YSBocmVmPSJodHRwOi8vdHJhYy53ZWJraXQu
b3JnL2NoYW5nZXNldC8xMDQ2MzYiPjEwNDYzNjwvYT48L3NwYW4+PC90ZD4KKyAgICAgICAgPHRk
IGNsYXNzPSJzdWNjZXNzIj5mYWlsdXJlPC90ZD4gICAgPHRkPjxhIGhyZWY9Ii4uLi8zNzYwMyI+
IzM3NjAzPC9hPjwvdGQ+CisgICAgICAgIDx0ZCBjbGFzcz0ibGVmdCI+QnVpbGQgc3VjY2Vzc2Z1
bDwvdGQ+CisgICAgICA8L3RyPgorICAgICAgPHRyIGNsYXNzPSJhbHQiPgorICAgICAgICA8dGQ+
SmFuIDEwIDE1OjE4PC90ZD4KKyAgICAgICAgPHRkPjxzcGFuIGNsYXNzPSJyZXZpc2lvbiIgdGl0
bGU9IlJldmlzaW9uIDEwNDYzNSI+PGEgaHJlZj0iaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFu
Z2VzZXQvMTA0NjM1Ij4xMDQ2MzU8L2E+PC9zcGFuPjwvdGQ+CisgICAgICAgIDx0ZCBjbGFzcz0i
c3VjY2VzcyI+c3VjY2VzczwvdGQ+ICAgIDx0ZD48YSBocmVmPSIuLi4vMzc2MDIiPiMzNzYwMjwv
YT48L3RkPgorICAgICAgICA8dGQgY2xhc3M9ImxlZnQiPkJ1aWxkIHN1Y2Nlc3NmdWw8L3RkPgor
ICAgICAgPC90cj4KKyAgICAgIDx0ciBjbGFzcz0iIj4KKyAgICAgICAgPHRkPkphbiAxMCAxNDo1
MTwvdGQ+CisgICAgICAgIDx0ZD48c3BhbiBjbGFzcz0icmV2aXNpb24iIHRpdGxlPSJSZXZpc2lv
biAxMDQ2MzMiPjxhIGhyZWY9Imh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEwNDYz
MyI+MTA0NjMzPC9hPjwvc3Bhbj48L3RkPgorICAgICAgICA8dGQgY2xhc3M9ImZhaWx1cmUiPmZh
aWx1cmU8L3RkPiAgICA8dGQ+PGEgaHJlZj0iLi4uLzM3NjAxIj4jMzc2MDE8L2E+PC90ZD4KKyAg
ICAgICAgPHRkIGNsYXNzPSJsZWZ0Ij5GYWlsZWQgY29tcGlsZS13ZWJraXQ8L3RkPgorICAgICAg
PC90cj4KKyAgICA8L3RhYmxlPgorICAgIDwvYm9keT4nJycKKyAgICBfZmFrZV9idWlsZGVyX3Bh
Z2Vfd2l0aG91dF9zdWNjZXNzID0gJycnCisgICAgPGJvZHk+CisgICAgPHRhYmxlPgorICAgICAg
PHRyIGNsYXNzPSJhbHQiPgorICAgICAgICA8dGQ+SmFuIDEwIDE1OjQ5PC90ZD4KKyAgICAgICAg
PHRkPjxzcGFuIGNsYXNzPSJyZXZpc2lvbiIgdGl0bGU9IlJldmlzaW9uIDEwNDY0MyI+PGEgaHJl
Zj0iaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTA0NjQzIj4xMDQ2NDM8L2E+PC9z
cGFuPjwvdGQ+CisgICAgICAgIDx0ZCBjbGFzcz0ic3VjY2VzcyI+ZmFpbHVyZTwvdGQ+CisgICAg
ICA8L3RyPgorICAgICAgPHRyIGNsYXNzPSIiPgorICAgICAgICA8dGQ+SmFuIDEwIDE1OjMyPC90
ZD4KKyAgICAgICAgPHRkPjxzcGFuIGNsYXNzPSJyZXZpc2lvbiIgdGl0bGU9IlJldmlzaW9uIDEw
NDYzNiI+PGEgaHJlZj0iaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTA0NjM2Ij4x
MDQ2MzY8L2E+PC9zcGFuPjwvdGQ+CisgICAgICAgIDx0ZCBjbGFzcz0ic3VjY2VzcyI+ZmFpbHVy
ZTwvdGQ+CisgICAgICA8L3RyPgorICAgICAgPHRyIGNsYXNzPSJhbHQiPgorICAgICAgICA8dGQ+
SmFuIDEwIDE1OjE4PC90ZD4KKyAgICAgICAgPHRkPjxzcGFuIGNsYXNzPSJyZXZpc2lvbiIgdGl0
bGU9IlJldmlzaW9uIDEwNDYzNSI+PGEgaHJlZj0iaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFu
Z2VzZXQvMTA0NjM1Ij4xMDQ2MzU8L2E+PC9zcGFuPjwvdGQ+CisgICAgICAgIDx0ZCBjbGFzcz0i
c3VjY2VzcyI+ZmFpbHVyZTwvdGQ+CisgICAgICA8L3RyPgorICAgICAgPHRyIGNsYXNzPSIiPgor
ICAgICAgICA8dGQ+SmFuIDEwIDE0OjUxPC90ZD4KKyAgICAgICAgPHRkPjxzcGFuIGNsYXNzPSJy
ZXZpc2lvbiIgdGl0bGU9IlJldmlzaW9uIDEwNDYzMyI+PGEgaHJlZj0iaHR0cDovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvMTA0NjMzIj4xMDQ2MzM8L2E+PC9zcGFuPjwvdGQ+CisgICAgICAg
IDx0ZCBjbGFzcz0iZmFpbHVyZSI+ZmFpbHVyZTwvdGQ+CisgICAgICA8L3RyPgorICAgIDwvdGFi
bGU+CisgICAgPC9ib2R5PicnJwogCi0gICAgZGVmIF9mYWtlX2J1aWxkc19hdF9pbmRleChzZWxm
LCBpbmRleCk6Ci0gICAgICAgIHJldHVybiBbc2VsZi5fYnVpbGRfZnJvbV9mYWtlKGJ1aWxkZXIs
IGluZGV4KSBmb3IgYnVpbGRlciBpbiBzZWxmLmZha2VfYnVpbGRlcnNdCisgICAgZGVmIHRlc3Rf
Z3JlZW5fcmV2aXNpb25fZm9yX2J1aWxkZXIoc2VsZik6CisgICAgICAgIGJ1aWxkYm90ID0gQnVp
bGRCb3QoKQorICAgICAgICBidWlsZGJvdC5fZmV0Y2hfYnVpbGRlcl9wYWdlID0gbGFtYmRhIGJ1
aWxkZXI6IGJ1aWxkZXIucGFnZQorICAgICAgICBidWlsZGVyX3dpdGhfc3VjY2VzcyA9IEJ1aWxk
ZXIoJ1NvbWUgYnVpbGRlcicsIE5vbmUpCisgICAgICAgIGJ1aWxkZXJfd2l0aF9zdWNjZXNzLnBh
Z2UgPSBzZWxmLl9mYWtlX2J1aWxkZXJfcGFnZQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1
aWxkYm90Ll9ncmVlbl9yZXZpc2lvbl9mb3JfYnVpbGRlcihidWlsZGVyX3dpdGhfc3VjY2Vzcyks
ICgxMDQ2MzUsIDQpKQorCisgICAgICAgIGJ1aWxkZXJfd2l0aG91dF9zdWNjZXNzID0gQnVpbGRl
cignU29tZSBidWlsZGVyJywgTm9uZSkKKyAgICAgICAgYnVpbGRlcl93aXRob3V0X3N1Y2Nlc3Mu
cGFnZSA9IHNlbGYuX2Zha2VfYnVpbGRlcl9wYWdlX3dpdGhvdXRfc3VjY2VzcworICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGJ1aWxkYm90Ll9ncmVlbl9yZXZpc2lvbl9mb3JfYnVpbGRlcihidWls
ZGVyX3dpdGhvdXRfc3VjY2VzcyksIChOb25lLCA0KSkKIAogICAgIGRlZiB0ZXN0X2xhc3RfZ3Jl
ZW5fcmV2aXNpb24oc2VsZik6CiAgICAgICAgIGJ1aWxkYm90ID0gQnVpbGRCb3QoKQpAQCAtMzM3
LDggKzM4MiwyMyBAQCBjbGFzcyBCdWlsZEJvdFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
ICAgICBkZWYgbW9ja19idWlsZHNfZnJvbV9idWlsZGVycygpOgogICAgICAgICAgICAgcmV0dXJu
IHNlbGYuX2Zha2VfYnVpbGRzX2F0X2luZGV4KDApCiAKKyAgICAgICAgIyBSZXZpc2lvbiwgaXNf
Z3JlZW4KKyAgICAgICAgIyBPcmRlcmVkIGZyb20gbmV3ZXN0IChoaWdoZXN0IG51bWJlcikgdG8g
b2xkZXN0LgorICAgICAgICBmYWtlX2J1aWxkZXIxID0gQnVpbGRlcigiRmFrZSBCdWlsZGVyIDEi
LCBOb25lKQorICAgICAgICBmYWtlX2J1aWxkZXIxLnJldmlzaW9uID0gMTIzNAorICAgICAgICBm
YWtlX2J1aWxkZXIxLnJldmlzaW9uX2NvdW50ID0gMworICAgICAgICBmYWtlX2J1aWxkZXIyID0g
QnVpbGRlcigiRmFrZSBCdWlsZGVyIDIiLCBOb25lKQorICAgICAgICBmYWtlX2J1aWxkZXIyLnJl
dmlzaW9uID0gMTIzMAorICAgICAgICBmYWtlX2J1aWxkZXIyLnJldmlzaW9uX2NvdW50ID0gNAor
ICAgICAgICBzb21lX2J1aWxkZXIgPSBCdWlsZGVyKCJTb21lIEJ1aWxkZXIiLCBOb25lKQorICAg
ICAgICBzb21lX2J1aWxkZXIucmV2aXNpb24gPSBOb25lCisgICAgICAgIHNvbWVfYnVpbGRlci5y
ZXZpc2lvbl9jb3VudCA9IDMKKworICAgICAgICBidWlsZGJvdC5idWlsZGVycyA9IGxhbWJkYTog
W2Zha2VfYnVpbGRlcjEsIGZha2VfYnVpbGRlcjIsIHNvbWVfYnVpbGRlcl0KKyAgICAgICAgYnVp
bGRib3QuX2dyZWVuX3JldmlzaW9uX2Zvcl9idWlsZGVyID0gbGFtYmRhIGJ1aWxkZXI6IChidWls
ZGVyLnJldmlzaW9uLCBidWlsZGVyLnJldmlzaW9uX2NvdW50KQogICAgICAgICBidWlsZGJvdC5f
bGF0ZXN0X2J1aWxkc19mcm9tX2J1aWxkZXJzID0gbW9ja19idWlsZHNfZnJvbV9idWlsZGVycwot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkYm90Lmxhc3RfZ3JlZW5fcmV2aXNpb24oKSwg
MSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZGJvdC5sYXN0X2dyZWVuX3JldmlzaW9u
KCcnKSwKKyAgICAgICAgICAgICJGYWtlIEJ1aWxkZXIgMTogMTIzNFxuRmFrZSBCdWlsZGVyIDI6
IDEyMzBcblNvbWUgQnVpbGRlciBoYXMgaGFkIG5vIGdyZWVuIHJldmlzaW9uIGluIHRoZSBsYXN0
IDMgcnVuc1xuIikKIAogICAgIGRlZiBfZmV0Y2hfYnVpbGQoc2VsZiwgYnVpbGRfbnVtYmVyKToK
ICAgICAgICAgaWYgYnVpbGRfbnVtYmVyID09IDU6CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvYm90L2lyY19jb21tYW5kLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvaXJjX2NvbW1hbmQucHkJKHJldmlzaW9uIDEwNDY0MikKKysrIFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvaXJjX2NvbW1hbmQucHkJKHdvcmtpbmcgY29w
eSkKQEAgLTU1LDggKzU1LDkgQEAgY2xhc3MgSVJDQ29tbWFuZChvYmplY3QpOgogCiBjbGFzcyBM
YXN0R3JlZW5SZXZpc2lvbihJUkNDb21tYW5kKToKICAgICBkZWYgZXhlY3V0ZShzZWxmLCBuaWNr
LCBhcmdzLCB0b29sLCBzaGVyaWZmKToKLSAgICAgICAgcmV0dXJuICIlczogJXMiICUgKG5pY2ss
Ci0gICAgICAgICAgICB1cmxzLnZpZXdfcmV2aXNpb25fdXJsKHRvb2wuYnVpbGRib3QubGFzdF9n
cmVlbl9yZXZpc2lvbigpKSkKKyAgICAgICAgaWYgbm90IGFyZ3M6CisgICAgICAgICAgICByZXR1
cm4gIiVzOiBVc2FnZTogbGFzdC1ncmVlbi1yZXZpc2lvbiBCVUlMREVSX05BTUUiICUgbmljawor
ICAgICAgICByZXR1cm4gIiVzOiAlcyIgJSAobmljaywgdXJscy52aWV3X3JldmlzaW9uX3VybCh0
b29sLmJ1aWxkYm90Lmxhc3RfZ3JlZW5fcmV2aXNpb24oYXJnc1swXSkpKQogCiAKIGNsYXNzIFJl
c3RhcnQoSVJDQ29tbWFuZCk6CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvcXVlcmllcy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvcXVlcmllcy5weQkocmV2aXNpb24gMTA0NjQyKQorKysgVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXJpZXMucHkJKHdvcmtpbmcgY29weSkKQEAgLTEz
Miw3ICsxMzIsNyBAQCBjbGFzcyBMYXN0R3JlZW5SZXZpc2lvbihBYnN0cmFjdERlY2xhcmF0CiAg
ICAgaGVscF90ZXh0ID0gIlByaW50cyB0aGUgbGFzdCBrbm93biBnb29kIHJldmlzaW9uIgogCiAg
ICAgZGVmIGV4ZWN1dGUoc2VsZiwgb3B0aW9ucywgYXJncywgdG9vbCk6Ci0gICAgICAgIHByaW50
IHNlbGYuX3Rvb2wuYnVpbGRib3QubGFzdF9ncmVlbl9yZXZpc2lvbigpCisgICAgICAgIHByaW50
IHNlbGYuX3Rvb2wuYnVpbGRib3QubGFzdF9ncmVlbl9yZXZpc2lvbihhcmdzWzBdKQogCiAKIGNs
YXNzIFdoYXRCcm9rZShBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6Cg==
</data>
<flag name="review"
          id="122621"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>