<?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>25930</bug_id>
          
          <creation_ts>2009-05-21 07:00:06 -0700</creation_ts>
          <short_desc>Mismatched free</short_desc>
          <delta_ts>2009-09-10 10:40:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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="xxx">webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>playmobil</cc>
    
    <cc>yong.li.webkit</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>122345</commentid>
    <comment_count>0</comment_count>
    <who name="xxx">webkit</who>
    <bug_when>2009-05-21 07:00:06 -0700</bug_when>
    <thetext>valgrind reports free is called where delete[] should be called.
Not sure if bug is at CSS or WTF

WebKit-r43887/WebKit/qt/tests/qwebpage&gt; valgrind --track-origins=yes ./tst_qwebpage

=8572== Mismatched free() / delete / delete []
==8572==    at 0x4023E5A: free (vg_replace_malloc.c:323)
==8572==    by 0x42FD0D5: WTF::fastFree(void*) (FastMalloc.cpp:216)
==8572==    by 0x43DA8B8: WebCore::CSSSelectorList::adoptSelectorVector(WTF::Vector&lt;WebCore::CSSSelector*, 0u&gt;&amp;) (CSSSelectorList.cpp:57)
==8572==    by 0x43C4F8E: WebCore::CSSStyleRule::adoptSelectorVector(WTF::Vector&lt;WebCore::CSSSelector*, 0u&gt;&amp;) (CSSStyleRule.h:53)
==8572==    by 0x43C213E: WebCore::CSSParser::createStyleRule(WTF::Vector&lt;WebCore::CSSSelector*, 0u&gt;*) (CSSParser.cpp:4547)
==8572==    by 0x4C85EEF: cssyyparse(void*) (CSSGrammar.y:790)
==8572==    by 0x43ACAAB: WebCore::CSSParser::parseSheet(WebCore::CSSStyleSheet*, WebCore::String const&amp;) (CSSParser.cpp:224)
==8572==    by 0x441761E: WebCore::CSSStyleSheet::parseString(WebCore::String const&amp;, bool) (CSSStyleSheet.cpp:164)
==8572==    by 0x43DFE14: WebCore::parseUASheet(WebCore::String const&amp;) (CSSStyleSelector.cpp:489)
==8572==    by 0x43DFE51: WebCore::parseUASheet(char const*, unsigned int) (CSSStyleSelector.cpp:495)
==8572==    by 0x43E02EB: WebCore::loadSimpleDefaultStyle() (CSSStyleSelector.cpp:534)
==8572==    by 0x43DEEEB: WebCore::CSSStyleSelector::CSSStyleSelector(WebCore::Document*, WebCore::String const&amp;, WebCore::StyleSheetList*, WebCore::CSSStyleSheet*, bool, bool) (CSSStyleSelector.cpp:409)
==8572==    by 0x4439BEF: WebCore::Document::attach() (Document.cpp:1271)
==8572==    by 0x4689111: WebCore::Frame::setDocument(WTF::PassRefPtr&lt;WebCore::Document&gt;) (Frame.cpp:245)
==8572==    by 0x4606CA7: WebCore::FrameLoader::begin(WebCore::KURL const&amp;, bool, WebCore::SecurityOrigin*) (FrameLoader.cpp:938)
==8572==  Address 0x6c8c348 is 0 bytes inside a block of size 16 alloc&apos;d
==8572==    at 0x4024A4E: operator new(unsigned int) (vg_replace_malloc.c:224)
==8572==    by 0x43C1333: WebCore::CSSParser::createFloatingSelector() (CSSParser.cpp:4382)
==8572==    by 0x4C86343: cssyyparse(void*) (CSSGrammar.y:881)
==8572==    by 0x43ACAAB: WebCore::CSSParser::parseSheet(WebCore::CSSStyleSheet*, WebCore::String const&amp;) (CSSParser.cpp:224)
==8572==    by 0x441761E: WebCore::CSSStyleSheet::parseString(WebCore::String const&amp;, bool) (CSSStyleSheet.cpp:164)
==8572==    by 0x43DFE14: WebCore::parseUASheet(WebCore::String const&amp;) (CSSStyleSelector.cpp:489)
==8572==    by 0x43DFE51: WebCore::parseUASheet(char const*, unsigned int) (CSSStyleSelector.cpp:495)
==8572==    by 0x43E02EB: WebCore::loadSimpleDefaultStyle() (CSSStyleSelector.cpp:534)
==8572==    by 0x43DEEEB: WebCore::CSSStyleSelector::CSSStyleSelector(WebCore::Document*, WebCore::String const&amp;, WebCore::StyleSheetList*, WebCore::CSSStyleSheet*, bool, bool) (CSSStyleSelector.cpp:409)
==8572==    by 0x4439BEF: WebCore::Document::attach() (Document.cpp:1271)
==8572==    by 0x4689111: WebCore::Frame::setDocument(WTF::PassRefPtr&lt;WebCore::Document&gt;) (Frame.cpp:245)
==8572==    by 0x4606CA7: WebCore::FrameLoader::begin(WebCore::KURL const&amp;, bool, WebCore::SecurityOrigin*) (FrameLoader.cpp:938)
==8572==    by 0x4603631: WebCore::FrameLoader::init() (FrameLoader.cpp:292)
==8572==    by 0x4688E02: WebCore::Frame::init() (Frame.cpp:189)
==8572==    by 0x486B5A7: QWebFramePrivate::init(QWebFrame*, WebCore::Page*, QWebFrameData*) (qwebframe.cpp:130)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131347</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-07-13 10:31:51 -0700</bug_when>
    <thetext>*** Bug 27211 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144480</commentid>
    <comment_count>2</comment_count>
      <attachid>38980</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2009-09-03 04:50:01 -0700</bug_when>
    <thetext>Created attachment 38980
proposed patch

What is your opinion about this solution?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144493</commentid>
    <comment_count>3</comment_count>
    <who name="xxx">webkit</who>
    <bug_when>2009-09-03 06:19:12 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Created an attachment (id=38980) [details]
&gt; proposed patch
&gt; 
&gt; What is your opinion about this solution?

Not sure the question is addressed to me, since I&apos;m not acquanted with the project, but reviewing the implementation of fastNew/fastDelte, it sounds good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144543</commentid>
    <comment_count>4</comment_count>
      <attachid>38980</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-03 10:33:04 -0700</bug_when>
    <thetext>Comment on attachment 38980
proposed patch

This may quiet valgrind, but it doesn&apos;t solve the problem.

There&apos;s still a mismatch. The allocation is fastNew of a CSSSelector and the deallocation is fastDelete of a char. The fact that this currently works doesn&apos;t mean it&apos;s matched up.

This also introduces a new mismatch, between the fastNew in CSSParser::createFloatingSelector() and the delete done by the call to deleteAllValues in ~CSSParser. If we change to fastNew we need to change the delete to fastDelete.

The usage should be just fastDelete, not WTF::fastDelete.

---

We could add a variant of fastDelete that does not call a destructor, and fix the mismatch that way. There may be some other good solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146179</commentid>
    <comment_count>5</comment_count>
      <attachid>39346</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2009-09-10 06:49:35 -0700</bug_when>
    <thetext>Created attachment 39346
