<?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>66585</bug_id>
          
          <creation_ts>2011-08-19 14:01:33 -0700</creation_ts>
          <short_desc>XSS filter bypass via document.write(location.href) and fragments</short_desc>
          <delta_ts>2011-08-31 13:51:25 -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>WebKit 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>XSSAuditor</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>66579</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>abarth</cc>
    
    <cc>dbates</cc>
    
    <cc>tsepez</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>454063</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-19 14:01:33 -0700</bug_when>
    <thetext>http://code.google.com/p/chromium/issues/detail?id=76796

VULNERABILITY DETAILS
There is a way to bypass anti-XSS filter for DOM XSS exploiting a &quot;window.location.href&quot;.

Considering a typical URL:

scheme://domain:port/path?query_string#fragment_id

Browsers encode correctly both &quot;path&quot; and &quot;query_string&quot;, but not the &quot;fragment_id&quot;. 
Explorer does not encode neither &quot;query_string&quot;.
So if used &quot;fragment_id&quot; the vector is also not logged on Web Server.

VERSION
Chrome Version: 10.0.648.134 (Official Build 77917) beta

REPRODUCTION CASE
This is an xss_location.html page:

[[
&lt;script type=&quot;text/javascript&quot; language=&quot;javascript&quot;&gt; 
	document.write( window.location.href );
&lt;/script&gt;
]]

The attack vector is:
xss_location.html?#&lt;script&gt;alert(&apos;XSS&apos;);&lt;/script&gt;

* PoC:
For your convenience, a minimalist PoC is located on:
http://security.onofri.org/xss_location.html?#&lt;script&gt;alert(&apos;XSS&apos;);&lt;/script&gt;

* References
 - DOM Based Cross Site Scripting or XSS of the Third Kind - http://www.webappsec.org/projects/articles/071105.shtml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456266</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-08-24 11:43:02 -0700</bug_when>
    <thetext>I am unable to reproduce this issue using either Safari- or Chrome-  for Mac,  Version 5.1 (7534.48.3, r93670) and 14.0.835.109 beta, respectively.

Are there any additional details?

I did notice that Chrome doesn&apos;t visibly encode the fragment portion of the URL which is consistent with both the description of this bug as well as reiterated in &lt;http://code.google.com/p/chromium/issues/detail?id=76796#c7&gt;. When running the example in Chrome, we attempt to construct the HTML Script Element. The XSS Auditor detects this and scrubs the contents of the &lt;script&gt;.

In comparison, in Safari the fragment portion of the URL is encoded and hence we don&apos;t interpret as HTML markup.

For completeness, we have some test coverage for DOM-based XSS via window.location. For example, &lt;http://trac.webkit.org/browser/trunk/LayoutTests/http/tests/security/xssAuditor/dom-write-location.html&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456388</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-24 13:51:32 -0700</bug_when>
    <thetext>I also can&apos;t reproduce.  Maybe we should add a test a test and close this issue?  I tried this variation as well:

http://security.onofri.org/xss_location.html?#&lt;script&gt;alert(&apos;XS%41S&apos;);&lt;/script&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456405</commentid>
    <comment_count>3</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-08-24 14:19:06 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I also can&apos;t reproduce.  Maybe we should add a test a test and close this issue?

Actually, we already have a test case that covers this issue:
&lt;http://trac.webkit.org/browser/trunk/LayoutTests/http/tests/security/xssAuditor/anchor-url-dom-write-location.html&gt;.

&gt;  I tried this variation as well:
&gt; 
&gt; http://security.onofri.org/xss_location.html?#&lt;script&gt;alert(&apos;XS%41S&apos;);&lt;/script&gt;

I&apos;ll add a test for this variation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456413</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-24 14:31:14 -0700</bug_when>
    <thetext>Thanks Dan.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456427</commentid>
    <comment_count>5</comment_count>
      <attachid>105073</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-08-24 14:48:34 -0700</bug_when>
    <thetext>Created attachment 105073
LayoutTest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456474</commentid>
    <comment_count>6</comment_count>
      <attachid>105073</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-24 15:36:07 -0700</bug_when>
    <thetext>Comment on attachment 105073
LayoutTest

Clearing flags on attachment: 105073

Committed r93745: &lt;http://trac.webkit.org/changeset/93745&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456475</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-24 15:36:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456523</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-24 16:37:55 -0700</bug_when>
    <thetext>Actually, Tom managed to repro this issue.  Instant was causing me not to be able to repro it before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456528</commentid>
    <comment_count>9</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-08-24 16:46:47 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Actually, Tom managed to repro this issue.  Instant was causing me not to be able to repro it before.

Can you elaborate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456532</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-08-24 16:53:05 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; Actually, Tom managed to repro this issue.  Instant was causing me not to be able to repro it before.
&gt; 
&gt; Can you elaborate?

Never mind I was able to reproduce this issue with both Chrome for Mac 13.0.782.215 and 14.0.835.109 beta using:

http://security.onofri.org/xss_location.html?#&lt;script&gt;alert(&apos;XS%41S&apos;);&lt;/script&gt;

I am unable to reproduce this issue with either shipping Mac Safari 5.1 or Mac Nightly r93707.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456536</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-24 16:59:54 -0700</bug_when>
    <thetext>&gt; I am unable to reproduce this issue with either shipping Mac Safari 5.1 or Mac Nightly r93707.

That could be related to different URL handling in KURL and GURL.  Tom&apos;s thoughts are that we should try decoding these strings repeatedly until they stop changing, which should be robust to this sort of issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456541</commentid>
    <comment_count>12</comment_count>
      <attachid>105098</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-08-24 17:09:49 -0700</bug_when>
    <thetext>Created attachment 105098
DRT Test Case

I was able to reproduce the issue with Safari when I load a URL that has a similar form as the example in an &lt;iframe&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458266</commentid>
    <comment_count>13</comment_count>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-08-29 10:30:07 -0700</bug_when>
    <thetext>Interestingly, the layout test that was introduced for this case is passing.  Here&apos;s what I&apos;m observing:

The xss auditor bypass as reported requires that location.hash return a value of &quot;#&lt;script&gt;alert(&apos;XS%41&apos;)&lt;/script&gt;&quot; to JS which is then passed to document.write().

Chrome (as distributed) and Safari (but only when launched from a fresh build via Tools/Script/run-safari&quot;) return this string.

Safari (as installed officially on my mac from cupertino) and (somehow) dumpRenderTree (as built) instead return &quot;#%3cscript%3ealert(&apos;XS%41S&apos;)%3e/script%3c&quot;.

In order make this fire at all, the LayoutTest&apos;s .html file does document.write(unescape(...)).  The unescape introduces the needed &lt;&gt; punctuation, but also gets rid of the &quot;%41&quot;, which must persist for this example to work.  Without a &quot;%41&quot; in the url, there isn&apos;t the conflict between xssauditor&apos;s decode() of URL and the page with the %41.

So ...  now I need to determine (if and) why say, alert(document.location) gives the different results for official safari vs. chrome vs. built safari vs. dumprendertree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458386</commentid>
    <comment_count>14</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-08-29 12:51:52 -0700</bug_when>
    <thetext>Additional remarks:

As I remarked in comment 1, Safari URL encodes the fragment portion of the URL for the main frame load. In particular, &apos;&lt;&apos;, and &apos;&gt;&apos; and URL encoded. So, #&lt;script&gt;alert(&apos;XS%41S&apos;);&lt;/script&gt; becomes #%3Cscript%3Ealert(&apos;XS%41S&apos;);%3C/script%3E.

