<?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>105698</bug_id>
          
          <creation_ts>2012-12-23 16:43:42 -0800</creation_ts>
          <short_desc>sheriff-bot should know who the gardeners/sheriffs are</short_desc>
          <delta_ts>2013-01-29 17:08:50 -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>
          <dependson>105913</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Alan Cutter">alancutter</assigned_to>
          <cc>abarth</cc>
    
    <cc>alancutter</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmp</cc>
    
    <cc>dpranke</cc>
    
    <cc>d-r</cc>
    
    <cc>maruel</cc>
    
    <cc>ossy</cc>
    
    <cc>tmpsantos</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>796822</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-23 16:43:42 -0800</bug_when>
    <thetext>sheriff-bot should know who the gardeners/sheriffs are

(and expose that knowledge through some command.)

I believe this information is accessble somewhere (in json?) from one of Chromium&apos;s servers.

I&apos;m told Qt/Gtk, etc. have sheriffs, too so it&apos;s possible we eventually want to make this generic enough to report those too.  (That seems like a v2 feature though.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797767</commentid>
    <comment_count>1</comment_count>
    <who name="Alan Cutter">alancutter</who>
    <bug_when>2012-12-27 22:46:21 -0800</bug_when>
    <thetext>Found URL for webkit sheriff listing: http://build.chromium.org/p/chromium.webkit/sheriff_webkit.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797894</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-28 08:07:42 -0800</bug_when>
    <thetext>No wonder the main buildbot pages inline this stuff server-side.  waiting on a synchronous script to document.write is a very slow way to write a webpage. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798471</commentid>
    <comment_count>3</comment_count>
      <attachid>180998</attachid>
    <who name="Alan Cutter">alancutter</who>
    <bug_when>2013-01-01 14:57:16 -0800</bug_when>
    <thetext>Created attachment 180998
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798474</commentid>
    <comment_count>4</comment_count>
      <attachid>180998</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-01 15:37:15 -0800</bug_when>
    <thetext>Comment on attachment 180998
Patch

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

&gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:246
&gt; +        if len(sheriffs.split()) == 1:
&gt; +            return &quot;%s: The current webkit sheriff is: %s&quot; % (nick, sheriffs)
&gt; +        return &quot;%s: The current webkit sheriffs are: %s&quot; % (nick, sheriffs)

I believe this will print using array syntax, e.g.  [&apos;eric&apos;, &apos;alan&apos;]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798476</commentid>
    <comment_count>5</comment_count>
      <attachid>180998</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-01 15:49:39 -0800</bug_when>
    <thetext>Comment on attachment 180998
Patch

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

&gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:41
&gt; +webkit_sheriff_url = &quot;http://build.chromium.org/p/chromium.webkit/sheriff_webkit.js&quot;

I think these normally go in config.urls.

&gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:216
&gt; +class Current(IRCCommand):

I don&apos;t think current is going to be a good name for this.

&gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:217
&gt; +    def _retrieve_webkit_sheriffs(self, url):

I suspect this function will eventually move to some separate object which knows how to get all the sherriffs from all the various places.  But for now, I think it makes sense as part of this command as you&apos;ve done. :)

&gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:223
&gt; +        try:
&gt; +            sheriff_js = Web().get_binary(url, True)
&gt; +        except:
&gt; +            return None
&gt; +        if sheriff_js == None:
&gt; +            return None

I think the Host provides a &quot;browser&quot; object, which is a Mechanize Browser(), and probably strictly superior to &quot;Web&quot;, which we designed before we knew about Mechanize. :)

&gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:232
&gt; +        if match == None:
&gt; +            return None
&gt; +
&gt; +        try:
&gt; +            return match.group(1)
&gt; +        except:
&gt; +            return None

This none check could be skipped and the try/except would catch that case.

&gt;&gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:246
&gt;&gt; +        return &quot;%s: The current webkit sheriffs are: %s&quot; % (nick, sheriffs)
&gt; 
&gt; I believe this will print using array syntax, e.g.  [&apos;eric&apos;, &apos;alan&apos;]

I also think you should note that these are &quot;chromium webkit sheriffs&quot;, leaving room for gtk sheriffs, etc in the future.

&gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:277
&gt; +    &quot;current&quot;: Current,

I might name this &quot;sheriffs&quot; instead of &quot;current&quot;.

&gt; Tools/Scripts/webkitpy/tool/bot/irc_command_unittest.py:64
&gt; +        url = &quot;file://&quot; + os.path.abspath(&quot;./webkitpy/tool/bot/testdata/webkit_sheriff_0.js&quot;)

I would have written a helper function here.  _sherrif_test_data_url(&apos;0&apos;) or some such.

&gt; Tools/Scripts/webkitpy/tool/bot/irc_command_unittest.py:66
&gt; +                         current.execute(&quot;tom&quot;, [url], None, None))

Having to pass a url to the execute function is a symptom of the get-the-sherrifs function wanting to be a separate object, which would be mocked for testing of the printing, and tested separately for behavior.  Again, something which will be done later when someone needs/wants to get the sherriffs in some other part of webkitpy (as I suspect we may want for when we create rollout bugs for sherrifbot? or when we start auto-filing flaky tests again).

&gt; Tools/Scripts/webkitpy/tool/bot/irc_command_unittest.py:71
&gt; +        self.assertEqual(&quot;tom: The current webkit sheriffs are: test_user_1, test_user_2&quot;,

I guess I was wrong above.  FYI, there is also a http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/tool/grammar.py, which used to be part of &quot;common&quot; until dpranke pointed out that it was impossible to implement such an api correctly. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798477</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-01 15:51:00 -0800</bug_when>
    <thetext>I think the only change you really shoudl make is movign the url into the urls module.  The rest I mentioned above are really just nits.

When abarth is back from vacation tomorrow, he may have more thoughts (he&apos;s worked on sheriffbot more than I have as of late), but I suspect he will be burried in a mountain of email and not care too much one way or another. :)