updated proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146183</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-10 06:57:16 -0700</bug_when>
    <thetext>*** Bug 28726 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146184</commentid>
    <comment_count>7</comment_count>
      <attachid>39346</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-10 07:03:19 -0700</bug_when>
    <thetext>Comment on attachment 39346
updated proposed patch

The name fastPureDelete isn&apos;t so clear. I think fastDeleteSkippingDestructor would be better.

I think that &quot;pure&quot; is not a good term because it makes it sound like the other delete is not as good as this one. It&apos;s this strange deletion without destruction that needs the longer, uglier names.

&gt; +    template &lt;typename T&gt;
&gt; +    inline void fastPureDelete(T* p)

&gt; -// Using WTF::FastAllocBase to avoid using FastAllocBase&apos;s explicit qualification by WTF::.
&gt; +// Avoid explicit qualification by WTF::

I don&apos;t think there should be a comment here at all. The other WTF files don&apos;t have a comment before their using statements.

&gt; +    template&lt;typename ValueType, typename HashTableType&gt;
&gt; +    void fastDeleteAllValues(HashTableType&amp; collection)
&gt; +    {
&gt; +        typedef typename HashTableType::const_iterator iterator;
&gt; +        iterator end = collection.end();
&gt; +        for (iterator it = collection.begin(); it != end; ++it)
&gt; +            fastDelete(*it);
&gt; +    }
&gt; +
&gt; +    template&lt;typename T, typename U, typename V&gt;
&gt; +    inline void fastDeleteAllValues(const HashSet&lt;T, U, V&gt;&amp; collection)
&gt; +    {
&gt; +        fastDeleteAllValues&lt;typename HashSet&lt;T, U, V&gt;::ValueType&gt;(collection.m_impl);
&gt; +    }

It&apos;s very sad to have two versions of this because we have two versions of delete. In the end it&apos;s not scalable to have two of everything related to new and delete.

r=me because my only quibble is with a function name</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146185</commentid>
    <comment_count>8</comment_count>
      <attachid>39346</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-10 07:04:29 -0700</bug_when>
    <thetext>Comment on attachment 39346
updated proposed patch

&gt; Index: JavaScriptCore/wtf/HashSet.h
&gt; ===================================================================
&gt; --- JavaScriptCore/wtf/HashSet.h	(revision 47860)
&gt; +++ JavaScriptCore/wtf/HashSet.h	(working copy)
&gt; @@ -91,7 +91,7 @@ namespace WTF {
&gt;  
&gt;      private:
&gt;          friend void deleteAllValues&lt;&gt;(const HashSet&amp;);
&gt; -
&gt; +    public:
&gt;          HashTableType m_impl;
&gt;      };

Wait, this isn&apos;t right!? m_impl should not be public! The fastDeleteAllValues function needs to be a friend just as deleteAllValues is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146194</commentid>
    <comment_count>9</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-09-10 07:32:13 -0700</bug_when>
    <thetext>*** Bug 29116 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146212</commentid>
    <comment_count>10</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-09-10 09:00:25 -0700</bug_when>
    <thetext>When USE_SYSTEM_ALLOC=1 (or USE_FAST_ALLOC_BASE=0), we should disable FastAllocBase.

namespace WTF {

    class FastAllocBase {
    };

    template &lt;typename T&gt;
    inline T* fastNew() { return new T; }

    template &lt;typename T, typename Arg1&gt;
    inline T* fastNew(Arg1 arg1) { return new T(arg1); }

    template &lt;typename T, typename Arg1, typename Arg2&gt;
    inline T* fastNew(Arg1 arg1, Arg2 arg2) { return new T(arg1, arg2); }

    template &lt;typename T, typename Arg1, typename Arg2, typename Arg3&gt;
    inline T* fastNew(Arg1 arg1, Arg2 arg2, Arg3 arg3) { return new T(arg1, arg2, arg3); }

    template &lt;typename T, typename Arg1, typename Arg2, typename Arg3, typename Arg4&gt;
    inline T* fastNew(Arg1 arg1, Arg2 arg2, Arg3 arg3, Arg4 arg4) { return new T(arg1, arg2, arg3, arg4); }

    template &lt;typename T, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5&gt;
    inline T* fastNew(Arg1 arg1, Arg2 arg2, Arg3 arg3, Arg4 arg4, Arg5 arg5) { return new T(arg1, arg2, arg3, arg4, arg5); }

    template &lt;typename T&gt;
    inline T* fastNewArray(size_t count) { return new T[count]; }

    template &lt;typename T&gt;
    inline void fastDelete(T* p) { delete p; }

    template &lt;typename T&gt;
    inline void fastDeleteArray(T* p) { delete[] p; }

    template &lt;typename T&gt;
    inline void fastNonNullDelete(T* p) { delete p; }

    template &lt;typename T&gt;
    inline void fastNonNullDeleteArray(T* p) { delete[] p; }

} // namespace WTF</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146218</commentid>
    <comment_count>11</comment_count>
      <attachid>39352</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2009-09-10 09:28:21 -0700</bug_when>
    <thetext>Created attachment 39352
updated proposed patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146220</commentid>
    <comment_count>12</comment_count>
      <attachid>39352</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-10 09:33:32 -0700</bug_when>
    <thetext>Comment on attachment 39352
updated proposed patch v2

&gt; -        delete reinterpret_cast&lt;char*&gt;(selectorVector[i]);
&gt; +        fastDeleteSkippingDestructor(reinterpret_cast&lt;char*&gt;(selectorVector[i]));

This is wrong. There is no need for the reinterpret_cast any more. Also the comment needs to be updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146228</commentid>
    <comment_count>13</comment_count>
      <attachid>39353</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2009-09-10 09:45:05 -0700</bug_when>
    <thetext>Created attachment 39353
updated proposed file v3

Darin: I did all modifications that you mentioned. Sorry for the mistakes...

Yong Li: I think we shouldn&apos;t disable FastAllocBase in the case of USE_SYSTEM_MALLOC=1, because that should work with USE_SYSTEM_MALLOC=1 as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146251</commentid>
    <comment_count>14</comment_count>
      <attachid>39353</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-10 10:22:02 -0700</bug_when>
    <thetext>Comment on attachment 39353
updated proposed file v3

&gt; -        // We want to free the memory (which was allocated with new), but we
&gt; +        // We want to free the memory (which was allocated with fastNew), but we
&gt;          // don&apos;t want the destructor to run since it will affect the copy
&gt; -        // we&apos;ve just made. In theory this is undefined, but operator delete
&gt; -        // is only defined taking a void*, so in practice it should be ok.
&gt; -        delete reinterpret_cast&lt;char*&gt;(selectorVector[i]);
&gt; +        // we&apos;ve just made. We use fastDeleteSkippingDestructor function, because
&gt; +        // that is releasing without destructor call.
&gt; +        fastDeleteSkippingDestructor(selectorVector[i]);

I think we should leave out the last sentence of the comment here. The name of the function is clear enough and matches the comment in an obvious way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146255</commentid>
    <comment_count>15</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2009-09-10 10:40:24 -0700</bug_when>
    <thetext>I did the comment change.

Landed in @48259. http://trac.webkit.org/changeset/48259</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38980</attachid>
            <date>2009-09-03 04:50:01 -0700</date>
            <delta_ts>2009-09-10 06:49:35 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>cssselector.patch</filename>
            <type>text/plain</type>
            <size>2061</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODAxNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDktMDktMDMgIFpvbHRhbiBIb3J2YXRoICA8aHpvbHRhbkBpbmYu