From debugging the DRT test case using an Apple Mac WebKit build, we don&apos;t encode the fragment portion of the &lt;iframe&gt;&apos;s src attribute using the same encoding algorithm as we do for a main frame load. In particular, when we construct a KURL object from the value of the &lt;iframe&gt;&apos;s src attribute in SubframeLoader::requestFrame() (http://trac.webkit.org/browser/trunk/Source/WebCore/loader/SubframeLoader.cpp?rev=85395#L81), we ultimately call escapeAndAppendFragment() (See remark (*)) in KURL.cpp which only escapes ASCII characters whose value is &lt; 32 (Space) and &gt;= 127 (DEL): &lt;http://trac.webkit.org/browser/trunk/Source/WebCore/platform/KURL.cpp?rev=89336#L1017&gt;.

For comparison, we use appendEscapingBadChars() in KURL.cpp to escape unsafe characters in the query string portion of the URL. And appendEscapingBadChars() escapes every isBadChar() character c \notin {&apos;%&apos;, &apos;?&apos;, &apos;\t&apos;, &apos;\n&apos;, &apos;\r&apos;}.

(*) Notice that HTMLFrameElementBase::openURL() calls SubframeLoader::requestFrame(); =&gt; SubframeLoader::completeURL() ;=&gt; Document::completeURL(); =&gt; KURL(const KURL&amp; base, const String&amp; relative, const TextEncoding&amp;) ;=&gt; KURL::init(const KURL&amp; base, const String&amp; relative, const TextEncoding&amp; encoding) ;=&gt; KURL::parse(const char* url, const String* originalString); =&gt; escapeAndAppendFragment().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458432</commentid>
    <comment_count>15</comment_count>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-08-29 13:48:47 -0700</bug_when>
    <thetext>Ok, if that&apos;s the case, then we should be able to build a test that illustrates the issue if the unescape() is removed and a %41 is present in the hash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458448</commentid>
    <comment_count>16</comment_count>
      <attachid>105521</attachid>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-08-29 14:15:15 -0700</bug_when>
    <thetext>Created attachment 105521
Revised test case showing the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459793</commentid>
    <comment_count>17</comment_count>
      <attachid>105806</attachid>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-08-31 11:52:36 -0700</bug_when>
    <thetext>Created attachment 105806
Patch plus test case changes from prev attachment.

Reduces both the url/post parameters and the body snippet to a minimal form before making a comparison for a reflected XSS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459809</commentid>
    <comment_count>18</comment_count>
      <attachid>105806</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-31 12:03:20 -0700</bug_when>
    <thetext>Comment on attachment 105806
Patch plus test case changes from prev attachment.

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

This looks great.  Below are just some style nits.

&gt; Source/WebCore/html/parser/XSSAuditor.cpp:119
&gt; +static String fullyDecodeString(const String&amp; string,
&gt; +                                const TextResourceDecoder* decoder)

WebKit usually keeps function declarations to one line.

&gt; Source/WebCore/html/parser/XSSAuditor.cpp:121
&gt; +    size_t workingLen;

workingLen =&gt; workingLength

WebKit likes variable names make from complete words.

&gt; Source/WebCore/html/parser/XSSAuditor.cpp:129
&gt; +      CString workingStringUTF8 = workingString.utf8();
&gt; +      String decodedString = decoder-&gt;encoding().decode(

4-space indent, pls.

&gt; Source/WebCore/html/parser/XSSAuditor.cpp:130
&gt; +          workingStringUTF8.data(), workingStringUTF8.length());

Also, this should be on one line.  There is no 80 column line limit in WebKit.

&gt; Source/WebCore/html/parser/XSSAuditor.cpp:469
&gt; +      return false;

4-space indent</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459823</commentid>
    <comment_count>19</comment_count>
      <attachid>105811</attachid>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-08-31 12:22:59 -0700</bug_when>
    <thetext>Created attachment 105811
Patch from prev attachment with corrected indent style.

Sorry about that.  Looks like my editor settings were still set to &quot;2&quot; on this box.
Other question:  is there a way to prove this is sufficiently performant?  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459827</commentid>
    <comment_count>20</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-31 12:27:15 -0700</bug_when>
    <thetext>&gt; Other question:  is there a way to prove this is sufficiently performant?  Thanks.

There are two approaches:

1) You can run the PLT.  You can either do this manually or watch http://build.chromium.org/f/chromium/perf/dashboard/overview.html once you patch rolls into Chromium.

2) We have some XSS auditor performance tests, but they&apos;re pretty minimal:

http://trac.webkit.org/browser/trunk/PerformanceTests/XSSAuditor

I don&apos;t think this patch will cause a performance problem, though.  The common case is that we&apos;ll decode the same number of times as before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459829</commentid>
    <comment_count>21</comment_count>
      <attachid>105811</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-31 12:28:37 -0700</bug_when>
    <thetext>Comment on attachment 105811
Patch from prev attachment with corrected indent style.

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

&gt; Source/WebCore/html/parser/XSSAuditor.cpp:125
&gt; +    } while (workingString.length() &lt; workingLength);

