<?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>87528</bug_id>
          
          <creation_ts>2012-05-25 12:34:50 -0700</creation_ts>
          <short_desc>webkitpy: change scm.add(), scm.delete() to accept multiple paths</short_desc>
          <delta_ts>2012-05-29 14:47:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>87451</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>634186</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-25 12:34:50 -0700</bug_when>
    <thetext>webkitpy: change scm.add(), scm.delete() to accept multiple paths</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634191</commentid>
    <comment_count>1</comment_count>
      <attachid>144124</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-25 12:37:09 -0700</bug_when>
    <thetext>Created attachment 144124
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634204</commentid>
    <comment_count>2</comment_count>
      <attachid>144128</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-25 12:59:16 -0700</bug_when>
    <thetext>Created attachment 144128
add tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634215</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-25 13:04:08 -0700</bug_when>
    <thetext>I&apos;m not actually wild about adding add_list() and delete_list() ... it&apos;s kind of crufty. The alternatives would be to change add() and delete() to require lists and update all the calling code, or to change add() and delete() to detect whether the parameter is a single string or a list of strings and do the right thing. I haven&apos;t convinced myself that either of those solutions is better, either</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634221</commentid>
    <comment_count>4</comment_count>
      <attachid>144128</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-25 13:06:54 -0700</bug_when>
    <thetext>Comment on attachment 144128
add tests

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

&gt; Tools/Scripts/webkitpy/common/checkout/scm/scm_unittest.py:1187
&gt; -        self._second_local_commt()
&gt; +        self._second_local_commit()

lol whoops. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634256</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-25 13:48:11 -0700</bug_when>
    <thetext>Committed r118557: &lt;http://trac.webkit.org/changeset/118557&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634299</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-25 14:47:58 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634300</commentid>
    <comment_count>7</comment_count>
      <attachid>144150</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-25 14:48:01 -0700</bug_when>
    <thetext>Created attachment 144150
ignore - wrong bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634313</commentid>
    <comment_count>8</comment_count>
      <attachid>144150</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-25 15:01:03 -0700</bug_when>
    <thetext>Comment on attachment 144150
ignore - wrong bug

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

