<?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>53850</bug_id>
          
          <creation_ts>2011-02-05 04:18:08 -0800</creation_ts>
          <short_desc>Make WebKit&apos;s fragment canonicalization match other browsers</short_desc>
          <delta_ts>2011-02-09 03:53:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>346126</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-05 04:18:08 -0800</bug_when>
    <thetext>Make WebKit&apos;s fragment cannonicalization match other browsers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346127</commentid>
    <comment_count>1</comment_count>
      <attachid>81357</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-05 04:44:55 -0800</bug_when>
    <thetext>Created attachment 81357
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346128</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-05 04:46:06 -0800</bug_when>
    <thetext>I&apos;m not 100% convinced that Chrome&apos;s results (which we now match) are the best here.  I explained things mostly in teh ChangeLOg.

https://github.com/abarth/url-spec/blob/master/tests/gurl-results/by-browser.txt

unfortunately has kinda old data and doesn&apos;t cover all of these tests for all browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346159</commentid>
    <comment_count>3</comment_count>
      <attachid>81357</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-05 10:24:43 -0800</bug_when>
    <thetext>Comment on attachment 81357
Patch

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

Some nits below.  w.r.t. diverging from Firefox.  I discussed this topic (in general) with some Firefox folks.  They said they&apos;re willing to converge to match other browsers URL handling as long as we write a spec for how we think things ought to be.  If we follow this trajectory, everyone should end up with interoperable behavior.

&gt; Source/WebCore/platform/KURL.cpp:997
&gt; +        if (c == &apos;\0&apos;)
&gt; +            continue;

This part isn&apos;t correct.  It&apos;s an artifact of how Brett did his testing in IE (which strips nulls at the HTML parser layer).  It&apos;s hard to observe directly, but we should be able to observe via the DOM (not via the HTML parser).

&gt; Source/WebCore/platform/KURL.cpp:1001
&gt; +            *p++ = &apos;%&apos;;
&gt; +            *p++ = hexDigits[c &gt;&gt; 4];
&gt; +            *p++ = hexDigits[c &amp; 0xF];

We should add an inline helper function to do this work instead of copy/pasting it.  Really what we should do is a templated free function that takes a predicate for what to escape, if you want to get fancy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346351</commentid>
    <comment_count>4</comment_count>
      <attachid>81418</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-06 11:33:04 -0800</bug_when>
    <thetext>Created attachment 81418
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346354</commentid>
    <comment_count>5</comment_count>
      <attachid>81418</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-06 11:37:05 -0800</bug_when>
    <thetext>Comment on attachment 81418
updated patch

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

&gt; Source/WebCore/platform/KURL.cpp:1012
&gt; +        // FIXME: We should be decoding any non-ascii characters (above 0x80),
&gt; +        // however at this point we don&apos;t have the full UChar anymore, just a char.

This FIXME isn&apos;t correct.  The decoding has already happened at this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346488</commentid>
    <comment_count>6</comment_count>
      <attachid>81452</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-06 23:40:08 -0800</bug_when>
    <thetext>Created attachment 81452
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346522</commentid>
    <comment_count>7</comment_count>
      <attachid>81452</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-07 02:55:21 -0800</bug_when>
    <thetext>Comment on attachment 81452
Patch for landing

Rejecting attachment 81452 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-3&apos;, &apos;build-...&quot; exit_code: 2

Last 500 characters of output:
..........................................................................
fast/css/content ..
fast/css/counters .......................
fast/css/getComputedStyle ........................
fast/css/namespaces ...........
fast/doctypes ............
fast/dom ..............
fast/dom/anchor-getParameter.html -&gt; failed

Exiting early after 1 failures. 6834 tests run.
145.29s total testing time

6833 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
4 test cases (&lt;1%) had stderr output

Full output: http://queues.webkit.org/results/7699951</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347217</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-08 00:48:55 -0800</bug_when>
    <thetext>The patch must be wrong.  We hit ASSERTs with this.

fast/loader/data-url-encoding-html.html is one such test which asserts.

I&apos;ll have to look at it tomrorow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347240</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-08 02:07:38 -0800</bug_when>
    <thetext>We&apos;re hitting:
static void checkEncodedString(const String&amp; url)
{
    for (unsigned i = 0; i &lt; url.length(); ++i)
        ASSERT(!(url[i] &amp; ~0x7F)); // THIS ASSERT

    ASSERT(!url.length() || isSchemeFirstChar(url[0]));
}

Which is expected since we&apos;re now allowing characters over 127 in the URL.

Instead of changing the ASSERT I think I&apos;d rather just encode everything over 127 for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347626</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-08 13:15:12 -0800</bug_when>
    <thetext>There is actually a bunch more to do here.  About 10 tests fail with this applied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347662</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-08 14:06:07 -0800</bug_when>
    <thetext>&gt; Instead of changing the ASSERT I think I&apos;d rather just encode everything over 127 for now.

Why?  We&apos;re supposed to have unicode characters over 127 in the fragment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347672</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-08 14:14:57 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; Instead of changing the ASSERT I think I&apos;d rather just encode everything over 127 for now.
&gt; 
&gt; Why?  We&apos;re supposed to have unicode characters over 127 in the fragment.

By the time this fragment handling code ever runs we have chars instead of UChars.  And checkEncodedString clearly assumes the url will only ever include ascii. :)

Still working through the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347684</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-08 14:26:20 -0800</bug_when>
    <thetext>The idea behind checkEncodedString() was to make as stringent test for the fact that the string is indeed a parsed KURL as possible, catching cases where arbitrary URLs are passed in.

But yes, KURL works with bytes here, not with UTF-16 strings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347691</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-08 14:36:13 -0800</bug_when>
    <thetext>I&apos;m not sure I understand.  By bytes, do you mean UTF-8 strings?  Canonicalized URLs can have non-ASCII characters in their fragment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347739</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-08 15:16:26 -0800</bug_when>
    <thetext>I think that we can get byte sequences that aren&apos;t UTF-8 in some KURL code paths as we decode percent escapes. I&apos;m not very clear on what goes on, but I doubt we can assume that &quot;char*&quot; is UTF-8 in KURL code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347810</commentid>
    <comment_count>16</comment_count>
      <attachid>81716</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-08 16:47:39 -0800</bug_when>
    <thetext>Created attachment 81716
a more conservative patch, not quite ready</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347870</commentid>
    <comment_count>17</comment_count>
      <attachid>81716</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-08 17:57:31 -0800</bug_when>
    <thetext>Comment on attachment 81716
a more conservative patch, not quite ready

Ok.  This is certainly a step in the right direction.  We&apos;ll need to revisit this issue at some point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347956</commentid>
    <comment_count>18</comment_count>
      <attachid>81744</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-08 21:40:16 -0800</bug_when>
    <thetext>Created attachment 81744
Ready for re-review and commit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347958</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-08 21:42:21 -0800</bug_when>
    <thetext>I believe this passes all the tests now.  However its hard to tell, since it seems SL Debug builds still crash a bunch of tests in TOT. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347979</commentid>
    <comment_count>20</comment_count>
      <attachid>81744</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-08 22:05:31 -0800</bug_when>
    <thetext>Comment on attachment 81744
Ready for re-review and commit

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

&gt; Source/WebCore/platform/KURL.cpp:1008
&gt; +        // Strip CR, LF and Tab from fragments, per:
&gt; +        // https://bugs.webkit.org/show_bug.cgi?id=8770

How does GURL handle this case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347998</commentid>
    <comment_count>21</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-08 23:05:18 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 81744 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=81744&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/KURL.cpp:1008
&gt; &gt; +        // Strip CR, LF and Tab from fragments, per:
&gt; &gt; +        // https://bugs.webkit.org/show_bug.cgi?id=8770
&gt; 
&gt; How does GURL handle this case?

I&apos;m not sure.  I did test to see that both Chrome and FF pass the test in question (which is about stripping these chars).  I&apos;m not sure how GURL does the actual stripping however.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348052</commentid>
    <comment_count>22</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-09 01:20:10 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; (From update of attachment 81744 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=81744&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/KURL.cpp:1008
&gt; &gt; &gt; +        // Strip CR, LF and Tab from fragments, per:
&gt; &gt; &gt; +        // https://bugs.webkit.org/show_bug.cgi?id=8770
&gt; &gt; 
&gt; &gt; How does GURL handle this case?
&gt; 
&gt; I&apos;m not sure.  I did test to see that both Chrome and FF pass the test in question (which is about stripping these chars).  I&apos;m not sure how GURL does the actual stripping however.

GURL documents this here:
http://www.google.com/codesearch/p?hl=en#R_oU-jn3RFk/trunk/src/url_canon_query.cc&amp;q=tab%20package:http://google-url%5C.googlecode%5C.com&amp;l=40

But I haven&apos;t found the code which actually makes that happen yet.  I&apos;m not very familiar with GURL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348053</commentid>
    <comment_count>23</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-09 01:22:31 -0800</bug_when>
    <thetext>Here is the code in question:
http://www.google.com/codesearch/p?hl=en#R_oU-jn3RFk/trunk/src/url_canon_etc.cc&amp;q=package:http://google-url%5C.googlecode%5C.com%200x20&amp;l=275</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348056</commentid>
    <comment_count>24</comment_count>
      <attachid>81744</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-09 01:26:25 -0800</bug_when>
    <thetext>Comment on attachment 81744
Ready for re-review and commit

Ok, but we should add tests for these cases to fast/url/fragment.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348069</commentid>
    <comment_count>25</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-09 01:46:25 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 81744 [details])
&gt; Ok, but we should add tests for these cases to fast/url/fragment.html

Ok.  It&apos;s already covered by fast/loader/url-strip-cr-lf-tab.html, but I&apos;m happy to add a test to fast/url/anchor.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348073</commentid>
    <comment_count>26</comment_count>
      <attachid>81774</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-09 01:57:53 -0800</bug_when>
    <thetext>Created attachment 81774
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348135</commentid>
    <comment_count>27</comment_count>
      <attachid>81774</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-09 03:53:38 -0800</bug_when>
    <thetext>Comment on attachment 81774
Patch for landing

Clearing flags on attachment: 81774

Committed r78040: &lt;http://trac.webkit.org/changeset/78040&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348136</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-09 03:53:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81357</attachid>
            <date>2011-02-05 04:44:55 -0800</date>
            <delta_ts>2011-02-06 11:33:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53850-20110205044453.patch</filename>
            <type>text/plain</type>
            <size>12373</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNGI4YTRmZmE1NzI5MTUxMmMzYTJhM2Y5NDFmMjlmNmNkMGYzMGIzLi5lODY0MDk1