After this program point, workingLength no longer reflects the length of workingString.  That&apos;s fine, but slightly confusing.  Maybe add a comment?  (Or maybe it&apos;s not worth worrying about.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459830</commentid>
    <comment_count>22</comment_count>
      <attachid>105814</attachid>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-08-31 12:33:07 -0700</bug_when>
    <thetext>Created attachment 105814
Prev patch plus renamed length variable.

Sure, why not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459884</commentid>
    <comment_count>23</comment_count>
      <attachid>105814</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-31 13:51:19 -0700</bug_when>
    <thetext>Comment on attachment 105814
Prev patch plus renamed length variable.

Clearing flags on attachment: 105814

Committed r94225: &lt;http://trac.webkit.org/changeset/94225&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459885</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-31 13:51:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105073</attachid>
            <date>2011-08-24 14:48:34 -0700</date>
            <delta_ts>2011-08-24 17:09:49 -0700</delta_ts>
            <desc>LayoutTest</desc>
            <filename>bug-66585-20110824144536.patch</filename>
            <type>text/plain</type>
            <size>2037</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDkzNzM5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDgtMjQgIERhbmllbCBCYXRlcyAgPGRi
YXRlc0B3ZWJraXQub3JnPgorCisgICAgICAgIFhTUyBmaWx0ZXIgYnlwYXNzIHZpYSBkb2N1bWVu
dC53cml0ZShsb2NhdGlvbi5ocmVmKSBhbmQgZnJhZ21lbnRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU4NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgY2FzZSBmb3IgYSB2YXJpYXRp
b24gb2YgYSBET00tYmFzZWQgWFNTIGF0dGFjayB1c2luZyBhbiBhbmNob3IgVVJMLgorCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2FuY2hvci11cmwtZG9tLXdyaXRl
LWxvY2F0aW9uMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9hbmNob3ItdXJsLWRvbS13cml0ZS1sb2NhdGlvbjIuaHRtbDogQWRk
ZWQuCisKIDIwMTEtMDgtMjQgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBTb21lIGNvbXBvc2l0aW5nIExheW91dFRlc3RzIGZsYWtpbHkgY3Jhc2hpbmcg
b24gTWFjIDEwLjYKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci9hbmNob3ItdXJsLWRvbS13cml0ZS1sb2NhdGlvbjItZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9hbmNob3It
dXJsLWRvbS13cml0ZS1sb2NhdGlvbjItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2FuY2hvci11cmwtZG9tLXdy
aXRlLWxvY2F0aW9uMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFJlZnVzZWQgdG8gZXhlY3V0ZSBhIEphdmFTY3JpcHQg
c2NyaXB0LiBTb3VyY2UgY29kZSBvZiBzY3JpcHQgZm91bmQgd2l0aGluIHJlcXVlc3QuCisKKwpJ
bmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2FuY2hvci11
cmwtZG9tLXdyaXRlLWxvY2F0aW9uMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9hbmNob3ItdXJsLWRvbS13cml0ZS1sb2NhdGlv
bjIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9hbmNob3ItdXJsLWRvbS13cml0ZS1sb2NhdGlvbjIuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNT
QXVkaXRvckVuYWJsZWQodHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlm
cmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291
cmNlcy9lY2hvLWRvbS13cml0ZS1sb2NhdGlvbi5odG1sPyM8c2NyaXB0PmFsZXJ0KCdYUyU0MVMn
KTwvc2NyaXB0PiI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105098</attachid>
            <date>2011-08-24 17:09:49 -0700</date>
            <delta_ts>2011-08-24 17:09:49 -0700</delta_ts>
            <desc>DRT Test Case</desc>
            <filename>TestCase.diff</filename>
            <type>text/plain</type>
            <size>1255</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJj
ZXMvZWNoby1kb20td3JpdGUtbG9jYXRpb24taHJlZi5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1kb20t
d3JpdGUtbG9jYXRpb24taHJlZi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWRvbS13cml0ZS1sb2Nh
dGlvbi1ocmVmLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PmRvY3VtZW50Lndy
aXRlKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTs8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9hbmNob3ItdXJs
LWRvbS13cml0ZS1sb2NhdGlvbi1ocmVmLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2FuY2hvci11cmwtZG9tLXdyaXRlLWxvY2F0
aW9uLWhyZWYuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9hbmNob3ItdXJsLWRvbS13cml0ZS1sb2NhdGlvbi1ocmVmLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkveHNzQXVk
aXRvci9yZXNvdXJjZXMvZWNoby1kb20td3JpdGUtbG9jYXRpb24taHJlZi5odG1sPyM8c2NyaXB0
PmFsZXJ0KCdYUyU0MVMnKTs8L3NjcmlwdD4iPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105521</attachid>
            <date>2011-08-29 14:15:15 -0700</date>
            <delta_ts>2011-08-29 14:15:34 -0700</delta_ts>
            <desc>Revised test case showing the issue.</desc>
            <filename>myexcellentpatch.txt</filename>
            <type>text/plain</type>
            <size>1958</size>
            <attacher name="Thomas Sepez">tsepez</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDk0MDE0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDgtMjkgIFRvbSBTZXBleiAgPHRzZXBl
ekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJvcGVyIHRlc3QgZm9yIGhhc2ggZnJhZ21lbnQg
ZW5jb2RpbmcuICBUaGlzIGlzIGp1c3QgdGhlIHRlc3QsCisJbm90IHRoZSBjb3JyZXNwb25kaW5n
IGZpeC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9hbmNob3ItdXJsLWRvbS13cml0ZS1sb2Nh
dGlvbjIuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVz
b3VyY2VzL2VjaG8tZG9tLXdyaXRlLXVuZXNjYXBlZC1sb2NhdGlvbi5odG1sOiBBZGRlZC4KKwog
MjAxMS0wOC0yOSAgTmF5YW4gS3VtYXIgSyAgPG5heWFua2tAbW90b3JvbGEuY29tPgogCiAgICAg
ICAgIEFzIHBlciBIVE1MIHNwZWNpZmljYXRpb24sIGRlZmF1bHQgZm9udCBzdHlsZSBvZiBkZm4g
dGFnIHNob3VsZCBiZSBpdGFsaWMuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3hzc0F1ZGl0b3IvYW5jaG9yLXVybC1kb20td3JpdGUtbG9jYXRpb24yLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2FuY2hv
ci11cmwtZG9tLXdyaXRlLWxvY2F0aW9uMi5odG1sCShyZXZpc2lvbiA5MzgzNykKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9hbmNob3ItdXJsLWRvbS13cml0
ZS1sb2NhdGlvbjIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxp
ZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNv
dXJjZXMvZWNoby1kb20td3JpdGUtbG9jYXRpb24uaHRtbD8jPHNjcmlwdD5hbGVydCgnWFMlNDFT
Jyk8L3NjcmlwdD4iPgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0
eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWRvbS13cml0ZS11bmVzY2FwZWQtbG9jYXRpb24u
aHRtbD8jPHNjcmlwdD5hbGVydCgnWFMlNDFTJyk8L3NjcmlwdD4iPgogPC9pZnJhbWU+CiA8L2Jv
ZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1
ZGl0b3IvcmVzb3VyY2VzL2VjaG8tZG9tLXdyaXRlLXVuZXNjYXBlZC1sb2NhdGlvbi5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9y
ZXNvdXJjZXMvZWNoby1kb20td3JpdGUtdW5lc2NhcGVkLWxvY2F0aW9uLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3Vy
Y2VzL2VjaG8tZG9tLXdyaXRlLXVuZXNjYXBlZC1sb2NhdGlvbi5odG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD5kb2N1bWVudC53cml0ZSh3aW5kb3cubG9jYXRpb24pOzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105806</attachid>
            <date>2011-08-31 11:52:36 -0700</date>
            <delta_ts>2011-08-31 12:22:59 -0700</delta_ts>
            <desc>Patch plus test case changes from prev attachment.</desc>
            <filename>patch_66585</filename>
            <type>text/plain</type>
            <size>7303</size>
            <attacher name="Thomas Sepez">tsepez</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0MjA5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDgtMzEgIFRvbSBTZXBl
eiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IFhTUyBmaWx0ZXIgYnlwYXNz
IGJ5IG11bHRpcGx5IGRlY29kaW5nIGJvdGggdGhlIFVSTCBhbmQgdGhlIGJvZHkKKyAgICAgICAg
c25pcHBldCB1bnRpbCB0aGV5IGFyZSBpbiB0aGUgbW9zdCBtaW5pbWFsIGZvcm0gYmVmb3JlIGNv
bXBhcmlzb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02NjU4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHRtbC9wYXJzZXIvWFNT
QXVkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmdWxseURlY29kZVN0cmluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjppbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1
ZGl0b3I6OmZpbHRlclRva2VuKToKKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmlzQ29u
dGFpbmVkSW5SZXF1ZXN0KToKKwogMjAxMS0wOC0zMCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBjaGVja2VkIGFyaXRobWV0aWMKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwCShyZXZpc2lvbiA5
NDIwMSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNs
dWRlICJUZXh0RW5jb2RpbmcuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCisK
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTExNCwxNyArMTE1LDI1IEBAIHN0YXRpYyBib29sIGNvbnRhaW5zSmF2YVNjcmlwdFVSTChjb25z
dCAKICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUuZGF0YSgpICsgaSwgamF2YVNj
cmlwdFNjaGVtZSwgbGVuZ3RoT2ZKYXZhU2NyaXB0U2NoZW1lKTsKIH0KIAotc3RhdGljIFN0cmlu
ZyBkZWNvZGVVUkwoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFRleHRFbmNvZGluZyYgZW5j
b2RpbmcpCitzdGF0aWMgU3RyaW5nIGZ1bGx5RGVjb2RlU3RyaW5nKGNvbnN0IFN0cmluZyYgc3Ry
aW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXh0UmVzb3VyY2VE
ZWNvZGVyKiBkZWNvZGVyKQogeworICAgIHNpemVfdCB3b3JraW5nTGVuOwogICAgIFN0cmluZyB3
b3JraW5nU3RyaW5nID0gc3RyaW5nOworICAgIGRvIHsKKyAgICAgICAgd29ya2luZ0xlbiA9IHdv
cmtpbmdTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgIHdvcmtpbmdTdHJpbmcgPSBkZWNvZGVVUkxF
c2NhcGVTZXF1ZW5jZXMod29ya2luZ1N0cmluZyk7CisgICAgfSB3aGlsZSAod29ya2luZ1N0cmlu
Zy5sZW5ndGgoKSA8IHdvcmtpbmdMZW4pOworICAgIGlmIChkZWNvZGVyKSB7CisgICAgICBDU3Ry
aW5nIHdvcmtpbmdTdHJpbmdVVEY4ID0gd29ya2luZ1N0cmluZy51dGY4KCk7CisgICAgICBTdHJp
bmcgZGVjb2RlZFN0cmluZyA9IGRlY29kZXItPmVuY29kaW5nKCkuZGVjb2RlKAorICAgICAgICAg
IHdvcmtpbmdTdHJpbmdVVEY4LmRhdGEoKSwgd29ya2luZ1N0cmluZ1VURjgubGVuZ3RoKCkpOwor
ICAgICAgaWYgKCFkZWNvZGVkU3RyaW5nLmlzRW1wdHkoKSkKKyAgICAgICAgd29ya2luZ1N0cmlu
ZyA9IGRlY29kZWRTdHJpbmc7CisgICAgfQogICAgIHdvcmtpbmdTdHJpbmcucmVwbGFjZSgnKycs
ICcgJyk7Ci0gICAgd29ya2luZ1N0cmluZyA9IGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyh3b3Jr
aW5nU3RyaW5nKTsKLSAgICBDU3RyaW5nIHdvcmtpbmdTdHJpbmdVVEY4ID0gd29ya2luZ1N0cmlu
Zy51dGY4KCk7Ci0gICAgU3RyaW5nIGRlY29kZWRTdHJpbmcgPSBlbmNvZGluZy5kZWNvZGUod29y
a2luZ1N0cmluZ1VURjguZGF0YSgpLCB3b3JraW5nU3RyaW5nVVRGOC5sZW5ndGgoKSk7Ci0gICAg
Ly8gRklYTUU6IElzIHRoaXMgY2hlY2sgbmVjZXNzYXJ5PwotICAgIGlmIChkZWNvZGVkU3RyaW5n
LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGNhbm9uaWNhbGl6ZSh3b3JraW5nU3RyaW5nKTsK
LSAgICByZXR1cm4gY2Fub25pY2FsaXplKGRlY29kZWRTdHJpbmcpOworICAgIHdvcmtpbmdTdHJp
bmcgPSBjYW5vbmljYWxpemUod29ya2luZ1N0cmluZyk7CisgICAgcmV0dXJuIHdvcmtpbmdTdHJp
bmc7CiB9CiAKIFhTU0F1ZGl0b3I6OlhTU0F1ZGl0b3IoSFRNTERvY3VtZW50UGFyc2VyKiBwYXJz
ZXIpCkBAIC0xNTIsNyArMTYxLDcgQEAgdm9pZCBYU1NBdWRpdG9yOjppbml0KCkKIAogICAgIGlm
ICghbV9pc0VuYWJsZWQpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIEluIHRoZW9y
eSwgdGhlIERvY3VtZW50IGNvdWxkIGhhdmUgZGV0YWNoZWQgZnJvbSB0aGUgRnJhbWUgYWZ0ZXIg
dGhlCiAgICAgLy8gWFNTQXVkaXRvciB3YXMgY29uc3RydWN0ZWQuCiAgICAgaWYgKCFtX3BhcnNl
ci0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSkgewpAQCAtMTY4LDcgKzE3Nyw3IEBAIHZvaWQgWFNTQXVk
aXRvcjo6aW5pdCgpCiAgICAgfQogCiAgICAgVGV4dFJlc291cmNlRGVjb2RlciogZGVjb2RlciA9
IG1fcGFyc2VyLT5kb2N1bWVudCgpLT5kZWNvZGVyKCk7Ci0gICAgbV9kZWNvZGVkVVJMID0gZGVj
b2RlciA/IGRlY29kZVVSTCh1cmwuc3RyaW5nKCksIGRlY29kZXItPmVuY29kaW5nKCkpIDogdXJs
LnN0cmluZygpOworICAgIG1fZGVjb2RlZFVSTCA9IGZ1bGx5RGVjb2RlU3RyaW5nKHVybC5zdHJp
bmcoKSwgZGVjb2Rlcik7CiAgICAgaWYgKG1fZGVjb2RlZFVSTC5maW5kKGlzUmVxdWlyZWRGb3JJ
bmplY3Rpb24sIDApID09IG5vdEZvdW5kKQogICAgICAgICBtX2RlY29kZWRVUkwgPSBTdHJpbmco
KTsKIApAQCAtMTc5LDcgKzE4OCw3IEBAIHZvaWQgWFNTQXVkaXRvcjo6aW5pdCgpCiAgICAgICAg
IEZvcm1EYXRhKiBodHRwQm9keSA9IGRvY3VtZW50TG9hZGVyLT5vcmlnaW5hbFJlcXVlc3QoKS5o
dHRwQm9keSgpOwogICAgICAgICBpZiAoaHR0cEJvZHkgJiYgIWh0dHBCb2R5LT5pc0VtcHR5KCkp
IHsKICAgICAgICAgICAgIFN0cmluZyBodHRwQm9keUFzU3RyaW5nID0gaHR0cEJvZHktPmZsYXR0
ZW5Ub1N0cmluZygpOwotICAgICAgICAgICAgbV9kZWNvZGVkSFRUUEJvZHkgPSBkZWNvZGVyID8g
ZGVjb2RlVVJMKGh0dHBCb2R5QXNTdHJpbmcsIGRlY29kZXItPmVuY29kaW5nKCkpIDogaHR0cEJv
ZHlBc1N0cmluZzsKKyAgICAgICAgICAgIG1fZGVjb2RlZEhUVFBCb2R5ID0gZnVsbHlEZWNvZGVT
dHJpbmcoaHR0cEJvZHlBc1N0cmluZywgZGVjb2Rlcik7CiAgICAgICAgICAgICBpZiAobV9kZWNv
ZGVkSFRUUEJvZHkuZmluZChpc1JlcXVpcmVkRm9ySW5qZWN0aW9uLCAwKSA9PSBub3RGb3VuZCkK
ICAgICAgICAgICAgICAgICBtX2RlY29kZWRIVFRQQm9keSA9IFN0cmluZygpOwogICAgICAgICAg
ICAgaWYgKG1fZGVjb2RlZEhUVFBCb2R5Lmxlbmd0aCgpID49IG1pbml1bUxlbmd0aEZvclN1ZmZp
eFRyZWUpCkBAIC0yMDcsNyArMjE2LDcgQEAgdm9pZCBYU1NBdWRpdG9yOjpmaWx0ZXJUb2tlbihI
VE1MVG9rZW4mIAogICAgIGNhc2UgVW5pbml0aWFsaXplZDoKICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5pdGlhbDogCisgICAgY2FzZSBJ
bml0aWFsOgogICAgICAgICBkaWRCbG9ja1NjcmlwdCA9IGZpbHRlclRva2VuSW5pdGlhbCh0b2tl
bik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWZ0ZXJTY3JpcHRTdGFydFRhZzoKQEAgLTQ1
NCwxMyArNDYzLDE1IEBAIFN0cmluZyBYU1NBdWRpdG9yOjpzbmlwcGV0Rm9yQXR0cmlidXRlKGMK
IGJvb2wgWFNTQXVkaXRvcjo6aXNDb250YWluZWRJblJlcXVlc3QoY29uc3QgU3RyaW5nJiBzbmlw
cGV0KQogewogICAgIEFTU0VSVCghc25pcHBldC5pc0VtcHR5KCkpOwotICAgIFN0cmluZyBjYW5v
bmljYWxpemVkU25pcHBldCA9IGNhbm9uaWNhbGl6ZShzbmlwcGV0KTsKLSAgICBBU1NFUlQoIWNh
bm9uaWNhbGl6ZWRTbmlwcGV0LmlzRW1wdHkoKSk7Ci0gICAgaWYgKG1fZGVjb2RlZFVSTC5maW5k
KGNhbm9uaWNhbGl6ZWRTbmlwcGV0LCAwLCBmYWxzZSkgIT0gbm90Rm91bmQpCisgICAgVGV4dFJl
c291cmNlRGVjb2RlciogZGVjb2RlciA9IG1fcGFyc2VyLT5kb2N1bWVudCgpLT5kZWNvZGVyKCk7
CisgICAgU3RyaW5nIGRlY29kZWRTbmlwcGV0ID0gZnVsbHlEZWNvZGVTdHJpbmcoc25pcHBldCwg
ZGVjb2Rlcik7CisgICAgaWYgKGRlY29kZWRTbmlwcGV0LmlzRW1wdHkoKSkKKyAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBpZiAobV9kZWNvZGVkVVJMLmZpbmQoZGVjb2RlZFNuaXBwZXQsIDAsIGZh
bHNlKSAhPSBub3RGb3VuZCkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1fZGVjb2Rl
ZEhUVFBCb2R5U3VmZml4VHJlZSAmJiAhbV9kZWNvZGVkSFRUUEJvZHlTdWZmaXhUcmVlLT5taWdo
dENvbnRhaW4oY2Fub25pY2FsaXplZFNuaXBwZXQpKQorICAgIGlmIChtX2RlY29kZWRIVFRQQm9k
eVN1ZmZpeFRyZWUgJiYgIW1fZGVjb2RlZEhUVFBCb2R5U3VmZml4VHJlZS0+bWlnaHRDb250YWlu
KGRlY29kZWRTbmlwcGV0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBtX2Rl
Y29kZWRIVFRQQm9keS5maW5kKGNhbm9uaWNhbGl6ZWRTbmlwcGV0LCAwLCBmYWxzZSkgIT0gbm90
Rm91bmQ7CisgICAgcmV0dXJuIG1fZGVjb2RlZEhUVFBCb2R5LmZpbmQoZGVjb2RlZFNuaXBwZXQs
IDAsIGZhbHNlKSAhPSBub3RGb3VuZDsKIH0KIAogYm9vbCBYU1NBdWRpdG9yOjppc1NhbWVPcmln
aW5SZXNvdXJjZShjb25zdCBTdHJpbmcmIHVybCkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0MjA5KQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMDgtMzEgIFRvbSBTZXBleiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
Rml4IFhTUyBmaWx0ZXIgYnlwYXNzIGJ5IG11bHRpcGx5IGRlY29kaW5nIGJvdGggdGhlIFVSTCBh
bmQgdGhlIGJvZHkKKyAgICAgICAgc25pcHBldCB1bnRpbCB0aGV5IGFyZSBpbiB0aGUgbW9zdCBt
aW5pbWFsIGZvcm0gYmVmb3JlIGNvbXBhcmlzb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Fu
Y2hvci11cmwtZG9tLXdyaXRlLWxvY2F0aW9uMi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1kb20td3JpdGUtdW5lc2NhcGVkLWxv
Y2F0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDExLTA4LTMxICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFw
cGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjczMDAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9hbmNob3ItdXJsLWRvbS13cml0ZS1sb2NhdGlvbjIuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYW5jaG9yLXVybC1kb20td3Jp
dGUtbG9jYXRpb24yLmh0bWwJKHJldmlzaW9uIDk0MjAxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2FuY2hvci11cmwtZG9tLXdyaXRlLWxvY2F0aW9uMi5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC05LDcgKzksNyBAQCBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPGlmcmFtZSBzcmM9Imh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWRv
bS13cml0ZS1sb2NhdGlvbi5odG1sPyM8c2NyaXB0PmFsZXJ0KCdYUyU0MVMnKTwvc2NyaXB0PiI+
Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
cmVzb3VyY2VzL2VjaG8tZG9tLXdyaXRlLXVuZXNjYXBlZC1sb2NhdGlvbi5odG1sPyM8c2NyaXB0
PmFsZXJ0KCdYUyU0MVMnKTwvc2NyaXB0PiI+CiA8L2lmcmFtZT4KIDwvYm9keT4KIDwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJj
ZXMvZWNoby1kb20td3JpdGUtdW5lc2NhcGVkLWxvY2F0aW9uLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hv
LWRvbS13cml0ZS11bmVzY2FwZWQtbG9jYXRpb24uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1kb20t
d3JpdGUtdW5lc2NhcGVkLWxvY2F0aW9uLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0PmRvY3VtZW50LndyaXRlKHdpbmRvdy5sb2NhdGlvbik7PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>
<flag name="review"
          id="102059"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105811</attachid>
            <date>2011-08-31 12:22:59 -0700</date>
            <delta_ts>2011-08-31 12:33:07 -0700</delta_ts>
            <desc>Patch from prev attachment with corrected indent style.</desc>
            <filename>bug_66585</filename>
            <type>text/plain</type>
            <size>7240</size>
            <attacher name="Thomas Sepez">tsepez</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0MjA5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDgtMzEgIFRvbSBTZXBl
eiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IFhTUyBmaWx0ZXIgYnlwYXNz
IGJ5IG11bHRpcGx5IGRlY29kaW5nIGJvdGggdGhlIFVSTCBhbmQgdGhlIGJvZHkKKyAgICAgICAg
c25pcHBldCB1bnRpbCB0aGV5IGFyZSBpbiB0aGUgbW9zdCBtaW5pbWFsIGZvcm0gYmVmb3JlIGNv
bXBhcmlzb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02NjU4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmdWxseURl
Y29kZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjppbml0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmZpbHRlclRva2VuKToKKyAgICAgICAgKFdlYkNvcmU6
OlhTU0F1ZGl0b3I6OmlzQ29udGFpbmVkSW5SZXF1ZXN0KToKKwogMjAxMS0wOC0zMCAgT2xpdmVy
IEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBjaGVj
a2VkIGFyaXRobWV0aWMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0
b3IuY3BwCShyZXZpc2lvbiA5NDIwMSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hT
U0F1ZGl0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKICNpbmNsdWRlICJUZXh0UmVz
b3VyY2VEZWNvZGVyLmgiCisKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTExNCwxNyArMTE1LDIzIEBAIHN0YXRpYyBib29sIGNvbnRhaW5z
SmF2YVNjcmlwdFVSTChjb25zdCAKICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUu
ZGF0YSgpICsgaSwgamF2YVNjcmlwdFNjaGVtZSwgbGVuZ3RoT2ZKYXZhU2NyaXB0U2NoZW1lKTsK
IH0KIAotc3RhdGljIFN0cmluZyBkZWNvZGVVUkwoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0
IFRleHRFbmNvZGluZyYgZW5jb2RpbmcpCitzdGF0aWMgU3RyaW5nIGZ1bGx5RGVjb2RlU3RyaW5n
KGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBUZXh0UmVzb3VyY2VEZWNvZGVyKiBkZWNvZGVy
KQogeworICAgIHNpemVfdCB3b3JraW5nTGVuZ3RoOwogICAgIFN0cmluZyB3b3JraW5nU3RyaW5n
ID0gc3RyaW5nOworICAgIGRvIHsKKyAgICAgICAgd29ya2luZ0xlbmd0aCA9IHdvcmtpbmdTdHJp
bmcubGVuZ3RoKCk7CisgICAgICAgIHdvcmtpbmdTdHJpbmcgPSBkZWNvZGVVUkxFc2NhcGVTZXF1
ZW5jZXMod29ya2luZ1N0cmluZyk7CisgICAgfSB3aGlsZSAod29ya2luZ1N0cmluZy5sZW5ndGgo
KSA8IHdvcmtpbmdMZW5ndGgpOworICAgIGlmIChkZWNvZGVyKSB7CisgICAgICAgIENTdHJpbmcg
d29ya2luZ1N0cmluZ1VURjggPSB3b3JraW5nU3RyaW5nLnV0ZjgoKTsKKyAgICAgICAgU3RyaW5n
IGRlY29kZWRTdHJpbmcgPSBkZWNvZGVyLT5lbmNvZGluZygpLmRlY29kZSh3b3JraW5nU3RyaW5n
VVRGOC5kYXRhKCksIHdvcmtpbmdTdHJpbmdVVEY4Lmxlbmd0aCgpKTsKKyAgICAgICAgaWYgKCFk
ZWNvZGVkU3RyaW5nLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHdvcmtpbmdTdHJpbmcgPSBkZWNv
ZGVkU3RyaW5nOworICAgIH0KICAgICB3b3JraW5nU3RyaW5nLnJlcGxhY2UoJysnLCAnICcpOwot
ICAgIHdvcmtpbmdTdHJpbmcgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXMod29ya2luZ1N0cmlu
Zyk7Ci0gICAgQ1N0cmluZyB3b3JraW5nU3RyaW5nVVRGOCA9IHdvcmtpbmdTdHJpbmcudXRmOCgp
OwotICAgIFN0cmluZyBkZWNvZGVkU3RyaW5nID0gZW5jb2RpbmcuZGVjb2RlKHdvcmtpbmdTdHJp
bmdVVEY4LmRhdGEoKSwgd29ya2luZ1N0cmluZ1VURjgubGVuZ3RoKCkpOwotICAgIC8vIEZJWE1F
OiBJcyB0aGlzIGNoZWNrIG5lY2Vzc2FyeT8KLSAgICBpZiAoZGVjb2RlZFN0cmluZy5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybiBjYW5vbmljYWxpemUod29ya2luZ1N0cmluZyk7Ci0gICAgcmV0
dXJuIGNhbm9uaWNhbGl6ZShkZWNvZGVkU3RyaW5nKTsKKyAgICB3b3JraW5nU3RyaW5nID0gY2Fu
b25pY2FsaXplKHdvcmtpbmdTdHJpbmcpOworICAgIHJldHVybiB3b3JraW5nU3RyaW5nOwogfQog
CiBYU1NBdWRpdG9yOjpYU1NBdWRpdG9yKEhUTUxEb2N1bWVudFBhcnNlciogcGFyc2VyKQpAQCAt
MTUyLDcgKzE1OSw3IEBAIHZvaWQgWFNTQXVkaXRvcjo6aW5pdCgpCiAKICAgICBpZiAoIW1faXNF
bmFibGVkKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBJbiB0aGVvcnksIHRoZSBE
b2N1bWVudCBjb3VsZCBoYXZlIGRldGFjaGVkIGZyb20gdGhlIEZyYW1lIGFmdGVyIHRoZQogICAg
IC8vIFhTU0F1ZGl0b3Igd2FzIGNvbnN0cnVjdGVkLgogICAgIGlmICghbV9wYXJzZXItPmRvY3Vt
ZW50KCktPmZyYW1lKCkpIHsKQEAgLTE2OCw3ICsxNzUsNyBAQCB2b2lkIFhTU0F1ZGl0b3I6Omlu
aXQoKQogICAgIH0KIAogICAgIFRleHRSZXNvdXJjZURlY29kZXIqIGRlY29kZXIgPSBtX3BhcnNl
ci0+ZG9jdW1lbnQoKS0+ZGVjb2RlcigpOwotICAgIG1fZGVjb2RlZFVSTCA9IGRlY29kZXIgPyBk
ZWNvZGVVUkwodXJsLnN0cmluZygpLCBkZWNvZGVyLT5lbmNvZGluZygpKSA6IHVybC5zdHJpbmco
KTsKKyAgICBtX2RlY29kZWRVUkwgPSBmdWxseURlY29kZVN0cmluZyh1cmwuc3RyaW5nKCksIGRl
Y29kZXIpOwogICAgIGlmIChtX2RlY29kZWRVUkwuZmluZChpc1JlcXVpcmVkRm9ySW5qZWN0aW9u
LCAwKSA9PSBub3RGb3VuZCkKICAgICAgICAgbV9kZWNvZGVkVVJMID0gU3RyaW5nKCk7CiAKQEAg
LTE3OSw3ICsxODYsNyBAQCB2b2lkIFhTU0F1ZGl0b3I6OmluaXQoKQogICAgICAgICBGb3JtRGF0
YSogaHR0cEJvZHkgPSBkb2N1bWVudExvYWRlci0+b3JpZ2luYWxSZXF1ZXN0KCkuaHR0cEJvZHko
KTsKICAgICAgICAgaWYgKGh0dHBCb2R5ICYmICFodHRwQm9keS0+aXNFbXB0eSgpKSB7CiAgICAg
ICAgICAgICBTdHJpbmcgaHR0cEJvZHlBc1N0cmluZyA9IGh0dHBCb2R5LT5mbGF0dGVuVG9TdHJp
bmcoKTsKLSAgICAgICAgICAgIG1fZGVjb2RlZEhUVFBCb2R5ID0gZGVjb2RlciA/IGRlY29kZVVS
TChodHRwQm9keUFzU3RyaW5nLCBkZWNvZGVyLT5lbmNvZGluZygpKSA6IGh0dHBCb2R5QXNTdHJp
bmc7CisgICAgICAgICAgICBtX2RlY29kZWRIVFRQQm9keSA9IGZ1bGx5RGVjb2RlU3RyaW5nKGh0
dHBCb2R5QXNTdHJpbmcsIGRlY29kZXIpOwogICAgICAgICAgICAgaWYgKG1fZGVjb2RlZEhUVFBC
b2R5LmZpbmQoaXNSZXF1aXJlZEZvckluamVjdGlvbiwgMCkgPT0gbm90Rm91bmQpCiAgICAgICAg
ICAgICAgICAgbV9kZWNvZGVkSFRUUEJvZHkgPSBTdHJpbmcoKTsKICAgICAgICAgICAgIGlmICht
X2RlY29kZWRIVFRQQm9keS5sZW5ndGgoKSA+PSBtaW5pdW1MZW5ndGhGb3JTdWZmaXhUcmVlKQpA
QCAtMjA3LDcgKzIxNCw3IEBAIHZvaWQgWFNTQXVkaXRvcjo6ZmlsdGVyVG9rZW4oSFRNTFRva2Vu
JiAKICAgICBjYXNlIFVuaW5pdGlhbGl6ZWQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEluaXRpYWw6IAorICAgIGNhc2UgSW5pdGlhbDoK
ICAgICAgICAgZGlkQmxvY2tTY3JpcHQgPSBmaWx0ZXJUb2tlbkluaXRpYWwodG9rZW4pOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEFmdGVyU2NyaXB0U3RhcnRUYWc6CkBAIC00NTQsMTMgKzQ2
MSwxNSBAQCBTdHJpbmcgWFNTQXVkaXRvcjo6c25pcHBldEZvckF0dHJpYnV0ZShjCiBib29sIFhT
U0F1ZGl0b3I6OmlzQ29udGFpbmVkSW5SZXF1ZXN0KGNvbnN0IFN0cmluZyYgc25pcHBldCkKIHsK
ICAgICBBU1NFUlQoIXNuaXBwZXQuaXNFbXB0eSgpKTsKLSAgICBTdHJpbmcgY2Fub25pY2FsaXpl
ZFNuaXBwZXQgPSBjYW5vbmljYWxpemUoc25pcHBldCk7Ci0gICAgQVNTRVJUKCFjYW5vbmljYWxp
emVkU25pcHBldC5pc0VtcHR5KCkpOwotICAgIGlmIChtX2RlY29kZWRVUkwuZmluZChjYW5vbmlj
YWxpemVkU25pcHBldCwgMCwgZmFsc2UpICE9IG5vdEZvdW5kKQorICAgIFRleHRSZXNvdXJjZURl
Y29kZXIqIGRlY29kZXIgPSBtX3BhcnNlci0+ZG9jdW1lbnQoKS0+ZGVjb2RlcigpOworICAgIFN0
cmluZyBkZWNvZGVkU25pcHBldCA9IGZ1bGx5RGVjb2RlU3RyaW5nKHNuaXBwZXQsIGRlY29kZXIp
OworICAgIGlmIChkZWNvZGVkU25pcHBldC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBpZiAobV9kZWNvZGVkVVJMLmZpbmQoZGVjb2RlZFNuaXBwZXQsIDAsIGZhbHNlKSAh
PSBub3RGb3VuZCkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1fZGVjb2RlZEhUVFBC
b2R5U3VmZml4VHJlZSAmJiAhbV9kZWNvZGVkSFRUUEJvZHlTdWZmaXhUcmVlLT5taWdodENvbnRh
aW4oY2Fub25pY2FsaXplZFNuaXBwZXQpKQorICAgIGlmIChtX2RlY29kZWRIVFRQQm9keVN1ZmZp
eFRyZWUgJiYgIW1fZGVjb2RlZEhUVFBCb2R5U3VmZml4VHJlZS0+bWlnaHRDb250YWluKGRlY29k
ZWRTbmlwcGV0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBtX2RlY29kZWRI
VFRQQm9keS5maW5kKGNhbm9uaWNhbGl6ZWRTbmlwcGV0LCAwLCBmYWxzZSkgIT0gbm90Rm91bmQ7
CisgICAgcmV0dXJuIG1fZGVjb2RlZEhUVFBCb2R5LmZpbmQoZGVjb2RlZFNuaXBwZXQsIDAsIGZh
bHNlKSAhPSBub3RGb3VuZDsKIH0KIAogYm9vbCBYU1NBdWRpdG9yOjppc1NhbWVPcmlnaW5SZXNv
dXJjZShjb25zdCBTdHJpbmcmIHVybCkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0MjA5KQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEt
MDgtMzEgIFRvbSBTZXBleiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IFhT
UyBmaWx0ZXIgYnlwYXNzIGJ5IG11bHRpcGx5IGRlY29kaW5nIGJvdGggdGhlIFVSTCBhbmQgdGhl
IGJvZHkKKyAgICAgICAgc25pcHBldCB1bnRpbCB0aGV5IGFyZSBpbiB0aGUgbW9zdCBtaW5pbWFs
IGZvcm0gYmVmb3JlIGNvbXBhcmlzb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NjU4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2FuY2hvci11
cmwtZG9tLXdyaXRlLWxvY2F0aW9uMi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1kb20td3JpdGUtdW5lc2NhcGVkLWxvY2F0aW9u
Lmh0bWw6IEFkZGVkLgorCiAyMDExLTA4LTMxICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNv
bT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njcz
MDAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9hbmNo
b3ItdXJsLWRvbS13cml0ZS1sb2NhdGlvbjIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYW5jaG9yLXVybC1kb20td3JpdGUtbG9j
YXRpb24yLmh0bWwJKHJldmlzaW9uIDk0MjAxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL2FuY2hvci11cmwtZG9tLXdyaXRlLWxvY2F0aW9uMi5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC05LDcgKzksNyBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPGlmcmFtZSBzcmM9Imh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWRvbS13cml0
ZS1sb2NhdGlvbi5odG1sPyM8c2NyaXB0PmFsZXJ0KCdYUyU0MVMnKTwvc2NyaXB0PiI+Cis8aWZy
YW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3Vy
Y2VzL2VjaG8tZG9tLXdyaXRlLXVuZXNjYXBlZC1sb2NhdGlvbi5odG1sPyM8c2NyaXB0PmFsZXJ0
KCdYUyU0MVMnKTwvc2NyaXB0PiI+CiA8L2lmcmFtZT4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNo
by1kb20td3JpdGUtdW5lc2NhcGVkLWxvY2F0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWRvbS13
cml0ZS11bmVzY2FwZWQtbG9jYXRpb24uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1kb20td3JpdGUt
dW5lc2NhcGVkLWxvY2F0aW9uLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PmRv
Y3VtZW50LndyaXRlKHdpbmRvdy5sb2NhdGlvbik7PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>
<flag name="review"
          id="102065"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105814</attachid>
            <date>2011-08-31 12:33:07 -0700</date>
            <delta_ts>2011-08-31 13:51:19 -0700</delta_ts>
            <desc>Prev patch plus renamed length variable.</desc>
            <filename>patch_66585</filename>
            <type>text/plain</type>
            <size>7267</size>
            <attacher name="Thomas Sepez">tsepez</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0MjA5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDgtMzEgIFRvbSBTZXBl
eiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IFhTUyBmaWx0ZXIgYnlwYXNz
IGJ5IG11bHRpcGx5IGRlY29kaW5nIGJvdGggdGhlIFVSTCBhbmQgdGhlIGJvZHkKKyAgICAgICAg
c25pcHBldCB1bnRpbCB0aGV5IGFyZSBpbiB0aGUgbW9zdCBtaW5pbWFsIGZvcm0gYmVmb3JlIGNv
bXBhcmlzb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02NjU4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmdWxseURl
Y29kZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjppbml0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmZpbHRlclRva2VuKToKKyAgICAgICAgKFdlYkNvcmU6
OlhTU0F1ZGl0b3I6OmlzQ29udGFpbmVkSW5SZXF1ZXN0KToKKwogMjAxMS0wOC0zMCAgT2xpdmVy
IEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBjaGVj
a2VkIGFyaXRobWV0aWMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0
b3IuY3BwCShyZXZpc2lvbiA5NDIwMSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hT
U0F1ZGl0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKICNpbmNsdWRlICJUZXh0UmVz
b3VyY2VEZWNvZGVyLmgiCisKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTExNCwxNyArMTE1LDIzIEBAIHN0YXRpYyBib29sIGNvbnRhaW5z
SmF2YVNjcmlwdFVSTChjb25zdCAKICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUu
ZGF0YSgpICsgaSwgamF2YVNjcmlwdFNjaGVtZSwgbGVuZ3RoT2ZKYXZhU2NyaXB0U2NoZW1lKTsK
IH0KIAotc3RhdGljIFN0cmluZyBkZWNvZGVVUkwoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0
IFRleHRFbmNvZGluZyYgZW5jb2RpbmcpCitzdGF0aWMgU3RyaW5nIGZ1bGx5RGVjb2RlU3RyaW5n
KGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBUZXh0UmVzb3VyY2VEZWNvZGVyKiBkZWNvZGVy
KQogeworICAgIHNpemVfdCBvbGRXb3JraW5nU3RyaW5nTGVuZ3RoOwogICAgIFN0cmluZyB3b3Jr
aW5nU3RyaW5nID0gc3RyaW5nOworICAgIGRvIHsKKyAgICAgICAgb2xkV29ya2luZ1N0cmluZ0xl
bmd0aCA9IHdvcmtpbmdTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgIHdvcmtpbmdTdHJpbmcgPSBk
ZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXMod29ya2luZ1N0cmluZyk7CisgICAgfSB3aGlsZSAod29y
a2luZ1N0cmluZy5sZW5ndGgoKSA8IG9sZFdvcmtpbmdTdHJpbmdMZW5ndGgpOworICAgIGlmIChk
ZWNvZGVyKSB7CisgICAgICAgIENTdHJpbmcgd29ya2luZ1N0cmluZ1VURjggPSB3b3JraW5nU3Ry
aW5nLnV0ZjgoKTsKKyAgICAgICAgU3RyaW5nIGRlY29kZWRTdHJpbmcgPSBkZWNvZGVyLT5lbmNv
ZGluZygpLmRlY29kZSh3b3JraW5nU3RyaW5nVVRGOC5kYXRhKCksIHdvcmtpbmdTdHJpbmdVVEY4
Lmxlbmd0aCgpKTsKKyAgICAgICAgaWYgKCFkZWNvZGVkU3RyaW5nLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIHdvcmtpbmdTdHJpbmcgPSBkZWNvZGVkU3RyaW5nOworICAgIH0KICAgICB3b3JraW5n
U3RyaW5nLnJlcGxhY2UoJysnLCAnICcpOwotICAgIHdvcmtpbmdTdHJpbmcgPSBkZWNvZGVVUkxF
c2NhcGVTZXF1ZW5jZXMod29ya2luZ1N0cmluZyk7Ci0gICAgQ1N0cmluZyB3b3JraW5nU3RyaW5n
VVRGOCA9IHdvcmtpbmdTdHJpbmcudXRmOCgpOwotICAgIFN0cmluZyBkZWNvZGVkU3RyaW5nID0g
ZW5jb2RpbmcuZGVjb2RlKHdvcmtpbmdTdHJpbmdVVEY4LmRhdGEoKSwgd29ya2luZ1N0cmluZ1VU
RjgubGVuZ3RoKCkpOwotICAgIC8vIEZJWE1FOiBJcyB0aGlzIGNoZWNrIG5lY2Vzc2FyeT8KLSAg
ICBpZiAoZGVjb2RlZFN0cmluZy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBjYW5vbmljYWxp
emUod29ya2luZ1N0cmluZyk7Ci0gICAgcmV0dXJuIGNhbm9uaWNhbGl6ZShkZWNvZGVkU3RyaW5n
KTsKKyAgICB3b3JraW5nU3RyaW5nID0gY2Fub25pY2FsaXplKHdvcmtpbmdTdHJpbmcpOworICAg
IHJldHVybiB3b3JraW5nU3RyaW5nOwogfQogCiBYU1NBdWRpdG9yOjpYU1NBdWRpdG9yKEhUTUxE
b2N1bWVudFBhcnNlciogcGFyc2VyKQpAQCAtMTUyLDcgKzE1OSw3IEBAIHZvaWQgWFNTQXVkaXRv
cjo6aW5pdCgpCiAKICAgICBpZiAoIW1faXNFbmFibGVkKQogICAgICAgICByZXR1cm47Ci0gICAg
CisKICAgICAvLyBJbiB0aGVvcnksIHRoZSBEb2N1bWVudCBjb3VsZCBoYXZlIGRldGFjaGVkIGZy
b20gdGhlIEZyYW1lIGFmdGVyIHRoZQogICAgIC8vIFhTU0F1ZGl0b3Igd2FzIGNvbnN0cnVjdGVk
LgogICAgIGlmICghbV9wYXJzZXItPmRvY3VtZW50KCktPmZyYW1lKCkpIHsKQEAgLTE2OCw3ICsx
NzUsNyBAQCB2b2lkIFhTU0F1ZGl0b3I6OmluaXQoKQogICAgIH0KIAogICAgIFRleHRSZXNvdXJj
ZURlY29kZXIqIGRlY29kZXIgPSBtX3BhcnNlci0+ZG9jdW1lbnQoKS0+ZGVjb2RlcigpOwotICAg
IG1fZGVjb2RlZFVSTCA9IGRlY29kZXIgPyBkZWNvZGVVUkwodXJsLnN0cmluZygpLCBkZWNvZGVy
LT5lbmNvZGluZygpKSA6IHVybC5zdHJpbmcoKTsKKyAgICBtX2RlY29kZWRVUkwgPSBmdWxseURl
Y29kZVN0cmluZyh1cmwuc3RyaW5nKCksIGRlY29kZXIpOwogICAgIGlmIChtX2RlY29kZWRVUkwu
ZmluZChpc1JlcXVpcmVkRm9ySW5qZWN0aW9uLCAwKSA9PSBub3RGb3VuZCkKICAgICAgICAgbV9k
ZWNvZGVkVVJMID0gU3RyaW5nKCk7CiAKQEAgLTE3OSw3ICsxODYsNyBAQCB2b2lkIFhTU0F1ZGl0
b3I6OmluaXQoKQogICAgICAgICBGb3JtRGF0YSogaHR0cEJvZHkgPSBkb2N1bWVudExvYWRlci0+
b3JpZ2luYWxSZXF1ZXN0KCkuaHR0cEJvZHkoKTsKICAgICAgICAgaWYgKGh0dHBCb2R5ICYmICFo
dHRwQm9keS0+aXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBTdHJpbmcgaHR0cEJvZHlBc1N0cmlu
ZyA9IGh0dHBCb2R5LT5mbGF0dGVuVG9TdHJpbmcoKTsKLSAgICAgICAgICAgIG1fZGVjb2RlZEhU
VFBCb2R5ID0gZGVjb2RlciA/IGRlY29kZVVSTChodHRwQm9keUFzU3RyaW5nLCBkZWNvZGVyLT5l
bmNvZGluZygpKSA6IGh0dHBCb2R5QXNTdHJpbmc7CisgICAgICAgICAgICBtX2RlY29kZWRIVFRQ
Qm9keSA9IGZ1bGx5RGVjb2RlU3RyaW5nKGh0dHBCb2R5QXNTdHJpbmcsIGRlY29kZXIpOwogICAg
ICAgICAgICAgaWYgKG1fZGVjb2RlZEhUVFBCb2R5LmZpbmQoaXNSZXF1aXJlZEZvckluamVjdGlv
biwgMCkgPT0gbm90Rm91bmQpCiAgICAgICAgICAgICAgICAgbV9kZWNvZGVkSFRUUEJvZHkgPSBT
dHJpbmcoKTsKICAgICAgICAgICAgIGlmIChtX2RlY29kZWRIVFRQQm9keS5sZW5ndGgoKSA+PSBt
aW5pdW1MZW5ndGhGb3JTdWZmaXhUcmVlKQpAQCAtMjA3LDcgKzIxNCw3IEBAIHZvaWQgWFNTQXVk
aXRvcjo6ZmlsdGVyVG9rZW4oSFRNTFRva2VuJiAKICAgICBjYXNlIFVuaW5pdGlhbGl6ZWQ6CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIElu
aXRpYWw6IAorICAgIGNhc2UgSW5pdGlhbDoKICAgICAgICAgZGlkQmxvY2tTY3JpcHQgPSBmaWx0
ZXJUb2tlbkluaXRpYWwodG9rZW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFmdGVyU2Ny
aXB0U3RhcnRUYWc6CkBAIC00NTQsMTMgKzQ2MSwxNSBAQCBTdHJpbmcgWFNTQXVkaXRvcjo6c25p
cHBldEZvckF0dHJpYnV0ZShjCiBib29sIFhTU0F1ZGl0b3I6OmlzQ29udGFpbmVkSW5SZXF1ZXN0
KGNvbnN0IFN0cmluZyYgc25pcHBldCkKIHsKICAgICBBU1NFUlQoIXNuaXBwZXQuaXNFbXB0eSgp
KTsKLSAgICBTdHJpbmcgY2Fub25pY2FsaXplZFNuaXBwZXQgPSBjYW5vbmljYWxpemUoc25pcHBl
dCk7Ci0gICAgQVNTRVJUKCFjYW5vbmljYWxpemVkU25pcHBldC5pc0VtcHR5KCkpOwotICAgIGlm
IChtX2RlY29kZWRVUkwuZmluZChjYW5vbmljYWxpemVkU25pcHBldCwgMCwgZmFsc2UpICE9IG5v
dEZvdW5kKQorICAgIFRleHRSZXNvdXJjZURlY29kZXIqIGRlY29kZXIgPSBtX3BhcnNlci0+ZG9j
dW1lbnQoKS0+ZGVjb2RlcigpOworICAgIFN0cmluZyBkZWNvZGVkU25pcHBldCA9IGZ1bGx5RGVj
b2RlU3RyaW5nKHNuaXBwZXQsIGRlY29kZXIpOworICAgIGlmIChkZWNvZGVkU25pcHBldC5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAobV9kZWNvZGVkVVJMLmZpbmQo
ZGVjb2RlZFNuaXBwZXQsIDAsIGZhbHNlKSAhPSBub3RGb3VuZCkKICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgaWYgKG1fZGVjb2RlZEhUVFBCb2R5U3VmZml4VHJlZSAmJiAhbV9kZWNvZGVkSFRU
UEJvZHlTdWZmaXhUcmVlLT5taWdodENvbnRhaW4oY2Fub25pY2FsaXplZFNuaXBwZXQpKQorICAg
IGlmIChtX2RlY29kZWRIVFRQQm9keVN1ZmZpeFRyZWUgJiYgIW1fZGVjb2RlZEhUVFBCb2R5U3Vm
Zml4VHJlZS0+bWlnaHRDb250YWluKGRlY29kZWRTbmlwcGV0KSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIHJldHVybiBtX2RlY29kZWRIVFRQQm9keS5maW5kKGNhbm9uaWNhbGl6ZWRTbmlw
cGV0LCAwLCBmYWxzZSkgIT0gbm90Rm91bmQ7CisgICAgcmV0dXJuIG1fZGVjb2RlZEhUVFBCb2R5
LmZpbmQoZGVjb2RlZFNuaXBwZXQsIDAsIGZhbHNlKSAhPSBub3RGb3VuZDsKIH0KIAogYm9vbCBY
U1NBdWRpdG9yOjppc1NhbWVPcmlnaW5SZXNvdXJjZShjb25zdCBTdHJpbmcmIHVybCkKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDk0MjA5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDgtMzEgIFRvbSBTZXBleiAgPHRzZXBlekBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgRml4IFhTUyBmaWx0ZXIgYnlwYXNzIGJ5IG11bHRpcGx5IGRl
Y29kaW5nIGJvdGggdGhlIFVSTCBhbmQgdGhlIGJvZHkKKyAgICAgICAgc25pcHBldCB1bnRpbCB0
aGV5IGFyZSBpbiB0aGUgbW9zdCBtaW5pbWFsIGZvcm0gYmVmb3JlIGNvbXBhcmlzb24uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjU4NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL2FuY2hvci11cmwtZG9tLXdyaXRlLWxvY2F0aW9uMi5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1k
b20td3JpdGUtdW5lc2NhcGVkLWxvY2F0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDExLTA4LTMxICBE
YXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjczMDAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9hbmNob3ItdXJsLWRvbS13cml0ZS1sb2NhdGlvbjIuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0
b3IvYW5jaG9yLXVybC1kb20td3JpdGUtbG9jYXRpb24yLmh0bWwJKHJldmlzaW9uIDk0MjAxKQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2FuY2hvci11cmwt
ZG9tLXdyaXRlLWxvY2F0aW9uMi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05LDcgKzksNyBAQCBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxi
b2R5PgotPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRp
dG9yL3Jlc291cmNlcy9lY2hvLWRvbS13cml0ZS1sb2NhdGlvbi5odG1sPyM8c2NyaXB0PmFsZXJ0
KCdYUyU0MVMnKTwvc2NyaXB0PiI+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAw
L3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8tZG9tLXdyaXRlLXVuZXNjYXBlZC1s
b2NhdGlvbi5odG1sPyM8c2NyaXB0PmFsZXJ0KCdYUyU0MVMnKTwvc2NyaXB0PiI+CiA8L2lmcmFt
ZT4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1kb20td3JpdGUtdW5lc2NhcGVkLWxvY2F0aW9u
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL3Jlc291cmNlcy9lY2hvLWRvbS13cml0ZS11bmVzY2FwZWQtbG9jYXRpb24uaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9yZXNvdXJjZXMvZWNoby1kb20td3JpdGUtdW5lc2NhcGVkLWxvY2F0aW9uLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PmRvY3VtZW50LndyaXRlKHdpbmRvdy5sb2NhdGlvbik7
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>