<?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>46775</bug_id>
          
          <creation_ts>2010-09-28 19:22:22 -0700</creation_ts>
          <short_desc>getBoundingClientRect does not work with SVG &lt;text&gt;</short_desc>
          <delta_ts>2010-10-22 12:01:13 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Cosmin Truta">ctruta</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>krit</cc>
    
    <cc>mdelaney7</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>286703</commentid>
    <comment_count>0</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-09-28 19:22:22 -0700</bug_when>
    <thetext>The test case attached is currently failing. In order to make it pass, it is necessary to comment out the if-statement that checks txt.getBoundingClientRect() at line 20.

I opened this bug to finalize the work started under the bug 42815
https://bugs.webkit.org/show_bug.cgi?id=42815</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287938</commentid>
    <comment_count>1</comment_count>
      <attachid>69398</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-09-30 16:57:51 -0700</bug_when>
    <thetext>Created attachment 69398
Test case

Oops, forgot to attach the test case. Here it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287945</commentid>
    <comment_count>2</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-09-30 17:09:28 -0700</bug_when>
    <thetext>Two of the methods offered by SVGStyledLocatableElement, namely getBBox and getCTM, are being missed when processing &lt;svg:text&gt;.
(See Element::getBoundingClientRect and SVGLocatable::getTransformToElement.)

This is happening in spite of the fact that SVGTextElement implements all methods from SVGStyledLocatableElement, exactly the same way.

Would it be a sound design decision to add SVGStyledLocatableElement to the list of parents of SVGTextElement, i.e. to make SVGTextElement itself StyledLocatable?
Or, is there a specific reason why SVGTextElement is _not_ StyledLocatable?

The only technicality that could possibly prevent this modification, is that SVGStyledElement would appear twice in the list of parents of SVGTextElement. I wonder whether SVGStyledElement could be repositioned within the list of ancestors, or be made a virtual parent to SVGStyledLocatableElement.

I suppose I could check separately for SVGStyledLocatableElement and SVGTextElement inside Element::getBoundingClientRect, in order to fix this issue, but I am not so sure this easy solution is also the most elegant. And shouldn&apos;t the same thing be done inside SVGLocatable::getTransformToElement?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289758</commentid>
    <comment_count>3</comment_count>
      <attachid>69813</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-10-05 11:13:15 -0700</bug_when>
    <thetext>Created attachment 69813
Fix, layout test and code cleanup

I am submitting the straightforward solution, checking for isText in addition to isStyledLocatable.

If you want me to make SVGTextElement a subclass of SVGStyledLocatable, please let me know, and I will try implementing this new design this in a separate patch.

Also, if you want me to fix SVGLocatable::getTransformToElement by accounting for SVGTextElement in addition to SVGStyledLocatableElement when calling getCTM, please tell me, and I&apos;ll open a separate bug where I will fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289813</commentid>
    <comment_count>4</comment_count>
      <attachid>69828</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-10-05 12:36:20 -0700</bug_when>
    <thetext>Created attachment 69828
The same patch as before, with just a little more cleanup (two indentation fixes in JavaScript)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290120</commentid>
    <comment_count>5</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-06 00:00:52 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created an attachment (id=69813) [details]
&gt; Fix, layout test and code cleanup
&gt; 
&gt; I am submitting the straightforward solution, checking for isText in addition to isStyledLocatable.
Will check your patch soon.

&gt; 
&gt; If you want me to make SVGTextElement a subclass of SVGStyledLocatable, please let me know, and I will try implementing this new design this in a separate patch.
No, that would be wrong, SVGTextContent doesn&apos;t implement the SVGLocatable interface, but SVGTransformable. Though we can&apos;t use SVGStyledTransformable as base class for SVGTextElement, because SVGTextContentElement already inherits from SVGStyledElement. To make it clear:

SVGTextElement : SVGTextPositioningElement, SVGTransformable
SVGTextPositioningElement : SVGTextContentElement
SVGTextContentElement : SVGStyledElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired

This class hiearchy 1:1 maps the SVG specification.

&gt; 
&gt; Also, if you want me to fix SVGLocatable::getTransformToElement by accounting for SVGTextElement in addition to SVGStyledLocatableElement when calling getCTM, please tell me, and I&apos;ll open a separate bug where I will fix it.

Will check your patch first :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290123</commentid>
    <comment_count>6</comment_count>
      <attachid>69828</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-06 00:10:49 -0700</bug_when>
    <thetext>Comment on attachment 69828
The same patch as before, with just a little more cleanup (two indentation fixes in JavaScript)

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

&gt; LayoutTests/svg/custom/getBoundingClientRect-js.svg:19
&gt; +                var img = document.createElementNS(&quot;http://www.w3.org/2000/svg&quot;, &quot;image&quot;);

I&apos;d propose to split this in several tests, one for getBoundingClientRect on text, one for image, one for g, one for rect, one for text.
If this ever breaks, it&apos;s not easy to spot what exactly is broken.

&gt; WebCore/dom/Element.cpp:490
&gt; +            const FloatRect&amp; localRect = static_cast&lt;const SVGStyledLocatableElement*&gt;(svgElement)-&gt;getBBox();

I think we should introduce a &quot;bool boundingBoxForSVGElement(FloatRect&amp;)&quot; method in SVGElement, that includes these checks. It feels awkward to have this logic in Element.cpp.

This could would simplify to:
if (isSVGElement()) {
    FloatRect localRect;
    if (static_cast&lt;const SVGElement*&gt;(this)-&gt;boundingBoxForSVGElement(localRect))
        quads.append(renderer()-&gt;localToAbsoluteQuad(localRect));
}

The SVGElement::boundingBoxForSVGElement method would utilize, isStyledLocatable() cast itself to a SVGStyledLocatableElement, and return getBBox().
Additionally it checks the isText() case, for both cases it fills the passed in localRect reference, and returns true. Otherwhise it&apos;ll return false.

&gt; WebCore/svg/SVGElement.h:58
&gt; +        virtual bool isText() const { return false; }

This is not needed. In the new boundingBoxForSVGElement() method, you can use:
if (hasTagName(SVGNames::textTag)) {
    SVGTextElement* textElement = static_cast&lt;SVGTextElement*&gt;(element);
...

&gt; WebCore/svg/SVGStyledTransformableElement.cpp:-103
&gt; -SVGElement* SVGStyledTransformableElement::nearestViewportElement() const
&gt; -{
&gt; -    return SVGTransformable::nearestViewportElement(this);
&gt; -}
&gt; -
&gt; -SVGElement* SVGStyledTransformableElement::farthestViewportElement() const
&gt; -{
&gt; -    return SVGTransformable::farthestViewportElement(this);
&gt; -}
&gt; -
&gt; -FloatRect SVGStyledTransformableElement::getBBox(StyleUpdateStrategy styleUpdateStrategy) const
&gt; -{
&gt; -    return SVGTransformable::getBBox(this, styleUpdateStrategy);
&gt; -}
&gt; -

Good catches!

&gt; WebCore/svg/SVGTextElement.h:46
&gt; +        virtual bool isText() const { return true; }

Not needed, see the other comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291433</commentid>
    <comment_count>7</comment_count>
      <attachid>70200</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-10-07 21:19:02 -0700</bug_when>
    <thetext>Created attachment 70200
Fix and augmented layout test

The fix is as suggested by Nico, except that I used boundingBoxForElement instead of boundingBoxForSVGElement.
(Is this not a more appropriate name? I am a little confused here: it&apos;s either boundingBoxForElement, to be used in Element; otherwise, should it not have been simply SVGElement::boundingBox? The same naming style is used e.g. in SVGElement::instancesForElement.)

The &lt;text&gt; fix also includes the zooming fix, previously submitted to 42815.

The layout test is focused on zooming, not on &lt;text&gt;, although it does include a test for &lt;text&gt;, easy to identify on failure (unlike in the previous patch). 

There is still no JavaScript-driven zooming. I tried it, and it&apos;s flaky: it works most of the time, but not all the time, and the remaining times the coordinates are either off-by-one, or zero, or (rarely) contain garbage values.
Before adding such tests to zoom/page, I will look into how to make them unflaky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291502</commentid>
    <comment_count>8</comment_count>
      <attachid>70200</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-08 01:48:42 -0700</bug_when>
    <thetext>Comment on attachment 70200
Fix and augmented layout test

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

&gt; WebCore/svg/SVGElement.h:75
&gt; +        bool boundingBoxForElement(FloatRect&amp;, SVGLocatable::StyleUpdateStrategy = SVGLocatable::AllowStyleUpdate) const;

ok, you&apos;re right s/boundingBoxForElement/boundingBox/ is better.

You can&apos;t commit yet, right? r- then, waiting for your revised version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291504</commentid>
    <comment_count>9</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-08 01:50:16 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=70200) [details]
&gt; Fix and augmented layout test
&gt; 
&gt; The fix is as suggested by Nico, except that I used boundingBoxForElement instead of boundingBoxForSVGElement.
&gt; (Is this not a more appropriate name? I am a little confused here: it&apos;s either boundingBoxForElement, to be used in Element; otherwise, should it not have been simply SVGElement::boundingBox? The same naming style is used e.g. in SVGElement::instancesForElement.)
Yeah, just boundingBox is fine.

&gt; 
&gt; The &lt;text&gt; fix also includes the zooming fix, previously submitted to 42815.
&gt; 
&gt; The layout test is focused on zooming, not on &lt;text&gt;, although it does include a test for &lt;text&gt;, easy to identify on failure (unlike in the previous patch). 
&gt; 
&gt; There is still no JavaScript-driven zooming. I tried it, and it&apos;s flaky: it works most of the time, but not all the time, and the remaining times the coordinates are either off-by-one, or zero, or (rarely) contain garbage values.
&gt; Before adding such tests to zoom/page, I will look into how to make them unflaky.

Okay, I replied to you in private mail, this is really high priority. The &quot;zoom&quot; property is never used for SVG, and what we really needs to work, is &lt;svg viewBox=&quot;0 0 100 100&quot;&gt; + zooming/scrolling to work :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291591</commentid>
    <comment_count>10</comment_count>
      <attachid>70234</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-10-08 06:01:30 -0700</bug_when>
    <thetext>Created attachment 70234
Fix and layout test

s/boundingBoxForElement/boundingBox/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291611</commentid>
    <comment_count>11</comment_count>
      <attachid>70234</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-08 06:41:31 -0700</bug_when>
    <thetext>Comment on attachment 70234
Fix and layout test

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

&gt; WebCore/ChangeLog:9
&gt; +        through SVGElement::boundingBoxForElement.

Still says boundingBoxForElement here.

&gt; WebCore/ChangeLog:27
&gt; +        (SVGElement::boundingBoxForElement): Added.

And here.

&gt; WebCore/dom/Element.cpp:511
&gt; +    ASSERT(renderer());

The assertion is wrong, it would fire on &lt;rect display=&quot;none&quot;...&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291612</commentid>
    <comment_count>12</comment_count>
      <attachid>70242</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-10-08 06:42:46 -0700</bug_when>
    <thetext>Created attachment 70242
Fix and layout test, ChangeLog fixed

s/boundingBoxForElement/boundingBox/ inside ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291624</commentid>
    <comment_count>13</comment_count>
      <attachid>70242</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-08 07:00:52 -0700</bug_when>
    <thetext>Comment on attachment 70242
Fix and layout test, ChangeLog fixed

Looks fine. The assertion doesn&apos;t fire, as quads is empty, if there&apos;s no renderer, and we&apos;re exiting early. So it&apos;s fine as is!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291646</commentid>
    <comment_count>14</comment_count>
      <attachid>70242</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-08 07:29:43 -0700</bug_when>
    <thetext>Comment on attachment 70242
Fix and layout test, ChangeLog fixed

Rejecting patch 70242 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build&apos;, &apos;--build-style=both&apos;, &apos;--quiet&apos;]&quot; exit_code: 2
Building WebKit
Failed to run &quot;[&apos;WebKitTools/Scripts/build-webkit&apos;, &apos;--debug&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/4163144</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291711</commentid>
    <comment_count>15</comment_count>
      <attachid>70263</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-10-08 09:43:34 -0700</bug_when>
    <thetext>Created attachment 70263
Fix and layout test

Would it be possible that the patch failed to apply because I replaced text inside the diff file directly, instead of going through editing source files and running &quot;git diff&quot; again?
Or, is there something wrong with the WebKit tooling?

I am resubmitting the patch, which is now coming straight out of &quot;git diff&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292442</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-11 01:50:06 -0700</bug_when>
    <thetext>No, when build fails, it means it failed to build, not apply. :)  The commit-queue log messages got cryptic again recently.  Working on a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292503</commentid>
    <comment_count>17</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-10-11 09:13:15 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; No, when build fails, it means it failed to build, not apply. :)  The commit-queue log messages got cryptic again recently.  Working on a fix.

Thank you for the clarification. I was confused by the error message, which says that the patch failed to applied, then the build failed. I thought the build refused to run *because* the patch had failed to apply.

To me, the webkit-patch script is itself an untamed beast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293779</commentid>
    <comment_count>18</comment_count>
      <attachid>70242</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-13 15:51:13 -0700</bug_when>
    <thetext>Comment on attachment 70242
Fix and layout test, ChangeLog fixed

Cleared Nikolas Zimmermann&apos;s review+ from obsolete attachment 70242 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295088</commentid>
    <comment_count>19</comment_count>
      <attachid>70941</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-10-15 18:34:55 -0700</bug_when>
    <thetext>Created attachment 70941
Fix and layout test.

Same patch as before, but with the extra ASSERT removed from Element::getBoundingClientRect.

The ASSERT is not necessary, since the following statement will crash unambiguously if renderer() is null. In fact, that particular ASSERT might generate confusion, because one must look carefully to see that it&apos;s *not* a precondition.

(Eiffel&apos;s &quot;require&quot; and &quot;ensure&quot; clauses come to mind as a neat manner to separate pre- and postconditions from the rest of the assertions. This is useful both for compilation and documentation purposes.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295262</commentid>
    <comment_count>20</comment_count>
      <attachid>70941</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-17 12:34:57 -0700</bug_when>
    <thetext>Comment on attachment 70941
Fix and layout test.

r=me. I hope you can still work on the svg/zoom/page/ tests? :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295276</commentid>
    <comment_count>21</comment_count>
      <attachid>70941</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-17 13:10:45 -0700</bug_when>
    <thetext>Comment on attachment 70941
Fix and layout test.

Rejecting patch 70941 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=both&apos;, &apos;--quiet&apos;]&quot; exit_code: 2
Building WebKit
Failed to run &quot;[&apos;WebKitTools/Scripts/build-webkit&apos;, &apos;--debug&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/4490014</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295520</commentid>
    <comment_count>22</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-10-18 08:30:49 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 70941 [details])
&gt; r=me. I hope you can still work on the svg/zoom/page/ tests? :-)

Thanks for the review, and yes, I&apos;ll go back to the zooming tests as soon as I finish that other failure I&apos;m working on.

But I&apos;m baffled by the repeated occurrence of the error that doesn&apos;t let my patch go through. I rerun webkit-patch without --quiet and the only relevant thing I&apos;m seeing is the failure of update-webkit with exit_code=2.
It fails to run &quot;git svn rebase&quot; (at update-webkit:129) and I can&apos;t understand why.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295531</commentid>
    <comment_count>23</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-18 08:58:50 -0700</bug_when>
    <thetext>Try running update-webkit manually.  That&apos;s a red herring, specific to your checkout.

Your patch breaks mac.  Why?  We don&apos;t know because the mac-EWS can&apos;t run for your patch because your&apos;e not a committer and the commit-queue isn&apos;t spitting out enough information.

The path forward is to get a person with a mac to test your patch, or for us to finally fix the commit-queue to give better build log information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295710</commentid>
    <comment_count>24</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-10-18 12:55:31 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; Try running update-webkit manually.  That&apos;s a red herring, specific to your checkout.

$ WebKitTools/Scripts/update-webkit
Updating OpenSource
Unable to determine upstream SVN information from working tree history

Died at WebKitTools/Scripts/update-webkit line 129.

&gt; Your patch breaks mac.  Why?  We don&apos;t know because the mac-EWS can&apos;t run for your patch because your&apos;e not a committer and the commit-queue isn&apos;t spitting out enough information.

In fact, I did run it repeatedly on Chromium&apos;s try bots, and I rerun it just now. The Mac and Linux bots were happy.

The Windows bot did complain at link-time about the removal of some methods from SVGStyledTransformableElement:
SVGStyledTransformableElement::nearestViewportElement
SVGStyledTransformableElement::farthestViewportElement
SVGStyledTransformableElement::getBBox

I probably missed this last time, because I kept getting bogus errors. Perhaps some implib must be updated. I will look into it, although it could be difficult, because my development platform is Linux.

But I received no error from applying the patch, and no breakage on Mac. (I mean no breakage on chromium-mac; WebKit-mac could be a different deal.)

&gt; The path forward is to get a person with a mac to test your patch, or for us to finally fix the commit-queue to give better build log information.

I have a Mac laptop, which I&apos;m not using for Mac development because building is very slow, but I will try running it overnight.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295724</commentid>
    <comment_count>25</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-10-18 13:53:09 -0700</bug_when>
    <thetext>Actually, I wonder:

As a general rule, when adding and/or removing methods in existing classes, I need not modify anything besides the involved .cpp/.h source files, correct?

I would only need to modify build files (*.mk, CMakeLists.txt, GNUmakefile.am, *.gyp, *.gypi, *.pro, *.vcproj, *.pbxproj) when adding/removing entire files, yes?

The linker error that I&apos;m getting from the Windows try bot (specifically when creating chrome_dll.exp) only makes sense if some list of exported symbols is not updated. Otherwise, the patch has nothing Windows-specific. Perhaps that list (if it exists) is not being automatically updated?

I reissued a git-try command with --clobber enabled. Let&apos;s see if forcing a clean build will make a difference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295888</commentid>
    <comment_count>26</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-10-18 18:27:42 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; I reissued a git-try command with --clobber enabled. Let&apos;s see if forcing a clean build will make a difference.

Success: this time, the Windows build was clean.

I really don&apos;t know what could be wrong with this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296645</commentid>
    <comment_count>27</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-10-19 22:37:46 -0700</bug_when>
    <thetext>Ok, I run a WebKit build on Mac (without Chromium, just WebKit proper) and compilation dies because, in my patch, I added #include &quot;SVGLocatable.h&quot; in SVGElement.h. Here are the relevant errors:

WebKit/WebKitBuild/Release/WebCore.framework/PrivateHeaders/SVGElement.h:27:26: error: SVGLocatable.h: No such file or directory
WebKit/WebKitBuild/Release/WebCore.framework/PrivateHeaders/SVGElement.h:75: error: &apos;SVGLocatable&apos; has not been declared

According to the instructions at http://trac.webkit.org/wiki/DeveloperTips, I should add SVGLocatable.h to &quot;Copy headers&quot; in the WebCore target inside the WebCore xcode project. But that header is already referenced in that list. What else could be missing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296852</commentid>
    <comment_count>28</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-10-20 10:10:51 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; According to the instructions at http://trac.webkit.org/wiki/DeveloperTips, I should add SVGLocatable.h to &quot;Copy headers&quot; in the WebCore target inside the WebCore xcode project. But that header is already referenced in that list. What else could be missing?

Response from Niko:

&quot;I think, you have to set the role of the file to private. That&apos;s done in Xcode, my right clicking on SVGLoctable.h, and executing &quot;Set Role -&gt; Private&quot;.
Otherwhise the file is not copied into the PrivateHeaders directory in the framework. You can even manually do that, grep for &quot;Private&quot; in the project.pbxproj files for existing examples.
You just have to copy the SETTINGS=&quot;..&quot; stuff to the right SVGLoctable.h location.&quot;

Hmm.. Ok. I did that, while saying on the record that this is very unintuitive and very hacky. Not to mention that it requires the developer to have a Mac platform for testing non-Mac-related features.

I will make another submission, shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296916</commentid>
    <comment_count>29</comment_count>
      <attachid>71317</attachid>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-10-20 12:14:38 -0700</bug_when>
    <thetext>Created attachment 71317
Fix and layout test, incl. Xcode project fix

I really really hope the build will work well this time.
And if it does, I think I should update the DeveloperTips page in the wiki.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297445</commentid>
    <comment_count>30</comment_count>
      <attachid>70941</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-21 08:45:09 -0700</bug_when>
    <thetext>Comment on attachment 70941
Fix and layout test.

Cleared Nikolas Zimmermann&apos;s review+ from obsolete attachment 70941 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297820</commentid>
    <comment_count>31</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-10-21 21:55:43 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; I hope you can still work on the svg/zoom/page/ tests? :-)

Yes. I resolved the flakiness by replacing the call to &quot;../resources/testPageZoom.js&quot; with a direct call to window.eventSender.zoomPageIn(). It turns out that the asynchronous nature of testPageZoom.js caused inconsistent results.

On the other hand, the off-by-one errors still remain. I opened the bug 48110 to continue the work over there. The fix for that bug will include a layout test that checks getBoundingClientRect with zooming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297916</commentid>
    <comment_count>32</comment_count>
      <attachid>71317</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-22 05:23:22 -0700</bug_when>
    <thetext>Comment on attachment 71317
Fix and layout test, incl. Xcode project fix

LGTM, r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297932</commentid>
    <comment_count>33</comment_count>
      <attachid>71317</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-22 05:52:33 -0700</bug_when>
    <thetext>Comment on attachment 71317
Fix and layout test, incl. Xcode project fix