ZmI4ZDIzMGZjNWM4NjU5NThlMDQwMTAzYTY3MjIxYjM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjQgQEAK
IDIwMTEtMDItMDUgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgV2ViS2l0J3MgZnJhZ21l
bnQgY2Fubm9uaWNhbGl6YXRpb24gbWF0Y2ggb3RoZXIgYnJvd3NlcnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzODUwCisKKyAgICAgICAgKiBmYXN0
L3VybC9hbmNob3ItZXhwZWN0ZWQudHh0OgorICAgICAgICAgLSAiaGVsbG8gd29ybGQiOiBPdXIg
bmV3IGJlaGF2aW9yIGhlcmUgbWF0Y2hlcyBJRSBhbmQgQ2hyb21lLCBidXQgZGl2ZXJnZXMgZnJv
bSBGRi4KKyAgICAgICAgIC0gaW52YWxpZCBjaGFyIGFmdGVyICJhIjogSUUgZHJvcHMgdGhlIGNo
YXIsIEZGIGFuZCBTYWZhcmkgZW5jb2RlIGl0LCBDaHJvbWUgbGVhdmVzIGl0LiAgTm93IHdlIG1h
dGNoIENocm9tZS4KKyAgICAgICAgIC0gVGhlIGxhc3QgdHdvIHRlc3RzIGludm9sdmluZyAjLCB3
ZSB3ZXJlIHRoZSBvZGQgbWFuIG91dC4gTm93IG1hdGNoIGFsbCBicm93c2Vycy4KKyAgICAgICAg
KiBmYXN0L3VybC9maWxlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgIC0gQWdhaW4sIGludmFsaWQg
Y2hhci4gIEJlZm9yZSB3ZSBtYXRjaGVkIEZGLCBub3cgd2UgbWF0Y2ggQ2hyb21lIGFuZCBhcmUg
Y2xvc2VyIHRvIElFLgorICAgICAgICAqIGZhc3QvdXJsL2ZpbGUtaHR0cC1iYXNlLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L3VybC9zZWdtZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICAtIERvbid0IHBlcmNlbnQgZW5jb2RlIHNwYWNlcyBpbiBmcmFnbWVudHMgKHRvIG1hdGNoIG90
aGVyIGJyb3dzZXJzKQorICAgICAgICAgLSBXZWJLaXQgd2FzIHRoZSBvbmx5IGVuZ2luZSBlbmNv
ZGluZyAjIGluIGZyYWdtZW50cy4KKyAgICAgICAgKiBmYXN0L3VybC9zZWdtZW50cy1mcm9tLWRh
dGEtdXJsLWV4cGVjdGVkLnR4dDoKKworMjAxMS0wMi0wNSAgRXJpYyBTZWlkZWwgIDxlcmljQHdl
YmtpdC5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KIAogICAgICAgICBT
YWZhcmkgc2hvdWxkIGxvd2VyY2FzZSBzY2hlbWVzIGluIGNhbm5vbmljYWxpemVkIHVybHMgdG8g
bWF0Y2ggZXZlcnkgb3RoZXIgYnJvd3NlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC91
cmwvYW5jaG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdXJsL2FuY2hvci1leHBl
Y3RlZC50eHQKaW5kZXggMTVkYzg0ZjJkYzAzYzk0OTc2ZmJiNjhhZWRjZWU5NDRiYjdjNjVhYS4u
NGU4ZDVlNmExMDRiNzJlMDZkNDhkNmVlZTlhMzk2ZjNiNjM3NmZmOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC91cmwvYW5jaG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3VybC9hbmNob3ItZXhwZWN0ZWQudHh0CkBAIC0zLDE0ICszLDE0IEBAIFRlc3QgVVJMcyB0
aGF0IGhhdmUgYW4gYW5jaG9yLgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLUZBSUwg
Y2Fub25pY2FsaXplKCdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNoZWxsbywgd29ybGQnKSBzaG91
bGQgYmUgaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jaGVsbG8sIHdvcmxkLiBXYXMgaHR0cDovL3d3
dy5leGFtcGxlLmNvbS8jaGVsbG8sJTIwd29ybGQuCi1GQUlMIGNhbm9uaWNhbGl6ZSgnaHR0cDov
L3d3dy5leGFtcGxlLmNvbS8jw4LCqScpIHNob3VsZCBiZSBodHRwOi8vd3d3LmV4YW1wbGUuY29t
LyPDgsKpLiBXYXMgaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jJUMyJUE5LgorUEFTUyBjYW5vbmlj
YWxpemUoJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vI2hlbGxvLCB3b3JsZCcpIGlzICdodHRwOi8v
d3d3LmV4YW1wbGUuY29tLyNoZWxsbywgd29ybGQnCitQQVNTIGNhbm9uaWNhbGl6ZSgnaHR0cDov
L3d3dy5leGFtcGxlLmNvbS8jw4LCqScpIGlzICdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyPDgsKp
JwogRkFJTCBjYW5vbmljYWxpemUoJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vI/CQjIBzcycpIHNo
b3VsZCBiZSBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyPwkIyAc3MuIFdhcyBodHRwOi8vd3d3LmV4
YW1wbGUuY29tLyMlMjYlMjM2NjMwNCUzQnNzLgogUEFTUyBjYW5vbmljYWxpemUoJ2h0dHA6Ly93
d3cuZXhhbXBsZS5jb20vIyU0MSVhJykgaXMgJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vIyU0MSVh
JwogRkFJTCBjYW5vbmljYWxpemUoJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vI1x1ZDgwMFx1NTk3
ZCcpIHNob3VsZCBiZSBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyPvv73lpb0uIFdhcyBodHRwOi8v
d3d3LmV4YW1wbGUuY29tLyMlMjYlMjM1NTI5NiUzQiUyNiUyMzIyOTA5JTNCLgogRkFJTCBjYW5v
bmljYWxpemUoJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vI2FcdUZERDAnKSBzaG91bGQgYmUgaHR0
cDovL3d3dy5leGFtcGxlLmNvbS8jYe+3kC4gV2FzIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vI2El
MjYlMjM2NDk3NiUzQi4KLUZBSUwgY2Fub25pY2FsaXplKCdodHRwOi8vd3d3LmV4YW1wbGUuY29t
LyNhc2RmI3F3ZXInKSBzaG91bGQgYmUgaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jYXNkZiNxd2Vy
LiBXYXMgaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jYXNkZiUyM3F3ZXIuCi1GQUlMIGNhbm9uaWNh
bGl6ZSgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jI2FzZGYnKSBzaG91bGQgYmUgaHR0cDovL3d3
dy5leGFtcGxlLmNvbS8jI2FzZGYuIFdhcyBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyMlMjNhc2Rm
LgorUEFTUyBjYW5vbmljYWxpemUoJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vI2FzZGYjcXdlcicp
IGlzICdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNhc2RmI3F3ZXInCitQQVNTIGNhbm9uaWNhbGl6
ZSgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jI2FzZGYnKSBpcyAnaHR0cDovL3d3dy5leGFtcGxl
LmNvbS8jI2FzZGYnCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdXJsL2ZpbGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC91cmwvZmlsZS1leHBlY3RlZC50eHQKaW5kZXggZDI3NDY3MzNk
NjU0NGY4OTU3ZThiMGM0M2Y4ZTYzMWI2ZDQ1MjA5MS4uNmUwZThiYWJmYmViNzQ3MzJhOGNiYzNk
NDVkNmJmNGNhNDFmMjQ3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC91cmwvZmlsZS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC91cmwvZmlsZS1leHBlY3RlZC50eHQK
QEAgLTIwLDcgKzIwLDcgQEAgUEFTUyBjYW5vbmljYWxpemUoJ2ZpbGU6Ly8vZm9vL2Jhci50eHQn
KSBpcyAnZmlsZTovLy9mb28vYmFyLnR4dCcKIEZBSUwgY2Fub25pY2FsaXplKCdGSUxFOi9cXC9c
XDc6XFxcXC8vZm9vXFxiYXIuaHRtbCcpIHNob3VsZCBiZSBmaWxlOi8vNzovLy8vZm9vL2Jhci5o
dG1sLiBXYXMgZmlsZTovLy8vNzovLy8vZm9vL2Jhci5odG1sLgogRkFJTCBjYW5vbmljYWxpemUo
J2ZpbGU6ZmlsZXIvaG9tZVxcbWUnKSBzaG91bGQgYmUgZmlsZTovL2ZpbGVyL2hvbWUvbWUuIFdh
cyBmaWxlOi8vL3RtcC9tb2NrL2ZpbGVyL2hvbWUvbWUuCiBGQUlMIGNhbm9uaWNhbGl6ZSgnZmls
ZTovLy9DOi9mb28vLi4vLi4vLi4vYmFyLmh0bWwnKSBzaG91bGQgYmUgZmlsZTovLy9DOi9iYXIu
aHRtbC4gV2FzIGZpbGU6Ly8vYmFyLmh0bWwuCi1GQUlMIGNhbm9uaWNhbGl6ZSgnZmlsZTovLy9D
Oi9hc2RmI1x4YzInKSBzaG91bGQgYmUgZmlsZTovLy9DOi9hc2RmI8Ovwr/CvS4gV2FzIGZpbGU6
Ly8vQzovYXNkZiMlQzIuCitGQUlMIGNhbm9uaWNhbGl6ZSgnZmlsZTovLy9DOi9hc2RmI1x4YzIn
KSBzaG91bGQgYmUgZmlsZTovLy9DOi9hc2RmI8Ovwr/CvS4gV2FzIGZpbGU6Ly8vQzovYXNkZiPD
gi4KIFBBU1MgY2Fub25pY2FsaXplKCdmaWxlOi8vL2hvbWUvbWUnKSBpcyAnZmlsZTovLy9ob21l
L21lJwogRkFJTCBjYW5vbmljYWxpemUoJ2ZpbGU6YzpcXGZvb1xcYmFyLmh0bWwnKSBzaG91bGQg
YmUgZmlsZTovLy9jOi9mb28vYmFyLmh0bWwuIFdhcyBmaWxlOi8vL3RtcC9tb2NrL2M6L2Zvby9i
YXIuaHRtbC4KIEZBSUwgY2Fub25pY2FsaXplKCdmaWxlOmN8Ly9mb29cXGJhci5odG1sJykgc2hv
dWxkIGJlIGZpbGU6Ly8vYyU3Qy8vZm9vL2Jhci5odG1sLiBXYXMgZmlsZTovLy90bXAvbW9jay9j
fC8vZm9vL2Jhci5odG1sLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC91cmwvZmlsZS1o
dHRwLWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC91cmwvZmlsZS1odHRwLWJh
c2UtZXhwZWN0ZWQudHh0CmluZGV4IGFmZDMxMzE2OGJkMWRmMmI2ZjlmZmI0Y2MxOWM1NmQ3NjI2
NGRhYjQuLmI2OTY1MDJlYzlmYWYyYWExY2Q5ZDZjZGViOWYyYTBiZDdiOGRmMzEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvdXJsL2ZpbGUtaHR0cC1iYXNlLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3VybC9maWxlLWh0dHAtYmFzZS1leHBlY3RlZC50eHQKQEAgLTIw
LDcgKzIwLDcgQEAgUEFTUyBjYW5vbmljYWxpemUoJ2ZpbGU6Ly8vZm9vL2Jhci50eHQnKSBpcyAn
ZmlsZTovLy9mb28vYmFyLnR4dCcKIEZBSUwgY2Fub25pY2FsaXplKCdGSUxFOi9cXC9cXDc6XFxc
XC8vZm9vXFxiYXIuaHRtbCcpIHNob3VsZCBiZSBmaWxlOi8vNzovLy8vZm9vL2Jhci5odG1sLiBX
YXMgZmlsZTovLy8vNzovLy8vZm9vL2Jhci5odG1sLgogUEFTUyBjYW5vbmljYWxpemUoJ2ZpbGU6
ZmlsZXIvaG9tZVxcbWUnKSBpcyAnZmlsZTovL2ZpbGVyL2hvbWUvbWUnCiBGQUlMIGNhbm9uaWNh
bGl6ZSgnZmlsZTovLy9DOi9mb28vLi4vLi4vLi4vYmFyLmh0bWwnKSBzaG91bGQgYmUgZmlsZTov
Ly9DOi9iYXIuaHRtbC4gV2FzIGZpbGU6Ly8vYmFyLmh0bWwuCi1GQUlMIGNhbm9uaWNhbGl6ZSgn
ZmlsZTovLy9DOi9hc2RmI1x4YzInKSBzaG91bGQgYmUgZmlsZTovLy9DOi9hc2RmI8Ovwr/CvS4g
V2FzIGZpbGU6Ly8vQzovYXNkZiMlQzIuCitGQUlMIGNhbm9uaWNhbGl6ZSgnZmlsZTovLy9DOi9h
c2RmI1x4YzInKSBzaG91bGQgYmUgZmlsZTovLy9DOi9hc2RmI8Ovwr/CvS4gV2FzIGZpbGU6Ly8v
QzovYXNkZiPDgi4KIFBBU1MgY2Fub25pY2FsaXplKCdmaWxlOi8vL2hvbWUvbWUnKSBpcyAnZmls
ZTovLy9ob21lL21lJwogRkFJTCBjYW5vbmljYWxpemUoJ2ZpbGU6YzpcXGZvb1xcYmFyLmh0bWwn
KSBzaG91bGQgYmUgZmlsZTovLy9jOi9mb28vYmFyLmh0bWwuIFdhcyBmaWxlOi8vYzovZm9vL2Jh
ci5odG1sLgogRkFJTCBjYW5vbmljYWxpemUoJ2ZpbGU6Y3wvL2Zvb1xcYmFyLmh0bWwnKSBzaG91
bGQgYmUgZmlsZTovLy9jJTdDLy9mb28vYmFyLmh0bWwuIFdhcyBmaWxlOi8vY3wvL2Zvby9iYXIu
aHRtbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdXJsL3NlZ21lbnRzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdXJsL3NlZ21lbnRzLWV4cGVjdGVkLnR4dAppbmRleCAy
ZGE2OTEyYzcyNjAxNjlkNDEzOWM3NjY2ZmRmODg1YmY0ZjJiNTJhLi5mNTNmYmIxMGU1YWMzYzY3
MTgxMmEzYjcwN2M1MDIyNGRlYjQ2NDNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Vy
bC9zZWdtZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC91cmwvc2VnbWVu
dHMtZXhwZWN0ZWQudHh0CkBAIC04LDcgKzgsNyBAQCBQQVNTIHNlZ21lbnRzKCdodHRwOmZvby5j
b20nKSBpcyAnWyJodHRwOiIsImV4YW1wbGUub3JnIiwiMCIsIi9mb28vZm9vLmNvbSIsIiIsIgog
UEFTUyBzZWdtZW50cygnXHQgICA6Zm9vLmNvbSAgIFxuJykgaXMgJ1siaHR0cDoiLCJleGFtcGxl
Lm9yZyIsIjAiLCIvZm9vLzpmb28uY29tIiwiIiwiIl0nCiBQQVNTIHNlZ21lbnRzKCcgZm9vLmNv
bSAgJykgaXMgJ1siaHR0cDoiLCJleGFtcGxlLm9yZyIsIjAiLCIvZm9vL2Zvby5jb20iLCIiLCIi
XScKIFBBU1Mgc2VnbWVudHMoJ2E6XHQgZm9vLmNvbScpIGlzICdbImE6IiwiIiwiMCIsIiBmb28u
Y29tIiwiIiwiIl0nCi1GQUlMIHNlZ21lbnRzKCdodHRwOi8vZjoyMS8gYiA/IGQgIyBlICcpIHNo
b3VsZCBiZSBbImh0dHA6IiwiZiIsIjIxIiwiLyUyMGIlMjAiLCI/JTIwZCUyMCIsIiMgZSJdLiBX
YXMgWyJodHRwOiIsImYiLCIyMSIsIi8gYiAiLCI/JTIwZCUyMCIsIiMlMjBlIl0uCitGQUlMIHNl
Z21lbnRzKCdodHRwOi8vZjoyMS8gYiA/IGQgIyBlICcpIHNob3VsZCBiZSBbImh0dHA6IiwiZiIs
IjIxIiwiLyUyMGIlMjAiLCI/JTIwZCUyMCIsIiMgZSJdLiBXYXMgWyJodHRwOiIsImYiLCIyMSIs
Ii8gYiAiLCI/JTIwZCUyMCIsIiMgZSJdLgogUEFTUyBzZWdtZW50cygnaHR0cDovL2Y6L2MnKSBp
cyAnWyJodHRwOiIsImYiLCIwIiwiL2MiLCIiLCIiXScKIFBBU1Mgc2VnbWVudHMoJ2h0dHA6Ly9m
OjAvYycpIGlzICdbImh0dHA6IiwiZiIsIjAiLCIvYyIsIiIsIiJdJwogUEFTUyBzZWdtZW50cygn
aHR0cDovL2Y6MDAwMDAwMDAwMDAwMDAvYycpIGlzICdbImh0dHA6IiwiZiIsIjAiLCIvYyIsIiIs
IiJdJwpAQCAtNTUsNyArNTUsNyBAQCBQQVNTIHNlZ21lbnRzKCdmb286Ly8vLy8vLy8vYmFyLmNv
bS8nKSBpcyAnWyJmb286IiwiIiwiMCIsIi8vLy8vLy8vL2Jhci5jb20vIiwiIgogUEFTUyBzZWdt
ZW50cygnZm9vOi8vLy86Ly8vLy8nKSBpcyAnWyJmb286IiwiIiwiMCIsIi8vLy86Ly8vLy8iLCIi
LCIiXScKIFBBU1Mgc2VnbWVudHMoJ2M6L2ZvbycpIGlzICdbImM6IiwiIiwiMCIsIi9mb28iLCIi
LCIiXScKIFBBU1Mgc2VnbWVudHMoJy8vZm9vL2JhcicpIGlzICdbImh0dHA6IiwiZm9vIiwiMCIs
Ii9iYXIiLCIiLCIiXScKLUZBSUwgc2VnbWVudHMoJ2h0dHA6Ly9mb28vcGF0aDthPz9lI2YjZycp
IHNob3VsZCBiZSBbImh0dHA6IiwiZm9vIiwiMCIsIi9wYXRoO2EiLCI/P2UiLCIjZiNnIl0uIFdh
cyBbImh0dHA6IiwiZm9vIiwiMCIsIi9wYXRoO2EiLCI/P2UiLCIjZiUyM2ciXS4KK1BBU1Mgc2Vn
bWVudHMoJ2h0dHA6Ly9mb28vcGF0aDthPz9lI2YjZycpIGlzICdbImh0dHA6IiwiZm9vIiwiMCIs
Ii9wYXRoO2EiLCI/P2UiLCIjZiNnIl0nCiBQQVNTIHNlZ21lbnRzKCdodHRwOi8vZm9vL2FiY2Q/
ZWZnaD9pamtsJykgaXMgJ1siaHR0cDoiLCJmb28iLCIwIiwiL2FiY2QiLCI/ZWZnaD9pamtsIiwi
Il0nCiBQQVNTIHNlZ21lbnRzKCdodHRwOi8vZm9vL2FiY2QjZm9vP2JhcicpIGlzICdbImh0dHA6
IiwiZm9vIiwiMCIsIi9hYmNkIiwiIiwiI2Zvbz9iYXIiXScKIFBBU1Mgc2VnbWVudHMoJ1s2MToy
NDo3NF06OTgnKSBpcyAnWyJodHRwOiIsImV4YW1wbGUub3JnIiwiMCIsIi9mb28vWzYxOjI0Ojc0
XTo5OCIsIiIsIiJdJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC91cmwvc2VnbWVudHMt
ZnJvbS1kYXRhLXVybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3VybC9zZWdtZW50
cy1mcm9tLWRhdGEtdXJsLWV4cGVjdGVkLnR4dAppbmRleCA2ZTE4NTNlMGI2MTdiYjA0MzVmMGQy
YzVhNGIyYjhmN2VjODBhNDI3Li42YWU5M2I4MzA4OWRjNGJmZGMyY2M1MDcyMDk0OGEzZjljMjVj
MzhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3VybC9zZWdtZW50cy1mcm9tLWRhdGEt
dXJsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3VybC9zZWdtZW50cy1mcm9t
LWRhdGEtdXJsLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDcgQEAgRkFJTCBzZWdtZW50cygnaHR0
cDpmb28uY29tJykgc2hvdWxkIGJlIFsiaHR0cDoiLCJmb28uY29tIiwiMCIsIi8iLCIiLCIiXS4g
V2FzIFsKIFBBU1Mgc2VnbWVudHMoJ1x0ICAgOmZvby5jb20gICBcbicpIGlzICdbIjoiLCIiLCIw
IiwiIiwiIiwiIl0nCiBQQVNTIHNlZ21lbnRzKCcgZm9vLmNvbSAgJykgaXMgJ1siOiIsIiIsIjAi
LCIiLCIiLCIiXScKIFBBU1Mgc2VnbWVudHMoJ2E6XHQgZm9vLmNvbScpIGlzICdbImE6IiwiIiwi
MCIsIiBmb28uY29tIiwiIiwiIl0nCi1GQUlMIHNlZ21lbnRzKCdodHRwOi8vZjoyMS8gYiA/IGQg
IyBlICcpIHNob3VsZCBiZSBbImh0dHA6IiwiZiIsIjIxIiwiLyUyMGIlMjAiLCI/JTIwZCUyMCIs
IiMgZSJdLiBXYXMgWyJodHRwOiIsImYiLCIyMSIsIi8gYiAiLCI/JTIwZCUyMCIsIiMlMjBlIl0u
CitGQUlMIHNlZ21lbnRzKCdodHRwOi8vZjoyMS8gYiA/IGQgIyBlICcpIHNob3VsZCBiZSBbImh0
dHA6IiwiZiIsIjIxIiwiLyUyMGIlMjAiLCI/JTIwZCUyMCIsIiMgZSJdLiBXYXMgWyJodHRwOiIs
ImYiLCIyMSIsIi8gYiAiLCI/JTIwZCUyMCIsIiMgZSJdLgogUEFTUyBzZWdtZW50cygnaHR0cDov
L2Y6L2MnKSBpcyAnWyJodHRwOiIsImYiLCIwIiwiL2MiLCIiLCIiXScKIFBBU1Mgc2VnbWVudHMo
J2h0dHA6Ly9mOjAvYycpIGlzICdbImh0dHA6IiwiZiIsIjAiLCIvYyIsIiIsIiJdJwogUEFTUyBz
ZWdtZW50cygnaHR0cDovL2Y6MDAwMDAwMDAwMDAwMDAvYycpIGlzICdbImh0dHA6IiwiZiIsIjAi
LCIvYyIsIiIsIiJdJwpAQCAtNTUsNyArNTUsNyBAQCBQQVNTIHNlZ21lbnRzKCdmb286Ly8vLy8v
Ly8vYmFyLmNvbS8nKSBpcyAnWyJmb286IiwiIiwiMCIsIi8vLy8vLy8vL2Jhci5jb20vIiwiIgog
UEFTUyBzZWdtZW50cygnZm9vOi8vLy86Ly8vLy8nKSBpcyAnWyJmb286IiwiIiwiMCIsIi8vLy86
Ly8vLy8iLCIiLCIiXScKIFBBU1Mgc2VnbWVudHMoJ2M6L2ZvbycpIGlzICdbImM6IiwiIiwiMCIs
Ii9mb28iLCIiLCIiXScKIFBBU1Mgc2VnbWVudHMoJy8vZm9vL2JhcicpIGlzICdbIjoiLCIiLCIw
IiwiIiwiIiwiIl0nCi1GQUlMIHNlZ21lbnRzKCdodHRwOi8vZm9vL3BhdGg7YT8/ZSNmI2cnKSBz
aG91bGQgYmUgWyJodHRwOiIsImZvbyIsIjAiLCIvcGF0aDthIiwiPz9lIiwiI2YjZyJdLiBXYXMg
WyJodHRwOiIsImZvbyIsIjAiLCIvcGF0aDthIiwiPz9lIiwiI2YlMjNnIl0uCitQQVNTIHNlZ21l
bnRzKCdodHRwOi8vZm9vL3BhdGg7YT8/ZSNmI2cnKSBpcyAnWyJodHRwOiIsImZvbyIsIjAiLCIv
cGF0aDthIiwiPz9lIiwiI2YjZyJdJwogUEFTUyBzZWdtZW50cygnaHR0cDovL2Zvby9hYmNkP2Vm
Z2g/aWprbCcpIGlzICdbImh0dHA6IiwiZm9vIiwiMCIsIi9hYmNkIiwiP2VmZ2g/aWprbCIsIiJd
JwogUEFTUyBzZWdtZW50cygnaHR0cDovL2Zvby9hYmNkI2Zvbz9iYXInKSBpcyAnWyJodHRwOiIs
ImZvbyIsIjAiLCIvYWJjZCIsIiIsIiNmb28/YmFyIl0nCiBGQUlMIHNlZ21lbnRzKCdbNjE6MjQ6
NzRdOjk4Jykgc2hvdWxkIGJlIFsiZGF0YToiLCIiLCIwIiwidGV4dC9bNjE6MjQ6NzRdOjk4Iiwi
IiwiIl0uIFdhcyBbIjoiLCIiLCIwIiwiIiwiIiwiIl0uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2NjZTQ4MGVl
YTg2MjY2ODZkYzk2ODI0NzdmYTYxYTNjMzA3ZmMwNi4uNGRhNmQyYTNlMjIyODU2MmJhMGRjNTI2
OWNjZWE2ZDJjMDA0OTc5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE5IEBACiAyMDExLTAyLTA1
ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFdlYktpdCdzIGZyYWdtZW50IGNhbm5vbmlj
YWxpemF0aW9uIG1hdGNoIG90aGVyIGJyb3dzZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Mzg1MAorCisgICAgICAgIFRoaXMgZG9lc24ndCBtYWtl
IHVzIG1hdGNoIHBlcmZlY3RseSwgYnV0IGl0IGJyaW5ncyB1cyBjbG9zZXIuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9LVVJMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFwcGVuZEVzY2FwaW5nQmFk
Q2hhcnMpOgorICAgICAgICAoV2ViQ29yZTo6ZXNjYXBlQW5kQXBwZW5kRnJhZ21lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6S1VSTDo6cGFyc2UpOgorCisyMDExLTAyLTA1ICBFcmljIFNlaWRlbCAg
PGVyaWNAd2Via2l0Lm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgogCiAg
ICAgICAgIFNhZmFyaSBzaG91bGQgbG93ZXJjYXNlIHNjaGVtZXMgaW4gY2Fubm9uaWNhbGl6ZWQg
dXJscyB0byBtYXRjaCBldmVyeSBvdGhlciBicm93c2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9LVVJMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0tVUkwuY3Bw
CmluZGV4IDNlZDY2Njg5NGE2YTUzMWQ3NmEzYzRmMjRjNTI1YmFjMjk0ZGE4NDQuLjgwODdhNTcy
NmViMThiZDZkODAxODcxMjY1ODNmOGUyNGZkNjNjMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0tVUkwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0tVUkwu
Y3BwCkBAIC05NzEsMTYgKzk3MSwzOCBAQCBzdGF0aWMgdm9pZCBhcHBlbmRFc2NhcGluZ0JhZENo
YXJzKGNoYXIqJiBidWZmZXIsIGNvbnN0IGNoYXIqIHN0clN0YXJ0LCBzaXplX3QgbAogICAgIHdo
aWxlIChzdHIgPCBzdHJFbmQpIHsKICAgICAgICAgdW5zaWduZWQgY2hhciBjID0gKnN0cisrOwog
ICAgICAgICBpZiAoaXNCYWRDaGFyKGMpKSB7Ci0gICAgICAgICAgICBpZiAoYyA9PSAnJScgfHwg
YyA9PSAnPycpIHsKKyAgICAgICAgICAgIGlmIChjID09ICclJyB8fCBjID09ICc/JykKICAgICAg
ICAgICAgICAgICAqcCsrID0gYzsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoYyAhPSAweDA5ICYm
IGMgIT0gMHgwYSAmJiBjICE9IDB4MGQpIHsKKyAgICAgICAgICAgIGVsc2UgaWYgKGMgIT0gMHgw
OSAmJiBjICE9IDB4MGEgJiYgYyAhPSAweDBkKSB7CiAgICAgICAgICAgICAgICAgKnArKyA9ICcl
JzsKICAgICAgICAgICAgICAgICAqcCsrID0gaGV4RGlnaXRzW2MgPj4gNF07CiAgICAgICAgICAg
ICAgICAgKnArKyA9IGhleERpZ2l0c1tjICYgMHhGXTsKICAgICAgICAgICAgIH0KLSAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAqcCsrID0gYzsKKyAgICB9CisK
KyAgICBidWZmZXIgPSBwOworfQorCitzdGF0aWMgdm9pZCBlc2NhcGVBbmRBcHBlbmRGcmFnbWVu
dChjaGFyKiYgYnVmZmVyLCBjb25zdCBjaGFyKiBzdHJTdGFydCwgc2l6ZV90IGxlbmd0aCkKK3sK
KyAgICBjaGFyKiBwID0gYnVmZmVyOworICAgIAorICAgIGNvbnN0IGNoYXIqIHN0ciA9IHN0clN0
YXJ0OworICAgIGNvbnN0IGNoYXIqIHN0ckVuZCA9IHN0clN0YXJ0ICsgbGVuZ3RoOworICAgIHdo
aWxlIChzdHIgPCBzdHJFbmQpIHsKKyAgICAgICAgdW5zaWduZWQgY2hhciBjID0gKnN0cisrOwor
ICAgICAgICBpZiAoYyA9PSAnXDAnKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlm
IChjIDwgMHgyMCkgeworICAgICAgICAgICAgKnArKyA9ICclJzsKKyAgICAgICAgICAgICpwKysg
PSBoZXhEaWdpdHNbYyA+PiA0XTsKKyAgICAgICAgICAgICpwKysgPSBoZXhEaWdpdHNbYyAmIDB4
Rl07CisgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQorICAgICAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIGJlIGRlY29kaW5nIGFueSBub24tYXNjaWkgY2hhcmFjdGVycyAoYWJvdmUgMHg4
MCkuCisgICAgICAgICpwKysgPSBjOwogICAgIH0KIAogICAgIGJ1ZmZlciA9IHA7CkBAIC0xMzQ5
LDcgKzEzNzEsNyBAQCB2b2lkIEtVUkw6OnBhcnNlKGNvbnN0IGNoYXIqIHVybCwgY29uc3QgU3Ry
aW5nKiBvcmlnaW5hbFN0cmluZykKICAgICAvLyBhZGQgZnJhZ21lbnQsIGVzY2FwaW5nIGJhZCBj
aGFyYWN0ZXJzCiAgICAgaWYgKGZyYWdtZW50RW5kICE9IHF1ZXJ5RW5kKSB7CiAgICAgICAgICpw
KysgPSAnIyc7Ci0gICAgICAgIGFwcGVuZEVzY2FwaW5nQmFkQ2hhcnMocCwgdXJsICsgZnJhZ21l
bnRTdGFydCwgZnJhZ21lbnRFbmQgLSBmcmFnbWVudFN0YXJ0KTsKKyAgICAgICAgZXNjYXBlQW5k
QXBwZW5kRnJhZ21lbnQocCwgdXJsICsgZnJhZ21lbnRTdGFydCwgZnJhZ21lbnRFbmQgLSBmcmFn
bWVudFN0YXJ0KTsKICAgICB9CiAgICAgbV9mcmFnbWVudEVuZCA9IHAgLSBidWZmZXIuZGF0YSgp
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81418</attachid>
            <date>2011-02-06 11:33:04 -0800</date>
            <delta_ts>2011-02-06 23:40:05 -0800</delta_ts>
            <desc>updated patch</desc>
            <filename>bug-53850-20110206113303.patch</filename>
            <type>text/plain</type>
            <size>13123</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzNmJmNTI3MWE4NGU0NjgwMDU2OTJkMjMzZjAwOTUxZmNjZGNjNGI4Li5lNTA2ZDNm
