<?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>10199</bug_id>
          
          <creation_ts>2006-08-01 22:02:31 -0700</creation_ts>
          <short_desc>returning to a POST result within a frame does a GET instead of a POST</short_desc>
          <delta_ts>2010-12-07 19:46:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Frames</component>
          <version>419.x</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.teachingperspectives.com/html/tpi_frames.htm</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Trey Matteson">trey</reporter>
          <assigned_to name="Mihai Parparita">mihaip</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>japhet</cc>
    
    <cc>mihaip</cc>
    
    <cc>trey</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>51385</commentid>
    <comment_count>0</comment_count>
    <who name="Trey Matteson">trey</who>
    <bug_when>2006-08-01 22:02:31 -0700</bug_when>
    <thetext>Go to http://www.teachingperspectives.com/html/tpi_frames.htm.  Hit &quot;Begin the TPI&quot; then hit &quot;Take the TPI now&quot;.  You should now have a long form displayed.

Pick anything in the first radio group section.  Pick any random answers for the first 3 questions.  Now hit the submit button near the bottom.  Note that it complains about questions 4-45 being unanswered.

Go now to any other page (google.com).  Hit Back.  Note that it is now complaining about all questions being unanswered.  The reason is that instead of reperforming the POST that originally generated that frame&apos;s content (which would also have involved presenting the &quot;Do you really want to rePOST nag panel&quot;), Safari did a GET of the same URL, which passed none of the original form params.

Firefox does a rePOST (including the nag).

This is on 10.4.7, and I have strong reason to believe TOT behaves the same way.  Not sure if this case ever worked.  Might have.