I&apos;m ready to r+ an updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798478</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-01 15:51:53 -0800</bug_when>
    <thetext>I guess the other change I feel somewhat strongly about is having a name other than &quot;current&quot;, and indicating that these are chromium webkit sheriffs.  (Which invites other ports to list their sheriffs here too.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798504</commentid>
    <comment_count>8</comment_count>
    <who name="Marc-Antoine Ruel">maruel</who>
    <bug_when>2013-01-01 17:31:36 -0800</bug_when>
    <thetext>I don&apos;t have opinion on the patch itself but Eric raises a valid concern, the file should be eventually converted to a proper json file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798505</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-01 17:32:25 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; I don&apos;t have opinion on the patch itself but Eric raises a valid concern, the file should be eventually converted to a proper json file.

I believe he&apos;s replying to comment 2. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798514</commentid>
    <comment_count>10</comment_count>
    <who name="Marc-Antoine Ruel">maruel</who>
    <bug_when>2013-01-01 18:00:14 -0800</bug_when>
    <thetext>Exact, sorry for the lack of reference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798518</commentid>
    <comment_count>11</comment_count>
      <attachid>181006</attachid>
    <who name="Alan Cutter">alancutter</who>
    <bug_when>2013-01-01 18:37:53 -0800</bug_when>
    <thetext>Created attachment 181006
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798519</commentid>
    <comment_count>12</comment_count>
      <attachid>181006</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-01 18:39:03 -0800</bug_when>
    <thetext>Comment on attachment 181006
Patch

LGTM.  You can restart sheriffbot by telling it &quot;restart&quot; in #webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798520</commentid>
    <comment_count>13</comment_count>
    <who name="Alan Cutter">alancutter</who>
    <bug_when>2013-01-01 18:46:04 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 180998 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=180998&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:41
&gt; &gt; +webkit_sheriff_url = &quot;http://build.chromium.org/p/chromium.webkit/sheriff_webkit.js&quot;
&gt; 
&gt; I think these normally go in config.urls.
&gt; 

Moved URL into config.urls.

&gt; &gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:216
&gt; &gt; +class Current(IRCCommand):
&gt; 
&gt; I don&apos;t think current is going to be a good name for this.
&gt; 

Agreed, renamed as &quot;sheriffs&quot; as suggested.

&gt; &gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:232
&gt; &gt; +        if match == None:
&gt; &gt; +            return None
&gt; &gt; +
&gt; &gt; +        try:
&gt; &gt; +            return match.group(1)
&gt; &gt; +        except:
&gt; &gt; +            return None
&gt; 
&gt; This none check could be skipped and the try/except would catch that case.
&gt; 

Updated as suggested.

&gt; &gt;&gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:246
&gt; &gt;&gt; +        return &quot;%s: The current webkit sheriffs are: %s&quot; % (nick, sheriffs)
&gt; &gt; 
&gt; &gt; I believe this will print using array syntax, e.g.  [&apos;eric&apos;, &apos;alan&apos;]
&gt; 
&gt; I also think you should note that these are &quot;chromium webkit sheriffs&quot;, leaving room for gtk sheriffs, etc in the future.
&gt; 

Renamed to &quot;Chromium Webkit sheriff&quot;.

&gt; &gt; Tools/Scripts/webkitpy/tool/bot/irc_command_unittest.py:64
&gt; &gt; +        url = &quot;file://&quot; + os.path.abspath(&quot;./webkitpy/tool/bot/testdata/webkit_sheriff_0.js&quot;)
&gt; 
&gt; I would have written a helper function here.  _sherrif_test_data_url(&apos;0&apos;) or some such.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/irc_command_unittest.py:66
&gt; &gt; +                         current.execute(&quot;tom&quot;, [url], None, None))
&gt; 
&gt; Having to pass a url to the execute function is a symptom of the get-the-sherrifs function wanting to be a separate object, which would be mocked for testing of the printing, and tested separately for behavior.  Again, something which will be done later when someone needs/wants to get the sherriffs in some other part of webkitpy (as I suspect we may want for when we create rollout bugs for sherrifbot? or when we start auto-filing flaky tests again).
&gt; 

Added helper function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798521</commentid>
    <comment_count>14</comment_count>
      <attachid>181006</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-01 18:55:35 -0800</bug_when>
    <thetext>Comment on attachment 181006
Patch

Clearing flags on attachment: 181006

Committed r138603: &lt;http://trac.webkit.org/changeset/138603&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798522</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-01 18:55:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798568</commentid>
    <comment_count>16</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-01-02 01:27:07 -0800</bug_when>
    <thetext>FYI: It made 2 webkitpy tests fail:

Checking autoinstalled packages ...                                   Checking imports ...                    Finding the individual test methods ...                                       Running the tests ...                     [15/1617] webkitpy.common.checkout.changelog_unittest.ChangeLogTest.test_fuzzy_reviewer_match_george_staikos passed                                                                                                                   [41/1617] webkitpy.common.checkout.changelog_unittest.ChangeLogTest.test_fuzzy_reviewer_match_adam_barth passed                                                                                                               [98/1617] webkitpy.common.net.buildbot.buildbot_unittest.BuildBotTest.test_builder_with_name passed1                                                                                                   [166/1617] webkitpy.common.system.executive_unittest.ExecutiveTest.test_popen_args passed1                                                                                         [269/1617] webkitpy.common.system.executive_unittest.ExecutiveTest.test_run_command_args_type passed                                                                                                    [347/1617] webkitpy.layout_tests.models.test_expectations_unittest.MiscTests.test_get_test_set passed                                                                                                     [387/1617] webkitpy.layout_tests.models.test_expectations_unittest.TestExpectationSerializationTests.test_parsed_to_string passed                                                                                                                                 [637/1617] webkitpy.layout_tests.port.chromium_win_unittest.ChromiumWinTest.test_check_build (+2)                                                                                                 [692/1617] webkitpy.layout_tests.port.chromium_win_unittest.ChromiumWinTest.test_path_to_test_expectations_file (+4)                                                                                                                    [806/1617] webkitpy.layout_tests.run_webkit_tests_integrationtest.RunTest.test_dryrun (+5)                                                                                          [907/1617] webkitpy.layout_tests.run_webkit_tests_integrationtest.RunTest.test_batch_size (+5)                                                                                              [927/1617] webkitpy.layout_tests.run_webkit_tests_integrationtest.RunTest.test_natural_order passed                                                                                                   [939/1617] webkitpy.layout_tests.run_webkit_tests_integrationtest.RunTest.test_output_diffs passed                                                                                                  [952/1617] webkitpy.layout_tests.run_webkit_tests_integrationtest.RunTest.test_repeat_each_iterations_num_tests passed                                                                                                                      [956/1617] webkitpy.layout_tests.run_webkit_tests_integrationtest.RunTest.test_run_part passed                                                                                              [964/1617] webkitpy.layout_tests.run_webkit_tests_integrationtest.RunTest.test_run_chunk passed                                                                                               [970/1617] webkitpy.layout_tests.run_webkit_tests_integrationtest.RunTest.test_threaded passed                                                                                              [1000/1617] webkitpy.performance_tests.perftest_unittest.MainTest.test_parse_output_with_subtests passed                                                                                                        [1062/1617] webkitpy.performance_tests.perftestsrunner_unittest.MainTest.test_run_with_bad_slave_config_json passed                                                                                                                   [1105/1617] webkitpy.layout_tests.run_webkit_tests_integrationtest.RunTest.test_hung_thread (+7)                                                                                                [1120/1617] webkitpy.layout_tests.run_webkit_tests_integrationtest.RunTest.test_hung_thread (+7)                                                                                                [1194/1617] webkitpy.style.checkers.cpp_unittest.CppStyleTest.test_runtime_rtti passed                                                                                      [1268/1617] webkitpy.style.checkers.cpp_unittest.WebKitStyleTest.test_spacing passed                                                                                    [1354/1617] webkitpy.layout_tests.run_webkit_tests_integrationtest.RunTest.test_hung_thread (+7)                                                                                                [1420/1617] webkitpy.tool.bot.irc_command_unittest.IRCCommandTest.test_sheriffs failed:
  Traceback (most recent call last):
    File &quot;/ramdisk/qt-linux-release/build/Tools/Scripts/webkitpy/tool/bot/irc_command_unittest.py&quot;, line 69, in test_sheriffs
      sheriffs.execute(&quot;tom&quot;, [self._sheriff_test_data_url(&quot;0&quot;)], None, None))
  AssertionError: &apos;tom: There are no Chromium Webkit sheriffs currently assigned.&apos; != &apos;tom: Failed to parse URL: file:///ramdisk/qt-linux-release/build/webkitpy/tool/bot/testdata/webkit_sheriff_0.js&apos;
  
