<?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>94677</bug_id>
          
          <creation_ts>2012-08-22 01:10:35 -0700</creation_ts>
          <short_desc>http/tests/security/contentSecurityPolicy/register-bypassing-scheme.html fails, triggering an assertion in JSEventListener::jsFunction</short_desc>
          <delta_ts>2012-09-17 02:04:57 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>89440</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Balazs Ankes">bank</reporter>
          <assigned_to name="Mike West">mkwst</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>fmalita</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>mkwst</cc>
    
    <cc>ossy</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>701655</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Ankes">bank</who>
    <bug_when>2012-08-22 01:10:35 -0700</bug_when>
    <thetext>--- /ramdisk/qt-linux-64-release/build/layout-test-results/http/tests/security/contentSecurityPolicy/register-bypassing-scheme-expected.txt 
+++ /ramdisk/qt-linux-64-release/build/layout-test-results/http/tests/security/contentSecurityPolicy/register-bypassing-scheme-actual.txt 
@@ -1,8 +1,4 @@
 CONSOLE MESSAGE: Refused to load the image &apos;http://127.0.0.1:8000/security/resources/abe.png&apos; because it violates the following Content Security Policy directive: &quot;img-src https:&quot;.
 
-ALERT: PASS (1/3)
-ALERT: PASS (2/3)
-CONSOLE MESSAGE: Refused to load the image &apos;http://127.0.0.1:8000/security/resources/abe.png&apos; because it violates the following Content Security Policy directive: &quot;img-src https:&quot;.
-
-ALERT: PASS (3/3)
+FAIL: Timed out waiting for notifyDone to be called
 This test ensures that registering a scheme as bypassing CSP actually bypasses CSP. This test passes if three PASSes are generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701689</commentid>
    <comment_count>1</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-08-22 01:58:49 -0700</bug_when>
    <thetext>On GTK the test always passes in the retry run. Seems there&apos;s a test that&apos;s run before this one that puts the environment into a specific state in which the test then fails.

On QT, in retry, it still fails, but there&apos;s another CSP test run before it[1]:
http/tests/security/contentSecurityPolicy/object-src-url-allowed.html
http/tests/security/contentSecurityPolicy/register-bypassing-scheme.html
...

Perhaps the test runners are not resetting something properly between each test?

[1] - http://build.webkit.org/results/Qt%20Linux%20Release/r126259%20(51094)/retries/tests_run0.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701702</commentid>
    <comment_count>2</comment_count>
    <who name="Balazs Ankes">bank</who>
    <bug_when>2012-08-22 02:18:37 -0700</bug_when>
    <thetext>Skip committed in r126282. Please unskip it with proper fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702342</commentid>
    <comment_count>3</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-08-22 14:19:58 -0700</bug_when>
    <thetext>I can confirm that the test fails on GTK consistently when the test list consists of the two tests mentioned in comment #1. The test then passes when run singly.

The issue when the test times out is that while the error occurs and the error timer is set to dispatch soon, the ImageLoader object gets deleted and aborts the error event firing. As to why or how the preceding test would make this happen, I have no idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718659</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-09-12 13:21:46 -0700</bug_when>
    <thetext>This test now fails on Mac bots too. In debug builds, it fails with an assertion:


Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000bbadbeef

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.WebCore             	0x000000010963d9f9 WebCore::JSEventListener::jsFunction(WebCore::ScriptExecutionContext*) const + 329 (JSEventListener.h:90)
1   com.apple.WebCore             	0x00000001097b5b02 WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext*, WebCore::Event*) + 194 (JSEventListener.cpp:80)
2   com.apple.WebCore             	0x00000001091eca67 WebCore::EventTarget::fireEventListeners(WebCore::Event*, WebCore::EventTargetData*, WTF::Vector&lt;WebCore::RegisteredEventListener, 1ul&gt;&amp;) + 359 (EventTarget.cpp:232)
3   com.apple.WebCore             	0x00000001091ec8c5 WebCore::EventTarget::fireEventListeners(WebCore::Event*) + 325 (EventTarget.cpp:200)
4   com.apple.WebCore             	0x0000000109c9cd4b WebCore::Node::handleLocalEvents(WebCore::Event*) + 155 (Node.cpp:2546)
5   com.apple.WebCore             	0x00000001091bff64 WebCore::EventContext::handleLocalEvents(WebCore::Event*) const + 276 (EventContext.cpp:55)
6   com.apple.WebCore             	0x00000001091c2ab9 WebCore::EventDispatcher::dispatchEventAtTarget(WTF::PassRefPtr&lt;WebCore::Event&gt;) + 89 (EventDispatcher.cpp:309)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718868</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-09-12 16:35:15 -0700</bug_when>
    <thetext>Reproducible with just 

run-webkit-tests -v http/tests/security/contentSecurityPolicy/register-bypassing-scheme.html --repeat-each 20</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718908</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-09-12 17:25:35 -0700</bug_when>
    <thetext>I had a brief look at this. So, there is an error event being fired on HTMLImageElement after its listener&apos;s JavaScript wrapper has been collected.

The code that tells whether it&apos;s OK to garbage collect is isReachableFromDOM() in JSNodeCustom.cpp. It basically looks at hasPendingLoadEvent(), which I think is a misnomer, as it should be covering error, too. The code hasn&apos;t been changed much in months (I think that Adam last touched it in March, to improve the naming).

Mike, does CSP first stop the load, and then post an error event on a timer perhaps? That would let garbage collection perform collection too early.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719041</commentid>
    <comment_count>7</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-12 22:07:03 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; I had a brief look at this. So, there is an error event being fired on HTMLImageElement after its listener&apos;s JavaScript wrapper has been collected.
&gt; 
&gt; The code that tells whether it&apos;s OK to garbage collect is isReachableFromDOM() in JSNodeCustom.cpp. It basically looks at hasPendingLoadEvent(), which I think is a misnomer, as it should be covering error, too. The code hasn&apos;t been changed much in months (I think that Adam last touched it in March, to improve the naming).
&gt; 
&gt; Mike, does CSP first stop the load, and then post an error event on a timer perhaps? That would let garbage collection perform collection too early.

Yes, the load is blocked, and then the error is fired asynchronously.

I&apos;ll take a look at this issue today. Would a synchronous event trigger be acceptable? If not, perhaps I can adjust the isReachableFromDOM method to understand that an element has waiting events?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719209</commentid>
    <comment_count>8</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-13 01:26:37 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; I&apos;ll take a look at this issue today. Would a synchronous event trigger be acceptable? If not, perhaps I can adjust the isReachableFromDOM method to understand that an element has waiting events?

Now that I&apos;m looking at the code, the former option is stupid. :) I&apos;ll adjust hasPendingLoadEvent to check the error event sender as well. That looks straightforward.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719252</commentid>
    <comment_count>9</comment_count>
      <attachid>163819</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-13 02:09:01 -0700</bug_when>
    <thetext>Created attachment 163819
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719253</commentid>
    <comment_count>10</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-13 02:09:44 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Created an attachment (id=163819) [details]
&gt; Patch

Jochen, perhaps you could take a look at this before California wakes up? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719352</commentid>
    <comment_count>11</comment_count>
      <attachid>163843</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-13 05:08:16 -0700</bug_when>
    <thetext>Created attachment 163843
Unskipping crashing test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719420</commentid>
    <comment_count>12</comment_count>
      <attachid>163843</attachid>
    <who name="">jochen</who>
    <bug_when>2012-09-13 07:00:49 -0700</bug_when>
    <thetext>Comment on attachment 163843
Unskipping crashing test.

This looks correct.

Let&apos;s wait whether Alexey and Adam agree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719537</commentid>
    <comment_count>13</comment_count>
      <attachid>163843</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-09-13 08:36:06 -0700</bug_when>
    <thetext>Comment on attachment 163843
Unskipping crashing test.

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

Looks reasonable to me. I&apos;d like to wait for Adam&apos;s comments, because (1) he was the last one to meaningfully update this code in March, and (2) his recent patch is blamed for this assertion firing elsewhere, mysteriously to me (see bug 93654).

&gt; Source/WebCore/ChangeLog:9
&gt; +        element before reclaiming it&apos;s memory. It&apos;s not, however, checking that

First &quot;it&apos;s&quot; should be &quot;its&quot;.

&gt; Source/WebCore/ChangeLog:20
&gt; +        This new behavior is covered by existing tests. In particular,
&gt; +        http/tests/security/contentSecurityPolicy/register-bypassing-scheme.html
&gt; +        should no longer crash.

The existing tests only catch this once in multiple runs, it would be good to have a test that hits the issue reliably.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719545</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-13 08:43:15 -0700</bug_when>
    <thetext>&gt; The existing tests only catch this once in multiple runs, it would be good to have a test that hits the issue reliably.

You might be able to do that by explicitly calling gc() at an opportune time.  There&apos;s a gc.js script somewhere in LayoutTests that makes this easy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719548</commentid>
    <comment_count>15</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-13 08:45:13 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; You might be able to do that by explicitly calling gc() at an opportune time.  There&apos;s a gc.js script somewhere in LayoutTests that makes this easy.

FYI, fast/js/resources/js-test-pre.js has gc().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719571</commentid>
    <comment_count>16</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-13 09:10:16 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; You might be able to do that by explicitly calling gc() at an opportune time.  There&apos;s a gc.js script somewhere in LayoutTests that makes this easy.
&gt; 
&gt; FYI, fast/js/resources/js-test-pre.js has gc().

Thanks all. I&apos;ll see what I can do about reproducing the crash every time. That will be a nice change of pace from ensuring that crashes never reproduce. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719720</commentid>
    <comment_count>17</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-13 11:34:05 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Reproducible with just 
&gt; 
&gt; run-webkit-tests -v http/tests/security/contentSecurityPolicy/register-bypassing-scheme.html --repeat-each 20

I&apos;m having issues reproducing this locally, with or without gc(). Alexey, you were reproducing it on the plain old mac port, right? Release or debug build? Nothing else interesting about the config?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719739</commentid>
    <comment_count>18</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-13 11:47:48 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #5)
&gt; &gt; Reproducible with just 
&gt; &gt; 
&gt; &gt; run-webkit-tests -v http/tests/security/contentSecurityPolicy/register-bypassing-scheme.html --repeat-each 20
&gt; 
&gt; I&apos;m having issues reproducing this locally, with or without gc(). Alexey, you were reproducing it on the plain old mac port, right? Release or debug build? Nothing else interesting about the config?

Ah. Amusing. I couldn&apos;t reproduce because I had this patch applied. :)

I&apos;ll upload a new patch in a moment that GC&apos;s the heck out of register-bypassing-scheme.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719744</commentid>
    <comment_count>19</comment_count>
      <attachid>163924</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-13 11:54:26 -0700</bug_when>
    <thetext>Created attachment 163924
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719747</commentid>
    <comment_count>20</comment_count>
      <attachid>163926</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-13 11:58:57 -0700</bug_when>
    <thetext>Created attachment 163926
it&apos;s -&gt; its</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719748</commentid>
    <comment_count>21</comment_count>
      <attachid>163924</attachid>
    <who name="">jochen</who>
    <bug_when>2012-09-13 11:59:16 -0700</bug_when>
    <thetext>Comment on attachment 163924
Patch

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

&gt; LayoutTests/http/tests/security/contentSecurityPolicy/img-blocked-no-gc-crash.html:6
&gt; +    // Copied from fast/js/resources/js-test-pre.js, which isn&apos;t available via HTTP.

it&apos;s in http://127.0.0.1:8000/resources/js-test-pre.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719772</commentid>
    <comment_count>22</comment_count>
      <attachid>163932</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-13 12:17:24 -0700</bug_when>
    <thetext>Created attachment 163932
Jochen&apos;s feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719785</commentid>
    <comment_count>23</comment_count>
      <attachid>163932</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-13 12:22:53 -0700</bug_when>
    <thetext>Comment on attachment 163932
Jochen&apos;s feedback.

Cool. Adam, Alexey, CQ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719807</commentid>
    <comment_count>24</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-09-13 12:47:40 -0700</bug_when>
    <thetext>I can&apos;t easily wrap my head around the existing nonsense code. Adam?

One thing that I&apos;m not entirely sure about is regular failing loads. Why are we not seeing this assertion failure when image load fails because of a 404 or a network issue? Is CSP different in some way - or perhaps this could be reproduced with a regular failing load, and we just horribly lack in test coverage?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720000</commentid>
    <comment_count>25</comment_count>
      <attachid>163932</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-13 15:11:17 -0700</bug_when>
    <thetext>Comment on attachment 163932
Jochen&apos;s feedback.

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

&gt; LayoutTests/http/tests/security/contentSecurityPolicy/img-blocked-no-gc-crash.html:21
&gt; +        setTimeout(gc, 0);

Doesn&apos;t this race with the image loads?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720002</commentid>
    <comment_count>26</comment_count>
      <attachid>163932</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-13 15:13:45 -0700</bug_when>
    <thetext>Comment on attachment 163932
Jochen&apos;s feedback.

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

&gt;&gt; LayoutTests/http/tests/security/contentSecurityPolicy/img-blocked-no-gc-crash.html:21
&gt;&gt; +        setTimeout(gc, 0);
&gt; 
&gt; Doesn&apos;t this race with the image loads?