dS1zemVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIGZhc3ROZXcgaW5zdGVhZCBvZiBuZXcgZm9yIENTU1NlbGVjdG9yIGNsYXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTkzMAorCisg
ICAgICAgIFVzZSBmYXN0TmV3IGFuZCBmYXN0RGVsZXRlIGluc3RlYWQgb2Ygb3BlcmF0b3IgbmV3
IGFuZCBkZWxldGUgZm9yCisgICAgICAgIENTU1NlbGVjdG9yIGNsYXNzLiBUaGlzIHNvbHV0aW9u
IGZpeGVzIHZhbGdyaW5kJ3MgJ21pc21hdGNoZWQgZnJlZScKKyAgICAgICAgbm90aWZpY2F0aW9u
LgorCisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
YXJzZXI6OmNyZWF0ZUZsb2F0aW5nU2VsZWN0b3IpOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rv
ckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JMaXN0OjphZG9wdFNlbGVj
dG9yVmVjdG9yKToKKwogMjAwOS0wOS0wMyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBXZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJ
KHJldmlzaW9uIDQ4MDEyKQorKysgV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDc3NCw3ICs0Nzc0LDcgQEAgVUNoYXIqIENTU1BhcnNlcjo6dGV4dChpbnQgKmxl
bmd0aCkKIAogQ1NTU2VsZWN0b3IqIENTU1BhcnNlcjo6Y3JlYXRlRmxvYXRpbmdTZWxlY3Rvcigp
CiB7Ci0gICAgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yID0gbmV3IENTU1NlbGVjdG9yOworICAgIENT
U1NlbGVjdG9yKiBzZWxlY3RvciA9IGZhc3ROZXc8Q1NTU2VsZWN0b3I+KCk7CiAgICAgbV9mbG9h
dGluZ1NlbGVjdG9ycy5hZGQoc2VsZWN0b3IpOwogICAgIHJldHVybiBzZWxlY3RvcjsKIH0KSW5k
ZXg6IFdlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcAkocmV2aXNpb24gNDgwMTIpCisrKyBXZWJDb3JlL2Nz
cy9DU1NTZWxlY3Rvckxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIHZv
aWQgQ1NTU2VsZWN0b3JMaXN0OjphZG9wdFNlbGVjdG9yVmVjdG8KICAgICAgICAgLy8gZG9uJ3Qg
d2FudCB0aGUgZGVzdHJ1Y3RvciB0byBydW4gc2luY2UgaXQgd2lsbCBhZmZlY3QgdGhlIGNvcHkK
ICAgICAgICAgLy8gd2UndmUganVzdCBtYWRlLiBJbiB0aGVvcnkgdGhpcyBpcyB1bmRlZmluZWQs
IGJ1dCBvcGVyYXRvciBkZWxldGUKICAgICAgICAgLy8gaXMgb25seSBkZWZpbmVkIHRha2luZyBh
IHZvaWQqLCBzbyBpbiBwcmFjdGljZSBpdCBzaG91bGQgYmUgb2suCi0gICAgICAgIGRlbGV0ZSBy
ZWludGVycHJldF9jYXN0PGNoYXIqPihzZWxlY3RvclZlY3RvcltpXSk7CisgICAgICAgIFdURjo6
ZmFzdERlbGV0ZShyZWludGVycHJldF9jYXN0PGNoYXIqPihzZWxlY3RvclZlY3RvcltpXSkpOwog
ICAgICAgICBBU1NFUlQoIW1fc2VsZWN0b3JBcnJheVtpXS5pc0xhc3RJblNlbGVjdG9yTGlzdCgp
KTsKICAgICB9CiAgICAgbV9zZWxlY3RvckFycmF5W3NpemUgLSAxXS5zZXRMYXN0SW5TZWxlY3Rv
ckxpc3QoKTsK
</data>
<flag name="review"
          id="19998"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39346</attachid>
            <date>2009-09-10 06:49:35 -0700</date>
            <delta_ts>2009-09-10 09:28:21 -0700</delta_ts>
            <desc>updated proposed patch</desc>
            <filename>mismatched.patch</filename>
            <type>text/plain</type>
            <size>5592</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ4MjUyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDktMDktMTAgIFpvbHRhbiBI
