<?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>36961</bug_id>
          
          <creation_ts>2010-04-01 07:49:51 -0700</creation_ts>
          <short_desc>Enable HTMLProgressElement for Safari on OSX</short_desc>
          <delta_ts>2010-10-23 06:44:53 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          
          <blocked>36448</blocked>
    
    <blocked>48185</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yael">yael</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>adele</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>207148</commentid>
    <comment_count>0</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-04-01 07:49:51 -0700</bug_when>
    <thetext>A patch is coming soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207154</commentid>
    <comment_count>1</comment_count>
      <attachid>52297</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-04-01 07:55:45 -0700</bug_when>
    <thetext>Created attachment 52297
Patch

This patch adds painting code in RenderThemeMac for the progress bar.
Some assumptions I made in the patch:
1. fps for the progress bar is hard-coded at 33, seems that software update&apos;s progress bar has the same fps.
2. The animation of progress bar has 256 frames
3. Using HITheme to draw directly into the page gives poor results, so it draws into an image buffer first, and copied from there. The same technique is used for scrollbars.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207164</commentid>
    <comment_count>2</comment_count>
      <attachid>52297</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-01 08:14:58 -0700</bug_when>
    <thetext>Comment on attachment 52297
Patch

&gt; Index: WebCore/html/HTMLProgressElement.idl
&gt; ===================================================================
&gt; --- WebCore/html/HTMLProgressElement.idl	(revision 56912)
&gt; +++ WebCore/html/HTMLProgressElement.idl	(working copy)
&gt; @@ -21,10 +21,12 @@ module html {
&gt;      interface [
&gt;          Conditional=PROGRESS_TAG
&gt;      ] HTMLProgressElement : HTMLElement {
&gt; +#if defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT
&gt;                   attribute  double                value;
&gt;                   attribute  double                max;
&gt;          readonly attribute  double                position;
&gt;          readonly attribute  HTMLFormElement       form;
&gt; +#endif

Why did you disabled bindings for other languages?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207170</commentid>
    <comment_count>3</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-04-01 08:38:05 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 52297 [details])
&gt; &gt; Index: WebCore/html/HTMLProgressElement.idl
&gt; &gt; ===================================================================
&gt; &gt; --- WebCore/html/HTMLProgressElement.idl	(revision 56912)
&gt; &gt; +++ WebCore/html/HTMLProgressElement.idl	(working copy)
&gt; &gt; @@ -21,10 +21,12 @@ module html {
&gt; &gt;      interface [
&gt; &gt;          Conditional=PROGRESS_TAG
&gt; &gt;      ] HTMLProgressElement : HTMLElement {
&gt; &gt; +#if defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT
&gt; &gt;                   attribute  double                value;
&gt; &gt;                   attribute  double                max;
&gt; &gt;          readonly attribute  double                position;
&gt; &gt;          readonly attribute  HTMLFormElement       form;
&gt; &gt; +#endif
&gt; 
&gt; Why did you disabled bindings for other languages?

I have been told that only people from Apple can add bindings for OBJC, as that touches public API. Is there another flag I should add to enable bindings for V8? If so, what is the flag?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207178</commentid>
    <comment_count>4</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-01 08:47:34 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; Why did you disabled bindings for other languages?
&gt; 
&gt; I have been told that only people from Apple can add bindings for OBJC, as that
&gt; touches public API. Is there another flag I should add to enable bindings for
&gt; V8? If so, what is the flag?

I understand though I haven&apos;t heard it.
V8 is JavaScript. So you don&apos;t need to worry about it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207538</commentid>
    <comment_count>5</comment_count>
      <attachid>52297</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-01 17:37:45 -0700</bug_when>
    <thetext>Comment on attachment 52297
Patch

&gt;      interface [
&gt;          Conditional=PROGRESS_TAG
&gt;      ] HTMLProgressElement : HTMLElement {
&gt; +#if defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT
&gt;                   attribute  double                value;
&gt;                   attribute  double                max;
&gt;          readonly attribute  double                position;
&gt;          readonly attribute  HTMLFormElement       form;
&gt; +#endif
&gt;      };

This is wrong. We don&apos;t want to leave the bindings for this out of the Objective-C DOM API.

We do want them to start as private, but that&apos;s automatic for anything not in PublicDOMOperations.h.

&gt; +#if ENABLE(PROGRESS_TAG)
&gt; +class RenderProgress;
&gt; +#endif

There&apos;s no need to put this inside an #if. Also, such forward declarations should go below all #import and #include.

&gt; +#if ENABLE(PROGRESS_TAG)
&gt; +#import &quot;RenderProgress.h&quot;
&gt; +#endif

Conditional includes go in a separate paragraph of their own, not sorted into the main paragraph of includes.

&gt; +#if ENABLE(PROGRESS_TAG)
&gt; +const double progressAnimationRepeatInterval = 0.033;
&gt; +const double progressAnimationDuration = 256 * 0.033;

These constants should go at the top of the file, not sorted in with the functions. And there should be comments explaining where these values came from, even if they just came from your guesswork or something like that.

&gt; +bool RenderThemeMac::paintProgressBar(RenderObject* o, const RenderObject::PaintInfo&amp; pi, const IntRect&amp; r)

I would prefer that you use words for argument names in new code, not letters.

&gt; +    trackInfo.max = std::numeric_limits&lt;int&gt;::max();

You should not be using &quot;std::&quot; here. And as long as you are doing it this way, I suggest using the actual type of trackInfo.max:

    trackInfo.max = numeric_limits&lt;SInt32&gt;::max();

&gt; +    trackInfo.value = (SInt32)(renderProgress-&gt;position() * std::numeric_limits&lt;int&gt;::max());

A typecast should not be needed. If it is needed, it should be a static_cast.

But do we really want truncation rather than rounding? I think what we want here is lround. And multiplying a value in the range 0 to 1 by an integer is not exactly the right way to scale it. I think it is more correct to write this:

    trackInfo.value = lround(renderProgress-&gt;position() * nextafter(trackInfo.max, 0));

But please don&apos;t take my word for it; I have not tested the code above so you should.

&gt; +    trackInfo.trackInfo.progress.phase = (renderProgress-&gt;animationProgress() * progressAnimationDuration / progressAnimationRepeatInterval);

Please leave out the parentheses.

I&apos;m surprised you do not need a typecast here to narrow from a double to an SInt8 given that you had one above.

&gt; +    trackInfo.attributes = 0;
&gt; +    trackInfo.attributes |= kThemeTrackHorizontal;

This should just be a single assignment statement, not two.

&gt; +    trackInfo.bounds = r;

&gt; +    trackInfo.bounds = IntRect(IntPoint(), r.size());

You should not set trackInfo.bounds twice.

There should also be these:

    trackInfo.reserved = 0;
    trackInfo.filler1 = 0;

&gt; +    trackInfo.enableState = o-&gt;document()-&gt;frame()-&gt;page()-&gt;focusController()-&gt;isActive() ?  kThemeTrackActive : kThemeTrackInactive;

Extra space here after the &quot;?&quot;.

What guarantees that page() won&apos;t be 0? I think you need a null check for that.

Is this really the right way to check for the active state? It borders on a layering violation to dig into the document like this.

&gt; +    CGContextSaveGState(pi.context-&gt;platformContext());
&gt; +
&gt; +    if (renderProgress-&gt;style()-&gt;direction() == RTL) {
&gt; +        CGContextTranslateCTM(pi.context-&gt;platformContext(), 2 * r.x() + r.width(), 0);
&gt; +        CGContextScaleCTM(pi.context-&gt;platformContext(), -1, 1);
&gt; +    }
&gt; +    HIThemeDrawTrack(&amp;trackInfo, 0, imageBuffer-&gt;context()-&gt;platformContext(), kHIThemeOrientationNormal);
&gt; +    pi.context-&gt;drawImage(imageBuffer-&gt;image(), DeviceColorSpace, r.location());
&gt; +
&gt; +    CGContextRestoreGState(pi.context-&gt;platformContext());
&gt; +    return false;

I suggest calling HIThemeDrawTrack first, before calling CGContextSaveGState or anything else.

For the code to draw from the image buffer into the context from PaintInfo I suggest we consider WebCore GraphicsContext functions instead of Mac-specific CGContext functions.

&gt;  # renderTheme is not ready to draw progress element
&gt;  fast/dom/HTMLProgressElement/progress-element.html
&gt; -fast/dom/HTMLProgressElement/set-progress-properties.html

Why just one test, not both?

Please fix at least one of the things I mention above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207539</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-01 17:38:03 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Please fix at least one of the things I mention above.

At least some, I mean.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207557</commentid>
    <comment_count>7</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-04-01 17:53:20 -0700</bug_when>
    <thetext>Thank you for the review.
(In reply to comment #5)
&gt; &gt; +    trackInfo.enableState = o-&gt;document()-&gt;frame()-&gt;page()-&gt;focusController()-&gt;isActive() ?  kThemeTrackActive : kThemeTrackInactive;
&gt; Is this really the right way to check for the active state? It borders on a
&gt; layering violation to dig into the document like this.
&gt; 
I was very reluctant to do that, but could not find a better way. Perhaps anyone has a suggestion for me?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207558</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-01 17:55:41 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; I was very reluctant to do that, but could not find a better way. Perhaps
&gt; anyone has a suggestion for me?

We should look at how this is done with scrollbars or other such controls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207560</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-01 17:59:28 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; I was very reluctant to do that, but could not find a better way. Perhaps
&gt; anyone has a suggestion for me?

Can you use the RenderTheme::isActive(RenderObject*) function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207561</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-01 17:59:51 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Can you use the RenderTheme::isActive(RenderObject*) function?

Yes, that&apos;s the way to do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207562</commentid>
    <comment_count>11</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-04-01 18:03:21 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; Can you use the RenderTheme::isActive(RenderObject*) function?
&gt; 
&gt; Yes, that&apos;s the way to do it.

thanks :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207845</commentid>
    <comment_count>12</comment_count>
      <attachid>52412</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-04-02 06:44:35 -0700</bug_when>
    <thetext>Created attachment 52412
Patch, address comment #5

(In reply to comment #5)
&gt;&gt;  # renderTheme is not ready to draw progress element
&gt;&gt;  fast/dom/HTMLProgressElement/progress-element.html
&gt;&gt; -fast/dom/HTMLProgressElement/set-progress-properties.html
&gt;
&gt;Why just one test, not both?

The animation causes the result of the pixel test to depend on the speed of executing the test, and that will cause it to be flaky.
I introduced a manual test instead at WebCore/manual-tests/dom/progressbar.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207881</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-02 09:18:31 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #5)
&gt; &gt;&gt;  # renderTheme is not ready to draw progress element
&gt; &gt;&gt;  fast/dom/HTMLProgressElement/progress-element.html
&gt; &gt;&gt; -fast/dom/HTMLProgressElement/set-progress-properties.html
&gt; &gt;
&gt; &gt;Why just one test, not both?
&gt; 
&gt; The animation causes the result of the pixel test to depend on the speed of
&gt; executing the test, and that will cause it to be flaky.

Then that&apos;s what the comment should say, rather than &quot;renderTheme is not ready&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207884</commentid>
    <comment_count>14</comment_count>
      <attachid>52412</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-02 09:36:03 -0700</bug_when>
    <thetext>Comment on attachment 52412
Patch, address comment #5

&gt;  #import &quot;RenderTheme.h&quot;
&gt; +
&gt;  #import &lt;wtf/HashMap.h&gt;
&gt;  #import &lt;wtf/RetainPtr.h&gt;

This blank line should not be added.

&gt; -
&gt; +#if ENABLE(PROGRESS_TAG)
&gt; +    // Returns the repeat interval of the animation for the progress bar.
&gt; +    virtual double animationRepeatIntervalForProgressBar(RenderProgress*) const;
&gt; +    // Returns the duration of the animation for the progress bar.
&gt; +    virtual double animationDurationForProgressBar(RenderProgress*) const;
&gt; +#endif
&gt; +    

It would be better not to add the new whitespace here (in the line after #endif). Especially since other places in the same file you are explicitly removing trailing whitespace.

&gt;  };
&gt; -
&gt; +    
&gt;  } // namespace WebCore

Again, adding whitespace here and removing it elsewhere in the same file and the same patch.

&gt; +#if ENABLE(PROGRESS_TAG)
&gt; +#import &quot;RenderProgress.h&quot;
&gt; +#endif

I think you could make this include unconditional.

&gt; +// fps for the animation of the progress baris hard-coded at 33 fps, it seems to be the same as other applications
&gt; +// that use a progress bar on OSX.
&gt; +const double progressAnimationRepeatInterval = 0.033;

I would make the comment be this:

    // We estimate the animation rate of a Mac OS X progress bar is 33 fps.
    // Hard code the value here because we haven&apos;t found API for it.

The comment in the patch refers to &quot;OSX&quot;, which is not correct, also has the typo &quot;baris&quot;, refers to &quot;other applications&quot; but WebKit is not an application. And it doesn&apos;t mention the real issue, which is that we are guessing the value and hard coding it here because we can&apos;t find API for it.

Also, I am not sure what a &quot;repeat interval&quot; is. It does not seem that this animation &quot;repeats&quot; ever 33 frames per second. The constant should be named progressAnimationFrameRate.

&gt; +// It seems that the animation of the progress bar has 256 frames, thus the duration is estimated at 256 times the fps.
&gt; +const double progressAnimationDuration = 256 * 0.033;

And this should be:

    // Mac OS X progress bar animation seems to have 256 frames.
    const int progressAnimationNumFrames = 256;

Then below you can replace:

    &quot;progressAnimationDuration / progressAnimationRepeatInterval&quot; with &quot;progressAnimationNumFrames&quot;

And

    &quot;progressAnimationDuration&quot; with &quot;progressAnimationNumFrames * progressAnimationFrameRate&quot;

&gt; +    trackInfo.trackInfo.progress.phase = renderProgress-&gt;animationProgress() * progressAnimationDuration / progressAnimationRepeatInterval;

I think the correct computation here would be:

    lround(renderProgress-&gt;animationProgress() * nextafter(progressAnimationNumFrames, 0))

For the same reason the calculation for trackInfo.value above works like that. But I am a little worried that the way this animation works is kind of indirect.

I also think this won&apos;t compile because it is trackInfo.progress rather than trackInfo.trackInfo.progress.

&gt; +    IntRect bufferRect(trackInfo.bounds);
&gt; +
&gt; +    OwnPtr&lt;ImageBuffer&gt; imageBuffer = ImageBuffer::create(bufferRect.size());

I don&apos;t think we need bufferRect. bufferRect.size() is the same as rect.size(), and there is no other use of bufferRect. Or you could write IntRect(trackInfo.bounds).size().

&gt; +    paintInfo.context-&gt;drawImage(imageBuffer-&gt;image(), DeviceColorSpace, rect.location());

I don&apos;t think the color space handling in this function is correct. The color space passed should be renderObject-&gt;style()-&gt;colorSpace().

However to get color right we also have to set up the image buffer with the correct color space. I think what we actually want is a way to create an image buffer with sRGB color space when renderObject-&gt;style()-&gt;colorSpace() is sRGBColorSpace, but ImageBuffer.h does not currently offer that option.

&gt;  # renderTheme is not ready to draw progress element
&gt;  fast/dom/HTMLProgressElement/progress-element.html

Comment is no longer correct and should be updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208100</commentid>
    <comment_count>15</comment_count>
      <attachid>52458</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-04-02 15:22:30 -0700</bug_when>
    <thetext>Created attachment 52458
Patch to address comment #14

This patch addresses comment #14 but does not address the ColorSpace issue.
I suppose there are at least 2 ways to address that:

1. Do the same as ScrollbarThemeMac does and use DeviceColorSpace.
2. Do something like paintInfo.context-&gt;drawImage(imageBuffer-&gt;image(), imageBuffer-&gt;context()-&gt;fillColorSpace(), rect.location());

But that would work only if HIThemeDrawTrack would set the color. 

What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208136</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-02 16:27:03 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; 1. Do the same as ScrollbarThemeMac does and use DeviceColorSpace.

This is fine for now. But I think the code in ScrollbarThemeMac may be incorrect and so both these should be fixed. Ideally we could come up with a way to share code with ScrollbarThemeMac so that we can fix this in one place.

&gt; 2. Do something like paintInfo.context-&gt;drawImage(imageBuffer-&gt;image(),
&gt; imageBuffer-&gt;context()-&gt;fillColorSpace(), rect.location());

That change won&apos;t do any good.

&gt; But that would work only if HIThemeDrawTrack would set the color. 

I&apos;m not sure what you mean.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208153</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-02 17:00:59 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; This patch addresses comment #14 but does not address the ColorSpace issue.

I believe the way to address the color space issue is to pass some color space other than DeviceRGB when creating the image buffer. We should file another bug about that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208180</commentid>
    <comment_count>18</comment_count>
      <attachid>52458</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-02 17:28:47 -0700</bug_when>
    <thetext>Comment on attachment 52458
Patch to address comment #14

Rejecting patch 52458 from commit-queue.

Unexpected failure when landing patch!  Please file a bug against webkit-patch.
Failed to run &quot;[&apos;WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--ignore-builders&apos;, &apos;--build-style=both&apos;, &apos;--quiet&apos;, &apos;52458&apos;, &apos;--parent-command=commit-queue&apos;, &apos;--no-update&apos;]&quot; exit_code: 1
Last 500 characters of output:
it
Fetching: https://bugs.webkit.org/show_bug.cgi?id=36961&amp;ctype=xml
Processing 1 patch from 1 bug.
Cleaning working directory
Processing patch 52458 from bug 36961.
Eric Carlson and Eric Seidel found in /Users/eseidel/Projects/CommitQueue/LayoutTests/ChangeLog does not appear to be a valid reviewer according to committers.py.
ERROR: /Users/eseidel/Projects/CommitQueue/LayoutTests/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208284</commentid>
    <comment_count>19</comment_count>
      <attachid>52458</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-03 10:27:33 -0700</bug_when>
    <thetext>Comment on attachment 52458
Patch to address comment #14

Clearing flags on attachment: 52458

Committed r57051: &lt;http://trac.webkit.org/changeset/57051&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208285</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-03 10:27:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208590</commentid>
    <comment_count>21</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-05 11:19:26 -0700</bug_when>
    <thetext>Looks like this caused a delayed build-break of 5 tests on the bots.  They need new baselines now that this is enabled on mac:
http://trac.webkit.org/changeset/57051/trunk/WebCore/Configurations/FeatureDefines.xcconfig</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208593</commentid>
    <comment_count>22</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-05 11:28:55 -0700</bug_when>
    <thetext>This broke 5 tests because they enumerate everything the global scope and can now see HTMLProgressElement-related objects.  Updated expectations landed in &lt;http://trac.webkit.org/changeset/57087&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208606</commentid>
    <comment_count>23</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-05 11:47:41 -0700</bug_when>
    <thetext>Filed bug 37102 about the build system failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208608</commentid>
    <comment_count>24</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-04-05 11:49:36 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; This broke 5 tests because they enumerate everything the global scope and can
&gt; now see HTMLProgressElement-related objects.  Updated expectations landed in
&gt; &lt;http://trac.webkit.org/changeset/57087&gt;.

Sorry about that, and thanks for fixing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208609</commentid>
    <comment_count>25</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-05 11:53:56 -0700</bug_when>
    <thetext>Looks like the Gtk bot has HTMLProgressElement off:
http://build.webkit.org/results/GTK%20Linux%2032-bit%20Release/r57088%20(10818)/results.html
meaning there are still failures after adam&apos;s updates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208673</commentid>
    <comment_count>26</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-04-05 13:40:11 -0700</bug_when>
    <thetext>Updated GTK expected results in http://trac.webkit.org/changeset/57092.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208725</commentid>
    <comment_count>27</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-04-05 15:04:40 -0700</bug_when>
    <thetext>Updated win expected results in http://trac.webkit.org/changeset/57097.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52297</attachid>
            <date>2010-04-01 07:55:45 -0700</date>
            <delta_ts>2010-04-02 06:44:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>36961.patch</filename>
            <type>text/plain</type>
            <size>24980</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU2OTEzKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDQtMDEgIHlhZWwgYWhh
cm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEVuYWJsZSBIVE1MUHJvZ3Jlc3NFbGVtZW50IGZvciBTYWZh
cmkgb24gT1NYCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNjk2MQorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWc6CisKIDIwMTAtMDMtMzEgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAod2luZG93cyBidWlsZCBmaXggcHQg
SUkpLgpJbmRleDogSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcJKHJldmlzaW9uIDU2OTEyKQorKysgSmF2YVNjcmlwdENvcmUv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAg
LTU3LDYgKzU3LDcgQEAgRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIgPSBFTkFCTEVfSkFWQQog
RU5BQkxFX01BVEhNTCA9IDsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gOwogRU5BQkxFX09GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUyA9IEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM7CitF
TkFCTEVfUFJPR1JFU1NfVEFHID0gRU5BQkxFX1BST0dSRVNTX1RBRzsKIEVOQUJMRV9SVUJZID0g
RU5BQkxFX1JVQlk7CiBFTkFCTEVfU0FOREJPWCA9IEVOQUJMRV9TQU5EQk9YOwogRU5BQkxFX1NI
QVJFRF9XT1JLRVJTID0gRU5BQkxFX1NIQVJFRF9XT1JLRVJTOwpAQCAtNzUsNCArNzYsNCBAQCBF
TkFCTEVfWEhUTUxNUCA9IDsKIEVOQUJMRV9YUEFUSCA9IEVOQUJMRV9YUEFUSDsKIEVOQUJMRV9Y
U0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX0NBTlZB
UykgJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9CTE9CX1NMSUNFKSAkKEVOQUJMRV9D
SEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVO
QUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVO
QUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJTFRFUlMp
ICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lO
REVYRURfREFUQUJBU0UpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX01B
VEhNTCkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TKSAkKEVOQUJMRV9SVUJZKSAkKEVOQUJMRV9TQU5EQk9YKSAkKEVOQUJMRV9TSEFSRURf
V09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9T
VkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZH
X0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NWR19VU0UpICQo
RU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV01MKSAkKEVOQUJM
RV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNM
VCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9DQU5WQVMpICQoRU5BQkxFXzNEX1JF
TkRFUklORykgJChFTkFCTEVfQkxPQl9TTElDRSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcp
ICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQo
RU5BQkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfRE9NX1NUT1JBR0Up
ICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9HRU9MT0NB
VElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAk
KEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX05P
VElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVf
UFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SVUJZKSAkKEVOQUJMRV9TQU5EQk9YKSAkKEVOQUJMRV9T
SEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVO
QUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFC
TEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NWR19V
U0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV01MKSAk
KEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFC
TEVfWFNMVCk7CkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L0NoYW5nZUxvZwkocmV2aXNpb24gNTY5MTMpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEwLTA0LTAxICB5YWVsIGFoYXJvbiAgPHlhZWwu
YWhhcm9uQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFbmFibGUgSFRNTFByb2dyZXNzRWxlbWVudCBmb3IgU2FmYXJpIG9uIE9TWAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY5NjEKKwor
ICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hU
TUxQcm9ncmVzc0VsZW1lbnQuaWRsOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjphbmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNz
QmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjphbmltYXRpb25EdXJhdGlv
bkZvclByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjphZGp1
c3RQcm9ncmVzc0JhclN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpw
YWludFByb2dyZXNzQmFyKToKKwogMjAxMC0wNC0wMSAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZs
b3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCklu
ZGV4OiBXZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJ
KHJldmlzaW9uIDU2OTEyKQorKysgV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsNyBAQCBFTkFCTEVfSkFWQVND
UklQVF9ERUJVR0dFUiA9IEVOQUJMRV9KQVZBCiBFTkFCTEVfTUFUSE1MID0gOwogRU5BQkxFX05P
VElGSUNBVElPTlMgPSA7CiBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TID0gRU5BQkxF
X09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUzsKK0VOQUJMRV9QUk9HUkVTU19UQUcgPSBFTkFCTEVf
UFJPR1JFU1NfVEFHOwogRU5BQkxFX1JVQlkgPSBFTkFCTEVfUlVCWTsKIEVOQUJMRV9TQU5EQk9Y
ID0gRU5BQkxFX1NBTkRCT1g7CiBFTkFCTEVfU0hBUkVEX1dPUktFUlMgPSBFTkFCTEVfU0hBUkVE
X1dPUktFUlM7CkBAIC03NSw0ICs3Niw0IEBAIEVOQUJMRV9YSFRNTE1QID0gOwogRU5BQkxFX1hQ
QVRIID0gRU5BQkxFX1hQQVRIOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVS
RV9ERUZJTkVTID0gJChFTkFCTEVfM0RfQ0FOVkFTKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQo
RU5BQkxFX0JMT0JfU0xJQ0UpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9D
TElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRB
R1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9F
VkVOVFNPVVJDRSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5B
QkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSkFW
QVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9OT1RJRklDQVRJT05T
KSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1JVQlkpICQoRU5B
QkxFX1NBTkRCT1gpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5B
QkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RP
TV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdO
X09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1dFQl9T
T0NLRVRTKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVAp
ICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5B
QkxFXzNEX0NBTlZBUykgJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9CTE9CX1NMSUNF
KSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUdSSUQpICQoRU5BQkxFX0RB
VEFMSVNUKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5B
QkxFX0ZJTFRFUlMpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0Up
ICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIp
ICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JVQlkp
ICQoRU5BQkxFX1NBTkRCT1gpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcp
ICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVf
U1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19G
T1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxF
X1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hI
VE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKSW5kZXg6IFdlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA1NjkxMikKKysrIFdlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0y
NDk3LDYgKzI0OTcsMTIgQEAKIAkJQTEzNkEwMEQxMTM0REJEMjAwQ0M4RDUwIC8qIFhNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMTM2QTAwQjExMzREQkQyMDBDQzhENTAgLyogWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaCAqLzsgfTsKIAkJQTE3QzgxMjIwRjJBNUNGNzAw
NURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTdDODEyMDBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVs
ZW1lbnRGYWN0b3J5LmNwcCAqLzsgfTsKIAkJQTE3QzgxMjMwRjJBNUNGNzAwNURBQUVCIC8qIEhU
TUxFbGVtZW50RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTE3QzgxMjEwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5o
ICovOyB9OworCQlBNDIyNkU1QTExNjNENjY3MDA4QjgzOTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE0
MjI2RTU5MTE2M0Q2NjcwMDhCODM5NyAvKiBKU0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwICovOyB9
OworCQlBNDIyNkU1QzExNjNENjk1MDA4QjgzOTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNDIyNkU1QjEx
NjNENjk1MDA4QjgzOTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmggKi87IH07CisJCUE0MjI2
RTk1MTE2M0Q3M0EwMDhCODM5NyAvKiBET01IVE1MUHJvZ3Jlc3NFbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNDIyNkU5MjExNjNENzNBMDA4
QjgzOTcgLyogRE9NSFRNTFByb2dyZXNzRWxlbWVudC5oICovOyB9OworCQlBNDIyNkU5NjExNjNE
NzNBMDA4QjgzOTcgLyogRE9NSFRNTFByb2dyZXNzRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE0MjI2RTkzMTE2M0Q3M0EwMDhCODM5NyAv
KiBET01IVE1MUHJvZ3Jlc3NFbGVtZW50Lm1tICovOyB9OworCQlBNDIyNkU5OTExNjNEN0NDMDA4
QjgzOTcgLyogRE9NSFRNTFByb2dyZXNzRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNDIyNkU5ODExNjNEN0NDMDA4QjgzOTcg
LyogRE9NSFRNTFByb2dyZXNzRWxlbWVudEludGVybmFsLmggKi87IH07CisJCUE0MjI2RUE2MTE2
M0Q4NEQwMDhCODM5NyAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTQyMjZFQTUxMTYzRDg0RDAwOEI4Mzk3
IC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuaWRsICovOyB9OwogCQlBNDNCRjU5ODExNDkyOTBBMDBD
NjQzQ0EgLyogSFRNTFByb2dyZXNzRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNDNCRjU5NjExNDkyOTBBMDBDNjQzQ0EgLyogSFRNTFBy
b2dyZXNzRWxlbWVudC5jcHAgKi87IH07CiAJCUE0M0JGNTk5MTE0OTI5MEEwMEM2NDNDQSAvKiBI
VE1MUHJvZ3Jlc3NFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNDNCRjU5NzExNDkyOTBBMDBDNjQzQ0EgLyogSFRNTFByb2dyZXNzRWxlbWVu
dC5oICovOyB9OwogCQlBNDNCRjU5QzExNDkyOTI4MDBDNjQzQ0EgLyogUmVuZGVyUHJvZ3Jlc3Mu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTQzQkY1
OUExMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclByb2dyZXNzLmNwcCAqLzsgfTsKQEAgLTc5MTUs
NiArNzkyMSwxMiBAQAogCQlBMTM2QTAwQjExMzREQkQyMDBDQzhENTAgLyogWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTE3QzgxMjAwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFj
dG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRWxlbWVu
dEZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTdDODEyMTBGMkE1
Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEhUTUxFbGVtZW50RmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBNDIyNkU1OTExNjNENjY3MDA4QjgzOTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVtZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTFByb2dyZXNz
RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE0MjI2RTVCMTE2M0Q2
OTUwMDhCODM5NyAvKiBKU0hUTUxQcm9ncmVzc0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNIVE1MUHJvZ3Jlc3NFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUE0MjI2RTkyMTE2M0Q3M0EwMDhCODM5NyAvKiBET01IVE1MUHJvZ3Jlc3NF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxQcm9ncmVz
c0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTQyMjZFOTMxMTYzRDcz
QTAwOEI4Mzk3IC8qIERPTUhUTUxQcm9ncmVzc0VsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01IVE1MUHJvZ3Jlc3NFbGVtZW50Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlBNDIyNkU5ODExNjNEN0NDMDA4QjgzOTcgLyogRE9NSFRN
TFByb2dyZXNzRWxlbWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTUhUTUxQcm9ncmVzc0VsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBNDIyNkVBNTExNjNEODREMDA4QjgzOTcgLyogSFRNTFByb2dyZXNzRWxlbWVu
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTFByb2dyZXNzRWxlbWVudC5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE0M0JGNTk2MTE0OTI5MEEwMEM2NDNDQSAvKiBI
VE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEhUTUxQcm9ncmVzc0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNDNCRjU5NzExNDkyOTBBMDBDNjQzQ0EgLyogSFRNTFByb2dyZXNzRWxlbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MUHJvZ3Jlc3NFbGVtZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE0M0JGNTlBMTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5k
ZXJQcm9ncmVzcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5k
ZXJQcm9ncmVzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjQ4OCw2ICsx
MjUwMCw4IEBACiAJCQkJODVFQ0JFRUEwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxQYXJhbUVs
ZW1lbnQubW0gKi8sCiAJCQkJODUxODNCM0UwQUE2OTI2MTAwRjE5RkEzIC8qIERPTUhUTUxQcmVF
bGVtZW50LmggKi8sCiAJCQkJODUxODNCM0YwQUE2OTI2MTAwRjE5RkEzIC8qIERPTUhUTUxQcmVF
bGVtZW50Lm1tICovLAorCQkJCUE0MjI2RTkyMTE2M0Q3M0EwMDhCODM5NyAvKiBET01IVE1MUHJv
Z3Jlc3NFbGVtZW50LmggKi8sCisJCQkJQTQyMjZFOTMxMTYzRDczQTAwOEI4Mzk3IC8qIERPTUhU
TUxQcm9ncmVzc0VsZW1lbnQubW0gKi8sCiAJCQkJODUxODNCNDAwQUE2OTI2MTAwRjE5RkEzIC8q
IERPTUhUTUxRdW90ZUVsZW1lbnQuaCAqLywKIAkJCQk4NTE4M0I0MTBBQTY5MjYxMDBGMTlGQTMg
LyogRE9NSFRNTFF1b3RlRWxlbWVudC5tbSAqLywKIAkJCQk4NURGODE5MzBBQTc3RTRCMDA0ODZB
RDcgLyogRE9NSFRNTFNjcmlwdEVsZW1lbnQuaCAqLywKQEAgLTEyNjAyLDYgKzEyNjE2LDcgQEAK
IAkJCQk4NUU3MTE3MjBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFBhcmFncmFwaEVsZW1lbnRJ
bnRlcm5hbC5oICovLAogCQkJCTg1RTcxMTczMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MUGFy
YW1FbGVtZW50SW50ZXJuYWwuaCAqLywKIAkJCQk4NUU3MTE3NDBBQzVENTM1MDA1MzI3MEYgLyog
RE9NSFRNTFByZUVsZW1lbnRJbnRlcm5hbC5oICovLAorCQkJCUE0MjI2RTk4MTE2M0Q3Q0MwMDhC
ODM5NyAvKiBET01IVE1MUHJvZ3Jlc3NFbGVtZW50SW50ZXJuYWwuaCAqLywKIAkJCQk4NUU3MTE3
NTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFF1b3RlRWxlbWVudEludGVybmFsLmggKi8sCiAJ
CQkJODVFNzExNzYwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxTY3JpcHRFbGVtZW50SW50ZXJu
YWwuaCAqLywKIAkJCQk4NUU3MTE3NzBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFNlbGVjdEVs
ZW1lbnRJbnRlcm5hbC5oICovLApAQCAtMTI5MjQsOCArMTI5MzksNiBAQAogCQk5M0VFQzFFQzA5
QzI4Nzc3MDBDNTE1RDEgLyogaHRtbCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCi0JCQkJQTQzQkY1OTYxMTQ5MjkwQTAwQzY0M0NBIC8qIEhUTUxQcm9ncmVzc0Vs
ZW1lbnQuY3BwICovLAotCQkJCUE0M0JGNTk3MTE0OTI5MEEwMEM2NDNDQSAvKiBIVE1MUHJvZ3Jl
c3NFbGVtZW50LmggKi8sCiAJCQkJNDk0ODRGQUUxMDJDRjAxRTAwMTg3REQzIC8qIGNhbnZhcyAq
LywKIAkJCQkyRUFGQUYwQjEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5jcHAgKi8sCiAJCQkJMkVB
RkFGMEMxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuaCAqLywKQEAgLTEzMTQ2LDYgKzEzMTU5LDkg
QEAKIAkJCQlBOEVBN0M5RjBBMTkyQjlDMDBBOEVGNUYgLyogSFRNTFByZUVsZW1lbnQuY3BwICov
LAogCQkJCUE4RUE3Q0EyMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MUHJlRWxlbWVudC5oICovLAog
CQkJCTFBRTJBQjg1MEExQ0U4NTAwMEI0MkIyNSAvKiBIVE1MUHJlRWxlbWVudC5pZGwgKi8sCisJ
CQkJQTQzQkY1OTYxMTQ5MjkwQTAwQzY0M0NBIC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuY3BwICov
LAorCQkJCUE0M0JGNTk3MTE0OTI5MEEwMEM2NDNDQSAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50Lmgg
Ki8sCisJCQkJQTQyMjZFQTUxMTYzRDg0RDAwOEI4Mzk3IC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQu
aWRsICovLAogCQkJCUE4Q0ZGNzlCMEExNTY5NzgwMDBBNDIzNCAvKiBIVE1MUXVvdGVFbGVtZW50
LmNwcCAqLywKIAkJCQlBOENGRjc5OTBBMTU2OTc4MDAwQTQyMzQgLyogSFRNTFF1b3RlRWxlbWVu
dC5oICovLAogCQkJCTFBRTJBRUEzMEExRDI4RTgwMEI0MkIyNSAvKiBIVE1MUXVvdGVFbGVtZW50
LmlkbCAqLywKQEAgLTEzNDAwLDYgKzEzNDE2LDggQEAKIAkJCQkxQUUyQUJBMTBBMUNFOTA1MDBC
NDJCMjUgLyogSlNIVE1MUGFyYW1FbGVtZW50LmggKi8sCiAJCQkJMUFFMkFCQTIwQTFDRTkwNTAw
QjQyQjI1IC8qIEpTSFRNTFByZUVsZW1lbnQuY3BwICovLAogCQkJCTFBRTJBQkEzMEExQ0U5MDUw
MEI0MkIyNSAvKiBKU0hUTUxQcmVFbGVtZW50LmggKi8sCisJCQkJQTQyMjZFNTkxMTYzRDY2NzAw
OEI4Mzk3IC8qIEpTSFRNTFByb2dyZXNzRWxlbWVudC5jcHAgKi8sCisJCQkJQTQyMjZFNUIxMTYz
RDY5NTAwOEI4Mzk3IC8qIEpTSFRNTFByb2dyZXNzRWxlbWVudC5oICovLAogCQkJCTFBRTJBRUMz
MEExRDI5N0IwMEI0MkIyNSAvKiBKU0hUTUxRdW90ZUVsZW1lbnQuY3BwICovLAogCQkJCTFBRTJB
RUM0MEExRDI5N0IwMEI0MkIyNSAvKiBKU0hUTUxRdW90ZUVsZW1lbnQuaCAqLywKIAkJCQkxQUUy
QUJBNDBBMUNFOTA1MDBCNDJCMjUgLyogSlNIVE1MU2NyaXB0RWxlbWVudC5jcHAgKi8sCkBAIC0x
ODc2Nyw2ICsxODc4NSw5IEBACiAJCQkJRTQ3NzhCODAxMTVBNTgxQTAwQjVEMzcyIC8qIEpTQ3Vz
dG9tRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxRTFCRjAwMTE1RkY2RkIwMDZGNTJDQSAv
KiBXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ5OUE1MTUxMTVG
QjMzMDAwRjU2NkUzIC8qIFJlbmRlclNWR1Jlc291cmNlTWFya2VyLmggaW4gSGVhZGVycyAqLywK
KwkJCQlBNDIyNkU1QzExNjNENjk1MDA4QjgzOTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQlBNDIyNkU5NTExNjNENzNBMDA4QjgzOTcgLyogRE9NSFRNTFBy
b2dyZXNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTQyMjZFOTkxMTYzRDdDQzAwOEI4
Mzk3IC8qIERPTUhUTUxQcm9ncmVzc0VsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkUzQkJGMDgxMTYyREExMTAwQjk0MDlBIC8qIFVVSUQuaCBpbiBIZWFkZXJzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAtMTg4NzEs
NiArMTg4OTIsNyBAQAogCQkJCTFBQjFBRTdBMEMwNTFGREUwMDEzOUY0RiAvKiB6b29tSW5DdXJz
b3IucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQkxQUIxQUU3QjBDMDUxRkRFMDAxMzlGNEYgLyog
em9vbU91dEN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJCTJFMDg4OEM0MTE0ODgzQTkw
MEFGNDI2NSAvKiBET01Gb3JtRGF0YS5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE0MjI2RUE2
MTE2M0Q4NEQwMDhCODM5NyAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkBAIC0yMDk4MSw2ICsyMTAwMyw4IEBACiAJCQkJNjJDRDMyNTkxMTU3RTU3QzAwNjNCMEE3
IC8qIEN1c3RvbUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0Nzc4QjdGMTE1QTU4MUEw
MEI1RDM3MiAvKiBKU0N1c3RvbUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg0OTlBNTE0
MTE1RkIzMzAwMEY1NjZFMyAvKiBSZW5kZXJTVkdSZXNvdXJjZU1hcmtlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlBNDIyNkU1QTExNjNENjY3MDA4QjgzOTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE0MjI2RTk2MTE2M0Q3M0EwMDhCODM5NyAvKiBE
T01IVE1MUHJvZ3Jlc3NFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkUzQkJGMDcxMTYy
REExMTAwQjk0MDlBIC8qIFVVSUQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRN
TFByb2dyZXNzRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxQcm9n
cmVzc0VsZW1lbnQuaWRsCShyZXZpc2lvbiA1NjkxMikKKysrIFdlYkNvcmUvaHRtbC9IVE1MUHJv
Z3Jlc3NFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjEsMTAgKzIxLDEyIEBAIG1vZHVs
ZSBodG1sIHsKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD1QUk9HUkVTU19U
QUcKICAgICBdIEhUTUxQcm9ncmVzc0VsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisjaWYgZGVmaW5l
ZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCiAgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSAgZG91YmxlICAgICAgICAgICAgICAgIHZhbHVlOwogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgIGRvdWJsZSAgICAgICAgICAgICAgICBtYXg7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSAgZG91YmxlICAgICAgICAgICAgICAgIHBvc2l0aW9uOwogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgIEhUTUxGb3JtRWxlbWVudCAgICAgICBmb3JtOworI2VuZGlm
CiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCShyZXZpc2lv
biA1NjkxMikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDYgKzI0LDEwIEBACiAjZGVmaW5lIFJlbmRlclRoZW1lTWFjX2gKIAogI2lt
cG9ydCAiUmVuZGVyVGhlbWUuaCIKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorY2xhc3MgUmVu
ZGVyUHJvZ3Jlc3M7CisjZW5kaWYKKwogI2ltcG9ydCA8d3RmL0hhc2hNYXAuaD4KICNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAtNzcsNyArODEsMTMgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgaW50IHBvcHVwSW50ZXJuYWxQYWRkaW5nQm90dG9tKFJlbmRlclN0eWxlKikgY29uc3Q7CiAg
ICAgCiAgICAgdmlydHVhbCBib29sIHBhaW50Q2Fwc0xvY2tJbmRpY2F0b3IoUmVuZGVyT2JqZWN0
KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7Ci0KKyNp
ZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorICAgIC8vIFJldHVybnMgdGhlIHJlcGVhdCBpbnRlcnZh
bCBvZiB0aGUgYW5pbWF0aW9uIGZvciB0aGUgcHJvZ3Jlc3MgYmFyLgorICAgIHZpcnR1YWwgZG91
YmxlIGFuaW1hdGlvblJlcGVhdEludGVydmFsRm9yUHJvZ3Jlc3NCYXIoUmVuZGVyUHJvZ3Jlc3Mq
KSBjb25zdDsKKyAgICAvLyBSZXR1cm5zIHRoZSBkdXJhdGlvbiBvZiB0aGUgYW5pbWF0aW9uIGZv
ciB0aGUgcHJvZ3Jlc3MgYmFyLgorICAgIHZpcnR1YWwgZG91YmxlIGFuaW1hdGlvbkR1cmF0aW9u
Rm9yUHJvZ3Jlc3NCYXIoUmVuZGVyUHJvZ3Jlc3MqKSBjb25zdDsKKyNlbmRpZgorICAgIAogICAg
IHZpcnR1YWwgQ29sb3Igc3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0OwogCiBwcm90
ZWN0ZWQ6CkBAIC05NSw2ICsxMDUsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBw
YWludE1lbnVMaXN0QnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFp
bnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RNZW51TGlz
dEJ1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBj
b25zdDsKIAorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAgdmlydHVhbCB2b2lkIGFkanVz
dFByb2dyZXNzQmFyU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVu
dCopIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBwYWludFByb2dyZXNzQmFyKFJlbmRlck9iamVj
dCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOworI2Vu
ZGlmCisKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqLCBj
b25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICB2aXJ0
dWFsIHZvaWQgYWRqdXN0U2xpZGVyVHJhY2tTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVy
U3R5bGUqLCBFbGVtZW50KikgY29uc3Q7CiAKQEAgLTE0NCw3ICsxNTksNyBAQCBwcml2YXRlOgog
ICAgIEludFJlY3QgaW5mbGF0ZVJlY3QoY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFNpemUmLCBj
b25zdCBpbnQqIG1hcmdpbnMsIGZsb2F0IHpvb21MZXZlbCA9IDEuMGYpIGNvbnN0OwogCiAgICAg
RmxvYXRSZWN0IGNvbnZlcnRUb1BhaW50aW5nUmVjdChjb25zdCBSZW5kZXJPYmplY3QqIGlucHV0
UmVuZGVyZXIsIGNvbnN0IFJlbmRlck9iamVjdCogcGFydFJlbmRlcmVyLCBjb25zdCBGbG9hdFJl
Y3QmIGlucHV0UmVjdCwgY29uc3QgSW50UmVjdCYgcikgY29uc3Q7Ci0gICAgCisKICAgICAvLyBH
ZXQgdGhlIGNvbnRyb2wgc2l6ZSBiYXNlZCBvZmYgdGhlIGZvbnQuICBVc2VkIGJ5IHNvbWUgb2Yg
dGhlIGNvbnRyb2xzIChsaWtlIGJ1dHRvbnMpLgogICAgIE5TQ29udHJvbFNpemUgY29udHJvbFNp
emVGb3JGb250KFJlbmRlclN0eWxlKikgY29uc3Q7CiAgICAgTlNDb250cm9sU2l6ZSBjb250cm9s
U2l6ZUZvclN5c3RlbUZvbnQoUmVuZGVyU3R5bGUqKSBjb25zdDsKQEAgLTE3Myw3ICsxODgsNyBA
QCBwcml2YXRlOgogICAgIGNvbnN0IEludFNpemUqIHJlc3VsdHNCdXR0b25TaXplcygpIGNvbnN0
OwogICAgIHZvaWQgc2V0U2VhcmNoQ2VsbFN0YXRlKFJlbmRlck9iamVjdCosIGNvbnN0IEludFJl
Y3QmKTsKICAgICB2b2lkIHNldFNlYXJjaEZpZWxkU2l6ZShSZW5kZXJTdHlsZSopIGNvbnN0Owot
ICAgIAorCiAgICAgTlNQb3BVcEJ1dHRvbkNlbGwqIHBvcHVwQnV0dG9uKCkgY29uc3Q7CiAgICAg
TlNTZWFyY2hGaWVsZENlbGwqIHNlYXJjaCgpIGNvbnN0OwogICAgIE5TTWVudSogc2VhcmNoTWVu
dVRlbXBsYXRlKCkgY29uc3Q7CkBAIC0xOTQsNyArMjA5LDcgQEAgcHJpdmF0ZToKIAogICAgIFJl
dGFpblB0cjxXZWJDb3JlUmVuZGVyVGhlbWVOb3RpZmljYXRpb25PYnNlcnZlcj4gbV9ub3RpZmlj
YXRpb25PYnNlcnZlcjsKIH07Ci0KKyAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIFJlbmRlclRoZW1lTWFjX2gKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
Lm1tCShyZXZpc2lvbiA1NjkxMikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxNSArMjYsMjEgQEAKICNpbXBvcnQgIkNTU1ZhbHVl
S2V5d29yZHMuaCIKICNpbXBvcnQgIkRvY3VtZW50LmgiCiAjaW1wb3J0ICJFbGVtZW50LmgiCisj
aW1wb3J0ICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIkZyYW1lVmlldy5oIgogI2ltcG9y
dCAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW1wb3J0ICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW1w
b3J0ICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW1wb3J0ICJIVE1MTmFtZXMuaCIKICNpbXBvcnQg
IkltYWdlLmgiCisjaW1wb3J0ICJJbWFnZUJ1ZmZlci5oIgogI2ltcG9ydCAiTG9jYWxDdXJyZW50
R3JhcGhpY3NDb250ZXh0LmgiCiAjaW1wb3J0ICJNZWRpYUNvbnRyb2xFbGVtZW50cy5oIgorI2lt
cG9ydCAiUGFnZS5oIgogI2ltcG9ydCAiUmVuZGVyTWVkaWEuaCIKKyNpZiBFTkFCTEUoUFJPR1JF
U1NfVEFHKQorI2ltcG9ydCAiUmVuZGVyUHJvZ3Jlc3MuaCIKKyNlbmRpZgogI2ltcG9ydCAiUmVu
ZGVyU2xpZGVyLmgiCiAjaW1wb3J0ICJSZW5kZXJWaWV3LmgiCiAjaW1wb3J0ICJTaGFyZWRCdWZm
ZXIuaCIKQEAgLTc3MSw2ICs3NzcsNjEgQEAgYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRNZW51
TGlzdChSZW5kZQogCiAgICAgcmV0dXJuIGZhbHNlOwogfQorICAgCisjaWYgRU5BQkxFKFBST0dS
RVNTX1RBRykKK2NvbnN0IGRvdWJsZSBwcm9ncmVzc0FuaW1hdGlvblJlcGVhdEludGVydmFsID0g
MC4wMzM7Citjb25zdCBkb3VibGUgcHJvZ3Jlc3NBbmltYXRpb25EdXJhdGlvbiA9IDI1NiAqIDAu
MDMzOworCitkb3VibGUgUmVuZGVyVGhlbWVNYWM6OmFuaW1hdGlvblJlcGVhdEludGVydmFsRm9y
UHJvZ3Jlc3NCYXIoUmVuZGVyUHJvZ3Jlc3MqKSBjb25zdAoreworICAgIHJldHVybiBwcm9ncmVz
c0FuaW1hdGlvblJlcGVhdEludGVydmFsOworfQorCitkb3VibGUgUmVuZGVyVGhlbWVNYWM6OmFu
aW1hdGlvbkR1cmF0aW9uRm9yUHJvZ3Jlc3NCYXIoUmVuZGVyUHJvZ3Jlc3MqKSBjb25zdAorewor
ICAgIHJldHVybiBwcm9ncmVzc0FuaW1hdGlvbkR1cmF0aW9uOworfQorCit2b2lkIFJlbmRlclRo
ZW1lTWFjOjphZGp1c3RQcm9ncmVzc0JhclN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJT
dHlsZSosIEVsZW1lbnQqKSBjb25zdAoreworfQorCitib29sIFJlbmRlclRoZW1lTWFjOjpwYWlu
dFByb2dyZXNzQmFyKFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludElu
Zm8mIHBpLCBjb25zdCBJbnRSZWN0JiByKQoreworICAgIFJlbmRlclByb2dyZXNzKiByZW5kZXJQ
cm9ncmVzcyA9IHRvUmVuZGVyUHJvZ3Jlc3Mobyk7CisgICAgSElUaGVtZVRyYWNrRHJhd0luZm8g
dHJhY2tJbmZvOworICAgIHRyYWNrSW5mby52ZXJzaW9uID0gMDsKKyAgICB0cmFja0luZm8ua2lu
ZCA9IHJlbmRlclByb2dyZXNzLT5wb3NpdGlvbigpIDwgMCA/IGtUaGVtZUxhcmdlSW5kZXRlcm1p
bmF0ZUJhciA6IGtUaGVtZUxhcmdlUHJvZ3Jlc3NCYXI7CisgICAgdHJhY2tJbmZvLmJvdW5kcyA9
IHI7CisgICAgdHJhY2tJbmZvLm1pbiA9IDA7CisgICAgdHJhY2tJbmZvLm1heCA9IHN0ZDo6bnVt
ZXJpY19saW1pdHM8aW50Pjo6bWF4KCk7CisgICAgdHJhY2tJbmZvLnZhbHVlID0gKFNJbnQzMiko
cmVuZGVyUHJvZ3Jlc3MtPnBvc2l0aW9uKCkgKiBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1h
eCgpKTsKKyAgICB0cmFja0luZm8udHJhY2tJbmZvLnByb2dyZXNzLnBoYXNlID0gKHJlbmRlclBy
b2dyZXNzLT5hbmltYXRpb25Qcm9ncmVzcygpICogcHJvZ3Jlc3NBbmltYXRpb25EdXJhdGlvbiAv
IHByb2dyZXNzQW5pbWF0aW9uUmVwZWF0SW50ZXJ2YWwpOworICAgIHRyYWNrSW5mby5hdHRyaWJ1
dGVzID0gMDsKKyAgICB0cmFja0luZm8uYXR0cmlidXRlcyB8PSBrVGhlbWVUcmFja0hvcml6b250
YWw7CisgICAgdHJhY2tJbmZvLmVuYWJsZVN0YXRlID0gby0+ZG9jdW1lbnQoKS0+ZnJhbWUoKS0+
cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS0+aXNBY3RpdmUoKSA/ICBrVGhlbWVUcmFja0FjdGl2
ZSA6IGtUaGVtZVRyYWNrSW5hY3RpdmU7CisKKyAgICB0cmFja0luZm8uYm91bmRzID0gSW50UmVj
dChJbnRQb2ludCgpLCByLnNpemUoKSk7CisKKyAgICBJbnRSZWN0IGJ1ZmZlclJlY3QodHJhY2tJ
bmZvLmJvdW5kcyk7CisKKyAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1h
Z2VCdWZmZXI6OmNyZWF0ZShidWZmZXJSZWN0LnNpemUoKSk7CisgICAgaWYgKCFpbWFnZUJ1ZmZl
cikKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBDR0NvbnRleHRTYXZlR1N0YXRlKHBpLmNv
bnRleHQtPnBsYXRmb3JtQ29udGV4dCgpKTsKKworICAgIGlmIChyZW5kZXJQcm9ncmVzcy0+c3R5
bGUoKS0+ZGlyZWN0aW9uKCkgPT0gUlRMKSB7CisgICAgICAgIENHQ29udGV4dFRyYW5zbGF0ZUNU
TShwaS5jb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSwgMiAqIHIueCgpICsgci53aWR0aCgpLCAw
KTsKKyAgICAgICAgQ0dDb250ZXh0U2NhbGVDVE0ocGkuY29udGV4dC0+cGxhdGZvcm1Db250ZXh0
KCksIC0xLCAxKTsKKyAgICB9CisgICAgSElUaGVtZURyYXdUcmFjaygmdHJhY2tJbmZvLCAwLCBp
bWFnZUJ1ZmZlci0+Y29udGV4dCgpLT5wbGF0Zm9ybUNvbnRleHQoKSwga0hJVGhlbWVPcmllbnRh
dGlvbk5vcm1hbCk7CisgICAgcGkuY29udGV4dC0+ZHJhd0ltYWdlKGltYWdlQnVmZmVyLT5pbWFn
ZSgpLCBEZXZpY2VDb2xvclNwYWNlLCByLmxvY2F0aW9uKCkpOworCisgICAgQ0dDb250ZXh0UmVz
dG9yZUdTdGF0ZShwaS5jb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSk7CisgICAgcmV0dXJuIGZh
bHNlOworfSAgICAKKyNlbmRpZgogCiBjb25zdCBmbG9hdCBiYXNlRm9udFNpemUgPSAxMS4wZjsK
IGNvbnN0IGZsb2F0IGJhc2VBcnJvd0hlaWdodCA9IDQuMGY7CkluZGV4OiBXZWJLaXQvbWFjL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gNTY5
MTMpCisrKyBXZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEy
IEBACisyMDEwLTA0LTAxICB5YWVsIGFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFibGUgSFRN
TFByb2dyZXNzRWxlbWVudCBmb3IgU2FmYXJpIG9uIE9TWAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY5NjEKKworICAgICAgICAqIENvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDEwLTAzLTMxICBDaHJpcyBGbGVpemFj
aCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuCkluZGV4OiBXZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcJKHJldmlzaW9uIDU2OTEyKQorKysgV2ViS2l0L21hYy9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsNyBA
QCBFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUiA9IEVOQUJMRV9KQVZBCiBFTkFCTEVfTUFUSE1M
ID0gOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSA7CiBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TID0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUzsKK0VOQUJMRV9QUk9HUkVT
U19UQUcgPSBFTkFCTEVfUFJPR1JFU1NfVEFHOwogRU5BQkxFX1JVQlkgPSBFTkFCTEVfUlVCWTsK
IEVOQUJMRV9TQU5EQk9YID0gRU5BQkxFX1NBTkRCT1g7CiBFTkFCTEVfU0hBUkVEX1dPUktFUlMg
PSBFTkFCTEVfU0hBUkVEX1dPUktFUlM7CkBAIC03NSw0ICs3Niw0IEBAIEVOQUJMRV9YSFRNTE1Q
ID0gOwogRU5BQkxFX1hQQVRIID0gRU5BQkxFX1hQQVRIOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVf
WFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfQ0FOVkFTKSAkKEVOQUJMRV8z
RF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0JfU0xJQ0UpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FH
SU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNF
KSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RPTV9TVE9S
QUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfR0VP
TE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RSkgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJM
RV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5B
QkxFX1JVQlkpICQoRU5BQkxFX1NBTkRCT1gpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVO
QUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkg
JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5B
QkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8p
ICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMpICQo
RU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVf
REVGSU5FUyA9ICQoRU5BQkxFXzNEX0NBTlZBUykgJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVO
QUJMRV9CTE9CX1NMSUNFKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUdS
SUQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZF
TlRTT1VSQ0UpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJM
RV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0pBVkFT
Q1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykg
JChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcp
ICQoRU5BQkxFX1JVQlkpICQoRU5BQkxFX1NBTkRCT1gpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJT
KSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19J
TUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMp
ICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVf
VklERU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktF
UlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDU2OTEzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDQtMDEgIHlhZWwgYWhhcm9uICA8eWFlbC5h
aGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEVuYWJsZSBIVE1MUHJvZ3Jlc3NFbGVtZW50IGZvciBTYWZhcmkgb24gT1NYCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjk2MQorCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisKIDIwMTAtMDQtMDEgIHlhZWwgYWhhcm9u
ICA8eWFlbC5haGFyb25Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IExhc3psbyBH
b21ib3MuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAkocmV2aXNpb24gNTY5MTIpCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMTMy
LDcgKzEzMiw2IEBAIGZhc3QvZm9ybXMvbXVsdGlwbGUtZm9ybS1zdWJtaXNzaW9uLXByb3QKIAog
IyByZW5kZXJUaGVtZSBpcyBub3QgcmVhZHkgdG8gZHJhdyBwcm9ncmVzcyBlbGVtZW50CiBmYXN0
L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQuaHRtbAotZmFzdC9kb20v
SFRNTFByb2dyZXNzRWxlbWVudC9zZXQtcHJvZ3Jlc3MtcHJvcGVydGllcy5odG1sCiAKICMgZXZl
bnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvdXJpLWxpc3QnKSBub3QgY29ycmVjdGx5IGlt
cGxlbWVudGVkIG9uIE1hYwogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGFUcmFuc2Zlci1zZXREYXRh
LWdldERhdGEuaHRtbAo=
</data>
<flag name="review"
          id="35734"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52412</attachid>
            <date>2010-04-02 06:44:35 -0700</date>
            <delta_ts>2010-04-02 15:22:30 -0700</delta_ts>
            <desc>Patch, address comment #5</desc>
            <filename>36961.patch</filename>
            <type>text/plain</type>
            <size>25180</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU2OTk2KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDQtMDEgIHlhZWwgYWhh
cm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEVuYWJsZSBIVE1MUHJvZ3Jlc3NFbGVtZW50IGZvciBTYWZh
cmkgb24gT1NYCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNjk2MQorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWc6CisKIDIwMTAtMDQtMDEgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KSW5kZXg6IEphdmFTY3JpcHRDb3Jl
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEph
dmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZp
c2lvbiA1Njk5NikKKysrIEphdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC01OSw2ICs1OSw3IEBAIEVOQUJMRV9KQVZB
U0NSSVBUX0RFQlVHR0VSID0gRU5BQkxFX0pBVkEKIEVOQUJMRV9NQVRITUwgPSA7CiBFTkFCTEVf
Tk9USUZJQ0FUSU9OUyA9IDsKIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMgPSBFTkFC
TEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TOworRU5BQkxFX1BST0dSRVNTX1RBRyA9IEVOQUJM
RV9QUk9HUkVTU19UQUc7CiBFTkFCTEVfUlVCWSA9IEVOQUJMRV9SVUJZOwogRU5BQkxFX1NBTkRC
T1ggPSBFTkFCTEVfU0FOREJPWDsKIEVOQUJMRV9TSEFSRURfV09SS0VSUyA9IEVOQUJMRV9TSEFS
RURfV09SS0VSUzsKQEAgLTc3LDQgKzc4LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVf
WFBBVEggPSBFTkFCTEVfWFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFU
VVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9DQU5WQVMpICQoRU5BQkxFXzNEX1JFTkRFUklORykg
JChFTkFCTEVfQkxPQl9TTElDRSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxF
X0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RB
VEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxF
X0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1JFQURFUikgJChF
TkFCTEVfRklMRV9XUklURVIpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFU
QUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVC
VUdHRVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVf
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9SVUJZKSAkKEVOQUJMRV9TQU5EQk9Y
KSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5J
TUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5E
SU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQo
RU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChF
TkFCTEVfV01MKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9Y
UEFUSCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9DQU5W
QVMpICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQkxPQl9TTElDRSkgJChFTkFCTEVf
Q0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChF
TkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChF
TkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJT
KSAkKEVOQUJMRV9GSUxFX1JFQURFUikgJChFTkFCTEVfRklMRV9XUklURVIpICQoRU5BQkxFX0dF
T0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJB
U0UpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFC
TEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVO
QUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JVQlkpICQoRU5BQkxFX1NBTkRCT1gpICQoRU5B
QkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04p
ICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAk
KEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVf
U1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9X
TUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAk
KEVOQUJMRV9YU0xUKTsKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA1Njk5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDQtMDEgIHlhZWwgYWhhcm9uICA8
eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEVuYWJsZSBIVE1MUHJvZ3Jlc3NFbGVtZW50IGZvciBTYWZhcmkgb24g
T1NYCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjk2
MQorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjphbmltYXRpb25SZXBl
YXRJbnRlcnZhbEZvclByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
TWFjOjphbmltYXRpb25EdXJhdGlvbkZvclByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lTWFjOjphZGp1c3RQcm9ncmVzc0JhclN0eWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKToKKwogMjAxMC0wNC0wMiAgTGFz
emxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBXZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcJKHJldmlzaW9uIDU2OTk2KQorKysgV2ViQ29yZS9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtNTksNiAr
NTksNyBAQCBFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUiA9IEVOQUJMRV9KQVZBCiBFTkFCTEVf
TUFUSE1MID0gOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSA7CiBFTkFCTEVfT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TID0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUzsKK0VOQUJMRV9Q
Uk9HUkVTU19UQUcgPSBFTkFCTEVfUFJPR1JFU1NfVEFHOwogRU5BQkxFX1JVQlkgPSBFTkFCTEVf
UlVCWTsKIEVOQUJMRV9TQU5EQk9YID0gRU5BQkxFX1NBTkRCT1g7CiBFTkFCTEVfU0hBUkVEX1dP
UktFUlMgPSBFTkFCTEVfU0hBUkVEX1dPUktFUlM7CkBAIC03Nyw0ICs3OCw0IEBAIEVOQUJMRV9Y
SFRNTE1QID0gOwogRU5BQkxFX1hQQVRIID0gRU5BQkxFX1hQQVRIOwogRU5BQkxFX1hTTFQgPSBF
TkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfQ0FOVkFTKSAkKEVO
QUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0JfU0xJQ0UpICQoRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RB
VEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RP
TV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFC
TEVfRklMRV9SRUFERVIpICQoRU5BQkxFX0ZJTEVfV1JJVEVSKSAkKEVOQUJMRV9HRU9MT0NBVElP
TikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVO
QUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX05PVElG
SUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUlVC
WSkgJChFTkFCTEVfU0FOREJPWCkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NW
RykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJM
RV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZH
X0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9WSURFTykgJChFTkFC
TEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVf
WEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVT
ID0gJChFTkFCTEVfM0RfQ0FOVkFTKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JM
T0JfU0xJQ0UpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChF
TkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJD
RSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9SRUFERVIpICQoRU5BQkxFX0ZJTEVf
V1JJVEVSKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVO
QUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVO
QUJMRV9NQVRITUwpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SVUJZKSAkKEVO
QUJMRV9TQU5EQk9YKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVO
QUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19E
T01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlH
Tl9PQkpFQ1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9XRUJf
U09DS0VUUykgJChFTkFCTEVfV01MKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1Q
KSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNTY5OTYpCisrKyBXZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjUwMCw2
ICsyNTAwLDEyIEBACiAJCUExMzZBMDBEMTEzNERCRDIwMENDOEQ1MCAvKiBYTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTEzNkEwMEIxMTM0REJEMjAwQ0M4RDUwIC8qIFhNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudFRocm90dGxlLmggKi87IH07CiAJCUExN0M4MTIyMEYyQTVDRjcwMDVEQUFF
QiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTE3QzgxMjAwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50
RmFjdG9yeS5jcHAgKi87IH07CiAJCUExN0M4MTIzMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxl
bWVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEExN0M4MTIxMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuaCAqLzsg
fTsKKwkJQTQyMjZFNUExMTYzRDY2NzAwOEI4Mzk3IC8qIEpTSFRNTFByb2dyZXNzRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNDIyNkU1
OTExNjNENjY3MDA4QjgzOTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCAqLzsgfTsKKwkJ
QTQyMjZFNUMxMTYzRDY5NTAwOEI4Mzk3IC8qIEpTSFRNTFByb2dyZXNzRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTQyMjZFNUIxMTYzRDY5
NTAwOEI4Mzk3IC8qIEpTSFRNTFByb2dyZXNzRWxlbWVudC5oICovOyB9OworCQlBNDIyNkU5NTEx
NjNENzNBMDA4QjgzOTcgLyogRE9NSFRNTFByb2dyZXNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTQyMjZFOTIxMTYzRDczQTAwOEI4Mzk3
IC8qIERPTUhUTUxQcm9ncmVzc0VsZW1lbnQuaCAqLzsgfTsKKwkJQTQyMjZFOTYxMTYzRDczQTAw
OEI4Mzk3IC8qIERPTUhUTUxQcm9ncmVzc0VsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNDIyNkU5MzExNjNENzNBMDA4QjgzOTcgLyogRE9N
SFRNTFByb2dyZXNzRWxlbWVudC5tbSAqLzsgfTsKKwkJQTQyMjZFOTkxMTYzRDdDQzAwOEI4Mzk3
IC8qIERPTUhUTUxQcm9ncmVzc0VsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTQyMjZFOTgxMTYzRDdDQzAwOEI4Mzk3IC8qIERP
TUhUTUxQcm9ncmVzc0VsZW1lbnRJbnRlcm5hbC5oICovOyB9OworCQlBNDIyNkVBNjExNjNEODRE
MDA4QjgzOTcgLyogSFRNTFByb2dyZXNzRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE0MjI2RUE1MTE2M0Q4NEQwMDhCODM5NyAvKiBI
VE1MUHJvZ3Jlc3NFbGVtZW50LmlkbCAqLzsgfTsKIAkJQTQzQkY1OTgxMTQ5MjkwQTAwQzY0M0NB
IC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTQzQkY1OTYxMTQ5MjkwQTAwQzY0M0NBIC8qIEhUTUxQcm9ncmVz
c0VsZW1lbnQuY3BwICovOyB9OwogCQlBNDNCRjU5OTExNDkyOTBBMDBDNjQzQ0EgLyogSFRNTFBy
b2dyZXNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTQzQkY1OTcxMTQ5MjkwQTAwQzY0M0NBIC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuaCAq
LzsgfTsKIAkJQTQzQkY1OUMxMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclByb2dyZXNzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE0M0JGNTlBMTE0
OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5jcHAgKi87IH07CkBAIC03OTIxLDYgKzc5
MjcsMTIgQEAKIAkJQTEzNkEwMEIxMTM0REJEMjAwQ0M4RDUwIC8qIFhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudFRocm90dGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUExN0M4MTIwMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3Rvcnku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTEVsZW1lbnRGYWN0
b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE3QzgxMjEwRjJBNUNGNzAw
NURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIVE1MRWxlbWVudEZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTQyMjZFNTkxMTYzRDY2NzAwOEI4Mzk3IC8qIEpTSFRNTFByb2dyZXNzRWxlbWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxQcm9ncmVzc0VsZW1l
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNDIyNkU1QjExNjNENjk1MDA4
QjgzOTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTSFRNTFByb2dyZXNzRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBNDIyNkU5MjExNjNENzNBMDA4QjgzOTcgLyogRE9NSFRNTFByb2dyZXNzRWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MUHJvZ3Jlc3NFbGVt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE0MjI2RTkzMTE2M0Q3M0EwMDhC
ODM5NyAvKiBET01IVE1MUHJvZ3Jlc3NFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTFByb2dyZXNzRWxlbWVudC5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTQyMjZFOTgxMTYzRDdDQzAwOEI4Mzk3IC8qIERPTUhUTUxQcm9n
cmVzc0VsZW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
T01IVE1MUHJvZ3Jlc3NFbGVtZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQTQyMjZFQTUxMTYzRDg0RDAwOEI4Mzk3IC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxQcm9ncmVzc0VsZW1lbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBNDNCRjU5NjExNDkyOTBBMDBDNjQzQ0EgLyogSFRNTFBy
b2dyZXNzRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
VE1MUHJvZ3Jlc3NFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTQz
QkY1OTcxMTQ5MjkwQTAwQzY0M0NBIC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFByb2dyZXNzRWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNDNCRjU5QTExNDkyOTI4MDBDNjQzQ0EgLyogUmVuZGVyUHJv
Z3Jlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyUHJv
Z3Jlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI0OTQsNiArMTI1MDYs
OCBAQAogCQkJCTg1RUNCRUVBMEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MUGFyYW1FbGVtZW50
Lm1tICovLAogCQkJCTg1MTgzQjNFMEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MUHJlRWxlbWVu
dC5oICovLAogCQkJCTg1MTgzQjNGMEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MUHJlRWxlbWVu
dC5tbSAqLywKKwkJCQlBNDIyNkU5MjExNjNENzNBMDA4QjgzOTcgLyogRE9NSFRNTFByb2dyZXNz
RWxlbWVudC5oICovLAorCQkJCUE0MjI2RTkzMTE2M0Q3M0EwMDhCODM5NyAvKiBET01IVE1MUHJv
Z3Jlc3NFbGVtZW50Lm1tICovLAogCQkJCTg1MTgzQjQwMEFBNjkyNjEwMEYxOUZBMyAvKiBET01I
VE1MUXVvdGVFbGVtZW50LmggKi8sCiAJCQkJODUxODNCNDEwQUE2OTI2MTAwRjE5RkEzIC8qIERP
TUhUTUxRdW90ZUVsZW1lbnQubW0gKi8sCiAJCQkJODVERjgxOTMwQUE3N0U0QjAwNDg2QUQ3IC8q
IERPTUhUTUxTY3JpcHRFbGVtZW50LmggKi8sCkBAIC0xMjYwOCw2ICsxMjYyMiw3IEBACiAJCQkJ
ODVFNzExNzIwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50SW50ZXJu
YWwuaCAqLywKIAkJCQk4NUU3MTE3MzBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFBhcmFtRWxl
bWVudEludGVybmFsLmggKi8sCiAJCQkJODVFNzExNzQwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhU
TUxQcmVFbGVtZW50SW50ZXJuYWwuaCAqLywKKwkJCQlBNDIyNkU5ODExNjNEN0NDMDA4QjgzOTcg
LyogRE9NSFRNTFByb2dyZXNzRWxlbWVudEludGVybmFsLmggKi8sCiAJCQkJODVFNzExNzUwQUM1
RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxRdW90ZUVsZW1lbnRJbnRlcm5hbC5oICovLAogCQkJCTg1
RTcxMTc2MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MU2NyaXB0RWxlbWVudEludGVybmFsLmgg
Ki8sCiAJCQkJODVFNzExNzcwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxTZWxlY3RFbGVtZW50
SW50ZXJuYWwuaCAqLywKQEAgLTEyOTMyLDggKzEyOTQ3LDYgQEAKIAkJCWNoaWxkcmVuID0gKAog
CQkJCTg5NTI1MzUwMTE2NDFCMzQwMENBQkYwMCAvKiBGaWxlVGhyZWFkLmNwcCAqLywKIAkJCQk4
OTUyNTM1MTExNjQxQjM0MDBDQUJGMDAgLyogRmlsZVRocmVhZC5oICovLAotCQkJCUE0M0JGNTk2
MTE0OTI5MEEwMEM2NDNDQSAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCAqLywKLQkJCQlBNDNC
RjU5NzExNDkyOTBBMDBDNjQzQ0EgLyogSFRNTFByb2dyZXNzRWxlbWVudC5oICovLAogCQkJCTQ5
NDg0RkFFMTAyQ0YwMUUwMDE4N0REMyAvKiBjYW52YXMgKi8sCiAJCQkJMkVBRkFGMEIxMEUyQUYy
RDAwN0VEM0Q2IC8qIEJsb2IuY3BwICovLAogCQkJCTJFQUZBRjBDMTBFMkFGMkQwMDdFRDNENiAv
KiBCbG9iLmggKi8sCkBAIC0xMzE1NCw2ICsxMzE2Nyw5IEBACiAJCQkJQThFQTdDOUYwQTE5MkI5
QzAwQThFRjVGIC8qIEhUTUxQcmVFbGVtZW50LmNwcCAqLywKIAkJCQlBOEVBN0NBMjBBMTkyQjlD
MDBBOEVGNUYgLyogSFRNTFByZUVsZW1lbnQuaCAqLywKIAkJCQkxQUUyQUI4NTBBMUNFODUwMDBC
NDJCMjUgLyogSFRNTFByZUVsZW1lbnQuaWRsICovLAorCQkJCUE0M0JGNTk2MTE0OTI5MEEwMEM2
NDNDQSAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCAqLywKKwkJCQlBNDNCRjU5NzExNDkyOTBB
MDBDNjQzQ0EgLyogSFRNTFByb2dyZXNzRWxlbWVudC5oICovLAorCQkJCUE0MjI2RUE1MTE2M0Q4
NEQwMDhCODM5NyAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50LmlkbCAqLywKIAkJCQlBOENGRjc5QjBB
MTU2OTc4MDAwQTQyMzQgLyogSFRNTFF1b3RlRWxlbWVudC5jcHAgKi8sCiAJCQkJQThDRkY3OTkw
QTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxRdW90ZUVsZW1lbnQuaCAqLywKIAkJCQkxQUUyQUVBMzBB
MUQyOEU4MDBCNDJCMjUgLyogSFRNTFF1b3RlRWxlbWVudC5pZGwgKi8sCkBAIC0xMzQwOCw2ICsx
MzQyNCw4IEBACiAJCQkJMUFFMkFCQTEwQTFDRTkwNTAwQjQyQjI1IC8qIEpTSFRNTFBhcmFtRWxl
bWVudC5oICovLAogCQkJCTFBRTJBQkEyMEExQ0U5MDUwMEI0MkIyNSAvKiBKU0hUTUxQcmVFbGVt
ZW50LmNwcCAqLywKIAkJCQkxQUUyQUJBMzBBMUNFOTA1MDBCNDJCMjUgLyogSlNIVE1MUHJlRWxl
bWVudC5oICovLAorCQkJCUE0MjI2RTU5MTE2M0Q2NjcwMDhCODM5NyAvKiBKU0hUTUxQcm9ncmVz
c0VsZW1lbnQuY3BwICovLAorCQkJCUE0MjI2RTVCMTE2M0Q2OTUwMDhCODM5NyAvKiBKU0hUTUxQ
cm9ncmVzc0VsZW1lbnQuaCAqLywKIAkJCQkxQUUyQUVDMzBBMUQyOTdCMDBCNDJCMjUgLyogSlNI
VE1MUXVvdGVFbGVtZW50LmNwcCAqLywKIAkJCQkxQUUyQUVDNDBBMUQyOTdCMDBCNDJCMjUgLyog
SlNIVE1MUXVvdGVFbGVtZW50LmggKi8sCiAJCQkJMUFFMkFCQTQwQTFDRTkwNTAwQjQyQjI1IC8q
IEpTSFRNTFNjcmlwdEVsZW1lbnQuY3BwICovLApAQCAtMTg3NzYsNiArMTg3OTQsOSBAQAogCQkJ
CUU0Nzc4QjgwMTE1QTU4MUEwMEI1RDM3MiAvKiBKU0N1c3RvbUV2ZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlFMUUxQkYwMDExNUZGNkZCMDA2RjUyQ0EgLyogV2luZG93c0tleWJvYXJkQ29kZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg0OTlBNTE1MTE1RkIzMzAwMEY1NjZFMyAvKiBSZW5kZXJT
VkdSZXNvdXJjZU1hcmtlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTQyMjZFNUMxMTYzRDY5NTAw
OEI4Mzk3IC8qIEpTSFRNTFByb2dyZXNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTQy
MjZFOTUxMTYzRDczQTAwOEI4Mzk3IC8qIERPTUhUTUxQcm9ncmVzc0VsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUE0MjI2RTk5MTE2M0Q3Q0MwMDhCODM5NyAvKiBET01IVE1MUHJvZ3Jlc3NF
bGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFM0JCRjA4MTE2MkRBMTEwMEI5
NDA5QSAvKiBVVUlELmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTUyNTM1MzExNjQxQjM0MDBDQUJG
MDAgLyogRmlsZVRocmVhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdDMDc4NTAxMTY1RDVCRTAw
M0EzMkVGIC8qIFN1ZmZpeFRyZWUuaCBpbiBIZWFkZXJzICovLApAQCAtMTg4ODIsNiArMTg5MDMs
NyBAQAogCQkJCTFBQjFBRTdBMEMwNTFGREUwMDEzOUY0RiAvKiB6b29tSW5DdXJzb3IucG5nIGlu
IFJlc291cmNlcyAqLywKIAkJCQkxQUIxQUU3QjBDMDUxRkRFMDAxMzlGNEYgLyogem9vbU91dEN1
cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJCTJFMDg4OEM0MTE0ODgzQTkwMEFGNDI2NSAv
KiBET01Gb3JtRGF0YS5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE0MjI2RUE2MTE2M0Q4NEQw
MDhCODM5NyAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0y
MDk5Miw2ICsyMTAxNCw4IEBACiAJCQkJNjJDRDMyNTkxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3Rv
bUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0Nzc4QjdGMTE1QTU4MUEwMEI1RDM3MiAv
KiBKU0N1c3RvbUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg0OTlBNTE0MTE1RkIzMzAw
MEY1NjZFMyAvKiBSZW5kZXJTVkdSZXNvdXJjZU1hcmtlci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlBNDIyNkU1QTExNjNENjY3MDA4QjgzOTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUE0MjI2RTk2MTE2M0Q3M0EwMDhCODM5NyAvKiBET01IVE1MUHJv
Z3Jlc3NFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkUzQkJGMDcxMTYyREExMTAwQjk0
MDlBIC8qIFVVSUQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODk1MjUzNTIxMTY0MUIzNDAwQ0FC
RjAwIC8qIEZpbGVUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwpJbmRleDogV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5oCShyZXZpc2lvbiA1Njk5NikKKysrIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDkgKzI0LDEyIEBACiAj
ZGVmaW5lIFJlbmRlclRoZW1lTWFjX2gKIAogI2ltcG9ydCAiUmVuZGVyVGhlbWUuaCIKKwogI2lt
cG9ydCA8d3RmL0hhc2hNYXAuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAorY2xhc3Mg
UmVuZGVyUHJvZ3Jlc3M7CisKICNpZmRlZiBfX09CSkNfXwogQGNsYXNzIFdlYkNvcmVSZW5kZXJU
aGVtZU5vdGlmaWNhdGlvbk9ic2VydmVyOwogI2Vsc2UKQEAgLTc3LDcgKzgwLDEzIEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGludCBwb3B1cEludGVybmFsUGFkZGluZ0JvdHRvbShSZW5kZXJTdHls
ZSopIGNvbnN0OwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBwYWludENhcHNMb2NrSW5kaWNhdG9y
KFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50
UmVjdCYpOwotCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyAgICAvLyBSZXR1cm5zIHRoZSBy
ZXBlYXQgaW50ZXJ2YWwgb2YgdGhlIGFuaW1hdGlvbiBmb3IgdGhlIHByb2dyZXNzIGJhci4KKyAg
ICB2aXJ0dWFsIGRvdWJsZSBhbmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFyKFJl
bmRlclByb2dyZXNzKikgY29uc3Q7CisgICAgLy8gUmV0dXJucyB0aGUgZHVyYXRpb24gb2YgdGhl
IGFuaW1hdGlvbiBmb3IgdGhlIHByb2dyZXNzIGJhci4KKyAgICB2aXJ0dWFsIGRvdWJsZSBhbmlt
YXRpb25EdXJhdGlvbkZvclByb2dyZXNzQmFyKFJlbmRlclByb2dyZXNzKikgY29uc3Q7CisjZW5k
aWYKKyAgICAKICAgICB2aXJ0dWFsIENvbG9yIHN5c3RlbUNvbG9yKGludCBjc3NWYWx1ZUlkKSBj
b25zdDsKIAogcHJvdGVjdGVkOgpAQCAtOTUsNiArMTA0LDExIEBAIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIGJvb2wgcGFpbnRNZW51TGlzdEJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5k
ZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQg
YWRqdXN0TWVudUxpc3RCdXR0b25TdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUq
LCBFbGVtZW50KikgY29uc3Q7CiAKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorICAgIHZpcnR1
YWwgdm9pZCBhZGp1c3RQcm9ncmVzc0JhclN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJT
dHlsZSosIEVsZW1lbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRQcm9ncmVzc0Jh
cihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IElu
dFJlY3QmKTsKKyNlbmRpZgorCiAgICAgdmlydHVhbCBib29sIHBhaW50U2xpZGVyVHJhY2soUmVu
ZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0
Jik7CiAgICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRyYWNrU3R5bGUoQ1NTU3R5bGVTZWxl
Y3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0OwogCkBAIC0xNDQsNyArMTU4LDcg
QEAgcHJpdmF0ZToKICAgICBJbnRSZWN0IGluZmxhdGVSZWN0KGNvbnN0IEludFJlY3QmLCBjb25z
dCBJbnRTaXplJiwgY29uc3QgaW50KiBtYXJnaW5zLCBmbG9hdCB6b29tTGV2ZWwgPSAxLjBmKSBj
b25zdDsKIAogICAgIEZsb2F0UmVjdCBjb252ZXJ0VG9QYWludGluZ1JlY3QoY29uc3QgUmVuZGVy
T2JqZWN0KiBpbnB1dFJlbmRlcmVyLCBjb25zdCBSZW5kZXJPYmplY3QqIHBhcnRSZW5kZXJlciwg
Y29uc3QgRmxvYXRSZWN0JiBpbnB1dFJlY3QsIGNvbnN0IEludFJlY3QmIHIpIGNvbnN0OwotICAg
IAorCiAgICAgLy8gR2V0IHRoZSBjb250cm9sIHNpemUgYmFzZWQgb2ZmIHRoZSBmb250LiAgVXNl
ZCBieSBzb21lIG9mIHRoZSBjb250cm9scyAobGlrZSBidXR0b25zKS4KICAgICBOU0NvbnRyb2xT
aXplIGNvbnRyb2xTaXplRm9yRm9udChSZW5kZXJTdHlsZSopIGNvbnN0OwogICAgIE5TQ29udHJv
bFNpemUgY29udHJvbFNpemVGb3JTeXN0ZW1Gb250KFJlbmRlclN0eWxlKikgY29uc3Q7CkBAIC0x
NzMsNyArMTg3LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBJbnRTaXplKiByZXN1bHRzQnV0dG9u
U2l6ZXMoKSBjb25zdDsKICAgICB2b2lkIHNldFNlYXJjaENlbGxTdGF0ZShSZW5kZXJPYmplY3Qq
LCBjb25zdCBJbnRSZWN0Jik7CiAgICAgdm9pZCBzZXRTZWFyY2hGaWVsZFNpemUoUmVuZGVyU3R5
bGUqKSBjb25zdDsKLSAgICAKKwogICAgIE5TUG9wVXBCdXR0b25DZWxsKiBwb3B1cEJ1dHRvbigp
IGNvbnN0OwogICAgIE5TU2VhcmNoRmllbGRDZWxsKiBzZWFyY2goKSBjb25zdDsKICAgICBOU01l
bnUqIHNlYXJjaE1lbnVUZW1wbGF0ZSgpIGNvbnN0OwpAQCAtMTk0LDcgKzIwOCw3IEBAIHByaXZh
dGU6CiAKICAgICBSZXRhaW5QdHI8V2ViQ29yZVJlbmRlclRoZW1lTm90aWZpY2F0aW9uT2JzZXJ2
ZXI+IG1fbm90aWZpY2F0aW9uT2JzZXJ2ZXI7CiB9OwotCisgICAgCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBSZW5kZXJUaGVtZU1hY19oCkluZGV4OiBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5tbQkocmV2aXNpb24gNTY5OTYpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9y
dCAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2ltcG9ydCAiSFRNTE5hbWVzLmgiCiAjaW1wb3J0ICJJ
bWFnZS5oIgorI2ltcG9ydCAiSW1hZ2VCdWZmZXIuaCIKICNpbXBvcnQgIkxvY2FsQ3VycmVudEdy
YXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiTWVkaWFDb250cm9sRWxlbWVudHMuaCIKICNpbXBv
cnQgIlJlbmRlck1lZGlhLmgiCkBAIC00NywxNyArNDgsMjggQEAKICNpbXBvcnQgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KICNpbXBvcnQgPG1hdGguaD4KIAorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcp
CisjaW1wb3J0ICJSZW5kZXJQcm9ncmVzcy5oIgorI2VuZGlmCisKICNpZmRlZiBCVUlMRElOR19P
Tl9USUdFUgogdHlwZWRlZiBpbnQgTlNJbnRlZ2VyOwogdHlwZWRlZiB1bnNpZ25lZCBOU1VJbnRl
Z2VyOwogI2VuZGlmCiAKLXVzaW5nIHN0ZDo6bWluOwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAog
Ly8gVGhlIG1ldGhvZHMgaW4gdGhpcyBmaWxlIGFyZSBzcGVjaWZpYyB0byB0aGUgTWFjIE9TIFgg
cGxhdGZvcm0uCiAKIC8vIEZJWE1FOiBUaGUgcGxhdGZvcm0taW5kZXBlbmRlbnQgY29kZSBpbiB0
aGlzIGNsYXNzIHNob3VsZCBiZSBmYWN0b3JlZCBvdXQgYW5kIG1lcmdlZCB3aXRoIFJlbmRlclRo
ZW1lU2FmYXJpLiAKIAorLy8gZnBzIGZvciB0aGUgYW5pbWF0aW9uIG9mIHRoZSBwcm9ncmVzcyBi
YXJpcyBoYXJkLWNvZGVkIGF0IDMzIGZwcywgaXQgc2VlbXMgdG8gYmUgdGhlIHNhbWUgYXMgb3Ro
ZXIgYXBwbGljYXRpb25zCisvLyB0aGF0IHVzZSBhIHByb2dyZXNzIGJhciBvbiBPU1guCitjb25z
dCBkb3VibGUgcHJvZ3Jlc3NBbmltYXRpb25SZXBlYXRJbnRlcnZhbCA9IDAuMDMzOworCisvLyBJ
dCBzZWVtcyB0aGF0IHRoZSBhbmltYXRpb24gb2YgdGhlIHByb2dyZXNzIGJhciBoYXMgMjU2IGZy
YW1lcywgdGh1cyB0aGUgZHVyYXRpb24gaXMgZXN0aW1hdGVkIGF0IDI1NiB0aW1lcyB0aGUgZnBz
LgorY29uc3QgZG91YmxlIHByb2dyZXNzQW5pbWF0aW9uRHVyYXRpb24gPSAyNTYgKiAwLjAzMzsK
KwogQGludGVyZmFjZSBXZWJDb3JlUmVuZGVyVGhlbWVOb3RpZmljYXRpb25PYnNlcnZlciA6IE5T
T2JqZWN0CiB7CiAgICAgV2ViQ29yZTo6UmVuZGVyVGhlbWUgKl90aGVtZTsKQEAgLTc3MSw2ICs3
ODMsNjAgQEAgYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRNZW51TGlzdChSZW5kZQogCiAgICAg
cmV0dXJuIGZhbHNlOwogfQorICAgCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKworZG91Ymxl
IFJlbmRlclRoZW1lTWFjOjphbmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFyKFJl
bmRlclByb2dyZXNzKikgY29uc3QKK3sKKyAgICByZXR1cm4gcHJvZ3Jlc3NBbmltYXRpb25SZXBl
YXRJbnRlcnZhbDsKK30KKworZG91YmxlIFJlbmRlclRoZW1lTWFjOjphbmltYXRpb25EdXJhdGlv
bkZvclByb2dyZXNzQmFyKFJlbmRlclByb2dyZXNzKikgY29uc3QKK3sKKyAgICByZXR1cm4gcHJv
Z3Jlc3NBbmltYXRpb25EdXJhdGlvbjsKK30KKwordm9pZCBSZW5kZXJUaGVtZU1hYzo6YWRqdXN0
UHJvZ3Jlc3NCYXJTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50
KikgY29uc3QKK3sKK30KKworYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRQcm9ncmVzc0JhcihS
ZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBSZW5kZXJQcm9ncmVzcyog
cmVuZGVyUHJvZ3Jlc3MgPSB0b1JlbmRlclByb2dyZXNzKHJlbmRlck9iamVjdCk7CisgICAgSElU
aGVtZVRyYWNrRHJhd0luZm8gdHJhY2tJbmZvOworICAgIHRyYWNrSW5mby52ZXJzaW9uID0gMDsK
KyAgICB0cmFja0luZm8ua2luZCA9IHJlbmRlclByb2dyZXNzLT5wb3NpdGlvbigpIDwgMCA/IGtU
aGVtZUxhcmdlSW5kZXRlcm1pbmF0ZUJhciA6IGtUaGVtZUxhcmdlUHJvZ3Jlc3NCYXI7CisgICAg
dHJhY2tJbmZvLmJvdW5kcyA9IEludFJlY3QoSW50UG9pbnQoKSwgcmVjdC5zaXplKCkpOworICAg
IHRyYWNrSW5mby5taW4gPSAwOworICAgIHRyYWNrSW5mby5tYXggPSBudW1lcmljX2xpbWl0czxT
SW50MzI+OjptYXgoKTsKKyAgICB0cmFja0luZm8udmFsdWUgPSBscm91bmQocmVuZGVyUHJvZ3Jl
c3MtPnBvc2l0aW9uKCkgKiBuZXh0YWZ0ZXIodHJhY2tJbmZvLm1heCwgMCkpOworICAgIAorICAg
IHRyYWNrSW5mby50cmFja0luZm8ucHJvZ3Jlc3MucGhhc2UgPSByZW5kZXJQcm9ncmVzcy0+YW5p
bWF0aW9uUHJvZ3Jlc3MoKSAqIHByb2dyZXNzQW5pbWF0aW9uRHVyYXRpb24gLyBwcm9ncmVzc0Fu
aW1hdGlvblJlcGVhdEludGVydmFsOworICAgIHRyYWNrSW5mby5hdHRyaWJ1dGVzID0ga1RoZW1l
VHJhY2tIb3Jpem9udGFsOworICAgIHRyYWNrSW5mby5lbmFibGVTdGF0ZSA9IGlzQWN0aXZlKHJl
bmRlck9iamVjdCkgPyBrVGhlbWVUcmFja0FjdGl2ZSA6IGtUaGVtZVRyYWNrSW5hY3RpdmU7Cisg
ICAgdHJhY2tJbmZvLnJlc2VydmVkID0gMDsKKyAgICB0cmFja0luZm8uZmlsbGVyMSA9IDA7CisK
KyAgICBJbnRSZWN0IGJ1ZmZlclJlY3QodHJhY2tJbmZvLmJvdW5kcyk7CisKKyAgICBPd25QdHI8
SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShidWZmZXJSZWN0
LnNpemUoKSk7CisgICAgaWYgKCFpbWFnZUJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIHRydWU7CisK
KyAgICBISVRoZW1lRHJhd1RyYWNrKCZ0cmFja0luZm8sIDAsIGltYWdlQnVmZmVyLT5jb250ZXh0
KCktPnBsYXRmb3JtQ29udGV4dCgpLCBrSElUaGVtZU9yaWVudGF0aW9uTm9ybWFsKTsKKworICAg
IHBhaW50SW5mby5jb250ZXh0LT5zYXZlKCk7CisKKyAgICBpZiAocmVuZGVyUHJvZ3Jlc3MtPnN0
eWxlKCktPmRpcmVjdGlvbigpID09IFJUTCkgeworICAgICAgICBwYWludEluZm8uY29udGV4dC0+
dHJhbnNsYXRlKDIgKiByZWN0LngoKSArIHJlY3Qud2lkdGgoKSwgMCk7CisgICAgICAgIHBhaW50
SW5mby5jb250ZXh0LT5zY2FsZShGbG9hdFNpemUoLTEsIDEpKTsKKyAgICB9CisgICAgcGFpbnRJ
bmZvLmNvbnRleHQtPmRyYXdJbWFnZShpbWFnZUJ1ZmZlci0+aW1hZ2UoKSwgRGV2aWNlQ29sb3JT
cGFjZSwgcmVjdC5sb2NhdGlvbigpKTsKKworICAgIHBhaW50SW5mby5jb250ZXh0LT5yZXN0b3Jl
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfSAgICAKKyNlbmRpZgogCiBjb25zdCBmbG9hdCBiYXNl
Rm9udFNpemUgPSAxMS4wZjsKIGNvbnN0IGZsb2F0IGJhc2VBcnJvd0hlaWdodCA9IDQuMGY7Cklu
ZGV4OiBXZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL0NoYW5n
ZUxvZwkocmV2aXNpb24gNTY5OTYpCisrKyBXZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEwLTA0LTAxICB5YWVsIGFoYXJvbiAgPHlhZWwuYWhh
cm9uQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBFbmFibGUgSFRNTFByb2dyZXNzRWxlbWVudCBmb3IgU2FmYXJpIG9uIE9TWAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY5NjEKKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDEwLTA0
LTAxICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEbWl0cnkgVGl0b3YuCkluZGV4OiBXZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHJldmlzaW9uIDU2OTk2KQorKysgV2ViS2l0
L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5
KQpAQCAtNTksNiArNTksNyBAQCBFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUiA9IEVOQUJMRV9K
QVZBCiBFTkFCTEVfTUFUSE1MID0gOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSA7CiBFTkFCTEVf
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TID0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9O
UzsKK0VOQUJMRV9QUk9HUkVTU19UQUcgPSBFTkFCTEVfUFJPR1JFU1NfVEFHOwogRU5BQkxFX1JV
QlkgPSBFTkFCTEVfUlVCWTsKIEVOQUJMRV9TQU5EQk9YID0gRU5BQkxFX1NBTkRCT1g7CiBFTkFC
TEVfU0hBUkVEX1dPUktFUlMgPSBFTkFCTEVfU0hBUkVEX1dPUktFUlM7CkBAIC03Nyw0ICs3OCw0
IEBAIEVOQUJMRV9YSFRNTE1QID0gOwogRU5BQkxFX1hQQVRIID0gRU5BQkxFX1hQQVRIOwogRU5B
QkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0Rf
Q0FOVkFTKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0JfU0xJQ0UpICQoRU5B
QkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
ICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1Qp
ICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkgJChFTkFCTEVfRklM
VEVSUykgJChFTkFCTEVfRklMRV9SRUFERVIpICQoRU5BQkxFX0ZJTEVfV1JJVEVSKSAkKEVOQUJM
RV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RB
VEFCQVNFKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQo
RU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykg
JChFTkFCTEVfUlVCWSkgJChFTkFCTEVfU0FOREJPWCkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMp
ICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lN
QUdFKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykg
JChFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9W
SURFTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VS
UykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOworRkVB
VFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfQ0FOVkFTKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcp
ICQoRU5BQkxFX0JMT0JfU0xJQ0UpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJM
RV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9E
QVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJM
RV9FVkVOVFNPVVJDRSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9SRUFERVIpICQo
RU5BQkxFX0ZJTEVfV1JJVEVSKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRB
VEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RF
QlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxF
X09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJM
RV9SVUJZKSAkKEVOQUJMRV9TQU5EQk9YKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFC
TEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQo
RU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJM
RV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJREVPKSAk
KEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV01MKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVO
QUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CkluZGV4OiBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA1Njk5NikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMjg5LDYgKzI4OSwxNSBAQAogCiAyMDEwLTA0LTAxICB5YWVsIGFoYXJvbiAgPHlhZWwuYWhh
cm9uQG5va2lhLmNvbT4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBFbmFibGUgSFRNTFByb2dyZXNzRWxlbWVudCBmb3IgU2FmYXJpIG9uIE9TWAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY5NjEKKworICAg
ICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorCisyMDEwLTA0LTAxICB5YWVsIGFoYXJvbiAg
PHlhZWwuYWhhcm9uQG5va2lhLmNvbT4KKwogICAgICAgICBSZXZpZXdlZCBieSBMYXN6bG8gR29t
Ym9zLgogCiAgICAgICAgIHNldC1wcm9ncmVzcy1wcm9wZXJ0aWVzLmh0bWwgZXhwZWN0ZWQgcmVz
dWx0IHNob3VsZCBub3QgYmUgcGxhdGZvcm0gc3BlY2lmaWMKSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9Ta2lwcGVkCShyZXZpc2lvbiA1Njk5NikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9T
a2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsNyArMTMyLDYgQEAgZmFzdC9mb3Jtcy9tdWx0
aXBsZS1mb3JtLXN1Ym1pc3Npb24tcHJvdAogCiAjIHJlbmRlclRoZW1lIGlzIG5vdCByZWFkeSB0
byBkcmF3IHByb2dyZXNzIGVsZW1lbnQKIGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJv
Z3Jlc3MtZWxlbWVudC5odG1sCi1mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3NldC1wcm9n
cmVzcy1wcm9wZXJ0aWVzLmh0bWwKIAogIyBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4
dC91cmktbGlzdCcpIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50ZWQgb24gTWFjCiBlZGl0aW5nL3Bh
c3RlYm9hcmQvZGF0YVRyYW5zZmVyLXNldERhdGEtZ2V0RGF0YS5odG1sCg==
</data>
<flag name="review"
          id="35881"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52458</attachid>
            <date>2010-04-02 15:22:30 -0700</date>
            <delta_ts>2010-04-03 10:27:33 -0700</delta_ts>
            <desc>Patch to address comment #14</desc>
            <filename>36961.patch</filename>
            <type>text/plain</type>
            <size>24119</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU2OTk2KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDQtMDEgIHlhZWwgYWhh
cm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEVuYWJsZSBIVE1MUHJvZ3Jlc3NFbGVtZW50IGZvciBTYWZh
cmkgb24gT1NYCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNjk2MQorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWc6CisKIDIwMTAtMDQtMDEgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KSW5kZXg6IEphdmFTY3JpcHRDb3Jl
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEph
dmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZp
c2lvbiA1Njk5NikKKysrIEphdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC01OSw2ICs1OSw3IEBAIEVOQUJMRV9KQVZB
U0NSSVBUX0RFQlVHR0VSID0gRU5BQkxFX0pBVkEKIEVOQUJMRV9NQVRITUwgPSA7CiBFTkFCTEVf
Tk9USUZJQ0FUSU9OUyA9IDsKIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMgPSBFTkFC
TEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TOworRU5BQkxFX1BST0dSRVNTX1RBRyA9IEVOQUJM
RV9QUk9HUkVTU19UQUc7CiBFTkFCTEVfUlVCWSA9IEVOQUJMRV9SVUJZOwogRU5BQkxFX1NBTkRC
T1ggPSBFTkFCTEVfU0FOREJPWDsKIEVOQUJMRV9TSEFSRURfV09SS0VSUyA9IEVOQUJMRV9TSEFS
RURfV09SS0VSUzsKQEAgLTc3LDQgKzc4LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVf
WFBBVEggPSBFTkFCTEVfWFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFU
VVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9DQU5WQVMpICQoRU5BQkxFXzNEX1JFTkRFUklORykg
JChFTkFCTEVfQkxPQl9TTElDRSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxF
X0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RB
VEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxF
X0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1JFQURFUikgJChF
TkFCTEVfRklMRV9XUklURVIpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFU
QUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVC
VUdHRVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVf
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9SVUJZKSAkKEVOQUJMRV9TQU5EQk9Y
KSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5J
TUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5E
SU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQo
RU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChF
TkFCTEVfV01MKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9Y
UEFUSCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9DQU5W
QVMpICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQkxPQl9TTElDRSkgJChFTkFCTEVf
Q0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChF
TkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChF
TkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJT
KSAkKEVOQUJMRV9GSUxFX1JFQURFUikgJChFTkFCTEVfRklMRV9XUklURVIpICQoRU5BQkxFX0dF
T0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJB
U0UpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFC
TEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVO
QUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JVQlkpICQoRU5BQkxFX1NBTkRCT1gpICQoRU5B
QkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04p
ICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAk
KEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVf
U1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9X
TUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAk
KEVOQUJMRV9YU0xUKTsKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA1Njk5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDQtMDEgIHlhZWwgYWhhcm9uICA8
eWFlbC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEVuYWJsZSBIVE1MUHJvZ3Jlc3NFbGVtZW50IGZvciBTYWZhcmkgb24g
T1NYCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjk2
MQorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjphbmltYXRpb25SZXBl
YXRJbnRlcnZhbEZvclByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
TWFjOjphbmltYXRpb25EdXJhdGlvbkZvclByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lTWFjOjphZGp1c3RQcm9ncmVzc0JhclN0eWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwYWludFByb2dyZXNzQmFyKToKKwogMjAxMC0wNC0wMiAgTGFz
emxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBXZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcJKHJldmlzaW9uIDU2OTk2KQorKysgV2ViQ29yZS9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtNTksNiAr
NTksNyBAQCBFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUiA9IEVOQUJMRV9KQVZBCiBFTkFCTEVf
TUFUSE1MID0gOwogRU5BQkxFX05PVElGSUNBVElPTlMgPSA7CiBFTkFCTEVfT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TID0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUzsKK0VOQUJMRV9Q
Uk9HUkVTU19UQUcgPSBFTkFCTEVfUFJPR1JFU1NfVEFHOwogRU5BQkxFX1JVQlkgPSBFTkFCTEVf
UlVCWTsKIEVOQUJMRV9TQU5EQk9YID0gRU5BQkxFX1NBTkRCT1g7CiBFTkFCTEVfU0hBUkVEX1dP
UktFUlMgPSBFTkFCTEVfU0hBUkVEX1dPUktFUlM7CkBAIC03Nyw0ICs3OCw0IEBAIEVOQUJMRV9Y
SFRNTE1QID0gOwogRU5BQkxFX1hQQVRIID0gRU5BQkxFX1hQQVRIOwogRU5BQkxFX1hTTFQgPSBF
TkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfQ0FOVkFTKSAkKEVO
QUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0JfU0xJQ0UpICQoRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RB
VEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RP
TV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFC
TEVfRklMRV9SRUFERVIpICQoRU5BQkxFX0ZJTEVfV1JJVEVSKSAkKEVOQUJMRV9HRU9MT0NBVElP
TikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVO
QUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX05PVElG
SUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUlVC
WSkgJChFTkFCTEVfU0FOREJPWCkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NW
RykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJM
RV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZH
X0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9WSURFTykgJChFTkFC
TEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVf
WEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVT
ID0gJChFTkFCTEVfM0RfQ0FOVkFTKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JM
T0JfU0xJQ0UpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChF
TkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJD
RSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9SRUFERVIpICQoRU5BQkxFX0ZJTEVf
V1JJVEVSKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVO
QUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVO
QUJMRV9NQVRITUwpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SVUJZKSAkKEVO
QUJMRV9TQU5EQk9YKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVO
QUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19E
T01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlH
Tl9PQkpFQ1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9XRUJf
U09DS0VUUykgJChFTkFCTEVfV01MKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1Q
KSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNTY5OTYpCisrKyBXZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjUwMCw2
ICsyNTAwLDEyIEBACiAJCUExMzZBMDBEMTEzNERCRDIwMENDOEQ1MCAvKiBYTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTEzNkEwMEIxMTM0REJEMjAwQ0M4RDUwIC8qIFhNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudFRocm90dGxlLmggKi87IH07CiAJCUExN0M4MTIyMEYyQTVDRjcwMDVEQUFF
QiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTE3QzgxMjAwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50
RmFjdG9yeS5jcHAgKi87IH07CiAJCUExN0M4MTIzMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxl
bWVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEExN0M4MTIxMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuaCAqLzsg
fTsKKwkJQTQyMjZFNUExMTYzRDY2NzAwOEI4Mzk3IC8qIEpTSFRNTFByb2dyZXNzRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNDIyNkU1
OTExNjNENjY3MDA4QjgzOTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCAqLzsgfTsKKwkJ
QTQyMjZFNUMxMTYzRDY5NTAwOEI4Mzk3IC8qIEpTSFRNTFByb2dyZXNzRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTQyMjZFNUIxMTYzRDY5
NTAwOEI4Mzk3IC8qIEpTSFRNTFByb2dyZXNzRWxlbWVudC5oICovOyB9OworCQlBNDIyNkU5NTEx
NjNENzNBMDA4QjgzOTcgLyogRE9NSFRNTFByb2dyZXNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTQyMjZFOTIxMTYzRDczQTAwOEI4Mzk3
IC8qIERPTUhUTUxQcm9ncmVzc0VsZW1lbnQuaCAqLzsgfTsKKwkJQTQyMjZFOTYxMTYzRDczQTAw
OEI4Mzk3IC8qIERPTUhUTUxQcm9ncmVzc0VsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNDIyNkU5MzExNjNENzNBMDA4QjgzOTcgLyogRE9N
SFRNTFByb2dyZXNzRWxlbWVudC5tbSAqLzsgfTsKKwkJQTQyMjZFOTkxMTYzRDdDQzAwOEI4Mzk3
IC8qIERPTUhUTUxQcm9ncmVzc0VsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTQyMjZFOTgxMTYzRDdDQzAwOEI4Mzk3IC8qIERP
TUhUTUxQcm9ncmVzc0VsZW1lbnRJbnRlcm5hbC5oICovOyB9OworCQlBNDIyNkVBNjExNjNEODRE
MDA4QjgzOTcgLyogSFRNTFByb2dyZXNzRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE0MjI2RUE1MTE2M0Q4NEQwMDhCODM5NyAvKiBI
VE1MUHJvZ3Jlc3NFbGVtZW50LmlkbCAqLzsgfTsKIAkJQTQzQkY1OTgxMTQ5MjkwQTAwQzY0M0NB
IC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTQzQkY1OTYxMTQ5MjkwQTAwQzY0M0NBIC8qIEhUTUxQcm9ncmVz
c0VsZW1lbnQuY3BwICovOyB9OwogCQlBNDNCRjU5OTExNDkyOTBBMDBDNjQzQ0EgLyogSFRNTFBy
b2dyZXNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTQzQkY1OTcxMTQ5MjkwQTAwQzY0M0NBIC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuaCAq
LzsgfTsKIAkJQTQzQkY1OUMxMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclByb2dyZXNzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE0M0JGNTlBMTE0
OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5jcHAgKi87IH07CkBAIC03OTIxLDYgKzc5
MjcsMTIgQEAKIAkJQTEzNkEwMEIxMTM0REJEMjAwQ0M4RDUwIC8qIFhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudFRocm90dGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUExN0M4MTIwMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3Rvcnku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTEVsZW1lbnRGYWN0
b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE3QzgxMjEwRjJBNUNGNzAw
NURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIVE1MRWxlbWVudEZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTQyMjZFNTkxMTYzRDY2NzAwOEI4Mzk3IC8qIEpTSFRNTFByb2dyZXNzRWxlbWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxQcm9ncmVzc0VsZW1l
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNDIyNkU1QjExNjNENjk1MDA4
QjgzOTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTSFRNTFByb2dyZXNzRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBNDIyNkU5MjExNjNENzNBMDA4QjgzOTcgLyogRE9NSFRNTFByb2dyZXNzRWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MUHJvZ3Jlc3NFbGVt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE0MjI2RTkzMTE2M0Q3M0EwMDhC
ODM5NyAvKiBET01IVE1MUHJvZ3Jlc3NFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTFByb2dyZXNzRWxlbWVudC5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTQyMjZFOTgxMTYzRDdDQzAwOEI4Mzk3IC8qIERPTUhUTUxQcm9n
cmVzc0VsZW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
T01IVE1MUHJvZ3Jlc3NFbGVtZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQTQyMjZFQTUxMTYzRDg0RDAwOEI4Mzk3IC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxQcm9ncmVzc0VsZW1lbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBNDNCRjU5NjExNDkyOTBBMDBDNjQzQ0EgLyogSFRNTFBy
b2dyZXNzRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
VE1MUHJvZ3Jlc3NFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTQz
QkY1OTcxMTQ5MjkwQTAwQzY0M0NBIC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFByb2dyZXNzRWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNDNCRjU5QTExNDkyOTI4MDBDNjQzQ0EgLyogUmVuZGVyUHJv
Z3Jlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyUHJv
Z3Jlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI0OTQsNiArMTI1MDYs
OCBAQAogCQkJCTg1RUNCRUVBMEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MUGFyYW1FbGVtZW50
Lm1tICovLAogCQkJCTg1MTgzQjNFMEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MUHJlRWxlbWVu
dC5oICovLAogCQkJCTg1MTgzQjNGMEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MUHJlRWxlbWVu
dC5tbSAqLywKKwkJCQlBNDIyNkU5MjExNjNENzNBMDA4QjgzOTcgLyogRE9NSFRNTFByb2dyZXNz
RWxlbWVudC5oICovLAorCQkJCUE0MjI2RTkzMTE2M0Q3M0EwMDhCODM5NyAvKiBET01IVE1MUHJv
Z3Jlc3NFbGVtZW50Lm1tICovLAogCQkJCTg1MTgzQjQwMEFBNjkyNjEwMEYxOUZBMyAvKiBET01I
VE1MUXVvdGVFbGVtZW50LmggKi8sCiAJCQkJODUxODNCNDEwQUE2OTI2MTAwRjE5RkEzIC8qIERP
TUhUTUxRdW90ZUVsZW1lbnQubW0gKi8sCiAJCQkJODVERjgxOTMwQUE3N0U0QjAwNDg2QUQ3IC8q
IERPTUhUTUxTY3JpcHRFbGVtZW50LmggKi8sCkBAIC0xMjYwOCw2ICsxMjYyMiw3IEBACiAJCQkJ
ODVFNzExNzIwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50SW50ZXJu
YWwuaCAqLywKIAkJCQk4NUU3MTE3MzBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFBhcmFtRWxl
bWVudEludGVybmFsLmggKi8sCiAJCQkJODVFNzExNzQwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhU
TUxQcmVFbGVtZW50SW50ZXJuYWwuaCAqLywKKwkJCQlBNDIyNkU5ODExNjNEN0NDMDA4QjgzOTcg
LyogRE9NSFRNTFByb2dyZXNzRWxlbWVudEludGVybmFsLmggKi8sCiAJCQkJODVFNzExNzUwQUM1
RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxRdW90ZUVsZW1lbnRJbnRlcm5hbC5oICovLAogCQkJCTg1
RTcxMTc2MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MU2NyaXB0RWxlbWVudEludGVybmFsLmgg
Ki8sCiAJCQkJODVFNzExNzcwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxTZWxlY3RFbGVtZW50
SW50ZXJuYWwuaCAqLywKQEAgLTEyOTMyLDggKzEyOTQ3LDYgQEAKIAkJCWNoaWxkcmVuID0gKAog
CQkJCTg5NTI1MzUwMTE2NDFCMzQwMENBQkYwMCAvKiBGaWxlVGhyZWFkLmNwcCAqLywKIAkJCQk4
OTUyNTM1MTExNjQxQjM0MDBDQUJGMDAgLyogRmlsZVRocmVhZC5oICovLAotCQkJCUE0M0JGNTk2
MTE0OTI5MEEwMEM2NDNDQSAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCAqLywKLQkJCQlBNDNC
RjU5NzExNDkyOTBBMDBDNjQzQ0EgLyogSFRNTFByb2dyZXNzRWxlbWVudC5oICovLAogCQkJCTQ5
NDg0RkFFMTAyQ0YwMUUwMDE4N0REMyAvKiBjYW52YXMgKi8sCiAJCQkJMkVBRkFGMEIxMEUyQUYy
RDAwN0VEM0Q2IC8qIEJsb2IuY3BwICovLAogCQkJCTJFQUZBRjBDMTBFMkFGMkQwMDdFRDNENiAv
KiBCbG9iLmggKi8sCkBAIC0xMzE1NCw2ICsxMzE2Nyw5IEBACiAJCQkJQThFQTdDOUYwQTE5MkI5
QzAwQThFRjVGIC8qIEhUTUxQcmVFbGVtZW50LmNwcCAqLywKIAkJCQlBOEVBN0NBMjBBMTkyQjlD
MDBBOEVGNUYgLyogSFRNTFByZUVsZW1lbnQuaCAqLywKIAkJCQkxQUUyQUI4NTBBMUNFODUwMDBC
NDJCMjUgLyogSFRNTFByZUVsZW1lbnQuaWRsICovLAorCQkJCUE0M0JGNTk2MTE0OTI5MEEwMEM2
NDNDQSAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCAqLywKKwkJCQlBNDNCRjU5NzExNDkyOTBB
MDBDNjQzQ0EgLyogSFRNTFByb2dyZXNzRWxlbWVudC5oICovLAorCQkJCUE0MjI2RUE1MTE2M0Q4
NEQwMDhCODM5NyAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50LmlkbCAqLywKIAkJCQlBOENGRjc5QjBB
MTU2OTc4MDAwQTQyMzQgLyogSFRNTFF1b3RlRWxlbWVudC5jcHAgKi8sCiAJCQkJQThDRkY3OTkw
QTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxRdW90ZUVsZW1lbnQuaCAqLywKIAkJCQkxQUUyQUVBMzBB
MUQyOEU4MDBCNDJCMjUgLyogSFRNTFF1b3RlRWxlbWVudC5pZGwgKi8sCkBAIC0xMzQwOCw2ICsx
MzQyNCw4IEBACiAJCQkJMUFFMkFCQTEwQTFDRTkwNTAwQjQyQjI1IC8qIEpTSFRNTFBhcmFtRWxl
bWVudC5oICovLAogCQkJCTFBRTJBQkEyMEExQ0U5MDUwMEI0MkIyNSAvKiBKU0hUTUxQcmVFbGVt
ZW50LmNwcCAqLywKIAkJCQkxQUUyQUJBMzBBMUNFOTA1MDBCNDJCMjUgLyogSlNIVE1MUHJlRWxl
bWVudC5oICovLAorCQkJCUE0MjI2RTU5MTE2M0Q2NjcwMDhCODM5NyAvKiBKU0hUTUxQcm9ncmVz
c0VsZW1lbnQuY3BwICovLAorCQkJCUE0MjI2RTVCMTE2M0Q2OTUwMDhCODM5NyAvKiBKU0hUTUxQ
cm9ncmVzc0VsZW1lbnQuaCAqLywKIAkJCQkxQUUyQUVDMzBBMUQyOTdCMDBCNDJCMjUgLyogSlNI
VE1MUXVvdGVFbGVtZW50LmNwcCAqLywKIAkJCQkxQUUyQUVDNDBBMUQyOTdCMDBCNDJCMjUgLyog
SlNIVE1MUXVvdGVFbGVtZW50LmggKi8sCiAJCQkJMUFFMkFCQTQwQTFDRTkwNTAwQjQyQjI1IC8q
IEpTSFRNTFNjcmlwdEVsZW1lbnQuY3BwICovLApAQCAtMTg3NzYsNiArMTg3OTQsOSBAQAogCQkJ
CUU0Nzc4QjgwMTE1QTU4MUEwMEI1RDM3MiAvKiBKU0N1c3RvbUV2ZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlFMUUxQkYwMDExNUZGNkZCMDA2RjUyQ0EgLyogV2luZG93c0tleWJvYXJkQ29kZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg0OTlBNTE1MTE1RkIzMzAwMEY1NjZFMyAvKiBSZW5kZXJT
VkdSZXNvdXJjZU1hcmtlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTQyMjZFNUMxMTYzRDY5NTAw
OEI4Mzk3IC8qIEpTSFRNTFByb2dyZXNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTQy
MjZFOTUxMTYzRDczQTAwOEI4Mzk3IC8qIERPTUhUTUxQcm9ncmVzc0VsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUE0MjI2RTk5MTE2M0Q3Q0MwMDhCODM5NyAvKiBET01IVE1MUHJvZ3Jlc3NF
bGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFM0JCRjA4MTE2MkRBMTEwMEI5
NDA5QSAvKiBVVUlELmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTUyNTM1MzExNjQxQjM0MDBDQUJG
MDAgLyogRmlsZVRocmVhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdDMDc4NTAxMTY1RDVCRTAw
M0EzMkVGIC8qIFN1ZmZpeFRyZWUuaCBpbiBIZWFkZXJzICovLApAQCAtMTg4ODIsNiArMTg5MDMs
NyBAQAogCQkJCTFBQjFBRTdBMEMwNTFGREUwMDEzOUY0RiAvKiB6b29tSW5DdXJzb3IucG5nIGlu
IFJlc291cmNlcyAqLywKIAkJCQkxQUIxQUU3QjBDMDUxRkRFMDAxMzlGNEYgLyogem9vbU91dEN1
cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJCTJFMDg4OEM0MTE0ODgzQTkwMEFGNDI2NSAv
KiBET01Gb3JtRGF0YS5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE0MjI2RUE2MTE2M0Q4NEQw
MDhCODM5NyAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0y
MDk5Miw2ICsyMTAxNCw4IEBACiAJCQkJNjJDRDMyNTkxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3Rv
bUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0Nzc4QjdGMTE1QTU4MUEwMEI1RDM3MiAv
KiBKU0N1c3RvbUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg0OTlBNTE0MTE1RkIzMzAw
MEY1NjZFMyAvKiBSZW5kZXJTVkdSZXNvdXJjZU1hcmtlci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlBNDIyNkU1QTExNjNENjY3MDA4QjgzOTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUE0MjI2RTk2MTE2M0Q3M0EwMDhCODM5NyAvKiBET01IVE1MUHJv
Z3Jlc3NFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkUzQkJGMDcxMTYyREExMTAwQjk0
MDlBIC8qIFVVSUQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODk1MjUzNTIxMTY0MUIzNDAwQ0FC
RjAwIC8qIEZpbGVUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwpJbmRleDogV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5oCShyZXZpc2lvbiA1Njk5NikKKysrIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDggQEAKICNp
bXBvcnQgPHd0Zi9IYXNoTWFwLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKK2NsYXNz
IFJlbmRlclByb2dyZXNzOworCiAjaWZkZWYgX19PQkpDX18KIEBjbGFzcyBXZWJDb3JlUmVuZGVy
VGhlbWVOb3RpZmljYXRpb25PYnNlcnZlcjsKICNlbHNlCkBAIC03OCw2ICs4MCwxMyBAQCBwdWJs
aWM6CiAgICAgCiAgICAgdmlydHVhbCBib29sIHBhaW50Q2Fwc0xvY2tJbmRpY2F0b3IoUmVuZGVy
T2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7
CiAKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorICAgIC8vIFJldHVybnMgdGhlIHJlcGVhdCBp
bnRlcnZhbCBvZiB0aGUgYW5pbWF0aW9uIGZvciB0aGUgcHJvZ3Jlc3MgYmFyLgorICAgIHZpcnR1
YWwgZG91YmxlIGFuaW1hdGlvblJlcGVhdEludGVydmFsRm9yUHJvZ3Jlc3NCYXIoUmVuZGVyUHJv
Z3Jlc3MqKSBjb25zdDsKKyAgICAvLyBSZXR1cm5zIHRoZSBkdXJhdGlvbiBvZiB0aGUgYW5pbWF0
aW9uIGZvciB0aGUgcHJvZ3Jlc3MgYmFyLgorICAgIHZpcnR1YWwgZG91YmxlIGFuaW1hdGlvbkR1
cmF0aW9uRm9yUHJvZ3Jlc3NCYXIoUmVuZGVyUHJvZ3Jlc3MqKSBjb25zdDsKKyNlbmRpZgorCiAg
ICAgdmlydHVhbCBDb2xvciBzeXN0ZW1Db2xvcihpbnQgY3NzVmFsdWVJZCkgY29uc3Q7CiAKIHBy
b3RlY3RlZDoKQEAgLTk1LDYgKzEwNCwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29s
IHBhaW50TWVudUxpc3RCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQ
YWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIGFkanVzdE1lbnVM
aXN0QnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCop
IGNvbnN0OwogCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyAgICB2aXJ0dWFsIHZvaWQgYWRq
dXN0UHJvZ3Jlc3NCYXJTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqLCBFbGVt
ZW50KikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHBhaW50UHJvZ3Jlc3NCYXIoUmVuZGVyT2Jq
ZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7Cisj
ZW5kaWYKKwogICAgIHZpcnR1YWwgYm9vbCBwYWludFNsaWRlclRyYWNrKFJlbmRlck9iamVjdCos
IGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZp
cnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUcmFja1N0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5k
ZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsKIApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW0JKHJldmlzaW9uIDU2OTk2KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkhUTUxN
ZWRpYUVsZW1lbnQuaCIKICNpbXBvcnQgIkhUTUxOYW1lcy5oIgogI2ltcG9ydCAiSW1hZ2UuaCIK
KyNpbXBvcnQgIkltYWdlQnVmZmVyLmgiCiAjaW1wb3J0ICJMb2NhbEN1cnJlbnRHcmFwaGljc0Nv
bnRleHQuaCIKICNpbXBvcnQgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCiAjaW1wb3J0ICJSZW5k
ZXJNZWRpYS5oIgpAQCAtNDcsMTcgKzQ4LDI2IEBACiAjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFz
Lmg+CiAjaW1wb3J0IDxtYXRoLmg+CiAKKyNpbXBvcnQgIlJlbmRlclByb2dyZXNzLmgiCisKICNp
ZmRlZiBCVUlMRElOR19PTl9USUdFUgogdHlwZWRlZiBpbnQgTlNJbnRlZ2VyOwogdHlwZWRlZiB1
bnNpZ25lZCBOU1VJbnRlZ2VyOwogI2VuZGlmCiAKLXVzaW5nIHN0ZDo6bWluOwordXNpbmcgbmFt
ZXNwYWNlIHN0ZDsKIAogLy8gVGhlIG1ldGhvZHMgaW4gdGhpcyBmaWxlIGFyZSBzcGVjaWZpYyB0
byB0aGUgTWFjIE9TIFggcGxhdGZvcm0uCiAKIC8vIEZJWE1FOiBUaGUgcGxhdGZvcm0taW5kZXBl
bmRlbnQgY29kZSBpbiB0aGlzIGNsYXNzIHNob3VsZCBiZSBmYWN0b3JlZCBvdXQgYW5kIG1lcmdl
ZCB3aXRoIFJlbmRlclRoZW1lU2FmYXJpLiAKIAorLy8gV2UgZXN0aW1hdGUgdGhlIGFuaW1hdGlv
biByYXRlIG9mIGEgTWFjIE9TIFggcHJvZ3Jlc3MgYmFyIGlzIDMzIGZwcy4KKy8vIEhhcmQgY29k
ZSB0aGUgdmFsdWUgaGVyZSBiZWNhdXNlIHdlIGhhdmVuJ3QgZm91bmQgQVBJIGZvciBpdC4KK2Nv
bnN0IGRvdWJsZSBwcm9ncmVzc0FuaW1hdGlvbkZyYW1lUmF0ZSA9IDAuMDMzOworCisvLyBNYWMg
T1MgWCBwcm9ncmVzcyBiYXIgYW5pbWF0aW9uIHNlZW1zIHRvIGhhdmUgMjU2IGZyYW1lcy4KK2Nv
bnN0IGRvdWJsZSBwcm9ncmVzc0FuaW1hdGlvbk51bUZyYW1lcyA9IDI1NjsKKwogQGludGVyZmFj
ZSBXZWJDb3JlUmVuZGVyVGhlbWVOb3RpZmljYXRpb25PYnNlcnZlciA6IE5TT2JqZWN0CiB7CiAg
ICAgV2ViQ29yZTo6UmVuZGVyVGhlbWUgKl90aGVtZTsKQEAgLTc3MSw2ICs3ODEsNTcgQEAgYm9v
bCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRNZW51TGlzdChSZW5kZQogCiAgICAgcmV0dXJuIGZhbHNl
OwogfQorICAgCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKworZG91YmxlIFJlbmRlclRoZW1l
TWFjOjphbmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFyKFJlbmRlclByb2dyZXNz
KikgY29uc3QKK3sKKyAgICByZXR1cm4gcHJvZ3Jlc3NBbmltYXRpb25GcmFtZVJhdGU7Cit9CisK
K2RvdWJsZSBSZW5kZXJUaGVtZU1hYzo6YW5pbWF0aW9uRHVyYXRpb25Gb3JQcm9ncmVzc0JhcihS
ZW5kZXJQcm9ncmVzcyopIGNvbnN0Cit7CisgICAgcmV0dXJuIHByb2dyZXNzQW5pbWF0aW9uTnVt
RnJhbWVzICogcHJvZ3Jlc3NBbmltYXRpb25GcmFtZVJhdGU7Cit9CisKK3ZvaWQgUmVuZGVyVGhl
bWVNYWM6OmFkanVzdFByb2dyZXNzQmFyU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0
eWxlKiwgRWxlbWVudCopIGNvbnN0Cit7Cit9CisKK2Jvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50
UHJvZ3Jlc3NCYXIoUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QsIGNvbnN0IFJlbmRlck9iamVj
dDo6UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgUmVu
ZGVyUHJvZ3Jlc3MqIHJlbmRlclByb2dyZXNzID0gdG9SZW5kZXJQcm9ncmVzcyhyZW5kZXJPYmpl
Y3QpOworICAgIEhJVGhlbWVUcmFja0RyYXdJbmZvIHRyYWNrSW5mbzsKKyAgICB0cmFja0luZm8u
dmVyc2lvbiA9IDA7CisgICAgdHJhY2tJbmZvLmtpbmQgPSByZW5kZXJQcm9ncmVzcy0+cG9zaXRp
b24oKSA8IDAgPyBrVGhlbWVMYXJnZUluZGV0ZXJtaW5hdGVCYXIgOiBrVGhlbWVMYXJnZVByb2dy
ZXNzQmFyOworICAgIHRyYWNrSW5mby5ib3VuZHMgPSBJbnRSZWN0KEludFBvaW50KCksIHJlY3Qu
c2l6ZSgpKTsKKyAgICB0cmFja0luZm8ubWluID0gMDsKKyAgICB0cmFja0luZm8ubWF4ID0gbnVt
ZXJpY19saW1pdHM8U0ludDMyPjo6bWF4KCk7CisgICAgdHJhY2tJbmZvLnZhbHVlID0gbHJvdW5k
KHJlbmRlclByb2dyZXNzLT5wb3NpdGlvbigpICogbmV4dGFmdGVyKHRyYWNrSW5mby5tYXgsIDAp
KTsKKyAgICB0cmFja0luZm8udHJhY2tJbmZvLnByb2dyZXNzLnBoYXNlID0gbHJvdW5kKHJlbmRl
clByb2dyZXNzLT5hbmltYXRpb25Qcm9ncmVzcygpICogbmV4dGFmdGVyKHByb2dyZXNzQW5pbWF0
aW9uTnVtRnJhbWVzLCAwKSk7CisgICAgdHJhY2tJbmZvLmF0dHJpYnV0ZXMgPSBrVGhlbWVUcmFj
a0hvcml6b250YWw7CisgICAgdHJhY2tJbmZvLmVuYWJsZVN0YXRlID0gaXNBY3RpdmUocmVuZGVy
T2JqZWN0KSA/IGtUaGVtZVRyYWNrQWN0aXZlIDoga1RoZW1lVHJhY2tJbmFjdGl2ZTsKKyAgICB0
cmFja0luZm8ucmVzZXJ2ZWQgPSAwOworICAgIHRyYWNrSW5mby5maWxsZXIxID0gMDsKKworICAg
IE93blB0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHJl
Y3Quc2l6ZSgpKTsKKyAgICBpZiAoIWltYWdlQnVmZmVyKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KworICAgIEhJVGhlbWVEcmF3VHJhY2soJnRyYWNrSW5mbywgMCwgaW1hZ2VCdWZmZXItPmNvbnRl
eHQoKS0+cGxhdGZvcm1Db250ZXh0KCksIGtISVRoZW1lT3JpZW50YXRpb25Ob3JtYWwpOworCisg
ICAgcGFpbnRJbmZvLmNvbnRleHQtPnNhdmUoKTsKKworICAgIGlmIChyZW5kZXJQcm9ncmVzcy0+
c3R5bGUoKS0+ZGlyZWN0aW9uKCkgPT0gUlRMKSB7CisgICAgICAgIHBhaW50SW5mby5jb250ZXh0
LT50cmFuc2xhdGUoMiAqIHJlY3QueCgpICsgcmVjdC53aWR0aCgpLCAwKTsKKyAgICAgICAgcGFp
bnRJbmZvLmNvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZSgtMSwgMSkpOworICAgIH0KKyAgICBwYWlu
dEluZm8uY29udGV4dC0+ZHJhd0ltYWdlKGltYWdlQnVmZmVyLT5pbWFnZSgpLCBEZXZpY2VDb2xv
clNwYWNlLCByZWN0LmxvY2F0aW9uKCkpOworCisgICAgcGFpbnRJbmZvLmNvbnRleHQtPnJlc3Rv
cmUoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9ICAgIAorI2VuZGlmCiAKIGNvbnN0IGZsb2F0IGJh
c2VGb250U2l6ZSA9IDExLjBmOwogY29uc3QgZmxvYXQgYmFzZUFycm93SGVpZ2h0ID0gNC4wZjsK
SW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hh
bmdlTG9nCShyZXZpc2lvbiA1Njk5NikKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDQtMDEgIHlhZWwgYWhhcm9uICA8eWFlbC5h
aGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEVuYWJsZSBIVE1MUHJvZ3Jlc3NFbGVtZW50IGZvciBTYWZhcmkgb24gT1NYCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjk2MQorCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTAt
MDQtMDEgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KSW5kZXg6IFdlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gNTY5OTYpCisrKyBXZWJL
aXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNv
cHkpCkBAIC01OSw2ICs1OSw3IEBAIEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSID0gRU5BQkxF
X0pBVkEKIEVOQUJMRV9NQVRITUwgPSA7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9IDsKIEVOQUJM
RV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMgPSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TOworRU5BQkxFX1BST0dSRVNTX1RBRyA9IEVOQUJMRV9QUk9HUkVTU19UQUc7CiBFTkFCTEVf
UlVCWSA9IEVOQUJMRV9SVUJZOwogRU5BQkxFX1NBTkRCT1ggPSBFTkFCTEVfU0FOREJPWDsKIEVO
QUJMRV9TSEFSRURfV09SS0VSUyA9IEVOQUJMRV9TSEFSRURfV09SS0VSUzsKQEAgLTc3LDQgKzc4
LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVfWFBBVEggPSBFTkFCTEVfWFBBVEg7CiBF
TkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8z
RF9DQU5WQVMpICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQkxPQl9TTElDRSkgJChF
TkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElT
VCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9G
SUxURVJTKSAkKEVOQUJMRV9GSUxFX1JFQURFUikgJChFTkFCTEVfRklMRV9XUklURVIpICQoRU5B
QkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURf
REFUQUJBU0UpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX01BVEhNTCkg
JChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05T
KSAkKEVOQUJMRV9SVUJZKSAkKEVOQUJMRV9TQU5EQk9YKSAkKEVOQUJMRV9TSEFSRURfV09SS0VS
UykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNf
SU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRT
KSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5BQkxF
X1ZJREVPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV01MKSAkKEVOQUJMRV9XT1JL
RVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CitG
RUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9DQU5WQVMpICQoRU5BQkxFXzNEX1JFTkRFUklO
RykgJChFTkFCTEVfQkxPQl9TTElDRSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5B
QkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxF
X0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5B
QkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1JFQURFUikg
JChFTkFCTEVfRklMRV9XUklURVIpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09O
REFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0pBVkFTQ1JJUFRf
REVCVUdHRVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFC
TEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5B
QkxFX1JVQlkpICQoRU5BQkxFX1NBTkRCT1gpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVO
QUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkg
JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5B
QkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8p
ICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMpICQo
RU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDU2OTk2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0yODksNiArMjg5LDE1IEBACiAKIDIwMTAtMDQtMDEgIHlhZWwgYWhhcm9uICA8eWFlbC5h
aGFyb25Abm9raWEuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEVuYWJsZSBIVE1MUHJvZ3Jlc3NFbGVtZW50IGZvciBTYWZhcmkgb24gT1NYCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjk2MQorCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisKKzIwMTAtMDQtMDEgIHlhZWwgYWhhcm9u
ICA8eWFlbC5haGFyb25Abm9raWEuY29tPgorCiAgICAgICAgIFJldmlld2VkIGJ5IExhc3psbyBH
b21ib3MuCiAKICAgICAgICAgc2V0LXByb2dyZXNzLXByb3BlcnRpZXMuaHRtbCBleHBlY3RlZCBy
ZXN1bHQgc2hvdWxkIG5vdCBiZSBwbGF0Zm9ybSBzcGVjaWZpYwpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1NraXBwZWQJKHJldmlzaW9uIDU2OTk2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTEyOSwxMCArMTI5LDggQEAgZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uCiAjIEZvciBzb21lIHJlYXNvbiBjcmFzaGVzIHdoZW4gcnVuIHdp
dGggYWxsIHRlc3RzLiBQYXNzZXMgaW5kaXZpZHVhbGx5LgogZmFzdC9mb3Jtcy9tdWx0aXBsZS1m
b3JtLXN1Ym1pc3Npb24tcHJvdGVjdGlvbi1tb3VzZS5odG1sCiAKLQotIyByZW5kZXJUaGVtZSBp
cyBub3QgcmVhZHkgdG8gZHJhdyBwcm9ncmVzcyBlbGVtZW50CisjIFRoZSBhbmltYXRpb24gY2F1
c2VzIHRoZSByZXN1bHQgb2YgdGhpcyB0ZXN0IHRvIGRlcGVuZCBvbiB0aGUgc3BlZWQgb2YgZXhl
Y3V0aW5nIGl0LCBhbmQgdGhhdCB3aWxsIGNhdXNlIGl0IHRvIGJlIGZsYWt5CiBmYXN0L2RvbS9I
VE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWVsZW1lbnQuaHRtbAotZmFzdC9kb20vSFRNTFBy
b2dyZXNzRWxlbWVudC9zZXQtcHJvZ3Jlc3MtcHJvcGVydGllcy5odG1sCiAKICMgZXZlbnQuZGF0
YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvdXJpLWxpc3QnKSBub3QgY29ycmVjdGx5IGltcGxlbWVu
dGVkIG9uIE1hYwogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGFUcmFuc2Zlci1zZXREYXRhLWdldERh
dGEuaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>