[1426/1617] webkitpy.tool.bot.ircbot_unittest.IRCBotTest.test_help failed:
  Traceback (most recent call last):
    File &quot;/ramdisk/qt-linux-release/build/Tools/Scripts/webkitpy/tool/bot/ircbot_unittest.py&quot;, line 92, in test_help
      OutputCapture().assert_outputs(self, run, args=[&quot;help&quot;], expected_logs=expected_logs)
    File &quot;/ramdisk/qt-linux-release/build/Tools/Scripts/webkitpy/common/system/outputcapture.py&quot;, line 100, in assert_outputs
      testcase.assertEqual(logs_string, expected_logs)
  AssertionError: &apos;MOCK: irc.post: mock_nick: Available commands: create-bug, help, hi, restart, roll-chromium-deps, rollout, sheriffs, whois\n&apos; != &apos;MOCK: irc.post: mock_nick: Available commands: create-bug, help, hi, restart, roll-chromium-deps, rollout, whois\n&apos;
  
[1479/1617] webkitpy.layout_tests.run_webkit_tests_integrationtest.RunTest.test_hung_thread (+6)                                                                                                [1511/1617] webkitpy.tool.commands.rebaseline_unittest.TestRebaselineTest.test_rebaseline_and_copy_no_overwrite_test passed                                                                                                                           [1516/1617] webkitpy.tool.commands.rebaseline_unittest.TestRebaselineTest.test_rebaseline_test passed                                                                                                     [1555/1617] webkitpy.tool.commands.download_unittest.DownloadCommandsTest.test_land_red_builders passed                                                                                                       [1561/1617] webkitpy.layout_tests.run_webkit_tests_integrationtest.RunTest.test_hung_thread passed                                                                                                  [1562/1617] webkitpy.tool.servers.rebaselineserver_unittest.RebaselineTestTest.test_text_rebaseline_move_no_op_1 passed                                                                                                                       [1578/1617] webkitpy.tool.steps.preparechangelog_unittest.PrepareChangeLogTest.test_fuzzy_reviewer_match_george_staikos passed                                                                                                                              [1592/1617] webkitpy.tool.steps.steps_unittest.StepsTest.test_post_diff passed                                                                              [1609/1617] webkitpy.tool.steps.preparechangelog_unittest.PrepareChangeLogTest.test_fuzzy_reviewer_match_initial passed                                                                                                                       [1611/1617] webkitpy.tool.servers.rebaselineserver_unittest.RebaselineTestTest.test_text_rebaseline_update passed                                                                                                                 [1615/1617] webkitpy.common.system.executive_unittest.ExecutiveTest.serial_test_run_in_parallel passed                                                                                                      Ran 1617 tests in 4.592s
FAILED (failures=2, errors=0)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798569</commentid>
    <comment_count>17</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-01-02 01:28:00 -0800</bug_when>
    <thetext>ouch, sorry for the unreadable log, crazy test-webkitpy output with long long lines :-/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798608</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-02 03:40:44 -0800</bug_when>
    <thetext>I filed Bug 105913 to track the regression and attached a patch there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803958</commentid>
    <comment_count>19</comment_count>
      <attachid>181006</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2013-01-09 19:24:11 -0800</bug_when>
    <thetext>Comment on attachment 181006
Patch

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

&gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:147
&gt; +            sheriff_js = Web().get_binary(url, True)

rather than creating a Web() object, you should&apos;ve used the web member of the tool object passed to you in execute(). Then you could&apos;ve used tests that had a mocked out web object, rather than fetching test files. Generally speaking, we prefer tests that are self-contained with inline data; using the test files means hitting the filesystem which is slow and a bit more cumbersome.

&gt; Tools/Scripts/webkitpy/tool/bot/testdata/webkit_sheriff_zero.js:1
&gt; +document.write(&apos;&apos;);

I don&apos;t this file is actually being used, is it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819535</commentid>
    <comment_count>20</comment_count>
    <who name="Alan Cutter">alancutter</who>
    <bug_when>2013-01-29 17:08:50 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 181006 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=181006&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/irc_command.py:147
&gt; &gt; +            sheriff_js = Web().get_binary(url, True)
&gt; 
&gt; rather than creating a Web() object, you should&apos;ve used the web member of the tool object passed to you in execute(). Then you could&apos;ve used tests that had a mocked out web object, rather than fetching test files. Generally speaking, we prefer tests that are self-contained with inline data; using the test files means hitting the filesystem which is slow and a bit more cumbersome.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/testdata/webkit_sheriff_zero.js:1
&gt; &gt; +document.write(&apos;&apos;);
&gt; 
&gt; I don&apos;t this file is actually being used, is it?

Created bug 108262 to address these issues.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180998</attachid>
            <date>2013-01-01 14:57:16 -0800</date>
            <delta_ts>2013-01-01 18:37:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105698-20130102095423.patch</filename>
            <type>text/plain</type>
            <size>7674</size>
            <attacher name="Alan Cutter">alancutter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NTIxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjM2NTJmNzg3YmEzNTA3ZTA0NDRjNjk4N2IzMzYwMmVl