b3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGZhc3RQdXJlRGVsZXRlIGZvciBGYXN0QWxs
b2NCYXNlIGFuZCBmYXN0RGVsZXRlQWxsVmFsdWVzIGZvciBIYXNoU2V0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTkzMAorCisgICAgICAgIEZhc3RB
bGxvY0Jhc2UgaGFzIGJlZW4gZXh0ZW5kZWQgd2l0aCBmYXN0UHVyZURlbGV0ZSBmdW5jdGlvbiB3
aGljaAorICAgICAgICByZWxlYXNlcyBtZW1vcnkgd2l0aG91dCBkZXN0cnVjdG9yIGNhbGwuIGZh
c3REZWxldGVBbGxWYWx1ZXMgaGFzIGJlZW4gaW1wbGVtZW50ZWQgCisgICAgICAgIHNpbWlsYXIg
YXMgZGVsZXRlQWxsVmFsdWVzIGJ1dCBpdCB1c2VzIGZhc3REZWxldGUgZnVuY3Rpb24gdG8gcmVs
ZWFzZSBtZW1vcnkuCisKKyAgICAgICAgKiB3dGYvRmFzdEFsbG9jQmFzZS5oOgorICAgICAgICAo
V1RGOjpmYXN0UHVyZURlbGV0ZSk6CisgICAgICAgICogd3RmL0hhc2hTZXQuaDoKKyAgICAgICAg
KFdURjo6ZmFzdERlbGV0ZUFsbFZhbHVlcyk6CisKIDIwMDktMDktMTAgIExhc3psbyBHb21ib3Mg
IDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgpJbmRleDogSmF2YVNjcmlwdENvcmUvd3RmL0Zhc3RBbGxvY0Jhc2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvRmFzdEFsbG9jQmFzZS5oCShyZXZpc2lvbiA0Nzg2
MCkKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9GYXN0QWxsb2NCYXNlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMwMSw2ICszMDEsMTYgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIGZhc3RGcmVlKHAp
OwogICAgIH0KIAorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgIGlubGluZSB2b2lkIGZh
c3RQdXJlRGVsZXRlKFQqIHApCisgICAgeworICAgICAgICBpZiAoIXApCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgZmFzdE1hbGxvY01hdGNoVmFsaWRhdGVGcmVlKHAsIEludGVybmFs
OjpBbGxvY1R5cGVGYXN0TmV3KTsKKyAgICAgICAgZmFzdEZyZWUocCk7CisgICAgfQorCiAgICAg
bmFtZXNwYWNlIEludGVybmFsIHsKICAgICAgICAgLy8gVGhpcyBpcyBhIHN1cHBvcnQgdGVtcGxh
dGUgZm9yIGZhc3REZWxldGVBcnJheS4KICAgICAgICAgLy8gVGhpcyBoYW5kbGVzIHRoZSBjYXNl
IHdoZXJlaW4gVCBoYXMgYSB0cml2aWFsIGR0b3IuCkBAIC0zOTcsNyArNDA3LDggQEAgbmFtZXNw
YWNlIFdURiB7CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCi0vLyBVc2luZyBXVEY6OkZhc3RBbGxv
Y0Jhc2UgdG8gYXZvaWQgdXNpbmcgRmFzdEFsbG9jQmFzZSdzIGV4cGxpY2l0IHF1YWxpZmljYXRp
b24gYnkgV1RGOjouCisvLyBBdm9pZCBleHBsaWNpdCBxdWFsaWZpY2F0aW9uIGJ5IFdURjo6CiB1
c2luZyBXVEY6OkZhc3RBbGxvY0Jhc2U7Cit1c2luZyBXVEY6OmZhc3RQdXJlRGVsZXRlOwogCiAj
ZW5kaWYgLy8gRmFzdEFsbG9jQmFzZV9oCkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYvSGFzaFNl
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi9IYXNoU2V0LmgJKHJldmlzaW9u
IDQ3ODYwKQorKysgSmF2YVNjcmlwdENvcmUvd3RmL0hhc2hTZXQuaAkod29ya2luZyBjb3B5KQpA
QCAtOTEsNyArOTEsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAg
IGZyaWVuZCB2b2lkIGRlbGV0ZUFsbFZhbHVlczw+KGNvbnN0IEhhc2hTZXQmKTsKLQorICAgIHB1
YmxpYzoKICAgICAgICAgSGFzaFRhYmxlVHlwZSBtX2ltcGw7CiAgICAgfTsKIApAQCAtMjUxLDYg
KzI1MSwyMSBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB7CiAgICAgICAgIGRlbGV0ZUFsbFZhbHVl
czx0eXBlbmFtZSBIYXNoU2V0PFQsIFUsIFY+OjpWYWx1ZVR5cGU+KGNvbGxlY3Rpb24ubV9pbXBs
KTsKICAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1lIEhh
c2hUYWJsZVR5cGU+CisgICAgdm9pZCBmYXN0RGVsZXRlQWxsVmFsdWVzKEhhc2hUYWJsZVR5cGUm
IGNvbGxlY3Rpb24pCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEhhc2hUYWJsZVR5
cGU6OmNvbnN0X2l0ZXJhdG9yIGl0ZXJhdG9yOworICAgICAgICBpdGVyYXRvciBlbmQgPSBjb2xs
ZWN0aW9uLmVuZCgpOworICAgICAgICBmb3IgKGl0ZXJhdG9yIGl0ID0gY29sbGVjdGlvbi5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAgICAgICBmYXN0RGVsZXRlKCppdCk7CisgICAg
fQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgVj4KKyAg
ICBpbmxpbmUgdm9pZCBmYXN0RGVsZXRlQWxsVmFsdWVzKGNvbnN0IEhhc2hTZXQ8VCwgVSwgVj4m
IGNvbGxlY3Rpb24pCisgICAgeworICAgICAgICBmYXN0RGVsZXRlQWxsVmFsdWVzPHR5cGVuYW1l
IEhhc2hTZXQ8VCwgVSwgVj46OlZhbHVlVHlwZT4oY29sbGVjdGlvbi5tX2ltcGwpOworICAgIH0K
ICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0
eXBlbmFtZSBXPgogICAgIGlubGluZSB2b2lkIGNvcHlUb1ZlY3Rvcihjb25zdCBIYXNoU2V0PFQs
IFUsIFY+JiBjb2xsZWN0aW9uLCBXJiB2ZWN0b3IpCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNDgyNTIpCisrKyBXZWJD
b3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDA5LTA5LTEw
ICBab2x0YW4gSG9ydmF0aCAgPHpvbHRhbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBmYXN0TmV3IGFuZCBmYXN0RGVsZXRl
IGluc3RlYWQgb2Ygb3BlcmF0b3IgbmV3IGFuZCBkZWxldGUgZm9yIENTU1NlbGVjdG9yIGNsYXNz
LiAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1OTMw
CisKKyAgICAgICAgQ2hhbmdlIHVzaW5nIG9mIG9wZXJhdG9yIG5ldyB0byBmYXN0TmV3IGFuZCBv
cGVyYXRvciBkZWxldGUgdG8KKyAgICAgICAgZmFzdFB1cmVEZWxldGUgZm9yIENTU1NlbGVjdG9y
IGNsYXNzIHRvIGF2b2lkIG1pc21hdGNoZWQgZnVuY3Rpb24gY2FsbC4KKworICAgICAgICBUaGlz
IGNoYW5nZSBmaXhlcyB2YWxncmluZCdzICdtaXNtYXRjaGVkIGZyZWUnIG5vdGlmaWNhdGlvbi4K
KworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyOjp+Q1NTUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlRmxv
YXRpbmdTZWxlY3Rvcik6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvckxpc3Q6OmFkb3B0U2VsZWN0b3JWZWN0b3IpOgorCiAy
MDA5LTA5LTA5ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4KSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkocmV2aXNp
b24gNDc4NjApCisrKyBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNjgsNyArMTY4LDcgQEAgQ1NTUGFyc2VyOjp+Q1NTUGFyc2VyKCkKICAgICB9CiAgICAgZGVs
ZXRlIG1fZmxvYXRpbmdNZWRpYVF1ZXJ5RXhwOwogICAgIGRlbGV0ZSBtX2Zsb2F0aW5nTWVkaWFR
dWVyeTsKLSAgICBkZWxldGVBbGxWYWx1ZXMobV9mbG9hdGluZ1NlbGVjdG9ycyk7CisgICAgZmFz
dERlbGV0ZUFsbFZhbHVlcyhtX2Zsb2F0aW5nU2VsZWN0b3JzKTsKICAgICBkZWxldGVBbGxWYWx1
ZXMobV9mbG9hdGluZ1ZhbHVlTGlzdHMpOwogICAgIGRlbGV0ZUFsbFZhbHVlcyhtX2Zsb2F0aW5n
RnVuY3Rpb25zKTsKICAgICBkZWxldGVBbGxWYWx1ZXMobV9yZXVzYWJsZVNlbGVjdG9yVmVjdG9y
KTsKQEAgLTQ3MDYsNyArNDcwNiw3IEBAIFVDaGFyKiBDU1NQYXJzZXI6OnRleHQoaW50ICpsZW5n
dGgpCiAKIENTU1NlbGVjdG9yKiBDU1NQYXJzZXI6OmNyZWF0ZUZsb2F0aW5nU2VsZWN0b3IoKQog
ewotICAgIENTU1NlbGVjdG9yKiBzZWxlY3RvciA9IG5ldyBDU1NTZWxlY3RvcjsKKyAgICBDU1NT
ZWxlY3Rvciogc2VsZWN0b3IgPSBmYXN0TmV3PENTU1NlbGVjdG9yPigpOwogICAgIG1fZmxvYXRp
bmdTZWxlY3RvcnMuYWRkKHNlbGVjdG9yKTsKICAgICByZXR1cm4gc2VsZWN0b3I7CiB9CkluZGV4
OiBXZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
Y3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAJKHJldmlzaW9uIDQ3ODYwKQorKysgV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3JMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCB2b2lk
IENTU1NlbGVjdG9yTGlzdDo6YWRvcHRTZWxlY3RvclZlY3RvCiAgICAgICAgIC8vIGRvbid0IHdh
bnQgdGhlIGRlc3RydWN0b3IgdG8gcnVuIHNpbmNlIGl0IHdpbGwgYWZmZWN0IHRoZSBjb3B5CiAg
ICAgICAgIC8vIHdlJ3ZlIGp1c3QgbWFkZS4gSW4gdGhlb3J5IHRoaXMgaXMgdW5kZWZpbmVkLCBi
dXQgb3BlcmF0b3IgZGVsZXRlCiAgICAgICAgIC8vIGlzIG9ubHkgZGVmaW5lZCB0YWtpbmcgYSB2
b2lkKiwgc28gaW4gcHJhY3RpY2UgaXQgc2hvdWxkIGJlIG9rLgotICAgICAgICBkZWxldGUgcmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4oc2VsZWN0b3JWZWN0b3JbaV0pOworICAgICAgICBmYXN0UHVy
ZURlbGV0ZShyZWludGVycHJldF9jYXN0PGNoYXIqPihzZWxlY3RvclZlY3RvcltpXSkpOwogICAg
ICAgICBBU1NFUlQoIW1fc2VsZWN0b3JBcnJheVtpXS5pc0xhc3RJblNlbGVjdG9yTGlzdCgpKTsK
ICAgICB9CiAgICAgbV9zZWxlY3RvckFycmF5W3NpemUgLSAxXS5zZXRMYXN0SW5TZWxlY3Rvckxp
c3QoKTsK
</data>
<flag name="review"
          id="20431"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39352</attachid>
            <date>2009-09-10 09:28:21 -0700</date>
            <delta_ts>2009-09-10 09:45:05 -0700</delta_ts>
            <desc>updated proposed patch v2</desc>
            <filename>mismatched.patch</filename>
            <type>text/plain</type>
            <size>6147</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ4MjUyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDktMDktMTAgIFpvbHRhbiBI