One solution is to kick off the load in a separate function and then call gc() after returning from that function.  The events should then be delivered asynchronously.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720015</commentid>
    <comment_count>27</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-13 15:20:23 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (From update of attachment 163932 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=163932&amp;action=review
&gt; 
&gt; &gt;&gt; LayoutTests/http/tests/security/contentSecurityPolicy/img-blocked-no-gc-crash.html:21
&gt; &gt;&gt; +        setTimeout(gc, 0);
&gt; &gt; 
&gt; &gt; Doesn&apos;t this race with the image loads?
&gt; 
&gt; One solution is to kick off the load in a separate function and then call gc() after returning from that function.  The events should then be delivered asynchronously.

Something like this?
    
    (function x() { img.src = &quot;whatever&quot;; })();
    gc();

I somehow thought that&apos;s more or less what the setTimeout(..., 0) was doing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720082</commentid>
    <comment_count>28</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-13 16:12:25 -0700</bug_when>
    <thetext>&gt; Something like this?
&gt; 
&gt;     (function x() { img.src = &quot;whatever&quot;; })();
&gt;     gc();

Yes.  (Note the &quot;x&quot; isn&apos;t needed.)

&gt; I somehow thought that&apos;s more or less what the setTimeout(..., 0) was doing.

It is similar, but the difference is that in the setTimeout approach, you don&apos;t know when the gc will actually run.  It gets scheduled on the event loop, but it might happen before or after the load and/or error tests happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720332</commentid>
    <comment_count>29</comment_count>
      <attachid>164052</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-13 22:57:13 -0700</bug_when>
    <thetext>Created attachment 164052
Function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720333</commentid>
    <comment_count>30</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-13 22:58:06 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; &gt; Something like this?
&gt; &gt; 
&gt; &gt;     (function x() { img.src = &quot;whatever&quot;; })();
&gt; &gt;     gc();
&gt; 
&gt; Yes.  (Note the &quot;x&quot; isn&apos;t needed.)
&gt; 
&gt; &gt; I somehow thought that&apos;s more or less what the setTimeout(..., 0) was doing.
&gt; 
&gt; It is similar, but the difference is that in the setTimeout approach, you don&apos;t know when the gc will actually run.  It gets scheduled on the event loop, but it might happen before or after the load and/or error tests happen.

Thanks for the explanation.  That makes sense. The newly attached patch implements the suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720394</commentid>
    <comment_count>31</comment_count>
      <attachid>164052</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-14 00:17:32 -0700</bug_when>
    <thetext>Comment on attachment 164052
Function.

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

&gt; LayoutTests/http/tests/security/contentSecurityPolicy/img-blocked-no-gc-crash.html:21
&gt; +        var img = document.createElement(&apos;img&apos;);
&gt; +        img.onload = function () {
&gt; +            alert(&apos;FAIL (1/1)&apos;);
&gt; +            finishTesting();
&gt; +        };
&gt; +        img.onerror = function () {
&gt; +            alert(&apos;PASS (1/1)&apos;);
&gt; +            finishTesting();
&gt; +        };
&gt; +        (function () { img.src = &quot;../resources/abe.png&quot;; })();
&gt; +        gc();

This won&apos;t work quite right.  You need to put all references to img inside the function so that img will be garbage by the time you call gc().  Does this test successfully replicate the failure?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720427</commentid>
    <comment_count>32</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-14 01:22:24 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; I can&apos;t easily wrap my head around the existing nonsense code. Adam?
&gt; 
&gt; One thing that I&apos;m not entirely sure about is regular failing loads. Why are we not seeing this assertion failure when image load fails because of a 404 or a network issue? Is CSP different in some way - or perhaps this could be reproduced with a regular failing load, and we just horribly lack in test coverage?

On IRC, Jochen proposed that we add at least one more test to this patch to check this case. I&apos;ll take care of that sometime in the vaguely near future, along with Adam&apos;s note from below.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720983</commentid>
    <comment_count>33</comment_count>
      <attachid>164198</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-14 11:33:24 -0700</bug_when>
    <thetext>Created attachment 164198
Hrm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720984</commentid>
    <comment_count>34</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-14 11:34:35 -0700</bug_when>
    <thetext>(In reply to comment #32)

&gt; On IRC, Jochen proposed that we add at least one more test to this patch to check this case. I&apos;ll take care of that sometime in the vaguely near future, along with Adam&apos;s note from below.

I&apos;ve added a test similar to what I&apos;d talked about with Jochen, but I couldn&apos;t get it to crash, with or without the patch. That&apos;s good, I suppose! Or, it&apos;s proof that I misunderstood Jochen&apos;s suggestion.

Mind taking a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721073</commentid>
    <comment_count>35</comment_count>
      <attachid>164198</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-14 13:13:18 -0700</bug_when>
    <thetext>Comment on attachment 164198
Hrm.

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

&gt; LayoutTests/http/tests/security/contentSecurityPolicy/img-blocked-no-gc-crash.html:27
&gt; +        if (window.testRunner) {

No need for { } in this if</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721074</commentid>
    <comment_count>36</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-14 13:14:06 -0700</bug_when>
    <thetext>Interesting.  I&apos;m inclined to say we should land this patch with the extra test.  @jochen: What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721118</commentid>
    <comment_count>37</comment_count>
      <attachid>164223</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-14 14:11:07 -0700</bug_when>
    <thetext>Created attachment 164223
Fewer curly bits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721121</commentid>
    <comment_count>38</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-14 14:12:11 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; Interesting.  I&apos;m inclined to say we should land this patch with the extra test.  @jochen: What do you think?

Cool. Uploaded a final(?) patch without the superfluous braces. If you&apos;re happy with the test Jochen, CQ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721759</commentid>
    <comment_count>39</comment_count>
      <attachid>164223</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-17 02:04:50 -0700</bug_when>
    <thetext>Comment on attachment 164223
Fewer curly bits.

Clearing flags on attachment: 164223

Committed r128730: &lt;http://trac.webkit.org/changeset/128730&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721760</commentid>
    <comment_count>40</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-17 02:04:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163819</attachid>
            <date>2012-09-13 02:09:01 -0700</date>
            <delta_ts>2012-09-13 05:08:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94677-20120913110833.patch</filename>
            <type>text/plain</type>
            <size>5071</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGZhMTk3YmUwNTU1OTk2
ODQ1OTNlMmExODZjMWZkMzg1ZjA4YzZkNS4uMTk5ZGY4MjQ0MDIwOThiMWU0NzQ0MGUwYjhkODI5
NDliODBjYzJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA5LTEzICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRG9uJ3QgR0MgaW1nIGVsZW1l
bnRzIGJsb2NrZWQgYnkgQ1NQIHVudGlsIGVycm9yIGV2ZW50cyBmaXJlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ2NzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHksIHRoZSBHQyBjaGVj
a3MgdGhhdCBubyBsb2FkIGV2ZW50cyBhcmUgcGVuZGluZyBmb3IgYW4gaW1hZ2UKKyAgICAgICAg
ZWxlbWVudCBiZWZvcmUgcmVjbGFpbWluZyBpdCdzIG1lbW9yeS4gSXQncyBub3QsIGhvd2V2ZXIs
IGNoZWNraW5nIHRoYXQKKyAgICAgICAgZXJyb3IgZXZlbnRzIGFyZSB0YWtlbiBjYXJlIG9mLiBU
aGlzIGxlYWRzIHRvIHRoZSBwb3RlbnRpYWwgb2YgZmlyaW5nIGFuCisgICAgICAgIGV2ZW50IG9u
IGEgRE9NIGVsZW1lbnQgdGhhdCB3ZSd2ZSBhbHJlYWR5IGNvbGxlY3RlZC4gVGhhdCdzIGEgQmFk
IFRoaW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRqdXN0cyB0aGUgY2hlY2sgdG8gY2F0Y2gg
ZXJyb3IgZXZlbnRzIGFzIHdlbGwgYXMgbG9hZAorICAgICAgICBldmVudHMsIHdoaWNoIHNob3Vs
ZCBlbnN1cmUgdGhhdCB0aGUgZWxlbWVudCBpc24ndCBjb2xsZWN0ZWQgdW50aWwgaXQncworICAg
ICAgICByZWFsbHkgcmVhZHkuIEFzIGEgZHJpdmUtYnksIGl0IGFsc28gY2hhbmdlcyB0aGUgbmFt
ZSBvZiB0aGUgY2hlY2sgdG8KKyAgICAgICAgJ2hhc1BlbmRpbmdBY3Rpdml0eScgZnJvbSAnaGFz
UGVuZGluZ0xvYWRFdmVudCcgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgVGhpcyBuZXcgYmVoYXZp
b3IgaXMgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4gSW4gcGFydGljdWxhciwKKyAgICAgICAg
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVnaXN0ZXItYnlwYXNz
aW5nLXNjaGVtZS5odG1sCisgICAgICAgIHNob3VsZCBubyBsb25nZXIgY3Jhc2guCisKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
YWxjdWxhdGVHcm91cElkKToKKyAgICAgICAgICAgIFN3aXRjaCB0byB1c2luZyBJbWFnZUxvYWRl
cjo6aGFzUGVuZGluZ0FjdGl2aXR5KCkuCisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpoYXNQZW5kaW5nQWN0aXZp
dHkpOgorICAgICAgICAgICAgU3dpdGNoIHRvIHVzaW5nIEltYWdlTG9hZGVyOjpoYXNQZW5kaW5n
QWN0aXZpdHkoKS4KKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlTG9hZGVyOjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAgICAgQWRk
ZWQgYSBjaGVjayBhZ2FpbnN0IHBlbmRpbmcgZXJyb3IgZXZlbnRzIGluIG9yZGVyIHRvIGVuc3Vy
ZSB0aGF0CisgICAgICAgICAgICBlbGVtZW50cyBhcmVuJ3QgZ2FyYmFnZSBjb2xsZWN0ZWQgcHJl
bWF0dXJlbHkuIEFzbG8gcmVuYW1lZCBmcm9tCisgICAgICAgICAgICBJbWFnZUxvYWRlcjo6aGFz
UGVuZGluZ0xvYWRFdmVudCBmb3IgY2xhcml0eS4KKyAgICAgICAgKiBzdmcvU1ZHSW1hZ2VFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlRWxlbWVudDo6aGF2ZUxvYWRlZFJl
cXVpcmVkUmVzb3VyY2VzKToKKyAgICAgICAgICAgIFN3aXRjaCB0byB1c2luZyBJbWFnZUxvYWRl
cjo6aGFzUGVuZGluZ0FjdGl2aXR5KCkuCisKIDIwMTItMDktMTIgIElseWEgVGlraG9ub3Zza3kg
IDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5NSTogbWln
cmF0ZSBjb3JlIGluc3RydW1lbnRhdGlvbiBjb2RlIHRvIFdURiBuYW1lc3BhY2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcAppbmRleCA1ODc3MTFmMGM0
ZWQ3ZGViZjg1ZTk4NDYwYWFjNDUyNmYyYjQ5ZmEwLi5mM2UyMTc5OTNhMjRiZjcyZjdkNGRlOTk1
MTA2ZThhZjU1Mzg0YjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OEdDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0Nv
bnRyb2xsZXIuY3BwCkBAIC0yNDEsNyArMjQxLDcgQEAgdHlwZWRlZiBWZWN0b3I8R3JvdXBlckl0
ZW0+IEdyb3VwZXJMaXN0OwogLy8gZWxlbWVudCBvZiB0aGUgdHJlZSB0byB3aGljaCBpdCBiZWxv
bmdzLgogc3RhdGljIEdyb3VwSWQgY2FsY3VsYXRlR3JvdXBJZChOb2RlKiBub2RlKQogewotICAg
IGlmIChub2RlLT5pbkRvY3VtZW50KCkgfHwgKG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpp
bWdUYWcpICYmIHN0YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1lbnQqPihub2RlKS0+aGFzUGVuZGlu
Z0xvYWRFdmVudCgpKSkKKyAgICBpZiAobm9kZS0+aW5Eb2N1bWVudCgpIHx8IChub2RlLT5oYXNU
YWdOYW1lKEhUTUxOYW1lczo6aW1nVGFnKSAmJiBzdGF0aWNfY2FzdDxIVE1MSW1hZ2VFbGVtZW50
Kj4obm9kZSktPmhhc1BlbmRpbmdBY3Rpdml0eSgpKSkKICAgICAgICAgcmV0dXJuIEdyb3VwSWQo
bm9kZS0+ZG9jdW1lbnQoKSk7CiAKICAgICBOb2RlKiByb290ID0gbm9kZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKaW5kZXggNDY1N2Q3Y2Q1YmExZjgzYjBkOTcwOGVlZTBl
MjhkZjJmNzBjZGFjZC4uZDJkMTFiOGViZTIzZTc2Mjk2NTE2NzY4ZmQ3N2RiNDk1NWQxODdlYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKQEAgLTgzLDkgKzgzLDcgQEAg
cHVibGljOgogCiAgICAgYm9vbCBjb21wbGV0ZSgpIGNvbnN0OwogCi0gICAgLy8gRklYTUU6IFdo
eSBkbyB3ZSBoYXZlIHR3byBuYW1lcyBmb3IgdGhlIHNhbWUgdGhpbmc/Ci0gICAgYm9vbCBoYXNQ
ZW5kaW5nTG9hZEV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZUxvYWRlci5oYXNQZW5kaW5n
TG9hZEV2ZW50KCk7IH0KLSAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IHsgcmV0
dXJuIG1faW1hZ2VMb2FkZXIuaGFzUGVuZGluZ0xvYWRFdmVudCgpOyB9CisgICAgYm9vbCBoYXNQ
ZW5kaW5nQWN0aXZpdHkoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlTG9hZGVyLmhhc1BlbmRpbmdB
Y3Rpdml0eSgpOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ29udGFpblJhbmdlRW5kUG9pbnQo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvSW1hZ2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5o
CmluZGV4IDc5NmQ3MTgwMmFiZDcxNDdhZmFlNTNkMmYwNDQ2MzU5MGQxMjlhMmYuLjkxMDc0NDQx
NmU5NzNhY2RjNWNiM2M4NWIwN2YwZTNlOTEzZDZiOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9JbWFnZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFn
ZUxvYWRlci5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExvYWRNYW51
YWxseShib29sIGxvYWRNYW51YWxseSkgeyBtX2xvYWRNYW51YWxseSA9IGxvYWRNYW51YWxseTsg
fQogCiAgICAgYm9vbCBoYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KCkgY29uc3QgeyByZXR1cm4g
bV9oYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50OyB9Ci0gICAgYm9vbCBoYXNQZW5kaW5nTG9hZEV2
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNQZW5kaW5nTG9hZEV2ZW50OyB9CisgICAgYm9vbCBo
YXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCB7IHJldHVybiBtX2hhc1BlbmRpbmdMb2FkRXZlbnQg
fHwgbV9oYXNQZW5kaW5nRXJyb3JFdmVudDsgfQogCiAgICAgdm9pZCBkaXNwYXRjaFBlbmRpbmdF
dmVudChJbWFnZUV2ZW50U2VuZGVyKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVu
dC5jcHAKaW5kZXggNTU1OGQxMDIzZmRmODBiOTRmYTRmZDM2MjE2MGMyZjhiY2UxMTdjZi4uMzc2
ODFmM2M0NzMzZmUyZThlMTgxNDQyNzAwZjQ3ZmNkNDA3Zjk1NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ltYWdlRWxlbWVudC5jcHAKQEAgLTE5Niw3ICsxOTYsNyBAQCBSZW5kZXJPYmplY3QqIFNW
R0ltYWdlRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJT
dHlsZSopCiAKIGJvb2wgU1ZHSW1hZ2VFbGVtZW50OjpoYXZlTG9hZGVkUmVxdWlyZWRSZXNvdXJj
ZXMoKQogewotICAgIHJldHVybiAhZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEJhc2VWYWx1ZSgp
IHx8ICFtX2ltYWdlTG9hZGVyLmhhc1BlbmRpbmdMb2FkRXZlbnQoKTsKKyAgICByZXR1cm4gIWV4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRCYXNlVmFsdWUoKSB8fCAhbV9pbWFnZUxvYWRlci5oYXNQ
ZW5kaW5nQWN0aXZpdHkoKTsKIH0KIAogdm9pZCBTVkdJbWFnZUVsZW1lbnQ6OmF0dGFjaCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163843</attachid>
            <date>2012-09-13 05:08:16 -0700</date>
            <delta_ts>2012-09-13 11:54:20 -0700</delta_ts>
            <desc>Unskipping crashing test.</desc>
            <filename>bug-94677-20120913140748.patch</filename>
            <type>text/plain</type>
            <size>7423</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NDQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmRmY2YwZTBjNTY4YmRl
ZTZkZDIzMTA0MjljNGY2YzhmNGYyZDAzYy4uYzllOGEzMTRlMzYzMTlkZDUzOWI1ODc0OGZmZGU0
NDA3NmU3ZGY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA5LTEzICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRG9uJ3QgR0MgaW1nIGVsZW1l
bnRzIGJsb2NrZWQgYnkgQ1NQIHVudGlsIGVycm9yIGV2ZW50cyBmaXJlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ2NzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHksIHRoZSBHQyBjaGVj
a3MgdGhhdCBubyBsb2FkIGV2ZW50cyBhcmUgcGVuZGluZyBmb3IgYW4gaW1hZ2UKKyAgICAgICAg
ZWxlbWVudCBiZWZvcmUgcmVjbGFpbWluZyBpdCdzIG1lbW9yeS4gSXQncyBub3QsIGhvd2V2ZXIs
IGNoZWNraW5nIHRoYXQKKyAgICAgICAgZXJyb3IgZXZlbnRzIGFyZSB0YWtlbiBjYXJlIG9mLiBU
aGlzIGxlYWRzIHRvIHRoZSBwb3RlbnRpYWwgb2YgZmlyaW5nIGFuCisgICAgICAgIGV2ZW50IG9u
IGEgRE9NIGVsZW1lbnQgdGhhdCB3ZSd2ZSBhbHJlYWR5IGNvbGxlY3RlZC4gVGhhdCdzIGEgQmFk
IFRoaW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRqdXN0cyB0aGUgY2hlY2sgdG8gY2F0Y2gg
ZXJyb3IgZXZlbnRzIGFzIHdlbGwgYXMgbG9hZAorICAgICAgICBldmVudHMsIHdoaWNoIHNob3Vs
ZCBlbnN1cmUgdGhhdCB0aGUgZWxlbWVudCBpc24ndCBjb2xsZWN0ZWQgdW50aWwgaXQncworICAg
ICAgICByZWFsbHkgcmVhZHkuIEFzIGEgZHJpdmUtYnksIGl0IGFsc28gY2hhbmdlcyB0aGUgbmFt
ZSBvZiB0aGUgY2hlY2sgdG8KKyAgICAgICAgJ2hhc1BlbmRpbmdBY3Rpdml0eScgZnJvbSAnaGFz
UGVuZGluZ0xvYWRFdmVudCcgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgVGhpcyBuZXcgYmVoYXZp
b3IgaXMgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4gSW4gcGFydGljdWxhciwKKyAgICAgICAg
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVnaXN0ZXItYnlwYXNz
aW5nLXNjaGVtZS5odG1sCisgICAgICAgIHNob3VsZCBubyBsb25nZXIgY3Jhc2guCisKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
YWxjdWxhdGVHcm91cElkKToKKyAgICAgICAgICAgIFN3aXRjaCB0byB1c2luZyBJbWFnZUxvYWRl
cjo6aGFzUGVuZGluZ0FjdGl2aXR5KCkuCisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpoYXNQZW5kaW5nQWN0aXZp
dHkpOgorICAgICAgICAgICAgU3dpdGNoIHRvIHVzaW5nIEltYWdlTG9hZGVyOjpoYXNQZW5kaW5n
QWN0aXZpdHkoKS4KKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlTG9hZGVyOjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAgICAgQWRk
ZWQgYSBjaGVjayBhZ2FpbnN0IHBlbmRpbmcgZXJyb3IgZXZlbnRzIGluIG9yZGVyIHRvIGVuc3Vy
ZSB0aGF0CisgICAgICAgICAgICBlbGVtZW50cyBhcmVuJ3QgZ2FyYmFnZSBjb2xsZWN0ZWQgcHJl
bWF0dXJlbHkuIEFzbG8gcmVuYW1lZCBmcm9tCisgICAgICAgICAgICBJbWFnZUxvYWRlcjo6aGFz
UGVuZGluZ0xvYWRFdmVudCBmb3IgY2xhcml0eS4KKyAgICAgICAgKiBzdmcvU1ZHSW1hZ2VFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlRWxlbWVudDo6aGF2ZUxvYWRlZFJl
cXVpcmVkUmVzb3VyY2VzKToKKyAgICAgICAgICAgIFN3aXRjaCB0byB1c2luZyBJbWFnZUxvYWRl
cjo6aGFzUGVuZGluZ0FjdGl2aXR5KCkuCisKIDIwMTItMDktMTMgIEtlbnQgVGFtdXJhICA8dGtl
bnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVwZGF0ZSBiaW5kaW5nIHRlc3QgZXhwZWN0YXRp
b24gZm9yIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEyODQwMApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCmluZGV4IDU4NzcxMWYwYzRl
ZDdkZWJmODVlOTg0NjBhYWM0NTI2ZjJiNDlmYTAuLmYzZTIxNzk5M2EyNGJmNzJmN2Q0ZGU5OTUx
MDZlOGFmNTUzODRiOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
R0NDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29u
dHJvbGxlci5jcHAKQEAgLTI0MSw3ICsyNDEsNyBAQCB0eXBlZGVmIFZlY3RvcjxHcm91cGVySXRl
bT4gR3JvdXBlckxpc3Q7CiAvLyBlbGVtZW50IG9mIHRoZSB0cmVlIHRvIHdoaWNoIGl0IGJlbG9u
Z3MuCiBzdGF0aWMgR3JvdXBJZCBjYWxjdWxhdGVHcm91cElkKE5vZGUqIG5vZGUpCiB7Ci0gICAg
aWYgKG5vZGUtPmluRG9jdW1lbnQoKSB8fCAobm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6Omlt
Z1RhZykgJiYgc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KG5vZGUpLT5oYXNQZW5kaW5n
TG9hZEV2ZW50KCkpKQorICAgIGlmIChub2RlLT5pbkRvY3VtZW50KCkgfHwgKG5vZGUtPmhhc1Rh
Z05hbWUoSFRNTE5hbWVzOjppbWdUYWcpICYmIHN0YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1lbnQq
Pihub2RlKS0+aGFzUGVuZGluZ0FjdGl2aXR5KCkpKQogICAgICAgICByZXR1cm4gR3JvdXBJZChu
b2RlLT5kb2N1bWVudCgpKTsKIAogICAgIE5vZGUqIHJvb3QgPSBub2RlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbWFnZUVsZW1lbnQuaAppbmRleCA0NjU3ZDdjZDViYTFmODNiMGQ5NzA4ZWVlMGUy
OGRmMmY3MGNkYWNkLi5kMmQxMWI4ZWJlMjNlNzYyOTY1MTY3NjhmZDc3ZGI0OTU1ZDE4N2ViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaApAQCAtODMsOSArODMsNyBAQCBw
dWJsaWM6CiAKICAgICBib29sIGNvbXBsZXRlKCkgY29uc3Q7CiAKLSAgICAvLyBGSVhNRTogV2h5
IGRvIHdlIGhhdmUgdHdvIG5hbWVzIGZvciB0aGUgc2FtZSB0aGluZz8KLSAgICBib29sIGhhc1Bl
bmRpbmdMb2FkRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlTG9hZGVyLmhhc1BlbmRpbmdM
b2FkRXZlbnQoKTsgfQotICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgeyByZXR1
cm4gbV9pbWFnZUxvYWRlci5oYXNQZW5kaW5nTG9hZEV2ZW50KCk7IH0KKyAgICBib29sIGhhc1Bl
bmRpbmdBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VMb2FkZXIuaGFzUGVuZGluZ0Fj
dGl2aXR5KCk7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9JbWFnZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmgK
aW5kZXggNzk2ZDcxODAyYWJkNzE0N2FmYWU1M2QyZjA0NDYzNTkwZDEyOWEyZi4uOTEwNzQ0NDE2
ZTk3M2FjZGM1Y2IzYzg1YjA3ZjBlM2U5MTNkNmI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ltYWdlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdl
TG9hZGVyLmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TG9hZE1hbnVh
bGx5KGJvb2wgbG9hZE1hbnVhbGx5KSB7IG1fbG9hZE1hbnVhbGx5ID0gbG9hZE1hbnVhbGx5OyB9
CiAKICAgICBib29sIGhhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQoKSBjb25zdCB7IHJldHVybiBt
X2hhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQ7IH0KLSAgICBib29sIGhhc1BlbmRpbmdMb2FkRXZl
bnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1BlbmRpbmdMb2FkRXZlbnQ7IH0KKyAgICBib29sIGhh
c1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUGVuZGluZ0xvYWRFdmVudCB8
fCBtX2hhc1BlbmRpbmdFcnJvckV2ZW50OyB9CiAKICAgICB2b2lkIGRpc3BhdGNoUGVuZGluZ0V2
ZW50KEltYWdlRXZlbnRTZW5kZXIqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50
LmNwcAppbmRleCA1NTU4ZDEwMjNmZGY4MGI5NGZhNGZkMzYyMTYwYzJmOGJjZTExN2NmLi4zNzY4
MWYzYzQ3MzNmZTJlOGUxODE0NDI3MDBmNDdmY2Q0MDdmOTU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHSW1hZ2VFbGVtZW50LmNwcApAQCAtMTk2LDcgKzE5Niw3IEBAIFJlbmRlck9iamVjdCogU1ZH
SW1hZ2VFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0
eWxlKikKIAogYm9vbCBTVkdJbWFnZUVsZW1lbnQ6OmhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNl
cygpCiB7Ci0gICAgcmV0dXJuICFleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQmFzZVZhbHVlKCkg
fHwgIW1faW1hZ2VMb2FkZXIuaGFzUGVuZGluZ0xvYWRFdmVudCgpOworICAgIHJldHVybiAhZXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEJhc2VWYWx1ZSgpIHx8ICFtX2ltYWdlTG9hZGVyLmhhc1Bl
bmRpbmdBY3Rpdml0eSgpOwogfQogCiB2b2lkIFNWR0ltYWdlRWxlbWVudDo6YXR0YWNoKCkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA1ODk0OTRjYWYxNzliYzI0MTg3ZTUxYTg3ZDczZGMxMjY5NzY0Y2JhLi45NGViMThmNTRm
NjZkNjcwOTgzMTcxMDdmNzcwMTgzY2Y5YjhlOWE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTItMDktMTMgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKworICAgICAgICBEb24n
dCBHQyBpbWcgZWxlbWVudHMgYmxvY2tlZCBieSBDU1AgdW50aWwgZXJyb3IgZXZlbnRzIGZpcmUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDY3Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoK
KyAgICAgICAgICAgIFVuc2tpcHBpbmcgbm8tbG9uZ2VyLWNyYXNoaW5nIHRlc3QuCisKIDIwMTIt
MDktMTMgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBb
UXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCAwMjIzNjY2YjYyZjU3YWJjZjY5N2I2Nzk2MmM3YWRjYjFkYjcyZjcy
Li5iZDBjNjQ2YmQ1ZjA1NDVmOTYxZGI2MTNhNTE1ZWZhYjRhNzZiZjBkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjQwLDggKzY0MCw2IEBAIEJVR1dL
NjExMTggOiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJlc3RyaWN0aW9ucy5odG1sID0gVElNRU9V
VAogCiBCVUdXSzg1NzAwIDogZnVsbHNjcmVlbi9ub24tYW5jZXN0b3ItaWZyYW1lLmh0bWwgPSBU
SU1FT1VUCiAKLUJVR1dLOTQ2NzcgOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9yZWdpc3Rlci1ieXBhc3Npbmctc2NoZW1lLmh0bWwgPSBUSU1FT1VUCi0KIEJVR1dL
OTU1MzAgOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2luYWN0aXZlLWRvY3VtZW50LXdpdGgtZW1wdHkt
c2VjdXJpdHktb3JpZ2luLmh0bWwgPSBUSU1FT1VUCiAKIEJVR1dLNzI2OTggOiBtZWRpYS9hdWRp
by1nYXJiYWdlLWNvbGxlY3QuaHRtbCA9IFRJTUVPVVQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmlu
ZGV4IGRlNWNmOTU3MjVlNTdmYzk1ODY1MGRlY2QxMjc3M2IzMWY1ZDNkYjQuLmVjZDczOGU4Zjhj
Njc3MjY1YzM0NjAxMWUxODhiOTZlODYxNmE5NTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApA
QCAtNzc5LDEwICs3NzksNiBAQCBodHRwL3Rlc3RzL2Nvb2tpZXMvanMtZ2V0LWFuZC1zZXQtaHR0
cC1vbmx5LWNvb2tpZS5odG1sCiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmln
YXRpb24tdGltaW5nL2h0bWwvdGVzdF9wZXJmb3JtYW5jZV9hdHRyaWJ1dGVzX2V4aXN0X2luX29i
amVjdC5odG1sCiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGlt
aW5nL2h0bWwvdGVzdF90aW1pbmdfeHNlcnZlcl9yZWRpcmVjdC5odG1sCiAKLSMgW1F0XVtHVEtd
IFJFR1JFU1NJT04ocjEyNjE5NCk6IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3JlZ2lzdGVyLWJ5cGFzc2luZy1zY2hlbWUuaHRtbCBmYWlscwotIyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ2NzcKLWh0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L3JlZ2lzdGVyLWJ5cGFzc2luZy1zY2hlbWUuaHRtbAotCiAj
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSAjCiAjICAgICAgIEZhaWxpbmcgeG1saHR0cHJlcXVlc3QgdGVz
dHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCiAjID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSAjCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163924</attachid>
            <date>2012-09-13 11:54:26 -0700</date>
            <delta_ts>2012-09-13 12:17:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94677-20120913205358.patch</filename>
            <type>text/plain</type>
            <size>10562</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQ5YjliNzI5MmVkZTM2
NzNlNDU4ZmQ0ODVkZTU2MmFlNzJiOWQ1NS4uMTI0NjQyNjA1NTg4MTFkYzhhNDJhYzg1OGFmMzgx
YWI5ODBkMTU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTA5LTEzICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRG9uJ3QgR0MgaW1nIGVsZW1l
bnRzIGJsb2NrZWQgYnkgQ1NQIHVudGlsIGVycm9yIGV2ZW50cyBmaXJlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ2NzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBKb2NoZW4gRWlzaW5nZXIuCisKKyAgICAgICAgQ3VycmVudGx5LCB0aGUgR0MgY2hl
Y2tzIHRoYXQgbm8gbG9hZCBldmVudHMgYXJlIHBlbmRpbmcgZm9yIGFuIGltYWdlCisgICAgICAg
IGVsZW1lbnQgYmVmb3JlIHJlY2xhaW1pbmcgaXQncyBtZW1vcnkuIEl0J3Mgbm90LCBob3dldmVy
LCBjaGVja2luZyB0aGF0CisgICAgICAgIGVycm9yIGV2ZW50cyBhcmUgdGFrZW4gY2FyZSBvZi4g
VGhpcyBsZWFkcyB0byB0aGUgcG90ZW50aWFsIG9mIGZpcmluZyBhbgorICAgICAgICBldmVudCBv
biBhIERPTSBlbGVtZW50IHRoYXQgd2UndmUgYWxyZWFkeSBjb2xsZWN0ZWQuIFRoYXQncyBhIEJh
ZCBUaGluZy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkanVzdHMgdGhlIGNoZWNrIHRvIGNhdGNo
IGVycm9yIGV2ZW50cyBhcyB3ZWxsIGFzIGxvYWQKKyAgICAgICAgZXZlbnRzLCB3aGljaCBzaG91
bGQgZW5zdXJlIHRoYXQgdGhlIGVsZW1lbnQgaXNuJ3QgY29sbGVjdGVkIHVudGlsIGl0J3MKKyAg
ICAgICAgcmVhbGx5IHJlYWR5LiBBcyBhIGRyaXZlLWJ5LCBpdCBhbHNvIGNoYW5nZXMgdGhlIG5h
bWUgb2YgdGhlIGNoZWNrIHRvCisgICAgICAgICdoYXNQZW5kaW5nQWN0aXZpdHknIGZyb20gJ2hh
c1BlbmRpbmdMb2FkRXZlbnQnIGZvciBjbGFyaXR5LgorCisgICAgICAgIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3JlZ2lzdGVyLWJ5cGFzc2luZy1zY2hlbWUuaHRt
bAorICAgICAgICBzaG91bGQgbm8gbG9uZ2VyIGNyYXNoLCBhbmQgdGhlIG5ldworICAgICAgICBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9pbWctYmxvY2tlZC1uby1n
Yy1jcmFzaC5odG1sCisgICAgICAgIHNob3VsZG4ndCBjcmFzaCBlaXRoZXIuCisKKyAgICAgICAg
VGVzdHM6IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ltZy1ibG9j
a2VkLW5vLWdjLWNyYXNoLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4R0NDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGN1bGF0ZUdyb3VwSWQpOgorICAgICAgICAg
ICAgU3dpdGNoIHRvIHVzaW5nIEltYWdlTG9hZGVyOjpoYXNQZW5kaW5nQWN0aXZpdHkoKS4KKyAg
ICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJ
bWFnZUVsZW1lbnQ6Omhhc1BlbmRpbmdBY3Rpdml0eSk6CisgICAgICAgICAgICBTd2l0Y2ggdG8g
dXNpbmcgSW1hZ2VMb2FkZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSgpLgorICAgICAgICAqIGxvYWRl
ci9JbWFnZUxvYWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VMb2FkZXI6Omhhc1BlbmRp
bmdBY3Rpdml0eSk6CisgICAgICAgICAgICBBZGRlZCBhIGNoZWNrIGFnYWluc3QgcGVuZGluZyBl
cnJvciBldmVudHMgaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQKKyAgICAgICAgICAgIGVsZW1lbnRz
IGFyZW4ndCBnYXJiYWdlIGNvbGxlY3RlZCBwcmVtYXR1cmVseS4gQXNsbyByZW5hbWVkIGZyb20K
KyAgICAgICAgICAgIEltYWdlTG9hZGVyOjpoYXNQZW5kaW5nTG9hZEV2ZW50IGZvciBjbGFyaXR5
LgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHSW1hZ2VFbGVtZW50OjpoYXZlTG9hZGVkUmVxdWlyZWRSZXNvdXJjZXMpOgorICAgICAgICAg
ICAgU3dpdGNoIHRvIHVzaW5nIEltYWdlTG9hZGVyOjpoYXNQZW5kaW5nQWN0aXZpdHkoKS4KKwog
MjAxMi0wOS0xMyAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgW0VGTF0gVXNlIFJlZlB0ciBmb3Igc3RvcmluZyBjYWlyb19zdXJmYWNl
X3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcAppbmRl
eCA1ODc3MTFmMGM0ZWQ3ZGViZjg1ZTk4NDYwYWFjNDUyNmYyYjQ5ZmEwLi5mM2UyMTc5OTNhMjRi
ZjcyZjdkNGRlOTk1MTA2ZThhZjU1Mzg0YjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCkBAIC0yNDEsNyArMjQxLDcgQEAgdHlwZWRlZiBWZWN0
b3I8R3JvdXBlckl0ZW0+IEdyb3VwZXJMaXN0OwogLy8gZWxlbWVudCBvZiB0aGUgdHJlZSB0byB3
aGljaCBpdCBiZWxvbmdzLgogc3RhdGljIEdyb3VwSWQgY2FsY3VsYXRlR3JvdXBJZChOb2RlKiBu
b2RlKQogewotICAgIGlmIChub2RlLT5pbkRvY3VtZW50KCkgfHwgKG5vZGUtPmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjppbWdUYWcpICYmIHN0YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1lbnQqPihub2Rl
KS0+aGFzUGVuZGluZ0xvYWRFdmVudCgpKSkKKyAgICBpZiAobm9kZS0+aW5Eb2N1bWVudCgpIHx8
IChub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW1nVGFnKSAmJiBzdGF0aWNfY2FzdDxIVE1M
SW1hZ2VFbGVtZW50Kj4obm9kZSktPmhhc1BlbmRpbmdBY3Rpdml0eSgpKSkKICAgICAgICAgcmV0
dXJuIEdyb3VwSWQobm9kZS0+ZG9jdW1lbnQoKSk7CiAKICAgICBOb2RlKiByb290ID0gbm9kZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKaW5kZXggNDY1N2Q3Y2Q1YmExZjgz
YjBkOTcwOGVlZTBlMjhkZjJmNzBjZGFjZC4uZDJkMTFiOGViZTIzZTc2Mjk2NTE2NzY4ZmQ3N2Ri
NDk1NWQxODdlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKQEAgLTgz
LDkgKzgzLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBjb21wbGV0ZSgpIGNvbnN0OwogCi0gICAg
Ly8gRklYTUU6IFdoeSBkbyB3ZSBoYXZlIHR3byBuYW1lcyBmb3IgdGhlIHNhbWUgdGhpbmc/Ci0g
ICAgYm9vbCBoYXNQZW5kaW5nTG9hZEV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZUxvYWRl
ci5oYXNQZW5kaW5nTG9hZEV2ZW50KCk7IH0KLSAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgp
IGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VMb2FkZXIuaGFzUGVuZGluZ0xvYWRFdmVudCgpOyB9Cisg
ICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlTG9hZGVy
Lmhhc1BlbmRpbmdBY3Rpdml0eSgpOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ29udGFpblJh
bmdlRW5kUG9pbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9J
bWFnZUxvYWRlci5oCmluZGV4IDc5NmQ3MTgwMmFiZDcxNDdhZmFlNTNkMmYwNDQ2MzU5MGQxMjlh
MmYuLjkxMDc0NDQxNmU5NzNhY2RjNWNiM2M4NWIwN2YwZTNlOTEzZDZiOWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9JbWFnZUxvYWRlci5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldExvYWRNYW51YWxseShib29sIGxvYWRNYW51YWxseSkgeyBtX2xvYWRNYW51YWxseSA9IGxv
YWRNYW51YWxseTsgfQogCiAgICAgYm9vbCBoYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KCkgY29u
c3QgeyByZXR1cm4gbV9oYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50OyB9Ci0gICAgYm9vbCBoYXNQ
ZW5kaW5nTG9hZEV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNQZW5kaW5nTG9hZEV2ZW50OyB9
CisgICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCB7IHJldHVybiBtX2hhc1BlbmRp
bmdMb2FkRXZlbnQgfHwgbV9oYXNQZW5kaW5nRXJyb3JFdmVudDsgfQogCiAgICAgdm9pZCBkaXNw
YXRjaFBlbmRpbmdFdmVudChJbWFnZUV2ZW50U2VuZGVyKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ltYWdlRWxlbWVudC5jcHAKaW5kZXggNTU1OGQxMDIzZmRmODBiOTRmYTRmZDM2MjE2MGMyZjhi
Y2UxMTdjZi4uMzc2ODFmM2M0NzMzZmUyZThlMTgxNDQyNzAwZjQ3ZmNkNDA3Zjk1NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKQEAgLTE5Niw3ICsxOTYsNyBAQCBSZW5k
ZXJPYmplY3QqIFNWR0ltYWdlRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFy
ZW5hLCBSZW5kZXJTdHlsZSopCiAKIGJvb2wgU1ZHSW1hZ2VFbGVtZW50OjpoYXZlTG9hZGVkUmVx
dWlyZWRSZXNvdXJjZXMoKQogewotICAgIHJldHVybiAhZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZEJhc2VWYWx1ZSgpIHx8ICFtX2ltYWdlTG9hZGVyLmhhc1BlbmRpbmdMb2FkRXZlbnQoKTsKKyAg
ICByZXR1cm4gIWV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRCYXNlVmFsdWUoKSB8fCAhbV9pbWFn
ZUxvYWRlci5oYXNQZW5kaW5nQWN0aXZpdHkoKTsKIH0KIAogdm9pZCBTVkdJbWFnZUVsZW1lbnQ6
OmF0dGFjaCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggYTQ4NmU2MTQzNDc2MmJmMWVhNTRlY2YxZTMxOWRmMjIzYjVhNGM5
YS4uM2UzNzYzMGVjYTVhZDQ4YmYwYWJhZDg1MjRhYWVkYjZlMDc2ZWY1MyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE4IEBACisyMDEyLTA5LTEzICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgRG9uJ3QgR0MgaW1nIGVsZW1lbnRzIGJsb2NrZWQgYnkgQ1NQIHVudGlsIGVycm9y
IGV2ZW50cyBmaXJlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTQ2NzcKKworICAgICAgICBSZXZpZXdlZCBieSBKb2NoZW4gRWlzaW5nZXIuCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9pbWctYmxv
Y2tlZC1uby1nYy1jcmFzaC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L2ltZy1ibG9ja2VkLW5vLWdjLWNyYXNoLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgICAgIEV4cGxpY2l0bHkgdHJpZ2dlcmluZyBHQyBiZWZvcmUgdGhlIGVycm9yIGlu
IHRoZSBob3BlcyBvZiBwcm92aW5nCisgICAgICAgICAgICB0aGF0IHdlIGRvbid0IGNyYXNoIGFu
eW1vcmUuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgICAgIFVuc2tpcHBpbmcgbm8tbG9uZ2Vy
LWNyYXNoaW5nIHRlc3QuCisKIDIwMTItMDktMTMgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hh
aWwucG96ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBHYXJkZW5pbmcg
YWZ0ZXIgcjEyODM5MwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvaW1nLWJsb2NrZWQtbm8tZ2MtY3Jhc2gtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvaW1nLWJsb2NrZWQtbm8tZ2MtY3Jhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkZmM1
MTFjMWQzNzkzZDZhOWNhZTNhMWNhNTc2MTIyNDM2ZTE4NzgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9pbWct
YmxvY2tlZC1uby1nYy1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDT05TT0xF
IE1FU1NBR0U6IFJlZnVzZWQgdG8gbG9hZCB0aGUgaW1hZ2UgJ2h0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9zZWN1cml0eS9yZXNvdXJjZXMvYWJlLnBuZycgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9s
bG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogImltZy1zcmMgJ25vbmUn
Ii4KKworQUxFUlQ6IFBBU1MgKDEvMSkKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgYmxvY2tpbmcg
YW4gaW1hZ2UgdmlhIENTUCBkb2Vzbid0IGNyYXNoIGlmIEdDIGV4ZWN1dGVzIGJlZm9yZSB0aGUg
ZXJyb3IgZXZlbnQgZmlyZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9pbWctYmxvY2tlZC1uby1nYy1jcmFzaC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
aW1nLWJsb2NrZWQtbm8tZ2MtY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNGY4NzliNGM3YjcwZDZj
ODg0NzBhZTNlM2JkMTUzNzNmODlkZTdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvaW1nLWJsb2NrZWQtbm8t
Z2MtY3Jhc2guaHRtbApAQCAtMCwwICsxLDU2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJYLVdlYktpdC1DU1AiIGNvbnRlbnQ9ImltZy1zcmMg
J25vbmUnOyBzY3JpcHQtc3JjICd1bnNhZmUtaW5saW5lJyI+Cis8c2NyaXB0PgorICAgIC8vIENv
cGllZCBmcm9tIGZhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzLCB3aGljaCBpc24ndCBh
dmFpbGFibGUgdmlhIEhUVFAuCisgICAgZnVuY3Rpb24gZ2MoKSB7CisgICAgICAgIGlmICh0eXBl
b2YgR0NDb250cm9sbGVyICE9PSAidW5kZWZpbmVkIikKKyAgICAgICAgICAgIEdDQ29udHJvbGxl
ci5jb2xsZWN0KCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdmFyIGdjUmVjID0gZnVu
Y3Rpb24gKG4pIHsKKyAgICAgICAgICAgICAgICBpZiAobiA8IDEpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB7fTsKKyAgICAgICAgICAgICAgICB2YXIgdGVtcCA9IHtpOiAiYWIiICsgaSAr
IChpIC8gMTAwMDAwKX07CisgICAgICAgICAgICAgICAgdGVtcCArPSAiZm9vIjsKKyAgICAgICAg
ICAgICAgICBnY1JlYyhuLTEpOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDsgaSsrKQorICAgICAgICAgICAgICAgIGdjUmVjKDEwKQorICAgICAg
ICB9CisgICAgfQorCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICB2YXIgaW1nID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7CisgICAgICAgIGltZy5vbmxvYWQgPSBmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICBhbGVydCgnRkFJTCAoMS8xKScpOworICAgICAgICAgICAgZmluaXNo
VGVzdGluZygpOworICAgICAgICB9OworICAgICAgICBpbWcub25lcnJvciA9IGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgIGFsZXJ0KCdQQVNTICgxLzEpJyk7CisgICAgICAgICAgICBmaW5pc2hU
ZXN0aW5nKCk7CisgICAgICAgIH07CisgICAgICAgIGltZy5zcmMgPSAiLi4vcmVzb3VyY2VzL2Fi
ZS5wbmciOworICAgICAgICBzZXRUaW1lb3V0KGdjLCAwKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBmaW5pc2hUZXN0aW5nKCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsgfSwgMCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9J3Rlc3QoKTsnPgorICAgIDxwPgorICAgICAgICBU
aGlzIHRlc3QgZW5zdXJlcyB0aGF0IGJsb2NraW5nIGFuIGltYWdlIHZpYSBDU1AgZG9lc24ndCBj
cmFzaCBpZiBHQworICAgICAgICBleGVjdXRlcyBiZWZvcmUgdGhlIGVycm9yIGV2ZW50IGZpcmVz
LgorICAgIDwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggNjdlZDkxYzIwYjFmYzc0NmFlNzZhNWI5YmViMTQyOTVmYWM0
OTQ5ZS4uNDU0MDY1NWY1MDlhZjkzNjljOTY3ODg1MmQ1ZDY5NTU4NmI0YzgwYyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTY0Miw4ICs2NDIsNiBAQCBC
VUdXSzYxMTE4IDogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1yZXN0cmljdGlvbnMuaHRtbCA9IFRJ
TUVPVVQKIAogQlVHV0s4NTcwMCA6IGZ1bGxzY3JlZW4vbm9uLWFuY2VzdG9yLWlmcmFtZS5odG1s
ID0gVElNRU9VVAogCi1CVUdXSzk0Njc3IDogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvcmVnaXN0ZXItYnlwYXNzaW5nLXNjaGVtZS5odG1sID0gVElNRU9VVAotCiBC
VUdXSzk1NTMwIDogaHR0cC90ZXN0cy9zZWN1cml0eS9pbmFjdGl2ZS1kb2N1bWVudC13aXRoLWVt
cHR5LXNlY3VyaXR5LW9yaWdpbi5odG1sID0gVElNRU9VVAogCiBCVUdXSzcyNjk4IDogbWVkaWEv
YXVkaW8tZ2FyYmFnZS1jb2xsZWN0Lmh0bWwgPSBUSU1FT1VUCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBl
ZAppbmRleCBkZTVjZjk1NzI1ZTU3ZmM5NTg2NTBkZWNkMTI3NzNiMzFmNWQzZGI0Li5lY2Q3Mzhl
OGY4YzY3NzI2NWMzNDYwMTFlMTg4Yjk2ZTg2MTZhOTUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBw
ZWQKQEAgLTc3OSwxMCArNzc5LDYgQEAgaHR0cC90ZXN0cy9jb29raWVzL2pzLWdldC1hbmQtc2V0
LWh0dHAtb25seS1jb29raWUuaHRtbAogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9u
YXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfcGVyZm9ybWFuY2VfYXR0cmlidXRlc19leGlzdF9p
bl9vYmplY3QuaHRtbAogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9u
LXRpbWluZy9odG1sL3Rlc3RfdGltaW5nX3hzZXJ2ZXJfcmVkaXJlY3QuaHRtbAogCi0jIFtRdF1b
R1RLXSBSRUdSRVNTSU9OKHIxMjYxOTQpOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS9yZWdpc3Rlci1ieXBhc3Npbmctc2NoZW1lLmh0bWwgZmFpbHMKLSMgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0Njc3Ci1odHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZWdpc3Rlci1ieXBhc3Npbmctc2NoZW1lLmh0bWwK
LQogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0gIwogIyAgICAgICBGYWlsaW5nIHhtbGh0dHByZXF1ZXN0
IHRlc3RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwogIyA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0gIwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163926</attachid>
            <date>2012-09-13 11:58:57 -0700</date>
            <delta_ts>2012-09-13 12:17:18 -0700</delta_ts>
            <desc>it&apos;s -&gt; its</desc>
            <filename>bug-94677-20120913205829.patch</filename>
            <type>text/plain</type>
            <size>10561</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQ5YjliNzI5MmVkZTM2
NzNlNDU4ZmQ0ODVkZTU2MmFlNzJiOWQ1NS4uMjdjMmYzYmZiNjgzZmU5MjM5ZWQyNmQzYjExNTU4
Y2E1OTI2OGM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTA5LTEzICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRG9uJ3QgR0MgaW1nIGVsZW1l
bnRzIGJsb2NrZWQgYnkgQ1NQIHVudGlsIGVycm9yIGV2ZW50cyBmaXJlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ2NzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBKb2NoZW4gRWlzaW5nZXIuCisKKyAgICAgICAgQ3VycmVudGx5LCB0aGUgR0MgY2hl
Y2tzIHRoYXQgbm8gbG9hZCBldmVudHMgYXJlIHBlbmRpbmcgZm9yIGFuIGltYWdlCisgICAgICAg
IGVsZW1lbnQgYmVmb3JlIHJlY2xhaW1pbmcgaXRzIG1lbW9yeS4gSXQncyBub3QsIGhvd2V2ZXIs
IGNoZWNraW5nIHRoYXQKKyAgICAgICAgZXJyb3IgZXZlbnRzIGFyZSB0YWtlbiBjYXJlIG9mLiBU
aGlzIGxlYWRzIHRvIHRoZSBwb3RlbnRpYWwgb2YgZmlyaW5nIGFuCisgICAgICAgIGV2ZW50IG9u
IGEgRE9NIGVsZW1lbnQgdGhhdCB3ZSd2ZSBhbHJlYWR5IGNvbGxlY3RlZC4gVGhhdCdzIGEgQmFk
IFRoaW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRqdXN0cyB0aGUgY2hlY2sgdG8gY2F0Y2gg
ZXJyb3IgZXZlbnRzIGFzIHdlbGwgYXMgbG9hZAorICAgICAgICBldmVudHMsIHdoaWNoIHNob3Vs
ZCBlbnN1cmUgdGhhdCB0aGUgZWxlbWVudCBpc24ndCBjb2xsZWN0ZWQgdW50aWwgaXQncworICAg
ICAgICByZWFsbHkgcmVhZHkuIEFzIGEgZHJpdmUtYnksIGl0IGFsc28gY2hhbmdlcyB0aGUgbmFt
ZSBvZiB0aGUgY2hlY2sgdG8KKyAgICAgICAgJ2hhc1BlbmRpbmdBY3Rpdml0eScgZnJvbSAnaGFz
UGVuZGluZ0xvYWRFdmVudCcgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVnaXN0ZXItYnlwYXNzaW5nLXNjaGVtZS5odG1s
CisgICAgICAgIHNob3VsZCBubyBsb25nZXIgY3Jhc2gsIGFuZCB0aGUgbmV3CisgICAgICAgIGh0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ltZy1ibG9ja2VkLW5vLWdj
LWNyYXNoLmh0bWwKKyAgICAgICAgc2hvdWxkbid0IGNyYXNoIGVpdGhlci4KKworICAgICAgICBU
ZXN0czogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvaW1nLWJsb2Nr
ZWQtbm8tZ2MtY3Jhc2guaHRtbAorCisgICAgICAgICogYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FsY3VsYXRlR3JvdXBJZCk6CisgICAgICAgICAg
ICBTd2l0Y2ggdG8gdXNpbmcgSW1hZ2VMb2FkZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSgpLgorICAg
ICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElt
YWdlRWxlbWVudDo6aGFzUGVuZGluZ0FjdGl2aXR5KToKKyAgICAgICAgICAgIFN3aXRjaCB0byB1
c2luZyBJbWFnZUxvYWRlcjo6aGFzUGVuZGluZ0FjdGl2aXR5KCkuCisgICAgICAgICogbG9hZGVy
L0ltYWdlTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6aGFzUGVuZGlu
Z0FjdGl2aXR5KToKKyAgICAgICAgICAgIEFkZGVkIGEgY2hlY2sgYWdhaW5zdCBwZW5kaW5nIGVy
cm9yIGV2ZW50cyBpbiBvcmRlciB0byBlbnN1cmUgdGhhdAorICAgICAgICAgICAgZWxlbWVudHMg
YXJlbid0IGdhcmJhZ2UgY29sbGVjdGVkIHByZW1hdHVyZWx5LiBBc2xvIHJlbmFtZWQgZnJvbQor
ICAgICAgICAgICAgSW1hZ2VMb2FkZXI6Omhhc1BlbmRpbmdMb2FkRXZlbnQgZm9yIGNsYXJpdHku
CisgICAgICAgICogc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdJbWFnZUVsZW1lbnQ6OmhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcyk6CisgICAgICAgICAg
ICBTd2l0Y2ggdG8gdXNpbmcgSW1hZ2VMb2FkZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSgpLgorCiAy
MDEyLTA5LTEzICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBbRUZMXSBVc2UgUmVmUHRyIGZvciBzdG9yaW5nIGNhaXJvX3N1cmZhY2Vf
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCmluZGV4
IDU4NzcxMWYwYzRlZDdkZWJmODVlOTg0NjBhYWM0NTI2ZjJiNDlmYTAuLmYzZTIxNzk5M2EyNGJm
NzJmN2Q0ZGU5OTUxMDZlOGFmNTUzODRiOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOEdDQ29udHJvbGxlci5jcHAKQEAgLTI0MSw3ICsyNDEsNyBAQCB0eXBlZGVmIFZlY3Rv
cjxHcm91cGVySXRlbT4gR3JvdXBlckxpc3Q7CiAvLyBlbGVtZW50IG9mIHRoZSB0cmVlIHRvIHdo
aWNoIGl0IGJlbG9uZ3MuCiBzdGF0aWMgR3JvdXBJZCBjYWxjdWxhdGVHcm91cElkKE5vZGUqIG5v
ZGUpCiB7Ci0gICAgaWYgKG5vZGUtPmluRG9jdW1lbnQoKSB8fCAobm9kZS0+aGFzVGFnTmFtZShI
VE1MTmFtZXM6OmltZ1RhZykgJiYgc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KG5vZGUp
LT5oYXNQZW5kaW5nTG9hZEV2ZW50KCkpKQorICAgIGlmIChub2RlLT5pbkRvY3VtZW50KCkgfHwg
KG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjppbWdUYWcpICYmIHN0YXRpY19jYXN0PEhUTUxJ
bWFnZUVsZW1lbnQqPihub2RlKS0+aGFzUGVuZGluZ0FjdGl2aXR5KCkpKQogICAgICAgICByZXR1
cm4gR3JvdXBJZChub2RlLT5kb2N1bWVudCgpKTsKIAogICAgIE5vZGUqIHJvb3QgPSBub2RlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAppbmRleCA0NjU3ZDdjZDViYTFmODNi
MGQ5NzA4ZWVlMGUyOGRmMmY3MGNkYWNkLi5kMmQxMWI4ZWJlMjNlNzYyOTY1MTY3NjhmZDc3ZGI0
OTU1ZDE4N2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaApAQCAtODMs
OSArODMsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGNvbXBsZXRlKCkgY29uc3Q7CiAKLSAgICAv
LyBGSVhNRTogV2h5IGRvIHdlIGhhdmUgdHdvIG5hbWVzIGZvciB0aGUgc2FtZSB0aGluZz8KLSAg
ICBib29sIGhhc1BlbmRpbmdMb2FkRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlTG9hZGVy
Lmhhc1BlbmRpbmdMb2FkRXZlbnQoKTsgfQotICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3QgeyByZXR1cm4gbV9pbWFnZUxvYWRlci5oYXNQZW5kaW5nTG9hZEV2ZW50KCk7IH0KKyAg
ICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VMb2FkZXIu
aGFzUGVuZGluZ0FjdGl2aXR5KCk7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFu
Z2VFbmRQb2ludCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0lt
YWdlTG9hZGVyLmgKaW5kZXggNzk2ZDcxODAyYWJkNzE0N2FmYWU1M2QyZjA0NDYzNTkwZDEyOWEy
Zi4uOTEwNzQ0NDE2ZTk3M2FjZGM1Y2IzYzg1YjA3ZjBlM2U5MTNkNmI5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ltYWdlTG9hZGVyLmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0TG9hZE1hbnVhbGx5KGJvb2wgbG9hZE1hbnVhbGx5KSB7IG1fbG9hZE1hbnVhbGx5ID0gbG9h
ZE1hbnVhbGx5OyB9CiAKICAgICBib29sIGhhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQoKSBjb25z
dCB7IHJldHVybiBtX2hhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQ7IH0KLSAgICBib29sIGhhc1Bl
bmRpbmdMb2FkRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1BlbmRpbmdMb2FkRXZlbnQ7IH0K
KyAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUGVuZGlu
Z0xvYWRFdmVudCB8fCBtX2hhc1BlbmRpbmdFcnJvckV2ZW50OyB9CiAKICAgICB2b2lkIGRpc3Bh
dGNoUGVuZGluZ0V2ZW50KEltYWdlRXZlbnRTZW5kZXIqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
SW1hZ2VFbGVtZW50LmNwcAppbmRleCA1NTU4ZDEwMjNmZGY4MGI5NGZhNGZkMzYyMTYwYzJmOGJj
ZTExN2NmLi4zNzY4MWYzYzQ3MzNmZTJlOGUxODE0NDI3MDBmNDdmY2Q0MDdmOTU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcApAQCAtMTk2LDcgKzE5Niw3IEBAIFJlbmRl
ck9iamVjdCogU1ZHSW1hZ2VFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJl
bmEsIFJlbmRlclN0eWxlKikKIAogYm9vbCBTVkdJbWFnZUVsZW1lbnQ6OmhhdmVMb2FkZWRSZXF1
aXJlZFJlc291cmNlcygpCiB7Ci0gICAgcmV0dXJuICFleHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
QmFzZVZhbHVlKCkgfHwgIW1faW1hZ2VMb2FkZXIuaGFzUGVuZGluZ0xvYWRFdmVudCgpOworICAg
IHJldHVybiAhZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEJhc2VWYWx1ZSgpIHx8ICFtX2ltYWdl
TG9hZGVyLmhhc1BlbmRpbmdBY3Rpdml0eSgpOwogfQogCiB2b2lkIFNWR0ltYWdlRWxlbWVudDo6
YXR0YWNoKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBhNDg2ZTYxNDM0NzYyYmYxZWE1NGVjZjFlMzE5ZGYyMjNiNWE0Yzlh
Li4zZTM3NjMwZWNhNWFkNDhiZjBhYmFkODUyNGFhZWRiNmUwNzZlZjUzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTItMDktMTMgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBEb24ndCBHQyBpbWcgZWxlbWVudHMgYmxvY2tlZCBieSBDU1AgdW50aWwgZXJyb3Ig
ZXZlbnRzIGZpcmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NDY3NworCisgICAgICAgIFJldmlld2VkIGJ5IEpvY2hlbiBFaXNpbmdlci4KKworICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ltZy1ibG9j
a2VkLW5vLWdjLWNyYXNoLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvaW1nLWJsb2NrZWQtbm8tZ2MtY3Jhc2gtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAgICAgRXhwbGljaXRseSB0cmlnZ2VyaW5nIEdDIGJlZm9yZSB0aGUgZXJyb3IgaW4g
dGhlIGhvcGVzIG9mIHByb3ZpbmcKKyAgICAgICAgICAgIHRoYXQgd2UgZG9uJ3QgY3Jhc2ggYW55
bW9yZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorICAgICAgICAgICAgVW5za2lwcGluZyBuby1sb25nZXIt
Y3Jhc2hpbmcgdGVzdC4KKwogMjAxMi0wOS0xMyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFp
bC5wb3pkbnlha292QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIEdhcmRlbmluZyBh
ZnRlciByMTI4MzkzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9pbWctYmxvY2tlZC1uby1nYy1jcmFzaC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS9pbWctYmxvY2tlZC1uby1nYy1jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2RmYzUx
MWMxZDM3OTNkNmE5Y2FlM2ExY2E1NzYxMjI0MzZlMTg3OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ltZy1i
bG9ja2VkLW5vLWdjLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK0NPTlNPTEUg
TUVTU0FHRTogUmVmdXNlZCB0byBsb2FkIHRoZSBpbWFnZSAnaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3NlY3VyaXR5L3Jlc291cmNlcy9hYmUucG5nJyBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xs
b3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiaW1nLXNyYyAnbm9uZSci
LgorCitBTEVSVDogUEFTUyAoMS8xKQorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBibG9ja2luZyBh
biBpbWFnZSB2aWEgQ1NQIGRvZXNuJ3QgY3Jhc2ggaWYgR0MgZXhlY3V0ZXMgYmVmb3JlIHRoZSBl
cnJvciBldmVudCBmaXJlcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ltZy1ibG9ja2VkLW5vLWdjLWNyYXNoLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9p
bWctYmxvY2tlZC1uby1nYy1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0Zjg3OWI0YzdiNzBkNmM4
ODQ3MGFlM2UzYmQxNTM3M2Y4OWRlN2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9pbWctYmxvY2tlZC1uby1n
Yy1jcmFzaC5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IlgtV2ViS2l0LUNTUCIgY29udGVudD0iaW1nLXNyYyAn
bm9uZSc7IHNjcmlwdC1zcmMgJ3Vuc2FmZS1pbmxpbmUnIj4KKzxzY3JpcHQ+CisgICAgLy8gQ29w
aWVkIGZyb20gZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMsIHdoaWNoIGlzbid0IGF2
YWlsYWJsZSB2aWEgSFRUUC4KKyAgICBmdW5jdGlvbiBnYygpIHsKKyAgICAgICAgaWYgKHR5cGVv
ZiBHQ0NvbnRyb2xsZXIgIT09ICJ1bmRlZmluZWQiKQorICAgICAgICAgICAgR0NDb250cm9sbGVy
LmNvbGxlY3QoKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB2YXIgZ2NSZWMgPSBmdW5j
dGlvbiAobikgeworICAgICAgICAgICAgICAgIGlmIChuIDwgMSkKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHt9OworICAgICAgICAgICAgICAgIHZhciB0ZW1wID0ge2k6ICJhYiIgKyBpICsg
KGkgLyAxMDAwMDApfTsKKyAgICAgICAgICAgICAgICB0ZW1wICs9ICJmb28iOworICAgICAgICAg
ICAgICAgIGdjUmVjKG4tMSk7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwOyBpKyspCisgICAgICAgICAgICAgICAgZ2NSZWMoMTApCisgICAgICAg
IH0KKyAgICB9CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgICAgIHZhciBpbWcgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKKyAgICAgICAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgIGFsZXJ0KCdGQUlMICgxLzEpJyk7CisgICAgICAgICAgICBmaW5pc2hU
ZXN0aW5nKCk7CisgICAgICAgIH07CisgICAgICAgIGltZy5vbmVycm9yID0gZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgYWxlcnQoJ1BBU1MgKDEvMSknKTsKKyAgICAgICAgICAgIGZpbmlzaFRl
c3RpbmcoKTsKKyAgICAgICAgfTsKKyAgICAgICAgaW1nLnNyYyA9ICIuLi9yZXNvdXJjZXMvYWJl
LnBuZyI7CisgICAgICAgIHNldFRpbWVvdXQoZ2MsIDApOworICAgIH0KKworICAgIGZ1bmN0aW9u
IGZpbmlzaFRlc3RpbmcoKSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OyB9LCAwKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ndGVzdCgpOyc+CisgICAgPHA+CisgICAgICAgIFRo
aXMgdGVzdCBlbnN1cmVzIHRoYXQgYmxvY2tpbmcgYW4gaW1hZ2UgdmlhIENTUCBkb2Vzbid0IGNy
YXNoIGlmIEdDCisgICAgICAgIGV4ZWN1dGVzIGJlZm9yZSB0aGUgZXJyb3IgZXZlbnQgZmlyZXMu
CisgICAgPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCA2N2VkOTFjMjBiMWZjNzQ2YWU3NmE1YjliZWIxNDI5NWZhYzQ5
NDllLi40NTQwNjU1ZjUwOWFmOTM2OWM5Njc4ODUyZDVkNjk1NTg2YjRjODBjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjQyLDggKzY0Miw2IEBAIEJV
R1dLNjExMTggOiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJlc3RyaWN0aW9ucy5odG1sID0gVElN
RU9VVAogCiBCVUdXSzg1NzAwIDogZnVsbHNjcmVlbi9ub24tYW5jZXN0b3ItaWZyYW1lLmh0bWwg
PSBUSU1FT1VUCiAKLUJVR1dLOTQ2NzcgOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS9yZWdpc3Rlci1ieXBhc3Npbmctc2NoZW1lLmh0bWwgPSBUSU1FT1VUCi0KIEJV
R1dLOTU1MzAgOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2luYWN0aXZlLWRvY3VtZW50LXdpdGgtZW1w
dHktc2VjdXJpdHktb3JpZ2luLmh0bWwgPSBUSU1FT1VUCiAKIEJVR1dLNzI2OTggOiBtZWRpYS9h
dWRpby1nYXJiYWdlLWNvbGxlY3QuaHRtbCA9IFRJTUVPVVQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVk
CmluZGV4IGRlNWNmOTU3MjVlNTdmYzk1ODY1MGRlY2QxMjc3M2IzMWY1ZDNkYjQuLmVjZDczOGU4
ZjhjNjc3MjY1YzM0NjAxMWUxODhiOTZlODYxNmE5NTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBl
ZApAQCAtNzc5LDEwICs3NzksNiBAQCBodHRwL3Rlc3RzL2Nvb2tpZXMvanMtZ2V0LWFuZC1zZXQt
aHR0cC1vbmx5LWNvb2tpZS5odG1sCiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25h
dmlnYXRpb24tdGltaW5nL2h0bWwvdGVzdF9wZXJmb3JtYW5jZV9hdHRyaWJ1dGVzX2V4aXN0X2lu
X29iamVjdC5odG1sCiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24t
dGltaW5nL2h0bWwvdGVzdF90aW1pbmdfeHNlcnZlcl9yZWRpcmVjdC5odG1sCiAKLSMgW1F0XVtH
VEtdIFJFR1JFU1NJT04ocjEyNjE5NCk6IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3JlZ2lzdGVyLWJ5cGFzc2luZy1zY2hlbWUuaHRtbCBmYWlscwotIyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ2NzcKLWh0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L3JlZ2lzdGVyLWJ5cGFzc2luZy1zY2hlbWUuaHRtbAot
CiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSAjCiAjICAgICAgIEZhaWxpbmcgeG1saHR0cHJlcXVlc3Qg
dGVzdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCiAjID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PSAjCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163932</attachid>
            <date>2012-09-13 12:17:24 -0700</date>
            <delta_ts>2012-09-13 22:57:06 -0700</delta_ts>
            <desc>Jochen&apos;s feedback.</desc>
            <filename>bug-94677-20120913211656.patch</filename>
            <type>text/plain</type>
            <size>10033</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQ5YjliNzI5MmVkZTM2
NzNlNDU4ZmQ0ODVkZTU2MmFlNzJiOWQ1NS4uMjdjMmYzYmZiNjgzZmU5MjM5ZWQyNmQzYjExNTU4
Y2E1OTI2OGM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTA5LTEzICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRG9uJ3QgR0MgaW1nIGVsZW1l
bnRzIGJsb2NrZWQgYnkgQ1NQIHVudGlsIGVycm9yIGV2ZW50cyBmaXJlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ2NzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBKb2NoZW4gRWlzaW5nZXIuCisKKyAgICAgICAgQ3VycmVudGx5LCB0aGUgR0MgY2hl
Y2tzIHRoYXQgbm8gbG9hZCBldmVudHMgYXJlIHBlbmRpbmcgZm9yIGFuIGltYWdlCisgICAgICAg
IGVsZW1lbnQgYmVmb3JlIHJlY2xhaW1pbmcgaXRzIG1lbW9yeS4gSXQncyBub3QsIGhvd2V2ZXIs
IGNoZWNraW5nIHRoYXQKKyAgICAgICAgZXJyb3IgZXZlbnRzIGFyZSB0YWtlbiBjYXJlIG9mLiBU
aGlzIGxlYWRzIHRvIHRoZSBwb3RlbnRpYWwgb2YgZmlyaW5nIGFuCisgICAgICAgIGV2ZW50IG9u
IGEgRE9NIGVsZW1lbnQgdGhhdCB3ZSd2ZSBhbHJlYWR5IGNvbGxlY3RlZC4gVGhhdCdzIGEgQmFk
IFRoaW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRqdXN0cyB0aGUgY2hlY2sgdG8gY2F0Y2gg
ZXJyb3IgZXZlbnRzIGFzIHdlbGwgYXMgbG9hZAorICAgICAgICBldmVudHMsIHdoaWNoIHNob3Vs
ZCBlbnN1cmUgdGhhdCB0aGUgZWxlbWVudCBpc24ndCBjb2xsZWN0ZWQgdW50aWwgaXQncworICAg
ICAgICByZWFsbHkgcmVhZHkuIEFzIGEgZHJpdmUtYnksIGl0IGFsc28gY2hhbmdlcyB0aGUgbmFt
ZSBvZiB0aGUgY2hlY2sgdG8KKyAgICAgICAgJ2hhc1BlbmRpbmdBY3Rpdml0eScgZnJvbSAnaGFz
UGVuZGluZ0xvYWRFdmVudCcgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVnaXN0ZXItYnlwYXNzaW5nLXNjaGVtZS5odG1s
CisgICAgICAgIHNob3VsZCBubyBsb25nZXIgY3Jhc2gsIGFuZCB0aGUgbmV3CisgICAgICAgIGh0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ltZy1ibG9ja2VkLW5vLWdj
LWNyYXNoLmh0bWwKKyAgICAgICAgc2hvdWxkbid0IGNyYXNoIGVpdGhlci4KKworICAgICAgICBU
ZXN0czogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvaW1nLWJsb2Nr
ZWQtbm8tZ2MtY3Jhc2guaHRtbAorCisgICAgICAgICogYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FsY3VsYXRlR3JvdXBJZCk6CisgICAgICAgICAg
ICBTd2l0Y2ggdG8gdXNpbmcgSW1hZ2VMb2FkZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSgpLgorICAg
ICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElt
YWdlRWxlbWVudDo6aGFzUGVuZGluZ0FjdGl2aXR5KToKKyAgICAgICAgICAgIFN3aXRjaCB0byB1
c2luZyBJbWFnZUxvYWRlcjo6aGFzUGVuZGluZ0FjdGl2aXR5KCkuCisgICAgICAgICogbG9hZGVy
L0ltYWdlTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6aGFzUGVuZGlu
Z0FjdGl2aXR5KToKKyAgICAgICAgICAgIEFkZGVkIGEgY2hlY2sgYWdhaW5zdCBwZW5kaW5nIGVy
cm9yIGV2ZW50cyBpbiBvcmRlciB0byBlbnN1cmUgdGhhdAorICAgICAgICAgICAgZWxlbWVudHMg
YXJlbid0IGdhcmJhZ2UgY29sbGVjdGVkIHByZW1hdHVyZWx5LiBBc2xvIHJlbmFtZWQgZnJvbQor
ICAgICAgICAgICAgSW1hZ2VMb2FkZXI6Omhhc1BlbmRpbmdMb2FkRXZlbnQgZm9yIGNsYXJpdHku
CisgICAgICAgICogc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdJbWFnZUVsZW1lbnQ6OmhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcyk6CisgICAgICAgICAg
ICBTd2l0Y2ggdG8gdXNpbmcgSW1hZ2VMb2FkZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSgpLgorCiAy
MDEyLTA5LTEzICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBbRUZMXSBVc2UgUmVmUHRyIGZvciBzdG9yaW5nIGNhaXJvX3N1cmZhY2Vf
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCmluZGV4
IDU4NzcxMWYwYzRlZDdkZWJmODVlOTg0NjBhYWM0NTI2ZjJiNDlmYTAuLmYzZTIxNzk5M2EyNGJm
NzJmN2Q0ZGU5OTUxMDZlOGFmNTUzODRiOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOEdDQ29udHJvbGxlci5jcHAKQEAgLTI0MSw3ICsyNDEsNyBAQCB0eXBlZGVmIFZlY3Rv
cjxHcm91cGVySXRlbT4gR3JvdXBlckxpc3Q7CiAvLyBlbGVtZW50IG9mIHRoZSB0cmVlIHRvIHdo
aWNoIGl0IGJlbG9uZ3MuCiBzdGF0aWMgR3JvdXBJZCBjYWxjdWxhdGVHcm91cElkKE5vZGUqIG5v
ZGUpCiB7Ci0gICAgaWYgKG5vZGUtPmluRG9jdW1lbnQoKSB8fCAobm9kZS0+aGFzVGFnTmFtZShI
VE1MTmFtZXM6OmltZ1RhZykgJiYgc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KG5vZGUp
LT5oYXNQZW5kaW5nTG9hZEV2ZW50KCkpKQorICAgIGlmIChub2RlLT5pbkRvY3VtZW50KCkgfHwg
KG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjppbWdUYWcpICYmIHN0YXRpY19jYXN0PEhUTUxJ
bWFnZUVsZW1lbnQqPihub2RlKS0+aGFzUGVuZGluZ0FjdGl2aXR5KCkpKQogICAgICAgICByZXR1
cm4gR3JvdXBJZChub2RlLT5kb2N1bWVudCgpKTsKIAogICAgIE5vZGUqIHJvb3QgPSBub2RlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAppbmRleCA0NjU3ZDdjZDViYTFmODNi
MGQ5NzA4ZWVlMGUyOGRmMmY3MGNkYWNkLi5kMmQxMWI4ZWJlMjNlNzYyOTY1MTY3NjhmZDc3ZGI0
OTU1ZDE4N2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaApAQCAtODMs
OSArODMsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGNvbXBsZXRlKCkgY29uc3Q7CiAKLSAgICAv
LyBGSVhNRTogV2h5IGRvIHdlIGhhdmUgdHdvIG5hbWVzIGZvciB0aGUgc2FtZSB0aGluZz8KLSAg
ICBib29sIGhhc1BlbmRpbmdMb2FkRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlTG9hZGVy
Lmhhc1BlbmRpbmdMb2FkRXZlbnQoKTsgfQotICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3QgeyByZXR1cm4gbV9pbWFnZUxvYWRlci5oYXNQZW5kaW5nTG9hZEV2ZW50KCk7IH0KKyAg
ICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VMb2FkZXIu
aGFzUGVuZGluZ0FjdGl2aXR5KCk7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFu
Z2VFbmRQb2ludCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0lt
YWdlTG9hZGVyLmgKaW5kZXggNzk2ZDcxODAyYWJkNzE0N2FmYWU1M2QyZjA0NDYzNTkwZDEyOWEy
Zi4uOTEwNzQ0NDE2ZTk3M2FjZGM1Y2IzYzg1YjA3ZjBlM2U5MTNkNmI5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ltYWdlTG9hZGVyLmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0TG9hZE1hbnVhbGx5KGJvb2wgbG9hZE1hbnVhbGx5KSB7IG1fbG9hZE1hbnVhbGx5ID0gbG9h
ZE1hbnVhbGx5OyB9CiAKICAgICBib29sIGhhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQoKSBjb25z
dCB7IHJldHVybiBtX2hhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQ7IH0KLSAgICBib29sIGhhc1Bl
bmRpbmdMb2FkRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1BlbmRpbmdMb2FkRXZlbnQ7IH0K
KyAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUGVuZGlu
Z0xvYWRFdmVudCB8fCBtX2hhc1BlbmRpbmdFcnJvckV2ZW50OyB9CiAKICAgICB2b2lkIGRpc3Bh
dGNoUGVuZGluZ0V2ZW50KEltYWdlRXZlbnRTZW5kZXIqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
SW1hZ2VFbGVtZW50LmNwcAppbmRleCA1NTU4ZDEwMjNmZGY4MGI5NGZhNGZkMzYyMTYwYzJmOGJj
ZTExN2NmLi4zNzY4MWYzYzQ3MzNmZTJlOGUxODE0NDI3MDBmNDdmY2Q0MDdmOTU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcApAQCAtMTk2LDcgKzE5Niw3IEBAIFJlbmRl
ck9iamVjdCogU1ZHSW1hZ2VFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJl
bmEsIFJlbmRlclN0eWxlKikKIAogYm9vbCBTVkdJbWFnZUVsZW1lbnQ6OmhhdmVMb2FkZWRSZXF1
aXJlZFJlc291cmNlcygpCiB7Ci0gICAgcmV0dXJuICFleHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
QmFzZVZhbHVlKCkgfHwgIW1faW1hZ2VMb2FkZXIuaGFzUGVuZGluZ0xvYWRFdmVudCgpOworICAg
IHJldHVybiAhZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEJhc2VWYWx1ZSgpIHx8ICFtX2ltYWdl
TG9hZGVyLmhhc1BlbmRpbmdBY3Rpdml0eSgpOwogfQogCiB2b2lkIFNWR0ltYWdlRWxlbWVudDo6
YXR0YWNoKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBhNDg2ZTYxNDM0NzYyYmYxZWE1NGVjZjFlMzE5ZGYyMjNiNWE0Yzlh
Li4zZTM3NjMwZWNhNWFkNDhiZjBhYmFkODUyNGFhZWRiNmUwNzZlZjUzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTItMDktMTMgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBEb24ndCBHQyBpbWcgZWxlbWVudHMgYmxvY2tlZCBieSBDU1AgdW50aWwgZXJyb3Ig
ZXZlbnRzIGZpcmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NDY3NworCisgICAgICAgIFJldmlld2VkIGJ5IEpvY2hlbiBFaXNpbmdlci4KKworICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ltZy1ibG9j
a2VkLW5vLWdjLWNyYXNoLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvaW1nLWJsb2NrZWQtbm8tZ2MtY3Jhc2gtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAgICAgRXhwbGljaXRseSB0cmlnZ2VyaW5nIEdDIGJlZm9yZSB0aGUgZXJyb3IgaW4g
dGhlIGhvcGVzIG9mIHByb3ZpbmcKKyAgICAgICAgICAgIHRoYXQgd2UgZG9uJ3QgY3Jhc2ggYW55
bW9yZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorICAgICAgICAgICAgVW5za2lwcGluZyBuby1sb25nZXIt
Y3Jhc2hpbmcgdGVzdC4KKwogMjAxMi0wOS0xMyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFp
bC5wb3pkbnlha292QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIEdhcmRlbmluZyBh
ZnRlciByMTI4MzkzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9pbWctYmxvY2tlZC1uby1nYy1jcmFzaC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS9pbWctYmxvY2tlZC1uby1nYy1jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2RmYzUx
MWMxZDM3OTNkNmE5Y2FlM2ExY2E1NzYxMjI0MzZlMTg3OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ltZy1i
bG9ja2VkLW5vLWdjLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK0NPTlNPTEUg
TUVTU0FHRTogUmVmdXNlZCB0byBsb2FkIHRoZSBpbWFnZSAnaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3NlY3VyaXR5L3Jlc291cmNlcy9hYmUucG5nJyBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xs
b3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiaW1nLXNyYyAnbm9uZSci
LgorCitBTEVSVDogUEFTUyAoMS8xKQorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBibG9ja2luZyBh
biBpbWFnZSB2aWEgQ1NQIGRvZXNuJ3QgY3Jhc2ggaWYgR0MgZXhlY3V0ZXMgYmVmb3JlIHRoZSBl
cnJvciBldmVudCBmaXJlcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ltZy1ibG9ja2VkLW5vLWdjLWNyYXNoLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9p
bWctYmxvY2tlZC1uby1nYy1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3ODE4ZmYxY2RlYjk2NTM4
MDIwZGIwMDRiNjA2M2QxMzFiZTM5NjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9pbWctYmxvY2tlZC1uby1n
Yy1jcmFzaC5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxtZXRhIGh0dHAtZXF1aXY9IlgtV2ViS2l0LUNTUCIgY29udGVudD0iaW1nLXNyYyAnbm9uZSc7
IHNjcmlwdC1zcmMgJ3Vuc2FmZS1pbmxpbmUnIj4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIGZ1
bmN0aW9uIHRlc3QoKSB7CisgICAgICAgIHZhciBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdpbWcnKTsKKyAgICAgICAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
IGFsZXJ0KCdGQUlMICgxLzEpJyk7CisgICAgICAgICAgICBmaW5pc2hUZXN0aW5nKCk7CisgICAg
ICAgIH07CisgICAgICAgIGltZy5vbmVycm9yID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
YWxlcnQoJ1BBU1MgKDEvMSknKTsKKyAgICAgICAgICAgIGZpbmlzaFRlc3RpbmcoKTsKKyAgICAg
ICAgfTsKKyAgICAgICAgaW1nLnNyYyA9ICIuLi9yZXNvdXJjZXMvYWJlLnBuZyI7CisgICAgICAg
IHNldFRpbWVvdXQoZ2MsIDApOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3Rpbmco
KSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgc2V0VGlt
ZW91dChmdW5jdGlvbiAoKSB7IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOyB9LCAwKTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0ndGVzdCgpOyc+CisgICAgPHA+CisgICAgICAgIFRoaXMgdGVzdCBlbnN1cmVz
IHRoYXQgYmxvY2tpbmcgYW4gaW1hZ2UgdmlhIENTUCBkb2Vzbid0IGNyYXNoIGlmIEdDCisgICAg
ICAgIGV4ZWN1dGVzIGJlZm9yZSB0aGUgZXJyb3IgZXZlbnQgZmlyZXMuCisgICAgPC9wPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCA2N2VkOTFjMjBiMWZjNzQ2YWU3NmE1YjliZWIxNDI5NWZhYzQ5NDllLi40NTQwNjU1ZjUw
OWFmOTM2OWM5Njc4ODUyZDVkNjk1NTg2YjRjODBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjQyLDggKzY0Miw2IEBAIEJVR1dLNjExMTggOiBmdWxs
c2NyZWVuL2Z1bGwtc2NyZWVuLXJlc3RyaWN0aW9ucy5odG1sID0gVElNRU9VVAogCiBCVUdXSzg1
NzAwIDogZnVsbHNjcmVlbi9ub24tYW5jZXN0b3ItaWZyYW1lLmh0bWwgPSBUSU1FT1VUCiAKLUJV
R1dLOTQ2NzcgOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZWdp
c3Rlci1ieXBhc3Npbmctc2NoZW1lLmh0bWwgPSBUSU1FT1VUCi0KIEJVR1dLOTU1MzAgOiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2luYWN0aXZlLWRvY3VtZW50LXdpdGgtZW1wdHktc2VjdXJpdHktb3Jp
Z2luLmh0bWwgPSBUSU1FT1VUCiAKIEJVR1dLNzI2OTggOiBtZWRpYS9hdWRpby1nYXJiYWdlLWNv
bGxlY3QuaHRtbCA9IFRJTUVPVVQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IGRlNWNmOTU3
MjVlNTdmYzk1ODY1MGRlY2QxMjc3M2IzMWY1ZDNkYjQuLmVjZDczOGU4ZjhjNjc3MjY1YzM0NjAx
MWUxODhiOTZlODYxNmE5NTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtNzc5LDEwICs3
NzksNiBAQCBodHRwL3Rlc3RzL2Nvb2tpZXMvanMtZ2V0LWFuZC1zZXQtaHR0cC1vbmx5LWNvb2tp
ZS5odG1sCiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5n
L2h0bWwvdGVzdF9wZXJmb3JtYW5jZV9hdHRyaWJ1dGVzX2V4aXN0X2luX29iamVjdC5odG1sCiBo
dHRwL3Rlc3RzL3czYy93ZWJwZXJmL2FwcHJvdmVkL25hdmlnYXRpb24tdGltaW5nL2h0bWwvdGVz
dF90aW1pbmdfeHNlcnZlcl9yZWRpcmVjdC5odG1sCiAKLSMgW1F0XVtHVEtdIFJFR1JFU1NJT04o
cjEyNjE5NCk6IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3JlZ2lz
dGVyLWJ5cGFzc2luZy1zY2hlbWUuaHRtbCBmYWlscwotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTQ2NzcKLWh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3JlZ2lzdGVyLWJ5cGFzc2luZy1zY2hlbWUuaHRtbAotCiAjID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSAjCiAjICAgICAgIEZhaWxpbmcgeG1saHR0cHJlcXVlc3QgdGVzdHMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCiAjID09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAj
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164052</attachid>
            <date>2012-09-13 22:57:13 -0700</date>
            <delta_ts>2012-09-14 11:33:18 -0700</delta_ts>
            <desc>Function.</desc>
            <filename>bug-94677-20120914075645.patch</filename>
            <type>text/plain</type>
            <size>10041</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQ5YjliNzI5MmVkZTM2
NzNlNDU4ZmQ0ODVkZTU2MmFlNzJiOWQ1NS4uMjdjMmYzYmZiNjgzZmU5MjM5ZWQyNmQzYjExNTU4
Y2E1OTI2OGM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTA5LTEzICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRG9uJ3QgR0MgaW1nIGVsZW1l
bnRzIGJsb2NrZWQgYnkgQ1NQIHVudGlsIGVycm9yIGV2ZW50cyBmaXJlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ2NzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBKb2NoZW4gRWlzaW5nZXIuCisKKyAgICAgICAgQ3VycmVudGx5LCB0aGUgR0MgY2hl
Y2tzIHRoYXQgbm8gbG9hZCBldmVudHMgYXJlIHBlbmRpbmcgZm9yIGFuIGltYWdlCisgICAgICAg
IGVsZW1lbnQgYmVmb3JlIHJlY2xhaW1pbmcgaXRzIG1lbW9yeS4gSXQncyBub3QsIGhvd2V2ZXIs
IGNoZWNraW5nIHRoYXQKKyAgICAgICAgZXJyb3IgZXZlbnRzIGFyZSB0YWtlbiBjYXJlIG9mLiBU
aGlzIGxlYWRzIHRvIHRoZSBwb3RlbnRpYWwgb2YgZmlyaW5nIGFuCisgICAgICAgIGV2ZW50IG9u
IGEgRE9NIGVsZW1lbnQgdGhhdCB3ZSd2ZSBhbHJlYWR5IGNvbGxlY3RlZC4gVGhhdCdzIGEgQmFk
IFRoaW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRqdXN0cyB0aGUgY2hlY2sgdG8gY2F0Y2gg
ZXJyb3IgZXZlbnRzIGFzIHdlbGwgYXMgbG9hZAorICAgICAgICBldmVudHMsIHdoaWNoIHNob3Vs
ZCBlbnN1cmUgdGhhdCB0aGUgZWxlbWVudCBpc24ndCBjb2xsZWN0ZWQgdW50aWwgaXQncworICAg
ICAgICByZWFsbHkgcmVhZHkuIEFzIGEgZHJpdmUtYnksIGl0IGFsc28gY2hhbmdlcyB0aGUgbmFt
ZSBvZiB0aGUgY2hlY2sgdG8KKyAgICAgICAgJ2hhc1BlbmRpbmdBY3Rpdml0eScgZnJvbSAnaGFz
UGVuZGluZ0xvYWRFdmVudCcgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVnaXN0ZXItYnlwYXNzaW5nLXNjaGVtZS5odG1s
CisgICAgICAgIHNob3VsZCBubyBsb25nZXIgY3Jhc2gsIGFuZCB0aGUgbmV3CisgICAgICAgIGh0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ltZy1ibG9ja2VkLW5vLWdj
LWNyYXNoLmh0bWwKKyAgICAgICAgc2hvdWxkbid0IGNyYXNoIGVpdGhlci4KKworICAgICAgICBU
ZXN0czogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvaW1nLWJsb2Nr
ZWQtbm8tZ2MtY3Jhc2guaHRtbAorCisgICAgICAgICogYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FsY3VsYXRlR3JvdXBJZCk6CisgICAgICAgICAg
ICBTd2l0Y2ggdG8gdXNpbmcgSW1hZ2VMb2FkZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSgpLgorICAg
ICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElt
YWdlRWxlbWVudDo6aGFzUGVuZGluZ0FjdGl2aXR5KToKKyAgICAgICAgICAgIFN3aXRjaCB0byB1
c2luZyBJbWFnZUxvYWRlcjo6aGFzUGVuZGluZ0FjdGl2aXR5KCkuCisgICAgICAgICogbG9hZGVy
L0ltYWdlTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6aGFzUGVuZGlu
Z0FjdGl2aXR5KToKKyAgICAgICAgICAgIEFkZGVkIGEgY2hlY2sgYWdhaW5zdCBwZW5kaW5nIGVy
cm9yIGV2ZW50cyBpbiBvcmRlciB0byBlbnN1cmUgdGhhdAorICAgICAgICAgICAgZWxlbWVudHMg
YXJlbid0IGdhcmJhZ2UgY29sbGVjdGVkIHByZW1hdHVyZWx5LiBBc2xvIHJlbmFtZWQgZnJvbQor
ICAgICAgICAgICAgSW1hZ2VMb2FkZXI6Omhhc1BlbmRpbmdMb2FkRXZlbnQgZm9yIGNsYXJpdHku
CisgICAgICAgICogc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdJbWFnZUVsZW1lbnQ6OmhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcyk6CisgICAgICAgICAg
ICBTd2l0Y2ggdG8gdXNpbmcgSW1hZ2VMb2FkZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSgpLgorCiAy
MDEyLTA5LTEzICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBbRUZMXSBVc2UgUmVmUHRyIGZvciBzdG9yaW5nIGNhaXJvX3N1cmZhY2Vf
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCmluZGV4
IDU4NzcxMWYwYzRlZDdkZWJmODVlOTg0NjBhYWM0NTI2ZjJiNDlmYTAuLmYzZTIxNzk5M2EyNGJm
NzJmN2Q0ZGU5OTUxMDZlOGFmNTUzODRiOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOEdDQ29udHJvbGxlci5jcHAKQEAgLTI0MSw3ICsyNDEsNyBAQCB0eXBlZGVmIFZlY3Rv
cjxHcm91cGVySXRlbT4gR3JvdXBlckxpc3Q7CiAvLyBlbGVtZW50IG9mIHRoZSB0cmVlIHRvIHdo
aWNoIGl0IGJlbG9uZ3MuCiBzdGF0aWMgR3JvdXBJZCBjYWxjdWxhdGVHcm91cElkKE5vZGUqIG5v
ZGUpCiB7Ci0gICAgaWYgKG5vZGUtPmluRG9jdW1lbnQoKSB8fCAobm9kZS0+aGFzVGFnTmFtZShI
VE1MTmFtZXM6OmltZ1RhZykgJiYgc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KG5vZGUp
LT5oYXNQZW5kaW5nTG9hZEV2ZW50KCkpKQorICAgIGlmIChub2RlLT5pbkRvY3VtZW50KCkgfHwg
KG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjppbWdUYWcpICYmIHN0YXRpY19jYXN0PEhUTUxJ
bWFnZUVsZW1lbnQqPihub2RlKS0+aGFzUGVuZGluZ0FjdGl2aXR5KCkpKQogICAgICAgICByZXR1
cm4gR3JvdXBJZChub2RlLT5kb2N1bWVudCgpKTsKIAogICAgIE5vZGUqIHJvb3QgPSBub2RlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAppbmRleCA0NjU3ZDdjZDViYTFmODNi
MGQ5NzA4ZWVlMGUyOGRmMmY3MGNkYWNkLi5kMmQxMWI4ZWJlMjNlNzYyOTY1MTY3NjhmZDc3ZGI0
OTU1ZDE4N2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaApAQCAtODMs
OSArODMsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGNvbXBsZXRlKCkgY29uc3Q7CiAKLSAgICAv
LyBGSVhNRTogV2h5IGRvIHdlIGhhdmUgdHdvIG5hbWVzIGZvciB0aGUgc2FtZSB0aGluZz8KLSAg
ICBib29sIGhhc1BlbmRpbmdMb2FkRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlTG9hZGVy
Lmhhc1BlbmRpbmdMb2FkRXZlbnQoKTsgfQotICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3QgeyByZXR1cm4gbV9pbWFnZUxvYWRlci5oYXNQZW5kaW5nTG9hZEV2ZW50KCk7IH0KKyAg
ICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VMb2FkZXIu
aGFzUGVuZGluZ0FjdGl2aXR5KCk7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFu
Z2VFbmRQb2ludCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0lt
YWdlTG9hZGVyLmgKaW5kZXggNzk2ZDcxODAyYWJkNzE0N2FmYWU1M2QyZjA0NDYzNTkwZDEyOWEy
Zi4uOTEwNzQ0NDE2ZTk3M2FjZGM1Y2IzYzg1YjA3ZjBlM2U5MTNkNmI5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ltYWdlTG9hZGVyLmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0TG9hZE1hbnVhbGx5KGJvb2wgbG9hZE1hbnVhbGx5KSB7IG1fbG9hZE1hbnVhbGx5ID0gbG9h
ZE1hbnVhbGx5OyB9CiAKICAgICBib29sIGhhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQoKSBjb25z
dCB7IHJldHVybiBtX2hhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQ7IH0KLSAgICBib29sIGhhc1Bl
bmRpbmdMb2FkRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1BlbmRpbmdMb2FkRXZlbnQ7IH0K
KyAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUGVuZGlu
Z0xvYWRFdmVudCB8fCBtX2hhc1BlbmRpbmdFcnJvckV2ZW50OyB9CiAKICAgICB2b2lkIGRpc3Bh
dGNoUGVuZGluZ0V2ZW50KEltYWdlRXZlbnRTZW5kZXIqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
SW1hZ2VFbGVtZW50LmNwcAppbmRleCA1NTU4ZDEwMjNmZGY4MGI5NGZhNGZkMzYyMTYwYzJmOGJj
ZTExN2NmLi4zNzY4MWYzYzQ3MzNmZTJlOGUxODE0NDI3MDBmNDdmY2Q0MDdmOTU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcApAQCAtMTk2LDcgKzE5Niw3IEBAIFJlbmRl
ck9iamVjdCogU1ZHSW1hZ2VFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJl
bmEsIFJlbmRlclN0eWxlKikKIAogYm9vbCBTVkdJbWFnZUVsZW1lbnQ6OmhhdmVMb2FkZWRSZXF1
aXJlZFJlc291cmNlcygpCiB7Ci0gICAgcmV0dXJuICFleHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
QmFzZVZhbHVlKCkgfHwgIW1faW1hZ2VMb2FkZXIuaGFzUGVuZGluZ0xvYWRFdmVudCgpOworICAg
IHJldHVybiAhZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEJhc2VWYWx1ZSgpIHx8ICFtX2ltYWdl
TG9hZGVyLmhhc1BlbmRpbmdBY3Rpdml0eSgpOwogfQogCiB2b2lkIFNWR0ltYWdlRWxlbWVudDo6
YXR0YWNoKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBhNDg2ZTYxNDM0NzYyYmYxZWE1NGVjZjFlMzE5ZGYyMjNiNWE0Yzlh
Li4zZTM3NjMwZWNhNWFkNDhiZjBhYmFkODUyNGFhZWRiNmUwNzZlZjUzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTItMDktMTMgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBEb24ndCBHQyBpbWcgZWxlbWVudHMgYmxvY2tlZCBieSBDU1AgdW50aWwgZXJyb3Ig
ZXZlbnRzIGZpcmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NDY3NworCisgICAgICAgIFJldmlld2VkIGJ5IEpvY2hlbiBFaXNpbmdlci4KKworICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ltZy1ibG9j
a2VkLW5vLWdjLWNyYXNoLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvaW1nLWJsb2NrZWQtbm8tZ2MtY3Jhc2gtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAgICAgRXhwbGljaXRseSB0cmlnZ2VyaW5nIEdDIGJlZm9yZSB0aGUgZXJyb3IgaW4g
dGhlIGhvcGVzIG9mIHByb3ZpbmcKKyAgICAgICAgICAgIHRoYXQgd2UgZG9uJ3QgY3Jhc2ggYW55
bW9yZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorICAgICAgICAgICAgVW5za2lwcGluZyBuby1sb25nZXIt
Y3Jhc2hpbmcgdGVzdC4KKwogMjAxMi0wOS0xMyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFp
bC5wb3pkbnlha292QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIEdhcmRlbmluZyBh
ZnRlciByMTI4MzkzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9pbWctYmxvY2tlZC1uby1nYy1jcmFzaC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS9pbWctYmxvY2tlZC1uby1nYy1jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2RmYzUx
MWMxZDM3OTNkNmE5Y2FlM2ExY2E1NzYxMjI0MzZlMTg3OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ltZy1i
bG9ja2VkLW5vLWdjLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK0NPTlNPTEUg
TUVTU0FHRTogUmVmdXNlZCB0byBsb2FkIHRoZSBpbWFnZSAnaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3NlY3VyaXR5L3Jlc291cmNlcy9hYmUucG5nJyBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xs
b3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiaW1nLXNyYyAnbm9uZSci
LgorCitBTEVSVDogUEFTUyAoMS8xKQorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBibG9ja2luZyBh
biBpbWFnZSB2aWEgQ1NQIGRvZXNuJ3QgY3Jhc2ggaWYgR0MgZXhlY3V0ZXMgYmVmb3JlIHRoZSBl
cnJvciBldmVudCBmaXJlcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ltZy1ibG9ja2VkLW5vLWdjLWNyYXNoLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9p
bWctYmxvY2tlZC1uby1nYy1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjZTM5ZDc2MDM2YTQ1Y2I5
OTdkY2FmYWM2ZDA3MGU5OTYyNGEzMmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9pbWctYmxvY2tlZC1uby1n
Yy1jcmFzaC5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxtZXRhIGh0dHAtZXF1aXY9IlgtV2ViS2l0LUNTUCIgY29udGVudD0iaW1nLXNyYyAnbm9uZSc7
IHNjcmlwdC1zcmMgJ3Vuc2FmZS1pbmxpbmUnIj4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIGZ1
bmN0aW9uIHRlc3QoKSB7CisgICAgICAgIHZhciBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdpbWcnKTsKKyAgICAgICAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
IGFsZXJ0KCdGQUlMICgxLzEpJyk7CisgICAgICAgICAgICBmaW5pc2hUZXN0aW5nKCk7CisgICAg
ICAgIH07CisgICAgICAgIGltZy5vbmVycm9yID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
YWxlcnQoJ1BBU1MgKDEvMSknKTsKKyAgICAgICAgICAgIGZpbmlzaFRlc3RpbmcoKTsKKyAgICAg
ICAgfTsKKyAgICAgICAgKGZ1bmN0aW9uICgpIHsgaW1nLnNyYyA9ICIuLi9yZXNvdXJjZXMvYWJl
LnBuZyI7IH0pKCk7CisgICAgICAgIGdjKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmluaXNo
VGVzdGluZygpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7IH0sIDAp
OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSd0ZXN0KCk7Jz4KKyAgICA8cD4KKyAgICAgICAgVGhpcyB0ZXN0
IGVuc3VyZXMgdGhhdCBibG9ja2luZyBhbiBpbWFnZSB2aWEgQ1NQIGRvZXNuJ3QgY3Jhc2ggaWYg
R0MKKyAgICAgICAgZXhlY3V0ZXMgYmVmb3JlIHRoZSBlcnJvciBldmVudCBmaXJlcy4KKyAgICA8
L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDY3ZWQ5MWMyMGIxZmM3NDZhZTc2YTViOWJlYjE0Mjk1ZmFjNDk0OWUuLjQ1
NDA2NTVmNTA5YWY5MzY5Yzk2Nzg4NTJkNWQ2OTU1ODZiNGM4MGMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC02NDIsOCArNjQyLDYgQEAgQlVHV0s2MTEx
OCA6IGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4tcmVzdHJpY3Rpb25zLmh0bWwgPSBUSU1FT1VUCiAK
IEJVR1dLODU3MDAgOiBmdWxsc2NyZWVuL25vbi1hbmNlc3Rvci1pZnJhbWUuaHRtbCA9IFRJTUVP
VVQKIAotQlVHV0s5NDY3NyA6IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L3JlZ2lzdGVyLWJ5cGFzc2luZy1zY2hlbWUuaHRtbCA9IFRJTUVPVVQKLQogQlVHV0s5NTUz
MCA6IGh0dHAvdGVzdHMvc2VjdXJpdHkvaW5hY3RpdmUtZG9jdW1lbnQtd2l0aC1lbXB0eS1zZWN1
cml0eS1vcmlnaW4uaHRtbCA9IFRJTUVPVVQKIAogQlVHV0s3MjY5OCA6IG1lZGlhL2F1ZGlvLWdh
cmJhZ2UtY29sbGVjdC5odG1sID0gVElNRU9VVApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXgg
ZGU1Y2Y5NTcyNWU1N2ZjOTU4NjUwZGVjZDEyNzczYjMxZjVkM2RiNC4uZWNkNzM4ZThmOGM2Nzcy
NjVjMzQ2MDExZTE4OGI5NmU4NjE2YTk1MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC03
NzksMTAgKzc3OSw2IEBAIGh0dHAvdGVzdHMvY29va2llcy9qcy1nZXQtYW5kLXNldC1odHRwLW9u
bHktY29va2llLmh0bWwKIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlv
bi10aW1pbmcvaHRtbC90ZXN0X3BlcmZvcm1hbmNlX2F0dHJpYnV0ZXNfZXhpc3RfaW5fb2JqZWN0
Lmh0bWwKIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvYXBwcm92ZWQvbmF2aWdhdGlvbi10aW1pbmcv
aHRtbC90ZXN0X3RpbWluZ194c2VydmVyX3JlZGlyZWN0Lmh0bWwKIAotIyBbUXRdW0dUS10gUkVH
UkVTU0lPTihyMTI2MTk0KTogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvcmVnaXN0ZXItYnlwYXNzaW5nLXNjaGVtZS5odG1sIGZhaWxzCi0jIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDY3NwotaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvcmVnaXN0ZXItYnlwYXNzaW5nLXNjaGVtZS5odG1sCi0KICMgPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ICMKICMgICAgICAgRmFpbGluZyB4bWxodHRwcmVxdWVzdCB0ZXN0cyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKICMgPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ICMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164198</attachid>
            <date>2012-09-14 11:33:24 -0700</date>
            <delta_ts>2012-09-14 14:11:00 -0700</delta_ts>
            <desc>Hrm.</desc>
            <filename>bug-94677-20120914203254.patch</filename>
            <type>text/plain</type>
            <size>12041</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQ5YjliNzI5MmVkZTM2
NzNlNDU4ZmQ0ODVkZTU2MmFlNzJiOWQ1NS4uMzQwYjYwYzRhODgwN2U4YmM3ZjI2OTkyMmZmOTEw
NTljNGE1NDcyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTA5LTE0ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRG9uJ3QgR0MgaW1nIGVsZW1l
bnRzIGJsb2NrZWQgYnkgQ1NQIHVudGlsIGVycm9yIGV2ZW50cyBmaXJlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ2NzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBKb2NoZW4gRWlzaW5nZXIuCisKKyAgICAgICAgQ3VycmVudGx5LCB0aGUgR0MgY2hl
Y2tzIHRoYXQgbm8gbG9hZCBldmVudHMgYXJlIHBlbmRpbmcgZm9yIGFuIGltYWdlCisgICAgICAg
IGVsZW1lbnQgYmVmb3JlIHJlY2xhaW1pbmcgaXRzIG1lbW9yeS4gSXQncyBub3QsIGhvd2V2ZXIs
IGNoZWNraW5nIHRoYXQKKyAgICAgICAgZXJyb3IgZXZlbnRzIGFyZSB0YWtlbiBjYXJlIG9mLiBU
aGlzIGxlYWRzIHRvIHRoZSBwb3RlbnRpYWwgb2YgZmlyaW5nIGFuCisgICAgICAgIGV2ZW50IG9u
IGEgRE9NIGVsZW1lbnQgdGhhdCB3ZSd2ZSBhbHJlYWR5IGNvbGxlY3RlZC4gVGhhdCdzIGEgQmFk
IFRoaW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRqdXN0cyB0aGUgY2hlY2sgdG8gY2F0Y2gg
ZXJyb3IgZXZlbnRzIGFzIHdlbGwgYXMgbG9hZAorICAgICAgICBldmVudHMsIHdoaWNoIHNob3Vs
ZCBlbnN1cmUgdGhhdCB0aGUgZWxlbWVudCBpc24ndCBjb2xsZWN0ZWQgdW50aWwgaXQncworICAg
ICAgICByZWFsbHkgcmVhZHkuIEFzIGEgZHJpdmUtYnksIGl0IGFsc28gY2hhbmdlcyB0aGUgbmFt
ZSBvZiB0aGUgY2hlY2sgdG8KKyAgICAgICAgJ2hhc1BlbmRpbmdBY3Rpdml0eScgZnJvbSAnaGFz
UGVuZGluZ0xvYWRFdmVudCcgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVnaXN0ZXItYnlwYXNzaW5nLXNjaGVtZS5odG1s
CisgICAgICAgIHNob3VsZCBubyBsb25nZXIgY3Jhc2gsIGFuZCB0aGUgbmV3CisgICAgICAgIGh0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ltZy1ibG9ja2VkLW5vLWdj
LWNyYXNoLmh0bWwKKyAgICAgICAgYW5kIGZhc3QvZXZlbnRzL29uZXJyb3ItaW1nLWFmdGVyLWdj
Lmh0bWwgc2hvdWxkbid0IGNyYXNoIGVpdGhlci4KKworICAgICAgICBUZXN0czogZmFzdC9ldmVu
dHMvb25lcnJvci1pbWctYWZ0ZXItZ2MuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvaW1nLWJsb2NrZWQtbm8tZ2MtY3Jhc2guaHRt
bAorCisgICAgICAgICogYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y2FsY3VsYXRlR3JvdXBJZCk6CisgICAgICAgICAgICBTd2l0Y2ggdG8gdXNpbmcg
SW1hZ2VMb2FkZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSgpLgorICAgICAgICAqIGh0bWwvSFRNTElt
YWdlRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6aGFzUGVu
ZGluZ0FjdGl2aXR5KToKKyAgICAgICAgICAgIFN3aXRjaCB0byB1c2luZyBJbWFnZUxvYWRlcjo6
aGFzUGVuZGluZ0FjdGl2aXR5KCkuCisgICAgICAgICogbG9hZGVyL0ltYWdlTG9hZGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6aGFzUGVuZGluZ0FjdGl2aXR5KToKKyAgICAg
ICAgICAgIEFkZGVkIGEgY2hlY2sgYWdhaW5zdCBwZW5kaW5nIGVycm9yIGV2ZW50cyBpbiBvcmRl
ciB0byBlbnN1cmUgdGhhdAorICAgICAgICAgICAgZWxlbWVudHMgYXJlbid0IGdhcmJhZ2UgY29s
bGVjdGVkIHByZW1hdHVyZWx5LiBBc2xvIHJlbmFtZWQgZnJvbQorICAgICAgICAgICAgSW1hZ2VM
b2FkZXI6Omhhc1BlbmRpbmdMb2FkRXZlbnQgZm9yIGNsYXJpdHkuCisgICAgICAgICogc3ZnL1NW
R0ltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUVsZW1lbnQ6Omhh
dmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcyk6CisgICAgICAgICAgICBTd2l0Y2ggdG8gdXNpbmcg
SW1hZ2VMb2FkZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSgpLgorCiAyMDEyLTA5LTEzICBLZW5uZXRo
IFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBbRUZM
XSBVc2UgUmVmUHRyIGZvciBzdG9yaW5nIGNhaXJvX3N1cmZhY2VfdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCmluZGV4IDU4NzcxMWYwYzRlZDdkZWJm
ODVlOTg0NjBhYWM0NTI2ZjJiNDlmYTAuLmYzZTIxNzk5M2EyNGJmNzJmN2Q0ZGU5OTUxMDZlOGFm
NTUzODRiOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxl
ci5jcHAKQEAgLTI0MSw3ICsyNDEsNyBAQCB0eXBlZGVmIFZlY3RvcjxHcm91cGVySXRlbT4gR3Jv
dXBlckxpc3Q7CiAvLyBlbGVtZW50IG9mIHRoZSB0cmVlIHRvIHdoaWNoIGl0IGJlbG9uZ3MuCiBz
dGF0aWMgR3JvdXBJZCBjYWxjdWxhdGVHcm91cElkKE5vZGUqIG5vZGUpCiB7Ci0gICAgaWYgKG5v
ZGUtPmluRG9jdW1lbnQoKSB8fCAobm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmltZ1RhZykg
JiYgc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KG5vZGUpLT5oYXNQZW5kaW5nTG9hZEV2
ZW50KCkpKQorICAgIGlmIChub2RlLT5pbkRvY3VtZW50KCkgfHwgKG5vZGUtPmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjppbWdUYWcpICYmIHN0YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1lbnQqPihub2Rl
KS0+aGFzUGVuZGluZ0FjdGl2aXR5KCkpKQogICAgICAgICByZXR1cm4gR3JvdXBJZChub2RlLT5k
b2N1bWVudCgpKTsKIAogICAgIE5vZGUqIHJvb3QgPSBub2RlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbWFnZUVsZW1lbnQuaAppbmRleCA0NjU3ZDdjZDViYTFmODNiMGQ5NzA4ZWVlMGUyOGRmMmY3
MGNkYWNkLi5kMmQxMWI4ZWJlMjNlNzYyOTY1MTY3NjhmZDc3ZGI0OTU1ZDE4N2ViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaApAQCAtODMsOSArODMsNyBAQCBwdWJsaWM6
CiAKICAgICBib29sIGNvbXBsZXRlKCkgY29uc3Q7CiAKLSAgICAvLyBGSVhNRTogV2h5IGRvIHdl
IGhhdmUgdHdvIG5hbWVzIGZvciB0aGUgc2FtZSB0aGluZz8KLSAgICBib29sIGhhc1BlbmRpbmdM
b2FkRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlTG9hZGVyLmhhc1BlbmRpbmdMb2FkRXZl
bnQoKTsgfQotICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgeyByZXR1cm4gbV9p
bWFnZUxvYWRlci5oYXNQZW5kaW5nTG9hZEV2ZW50KCk7IH0KKyAgICBib29sIGhhc1BlbmRpbmdB
Y3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VMb2FkZXIuaGFzUGVuZGluZ0FjdGl2aXR5
KCk7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9J
bWFnZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmgKaW5kZXgg
Nzk2ZDcxODAyYWJkNzE0N2FmYWU1M2QyZjA0NDYzNTkwZDEyOWEyZi4uOTEwNzQ0NDE2ZTk3M2Fj
ZGM1Y2IzYzg1YjA3ZjBlM2U5MTNkNmI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ltYWdlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVy
LmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TG9hZE1hbnVhbGx5KGJv
b2wgbG9hZE1hbnVhbGx5KSB7IG1fbG9hZE1hbnVhbGx5ID0gbG9hZE1hbnVhbGx5OyB9CiAKICAg
ICBib29sIGhhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1Bl
bmRpbmdCZWZvcmVMb2FkRXZlbnQ7IH0KLSAgICBib29sIGhhc1BlbmRpbmdMb2FkRXZlbnQoKSBj
b25zdCB7IHJldHVybiBtX2hhc1BlbmRpbmdMb2FkRXZlbnQ7IH0KKyAgICBib29sIGhhc1BlbmRp
bmdBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUGVuZGluZ0xvYWRFdmVudCB8fCBtX2hh
c1BlbmRpbmdFcnJvckV2ZW50OyB9CiAKICAgICB2b2lkIGRpc3BhdGNoUGVuZGluZ0V2ZW50KElt
YWdlRXZlbnRTZW5kZXIqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0lt
YWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcApp
bmRleCA1NTU4ZDEwMjNmZGY4MGI5NGZhNGZkMzYyMTYwYzJmOGJjZTExN2NmLi4zNzY4MWYzYzQ3
MzNmZTJlOGUxODE0NDI3MDBmNDdmY2Q0MDdmOTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1h
Z2VFbGVtZW50LmNwcApAQCAtMTk2LDcgKzE5Niw3IEBAIFJlbmRlck9iamVjdCogU1ZHSW1hZ2VF
bGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikK
IAogYm9vbCBTVkdJbWFnZUVsZW1lbnQ6OmhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcygpCiB7
Ci0gICAgcmV0dXJuICFleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQmFzZVZhbHVlKCkgfHwgIW1f
aW1hZ2VMb2FkZXIuaGFzUGVuZGluZ0xvYWRFdmVudCgpOworICAgIHJldHVybiAhZXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZEJhc2VWYWx1ZSgpIHx8ICFtX2ltYWdlTG9hZGVyLmhhc1BlbmRpbmdB
Y3Rpdml0eSgpOwogfQogCiB2b2lkIFNWR0ltYWdlRWxlbWVudDo6YXR0YWNoKCkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBh
NDg2ZTYxNDM0NzYyYmYxZWE1NGVjZjFlMzE5ZGYyMjNiNWE0YzlhLi4yNmVkMTg5ZjJlNzgwOTUw
OGJiODExMDQ2OTAyMjZjNThlZTNiZjFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDkt
MTQgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKworICAgICAgICBEb24ndCBHQyBp
bWcgZWxlbWVudHMgYmxvY2tlZCBieSBDU1AgdW50aWwgZXJyb3IgZXZlbnRzIGZpcmUuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDY3NworCisgICAg
ICAgIFJldmlld2VkIGJ5IEpvY2hlbiBFaXNpbmdlci4KKworICAgICAgICAqIGZhc3QvZXZlbnRz
L29uZXJyb3ItaW1nLWFmdGVyLWdjLmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvb25lcnJv
ci1pbWctYWZ0ZXItZ2MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ltZy1ibG9ja2VkLW5vLWdjLWNyYXNoLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvaW1nLWJs
b2NrZWQtbm8tZ2MtY3Jhc2gtZXhwZWN0ZWQudHh0OgorICAgICAgICAgICAgRXhwbGljaXRseSB0
cmlnZ2VyaW5nIEdDIGJlZm9yZSB0aGUgZXJyb3IgaW4gdGhlIGhvcGVzIG9mIHByb3ZpbmcKKyAg
ICAgICAgICAgIHRoYXQgd2UgZG9uJ3QgY3Jhc2ggYW55bW9yZS4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgor
ICAgICAgICAgICAgVW5za2lwcGluZyBuby1sb25nZXItY3Jhc2hpbmcgdGVzdC4KKwogMjAxMi0w
OS0xMyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
IAogICAgICAgICBbRUZMXVtXSzJdIEdhcmRlbmluZyBhZnRlciByMTI4MzkzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9vbmVycm9yLWltZy1hZnRlci1nYy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9vbmVycm9yLWltZy1hZnRlci1nYy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDk4MjVlZGJlZjFmNDRjMWRlZWU0Y2MwN2Y2YjViMzE1MjM4NDU2
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL29uZXJyb3ItaW1n
LWFmdGVyLWdjLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK0FMRVJUOiBQQVNTICgxLzEp
CitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGEgbm9ybWFsIGltYWdlIGVycm9yIGRvZXNuJ3QgY3Jh
c2ggaWYgR0Mgb2NjdXJzIGJlZm9yZSB0aGUgZXJyb3IgZXZlbnQgZmlyZXMuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9vbmVycm9yLWltZy1hZnRlci1nYy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvb25lcnJvci1pbWctYWZ0ZXItZ2MuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45MDFlZWQwMDY0ZmIxOTU3Yzg1MmFmOWZiYzE4YWUzNzA0YzNlYThmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvb25lcnJvci1pbWctYWZ0ZXItZ2MuaHRtbApA
QCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKworICAgIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgICAgIChmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICB2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7Cisg
ICAgICAgICAgICBpbWcub25sb2FkID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGFs
ZXJ0KCdGQUlMICgxLzEpJyk7CisgICAgICAgICAgICAgICAgZmluaXNoVGVzdGluZygpOworICAg
ICAgICAgICAgfTsKKyAgICAgICAgICAgIGltZy5vbmVycm9yID0gZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgICAgIGFsZXJ0KCdQQVNTICgxLzEpJyk7CisgICAgICAgICAgICAgICAgZmluaXNo
VGVzdGluZygpOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGltZy5zcmMgPSAiZm9vIjsK
KyAgICAgICAgfSkoKTsKKyAgICAgICAgZ2MoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaW5p
c2hUZXN0aW5nKCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAg
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsgfSwg
MCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9J3Rlc3QoKTsnPgorICAgIDxwPgorICAgICAgICBUaGlzIHRl
c3QgZW5zdXJlcyB0aGF0IGEgbm9ybWFsIGltYWdlIGVycm9yIGRvZXNuJ3QgY3Jhc2ggaWYgR0Mg
b2NjdXJzCisgICAgICAgIGJlZm9yZSB0aGUgZXJyb3IgZXZlbnQgZmlyZXMuCisgICAgPC9wPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvaW1nLWJsb2NrZWQtbm8tZ2MtY3Jhc2gtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvaW1nLWJsb2NrZWQtbm8tZ2MtY3Jhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNk
ZmM1MTFjMWQzNzkzZDZhOWNhZTNhMWNhNTc2MTIyNDM2ZTE4NzgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9p
bWctYmxvY2tlZC1uby1nYy1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDT05T
T0xFIE1FU1NBR0U6IFJlZnVzZWQgdG8gbG9hZCB0aGUgaW1hZ2UgJ2h0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvYWJlLnBuZycgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUg
Zm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogImltZy1zcmMgJ25v
bmUnIi4KKworQUxFUlQ6IFBBU1MgKDEvMSkKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgYmxvY2tp
bmcgYW4gaW1hZ2UgdmlhIENTUCBkb2Vzbid0IGNyYXNoIGlmIEdDIGV4ZWN1dGVzIGJlZm9yZSB0
aGUgZXJyb3IgZXZlbnQgZmlyZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9pbWctYmxvY2tlZC1uby1nYy1jcmFzaC5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvaW1nLWJsb2NrZWQtbm8tZ2MtY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWIxYmJlNWFjNjZi
N2QxMDQ5NmUzNGVlN2Y0NjM5OGEzYjI4ZjcyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvaW1nLWJsb2NrZWQt
bm8tZ2MtY3Jhc2guaHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8bWV0YSBodHRwLWVxdWl2PSJYLVdlYktpdC1DU1AiIGNvbnRlbnQ9ImltZy1zcmMgJ25v
bmUnOyBzY3JpcHQtc3JjICd1bnNhZmUtaW5saW5lJyI+Cis8c2NyaXB0PgorICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAg
ICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICAoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
dmFyIGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOworICAgICAgICAgICAgaW1n
Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBhbGVydCgnRkFJTCAoMS8x
KScpOworICAgICAgICAgICAgICAgIGZpbmlzaFRlc3RpbmcoKTsKKyAgICAgICAgICAgIH07Cisg
ICAgICAgICAgICBpbWcub25lcnJvciA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBh
bGVydCgnUEFTUyAoMS8xKScpOworICAgICAgICAgICAgICAgIGZpbmlzaFRlc3RpbmcoKTsKKyAg
ICAgICAgICAgIH07CisgICAgICAgICAgICBpbWcuc3JjID0gIi4uL3Jlc291cmNlcy9hYmUucG5n
IjsKKyAgICAgICAgfSkoKTsKKyAgICAgICAgZ2MoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBm
aW5pc2hUZXN0aW5nKCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsg
fSwgMCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9J3Rlc3QoKTsnPgorICAgIDxwPgorICAgICAgICBUaGlz
IHRlc3QgZW5zdXJlcyB0aGF0IGJsb2NraW5nIGFuIGltYWdlIHZpYSBDU1AgZG9lc24ndCBjcmFz
aCBpZiBHQworICAgICAgICBleGVjdXRlcyBiZWZvcmUgdGhlIGVycm9yIGV2ZW50IGZpcmVzLgor
ICAgIDwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggNjdlZDkxYzIwYjFmYzc0NmFlNzZhNWI5YmViMTQyOTVmYWM0OTQ5
ZS4uNDU0MDY1NWY1MDlhZjkzNjljOTY3ODg1MmQ1ZDY5NTU4NmI0YzgwYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTY0Miw4ICs2NDIsNiBAQCBCVUdX
SzYxMTE4IDogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1yZXN0cmljdGlvbnMuaHRtbCA9IFRJTUVP
VVQKIAogQlVHV0s4NTcwMCA6IGZ1bGxzY3JlZW4vbm9uLWFuY2VzdG9yLWlmcmFtZS5odG1sID0g
VElNRU9VVAogCi1CVUdXSzk0Njc3IDogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvcmVnaXN0ZXItYnlwYXNzaW5nLXNjaGVtZS5odG1sID0gVElNRU9VVAotCiBCVUdX
Szk1NTMwIDogaHR0cC90ZXN0cy9zZWN1cml0eS9pbmFjdGl2ZS1kb2N1bWVudC13aXRoLWVtcHR5
LXNlY3VyaXR5LW9yaWdpbi5odG1sID0gVElNRU9VVAogCiBCVUdXSzcyNjk4IDogbWVkaWEvYXVk
aW8tZ2FyYmFnZS1jb2xsZWN0Lmh0bWwgPSBUSU1FT1VUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApp
bmRleCBkZTVjZjk1NzI1ZTU3ZmM5NTg2NTBkZWNkMTI3NzNiMzFmNWQzZGI0Li5lY2Q3MzhlOGY4
YzY3NzI2NWMzNDYwMTFlMTg4Yjk2ZTg2MTZhOTUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQK
QEAgLTc3OSwxMCArNzc5LDYgQEAgaHR0cC90ZXN0cy9jb29raWVzL2pzLWdldC1hbmQtc2V0LWh0
dHAtb25seS1jb29raWUuaHRtbAogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZp
Z2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfcGVyZm9ybWFuY2VfYXR0cmlidXRlc19leGlzdF9pbl9v
YmplY3QuaHRtbAogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRp
bWluZy9odG1sL3Rlc3RfdGltaW5nX3hzZXJ2ZXJfcmVkaXJlY3QuaHRtbAogCi0jIFtRdF1bR1RL
XSBSRUdSRVNTSU9OKHIxMjYxOTQpOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9yZWdpc3Rlci1ieXBhc3Npbmctc2NoZW1lLmh0bWwgZmFpbHMKLSMgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0Njc3Ci1odHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZWdpc3Rlci1ieXBhc3Npbmctc2NoZW1lLmh0bWwKLQog
IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0gIwogIyAgICAgICBGYWlsaW5nIHhtbGh0dHByZXF1ZXN0IHRl
c3RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwogIyA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0gIwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164223</attachid>
            <date>2012-09-14 14:11:07 -0700</date>
            <delta_ts>2012-09-17 02:04:50 -0700</delta_ts>
            <desc>Fewer curly bits.</desc>
            <filename>bug-94677-20120914231036.patch</filename>
            <type>text/plain</type>
            <size>12062</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc5OWQwOGE2MWQ5MDY1
NThiYzM5N2I5NmRiOWMxOGZmNDkxMjQxOS4uYTcwMWRhMmE3NDE1NGZkNmIyMGZlOWM0NWYxOTY1
YmUzMjYzYjkyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTA5LTE0ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRG9uJ3QgR0MgaW1nIGVsZW1l
bnRzIGJsb2NrZWQgYnkgQ1NQIHVudGlsIGVycm9yIGV2ZW50cyBmaXJlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ2NzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBKb2NoZW4gRWlzaW5nZXIuCisKKyAgICAgICAgQ3VycmVudGx5LCB0aGUgR0MgY2hl
Y2tzIHRoYXQgbm8gbG9hZCBldmVudHMgYXJlIHBlbmRpbmcgZm9yIGFuIGltYWdlCisgICAgICAg
IGVsZW1lbnQgYmVmb3JlIHJlY2xhaW1pbmcgaXRzIG1lbW9yeS4gSXQncyBub3QsIGhvd2V2ZXIs
IGNoZWNraW5nIHRoYXQKKyAgICAgICAgZXJyb3IgZXZlbnRzIGFyZSB0YWtlbiBjYXJlIG9mLiBU
aGlzIGxlYWRzIHRvIHRoZSBwb3RlbnRpYWwgb2YgZmlyaW5nIGFuCisgICAgICAgIGV2ZW50IG9u
IGEgRE9NIGVsZW1lbnQgdGhhdCB3ZSd2ZSBhbHJlYWR5IGNvbGxlY3RlZC4gVGhhdCdzIGEgQmFk
IFRoaW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRqdXN0cyB0aGUgY2hlY2sgdG8gY2F0Y2gg
ZXJyb3IgZXZlbnRzIGFzIHdlbGwgYXMgbG9hZAorICAgICAgICBldmVudHMsIHdoaWNoIHNob3Vs
ZCBlbnN1cmUgdGhhdCB0aGUgZWxlbWVudCBpc24ndCBjb2xsZWN0ZWQgdW50aWwgaXQncworICAg
ICAgICByZWFsbHkgcmVhZHkuIEFzIGEgZHJpdmUtYnksIGl0IGFsc28gY2hhbmdlcyB0aGUgbmFt
ZSBvZiB0aGUgY2hlY2sgdG8KKyAgICAgICAgJ2hhc1BlbmRpbmdBY3Rpdml0eScgZnJvbSAnaGFz
UGVuZGluZ0xvYWRFdmVudCcgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVnaXN0ZXItYnlwYXNzaW5nLXNjaGVtZS5odG1s
CisgICAgICAgIHNob3VsZCBubyBsb25nZXIgY3Jhc2gsIGFuZCB0aGUgbmV3CisgICAgICAgIGh0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ltZy1ibG9ja2VkLW5vLWdj
LWNyYXNoLmh0bWwKKyAgICAgICAgYW5kIGZhc3QvZXZlbnRzL29uZXJyb3ItaW1nLWFmdGVyLWdj
Lmh0bWwgc2hvdWxkbid0IGNyYXNoIGVpdGhlci4KKworICAgICAgICBUZXN0czogZmFzdC9ldmVu
dHMvb25lcnJvci1pbWctYWZ0ZXItZ2MuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvaW1nLWJsb2NrZWQtbm8tZ2MtY3Jhc2guaHRt
bAorCisgICAgICAgICogYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y2FsY3VsYXRlR3JvdXBJZCk6CisgICAgICAgICAgICBTd2l0Y2ggdG8gdXNpbmcg
SW1hZ2VMb2FkZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSgpLgorICAgICAgICAqIGh0bWwvSFRNTElt
YWdlRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6aGFzUGVu
ZGluZ0FjdGl2aXR5KToKKyAgICAgICAgICAgIFN3aXRjaCB0byB1c2luZyBJbWFnZUxvYWRlcjo6
aGFzUGVuZGluZ0FjdGl2aXR5KCkuCisgICAgICAgICogbG9hZGVyL0ltYWdlTG9hZGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6aGFzUGVuZGluZ0FjdGl2aXR5KToKKyAgICAg
ICAgICAgIEFkZGVkIGEgY2hlY2sgYWdhaW5zdCBwZW5kaW5nIGVycm9yIGV2ZW50cyBpbiBvcmRl
ciB0byBlbnN1cmUgdGhhdAorICAgICAgICAgICAgZWxlbWVudHMgYXJlbid0IGdhcmJhZ2UgY29s
bGVjdGVkIHByZW1hdHVyZWx5LiBBc2xvIHJlbmFtZWQgZnJvbQorICAgICAgICAgICAgSW1hZ2VM
b2FkZXI6Omhhc1BlbmRpbmdMb2FkRXZlbnQgZm9yIGNsYXJpdHkuCisgICAgICAgICogc3ZnL1NW
R0ltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUVsZW1lbnQ6Omhh
dmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcyk6CisgICAgICAgICAgICBTd2l0Y2ggdG8gdXNpbmcg
SW1hZ2VMb2FkZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSgpLgorCiAyMDEyLTA5LTE0ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjEyNjcx
Nyk6IEl0IG1hZGUgaW5zcGVjdG9yL3N0eWxlcy9tZWRpYS1xdWVyaWVzLmh0bWwgZmFpbC9mbGFr
ZXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcAppbmRl
eCA1ODc3MTFmMGM0ZWQ3ZGViZjg1ZTk4NDYwYWFjNDUyNmYyYjQ5ZmEwLi5mM2UyMTc5OTNhMjRi
ZjcyZjdkNGRlOTk1MTA2ZThhZjU1Mzg0YjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCkBAIC0yNDEsNyArMjQxLDcgQEAgdHlwZWRlZiBWZWN0
b3I8R3JvdXBlckl0ZW0+IEdyb3VwZXJMaXN0OwogLy8gZWxlbWVudCBvZiB0aGUgdHJlZSB0byB3
aGljaCBpdCBiZWxvbmdzLgogc3RhdGljIEdyb3VwSWQgY2FsY3VsYXRlR3JvdXBJZChOb2RlKiBu
b2RlKQogewotICAgIGlmIChub2RlLT5pbkRvY3VtZW50KCkgfHwgKG5vZGUtPmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjppbWdUYWcpICYmIHN0YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1lbnQqPihub2Rl
KS0+aGFzUGVuZGluZ0xvYWRFdmVudCgpKSkKKyAgICBpZiAobm9kZS0+aW5Eb2N1bWVudCgpIHx8
IChub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW1nVGFnKSAmJiBzdGF0aWNfY2FzdDxIVE1M
SW1hZ2VFbGVtZW50Kj4obm9kZSktPmhhc1BlbmRpbmdBY3Rpdml0eSgpKSkKICAgICAgICAgcmV0
dXJuIEdyb3VwSWQobm9kZS0+ZG9jdW1lbnQoKSk7CiAKICAgICBOb2RlKiByb290ID0gbm9kZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKaW5kZXggNDY1N2Q3Y2Q1YmExZjgz
YjBkOTcwOGVlZTBlMjhkZjJmNzBjZGFjZC4uZDJkMTFiOGViZTIzZTc2Mjk2NTE2NzY4ZmQ3N2Ri
NDk1NWQxODdlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKQEAgLTgz
LDkgKzgzLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBjb21wbGV0ZSgpIGNvbnN0OwogCi0gICAg
Ly8gRklYTUU6IFdoeSBkbyB3ZSBoYXZlIHR3byBuYW1lcyBmb3IgdGhlIHNhbWUgdGhpbmc/Ci0g
ICAgYm9vbCBoYXNQZW5kaW5nTG9hZEV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZUxvYWRl
ci5oYXNQZW5kaW5nTG9hZEV2ZW50KCk7IH0KLSAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgp
IGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VMb2FkZXIuaGFzUGVuZGluZ0xvYWRFdmVudCgpOyB9Cisg
ICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlTG9hZGVy
Lmhhc1BlbmRpbmdBY3Rpdml0eSgpOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ29udGFpblJh
bmdlRW5kUG9pbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9J
bWFnZUxvYWRlci5oCmluZGV4IDc5NmQ3MTgwMmFiZDcxNDdhZmFlNTNkMmYwNDQ2MzU5MGQxMjlh
MmYuLjkxMDc0NDQxNmU5NzNhY2RjNWNiM2M4NWIwN2YwZTNlOTEzZDZiOWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9JbWFnZUxvYWRlci5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldExvYWRNYW51YWxseShib29sIGxvYWRNYW51YWxseSkgeyBtX2xvYWRNYW51YWxseSA9IGxv
YWRNYW51YWxseTsgfQogCiAgICAgYm9vbCBoYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KCkgY29u
c3QgeyByZXR1cm4gbV9oYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50OyB9Ci0gICAgYm9vbCBoYXNQ
ZW5kaW5nTG9hZEV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNQZW5kaW5nTG9hZEV2ZW50OyB9
CisgICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCB7IHJldHVybiBtX2hhc1BlbmRp
bmdMb2FkRXZlbnQgfHwgbV9oYXNQZW5kaW5nRXJyb3JFdmVudDsgfQogCiAgICAgdm9pZCBkaXNw
YXRjaFBlbmRpbmdFdmVudChJbWFnZUV2ZW50U2VuZGVyKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ltYWdlRWxlbWVudC5jcHAKaW5kZXggNTU1OGQxMDIzZmRmODBiOTRmYTRmZDM2MjE2MGMyZjhi
Y2UxMTdjZi4uMzc2ODFmM2M0NzMzZmUyZThlMTgxNDQyNzAwZjQ3ZmNkNDA3Zjk1NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKQEAgLTE5Niw3ICsxOTYsNyBAQCBSZW5k
ZXJPYmplY3QqIFNWR0ltYWdlRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFy
ZW5hLCBSZW5kZXJTdHlsZSopCiAKIGJvb2wgU1ZHSW1hZ2VFbGVtZW50OjpoYXZlTG9hZGVkUmVx
dWlyZWRSZXNvdXJjZXMoKQogewotICAgIHJldHVybiAhZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZEJhc2VWYWx1ZSgpIHx8ICFtX2ltYWdlTG9hZGVyLmhhc1BlbmRpbmdMb2FkRXZlbnQoKTsKKyAg
ICByZXR1cm4gIWV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRCYXNlVmFsdWUoKSB8fCAhbV9pbWFn
ZUxvYWRlci5oYXNQZW5kaW5nQWN0aXZpdHkoKTsKIH0KIAogdm9pZCBTVkdJbWFnZUVsZW1lbnQ6
OmF0dGFjaCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggZDlmMmFiYTYwNzQ5YjMyODdhM2IxYWRhNzMyODY0NmNmNDRlMGQz
NS4uYmEwYjk4ZTIzZWRiNGZjODFmZDEzODJiYjIxNTczYzI0YmUxYWMzNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIwIEBACisyMDEyLTA5LTE0ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgRG9uJ3QgR0MgaW1nIGVsZW1lbnRzIGJsb2NrZWQgYnkgQ1NQIHVudGlsIGVycm9y
IGV2ZW50cyBmaXJlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTQ2NzcKKworICAgICAgICBSZXZpZXdlZCBieSBKb2NoZW4gRWlzaW5nZXIuCisKKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy9vbmVycm9yLWltZy1hZnRlci1nYy5odG1sOgorICAgICAgICAq
IGZhc3QvZXZlbnRzL29uZXJyb3ItaW1nLWFmdGVyLWdjLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9pbWctYmxvY2tlZC1u
by1nYy1jcmFzaC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L2ltZy1ibG9ja2VkLW5vLWdjLWNyYXNoLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgICAgIEV4cGxpY2l0bHkgdHJpZ2dlcmluZyBHQyBiZWZvcmUgdGhlIGVycm9yIGluIHRoZSBo
b3BlcyBvZiBwcm92aW5nCisgICAgICAgICAgICB0aGF0IHdlIGRvbid0IGNyYXNoIGFueW1vcmUu
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxh
dGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgICAgIFVuc2tpcHBpbmcgbm8tbG9uZ2VyLWNyYXNo
aW5nIHRlc3QuCisKIDIwMTItMDktMTQgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBDb21wbGV0ZSBmb3Jnb3R0ZW4gcmViYXNlbGluZS4gU2VlIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Njc1MS4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL29uZXJyb3ItaW1nLWFmdGVyLWdjLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL29uZXJyb3ItaW1nLWFmdGVyLWdjLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40OTgyNWVkYmVmMWY0NGMxZGVlZTRjYzA3ZjZiNWIzMTUyMzg0NTY0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvb25lcnJvci1pbWctYWZ0ZXItZ2Mt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorQUxFUlQ6IFBBU1MgKDEvMSkKK1RoaXMgdGVz
dCBlbnN1cmVzIHRoYXQgYSBub3JtYWwgaW1hZ2UgZXJyb3IgZG9lc24ndCBjcmFzaCBpZiBHQyBv
Y2N1cnMgYmVmb3JlIHRoZSBlcnJvciBldmVudCBmaXJlcy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL29uZXJyb3ItaW1nLWFmdGVyLWdjLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9vbmVycm9yLWltZy1hZnRlci1nYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyMTZjM2Zi
MGQ5ZjA1NTZkMWY1MWE3NDUzZjFiYjQ1ZDdkYzU2OGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9vbmVycm9yLWltZy1hZnRlci1nYy5odG1sCkBAIC0wLDAgKzEs
MzggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
CisgICAgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICAgICAgKGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIHZhciBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKKyAgICAgICAgICAg
IGltZy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgYWxlcnQoJ0ZBSUwg
KDEvMSknKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0aW5nKCk7CisgICAgICAgICAgICB9
OworICAgICAgICAgICAgaW1nLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAg
ICAgYWxlcnQoJ1BBU1MgKDEvMSknKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0aW5nKCk7
CisgICAgICAgICAgICB9OworICAgICAgICAgICAgaW1nLnNyYyA9ICJmb28iOworICAgICAgICB9
KSgpOworICAgICAgICBnYygpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3Rpbmco
KSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24gKCkgeyB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsgfSwgMCk7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSd0
ZXN0KCk7Jz4KKyAgICA8cD4KKyAgICAgICAgVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBhIG5vcm1h
bCBpbWFnZSBlcnJvciBkb2Vzbid0IGNyYXNoIGlmIEdDIG9jY3VycworICAgICAgICBiZWZvcmUg
dGhlIGVycm9yIGV2ZW50IGZpcmVzLgorICAgIDwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L2ltZy1ibG9ja2VkLW5vLWdjLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ltZy1ibG9ja2VkLW5vLWdj
LWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZGZjNTExYzFkMzc5M2Q2YTljYWUzYTFj
YTU3NjEyMjQzNmUxODc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvaW1nLWJsb2NrZWQtbm8tZ2MtY3Jhc2gt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorQ09OU09MRSBNRVNTQUdFOiBSZWZ1c2VkIHRv
IGxvYWQgdGhlIGltYWdlICdodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvcmVzb3VyY2Vz
L2FiZS5wbmcnIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3Vy
aXR5IFBvbGljeSBkaXJlY3RpdmU6ICJpbWctc3JjICdub25lJyIuCisKK0FMRVJUOiBQQVNTICgx
LzEpCitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGJsb2NraW5nIGFuIGltYWdlIHZpYSBDU1AgZG9l
c24ndCBjcmFzaCBpZiBHQyBleGVjdXRlcyBiZWZvcmUgdGhlIGVycm9yIGV2ZW50IGZpcmVzLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvaW1nLWJsb2NrZWQtbm8tZ2MtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2ltZy1ibG9ja2VkLW5vLWdjLWNy
YXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjhkZDRiMGE5MWM5ZGIwOTJlYzdlMjFlMmY1MDFhYzNkOWVh
ODA2MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L2ltZy1ibG9ja2VkLW5vLWdjLWNyYXNoLmh0bWwKQEAgLTAs
MCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPG1ldGEgaHR0cC1lcXVpdj0i
WC1XZWJLaXQtQ1NQIiBjb250ZW50PSJpbWctc3JjICdub25lJzsgc2NyaXB0LXNyYyAndW5zYWZl
LWlubGluZSciPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgZnVuY3Rpb24gdGVzdCgpIHsKKyAg
ICAgICAgKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHZhciBpbWcgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdpbWcnKTsKKyAgICAgICAgICAgIGltZy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICAgICAgYWxlcnQoJ0ZBSUwgKDEvMSknKTsKKyAgICAgICAgICAgICAgICBm
aW5pc2hUZXN0aW5nKCk7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgaW1nLm9uZXJyb3Ig
PSBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgYWxlcnQoJ1BBU1MgKDEvMSknKTsKKyAg
ICAgICAgICAgICAgICBmaW5pc2hUZXN0aW5nKCk7CisgICAgICAgICAgICB9OworICAgICAgICAg
ICAgaW1nLnNyYyA9ICIuLi9yZXNvdXJjZXMvYWJlLnBuZyI7CisgICAgICAgIH0pKCk7CisgICAg
ICAgIGdjKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdGluZygpIHsKKyAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlv
biAoKSB7IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOyB9LCAwKTsKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9J3Rlc3QoKTsnPgor
ICAgIDxwPgorICAgICAgICBUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGJsb2NraW5nIGFuIGltYWdl
IHZpYSBDU1AgZG9lc24ndCBjcmFzaCBpZiBHQworICAgICAgICBleGVjdXRlcyBiZWZvcmUgdGhl
IGVycm9yIGV2ZW50IGZpcmVzLgorICAgIDwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZmJmYWIxNzIzZDJhMWM4ZDQ0
MTlkYThjODk1MmVmZWJmYjcxZjJkMS4uMTA5NWYwN2RmN2E4ZjM2MzQ3MzExNzU5ODkwMDFkMDBh
MWUwODA2NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTYzNyw4ICs2MzcsNiBAQCBCVUdXSzYxMTE4IDogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1yZXN0
cmljdGlvbnMuaHRtbCA9IFRJTUVPVVQKIAogQlVHV0s4NTcwMCA6IGZ1bGxzY3JlZW4vbm9uLWFu
Y2VzdG9yLWlmcmFtZS5odG1sID0gVElNRU9VVAogCi1CVUdXSzk0Njc3IDogaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVnaXN0ZXItYnlwYXNzaW5nLXNjaGVtZS5o
dG1sID0gVElNRU9VVAotCiBCVUdXSzk1NTMwIDogaHR0cC90ZXN0cy9zZWN1cml0eS9pbmFjdGl2
ZS1kb2N1bWVudC13aXRoLWVtcHR5LXNlY3VyaXR5LW9yaWdpbi5odG1sID0gVElNRU9VVAogCiBC
VUdXSzcyNjk4IDogbWVkaWEvYXVkaW8tZ2FyYmFnZS1jb2xsZWN0Lmh0bWwgPSBUSU1FT1VUCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCBkZTVjZjk1NzI1ZTU3ZmM5NTg2NTBkZWNkMTI3NzNi
MzFmNWQzZGI0Li5lY2Q3MzhlOGY4YzY3NzI2NWMzNDYwMTFlMTg4Yjk2ZTg2MTZhOTUxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTc3OSwxMCArNzc5LDYgQEAgaHR0cC90ZXN0cy9jb29r
aWVzL2pzLWdldC1hbmQtc2V0LWh0dHAtb25seS1jb29raWUuaHRtbAogaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9hcHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfcGVyZm9ybWFuY2Vf
YXR0cmlidXRlc19leGlzdF9pbl9vYmplY3QuaHRtbAogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9h
cHByb3ZlZC9uYXZpZ2F0aW9uLXRpbWluZy9odG1sL3Rlc3RfdGltaW5nX3hzZXJ2ZXJfcmVkaXJl
Y3QuaHRtbAogCi0jIFtRdF1bR1RLXSBSRUdSRVNTSU9OKHIxMjYxOTQpOiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZWdpc3Rlci1ieXBhc3Npbmctc2NoZW1lLmh0
bWwgZmFpbHMKLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0Njc3
Ci1odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZWdpc3Rlci1ieXBh
c3Npbmctc2NoZW1lLmh0bWwKLQogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwogIyAgICAgICBGYWls
aW5nIHhtbGh0dHByZXF1ZXN0IHRlc3RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>