YjkyZjEwMy4uNjU5ZGM0NzY1Y2U1YWU5NzVjODRmNjBlOGJkMTMyOTY0NTEyOTkxYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDEzLTAxLTAxICBBbGFuIEN1dHRlciAgPGFsYW5jdXR0ZXJAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIHNoZXJpZmYtYm90IHNob3VsZCBrbm93IHdobyB0aGUgZ2FyZGVuZXJzL3NoZXJp
ZmZzIGFyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA1Njk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkZWQgYSAiY3VycmVudCIgY29tbWFuZCB0byBzaGVyaWZmYm90IHRvIGZldGNoIHRoZSBjdXJy
ZW50IHdlYmtpdCBzaGVyaWZmcy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvaXJjX2NvbW1hbmQucHk6CisgICAgICAgIChDdXJyZW50KToKKyAgICAgICAgKEN1cnJlbnQu
X3JldHJpZXZlX3dlYmtpdF9zaGVyaWZmcyk6CisgICAgICAgIChDdXJyZW50LmV4ZWN1dGUpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvaXJjX2NvbW1hbmRfdW5pdHRlc3Qu
cHk6CisgICAgICAgIChJUkNDb21tYW5kVGVzdC50ZXN0X2N1cnJlbnQpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvdGVzdGRhdGEvd2Via2l0X3NoZXJpZmZfMC5qczogQWRk
ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC90ZXN0ZGF0YS93ZWJraXRf
c2hlcmlmZl8xLmpzOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L3Rlc3RkYXRhL3dlYmtpdF9zaGVyaWZmXzIuanM6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvdGVzdGRhdGEvd2Via2l0X3NoZXJpZmZfbWFsZm9ybWVkLmpzOiBB
ZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3Rlc3RkYXRhL3dlYmtp
dF9zaGVyaWZmX3plcm8uanM6IEFkZGVkLgorCiAyMDEyLTEyLTI3ICBaYW4gRG9iZXJzZWsgIDx6
YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgQ3JlYXRlIGEgR1RLIGJ1aWxkIHN5c3Rl
bSB3YXRjaGxpc3QgYW5kIGFkZCBteXNlbGYgdG8gaXQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvaXJjX2NvbW1hbmQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvYm90L2lyY19jb21tYW5kLnB5CmluZGV4IDFjMDYxYThkYjA2NGMwN2VjNDllNDQw
ZmM4ZjNmYzI0YjJkZWMyNGYuLjVjNzlhMTUxZWY1NmExNzM1MGJjNjU3MDY2Y2E3YWZlZjhmZjBh
OGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvaXJjX2NvbW1h
bmQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9pcmNfY29tbWFuZC5w
eQpAQCAtMzMsMTAgKzMzLDEzIEBAIGltcG9ydCByZQogZnJvbSB3ZWJraXRweS5jb21tb24uY29u
ZmlnIGltcG9ydCBpcmMgYXMgY29uZmlnX2lyYwogZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmln
IGltcG9ydCB1cmxzCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcuY29tbWl0dGVycyBpbXBv
cnQgQ29tbWl0dGVyTGlzdAorZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LndlYiBpbXBvcnQgV2Vi
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJv
cgogZnJvbSB3ZWJraXRweS50b29sLmJvdC5xdWV1ZWVuZ2luZSBpbXBvcnQgVGVybWluYXRlUXVl
dWUKIGZyb20gd2Via2l0cHkudG9vbC5ncmFtbWFyIGltcG9ydCBqb2luX3dpdGhfc2VwYXJhdG9y
cwogCit3ZWJraXRfc2hlcmlmZl91cmwgPSAiaHR0cDovL2J1aWxkLmNocm9taXVtLm9yZy9wL2No
cm9taXVtLndlYmtpdC9zaGVyaWZmX3dlYmtpdC5qcyIKKwogCiBkZWYgX3Bvc3RfZXJyb3JfYW5k
X2NoZWNrX2Zvcl9idWdfdXJsKHRvb2wsIG5pY2tzX3N0cmluZywgZXhjZXB0aW9uKToKICAgICB0
b29sLmlyYygpLnBvc3QoIiVzIiAlIGV4Y2VwdGlvbikKQEAgLTIxMCw2ICsyMTMsMzkgQEAgY2xh
c3MgV2hvaXMoSVJDQ29tbWFuZCk6CiAgICAgICAgIHJldHVybiAiJXM6IEknbSBub3Qgc3VyZSB3
aG8geW91IG1lYW4/ICAlcyBjb3VsZCBiZSAnJXMnLiIgJSAobmljaywgY29udHJpYnV0b3JzX3N0
cmluZywgc2VhcmNoX3N0cmluZykKIAogCitjbGFzcyBDdXJyZW50KElSQ0NvbW1hbmQpOgorICAg
IGRlZiBfcmV0cmlldmVfd2Via2l0X3NoZXJpZmZzKHNlbGYsIHVybCk6CisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIHNoZXJpZmZfanMgPSBXZWIoKS5nZXRfYmluYXJ5KHVybCwgVHJ1ZSkKKyAg
ICAgICAgZXhjZXB0OgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgaWYgc2hlcmlm
Zl9qcyA9PSBOb25lOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICBtYXRjaCA9
IHJlLnNlYXJjaChyImRvY3VtZW50LndyaXRlXCgnKC4qKSdcKSIsIHNoZXJpZmZfanMpCisgICAg
ICAgIGlmIG1hdGNoID09IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIHJldHVybiBtYXRjaC5ncm91cCgxKQorICAgICAgICBleGNlcHQ6
CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZGVmIGV4ZWN1dGUoc2VsZiwgbmljaywg
YXJncywgdG9vbCwgc2hlcmlmZik6CisgICAgICAgIGlmIG5vdCBhcmdzOgorICAgICAgICAgICAg
dXJsID0gd2Via2l0X3NoZXJpZmZfdXJsCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB1cmwg
PSBhcmdzWzBdCisKKyAgICAgICAgc2hlcmlmZnMgPSBzZWxmLl9yZXRyaWV2ZV93ZWJraXRfc2hl
cmlmZnModXJsKQorICAgICAgICBpZiBzaGVyaWZmcyA9PSBOb25lOgorICAgICAgICAgICAgcmV0
dXJuICIlczogRmFpbGVkIHRvIHBhcnNlIFVSTDogJXMiICUgKG5pY2ssIHVybCkKKworICAgICAg
ICBpZiBsZW4oc2hlcmlmZnMuc3BsaXQoKSkgPT0gMToKKyAgICAgICAgICAgIHJldHVybiAiJXM6
IFRoZSBjdXJyZW50IHdlYmtpdCBzaGVyaWZmIGlzOiAlcyIgJSAobmljaywgc2hlcmlmZnMpCisg
ICAgICAgIHJldHVybiAiJXM6IFRoZSBjdXJyZW50IHdlYmtpdCBzaGVyaWZmcyBhcmU6ICVzIiAl
IChuaWNrLCBzaGVyaWZmcykKKworCiBjbGFzcyBDcmVhdGVCdWcoSVJDQ29tbWFuZCk6CiAgICAg
ZGVmIGV4ZWN1dGUoc2VsZiwgbmljaywgYXJncywgdG9vbCwgc2hlcmlmZik6CiAgICAgICAgIGlm
IG5vdCBhcmdzOgpAQCAtMjM4LDYgKzI3NCw3IEBAIHZpc2libGVfY29tbWFuZHMgPSB7CiAgICAg
InJlc3RhcnQiOiBSZXN0YXJ0LAogICAgICJyb2xsb3V0IjogUm9sbG91dCwKICAgICAid2hvaXMi
OiBXaG9pcywKKyAgICAiY3VycmVudCI6IEN1cnJlbnQsCiAgICAgImNyZWF0ZS1idWciOiBDcmVh
dGVCdWcsCiAgICAgInJvbGwtY2hyb21pdW0tZGVwcyI6IFJvbGxDaHJvbWl1bURFUFMsCiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2lyY19jb21tYW5kX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9pcmNfY29tbWFuZF91
bml0dGVzdC5weQppbmRleCBlMzA3ZTZlYTlmYjhjMWU4YWQ3YjA0OGI2YTNjOGNlOTgwNDdhZDY2
Li41ZDA0ZGUyNjhkZjQ0MzExMWI4NzM4M2I3ODExNTJlZjZhNzQ3NWVjIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2lyY19jb21tYW5kX3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvaXJjX2NvbW1hbmRfdW5pdHRlc3Qu
cHkKQEAgLTI2LDYgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKK2lt
cG9ydCBvcwogaW1wb3J0IHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5v
dXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCkBAIC01OCw2ICs1OSwyNCBAQCBjbGFz
cyBJUkNDb21tYW5kVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ3RvbTogTW9yZSB0aGFuIDUgY29udHJpYnV0b3JzIG1hdGNoIFwnZGF2aWRcJywgY291
bGQgeW91IGJlIG1vcmUgc3BlY2lmaWM/JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hv
aXMuZXhlY3V0ZSgidG9tIiwgWyJkYXZpZCJdLCBOb25lLCBOb25lKSkKIAorICAgIGRlZiB0ZXN0
X2N1cnJlbnQoc2VsZik6CisgICAgICAgIGN1cnJlbnQgPSBDdXJyZW50KCkKKyAgICAgICAgdXJs
ID0gImZpbGU6Ly8iICsgb3MucGF0aC5hYnNwYXRoKCIuL3dlYmtpdHB5L3Rvb2wvYm90L3Rlc3Rk
YXRhL3dlYmtpdF9zaGVyaWZmXzAuanMiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJ0b206
IFRoZSBjdXJyZW50IHdlYmtpdCBzaGVyaWZmcyBhcmU6ICIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgY3VycmVudC5leGVjdXRlKCJ0b20iLCBbdXJsXSwgTm9uZSwgTm9uZSkpCisgICAgICAg
IHVybCA9ICJmaWxlOi8vIiArIG9zLnBhdGguYWJzcGF0aCgiLi93ZWJraXRweS90b29sL2JvdC90
ZXN0ZGF0YS93ZWJraXRfc2hlcmlmZl8xLmpzIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgi
dG9tOiBUaGUgY3VycmVudCB3ZWJraXQgc2hlcmlmZiBpczogdGVzdF91c2VyIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICBjdXJyZW50LmV4ZWN1dGUoInRvbSIsIFt1cmxdLCBOb25lLCBOb25l
KSkKKyAgICAgICAgdXJsID0gImZpbGU6Ly8iICsgb3MucGF0aC5hYnNwYXRoKCIuL3dlYmtpdHB5
L3Rvb2wvYm90L3Rlc3RkYXRhL3dlYmtpdF9zaGVyaWZmXzIuanMiKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCJ0b206IFRoZSBjdXJyZW50IHdlYmtpdCBzaGVyaWZmcyBhcmU6IHRlc3RfdXNl
cl8xLCB0ZXN0X3VzZXJfMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudC5leGVj
dXRlKCJ0b20iLCBbdXJsXSwgTm9uZSwgTm9uZSkpCisgICAgICAgIHVybCA9ICJmaWxlOi8vIiAr
IG9zLnBhdGguYWJzcGF0aCgiLi93ZWJraXRweS90b29sL2JvdC90ZXN0ZGF0YS93ZWJraXRfc2hl
cmlmZl9tYWxmb3JtZWQuanMiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJ0b206IEZhaWxl
ZCB0byBwYXJzZSBVUkw6ICIgKyB1cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVu
dC5leGVjdXRlKCJ0b20iLCBbdXJsXSwgTm9uZSwgTm9uZSkpCisgICAgICAgIHVybCA9ICJodHRw
Oi8vaW52YWxpZC8iCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoInRvbTogRmFpbGVkIHRvIHBh
cnNlIFVSTDogIiArIHVybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50LmV4ZWN1
dGUoInRvbSIsIFt1cmxdLCBOb25lLCBOb25lKSkKKwogICAgIGRlZiB0ZXN0X2NyZWF0ZV9idWco
c2VsZik6CiAgICAgICAgIGNyZWF0ZV9idWcgPSBDcmVhdGVCdWcoKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCJ0b206IFVzYWdlOiBjcmVhdGUtYnVnIEJVR19USVRMRSIsCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3Rlc3RkYXRhL3dlYmtpdF9zaGVyaWZm
XzAuanMgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3Rlc3RkYXRhL3dlYmtpdF9z
aGVyaWZmXzAuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI4NTFmNzdmMmVhMjU2ZTg1NjExOWMyMGRjN2MyYjA0
ZmNkODA0NAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvdGVzdGRhdGEvd2Via2l0X3NoZXJpZmZfMC5qcwpAQCAtMCwwICsxIEBACitkb2N1bWVudC53
cml0ZSgnJyk7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3Rl
c3RkYXRhL3dlYmtpdF9zaGVyaWZmXzEuanMgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L3Rlc3RkYXRhL3dlYmtpdF9zaGVyaWZmXzEuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NiZjUxYzgyMWQx
NTJhYWVkYWEzMTA3OGM2NWQwNzE0OGQ1ZjRiYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvdGVzdGRhdGEvd2Via2l0X3NoZXJpZmZfMS5qcwpAQCAt
MCwwICsxIEBACitkb2N1bWVudC53cml0ZSgndGVzdF91c2VyJyk7CmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3Rlc3RkYXRhL3dlYmtpdF9zaGVyaWZmXzIuanMg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3Rlc3RkYXRhL3dlYmtpdF9zaGVyaWZm
XzIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODY3NGVkN2Q3MTFlNDQ5YjYyMTE2NmNiMTg5ODhiZTQ1NzA1OGQy
OQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvdGVz
dGRhdGEvd2Via2l0X3NoZXJpZmZfMi5qcwpAQCAtMCwwICsxIEBACitkb2N1bWVudC53cml0ZSgn
dGVzdF91c2VyXzEsIHRlc3RfdXNlcl8yJyk7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L3Rlc3RkYXRhL3dlYmtpdF9zaGVyaWZmX21hbGZvcm1lZC5qcyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvdGVzdGRhdGEvd2Via2l0X3NoZXJpZmZfbWFs
Zm9ybWVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlMDBlMDU4ZmEyZjMwZGQ5YzJlM2ZmYTE4YTg1NGVjMTgy
YTczNjQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L3Rlc3RkYXRhL3dlYmtpdF9zaGVyaWZmX21hbGZvcm1lZC5qcwpAQCAtMCwwICsxIEBACittYWxm
b3JtZWQKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvdGVzdGRh
dGEvd2Via2l0X3NoZXJpZmZfemVyby5qcyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvdGVzdGRhdGEvd2Via2l0X3NoZXJpZmZfemVyby5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Yjg1MWY3N2Yy
ZWEyNTZlODU2MTE5YzIwZGM3YzJiMDRmY2Q4MDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC90ZXN0ZGF0YS93ZWJraXRfc2hlcmlmZl96ZXJvLmpz
CkBAIC0wLDAgKzEgQEAKK2RvY3VtZW50LndyaXRlKCcnKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181006</attachid>
            <date>2013-01-01 18:37:53 -0800</date>
            <delta_ts>2013-01-09 19:24:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105698-20130102133501.patch</filename>
            <type>text/plain</type>
            <size>8292</size>
            <attacher name="Alan Cutter">alancutter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NTIxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjM2NTJmNzg3YmEzNTA3ZTA0NDRjNjk4N2IzMzYwMmVl