ZTQ3NGI3Nzk1NGIwMDE2ZTg5OTk2N2RlNGVlYTlhOTZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTEtMDItMDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgTWFrZSBXZWJLaXQncyBmcmFnbWVudCBj
YW5ub25pY2FsaXphdGlvbiBtYXRjaCBvdGhlciBicm93c2VycworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM4NTAKKworICAgICAgICAqIGZhc3QvdXJs
L2FuY2hvci1leHBlY3RlZC50eHQ6CisgICAgICAgICAtICJoZWxsbyB3b3JsZCI6IE91ciBuZXcg
YmVoYXZpb3IgaGVyZSBtYXRjaGVzIElFIGFuZCBDaHJvbWUsIGJ1dCBkaXZlcmdlcyBmcm9tIEZG
LgorICAgICAgICAgLSBpbnZhbGlkIGNoYXIgYWZ0ZXIgImEiOiBJRSBkcm9wcyB0aGUgY2hhciwg
RkYgYW5kIFNhZmFyaSBlbmNvZGUgaXQsIENocm9tZSBsZWF2ZXMgaXQuICBOb3cgd2UgbWF0Y2gg
Q2hyb21lLgorICAgICAgICAgLSBUaGUgbGFzdCB0d28gdGVzdHMgaW52b2x2aW5nICMsIHdlIHdl
cmUgdGhlIG9kZCBtYW4gb3V0LiBOb3cgbWF0Y2ggYWxsIGJyb3dzZXJzLgorICAgICAgICAqIGZh
c3QvdXJsL2ZpbGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAgLSBBZ2FpbiwgaW52YWxpZCBjaGFy
LiAgQmVmb3JlIHdlIG1hdGNoZWQgRkYsIG5vdyB3ZSBtYXRjaCBDaHJvbWUgYW5kIGFyZSBjbG9z
ZXIgdG8gSUUuCisgICAgICAgICogZmFzdC91cmwvZmlsZS1odHRwLWJhc2UtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvdXJsL3NlZ21lbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgIC0g
RG9uJ3QgcGVyY2VudCBlbmNvZGUgc3BhY2VzIGluIGZyYWdtZW50cyAodG8gbWF0Y2ggb3RoZXIg
YnJvd3NlcnMpCisgICAgICAgICAtIFdlYktpdCB3YXMgdGhlIG9ubHkgZW5naW5lIGVuY29kaW5n
ICMgaW4gZnJhZ21lbnRzLgorICAgICAgICAqIGZhc3QvdXJsL3NlZ21lbnRzLWZyb20tZGF0YS11
cmwtZXhwZWN0ZWQudHh0OgorCiAyMDExLTAyLTA2ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5z
b25AaWdhbGlhLmNvbT4KIAogICAgICAgICBSZWNsYXNzaWZ5IGEgZmFpbGluZyB0ZXN0IGFuZCB1
bnNraXAgYW5vdGhlciB3aGljaCBzaG91bGQgYmUgcGFzc2luZyBub3cuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3VybC9hbmNob3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC91cmwvYW5jaG9yLWV4cGVjdGVkLnR4dAppbmRleCAxNWRjODRmMmRjMDNjOTQ5NzZmYmI2OGFl
ZGNlZTk0NGJiN2M2NWFhLi40ZThkNWU2YTEwNGI3MmUwNmQ0OGQ2ZWVlOWEzOTZmM2I2Mzc2ZmY5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3VybC9hbmNob3ItZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvdXJsL2FuY2hvci1leHBlY3RlZC50eHQKQEAgLTMsMTQgKzMs
MTQgQEAgVGVzdCBVUkxzIHRoYXQgaGF2ZSBhbiBhbmNob3IuCiBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCiAKIAotRkFJTCBjYW5vbmljYWxpemUoJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vI2hl
bGxvLCB3b3JsZCcpIHNob3VsZCBiZSBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNoZWxsbywgd29y
bGQuIFdhcyBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNoZWxsbywlMjB3b3JsZC4KLUZBSUwgY2Fu
b25pY2FsaXplKCdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyPDgsKpJykgc2hvdWxkIGJlIGh0dHA6
Ly93d3cuZXhhbXBsZS5jb20vI8OCwqkuIFdhcyBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyMlQzIl
QTkuCitQQVNTIGNhbm9uaWNhbGl6ZSgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jaGVsbG8sIHdv
cmxkJykgaXMgJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vI2hlbGxvLCB3b3JsZCcKK1BBU1MgY2Fu
b25pY2FsaXplKCdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyPDgsKpJykgaXMgJ2h0dHA6Ly93d3cu
ZXhhbXBsZS5jb20vI8OCwqknCiBGQUlMIGNhbm9uaWNhbGl6ZSgnaHR0cDovL3d3dy5leGFtcGxl
LmNvbS8j8JCMgHNzJykgc2hvdWxkIGJlIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vI/CQjIBzcy4g
V2FzIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIyUyNiUyMzY2MzA0JTNCc3MuCiBQQVNTIGNhbm9u
aWNhbGl6ZSgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jJTQxJWEnKSBpcyAnaHR0cDovL3d3dy5l
eGFtcGxlLmNvbS8jJTQxJWEnCiBGQUlMIGNhbm9uaWNhbGl6ZSgnaHR0cDovL3d3dy5leGFtcGxl
LmNvbS8jXHVkODAwXHU1OTdkJykgc2hvdWxkIGJlIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vI++/
veWlvS4gV2FzIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIyUyNiUyMzU1Mjk2JTNCJTI2JTIzMjI5
MDklM0IuCiBGQUlMIGNhbm9uaWNhbGl6ZSgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jYVx1RkRE
MCcpIHNob3VsZCBiZSBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNh77eQLiBXYXMgaHR0cDovL3d3
dy5leGFtcGxlLmNvbS8jYSUyNiUyMzY0OTc2JTNCLgotRkFJTCBjYW5vbmljYWxpemUoJ2h0dHA6
Ly93d3cuZXhhbXBsZS5jb20vI2FzZGYjcXdlcicpIHNob3VsZCBiZSBodHRwOi8vd3d3LmV4YW1w
bGUuY29tLyNhc2RmI3F3ZXIuIFdhcyBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNhc2RmJTIzcXdl
ci4KLUZBSUwgY2Fub25pY2FsaXplKCdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyMjYXNkZicpIHNo
b3VsZCBiZSBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyMjYXNkZi4gV2FzIGh0dHA6Ly93d3cuZXhh
bXBsZS5jb20vIyUyM2FzZGYuCitQQVNTIGNhbm9uaWNhbGl6ZSgnaHR0cDovL3d3dy5leGFtcGxl
LmNvbS8jYXNkZiNxd2VyJykgaXMgJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vI2FzZGYjcXdlcicK
K1BBU1MgY2Fub25pY2FsaXplKCdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyMjYXNkZicpIGlzICdo
dHRwOi8vd3d3LmV4YW1wbGUuY29tLyMjYXNkZicKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC91cmwv
ZmlsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3VybC9maWxlLWV4cGVjdGVkLnR4
dAppbmRleCBkMjc0NjczM2Q2NTQ0Zjg5NTdlOGIwYzQzZjhlNjMxYjZkNDUyMDkxLi42ZTBlOGJh
YmZiZWI3NDczMmE4Y2JjM2Q0NWQ2YmY0Y2E0MWYyNDdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3VybC9maWxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3VybC9m
aWxlLWV4cGVjdGVkLnR4dApAQCAtMjAsNyArMjAsNyBAQCBQQVNTIGNhbm9uaWNhbGl6ZSgnZmls
ZTovLy9mb28vYmFyLnR4dCcpIGlzICdmaWxlOi8vL2Zvby9iYXIudHh0JwogRkFJTCBjYW5vbmlj
YWxpemUoJ0ZJTEU6L1xcL1xcNzpcXFxcLy9mb29cXGJhci5odG1sJykgc2hvdWxkIGJlIGZpbGU6
Ly83Oi8vLy9mb28vYmFyLmh0bWwuIFdhcyBmaWxlOi8vLy83Oi8vLy9mb28vYmFyLmh0bWwuCiBG
QUlMIGNhbm9uaWNhbGl6ZSgnZmlsZTpmaWxlci9ob21lXFxtZScpIHNob3VsZCBiZSBmaWxlOi8v
ZmlsZXIvaG9tZS9tZS4gV2FzIGZpbGU6Ly8vdG1wL21vY2svZmlsZXIvaG9tZS9tZS4KIEZBSUwg
Y2Fub25pY2FsaXplKCdmaWxlOi8vL0M6L2Zvby8uLi8uLi8uLi9iYXIuaHRtbCcpIHNob3VsZCBi
ZSBmaWxlOi8vL0M6L2Jhci5odG1sLiBXYXMgZmlsZTovLy9iYXIuaHRtbC4KLUZBSUwgY2Fub25p
Y2FsaXplKCdmaWxlOi8vL0M6L2FzZGYjXHhjMicpIHNob3VsZCBiZSBmaWxlOi8vL0M6L2FzZGYj
w6/Cv8K9LiBXYXMgZmlsZTovLy9DOi9hc2RmIyVDMi4KK0ZBSUwgY2Fub25pY2FsaXplKCdmaWxl
Oi8vL0M6L2FzZGYjXHhjMicpIHNob3VsZCBiZSBmaWxlOi8vL0M6L2FzZGYjw6/Cv8K9LiBXYXMg
ZmlsZTovLy9DOi9hc2RmI8OCLgogUEFTUyBjYW5vbmljYWxpemUoJ2ZpbGU6Ly8vaG9tZS9tZScp
IGlzICdmaWxlOi8vL2hvbWUvbWUnCiBGQUlMIGNhbm9uaWNhbGl6ZSgnZmlsZTpjOlxcZm9vXFxi
YXIuaHRtbCcpIHNob3VsZCBiZSBmaWxlOi8vL2M6L2Zvby9iYXIuaHRtbC4gV2FzIGZpbGU6Ly8v
dG1wL21vY2svYzovZm9vL2Jhci5odG1sLgogRkFJTCBjYW5vbmljYWxpemUoJ2ZpbGU6Y3wvL2Zv
b1xcYmFyLmh0bWwnKSBzaG91bGQgYmUgZmlsZTovLy9jJTdDLy9mb28vYmFyLmh0bWwuIFdhcyBm
aWxlOi8vL3RtcC9tb2NrL2N8Ly9mb28vYmFyLmh0bWwuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3VybC9maWxlLWh0dHAtYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L3VybC9maWxlLWh0dHAtYmFzZS1leHBlY3RlZC50eHQKaW5kZXggYWZkMzEzMTY4YmQxZGYyYjZm
OWZmYjRjYzE5YzU2ZDc2MjY0ZGFiNC4uYjY5NjUwMmVjOWZhZjJhYTFjZDlkNmNkZWI5ZjJhMGJk
N2I4ZGYzMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC91cmwvZmlsZS1odHRwLWJhc2Ut
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdXJsL2ZpbGUtaHR0cC1iYXNlLWV4
cGVjdGVkLnR4dApAQCAtMjAsNyArMjAsNyBAQCBQQVNTIGNhbm9uaWNhbGl6ZSgnZmlsZTovLy9m
b28vYmFyLnR4dCcpIGlzICdmaWxlOi8vL2Zvby9iYXIudHh0JwogRkFJTCBjYW5vbmljYWxpemUo
J0ZJTEU6L1xcL1xcNzpcXFxcLy9mb29cXGJhci5odG1sJykgc2hvdWxkIGJlIGZpbGU6Ly83Oi8v
Ly9mb28vYmFyLmh0bWwuIFdhcyBmaWxlOi8vLy83Oi8vLy9mb28vYmFyLmh0bWwuCiBQQVNTIGNh
bm9uaWNhbGl6ZSgnZmlsZTpmaWxlci9ob21lXFxtZScpIGlzICdmaWxlOi8vZmlsZXIvaG9tZS9t
ZScKIEZBSUwgY2Fub25pY2FsaXplKCdmaWxlOi8vL0M6L2Zvby8uLi8uLi8uLi9iYXIuaHRtbCcp
IHNob3VsZCBiZSBmaWxlOi8vL0M6L2Jhci5odG1sLiBXYXMgZmlsZTovLy9iYXIuaHRtbC4KLUZB
SUwgY2Fub25pY2FsaXplKCdmaWxlOi8vL0M6L2FzZGYjXHhjMicpIHNob3VsZCBiZSBmaWxlOi8v
L0M6L2FzZGYjw6/Cv8K9LiBXYXMgZmlsZTovLy9DOi9hc2RmIyVDMi4KK0ZBSUwgY2Fub25pY2Fs
aXplKCdmaWxlOi8vL0M6L2FzZGYjXHhjMicpIHNob3VsZCBiZSBmaWxlOi8vL0M6L2FzZGYjw6/C
v8K9LiBXYXMgZmlsZTovLy9DOi9hc2RmI8OCLgogUEFTUyBjYW5vbmljYWxpemUoJ2ZpbGU6Ly8v
aG9tZS9tZScpIGlzICdmaWxlOi8vL2hvbWUvbWUnCiBGQUlMIGNhbm9uaWNhbGl6ZSgnZmlsZTpj
OlxcZm9vXFxiYXIuaHRtbCcpIHNob3VsZCBiZSBmaWxlOi8vL2M6L2Zvby9iYXIuaHRtbC4gV2Fz
IGZpbGU6Ly9jOi9mb28vYmFyLmh0bWwuCiBGQUlMIGNhbm9uaWNhbGl6ZSgnZmlsZTpjfC8vZm9v
XFxiYXIuaHRtbCcpIHNob3VsZCBiZSBmaWxlOi8vL2MlN0MvL2Zvby9iYXIuaHRtbC4gV2FzIGZp
bGU6Ly9jfC8vZm9vL2Jhci5odG1sLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC91cmwv
c2VnbWVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC91cmwvc2VnbWVudHMtZXhw
ZWN0ZWQudHh0CmluZGV4IDJkYTY5MTJjNzI2MDE2OWQ0MTM5Yzc2NjZmZGY4ODViZjRmMmI1MmEu
LmY1M2ZiYjEwZTVhYzNjNjcxODEyYTNiNzA3YzUwMjI0ZGViNDY0M2UgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvdXJsL3NlZ21lbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3VybC9zZWdtZW50cy1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw3IEBAIFBBU1Mgc2Vn
bWVudHMoJ2h0dHA6Zm9vLmNvbScpIGlzICdbImh0dHA6IiwiZXhhbXBsZS5vcmciLCIwIiwiL2Zv
by9mb28uY29tIiwiIiwiCiBQQVNTIHNlZ21lbnRzKCdcdCAgIDpmb28uY29tICAgXG4nKSBpcyAn
WyJodHRwOiIsImV4YW1wbGUub3JnIiwiMCIsIi9mb28vOmZvby5jb20iLCIiLCIiXScKIFBBU1Mg
c2VnbWVudHMoJyBmb28uY29tICAnKSBpcyAnWyJodHRwOiIsImV4YW1wbGUub3JnIiwiMCIsIi9m
b28vZm9vLmNvbSIsIiIsIiJdJwogUEFTUyBzZWdtZW50cygnYTpcdCBmb28uY29tJykgaXMgJ1si
YToiLCIiLCIwIiwiIGZvby5jb20iLCIiLCIiXScKLUZBSUwgc2VnbWVudHMoJ2h0dHA6Ly9mOjIx
LyBiID8gZCAjIGUgJykgc2hvdWxkIGJlIFsiaHR0cDoiLCJmIiwiMjEiLCIvJTIwYiUyMCIsIj8l
MjBkJTIwIiwiIyBlIl0uIFdhcyBbImh0dHA6IiwiZiIsIjIxIiwiLyBiICIsIj8lMjBkJTIwIiwi
IyUyMGUiXS4KK0ZBSUwgc2VnbWVudHMoJ2h0dHA6Ly9mOjIxLyBiID8gZCAjIGUgJykgc2hvdWxk
IGJlIFsiaHR0cDoiLCJmIiwiMjEiLCIvJTIwYiUyMCIsIj8lMjBkJTIwIiwiIyBlIl0uIFdhcyBb
Imh0dHA6IiwiZiIsIjIxIiwiLyBiICIsIj8lMjBkJTIwIiwiIyBlIl0uCiBQQVNTIHNlZ21lbnRz
KCdodHRwOi8vZjovYycpIGlzICdbImh0dHA6IiwiZiIsIjAiLCIvYyIsIiIsIiJdJwogUEFTUyBz
ZWdtZW50cygnaHR0cDovL2Y6MC9jJykgaXMgJ1siaHR0cDoiLCJmIiwiMCIsIi9jIiwiIiwiIl0n
CiBQQVNTIHNlZ21lbnRzKCdodHRwOi8vZjowMDAwMDAwMDAwMDAwMC9jJykgaXMgJ1siaHR0cDoi
LCJmIiwiMCIsIi9jIiwiIiwiIl0nCkBAIC01NSw3ICs1NSw3IEBAIFBBU1Mgc2VnbWVudHMoJ2Zv
bzovLy8vLy8vLy9iYXIuY29tLycpIGlzICdbImZvbzoiLCIiLCIwIiwiLy8vLy8vLy8vYmFyLmNv
bS8iLCIiCiBQQVNTIHNlZ21lbnRzKCdmb286Ly8vLzovLy8vLycpIGlzICdbImZvbzoiLCIiLCIw
IiwiLy8vLzovLy8vLyIsIiIsIiJdJwogUEFTUyBzZWdtZW50cygnYzovZm9vJykgaXMgJ1siYzoi
LCIiLCIwIiwiL2ZvbyIsIiIsIiJdJwogUEFTUyBzZWdtZW50cygnLy9mb28vYmFyJykgaXMgJ1si
aHR0cDoiLCJmb28iLCIwIiwiL2JhciIsIiIsIiJdJwotRkFJTCBzZWdtZW50cygnaHR0cDovL2Zv
by9wYXRoO2E/P2UjZiNnJykgc2hvdWxkIGJlIFsiaHR0cDoiLCJmb28iLCIwIiwiL3BhdGg7YSIs
Ij8/ZSIsIiNmI2ciXS4gV2FzIFsiaHR0cDoiLCJmb28iLCIwIiwiL3BhdGg7YSIsIj8/ZSIsIiNm
JTIzZyJdLgorUEFTUyBzZWdtZW50cygnaHR0cDovL2Zvby9wYXRoO2E/P2UjZiNnJykgaXMgJ1si
aHR0cDoiLCJmb28iLCIwIiwiL3BhdGg7YSIsIj8/ZSIsIiNmI2ciXScKIFBBU1Mgc2VnbWVudHMo
J2h0dHA6Ly9mb28vYWJjZD9lZmdoP2lqa2wnKSBpcyAnWyJodHRwOiIsImZvbyIsIjAiLCIvYWJj
ZCIsIj9lZmdoP2lqa2wiLCIiXScKIFBBU1Mgc2VnbWVudHMoJ2h0dHA6Ly9mb28vYWJjZCNmb28/
YmFyJykgaXMgJ1siaHR0cDoiLCJmb28iLCIwIiwiL2FiY2QiLCIiLCIjZm9vP2JhciJdJwogUEFT
UyBzZWdtZW50cygnWzYxOjI0Ojc0XTo5OCcpIGlzICdbImh0dHA6IiwiZXhhbXBsZS5vcmciLCIw
IiwiL2Zvby9bNjE6MjQ6NzRdOjk4IiwiIiwiIl0nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3VybC9zZWdtZW50cy1mcm9tLWRhdGEtdXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvdXJsL3NlZ21lbnRzLWZyb20tZGF0YS11cmwtZXhwZWN0ZWQudHh0CmluZGV4IDZlMTg1
M2UwYjYxN2JiMDQzNWYwZDJjNWE0YjJiOGY3ZWM4MGE0MjcuLjZhZTkzYjgzMDg5ZGM0YmZkYzJj
YzUwNzIwOTQ4YTNmOWMyNWMzOGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdXJsL3Nl
Z21lbnRzLWZyb20tZGF0YS11cmwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
dXJsL3NlZ21lbnRzLWZyb20tZGF0YS11cmwtZXhwZWN0ZWQudHh0CkBAIC04LDcgKzgsNyBAQCBG
QUlMIHNlZ21lbnRzKCdodHRwOmZvby5jb20nKSBzaG91bGQgYmUgWyJodHRwOiIsImZvby5jb20i
LCIwIiwiLyIsIiIsIiJdLiBXYXMgWwogUEFTUyBzZWdtZW50cygnXHQgICA6Zm9vLmNvbSAgIFxu
JykgaXMgJ1siOiIsIiIsIjAiLCIiLCIiLCIiXScKIFBBU1Mgc2VnbWVudHMoJyBmb28uY29tICAn
KSBpcyAnWyI6IiwiIiwiMCIsIiIsIiIsIiJdJwogUEFTUyBzZWdtZW50cygnYTpcdCBmb28uY29t
JykgaXMgJ1siYToiLCIiLCIwIiwiIGZvby5jb20iLCIiLCIiXScKLUZBSUwgc2VnbWVudHMoJ2h0
dHA6Ly9mOjIxLyBiID8gZCAjIGUgJykgc2hvdWxkIGJlIFsiaHR0cDoiLCJmIiwiMjEiLCIvJTIw
YiUyMCIsIj8lMjBkJTIwIiwiIyBlIl0uIFdhcyBbImh0dHA6IiwiZiIsIjIxIiwiLyBiICIsIj8l
MjBkJTIwIiwiIyUyMGUiXS4KK0ZBSUwgc2VnbWVudHMoJ2h0dHA6Ly9mOjIxLyBiID8gZCAjIGUg
Jykgc2hvdWxkIGJlIFsiaHR0cDoiLCJmIiwiMjEiLCIvJTIwYiUyMCIsIj8lMjBkJTIwIiwiIyBl
Il0uIFdhcyBbImh0dHA6IiwiZiIsIjIxIiwiLyBiICIsIj8lMjBkJTIwIiwiIyBlIl0uCiBQQVNT
IHNlZ21lbnRzKCdodHRwOi8vZjovYycpIGlzICdbImh0dHA6IiwiZiIsIjAiLCIvYyIsIiIsIiJd
JwogUEFTUyBzZWdtZW50cygnaHR0cDovL2Y6MC9jJykgaXMgJ1siaHR0cDoiLCJmIiwiMCIsIi9j
IiwiIiwiIl0nCiBQQVNTIHNlZ21lbnRzKCdodHRwOi8vZjowMDAwMDAwMDAwMDAwMC9jJykgaXMg
J1siaHR0cDoiLCJmIiwiMCIsIi9jIiwiIiwiIl0nCkBAIC01NSw3ICs1NSw3IEBAIFBBU1Mgc2Vn
bWVudHMoJ2ZvbzovLy8vLy8vLy9iYXIuY29tLycpIGlzICdbImZvbzoiLCIiLCIwIiwiLy8vLy8v
Ly8vYmFyLmNvbS8iLCIiCiBQQVNTIHNlZ21lbnRzKCdmb286Ly8vLzovLy8vLycpIGlzICdbImZv
bzoiLCIiLCIwIiwiLy8vLzovLy8vLyIsIiIsIiJdJwogUEFTUyBzZWdtZW50cygnYzovZm9vJykg
aXMgJ1siYzoiLCIiLCIwIiwiL2ZvbyIsIiIsIiJdJwogUEFTUyBzZWdtZW50cygnLy9mb28vYmFy
JykgaXMgJ1siOiIsIiIsIjAiLCIiLCIiLCIiXScKLUZBSUwgc2VnbWVudHMoJ2h0dHA6Ly9mb28v
cGF0aDthPz9lI2YjZycpIHNob3VsZCBiZSBbImh0dHA6IiwiZm9vIiwiMCIsIi9wYXRoO2EiLCI/
P2UiLCIjZiNnIl0uIFdhcyBbImh0dHA6IiwiZm9vIiwiMCIsIi9wYXRoO2EiLCI/P2UiLCIjZiUy
M2ciXS4KK1BBU1Mgc2VnbWVudHMoJ2h0dHA6Ly9mb28vcGF0aDthPz9lI2YjZycpIGlzICdbImh0
dHA6IiwiZm9vIiwiMCIsIi9wYXRoO2EiLCI/P2UiLCIjZiNnIl0nCiBQQVNTIHNlZ21lbnRzKCdo
dHRwOi8vZm9vL2FiY2Q/ZWZnaD9pamtsJykgaXMgJ1siaHR0cDoiLCJmb28iLCIwIiwiL2FiY2Qi
LCI/ZWZnaD9pamtsIiwiIl0nCiBQQVNTIHNlZ21lbnRzKCdodHRwOi8vZm9vL2FiY2QjZm9vP2Jh
cicpIGlzICdbImh0dHA6IiwiZm9vIiwiMCIsIi9hYmNkIiwiIiwiI2Zvbz9iYXIiXScKIEZBSUwg
c2VnbWVudHMoJ1s2MToyNDo3NF06OTgnKSBzaG91bGQgYmUgWyJkYXRhOiIsIiIsIjAiLCJ0ZXh0
L1s2MToyNDo3NF06OTgiLCIiLCIiXS4gV2FzIFsiOiIsIiIsIjAiLCIiLCIiLCIiXS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA3OGUzNjcyMjFkYmY2NTIyY2UyMzNmMmM1MWU2MjA4YTQ0Y2QwOTdkLi42ZGNlYjg1
OTMwNzAyZDliYmZkNzM2ZmE3NGFiNzkwMDc4NzgzZmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMTEtMDItMDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgTWFrZSBXZWJLaXQncyBmcmFn
bWVudCBjYW5ub25pY2FsaXphdGlvbiBtYXRjaCBvdGhlciBicm93c2VycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM4NTAKKworICAgICAgICBUaGlz
IGRvZXNuJ3QgbWFrZSB1cyBtYXRjaCBwZXJmZWN0bHksIGJ1dCBpdCBicmluZ3MgdXMgY2xvc2Vy
LgorCisgICAgICAgICogcGxhdGZvcm0vS1VSTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBl
bmRFc2NhcGluZ0JhZENoYXJzKToKKyAgICAgICAgKFdlYkNvcmU6OmVzY2FwZUFuZEFwcGVuZEZy
YWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OktVUkw6OnBhcnNlKToKKwogMjAxMS0wMi0wNiAg
UGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBZGFtIFJvYmVuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vS1VS
TC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmNwcAppbmRleCAyMDBkNTM4YjJk
NTBjYWJiMWRlY2VhODBhZTc1Yjc1ZjRlM2ZmNzU4Li44MzA5ZTU5YmM3N2ViZmY2YTc5ODVlMjll
ZDE5ZjU0YTdiMzViNDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LVVJM
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmNwcApAQCAtOTY4LDYgKzk2
OCwxNCBAQCBib29sIEtVUkw6OmlzTG9jYWxGaWxlKCkgY29uc3QKICAgICByZXR1cm4gcHJvdG9j
b2xJcygiZmlsZSIpOwogfQogCisvLyBDYXV0aW9uOiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGJv
dW5kcyBjaGVjay4KK3N0YXRpYyB2b2lkIGFwcGVuZEVzY2FwZWRDaGFyKGNoYXIqJiBidWZmZXIs
IGNoYXIgYykKK3sKKyAgICAqYnVmZmVyKysgPSAnJSc7CisgICAgKmJ1ZmZlcisrID0gaGV4RGln
aXRzW2MgPj4gNF07CisgICAgKmJ1ZmZlcisrID0gaGV4RGlnaXRzW2MgJiAweEZdOworfQorCiBz
dGF0aWMgdm9pZCBhcHBlbmRFc2NhcGluZ0JhZENoYXJzKGNoYXIqJiBidWZmZXIsIGNvbnN0IGNo
YXIqIHN0clN0YXJ0LCBzaXplX3QgbGVuZ3RoKQogewogICAgIGNoYXIqIHAgPSBidWZmZXI7CkBA
IC05NzcsMTYgKzk4NSwzMiBAQCBzdGF0aWMgdm9pZCBhcHBlbmRFc2NhcGluZ0JhZENoYXJzKGNo
YXIqJiBidWZmZXIsIGNvbnN0IGNoYXIqIHN0clN0YXJ0LCBzaXplX3QgbAogICAgIHdoaWxlIChz
dHIgPCBzdHJFbmQpIHsKICAgICAgICAgdW5zaWduZWQgY2hhciBjID0gKnN0cisrOwogICAgICAg
ICBpZiAoaXNCYWRDaGFyKGMpKSB7Ci0gICAgICAgICAgICBpZiAoYyA9PSAnJScgfHwgYyA9PSAn
PycpIHsKKyAgICAgICAgICAgIGlmIChjID09ICclJyB8fCBjID09ICc/JykKICAgICAgICAgICAg
ICAgICAqcCsrID0gYzsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoYyAhPSAweDA5ICYmIGMgIT0g
MHgwYSAmJiBjICE9IDB4MGQpIHsKLSAgICAgICAgICAgICAgICAqcCsrID0gJyUnOwotICAgICAg
ICAgICAgICAgICpwKysgPSBoZXhEaWdpdHNbYyA+PiA0XTsKLSAgICAgICAgICAgICAgICAqcCsr
ID0gaGV4RGlnaXRzW2MgJiAweEZdOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgZWxzZSBpZiAoYyAhPSAweDA5ICYmIGMgIT0gMHgwYSAmJiBjICE9IDB4MGQp
CisgICAgICAgICAgICAgICAgYXBwZW5kRXNjYXBlZENoYXIocCwgYyk7CisgICAgICAgIH0gZWxz
ZQogICAgICAgICAgICAgKnArKyA9IGM7CisgICAgfQorCisgICAgYnVmZmVyID0gcDsKK30KKwor
c3RhdGljIHZvaWQgZXNjYXBlQW5kQXBwZW5kRnJhZ21lbnQoY2hhciomIGJ1ZmZlciwgY29uc3Qg
Y2hhciogc3RyU3RhcnQsIHNpemVfdCBsZW5ndGgpCit7CisgICAgY2hhciogcCA9IGJ1ZmZlcjsK
KworICAgIGNvbnN0IGNoYXIqIHN0ciA9IHN0clN0YXJ0OworICAgIGNvbnN0IGNoYXIqIHN0ckVu
ZCA9IHN0clN0YXJ0ICsgbGVuZ3RoOworICAgIHdoaWxlIChzdHIgPCBzdHJFbmQpIHsKKyAgICAg
ICAgdW5zaWduZWQgY2hhciBjID0gKnN0cisrOworICAgICAgICBpZiAoYyA8IDB4MjApIHsKKyAg
ICAgICAgICAgIGFwcGVuZEVzY2FwZWRDaGFyKHAsIGMpOworICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgIH0KKyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSBkZWNvZGluZyBhbnkg
bm9uLWFzY2lpIGNoYXJhY3RlcnMgKGFib3ZlIDB4ODApLAorICAgICAgICAvLyBob3dldmVyIGF0
IHRoaXMgcG9pbnQgd2UgZG9uJ3QgaGF2ZSB0aGUgZnVsbCBVQ2hhciBhbnltb3JlLCBqdXN0IGEg
Y2hhci4KKyAgICAgICAgKnArKyA9IGM7CiAgICAgfQogCiAgICAgYnVmZmVyID0gcDsKQEAgLTEz
NTUsNyArMTM3OSw3IEBAIHZvaWQgS1VSTDo6cGFyc2UoY29uc3QgY2hhciogdXJsLCBjb25zdCBT
dHJpbmcqIG9yaWdpbmFsU3RyaW5nKQogICAgIC8vIGFkZCBmcmFnbWVudCwgZXNjYXBpbmcgYmFk
IGNoYXJhY3RlcnMKICAgICBpZiAoZnJhZ21lbnRFbmQgIT0gcXVlcnlFbmQpIHsKICAgICAgICAg
KnArKyA9ICcjJzsKLSAgICAgICAgYXBwZW5kRXNjYXBpbmdCYWRDaGFycyhwLCB1cmwgKyBmcmFn
bWVudFN0YXJ0LCBmcmFnbWVudEVuZCAtIGZyYWdtZW50U3RhcnQpOworICAgICAgICBlc2NhcGVB
bmRBcHBlbmRGcmFnbWVudChwLCB1cmwgKyBmcmFnbWVudFN0YXJ0LCBmcmFnbWVudEVuZCAtIGZy
YWdtZW50U3RhcnQpOwogICAgIH0KICAgICBtX2ZyYWdtZW50RW5kID0gcCAtIGJ1ZmZlci5kYXRh
KCk7CiAKQEAgLTE0MjEsMTEgKzE0NDUsOSBAQCBTdHJpbmcgZW5jb2RlV2l0aFVSTEVzY2FwZVNl
cXVlbmNlcyhjb25zdCBTdHJpbmcmIG5vdEVuY29kZWRTdHJpbmcpCiAgICAgY29uc3QgY2hhciog
c3RyRW5kID0gc3RyICsgYXNVVEY4Lmxlbmd0aCgpOwogICAgIHdoaWxlIChzdHIgPCBzdHJFbmQp
IHsKICAgICAgICAgdW5zaWduZWQgY2hhciBjID0gKnN0cisrOwotICAgICAgICBpZiAoaXNCYWRD
aGFyKGMpKSB7Ci0gICAgICAgICAgICAqcCsrID0gJyUnOwotICAgICAgICAgICAgKnArKyA9IGhl
eERpZ2l0c1tjID4+IDRdOwotICAgICAgICAgICAgKnArKyA9IGhleERpZ2l0c1tjICYgMHhGXTsK
LSAgICAgICAgfSBlbHNlCisgICAgICAgIGlmIChpc0JhZENoYXIoYykpCisgICAgICAgICAgICBh
cHBlbmRFc2NhcGVkQ2hhcihwLCBjKTsKKyAgICAgICAgZWxzZQogICAgICAgICAgICAgKnArKyA9
IGM7CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81452</attachid>
            <date>2011-02-06 23:40:08 -0800</date>
            <delta_ts>2011-02-08 16:47:35 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-53850-20110206234007.patch</filename>
            <type>text/plain</type>
            <size>12293</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3NzkxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDItMDYgIEVyaWMgU2Vp
ZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGgu
CisKKyAgICAgICAgTWFrZSBXZWJLaXQncyBmcmFnbWVudCBjYW5ub25pY2FsaXphdGlvbiBtYXRj
aCBvdGhlciBicm93c2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTM4NTAKKworICAgICAgICBUaGlzIGRvZXNuJ3QgbWFrZSB1cyBtYXRjaCBwZXJm
ZWN0bHksIGJ1dCBpdCBicmluZ3MgdXMgY2xvc2VyLgorCisgICAgICAgICogcGxhdGZvcm0vS1VS
TC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRFc2NhcGluZ0JhZENoYXJzKToKKyAgICAg
ICAgKFdlYkNvcmU6OmVzY2FwZUFuZEFwcGVuZEZyYWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OktVUkw6OnBhcnNlKToKKwogMjAxMS0wMi0wNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0tVUkwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0tVUkwuY3BwCShyZXZpc2lvbiA3Nzc5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0tVUkwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NjgsNiArOTY4LDE0IEBAIGJvb2wgS1VS
TDo6aXNMb2NhbEZpbGUoKSBjb25zdAogICAgIHJldHVybiBwcm90b2NvbElzKCJmaWxlIik7CiB9
CiAKKy8vIENhdXRpb246IFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgYm91bmRzIGNoZWNrLgorc3Rh
dGljIHZvaWQgYXBwZW5kRXNjYXBlZENoYXIoY2hhciomIGJ1ZmZlciwgY2hhciBjKQoreworICAg
ICpidWZmZXIrKyA9ICclJzsKKyAgICAqYnVmZmVyKysgPSBoZXhEaWdpdHNbYyA+PiA0XTsKKyAg
ICAqYnVmZmVyKysgPSBoZXhEaWdpdHNbYyAmIDB4Rl07Cit9CisKIHN0YXRpYyB2b2lkIGFwcGVu
ZEVzY2FwaW5nQmFkQ2hhcnMoY2hhciomIGJ1ZmZlciwgY29uc3QgY2hhciogc3RyU3RhcnQsIHNp
emVfdCBsZW5ndGgpCiB7CiAgICAgY2hhciogcCA9IGJ1ZmZlcjsKQEAgLTk3NywxNiArOTg1LDMw
IEBAIHN0YXRpYyB2b2lkIGFwcGVuZEVzY2FwaW5nQmFkQ2hhcnMoY2hhcioKICAgICB3aGlsZSAo
c3RyIDwgc3RyRW5kKSB7CiAgICAgICAgIHVuc2lnbmVkIGNoYXIgYyA9ICpzdHIrKzsKICAgICAg
ICAgaWYgKGlzQmFkQ2hhcihjKSkgewotICAgICAgICAgICAgaWYgKGMgPT0gJyUnIHx8IGMgPT0g
Jz8nKSB7CisgICAgICAgICAgICBpZiAoYyA9PSAnJScgfHwgYyA9PSAnPycpCiAgICAgICAgICAg
ICAgICAgKnArKyA9IGM7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGMgIT0gMHgwOSAmJiBjICE9
IDB4MGEgJiYgYyAhPSAweDBkKSB7Ci0gICAgICAgICAgICAgICAgKnArKyA9ICclJzsKLSAgICAg
ICAgICAgICAgICAqcCsrID0gaGV4RGlnaXRzW2MgPj4gNF07Ci0gICAgICAgICAgICAgICAgKnAr
KyA9IGhleERpZ2l0c1tjICYgMHhGXTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIGVsc2UgaWYgKGMgIT0gMHgwOSAmJiBjICE9IDB4MGEgJiYgYyAhPSAweDBk
KQorICAgICAgICAgICAgICAgIGFwcGVuZEVzY2FwZWRDaGFyKHAsIGMpOworICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgICpwKysgPSBjOworICAgIH0KKworICAgIGJ1ZmZlciA9IHA7Cit9CisK
K3N0YXRpYyB2b2lkIGVzY2FwZUFuZEFwcGVuZEZyYWdtZW50KGNoYXIqJiBidWZmZXIsIGNvbnN0
IGNoYXIqIHN0clN0YXJ0LCBzaXplX3QgbGVuZ3RoKQoreworICAgIGNoYXIqIHAgPSBidWZmZXI7
CisKKyAgICBjb25zdCBjaGFyKiBzdHIgPSBzdHJTdGFydDsKKyAgICBjb25zdCBjaGFyKiBzdHJF
bmQgPSBzdHJTdGFydCArIGxlbmd0aDsKKyAgICB3aGlsZSAoc3RyIDwgc3RyRW5kKSB7CisgICAg
ICAgIHVuc2lnbmVkIGNoYXIgYyA9ICpzdHIrKzsKKyAgICAgICAgaWYgKGMgPCAweDIwKSB7Cisg
ICAgICAgICAgICBhcHBlbmRFc2NhcGVkQ2hhcihwLCBjKTsKKyAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICB9CisgICAgICAgICpwKysgPSBjOwogICAgIH0KIAogICAgIGJ1ZmZlciA9IHA7
CkBAIC0xMzU1LDcgKzEzNzcsNyBAQCB2b2lkIEtVUkw6OnBhcnNlKGNvbnN0IGNoYXIqIHVybCwg
Y29uc3QgCiAgICAgLy8gYWRkIGZyYWdtZW50LCBlc2NhcGluZyBiYWQgY2hhcmFjdGVycwogICAg
IGlmIChmcmFnbWVudEVuZCAhPSBxdWVyeUVuZCkgewogICAgICAgICAqcCsrID0gJyMnOwotICAg
ICAgICBhcHBlbmRFc2NhcGluZ0JhZENoYXJzKHAsIHVybCArIGZyYWdtZW50U3RhcnQsIGZyYWdt
ZW50RW5kIC0gZnJhZ21lbnRTdGFydCk7CisgICAgICAgIGVzY2FwZUFuZEFwcGVuZEZyYWdtZW50
KHAsIHVybCArIGZyYWdtZW50U3RhcnQsIGZyYWdtZW50RW5kIC0gZnJhZ21lbnRTdGFydCk7CiAg
ICAgfQogICAgIG1fZnJhZ21lbnRFbmQgPSBwIC0gYnVmZmVyLmRhdGEoKTsKIApAQCAtMTQyMSwx
MSArMTQ0Myw5IEBAIFN0cmluZyBlbmNvZGVXaXRoVVJMRXNjYXBlU2VxdWVuY2VzKGNvbnMKICAg
ICBjb25zdCBjaGFyKiBzdHJFbmQgPSBzdHIgKyBhc1VURjgubGVuZ3RoKCk7CiAgICAgd2hpbGUg
KHN0ciA8IHN0ckVuZCkgewogICAgICAgICB1bnNpZ25lZCBjaGFyIGMgPSAqc3RyKys7Ci0gICAg
ICAgIGlmIChpc0JhZENoYXIoYykpIHsKLSAgICAgICAgICAgICpwKysgPSAnJSc7Ci0gICAgICAg
ICAgICAqcCsrID0gaGV4RGlnaXRzW2MgPj4gNF07Ci0gICAgICAgICAgICAqcCsrID0gaGV4RGln
aXRzW2MgJiAweEZdOwotICAgICAgICB9IGVsc2UKKyAgICAgICAgaWYgKGlzQmFkQ2hhcihjKSkK
KyAgICAgICAgICAgIGFwcGVuZEVzY2FwZWRDaGFyKHAsIGMpOworICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAqcCsrID0gYzsKICAgICB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3NzkxKQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIw
MTEtMDItMDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgTWFrZSBXZWJLaXQncyBmcmFnbWVudCBjYW5u
b25pY2FsaXphdGlvbiBtYXRjaCBvdGhlciBicm93c2VycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM4NTAKKworICAgICAgICAqIGZhc3QvdXJsL2Fu
Y2hvci1leHBlY3RlZC50eHQ6CisgICAgICAgICAtICJoZWxsbyB3b3JsZCI6IE91ciBuZXcgYmVo
YXZpb3IgaGVyZSBtYXRjaGVzIElFIGFuZCBDaHJvbWUsIGJ1dCBkaXZlcmdlcyBmcm9tIEZGLgor
ICAgICAgICAgLSBpbnZhbGlkIGNoYXIgYWZ0ZXIgImEiOiBJRSBkcm9wcyB0aGUgY2hhciwgRkYg
YW5kIFNhZmFyaSBlbmNvZGUgaXQsIENocm9tZSBsZWF2ZXMgaXQuICBOb3cgd2UgbWF0Y2ggQ2hy
b21lLgorICAgICAgICAgLSBUaGUgbGFzdCB0d28gdGVzdHMgaW52b2x2aW5nICMsIHdlIHdlcmUg
dGhlIG9kZCBtYW4gb3V0LiBOb3cgbWF0Y2ggYWxsIGJyb3dzZXJzLgorICAgICAgICAqIGZhc3Qv
dXJsL2ZpbGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAgLSBBZ2FpbiwgaW52YWxpZCBjaGFyLiAg
QmVmb3JlIHdlIG1hdGNoZWQgRkYsIG5vdyB3ZSBtYXRjaCBDaHJvbWUgYW5kIGFyZSBjbG9zZXIg
dG8gSUUuCisgICAgICAgICogZmFzdC91cmwvZmlsZS1odHRwLWJhc2UtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvdXJsL3NlZ21lbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgIC0gRG9u
J3QgcGVyY2VudCBlbmNvZGUgc3BhY2VzIGluIGZyYWdtZW50cyAodG8gbWF0Y2ggb3RoZXIgYnJv
d3NlcnMpCisgICAgICAgICAtIFdlYktpdCB3YXMgdGhlIG9ubHkgZW5naW5lIGVuY29kaW5nICMg
aW4gZnJhZ21lbnRzLgorICAgICAgICAqIGZhc3QvdXJsL3NlZ21lbnRzLWZyb20tZGF0YS11cmwt
ZXhwZWN0ZWQudHh0OgorCiAyMDExLTAyLTA2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29n
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHVuc2tpcCB0aGUgaHRtbDVsaWIgdGVzdCBh
Z2FpbiB3aGljaCBmYWlscyBmb3IgYW5vdGhlciByZWFzb24uIChTZWUgQnVnIDUzMDMwKQpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC91cmwvYW5jaG9yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L3VybC9hbmNob3ItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA3Nzc5
MSkKKysrIExheW91dFRlc3RzL2Zhc3QvdXJsL2FuY2hvci1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTMsMTQgKzMsMTQgQEAgVGVzdCBVUkxzIHRoYXQgaGF2ZSBhbiBhbmNob3IuCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotRkFJTCBjYW5vbmljYWxpemUoJ2h0dHA6Ly93
d3cuZXhhbXBsZS5jb20vI2hlbGxvLCB3b3JsZCcpIHNob3VsZCBiZSBodHRwOi8vd3d3LmV4YW1w
bGUuY29tLyNoZWxsbywgd29ybGQuIFdhcyBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNoZWxsbywl
MjB3b3JsZC4KLUZBSUwgY2Fub25pY2FsaXplKCdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyPDgsKp
Jykgc2hvdWxkIGJlIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vI8OCwqkuIFdhcyBodHRwOi8vd3d3
LmV4YW1wbGUuY29tLyMlQzIlQTkuCitQQVNTIGNhbm9uaWNhbGl6ZSgnaHR0cDovL3d3dy5leGFt
cGxlLmNvbS8jaGVsbG8sIHdvcmxkJykgaXMgJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vI2hlbGxv
LCB3b3JsZCcKK1BBU1MgY2Fub25pY2FsaXplKCdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyPDgsKp
JykgaXMgJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vI8OCwqknCiBGQUlMIGNhbm9uaWNhbGl6ZSgn
aHR0cDovL3d3dy5leGFtcGxlLmNvbS8j8JCMgHNzJykgc2hvdWxkIGJlIGh0dHA6Ly93d3cuZXhh
bXBsZS5jb20vI/CQjIBzcy4gV2FzIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIyUyNiUyMzY2MzA0
JTNCc3MuCiBQQVNTIGNhbm9uaWNhbGl6ZSgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jJTQxJWEn
KSBpcyAnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jJTQxJWEnCiBGQUlMIGNhbm9uaWNhbGl6ZSgn
aHR0cDovL3d3dy5leGFtcGxlLmNvbS8jXHVkODAwXHU1OTdkJykgc2hvdWxkIGJlIGh0dHA6Ly93
d3cuZXhhbXBsZS5jb20vI++/veWlvS4gV2FzIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIyUyNiUy
MzU1Mjk2JTNCJTI2JTIzMjI5MDklM0IuCiBGQUlMIGNhbm9uaWNhbGl6ZSgnaHR0cDovL3d3dy5l
eGFtcGxlLmNvbS8jYVx1RkREMCcpIHNob3VsZCBiZSBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNh
77eQLiBXYXMgaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jYSUyNiUyMzY0OTc2JTNCLgotRkFJTCBj
YW5vbmljYWxpemUoJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vI2FzZGYjcXdlcicpIHNob3VsZCBi
ZSBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNhc2RmI3F3ZXIuIFdhcyBodHRwOi8vd3d3LmV4YW1w
bGUuY29tLyNhc2RmJTIzcXdlci4KLUZBSUwgY2Fub25pY2FsaXplKCdodHRwOi8vd3d3LmV4YW1w
bGUuY29tLyMjYXNkZicpIHNob3VsZCBiZSBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyMjYXNkZi4g
V2FzIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIyUyM2FzZGYuCitQQVNTIGNhbm9uaWNhbGl6ZSgn
aHR0cDovL3d3dy5leGFtcGxlLmNvbS8jYXNkZiNxd2VyJykgaXMgJ2h0dHA6Ly93d3cuZXhhbXBs
ZS5jb20vI2FzZGYjcXdlcicKK1BBU1MgY2Fub25pY2FsaXplKCdodHRwOi8vd3d3LmV4YW1wbGUu
Y29tLyMjYXNkZicpIGlzICdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyMjYXNkZicKIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC91cmwvZmlsZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC91cmwvZmlsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDc3NzkxKQorKysgTGF5b3V0VGVz
dHMvZmFzdC91cmwvZmlsZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIwLDcgKzIw
LDcgQEAgUEFTUyBjYW5vbmljYWxpemUoJ2ZpbGU6Ly8vZm9vL2Jhci50eHQnKQogRkFJTCBjYW5v
bmljYWxpemUoJ0ZJTEU6L1xcL1xcNzpcXFxcLy9mb29cXGJhci5odG1sJykgc2hvdWxkIGJlIGZp
bGU6Ly83Oi8vLy9mb28vYmFyLmh0bWwuIFdhcyBmaWxlOi8vLy83Oi8vLy9mb28vYmFyLmh0bWwu
CiBGQUlMIGNhbm9uaWNhbGl6ZSgnZmlsZTpmaWxlci9ob21lXFxtZScpIHNob3VsZCBiZSBmaWxl
Oi8vZmlsZXIvaG9tZS9tZS4gV2FzIGZpbGU6Ly8vdG1wL21vY2svZmlsZXIvaG9tZS9tZS4KIEZB
SUwgY2Fub25pY2FsaXplKCdmaWxlOi8vL0M6L2Zvby8uLi8uLi8uLi9iYXIuaHRtbCcpIHNob3Vs
ZCBiZSBmaWxlOi8vL0M6L2Jhci5odG1sLiBXYXMgZmlsZTovLy9iYXIuaHRtbC4KLUZBSUwgY2Fu
b25pY2FsaXplKCdmaWxlOi8vL0M6L2FzZGYjXHhjMicpIHNob3VsZCBiZSBmaWxlOi8vL0M6L2Fz
ZGYjw6/Cv8K9LiBXYXMgZmlsZTovLy9DOi9hc2RmIyVDMi4KK0ZBSUwgY2Fub25pY2FsaXplKCdm
aWxlOi8vL0M6L2FzZGYjXHhjMicpIHNob3VsZCBiZSBmaWxlOi8vL0M6L2FzZGYjw6/Cv8K9LiBX
YXMgZmlsZTovLy9DOi9hc2RmI8OCLgogUEFTUyBjYW5vbmljYWxpemUoJ2ZpbGU6Ly8vaG9tZS9t
ZScpIGlzICdmaWxlOi8vL2hvbWUvbWUnCiBGQUlMIGNhbm9uaWNhbGl6ZSgnZmlsZTpjOlxcZm9v
XFxiYXIuaHRtbCcpIHNob3VsZCBiZSBmaWxlOi8vL2M6L2Zvby9iYXIuaHRtbC4gV2FzIGZpbGU6
Ly8vdG1wL21vY2svYzovZm9vL2Jhci5odG1sLgogRkFJTCBjYW5vbmljYWxpemUoJ2ZpbGU6Y3wv
L2Zvb1xcYmFyLmh0bWwnKSBzaG91bGQgYmUgZmlsZTovLy9jJTdDLy9mb28vYmFyLmh0bWwuIFdh
cyBmaWxlOi8vL3RtcC9tb2NrL2N8Ly9mb28vYmFyLmh0bWwuCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L3VybC9maWxlLWh0dHAtYmFzZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC91cmwvZmlsZS1odHRwLWJhc2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA3Nzc5
MSkKKysrIExheW91dFRlc3RzL2Zhc3QvdXJsL2ZpbGUtaHR0cC1iYXNlLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMjAsNyArMjAsNyBAQCBQQVNTIGNhbm9uaWNhbGl6ZSgnZmlsZTov
Ly9mb28vYmFyLnR4dCcpCiBGQUlMIGNhbm9uaWNhbGl6ZSgnRklMRTovXFwvXFw3OlxcXFwvL2Zv
b1xcYmFyLmh0bWwnKSBzaG91bGQgYmUgZmlsZTovLzc6Ly8vL2Zvby9iYXIuaHRtbC4gV2FzIGZp
bGU6Ly8vLzc6Ly8vL2Zvby9iYXIuaHRtbC4KIFBBU1MgY2Fub25pY2FsaXplKCdmaWxlOmZpbGVy
L2hvbWVcXG1lJykgaXMgJ2ZpbGU6Ly9maWxlci9ob21lL21lJwogRkFJTCBjYW5vbmljYWxpemUo
J2ZpbGU6Ly8vQzovZm9vLy4uLy4uLy4uL2Jhci5odG1sJykgc2hvdWxkIGJlIGZpbGU6Ly8vQzov
YmFyLmh0bWwuIFdhcyBmaWxlOi8vL2Jhci5odG1sLgotRkFJTCBjYW5vbmljYWxpemUoJ2ZpbGU6
Ly8vQzovYXNkZiNceGMyJykgc2hvdWxkIGJlIGZpbGU6Ly8vQzovYXNkZiPDr8K/wr0uIFdhcyBm
aWxlOi8vL0M6L2FzZGYjJUMyLgorRkFJTCBjYW5vbmljYWxpemUoJ2ZpbGU6Ly8vQzovYXNkZiNc
eGMyJykgc2hvdWxkIGJlIGZpbGU6Ly8vQzovYXNkZiPDr8K/wr0uIFdhcyBmaWxlOi8vL0M6L2Fz
ZGYjw4IuCiBQQVNTIGNhbm9uaWNhbGl6ZSgnZmlsZTovLy9ob21lL21lJykgaXMgJ2ZpbGU6Ly8v
aG9tZS9tZScKIEZBSUwgY2Fub25pY2FsaXplKCdmaWxlOmM6XFxmb29cXGJhci5odG1sJykgc2hv
dWxkIGJlIGZpbGU6Ly8vYzovZm9vL2Jhci5odG1sLiBXYXMgZmlsZTovL2M6L2Zvby9iYXIuaHRt
bC4KIEZBSUwgY2Fub25pY2FsaXplKCdmaWxlOmN8Ly9mb29cXGJhci5odG1sJykgc2hvdWxkIGJl
IGZpbGU6Ly8vYyU3Qy8vZm9vL2Jhci5odG1sLiBXYXMgZmlsZTovL2N8Ly9mb28vYmFyLmh0bWwu
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3VybC9zZWdtZW50cy1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC91cmwvc2VnbWVudHMtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiA3Nzc5MSkKKysrIExheW91dFRlc3RzL2Zhc3QvdXJsL3NlZ21lbnRzLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAgUEFTUyBzZWdtZW50cygnaHR0cDpmb28u
Y29tJykgaXMgJ1siaHR0cAogUEFTUyBzZWdtZW50cygnXHQgICA6Zm9vLmNvbSAgIFxuJykgaXMg
J1siaHR0cDoiLCJleGFtcGxlLm9yZyIsIjAiLCIvZm9vLzpmb28uY29tIiwiIiwiIl0nCiBQQVNT
IHNlZ21lbnRzKCcgZm9vLmNvbSAgJykgaXMgJ1siaHR0cDoiLCJleGFtcGxlLm9yZyIsIjAiLCIv
Zm9vL2Zvby5jb20iLCIiLCIiXScKIFBBU1Mgc2VnbWVudHMoJ2E6XHQgZm9vLmNvbScpIGlzICdb
ImE6IiwiIiwiMCIsIiBmb28uY29tIiwiIiwiIl0nCi1GQUlMIHNlZ21lbnRzKCdodHRwOi8vZjoy
MS8gYiA/IGQgIyBlICcpIHNob3VsZCBiZSBbImh0dHA6IiwiZiIsIjIxIiwiLyUyMGIlMjAiLCI/
JTIwZCUyMCIsIiMgZSJdLiBXYXMgWyJodHRwOiIsImYiLCIyMSIsIi8gYiAiLCI/JTIwZCUyMCIs
IiMlMjBlIl0uCitGQUlMIHNlZ21lbnRzKCdodHRwOi8vZjoyMS8gYiA/IGQgIyBlICcpIHNob3Vs
ZCBiZSBbImh0dHA6IiwiZiIsIjIxIiwiLyUyMGIlMjAiLCI/JTIwZCUyMCIsIiMgZSJdLiBXYXMg
WyJodHRwOiIsImYiLCIyMSIsIi8gYiAiLCI/JTIwZCUyMCIsIiMgZSJdLgogUEFTUyBzZWdtZW50
cygnaHR0cDovL2Y6L2MnKSBpcyAnWyJodHRwOiIsImYiLCIwIiwiL2MiLCIiLCIiXScKIFBBU1Mg
c2VnbWVudHMoJ2h0dHA6Ly9mOjAvYycpIGlzICdbImh0dHA6IiwiZiIsIjAiLCIvYyIsIiIsIiJd
JwogUEFTUyBzZWdtZW50cygnaHR0cDovL2Y6MDAwMDAwMDAwMDAwMDAvYycpIGlzICdbImh0dHA6
IiwiZiIsIjAiLCIvYyIsIiIsIiJdJwpAQCAtNTUsNyArNTUsNyBAQCBQQVNTIHNlZ21lbnRzKCdm
b286Ly8vLy8vLy8vYmFyLmNvbS8nKSBpCiBQQVNTIHNlZ21lbnRzKCdmb286Ly8vLzovLy8vLycp
IGlzICdbImZvbzoiLCIiLCIwIiwiLy8vLzovLy8vLyIsIiIsIiJdJwogUEFTUyBzZWdtZW50cygn
YzovZm9vJykgaXMgJ1siYzoiLCIiLCIwIiwiL2ZvbyIsIiIsIiJdJwogUEFTUyBzZWdtZW50cygn
Ly9mb28vYmFyJykgaXMgJ1siaHR0cDoiLCJmb28iLCIwIiwiL2JhciIsIiIsIiJdJwotRkFJTCBz
ZWdtZW50cygnaHR0cDovL2Zvby9wYXRoO2E/P2UjZiNnJykgc2hvdWxkIGJlIFsiaHR0cDoiLCJm
b28iLCIwIiwiL3BhdGg7YSIsIj8/ZSIsIiNmI2ciXS4gV2FzIFsiaHR0cDoiLCJmb28iLCIwIiwi
L3BhdGg7YSIsIj8/ZSIsIiNmJTIzZyJdLgorUEFTUyBzZWdtZW50cygnaHR0cDovL2Zvby9wYXRo
O2E/P2UjZiNnJykgaXMgJ1siaHR0cDoiLCJmb28iLCIwIiwiL3BhdGg7YSIsIj8/ZSIsIiNmI2ci
XScKIFBBU1Mgc2VnbWVudHMoJ2h0dHA6Ly9mb28vYWJjZD9lZmdoP2lqa2wnKSBpcyAnWyJodHRw
OiIsImZvbyIsIjAiLCIvYWJjZCIsIj9lZmdoP2lqa2wiLCIiXScKIFBBU1Mgc2VnbWVudHMoJ2h0
dHA6Ly9mb28vYWJjZCNmb28/YmFyJykgaXMgJ1siaHR0cDoiLCJmb28iLCIwIiwiL2FiY2QiLCIi
LCIjZm9vP2JhciJdJwogUEFTUyBzZWdtZW50cygnWzYxOjI0Ojc0XTo5OCcpIGlzICdbImh0dHA6
IiwiZXhhbXBsZS5vcmciLCIwIiwiL2Zvby9bNjE6MjQ6NzRdOjk4IiwiIiwiIl0nCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L3VybC9zZWdtZW50cy1mcm9tLWRhdGEtdXJsLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3VybC9zZWdtZW50cy1mcm9tLWRhdGEtdXJs
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNzc3OTEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3VybC9z
ZWdtZW50cy1mcm9tLWRhdGEtdXJsLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtOCw3
ICs4LDcgQEAgRkFJTCBzZWdtZW50cygnaHR0cDpmb28uY29tJykgc2hvdWxkIGJlIAogUEFTUyBz
ZWdtZW50cygnXHQgICA6Zm9vLmNvbSAgIFxuJykgaXMgJ1siOiIsIiIsIjAiLCIiLCIiLCIiXScK
IFBBU1Mgc2VnbWVudHMoJyBmb28uY29tICAnKSBpcyAnWyI6IiwiIiwiMCIsIiIsIiIsIiJdJwog
UEFTUyBzZWdtZW50cygnYTpcdCBmb28uY29tJykgaXMgJ1siYToiLCIiLCIwIiwiIGZvby5jb20i
LCIiLCIiXScKLUZBSUwgc2VnbWVudHMoJ2h0dHA6Ly9mOjIxLyBiID8gZCAjIGUgJykgc2hvdWxk
IGJlIFsiaHR0cDoiLCJmIiwiMjEiLCIvJTIwYiUyMCIsIj8lMjBkJTIwIiwiIyBlIl0uIFdhcyBb
Imh0dHA6IiwiZiIsIjIxIiwiLyBiICIsIj8lMjBkJTIwIiwiIyUyMGUiXS4KK0ZBSUwgc2VnbWVu
dHMoJ2h0dHA6Ly9mOjIxLyBiID8gZCAjIGUgJykgc2hvdWxkIGJlIFsiaHR0cDoiLCJmIiwiMjEi
LCIvJTIwYiUyMCIsIj8lMjBkJTIwIiwiIyBlIl0uIFdhcyBbImh0dHA6IiwiZiIsIjIxIiwiLyBi
ICIsIj8lMjBkJTIwIiwiIyBlIl0uCiBQQVNTIHNlZ21lbnRzKCdodHRwOi8vZjovYycpIGlzICdb
Imh0dHA6IiwiZiIsIjAiLCIvYyIsIiIsIiJdJwogUEFTUyBzZWdtZW50cygnaHR0cDovL2Y6MC9j
JykgaXMgJ1siaHR0cDoiLCJmIiwiMCIsIi9jIiwiIiwiIl0nCiBQQVNTIHNlZ21lbnRzKCdodHRw
Oi8vZjowMDAwMDAwMDAwMDAwMC9jJykgaXMgJ1siaHR0cDoiLCJmIiwiMCIsIi9jIiwiIiwiIl0n
CkBAIC01NSw3ICs1NSw3IEBAIFBBU1Mgc2VnbWVudHMoJ2ZvbzovLy8vLy8vLy9iYXIuY29tLycp
IGkKIFBBU1Mgc2VnbWVudHMoJ2ZvbzovLy8vOi8vLy8vJykgaXMgJ1siZm9vOiIsIiIsIjAiLCIv
Ly8vOi8vLy8vIiwiIiwiIl0nCiBQQVNTIHNlZ21lbnRzKCdjOi9mb28nKSBpcyAnWyJjOiIsIiIs
IjAiLCIvZm9vIiwiIiwiIl0nCiBQQVNTIHNlZ21lbnRzKCcvL2Zvby9iYXInKSBpcyAnWyI6Iiwi
IiwiMCIsIiIsIiIsIiJdJwotRkFJTCBzZWdtZW50cygnaHR0cDovL2Zvby9wYXRoO2E/P2UjZiNn
Jykgc2hvdWxkIGJlIFsiaHR0cDoiLCJmb28iLCIwIiwiL3BhdGg7YSIsIj8/ZSIsIiNmI2ciXS4g
V2FzIFsiaHR0cDoiLCJmb28iLCIwIiwiL3BhdGg7YSIsIj8/ZSIsIiNmJTIzZyJdLgorUEFTUyBz
ZWdtZW50cygnaHR0cDovL2Zvby9wYXRoO2E/P2UjZiNnJykgaXMgJ1siaHR0cDoiLCJmb28iLCIw
IiwiL3BhdGg7YSIsIj8/ZSIsIiNmI2ciXScKIFBBU1Mgc2VnbWVudHMoJ2h0dHA6Ly9mb28vYWJj
ZD9lZmdoP2lqa2wnKSBpcyAnWyJodHRwOiIsImZvbyIsIjAiLCIvYWJjZCIsIj9lZmdoP2lqa2wi
LCIiXScKIFBBU1Mgc2VnbWVudHMoJ2h0dHA6Ly9mb28vYWJjZCNmb28/YmFyJykgaXMgJ1siaHR0
cDoiLCJmb28iLCIwIiwiL2FiY2QiLCIiLCIjZm9vP2JhciJdJwogRkFJTCBzZWdtZW50cygnWzYx
OjI0Ojc0XTo5OCcpIHNob3VsZCBiZSBbImRhdGE6IiwiIiwiMCIsInRleHQvWzYxOjI0Ojc0XTo5
OCIsIiIsIiJdLiBXYXMgWyI6IiwiIiwiMCIsIiIsIiIsIiJdLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81716</attachid>
            <date>2011-02-08 16:47:39 -0800</date>
            <delta_ts>2011-02-08 21:39:59 -0800</delta_ts>
            <desc>a more conservative patch, not quite ready</desc>
            <filename>bug-53850-20110208164738.patch</filename>
            <type>text/plain</type>
            <size>11244</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzc5OTIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYjdhMTZjN2U0NjI3NGUwZmI2MzU4