b3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGZhc3REZWxldGVTa2lwcGluZ0Rlc3RydWN0
b3IgZm9yIEZhc3RBbGxvY0Jhc2UgYW5kIGZhc3REZWxldGVBbGxWYWx1ZXMgZm9yIEhhc2hTZXQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1OTMwCisK
KyAgICAgICAgRmFzdEFsbG9jQmFzZSBoYXMgYmVlbiBleHRlbmRlZCB3aXRoIGZhc3REZWxldGVT
a2lwcGluZ0Rlc3RydWN0b3IgZnVuY3Rpb24gd2hpY2gKKyAgICAgICAgcmVsZWFzZXMgbWVtb3J5
IHdpdGhvdXQgZGVzdHJ1Y3RvciBjYWxsLiBmYXN0RGVsZXRlQWxsVmFsdWVzIGhhcyBiZWVuIGlt
cGxlbWVudGVkIAorICAgICAgICBzaW1pbGFyIGFzIGRlbGV0ZUFsbFZhbHVlcyBidXQgaXQgdXNl
cyBmYXN0RGVsZXRlIGZ1bmN0aW9uIHRvIHJlbGVhc2UgbWVtb3J5LgorCisgICAgICAgICogd3Rm
L0Zhc3RBbGxvY0Jhc2UuaDoKKyAgICAgICAgKFdURjo6ZmFzdFB1cmVEZWxldGUpOgorICAgICAg
ICAqIHd0Zi9IYXNoU2V0Lmg6CisgICAgICAgIChXVEY6OmZhc3REZWxldGVBbGxWYWx1ZXMpOgor
CiAyMDA5LTA5LTEwICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IEphdmFTY3JpcHRDb3Jl
L3d0Zi9GYXN0QWxsb2NCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL0Zh
c3RBbGxvY0Jhc2UuaAkocmV2aXNpb24gNDc4NjApCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvRmFz
dEFsbG9jQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMDEsNiArMzAxLDE2IEBAIG5hbWVzcGFj
ZSBXVEYgewogICAgICAgICBmYXN0RnJlZShwKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KKyAgICBpbmxpbmUgdm9pZCBmYXN0RGVsZXRlU2tpcHBpbmdEZXN0cnVjdG9yKFQq
IHApCisgICAgeworICAgICAgICBpZiAoIXApCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgZmFzdE1hbGxvY01hdGNoVmFsaWRhdGVGcmVlKHAsIEludGVybmFsOjpBbGxvY1R5cGVGYXN0
TmV3KTsKKyAgICAgICAgZmFzdEZyZWUocCk7CisgICAgfQorCiAgICAgbmFtZXNwYWNlIEludGVy
bmFsIHsKICAgICAgICAgLy8gVGhpcyBpcyBhIHN1cHBvcnQgdGVtcGxhdGUgZm9yIGZhc3REZWxl
dGVBcnJheS4KICAgICAgICAgLy8gVGhpcyBoYW5kbGVzIHRoZSBjYXNlIHdoZXJlaW4gVCBoYXMg
YSB0cml2aWFsIGR0b3IuCkBAIC0zOTcsNyArNDA3LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAKIH0g
Ly8gbmFtZXNwYWNlIFdURgogCi0vLyBVc2luZyBXVEY6OkZhc3RBbGxvY0Jhc2UgdG8gYXZvaWQg
dXNpbmcgRmFzdEFsbG9jQmFzZSdzIGV4cGxpY2l0IHF1YWxpZmljYXRpb24gYnkgV1RGOjouCiB1
c2luZyBXVEY6OkZhc3RBbGxvY0Jhc2U7Cit1c2luZyBXVEY6OmZhc3REZWxldGVTa2lwcGluZ0Rl
c3RydWN0b3I7CiAKICNlbmRpZiAvLyBGYXN0QWxsb2NCYXNlX2gKSW5kZXg6IEphdmFTY3JpcHRD
b3JlL3d0Zi9IYXNoU2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL0hhc2hT
ZXQuaAkocmV2aXNpb24gNDc4NjApCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvSGFzaFNldC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFp
dHM+IGNsYXNzIEhhc2hTZXQ7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1l
IEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cz4KICAgICB2b2lkIGRlbGV0ZUFsbFZhbHVl
cyhjb25zdCBIYXNoU2V0PFZhbHVlLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHM+Jik7CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRy
YWl0cz4KKyAgICB2b2lkIGZhc3REZWxldGVBbGxWYWx1ZXMoY29uc3QgSGFzaFNldDxWYWx1ZSwg
SGFzaEZ1bmN0aW9ucywgVHJhaXRzPiYpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3Ry
dWN0IElkZW50aXR5RXh0cmFjdG9yOwogCkBAIC05MSw2ICs5Myw3IEBAIG5hbWVzcGFjZSBXVEYg
ewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIHZvaWQgZGVsZXRlQWxsVmFsdWVzPD4o
Y29uc3QgSGFzaFNldCYpOworICAgICAgICBmcmllbmQgdm9pZCBmYXN0RGVsZXRlQWxsVmFsdWVz
PD4oY29uc3QgSGFzaFNldCYpOwogCiAgICAgICAgIEhhc2hUYWJsZVR5cGUgbV9pbXBsOwogICAg
IH07CkBAIC0yNTEsNiArMjU0LDIxIEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHsKICAgICAgICAg
ZGVsZXRlQWxsVmFsdWVzPHR5cGVuYW1lIEhhc2hTZXQ8VCwgVSwgVj46OlZhbHVlVHlwZT4oY29s
bGVjdGlvbi5tX2ltcGwpOwogICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlw
ZSwgdHlwZW5hbWUgSGFzaFRhYmxlVHlwZT4KKyAgICB2b2lkIGZhc3REZWxldGVBbGxWYWx1ZXMo
SGFzaFRhYmxlVHlwZSYgY29sbGVjdGlvbikKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5h
bWUgSGFzaFRhYmxlVHlwZTo6Y29uc3RfaXRlcmF0b3IgaXRlcmF0b3I7CisgICAgICAgIGl0ZXJh
dG9yIGVuZCA9IGNvbGxlY3Rpb24uZW5kKCk7CisgICAgICAgIGZvciAoaXRlcmF0b3IgaXQgPSBj
b2xsZWN0aW9uLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgICAgIGZhc3REZWxl
dGUoKml0KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0
eXBlbmFtZSBWPgorICAgIGlubGluZSB2b2lkIGZhc3REZWxldGVBbGxWYWx1ZXMoY29uc3QgSGFz
aFNldDxULCBVLCBWPiYgY29sbGVjdGlvbikKKyAgICB7CisgICAgICAgIGZhc3REZWxldGVBbGxW
YWx1ZXM8dHlwZW5hbWUgSGFzaFNldDxULCBVLCBWPjo6VmFsdWVUeXBlPihjb2xsZWN0aW9uLm1f
aW1wbCk7CisgICAgfQogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUs
IHR5cGVuYW1lIFYsIHR5cGVuYW1lIFc+CiAgICAgaW5saW5lIHZvaWQgY29weVRvVmVjdG9yKGNv
bnN0IEhhc2hTZXQ8VCwgVSwgVj4mIGNvbGxlY3Rpb24sIFcmIHZlY3RvcikKSW5kZXg6IFdlYkNv
cmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA0
ODI1MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMDktMDktMTAgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGZhc3ROZXcg
YW5kIGZhc3REZWxldGUgaW5zdGVhZCBvZiBvcGVyYXRvciBuZXcgYW5kIGRlbGV0ZSBmb3IgQ1NT
U2VsZWN0b3IgY2xhc3MuIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjU5MzAKKworICAgICAgICBDaGFuZ2UgdXNpbmcgb2Ygb3BlcmF0b3IgbmV3IHRv
IGZhc3ROZXcgYW5kIG9wZXJhdG9yIGRlbGV0ZSB0bworICAgICAgICBmYXN0RGVsZXRlU2tpcHBp
bmdEZXN0cnVjdG9yIGZvciBDU1NTZWxlY3RvciBjbGFzcyB0byBhdm9pZCBtaXNtYXRjaGVkIGZ1
bmN0aW9uIGNhbGwuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgZml4ZXMgdmFsZ3JpbmQncyAnbWlz
bWF0Y2hlZCBmcmVlJyBub3RpZmljYXRpb24uCisKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6fkNTU1BhcnNlcik6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZUZsb2F0aW5nU2VsZWN0b3IpOgorICAgICAgICAqIGNz
cy9DU1NTZWxlY3Rvckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JMaXN0
OjphZG9wdFNlbGVjdG9yVmVjdG9yKToKKwogMjAwOS0wOS0wOSAgU3RldmUgQmxvY2sgIDxzdGV2
ZWJsb2NrQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dp
YWsuCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAJKHJldmlzaW9uIDQ3ODYwKQorKysgV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY4LDcgKzE2OCw3IEBAIENTU1BhcnNlcjo6
fkNTU1BhcnNlcigpCiAgICAgfQogICAgIGRlbGV0ZSBtX2Zsb2F0aW5nTWVkaWFRdWVyeUV4cDsK
ICAgICBkZWxldGUgbV9mbG9hdGluZ01lZGlhUXVlcnk7Ci0gICAgZGVsZXRlQWxsVmFsdWVzKG1f
ZmxvYXRpbmdTZWxlY3RvcnMpOworICAgIGZhc3REZWxldGVBbGxWYWx1ZXMobV9mbG9hdGluZ1Nl
bGVjdG9ycyk7CiAgICAgZGVsZXRlQWxsVmFsdWVzKG1fZmxvYXRpbmdWYWx1ZUxpc3RzKTsKICAg
ICBkZWxldGVBbGxWYWx1ZXMobV9mbG9hdGluZ0Z1bmN0aW9ucyk7CiAgICAgZGVsZXRlQWxsVmFs
dWVzKG1fcmV1c2FibGVTZWxlY3RvclZlY3Rvcik7CkBAIC00NzA2LDcgKzQ3MDYsNyBAQCBVQ2hh
ciogQ1NTUGFyc2VyOjp0ZXh0KGludCAqbGVuZ3RoKQogCiBDU1NTZWxlY3RvciogQ1NTUGFyc2Vy
OjpjcmVhdGVGbG9hdGluZ1NlbGVjdG9yKCkKIHsKLSAgICBDU1NTZWxlY3Rvciogc2VsZWN0b3Ig
PSBuZXcgQ1NTU2VsZWN0b3I7CisgICAgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yID0gZmFzdE5ldzxD
U1NTZWxlY3Rvcj4oKTsKICAgICBtX2Zsb2F0aW5nU2VsZWN0b3JzLmFkZChzZWxlY3Rvcik7CiAg
ICAgcmV0dXJuIHNlbGVjdG9yOwogfQpJbmRleDogV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwCShyZXZp
c2lvbiA0Nzg2MCkKKysrIFdlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBDU1NTZWxlY3Rvckxpc3Q6OmFkb3B0U2VsZWN0
b3JWZWN0bwogICAgICAgICAvLyBkb24ndCB3YW50IHRoZSBkZXN0cnVjdG9yIHRvIHJ1biBzaW5j
ZSBpdCB3aWxsIGFmZmVjdCB0aGUgY29weQogICAgICAgICAvLyB3ZSd2ZSBqdXN0IG1hZGUuIElu
IHRoZW9yeSB0aGlzIGlzIHVuZGVmaW5lZCwgYnV0IG9wZXJhdG9yIGRlbGV0ZQogICAgICAgICAv
LyBpcyBvbmx5IGRlZmluZWQgdGFraW5nIGEgdm9pZCosIHNvIGluIHByYWN0aWNlIGl0IHNob3Vs
ZCBiZSBvay4KLSAgICAgICAgZGVsZXRlIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHNlbGVjdG9y
VmVjdG9yW2ldKTsKKyAgICAgICAgZmFzdERlbGV0ZVNraXBwaW5nRGVzdHJ1Y3RvcihyZWludGVy
cHJldF9jYXN0PGNoYXIqPihzZWxlY3RvclZlY3RvcltpXSkpOwogICAgICAgICBBU1NFUlQoIW1f
c2VsZWN0b3JBcnJheVtpXS5pc0xhc3RJblNlbGVjdG9yTGlzdCgpKTsKICAgICB9CiAgICAgbV9z
ZWxlY3RvckFycmF5W3NpemUgLSAxXS5zZXRMYXN0SW5TZWxlY3Rvckxpc3QoKTsK
</data>
<flag name="review"
          id="20438"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39353</attachid>
            <date>2009-09-10 09:45:05 -0700</date>
            <delta_ts>2009-09-10 10:22:01 -0700</delta_ts>
            <desc>updated proposed file v3</desc>
            <filename>mismatched.patch</filename>
            <type>text/plain</type>
            <size>6653</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ4MjUyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDktMDktMTAgIFpvbHRhbiBI