(FWIW, in the non-frames case, assuming the POST result has &quot;Cache-Control: no-store, no-cache, must-revalidate&quot;, FireFox does the same thing as in this frames case, Safari just redisplays the POST result using data from the b/f cache.  This is behaving as originally intended, in an effort to avoid the miserable UE of the repost nag.  If you turn off the b/f cache, Safari nags and reposts, same as FFox.  If you let the POST result be cached, they both Safari and FFox will redisplay the POST result without any nagging or refetching.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51503</commentid>
    <comment_count>1</comment_count>
    <who name="Trey Matteson">trey</who>
    <bug_when>2006-08-02 16:37:20 -0700</bug_when>
    <thetext>I will be checking in some automated tests that are blocked by this bug.  When fixed, look through LayoutTests/http/tests/navigation/*disabled for this bug number.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51537</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-08-02 21:37:15 -0700</bug_when>
    <thetext>I don&apos;t understand why cache control directives should affect b/f cache at all. This appears to be explicitly prohibited by the HTTP spec itself: &lt;http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.13&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80470</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-05-15 02:08:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/5938020&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313442</commentid>
    <comment_count>4</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-24 13:38:11 -0800</bug_when>
    <thetext>Darin and I just ran into this while investigating another bug. Doing a GET instead of a POST seems like pretty bad/confusing behavior, I&apos;ll look into fixing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313487</commentid>
    <comment_count>5</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-24 15:01:49 -0800</bug_when>
    <thetext>It looks like this happens because of this part of FrameLoader::loadURLIntoChildFrame where we replace the URL we&apos;re about to load with the URL from a history item (if we find one that matches the frame):

// If we&apos;re moving in the back/forward list, we might want to replace the content
// of this child frame with whatever was there at that point.
if (parentItem &amp;&amp; parentItem-&gt;children().size() &amp;&amp; isBackForwardLoadType(loadType)) {
    HistoryItem* childItem = parentItem-&gt;childItemWithTarget(childFrame-&gt;tree()-&gt;uniqueName());
    if (childItem) {
        // Use the original URL to ensure we get all the side-effects, such as
        // onLoad handlers, of any redirects that happened. An example of where
        // this is needed is Radar 3213556.
        workingURL = KURL(ParsedURLString, childItem-&gt;originalURLString());
        childLoadType = loadType;
        childFrame-&gt;loader()-&gt;history()-&gt;setProvisionalItem(childItem);
    }
}
(from http://trac.webkit.org/browser/trunk/WebCore/loader/FrameLoader.cpp#L928)

This ignores the presence of FormData on the childItem, which should make this into a POST.

I think the right thing is to use a similar codepath to FrameLoader::navigateToDifferentDocument (ideally by refactoring that) which creates a POST request if the HistoryItem has FormData.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313501</commentid>
    <comment_count>6</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-24 15:44:02 -0800</bug_when>
    <thetext>Would any Apple person mind looking at Radar 3213556 (mentioned in the snippet in comment 5) and see what the test case was? For normal cases where we do a navigation to a HistoryItem (e.g. FrameLoader::navigateToDifferentDocument) we don&apos;t use the original URL, so I was wondering why we do use it for the case where we load it into a child frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313539</commentid>
    <comment_count>7</comment_count>
      <attachid>74813</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-24 17:01:10 -0800</bug_when>
    <thetext>Created attachment 74813
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313540</commentid>
    <comment_count>8</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-24 17:02:23 -0800</bug_when>
    <thetext>+Adam and Nate since this is Loader Land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313558</commentid>
    <comment_count>9</comment_count>
      <attachid>74813</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-24 17:45:23 -0800</bug_when>
    <thetext>Comment on attachment 74813
Patch

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

&gt; LayoutTests/http/tests/navigation/post-frames-goback1.html:12
&gt; +onload = function()

please use &quot;window.onload =&quot; so we can run these tests in other browsers.

&gt; LayoutTests/http/tests/navigation/post-frames-goback1.html:22
&gt; +        setTimeout(function() {document.getElementById(&apos;the-form&apos;).submitwithpost.click();}, 0);

You can just call &quot;submit()&quot; on the for itself.

&gt; WebCore/loader/FrameLoader.cpp:923
&gt; +    

I&apos;d skip this blank line, but whatever.

&gt; WebCore/loader/FrameLoader.cpp:927
&gt; +    if (subframeArchive) {
&gt; +        childFrame-&gt;loader()-&gt;loadArchive(subframeArchive.release());
&gt; +        return;
&gt; +    }

I&apos;m not sure I quite fully understand why you moved the archive logic above the stanza below, but archives are pretty mysterious to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313560</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-24 17:47:46 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Would any Apple person mind looking at Radar 3213556 (mentioned in the snippet in comment 5) and see what the test case was? For normal cases where we do a navigation to a HistoryItem (e.g. FrameLoader::navigateToDifferentDocument) we don&apos;t use the original URL, so I was wondering why we do use it for the case where we load it into a child frame.

I wanted to R+ this change, but I don&apos;t have enough information about the above.  It seems like we should be consistent about either using the original or final URL when doing history navigations, but it&apos;s unclear to me which is best.  (It&apos;s an expectation game with sites.)  Maybe test that question in other browsers to see what they do?  I&apos;d expect the final URL to be the right thing, but I don&apos;t really know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313851</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-25 15:07:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/3213556&gt; was a problem on an important site - and at the time (early 2003), Firefox had the same problem. I can&apos;t reproduce it with the original URL or the saved sources, but the explanation makes sense.

This site had a subframe (say, sub.html) that was setting a global variable in top frame, and then navigated itself to blank.html. Top frame&apos;s onload function needed the variable. On reload we used to immediately load blank.html, bypassing the side effect of loading sub.html.

Note that the original fix for &lt;rdar://problem/3213556&gt; broke going back to IMDB search results, because we weren&apos;t saving form submission data. The follow-up fix was in &lt;rdar://problem/3245625&gt;, and I didn&apos;t try to hunt down its revision number.

&gt; It seems like we should be consistent

Sounds like we should load original URL for both reloads and history loads to be consistent with first load case. But testing in other browsers is essential nonetheless.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314673</commentid>
    <comment_count>12</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-29 15:00:22 -0800</bug_when>
    <thetext>This is a test case of the history behavior: http://persistent.info/webkit/test-cases/crbug-32815/initial-vs-final-url.html. If you press &quot;go away (and come back)&quot;, you will either see &quot;initial frame contents loaded&quot; (original URL was used) or &quot;subsequent page&quot; (final URL was used) alerted first.

Current behavior:
- Chrome dev channel: initial URL
- Safari 5.0.2: initial URL
- WebKit ToT: initial URL
- Firefox 3.6: final URL
- Firefox 4.0b7: final URL
- Opera 10.63: final URL (I disabled their fastback cache in the prefs to make sure it wasn&apos;t hitting that)
- IE 8.0 on Windows 7: final URL

Similarly, here&apos;s the behavior when hitting reload on that URL (without going away and coming bac):
- Chrome dev channel: initial URL
- Safari 5.0.2: initial URL
- WebKit ToT: initial URL
- Firefox 3.6: final URL
- Firefox 4.0b7: final URL
- Opera 10.63: initial URL
- IE 8.0 on Windows 7: final URL

With my patch, WebKit would use the final URL for going back (which would bring us in line with all the other browsers), but still use the initial URL for reloads. Is there a preference about making those consistent?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314705</commentid>
    <comment_count>13</comment_count>
      <attachid>75076</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-29 16:08:31 -0800</bug_when>
    <thetext>Created attachment 75076
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314708</commentid>
    <comment_count>14</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-29 16:11:46 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; LayoutTests/http/tests/navigation/post-frames-goback1.html:12
&gt; &gt; +onload = function()
&gt; 
&gt; please use &quot;window.onload =&quot; so we can run these tests in other browsers.

As discussed, this actually works in all browsers.
 
&gt; &gt; LayoutTests/http/tests/navigation/post-frames-goback1.html:22
&gt; &gt; +        setTimeout(function() {document.getElementById(&apos;the-form&apos;).submitwithpost.click();}, 0);
&gt; 
&gt; You can just call &quot;submit()&quot; on the for itself.

Changed.

&gt; &gt; WebCore/loader/FrameLoader.cpp:923
&gt; &gt; +    
&gt; 
&gt; I&apos;d skip this blank line, but whatever.

Removed.
 
&gt; &gt; WebCore/loader/FrameLoader.cpp:927
&gt; &gt; +    if (subframeArchive) {
&gt; &gt; +        childFrame-&gt;loader()-&gt;loadArchive(subframeArchive.release());
&gt; &gt; +        return;
&gt; &gt; +    }
&gt;
&gt; I&apos;m not sure I quite fully understand why you moved the archive logic above the stanza below, but archives are pretty mysterious to me.

The HistoryItem and archive paths seemed to be entirely independent, I was just cleaning up this code (the archive path seemed simpler, so I put it before the history one).

(In reply to comment #10)
&gt; I wanted to R+ this change, but I don&apos;t have enough information about the above.  It seems like we should be consistent about either using the original or final URL when doing history navigations, but it&apos;s unclear to me which is best.  (It&apos;s an expectation game with sites.)  Maybe test that question in other browsers to see what they do?  I&apos;d expect the final URL to be the right thing, but I don&apos;t really know.

As mentioned in comment 12, switching to use the final URL would make us consistent with other browsers, so it seems like a step in the right direction. No layout tests failed when I made this change, so I added fast/history/history-back-initial-vs-final-url.html to explicitly test for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314719</commentid>
    <comment_count>15</comment_count>
      <attachid>75081</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-29 16:32:36 -0800</bug_when>
    <thetext>Created attachment 75081
test case

&gt; As mentioned in comment 12, switching to use the final URL would make us
&gt; consistent with other browsers

Hmm, I cannot reproduce this. On my test, IE matches WebKit (and common sense), so this looks like a pure Firefox bug.

To test: unpack the attachment, open test.cpp, try reloading it or navigating away and back. In WebKit and IE, the document shows a &quot;bar&quot; alert every time it&apos;s loaded or reloaded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314722</commentid>
    <comment_count>16</comment_count>
      <attachid>75076</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-29 16:34:03 -0800</bug_when>
    <thetext>Comment on attachment 75076
Patch

Hum...  The evidence seems to be that we want to use the final URL in this case.  I&apos;m inclined to make this change and be on the lookout for broken sites, but I&apos;m pretty biased towards matching other browsers.  I&apos;m going to mark this R+, but give Alexey some time to respond before landing in case he thinks we should do something different.

Thanks Alexey for digging the info out of rdar and thanks Mihai for cross-testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314723</commentid>
    <comment_count>17</comment_count>
      <attachid>75076</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-29 16:35:12 -0800</bug_when>
    <thetext>Comment on attachment 75076
Patch

Oops.  Just saw Alexey&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314728</commentid>
    <comment_count>18</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-29 16:42:46 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; Created an attachment (id=75081) [details]
&gt; test case
&gt; 
&gt; &gt; As mentioned in comment 12, switching to use the final URL would make us
&gt; &gt; consistent with other browsers
&gt; 
&gt; Hmm, I cannot reproduce this. On my test, IE matches WebKit (and common sense), so this looks like a pure Firefox bug.
&gt; 
&gt; To test: unpack the attachment, open test.cpp, try reloading it or navigating away and back. In WebKit and IE, the document shows a &quot;bar&quot; alert every time it&apos;s loaded or reloaded.

I copied this to: http://persistent.info/webkit/test-cases/crbug-32815/ap-test.html. In sub.html, you&apos;re navigating to about:blank, which is generally not allowed, so IE is most likely not using it as a final URL for the history item. 

I modified the test case to navigate to another dummy page instead (ap-sub-other.html): http://persistent.info/webkit/test-cases/crbug-32815/ap-test-2.html

In this case, IE displays a script error saying that foo is not defined (as expected) when coming back from another page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314731</commentid>
    <comment_count>19</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-29 16:46:37 -0800</bug_when>
    <thetext>&gt; so IE is most likely not using it as a final URL for the history item.

I did test that fames[0].document.URL was &quot;about:blank&quot; after loading my original test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314739</commentid>
    <comment_count>20</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-29 16:59:48 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; &gt; so IE is most likely not using it as a final URL for the history item.
&gt; 
&gt; I did test that fames[0].document.URL was &quot;about:blank&quot; after loading my original test case.

OK, IE does seem to navigate to the about:blank URL, but it doesn&apos;t record it as the final URL in their HistoryItem equivalent. However, given IE&apos;s behavior on http://persistent.info/webkit/test-cases/crbug-32815/ap-test-2.html, do you agree that with regular URLs IE matches Firefox?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314743</commentid>
    <comment_count>21</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-29 17:06:00 -0800</bug_when>
    <thetext>Perhaps - it&apos;s confusing now.

I wonder if there is a logical reason to use the final URL for subframes when reloading.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315356</commentid>
    <comment_count>22</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-30 15:29:27 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; I wonder if there is a logical reason to use the final URL for subframes when reloading.

If it&apos;s a frame that was POSTed to, which then did a redirect to a regular URL in the response (to avoid the &quot;do you want to resubmit&quot; warning), then I assume we&apos;d want to use the final URL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316279</commentid>
    <comment_count>23</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-12-02 11:29:33 -0800</bug_when>
    <thetext>Thus far I&apos;m still unable to find a case (besides about:blank - http://persistent.info/webkit/test-cases/crbug-32815/about-blank/initial-vs-final-url.html) where IE uses the final URL when going back.

I hypothesized that cacheability might explain the difference in behavior in IE between using about:blank and a regular page, but the test case at http://persistent.info/webkit/test-cases/crbug-32815/cacheable/initial-vs-final-url.html (where everything is cacheable for a week) seems to behave the same (final URL is used when coming back).

Alexey sent me a copy of the site from &lt;rdar://problem/3213556&gt;. It looks like it&apos;s doing the navigation with location.replace during a frame&apos;s onload handler. I made a modified test case that does that at: http://persistent.info/webkit/test-cases/crbug-32815/location-replace/initial-vs-final-url.html. In that case, IE is still using the final URL.

The actual site with the problem from the Radar bug was http://www.halcyondays.co.uk/viewer.shtml. IE 8 has the same behavior as WebKit (with my patch) and Firefox. If I load the page, go to google.com and come back*, the logo is not displayed (it is displayed when doing a reload, which as far as I can tell was the problem that the Radar bug was about). Given that we&apos;re mirroring the behavior of all the other browsers, I don&apos;t see how this could lead to compat problems.

* with the page cache/backforward cache disabled</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316283</commentid>
    <comment_count>24</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-12-02 11:32:32 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; Thus far I&apos;m still unable to find a case (besides about:blank - http://persistent.info/webkit/test-cases/crbug-32815/about-blank/initial-vs-final-url.html) where IE uses the final URL when going back.

This should have said &quot;where IE uses the initial URL (for frames) when going back.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316300</commentid>
    <comment_count>25</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-02 11:45:51 -0800</bug_when>
    <thetext>I guess we have to match other browsers then, even though that regresses &lt;rdar://problem/3213556&gt;. Still wondering why about:blank is different in IE, and whether there are other cases like that, but I&apos;m not sure how to find an answer to that.

Do all the new tests in the bug pass in both IE and Firefox?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316301</commentid>
    <comment_count>26</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-02 11:46:10 -0800</bug_when>
    <thetext>s/in the bug/in the patch/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316343</commentid>
    <comment_count>27</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-12-02 12:31:31 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; Do all the new tests in the patch pass in both IE and Firefox?

fast/history/history-back-initial-vs-final-url.html passes everywhere. The ones from http/tests/navigation work in IE, but don&apos;t seem to in Firefox since it just uses the initial URL of the frame (about:blank) when going back, instead of resubmitting the POST request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317812</commentid>
    <comment_count>28</comment_count>
      <attachid>75076</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-12-06 13:05:40 -0800</bug_when>
    <thetext>Comment on attachment 75076
Patch

Any other issues that would prevent this from being landed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318035</commentid>
    <comment_count>29</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-06 20:30:43 -0800</bug_when>
    <thetext>I don&apos;t have any other concerns (note that I didn&apos;t review the patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318413</commentid>
    <comment_count>30</comment_count>
      <attachid>75076</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-07 13:44:12 -0800</bug_when>
    <thetext>Comment on attachment 75076
Patch

Thanks for investigating the behavior of other browsers and the history behind our behavior.  It&apos;s very valuable to be careful when changing these sort of subtle behaviors.  It sounds we&apos;ve come to agreement about what behavior we want and this patch looks like a good way of achieving that behavior.  Thanks everyone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318488</commentid>
    <comment_count>31</comment_count>
      <attachid>75076</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-07 16:21:35 -0800</bug_when>
    <thetext>Comment on attachment 75076
Patch

Rejecting patch 75076 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=eseidel-cq-sl&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=both&apos;]&quot; exit_code: 2
Last 500 characters of output:
/XPathNamespace.cpp normal x86_64 c++ com.apple.compilers.gcc.4_2
	CompileC /Projects/CommitQueue/WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/x86_64/XPathParser.o /Projects/CommitQueue/WebCore/xml/XPathParser.cpp normal x86_64 c++ com.apple.compilers.gcc.4_2
	CompileC /Projects/CommitQueue/WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/x86_64/XPathPath.o /Projects/CommitQueue/WebCore/xml/XPathPath.cpp normal x86_64 c++ com.apple.compilers.gcc.4_2
(6 failures)


Full output: http://queues.webkit.org/results/6746099</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318490</commentid>
    <comment_count>32</comment_count>
      <attachid>75076</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-12-07 16:27:16 -0800</bug_when>
    <thetext>Comment on attachment 75076
Patch

Seems like a bot issue:

error: couldn&apos;t run &apos;/Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/xcexec&apos; because an internal error occurred (Resource temporarily unavailable)

Trying again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318533</commentid>
    <comment_count>33</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-12-07 18:25:16 -0800</bug_when>
    <thetext>The commit queue seems to be refusing to pick up this patch again, will land by hand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318538</commentid>
    <comment_count>34</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-12-07 18:32:52 -0800</bug_when>
    <thetext>Committed r73486: &lt;http://trac.webkit.org/changeset/73486&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318554</commentid>
    <comment_count>35</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-07 19:46:04 -0800</bug_when>
    <thetext>The queue infrastructure all died today due to a critical machine running out of disk. Should be back functioning normal shortly.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74813</attachid>
            <date>2010-11-24 17:01:10 -0800</date>
            <delta_ts>2010-11-29 16:08:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-10199-20101124170109.patch</filename>
            <type>text/plain</type>
            <size>18534</size>
            <attacher name="Mihai Parparita">mihaip</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MjBjNzQwNmI0NmI3Y2RiMzMxNDU5MWNhOGNmYjY5ZjJlZTU3ZmE2Li5jNTkyODM2
NjhjMDBiZmUyNTU2ZWIzYTgwYTk2NWZhOTU5ZTFmYmMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAK
KzIwMTAtMTEtMjQgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcmV0dXJuaW5nIHRv
IGEgUE9TVCByZXN1bHQgd2l0aGluIGEgZnJhbWUgZG9lcyBhIEdFVCBpbnN0ZWFkIG9mIGEgUE9T
VAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxOTkK
KyAgICAgICAgCisgICAgICAgIFJlLWVuYWJsZSBwb3N0cmVkaXJlY3QtZnJhbWVzLWdvYmFjazEu
aHRtbCBhbmQgcG9zdC1mcmFtZXMtZ29iYWNrMS5odG1sCisgICAgICAgIG5vdyB0aGF0IHRoZSBi
aWcgdGhhdCBtYWRlIHRoZW0gYmUgY2hlY2tlZCBpbiBkaXNhYmxlZCB3YXMgZml4ZWQuCisgICAg
ICAgIAorICAgICAgICBUaGUgdGVzdHMgd2VyZSBhbHNvIHJlLXdyaXR0ZW4gdG8gbm90IGJlIHBp
eGVsIHRlc3RzLCBzaW5jZSB0aGF0IGp1c3QKKyAgICAgICAgYWRkcyBleHRyYSBwZXItcGxhdGZv
cm0gYmFzZWxpbmUgcGFpbi4KKworICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0
LWZyYW1lcy1nb2JhY2sxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3Bvc3QtZnJhbWVzLWdvYmFjazEuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3QtZnJhbWVzLWdvYmFjazEuaHRtbC1kaXNhYmxlZDog
UmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdC1mcmFtZXMuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdHJlZGlyZWN0LWZyYW1lcy1n
b2JhY2sxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3Bvc3RyZWRpcmVjdC1mcmFtZXMtZ29iYWNrMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdHJlZGlyZWN0LWZyYW1lcy1nb2JhY2sxLmh0bWwtZGlz
YWJsZWQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNl
cy9mb3JtLXRhcmdldC5wbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3Vy
Y2VzL3JlZGlyZWN0LXRvLWdvLWJhY2sucGw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
bmF2aWdhdGlvbi9yZXNvdXJjZXMvdG9wLWdvLWJhY2suaHRtbDogQWRkZWQuCisKIDIwMTAtMTEt
MjQgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQuIEp1c3QgYXNzaWduIGEgYnVnIGZvciBjb21wb3NpdGluZy9wbHVnaW4gdGVzdHMu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdC1mcmFt
ZXMtZ29iYWNrMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRp
b24vcG9zdC1mcmFtZXMtZ29iYWNrMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjY3ZDEwNDEx
Yzk4NmJjODk3MDJkOTA1YWY5MzIwNzAxOTZkYWE0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0LWZyYW1lcy1nb2JhY2sxLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDIyIEBACitUZXN0cyB0aGF0IGEgUE9TVCB0YXJnZXR0ZWQgdG8gYSBm
cmFtZSBpcyBoYW5kbGVkIGNvcnJlY3RseSB3aGVuIG5hdmlnYXRpbmcgYXdheSBhbmQgY29taW5n
IGJhY2sgdG8gdGhlIHBhZ2UuCisKKyAgCisKKworLS0tLS0tLS0KK0ZyYW1lOiAndGFyZ2V0LWZy
YW1lJworLS0tLS0tLS0KK1RoaXMgcGFnZSB3YXMgcmVxdWVzdGVkIHdpdGggdGhlIEhUVFAgbWV0
aG9kIFBPU1QuCisKK1BhcmFtZXRlcnM6CisKK3RoZS1pbnB1dCA9IGlucHV0IHZhbHVlIGdvZXMg
aGVyZQorc3VibWl0d2l0aHBvc3QgPSBTdWJtaXQgd2l0aCBQT1NUCisKKz09PT09PT09PT09PT09
IEJhY2sgRm9yd2FyZCBMaXN0ID09PT09PT09PT09PT09CisgICAgICAgIGh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9uYXZpZ2F0aW9uL3Bvc3QtZnJhbWVzLWdvYmFjazEuaHRtbCAgKipuYXYgdGFyZ2V0
KioKKyAgICAgICAgICAgIGFib3V0OmJsYW5rIChpbiBmcmFtZSAidGFyZ2V0LWZyYW1lIikKK2N1
cnItPiAgaHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcG9zdC1mcmFtZXMtZ29iYWNr
MS5odG1sCisgICAgICAgICAgICBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNv
dXJjZXMvZm9ybS10YXJnZXQucGwgKGluIGZyYW1lICJ0YXJnZXQtZnJhbWUiKSAgKipuYXYgdGFy
Z2V0KioKKyAgICAgICAgaHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcmVzb3VyY2Vz
L2dvLWJhY2suaHRtbCAgKipuYXYgdGFyZ2V0KioKKz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vcG9zdC1mcmFtZXMtZ29iYWNrMS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL3Bvc3QtZnJhbWVzLWdvYmFjazEuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYzJl
YWY0M2FjZDZjZjI2YjM0MmVlYmQ3ZDBlYzVmNzFkMWM2YTY3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3QtZnJhbWVzLWdvYmFjazEuaHRt
bApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hp
bGRGcmFtZXNBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEJhY2tGb3J3YXJkTGlzdCgpOworIH0K
KyAgIAorb25sb2FkID0gZnVuY3Rpb24oKQoreworICAgIGlmIChzZXNzaW9uU3RvcmFnZS5kaWRO
YXYpIHsKKyAgICAgICAgZGVsZXRlIHNlc3Npb25TdG9yYWdlLmRpZE5hdjsKKyAgICAgICAgZGVs
ZXRlIHNlc3Npb25TdG9yYWdlLnRvcFNob3VsZE5hdkFuZEdvQmFjazsKKyAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzZXNzaW9uU3RvcmFnZS50
b3BTaG91bGROYXZBbmRHb0JhY2sgPSB0cnVlOworICAgICAgICAvLyBTdWJtaXQgdGhlIGZvcm0g
aW4gYSB0aW1lb3V0IHRvIG1ha2Ugc3VyZSB3ZSBnZW5lcmF0ZSBhIGhpc3RvcnkgZW50cnkuCisg
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Ro
ZS1mb3JtJykuc3VibWl0d2l0aHBvc3QuY2xpY2soKTt9LCAwKTsKKyAgICB9Cit9CisgICAKKzwv
c2NyaXB0PiAgCisKKzxwPlRlc3RzIHRoYXQgYSBQT1NUIHRhcmdldHRlZCB0byBhIGZyYW1lIGlz
IGhhbmRsZWQgY29ycmVjdGx5IHdoZW4gbmF2aWdhdGluZyBhd2F5IGFuZCBjb21pbmcgYmFjayB0
byB0aGUgcGFnZS48L3A+CisKKzxmb3JtIGlkPSJ0aGUtZm9ybSIgbWV0aG9kPSJQT1NUIiBhY3Rp
b249InJlc291cmNlcy9mb3JtLXRhcmdldC5wbCIgdGFyZ2V0PSJ0YXJnZXQtZnJhbWUiPgorICA8
aW5wdXQgbmFtZT0idGhlLWlucHV0IiB2YWx1ZT0iaW5wdXQgdmFsdWUgZ29lcyBoZXJlIj4KKyAg
PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ic3VibWl0d2l0aHBvc3QiIHZhbHVlPSJTdWJtaXQg
d2l0aCBQT1NUIi8+PGJyPgorPC9mb3JtPgorCis8aWZyYW1lIG5hbWU9InRhcmdldC1mcmFtZSIg
c3JjPSJhYm91dDpibGFuayI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3Bvc3QtZnJhbWVzLWdvYmFjazEuaHRtbC1kaXNhYmxlZCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0LWZyYW1lcy1nb2JhY2sxLmh0bWwtZGlzYWJsZWQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmOGU3OTZmMzM3N2U4MGVhOWI2YTQwOGYxNDE0
NjA3MDg1N2JlZmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3QtZnJhbWVzLWdvYmFjazEu
aHRtbC1kaXNhYmxlZAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL3Rlc3Rjb2RlLmpzIi8+Ci08c2NyaXB0
PgotICAgIHJ1bkJhY2tUZXN0KCJyZXNvdXJjZXMvZnJhbWVzZXQucGw/ZnJhbWVVUkw9c3VjY2Vz
czIwMC5odG1sIiwgMSwgInBvc3QiKTsKLTwvc2NyaXB0PgotVGhpcyBwYWdlIGp1c3Qga2lja3Mg
b2ZmIGEgdGVzdCwgYW5kIHNob3VsZCBub3QgYXBwZWFyIGluIHRoZSBleHBlY3RlZCB0ZXN0IG91
dHB1dC4KLQotPGJyPgotRElTQUJMRUQgZHVlIHRvIGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2lu
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxOTkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9wb3N0LWZyYW1lcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3Bvc3QtZnJhbWVzLmh0bWwKaW5kZXggNGEwYjNkNjIyYzM5MDZkMDE4MWMy
NTNhZWY5N2M1MTE3YThlNmE1OS4uNTlkNWM2Y2MyNTg3YjZjMjgyNjYwODE1NzM5N2FkYjQ0MTA4
ZDA2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3Qt
ZnJhbWVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3Qt
ZnJhbWVzLmh0bWwKQEAgLTMsNyArMyw2IEBACiAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CiAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNB
c1RleHQoKTsKICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNsZWFyQmFja0ZvcndhcmRMaXN0KCk7CiAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQmFja0ZvcndhcmRMaXN0KCk7CiAgICB9CiA8L3Njcmlw
dD4gIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3Ry
ZWRpcmVjdC1mcmFtZXMtZ29iYWNrMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25hdmlnYXRpb24vcG9zdHJlZGlyZWN0LWZyYW1lcy1nb2JhY2sxLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41Mjc1MWRiN2JhNDQwYWJjNWI2YzA4OWM1NGI3MjM5YzI2MGI0YWNhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3RyZWRp
cmVjdC1mcmFtZXMtZ29iYWNrMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBAQAorVGVzdHMg
dGhlIGZvbGxvd2luZyBzZXF1ZW5jZSBvZiBldmVudHM6CisKK1N1Ym1pdCBhIGZvcm0gdmlhIFBP
U1QgdG8gYSBmcmFtZSAocmVkaXJlY3QtdG8tZ28tYmFjay5wbCkuCitGb3JtIHBhZ2UgZG9lcyBh
IDMwMiB0byBhIHN0YXRpYyBwYWdlICh0b3AtZ28tYmFjay5odG1sKSwgc3RpbGwgd2l0aGluIHRo
ZSBmcmFtZS4KK1N0YXRpYyBwYWdlIGRvZXMgYSB0b3AtbGV2ZWwgbmF2aWdhdGlvbiB0byBhbm90
aGVyIHN0YXRpYyBwYWdlIChnby1iYWNrLmh0bWwpCitUaGlzIHN0YXRpYyBwYWdlIGdvZXMgYmFj
ay4KK1dlIHNob3VsZCBlbmQgdXAgc2hvd2luZyB0aGUgdG9wLWxldmVsIHBhZ2Ugd2l0aCB0aGUg
Zmlyc3Qgc3RhdGljIHBhZ2UgaW5zaWRlIHRoZSBmcmFtZS4KKworICAKKworCistLS0tLS0tLQor
RnJhbWU6ICd0YXJnZXQtZnJhbWUnCistLS0tLS0tLQorVGFyZ2V0IG9mIHJlZGlyZWN0IGFmdGVy
IFBPU1QgcmVxdWVzdC4KKworPT09PT09PT09PT09PT0gQmFjayBGb3J3YXJkIExpc3QgPT09PT09
PT09PT09PT0KKyAgICAgICAgaHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcG9zdHJl
ZGlyZWN0LWZyYW1lcy1nb2JhY2sxLmh0bWwgICoqbmF2IHRhcmdldCoqCisgICAgICAgICAgICBh
Ym91dDpibGFuayAoaW4gZnJhbWUgInRhcmdldC1mcmFtZSIpCitjdXJyLT4gIGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9uYXZpZ2F0aW9uL3Bvc3RyZWRpcmVjdC1mcmFtZXMtZ29iYWNrMS5odG1sCisg
ICAgICAgICAgICBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVk
aXJlY3QtdG8tZ28tYmFjay5wbCAoaW4gZnJhbWUgInRhcmdldC1mcmFtZSIpICAqKm5hdiB0YXJn
ZXQqKgorICAgICAgICBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMv
Z28tYmFjay5odG1sICAqKm5hdiB0YXJnZXQqKgorPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9wb3N0cmVkaXJlY3QtZnJhbWVzLWdvYmFjazEuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0cmVkaXJlY3QtZnJhbWVzLWdvYmFjazEuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40YzA4NGRmNjM3MjE4ZDRmMGI1YzI0YjZjMzFjNzAxZmM4YWRkYWNlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3RyZWRp
cmVjdC1mcmFtZXMtZ29iYWNrMS5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QmFja0ZvcndhcmRMaXN0KCk7CisgfQorICAgCitvbmxvYWQgPSBmdW5jdGlvbigpCit7CisgICAg
aWYgKHNlc3Npb25TdG9yYWdlLmRpZE5hdikgeworICAgICAgICBkZWxldGUgc2Vzc2lvblN0b3Jh
Z2UuZGlkTmF2OworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0gZWxzZSB7
CisgICAgICAgIC8vIFN1Ym1pdCB0aGUgZm9ybSBpbiBhIHRpbWVvdXQgdG8gbWFrZSBzdXJlIHdl
IGdlbmVyYXRlIGEgaGlzdG9yeSBlbnRyeS4KKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhlLWZvcm0nKS5zdWJtaXR3aXRocG9zdC5jbGlj
aygpO30sIDApOworICAgIH0KK30KKyAgIAorPC9zY3JpcHQ+ICAKKworPHA+VGVzdHMgdGhlIGZv
bGxvd2luZyBzZXF1ZW5jZSBvZiBldmVudHM6PC9wPgorPG9sPgorICA8bGk+U3VibWl0IGEgZm9y
bSB2aWEgUE9TVCB0byBhIGZyYW1lIChyZWRpcmVjdC10by1nby1iYWNrLnBsKS48bGk+CisgIDxs
aT5Gb3JtIHBhZ2UgZG9lcyBhIDMwMiB0byBhIHN0YXRpYyBwYWdlICh0b3AtZ28tYmFjay5odG1s
KSwgc3RpbGwgd2l0aGluIHRoZSBmcmFtZS48L2xpPgorICA8bGk+U3RhdGljIHBhZ2UgZG9lcyBh
IHRvcC1sZXZlbCBuYXZpZ2F0aW9uIHRvIGFub3RoZXIgc3RhdGljIHBhZ2UgKGdvLWJhY2suaHRt
bCk8L2xpPgorICA8bGk+VGhpcyBzdGF0aWMgcGFnZSBnb2VzIGJhY2suPC9saT4KKzwvb2w+CisK
KzxwPldlIHNob3VsZCBlbmQgdXAgc2hvd2luZyB0aGUgdG9wLWxldmVsIHBhZ2Ugd2l0aCB0aGUg
Zmlyc3Qgc3RhdGljIHBhZ2UgaW5zaWRlIHRoZSBmcmFtZS48L2xpPgorCis8Zm9ybSBpZD0idGhl
LWZvcm0iIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSJyZXNvdXJjZXMvcmVkaXJlY3QtdG8tZ28tYmFj
ay5wbCIgdGFyZ2V0PSJ0YXJnZXQtZnJhbWUiPgorICA8aW5wdXQgbmFtZT0idGhlLWlucHV0IiB2
YWx1ZT0iaW5wdXQgdmFsdWUgZ29lcyBoZXJlIj4KKyAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFt
ZT0ic3VibWl0d2l0aHBvc3QiIHZhbHVlPSJTdWJtaXQgd2l0aCBQT1NUIi8+PGJyPgorPC9mb3Jt
PgorCis8aWZyYW1lIG5hbWU9InRhcmdldC1mcmFtZSIgc3JjPSJhYm91dDpibGFuayI+PC9pZnJh
bWU+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3RyZWRpcmVjdC1mcmFt
ZXMtZ29iYWNrMS5odG1sLWRpc2FibGVkIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3Bvc3RyZWRpcmVjdC1mcmFtZXMtZ29iYWNrMS5odG1sLWRpc2FibGVkCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyOTc0MjAyNGZiNGMwOTlkNzM5YTEzMTQxZGQ0NTY3ZGQ2NTVi
Y2QxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0cmVkaXJlY3QtZnJhbWVzLWdvYmFjazEu
aHRtbC1kaXNhYmxlZAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL3Rlc3Rjb2RlLmpzIi8+Ci08c2NyaXB0
PgotICAgIHJ1bkJhY2tUZXN0KCJyZXNvdXJjZXMvZnJhbWVzZXQucGw/ZnJhbWVVUkw9c3VjY2Vz
czIwMC5odG1sIiwgMSwgInBvc3RyZWRpcmVjdCIpOwotPC9zY3JpcHQ+Ci1UaGlzIHBhZ2UganVz
dCBraWNrcyBvZmYgYSB0ZXN0LCBhbmQgc2hvdWxkIG5vdCBhcHBlYXIgaW4gdGhlIGV4cGVjdGVk
IHRlc3Qgb3V0cHV0LgotCi08YnI+IAotRElTQUJMRUQgZHVlIHRvIGh0dHA6Ly9idWd6aWxsYS5v
cGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxOTkKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9mb3JtLXRhcmdldC5wbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvZm9ybS10YXJnZXQucGwK
aW5kZXggODg4ODdhMWVkZTZkMjk2MThkNjAyMmEwMGVkMzM0MzBkYjQ0ZWE1OC4uMjAwZDAzMjhj
NGY2OTI3NjRjYTRjZTY0NzdmMDAxMGEzNWU1NjBmNSAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9mb3JtLXRhcmdldC5wbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2Zvcm0tdGFyZ2V0LnBsCkBA
IC00MSw2ICs0MSwxNiBAQCBpZiAoc2Vzc2lvblN0b3JhZ2UuZm9ybVRhcmdldFNob3VsZE5hdkFu
ZEdvQmFjaykgewogICB9CiB9CiAKK2lmIChzZXNzaW9uU3RvcmFnZS50b3BTaG91bGROYXZBbmRH
b0JhY2spIHsKKyAgaWYgKCFzZXNzaW9uU3RvcmFnZS5kaWROYXYpIHsKKyAgICAgIGlzRG9uZSA9
IGZhbHNlOworICAgICAgc2Vzc2lvblN0b3JhZ2UuZGlkTmF2ID0gdHJ1ZTsKKyAgICAgIG9ubG9h
ZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7dG9wLmxv
Y2F0aW9uLmhyZWYgPSAnZ28tYmFjay5odG1sJ30sIDApOworICAgICAgfTsKKyAgfQorfQorCiBp
ZiAoaXNEb25lICYmIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtdG8tZ28tYmFjay5wbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtdG8tZ28tYmFj
ay5wbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jM2I0MTA2ZGFlZjQxZGMzMTRlMTBlNDY5Zjc3ZTkxOWFjMmIyYzAy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jl
c291cmNlcy9yZWRpcmVjdC10by1nby1iYWNrLnBsCkBAIC0wLDAgKzEsMTkgQEAKKyMhL3Vzci9i
aW4vcGVybAorIyBTaW1wbGUgc2NyaXB0IHRvIGdlbmVyYXRlIGEgMzAyIEhUVFAgcmVkaXJlY3Qg
dG8gYSBwYWdlIHRoYXQgdHJpZ2dlcnMgYSAKKyMgbmF2aWdhdGlvbiBiYWNrIChvbmx5IGlmIFBP
U1QgaXMgdXNlZCkuCisKK3VzZSBDR0k7CiskcXVlcnkgPSBuZXcgQ0dJOworCiskbWV0aG9kID0g
JHF1ZXJ5LT5yZXF1ZXN0X21ldGhvZCgpOworCitpZiAoJG1ldGhvZCBlcSAiUE9TVCIpIHsKKyAg
ICBwcmludCAiU3RhdHVzOiAzMDIgTW92ZWQgVGVtcG9yYXJpbHlcclxuIjsKKyAgICBwcmludCAi
TG9jYXRpb246IHRvcC1nby1iYWNrLmh0bWxcclxuIjsKKyAgICBwcmludCAiXHJcbiI7Cit9IGVs
c2UgeworICAgIHByaW50ICJTdGF0dXM6IDQwNSBNZXRob2Qgbm90IGFsbG93ZWRcclxuIjsKKyAg
ICBwcmludCAiQ29udGVudC10eXBlOiB0ZXh0L3BsYWluXHJcbiI7CisgICAgcHJpbnQgIlxyXG4i
OworICAgIHByaW50ICJUaGlzIHNob3VsZCBvbmx5IGJlIHJlcXVlc3RlZCB2aWEgUE9TVCAoJG1l
dGhvZCB3YXMgdXNlZCkuIgorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL3Jlc291cmNlcy90b3AtZ28tYmFjay5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy90b3AtZ28tYmFjay5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJm
OWNmYTdkMmVlYWMzZjc3ZjFjOTc2ZTBlYzkzYTY3YjZlMWQwOTkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3RvcC1nby1iYWNr
Lmh0bWwKQEAgLTAsMCArMSw5IEBACitUYXJnZXQgb2YgcmVkaXJlY3QgYWZ0ZXIgUE9TVCByZXF1
ZXN0LgorPHNjcmlwdD4KKyAgICAgIG9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgIGlm
ICghc2Vzc2lvblN0b3JhZ2UuZGlkTmF2KSB7CisgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5k
aWROYXYgPSB0cnVlOworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHt0b3AubG9j
YXRpb24uaHJlZiA9ICdnby1iYWNrLmh0bWwnfSwgMCk7CisgICAgICAgICAgfQorICAgICAgfTsK
Kzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk1Y2FhMGQzMWRhNzBmYzdi
MWZhNTY1NGQ3YTZiMzc5MDQ3MTY5OS4uNjI0MTViYTZhMGNhMzgyOTc5MzBmM2NkYjNmYmFlYTAw
Y2Q4NmMxNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMC0xMS0yNCAgTWloYWkgUGFycGFyaXRhICA8bWlo
YWlwQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICByZXR1cm5pbmcgdG8gYSBQT1NUIHJlc3VsdCB3aXRoaW4gYSBmcmFtZSBkb2Vz
IGEgR0VUIGluc3RlYWQgb2YgYSBQT1NUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDE5OQorICAgICAgICAKKyAgICAgICAgRnJhbWVMb2FkZXI6Omxv
YWRVUkxJbnRvQ2hpbGRGcmFtZSBoYWQgYSBjaGVjayBmb3Igd2hldGhlciBhIGZyYW1lCisgICAg
ICAgIGhhZCBhIEhpc3RvcnlJdGVtLCBhbmQgaWYgc28gdXNlZCB0aGF0IGl0ZW0ncyBVUkwuIEhv
d2V2ZXIsIHRoYXQgZGlkCisgICAgICAgIG5vdCBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIEhp
c3RvcnlJdGVtIGhhZCBGb3JtRGF0YSBhbmQgdGh1cyB3YXMgdGhlCisgICAgICAgIHJlc3VsdCBv
ZiBhIFBPU1QgcmVxdWVzdC4gRnJhbWVMb2FkZXI6Om5hdmlnYXRlVG9EaWZmZXJlbnREb2N1bWVu
dCAobm93CisgICAgICAgIHJlbmFtZWQgdG8gbG9hZERpZmZlcmVudERvY3VtZW50SXRlbSkgZG9l
cyBhbGwgdGhhdCwgc28ganVzdCBzd2l0Y2ggdG8KKyAgICAgICAgdXNpbmcgaXQgaW5zdGVhZC4K
KyAgICAgICAgCisgICAgICAgIEJlc2lkZXMgdGhlIGJ1ZyBmaXgsIHRoZSBvbmx5IGRpZmZlcmVu
Y2UgaW4gYmVoYXZpb3IgaXMgdGhhdCB3ZSB1c2UgdGhlCisgICAgICAgIEhpc3RvcnlJdGVtJ3Mg
VVJMIGluc3RlYWQgb2Ygb3JpZ2luYWwgVVJMIHdoZW4gcmVzdG9yaW5nIGl0IGluIGEgY2hpbGQK
KyAgICAgICAgZnJhbWUuIFRoaXMgc2VlbXMgZGVzaXJhYmxlIHRvbyAoc28gdGhhdCB3ZSBjYW4g
YXZvaWQgZm9ybSBkb3VibGUtCisgICAgICAgIHN1Ym1pdHMgZm9yIGZvcm1zIHRoYXQgdGhhdCBk
byBQT1NULXRoZW4tcmVkaXJlY3QpLCBhbmQgaXMgdGVzdGVkIGJ5CisgICAgICAgIHBvc3RyZWRp
cmVjdC1mcmFtZXMtZ29iYWNrMS5odG1sLgorICAgICAgICAKKyAgICAgICAgVGVzdHM6IGh0dHAv
dGVzdHMvbmF2aWdhdGlvbi9wb3N0LWZyYW1lcy1nb2JhY2sxLmh0bWwKKyAgICAgICAgICAgICAg
IGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0cmVkaXJlY3QtZnJhbWVzLWdvYmFjazEuaHRtbAor
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpsb2FkVVJMSW50b0NoaWxkRnJhbWUpOiBTd2l0Y2ggdG8gdXNpbmcKKyAgICAg
ICAgICAgIGxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0uIEFsc28gY2xlYW5lZCB1cCBvcmRlcmlu
ZyBzbGlnaHRseSAoaWYKKyAgICAgICAgICAgIG9uIHRoZSBhcmNoaXZlIHBhdGgsIHRoZXJlJ3Mg
bm8gbmVlZCB0byBkbyBhbnkgb2YgdGhlIG90aGVyIGNoZWNrcykuCisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbSk6IFJlbmFtZWQgZnJvbQor
ICAgICAgICAgICAgbmF2aWdhdGVUb0RpZmZlcmVudERvY3VtZW50IHNvIHRoYXQgY2FsbGluZyBp
dCBmcm9tIGxvYWRJdGVtIGFuZAorICAgICAgICAgICAgbG9hZFVSTEludG9DaGlsZEZyYW1lIGZs
b3dzIG1vcmUgZWFzaWx5LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRTYW1l
RG9jdW1lbnRJdGVtKTogU2ltaWxhcmx5LCByZW5hbWVkIGZyb20KKyAgICAgICAgICAgIG5hdmln
YXRlV2l0aGluRG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZEl0
ZW0pOiBVcGRhdGUgY2FsbHNpdGVzIHRvIHRoZSBhYm92ZSBtZXRob2RzLgorICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlci5oOgorCiAyMDEwLTExLTI0ICBOaWNvbGFzIER1ZnJlc25lICA8bmlj
b2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFy
dGluIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
IGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDM1YTQ5MmI5YTMwMmM0ZDY5
MjE3NjM4ODBmMzhkZjJkYzNkOWEwNDkuLmQwYmMxYWU2MjJlNzE3YTBjMGZhMWY5NmViYzIxYzk5
YmM2MDI1ODggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysg
Yi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTkxOSwzMiArOTE5LDI2IEBAIHZv
aWQgRnJhbWVMb2FkZXI6OmxvYWRVUkxJbnRvQ2hpbGRGcmFtZShjb25zdCBLVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgcmVmZXJlciwKIHsKICAgICBBU1NFUlQoY2hpbGRGcmFtZSk7CiAKLSAgICBI
aXN0b3J5SXRlbSogcGFyZW50SXRlbSA9IGhpc3RvcnkoKS0+Y3VycmVudEl0ZW0oKTsKLSAgICBG
cmFtZUxvYWRUeXBlIGxvYWRUeXBlID0gdGhpcy0+bG9hZFR5cGUoKTsKLSAgICBGcmFtZUxvYWRU
eXBlIGNoaWxkTG9hZFR5cGUgPSBGcmFtZUxvYWRUeXBlUmVkaXJlY3RXaXRoTG9ja2VkQmFja0Zv
cndhcmRMaXN0OworICAgIFJlZlB0cjxBcmNoaXZlPiBzdWJmcmFtZUFyY2hpdmUgPSBhY3RpdmVE
b2N1bWVudExvYWRlcigpLT5wb3BBcmNoaXZlRm9yU3ViZnJhbWUoY2hpbGRGcmFtZS0+dHJlZSgp
LT51bmlxdWVOYW1lKCkpOworICAgIAorICAgIGlmIChzdWJmcmFtZUFyY2hpdmUpIHsKKyAgICAg
ICAgY2hpbGRGcmFtZS0+bG9hZGVyKCktPmxvYWRBcmNoaXZlKHN1YmZyYW1lQXJjaGl2ZS5yZWxl
YXNlKCkpOworICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgS1VSTCB3b3JraW5nVVJMID0g
dXJsOworICAgIEhpc3RvcnlJdGVtKiBwYXJlbnRJdGVtID0gaGlzdG9yeSgpLT5jdXJyZW50SXRl
bSgpOwogICAgIAogICAgIC8vIElmIHdlJ3JlIG1vdmluZyBpbiB0aGUgYmFjay9mb3J3YXJkIGxp
c3QsIHdlIG1pZ2h0IHdhbnQgdG8gcmVwbGFjZSB0aGUgY29udGVudAogICAgIC8vIG9mIHRoaXMg
Y2hpbGQgZnJhbWUgd2l0aCB3aGF0ZXZlciB3YXMgdGhlcmUgYXQgdGhhdCBwb2ludC4KLSAgICBp
ZiAocGFyZW50SXRlbSAmJiBwYXJlbnRJdGVtLT5jaGlsZHJlbigpLnNpemUoKSAmJiBpc0JhY2tG
b3J3YXJkTG9hZFR5cGUobG9hZFR5cGUpKSB7CisgICAgaWYgKHBhcmVudEl0ZW0gJiYgcGFyZW50
SXRlbS0+Y2hpbGRyZW4oKS5zaXplKCkgJiYgaXNCYWNrRm9yd2FyZExvYWRUeXBlKGxvYWRUeXBl
KCkpKSB7CiAgICAgICAgIEhpc3RvcnlJdGVtKiBjaGlsZEl0ZW0gPSBwYXJlbnRJdGVtLT5jaGls
ZEl0ZW1XaXRoVGFyZ2V0KGNoaWxkRnJhbWUtPnRyZWUoKS0+dW5pcXVlTmFtZSgpKTsKICAgICAg
ICAgaWYgKGNoaWxkSXRlbSkgewotICAgICAgICAgICAgLy8gVXNlIHRoZSBvcmlnaW5hbCBVUkwg
dG8gZW5zdXJlIHdlIGdldCBhbGwgdGhlIHNpZGUtZWZmZWN0cywgc3VjaCBhcwotICAgICAgICAg
ICAgLy8gb25Mb2FkIGhhbmRsZXJzLCBvZiBhbnkgcmVkaXJlY3RzIHRoYXQgaGFwcGVuZWQuIEFu
IGV4YW1wbGUgb2Ygd2hlcmUKLSAgICAgICAgICAgIC8vIHRoaXMgaXMgbmVlZGVkIGlzIFJhZGFy
IDMyMTM1NTYuCi0gICAgICAgICAgICB3b3JraW5nVVJMID0gS1VSTChQYXJzZWRVUkxTdHJpbmcs
IGNoaWxkSXRlbS0+b3JpZ2luYWxVUkxTdHJpbmcoKSk7Ci0gICAgICAgICAgICBjaGlsZExvYWRU
eXBlID0gbG9hZFR5cGU7Ci0gICAgICAgICAgICBjaGlsZEZyYW1lLT5sb2FkZXIoKS0+aGlzdG9y
eSgpLT5zZXRQcm92aXNpb25hbEl0ZW0oY2hpbGRJdGVtKTsKKyAgICAgICAgICAgIGNoaWxkRnJh
bWUtPmxvYWRlcigpLT5sb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKGNoaWxkSXRlbSwgbG9hZFR5
cGUoKSk7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBSZWZQ
dHI8QXJjaGl2ZT4gc3ViZnJhbWVBcmNoaXZlID0gYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+cG9w
QXJjaGl2ZUZvclN1YmZyYW1lKGNoaWxkRnJhbWUtPnRyZWUoKS0+dW5pcXVlTmFtZSgpKTsKLSAg
ICAKLSAgICBpZiAoc3ViZnJhbWVBcmNoaXZlKQotICAgICAgICBjaGlsZEZyYW1lLT5sb2FkZXIo
KS0+bG9hZEFyY2hpdmUoc3ViZnJhbWVBcmNoaXZlLnJlbGVhc2UoKSk7Ci0gICAgZWxzZQotICAg
ICAgICBjaGlsZEZyYW1lLT5sb2FkZXIoKS0+bG9hZFVSTCh3b3JraW5nVVJMLCByZWZlcmVyLCBT
dHJpbmcoKSwgZmFsc2UsIGNoaWxkTG9hZFR5cGUsIDAsIDApOworICAgIGNoaWxkRnJhbWUtPmxv
YWRlcigpLT5sb2FkVVJMKHVybCwgcmVmZXJlciwgU3RyaW5nKCksIGZhbHNlLCBGcmFtZUxvYWRU
eXBlUmVkaXJlY3RXaXRoTG9ja2VkQmFja0ZvcndhcmRMaXN0LCAwLCAwKTsKIH0KIAogdm9pZCBG
cmFtZUxvYWRlcjo6bG9hZEFyY2hpdmUoUGFzc1JlZlB0cjxBcmNoaXZlPiBwcnBBcmNoaXZlKQpA
QCAtMzEyNyw3ICszMTIxLDcgQEAgRnJhbWUqIEZyYW1lTG9hZGVyOjpmaW5kRnJhbWVGb3JOYXZp
Z2F0aW9uKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKICAgICByZXR1cm4gZnJhbWU7CiB9CiAK
LXZvaWQgRnJhbWVMb2FkZXI6Om5hdmlnYXRlV2l0aGluRG9jdW1lbnQoSGlzdG9yeUl0ZW0qIGl0
ZW0pCit2b2lkIEZyYW1lTG9hZGVyOjpsb2FkU2FtZURvY3VtZW50SXRlbShIaXN0b3J5SXRlbSog
aXRlbSkKIHsKICAgICBBU1NFUlQoaXRlbS0+ZG9jdW1lbnRTZXF1ZW5jZU51bWJlcigpID09IGhp
c3RvcnkoKS0+Y3VycmVudEl0ZW0oKS0+ZG9jdW1lbnRTZXF1ZW5jZU51bWJlcigpKTsKIApAQCAt
MzE0OSw3ICszMTQzLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bmF2aWdhdGVXaXRoaW5Eb2N1bWVu
dChIaXN0b3J5SXRlbSogaXRlbSkKIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIHNob3VsZCByZWFs
bHkgYmUgc3BsaXQgaW50byBhIGNvdXBsZSBwaWVjZXMsIHNvbWUgb2YKIC8vIHdoaWNoIHNob3Vs
ZCBiZSBtZXRob2RzIG9mIEhpc3RvcnlDb250cm9sbGVyIGFuZCBzb21lIG9mIHdoaWNoIHNob3Vs
ZCBiZQogLy8gbWV0aG9kcyBvZiBGcmFtZUxvYWRlci4KLXZvaWQgRnJhbWVMb2FkZXI6Om5hdmln
YXRlVG9EaWZmZXJlbnREb2N1bWVudChIaXN0b3J5SXRlbSogaXRlbSwgRnJhbWVMb2FkVHlwZSBs
b2FkVHlwZSkKK3ZvaWQgRnJhbWVMb2FkZXI6OmxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oSGlz
dG9yeUl0ZW0qIGl0ZW0sIEZyYW1lTG9hZFR5cGUgbG9hZFR5cGUpCiB7CiAgICAgLy8gUmVtZW1i
ZXIgdGhpcyBpdGVtIHNvIHdlIGNhbiB0cmF2ZXJzZSBhbnkgY2hpbGQgaXRlbXMgYXMgY2hpbGQg
ZnJhbWVzIGxvYWQKICAgICBoaXN0b3J5KCktPnNldFByb3Zpc2lvbmFsSXRlbShpdGVtKTsKQEAg
LTMyNTIsOSArMzI0Niw5IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRJdGVtKEhpc3RvcnlJdGVt
KiBpdGVtLCBGcmFtZUxvYWRUeXBlIGxvYWRUeXBlKQogI2VuZGlmCiAKICAgICBpZiAoc2FtZURv
Y3VtZW50TmF2aWdhdGlvbikKLSAgICAgICAgbmF2aWdhdGVXaXRoaW5Eb2N1bWVudChpdGVtKTsK
KyAgICAgICAgbG9hZFNhbWVEb2N1bWVudEl0ZW0oaXRlbSk7CiAgICAgZWxzZQotICAgICAgICBu
YXZpZ2F0ZVRvRGlmZmVyZW50RG9jdW1lbnQoaXRlbSwgbG9hZFR5cGUpOworICAgICAgICBsb2Fk
RGlmZmVyZW50RG9jdW1lbnRJdGVtKGl0ZW0sIGxvYWRUeXBlKTsKIH0KIAogdm9pZCBGcmFtZUxv
YWRlcjo6c2V0TWFpbkRvY3VtZW50RXJyb3IoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgY29uc3Qg
UmVzb3VyY2VFcnJvciYgZXJyb3IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5oIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCA3NmFkOTc3YjQzZjUw
NDI3NjI4MDdmMDMxMTc4MzY2NWY0OWU2ZTE5Li44MzIyNDUyMTU5YzgxNDIxNWM3YTI4N2VkNDdk
ZmYwZTlmMDRiODM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisr
KyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTMzNiw4ICszMzYsOCBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIHZvaWQgY2hlY2tUaW1lckZpcmVkKFRpbWVyPEZyYW1lTG9hZGVy
PiopOwogICAgIAotICAgIHZvaWQgbmF2aWdhdGVXaXRoaW5Eb2N1bWVudChIaXN0b3J5SXRlbSop
OwotICAgIHZvaWQgbmF2aWdhdGVUb0RpZmZlcmVudERvY3VtZW50KEhpc3RvcnlJdGVtKiwgRnJh
bWVMb2FkVHlwZSk7CisgICAgdm9pZCBsb2FkU2FtZURvY3VtZW50SXRlbShIaXN0b3J5SXRlbSop
OworICAgIHZvaWQgbG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5SXRlbSosIEZyYW1l
TG9hZFR5cGUpOwogICAgIAogICAgIHZvaWQgbG9hZFByb3Zpc2lvbmFsSXRlbUZyb21DYWNoZWRQ
YWdlKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75076</attachid>
            <date>2010-11-29 16:08:31 -0800</date>
            <delta_ts>2010-12-07 16:27:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-10199-20101129160830.patch</filename>
            <type>text/plain</type>
            <size>22285</size>
            <attacher name="Mihai Parparita">mihaip</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3YzY3MjQ0YjQ4MzdlMWJkYjBhMWM1NzM4YWQ0N2YxMjg4NzY5YmU5Li5iMzY2YzAz
NjkzNjc0MzI1NjJkY2EwZGM1OGE1NjY3ZDdkNTMzMzZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAK
KzIwMTAtMTEtMjkgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcmV0dXJuaW5nIHRv
IGEgUE9TVCByZXN1bHQgd2l0aGluIGEgZnJhbWUgZG9lcyBhIEdFVCBpbnN0ZWFkIG9mIGEgUE9T
VAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxOTkK
KyAgICAgICAgCisgICAgICAgIFJlLWVuYWJsZSBwb3N0cmVkaXJlY3QtZnJhbWVzLWdvYmFjazEu
aHRtbCBhbmQgcG9zdC1mcmFtZXMtZ29iYWNrMS5odG1sCisgICAgICAgIG5vdyB0aGF0IHRoZSBi
aWcgdGhhdCBtYWRlIHRoZW0gYmUgY2hlY2tlZCBpbiBkaXNhYmxlZCB3YXMgZml4ZWQuCisgICAg
ICAgIAorICAgICAgICBUaGUgdGVzdHMgd2VyZSBhbHNvIHJlLXdyaXR0ZW4gdG8gbm90IGJlIHBp
eGVsIHRlc3RzLCBzaW5jZSB0aGF0IGp1c3QKKyAgICAgICAgYWRkcyBleHRyYSBwZXItcGxhdGZv
cm0gYmFzZWxpbmUgcGFpbi4KKyAgICAgICAgCisgICAgICAgIEFkZCBmYXN0L2hpc3RvcnkvaGlz
dG9yeS1iYWNrLWluaXRpYWwtdnMtZmluYWwtdXJsLmh0bWwgc2luY2UgdGhlcmUgZGlkCisgICAg
ICAgIG5vdCBhcHBlYXIgdG8gYmUgYW55IHRlc3RzIGZvciB3aGV0aGVyIHdlIHVzZWQgdGhlIGlu
aXRpYWwgb3IgZmluYWwgVVJMCisgICAgICAgIG9mIGEgZnJhbWUncyBoaXN0b3J5IGl0ZW0gKGFu
ZCB0aGlzIHBhdGNoIGNoYW5nZXMgaXQgZnJvbSB0aGUgZm9ybWVyIHRvCisgICAgICAgIHRoZSBs
YXR0ZXIpLgorCisgICAgICAgICogZmFzdC9oaXN0b3J5L2hpc3RvcnktYmFjay1pbml0aWFsLXZz
LWZpbmFsLXVybC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9o
aXN0b3J5LWJhY2staW5pdGlhbC12cy1maW5hbC11cmwuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9oaXN0b3J5L3Jlc291cmNlcy9mcmFtZS1maW5hbC11cmwuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9oaXN0b3J5L3Jlc291cmNlcy9mcmFtZS1pbml0aWFsLXVybC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdC1mcmFtZXMtZ29iYWNrMS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0
LWZyYW1lcy1nb2JhY2sxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdh
dGlvbi9wb3N0LWZyYW1lcy1nb2JhY2sxLmh0bWwtZGlzYWJsZWQ6IFJlbW92ZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3QtZnJhbWVzLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3RyZWRpcmVjdC1mcmFtZXMtZ29iYWNrMS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0cmVkaXJlY3Qt
ZnJhbWVzLWdvYmFjazEuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3Bvc3RyZWRpcmVjdC1mcmFtZXMtZ29iYWNrMS5odG1sLWRpc2FibGVkOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvZm9ybS10YXJnZXQucGw6
CisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9yZWRpcmVjdC10by1n
by1iYWNrLnBsOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3Vy
Y2VzL3RvcC1nby1iYWNrLmh0bWw6IEFkZGVkLgorCiAyMDEwLTExLTI5ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBRdC1zcGVjaWZpYyByZXN1
bHQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvaGlzdG9yeS1iYWNrLWlu
aXRpYWwtdnMtZmluYWwtdXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9y
eS9oaXN0b3J5LWJhY2staW5pdGlhbC12cy1maW5hbC11cmwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU4NzIxOTU2N2ViODBmMGFiMTY3MTgzOGRmNzVlMDgwNDc2ZjU3ZDUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvaGlzdG9yeS1iYWNrLWluaXRpYWwtdnMt
ZmluYWwtdXJsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIyIEBACitBTEVSVDogSW5pdGlhbCBV
UkwgbG9hZGVkLgorQUxFUlQ6IEZpbmFsIFVSTCBsb2FkZWQuCitBTEVSVDogR29pbmcgYmFjay4K
K0FMRVJUOiBGaW5hbCBVUkwgbG9hZGVkLgorQ2hlY2tzIHRoYXQgd2hlbiBnb2luZyBiYWNrIHRv
IGEgcGFnZSB0aGF0IGZyYW1lcyB0aGF0IHdlcmUgbmF2aWdhdGVkLCB0aGF0IHRoZSBmaW5hbCBV
Ukwgb2YgdGhlIGZyYW1lcyBpcyBsb2FkZWQgZGlyZWN0bHksIGluc3RlYWQgdGhlIGluaXRpYWwg
VVJMLiBGb3VyIGFsZXJ0cyBzaG91bGQgYXBwZWFyLCBpbiB0aGlzIG9yZGVyOgorCitJbml0aWFs
IFVSTCBsb2FkZWQuCitGaW5hbCBVUkwgbG9hZGVkLgorR29pbmcgYmFjay4KK0ZpbmFsIFVSTCBs
b2FkZWQuCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAt
LT4tLT4nCistLS0tLS0tLQorZmluYWwgcGFnZSBjb250ZW50cworCis9PT09PT09PT09PT09PSBC
YWNrIEZvcndhcmQgTGlzdCA9PT09PT09PT09PT09PQorY3Vyci0+ICAoZmlsZSB0ZXN0KTpmYXN0
L2hpc3RvcnkvaGlzdG9yeS1iYWNrLWluaXRpYWwtdnMtZmluYWwtdXJsLmh0bWwgICoqbmF2IHRh
cmdldCoqCisgICAgICAgICAgICAoZmlsZSB0ZXN0KTpmYXN0L2hpc3RvcnkvcmVzb3VyY2VzL2Zy
YW1lLWZpbmFsLXVybC5odG1sIChpbiBmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAt
LT4tLT4iKQorICAgICAgICBkYXRhOnRleHQvaHRtbCwlM0NzY3JpcHQlM0VhbGVydCglMjJHb2lu
ZyUyMGJhY2suJTIyKTtoaXN0b3J5LmJhY2soKTslM0Mvc2NyaXB0JTNFICAqKm5hdiB0YXJnZXQq
KgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9oaXN0b3J5LWJhY2staW5pdGlhbC12cy1m
aW5hbC11cmwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9oaXN0b3J5LWJhY2staW5p
dGlhbC12cy1maW5hbC11cmwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDA1NWM1YTVjODNjMjc3NzE0MWVi
YWM1MTVhNGNkNmYyM2FlODgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9o
aXN0b3J5L2hpc3RvcnktYmFjay1pbml0aWFsLXZzLWZpbmFsLXVybC5odG1sCkBAIC0wLDAgKzEs
NDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKworPHA+Q2hlY2tzIHRoYXQg
d2hlbiBnb2luZyBiYWNrIHRvIGEgcGFnZSB0aGF0IGZyYW1lcyB0aGF0IHdlcmUgbmF2aWdhdGVk
LCB0aGF0IHRoZSBmaW5hbCBVUkwgb2YgdGhlIGZyYW1lcyBpcyBsb2FkZWQgZGlyZWN0bHksIGlu
c3RlYWQgdGhlIGluaXRpYWwgVVJMLiBGb3VyIGFsZXJ0cyBzaG91bGQgYXBwZWFyLCBpbiB0aGlz
IG9yZGVyOjwvcD4KKworPG9sPgorICAgIDxsaT5Jbml0aWFsIFVSTCBsb2FkZWQuPC9saT4KKyAg
ICA8bGk+RmluYWwgVVJMIGxvYWRlZC48L2xpPgorICAgIDxsaT5Hb2luZyBiYWNrLjwvbGk+Cisg
ICAgPGxpPkZpbmFsIFVSTCBsb2FkZWQuPC9saT4KKzwvb2w+CisKKzxpZnJhbWUgYSB3aWR0aD0i
MjAwIiBoZWlnaHQ9IjIwMCIgb251bmxvYWQ9IiIgc3JjPSJyZXNvdXJjZXMvZnJhbWUtaW5pdGlh
bC11cmwuaHRtbCI+PC9pZnJhbWU+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQmFja0ZvcndhcmRMaXN0KCk7Cit9IGVsc2UgeworICAgIC8vIERpc2FibGUgcGFnZSBj
YWNoZSB3aGVuIG5vdCBydW5uaW5nIHVuZGVyIHRoZSBEUlQuCisgICAgb251bmxvYWQgPSBmdW5j
dGlvbigpIHt9OworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgCit7CisgICAgaWYgKHNlc3Npb25T
dG9yYWdlLmRpZE5hdikgeworICAgICAgICBkZWxldGUgc2Vzc2lvblN0b3JhZ2UuZGlkTmF2Owor
ICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8v
IE5hdmlnYXRlIGEgdGltZW91dCB0byBtYWtlIHN1cmUgd2UgZ2VuZXJhdGUgYSBoaXN0b3J5IGVu
dHJ5IHRoYXQgd2UgY2FuIGdvIGJhY2sgdG8uCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7bG9jYXRpb24uaHJlZiA9ICdkYXRhOnRleHQvaHRtbCw8c2NyaXB0PmFsZXJ0KCJHb2luZyBi
YWNrLiIpO2hpc3RvcnkuYmFjaygpOzwvJyArICdzY3JpcHQ+Jzt9LCAwKTsKKyAgICAgICAgc2Vz
c2lvblN0b3JhZ2UuZGlkTmF2ID0gdHJ1ZTsKKyAgICB9Cit9OworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9oaXN0b3J5L3Jlc291cmNlcy9mcmFtZS1maW5hbC11cmwuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvaGlzdG9yeS9yZXNvdXJjZXMvZnJhbWUtZmluYWwtdXJsLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzMxMzdjYTBmYWY2MGM1NTdjYWZmMzcxNDVkMzIyYTBkYjBkNTdiYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9yZXNvdXJjZXMvZnJhbWUtZmluYWwt
dXJsLmh0bWwKQEAgLTAsMCArMSw1IEBACitmaW5hbCBwYWdlIGNvbnRlbnRzCis8c2NyaXB0Pgor
YWxlcnQoJ0ZpbmFsIFVSTCBsb2FkZWQuJyk7Cit0b3AucnVuVGVzdCgpOworPC9zY3JpcHQ+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9o
aXN0b3J5L3Jlc291cmNlcy9mcmFtZS1pbml0aWFsLXVybC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L3Jlc291cmNlcy9mcmFtZS1pbml0aWFsLXVybC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1
MmJkZjlmMTY4NTUxOTc4NWJkYmFlM2YwMjIxZDMyNDdhNzMyYjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcmVzb3VyY2VzL2ZyYW1lLWluaXRpYWwtdXJsLmh0
bWwKQEAgLTAsMCArMSw1IEBACitpbml0aWFsIGZyYW1lIGNvbnRlbnRzCis8c2NyaXB0PgorYWxl
cnQoJ0luaXRpYWwgVVJMIGxvYWRlZC4nKTsKK3dpbmRvdy5sb2NhdGlvbj0nZnJhbWUtZmluYWwt
dXJsLmh0bWwnOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vcG9zdC1mcmFtZXMtZ29iYWNrMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdC1mcmFtZXMtZ29iYWNrMS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTUxMDE2YTFhOGMxZDU1MzRmMWYxYzI4MGIwNTFmOTljYjVmMmFhZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0LWZy
YW1lcy1nb2JhY2sxLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitUZXN0cyB0aGF0IGEg
UE9TVCB0YXJnZXR0ZWQgdG8gYSBmcmFtZSBpcyBoYW5kbGVkIGNvcnJlY3RseSB3aGVuIG5hdmln
YXRpbmcgYXdheSBhbmQgY29taW5nIGJhY2sgdG8gdGhlIHBhZ2UuCisKKworCisKKy0tLS0tLS0t
CitGcmFtZTogJ3RhcmdldC1mcmFtZScKKy0tLS0tLS0tCitUaGlzIHBhZ2Ugd2FzIHJlcXVlc3Rl
ZCB3aXRoIHRoZSBIVFRQIG1ldGhvZCBQT1NULgorCitQYXJhbWV0ZXJzOgorCit0aGUtaW5wdXQg
PSBpbnB1dCB2YWx1ZSBnb2VzIGhlcmUKKworPT09PT09PT09PT09PT0gQmFjayBGb3J3YXJkIExp
c3QgPT09PT09PT09PT09PT0KK2N1cnItPiAgaHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRp
b24vcG9zdC1mcmFtZXMtZ29iYWNrMS5odG1sICAqKm5hdiB0YXJnZXQqKgorICAgICAgICAgICAg
aHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcmVzb3VyY2VzL2Zvcm0tdGFyZ2V0LnBs
IChpbiBmcmFtZSAidGFyZ2V0LWZyYW1lIikKKyAgICAgICAgaHR0cDovLzEyNy4wLjAuMTo4MDAw
L25hdmlnYXRpb24vcmVzb3VyY2VzL2dvLWJhY2suaHRtbCAgKipuYXYgdGFyZ2V0KioKKz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdC1mcmFtZXMtZ29iYWNrMS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3QtZnJhbWVzLWdvYmFjazEu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41ODFkNGY4MDExMzEyMjNhN2ViNWE0YTQ3MWQyYzIxZjU1NmMyZDhh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bv
c3QtZnJhbWVzLWdvYmFjazEuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEJh
Y2tGb3J3YXJkTGlzdCgpOworfQorICAgCitvbmxvYWQgPSBmdW5jdGlvbigpCit7CisgICAgaWYg
KHNlc3Npb25TdG9yYWdlLmRpZE5hdikgeworICAgICAgICBkZWxldGUgc2Vzc2lvblN0b3JhZ2Uu
ZGlkTmF2OworICAgICAgICBkZWxldGUgc2Vzc2lvblN0b3JhZ2UudG9wU2hvdWxkTmF2QW5kR29C
YWNrOworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0gZWxzZSB7CisgICAg
ICAgIHNlc3Npb25TdG9yYWdlLnRvcFNob3VsZE5hdkFuZEdvQmFjayA9IHRydWU7CisgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aGUtZm9ybScpLnN1Ym1pdCgpOworICAgIH0KK30K
KyAgIAorPC9zY3JpcHQ+ICAKKworPHA+VGVzdHMgdGhhdCBhIFBPU1QgdGFyZ2V0dGVkIHRvIGEg
ZnJhbWUgaXMgaGFuZGxlZCBjb3JyZWN0bHkgd2hlbiBuYXZpZ2F0aW5nIGF3YXkgYW5kIGNvbWlu
ZyBiYWNrIHRvIHRoZSBwYWdlLjwvcD4KKworPGZvcm0gaWQ9InRoZS1mb3JtIiBtZXRob2Q9IlBP
U1QiIGFjdGlvbj0icmVzb3VyY2VzL2Zvcm0tdGFyZ2V0LnBsIiB0YXJnZXQ9InRhcmdldC1mcmFt
ZSI+CisgIDxpbnB1dCBuYW1lPSJ0aGUtaW5wdXQiIHZhbHVlPSJpbnB1dCB2YWx1ZSBnb2VzIGhl
cmUiPgorPC9mb3JtPgorCis8aWZyYW1lIG5hbWU9InRhcmdldC1mcmFtZSIgc3JjPSJhYm91dDpi
bGFuayI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3Qt
ZnJhbWVzLWdvYmFjazEuaHRtbC1kaXNhYmxlZCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2
aWdhdGlvbi9wb3N0LWZyYW1lcy1nb2JhY2sxLmh0bWwtZGlzYWJsZWQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDdmOGU3OTZmMzM3N2U4MGVhOWI2YTQwOGYxNDE0NjA3MDg1N2JlZmEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3QtZnJhbWVzLWdvYmFjazEuaHRtbC1kaXNhYmxl
ZAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0icmVzb3VyY2VzL3Rlc3Rjb2RlLmpzIi8+Ci08c2NyaXB0PgotICAgIHJ1bkJh
Y2tUZXN0KCJyZXNvdXJjZXMvZnJhbWVzZXQucGw/ZnJhbWVVUkw9c3VjY2VzczIwMC5odG1sIiwg
MSwgInBvc3QiKTsKLTwvc2NyaXB0PgotVGhpcyBwYWdlIGp1c3Qga2lja3Mgb2ZmIGEgdGVzdCwg
YW5kIHNob3VsZCBub3QgYXBwZWFyIGluIHRoZSBleHBlY3RlZCB0ZXN0IG91dHB1dC4KLQotPGJy
PgotRElTQUJMRUQgZHVlIHRvIGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAxOTkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9wb3N0LWZyYW1lcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L3Bvc3QtZnJhbWVzLmh0bWwKaW5kZXggNGEwYjNkNjIyYzM5MDZkMDE4MWMyNTNhZWY5N2M1MTE3
YThlNmE1OS4uNTlkNWM2Y2MyNTg3YjZjMjgyNjYwODE1NzM5N2FkYjQ0MTA4ZDA2ZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3QtZnJhbWVzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3QtZnJhbWVzLmh0bWwK
QEAgLTMsNyArMyw2IEBACiAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CiAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmNsZWFyQmFja0ZvcndhcmRMaXN0KCk7CiAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQmFja0ZvcndhcmRMaXN0KCk7CiAgICB9CiA8L3NjcmlwdD4gIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3RyZWRpcmVjdC1mcmFt
ZXMtZ29iYWNrMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRp
b24vcG9zdHJlZGlyZWN0LWZyYW1lcy1nb2JhY2sxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
ZWZjYWJkNmUxOTFhMTY1ZmQ2NjVjZGRmMGU0ZTIzODQ2MmZkMjZiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3RyZWRpcmVjdC1mcmFtZXMt
Z29iYWNrMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAorVGVzdHMgdGhlIGZvbGxvd2lu
ZyBzZXF1ZW5jZSBvZiBldmVudHM6CisKK1N1Ym1pdCBhIGZvcm0gdmlhIFBPU1QgdG8gYSBmcmFt
ZSAocmVkaXJlY3QtdG8tZ28tYmFjay5wbCkuCitGb3JtIHBhZ2UgZG9lcyBhIDMwMiB0byBhIHN0
YXRpYyBwYWdlICh0b3AtZ28tYmFjay5odG1sKSwgc3RpbGwgd2l0aGluIHRoZSBmcmFtZS4KK1N0
YXRpYyBwYWdlIGRvZXMgYSB0b3AtbGV2ZWwgbmF2aWdhdGlvbiB0byBhbm90aGVyIHN0YXRpYyBw
YWdlIChnby1iYWNrLmh0bWwpCitUaGlzIHN0YXRpYyBwYWdlIGdvZXMgYmFjay4KK1dlIHNob3Vs
ZCBlbmQgdXAgc2hvd2luZyB0aGUgdG9wLWxldmVsIHBhZ2Ugd2l0aCB0aGUgZmlyc3Qgc3RhdGlj
IHBhZ2UgaW5zaWRlIHRoZSBmcmFtZS4KKworCisKKworLS0tLS0tLS0KK0ZyYW1lOiAndGFyZ2V0
LWZyYW1lJworLS0tLS0tLS0KK1RhcmdldCBvZiByZWRpcmVjdCBhZnRlciBQT1NUIHJlcXVlc3Qu
CisKKz09PT09PT09PT09PT09IEJhY2sgRm9yd2FyZCBMaXN0ID09PT09PT09PT09PT09CitjdXJy
LT4gIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0aW9uL3Bvc3RyZWRpcmVjdC1mcmFtZXMt
Z29iYWNrMS5odG1sICAqKm5hdiB0YXJnZXQqKgorICAgICAgICAgICAgaHR0cDovLzEyNy4wLjAu
MTo4MDAwL25hdmlnYXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWdvLWJhY2sucGwgKGluIGZy
YW1lICJ0YXJnZXQtZnJhbWUiKQorICAgICAgICBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdh
dGlvbi9yZXNvdXJjZXMvZ28tYmFjay5odG1sICAqKm5hdiB0YXJnZXQqKgorPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0cmVkaXJlY3QtZnJhbWVzLWdvYmFjazEuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0cmVkaXJlY3QtZnJhbWVz
LWdvYmFjazEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDA5OTJkY2JkNjMzOTdhN2JlYTMxMDkzYWI0YTk3
NGYyYjdjMjBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3Bvc3RyZWRpcmVjdC1mcmFtZXMtZ29iYWNrMS5odG1sCkBAIC0wLDAgKzEsNDEgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOwor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQmFja0ZvcndhcmRMaXN0KCk7CisgfQorICAgCitvbmxvYWQgPSBmdW5j
dGlvbigpCit7CisgICAgaWYgKHNlc3Npb25TdG9yYWdlLmRpZE5hdikgeworICAgICAgICBkZWxl
dGUgc2Vzc2lvblN0b3JhZ2UuZGlkTmF2OworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OworICAgIH0gZWxzZSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aGUtZm9y
bScpLnN1Ym1pdCgpOworICAgIH0KK30KKyAgIAorPC9zY3JpcHQ+ICAKKworPHA+VGVzdHMgdGhl
IGZvbGxvd2luZyBzZXF1ZW5jZSBvZiBldmVudHM6PC9wPgorPG9sPgorICA8bGk+U3VibWl0IGEg
Zm9ybSB2aWEgUE9TVCB0byBhIGZyYW1lIChyZWRpcmVjdC10by1nby1iYWNrLnBsKS48bGk+Cisg
IDxsaT5Gb3JtIHBhZ2UgZG9lcyBhIDMwMiB0byBhIHN0YXRpYyBwYWdlICh0b3AtZ28tYmFjay5o
dG1sKSwgc3RpbGwgd2l0aGluIHRoZSBmcmFtZS48L2xpPgorICA8bGk+U3RhdGljIHBhZ2UgZG9l
cyBhIHRvcC1sZXZlbCBuYXZpZ2F0aW9uIHRvIGFub3RoZXIgc3RhdGljIHBhZ2UgKGdvLWJhY2su
aHRtbCk8L2xpPgorICA8bGk+VGhpcyBzdGF0aWMgcGFnZSBnb2VzIGJhY2suPC9saT4KKzwvb2w+
CisKKzxwPldlIHNob3VsZCBlbmQgdXAgc2hvd2luZyB0aGUgdG9wLWxldmVsIHBhZ2Ugd2l0aCB0
aGUgZmlyc3Qgc3RhdGljIHBhZ2UgaW5zaWRlIHRoZSBmcmFtZS48L2xpPgorCis8Zm9ybSBpZD0i
dGhlLWZvcm0iIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSJyZXNvdXJjZXMvcmVkaXJlY3QtdG8tZ28t
YmFjay5wbCIgdGFyZ2V0PSJ0YXJnZXQtZnJhbWUiPgorICA8aW5wdXQgbmFtZT0idGhlLWlucHV0
IiB2YWx1ZT0iaW5wdXQgdmFsdWUgZ29lcyBoZXJlIj4KKzwvZm9ybT4KKworPGlmcmFtZSBuYW1l
PSJ0YXJnZXQtZnJhbWUiIHNyYz0iYWJvdXQ6YmxhbmsiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9o
dG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0cmVkaXJlY3QtZnJhbWVzLWdvYmFjazEuaHRtbC1k
aXNhYmxlZCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0cmVkaXJlY3Qt
ZnJhbWVzLWdvYmFjazEuaHRtbC1kaXNhYmxlZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMjk3NDIwMjRmYjRjMDk5ZDczOWExMzE0MWRkNDU2N2RkNjU1YmNkMS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vcG9zdHJlZGlyZWN0LWZyYW1lcy1nb2JhY2sxLmh0bWwtZGlzYWJsZWQKKysr
IC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9InJlc291cmNlcy90ZXN0Y29kZS5qcyIvPgotPHNjcmlwdD4KLSAgICBydW5CYWNrVGVz
dCgicmVzb3VyY2VzL2ZyYW1lc2V0LnBsP2ZyYW1lVVJMPXN1Y2Nlc3MyMDAuaHRtbCIsIDEsICJw
b3N0cmVkaXJlY3QiKTsKLTwvc2NyaXB0PgotVGhpcyBwYWdlIGp1c3Qga2lja3Mgb2ZmIGEgdGVz
dCwgYW5kIHNob3VsZCBub3QgYXBwZWFyIGluIHRoZSBleHBlY3RlZCB0ZXN0IG91dHB1dC4KLQot
PGJyPiAKLURJU0FCTEVEIGR1ZSB0byBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMTk5Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9yZXNvdXJjZXMvZm9ybS10YXJnZXQucGwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2Zvcm0tdGFyZ2V0LnBsCmluZGV4IDg4ODg3YTFlZGU2
ZDI5NjE4ZDYwMjJhMDBlZDMzNDMwZGI0NGVhNTguLjIwMGQwMzI4YzRmNjkyNzY0Y2E0Y2U2NDc3
ZjAwMTBhMzVlNTYwZjUgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9yZXNvdXJjZXMvZm9ybS10YXJnZXQucGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9mb3JtLXRhcmdldC5wbApAQCAtNDEsNiArNDEsMTYgQEAg
aWYgKHNlc3Npb25TdG9yYWdlLmZvcm1UYXJnZXRTaG91bGROYXZBbmRHb0JhY2spIHsKICAgfQog
fQogCitpZiAoc2Vzc2lvblN0b3JhZ2UudG9wU2hvdWxkTmF2QW5kR29CYWNrKSB7CisgIGlmICgh
c2Vzc2lvblN0b3JhZ2UuZGlkTmF2KSB7CisgICAgICBpc0RvbmUgPSBmYWxzZTsKKyAgICAgIHNl
c3Npb25TdG9yYWdlLmRpZE5hdiA9IHRydWU7CisgICAgICBvbmxvYWQgPSBmdW5jdGlvbigpIHsK
KyAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge3RvcC5sb2NhdGlvbi5ocmVmID0gJ2dv
LWJhY2suaHRtbCd9LCAwKTsKKyAgICAgIH07CisgIH0KK30KKwogaWYgKGlzRG9uZSAmJiB3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24v
cmVzb3VyY2VzL3JlZGlyZWN0LXRvLWdvLWJhY2sucGwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWdvLWJhY2sucGwKbmV3IGZpbGUgbW9k
ZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzNiNDEwNmRhZWY0MWRjMzE0ZTEwZTQ2OWY3N2U5MTlhYzJiMmMwMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3Qt
dG8tZ28tYmFjay5wbApAQCAtMCwwICsxLDE5IEBACisjIS91c3IvYmluL3BlcmwKKyMgU2ltcGxl
IHNjcmlwdCB0byBnZW5lcmF0ZSBhIDMwMiBIVFRQIHJlZGlyZWN0IHRvIGEgcGFnZSB0aGF0IHRy
aWdnZXJzIGEgCisjIG5hdmlnYXRpb24gYmFjayAob25seSBpZiBQT1NUIGlzIHVzZWQpLgorCit1
c2UgQ0dJOworJHF1ZXJ5ID0gbmV3IENHSTsKKworJG1ldGhvZCA9ICRxdWVyeS0+cmVxdWVzdF9t
ZXRob2QoKTsKKworaWYgKCRtZXRob2QgZXEgIlBPU1QiKSB7CisgICAgcHJpbnQgIlN0YXR1czog
MzAyIE1vdmVkIFRlbXBvcmFyaWx5XHJcbiI7CisgICAgcHJpbnQgIkxvY2F0aW9uOiB0b3AtZ28t
YmFjay5odG1sXHJcbiI7CisgICAgcHJpbnQgIlxyXG4iOworfSBlbHNlIHsKKyAgICBwcmludCAi
U3RhdHVzOiA0MDUgTWV0aG9kIG5vdCBhbGxvd2VkXHJcbiI7CisgICAgcHJpbnQgIkNvbnRlbnQt
dHlwZTogdGV4dC9wbGFpblxyXG4iOworICAgIHByaW50ICJcclxuIjsKKyAgICBwcmludCAiVGhp
cyBzaG91bGQgb25seSBiZSByZXF1ZXN0ZWQgdmlhIFBPU1QgKCRtZXRob2Qgd2FzIHVzZWQpLiIK
K30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJj
ZXMvdG9wLWdvLWJhY2suaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9y
ZXNvdXJjZXMvdG9wLWdvLWJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjljZmE3ZDJlZWFjM2Y3N2Yx
Yzk3NmUwZWM5M2E2N2I2ZTFkMDk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy90b3AtZ28tYmFjay5odG1sCkBAIC0wLDAgKzEs
OSBAQAorVGFyZ2V0IG9mIHJlZGlyZWN0IGFmdGVyIFBPU1QgcmVxdWVzdC4KKzxzY3JpcHQ+Cisg
ICAgICBvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICBpZiAoIXNlc3Npb25TdG9yYWdl
LmRpZE5hdikgeworICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2UuZGlkTmF2ID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7dG9wLmxvY2F0aW9uLmhyZWYgPSAnZ28t
YmFjay5odG1sJ30sIDApOworICAgICAgICAgIH0KKyAgICAgIH07Cis8L3NjcmlwdD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDFiNGMyZjhlYjEyYmQ3MjBlMmE5YzMxYWNkMzZlNWMzOGJi
MzA0ZjIuLjhkZjIxMWIxY2M3NGQzMmQ2NjI2OTQ5NzhkNzBjMmZmZGE1ODUwNGEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDAgQEAKKzIwMTAtMTEtMjkgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcmV0dXJu
aW5nIHRvIGEgUE9TVCByZXN1bHQgd2l0aGluIGEgZnJhbWUgZG9lcyBhIEdFVCBpbnN0ZWFkIG9m
IGEgUE9TVAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAxOTkKKyAgICAgICAgCisgICAgICAgIEZyYW1lTG9hZGVyOjpsb2FkVVJMSW50b0NoaWxkRnJh
bWUgaGFkIGEgY2hlY2sgZm9yIHdoZXRoZXIgYSBmcmFtZQorICAgICAgICBoYWQgYSBIaXN0b3J5
SXRlbSwgYW5kIGlmIHNvIHVzZWQgdGhhdCBpdGVtJ3MgVVJMLiBIb3dldmVyLCB0aGF0IGRpZAor
ICAgICAgICBub3QgaGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSBIaXN0b3J5SXRlbSBoYWQgRm9y
bURhdGEgYW5kIHRodXMgd2FzIHRoZQorICAgICAgICByZXN1bHQgb2YgYSBQT1NUIHJlcXVlc3Qu
IEZyYW1lTG9hZGVyOjpuYXZpZ2F0ZVRvRGlmZmVyZW50RG9jdW1lbnQgKG5vdworICAgICAgICBy
ZW5hbWVkIHRvIGxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0pIGRvZXMgYWxsIHRoYXQsIHNvIGp1
c3Qgc3dpdGNoIHRvCisgICAgICAgIHVzaW5nIGl0IGluc3RlYWQuCisgICAgICAgIAorICAgICAg
ICBCZXNpZGVzIHRoZSBidWcgZml4LCB0aGUgb25seSBkaWZmZXJlbmNlIGluIGJlaGF2aW9yIGlz
IHRoYXQgd2UgdXNlIHRoZQorICAgICAgICBIaXN0b3J5SXRlbSdzIFVSTCBpbnN0ZWFkIG9mIG9y
aWdpbmFsIFVSTCB3aGVuIHJlc3RvcmluZyBpdCBpbiBhIGNoaWxkCisgICAgICAgIGZyYW1lLiBU
aGlzIHNlZW1zIGRlc2lyYWJsZSB0b28gKGZvciBjb25zaXN0ZW5jeSB3aXRoIG90aGVyIGJyb3dz
ZXJzLCBhbmQKKyAgICAgICAgc28gdGhhdCB3ZSBjYW4gYXZvaWQgZm9ybSBkb3VibGUtc3VibWl0
cyBmb3IgZm9ybXMgdGhhdCB0aGF0IGRvCisgICAgICAgIFBPU1QtdGhlbi1yZWRpcmVjdCksIGFu
ZCBpcyB0ZXN0ZWQgYnkKKyAgICAgICAgZmFzdC9oaXN0b3J5L2hpc3RvcnktYmFjay1pbml0aWFs
LXZzLWZpbmFsLXVybC5odG1sLgorICAgICAgICAKKyAgICAgICAgVGVzdHM6IGZhc3QvaGlzdG9y
eS9oaXN0b3J5LWJhY2staW5pdGlhbC12cy1maW5hbC11cmwuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3QtZnJhbWVzLWdvYmFjazEuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3RyZWRpcmVjdC1mcmFtZXMtZ29iYWNrMS5o
dG1sCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OmxvYWRVUkxJbnRvQ2hpbGRGcmFtZSk6IFN3aXRjaCB0byB1c2luZwor
ICAgICAgICAgICAgbG9hZERpZmZlcmVudERvY3VtZW50SXRlbS4gQWxzbyBjbGVhbmVkIHVwIG9y
ZGVyaW5nIHNsaWdodGx5IChpZgorICAgICAgICAgICAgb24gdGhlIGFyY2hpdmUgcGF0aCwgdGhl
cmUncyBubyBuZWVkIHRvIGRvIGFueSBvZiB0aGUgb3RoZXIgY2hlY2tzKS4KKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKTogUmVuYW1lZCBm
cm9tCisgICAgICAgICAgICBuYXZpZ2F0ZVRvRGlmZmVyZW50RG9jdW1lbnQgc28gdGhhdCBjYWxs
aW5nIGl0IGZyb20gbG9hZEl0ZW0gYW5kCisgICAgICAgICAgICBsb2FkVVJMSW50b0NoaWxkRnJh
bWUgZmxvd3MgbW9yZSBlYXNpbHkuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9h
ZFNhbWVEb2N1bWVudEl0ZW0pOiBTaW1pbGFybHksIHJlbmFtZWQgZnJvbQorICAgICAgICAgICAg
bmF2aWdhdGVXaXRoaW5Eb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjps
b2FkSXRlbSk6IFVwZGF0ZSBjYWxsc2l0ZXMgdG8gdGhlIGFib3ZlIG1ldGhvZHMuCisgICAgICAg
ICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisKIDIwMTAtMTEtMjkgIE1pa2hhaWwgTmFnYW5vdiAg
PG1uYWdhbm92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxk
bWFuLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDM1YTQ5MmI5YTMwMmM0ZDY5MjE3NjM4ODBm
MzhkZjJkYzNkOWEwNDkuLjI2OTQ5Y2Q2ZTM3MTJkZTY5ZGE3OGU0N2UyOWNmMTc5M2JkZWY1YzEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTkxOSwzMiArOTE5LDI0IEBAIHZvaWQgRnJhbWVM
b2FkZXI6OmxvYWRVUkxJbnRvQ2hpbGRGcmFtZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgcmVmZXJlciwKIHsKICAgICBBU1NFUlQoY2hpbGRGcmFtZSk7CiAKLSAgICBIaXN0b3J5SXRl
bSogcGFyZW50SXRlbSA9IGhpc3RvcnkoKS0+Y3VycmVudEl0ZW0oKTsKLSAgICBGcmFtZUxvYWRU
eXBlIGxvYWRUeXBlID0gdGhpcy0+bG9hZFR5cGUoKTsKLSAgICBGcmFtZUxvYWRUeXBlIGNoaWxk
TG9hZFR5cGUgPSBGcmFtZUxvYWRUeXBlUmVkaXJlY3RXaXRoTG9ja2VkQmFja0ZvcndhcmRMaXN0
OworICAgIFJlZlB0cjxBcmNoaXZlPiBzdWJmcmFtZUFyY2hpdmUgPSBhY3RpdmVEb2N1bWVudExv
YWRlcigpLT5wb3BBcmNoaXZlRm9yU3ViZnJhbWUoY2hpbGRGcmFtZS0+dHJlZSgpLT51bmlxdWVO
YW1lKCkpOyAgICAKKyAgICBpZiAoc3ViZnJhbWVBcmNoaXZlKSB7CisgICAgICAgIGNoaWxkRnJh
bWUtPmxvYWRlcigpLT5sb2FkQXJjaGl2ZShzdWJmcmFtZUFyY2hpdmUucmVsZWFzZSgpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIEtVUkwgd29ya2luZ1VSTCA9IHVybDsKLSAgICAK
KyAgICBIaXN0b3J5SXRlbSogcGFyZW50SXRlbSA9IGhpc3RvcnkoKS0+Y3VycmVudEl0ZW0oKTsK
ICAgICAvLyBJZiB3ZSdyZSBtb3ZpbmcgaW4gdGhlIGJhY2svZm9yd2FyZCBsaXN0LCB3ZSBtaWdo
dCB3YW50IHRvIHJlcGxhY2UgdGhlIGNvbnRlbnQKICAgICAvLyBvZiB0aGlzIGNoaWxkIGZyYW1l
IHdpdGggd2hhdGV2ZXIgd2FzIHRoZXJlIGF0IHRoYXQgcG9pbnQuCi0gICAgaWYgKHBhcmVudEl0
ZW0gJiYgcGFyZW50SXRlbS0+Y2hpbGRyZW4oKS5zaXplKCkgJiYgaXNCYWNrRm9yd2FyZExvYWRU
eXBlKGxvYWRUeXBlKSkgeworICAgIGlmIChwYXJlbnRJdGVtICYmIHBhcmVudEl0ZW0tPmNoaWxk
cmVuKCkuc2l6ZSgpICYmIGlzQmFja0ZvcndhcmRMb2FkVHlwZShsb2FkVHlwZSgpKSkgewogICAg
ICAgICBIaXN0b3J5SXRlbSogY2hpbGRJdGVtID0gcGFyZW50SXRlbS0+Y2hpbGRJdGVtV2l0aFRh
cmdldChjaGlsZEZyYW1lLT50cmVlKCktPnVuaXF1ZU5hbWUoKSk7CiAgICAgICAgIGlmIChjaGls
ZEl0ZW0pIHsKLSAgICAgICAgICAgIC8vIFVzZSB0aGUgb3JpZ2luYWwgVVJMIHRvIGVuc3VyZSB3
ZSBnZXQgYWxsIHRoZSBzaWRlLWVmZmVjdHMsIHN1Y2ggYXMKLSAgICAgICAgICAgIC8vIG9uTG9h
ZCBoYW5kbGVycywgb2YgYW55IHJlZGlyZWN0cyB0aGF0IGhhcHBlbmVkLiBBbiBleGFtcGxlIG9m
IHdoZXJlCi0gICAgICAgICAgICAvLyB0aGlzIGlzIG5lZWRlZCBpcyBSYWRhciAzMjEzNTU2Lgot
ICAgICAgICAgICAgd29ya2luZ1VSTCA9IEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBjaGlsZEl0ZW0t
Pm9yaWdpbmFsVVJMU3RyaW5nKCkpOwotICAgICAgICAgICAgY2hpbGRMb2FkVHlwZSA9IGxvYWRU
eXBlOwotICAgICAgICAgICAgY2hpbGRGcmFtZS0+bG9hZGVyKCktPmhpc3RvcnkoKS0+c2V0UHJv
dmlzaW9uYWxJdGVtKGNoaWxkSXRlbSk7CisgICAgICAgICAgICBjaGlsZEZyYW1lLT5sb2FkZXIo
KS0+bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShjaGlsZEl0ZW0sIGxvYWRUeXBlKCkpOworICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQogCi0gICAgUmVmUHRyPEFyY2hpdmU+
IHN1YmZyYW1lQXJjaGl2ZSA9IGFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnBvcEFyY2hpdmVGb3JT
dWJmcmFtZShjaGlsZEZyYW1lLT50cmVlKCktPnVuaXF1ZU5hbWUoKSk7Ci0gICAgCi0gICAgaWYg
KHN1YmZyYW1lQXJjaGl2ZSkKLSAgICAgICAgY2hpbGRGcmFtZS0+bG9hZGVyKCktPmxvYWRBcmNo
aXZlKHN1YmZyYW1lQXJjaGl2ZS5yZWxlYXNlKCkpOwotICAgIGVsc2UKLSAgICAgICAgY2hpbGRG
cmFtZS0+bG9hZGVyKCktPmxvYWRVUkwod29ya2luZ1VSTCwgcmVmZXJlciwgU3RyaW5nKCksIGZh
bHNlLCBjaGlsZExvYWRUeXBlLCAwLCAwKTsKKyAgICBjaGlsZEZyYW1lLT5sb2FkZXIoKS0+bG9h
ZFVSTCh1cmwsIHJlZmVyZXIsIFN0cmluZygpLCBmYWxzZSwgRnJhbWVMb2FkVHlwZVJlZGlyZWN0
V2l0aExvY2tlZEJhY2tGb3J3YXJkTGlzdCwgMCwgMCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6
OmxvYWRBcmNoaXZlKFBhc3NSZWZQdHI8QXJjaGl2ZT4gcHJwQXJjaGl2ZSkKQEAgLTMxMjcsNyAr
MzExOSw3IEBAIEZyYW1lKiBGcmFtZUxvYWRlcjo6ZmluZEZyYW1lRm9yTmF2aWdhdGlvbihjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWUpCiAgICAgcmV0dXJuIGZyYW1lOwogfQogCi12b2lkIEZyYW1l
TG9hZGVyOjpuYXZpZ2F0ZVdpdGhpbkRvY3VtZW50KEhpc3RvcnlJdGVtKiBpdGVtKQordm9pZCBG
cmFtZUxvYWRlcjo6bG9hZFNhbWVEb2N1bWVudEl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pCiB7CiAg
ICAgQVNTRVJUKGl0ZW0tPmRvY3VtZW50U2VxdWVuY2VOdW1iZXIoKSA9PSBoaXN0b3J5KCktPmN1
cnJlbnRJdGVtKCktPmRvY3VtZW50U2VxdWVuY2VOdW1iZXIoKSk7CiAKQEAgLTMxNDksNyArMzE0
MSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6Om5hdmlnYXRlV2l0aGluRG9jdW1lbnQoSGlzdG9yeUl0
ZW0qIGl0ZW0pCiAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBzaG91bGQgcmVhbGx5IGJlIHNwbGl0
IGludG8gYSBjb3VwbGUgcGllY2VzLCBzb21lIG9mCiAvLyB3aGljaCBzaG91bGQgYmUgbWV0aG9k
cyBvZiBIaXN0b3J5Q29udHJvbGxlciBhbmQgc29tZSBvZiB3aGljaCBzaG91bGQgYmUKIC8vIG1l
dGhvZHMgb2YgRnJhbWVMb2FkZXIuCi12b2lkIEZyYW1lTG9hZGVyOjpuYXZpZ2F0ZVRvRGlmZmVy
ZW50RG9jdW1lbnQoSGlzdG9yeUl0ZW0qIGl0ZW0sIEZyYW1lTG9hZFR5cGUgbG9hZFR5cGUpCit2
b2lkIEZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtKiBp
dGVtLCBGcmFtZUxvYWRUeXBlIGxvYWRUeXBlKQogewogICAgIC8vIFJlbWVtYmVyIHRoaXMgaXRl
bSBzbyB3ZSBjYW4gdHJhdmVyc2UgYW55IGNoaWxkIGl0ZW1zIGFzIGNoaWxkIGZyYW1lcyBsb2Fk
CiAgICAgaGlzdG9yeSgpLT5zZXRQcm92aXNpb25hbEl0ZW0oaXRlbSk7CkBAIC0zMjUyLDkgKzMy
NDQsOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkSXRlbShIaXN0b3J5SXRlbSogaXRlbSwgRnJh
bWVMb2FkVHlwZSBsb2FkVHlwZSkKICNlbmRpZgogCiAgICAgaWYgKHNhbWVEb2N1bWVudE5hdmln
YXRpb24pCi0gICAgICAgIG5hdmlnYXRlV2l0aGluRG9jdW1lbnQoaXRlbSk7CisgICAgICAgIGxv
YWRTYW1lRG9jdW1lbnRJdGVtKGl0ZW0pOwogICAgIGVsc2UKLSAgICAgICAgbmF2aWdhdGVUb0Rp
ZmZlcmVudERvY3VtZW50KGl0ZW0sIGxvYWRUeXBlKTsKKyAgICAgICAgbG9hZERpZmZlcmVudERv
Y3VtZW50SXRlbShpdGVtLCBsb2FkVHlwZSk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OnNldE1h
aW5Eb2N1bWVudEVycm9yKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIGNvbnN0IFJlc291cmNlRXJy
b3ImIGVycm9yKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggNzZhZDk3N2I0M2Y1MDQyNzYyODA3ZjAz
MTE3ODM2NjVmNDllNmUxOS4uODMyMjQ1MjE1OWM4MTQyMTVjN2EyODdlZDQ3ZGZmMGU5ZjA0Yjgz
NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0zMzYsOCArMzM2LDggQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICB2b2lkIGNoZWNrVGltZXJGaXJlZChUaW1lcjxGcmFtZUxvYWRlcj4qKTsKICAgICAK
LSAgICB2b2lkIG5hdmlnYXRlV2l0aGluRG9jdW1lbnQoSGlzdG9yeUl0ZW0qKTsKLSAgICB2b2lk
IG5hdmlnYXRlVG9EaWZmZXJlbnREb2N1bWVudChIaXN0b3J5SXRlbSosIEZyYW1lTG9hZFR5cGUp
OworICAgIHZvaWQgbG9hZFNhbWVEb2N1bWVudEl0ZW0oSGlzdG9yeUl0ZW0qKTsKKyAgICB2b2lk
IGxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oSGlzdG9yeUl0ZW0qLCBGcmFtZUxvYWRUeXBlKTsK
ICAgICAKICAgICB2b2lkIGxvYWRQcm92aXNpb25hbEl0ZW1Gcm9tQ2FjaGVkUGFnZSgpOwogCg==
</data>
<flag name="review"
          id="65805"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="66689"
          type_id="3"
          status="+"
          setter="mihaip"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>75081</attachid>
            <date>2010-11-29 16:32:36 -0800</date>
            <delta_ts>2010-11-29 16:32:36 -0800</delta_ts>
            <desc>test case</desc>
            <filename>10199.zip</filename>
            <type>application/zip</type>
            <size>1118</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">UEsDBBQACAAIAM+CfT0AAAAAAAAAAAAAAAAIABAAc3ViLmh0bWxVWAwAGkX0TMZD9Ez1ARQAsylO
LsosKLHjKskv0EvLz1ewVVBKSixSsuYqz8xLyS/Xy8lPTizJzM+zVUpMyi8tsUrKSczLVuKy0Ydp
BABQSwcIHKzNuj4AAABCAAAAUEsDBAoAAAAAAIWDfT0AAAAAAAAAAAAAAAAJABAAX19NQUNPU1gv
VVgMABpF9EwaRfRM9QEUAFBLAwQUAAgACADPgn09AAAAAAAAAAAAAAAAEwAQAF9fTUFDT1NYLy5f
c3ViLmh0bWxVWAwAGkX0TMZD9Ez1ARQAY2AVY2dgYmDwTUxW8A9WiFCAApAYAycQGwFxJRCD+KuB
mCHENSJEMSg5gwEncAwJCWKYs1MAqmMOEPOjKWFEiIsn5+fqJRYU5KTqhaRWlLjmJeenZOalAyVD
Q9x0LawNjU2MDM0tLUwAUEsHCFt5d3BpAAAAqwAAAFBLAwQUAAgACAAwg309AAAAAAAAAAAAAAAA
CQAQAHRlc3QuaHRtbFVYDAAaRfRMfET0TPUBFAA1jUsKxCAQBfd9isaVbjIHiOYuxg8jmO5BW8IQ
cvcJE/K2RdWzK8cvMlX20SlJXbRRC9geWvnIAnlQkMKEN4ID8JqvqYnOzGaGE2AvFHmfmMa/gw4f
TRs88AT7enpgS25+S9hbcKqPdXrLVq/HH1BLBwhO+moobgAAAIkAAABQSwMEFAAIAAgAMIN9PQAA
AAAAAAAAAAAAABQAEABfX01BQ09TWC8uX3Rlc3QuaHRtbFVYDAAaRfRMfET0TPUBFABjYBVjZ2Bi
YPBNTFbwD1aIUIACkBgDJxAbAXElEIP4q4GYIcQ1IkQxKDmDASdwDAkJYpizUxCqYw4Q86MpYUSI
iyfn5+olFhTkpOqFpFaUuOYl56dk5qUDJUND3HQtrA2NTYwMzS0tTABQSwcITuFQbGkAAACrAAAA
UEsBAhUDFAAIAAgAz4J9PRyszbo+AAAAQgAAAAgADAAAAAAAAAAAQKSBAAAAAHN1Yi5odG1sVVgI
ABpF9EzGQ/RMUEsBAhUDCgAAAAAAhYN9PQAAAAAAAAAAAAAAAAkADAAAAAAAAAAAQP1BhAAAAF9f
TUFDT1NYL1VYCAAaRfRMGkX0TFBLAQIVAxQACAAIAM+CfT1beXdwaQAAAKsAAAATAAwAAAAAAAAA
AECkgbsAAABfX01BQ09TWC8uX3N1Yi5odG1sVVgIABpF9EzGQ/RMUEsBAhUDFAAIAAgAMIN9PU76
aihuAAAAiQAAAAkADAAAAAAAAAAAQKSBdQEAAHRlc3QuaHRtbFVYCAAaRfRMfET0TFBLAQIVAxQA
CAAIADCDfT1O4VBsaQAAAKsAAAAUAAwAAAAAAAAAAECkgSoCAABfX01BQ09TWC8uX3Rlc3QuaHRt
bFVYCAAaRfRMfET0TFBLBQYAAAAABQAFAGMBAADlAgAAAAA=
</data>

          </attachment>
      

    </bug>

</bugzilla>