NmFhNjFjOTczNTUxMzE2MDUyLi4xMzc2YzVlZDQxNWMzNTFlMDZhY2U4YzRmNjhlNjBjZjk1ZDhl
YWU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDItMDcgIEVyaWMgU2VpZGVsICA8ZXJp
Y0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAg
ICAgTWFrZSBXZWJLaXQncyBmcmFnbWVudCBjYW5ub25pY2FsaXphdGlvbiBtYXRjaCBvdGhlciBi
cm93c2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTM4NTAKKworICAgICAgICAqIGZhc3QvdXJsL2FuY2hvci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICAtICJoZWxsbyB3b3JsZCI6IE91ciBuZXcgYmVoYXZpb3IgaGVyZSBtYXRjaGVzIElFIGFuZCBD
aHJvbWUsIGJ1dCBkaXZlcmdlcyBmcm9tIEZGLgorICAgICAgICAgLSBpbnZhbGlkIGNoYXIgYWZ0
ZXIgImEiOiBJRSBkcm9wcyB0aGUgY2hhciwgRkYgYW5kIFNhZmFyaSBlbmNvZGUgaXQsIENocm9t
ZSBsZWF2ZXMgaXQuICBOb3cgd2UgbWF0Y2ggQ2hyb21lLgorICAgICAgICAgLSBUaGUgbGFzdCB0
d28gdGVzdHMgaW52b2x2aW5nICMsIHdlIHdlcmUgdGhlIG9kZCBtYW4gb3V0LiBOb3cgbWF0Y2gg
YWxsIGJyb3dzZXJzLgorICAgICAgICAqIGZhc3QvdXJsL2ZpbGUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAgLSBBZ2FpbiwgaW52YWxpZCBjaGFyLiAgQmVmb3JlIHdlIG1hdGNoZWQgRkYsIG5vdyB3
ZSBtYXRjaCBDaHJvbWUgYW5kIGFyZSBjbG9zZXIgdG8gSUUuCisgICAgICAgICogZmFzdC91cmwv
ZmlsZS1odHRwLWJhc2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvdXJsL3NlZ21lbnRz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgIC0gRG9uJ3QgcGVyY2VudCBlbmNvZGUgc3BhY2VzIGlu
IGZyYWdtZW50cyAodG8gbWF0Y2ggb3RoZXIgYnJvd3NlcnMpCisgICAgICAgICAtIFdlYktpdCB3
YXMgdGhlIG9ubHkgZW5naW5lIGVuY29kaW5nICMgaW4gZnJhZ21lbnRzLgorICAgICAgICAqIGZh
c3QvdXJsL3NlZ21lbnRzLWZyb20tZGF0YS11cmwtZXhwZWN0ZWQudHh0OgorCiAyMDExLTAyLTA4
ICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBbnR0aSBLb2l2aXN0by4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2Fu
Y2hvci1nZXRQYXJhbWV0ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vYW5j
aG9yLWdldFBhcmFtZXRlci1leHBlY3RlZC50eHQKaW5kZXggNmYwMjUzZjU5ZTEwMWEwZDU3NjM4
ZTVlMDAzMDI3OGU2ZmVkOGI2Zi4uMmQ4ZjVkNzNlZjc5NDVjZTM5YTM0MTQzMDI0YzMxODk4NjBh
OGY4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vYW5jaG9yLWdldFBhcmFtZXRl
ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vYW5jaG9yLWdldFBhcmFt
ZXRlci1leHBlY3RlZC50eHQKQEAgLTE2LDUgKzE2LDUgQEAgaHR0cDovL2V4YW1wbGUuY29tL2Zv
by9iYXI/YT1iPSYgKGIpID0+CiBodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj8mYT1iIChhKSA9
PiBiCiBodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj8mYT1iJiAoYSkgPT4gYgogaHR0cDovL2V4
YW1wbGUuY29tL2Zvby9iYXI/YT1iI3h5eiAoYSkgPT4gYgotaHR0cDovL2V4YW1wbGUuY29tL2Zv
by9iYXI/I2E9YiUyM3h5eiAoYSkgPT4gCitodHRwOi8vZXhhbXBsZS5jb20vZm9vL2Jhcj8jYT1i
I3h5eiAoYSkgPT4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdXJsL2FuY2hvci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3VybC9hbmNob3ItZXhwZWN0ZWQudHh0Cmlu
ZGV4IDE1ZGM4NGYyZGMwM2M5NDk3NmZiYjY4YWVkY2VlOTQ0YmI3YzY1YWEuLmFmZTI1MzA5Mjk4
YmE1NDRhZDg2NWM3NThjYThhMWMzODAyYzAzZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvdXJsL2FuY2hvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC91cmwvYW5j
aG9yLWV4cGVjdGVkLnR4dApAQCAtMywxNCArMywxNCBAQCBUZXN0IFVSTHMgdGhhdCBoYXZlIGFu
IGFuY2hvci4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1GQUlMIGNhbm9uaWNhbGl6
ZSgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jaGVsbG8sIHdvcmxkJykgc2hvdWxkIGJlIGh0dHA6
Ly93d3cuZXhhbXBsZS5jb20vI2hlbGxvLCB3b3JsZC4gV2FzIGh0dHA6Ly93d3cuZXhhbXBsZS5j
b20vI2hlbGxvLCUyMHdvcmxkLgorUEFTUyBjYW5vbmljYWxpemUoJ2h0dHA6Ly93d3cuZXhhbXBs
ZS5jb20vI2hlbGxvLCB3b3JsZCcpIGlzICdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNoZWxsbywg
d29ybGQnCiBGQUlMIGNhbm9uaWNhbGl6ZSgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jw4LCqScp
IHNob3VsZCBiZSBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyPDgsKpLiBXYXMgaHR0cDovL3d3dy5l
eGFtcGxlLmNvbS8jJUMyJUE5LgogRkFJTCBjYW5vbmljYWxpemUoJ2h0dHA6Ly93d3cuZXhhbXBs
ZS5jb20vI/CQjIBzcycpIHNob3VsZCBiZSBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyPwkIyAc3Mu
IFdhcyBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyMlMjYlMjM2NjMwNCUzQnNzLgogUEFTUyBjYW5v
bmljYWxpemUoJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vIyU0MSVhJykgaXMgJ2h0dHA6Ly93d3cu
ZXhhbXBsZS5jb20vIyU0MSVhJwogRkFJTCBjYW5vbmljYWxpemUoJ2h0dHA6Ly93d3cuZXhhbXBs
ZS5jb20vI1x1ZDgwMFx1NTk3ZCcpIHNob3VsZCBiZSBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyPv
v73lpb0uIFdhcyBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyMlMjYlMjM1NTI5NiUzQiUyNiUyMzIy
OTA5JTNCLgogRkFJTCBjYW5vbmljYWxpemUoJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vI2FcdUZE
RDAnKSBzaG91bGQgYmUgaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jYe+3kC4gV2FzIGh0dHA6Ly93
d3cuZXhhbXBsZS5jb20vI2ElMjYlMjM2NDk3NiUzQi4KLUZBSUwgY2Fub25pY2FsaXplKCdodHRw
Oi8vd3d3LmV4YW1wbGUuY29tLyNhc2RmI3F3ZXInKSBzaG91bGQgYmUgaHR0cDovL3d3dy5leGFt
cGxlLmNvbS8jYXNkZiNxd2VyLiBXYXMgaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jYXNkZiUyM3F3
ZXIuCi1GQUlMIGNhbm9uaWNhbGl6ZSgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jI2FzZGYnKSBz
aG91bGQgYmUgaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jI2FzZGYuIFdhcyBodHRwOi8vd3d3LmV4
YW1wbGUuY29tLyMlMjNhc2RmLgorUEFTUyBjYW5vbmljYWxpemUoJ2h0dHA6Ly93d3cuZXhhbXBs
ZS5jb20vI2FzZGYjcXdlcicpIGlzICdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNhc2RmI3F3ZXIn
CitQQVNTIGNhbm9uaWNhbGl6ZSgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jI2FzZGYnKSBpcyAn
aHR0cDovL3d3dy5leGFtcGxlLmNvbS8jI2FzZGYnCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdXJs
L3NlZ21lbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdXJsL3NlZ21lbnRzLWV4
cGVjdGVkLnR4dAppbmRleCAyZGE2OTEyYzcyNjAxNjlkNDEzOWM3NjY2ZmRmODg1YmY0ZjJiNTJh
Li5mNTNmYmIxMGU1YWMzYzY3MTgxMmEzYjcwN2M1MDIyNGRlYjQ2NDNlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3VybC9zZWdtZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC91cmwvc2VnbWVudHMtZXhwZWN0ZWQudHh0CkBAIC04LDcgKzgsNyBAQCBQQVNTIHNl
Z21lbnRzKCdodHRwOmZvby5jb20nKSBpcyAnWyJodHRwOiIsImV4YW1wbGUub3JnIiwiMCIsIi9m
b28vZm9vLmNvbSIsIiIsIgogUEFTUyBzZWdtZW50cygnXHQgICA6Zm9vLmNvbSAgIFxuJykgaXMg
J1siaHR0cDoiLCJleGFtcGxlLm9yZyIsIjAiLCIvZm9vLzpmb28uY29tIiwiIiwiIl0nCiBQQVNT
IHNlZ21lbnRzKCcgZm9vLmNvbSAgJykgaXMgJ1siaHR0cDoiLCJleGFtcGxlLm9yZyIsIjAiLCIv
Zm9vL2Zvby5jb20iLCIiLCIiXScKIFBBU1Mgc2VnbWVudHMoJ2E6XHQgZm9vLmNvbScpIGlzICdb
ImE6IiwiIiwiMCIsIiBmb28uY29tIiwiIiwiIl0nCi1GQUlMIHNlZ21lbnRzKCdodHRwOi8vZjoy
MS8gYiA/IGQgIyBlICcpIHNob3VsZCBiZSBbImh0dHA6IiwiZiIsIjIxIiwiLyUyMGIlMjAiLCI/
JTIwZCUyMCIsIiMgZSJdLiBXYXMgWyJodHRwOiIsImYiLCIyMSIsIi8gYiAiLCI/JTIwZCUyMCIs
IiMlMjBlIl0uCitGQUlMIHNlZ21lbnRzKCdodHRwOi8vZjoyMS8gYiA/IGQgIyBlICcpIHNob3Vs
ZCBiZSBbImh0dHA6IiwiZiIsIjIxIiwiLyUyMGIlMjAiLCI/JTIwZCUyMCIsIiMgZSJdLiBXYXMg
WyJodHRwOiIsImYiLCIyMSIsIi8gYiAiLCI/JTIwZCUyMCIsIiMgZSJdLgogUEFTUyBzZWdtZW50
cygnaHR0cDovL2Y6L2MnKSBpcyAnWyJodHRwOiIsImYiLCIwIiwiL2MiLCIiLCIiXScKIFBBU1Mg
c2VnbWVudHMoJ2h0dHA6Ly9mOjAvYycpIGlzICdbImh0dHA6IiwiZiIsIjAiLCIvYyIsIiIsIiJd
JwogUEFTUyBzZWdtZW50cygnaHR0cDovL2Y6MDAwMDAwMDAwMDAwMDAvYycpIGlzICdbImh0dHA6
IiwiZiIsIjAiLCIvYyIsIiIsIiJdJwpAQCAtNTUsNyArNTUsNyBAQCBQQVNTIHNlZ21lbnRzKCdm
b286Ly8vLy8vLy8vYmFyLmNvbS8nKSBpcyAnWyJmb286IiwiIiwiMCIsIi8vLy8vLy8vL2Jhci5j
b20vIiwiIgogUEFTUyBzZWdtZW50cygnZm9vOi8vLy86Ly8vLy8nKSBpcyAnWyJmb286IiwiIiwi
MCIsIi8vLy86Ly8vLy8iLCIiLCIiXScKIFBBU1Mgc2VnbWVudHMoJ2M6L2ZvbycpIGlzICdbImM6
IiwiIiwiMCIsIi9mb28iLCIiLCIiXScKIFBBU1Mgc2VnbWVudHMoJy8vZm9vL2JhcicpIGlzICdb
Imh0dHA6IiwiZm9vIiwiMCIsIi9iYXIiLCIiLCIiXScKLUZBSUwgc2VnbWVudHMoJ2h0dHA6Ly9m
b28vcGF0aDthPz9lI2YjZycpIHNob3VsZCBiZSBbImh0dHA6IiwiZm9vIiwiMCIsIi9wYXRoO2Ei
LCI/P2UiLCIjZiNnIl0uIFdhcyBbImh0dHA6IiwiZm9vIiwiMCIsIi9wYXRoO2EiLCI/P2UiLCIj
ZiUyM2ciXS4KK1BBU1Mgc2VnbWVudHMoJ2h0dHA6Ly9mb28vcGF0aDthPz9lI2YjZycpIGlzICdb
Imh0dHA6IiwiZm9vIiwiMCIsIi9wYXRoO2EiLCI/P2UiLCIjZiNnIl0nCiBQQVNTIHNlZ21lbnRz
KCdodHRwOi8vZm9vL2FiY2Q/ZWZnaD9pamtsJykgaXMgJ1siaHR0cDoiLCJmb28iLCIwIiwiL2Fi
Y2QiLCI/ZWZnaD9pamtsIiwiIl0nCiBQQVNTIHNlZ21lbnRzKCdodHRwOi8vZm9vL2FiY2QjZm9v
P2JhcicpIGlzICdbImh0dHA6IiwiZm9vIiwiMCIsIi9hYmNkIiwiIiwiI2Zvbz9iYXIiXScKIFBB
U1Mgc2VnbWVudHMoJ1s2MToyNDo3NF06OTgnKSBpcyAnWyJodHRwOiIsImV4YW1wbGUub3JnIiwi
MCIsIi9mb28vWzYxOjI0Ojc0XTo5OCIsIiIsIiJdJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC91cmwvc2VnbWVudHMtZnJvbS1kYXRhLXVybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3VybC9zZWdtZW50cy1mcm9tLWRhdGEtdXJsLWV4cGVjdGVkLnR4dAppbmRleCA2ZTE4
NTNlMGI2MTdiYjA0MzVmMGQyYzVhNGIyYjhmN2VjODBhNDI3Li42YWU5M2I4MzA4OWRjNGJmZGMy
Y2M1MDcyMDk0OGEzZjljMjVjMzhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3VybC9z
ZWdtZW50cy1mcm9tLWRhdGEtdXJsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3VybC9zZWdtZW50cy1mcm9tLWRhdGEtdXJsLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDcgQEAg
RkFJTCBzZWdtZW50cygnaHR0cDpmb28uY29tJykgc2hvdWxkIGJlIFsiaHR0cDoiLCJmb28uY29t
IiwiMCIsIi8iLCIiLCIiXS4gV2FzIFsKIFBBU1Mgc2VnbWVudHMoJ1x0ICAgOmZvby5jb20gICBc
bicpIGlzICdbIjoiLCIiLCIwIiwiIiwiIiwiIl0nCiBQQVNTIHNlZ21lbnRzKCcgZm9vLmNvbSAg
JykgaXMgJ1siOiIsIiIsIjAiLCIiLCIiLCIiXScKIFBBU1Mgc2VnbWVudHMoJ2E6XHQgZm9vLmNv
bScpIGlzICdbImE6IiwiIiwiMCIsIiBmb28uY29tIiwiIiwiIl0nCi1GQUlMIHNlZ21lbnRzKCdo
dHRwOi8vZjoyMS8gYiA/IGQgIyBlICcpIHNob3VsZCBiZSBbImh0dHA6IiwiZiIsIjIxIiwiLyUy
MGIlMjAiLCI/JTIwZCUyMCIsIiMgZSJdLiBXYXMgWyJodHRwOiIsImYiLCIyMSIsIi8gYiAiLCI/
JTIwZCUyMCIsIiMlMjBlIl0uCitGQUlMIHNlZ21lbnRzKCdodHRwOi8vZjoyMS8gYiA/IGQgIyBl
ICcpIHNob3VsZCBiZSBbImh0dHA6IiwiZiIsIjIxIiwiLyUyMGIlMjAiLCI/JTIwZCUyMCIsIiMg
ZSJdLiBXYXMgWyJodHRwOiIsImYiLCIyMSIsIi8gYiAiLCI/JTIwZCUyMCIsIiMgZSJdLgogUEFT
UyBzZWdtZW50cygnaHR0cDovL2Y6L2MnKSBpcyAnWyJodHRwOiIsImYiLCIwIiwiL2MiLCIiLCIi
XScKIFBBU1Mgc2VnbWVudHMoJ2h0dHA6Ly9mOjAvYycpIGlzICdbImh0dHA6IiwiZiIsIjAiLCIv
YyIsIiIsIiJdJwogUEFTUyBzZWdtZW50cygnaHR0cDovL2Y6MDAwMDAwMDAwMDAwMDAvYycpIGlz
ICdbImh0dHA6IiwiZiIsIjAiLCIvYyIsIiIsIiJdJwpAQCAtNTUsNyArNTUsNyBAQCBQQVNTIHNl
Z21lbnRzKCdmb286Ly8vLy8vLy8vYmFyLmNvbS8nKSBpcyAnWyJmb286IiwiIiwiMCIsIi8vLy8v
Ly8vL2Jhci5jb20vIiwiIgogUEFTUyBzZWdtZW50cygnZm9vOi8vLy86Ly8vLy8nKSBpcyAnWyJm
b286IiwiIiwiMCIsIi8vLy86Ly8vLy8iLCIiLCIiXScKIFBBU1Mgc2VnbWVudHMoJ2M6L2Zvbycp
IGlzICdbImM6IiwiIiwiMCIsIi9mb28iLCIiLCIiXScKIFBBU1Mgc2VnbWVudHMoJy8vZm9vL2Jh
cicpIGlzICdbIjoiLCIiLCIwIiwiIiwiIiwiIl0nCi1GQUlMIHNlZ21lbnRzKCdodHRwOi8vZm9v
L3BhdGg7YT8/ZSNmI2cnKSBzaG91bGQgYmUgWyJodHRwOiIsImZvbyIsIjAiLCIvcGF0aDthIiwi
Pz9lIiwiI2YjZyJdLiBXYXMgWyJodHRwOiIsImZvbyIsIjAiLCIvcGF0aDthIiwiPz9lIiwiI2Yl
MjNnIl0uCitQQVNTIHNlZ21lbnRzKCdodHRwOi8vZm9vL3BhdGg7YT8/ZSNmI2cnKSBpcyAnWyJo
dHRwOiIsImZvbyIsIjAiLCIvcGF0aDthIiwiPz9lIiwiI2YjZyJdJwogUEFTUyBzZWdtZW50cygn
aHR0cDovL2Zvby9hYmNkP2VmZ2g/aWprbCcpIGlzICdbImh0dHA6IiwiZm9vIiwiMCIsIi9hYmNk
IiwiP2VmZ2g/aWprbCIsIiJdJwogUEFTUyBzZWdtZW50cygnaHR0cDovL2Zvby9hYmNkI2Zvbz9i
YXInKSBpcyAnWyJodHRwOiIsImZvbyIsIjAiLCIvYWJjZCIsIiIsIiNmb28/YmFyIl0nCiBGQUlM
IHNlZ21lbnRzKCdbNjE6MjQ6NzRdOjk4Jykgc2hvdWxkIGJlIFsiZGF0YToiLCIiLCIwIiwidGV4
dC9bNjE6MjQ6NzRdOjk4IiwiIiwiIl0uIFdhcyBbIjoiLCIiLCIwIiwiIiwiIiwiIl0uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZjQ2MmUxOWE5NjNmZDExYWFiNmI0MzE0MWE5ODRjOTE1NjQ3OWIxNS4uZTFjNDc5
ODBhMGRjZGQ3NjYwNThjNWJhMzYzMGM0MzA5OTZlOGRhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDExLTAyLTA3ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIE1ha2UgV2ViS2l0J3MgZnJh
Z21lbnQgY2Fubm9uaWNhbGl6YXRpb24gbWF0Y2ggb3RoZXIgYnJvd3NlcnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzODUwCisKKyAgICAgICAgVGhp
cyBkb2Vzbid0IG1ha2UgdXMgbWF0Y2ggcGVyZmVjdGx5LCBidXQgaXQgYnJpbmdzIHVzIGNsb3Nl
ci4KKworICAgICAgICAqIHBsYXRmb3JtL0tVUkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBw
ZW5kRXNjYXBpbmdCYWRDaGFycyk6CisgICAgICAgIChXZWJDb3JlOjplc2NhcGVBbmRBcHBlbmRG
cmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpLVVJMOjpwYXJzZSk6CisKIDIwMTEtMDItMDgg
IFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFudHRpIEtvaXZpc3RvLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
S1VSTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmNwcAppbmRleCAzNWE0OGU5
YWQ0ZGY1Y2QxNjA0ZTVmMmQxMjIxY2I5MDMzYjg5Y2M4Li5kOTMzY2E4MTE1OGIxNDkyYzQ5OWVk
OThhNDcxYjM3MWQ2NGE3ZDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9L
VVJMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmNwcApAQCAtOTY4LDYg
Kzk2OCwxNCBAQCBib29sIEtVUkw6OmlzTG9jYWxGaWxlKCkgY29uc3QKICAgICByZXR1cm4gcHJv
dG9jb2xJcygiZmlsZSIpOwogfQogCisvLyBDYXV0aW9uOiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90
IGJvdW5kcyBjaGVjay4KK3N0YXRpYyB2b2lkIGFwcGVuZEVzY2FwZWRDaGFyKGNoYXIqJiBidWZm
ZXIsIHVuc2lnbmVkIGNoYXIgYykKK3sKKyAgICAqYnVmZmVyKysgPSAnJSc7CisgICAgKmJ1ZmZl
cisrID0gaGV4RGlnaXRzW2MgPj4gNF07CisgICAgKmJ1ZmZlcisrID0gaGV4RGlnaXRzW2MgJiAw
eEZdOworfQorCiBzdGF0aWMgdm9pZCBhcHBlbmRFc2NhcGluZ0JhZENoYXJzKGNoYXIqJiBidWZm
ZXIsIGNvbnN0IGNoYXIqIHN0clN0YXJ0LCBzaXplX3QgbGVuZ3RoKQogewogICAgIGNoYXIqIHAg
PSBidWZmZXI7CkBAIC05NzcsMTYgKzk4NSwzMiBAQCBzdGF0aWMgdm9pZCBhcHBlbmRFc2NhcGlu
Z0JhZENoYXJzKGNoYXIqJiBidWZmZXIsIGNvbnN0IGNoYXIqIHN0clN0YXJ0LCBzaXplX3QgbAog
ICAgIHdoaWxlIChzdHIgPCBzdHJFbmQpIHsKICAgICAgICAgdW5zaWduZWQgY2hhciBjID0gKnN0
cisrOwogICAgICAgICBpZiAoaXNCYWRDaGFyKGMpKSB7Ci0gICAgICAgICAgICBpZiAoYyA9PSAn
JScgfHwgYyA9PSAnPycpIHsKKyAgICAgICAgICAgIGlmIChjID09ICclJyB8fCBjID09ICc/JykK
ICAgICAgICAgICAgICAgICAqcCsrID0gYzsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoYyAhPSAw
eDA5ICYmIGMgIT0gMHgwYSAmJiBjICE9IDB4MGQpIHsKLSAgICAgICAgICAgICAgICAqcCsrID0g
JyUnOwotICAgICAgICAgICAgICAgICpwKysgPSBoZXhEaWdpdHNbYyA+PiA0XTsKLSAgICAgICAg
ICAgICAgICAqcCsrID0gaGV4RGlnaXRzW2MgJiAweEZdOwotICAgICAgICAgICAgfQotICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgZWxzZSBpZiAoYyAhPSAweDA5ICYmIGMgIT0gMHgwYSAm
JiBjICE9IDB4MGQpCisgICAgICAgICAgICAgICAgYXBwZW5kRXNjYXBlZENoYXIocCwgYyk7Cisg
ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgKnArKyA9IGM7CisgICAgfQorCisgICAgYnVmZmVy
ID0gcDsKK30KKworc3RhdGljIHZvaWQgZXNjYXBlQW5kQXBwZW5kRnJhZ21lbnQoY2hhciomIGJ1
ZmZlciwgY29uc3QgY2hhciogc3RyU3RhcnQsIHNpemVfdCBsZW5ndGgpCit7CisgICAgY2hhciog
cCA9IGJ1ZmZlcjsKKworICAgIGNvbnN0IGNoYXIqIHN0ciA9IHN0clN0YXJ0OworICAgIGNvbnN0
IGNoYXIqIHN0ckVuZCA9IHN0clN0YXJ0ICsgbGVuZ3RoOworICAgIHdoaWxlIChzdHIgPCBzdHJF
bmQpIHsKKyAgICAgICAgdW5zaWduZWQgY2hhciBjID0gKnN0cisrOworICAgICAgICAvLyBDaHJv
bWUgYW5kIElFIGFsbG93IGNvZGVwb2ludHMgYWJvdmUgMTI3LCBidXQgZG9pbmcgc28gd291bGQg
aGl0CisgICAgICAgIC8vIGFuIEFTU0VSVCBpbiBjaGVja0VuY29kZWRTdHJpbmcsIHNvIGZvciBu
b3cgd2UgZG9uJ3QuCisgICAgICAgIGlmIChjIDwgMHgyMCB8fCBjID49IDEyNykgeworICAgICAg
ICAgICAgYXBwZW5kRXNjYXBlZENoYXIocCwgYyk7CisgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQorICAgICAgICAqcCsrID0gYzsKICAgICB9CiAKICAgICBidWZmZXIgPSBwOwpAQCAt
MTM1MCw3ICsxMzc0LDcgQEAgdm9pZCBLVVJMOjpwYXJzZShjb25zdCBjaGFyKiB1cmwsIGNvbnN0
IFN0cmluZyogb3JpZ2luYWxTdHJpbmcpCiAgICAgLy8gYWRkIGZyYWdtZW50LCBlc2NhcGluZyBi
YWQgY2hhcmFjdGVycwogICAgIGlmIChmcmFnbWVudEVuZCAhPSBxdWVyeUVuZCkgewogICAgICAg
ICAqcCsrID0gJyMnOwotICAgICAgICBhcHBlbmRFc2NhcGluZ0JhZENoYXJzKHAsIHVybCArIGZy
YWdtZW50U3RhcnQsIGZyYWdtZW50RW5kIC0gZnJhZ21lbnRTdGFydCk7CisgICAgICAgIGVzY2Fw
ZUFuZEFwcGVuZEZyYWdtZW50KHAsIHVybCArIGZyYWdtZW50U3RhcnQsIGZyYWdtZW50RW5kIC0g
ZnJhZ21lbnRTdGFydCk7CiAgICAgfQogICAgIG1fZnJhZ21lbnRFbmQgPSBwIC0gYnVmZmVyLmRh
dGEoKTsKIApAQCAtMTQxNiwxMSArMTQ0MCw5IEBAIFN0cmluZyBlbmNvZGVXaXRoVVJMRXNjYXBl
U2VxdWVuY2VzKGNvbnN0IFN0cmluZyYgbm90RW5jb2RlZFN0cmluZykKICAgICBjb25zdCBjaGFy
KiBzdHJFbmQgPSBzdHIgKyBhc1VURjgubGVuZ3RoKCk7CiAgICAgd2hpbGUgKHN0ciA8IHN0ckVu
ZCkgewogICAgICAgICB1bnNpZ25lZCBjaGFyIGMgPSAqc3RyKys7Ci0gICAgICAgIGlmIChpc0Jh
ZENoYXIoYykpIHsKLSAgICAgICAgICAgICpwKysgPSAnJSc7Ci0gICAgICAgICAgICAqcCsrID0g
aGV4RGlnaXRzW2MgPj4gNF07Ci0gICAgICAgICAgICAqcCsrID0gaGV4RGlnaXRzW2MgJiAweEZd
OwotICAgICAgICB9IGVsc2UKKyAgICAgICAgaWYgKGlzQmFkQ2hhcihjKSkKKyAgICAgICAgICAg
IGFwcGVuZEVzY2FwZWRDaGFyKHAsIGMpOworICAgICAgICBlbHNlCiAgICAgICAgICAgICAqcCsr
ID0gYzsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81744</attachid>
            <date>2011-02-08 21:40:16 -0800</date>
            <delta_ts>2011-02-09 01:57:50 -0800</delta_ts>
            <desc>Ready for re-review and commit</desc>
            <filename>bug-53850-20110208214005.patch</filename>
            <type>text/plain</type>
            <size>12960</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzc5OTIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYjdhMTZjN2U0NjI3NGUwZmI2MzU4
