<?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>37725</bug_id>
          
          <creation_ts>2010-04-16 13:09:39 -0700</creation_ts>
          <short_desc>FrameLoader::clear() clears runtime objects that cached pages later rely on</short_desc>
          <delta_ts>2010-10-15 01:37: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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Robert Hogan">robert</reporter>
          <assigned_to name="Robert Hogan">robert</assigned_to>
          <cc>abarth</cc>
    
    <cc>abecsi</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>213383</commentid>
    <comment_count>0</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-04-16 13:09:39 -0700</bug_when>
    <thetext># Related failure to https://bugs.webkit.org/show_bug.cgi?id=31626
# Navigating to a cached page with javascript history.back() does not restore the JS context.
# CONSOLE MESSAGE: line 28: ReferenceError: Trying to access object from destroyed plug-in.
# media/restore-from-page-cache.html is also affected by this issue in addition to the issue
# in bug 31626.

This bug is a fairly close relation of https://bugs.webkit.org/show_bug.cgi?id=31626

These tests all fail:

fast/events/pageshow-pagehide-on-back-cached.html
fast/events/pageshow-pagehide-on-back-cached-with-frames.html
fast/loader/input-element-page-cache-crash.html
fast/dom/Window/timer-resume-on-navigation-back.html
loader/go-back-to-different-window-size.html

with the error:

CONSOLE MESSAGE: line 28: ReferenceError: Trying to access object from destroyed plug-in.

This error is thrown by RuntimeObject::getOwnPropertySlot() (runtime_object.cpp) when the JS runtime object has no JS Instance.

These tests all have this error for the same reason: they are attempting to call layoutTestController on a page that has been retrieved from WebCore&apos;s page cache. Specifically, the cached page is retrieved following a history.back() JS call from the test.

So when FrameLoader is restoring a page from the cache it follows this sequence (from the bottom up):

#0  0x00e653d0 in JSC::Bindings::RuntimeObject::invalidate() ()
#1  0x00e675a3 in JSC::Bindings::RootObject::invalidate() ()
#2  0x00e35877 in WebCore::ScriptController::clearScriptObjects() ()
#3  0x011e691e in WebCore::FrameLoader::clear(bool, bool, bool) ()
#4  0x011f0f9d in WebCore::FrameLoader::open(WebCore::CachedFrameBase&amp;) ()
#5  0x010c49a5 in WebCore::CachedFrame::open() ()
#6  0x010c640a in WebCore::CachedPage::restore(WebCore::Page*) ()
#7  0x011f0d9c in WebCore::FrameLoader::open(WebCore::CachedPage&amp;) ()
#8  0x011eff49 in WebCore::FrameLoader::commitProvisionalLoad(WTF::PassRefPtr&lt;WebCore::CachedPage&gt;) ()
#9  0x011f4e1a in WebCore::FrameLoader::loadProvisionalItemFromCachedPage() ()

clearScriptObjects() and the following calls set the m_rootObjects and the m_bindingRootObject associated with the frame&apos;s scriptController to 0. This is normal behaviour prior to loading a page.

During a normal page load (i.e. a non-cached page) this same call to clearScriptObjects() is shortly followed by dispatchDidClearWindowObjectsInAllWorlds() in FrameLoader. In the case of the DRT this prompts the DRT to add objects like the layoutTestController to the cleared JSDOMWindow associated with the frame.

In the case where a cached page is loaded this doesn&apos;t (or certainly shouldn&apos;t) need to happen. The runtimeObject added to the cached page should still be present in the JSDOMWindow. This is how Qt adds the layoutTestController to the frame:

    JSC::JSLock lock(JSC::SilenceAssertionsOnly);
    JSDOMWindow* window = toJSDOMWindow(d-&gt;frame, mainThreadNormalWorld());
    JSC::Bindings::RootObject* root = d-&gt;frame-&gt;script()-&gt;bindingRootObject();
    JSC::ExecState* exec = window-&gt;globalExec();
    JSC::JSObject* runtimeObject =
            JSC::Bindings::QtInstance::getQtInstance(object, root, ownership)-&gt;createRuntimeObject(exec);
    JSC::PutPropertySlot slot;
    window-&gt;put(exec, JSC::Identifier(exec, (const UChar *) name.constData(), name.length()), runtimeObject, slot);

So as long as the JSDomWindow is cached with the frame it should work, and it is - at least it appears to be since CachedFrame stores the frame-&gt;view() along with other bits and pieces:

CachedFrameBase::CachedFrameBase(Frame* frame)
    : m_document(frame-&gt;document())
    , m_documentLoader(frame-&gt;loader()-&gt;documentLoader())
    , m_view(frame-&gt;view())
    , m_mousePressNode(frame-&gt;eventHandler()-&gt;mousePressNode())
    , m_url(frame-&gt;loader()-&gt;url())
    , m_isMainFrame(!frame-&gt;tree()-&gt;parent())

CachedFrame::CachedFrame(Frame* frame)
    : CachedFrameBase(frame)
{
    // Active DOM objects must be suspended before we cached the frame script data
    m_document-&gt;suspendActiveDOMObjects();
    m_cachedFrameScriptData.set(new ScriptCachedFrameData(frame));
    // Custom scrollbar renderers will get reattached when the document comes out of the page cache
    m_view-&gt;detachCustomScrollbars();
    m_document-&gt;documentWillBecomeInactive(); 
    frame-&gt;clearTimers();
    m_document-&gt;setInPageCache(true);
..
}

and the JSDomWindow is stored in the m_cachedFrameScriptData:

    ScriptController* scriptController = frame-&gt;script();
    ScriptController::ShellMap&amp; windowShells = scriptController-&gt;m_windowShells;

    ScriptController::ShellMap::iterator windowShellsEnd = windowShells.end();
    for (ScriptController::ShellMap::iterator iter = windowShells.begin(); iter != windowShellsEnd; ++iter) {
        JSDOMWindow* window = iter-&gt;second-&gt;window();
        m_windows.add(iter-&gt;first.get(), window);
        m_domWindow = window-&gt;impl();
    }

and restored here:

void ScriptCachedFrameData::restore(Frame* frame)
{
    JSLock lock(SilenceAssertionsOnly);

    ScriptController* scriptController = frame-&gt;script();
    ScriptController::ShellMap&amp; windowShells = scriptController-&gt;m_windowShells;

    ScriptController::ShellMap::iterator windowShellsEnd = windowShells.end();
    for (ScriptController::ShellMap::iterator iter = windowShells.begin(); iter != windowShellsEnd; ++iter) {
        DOMWrapperWorld* world = iter-&gt;first.get();
        JSDOMWindowShell* windowShell = iter-&gt;second.get();

        if (JSDOMWindow* window = m_windows.get(world))
            windowShell-&gt;setWindow(window);
        else {
            windowShell-&gt;setWindow(frame-&gt;domWindow());

            if (Page* page = frame-&gt;page()) {
                scriptController-&gt;attachDebugger(windowShell, page-&gt;debugger());
                windowShell-&gt;window()-&gt;setProfileGroup(page-&gt;group().identifier());
            }
        }
    }
}

Debugging shows the window is retrieved from:

        if (JSDOMWindow* window = m_windows.get(world))
            windowShell-&gt;setWindow(window);

So all seems fine in WebCore except it doesn&apos;t work for QtWebKit. That would suggest there is something wrong with the way QtInstance works. But it&apos;s hard to see what if anything QtInstance is doing wrong - more to the point it&apos;s hard to see how the runtime object or frame-&gt;script()-&gt;bindingRootObject() survive when they&apos;re cached, as invalidate() completely zaps them and this happens entirely in WebCore. Setting the runtime objects and the root objects to zero results in them being destroyed. Maybe the fact that the JSDomWindow is cached in a protected pointer:

        typedef HashMap&lt; RefPtr&lt;DOMWrapperWorld&gt;, JSC::ProtectedPtr&lt;JSDOMWindow&gt; &gt; JSDOMWindowSet;

actually prevents this zapping. But if that&apos;s the case then why doesn&apos;t it work for QtWebKit too?

So my guess is that the problem is probably in QtInstance but I can&apos;t see what.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214871</commentid>
    <comment_count>1</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-04-20 12:39:13 -0700</bug_when>
    <thetext>Anders, would you have any pointers on this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214892</commentid>
    <comment_count>2</comment_count>
      <attachid>53869</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-04-20 12:55:31 -0700</bug_when>
    <thetext>Created attachment 53869
Patch

Updated docs as well!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214937</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-04-20 14:07:16 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Created an attachment (id=53869) [details]
&gt; Patch
&gt; 
&gt; Updated docs as well!

I think by accident you attached the patch to the wrong report. Did you mean bug 37324 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214939</commentid>
    <comment_count>4</comment_count>
      <attachid>53869</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-04-20 14:18:33 -0700</bug_when>
    <thetext>Comment on attachment 53869
Patch

Wrong bug!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229259</commentid>
    <comment_count>5</comment_count>
      <attachid>56777</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-05-22 07:11:30 -0700</bug_when>
    <thetext>Created attachment 56777
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229260</commentid>
    <comment_count>6</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-05-22 07:26:47 -0700</bug_when>
    <thetext>This same problem occurs in GTK and Chromium (though Chromium doesn&apos;t care because of the way it uses the WebCore cache). 

The only explanation I can think of why it isn&apos;t a problem for Mac and Windows is that they are not using the same frame for each navigation.

If there is a security problem with keeping the same JS script objects across navigations in the same frame then this fix is wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229847</commentid>
    <comment_count>7</comment_count>
      <attachid>56911</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-05-24 12:19:14 -0700</bug_when>
    <thetext>Created attachment 56911
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229848</commentid>
    <comment_count>8</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-05-24 12:23:50 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=56911) [details]
&gt; Patch

I&apos;m pretty sure that this isn&apos;t the right way to solve the problem but it does so without any regressions to layout tests. Looking forward to the input of someone who knows a lot more about this than I do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229851</commentid>
    <comment_count>9</comment_count>
      <attachid>56912</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-05-24 12:34:23 -0700</bug_when>
    <thetext>Created attachment 56912
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230450</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-25 14:11:28 -0700</bug_when>
    <thetext>See also: bug 34679. The question is what&apos;s different on Qt that also makes these tests fail.

&gt; If there is a security problem with keeping the same JS script objects
&gt; across navigations in the same frame then this fix is wrong.

JSDOMWindowShell should remain, JSDOMWindow should be replaced (and it goes into b/f cache together with Document).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230483</commentid>
    <comment_count>11</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-05-25 15:06:17 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; See also: bug 34679. The question is what&apos;s different on Qt that also makes these tests fail.

To be honest, my question is how this works at all for Mac or Windows. (It fails for GTK and is an unknown quantity in Chromium, which skips all these tests). clearScriptObjects() completely zaps the runtimeObjects and the bindingRootObject associated with the JSDOMWindow. So how it survives in Mac/Windows is a mystery to me since although JSDomWindow is preserved in the cache, when restored its runtimeObject should no longer exist if invalidate() works properly.

I&apos;m not very au fait with the protector() and ProtectedPtr&lt;&gt; stuff but is it possible that the Mac/Windows is casting some protected charm on the runTimeObjects that prevents them getting destroyed while the cache still references them? That seems unlikely from what I can understand of the code, but it&apos;s all I&apos;ve got.

&gt; 
&gt; &gt; If there is a security problem with keeping the same JS script objects
&gt; &gt; across navigations in the same frame then this fix is wrong.
&gt; 
&gt; JSDOMWindowShell should remain, JSDOMWindow should be replaced (and it goes into b/f cache together with Document).

So the patch is definitely wrong, removing the review flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230892</commentid>
    <comment_count>12</comment_count>
      <attachid>57136</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-05-26 14:21:58 -0700</bug_when>
    <thetext>Created attachment 57136
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230898</commentid>
    <comment_count>13</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-05-26 14:31:48 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Created an attachment (id=57136) [details]
&gt; Patch

This one just detaches the objects instead of retaining them completely. Is that better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230954</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-26 15:08:44 -0700</bug_when>
    <thetext>Obviously, we should look for a fix that doesn&apos;t change any cross-platform code. Is there anything specific you&apos;d like me to test on Mac, or any other specific information you need?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230976</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-26 15:42:10 -0700</bug_when>
    <thetext>Attachment 57136 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2514062</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231432</commentid>
    <comment_count>16</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-05-27 13:25:38 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Obviously, we should look for a fix that doesn&apos;t change any cross-platform code. Is there anything specific you&apos;d like me to test on Mac, or any other specific information you need?

Yes, Alexey that would be great.

First of all, need to ensure that Mac is actually calling invalidate() when navigating to a new page: so it would be good to set a breakpoint in JSC::Bindings::RuntimeObject::invalidate() and run DRT in gdb and make a note of the value of the m_instance that gets invalidated.

Assuming invalidate() is called, you could then set a breakpoint in RuntimeObject::getOwnPropertySlot() and see what the value of m_instance is when it is hit just after a cached page has been loaded.

The thing I would like to know if you see an m_instance get invalidated in invalidate() but subsequently see it used in getOwnPropertySlot() just after a cached page has been loaded (this should happen just after invalidate() has been called with the following frame stack:

#0  0x00e653d0 in JSC::Bindings::RuntimeObject::invalidate() ()
#1  0x00e675a3 in JSC::Bindings::RootObject::invalidate() ()
#2  0x00e35877 in WebCore::ScriptController::clearScriptObjects() ()
#3  0x011e691e in WebCore::FrameLoader::clear(bool, bool, bool) ()
#4  0x011f0f9d in WebCore::FrameLoader::open(WebCore::CachedFrameBase&amp;) ()
#5  0x010c49a5 in WebCore::CachedFrame::open() ()
#6  0x010c640a in WebCore::CachedPage::restore(WebCore::Page*) ()
).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231802</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-28 11:14:26 -0700</bug_when>
    <thetext>This bug actually affects Mac, as well, but to a different extent. I can explain the differences now.

Mac DRT installs layoutTestController via JavaScriptCore API (JSObjectMake/JSObjectSetProperty). So, it is not a RuntimeObject, WebCore doesn&apos;t know about it, and it isn&apos;t invalidated by ScriptController::clearScriptObjects(). But Mac DRT installs some other controllers via an old WebScriptObject API, and trying to use e.g. eventSender on a restored page causes the same problem you see on Qt.

Most RuntimeObjects come from Java and plug-ins, and they do need to be invalidated by clearScriptObjects(). But Objective C and Qt runtime objects probably needn&apos;t (or at least, that invalidation should be automatically reversed when the page come from b/f cache).

So, we need to clean up how plug-ins interact with caching:
- NPAPI plug-ins currently prevent pages from going to b/f cache, but this should be fixed. In the future, plug-ins will be stopped, and CRuntimeObject objects will still be invalidated;
- Objective C plug-ins (&quot;WebKit plug-ins&quot; on Mac OS X) will still prevent pages from going to b/f cache;
- Objective C objects created via WebScriptObject probably needn&apos;t be affected by pages going to and from b/f cache;
- same for Qt bindings objects;
- I&apos;m not sure if Java prevents pages from going to b/f cache, or whether it should (is there a way to ask VM to pause applets?);

This can be achieved by making invalidate() virtual, and having different implementations. Or this can be achieved by not even tracking some objects in RuntimeRoot. I don&apos;t have an answer about which is best - RuntimeRoot has other responsibilities besides invalidating objects (e.g. it&apos;s GC protecting them, which is not necessary for window object properties, but is necessary in general). Also, I&apos;m not sure why it&apos;s OK for RootObject itself to be invalidated. This needs to be investigated.

I don&apos;t understand why these tests fail on Gtk - I thought it used cross-platform DRT code that relies on JSC API for all controllers. So, Gtk may have a different issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231815</commentid>
    <comment_count>18</comment_count>
      <attachid>57136</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-28 11:24:44 -0700</bug_when>
    <thetext>Comment on attachment 57136
Patch

I&apos;m not sure about this patch. It might be correct, as long as NPAPI plug-ins prevent pages from going into b/f cache. And it might even be a step in the right direction regardless of whether they do - we can track NPAPI objects separately for invalidation.

I think that the best way to move forward would be to investigate this deeper - hopefully my comments above will help.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234576</commentid>
    <comment_count>19</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-06-05 01:59:10 -0700</bug_when>
    <thetext>&gt; 
&gt; So, we need to clean up how plug-ins interact with caching:
&gt; - NPAPI plug-ins currently prevent pages from going to b/f cache, but this should be fixed. In the future, plug-ins will be stopped, and CRuntimeObject objects will still be invalidated;
&gt; - Objective C plug-ins (&quot;WebKit plug-ins&quot; on Mac OS X) will still prevent pages from going to b/f cache;
&gt; - Objective C objects created via WebScriptObject probably needn&apos;t be affected by pages going to and from b/f cache;
&gt; - same for Qt bindings objects;
&gt; - I&apos;m not sure if Java prevents pages from going to b/f cache, or whether it should (is there a way to ask VM to pause applets?);
&gt; 

I think each of the above currently applies - re Java, createJavaAppletWidget() in FrameLoader.cpp sets m_containsPlugins to true so it is treated the same as an NPAPI plugin. 

So plugins-wise only pages with Qt bindings and Objective C objects get cached therefore it seems appropriate to just detach any runtimeObjects in such cases.