Rejecting patch 71317 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;apply-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--quiet&apos;, 71317]&quot; exit_code: 2
Cleaning working directory
Updating working directory
Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=71317&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=46775&amp;ctype=xml
Processing 1 patch from 1 bug.
Processing patch 71317 from bug 46775.
Failed to run &quot;[u&apos;/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Nikolas Zimmermann&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/4728008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297978</commentid>
    <comment_count>34</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-10-22 08:12:12 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; (From update of attachment 71317 [details])
&gt; Rejecting patch 71317 from commit-queue.

This is becoming increasingly painful :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298006</commentid>
    <comment_count>35</comment_count>
    <who name="Cosmin Truta">ctruta</who>
    <bug_when>2010-10-22 09:23:18 -0700</bug_when>
    <thetext>This time around, I&apos;m completely clueless. I run &quot;WebKitTools/Scripts/webkit-patch apply-attachment 71317&quot; on a fresh svn checkout on my Mac, and everything went fine, without any issue.

Isn&apos;t something broken on the server?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298060</commentid>
    <comment_count>36</comment_count>
      <attachid>71317</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-10-22 10:43:59 -0700</bug_when>
    <thetext>Comment on attachment 71317
Fix and layout test, incl. Xcode project fix

Clearing flags on attachment: 71317

Committed r70317: &lt;http://trac.webkit.org/changeset/70317&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298061</commentid>
    <comment_count>37</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-10-22 10:44:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298103</commentid>
    <comment_count>38</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-10-22 12:01:13 -0700</bug_when>
    <thetext>Committed r70323: &lt;http://trac.webkit.org/changeset/70323&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>69398</attachid>
            <date>2010-09-30 16:57:51 -0700</date>
            <delta_ts>2010-09-30 16:57:51 -0700</delta_ts>
            <desc>Test case</desc>
            <filename>getBoundingClientRect.svg</filename>
            <type>image/svg+xml</type>
            <size>1347</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hsaW5rIiBvbmxvYWQ9ImluaXQoKSI+CiAgPGc+CiAgICA8dGV4dCB4PSI1MCIgeT0iNTAiPkZh
aWxlZDwvdGV4dD4KICAgIDxpbWFnZSB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEw
MCIgdmlzaWJpbGl0eT0iaGlkZGVuIiB4bGluazpocmVmPSJyZXNvdXJjZXMvbWFnbmlmeS5wbmci
IC8+CiAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgdmlzaWJp
bGl0eT0iaGlkZGVuIiBmaWxsPSJub25lIiBzdHJva2U9ImJsdWUiIC8+CiAgPC9nPgogIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICA8IVtDREFUQVsKICAgIGZ1bmN0aW9uIGluaXQo
KQogICAgewogICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICAgICB2YXIgZyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lTlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn
IiwgImciKVswXTsKICAgICAgICB2YXIgdHh0ID0gZy5maXJzdEVsZW1lbnRDaGlsZDsKICAgICAg
ICB2YXIgdHh0VGV4dCA9IHR4dC5maXJzdENoaWxkOwogICAgICAgIHZhciBpbWcgPSB0eHQubmV4
dEVsZW1lbnRTaWJsaW5nOwogICAgICAgIHZhciByZWN0ID0gaW1nLm5leHRFbGVtZW50U2libGlu
ZzsKICAgICAgICBpZiAoZy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCA+IDAgJiYgZy5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgPiAwKSB7CiAgICAgICAgICAgIGlmICh0eHQu
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggPiAwICYmIHR4dC5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKS5oZWlnaHQgPiAwKSB7CiAgICAgICAgICAgICAgICBpZiAoaW1nLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpLndpZHRoID4gMCAmJiBpbWcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVp
Z2h0ID4gMCkgewogICAgICAgICAgICAgICAgICAgIGlmIChyZWN0LmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpLndpZHRoID4gMCAmJiByZWN0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCA+
IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgdHh0VGV4dC5kYXRhID0gIlBhc3NlZCI7CiAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAg
ICAgfQogICAgfQogIF1dPgogIDwvc2NyaXB0Pgo8L3N2Zz4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69813</attachid>
            <date>2010-10-05 11:13:15 -0700</date>
            <delta_ts>2010-10-05 12:36:20 -0700</delta_ts>
            <desc>Fix, layout test and code cleanup</desc>
            <filename>wk46775.diff.submit</filename>
            <type>text/plain</type>
            <size>9545</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxMTdkZTM5Li41ODFiNjczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAt
MDUgIENvc21pbiBUcnV0YSAgPGN0cnV0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGRv
ZXMgbm90IHdvcmsgd2l0aCBTVkcgPHRleHQ+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00Njc3NQorCisgICAgICAgIEFkZGVkIGEgY2hlY2sgZm9yIGdl
dEJvdW5kaW5nQ2xpZW50UmVjdCwgdG8gYmUgcnVuIGluIGEgbWFubmVyCisgICAgICAgIHRoYXQg
aXMgc2ltaWxhciB0byB0aGUgZXhpc3RpbmcgdGVzdCBmb3IgZ2V0QkJveC4KKworICAgICAgICAq
IHN2Zy9jdXN0b20vZ2V0Qm91bmRpbmdDbGllbnRSZWN0LWpzLnN2ZzogQWRkZWQuCisgICAgICAg
ICogc3ZnL2N1c3RvbS9nZXRCb3VuZGluZ0NsaWVudFJlY3QtanMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKwogMjAxMC0xMC0wNSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgdGVzdCBleHBlY3RhdGlvbiB1cGRhdGUuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dldEJvdW5kaW5nQ2xpZW50UmVjdC1qcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dldEJvdW5kaW5nQ2xpZW50UmVjdC1qcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI0MThiMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0LWpzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1Bhc3NlZAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dldEJvdW5kaW5nQ2xpZW50UmVjdC1qcy5zdmcgYi9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dldEJvdW5kaW5nQ2xpZW50UmVjdC1qcy5zdmcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2M5Y2Q2OAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0Qm91bmRpbmdDbGllbnRSZWN0LWpzLnN2ZwpAQCAt
MCwwICsxLDQ0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHN2
ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIG9ubG9hZD0iaW5pdCgpIj4KKyAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICA8IVtDREFUQVsKKyAgICBmdW5jdGlv
biBpbml0KCkKKyAgICB7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAg
IHZhciBnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAw
L3N2ZyIsICJnIik7CisgICAgICAgIGRvY3VtZW50LnJvb3RFbGVtZW50LmFwcGVuZENoaWxkKGcp
OworICAgICAgICB2YXIgdHh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3
LnczLm9yZy8yMDAwL3N2ZyIsICJ0ZXh0Iik7CisgICAgICAgIHR4dC5zZXRBdHRyaWJ1dGUoIngi
LCAiNTAiKTsKKyAgICAgICAgdHh0LnNldEF0dHJpYnV0ZSgieSIsICI1MCIpOworICAgICAgICB2
YXIgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiRmFpbGVkIik7CisgICAgICAg
IHR4dC5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7CisgICAgICAgIGcuYXBwZW5kQ2hpbGQodHh0KTsK
KyAgICAgICAgaWYgKGcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggPiAwICYmIGcuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0ID4gMCkgeworICAgICAgICAgICAgaWYgKHR4dC5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCA+IDAgJiYgdHh0LmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpLmhlaWdodCA+IDApIHsKKyAgICAgICAgICAgICAgICB2YXIgaW1nID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsICJpbWFnZSIpOwor
ICAgICAgICAgICAgICAgIGltZy5zZXRBdHRyaWJ1dGUoIngiLCAiMCIpOworICAgICAgICAgICAg
ICAgIGltZy5zZXRBdHRyaWJ1dGUoInkiLCAiMCIpOworICAgICAgICAgICAgICAgIGltZy5zZXRB
dHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworICAgICAgICAgICAgICAgIGltZy5zZXRBdHRyaWJ1
dGUoImhlaWdodCIsICIxMDAiKTsKKyAgICAgICAgICAgICAgICBpbWcuc2V0QXR0cmlidXRlKCJ2
aXNpYmlsaXR5IiwgImhpZGRlbiIpOworICAgICAgICAgICAgICAgIGltZy5zZXRBdHRyaWJ1dGVO
UygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsICJocmVmIiwgInJlc291cmNlcy9tYWdu
aWZ5LnBuZyIpOworICAgICAgICAgICAgICAgIGcuYXBwZW5kQ2hpbGQoaW1nKTsKKyAgICAgICAg
ICAgICAgICBpZiAoaW1nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoID4gMCAmJiBpbWcu
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0ID4gMCkgeworICAgICAgICAgICAgICAgICAg
ICB2YXIgcmVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciLCAicmVjdCIpOworICAgICAgICAgICAgICAgICAgICByZWN0LnNldEF0dHJpYnV0
ZSgieCIsICIwIik7CisgICAgICAgICAgICAgICAgICAgIHJlY3Quc2V0QXR0cmlidXRlKCJ5Iiwg
IjAiKTsKKyAgICAgICAgICAgICAgICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEw
MCIpOworICAgICAgICAgICAgICAgICAgICByZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEw
MCIpOworICAgICAgICAgICAgICAgICAgICByZWN0LnNldEF0dHJpYnV0ZSgidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKKyAgICAgICAgICAgICAgICAgICAgZy5hcHBlbmRDaGlsZChyZWN0KTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKHJlY3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgg
PiAwICYmIHJlY3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0ID4gMCkgeworICAgICAg
ICAgICAgICAgICAgICB0ZXh0Tm9kZS5kYXRhID0gIlBhc3NlZCI7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
CisgIF1dPgorICA8L3NjcmlwdD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlZjI5ZTJjLi4wYzFiYzMzIDEwMDY0NAotLS0g
YS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMy
IEBACisyMDEwLTEwLTA1ICBDb3NtaW4gVHJ1dGEgIDxjdHJ1dGFAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGdldEJvdW5kaW5n
Q2xpZW50UmVjdCBkb2VzIG5vdCB3b3JrIHdpdGggU1ZHIDx0ZXh0PgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY3NzUKKworICAgICAgICBSZWNvZ25p
emVkIFNWR1RleHRFbGVtZW50IGluIGFkZGl0aW9uIHRvIFNWR1N0eWxlZExvY2F0YWJsZUVsZW1l
bnQKKyAgICAgICAgYXMgYSBjbGFzcyB0aGF0IHByb3ZpZGVzIHRoZSBnZXRCQm94IG1ldGhvZC4K
KworICAgICAgICBBZGRpdGlvbmFsIGNsZWFudXAgdGFzazoKKyAgICAgICAgUmVtb3ZlZCByZWR1
bmRhbnQgb3ZlcmxvYWRzIG9mIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50CisgICAgICAg
IG1ldGhvZHM6IG5lYXJlc3RWaWV3cG9ydEVsZW1lbnQsIGZhcnRoZXN0Vmlld3BvcnRFbGVtZW50
LCBnZXRCQm94LgorICAgICAgICBUaGVzZSBtZXRob2RzIGFyZSBhbHJlYWR5IGluaGVyaXRlZCBm
cm9tIFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQuCisKKyAgICAgICAgVGVzdDogc3ZnL2N1c3Rv
bS9nZXRCb3VuZGluZ0NsaWVudFJlY3QtanMuc3ZnCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5j
cHA6CisgICAgICAgIChFbGVtZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QpOiBDYWxsZWQgZ2V0
QkJveCBpZiB0aGUgZWxlbWVudCBzYXRpc2ZpZXMgaXNUZXh0LgorICAgICAgICAqIHN2Zy9TVkdF
bGVtZW50Lmg6CisgICAgICAgIChTVkdFbGVtZW50Ojppc1RleHQpOiBBZGRlZC4KKyAgICAgICAg
KiBzdmcvU1ZHVGV4dEVsZW1lbnQuaDoKKyAgICAgICAgKFNWR1RleHRFbGVtZW50Ojppc1RleHQp
OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3Bw
OgorICAgICAgICAqIHN2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5oOgorICAgICAg
ICAoU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6Om5lYXJlc3RWaWV3cG9ydEVsZW1lbnQp
OiBSZW1vdmVkLgorICAgICAgICAoU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6OmZhcnRo
ZXN0Vmlld3BvcnRFbGVtZW50KTogUmVtb3ZlZC4KKyAgICAgICAgKFNWR1N0eWxlZFRyYW5zZm9y
bWFibGVFbGVtZW50OjpnZXRCQm94KTogUmVtb3ZlZC4KKwogMjAxMC0xMC0wNSAgQWRhbSBSb2Jl
biAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgV2luZG93cyBsaW5rZXIgd2FybmluZyBm
aXgKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKaW5kZXggNjBhMTA2My4uZDE3ZmFkNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTUyLDcgKzUyLDYg
QEAKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNp
bmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKLSNpbmNsdWRlICJTVkdTdHlsZWRMb2NhdGFibGVFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIK
ICNpbmNsdWRlICJYTUxOYW1lcy5oIgpAQCAtNjAsNiArNTksOCBAQAogCiAjaWYgRU5BQkxFKFNW
RykKICNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgIlNWR1N0eWxlZExvY2F0YWJsZUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdUZXh0RWxlbWVudC5oIgogI2VuZGlmCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTQ4MiwxNCArNDgzLDE1IEBAIFBhc3NSZWZQdHI8Q2xpZW50UmVjdD4g
RWxlbWVudDo6Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgY29uc3QKIAogICAgIFZlY3RvcjxGbG9h
dFF1YWQ+IHF1YWRzOwogI2lmIEVOQUJMRShTVkcpCi0gICAgaWYgKGlzU1ZHRWxlbWVudCgpKSB7
CisgICAgaWYgKGlzU1ZHRWxlbWVudCgpICYmIHJlbmRlcmVyKCkpIHsKICAgICAgICAgLy8gR2V0
IHRoZSBib3VuZGluZyByZWN0YW5nbGUgZnJvbSB0aGUgU1ZHIG1vZGVsLgogICAgICAgICBjb25z
dCBTVkdFbGVtZW50KiBzdmdFbGVtZW50ID0gc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHRWxlbWVudCo+
KHRoaXMpOwogICAgICAgICBpZiAoc3ZnRWxlbWVudC0+aXNTdHlsZWRMb2NhdGFibGUoKSkgewot
ICAgICAgICAgICAgaWYgKHJlbmRlcmVyKCkpIHsKLSAgICAgICAgICAgICAgICBjb25zdCBGbG9h
dFJlY3QmIGxvY2FsUmVjdCA9IHN0YXRpY19jYXN0PGNvbnN0IFNWR1N0eWxlZExvY2F0YWJsZUVs
ZW1lbnQqPihzdmdFbGVtZW50KS0+Z2V0QkJveCgpOwotICAgICAgICAgICAgICAgIHF1YWRzLmFw
cGVuZChyZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKGxvY2FsUmVjdCkpOwotICAgICAg
ICAgICAgfQorICAgICAgICAgICAgY29uc3QgRmxvYXRSZWN0JiBsb2NhbFJlY3QgPSBzdGF0aWNf
Y2FzdDxjb25zdCBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50Kj4oc3ZnRWxlbWVudCktPmdldEJC
b3goKTsKKyAgICAgICAgICAgIHF1YWRzLmFwcGVuZChyZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1
dGVRdWFkKGxvY2FsUmVjdCkpOworICAgICAgICB9IGVsc2UgaWYgKHN2Z0VsZW1lbnQtPmlzVGV4
dCgpKSB7CisgICAgICAgICAgICBjb25zdCBGbG9hdFJlY3QmIGxvY2FsUmVjdCA9IHN0YXRpY19j
YXN0PGNvbnN0IFNWR1RleHRFbGVtZW50Kj4oc3ZnRWxlbWVudCktPmdldEJCb3goKTsKKyAgICAg
ICAgICAgIHF1YWRzLmFwcGVuZChyZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKGxvY2Fs
UmVjdCkpOwogICAgICAgICB9CiAgICAgfSBlbHNlCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvc3ZnL1NWR0VsZW1lbnQuaCBiL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaAppbmRleCBmYjI4
Mjc5Li5jNGQwYWM5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKKysrIGIv
V2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCkBAIC01NSw2ICs1NSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIGlzU1ZHKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICAgICAgdmlydHVhbCBib29sIGlzRmlsdGVyRWZmZWN0KCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICAgICAgdmlydHVhbCBib29sIGlzR3JhZGllbnRTdG9wKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICAgICAgdmlydHVhbCBib29sIGlzVGV4dCgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1RleHRDb250ZW50KCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KIAogICAgICAgICAvLyBGb3IgU1ZHVGVzdHMKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcCBiL1dlYkNvcmUv
c3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcAppbmRleCBhZjEwZWQ3Li40ZDVh
ZTg3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVu
dC5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3Bw
CkBAIC04NiwyMSArODYsNiBAQCBib29sIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50Ojpp
c0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYQogICAgICAgICAgICBT
VkdTdHlsZWRMb2NhdGFibGVFbGVtZW50Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKTsKIH0K
IAotU1ZHRWxlbWVudCogU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6Om5lYXJlc3RWaWV3
cG9ydEVsZW1lbnQoKSBjb25zdAotewotICAgIHJldHVybiBTVkdUcmFuc2Zvcm1hYmxlOjpuZWFy
ZXN0Vmlld3BvcnRFbGVtZW50KHRoaXMpOwotfQotCi1TVkdFbGVtZW50KiBTVkdTdHlsZWRUcmFu
c2Zvcm1hYmxlRWxlbWVudDo6ZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdAotewotICAg
IHJldHVybiBTVkdUcmFuc2Zvcm1hYmxlOjpmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudCh0aGlzKTsK
LX0KLQotRmxvYXRSZWN0IFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjpnZXRCQm94KFN0
eWxlVXBkYXRlU3RyYXRlZ3kgc3R5bGVVcGRhdGVTdHJhdGVneSkgY29uc3QKLXsKLSAgICByZXR1
cm4gU1ZHVHJhbnNmb3JtYWJsZTo6Z2V0QkJveCh0aGlzLCBzdHlsZVVwZGF0ZVN0cmF0ZWd5KTsK
LX0KLQogUmVuZGVyT2JqZWN0KiBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6Y3JlYXRl
UmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopCiB7CiAgICAgLy8gQnkg
ZGVmYXVsdCwgYW55IHN1YmNsYXNzIGlzIGV4cGVjdGVkIHRvIGRvIHBhdGgtYmFzZWQgZHJhd2lu
ZwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQu
aCBiL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmgKaW5kZXggNzY2
ODg4OS4uZmVmN2U3OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3Jt
YWJsZUVsZW1lbnQuaAorKysgYi9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxl
bWVudC5oCkBAIC0zNSwxNSArMzUsMTEgQEAgY2xhc3MgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVs
ZW1lbnQgOiBwdWJsaWMgU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudCwKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRDVE0oU3R5bGVVcGRhdGVTdHJhdGVneSA9IEFsbG93
U3R5bGVVcGRhdGUpIGNvbnN0OwogICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdldFNjcmVl
bkNUTShTdHlsZVVwZGF0ZVN0cmF0ZWd5ID0gQWxsb3dTdHlsZVVwZGF0ZSkgY29uc3Q7Ci0gICAg
dmlydHVhbCBTVkdFbGVtZW50KiBuZWFyZXN0Vmlld3BvcnRFbGVtZW50KCkgY29uc3Q7Ci0gICAg
dmlydHVhbCBTVkdFbGVtZW50KiBmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0OwogCiAg
ICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxDb29yZGluYXRlU3BhY2VUcmFuc2Zvcm0o
U1ZHTG9jYXRhYmxlOjpDVE1TY29wZSBtb2RlKSBjb25zdCB7IHJldHVybiBTVkdUcmFuc2Zvcm1h
YmxlOjpsb2NhbENvb3JkaW5hdGVTcGFjZVRyYW5zZm9ybShtb2RlKTsgfQogICAgIHZpcnR1YWwg
QWZmaW5lVHJhbnNmb3JtIGFuaW1hdGVkTG9jYWxUcmFuc2Zvcm0oKSBjb25zdDsKICAgICB2aXJ0
dWFsIEFmZmluZVRyYW5zZm9ybSogc3VwcGxlbWVudGFsVHJhbnNmb3JtKCk7CiAKLSAgICB2aXJ0
dWFsIEZsb2F0UmVjdCBnZXRCQm94KFN0eWxlVXBkYXRlU3RyYXRlZ3kgPSBBbGxvd1N0eWxlVXBk
YXRlKSBjb25zdDsKLQogICAgIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJik7CiAKICAgICAvLyAiYmFzZSBjbGFzcyIgbWV0aG9kcyBmb3IgYWxsIHRoZSBlbGVtZW50
cyB3aGljaCByZW5kZXIgYXMgcGF0aHMKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR1RleHRF
bGVtZW50LmggYi9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCmluZGV4IDAwYWZhNTkuLjk2
ODI0MmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgKKysrIGIvV2Vi
Q29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaApAQCAtNDMsNiArNDMsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgU1ZHVGV4dEVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CiAKKyAgICAgICAgdmlydHVhbCBib29sIGlzVGV4dCgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KKwogICAgICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRB
dHRyaWJ1dGUoQXR0cmlidXRlKik7CiAKICAgICAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0q
IHN1cHBsZW1lbnRhbFRyYW5zZm9ybSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69828</attachid>
            <date>2010-10-05 12:36:20 -0700</date>
            <delta_ts>2010-10-07 21:19:02 -0700</delta_ts>
            <desc>The same patch as before, with just a little more cleanup (two indentation fixes in JavaScript)</desc>
            <filename>wk46775.diff.submit</filename>
            <type>text/plain</type>
            <size>10176</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxMTdkZTM5Li45OTY2YWZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMTAt
MDUgIENvc21pbiBUcnV0YSAgPGN0cnV0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGRv
ZXMgbm90IHdvcmsgd2l0aCBTVkcgPHRleHQ+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00Njc3NQorCisgICAgICAgIEFkZGVkIGEgY2hlY2sgZm9yIGdl
dEJvdW5kaW5nQ2xpZW50UmVjdCwgdG8gYmUgcnVuIGluIGEgbWFubmVyCisgICAgICAgIHRoYXQg
aXMgc2ltaWxhciB0byB0aGUgZXhpc3RpbmcgdGVzdCBmb3IgZ2V0QkJveC4KKworICAgICAgICAq
IHN2Zy9jdXN0b20vZ2V0Qm91bmRpbmdDbGllbnRSZWN0LWpzLnN2ZzogQWRkZWQuCisgICAgICAg
ICogc3ZnL2N1c3RvbS9nZXRCb3VuZGluZ0NsaWVudFJlY3QtanMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL2dldEJCb3gtanMuc3ZnOiBGaXhlZCBpbmRlbnRhdGlv
bi4KKwogMjAxMC0xMC0wNSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgdGVzdCBleHBlY3RhdGlvbiB1cGRhdGUuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dldEJCb3gtanMuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL2N1
c3RvbS9nZXRCQm94LWpzLnN2ZwppbmRleCBmM2I2M2RhLi5kMDVmZDI0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dldEJCb3gtanMuc3ZnCisrKyBiL0xheW91dFRlc3RzL3N2
Zy9jdXN0b20vZ2V0QkJveC1qcy5zdmcKQEAgLTMzLDcgKzMzLDcgQEAKICAgICAgICAgICAgICAg
ICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoInZpc2liaWxpdHkiLCAiaGlkZGVuIik7CiAgICAgICAg
ICAgICAgICAgICAgIGcuYXBwZW5kQ2hpbGQocmVjdCk7CiAgICAgICAgICAgICAgICAgICAgIGlm
IChyZWN0LmdldEJCb3goKS53aWR0aCA+IDAgJiYgcmVjdC5nZXRCQm94KCkuaGVpZ2h0ID4gMCkg
ewotICAgICAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5kYXRhID0gIlBhc3NlZCI7CisgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5kYXRhID0gIlBhc3NlZCI7CiAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dldEJvdW5kaW5nQ2xpZW50UmVjdC1qcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dldEJvdW5kaW5nQ2xpZW50UmVjdC1qcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI0MThiMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0LWpzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1Bhc3NlZAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dldEJvdW5kaW5nQ2xpZW50UmVjdC1qcy5zdmcgYi9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dldEJvdW5kaW5nQ2xpZW50UmVjdC1qcy5zdmcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGM4MTcxYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0Qm91bmRpbmdDbGllbnRSZWN0LWpzLnN2ZwpAQCAt
MCwwICsxLDQ0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHN2
ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIG9ubG9hZD0iaW5pdCgpIj4KKyAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICA8IVtDREFUQVsKKyAgICBmdW5jdGlv
biBpbml0KCkKKyAgICB7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAg
IHZhciBnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAw
L3N2ZyIsICJnIik7CisgICAgICAgIGRvY3VtZW50LnJvb3RFbGVtZW50LmFwcGVuZENoaWxkKGcp
OworICAgICAgICB2YXIgdHh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3
LnczLm9yZy8yMDAwL3N2ZyIsICJ0ZXh0Iik7CisgICAgICAgIHR4dC5zZXRBdHRyaWJ1dGUoIngi
LCAiNTAiKTsKKyAgICAgICAgdHh0LnNldEF0dHJpYnV0ZSgieSIsICI1MCIpOworICAgICAgICB2
YXIgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiRmFpbGVkIik7CisgICAgICAg
IHR4dC5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7CisgICAgICAgIGcuYXBwZW5kQ2hpbGQodHh0KTsK
KyAgICAgICAgaWYgKGcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggPiAwICYmIGcuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0ID4gMCkgeworICAgICAgICAgICAgaWYgKHR4dC5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCA+IDAgJiYgdHh0LmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpLmhlaWdodCA+IDApIHsKKyAgICAgICAgICAgICAgICB2YXIgaW1nID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsICJpbWFnZSIpOwor
ICAgICAgICAgICAgICAgIGltZy5zZXRBdHRyaWJ1dGUoIngiLCAiMCIpOworICAgICAgICAgICAg
ICAgIGltZy5zZXRBdHRyaWJ1dGUoInkiLCAiMCIpOworICAgICAgICAgICAgICAgIGltZy5zZXRB
dHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOworICAgICAgICAgICAgICAgIGltZy5zZXRBdHRyaWJ1
dGUoImhlaWdodCIsICIxMDAiKTsKKyAgICAgICAgICAgICAgICBpbWcuc2V0QXR0cmlidXRlKCJ2
aXNpYmlsaXR5IiwgImhpZGRlbiIpOworICAgICAgICAgICAgICAgIGltZy5zZXRBdHRyaWJ1dGVO
UygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsICJocmVmIiwgInJlc291cmNlcy9tYWdu
aWZ5LnBuZyIpOworICAgICAgICAgICAgICAgIGcuYXBwZW5kQ2hpbGQoaW1nKTsKKyAgICAgICAg
ICAgICAgICBpZiAoaW1nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoID4gMCAmJiBpbWcu
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0ID4gMCkgeworICAgICAgICAgICAgICAgICAg
ICB2YXIgcmVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciLCAicmVjdCIpOworICAgICAgICAgICAgICAgICAgICByZWN0LnNldEF0dHJpYnV0
ZSgieCIsICIwIik7CisgICAgICAgICAgICAgICAgICAgIHJlY3Quc2V0QXR0cmlidXRlKCJ5Iiwg
IjAiKTsKKyAgICAgICAgICAgICAgICAgICAgcmVjdC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEw
MCIpOworICAgICAgICAgICAgICAgICAgICByZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0IiwgIjEw
MCIpOworICAgICAgICAgICAgICAgICAgICByZWN0LnNldEF0dHJpYnV0ZSgidmlzaWJpbGl0eSIs
ICJoaWRkZW4iKTsKKyAgICAgICAgICAgICAgICAgICAgZy5hcHBlbmRDaGlsZChyZWN0KTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKHJlY3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgg
PiAwICYmIHJlY3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0ID4gMCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgdGV4dE5vZGUuZGF0YSA9ICJQYXNzZWQiOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgfQorICBdXT4KKyAgPC9zY3JpcHQ+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWYyOWUyYy4uMGMxYmMzMyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzMiBAQAorMjAxMC0xMC0wNSAgQ29zbWluIFRydXRhICA8Y3RydXRhQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBnZXRCb3Vu
ZGluZ0NsaWVudFJlY3QgZG9lcyBub3Qgd29yayB3aXRoIFNWRyA8dGV4dD4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2Nzc1CisKKyAgICAgICAgUmVj
b2duaXplZCBTVkdUZXh0RWxlbWVudCBpbiBhZGRpdGlvbiB0byBTVkdTdHlsZWRMb2NhdGFibGVF
bGVtZW50CisgICAgICAgIGFzIGEgY2xhc3MgdGhhdCBwcm92aWRlcyB0aGUgZ2V0QkJveCBtZXRo
b2QuCisKKyAgICAgICAgQWRkaXRpb25hbCBjbGVhbnVwIHRhc2s6CisgICAgICAgIFJlbW92ZWQg
cmVkdW5kYW50IG92ZXJsb2FkcyBvZiBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudAorICAg
ICAgICBtZXRob2RzOiBuZWFyZXN0Vmlld3BvcnRFbGVtZW50LCBmYXJ0aGVzdFZpZXdwb3J0RWxl
bWVudCwgZ2V0QkJveC4KKyAgICAgICAgVGhlc2UgbWV0aG9kcyBhcmUgYWxyZWFkeSBpbmhlcml0
ZWQgZnJvbSBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50LgorCisgICAgICAgIFRlc3Q6IHN2Zy9j
dXN0b20vZ2V0Qm91bmRpbmdDbGllbnRSZWN0LWpzLnN2ZworCisgICAgICAgICogZG9tL0VsZW1l
bnQuY3BwOgorICAgICAgICAoRWxlbWVudDo6Z2V0Qm91bmRpbmdDbGllbnRSZWN0KTogQ2FsbGVk
IGdldEJCb3ggaWYgdGhlIGVsZW1lbnQgc2F0aXNmaWVzIGlzVGV4dC4KKyAgICAgICAgKiBzdmcv
U1ZHRWxlbWVudC5oOgorICAgICAgICAoU1ZHRWxlbWVudDo6aXNUZXh0KTogQWRkZWQuCisgICAg
ICAgICogc3ZnL1NWR1RleHRFbGVtZW50Lmg6CisgICAgICAgIChTVkdUZXh0RWxlbWVudDo6aXNU
ZXh0KTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50
LmNwcDoKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaDoKKyAg
ICAgICAgKFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjpuZWFyZXN0Vmlld3BvcnRFbGVt
ZW50KTogUmVtb3ZlZC4KKyAgICAgICAgKFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50Ojpm
YXJ0aGVzdFZpZXdwb3J0RWxlbWVudCk6IFJlbW92ZWQuCisgICAgICAgIChTVkdTdHlsZWRUcmFu
c2Zvcm1hYmxlRWxlbWVudDo6Z2V0QkJveCk6IFJlbW92ZWQuCisKIDIwMTAtMTAtMDUgIEFkYW0g
Um9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdpbmRvd3MgbGlua2VyIHdhcm5p
bmcgZml4CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCmluZGV4IDYwYTEwNjMuLmQxN2ZhZDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC01Miw3ICs1
Miw2IEBACiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCi0jaW5jbHVkZSAiU1ZHU3R5bGVkTG9jYXRhYmxl
RWxlbWVudC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9y
LmgiCiAjaW5jbHVkZSAiWE1MTmFtZXMuaCIKQEAgLTYwLDYgKzU5LDggQEAKIAogI2lmIEVOQUJM
RShTVkcpCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlICJTVkdTdHlsZWRMb2NhdGFi
bGVFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHVGV4dEVsZW1lbnQuaCIKICNlbmRpZgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC00ODIsMTQgKzQ4MywxNSBAQCBQYXNzUmVmUHRyPENsaWVudFJl
Y3Q+IEVsZW1lbnQ6OmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGNvbnN0CiAKICAgICBWZWN0b3I8
RmxvYXRRdWFkPiBxdWFkczsKICNpZiBFTkFCTEUoU1ZHKQotICAgIGlmIChpc1NWR0VsZW1lbnQo
KSkgeworICAgIGlmIChpc1NWR0VsZW1lbnQoKSAmJiByZW5kZXJlcigpKSB7CiAgICAgICAgIC8v
IEdldCB0aGUgYm91bmRpbmcgcmVjdGFuZ2xlIGZyb20gdGhlIFNWRyBtb2RlbC4KICAgICAgICAg
Y29uc3QgU1ZHRWxlbWVudCogc3ZnRWxlbWVudCA9IHN0YXRpY19jYXN0PGNvbnN0IFNWR0VsZW1l
bnQqPih0aGlzKTsKICAgICAgICAgaWYgKHN2Z0VsZW1lbnQtPmlzU3R5bGVkTG9jYXRhYmxlKCkp
IHsKLSAgICAgICAgICAgIGlmIChyZW5kZXJlcigpKSB7Ci0gICAgICAgICAgICAgICAgY29uc3Qg
RmxvYXRSZWN0JiBsb2NhbFJlY3QgPSBzdGF0aWNfY2FzdDxjb25zdCBTVkdTdHlsZWRMb2NhdGFi
bGVFbGVtZW50Kj4oc3ZnRWxlbWVudCktPmdldEJCb3goKTsKLSAgICAgICAgICAgICAgICBxdWFk
cy5hcHBlbmQocmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChsb2NhbFJlY3QpKTsKLSAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnN0IEZsb2F0UmVjdCYgbG9jYWxSZWN0ID0gc3Rh
dGljX2Nhc3Q8Y29uc3QgU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudCo+KHN2Z0VsZW1lbnQpLT5n
ZXRCQm94KCk7CisgICAgICAgICAgICBxdWFkcy5hcHBlbmQocmVuZGVyZXIoKS0+bG9jYWxUb0Fi
c29sdXRlUXVhZChsb2NhbFJlY3QpKTsKKyAgICAgICAgfSBlbHNlIGlmIChzdmdFbGVtZW50LT5p
c1RleHQoKSkgeworICAgICAgICAgICAgY29uc3QgRmxvYXRSZWN0JiBsb2NhbFJlY3QgPSBzdGF0
aWNfY2FzdDxjb25zdCBTVkdUZXh0RWxlbWVudCo+KHN2Z0VsZW1lbnQpLT5nZXRCQm94KCk7Cisg
ICAgICAgICAgICBxdWFkcy5hcHBlbmQocmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChs
b2NhbFJlY3QpKTsKICAgICAgICAgfQogICAgIH0gZWxzZQogI2VuZGlmCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmggYi9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKaW5kZXgg
ZmIyODI3OS4uYzRkMGFjOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCisr
KyBiL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaApAQCAtNTUsNiArNTUsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1NWRygpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0ZpbHRlckVmZmVjdCgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0dyYWRpZW50U3RvcCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc1RleHQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0Q29udGVudCgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAgICAgLy8gRm9yIFNWR1Rlc3RzCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAgYi9XZWJD
b3JlL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAKaW5kZXggYWYxMGVkNy4u
NGQ1YWU4NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVs
ZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50
LmNwcApAQCAtODYsMjEgKzg2LDYgQEAgYm9vbCBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVu
dDo6aXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmEKICAgICAgICAg
ICAgU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudDo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSk7
CiB9CiAKLVNWR0VsZW1lbnQqIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjpuZWFyZXN0
Vmlld3BvcnRFbGVtZW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4gU1ZHVHJhbnNmb3JtYWJsZTo6
bmVhcmVzdFZpZXdwb3J0RWxlbWVudCh0aGlzKTsKLX0KLQotU1ZHRWxlbWVudCogU1ZHU3R5bGVk
VHJhbnNmb3JtYWJsZUVsZW1lbnQ6OmZhcnRoZXN0Vmlld3BvcnRFbGVtZW50KCkgY29uc3QKLXsK
LSAgICByZXR1cm4gU1ZHVHJhbnNmb3JtYWJsZTo6ZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQodGhp
cyk7Ci19Ci0KLUZsb2F0UmVjdCBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6Z2V0QkJv
eChTdHlsZVVwZGF0ZVN0cmF0ZWd5IHN0eWxlVXBkYXRlU3RyYXRlZ3kpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIFNWR1RyYW5zZm9ybWFibGU6OmdldEJCb3godGhpcywgc3R5bGVVcGRhdGVTdHJhdGVn
eSk7Ci19Ci0KIFJlbmRlck9iamVjdCogU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6OmNy
ZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqKQogewogICAgIC8v
IEJ5IGRlZmF1bHQsIGFueSBzdWJjbGFzcyBpcyBleHBlY3RlZCB0byBkbyBwYXRoLWJhc2VkIGRy
YXdpbmcKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVt
ZW50LmggYi9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5oCmluZGV4
IDc2Njg4ODkuLmZlZjdlNzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5z
Zm9ybWFibGVFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJs
ZUVsZW1lbnQuaApAQCAtMzUsMTUgKzM1LDExIEBAIGNsYXNzIFNWR1N0eWxlZFRyYW5zZm9ybWFi
bGVFbGVtZW50IDogcHVibGljIFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQsCiBwdWJsaWM6CiAg
ICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gZ2V0Q1RNKFN0eWxlVXBkYXRlU3RyYXRlZ3kgPSBB
bGxvd1N0eWxlVXBkYXRlKSBjb25zdDsKICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRT
Y3JlZW5DVE0oU3R5bGVVcGRhdGVTdHJhdGVneSA9IEFsbG93U3R5bGVVcGRhdGUpIGNvbnN0Owot
ICAgIHZpcnR1YWwgU1ZHRWxlbWVudCogbmVhcmVzdFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0Owot
ICAgIHZpcnR1YWwgU1ZHRWxlbWVudCogZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdDsK
IAogICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsQ29vcmRpbmF0ZVNwYWNlVHJhbnNm
b3JtKFNWR0xvY2F0YWJsZTo6Q1RNU2NvcGUgbW9kZSkgY29uc3QgeyByZXR1cm4gU1ZHVHJhbnNm
b3JtYWJsZTo6bG9jYWxDb29yZGluYXRlU3BhY2VUcmFuc2Zvcm0obW9kZSk7IH0KICAgICB2aXJ0
dWFsIEFmZmluZVRyYW5zZm9ybSBhbmltYXRlZExvY2FsVHJhbnNmb3JtKCkgY29uc3Q7CiAgICAg
dmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0qIHN1cHBsZW1lbnRhbFRyYW5zZm9ybSgpOwogCi0gICAg
dmlydHVhbCBGbG9hdFJlY3QgZ2V0QkJveChTdHlsZVVwZGF0ZVN0cmF0ZWd5ID0gQWxsb3dTdHls
ZVVwZGF0ZSkgY29uc3Q7Ci0KICAgICBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYpOwogCiAgICAgLy8gImJhc2UgY2xhc3MiIG1ldGhvZHMgZm9yIGFsbCB0aGUgZWxl
bWVudHMgd2hpY2ggcmVuZGVyIGFzIHBhdGhzCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdU
ZXh0RWxlbWVudC5oIGIvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaAppbmRleCAwMGFmYTU5
Li45NjgyNDJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCisrKyBi
L1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgKQEAgLTQzLDYgKzQzLDggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIHByaXZhdGU6CiAgICAgICAgIFNWR1RleHRFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCisgICAgICAgIHZpcnR1YWwgYm9vbCBpc1RleHQo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKICAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFw
cGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogCiAgICAgICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNm
b3JtKiBzdXBwbGVtZW50YWxUcmFuc2Zvcm0oKTsK
</data>
<flag name="review"
          id="59573"
          type_id="1"
          status="-"
          setter="zimmermann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70200</attachid>
            <date>2010-10-07 21:19:02 -0700</date>
            <delta_ts>2010-10-08 06:01:30 -0700</delta_ts>
            <desc>Fix and augmented layout test</desc>
            <filename>wk46775.diff.submit</filename>
            <type>text/plain</type>
            <size>14811</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjM2FmYjczLi43ZjRhYTdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAt
MDcgIENvc21pbiBUcnV0YSAgPGN0cnV0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGRv
ZXMgbm90IHdvcmsgd2l0aCBTVkcgPHRleHQ+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00Njc3NQorCisgICAgICAgIEFkZGVkIGNvb3JkaW5hdGUgY2hl
Y2tzIG9uIHZhcmlvdXMgem9vbWVkLWluIGFuZCB6b29tZWQtb3V0CisgICAgICAgIFhIVE1MIGFu
ZCBTVkcgZWxlbWVudHMsIHVzaW5nIGdldEJvdW5kaW5nQ2xpZW50UmVjdC4KKworICAgICAgICAq
IGNzczMvem9vbS1jb29yZHMueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvem9vbS1jb29y
ZHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMC0xMC0wNyAgSmlhbiBMaSAgPGppYW5saUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NzczMvem9vbS1jb29yZHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY3NzMy96b29tLWNvb3Jkcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNzE2MjM5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMv
em9vbS1jb29yZHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzggQEAKK1Rlc3QKK1Rlc3QKK1Ro
aXMgdGVzdCBjaGVja3MgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgb24gem9vbWVkIEhUTUwgYW5k
IFNWRyBlbGVtZW50cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK0NoZWNraW5nIEhU
TUwgZWxlbWVudHM6CisKK1BBU1MgZGl2MS5sZWZ0IGlzIDAKK1BBU1MgZGl2MS50b3AgaXMgMAor
UEFTUyBkaXYxLndpZHRoIGlzIDEwMAorUEFTUyBkaXYxLmhlaWdodCBpcyA1MAorUEFTUyBkaXYx
LnJpZ2h0IGlzIDEwMAorUEFTUyBkaXYxLmJvdHRvbSBpcyA1MAorCitQQVNTIGRpdjIubGVmdCBp
cyAwCitQQVNTIGRpdjIudG9wIGlzIDIwMAorUEFTUyBkaXYyLndpZHRoIGlzIDIwMAorUEFTUyBk
aXYyLmhlaWdodCBpcyAxMDAKK1BBU1MgZGl2Mi5yaWdodCBpcyAyMDAKK1BBU1MgZGl2Mi5ib3R0
b20gaXMgMzAwCisKK0NoZWNraW5nIFNWRyBlbGVtZW50czoKKworUEFTUyBzdmcxLmxlZnQgaXMg
MAorUEFTUyBzdmcxLnRvcCBpcyA3NQorUEFTUyBzdmcxLndpZHRoIGlzIDE1MAorUEFTUyBzdmcx
LmhlaWdodCBpcyA1MAorUEFTUyBzdmcxLnJpZ2h0IGlzIDE1MAorUEFTUyBzdmcxLmJvdHRvbSBp
cyAxMjUKK1BBU1MgcmVjdDEubGVmdCBpcyAwCitQQVNTIHJlY3QxLnRvcCBpcyA3NQorUEFTUyBy
ZWN0MS53aWR0aCBpcyAxMDAKK1BBU1MgcmVjdDEuaGVpZ2h0IGlzIDUwCitQQVNTIHJlY3QxLnJp
Z2h0IGlzIDEwMAorUEFTUyByZWN0MS5ib3R0b20gaXMgMTI1CitQQVNTIGltYWdlMS5sZWZ0IGlz
IDEwMAorUEFTUyBpbWFnZTEudG9wIGlzIDc1CitQQVNTIGltYWdlMS53aWR0aCBpcyA1MAorUEFT
UyBpbWFnZTEuaGVpZ2h0IGlzIDI1CitQQVNTIGltYWdlMS5yaWdodCBpcyAxNTAKK1BBU1MgaW1h
Z2UxLmJvdHRvbSBpcyAxMDAKK1BBU1MgdGV4dDEubGVmdCA9PSAxMDAgaXMgdHJ1ZQorUEFTUyB0
ZXh0MS50b3AgPj0gNzUgaXMgdHJ1ZQorUEFTUyB0ZXh0MS53aWR0aCA+IDAgaXMgdHJ1ZQorUEFT
UyB0ZXh0MS5oZWlnaHQgPiAwIGlzIHRydWUKK1BBU1MgdGV4dDEucmlnaHQgPiAxMDAgaXMgdHJ1
ZQorUEFTUyB0ZXh0MS5ib3R0b20gPiA3NSBpcyB0cnVlCisKK1BBU1Mgc3ZnMi5sZWZ0IGlzIDYw
MAorUEFTUyBzdmcyLnRvcCBpcyA0MDAKK1BBU1Mgc3ZnMi53aWR0aCBpcyAzMDAKK1BBU1Mgc3Zn
Mi5oZWlnaHQgaXMgMTAwCitQQVNTIHN2ZzIucmlnaHQgaXMgOTAwCitQQVNTIHN2ZzIuYm90dG9t
IGlzIDUwMAorUEFTUyByZWN0Mi5sZWZ0IGlzIDYwMAorUEFTUyByZWN0Mi50b3AgaXMgNDAwCitQ
QVNTIHJlY3QyLndpZHRoIGlzIDIwMAorUEFTUyByZWN0Mi5oZWlnaHQgaXMgMTAwCitQQVNTIHJl
Y3QyLnJpZ2h0IGlzIDgwMAorUEFTUyByZWN0Mi5ib3R0b20gaXMgNTAwCitQQVNTIGltYWdlMi5s
ZWZ0IGlzIDgwMAorUEFTUyBpbWFnZTIudG9wIGlzIDQwMAorUEFTUyBpbWFnZTIud2lkdGggaXMg
MTAwCitQQVNTIGltYWdlMi5oZWlnaHQgaXMgNTAKK1BBU1MgaW1hZ2UyLnJpZ2h0IGlzIDkwMAor
UEFTUyBpbWFnZTIuYm90dG9tIGlzIDQ1MAorUEFTUyB0ZXh0Mi5sZWZ0ID09IDgwMCBpcyB0cnVl
CitQQVNTIHRleHQyLnRvcCA+PSA0MDAgaXMgdHJ1ZQorUEFTUyB0ZXh0Mi53aWR0aCA+IDAgaXMg
dHJ1ZQorUEFTUyB0ZXh0Mi5oZWlnaHQgPiAwIGlzIHRydWUKK1BBU1MgdGV4dDIucmlnaHQgPiA4
MDAgaXMgdHJ1ZQorUEFTUyB0ZXh0Mi5ib3R0b20gPiA0MDAgaXMgdHJ1ZQorCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3NzMy96b29tLWNvb3Jkcy54aHRtbCBiL0xheW91dFRlc3RzL2NzczMvem9vbS1j
b29yZHMueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDFmNmE5ZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvem9vbS1jb29yZHMueGh0bWwKQEAg
LTAsMCArMSwxMjYgQEAKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiLz4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgYm9keSB7IG1hcmdpbjow
cHg7IGJvcmRlcjowcHg7IHBhZGRpbmc6MHB4OyB9CisgICAgI2RpdjEsICNzdmcxIHsgem9vbToy
MDAlOyB9CisgICAgI2RpdjIsICNzdmcyIHsgem9vbTo1MCU7IH0KKzwvc3R5bGU+Cis8c2NyaXB0
IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+CisKKzxkaXYgaWQ9ImRpdjEiIHN0eWxlPSJ3aWR0aDoxMDBweDtoZWlnaHQ6
NTBweDtiYWNrZ3JvdW5kLWNvbG9yOmJsdWU7Ij48L2Rpdj4KKzxkaXYgaWQ9ImRpdjIiIHN0eWxl
PSJ3aWR0aDoyMDBweDtoZWlnaHQ6MTAwcHg7YmFja2dyb3VuZC1jb2xvcjpncmVlbjsiPjwvZGl2
PgorPHN2ZyBpZD0ic3ZnMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAg
ICB3aWR0aD0iMTUwcHgiIGhlaWdodD0iNTBweCIgdmlld0JveD0iMCAwIDE1MCAxMDAiCisgICAg
IHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgorICA8cmVjdCBpZD0icmVjdDEiIHg9IjAiIHk9
IjAiIHdpZHRoPSIxMDBweCIgaGVpZ2h0PSIxMDBweCIgZmlsbD0ieWVsbG93IiAvPgorICA8aW1h
Z2UgaWQ9ImltYWdlMSIgeD0iMTAwcHgiIHk9IjAiIHdpZHRoPSI1MHB4IiBoZWlnaHQ9IjUwcHgi
IHhsaW5rOmhyZWY9Ii4uL3N2Zy9kb20vcmVzb3VyY2VzL21hZ25pZnkucG5nIiAvPgorICA8dGV4
dCBpZD0idGV4dDEiIHg9IjEwMHB4IiB5PSI3NXB4Ij5UZXN0PC90ZXh0PgorPC9zdmc+PHN2ZyBp
ZD0ic3ZnMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgICB3aWR0aD0i
MzAwcHgiIGhlaWdodD0iMTAwcHgiIHZpZXdCb3g9IjAgMCAxNTAgMTAwIgorICAgICBwcmVzZXJ2
ZUFzcGVjdFJhdGlvPSJub25lIj4KKyAgPHJlY3QgaWQ9InJlY3QyIiB4PSIwIiB5PSIwIiB3aWR0
aD0iMTAwcHgiIGhlaWdodD0iMTAwcHgiIGZpbGw9Im9yYW5nZSIgLz4KKyAgPGltYWdlIGlkPSJp
bWFnZTIiIHg9IjEwMHB4IiB5PSIwIiB3aWR0aD0iNTBweCIgaGVpZ2h0PSI1MHB4IiB4bGluazpo
cmVmPSIuLi9zdmcvZG9tL3Jlc291cmNlcy9tYWduaWZ5LnBuZyIgLz4KKyAgPHRleHQgaWQ9InRl
eHQyIiB4PSIxMDBweCIgeT0iNzVweCI+VGVzdDwvdGV4dD4KKzwvc3ZnPgorCis8ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4K
KworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkg
b24gem9vbWVkIEhUTUwgYW5kIFNWRyBlbGVtZW50cyIpOworCitkZWJ1ZygiQ2hlY2tpbmcgSFRN
TCBlbGVtZW50czoiKTsKK2RlYnVnKCIiKTsKKwordmFyIGRpdjEgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZGl2MSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworc2hvdWxkQmUoJ2RpdjEu
bGVmdCcsICcwJyk7CitzaG91bGRCZSgnZGl2MS50b3AnLCAnMCcpOworc2hvdWxkQmUoJ2RpdjEu
d2lkdGgnLCAnMTAwJyk7CitzaG91bGRCZSgnZGl2MS5oZWlnaHQnLCAnNTAnKTsKK3Nob3VsZEJl
KCdkaXYxLnJpZ2h0JywgJzEwMCcpOworc2hvdWxkQmUoJ2RpdjEuYm90dG9tJywgJzUwJyk7Citk
ZWJ1ZygiIik7CisKK3ZhciBkaXYyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjIiKS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKK3Nob3VsZEJlKCdkaXYyLmxlZnQnLCAnMCcpOworc2hv
dWxkQmUoJ2RpdjIudG9wJywgJzIwMCcpOworc2hvdWxkQmUoJ2RpdjIud2lkdGgnLCAnMjAwJyk7
CitzaG91bGRCZSgnZGl2Mi5oZWlnaHQnLCAnMTAwJyk7CitzaG91bGRCZSgnZGl2Mi5yaWdodCcs
ICcyMDAnKTsKK3Nob3VsZEJlKCdkaXYyLmJvdHRvbScsICczMDAnKTsKK2RlYnVnKCIiKTsKKwor
ZGVidWcoIkNoZWNraW5nIFNWRyBlbGVtZW50czoiKTsKK2RlYnVnKCIiKTsKKwordmFyIHN2ZzEg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3ZnMSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
Oworc2hvdWxkQmUoJ3N2ZzEubGVmdCcsICcwJyk7CitzaG91bGRCZSgnc3ZnMS50b3AnLCAnNzUn
KTsKK3Nob3VsZEJlKCdzdmcxLndpZHRoJywgJzE1MCcpOworc2hvdWxkQmUoJ3N2ZzEuaGVpZ2h0
JywgJzUwJyk7CitzaG91bGRCZSgnc3ZnMS5yaWdodCcsICcxNTAnKTsKK3Nob3VsZEJlKCdzdmcx
LmJvdHRvbScsICcxMjUnKTsKK3ZhciByZWN0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
ZWN0MSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworc2hvdWxkQmUoJ3JlY3QxLmxlZnQnLCAn
MCcpOworc2hvdWxkQmUoJ3JlY3QxLnRvcCcsICc3NScpOworc2hvdWxkQmUoJ3JlY3QxLndpZHRo
JywgJzEwMCcpOworc2hvdWxkQmUoJ3JlY3QxLmhlaWdodCcsICc1MCcpOworc2hvdWxkQmUoJ3Jl
Y3QxLnJpZ2h0JywgJzEwMCcpOworc2hvdWxkQmUoJ3JlY3QxLmJvdHRvbScsICcxMjUnKTsKK3Zh
ciBpbWFnZTEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2UxIikuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk7CitzaG91bGRCZSgnaW1hZ2UxLmxlZnQnLCAnMTAwJyk7CitzaG91bGRCZSgn
aW1hZ2UxLnRvcCcsICc3NScpOworc2hvdWxkQmUoJ2ltYWdlMS53aWR0aCcsICc1MCcpOworc2hv
dWxkQmUoJ2ltYWdlMS5oZWlnaHQnLCAnMjUnKTsKK3Nob3VsZEJlKCdpbWFnZTEucmlnaHQnLCAn
MTUwJyk7CitzaG91bGRCZSgnaW1hZ2UxLmJvdHRvbScsICcxMDAnKTsKK3ZhciB0ZXh0MSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0MSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwor
c2hvdWxkQmUoJ3RleHQxLmxlZnQgPT0gMTAwJywgJ3RydWUnKTsKK3Nob3VsZEJlKCd0ZXh0MS50
b3AgPj0gNzUnLCAndHJ1ZScpOworc2hvdWxkQmUoJ3RleHQxLndpZHRoID4gMCcsICd0cnVlJyk7
CitzaG91bGRCZSgndGV4dDEuaGVpZ2h0ID4gMCcsICd0cnVlJyk7CitzaG91bGRCZSgndGV4dDEu
cmlnaHQgPiAxMDAnLCAndHJ1ZScpOworc2hvdWxkQmUoJ3RleHQxLmJvdHRvbSA+IDc1JywgJ3Ry
dWUnKTsKK2RlYnVnKCIiKTsKKwordmFyIHN2ZzIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
c3ZnMiIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworc2hvdWxkQmUoJ3N2ZzIubGVmdCcsICc2
MDAnKTsKK3Nob3VsZEJlKCdzdmcyLnRvcCcsICc0MDAnKTsKK3Nob3VsZEJlKCdzdmcyLndpZHRo
JywgJzMwMCcpOworc2hvdWxkQmUoJ3N2ZzIuaGVpZ2h0JywgJzEwMCcpOworc2hvdWxkQmUoJ3N2
ZzIucmlnaHQnLCAnOTAwJyk7CitzaG91bGRCZSgnc3ZnMi5ib3R0b20nLCAnNTAwJyk7Cit2YXIg
cmVjdDIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjdDIiKS5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKTsKK3Nob3VsZEJlKCdyZWN0Mi5sZWZ0JywgJzYwMCcpOworc2hvdWxkQmUoJ3JlY3Qy
LnRvcCcsICc0MDAnKTsKK3Nob3VsZEJlKCdyZWN0Mi53aWR0aCcsICcyMDAnKTsKK3Nob3VsZEJl
KCdyZWN0Mi5oZWlnaHQnLCAnMTAwJyk7CitzaG91bGRCZSgncmVjdDIucmlnaHQnLCAnODAwJyk7
CitzaG91bGRCZSgncmVjdDIuYm90dG9tJywgJzUwMCcpOwordmFyIGltYWdlMiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJpbWFnZTIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKK3Nob3Vs
ZEJlKCdpbWFnZTIubGVmdCcsICc4MDAnKTsKK3Nob3VsZEJlKCdpbWFnZTIudG9wJywgJzQwMCcp
Oworc2hvdWxkQmUoJ2ltYWdlMi53aWR0aCcsICcxMDAnKTsKK3Nob3VsZEJlKCdpbWFnZTIuaGVp
Z2h0JywgJzUwJyk7CitzaG91bGRCZSgnaW1hZ2UyLnJpZ2h0JywgJzkwMCcpOworc2hvdWxkQmUo
J2ltYWdlMi5ib3R0b20nLCAnNDUwJyk7Cit2YXIgdGV4dDIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGV4dDIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKK3Nob3VsZEJlKCd0ZXh0Mi5s
ZWZ0ID09IDgwMCcsICd0cnVlJyk7CitzaG91bGRCZSgndGV4dDIudG9wID49IDQwMCcsICd0cnVl
Jyk7CitzaG91bGRCZSgndGV4dDIud2lkdGggPiAwJywgJ3RydWUnKTsKK3Nob3VsZEJlKCd0ZXh0
Mi5oZWlnaHQgPiAwJywgJ3RydWUnKTsKK3Nob3VsZEJlKCd0ZXh0Mi5yaWdodCA+IDgwMCcsICd0
cnVlJyk7CitzaG91bGRCZSgndGV4dDIuYm90dG9tID4gNDAwJywgJ3RydWUnKTsKK2RlYnVnKCIi
KTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwZWI4MjAxLi4zNzU3N2E4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEwLTEwLTA3
ICBDb3NtaW4gVHJ1dGEgIDxjdHJ1dGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBkb2Vz
IG5vdCB3b3JrIHdpdGggU1ZHIDx0ZXh0PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDY3NzUKKworICAgICAgICBEaXNwYXRjaGVkIHRoZSBjYWxscyBm
cm9tIEVsZW1lbnQ6OmdldEJvdW5kaW5nQ2xpZW50UmVjdCB0byBnZXRCQm94CisgICAgICAgIHRo
cm91Z2ggU1ZHRWxlbWVudDo6Ym91bmRpbmdCb3hGb3JFbGVtZW50LgorICAgICAgICBSZWNvZ25p
emVkIFNWR1RleHRFbGVtZW50IGluIGFkZGl0aW9uIHRvIFNWR1N0eWxlZExvY2F0YWJsZUVsZW1l
bnQKKyAgICAgICAgYXMgYSBjbGFzcyB0aGF0IHByb3ZpZGVzIGdldEJCb3guCisgICAgICAgIEZp
eGVkIHRoZSByZXN1bHQgb2Ygem9vbWluZzogYWRqdXN0ZWQgdGhlIGdldEJvdW5kaW5nQ2xpZW50
UmVjdCByZWN0YW5nbGUKKyAgICAgICAgZm9yIGFic29sdXRlIHpvb20sIGV2ZW4gZm9yIFNWRyBl
bGVtZW50cy4KKworICAgICAgICBBZGRpdGlvbmFsIGNsZWFudXAgdGFzazoKKyAgICAgICAgUmVt
b3ZlZCByZWR1bmRhbnQgb3ZlcmxvYWRzIG9mIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50
CisgICAgICAgIG1ldGhvZHM6IG5lYXJlc3RWaWV3cG9ydEVsZW1lbnQsIGZhcnRoZXN0Vmlld3Bv
cnRFbGVtZW50LCBnZXRCQm94LgorICAgICAgICBUaGVzZSBtZXRob2RzIGFyZSBhbHJlYWR5IGlu
aGVyaXRlZCBmcm9tIFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQuCisKKyAgICAgICAgVGVzdDog
Y3NzMy96b29tLWNvb3Jkcy54aHRtbAorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoRWxlbWVudDo6Z2V0Qm91bmRpbmdDbGllbnRSZWN0KTogVXNlZCBTVkdFbGVtZW50Ojpi
b3VuZGluZ0JveEZvckVsZW1lbnQuCisgICAgICAgIEFkanVzdGVkIGNvb3JkaW5hdGVzIGZvciBh
YnNvbHV0ZSB6b29tLCBmb3IgYWxsIGtpbmRzIG9mIGVsZW1lbnRzLgorICAgICAgICAqIHN2Zy9T
VkdFbGVtZW50LmNwcDoKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5oOgorICAgICAgICAoU1ZH
RWxlbWVudDo6Ym91bmRpbmdCb3hGb3JFbGVtZW50KTogQWRkZWQuCisgICAgICAgICogc3ZnL1NW
R1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcDoKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVk
VHJhbnNmb3JtYWJsZUVsZW1lbnQuaDoKKyAgICAgICAgKFNWR1N0eWxlZFRyYW5zZm9ybWFibGVF
bGVtZW50OjpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KTogUmVtb3ZlZC4KKyAgICAgICAgKFNWR1N0
eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjpmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudCk6IFJlbW92
ZWQuCisgICAgICAgIChTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6Z2V0QkJveCk6IFJl
bW92ZWQuCisKIDIwMTAtMTAtMDcgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDYwYTEwNjMuLjcwOWMx
NmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCkBAIC01MiwxMyArNTIsMTMgQEAKICNpbmNsdWRlICJSZW5kZXJMYXllci5o
IgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKLSNp
bmNsdWRlICJTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJYTUxOYW1lcy5oIgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAi
U1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjZW5kaWYKIApAQCAtNDgyLDE1
ICs0ODIsMTIgQEAgUGFzc1JlZlB0cjxDbGllbnRSZWN0PiBFbGVtZW50OjpnZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKSBjb25zdAogCiAgICAgVmVjdG9yPEZsb2F0UXVhZD4gcXVhZHM7CiAjaWYgRU5B
QkxFKFNWRykKLSAgICBpZiAoaXNTVkdFbGVtZW50KCkpIHsKKyAgICBpZiAoaXNTVkdFbGVtZW50
KCkgJiYgcmVuZGVyZXIoKSkgewogICAgICAgICAvLyBHZXQgdGhlIGJvdW5kaW5nIHJlY3Rhbmds
ZSBmcm9tIHRoZSBTVkcgbW9kZWwuCiAgICAgICAgIGNvbnN0IFNWR0VsZW1lbnQqIHN2Z0VsZW1l
bnQgPSBzdGF0aWNfY2FzdDxjb25zdCBTVkdFbGVtZW50Kj4odGhpcyk7Ci0gICAgICAgIGlmIChz
dmdFbGVtZW50LT5pc1N0eWxlZExvY2F0YWJsZSgpKSB7Ci0gICAgICAgICAgICBpZiAocmVuZGVy
ZXIoKSkgewotICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UmVjdCYgbG9jYWxSZWN0ID0gc3Rh
dGljX2Nhc3Q8Y29uc3QgU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudCo+KHN2Z0VsZW1lbnQpLT5n
ZXRCQm94KCk7Ci0gICAgICAgICAgICAgICAgcXVhZHMuYXBwZW5kKHJlbmRlcmVyKCktPmxvY2Fs
VG9BYnNvbHV0ZVF1YWQobG9jYWxSZWN0KSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAg
ICAgICAgRmxvYXRSZWN0IGxvY2FsUmVjdDsKKyAgICAgICAgaWYgKHN2Z0VsZW1lbnQtPmJvdW5k
aW5nQm94Rm9yRWxlbWVudChsb2NhbFJlY3QpKQorICAgICAgICAgICAgcXVhZHMuYXBwZW5kKHJl
bmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQobG9jYWxSZWN0KSk7CiAgICAgfSBlbHNlCiAj
ZW5kaWYKICAgICB7CkBAIC01MTEsOCArNTA4LDggQEAgUGFzc1JlZlB0cjxDbGllbnRSZWN0PiBF
bGVtZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBjb25zdAogICAgICAgICByZXN1bHQubW92
ZSgtdmlzaWJsZUNvbnRlbnRSZWN0LngoKSwgLXZpc2libGVDb250ZW50UmVjdC55KCkpOwogICAg
IH0KIAotICAgIGlmIChyZW5kZXJCb3hNb2RlbE9iamVjdCgpKQotICAgICAgICBhZGp1c3RJbnRS
ZWN0Rm9yQWJzb2x1dGVab29tKHJlc3VsdCwgcmVuZGVyQm94TW9kZWxPYmplY3QoKSk7CisgICAg
QVNTRVJUKHJlbmRlcmVyKCkpOworICAgIGFkanVzdEludFJlY3RGb3JBYnNvbHV0ZVpvb20ocmVz
dWx0LCByZW5kZXJlcigpKTsKIAogICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUocmVzdWx0
KTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwIGIvV2ViQ29yZS9z
dmcvU1ZHRWxlbWVudC5jcHAKaW5kZXggMWIxOWYyNS4uYTU1YjBiMSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAK
QEAgLTQyLDYgKzQyLDggQEAKICNpbmNsdWRlICJTVkdFbGVtZW50UmFyZURhdGEuaCIKICNpbmNs
dWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnQuaCIKKyNpbmNsdWRlICJT
VkdTdHlsZWRMb2NhdGFibGVFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHVGV4dEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJTVkdVUklSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJTVkdVc2VFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgpAQCAtMTc5LDYgKzE4MSwxOSBAQCBj
b25zdCBIYXNoU2V0PFNWR0VsZW1lbnRJbnN0YW5jZSo+JiBTVkdFbGVtZW50OjppbnN0YW5jZXNG
b3JFbGVtZW50KCkgY29uc3QKICAgICByZXR1cm4gcmFyZVNWR0RhdGEoKS0+ZWxlbWVudEluc3Rh
bmNlcygpOwogfQogCitib29sIFNWR0VsZW1lbnQ6OmJvdW5kaW5nQm94Rm9yRWxlbWVudChGbG9h
dFJlY3QmIHJlY3QsIFNWR0xvY2F0YWJsZTo6U3R5bGVVcGRhdGVTdHJhdGVneSBzdHlsZVVwZGF0
ZVN0cmF0ZWd5KSBjb25zdAoreworICAgIGlmIChpc1N0eWxlZExvY2F0YWJsZSgpKSB7CisgICAg
ICAgIHJlY3QgPSBzdGF0aWNfY2FzdDxjb25zdCBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50Kj4o
dGhpcyktPmdldEJCb3goc3R5bGVVcGRhdGVTdHJhdGVneSk7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKyAgICBpZiAoaGFzVGFnTmFtZShTVkdOYW1lczo6dGV4dFRhZykpIHsKKyAgICAg
ICAgcmVjdCA9IHN0YXRpY19jYXN0PGNvbnN0IFNWR1RleHRFbGVtZW50Kj4odGhpcyktPmdldEJC
b3goc3R5bGVVcGRhdGVTdHJhdGVneSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgU1ZHRWxlbWVudDo6c2V0Q3Vyc29yRWxlbWVudChT
VkdDdXJzb3JFbGVtZW50KiBjdXJzb3JFbGVtZW50KQogewogICAgIGVuc3VyZVJhcmVTVkdEYXRh
KCktPnNldEN1cnNvckVsZW1lbnQoY3Vyc29yRWxlbWVudCk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3N2Zy9TVkdFbGVtZW50LmggYi9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKaW5kZXggZmIyODI3
OS4uOTIxNjIzNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCisrKyBiL1dl
YkNvcmUvc3ZnL1NWR0VsZW1lbnQuaApAQCAtMjQsNiArMjQsNyBAQAogCiAjaWYgRU5BQkxFKFNW
RykKICNpbmNsdWRlICJTVkdEb2N1bWVudEV4dGVuc2lvbnMuaCIKKyNpbmNsdWRlICJTVkdMb2Nh
dGFibGUuaCIKICNpbmNsdWRlICJTdHlsZWRFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTcxLDYgKzcyLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGNvbnN0
IEhhc2hTZXQ8U1ZHRWxlbWVudEluc3RhbmNlKj4mIGluc3RhbmNlc0ZvckVsZW1lbnQoKSBjb25z
dDsKIAorICAgICAgICBib29sIGJvdW5kaW5nQm94Rm9yRWxlbWVudChGbG9hdFJlY3QmLCBTVkdM
b2NhdGFibGU6OlN0eWxlVXBkYXRlU3RyYXRlZ3kgPSBTVkdMb2NhdGFibGU6OkFsbG93U3R5bGVV
cGRhdGUpIGNvbnN0OworCiAgICAgICAgIHZvaWQgc2V0Q3Vyc29yRWxlbWVudChTVkdDdXJzb3JF
bGVtZW50Kik7CiAgICAgICAgIHZvaWQgc2V0Q3Vyc29ySW1hZ2VWYWx1ZShDU1NDdXJzb3JJbWFn
ZVZhbHVlKik7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFi
bGVFbGVtZW50LmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50
LmNwcAppbmRleCBiOTA4ODdhLi5jMDBlNzVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdT
dHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHU3R5bGVk
VHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwCkBAIC04NiwyMSArODYsNiBAQCBib29sIFNWR1N0eWxl
ZFRyYW5zZm9ybWFibGVFbGVtZW50Ojppc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYQogICAgICAgICAgICBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50Ojppc0tub3du
QXR0cmlidXRlKGF0dHJOYW1lKTsKIH0KIAotU1ZHRWxlbWVudCogU1ZHU3R5bGVkVHJhbnNmb3Jt
YWJsZUVsZW1lbnQ6Om5lYXJlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdAotewotICAgIHJldHVy
biBTVkdUcmFuc2Zvcm1hYmxlOjpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KHRoaXMpOwotfQotCi1T
VkdFbGVtZW50KiBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6ZmFydGhlc3RWaWV3cG9y
dEVsZW1lbnQoKSBjb25zdAotewotICAgIHJldHVybiBTVkdUcmFuc2Zvcm1hYmxlOjpmYXJ0aGVz
dFZpZXdwb3J0RWxlbWVudCh0aGlzKTsKLX0KLQotRmxvYXRSZWN0IFNWR1N0eWxlZFRyYW5zZm9y
bWFibGVFbGVtZW50OjpnZXRCQm94KFN0eWxlVXBkYXRlU3RyYXRlZ3kgc3R5bGVVcGRhdGVTdHJh
dGVneSkgY29uc3QKLXsKLSAgICByZXR1cm4gU1ZHVHJhbnNmb3JtYWJsZTo6Z2V0QkJveCh0aGlz
LCBzdHlsZVVwZGF0ZVN0cmF0ZWd5KTsKLX0KLQogUmVuZGVyT2JqZWN0KiBTVkdTdHlsZWRUcmFu
c2Zvcm1hYmxlRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5k
ZXJTdHlsZSopCiB7CiAgICAgLy8gQnkgZGVmYXVsdCwgYW55IHN1YmNsYXNzIGlzIGV4cGVjdGVk
IHRvIGRvIHBhdGgtYmFzZWQgZHJhd2luZwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHU3R5
bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaCBiL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9y
bWFibGVFbGVtZW50LmgKaW5kZXggNzY2ODg4OS4uZmVmN2U3OCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaAorKysgYi9XZWJDb3JlL3N2Zy9T
VkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5oCkBAIC0zNSwxNSArMzUsMTEgQEAgY2xhc3Mg
U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQgOiBwdWJsaWMgU1ZHU3R5bGVkTG9jYXRhYmxl
RWxlbWVudCwKIHB1YmxpYzoKICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRDVE0oU3R5
bGVVcGRhdGVTdHJhdGVneSA9IEFsbG93U3R5bGVVcGRhdGUpIGNvbnN0OwogICAgIHZpcnR1YWwg
QWZmaW5lVHJhbnNmb3JtIGdldFNjcmVlbkNUTShTdHlsZVVwZGF0ZVN0cmF0ZWd5ID0gQWxsb3dT
dHlsZVVwZGF0ZSkgY29uc3Q7Ci0gICAgdmlydHVhbCBTVkdFbGVtZW50KiBuZWFyZXN0Vmlld3Bv
cnRFbGVtZW50KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBTVkdFbGVtZW50KiBmYXJ0aGVzdFZpZXdw
b3J0RWxlbWVudCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxD
b29yZGluYXRlU3BhY2VUcmFuc2Zvcm0oU1ZHTG9jYXRhYmxlOjpDVE1TY29wZSBtb2RlKSBjb25z
dCB7IHJldHVybiBTVkdUcmFuc2Zvcm1hYmxlOjpsb2NhbENvb3JkaW5hdGVTcGFjZVRyYW5zZm9y
bShtb2RlKTsgfQogICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGFuaW1hdGVkTG9jYWxUcmFu
c2Zvcm0oKSBjb25zdDsKICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSogc3VwcGxlbWVudGFs
VHJhbnNmb3JtKCk7CiAKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCBnZXRCQm94KFN0eWxlVXBkYXRl
U3RyYXRlZ3kgPSBBbGxvd1N0eWxlVXBkYXRlKSBjb25zdDsKLQogICAgIGJvb2wgaXNLbm93bkF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKICAgICAvLyAiYmFzZSBjbGFzcyIgbWV0
aG9kcyBmb3IgYWxsIHRoZSBlbGVtZW50cyB3aGljaCByZW5kZXIgYXMgcGF0aHMK
</data>
<flag name="review"
          id="60004"
          type_id="1"
          status="-"
          setter="zimmermann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70234</attachid>
            <date>2010-10-08 06:01:30 -0700</date>
            <delta_ts>2010-10-08 06:42:46 -0700</delta_ts>
            <desc>Fix and layout test</desc>
            <filename>wk46775.diff.submit</filename>
            <type>text/plain</type>
            <size>14781</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjM2FmYjczLi43ZjRhYTdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAt
MDcgIENvc21pbiBUcnV0YSAgPGN0cnV0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGRv
ZXMgbm90IHdvcmsgd2l0aCBTVkcgPHRleHQ+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00Njc3NQorCisgICAgICAgIEFkZGVkIGNvb3JkaW5hdGUgY2hl
Y2tzIG9uIHZhcmlvdXMgem9vbWVkLWluIGFuZCB6b29tZWQtb3V0CisgICAgICAgIFhIVE1MIGFu
ZCBTVkcgZWxlbWVudHMsIHVzaW5nIGdldEJvdW5kaW5nQ2xpZW50UmVjdC4KKworICAgICAgICAq
IGNzczMvem9vbS1jb29yZHMueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvem9vbS1jb29y
ZHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMC0xMC0wNyAgSmlhbiBMaSAgPGppYW5saUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NzczMvem9vbS1jb29yZHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY3NzMy96b29tLWNvb3Jkcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNzE2MjM5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMv
em9vbS1jb29yZHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzggQEAKK1Rlc3QKK1Rlc3QKK1Ro
aXMgdGVzdCBjaGVja3MgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgb24gem9vbWVkIEhUTUwgYW5k
IFNWRyBlbGVtZW50cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK0NoZWNraW5nIEhU
TUwgZWxlbWVudHM6CisKK1BBU1MgZGl2MS5sZWZ0IGlzIDAKK1BBU1MgZGl2MS50b3AgaXMgMAor
UEFTUyBkaXYxLndpZHRoIGlzIDEwMAorUEFTUyBkaXYxLmhlaWdodCBpcyA1MAorUEFTUyBkaXYx
LnJpZ2h0IGlzIDEwMAorUEFTUyBkaXYxLmJvdHRvbSBpcyA1MAorCitQQVNTIGRpdjIubGVmdCBp
cyAwCitQQVNTIGRpdjIudG9wIGlzIDIwMAorUEFTUyBkaXYyLndpZHRoIGlzIDIwMAorUEFTUyBk
aXYyLmhlaWdodCBpcyAxMDAKK1BBU1MgZGl2Mi5yaWdodCBpcyAyMDAKK1BBU1MgZGl2Mi5ib3R0
b20gaXMgMzAwCisKK0NoZWNraW5nIFNWRyBlbGVtZW50czoKKworUEFTUyBzdmcxLmxlZnQgaXMg
MAorUEFTUyBzdmcxLnRvcCBpcyA3NQorUEFTUyBzdmcxLndpZHRoIGlzIDE1MAorUEFTUyBzdmcx
LmhlaWdodCBpcyA1MAorUEFTUyBzdmcxLnJpZ2h0IGlzIDE1MAorUEFTUyBzdmcxLmJvdHRvbSBp
cyAxMjUKK1BBU1MgcmVjdDEubGVmdCBpcyAwCitQQVNTIHJlY3QxLnRvcCBpcyA3NQorUEFTUyBy
ZWN0MS53aWR0aCBpcyAxMDAKK1BBU1MgcmVjdDEuaGVpZ2h0IGlzIDUwCitQQVNTIHJlY3QxLnJp
Z2h0IGlzIDEwMAorUEFTUyByZWN0MS5ib3R0b20gaXMgMTI1CitQQVNTIGltYWdlMS5sZWZ0IGlz
IDEwMAorUEFTUyBpbWFnZTEudG9wIGlzIDc1CitQQVNTIGltYWdlMS53aWR0aCBpcyA1MAorUEFT
UyBpbWFnZTEuaGVpZ2h0IGlzIDI1CitQQVNTIGltYWdlMS5yaWdodCBpcyAxNTAKK1BBU1MgaW1h
Z2UxLmJvdHRvbSBpcyAxMDAKK1BBU1MgdGV4dDEubGVmdCA9PSAxMDAgaXMgdHJ1ZQorUEFTUyB0
ZXh0MS50b3AgPj0gNzUgaXMgdHJ1ZQorUEFTUyB0ZXh0MS53aWR0aCA+IDAgaXMgdHJ1ZQorUEFT
UyB0ZXh0MS5oZWlnaHQgPiAwIGlzIHRydWUKK1BBU1MgdGV4dDEucmlnaHQgPiAxMDAgaXMgdHJ1
ZQorUEFTUyB0ZXh0MS5ib3R0b20gPiA3NSBpcyB0cnVlCisKK1BBU1Mgc3ZnMi5sZWZ0IGlzIDYw
MAorUEFTUyBzdmcyLnRvcCBpcyA0MDAKK1BBU1Mgc3ZnMi53aWR0aCBpcyAzMDAKK1BBU1Mgc3Zn
Mi5oZWlnaHQgaXMgMTAwCitQQVNTIHN2ZzIucmlnaHQgaXMgOTAwCitQQVNTIHN2ZzIuYm90dG9t
IGlzIDUwMAorUEFTUyByZWN0Mi5sZWZ0IGlzIDYwMAorUEFTUyByZWN0Mi50b3AgaXMgNDAwCitQ
QVNTIHJlY3QyLndpZHRoIGlzIDIwMAorUEFTUyByZWN0Mi5oZWlnaHQgaXMgMTAwCitQQVNTIHJl
Y3QyLnJpZ2h0IGlzIDgwMAorUEFTUyByZWN0Mi5ib3R0b20gaXMgNTAwCitQQVNTIGltYWdlMi5s
ZWZ0IGlzIDgwMAorUEFTUyBpbWFnZTIudG9wIGlzIDQwMAorUEFTUyBpbWFnZTIud2lkdGggaXMg
MTAwCitQQVNTIGltYWdlMi5oZWlnaHQgaXMgNTAKK1BBU1MgaW1hZ2UyLnJpZ2h0IGlzIDkwMAor
UEFTUyBpbWFnZTIuYm90dG9tIGlzIDQ1MAorUEFTUyB0ZXh0Mi5sZWZ0ID09IDgwMCBpcyB0cnVl
CitQQVNTIHRleHQyLnRvcCA+PSA0MDAgaXMgdHJ1ZQorUEFTUyB0ZXh0Mi53aWR0aCA+IDAgaXMg
dHJ1ZQorUEFTUyB0ZXh0Mi5oZWlnaHQgPiAwIGlzIHRydWUKK1BBU1MgdGV4dDIucmlnaHQgPiA4
MDAgaXMgdHJ1ZQorUEFTUyB0ZXh0Mi5ib3R0b20gPiA0MDAgaXMgdHJ1ZQorCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3NzMy96b29tLWNvb3Jkcy54aHRtbCBiL0xheW91dFRlc3RzL2NzczMvem9vbS1j
b29yZHMueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDFmNmE5ZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvem9vbS1jb29yZHMueGh0bWwKQEAg
LTAsMCArMSwxMjYgQEAKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiLz4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgYm9keSB7IG1hcmdpbjow
cHg7IGJvcmRlcjowcHg7IHBhZGRpbmc6MHB4OyB9CisgICAgI2RpdjEsICNzdmcxIHsgem9vbToy
MDAlOyB9CisgICAgI2RpdjIsICNzdmcyIHsgem9vbTo1MCU7IH0KKzwvc3R5bGU+Cis8c2NyaXB0
IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+CisKKzxkaXYgaWQ9ImRpdjEiIHN0eWxlPSJ3aWR0aDoxMDBweDtoZWlnaHQ6
NTBweDtiYWNrZ3JvdW5kLWNvbG9yOmJsdWU7Ij48L2Rpdj4KKzxkaXYgaWQ9ImRpdjIiIHN0eWxl
PSJ3aWR0aDoyMDBweDtoZWlnaHQ6MTAwcHg7YmFja2dyb3VuZC1jb2xvcjpncmVlbjsiPjwvZGl2
PgorPHN2ZyBpZD0ic3ZnMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAg
ICB3aWR0aD0iMTUwcHgiIGhlaWdodD0iNTBweCIgdmlld0JveD0iMCAwIDE1MCAxMDAiCisgICAg
IHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgorICA8cmVjdCBpZD0icmVjdDEiIHg9IjAiIHk9
IjAiIHdpZHRoPSIxMDBweCIgaGVpZ2h0PSIxMDBweCIgZmlsbD0ieWVsbG93IiAvPgorICA8aW1h
Z2UgaWQ9ImltYWdlMSIgeD0iMTAwcHgiIHk9IjAiIHdpZHRoPSI1MHB4IiBoZWlnaHQ9IjUwcHgi
IHhsaW5rOmhyZWY9Ii4uL3N2Zy9kb20vcmVzb3VyY2VzL21hZ25pZnkucG5nIiAvPgorICA8dGV4
dCBpZD0idGV4dDEiIHg9IjEwMHB4IiB5PSI3NXB4Ij5UZXN0PC90ZXh0PgorPC9zdmc+PHN2ZyBp
ZD0ic3ZnMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgICB3aWR0aD0i
MzAwcHgiIGhlaWdodD0iMTAwcHgiIHZpZXdCb3g9IjAgMCAxNTAgMTAwIgorICAgICBwcmVzZXJ2
ZUFzcGVjdFJhdGlvPSJub25lIj4KKyAgPHJlY3QgaWQ9InJlY3QyIiB4PSIwIiB5PSIwIiB3aWR0
aD0iMTAwcHgiIGhlaWdodD0iMTAwcHgiIGZpbGw9Im9yYW5nZSIgLz4KKyAgPGltYWdlIGlkPSJp
bWFnZTIiIHg9IjEwMHB4IiB5PSIwIiB3aWR0aD0iNTBweCIgaGVpZ2h0PSI1MHB4IiB4bGluazpo
cmVmPSIuLi9zdmcvZG9tL3Jlc291cmNlcy9tYWduaWZ5LnBuZyIgLz4KKyAgPHRleHQgaWQ9InRl
eHQyIiB4PSIxMDBweCIgeT0iNzVweCI+VGVzdDwvdGV4dD4KKzwvc3ZnPgorCis8ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4K
KworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkg
b24gem9vbWVkIEhUTUwgYW5kIFNWRyBlbGVtZW50cyIpOworCitkZWJ1ZygiQ2hlY2tpbmcgSFRN
TCBlbGVtZW50czoiKTsKK2RlYnVnKCIiKTsKKwordmFyIGRpdjEgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZGl2MSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworc2hvdWxkQmUoJ2RpdjEu
bGVmdCcsICcwJyk7CitzaG91bGRCZSgnZGl2MS50b3AnLCAnMCcpOworc2hvdWxkQmUoJ2RpdjEu
d2lkdGgnLCAnMTAwJyk7CitzaG91bGRCZSgnZGl2MS5oZWlnaHQnLCAnNTAnKTsKK3Nob3VsZEJl
KCdkaXYxLnJpZ2h0JywgJzEwMCcpOworc2hvdWxkQmUoJ2RpdjEuYm90dG9tJywgJzUwJyk7Citk
ZWJ1ZygiIik7CisKK3ZhciBkaXYyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjIiKS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKK3Nob3VsZEJlKCdkaXYyLmxlZnQnLCAnMCcpOworc2hv
dWxkQmUoJ2RpdjIudG9wJywgJzIwMCcpOworc2hvdWxkQmUoJ2RpdjIud2lkdGgnLCAnMjAwJyk7
CitzaG91bGRCZSgnZGl2Mi5oZWlnaHQnLCAnMTAwJyk7CitzaG91bGRCZSgnZGl2Mi5yaWdodCcs
ICcyMDAnKTsKK3Nob3VsZEJlKCdkaXYyLmJvdHRvbScsICczMDAnKTsKK2RlYnVnKCIiKTsKKwor
ZGVidWcoIkNoZWNraW5nIFNWRyBlbGVtZW50czoiKTsKK2RlYnVnKCIiKTsKKwordmFyIHN2ZzEg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3ZnMSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
Oworc2hvdWxkQmUoJ3N2ZzEubGVmdCcsICcwJyk7CitzaG91bGRCZSgnc3ZnMS50b3AnLCAnNzUn
KTsKK3Nob3VsZEJlKCdzdmcxLndpZHRoJywgJzE1MCcpOworc2hvdWxkQmUoJ3N2ZzEuaGVpZ2h0
JywgJzUwJyk7CitzaG91bGRCZSgnc3ZnMS5yaWdodCcsICcxNTAnKTsKK3Nob3VsZEJlKCdzdmcx
LmJvdHRvbScsICcxMjUnKTsKK3ZhciByZWN0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
ZWN0MSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworc2hvdWxkQmUoJ3JlY3QxLmxlZnQnLCAn
MCcpOworc2hvdWxkQmUoJ3JlY3QxLnRvcCcsICc3NScpOworc2hvdWxkQmUoJ3JlY3QxLndpZHRo
JywgJzEwMCcpOworc2hvdWxkQmUoJ3JlY3QxLmhlaWdodCcsICc1MCcpOworc2hvdWxkQmUoJ3Jl
Y3QxLnJpZ2h0JywgJzEwMCcpOworc2hvdWxkQmUoJ3JlY3QxLmJvdHRvbScsICcxMjUnKTsKK3Zh
ciBpbWFnZTEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2UxIikuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk7CitzaG91bGRCZSgnaW1hZ2UxLmxlZnQnLCAnMTAwJyk7CitzaG91bGRCZSgn
aW1hZ2UxLnRvcCcsICc3NScpOworc2hvdWxkQmUoJ2ltYWdlMS53aWR0aCcsICc1MCcpOworc2hv
dWxkQmUoJ2ltYWdlMS5oZWlnaHQnLCAnMjUnKTsKK3Nob3VsZEJlKCdpbWFnZTEucmlnaHQnLCAn
MTUwJyk7CitzaG91bGRCZSgnaW1hZ2UxLmJvdHRvbScsICcxMDAnKTsKK3ZhciB0ZXh0MSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0MSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwor
c2hvdWxkQmUoJ3RleHQxLmxlZnQgPT0gMTAwJywgJ3RydWUnKTsKK3Nob3VsZEJlKCd0ZXh0MS50
b3AgPj0gNzUnLCAndHJ1ZScpOworc2hvdWxkQmUoJ3RleHQxLndpZHRoID4gMCcsICd0cnVlJyk7
CitzaG91bGRCZSgndGV4dDEuaGVpZ2h0ID4gMCcsICd0cnVlJyk7CitzaG91bGRCZSgndGV4dDEu
cmlnaHQgPiAxMDAnLCAndHJ1ZScpOworc2hvdWxkQmUoJ3RleHQxLmJvdHRvbSA+IDc1JywgJ3Ry
dWUnKTsKK2RlYnVnKCIiKTsKKwordmFyIHN2ZzIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
c3ZnMiIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworc2hvdWxkQmUoJ3N2ZzIubGVmdCcsICc2
MDAnKTsKK3Nob3VsZEJlKCdzdmcyLnRvcCcsICc0MDAnKTsKK3Nob3VsZEJlKCdzdmcyLndpZHRo
JywgJzMwMCcpOworc2hvdWxkQmUoJ3N2ZzIuaGVpZ2h0JywgJzEwMCcpOworc2hvdWxkQmUoJ3N2
ZzIucmlnaHQnLCAnOTAwJyk7CitzaG91bGRCZSgnc3ZnMi5ib3R0b20nLCAnNTAwJyk7Cit2YXIg
cmVjdDIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjdDIiKS5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKTsKK3Nob3VsZEJlKCdyZWN0Mi5sZWZ0JywgJzYwMCcpOworc2hvdWxkQmUoJ3JlY3Qy
LnRvcCcsICc0MDAnKTsKK3Nob3VsZEJlKCdyZWN0Mi53aWR0aCcsICcyMDAnKTsKK3Nob3VsZEJl
KCdyZWN0Mi5oZWlnaHQnLCAnMTAwJyk7CitzaG91bGRCZSgncmVjdDIucmlnaHQnLCAnODAwJyk7
CitzaG91bGRCZSgncmVjdDIuYm90dG9tJywgJzUwMCcpOwordmFyIGltYWdlMiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJpbWFnZTIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKK3Nob3Vs
ZEJlKCdpbWFnZTIubGVmdCcsICc4MDAnKTsKK3Nob3VsZEJlKCdpbWFnZTIudG9wJywgJzQwMCcp
Oworc2hvdWxkQmUoJ2ltYWdlMi53aWR0aCcsICcxMDAnKTsKK3Nob3VsZEJlKCdpbWFnZTIuaGVp
Z2h0JywgJzUwJyk7CitzaG91bGRCZSgnaW1hZ2UyLnJpZ2h0JywgJzkwMCcpOworc2hvdWxkQmUo
J2ltYWdlMi5ib3R0b20nLCAnNDUwJyk7Cit2YXIgdGV4dDIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGV4dDIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKK3Nob3VsZEJlKCd0ZXh0Mi5s
ZWZ0ID09IDgwMCcsICd0cnVlJyk7CitzaG91bGRCZSgndGV4dDIudG9wID49IDQwMCcsICd0cnVl
Jyk7CitzaG91bGRCZSgndGV4dDIud2lkdGggPiAwJywgJ3RydWUnKTsKK3Nob3VsZEJlKCd0ZXh0
Mi5oZWlnaHQgPiAwJywgJ3RydWUnKTsKK3Nob3VsZEJlKCd0ZXh0Mi5yaWdodCA+IDgwMCcsICd0
cnVlJyk7CitzaG91bGRCZSgndGV4dDIuYm90dG9tID4gNDAwJywgJ3RydWUnKTsKK2RlYnVnKCIi
KTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwZWI4MjAxLi4zNzU3N2E4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEwLTEwLTA3
ICBDb3NtaW4gVHJ1dGEgIDxjdHJ1dGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBkb2Vz
IG5vdCB3b3JrIHdpdGggU1ZHIDx0ZXh0PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDY3NzUKKworICAgICAgICBEaXNwYXRjaGVkIHRoZSBjYWxscyBm
cm9tIEVsZW1lbnQ6OmdldEJvdW5kaW5nQ2xpZW50UmVjdCB0byBnZXRCQm94CisgICAgICAgIHRo
cm91Z2ggU1ZHRWxlbWVudDo6Ym91bmRpbmdCb3hGb3JFbGVtZW50LgorICAgICAgICBSZWNvZ25p
emVkIFNWR1RleHRFbGVtZW50IGluIGFkZGl0aW9uIHRvIFNWR1N0eWxlZExvY2F0YWJsZUVsZW1l
bnQKKyAgICAgICAgYXMgYSBjbGFzcyB0aGF0IHByb3ZpZGVzIGdldEJCb3guCisgICAgICAgIEZp
eGVkIHRoZSByZXN1bHQgb2Ygem9vbWluZzogYWRqdXN0ZWQgdGhlIGdldEJvdW5kaW5nQ2xpZW50
UmVjdCByZWN0YW5nbGUKKyAgICAgICAgZm9yIGFic29sdXRlIHpvb20sIGV2ZW4gZm9yIFNWRyBl
bGVtZW50cy4KKworICAgICAgICBBZGRpdGlvbmFsIGNsZWFudXAgdGFzazoKKyAgICAgICAgUmVt
b3ZlZCByZWR1bmRhbnQgb3ZlcmxvYWRzIG9mIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50
CisgICAgICAgIG1ldGhvZHM6IG5lYXJlc3RWaWV3cG9ydEVsZW1lbnQsIGZhcnRoZXN0Vmlld3Bv
cnRFbGVtZW50LCBnZXRCQm94LgorICAgICAgICBUaGVzZSBtZXRob2RzIGFyZSBhbHJlYWR5IGlu
aGVyaXRlZCBmcm9tIFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQuCisKKyAgICAgICAgVGVzdDog
Y3NzMy96b29tLWNvb3Jkcy54aHRtbAorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoRWxlbWVudDo6Z2V0Qm91bmRpbmdDbGllbnRSZWN0KTogVXNlZCBTVkdFbGVtZW50Ojpi
b3VuZGluZ0JveEZvckVsZW1lbnQuCisgICAgICAgIEFkanVzdGVkIGNvb3JkaW5hdGVzIGZvciBh
YnNvbHV0ZSB6b29tLCBmb3IgYWxsIGtpbmRzIG9mIGVsZW1lbnRzLgorICAgICAgICAqIHN2Zy9T
VkdFbGVtZW50LmNwcDoKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5oOgorICAgICAgICAoU1ZH
RWxlbWVudDo6Ym91bmRpbmdCb3hGb3JFbGVtZW50KTogQWRkZWQuCisgICAgICAgICogc3ZnL1NW
R1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcDoKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVk
VHJhbnNmb3JtYWJsZUVsZW1lbnQuaDoKKyAgICAgICAgKFNWR1N0eWxlZFRyYW5zZm9ybWFibGVF
bGVtZW50OjpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KTogUmVtb3ZlZC4KKyAgICAgICAgKFNWR1N0
eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjpmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudCk6IFJlbW92
ZWQuCisgICAgICAgIChTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6Z2V0QkJveCk6IFJl
bW92ZWQuCisKIDIwMTAtMTAtMDcgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDYwYTEwNjMuLjQ2ZDNj
ZTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCkBAIC01MiwxMyArNTIsMTMgQEAKICNpbmNsdWRlICJSZW5kZXJMYXllci5o
IgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKLSNp
bmNsdWRlICJTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJYTUxOYW1lcy5oIgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAi
U1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjZW5kaWYKIApAQCAtNDgyLDE1
ICs0ODIsMTIgQEAgUGFzc1JlZlB0cjxDbGllbnRSZWN0PiBFbGVtZW50OjpnZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKSBjb25zdAogCiAgICAgVmVjdG9yPEZsb2F0UXVhZD4gcXVhZHM7CiAjaWYgRU5B
QkxFKFNWRykKLSAgICBpZiAoaXNTVkdFbGVtZW50KCkpIHsKKyAgICBpZiAoaXNTVkdFbGVtZW50
KCkgJiYgcmVuZGVyZXIoKSkgewogICAgICAgICAvLyBHZXQgdGhlIGJvdW5kaW5nIHJlY3Rhbmds
ZSBmcm9tIHRoZSBTVkcgbW9kZWwuCiAgICAgICAgIGNvbnN0IFNWR0VsZW1lbnQqIHN2Z0VsZW1l
bnQgPSBzdGF0aWNfY2FzdDxjb25zdCBTVkdFbGVtZW50Kj4odGhpcyk7Ci0gICAgICAgIGlmIChz
dmdFbGVtZW50LT5pc1N0eWxlZExvY2F0YWJsZSgpKSB7Ci0gICAgICAgICAgICBpZiAocmVuZGVy
ZXIoKSkgewotICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UmVjdCYgbG9jYWxSZWN0ID0gc3Rh
dGljX2Nhc3Q8Y29uc3QgU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudCo+KHN2Z0VsZW1lbnQpLT5n
ZXRCQm94KCk7Ci0gICAgICAgICAgICAgICAgcXVhZHMuYXBwZW5kKHJlbmRlcmVyKCktPmxvY2Fs
VG9BYnNvbHV0ZVF1YWQobG9jYWxSZWN0KSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAg
ICAgICAgRmxvYXRSZWN0IGxvY2FsUmVjdDsKKyAgICAgICAgaWYgKHN2Z0VsZW1lbnQtPmJvdW5k
aW5nQm94KGxvY2FsUmVjdCkpCisgICAgICAgICAgICBxdWFkcy5hcHBlbmQocmVuZGVyZXIoKS0+
bG9jYWxUb0Fic29sdXRlUXVhZChsb2NhbFJlY3QpKTsKICAgICB9IGVsc2UKICNlbmRpZgogICAg
IHsKQEAgLTUxMSw4ICs1MDgsOCBAQCBQYXNzUmVmUHRyPENsaWVudFJlY3Q+IEVsZW1lbnQ6Omdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC5tb3ZlKC12aXNpYmxl
Q29udGVudFJlY3QueCgpLCAtdmlzaWJsZUNvbnRlbnRSZWN0LnkoKSk7CiAgICAgfQogCi0gICAg
aWYgKHJlbmRlckJveE1vZGVsT2JqZWN0KCkpCi0gICAgICAgIGFkanVzdEludFJlY3RGb3JBYnNv
bHV0ZVpvb20ocmVzdWx0LCByZW5kZXJCb3hNb2RlbE9iamVjdCgpKTsKKyAgICBBU1NFUlQocmVu
ZGVyZXIoKSk7CisgICAgYWRqdXN0SW50UmVjdEZvckFic29sdXRlWm9vbShyZXN1bHQsIHJlbmRl
cmVyKCkpOwogCiAgICAgcmV0dXJuIENsaWVudFJlY3Q6OmNyZWF0ZShyZXN1bHQpOwogfQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAgYi9XZWJDb3JlL3N2Zy9TVkdFbGVt
ZW50LmNwcAppbmRleCAxYjE5ZjI1Li41MDc2OGNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9T
VkdFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcApAQCAtNDIsNiAr
NDIsOCBAQAogI2luY2x1ZGUgIlNWR0VsZW1lbnRSYXJlRGF0YS5oIgogI2luY2x1ZGUgIlNWR05h
bWVzLmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR1N0eWxlZExv
Y2F0YWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdUZXh0RWxlbWVudC5oIgogI2luY2x1ZGUg
IlNWR1VSSVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlNWR1VzZUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJTY3JpcHRFdmVudExpc3RlbmVyLmgiCkBAIC0xNzksNiArMTgxLDE5IEBAIGNvbnN0IEhhc2hT
ZXQ8U1ZHRWxlbWVudEluc3RhbmNlKj4mIFNWR0VsZW1lbnQ6Omluc3RhbmNlc0ZvckVsZW1lbnQo
KSBjb25zdAogICAgIHJldHVybiByYXJlU1ZHRGF0YSgpLT5lbGVtZW50SW5zdGFuY2VzKCk7CiB9
CiAKK2Jvb2wgU1ZHRWxlbWVudDo6Ym91bmRpbmdCb3goRmxvYXRSZWN0JiByZWN0LCBTVkdMb2Nh
dGFibGU6OlN0eWxlVXBkYXRlU3RyYXRlZ3kgc3R5bGVVcGRhdGVTdHJhdGVneSkgY29uc3QKK3sK
KyAgICBpZiAoaXNTdHlsZWRMb2NhdGFibGUoKSkgeworICAgICAgICByZWN0ID0gc3RhdGljX2Nh
c3Q8Y29uc3QgU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudCo+KHRoaXMpLT5nZXRCQm94KHN0eWxl
VXBkYXRlU3RyYXRlZ3kpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgaWYgKGhh
c1RhZ05hbWUoU1ZHTmFtZXM6OnRleHRUYWcpKSB7CisgICAgICAgIHJlY3QgPSBzdGF0aWNfY2Fz
dDxjb25zdCBTVkdUZXh0RWxlbWVudCo+KHRoaXMpLT5nZXRCQm94KHN0eWxlVXBkYXRlU3RyYXRl
Z3kpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQor
CiB2b2lkIFNWR0VsZW1lbnQ6OnNldEN1cnNvckVsZW1lbnQoU1ZHQ3Vyc29yRWxlbWVudCogY3Vy
c29yRWxlbWVudCkKIHsKICAgICBlbnN1cmVSYXJlU1ZHRGF0YSgpLT5zZXRDdXJzb3JFbGVtZW50
KGN1cnNvckVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oIGIv
V2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCmluZGV4IGZiMjgyNzkuLjNlNGMyOTIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaAorKysgYi9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50
LmgKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHRG9j
dW1lbnRFeHRlbnNpb25zLmgiCisjaW5jbHVkZSAiU1ZHTG9jYXRhYmxlLmgiCiAjaW5jbHVkZSAi
U3R5bGVkRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC03MSw2ICs3Miw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBjb25zdCBIYXNoU2V0PFNWR0VsZW1lbnRJ
bnN0YW5jZSo+JiBpbnN0YW5jZXNGb3JFbGVtZW50KCkgY29uc3Q7CiAKKyAgICAgICAgYm9vbCBi
b3VuZGluZ0JveChGbG9hdFJlY3QmLCBTVkdMb2NhdGFibGU6OlN0eWxlVXBkYXRlU3RyYXRlZ3kg
PSBTVkdMb2NhdGFibGU6OkFsbG93U3R5bGVVcGRhdGUpIGNvbnN0OworCiAgICAgICAgIHZvaWQg
c2V0Q3Vyc29yRWxlbWVudChTVkdDdXJzb3JFbGVtZW50Kik7CiAgICAgICAgIHZvaWQgc2V0Q3Vy
c29ySW1hZ2VWYWx1ZShDU1NDdXJzb3JJbWFnZVZhbHVlKik7CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcCBiL1dlYkNvcmUvc3ZnL1NW
R1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcAppbmRleCBiOTA4ODdhLi5jMDBlNzVlIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAK
KysrIGIvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwCkBAIC04
NiwyMSArODYsNiBAQCBib29sIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50Ojppc0tub3du
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYQogICAgICAgICAgICBTVkdTdHls
ZWRMb2NhdGFibGVFbGVtZW50Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKTsKIH0KIAotU1ZH
RWxlbWVudCogU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6Om5lYXJlc3RWaWV3cG9ydEVs
ZW1lbnQoKSBjb25zdAotewotICAgIHJldHVybiBTVkdUcmFuc2Zvcm1hYmxlOjpuZWFyZXN0Vmll
d3BvcnRFbGVtZW50KHRoaXMpOwotfQotCi1TVkdFbGVtZW50KiBTVkdTdHlsZWRUcmFuc2Zvcm1h
YmxlRWxlbWVudDo6ZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdAotewotICAgIHJldHVy
biBTVkdUcmFuc2Zvcm1hYmxlOjpmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudCh0aGlzKTsKLX0KLQot
RmxvYXRSZWN0IFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjpnZXRCQm94KFN0eWxlVXBk
YXRlU3RyYXRlZ3kgc3R5bGVVcGRhdGVTdHJhdGVneSkgY29uc3QKLXsKLSAgICByZXR1cm4gU1ZH
VHJhbnNmb3JtYWJsZTo6Z2V0QkJveCh0aGlzLCBzdHlsZVVwZGF0ZVN0cmF0ZWd5KTsKLX0KLQog
UmVuZGVyT2JqZWN0KiBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6Y3JlYXRlUmVuZGVy
ZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopCiB7CiAgICAgLy8gQnkgZGVmYXVs
dCwgYW55IHN1YmNsYXNzIGlzIGV4cGVjdGVkIHRvIGRvIHBhdGgtYmFzZWQgZHJhd2luZwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaCBiL1dl
YkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmgKaW5kZXggNzY2ODg4OS4u
ZmVmN2U3OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVs
ZW1lbnQuaAorKysgYi9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5o
CkBAIC0zNSwxNSArMzUsMTEgQEAgY2xhc3MgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQg
OiBwdWJsaWMgU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudCwKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IEFmZmluZVRyYW5zZm9ybSBnZXRDVE0oU3R5bGVVcGRhdGVTdHJhdGVneSA9IEFsbG93U3R5bGVV
cGRhdGUpIGNvbnN0OwogICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdldFNjcmVlbkNUTShT
dHlsZVVwZGF0ZVN0cmF0ZWd5ID0gQWxsb3dTdHlsZVVwZGF0ZSkgY29uc3Q7Ci0gICAgdmlydHVh
bCBTVkdFbGVtZW50KiBuZWFyZXN0Vmlld3BvcnRFbGVtZW50KCkgY29uc3Q7Ci0gICAgdmlydHVh
bCBTVkdFbGVtZW50KiBmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0OwogCiAgICAgdmly
dHVhbCBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxDb29yZGluYXRlU3BhY2VUcmFuc2Zvcm0oU1ZHTG9j
YXRhYmxlOjpDVE1TY29wZSBtb2RlKSBjb25zdCB7IHJldHVybiBTVkdUcmFuc2Zvcm1hYmxlOjps
b2NhbENvb3JkaW5hdGVTcGFjZVRyYW5zZm9ybShtb2RlKTsgfQogICAgIHZpcnR1YWwgQWZmaW5l
VHJhbnNmb3JtIGFuaW1hdGVkTG9jYWxUcmFuc2Zvcm0oKSBjb25zdDsKICAgICB2aXJ0dWFsIEFm
ZmluZVRyYW5zZm9ybSogc3VwcGxlbWVudGFsVHJhbnNmb3JtKCk7CiAKLSAgICB2aXJ0dWFsIEZs
b2F0UmVjdCBnZXRCQm94KFN0eWxlVXBkYXRlU3RyYXRlZ3kgPSBBbGxvd1N0eWxlVXBkYXRlKSBj
b25zdDsKLQogICAgIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7
CiAKICAgICAvLyAiYmFzZSBjbGFzcyIgbWV0aG9kcyBmb3IgYWxsIHRoZSBlbGVtZW50cyB3aGlj
aCByZW5kZXIgYXMgcGF0aHMK
</data>
<flag name="review"
          id="60051"
          type_id="1"
          status="-"
          setter="zimmermann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70242</attachid>
            <date>2010-10-08 06:42:46 -0700</date>
            <delta_ts>2010-10-13 15:51:13 -0700</delta_ts>
            <desc>Fix and layout test, ChangeLog fixed</desc>
            <filename>wk46775.diff.submit</filename>
            <type>text/plain</type>
            <size>14751</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjM2FmYjczLi43ZjRhYTdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAt
MDcgIENvc21pbiBUcnV0YSAgPGN0cnV0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGRv
ZXMgbm90IHdvcmsgd2l0aCBTVkcgPHRleHQ+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00Njc3NQorCisgICAgICAgIEFkZGVkIGNvb3JkaW5hdGUgY2hl
Y2tzIG9uIHZhcmlvdXMgem9vbWVkLWluIGFuZCB6b29tZWQtb3V0CisgICAgICAgIFhIVE1MIGFu
ZCBTVkcgZWxlbWVudHMsIHVzaW5nIGdldEJvdW5kaW5nQ2xpZW50UmVjdC4KKworICAgICAgICAq
IGNzczMvem9vbS1jb29yZHMueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvem9vbS1jb29y
ZHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMC0xMC0wNyAgSmlhbiBMaSAgPGppYW5saUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NzczMvem9vbS1jb29yZHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY3NzMy96b29tLWNvb3Jkcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNzE2MjM5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMv
em9vbS1jb29yZHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzggQEAKK1Rlc3QKK1Rlc3QKK1Ro
aXMgdGVzdCBjaGVja3MgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgb24gem9vbWVkIEhUTUwgYW5k
IFNWRyBlbGVtZW50cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK0NoZWNraW5nIEhU
TUwgZWxlbWVudHM6CisKK1BBU1MgZGl2MS5sZWZ0IGlzIDAKK1BBU1MgZGl2MS50b3AgaXMgMAor
UEFTUyBkaXYxLndpZHRoIGlzIDEwMAorUEFTUyBkaXYxLmhlaWdodCBpcyA1MAorUEFTUyBkaXYx
LnJpZ2h0IGlzIDEwMAorUEFTUyBkaXYxLmJvdHRvbSBpcyA1MAorCitQQVNTIGRpdjIubGVmdCBp
cyAwCitQQVNTIGRpdjIudG9wIGlzIDIwMAorUEFTUyBkaXYyLndpZHRoIGlzIDIwMAorUEFTUyBk
aXYyLmhlaWdodCBpcyAxMDAKK1BBU1MgZGl2Mi5yaWdodCBpcyAyMDAKK1BBU1MgZGl2Mi5ib3R0
b20gaXMgMzAwCisKK0NoZWNraW5nIFNWRyBlbGVtZW50czoKKworUEFTUyBzdmcxLmxlZnQgaXMg
MAorUEFTUyBzdmcxLnRvcCBpcyA3NQorUEFTUyBzdmcxLndpZHRoIGlzIDE1MAorUEFTUyBzdmcx
LmhlaWdodCBpcyA1MAorUEFTUyBzdmcxLnJpZ2h0IGlzIDE1MAorUEFTUyBzdmcxLmJvdHRvbSBp
cyAxMjUKK1BBU1MgcmVjdDEubGVmdCBpcyAwCitQQVNTIHJlY3QxLnRvcCBpcyA3NQorUEFTUyBy
ZWN0MS53aWR0aCBpcyAxMDAKK1BBU1MgcmVjdDEuaGVpZ2h0IGlzIDUwCitQQVNTIHJlY3QxLnJp
Z2h0IGlzIDEwMAorUEFTUyByZWN0MS5ib3R0b20gaXMgMTI1CitQQVNTIGltYWdlMS5sZWZ0IGlz
IDEwMAorUEFTUyBpbWFnZTEudG9wIGlzIDc1CitQQVNTIGltYWdlMS53aWR0aCBpcyA1MAorUEFT
UyBpbWFnZTEuaGVpZ2h0IGlzIDI1CitQQVNTIGltYWdlMS5yaWdodCBpcyAxNTAKK1BBU1MgaW1h
Z2UxLmJvdHRvbSBpcyAxMDAKK1BBU1MgdGV4dDEubGVmdCA9PSAxMDAgaXMgdHJ1ZQorUEFTUyB0
ZXh0MS50b3AgPj0gNzUgaXMgdHJ1ZQorUEFTUyB0ZXh0MS53aWR0aCA+IDAgaXMgdHJ1ZQorUEFT
UyB0ZXh0MS5oZWlnaHQgPiAwIGlzIHRydWUKK1BBU1MgdGV4dDEucmlnaHQgPiAxMDAgaXMgdHJ1
ZQorUEFTUyB0ZXh0MS5ib3R0b20gPiA3NSBpcyB0cnVlCisKK1BBU1Mgc3ZnMi5sZWZ0IGlzIDYw
MAorUEFTUyBzdmcyLnRvcCBpcyA0MDAKK1BBU1Mgc3ZnMi53aWR0aCBpcyAzMDAKK1BBU1Mgc3Zn
Mi5oZWlnaHQgaXMgMTAwCitQQVNTIHN2ZzIucmlnaHQgaXMgOTAwCitQQVNTIHN2ZzIuYm90dG9t
IGlzIDUwMAorUEFTUyByZWN0Mi5sZWZ0IGlzIDYwMAorUEFTUyByZWN0Mi50b3AgaXMgNDAwCitQ
QVNTIHJlY3QyLndpZHRoIGlzIDIwMAorUEFTUyByZWN0Mi5oZWlnaHQgaXMgMTAwCitQQVNTIHJl
Y3QyLnJpZ2h0IGlzIDgwMAorUEFTUyByZWN0Mi5ib3R0b20gaXMgNTAwCitQQVNTIGltYWdlMi5s
ZWZ0IGlzIDgwMAorUEFTUyBpbWFnZTIudG9wIGlzIDQwMAorUEFTUyBpbWFnZTIud2lkdGggaXMg
MTAwCitQQVNTIGltYWdlMi5oZWlnaHQgaXMgNTAKK1BBU1MgaW1hZ2UyLnJpZ2h0IGlzIDkwMAor
UEFTUyBpbWFnZTIuYm90dG9tIGlzIDQ1MAorUEFTUyB0ZXh0Mi5sZWZ0ID09IDgwMCBpcyB0cnVl
CitQQVNTIHRleHQyLnRvcCA+PSA0MDAgaXMgdHJ1ZQorUEFTUyB0ZXh0Mi53aWR0aCA+IDAgaXMg
dHJ1ZQorUEFTUyB0ZXh0Mi5oZWlnaHQgPiAwIGlzIHRydWUKK1BBU1MgdGV4dDIucmlnaHQgPiA4
MDAgaXMgdHJ1ZQorUEFTUyB0ZXh0Mi5ib3R0b20gPiA0MDAgaXMgdHJ1ZQorCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3NzMy96b29tLWNvb3Jkcy54aHRtbCBiL0xheW91dFRlc3RzL2NzczMvem9vbS1j
b29yZHMueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDFmNmE5ZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvem9vbS1jb29yZHMueGh0bWwKQEAg
LTAsMCArMSwxMjYgQEAKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiLz4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgYm9keSB7IG1hcmdpbjow
cHg7IGJvcmRlcjowcHg7IHBhZGRpbmc6MHB4OyB9CisgICAgI2RpdjEsICNzdmcxIHsgem9vbToy
MDAlOyB9CisgICAgI2RpdjIsICNzdmcyIHsgem9vbTo1MCU7IH0KKzwvc3R5bGU+Cis8c2NyaXB0
IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+CisKKzxkaXYgaWQ9ImRpdjEiIHN0eWxlPSJ3aWR0aDoxMDBweDtoZWlnaHQ6
NTBweDtiYWNrZ3JvdW5kLWNvbG9yOmJsdWU7Ij48L2Rpdj4KKzxkaXYgaWQ9ImRpdjIiIHN0eWxl
PSJ3aWR0aDoyMDBweDtoZWlnaHQ6MTAwcHg7YmFja2dyb3VuZC1jb2xvcjpncmVlbjsiPjwvZGl2
PgorPHN2ZyBpZD0ic3ZnMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAg
ICB3aWR0aD0iMTUwcHgiIGhlaWdodD0iNTBweCIgdmlld0JveD0iMCAwIDE1MCAxMDAiCisgICAg
IHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgorICA8cmVjdCBpZD0icmVjdDEiIHg9IjAiIHk9
IjAiIHdpZHRoPSIxMDBweCIgaGVpZ2h0PSIxMDBweCIgZmlsbD0ieWVsbG93IiAvPgorICA8aW1h
Z2UgaWQ9ImltYWdlMSIgeD0iMTAwcHgiIHk9IjAiIHdpZHRoPSI1MHB4IiBoZWlnaHQ9IjUwcHgi
IHhsaW5rOmhyZWY9Ii4uL3N2Zy9kb20vcmVzb3VyY2VzL21hZ25pZnkucG5nIiAvPgorICA8dGV4
dCBpZD0idGV4dDEiIHg9IjEwMHB4IiB5PSI3NXB4Ij5UZXN0PC90ZXh0PgorPC9zdmc+PHN2ZyBp
ZD0ic3ZnMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgICB3aWR0aD0i
MzAwcHgiIGhlaWdodD0iMTAwcHgiIHZpZXdCb3g9IjAgMCAxNTAgMTAwIgorICAgICBwcmVzZXJ2
ZUFzcGVjdFJhdGlvPSJub25lIj4KKyAgPHJlY3QgaWQ9InJlY3QyIiB4PSIwIiB5PSIwIiB3aWR0
aD0iMTAwcHgiIGhlaWdodD0iMTAwcHgiIGZpbGw9Im9yYW5nZSIgLz4KKyAgPGltYWdlIGlkPSJp
bWFnZTIiIHg9IjEwMHB4IiB5PSIwIiB3aWR0aD0iNTBweCIgaGVpZ2h0PSI1MHB4IiB4bGluazpo
cmVmPSIuLi9zdmcvZG9tL3Jlc291cmNlcy9tYWduaWZ5LnBuZyIgLz4KKyAgPHRleHQgaWQ9InRl
eHQyIiB4PSIxMDBweCIgeT0iNzVweCI+VGVzdDwvdGV4dD4KKzwvc3ZnPgorCis8ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4K
KworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkg
b24gem9vbWVkIEhUTUwgYW5kIFNWRyBlbGVtZW50cyIpOworCitkZWJ1ZygiQ2hlY2tpbmcgSFRN
TCBlbGVtZW50czoiKTsKK2RlYnVnKCIiKTsKKwordmFyIGRpdjEgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZGl2MSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworc2hvdWxkQmUoJ2RpdjEu
bGVmdCcsICcwJyk7CitzaG91bGRCZSgnZGl2MS50b3AnLCAnMCcpOworc2hvdWxkQmUoJ2RpdjEu
d2lkdGgnLCAnMTAwJyk7CitzaG91bGRCZSgnZGl2MS5oZWlnaHQnLCAnNTAnKTsKK3Nob3VsZEJl
KCdkaXYxLnJpZ2h0JywgJzEwMCcpOworc2hvdWxkQmUoJ2RpdjEuYm90dG9tJywgJzUwJyk7Citk
ZWJ1ZygiIik7CisKK3ZhciBkaXYyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjIiKS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKK3Nob3VsZEJlKCdkaXYyLmxlZnQnLCAnMCcpOworc2hv
dWxkQmUoJ2RpdjIudG9wJywgJzIwMCcpOworc2hvdWxkQmUoJ2RpdjIud2lkdGgnLCAnMjAwJyk7
CitzaG91bGRCZSgnZGl2Mi5oZWlnaHQnLCAnMTAwJyk7CitzaG91bGRCZSgnZGl2Mi5yaWdodCcs
ICcyMDAnKTsKK3Nob3VsZEJlKCdkaXYyLmJvdHRvbScsICczMDAnKTsKK2RlYnVnKCIiKTsKKwor
ZGVidWcoIkNoZWNraW5nIFNWRyBlbGVtZW50czoiKTsKK2RlYnVnKCIiKTsKKwordmFyIHN2ZzEg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3ZnMSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
Oworc2hvdWxkQmUoJ3N2ZzEubGVmdCcsICcwJyk7CitzaG91bGRCZSgnc3ZnMS50b3AnLCAnNzUn
KTsKK3Nob3VsZEJlKCdzdmcxLndpZHRoJywgJzE1MCcpOworc2hvdWxkQmUoJ3N2ZzEuaGVpZ2h0
JywgJzUwJyk7CitzaG91bGRCZSgnc3ZnMS5yaWdodCcsICcxNTAnKTsKK3Nob3VsZEJlKCdzdmcx
LmJvdHRvbScsICcxMjUnKTsKK3ZhciByZWN0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
ZWN0MSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworc2hvdWxkQmUoJ3JlY3QxLmxlZnQnLCAn
MCcpOworc2hvdWxkQmUoJ3JlY3QxLnRvcCcsICc3NScpOworc2hvdWxkQmUoJ3JlY3QxLndpZHRo
JywgJzEwMCcpOworc2hvdWxkQmUoJ3JlY3QxLmhlaWdodCcsICc1MCcpOworc2hvdWxkQmUoJ3Jl
Y3QxLnJpZ2h0JywgJzEwMCcpOworc2hvdWxkQmUoJ3JlY3QxLmJvdHRvbScsICcxMjUnKTsKK3Zh
ciBpbWFnZTEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2UxIikuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk7CitzaG91bGRCZSgnaW1hZ2UxLmxlZnQnLCAnMTAwJyk7CitzaG91bGRCZSgn
aW1hZ2UxLnRvcCcsICc3NScpOworc2hvdWxkQmUoJ2ltYWdlMS53aWR0aCcsICc1MCcpOworc2hv
dWxkQmUoJ2ltYWdlMS5oZWlnaHQnLCAnMjUnKTsKK3Nob3VsZEJlKCdpbWFnZTEucmlnaHQnLCAn
MTUwJyk7CitzaG91bGRCZSgnaW1hZ2UxLmJvdHRvbScsICcxMDAnKTsKK3ZhciB0ZXh0MSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0MSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwor
c2hvdWxkQmUoJ3RleHQxLmxlZnQgPT0gMTAwJywgJ3RydWUnKTsKK3Nob3VsZEJlKCd0ZXh0MS50
b3AgPj0gNzUnLCAndHJ1ZScpOworc2hvdWxkQmUoJ3RleHQxLndpZHRoID4gMCcsICd0cnVlJyk7
CitzaG91bGRCZSgndGV4dDEuaGVpZ2h0ID4gMCcsICd0cnVlJyk7CitzaG91bGRCZSgndGV4dDEu
cmlnaHQgPiAxMDAnLCAndHJ1ZScpOworc2hvdWxkQmUoJ3RleHQxLmJvdHRvbSA+IDc1JywgJ3Ry
dWUnKTsKK2RlYnVnKCIiKTsKKwordmFyIHN2ZzIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
c3ZnMiIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworc2hvdWxkQmUoJ3N2ZzIubGVmdCcsICc2
MDAnKTsKK3Nob3VsZEJlKCdzdmcyLnRvcCcsICc0MDAnKTsKK3Nob3VsZEJlKCdzdmcyLndpZHRo
JywgJzMwMCcpOworc2hvdWxkQmUoJ3N2ZzIuaGVpZ2h0JywgJzEwMCcpOworc2hvdWxkQmUoJ3N2
ZzIucmlnaHQnLCAnOTAwJyk7CitzaG91bGRCZSgnc3ZnMi5ib3R0b20nLCAnNTAwJyk7Cit2YXIg
cmVjdDIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjdDIiKS5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKTsKK3Nob3VsZEJlKCdyZWN0Mi5sZWZ0JywgJzYwMCcpOworc2hvdWxkQmUoJ3JlY3Qy
LnRvcCcsICc0MDAnKTsKK3Nob3VsZEJlKCdyZWN0Mi53aWR0aCcsICcyMDAnKTsKK3Nob3VsZEJl
KCdyZWN0Mi5oZWlnaHQnLCAnMTAwJyk7CitzaG91bGRCZSgncmVjdDIucmlnaHQnLCAnODAwJyk7
CitzaG91bGRCZSgncmVjdDIuYm90dG9tJywgJzUwMCcpOwordmFyIGltYWdlMiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJpbWFnZTIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKK3Nob3Vs
ZEJlKCdpbWFnZTIubGVmdCcsICc4MDAnKTsKK3Nob3VsZEJlKCdpbWFnZTIudG9wJywgJzQwMCcp
Oworc2hvdWxkQmUoJ2ltYWdlMi53aWR0aCcsICcxMDAnKTsKK3Nob3VsZEJlKCdpbWFnZTIuaGVp
Z2h0JywgJzUwJyk7CitzaG91bGRCZSgnaW1hZ2UyLnJpZ2h0JywgJzkwMCcpOworc2hvdWxkQmUo
J2ltYWdlMi5ib3R0b20nLCAnNDUwJyk7Cit2YXIgdGV4dDIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGV4dDIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKK3Nob3VsZEJlKCd0ZXh0Mi5s
ZWZ0ID09IDgwMCcsICd0cnVlJyk7CitzaG91bGRCZSgndGV4dDIudG9wID49IDQwMCcsICd0cnVl
Jyk7CitzaG91bGRCZSgndGV4dDIud2lkdGggPiAwJywgJ3RydWUnKTsKK3Nob3VsZEJlKCd0ZXh0
Mi5oZWlnaHQgPiAwJywgJ3RydWUnKTsKK3Nob3VsZEJlKCd0ZXh0Mi5yaWdodCA+IDgwMCcsICd0
cnVlJyk7CitzaG91bGRCZSgndGV4dDIuYm90dG9tID4gNDAwJywgJ3RydWUnKTsKK2RlYnVnKCIi
KTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwZWI4MjAxLi4zNzU3N2E4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEwLTEwLTA3
ICBDb3NtaW4gVHJ1dGEgIDxjdHJ1dGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBkb2Vz
IG5vdCB3b3JrIHdpdGggU1ZHIDx0ZXh0PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDY3NzUKKworICAgICAgICBEaXNwYXRjaGVkIHRoZSBjYWxscyBm
cm9tIEVsZW1lbnQ6OmdldEJvdW5kaW5nQ2xpZW50UmVjdCB0byBnZXRCQm94CisgICAgICAgIHRo
cm91Z2ggU1ZHRWxlbWVudDo6Ym91bmRpbmdCb3guCisgICAgICAgIFJlY29nbml6ZWQgU1ZHVGV4
dEVsZW1lbnQgaW4gYWRkaXRpb24gdG8gU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudAorICAgICAg
ICBhcyBhIGNsYXNzIHRoYXQgcHJvdmlkZXMgZ2V0QkJveC4KKyAgICAgICAgRml4ZWQgdGhlIHJl
c3VsdCBvZiB6b29taW5nOiBhZGp1c3RlZCB0aGUgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IHJlY3Rh
bmdsZQorICAgICAgICBmb3IgYWJzb2x1dGUgem9vbSwgZXZlbiBmb3IgU1ZHIGVsZW1lbnRzLgor
CisgICAgICAgIEFkZGl0aW9uYWwgY2xlYW51cCB0YXNrOgorICAgICAgICBSZW1vdmVkIHJlZHVu
ZGFudCBvdmVybG9hZHMgb2YgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQKKyAgICAgICAg
bWV0aG9kczogbmVhcmVzdFZpZXdwb3J0RWxlbWVudCwgZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQs
IGdldEJCb3guCisgICAgICAgIFRoZXNlIG1ldGhvZHMgYXJlIGFscmVhZHkgaW5oZXJpdGVkIGZy
b20gU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudC4KKworICAgICAgICBUZXN0OiBjc3MzL3pvb20t
Y29vcmRzLnhodG1sCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChFbGVt
ZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QpOiBVc2VkIFNWR0VsZW1lbnQ6OmJvdW5kaW5nQm94
LgorICAgICAgICBBZGp1c3RlZCBjb29yZGluYXRlcyBmb3IgYWJzb2x1dGUgem9vbSwgZm9yIGFs
bCBraW5kcyBvZiBlbGVtZW50cy4KKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5jcHA6CisgICAg
ICAgICogc3ZnL1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKFNWR0VsZW1lbnQ6OmJvdW5kaW5nQm94
KTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNw
cDoKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaDoKKyAgICAg
ICAgKFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjpuZWFyZXN0Vmlld3BvcnRFbGVtZW50
KTogUmVtb3ZlZC4KKyAgICAgICAgKFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjpmYXJ0
aGVzdFZpZXdwb3J0RWxlbWVudCk6IFJlbW92ZWQuCisgICAgICAgIChTVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudDo6Z2V0QkJveCk6IFJlbW92ZWQuCisKIDIwMTAtMTAtMDcgIEppYW4gTGkg
IDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGgu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCmluZGV4IDYwYTEwNjMuLjQ2ZDNjZTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC01MiwxMyArNTIsMTMg
QEAKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNp
bmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKLSNpbmNsdWRlICJTVkdTdHlsZWRMb2NhdGFibGVFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIK
ICNpbmNsdWRlICJYTUxOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAog
I2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR05h
bWVzLmgiCiAjZW5kaWYKIApAQCAtNDgyLDE1ICs0ODIsMTIgQEAgUGFzc1JlZlB0cjxDbGllbnRS
ZWN0PiBFbGVtZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBjb25zdAogCiAgICAgVmVjdG9y
PEZsb2F0UXVhZD4gcXVhZHM7CiAjaWYgRU5BQkxFKFNWRykKLSAgICBpZiAoaXNTVkdFbGVtZW50
KCkpIHsKKyAgICBpZiAoaXNTVkdFbGVtZW50KCkgJiYgcmVuZGVyZXIoKSkgewogICAgICAgICAv
LyBHZXQgdGhlIGJvdW5kaW5nIHJlY3RhbmdsZSBmcm9tIHRoZSBTVkcgbW9kZWwuCiAgICAgICAg
IGNvbnN0IFNWR0VsZW1lbnQqIHN2Z0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxjb25zdCBTVkdFbGVt
ZW50Kj4odGhpcyk7Ci0gICAgICAgIGlmIChzdmdFbGVtZW50LT5pc1N0eWxlZExvY2F0YWJsZSgp
KSB7Ci0gICAgICAgICAgICBpZiAocmVuZGVyZXIoKSkgewotICAgICAgICAgICAgICAgIGNvbnN0
IEZsb2F0UmVjdCYgbG9jYWxSZWN0ID0gc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHU3R5bGVkTG9jYXRh
YmxlRWxlbWVudCo+KHN2Z0VsZW1lbnQpLT5nZXRCQm94KCk7Ci0gICAgICAgICAgICAgICAgcXVh
ZHMuYXBwZW5kKHJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQobG9jYWxSZWN0KSk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICAgICAgRmxvYXRSZWN0IGxvY2FsUmVjdDsKKyAg
ICAgICAgaWYgKHN2Z0VsZW1lbnQtPmJvdW5kaW5nQm94KGxvY2FsUmVjdCkpCisgICAgICAgICAg
ICBxdWFkcy5hcHBlbmQocmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChsb2NhbFJlY3Qp
KTsKICAgICB9IGVsc2UKICNlbmRpZgogICAgIHsKQEAgLTUxMSw4ICs1MDgsOCBAQCBQYXNzUmVm
UHRyPENsaWVudFJlY3Q+IEVsZW1lbnQ6OmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGNvbnN0CiAg
ICAgICAgIHJlc3VsdC5tb3ZlKC12aXNpYmxlQ29udGVudFJlY3QueCgpLCAtdmlzaWJsZUNvbnRl
bnRSZWN0LnkoKSk7CiAgICAgfQogCi0gICAgaWYgKHJlbmRlckJveE1vZGVsT2JqZWN0KCkpCi0g
ICAgICAgIGFkanVzdEludFJlY3RGb3JBYnNvbHV0ZVpvb20ocmVzdWx0LCByZW5kZXJCb3hNb2Rl
bE9iamVjdCgpKTsKKyAgICBBU1NFUlQocmVuZGVyZXIoKSk7CisgICAgYWRqdXN0SW50UmVjdEZv
ckFic29sdXRlWm9vbShyZXN1bHQsIHJlbmRlcmVyKCkpOwogCiAgICAgcmV0dXJuIENsaWVudFJl
Y3Q6OmNyZWF0ZShyZXN1bHQpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHRWxlbWVu
dC5jcHAgYi9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCAxYjE5ZjI1Li41MDc2OGNl
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL3N2
Zy9TVkdFbGVtZW50LmNwcApAQCAtNDIsNiArNDIsOCBAQAogI2luY2x1ZGUgIlNWR0VsZW1lbnRS
YXJlRGF0YS5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVu
dC5oIgorI2luY2x1ZGUgIlNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJT
VkdUZXh0RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1VSSVJlZmVyZW5jZS5oIgogI2luY2x1ZGUg
IlNWR1VzZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTY3JpcHRFdmVudExpc3RlbmVyLmgiCkBAIC0x
NzksNiArMTgxLDE5IEBAIGNvbnN0IEhhc2hTZXQ8U1ZHRWxlbWVudEluc3RhbmNlKj4mIFNWR0Vs
ZW1lbnQ6Omluc3RhbmNlc0ZvckVsZW1lbnQoKSBjb25zdAogICAgIHJldHVybiByYXJlU1ZHRGF0
YSgpLT5lbGVtZW50SW5zdGFuY2VzKCk7CiB9CiAKK2Jvb2wgU1ZHRWxlbWVudDo6Ym91bmRpbmdC
b3goRmxvYXRSZWN0JiByZWN0LCBTVkdMb2NhdGFibGU6OlN0eWxlVXBkYXRlU3RyYXRlZ3kgc3R5
bGVVcGRhdGVTdHJhdGVneSkgY29uc3QKK3sKKyAgICBpZiAoaXNTdHlsZWRMb2NhdGFibGUoKSkg
eworICAgICAgICByZWN0ID0gc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHU3R5bGVkTG9jYXRhYmxlRWxl
bWVudCo+KHRoaXMpLT5nZXRCQm94KHN0eWxlVXBkYXRlU3RyYXRlZ3kpOworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisgICAgaWYgKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRleHRUYWcpKSB7
CisgICAgICAgIHJlY3QgPSBzdGF0aWNfY2FzdDxjb25zdCBTVkdUZXh0RWxlbWVudCo+KHRoaXMp
LT5nZXRCQm94KHN0eWxlVXBkYXRlU3RyYXRlZ3kpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFNWR0VsZW1lbnQ6OnNldEN1cnNvckVs
ZW1lbnQoU1ZHQ3Vyc29yRWxlbWVudCogY3Vyc29yRWxlbWVudCkKIHsKICAgICBlbnN1cmVSYXJl
U1ZHRGF0YSgpLT5zZXRDdXJzb3JFbGVtZW50KGN1cnNvckVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oIGIvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCmluZGV4
IGZiMjgyNzkuLjNlNGMyOTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaAor
KysgYi9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2lmIEVO
QUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgiCisjaW5jbHVkZSAi
U1ZHTG9jYXRhYmxlLmgiCiAjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC03MSw2ICs3Miw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAg
ICBjb25zdCBIYXNoU2V0PFNWR0VsZW1lbnRJbnN0YW5jZSo+JiBpbnN0YW5jZXNGb3JFbGVtZW50
KCkgY29uc3Q7CiAKKyAgICAgICAgYm9vbCBib3VuZGluZ0JveChGbG9hdFJlY3QmLCBTVkdMb2Nh
dGFibGU6OlN0eWxlVXBkYXRlU3RyYXRlZ3kgPSBTVkdMb2NhdGFibGU6OkFsbG93U3R5bGVVcGRh
dGUpIGNvbnN0OworCiAgICAgICAgIHZvaWQgc2V0Q3Vyc29yRWxlbWVudChTVkdDdXJzb3JFbGVt
ZW50Kik7CiAgICAgICAgIHZvaWQgc2V0Q3Vyc29ySW1hZ2VWYWx1ZShDU1NDdXJzb3JJbWFnZVZh
bHVlKik7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVF
bGVtZW50LmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNw
cAppbmRleCBiOTA4ODdhLi5jMDBlNzVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdTdHls
ZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJh
bnNmb3JtYWJsZUVsZW1lbnQuY3BwCkBAIC04NiwyMSArODYsNiBAQCBib29sIFNWR1N0eWxlZFRy
YW5zZm9ybWFibGVFbGVtZW50Ojppc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJOYQogICAgICAgICAgICBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50Ojppc0tub3duQXR0
cmlidXRlKGF0dHJOYW1lKTsKIH0KIAotU1ZHRWxlbWVudCogU1ZHU3R5bGVkVHJhbnNmb3JtYWJs
ZUVsZW1lbnQ6Om5lYXJlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdAotewotICAgIHJldHVybiBT
VkdUcmFuc2Zvcm1hYmxlOjpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KHRoaXMpOwotfQotCi1TVkdF
bGVtZW50KiBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6ZmFydGhlc3RWaWV3cG9ydEVs
ZW1lbnQoKSBjb25zdAotewotICAgIHJldHVybiBTVkdUcmFuc2Zvcm1hYmxlOjpmYXJ0aGVzdFZp
ZXdwb3J0RWxlbWVudCh0aGlzKTsKLX0KLQotRmxvYXRSZWN0IFNWR1N0eWxlZFRyYW5zZm9ybWFi
bGVFbGVtZW50OjpnZXRCQm94KFN0eWxlVXBkYXRlU3RyYXRlZ3kgc3R5bGVVcGRhdGVTdHJhdGVn
eSkgY29uc3QKLXsKLSAgICByZXR1cm4gU1ZHVHJhbnNmb3JtYWJsZTo6Z2V0QkJveCh0aGlzLCBz
dHlsZVVwZGF0ZVN0cmF0ZWd5KTsKLX0KLQogUmVuZGVyT2JqZWN0KiBTVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJT
dHlsZSopCiB7CiAgICAgLy8gQnkgZGVmYXVsdCwgYW55IHN1YmNsYXNzIGlzIGV4cGVjdGVkIHRv
IGRvIHBhdGgtYmFzZWQgZHJhd2luZwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHU3R5bGVk
VHJhbnNmb3JtYWJsZUVsZW1lbnQuaCBiL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFi
bGVFbGVtZW50LmgKaW5kZXggNzY2ODg4OS4uZmVmN2U3OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9z
dmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaAorKysgYi9XZWJDb3JlL3N2Zy9TVkdT
dHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5oCkBAIC0zNSwxNSArMzUsMTEgQEAgY2xhc3MgU1ZH
U3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQgOiBwdWJsaWMgU1ZHU3R5bGVkTG9jYXRhYmxlRWxl
bWVudCwKIHB1YmxpYzoKICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRDVE0oU3R5bGVV
cGRhdGVTdHJhdGVneSA9IEFsbG93U3R5bGVVcGRhdGUpIGNvbnN0OwogICAgIHZpcnR1YWwgQWZm
aW5lVHJhbnNmb3JtIGdldFNjcmVlbkNUTShTdHlsZVVwZGF0ZVN0cmF0ZWd5ID0gQWxsb3dTdHls
ZVVwZGF0ZSkgY29uc3Q7Ci0gICAgdmlydHVhbCBTVkdFbGVtZW50KiBuZWFyZXN0Vmlld3BvcnRF
bGVtZW50KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBTVkdFbGVtZW50KiBmYXJ0aGVzdFZpZXdwb3J0
RWxlbWVudCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxDb29y
ZGluYXRlU3BhY2VUcmFuc2Zvcm0oU1ZHTG9jYXRhYmxlOjpDVE1TY29wZSBtb2RlKSBjb25zdCB7
IHJldHVybiBTVkdUcmFuc2Zvcm1hYmxlOjpsb2NhbENvb3JkaW5hdGVTcGFjZVRyYW5zZm9ybSht
b2RlKTsgfQogICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGFuaW1hdGVkTG9jYWxUcmFuc2Zv
cm0oKSBjb25zdDsKICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSogc3VwcGxlbWVudGFsVHJh
bnNmb3JtKCk7CiAKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCBnZXRCQm94KFN0eWxlVXBkYXRlU3Ry
YXRlZ3kgPSBBbGxvd1N0eWxlVXBkYXRlKSBjb25zdDsKLQogICAgIGJvb2wgaXNLbm93bkF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKICAgICAvLyAiYmFzZSBjbGFzcyIgbWV0aG9k
cyBmb3IgYWxsIHRoZSBlbGVtZW50cyB3aGljaCByZW5kZXIgYXMgcGF0aHMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70263</attachid>
            <date>2010-10-08 09:43:34 -0700</date>
            <delta_ts>2010-10-15 18:34:55 -0700</delta_ts>
            <desc>Fix and layout test</desc>
            <filename>wk46775.diff.submit</filename>
            <type>text/plain</type>
            <size>14751</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjM2FmYjczLi43ZjRhYTdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAt
MDcgIENvc21pbiBUcnV0YSAgPGN0cnV0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGRv
ZXMgbm90IHdvcmsgd2l0aCBTVkcgPHRleHQ+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00Njc3NQorCisgICAgICAgIEFkZGVkIGNvb3JkaW5hdGUgY2hl
Y2tzIG9uIHZhcmlvdXMgem9vbWVkLWluIGFuZCB6b29tZWQtb3V0CisgICAgICAgIFhIVE1MIGFu
ZCBTVkcgZWxlbWVudHMsIHVzaW5nIGdldEJvdW5kaW5nQ2xpZW50UmVjdC4KKworICAgICAgICAq
IGNzczMvem9vbS1jb29yZHMueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvem9vbS1jb29y
ZHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMC0xMC0wNyAgSmlhbiBMaSAgPGppYW5saUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NzczMvem9vbS1jb29yZHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY3NzMy96b29tLWNvb3Jkcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNzE2MjM5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMv
em9vbS1jb29yZHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzggQEAKK1Rlc3QKK1Rlc3QKK1Ro
aXMgdGVzdCBjaGVja3MgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgb24gem9vbWVkIEhUTUwgYW5k
IFNWRyBlbGVtZW50cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK0NoZWNraW5nIEhU
TUwgZWxlbWVudHM6CisKK1BBU1MgZGl2MS5sZWZ0IGlzIDAKK1BBU1MgZGl2MS50b3AgaXMgMAor
UEFTUyBkaXYxLndpZHRoIGlzIDEwMAorUEFTUyBkaXYxLmhlaWdodCBpcyA1MAorUEFTUyBkaXYx
LnJpZ2h0IGlzIDEwMAorUEFTUyBkaXYxLmJvdHRvbSBpcyA1MAorCitQQVNTIGRpdjIubGVmdCBp
cyAwCitQQVNTIGRpdjIudG9wIGlzIDIwMAorUEFTUyBkaXYyLndpZHRoIGlzIDIwMAorUEFTUyBk
aXYyLmhlaWdodCBpcyAxMDAKK1BBU1MgZGl2Mi5yaWdodCBpcyAyMDAKK1BBU1MgZGl2Mi5ib3R0
b20gaXMgMzAwCisKK0NoZWNraW5nIFNWRyBlbGVtZW50czoKKworUEFTUyBzdmcxLmxlZnQgaXMg
MAorUEFTUyBzdmcxLnRvcCBpcyA3NQorUEFTUyBzdmcxLndpZHRoIGlzIDE1MAorUEFTUyBzdmcx
LmhlaWdodCBpcyA1MAorUEFTUyBzdmcxLnJpZ2h0IGlzIDE1MAorUEFTUyBzdmcxLmJvdHRvbSBp
cyAxMjUKK1BBU1MgcmVjdDEubGVmdCBpcyAwCitQQVNTIHJlY3QxLnRvcCBpcyA3NQorUEFTUyBy
ZWN0MS53aWR0aCBpcyAxMDAKK1BBU1MgcmVjdDEuaGVpZ2h0IGlzIDUwCitQQVNTIHJlY3QxLnJp
Z2h0IGlzIDEwMAorUEFTUyByZWN0MS5ib3R0b20gaXMgMTI1CitQQVNTIGltYWdlMS5sZWZ0IGlz
IDEwMAorUEFTUyBpbWFnZTEudG9wIGlzIDc1CitQQVNTIGltYWdlMS53aWR0aCBpcyA1MAorUEFT
UyBpbWFnZTEuaGVpZ2h0IGlzIDI1CitQQVNTIGltYWdlMS5yaWdodCBpcyAxNTAKK1BBU1MgaW1h
Z2UxLmJvdHRvbSBpcyAxMDAKK1BBU1MgdGV4dDEubGVmdCA9PSAxMDAgaXMgdHJ1ZQorUEFTUyB0
ZXh0MS50b3AgPj0gNzUgaXMgdHJ1ZQorUEFTUyB0ZXh0MS53aWR0aCA+IDAgaXMgdHJ1ZQorUEFT
UyB0ZXh0MS5oZWlnaHQgPiAwIGlzIHRydWUKK1BBU1MgdGV4dDEucmlnaHQgPiAxMDAgaXMgdHJ1
ZQorUEFTUyB0ZXh0MS5ib3R0b20gPiA3NSBpcyB0cnVlCisKK1BBU1Mgc3ZnMi5sZWZ0IGlzIDYw
MAorUEFTUyBzdmcyLnRvcCBpcyA0MDAKK1BBU1Mgc3ZnMi53aWR0aCBpcyAzMDAKK1BBU1Mgc3Zn
Mi5oZWlnaHQgaXMgMTAwCitQQVNTIHN2ZzIucmlnaHQgaXMgOTAwCitQQVNTIHN2ZzIuYm90dG9t
IGlzIDUwMAorUEFTUyByZWN0Mi5sZWZ0IGlzIDYwMAorUEFTUyByZWN0Mi50b3AgaXMgNDAwCitQ
QVNTIHJlY3QyLndpZHRoIGlzIDIwMAorUEFTUyByZWN0Mi5oZWlnaHQgaXMgMTAwCitQQVNTIHJl
Y3QyLnJpZ2h0IGlzIDgwMAorUEFTUyByZWN0Mi5ib3R0b20gaXMgNTAwCitQQVNTIGltYWdlMi5s
ZWZ0IGlzIDgwMAorUEFTUyBpbWFnZTIudG9wIGlzIDQwMAorUEFTUyBpbWFnZTIud2lkdGggaXMg
MTAwCitQQVNTIGltYWdlMi5oZWlnaHQgaXMgNTAKK1BBU1MgaW1hZ2UyLnJpZ2h0IGlzIDkwMAor
UEFTUyBpbWFnZTIuYm90dG9tIGlzIDQ1MAorUEFTUyB0ZXh0Mi5sZWZ0ID09IDgwMCBpcyB0cnVl
CitQQVNTIHRleHQyLnRvcCA+PSA0MDAgaXMgdHJ1ZQorUEFTUyB0ZXh0Mi53aWR0aCA+IDAgaXMg
dHJ1ZQorUEFTUyB0ZXh0Mi5oZWlnaHQgPiAwIGlzIHRydWUKK1BBU1MgdGV4dDIucmlnaHQgPiA4
MDAgaXMgdHJ1ZQorUEFTUyB0ZXh0Mi5ib3R0b20gPiA0MDAgaXMgdHJ1ZQorCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3NzMy96b29tLWNvb3Jkcy54aHRtbCBiL0xheW91dFRlc3RzL2NzczMvem9vbS1j
b29yZHMueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDFmNmE5ZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvem9vbS1jb29yZHMueGh0bWwKQEAg
LTAsMCArMSwxMjYgQEAKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiLz4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgYm9keSB7IG1hcmdpbjow
cHg7IGJvcmRlcjowcHg7IHBhZGRpbmc6MHB4OyB9CisgICAgI2RpdjEsICNzdmcxIHsgem9vbToy
MDAlOyB9CisgICAgI2RpdjIsICNzdmcyIHsgem9vbTo1MCU7IH0KKzwvc3R5bGU+Cis8c2NyaXB0
IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+CisKKzxkaXYgaWQ9ImRpdjEiIHN0eWxlPSJ3aWR0aDoxMDBweDtoZWlnaHQ6
NTBweDtiYWNrZ3JvdW5kLWNvbG9yOmJsdWU7Ij48L2Rpdj4KKzxkaXYgaWQ9ImRpdjIiIHN0eWxl
PSJ3aWR0aDoyMDBweDtoZWlnaHQ6MTAwcHg7YmFja2dyb3VuZC1jb2xvcjpncmVlbjsiPjwvZGl2
PgorPHN2ZyBpZD0ic3ZnMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAg
ICB3aWR0aD0iMTUwcHgiIGhlaWdodD0iNTBweCIgdmlld0JveD0iMCAwIDE1MCAxMDAiCisgICAg
IHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgorICA8cmVjdCBpZD0icmVjdDEiIHg9IjAiIHk9
IjAiIHdpZHRoPSIxMDBweCIgaGVpZ2h0PSIxMDBweCIgZmlsbD0ieWVsbG93IiAvPgorICA8aW1h
Z2UgaWQ9ImltYWdlMSIgeD0iMTAwcHgiIHk9IjAiIHdpZHRoPSI1MHB4IiBoZWlnaHQ9IjUwcHgi
IHhsaW5rOmhyZWY9Ii4uL3N2Zy9kb20vcmVzb3VyY2VzL21hZ25pZnkucG5nIiAvPgorICA8dGV4
dCBpZD0idGV4dDEiIHg9IjEwMHB4IiB5PSI3NXB4Ij5UZXN0PC90ZXh0PgorPC9zdmc+PHN2ZyBp
ZD0ic3ZnMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgICB3aWR0aD0i
MzAwcHgiIGhlaWdodD0iMTAwcHgiIHZpZXdCb3g9IjAgMCAxNTAgMTAwIgorICAgICBwcmVzZXJ2
ZUFzcGVjdFJhdGlvPSJub25lIj4KKyAgPHJlY3QgaWQ9InJlY3QyIiB4PSIwIiB5PSIwIiB3aWR0
aD0iMTAwcHgiIGhlaWdodD0iMTAwcHgiIGZpbGw9Im9yYW5nZSIgLz4KKyAgPGltYWdlIGlkPSJp
bWFnZTIiIHg9IjEwMHB4IiB5PSIwIiB3aWR0aD0iNTBweCIgaGVpZ2h0PSI1MHB4IiB4bGluazpo
cmVmPSIuLi9zdmcvZG9tL3Jlc291cmNlcy9tYWduaWZ5LnBuZyIgLz4KKyAgPHRleHQgaWQ9InRl
eHQyIiB4PSIxMDBweCIgeT0iNzVweCI+VGVzdDwvdGV4dD4KKzwvc3ZnPgorCis8ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4K
KworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkg
b24gem9vbWVkIEhUTUwgYW5kIFNWRyBlbGVtZW50cyIpOworCitkZWJ1ZygiQ2hlY2tpbmcgSFRN
TCBlbGVtZW50czoiKTsKK2RlYnVnKCIiKTsKKwordmFyIGRpdjEgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZGl2MSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworc2hvdWxkQmUoJ2RpdjEu
bGVmdCcsICcwJyk7CitzaG91bGRCZSgnZGl2MS50b3AnLCAnMCcpOworc2hvdWxkQmUoJ2RpdjEu
d2lkdGgnLCAnMTAwJyk7CitzaG91bGRCZSgnZGl2MS5oZWlnaHQnLCAnNTAnKTsKK3Nob3VsZEJl
KCdkaXYxLnJpZ2h0JywgJzEwMCcpOworc2hvdWxkQmUoJ2RpdjEuYm90dG9tJywgJzUwJyk7Citk
ZWJ1ZygiIik7CisKK3ZhciBkaXYyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjIiKS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKK3Nob3VsZEJlKCdkaXYyLmxlZnQnLCAnMCcpOworc2hv
dWxkQmUoJ2RpdjIudG9wJywgJzIwMCcpOworc2hvdWxkQmUoJ2RpdjIud2lkdGgnLCAnMjAwJyk7
CitzaG91bGRCZSgnZGl2Mi5oZWlnaHQnLCAnMTAwJyk7CitzaG91bGRCZSgnZGl2Mi5yaWdodCcs
ICcyMDAnKTsKK3Nob3VsZEJlKCdkaXYyLmJvdHRvbScsICczMDAnKTsKK2RlYnVnKCIiKTsKKwor
ZGVidWcoIkNoZWNraW5nIFNWRyBlbGVtZW50czoiKTsKK2RlYnVnKCIiKTsKKwordmFyIHN2ZzEg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3ZnMSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
Oworc2hvdWxkQmUoJ3N2ZzEubGVmdCcsICcwJyk7CitzaG91bGRCZSgnc3ZnMS50b3AnLCAnNzUn
KTsKK3Nob3VsZEJlKCdzdmcxLndpZHRoJywgJzE1MCcpOworc2hvdWxkQmUoJ3N2ZzEuaGVpZ2h0
JywgJzUwJyk7CitzaG91bGRCZSgnc3ZnMS5yaWdodCcsICcxNTAnKTsKK3Nob3VsZEJlKCdzdmcx
LmJvdHRvbScsICcxMjUnKTsKK3ZhciByZWN0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
ZWN0MSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworc2hvdWxkQmUoJ3JlY3QxLmxlZnQnLCAn
MCcpOworc2hvdWxkQmUoJ3JlY3QxLnRvcCcsICc3NScpOworc2hvdWxkQmUoJ3JlY3QxLndpZHRo
JywgJzEwMCcpOworc2hvdWxkQmUoJ3JlY3QxLmhlaWdodCcsICc1MCcpOworc2hvdWxkQmUoJ3Jl
Y3QxLnJpZ2h0JywgJzEwMCcpOworc2hvdWxkQmUoJ3JlY3QxLmJvdHRvbScsICcxMjUnKTsKK3Zh
ciBpbWFnZTEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2UxIikuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk7CitzaG91bGRCZSgnaW1hZ2UxLmxlZnQnLCAnMTAwJyk7CitzaG91bGRCZSgn
aW1hZ2UxLnRvcCcsICc3NScpOworc2hvdWxkQmUoJ2ltYWdlMS53aWR0aCcsICc1MCcpOworc2hv
dWxkQmUoJ2ltYWdlMS5oZWlnaHQnLCAnMjUnKTsKK3Nob3VsZEJlKCdpbWFnZTEucmlnaHQnLCAn
MTUwJyk7CitzaG91bGRCZSgnaW1hZ2UxLmJvdHRvbScsICcxMDAnKTsKK3ZhciB0ZXh0MSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0MSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwor
c2hvdWxkQmUoJ3RleHQxLmxlZnQgPT0gMTAwJywgJ3RydWUnKTsKK3Nob3VsZEJlKCd0ZXh0MS50
b3AgPj0gNzUnLCAndHJ1ZScpOworc2hvdWxkQmUoJ3RleHQxLndpZHRoID4gMCcsICd0cnVlJyk7
CitzaG91bGRCZSgndGV4dDEuaGVpZ2h0ID4gMCcsICd0cnVlJyk7CitzaG91bGRCZSgndGV4dDEu
cmlnaHQgPiAxMDAnLCAndHJ1ZScpOworc2hvdWxkQmUoJ3RleHQxLmJvdHRvbSA+IDc1JywgJ3Ry
dWUnKTsKK2RlYnVnKCIiKTsKKwordmFyIHN2ZzIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
c3ZnMiIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworc2hvdWxkQmUoJ3N2ZzIubGVmdCcsICc2
MDAnKTsKK3Nob3VsZEJlKCdzdmcyLnRvcCcsICc0MDAnKTsKK3Nob3VsZEJlKCdzdmcyLndpZHRo
JywgJzMwMCcpOworc2hvdWxkQmUoJ3N2ZzIuaGVpZ2h0JywgJzEwMCcpOworc2hvdWxkQmUoJ3N2
ZzIucmlnaHQnLCAnOTAwJyk7CitzaG91bGRCZSgnc3ZnMi5ib3R0b20nLCAnNTAwJyk7Cit2YXIg
cmVjdDIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjdDIiKS5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKTsKK3Nob3VsZEJlKCdyZWN0Mi5sZWZ0JywgJzYwMCcpOworc2hvdWxkQmUoJ3JlY3Qy
LnRvcCcsICc0MDAnKTsKK3Nob3VsZEJlKCdyZWN0Mi53aWR0aCcsICcyMDAnKTsKK3Nob3VsZEJl
KCdyZWN0Mi5oZWlnaHQnLCAnMTAwJyk7CitzaG91bGRCZSgncmVjdDIucmlnaHQnLCAnODAwJyk7
CitzaG91bGRCZSgncmVjdDIuYm90dG9tJywgJzUwMCcpOwordmFyIGltYWdlMiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJpbWFnZTIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKK3Nob3Vs
ZEJlKCdpbWFnZTIubGVmdCcsICc4MDAnKTsKK3Nob3VsZEJlKCdpbWFnZTIudG9wJywgJzQwMCcp
Oworc2hvdWxkQmUoJ2ltYWdlMi53aWR0aCcsICcxMDAnKTsKK3Nob3VsZEJlKCdpbWFnZTIuaGVp
Z2h0JywgJzUwJyk7CitzaG91bGRCZSgnaW1hZ2UyLnJpZ2h0JywgJzkwMCcpOworc2hvdWxkQmUo
J2ltYWdlMi5ib3R0b20nLCAnNDUwJyk7Cit2YXIgdGV4dDIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGV4dDIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKK3Nob3VsZEJlKCd0ZXh0Mi5s
ZWZ0ID09IDgwMCcsICd0cnVlJyk7CitzaG91bGRCZSgndGV4dDIudG9wID49IDQwMCcsICd0cnVl
Jyk7CitzaG91bGRCZSgndGV4dDIud2lkdGggPiAwJywgJ3RydWUnKTsKK3Nob3VsZEJlKCd0ZXh0
Mi5oZWlnaHQgPiAwJywgJ3RydWUnKTsKK3Nob3VsZEJlKCd0ZXh0Mi5yaWdodCA+IDgwMCcsICd0
cnVlJyk7CitzaG91bGRCZSgndGV4dDIuYm90dG9tID4gNDAwJywgJ3RydWUnKTsKK2RlYnVnKCIi
KTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwZWI4MjAxLi41ZWQyNzgwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEwLTEwLTA3
ICBDb3NtaW4gVHJ1dGEgIDxjdHJ1dGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBkb2Vz
IG5vdCB3b3JrIHdpdGggU1ZHIDx0ZXh0PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDY3NzUKKworICAgICAgICBEaXNwYXRjaGVkIHRoZSBjYWxscyBm
cm9tIEVsZW1lbnQ6OmdldEJvdW5kaW5nQ2xpZW50UmVjdCB0byBnZXRCQm94CisgICAgICAgIHRo
cm91Z2ggU1ZHRWxlbWVudDo6Ym91bmRpbmdCb3guCisgICAgICAgIFJlY29nbml6ZWQgU1ZHVGV4
dEVsZW1lbnQgaW4gYWRkaXRpb24gdG8gU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudAorICAgICAg
ICBhcyBhIGNsYXNzIHRoYXQgcHJvdmlkZXMgZ2V0QkJveC4KKyAgICAgICAgRml4ZWQgdGhlIHJl
c3VsdCBvZiB6b29taW5nOiBhZGp1c3RlZCB0aGUgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IHJlY3Rh
bmdsZQorICAgICAgICBmb3IgYWJzb2x1dGUgem9vbSwgZXZlbiBmb3IgU1ZHIGVsZW1lbnRzLgor
CisgICAgICAgIEFkZGl0aW9uYWwgY2xlYW51cCB0YXNrOgorICAgICAgICBSZW1vdmVkIHJlZHVu
ZGFudCBvdmVybG9hZHMgb2YgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQKKyAgICAgICAg
bWV0aG9kczogbmVhcmVzdFZpZXdwb3J0RWxlbWVudCwgZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQs
IGdldEJCb3guCisgICAgICAgIFRoZXNlIG1ldGhvZHMgYXJlIGFscmVhZHkgaW5oZXJpdGVkIGZy
b20gU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudC4KKworICAgICAgICBUZXN0OiBjc3MzL3pvb20t
Y29vcmRzLnhodG1sCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChFbGVt
ZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QpOiBVc2VkIFNWR0VsZW1lbnQ6OmJvdW5kaW5nQm94
LgorICAgICAgICBBZGp1c3RlZCBjb29yZGluYXRlcyBmb3IgYWJzb2x1dGUgem9vbSwgZm9yIGFs
bCBraW5kcyBvZiBlbGVtZW50cy4KKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5jcHA6CisgICAg
ICAgICogc3ZnL1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKFNWR0VsZW1lbnQ6OmJvdW5kaW5nQm94
KTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNw
cDoKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaDoKKyAgICAg
ICAgKFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjpuZWFyZXN0Vmlld3BvcnRFbGVtZW50
KTogUmVtb3ZlZC4KKyAgICAgICAgKFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjpmYXJ0
aGVzdFZpZXdwb3J0RWxlbWVudCk6IFJlbW92ZWQuCisgICAgICAgIChTVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudDo6Z2V0QkJveCk6IFJlbW92ZWQuCisKIDIwMTAtMTAtMDcgIEppYW4gTGkg
IDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGgu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCmluZGV4IDYwYTEwNjMuLjQ2ZDNjZTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC01MiwxMyArNTIsMTMg
QEAKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNp
bmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKLSNpbmNsdWRlICJTVkdTdHlsZWRMb2NhdGFibGVFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIK
ICNpbmNsdWRlICJYTUxOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAog
I2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR05h
bWVzLmgiCiAjZW5kaWYKIApAQCAtNDgyLDE1ICs0ODIsMTIgQEAgUGFzc1JlZlB0cjxDbGllbnRS
ZWN0PiBFbGVtZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBjb25zdAogCiAgICAgVmVjdG9y
PEZsb2F0UXVhZD4gcXVhZHM7CiAjaWYgRU5BQkxFKFNWRykKLSAgICBpZiAoaXNTVkdFbGVtZW50
KCkpIHsKKyAgICBpZiAoaXNTVkdFbGVtZW50KCkgJiYgcmVuZGVyZXIoKSkgewogICAgICAgICAv
LyBHZXQgdGhlIGJvdW5kaW5nIHJlY3RhbmdsZSBmcm9tIHRoZSBTVkcgbW9kZWwuCiAgICAgICAg
IGNvbnN0IFNWR0VsZW1lbnQqIHN2Z0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxjb25zdCBTVkdFbGVt
ZW50Kj4odGhpcyk7Ci0gICAgICAgIGlmIChzdmdFbGVtZW50LT5pc1N0eWxlZExvY2F0YWJsZSgp
KSB7Ci0gICAgICAgICAgICBpZiAocmVuZGVyZXIoKSkgewotICAgICAgICAgICAgICAgIGNvbnN0
IEZsb2F0UmVjdCYgbG9jYWxSZWN0ID0gc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHU3R5bGVkTG9jYXRh
YmxlRWxlbWVudCo+KHN2Z0VsZW1lbnQpLT5nZXRCQm94KCk7Ci0gICAgICAgICAgICAgICAgcXVh
ZHMuYXBwZW5kKHJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQobG9jYWxSZWN0KSk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICAgICAgRmxvYXRSZWN0IGxvY2FsUmVjdDsKKyAg
ICAgICAgaWYgKHN2Z0VsZW1lbnQtPmJvdW5kaW5nQm94KGxvY2FsUmVjdCkpCisgICAgICAgICAg
ICBxdWFkcy5hcHBlbmQocmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChsb2NhbFJlY3Qp
KTsKICAgICB9IGVsc2UKICNlbmRpZgogICAgIHsKQEAgLTUxMSw4ICs1MDgsOCBAQCBQYXNzUmVm
UHRyPENsaWVudFJlY3Q+IEVsZW1lbnQ6OmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGNvbnN0CiAg
ICAgICAgIHJlc3VsdC5tb3ZlKC12aXNpYmxlQ29udGVudFJlY3QueCgpLCAtdmlzaWJsZUNvbnRl
bnRSZWN0LnkoKSk7CiAgICAgfQogCi0gICAgaWYgKHJlbmRlckJveE1vZGVsT2JqZWN0KCkpCi0g
ICAgICAgIGFkanVzdEludFJlY3RGb3JBYnNvbHV0ZVpvb20ocmVzdWx0LCByZW5kZXJCb3hNb2Rl
bE9iamVjdCgpKTsKKyAgICBBU1NFUlQocmVuZGVyZXIoKSk7CisgICAgYWRqdXN0SW50UmVjdEZv
ckFic29sdXRlWm9vbShyZXN1bHQsIHJlbmRlcmVyKCkpOwogCiAgICAgcmV0dXJuIENsaWVudFJl
Y3Q6OmNyZWF0ZShyZXN1bHQpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHRWxlbWVu
dC5jcHAgYi9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCAxYjE5ZjI1Li41MDc2OGNl
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL3N2
Zy9TVkdFbGVtZW50LmNwcApAQCAtNDIsNiArNDIsOCBAQAogI2luY2x1ZGUgIlNWR0VsZW1lbnRS
YXJlRGF0YS5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVu
dC5oIgorI2luY2x1ZGUgIlNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJT
VkdUZXh0RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1VSSVJlZmVyZW5jZS5oIgogI2luY2x1ZGUg
IlNWR1VzZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTY3JpcHRFdmVudExpc3RlbmVyLmgiCkBAIC0x
NzksNiArMTgxLDE5IEBAIGNvbnN0IEhhc2hTZXQ8U1ZHRWxlbWVudEluc3RhbmNlKj4mIFNWR0Vs
ZW1lbnQ6Omluc3RhbmNlc0ZvckVsZW1lbnQoKSBjb25zdAogICAgIHJldHVybiByYXJlU1ZHRGF0
YSgpLT5lbGVtZW50SW5zdGFuY2VzKCk7CiB9CiAKK2Jvb2wgU1ZHRWxlbWVudDo6Ym91bmRpbmdC
b3goRmxvYXRSZWN0JiByZWN0LCBTVkdMb2NhdGFibGU6OlN0eWxlVXBkYXRlU3RyYXRlZ3kgc3R5
bGVVcGRhdGVTdHJhdGVneSkgY29uc3QKK3sKKyAgICBpZiAoaXNTdHlsZWRMb2NhdGFibGUoKSkg
eworICAgICAgICByZWN0ID0gc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHU3R5bGVkTG9jYXRhYmxlRWxl
bWVudCo+KHRoaXMpLT5nZXRCQm94KHN0eWxlVXBkYXRlU3RyYXRlZ3kpOworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisgICAgaWYgKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRleHRUYWcpKSB7
CisgICAgICAgIHJlY3QgPSBzdGF0aWNfY2FzdDxjb25zdCBTVkdUZXh0RWxlbWVudCo+KHRoaXMp
LT5nZXRCQm94KHN0eWxlVXBkYXRlU3RyYXRlZ3kpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFNWR0VsZW1lbnQ6OnNldEN1cnNvckVs
ZW1lbnQoU1ZHQ3Vyc29yRWxlbWVudCogY3Vyc29yRWxlbWVudCkKIHsKICAgICBlbnN1cmVSYXJl
U1ZHRGF0YSgpLT5zZXRDdXJzb3JFbGVtZW50KGN1cnNvckVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oIGIvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCmluZGV4
IGZiMjgyNzkuLjNlNGMyOTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaAor
KysgYi9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2lmIEVO
QUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgiCisjaW5jbHVkZSAi
U1ZHTG9jYXRhYmxlLmgiCiAjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC03MSw2ICs3Miw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAg
ICBjb25zdCBIYXNoU2V0PFNWR0VsZW1lbnRJbnN0YW5jZSo+JiBpbnN0YW5jZXNGb3JFbGVtZW50
KCkgY29uc3Q7CiAKKyAgICAgICAgYm9vbCBib3VuZGluZ0JveChGbG9hdFJlY3QmLCBTVkdMb2Nh
dGFibGU6OlN0eWxlVXBkYXRlU3RyYXRlZ3kgPSBTVkdMb2NhdGFibGU6OkFsbG93U3R5bGVVcGRh
dGUpIGNvbnN0OworCiAgICAgICAgIHZvaWQgc2V0Q3Vyc29yRWxlbWVudChTVkdDdXJzb3JFbGVt
ZW50Kik7CiAgICAgICAgIHZvaWQgc2V0Q3Vyc29ySW1hZ2VWYWx1ZShDU1NDdXJzb3JJbWFnZVZh
bHVlKik7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVF
bGVtZW50LmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNw
cAppbmRleCBiOTA4ODdhLi5jMDBlNzVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdTdHls
ZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJh
bnNmb3JtYWJsZUVsZW1lbnQuY3BwCkBAIC04NiwyMSArODYsNiBAQCBib29sIFNWR1N0eWxlZFRy
YW5zZm9ybWFibGVFbGVtZW50Ojppc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJOYQogICAgICAgICAgICBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50Ojppc0tub3duQXR0
cmlidXRlKGF0dHJOYW1lKTsKIH0KIAotU1ZHRWxlbWVudCogU1ZHU3R5bGVkVHJhbnNmb3JtYWJs
ZUVsZW1lbnQ6Om5lYXJlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdAotewotICAgIHJldHVybiBT
VkdUcmFuc2Zvcm1hYmxlOjpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KHRoaXMpOwotfQotCi1TVkdF
bGVtZW50KiBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6ZmFydGhlc3RWaWV3cG9ydEVs
ZW1lbnQoKSBjb25zdAotewotICAgIHJldHVybiBTVkdUcmFuc2Zvcm1hYmxlOjpmYXJ0aGVzdFZp
ZXdwb3J0RWxlbWVudCh0aGlzKTsKLX0KLQotRmxvYXRSZWN0IFNWR1N0eWxlZFRyYW5zZm9ybWFi
bGVFbGVtZW50OjpnZXRCQm94KFN0eWxlVXBkYXRlU3RyYXRlZ3kgc3R5bGVVcGRhdGVTdHJhdGVn
eSkgY29uc3QKLXsKLSAgICByZXR1cm4gU1ZHVHJhbnNmb3JtYWJsZTo6Z2V0QkJveCh0aGlzLCBz
dHlsZVVwZGF0ZVN0cmF0ZWd5KTsKLX0KLQogUmVuZGVyT2JqZWN0KiBTVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJT
dHlsZSopCiB7CiAgICAgLy8gQnkgZGVmYXVsdCwgYW55IHN1YmNsYXNzIGlzIGV4cGVjdGVkIHRv
IGRvIHBhdGgtYmFzZWQgZHJhd2luZwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHU3R5bGVk
VHJhbnNmb3JtYWJsZUVsZW1lbnQuaCBiL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFi
bGVFbGVtZW50LmgKaW5kZXggNzY2ODg4OS4uZmVmN2U3OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9z
dmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaAorKysgYi9XZWJDb3JlL3N2Zy9TVkdT
dHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5oCkBAIC0zNSwxNSArMzUsMTEgQEAgY2xhc3MgU1ZH
U3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQgOiBwdWJsaWMgU1ZHU3R5bGVkTG9jYXRhYmxlRWxl
bWVudCwKIHB1YmxpYzoKICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRDVE0oU3R5bGVV
cGRhdGVTdHJhdGVneSA9IEFsbG93U3R5bGVVcGRhdGUpIGNvbnN0OwogICAgIHZpcnR1YWwgQWZm
aW5lVHJhbnNmb3JtIGdldFNjcmVlbkNUTShTdHlsZVVwZGF0ZVN0cmF0ZWd5ID0gQWxsb3dTdHls
ZVVwZGF0ZSkgY29uc3Q7Ci0gICAgdmlydHVhbCBTVkdFbGVtZW50KiBuZWFyZXN0Vmlld3BvcnRF
bGVtZW50KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBTVkdFbGVtZW50KiBmYXJ0aGVzdFZpZXdwb3J0
RWxlbWVudCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxDb29y
ZGluYXRlU3BhY2VUcmFuc2Zvcm0oU1ZHTG9jYXRhYmxlOjpDVE1TY29wZSBtb2RlKSBjb25zdCB7
IHJldHVybiBTVkdUcmFuc2Zvcm1hYmxlOjpsb2NhbENvb3JkaW5hdGVTcGFjZVRyYW5zZm9ybSht
b2RlKTsgfQogICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGFuaW1hdGVkTG9jYWxUcmFuc2Zv
cm0oKSBjb25zdDsKICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSogc3VwcGxlbWVudGFsVHJh
bnNmb3JtKCk7CiAKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCBnZXRCQm94KFN0eWxlVXBkYXRlU3Ry
YXRlZ3kgPSBBbGxvd1N0eWxlVXBkYXRlKSBjb25zdDsKLQogICAgIGJvb2wgaXNLbm93bkF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKICAgICAvLyAiYmFzZSBjbGFzcyIgbWV0aG9k
cyBmb3IgYWxsIHRoZSBlbGVtZW50cyB3aGljaCByZW5kZXIgYXMgcGF0aHMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70941</attachid>
            <date>2010-10-15 18:34:55 -0700</date>
            <delta_ts>2010-10-21 08:45:09 -0700</delta_ts>
            <desc>Fix and layout test.</desc>
            <filename>wk46775.diff.submit</filename>
            <type>text/plain</type>
            <size>14668</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1ODZiYWRjLi5hZjFjOWI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAt
MTUgIENvc21pbiBUcnV0YSAgPGN0cnV0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGRv
ZXMgbm90IHdvcmsgd2l0aCBTVkcgPHRleHQ+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00Njc3NQorCisgICAgICAgIEFkZGVkIGNvb3JkaW5hdGUgY2hl
Y2tzIG9uIHZhcmlvdXMgem9vbWVkLWluIGFuZCB6b29tZWQtb3V0CisgICAgICAgIFhIVE1MIGFu
ZCBTVkcgZWxlbWVudHMsIHVzaW5nIGdldEJvdW5kaW5nQ2xpZW50UmVjdC4KKworICAgICAgICAq
IGNzczMvem9vbS1jb29yZHMueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvem9vbS1jb29y
ZHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMC0xMC0xNSAgQWxleGV5IFByb3NrdXJ5YWtv
diAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvem9vbS1jb29yZHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvY3NzMy96b29tLWNvb3Jkcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNzE2MjM5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NzczMvem9vbS1jb29yZHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzggQEAKK1Rlc3QKK1Rl
c3QKK1RoaXMgdGVzdCBjaGVja3MgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgb24gem9vbWVkIEhU
TUwgYW5kIFNWRyBlbGVtZW50cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK0NoZWNr
aW5nIEhUTUwgZWxlbWVudHM6CisKK1BBU1MgZGl2MS5sZWZ0IGlzIDAKK1BBU1MgZGl2MS50b3Ag
aXMgMAorUEFTUyBkaXYxLndpZHRoIGlzIDEwMAorUEFTUyBkaXYxLmhlaWdodCBpcyA1MAorUEFT
UyBkaXYxLnJpZ2h0IGlzIDEwMAorUEFTUyBkaXYxLmJvdHRvbSBpcyA1MAorCitQQVNTIGRpdjIu
bGVmdCBpcyAwCitQQVNTIGRpdjIudG9wIGlzIDIwMAorUEFTUyBkaXYyLndpZHRoIGlzIDIwMAor
UEFTUyBkaXYyLmhlaWdodCBpcyAxMDAKK1BBU1MgZGl2Mi5yaWdodCBpcyAyMDAKK1BBU1MgZGl2
Mi5ib3R0b20gaXMgMzAwCisKK0NoZWNraW5nIFNWRyBlbGVtZW50czoKKworUEFTUyBzdmcxLmxl
ZnQgaXMgMAorUEFTUyBzdmcxLnRvcCBpcyA3NQorUEFTUyBzdmcxLndpZHRoIGlzIDE1MAorUEFT
UyBzdmcxLmhlaWdodCBpcyA1MAorUEFTUyBzdmcxLnJpZ2h0IGlzIDE1MAorUEFTUyBzdmcxLmJv
dHRvbSBpcyAxMjUKK1BBU1MgcmVjdDEubGVmdCBpcyAwCitQQVNTIHJlY3QxLnRvcCBpcyA3NQor
UEFTUyByZWN0MS53aWR0aCBpcyAxMDAKK1BBU1MgcmVjdDEuaGVpZ2h0IGlzIDUwCitQQVNTIHJl
Y3QxLnJpZ2h0IGlzIDEwMAorUEFTUyByZWN0MS5ib3R0b20gaXMgMTI1CitQQVNTIGltYWdlMS5s
ZWZ0IGlzIDEwMAorUEFTUyBpbWFnZTEudG9wIGlzIDc1CitQQVNTIGltYWdlMS53aWR0aCBpcyA1
MAorUEFTUyBpbWFnZTEuaGVpZ2h0IGlzIDI1CitQQVNTIGltYWdlMS5yaWdodCBpcyAxNTAKK1BB
U1MgaW1hZ2UxLmJvdHRvbSBpcyAxMDAKK1BBU1MgdGV4dDEubGVmdCA9PSAxMDAgaXMgdHJ1ZQor
UEFTUyB0ZXh0MS50b3AgPj0gNzUgaXMgdHJ1ZQorUEFTUyB0ZXh0MS53aWR0aCA+IDAgaXMgdHJ1
ZQorUEFTUyB0ZXh0MS5oZWlnaHQgPiAwIGlzIHRydWUKK1BBU1MgdGV4dDEucmlnaHQgPiAxMDAg
aXMgdHJ1ZQorUEFTUyB0ZXh0MS5ib3R0b20gPiA3NSBpcyB0cnVlCisKK1BBU1Mgc3ZnMi5sZWZ0
IGlzIDYwMAorUEFTUyBzdmcyLnRvcCBpcyA0MDAKK1BBU1Mgc3ZnMi53aWR0aCBpcyAzMDAKK1BB
U1Mgc3ZnMi5oZWlnaHQgaXMgMTAwCitQQVNTIHN2ZzIucmlnaHQgaXMgOTAwCitQQVNTIHN2ZzIu
Ym90dG9tIGlzIDUwMAorUEFTUyByZWN0Mi5sZWZ0IGlzIDYwMAorUEFTUyByZWN0Mi50b3AgaXMg
NDAwCitQQVNTIHJlY3QyLndpZHRoIGlzIDIwMAorUEFTUyByZWN0Mi5oZWlnaHQgaXMgMTAwCitQ
QVNTIHJlY3QyLnJpZ2h0IGlzIDgwMAorUEFTUyByZWN0Mi5ib3R0b20gaXMgNTAwCitQQVNTIGlt
YWdlMi5sZWZ0IGlzIDgwMAorUEFTUyBpbWFnZTIudG9wIGlzIDQwMAorUEFTUyBpbWFnZTIud2lk
dGggaXMgMTAwCitQQVNTIGltYWdlMi5oZWlnaHQgaXMgNTAKK1BBU1MgaW1hZ2UyLnJpZ2h0IGlz
IDkwMAorUEFTUyBpbWFnZTIuYm90dG9tIGlzIDQ1MAorUEFTUyB0ZXh0Mi5sZWZ0ID09IDgwMCBp
cyB0cnVlCitQQVNTIHRleHQyLnRvcCA+PSA0MDAgaXMgdHJ1ZQorUEFTUyB0ZXh0Mi53aWR0aCA+
IDAgaXMgdHJ1ZQorUEFTUyB0ZXh0Mi5oZWlnaHQgPiAwIGlzIHRydWUKK1BBU1MgdGV4dDIucmln
aHQgPiA4MDAgaXMgdHJ1ZQorUEFTUyB0ZXh0Mi5ib3R0b20gPiA0MDAgaXMgdHJ1ZQorCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3NzMy96b29tLWNvb3Jkcy54aHRtbCBiL0xheW91dFRlc3RzL2NzczMv
em9vbS1jb29yZHMueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDFm
NmE5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvem9vbS1jb29yZHMueGh0
bWwKQEAgLTAsMCArMSwxMjYgQEAKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiLz4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgYm9keSB7IG1h
cmdpbjowcHg7IGJvcmRlcjowcHg7IHBhZGRpbmc6MHB4OyB9CisgICAgI2RpdjEsICNzdmcxIHsg
em9vbToyMDAlOyB9CisgICAgI2RpdjIsICNzdmcyIHsgem9vbTo1MCU7IH0KKzwvc3R5bGU+Cis8
c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+CisKKzxkaXYgaWQ9ImRpdjEiIHN0eWxlPSJ3aWR0aDoxMDBweDto
ZWlnaHQ6NTBweDtiYWNrZ3JvdW5kLWNvbG9yOmJsdWU7Ij48L2Rpdj4KKzxkaXYgaWQ9ImRpdjIi
IHN0eWxlPSJ3aWR0aDoyMDBweDtoZWlnaHQ6MTAwcHg7YmFja2dyb3VuZC1jb2xvcjpncmVlbjsi
PjwvZGl2PgorPHN2ZyBpZD0ic3ZnMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn
IgorICAgICB3aWR0aD0iMTUwcHgiIGhlaWdodD0iNTBweCIgdmlld0JveD0iMCAwIDE1MCAxMDAi
CisgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgorICA8cmVjdCBpZD0icmVjdDEiIHg9
IjAiIHk9IjAiIHdpZHRoPSIxMDBweCIgaGVpZ2h0PSIxMDBweCIgZmlsbD0ieWVsbG93IiAvPgor
ICA8aW1hZ2UgaWQ9ImltYWdlMSIgeD0iMTAwcHgiIHk9IjAiIHdpZHRoPSI1MHB4IiBoZWlnaHQ9
IjUwcHgiIHhsaW5rOmhyZWY9Ii4uL3N2Zy9kb20vcmVzb3VyY2VzL21hZ25pZnkucG5nIiAvPgor
ICA8dGV4dCBpZD0idGV4dDEiIHg9IjEwMHB4IiB5PSI3NXB4Ij5UZXN0PC90ZXh0PgorPC9zdmc+
PHN2ZyBpZD0ic3ZnMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgICB3
aWR0aD0iMzAwcHgiIGhlaWdodD0iMTAwcHgiIHZpZXdCb3g9IjAgMCAxNTAgMTAwIgorICAgICBw
cmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIj4KKyAgPHJlY3QgaWQ9InJlY3QyIiB4PSIwIiB5PSIw
IiB3aWR0aD0iMTAwcHgiIGhlaWdodD0iMTAwcHgiIGZpbGw9Im9yYW5nZSIgLz4KKyAgPGltYWdl
IGlkPSJpbWFnZTIiIHg9IjEwMHB4IiB5PSIwIiB3aWR0aD0iNTBweCIgaGVpZ2h0PSI1MHB4IiB4
bGluazpocmVmPSIuLi9zdmcvZG9tL3Jlc291cmNlcy9tYWduaWZ5LnBuZyIgLz4KKyAgPHRleHQg
aWQ9InRleHQyIiB4PSIxMDBweCIgeT0iNzVweCI+VGVzdDwvdGV4dD4KKzwvc3ZnPgorCis8ZGl2
IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNj
cmlwdD4KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkgb24gem9vbWVkIEhUTUwgYW5kIFNWRyBlbGVtZW50cyIpOworCitkZWJ1ZygiQ2hlY2tp
bmcgSFRNTCBlbGVtZW50czoiKTsKK2RlYnVnKCIiKTsKKwordmFyIGRpdjEgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiZGl2MSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworc2hvdWxkQmUo
J2RpdjEubGVmdCcsICcwJyk7CitzaG91bGRCZSgnZGl2MS50b3AnLCAnMCcpOworc2hvdWxkQmUo
J2RpdjEud2lkdGgnLCAnMTAwJyk7CitzaG91bGRCZSgnZGl2MS5oZWlnaHQnLCAnNTAnKTsKK3No
b3VsZEJlKCdkaXYxLnJpZ2h0JywgJzEwMCcpOworc2hvdWxkQmUoJ2RpdjEuYm90dG9tJywgJzUw
Jyk7CitkZWJ1ZygiIik7CisKK3ZhciBkaXYyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRp
djIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKK3Nob3VsZEJlKCdkaXYyLmxlZnQnLCAnMCcp
Oworc2hvdWxkQmUoJ2RpdjIudG9wJywgJzIwMCcpOworc2hvdWxkQmUoJ2RpdjIud2lkdGgnLCAn
MjAwJyk7CitzaG91bGRCZSgnZGl2Mi5oZWlnaHQnLCAnMTAwJyk7CitzaG91bGRCZSgnZGl2Mi5y
aWdodCcsICcyMDAnKTsKK3Nob3VsZEJlKCdkaXYyLmJvdHRvbScsICczMDAnKTsKK2RlYnVnKCIi
KTsKKworZGVidWcoIkNoZWNraW5nIFNWRyBlbGVtZW50czoiKTsKK2RlYnVnKCIiKTsKKwordmFy
IHN2ZzEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3ZnMSIpLmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpOworc2hvdWxkQmUoJ3N2ZzEubGVmdCcsICcwJyk7CitzaG91bGRCZSgnc3ZnMS50b3An
LCAnNzUnKTsKK3Nob3VsZEJlKCdzdmcxLndpZHRoJywgJzE1MCcpOworc2hvdWxkQmUoJ3N2ZzEu
aGVpZ2h0JywgJzUwJyk7CitzaG91bGRCZSgnc3ZnMS5yaWdodCcsICcxNTAnKTsKK3Nob3VsZEJl
KCdzdmcxLmJvdHRvbScsICcxMjUnKTsKK3ZhciByZWN0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJyZWN0MSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworc2hvdWxkQmUoJ3JlY3QxLmxl
ZnQnLCAnMCcpOworc2hvdWxkQmUoJ3JlY3QxLnRvcCcsICc3NScpOworc2hvdWxkQmUoJ3JlY3Qx
LndpZHRoJywgJzEwMCcpOworc2hvdWxkQmUoJ3JlY3QxLmhlaWdodCcsICc1MCcpOworc2hvdWxk
QmUoJ3JlY3QxLnJpZ2h0JywgJzEwMCcpOworc2hvdWxkQmUoJ3JlY3QxLmJvdHRvbScsICcxMjUn
KTsKK3ZhciBpbWFnZTEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2UxIikuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCk7CitzaG91bGRCZSgnaW1hZ2UxLmxlZnQnLCAnMTAwJyk7CitzaG91
bGRCZSgnaW1hZ2UxLnRvcCcsICc3NScpOworc2hvdWxkQmUoJ2ltYWdlMS53aWR0aCcsICc1MCcp
Oworc2hvdWxkQmUoJ2ltYWdlMS5oZWlnaHQnLCAnMjUnKTsKK3Nob3VsZEJlKCdpbWFnZTEucmln
aHQnLCAnMTUwJyk7CitzaG91bGRCZSgnaW1hZ2UxLmJvdHRvbScsICcxMDAnKTsKK3ZhciB0ZXh0
MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0MSIpLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpOworc2hvdWxkQmUoJ3RleHQxLmxlZnQgPT0gMTAwJywgJ3RydWUnKTsKK3Nob3VsZEJlKCd0
ZXh0MS50b3AgPj0gNzUnLCAndHJ1ZScpOworc2hvdWxkQmUoJ3RleHQxLndpZHRoID4gMCcsICd0
cnVlJyk7CitzaG91bGRCZSgndGV4dDEuaGVpZ2h0ID4gMCcsICd0cnVlJyk7CitzaG91bGRCZSgn
dGV4dDEucmlnaHQgPiAxMDAnLCAndHJ1ZScpOworc2hvdWxkQmUoJ3RleHQxLmJvdHRvbSA+IDc1
JywgJ3RydWUnKTsKK2RlYnVnKCIiKTsKKwordmFyIHN2ZzIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgic3ZnMiIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworc2hvdWxkQmUoJ3N2ZzIubGVm
dCcsICc2MDAnKTsKK3Nob3VsZEJlKCdzdmcyLnRvcCcsICc0MDAnKTsKK3Nob3VsZEJlKCdzdmcy
LndpZHRoJywgJzMwMCcpOworc2hvdWxkQmUoJ3N2ZzIuaGVpZ2h0JywgJzEwMCcpOworc2hvdWxk
QmUoJ3N2ZzIucmlnaHQnLCAnOTAwJyk7CitzaG91bGRCZSgnc3ZnMi5ib3R0b20nLCAnNTAwJyk7
Cit2YXIgcmVjdDIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjdDIiKS5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKTsKK3Nob3VsZEJlKCdyZWN0Mi5sZWZ0JywgJzYwMCcpOworc2hvdWxkQmUo
J3JlY3QyLnRvcCcsICc0MDAnKTsKK3Nob3VsZEJlKCdyZWN0Mi53aWR0aCcsICcyMDAnKTsKK3No
b3VsZEJlKCdyZWN0Mi5oZWlnaHQnLCAnMTAwJyk7CitzaG91bGRCZSgncmVjdDIucmlnaHQnLCAn
ODAwJyk7CitzaG91bGRCZSgncmVjdDIuYm90dG9tJywgJzUwMCcpOwordmFyIGltYWdlMiA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWFnZTIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsK
K3Nob3VsZEJlKCdpbWFnZTIubGVmdCcsICc4MDAnKTsKK3Nob3VsZEJlKCdpbWFnZTIudG9wJywg
JzQwMCcpOworc2hvdWxkQmUoJ2ltYWdlMi53aWR0aCcsICcxMDAnKTsKK3Nob3VsZEJlKCdpbWFn
ZTIuaGVpZ2h0JywgJzUwJyk7CitzaG91bGRCZSgnaW1hZ2UyLnJpZ2h0JywgJzkwMCcpOworc2hv
dWxkQmUoJ2ltYWdlMi5ib3R0b20nLCAnNDUwJyk7Cit2YXIgdGV4dDIgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGV4dDIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKK3Nob3VsZEJlKCd0
ZXh0Mi5sZWZ0ID09IDgwMCcsICd0cnVlJyk7CitzaG91bGRCZSgndGV4dDIudG9wID49IDQwMCcs
ICd0cnVlJyk7CitzaG91bGRCZSgndGV4dDIud2lkdGggPiAwJywgJ3RydWUnKTsKK3Nob3VsZEJl
KCd0ZXh0Mi5oZWlnaHQgPiAwJywgJ3RydWUnKTsKK3Nob3VsZEJlKCd0ZXh0Mi5yaWdodCA+IDgw
MCcsICd0cnVlJyk7CitzaG91bGRCZSgndGV4dDIuYm90dG9tID4gNDAwJywgJ3RydWUnKTsKK2Rl
YnVnKCIiKTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA4NmFhMzBhLi40ZjVlMmViIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEw
LTEwLTE1ICBDb3NtaW4gVHJ1dGEgIDxjdHJ1dGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGdldEJvdW5kaW5nQ2xpZW50UmVj
dCBkb2VzIG5vdCB3b3JrIHdpdGggU1ZHIDx0ZXh0PgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY3NzUKKworICAgICAgICBEaXNwYXRjaGVkIHRoZSBj
YWxscyBmcm9tIEVsZW1lbnQ6OmdldEJvdW5kaW5nQ2xpZW50UmVjdCB0byBnZXRCQm94CisgICAg
ICAgIHRocm91Z2ggU1ZHRWxlbWVudDo6Ym91bmRpbmdCb3guCisgICAgICAgIFJlY29nbml6ZWQg
U1ZHVGV4dEVsZW1lbnQgaW4gYWRkaXRpb24gdG8gU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudAor
ICAgICAgICBhcyBhIGNsYXNzIHRoYXQgcHJvdmlkZXMgZ2V0QkJveC4KKyAgICAgICAgRml4ZWQg
dGhlIHJlc3VsdCBvZiB6b29taW5nOiBhZGp1c3RlZCB0aGUgZ2V0Qm91bmRpbmdDbGllbnRSZWN0
IHJlY3RhbmdsZQorICAgICAgICBmb3IgYWJzb2x1dGUgem9vbSwgZXZlbiBmb3IgU1ZHIGVsZW1l
bnRzLgorCisgICAgICAgIEFkZGl0aW9uYWwgY2xlYW51cCB0YXNrOgorICAgICAgICBSZW1vdmVk
IHJlZHVuZGFudCBvdmVybG9hZHMgb2YgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQKKyAg
ICAgICAgbWV0aG9kczogbmVhcmVzdFZpZXdwb3J0RWxlbWVudCwgZmFydGhlc3RWaWV3cG9ydEVs
ZW1lbnQsIGdldEJCb3guCisgICAgICAgIFRoZXNlIG1ldGhvZHMgYXJlIGFscmVhZHkgaW5oZXJp
dGVkIGZyb20gU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudC4KKworICAgICAgICBUZXN0OiBjc3Mz
L3pvb20tY29vcmRzLnhodG1sCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAg
IChFbGVtZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QpOiBVc2VkIFNWR0VsZW1lbnQ6OmJvdW5k
aW5nQm94LgorICAgICAgICBBZGp1c3RlZCBjb29yZGluYXRlcyBmb3IgYWJzb2x1dGUgem9vbSwg
Zm9yIGFsbCBraW5kcyBvZiBlbGVtZW50cy4KKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5jcHA6
CisgICAgICAgICogc3ZnL1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKFNWR0VsZW1lbnQ6OmJvdW5k
aW5nQm94KTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVt
ZW50LmNwcDoKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaDoK
KyAgICAgICAgKFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50OjpuZWFyZXN0Vmlld3BvcnRF
bGVtZW50KTogUmVtb3ZlZC4KKyAgICAgICAgKFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50
OjpmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudCk6IFJlbW92ZWQuCisgICAgICAgIChTVkdTdHlsZWRU
cmFuc2Zvcm1hYmxlRWxlbWVudDo6Z2V0QkJveCk6IFJlbW92ZWQuCisKIDIwMTAtMTAtMTUgIERh
biBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGVs
ZSBQZXRlcnNvbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKaW5kZXggODNlMTI5ZS4uZGE3YmYzOCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTUy
LDEzICs1MiwxMyBAQAogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVy
Vmlldy5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgotI2luY2x1ZGUgIlNWR1N0eWxlZExv
Y2F0YWJsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHRJ
dGVyYXRvci5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgogCiAjaWYgRU5BQkxFKFNWRykKKyNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAjaW5j
bHVkZSAiU1ZHTmFtZXMuaCIKICNlbmRpZgogCkBAIC00ODgsMTUgKzQ4OCwxMiBAQCBQYXNzUmVm
UHRyPENsaWVudFJlY3Q+IEVsZW1lbnQ6OmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGNvbnN0CiAK
ICAgICBWZWN0b3I8RmxvYXRRdWFkPiBxdWFkczsKICNpZiBFTkFCTEUoU1ZHKQotICAgIGlmIChp
c1NWR0VsZW1lbnQoKSkgeworICAgIGlmIChpc1NWR0VsZW1lbnQoKSAmJiByZW5kZXJlcigpKSB7
CiAgICAgICAgIC8vIEdldCB0aGUgYm91bmRpbmcgcmVjdGFuZ2xlIGZyb20gdGhlIFNWRyBtb2Rl
bC4KICAgICAgICAgY29uc3QgU1ZHRWxlbWVudCogc3ZnRWxlbWVudCA9IHN0YXRpY19jYXN0PGNv
bnN0IFNWR0VsZW1lbnQqPih0aGlzKTsKLSAgICAgICAgaWYgKHN2Z0VsZW1lbnQtPmlzU3R5bGVk
TG9jYXRhYmxlKCkpIHsKLSAgICAgICAgICAgIGlmIChyZW5kZXJlcigpKSB7Ci0gICAgICAgICAg
ICAgICAgY29uc3QgRmxvYXRSZWN0JiBsb2NhbFJlY3QgPSBzdGF0aWNfY2FzdDxjb25zdCBTVkdT
dHlsZWRMb2NhdGFibGVFbGVtZW50Kj4oc3ZnRWxlbWVudCktPmdldEJCb3goKTsKLSAgICAgICAg
ICAgICAgICBxdWFkcy5hcHBlbmQocmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChsb2Nh
bFJlY3QpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICBGbG9hdFJlY3QgbG9j
YWxSZWN0OworICAgICAgICBpZiAoc3ZnRWxlbWVudC0+Ym91bmRpbmdCb3gobG9jYWxSZWN0KSkK
KyAgICAgICAgICAgIHF1YWRzLmFwcGVuZChyZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFk
KGxvY2FsUmVjdCkpOwogICAgIH0gZWxzZQogI2VuZGlmCiAgICAgewpAQCAtNTE3LDkgKzUxNCw3
IEBAIFBhc3NSZWZQdHI8Q2xpZW50UmVjdD4gRWxlbWVudDo6Z2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkgY29uc3QKICAgICAgICAgcmVzdWx0Lm1vdmUoLXZpc2libGVDb250ZW50UmVjdC54KCksIC12
aXNpYmxlQ29udGVudFJlY3QueSgpKTsKICAgICB9CiAKLSAgICBpZiAocmVuZGVyQm94TW9kZWxP
YmplY3QoKSkKLSAgICAgICAgYWRqdXN0SW50UmVjdEZvckFic29sdXRlWm9vbShyZXN1bHQsIHJl
bmRlckJveE1vZGVsT2JqZWN0KCkpOwotCisgICAgYWRqdXN0SW50UmVjdEZvckFic29sdXRlWm9v
bShyZXN1bHQsIHJlbmRlcmVyKCkpOwogICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUocmVz
dWx0KTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAgYi9XZWJD
b3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCBlYTc5ZTc4Li42YzJjNGEyIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50
LmNwcApAQCAtNDIsNiArNDIsOCBAQAogI2luY2x1ZGUgIlNWR0VsZW1lbnRSYXJlRGF0YS5oIgog
I2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgorI2luY2x1
ZGUgIlNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdUZXh0RWxlbWVu
dC5oIgogI2luY2x1ZGUgIlNWR1VSSVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlNWR1VzZUVsZW1l
bnQuaCIKICNpbmNsdWRlICJTY3JpcHRFdmVudExpc3RlbmVyLmgiCkBAIC0xNzksNiArMTgxLDE5
IEBAIGNvbnN0IEhhc2hTZXQ8U1ZHRWxlbWVudEluc3RhbmNlKj4mIFNWR0VsZW1lbnQ6Omluc3Rh
bmNlc0ZvckVsZW1lbnQoKSBjb25zdAogICAgIHJldHVybiByYXJlU1ZHRGF0YSgpLT5lbGVtZW50
SW5zdGFuY2VzKCk7CiB9CiAKK2Jvb2wgU1ZHRWxlbWVudDo6Ym91bmRpbmdCb3goRmxvYXRSZWN0
JiByZWN0LCBTVkdMb2NhdGFibGU6OlN0eWxlVXBkYXRlU3RyYXRlZ3kgc3R5bGVVcGRhdGVTdHJh
dGVneSkgY29uc3QKK3sKKyAgICBpZiAoaXNTdHlsZWRMb2NhdGFibGUoKSkgeworICAgICAgICBy
ZWN0ID0gc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudCo+KHRoaXMp
LT5nZXRCQm94KHN0eWxlVXBkYXRlU3RyYXRlZ3kpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisgICAgaWYgKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRleHRUYWcpKSB7CisgICAgICAgIHJl
Y3QgPSBzdGF0aWNfY2FzdDxjb25zdCBTVkdUZXh0RWxlbWVudCo+KHRoaXMpLT5nZXRCQm94KHN0
eWxlVXBkYXRlU3RyYXRlZ3kpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0
dXJuIGZhbHNlOworfQorCiB2b2lkIFNWR0VsZW1lbnQ6OnNldEN1cnNvckVsZW1lbnQoU1ZHQ3Vy
c29yRWxlbWVudCogY3Vyc29yRWxlbWVudCkKIHsKICAgICBlbnN1cmVSYXJlU1ZHRGF0YSgpLT5z
ZXRDdXJzb3JFbGVtZW50KGN1cnNvckVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcv
U1ZHRWxlbWVudC5oIGIvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCmluZGV4IGZiMjgyNzkuLjNl
NGMyOTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaAorKysgYi9XZWJDb3Jl
L3N2Zy9TVkdFbGVtZW50LmgKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2lmIEVOQUJMRShTVkcpCiAj
aW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgiCisjaW5jbHVkZSAiU1ZHTG9jYXRhYmxl
LmgiCiAjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC03MSw2ICs3Miw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBjb25zdCBIYXNo
U2V0PFNWR0VsZW1lbnRJbnN0YW5jZSo+JiBpbnN0YW5jZXNGb3JFbGVtZW50KCkgY29uc3Q7CiAK
KyAgICAgICAgYm9vbCBib3VuZGluZ0JveChGbG9hdFJlY3QmLCBTVkdMb2NhdGFibGU6OlN0eWxl
VXBkYXRlU3RyYXRlZ3kgPSBTVkdMb2NhdGFibGU6OkFsbG93U3R5bGVVcGRhdGUpIGNvbnN0Owor
CiAgICAgICAgIHZvaWQgc2V0Q3Vyc29yRWxlbWVudChTVkdDdXJzb3JFbGVtZW50Kik7CiAgICAg
ICAgIHZvaWQgc2V0Q3Vyc29ySW1hZ2VWYWx1ZShDU1NDdXJzb3JJbWFnZVZhbHVlKik7CiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcCBi
L1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcAppbmRleCA5YjM0
MjAzLi5iMTYxOWNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1h
YmxlRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVs
ZW1lbnQuY3BwCkBAIC05MCwyMSArOTAsNiBAQCBib29sIFNWR1N0eWxlZFRyYW5zZm9ybWFibGVF
bGVtZW50Ojppc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYQogICAg
ICAgICAgICBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50Ojppc0tub3duQXR0cmlidXRlKGF0dHJO
YW1lKTsKIH0KIAotU1ZHRWxlbWVudCogU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6Om5l
YXJlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdAotewotICAgIHJldHVybiBTVkdUcmFuc2Zvcm1h
YmxlOjpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KHRoaXMpOwotfQotCi1TVkdFbGVtZW50KiBTVkdT
dHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6ZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25z
dAotewotICAgIHJldHVybiBTVkdUcmFuc2Zvcm1hYmxlOjpmYXJ0aGVzdFZpZXdwb3J0RWxlbWVu
dCh0aGlzKTsKLX0KLQotRmxvYXRSZWN0IFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50Ojpn
ZXRCQm94KFN0eWxlVXBkYXRlU3RyYXRlZ3kgc3R5bGVVcGRhdGVTdHJhdGVneSkgY29uc3QKLXsK
LSAgICByZXR1cm4gU1ZHVHJhbnNmb3JtYWJsZTo6Z2V0QkJveCh0aGlzLCBzdHlsZVVwZGF0ZVN0
cmF0ZWd5KTsKLX0KLQogUmVuZGVyT2JqZWN0KiBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVu
dDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopCiB7CiAg
ICAgLy8gQnkgZGVmYXVsdCwgYW55IHN1YmNsYXNzIGlzIGV4cGVjdGVkIHRvIGRvIHBhdGgtYmFz
ZWQgZHJhd2luZwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJs
ZUVsZW1lbnQuaCBiL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmgK
aW5kZXggNTM0OWNmYS4uY2JiN2RhNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHU3R5bGVk
VHJhbnNmb3JtYWJsZUVsZW1lbnQuaAorKysgYi9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudC5oCkBAIC0zNywxNSArMzcsMTEgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCBBZmZpbmVUcmFuc2Zvcm0gZ2V0Q1RNKFN0eWxlVXBkYXRlU3RyYXRlZ3kgPSBBbGxvd1N0eWxl
VXBkYXRlKSBjb25zdDsKICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRTY3JlZW5DVE0o
U3R5bGVVcGRhdGVTdHJhdGVneSA9IEFsbG93U3R5bGVVcGRhdGUpIGNvbnN0OwotICAgIHZpcnR1
YWwgU1ZHRWxlbWVudCogbmVhcmVzdFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0OwotICAgIHZpcnR1
YWwgU1ZHRWxlbWVudCogZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdDsKIAogICAgIHZp
cnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsQ29vcmRpbmF0ZVNwYWNlVHJhbnNmb3JtKFNWR0xv
Y2F0YWJsZTo6Q1RNU2NvcGUgbW9kZSkgY29uc3QgeyByZXR1cm4gU1ZHVHJhbnNmb3JtYWJsZTo6
bG9jYWxDb29yZGluYXRlU3BhY2VUcmFuc2Zvcm0obW9kZSk7IH0KICAgICB2aXJ0dWFsIEFmZmlu
ZVRyYW5zZm9ybSBhbmltYXRlZExvY2FsVHJhbnNmb3JtKCkgY29uc3Q7CiAgICAgdmlydHVhbCBB
ZmZpbmVUcmFuc2Zvcm0qIHN1cHBsZW1lbnRhbFRyYW5zZm9ybSgpOwogCi0gICAgdmlydHVhbCBG
bG9hdFJlY3QgZ2V0QkJveChTdHlsZVVwZGF0ZVN0cmF0ZWd5ID0gQWxsb3dTdHlsZVVwZGF0ZSkg
Y29uc3Q7Ci0KICAgICBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYp
OwogCiAgICAgLy8gImJhc2UgY2xhc3MiIG1ldGhvZHMgZm9yIGFsbCB0aGUgZWxlbWVudHMgd2hp
Y2ggcmVuZGVyIGFzIHBhdGhzCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71317</attachid>
            <date>2010-10-20 12:14:38 -0700</date>
            <delta_ts>2010-10-22 10:43:59 -0700</delta_ts>
            <desc>Fix and layout test, incl. Xcode project fix</desc>
            <filename>wk46775.diff.submit</filename>
            <type>text/plain</type>
            <size>16324</size>
            <attacher name="Cosmin Truta">ctruta</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZGJiMjhiLi4zNTNjNThmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAt
MjAgIENvc21pbiBUcnV0YSAgPGN0cnV0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGRv
ZXMgbm90IHdvcmsgd2l0aCBTVkcgPHRleHQ+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00Njc3NQorCisgICAgICAgIEFkZGVkIGNvb3JkaW5hdGUgY2hl
Y2tzIG9uIHZhcmlvdXMgem9vbWVkLWluIGFuZCB6b29tZWQtb3V0CisgICAgICAgIFhIVE1MIGFu
ZCBTVkcgZWxlbWVudHMsIHVzaW5nIGdldEJvdW5kaW5nQ2xpZW50UmVjdC4KKworICAgICAgICAq
IGNzczMvem9vbS1jb29yZHMueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvem9vbS1jb29y
ZHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMC0xMC0yMCAgSmFtZXMgUm9iaW5zb24gIDxq
YW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZvbGxvdy11cCB0byA3MDE1NTogcmVuYW1l
IGFuIGV4cGVjdGF0aW9uIHRvIC1leHBlY3RlZC50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NzczMvem9vbS1jb29yZHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy96b29tLWNv
b3Jkcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE2
MjM5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvem9vbS1jb29yZHMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzggQEAKK1Rlc3QKK1Rlc3QKK1RoaXMgdGVzdCBjaGVja3Mg
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgb24gem9vbWVkIEhUTUwgYW5kIFNWRyBlbGVtZW50cwor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK0NoZWNraW5nIEhUTUwgZWxlbWVudHM6CisK
K1BBU1MgZGl2MS5sZWZ0IGlzIDAKK1BBU1MgZGl2MS50b3AgaXMgMAorUEFTUyBkaXYxLndpZHRo
IGlzIDEwMAorUEFTUyBkaXYxLmhlaWdodCBpcyA1MAorUEFTUyBkaXYxLnJpZ2h0IGlzIDEwMAor
UEFTUyBkaXYxLmJvdHRvbSBpcyA1MAorCitQQVNTIGRpdjIubGVmdCBpcyAwCitQQVNTIGRpdjIu
dG9wIGlzIDIwMAorUEFTUyBkaXYyLndpZHRoIGlzIDIwMAorUEFTUyBkaXYyLmhlaWdodCBpcyAx
MDAKK1BBU1MgZGl2Mi5yaWdodCBpcyAyMDAKK1BBU1MgZGl2Mi5ib3R0b20gaXMgMzAwCisKK0No
ZWNraW5nIFNWRyBlbGVtZW50czoKKworUEFTUyBzdmcxLmxlZnQgaXMgMAorUEFTUyBzdmcxLnRv
cCBpcyA3NQorUEFTUyBzdmcxLndpZHRoIGlzIDE1MAorUEFTUyBzdmcxLmhlaWdodCBpcyA1MAor
UEFTUyBzdmcxLnJpZ2h0IGlzIDE1MAorUEFTUyBzdmcxLmJvdHRvbSBpcyAxMjUKK1BBU1MgcmVj
dDEubGVmdCBpcyAwCitQQVNTIHJlY3QxLnRvcCBpcyA3NQorUEFTUyByZWN0MS53aWR0aCBpcyAx
MDAKK1BBU1MgcmVjdDEuaGVpZ2h0IGlzIDUwCitQQVNTIHJlY3QxLnJpZ2h0IGlzIDEwMAorUEFT
UyByZWN0MS5ib3R0b20gaXMgMTI1CitQQVNTIGltYWdlMS5sZWZ0IGlzIDEwMAorUEFTUyBpbWFn
ZTEudG9wIGlzIDc1CitQQVNTIGltYWdlMS53aWR0aCBpcyA1MAorUEFTUyBpbWFnZTEuaGVpZ2h0
IGlzIDI1CitQQVNTIGltYWdlMS5yaWdodCBpcyAxNTAKK1BBU1MgaW1hZ2UxLmJvdHRvbSBpcyAx
MDAKK1BBU1MgdGV4dDEubGVmdCA9PSAxMDAgaXMgdHJ1ZQorUEFTUyB0ZXh0MS50b3AgPj0gNzUg
aXMgdHJ1ZQorUEFTUyB0ZXh0MS53aWR0aCA+IDAgaXMgdHJ1ZQorUEFTUyB0ZXh0MS5oZWlnaHQg
PiAwIGlzIHRydWUKK1BBU1MgdGV4dDEucmlnaHQgPiAxMDAgaXMgdHJ1ZQorUEFTUyB0ZXh0MS5i
b3R0b20gPiA3NSBpcyB0cnVlCisKK1BBU1Mgc3ZnMi5sZWZ0IGlzIDYwMAorUEFTUyBzdmcyLnRv
cCBpcyA0MDAKK1BBU1Mgc3ZnMi53aWR0aCBpcyAzMDAKK1BBU1Mgc3ZnMi5oZWlnaHQgaXMgMTAw
CitQQVNTIHN2ZzIucmlnaHQgaXMgOTAwCitQQVNTIHN2ZzIuYm90dG9tIGlzIDUwMAorUEFTUyBy
ZWN0Mi5sZWZ0IGlzIDYwMAorUEFTUyByZWN0Mi50b3AgaXMgNDAwCitQQVNTIHJlY3QyLndpZHRo
IGlzIDIwMAorUEFTUyByZWN0Mi5oZWlnaHQgaXMgMTAwCitQQVNTIHJlY3QyLnJpZ2h0IGlzIDgw
MAorUEFTUyByZWN0Mi5ib3R0b20gaXMgNTAwCitQQVNTIGltYWdlMi5sZWZ0IGlzIDgwMAorUEFT
UyBpbWFnZTIudG9wIGlzIDQwMAorUEFTUyBpbWFnZTIud2lkdGggaXMgMTAwCitQQVNTIGltYWdl
Mi5oZWlnaHQgaXMgNTAKK1BBU1MgaW1hZ2UyLnJpZ2h0IGlzIDkwMAorUEFTUyBpbWFnZTIuYm90
dG9tIGlzIDQ1MAorUEFTUyB0ZXh0Mi5sZWZ0ID09IDgwMCBpcyB0cnVlCitQQVNTIHRleHQyLnRv
cCA+PSA0MDAgaXMgdHJ1ZQorUEFTUyB0ZXh0Mi53aWR0aCA+IDAgaXMgdHJ1ZQorUEFTUyB0ZXh0
Mi5oZWlnaHQgPiAwIGlzIHRydWUKK1BBU1MgdGV4dDIucmlnaHQgPiA4MDAgaXMgdHJ1ZQorUEFT
UyB0ZXh0Mi5ib3R0b20gPiA0MDAgaXMgdHJ1ZQorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy96
b29tLWNvb3Jkcy54aHRtbCBiL0xheW91dFRlc3RzL2NzczMvem9vbS1jb29yZHMueGh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDFmNmE5ZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2NzczMvem9vbS1jb29yZHMueGh0bWwKQEAgLTAsMCArMSwxMjYgQEAK
KzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWxuczp4bGluaz0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgYm9keSB7IG1hcmdpbjowcHg7IGJvcmRlcjowcHg7
IHBhZGRpbmc6MHB4OyB9CisgICAgI2RpdjEsICNzdmcxIHsgem9vbToyMDAlOyB9CisgICAgI2Rp
djIsICNzdmcyIHsgem9vbTo1MCU7IH0KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisK
KzxkaXYgaWQ9ImRpdjEiIHN0eWxlPSJ3aWR0aDoxMDBweDtoZWlnaHQ6NTBweDtiYWNrZ3JvdW5k
LWNvbG9yOmJsdWU7Ij48L2Rpdj4KKzxkaXYgaWQ9ImRpdjIiIHN0eWxlPSJ3aWR0aDoyMDBweDto
ZWlnaHQ6MTAwcHg7YmFja2dyb3VuZC1jb2xvcjpncmVlbjsiPjwvZGl2PgorPHN2ZyBpZD0ic3Zn
MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgICB3aWR0aD0iMTUwcHgi
IGhlaWdodD0iNTBweCIgdmlld0JveD0iMCAwIDE1MCAxMDAiCisgICAgIHByZXNlcnZlQXNwZWN0
UmF0aW89Im5vbmUiPgorICA8cmVjdCBpZD0icmVjdDEiIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDBw
eCIgaGVpZ2h0PSIxMDBweCIgZmlsbD0ieWVsbG93IiAvPgorICA8aW1hZ2UgaWQ9ImltYWdlMSIg
eD0iMTAwcHgiIHk9IjAiIHdpZHRoPSI1MHB4IiBoZWlnaHQ9IjUwcHgiIHhsaW5rOmhyZWY9Ii4u
L3N2Zy9kb20vcmVzb3VyY2VzL21hZ25pZnkucG5nIiAvPgorICA8dGV4dCBpZD0idGV4dDEiIHg9
IjEwMHB4IiB5PSI3NXB4Ij5UZXN0PC90ZXh0PgorPC9zdmc+PHN2ZyBpZD0ic3ZnMiIgeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgorICAgICB3aWR0aD0iMzAwcHgiIGhlaWdodD0i
MTAwcHgiIHZpZXdCb3g9IjAgMCAxNTAgMTAwIgorICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJu
b25lIj4KKyAgPHJlY3QgaWQ9InJlY3QyIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwcHgiIGhlaWdo
dD0iMTAwcHgiIGZpbGw9Im9yYW5nZSIgLz4KKyAgPGltYWdlIGlkPSJpbWFnZTIiIHg9IjEwMHB4
IiB5PSIwIiB3aWR0aD0iNTBweCIgaGVpZ2h0PSI1MHB4IiB4bGluazpocmVmPSIuLi9zdmcvZG9t
L3Jlc291cmNlcy9tYWduaWZ5LnBuZyIgLz4KKyAgPHRleHQgaWQ9InRleHQyIiB4PSIxMDBweCIg
eT0iNzVweCI+VGVzdDwvdGV4dD4KKzwvc3ZnPgorCis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9k
aXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworZGVzY3JpcHRpb24o
IlRoaXMgdGVzdCBjaGVja3MgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgb24gem9vbWVkIEhUTUwg
YW5kIFNWRyBlbGVtZW50cyIpOworCitkZWJ1ZygiQ2hlY2tpbmcgSFRNTCBlbGVtZW50czoiKTsK
K2RlYnVnKCIiKTsKKwordmFyIGRpdjEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2MSIp
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworc2hvdWxkQmUoJ2RpdjEubGVmdCcsICcwJyk7Citz
aG91bGRCZSgnZGl2MS50b3AnLCAnMCcpOworc2hvdWxkQmUoJ2RpdjEud2lkdGgnLCAnMTAwJyk7
CitzaG91bGRCZSgnZGl2MS5oZWlnaHQnLCAnNTAnKTsKK3Nob3VsZEJlKCdkaXYxLnJpZ2h0Jywg
JzEwMCcpOworc2hvdWxkQmUoJ2RpdjEuYm90dG9tJywgJzUwJyk7CitkZWJ1ZygiIik7CisKK3Zh
ciBkaXYyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjIiKS5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKTsKK3Nob3VsZEJlKCdkaXYyLmxlZnQnLCAnMCcpOworc2hvdWxkQmUoJ2RpdjIudG9w
JywgJzIwMCcpOworc2hvdWxkQmUoJ2RpdjIud2lkdGgnLCAnMjAwJyk7CitzaG91bGRCZSgnZGl2
Mi5oZWlnaHQnLCAnMTAwJyk7CitzaG91bGRCZSgnZGl2Mi5yaWdodCcsICcyMDAnKTsKK3Nob3Vs
ZEJlKCdkaXYyLmJvdHRvbScsICczMDAnKTsKK2RlYnVnKCIiKTsKKworZGVidWcoIkNoZWNraW5n
IFNWRyBlbGVtZW50czoiKTsKK2RlYnVnKCIiKTsKKwordmFyIHN2ZzEgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic3ZnMSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworc2hvdWxkQmUoJ3N2
ZzEubGVmdCcsICcwJyk7CitzaG91bGRCZSgnc3ZnMS50b3AnLCAnNzUnKTsKK3Nob3VsZEJlKCdz
dmcxLndpZHRoJywgJzE1MCcpOworc2hvdWxkQmUoJ3N2ZzEuaGVpZ2h0JywgJzUwJyk7CitzaG91
bGRCZSgnc3ZnMS5yaWdodCcsICcxNTAnKTsKK3Nob3VsZEJlKCdzdmcxLmJvdHRvbScsICcxMjUn
KTsKK3ZhciByZWN0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWN0MSIpLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpOworc2hvdWxkQmUoJ3JlY3QxLmxlZnQnLCAnMCcpOworc2hvdWxkQmUo
J3JlY3QxLnRvcCcsICc3NScpOworc2hvdWxkQmUoJ3JlY3QxLndpZHRoJywgJzEwMCcpOworc2hv
dWxkQmUoJ3JlY3QxLmhlaWdodCcsICc1MCcpOworc2hvdWxkQmUoJ3JlY3QxLnJpZ2h0JywgJzEw
MCcpOworc2hvdWxkQmUoJ3JlY3QxLmJvdHRvbScsICcxMjUnKTsKK3ZhciBpbWFnZTEgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2UxIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Citz
aG91bGRCZSgnaW1hZ2UxLmxlZnQnLCAnMTAwJyk7CitzaG91bGRCZSgnaW1hZ2UxLnRvcCcsICc3
NScpOworc2hvdWxkQmUoJ2ltYWdlMS53aWR0aCcsICc1MCcpOworc2hvdWxkQmUoJ2ltYWdlMS5o
ZWlnaHQnLCAnMjUnKTsKK3Nob3VsZEJlKCdpbWFnZTEucmlnaHQnLCAnMTUwJyk7CitzaG91bGRC
ZSgnaW1hZ2UxLmJvdHRvbScsICcxMDAnKTsKK3ZhciB0ZXh0MSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXh0MSIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworc2hvdWxkQmUoJ3RleHQx
LmxlZnQgPT0gMTAwJywgJ3RydWUnKTsKK3Nob3VsZEJlKCd0ZXh0MS50b3AgPj0gNzUnLCAndHJ1
ZScpOworc2hvdWxkQmUoJ3RleHQxLndpZHRoID4gMCcsICd0cnVlJyk7CitzaG91bGRCZSgndGV4
dDEuaGVpZ2h0ID4gMCcsICd0cnVlJyk7CitzaG91bGRCZSgndGV4dDEucmlnaHQgPiAxMDAnLCAn
dHJ1ZScpOworc2hvdWxkQmUoJ3RleHQxLmJvdHRvbSA+IDc1JywgJ3RydWUnKTsKK2RlYnVnKCIi
KTsKKwordmFyIHN2ZzIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3ZnMiIpLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpOworc2hvdWxkQmUoJ3N2ZzIubGVmdCcsICc2MDAnKTsKK3Nob3VsZEJl
KCdzdmcyLnRvcCcsICc0MDAnKTsKK3Nob3VsZEJlKCdzdmcyLndpZHRoJywgJzMwMCcpOworc2hv
dWxkQmUoJ3N2ZzIuaGVpZ2h0JywgJzEwMCcpOworc2hvdWxkQmUoJ3N2ZzIucmlnaHQnLCAnOTAw
Jyk7CitzaG91bGRCZSgnc3ZnMi5ib3R0b20nLCAnNTAwJyk7Cit2YXIgcmVjdDIgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVjdDIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKK3Nob3Vs
ZEJlKCdyZWN0Mi5sZWZ0JywgJzYwMCcpOworc2hvdWxkQmUoJ3JlY3QyLnRvcCcsICc0MDAnKTsK
K3Nob3VsZEJlKCdyZWN0Mi53aWR0aCcsICcyMDAnKTsKK3Nob3VsZEJlKCdyZWN0Mi5oZWlnaHQn
LCAnMTAwJyk7CitzaG91bGRCZSgncmVjdDIucmlnaHQnLCAnODAwJyk7CitzaG91bGRCZSgncmVj
dDIuYm90dG9tJywgJzUwMCcpOwordmFyIGltYWdlMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJpbWFnZTIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKK3Nob3VsZEJlKCdpbWFnZTIubGVm
dCcsICc4MDAnKTsKK3Nob3VsZEJlKCdpbWFnZTIudG9wJywgJzQwMCcpOworc2hvdWxkQmUoJ2lt
YWdlMi53aWR0aCcsICcxMDAnKTsKK3Nob3VsZEJlKCdpbWFnZTIuaGVpZ2h0JywgJzUwJyk7Citz
aG91bGRCZSgnaW1hZ2UyLnJpZ2h0JywgJzkwMCcpOworc2hvdWxkQmUoJ2ltYWdlMi5ib3R0b20n
LCAnNDUwJyk7Cit2YXIgdGV4dDIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dDIiKS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKK3Nob3VsZEJlKCd0ZXh0Mi5sZWZ0ID09IDgwMCcsICd0
cnVlJyk7CitzaG91bGRCZSgndGV4dDIudG9wID49IDQwMCcsICd0cnVlJyk7CitzaG91bGRCZSgn
dGV4dDIud2lkdGggPiAwJywgJ3RydWUnKTsKK3Nob3VsZEJlKCd0ZXh0Mi5oZWlnaHQgPiAwJywg
J3RydWUnKTsKK3Nob3VsZEJlKCd0ZXh0Mi5yaWdodCA+IDgwMCcsICd0cnVlJyk7CitzaG91bGRC
ZSgndGV4dDIuYm90dG9tID4gNDAwJywgJ3RydWUnKTsKK2RlYnVnKCIiKTsKKworc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZWUzYjljLi4zMTk1Njk5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEwLTEwLTIwICBDb3NtaW4gVHJ1dGEg
IDxjdHJ1dGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBkb2VzIG5vdCB3b3JrIHdpdGgg
U1ZHIDx0ZXh0PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDY3NzUKKworICAgICAgICBEaXNwYXRjaGVkIHRoZSBjYWxscyBmcm9tIEVsZW1lbnQ6Omdl
dEJvdW5kaW5nQ2xpZW50UmVjdCB0byBnZXRCQm94CisgICAgICAgIHRocm91Z2ggU1ZHRWxlbWVu
dDo6Ym91bmRpbmdCb3guCisgICAgICAgIFJlY29nbml6ZWQgU1ZHVGV4dEVsZW1lbnQgaW4gYWRk
aXRpb24gdG8gU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudAorICAgICAgICBhcyBhIGNsYXNzIHRo
YXQgcHJvdmlkZXMgZ2V0QkJveC4KKyAgICAgICAgRml4ZWQgdGhlIHJlc3VsdCBvZiB6b29taW5n
OiBhZGp1c3RlZCB0aGUgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IHJlY3RhbmdsZQorICAgICAgICBm
b3IgYWJzb2x1dGUgem9vbSwgZXZlbiBmb3IgU1ZHIGVsZW1lbnRzLgorCisgICAgICAgIEFkZGl0
aW9uYWwgY2xlYW51cCB0YXNrOgorICAgICAgICBSZW1vdmVkIHJlZHVuZGFudCBvdmVybG9hZHMg
b2YgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQKKyAgICAgICAgbWV0aG9kczogbmVhcmVz
dFZpZXdwb3J0RWxlbWVudCwgZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQsIGdldEJCb3guCisgICAg
ICAgIFRoZXNlIG1ldGhvZHMgYXJlIGFscmVhZHkgaW5oZXJpdGVkIGZyb20gU1ZHU3R5bGVkTG9j
YXRhYmxlRWxlbWVudC4KKworICAgICAgICBUZXN0OiBjc3MzL3pvb20tY29vcmRzLnhodG1sCisK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IFNldCByb2xlIG9m
IFNWR0xvY2F0YWJsZS5oIHRvIHByaXZhdGUuCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgor
ICAgICAgICAoRWxlbWVudDo6Z2V0Qm91bmRpbmdDbGllbnRSZWN0KTogVXNlZCBTVkdFbGVtZW50
Ojpib3VuZGluZ0JveC4KKyAgICAgICAgQWRqdXN0ZWQgY29vcmRpbmF0ZXMgZm9yIGFic29sdXRl
IHpvb20sIGZvciBhbGwga2luZHMgb2YgZWxlbWVudHMuCisgICAgICAgICogc3ZnL1NWR0VsZW1l
bnQuY3BwOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50Lmg6CisgICAgICAgIChTVkdFbGVtZW50
Ojpib3VuZGluZ0JveCk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1h
YmxlRWxlbWVudC5jcHA6CisgICAgICAgICogc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVt
ZW50Lmg6CisgICAgICAgIChTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6bmVhcmVzdFZp
ZXdwb3J0RWxlbWVudCk6IFJlbW92ZWQuCisgICAgICAgIChTVkdTdHlsZWRUcmFuc2Zvcm1hYmxl
RWxlbWVudDo6ZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQpOiBSZW1vdmVkLgorICAgICAgICAoU1ZH
U3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6OmdldEJCb3gpOiBSZW1vdmVkLgorCiAyMDEwLTEw
LTIwICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGJjNjEyZGYuLjRlZThhZDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC00MDM2LDcgKzQwMzYsNyBAQAogCQlCMjIyN0EzRTBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjIyMjc4QTgwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xpc3QuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCMjIyN0EzRjBEMDBCRjIy
MDA3MUI3ODIgLyogU1ZHTGlzdFRyYWl0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QTkwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xpc3RUcmFp
dHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlC
MjIyN0E0MDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTG9jYXRhYmxlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEFBMEQwMEJGMjAwMDcxQjc4
MiAvKiBTVkdMb2NhdGFibGUuY3BwICovOyB9OwotCQlCMjIyN0E0MTBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHTG9jYXRhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMjIyNzhBQjBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTG9jYXRhYmxlLmggKi87IH07
CisJCUIyMjI3QTQxMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMb2NhdGFibGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3OEFCMEQwMEJGMjAwMDcx
Qjc4MiAvKiBTVkdMb2NhdGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlCMjIyN0E0MzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTWFya2VyRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
MjIyNzhBRDBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWFya2VyRWxlbWVudC5jcHAgKi87IH07CiAJ
CUIyMjI3QTQ0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNYXJrZXJFbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzhBRTBEMDBCRjIwMDA3
MUI3ODIgLyogU1ZHTWFya2VyRWxlbWVudC5oICovOyB9OwogCQlCMjIyN0E0NjBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHTWFza0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QjAwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01hc2tFbGVt
ZW50LmNwcCAqLzsgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggODNlMTI5ZS4uZGE3YmYzOCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAg
LTUyLDEzICs1MiwxMyBAQAogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyVmlldy5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgotI2luY2x1ZGUgIlNWR1N0eWxl
ZExvY2F0YWJsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRl
eHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgogCiAjaWYgRU5BQkxFKFNWRykKKyNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAj
aW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNlbmRpZgogCkBAIC00ODgsMTUgKzQ4OCwxMiBAQCBQYXNz
UmVmUHRyPENsaWVudFJlY3Q+IEVsZW1lbnQ6OmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGNvbnN0
CiAKICAgICBWZWN0b3I8RmxvYXRRdWFkPiBxdWFkczsKICNpZiBFTkFCTEUoU1ZHKQotICAgIGlm
IChpc1NWR0VsZW1lbnQoKSkgeworICAgIGlmIChpc1NWR0VsZW1lbnQoKSAmJiByZW5kZXJlcigp
KSB7CiAgICAgICAgIC8vIEdldCB0aGUgYm91bmRpbmcgcmVjdGFuZ2xlIGZyb20gdGhlIFNWRyBt
b2RlbC4KICAgICAgICAgY29uc3QgU1ZHRWxlbWVudCogc3ZnRWxlbWVudCA9IHN0YXRpY19jYXN0
PGNvbnN0IFNWR0VsZW1lbnQqPih0aGlzKTsKLSAgICAgICAgaWYgKHN2Z0VsZW1lbnQtPmlzU3R5
bGVkTG9jYXRhYmxlKCkpIHsKLSAgICAgICAgICAgIGlmIChyZW5kZXJlcigpKSB7Ci0gICAgICAg
ICAgICAgICAgY29uc3QgRmxvYXRSZWN0JiBsb2NhbFJlY3QgPSBzdGF0aWNfY2FzdDxjb25zdCBT
VkdTdHlsZWRMb2NhdGFibGVFbGVtZW50Kj4oc3ZnRWxlbWVudCktPmdldEJCb3goKTsKLSAgICAg
ICAgICAgICAgICBxdWFkcy5hcHBlbmQocmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChs
b2NhbFJlY3QpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICBGbG9hdFJlY3Qg
bG9jYWxSZWN0OworICAgICAgICBpZiAoc3ZnRWxlbWVudC0+Ym91bmRpbmdCb3gobG9jYWxSZWN0
KSkKKyAgICAgICAgICAgIHF1YWRzLmFwcGVuZChyZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVR
dWFkKGxvY2FsUmVjdCkpOwogICAgIH0gZWxzZQogI2VuZGlmCiAgICAgewpAQCAtNTE3LDkgKzUx
NCw3IEBAIFBhc3NSZWZQdHI8Q2xpZW50UmVjdD4gRWxlbWVudDo6Z2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkgY29uc3QKICAgICAgICAgcmVzdWx0Lm1vdmUoLXZpc2libGVDb250ZW50UmVjdC54KCks
IC12aXNpYmxlQ29udGVudFJlY3QueSgpKTsKICAgICB9CiAKLSAgICBpZiAocmVuZGVyQm94TW9k
ZWxPYmplY3QoKSkKLSAgICAgICAgYWRqdXN0SW50UmVjdEZvckFic29sdXRlWm9vbShyZXN1bHQs
IHJlbmRlckJveE1vZGVsT2JqZWN0KCkpOwotCisgICAgYWRqdXN0SW50UmVjdEZvckFic29sdXRl
Wm9vbShyZXN1bHQsIHJlbmRlcmVyKCkpOwogICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUo
cmVzdWx0KTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAgYi9X
ZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCBlYTc5ZTc4Li42YzJjNGEyIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL3N2Zy9TVkdFbGVt
ZW50LmNwcApAQCAtNDIsNiArNDIsOCBAQAogI2luY2x1ZGUgIlNWR0VsZW1lbnRSYXJlRGF0YS5o
IgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIlNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdUZXh0RWxl
bWVudC5oIgogI2luY2x1ZGUgIlNWR1VSSVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlNWR1VzZUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJTY3JpcHRFdmVudExpc3RlbmVyLmgiCkBAIC0xNzksNiArMTgx
LDE5IEBAIGNvbnN0IEhhc2hTZXQ8U1ZHRWxlbWVudEluc3RhbmNlKj4mIFNWR0VsZW1lbnQ6Omlu
c3RhbmNlc0ZvckVsZW1lbnQoKSBjb25zdAogICAgIHJldHVybiByYXJlU1ZHRGF0YSgpLT5lbGVt
ZW50SW5zdGFuY2VzKCk7CiB9CiAKK2Jvb2wgU1ZHRWxlbWVudDo6Ym91bmRpbmdCb3goRmxvYXRS
ZWN0JiByZWN0LCBTVkdMb2NhdGFibGU6OlN0eWxlVXBkYXRlU3RyYXRlZ3kgc3R5bGVVcGRhdGVT
dHJhdGVneSkgY29uc3QKK3sKKyAgICBpZiAoaXNTdHlsZWRMb2NhdGFibGUoKSkgeworICAgICAg
ICByZWN0ID0gc3RhdGljX2Nhc3Q8Y29uc3QgU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudCo+KHRo
aXMpLT5nZXRCQm94KHN0eWxlVXBkYXRlU3RyYXRlZ3kpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisgICAgaWYgKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRleHRUYWcpKSB7CisgICAgICAg
IHJlY3QgPSBzdGF0aWNfY2FzdDxjb25zdCBTVkdUZXh0RWxlbWVudCo+KHRoaXMpLT5nZXRCQm94
KHN0eWxlVXBkYXRlU3RyYXRlZ3kpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAg
cmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFNWR0VsZW1lbnQ6OnNldEN1cnNvckVsZW1lbnQoU1ZH
Q3Vyc29yRWxlbWVudCogY3Vyc29yRWxlbWVudCkKIHsKICAgICBlbnN1cmVSYXJlU1ZHRGF0YSgp
LT5zZXRDdXJzb3JFbGVtZW50KGN1cnNvckVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9z
dmcvU1ZHRWxlbWVudC5oIGIvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCmluZGV4IDU2ODEyODQu
LjUxNzUxNWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaAorKysgYi9XZWJD
b3JlL3N2Zy9TVkdFbGVtZW50LmgKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2lmIEVOQUJMRShTVkcp
CiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgiCisjaW5jbHVkZSAiU1ZHTG9jYXRh
YmxlLmgiCiAjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC03MSw2ICs3Miw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBjb25zdCBI
YXNoU2V0PFNWR0VsZW1lbnRJbnN0YW5jZSo+JiBpbnN0YW5jZXNGb3JFbGVtZW50KCkgY29uc3Q7
CiAKKyAgICAgICAgYm9vbCBib3VuZGluZ0JveChGbG9hdFJlY3QmLCBTVkdMb2NhdGFibGU6OlN0
eWxlVXBkYXRlU3RyYXRlZ3kgPSBTVkdMb2NhdGFibGU6OkFsbG93U3R5bGVVcGRhdGUpIGNvbnN0
OworCiAgICAgICAgIHZvaWQgc2V0Q3Vyc29yRWxlbWVudChTVkdDdXJzb3JFbGVtZW50Kik7CiAg
ICAgICAgIHZvaWQgc2V0Q3Vyc29ySW1hZ2VWYWx1ZShDU1NDdXJzb3JJbWFnZVZhbHVlKik7CiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNw
cCBiL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcAppbmRleCA5
YjM0MjAzLi5iMTYxOWNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJs
ZUVsZW1lbnQuY3BwCkBAIC05MCwyMSArOTAsNiBAQCBib29sIFNWR1N0eWxlZFRyYW5zZm9ybWFi
bGVFbGVtZW50Ojppc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYQog
ICAgICAgICAgICBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50Ojppc0tub3duQXR0cmlidXRlKGF0
dHJOYW1lKTsKIH0KIAotU1ZHRWxlbWVudCogU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6
Om5lYXJlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdAotewotICAgIHJldHVybiBTVkdUcmFuc2Zv
cm1hYmxlOjpuZWFyZXN0Vmlld3BvcnRFbGVtZW50KHRoaXMpOwotfQotCi1TVkdFbGVtZW50KiBT
VkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6ZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQoKSBj
b25zdAotewotICAgIHJldHVybiBTVkdUcmFuc2Zvcm1hYmxlOjpmYXJ0aGVzdFZpZXdwb3J0RWxl
bWVudCh0aGlzKTsKLX0KLQotRmxvYXRSZWN0IFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50
OjpnZXRCQm94KFN0eWxlVXBkYXRlU3RyYXRlZ3kgc3R5bGVVcGRhdGVTdHJhdGVneSkgY29uc3QK
LXsKLSAgICByZXR1cm4gU1ZHVHJhbnNmb3JtYWJsZTo6Z2V0QkJveCh0aGlzLCBzdHlsZVVwZGF0
ZVN0cmF0ZWd5KTsKLX0KLQogUmVuZGVyT2JqZWN0KiBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxl
bWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopCiB7
CiAgICAgLy8gQnkgZGVmYXVsdCwgYW55IHN1YmNsYXNzIGlzIGV4cGVjdGVkIHRvIGRvIHBhdGgt
YmFzZWQgZHJhd2luZwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3Jt
YWJsZUVsZW1lbnQuaCBiL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50
LmgKaW5kZXggNTM0OWNmYS4uY2JiN2RhNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHU3R5
bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaAorKysgYi9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRUcmFu
c2Zvcm1hYmxlRWxlbWVudC5oCkBAIC0zNywxNSArMzcsMTEgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCBBZmZpbmVUcmFuc2Zvcm0gZ2V0Q1RNKFN0eWxlVXBkYXRlU3RyYXRlZ3kgPSBBbGxvd1N0
eWxlVXBkYXRlKSBjb25zdDsKICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRTY3JlZW5D
VE0oU3R5bGVVcGRhdGVTdHJhdGVneSA9IEFsbG93U3R5bGVVcGRhdGUpIGNvbnN0OwotICAgIHZp
cnR1YWwgU1ZHRWxlbWVudCogbmVhcmVzdFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0OwotICAgIHZp
cnR1YWwgU1ZHRWxlbWVudCogZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdDsKIAogICAg
IHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsQ29vcmRpbmF0ZVNwYWNlVHJhbnNmb3JtKFNW
R0xvY2F0YWJsZTo6Q1RNU2NvcGUgbW9kZSkgY29uc3QgeyByZXR1cm4gU1ZHVHJhbnNmb3JtYWJs
ZTo6bG9jYWxDb29yZGluYXRlU3BhY2VUcmFuc2Zvcm0obW9kZSk7IH0KICAgICB2aXJ0dWFsIEFm
ZmluZVRyYW5zZm9ybSBhbmltYXRlZExvY2FsVHJhbnNmb3JtKCkgY29uc3Q7CiAgICAgdmlydHVh
bCBBZmZpbmVUcmFuc2Zvcm0qIHN1cHBsZW1lbnRhbFRyYW5zZm9ybSgpOwogCi0gICAgdmlydHVh
bCBGbG9hdFJlY3QgZ2V0QkJveChTdHlsZVVwZGF0ZVN0cmF0ZWd5ID0gQWxsb3dTdHlsZVVwZGF0
ZSkgY29uc3Q7Ci0KICAgICBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpOwogCiAgICAgLy8gImJhc2UgY2xhc3MiIG1ldGhvZHMgZm9yIGFsbCB0aGUgZWxlbWVudHMg
d2hpY2ggcmVuZGVyIGFzIHBhdGhzCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>