NmFhNjFjOTczNTUxMzE2MDUyLi5hZDY4MTM4NDcwY2RiYjcwMmM5NGQ1ZmQ3MmM2N2Q5NzAwYjZh
Y2FlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDItMDcgIEVyaWMgU2VpZGVsICA8ZXJp
Y0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAg
ICAgTWFrZSBXZWJLaXQncyBmcmFnbWVudCBjYW5ub25pY2FsaXphdGlvbiBtYXRjaCBvdGhlciBi
cm93c2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTM4NTAKKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L3NldC1ocmVmLWF0
dHJpYnV0ZS1oYXNoLmh0bWw6IFVwZGF0ZWQgdG8gbWF0Y2ggSUUvQ2hyb21lCisgICAgICAgICog
ZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvc2V0LWhyZWYtYXR0cmlidXRlLWhhc2gtZXhwZWN0
ZWQudHh0OiBVcGRhdGVkIHRvIG1hdGNoIElFL0Nocm9tZS4KKyAgICAgICAgKiBmYXN0L3VybC9h
bmNob3ItZXhwZWN0ZWQudHh0OgorICAgICAgICAgLSAiaGVsbG8gd29ybGQiOiBPdXIgbmV3IGJl
aGF2aW9yIGhlcmUgbWF0Y2hlcyBJRSBhbmQgQ2hyb21lLCBidXQgZGl2ZXJnZXMgZnJvbSBGRi4K
KyAgICAgICAgIC0gVGhlIGxhc3QgdHdvIHRlc3RzIGludm9sdmluZyAjLCB3ZSB3ZXJlIHRoZSBv
ZGQgbWFuIG91dC4gTm93IG1hdGNoIGFsbCBicm93c2Vycy4KKyAgICAgICAgKiBmYXN0L3VybC9z
ZWdtZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICAtIERvbid0IHBlcmNlbnQgZW5jb2RlIHNw
YWNlcyBpbiBmcmFnbWVudHMgKHRvIG1hdGNoIG90aGVyIGJyb3dzZXJzKQorICAgICAgICAgLSBX
ZWJLaXQgd2FzIHRoZSBvbmx5IGVuZ2luZSBlbmNvZGluZyAjIGluIGZyYWdtZW50cy4KKyAgICAg
ICAgKiBmYXN0L3VybC9zZWdtZW50cy1mcm9tLWRhdGEtdXJsLWV4cGVjdGVkLnR4dDoKKwogMjAx
MS0wMi0wOCAgWWFlbCBBaGFyb24gIDx5YWVsLmFoYXJvbkBub2tpYS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9zY3JpcHQtdGVzdHMvc2V0LWhyZWYtYXR0cmlidXRlLWhh
c2guanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9zY3JpcHQtdGVz
dHMvc2V0LWhyZWYtYXR0cmlidXRlLWhhc2guanMKaW5kZXggNWNjZTgzNDlhOGM3ZGE1MGQxZjdh
YjRiYjc2YzdjZGUxMDcwODA2Ny4uYzI4ZGNlYmU5YzdmZGM2MTY1MzBjMjBjOTgzMWEwMDRhNTNk
MDZkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQv
c2NyaXB0LXRlc3RzL3NldC1ocmVmLWF0dHJpYnV0ZS1oYXNoLmpzCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L3NjcmlwdC10ZXN0cy9zZXQtaHJlZi1hdHRyaWJ1
dGUtaGFzaC5qcwpAQCAtNTAsNyArNTAsNyBAQCBzaG91bGRCZSgiYS5ocmVmIiwgIidtYWlsdG86
ZS1tYWlsX2FkZHJlc3NAZ29lc19oZXJlI2hhc2gtdmFsdWUnIik7CiBkZWJ1ZygiQWRkIGhhc2gg
dG8gZmlsZTogcHJvdG9jb2wiKTsKIGEuaHJlZiA9ICJmaWxlOi8vL3NvbWUgcGF0aCI7CiBhLmhh
c2ggPSAiaGFzaCB2YWx1ZSI7Ci1zaG91bGRCZSgiYS5ocmVmIiwgIidmaWxlOi8vL3NvbWUlMjBw
YXRoI2hhc2glMjB2YWx1ZSciKTsKK3Nob3VsZEJlKCJhLmhyZWYiLCAiJ2ZpbGU6Ly8vc29tZSUy
MHBhdGgjaGFzaCB2YWx1ZSciKTsKIAogZGVidWcoIlNldCBoYXNoIHRvICcjJyIpOwogYS5ocmVm
ID0gImh0dHA6Ly9teWRvbWFpbi5jb20jbWlkZGxlIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L3NldC1ocmVmLWF0dHJpYnV0ZS1oYXNoLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L3NldC1ocmVm
LWF0dHJpYnV0ZS1oYXNoLWV4cGVjdGVkLnR4dAppbmRleCA2NTE1ODIwNmRlYzJjODQxNDc0MzVj
NGVlZDkxZGQyYTJhZDQ2MGRkLi5hNzU3Zjg0Njg5ZDAwOGNmZjk1MGE4YTJhZjFjMGM5NTU5YmM3
M2NmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9z
ZXQtaHJlZi1hdHRyaWJ1dGUtaGFzaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTEFuY2hvckVsZW1lbnQvc2V0LWhyZWYtYXR0cmlidXRlLWhhc2gtZXhwZWN0ZWQu
dHh0CkBAIC0xOCw3ICsxOCw3IEBAIFBBU1MgYS5ocmVmIGlzICdodHRwczovL3d3dy5teWRvbWFp
bi5jb20vcGF0aC90ZXN0dXJsLmh0bWwjJwogQWRkIGhhc2ggdG8gbWFpbHRvOiBwcm90b2NvbAog
UEFTUyBhLmhyZWYgaXMgJ21haWx0bzplLW1haWxfYWRkcmVzc0Bnb2VzX2hlcmUjaGFzaC12YWx1
ZScKIEFkZCBoYXNoIHRvIGZpbGU6IHByb3RvY29sCi1QQVNTIGEuaHJlZiBpcyAnZmlsZTovLy9z
b21lJTIwcGF0aCNoYXNoJTIwdmFsdWUnCitQQVNTIGEuaHJlZiBpcyAnZmlsZTovLy9zb21lJTIw
cGF0aCNoYXNoIHZhbHVlJwogU2V0IGhhc2ggdG8gJyMnCiBQQVNTIGEuaHJlZiBpcyAnaHR0cDov
L215ZG9tYWluLmNvbS8jJwogQWRkIGhhc2ggdG8gbm9uLXN0YW5kYXJkIHByb3RvY29sCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9hbmNob3ItZ2V0UGFyYW1ldGVyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2FuY2hvci1nZXRQYXJhbWV0ZXItZXhwZWN0ZWQu
dHh0CmluZGV4IDZmMDI1M2Y1OWUxMDFhMGQ1NzYzOGU1ZTAwMzAyNzhlNmZlZDhiNmYuLjJkOGY1
ZDczZWY3OTQ1Y2UzOWEzNDE0MzAyNGMzMTg5ODYwYThmODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL2FuY2hvci1nZXRQYXJhbWV0ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL2FuY2hvci1nZXRQYXJhbWV0ZXItZXhwZWN0ZWQudHh0CkBAIC0xNiw1
ICsxNiw1IEBAIGh0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyP2E9Yj0mIChiKSA9PgogaHR0cDov
L2V4YW1wbGUuY29tL2Zvby9iYXI/JmE9YiAoYSkgPT4gYgogaHR0cDovL2V4YW1wbGUuY29tL2Zv
by9iYXI/JmE9YiYgKGEpID0+IGIKIGh0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyP2E9YiN4eXog
KGEpID0+IGIKLWh0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyPyNhPWIlMjN4eXogKGEpID0+IAor
aHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/I2E9YiN4eXogKGEpID0+IAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3VybC9hbmNob3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC91cmwvYW5jaG9yLWV4cGVjdGVkLnR4dAppbmRleCAxNWRjODRmMmRjMDNjOTQ5NzZmYmI2
OGFlZGNlZTk0NGJiN2M2NWFhLi5hZmUyNTMwOTI5OGJhNTQ0YWQ4NjVjNzU4Y2E4YTFjMzgwMmMw
M2U4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3VybC9hbmNob3ItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdXJsL2FuY2hvci1leHBlY3RlZC50eHQKQEAgLTMsMTQg
KzMsMTQgQEAgVGVzdCBVUkxzIHRoYXQgaGF2ZSBhbiBhbmNob3IuCiBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCiAKIAotRkFJTCBjYW5vbmljYWxpemUoJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20v
I2hlbGxvLCB3b3JsZCcpIHNob3VsZCBiZSBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNoZWxsbywg
d29ybGQuIFdhcyBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNoZWxsbywlMjB3b3JsZC4KK1BBU1Mg
Y2Fub25pY2FsaXplKCdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNoZWxsbywgd29ybGQnKSBpcyAn
aHR0cDovL3d3dy5leGFtcGxlLmNvbS8jaGVsbG8sIHdvcmxkJwogRkFJTCBjYW5vbmljYWxpemUo
J2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vI8OCwqknKSBzaG91bGQgYmUgaHR0cDovL3d3dy5leGFt
cGxlLmNvbS8jw4LCqS4gV2FzIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIyVDMiVBOS4KIEZBSUwg
Y2Fub25pY2FsaXplKCdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyPwkIyAc3MnKSBzaG91bGQgYmUg
aHR0cDovL3d3dy5leGFtcGxlLmNvbS8j8JCMgHNzLiBXYXMgaHR0cDovL3d3dy5leGFtcGxlLmNv
bS8jJTI2JTIzNjYzMDQlM0Jzcy4KIFBBU1MgY2Fub25pY2FsaXplKCdodHRwOi8vd3d3LmV4YW1w
bGUuY29tLyMlNDElYScpIGlzICdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyMlNDElYScKIEZBSUwg
Y2Fub25pY2FsaXplKCdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNcdWQ4MDBcdTU5N2QnKSBzaG91
bGQgYmUgaHR0cDovL3d3dy5leGFtcGxlLmNvbS8j77+95aW9LiBXYXMgaHR0cDovL3d3dy5leGFt
cGxlLmNvbS8jJTI2JTIzNTUyOTYlM0IlMjYlMjMyMjkwOSUzQi4KIEZBSUwgY2Fub25pY2FsaXpl
KCdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNhXHVGREQwJykgc2hvdWxkIGJlIGh0dHA6Ly93d3cu
ZXhhbXBsZS5jb20vI2Hvt5AuIFdhcyBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNhJTI2JTIzNjQ5
NzYlM0IuCi1GQUlMIGNhbm9uaWNhbGl6ZSgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jYXNkZiNx
d2VyJykgc2hvdWxkIGJlIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vI2FzZGYjcXdlci4gV2FzIGh0
dHA6Ly93d3cuZXhhbXBsZS5jb20vI2FzZGYlMjNxd2VyLgotRkFJTCBjYW5vbmljYWxpemUoJ2h0
dHA6Ly93d3cuZXhhbXBsZS5jb20vIyNhc2RmJykgc2hvdWxkIGJlIGh0dHA6Ly93d3cuZXhhbXBs
ZS5jb20vIyNhc2RmLiBXYXMgaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jJTIzYXNkZi4KK1BBU1Mg
Y2Fub25pY2FsaXplKCdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNhc2RmI3F3ZXInKSBpcyAnaHR0
cDovL3d3dy5leGFtcGxlLmNvbS8jYXNkZiNxd2VyJworUEFTUyBjYW5vbmljYWxpemUoJ2h0dHA6
Ly93d3cuZXhhbXBsZS5jb20vIyNhc2RmJykgaXMgJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vIyNh
c2RmJwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3VybC9zZWdtZW50cy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3VybC9zZWdtZW50cy1leHBlY3RlZC50eHQKaW5kZXggMmRhNjkxMmM3
MjYwMTY5ZDQxMzljNzY2NmZkZjg4NWJmNGYyYjUyYS4uZjUzZmJiMTBlNWFjM2M2NzE4MTJhM2I3
MDdjNTAyMjRkZWI0NjQzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC91cmwvc2VnbWVu
dHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdXJsL3NlZ21lbnRzLWV4cGVj
dGVkLnR4dApAQCAtOCw3ICs4LDcgQEAgUEFTUyBzZWdtZW50cygnaHR0cDpmb28uY29tJykgaXMg
J1siaHR0cDoiLCJleGFtcGxlLm9yZyIsIjAiLCIvZm9vL2Zvby5jb20iLCIiLCIKIFBBU1Mgc2Vn
bWVudHMoJ1x0ICAgOmZvby5jb20gICBcbicpIGlzICdbImh0dHA6IiwiZXhhbXBsZS5vcmciLCIw
IiwiL2Zvby86Zm9vLmNvbSIsIiIsIiJdJwogUEFTUyBzZWdtZW50cygnIGZvby5jb20gICcpIGlz
ICdbImh0dHA6IiwiZXhhbXBsZS5vcmciLCIwIiwiL2Zvby9mb28uY29tIiwiIiwiIl0nCiBQQVNT
IHNlZ21lbnRzKCdhOlx0IGZvby5jb20nKSBpcyAnWyJhOiIsIiIsIjAiLCIgZm9vLmNvbSIsIiIs
IiJdJwotRkFJTCBzZWdtZW50cygnaHR0cDovL2Y6MjEvIGIgPyBkICMgZSAnKSBzaG91bGQgYmUg
WyJodHRwOiIsImYiLCIyMSIsIi8lMjBiJTIwIiwiPyUyMGQlMjAiLCIjIGUiXS4gV2FzIFsiaHR0
cDoiLCJmIiwiMjEiLCIvIGIgIiwiPyUyMGQlMjAiLCIjJTIwZSJdLgorRkFJTCBzZWdtZW50cygn
aHR0cDovL2Y6MjEvIGIgPyBkICMgZSAnKSBzaG91bGQgYmUgWyJodHRwOiIsImYiLCIyMSIsIi8l
MjBiJTIwIiwiPyUyMGQlMjAiLCIjIGUiXS4gV2FzIFsiaHR0cDoiLCJmIiwiMjEiLCIvIGIgIiwi
PyUyMGQlMjAiLCIjIGUiXS4KIFBBU1Mgc2VnbWVudHMoJ2h0dHA6Ly9mOi9jJykgaXMgJ1siaHR0
cDoiLCJmIiwiMCIsIi9jIiwiIiwiIl0nCiBQQVNTIHNlZ21lbnRzKCdodHRwOi8vZjowL2MnKSBp
cyAnWyJodHRwOiIsImYiLCIwIiwiL2MiLCIiLCIiXScKIFBBU1Mgc2VnbWVudHMoJ2h0dHA6Ly9m
OjAwMDAwMDAwMDAwMDAwL2MnKSBpcyAnWyJodHRwOiIsImYiLCIwIiwiL2MiLCIiLCIiXScKQEAg
LTU1LDcgKzU1LDcgQEAgUEFTUyBzZWdtZW50cygnZm9vOi8vLy8vLy8vL2Jhci5jb20vJykgaXMg
J1siZm9vOiIsIiIsIjAiLCIvLy8vLy8vLy9iYXIuY29tLyIsIiIKIFBBU1Mgc2VnbWVudHMoJ2Zv
bzovLy8vOi8vLy8vJykgaXMgJ1siZm9vOiIsIiIsIjAiLCIvLy8vOi8vLy8vIiwiIiwiIl0nCiBQ
QVNTIHNlZ21lbnRzKCdjOi9mb28nKSBpcyAnWyJjOiIsIiIsIjAiLCIvZm9vIiwiIiwiIl0nCiBQ
QVNTIHNlZ21lbnRzKCcvL2Zvby9iYXInKSBpcyAnWyJodHRwOiIsImZvbyIsIjAiLCIvYmFyIiwi
IiwiIl0nCi1GQUlMIHNlZ21lbnRzKCdodHRwOi8vZm9vL3BhdGg7YT8/ZSNmI2cnKSBzaG91bGQg
YmUgWyJodHRwOiIsImZvbyIsIjAiLCIvcGF0aDthIiwiPz9lIiwiI2YjZyJdLiBXYXMgWyJodHRw
OiIsImZvbyIsIjAiLCIvcGF0aDthIiwiPz9lIiwiI2YlMjNnIl0uCitQQVNTIHNlZ21lbnRzKCdo
dHRwOi8vZm9vL3BhdGg7YT8/ZSNmI2cnKSBpcyAnWyJodHRwOiIsImZvbyIsIjAiLCIvcGF0aDth
IiwiPz9lIiwiI2YjZyJdJwogUEFTUyBzZWdtZW50cygnaHR0cDovL2Zvby9hYmNkP2VmZ2g/aWpr
bCcpIGlzICdbImh0dHA6IiwiZm9vIiwiMCIsIi9hYmNkIiwiP2VmZ2g/aWprbCIsIiJdJwogUEFT
UyBzZWdtZW50cygnaHR0cDovL2Zvby9hYmNkI2Zvbz9iYXInKSBpcyAnWyJodHRwOiIsImZvbyIs
IjAiLCIvYWJjZCIsIiIsIiNmb28/YmFyIl0nCiBQQVNTIHNlZ21lbnRzKCdbNjE6MjQ6NzRdOjk4
JykgaXMgJ1siaHR0cDoiLCJleGFtcGxlLm9yZyIsIjAiLCIvZm9vL1s2MToyNDo3NF06OTgiLCIi
LCIiXScKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdXJsL3NlZ21lbnRzLWZyb20tZGF0
YS11cmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC91cmwvc2VnbWVudHMtZnJvbS1k
YXRhLXVybC1leHBlY3RlZC50eHQKaW5kZXggNmUxODUzZTBiNjE3YmIwNDM1ZjBkMmM1YTRiMmI4
ZjdlYzgwYTQyNy4uNmFlOTNiODMwODlkYzRiZmRjMmNjNTA3MjA5NDhhM2Y5YzI1YzM4ZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC91cmwvc2VnbWVudHMtZnJvbS1kYXRhLXVybC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC91cmwvc2VnbWVudHMtZnJvbS1kYXRhLXVy
bC1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw3IEBAIEZBSUwgc2VnbWVudHMoJ2h0dHA6Zm9vLmNv
bScpIHNob3VsZCBiZSBbImh0dHA6IiwiZm9vLmNvbSIsIjAiLCIvIiwiIiwiIl0uIFdhcyBbCiBQ
QVNTIHNlZ21lbnRzKCdcdCAgIDpmb28uY29tICAgXG4nKSBpcyAnWyI6IiwiIiwiMCIsIiIsIiIs
IiJdJwogUEFTUyBzZWdtZW50cygnIGZvby5jb20gICcpIGlzICdbIjoiLCIiLCIwIiwiIiwiIiwi
Il0nCiBQQVNTIHNlZ21lbnRzKCdhOlx0IGZvby5jb20nKSBpcyAnWyJhOiIsIiIsIjAiLCIgZm9v
LmNvbSIsIiIsIiJdJwotRkFJTCBzZWdtZW50cygnaHR0cDovL2Y6MjEvIGIgPyBkICMgZSAnKSBz
aG91bGQgYmUgWyJodHRwOiIsImYiLCIyMSIsIi8lMjBiJTIwIiwiPyUyMGQlMjAiLCIjIGUiXS4g
V2FzIFsiaHR0cDoiLCJmIiwiMjEiLCIvIGIgIiwiPyUyMGQlMjAiLCIjJTIwZSJdLgorRkFJTCBz
ZWdtZW50cygnaHR0cDovL2Y6MjEvIGIgPyBkICMgZSAnKSBzaG91bGQgYmUgWyJodHRwOiIsImYi
LCIyMSIsIi8lMjBiJTIwIiwiPyUyMGQlMjAiLCIjIGUiXS4gV2FzIFsiaHR0cDoiLCJmIiwiMjEi
LCIvIGIgIiwiPyUyMGQlMjAiLCIjIGUiXS4KIFBBU1Mgc2VnbWVudHMoJ2h0dHA6Ly9mOi9jJykg
aXMgJ1siaHR0cDoiLCJmIiwiMCIsIi9jIiwiIiwiIl0nCiBQQVNTIHNlZ21lbnRzKCdodHRwOi8v
ZjowL2MnKSBpcyAnWyJodHRwOiIsImYiLCIwIiwiL2MiLCIiLCIiXScKIFBBU1Mgc2VnbWVudHMo
J2h0dHA6Ly9mOjAwMDAwMDAwMDAwMDAwL2MnKSBpcyAnWyJodHRwOiIsImYiLCIwIiwiL2MiLCIi
LCIiXScKQEAgLTU1LDcgKzU1LDcgQEAgUEFTUyBzZWdtZW50cygnZm9vOi8vLy8vLy8vL2Jhci5j
b20vJykgaXMgJ1siZm9vOiIsIiIsIjAiLCIvLy8vLy8vLy9iYXIuY29tLyIsIiIKIFBBU1Mgc2Vn
bWVudHMoJ2ZvbzovLy8vOi8vLy8vJykgaXMgJ1siZm9vOiIsIiIsIjAiLCIvLy8vOi8vLy8vIiwi
IiwiIl0nCiBQQVNTIHNlZ21lbnRzKCdjOi9mb28nKSBpcyAnWyJjOiIsIiIsIjAiLCIvZm9vIiwi
IiwiIl0nCiBQQVNTIHNlZ21lbnRzKCcvL2Zvby9iYXInKSBpcyAnWyI6IiwiIiwiMCIsIiIsIiIs
IiJdJwotRkFJTCBzZWdtZW50cygnaHR0cDovL2Zvby9wYXRoO2E/P2UjZiNnJykgc2hvdWxkIGJl
IFsiaHR0cDoiLCJmb28iLCIwIiwiL3BhdGg7YSIsIj8/ZSIsIiNmI2ciXS4gV2FzIFsiaHR0cDoi
LCJmb28iLCIwIiwiL3BhdGg7YSIsIj8/ZSIsIiNmJTIzZyJdLgorUEFTUyBzZWdtZW50cygnaHR0
cDovL2Zvby9wYXRoO2E/P2UjZiNnJykgaXMgJ1siaHR0cDoiLCJmb28iLCIwIiwiL3BhdGg7YSIs
Ij8/ZSIsIiNmI2ciXScKIFBBU1Mgc2VnbWVudHMoJ2h0dHA6Ly9mb28vYWJjZD9lZmdoP2lqa2wn
KSBpcyAnWyJodHRwOiIsImZvbyIsIjAiLCIvYWJjZCIsIj9lZmdoP2lqa2wiLCIiXScKIFBBU1Mg
c2VnbWVudHMoJ2h0dHA6Ly9mb28vYWJjZCNmb28/YmFyJykgaXMgJ1siaHR0cDoiLCJmb28iLCIw
IiwiL2FiY2QiLCIiLCIjZm9vP2JhciJdJwogRkFJTCBzZWdtZW50cygnWzYxOjI0Ojc0XTo5OCcp
IHNob3VsZCBiZSBbImRhdGE6IiwiIiwiMCIsInRleHQvWzYxOjI0Ojc0XTo5OCIsIiIsIiJdLiBX
YXMgWyI6IiwiIiwiMCIsIiIsIiIsIiJdLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY0NjJlMTlhOTYzZmQxMWFh
YjZiNDMxNDFhOTg0YzkxNTY0NzliMTUuLmUxYzQ3OTgwYTBkY2RkNzY2MDU4YzViYTM2MzBjNDMw
OTk2ZThkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wMi0wNyAgRXJpYyBT
ZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0
aC4KKworICAgICAgICBNYWtlIFdlYktpdCdzIGZyYWdtZW50IGNhbm5vbmljYWxpemF0aW9uIG1h
dGNoIG90aGVyIGJyb3dzZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01Mzg1MAorCisgICAgICAgIFRoaXMgZG9lc24ndCBtYWtlIHVzIG1hdGNoIHBl
cmZlY3RseSwgYnV0IGl0IGJyaW5ncyB1cyBjbG9zZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9L
VVJMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFwcGVuZEVzY2FwaW5nQmFkQ2hhcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6ZXNjYXBlQW5kQXBwZW5kRnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6S1VSTDo6cGFyc2UpOgorCiAyMDExLTAyLTA4ICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9u
QG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0tVUkwuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vS1VSTC5jcHAKaW5kZXggMzVhNDhlOWFkNGRmNWNkMTYwNGU1ZjJkMTIyMWNiOTAz
M2I4OWNjOC4uZTJhZTE0YzgzYTM5YTlhYjJiZjQ0YjY1NzQ4NGIyYzAzNTI5MDJiMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vS1VSTC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vS1VSTC5jcHAKQEAgLTk2OCw2ICs5NjgsMTQgQEAgYm9vbCBLVVJMOjppc0xv
Y2FsRmlsZSgpIGNvbnN0CiAgICAgcmV0dXJuIHByb3RvY29sSXMoImZpbGUiKTsKIH0KIAorLy8g
Q2F1dGlvbjogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBib3VuZHMgY2hlY2suCitzdGF0aWMgdm9p
ZCBhcHBlbmRFc2NhcGVkQ2hhcihjaGFyKiYgYnVmZmVyLCB1bnNpZ25lZCBjaGFyIGMpCit7Cisg
ICAgKmJ1ZmZlcisrID0gJyUnOworICAgICpidWZmZXIrKyA9IGhleERpZ2l0c1tjID4+IDRdOwor
ICAgICpidWZmZXIrKyA9IGhleERpZ2l0c1tjICYgMHhGXTsKK30KKwogc3RhdGljIHZvaWQgYXBw
ZW5kRXNjYXBpbmdCYWRDaGFycyhjaGFyKiYgYnVmZmVyLCBjb25zdCBjaGFyKiBzdHJTdGFydCwg
c2l6ZV90IGxlbmd0aCkKIHsKICAgICBjaGFyKiBwID0gYnVmZmVyOwpAQCAtOTc3LDE2ICs5ODUs
MzcgQEAgc3RhdGljIHZvaWQgYXBwZW5kRXNjYXBpbmdCYWRDaGFycyhjaGFyKiYgYnVmZmVyLCBj
b25zdCBjaGFyKiBzdHJTdGFydCwgc2l6ZV90IGwKICAgICB3aGlsZSAoc3RyIDwgc3RyRW5kKSB7
CiAgICAgICAgIHVuc2lnbmVkIGNoYXIgYyA9ICpzdHIrKzsKICAgICAgICAgaWYgKGlzQmFkQ2hh
cihjKSkgewotICAgICAgICAgICAgaWYgKGMgPT0gJyUnIHx8IGMgPT0gJz8nKSB7CisgICAgICAg
ICAgICBpZiAoYyA9PSAnJScgfHwgYyA9PSAnPycpCiAgICAgICAgICAgICAgICAgKnArKyA9IGM7
Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGMgIT0gMHgwOSAmJiBjICE9IDB4MGEgJiYgYyAhPSAw
eDBkKSB7Ci0gICAgICAgICAgICAgICAgKnArKyA9ICclJzsKLSAgICAgICAgICAgICAgICAqcCsr
ID0gaGV4RGlnaXRzW2MgPj4gNF07Ci0gICAgICAgICAgICAgICAgKnArKyA9IGhleERpZ2l0c1tj
ICYgMHhGXTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVs
c2UgaWYgKGMgIT0gMHgwOSAmJiBjICE9IDB4MGEgJiYgYyAhPSAweDBkKQorICAgICAgICAgICAg
ICAgIGFwcGVuZEVzY2FwZWRDaGFyKHAsIGMpOworICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
ICpwKysgPSBjOworICAgIH0KKworICAgIGJ1ZmZlciA9IHA7Cit9CisKK3N0YXRpYyB2b2lkIGVz
Y2FwZUFuZEFwcGVuZEZyYWdtZW50KGNoYXIqJiBidWZmZXIsIGNvbnN0IGNoYXIqIHN0clN0YXJ0
LCBzaXplX3QgbGVuZ3RoKQoreworICAgIGNoYXIqIHAgPSBidWZmZXI7CisKKyAgICBjb25zdCBj
aGFyKiBzdHIgPSBzdHJTdGFydDsKKyAgICBjb25zdCBjaGFyKiBzdHJFbmQgPSBzdHJTdGFydCAr
IGxlbmd0aDsKKyAgICB3aGlsZSAoc3RyIDwgc3RyRW5kKSB7CisgICAgICAgIHVuc2lnbmVkIGNo
YXIgYyA9ICpzdHIrKzsKKyAgICAgICAgLy8gU3RyaXAgQ1IsIExGIGFuZCBUYWIgZnJvbSBmcmFn
bWVudHMsIHBlcjoKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg3NzAKKyAgICAgICAgaWYgKGMgPT0gMHgwOSB8fCBjID09IDB4MGEgfHwgYyA9PSAw
eDBkKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgLy8gQ2hyb21lIGFuZCBJRSBh
bGxvdyBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBmcmFnbWVudHMsIGhvd2V2ZXIgZG9pbmcKKyAg
ICAgICAgLy8gc28gd291bGQgaGl0IGFuIEFTU0VSVCBpbiBjaGVja0VuY29kZWRTdHJpbmcsIHNv
IGZvciBub3cgd2UgZG9uJ3QuCisgICAgICAgIGlmIChjIDwgMHgyMCB8fCBjID49IDEyNykgewor
ICAgICAgICAgICAgYXBwZW5kRXNjYXBlZENoYXIocCwgYyk7CisgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgfQorICAgICAgICAqcCsrID0gYzsKICAgICB9CiAKICAgICBidWZmZXIgPSBw
OwpAQCAtMTM1MCw3ICsxMzc5LDcgQEAgdm9pZCBLVVJMOjpwYXJzZShjb25zdCBjaGFyKiB1cmws
IGNvbnN0IFN0cmluZyogb3JpZ2luYWxTdHJpbmcpCiAgICAgLy8gYWRkIGZyYWdtZW50LCBlc2Nh
cGluZyBiYWQgY2hhcmFjdGVycwogICAgIGlmIChmcmFnbWVudEVuZCAhPSBxdWVyeUVuZCkgewog
ICAgICAgICAqcCsrID0gJyMnOwotICAgICAgICBhcHBlbmRFc2NhcGluZ0JhZENoYXJzKHAsIHVy
bCArIGZyYWdtZW50U3RhcnQsIGZyYWdtZW50RW5kIC0gZnJhZ21lbnRTdGFydCk7CisgICAgICAg
IGVzY2FwZUFuZEFwcGVuZEZyYWdtZW50KHAsIHVybCArIGZyYWdtZW50U3RhcnQsIGZyYWdtZW50
RW5kIC0gZnJhZ21lbnRTdGFydCk7CiAgICAgfQogICAgIG1fZnJhZ21lbnRFbmQgPSBwIC0gYnVm
ZmVyLmRhdGEoKTsKIApAQCAtMTQxNiwxMSArMTQ0NSw5IEBAIFN0cmluZyBlbmNvZGVXaXRoVVJM
RXNjYXBlU2VxdWVuY2VzKGNvbnN0IFN0cmluZyYgbm90RW5jb2RlZFN0cmluZykKICAgICBjb25z
dCBjaGFyKiBzdHJFbmQgPSBzdHIgKyBhc1VURjgubGVuZ3RoKCk7CiAgICAgd2hpbGUgKHN0ciA8
IHN0ckVuZCkgewogICAgICAgICB1bnNpZ25lZCBjaGFyIGMgPSAqc3RyKys7Ci0gICAgICAgIGlm
IChpc0JhZENoYXIoYykpIHsKLSAgICAgICAgICAgICpwKysgPSAnJSc7Ci0gICAgICAgICAgICAq
cCsrID0gaGV4RGlnaXRzW2MgPj4gNF07Ci0gICAgICAgICAgICAqcCsrID0gaGV4RGlnaXRzW2Mg
JiAweEZdOwotICAgICAgICB9IGVsc2UKKyAgICAgICAgaWYgKGlzQmFkQ2hhcihjKSkKKyAgICAg
ICAgICAgIGFwcGVuZEVzY2FwZWRDaGFyKHAsIGMpOworICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAqcCsrID0gYzsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81774</attachid>
            <date>2011-02-09 01:57:53 -0800</date>
            <delta_ts>2011-02-09 03:53:38 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-53850-20110209015751.patch</filename>
            <type>text/plain</type>
            <size>13530</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzgwMzAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNzYxOWY1YWY2MmNjMmViOGZiYTM5