b3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGZhc3REZWxldGVTa2lwcGluZ0Rlc3RydWN0
b3IgZm9yIEZhc3RBbGxvY0Jhc2UgYW5kIGZhc3REZWxldGVBbGxWYWx1ZXMgZm9yIEhhc2hTZXQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1OTMwCisK
KyAgICAgICAgRmFzdEFsbG9jQmFzZSBoYXMgYmVlbiBleHRlbmRlZCB3aXRoIGZhc3REZWxldGVT
a2lwcGluZ0Rlc3RydWN0b3IgZnVuY3Rpb24gd2hpY2gKKyAgICAgICAgcmVsZWFzZXMgbWVtb3J5
IHdpdGhvdXQgZGVzdHJ1Y3RvciBjYWxsLiBmYXN0RGVsZXRlQWxsVmFsdWVzIGhhcyBiZWVuIGlt
cGxlbWVudGVkIAorICAgICAgICBzaW1pbGFyIGFzIGRlbGV0ZUFsbFZhbHVlcyBidXQgaXQgdXNl
cyBmYXN0RGVsZXRlIGZ1bmN0aW9uIHRvIHJlbGVhc2UgbWVtb3J5LgorCisgICAgICAgICogd3Rm
L0Zhc3RBbGxvY0Jhc2UuaDoKKyAgICAgICAgKFdURjo6ZmFzdFB1cmVEZWxldGUpOgorICAgICAg
ICAqIHd0Zi9IYXNoU2V0Lmg6CisgICAgICAgIChXVEY6OmZhc3REZWxldGVBbGxWYWx1ZXMpOgor
CiAyMDA5LTA5LTEwICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IEphdmFTY3JpcHRDb3Jl
L3d0Zi9GYXN0QWxsb2NCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL0Zh
c3RBbGxvY0Jhc2UuaAkocmV2aXNpb24gNDc4NjApCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvRmFz
dEFsbG9jQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMDEsNiArMzAxLDE2IEBAIG5hbWVzcGFj
ZSBXVEYgewogICAgICAgICBmYXN0RnJlZShwKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KKyAgICBpbmxpbmUgdm9pZCBmYXN0RGVsZXRlU2tpcHBpbmdEZXN0cnVjdG9yKFQq
IHApCisgICAgeworICAgICAgICBpZiAoIXApCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgZmFzdE1hbGxvY01hdGNoVmFsaWRhdGVGcmVlKHAsIEludGVybmFsOjpBbGxvY1R5cGVGYXN0
TmV3KTsKKyAgICAgICAgZmFzdEZyZWUocCk7CisgICAgfQorCiAgICAgbmFtZXNwYWNlIEludGVy
bmFsIHsKICAgICAgICAgLy8gVGhpcyBpcyBhIHN1cHBvcnQgdGVtcGxhdGUgZm9yIGZhc3REZWxl
dGVBcnJheS4KICAgICAgICAgLy8gVGhpcyBoYW5kbGVzIHRoZSBjYXNlIHdoZXJlaW4gVCBoYXMg
YSB0cml2aWFsIGR0b3IuCkBAIC0zOTcsNyArNDA3LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAKIH0g
Ly8gbmFtZXNwYWNlIFdURgogCi0vLyBVc2luZyBXVEY6OkZhc3RBbGxvY0Jhc2UgdG8gYXZvaWQg
dXNpbmcgRmFzdEFsbG9jQmFzZSdzIGV4cGxpY2l0IHF1YWxpZmljYXRpb24gYnkgV1RGOjouCiB1
c2luZyBXVEY6OkZhc3RBbGxvY0Jhc2U7Cit1c2luZyBXVEY6OmZhc3REZWxldGVTa2lwcGluZ0Rl
c3RydWN0b3I7CiAKICNlbmRpZiAvLyBGYXN0QWxsb2NCYXNlX2gKSW5kZXg6IEphdmFTY3JpcHRD
b3JlL3d0Zi9IYXNoU2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL0hhc2hT
ZXQuaAkocmV2aXNpb24gNDc4NjApCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvSGFzaFNldC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFp
dHM+IGNsYXNzIEhhc2hTZXQ7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1l
IEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cz4KICAgICB2b2lkIGRlbGV0ZUFsbFZhbHVl
cyhjb25zdCBIYXNoU2V0PFZhbHVlLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHM+Jik7CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRy
YWl0cz4KKyAgICB2b2lkIGZhc3REZWxldGVBbGxWYWx1ZXMoY29uc3QgSGFzaFNldDxWYWx1ZSwg
SGFzaEZ1bmN0aW9ucywgVHJhaXRzPiYpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3Ry
dWN0IElkZW50aXR5RXh0cmFjdG9yOwogCkBAIC05MSw2ICs5Myw3IEBAIG5hbWVzcGFjZSBXVEYg
ewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIHZvaWQgZGVsZXRlQWxsVmFsdWVzPD4o
Y29uc3QgSGFzaFNldCYpOworICAgICAgICBmcmllbmQgdm9pZCBmYXN0RGVsZXRlQWxsVmFsdWVz
PD4oY29uc3QgSGFzaFNldCYpOwogCiAgICAgICAgIEhhc2hUYWJsZVR5cGUgbV9pbXBsOwogICAg
IH07CkBAIC0yNTEsNiArMjU0LDIxIEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHsKICAgICAgICAg
ZGVsZXRlQWxsVmFsdWVzPHR5cGVuYW1lIEhhc2hTZXQ8VCwgVSwgVj46OlZhbHVlVHlwZT4oY29s
bGVjdGlvbi5tX2ltcGwpOwogICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlw
ZSwgdHlwZW5hbWUgSGFzaFRhYmxlVHlwZT4KKyAgICB2b2lkIGZhc3REZWxldGVBbGxWYWx1ZXMo
SGFzaFRhYmxlVHlwZSYgY29sbGVjdGlvbikKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5h
bWUgSGFzaFRhYmxlVHlwZTo6Y29uc3RfaXRlcmF0b3IgaXRlcmF0b3I7CisgICAgICAgIGl0ZXJh
dG9yIGVuZCA9IGNvbGxlY3Rpb24uZW5kKCk7CisgICAgICAgIGZvciAoaXRlcmF0b3IgaXQgPSBj
b2xsZWN0aW9uLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgICAgIGZhc3REZWxl
dGUoKml0KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0
eXBlbmFtZSBWPgorICAgIGlubGluZSB2b2lkIGZhc3REZWxldGVBbGxWYWx1ZXMoY29uc3QgSGFz
aFNldDxULCBVLCBWPiYgY29sbGVjdGlvbikKKyAgICB7CisgICAgICAgIGZhc3REZWxldGVBbGxW
YWx1ZXM8dHlwZW5hbWUgSGFzaFNldDxULCBVLCBWPjo6VmFsdWVUeXBlPihjb2xsZWN0aW9uLm1f
aW1wbCk7CisgICAgfQogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUs
IHR5cGVuYW1lIFYsIHR5cGVuYW1lIFc+CiAgICAgaW5saW5lIHZvaWQgY29weVRvVmVjdG9yKGNv
bnN0IEhhc2hTZXQ8VCwgVSwgVj4mIGNvbGxlY3Rpb24sIFcmIHZlY3RvcikKSW5kZXg6IFdlYkNv
cmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA0
ODI1MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMDktMDktMTAgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGZhc3ROZXcg
YW5kIGZhc3REZWxldGUgaW5zdGVhZCBvZiBvcGVyYXRvciBuZXcgYW5kIGRlbGV0ZSBmb3IgQ1NT
U2VsZWN0b3IgY2xhc3MuIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjU5MzAKKworICAgICAgICBDaGFuZ2UgdXNpbmcgb2Ygb3BlcmF0b3IgbmV3IHRv
IGZhc3ROZXcgYW5kIG9wZXJhdG9yIGRlbGV0ZSB0bworICAgICAgICBmYXN0RGVsZXRlU2tpcHBp
bmdEZXN0cnVjdG9yIGZvciBDU1NTZWxlY3RvciBjbGFzcyB0byBhdm9pZCBtaXNtYXRjaGVkIGZ1
bmN0aW9uIGNhbGwuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgZml4ZXMgdmFsZ3JpbmQncyAnbWlz
bWF0Y2hlZCBmcmVlJyBub3RpZmljYXRpb24uCisKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6fkNTU1BhcnNlcik6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZUZsb2F0aW5nU2VsZWN0b3IpOgorICAgICAgICAqIGNz
cy9DU1NTZWxlY3Rvckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JMaXN0
OjphZG9wdFNlbGVjdG9yVmVjdG9yKToKKwogMjAwOS0wOS0wOSAgU3RldmUgQmxvY2sgIDxzdGV2
ZWJsb2NrQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dp
YWsuCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAJKHJldmlzaW9uIDQ3ODYwKQorKysgV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY4LDcgKzE2OCw3IEBAIENTU1BhcnNlcjo6
fkNTU1BhcnNlcigpCiAgICAgfQogICAgIGRlbGV0ZSBtX2Zsb2F0aW5nTWVkaWFRdWVyeUV4cDsK
ICAgICBkZWxldGUgbV9mbG9hdGluZ01lZGlhUXVlcnk7Ci0gICAgZGVsZXRlQWxsVmFsdWVzKG1f
ZmxvYXRpbmdTZWxlY3RvcnMpOworICAgIGZhc3REZWxldGVBbGxWYWx1ZXMobV9mbG9hdGluZ1Nl
bGVjdG9ycyk7CiAgICAgZGVsZXRlQWxsVmFsdWVzKG1fZmxvYXRpbmdWYWx1ZUxpc3RzKTsKICAg
ICBkZWxldGVBbGxWYWx1ZXMobV9mbG9hdGluZ0Z1bmN0aW9ucyk7CiAgICAgZGVsZXRlQWxsVmFs
dWVzKG1fcmV1c2FibGVTZWxlY3RvclZlY3Rvcik7CkBAIC00NzA2LDcgKzQ3MDYsNyBAQCBVQ2hh
ciogQ1NTUGFyc2VyOjp0ZXh0KGludCAqbGVuZ3RoKQogCiBDU1NTZWxlY3RvciogQ1NTUGFyc2Vy
OjpjcmVhdGVGbG9hdGluZ1NlbGVjdG9yKCkKIHsKLSAgICBDU1NTZWxlY3Rvciogc2VsZWN0b3Ig
PSBuZXcgQ1NTU2VsZWN0b3I7CisgICAgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yID0gZmFzdE5ldzxD
U1NTZWxlY3Rvcj4oKTsKICAgICBtX2Zsb2F0aW5nU2VsZWN0b3JzLmFkZChzZWxlY3Rvcik7CiAg
ICAgcmV0dXJuIHNlbGVjdG9yOwogfQpJbmRleDogV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwCShyZXZp
c2lvbiA0Nzg2MCkKKysrIFdlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTU1LDExICs1NSwxMSBAQCB2b2lkIENTU1NlbGVjdG9yTGlzdDo6YWRvcHRTZWxl
Y3RvclZlY3RvCiAgICAgbV9zZWxlY3RvckFycmF5ID0gcmVpbnRlcnByZXRfY2FzdDxDU1NTZWxl
Y3Rvcio+KGZhc3RNYWxsb2Moc2l6ZW9mKENTU1NlbGVjdG9yKSAqIHNlbGVjdG9yVmVjdG9yLnNp
emUoKSkpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAg
IG1lbWNweSgmbV9zZWxlY3RvckFycmF5W2ldLCBzZWxlY3RvclZlY3RvcltpXSwgc2l6ZW9mKENT
U1NlbGVjdG9yKSk7Ci0gICAgICAgIC8vIFdlIHdhbnQgdG8gZnJlZSB0aGUgbWVtb3J5ICh3aGlj
aCB3YXMgYWxsb2NhdGVkIHdpdGggbmV3KSwgYnV0IHdlCisgICAgICAgIC8vIFdlIHdhbnQgdG8g
ZnJlZSB0aGUgbWVtb3J5ICh3aGljaCB3YXMgYWxsb2NhdGVkIHdpdGggZmFzdE5ldyksIGJ1dCB3
ZQogICAgICAgICAvLyBkb24ndCB3YW50IHRoZSBkZXN0cnVjdG9yIHRvIHJ1biBzaW5jZSBpdCB3
aWxsIGFmZmVjdCB0aGUgY29weQotICAgICAgICAvLyB3ZSd2ZSBqdXN0IG1hZGUuIEluIHRoZW9y
eSB0aGlzIGlzIHVuZGVmaW5lZCwgYnV0IG9wZXJhdG9yIGRlbGV0ZQotICAgICAgICAvLyBpcyBv
bmx5IGRlZmluZWQgdGFraW5nIGEgdm9pZCosIHNvIGluIHByYWN0aWNlIGl0IHNob3VsZCBiZSBv
ay4KLSAgICAgICAgZGVsZXRlIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHNlbGVjdG9yVmVjdG9y
W2ldKTsKKyAgICAgICAgLy8gd2UndmUganVzdCBtYWRlLiBXZSB1c2UgZmFzdERlbGV0ZVNraXBw
aW5nRGVzdHJ1Y3RvciBmdW5jdGlvbiwgYmVjYXVzZQorICAgICAgICAvLyB0aGF0IGlzIHJlbGVh
c2luZyB3aXRob3V0IGRlc3RydWN0b3IgY2FsbC4KKyAgICAgICAgZmFzdERlbGV0ZVNraXBwaW5n
RGVzdHJ1Y3RvcihzZWxlY3RvclZlY3RvcltpXSk7CiAgICAgICAgIEFTU0VSVCghbV9zZWxlY3Rv
ckFycmF5W2ldLmlzTGFzdEluU2VsZWN0b3JMaXN0KCkpOwogICAgIH0KICAgICBtX3NlbGVjdG9y
QXJyYXlbc2l6ZSAtIDFdLnNldExhc3RJblNlbGVjdG9yTGlzdCgpOwo=
</data>
<flag name="review"
          id="20441"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>