<?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>51067</bug_id>
          
          <creation_ts>2010-12-14 15:49:35 -0800</creation_ts>
          <short_desc>Assertion failure: element-&gt;inDocument() in AsyncScriptRunner::executeScriptSoon()</short_desc>
          <delta_ts>2010-12-29 13:29:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Tony Gentilcore">tonyg</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>322305</commentid>
    <comment_count>0</comment_count>
      <attachid>76587</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-14 15:49:35 -0800</bug_when>
    <thetext>Created attachment 76587
test case (will assert)

There is nothing that guarantees this. See attached test case.

I haven&apos;t checked what release mode consequences are.

In fact, looks like this test also shows another bug: we shouldn&apos;t be getting to executeScriptSoon() from error()!

#0	0x102e4c866 in WebCore::AsyncScriptRunner::executeScriptSoon at AsyncScriptRunner.cpp:57
#1	0x1038d1ccc in WebCore::ScriptElement::notifyFinished at ScriptElement.cpp:245
#2	0x102ea06aa in WebCore::CachedScript::checkNotify at CachedScript.cpp:100
#3	0x102ea072b in WebCore::CachedScript::error at CachedScript.cpp:108
#4	0x10367f62f in WebCore::Loader::didFail at loader.cpp:213
#5	0x10367f6c7 in WebCore::Loader::didFail at loader.cpp:190
#6	0x103957261 in WebCore::SubresourceLoader::didFail at SubresourceLoader.cpp:200
#7	0x10389cc07 in WebCore::ResourceLoader::didFail at ResourceLoader.cpp:444</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322321</commentid>
    <comment_count>1</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-12-14 16:03:29 -0800</bug_when>
    <thetext>This might be a dup of https://bugs.webkit.org/show_bug.cgi?id=49935, I&apos;ll look into this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327281</commentid>
    <comment_count>2</comment_count>
      <attachid>77564</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-12-28 11:22:36 -0800</bug_when>
    <thetext>Created attachment 77564
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327282</commentid>
    <comment_count>3</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-12-28 11:24:38 -0800</bug_when>
    <thetext>&gt; In fact, looks like this test also shows another bug: we shouldn&apos;t be getting to executeScriptSoon() from error()!
This isn&apos;t an issue (other than perhaps misleading naming). The error case is handled in ScriptElement::execute().

void ScriptElement::execute(CachedScript* cachedScript)
{
    ASSERT(cachedScript);
    if (cachedScript-&gt;errorOccurred())
        dispatchErrorEvent();
    else {
        evaluateScript(ScriptSourceCode(cachedScript));
        dispatchLoadEvent();
    }
    cachedScript-&gt;removeClient(this);
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327283</commentid>
    <comment_count>4</comment_count>
      <attachid>77564</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-28 11:29:08 -0800</bug_when>
    <thetext>Comment on attachment 77564
Patch

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

Looks good.  tHanks.

&gt; LayoutTests/fast/dom/HTMLScriptElement/remove-in-beforeload.html:6
&gt; +function obl()

Seems this could be a clearer name. :)

&gt; LayoutTests/fast/dom/HTMLScriptElement/remove-in-beforeload.html:22
&gt; +    s.setAttribute(&quot;onbeforeload&quot;, &quot;obl()&quot;);
&gt; +    s.setAttribute(&quot;onload&quot;, &quot;fail()&quot;);
&gt; +    s.setAttribute(&quot;onerror&quot;, &quot;fail()&quot;);
&gt; +    s.setAttribute(&quot;src&quot;, &quot;foobar&quot;);

I think you can just do s.onbeforeload = obl, but this works too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327288</commentid>
    <comment_count>5</comment_count>
      <attachid>77566</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-12-28 11:38:37 -0800</bug_when>
    <thetext>Created attachment 77566
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327302</commentid>
    <comment_count>6</comment_count>
      <attachid>77566</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-28 11:54:25 -0800</bug_when>
    <thetext>Comment on attachment 77566
Patch for landing

+    Document* document = m_element-&gt;document();
+    if (!document || !m_element-&gt;inDocument())

How can the document be null?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327303</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-28 11:57:04 -0800</bug_when>
    <thetext>&gt; Also, it avoids caching the Document references over the arbitrary script execution in the before load event.

This is interesting! Can a regression test be added for moving the element to another document in beforeload?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327325</commentid>
    <comment_count>8</comment_count>
      <attachid>77566</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-28 13:34:32 -0800</bug_when>
    <thetext>Comment on attachment 77566
Patch for landing

Rejecting attachment 77566 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-4&apos;, &apos;build-and-test&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--test&apos;, &apos;--non-interactive&apos;]&quot; exit_code: 2
Last 500 characters of output:
LMetaElement .
fast/dom/HTMLMeterElement ............
fast/dom/HTMLObjectElement ....
fast/dom/HTMLObjectElement/form .
fast/dom/HTMLOptionElement ....
fast/dom/HTMLOutputElement .....
fast/dom/HTMLProgressElement .....
fast/dom/HTMLScriptElement ...........
fast/dom/HTMLScriptElement/remove-source.html -&gt; failed

Exiting early after 1 failures. 7290 tests run.
147.95s total testing time

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

Full output: http://queues.webkit.org/results/7327192</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327327</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-28 13:36:04 -0800</bug_when>
    <thetext>I &lt;3 the commit-queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327428</commentid>
    <comment_count>10</comment_count>
      <attachid>77590</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-12-28 16:32:33 -0800</bug_when>
    <thetext>Created attachment 77590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327430</commentid>
    <comment_count>11</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-12-28 16:37:16 -0800</bug_when>
    <thetext>&gt; How can the document be null?
Oops. element-&gt;document() can never return null, removed the check.

&gt; This is interesting! Can a regression test be added for moving the element to another document in beforeload?

Good catch. The test case exposed a bug with my logic. Just checking element-&gt;inDocument() doesn&apos;t work if the element was added to a new document.

So this new patch introduces this really hacky m_removals variable. If the removedFromDocument() method was ever called during the beforeload event, then requestScript should bail out. I&apos;d rather not commit this approach with an m_removals counter. I uploaded the patch because I can&apos;t think of a better pattern, and am wondering if you know of a better pattern.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327434</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-28 16:41:27 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; This is interesting! Can a regression test be added for moving the element to another document in beforeload?
&gt; 
&gt; Good catch. The test case exposed a bug with my logic. Just checking element-&gt;inDocument() doesn&apos;t work if the element was added to a new document.
&gt; 
&gt; So this new patch introduces this really hacky m_removals variable. If the removedFromDocument() method was ever called during the beforeload event, then requestScript should bail out. I&apos;d rather not commit this approach with an m_removals counter. I uploaded the patch because I can&apos;t think of a better pattern, and am wondering if you know of a better pattern.