(In reply to comment #18)
&gt; (From update of attachment 57136 [details])
&gt; I&apos;m not sure about this patch. It might be correct, as long as NPAPI plug-ins prevent pages from going into b/f cache. 

They do:

bool FrameLoader::canCachePageContainingThisFrame()
{
&lt;..&gt;
    return m_documentLoader
        &amp;&amp; m_documentLoader-&gt;mainDocumentError().isNull()
        // FIXME: If we ever change this so that frames with plug-ins will be cached,
        // we need to make sure that we don&apos;t cache frames that have outstanding NPObjects
        // (objects created by the plug-in). Since there is no way to pause/resume a Netscape plug-in,
        // they would need to be destroyed and then recreated, and there is no way that we can recreate
        // the right NPObjects. See &lt;rdar://problem/5197041&gt; for more information.
        &amp;&amp; !m_containsPlugIns


&gt; This can be achieved by making invalidate() virtual, and having different implementations. 

This certainly sounds necessary when it comes to stopping plugins and then caching them. I think the capability is there to do that now isn&apos;t it? 

&gt;Or this can be achieved by not even tracking some objects in RuntimeRoot. I don&apos;t have an answer about which is best - RuntimeRoot has other responsibilities besides invalidating objects (e.g. it&apos;s GC protecting them, which is not necessary for window object properties, but is necessary in general). 

Detaching the objects is the only solution I&apos;ve got my head around at the moment. Is it an acceptable solution for fixing the immediate problem?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234617</commentid>
    <comment_count>20</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-05 09:29:46 -0700</bug_when>
    <thetext>&gt;&gt; I&apos;m not sure about this patch. It might be correct, as long as NPAPI plug-ins prevent 
&gt;&gt; pages from going into b/f cache. 

&gt; They do:

What I was saying is that this is something we want to change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234639</commentid>
    <comment_count>21</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-06-05 17:34:01 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; &gt;&gt; I&apos;m not sure about this patch. It might be correct, as long as NPAPI plug-ins prevent 
&gt; &gt;&gt; pages from going into b/f cache. 
&gt; 
&gt; &gt; They do:
&gt; 
&gt; What I was saying is that this is something we want to change.

And I was trying to wimp out of doing that under this bug. It does seem like stopping plugins and caching the page that contains is something that can be done now, so I&apos;ll give it a go here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234641</commentid>
    <comment_count>22</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-05 17:48:28 -0700</bug_when>
    <thetext>It wasn&apos;t my intention to make you implement caching of pages with plug-ins. I just wanted to make sure that your fix doesn&apos;t make it harder for someone in the future.

But you you want to tackle this, it will be much appreciated, of course. We&apos;re tracking this problem as bug 13634.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234676</commentid>
    <comment_count>23</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-06-06 11:26:26 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; &gt;&gt; I&apos;m not sure about this patch. It might be correct, as long as NPAPI plug-ins prevent 
&gt; &gt; &gt;&gt; pages from going into b/f cache. 
&gt; &gt; 
&gt; &gt; &gt; They do:
&gt; &gt; 
&gt; &gt; What I was saying is that this is something we want to change.
&gt; 
&gt; And I was trying to wimp out of doing that under this bug. It does seem like stopping plugins and caching the page that contains is something that can be done now, so I&apos;ll give it a go here.

I think that task is much more complicated than you realize, and it is not related to resolving this bug.

(In reply to comment #22)
&gt; It wasn&apos;t my intention to make you implement caching of pages with plug-ins. I just wanted to make sure that your fix doesn&apos;t make it harder for someone in the future.
&gt; 
&gt; But you you want to tackle this, it will be much appreciated, of course. We&apos;re tracking this problem as bug 13634.

What Alexey said - if you have thoughts about caching pages with plug-ins, please jot them down in 13634.  But that task is independent of this one.  Please don&apos;t conflate the two.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234686</commentid>
    <comment_count>24</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-06-06 15:06:12 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; I think that task is much more complicated than you realize, and it is not related to resolving this bug.

Quickly realized that! I understand what Alexey was getting at a little better now.

(In reply to comment #23)
&gt;Also, I&apos;m not sure why it&apos;s OK for RootObject itself to be invalidated. This needs to be investigated.

Is there merit in creating a special case of m_bindingRootObject that is only used for Qt bindings object and ObjC bindings objects? And this special case would not get invalidated in clearScriptObjects() so its RuntimeObjects would remain tracked in the root object until the frame gets destroyed?

ObjC plugins could continue to use m_bindingRootObject and that would continue to get invalidated as required.

This would remove the need to worry about how/when to destroy the RuntimeObjects later, which I think is a concern with virtualizing RuntimeObject::invalidate() instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234879</commentid>
    <comment_count>25</comment_count>
      <attachid>58035</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-06-07 09:09:29 -0700</bug_when>
    <thetext>Created attachment 58035
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235585</commentid>
    <comment_count>26</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-08 17:03:12 -0700</bug_when>
    <thetext>+    // The root object used for objects bound outside the context of a plugin, such
+    // as Objective-C plugins. These objects prevent a page from being cached so are
+    // safe to invalidate() when WebKit navigates away from the page that contains them.

Objective-C isn&apos;t a great example here, because we cannot tell an object added by an Objective-C plug-in from an object added by an embedder (such as those other controllers added by Mac DumpRenderTree). NPAPI would be a better example - even when those won&apos;t prevent caching, they will still be stopped when navigating away.

This patch looks good to me, but the bindings code scares me so much that I&apos;d like someone else to double check. Everyone I think of is already CC&apos;ed on this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236495</commentid>
    <comment_count>27</comment_count>
      <attachid>58403</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-06-10 13:03:14 -0700</bug_when>
    <thetext>Created attachment 58403
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236498</commentid>
    <comment_count>28</comment_count>
      <attachid>58403</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-10 13:16:14 -0700</bug_when>
    <thetext>Comment on attachment 58403
Patch

WebCore/bindings/js/ScriptController.h:201
 +      // safe to invalidate() when WebKit navigates away from the page that contains them.
It is not the objects that prevent page caching, it is the plugin it self.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236499</commentid>
    <comment_count>29</comment_count>
      <attachid>58403</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-10 13:18:59 -0700</bug_when>
    <thetext>Comment on attachment 58403
Patch

WebCore/bindings/js/ScriptController.h:205
 +      // a page from being cached they are not invalidated.
Again, it is not the bound objects that don&apos;t prevent the page caching, it is the use of those objects.  I also don&apos;t think it is necessary to call out Qt-bindings objects explicitly, it won&apos;t be helpful to future readers of the code.


Please fix these comments before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236501</commentid>
    <comment_count>30</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-10 13:21:53 -0700</bug_when>
    <thetext>(the above two comments were from Sam Weinig, who also thinks it&apos;s a good patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237299</commentid>
    <comment_count>31</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-06-12 08:32:44 -0700</bug_when>
    <thetext>
Landed as http://trac.webkit.org/changeset/61062

Regression to tst_qwebframe tracked at:
https://bugs.webkit.org/show_bug.cgi?id=40527

http/tests/misc/font-face-in-multiple-segmented-faces.html crashed on buildbot, but appears to be unrelated. Can&apos;t reproduce locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237303</commentid>
    <comment_count>32</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-06-12 10:05:48 -0700</bug_when>
    <thetext>Landed http://trac.webkit.org/changeset/61062</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239313</commentid>
    <comment_count>33</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-06-17 02:59:06 -0700</bug_when>
    <thetext>*** Bug 31626 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294253</commentid>
    <comment_count>34</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-14 11:45:49 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; +    // The root object used for objects bound outside the context of a plugin, such
&gt; +    // as Objective-C plugins. These objects prevent a page from being cached so are
&gt; +    // safe to invalidate() when WebKit navigates away from the page that contains them.
&gt; 
&gt; Objective-C isn&apos;t a great example here, because we cannot tell an object added by an Objective-C plug-in from an object added by an embedder (such as those other controllers added by Mac DumpRenderTree). NPAPI would be a better example - even when those won&apos;t prevent caching, they will still be stopped when navigating away.
&gt; 
&gt; This patch looks good to me, but the bindings code scares me so much that I&apos;d like someone else to double check. Everyone I think of is already CC&apos;ed on this bug.

We’ve now got a report of this same issue with Objective-C objects added by an embedder. This is Apple internal &lt;rdar://problem/8547940&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53869</attachid>
            <date>2010-04-20 12:55:31 -0700</date>
            <delta_ts>2010-04-20 14:18:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Qt-Fix-createPlugin-tests-in-tst_qwebpage-to-match-b.patch</filename>
            <type>text/plain</type>
            <size>9590</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">RnJvbSBlMGU5ZjIxOTkzOWVmZGMxNzllNmY1NzkyZDYyZDIxZjhkMzBlNWIwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JlcnQgSG9nYW4gPHJvYmVydEB3ZWJraXQub3JnPgpEYXRl
OiBUdWUsIDIwIEFwciAyMDEwIDIwOjMyOjQ1ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBG
aXggY3JlYXRlUGx1Z2luKCkgdGVzdHMgaW4gdHN0X3F3ZWJwYWdlIHRvIG1hdGNoIGJlaGF2aW91
ciBvZiBRdCBwbHVnaW5zCiAgICAgIHdoZW4gUGx1Z2luc0VuYWJsZWQgaXMgZmFsc2UuCgoyMDEw
LTA0LTIwICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KCiAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFtRdF0gRml4IGNyZWF0ZVBsdWdpbigpIHRl
c3RzIGluIHRzdF9xd2VicGFnZSB0byBtYXRjaCBiZWhhdmlvdXIgb2YgUXQgcGx1Z2lucwogICAg
ICAgICAgICAgd2hlbiBQbHVnaW5zRW5hYmxlZCBpcyBmYWxzZS4KCiAgICAgICAgdHN0X3F3ZWJw
YWdlIHNob3VsZCBoYXZlIGJlZW4gdXBkYXRlZCBhcyBwYXJ0IG9mIHI1NjY2Mi4KICAgICAgICAo
U2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjE5NikKCiAgICAg
ICAgVXBkYXRlZCBkb2N1bWVudGF0aW9uIG9mIFFXZWJQYWdlOjpjcmVhdGVQbHVnaW4gYW5kIFFX
ZWJTZXR0aW5nOjpwbHVnaW5zRW5hYmxlZAogICAgICAgICAgICB0byBtYXRjaCB0aGUgbmV3IGJl
aGF2aW91ci4KCiAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOiBVcGRhdGUgZG9jcy4KICAgICAg
ICAqIEFwaS9xd2Vic2V0dGluZ3MuY3BwOiBVcGRhdGUgZG9jcy4KICAgICAgICAqIHRlc3RzL3F3
ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHA6CiAgICAgICAgKGNyZWF0ZVBsdWdpbik6CiAgICAgICAg
KHRzdF9RV2ViUGFnZTo6Y3JlYXRlUGx1Z2luV2l0aFBsdWdpbnNFbmFibGVkKToKICAgICAgICAo
dHN0X1FXZWJQYWdlOjpjcmVhdGVQbHVnaW5XaXRoUGx1Z2luc0Rpc2FibGVkKToKLS0tCiBXZWJL
aXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCAgICAgICAgICAgICAgICB8ICAgIDYgKystLQogV2ViS2l0
L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwICAgICAgICAgICAgfCAgICA3ICsrKy0KIFdlYktpdC9x
dC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNyArKysrKysrKysrKysrKysr
KysrKysrKwogV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHAgfCAgIDQ2
ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDY5IGluc2Vy
dGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdl
YnBhZ2UuY3BwIGIvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKaW5kZXggMGUxMWMxNS4uNzkx
YWZlNyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvV2ViS2l0
L3F0L0FwaS9xd2VicGFnZS5jcHAKQEAgLTE5OTMsOSArMTk5Myw5IEBAIFFXZWJQYWdlICpRV2Vi
UGFnZTo6Y3JlYXRlV2luZG93KFdlYldpbmRvd1R5cGUgdHlwZSkKIH0KIAogLyohCi0gICAgVGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbmV2ZXIgV2ViS2l0IGVuY291bnRlcnMgYSBIVE1MIG9i
amVjdCBlbGVtZW50IHdpdGggdHlwZSAiYXBwbGljYXRpb24veC1xdC1wbHVnaW4iLgotICAgIFRo
ZSBcYSBjbGFzc2lkLCBcYSB1cmwsIFxhIHBhcmFtTmFtZXMgYW5kIFxhIHBhcmFtVmFsdWVzIGNv
cnJlc3BvbmQgdG8gdGhlIEhUTUwgb2JqZWN0IGVsZW1lbnQgYXR0cmlidXRlcyBhbmQKLSAgICBj
aGlsZCBlbGVtZW50cyB0byBjb25maWd1cmUgdGhlIGVtYmVkZGFibGUgb2JqZWN0LgorICAgIFRo
aXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW5ldmVyIFdlYktpdCBlbmNvdW50ZXJzIGEgSFRNTCBv
YmplY3QgZWxlbWVudCB3aXRoIHR5cGUgImFwcGxpY2F0aW9uL3gtcXQtcGx1Z2luIi4gSXQgaXMK
KyAgICBjYWxsZWQgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUgb2YgUVdlYlNldHRpbmdzOjpQbHVn
aW5zRW5hYmxlZC4gVGhlIFxhIGNsYXNzaWQsIFxhIHVybCwgXGEgcGFyYW1OYW1lcyBhbmQgXGEg
cGFyYW1WYWx1ZXMKKyAgICBjb3JyZXNwb25kIHRvIHRoZSBIVE1MIG9iamVjdCBlbGVtZW50IGF0
dHJpYnV0ZXMgYW5kIGNoaWxkIGVsZW1lbnRzIHRvIGNvbmZpZ3VyZSB0aGUgZW1iZWRkYWJsZSBv
YmplY3QuCiAqLwogUU9iamVjdCAqUVdlYlBhZ2U6OmNyZWF0ZVBsdWdpbihjb25zdCBRU3RyaW5n
ICZjbGFzc2lkLCBjb25zdCBRVXJsICZ1cmwsIGNvbnN0IFFTdHJpbmdMaXN0ICZwYXJhbU5hbWVz
LCBjb25zdCBRU3RyaW5nTGlzdCAmcGFyYW1WYWx1ZXMpCiB7CmRpZmYgLS1naXQgYS9XZWJLaXQv
cXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAgYi9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAK
aW5kZXggMWRmZjAzNy4uY2ExMmI5MCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0FwaS9xd2Vic2V0
dGluZ3MuY3BwCisrKyBiL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcApAQCAtMjk4LDcg
KzI5OCw5IEBAIFFXZWJTZXR0aW5ncyogUVdlYlNldHRpbmdzOjpnbG9iYWxTZXR0aW5ncygpCiAg
ICAgU3VwcG9ydCBmb3IgYnJvd3NlciBwbHVnaW5zIGNhbiBlbmFibGVkIGJ5IHNldHRpbmcgdGhl
CiAgICAgXGx7UVdlYlNldHRpbmdzOjpQbHVnaW5zRW5hYmxlZH17UGx1Z2luc0VuYWJsZWR9IGF0
dHJpYnV0ZS4gRm9yIG1hbnkgYXBwbGljYXRpb25zLAogICAgIHRoaXMgYXR0cmlidXRlIGlzIGVu
YWJsZWQgZm9yIGFsbCBwYWdlcyBieSBzZXR0aW5nIGl0IG9uIHRoZQotICAgIFxse2dsb2JhbFNl
dHRpbmdzKCl9e2dsb2JhbCBzZXR0aW5ncyBvYmplY3R9LgorICAgIFxse2dsb2JhbFNldHRpbmdz
KCl9e2dsb2JhbCBzZXR0aW5ncyBvYmplY3R9LiBRdFdlYktpdCB3aWxsIGFsd2F5cyBpZ25vcmUg
dGhpcyBzZXR0aW5nCisgICAgXHdoZW4gcHJvY2Vzc2luZyBRdCBwbHVnaW5zLiBUaGUgZGVjaXNp
b24gdG8gYWxsb3cgYSBRdCBwbHVnaW4gaXMgbWFkZSBieSB0aGUgY2xpZW50CisgICAgXGluIGl0
cyByZWltcGxlbWVudGF0aW9uIG9mIFFXZWJQYWdlOjpjcmVhdGVQbHVnaW4uCiAKICAgICBcc2Vj
dGlvbjEgV2ViIEFwcGxpY2F0aW9uIFN1cHBvcnQKIApAQCAtMzY3LDcgKzM2OSw4IEBAIFFXZWJT
ZXR0aW5ncyogUVdlYlNldHRpbmdzOjpnbG9iYWxTZXR0aW5ncygpCiAgICAgICAgIHByb2dyYW1z
LgogICAgIFx2YWx1ZSBKYXZhRW5hYmxlZCBFbmFibGVzIG9yIGRpc2FibGVzIEphdmEgYXBwbGV0
cy4KICAgICAgICAgQ3VycmVudGx5IEphdmEgYXBwbGV0cyBhcmUgbm90IHN1cHBvcnRlZC4KLSAg
ICBcdmFsdWUgUGx1Z2luc0VuYWJsZWQgRW5hYmxlcyBvciBkaXNhYmxlcyBwbHVnaW5zIGluIFdl
YiBwYWdlcy4KKyAgICBcdmFsdWUgUGx1Z2luc0VuYWJsZWQgRW5hYmxlcyBvciBkaXNhYmxlcyBw
bHVnaW5zIGluIFdlYiBwYWdlcy4gUXQgcGx1Z2lucworICAgICAgICB3aXRoIGEgbWltZXR5cGUg
c3VjaCBhcyAiYXBwbGljYXRpb24veC1xdC1wbHVnaW4iIGFyZSBub3QgYWZmZWN0ZWQgYnkgdGhp
cyBzZXR0aW5nLgogICAgIFx2YWx1ZSBQcml2YXRlQnJvd3NpbmdFbmFibGVkIFByaXZhdGUgYnJv
d3NpbmcgcHJldmVudHMgV2ViS2l0IGZyb20KICAgICAgICAgcmVjb3JkaW5nIHZpc2l0ZWQgcGFn
ZXMgaW4gdGhlIGhpc3RvcnkgYW5kIHN0b3Jpbmcgd2ViIHBhZ2UgaWNvbnMuCiAgICAgXHZhbHVl
IEphdmFzY3JpcHRDYW5PcGVuV2luZG93cyBTcGVjaWZpZXMgd2hldGhlciBKYXZhU2NyaXB0IHBy
b2dyYW1zCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5n
ZUxvZwppbmRleCAxZDIwMDk0Li5hYzkxNzdkIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdl
TG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMC0wNC0y
MCAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBGaXggY3JlYXRlUGx1Z2luKCkgdGVz
dHMgaW4gdHN0X3F3ZWJwYWdlIHRvIG1hdGNoIGJlaGF2aW91ciBvZiBRdCBwbHVnaW5zCisgICAg
ICAgICAgICAgd2hlbiBQbHVnaW5zRW5hYmxlZCBpcyBmYWxzZS4KKworICAgICAgICB0c3RfcXdl
YnBhZ2Ugc2hvdWxkIGhhdmUgYmVlbiB1cGRhdGVkIGFzIHBhcnQgb2YgcjU2NjYyLgorICAgICAg
ICAoU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjE5NikKKwor
ICAgICAgICBVcGRhdGVkIGRvY3VtZW50YXRpb24gb2YgUVdlYlBhZ2U6OmNyZWF0ZVBsdWdpbiBh
bmQgUVdlYlNldHRpbmc6OnBsdWdpbnNFbmFibGVkCisgICAgICAgICAgICB0byBtYXRjaCB0aGUg
bmV3IGJlaGF2aW91ci4KKworICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6IFVwZGF0ZSBkb2Nz
LgorICAgICAgICAqIEFwaS9xd2Vic2V0dGluZ3MuY3BwOiBVcGRhdGUgZG9jcy4KKyAgICAgICAg
KiB0ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwOgorICAgICAgICAoY3JlYXRlUGx1Z2lu
KToKKyAgICAgICAgKHRzdF9RV2ViUGFnZTo6Y3JlYXRlUGx1Z2luV2l0aFBsdWdpbnNFbmFibGVk
KToKKyAgICAgICAgKHRzdF9RV2ViUGFnZTo6Y3JlYXRlUGx1Z2luV2l0aFBsdWdpbnNEaXNhYmxl
ZCk6CisKKzIwMTAtMDQtMjAgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRml4IGNy
ZWF0ZVBsdWdpbigpIHRlc3RzIGluIHRzdF9xd2VicGFnZSB0byBtYXRjaCBiZWhhdmlvdXIgb2Yg
UXQgcGx1Z2lucworICAgICAgICAgICAgIHdoZW4gUGx1Z2luc0VuYWJsZWQgaXMgZmFsc2UuCisK
KyAgICAgICAgdHN0X3F3ZWJwYWdlIHNob3VsZCBoYXZlIGJlZW4gdXBkYXRlZCBhcyBwYXJ0IG9m
IHI1NjY2Mi4KKyAgICAgICAgKFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzIxOTYpCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTMyMTk2CisKKyAgICAgICAgKiB0ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3Bw
OgorICAgICAgICAoY3JlYXRlUGx1Z2luKToKKyAgICAgICAgKHRzdF9RV2ViUGFnZTo6Y3JlYXRl
UGx1Z2luV2l0aFBsdWdpbnNFbmFibGVkKToKKyAgICAgICAgKHRzdF9RV2ViUGFnZTo6Y3JlYXRl
UGx1Z2luV2l0aFBsdWdpbnNEaXNhYmxlZCk6CisKIDIwMTAtMDQtMjAgIEtlbnQgVGFtdXJhICA8
dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHAgYi9X
ZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcAppbmRleCBjODU3YjAwLi5l
MzZjNTg3IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdl
LmNwcAorKysgYi9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcApAQCAt
ODEsNyArODEsOCBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQgbW9kaWZpZWQoKTsKICAgICB2
b2lkIGNvbnRleHRNZW51Q3Jhc2goKTsKICAgICB2b2lkIGRhdGFiYXNlKCk7Ci0gICAgdm9pZCBj
cmVhdGVQbHVnaW4oKTsKKyAgICB2b2lkIGNyZWF0ZVBsdWdpbldpdGhQbHVnaW5zRW5hYmxlZCgp
OworICAgIHZvaWQgY3JlYXRlUGx1Z2luV2l0aFBsdWdpbnNEaXNhYmxlZCgpOwogICAgIHZvaWQg
ZGVzdHJveVBsdWdpbl9kYXRhKCk7CiAgICAgdm9pZCBkZXN0cm95UGx1Z2luKCk7CiAgICAgdm9p
ZCBjcmVhdGVWaWV3bGVzc1BsdWdpbl9kYXRhKCk7CkBAIC01MTksMjcgKzUyMCwyMCBAQCBwcm90
ZWN0ZWQ6CiAgICAgfQogfTsKIAotdm9pZCB0c3RfUVdlYlBhZ2U6OmNyZWF0ZVBsdWdpbigpCitz
dGF0aWMgdm9pZCBjcmVhdGVQbHVnaW4oUVdlYlZpZXcgKnZpZXcpCiB7Ci0gICAgUVNpZ25hbFNw
eSBsb2FkU3B5KG1fdmlldywgU0lHTkFMKGxvYWRGaW5pc2hlZChib29sKSkpOworICAgIFFTaWdu
YWxTcHkgbG9hZFNweSh2aWV3LCBTSUdOQUwobG9hZEZpbmlzaGVkKGJvb2wpKSk7CiAKLSAgICBQ
bHVnaW5QYWdlKiBuZXdQYWdlID0gbmV3IFBsdWdpblBhZ2UobV92aWV3KTsKLSAgICBtX3ZpZXct
PnNldFBhZ2UobmV3UGFnZSk7CisgICAgUGx1Z2luUGFnZSogbmV3UGFnZSA9IG5ldyBQbHVnaW5Q
YWdlKHZpZXcpOworICAgIHZpZXctPnNldFBhZ2UobmV3UGFnZSk7CiAKLSAgICAvLyBwbHVnaW5z
IG5vdCBlbmFibGVkIGJ5IGRlZmF1bHQsIHNvIHRoZSBwbHVnaW4gc2hvdWxkbid0IGJlIGxvYWRl
ZAotICAgIG1fdmlldy0+c2V0SHRtbChRU3RyaW5nKCI8aHRtbD48Ym9keT48b2JqZWN0IHR5cGU9
J2FwcGxpY2F0aW9uL3gtcXQtcGx1Z2luJyBjbGFzc2lkPSdwdXNoYnV0dG9uJyBpZD0nbXlidXR0
b24nLz48L2JvZHk+PC9odG1sPiIpKTsKKyAgICAvLyB0eXBlIGhhcyB0byBiZSBhcHBsaWNhdGlv
bi94LXF0LXBsdWdpbgorICAgIHZpZXctPnNldEh0bWwoUVN0cmluZygiPGh0bWw+PGJvZHk+PG9i
amVjdCB0eXBlPSdhcHBsaWNhdGlvbi94LWZvb2JhcmJheicgY2xhc3NpZD0ncHVzaGJ1dHRvbicg
aWQ9J215YnV0dG9uJy8+PC9ib2R5PjwvaHRtbD4iKSk7CiAgICAgUVRSWV9DT01QQVJFKGxvYWRT
cHkuY291bnQoKSwgMSk7CiAgICAgUUNPTVBBUkUobmV3UGFnZS0+Y2FsbHMuY291bnQoKSwgMCk7
CiAKLSAgICBtX3ZpZXctPnNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OlBs
dWdpbnNFbmFibGVkLCB0cnVlKTsKLQotICAgIC8vIHR5cGUgaGFzIHRvIGJlIGFwcGxpY2F0aW9u
L3gtcXQtcGx1Z2luCi0gICAgbV92aWV3LT5zZXRIdG1sKFFTdHJpbmcoIjxodG1sPjxib2R5Pjxv
YmplY3QgdHlwZT0nYXBwbGljYXRpb24veC1mb29iYXJiYXonIGNsYXNzaWQ9J3B1c2hidXR0b24n
IGlkPSdteWJ1dHRvbicvPjwvYm9keT48L2h0bWw+IikpOworICAgIHZpZXctPnNldEh0bWwoUVN0
cmluZygiPGh0bWw+PGJvZHk+PG9iamVjdCB0eXBlPSdhcHBsaWNhdGlvbi94LXF0LXBsdWdpbicg
Y2xhc3NpZD0ncHVzaGJ1dHRvbicgaWQ9J215YnV0dG9uJy8+PC9ib2R5PjwvaHRtbD4iKSk7CiAg
ICAgUVRSWV9DT01QQVJFKGxvYWRTcHkuY291bnQoKSwgMik7Ci0gICAgUUNPTVBBUkUobmV3UGFn
ZS0+Y2FsbHMuY291bnQoKSwgMCk7Ci0KLSAgICBtX3ZpZXctPnNldEh0bWwoUVN0cmluZygiPGh0
bWw+PGJvZHk+PG9iamVjdCB0eXBlPSdhcHBsaWNhdGlvbi94LXF0LXBsdWdpbicgY2xhc3NpZD0n
cHVzaGJ1dHRvbicgaWQ9J215YnV0dG9uJy8+PC9ib2R5PjwvaHRtbD4iKSk7Ci0gICAgUVRSWV9D
T01QQVJFKGxvYWRTcHkuY291bnQoKSwgMyk7CiAgICAgUUNPTVBBUkUobmV3UGFnZS0+Y2FsbHMu
Y291bnQoKSwgMSk7CiAgICAgewogICAgICAgICBQbHVnaW5QYWdlOjpDYWxsSW5mbyBjaSA9IG5l
d1BhZ2UtPmNhbGxzLnRha2VGaXJzdCgpOwpAQCAtNTcwLDExICs1NjQsMTEgQEAgdm9pZCB0c3Rf
UVdlYlBhZ2U6OmNyZWF0ZVBsdWdpbigpCiAgICAgUUNPTVBBUkUobmV3UGFnZS0+bWFpbkZyYW1l
KCktPmV2YWx1YXRlSmF2YVNjcmlwdCgibXlidXR0b24uY2xpY2tlZC50b1N0cmluZygpIikudG9T
dHJpbmcoKSwKICAgICAgICAgICAgICBRU3RyaW5nOjpmcm9tTGF0aW4xKCJmdW5jdGlvbiBjbGlj
a2VkKCkge1xuICAgIFtuYXRpdmUgY29kZV1cbn0iKSk7CiAKLSAgICBtX3ZpZXctPnNldEh0bWwo
UVN0cmluZygiPGh0bWw+PGJvZHk+PHRhYmxlPiIKKyAgICB2aWV3LT5zZXRIdG1sKFFTdHJpbmco
IjxodG1sPjxib2R5Pjx0YWJsZT4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjx0cj48
b2JqZWN0IHR5cGU9J2FwcGxpY2F0aW9uL3gtcXQtcGx1Z2luJyBjbGFzc2lkPSdsaW5lZWRpdCcg
aWQ9J215ZWRpdCcvPjwvdHI+IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8dHI+PG9i
amVjdCB0eXBlPSdhcHBsaWNhdGlvbi94LXF0LXBsdWdpbicgY2xhc3NpZD0ncHVzaGJ1dHRvbicg
aWQ9J215YnV0dG9uJy8+PC90cj4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjwvdGFi
bGU+PC9ib2R5PjwvaHRtbD4iKSwgUVVybCgiaHR0cDovL2Zvby5iYXIuYmF6IikpOwotICAgIFFU
UllfQ09NUEFSRShsb2FkU3B5LmNvdW50KCksIDQpOworICAgIFFUUllfQ09NUEFSRShsb2FkU3B5
LmNvdW50KCksIDMpOwogICAgIFFDT01QQVJFKG5ld1BhZ2UtPmNhbGxzLmNvdW50KCksIDIpOwog
ICAgIHsKICAgICAgICAgUGx1Z2luUGFnZTo6Q2FsbEluZm8gY2kgPSBuZXdQYWdlLT5jYWxscy50
YWtlRmlyc3QoKTsKQEAgLTYwNiwxNCArNjAwLDIyIEBAIHZvaWQgdHN0X1FXZWJQYWdlOjpjcmVh
dGVQbHVnaW4oKQogICAgICAgICBRVkVSSUZZKGNpLnJldHVyblZhbHVlICE9IDApOwogICAgICAg
ICBRVkVSSUZZKGNpLnJldHVyblZhbHVlLT5pbmhlcml0cygiUVB1c2hCdXR0b24iKSk7CiAgICAg
fQorfQogCi0gICAgbV92aWV3LT5zZXR0aW5ncygpLT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdz
OjpQbHVnaW5zRW5hYmxlZCwgZmFsc2UpOwotCi0gICAgbV92aWV3LT5zZXRIdG1sKFFTdHJpbmco
IjxodG1sPjxib2R5PjxvYmplY3QgdHlwZT0nYXBwbGljYXRpb24veC1xdC1wbHVnaW4nIGNsYXNz
aWQ9J3B1c2hidXR0b24nIGlkPSdteWJ1dHRvbicvPjwvYm9keT48L2h0bWw+IikpOwotICAgIFFU
UllfQ09NUEFSRShsb2FkU3B5LmNvdW50KCksIDUpOwotICAgIFFDT01QQVJFKG5ld1BhZ2UtPmNh
bGxzLmNvdW50KCksIDApOwordm9pZCB0c3RfUVdlYlBhZ2U6OmNyZWF0ZVBsdWdpbldpdGhQbHVn
aW5zRW5hYmxlZCgpCit7CisgICAgbV92aWV3LT5zZXR0aW5ncygpLT5zZXRBdHRyaWJ1dGUoUVdl
YlNldHRpbmdzOjpQbHVnaW5zRW5hYmxlZCwgdHJ1ZSk7CisgICAgY3JlYXRlUGx1Z2luKG1fdmll
dyk7CiB9CiAKK3ZvaWQgdHN0X1FXZWJQYWdlOjpjcmVhdGVQbHVnaW5XaXRoUGx1Z2luc0Rpc2Fi
bGVkKCkKK3sKKyAgICAvLyBRdCBQbHVnaW5zIHNob3VsZCBiZSBsb2FkZWQgYnkgUXRXZWJLaXQg
ZXZlbiB3aGVuIFBsdWdpbnNFbmFibGVkIGlzCisgICAgLy8gZmFsc2UuIFRoZSBjbGllbnQgZGVj
aWRlcyB3aGV0aGVyIGEgUXQgcGx1Z2luIGlzIGVuYWJsZWQgb3Igbm90IHdoZW4KKyAgICAvLyBp
dCBkZWNpZGVzIHdoZXRoZXIgb3Igbm90IHRvIGluc3RhbnRpYXRlIGl0LgorICAgIG1fdmlldy0+
c2V0dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6UGx1Z2luc0VuYWJsZWQsIGZh
bHNlKTsKKyAgICBjcmVhdGVQbHVnaW4obV92aWV3KTsKK30KIAogLy8gU3RhbmRhcmQgYmFzZSBj
bGFzcyBmb3IgdGVtcGxhdGUgUGx1Z2luVHJhY2VyUGFnZS4gSW4gdGVzdHMgaXQgaXMgdXNlZCBh
cyBpbnRlcmZhY2UuCiBjbGFzcyBQbHVnaW5Db3VudGVyUGFnZSA6IHB1YmxpYyBRV2ViUGFnZSB7
Ci0tIAoxLjYuMy4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56777</attachid>
            <date>2010-05-22 07:11:30 -0700</date>
            <delta_ts>2010-05-24 12:19:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Qt-misbehaviour-of-QtInstance-in-cached-pages.patch</filename>
            <type>text/plain</type>
            <size>4311</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">RnJvbSBmM2NhMjgxYmI5YThlODE3MGU1MjY4MmY2MzZkMmUxZjNiMGE1NWU3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JlcnQgSG9nYW4gPHJvYmVydEB3ZWJraXQub3JnPgpEYXRl
OiBTYXQsIDIyIE1heSAyMDEwIDE1OjAwOjE4ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gW1F0XSBt
aXNiZWhhdmlvdXIgb2YgUXRJbnN0YW5jZSBpbiBjYWNoZWQgcGFnZXMKCmh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzcyNQoKRml4IHRoZSBmb2xsb3dpbmcgdGVzdHM6
CgpmYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC5odG1sCmZhc3Qv
ZXZlbnRzL3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVkLXdpdGgtZnJhbWVzLmh0bWwK
ZmFzdC9sb2FkZXIvaW5wdXQtZWxlbWVudC1wYWdlLWNhY2hlLWNyYXNoLmh0bWwKZmFzdC9kb20v
V2luZG93L3RpbWVyLXJlc3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2suaHRtbApsb2FkZXIvZ28tYmFj
ay10by1kaWZmZXJlbnQtd2luZG93LXNpemUuaHRtbApmYXN0L2RvbS9qYXZhc2NyaXB0LXVybC1j
cmFzaC1mdW5jdGlvbi5odG1sCgp3aGljaCBjdXJyZW50bHkgZmFpbCB3aXRoIHRoZSBlcnJvcjoK
CkNPTlNPTEUgTUVTU0FHRTogbGluZSAyODogUmVmZXJlbmNlRXJyb3I6IFRyeWluZyB0byBhY2Nl
c3Mgb2JqZWN0IGZyb20gZGVzdHJveWVkIHBsdWctaW4uCgpGcmFtZUxvYWRlciBubyBsb25nZXIg
Y2xlYXIgdGhlIGZyYW1lJ3Mgc2NyaXB0IG9iamVjdHMuIFRoaXMgZW5zdXJlcyB0aGUgSlMgY29u
dGV4dCBzdG9yZWQKaW4gY2FjaGVkIHBhZ2VzIGlzIG5vdCBjbGVhcmVkIGRvd24gYW5kIGNhbiBi
ZSB1c2VkIHdoZW4gdGhlIGNhY2hlZCBwYWdlIGlzIGxvYWRlZC4KClRoZSBmcmFtZSdzIHNjcmlw
dCBvYmplY3RzIHdpbGwgb25seSBnZXQgY2xlYXJlZCBvbiBGcmFtZTo6cGFnZURlc3Ryb3llZCgp
LgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICB8ICAgMzEgKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3Bw
IHwgICAgOCArKysrLS0tLQogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwICAgIHwgICAg
MyArKy0KIDMgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDY5MDBmM2EuLmQ1MjEyZGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTAtMDUtMjIgIFJvYmVydCBIb2dh
biAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtRdF0gbWlzYmVoYXZpb3VyIG9mIFF0SW5zdGFuY2UgaW4gY2FjaGVk
IHBhZ2VzCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM3NzI1CisKKyAgICAgICAgRml4IHRoZSBmb2xsb3dpbmcgdGVzdHM6CisKKyAgICAgICAgZmFz
dC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNoZWQuaHRtbAorICAgICAgICBm
YXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC13aXRoLWZyYW1lcy5o
dG1sCisgICAgICAgIGZhc3QvbG9hZGVyL2lucHV0LWVsZW1lbnQtcGFnZS1jYWNoZS1jcmFzaC5o
dG1sCisgICAgICAgIGZhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1bWUtb24tbmF2aWdhdGlvbi1i
YWNrLmh0bWwKKyAgICAgICAgbG9hZGVyL2dvLWJhY2stdG8tZGlmZmVyZW50LXdpbmRvdy1zaXpl
Lmh0bWwKKyAgICAgICAgZmFzdC9kb20vamF2YXNjcmlwdC11cmwtY3Jhc2gtZnVuY3Rpb24uaHRt
bAorCisgICAgICAgIHdoaWNoIGN1cnJlbnRseSBmYWlsIHdpdGggdGhlIGVycm9yOgorCisgICAg
ICAgIENPTlNPTEUgTUVTU0FHRTogbGluZSAyODogUmVmZXJlbmNlRXJyb3I6IFRyeWluZyB0byBh
Y2Nlc3Mgb2JqZWN0IGZyb20gZGVzdHJveWVkIHBsdWctaW4uCisKKyAgICAgICAgRnJhbWVMb2Fk
ZXIgbm8gbG9uZ2VyIGNsZWFyIHRoZSBmcmFtZSdzIHNjcmlwdCBvYmplY3RzLiBUaGlzIGVuc3Vy
ZXMgdGhlIEpTIGNvbnRleHQgc3RvcmVkCisgICAgICAgIGluIGNhY2hlZCBwYWdlcyBpcyBub3Qg
Y2xlYXJlZCBkb3duIGFuZCBjYW4gYmUgdXNlZCB3aGVuIHRoZSBjYWNoZWQgcGFnZSBpcyBsb2Fk
ZWQuCisKKyAgICAgICAgVGhlIGZyYW1lJ3Mgc2NyaXB0IG9iamVjdHMgd2lsbCBvbmx5IGdldCBj
bGVhcmVkIG9uIEZyYW1lOjpwYWdlRGVzdHJveWVkKCkuCisKKyAgICAgICAgKiBsb2FkZXIvRG9j
dW1lbnRXcml0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRXcml0ZXI6OmJlZ2lu
KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6Om9wZW4pOgorCiAyMDEwLTA1LTE4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50V3JpdGVyLmNwcAppbmRleCBiYTA2OTVlLi4xYzRhNmJmIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRXcml0ZXIuY3BwCkBAIC05NywxMCArOTcsMTAgQEAgdm9pZCBEb2N1bWVudFdyaXRlcjo6
YmVnaW4oY29uc3QgS1VSTCYgdXJsLCBib29sIGRpc3BhdGNoLCBTZWN1cml0eU9yaWdpbiogb3Jp
Z2kKICAgICAvLyBpbmhlcml0IGFuIGFsaWFzZWQgc2VjdXJpdHkgY29udGV4dC4KICAgICBSZWZQ
dHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gY3JlYXRlRG9jdW1lbnQoKTsKIAotICAgIGJvb2wgcmVz
ZXRTY3JpcHRpbmcgPSAhKG1fZnJhbWUtPmxvYWRlcigpLT5pc0Rpc3BsYXlpbmdJbml0aWFsRW1w
dHlEb2N1bWVudCgpICYmIG1fZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmlz
U2VjdXJlVHJhbnNpdGlvblRvKHVybCkpOwotICAgIG1fZnJhbWUtPmxvYWRlcigpLT5jbGVhcihy
ZXNldFNjcmlwdGluZywgcmVzZXRTY3JpcHRpbmcpOwotICAgIGlmIChyZXNldFNjcmlwdGluZykK
LSAgICAgICAgbV9mcmFtZS0+c2NyaXB0KCktPnVwZGF0ZVBsYXRmb3JtU2NyaXB0T2JqZWN0cygp
OworICAgIC8vIENsZWFyaW5nIHRoZSBmcmFtZSdzIHNjcmlwdCBvYmplY3RzIGlzIG9ubHkgZG9u
ZSBvbiBGcmFtZTo6cGFnZURlc3Ryb3llZCgpLgorICAgIC8vIFdlIGRvbid0IGNsZWFyIHRoZW0g
aGVyZSBiZWNhdXNlIHRoZXkgYXJlIHVzZWQgYnkgcGFnZXMgaW4gdGhlIGNhY2hlLgorICAgIGJv
b2wgcmVzZXRXaW5kb3cgPSAhKG1fZnJhbWUtPmxvYWRlcigpLT5pc0Rpc3BsYXlpbmdJbml0aWFs
RW1wdHlEb2N1bWVudCgpICYmIG1fZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkt
PmlzU2VjdXJlVHJhbnNpdGlvblRvKHVybCkpOworICAgIG1fZnJhbWUtPmxvYWRlcigpLT5jbGVh
cihyZXNldFdpbmRvdywgZmFsc2UpOwogCiAgICAgbV9mcmFtZS0+bG9hZGVyKCktPnNldFVSTCh1
cmwpOwogICAgIGRvY3VtZW50LT5zZXRVUkwodXJsKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRl
eCAzNmIzOGU4Li4wM2RmOTRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yNjI5LDcgKzI2
MjksOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpvcGVuKENhY2hlZEZyYW1lQmFzZSYgY2FjaGVkRnJh
bWUpCiAgICAgbV93b3JraW5nVVJMID0gdXJsOwogCiAgICAgc3RhcnRlZCgpOwotICAgIGNsZWFy
KHRydWUsIHRydWUsIGNhY2hlZEZyYW1lLmlzTWFpbkZyYW1lKCkpOworICAgIC8vIENsZWFyaW5n
IHRoZSBmcmFtZSdzIHNjcmlwdCBvYmplY3RzIGlzIG9ubHkgZG9uZSBvbiBGcmFtZTo6cGFnZURl
c3Ryb3llZCgpCisgICAgY2xlYXIodHJ1ZSwgZmFsc2UsIGNhY2hlZEZyYW1lLmlzTWFpbkZyYW1l
KCkpOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY2FjaGVkRnJhbWUuZG9jdW1lbnQoKTsK
ICAgICBBU1NFUlQoZG9jdW1lbnQpOwotLSAKMS43LjAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56911</attachid>
            <date>2010-05-24 12:19:14 -0700</date>
            <delta_ts>2010-05-24 12:34:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37725-20100524201910.patch</filename>
            <type>text/plain</type>
            <size>8599</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2OThkZjFhMTU0ODI0M2Y5MzYyOTg3ZjFiYTU1MzU3ZWVlN2VhOWFjLi4yNTQzODhk
ODJmN2MyYTdlMGE0MjRmNDIyNmRkMmFkMTZhZjk1NDM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAK
KzIwMTAtMDUtMjQgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZyYW1lTG9hZGVyOjpjbGVh
cigpIGNsZWFycyBKUyBvYmplY3RzIHRoYXQgY2FjaGVkIHBhZ2VzIGxhdGVyIHJlbHkgb24KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc3MjUKKwor
ICAgICAgICBGaXggdGhlIGZvbGxvd2luZyB0ZXN0czoKKworICAgICAgICBmYXN0L2V2ZW50cy9w
YWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC5odG1sCisgICAgICAgIGZhc3QvZXZlbnRz
L3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVkLXdpdGgtZnJhbWVzLmh0bWwKKyAgICAg
ICAgZmFzdC9sb2FkZXIvaW5wdXQtZWxlbWVudC1wYWdlLWNhY2hlLWNyYXNoLmh0bWwKKyAgICAg
ICAgZmFzdC9kb20vV2luZG93L3RpbWVyLXJlc3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2suaHRtbAor
ICAgICAgICBsb2FkZXIvZ28tYmFjay10by1kaWZmZXJlbnQtd2luZG93LXNpemUuaHRtbAorCisg
ICAgICAgIHdoaWNoIGN1cnJlbnRseSBmYWlsIG9uIFF0IGFuZCBHVEsgKGFuZCBhcmUgc2tpcHBl
ZCBieSBDaHJvbWl1bQorICAgICAgICBiZWNhdXNlIGl0IGRvZXMgbm90IHVzZSBXZWJLaXQncyBj
YWNoaW5nKSB3aXRoIHRoZSBlcnJvcjoKKworICAgICAgICBDT05TT0xFIE1FU1NBR0U6IGxpbmUg
Mjg6IFJlZmVyZW5jZUVycm9yOiBUcnlpbmcgdG8gYWNjZXNzIG9iamVjdCBmcm9tIGRlc3Ryb3ll
ZCBwbHVnLWluLgorCisgICAgICAgIEZyYW1lTG9hZGVyIG5vIGxvbmdlciBjbGVhcnMgdGhlIGZy
YW1lJ3Mgc2NyaXB0IG9iamVjdHMgaWYgdGhlIHBhZ2UgaXQgaXMKKyAgICAgICAgbmF2aWdhdGlu
ZyBhd2F5IGZyb20gaGFzIGJlZW4gY2FjaGVkLiBUaGlzIGVuc3VyZXMgdGhlIEpTIGNvbnRleHQg
c3RvcmVkCisgICAgICAgIGluIGNhY2hlZCBwYWdlcyBpcyBub3QgY2xlYXJlZCBkb3duIGFuZCBj
YW4gYmUgdXNlZCB3aGVuIHRoZSBjYWNoZWQgcGFnZSBpcyByZWxvYWRlZC4KKworICAgICAgICBJ
biBzdWNoIGNhc2VzLCB0aGUgZnJhbWUncyBzY3JpcHQgb2JqZWN0cyB3aWxsIG9ubHkgZ2V0IGNs
ZWFyZWQgb24gRnJhbWU6OnBhZ2VEZXN0cm95ZWQoKS4KKworICAgICAgICAqIHBsYXRmb3JtL3F0
L1NraXBwZWQ6CisKIDIwMTAtMDUtMjQgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGJyb2tlbiBRdCB0ZXN0IGZpeC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IGU4YmNjMTlmMThjNmE4MDIwYjc4N2E3Nzg4MzM1ZTlhMTRl
YjM2ZTEuLjQ3ZjVhMGUwYzA3ODFhN2Y4M2I0NWMzYzEyZDIzYjU1MmVmMjdhMjcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvU2tpcHBlZApAQCAtMjYxLDEwICsyNjEsNiBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5
L2xvY2FsLXZpZGVvLXNvdXJjZS1mcm9tLXJlbW90ZS5odG1sCiAjIE1pc3NpbmcgdGV4dElucHV0
Q29udHJvbGxlci5maXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSgpCiBlZGl0aW5nL2luc2VydGlu
Zy9jYXJldC1wb3NpdGlvbi5odG1sCiAKLSMgTWlzc2luZyBsYXlvdXRUZXN0Q29udHJvbGxlci5v
dmVycmlkZVByZWZlcmVuY2UoKQotZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFj
ay1jYWNoZWQuaHRtbAotZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNo
ZWQtd2l0aC1mcmFtZXMuaHRtbAotCiAjIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRGb3JQb2xp
Y3lEZWxlZ2F0ZSgpIGRvZXMgbm90IHJlcG9ydCB0aGUgb3JpZ2luIG5vZGUKIGZhc3QvZW5jb2Rp
bmcvbWFpbHRvLWFsd2F5cy11dGYtOC5odG1sCiAKQEAgLTQ2OTEsMTAgKzQ2ODcsNiBAQCBwcmlu
dGluZy9tZWRpYS1xdWVyaWVzLXByaW50Lmh0bWwKIGZhc3QvY3NzL3Bvc2l0aW9uZWQtb3ZlcmZs
b3ctc2Nyb2xsLmh0bWwKIGZhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLmh0bWwKIAot
IyBNaXNzaW5nIERSVCBhYmlsaXR5IHRvIG92ZXJyaWRlICdzdGFuZGFyZCcgcHJlZmVyZW5jZXMu
Ci1mYXN0L2RvbS9XaW5kb3cvdGltZXItcmVzdW1lLW9uLW5hdmlnYXRpb24tYmFjay5odG1sCi1s
b2FkZXIvZ28tYmFjay10by1kaWZmZXJlbnQtd2luZG93LXNpemUuaHRtbAotCiAjIFRoaXMgcG9y
dCBkb2Vzbid0IHN1cHBvcnQgR2VvbG9jYXRpb24uCiBmYXN0L2RvbS9HZW9sb2NhdGlvbgogCkBA
IC00ODY4LDEwICs0ODYwLDYgQEAgcHJpbnRpbmcvY29tcG9zaXRpbmctbGF5ZXItcHJpbnRpbmcu
aHRtbAogc3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93LWV4YW1wbGUuaHRtbAogc3ZnL2Nzcy9jb21w
b3NpdGUtc2hhZG93LXdpdGgtb3BhY2l0eS5odG1sCiAKLSMgQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDI4OiBSZWZlcmVuY2VFcnJvcjogVHJ5aW5nIHRvIGFjY2VzcyBvYmplY3QgZnJvbSBkZXN0cm95
ZWQgcGx1Zy1pbi4KLSMgVGhpcyB0ZXN0IGludHJvZHVjZWQgaW4gcjUxODc3Ci1mYXN0L2xvYWRl
ci9pbnB1dC1lbGVtZW50LXBhZ2UtY2FjaGUtY3Jhc2guaHRtbAotCiAjIE1pc3NpbmcgZm9yd2Fy
ZCBlbnRyaWVzIHdoZW4gZHVtcGluZyBiYWNrL2ZvcndhcmQgbGlzdC4KICMgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyNDcwCiBodHRwL3Rlc3RzL25hdmlnYXRpb24v
ZHluYW1pYy1pZnJhbWUtZHluYW1pYy1mb3JtLWJhY2stZW50cnkuaHRtbApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNjhjNWQ1ODA5NGUz
ZGYyM2U4ZmFiMWM0NmU0Y2JhMTk4MTJiNGVjLi5iMzVjM2Q1MmRmYzI3OTJiOWJmNWQwZjQzMDBi
Y2I3YTJkMTQ0YmQ1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEwLTA1LTI0ICBSb2JlcnQgSG9nYW4gIDxy
b2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGcmFtZUxvYWRlcjo6Y2xlYXIoKSBjbGVhcnMgSlMgb2JqZWN0cyB0aGF0IGNh
Y2hlZCBwYWdlcyBsYXRlciByZWx5IG9uCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM3NzI1CisKKyAgICAgICAgRml4IHRoZSBmb2xsb3dpbmcgdGVz
dHM6CisKKyAgICAgICAgZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNo
ZWQuaHRtbAorICAgICAgICBmYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNh
Y2hlZC13aXRoLWZyYW1lcy5odG1sCisgICAgICAgIGZhc3QvbG9hZGVyL2lucHV0LWVsZW1lbnQt
cGFnZS1jYWNoZS1jcmFzaC5odG1sCisgICAgICAgIGZhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1
bWUtb24tbmF2aWdhdGlvbi1iYWNrLmh0bWwKKyAgICAgICAgbG9hZGVyL2dvLWJhY2stdG8tZGlm
ZmVyZW50LXdpbmRvdy1zaXplLmh0bWwKKworICAgICAgICB3aGljaCBjdXJyZW50bHkgZmFpbCBv
biBRdCBhbmQgR1RLIChhbmQgYXJlIHNraXBwZWQgYnkgQ2hyb21pdW0KKyAgICAgICAgYmVjYXVz
ZSBpdCBkb2VzIG5vdCB1c2UgV2ViS2l0J3MgY2FjaGluZykgd2l0aCB0aGUgZXJyb3I6CisKKyAg
ICAgICAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI4OiBSZWZlcmVuY2VFcnJvcjogVHJ5aW5nIHRv
IGFjY2VzcyBvYmplY3QgZnJvbSBkZXN0cm95ZWQgcGx1Zy1pbi4KKworICAgICAgICBGcmFtZUxv
YWRlciBubyBsb25nZXIgY2xlYXJzIHRoZSBmcmFtZSdzIHNjcmlwdCBvYmplY3RzIGlmIHRoZSBw
YWdlIGl0IGlzCisgICAgICAgIG5hdmlnYXRpbmcgYXdheSBmcm9tIGhhcyBiZWVuIGNhY2hlZC4g
VGhpcyBlbnN1cmVzIHRoZSBKUyBjb250ZXh0IHN0b3JlZAorICAgICAgICBpbiBjYWNoZWQgcGFn
ZXMgaXMgbm90IGNsZWFyZWQgZG93biBhbmQgY2FuIGJlIHVzZWQgd2hlbiB0aGUgY2FjaGVkIHBh
Z2UgaXMgcmVsb2FkZWQuCisKKyAgICAgICAgSW4gc3VjaCBjYXNlcywgdGhlIGZyYW1lJ3Mgc2Ny
aXB0IG9iamVjdHMgd2lsbCBvbmx5IGdldCBjbGVhcmVkIG9uIEZyYW1lOjpwYWdlRGVzdHJveWVk
KCkuCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnRXcml0ZXI6OmJlZ2luKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OkZyYW1lTG9hZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpvcGVuKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpjYWNoZVBhZ2VGb3JIaXN0b3J5SXRlbSk6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6aXNMZWF2aW5nQ2Fj
aGVkUGFnZSk6CisKIDIwMTAtMDUtMjQgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2MDA2OC4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcCBiL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50V3JpdGVyLmNwcAppbmRleCAwYmVkMTU5ZGVlYWQxYWJhNTg5ZjdmMzIxNzA5
MjVkOGQ0N2I5NTZlLi4wNTRjOWEwNTlkNGY4ODI5Mjk4YzgyMWRiYzE1MmFhMGUxYjE4NjFjIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKKysrIGIvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCkBAIC0xMDMsOCArMTAzLDExIEBAIHZvaWQgRG9j
dW1lbnRXcml0ZXI6OmJlZ2luKGNvbnN0IEtVUkwmIHVybCwgYm9vbCBkaXNwYXRjaCwgU2VjdXJp
dHlPcmlnaW4qIG9yaWdpCiAgICAgaWYgKGRvY3VtZW50LT5pc1BsdWdpbkRvY3VtZW50KCkgJiYg
bV9mcmFtZS0+bG9hZGVyKCktPmlzU2FuZGJveGVkKFNhbmRib3hQbHVnaW5zKSkKICAgICAgICAg
ZG9jdW1lbnQgPSBTaW5rRG9jdW1lbnQ6OmNyZWF0ZShtX2ZyYW1lKTsKIAotICAgIGJvb2wgcmVz
ZXRTY3JpcHRpbmcgPSAhKG1fZnJhbWUtPmxvYWRlcigpLT5pc0Rpc3BsYXlpbmdJbml0aWFsRW1w
dHlEb2N1bWVudCgpICYmIG1fZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmlz
U2VjdXJlVHJhbnNpdGlvblRvKHVybCkpOwotICAgIG1fZnJhbWUtPmxvYWRlcigpLT5jbGVhcihy
ZXNldFNjcmlwdGluZywgcmVzZXRTY3JpcHRpbmcpOworICAgIGJvb2wgcmVzZXRXaW5kb3cgPSAh
KG1fZnJhbWUtPmxvYWRlcigpLT5pc0Rpc3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1bWVudCgpICYm
IG1fZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmlzU2VjdXJlVHJhbnNpdGlv
blRvKHVybCkpOworICAgIGJvb2wgcmVzZXRTY3JpcHRpbmcgPSAhKG1fZnJhbWUtPmxvYWRlcigp
LT5pc0Rpc3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1bWVudCgpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJiYgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+aXNTZWN1
cmVUcmFuc2l0aW9uVG8odXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAhKG1f
ZnJhbWUtPmxvYWRlcigpLT5pc0xlYXZpbmdDYWNoZWRQYWdlKCkpOworICAgIG1fZnJhbWUtPmxv
YWRlcigpLT5jbGVhcihyZXNldFdpbmRvdywgcmVzZXRTY3JpcHRpbmcpOwogICAgIGlmIChyZXNl
dFNjcmlwdGluZykKICAgICAgICAgbV9mcmFtZS0+c2NyaXB0KCktPnVwZGF0ZVBsYXRmb3JtU2Ny
aXB0T2JqZWN0cygpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggZmRkOTc4N2ZhOWM5NDg1
MDgxZGI2ZmEyOTYxM2M1NmYzZDIzYWMwNC4uMmJmNTgzMzc2MDAxNWY3YjJmZWI0Yzk4NTQ1MjIy
OTNiMGUwMWI5YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisr
KyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMjE2LDYgKzIxNiw3IEBAIEZy
YW1lTG9hZGVyOjpGcmFtZUxvYWRlcihGcmFtZSogZnJhbWUsIEZyYW1lTG9hZGVyQ2xpZW50KiBj
bGllbnQpCiAgICAgLCBtX2NvbW1pdHRlZEZpcnN0UmVhbERvY3VtZW50TG9hZChmYWxzZSkKICAg
ICAsIG1fZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbihmYWxzZSkKICAgICAsIG1fbG9hZGluZ0Zy
b21DYWNoZWRQYWdlKGZhbHNlKQorICAgICwgbV9sZWF2aW5nQ2FjaGVkUGFnZShmYWxzZSkKICAg
ICAsIG1fc3VwcHJlc3NPcGVuZXJJbk5ld0ZyYW1lKGZhbHNlKQogICAgICwgbV9zYW5kYm94Rmxh
Z3MoU2FuZGJveEFsbCkKICAgICAsIG1fZm9yY2VkU2FuZGJveEZsYWdzKFNhbmRib3hOb25lKQpA
QCAtMjYzNiw3ICsyNjM3LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6b3BlbihDYWNoZWRGcmFtZUJh
c2UmIGNhY2hlZEZyYW1lKQogICAgIG1fd29ya2luZ1VSTCA9IHVybDsKIAogICAgIHN0YXJ0ZWQo
KTsKLSAgICBjbGVhcih0cnVlLCB0cnVlLCBjYWNoZWRGcmFtZS5pc01haW5GcmFtZSgpKTsKKyAg
ICBjbGVhcih0cnVlLCAhbV9sZWF2aW5nQ2FjaGVkUGFnZSwgY2FjaGVkRnJhbWUuaXNNYWluRnJh
bWUoKSk7CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjYWNoZWRGcmFtZS5kb2N1bWVudCgp
OwogICAgIEFTU0VSVChkb2N1bWVudCk7CkBAIC0zNjA3LDYgKzM2MDgsNyBAQCBib29sIEZyYW1l
TG9hZGVyOjpsb2FkUHJvdmlzaW9uYWxJdGVtRnJvbUNhY2hlZFBhZ2UoKQogCiB2b2lkIEZyYW1l
TG9hZGVyOjpjYWNoZVBhZ2VGb3JIaXN0b3J5SXRlbShIaXN0b3J5SXRlbSogaXRlbSkKIHsKKyAg
ICBtX2xlYXZpbmdDYWNoZWRQYWdlID0gZmFsc2U7CiAgICAgaWYgKCFjYW5DYWNoZVBhZ2UoKSB8
fCBpdGVtLT5pc0luUGFnZUNhY2hlKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMzYxNSw2ICsz
NjE3LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2FjaGVQYWdlRm9ySGlzdG9yeUl0ZW0oSGlzdG9y
eUl0ZW0qIGl0ZW0pCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpIHsKICAg
ICAgICAgUmVmUHRyPENhY2hlZFBhZ2U+IGNhY2hlZFBhZ2UgPSBDYWNoZWRQYWdlOjpjcmVhdGUo
cGFnZSk7CiAgICAgICAgIHBhZ2VDYWNoZSgpLT5hZGQoaXRlbSwgY2FjaGVkUGFnZS5yZWxlYXNl
KCkpOworICAgICAgICBtX2xlYXZpbmdDYWNoZWRQYWdlID0gdHJ1ZTsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5oCmluZGV4IDQ5NzcyM2FmMzJlMTc4NzRjYTFhYThjYmI1OGE3NjBmY2MxZWYx
NmIuLmFiNmQ3OTNkMWZjMDY3NTQ3MjFiMThhZTU2YjAzODc5YzBkZDEyODYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuaApAQCAtMzA5LDYgKzMwOSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY29tbWl0UHJv
dmlzaW9uYWxMb2FkKFBhc3NSZWZQdHI8Q2FjaGVkUGFnZT4pOwogICAgIGJvb2wgaXNMb2FkaW5n
RnJvbUNhY2hlZFBhZ2UoKSBjb25zdCB7IHJldHVybiBtX2xvYWRpbmdGcm9tQ2FjaGVkUGFnZTsg
fQorICAgIGJvb2wgaXNMZWF2aW5nQ2FjaGVkUGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGVhdmlu
Z0NhY2hlZFBhZ2U7IH0KIAogICAgIGJvb2wgY29tbWl0dGluZ0ZpcnN0UmVhbExvYWQoKSBjb25z
dCB7IHJldHVybiAhbV9jcmVhdGluZ0luaXRpYWxFbXB0eURvY3VtZW50ICYmICFtX2NvbW1pdHRl
ZEZpcnN0UmVhbERvY3VtZW50TG9hZDsgfQogICAgIGJvb2wgY29tbWl0dGVkRmlyc3RSZWFsRG9j
dW1lbnRMb2FkKCkgY29uc3QgeyByZXR1cm4gbV9jb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVudExv
YWQ7IH0KQEAgLTUzMCw2ICs1MzEsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2RpZFBlcmZv
cm1GaXJzdE5hdmlnYXRpb247CiAgICAgYm9vbCBtX2xvYWRpbmdGcm9tQ2FjaGVkUGFnZTsKKyAg
ICBib29sIG1fbGVhdmluZ0NhY2hlZFBhZ2U7CiAgICAgYm9vbCBtX3N1cHByZXNzT3BlbmVySW5O
ZXdGcmFtZTsKICAgICAKICAgICBTYW5kYm94RmxhZ3MgbV9zYW5kYm94RmxhZ3M7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56912</attachid>
            <date>2010-05-24 12:34:23 -0700</date>
            <delta_ts>2010-05-26 14:21:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37725-20100524203420.patch</filename>
            <type>text/plain</type>
            <size>8427</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2OThkZjFhMTU0ODI0M2Y5MzYyOTg3ZjFiYTU1MzU3ZWVlN2VhOWFjLi4yNTQzODhk
ODJmN2MyYTdlMGE0MjRmNDIyNmRkMmFkMTZhZjk1NDM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAK
KzIwMTAtMDUtMjQgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZyYW1lTG9hZGVyOjpjbGVh
cigpIGNsZWFycyBKUyBvYmplY3RzIHRoYXQgY2FjaGVkIHBhZ2VzIGxhdGVyIHJlbHkgb24KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc3MjUKKwor
ICAgICAgICBGaXggdGhlIGZvbGxvd2luZyB0ZXN0czoKKworICAgICAgICBmYXN0L2V2ZW50cy9w
YWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC5odG1sCisgICAgICAgIGZhc3QvZXZlbnRz
L3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVkLXdpdGgtZnJhbWVzLmh0bWwKKyAgICAg
ICAgZmFzdC9sb2FkZXIvaW5wdXQtZWxlbWVudC1wYWdlLWNhY2hlLWNyYXNoLmh0bWwKKyAgICAg
ICAgZmFzdC9kb20vV2luZG93L3RpbWVyLXJlc3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2suaHRtbAor
ICAgICAgICBsb2FkZXIvZ28tYmFjay10by1kaWZmZXJlbnQtd2luZG93LXNpemUuaHRtbAorCisg
ICAgICAgIHdoaWNoIGN1cnJlbnRseSBmYWlsIG9uIFF0IGFuZCBHVEsgKGFuZCBhcmUgc2tpcHBl
ZCBieSBDaHJvbWl1bQorICAgICAgICBiZWNhdXNlIGl0IGRvZXMgbm90IHVzZSBXZWJLaXQncyBj
YWNoaW5nKSB3aXRoIHRoZSBlcnJvcjoKKworICAgICAgICBDT05TT0xFIE1FU1NBR0U6IGxpbmUg
Mjg6IFJlZmVyZW5jZUVycm9yOiBUcnlpbmcgdG8gYWNjZXNzIG9iamVjdCBmcm9tIGRlc3Ryb3ll
ZCBwbHVnLWluLgorCisgICAgICAgIEZyYW1lTG9hZGVyIG5vIGxvbmdlciBjbGVhcnMgdGhlIGZy
YW1lJ3Mgc2NyaXB0IG9iamVjdHMgaWYgdGhlIHBhZ2UgaXQgaXMKKyAgICAgICAgbmF2aWdhdGlu
ZyBhd2F5IGZyb20gaGFzIGJlZW4gY2FjaGVkLiBUaGlzIGVuc3VyZXMgdGhlIEpTIGNvbnRleHQg
c3RvcmVkCisgICAgICAgIGluIGNhY2hlZCBwYWdlcyBpcyBub3QgY2xlYXJlZCBkb3duIGFuZCBj
YW4gYmUgdXNlZCB3aGVuIHRoZSBjYWNoZWQgcGFnZSBpcyByZWxvYWRlZC4KKworICAgICAgICBJ
biBzdWNoIGNhc2VzLCB0aGUgZnJhbWUncyBzY3JpcHQgb2JqZWN0cyB3aWxsIG9ubHkgZ2V0IGNs
ZWFyZWQgb24gRnJhbWU6OnBhZ2VEZXN0cm95ZWQoKS4KKworICAgICAgICAqIHBsYXRmb3JtL3F0
L1NraXBwZWQ6CisKIDIwMTAtMDUtMjQgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGJyb2tlbiBRdCB0ZXN0IGZpeC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IGU4YmNjMTlmMThjNmE4MDIwYjc4N2E3Nzg4MzM1ZTlhMTRl
YjM2ZTEuLjQ3ZjVhMGUwYzA3ODFhN2Y4M2I0NWMzYzEyZDIzYjU1MmVmMjdhMjcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvU2tpcHBlZApAQCAtMjYxLDEwICsyNjEsNiBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5
L2xvY2FsLXZpZGVvLXNvdXJjZS1mcm9tLXJlbW90ZS5odG1sCiAjIE1pc3NpbmcgdGV4dElucHV0
Q29udHJvbGxlci5maXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSgpCiBlZGl0aW5nL2luc2VydGlu
Zy9jYXJldC1wb3NpdGlvbi5odG1sCiAKLSMgTWlzc2luZyBsYXlvdXRUZXN0Q29udHJvbGxlci5v
dmVycmlkZVByZWZlcmVuY2UoKQotZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFj
ay1jYWNoZWQuaHRtbAotZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNo
ZWQtd2l0aC1mcmFtZXMuaHRtbAotCiAjIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRGb3JQb2xp
Y3lEZWxlZ2F0ZSgpIGRvZXMgbm90IHJlcG9ydCB0aGUgb3JpZ2luIG5vZGUKIGZhc3QvZW5jb2Rp
bmcvbWFpbHRvLWFsd2F5cy11dGYtOC5odG1sCiAKQEAgLTQ2OTEsMTAgKzQ2ODcsNiBAQCBwcmlu
dGluZy9tZWRpYS1xdWVyaWVzLXByaW50Lmh0bWwKIGZhc3QvY3NzL3Bvc2l0aW9uZWQtb3ZlcmZs
b3ctc2Nyb2xsLmh0bWwKIGZhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLmh0bWwKIAot
IyBNaXNzaW5nIERSVCBhYmlsaXR5IHRvIG92ZXJyaWRlICdzdGFuZGFyZCcgcHJlZmVyZW5jZXMu
Ci1mYXN0L2RvbS9XaW5kb3cvdGltZXItcmVzdW1lLW9uLW5hdmlnYXRpb24tYmFjay5odG1sCi1s
b2FkZXIvZ28tYmFjay10by1kaWZmZXJlbnQtd2luZG93LXNpemUuaHRtbAotCiAjIFRoaXMgcG9y
dCBkb2Vzbid0IHN1cHBvcnQgR2VvbG9jYXRpb24uCiBmYXN0L2RvbS9HZW9sb2NhdGlvbgogCkBA
IC00ODY4LDEwICs0ODYwLDYgQEAgcHJpbnRpbmcvY29tcG9zaXRpbmctbGF5ZXItcHJpbnRpbmcu
aHRtbAogc3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93LWV4YW1wbGUuaHRtbAogc3ZnL2Nzcy9jb21w
b3NpdGUtc2hhZG93LXdpdGgtb3BhY2l0eS5odG1sCiAKLSMgQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDI4OiBSZWZlcmVuY2VFcnJvcjogVHJ5aW5nIHRvIGFjY2VzcyBvYmplY3QgZnJvbSBkZXN0cm95
ZWQgcGx1Zy1pbi4KLSMgVGhpcyB0ZXN0IGludHJvZHVjZWQgaW4gcjUxODc3Ci1mYXN0L2xvYWRl
ci9pbnB1dC1lbGVtZW50LXBhZ2UtY2FjaGUtY3Jhc2guaHRtbAotCiAjIE1pc3NpbmcgZm9yd2Fy
ZCBlbnRyaWVzIHdoZW4gZHVtcGluZyBiYWNrL2ZvcndhcmQgbGlzdC4KICMgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyNDcwCiBodHRwL3Rlc3RzL25hdmlnYXRpb24v
ZHluYW1pYy1pZnJhbWUtZHluYW1pYy1mb3JtLWJhY2stZW50cnkuaHRtbApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNjhjNWQ1ODA5NGUz
ZGYyM2U4ZmFiMWM0NmU0Y2JhMTk4MTJiNGVjLi5iMzVjM2Q1MmRmYzI3OTJiOWJmNWQwZjQzMDBi
Y2I3YTJkMTQ0YmQ1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEwLTA1LTI0ICBSb2JlcnQgSG9nYW4gIDxy
b2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGcmFtZUxvYWRlcjo6Y2xlYXIoKSBjbGVhcnMgSlMgb2JqZWN0cyB0aGF0IGNh
Y2hlZCBwYWdlcyBsYXRlciByZWx5IG9uCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM3NzI1CisKKyAgICAgICAgRml4IHRoZSBmb2xsb3dpbmcgdGVz
dHM6CisKKyAgICAgICAgZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNo
ZWQuaHRtbAorICAgICAgICBmYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNh
Y2hlZC13aXRoLWZyYW1lcy5odG1sCisgICAgICAgIGZhc3QvbG9hZGVyL2lucHV0LWVsZW1lbnQt
cGFnZS1jYWNoZS1jcmFzaC5odG1sCisgICAgICAgIGZhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1
bWUtb24tbmF2aWdhdGlvbi1iYWNrLmh0bWwKKyAgICAgICAgbG9hZGVyL2dvLWJhY2stdG8tZGlm
ZmVyZW50LXdpbmRvdy1zaXplLmh0bWwKKworICAgICAgICB3aGljaCBjdXJyZW50bHkgZmFpbCBv
biBRdCBhbmQgR1RLIChhbmQgYXJlIHNraXBwZWQgYnkgQ2hyb21pdW0KKyAgICAgICAgYmVjYXVz
ZSBpdCBkb2VzIG5vdCB1c2UgV2ViS2l0J3MgY2FjaGluZykgd2l0aCB0aGUgZXJyb3I6CisKKyAg
ICAgICAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI4OiBSZWZlcmVuY2VFcnJvcjogVHJ5aW5nIHRv
IGFjY2VzcyBvYmplY3QgZnJvbSBkZXN0cm95ZWQgcGx1Zy1pbi4KKworICAgICAgICBGcmFtZUxv
YWRlciBubyBsb25nZXIgY2xlYXJzIHRoZSBmcmFtZSdzIHNjcmlwdCBvYmplY3RzIGlmIHRoZSBw
YWdlIGl0IGlzCisgICAgICAgIG5hdmlnYXRpbmcgYXdheSBmcm9tIGhhcyBiZWVuIGNhY2hlZC4g
VGhpcyBlbnN1cmVzIHRoZSBKUyBjb250ZXh0IHN0b3JlZAorICAgICAgICBpbiBjYWNoZWQgcGFn
ZXMgaXMgbm90IGNsZWFyZWQgZG93biBhbmQgY2FuIGJlIHVzZWQgd2hlbiB0aGUgY2FjaGVkIHBh
Z2UgaXMgcmVsb2FkZWQuCisKKyAgICAgICAgSW4gc3VjaCBjYXNlcywgdGhlIGZyYW1lJ3Mgc2Ny
aXB0IG9iamVjdHMgd2lsbCBvbmx5IGdldCBjbGVhcmVkIG9uIEZyYW1lOjpwYWdlRGVzdHJveWVk
KCkuCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnRXcml0ZXI6OmJlZ2luKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OkZyYW1lTG9hZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpvcGVuKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpjYWNoZVBhZ2VGb3JIaXN0b3J5SXRlbSk6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6aXNMZWF2aW5nQ2Fj
aGVkUGFnZSk6CisKIDIwMTAtMDUtMjQgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2MDA2OC4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcCBiL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50V3JpdGVyLmNwcAppbmRleCAwYmVkMTU5ZGVlYWQxYWJhNTg5ZjdmMzIxNzA5
MjVkOGQ0N2I5NTZlLi5hYmMxZjc3MWVjNDM4NzA1OTI3NTA1MDQ5MmM0ZjhiMzhhZDY0OTNmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKKysrIGIvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCkBAIC0xMDMsOCArMTAzLDkgQEAgdm9pZCBEb2N1
bWVudFdyaXRlcjo6YmVnaW4oY29uc3QgS1VSTCYgdXJsLCBib29sIGRpc3BhdGNoLCBTZWN1cml0
eU9yaWdpbiogb3JpZ2kKICAgICBpZiAoZG9jdW1lbnQtPmlzUGx1Z2luRG9jdW1lbnQoKSAmJiBt
X2ZyYW1lLT5sb2FkZXIoKS0+aXNTYW5kYm94ZWQoU2FuZGJveFBsdWdpbnMpKQogICAgICAgICBk
b2N1bWVudCA9IFNpbmtEb2N1bWVudDo6Y3JlYXRlKG1fZnJhbWUpOwogCi0gICAgYm9vbCByZXNl
dFNjcmlwdGluZyA9ICEobV9mcmFtZS0+bG9hZGVyKCktPmlzRGlzcGxheWluZ0luaXRpYWxFbXB0
eURvY3VtZW50KCkgJiYgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+aXNT
ZWN1cmVUcmFuc2l0aW9uVG8odXJsKSk7Ci0gICAgbV9mcmFtZS0+bG9hZGVyKCktPmNsZWFyKHJl
c2V0U2NyaXB0aW5nLCByZXNldFNjcmlwdGluZyk7CisgICAgYm9vbCByZXNldFdpbmRvdyA9ICEo
bV9mcmFtZS0+bG9hZGVyKCktPmlzRGlzcGxheWluZ0luaXRpYWxFbXB0eURvY3VtZW50KCkgJiYg
bV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+aXNTZWN1cmVUcmFuc2l0aW9u
VG8odXJsKSk7CisgICAgYm9vbCByZXNldFNjcmlwdGluZyA9IHJlc2V0V2luZG93ICYmICEobV9m
cmFtZS0+bG9hZGVyKCktPmlzTGVhdmluZ0NhY2hlZFBhZ2UoKSk7CisgICAgbV9mcmFtZS0+bG9h
ZGVyKCktPmNsZWFyKHJlc2V0V2luZG93LCByZXNldFNjcmlwdGluZyk7CiAgICAgaWYgKHJlc2V0
U2NyaXB0aW5nKQogICAgICAgICBtX2ZyYW1lLT5zY3JpcHQoKS0+dXBkYXRlUGxhdGZvcm1TY3Jp
cHRPYmplY3RzKCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBmZGQ5Nzg3ZmE5Yzk0ODUw
ODFkYjZmYTI5NjEzYzU2ZjNkMjNhYzA0Li4yYmY1ODMzNzYwMDE1ZjdiMmZlYjRjOTg1NDUyMjI5
M2IwZTAxYjliIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysr
IGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yMTYsNiArMjE2LDcgQEAgRnJh
bWVMb2FkZXI6OkZyYW1lTG9hZGVyKEZyYW1lKiBmcmFtZSwgRnJhbWVMb2FkZXJDbGllbnQqIGNs
aWVudCkKICAgICAsIG1fY29tbWl0dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkKGZhbHNlKQogICAg
ICwgbV9kaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKGZhbHNlKQogICAgICwgbV9sb2FkaW5nRnJv
bUNhY2hlZFBhZ2UoZmFsc2UpCisgICAgLCBtX2xlYXZpbmdDYWNoZWRQYWdlKGZhbHNlKQogICAg
ICwgbV9zdXBwcmVzc09wZW5lckluTmV3RnJhbWUoZmFsc2UpCiAgICAgLCBtX3NhbmRib3hGbGFn
cyhTYW5kYm94QWxsKQogICAgICwgbV9mb3JjZWRTYW5kYm94RmxhZ3MoU2FuZGJveE5vbmUpCkBA
IC0yNjM2LDcgKzI2MzcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpvcGVuKENhY2hlZEZyYW1lQmFz
ZSYgY2FjaGVkRnJhbWUpCiAgICAgbV93b3JraW5nVVJMID0gdXJsOwogCiAgICAgc3RhcnRlZCgp
OwotICAgIGNsZWFyKHRydWUsIHRydWUsIGNhY2hlZEZyYW1lLmlzTWFpbkZyYW1lKCkpOworICAg
IGNsZWFyKHRydWUsICFtX2xlYXZpbmdDYWNoZWRQYWdlLCBjYWNoZWRGcmFtZS5pc01haW5GcmFt
ZSgpKTsKIAogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNhY2hlZEZyYW1lLmRvY3VtZW50KCk7
CiAgICAgQVNTRVJUKGRvY3VtZW50KTsKQEAgLTM2MDcsNiArMzYwOCw3IEBAIGJvb2wgRnJhbWVM
b2FkZXI6OmxvYWRQcm92aXNpb25hbEl0ZW1Gcm9tQ2FjaGVkUGFnZSgpCiAKIHZvaWQgRnJhbWVM
b2FkZXI6OmNhY2hlUGFnZUZvckhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKiBpdGVtKQogeworICAg
IG1fbGVhdmluZ0NhY2hlZFBhZ2UgPSBmYWxzZTsKICAgICBpZiAoIWNhbkNhY2hlUGFnZSgpIHx8
IGl0ZW0tPmlzSW5QYWdlQ2FjaGUoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0zNjE1LDYgKzM2
MTcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjYWNoZVBhZ2VGb3JIaXN0b3J5SXRlbShIaXN0b3J5
SXRlbSogaXRlbSkKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkgewogICAg
ICAgICBSZWZQdHI8Q2FjaGVkUGFnZT4gY2FjaGVkUGFnZSA9IENhY2hlZFBhZ2U6OmNyZWF0ZShw
YWdlKTsKICAgICAgICAgcGFnZUNhY2hlKCktPmFkZChpdGVtLCBjYWNoZWRQYWdlLnJlbGVhc2Uo
KSk7CisgICAgICAgIG1fbGVhdmluZ0NhY2hlZFBhZ2UgPSB0cnVlOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmgKaW5kZXggNDk3NzIzYWYzMmUxNzg3NGNhMWFhOGNiYjU4YTc2MGZjYzFlZjE2
Yi4uYWI2ZDc5M2QxZmMwNjc1NDcyMWIxOGFlNTZiMDM4NzljMGRkMTI4NiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5oCkBAIC0zMDksNiArMzA5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjb21taXRQcm92
aXNpb25hbExvYWQoUGFzc1JlZlB0cjxDYWNoZWRQYWdlPik7CiAgICAgYm9vbCBpc0xvYWRpbmdG
cm9tQ2FjaGVkUGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZGluZ0Zyb21DYWNoZWRQYWdlOyB9
CisgICAgYm9vbCBpc0xlYXZpbmdDYWNoZWRQYWdlKCkgY29uc3QgeyByZXR1cm4gbV9sZWF2aW5n
Q2FjaGVkUGFnZTsgfQogCiAgICAgYm9vbCBjb21taXR0aW5nRmlyc3RSZWFsTG9hZCgpIGNvbnN0
IHsgcmV0dXJuICFtX2NyZWF0aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQgJiYgIW1fY29tbWl0dGVk
Rmlyc3RSZWFsRG9jdW1lbnRMb2FkOyB9CiAgICAgYm9vbCBjb21taXR0ZWRGaXJzdFJlYWxEb2N1
bWVudExvYWQoKSBjb25zdCB7IHJldHVybiBtX2NvbW1pdHRlZEZpcnN0UmVhbERvY3VtZW50TG9h
ZDsgfQpAQCAtNTMwLDYgKzUzMSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fZGlkUGVyZm9y
bUZpcnN0TmF2aWdhdGlvbjsKICAgICBib29sIG1fbG9hZGluZ0Zyb21DYWNoZWRQYWdlOworICAg
IGJvb2wgbV9sZWF2aW5nQ2FjaGVkUGFnZTsKICAgICBib29sIG1fc3VwcHJlc3NPcGVuZXJJbk5l
d0ZyYW1lOwogICAgIAogICAgIFNhbmRib3hGbGFncyBtX3NhbmRib3hGbGFnczsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57136</attachid>
            <date>2010-05-26 14:21:58 -0700</date>
            <delta_ts>2010-06-07 09:09:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37725-20100526222158.patch</filename>
            <type>text/plain</type>
            <size>10193</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiM2VjMTNmODdkYzM5ODcwNDlmZWIwNzY2NzdiZTIyYzA5MzAxMGE2Li4zNmRkNTY3
Y2IwMmI0ZWZlYmU2MmUwODJiZDk3ZmRhNjlhNDk5ZGZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAK
KzIwMTAtMDUtMjYgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZyYW1lTG9hZGVyOjpjbGVh
cigpIGNsZWFycyBKUyBvYmplY3RzIHRoYXQgY2FjaGVkIHBhZ2VzIGxhdGVyIHJlbHkgb24KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc3MjUKKwor
ICAgICAgICBGaXggdGhlIGZvbGxvd2luZyB0ZXN0czoKKworICAgICAgICBmYXN0L2V2ZW50cy9w
YWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC5odG1sCisgICAgICAgIGZhc3QvZXZlbnRz
L3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVkLXdpdGgtZnJhbWVzLmh0bWwKKyAgICAg
ICAgZmFzdC9sb2FkZXIvaW5wdXQtZWxlbWVudC1wYWdlLWNhY2hlLWNyYXNoLmh0bWwKKyAgICAg
ICAgZmFzdC9kb20vV2luZG93L3RpbWVyLXJlc3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2suaHRtbAor
ICAgICAgICBsb2FkZXIvZ28tYmFjay10by1kaWZmZXJlbnQtd2luZG93LXNpemUuaHRtbAorCisg
ICAgICAgIHdoaWNoIGN1cnJlbnRseSBmYWlsIG9uIFF0IGFuZCBHVEsgKGFuZCBhcmUgc2tpcHBl
ZCBieSBDaHJvbWl1bQorICAgICAgICBiZWNhdXNlIGl0IGRvZXMgbm90IHVzZSBXZWJLaXQncyBj
YWNoaW5nKSB3aXRoIHRoZSBlcnJvcjoKKworICAgICAgICBDT05TT0xFIE1FU1NBR0U6IGxpbmUg
Mjg6IFJlZmVyZW5jZUVycm9yOiBUcnlpbmcgdG8gYWNjZXNzIG9iamVjdCBmcm9tIGRlc3Ryb3ll
ZCBwbHVnLWluLgorCisgICAgICAgIEZyYW1lTG9hZGVyIG5vIGxvbmdlciBjbGVhcnMgdGhlIGZy
YW1lJ3Mgc2NyaXB0IG9iamVjdHMgaWYgdGhlIHBhZ2UgaXQgaXMKKyAgICAgICAgbmF2aWdhdGlu
ZyBhd2F5IGZyb20gaGFzIGJlZW4gY2FjaGVkLiBJdCBqdXN0IGRldGFjaGVzIHRoZW0gaW5zdGVh
ZC4gIFRoaXMKKyAgICAgICAgZW5zdXJlcyB0aGUgSlMgY29udGV4dCBzdG9yZWQgaW4gY2FjaGVk
IHBhZ2VzIGlzIG5vdCBjbGVhcmVkIGRvd24gYW5kIGNhbgorICAgICAgICBiZSB1c2VkIHdoZW4g
dGhlIGNhY2hlZCBwYWdlIGlzIHJlbG9hZGVkLgorCisgICAgICAgIEluIHN1Y2ggY2FzZXMsIHRo
ZSBmcmFtZSdzIHNjcmlwdCBvYmplY3RzIHdpbGwgb25seSBnZXQgY2xlYXJlZCBvbiBGcmFtZTo6
cGFnZURlc3Ryb3llZCgpLgorCisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKwogMjAx
MC0wNS0yNiAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk2ODIKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9Ta2lwcGVkCmluZGV4IGY2YWIwMGY5OGRlMDRmYjg4NDU4NzQ0ZTA1ZDI4ODYxOWZkZmY2ZTIu
LjllNGY1MmM1ZDA5ZmYxMWZiNTdjYzczZWM1ZmQ4Mjk2MWIxYjUzNjkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZApAQCAtMjYxLDEwICsyNjEsNiBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2Fs
LXZpZGVvLXNvdXJjZS1mcm9tLXJlbW90ZS5odG1sCiAjIE1pc3NpbmcgdGV4dElucHV0Q29udHJv
bGxlci5maXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSgpCiBlZGl0aW5nL2luc2VydGluZy9jYXJl
dC1wb3NpdGlvbi5odG1sCiAKLSMgTWlzc2luZyBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlk
ZVByZWZlcmVuY2UoKQotZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNo
ZWQuaHRtbAotZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNoZWQtd2l0
aC1mcmFtZXMuaHRtbAotCiAjIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRGb3JQb2xpY3lEZWxl
Z2F0ZSgpIGRvZXMgbm90IHJlcG9ydCB0aGUgb3JpZ2luIG5vZGUKIGZhc3QvZW5jb2RpbmcvbWFp
bHRvLWFsd2F5cy11dGYtOC5odG1sCiAKQEAgLTQ2ODgsMTAgKzQ2ODQsNiBAQCBwcmludGluZy9t
ZWRpYS1xdWVyaWVzLXByaW50Lmh0bWwKIGZhc3QvY3NzL3Bvc2l0aW9uZWQtb3ZlcmZsb3ctc2Ny
b2xsLmh0bWwKIGZhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLmh0bWwKIAotIyBNaXNz
aW5nIERSVCBhYmlsaXR5IHRvIG92ZXJyaWRlICdzdGFuZGFyZCcgcHJlZmVyZW5jZXMuCi1mYXN0
L2RvbS9XaW5kb3cvdGltZXItcmVzdW1lLW9uLW5hdmlnYXRpb24tYmFjay5odG1sCi1sb2FkZXIv
Z28tYmFjay10by1kaWZmZXJlbnQtd2luZG93LXNpemUuaHRtbAotCiAjIFRoaXMgcG9ydCBkb2Vz
bid0IHN1cHBvcnQgR2VvbG9jYXRpb24uCiBmYXN0L2RvbS9HZW9sb2NhdGlvbgogCkBAIC00ODY1
LDEwICs0ODU3LDYgQEAgcHJpbnRpbmcvY29tcG9zaXRpbmctbGF5ZXItcHJpbnRpbmcuaHRtbAog
c3ZnL2Nzcy9jb21wb3NpdGUtc2hhZG93LWV4YW1wbGUuaHRtbAogc3ZnL2Nzcy9jb21wb3NpdGUt
c2hhZG93LXdpdGgtb3BhY2l0eS5odG1sCiAKLSMgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI4OiBS
ZWZlcmVuY2VFcnJvcjogVHJ5aW5nIHRvIGFjY2VzcyBvYmplY3QgZnJvbSBkZXN0cm95ZWQgcGx1
Zy1pbi4KLSMgVGhpcyB0ZXN0IGludHJvZHVjZWQgaW4gcjUxODc3Ci1mYXN0L2xvYWRlci9pbnB1
dC1lbGVtZW50LXBhZ2UtY2FjaGUtY3Jhc2guaHRtbAotCiAjIE1pc3NpbmcgZm9yd2FyZCBlbnRy
aWVzIHdoZW4gZHVtcGluZyBiYWNrL2ZvcndhcmQgbGlzdC4KICMgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTMyNDcwCiBodHRwL3Rlc3RzL25hdmlnYXRpb24vZHluYW1p
Yy1pZnJhbWUtZHluYW1pYy1mb3JtLWJhY2stZW50cnkuaHRtbApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2Zjk1ZThmMjYxYjU2MTIyOWEz
ZjdlNmFhOWVkZDE4YzE5N2UxZjM5Li43ODFlM2E5NDdlMDljNGVjNGQ0MTM4YWU4Yjg2NzdiYzFi
OWRkN2M2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEwLTA1LTI2ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRA
d2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGcmFtZUxvYWRlcjo6Y2xlYXIoKSBjbGVhcnMgSlMgb2JqZWN0cyB0aGF0IGNhY2hlZCBw
YWdlcyBsYXRlciByZWx5IG9uCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM3NzI1CisKKyAgICAgICAgRml4IHRoZSBmb2xsb3dpbmcgdGVzdHM6CisK
KyAgICAgICAgZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNoZWQuaHRt
bAorICAgICAgICBmYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC13
aXRoLWZyYW1lcy5odG1sCisgICAgICAgIGZhc3QvbG9hZGVyL2lucHV0LWVsZW1lbnQtcGFnZS1j
YWNoZS1jcmFzaC5odG1sCisgICAgICAgIGZhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1bWUtb24t
bmF2aWdhdGlvbi1iYWNrLmh0bWwKKyAgICAgICAgbG9hZGVyL2dvLWJhY2stdG8tZGlmZmVyZW50
LXdpbmRvdy1zaXplLmh0bWwKKworICAgICAgICB3aGljaCBjdXJyZW50bHkgZmFpbCBvbiBRdCBh
bmQgR1RLIChhbmQgYXJlIHNraXBwZWQgYnkgQ2hyb21pdW0KKyAgICAgICAgYmVjYXVzZSBpdCBk
b2VzIG5vdCB1c2UgV2ViS2l0J3MgY2FjaGluZykgd2l0aCB0aGUgZXJyb3I6CisKKyAgICAgICAg
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDI4OiBSZWZlcmVuY2VFcnJvcjogVHJ5aW5nIHRvIGFjY2Vz
cyBvYmplY3QgZnJvbSBkZXN0cm95ZWQgcGx1Zy1pbi4KKworICAgICAgICBGcmFtZUxvYWRlciBu
byBsb25nZXIgY2xlYXJzIHRoZSBmcmFtZSdzIHNjcmlwdCBvYmplY3RzIGlmIHRoZSBwYWdlIGl0
IGlzCisgICAgICAgIG5hdmlnYXRpbmcgYXdheSBmcm9tIGhhcyBiZWVuIGNhY2hlZC4gSXQganVz
dCBkZXRhY2hlcyB0aGVtIGluc3RlYWQuICBUaGlzCisgICAgICAgIGVuc3VyZXMgdGhlIEpTIGNv
bnRleHQgc3RvcmVkIGluIGNhY2hlZCBwYWdlcyBpcyBub3QgY2xlYXJlZCBkb3duIGFuZCBjYW4K
KyAgICAgICAgYmUgdXNlZCB3aGVuIHRoZSBjYWNoZWQgcGFnZSBpcyByZWxvYWRlZC4KKworICAg
ICAgICBJbiBzdWNoIGNhc2VzLCB0aGUgZnJhbWUncyBzY3JpcHQgb2JqZWN0cyB3aWxsIG9ubHkg
Z2V0IGNsZWFyZWQgb24gRnJhbWU6OnBhZ2VEZXN0cm95ZWQoKS4KKworICAgICAgICAqIGJpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29u
dHJvbGxlcjo6ZGV0YWNoU2NyaXB0T2JqZWN0cyk6CisgICAgICAgICogYmluZGluZ3MvanMvU2Ny
aXB0Q29udHJvbGxlci5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFdyaXRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFdyaXRlcjo6YmVnaW4pOgorICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6RnJhbWVM
b2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNsZWFyKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpvcGVuKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjpjYWNoZVBhZ2VGb3JIaXN0b3J5SXRlbSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6aXNMZWF2aW5nQ2FjaGVkUGFn
ZSk6CisKIDIwMTAtMDUtMjYgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBUeXBlZCBhbmQgcmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDNkY2JiMGIyNjdhMDU3YWZkMGY1
N2VkMzNkYzQxMjQxNTM1MzM2YzcuLmQ1YWRhMGYzZDE3MWYwYjE4NmM0ZGVmNWVlYWIzZDMwOWVl
NTA2MjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNDI4
LDYgKzQyOCwxNiBAQCB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmNsZWFudXBTY3JpcHRPYmplY3Rz
Rm9yUGx1Z2luKHZvaWQqIG5hdGl2ZUhhbmRsZSkKICAgICBtX3Jvb3RPYmplY3RzLnJlbW92ZShp
dCk7CiB9CiAKK3ZvaWQgU2NyaXB0Q29udHJvbGxlcjo6ZGV0YWNoU2NyaXB0T2JqZWN0cygpCit7
CisgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKKworICAgIG1fcm9vdE9i
amVjdHMuY2xlYXIoKTsKKworICAgIGlmIChtX2JpbmRpbmdSb290T2JqZWN0KQorICAgICAgICBt
X2JpbmRpbmdSb290T2JqZWN0ID0gMDsKK30KKwogdm9pZCBTY3JpcHRDb250cm9sbGVyOjpjbGVh
clNjcmlwdE9iamVjdHMoKQogewogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25s
eSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaCBi
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDg3N2ViOWZhOWU5
ZjAxNTdkN2MxN2VhNWIwOTE5NWIzZDU5M2NhZmMuLmU2NzczYTZkOTkzNDU5ZTZhNmQxYTA5OGFj
ZjBjYWZiNGM3ODIxNzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlci5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCkBA
IC0xNDksNiArMTQ5LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlU2VjdXJpdHlPcmlnaW4o
KTsKIAogICAgIHZvaWQgY2xlYXJTY3JpcHRPYmplY3RzKCk7CisgICAgdm9pZCBkZXRhY2hTY3Jp
cHRPYmplY3RzKCk7CiAgICAgdm9pZCBjbGVhbnVwU2NyaXB0T2JqZWN0c0ZvclBsdWdpbih2b2lk
Kik7CiAKICAgICB2b2lkIHVwZGF0ZVBsYXRmb3JtU2NyaXB0T2JqZWN0cygpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRXcml0ZXIuY3BwCmluZGV4IDBiZWQxNTlkZWVhZDFhYmE1ODlmN2YzMjE3MDkyNWQ4ZDQ3
Yjk1NmUuLmFiYzFmNzcxZWM0Mzg3MDU5Mjc1MDUwNDkyYzRmOGIzOGFkNjQ5M2YgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudFdyaXRlci5jcHAKQEAgLTEwMyw4ICsxMDMsOSBAQCB2b2lkIERvY3VtZW50V3Jp
dGVyOjpiZWdpbihjb25zdCBLVVJMJiB1cmwsIGJvb2wgZGlzcGF0Y2gsIFNlY3VyaXR5T3JpZ2lu
KiBvcmlnaQogICAgIGlmIChkb2N1bWVudC0+aXNQbHVnaW5Eb2N1bWVudCgpICYmIG1fZnJhbWUt
PmxvYWRlcigpLT5pc1NhbmRib3hlZChTYW5kYm94UGx1Z2lucykpCiAgICAgICAgIGRvY3VtZW50
ID0gU2lua0RvY3VtZW50OjpjcmVhdGUobV9mcmFtZSk7CiAKLSAgICBib29sIHJlc2V0U2NyaXB0
aW5nID0gIShtX2ZyYW1lLT5sb2FkZXIoKS0+aXNEaXNwbGF5aW5nSW5pdGlhbEVtcHR5RG9jdW1l
bnQoKSAmJiBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5pc1NlY3VyZVRy
YW5zaXRpb25Ubyh1cmwpKTsKLSAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xlYXIocmVzZXRTY3Jp
cHRpbmcsIHJlc2V0U2NyaXB0aW5nKTsKKyAgICBib29sIHJlc2V0V2luZG93ID0gIShtX2ZyYW1l
LT5sb2FkZXIoKS0+aXNEaXNwbGF5aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQoKSAmJiBtX2ZyYW1l
LT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5pc1NlY3VyZVRyYW5zaXRpb25Ubyh1cmwp
KTsKKyAgICBib29sIHJlc2V0U2NyaXB0aW5nID0gcmVzZXRXaW5kb3cgJiYgIShtX2ZyYW1lLT5s
b2FkZXIoKS0+aXNMZWF2aW5nQ2FjaGVkUGFnZSgpKTsKKyAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+
Y2xlYXIocmVzZXRXaW5kb3csIHJlc2V0U2NyaXB0aW5nKTsKICAgICBpZiAocmVzZXRTY3JpcHRp
bmcpCiAgICAgICAgIG1fZnJhbWUtPnNjcmlwdCgpLT51cGRhdGVQbGF0Zm9ybVNjcmlwdE9iamVj
dHMoKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGZkZDk3ODdmYTljOTQ4NTA4MWRiNmZh
Mjk2MTNjNTZmM2QyM2FjMDQuLjkzNDg0NGE4N2UzNmU1OWJkZWFmNDcwM2RlOTJmNmViNDQzM2Zl
ZWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTIxNiw2ICsyMTYsNyBAQCBGcmFtZUxvYWRl
cjo6RnJhbWVMb2FkZXIoRnJhbWUqIGZyYW1lLCBGcmFtZUxvYWRlckNsaWVudCogY2xpZW50KQog
ICAgICwgbV9jb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQoZmFsc2UpCiAgICAgLCBtX2Rp
ZFBlcmZvcm1GaXJzdE5hdmlnYXRpb24oZmFsc2UpCiAgICAgLCBtX2xvYWRpbmdGcm9tQ2FjaGVk
UGFnZShmYWxzZSkKKyAgICAsIG1fbGVhdmluZ0NhY2hlZFBhZ2UoZmFsc2UpCiAgICAgLCBtX3N1
cHByZXNzT3BlbmVySW5OZXdGcmFtZShmYWxzZSkKICAgICAsIG1fc2FuZGJveEZsYWdzKFNhbmRi
b3hBbGwpCiAgICAgLCBtX2ZvcmNlZFNhbmRib3hGbGFncyhTYW5kYm94Tm9uZSkKQEAgLTc2OSw2
ICs3NzAsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjbGVhcihib29sIGNsZWFyV2luZG93UHJvcGVy
dGllcywgYm9vbCBjbGVhclNjcmlwdE9iamVjdHMsIGJvbwogCiAgICAgaWYgKGNsZWFyU2NyaXB0
T2JqZWN0cykKICAgICAgICAgbV9mcmFtZS0+c2NyaXB0KCktPmNsZWFyU2NyaXB0T2JqZWN0cygp
OworICAgIGVsc2UKKyAgICAgICAgbV9mcmFtZS0+c2NyaXB0KCktPmRldGFjaFNjcmlwdE9iamVj
dHMoKTsKIAogICAgIG1fZnJhbWUtPnJlZGlyZWN0U2NoZWR1bGVyKCktPmNsZWFyKCk7CiAKQEAg
LTI2MzYsNyArMjYzOSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6Om9wZW4oQ2FjaGVkRnJhbWVCYXNl
JiBjYWNoZWRGcmFtZSkKICAgICBtX3dvcmtpbmdVUkwgPSB1cmw7CiAKICAgICBzdGFydGVkKCk7
Ci0gICAgY2xlYXIodHJ1ZSwgdHJ1ZSwgY2FjaGVkRnJhbWUuaXNNYWluRnJhbWUoKSk7CisgICAg
Y2xlYXIodHJ1ZSwgIW1fbGVhdmluZ0NhY2hlZFBhZ2UsIGNhY2hlZEZyYW1lLmlzTWFpbkZyYW1l
KCkpOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY2FjaGVkRnJhbWUuZG9jdW1lbnQoKTsK
ICAgICBBU1NFUlQoZG9jdW1lbnQpOwpAQCAtMzYwNyw2ICszNjEwLDcgQEAgYm9vbCBGcmFtZUxv
YWRlcjo6bG9hZFByb3Zpc2lvbmFsSXRlbUZyb21DYWNoZWRQYWdlKCkKIAogdm9pZCBGcmFtZUxv
YWRlcjo6Y2FjaGVQYWdlRm9ySGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pCiB7CisgICAg
bV9sZWF2aW5nQ2FjaGVkUGFnZSA9IGZhbHNlOwogICAgIGlmICghY2FuQ2FjaGVQYWdlKCkgfHwg
aXRlbS0+aXNJblBhZ2VDYWNoZSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTM2MTUsNiArMzYx
OSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNhY2hlUGFnZUZvckhpc3RvcnlJdGVtKEhpc3RvcnlJ
dGVtKiBpdGVtKQogICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKSB7CiAgICAg
ICAgIFJlZlB0cjxDYWNoZWRQYWdlPiBjYWNoZWRQYWdlID0gQ2FjaGVkUGFnZTo6Y3JlYXRlKHBh
Z2UpOwogICAgICAgICBwYWdlQ2FjaGUoKS0+YWRkKGl0ZW0sIGNhY2hlZFBhZ2UucmVsZWFzZSgp
KTsKKyAgICAgICAgbV9sZWF2aW5nQ2FjaGVkUGFnZSA9IHRydWU7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuaAppbmRleCA0OTc3MjNhZjMyZTE3ODc0Y2ExYWE4Y2JiNThhNzYwZmNjMWVmMTZi
Li5hYjZkNzkzZDFmYzA2NzU0NzIxYjE4YWU1NmIwMzg3OWMwZGQxMjg2IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmgKQEAgLTMwOSw2ICszMDksNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvbW1pdFByb3Zp
c2lvbmFsTG9hZChQYXNzUmVmUHRyPENhY2hlZFBhZ2U+KTsKICAgICBib29sIGlzTG9hZGluZ0Zy
b21DYWNoZWRQYWdlKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkaW5nRnJvbUNhY2hlZFBhZ2U7IH0K
KyAgICBib29sIGlzTGVhdmluZ0NhY2hlZFBhZ2UoKSBjb25zdCB7IHJldHVybiBtX2xlYXZpbmdD
YWNoZWRQYWdlOyB9CiAKICAgICBib29sIGNvbW1pdHRpbmdGaXJzdFJlYWxMb2FkKCkgY29uc3Qg
eyByZXR1cm4gIW1fY3JlYXRpbmdJbml0aWFsRW1wdHlEb2N1bWVudCAmJiAhbV9jb21taXR0ZWRG
aXJzdFJlYWxEb2N1bWVudExvYWQ7IH0KICAgICBib29sIGNvbW1pdHRlZEZpcnN0UmVhbERvY3Vt
ZW50TG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fY29tbWl0dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2Fk
OyB9CkBAIC01MzAsNiArNTMxLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9kaWRQZXJmb3Jt
Rmlyc3ROYXZpZ2F0aW9uOwogICAgIGJvb2wgbV9sb2FkaW5nRnJvbUNhY2hlZFBhZ2U7CisgICAg
Ym9vbCBtX2xlYXZpbmdDYWNoZWRQYWdlOwogICAgIGJvb2wgbV9zdXBwcmVzc09wZW5lckluTmV3
RnJhbWU7CiAgICAgCiAgICAgU2FuZGJveEZsYWdzIG1fc2FuZGJveEZsYWdzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58035</attachid>
            <date>2010-06-07 09:09:29 -0700</date>
            <delta_ts>2010-06-10 13:03:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37725-20100607170928.patch</filename>
            <type>text/plain</type>
            <size>11550</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5Yjg4NjNjYzlmYjFhZGZiZDY3ZGY3NWVkODcyM2VkZDZjZDY4Y2U1Li4xMjYwMzU0
YTdlZjlkZGUxYzEyMGNjYTcxYzI2MGE3ZDY5NmEzNWZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAK
KzIwMTAtMDYtMDcgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZyYW1lTG9hZGVyOjpjbGVh
cigpIGNsZWFycyBKUyBvYmplY3RzIHRoYXQgY2FjaGVkIHBhZ2VzIGxhdGVyIHJlbHkgb24KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc3MjUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNjI2CisKKyAg
ICAgICAgRml4IHRoZSBmb2xsb3dpbmcgdGVzdHMgZm9yIFF0OgorCisgICAgICAgIGZhc3QvZXZl
bnRzL3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVkLmh0bWwKKyAgICAgICAgZmFzdC9l
dmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNoZWQtd2l0aC1mcmFtZXMuaHRtbAor
ICAgICAgICBmYXN0L2xvYWRlci9pbnB1dC1lbGVtZW50LXBhZ2UtY2FjaGUtY3Jhc2guaHRtbAor
ICAgICAgICBmYXN0L2RvbS9XaW5kb3cvdGltZXItcmVzdW1lLW9uLW5hdmlnYXRpb24tYmFjay5o
dG1sCisgICAgICAgIGxvYWRlci9nby1iYWNrLXRvLWRpZmZlcmVudC13aW5kb3ctc2l6ZS5odG1s
CisgICAgICAgIGZhc3QvZG9tL2phdmFzY3JpcHQtdXJsLWNyYXNoLWZ1bmN0aW9uLmh0bWwKKyAg
ICAgICAgZmFzdC9kb20vbG9jYXRpb24tbmV3LXdpbmRvdy1uby1jcmFzaC5odG1sCisgICAgICAg
IGh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC94c3MtQUxMT1dFRC1mcm9tLWphdmFz
Y3JpcHQtdXJsLXdpbmRvdy1vcGVuLmh0bWwKKworICAgICAgICB3aGljaCBjdXJyZW50bHkgZmFp
bCBiZWNhdXNlIHRoZSBwYWdlJ3MgUXQtYmluZGluZ3MgcnVudGltZSBvYmplY3RzIGFyZQorICAg
ICAgICBjbGVhcmVkIHdoZW4gbmF2aWdhdGluZyBhd2F5IGZyb20gdGhlIHBhZ2UgY29udGFpbmlu
ZyB0aGVtLgorCisgICAgICAgIFRyYWNrIFF0LWJpbmRpbmdzIG9iamVjdHMgaW4gYSBzZXBhcmF0
ZSBTY3JpcHRDb250cm9sbGVyOjpjYWNoZWFibGVSb290QmluZGluZ09iamVjdCgpLgorICAgICAg
ICBSdW50aW1lT2JqZWN0cyB0cmFja2VkIGJ5IHRoaXMgcm9vdCBvYmplY3Qgd2lsbCBub3QgZ2V0
IGludmFsaWRhdGVkIG9uIHBhZ2UgbmF2aWdhdGlvbnMsCisgICAgICAgIHNvIHRoZXkgd2lsbCBz
dGlsbCBiZSBhdmFpbGFibGUgd2hlbiB0aGUgcGFnZXMgY29udGFpbmluZyB0aGVtIGFyZSByZXRy
aWV2ZWQgZnJvbSB0aGUKKyAgICAgICAgYi9mIGNhY2hlLgorCisgICAgICAgIFRoaXMgbWVhbnMg
dGhlIFF0IGJpbmRpbmdzIG9iamVjdHMgd2lsbCBvbmx5IGdldCBjbGVhcmVkIG9uIEZyYW1lOjpw
YWdlRGVzdHJveWVkKCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorCiAyMDEw
LTA2LTA3ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyBteSBIVE1MIGNvbW1lbnQgcGFyc2luZyBjaGFuZ2Ug
YXMgaXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IGVhZDE2NWQ2NzEzNzlkMTIyMzFhZWVl
NTNkMTI0N2VkMTUwNDAyNWUuLmZlNDM1OTcyMDYzOWVkOTY5MTQzZTU2YjVhNTE5OWM5MGIxNjYw
NzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtNTA4LDI4ICs1MDgsNiBAQCBmYXN0L2pz
L3NwdXRuaWsvVW5pY29kZS9Vbmljb2RlXzIxOC9TNy42X0E1LjNfVDEuaHRtbAogZmFzdC9qcy9z
cHV0bmlrL1VuaWNvZGUvVW5pY29kZV8yMTgvUzcuNl9BNS4zX1QyLmh0bWwKIAogIyA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0gIwotIyAgICAgICBKUyBDb250ZXh0IGJ1Zy4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc3MjUgICAgICAgICAgICAgICAgICAgICAg
ICAgIwotIyAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE2
MjYgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwotIyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE2MjYKLWZhc3QvZG9tL2ph
dmFzY3JpcHQtdXJsLWNyYXNoLWZ1bmN0aW9uLmh0bWwKLWZhc3QvZG9tL2xvY2F0aW9uLW5ldy13
aW5kb3ctbm8tY3Jhc2guaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0VVJML3hz
cy1BTExPV0VELWZyb20tamF2YXNjcmlwdC11cmwtd2luZG93LW9wZW4uaHRtbAotbWVkaWEvcmVz
dG9yZS1mcm9tLXBhZ2UtY2FjaGUuaHRtbAotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mzc3MjUKLSMgUmVsYXRlZCBmYWlsdXJlIHRvIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTYyNgotIyBOYXZpZ2F0aW5nIHRvIGEgY2FjaGVkIHBh
Z2Ugd2l0aCBqYXZhc2NyaXB0IGhpc3RvcnkuYmFjaygpIGRvZXMgbm90IHJlc3RvcmUgdGhlIEpT
IGNvbnRleHQuCi0jIENPTlNPTEUgTUVTU0FHRTogbGluZSAyODogUmVmZXJlbmNlRXJyb3I6IFRy
eWluZyB0byBhY2Nlc3Mgb2JqZWN0IGZyb20gZGVzdHJveWVkIHBsdWctaW4uCi0jIG1lZGlhL3Jl
c3RvcmUtZnJvbS1wYWdlLWNhY2hlLmh0bWwgaXMgYWxzbyBhZmZlY3RlZCBieSB0aGlzIGlzc3Vl
IGluIGFkZGl0aW9uIHRvIHRoZSBpc3N1ZQotIyBpbiBidWcgMzE2MjYuCi1mYXN0L2V2ZW50cy9w
YWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC5odG1sCi1mYXN0L2V2ZW50cy9wYWdlc2hv
dy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC13aXRoLWZyYW1lcy5odG1sCi1mYXN0L2xvYWRlci9p
bnB1dC1lbGVtZW50LXBhZ2UtY2FjaGUtY3Jhc2guaHRtbAotZmFzdC9kb20vV2luZG93L3RpbWVy
LXJlc3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2suaHRtbAotbG9hZGVyL2dvLWJhY2stdG8tZGlmZmVy
ZW50LXdpbmRvdy1zaXplLmh0bWwKLQotIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwogIyBGbHVjdHVh
dGluZy9mbGFrZXkgdGVzdHMKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKIGFuaW1hdGlvbnMvM2Qv
dHJhbnNmb3JtLW9yaWdpbi12cy1mdW5jdGlvbnMuaHRtbApAQCAtNTc5LDYgKzU1Nyw5IEBAIGZh
c3QvZm9ybXMvbWVudWxpc3Qtd2lkdGgtY2hhbmdlLmh0bWwKICMgPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ICMKICMgZmFpbGluZyBtZWRpYSB0ZXN0cwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIworIyBDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMjc6IFR5cGVFcnJvcjogUmVzdWx0IG9mIGV4cHJlc3Npb24gJ2Vs
ZW1lbnQuY2FuUGxheVR5cGUnIFt1bmRlZmluZWRdIGlzIG5vdCBhIGZ1bmN0aW9uLgorbWVkaWEv
cmVzdG9yZS1mcm9tLXBhZ2UtY2FjaGUuaHRtbAorCiBtZWRpYS9hZG9wdC1ub2RlLWNyYXNoLmh0
bWwKIG1lZGlhL2F1ZGlvLWNvbnN0cnVjdG9yLmh0bWwKIG1lZGlhL2F1ZGlvLWNvbnN0cnVjdG9y
LXByZWxvYWQuaHRtbApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2OWIxOGJjMjIxZDljY2VmM2RiZDQ5YzA4OTVhYTExODE5YjVlNTkwLi43
NzA5NDQ3OTZhNGYyMTdjYmRkNGExYjRjYWVlZjk4NzhmYjM1OGI4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisy
MDEwLTA2LTA3ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcmFtZUxvYWRlcjo6Y2xlYXIo
KSBjbGVhcnMgSlMgb2JqZWN0cyB0aGF0IGNhY2hlZCBwYWdlcyBsYXRlciByZWx5IG9uCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NzI1CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTYyNgorCisgICAg
ICAgIEZpeCB0aGUgZm9sbG93aW5nIHRlc3RzIGZvciBRdDoKKworICAgICAgICBmYXN0L2V2ZW50
cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC5odG1sCisgICAgICAgIGZhc3QvZXZl
bnRzL3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVkLXdpdGgtZnJhbWVzLmh0bWwKKyAg
ICAgICAgZmFzdC9sb2FkZXIvaW5wdXQtZWxlbWVudC1wYWdlLWNhY2hlLWNyYXNoLmh0bWwKKyAg
ICAgICAgZmFzdC9kb20vV2luZG93L3RpbWVyLXJlc3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2suaHRt
bAorICAgICAgICBsb2FkZXIvZ28tYmFjay10by1kaWZmZXJlbnQtd2luZG93LXNpemUuaHRtbAor
ICAgICAgICBmYXN0L2RvbS9qYXZhc2NyaXB0LXVybC1jcmFzaC1mdW5jdGlvbi5odG1sCisgICAg
ICAgIGZhc3QvZG9tL2xvY2F0aW9uLW5ldy13aW5kb3ctbm8tY3Jhc2guaHRtbAorICAgICAgICBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHRVUkwveHNzLUFMTE9XRUQtZnJvbS1qYXZhc2Ny
aXB0LXVybC13aW5kb3ctb3Blbi5odG1sCisKKyAgICAgICAgd2hpY2ggY3VycmVudGx5IGZhaWwg
YmVjYXVzZSB0aGUgcGFnZSdzIFF0LWJpbmRpbmdzIHJ1bnRpbWUgb2JqZWN0cyBhcmUKKyAgICAg
ICAgY2xlYXJlZCB3aGVuIG5hdmlnYXRpbmcgYXdheSBmcm9tIHRoZSBwYWdlIGNvbnRhaW5pbmcg
dGhlbS4KKworICAgICAgICBUcmFjayBRdC1iaW5kaW5ncyBvYmplY3RzIGluIGEgc2VwYXJhdGUg
U2NyaXB0Q29udHJvbGxlcjo6Y2FjaGVhYmxlUm9vdEJpbmRpbmdPYmplY3QoKS4KKyAgICAgICAg
UnVudGltZU9iamVjdHMgdHJhY2tlZCBieSB0aGlzIHJvb3Qgb2JqZWN0IHdpbGwgbm90IGdldCBp
bnZhbGlkYXRlZCBvbiBwYWdlIG5hdmlnYXRpb25zLAorICAgICAgICBzbyB0aGV5IHdpbGwgc3Rp
bGwgYmUgYXZhaWxhYmxlIHdoZW4gdGhlIHBhZ2VzIGNvbnRhaW5pbmcgdGhlbSBhcmUgcmV0cmll
dmVkIGZyb20gdGhlCisgICAgICAgIGIvZiBjYWNoZS4KKworICAgICAgICBUaGlzIG1lYW5zIHRo
ZSBRdCBiaW5kaW5ncyBvYmplY3RzIHdpbGwgb25seSBnZXQgY2xlYXJlZCBvbiBGcmFtZTo6cGFn
ZURlc3Ryb3llZCgpLgorCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjp+U2NyaXB0Q29udHJvbGxl
cik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpjYWNoZWFibGVCaW5kaW5n
Um9vdE9iamVjdCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oOgor
CiAyMDEwLTA2LTA3ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyBteSBIVE1MIGNvbW1lbnQgcGFyc2luZyBj
aGFuZ2UgYXMgaXQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4
IDNkY2JiMGIyNjdhMDU3YWZkMGY1N2VkMzNkYzQxMjQxNTM1MzM2YzcuLjVjNGJkNGMyN2Y0ODUz
ZTY5ZDdmMjM0ZDJjY2EyODZmNmIyMmY1MmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRD
b250cm9sbGVyLmNwcApAQCAtODcsNiArODcsMTEgQEAgU2NyaXB0Q29udHJvbGxlcjo6flNjcmlw
dENvbnRyb2xsZXIoKQogewogICAgIGRpc2Nvbm5lY3RQbGF0Zm9ybVNjcmlwdE9iamVjdHMoKTsK
IAorICAgIGlmIChtX2NhY2hlYWJsZUJpbmRpbmdSb290T2JqZWN0KSB7CisgICAgICAgIG1fY2Fj
aGVhYmxlQmluZGluZ1Jvb3RPYmplY3QtPmludmFsaWRhdGUoKTsKKyAgICAgICAgbV9jYWNoZWFi
bGVCaW5kaW5nUm9vdE9iamVjdCA9IDA7CisgICAgfQorCiAgICAgLy8gSXQncyBsaWtlbHkgdGhh
dCBkZXN0cm95aW5nIG1fd2luZG93U2hlbGxzIHdpbGwgY3JlYXRlIGEgbG90IG9mIGdhcmJhZ2Uu
CiAgICAgaWYgKCFtX3dpbmRvd1NoZWxscy5pc0VtcHR5KCkpIHsKICAgICAgICAgd2hpbGUgKCFt
X3dpbmRvd1NoZWxscy5pc0VtcHR5KCkpCkBAIC0zMjksNiArMzM0LDE4IEBAIHZvaWQgU2NyaXB0
Q29udHJvbGxlcjo6dXBkYXRlU2VjdXJpdHlPcmlnaW4oKQogICAgIC8vIE91ciBiaW5kaW5ncyBk
byBub3QgZG8gYW55dGhpbmcgaW4gdGhpcyBjYXNlLgogfQogCitCaW5kaW5nczo6Um9vdE9iamVj
dCogU2NyaXB0Q29udHJvbGxlcjo6Y2FjaGVhYmxlQmluZGluZ1Jvb3RPYmplY3QoKQoreworICAg
IGlmICghY2FuRXhlY3V0ZVNjcmlwdHMoTm90QWJvdXRUb0V4ZWN1dGVTY3JpcHQpKQorICAgICAg
ICByZXR1cm4gMDsKKworICAgIGlmICghbV9jYWNoZWFibGVCaW5kaW5nUm9vdE9iamVjdCkgewor
ICAgICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOworICAgICAgICBtX2Nh
Y2hlYWJsZUJpbmRpbmdSb290T2JqZWN0ID0gQmluZGluZ3M6OlJvb3RPYmplY3Q6OmNyZWF0ZSgw
LCBnbG9iYWxPYmplY3QocGx1Z2luV29ybGQoKSkpOworICAgIH0KKyAgICByZXR1cm4gbV9jYWNo
ZWFibGVCaW5kaW5nUm9vdE9iamVjdC5nZXQoKTsKK30KKwogQmluZGluZ3M6OlJvb3RPYmplY3Qq
IFNjcmlwdENvbnRyb2xsZXI6OmJpbmRpbmdSb290T2JqZWN0KCkKIHsKICAgICBpZiAoIWNhbkV4
ZWN1dGVTY3JpcHRzKE5vdEFib3V0VG9FeGVjdXRlU2NyaXB0KSkKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmgKaW5kZXggMTZmZTRmMjFlZDBkYzUxNTMxMTU4NTVkOTRlYzczODdj
M2ZlOTEyMi4uYzVhMzA2YzljMDE0MWY3ZWViNzk2MGY4ZTUyOWY0M2I0NDc5YjcyMSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKQEAgLTE1OCw2ICsxNTgsNyBAQCBwdWJs
aWM6CiAKICAgICBQYXNzU2NyaXB0SW5zdGFuY2UgY3JlYXRlU2NyaXB0SW5zdGFuY2VGb3JXaWRn
ZXQoV2lkZ2V0Kik7CiAgICAgSlNDOjpCaW5kaW5nczo6Um9vdE9iamVjdCogYmluZGluZ1Jvb3RP
YmplY3QoKTsKKyAgICBKU0M6OkJpbmRpbmdzOjpSb290T2JqZWN0KiBjYWNoZWFibGVCaW5kaW5n
Um9vdE9iamVjdCgpOwogCiAgICAgUGFzc1JlZlB0cjxKU0M6OkJpbmRpbmdzOjpSb290T2JqZWN0
PiBjcmVhdGVSb290T2JqZWN0KHZvaWQqIG5hdGl2ZUhhbmRsZSk7CiAKQEAgLTE5NSw4ICsxOTYs
MTQgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcGF1c2VkOwogICAgIGJvb2wgbV9hbGxvd1BvcHVw
c0Zyb21QbHVnaW47CiAKLSAgICAvLyBUaGUgcm9vdCBvYmplY3QgdXNlZCBmb3Igb2JqZWN0cyBi
b3VuZCBvdXRzaWRlIHRoZSBjb250ZXh0IG9mIGEgcGx1Z2luLgorICAgIC8vIFRoZSByb290IG9i
amVjdCB1c2VkIGZvciBvYmplY3RzIGJvdW5kIG91dHNpZGUgdGhlIGNvbnRleHQgb2YgYSBwbHVn
aW4sIHN1Y2gKKyAgICAvLyBhcyBPYmplY3RpdmUtQyBwbHVnaW5zLiBUaGVzZSBvYmplY3RzIHBy
ZXZlbnQgYSBwYWdlIGZyb20gYmVpbmcgY2FjaGVkIHNvIGFyZQorICAgIC8vIHNhZmUgdG8gaW52
YWxpZGF0ZSgpIHdoZW4gV2ViS2l0IG5hdmlnYXRlcyBhd2F5IGZyb20gdGhlIHBhZ2UgdGhhdCBj
b250YWlucyB0aGVtLgogICAgIFJlZlB0cjxKU0M6OkJpbmRpbmdzOjpSb290T2JqZWN0PiBtX2Jp
bmRpbmdSb290T2JqZWN0OworICAgIC8vIFRoZSByb290IG9iamVjdCB1c2VkIGZvciBvYmplY3Rz
IGJvdW5kIG91dHNpZGUgdGhlIGNvbnRleHQgb2YgYSBwbHVnaW4gaW4gYSBwYWdlIHdoaWNoCisg
ICAgLy8gY2FuIGJlIGNhY2hlZCwgc3VjaCBhcyBRdC1wbHVnaW5zLiBCZWNhdXNlIHRoZXNlIG9i
amVjdHMgZG8gbm90IHByZXZlbnQKKyAgICAvLyBhIHBhZ2UgZnJvbSBiZWluZyBjYWNoZWQgdGhl
eSBhcmUgbm90IGludmFsaWRhdGVkLgorICAgIFJlZlB0cjxKU0M6OkJpbmRpbmdzOjpSb290T2Jq
ZWN0PiBtX2NhY2hlYWJsZUJpbmRpbmdSb290T2JqZWN0OwogICAgIFJvb3RPYmplY3RNYXAgbV9y
b290T2JqZWN0czsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBOUE9iamVj
dCogbV93aW5kb3dTY3JpcHROUE9iamVjdDsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdl
YmZyYW1lLmNwcCBiL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAppbmRleCA3YTI4ZjgzOTZh
NDQ1ZmU1Y2I0MTEwMDQ4ZTFhZTU5ZmFkOGQ1NGVhLi45NzQ1NDNiZTk5YTg2OTUyNzgxZGNkZmE3
MjIxOWVhOWI0YmZiOWU0IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAK
KysrIGIvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCkBAIC00NzUsNyArNDc1LDcgQEAgdm9p
ZCBRV2ViRnJhbWU6OmFkZFRvSmF2YVNjcmlwdFdpbmRvd09iamVjdChjb25zdCBRU3RyaW5nICZu
YW1lLCBRT2JqZWN0ICpvYmplY3QKIAogICAgIEpTQzo6SlNMb2NrIGxvY2soSlNDOjpTaWxlbmNl
QXNzZXJ0aW9uc09ubHkpOwogICAgIEpTRE9NV2luZG93KiB3aW5kb3cgPSB0b0pTRE9NV2luZG93
KGQtPmZyYW1lLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7Ci0gICAgSlNDOjpCaW5kaW5nczo6
Um9vdE9iamVjdCogcm9vdCA9IGQtPmZyYW1lLT5zY3JpcHQoKS0+YmluZGluZ1Jvb3RPYmplY3Qo
KTsKKyAgICBKU0M6OkJpbmRpbmdzOjpSb290T2JqZWN0KiByb290ID0gZC0+ZnJhbWUtPnNjcmlw
dCgpLT5jYWNoZWFibGVCaW5kaW5nUm9vdE9iamVjdCgpOwogICAgIGlmICghd2luZG93KSB7CiAg
ICAgICAgIHFEZWJ1ZygpIDw8ICJXYXJuaW5nOiBjb3VsZG4ndCBnZXQgd2luZG93IG9iamVjdCI7
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJL
aXQvcXQvQ2hhbmdlTG9nCmluZGV4IGZkNThiNjllODYzOTNhMzRiODFhMWEwMDgxNjEyOGYwNjM1
ODFhZmYuLjgwZGUyMWI2Nzk0MTZlZDc3ZTEzMWQ0YTMyOGQ2ZTk5NTI5YzY1NjkgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM2IEBACisyMDEwLTA2LTA3ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcmFtZUxv
YWRlcjo6Y2xlYXIoKSBjbGVhcnMgSlMgb2JqZWN0cyB0aGF0IGNhY2hlZCBwYWdlcyBsYXRlciBy
ZWx5IG9uCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM3NzI1CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
MTYyNgorCisgICAgICAgIEZpeCB0aGUgZm9sbG93aW5nIHRlc3RzIGZvciBRdDoKKworICAgICAg
ICBmYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC5odG1sCisgICAg
ICAgIGZhc3QvZXZlbnRzL3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVkLXdpdGgtZnJh
bWVzLmh0bWwKKyAgICAgICAgZmFzdC9sb2FkZXIvaW5wdXQtZWxlbWVudC1wYWdlLWNhY2hlLWNy
YXNoLmh0bWwKKyAgICAgICAgZmFzdC9kb20vV2luZG93L3RpbWVyLXJlc3VtZS1vbi1uYXZpZ2F0
aW9uLWJhY2suaHRtbAorICAgICAgICBsb2FkZXIvZ28tYmFjay10by1kaWZmZXJlbnQtd2luZG93
LXNpemUuaHRtbAorICAgICAgICBmYXN0L2RvbS9qYXZhc2NyaXB0LXVybC1jcmFzaC1mdW5jdGlv
bi5odG1sCisgICAgICAgIGZhc3QvZG9tL2xvY2F0aW9uLW5ldy13aW5kb3ctbm8tY3Jhc2guaHRt
bAorICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHRVUkwveHNzLUFMTE9XRUQt
ZnJvbS1qYXZhc2NyaXB0LXVybC13aW5kb3ctb3Blbi5odG1sCisKKyAgICAgICAgd2hpY2ggY3Vy
cmVudGx5IGZhaWwgYmVjYXVzZSB0aGUgcGFnZSdzIFF0LWJpbmRpbmdzIHJ1bnRpbWUgb2JqZWN0
cyBhcmUKKyAgICAgICAgY2xlYXJlZCB3aGVuIG5hdmlnYXRpbmcgYXdheSBmcm9tIHRoZSBwYWdl
IGNvbnRhaW5pbmcgdGhlbS4KKworICAgICAgICBUcmFjayBRdC1iaW5kaW5ncyBvYmplY3RzIGlu
IGEgc2VwYXJhdGUgU2NyaXB0Q29udHJvbGxlcjo6Y2FjaGVhYmxlUm9vdEJpbmRpbmdPYmplY3Qo
KS4KKyAgICAgICAgUnVudGltZU9iamVjdHMgdHJhY2tlZCBieSB0aGlzIHJvb3Qgb2JqZWN0IHdp
bGwgbm90IGdldCBpbnZhbGlkYXRlZCBvbiBwYWdlIG5hdmlnYXRpb25zLAorICAgICAgICBzbyB0
aGV5IHdpbGwgc3RpbGwgYmUgYXZhaWxhYmxlIHdoZW4gdGhlIHBhZ2VzIGNvbnRhaW5pbmcgdGhl
bSBhcmUgcmV0cmlldmVkIGZyb20gdGhlCisgICAgICAgIGIvZiBjYWNoZS4KKworICAgICAgICBU
aGlzIG1lYW5zIHRoZSBRdCBiaW5kaW5ncyBvYmplY3RzIHdpbGwgb25seSBnZXQgY2xlYXJlZCBv
biBGcmFtZTo6cGFnZURlc3Ryb3llZCgpLgorCisgICAgICAgICogQXBpL3F3ZWJmcmFtZS5jcHA6
CisgICAgICAgIChRV2ViRnJhbWU6OmFkZFRvSmF2YVNjcmlwdFdpbmRvd09iamVjdCk6CisKIDIw
MTAtMDYtMDYgIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4sIExhc3psbyBH
b21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEtlbm5ldGggQ2hyaXN0aWFuc2VuLCBFcmljIFNlaWRlbC4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58403</attachid>
            <date>2010-06-10 13:03:14 -0700</date>
            <delta_ts>2010-06-10 13:18:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-37725-20100610210312.patch</filename>
            <type>text/plain</type>
            <size>11708</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1NWZmNWZkYWYxYmYxYjU4YzI0NTc1ZmM5ZGIyOWY0NWMwM2U0Yjc2Li41N2FmZGEy
NGFlNmJmMTE2MmFjZGI0YTg4OGIzZThhYTk1NzM2NTgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAK
KzIwMTAtMDYtMDcgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZyYW1lTG9hZGVyOjpjbGVh
cigpIGNsZWFycyBKUyBvYmplY3RzIHRoYXQgY2FjaGVkIHBhZ2VzIGxhdGVyIHJlbHkgb24KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc3MjUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNjI2CisKKyAg
ICAgICAgRml4IHRoZSBmb2xsb3dpbmcgdGVzdHMgZm9yIFF0OgorCisgICAgICAgIGZhc3QvZXZl
bnRzL3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVkLmh0bWwKKyAgICAgICAgZmFzdC9l
dmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNoZWQtd2l0aC1mcmFtZXMuaHRtbAor
ICAgICAgICBmYXN0L2xvYWRlci9pbnB1dC1lbGVtZW50LXBhZ2UtY2FjaGUtY3Jhc2guaHRtbAor
ICAgICAgICBmYXN0L2RvbS9XaW5kb3cvdGltZXItcmVzdW1lLW9uLW5hdmlnYXRpb24tYmFjay5o
dG1sCisgICAgICAgIGxvYWRlci9nby1iYWNrLXRvLWRpZmZlcmVudC13aW5kb3ctc2l6ZS5odG1s
CisgICAgICAgIGZhc3QvZG9tL2phdmFzY3JpcHQtdXJsLWNyYXNoLWZ1bmN0aW9uLmh0bWwKKyAg
ICAgICAgZmFzdC9kb20vbG9jYXRpb24tbmV3LXdpbmRvdy1uby1jcmFzaC5odG1sCisgICAgICAg
IGh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC94c3MtQUxMT1dFRC1mcm9tLWphdmFz
Y3JpcHQtdXJsLXdpbmRvdy1vcGVuLmh0bWwKKyAgICAgICAgZmFzdC9kb20vc2V0LWZyYW1lLXNy
Yy13aGlsZS1ydW5uaW5nLXNjcmlwdC1pbi1mcmFtZS5odG1sCisKKyAgICAgICAgd2hpY2ggY3Vy
cmVudGx5IGZhaWwgYmVjYXVzZSB0aGUgcGFnZSdzIFF0LWJpbmRpbmdzIHJ1bnRpbWUgb2JqZWN0
cyBhcmUKKyAgICAgICAgY2xlYXJlZCB3aGVuIG5hdmlnYXRpbmcgYXdheSBmcm9tIHRoZSBwYWdl
IGNvbnRhaW5pbmcgdGhlbS4KKworICAgICAgICBUcmFjayBRdC1iaW5kaW5ncyBvYmplY3RzIGlu
IGEgc2VwYXJhdGUgU2NyaXB0Q29udHJvbGxlcjo6Y2FjaGVhYmxlUm9vdEJpbmRpbmdPYmplY3Qo
KS4KKyAgICAgICAgUnVudGltZU9iamVjdHMgdHJhY2tlZCBieSB0aGlzIHJvb3Qgb2JqZWN0IHdp
bGwgbm90IGdldCBpbnZhbGlkYXRlZCBvbiBwYWdlIG5hdmlnYXRpb25zLAorICAgICAgICBzbyB0
aGV5IHdpbGwgc3RpbGwgYmUgYXZhaWxhYmxlIHdoZW4gdGhlIHBhZ2VzIGNvbnRhaW5pbmcgdGhl
bSBhcmUgcmV0cmlldmVkIGZyb20gdGhlCisgICAgICAgIGIvZiBjYWNoZS4KKworICAgICAgICBU
aGlzIG1lYW5zIHRoZSBRdCBiaW5kaW5ncyBvYmplY3RzIHdpbGwgb25seSBnZXQgY2xlYXJlZCBv
biBGcmFtZTo6cGFnZURlc3Ryb3llZCgpLgorCisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBl
ZDoKKwogMjAxMC0wNi0xMCAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZAppbmRleCAwNGZiNGM2NmE1MTVjOWNmNGYwMjc1ZGZjNzI4ODEyM2ZkYTQ0NzJj
Li4wNmYyZTNhM2I4ZjUxMjczNzVlZjcyN2E5ZjVjYWM2NzhmZTcyZTRhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L1NraXBwZWQKQEAgLTU2MiwyOCArNTYyLDYgQEAgZmFzdC9qcy9zcHV0bmlrL1VuaWNvZGUv
VW5pY29kZV8yMTgvUzcuNl9BNS4zX1QxLmh0bWwKIGZhc3QvanMvc3B1dG5pay9Vbmljb2RlL1Vu
aWNvZGVfMjE4L1M3LjZfQTUuM19UMi5odG1sCiAKICMgPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKLSMg
ICAgICAgSlMgQ29udGV4dCBidWcuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM3NzI1ICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNjI2ICAgICAgICAgICAgICAg
ICAgICAgICAgICMKLSMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKLSMgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNjI2Ci1mYXN0L2RvbS9qYXZhc2NyaXB0LXVybC1jcmFz
aC1mdW5jdGlvbi5odG1sCi1mYXN0L2RvbS9sb2NhdGlvbi1uZXctd2luZG93LW5vLWNyYXNoLmh0
bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC94c3MtQUxMT1dFRC1mcm9tLWph
dmFzY3JpcHQtdXJsLXdpbmRvdy1vcGVuLmh0bWwKLW1lZGlhL3Jlc3RvcmUtZnJvbS1wYWdlLWNh
Y2hlLmh0bWwKLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NzI1
Ci0jIFJlbGF0ZWQgZmFpbHVyZSB0byBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzE2MjYKLSMgTmF2aWdhdGluZyB0byBhIGNhY2hlZCBwYWdlIHdpdGggamF2YXNjcmlw
dCBoaXN0b3J5LmJhY2soKSBkb2VzIG5vdCByZXN0b3JlIHRoZSBKUyBjb250ZXh0LgotIyBDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMjg6IFJlZmVyZW5jZUVycm9yOiBUcnlpbmcgdG8gYWNjZXNzIG9i
amVjdCBmcm9tIGRlc3Ryb3llZCBwbHVnLWluLgotIyBtZWRpYS9yZXN0b3JlLWZyb20tcGFnZS1j
YWNoZS5odG1sIGlzIGFsc28gYWZmZWN0ZWQgYnkgdGhpcyBpc3N1ZSBpbiBhZGRpdGlvbiB0byB0
aGUgaXNzdWUKLSMgaW4gYnVnIDMxNjI2LgotZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUt
b24tYmFjay1jYWNoZWQuaHRtbAotZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFj
ay1jYWNoZWQtd2l0aC1mcmFtZXMuaHRtbAotZmFzdC9sb2FkZXIvaW5wdXQtZWxlbWVudC1wYWdl
LWNhY2hlLWNyYXNoLmh0bWwKLWZhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1bWUtb24tbmF2aWdh
dGlvbi1iYWNrLmh0bWwKLWxvYWRlci9nby1iYWNrLXRvLWRpZmZlcmVudC13aW5kb3ctc2l6ZS5o
dG1sCi0KLSMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKICMgRmx1Y3R1YXRpbmcvZmxha2V5IHRlc3Rz
CiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSAjCiBhbmltYXRpb25zLzNkL3RyYW5zZm9ybS1vcmlnaW4t
dnMtZnVuY3Rpb25zLmh0bWwKQEAgLTI2NTEsNyArMjYyOSw2IEBAIGZhc3QvaGlzdG9yeS93aW5k
b3ctb3Blbi5odG1sCiBmYXN0L2xvYWRlci9qYXZhc2NyaXB0LXVybC1oaWVyYXJjaGljYWwtZXhl
Y3V0aW9uLmh0bWwKIGZhc3QvbG9hZGVyL3BvbGljeS1kZWxlZ2F0ZS1hY3Rpb24taGl0LXRlc3Qt
em9vbWVkLmh0bWwKIGZhc3QvbG9hZGVyL3JlbG9hZC1wb2xpY3ktZGVsZWdhdGUuaHRtbAotZmFz
dC9kb20vc2V0LWZyYW1lLXNyYy13aGlsZS1ydW5uaW5nLXNjcmlwdC1pbi1mcmFtZS5odG1sCiBm
YXN0L2RvbS9IVE1MRG9jdW1lbnQvaGFzRm9jdXMuaHRtbAogZmFzdC9kb20vRG9jdW1lbnQvQ2Fy
ZXRSYW5nZUZyb21Qb2ludC9jYXJldFJhbmdlRnJvbVBvaW50LWluLXpvb20tYW5kLXNjcm9sbC5o
dG1sCiBmYXN0L2RvbS9SYW5nZS9yYW5nZS1leHBhbmQuaHRtbApAQCAtMjc3MCw3ICsyNzQ3LDYg
QEAgZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdGhhaS1saW5lLWJyZWFrcy5odG1sCiAKICMgLS1j
cmFzaGVkIHdpdGggLS1wbGF0Zm9ybSBtYWMgLS1pZ25vcmUtbWV0cmljcwogZmFzdC90ZXh0L21p
ZHdvcmQtYnJlYWstYWZ0ZXItYnJlYWthYmxlLWNoYXIuaHRtbAotZmFzdC9kb20vc2V0LWZyYW1l
LXNyYy13aGlsZS1ydW5uaW5nLXNjcmlwdC1pbi1mcmFtZS5odG1sCiAKIAogIyAtLSBwYXNzIHdp
dGggLS1wbGF0Zm9ybSBtYWMgLS1pZ25vcmUtbWV0cmljcwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNTUzZGVhNzgwYTM2ZGMyMDRjYmI4
ZmExMzliZTc3NGYxMzk4ZWZmLi40Y2RjYWYyYjJmMDI2NmIwMTlhNjc4MWM2NTUyZTMzMGRlMzhl
NjU4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM4IEBACisyMDEwLTA2LTA3ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGcmFtZUxvYWRlcjo6Y2xlYXIoKSBjbGVhcnMgSlMgb2JqZWN0cyB0aGF0IGNhY2hlZCBwYWdl
cyBsYXRlciByZWx5IG9uCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM3NzI1CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zMTYyNgorCisgICAgICAgIEZpeCB0aGUgZm9sbG93aW5nIHRlc3RzIGZvciBRdDoK
KworICAgICAgICBmYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC5o
dG1sCisgICAgICAgIGZhc3QvZXZlbnRzL3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVk
LXdpdGgtZnJhbWVzLmh0bWwKKyAgICAgICAgZmFzdC9sb2FkZXIvaW5wdXQtZWxlbWVudC1wYWdl
LWNhY2hlLWNyYXNoLmh0bWwKKyAgICAgICAgZmFzdC9kb20vV2luZG93L3RpbWVyLXJlc3VtZS1v
bi1uYXZpZ2F0aW9uLWJhY2suaHRtbAorICAgICAgICBsb2FkZXIvZ28tYmFjay10by1kaWZmZXJl
bnQtd2luZG93LXNpemUuaHRtbAorICAgICAgICBmYXN0L2RvbS9qYXZhc2NyaXB0LXVybC1jcmFz
aC1mdW5jdGlvbi5odG1sCisgICAgICAgIGZhc3QvZG9tL2xvY2F0aW9uLW5ldy13aW5kb3ctbm8t
Y3Jhc2guaHRtbAorICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHRVUkwveHNz
LUFMTE9XRUQtZnJvbS1qYXZhc2NyaXB0LXVybC13aW5kb3ctb3Blbi5odG1sCisKKyAgICAgICAg
d2hpY2ggY3VycmVudGx5IGZhaWwgYmVjYXVzZSB0aGUgcGFnZSdzIFF0LWJpbmRpbmdzIHJ1bnRp
bWUgb2JqZWN0cyBhcmUKKyAgICAgICAgY2xlYXJlZCB3aGVuIG5hdmlnYXRpbmcgYXdheSBmcm9t
IHRoZSBwYWdlIGNvbnRhaW5pbmcgdGhlbS4KKworICAgICAgICBUcmFjayBRdC1iaW5kaW5ncyBv
YmplY3RzIGluIGEgc2VwYXJhdGUgU2NyaXB0Q29udHJvbGxlcjo6Y2FjaGVhYmxlUm9vdEJpbmRp
bmdPYmplY3QoKS4KKyAgICAgICAgUnVudGltZU9iamVjdHMgdHJhY2tlZCBieSB0aGlzIHJvb3Qg
b2JqZWN0IHdpbGwgbm90IGdldCBpbnZhbGlkYXRlZCBvbiBwYWdlIG5hdmlnYXRpb25zLAorICAg
ICAgICBzbyB0aGV5IHdpbGwgc3RpbGwgYmUgYXZhaWxhYmxlIHdoZW4gdGhlIHBhZ2VzIGNvbnRh
aW5pbmcgdGhlbSBhcmUgcmV0cmlldmVkIGZyb20gdGhlCisgICAgICAgIGIvZiBjYWNoZS4KKwor
ICAgICAgICBUaGlzIG1lYW5zIHRoZSBRdCBiaW5kaW5ncyBvYmplY3RzIHdpbGwgb25seSBnZXQg
Y2xlYXJlZCBvbiBGcmFtZTo6cGFnZURlc3Ryb3llZCgpLgorCisgICAgICAgICogYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9s
bGVyOjp+U2NyaXB0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9s
bGVyOjpjYWNoZWFibGVCaW5kaW5nUm9vdE9iamVjdCk6CisgICAgICAgICogYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlci5oOgorCiAyMDEwLTA2LTA5ICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJA
Z29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAzZGNiYjBiMjY3YTA1N2Fm
ZDBmNTdlZDMzZGM0MTI0MTUzNTMzNmM3Li41YzRiZDRjMjdmNDg1M2U2OWQ3ZjIzNGQyY2NhMjg2
ZjZiMjJmNTJhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAg
LTg3LDYgKzg3LDExIEBAIFNjcmlwdENvbnRyb2xsZXI6On5TY3JpcHRDb250cm9sbGVyKCkKIHsK
ICAgICBkaXNjb25uZWN0UGxhdGZvcm1TY3JpcHRPYmplY3RzKCk7CiAKKyAgICBpZiAobV9jYWNo
ZWFibGVCaW5kaW5nUm9vdE9iamVjdCkgeworICAgICAgICBtX2NhY2hlYWJsZUJpbmRpbmdSb290
T2JqZWN0LT5pbnZhbGlkYXRlKCk7CisgICAgICAgIG1fY2FjaGVhYmxlQmluZGluZ1Jvb3RPYmpl
Y3QgPSAwOworICAgIH0KKwogICAgIC8vIEl0J3MgbGlrZWx5IHRoYXQgZGVzdHJveWluZyBtX3dp
bmRvd1NoZWxscyB3aWxsIGNyZWF0ZSBhIGxvdCBvZiBnYXJiYWdlLgogICAgIGlmICghbV93aW5k
b3dTaGVsbHMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHdoaWxlICghbV93aW5kb3dTaGVsbHMuaXNF
bXB0eSgpKQpAQCAtMzI5LDYgKzMzNCwxOCBAQCB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OnVwZGF0
ZVNlY3VyaXR5T3JpZ2luKCkKICAgICAvLyBPdXIgYmluZGluZ3MgZG8gbm90IGRvIGFueXRoaW5n
IGluIHRoaXMgY2FzZS4KIH0KIAorQmluZGluZ3M6OlJvb3RPYmplY3QqIFNjcmlwdENvbnRyb2xs
ZXI6OmNhY2hlYWJsZUJpbmRpbmdSb290T2JqZWN0KCkKK3sKKyAgICBpZiAoIWNhbkV4ZWN1dGVT
Y3JpcHRzKE5vdEFib3V0VG9FeGVjdXRlU2NyaXB0KSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAg
ICBpZiAoIW1fY2FjaGVhYmxlQmluZGluZ1Jvb3RPYmplY3QpIHsKKyAgICAgICAgSlNMb2NrIGxv
Y2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKKyAgICAgICAgbV9jYWNoZWFibGVCaW5kaW5nUm9v
dE9iamVjdCA9IEJpbmRpbmdzOjpSb290T2JqZWN0OjpjcmVhdGUoMCwgZ2xvYmFsT2JqZWN0KHBs
dWdpbldvcmxkKCkpKTsKKyAgICB9CisgICAgcmV0dXJuIG1fY2FjaGVhYmxlQmluZGluZ1Jvb3RP
YmplY3QuZ2V0KCk7Cit9CisKIEJpbmRpbmdzOjpSb290T2JqZWN0KiBTY3JpcHRDb250cm9sbGVy
OjpiaW5kaW5nUm9vdE9iamVjdCgpCiB7CiAgICAgaWYgKCFjYW5FeGVjdXRlU2NyaXB0cyhOb3RB
Ym91dFRvRXhlY3V0ZVNjcmlwdCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuaCBiL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5o
CmluZGV4IDE2ZmU0ZjIxZWQwZGM1MTUzMTE1ODU1ZDk0ZWM3Mzg3YzNmZTkxMjIuLjYyMzVmNjAw
NzIxMmQ2NGJiZDZiMzZiNzAzNjI5YWVmMzk1OWNlOTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0Q29udHJvbGxlci5oCkBAIC0xNTgsNiArMTU4LDcgQEAgcHVibGljOgogCiAgICAgUGFzc1Nj
cmlwdEluc3RhbmNlIGNyZWF0ZVNjcmlwdEluc3RhbmNlRm9yV2lkZ2V0KFdpZGdldCopOwogICAg
IEpTQzo6QmluZGluZ3M6OlJvb3RPYmplY3QqIGJpbmRpbmdSb290T2JqZWN0KCk7CisgICAgSlND
OjpCaW5kaW5nczo6Um9vdE9iamVjdCogY2FjaGVhYmxlQmluZGluZ1Jvb3RPYmplY3QoKTsKIAog
ICAgIFBhc3NSZWZQdHI8SlNDOjpCaW5kaW5nczo6Um9vdE9iamVjdD4gY3JlYXRlUm9vdE9iamVj
dCh2b2lkKiBuYXRpdmVIYW5kbGUpOwogCkBAIC0xOTUsOCArMTk2LDE0IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX3BhdXNlZDsKICAgICBib29sIG1fYWxsb3dQb3B1cHNGcm9tUGx1Z2luOwogCi0g
ICAgLy8gVGhlIHJvb3Qgb2JqZWN0IHVzZWQgZm9yIG9iamVjdHMgYm91bmQgb3V0c2lkZSB0aGUg
Y29udGV4dCBvZiBhIHBsdWdpbi4KKyAgICAvLyBUaGUgcm9vdCBvYmplY3QgdXNlZCBmb3Igb2Jq
ZWN0cyBib3VuZCBvdXRzaWRlIHRoZSBjb250ZXh0IG9mIGEgcGx1Z2luLCBzdWNoCisgICAgLy8g
YXMgTlBBUEkgcGx1Z2lucy4gVGhlc2Ugb2JqZWN0cyBwcmV2ZW50IGEgcGFnZSBmcm9tIGJlaW5n
IGNhY2hlZCBzbyBhcmUKKyAgICAvLyBzYWZlIHRvIGludmFsaWRhdGUoKSB3aGVuIFdlYktpdCBu
YXZpZ2F0ZXMgYXdheSBmcm9tIHRoZSBwYWdlIHRoYXQgY29udGFpbnMgdGhlbS4KICAgICBSZWZQ
dHI8SlNDOjpCaW5kaW5nczo6Um9vdE9iamVjdD4gbV9iaW5kaW5nUm9vdE9iamVjdDsKKyAgICAv
LyBUaGUgcm9vdCBvYmplY3QgdXNlZCBmb3Igb2JqZWN0cyBib3VuZCBvdXRzaWRlIHRoZSBjb250
ZXh0IG9mIGEgcGx1Z2luIGluIGEgcGFnZSB3aGljaAorICAgIC8vIGNhbiBiZSBjYWNoZWQsIHN1
Y2ggYXMgUXQtYmluZGluZ3Mgb2JqZWN0cy4gQmVjYXVzZSB0aGVzZSBvYmplY3RzIGRvIG5vdCBw
cmV2ZW50CisgICAgLy8gYSBwYWdlIGZyb20gYmVpbmcgY2FjaGVkIHRoZXkgYXJlIG5vdCBpbnZh
bGlkYXRlZC4KKyAgICBSZWZQdHI8SlNDOjpCaW5kaW5nczo6Um9vdE9iamVjdD4gbV9jYWNoZWFi
bGVCaW5kaW5nUm9vdE9iamVjdDsKICAgICBSb290T2JqZWN0TWFwIG1fcm9vdE9iamVjdHM7CiAj
aWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgTlBPYmplY3QqIG1fd2luZG93U2Ny
aXB0TlBPYmplY3Q7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAgYi9X
ZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKaW5kZXggN2ZiNWYzN2Q3MzlhZGQ1ZDFiMGNmMGRh
NzJlNjQ4MGQ1ZWVkMTUxMS4uYjYyZTlmZjFkMjZiOWJmOGYzYmVkMTI2N2FiMWFmM2YyNzkzNTJk
ZiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCisrKyBiL1dlYktpdC9x
dC9BcGkvcXdlYmZyYW1lLmNwcApAQCAtNDc2LDcgKzQ3Niw3IEBAIHZvaWQgUVdlYkZyYW1lOjph
ZGRUb0phdmFTY3JpcHRXaW5kb3dPYmplY3QoY29uc3QgUVN0cmluZyAmbmFtZSwgUU9iamVjdCAq
b2JqZWN0CiAKICAgICBKU0M6OkpTTG9jayBsb2NrKEpTQzo6U2lsZW5jZUFzc2VydGlvbnNPbmx5
KTsKICAgICBKU0RPTVdpbmRvdyogd2luZG93ID0gdG9KU0RPTVdpbmRvdyhkLT5mcmFtZSwgbWFp
blRocmVhZE5vcm1hbFdvcmxkKCkpOwotICAgIEpTQzo6QmluZGluZ3M6OlJvb3RPYmplY3QqIHJv
b3QgPSBkLT5mcmFtZS0+c2NyaXB0KCktPmJpbmRpbmdSb290T2JqZWN0KCk7CisgICAgSlNDOjpC
aW5kaW5nczo6Um9vdE9iamVjdCogcm9vdCA9IGQtPmZyYW1lLT5zY3JpcHQoKS0+Y2FjaGVhYmxl
QmluZGluZ1Jvb3RPYmplY3QoKTsKICAgICBpZiAoIXdpbmRvdykgewogICAgICAgICBxRGVidWco
KSA8PCAiV2FybmluZzogY291bGRuJ3QgZ2V0IHdpbmRvdyBvYmplY3QiOwogICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxv
ZwppbmRleCBjMTVhNDg4OWVjNGQ4YTI5YzFkYzQwMmNiZDExOWE0M2Q5MTcxZGY1Li43MmNlOTVj
MzM2ZmExNDVhMTkzMWVkYzAyMTRlMjE0ZmVjNzQ2ODYxIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAx
MC0wNi0wNyAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnJhbWVMb2FkZXI6OmNsZWFyKCkg
Y2xlYXJzIEpTIG9iamVjdHMgdGhhdCBjYWNoZWQgcGFnZXMgbGF0ZXIgcmVseSBvbgorCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzcyNQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE2MjYKKworICAgICAg
ICBGaXggdGhlIGZvbGxvd2luZyB0ZXN0cyBmb3IgUXQ6CisKKyAgICAgICAgZmFzdC9ldmVudHMv
cGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNoZWQuaHRtbAorICAgICAgICBmYXN0L2V2ZW50
cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC13aXRoLWZyYW1lcy5odG1sCisgICAg
ICAgIGZhc3QvbG9hZGVyL2lucHV0LWVsZW1lbnQtcGFnZS1jYWNoZS1jcmFzaC5odG1sCisgICAg
ICAgIGZhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1bWUtb24tbmF2aWdhdGlvbi1iYWNrLmh0bWwK
KyAgICAgICAgbG9hZGVyL2dvLWJhY2stdG8tZGlmZmVyZW50LXdpbmRvdy1zaXplLmh0bWwKKyAg
ICAgICAgZmFzdC9kb20vamF2YXNjcmlwdC11cmwtY3Jhc2gtZnVuY3Rpb24uaHRtbAorICAgICAg
ICBmYXN0L2RvbS9sb2NhdGlvbi1uZXctd2luZG93LW5vLWNyYXNoLmh0bWwKKyAgICAgICAgaHR0
cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0VVJML3hzcy1BTExPV0VELWZyb20tamF2YXNjcmlw
dC11cmwtd2luZG93LW9wZW4uaHRtbAorCisgICAgICAgIHdoaWNoIGN1cnJlbnRseSBmYWlsIGJl
Y2F1c2UgdGhlIHBhZ2UncyBRdC1iaW5kaW5ncyBydW50aW1lIG9iamVjdHMgYXJlCisgICAgICAg
IGNsZWFyZWQgd2hlbiBuYXZpZ2F0aW5nIGF3YXkgZnJvbSB0aGUgcGFnZSBjb250YWluaW5nIHRo
ZW0uCisKKyAgICAgICAgVHJhY2sgUXQtYmluZGluZ3Mgb2JqZWN0cyBpbiBhIHNlcGFyYXRlIFNj
cmlwdENvbnRyb2xsZXI6OmNhY2hlYWJsZVJvb3RCaW5kaW5nT2JqZWN0KCkuCisgICAgICAgIFJ1
bnRpbWVPYmplY3RzIHRyYWNrZWQgYnkgdGhpcyByb290IG9iamVjdCB3aWxsIG5vdCBnZXQgaW52
YWxpZGF0ZWQgb24gcGFnZSBuYXZpZ2F0aW9ucywKKyAgICAgICAgc28gdGhleSB3aWxsIHN0aWxs
IGJlIGF2YWlsYWJsZSB3aGVuIHRoZSBwYWdlcyBjb250YWluaW5nIHRoZW0gYXJlIHJldHJpZXZl
ZCBmcm9tIHRoZQorICAgICAgICBiL2YgY2FjaGUuCisKKyAgICAgICAgVGhpcyBtZWFucyB0aGUg
UXQgYmluZGluZ3Mgb2JqZWN0cyB3aWxsIG9ubHkgZ2V0IGNsZWFyZWQgb24gRnJhbWU6OnBhZ2VE
ZXN0cm95ZWQoKS4KKworICAgICAgICAqIEFwaS9xd2ViZnJhbWUuY3BwOgorICAgICAgICAoUVdl
YkZyYW1lOjphZGRUb0phdmFTY3JpcHRXaW5kb3dPYmplY3QpOgorCiAyMDEwLTA2LTEwICBNYWhl
c2ggS3Vsa2FybmkgIDxtYWhlc2gua3Vsa2FybmlAbm9raWEuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgo=
</data>
<flag name="review"
          id="43488"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>