&gt; Tools/Scripts/webkitpy/common/system/executive.py:464
&gt; +def _run_command_thunk(cmd_line_and_cwd):
&gt; +    (cmd_line, cwd) = cmd_line_and_cwd
&gt; +    proc = subprocess.Popen(cmd_line, cwd=cwd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
&gt; +    stdout, stderr = proc.communicate()
&gt; +    return (proc.returncode, stdout, stderr)

This could easily have been a class method instead of a module method.

&gt; Tools/Scripts/webkitpy/tool/commands/rebaseline.py:67
&gt; +        self._defer_scm_adds = False

It doesn&apos;t feel like it&apos;s really &quot;defer&quot;ing anything.  It&apos;s just printing instead of doing.

&gt; Tools/Scripts/webkitpy/tool/commands/rebaseline.py:126
&gt; +            print &quot;scm-add:%s&quot; % path

Do you have any testing of this printing and parsing of the resulting values?  Spaces in file names?  unicode?

&gt; Tools/Scripts/webkitpy/tool/servers/gardeningserver.py:194
&gt; +        files_to_add = set()
&gt; +        for output in [result[1] for result in command_results]:
&gt; +            files_to_add.update(line.replace(&apos;scm-add:&apos;, &apos;&apos;) for line in output.splitlines() if line.startswith(&apos;scm-add:&apos;))
&gt; +        scm.add_list(list(files_to_add))

Yeah, this should be tested.  You&apos;ll likely have to make it a separate function.  The whole idea of serliazing/deserializing the add list is split across two classes currently.

&gt; Tools/Scripts/webkitpy/tool/servers/gardeningserver.py:209
&gt; +def run_command(cmd_line_and_cwd):
&gt; +    (cmd_line, cwd) = cmd_line_and_cwd
&gt; +    host = Host()
&gt; +    output = host.executive.run_command(cmd_line, cwd=cwd)

:(  You really don&apos;t want to instantiate a new host per command.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634314</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-25 15:01:54 -0700</bug_when>
    <thetext>Ok, so where is the right bug so I can add my review comemnts there? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634330</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-25 15:20:16 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 144150 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=144150&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/common/system/executive.py:464
&gt; &gt; +def _run_command_thunk(cmd_line_and_cwd):
&gt; &gt; +    (cmd_line, cwd) = cmd_line_and_cwd
&gt; &gt; +    proc = subprocess.Popen(cmd_line, cwd=cwd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
&gt; &gt; +    stdout, stderr = proc.communicate()
&gt; &gt; +    return (proc.returncode, stdout, stderr)
&gt; 
&gt; This could easily have been a class method instead of a module method.

Sorry, I should have said &quot;static&quot;.

@staticmethod
def _run_command_thunk(command_line_and_cwd):
    pass

MyClass._run_command_thunk
should then do exactly what you want, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634331</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-25 15:20:59 -0700</bug_when>
    <thetext>Sorry, I keep getting confused as to which bug when clicking on links in my bugmail.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144124</attachid>
            <date>2012-05-25 12:37:09 -0700</date>
            <delta_ts>2012-05-25 12:59:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87528-20120525123708.patch</filename>
            <type>text/plain</type>
            <size>6996</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NDQ3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMGI5ZDcxYjQyNmYwNDUzMDBkZmUxZWYzOTlhYjk3Mjkw
NmFhNjgxMC4uYmFhNGI0NDQ4ZWEyZmQ5NjU1YzZhOGRkZTQ4YTNhNTNlMWY0MTg1NiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1
IEBACisyMDEyLTA1LTI1ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIHdlYmtpdHB5OiBjaGFuZ2Ugc2NtLmFkZCgpLCBzY20uZGVsZXRlKCkgdG8gYWNjZXB0
IG11bHRpcGxlIHBhdGhzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NzUyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGxhdW5jaGluZyBnaXQgb3Igc3ZuIGZvciBpbmRpdmlkdWFsIGZpbGVzIGNhbiBiZSBz
bG93OyB0aGlzCisgICAgICAgIGNoYW5nZSB3aWxsIGhhbmQgbXVsdGlwbGUgcGF0aHMgYXQgb25j
ZSB0byBnaXQgYW5kIHN2biBzbyB0aGV5CisgICAgICAgIGNhbiBiZSBhZGRlZCBpbiBhIGJhdGNo
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL2dpdC5w
eToKKyAgICAgICAgKEdpdC5hZGRfbGlzdCk6CisgICAgICAgIChHaXQuZGVsZXRlX2xpc3QpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY20ucHk6Cisg
ICAgICAgIChTQ00uYWRkKToKKyAgICAgICAgKFNDTSk6CisgICAgICAgIChTQ00uYWRkX2xpc3Qp
OgorICAgICAgICAoU0NNLmRlbGV0ZSk6CisgICAgICAgIChTQ00uZGVsZXRlX2xpc3QpOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY21fbW9jay5weToK
KyAgICAgICAgKE1vY2tTQ00uYWRkKToKKyAgICAgICAgKE1vY2tTQ00pOgorICAgICAgICAoTW9j
a1NDTS5hZGRfbGlzdCk6CisgICAgICAgIChNb2NrU0NNLmRlbGV0ZSk6CisgICAgICAgIChNb2Nr
U0NNLmRlbGV0ZV9saXN0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVj
a291dC9zY20vc2NtX3VuaXR0ZXN0LnB5OgorICAgICAgICAoX3NoYXJlZF90ZXN0X2V4aXN0cyk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3N2bi5weToK
KyAgICAgICAgKFNWTi5hZGRfbGlzdCk6CisgICAgICAgIChTVk4uZGVsZXRlX2xpc3QpOgorCiAy
MDEyLTA1LTI0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IGdhcmRlbi1vLW1hdGljIHNob3VsZCBub3QgZmV0Y2ggZnJvbSBkZWJ1ZyBib3RzIGlmIGl0IGFs
c28ga25vd3MgYWJvdXQgdGhlIHJlbGVhc2UgYm90cwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL2dpdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9naXQucHkKaW5kZXggYzdkYmQ3Y2ExM2M4NWYyNTY4
YjcyYTdlN2MzN2EwZmQzY2U4MzRmZS4uNDNmZGI5YzAwMzQ4NDhhYTM4NmIyOGJmZjVlNjMyMjQ2
MzgzMGQ0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tv
dXQvc2NtL2dpdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291
dC9zY20vZ2l0LnB5CkBAIC0xNjAsMTEgKzE2MCwxMSBAQCBjbGFzcyBHaXQoU0NNLCBTVk5SZXBv
c2l0b3J5KToKICAgICBkZWYgX3N0YXR1c19yZWdleHAoc2VsZiwgZXhwZWN0ZWRfdHlwZXMpOgog
ICAgICAgICByZXR1cm4gJ14oP1A8c3RhdHVzPlslc10pXHQoP1A8ZmlsZW5hbWU+LispJCcgJSBl
eHBlY3RlZF90eXBlcwogCi0gICAgZGVmIGFkZChzZWxmLCBwYXRoLCByZXR1cm5fZXhpdF9jb2Rl
PUZhbHNlKToKLSAgICAgICAgcmV0dXJuIHNlbGYucnVuKFsiZ2l0IiwgImFkZCIsIHBhdGhdLCBy
ZXR1cm5fZXhpdF9jb2RlPXJldHVybl9leGl0X2NvZGUpCisgICAgZGVmIGFkZF9saXN0KHNlbGYs
IHBhdGhzLCByZXR1cm5fZXhpdF9jb2RlPUZhbHNlKToKKyAgICAgICAgcmV0dXJuIHNlbGYucnVu
KFsiZ2l0IiwgImFkZCJdICsgcGF0aHMsIHJldHVybl9leGl0X2NvZGU9cmV0dXJuX2V4aXRfY29k
ZSkKIAotICAgIGRlZiBkZWxldGUoc2VsZiwgcGF0aCk6Ci0gICAgICAgIHJldHVybiBzZWxmLnJ1
bihbImdpdCIsICJybSIsICItZiIsIHBhdGhdKQorICAgIGRlZiBkZWxldGVfbGlzdChzZWxmLCBw
YXRocyk6CisgICAgICAgIHJldHVybiBzZWxmLnJ1bihbImdpdCIsICJybSIsICItZiJdICsgcGF0
aHMpCiAKICAgICBkZWYgZXhpc3RzKHNlbGYsIHBhdGgpOgogICAgICAgICByZXR1cm5fY29kZSA9
IHNlbGYucnVuKFsiZ2l0IiwgInNob3ciLCAiSEVBRDolcyIgJSBwYXRoXSwgcmV0dXJuX2V4aXRf
Y29kZT1UcnVlLCBkZWNvZGVfb3V0cHV0PUZhbHNlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY20ucHkKaW5kZXggOWZmOWU1Zjc3YjQ2MWU3OGZh
MDI2OTFjOGVlNzYxZWJkMTkwMzMyNi4uNmI2ZTZmY2YwYWYxM2M3ZDRiMDc2YWFjNzJiNzFlMDcw
MGRkMWVjYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tv
dXQvc2NtL3NjbS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291
dC9zY20vc2NtLnB5CkBAIC0xNTQsOSArMTU0LDE1IEBAIGNsYXNzIFNDTToKICAgICAgICAgc2Vs
Zi5fc3ViY2xhc3NfbXVzdF9pbXBsZW1lbnQoKQogCiAgICAgZGVmIGFkZChzZWxmLCBwYXRoLCBy
ZXR1cm5fZXhpdF9jb2RlPUZhbHNlKToKKyAgICAgICAgc2VsZi5hZGRfbGlzdChbcGF0aF0sIHJl
dHVybl9leGl0X2NvZGUpCisKKyAgICBkZWYgYWRkX2xpc3Qoc2VsZiwgcGF0aHMsIHJldHVybl9l
eGl0X2NvZGU9RmFsc2UpOgogICAgICAgICBzZWxmLl9zdWJjbGFzc19tdXN0X2ltcGxlbWVudCgp
CiAKICAgICBkZWYgZGVsZXRlKHNlbGYsIHBhdGgpOgorICAgICAgICBzZWxmLmRlbGV0ZV9saXN0
KFtwYXRoXSkKKworICAgIGRlZiBkZWxldGVfbGlzdChzZWxmLCBwYXRocyk6CiAgICAgICAgIHNl
bGYuX3N1YmNsYXNzX211c3RfaW1wbGVtZW50KCkKIAogICAgIGRlZiBleGlzdHMoc2VsZiwgcGF0
aCk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9z
Y20vc2NtX21vY2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9z
Y20vc2NtX21vY2sucHkKaW5kZXggZjIwM2NmYTFhMWQ2YjMzYTk2MTI4MmYwNGQ2Y2Y2YzgwYmMx
MWIwMS4uOGI2Yzc2NDk5ZDVmNDE0N2RmODg4ZWEyY2RjMjZmMmNkYWYzYzYxYyAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbV9tb2NrLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY21fbW9j
ay5weQpAQCAtMzgsNyArMzgsMTAgQEAgY2xhc3MgTW9ja1NDTShvYmplY3QpOgogICAgICAgICBz
ZWxmLl9leGVjdXRpdmUgPSBleGVjdXRpdmUgb3IgTW9ja0V4ZWN1dGl2ZSgpCiAKICAgICBkZWYg
YWRkKHNlbGYsIGRlc3RpbmF0aW9uX3BhdGgsIHJldHVybl9leGl0X2NvZGU9RmFsc2UpOgotICAg
ICAgICBzZWxmLmFkZGVkX3BhdGhzLmFkZChkZXN0aW5hdGlvbl9wYXRoKQorICAgICAgICBzZWxm
LmFkZF9saXN0KFtkZXN0aW5hdGlvbl9wYXRoXSwgcmV0dXJuX2V4aXRfY29kZSkKKworICAgIGRl
ZiBhZGRfbGlzdChzZWxmLCBkZXN0aW5hdGlvbl9wYXRocywgcmV0dXJuX2V4aXRfY29kZT1GYWxz
ZSk6CisgICAgICAgIHNlbGYuYWRkZWRfcGF0aHMudXBkYXRlKHNldChkZXN0aW5hdGlvbl9wYXRo
cykpCiAgICAgICAgIGlmIHJldHVybl9leGl0X2NvZGU6CiAgICAgICAgICAgICByZXR1cm4gMAog
CkBAIC0xMTEsNyArMTE0LDExIEBAIGNsYXNzIE1vY2tTQ00ob2JqZWN0KToKICAgICAgICAgcmV0
dXJuICI0OTgyNCIKIAogICAgIGRlZiBkZWxldGUoc2VsZiwgcGF0aCk6CisgICAgICAgIHJldHVy
biBzZWxmLmRlbGV0ZV9saXN0KFtwYXRoXSkKKworICAgIGRlZiBkZWxldGVfbGlzdChzZWxmLCBw
YXRocyk6CiAgICAgICAgIGlmIG5vdCBzZWxmLl9maWxlc3lzdGVtOgogICAgICAgICAgICAgcmV0
dXJuCi0gICAgICAgIGlmIHNlbGYuX2ZpbGVzeXN0ZW0uZXhpc3RzKHBhdGgpOgotICAgICAgICAg
ICAgc2VsZi5fZmlsZXN5c3RlbS5yZW1vdmUocGF0aCkKKyAgICAgICAgZm9yIHBhdGggaW4gcGF0
aHM6CisgICAgICAgICAgICBpZiBzZWxmLl9maWxlc3lzdGVtLmV4aXN0cyhwYXRoKToKKyAgICAg
ICAgICAgICAgICBzZWxmLl9maWxlc3lzdGVtLnJlbW92ZShwYXRoKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbV91bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY21fdW5pdHRlc3Qu
cHkKaW5kZXggN2NlNzE0YTE5YmFiNjk5OTgwZTk2ZjNkZWVkZjRiMzQzYWI3OTIwMi4uMGZhZTE5
ZGJkODA3ZmI5ZTcwNDQ2MGZmZmIzODNmYTJhZmU0ZWIwZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbV91bml0dGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtX3VuaXR0ZXN0LnB5
CkBAIC00ODYsNiArNDg2LDggQEAgT2NtWWV4JnJlRCQ7c084KkY5TClCCiAgICAgICAgIHNjbS5h
ZGQoJ2Zvby50eHQnKQogICAgICAgICBjb21taXRfZnVuY3Rpb24oJ2FkZGluZyBmb28nKQogICAg
ICAgICBzZWxmLmFzc2VydFRydWUoc2NtLmV4aXN0cygnZm9vLnR4dCcpKQorICAgICAgICBpbXBv
cnQgcGRiCisgICAgICAgIHBkYi5zZXRfdHJhY2UoKQogICAgICAgICBzY20uZGVsZXRlKCdmb28u
dHh0JykKICAgICAgICAgY29tbWl0X2Z1bmN0aW9uKCdkZWxldGluZyBmb28nKQogICAgICAgICBz
ZWxmLmFzc2VydEZhbHNlKHNjbS5leGlzdHMoJ2Zvby50eHQnKSkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zdm4ucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc3ZuLnB5CmluZGV4IDZhMmUxMzE5Yjdi
OTQ2YTkzNDQ5ZTcyNDA0YmE4NDA1OGEyZTQzOGIuLjNjMjY5MTc1Y2I1NmFlYTkzYTljY2Q3NTkw
YmM5NTgyNDA4YWEwNWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NoZWNrb3V0L3NjbS9zdm4ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
Y2hlY2tvdXQvc2NtL3N2bi5weQpAQCAtMTc4LDkgKzE3OCwxMCBAQCBjbGFzcyBTVk4oU0NNLCBT
Vk5SZXBvc2l0b3J5KToKICAgICAgICAgICAgIHNlbGYuX2FkZF9wYXJlbnRfZGlyZWN0b3JpZXMo
ZGlybmFtZSkKICAgICAgICAgc2VsZi5hZGQocGF0aCkKIAotICAgIGRlZiBhZGQoc2VsZiwgcGF0
aCwgcmV0dXJuX2V4aXRfY29kZT1GYWxzZSk6Ci0gICAgICAgIHNlbGYuX2FkZF9wYXJlbnRfZGly
ZWN0b3JpZXMob3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChwYXRoKSkpCi0gICAgICAg
IHJldHVybiBzZWxmLl9ydW5fc3ZuKFsiYWRkIiwgcGF0aF0sIHJldHVybl9leGl0X2NvZGU9cmV0
dXJuX2V4aXRfY29kZSkKKyAgICBkZWYgYWRkX2xpc3Qoc2VsZiwgcGF0aHMsIHJldHVybl9leGl0
X2NvZGU9RmFsc2UpOgorICAgICAgICBmb3IgcGF0aCBpbiBwYXRoczoKKyAgICAgICAgICAgIHNl
bGYuX2FkZF9wYXJlbnRfZGlyZWN0b3JpZXMob3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0
aChwYXRoKSkpCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fc3ZuKFsiYWRkIl0gKyBwYXRocywg
cmV0dXJuX2V4aXRfY29kZT1yZXR1cm5fZXhpdF9jb2RlKQogCiAgICAgZGVmIF9kZWxldGVfcGFy
ZW50X2RpcmVjdG9yaWVzKHNlbGYsIHBhdGgpOgogICAgICAgICBpZiBub3Qgc2VsZi5pbl93b3Jr
aW5nX2RpcmVjdG9yeShwYXRoKToKQEAgLTE5MiwxMSArMTkzLDEyIEBAIGNsYXNzIFNWTihTQ00s
IFNWTlJlcG9zaXRvcnkpOgogICAgICAgICBpZiBkaXJuYW1lICE9IHBhdGg6CiAgICAgICAgICAg
ICBzZWxmLl9kZWxldGVfcGFyZW50X2RpcmVjdG9yaWVzKGRpcm5hbWUpCiAKLSAgICBkZWYgZGVs
ZXRlKHNlbGYsIHBhdGgpOgotICAgICAgICBhYnNfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChwYXRo
KQotICAgICAgICBwYXJlbnQsIGJhc2UgPSBvcy5wYXRoLnNwbGl0KGFic19wYXRoKQotICAgICAg
ICByZXN1bHQgPSBzZWxmLl9ydW5fc3ZuKFsiZGVsZXRlIiwgIi0tZm9yY2UiLCBiYXNlXSwgY3dk
PXBhcmVudCkKLSAgICAgICAgc2VsZi5fZGVsZXRlX3BhcmVudF9kaXJlY3Rvcmllcyhvcy5wYXRo
LmRpcm5hbWUoYWJzX3BhdGgpKQorICAgIGRlZiBkZWxldGVfbGlzdChzZWxmLCBwYXRocyk6Cisg
ICAgICAgIGZvciBwYXRoIGluIHBhdGhzOgorICAgICAgICAgICAgYWJzX3BhdGggPSBvcy5wYXRo
LmFic3BhdGgocGF0aCkKKyAgICAgICAgICAgIHBhcmVudCwgYmFzZSA9IG9zLnBhdGguc3BsaXQo
YWJzX3BhdGgpCisgICAgICAgICAgICByZXN1bHQgPSBzZWxmLl9ydW5fc3ZuKFsiZGVsZXRlIiwg
Ii0tZm9yY2UiLCBiYXNlXSwgY3dkPXBhcmVudCkKKyAgICAgICAgICAgIHNlbGYuX2RlbGV0ZV9w
YXJlbnRfZGlyZWN0b3JpZXMob3MucGF0aC5kaXJuYW1lKGFic19wYXRoKSkKICAgICAgICAgcmV0
dXJuIHJlc3VsdAogCiAgICAgZGVmIGV4aXN0cyhzZWxmLCBwYXRoKToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144128</attachid>
            <date>2012-05-25 12:59:16 -0700</date>
            <delta_ts>2012-05-25 14:47:54 -0700</delta_ts>
            <desc>add tests</desc>
            <filename>bug-87528-20120525125915.patch</filename>
            <type>text/plain</type>
            <size>9430</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NDQ3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMGI5ZDcxYjQyNmYwNDUzMDBkZmUxZWYzOTlhYjk3Mjkw
NmFhNjgxMC4uZmFiNjc5ZjQ3NGY4Y2M3MTZmYWE2ODhhMjhjMzk3MTQxOGJkNzg4ZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3
IEBACisyMDEyLTA1LTI1ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIHdlYmtpdHB5OiBjaGFuZ2Ugc2NtLmFkZCgpLCBzY20uZGVsZXRlKCkgdG8gYWNjZXB0
IG11bHRpcGxlIHBhdGhzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NzUyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGxhdW5jaGluZyBnaXQgb3Igc3ZuIGZvciBpbmRpdmlkdWFsIGZpbGVzIGNhbiBiZSBz
bG93OyB0aGlzCisgICAgICAgIGNoYW5nZSB3aWxsIGhhbmQgbXVsdGlwbGUgcGF0aHMgYXQgb25j
ZSB0byBnaXQgYW5kIHN2biBzbyB0aGV5CisgICAgICAgIGNhbiBiZSBhZGRlZCBpbiBhIGJhdGNo
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL2dpdC5w
eToKKyAgICAgICAgKEdpdC5hZGRfbGlzdCk6CisgICAgICAgIChHaXQuZGVsZXRlX2xpc3QpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY20ucHk6Cisg
ICAgICAgIChTQ00uYWRkKToKKyAgICAgICAgKFNDTSk6CisgICAgICAgIChTQ00uYWRkX2xpc3Qp
OgorICAgICAgICAoU0NNLmRlbGV0ZSk6CisgICAgICAgIChTQ00uZGVsZXRlX2xpc3QpOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY21fbW9jay5weToK
KyAgICAgICAgKE1vY2tTQ00uYWRkKToKKyAgICAgICAgKE1vY2tTQ00pOgorICAgICAgICAoTW9j
a1NDTS5hZGRfbGlzdCk6CisgICAgICAgIChNb2NrU0NNLmRlbGV0ZSk6CisgICAgICAgIChNb2Nr
U0NNLmRlbGV0ZV9saXN0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVj
a291dC9zY20vc2NtX3VuaXR0ZXN0LnB5OgorICAgICAgICAoX3NoYXJlZF90ZXN0X2V4aXN0cyk6
CisgICAgICAgIChfc2hhcmVkX3Rlc3RfYWRkZWRfZmlsZXMpOgorICAgICAgICAoX3Rlc3RfZGVs
ZXRlX2xpc3QpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3Nj
bS9zdm4ucHk6CisgICAgICAgIChTVk4uYWRkX2xpc3QpOgorICAgICAgICAoU1ZOLmRlbGV0ZV9s
aXN0KToKKwogMjAxMi0wNS0yNCAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBnYXJkZW4tby1tYXRpYyBzaG91bGQgbm90IGZldGNoIGZyb20gZGVidWcgYm90
cyBpZiBpdCBhbHNvIGtub3dzIGFib3V0IHRoZSByZWxlYXNlIGJvdHMKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9naXQucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vZ2l0LnB5CmluZGV4IGM3ZGJkN2Nh
MTNjODVmMjU2OGI3MmE3ZTdjMzdhMGZkM2NlODM0ZmUuLjQzZmRiOWMwMDM0ODQ4YWEzODZiMjhi
ZmY1ZTYzMjI0NjM4MzBkNGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NoZWNrb3V0L3NjbS9naXQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY2hlY2tvdXQvc2NtL2dpdC5weQpAQCAtMTYwLDExICsxNjAsMTEgQEAgY2xhc3MgR2l0KFND
TSwgU1ZOUmVwb3NpdG9yeSk6CiAgICAgZGVmIF9zdGF0dXNfcmVnZXhwKHNlbGYsIGV4cGVjdGVk
X3R5cGVzKToKICAgICAgICAgcmV0dXJuICdeKD9QPHN0YXR1cz5bJXNdKVx0KD9QPGZpbGVuYW1l
Pi4rKSQnICUgZXhwZWN0ZWRfdHlwZXMKIAotICAgIGRlZiBhZGQoc2VsZiwgcGF0aCwgcmV0dXJu
X2V4aXRfY29kZT1GYWxzZSk6Ci0gICAgICAgIHJldHVybiBzZWxmLnJ1bihbImdpdCIsICJhZGQi
LCBwYXRoXSwgcmV0dXJuX2V4aXRfY29kZT1yZXR1cm5fZXhpdF9jb2RlKQorICAgIGRlZiBhZGRf
bGlzdChzZWxmLCBwYXRocywgcmV0dXJuX2V4aXRfY29kZT1GYWxzZSk6CisgICAgICAgIHJldHVy
biBzZWxmLnJ1bihbImdpdCIsICJhZGQiXSArIHBhdGhzLCByZXR1cm5fZXhpdF9jb2RlPXJldHVy
bl9leGl0X2NvZGUpCiAKLSAgICBkZWYgZGVsZXRlKHNlbGYsIHBhdGgpOgotICAgICAgICByZXR1
cm4gc2VsZi5ydW4oWyJnaXQiLCAicm0iLCAiLWYiLCBwYXRoXSkKKyAgICBkZWYgZGVsZXRlX2xp
c3Qoc2VsZiwgcGF0aHMpOgorICAgICAgICByZXR1cm4gc2VsZi5ydW4oWyJnaXQiLCAicm0iLCAi
LWYiXSArIHBhdGhzKQogCiAgICAgZGVmIGV4aXN0cyhzZWxmLCBwYXRoKToKICAgICAgICAgcmV0
dXJuX2NvZGUgPSBzZWxmLnJ1bihbImdpdCIsICJzaG93IiwgIkhFQUQ6JXMiICUgcGF0aF0sIHJl
dHVybl9leGl0X2NvZGU9VHJ1ZSwgZGVjb2RlX291dHB1dD1GYWxzZSkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY20ucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtLnB5CmluZGV4IDlmZjllNWY3
N2I0NjFlNzhmYTAyNjkxYzhlZTc2MWViZDE5MDMzMjYuLjZiNmU2ZmNmMGFmMTNjN2Q0YjA3NmFh
YzcyYjcxZTA3MDBkZDFlY2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NoZWNrb3V0L3NjbS9zY20ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY2hlY2tvdXQvc2NtL3NjbS5weQpAQCAtMTU0LDkgKzE1NCwxNSBAQCBjbGFzcyBTQ006CiAg
ICAgICAgIHNlbGYuX3N1YmNsYXNzX211c3RfaW1wbGVtZW50KCkKIAogICAgIGRlZiBhZGQoc2Vs
ZiwgcGF0aCwgcmV0dXJuX2V4aXRfY29kZT1GYWxzZSk6CisgICAgICAgIHNlbGYuYWRkX2xpc3Qo
W3BhdGhdLCByZXR1cm5fZXhpdF9jb2RlKQorCisgICAgZGVmIGFkZF9saXN0KHNlbGYsIHBhdGhz
LCByZXR1cm5fZXhpdF9jb2RlPUZhbHNlKToKICAgICAgICAgc2VsZi5fc3ViY2xhc3NfbXVzdF9p
bXBsZW1lbnQoKQogCiAgICAgZGVmIGRlbGV0ZShzZWxmLCBwYXRoKToKKyAgICAgICAgc2VsZi5k
ZWxldGVfbGlzdChbcGF0aF0pCisKKyAgICBkZWYgZGVsZXRlX2xpc3Qoc2VsZiwgcGF0aHMpOgog
ICAgICAgICBzZWxmLl9zdWJjbGFzc19tdXN0X2ltcGxlbWVudCgpCiAKICAgICBkZWYgZXhpc3Rz
KHNlbGYsIHBhdGgpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
Y2hlY2tvdXQvc2NtL3NjbV9tb2NrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
Y2hlY2tvdXQvc2NtL3NjbV9tb2NrLnB5CmluZGV4IGYyMDNjZmExYTFkNmIzM2E5NjEyODJmMDRk
NmNmNmM4MGJjMTFiMDEuLjhiNmM3NjQ5OWQ1ZjQxNDdkZjg4OGVhMmNkYzI2ZjJjZGFmM2M2MWMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9z
Y21fbW9jay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9z
Y20vc2NtX21vY2sucHkKQEAgLTM4LDcgKzM4LDEwIEBAIGNsYXNzIE1vY2tTQ00ob2JqZWN0KToK
ICAgICAgICAgc2VsZi5fZXhlY3V0aXZlID0gZXhlY3V0aXZlIG9yIE1vY2tFeGVjdXRpdmUoKQog
CiAgICAgZGVmIGFkZChzZWxmLCBkZXN0aW5hdGlvbl9wYXRoLCByZXR1cm5fZXhpdF9jb2RlPUZh
bHNlKToKLSAgICAgICAgc2VsZi5hZGRlZF9wYXRocy5hZGQoZGVzdGluYXRpb25fcGF0aCkKKyAg
ICAgICAgc2VsZi5hZGRfbGlzdChbZGVzdGluYXRpb25fcGF0aF0sIHJldHVybl9leGl0X2NvZGUp
CisKKyAgICBkZWYgYWRkX2xpc3Qoc2VsZiwgZGVzdGluYXRpb25fcGF0aHMsIHJldHVybl9leGl0
X2NvZGU9RmFsc2UpOgorICAgICAgICBzZWxmLmFkZGVkX3BhdGhzLnVwZGF0ZShzZXQoZGVzdGlu
YXRpb25fcGF0aHMpKQogICAgICAgICBpZiByZXR1cm5fZXhpdF9jb2RlOgogICAgICAgICAgICAg
cmV0dXJuIDAKIApAQCAtMTExLDcgKzExNCwxMSBAQCBjbGFzcyBNb2NrU0NNKG9iamVjdCk6CiAg
ICAgICAgIHJldHVybiAiNDk4MjQiCiAKICAgICBkZWYgZGVsZXRlKHNlbGYsIHBhdGgpOgorICAg
ICAgICByZXR1cm4gc2VsZi5kZWxldGVfbGlzdChbcGF0aF0pCisKKyAgICBkZWYgZGVsZXRlX2xp
c3Qoc2VsZiwgcGF0aHMpOgogICAgICAgICBpZiBub3Qgc2VsZi5fZmlsZXN5c3RlbToKICAgICAg
ICAgICAgIHJldHVybgotICAgICAgICBpZiBzZWxmLl9maWxlc3lzdGVtLmV4aXN0cyhwYXRoKToK
LSAgICAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0ucmVtb3ZlKHBhdGgpCisgICAgICAgIGZvciBw
YXRoIGluIHBhdGhzOgorICAgICAgICAgICAgaWYgc2VsZi5fZmlsZXN5c3RlbS5leGlzdHMocGF0
aCk6CisgICAgICAgICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbS5yZW1vdmUocGF0aCkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY21fdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2Nt
X3VuaXR0ZXN0LnB5CmluZGV4IDdjZTcxNGExOWJhYjY5OTk4MGU5NmYzZGVlZGY0YjM0M2FiNzky
MDIuLjgwMmZlMmNlZTJkOGE1ZTczNWQwZjVjYzkyZjNlN2M4NjRiZTlmMmQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY21fdW5pdHRlc3Qu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbV91
bml0dGVzdC5weQpAQCAtMzE1LDYgKzMxNSwxMCBAQCBjbGFzcyBTQ01UZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKICAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgoImFkZGVkX2ZpbGUiLCAi
bmV3IHN0dWZmIikKICAgICAgICAgc2VsZi5zY20uYWRkKCJhZGRlZF9maWxlIikKIAorICAgICAg
ICB3cml0ZV9pbnRvX2ZpbGVfYXRfcGF0aCgiYWRkZWRfZmlsZTMiLCAibW9yZSBuZXcgc3R1ZmYi
KQorICAgICAgICB3cml0ZV9pbnRvX2ZpbGVfYXRfcGF0aCgiYWRkZWRfZmlsZTQiLCAibW9yZSBu
ZXcgc3R1ZmYiKQorICAgICAgICBzZWxmLnNjbS5hZGRfbGlzdChbImFkZGVkX2ZpbGUzIiwgImFk
ZGVkX2ZpbGU0Il0pCisKICAgICAgICAgb3MubWtkaXIoImFkZGVkX2RpciIpCiAgICAgICAgIHdy
aXRlX2ludG9fZmlsZV9hdF9wYXRoKCJhZGRlZF9kaXIvYWRkZWRfZmlsZTIiLCAibmV3IHN0dWZm
IikKICAgICAgICAgc2VsZi5zY20uYWRkKCJhZGRlZF9kaXIiKQpAQCAtMzIzLDEyICszMjcsMTQg
QEAgY2xhc3MgU0NNVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGFkZGVkX2ZpbGVz
ID0gc2VsZi5zY20uYWRkZWRfZmlsZXMoKQogICAgICAgICBpZiAiYWRkZWRfZGlyIiBpbiBhZGRl
ZF9maWxlczoKICAgICAgICAgICAgIGFkZGVkX2ZpbGVzLnJlbW92ZSgiYWRkZWRfZGlyIikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRlZF9maWxlcywgWyJhZGRlZF9kaXIvYWRkZWRfZmls
ZTIiLCAiYWRkZWRfZmlsZSJdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZGVkX2ZpbGVz
LCBbImFkZGVkX2Rpci9hZGRlZF9maWxlMiIsICJhZGRlZF9maWxlIiwgImFkZGVkX2ZpbGUzIiwg
ImFkZGVkX2ZpbGU0Il0pCiAKICAgICAgICAgIyBUZXN0IGFsc28gdG8gbWFrZSBzdXJlIGNsZWFu
X3dvcmtpbmdfZGlyZWN0b3J5IHJlbW92ZXMgYWRkZWQgZmlsZXMKICAgICAgICAgc2VsZi5zY20u
Y2xlYW5fd29ya2luZ19kaXJlY3RvcnkoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYu
c2NtLmFkZGVkX2ZpbGVzKCksIFtdKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9zLnBhdGgu
ZXhpc3RzKCJhZGRlZF9maWxlIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3MucGF0aC5l
eGlzdHMoImFkZGVkX2ZpbGUzIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3MucGF0aC5l
eGlzdHMoImFkZGVkX2ZpbGU0IikpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3MucGF0aC5l
eGlzdHMoImFkZGVkX2RpciIpKQogCiAgICAgZGVmIF9zaGFyZWRfdGVzdF9jaGFuZ2VkX2ZpbGVz
X2Zvcl9yZXZpc2lvbihzZWxmKToKQEAgLTgyMCw2ICs4MjYsMTIgQEAgRU5ECiAgICAgICAgIHNl
bGYuc2NtLmRlbGV0ZSgidGVzdF9maWxlIikKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCJ0ZXN0
X2ZpbGUiIGluIHNlbGYuc2NtLmRlbGV0ZWRfZmlsZXMoKSkKIAorICAgIGRlZiB0ZXN0X2RlbGV0
ZV9saXN0KHNlbGYpOgorICAgICAgICBvcy5jaGRpcihzZWxmLnN2bl9jaGVja291dF9wYXRoKQor
ICAgICAgICBzZWxmLnNjbS5kZWxldGVfbGlzdChbInRlc3RfZmlsZSIsICJ0ZXN0X2ZpbGUyIl0p
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgidGVzdF9maWxlIiBpbiBzZWxmLnNjbS5kZWxldGVk
X2ZpbGVzKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgidGVzdF9maWxlMiIgaW4gc2VsZi5z
Y20uZGVsZXRlZF9maWxlcygpKQorCiAgICAgZGVmIHRlc3RfZGVsZXRlX3JlY3Vyc2l2ZWx5KHNl
bGYpOgogICAgICAgICBzZWxmLl9zaGFyZWRfdGVzdF9kZWxldGVfcmVjdXJzaXZlbHkoKQogCkBA
IC0xMTcyLDcgKzExODQsNyBAQCBjbGFzcyBHaXRTVk5UZXN0KFNDTVRlc3QpOgogCiAgICAgZGVm
IF90d29fbG9jYWxfY29tbWl0cyhzZWxmKToKICAgICAgICAgc2VsZi5fb25lX2xvY2FsX2NvbW1p
dCgpCi0gICAgICAgIHNlbGYuX3NlY29uZF9sb2NhbF9jb21tdCgpCisgICAgICAgIHNlbGYuX3Nl
Y29uZF9sb2NhbF9jb21taXQoKQogCiAgICAgZGVmIF90aHJlZV9sb2NhbF9jb21taXRzKHNlbGYp
OgogICAgICAgICBzZWxmLl9sb2NhbF9jb21taXQoJ3Rlc3RfZmlsZV9jb21taXQwJywgJ21vcmUg
dGVzdCBjb250ZW50JywgJ2Fub3RoZXIgdGVzdCBjb21taXQnKQpAQCAtMTUxNyw2ICsxNTI5LDEy
IEBAIGNsYXNzIEdpdFNWTlRlc3QoU0NNVGVzdCk6CiAgICAgICAgIHNlbGYuc2NtLmRlbGV0ZSgn
dGVzdF9maWxlX2NvbW1pdDEnKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoInRlc3RfZmlsZV9j
b21taXQxIiBpbiBzZWxmLnNjbS5kZWxldGVkX2ZpbGVzKCkpCiAKKyAgICBkZWYgdGVzdF9kZWxl
dGVfbGlzdChzZWxmKToKKyAgICAgICAgc2VsZi5fdHdvX2xvY2FsX2NvbW1pdHMoKQorICAgICAg
ICBzZWxmLnNjbS5kZWxldGVfbGlzdChbInRlc3RfZmlsZV9jb21taXQxIiwgInRlc3RfZmlsZV9j
b21taXQyIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgidGVzdF9maWxlX2NvbW1pdDEiIGlu
IHNlbGYuc2NtLmRlbGV0ZWRfZmlsZXMoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCJ0ZXN0
X2ZpbGVfY29tbWl0MiIgaW4gc2VsZi5zY20uZGVsZXRlZF9maWxlcygpKQorCiAgICAgZGVmIHRl
c3RfZGVsZXRlX3JlY3Vyc2l2ZWx5KHNlbGYpOgogICAgICAgICBzZWxmLl9zaGFyZWRfdGVzdF9k
ZWxldGVfcmVjdXJzaXZlbHkoKQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9jaGVja291dC9zY20vc3ZuLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY2hlY2tvdXQvc2NtL3N2bi5weQppbmRleCA2YTJlMTMxOWI3Yjk0NmE5MzQ0OWU3MjQwNGJh
ODQwNThhMmU0MzhiLi4zYzI2OTE3NWNiNTZhZWE5M2E5Y2NkNzU5MGJjOTU4MjQwOGFhMDViIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc3Zu
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zdm4u
cHkKQEAgLTE3OCw5ICsxNzgsMTAgQEAgY2xhc3MgU1ZOKFNDTSwgU1ZOUmVwb3NpdG9yeSk6CiAg
ICAgICAgICAgICBzZWxmLl9hZGRfcGFyZW50X2RpcmVjdG9yaWVzKGRpcm5hbWUpCiAgICAgICAg
IHNlbGYuYWRkKHBhdGgpCiAKLSAgICBkZWYgYWRkKHNlbGYsIHBhdGgsIHJldHVybl9leGl0X2Nv
ZGU9RmFsc2UpOgotICAgICAgICBzZWxmLl9hZGRfcGFyZW50X2RpcmVjdG9yaWVzKG9zLnBhdGgu
ZGlybmFtZShvcy5wYXRoLmFic3BhdGgocGF0aCkpKQotICAgICAgICByZXR1cm4gc2VsZi5fcnVu
X3N2bihbImFkZCIsIHBhdGhdLCByZXR1cm5fZXhpdF9jb2RlPXJldHVybl9leGl0X2NvZGUpCisg
ICAgZGVmIGFkZF9saXN0KHNlbGYsIHBhdGhzLCByZXR1cm5fZXhpdF9jb2RlPUZhbHNlKToKKyAg
ICAgICAgZm9yIHBhdGggaW4gcGF0aHM6CisgICAgICAgICAgICBzZWxmLl9hZGRfcGFyZW50X2Rp
cmVjdG9yaWVzKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgocGF0aCkpKQorICAgICAg
ICByZXR1cm4gc2VsZi5fcnVuX3N2bihbImFkZCJdICsgcGF0aHMsIHJldHVybl9leGl0X2NvZGU9
cmV0dXJuX2V4aXRfY29kZSkKIAogICAgIGRlZiBfZGVsZXRlX3BhcmVudF9kaXJlY3Rvcmllcyhz
ZWxmLCBwYXRoKToKICAgICAgICAgaWYgbm90IHNlbGYuaW5fd29ya2luZ19kaXJlY3RvcnkocGF0
aCk6CkBAIC0xOTIsMTEgKzE5MywxMiBAQCBjbGFzcyBTVk4oU0NNLCBTVk5SZXBvc2l0b3J5KToK
ICAgICAgICAgaWYgZGlybmFtZSAhPSBwYXRoOgogICAgICAgICAgICAgc2VsZi5fZGVsZXRlX3Bh
cmVudF9kaXJlY3RvcmllcyhkaXJuYW1lKQogCi0gICAgZGVmIGRlbGV0ZShzZWxmLCBwYXRoKToK
LSAgICAgICAgYWJzX3BhdGggPSBvcy5wYXRoLmFic3BhdGgocGF0aCkKLSAgICAgICAgcGFyZW50
LCBiYXNlID0gb3MucGF0aC5zcGxpdChhYnNfcGF0aCkKLSAgICAgICAgcmVzdWx0ID0gc2VsZi5f
cnVuX3N2bihbImRlbGV0ZSIsICItLWZvcmNlIiwgYmFzZV0sIGN3ZD1wYXJlbnQpCi0gICAgICAg
IHNlbGYuX2RlbGV0ZV9wYXJlbnRfZGlyZWN0b3JpZXMob3MucGF0aC5kaXJuYW1lKGFic19wYXRo
KSkKKyAgICBkZWYgZGVsZXRlX2xpc3Qoc2VsZiwgcGF0aHMpOgorICAgICAgICBmb3IgcGF0aCBp
biBwYXRoczoKKyAgICAgICAgICAgIGFic19wYXRoID0gb3MucGF0aC5hYnNwYXRoKHBhdGgpCisg
ICAgICAgICAgICBwYXJlbnQsIGJhc2UgPSBvcy5wYXRoLnNwbGl0KGFic19wYXRoKQorICAgICAg
ICAgICAgcmVzdWx0ID0gc2VsZi5fcnVuX3N2bihbImRlbGV0ZSIsICItLWZvcmNlIiwgYmFzZV0s
IGN3ZD1wYXJlbnQpCisgICAgICAgICAgICBzZWxmLl9kZWxldGVfcGFyZW50X2RpcmVjdG9yaWVz
KG9zLnBhdGguZGlybmFtZShhYnNfcGF0aCkpCiAgICAgICAgIHJldHVybiByZXN1bHQKIAogICAg
IGRlZiBleGlzdHMoc2VsZiwgcGF0aCk6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144150</attachid>
            <date>2012-05-25 14:48:01 -0700</date>
            <delta_ts>2012-05-25 15:01:03 -0700</delta_ts>
            <desc>ignore - wrong bug</desc>
            <filename>bug-87528-20120525144800.patch</filename>
            <type>text/plain</type>
            <size>11504</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NTU3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTgwYzliYzk5MjEzNDhjYThmMTQwYWJjMzA1ZjQ2Yzc1
YWYyMDYxYS4uNTY3MTlhODI5YzYzZDgzY2RhNWU5ZmIwNDk4YjM0NDljZjZiYWU4ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDEyLTA1LTI0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIGdhcmRlbi1vLW1hdGljIHNob3VsZCByZWJhc2VsaW5lIGJhc2VsaW5lcyBpbiBwYXJh
bGxlbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc0
NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lLnB5OgorICAgICAgICAoQWJz
dHJhY3RSZWJhc2VsaW5pbmdDb21tYW5kLl9faW5pdF9fKToKKyAgICAgICAgKFJlYmFzZWxpbmVU
ZXN0Ll9jb3B5X2V4aXN0aW5nX2Jhc2VsaW5lKToKKyAgICAgICAgKFJlYmFzZWxpbmVUZXN0Ll9z
YXZlX2Jhc2VsaW5lKToKKyAgICAgICAgKFJlYmFzZWxpbmVUZXN0KToKKyAgICAgICAgKFJlYmFz
ZWxpbmVUZXN0Ll9hZGRfdG9fc2NtKToKKyAgICAgICAgKFJlYmFzZWxpbmVUZXN0LmV4ZWN1dGUp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZl
ci5weToKKyAgICAgICAgKEdhcmRlbmluZ0hUVFBSZXF1ZXN0SGFuZGxlci5yZWJhc2VsaW5lYWxs
KToKKyAgICAgICAgKHJ1bl9jb21tYW5kKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9zeXN0ZW0vZXhlY3V0aXZlLnB5OgorICAgICAgICAoRXhlY3V0aXZlLnJ1bl9pbl9wYXJh
bGxlbCk6CisgICAgICAgIChfcnVuX2NvbW1hbmRfdGh1bmspOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfbW9jay5weToKKyAgICAgICAgKE1vY2tF
eGVjdXRpdmUucnVuX2luX3BhcmFsbGVsKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9zeXN0ZW0vZXhlY3V0aXZlX3VuaXR0ZXN0LnB5OgorICAgICAgICAoRXhlY3V0aXZlVGVz
dC50ZXN0X3J1bl9pbl9wYXJhbGxlbCk6CisKIDIwMTItMDUtMjUgIERpcmsgUHJhbmtlICA8ZHBy
YW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgd2Via2l0cHk6IGNoYW5nZSBzY20uYWRkKCks
IHNjbS5kZWxldGUoKSB0byBhY2NlcHQgbXVsdGlwbGUgcGF0aHMKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmUucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlLnB5CmluZGV4IDQzZGNiY2ExYjM4
Y2IyMTgyY2I3OTA1MWZkMWY1ZGNlZjYwNzVhMTcuLmVhMWI2ZGJiMDQ4OGE3ZGM0NDM5MWIxMGM3
MTMzY2RkMzI1MDkxY2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L3N5c3RlbS9leGVjdXRpdmUucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
c3lzdGVtL2V4ZWN1dGl2ZS5weQpAQCAtNDUxLDMgKzQ1MSwxNCBAQCBjbGFzcyBFeGVjdXRpdmUo
b2JqZWN0KToKIAogICAgIGRlZiBwb3BlbihzZWxmLCAqYXJncywgKiprd2FyZ3MpOgogICAgICAg
ICByZXR1cm4gc3VicHJvY2Vzcy5Qb3BlbigqYXJncywgKiprd2FyZ3MpCisKKyAgICBkZWYgcnVu
X2luX3BhcmFsbGVsKHNlbGYsIGNvbW1hbmRfbGluZXNfYW5kX2N3ZHMsIHByb2Nlc3Nlcz1Ob25l
KToKKyAgICAgICAgIiIiUnVucyBhIGxpc3Qgb2YgKGNtZF9saW5lIGxpc3QsIGN3ZCBzdHJpbmcp
IHR1cGxlcyBpbiBwYXJhbGxlbCBhbmQgcmV0dXJucyBhIGxpc3Qgb2YgKHJldGNvZGUsIHN0ZG91
dCwgc3RkZXJyKSB0dXBsZXMuIiIiCisgICAgICAgIHJldHVybiBtdWx0aXByb2Nlc3NpbmcuUG9v
bChwcm9jZXNzZXM9cHJvY2Vzc2VzKS5tYXAoX3J1bl9jb21tYW5kX3RodW5rLCBjb21tYW5kX2xp
bmVzX2FuZF9jd2RzKQorCisKK2RlZiBfcnVuX2NvbW1hbmRfdGh1bmsoY21kX2xpbmVfYW5kX2N3
ZCk6CisgICAgKGNtZF9saW5lLCBjd2QpID0gY21kX2xpbmVfYW5kX2N3ZAorICAgIHByb2MgPSBz
dWJwcm9jZXNzLlBvcGVuKGNtZF9saW5lLCBjd2Q9Y3dkLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBF
LCBzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQorICAgIHN0ZG91dCwgc3RkZXJyID0gcHJvYy5jb21t
dW5pY2F0ZSgpCisgICAgcmV0dXJuIChwcm9jLnJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2
ZV9tb2NrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2
ZV9tb2NrLnB5CmluZGV4IGQ1N2E1YzQ4MDgwOTM4YmFhNWYxZWE1YmQwMjBlZTc0Y2YwNzJlZDMu
LmIwZGI0OGNhM2NhNDVhYWMxODM5NTUwY2I5M2Q1MDQ4NmQzYTFhZjQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfbW9jay5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21vY2sucHkK
QEAgLTEwOCw2ICsxMDgsMTEgQEAgY2xhc3MgTW9ja0V4ZWN1dGl2ZShvYmplY3QpOgogICAgICAg
ICAgICAgc2VsZi5fcHJvYyA9IE1vY2tQcm9jZXNzKCkKICAgICAgICAgcmV0dXJuIHNlbGYuX3By
b2MKIAorICAgIGRlZiBydW5faW5fcGFyYWxsZWwoc2VsZiwgY29tbWFuZHMpOgorICAgICAgICBj
b21tYW5kX291dHB1dHMgPSBbXQorICAgICAgICBmb3IgY21kX2xpbmUsIGN3ZCBpbiBjb21tYW5k
czoKKyAgICAgICAgICAgIGNvbW1hbmRfb3V0cHV0cy5hcHBlbmQoWzAsIHNlbGYucnVuX2NvbW1h
bmQoY21kX2xpbmUsIGN3ZD1jd2QpLCAnJ10pCisgICAgICAgIHJldHVybiBjb21tYW5kX291dHB1
dHMKIAogY2xhc3MgTW9ja0V4ZWN1dGl2ZTIob2JqZWN0KToKICAgICBAc3RhdGljbWV0aG9kCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZl
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1
dGl2ZV91bml0dGVzdC5weQppbmRleCBjNjNmZjM1NTVhZTE4ZTcwMTMwMjE5MGI3YmFiN2U5ZGVl
N2E4N2FkLi40NjZlMmVjMDIwYjljODNmNDI5MjUzYTk5YzdmOWI0ZjdlN2U3Njc3IDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX3VuaXR0
ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRp
dmVfdW5pdHRlc3QucHkKQEAgLTMxLDYgKzMxLDcgQEAgaW1wb3J0IG9zCiBpbXBvcnQgc2lnbmFs
CiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHN5cworaW1wb3J0IHRpbWUKIGltcG9ydCB1bml0
dGVzdAogCiAjIFNpbmNlIHdlIGV4ZWN1dGUgdGhpcyBzY3JpcHQgZGlyZWN0bHkgYXMgcGFydCBv
ZiB0aGUgdW5pdCB0ZXN0cywgd2UgbmVlZCB0byBlbnN1cmUKQEAgLTIxNiw2ICsyMTcsMTggQEAg
Y2xhc3MgRXhlY3V0aXZlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHBpZHMgPSBl
eGVjdXRpdmUucnVubmluZ19waWRzKCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zLmdldHBp
ZCgpIGluIHBpZHMpCiAKKyAgICBkZWYgdGVzdF9ydW5faW5fcGFyYWxsZWwoc2VsZik6CisgICAg
ICAgIE5VTV9QUk9DRVNTRVMgPSA0CisgICAgICAgIERFTEFZX1NFQ1MgPSAwLjI1CisgICAgICAg
IGNtZF9saW5lID0gW3N5cy5leGVjdXRhYmxlLCAnLWMnLCAnaW1wb3J0IHRpbWU7IHRpbWUuc2xl
ZXAoJWYpOyBwcmludCAiaGVsbG8iJyAlIERFTEFZX1NFQ1NdCisgICAgICAgIGN3ZCA9IG9zLmdl
dGN3ZCgpCisgICAgICAgIGNvbW1hbmRzID0gW3R1cGxlKFtjbWRfbGluZSwgY3dkXSldICogTlVN
X1BST0NFU1NFUworICAgICAgICBzdGFydCA9IHRpbWUudGltZSgpCisgICAgICAgIGNvbW1hbmRf
b3V0cHV0cyA9IEV4ZWN1dGl2ZSgpLnJ1bl9pbl9wYXJhbGxlbChjb21tYW5kcywgcHJvY2Vzc2Vz
PU5VTV9QUk9DRVNTRVMpCisgICAgICAgIGRvbmUgPSB0aW1lLnRpbWUoKQorICAgICAgICBzZWxm
LmFzc2VydFRydWUoZG9uZSAtIHN0YXJ0IDwgTlVNX1BST0NFU1NFUyAqIERFTEFZX1NFQ1MpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtvdXRwdXRbMV0gZm9yIG91dHB1dCBpbiBjb21tYW5k
X291dHB1dHNdLCBbImhlbGxvXG4iXSAqIE5VTV9QUk9DRVNTRVMpCisKIAogZGVmIG1haW4ocGxh
dGZvcm0sIHN0ZGluLCBzdGRvdXQsIGNtZCwgYXJncyk6CiAgICAgaWYgcGxhdGZvcm0gPT0gJ3dp
bjMyJyBhbmQgaGFzYXR0cihzdGRvdXQsICdmaWxlbm8nKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmUucHkKaW5kZXggMzA0MDk3ODNmN2Yw
NDYyNzVkZGJiMDYzOWVkYzg4NjQ4ZDczYTFlMS4uNDIwODk3M2M0YWY4ODMyNzg1YTljZWYyZjBi
NTU0MWVmYTI3ZmZmOSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL3JlYmFzZWxpbmUucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL3JlYmFzZWxpbmUucHkKQEAgLTU5LDEwICs1OSwxMiBAQCBkZWYgX2Jhc2VsaW5lX25h
bWUoZnMsIHRlc3RfbmFtZSwgc3VmZml4KToKIGNsYXNzIEFic3RyYWN0UmViYXNlbGluaW5nQ29t
bWFuZChBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYp
OgogICAgICAgICBvcHRpb25zID0gWworICAgICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24o
Ii0tZGVmZXItc2NtLWFkZHMiLCBhY3Rpb249InN0b3JlX3RydWUiLCBoZWxwPSJPdXRwdXQgY29t
bWFuZHMgdG8gbW9kaWZ5IHRoZSBzY20gcmF0aGVyIHRoYW4gYWN0dWFsbHkgbW9kaWZ5aW5nIHRo
ZSBzY20iKSwKICAgICAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLXN1ZmZpeGVzJywg
ZGVmYXVsdD0nLCcuam9pbihfYmFzZWxpbmVfc3VmZml4X2xpc3QpLCBhY3Rpb249J3N0b3JlJywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J2ZpbGUgdHlwZXMgdG8gcmVi
YXNlbGluZScpXQogICAgICAgICBBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZC5fX2luaXRfXyhz
ZWxmLCBvcHRpb25zPW9wdGlvbnMpCiAgICAgICAgIHNlbGYuX2Jhc2VsaW5lX3N1ZmZpeF9saXN0
ID0gX2Jhc2VsaW5lX3N1ZmZpeF9saXN0CisgICAgICAgIHNlbGYuX2RlZmVyX3NjbV9hZGRzID0g
RmFsc2UKIAogCiBjbGFzcyBSZWJhc2VsaW5lVGVzdChBYnN0cmFjdFJlYmFzZWxpbmluZ0NvbW1h
bmQpOgpAQCAtMTA4LDcgKzExMCw3IEBAIGNsYXNzIFJlYmFzZWxpbmVUZXN0KEFic3RyYWN0UmVi
YXNlbGluaW5nQ29tbWFuZCk6CiAgICAgICAgICAgICBzZWxmLl90b29sLmZpbGVzeXN0ZW0ubWF5
YmVfbWFrZV9kaXJlY3Rvcnkoc2VsZi5fdG9vbC5maWxlc3lzdGVtLmRpcm5hbWUobmV3X2Jhc2Vs
aW5lKSkKICAgICAgICAgICAgIHNlbGYuX3Rvb2wuZmlsZXN5c3RlbS5jb3B5ZmlsZShvbGRfYmFz
ZWxpbmUsIG5ld19iYXNlbGluZSkKICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl90b29sLnNjbSgp
LmV4aXN0cyhuZXdfYmFzZWxpbmUpOgotICAgICAgICAgICAgICAgIHNlbGYuX3Rvb2wuc2NtKCku
YWRkKG5ld19iYXNlbGluZSkKKyAgICAgICAgICAgICAgICBzZWxmLl9hZGRfdG9fc2NtKG5ld19i
YXNlbGluZSkKIAogICAgIGRlZiBfc2F2ZV9iYXNlbGluZShzZWxmLCBkYXRhLCB0YXJnZXRfYmFz
ZWxpbmUpOgogICAgICAgICBpZiBub3QgZGF0YToKQEAgLTExNyw3ICsxMTksMTMgQEAgY2xhc3Mg
UmViYXNlbGluZVRlc3QoQWJzdHJhY3RSZWJhc2VsaW5pbmdDb21tYW5kKToKICAgICAgICAgZmls
ZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVjdG9yeShmaWxlc3lzdGVtLmRpcm5hbWUodGFyZ2V0X2Jh
c2VsaW5lKSkKICAgICAgICAgZmlsZXN5c3RlbS53cml0ZV9iaW5hcnlfZmlsZSh0YXJnZXRfYmFz
ZWxpbmUsIGRhdGEpCiAgICAgICAgIGlmIG5vdCBzZWxmLl90b29sLnNjbSgpLmV4aXN0cyh0YXJn
ZXRfYmFzZWxpbmUpOgotICAgICAgICAgICAgc2VsZi5fdG9vbC5zY20oKS5hZGQodGFyZ2V0X2Jh
c2VsaW5lKQorICAgICAgICAgICAgc2VsZi5fYWRkX3RvX3NjbSh0YXJnZXRfYmFzZWxpbmUpCisK
KyAgICBkZWYgX2FkZF90b19zY20oc2VsZiwgcGF0aCk6CisgICAgICAgIGlmIHNlbGYuX2RlZmVy
X3NjbV9hZGRzOgorICAgICAgICAgICAgcHJpbnQgInNjbS1hZGQ6JXMiICUgcGF0aAorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fdG9vbC5zY20oKS5hZGQocGF0aCkKIAogICAgIGRl
ZiBfdXBkYXRlX2V4cGVjdGF0aW9uc19maWxlKHNlbGYsIGJ1aWxkZXJfbmFtZSwgdGVzdF9uYW1l
KToKICAgICAgICAgcG9ydCA9IHNlbGYuX3Rvb2wucG9ydF9mYWN0b3J5LmdldF9mcm9tX2J1aWxk
ZXJfbmFtZShidWlsZGVyX25hbWUpCkBAIC0xNTgsNiArMTY2LDcgQEAgY2xhc3MgUmViYXNlbGlu
ZVRlc3QoQWJzdHJhY3RSZWJhc2VsaW5pbmdDb21tYW5kKToKIAogICAgIGRlZiBleGVjdXRlKHNl
bGYsIG9wdGlvbnMsIGFyZ3MsIHRvb2wpOgogICAgICAgICBzZWxmLl9iYXNlbGluZV9zdWZmaXhf
bGlzdCA9IG9wdGlvbnMuc3VmZml4ZXMuc3BsaXQoJywnKQorICAgICAgICBzZWxmLl9kZWZlcl9z
Y21fYWRkcyA9IG9wdGlvbnMuZGVmZXJfc2NtX2FkZHMKIAogICAgICAgICBpZiBsZW4oYXJncykg
PiAyOgogICAgICAgICAgICAgcGxhdGZvcm1zX3RvX21vdmVfZXhpc3RpbmdfYmFzZWxpbmVzX3Rv
ID0gYXJnc1syOl0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2
ZXJzL2dhcmRlbmluZ3NlcnZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2
ZXJzL2dhcmRlbmluZ3NlcnZlci5weQppbmRleCAwOTY2MGY2MDk3N2JjNWUzMmZlOWE4NmVjZDUx
MzY4NGU2NDRhMzBmLi4yZTNjZGJiMmY0YTA2NThhMjY1YTU4MzNkMjQ5YmJjZmMzNjAyOTRmIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9nYXJkZW5pbmdz
ZXJ2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvZ2FyZGVu
aW5nc2VydmVyLnB5CkBAIC0yNiw2ICsyNiw3IEBAIGltcG9ydCBCYXNlSFRUUFNlcnZlcgogaW1w
b3J0IG9zCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLm1lbW9pemVkIGltcG9ydCBtZW1vaXplZAor
ZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdCBpbXBvcnQgSG9zdAogZnJvbSB3ZWJraXRweS50b29s
LnNlcnZlcnMucmVmbGVjdGlvbmhhbmRsZXIgaW1wb3J0IFJlZmxlY3Rpb25IYW5kbGVyCiBmcm9t
IHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250cm9sbGVycy50ZXN0X2V4cGVjdGF0aW9uc19lZGl0
b3IgaW1wb3J0IEJ1Z01hbmFnZXIsIFRlc3RFeHBlY3RhdGlvbnNFZGl0b3IKIGZyb20gd2Via2l0
cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2V4cGVjdGF0aW9ucyBpbXBvcnQgVGVzdEV4cGVj
dGF0aW9uUGFyc2VyLCBUZXN0RXhwZWN0YXRpb25zLCBUZXN0RXhwZWN0YXRpb25TZXJpYWxpemVy
CkBAIC0xNzIsMTQgKzE3MywzNyBAQCBjbGFzcyBHYXJkZW5pbmdIVFRQUmVxdWVzdEhhbmRsZXIo
UmVmbGVjdGlvbkhhbmRsZXIpOgogICAgICAgICByZXR1cm4gYnVpbGRlcnNfdG9fZmFsbGJhY2tf
cGF0aHMua2V5cygpCiAKICAgICBkZWYgcmViYXNlbGluZWFsbChzZWxmKToKLSAgICAgICAgIyBG
SVhNRTogT3B0aW1pemUgdGhpcyB0byBydW4gaW4gcGFyYWxsZWwsIGNhY2hlIHppcHMsIGV0Yy4K
ICAgICAgICAgdGVzdF9saXN0ID0gc2VsZi5fcmVhZF9lbnRpdHlfYm9keV9hc19qc29uKCkKKwor
ICAgICAgICB0ZXN0X2J1aWxkZXJfdHVwbGVzID0gW10KKyAgICAgICAgY29tbWFuZHMgPSBbXQor
ICAgICAgICBwYXRoX3RvX3dlYmtpdF9wYXRjaCA9IHNlbGYuc2VydmVyLnRvb2wucGF0aCgpCisg
ICAgICAgIHNjbSA9IHNlbGYuc2VydmVyLnRvb2wuc2NtKCkKKyAgICAgICAgY3dkID0gc2NtLmNo
ZWNrb3V0X3Jvb3QKKworICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0X2xpc3Q6CisgICAgICAgICAg
ICBmb3IgYnVpbGRlciBpbiBzZWxmLl9idWlsZGVyc190b19mZXRjaF9mcm9tKHRlc3RfbGlzdFt0
ZXN0XSk6CisgICAgICAgICAgICAgICAgc3VmZml4ZXMgPSAnLCcuam9pbih0ZXN0X2xpc3RbdGVz
dF1bYnVpbGRlcl0pCisgICAgICAgICAgICAgICAgY21kX2xpbmUgPSBbcGF0aF90b193ZWJraXRf
cGF0Y2gsICdyZWJhc2VsaW5lLXRlc3QnLCAnLS1kZWZlci1zY20tYWRkcycsICctLXN1ZmZpeGVz
Jywgc3VmZml4ZXMsIGJ1aWxkZXIsIHRlc3RdCisgICAgICAgICAgICAgICAgY29tbWFuZHMuYXBw
ZW5kKHR1cGxlKFtjbWRfbGluZSwgY3dkXSkpCisgICAgICAgIGNvbW1hbmRfcmVzdWx0cyA9IHNl
bGYuc2VydmVyLnRvb2wuZXhlY3V0aXZlLnJ1bl9pbl9wYXJhbGxlbChjb21tYW5kcykKKworICAg
ICAgICBmaWxlc190b19hZGQgPSBzZXQoKQorICAgICAgICBmb3Igb3V0cHV0IGluIFtyZXN1bHRb
MV0gZm9yIHJlc3VsdCBpbiBjb21tYW5kX3Jlc3VsdHNdOgorICAgICAgICAgICAgZmlsZXNfdG9f
YWRkLnVwZGF0ZShsaW5lLnJlcGxhY2UoJ3NjbS1hZGQ6JywgJycpIGZvciBsaW5lIGluIG91dHB1
dC5zcGxpdGxpbmVzKCkgaWYgbGluZS5zdGFydHN3aXRoKCdzY20tYWRkOicpKQorICAgICAgICBz
Y20uYWRkX2xpc3QobGlzdChmaWxlc190b19hZGQpKQorCisgICAgICAgICMgRklYTUU6IHNob3Vs
ZCB3ZSBydW4gdGhpcyBpbiBwYXJhbGxlbCBhcyB3ZWxsPwogICAgICAgICBmb3IgdGVzdCBpbiB0
ZXN0X2xpc3Q6CiAgICAgICAgICAgICBhbGxfc3VmZml4ZXMgPSBzZXQoKQotICAgICAgICAgICAg
YnVpbGRlcnMgPSBzZWxmLl9idWlsZGVyc190b19mZXRjaF9mcm9tKHRlc3RfbGlzdFt0ZXN0XSkK
LSAgICAgICAgICAgIGZvciBidWlsZGVyIGluIGJ1aWxkZXJzOgotICAgICAgICAgICAgICAgIHN1
ZmZpeGVzID0gdGVzdF9saXN0W3Rlc3RdW2J1aWxkZXJdCi0gICAgICAgICAgICAgICAgYWxsX3N1
ZmZpeGVzLnVwZGF0ZShzdWZmaXhlcykKLSAgICAgICAgICAgICAgICBzZWxmLl9ydW5fd2Via2l0
X3BhdGNoKFsncmViYXNlbGluZS10ZXN0JywgJy0tc3VmZml4ZXMnLCAnLCcuam9pbihzdWZmaXhl
cyksIGJ1aWxkZXIsIHRlc3RdKQorICAgICAgICAgICAgZm9yIGJ1aWxkZXIgaW4gc2VsZi5fYnVp
bGRlcnNfdG9fZmV0Y2hfZnJvbSh0ZXN0X2xpc3RbdGVzdF0pOgorICAgICAgICAgICAgICAgIGFs
bF9zdWZmaXhlcy51cGRhdGUodGVzdF9saXN0W3Rlc3RdW2J1aWxkZXJdKQogICAgICAgICAgICAg
c2VsZi5fcnVuX3dlYmtpdF9wYXRjaChbJ29wdGltaXplLWJhc2VsaW5lcycsICctLXN1ZmZpeGVz
JywgJywnLmpvaW4oYWxsX3N1ZmZpeGVzKSwgdGVzdF0pCisKICAgICAgICAgc2VsZi5fc2VydmVf
dGV4dCgnc3VjY2VzcycpCisKKworZGVmIHJ1bl9jb21tYW5kKGNtZF9saW5lX2FuZF9jd2QpOgor
ICAgIChjbWRfbGluZSwgY3dkKSA9IGNtZF9saW5lX2FuZF9jd2QKKyAgICBob3N0ID0gSG9zdCgp
CisgICAgb3V0cHV0ID0gaG9zdC5leGVjdXRpdmUucnVuX2NvbW1hbmQoY21kX2xpbmUsIGN3ZD1j
d2QpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9nYXJk
ZW5pbmdzZXJ2ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2Vy
dmVycy9nYXJkZW5pbmdzZXJ2ZXJfdW5pdHRlc3QucHkKaW5kZXggZTE3OThmNjVlYmIyNjUwNGVk
N2Y2YmVmNjc2M2E3MTE5MzI2YTFlZC4uNjBlZTRjYzg1ZWU0YjQ3NGQ2YjE3NjQ4YTkwZTZkOWIx
MTg3YzYzMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMv
Z2FyZGVuaW5nc2VydmVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlcl91bml0dGVzdC5weQpAQCAtMTg2LDcgKzE4Niw3
IEBAIGNsYXNzIEdhcmRlbmluZ1NlcnZlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICAgICAgIk1PQ0sgYnVpbGRlciI6IHsicG9ydF9uYW1lIjogInRlc3QtbWFjLWxlb3BhcmQiLCAi
c3BlY2lmaWVycyI6IHNldChbIm1vY2stc3BlY2lmaWVyIl0pfSwKICAgICAgICAgICAgICJNT0NL
IGJ1aWxkZXIgKERlYnVnKSI6IHsicG9ydF9uYW1lIjogInRlc3QtbWFjLWxlb3BhcmQiLCAic3Bl
Y2lmaWVycyI6IHNldChbIm1vY2stc3BlY2lmaWVyIiwgImRlYnVnIl0pfSwKICAgICAgICAgfQot
ICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiTU9DSyBydW5fY29tbWFuZDogWydlY2hvJywgJ3Jl
YmFzZWxpbmUtdGVzdCcsICctLXN1ZmZpeGVzJywgdSclcycsIHUnJXMnLCB1J3VzZXItc2NyaXB0
cy9hbm90aGVyLXRlc3QuaHRtbCddLCBjd2Q9L21vY2stY2hlY2tvdXRcbk1PQ0sgcnVuX2NvbW1h
bmQ6IFsnZWNobycsICdvcHRpbWl6ZS1iYXNlbGluZXMnLCAnLS1zdWZmaXhlcycsIHUnJXMnLCB1
J3VzZXItc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCddLCBjd2Q9L21vY2stY2hlY2tvdXRcbiIK
KyAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIk1PQ0sgcnVuX2NvbW1hbmQ6IFsnZWNobycsICdy
ZWJhc2VsaW5lLXRlc3QnLCAnLS1kZWZlci1zY20tYWRkcycsICctLXN1ZmZpeGVzJywgdSclcycs
IHUnJXMnLCB1J3VzZXItc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCddLCBjd2Q9L21vY2stY2hl
Y2tvdXRcbk1PQ0sgcnVuX2NvbW1hbmQ6IFsnZWNobycsICdvcHRpbWl6ZS1iYXNlbGluZXMnLCAn
LS1zdWZmaXhlcycsIHUnJXMnLCB1J3VzZXItc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCddLCBj
d2Q9L21vY2stY2hlY2tvdXRcbiIKICAgICAgICAgZXhwZWN0ZWRfc3Rkb3V0ID0gIj09IEJlZ2lu
IFJlc3BvbnNlID09XG5zdWNjZXNzXG49PSBFbmQgUmVzcG9uc2UgPT1cbiIKICAgICAgICAgc2Vs
Zi5fcG9zdF90b19wYXRoKCIvcmViYXNlbGluZWFsbCIsIGJvZHk9J3sidXNlci1zY3JpcHRzL2Fu
b3RoZXItdGVzdC5odG1sIjp7Ik1PQ0sgYnVpbGRlciI6IFsidHh0IiwicG5nIl19fScsIGV4cGVj
dGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIgJSAoJ3R4dCxwbmcnLCAnTU9DSyBidWlsZGVyJywg
J3R4dCxwbmcnKSwgZXhwZWN0ZWRfc3Rkb3V0PWV4cGVjdGVkX3N0ZG91dCkKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>