<?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>87578</bug_id>
          
          <creation_ts>2012-05-26 08:31:45 -0700</creation_ts>
          <short_desc>[FileAPI] The result attribute of FileReader should use null to replace empty string</short_desc>
          <delta_ts>2012-05-30 11:08:35 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>87760</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Li Yin">li.yin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>haraken</cc>
    
    <cc>jianli</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>634646</commentid>
    <comment_count>0</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-05-26 08:31:45 -0700</bug_when>
    <thetext>From Spec: http://www.w3.org/TR/FileAPI/#filedata-attr
The list below is normative for the result attribute and is the conformance criteria for this attribute:
On getting, if the readyState is EMPTY (no read method has been called) then the result attribute MUST return null.
On getting, if an error in reading the File or Blob has occurred (using any read method), then the result attribute MUST return null.

Currently, WebKit uses string &quot;&quot;, not use null.
We should keep the conformance with the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634659</commentid>
    <comment_count>1</comment_count>
      <attachid>144205</attachid>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-05-26 11:01:58 -0700</bug_when>
    <thetext>Created attachment 144205
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634670</commentid>
    <comment_count>2</comment_count>
      <attachid>144205</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-05-26 15:05:45 -0700</bug_when>
    <thetext>Comment on attachment 144205
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        WebKit should change the returned value empty string into null to keep 
&gt; +        conformance with the spec.

What are the behaviors of other browsers? We want to also keep cross-browser compatibility.

&gt; Source/WebCore/fileapi/FileReader.cpp:248
&gt; +    if (ret == &quot;&quot;)

ret.IsEmpty() would be better.