ZWIxZDY5M2Y4MWZmYTc4ZjRlLi4wNTExNWI0ZDBiNzA3YTZiYjBjMGFjMWE0YTNiYTNhNTY5MTY5
OGQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDItMDkgIEVyaWMgU2VpZGVsICA8ZXJp
Y0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAg
ICAgTWFrZSBXZWJLaXQncyBmcmFnbWVudCBjYW5ub25pY2FsaXphdGlvbiBtYXRjaCBvdGhlciBi
cm93c2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTM4NTAKKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L3NldC1ocmVmLWF0
dHJpYnV0ZS1oYXNoLmh0bWw6IFVwZGF0ZWQgdG8gbWF0Y2ggSUUvQ2hyb21lCisgICAgICAgICog
ZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvc2V0LWhyZWYtYXR0cmlidXRlLWhhc2gtZXhwZWN0
ZWQudHh0OiBVcGRhdGVkIHRvIG1hdGNoIElFL0Nocm9tZS4KKyAgICAgICAgKiBmYXN0L3VybC9h
bmNob3ItZXhwZWN0ZWQudHh0OgorICAgICAgICAgLSAiaGVsbG8gd29ybGQiOiBPdXIgbmV3IGJl
aGF2aW9yIGhlcmUgbWF0Y2hlcyBJRSBhbmQgQ2hyb21lLCBidXQgZGl2ZXJnZXMgZnJvbSBGRi4K
KyAgICAgICAgIC0gVGhlIGxhc3QgdHdvIHRlc3RzIGludm9sdmluZyAjLCB3ZSB3ZXJlIHRoZSBv
ZGQgbWFuIG91dC4gTm93IG1hdGNoIGFsbCBicm93c2Vycy4KKyAgICAgICAgKiBmYXN0L3VybC9z
ZWdtZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICAtIERvbid0IHBlcmNlbnQgZW5jb2RlIHNw
YWNlcyBpbiBmcmFnbWVudHMgKHRvIG1hdGNoIG90aGVyIGJyb3dzZXJzKQorICAgICAgICAgLSBX
ZWJLaXQgd2FzIHRoZSBvbmx5IGVuZ2luZSBlbmNvZGluZyAjIGluIGZyYWdtZW50cy4KKyAgICAg
ICAgKiBmYXN0L3VybC9zZWdtZW50cy1mcm9tLWRhdGEtdXJsLWV4cGVjdGVkLnR4dDoKKwogMjAx
MS0wMi0wOSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgU2tpcCBzb21lIGZhaWxpbmcgdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9zY3JpcHQtdGVzdHMvc2V0LWhyZWYtYXR0cmlidXRlLWhh
c2guanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9zY3JpcHQtdGVz
dHMvc2V0LWhyZWYtYXR0cmlidXRlLWhhc2guanMKaW5kZXggNWNjZTgzNDlhOGM3ZGE1MGQxZjdh
YjRiYjc2YzdjZGUxMDcwODA2Ny4uYzI4ZGNlYmU5YzdmZGM2MTY1MzBjMjBjOTgzMWEwMDRhNTNk
MDZkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQv
c2NyaXB0LXRlc3RzL3NldC1ocmVmLWF0dHJpYnV0ZS1oYXNoLmpzCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L3NjcmlwdC10ZXN0cy9zZXQtaHJlZi1hdHRyaWJ1
dGUtaGFzaC5qcwpAQCAtNTAsNyArNTAsNyBAQCBzaG91bGRCZSgiYS5ocmVmIiwgIidtYWlsdG86
ZS1tYWlsX2FkZHJlc3NAZ29lc19oZXJlI2hhc2gtdmFsdWUnIik7CiBkZWJ1ZygiQWRkIGhhc2gg
dG8gZmlsZTogcHJvdG9jb2wiKTsKIGEuaHJlZiA9ICJmaWxlOi8vL3NvbWUgcGF0aCI7CiBhLmhh
c2ggPSAiaGFzaCB2YWx1ZSI7Ci1zaG91bGRCZSgiYS5ocmVmIiwgIidmaWxlOi8vL3NvbWUlMjBw
YXRoI2hhc2glMjB2YWx1ZSciKTsKK3Nob3VsZEJlKCJhLmhyZWYiLCAiJ2ZpbGU6Ly8vc29tZSUy
MHBhdGgjaGFzaCB2YWx1ZSciKTsKIAogZGVidWcoIlNldCBoYXNoIHRvICcjJyIpOwogYS5ocmVm
ID0gImh0dHA6Ly9teWRvbWFpbi5jb20jbWlkZGxlIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L3NldC1ocmVmLWF0dHJpYnV0ZS1oYXNoLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L3NldC1ocmVm
LWF0dHJpYnV0ZS1oYXNoLWV4cGVjdGVkLnR4dAppbmRleCA2NTE1ODIwNmRlYzJjODQxNDc0MzVj
NGVlZDkxZGQyYTJhZDQ2MGRkLi5hNzU3Zjg0Njg5ZDAwOGNmZjk1MGE4YTJhZjFjMGM5NTU5YmM3
M2NmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9z
ZXQtaHJlZi1hdHRyaWJ1dGUtaGFzaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTEFuY2hvckVsZW1lbnQvc2V0LWhyZWYtYXR0cmlidXRlLWhhc2gtZXhwZWN0ZWQu
dHh0CkBAIC0xOCw3ICsxOCw3IEBAIFBBU1MgYS5ocmVmIGlzICdodHRwczovL3d3dy5teWRvbWFp
bi5jb20vcGF0aC90ZXN0dXJsLmh0bWwjJwogQWRkIGhhc2ggdG8gbWFpbHRvOiBwcm90b2NvbAog
UEFTUyBhLmhyZWYgaXMgJ21haWx0bzplLW1haWxfYWRkcmVzc0Bnb2VzX2hlcmUjaGFzaC12YWx1
ZScKIEFkZCBoYXNoIHRvIGZpbGU6IHByb3RvY29sCi1QQVNTIGEuaHJlZiBpcyAnZmlsZTovLy9z
b21lJTIwcGF0aCNoYXNoJTIwdmFsdWUnCitQQVNTIGEuaHJlZiBpcyAnZmlsZTovLy9zb21lJTIw
cGF0aCNoYXNoIHZhbHVlJwogU2V0IGhhc2ggdG8gJyMnCiBQQVNTIGEuaHJlZiBpcyAnaHR0cDov
L215ZG9tYWluLmNvbS8jJwogQWRkIGhhc2ggdG8gbm9uLXN0YW5kYXJkIHByb3RvY29sCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9hbmNob3ItZ2V0UGFyYW1ldGVyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2FuY2hvci1nZXRQYXJhbWV0ZXItZXhwZWN0ZWQu
dHh0CmluZGV4IDZmMDI1M2Y1OWUxMDFhMGQ1NzYzOGU1ZTAwMzAyNzhlNmZlZDhiNmYuLjJkOGY1
ZDczZWY3OTQ1Y2UzOWEzNDE0MzAyNGMzMTg5ODYwYThmODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL2FuY2hvci1nZXRQYXJhbWV0ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL2FuY2hvci1nZXRQYXJhbWV0ZXItZXhwZWN0ZWQudHh0CkBAIC0xNiw1
ICsxNiw1IEBAIGh0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyP2E9Yj0mIChiKSA9PgogaHR0cDov
L2V4YW1wbGUuY29tL2Zvby9iYXI/JmE9YiAoYSkgPT4gYgogaHR0cDovL2V4YW1wbGUuY29tL2Zv
by9iYXI/JmE9YiYgKGEpID0+IGIKIGh0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyP2E9YiN4eXog
KGEpID0+IGIKLWh0dHA6Ly9leGFtcGxlLmNvbS9mb28vYmFyPyNhPWIlMjN4eXogKGEpID0+IAor
aHR0cDovL2V4YW1wbGUuY29tL2Zvby9iYXI/I2E9YiN4eXogKGEpID0+IAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3VybC9hbmNob3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC91cmwvYW5jaG9yLWV4cGVjdGVkLnR4dAppbmRleCAxNWRjODRmMmRjMDNjOTQ5NzZmYmI2
OGFlZGNlZTk0NGJiN2M2NWFhLi5jN2M4YjFkNzQzZmJjMGRlMTI0ZmYzY2NiZjRkOWI3NDAyNTBh
ZDg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3VybC9hbmNob3ItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdXJsL2FuY2hvci1leHBlY3RlZC50eHQKQEAgLTMsMTQg
KzMsMTUgQEAgVGVzdCBVUkxzIHRoYXQgaGF2ZSBhbiBhbmNob3IuCiBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCiAKIAotRkFJTCBjYW5vbmljYWxpemUoJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20v
I2hlbGxvLCB3b3JsZCcpIHNob3VsZCBiZSBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNoZWxsbywg
d29ybGQuIFdhcyBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNoZWxsbywlMjB3b3JsZC4KK1BBU1Mg
Y2Fub25pY2FsaXplKCdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNoZWxsbywgd29ybGQnKSBpcyAn
aHR0cDovL3d3dy5leGFtcGxlLmNvbS8jaGVsbG8sIHdvcmxkJwogRkFJTCBjYW5vbmljYWxpemUo
J2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vI8OCwqknKSBzaG91bGQgYmUgaHR0cDovL3d3dy5leGFt
cGxlLmNvbS8jw4LCqS4gV2FzIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIyVDMiVBOS4KIEZBSUwg
Y2Fub25pY2FsaXplKCdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyPwkIyAc3MnKSBzaG91bGQgYmUg
aHR0cDovL3d3dy5leGFtcGxlLmNvbS8j8JCMgHNzLiBXYXMgaHR0cDovL3d3dy5leGFtcGxlLmNv
bS8jJTI2JTIzNjYzMDQlM0Jzcy4KIFBBU1MgY2Fub25pY2FsaXplKCdodHRwOi8vd3d3LmV4YW1w
bGUuY29tLyMlNDElYScpIGlzICdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyMlNDElYScKIEZBSUwg
Y2Fub25pY2FsaXplKCdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNcdWQ4MDBcdTU5N2QnKSBzaG91
bGQgYmUgaHR0cDovL3d3dy5leGFtcGxlLmNvbS8j77+95aW9LiBXYXMgaHR0cDovL3d3dy5leGFt
cGxlLmNvbS8jJTI2JTIzNTUyOTYlM0IlMjYlMjMyMjkwOSUzQi4KIEZBSUwgY2Fub25pY2FsaXpl
KCdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNhXHVGREQwJykgc2hvdWxkIGJlIGh0dHA6Ly93d3cu
ZXhhbXBsZS5jb20vI2Hvt5AuIFdhcyBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNhJTI2JTIzNjQ5
NzYlM0IuCi1GQUlMIGNhbm9uaWNhbGl6ZSgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jYXNkZiNx
d2VyJykgc2hvdWxkIGJlIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vI2FzZGYjcXdlci4gV2FzIGh0
dHA6Ly93d3cuZXhhbXBsZS5jb20vI2FzZGYlMjNxd2VyLgotRkFJTCBjYW5vbmljYWxpemUoJ2h0
dHA6Ly93d3cuZXhhbXBsZS5jb20vIyNhc2RmJykgc2hvdWxkIGJlIGh0dHA6Ly93d3cuZXhhbXBs
ZS5jb20vIyNhc2RmLiBXYXMgaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jJTIzYXNkZi4KK1BBU1Mg
Y2Fub25pY2FsaXplKCdodHRwOi8vd3d3LmV4YW1wbGUuY29tLyNhc2RmI3F3ZXInKSBpcyAnaHR0
cDovL3d3dy5leGFtcGxlLmNvbS8jYXNkZiNxd2VyJworUEFTUyBjYW5vbmljYWxpemUoJ2h0dHA6
Ly93d3cuZXhhbXBsZS5jb20vIyNhc2RmJykgaXMgJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vIyNh
c2RmJworUEFTUyBjYW5vbmljYWxpemUoJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vI2FcbmJccmNc
dGQnKSBpcyAnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8jYWJjZCcKIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC91cmwvc2NyaXB0LXRlc3RzL2FuY2hvci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvdXJsL3Nj
cmlwdC10ZXN0cy9hbmNob3IuanMKaW5kZXggMDM4N2E4NmI5YjRhNzFlODFlYTA1ZTcwNWY0NTli
YzQwN2I0NmQ2ZC4uODc5MWI3NDUyNGE1MDhkZDRlYzU1MWIyNmM2ZWY4MmYwMzhlNmMyNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC91cmwvc2NyaXB0LXRlc3RzL2FuY2hvci5qcworKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3VybC9zY3JpcHQtdGVzdHMvYW5jaG9yLmpzCkBAIC05LDYgKzks
NyBAQCBjYXNlcyA9IFsKICAgWyJhXFx1RkREMCIsICJhXFx1RkREMCJdLAogICBbImFzZGYjcXdl
ciIsICJhc2RmI3F3ZXIiXSwKICAgWyIjYXNkZiIsICIjYXNkZiJdLAorICBbImFcXG5iXFxyY1xc
dGQiLCAiYWJjZCJdLAogXTsKIAogZm9yICh2YXIgaSA9IDA7IGkgPCBjYXNlcy5sZW5ndGg7ICsr
aSkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC91cmwvc2VnbWVudHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC91cmwvc2VnbWVudHMtZXhwZWN0ZWQudHh0CmluZGV4IDJk
YTY5MTJjNzI2MDE2OWQ0MTM5Yzc2NjZmZGY4ODViZjRmMmI1MmEuLmY1M2ZiYjEwZTVhYzNjNjcx
ODEyYTNiNzA3YzUwMjI0ZGViNDY0M2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdXJs
L3NlZ21lbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3VybC9zZWdtZW50
cy1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw3IEBAIFBBU1Mgc2VnbWVudHMoJ2h0dHA6Zm9vLmNv
bScpIGlzICdbImh0dHA6IiwiZXhhbXBsZS5vcmciLCIwIiwiL2Zvby9mb28uY29tIiwiIiwiCiBQ
QVNTIHNlZ21lbnRzKCdcdCAgIDpmb28uY29tICAgXG4nKSBpcyAnWyJodHRwOiIsImV4YW1wbGUu
b3JnIiwiMCIsIi9mb28vOmZvby5jb20iLCIiLCIiXScKIFBBU1Mgc2VnbWVudHMoJyBmb28uY29t
ICAnKSBpcyAnWyJodHRwOiIsImV4YW1wbGUub3JnIiwiMCIsIi9mb28vZm9vLmNvbSIsIiIsIiJd
JwogUEFTUyBzZWdtZW50cygnYTpcdCBmb28uY29tJykgaXMgJ1siYToiLCIiLCIwIiwiIGZvby5j
b20iLCIiLCIiXScKLUZBSUwgc2VnbWVudHMoJ2h0dHA6Ly9mOjIxLyBiID8gZCAjIGUgJykgc2hv
dWxkIGJlIFsiaHR0cDoiLCJmIiwiMjEiLCIvJTIwYiUyMCIsIj8lMjBkJTIwIiwiIyBlIl0uIFdh
cyBbImh0dHA6IiwiZiIsIjIxIiwiLyBiICIsIj8lMjBkJTIwIiwiIyUyMGUiXS4KK0ZBSUwgc2Vn
bWVudHMoJ2h0dHA6Ly9mOjIxLyBiID8gZCAjIGUgJykgc2hvdWxkIGJlIFsiaHR0cDoiLCJmIiwi
MjEiLCIvJTIwYiUyMCIsIj8lMjBkJTIwIiwiIyBlIl0uIFdhcyBbImh0dHA6IiwiZiIsIjIxIiwi
LyBiICIsIj8lMjBkJTIwIiwiIyBlIl0uCiBQQVNTIHNlZ21lbnRzKCdodHRwOi8vZjovYycpIGlz
ICdbImh0dHA6IiwiZiIsIjAiLCIvYyIsIiIsIiJdJwogUEFTUyBzZWdtZW50cygnaHR0cDovL2Y6
MC9jJykgaXMgJ1siaHR0cDoiLCJmIiwiMCIsIi9jIiwiIiwiIl0nCiBQQVNTIHNlZ21lbnRzKCdo
dHRwOi8vZjowMDAwMDAwMDAwMDAwMC9jJykgaXMgJ1siaHR0cDoiLCJmIiwiMCIsIi9jIiwiIiwi
Il0nCkBAIC01NSw3ICs1NSw3IEBAIFBBU1Mgc2VnbWVudHMoJ2ZvbzovLy8vLy8vLy9iYXIuY29t
LycpIGlzICdbImZvbzoiLCIiLCIwIiwiLy8vLy8vLy8vYmFyLmNvbS8iLCIiCiBQQVNTIHNlZ21l
bnRzKCdmb286Ly8vLzovLy8vLycpIGlzICdbImZvbzoiLCIiLCIwIiwiLy8vLzovLy8vLyIsIiIs
IiJdJwogUEFTUyBzZWdtZW50cygnYzovZm9vJykgaXMgJ1siYzoiLCIiLCIwIiwiL2ZvbyIsIiIs
IiJdJwogUEFTUyBzZWdtZW50cygnLy9mb28vYmFyJykgaXMgJ1siaHR0cDoiLCJmb28iLCIwIiwi
L2JhciIsIiIsIiJdJwotRkFJTCBzZWdtZW50cygnaHR0cDovL2Zvby9wYXRoO2E/P2UjZiNnJykg
c2hvdWxkIGJlIFsiaHR0cDoiLCJmb28iLCIwIiwiL3BhdGg7YSIsIj8/ZSIsIiNmI2ciXS4gV2Fz
IFsiaHR0cDoiLCJmb28iLCIwIiwiL3BhdGg7YSIsIj8/ZSIsIiNmJTIzZyJdLgorUEFTUyBzZWdt
ZW50cygnaHR0cDovL2Zvby9wYXRoO2E/P2UjZiNnJykgaXMgJ1siaHR0cDoiLCJmb28iLCIwIiwi
L3BhdGg7YSIsIj8/ZSIsIiNmI2ciXScKIFBBU1Mgc2VnbWVudHMoJ2h0dHA6Ly9mb28vYWJjZD9l
ZmdoP2lqa2wnKSBpcyAnWyJodHRwOiIsImZvbyIsIjAiLCIvYWJjZCIsIj9lZmdoP2lqa2wiLCIi
XScKIFBBU1Mgc2VnbWVudHMoJ2h0dHA6Ly9mb28vYWJjZCNmb28/YmFyJykgaXMgJ1siaHR0cDoi
LCJmb28iLCIwIiwiL2FiY2QiLCIiLCIjZm9vP2JhciJdJwogUEFTUyBzZWdtZW50cygnWzYxOjI0
Ojc0XTo5OCcpIGlzICdbImh0dHA6IiwiZXhhbXBsZS5vcmciLCIwIiwiL2Zvby9bNjE6MjQ6NzRd
Ojk4IiwiIiwiIl0nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3VybC9zZWdtZW50cy1m
cm9tLWRhdGEtdXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdXJsL3NlZ21lbnRz
LWZyb20tZGF0YS11cmwtZXhwZWN0ZWQudHh0CmluZGV4IDZlMTg1M2UwYjYxN2JiMDQzNWYwZDJj
NWE0YjJiOGY3ZWM4MGE0MjcuLjZhZTkzYjgzMDg5ZGM0YmZkYzJjYzUwNzIwOTQ4YTNmOWMyNWMz
OGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdXJsL3NlZ21lbnRzLWZyb20tZGF0YS11
cmwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdXJsL3NlZ21lbnRzLWZyb20t
ZGF0YS11cmwtZXhwZWN0ZWQudHh0CkBAIC04LDcgKzgsNyBAQCBGQUlMIHNlZ21lbnRzKCdodHRw
OmZvby5jb20nKSBzaG91bGQgYmUgWyJodHRwOiIsImZvby5jb20iLCIwIiwiLyIsIiIsIiJdLiBX
YXMgWwogUEFTUyBzZWdtZW50cygnXHQgICA6Zm9vLmNvbSAgIFxuJykgaXMgJ1siOiIsIiIsIjAi
LCIiLCIiLCIiXScKIFBBU1Mgc2VnbWVudHMoJyBmb28uY29tICAnKSBpcyAnWyI6IiwiIiwiMCIs
IiIsIiIsIiJdJwogUEFTUyBzZWdtZW50cygnYTpcdCBmb28uY29tJykgaXMgJ1siYToiLCIiLCIw
IiwiIGZvby5jb20iLCIiLCIiXScKLUZBSUwgc2VnbWVudHMoJ2h0dHA6Ly9mOjIxLyBiID8gZCAj
IGUgJykgc2hvdWxkIGJlIFsiaHR0cDoiLCJmIiwiMjEiLCIvJTIwYiUyMCIsIj8lMjBkJTIwIiwi
IyBlIl0uIFdhcyBbImh0dHA6IiwiZiIsIjIxIiwiLyBiICIsIj8lMjBkJTIwIiwiIyUyMGUiXS4K
K0ZBSUwgc2VnbWVudHMoJ2h0dHA6Ly9mOjIxLyBiID8gZCAjIGUgJykgc2hvdWxkIGJlIFsiaHR0
cDoiLCJmIiwiMjEiLCIvJTIwYiUyMCIsIj8lMjBkJTIwIiwiIyBlIl0uIFdhcyBbImh0dHA6Iiwi
ZiIsIjIxIiwiLyBiICIsIj8lMjBkJTIwIiwiIyBlIl0uCiBQQVNTIHNlZ21lbnRzKCdodHRwOi8v
ZjovYycpIGlzICdbImh0dHA6IiwiZiIsIjAiLCIvYyIsIiIsIiJdJwogUEFTUyBzZWdtZW50cygn
aHR0cDovL2Y6MC9jJykgaXMgJ1siaHR0cDoiLCJmIiwiMCIsIi9jIiwiIiwiIl0nCiBQQVNTIHNl
Z21lbnRzKCdodHRwOi8vZjowMDAwMDAwMDAwMDAwMC9jJykgaXMgJ1siaHR0cDoiLCJmIiwiMCIs
Ii9jIiwiIiwiIl0nCkBAIC01NSw3ICs1NSw3IEBAIFBBU1Mgc2VnbWVudHMoJ2ZvbzovLy8vLy8v
Ly9iYXIuY29tLycpIGlzICdbImZvbzoiLCIiLCIwIiwiLy8vLy8vLy8vYmFyLmNvbS8iLCIiCiBQ
QVNTIHNlZ21lbnRzKCdmb286Ly8vLzovLy8vLycpIGlzICdbImZvbzoiLCIiLCIwIiwiLy8vLzov
Ly8vLyIsIiIsIiJdJwogUEFTUyBzZWdtZW50cygnYzovZm9vJykgaXMgJ1siYzoiLCIiLCIwIiwi
L2ZvbyIsIiIsIiJdJwogUEFTUyBzZWdtZW50cygnLy9mb28vYmFyJykgaXMgJ1siOiIsIiIsIjAi
LCIiLCIiLCIiXScKLUZBSUwgc2VnbWVudHMoJ2h0dHA6Ly9mb28vcGF0aDthPz9lI2YjZycpIHNo
b3VsZCBiZSBbImh0dHA6IiwiZm9vIiwiMCIsIi9wYXRoO2EiLCI/P2UiLCIjZiNnIl0uIFdhcyBb
Imh0dHA6IiwiZm9vIiwiMCIsIi9wYXRoO2EiLCI/P2UiLCIjZiUyM2ciXS4KK1BBU1Mgc2VnbWVu
dHMoJ2h0dHA6Ly9mb28vcGF0aDthPz9lI2YjZycpIGlzICdbImh0dHA6IiwiZm9vIiwiMCIsIi9w
YXRoO2EiLCI/P2UiLCIjZiNnIl0nCiBQQVNTIHNlZ21lbnRzKCdodHRwOi8vZm9vL2FiY2Q/ZWZn
aD9pamtsJykgaXMgJ1siaHR0cDoiLCJmb28iLCIwIiwiL2FiY2QiLCI/ZWZnaD9pamtsIiwiIl0n
CiBQQVNTIHNlZ21lbnRzKCdodHRwOi8vZm9vL2FiY2QjZm9vP2JhcicpIGlzICdbImh0dHA6Iiwi
Zm9vIiwiMCIsIi9hYmNkIiwiIiwiI2Zvbz9iYXIiXScKIEZBSUwgc2VnbWVudHMoJ1s2MToyNDo3
NF06OTgnKSBzaG91bGQgYmUgWyJkYXRhOiIsIiIsIjAiLCJ0ZXh0L1s2MToyNDo3NF06OTgiLCIi
LCIiXS4gV2FzIFsiOiIsIiIsIjAiLCIiLCIiLCIiXS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0Zjc3NmJiMzA2
OTA2NDhhZjkzYjkyMTM3MWI3NWM3YzFhYzY2ODZiLi4wMzA0YzhiNWYwMjQ3ODRiMTY3M2NkNGY1
OWQwOTIwNWRkY2E3N2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDItMDkg
IEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFk
YW0gQmFydGguCisKKyAgICAgICAgTWFrZSBXZWJLaXQncyBmcmFnbWVudCBjYW5ub25pY2FsaXph
dGlvbiBtYXRjaCBvdGhlciBicm93c2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTM4NTAKKworICAgICAgICBUaGlzIGRvZXNuJ3QgbWFrZSB1cyBt
YXRjaCBwZXJmZWN0bHksIGJ1dCBpdCBicmluZ3MgdXMgY2xvc2VyLgorCisgICAgICAgICogcGxh
dGZvcm0vS1VSTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRFc2NhcGluZ0JhZENoYXJz
KToKKyAgICAgICAgKFdlYkNvcmU6OmVzY2FwZUFuZEFwcGVuZEZyYWdtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OktVUkw6OnBhcnNlKToKKwogMjAxMS0wMi0wOCAgUnlvc3VrZSBOaXdhICA8cm5p
d2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0tVUkwuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vS1VSTC5jcHAKaW5kZXggMzVhNDhlOWFkNGRmNWNkMTYwNGU1ZjJkMTIyMWNiOTAz
M2I4OWNjOC4uZTJhZTE0YzgzYTM5YTlhYjJiZjQ0YjY1NzQ4NGIyYzAzNTI5MDJiMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vS1VSTC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vS1VSTC5jcHAKQEAgLTk2OCw2ICs5NjgsMTQgQEAgYm9vbCBLVVJMOjppc0xv
Y2FsRmlsZSgpIGNvbnN0CiAgICAgcmV0dXJuIHByb3RvY29sSXMoImZpbGUiKTsKIH0KIAorLy8g
Q2F1dGlvbjogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBib3VuZHMgY2hlY2suCitzdGF0aWMgdm9p
ZCBhcHBlbmRFc2NhcGVkQ2hhcihjaGFyKiYgYnVmZmVyLCB1bnNpZ25lZCBjaGFyIGMpCit7Cisg
ICAgKmJ1ZmZlcisrID0gJyUnOworICAgICpidWZmZXIrKyA9IGhleERpZ2l0c1tjID4+IDRdOwor
ICAgICpidWZmZXIrKyA9IGhleERpZ2l0c1tjICYgMHhGXTsKK30KKwogc3RhdGljIHZvaWQgYXBw
ZW5kRXNjYXBpbmdCYWRDaGFycyhjaGFyKiYgYnVmZmVyLCBjb25zdCBjaGFyKiBzdHJTdGFydCwg
c2l6ZV90IGxlbmd0aCkKIHsKICAgICBjaGFyKiBwID0gYnVmZmVyOwpAQCAtOTc3LDE2ICs5ODUs
MzcgQEAgc3RhdGljIHZvaWQgYXBwZW5kRXNjYXBpbmdCYWRDaGFycyhjaGFyKiYgYnVmZmVyLCBj
b25zdCBjaGFyKiBzdHJTdGFydCwgc2l6ZV90IGwKICAgICB3aGlsZSAoc3RyIDwgc3RyRW5kKSB7
CiAgICAgICAgIHVuc2lnbmVkIGNoYXIgYyA9ICpzdHIrKzsKICAgICAgICAgaWYgKGlzQmFkQ2hh
cihjKSkgewotICAgICAgICAgICAgaWYgKGMgPT0gJyUnIHx8IGMgPT0gJz8nKSB7CisgICAgICAg
ICAgICBpZiAoYyA9PSAnJScgfHwgYyA9PSAnPycpCiAgICAgICAgICAgICAgICAgKnArKyA9IGM7
Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGMgIT0gMHgwOSAmJiBjICE9IDB4MGEgJiYgYyAhPSAw
eDBkKSB7Ci0gICAgICAgICAgICAgICAgKnArKyA9ICclJzsKLSAgICAgICAgICAgICAgICAqcCsr
ID0gaGV4RGlnaXRzW2MgPj4gNF07Ci0gICAgICAgICAgICAgICAgKnArKyA9IGhleERpZ2l0c1tj
ICYgMHhGXTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVs
c2UgaWYgKGMgIT0gMHgwOSAmJiBjICE9IDB4MGEgJiYgYyAhPSAweDBkKQorICAgICAgICAgICAg
ICAgIGFwcGVuZEVzY2FwZWRDaGFyKHAsIGMpOworICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
ICpwKysgPSBjOworICAgIH0KKworICAgIGJ1ZmZlciA9IHA7Cit9CisKK3N0YXRpYyB2b2lkIGVz
Y2FwZUFuZEFwcGVuZEZyYWdtZW50KGNoYXIqJiBidWZmZXIsIGNvbnN0IGNoYXIqIHN0clN0YXJ0
LCBzaXplX3QgbGVuZ3RoKQoreworICAgIGNoYXIqIHAgPSBidWZmZXI7CisKKyAgICBjb25zdCBj
aGFyKiBzdHIgPSBzdHJTdGFydDsKKyAgICBjb25zdCBjaGFyKiBzdHJFbmQgPSBzdHJTdGFydCAr
IGxlbmd0aDsKKyAgICB3aGlsZSAoc3RyIDwgc3RyRW5kKSB7CisgICAgICAgIHVuc2lnbmVkIGNo
YXIgYyA9ICpzdHIrKzsKKyAgICAgICAgLy8gU3RyaXAgQ1IsIExGIGFuZCBUYWIgZnJvbSBmcmFn
bWVudHMsIHBlcjoKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg3NzAKKyAgICAgICAgaWYgKGMgPT0gMHgwOSB8fCBjID09IDB4MGEgfHwgYyA9PSAw
eDBkKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgLy8gQ2hyb21lIGFuZCBJRSBh
bGxvdyBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBmcmFnbWVudHMsIGhvd2V2ZXIgZG9pbmcKKyAg
ICAgICAgLy8gc28gd291bGQgaGl0IGFuIEFTU0VSVCBpbiBjaGVja0VuY29kZWRTdHJpbmcsIHNv
IGZvciBub3cgd2UgZG9uJ3QuCisgICAgICAgIGlmIChjIDwgMHgyMCB8fCBjID49IDEyNykgewor
ICAgICAgICAgICAgYXBwZW5kRXNjYXBlZENoYXIocCwgYyk7CisgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgfQorICAgICAgICAqcCsrID0gYzsKICAgICB9CiAKICAgICBidWZmZXIgPSBw
OwpAQCAtMTM1MCw3ICsxMzc5LDcgQEAgdm9pZCBLVVJMOjpwYXJzZShjb25zdCBjaGFyKiB1cmws
IGNvbnN0IFN0cmluZyogb3JpZ2luYWxTdHJpbmcpCiAgICAgLy8gYWRkIGZyYWdtZW50LCBlc2Nh
cGluZyBiYWQgY2hhcmFjdGVycwogICAgIGlmIChmcmFnbWVudEVuZCAhPSBxdWVyeUVuZCkgewog
ICAgICAgICAqcCsrID0gJyMnOwotICAgICAgICBhcHBlbmRFc2NhcGluZ0JhZENoYXJzKHAsIHVy
bCArIGZyYWdtZW50U3RhcnQsIGZyYWdtZW50RW5kIC0gZnJhZ21lbnRTdGFydCk7CisgICAgICAg
IGVzY2FwZUFuZEFwcGVuZEZyYWdtZW50KHAsIHVybCArIGZyYWdtZW50U3RhcnQsIGZyYWdtZW50
RW5kIC0gZnJhZ21lbnRTdGFydCk7CiAgICAgfQogICAgIG1fZnJhZ21lbnRFbmQgPSBwIC0gYnVm
ZmVyLmRhdGEoKTsKIApAQCAtMTQxNiwxMSArMTQ0NSw5IEBAIFN0cmluZyBlbmNvZGVXaXRoVVJM
RXNjYXBlU2VxdWVuY2VzKGNvbnN0IFN0cmluZyYgbm90RW5jb2RlZFN0cmluZykKICAgICBjb25z
dCBjaGFyKiBzdHJFbmQgPSBzdHIgKyBhc1VURjgubGVuZ3RoKCk7CiAgICAgd2hpbGUgKHN0ciA8
IHN0ckVuZCkgewogICAgICAgICB1bnNpZ25lZCBjaGFyIGMgPSAqc3RyKys7Ci0gICAgICAgIGlm
IChpc0JhZENoYXIoYykpIHsKLSAgICAgICAgICAgICpwKysgPSAnJSc7Ci0gICAgICAgICAgICAq
cCsrID0gaGV4RGlnaXRzW2MgPj4gNF07Ci0gICAgICAgICAgICAqcCsrID0gaGV4RGlnaXRzW2Mg
JiAweEZdOwotICAgICAgICB9IGVsc2UKKyAgICAgICAgaWYgKGlzQmFkQ2hhcihjKSkKKyAgICAg
ICAgICAgIGFwcGVuZEVzY2FwZWRDaGFyKHAsIGMpOworICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAqcCsrID0gYzsKICAgICB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>