YjkyZjEwMy4uYTE3ZWY2NTZkZjUyNjQzYjZlZDU1MjBiMjM0OGZkMGU5MmE3NzMxNCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDEzLTAxLTAxICBBbGFuIEN1dHRlciAgPGFsYW5jdXR0ZXJAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIHNoZXJpZmYtYm90IHNob3VsZCBrbm93IHdobyB0aGUgZ2FyZGVuZXJzL3NoZXJp
ZmZzIGFyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA1Njk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkZWQgYSAic2hlcmlmZnMiIGNvbW1hbmQgdG8gc2hlcmlmZmJvdCB0byBmZXRjaCB0aGUgY3Vy
cmVudCBDaHJvbWl1bSBXZWJraXQgc2hlcmlmZnMuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvYm90L2lyY19jb21tYW5kLnB5OgorICAgICAgICAoQ3VycmVudCk6CisgICAgICAg
IChDdXJyZW50Ll9yZXRyaWV2ZV93ZWJraXRfc2hlcmlmZnMpOgorICAgICAgICAoQ3VycmVudC5l
eGVjdXRlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2lyY19jb21tYW5k
X3VuaXR0ZXN0LnB5OgorICAgICAgICAoSVJDQ29tbWFuZFRlc3QudGVzdF9jdXJyZW50KToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3Rlc3RkYXRhL3dlYmtpdF9zaGVyaWZm
XzAuanM6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvdGVzdGRh
dGEvd2Via2l0X3NoZXJpZmZfMS5qczogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC90ZXN0ZGF0YS93ZWJraXRfc2hlcmlmZl8yLmpzOiBBZGRlZC4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3Rlc3RkYXRhL3dlYmtpdF9zaGVyaWZmX21hbGZv
cm1lZC5qczogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC90ZXN0
ZGF0YS93ZWJraXRfc2hlcmlmZl96ZXJvLmpzOiBBZGRlZC4KKwogMjAxMi0xMi0yNyAgWmFuIERv
YmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgogCiAgICAgICAgIENyZWF0ZSBhIEdUSyBi
dWlsZCBzeXN0ZW0gd2F0Y2hsaXN0IGFuZCBhZGQgbXlzZWxmIHRvIGl0CmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvdXJscy5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy91cmxzLnB5CmluZGV4IDg4YWQzNzNhMTcwNjJhN2Nm
ZGQ2NTg5Mzk3NzAwZGI5ZTFkMjM4YWYuLjMxNTc1YzFkZjJiMDNmNmJiNmUyNDZkODAxNGQ4OTA1
Yzc1ODIyODggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZp
Zy91cmxzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy91cmxz
LnB5CkBAIC01Niw2ICs1Niw4IEBAIGRpcmVjdF9hdHRhY2htZW50X3VybCA9IHIiaHR0cHM/Oi8v
YnVnLSg/UDxidWdfaWQ+XGQrKS1hdHRhY2htZW50cy4lcy9hdHRhY2htZW50CiBidWlsZGJvdF91
cmwgPSAiaHR0cDovL2J1aWxkLndlYmtpdC5vcmciCiBjaHJvbWl1bV9idWlsZGJvdF91cmwgPSAi
aHR0cDovL2J1aWxkLmNocm9taXVtLm9yZy9wL2Nocm9taXVtLndlYmtpdCIKIAorY2hyb21pdW1f
d2Via2l0X3NoZXJpZmZfdXJsID0gImh0dHA6Ly9idWlsZC5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1
bS53ZWJraXQvc2hlcmlmZl93ZWJraXQuanMiCisKIG9tYWhhcHJveHlfdXJsID0gImh0dHA6Ly9v
bWFoYXByb3h5LmFwcHNwb3QuY29tLyIKIAogZGVmIHBhcnNlX2J1Z19pZChzdHJpbmcpOgpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9pcmNfY29tbWFuZC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvaXJjX2NvbW1hbmQucHkKaW5kZXggMWMw
NjFhOGRiMDY0YzA3ZWM0OWU0NDBmYzhmM2ZjMjRiMmRlYzI0Zi4uY2I2MjliNDY5ZTkzZjI5MDdj
NmUxOGVlN2I0ZWMwNjc2MDhkMTU1NSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9pcmNfY29tbWFuZC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L2lyY19jb21tYW5kLnB5CkBAIC0zMyw2ICszMyw3IEBAIGltcG9ydCByZQogZnJvbSB3
ZWJraXRweS5jb21tb24uY29uZmlnIGltcG9ydCBpcmMgYXMgY29uZmlnX2lyYwogZnJvbSB3ZWJr
aXRweS5jb21tb24uY29uZmlnIGltcG9ydCB1cmxzCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25m
aWcuY29tbWl0dGVycyBpbXBvcnQgQ29tbWl0dGVyTGlzdAorZnJvbSB3ZWJraXRweS5jb21tb24u
bmV0LndlYiBpbXBvcnQgV2ViCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZl
IGltcG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS50b29sLmJvdC5xdWV1ZWVuZ2luZSBp
bXBvcnQgVGVybWluYXRlUXVldWUKIGZyb20gd2Via2l0cHkudG9vbC5ncmFtbWFyIGltcG9ydCBq
b2luX3dpdGhfc2VwYXJhdG9ycwpAQCAtMTQwLDYgKzE0MSw0MSBAQCBjbGFzcyBSb2xsb3V0KElS
Q0NvbW1hbmQpOgogICAgICAgICAgICAgX3Bvc3RfZXJyb3JfYW5kX2NoZWNrX2Zvcl9idWdfdXJs
KHRvb2wsIG5pY2tzX3N0cmluZywgZSkKIAogCitjbGFzcyBTaGVyaWZmcyhJUkNDb21tYW5kKToK
KyAgICBkZWYgX3JldHJpZXZlX3dlYmtpdF9zaGVyaWZmcyhzZWxmLCB1cmwpOgorICAgICAgICB0
cnk6CisgICAgICAgICAgICBzaGVyaWZmX2pzID0gV2ViKCkuZ2V0X2JpbmFyeSh1cmwsIFRydWUp
CisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIGlmIHNo
ZXJpZmZfanMgPT0gTm9uZToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgbWF0
Y2ggPSByZS5zZWFyY2gociJkb2N1bWVudC53cml0ZVwoJyguKiknXCkiLCBzaGVyaWZmX2pzKQor
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBtYXRjaC5ncm91cCgxKQorICAgICAg
ICBleGNlcHQ6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZGVmIGV4ZWN1dGUoc2Vs
ZiwgbmljaywgYXJncywgdG9vbCwgc2hlcmlmZik6CisgICAgICAgIGlmIG5vdCBhcmdzOgorICAg
ICAgICAgICAgdXJsID0gdXJscy5jaHJvbWl1bV93ZWJraXRfc2hlcmlmZl91cmwKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIHVybCA9IGFyZ3NbMF0KKworICAgICAgICBzaGVyaWZmcyA9IHNl
bGYuX3JldHJpZXZlX3dlYmtpdF9zaGVyaWZmcyh1cmwpCisgICAgICAgIGlmIHNoZXJpZmZzID09
IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gIiVzOiBGYWlsZWQgdG8gcGFyc2UgVVJMOiAlcyIg
JSAobmljaywgdXJsKQorCisgICAgICAgIHNoZXJpZmZfbmFtZSA9ICJDaHJvbWl1bSBXZWJraXQg
c2hlcmlmZiIKKyAgICAgICAgc2hlcmlmZl9jb3VudCA9IGxlbihzaGVyaWZmcy5zcGxpdCgpKQor
ICAgICAgICBpZiBzaGVyaWZmX2NvdW50ID09IDA6CisgICAgICAgICAgICByZXR1cm4gIiVzOiBU
aGVyZSBhcmUgbm8gJXNzIGN1cnJlbnRseSBhc3NpZ25lZC4iICUgKG5pY2ssIHNoZXJpZmZfbmFt
ZSkKKyAgICAgICAgaWYgc2hlcmlmZl9jb3VudCA9PSAxOgorICAgICAgICAgICAgcmV0dXJuICIl
czogVGhlIGN1cnJlbnQgJXMgaXM6ICVzIiAlIChuaWNrLCBzaGVyaWZmX25hbWUsIHNoZXJpZmZz
KQorICAgICAgICByZXR1cm4gIiVzOiBUaGUgY3VycmVudCAlc3MgYXJlOiAlcyIgJSAobmljaywg
c2hlcmlmZl9uYW1lLCBzaGVyaWZmcykKKworCiBjbGFzcyBSb2xsQ2hyb21pdW1ERVBTKElSQ0Nv
bW1hbmQpOgogICAgIGRlZiBfcGFyc2VfYXJncyhzZWxmLCBhcmdzKToKICAgICAgICAgaWYgbm90
IGFyZ3M6CkBAIC0yMzcsNiArMjczLDcgQEAgdmlzaWJsZV9jb21tYW5kcyA9IHsKICAgICAiaGki
OiBIaSwKICAgICAicmVzdGFydCI6IFJlc3RhcnQsCiAgICAgInJvbGxvdXQiOiBSb2xsb3V0LAor
ICAgICJzaGVyaWZmcyI6IFNoZXJpZmZzLAogICAgICJ3aG9pcyI6IFdob2lzLAogICAgICJjcmVh
dGUtYnVnIjogQ3JlYXRlQnVnLAogICAgICJyb2xsLWNocm9taXVtLWRlcHMiOiBSb2xsQ2hyb21p
dW1ERVBTLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9pcmNf
Y29tbWFuZF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvaXJj
X2NvbW1hbmRfdW5pdHRlc3QucHkKaW5kZXggZTMwN2U2ZWE5ZmI4YzFlOGFkN2IwNDhiNmEzYzhj
ZTk4MDQ3YWQ2Ni4uZGZlOWNiNjZmZGVkYzZkODMyYzNjNzVmMmEyZTVmYzBlN2VkYTEyYSAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9pcmNfY29tbWFuZF91bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2lyY19jb21tYW5k
X3VuaXR0ZXN0LnB5CkBAIC0yNiw2ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogCitpbXBvcnQgb3MKIGltcG9ydCB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQpAQCAtNTgsNiArNTks
MjMgQEAgY2xhc3MgSVJDQ29tbWFuZFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCd0b206IE1vcmUgdGhhbiA1IGNvbnRyaWJ1dG9ycyBtYXRjaCBcJ2Rh
dmlkXCcsIGNvdWxkIHlvdSBiZSBtb3JlIHNwZWNpZmljPycsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdob2lzLmV4ZWN1dGUoInRvbSIsIFsiZGF2aWQiXSwgTm9uZSwgTm9uZSkpCiAKKyAg
ICBAc3RhdGljbWV0aG9kCisgICAgZGVmIF9zaGVyaWZmX3Rlc3RfZGF0YV91cmwoc3VmZml4KToK
KyAgICAgICAgcmV0dXJuICJmaWxlOi8vIiArIG9zLnBhdGguYWJzcGF0aCgiLi93ZWJraXRweS90
b29sL2JvdC90ZXN0ZGF0YS93ZWJraXRfc2hlcmlmZl8lcy5qcyIgJSBzdWZmaXgpCisKKyAgICBk
ZWYgdGVzdF9zaGVyaWZmcyhzZWxmKToKKyAgICAgICAgc2hlcmlmZnMgPSBTaGVyaWZmcygpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoInRvbTogVGhlcmUgYXJlIG5vIENocm9taXVtIFdlYmtp
dCBzaGVyaWZmcyBjdXJyZW50bHkgYXNzaWduZWQuIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBzaGVyaWZmcy5leGVjdXRlKCJ0b20iLCBbc2VsZi5fc2hlcmlmZl90ZXN0X2RhdGFfdXJsKCIw
IildLCBOb25lLCBOb25lKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgidG9tOiBUaGUgY3Vy
cmVudCBDaHJvbWl1bSBXZWJraXQgc2hlcmlmZiBpczogdGVzdF91c2VyIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBzaGVyaWZmcy5leGVjdXRlKCJ0b20iLCBbc2VsZi5fc2hlcmlmZl90ZXN0
X2RhdGFfdXJsKCIxIildLCBOb25lLCBOb25lKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgi
dG9tOiBUaGUgY3VycmVudCBDaHJvbWl1bSBXZWJraXQgc2hlcmlmZnMgYXJlOiB0ZXN0X3VzZXJf
MSwgdGVzdF91c2VyXzIiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNoZXJpZmZzLmV4ZWN1
dGUoInRvbSIsIFtzZWxmLl9zaGVyaWZmX3Rlc3RfZGF0YV91cmwoIjIiKV0sIE5vbmUsIE5vbmUp
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJ0b206IEZhaWxlZCB0byBwYXJzZSBVUkw6ICIg
KyBzZWxmLl9zaGVyaWZmX3Rlc3RfZGF0YV91cmwoIm1hbGZvcm1lZCIpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgIHNoZXJpZmZzLmV4ZWN1dGUoInRvbSIsIFtzZWxmLl9zaGVyaWZmX3Rlc3Rf
ZGF0YV91cmwoIm1hbGZvcm1lZCIpXSwgTm9uZSwgTm9uZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoInRvbTogRmFpbGVkIHRvIHBhcnNlIFVSTDogaHR0cDovL2ludmFsaWQvIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBzaGVyaWZmcy5leGVjdXRlKCJ0b20iLCBbImh0dHA6Ly9pbnZh
bGlkLyJdLCBOb25lLCBOb25lKSkKKwogICAgIGRlZiB0ZXN0X2NyZWF0ZV9idWcoc2VsZik6CiAg
ICAgICAgIGNyZWF0ZV9idWcgPSBDcmVhdGVCdWcoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCJ0b206IFVzYWdlOiBjcmVhdGUtYnVnIEJVR19USVRMRSIsCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3Rlc3RkYXRhL3dlYmtpdF9zaGVyaWZmXzAuanMgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3Rlc3RkYXRhL3dlYmtpdF9zaGVyaWZmXzAu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGI4NTFmNzdmMmVhMjU2ZTg1NjExOWMyMGRjN2MyYjA0ZmNkODA0NAot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvdGVzdGRh
dGEvd2Via2l0X3NoZXJpZmZfMC5qcwpAQCAtMCwwICsxIEBACitkb2N1bWVudC53cml0ZSgnJyk7
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3Rlc3RkYXRhL3dl
YmtpdF9zaGVyaWZmXzEuanMgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3Rlc3Rk
YXRhL3dlYmtpdF9zaGVyaWZmXzEuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NiZjUxYzgyMWQxNTJhYWVkYWEz
MTA3OGM2NWQwNzE0OGQ1ZjRiYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9ib3QvdGVzdGRhdGEvd2Via2l0X3NoZXJpZmZfMS5qcwpAQCAtMCwwICsxIEBA
Citkb2N1bWVudC53cml0ZSgndGVzdF91c2VyJyk7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L3Rlc3RkYXRhL3dlYmtpdF9zaGVyaWZmXzIuanMgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3Rlc3RkYXRhL3dlYmtpdF9zaGVyaWZmXzIuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODY3NGVkN2Q3MTFlNDQ5YjYyMTE2NmNiMTg5ODhiZTQ1NzA1OGQyOQotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvdGVzdGRhdGEvd2Vi
a2l0X3NoZXJpZmZfMi5qcwpAQCAtMCwwICsxIEBACitkb2N1bWVudC53cml0ZSgndGVzdF91c2Vy
XzEsIHRlc3RfdXNlcl8yJyk7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L3Rlc3RkYXRhL3dlYmtpdF9zaGVyaWZmX21hbGZvcm1lZC5qcyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvdGVzdGRhdGEvd2Via2l0X3NoZXJpZmZfbWFsZm9ybWVkLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjVlMDBlMDU4ZmEyZjMwZGQ5YzJlM2ZmYTE4YTg1NGVjMTgyYTczNjQKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3Rlc3RkYXRh
L3dlYmtpdF9zaGVyaWZmX21hbGZvcm1lZC5qcwpAQCAtMCwwICsxIEBACittYWxmb3JtZWQKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvdGVzdGRhdGEvd2Via2l0
X3NoZXJpZmZfemVyby5qcyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvdGVzdGRh
dGEvd2Via2l0X3NoZXJpZmZfemVyby5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Yjg1MWY3N2YyZWEyNTZlODU2
MTE5YzIwZGM3YzJiMDRmY2Q4MDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC90ZXN0ZGF0YS93ZWJraXRfc2hlcmlmZl96ZXJvLmpzCkBAIC0wLDAg
KzEgQEAKK2RvY3VtZW50LndyaXRlKCcnKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>