&gt; LayoutTests/fast/files/resources/read-common.js:174
&gt; +    if (result == null) {

Please use === instead of ==. == in JavaScript is &quot;ambiguous&quot; and thus not suitable for testing purpose.

&gt; LayoutTests/fast/files/resources/read-common.js:176
&gt; +        return ;

Nit: No space needed before &apos;;&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634681</commentid>
    <comment_count>3</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-05-26 16:17:41 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 144205 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=144205&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:12
&gt; &gt; +        WebKit should change the returned value empty string into null to keep 
&gt; &gt; +        conformance with the spec.
&gt; 
&gt; What are the behaviors of other browsers? We want to also keep cross-browser compatibility.
&gt; 

Currently, Firefox 11, Opera 11, IE 10 follows the standard. Webkit based browsers don&apos;t.

Thanks for your review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634682</commentid>
    <comment_count>4</comment_count>
      <attachid>144210</attachid>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-05-26 16:28:19 -0700</bug_when>
    <thetext>Created attachment 144210
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634683</commentid>
    <comment_count>5</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-05-26 16:36:16 -0700</bug_when>
    <thetext>You can get the test result from http://samples.msdn.microsoft.com/ietestcenter/fileapi/fileapi_harness.htm
Test Method:
Click the &quot;Net&quot; button three times, enter Test 3/3.
Directly click &quot;Run Test&quot; button, the 14th sub-test can verify the feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634696</commentid>
    <comment_count>6</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-05-26 17:37:10 -0700</bug_when>
    <thetext>I think using null should be more resonable, because empty string will confuse developers when reading a empty file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634701</commentid>
    <comment_count>7</comment_count>
      <attachid>144210</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-05-26 18:02:58 -0700</bug_when>
    <thetext>Comment on attachment 144210
Patch

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

&gt; Source/WebCore/ChangeLog:15
&gt; +        Currently, Firefox, Opera and IE 10 follows the spec, but Webkit based 
&gt; +        browser don&apos;t.
&gt; +        WebKit should change the returned value empty string into null to keep 
&gt; +        conformance with the spec.

Thanks for the clarification. Then the fix looks reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634704</commentid>
    <comment_count>8</comment_count>
      <attachid>144210</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-26 18:51:21 -0700</bug_when>
    <thetext>Comment on attachment 144210
Patch

Clearing flags on attachment: 144210

Committed r118620: &lt;http://trac.webkit.org/changeset/118620&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634705</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-26 18:51:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636206</commentid>
    <comment_count>10</comment_count>
      <attachid>144210</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2012-05-29 10:36:45 -0700</bug_when>
    <thetext>Comment on attachment 144210
Patch

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

&gt; Source/WebCore/fileapi/FileReader.cpp:248
&gt; +    if (ret.isEmpty())

This would cause NULL being returned when reading an empty file. I think you should change it to:
    if (m_loader &amp;&amp; m_loader-&gt;stringResult())
        return m_loader-&gt;stringResult();
    return String();

&gt; LayoutTests/fast/files/blob-slice-test-expected.txt:3
&gt; +Slicing from 2 to 2: null

The spec does not say that null needs to be returned for empty file/blob. I think we should still return empty string for this case.

You could add test cases to cover the scenarios that result is being read when readyState is EMPTY or an error occurs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636237</commentid>
    <comment_count>11</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2012-05-29 11:00:53 -0700</bug_when>
    <thetext>I verify that Firefox 12 returns empty string for result when reading an empty file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636249</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-29 11:12:18 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 87760</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636684</commentid>
    <comment_count>13</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-05-29 18:29:08 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebCore/fileapi/FileReader.cpp:248
&gt; &gt; +    if (ret.isEmpty())
&gt; 
&gt; This would cause NULL being returned when reading an empty file. I think you should change it to:
&gt;     if (m_loader &amp;&amp; m_loader-&gt;stringResult())
&gt;         return m_loader-&gt;stringResult();
&gt;     return String();
&gt; 
When the m_loader is Null or the error is occurred, both of them should return null.
So I think the right change shoule be:
    if (!m_loader || m_error)
        return String();
    return m_loader-&gt;stringResult;

MeanWhile, the arrayBufferResult should be changed too.
    if (!m_loader || m_error)
        return 0;
    return m_loader-&gt;arrayBufferResult();

Thanks for reporting this regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636775</commentid>
    <comment_count>14</comment_count>
      <attachid>144686</attachid>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-05-29 20:28:02 -0700</bug_when>
    <thetext>Created attachment 144686
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636849</commentid>
    <comment_count>15</comment_count>
      <attachid>144686</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2012-05-29 22:12:26 -0700</bug_when>
    <thetext>Comment on attachment 144686
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        Or if an error in reading the File or Blob has occurred (using any read method),

nit: two &quot;if&quot; can be concatenated like If the readyState is EMPTY (...) or an error occurs ...

&gt; Source/WebCore/ChangeLog:17
&gt; +

nit: extra empty line is not needed.

&gt; LayoutTests/fast/files/resources/read-file-test-cases.js:221
&gt; +    log(&quot;result before calling reading method: &quot; + readerToTestReread.result)

Why is this check being added to this test testReadAgainAfterFailedReadStep1? Why not adding a new async test case like testResultBeforeRead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636870</commentid>
    <comment_count>16</comment_count>
      <attachid>144705</attachid>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-05-29 22:48:46 -0700</bug_when>
    <thetext>Created attachment 144705
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636873</commentid>
    <comment_count>17</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2012-05-29 22:50:42 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; nit: two &quot;if&quot; can be concatenated like If the readyState is EMPTY (...) or an error occurs ...

Done

&gt; 
&gt; &gt; Source/WebCore/ChangeLog:17
&gt; &gt; +
&gt; 
&gt; nit: extra empty line is not needed.
&gt;

Done
 
&gt; &gt; LayoutTests/fast/files/resources/read-file-test-cases.js:221
&gt; &gt; +    log(&quot;result before calling reading method: &quot; + readerToTestReread.result)
&gt; 
&gt; Why is this check being added to this test testReadAgainAfterFailedReadStep1? Why not adding a new async test case like testResultBeforeRead?

Done.

Thanks for your review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636917</commentid>
    <comment_count>18</comment_count>
      <attachid>144705</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-29 23:34:37 -0700</bug_when>
    <thetext>Comment on attachment 144705
Patch

Clearing flags on attachment: 144705

Committed r118897: &lt;http://trac.webkit.org/changeset/118897&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636918</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-29 23:34:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637437</commentid>
    <comment_count>20</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-05-30 11:08:35 -0700</bug_when>
    <thetext>Mac buildbot was seeing failures on read-blob-async.html. These did not look platform specific (additional lines in output), so I updated cross platform results: &lt;http://trac.webkit.org/changeset/118940&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144205</attachid>
            <date>2012-05-26 11:01:58 -0700</date>
            <delta_ts>2012-05-26 16:28:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87578-20120528020529.patch</filename>
            <type>text/plain</type>
            <size>10326</size>
            <attacher name="Li Yin">li.yin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4MTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWYxOGI4ODk0NWJjMGZl
YjYxYzNlODVmZmRiYTdmMmVjYWVhNDI4Ny4uMzc1OTk0OWRjYWYwNDBkY2ZlMWUwMzFiY2QwYzBk
NTMzMTU5MTFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA1LTI3ICBMaSBZ
aW4gIDxsaS55aW5AaW50ZWwuY29tPgorCisgICAgICAgIFtGaWxlQVBJXSBUaGUgcmVzdWx0IGF0
dHJpYnV0ZSBvZiBGaWxlUmVhZGVyIHNodW9sZCB1c2UgbnVsbCB0byByZXBsYWNlIGVtcHR5IHN0
cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc1
NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcm9t
IFNwZWM6IGh0dHA6Ly93d3cudzMub3JnL1RSL0ZpbGVBUEkvI2ZpbGVkYXRhLWF0dHIKKyAgICAg
ICAgQmVmb3JlIHJlYWQgbWV0aG9kIGhhcyBiZWVuIGNhbGxlZCBvciBhbiBlcnJvciBpbiByZWFk
aW5nIGhhcyBvY2N1cnJlZCwKKyAgICAgICAgdGhlIHJlc3VsdCBhdHRyaWJ1dGUgc2hvdWxkIGJl
IG51bGwsIG5vdCBlbXB0eSBzdHJpbmcuCisgICAgICAgIFdlYktpdCBzaG91bGQgY2hhbmdlIHRo
ZSByZXR1cm5lZCB2YWx1ZSBlbXB0eSBzdHJpbmcgaW50byBudWxsIHRvIGtlZXAgCisgICAgICAg
IGNvbmZvcm1hbmNlIHdpdGggdGhlIHNwZWMuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZmlsZXMv
cmVhZC1maWxlLWFzeW5jLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZmlsZXMvYmxvYi1zbGlj
ZS10ZXN0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZmlsZXMvcmVhZC1ibG9iLWFzeW5jLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZmlsZXMvd29ya2Vycy93b3JrZXItcmVhZC1ibG9iLWFz
eW5jLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZmlsZXMvd29ya2Vycy93b3JrZXItcmVhZC1m
aWxlLWFzeW5jLmh0bWwKKworICAgICAgICAqIGZpbGVhcGkvRmlsZVJlYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlUmVhZGVyOjpzdHJpbmdSZXN1bHQpOgorCiAyMDEyLTA1LTIyICBN
YXJrIFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1d
IENhbGwgY2FuQWNjZWxlcmF0ZTJkQ2FudmFzIGRpcmVjdGx5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9G
aWxlUmVhZGVyLmNwcAppbmRleCAwN2M0YjY3NDYxMTExNjFlZmYyOTk1OWFiMWQyZmJkYzFjMDEz
MTJmLi45MzM0MGFhNmIyNWE4NjhhMGM1MWNmMDg0YzJlYzlhMzY4Y2YzMTE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKQEAgLTI0NCw3ICsyNDQsMTAgQEAgUGFzc1JlZlB0
cjxBcnJheUJ1ZmZlcj4gRmlsZVJlYWRlcjo6YXJyYXlCdWZmZXJSZXN1bHQoKSBjb25zdAogCiBT
dHJpbmcgRmlsZVJlYWRlcjo6c3RyaW5nUmVzdWx0KCkKIHsKLSAgICByZXR1cm4gbV9sb2FkZXIg
PyBtX2xvYWRlci0+c3RyaW5nUmVzdWx0KCkgOiAiIjsKKyAgICBTdHJpbmcgcmV0ID0gIG1fbG9h
ZGVyID8gbV9sb2FkZXItPnN0cmluZ1Jlc3VsdCgpIDogIiI7CisgICAgaWYgKHJldCA9PSAiIikK
KyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVybiByZXQ7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMzVjOTMxMmFmY2RkZTBiNGY4YWQ5M2EzMTI3ZDdjODQ4
YmJiMTEzLi42MzMxZjk0ZGEwYWE0ODU1OWMyMTM5ZTBjNjRiMTQxM2EwN2I0Yzg1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTItMDUtMjcgIExpIFlpbiAgPGxpLnlpbkBpbnRlbC5jb20+CisK
KyAgICAgICAgW0ZpbGVBUEldIFRoZSByZXN1bHQgYXR0cmlidXRlIG9mIEZpbGVSZWFkZXIgc2h1
b2xkIHVzZSBudWxsIHRvIHJlcGxhY2UgZW1wdHkgc3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzU3OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZyb20gU3BlYzogaHR0cDovL3d3dy53My5vcmcv
VFIvRmlsZUFQSS8jZmlsZWRhdGEtYXR0cgorICAgICAgICBCZWZvcmUgcmVhZCBtZXRob2QgaGFz
IGJlZW4gY2FsbGVkIG9yIGFuIGVycm9yIGluIHJlYWRpbmcgaGFzIG9jY3VycmVkLAorICAgICAg
ICB0aGUgcmVzdWx0IGF0dHJpYnV0ZSBzaG91bGQgYmUgbnVsbCwgbm90IGVtcHR5IHN0cmluZy4K
KyAgICAgICAgV2ViS2l0IHNob3VsZCBjaGFuZ2UgdGhlIHJldHVybmVkIHZhbHVlIGVtcHR5IHN0
cmluZyBpbnRvIG51bGwgdG8ga2VlcAorICAgICAgICBjb25mb3JtYW5jZSB3aXRoIHRoZSBzcGVj
LgorCisgICAgICAgICogZmFzdC9maWxlcy9ibG9iLXNsaWNlLXRlc3QtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvZmlsZXMvcmVhZC1ibG9iLWFzeW5jLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2ZpbGVzL3JlYWQtZmlsZS1hc3luYy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9maWxlcy9yZXNvdXJjZXMvcmVhZC1jb21tb24uanM6CisgICAgICAgIChsb2dSZXN1bHQp
OgorICAgICAgICAqIGZhc3QvZmlsZXMvd29ya2Vycy93b3JrZXItcmVhZC1ibG9iLWFzeW5jLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2ZpbGVzL3dvcmtlcnMvd29ya2VyLXJlYWQtZmls
ZS1hc3luYy1leHBlY3RlZC50eHQ6CisKIDIwMTItMDUtMjIgIFN0ZXBoYW5pZSBMZXdpcyAgPHNs
ZXdpc0BhcHBsZS5jb20+CiAKICAgICAgICAgU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NzE5OQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9i
bG9iLXNsaWNlLXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9i
LXNsaWNlLXRlc3QtZXhwZWN0ZWQudHh0CmluZGV4IDBmMjc0ZDNkYmQ5OWFlNDVlMjQ0N2IzMTE5
NTIzOTNkY2U4ZDFhNzUuLmJiYWM4OTY0ZjVmZmUwZjEyM2VhZDIxMjZiOTgxMWRjYTMwYmIxZTcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvYmxvYi1zbGljZS10ZXN0LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2Jsb2Itc2xpY2UtdGVzdC1leHBl
Y3RlZC50eHQKQEAgLTEsMjggKzEsMjggQEAKIFNsaWNpbmcgZnJvbSAyIHRvIDM6IDIKIFNsaWNp
bmcgZnJvbSAyIHRvIDEyOiAyMzQ1Njc4OQotU2xpY2luZyBmcm9tIDIgdG8gMjogCi1TbGljaW5n
IGZyb20gMiB0byAxOiAKLVNsaWNpbmcgZnJvbSAyIHRvIC0xMjogCitTbGljaW5nIGZyb20gMiB0
byAyOiBudWxsCitTbGljaW5nIGZyb20gMiB0byAxOiBudWxsCitTbGljaW5nIGZyb20gMiB0byAt
MTI6IG51bGwKIFNsaWNpbmcgZnJvbSAyIHRvIDIxNDc0ODM2NDc6IDIzNDU2Nzg5Ci1TbGljaW5n
IGZyb20gMiB0byAtMjE0NzQ4MzY0ODogCitTbGljaW5nIGZyb20gMiB0byAtMjE0NzQ4MzY0ODog
bnVsbAogU2xpY2luZyBmcm9tIDIgdG8gOTIyMzM3MjAzNjg1NDc3NTAwMDogMjM0NTY3ODkKLVNs
aWNpbmcgZnJvbSAyIHRvIC05MjIzMzcyMDM2ODU0Nzc1MDAwOiAKK1NsaWNpbmcgZnJvbSAyIHRv
IC05MjIzMzcyMDM2ODU0Nzc1MDAwOiBudWxsCiBTbGljaW5nIGZyb20gLTIgdG8gLTE6IDgKLVNs
aWNpbmcgZnJvbSAtMiB0byAtMjogCi1TbGljaW5nIGZyb20gLTIgdG8gLTM6IAotU2xpY2luZyBm
cm9tIC0yIHRvIC0xMjogCitTbGljaW5nIGZyb20gLTIgdG8gLTI6IG51bGwKK1NsaWNpbmcgZnJv
bSAtMiB0byAtMzogbnVsbAorU2xpY2luZyBmcm9tIC0yIHRvIC0xMjogbnVsbAogU2xpY2luZyBm
cm9tIC0yIHRvIDIxNDc0ODM2NDc6IDg5Ci1TbGljaW5nIGZyb20gLTIgdG8gLTIxNDc0ODM2NDg6
IAorU2xpY2luZyBmcm9tIC0yIHRvIC0yMTQ3NDgzNjQ4OiBudWxsCiBTbGljaW5nIGZyb20gLTIg
dG8gOTIyMzM3MjAzNjg1NDc3NTAwMDogODkKLVNsaWNpbmcgZnJvbSAtMiB0byAtOTIyMzM3MjAz
Njg1NDc3NTAwMDogCitTbGljaW5nIGZyb20gLTIgdG8gLTkyMjMzNzIwMzY4NTQ3NzUwMDA6IG51
bGwKIFNsaWNpbmcgZnJvbSAwOiAwMTIzNDU2Nzg5CiBTbGljaW5nIGZyb20gMjogMjM0NTY3ODkK
IFNsaWNpbmcgZnJvbSAtMjogODkKLVNsaWNpbmcgZnJvbSAxMjogCitTbGljaW5nIGZyb20gMTI6
IG51bGwKIFNsaWNpbmcgZnJvbSAtMTI6IDAxMjM0NTY3ODkKLVNsaWNpbmcgZnJvbSAyMTQ3NDgz
NjQ3OiAKK1NsaWNpbmcgZnJvbSAyMTQ3NDgzNjQ3OiBudWxsCiBTbGljaW5nIGZyb20gLTIxNDc0
ODM2NDg6IDAxMjM0NTY3ODkKLVNsaWNpbmcgZnJvbSA5MjIzMzcyMDM2ODU0Nzc1MDAwOiAKK1Ns
aWNpbmcgZnJvbSA5MjIzMzcyMDM2ODU0Nzc1MDAwOiBudWxsCiBTbGljaW5nIGZyb20gLTkyMjMz
NzIwMzY4NTQ3NzUwMDA6IDAxMjM0NTY3ODkKIFNsaWNpbmcgd2l0aG91dCBwYXJhbWV0ZXJzOiAw
MTIzNDU2Nzg5CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVhZC1ibG9i
LWFzeW5jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVhZC1ibG9iLWFz
eW5jLWV4cGVjdGVkLnR4dAppbmRleCA5NGMyOTFkZmZlOTc2Y2M1ZWI1MDBhY2EwOWNhMzZiMTI2
NDllYTYwLi4yZWQyY2ZhMjIzNDQwMWI0Nzc5MjFkOTBiMzA4MmFmNWU2ODZkMzIwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3JlYWQtYmxvYi1hc3luYy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZWFkLWJsb2ItYXN5bmMtZXhwZWN0ZWQudHh0
CkBAIC0xNyw4ICsxNyw3IEBAIFJlY2VpdmVkIGxvYWRzdGFydCBldmVudAogcmVhZHlTdGF0ZTog
MQogUmVjZWl2ZWQgbG9hZCBldmVudAogcmVhZHlTdGF0ZTogMgotcmVzdWx0IHNpemU6IDAKLXJl
c3VsdDogCityZXN1bHQ6IG51bGwKIFJlY2VpdmVkIGxvYWRlbmQgZXZlbnQKIFRlc3QgcmVhZGlu
ZyBhIGJsb2IgY29udGFpbmluZyBlbXB0eSB0ZXh0CiByZWFkeVN0YXRlOiAwCkBAIC0yNiw4ICsy
NSw3IEBAIFJlY2VpdmVkIGxvYWRzdGFydCBldmVudAogcmVhZHlTdGF0ZTogMQogUmVjZWl2ZWQg
bG9hZCBldmVudAogcmVhZHlTdGF0ZTogMgotcmVzdWx0IHNpemU6IDAKLXJlc3VsdDogCityZXN1
bHQ6IG51bGwKIFJlY2VpdmVkIGxvYWRlbmQgZXZlbnQKIFRlc3QgcmVhZGluZyBhIGJsb2IgY29u
dGFpbmluZyBlbXB0eSBmaWxlcyBhbmQgZW1wdHkgdGV4dHMKIHJlYWR5U3RhdGU6IDAKQEAgLTM1
LDggKzMzLDcgQEAgUmVjZWl2ZWQgbG9hZHN0YXJ0IGV2ZW50CiByZWFkeVN0YXRlOiAxCiBSZWNl
aXZlZCBsb2FkIGV2ZW50CiByZWFkeVN0YXRlOiAyCi1yZXN1bHQgc2l6ZTogMAotcmVzdWx0OiAK
K3Jlc3VsdDogbnVsbAogUmVjZWl2ZWQgbG9hZGVuZCBldmVudAogVGVzdCByZWFkaW5nIGEgYmxv
YiBjb250YWluaW5nIHNpbmdsZSBmaWxlCiByZWFkeVN0YXRlOiAwCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ZpbGVzL3JlYWQtZmlsZS1hc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzL3JlYWQtZmlsZS1hc3luYy1leHBlY3RlZC50eHQKaW5kZXggNmMxYWZm
YTQ4ODM1NTA4M2E5NjAyNjA4Y2U3MGUyN2IyNjA3OGJjMS4uYzQ5ZTkzM2IyYWE0ZWVhYjZmZDE2
Y2Y1ZjllMTY2YjI0Mzg2MjI1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9y
ZWFkLWZpbGUtYXN5bmMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMv
cmVhZC1maWxlLWFzeW5jLWV4cGVjdGVkLnR4dApAQCAtMzgsOCArMzgsNyBAQCBSZWNlaXZlZCBs
b2Fkc3RhcnQgZXZlbnQKIHJlYWR5U3RhdGU6IDEKIFJlY2VpdmVkIGxvYWQgZXZlbnQKIHJlYWR5
U3RhdGU6IDIKLXJlc3VsdCBzaXplOiAwCi1yZXN1bHQ6IAorcmVzdWx0OiBudWxsCiBSZWNlaXZl
ZCBsb2FkZW5kIGV2ZW50CiBUZXN0IHJlYWRpbmcgYW4gZW1wdHkgZmlsZSBhcyB0ZXh0CiByZWFk
eVN0YXRlOiAwCkBAIC00Nyw4ICs0Niw3IEBAIFJlY2VpdmVkIGxvYWRzdGFydCBldmVudAogcmVh
ZHlTdGF0ZTogMQogUmVjZWl2ZWQgbG9hZCBldmVudAogcmVhZHlTdGF0ZTogMgotcmVzdWx0IHNp
emU6IDAKLXJlc3VsdDogCityZXN1bHQ6IG51bGwKIFJlY2VpdmVkIGxvYWRlbmQgZXZlbnQKIFRl
c3QgcmVhZGluZyBhbiBlbXB0eSBmaWxlIGFzIGRhdGEgVVJMCiByZWFkeVN0YXRlOiAwCkBAIC0x
OTAsNyArMTg4LDcgQEAgcmVzdWx0IHNpemU6IDUKIHJlc3VsdDogSGVsbG8KIFJlY2VpdmVkIGxv
YWRlbmQgZXZlbnQKIHJlYWR5U3RhdGUgYWZ0ZXIgcmVjYWxsaW5nIHJlYWQgbWV0aG9kOiAxCi1y
ZXN1bHQgYWZ0ZXIgcmVjYWxsaW5nIHJlYWQgbWV0aG9kOiAKK3Jlc3VsdCBhZnRlciByZWNhbGxp
bmcgcmVhZCBtZXRob2Q6IG51bGwKIGVycm9yIGFmdGVyIHJlY2FsbGluZyByZWFkIG1ldGhvZDog
bnVsbAogUmVjZWl2ZWQgbG9hZHN0YXJ0IGV2ZW50CiByZWFkeVN0YXRlOiAxCkBAIC0yMDYsNyAr
MjA0LDcgQEAgcmVhZHlTdGF0ZTogMgogZXJyb3IgY29kZTogMQogUmVjZWl2ZWQgbG9hZGVuZCBl
dmVudAogcmVhZHlTdGF0ZSBhZnRlciByZWNhbGxpbmcgcmVhZCBtZXRob2Q6IDEKLXJlc3VsdCBh
ZnRlciByZWNhbGxpbmcgcmVhZCBtZXRob2Q6IAorcmVzdWx0IGFmdGVyIHJlY2FsbGluZyByZWFk
IG1ldGhvZDogbnVsbAogZXJyb3IgYWZ0ZXIgcmVjYWxsaW5nIHJlYWQgbWV0aG9kOiBudWxsCiBS
ZWNlaXZlZCBsb2Fkc3RhcnQgZXZlbnQKIHJlYWR5U3RhdGU6IDEKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZmlsZXMvcmVzb3VyY2VzL3JlYWQtY29tbW9uLmpzIGIvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlcy9yZXNvdXJjZXMvcmVhZC1jb21tb24uanMKaW5kZXggYmFjNzk5YzEzMmRjMzU0
ZWJkOGZmNTg2YTJkZDkyOWI3MDg5ZmM1ZC4uNjcxMzdmOWNlM2Q2NmQ0NDZjOTAxMGQwYmFjMmY3
MDhmNjBlNTdhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMv
cmVhZC1jb21tb24uanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvcmVh
ZC1jb21tb24uanMKQEAgLTE2OCw5ICsxNjgsMTMgQEAgZnVuY3Rpb24gY3JlYXRlUmVhZGVyU3lu
YygpCiAgICAgcmV0dXJuIG5ldyBGaWxlUmVhZGVyU3luYygpOwogfQogCi0vLyAncmVzdWx0JyBj
YW4gYmUgZWl0aGVyIGFuIEFycmF5QnVmZmVyIG9iamVjdCBvciBhIHN0cmluZy4KKy8vICdyZXN1
bHQnIGNhbiBiZSBhbiBBcnJheUJ1ZmZlciBvYmplY3QsIGEgc3RyaW5nIG9yIG51bGwuCiBmdW5j
dGlvbiBsb2dSZXN1bHQocmVzdWx0KQogeworICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAg
ICAgICBsb2coInJlc3VsdDogbnVsbCIpOworICAgICAgICByZXR1cm4gOworICAgIH0KICAgICBp
ZiAodHlwZW9mIHJlc3VsdCA9PSAnb2JqZWN0JykgewogICAgICAgICBsb2coInJlc3VsdCBzaXpl
OiAiICsgcmVzdWx0LmJ5dGVMZW5ndGgpOwogICAgICAgICByZXN1bHQgPSBuZXcgVWludDhBcnJh
eShyZXN1bHQsIDAsIHJlc3VsdC5ieXRlTGVuZ3RoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXMvd29ya2Vycy93b3JrZXItcmVhZC1ibG9iLWFzeW5jLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvd29ya2Vycy93b3JrZXItcmVhZC1ibG9iLWFzeW5jLWV4
cGVjdGVkLnR4dAppbmRleCBkYjY1NzlhYjI0MjgyOTUzMWU0NGExMzlmODdmNjQ5YWJiNzQ1OWEw
Li4zZjY2NTM0ZjQ5Yjg0MzdlNjM3ZTMxYmQxM2Y3ZTFkNzA0Y2JjN2NmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3dvcmtlcnMvd29ya2VyLXJlYWQtYmxvYi1hc3luYy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy93b3JrZXJzL3dvcmtlci1yZWFk
LWJsb2ItYXN5bmMtZXhwZWN0ZWQudHh0CkBAIC0xOCw4ICsxOCw3IEBAIFJlY2VpdmVkIGxvYWRz
dGFydCBldmVudAogcmVhZHlTdGF0ZTogMQogUmVjZWl2ZWQgbG9hZCBldmVudAogcmVhZHlTdGF0
ZTogMgotcmVzdWx0IHNpemU6IDAKLXJlc3VsdDogCityZXN1bHQ6IG51bGwKIFJlY2VpdmVkIGxv
YWRlbmQgZXZlbnQKIFRlc3QgcmVhZGluZyBhIGJsb2IgY29udGFpbmluZyBlbXB0eSB0ZXh0CiBy
ZWFkeVN0YXRlOiAwCkBAIC0yNyw4ICsyNiw3IEBAIFJlY2VpdmVkIGxvYWRzdGFydCBldmVudAog
cmVhZHlTdGF0ZTogMQogUmVjZWl2ZWQgbG9hZCBldmVudAogcmVhZHlTdGF0ZTogMgotcmVzdWx0
IHNpemU6IDAKLXJlc3VsdDogCityZXN1bHQ6IG51bGwKIFJlY2VpdmVkIGxvYWRlbmQgZXZlbnQK
IFRlc3QgcmVhZGluZyBhIGJsb2IgY29udGFpbmluZyBlbXB0eSBmaWxlcyBhbmQgZW1wdHkgdGV4
dHMKIHJlYWR5U3RhdGU6IDAKQEAgLTM2LDggKzM0LDcgQEAgUmVjZWl2ZWQgbG9hZHN0YXJ0IGV2
ZW50CiByZWFkeVN0YXRlOiAxCiBSZWNlaXZlZCBsb2FkIGV2ZW50CiByZWFkeVN0YXRlOiAyCi1y
ZXN1bHQgc2l6ZTogMAotcmVzdWx0OiAKK3Jlc3VsdDogbnVsbAogUmVjZWl2ZWQgbG9hZGVuZCBl
dmVudAogVGVzdCByZWFkaW5nIGEgYmxvYiBjb250YWluaW5nIHNpbmdsZSBmaWxlCiByZWFkeVN0
YXRlOiAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3dvcmtlcnMvd29ya2Vy
LXJlYWQtZmlsZS1hc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3dv
cmtlcnMvd29ya2VyLXJlYWQtZmlsZS1hc3luYy1leHBlY3RlZC50eHQKaW5kZXggZDhlZTMxYmZk
MjI2ODExM2NkNDE4OTU4NzI2YTExOWM3NWEwYjU5NC4uNTZmODhmZmY3NzkxMjg1NDhmYmViYjRk
ZWI4MTNmYjI3NjE4Mjg1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy93b3Jr
ZXJzL3dvcmtlci1yZWFkLWZpbGUtYXN5bmMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXMvd29ya2Vycy93b3JrZXItcmVhZC1maWxlLWFzeW5jLWV4cGVjdGVkLnR4dApA
QCAtMzksOCArMzksNyBAQCBSZWNlaXZlZCBsb2Fkc3RhcnQgZXZlbnQKIHJlYWR5U3RhdGU6IDEK
IFJlY2VpdmVkIGxvYWQgZXZlbnQKIHJlYWR5U3RhdGU6IDIKLXJlc3VsdCBzaXplOiAwCi1yZXN1
bHQ6IAorcmVzdWx0OiBudWxsCiBSZWNlaXZlZCBsb2FkZW5kIGV2ZW50CiBUZXN0IHJlYWRpbmcg
YW4gZW1wdHkgZmlsZSBhcyB0ZXh0CiByZWFkeVN0YXRlOiAwCkBAIC00OCw4ICs0Nyw3IEBAIFJl
Y2VpdmVkIGxvYWRzdGFydCBldmVudAogcmVhZHlTdGF0ZTogMQogUmVjZWl2ZWQgbG9hZCBldmVu
dAogcmVhZHlTdGF0ZTogMgotcmVzdWx0IHNpemU6IDAKLXJlc3VsdDogCityZXN1bHQ6IG51bGwK
IFJlY2VpdmVkIGxvYWRlbmQgZXZlbnQKIFRlc3QgcmVhZGluZyBhbiBlbXB0eSBmaWxlIGFzIGRh
dGEgVVJMCiByZWFkeVN0YXRlOiAwCkBAIC0xOTEsNyArMTg5LDcgQEAgcmVzdWx0IHNpemU6IDUK
IHJlc3VsdDogSGVsbG8KIFJlY2VpdmVkIGxvYWRlbmQgZXZlbnQKIHJlYWR5U3RhdGUgYWZ0ZXIg
cmVjYWxsaW5nIHJlYWQgbWV0aG9kOiAxCi1yZXN1bHQgYWZ0ZXIgcmVjYWxsaW5nIHJlYWQgbWV0
aG9kOiAKK3Jlc3VsdCBhZnRlciByZWNhbGxpbmcgcmVhZCBtZXRob2Q6IG51bGwKIGVycm9yIGFm
dGVyIHJlY2FsbGluZyByZWFkIG1ldGhvZDogbnVsbAogUmVjZWl2ZWQgbG9hZHN0YXJ0IGV2ZW50
CiByZWFkeVN0YXRlOiAxCkBAIC0yMDcsNyArMjA1LDcgQEAgcmVhZHlTdGF0ZTogMgogZXJyb3Ig
Y29kZTogMQogUmVjZWl2ZWQgbG9hZGVuZCBldmVudAogcmVhZHlTdGF0ZSBhZnRlciByZWNhbGxp
bmcgcmVhZCBtZXRob2Q6IDEKLXJlc3VsdCBhZnRlciByZWNhbGxpbmcgcmVhZCBtZXRob2Q6IAor
cmVzdWx0IGFmdGVyIHJlY2FsbGluZyByZWFkIG1ldGhvZDogbnVsbAogZXJyb3IgYWZ0ZXIgcmVj
YWxsaW5nIHJlYWQgbWV0aG9kOiBudWxsCiBSZWNlaXZlZCBsb2Fkc3RhcnQgZXZlbnQKIHJlYWR5
U3RhdGU6IDEK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144210</attachid>
            <date>2012-05-26 16:28:19 -0700</date>
            <delta_ts>2012-05-29 20:27:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87578-20120528073150.patch</filename>
            <type>text/plain</type>
            <size>10437</size>
            <attacher name="Li Yin">li.yin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4MTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWYxOGI4ODk0NWJjMGZl
YjYxYzNlODVmZmRiYTdmMmVjYWVhNDI4Ny4uMGM0N2QxYjViNGZmNjIyM2NlZTUwZDM1ZmMxZDZj
ZDFiMDFkNWI5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA1LTI3ICBMaSBZ
aW4gIDxsaS55aW5AaW50ZWwuY29tPgorCisgICAgICAgIFtGaWxlQVBJXSBUaGUgcmVzdWx0IGF0
dHJpYnV0ZSBvZiBGaWxlUmVhZGVyIHNodW9sZCB1c2UgbnVsbCB0byByZXBsYWNlIGVtcHR5IHN0
cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc1
NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcm9t
IFNwZWM6IGh0dHA6Ly93d3cudzMub3JnL1RSL0ZpbGVBUEkvI2ZpbGVkYXRhLWF0dHIKKyAgICAg
ICAgQmVmb3JlIHJlYWQgbWV0aG9kIGhhcyBiZWVuIGNhbGxlZCBvciBhbiBlcnJvciBpbiByZWFk
aW5nIGhhcyBvY2N1cnJlZCwKKyAgICAgICAgdGhlIHJlc3VsdCBhdHRyaWJ1dGUgc2hvdWxkIGJl
IG51bGwsIG5vdCBlbXB0eSBzdHJpbmcuCisKKyAgICAgICAgQ3VycmVudGx5LCBGaXJlZm94LCBP
cGVyYSBhbmQgSUUgMTAgZm9sbG93cyB0aGUgc3BlYywgYnV0IFdlYmtpdCBiYXNlZCAKKyAgICAg
ICAgYnJvd3NlciBkb24ndC4KKyAgICAgICAgV2ViS2l0IHNob3VsZCBjaGFuZ2UgdGhlIHJldHVy
bmVkIHZhbHVlIGVtcHR5IHN0cmluZyBpbnRvIG51bGwgdG8ga2VlcCAKKyAgICAgICAgY29uZm9y
bWFuY2Ugd2l0aCB0aGUgc3BlYy4KKworICAgICAgICBUZXN0czogZmFzdC9maWxlcy9yZWFkLWZp
bGUtYXN5bmMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9maWxlcy9ibG9iLXNsaWNlLXRlc3Qu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9maWxlcy9yZWFkLWJsb2ItYXN5bmMuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9maWxlcy93b3JrZXJzL3dvcmtlci1yZWFkLWJsb2ItYXN5bmMuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9maWxlcy93b3JrZXJzL3dvcmtlci1yZWFkLWZpbGUtYXN5
bmMuaHRtbAorCisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVSZWFkZXI6OnN0cmluZ1Jlc3VsdCk6CisKIDIwMTItMDUtMjIgIE1hcmsgUGls
Z3JpbSAgPHBpbGdyaW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gQ2FsbCBj
YW5BY2NlbGVyYXRlMmRDYW52YXMgZGlyZWN0bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFk
ZXIuY3BwCmluZGV4IDA3YzRiNjc0NjExMTE2MWVmZjI5OTU5YWIxZDJmYmRjMWMwMTMxMmYuLjQx
ZDI2OTBjMGIxMTZlZWNmN2VlZDJlZTY0NTk5MTI1YWU3MjRjMzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmls
ZWFwaS9GaWxlUmVhZGVyLmNwcApAQCAtMjQ0LDcgKzI0NCwxMCBAQCBQYXNzUmVmUHRyPEFycmF5
QnVmZmVyPiBGaWxlUmVhZGVyOjphcnJheUJ1ZmZlclJlc3VsdCgpIGNvbnN0CiAKIFN0cmluZyBG
aWxlUmVhZGVyOjpzdHJpbmdSZXN1bHQoKQogewotICAgIHJldHVybiBtX2xvYWRlciA/IG1fbG9h
ZGVyLT5zdHJpbmdSZXN1bHQoKSA6ICIiOworICAgIFN0cmluZyByZXQgPSAgbV9sb2FkZXIgPyBt
X2xvYWRlci0+c3RyaW5nUmVzdWx0KCkgOiAiIjsKKyAgICBpZiAocmV0LmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVybiByZXQ7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCAzMzVjOTMxMmFmY2RkZTBiNGY4YWQ5M2EzMTI3ZDdjODQ4YmJi
MTEzLi42MzMxZjk0ZGEwYWE0ODU1OWMyMTM5ZTBjNjRiMTQxM2EwN2I0Yzg1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTItMDUtMjcgIExpIFlpbiAgPGxpLnlpbkBpbnRlbC5jb20+CisKKyAg
ICAgICAgW0ZpbGVBUEldIFRoZSByZXN1bHQgYXR0cmlidXRlIG9mIEZpbGVSZWFkZXIgc2h1b2xk
IHVzZSBudWxsIHRvIHJlcGxhY2UgZW1wdHkgc3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzU3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEZyb20gU3BlYzogaHR0cDovL3d3dy53My5vcmcvVFIv
RmlsZUFQSS8jZmlsZWRhdGEtYXR0cgorICAgICAgICBCZWZvcmUgcmVhZCBtZXRob2QgaGFzIGJl
ZW4gY2FsbGVkIG9yIGFuIGVycm9yIGluIHJlYWRpbmcgaGFzIG9jY3VycmVkLAorICAgICAgICB0
aGUgcmVzdWx0IGF0dHJpYnV0ZSBzaG91bGQgYmUgbnVsbCwgbm90IGVtcHR5IHN0cmluZy4KKyAg
ICAgICAgV2ViS2l0IHNob3VsZCBjaGFuZ2UgdGhlIHJldHVybmVkIHZhbHVlIGVtcHR5IHN0cmlu
ZyBpbnRvIG51bGwgdG8ga2VlcAorICAgICAgICBjb25mb3JtYW5jZSB3aXRoIHRoZSBzcGVjLgor
CisgICAgICAgICogZmFzdC9maWxlcy9ibG9iLXNsaWNlLXRlc3QtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZmlsZXMvcmVhZC1ibG9iLWFzeW5jLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L2ZpbGVzL3JlYWQtZmlsZS1hc3luYy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9maWxlcy9yZXNvdXJjZXMvcmVhZC1jb21tb24uanM6CisgICAgICAgIChsb2dSZXN1bHQpOgor
ICAgICAgICAqIGZhc3QvZmlsZXMvd29ya2Vycy93b3JrZXItcmVhZC1ibG9iLWFzeW5jLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2ZpbGVzL3dvcmtlcnMvd29ya2VyLXJlYWQtZmlsZS1h
c3luYy1leHBlY3RlZC50eHQ6CisKIDIwMTItMDUtMjIgIFN0ZXBoYW5pZSBMZXdpcyAgPHNsZXdp
c0BhcHBsZS5jb20+CiAKICAgICAgICAgU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NzE5OQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9i
LXNsaWNlLXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9iLXNs
aWNlLXRlc3QtZXhwZWN0ZWQudHh0CmluZGV4IDBmMjc0ZDNkYmQ5OWFlNDVlMjQ0N2IzMTE5NTIz
OTNkY2U4ZDFhNzUuLmJiYWM4OTY0ZjVmZmUwZjEyM2VhZDIxMjZiOTgxMWRjYTMwYmIxZTcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvYmxvYi1zbGljZS10ZXN0LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2Jsb2Itc2xpY2UtdGVzdC1leHBlY3Rl
ZC50eHQKQEAgLTEsMjggKzEsMjggQEAKIFNsaWNpbmcgZnJvbSAyIHRvIDM6IDIKIFNsaWNpbmcg
ZnJvbSAyIHRvIDEyOiAyMzQ1Njc4OQotU2xpY2luZyBmcm9tIDIgdG8gMjogCi1TbGljaW5nIGZy
b20gMiB0byAxOiAKLVNsaWNpbmcgZnJvbSAyIHRvIC0xMjogCitTbGljaW5nIGZyb20gMiB0byAy
OiBudWxsCitTbGljaW5nIGZyb20gMiB0byAxOiBudWxsCitTbGljaW5nIGZyb20gMiB0byAtMTI6
IG51bGwKIFNsaWNpbmcgZnJvbSAyIHRvIDIxNDc0ODM2NDc6IDIzNDU2Nzg5Ci1TbGljaW5nIGZy
b20gMiB0byAtMjE0NzQ4MzY0ODogCitTbGljaW5nIGZyb20gMiB0byAtMjE0NzQ4MzY0ODogbnVs
bAogU2xpY2luZyBmcm9tIDIgdG8gOTIyMzM3MjAzNjg1NDc3NTAwMDogMjM0NTY3ODkKLVNsaWNp
bmcgZnJvbSAyIHRvIC05MjIzMzcyMDM2ODU0Nzc1MDAwOiAKK1NsaWNpbmcgZnJvbSAyIHRvIC05
MjIzMzcyMDM2ODU0Nzc1MDAwOiBudWxsCiBTbGljaW5nIGZyb20gLTIgdG8gLTE6IDgKLVNsaWNp
bmcgZnJvbSAtMiB0byAtMjogCi1TbGljaW5nIGZyb20gLTIgdG8gLTM6IAotU2xpY2luZyBmcm9t
IC0yIHRvIC0xMjogCitTbGljaW5nIGZyb20gLTIgdG8gLTI6IG51bGwKK1NsaWNpbmcgZnJvbSAt
MiB0byAtMzogbnVsbAorU2xpY2luZyBmcm9tIC0yIHRvIC0xMjogbnVsbAogU2xpY2luZyBmcm9t
IC0yIHRvIDIxNDc0ODM2NDc6IDg5Ci1TbGljaW5nIGZyb20gLTIgdG8gLTIxNDc0ODM2NDg6IAor
U2xpY2luZyBmcm9tIC0yIHRvIC0yMTQ3NDgzNjQ4OiBudWxsCiBTbGljaW5nIGZyb20gLTIgdG8g
OTIyMzM3MjAzNjg1NDc3NTAwMDogODkKLVNsaWNpbmcgZnJvbSAtMiB0byAtOTIyMzM3MjAzNjg1
NDc3NTAwMDogCitTbGljaW5nIGZyb20gLTIgdG8gLTkyMjMzNzIwMzY4NTQ3NzUwMDA6IG51bGwK
IFNsaWNpbmcgZnJvbSAwOiAwMTIzNDU2Nzg5CiBTbGljaW5nIGZyb20gMjogMjM0NTY3ODkKIFNs
aWNpbmcgZnJvbSAtMjogODkKLVNsaWNpbmcgZnJvbSAxMjogCitTbGljaW5nIGZyb20gMTI6IG51
bGwKIFNsaWNpbmcgZnJvbSAtMTI6IDAxMjM0NTY3ODkKLVNsaWNpbmcgZnJvbSAyMTQ3NDgzNjQ3
OiAKK1NsaWNpbmcgZnJvbSAyMTQ3NDgzNjQ3OiBudWxsCiBTbGljaW5nIGZyb20gLTIxNDc0ODM2
NDg6IDAxMjM0NTY3ODkKLVNsaWNpbmcgZnJvbSA5MjIzMzcyMDM2ODU0Nzc1MDAwOiAKK1NsaWNp
bmcgZnJvbSA5MjIzMzcyMDM2ODU0Nzc1MDAwOiBudWxsCiBTbGljaW5nIGZyb20gLTkyMjMzNzIw
MzY4NTQ3NzUwMDA6IDAxMjM0NTY3ODkKIFNsaWNpbmcgd2l0aG91dCBwYXJhbWV0ZXJzOiAwMTIz
NDU2Nzg5CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVhZC1ibG9iLWFz
eW5jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVhZC1ibG9iLWFzeW5j
LWV4cGVjdGVkLnR4dAppbmRleCA5NGMyOTFkZmZlOTc2Y2M1ZWI1MDBhY2EwOWNhMzZiMTI2NDll
YTYwLi4yZWQyY2ZhMjIzNDQwMWI0Nzc5MjFkOTBiMzA4MmFmNWU2ODZkMzIwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3JlYWQtYmxvYi1hc3luYy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZWFkLWJsb2ItYXN5bmMtZXhwZWN0ZWQudHh0CkBA
IC0xNyw4ICsxNyw3IEBAIFJlY2VpdmVkIGxvYWRzdGFydCBldmVudAogcmVhZHlTdGF0ZTogMQog
UmVjZWl2ZWQgbG9hZCBldmVudAogcmVhZHlTdGF0ZTogMgotcmVzdWx0IHNpemU6IDAKLXJlc3Vs
dDogCityZXN1bHQ6IG51bGwKIFJlY2VpdmVkIGxvYWRlbmQgZXZlbnQKIFRlc3QgcmVhZGluZyBh
IGJsb2IgY29udGFpbmluZyBlbXB0eSB0ZXh0CiByZWFkeVN0YXRlOiAwCkBAIC0yNiw4ICsyNSw3
IEBAIFJlY2VpdmVkIGxvYWRzdGFydCBldmVudAogcmVhZHlTdGF0ZTogMQogUmVjZWl2ZWQgbG9h
ZCBldmVudAogcmVhZHlTdGF0ZTogMgotcmVzdWx0IHNpemU6IDAKLXJlc3VsdDogCityZXN1bHQ6
IG51bGwKIFJlY2VpdmVkIGxvYWRlbmQgZXZlbnQKIFRlc3QgcmVhZGluZyBhIGJsb2IgY29udGFp
bmluZyBlbXB0eSBmaWxlcyBhbmQgZW1wdHkgdGV4dHMKIHJlYWR5U3RhdGU6IDAKQEAgLTM1LDgg
KzMzLDcgQEAgUmVjZWl2ZWQgbG9hZHN0YXJ0IGV2ZW50CiByZWFkeVN0YXRlOiAxCiBSZWNlaXZl
ZCBsb2FkIGV2ZW50CiByZWFkeVN0YXRlOiAyCi1yZXN1bHQgc2l6ZTogMAotcmVzdWx0OiAKK3Jl
c3VsdDogbnVsbAogUmVjZWl2ZWQgbG9hZGVuZCBldmVudAogVGVzdCByZWFkaW5nIGEgYmxvYiBj
b250YWluaW5nIHNpbmdsZSBmaWxlCiByZWFkeVN0YXRlOiAwCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzL3JlYWQtZmlsZS1hc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZpbGVzL3JlYWQtZmlsZS1hc3luYy1leHBlY3RlZC50eHQKaW5kZXggNmMxYWZmYTQ4
ODM1NTA4M2E5NjAyNjA4Y2U3MGUyN2IyNjA3OGJjMS4uYzQ5ZTkzM2IyYWE0ZWVhYjZmZDE2Y2Y1
ZjllMTY2YjI0Mzg2MjI1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZWFk
LWZpbGUtYXN5bmMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVh
ZC1maWxlLWFzeW5jLWV4cGVjdGVkLnR4dApAQCAtMzgsOCArMzgsNyBAQCBSZWNlaXZlZCBsb2Fk
c3RhcnQgZXZlbnQKIHJlYWR5U3RhdGU6IDEKIFJlY2VpdmVkIGxvYWQgZXZlbnQKIHJlYWR5U3Rh
dGU6IDIKLXJlc3VsdCBzaXplOiAwCi1yZXN1bHQ6IAorcmVzdWx0OiBudWxsCiBSZWNlaXZlZCBs
b2FkZW5kIGV2ZW50CiBUZXN0IHJlYWRpbmcgYW4gZW1wdHkgZmlsZSBhcyB0ZXh0CiByZWFkeVN0
YXRlOiAwCkBAIC00Nyw4ICs0Niw3IEBAIFJlY2VpdmVkIGxvYWRzdGFydCBldmVudAogcmVhZHlT
dGF0ZTogMQogUmVjZWl2ZWQgbG9hZCBldmVudAogcmVhZHlTdGF0ZTogMgotcmVzdWx0IHNpemU6
IDAKLXJlc3VsdDogCityZXN1bHQ6IG51bGwKIFJlY2VpdmVkIGxvYWRlbmQgZXZlbnQKIFRlc3Qg
cmVhZGluZyBhbiBlbXB0eSBmaWxlIGFzIGRhdGEgVVJMCiByZWFkeVN0YXRlOiAwCkBAIC0xOTAs
NyArMTg4LDcgQEAgcmVzdWx0IHNpemU6IDUKIHJlc3VsdDogSGVsbG8KIFJlY2VpdmVkIGxvYWRl
bmQgZXZlbnQKIHJlYWR5U3RhdGUgYWZ0ZXIgcmVjYWxsaW5nIHJlYWQgbWV0aG9kOiAxCi1yZXN1
bHQgYWZ0ZXIgcmVjYWxsaW5nIHJlYWQgbWV0aG9kOiAKK3Jlc3VsdCBhZnRlciByZWNhbGxpbmcg
cmVhZCBtZXRob2Q6IG51bGwKIGVycm9yIGFmdGVyIHJlY2FsbGluZyByZWFkIG1ldGhvZDogbnVs
bAogUmVjZWl2ZWQgbG9hZHN0YXJ0IGV2ZW50CiByZWFkeVN0YXRlOiAxCkBAIC0yMDYsNyArMjA0
LDcgQEAgcmVhZHlTdGF0ZTogMgogZXJyb3IgY29kZTogMQogUmVjZWl2ZWQgbG9hZGVuZCBldmVu
dAogcmVhZHlTdGF0ZSBhZnRlciByZWNhbGxpbmcgcmVhZCBtZXRob2Q6IDEKLXJlc3VsdCBhZnRl
ciByZWNhbGxpbmcgcmVhZCBtZXRob2Q6IAorcmVzdWx0IGFmdGVyIHJlY2FsbGluZyByZWFkIG1l
dGhvZDogbnVsbAogZXJyb3IgYWZ0ZXIgcmVjYWxsaW5nIHJlYWQgbWV0aG9kOiBudWxsCiBSZWNl
aXZlZCBsb2Fkc3RhcnQgZXZlbnQKIHJlYWR5U3RhdGU6IDEKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZmlsZXMvcmVzb3VyY2VzL3JlYWQtY29tbW9uLmpzIGIvTGF5b3V0VGVzdHMvZmFz
dC9maWxlcy9yZXNvdXJjZXMvcmVhZC1jb21tb24uanMKaW5kZXggYmFjNzk5YzEzMmRjMzU0ZWJk
OGZmNTg2YTJkZDkyOWI3MDg5ZmM1ZC4uZGMyMmZhOGQ3OTdiNzhmOTAxY2UzOGFkMTNiOGYzNzlk
ZGFiMTBmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvcmVh
ZC1jb21tb24uanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvcmVhZC1j
b21tb24uanMKQEAgLTE2OCw5ICsxNjgsMTMgQEAgZnVuY3Rpb24gY3JlYXRlUmVhZGVyU3luYygp
CiAgICAgcmV0dXJuIG5ldyBGaWxlUmVhZGVyU3luYygpOwogfQogCi0vLyAncmVzdWx0JyBjYW4g
YmUgZWl0aGVyIGFuIEFycmF5QnVmZmVyIG9iamVjdCBvciBhIHN0cmluZy4KKy8vICdyZXN1bHQn
IGNhbiBiZSBhbiBBcnJheUJ1ZmZlciBvYmplY3QsIGEgc3RyaW5nIG9yIG51bGwuCiBmdW5jdGlv
biBsb2dSZXN1bHQocmVzdWx0KQogeworICAgIGlmIChyZXN1bHQgPT09IG51bGwpIHsKKyAgICAg
ICAgbG9nKCJyZXN1bHQ6IG51bGwiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBpZiAo
dHlwZW9mIHJlc3VsdCA9PSAnb2JqZWN0JykgewogICAgICAgICBsb2coInJlc3VsdCBzaXplOiAi
ICsgcmVzdWx0LmJ5dGVMZW5ndGgpOwogICAgICAgICByZXN1bHQgPSBuZXcgVWludDhBcnJheShy
ZXN1bHQsIDAsIHJlc3VsdC5ieXRlTGVuZ3RoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXMvd29ya2Vycy93b3JrZXItcmVhZC1ibG9iLWFzeW5jLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZmlsZXMvd29ya2Vycy93b3JrZXItcmVhZC1ibG9iLWFzeW5jLWV4cGVj
dGVkLnR4dAppbmRleCBkYjY1NzlhYjI0MjgyOTUzMWU0NGExMzlmODdmNjQ5YWJiNzQ1OWEwLi4z
ZjY2NTM0ZjQ5Yjg0MzdlNjM3ZTMxYmQxM2Y3ZTFkNzA0Y2JjN2NmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2ZpbGVzL3dvcmtlcnMvd29ya2VyLXJlYWQtYmxvYi1hc3luYy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy93b3JrZXJzL3dvcmtlci1yZWFkLWJs
b2ItYXN5bmMtZXhwZWN0ZWQudHh0CkBAIC0xOCw4ICsxOCw3IEBAIFJlY2VpdmVkIGxvYWRzdGFy
dCBldmVudAogcmVhZHlTdGF0ZTogMQogUmVjZWl2ZWQgbG9hZCBldmVudAogcmVhZHlTdGF0ZTog
MgotcmVzdWx0IHNpemU6IDAKLXJlc3VsdDogCityZXN1bHQ6IG51bGwKIFJlY2VpdmVkIGxvYWRl
bmQgZXZlbnQKIFRlc3QgcmVhZGluZyBhIGJsb2IgY29udGFpbmluZyBlbXB0eSB0ZXh0CiByZWFk
eVN0YXRlOiAwCkBAIC0yNyw4ICsyNiw3IEBAIFJlY2VpdmVkIGxvYWRzdGFydCBldmVudAogcmVh
ZHlTdGF0ZTogMQogUmVjZWl2ZWQgbG9hZCBldmVudAogcmVhZHlTdGF0ZTogMgotcmVzdWx0IHNp
emU6IDAKLXJlc3VsdDogCityZXN1bHQ6IG51bGwKIFJlY2VpdmVkIGxvYWRlbmQgZXZlbnQKIFRl
c3QgcmVhZGluZyBhIGJsb2IgY29udGFpbmluZyBlbXB0eSBmaWxlcyBhbmQgZW1wdHkgdGV4dHMK
IHJlYWR5U3RhdGU6IDAKQEAgLTM2LDggKzM0LDcgQEAgUmVjZWl2ZWQgbG9hZHN0YXJ0IGV2ZW50
CiByZWFkeVN0YXRlOiAxCiBSZWNlaXZlZCBsb2FkIGV2ZW50CiByZWFkeVN0YXRlOiAyCi1yZXN1
bHQgc2l6ZTogMAotcmVzdWx0OiAKK3Jlc3VsdDogbnVsbAogUmVjZWl2ZWQgbG9hZGVuZCBldmVu
dAogVGVzdCByZWFkaW5nIGEgYmxvYiBjb250YWluaW5nIHNpbmdsZSBmaWxlCiByZWFkeVN0YXRl
OiAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3dvcmtlcnMvd29ya2VyLXJl
YWQtZmlsZS1hc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3dvcmtl
cnMvd29ya2VyLXJlYWQtZmlsZS1hc3luYy1leHBlY3RlZC50eHQKaW5kZXggZDhlZTMxYmZkMjI2
ODExM2NkNDE4OTU4NzI2YTExOWM3NWEwYjU5NC4uNTZmODhmZmY3NzkxMjg1NDhmYmViYjRkZWI4
MTNmYjI3NjE4Mjg1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy93b3JrZXJz
L3dvcmtlci1yZWFkLWZpbGUtYXN5bmMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXMvd29ya2Vycy93b3JrZXItcmVhZC1maWxlLWFzeW5jLWV4cGVjdGVkLnR4dApAQCAt
MzksOCArMzksNyBAQCBSZWNlaXZlZCBsb2Fkc3RhcnQgZXZlbnQKIHJlYWR5U3RhdGU6IDEKIFJl
Y2VpdmVkIGxvYWQgZXZlbnQKIHJlYWR5U3RhdGU6IDIKLXJlc3VsdCBzaXplOiAwCi1yZXN1bHQ6
IAorcmVzdWx0OiBudWxsCiBSZWNlaXZlZCBsb2FkZW5kIGV2ZW50CiBUZXN0IHJlYWRpbmcgYW4g
ZW1wdHkgZmlsZSBhcyB0ZXh0CiByZWFkeVN0YXRlOiAwCkBAIC00OCw4ICs0Nyw3IEBAIFJlY2Vp
dmVkIGxvYWRzdGFydCBldmVudAogcmVhZHlTdGF0ZTogMQogUmVjZWl2ZWQgbG9hZCBldmVudAog
cmVhZHlTdGF0ZTogMgotcmVzdWx0IHNpemU6IDAKLXJlc3VsdDogCityZXN1bHQ6IG51bGwKIFJl
Y2VpdmVkIGxvYWRlbmQgZXZlbnQKIFRlc3QgcmVhZGluZyBhbiBlbXB0eSBmaWxlIGFzIGRhdGEg
VVJMCiByZWFkeVN0YXRlOiAwCkBAIC0xOTEsNyArMTg5LDcgQEAgcmVzdWx0IHNpemU6IDUKIHJl
c3VsdDogSGVsbG8KIFJlY2VpdmVkIGxvYWRlbmQgZXZlbnQKIHJlYWR5U3RhdGUgYWZ0ZXIgcmVj
YWxsaW5nIHJlYWQgbWV0aG9kOiAxCi1yZXN1bHQgYWZ0ZXIgcmVjYWxsaW5nIHJlYWQgbWV0aG9k
OiAKK3Jlc3VsdCBhZnRlciByZWNhbGxpbmcgcmVhZCBtZXRob2Q6IG51bGwKIGVycm9yIGFmdGVy
IHJlY2FsbGluZyByZWFkIG1ldGhvZDogbnVsbAogUmVjZWl2ZWQgbG9hZHN0YXJ0IGV2ZW50CiBy
ZWFkeVN0YXRlOiAxCkBAIC0yMDcsNyArMjA1LDcgQEAgcmVhZHlTdGF0ZTogMgogZXJyb3IgY29k
ZTogMQogUmVjZWl2ZWQgbG9hZGVuZCBldmVudAogcmVhZHlTdGF0ZSBhZnRlciByZWNhbGxpbmcg
cmVhZCBtZXRob2Q6IDEKLXJlc3VsdCBhZnRlciByZWNhbGxpbmcgcmVhZCBtZXRob2Q6IAorcmVz
dWx0IGFmdGVyIHJlY2FsbGluZyByZWFkIG1ldGhvZDogbnVsbAogZXJyb3IgYWZ0ZXIgcmVjYWxs
aW5nIHJlYWQgbWV0aG9kOiBudWxsCiBSZWNlaXZlZCBsb2Fkc3RhcnQgZXZlbnQKIHJlYWR5U3Rh
dGU6IDEK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144686</attachid>
            <date>2012-05-29 20:28:02 -0700</date>
            <delta_ts>2012-05-29 22:48:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87578-20120531113139.patch</filename>
            <type>text/plain</type>
            <size>7728</size>
            <attacher name="Li Yin">li.yin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4ODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODRmYzNiY2MyMGRlNGRm
YzZiNTFmMGY2YTE4NjY1NTgzYTczMmJkYS4uZTk0ZmQ5Mjg0MTg4Yzk1OTkwODJhNmI2NThiMjhm
NGJkOTIxMmZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA1LTMwICBMaSBZ
aW4gIDxsaS55aW5AaW50ZWwuY29tPgorCisgICAgICAgIFtGaWxlQVBJXSBUaGUgcmVzdWx0IGF0
dHJpYnV0ZSBvZiBGaWxlUmVhZGVyIHNodW9sZCB1c2UgbnVsbCB0byByZXBsYWNlIGVtcHR5IHN0
cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc1
NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTcGVj
OiBodHRwOi8vd3d3LnczLm9yZy9UUi9GaWxlQVBJLyNkZm4tcmVzdWx0CisgICAgICAgIElmIHRo
ZSByZWFkeVN0YXRlIGlzIEVNUFRZIChubyByZWFkIG1ldGhvZCBoYXMgYmVlbiBjYWxsZWQpCisg
ICAgICAgIE9yIGlmIGFuIGVycm9yIGluIHJlYWRpbmcgdGhlIEZpbGUgb3IgQmxvYiBoYXMgb2Nj
dXJyZWQgKHVzaW5nIGFueSByZWFkIG1ldGhvZCksCisgICAgICAgIHRoZW4gdGhlIHJlc3VsdCBh
dHRyaWJ1dGUgTVVTVCByZXR1cm4gbnVsbC4KKworICAgICAgICBDdXJyZW50bHksIEZpcmVmb3gx
MSwgT3BlcmEgYW5kIElFIDEwIGZvbGxvd3MgdGhlIHNwZWMsIGJ1dCBXZWJraXQgYmFzZWQKKyAg
ICAgICAgYnJvd3NlciBkb2Vzbid0LgorICAgICAgICBXZWJLaXQgc2hvdWxkIGNoYW5nZSB0aGUg
cmV0dXJuZWQgdmFsdWUgZW1wdHkgc3RyaW5nIGludG8gbnVsbCB0byBrZWVwCisgICAgICAgIGNv
bmZvcm1hbmNlIHdpdGggdGhlIHNwZWMuCisKKworICAgICAgICBUZXN0czogZmFzdC9maWxlcy9y
ZWFkLWZpbGUtYXN5bmMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9maWxlcy93b3JrZXJzL3dv
cmtlci1yZWFkLWZpbGUtYXN5bmMuaHRtbAorCisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVSZWFkZXI6OmFycmF5QnVmZmVyUmVzdWx0KToK
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVSZWFkZXI6OnN0cmluZ1Jlc3VsdCk6CisKIDIwMTItMDUt
MjkgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtWOF0g
UmVuYW1lIHY4TnVsbCgpIHRvIHY4TnVsbFdpdGhDaGVjaygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9G
aWxlUmVhZGVyLmNwcAppbmRleCA2MDUyMmQ1ZDdmZGM0MWFhYjMxZGEwM2U5YzMxODBhMDAzY2Y3
MmM4Li5iZGFlMDU5NDJjMjIxMWU5NTRkYmZmMDAwNWFmZjQ4OTI4NDM2MjVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKQEAgLTI1MCwxMiArMjUwLDE2IEBAIHZvaWQgRmls
ZVJlYWRlcjo6ZmlyZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSkKIAogUGFzc1JlZlB0
cjxBcnJheUJ1ZmZlcj4gRmlsZVJlYWRlcjo6YXJyYXlCdWZmZXJSZXN1bHQoKSBjb25zdAogewot
ICAgIHJldHVybiBtX2xvYWRlciA/IG1fbG9hZGVyLT5hcnJheUJ1ZmZlclJlc3VsdCgpIDogMDsK
KyAgICBpZiAoIW1fbG9hZGVyIHx8IG1fZXJyb3IpCisgICAgICAgIHJldHVybiAwOworICAgIHJl
dHVybiBtX2xvYWRlci0+YXJyYXlCdWZmZXJSZXN1bHQoKTsKIH0KIAogU3RyaW5nIEZpbGVSZWFk
ZXI6OnN0cmluZ1Jlc3VsdCgpCiB7Ci0gICAgcmV0dXJuIG1fbG9hZGVyID8gbV9sb2FkZXItPnN0
cmluZ1Jlc3VsdCgpIDogIiI7CisgICAgaWYgKCFtX2xvYWRlciB8fCBtX2Vycm9yKQorICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CisgICAgcmV0dXJuIG1fbG9hZGVyLT5zdHJpbmdSZXN1bHQoKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQxN2QyZDVlYzQ4M2JhMzFkY2Mx
YmRhMmNmOTQxZTIzMDkyY2JhNTMuLjhiMTJhZjcwZmU1NDdjZjNmMDQ3YjAwMmU1ZGZiZjlhMmI5
Y2FiM2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0wNS0zMCAgTGkgWWluICA8bGkueWlu
QGludGVsLmNvbT4KKworICAgICAgICBbRmlsZUFQSV0gVGhlIHJlc3VsdCBhdHRyaWJ1dGUgb2Yg
RmlsZVJlYWRlciBzaHVvbGQgdXNlIG51bGwgdG8gcmVwbGFjZSBlbXB0eSBzdHJpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NTc4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3BlYzogaHR0cDovL3d3
dy53My5vcmcvVFIvRmlsZUFQSS8jZGZuLXJlc3VsdAorICAgICAgICBJZiB0aGUgcmVhZHlTdGF0
ZSBpcyBFTVBUWSAobm8gcmVhZCBtZXRob2QgaGFzIGJlZW4gY2FsbGVkKSwKKyAgICAgICAgT3Ig
aWYgYW4gZXJyb3IgaW4gcmVhZGluZyB0aGUgRmlsZSBvciBCbG9iIGhhcyBvY2N1cnJlZCAodXNp
bmcgYW55IHJlYWQgbWV0aG9kKSwgCisgICAgICAgIHRoZW4gdGhlIHJlc3VsdCBhdHRyaWJ1dGUg
TVVTVCByZXR1cm4gbnVsbC4KKworICAgICAgICBDdXJyZW50bHksIHdlYmtpdCByZXR1cm4gZW1w
dHkgc3RyaW5nLCBub3QgbnVsbC4KKworICAgICAgICAqIGZhc3QvZmlsZXMvcmVhZC1maWxlLWFz
eW5jLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2ZpbGVzL3Jlc291cmNlcy9yZWFkLWNv
bW1vbi5qczoKKyAgICAgICAgKGxvZ1Jlc3VsdCk6CisgICAgICAgIChsb2FkRmFpbGVkKToKKyAg
ICAgICAgKiBmYXN0L2ZpbGVzL3Jlc291cmNlcy9yZWFkLWZpbGUtdGVzdC1jYXNlcy5qczoKKyAg
ICAgICAgKHRlc3RSZWFkQWdhaW5BZnRlckZhaWxlZFJlYWRTdGVwMSk6CisgICAgICAgICogZmFz
dC9maWxlcy93b3JrZXJzL3dvcmtlci1yZWFkLWZpbGUtYXN5bmMtZXhwZWN0ZWQudHh0OgorCiAy
MDEyLTA1LTI5ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+
CiAKICAgICAgICAgU29tZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBjb25zb2xlIG1lc3NhZ2Vz
IGFyZSBtaXNzaW5nIGxpbmUgbnVtYmVycyBpbiBKU0MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXMvcmVhZC1maWxlLWFzeW5jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXMvcmVhZC1maWxlLWFzeW5jLWV4cGVjdGVkLnR4dAppbmRleCA2YzFhZmZhNDg4MzU1
MDgzYTk2MDI2MDhjZTcwZTI3YjI2MDc4YmMxLi5jZmNkNjVlOWZjYzUxNDU4OWNmMTIwYWQ5Nzhm
ZWFhYWZmMTY2NTc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3JlYWQtZmls
ZS1hc3luYy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZWFkLWZp
bGUtYXN5bmMtZXhwZWN0ZWQudHh0CkBAIC00LDI0ICs0LDI4IEBAIHJlYWR5U3RhdGU6IDAKIFJl
Y2VpdmVkIGVycm9yIGV2ZW50CiByZWFkeVN0YXRlOiAyCiBlcnJvciBjb2RlOiAxCityZXN1bHQ6
IG51bGwKIFJlY2VpdmVkIGxvYWRlbmQgZXZlbnQKIFRlc3QgcmVhZGluZyBhIG5vbi1leGlzdGVu
dCBmaWxlIGFzIGJpbmFyeSBzdHJpbmcKIHJlYWR5U3RhdGU6IDAKIFJlY2VpdmVkIGVycm9yIGV2
ZW50CiByZWFkeVN0YXRlOiAyCiBlcnJvciBjb2RlOiAxCityZXN1bHQ6IG51bGwKIFJlY2VpdmVk
IGxvYWRlbmQgZXZlbnQKIFRlc3QgcmVhZGluZyBhIG5vbi1leGlzdGVudCBmaWxlIGFzIHRleHQK
IHJlYWR5U3RhdGU6IDAKIFJlY2VpdmVkIGVycm9yIGV2ZW50CiByZWFkeVN0YXRlOiAyCiBlcnJv
ciBjb2RlOiAxCityZXN1bHQ6IG51bGwKIFJlY2VpdmVkIGxvYWRlbmQgZXZlbnQKIFRlc3QgcmVh
ZGluZyBhIG5vbi1leGlzdGVudCBmaWxlIGFzIGRhdGEgVVJMCiByZWFkeVN0YXRlOiAwCiBSZWNl
aXZlZCBlcnJvciBldmVudAogcmVhZHlTdGF0ZTogMgogZXJyb3IgY29kZTogMQorcmVzdWx0OiBu
dWxsCiBSZWNlaXZlZCBsb2FkZW5kIGV2ZW50CiBUZXN0IHJlYWRpbmcgYW4gZW1wdHkgZmlsZSBh
cyBhcnJheSBidWZmZXIKIHJlYWR5U3RhdGU6IDAKQEAgLTIwMSw5ICsyMDUsMTEgQEAgcmVzdWx0
OiBkYXRhOnRleHQvcGxhaW47YmFzZTY0LFNHVnNiRzg9CiBSZWNlaXZlZCBsb2FkZW5kIGV2ZW50
CiBUZXN0IHJlYWRpbmcgYWdhaW4gYWZ0ZXIgZmFpbGVkIHJlYWQKIHJlYWR5U3RhdGU6IDAKK3Jl
c3VsdCBiZWZvcmUgY2FsbGluZyByZWFkaW5nIG1ldGhvZDogbnVsbAogUmVjZWl2ZWQgZXJyb3Ig
ZXZlbnQKIHJlYWR5U3RhdGU6IDIKIGVycm9yIGNvZGU6IDEKK3Jlc3VsdDogbnVsbAogUmVjZWl2
ZWQgbG9hZGVuZCBldmVudAogcmVhZHlTdGF0ZSBhZnRlciByZWNhbGxpbmcgcmVhZCBtZXRob2Q6
IDEKIHJlc3VsdCBhZnRlciByZWNhbGxpbmcgcmVhZCBtZXRob2Q6IApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNvdXJjZXMvcmVhZC1jb21tb24uanMgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9yZWFkLWNvbW1vbi5qcwppbmRleCBiYWM3OTljMTMyZGMz
NTRlYmQ4ZmY1ODZhMmRkOTI5YjcwODlmYzVkLi41NDk2MWZmOWNjMGM5NDhkYTlmNTQzMjBiNjYx
ODU0NTU4NWZiZmU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNl
cy9yZWFkLWNvbW1vbi5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9y
ZWFkLWNvbW1vbi5qcwpAQCAtMTcxLDYgKzE3MSwxMCBAQCBmdW5jdGlvbiBjcmVhdGVSZWFkZXJT
eW5jKCkKIC8vICdyZXN1bHQnIGNhbiBiZSBlaXRoZXIgYW4gQXJyYXlCdWZmZXIgb2JqZWN0IG9y
IGEgc3RyaW5nLgogZnVuY3Rpb24gbG9nUmVzdWx0KHJlc3VsdCkKIHsKKyAgICBpZiAocmVzdWx0
ID09PSBudWxsKSB7CisgICAgICAgIGxvZygicmVzdWx0OiBudWxsIik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CiAgICAgaWYgKHR5cGVvZiByZXN1bHQgPT0gJ29iamVjdCcpIHsKICAgICAgICAg
bG9nKCJyZXN1bHQgc2l6ZTogIiArIHJlc3VsdC5ieXRlTGVuZ3RoKTsKICAgICAgICAgcmVzdWx0
ID0gbmV3IFVpbnQ4QXJyYXkocmVzdWx0LCAwLCByZXN1bHQuYnl0ZUxlbmd0aCk7CkBAIC0yMDYs
NiArMjEwLDcgQEAgZnVuY3Rpb24gbG9hZEZhaWxlZChldmVudCkKICAgICBsb2dFdmVudChldmVu
dCk7CiAgICAgbG9nKCJyZWFkeVN0YXRlOiAiICsgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUpOwog
ICAgIGxvZygiZXJyb3IgY29kZTogIiArIGV2ZW50LnRhcmdldC5lcnJvci5jb2RlKTsKKyAgICBs
b2dSZXN1bHQoZXZlbnQudGFyZ2V0LnJlc3VsdCk7CiB9CiAKIGZ1bmN0aW9uIGxvYWRFbmRlZCh0
ZXN0RmlsZXMsIGV2ZW50KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZXNv
dXJjZXMvcmVhZC1maWxlLXRlc3QtY2FzZXMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jl
c291cmNlcy9yZWFkLWZpbGUtdGVzdC1jYXNlcy5qcwppbmRleCAwYWJhOTI2ZmQ5NzJmMTU3MmYy
YzY1ODc0ZDQ4ODQ1NGU5ZTI1MThkLi5iODdlMmYxZjRiNzFmYWE3MmFjODNjODVhM2MxMDkzZjAw
MjUwMDM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9yZWFk
LWZpbGUtdGVzdC1jYXNlcy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNl
cy9yZWFkLWZpbGUtdGVzdC1jYXNlcy5qcwpAQCAtMjE4LDYgKzIxOCw3IEBAIGZ1bmN0aW9uIHRl
c3RSZWFkQWdhaW5BZnRlckZhaWxlZFJlYWRTdGVwMSh0ZXN0RmlsZXMpCiB7CiAgICAgbG9nKCJU
ZXN0IHJlYWRpbmcgYWdhaW4gYWZ0ZXIgZmFpbGVkIHJlYWQiKTsKICAgICByZWFkZXJUb1Rlc3RS
ZXJlYWQgPSBjcmVhdGVSZWFkZXJBc3luYyh0ZXN0RmlsZXMpOworICAgIGxvZygicmVzdWx0IGJl
Zm9yZSBjYWxsaW5nIHJlYWRpbmcgbWV0aG9kOiAiICsgcmVhZGVyVG9UZXN0UmVyZWFkLnJlc3Vs
dCkKICAgICByZWFkZXJUb1Rlc3RSZXJlYWQucmVhZEFzQmluYXJ5U3RyaW5nKHRlc3RGaWxlc1sn
bm9uLWV4aXN0ZW50J10pOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVz
L3dvcmtlcnMvd29ya2VyLXJlYWQtZmlsZS1hc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZpbGVzL3dvcmtlcnMvd29ya2VyLXJlYWQtZmlsZS1hc3luYy1leHBlY3RlZC50eHQK
aW5kZXggZDhlZTMxYmZkMjI2ODExM2NkNDE4OTU4NzI2YTExOWM3NWEwYjU5NC4uZTIyZGViNzRi
NTRiY2UxZGNhYzUwY2E0MWI4NmFjMzVmYzQ4NDZhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlcy93b3JrZXJzL3dvcmtlci1yZWFkLWZpbGUtYXN5bmMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvd29ya2Vycy93b3JrZXItcmVhZC1maWxlLWFzeW5j
LWV4cGVjdGVkLnR4dApAQCAtNSwyNCArNSwyOCBAQCByZWFkeVN0YXRlOiAwCiBSZWNlaXZlZCBl
cnJvciBldmVudAogcmVhZHlTdGF0ZTogMgogZXJyb3IgY29kZTogMQorcmVzdWx0OiBudWxsCiBS
ZWNlaXZlZCBsb2FkZW5kIGV2ZW50CiBUZXN0IHJlYWRpbmcgYSBub24tZXhpc3RlbnQgZmlsZSBh
cyBiaW5hcnkgc3RyaW5nCiByZWFkeVN0YXRlOiAwCiBSZWNlaXZlZCBlcnJvciBldmVudAogcmVh
ZHlTdGF0ZTogMgogZXJyb3IgY29kZTogMQorcmVzdWx0OiBudWxsCiBSZWNlaXZlZCBsb2FkZW5k
IGV2ZW50CiBUZXN0IHJlYWRpbmcgYSBub24tZXhpc3RlbnQgZmlsZSBhcyB0ZXh0CiByZWFkeVN0
YXRlOiAwCiBSZWNlaXZlZCBlcnJvciBldmVudAogcmVhZHlTdGF0ZTogMgogZXJyb3IgY29kZTog
MQorcmVzdWx0OiBudWxsCiBSZWNlaXZlZCBsb2FkZW5kIGV2ZW50CiBUZXN0IHJlYWRpbmcgYSBu
b24tZXhpc3RlbnQgZmlsZSBhcyBkYXRhIFVSTAogcmVhZHlTdGF0ZTogMAogUmVjZWl2ZWQgZXJy
b3IgZXZlbnQKIHJlYWR5U3RhdGU6IDIKIGVycm9yIGNvZGU6IDEKK3Jlc3VsdDogbnVsbAogUmVj
ZWl2ZWQgbG9hZGVuZCBldmVudAogVGVzdCByZWFkaW5nIGFuIGVtcHR5IGZpbGUgYXMgYXJyYXkg
YnVmZmVyCiByZWFkeVN0YXRlOiAwCkBAIC0yMDIsOSArMjA2LDExIEBAIHJlc3VsdDogZGF0YTp0
ZXh0L3BsYWluO2Jhc2U2NCxTR1ZzYkc4PQogUmVjZWl2ZWQgbG9hZGVuZCBldmVudAogVGVzdCBy
ZWFkaW5nIGFnYWluIGFmdGVyIGZhaWxlZCByZWFkCiByZWFkeVN0YXRlOiAwCityZXN1bHQgYmVm
b3JlIGNhbGxpbmcgcmVhZGluZyBtZXRob2Q6IG51bGwKIFJlY2VpdmVkIGVycm9yIGV2ZW50CiBy
ZWFkeVN0YXRlOiAyCiBlcnJvciBjb2RlOiAxCityZXN1bHQ6IG51bGwKIFJlY2VpdmVkIGxvYWRl
bmQgZXZlbnQKIHJlYWR5U3RhdGUgYWZ0ZXIgcmVjYWxsaW5nIHJlYWQgbWV0aG9kOiAxCiByZXN1
bHQgYWZ0ZXIgcmVjYWxsaW5nIHJlYWQgbWV0aG9kOiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144705</attachid>
            <date>2012-05-29 22:48:46 -0700</date>
            <delta_ts>2012-05-29 23:34:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87578-20120531135222.patch</filename>
            <type>text/plain</type>
            <size>8516</size>
            <attacher name="Li Yin">li.yin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4ODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODRmYzNiY2MyMGRlNGRm
YzZiNTFmMGY2YTE4NjY1NTgzYTczMmJkYS4uMDRjMjYyNWJkYzE3YjA2NTRjMzI0NGJkMjJjZGZj
YjZiYWUxYzgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA1LTMwICBMaSBZ
aW4gIDxsaS55aW5AaW50ZWwuY29tPgorCisgICAgICAgIFtGaWxlQVBJXSBUaGUgcmVzdWx0IGF0
dHJpYnV0ZSBvZiBGaWxlUmVhZGVyIHNodW9sZCB1c2UgbnVsbCB0byByZXBsYWNlIGVtcHR5IHN0
cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc1
NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTcGVj
OiBodHRwOi8vd3d3LnczLm9yZy9UUi9GaWxlQVBJLyNkZm4tcmVzdWx0CisgICAgICAgIElmIHRo
ZSByZWFkeVN0YXRlIGlzIEVNUFRZIChubyByZWFkIG1ldGhvZCBoYXMgYmVlbiBjYWxsZWQpIG9y
IGFuIGVycm9yIAorICAgICAgICBpbiByZWFkaW5nIHRoZSBGaWxlIG9yIEJsb2IgaGFzIG9jY3Vy
cmVkICh1c2luZyBhbnkgcmVhZCBtZXRob2QpLCB0aGVuIHRoZSAKKyAgICAgICAgcmVzdWx0IGF0
dHJpYnV0ZSBNVVNUIHJldHVybiBudWxsLgorCisgICAgICAgIEN1cnJlbnRseSwgRmlyZWZveDEx
LCBPcGVyYSBhbmQgSUUgMTAgZm9sbG93cyB0aGUgc3BlYywgYnV0IFdlYmtpdCBiYXNlZAorICAg
ICAgICBicm93c2VyIGRvZXNuJ3QuCisgICAgICAgIFdlYktpdCBzaG91bGQgY2hhbmdlIHRoZSBy
ZXR1cm5lZCB2YWx1ZSBlbXB0eSBzdHJpbmcgaW50byBudWxsIHRvIGtlZXAKKyAgICAgICAgY29u
Zm9ybWFuY2Ugd2l0aCB0aGUgc3BlYy4KKworICAgICAgICBUZXN0czogZmFzdC9maWxlcy9yZWFk
LWZpbGUtYXN5bmMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9maWxlcy93b3JrZXJzL3dvcmtl
ci1yZWFkLWZpbGUtYXN5bmMuaHRtbAorCisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVSZWFkZXI6OmFycmF5QnVmZmVyUmVzdWx0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVSZWFkZXI6OnN0cmluZ1Jlc3VsdCk6CisKIDIwMTItMDUtMjkg
IEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtWOF0gUmVu
YW1lIHY4TnVsbCgpIHRvIHY4TnVsbFdpdGhDaGVjaygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxl
UmVhZGVyLmNwcAppbmRleCA2MDUyMmQ1ZDdmZGM0MWFhYjMxZGEwM2U5YzMxODBhMDAzY2Y3MmM4
Li5iZGFlMDU5NDJjMjIxMWU5NTRkYmZmMDAwNWFmZjQ4OTI4NDM2MjVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKQEAgLTI1MCwxMiArMjUwLDE2IEBAIHZvaWQgRmlsZVJl
YWRlcjo6ZmlyZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSkKIAogUGFzc1JlZlB0cjxB
cnJheUJ1ZmZlcj4gRmlsZVJlYWRlcjo6YXJyYXlCdWZmZXJSZXN1bHQoKSBjb25zdAogewotICAg
IHJldHVybiBtX2xvYWRlciA/IG1fbG9hZGVyLT5hcnJheUJ1ZmZlclJlc3VsdCgpIDogMDsKKyAg
ICBpZiAoIW1fbG9hZGVyIHx8IG1fZXJyb3IpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVy
biBtX2xvYWRlci0+YXJyYXlCdWZmZXJSZXN1bHQoKTsKIH0KIAogU3RyaW5nIEZpbGVSZWFkZXI6
OnN0cmluZ1Jlc3VsdCgpCiB7Ci0gICAgcmV0dXJuIG1fbG9hZGVyID8gbV9sb2FkZXItPnN0cmlu
Z1Jlc3VsdCgpIDogIiI7CisgICAgaWYgKCFtX2xvYWRlciB8fCBtX2Vycm9yKQorICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CisgICAgcmV0dXJuIG1fbG9hZGVyLT5zdHJpbmdSZXN1bHQoKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQxN2QyZDVlYzQ4M2JhMzFkY2MxYmRh
MmNmOTQxZTIzMDkyY2JhNTMuLmE0YjY1MjU1OGQwNzkyZjkyZjg4MDI2ODJjNzdiYzFiMmVmZGNk
NTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0wNS0zMCAgTGkgWWluICA8bGkueWluQGlu
dGVsLmNvbT4KKworICAgICAgICBbRmlsZUFQSV0gVGhlIHJlc3VsdCBhdHRyaWJ1dGUgb2YgRmls
ZVJlYWRlciBzaHVvbGQgdXNlIG51bGwgdG8gcmVwbGFjZSBlbXB0eSBzdHJpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NTc4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3BlYzogaHR0cDovL3d3dy53
My5vcmcvVFIvRmlsZUFQSS8jZGZuLXJlc3VsdAorICAgICAgICBJZiB0aGUgcmVhZHlTdGF0ZSBp
cyBFTVBUWSAobm8gcmVhZCBtZXRob2QgaGFzIGJlZW4gY2FsbGVkKSBvciBhbiBlcnJvciBpbgor
ICAgICAgICByZWFkaW5nIHRoZSBGaWxlIG9yIEJsb2IgaGFzIG9jY3VycmVkICh1c2luZyBhbnkg
cmVhZCBtZXRob2QpLCB0aGVuIHRoZSByZXN1bHQKKyAgICAgICAgYXR0cmlidXRlIE1VU1QgcmV0
dXJuIG51bGwuCisKKyAgICAgICAgQ3VycmVudGx5LCB3ZWJraXQgcmV0dXJuIGVtcHR5IHN0cmlu
Zywgbm90IG51bGwuCisKKyAgICAgICAgKiBmYXN0L2ZpbGVzL3JlYWQtZmlsZS1hc3luYy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9maWxlcy9yZXNvdXJjZXMvcmVhZC1jb21tb24uanM6
CisgICAgICAgIChsb2dSZXN1bHQpOgorICAgICAgICAobG9hZEZhaWxlZCk6CisgICAgICAgICog
ZmFzdC9maWxlcy9yZXNvdXJjZXMvcmVhZC1maWxlLXRlc3QtY2FzZXMuanM6CisgICAgICAgICh0
ZXN0UmVhZEFnYWluQWZ0ZXJGYWlsZWRSZWFkU3RlcDEpOgorICAgICAgICAqIGZhc3QvZmlsZXMv
d29ya2Vycy93b3JrZXItcmVhZC1maWxlLWFzeW5jLWV4cGVjdGVkLnR4dDoKKwogMjAxMi0wNS0y
OSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAg
ICAgIFNvbWUgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgY29uc29sZSBtZXNzYWdlcyBhcmUgbWlz
c2luZyBsaW5lIG51bWJlcnMgaW4gSlNDCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zp
bGVzL3JlYWQtZmlsZS1hc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVz
L3JlYWQtZmlsZS1hc3luYy1leHBlY3RlZC50eHQKaW5kZXggNmMxYWZmYTQ4ODM1NTA4M2E5NjAy
NjA4Y2U3MGUyN2IyNjA3OGJjMS4uN2E4OGIxMmMwMzFmMjAxYmQxYmU5M2IzZjU0OTNiZmRhYTNj
ZTZiNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZWFkLWZpbGUtYXN5bmMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVhZC1maWxlLWFzeW5j
LWV4cGVjdGVkLnR4dApAQCAtNCwyNCArNCwyOCBAQCByZWFkeVN0YXRlOiAwCiBSZWNlaXZlZCBl
cnJvciBldmVudAogcmVhZHlTdGF0ZTogMgogZXJyb3IgY29kZTogMQorcmVzdWx0OiBudWxsCiBS
ZWNlaXZlZCBsb2FkZW5kIGV2ZW50CiBUZXN0IHJlYWRpbmcgYSBub24tZXhpc3RlbnQgZmlsZSBh
cyBiaW5hcnkgc3RyaW5nCiByZWFkeVN0YXRlOiAwCiBSZWNlaXZlZCBlcnJvciBldmVudAogcmVh
ZHlTdGF0ZTogMgogZXJyb3IgY29kZTogMQorcmVzdWx0OiBudWxsCiBSZWNlaXZlZCBsb2FkZW5k
IGV2ZW50CiBUZXN0IHJlYWRpbmcgYSBub24tZXhpc3RlbnQgZmlsZSBhcyB0ZXh0CiByZWFkeVN0
YXRlOiAwCiBSZWNlaXZlZCBlcnJvciBldmVudAogcmVhZHlTdGF0ZTogMgogZXJyb3IgY29kZTog
MQorcmVzdWx0OiBudWxsCiBSZWNlaXZlZCBsb2FkZW5kIGV2ZW50CiBUZXN0IHJlYWRpbmcgYSBu
b24tZXhpc3RlbnQgZmlsZSBhcyBkYXRhIFVSTAogcmVhZHlTdGF0ZTogMAogUmVjZWl2ZWQgZXJy
b3IgZXZlbnQKIHJlYWR5U3RhdGU6IDIKIGVycm9yIGNvZGU6IDEKK3Jlc3VsdDogbnVsbAogUmVj
ZWl2ZWQgbG9hZGVuZCBldmVudAogVGVzdCByZWFkaW5nIGFuIGVtcHR5IGZpbGUgYXMgYXJyYXkg
YnVmZmVyCiByZWFkeVN0YXRlOiAwCkBAIC0yMDQsNiArMjA4LDcgQEAgcmVhZHlTdGF0ZTogMAog
UmVjZWl2ZWQgZXJyb3IgZXZlbnQKIHJlYWR5U3RhdGU6IDIKIGVycm9yIGNvZGU6IDEKK3Jlc3Vs
dDogbnVsbAogUmVjZWl2ZWQgbG9hZGVuZCBldmVudAogcmVhZHlTdGF0ZSBhZnRlciByZWNhbGxp
bmcgcmVhZCBtZXRob2Q6IDEKIHJlc3VsdCBhZnRlciByZWNhbGxpbmcgcmVhZCBtZXRob2Q6IApA
QCAtMjE1LDUgKzIyMCwxNSBAQCByZWFkeVN0YXRlOiAyCiByZXN1bHQgc2l6ZTogMzEKIHJlc3Vs
dDogZGF0YTp0ZXh0L3BsYWluO2Jhc2U2NCxTR1ZzYkc4PQogUmVjZWl2ZWQgbG9hZGVuZCBldmVu
dAorVGVzdCByZXN1bHQgYmVmb3JlIHJlYWRpbmcgbWV0aG9kCityZWFkeVN0YXRlOiAwCityZXN1
bHQgYmVmb3JlIHJlYWRpbmcgbWV0aG9kOiBudWxsCitSZWNlaXZlZCBsb2Fkc3RhcnQgZXZlbnQK
K3JlYWR5U3RhdGU6IDEKK1JlY2VpdmVkIGxvYWQgZXZlbnQKK3JlYWR5U3RhdGU6IDIKK3Jlc3Vs
dCBzaXplOiAwCityZXN1bHQ6IAorUmVjZWl2ZWQgbG9hZGVuZCBldmVudAogRE9ORQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9yZWFkLWNvbW1vbi5qcyBi
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVzb3VyY2VzL3JlYWQtY29tbW9uLmpzCmluZGV4IGJh
Yzc5OWMxMzJkYzM1NGViZDhmZjU4NmEyZGQ5MjliNzA4OWZjNWQuLjU0OTYxZmY5Y2MwYzk0OGRh
OWY1NDMyMGI2NjE4NTQ1NTg1ZmJmZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZmls
ZXMvcmVzb3VyY2VzL3JlYWQtY29tbW9uLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMv
cmVzb3VyY2VzL3JlYWQtY29tbW9uLmpzCkBAIC0xNzEsNiArMTcxLDEwIEBAIGZ1bmN0aW9uIGNy
ZWF0ZVJlYWRlclN5bmMoKQogLy8gJ3Jlc3VsdCcgY2FuIGJlIGVpdGhlciBhbiBBcnJheUJ1ZmZl
ciBvYmplY3Qgb3IgYSBzdHJpbmcuCiBmdW5jdGlvbiBsb2dSZXN1bHQocmVzdWx0KQogeworICAg
IGlmIChyZXN1bHQgPT09IG51bGwpIHsKKyAgICAgICAgbG9nKCJyZXN1bHQ6IG51bGwiKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PSAnb2JqZWN0Jykg
ewogICAgICAgICBsb2coInJlc3VsdCBzaXplOiAiICsgcmVzdWx0LmJ5dGVMZW5ndGgpOwogICAg
ICAgICByZXN1bHQgPSBuZXcgVWludDhBcnJheShyZXN1bHQsIDAsIHJlc3VsdC5ieXRlTGVuZ3Ro
KTsKQEAgLTIwNiw2ICsyMTAsNyBAQCBmdW5jdGlvbiBsb2FkRmFpbGVkKGV2ZW50KQogICAgIGxv
Z0V2ZW50KGV2ZW50KTsKICAgICBsb2coInJlYWR5U3RhdGU6ICIgKyBldmVudC50YXJnZXQucmVh
ZHlTdGF0ZSk7CiAgICAgbG9nKCJlcnJvciBjb2RlOiAiICsgZXZlbnQudGFyZ2V0LmVycm9yLmNv
ZGUpOworICAgIGxvZ1Jlc3VsdChldmVudC50YXJnZXQucmVzdWx0KTsKIH0KIAogZnVuY3Rpb24g
bG9hZEVuZGVkKHRlc3RGaWxlcywgZXZlbnQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzL3Jlc291cmNlcy9yZWFkLWZpbGUtdGVzdC1jYXNlcy5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXMvcmVzb3VyY2VzL3JlYWQtZmlsZS10ZXN0LWNhc2VzLmpzCmluZGV4IDBhYmE5MjZm
ZDk3MmYxNTcyZjJjNjU4NzRkNDg4NDU0ZTllMjUxOGQuLjAwNTBiMTg0MzFmMjEzZTJlYzUxMjQ1
NTExZTRjZTcyZjk2ZTdiZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVz
b3VyY2VzL3JlYWQtZmlsZS10ZXN0LWNhc2VzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmls
ZXMvcmVzb3VyY2VzL3JlYWQtZmlsZS10ZXN0LWNhc2VzLmpzCkBAIC0yNSw3ICsyNSw4IEBAIHZh
ciBhc3luY1Rlc3RDYXNlcyA9IFsKICAgICAidGVzdFJlYWRBZ2FpbkFmdGVyU3VjY2Vzc2Z1bFJl
YWRTdGVwMSIsCiAgICAgInRlc3RSZWFkQWdhaW5BZnRlclN1Y2Nlc3NmdWxSZWFkU3RlcDIiLAog
ICAgICJ0ZXN0UmVhZEFnYWluQWZ0ZXJGYWlsZWRSZWFkU3RlcDEiLAotICAgICJ0ZXN0UmVhZEFn
YWluQWZ0ZXJGYWlsZWRSZWFkU3RlcDIiCisgICAgInRlc3RSZWFkQWdhaW5BZnRlckZhaWxlZFJl
YWRTdGVwMiIsCisgICAgInRlc3RSZXN1bHRCZWZvcmVSZWFkIgogXTsKIHZhciB0ZXN0SW5kZXgg
PSAwOwogdmFyIGluaXRpYWxpemVkID0gZmFsc2U7CkBAIC0yMjksNCArMjMwLDEwIEBAIGZ1bmN0
aW9uIHRlc3RSZWFkQWdhaW5BZnRlckZhaWxlZFJlYWRTdGVwMih0ZXN0RmlsZXMpCiAgICAgbG9n
KCJlcnJvciBhZnRlciByZWNhbGxpbmcgcmVhZCBtZXRob2Q6ICIgKyByZWFkZXJUb1Rlc3RSZXJl
YWQuZXJyb3IpOwogfQogCi0KK2Z1bmN0aW9uIHRlc3RSZXN1bHRCZWZvcmVSZWFkKHRlc3RGaWxl
cykKK3sKKyAgICBsb2coIlRlc3QgcmVzdWx0IGJlZm9yZSByZWFkaW5nIG1ldGhvZCIpOworICAg
IHZhciByZWFkZXIgPSBjcmVhdGVSZWFkZXJBc3luYyh0ZXN0RmlsZXMpOworICAgIGxvZygicmVz
dWx0IGJlZm9yZSByZWFkaW5nIG1ldGhvZDogIiArIHJlYWRlci5yZXN1bHQpOworICAgIHJlYWRl
ci5yZWFkQXNCaW5hcnlTdHJpbmcodGVzdEZpbGVzWydlbXB0eS1maWxlJ10pOworfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy93b3JrZXJzL3dvcmtlci1yZWFkLWZpbGUtYXN5
bmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy93b3JrZXJzL3dvcmtlci1y
ZWFkLWZpbGUtYXN5bmMtZXhwZWN0ZWQudHh0CmluZGV4IGQ4ZWUzMWJmZDIyNjgxMTNjZDQxODk1
ODcyNmExMTljNzVhMGI1OTQuLjQ2YThiMjIzM2FkMDQxNTA5ODUyMDJmM2IzZTdmZjNmZjQyNDZj
YTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvd29ya2Vycy93b3JrZXItcmVh
ZC1maWxlLWFzeW5jLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3dv
cmtlcnMvd29ya2VyLXJlYWQtZmlsZS1hc3luYy1leHBlY3RlZC50eHQKQEAgLTUsMjQgKzUsMjgg
QEAgcmVhZHlTdGF0ZTogMAogUmVjZWl2ZWQgZXJyb3IgZXZlbnQKIHJlYWR5U3RhdGU6IDIKIGVy
cm9yIGNvZGU6IDEKK3Jlc3VsdDogbnVsbAogUmVjZWl2ZWQgbG9hZGVuZCBldmVudAogVGVzdCBy
ZWFkaW5nIGEgbm9uLWV4aXN0ZW50IGZpbGUgYXMgYmluYXJ5IHN0cmluZwogcmVhZHlTdGF0ZTog
MAogUmVjZWl2ZWQgZXJyb3IgZXZlbnQKIHJlYWR5U3RhdGU6IDIKIGVycm9yIGNvZGU6IDEKK3Jl
c3VsdDogbnVsbAogUmVjZWl2ZWQgbG9hZGVuZCBldmVudAogVGVzdCByZWFkaW5nIGEgbm9uLWV4
aXN0ZW50IGZpbGUgYXMgdGV4dAogcmVhZHlTdGF0ZTogMAogUmVjZWl2ZWQgZXJyb3IgZXZlbnQK
IHJlYWR5U3RhdGU6IDIKIGVycm9yIGNvZGU6IDEKK3Jlc3VsdDogbnVsbAogUmVjZWl2ZWQgbG9h
ZGVuZCBldmVudAogVGVzdCByZWFkaW5nIGEgbm9uLWV4aXN0ZW50IGZpbGUgYXMgZGF0YSBVUkwK
IHJlYWR5U3RhdGU6IDAKIFJlY2VpdmVkIGVycm9yIGV2ZW50CiByZWFkeVN0YXRlOiAyCiBlcnJv
ciBjb2RlOiAxCityZXN1bHQ6IG51bGwKIFJlY2VpdmVkIGxvYWRlbmQgZXZlbnQKIFRlc3QgcmVh
ZGluZyBhbiBlbXB0eSBmaWxlIGFzIGFycmF5IGJ1ZmZlcgogcmVhZHlTdGF0ZTogMApAQCAtMjA1
LDYgKzIwOSw3IEBAIHJlYWR5U3RhdGU6IDAKIFJlY2VpdmVkIGVycm9yIGV2ZW50CiByZWFkeVN0
YXRlOiAyCiBlcnJvciBjb2RlOiAxCityZXN1bHQ6IG51bGwKIFJlY2VpdmVkIGxvYWRlbmQgZXZl
bnQKIHJlYWR5U3RhdGUgYWZ0ZXIgcmVjYWxsaW5nIHJlYWQgbWV0aG9kOiAxCiByZXN1bHQgYWZ0
ZXIgcmVjYWxsaW5nIHJlYWQgbWV0aG9kOiAKQEAgLTIxNiw1ICsyMjEsMTUgQEAgcmVhZHlTdGF0
ZTogMgogcmVzdWx0IHNpemU6IDMxCiByZXN1bHQ6IGRhdGE6dGV4dC9wbGFpbjtiYXNlNjQsU0dW
c2JHOD0KIFJlY2VpdmVkIGxvYWRlbmQgZXZlbnQKK1Rlc3QgcmVzdWx0IGJlZm9yZSByZWFkaW5n
IG1ldGhvZAorcmVhZHlTdGF0ZTogMAorcmVzdWx0IGJlZm9yZSByZWFkaW5nIG1ldGhvZDogbnVs
bAorUmVjZWl2ZWQgbG9hZHN0YXJ0IGV2ZW50CityZWFkeVN0YXRlOiAxCitSZWNlaXZlZCBsb2Fk
IGV2ZW50CityZWFkeVN0YXRlOiAyCityZXN1bHQgc2l6ZTogMAorcmVzdWx0OiAKK1JlY2VpdmVk
IGxvYWRlbmQgZXZlbnQKIERPTkUKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>