Wait, but what if we removed the script element and inserted back into the same document on beforeunload?  Shouldn&apos;t we execute the script in that case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327435</commentid>
    <comment_count>13</comment_count>
      <attachid>77590</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-28 16:42:45 -0800</bug_when>
    <thetext>Comment on attachment 77590
Patch

Why not cache the document pointer and check that against the current document pointer?  If the documetn is not the same, abort.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327436</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-28 16:43:10 -0800</bug_when>
    <thetext>I don&apos;t know if you&apos;d have to store the cached Document pointer in a RefPtr or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327437</commentid>
    <comment_count>15</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-12-28 16:44:06 -0800</bug_when>
    <thetext>&gt; Wait, but what if we removed the script element and inserted back into the same document on beforeunload?  Shouldn&apos;t we execute the script in that case?

Yes, that is how it works. insertedIntoDocument() will invoke another requestScript() while the former requestScript() is still on the stack. That&apos;s why the original one needs to bail out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327439</commentid>
    <comment_count>16</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-12-28 16:45:38 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 77590 [details])
&gt; Why not cache the document pointer and check that against the current document pointer?  If the documetn is not the same, abort.

Isn&apos;t there a non-zero chance that the old doc could be destroyed and a new doc could be allocated at the same location? If not, that would be pretty clean.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327442</commentid>
    <comment_count>17</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-12-28 16:47:26 -0800</bug_when>
    <thetext>
&gt; Isn&apos;t there a non-zero chance that the old doc could be destroyed and a new doc could be allocated at the same location? If not, that would be pretty clean.

Oh wait, a RefPtr would prevent that (like you suggested).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327446</commentid>
    <comment_count>18</comment_count>
      <attachid>77591</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-12-28 16:58:36 -0800</bug_when>
    <thetext>Created attachment 77591
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327449</commentid>
    <comment_count>19</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-12-28 17:07:08 -0800</bug_when>
    <thetext>Thinking about this some more, this doesn&apos;t seem to be specific to script elements. I wonder if this check should go in ContainerNode:dispatchBeforeLoadEvent(). That would also prevent the extra overhead in the common case where the document doesn&apos;t have beforeload listeners. If no one can think of any elements this doesn&apos;t apply to, I&apos;ll try moving it up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327654</commentid>
    <comment_count>20</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-12-29 12:00:19 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; Thinking about this some more, this doesn&apos;t seem to be specific to script elements. I wonder if this check should go in ContainerNode:dispatchBeforeLoadEvent(). That would also prevent the extra overhead in the common case where the document doesn&apos;t have beforeload listeners. If no one can think of any elements this doesn&apos;t apply to, I&apos;ll try moving it up.

Nevermind. This is element specific. See: http://trac.webkit.org/changeset/49313

This patch sticks to only doing it for script elements. Antti is taking care of it for link elements in https://bugs.webkit.org/show_bug.cgi?id=8852 (That patch should probably check for a move in addition to a remove).

PTAL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327659</commentid>
    <comment_count>21</comment_count>
      <attachid>77591</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-12-29 12:11:06 -0800</bug_when>
    <thetext>Comment on attachment 77591
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327661</commentid>
    <comment_count>22</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-12-29 12:19:27 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; This patch sticks to only doing it for script elements. Antti is taking care of it for link elements in https://bugs.webkit.org/show_bug.cgi?id=8852 (That patch should probably check for a move in addition to a remove).

Feel free to fix the stylesheet issue separately as well.

Test fast/dom/beforeload/remove-link-in-beforeload-listener.html should cover the removal case but doesn&apos;t work correctly atm and that patch in bug 8852 exposed this. That test could be tweaked to work independently and the move case would really need a test of its own.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327670</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-29 12:38:49 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 77591:

fast/workers/storage/use-same-database-in-page-and-workers.html bug 50995 (author: dumi@chromium.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327671</commentid>
    <comment_count>24</comment_count>
      <attachid>77591</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-29 12:40:12 -0800</bug_when>
    <thetext>Comment on attachment 77591
Patch

Clearing flags on attachment: 77591

Committed r74752: &lt;http://trac.webkit.org/changeset/74752&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327672</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-29 12:40:20 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327683</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-29 13:29:00 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/74752 might have broken Leopard Intel Debug (Tests)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>76587</attachid>
            <date>2010-12-14 15:49:35 -0800</date>
            <delta_ts>2010-12-14 15:49:35 -0800</delta_ts>
            <desc>test case (will assert)</desc>
            <filename>test.html</filename>
            <type>text/html</type>
            <size>592</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">PGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgo8c2NyaXB0PgpmdW5jdGlvbiBnYygpCnsKICAgIGlmICh3
aW5kb3cuR0NDb250cm9sbGVyKQogICAgICAgIHJldHVybiBHQ0NvbnRyb2xsZXIuY29sbGVjdCgp
OwoKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgeyAvLyA+IGZvcmNlIGdhcmJh
Z2UgY29sbGVjdGlvbiAoRkYgcmVxdWlyZXMgYWJvdXQgOUsgYWxsb2NhdGlvbnMgYmVmb3JlIGEg
Y29sbGVjdCkKICAgICAgICB2YXIgcyA9IG5ldyBTdHJpbmcoImFiYyIpOwogICAgfQp9CgpmdW5j
dGlvbiBvYmwoKQp7CiAgICBhbGVydCgwKTsKICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzFdKTsKICAgIGdjKCk7Cn0K
CmZ1bmN0aW9uIHRlc3QoKQp7CiAgICB2YXIgcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNj
cmlwdCIpOwogICAgcy5zZXRBdHRyaWJ1dGUoIm9uYmVmb3JlbG9hZCIsICJvYmwoKSIpOwogICAg
cy5zZXRBdHRyaWJ1dGUoInNyYyIsICJmb29iYXIiKTsKICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQocyk7Cn0KPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77564</attachid>
            <date>2010-12-28 11:22:36 -0800</date>
            <delta_ts>2010-12-28 11:38:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51067-20101228112235.patch</filename>
            <type>text/plain</type>
            <size>4386</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1NTJiZmNlNWU1ZmJiMmYyNDlhYmUxODJkYmE5NDNlZTI3OGM0N2U0Li41MmI3NzE5
YWE5Mzg3NmM4ZGE3MDk0YTdiODY0YmVmNGRkMTRlZDJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMTItMjggIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBc3NlcnRpb24gZmFp
bHVyZTogZWxlbWVudC0+aW5Eb2N1bWVudCgpIGluIEFzeW5jU2NyaXB0UnVubmVyOjpleGVjdXRl
U2NyaXB0U29vbigpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01MTA2NworCisgICAgICAgIFRlc3RjYXNlIHByb3ZpZGVkIGJ5IEFsZXhleSBQcm9za3Vy
eWFrb3YuCisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9yZW1vdmUtaW4t
YmVmb3JlbG9hZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxT
Y3JpcHRFbGVtZW50L3JlbW92ZS1pbi1iZWZvcmVsb2FkLmh0bWw6IEFkZGVkLgorCiAyMDEwLTEy
LTI4ICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCBDaHJvbWl1bSB0ZXN0IGV4cGVjdGF0aW9ucyB1cGRhdGUuIENvYWxlc2NlIFdlYkdMCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9yZW1vdmUt
aW4tYmVmb3JlbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2Ny
aXB0RWxlbWVudC9yZW1vdmUtaW4tYmVmb3JlbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
N2VmMjJlOWE0MzFhZDAyNzI3MTNiNzFmZGM4Nzk0MDE2YzhlZjEyZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3JlbW92ZS1pbi1iZWZv
cmVsb2FkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9yZW1vdmUtaW4tYmVmb3JlbG9hZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVtb3ZlLWluLWJl
Zm9yZWxvYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTVkNWVhNTMwZTA0NGEwNWIyYzA3NDRmN2RhMzRh
MGQ2NTUwZDFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNj
cmlwdEVsZW1lbnQvcmVtb3ZlLWluLWJlZm9yZWxvYWQuaHRtbApAQCAtMCwwICsxLDI2IEBACis8
Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0
aW9uIG9ibCgpCit7CisgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRF
bGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMV0pOworfQorCitmdW5jdGlvbiBmYWlsKCkKK3sK
KyAgICBkb2N1bWVudC53cml0ZSgiRkFJTCIpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAg
ICB2YXIgcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOworICAgIHMuc2V0QXR0
cmlidXRlKCJvbmJlZm9yZWxvYWQiLCAib2JsKCkiKTsKKyAgICBzLnNldEF0dHJpYnV0ZSgib25s
b2FkIiwgImZhaWwoKSIpOworICAgIHMuc2V0QXR0cmlidXRlKCJvbmVycm9yIiwgImZhaWwoKSIp
OworICAgIHMuc2V0QXR0cmlidXRlKCJzcmMiLCAiZm9vYmFyIik7CisgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChzKTsKK30KKzwvc2NyaXB0PgorUEFTUwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlYzI3NWJlYjUwYjliZWVkZTg0
YTAyNWM4ZmViZTAxY2UwNGJlNGYzLi41MTI5NmQ2N2I1ODMyN2M2ZjU2NzFiMzc2OGY3YzBmNTVl
YTA0NWJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEwLTEyLTI4ICBUb255IEdlbnRpbGNvcmUgIDx0b255
Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQXNzZXJ0aW9uIGZhaWx1cmU6IGVsZW1lbnQtPmluRG9jdW1lbnQoKSBpbiBBc3lu
Y1NjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNjcmlwdFNvb24oKQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTEwNjcKKworICAgICAgICBUeXBpY2FsbHkgd2hl
biBhIHNjcmlwdCBlbGVtZW50IGlzIHJlbW92ZWQgZnJvbSB0aGUgZG9jdW1lbnQsIHRoZSBjYWNo
ZWQgc2NyaXB0CisgICAgICAgIGNsaWVudCBpcyByZW1vdmVkLiBIb3dldmVyLCBkdXJpbmcgdGhl
IGJlZm9yZSBsb2FkIGV2ZW50LCB0aGUgY2FjaGVkIHNjcmlwdCBjbGllbnQKKyAgICAgICAgaGFz
bid0IGJlZW4gY3JlYXRlZCB5ZXQgc28gaXQgY2FuJ3QgYmUgcmVtb3ZlZC4KKworICAgICAgICBU
aGlzIHBhdGNoIGhhbmRsZXMgdGhhdCBjYXNlIGJ5IGV4cGxpY2l0bHkgY2hlY2tpbmcgaWYgdGhl
IHNjcmlwdCBlbGVtZW50IHdhcworICAgICAgICByZW1vdmVkIGR1cmluZyB0aGUgYmVmb3JlbG9h
ZCBldmVudC4gQWxzbywgaXQgYXZvaWRzIGNhY2hpbmcgdGhlIERvY3VtZW50IHJlZmVyZW5jZXMK
KyAgICAgICAgb3ZlciB0aGUgYXJiaXRyYXJ5IHNjcmlwdCBleGVjdXRpb24gaW4gdGhlIGJlZm9y
ZSBsb2FkIGV2ZW50LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50
L3JlbW92ZS1pbi1iZWZvcmVsb2FkLmh0bWwKKworICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQpOgor
CiAyMDEwLTEyLTI4ICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5k
ZXggNzRmMjU4MDM3MmQ0Y2Y1ODgxMDc5NGRhYzEwOTY4MzMwN2NjM2NiOS4uZTk0ZTk5ZDRkNThh
ZGM3MDAzYzEyYjM0NzJmMGI5ZDgyYTg5YjQ2NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vU2Ny
aXB0RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTE0
NSwxNiArMTQ1LDE5IEBAIHN0YXRpYyBib29sIGlzU3VwcG9ydGVkSmF2YVNjcmlwdExhbmd1YWdl
KGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpCiAKIHZvaWQgU2NyaXB0RWxlbWVudDo6cmVxdWVzdFNj
cmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZVVybCkKIHsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQg
PSBtX2VsZW1lbnQtPmRvY3VtZW50KCk7Ci0KICAgICAvLyBGSVhNRTogRXZlbnR1YWxseSB3ZSdk
IGxpa2UgdG8gZXZhbHVhdGUgc2NyaXB0cyB3aGljaCBhcmUgaW5zZXJ0ZWQgaW50byBhIAogICAg
IC8vIHZpZXdsZXNzIGRvY3VtZW50IGJ1dCB0aGlzJ2xsIGRvIGZvciBub3cuCiAgICAgLy8gU2Vl
IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MjcKLSAgICBpZiAoIWRv
Y3VtZW50LT5mcmFtZSgpKQorICAgIGlmICghbV9lbGVtZW50LT5kb2N1bWVudCgpLT5mcmFtZSgp
KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fZWxlbWVudC0+ZGlzcGF0Y2hCZWZvcmVM
b2FkRXZlbnQoc291cmNlVXJsKSkKICAgICAgICAgcmV0dXJuOworICAgIAorICAgIC8vIFRoZSBi
ZWZvcmVsb2FkIGV2ZW50IG1heSBoYXZlIHJlbW92ZWQgdXMuCisgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gbV9lbGVtZW50LT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQgfHwgIW1fZWxl
bWVudC0+aW5Eb2N1bWVudCgpKQorICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoIW1fY2Fj
aGVkU2NyaXB0KTsKICAgICBtX2NhY2hlZFNjcmlwdCA9IGRvY3VtZW50LT5jYWNoZWRSZXNvdXJj
ZUxvYWRlcigpLT5yZXF1ZXN0U2NyaXB0KHNvdXJjZVVybCwgc2NyaXB0Q2hhcnNldCgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77566</attachid>
            <date>2010-12-28 11:38:37 -0800</date>
            <delta_ts>2010-12-28 16:32:30 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-51067-20101228113836.patch</filename>
            <type>text/plain</type>
            <size>4340</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1NTJiZmNlNWU1ZmJiMmYyNDlhYmUxODJkYmE5NDNlZTI3OGM0N2U0Li42OTgxMDFk
Y2MyMTBiZDEzN2FiNTcxYjUzN2RjOWExNGZhMzdkYWU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMTItMjggIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KKworICAgICAgICBBc3NlcnRpb24gZmFpbHVy
ZTogZWxlbWVudC0+aW5Eb2N1bWVudCgpIGluIEFzeW5jU2NyaXB0UnVubmVyOjpleGVjdXRlU2Ny
aXB0U29vbigpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01MTA2NworCisgICAgICAgIFRlc3RjYXNlIHByb3ZpZGVkIGJ5IEFsZXhleSBQcm9za3VyeWFr
b3YuCisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9yZW1vdmUtaW4tYmVm
b3JlbG9hZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3Jp
cHRFbGVtZW50L3JlbW92ZS1pbi1iZWZvcmVsb2FkLmh0bWw6IEFkZGVkLgorCiAyMDEwLTEyLTI4
ICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LCBDaHJvbWl1bSB0ZXN0IGV4cGVjdGF0aW9ucyB1cGRhdGUuIENvYWxlc2NlIFdlYkdMCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9yZW1vdmUtaW4t
YmVmb3JlbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0
RWxlbWVudC9yZW1vdmUtaW4tYmVmb3JlbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Vm
MjJlOWE0MzFhZDAyNzI3MTNiNzFmZGM4Nzk0MDE2YzhlZjEyZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3JlbW92ZS1pbi1iZWZvcmVs
b2FkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9yZW1vdmUtaW4tYmVmb3JlbG9hZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVtb3ZlLWluLWJlZm9y
ZWxvYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMWRkM2I1NjI0YTY1Y2JlMDE0YTg5ZDA1ZmM0YTMwNjZl
OTU5ZWRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlw
dEVsZW1lbnQvcmVtb3ZlLWluLWJlZm9yZWxvYWQuaHRtbApAQCAtMCwwICsxLDI2IEBACis8Ym9k
eSBvbmxvYWQ9InRlc3QoKSI+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK3ZhciByZW1v
dmVTY3JpcHQgPSBmdW5jdGlvbigpCit7CisgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMV0pOworfTsKKwordmFyIGZh
aWwgPSBmdW5jdGlvbigpCit7CisgICAgZG9jdW1lbnQud3JpdGUoIkZBSUwiKTsKK307CisKK2Z1
bmN0aW9uIHRlc3QoKQoreworICAgIHZhciBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2Ny
aXB0Iik7CisgICAgcy5vbmJlZm9yZWxvYWQgPSByZW1vdmVTY3JpcHQ7CisgICAgcy5vbmxvYWQg
PSBmYWlsOworICAgIHMub25lcnJvciA9IGZhaWw7CisgICAgcy5zcmMgPSAiZm9vYmFyIjsKKyAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHMpOworfQorPC9zY3JpcHQ+CitQQVNTCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGVjMjc1
YmViNTBiOWJlZWRlODRhMDI1YzhmZWJlMDFjZTA0YmU0ZjMuLjhkOWM2NjI0NTVmNWNiZTZmYjIy
YzNlNWUyZDdlODQ5NDgxZTI2ZDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMTItMjggIFRvbnkgR2Vu
dGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IFNlaWRlbC4KKworICAgICAgICBBc3NlcnRpb24gZmFpbHVyZTogZWxlbWVudC0+aW5Eb2N1bWVu
dCgpIGluIEFzeW5jU2NyaXB0UnVubmVyOjpleGVjdXRlU2NyaXB0U29vbigpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTA2NworCisgICAgICAgIFR5
cGljYWxseSB3aGVuIGEgc2NyaXB0IGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBkb2N1bWVu
dCwgdGhlIGNhY2hlZCBzY3JpcHQKKyAgICAgICAgY2xpZW50IGlzIHJlbW92ZWQuIEhvd2V2ZXIs
IGR1cmluZyB0aGUgYmVmb3JlIGxvYWQgZXZlbnQsIHRoZSBjYWNoZWQgc2NyaXB0IGNsaWVudAor
ICAgICAgICBoYXNuJ3QgYmVlbiBjcmVhdGVkIHlldCBzbyBpdCBjYW4ndCBiZSByZW1vdmVkLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggaGFuZGxlcyB0aGF0IGNhc2UgYnkgZXhwbGljaXRseSBjaGVj
a2luZyBpZiB0aGUgc2NyaXB0IGVsZW1lbnQgd2FzCisgICAgICAgIHJlbW92ZWQgZHVyaW5nIHRo
ZSBiZWZvcmVsb2FkIGV2ZW50LiBBbHNvLCBpdCBhdm9pZHMgY2FjaGluZyB0aGUgRG9jdW1lbnQg
cmVmZXJlbmNlcworICAgICAgICBvdmVyIHRoZSBhcmJpdHJhcnkgc2NyaXB0IGV4ZWN1dGlvbiBp
biB0aGUgYmVmb3JlIGxvYWQgZXZlbnQuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vSFRNTFNj
cmlwdEVsZW1lbnQvcmVtb3ZlLWluLWJlZm9yZWxvYWQuaHRtbAorCisgICAgICAgICogZG9tL1Nj
cmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cmVxdWVz
dFNjcmlwdCk6CisKIDIwMTAtMTItMjggIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9XZWJDb3JlL2RvbS9TY3JpcHRFbGVt
ZW50LmNwcAppbmRleCA3NGYyNTgwMzcyZDRjZjU4ODEwNzk0ZGFjMTA5NjgzMzA3Y2MzY2I5Li5l
OTRlOTlkNGQ1OGFkYzcwMDNjMTJiMzQ3MmYwYjlkODJhODliNDY1IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50
LmNwcApAQCAtMTQ1LDE2ICsxNDUsMTkgQEAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRKYXZhU2Ny
aXB0TGFuZ3VhZ2UoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkKIAogdm9pZCBTY3JpcHRFbGVtZW50
OjpyZXF1ZXN0U2NyaXB0KGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQogewotICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKTsKLQogICAgIC8vIEZJWE1FOiBFdmVu
dHVhbGx5IHdlJ2QgbGlrZSB0byBldmFsdWF0ZSBzY3JpcHRzIHdoaWNoIGFyZSBpbnNlcnRlZCBp
bnRvIGEgCiAgICAgLy8gdmlld2xlc3MgZG9jdW1lbnQgYnV0IHRoaXMnbGwgZG8gZm9yIG5vdy4K
ICAgICAvLyBTZWUgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcyNwot
ICAgIGlmICghZG9jdW1lbnQtPmZyYW1lKCkpCisgICAgaWYgKCFtX2VsZW1lbnQtPmRvY3VtZW50
KCktPmZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghbV9lbGVtZW50LT5kaXNw
YXRjaEJlZm9yZUxvYWRFdmVudChzb3VyY2VVcmwpKQogICAgICAgICByZXR1cm47CisgICAgCisg
ICAgLy8gVGhlIGJlZm9yZWxvYWQgZXZlbnQgbWF5IGhhdmUgcmVtb3ZlZCB1cy4KKyAgICBEb2N1
bWVudCogZG9jdW1lbnQgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVu
dCB8fCAhbV9lbGVtZW50LT5pbkRvY3VtZW50KCkpCisgICAgICAgIHJldHVybjsKIAogICAgIEFT
U0VSVCghbV9jYWNoZWRTY3JpcHQpOwogICAgIG1fY2FjaGVkU2NyaXB0ID0gZG9jdW1lbnQtPmNh
Y2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RTY3JpcHQoc291cmNlVXJsLCBzY3JpcHRDaGFy
c2V0KCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77590</attachid>
            <date>2010-12-28 16:32:33 -0800</date>
            <delta_ts>2010-12-28 16:58:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51067-20101228163232.patch</filename>
            <type>text/plain</type>
            <size>8588</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1NTJiZmNlNWU1ZmJiMmYyNDlhYmUxODJkYmE5NDNlZTI3OGM0N2U0Li4xMGExNzVm
Mjk0YWI3MDhjZDMzMjBiZGE0MmIyOTViYzZhNjUyNDIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMTItMjggIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KKworICAgICAgICBBc3NlcnRpb24gZmFpbHVy
ZTogZWxlbWVudC0+aW5Eb2N1bWVudCgpIGluIEFzeW5jU2NyaXB0UnVubmVyOjpleGVjdXRlU2Ny
aXB0U29vbigpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01MTA2NworCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvbW92ZS1pbi1i
ZWZvcmVsb2FkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNj
cmlwdEVsZW1lbnQvbW92ZS1pbi1iZWZvcmVsb2FkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3JlbW92ZS1pbi1iZWZvcmVsb2FkLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVtb3ZlLWlu
LWJlZm9yZWxvYWQuaHRtbDogQWRkZWQuCisKIDIwMTAtMTItMjggIEtlbm5ldGggUnVzc2VsbCAg
PGtickBnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIENocm9taXVtIHRlc3QgZXhw
ZWN0YXRpb25zIHVwZGF0ZS4gQ29hbGVzY2UgV2ViR0wKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L21vdmUtaW4tYmVmb3JlbG9hZC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9tb3ZlLWluLWJlZm9y
ZWxvYWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmNjU5NTEzZDg2ZjY2YTA1YmNjODRlYTM3
NGUwNDcyZDk4ODE2ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MU2NyaXB0RWxlbWVudC9tb3ZlLWluLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMiBAQAorUEFTUyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNj
cmlwdEVsZW1lbnQvbW92ZS1pbi1iZWZvcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MU2NyaXB0RWxlbWVudC9tb3ZlLWluLWJlZm9yZWxvYWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
N2JlZWQwNmIzODJkZjU0NzUzZmYxYjY2MTlkYzRmNzBmOTU5NTEzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvbW92ZS1pbi1iZWZvcmVs
b2FkLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHkgb25s
b2FkPSJ0ZXN0KCkiPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8aWZyYW1lIHNyYz0icmVz
b3VyY2VzL2ZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworfQorCitmdW5jdGlv
biB0ZXN0KCkKK3sKKyAgICB2YXIgcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIp
OworICAgIHMuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JlbG9hZCIsIGZ1bmN0aW9uKCkgeworICAg
ICAgICB2YXIgcyA9IGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoInNjcmlwdCIpWzJdKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoImlmcmFtZSIpWzBdLmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHMp
OworICAgIH0sIGZhbHNlKTsKKyAgICBzLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rp
b24oKSB7CisgICAgICAgIHRlc3RGYWlsZWQoImVycm9yIGV2ZW50IHNob3VsZCBub3QgZmlyZS4i
KQorICAgIH0sIGZhbHNlKTsKKyAgICBzLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiIik7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgfSwgZmFsc2UpOworICAgIHMuc3JjID0gImV4dGVybmFsLmpzIjsKKyAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHMpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9y
ZW1vdmUtaW4tYmVmb3JlbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MU2NyaXB0RWxlbWVudC9yZW1vdmUtaW4tYmVmb3JlbG9hZC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYWY2NTk1MTNkODZmNjZhMDViY2M4NGVhMzc0ZTA0NzJkOTg4MTZkZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3JlbW92ZS1p
bi1iZWZvcmVsb2FkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1MgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3JlbW92ZS1pbi1i
ZWZvcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9y
ZW1vdmUtaW4tYmVmb3JlbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjMzQwNjAwM2EwMzNiZTM5OTI0
ZjYzMGEwNWQ1ZDQ0ZjEwMGMxOTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9yZW1vdmUtaW4tYmVmb3JlbG9hZC5odG1sCkBAIC0wLDAg
KzEsMzQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworfQorCitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICB2YXIgcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOworICAg
IHMuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JlbG9hZCIsIGZ1bmN0aW9uKCkgeworICAgICAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJz
Y3JpcHQiKVsyXSk7CisgICAgICAgIHRlc3RQYXNzZWQoIiIpOworICAgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICAgIH0sIGZhbHNlKTsKKyAgICBzLmFkZEV2ZW50TGlzdGVuZXIoImVy
cm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIHRlc3RGYWlsZWQoImVycm9yIGV2ZW50IHNob3Vs
ZCBub3QgZmlyZS4iKQorICAgIH0sIGZhbHNlKTsKKyAgICBzLmFkZEV2ZW50TGlzdGVuZXIoImxv
YWQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgibG9hZCBldmVudCBzaG91bGQg
bm90IGZpcmUuIikKKyAgICB9LCBmYWxzZSk7CisgICAgcy5zcmMgPSAicmVzb3VyY2VzL3Nob3Vs
ZG5vdGV4ZWN1dGUuanMiOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocyk7Cit9Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxTY3JpcHRFbGVtZW50L3Jlc291cmNlcy9mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVzb3VyY2VzL2ZyYW1lLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTM5OTAxOWE2OTA4MmUxOTk1OTkzOTk1YTlhZTdjNGUxYmE3NjAzNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3Jlc291cmNlcy9m
cmFtZS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uLy4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGVjMjc1YmViNTBiOWJlZWRlODRhMDI1YzhmZWJlMDFjZTA0YmU0ZjMuLjhkOWM2NjI0NTVmNWNi
ZTZmYjIyYzNlNWUyZDdlODQ5NDgxZTI2ZDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMTItMjggIFRv
bnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIFNlaWRlbC4KKworICAgICAgICBBc3NlcnRpb24gZmFpbHVyZTogZWxlbWVudC0+aW5E
b2N1bWVudCgpIGluIEFzeW5jU2NyaXB0UnVubmVyOjpleGVjdXRlU2NyaXB0U29vbigpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTA2NworCisgICAg
ICAgIFR5cGljYWxseSB3aGVuIGEgc2NyaXB0IGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBk
b2N1bWVudCwgdGhlIGNhY2hlZCBzY3JpcHQKKyAgICAgICAgY2xpZW50IGlzIHJlbW92ZWQuIEhv
d2V2ZXIsIGR1cmluZyB0aGUgYmVmb3JlIGxvYWQgZXZlbnQsIHRoZSBjYWNoZWQgc2NyaXB0IGNs
aWVudAorICAgICAgICBoYXNuJ3QgYmVlbiBjcmVhdGVkIHlldCBzbyBpdCBjYW4ndCBiZSByZW1v
dmVkLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaGFuZGxlcyB0aGF0IGNhc2UgYnkgZXhwbGljaXRs
eSBjaGVja2luZyBpZiB0aGUgc2NyaXB0IGVsZW1lbnQgd2FzCisgICAgICAgIHJlbW92ZWQgZHVy
aW5nIHRoZSBiZWZvcmVsb2FkIGV2ZW50LiBBbHNvLCBpdCBhdm9pZHMgY2FjaGluZyB0aGUgRG9j
dW1lbnQgcmVmZXJlbmNlcworICAgICAgICBvdmVyIHRoZSBhcmJpdHJhcnkgc2NyaXB0IGV4ZWN1
dGlvbiBpbiB0aGUgYmVmb3JlIGxvYWQgZXZlbnQuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20v
SFRNTFNjcmlwdEVsZW1lbnQvcmVtb3ZlLWluLWJlZm9yZWxvYWQuaHRtbAorCisgICAgICAgICog
ZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6
cmVxdWVzdFNjcmlwdCk6CisKIDIwMTAtMTItMjggIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9XZWJDb3JlL2RvbS9TY3Jp
cHRFbGVtZW50LmNwcAppbmRleCA3NGYyNTgwMzcyZDRjZjU4ODEwNzk0ZGFjMTA5NjgzMzA3Y2Mz
Y2I5Li4xZDQ2OTE1NzJiMTU3NDkwM2ZhMjQyNTAxYTVmN2ZhZWQ5MDA2NWJiIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9TY3JpcHRF
bGVtZW50LmNwcApAQCAtNTgsNiArNTgsNyBAQCBTY3JpcHRFbGVtZW50OjpTY3JpcHRFbGVtZW50
KEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlciwgYm9vbCB3YQogICAg
ICwgbV9pc0V4dGVybmFsU2NyaXB0KGZhbHNlKQogICAgICwgbV93YXNBbHJlYWR5U3RhcnRlZCh3
YXNBbHJlYWR5U3RhcnRlZCkKICAgICAsIG1faGF2ZUZpcmVkTG9hZChmYWxzZSkKKyAgICAsIG1f
cmVtb3ZhbHMoMCkKIHsKICAgICBBU1NFUlQobV9lbGVtZW50KTsKIH0KQEAgLTg3LDYgKzg4LDcg
QEAgdm9pZCBTY3JpcHRFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudChjb25zdCBTdHJpbmcm
IHNvdXJjZVVybCkKIAogdm9pZCBTY3JpcHRFbGVtZW50OjpyZW1vdmVkRnJvbURvY3VtZW50KCkK
IHsKKyAgICArK21fcmVtb3ZhbHM7CiAgICAgLy8gRXZlbnR1YWxseSBzdG9wIGxvYWRpbmcgYW55
IG5vdC15ZXQtZmluaXNoZWQgY29udGVudAogICAgIHN0b3BMb2FkUmVxdWVzdCgpOwogfQpAQCAt
MTQ1LDE5ICsxNDcsMjIgQEAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRKYXZhU2NyaXB0TGFuZ3Vh
Z2UoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkKIAogdm9pZCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0
U2NyaXB0KGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQogewotICAgIERvY3VtZW50KiBkb2N1bWVu
dCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKTsKLQogICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IHdl
J2QgbGlrZSB0byBldmFsdWF0ZSBzY3JpcHRzIHdoaWNoIGFyZSBpbnNlcnRlZCBpbnRvIGEgCiAg
ICAgLy8gdmlld2xlc3MgZG9jdW1lbnQgYnV0IHRoaXMnbGwgZG8gZm9yIG5vdy4KICAgICAvLyBT
ZWUgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcyNwotICAgIGlmICgh
ZG9jdW1lbnQtPmZyYW1lKCkpCisgICAgaWYgKCFtX2VsZW1lbnQtPmRvY3VtZW50KCktPmZyYW1l
KCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIHVuc2lnbmVkIHJlbW92YWxzID0gbV9yZW1vdmFs
czsKICAgICBpZiAoIW1fZWxlbWVudC0+ZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoc291cmNlVXJs
KSkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gSWYgcmVtb3ZlZCBkdXJpbmcgdGhlIGJlZm9y
ZWxvYWQgZXZlbnQsIGRvIG5vdCByZXF1ZXN0IHRoZSBzY3JpcHQuCisgICAgaWYgKG1fcmVtb3Zh
bHMgIT0gcmVtb3ZhbHMpCisgICAgICAgIHJldHVybjsKKwogICAgIEFTU0VSVCghbV9jYWNoZWRT
Y3JpcHQpOwotICAgIG1fY2FjaGVkU2NyaXB0ID0gZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9h
ZGVyKCktPnJlcXVlc3RTY3JpcHQoc291cmNlVXJsLCBzY3JpcHRDaGFyc2V0KCkpOworICAgIG1f
Y2FjaGVkU2NyaXB0ID0gbV9lbGVtZW50LT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRl
cigpLT5yZXF1ZXN0U2NyaXB0KHNvdXJjZVVybCwgc2NyaXB0Q2hhcnNldCgpKTsKICAgICBtX2lz
RXh0ZXJuYWxTY3JpcHQgPSB0cnVlOwogCiAgICAgLy8gbV93YXNJbnNlcnRlZEJ5UGFyc2VyIGlz
IG5ldmVyIHJlc2V0IC0gYWx3YXlzIHJlc2llZCBhdCB0aGUgaW5pdGlhbCB2YWx1ZSBzZXQgd2hp
bGUgcGFyc2luZy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaCBiL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaAppbmRleCAwN2M1OWRiODUxNzk5NjhiYTBhNmNhZTFh
YWJlYmYyZGQ2MGU3YjNkLi44NzljNzc0OGZlZjNhNDI0ZWIzZmY1MmJkYmRkMjE2NTQ0ODU4Mzhm
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9k
b20vU2NyaXB0RWxlbWVudC5oCkBAIC05MCw2ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2lzRXh0ZXJuYWxTY3JpcHQ7CiAgICAgYm9vbCBtX3dhc0FscmVhZHlTdGFydGVkOwogICAgIGJv
b2wgbV9oYXZlRmlyZWRMb2FkOworICAgIHVuc2lnbmVkIG1fcmVtb3ZhbHM7CiB9OwogCiBTY3Jp
cHRFbGVtZW50KiB0b1NjcmlwdEVsZW1lbnQoRWxlbWVudCopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77591</attachid>
            <date>2010-12-28 16:58:36 -0800</date>
            <delta_ts>2010-12-29 12:40:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51067-20101228165835.patch</filename>
            <type>text/plain</type>
            <size>7728</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1NTJiZmNlNWU1ZmJiMmYyNDlhYmUxODJkYmE5NDNlZTI3OGM0N2U0Li4xMGExNzVm
Mjk0YWI3MDhjZDMzMjBiZGE0MmIyOTViYzZhNjUyNDIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMTItMjggIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KKworICAgICAgICBBc3NlcnRpb24gZmFpbHVy
ZTogZWxlbWVudC0+aW5Eb2N1bWVudCgpIGluIEFzeW5jU2NyaXB0UnVubmVyOjpleGVjdXRlU2Ny
aXB0U29vbigpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01MTA2NworCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvbW92ZS1pbi1i
ZWZvcmVsb2FkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNj
cmlwdEVsZW1lbnQvbW92ZS1pbi1iZWZvcmVsb2FkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3JlbW92ZS1pbi1iZWZvcmVsb2FkLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVtb3ZlLWlu
LWJlZm9yZWxvYWQuaHRtbDogQWRkZWQuCisKIDIwMTAtMTItMjggIEtlbm5ldGggUnVzc2VsbCAg
PGtickBnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIENocm9taXVtIHRlc3QgZXhw
ZWN0YXRpb25zIHVwZGF0ZS4gQ29hbGVzY2UgV2ViR0wKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L21vdmUtaW4tYmVmb3JlbG9hZC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9tb3ZlLWluLWJlZm9y
ZWxvYWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmNjU5NTEzZDg2ZjY2YTA1YmNjODRlYTM3
NGUwNDcyZDk4ODE2ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MU2NyaXB0RWxlbWVudC9tb3ZlLWluLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMiBAQAorUEFTUyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNj
cmlwdEVsZW1lbnQvbW92ZS1pbi1iZWZvcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MU2NyaXB0RWxlbWVudC9tb3ZlLWluLWJlZm9yZWxvYWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
N2JlZWQwNmIzODJkZjU0NzUzZmYxYjY2MTlkYzRmNzBmOTU5NTEzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvbW92ZS1pbi1iZWZvcmVs
b2FkLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHkgb25s
b2FkPSJ0ZXN0KCkiPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8aWZyYW1lIHNyYz0icmVz
b3VyY2VzL2ZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworfQorCitmdW5jdGlv
biB0ZXN0KCkKK3sKKyAgICB2YXIgcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIp
OworICAgIHMuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JlbG9hZCIsIGZ1bmN0aW9uKCkgeworICAg
ICAgICB2YXIgcyA9IGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoInNjcmlwdCIpWzJdKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoImlmcmFtZSIpWzBdLmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHMp
OworICAgIH0sIGZhbHNlKTsKKyAgICBzLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rp
b24oKSB7CisgICAgICAgIHRlc3RGYWlsZWQoImVycm9yIGV2ZW50IHNob3VsZCBub3QgZmlyZS4i
KQorICAgIH0sIGZhbHNlKTsKKyAgICBzLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiIik7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgfSwgZmFsc2UpOworICAgIHMuc3JjID0gImV4dGVybmFsLmpzIjsKKyAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHMpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9y
ZW1vdmUtaW4tYmVmb3JlbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MU2NyaXB0RWxlbWVudC9yZW1vdmUtaW4tYmVmb3JlbG9hZC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYWY2NTk1MTNkODZmNjZhMDViY2M4NGVhMzc0ZTA0NzJkOTg4MTZkZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3JlbW92ZS1p
bi1iZWZvcmVsb2FkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1MgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3JlbW92ZS1pbi1i
ZWZvcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9y
ZW1vdmUtaW4tYmVmb3JlbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjMzQwNjAwM2EwMzNiZTM5OTI0
ZjYzMGEwNWQ1ZDQ0ZjEwMGMxOTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9yZW1vdmUtaW4tYmVmb3JlbG9hZC5odG1sCkBAIC0wLDAg
KzEsMzQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworfQorCitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICB2YXIgcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOworICAg
IHMuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JlbG9hZCIsIGZ1bmN0aW9uKCkgeworICAgICAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJz
Y3JpcHQiKVsyXSk7CisgICAgICAgIHRlc3RQYXNzZWQoIiIpOworICAgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICAgIH0sIGZhbHNlKTsKKyAgICBzLmFkZEV2ZW50TGlzdGVuZXIoImVy
cm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIHRlc3RGYWlsZWQoImVycm9yIGV2ZW50IHNob3Vs
ZCBub3QgZmlyZS4iKQorICAgIH0sIGZhbHNlKTsKKyAgICBzLmFkZEV2ZW50TGlzdGVuZXIoImxv
YWQiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgibG9hZCBldmVudCBzaG91bGQg
bm90IGZpcmUuIikKKyAgICB9LCBmYWxzZSk7CisgICAgcy5zcmMgPSAicmVzb3VyY2VzL3Nob3Vs
ZG5vdGV4ZWN1dGUuanMiOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocyk7Cit9Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxTY3JpcHRFbGVtZW50L3Jlc291cmNlcy9mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVzb3VyY2VzL2ZyYW1lLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTM5OTAxOWE2OTA4MmUxOTk1OTkzOTk1YTlhZTdjNGUxYmE3NjAzNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3Jlc291cmNlcy9m
cmFtZS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uLy4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGVjMjc1YmViNTBiOWJlZWRlODRhMDI1YzhmZWJlMDFjZTA0YmU0ZjMuLjRhMzNjZGM1ZmE1Y2Jl
MTU0NjkzMTE3ZTJiM2Y0NGE4MThiZjU1YjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMTItMjggIFRv
bnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIFNlaWRlbC4KKworICAgICAgICBBc3NlcnRpb24gZmFpbHVyZTogZWxlbWVudC0+aW5E
b2N1bWVudCgpIGluIEFzeW5jU2NyaXB0UnVubmVyOjpleGVjdXRlU2NyaXB0U29vbigpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTA2NworCisgICAg
ICAgIFR5cGljYWxseSB3aGVuIGEgc2NyaXB0IGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBk
b2N1bWVudCwgdGhlIGNhY2hlZCBzY3JpcHQKKyAgICAgICAgY2xpZW50IGlzIHJlbW92ZWQuIEhv
d2V2ZXIsIGR1cmluZyB0aGUgYmVmb3JlIGxvYWQgZXZlbnQsIHRoZSBjYWNoZWQgc2NyaXB0IGNs
aWVudAorICAgICAgICBoYXNuJ3QgYmVlbiBjcmVhdGVkIHlldCBzbyBpdCBjYW4ndCBiZSByZW1v
dmVkLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaGFuZGxlcyB0aGF0IGNhc2UgYnkgZXhwbGljaXRs
eSBjaGVja2luZyBpZiB0aGUgc2NyaXB0IGVsZW1lbnQgd2FzCisgICAgICAgIHJlbW92ZWQgZHVy
aW5nIHRoZSBiZWZvcmVsb2FkIGV2ZW50LiBBbHNvLCBpdCBhdm9pZHMgY2FjaGluZyB0aGUgRG9j
dW1lbnQgcmVmZXJlbmNlcworICAgICAgICBvdmVyIHRoZSBhcmJpdHJhcnkgc2NyaXB0IGV4ZWN1
dGlvbiBpbiB0aGUgYmVmb3JlIGxvYWQgZXZlbnQuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20v
SFRNTFNjcmlwdEVsZW1lbnQvbW92ZS1pbi1iZWZvcmVsb2FkLmh0bWwKKyAgICAgICAgICAgICAg
ZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVtb3ZlLWluLWJlZm9yZWxvYWQuaHRtbAorCisg
ICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
RWxlbWVudDo6cmVxdWVzdFNjcmlwdCk6CisKIDIwMTAtMTItMjggIE1pa2hhaWwgTmFnYW5vdiAg
PG1uYWdhbm92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxk
bWFuLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCA3NGYyNTgwMzcyZDRjZjU4ODEwNzk0ZGFjMTA5
NjgzMzA3Y2MzY2I5Li43NDdmN2ExM2IzODMxNzVkODc3NTIyNTczNDdkMGVlNGVjNjU4MjY2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2Rv
bS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMTQ1LDE5ICsxNDUsMjAgQEAgc3RhdGljIGJvb2wgaXNT
dXBwb3J0ZWRKYXZhU2NyaXB0TGFuZ3VhZ2UoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkKIAogdm9p
ZCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0U2NyaXB0KGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQog
ewotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKTsKLQogICAg
IC8vIEZJWE1FOiBFdmVudHVhbGx5IHdlJ2QgbGlrZSB0byBldmFsdWF0ZSBzY3JpcHRzIHdoaWNo
IGFyZSBpbnNlcnRlZCBpbnRvIGEgCiAgICAgLy8gdmlld2xlc3MgZG9jdW1lbnQgYnV0IHRoaXMn
bGwgZG8gZm9yIG5vdy4KICAgICAvLyBTZWUgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTcyNwotICAgIGlmICghZG9jdW1lbnQtPmZyYW1lKCkpCisgICAgaWYgKCFtX2Vs
ZW1lbnQtPmRvY3VtZW50KCktPmZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIFJlZlB0
cjxEb2N1bWVudD4gb3JpZ2luYWxEb2N1bWVudCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKTsKICAg
ICBpZiAoIW1fZWxlbWVudC0+ZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoc291cmNlVXJsKSkKICAg
ICAgICAgcmV0dXJuOworICAgIGlmICghbV9lbGVtZW50LT5pbkRvY3VtZW50KCkgfHwgbV9lbGVt
ZW50LT5kb2N1bWVudCgpICE9IG9yaWdpbmFsRG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKIAog
ICAgIEFTU0VSVCghbV9jYWNoZWRTY3JpcHQpOwotICAgIG1fY2FjaGVkU2NyaXB0ID0gZG9jdW1l
bnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RTY3JpcHQoc291cmNlVXJsLCBzY3Jp
cHRDaGFyc2V0KCkpOworICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9lbGVtZW50LT5kb2N1bWVudCgp
LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0U2NyaXB0KHNvdXJjZVVybCwgc2NyaXB0
Q2hhcnNldCgpKTsKICAgICBtX2lzRXh0ZXJuYWxTY3JpcHQgPSB0cnVlOwogCiAgICAgLy8gbV93
YXNJbnNlcnRlZEJ5UGFyc2VyIGlzIG5ldmVyIHJlc2V0IC0gYWx3YXlzIHJlc2llZCBhdCB0aGUg
aW5pdGlhbCB2YWx1ZSBzZXQgd2hpbGUgcGFyc2luZy4K
</data>

          </attachment>
      

    </bug>

</bugzilla>