<?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>100026</bug_id>
          
          <creation_ts>2012-10-22 13:55:30 -0700</creation_ts>
          <short_desc>inconsistency in drawImage with target rect negative dimensions.</short_desc>
          <delta_ts>2013-01-16 12:26:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Canvas</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://dev.w3.org/html5/2dcontext/#dom-context-2d-drawimage</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>104367</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="arno.">a.renevier</reporter>
          <assigned_to name="arno.">a.renevier</assigned_to>
          <cc>cabanier</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gustavo</cc>
    
    <cc>ian</cc>
    
    <cc>krit</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>noam</cc>
    
    <cc>pdr</cc>
    
    <cc>pnormand</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>747852</commentid>
    <comment_count>0</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-10-22 13:55:30 -0700</bug_when>
    <thetext>Hi,
when calling canvasContext.drawImage with either dw either dh negative, the behaviour is inconsistent:

If dw is -1, it is considered to be canvas.width but if it is -2 or below, the image is drawn from dx,dy but on the opposite side (flipped).

There are two ways to fix the inconsistency: either draw image flipped with -1 dimension, either forbids negative dimensions in destination rectangle (I tested opera and firefox, they both throw a INDEX_SIZE_ERR on that case).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747854</commentid>
    <comment_count>1</comment_count>
      <attachid>169978</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-10-22 13:55:59 -0700</bug_when>
    <thetext>Created attachment 169978
testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750119</commentid>
    <comment_count>2</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-10-24 15:27:52 -0700</bug_when>
    <thetext>From bug #20468 and philip.html5.org tests, it looks like it&apos;s valid to call canvas with destination with negative dimension. So, the solution is to handle -1 dimension correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750125</commentid>
    <comment_count>3</comment_count>
      <attachid>170489</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-10-24 15:30:06 -0700</bug_when>
    <thetext>Created attachment 170489
Patch

patch proposal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750494</commentid>
    <comment_count>4</comment_count>
      <attachid>170489</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-25 00:40:01 -0700</bug_when>
    <thetext>Comment on attachment 170489
Patch

Attachment 170489 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14559545

New failing tests:
css3/filters/null-effect-check.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751603</commentid>
    <comment_count>5</comment_count>
      <attachid>170489</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-25 23:43:17 -0700</bug_when>
    <thetext>Comment on attachment 170489
Patch

This appears to be causing many failures for the EWS bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751646</commentid>
    <comment_count>6</comment_count>
      <attachid>170489</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-10-26 00:38:18 -0700</bug_when>
    <thetext>Comment on attachment 170489
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        Remove -1, -1 special case in drawImage and drawImageBuffer. Instead,
&gt; +        always call those functions with the correct rectangle dimensions.

If you look at the code, this special casing is done to indicate that it should use the intrinsic dimensions of the image. You can&apos;t just remove this check, since it will break half of the drawImage content in the web :)

The question stays if it should be allowed to have negative values for dh and dw or not. You say that Firefox throws an exception? What do IE and Opera do?

The specification does not disallow negative values. Should all other implementations throw, then this indicates a bug in the specification IMO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751651</commentid>
    <comment_count>7</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-10-26 00:41:33 -0700</bug_when>
    <thetext>Adding Rik and Ian, the editors, to the bug. Maybe they have more input to drawImage and negative dw/dh.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751952</commentid>
    <comment_count>8</comment_count>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2012-10-26 06:00:37 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Adding Rik and Ian, the editors, to the bug. Maybe they have more input to drawImage and negative dw/dh.

It&apos;s obvious from the IDL and the prose that negative values should be allowed.
There should be no special behavior depending on &lt;-1 or &gt; -1...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752151</commentid>
    <comment_count>9</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2012-10-26 10:02:39 -0700</bug_when>
    <thetext>Indeed. The spec also says the image shouldn&apos;t be flipped (&quot;The image data must be processed in the original direction, even if the dimensions given are negative.&quot;).

http://whatwg.org/html/#dom-context-2d-drawimage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752160</commentid>
    <comment_count>10</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-10-26 10:24:27 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Indeed. The spec also says the image shouldn&apos;t be flipped (&quot;The image data must be processed in the original direction, even if the dimensions given are negative.&quot;).
&gt; 
&gt; http://whatwg.org/html/#dom-context-2d-drawimage

Ah! Indeed a useful clarification. (even if I would disagree :))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752182</commentid>
    <comment_count>11</comment_count>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2012-10-26 10:53:06 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; Indeed. The spec also says the image shouldn&apos;t be flipped (&quot;The image data must be processed in the original direction, even if the dimensions given are negative.&quot;).
&gt; &gt; 
&gt; &gt; http://whatwg.org/html/#dom-context-2d-drawimage
&gt; 
&gt; Ah! Indeed a useful clarification. (even if I would disagree :))

yes, this function is a little odd in that it create a source rectangle and maps it to a destination rectangle. Any scaling that happens is because the rectangles are difference size.

There might be a bug here though. What happens if the current transformation matrix has scaling or skewing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752220</commentid>
    <comment_count>12</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-10-26 11:35:18 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #9)
&gt; &gt; &gt; Indeed. The spec also says the image shouldn&apos;t be flipped (&quot;The image data must be processed in the original direction, even if the dimensions given are negative.&quot;).
&gt; &gt; &gt; 
&gt; &gt; &gt; http://whatwg.org/html/#dom-context-2d-drawimage
&gt; &gt; 
&gt; &gt; Ah! Indeed a useful clarification. (even if I would disagree :))
&gt; 
&gt; yes, this function is a little odd in that it create a source rectangle and maps it to a destination rectangle. Any scaling that happens is because the rectangles are difference size.
&gt; 
&gt; There might be a bug here though. What happens if the current transformation matrix has scaling or skewing?

You draw it into the canvas with its current CTM. That doesn&apos;t seem problematic?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752339</commentid>
    <comment_count>13</comment_count>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2012-10-26 13:40:44 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; (In reply to comment #10)
&gt; &gt; &gt; (In reply to comment #9)
&gt; &gt; &gt; &gt; Indeed. The spec also says the image shouldn&apos;t be flipped (&quot;The image data must be processed in the original direction, even if the dimensions given are negative.&quot;).
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; http://whatwg.org/html/#dom-context-2d-drawimage
&gt; &gt; &gt; 
&gt; &gt; &gt; Ah! Indeed a useful clarification. (even if I would disagree :))
&gt; &gt; 
&gt; &gt; yes, this function is a little odd in that it create a source rectangle and maps it to a destination rectangle. Any scaling that happens is because the rectangles are difference size.
&gt; &gt; 
&gt; &gt; There might be a bug here though. What happens if the current transformation matrix has scaling or skewing?
&gt; 
&gt; You draw it into the canvas with its current CTM. That doesn&apos;t seem problematic?

This sentence is problematic:
When drawImage() is invoked, the region of the image specified by the source rectangle must be painted on the region of the canvas specified by the destination rectangle, after applying the current transformation matrix to the points of the destination rectangle.

It doesn&apos;t say that the CTM is applied to the scaled bitmap; it says it&apos;s applied to the points.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752344</commentid>
    <comment_count>14</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-10-26 13:45:10 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; (In reply to comment #10)
&gt; &gt; &gt; &gt; (In reply to comment #9)
&gt; &gt; &gt; &gt; &gt; Indeed. The spec also says the image shouldn&apos;t be flipped (&quot;The image data must be processed in the original direction, even if the dimensions given are negative.&quot;).
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; http://whatwg.org/html/#dom-context-2d-drawimage
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Ah! Indeed a useful clarification. (even if I would disagree :))
&gt; &gt; &gt; 
&gt; &gt; &gt; yes, this function is a little odd in that it create a source rectangle and maps it to a destination rectangle. Any scaling that happens is because the rectangles are difference size.
&gt; &gt; &gt; 
&gt; &gt; &gt; There might be a bug here though. What happens if the current transformation matrix has scaling or skewing?
&gt; &gt; 
&gt; &gt; You draw it into the canvas with its current CTM. That doesn&apos;t seem problematic?
&gt; 
&gt; This sentence is problematic:
&gt; When drawImage() is invoked, the region of the image specified by the source rectangle must be painted on the region of the canvas specified by the destination rectangle, after applying the current transformation matrix to the points of the destination rectangle.
&gt; 
&gt; It doesn&apos;t say that the CTM is applied to the scaled bitmap; it says it&apos;s applied to the points.
This is more of a spec discussion and does not really belong here. But the canvas should already be transformed when drawing. So any note about &quot;applying a transform to something before drawing the image&quot; is unnecessary IMO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752375</commentid>
    <comment_count>15</comment_count>
      <attachid>171001</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-10-26 14:11:13 -0700</bug_when>
    <thetext>Created attachment 171001
patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752378</commentid>
    <comment_count>16</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-10-26 14:11:53 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 170489 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=170489&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        Remove -1, -1 special case in drawImage and drawImageBuffer. Instead,
&gt; &gt; +        always call those functions with the correct rectangle dimensions.
&gt; 
&gt; If you look at the code, this special casing is done to indicate that it should use the intrinsic dimensions of the image. You can&apos;t just remove this check, since it will break half of the drawImage content in the web :)

Actually, I do not just remove the test, I also make sure to call drawImage with intrincis dimensions of the image.

(In reply to comment #5)
&gt; (From update of attachment 170489 [details])
&gt; This appears to be causing many failures for the EWS bot.

But I had indeed forgotten some places where drawImage is called with -1 -1

The updated patch  only address the -1 -1 inconsistency, not the fact that rectangle should not be flipped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752498</commentid>
    <comment_count>17</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2012-10-26 15:39:06 -0700</bug_when>
    <thetext>Re comment 13, please file a bug at http://whatwg.org/newbug — there&apos;s a bunch of places in the spec where it talks about transforming points rather than shapes and I am not really sure what the right wording really should be, but we should fix them, so please do report them as you find them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752536</commentid>
    <comment_count>18</comment_count>
      <attachid>171001</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-26 16:12:28 -0700</bug_when>
    <thetext>Comment on attachment 171001
patch v2

Attachment 171001 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14617166

New failing tests:
svg/filters/feComposite.svg
svg/repaint/filter-repaint.svg
svg/W3C-SVG-1.1/filters-composite-02-b.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752680</commentid>
    <comment_count>19</comment_count>
      <attachid>171001</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2012-10-26 22:03:17 -0700</bug_when>
    <thetext>Comment on attachment 171001
patch v2

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

&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:442
&gt; +    if (!image)

Why is this check here?

&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:449
&gt; +    if (!image)

ditto

&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:466
&gt; +    if (!image)

ditto

&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:-478
&gt; -        th = image-&gt;height();

This is a huge change.
Are you sure that other parts of the WebKit code don&apos;t rely on this behavior (ie CSS Filters)?

&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:531
&gt; +    if (!image)

Why this check?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752682</commentid>
    <comment_count>20</comment_count>
      <attachid>171001</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-10-26 22:28:33 -0700</bug_when>
    <thetext>Comment on attachment 171001
patch v2

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

Looks quite good already. I am afraid, but you need to check the caller site as well. There are quite some places that assume that we have the -1, -1 checks.

&gt;&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:442
&gt;&gt; +    if (!image)
&gt; 
&gt; Why is this check here?

This is from the last overload function. There you have !image check. And the image is accessed now, tho check will be necessary. So I assume we can&apos;t be sure that image is not null? I would rather replace the if(!image) conditions with assertions. Should be wrong in the first place to call the function with null. Can you investigate?

&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:444
&gt; +    drawImage(image, styleColorSpace, p, IntRect(IntPoint(0, 0), image-&gt;size()), op, shouldRespectImageOrientation);

IntPoint() is enough. Please fix this on all functions.

&gt;&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:-478
&gt;&gt; -        th = image-&gt;height();
&gt; 
&gt; This is a huge change.
&gt; Are you sure that other parts of the WebKit code don&apos;t rely on this behavior (ie CSS Filters)?

This actually looks correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752683</commentid>
    <comment_count>21</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-10-26 22:30:14 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 171001 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=171001&amp;action=review
&gt; 
&gt; Looks quite good already. I am afraid, but you need to check the caller site as well. There are quite some places that assume that we have the -1, -1 checks.
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:442
&gt; &gt;&gt; +    if (!image)
&gt; &gt; 
&gt; &gt; Why is this check here?
&gt; 
&gt; This is from the last overload function. There you have !image check. And the image is accessed now, tho check will be necessary. So I assume we can&apos;t be sure that image is not null? I would rather replace the if(!image) conditions with assertions. Should be wrong in the first place to call the function with null. Can you investigate?
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:444
&gt; &gt; +    drawImage(image, styleColorSpace, p, IntRect(IntPoint(0, 0), image-&gt;size()), op, shouldRespectImageOrientation);
&gt; 
&gt; IntPoint() is enough. Please fix this on all functions.
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:-478
&gt; &gt;&gt; -        th = image-&gt;height();
&gt; &gt; 
&gt; &gt; This is a huge change.
&gt; &gt; Are you sure that other parts of the WebKit code don&apos;t rely on this behavior (ie CSS Filters)?
&gt; 
&gt; This actually looks correct.

FEComposite.cpp is just one class that assumes the old behavior for drawImage with -1, -1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753739</commentid>
    <comment_count>22</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-10-29 14:02:32 -0700</bug_when>
    <thetext>(In reply to comment #19)

&gt; Are you sure that other parts of the WebKit code don&apos;t rely on this behavior (ie CSS Filters)?

There is indeed FEComposite, which was trapped by chromium tests. So, I&apos;ve looked in all files containing -1 and drawImage, and I&apos;ve found ImageGStreamer::crop also returns a -1 -1 rectangle. In theory, I may now miss some calls if: the -1 -1 argument is not set in the same file as the drawImage call AND it is not trapped in a test. I don&apos;t known how likely it is.(In reply to comment #20)

(In reply to comment #20)

&gt; This is from the last overload function. There you have !image check. And the image is accessed now, tho check will be necessary. So I assume we can&apos;t be sure that image is not null? I would rather replace the if(!image) conditions with assertions. Should be wrong in the first place to call the function with null. Can you investigate?

Some places do not check the image argument, and may then pass a null image or imagebuffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753741</commentid>
    <comment_count>23</comment_count>
      <attachid>171309</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-10-29 14:05:54 -0700</bug_when>
    <thetext>Created attachment 171309
fix calls in FEComposite and in Gstreamer; replace IntPoint(0, 0) with IntPoint()

updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754184</commentid>
    <comment_count>24</comment_count>
      <attachid>171309</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-10-30 03:57:05 -0700</bug_when>
    <thetext>Comment on attachment 171309
fix calls in FEComposite and in Gstreamer; replace IntPoint(0, 0) with IntPoint()

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

&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:443
&gt; +    if (!image)
&gt; +        return;

I would really like ti have all these functions have ASSERT(!image) instead. Can you check if it is possible to check for the image before calling this functions?

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1626
&gt; -    context-&gt;drawImage(reinterpret_cast&lt;Image*&gt;(gstImage-&gt;image().get()), ColorSpaceSRGB,
&gt; -                       rect, gstImage-&gt;rect(), CompositeCopy, DoNotRespectImageOrientation, false);
&gt; +    Image* image = reinterpret_cast&lt;Image*&gt;(gstImage-&gt;image().get());
&gt; +    if (!image)
&gt; +        return;
&gt; +
&gt; +    FloatRect srcRect = gstImage-&gt;cropRect();
&gt; +    if (srcRect.isEmpty())
&gt; +        srcRect  = FloatRect(IntRect(IntPoint(), image-&gt;size()));

I assume that gstImage-&gt;rect() implies that -1, -1 means undetermined intrinsic lines. Does the GStreamer code make the same assumption somewhere else? Why did you change to gstImage-&gt;cropRect()? Can we may fix gstImage-&gt;rect() instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754499</commentid>
    <comment_count>25</comment_count>
      <attachid>171482</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-10-30 10:40:28 -0700</bug_when>
    <thetext>Created attachment 171482
Patch

updated patch to address reviewer comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754600</commentid>
    <comment_count>26</comment_count>
      <attachid>171482</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-30 12:46:56 -0700</bug_when>
    <thetext>Comment on attachment 171482
Patch

Attachment 171482 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14643213

New failing tests:
css3/filters/huge-region.html
fast/gradients/gradient-on-pseudoelement-crash.html
fast/gradients/crash-on-1px-border.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754765</commentid>
    <comment_count>27</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-10-30 16:15:39 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (From update of attachment 171482 [details])
&gt; Attachment 171482 [details] did not pass mac-ews (mac):
&gt; Output: http://queues.webkit.org/results/14643213
&gt; 
&gt; New failing tests:
&gt; css3/filters/huge-region.html
&gt; fast/gradients/gradient-on-pseudoelement-crash.html
&gt; fast/gradients/crash-on-1px-border.html

Looks like the CSS Filters code and the CSS or Canvas gradients have problems?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754833</commentid>
    <comment_count>28</comment_count>
      <attachid>171558</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-10-30 17:45:17 -0700</bug_when>
    <thetext>Created attachment 171558
updated patch

(In reply to comment #27)
&gt; (In reply to comment #26)
&gt; &gt; (From update of attachment 171482 [details] [details])
&gt; &gt; Attachment 171482 [details] [details] did not pass mac-ews (mac):
&gt; &gt; Output: http://queues.webkit.org/results/14643213
&gt; &gt; 
&gt; &gt; New failing tests:
&gt; &gt; css3/filters/huge-region.html
&gt; &gt; fast/gradients/gradient-on-pseudoelement-crash.html
&gt; &gt; fast/gradients/crash-on-1px-border.html
&gt; 
&gt; Looks like the CSS Filters code and the CSS or Canvas gradients have problems?

Indeed.
I think this patch should pass the tests. But I&apos;m concerned about this patch: drawImage/drawImageBuffer is called more than 100 times in many different times. I investigating them, but in some of the calls, I cannot do much more than &quot;guess&quot; wether argument can be one day null (sometimes, the check is made in the caller caller function. Sometimes, I checked that the argument cannot be logically false). But for example, in the filters, I don&apos;t known if  FilterEffect-&gt;asImageBuffer() can under some circumstances be null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763484</commentid>
    <comment_count>29</comment_count>
      <attachid>173412</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-11-09 17:20:35 -0800</bug_when>
    <thetext>Created attachment 173412
check image pointer in DrawImage(Buffer?) methods

here is a patch checking image pointer in the DrawImage methods because it was too cumbersome and fragile to make that check in the callers; I am not marking it as neeeding review now because I did not manage to run the performance tests and get meaningful results</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764639</commentid>
    <comment_count>30</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-11-12 11:59:28 -0800</bug_when>
    <thetext>I&apos;ve run performance tests, and they did not report performance issues with anything related to graphics/canvas</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764872</commentid>
    <comment_count>31</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-11-12 15:08:57 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; I&apos;ve run performance tests, and they did not report performance issues with anything related to graphics/canvas

Just asked and there don&apos;t seem to be performance tests for Canvas at the moment. Especially not for drawImage, that may explain that you didn&apos;t see performance issues. Can you try writing an performance test for drawImage please? See in the folder PerformanceTests for examples.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768527</commentid>
    <comment_count>32</comment_count>
      <attachid>174523</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-11-15 14:51:11 -0800</bug_when>
    <thetext>Created attachment 174523
The performance test show no performance regression (and no improvement also) with the patch

updated patch: add a performance test for drawImage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771007</commentid>
    <comment_count>33</comment_count>
      <attachid>174523</attachid>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-11-19 13:56:55 -0800</bug_when>
    <thetext>Comment on attachment 174523
The performance test show no performance regression (and no improvement also) with the patch

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

Drive-by review by a non-reviewer.

I like how this gets rid of the inconsistent -1 cases but I&apos;m not a fan of the redundant (!image) checks it spawns. An idea: could we add IntRect::nullRect() and IntRect::isNull() to handle the special-case, similar to the use of -1 before? We could also extract PaintInfo::infiniteRect() for this purpose.

Also a couple nits on the performance test.

&gt; PerformanceTests/Canvas/drawimage.html:1
&gt; +&lt;!DOCTYPE html&gt;

Please add &lt;html&gt; and &lt;/html&gt; as well

&gt; PerformanceTests/ChangeLog:8
&gt; +        Create a drawImage performance test

Can you add sample output showing before and after performance?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775901</commentid>
    <comment_count>34</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-11-26 14:30:03 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; (From update of attachment 174523 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=174523&amp;action=review
&gt; 
&gt; Drive-by review by a non-reviewer.
&gt; 
&gt; I like how this gets rid of the inconsistent -1 cases but I&apos;m not a fan of the redundant (!image) checks it spawns. An idea: could we add IntRect::nullRect() and IntRect::isNull() to handle the special-case, similar to the use of -1 before? 

We would have to do the same for FloatRect also. We don&apos;t need LayoutRect now. But should we also do the same for LayoutRect. But anyway, I find the null rectangle confusing. For example:

void GraphicsContext::drawImageBuffer(ImageBuffer* image, ColorSpace styleColorSpace, const IntPoint&amp; dest, const IntRect&amp; srcRect, CompositeOperator op)
{
    drawImageBuffer(image, styleColorSpace, IntRect(dest, srcRect.size()), srcRect, op);
}


This is sometimes called with a specified dest, and an unspecified (-1 -1) srcRect. So, the resulting intRect should be: location specified, size unspecified. Is that a null rectangle with a location. Currently, I think the opposite case does not exist (rectangle created from an unspecified location, and a specified location). So, should we assume it won&apos;t happen, and consider that null rectangle means: unspecified size but location may be specified ? or is there a better way ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775937</commentid>
    <comment_count>35</comment_count>
      <attachid>174523</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-11-26 15:04:19 -0800</bug_when>
    <thetext>Comment on attachment 174523
The performance test show no performance regression (and no improvement also) with the patch

Why all the null checks? Did the drawImage function work properly with null images before?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775951</commentid>
    <comment_count>36</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-11-26 15:14:23 -0800</bug_when>
    <thetext>(In reply to comment #35)
&gt; (From update of attachment 174523 [details])
&gt; Why all the null checks? Did the drawImage function work properly with null images before?

The null check is needed for the functions when methods are called on that image object. So, it prevents null pointer dereferencing. Before, the null check is only performed in the &quot;final&quot; drawImage function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776150</commentid>
    <comment_count>37</comment_count>
      <attachid>174523</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-11-26 17:58:03 -0800</bug_when>
    <thetext>Comment on attachment 174523
The performance test show no performance regression (and no improvement also) with the patch

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

&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:474
&gt;      if (paintingDisabled() || !image)
&gt;          return;

It looks like we still do the check here?  So why would we want the additional null checks darin highlighted?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776170</commentid>
    <comment_count>38</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-11-26 18:14:55 -0800</bug_when>
    <thetext>(In reply to comment #37)
&gt; (From update of attachment 174523 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=174523&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:474
&gt; &gt;      if (paintingDisabled() || !image)
&gt; &gt;          return;
&gt; 
&gt; It looks like we still do the check here?  So why would we want the additional null checks darin highlighted?

for example here:
+    if (!image)
+        return;
+    drawImage(image, styleColorSpace, dest, FloatRect(IntRect(IntPoint(), image-&gt;size())));

to avoid crashing in image-&gt;size() if image is null</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785914</commentid>
    <comment_count>39</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-12-07 09:04:34 -0800</bug_when>
    <thetext>(In reply to comment #38)
&gt; (In reply to comment #37)
&gt; &gt; (From update of attachment 174523 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=174523&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:474
&gt; &gt; &gt;      if (paintingDisabled() || !image)
&gt; &gt; &gt;          return;
&gt; &gt; 
&gt; &gt; It looks like we still do the check here?  So why would we want the additional null checks darin highlighted?
&gt; 
&gt; for example here:
&gt; +    if (!image)
&gt; +        return;
&gt; +    drawImage(image, styleColorSpace, dest, FloatRect(IntRect(IntPoint(), image-&gt;size())));
&gt; 
&gt; to avoid crashing in image-&gt;size() if image is null

Arno is right, the checks are necessary now. schenney opened bug 104367 for fixing the multiple drawImage calls. Any objections to land this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786325</commentid>
    <comment_count>40</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-12-07 17:41:15 -0800</bug_when>
    <thetext>arno, can you elaborate in pdr&apos;s feedback on comment 33? The patch looks good to me otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788852</commentid>
    <comment_count>41</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-12-11 15:22:00 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; (From update of attachment 174523 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=174523&amp;action=review
&gt; 
&gt; Drive-by review by a non-reviewer.
&gt; 
&gt; I like how this gets rid of the inconsistent -1 cases but I&apos;m not a fan of the redundant (!image) checks it spawns. An idea: could we add IntRect::nullRect() and IntRect::isNull() to handle the special-case, similar to the use of -1 before?

Then first problem is that while it would help us get rid of the (!image) checks, it would add many isNull() checks (in the drawImages, when FloatRect are created from IntRect or when IntRect are created from IntPoint dest, IntRect srcRect.

The second problem is that &quot;nullRect&quot; may be confusing: it looks like the rectangle is undetermined. But actually, rectangles would not be totally undefined. Only their size would be.

&gt; 
&gt; Also a couple nits on the performance test.
&gt; 
&gt; &gt; PerformanceTests/Canvas/drawimage.html:1
&gt; &gt; +&lt;!DOCTYPE html&gt;
&gt; 
&gt; Please add &lt;html&gt; and &lt;/html&gt; as well
&gt; 
&gt; &gt; PerformanceTests/ChangeLog:8
&gt; &gt; +        Create a drawImage performance test
&gt; 
&gt; Can you add sample output showing before and after performance?

Thanks, I&apos;ll provide an update patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788861</commentid>
    <comment_count>42</comment_count>
      <attachid>178893</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-12-11 15:25:40 -0800</bug_when>
    <thetext>Created attachment 178893
Patch

updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788865</commentid>
    <comment_count>43</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-12-11 15:31:39 -0800</bug_when>
    <thetext>&gt; 
&gt; Thanks, I&apos;ll provide an update patch

I like the updated patch (once the merge failure is resolved). There&apos;s already a followup queued up that will further reduce the chained drawImage calls (wkbug.com/104367).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791681</commentid>
    <comment_count>44</comment_count>
      <attachid>178893</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-12-14 10:00:53 -0800</bug_when>
    <thetext>Comment on attachment 178893
Patch

There was a blending patch that introduced new arguments. You need to merge your patch with trunk. Other then that, I agree with pdr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791917</commentid>
    <comment_count>45</comment_count>
      <attachid>179544</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-12-14 15:38:01 -0800</bug_when>
    <thetext>Created attachment 179544
Patch

patch updated against tot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791975</commentid>
    <comment_count>46</comment_count>
      <attachid>179544</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-12-14 16:56:45 -0800</bug_when>
    <thetext>Comment on attachment 179544
Patch

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

&gt; PerformanceTests/ChangeLog:10
&gt; +        Create a drawImage performance test. There is no significative change
&gt; +        in performance: 27144.6851528 runs/s without the patch; 27153.517612
&gt; +        runs/s with the patch.

Please add this to PerformanceTests/Skipped. Until we implement a whitelist for performance tests, we’re going to blacklist all performance tests by default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791986</commentid>
    <comment_count>47</comment_count>
      <attachid>179563</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-12-14 17:08:51 -0800</bug_when>
    <thetext>Created attachment 179563
Patch

updated patch: skip performance test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807753</commentid>
    <comment_count>48</comment_count>
      <attachid>179563</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-01-15 15:37:59 -0800</bug_when>
    <thetext>Comment on attachment 179563
Patch

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

&gt; Source/WebCore/platform/graphics/filters/FEComposite.cpp:278
&gt; +    ImageBuffer* imgBuffer = in-&gt;asImageBuffer();
&gt; +    ImageBuffer* imgBuffer2 = in2-&gt;asImageBuffer();

We normally prefer not to abbreviate words like “image” as “img”. These should be named imageBuffer and imageBuffer2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807792</commentid>
    <comment_count>49</comment_count>
      <attachid>182865</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2013-01-15 16:04:10 -0800</bug_when>
    <thetext>Created attachment 182865
same patch except s/imgBuffer/imageBuffer/ and s/imgBuffer2/imageBuffer2/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808600</commentid>
    <comment_count>50</comment_count>
      <attachid>182865</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-01-16 12:13:38 -0800</bug_when>
    <thetext>Comment on attachment 182865
same patch except s/imgBuffer/imageBuffer/ and s/imgBuffer2/imageBuffer2/

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

Setting to r+ cq+ since Darin already gave r+. I checked that his requested changes were made.

&gt; PerformanceTests/Canvas/drawimage.html:9
&gt; +var source = document.createElement(&quot;canvas&quot;);
&gt; +source.width = 300;
&gt; +source.height = 150;

For future reference, these are the default values and thus not necessary.

&gt; PerformanceTests/Canvas/drawimage.html:15
&gt; +var target = document.createElement(&quot;canvas&quot;);
&gt; +target.width = source.width;
&gt; +target.height = source.height;

Same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808608</commentid>
    <comment_count>51</comment_count>
      <attachid>182865</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-16 12:26:31 -0800</bug_when>
    <thetext>Comment on attachment 182865
same patch except s/imgBuffer/imageBuffer/ and s/imgBuffer2/imageBuffer2/

Clearing flags on attachment: 182865

Committed r139911: &lt;http://trac.webkit.org/changeset/139911&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808609</commentid>
    <comment_count>52</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-16 12:26:38 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>169978</attachid>
            <date>2012-10-22 13:55:59 -0700</date>
            <delta_ts>2012-10-22 13:55:59 -0700</delta_ts>
            <desc>testcase</desc>
            <filename>index.html</filename>
            <type>text/html</type>
            <size>1080</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRl
bnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiA+CiAgICA8dGl0bGU+
PC90aXRsZT4KICAgIDxzdHlsZT4KICAgIGNhbnZhcyB7CiAgICAgICAgYm9yZGVyOiAxcHggc29s
aWQgYmxhY2s7CiAgICAgICAgbWFyZ2luOiA1cHg7CiAgICB9CiAgICA8L3N0eWxlPgogICAgPHNj
cmlwdD4KZnVuY3Rpb24gc3RhcnQoKSB7CiAgICB2YXIgc291cmNlID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiY2FudmFzIik7CiAgICB2YXIgc2MgPSBzb3VyY2UuZ2V0Q29udGV4dCgiMmQiKTsK
ICAgIHZhciBncmFkaWVudCA9IHNjLmNyZWF0ZUxpbmVhckdyYWRpZW50KDAsMCxzb3VyY2Uud2lk
dGgsMCk7CiAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoMCwnYmx1ZScpOwogICAgZ3JhZGllbnQu
YWRkQ29sb3JTdG9wKDEsJ29yYW5nZScpOwogICAgc2MuZmlsbFN0eWxlID0gZ3JhZGllbnQ7CiAg
ICBzYy5maWxsUmVjdCgwLCAwLCBzb3VyY2Uud2lkdGgsIHNvdXJjZS5oZWlnaHQpOwoKICAgIHZh
ciBkZXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7CiAgICBkZXN0LndpZHRo
ID0gc291cmNlLndpZHRoOwogICAgZGVzdC5oZWlnaHQgPSBzb3VyY2UuaGVpZ2h0OwogICAgdmFy
IHRjID0gZGVzdC5nZXRDb250ZXh0KCIyZCIpOwoKICAgIHRyeSB7CiAgICB0Yy5kcmF3SW1hZ2Uo
c291cmNlLCAwLCAwLCBzb3VyY2Uud2lkdGgsIHNvdXJjZS5oZWlnaHQsIDAsIDAsIC0xLCAtMSk7
CiAgICB9IGNhdGNoKGUpIHsgYWxlcnQoZSkgfSAKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJtYWluIikuYXBwZW5kQ2hpbGQoc291cmNlKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJtYWluIikuYXBwZW5kQ2hpbGQoZGVzdCk7Cn0KICAgIDwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5
IG9ubG9hZD0ic3RhcnQoKSI+CjxkaXYgaWQ9Im1haW4iPjwvZGl2PgpjYWxsaW5nIGRyYXdJbWFn
ZSB3aXRoIFstMSwgLTFdIGRlc3RpbmF0aW9uIHJlY3RhbmdsZQo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170489</attachid>
            <date>2012-10-24 15:30:06 -0700</date>
            <delta_ts>2012-10-26 14:11:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100026-20121024152839.patch</filename>
            <type>text/plain</type>
            <size>9013</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRlYjU3NDg0ODNlYTYz
Y2IxMjgzMDQzZmQ5OTJkYjQ1NzE0ZTlkZC4uNjRiNzdmNjA4ZjAwZjE1MmQ1ZGY0OGNmMDgxZTky
NTk1MjkyNzg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIyIEBACiAyMDEyLTEwLTI0ICBBcm5h
dWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CiAKKyAgICAgICAgaW5j
b25zaXN0ZW5jeSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJnZXQgcmVjdCBuZWdhdGl2ZSBkaW1lbnNp
b25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAw
MDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIC0xLCAtMSBzcGVjaWFsIGNhc2UgaW4gZHJhd0ltYWdlIGFuZCBkcmF3SW1hZ2VCdWZmZXIu
IEluc3RlYWQsCisgICAgICAgIGFsd2F5cyBjYWxsIHRob3NlIGZ1bmN0aW9ucyB3aXRoIHRoZSBj
b3JyZWN0IHJlY3RhbmdsZSBkaW1lbnNpb25zLgorCisgICAgICAgIFRlc3Q6IFVwZGF0ZQorICAg
ICAgICBmYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRp
b24uaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKToKKworMjAxMi0x
MC0yNCAgQXJuYXVkIFJlbmV2aWVyICA8YS5yZW5ldmllckBzaXNhLnNhbXN1bmcuY29tPgorCiAg
ICAgICAgIGRvIG5vdCBtdWx0aXBseS9kZW11bHRpcGx5IGNvbG9ycyB3aGVuIGFscGhhIGlzIDI1
NQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkyNDYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5jcHAKaW5kZXggMmNhMGU2NWY2MzUxMmVmNTVlOWNhMmVmOGUyZWQ5NTFmZGI5MTI5Ni4u
ZDRmNTc3NTc2MDJiZDVjZTA4Yjk1YmE4ZGVmZDFhODEzOGRkODA3NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC00
MzksMTIgKzQzOSwxNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0hpZ2hsaWdodEZvclRl
eHQoY29uc3QgRm9udCYgZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLAogCiB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3Bh
Y2UsIGNvbnN0IEludFBvaW50JiBwLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgUmVzcGVjdEltYWdl
T3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQogewotICAgIGRy
YXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBwLCBJbnRSZWN0KDAsIDAsIC0xLCAtMSks
IG9wLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CisgICAgaWYgKCFpbWFnZSkKKyAg
ICAgICAgcmV0dXJuOworICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBwLCBJ
bnRSZWN0KEludFBvaW50KDAsIDApLCBpbWFnZS0+c2l6ZSgpKSwgb3AsIHNob3VsZFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJ
bWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiBy
LCBDb21wb3NpdGVPcGVyYXRvciBvcCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3Vs
ZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKIHsKLSAg
ICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgciwgSW50UmVjdCgwLCAwLCAtMSwg
LTEpLCBvcCwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24sIHVzZUxvd1F1YWxpdHlTY2Fs
ZSk7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuOworICAgIGRyYXdJbWFnZShpbWFn
ZSwgc3R5bGVDb2xvclNwYWNlLCByLCBJbnRSZWN0KEludFBvaW50KDAsIDApLCBpbWFnZS0+c2l6
ZSgpKSwgb3AsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2Nh
bGUpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwg
Q29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiBkZXN0LCBjb25zdCBJ
bnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBvcCwgUmVzcGVjdEltYWdlT3JpZW50
YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQpAQCAtNDYyLDIxICs0NjYs
NiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JT
cGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSB8
fCAhaW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZsb2F0IHRzdyA9IHNyYy53aWR0aCgp
OwotICAgIGZsb2F0IHRzaCA9IHNyYy5oZWlnaHQoKTsKLSAgICBmbG9hdCB0dyA9IGRlc3Qud2lk
dGgoKTsKLSAgICBmbG9hdCB0aCA9IGRlc3QuaGVpZ2h0KCk7Ci0KLSAgICBpZiAodHN3ID09IC0x
KQotICAgICAgICB0c3cgPSBpbWFnZS0+d2lkdGgoKTsKLSAgICBpZiAodHNoID09IC0xKQotICAg
ICAgICB0c2ggPSBpbWFnZS0+aGVpZ2h0KCk7Ci0KLSAgICBpZiAodHcgPT0gLTEpCi0gICAgICAg
IHR3ID0gaW1hZ2UtPndpZHRoKCk7Ci0gICAgaWYgKHRoID09IC0xKQotICAgICAgICB0aCA9IGlt
YWdlLT5oZWlnaHQoKTsKLQogICAgIEludGVycG9sYXRpb25RdWFsaXR5IHByZXZpb3VzSW50ZXJw
b2xhdGlvblF1YWxpdHkgPSBJbnRlcnBvbGF0aW9uRGVmYXVsdDsKIAogICAgIGlmICh1c2VMb3dR
dWFsaXR5U2NhbGUpIHsKQEAgLTQ4OSw3ICs0NzgsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0
CiAjZW5kaWYKICAgICB9CiAKLSAgICBpbWFnZS0+ZHJhdyh0aGlzLCBGbG9hdFJlY3QoZGVzdC5s
b2NhdGlvbigpLCBGbG9hdFNpemUodHcsIHRoKSksIEZsb2F0UmVjdChzcmMubG9jYXRpb24oKSwg
RmxvYXRTaXplKHRzdywgdHNoKSksIHN0eWxlQ29sb3JTcGFjZSwgb3AsIHNob3VsZFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uKTsKKyAgICBpbWFnZS0+ZHJhdyh0aGlzLCBkZXN0LCBzcmMsIHN0eWxl
Q29sb3JTcGFjZSwgb3AsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKIAogICAgIGlm
ICh1c2VMb3dRdWFsaXR5U2NhbGUpCiAgICAgICAgIHNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxp
dHkocHJldmlvdXNJbnRlcnBvbGF0aW9uUXVhbGl0eSk7CkBAIC01MzIsMTIgKzUyMSwxNiBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNw
YWNlIHN0eWxlQ29sb3JTcGFjZSwgYwogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdl
QnVmZmVyKEltYWdlQnVmZmVyKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNv
bnN0IEludFBvaW50JiBwLCBDb21wb3NpdGVPcGVyYXRvciBvcCkKIHsKLSAgICBkcmF3SW1hZ2VC
dWZmZXIoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgcCwgSW50UmVjdCgwLCAwLCAtMSwgLTEpLCBv
cCk7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuOworICAgIGRyYXdJbWFnZUJ1ZmZl
cihpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBwLCBJbnRSZWN0KEludFBvaW50KDAsIDApLCBpbWFn
ZS0+bG9naWNhbFNpemUoKSksIG9wKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJ
bWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNl
LCBjb25zdCBJbnRSZWN0JiByLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgYm9vbCB1c2VMb3dRdWFs
aXR5U2NhbGUpCiB7Ci0gICAgZHJhd0ltYWdlQnVmZmVyKGltYWdlLCBzdHlsZUNvbG9yU3BhY2Us
IHIsIEludFJlY3QoMCwgMCwgLTEsIC0xKSwgb3AsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAg
aWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuOworICAgIGRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwg
c3R5bGVDb2xvclNwYWNlLCByLCBJbnRSZWN0KEludFBvaW50KDAsIDApLCBpbWFnZS0+bG9naWNh
bFNpemUoKSksIG9wLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiBkZXN0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0
LCBDb21wb3NpdGVPcGVyYXRvciBvcCkKQEAgLTU1NSwyMSArNTQ4LDYgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ug
c3R5bGVDb2xvclMKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpIHx8ICFpbWFnZSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgZmxvYXQgdHN3ID0gc3JjLndpZHRoKCk7Ci0gICAgZmxvYXQgdHNo
ID0gc3JjLmhlaWdodCgpOwotICAgIGZsb2F0IHR3ID0gZGVzdC53aWR0aCgpOwotICAgIGZsb2F0
IHRoID0gZGVzdC5oZWlnaHQoKTsKLQotICAgIGlmICh0c3cgPT0gLTEpCi0gICAgICAgIHRzdyA9
IGltYWdlLT5sb2dpY2FsU2l6ZSgpLndpZHRoKCk7Ci0gICAgaWYgKHRzaCA9PSAtMSkKLSAgICAg
ICAgdHNoID0gaW1hZ2UtPmxvZ2ljYWxTaXplKCkuaGVpZ2h0KCk7Ci0KLSAgICBpZiAodHcgPT0g
LTEpCi0gICAgICAgIHR3ID0gaW1hZ2UtPmxvZ2ljYWxTaXplKCkud2lkdGgoKTsKLSAgICBpZiAo
dGggPT0gLTEpCi0gICAgICAgIHRoID0gaW1hZ2UtPmxvZ2ljYWxTaXplKCkuaGVpZ2h0KCk7Ci0K
ICAgICBpZiAodXNlTG93UXVhbGl0eVNjYWxlKSB7CiAgICAgICAgIEludGVycG9sYXRpb25RdWFs
aXR5IHByZXZpb3VzSW50ZXJwb2xhdGlvblF1YWxpdHkgPSBpbWFnZUludGVycG9sYXRpb25RdWFs
aXR5KCk7CiAjaWYgUExBVEZPUk0oQ0hST01JVU0pCkBAIC01NzgsMTAgKzU1NiwxMCBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBpbWFnZSwgQ29s
b3JTcGFjZSBzdHlsZUNvbG9yUwogICAgICAgICAvLyBGSVhNRSAoNDkwMDIpOiBTaG91bGQgYmUg
SW50ZXJwb2xhdGlvbkxvdwogICAgICAgICBzZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KElu
dGVycG9sYXRpb25Ob25lKTsKICNlbmRpZgotICAgICAgICBpbWFnZS0+ZHJhdyh0aGlzLCBzdHls
ZUNvbG9yU3BhY2UsIEZsb2F0UmVjdChkZXN0LmxvY2F0aW9uKCksIEZsb2F0U2l6ZSh0dywgdGgp
KSwgRmxvYXRSZWN0KHNyYy5sb2NhdGlvbigpLCBGbG9hdFNpemUodHN3LCB0c2gpKSwgb3AsIHVz
ZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgICAgIGltYWdlLT5kcmF3KHRoaXMsIHN0eWxlQ29sb3JT
cGFjZSwgZGVzdCwgc3JjLCBvcCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKICAgICAgICAgc2V0SW1h
Z2VJbnRlcnBvbGF0aW9uUXVhbGl0eShwcmV2aW91c0ludGVycG9sYXRpb25RdWFsaXR5KTsKICAg
ICB9IGVsc2UKLSAgICAgICAgaW1hZ2UtPmRyYXcodGhpcywgc3R5bGVDb2xvclNwYWNlLCBGbG9h
dFJlY3QoZGVzdC5sb2NhdGlvbigpLCBGbG9hdFNpemUodHcsIHRoKSksIEZsb2F0UmVjdChzcmMu
bG9jYXRpb24oKSwgRmxvYXRTaXplKHRzdywgdHNoKSksIG9wLCB1c2VMb3dRdWFsaXR5U2NhbGUp
OworICAgICAgICBpbWFnZS0+ZHJhdyh0aGlzLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3QsIHNyYywg
b3AsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKICNpZiAhUExBVEZPUk0oUVQpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
OGM5N2IxNjFiMmZhN2ZkN2EzMzU1NDE4YWE5ZTgyNDYzOGMwNzc4My4uNmUzMTZkNGI0OGQ0ZmE0
MTA0YTc3NGRiMjdhY2I5N2Q2NDg0M2FhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEw
LTI0ICBBcm5hdWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAg
ICAgICAgaW5jb25zaXN0ZW5jeSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJnZXQgcmVjdCBuZWdhdGl2
ZSBkaW1lbnNpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAwMDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgZHJhd0ltYWdlIGNoZWNrIGZvciBhIGRlc3RpbmF0aW9uIHJlY3RhbmdsZSB3
aXRoIC0xcHgKKyAgICAgICAgd2lkdGgvaGVpZ2h0LiBXaGVuIGRyYXdpbmcgdG8gKDEsIDEsIC0x
LCAtMSkgcmVjdGFuZ2xlLCBmaXJzdAorICAgICAgICAodG9wLWxlZnQpIHBpeGVsIHNob3VsZCBo
YXZlIGJlZW4gYW5kIGJlZW4gdGhlIG9ubHkgb25lIGRyYXduIGludG8uCisKKyAgICAgICAgKiBm
YXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24tZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZl
LXNvdXJjZS1kZXN0aW5hdGlvbi5qczoKKwogMjAxMi0xMC0yMiAgRW1pbCBBIEVrbHVuZCAgPGVh
ZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcsIG1hcmtpbmcg
ZmFzdC9zdWItcGl4ZWwvZmlsZS11cGxvYWQtY29udHJvbC1hdC1mcmFjdGlvbmFsLW9mZnNldC5o
dG1sIGFzIGZhaWxpbmcgb24gTElPTiBmb3Igbm93LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0
aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi1leHBlY3RlZC50eHQKaW5kZXggNzM4NTY4YjBjZTEyMjJl
Zjg0YTQ4ZGNmZjA0MDcwZWJmMjViODBhNS4uZjQxYWM5MjM3MDViNzljYjQzODVhNjNmMTcwNmQy
MjgxNDgxNDA4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZHJhd0ltYWdl
LXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGlu
YXRpb24tZXhwZWN0ZWQudHh0CkBAIC02LDYgKzYsMTIgQEAgT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUKIFBBU1MgaW1nZGF0YVs0XSBpcyAwCiBQQVNTIGltZ2RhdGFbNV0gaXMgMjU1CiBQQVNTIGlt
Z2RhdGFbNl0gaXMgMAorUEFTUyBpbWdkYXRhWzBdIGlzIDI1NQorUEFTUyBpbWdkYXRhWzFdIGlz
IDAKK1BBU1MgaW1nZGF0YVsyXSBpcyAwCitQQVNTIGltZ2RhdGFbNF0gaXMgMAorUEFTUyBpbWdk
YXRhWzVdIGlzIDAKK1BBU1MgaW1nZGF0YVs2XSBpcyAwCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi5qcyBiL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0
aW5hdGlvbi5qcwppbmRleCAwYThhMDljMTUyMzU4MmNiYzE1YjFkNmFkNTUzNjA3YWQ0MmJmYWRk
Li42NzFmZDczYjZjNTYwNmQxZGU3NGQ1NzA3ZDcwMGM5MDY2NGFkYTAzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVz
dGluYXRpb24uanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdpdGgt
bmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLmpzCkBAIC0xOSwzICsxOSwxNiBAQCB2YXIgaW1n
ZGF0YSA9IGltYWdlRGF0YS5kYXRhOwogc2hvdWxkQmUoImltZ2RhdGFbNF0iLCAiMCIpOwogc2hv
dWxkQmUoImltZ2RhdGFbNV0iLCAiMjU1Iik7CiBzaG91bGRCZSgiaW1nZGF0YVs2XSIsICIwIik7
CisKKy8vIHRlc3Qgd2lkdGggb3IgaGVpZ2h0IC0xCitjYW52YXMuZmlsbFN0eWxlID0gJyMwMDAn
OworY2FudmFzLmZpbGxSZWN0KDAsIDAsIDEsIDIpOworY2FudmFzLmRyYXdJbWFnZShjYW52YXMy
LCAwLCAwLCAxLCAxLCAxLCAxLCAtMSwgLTEpOwordmFyIGltYWdlRGF0YSA9IGNhbnZhcy5nZXRJ
bWFnZURhdGEoMCwgMCwgMSwgMik7Cit2YXIgaW1nZGF0YSA9IGltYWdlRGF0YS5kYXRhOworc2hv
dWxkQmUoImltZ2RhdGFbMF0iLCAiMjU1Iik7CitzaG91bGRCZSgiaW1nZGF0YVsxXSIsICIwIik7
CitzaG91bGRCZSgiaW1nZGF0YVsyXSIsICIwIik7CitzaG91bGRCZSgiaW1nZGF0YVs0XSIsICIw
Iik7CitzaG91bGRCZSgiaW1nZGF0YVs1XSIsICIwIik7CitzaG91bGRCZSgiaW1nZGF0YVs2XSIs
ICIwIik7Cg==
</data>
<flag name="review"
          id="184111"
          type_id="1"
          status="-"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="184221"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171001</attachid>
            <date>2012-10-26 14:11:13 -0700</date>
            <delta_ts>2012-10-29 14:05:50 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>100026.patch</filename>
            <type>text/plain</type>
            <size>13382</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">Y29tbWl0IDAxOWE4NmY1ZmM4MGI3NzI5NDA2ZjRmZDc0N2E4YTg4ZjZjMmI4ZjEKQXV0aG9yOiBB
cm5hdWQgUmVuZXZpZXIgPGEucmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KRGF0ZTogICBXZWQg
T2N0IDI0IDE1OjE4OjI4IDIwMTIgLTA3MDAKCiAgICAxMDAwMjYKCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGM5N2IxNi4u
NmUzMTZkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEwLTI0ICBBcm5hdWQgUmVuZXZp
ZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgaW5jb25zaXN0ZW5j
eSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJnZXQgcmVjdCBuZWdhdGl2ZSBkaW1lbnNpb25zLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDI2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgZHJhd0lt
YWdlIGNoZWNrIGZvciBhIGRlc3RpbmF0aW9uIHJlY3RhbmdsZSB3aXRoIC0xcHgKKyAgICAgICAg
d2lkdGgvaGVpZ2h0LiBXaGVuIGRyYXdpbmcgdG8gKDEsIDEsIC0xLCAtMSkgcmVjdGFuZ2xlLCBm
aXJzdAorICAgICAgICAodG9wLWxlZnQpIHBpeGVsIHNob3VsZCBoYXZlIGJlZW4gYW5kIGJlZW4g
dGhlIG9ubHkgb25lIGRyYXduIGludG8uCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9kcmF3SW1h
Z2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlv
bi5qczoKKwogMjAxMi0xMC0yMiAgRW1pbCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcsIG1hcmtpbmcgZmFzdC9zdWItcGl4ZWwvZmls
ZS11cGxvYWQtY29udHJvbC1hdC1mcmFjdGlvbmFsLW9mZnNldC5odG1sIGFzIGZhaWxpbmcgb24g
TElPTiBmb3Igbm93LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZHJhd0lt
YWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5h
dGlvbi1leHBlY3RlZC50eHQKaW5kZXggNzM4NTY4Yi4uZjQxYWM5MiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3Rp
bmF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1h
Z2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24tZXhwZWN0ZWQudHh0CkBAIC02LDYg
KzYsMTIgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIFBBU1MgaW1nZGF0YVs0XSBpcyAwCiBQ
QVNTIGltZ2RhdGFbNV0gaXMgMjU1CiBQQVNTIGltZ2RhdGFbNl0gaXMgMAorUEFTUyBpbWdkYXRh
WzBdIGlzIDI1NQorUEFTUyBpbWdkYXRhWzFdIGlzIDAKK1BBU1MgaW1nZGF0YVsyXSBpcyAwCitQ
QVNTIGltZ2RhdGFbNF0gaXMgMAorUEFTUyBpbWdkYXRhWzVdIGlzIDAKK1BBU1MgaW1nZGF0YVs2
XSBpcyAwCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0
aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2RyYXdJ
bWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi5qcwppbmRleCAwYThhMDljLi42
NzFmZDczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0
aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24uanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLmpzCkBAIC0x
OSwzICsxOSwxNiBAQCB2YXIgaW1nZGF0YSA9IGltYWdlRGF0YS5kYXRhOwogc2hvdWxkQmUoImlt
Z2RhdGFbNF0iLCAiMCIpOwogc2hvdWxkQmUoImltZ2RhdGFbNV0iLCAiMjU1Iik7CiBzaG91bGRC
ZSgiaW1nZGF0YVs2XSIsICIwIik7CisKKy8vIHRlc3Qgd2lkdGggb3IgaGVpZ2h0IC0xCitjYW52
YXMuZmlsbFN0eWxlID0gJyMwMDAnOworY2FudmFzLmZpbGxSZWN0KDAsIDAsIDEsIDIpOworY2Fu
dmFzLmRyYXdJbWFnZShjYW52YXMyLCAwLCAwLCAxLCAxLCAxLCAxLCAtMSwgLTEpOwordmFyIGlt
YWdlRGF0YSA9IGNhbnZhcy5nZXRJbWFnZURhdGEoMCwgMCwgMSwgMik7Cit2YXIgaW1nZGF0YSA9
IGltYWdlRGF0YS5kYXRhOworc2hvdWxkQmUoImltZ2RhdGFbMF0iLCAiMjU1Iik7CitzaG91bGRC
ZSgiaW1nZGF0YVsxXSIsICIwIik7CitzaG91bGRCZSgiaW1nZGF0YVsyXSIsICIwIik7CitzaG91
bGRCZSgiaW1nZGF0YVs0XSIsICIwIik7CitzaG91bGRCZSgiaW1nZGF0YVs1XSIsICIwIik7Citz
aG91bGRCZSgiaW1nZGF0YVs2XSIsICIwIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjNmOGUyNC4uOTQzY2Y0
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDEyLTEwLTI2ICBBcm5hdWQgUmVuZXZp
ZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CiAKKyAgICAgICAgaW5jb25zaXN0ZW5j
eSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJnZXQgcmVjdCBuZWdhdGl2ZSBkaW1lbnNpb25zLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDI2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIC0xLCAt
MSBzcGVjaWFsIGNhc2UgaW4gZHJhd0ltYWdlIGFuZCBkcmF3SW1hZ2VCdWZmZXIuIFJlcGxhY2UK
KyAgICAgICAgYWxsIC0xIC0xIGFyZ3VtZW50cyBjYWxscyB0byB3aXRoIHRoZSBjb3JyZWN0IHJl
Y3RhbmdsZSBkaW1lbnNpb25zLgorICAgICAgICBSZW1vdmUgRmxvYXRSZWN0KDAsIDAsIC0xLCAt
MSkgZGVmYXVsdCBhcmd1bWVudCBmb3Igc3JjUmVjdCwgYW5kCisgICAgICAgIGluc3RlYWQsIGFk
ZCBuZXcgb3ZlcmxvYWRlZCBmdW5jdGlvbnMgdG8gY3JlYXRlIGEgRmxvYXRSZWN0IGZyb20gaW1h
Z2UKKyAgICAgICAgc2l6ZS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKEdy
YXBoaWNzQ29udGV4dCk6CisKKzIwMTItMTAtMjYgIEFybmF1ZCBSZW5ldmllciAgPGEucmVuZXZp
ZXJAc2lzYS5zYW1zdW5nLmNvbT4KKwogICAgICAgICB3ZWJ2aWV3IG5vdCByZWRyYXduIGFzIG5l
ZWRlZCB3aGVuIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGlzIGVuYWJsZWQuCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTEwOQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRl
eCAyY2EwZTY1Li4wMTQyNWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTQzOSwxMiArNDM5LDE2IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpkcmF3SGlnaGxpZ2h0Rm9yVGV4dChjb25zdCBGb250JiBmb250LCBj
b25zdCBUZXh0UnVuJiBydW4sCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1h
Z2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UG9pbnQmIHAs
IENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxk
UmVzcGVjdEltYWdlT3JpZW50YXRpb24pCiB7Ci0gICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNv
bG9yU3BhY2UsIHAsIEludFJlY3QoMCwgMCwgLTEsIC0xKSwgb3AsIHNob3VsZFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uKTsKKyAgICBpZiAoIWltYWdlKQorICAgICAgICByZXR1cm47CisgICAgZHJh
d0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHAsIEludFJlY3QoSW50UG9pbnQoMCwgMCks
IGltYWdlLT5zaXplKCkpLCBvcCwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pOwogfQog
CiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFj
ZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmIHIsIENvbXBvc2l0ZU9wZXJhdG9yIG9w
LCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRp
b24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQogewotICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5
bGVDb2xvclNwYWNlLCByLCBJbnRSZWN0KDAsIDAsIC0xLCAtMSksIG9wLCBzaG91bGRSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbiwgdXNlTG93UXVhbGl0eVNjYWxlKTsKKyAgICBpZiAoIWltYWdlKQor
ICAgICAgICByZXR1cm47CisgICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHIs
IEludFJlY3QoSW50UG9pbnQoMCwgMCksIGltYWdlLT5zaXplKCkpLCBvcCwgc2hvdWxkUmVzcGVj
dEltYWdlT3JpZW50YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgY29uc3QgSW50UG9pbnQmIGRlc3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBv
c2l0ZU9wZXJhdG9yIG9wLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVj
dEltYWdlT3JpZW50YXRpb24pCkBAIC00NTcsMjYgKzQ2MSwxOCBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2Us
IGNvbnN0CiAgICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIEZsb2F0UmVjdChk
ZXN0KSwgc3JjUmVjdCwgb3AsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dR
dWFsaXR5U2NhbGUpOwogfQogCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdl
KiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dCkKK3sKKyAgICBpZiAoIWltYWdlKQorICAgICAgICByZXR1cm47CisgICAgZHJhd0ltYWdlKGlt
YWdlLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3QsIEZsb2F0UmVjdChJbnRSZWN0KEludFBvaW50KDAs
IDApLCBpbWFnZS0+c2l6ZSgpKSkpOworfQorCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0lt
YWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdCwgY29uc3QgRmxvYXRSZWN0JiBzcmMsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24s
IGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkg
fHwgIWltYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBmbG9hdCB0c3cgPSBzcmMud2lkdGgo
KTsKLSAgICBmbG9hdCB0c2ggPSBzcmMuaGVpZ2h0KCk7Ci0gICAgZmxvYXQgdHcgPSBkZXN0Lndp
ZHRoKCk7Ci0gICAgZmxvYXQgdGggPSBkZXN0LmhlaWdodCgpOwotCi0gICAgaWYgKHRzdyA9PSAt
MSkKLSAgICAgICAgdHN3ID0gaW1hZ2UtPndpZHRoKCk7Ci0gICAgaWYgKHRzaCA9PSAtMSkKLSAg
ICAgICAgdHNoID0gaW1hZ2UtPmhlaWdodCgpOwotCi0gICAgaWYgKHR3ID09IC0xKQotICAgICAg
ICB0dyA9IGltYWdlLT53aWR0aCgpOwotICAgIGlmICh0aCA9PSAtMSkKLSAgICAgICAgdGggPSBp
bWFnZS0+aGVpZ2h0KCk7Ci0KICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBwcmV2aW91c0ludGVy
cG9sYXRpb25RdWFsaXR5ID0gSW50ZXJwb2xhdGlvbkRlZmF1bHQ7CiAKICAgICBpZiAodXNlTG93
UXVhbGl0eVNjYWxlKSB7CkBAIC00ODksNyArNDg1LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25z
dAogI2VuZGlmCiAgICAgfQogCi0gICAgaW1hZ2UtPmRyYXcodGhpcywgRmxvYXRSZWN0KGRlc3Qu
bG9jYXRpb24oKSwgRmxvYXRTaXplKHR3LCB0aCkpLCBGbG9hdFJlY3Qoc3JjLmxvY2F0aW9uKCks
IEZsb2F0U2l6ZSh0c3csIHRzaCkpLCBzdHlsZUNvbG9yU3BhY2UsIG9wLCBzaG91bGRSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbik7CisgICAgaW1hZ2UtPmRyYXcodGhpcywgZGVzdCwgc3JjLCBzdHls
ZUNvbG9yU3BhY2UsIG9wLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CiAKICAgICBp
ZiAodXNlTG93UXVhbGl0eVNjYWxlKQogICAgICAgICBzZXRJbWFnZUludGVycG9sYXRpb25RdWFs
aXR5KHByZXZpb3VzSW50ZXJwb2xhdGlvblF1YWxpdHkpOwpAQCAtNTMyLDEyICs1MjgsMTYgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxlZEltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JT
cGFjZSBzdHlsZUNvbG9yU3BhY2UsIGMKIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFn
ZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBj
b25zdCBJbnRQb2ludCYgcCwgQ29tcG9zaXRlT3BlcmF0b3Igb3ApCiB7Ci0gICAgZHJhd0ltYWdl
QnVmZmVyKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHAsIEludFJlY3QoMCwgMCwgLTEsIC0xKSwg
b3ApOworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybjsKKyAgICBkcmF3SW1hZ2VCdWZm
ZXIoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgcCwgSW50UmVjdChJbnRQb2ludCgwLCAwKSwgaW1h
Z2UtPmxvZ2ljYWxTaXplKCkpLCBvcCk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3
SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFj
ZSwgY29uc3QgSW50UmVjdCYgciwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIGJvb2wgdXNlTG93UXVh
bGl0eVNjYWxlKQogewotICAgIGRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgc3R5bGVDb2xvclNwYWNl
LCByLCBJbnRSZWN0KDAsIDAsIC0xLCAtMSksIG9wLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAg
IGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybjsKKyAgICBkcmF3SW1hZ2VCdWZmZXIoaW1hZ2Us
IHN0eWxlQ29sb3JTcGFjZSwgciwgSW50UmVjdChJbnRQb2ludCgwLCAwKSwgaW1hZ2UtPmxvZ2lj
YWxTaXplKCkpLCBvcCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKIH0KIAogdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5
bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgZGVzdCwgY29uc3QgSW50UmVjdCYgc3JjUmVj
dCwgQ29tcG9zaXRlT3BlcmF0b3Igb3ApCkBAIC01NTAsMjYgKzU1MCwxOCBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBpbWFnZSwgQ29sb3JTcGFj
ZSBzdHlsZUNvbG9yUwogICAgIGRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgc3R5bGVDb2xvclNwYWNl
LCBGbG9hdFJlY3QoZGVzdCksIHNyY1JlY3QsIG9wLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQog
Cit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBpbWFn
ZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdCkKK3sK
KyAgICBpZiAoIWltYWdlKQorICAgICAgICByZXR1cm47CisgICAgZHJhd0ltYWdlQnVmZmVyKGlt
YWdlLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3QsIEZsb2F0UmVjdChJbnRSZWN0KEludFBvaW50KDAs
IDApLCBpbWFnZS0+bG9naWNhbFNpemUoKSkpKTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xv
clNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBDb21w
b3NpdGVPcGVyYXRvciBvcCwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7CiAgICAgaWYgKHBh
aW50aW5nRGlzYWJsZWQoKSB8fCAhaW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZsb2F0
IHRzdyA9IHNyYy53aWR0aCgpOwotICAgIGZsb2F0IHRzaCA9IHNyYy5oZWlnaHQoKTsKLSAgICBm
bG9hdCB0dyA9IGRlc3Qud2lkdGgoKTsKLSAgICBmbG9hdCB0aCA9IGRlc3QuaGVpZ2h0KCk7Ci0K
LSAgICBpZiAodHN3ID09IC0xKQotICAgICAgICB0c3cgPSBpbWFnZS0+bG9naWNhbFNpemUoKS53
aWR0aCgpOwotICAgIGlmICh0c2ggPT0gLTEpCi0gICAgICAgIHRzaCA9IGltYWdlLT5sb2dpY2Fs
U2l6ZSgpLmhlaWdodCgpOwotCi0gICAgaWYgKHR3ID09IC0xKQotICAgICAgICB0dyA9IGltYWdl
LT5sb2dpY2FsU2l6ZSgpLndpZHRoKCk7Ci0gICAgaWYgKHRoID09IC0xKQotICAgICAgICB0aCA9
IGltYWdlLT5sb2dpY2FsU2l6ZSgpLmhlaWdodCgpOwotCiAgICAgaWYgKHVzZUxvd1F1YWxpdHlT
Y2FsZSkgewogICAgICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBwcmV2aW91c0ludGVycG9sYXRp
b25RdWFsaXR5ID0gaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSgpOwogI2lmIFBMQVRGT1JNKENI
Uk9NSVVNKQpAQCAtNTc4LDEwICs1NzAsMTAgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJ
bWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclMKICAg
ICAgICAgLy8gRklYTUUgKDQ5MDAyKTogU2hvdWxkIGJlIEludGVycG9sYXRpb25Mb3cKICAgICAg
ICAgc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uTm9uZSk7CiAjZW5k
aWYKLSAgICAgICAgaW1hZ2UtPmRyYXcodGhpcywgc3R5bGVDb2xvclNwYWNlLCBGbG9hdFJlY3Qo
ZGVzdC5sb2NhdGlvbigpLCBGbG9hdFNpemUodHcsIHRoKSksIEZsb2F0UmVjdChzcmMubG9jYXRp
b24oKSwgRmxvYXRTaXplKHRzdywgdHNoKSksIG9wLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAg
ICAgICBpbWFnZS0+ZHJhdyh0aGlzLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3QsIHNyYywgb3AsIHVz
ZUxvd1F1YWxpdHlTY2FsZSk7CiAgICAgICAgIHNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHko
cHJldmlvdXNJbnRlcnBvbGF0aW9uUXVhbGl0eSk7CiAgICAgfSBlbHNlCi0gICAgICAgIGltYWdl
LT5kcmF3KHRoaXMsIHN0eWxlQ29sb3JTcGFjZSwgRmxvYXRSZWN0KGRlc3QubG9jYXRpb24oKSwg
RmxvYXRTaXplKHR3LCB0aCkpLCBGbG9hdFJlY3Qoc3JjLmxvY2F0aW9uKCksIEZsb2F0U2l6ZSh0
c3csIHRzaCkpLCBvcCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKKyAgICAgICAgaW1hZ2UtPmRyYXco
dGhpcywgc3R5bGVDb2xvclNwYWNlLCBkZXN0LCBzcmMsIG9wLCB1c2VMb3dRdWFsaXR5U2NhbGUp
OwogfQogCiAjaWYgIVBMQVRGT1JNKFFUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCBmZTY1Zjg4Li4zYTE0N2I0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
aApAQCAtMzEzLDggKzMxMyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBk
cmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UmVj
dCYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgUmVzcGVjdEltYWdl
T3JpZW50YXRpb25FbnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1c2VM
b3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CiAgICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwg
Q29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIGNv
bnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNl
T3ZlciwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbik7CiAgICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0LCBjb25zdCBJbnRSZWN0JiBzcmNS
ZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wgdXNl
TG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwotICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSos
IENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QgPSBGbG9hdFJlY3QoMCwgMCwgLTEsIC0xKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVy
LCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0
aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKKyAgICAgICAgdm9pZCBkcmF3
SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCk7CisgICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBz
dHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCBi
b29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKICAgICAgICAgdm9pZCBkcmF3VGlsZWRJ
bWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgSW50UG9pbnQmIHNyY1BvaW50LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVT
b3VyY2VPdmVyLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKICAgICAgICAgdm9p
ZCBkcmF3VGlsZWRJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25z
dCBJbnRSZWN0JiBkZXN0UmVjdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwKQEAgLTMyNSw4ICsz
MjUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVy
KEltYWdlQnVmZmVyKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3Qm
LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIGJvb2wgdXNlTG93UXVh
bGl0eVNjYWxlID0gZmFsc2UpOwogICAgICAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1
ZmZlciosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgZGVzdFBv
aW50LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0
ZVNvdXJjZU92ZXIpOwogICAgICAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcios
IENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgSW50UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VP
dmVyLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKLSAgICAgICAgdm9pZCBkcmF3
SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0ID0gRmxvYXRS
ZWN0KDAsIDAsIC0xLCAtMSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbXBvc2l0
ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUg
PSBmYWxzZSk7CisgICAgICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiwgQ29s
b3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpOworICAg
ICAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciosIENvbG9yU3BhY2Ugc3R5bGVD
b2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgYm9vbCB1c2VM
b3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CiAKICAgICAgICAgdm9pZCBzZXRJbWFnZUludGVycG9s
YXRpb25RdWFsaXR5KEludGVycG9sYXRpb25RdWFsaXR5KTsKICAgICAgICAgSW50ZXJwb2xhdGlv
blF1YWxpdHkgaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSgpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171309</attachid>
            <date>2012-10-29 14:05:54 -0700</date>
            <delta_ts>2012-10-30 10:40:24 -0700</delta_ts>
            <desc>fix calls in FEComposite and in Gstreamer; replace IntPoint(0, 0) with IntPoint()</desc>
            <filename>bug-100026-20121029140418.patch</filename>
            <type>text/plain</type>
            <size>20664</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RlZDIzNTRiNjE2MjAy
NGYwNGI1YmMxYTBjOGYzOTA2NDI3MzgzOC4uMjkyODliYWM5YzEzMzJmYTEyZmZlYjQ1MjcxM2Rh
OGI2Y2FhMTVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQwIEBACiAyMDEyLTEwLTI5ICBBcm5h
dWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CiAKKyAgICAgICAgaW5j
b25zaXN0ZW5jeSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJnZXQgcmVjdCBuZWdhdGl2ZSBkaW1lbnNp
b25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAw
MDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIC0xLCAtMSBzcGVjaWFsIGNhc2UgaW4gZHJhd0ltYWdlIGFuZCBkcmF3SW1hZ2VCdWZmZXIu
IFJlcGxhY2UKKyAgICAgICAgYWxsIC0xIC0xIGFyZ3VtZW50cyBjYWxscyB0byB3aXRoIHRoZSBj
b3JyZWN0IHJlY3RhbmdsZSBkaW1lbnNpb25zLgorCisgICAgICAgIFJlbW92ZSBGbG9hdFJlY3Qo
MCwgMCwgLTEsIC0xKSBkZWZhdWx0IGFyZ3VtZW50IGZvciBzcmNSZWN0LCBhbmQKKyAgICAgICAg
aW5zdGVhZCwgYWRkIG5ldyBvdmVybG9hZGVkIGZ1bmN0aW9ucyB0byBjcmVhdGUgYSBGbG9hdFJl
Y3QgZnJvbSBpbWFnZQorICAgICAgICBzaXplLgorCisgICAgICAgIFJlcGxhY2UgLTEgLTEgYXJn
dW1lbnRzIGNhbGxzIGluIEZFQ29tcG9zaXRlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUKKyAgICAg
ICAgd2l0aCBjb3JyZWN0IHJlY3RhbmdsZSBkaW1lbnNpb25zLgorCisgICAgICAgIFJlcGxhY2Ug
SW1hZ2VHU3RyZWFtZXIgcmVjdCBtZXRob2QgKHdoaWNoIG1heSByZXR1cm4gLTEgLTEgcmVjdGFu
Z2xlKQorICAgICAgICB3aXRoIGNyb3BSZWN0IG1ldGhvZCwgYW5kIG1ha2UgY2FsbGVyIGNoZWNr
IGZvciByZWN0YW5nbGUgZW1wdGluZXNzLgorCisgICAgICAgICogZmFzdC9jYW52YXMvZHJhd0lt
YWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRp
b24uanM6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFn
ZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6
CisgICAgICAgIChHcmFwaGljc0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVDb21wb3NpdGU6
OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUdTdHJlYW1l
cjo6Y3JvcFJlY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorCisyMDEyLTEwLTI5ICBBcm5hdWQgUmVuZXZp
ZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKICAgICAgICAgd2VidmlldyBub3Qg
cmVkcmF3biBhcyBuZWVkZWQgd2hlbiBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBpcyBlbmFibGVk
LgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkxMDkK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5jcHAKaW5kZXggMmNhMGU2NWY2MzUxMmVmNTVlOWNhMmVmOGUyZWQ5NTFmZGI5MTI5Ni4u
MzQwNGEwOGRkMGZjNGRlZDUwZGFjYmI2OWFhODcwZjQ4NTAyYTk2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC00
MzksMTIgKzQzOSwxNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0hpZ2hsaWdodEZvclRl
eHQoY29uc3QgRm9udCYgZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLAogCiB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3Bh
Y2UsIGNvbnN0IEludFBvaW50JiBwLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgUmVzcGVjdEltYWdl
T3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQogewotICAgIGRy
YXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBwLCBJbnRSZWN0KDAsIDAsIC0xLCAtMSks
IG9wLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CisgICAgaWYgKCFpbWFnZSkKKyAg
ICAgICAgcmV0dXJuOworICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBwLCBJ
bnRSZWN0KEludFBvaW50KCksIGltYWdlLT5zaXplKCkpLCBvcCwgc2hvdWxkUmVzcGVjdEltYWdl
T3JpZW50YXRpb24pOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdl
KiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmIHIsIENv
bXBvc2l0ZU9wZXJhdG9yIG9wLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVz
cGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQogewotICAgIGRy
YXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCByLCBJbnRSZWN0KDAsIDAsIC0xLCAtMSks
IG9wLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgdXNlTG93UXVhbGl0eVNjYWxlKTsK
KyAgICBpZiAoIWltYWdlKQorICAgICAgICByZXR1cm47CisgICAgZHJhd0ltYWdlKGltYWdlLCBz
dHlsZUNvbG9yU3BhY2UsIHIsIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2UtPnNpemUoKSksIG9w
LCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgdXNlTG93UXVhbGl0eVNjYWxlKTsKIH0K
IAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3Bh
Y2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgZGVzdCwgY29uc3QgSW50UmVjdCYg
c3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51
bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKQEAgLTQ1NywyNiArNDYxLDE4IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0
eWxlQ29sb3JTcGFjZSwgY29uc3QKICAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFj
ZSwgRmxvYXRSZWN0KGRlc3QpLCBzcmNSZWN0LCBvcCwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50
YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0KQoreworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybjsKKyAg
ICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgZGVzdCwgRmxvYXRSZWN0KEludFJl
Y3QoSW50UG9pbnQoKSwgaW1hZ2UtPnNpemUoKSkpKTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBDb21wb3NpdGVPcGVy
YXRvciBvcCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKIHsKICAgICBpZiAocGFpbnRpbmdE
aXNhYmxlZCgpIHx8ICFpbWFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZmxvYXQgdHN3ID0g
c3JjLndpZHRoKCk7Ci0gICAgZmxvYXQgdHNoID0gc3JjLmhlaWdodCgpOwotICAgIGZsb2F0IHR3
ID0gZGVzdC53aWR0aCgpOwotICAgIGZsb2F0IHRoID0gZGVzdC5oZWlnaHQoKTsKLQotICAgIGlm
ICh0c3cgPT0gLTEpCi0gICAgICAgIHRzdyA9IGltYWdlLT53aWR0aCgpOwotICAgIGlmICh0c2gg
PT0gLTEpCi0gICAgICAgIHRzaCA9IGltYWdlLT5oZWlnaHQoKTsKLQotICAgIGlmICh0dyA9PSAt
MSkKLSAgICAgICAgdHcgPSBpbWFnZS0+d2lkdGgoKTsKLSAgICBpZiAodGggPT0gLTEpCi0gICAg
ICAgIHRoID0gaW1hZ2UtPmhlaWdodCgpOwotCiAgICAgSW50ZXJwb2xhdGlvblF1YWxpdHkgcHJl
dmlvdXNJbnRlcnBvbGF0aW9uUXVhbGl0eSA9IEludGVycG9sYXRpb25EZWZhdWx0OwogCiAgICAg
aWYgKHVzZUxvd1F1YWxpdHlTY2FsZSkgewpAQCAtNDg5LDcgKzQ4NSw3IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgY29uc3QKICNlbmRpZgogICAgIH0KIAotICAgIGltYWdlLT5kcmF3KHRoaXMsIEZsb2F0
UmVjdChkZXN0LmxvY2F0aW9uKCksIEZsb2F0U2l6ZSh0dywgdGgpKSwgRmxvYXRSZWN0KHNyYy5s
b2NhdGlvbigpLCBGbG9hdFNpemUodHN3LCB0c2gpKSwgc3R5bGVDb2xvclNwYWNlLCBvcCwgc2hv
dWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pOworICAgIGltYWdlLT5kcmF3KHRoaXMsIGRlc3Qs
IHNyYywgc3R5bGVDb2xvclNwYWNlLCBvcCwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24p
OwogCiAgICAgaWYgKHVzZUxvd1F1YWxpdHlTY2FsZSkKICAgICAgICAgc2V0SW1hZ2VJbnRlcnBv
bGF0aW9uUXVhbGl0eShwcmV2aW91c0ludGVycG9sYXRpb25RdWFsaXR5KTsKQEAgLTUzMiwxMiAr
NTI4LDE2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3VGlsZWRJbWFnZShJbWFnZSogaW1h
Z2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29s
b3JTcGFjZSwgY29uc3QgSW50UG9pbnQmIHAsIENvbXBvc2l0ZU9wZXJhdG9yIG9wKQogewotICAg
IGRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBwLCBJbnRSZWN0KDAsIDAs
IC0xLCAtMSksIG9wKTsKKyAgICBpZiAoIWltYWdlKQorICAgICAgICByZXR1cm47CisgICAgZHJh
d0ltYWdlQnVmZmVyKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHAsIEludFJlY3QoSW50UG9pbnQo
KSwgaW1hZ2UtPmxvZ2ljYWxTaXplKCkpLCBvcCk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29s
b3JTcGFjZSwgY29uc3QgSW50UmVjdCYgciwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIGJvb2wgdXNl
TG93UXVhbGl0eVNjYWxlKQogewotICAgIGRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgc3R5bGVDb2xv
clNwYWNlLCByLCBJbnRSZWN0KDAsIDAsIC0xLCAtMSksIG9wLCB1c2VMb3dRdWFsaXR5U2NhbGUp
OworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybjsKKyAgICBkcmF3SW1hZ2VCdWZmZXIo
aW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgciwgSW50UmVjdChJbnRQb2ludCgpLCBpbWFnZS0+bG9n
aWNhbFNpemUoKSksIG9wLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCiB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBpbWFnZSwgQ29sb3JTcGFjZSBz
dHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiBkZXN0LCBjb25zdCBJbnRSZWN0JiBzcmNS
ZWN0LCBDb21wb3NpdGVPcGVyYXRvciBvcCkKQEAgLTU1MCwyNiArNTUwLDE4IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIGltYWdlLCBDb2xvclNw
YWNlIHN0eWxlQ29sb3JTCiAgICAgZHJhd0ltYWdlQnVmZmVyKGltYWdlLCBzdHlsZUNvbG9yU3Bh
Y2UsIEZsb2F0UmVjdChkZXN0KSwgc3JjUmVjdCwgb3AsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9
CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIGlt
YWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0KQor
eworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybjsKKyAgICBkcmF3SW1hZ2VCdWZmZXIo
aW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgZGVzdCwgRmxvYXRSZWN0KEludFJlY3QoSW50UG9pbnQo
KSwgaW1hZ2UtPmxvZ2ljYWxTaXplKCkpKSk7Cit9CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0LCBjb25zdCBGbG9hdFJlY3QmIHNyYywgQ29tcG9z
aXRlT3BlcmF0b3Igb3AsIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQogewogICAgIGlmIChwYWlu
dGluZ0Rpc2FibGVkKCkgfHwgIWltYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBmbG9hdCB0
c3cgPSBzcmMud2lkdGgoKTsKLSAgICBmbG9hdCB0c2ggPSBzcmMuaGVpZ2h0KCk7Ci0gICAgZmxv
YXQgdHcgPSBkZXN0LndpZHRoKCk7Ci0gICAgZmxvYXQgdGggPSBkZXN0LmhlaWdodCgpOwotCi0g
ICAgaWYgKHRzdyA9PSAtMSkKLSAgICAgICAgdHN3ID0gaW1hZ2UtPmxvZ2ljYWxTaXplKCkud2lk
dGgoKTsKLSAgICBpZiAodHNoID09IC0xKQotICAgICAgICB0c2ggPSBpbWFnZS0+bG9naWNhbFNp
emUoKS5oZWlnaHQoKTsKLQotICAgIGlmICh0dyA9PSAtMSkKLSAgICAgICAgdHcgPSBpbWFnZS0+
bG9naWNhbFNpemUoKS53aWR0aCgpOwotICAgIGlmICh0aCA9PSAtMSkKLSAgICAgICAgdGggPSBp
bWFnZS0+bG9naWNhbFNpemUoKS5oZWlnaHQoKTsKLQogICAgIGlmICh1c2VMb3dRdWFsaXR5U2Nh
bGUpIHsKICAgICAgICAgSW50ZXJwb2xhdGlvblF1YWxpdHkgcHJldmlvdXNJbnRlcnBvbGF0aW9u
UXVhbGl0eSA9IGltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoKTsKICNpZiBQTEFURk9STShDSFJP
TUlVTSkKQEAgLTU3OCwxMCArNTcwLDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1h
Z2VCdWZmZXIoSW1hZ2VCdWZmZXIqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTCiAgICAg
ICAgIC8vIEZJWE1FICg0OTAwMik6IFNob3VsZCBiZSBJbnRlcnBvbGF0aW9uTG93CiAgICAgICAg
IHNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvbk5vbmUpOwogI2VuZGlm
Ci0gICAgICAgIGltYWdlLT5kcmF3KHRoaXMsIHN0eWxlQ29sb3JTcGFjZSwgRmxvYXRSZWN0KGRl
c3QubG9jYXRpb24oKSwgRmxvYXRTaXplKHR3LCB0aCkpLCBGbG9hdFJlY3Qoc3JjLmxvY2F0aW9u
KCksIEZsb2F0U2l6ZSh0c3csIHRzaCkpLCBvcCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKKyAgICAg
ICAgaW1hZ2UtPmRyYXcodGhpcywgc3R5bGVDb2xvclNwYWNlLCBkZXN0LCBzcmMsIG9wLCB1c2VM
b3dRdWFsaXR5U2NhbGUpOwogICAgICAgICBzZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KHBy
ZXZpb3VzSW50ZXJwb2xhdGlvblF1YWxpdHkpOwogICAgIH0gZWxzZQotICAgICAgICBpbWFnZS0+
ZHJhdyh0aGlzLCBzdHlsZUNvbG9yU3BhY2UsIEZsb2F0UmVjdChkZXN0LmxvY2F0aW9uKCksIEZs
b2F0U2l6ZSh0dywgdGgpKSwgRmxvYXRSZWN0KHNyYy5sb2NhdGlvbigpLCBGbG9hdFNpemUodHN3
LCB0c2gpKSwgb3AsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgICAgIGltYWdlLT5kcmF3KHRo
aXMsIHN0eWxlQ29sb3JTcGFjZSwgZGVzdCwgc3JjLCBvcCwgdXNlTG93UXVhbGl0eVNjYWxlKTsK
IH0KIAogI2lmICFQTEFURk9STShRVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5kZXggZmU2NWY4ODYwYjQ4MGExNDZiZmFhNTg1
ZjIyMTYzMjcxMTVlMjdlMC4uM2ExNDdiNDRiZGQ1ZmUxOWVjOWYwMzQ4YTE0M2U1MGE1NDliMTM3
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmgKQEAgLTMxMyw4ICszMTMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0
IEludFJlY3QmLCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24sIGJv
b2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwogICAgICAgICB2b2lkIGRyYXdJbWFnZShJ
bWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgZGVzdFBv
aW50LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0
ZVNvdXJjZU92ZXIsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVzcGVjdElt
YWdlT3JpZW50YXRpb24pOwogICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3Bh
Y2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCwgY29uc3QgSW50UmVj
dCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCBi
b29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKLSAgICAgICAgdm9pZCBkcmF3SW1hZ2Uo
SW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0ID0gRmxvYXRSZWN0KDAsIDAsIC0xLCAtMSks
Ci0gICAgICAgICAgICAgICAgICAgICAgIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291
cmNlT3ZlciwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CisgICAgICAgIHZv
aWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QpOworICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9y
U3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3Zl
ciwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRh
dGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CiAgICAgICAgIHZvaWQgZHJh
d1RpbGVkSW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEludFBvaW50JiBzcmNQb2ludCwgY29uc3QgSW50U2l6ZSYg
dGlsZVNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29t
cG9zaXRlU291cmNlT3ZlciwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CiAgICAg
ICAgIHZvaWQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFj
ZSwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsCkBAIC0z
MjUsOCArMzI1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGRyYXdJbWFn
ZUJ1ZmZlcihJbWFnZUJ1ZmZlciosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJ
bnRSZWN0JiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBib29sIHVz
ZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKICAgICAgICAgdm9pZCBkcmF3SW1hZ2VCdWZmZXIo
SW1hZ2VCdWZmZXIqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UG9pbnQm
IGRlc3RQb2ludCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgPSBD
b21wb3NpdGVTb3VyY2VPdmVyKTsKICAgICAgICAgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VC
dWZmZXIqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRl
U291cmNlT3ZlciwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7Ci0gICAgICAgIHZv
aWQgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3Bh
Y2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCA9
IEZsb2F0UmVjdCgwLCAwLCAtMSwgLTEpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
b21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIGJvb2wgdXNlTG93UXVhbGl0
eVNjYWxlID0gZmFsc2UpOworICAgICAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZl
ciosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
KTsKKyAgICAgICAgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqLCBDb2xvclNwYWNl
IHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIGJv
b2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwogCiAgICAgICAgIHZvaWQgc2V0SW1hZ2VJ
bnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0eSk7CiAgICAgICAgIEludGVy
cG9sYXRpb25RdWFsaXR5IGltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3Np
dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBv
c2l0ZS5jcHAKaW5kZXggOWQ1NjZlZDkyM2Q5NWFkMzQ0MzE3MWE3MzBhOTBjZGUzOWNhY2YyOC4u
YzFmNjQ0Mzg5N2IwOTEzZDc3YjU3M2NmMjMyYmRjNjYwZWFjZDlmNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5j
cHAKQEAgLTI3NCwxMSArMjc0LDE1IEBAIHZvaWQgRkVDb21wb3NpdGU6OnBsYXRmb3JtQXBwbHlT
b2Z0d2FyZSgpCiAgICAgICAgIHJldHVybjsKICAgICBHcmFwaGljc0NvbnRleHQqIGZpbHRlckNv
bnRleHQgPSByZXN1bHRJbWFnZS0+Y29udGV4dCgpOwogCi0gICAgRmxvYXRSZWN0IHNyY1JlY3Qg
PSBGbG9hdFJlY3QoMCwgMCwgLTEsIC0xKTsKKyAgICBJbWFnZUJ1ZmZlciogaW1nQnVmZmVyID0g
aW4tPmFzSW1hZ2VCdWZmZXIoKTsKKyAgICBJbWFnZUJ1ZmZlciogaW1nQnVmZmVyMiA9IGluMi0+
YXNJbWFnZUJ1ZmZlcigpOworICAgIEFTU0VSVChpbWdCdWZmZXIpOworICAgIEFTU0VSVChpbWdC
dWZmZXIyKTsKKwogICAgIHN3aXRjaCAobV90eXBlKSB7CiAgICAgY2FzZSBGRUNPTVBPU0lURV9P
UEVSQVRPUl9PVkVSOgotICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW4y
LT5hc0ltYWdlQnVmZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklu
cHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7Ci0gICAgICAgIGZpbHRlckNvbnRl
eHQtPmRyYXdJbWFnZUJ1ZmZlcihpbi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNlRGV2aWNl
UkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7
CisgICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWdCdWZmZXIyLCBDb2xv
clNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQ
YWludFJlY3QoKSkpOworICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1n
QnVmZmVyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGlu
LT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRkVDT01Q
T1NJVEVfT1BFUkFUT1JfSU46IHsKICAgICAgICAgLy8gQXBwbGllcyBvbmx5IHRvIHRoZSBpbnRl
cnNlY3RlZCByZWdpb24uCkBAIC0yOTIsMjEgKzI5NiwyMSBAQCB2b2lkIEZFQ29tcG9zaXRlOjpw
bGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGVzdGluYXRpb25SZWN0LnkoKSAtIGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpLnkoKSksIGRl
c3RpbmF0aW9uUmVjdC5zaXplKCkpOwogICAgICAgICBJbnRSZWN0IHNvdXJjZTJSZWN0KEludFBv
aW50KGRlc3RpbmF0aW9uUmVjdC54KCkgLSBpbjItPmFic29sdXRlUGFpbnRSZWN0KCkueCgpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uUmVjdC55KCkg
LSBpbjItPmFic29sdXRlUGFpbnRSZWN0KCkueSgpKSwgZGVzdGluYXRpb25SZWN0LnNpemUoKSk7
Ci0gICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbjItPmFzSW1hZ2VCdWZm
ZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZGVzdGluYXRpb25Qb2ludCwgc291cmNlMlJlY3Qp
OwotICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW4tPmFzSW1hZ2VCdWZm
ZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZGVzdGluYXRpb25Qb2ludCwgc291cmNlUmVjdCwg
Q29tcG9zaXRlU291cmNlSW4pOworICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZm
ZXIoaW1nQnVmZmVyMiwgQ29sb3JTcGFjZURldmljZVJHQiwgZGVzdGluYXRpb25Qb2ludCwgc291
cmNlMlJlY3QpOworICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1nQnVm
ZmVyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkZXN0aW5hdGlvblBvaW50LCBzb3VyY2VSZWN0LCBD
b21wb3NpdGVTb3VyY2VJbik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEZFQ09N
UE9TSVRFX09QRVJBVE9SX09VVDoKLSAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVm
ZmVyKGluLT5hc0ltYWdlQnVmZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdp
b25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKLSAgICAgICAgZmlsdGVy
Q29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGluMi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNl
RGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJl
Y3QoKSksIHNyY1JlY3QsIENvbXBvc2l0ZURlc3RpbmF0aW9uT3V0KTsKKyAgICAgICAgZmlsdGVy
Q29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltZ0J1ZmZlciwgQ29sb3JTcGFjZURldmljZVJHQiwg
ZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOworICAg
ICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1nQnVmZmVyMiwgQ29sb3JTcGFj
ZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29sdXRlUGFpbnRS
ZWN0KCkpLCBJbnRSZWN0KEludFBvaW50KCksIGltZ0J1ZmZlcjItPmxvZ2ljYWxTaXplKCkpLCBD
b21wb3NpdGVEZXN0aW5hdGlvbk91dCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRkVDT01Q
T1NJVEVfT1BFUkFUT1JfQVRPUDoKLSAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVm
ZmVyKGluMi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVn
aW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOwotICAgICAgICBmaWx0
ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW4tPmFzSW1hZ2VCdWZmZXIoKSwgQ29sb3JTcGFj
ZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJl
Y3QoKSksIHNyY1JlY3QsIENvbXBvc2l0ZVNvdXJjZUF0b3ApOworICAgICAgICBmaWx0ZXJDb250
ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1nQnVmZmVyMiwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJh
d2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKKyAgICAg
ICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltZ0J1ZmZlciwgQ29sb3JTcGFjZURl
dmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3Qo
KSksIEludFJlY3QoSW50UG9pbnQoKSwgaW1nQnVmZmVyLT5sb2dpY2FsU2l6ZSgpKSwgQ29tcG9z
aXRlU291cmNlQXRvcCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRkVDT01QT1NJVEVfT1BF
UkFUT1JfWE9SOgotICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW4yLT5h
c0ltYWdlQnVmZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0
SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7Ci0gICAgICAgIGZpbHRlckNvbnRleHQt
PmRyYXdJbWFnZUJ1ZmZlcihpbi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNlRGV2aWNlUkdC
LCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSwgc3Jj
UmVjdCwgQ29tcG9zaXRlWE9SKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVm
ZmVyKGltZ0J1ZmZlcjIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0
SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7CisgICAgICAgIGZpbHRlckNvbnRleHQt
PmRyYXdJbWFnZUJ1ZmZlcihpbWdCdWZmZXIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdS
ZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpLCBJbnRSZWN0KEludFBv
aW50KCksIGltZ0J1ZmZlci0+bG9naWNhbFNpemUoKSksIENvbXBvc2l0ZVhPUik7CiAgICAgICAg
IGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXIu
aAppbmRleCA4M2JkZmUyYjcyMjY4YjAyOGU3M2ZkODRkNzNkYzJiNDBiMDkwZjQzLi4yOGVhNGNj
ZTFjYWFlODA5ZWU4Yjk4YmY1NWI0NjQ5NjE4NmU5NTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXIu
aApAQCAtNDcsMTMgKzQ3LDkgQEAgY2xhc3MgSW1hZ2VHU3RyZWFtZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxJbWFnZUdTdHJlYW1lcj4gewogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBzZXRDcm9w
UmVjdChGbG9hdFJlY3QgcmVjdCkgeyBtX2Nyb3BSZWN0ID0gcmVjdDsgfQotICAgICAgICBGbG9h
dFJlY3QgcmVjdCgpCisgICAgICAgIEZsb2F0UmVjdCBjcm9wUmVjdCgpCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIGlmICghbV9jcm9wUmVjdC5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIEZsb2F0UmVjdChtX2Nyb3BSZWN0KTsKLQotICAgICAgICAgICAgLy8gRGVmYXVsdCByZWN0
YW5nbGUgdXNlZCBieSBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZSgpLgotICAgICAgICAgICAg
cmV0dXJuIEZsb2F0UmVjdCgwLCAwLCAtMSwgLTEpOworICAgICAgICAgICAgcmV0dXJuIEZsb2F0
UmVjdChtX2Nyb3BSZWN0KTsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggMTAzNDg3MTc2MDg2
ZjQ3MjgwNDdlMDY0Njc2NWVmMTMzNWJhMzQ3Zi4uN2NhYzcyODU1NWNhOWE2YjQ4NmU2ZDZkNmE4
YzYzNjMzY2Y5OThlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAKQEAgLTE2MTcsOCArMTYxNywxNCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0
JgogICAgIGlmICghZ3N0SW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbnRleHQtPmRy
YXdJbWFnZShyZWludGVycHJldF9jYXN0PEltYWdlKj4oZ3N0SW1hZ2UtPmltYWdlKCkuZ2V0KCkp
LCBDb2xvclNwYWNlU1JHQiwKLSAgICAgICAgICAgICAgICAgICAgICAgcmVjdCwgZ3N0SW1hZ2Ut
PnJlY3QoKSwgQ29tcG9zaXRlQ29weSwgRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgZmFs
c2UpOworICAgIEltYWdlKiBpbWFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8SW1hZ2UqPihnc3RJbWFn
ZS0+aW1hZ2UoKS5nZXQoKSk7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgRmxvYXRSZWN0IHNyY1JlY3QgPSBnc3RJbWFnZS0+Y3JvcFJlY3QoKTsKKyAgICBpZiAoc3Jj
UmVjdC5pc0VtcHR5KCkpCisgICAgICAgIHNyY1JlY3QgID0gRmxvYXRSZWN0KEludFJlY3QoSW50
UG9pbnQoKSwgaW1hZ2UtPnNpemUoKSkpOworICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFnZSwg
Q29sb3JTcGFjZVNSR0IsIHJlY3QsIHNyY1JlY3QsIENvbXBvc2l0ZUNvcHksIERvTm90UmVzcGVj
dEltYWdlT3JpZW50YXRpb24sIGZhbHNlKTsKIH0KIAogc3RhdGljIEhhc2hTZXQ8U3RyaW5nPiBt
aW1lVHlwZUNhY2hlKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4Yzk3YjE2MWIyZmE3ZmQ3YTMzNTU0MThhYTllODI0NjM4
YzA3NzgzLi5iOTIzNzY0YjI2MTA4ODJhMmJhNGM4ZjQ1NGVkMWQ0ODgyMzE1NzViIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTItMTAtMjkgIEFybmF1ZCBSZW5ldmllciAgPGEucmVuZXZpZXJA
c2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBpbmNvbnNpc3RlbmN5IGluIGRyYXdJbWFnZSB3
aXRoIHRhcmdldCByZWN0IG5lZ2F0aXZlIGRpbWVuc2lvbnMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAwMjYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBkcmF3SW1hZ2UgY2hlY2sgZm9yIGEg
ZGVzdGluYXRpb24gcmVjdGFuZ2xlIHdpdGggLTFweAorICAgICAgICB3aWR0aC9oZWlnaHQuIFdo
ZW4gZHJhd2luZyB0byAoMSwgMSwgLTEsIC0xKSByZWN0YW5nbGUsIGZpcnN0CisgICAgICAgICh0
b3AtbGVmdCkgcGl4ZWwgc2hvdWxkIGhhdmUgYmVlbiBhbmQgYmVlbiB0aGUgb25seSBvbmUgZHJh
d24gaW50by4KKworICAgICAgICAqIGZhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZl
LXNvdXJjZS1kZXN0aW5hdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jYW52YXMv
ZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLmpzOgorCiAyMDEyLTEw
LTIyICBFbWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkIGdhcmRlbmluZywgbWFya2luZyBmYXN0L3N1Yi1waXhlbC9maWxlLXVwbG9hZC1jb250cm9s
LWF0LWZyYWN0aW9uYWwtb2Zmc2V0Lmh0bWwgYXMgZmFpbGluZyBvbiBMSU9OIGZvciBub3cuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2
ZS1zb3VyY2UtZGVzdGluYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLWV4cGVjdGVkLnR4
dAppbmRleCA3Mzg1NjhiMGNlMTIyMmVmODRhNDhkY2ZmMDQwNzBlYmYyNWI4MGE1Li5mNDFhYzky
MzcwNWI3OWNiNDM4NWE2M2YxNzA2ZDIyODE0ODE0MDg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24t
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRo
LW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi1leHBlY3RlZC50eHQKQEAgLTYsNiArNiwxMiBA
QCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogUEFTUyBpbWdkYXRhWzRdIGlzIDAKIFBBU1MgaW1n
ZGF0YVs1XSBpcyAyNTUKIFBBU1MgaW1nZGF0YVs2XSBpcyAwCitQQVNTIGltZ2RhdGFbMF0gaXMg
MjU1CitQQVNTIGltZ2RhdGFbMV0gaXMgMAorUEFTUyBpbWdkYXRhWzJdIGlzIDAKK1BBU1MgaW1n
ZGF0YVs0XSBpcyAwCitQQVNTIGltZ2RhdGFbNV0gaXMgMAorUEFTUyBpbWdkYXRhWzZdIGlzIDAK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291
cmNlLWRlc3RpbmF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdp
dGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLmpzCmluZGV4IDBhOGEwOWMxNTIzNTgyY2Jj
MTViMWQ2YWQ1NTM2MDdhZDQyYmZhZGQuLjY3MWZkNzNiNmM1NjA2ZDFkZTc0ZDU3MDdkNzAwYzkw
NjY0YWRhMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2RyYXdJbWFnZS13
aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24uanMKQEAg
LTE5LDMgKzE5LDE2IEBAIHZhciBpbWdkYXRhID0gaW1hZ2VEYXRhLmRhdGE7CiBzaG91bGRCZSgi
aW1nZGF0YVs0XSIsICIwIik7CiBzaG91bGRCZSgiaW1nZGF0YVs1XSIsICIyNTUiKTsKIHNob3Vs
ZEJlKCJpbWdkYXRhWzZdIiwgIjAiKTsKKworLy8gdGVzdCB3aWR0aCBvciBoZWlnaHQgLTEKK2Nh
bnZhcy5maWxsU3R5bGUgPSAnIzAwMCc7CitjYW52YXMuZmlsbFJlY3QoMCwgMCwgMSwgMik7Citj
YW52YXMuZHJhd0ltYWdlKGNhbnZhczIsIDAsIDAsIDEsIDEsIDEsIDEsIC0xLCAtMSk7Cit2YXIg
aW1hZ2VEYXRhID0gY2FudmFzLmdldEltYWdlRGF0YSgwLCAwLCAxLCAyKTsKK3ZhciBpbWdkYXRh
ID0gaW1hZ2VEYXRhLmRhdGE7CitzaG91bGRCZSgiaW1nZGF0YVswXSIsICIyNTUiKTsKK3Nob3Vs
ZEJlKCJpbWdkYXRhWzFdIiwgIjAiKTsKK3Nob3VsZEJlKCJpbWdkYXRhWzJdIiwgIjAiKTsKK3No
b3VsZEJlKCJpbWdkYXRhWzRdIiwgIjAiKTsKK3Nob3VsZEJlKCJpbWdkYXRhWzVdIiwgIjAiKTsK
K3Nob3VsZEJlKCJpbWdkYXRhWzZdIiwgIjAiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171482</attachid>
            <date>2012-10-30 10:40:28 -0700</date>
            <delta_ts>2012-10-30 17:45:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100026-20121030103852.patch</filename>
            <type>text/plain</type>
            <size>25490</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RlZDIzNTRiNjE2MjAy
NGYwNGI1YmMxYTBjOGYzOTA2NDI3MzgzOC4uMDMyMzA4NDE5NWQzNDgzYWFiYmZmMjkzZjk1NzEz
Y2M3ZTJhZjQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTEwLTMwICBBcm5h
dWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgaW5j
b25zaXN0ZW5jeSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJnZXQgcmVjdCBuZWdhdGl2ZSBkaW1lbnNp
b25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAw
MDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIC0xLCAtMSBzcGVjaWFsIGNhc2UgaW4gZHJhd0ltYWdlIGFuZCBkcmF3SW1hZ2VCdWZmZXIu
IFJlcGxhY2UKKyAgICAgICAgYWxsIC0xIC0xIGFyZ3VtZW50cyBjYWxscyB0byB3aXRoIHRoZSBj
b3JyZWN0IHJlY3RhbmdsZSBkaW1lbnNpb25zLgorCisgICAgICAgIFJlbW92ZSBGbG9hdFJlY3Qo
MCwgMCwgLTEsIC0xKSBkZWZhdWx0IGFyZ3VtZW50IGZvciBzcmNSZWN0LCBhbmQKKyAgICAgICAg
aW5zdGVhZCwgYWRkIG5ldyBvdmVybG9hZGVkIGZ1bmN0aW9ucyB0byBjcmVhdGUgYSBGbG9hdFJl
Y3QgZnJvbSBpbWFnZQorICAgICAgICBzaXplLgorCisgICAgICAgIFJlcGxhY2UgLTEgLTEgYXJn
dW1lbnRzIGNhbGxzIGluIEZFQ29tcG9zaXRlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUKKyAgICAg
ICAgd2l0aCBjb3JyZWN0IHJlY3RhbmdsZSBkaW1lbnNpb25zLgorCisgICAgICAgIFJlcGxhY2Ug
SW1hZ2VHU3RyZWFtZXIgcmVjdCBtZXRob2QgKHdoaWNoIG1heSByZXR1cm4gLTEgLTEgcmVjdGFu
Z2xlKQorICAgICAgICB3aXRoIGNyb3BSZWN0IG1ldGhvZCwgYW5kIG1ha2UgY2FsbGVyIGNoZWNr
IGZvciByZWN0YW5nbGUgZW1wdGluZXNzLgorCisgICAgICAgIFJlcGxhY2UgaW1hZ2UgcG9pbnRl
ciBjaGVjayBieSBhbiBhc3NlcnRpb24gaW4gR3JhcGhpY3NDb250ZXh0CisgICAgICAgIGRyYXdJ
bWFnZSBhbmQgZHJhd0ltYWdlQnVmZmVyIG1ldGhvZHMuIEFkZCBjaGVjayB0byBjYWxsZXJzIHRv
IGF2b2lkCisgICAgICAgIGNhbGxpbmcgdGhvc2UgbWV0aG9kcyB3aXRoIG51bGwgaW1hZ2VzLgor
CisgICAgICAgICogZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRl
c3RpbmF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9kcmF3SW1hZ2Ut
d2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24uanM6CisKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmdWxsQ2FudmFzQ29tcG9zaXRlZERyYXdJbWFnZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3VGlsZWRJbWFnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgIChHcmFw
aGljc0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21w
b3NpdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVDb21wb3NpdGU6OnBsYXRmb3JtQXBwbHlT
b2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0
cmVhbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUdTdHJlYW1lcjo6cmVjdCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6ZHJhdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpC
aXRtYXBUZXh0dXJlSW1hZ2VCdWZmZXI6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlcjo6ZHJhd1RleHR1cmUpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3hNb2RlbE9iamVjdDo6cGFpbnROaW5lUGllY2VJbWFnZSk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdE1h
cmtlcjo6cGFpbnQpOgorCiAyMDEyLTEwLTI5ICBBcm5hdWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVy
QHNpc2Euc2Ftc3VuZy5jb20+CiAKICAgICAgICAgd2VidmlldyBub3QgcmVkcmF3biBhcyBuZWVk
ZWQgd2hlbiBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBpcyBlbmFibGVkLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAK
aW5kZXggZWY3NTRmNTk3MDRhYTljYzc3M2QxYmY1N2VmMGFkM2ExYWVmY2EyYi4uMjQ4YmQ3ZmM3
NjYxMzc1YzIyODJlYzg1OTE5NmVlNzUzMDY1MzhlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBAIC0xNjYw
LDYgKzE2NjAsOSBAQCB0ZW1wbGF0ZTxjbGFzcyBUPiB2b2lkICBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OmZ1bGxDYW52YXNDb21wb3NpdGVkRHJhd0ltYWdlKAogewogICAgIEFTU0VSVChpc0Z1
bGxDYW52YXNDb21wb3NpdGVNb2RlKG9wKSk7CiAKKyAgICBpZiAoIWltYWdlKQorICAgICAgICBy
ZXR1cm47CisKICAgICBJbnRTaXplIGNyb3BwZWRPZmZzZXQ7CiAgICAgSW50UmVjdCBidWZmZXJS
ZWN0ID0gY2FsY3VsYXRlQ29tcG9zaXRpbmdCdWZmZXJSZWN0KGRlc3QsICZjcm9wcGVkT2Zmc2V0
KTsKICAgICBpZiAoYnVmZmVyUmVjdC5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmluZGV4IDJjYTBlNjVm
NjM1MTJlZjU1ZTljYTJlZjhlMmVkOTUxZmRiOTEyOTYuLmVmOGFhNjEwYjdmZGVmMTkxODNmNmQx
ODFiYmYxMGYxN2FkYmFlODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtNDM5LDEyICs0MzksMTQgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdIaWdobGlnaHRGb3JUZXh0KGNvbnN0IEZvbnQmIGZvbnQsIGNv
bnN0IFRleHRSdW4mIHJ1biwKIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFn
ZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgcCwg
Q29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKIHsKLSAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29s
b3JTcGFjZSwgcCwgSW50UmVjdCgwLCAwLCAtMSwgLTEpLCBvcCwgc2hvdWxkUmVzcGVjdEltYWdl
T3JpZW50YXRpb24pOworICAgIEFTU0VSVChpbWFnZSk7CisgICAgZHJhd0ltYWdlKGltYWdlLCBz
dHlsZUNvbG9yU3BhY2UsIHAsIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2UtPnNpemUoKSksIG9w
LCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwg
Y29uc3QgSW50UmVjdCYgciwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFs
aXR5U2NhbGUpCiB7Ci0gICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHIsIElu
dFJlY3QoMCwgMCwgLTEsIC0xKSwgb3AsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1
c2VMb3dRdWFsaXR5U2NhbGUpOworICAgIEFTU0VSVChpbWFnZSk7CisgICAgZHJhd0ltYWdlKGlt
YWdlLCBzdHlsZUNvbG9yU3BhY2UsIHIsIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2UtPnNpemUo
KSksIG9wLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgdXNlTG93UXVhbGl0eVNjYWxl
KTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENv
bG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgZGVzdCwgY29uc3QgSW50
UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlc3BlY3RJbWFnZU9yaWVudGF0
aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKQEAgLTQ1NywyNiArNDU5LDE4
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNw
YWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QKICAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29s
b3JTcGFjZSwgRmxvYXRSZWN0KGRlc3QpLCBzcmNSZWN0LCBvcCwgc2hvdWxkUmVzcGVjdEltYWdl
T3JpZW50YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NDb250
ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0KQoreworICAgIEFTU0VSVChpbWFnZSk7CisgICAgZHJhd0lt
YWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3QsIEZsb2F0UmVjdChJbnRSZWN0KEludFBv
aW50KCksIGltYWdlLT5zaXplKCkpKSk7Cit9CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3
SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0LCBjb25zdCBGbG9hdFJlY3QmIHNyYywgQ29tcG9zaXRlT3BlcmF0b3Igb3As
IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
biwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7Ci0gICAgaWYgKHBhaW50aW5nRGlzYWJsZWQo
KSB8fCAhaW1hZ2UpCisgICAgQVNTRVJUKGltYWdlKTsKKyAgICBpZiAocGFpbnRpbmdEaXNhYmxl
ZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBmbG9hdCB0c3cgPSBzcmMud2lkdGgoKTsKLSAg
ICBmbG9hdCB0c2ggPSBzcmMuaGVpZ2h0KCk7Ci0gICAgZmxvYXQgdHcgPSBkZXN0LndpZHRoKCk7
Ci0gICAgZmxvYXQgdGggPSBkZXN0LmhlaWdodCgpOwotCi0gICAgaWYgKHRzdyA9PSAtMSkKLSAg
ICAgICAgdHN3ID0gaW1hZ2UtPndpZHRoKCk7Ci0gICAgaWYgKHRzaCA9PSAtMSkKLSAgICAgICAg
dHNoID0gaW1hZ2UtPmhlaWdodCgpOwotCi0gICAgaWYgKHR3ID09IC0xKQotICAgICAgICB0dyA9
IGltYWdlLT53aWR0aCgpOwotICAgIGlmICh0aCA9PSAtMSkKLSAgICAgICAgdGggPSBpbWFnZS0+
aGVpZ2h0KCk7Ci0KICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBwcmV2aW91c0ludGVycG9sYXRp
b25RdWFsaXR5ID0gSW50ZXJwb2xhdGlvbkRlZmF1bHQ7CiAKICAgICBpZiAodXNlTG93UXVhbGl0
eVNjYWxlKSB7CkBAIC00ODksNyArNDgzLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJ
bWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdAogI2Vu
ZGlmCiAgICAgfQogCi0gICAgaW1hZ2UtPmRyYXcodGhpcywgRmxvYXRSZWN0KGRlc3QubG9jYXRp
b24oKSwgRmxvYXRTaXplKHR3LCB0aCkpLCBGbG9hdFJlY3Qoc3JjLmxvY2F0aW9uKCksIEZsb2F0
U2l6ZSh0c3csIHRzaCkpLCBzdHlsZUNvbG9yU3BhY2UsIG9wLCBzaG91bGRSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbik7CisgICAgaW1hZ2UtPmRyYXcodGhpcywgZGVzdCwgc3JjLCBzdHlsZUNvbG9y
U3BhY2UsIG9wLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CiAKICAgICBpZiAodXNl
TG93UXVhbGl0eVNjYWxlKQogICAgICAgICBzZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KHBy
ZXZpb3VzSW50ZXJwb2xhdGlvblF1YWxpdHkpOwpAQCAtNDk3LDcgKzQ5MSw4IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29s
b3JTcGFjZSwgY29uc3QKIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxlZEltYWdlKElt
YWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBJbnRQb2ludCYgc3JjUG9pbnQsIGNvbnN0IEludFNpemUmIHRpbGVTaXpl
LCBDb21wb3NpdGVPcGVyYXRvciBvcCwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7Ci0gICAg
aWYgKHBhaW50aW5nRGlzYWJsZWQoKSB8fCAhaW1hZ2UpCisgICAgQVNTRVJUKGltYWdlKTsKKyAg
ICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAodXNl
TG93UXVhbGl0eVNjYWxlKSB7CkBAIC01MzIsMTIgKzUyNywxNCBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgYwogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVm
ZmVyKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiBw
LCBDb21wb3NpdGVPcGVyYXRvciBvcCkKIHsKLSAgICBkcmF3SW1hZ2VCdWZmZXIoaW1hZ2UsIHN0
eWxlQ29sb3JTcGFjZSwgcCwgSW50UmVjdCgwLCAwLCAtMSwgLTEpLCBvcCk7CisgICAgQVNTRVJU
KGltYWdlKTsKKyAgICBkcmF3SW1hZ2VCdWZmZXIoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgcCwg
SW50UmVjdChJbnRQb2ludCgpLCBpbWFnZS0+bG9naWNhbFNpemUoKSksIG9wKTsKIH0KIAogdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENv
bG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiByLCBDb21wb3NpdGVPcGVy
YXRvciBvcCwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7Ci0gICAgZHJhd0ltYWdlQnVmZmVy
KGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHIsIEludFJlY3QoMCwgMCwgLTEsIC0xKSwgb3AsIHVz
ZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgQVNTRVJUKGltYWdlKTsKKyAgICBkcmF3SW1hZ2VCdWZm
ZXIoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgciwgSW50UmVjdChJbnRQb2ludCgpLCBpbWFnZS0+
bG9naWNhbFNpemUoKSksIG9wLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCiB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBpbWFnZSwgQ29sb3JTcGFj
ZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiBkZXN0LCBjb25zdCBJbnRSZWN0JiBz
cmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBvcCkKQEAgLTU1MCwyNSArNTQ3LDE4IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIGltYWdlLCBDb2xv
clNwYWNlIHN0eWxlQ29sb3JTCiAgICAgZHJhd0ltYWdlQnVmZmVyKGltYWdlLCBzdHlsZUNvbG9y
U3BhY2UsIEZsb2F0UmVjdChkZXN0KSwgc3JjUmVjdCwgb3AsIHVzZUxvd1F1YWxpdHlTY2FsZSk7
CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIq
IGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyYywgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIGJvb2wgdXNlTG93
UXVhbGl0eVNjYWxlKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFn
ZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3QpCiB7Ci0gICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSB8fCAhaW1hZ2UpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGZsb2F0IHRzdyA9IHNyYy53aWR0aCgpOwotICAgIGZsb2F0IHRz
aCA9IHNyYy5oZWlnaHQoKTsKLSAgICBmbG9hdCB0dyA9IGRlc3Qud2lkdGgoKTsKLSAgICBmbG9h
dCB0aCA9IGRlc3QuaGVpZ2h0KCk7CisgICAgQVNTRVJUKGltYWdlKTsKKyAgICBkcmF3SW1hZ2VC
dWZmZXIoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgZGVzdCwgRmxvYXRSZWN0KEludFJlY3QoSW50
UG9pbnQoKSwgaW1hZ2UtPmxvZ2ljYWxTaXplKCkpKSk7Cit9CiAKLSAgICBpZiAodHN3ID09IC0x
KQotICAgICAgICB0c3cgPSBpbWFnZS0+bG9naWNhbFNpemUoKS53aWR0aCgpOwotICAgIGlmICh0
c2ggPT0gLTEpCi0gICAgICAgIHRzaCA9IGltYWdlLT5sb2dpY2FsU2l6ZSgpLmhlaWdodCgpOwor
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2Us
IENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgYm9vbCB1c2VMb3dRdWFsaXR5
U2NhbGUpCit7CisgICAgQVNTRVJUKGltYWdlKTsKIAotICAgIGlmICh0dyA9PSAtMSkKLSAgICAg
ICAgdHcgPSBpbWFnZS0+bG9naWNhbFNpemUoKS53aWR0aCgpOwotICAgIGlmICh0aCA9PSAtMSkK
LSAgICAgICAgdGggPSBpbWFnZS0+bG9naWNhbFNpemUoKS5oZWlnaHQoKTsKKyAgICBpZiAocGFp
bnRpbmdEaXNhYmxlZCgpKQorICAgICAgICByZXR1cm47CiAKICAgICBpZiAodXNlTG93UXVhbGl0
eVNjYWxlKSB7CiAgICAgICAgIEludGVycG9sYXRpb25RdWFsaXR5IHByZXZpb3VzSW50ZXJwb2xh
dGlvblF1YWxpdHkgPSBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5KCk7CkBAIC01NzgsMTAgKzU2
OCwxMCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVy
KiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yUwogICAgICAgICAvLyBGSVhNRSAoNDkwMDIp
OiBTaG91bGQgYmUgSW50ZXJwb2xhdGlvbkxvdwogICAgICAgICBzZXRJbWFnZUludGVycG9sYXRp
b25RdWFsaXR5KEludGVycG9sYXRpb25Ob25lKTsKICNlbmRpZgotICAgICAgICBpbWFnZS0+ZHJh
dyh0aGlzLCBzdHlsZUNvbG9yU3BhY2UsIEZsb2F0UmVjdChkZXN0LmxvY2F0aW9uKCksIEZsb2F0
U2l6ZSh0dywgdGgpKSwgRmxvYXRSZWN0KHNyYy5sb2NhdGlvbigpLCBGbG9hdFNpemUodHN3LCB0
c2gpKSwgb3AsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgICAgIGltYWdlLT5kcmF3KHRoaXMs
IHN0eWxlQ29sb3JTcGFjZSwgZGVzdCwgc3JjLCBvcCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKICAg
ICAgICAgc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShwcmV2aW91c0ludGVycG9sYXRpb25R
dWFsaXR5KTsKICAgICB9IGVsc2UKLSAgICAgICAgaW1hZ2UtPmRyYXcodGhpcywgc3R5bGVDb2xv
clNwYWNlLCBGbG9hdFJlY3QoZGVzdC5sb2NhdGlvbigpLCBGbG9hdFNpemUodHcsIHRoKSksIEZs
b2F0UmVjdChzcmMubG9jYXRpb24oKSwgRmxvYXRTaXplKHRzdywgdHNoKSksIG9wLCB1c2VMb3dR
dWFsaXR5U2NhbGUpOworICAgICAgICBpbWFnZS0+ZHJhdyh0aGlzLCBzdHlsZUNvbG9yU3BhY2Us
IGRlc3QsIHNyYywgb3AsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKICNpZiAhUExBVEZPUk0o
UVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5oCmluZGV4IGZlNjVmODg2MGI0ODBhMTQ2YmZhYTU4NWYyMjE2MzI3MTE1ZTI3ZTAuLjNh
MTQ3YjQ0YmRkNWZlMTllYzlmMDM0OGExNDNlNTBhNTQ5YjEzNzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCkBAIC0zMTMsOCAr
MzEzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFn
ZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiwgQ29tcG9zaXRl
T3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVu
dW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2Fs
ZSA9IGZhbHNlKTsKICAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0
eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgY29uc3QgSW50UmVjdCYg
c3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKICAg
ICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwg
Y29uc3QgSW50UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0
ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25F
bnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2Nh
bGUgPSBmYWxzZSk7Ci0gICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBz
dHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCA9IEZsb2F0UmVjdCgwLCAwLCAtMSwgLTEpLAotICAgICAgICAgICAgICAgICAg
ICAgICBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wgdXNl
TG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOworICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSos
IENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KTsK
KyAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFj
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBD
b21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uRW51bSA9IERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wgdXNlTG93UXVh
bGl0eVNjYWxlID0gZmFsc2UpOwogICAgICAgICB2b2lkIGRyYXdUaWxlZEltYWdlKEltYWdlKiwg
Q29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBJbnRQb2ludCYgc3JjUG9pbnQsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLAogICAgICAgICAg
ICAgICAgICAgICAgICBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIGJv
b2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwogICAgICAgICB2b2lkIGRyYXdUaWxlZElt
YWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LApAQCAtMzI1LDggKzMyNSw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIq
LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UmVjdCYsIENvbXBvc2l0ZU9w
ZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBm
YWxzZSk7CiAgICAgICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiwgQ29sb3JT
cGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIGNvbnN0IElu
dFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3Zlcik7
CiAgICAgICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiwgQ29sb3JTcGFjZSBz
dHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0LCBjb25zdCBJbnRSZWN0JiBz
cmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIGJvb2wgdXNl
TG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwotICAgICAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihJ
bWFnZUJ1ZmZlciosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QgPSBGbG9hdFJlY3QoMCwgMCwgLTEs
IC0xKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcG9zaXRlT3BlcmF0b3IgPSBD
b21wb3NpdGVTb3VyY2VPdmVyLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKKyAg
ICAgICAgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqLCBDb2xvclNwYWNlIHN0eWxl
Q29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCk7CisgICAgICAgIHZvaWQgZHJh
d0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9z
aXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBib29sIHVzZUxvd1F1YWxpdHlTY2Fs
ZSA9IGZhbHNlKTsKIAogICAgICAgICB2b2lkIHNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHko
SW50ZXJwb2xhdGlvblF1YWxpdHkpOwogICAgICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbWFn
ZUludGVycG9sYXRpb25RdWFsaXR5KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCmluZGV4IDlkNTY2
ZWQ5MjNkOTVhZDM0NDMxNzFhNzMwYTkwY2RlMzljYWNmMjguLmMxZjY0NDM4OTdiMDkxM2Q3N2I1
NzNjZjIzMmJkYzY2MGVhY2Q5ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCkBAIC0yNzQsMTEgKzI3NCwx
NSBAQCB2b2lkIEZFQ29tcG9zaXRlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAgICAgICBy
ZXR1cm47CiAgICAgR3JhcGhpY3NDb250ZXh0KiBmaWx0ZXJDb250ZXh0ID0gcmVzdWx0SW1hZ2Ut
PmNvbnRleHQoKTsKIAotICAgIEZsb2F0UmVjdCBzcmNSZWN0ID0gRmxvYXRSZWN0KDAsIDAsIC0x
LCAtMSk7CisgICAgSW1hZ2VCdWZmZXIqIGltZ0J1ZmZlciA9IGluLT5hc0ltYWdlQnVmZmVyKCk7
CisgICAgSW1hZ2VCdWZmZXIqIGltZ0J1ZmZlcjIgPSBpbjItPmFzSW1hZ2VCdWZmZXIoKTsKKyAg
ICBBU1NFUlQoaW1nQnVmZmVyKTsKKyAgICBBU1NFUlQoaW1nQnVmZmVyMik7CisKICAgICBzd2l0
Y2ggKG1fdHlwZSkgewogICAgIGNhc2UgRkVDT01QT1NJVEVfT1BFUkFUT1JfT1ZFUjoKLSAgICAg
ICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGluMi0+YXNJbWFnZUJ1ZmZlcigpLCBD
b2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1
dGVQYWludFJlY3QoKSkpOwotICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIo
aW4tPmFzSW1hZ2VCdWZmZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9m
SW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOworICAgICAgICBmaWx0ZXJDb250
ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1nQnVmZmVyMiwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJh
d2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKKyAgICAg
ICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltZ0J1ZmZlciwgQ29sb3JTcGFjZURl
dmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3Qo
KSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZFQ09NUE9TSVRFX09QRVJBVE9SX0lOOiB7
CiAgICAgICAgIC8vIEFwcGxpZXMgb25seSB0byB0aGUgaW50ZXJzZWN0ZWQgcmVnaW9uLgpAQCAt
MjkyLDIxICsyOTYsMjEgQEAgdm9pZCBGRUNvbXBvc2l0ZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJl
KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uUmVjdC55
KCkgLSBpbi0+YWJzb2x1dGVQYWludFJlY3QoKS55KCkpLCBkZXN0aW5hdGlvblJlY3Quc2l6ZSgp
KTsKICAgICAgICAgSW50UmVjdCBzb3VyY2UyUmVjdChJbnRQb2ludChkZXN0aW5hdGlvblJlY3Qu
eCgpIC0gaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpLngoKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvblJlY3QueSgpIC0gaW4yLT5hYnNvbHV0ZVBhaW50
UmVjdCgpLnkoKSksIGRlc3RpbmF0aW9uUmVjdC5zaXplKCkpOwotICAgICAgICBmaWx0ZXJDb250
ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW4yLT5hc0ltYWdlQnVmZmVyKCksIENvbG9yU3BhY2VEZXZp
Y2VSR0IsIGRlc3RpbmF0aW9uUG9pbnQsIHNvdXJjZTJSZWN0KTsKLSAgICAgICAgZmlsdGVyQ29u
dGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGluLT5hc0ltYWdlQnVmZmVyKCksIENvbG9yU3BhY2VEZXZp
Y2VSR0IsIGRlc3RpbmF0aW9uUG9pbnQsIHNvdXJjZVJlY3QsIENvbXBvc2l0ZVNvdXJjZUluKTsK
KyAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltZ0J1ZmZlcjIsIENvbG9y
U3BhY2VEZXZpY2VSR0IsIGRlc3RpbmF0aW9uUG9pbnQsIHNvdXJjZTJSZWN0KTsKKyAgICAgICAg
ZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltZ0J1ZmZlciwgQ29sb3JTcGFjZURldmlj
ZVJHQiwgZGVzdGluYXRpb25Qb2ludCwgc291cmNlUmVjdCwgQ29tcG9zaXRlU291cmNlSW4pOwog
ICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBGRUNPTVBPU0lURV9PUEVSQVRPUl9PVVQ6
Ci0gICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbi0+YXNJbWFnZUJ1ZmZl
cigpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluLT5h
YnNvbHV0ZVBhaW50UmVjdCgpKSk7Ci0gICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1
ZmZlcihpbjItPmFzSW1hZ2VCdWZmZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1Jl
Z2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29sdXRlUGFpbnRSZWN0KCkpLCBzcmNSZWN0LCBDb21w
b3NpdGVEZXN0aW5hdGlvbk91dCk7CisgICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1
ZmZlcihpbWdCdWZmZXIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0
SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC0+
ZHJhd0ltYWdlQnVmZmVyKGltZ0J1ZmZlcjIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdS
ZWdpb25PZklucHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSwgSW50UmVjdChJbnRQ
b2ludCgpLCBpbWdCdWZmZXIyLT5sb2dpY2FsU2l6ZSgpKSwgQ29tcG9zaXRlRGVzdGluYXRpb25P
dXQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZFQ09NUE9TSVRFX09QRVJBVE9SX0FUT1A6
Ci0gICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbjItPmFzSW1hZ2VCdWZm
ZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbjIt
PmFic29sdXRlUGFpbnRSZWN0KCkpKTsKLSAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdl
QnVmZmVyKGluLT5hc0ltYWdlQnVmZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdS
ZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpLCBzcmNSZWN0LCBDb21w
b3NpdGVTb3VyY2VBdG9wKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVy
KGltZ0J1ZmZlcjIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0SW1h
Z2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7CisgICAgICAgIGZpbHRlckNvbnRleHQtPmRy
YXdJbWFnZUJ1ZmZlcihpbWdCdWZmZXIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdp
b25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpLCBJbnRSZWN0KEludFBvaW50
KCksIGltZ0J1ZmZlci0+bG9naWNhbFNpemUoKSksIENvbXBvc2l0ZVNvdXJjZUF0b3ApOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEZFQ09NUE9TSVRFX09QRVJBVE9SX1hPUjoKLSAgICAgICAg
ZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGluMi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xv
clNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQ
YWludFJlY3QoKSkpOwotICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW4t
PmFzSW1hZ2VCdWZmZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5w
dXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSksIHNyY1JlY3QsIENvbXBvc2l0ZVhPUik7
CisgICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWdCdWZmZXIyLCBDb2xv
clNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQ
YWludFJlY3QoKSkpOworICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1n
QnVmZmVyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGlu
LT5hYnNvbHV0ZVBhaW50UmVjdCgpKSwgSW50UmVjdChJbnRQb2ludCgpLCBpbWdCdWZmZXItPmxv
Z2ljYWxTaXplKCkpLCBDb21wb3NpdGVYT1IpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0
OgogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmgKaW5kZXggODNiZGZlMmI3MjI2
OGIwMjhlNzNmZDg0ZDczZGMyYjQwYjA5MGY0My4uNjhmOGZhMWI1OWZmYjYxZmU3NDU4OWJjNzZj
YTU3NzQ4N2RkNzM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmgKQEAgLTUxLDkgKzUxLDggQEAg
Y2xhc3MgSW1hZ2VHU3RyZWFtZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxJbWFnZUdTdHJlYW1lcj4g
ewogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIW1fY3JvcFJlY3QuaXNFbXB0eSgpKQogICAg
ICAgICAgICAgICAgIHJldHVybiBGbG9hdFJlY3QobV9jcm9wUmVjdCk7Ci0KLSAgICAgICAgICAg
IC8vIERlZmF1bHQgcmVjdGFuZ2xlIHVzZWQgYnkgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2Uo
KS4KLSAgICAgICAgICAgIHJldHVybiBGbG9hdFJlY3QoMCwgMCwgLTEsIC0xKTsKKyAgICAgICAg
ICAgIEFTU0VSVChtX2ltYWdlKTsKKyAgICAgICAgICAgIHJldHVybiBGbG9hdFJlY3QoMCwgMCwg
bV9pbWFnZS0+c2l6ZSgpLndpZHRoKCksIG1faW1hZ2UtPnNpemUoKS5oZWlnaHQoKSk7CiAgICAg
ICAgIH0KIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZlclF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3F0L0ltYWdlQnVmZmVyUXQuY3BwCmluZGV4IGFjMjdkYzI1YWZjNjhmYWY5ZDE5
NDY2MDdlMWI4ZDZkYTI5N2Y2YTEuLjQxODJkNGE5YWU0ZTVkMTc3YmI1MTFlOThiNDE2NzM4NWIz
ZTVjMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0lt
YWdlQnVmZmVyUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L0ltYWdlQnVmZmVyUXQuY3BwCkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBJbWFnZUJ1ZmZlcjo6
ZHJhdyhHcmFwaGljc0NvbnRleHQqIGRlc3RDb250ZXh0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwKICAgICAgICAgLy8gV2UncmUgZHJhd2luZyBpbnRvIG91ciBvd24gYnVmZmVyLiAgSW4g
b3JkZXIgZm9yIHRoaXMgdG8gd29yaywgd2UgbmVlZCB0byBjb3B5IHRoZSBzb3VyY2UgYnVmZmVy
IGZpcnN0LgogICAgICAgICBSZWZQdHI8SW1hZ2U+IGNvcHkgPSBjb3B5SW1hZ2UoQ29weUJhY2tp
bmdTdG9yZSk7CiAgICAgICAgIGRlc3RDb250ZXh0LT5kcmF3SW1hZ2UoY29weS5nZXQoKSwgQ29s
b3JTcGFjZURldmljZVJHQiwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wLCBEb05vdFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwotICAgIH0gZWxzZQorICAgIH0gZWxz
ZSBpZiAobV9kYXRhLm1faW1hZ2UuZ2V0KCkpCiAgICAgICAgIGRlc3RDb250ZXh0LT5kcmF3SW1h
Z2UobV9kYXRhLm1faW1hZ2UuZ2V0KCksIHN0eWxlQ29sb3JTcGFjZSwgZGVzdFJlY3QsIHNyY1Jl
Y3QsIG9wLCBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuY3BwCmluZGV4IDg0MzQz
MzI1MzE0ZTExMGNiZDczNzlhYjAyMDI1N2E3Mzk5NWE4NjEuLmIxYTBlODUzNDFhNTcwMjY4Zjg2
MTRhMWIzODdiMDc2MTBkOGM0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZm
ZXIuY3BwCkBAIC02MSw2ICs2MSw4IEBAIHZvaWQgQml0bWFwVGV4dHVyZUltYWdlQnVmZmVyOjpk
aWRSZXNldCgpCiAKIHZvaWQgQml0bWFwVGV4dHVyZUltYWdlQnVmZmVyOjp1cGRhdGVDb250ZW50
cyhJbWFnZSogaW1hZ2UsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IEludFBvaW50
JiBvZmZzZXQsIFVwZGF0ZUNvbnRlbnRzRmxhZykKIHsKKyAgICBpZiAoIWltYWdlKQorICAgICAg
ICByZXR1cm47CiAgICAgbV9pbWFnZS0+Y29udGV4dCgpLT5kcmF3SW1hZ2UoaW1hZ2UsIENvbG9y
U3BhY2VEZXZpY2VSR0IsIHRhcmdldFJlY3QsIEludFJlY3Qob2Zmc2V0LCB0YXJnZXRSZWN0LnNp
emUoKSksIENvbXBvc2l0ZUNvcHkpOwogfQogCkBAIC0xMTAsNyArMTEyLDggQEAgdm9pZCBUZXh0
dXJlTWFwcGVySW1hZ2VCdWZmZXI6OmRyYXdUZXh0dXJlKGNvbnN0IEJpdG1hcFRleHR1cmUmIHRl
eHR1cmUsIGNvbnN0IEYKICAgICAgICAgICAgIG1hc2tDb250ZXh0LT5zZXRBbHBoYShvcGFjaXR5
KTsKICAgICAgICAgICAgIG9wYWNpdHkgPSAxOwogICAgICAgICB9Ci0gICAgICAgIG1hc2tDb250
ZXh0LT5kcmF3SW1hZ2VCdWZmZXIobWFzay0+bV9pbWFnZS5nZXQoKSwgQ29sb3JTcGFjZURldmlj
ZVJHQiwgSW50UG9pbnQ6Onplcm8oKSwgQ29tcG9zaXRlRGVzdGluYXRpb25Jbik7CisgICAgICAg
IGlmIChtYXNrLT5tX2ltYWdlLmdldCgpKQorICAgICAgICAgICAgbWFza0NvbnRleHQtPmRyYXdJ
bWFnZUJ1ZmZlcihtYXNrLT5tX2ltYWdlLmdldCgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBJbnRQ
b2ludDo6emVybygpLCBDb21wb3NpdGVEZXN0aW5hdGlvbkluKTsKICAgICAgICAgaW1hZ2UgPSBt
YXNrZWRJbWFnZS5nZXQoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IGZkNjM5MGFlMzU4MDBlYTZhYWE4NDli
MTUyZjkzNzc3MzY2M2NlZTkuLmY2ODIyZjhlNGZlZGFjM2UxNzA4Y2U5ZWFlZjQ2N2E4YzU5Y2Rk
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmNwcApAQCAtMTI5Nyw2ICsxMjk3LDggQEAgYm9vbCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6
cGFpbnROaW5lUGllY2VJbWFnZShHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwKICAg
ICAgICAgICAgICAgICAgICAgICAmJiAoaW1hZ2VIZWlnaHQgLSB0b3BTbGljZSAtIGJvdHRvbVNs
aWNlKSA+IDAgJiYgKGJvcmRlckltYWdlUmVjdC5oZWlnaHQoKSAtIHRvcFdpZHRoIC0gYm90dG9t
V2lkdGgpID4gMDsKIAogICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBzdHlsZUltYWdlLT5pbWFn
ZSh0aGlzLCBpbWFnZVNpemUpOworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICBDb2xvclNwYWNlIGNvbG9yU3BhY2UgPSBzdHlsZS0+Y29sb3JTcGFjZSgpOwogICAg
IAogICAgIGZsb2F0IGRlc3RpbmF0aW9uV2lkdGggPSBib3JkZXJJbWFnZVJlY3Qud2lkdGgoKSAt
IGxlZnRXaWR0aCAtIHJpZ2h0V2lkdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdE1hcmtlci5jcHAKaW5kZXggYjdjYmFhMDM4OTMyMDJjMDhkMGIyMzYzZTMzNWNlOTUw
ODEyZjdiYy4uYmE4YWQ0ZWFmMDdiN2ViNWNhNDUwOTVjMWQyMGQ1YjM3NTQ5NzQxNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcApAQCAtMTEzMCw3
ICsxMTMwLDkgQEAgdm9pZCBSZW5kZXJMaXN0TWFya2VyOjpwYWludChQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2UKICAgICAgICAgaWYgKHN0eWxlKCkt
PmhpZ2hsaWdodCgpICE9IG51bGxBdG9tICYmICFwYWludEluZm8uY29udGV4dC0+cGFpbnRpbmdE
aXNhYmxlZCgpKQogICAgICAgICAgICAgcGFpbnRDdXN0b21IaWdobGlnaHQocGFpbnRPZmZzZXQs
IHN0eWxlKCktPmhpZ2hsaWdodCgpLCB0cnVlKTsKICNlbmRpZgotICAgICAgICBjb250ZXh0LT5k
cmF3SW1hZ2UobV9pbWFnZS0+aW1hZ2UodGhpcywgbWFya2VyLnNpemUoKSkuZ2V0KCksIHN0eWxl
KCktPmNvbG9yU3BhY2UoKSwgbWFya2VyKTsKKyAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9
IG1faW1hZ2UtPmltYWdlKHRoaXMsIG1hcmtlci5zaXplKCkpOworICAgICAgICBpZiAoaW1hZ2Up
CisgICAgICAgICAgICBjb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0KCksIHN0eWxlKCktPmNv
bG9yU3BhY2UoKSwgbWFya2VyKTsKICAgICAgICAgaWYgKHNlbGVjdGlvblN0YXRlKCkgIT0gU2Vs
ZWN0aW9uTm9uZSkgewogICAgICAgICAgICAgTGF5b3V0UmVjdCBzZWxSZWN0ID0gbG9jYWxTZWxl
Y3Rpb25SZWN0KCk7CiAgICAgICAgICAgICBzZWxSZWN0Lm1vdmVCeShib3hPcmlnaW4pOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDhjOTdiMTYxYjJmYTdmZDdhMzM1NTQxOGFhOWU4MjQ2MzhjMDc3ODMuLmI5MjM3NjRiMjYx
MDg4MmEyYmE0YzhmNDU0ZWQxZDQ4ODIzMTU3NWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAx
Mi0xMC0yOSAgQXJuYXVkIFJlbmV2aWVyICA8YS5yZW5ldmllckBzaXNhLnNhbXN1bmcuY29tPgor
CisgICAgICAgIGluY29uc2lzdGVuY3kgaW4gZHJhd0ltYWdlIHdpdGggdGFyZ2V0IHJlY3QgbmVn
YXRpdmUgZGltZW5zaW9ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMDAyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBhIGRyYXdJbWFnZSBjaGVjayBmb3IgYSBkZXN0aW5hdGlvbiByZWN0YW5n
bGUgd2l0aCAtMXB4CisgICAgICAgIHdpZHRoL2hlaWdodC4gV2hlbiBkcmF3aW5nIHRvICgxLCAx
LCAtMSwgLTEpIHJlY3RhbmdsZSwgZmlyc3QKKyAgICAgICAgKHRvcC1sZWZ0KSBwaXhlbCBzaG91
bGQgaGF2ZSBiZWVuIGFuZCBiZWVuIHRoZSBvbmx5IG9uZSBkcmF3biBpbnRvLgorCisgICAgICAg
ICogZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9u
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdh
dGl2ZS1zb3VyY2UtZGVzdGluYXRpb24uanM6CisKIDIwMTItMTAtMjIgIEVtaWwgQSBFa2x1bmQg
IDxlYWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLCBtYXJr
aW5nIGZhc3Qvc3ViLXBpeGVsL2ZpbGUtdXBsb2FkLWNvbnRyb2wtYXQtZnJhY3Rpb25hbC1vZmZz
ZXQuaHRtbCBhcyBmYWlsaW5nIG9uIExJT04gZm9yIG5vdy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlv
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1u
ZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDczODU2OGIwY2Ux
MjIyZWY4NGE0OGRjZmYwNDA3MGViZjI1YjgwYTUuLmY0MWFjOTIzNzA1Yjc5Y2I0Mzg1YTYzZjE3
MDZkMjI4MTQ4MTQwODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2RyYXdJ
bWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRl
c3RpbmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtNiw2ICs2LDEyIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFCiBQQVNTIGltZ2RhdGFbNF0gaXMgMAogUEFTUyBpbWdkYXRhWzVdIGlzIDI1NQogUEFT
UyBpbWdkYXRhWzZdIGlzIDAKK1BBU1MgaW1nZGF0YVswXSBpcyAyNTUKK1BBU1MgaW1nZGF0YVsx
XSBpcyAwCitQQVNTIGltZ2RhdGFbMl0gaXMgMAorUEFTUyBpbWdkYXRhWzRdIGlzIDAKK1BBU1Mg
aW1nZGF0YVs1XSBpcyAwCitQQVNTIGltZ2RhdGFbNl0gaXMgMAogUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24uanMg
Yi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2Ut
ZGVzdGluYXRpb24uanMKaW5kZXggMGE4YTA5YzE1MjM1ODJjYmMxNWIxZDZhZDU1MzYwN2FkNDJi
ZmFkZC4uNjcxZmQ3M2I2YzU2MDZkMWRlNzRkNTcwN2Q3MDBjOTA2NjRhZGEwMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNl
LWRlc3RpbmF0aW9uLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2RyYXdJbWFnZS13
aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi5qcwpAQCAtMTksMyArMTksMTYgQEAgdmFy
IGltZ2RhdGEgPSBpbWFnZURhdGEuZGF0YTsKIHNob3VsZEJlKCJpbWdkYXRhWzRdIiwgIjAiKTsK
IHNob3VsZEJlKCJpbWdkYXRhWzVdIiwgIjI1NSIpOwogc2hvdWxkQmUoImltZ2RhdGFbNl0iLCAi
MCIpOworCisvLyB0ZXN0IHdpZHRoIG9yIGhlaWdodCAtMQorY2FudmFzLmZpbGxTdHlsZSA9ICcj
MDAwJzsKK2NhbnZhcy5maWxsUmVjdCgwLCAwLCAxLCAyKTsKK2NhbnZhcy5kcmF3SW1hZ2UoY2Fu
dmFzMiwgMCwgMCwgMSwgMSwgMSwgMSwgLTEsIC0xKTsKK3ZhciBpbWFnZURhdGEgPSBjYW52YXMu
Z2V0SW1hZ2VEYXRhKDAsIDAsIDEsIDIpOwordmFyIGltZ2RhdGEgPSBpbWFnZURhdGEuZGF0YTsK
K3Nob3VsZEJlKCJpbWdkYXRhWzBdIiwgIjI1NSIpOworc2hvdWxkQmUoImltZ2RhdGFbMV0iLCAi
MCIpOworc2hvdWxkQmUoImltZ2RhdGFbMl0iLCAiMCIpOworc2hvdWxkQmUoImltZ2RhdGFbNF0i
LCAiMCIpOworc2hvdWxkQmUoImltZ2RhdGFbNV0iLCAiMCIpOworc2hvdWxkQmUoImltZ2RhdGFb
Nl0iLCAiMCIpOwo=
</data>
<flag name="commit-queue"
          id="185451"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171558</attachid>
            <date>2012-10-30 17:45:17 -0700</date>
            <delta_ts>2012-11-09 17:19:19 -0800</delta_ts>
            <desc>updated patch</desc>
            <filename>100026.patch</filename>
            <type>text/plain</type>
            <size>25756</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">Y29tbWl0IDVkYTYxYTliZmY0MDAyY2E5MDA5MzdkNTI4YTZjZmZjNzRlMjY4OTMKQXV0aG9yOiBB
cm5hdWQgUmVuZXZpZXIgPGEucmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KRGF0ZTogICBXZWQg
T2N0IDI0IDE1OjE4OjI4IDIwMTIgLTA3MDAKCiAgICAxMDAwMjYKCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGM5N2IxNi4u
YjkyMzc2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEwLTI5ICBBcm5hdWQgUmVuZXZp
ZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgaW5jb25zaXN0ZW5j
eSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJnZXQgcmVjdCBuZWdhdGl2ZSBkaW1lbnNpb25zLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDI2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgZHJhd0lt
YWdlIGNoZWNrIGZvciBhIGRlc3RpbmF0aW9uIHJlY3RhbmdsZSB3aXRoIC0xcHgKKyAgICAgICAg
d2lkdGgvaGVpZ2h0LiBXaGVuIGRyYXdpbmcgdG8gKDEsIDEsIC0xLCAtMSkgcmVjdGFuZ2xlLCBm
aXJzdAorICAgICAgICAodG9wLWxlZnQpIHBpeGVsIHNob3VsZCBoYXZlIGJlZW4gYW5kIGJlZW4g
dGhlIG9ubHkgb25lIGRyYXduIGludG8uCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9kcmF3SW1h
Z2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlv
bi5qczoKKwogMjAxMi0xMC0yMiAgRW1pbCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcsIG1hcmtpbmcgZmFzdC9zdWItcGl4ZWwvZmls
ZS11cGxvYWQtY29udHJvbC1hdC1mcmFjdGlvbmFsLW9mZnNldC5odG1sIGFzIGZhaWxpbmcgb24g
TElPTiBmb3Igbm93LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZHJhd0lt
YWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5h
dGlvbi1leHBlY3RlZC50eHQKaW5kZXggNzM4NTY4Yi4uZjQxYWM5MiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3Rp
bmF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1h
Z2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24tZXhwZWN0ZWQudHh0CkBAIC02LDYg
KzYsMTIgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIFBBU1MgaW1nZGF0YVs0XSBpcyAwCiBQ
QVNTIGltZ2RhdGFbNV0gaXMgMjU1CiBQQVNTIGltZ2RhdGFbNl0gaXMgMAorUEFTUyBpbWdkYXRh
WzBdIGlzIDI1NQorUEFTUyBpbWdkYXRhWzFdIGlzIDAKK1BBU1MgaW1nZGF0YVsyXSBpcyAwCitQ
QVNTIGltZ2RhdGFbNF0gaXMgMAorUEFTUyBpbWdkYXRhWzVdIGlzIDAKK1BBU1MgaW1nZGF0YVs2
XSBpcyAwCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0
aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2RyYXdJ
bWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi5qcwppbmRleCAwYThhMDljLi42
NzFmZDczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0
aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24uanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLmpzCkBAIC0x
OSwzICsxOSwxNiBAQCB2YXIgaW1nZGF0YSA9IGltYWdlRGF0YS5kYXRhOwogc2hvdWxkQmUoImlt
Z2RhdGFbNF0iLCAiMCIpOwogc2hvdWxkQmUoImltZ2RhdGFbNV0iLCAiMjU1Iik7CiBzaG91bGRC
ZSgiaW1nZGF0YVs2XSIsICIwIik7CisKKy8vIHRlc3Qgd2lkdGggb3IgaGVpZ2h0IC0xCitjYW52
YXMuZmlsbFN0eWxlID0gJyMwMDAnOworY2FudmFzLmZpbGxSZWN0KDAsIDAsIDEsIDIpOworY2Fu
dmFzLmRyYXdJbWFnZShjYW52YXMyLCAwLCAwLCAxLCAxLCAxLCAxLCAtMSwgLTEpOwordmFyIGlt
YWdlRGF0YSA9IGNhbnZhcy5nZXRJbWFnZURhdGEoMCwgMCwgMSwgMik7Cit2YXIgaW1nZGF0YSA9
IGltYWdlRGF0YS5kYXRhOworc2hvdWxkQmUoImltZ2RhdGFbMF0iLCAiMjU1Iik7CitzaG91bGRC
ZSgiaW1nZGF0YVsxXSIsICIwIik7CitzaG91bGRCZSgiaW1nZGF0YVsyXSIsICIwIik7CitzaG91
bGRCZSgiaW1nZGF0YVs0XSIsICIwIik7CitzaG91bGRCZSgiaW1nZGF0YVs1XSIsICIwIik7Citz
aG91bGRCZSgiaW1nZGF0YVs2XSIsICIwIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RlZDIzNS4uNmExZjA3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTEwLTMwICBBcm5hdWQgUmVuZXZp
ZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgaW5jb25zaXN0ZW5j
eSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJnZXQgcmVjdCBuZWdhdGl2ZSBkaW1lbnNpb25zLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDI2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIC0xLCAt
MSBzcGVjaWFsIGNhc2UgaW4gZHJhd0ltYWdlIGFuZCBkcmF3SW1hZ2VCdWZmZXIuIFJlcGxhY2UK
KyAgICAgICAgYWxsIC0xIC0xIGFyZ3VtZW50cyBjYWxscyB0byB3aXRoIHRoZSBjb3JyZWN0IHJl
Y3RhbmdsZSBkaW1lbnNpb25zLgorCisgICAgICAgIFJlbW92ZSBGbG9hdFJlY3QoMCwgMCwgLTEs
IC0xKSBkZWZhdWx0IGFyZ3VtZW50IGZvciBzcmNSZWN0LCBhbmQKKyAgICAgICAgaW5zdGVhZCwg
YWRkIG5ldyBvdmVybG9hZGVkIGZ1bmN0aW9ucyB0byBjcmVhdGUgYSBGbG9hdFJlY3QgZnJvbSBp
bWFnZQorICAgICAgICBzaXplLgorCisgICAgICAgIFJlcGxhY2UgLTEgLTEgYXJndW1lbnRzIGNh
bGxzIGluIEZFQ29tcG9zaXRlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUKKyAgICAgICAgd2l0aCBj
b3JyZWN0IHJlY3RhbmdsZSBkaW1lbnNpb25zLgorCisgICAgICAgIFJlcGxhY2UgSW1hZ2VHU3Ry
ZWFtZXIgcmVjdCBtZXRob2QgKHdoaWNoIG1heSByZXR1cm4gLTEgLTEgcmVjdGFuZ2xlKQorICAg
ICAgICB3aXRoIGNyb3BSZWN0IG1ldGhvZCwgYW5kIG1ha2UgY2FsbGVyIGNoZWNrIGZvciByZWN0
YW5nbGUgZW1wdGluZXNzLgorCisgICAgICAgIFJlcGxhY2UgaW1hZ2UgcG9pbnRlciBjaGVjayBi
eSBhbiBhc3NlcnRpb24gaW4gR3JhcGhpY3NDb250ZXh0CisgICAgICAgIGRyYXdJbWFnZSBhbmQg
ZHJhd0ltYWdlQnVmZmVyIG1ldGhvZHMuIEFkZCBjaGVjayB0byBjYWxsZXJzIHRvIGF2b2lkCisg
ICAgICAgIGNhbGxpbmcgdGhvc2UgbWV0aG9kcyB3aXRoIG51bGwgaW1hZ2VzLgorCisgICAgICAg
ICogZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9u
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdh
dGl2ZS1zb3VyY2UtZGVzdGluYXRpb24uanM6CisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpmdWxsQ2FudmFzQ29tcG9zaXRlZERyYXdJbWFnZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3VGlsZWRJbWFnZSk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgIChHcmFwaGljc0NvbnRl
eHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RkVDb21wb3NpdGU6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUdTdHJlYW1lcjo6cmVjdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bWFnZUJ1ZmZlcjo6ZHJhdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0
dXJlSW1hZ2VCdWZmZXI6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJJbWFnZUJ1ZmZlcjo6ZHJhd1RleHR1cmUpOgorICAgICAgICAqIHJlbmRlcmluZy9G
aWx0ZXJFZmZlY3RSZW5kZXJlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3RS
ZW5kZXJlckhlbHBlcjo6YXBwbHlGaWx0ZXJFZmZlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2Rl
bE9iamVjdDo6cGFpbnROaW5lUGllY2VJbWFnZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxpc3RNYXJrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdE1hcmtlcjo6cGFp
bnQpOgorCiAyMDEyLTEwLTI5ICBBcm5hdWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ft
c3VuZy5jb20+CiAKICAgICAgICAgd2VidmlldyBub3QgcmVkcmF3biBhcyBuZWVkZWQgd2hlbiBh
Y2NlbGVyYXRlZCBjb21wb3NpdGluZyBpcyBlbmFibGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKaW5kZXggZWY3
NTRmNS4uMjQ4YmQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBAIC0xNjYwLDYgKzE2NjAsOSBAQCB0ZW1w
bGF0ZTxjbGFzcyBUPiB2b2lkICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZ1bGxDYW52YXND
b21wb3NpdGVkRHJhd0ltYWdlKAogewogICAgIEFTU0VSVChpc0Z1bGxDYW52YXNDb21wb3NpdGVN
b2RlKG9wKSk7CiAKKyAgICBpZiAoIWltYWdlKQorICAgICAgICByZXR1cm47CisKICAgICBJbnRT
aXplIGNyb3BwZWRPZmZzZXQ7CiAgICAgSW50UmVjdCBidWZmZXJSZWN0ID0gY2FsY3VsYXRlQ29t
cG9zaXRpbmdCdWZmZXJSZWN0KGRlc3QsICZjcm9wcGVkT2Zmc2V0KTsKICAgICBpZiAoYnVmZmVy
UmVjdC5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmluZGV4IDJjYTBlNjUuLjVjYjIyMjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNw
cApAQCAtNDM5LDEyICs0MzksMTQgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdIaWdobGln
aHRGb3JUZXh0KGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwKIAogdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVD
b2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgcCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKIHsK
LSAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgcCwgSW50UmVjdCgwLCAwLCAt
MSwgLTEpLCBvcCwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pOworICAgIEFTU0VSVChp
bWFnZSk7CisgICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHAsIEludFJlY3Qo
SW50UG9pbnQoKSwgaW1hZ2UtPnNpemUoKSksIG9wLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRh
dGlvbik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdl
LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UmVjdCYgciwgQ29tcG9zaXRl
T3BlcmF0b3Igb3AsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7Ci0gICAgZHJhd0ltYWdl
KGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHIsIEludFJlY3QoMCwgMCwgLTEsIC0xKSwgb3AsIHNo
b3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAgIEFT
U0VSVChpbWFnZSk7CisgICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHIsIElu
dFJlY3QoSW50UG9pbnQoKSwgaW1hZ2UtPnNpemUoKSksIG9wLCBzaG91bGRSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbiwgdXNlTG93UXVhbGl0eVNjYWxlKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBj
b25zdCBJbnRQb2ludCYgZGVzdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3Bl
cmF0b3Igb3AsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbikKQEAgLTQ1NywyNiArNDU5LDE4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QK
ICAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgRmxvYXRSZWN0KGRlc3QpLCBz
cmNSZWN0LCBvcCwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24sIHVzZUxvd1F1YWxpdHlT
Y2FsZSk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdl
LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0KQorewor
ICAgIEFTU0VSVChpbWFnZSk7CisgICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2Us
IGRlc3QsIEZsb2F0UmVjdChJbnRSZWN0KEludFBvaW50KCksIGltYWdlLT5zaXplKCkpKSk7Cit9
CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNw
YWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyYywgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51
bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUp
CiB7Ci0gICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSB8fCAhaW1hZ2UpCisgICAgQVNTRVJUKGlt
YWdlKTsKKyAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBmbG9hdCB0c3cgPSBzcmMud2lkdGgoKTsKLSAgICBmbG9hdCB0c2ggPSBzcmMuaGVpZ2h0KCk7
Ci0gICAgZmxvYXQgdHcgPSBkZXN0LndpZHRoKCk7Ci0gICAgZmxvYXQgdGggPSBkZXN0LmhlaWdo
dCgpOwotCi0gICAgaWYgKHRzdyA9PSAtMSkKLSAgICAgICAgdHN3ID0gaW1hZ2UtPndpZHRoKCk7
Ci0gICAgaWYgKHRzaCA9PSAtMSkKLSAgICAgICAgdHNoID0gaW1hZ2UtPmhlaWdodCgpOwotCi0g
ICAgaWYgKHR3ID09IC0xKQotICAgICAgICB0dyA9IGltYWdlLT53aWR0aCgpOwotICAgIGlmICh0
aCA9PSAtMSkKLSAgICAgICAgdGggPSBpbWFnZS0+aGVpZ2h0KCk7Ci0KICAgICBJbnRlcnBvbGF0
aW9uUXVhbGl0eSBwcmV2aW91c0ludGVycG9sYXRpb25RdWFsaXR5ID0gSW50ZXJwb2xhdGlvbkRl
ZmF1bHQ7CiAKICAgICBpZiAodXNlTG93UXVhbGl0eVNjYWxlKSB7CkBAIC00ODksNyArNDgzLDcg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3Bh
Y2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdAogI2VuZGlmCiAgICAgfQogCi0gICAgaW1hZ2UtPmRy
YXcodGhpcywgRmxvYXRSZWN0KGRlc3QubG9jYXRpb24oKSwgRmxvYXRTaXplKHR3LCB0aCkpLCBG
bG9hdFJlY3Qoc3JjLmxvY2F0aW9uKCksIEZsb2F0U2l6ZSh0c3csIHRzaCkpLCBzdHlsZUNvbG9y
U3BhY2UsIG9wLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CisgICAgaW1hZ2UtPmRy
YXcodGhpcywgZGVzdCwgc3JjLCBzdHlsZUNvbG9yU3BhY2UsIG9wLCBzaG91bGRSZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbik7CiAKICAgICBpZiAodXNlTG93UXVhbGl0eVNjYWxlKQogICAgICAgICBz
ZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KHByZXZpb3VzSW50ZXJwb2xhdGlvblF1YWxpdHkp
OwpAQCAtNDk3LDcgKzQ5MSw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1h
Z2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QKIAogdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdUaWxlZEltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0LCBjb25zdCBJbnRQb2ludCYgc3Jj
UG9pbnQsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgYm9v
bCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7Ci0gICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSB8fCAh
aW1hZ2UpCisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChwYWludGlu
Z0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICh1c2VMb3dRdWFsaXR5U2Nh
bGUpIHsKQEAgLTUzMiwxMiArNTI4LDE0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3VGls
ZWRJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjCiAKIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIGltYWdlLCBD
b2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UG9pbnQmIHAsIENvbXBvc2l0ZU9w
ZXJhdG9yIG9wKQogewotICAgIGRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgc3R5bGVDb2xvclNwYWNl
LCBwLCBJbnRSZWN0KDAsIDAsIC0xLCAtMSksIG9wKTsKKyAgICBBU1NFUlQoaW1hZ2UpOworICAg
IGRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBwLCBJbnRSZWN0KEludFBv
aW50KCksIGltYWdlLT5sb2dpY2FsU2l6ZSgpKSwgb3ApOwogfQogCiB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmIHIsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBib29s
IHVzZUxvd1F1YWxpdHlTY2FsZSkKIHsKLSAgICBkcmF3SW1hZ2VCdWZmZXIoaW1hZ2UsIHN0eWxl
Q29sb3JTcGFjZSwgciwgSW50UmVjdCgwLCAwLCAtMSwgLTEpLCBvcCwgdXNlTG93UXVhbGl0eVNj
YWxlKTsKKyAgICBBU1NFUlQoaW1hZ2UpOworICAgIGRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgc3R5
bGVDb2xvclNwYWNlLCByLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdlLT5sb2dpY2FsU2l6ZSgp
KSwgb3AsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgY29uc3QgSW50UG9pbnQmIGRlc3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBv
c2l0ZU9wZXJhdG9yIG9wKQpAQCAtNTUwLDI1ICs1NDgsMTggQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVD
b2xvclMKICAgICBkcmF3SW1hZ2VCdWZmZXIoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgRmxvYXRS
ZWN0KGRlc3QpLCBzcmNSZWN0LCBvcCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKIH0KIAotdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9y
U3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUp
Cit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBpbWFn
ZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdCkKIHsK
LSAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpIHx8ICFpbWFnZSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgZmxvYXQgdHN3ID0gc3JjLndpZHRoKCk7Ci0gICAgZmxvYXQgdHNoID0gc3JjLmhlaWdo
dCgpOwotICAgIGZsb2F0IHR3ID0gZGVzdC53aWR0aCgpOwotICAgIGZsb2F0IHRoID0gZGVzdC5o
ZWlnaHQoKTsKKyAgICBBU1NFUlQoaW1hZ2UpOworICAgIGRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwg
c3R5bGVDb2xvclNwYWNlLCBkZXN0LCBGbG9hdFJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBpbWFn
ZS0+bG9naWNhbFNpemUoKSkpKTsKK30KIAotICAgIGlmICh0c3cgPT0gLTEpCi0gICAgICAgIHRz
dyA9IGltYWdlLT5sb2dpY2FsU2l6ZSgpLndpZHRoKCk7Ci0gICAgaWYgKHRzaCA9PSAtMSkKLSAg
ICAgICAgdHNoID0gaW1hZ2UtPmxvZ2ljYWxTaXplKCkuaGVpZ2h0KCk7Cit2b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBpbWFnZSwgQ29sb3JTcGFjZSBz
dHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmMsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKK3sKKyAg
ICBBU1NFUlQoaW1hZ2UpOwogCi0gICAgaWYgKHR3ID09IC0xKQotICAgICAgICB0dyA9IGltYWdl
LT5sb2dpY2FsU2l6ZSgpLndpZHRoKCk7Ci0gICAgaWYgKHRoID09IC0xKQotICAgICAgICB0aCA9
IGltYWdlLT5sb2dpY2FsU2l6ZSgpLmhlaWdodCgpOworICAgIGlmIChwYWludGluZ0Rpc2FibGVk
KCkpCisgICAgICAgIHJldHVybjsKIAogICAgIGlmICh1c2VMb3dRdWFsaXR5U2NhbGUpIHsKICAg
ICAgICAgSW50ZXJwb2xhdGlvblF1YWxpdHkgcHJldmlvdXNJbnRlcnBvbGF0aW9uUXVhbGl0eSA9
IGltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoKTsKQEAgLTU3OCwxMCArNTY5LDEwIEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIGltYWdlLCBDb2xv
clNwYWNlIHN0eWxlQ29sb3JTCiAgICAgICAgIC8vIEZJWE1FICg0OTAwMik6IFNob3VsZCBiZSBJ
bnRlcnBvbGF0aW9uTG93CiAgICAgICAgIHNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50
ZXJwb2xhdGlvbk5vbmUpOwogI2VuZGlmCi0gICAgICAgIGltYWdlLT5kcmF3KHRoaXMsIHN0eWxl
Q29sb3JTcGFjZSwgRmxvYXRSZWN0KGRlc3QubG9jYXRpb24oKSwgRmxvYXRTaXplKHR3LCB0aCkp
LCBGbG9hdFJlY3Qoc3JjLmxvY2F0aW9uKCksIEZsb2F0U2l6ZSh0c3csIHRzaCkpLCBvcCwgdXNl
TG93UXVhbGl0eVNjYWxlKTsKKyAgICAgICAgaW1hZ2UtPmRyYXcodGhpcywgc3R5bGVDb2xvclNw
YWNlLCBkZXN0LCBzcmMsIG9wLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogICAgICAgICBzZXRJbWFn
ZUludGVycG9sYXRpb25RdWFsaXR5KHByZXZpb3VzSW50ZXJwb2xhdGlvblF1YWxpdHkpOwogICAg
IH0gZWxzZQotICAgICAgICBpbWFnZS0+ZHJhdyh0aGlzLCBzdHlsZUNvbG9yU3BhY2UsIEZsb2F0
UmVjdChkZXN0LmxvY2F0aW9uKCksIEZsb2F0U2l6ZSh0dywgdGgpKSwgRmxvYXRSZWN0KHNyYy5s
b2NhdGlvbigpLCBGbG9hdFNpemUodHN3LCB0c2gpKSwgb3AsIHVzZUxvd1F1YWxpdHlTY2FsZSk7
CisgICAgICAgIGltYWdlLT5kcmF3KHRoaXMsIHN0eWxlQ29sb3JTcGFjZSwgZGVzdCwgc3JjLCBv
cCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKIH0KIAogI2lmICFQTEFURk9STShRVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5kZXgg
ZmU2NWY4OC4uM2ExNDdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTMxMyw4ICszMTMsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNv
bG9yU3BhY2UsIGNvbnN0IEludFJlY3QmLCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNv
dXJjZU92ZXIsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVzcGVjdEltYWdl
T3JpZW50YXRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwogICAgICAgICB2
b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJ
bnRQb2ludCYgZGVzdFBvaW50LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVy
YXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSA9
IERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24pOwogICAgICAgICB2b2lkIGRyYXdJbWFnZShJ
bWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVT
b3VyY2VPdmVyLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBEb05vdFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKLSAgICAgICAg
dm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0ID0gRmxvYXRSZWN0
KDAsIDAsIC0xLCAtMSksCi0gICAgICAgICAgICAgICAgICAgICAgIENvbXBvc2l0ZU9wZXJhdG9y
ID0gQ29tcG9zaXRlU291cmNlT3ZlciwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtID0gRG9O
b3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxz
ZSk7CisgICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9y
U3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpOworICAgICAgICB2b2lkIGRyYXdJbWFn
ZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29t
cG9zaXRlU291cmNlT3ZlciwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtID0gRG9Ob3RSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CiAg
ICAgICAgIHZvaWQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEludFBvaW50JiBzcmNQb2ludCwg
Y29uc3QgSW50U2l6ZSYgdGlsZVNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbXBvc2l0
ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUg
PSBmYWxzZSk7CiAgICAgICAgIHZvaWQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNl
IHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEludFJlY3Qm
IHNyY1JlY3QsCkBAIC0zMjUsOCArMzI1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciosIENvbG9yU3BhY2Ugc3R5bGVDb2xv
clNwYWNlLCBjb25zdCBJbnRSZWN0JiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3Vy
Y2VPdmVyLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKICAgICAgICAgdm9pZCBk
cmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwg
Y29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgQ29tcG9z
aXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyKTsKICAgICAgICAgdm9pZCBkcmF3SW1h
Z2VCdWZmZXIoSW1hZ2VCdWZmZXIqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3Qg
SW50UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJh
dG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxz
ZSk7Ci0gICAgICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiwgQ29sb3JTcGFj
ZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCA9IEZsb2F0UmVjdCgwLCAwLCAtMSwgLTEpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIGJv
b2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOworICAgICAgICB2b2lkIGRyYXdJbWFnZUJ1
ZmZlcihJbWFnZUJ1ZmZlciosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0KTsKKyAgICAgICAgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZm
ZXIqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0
ZVNvdXJjZU92ZXIsIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwogCiAgICAgICAg
IHZvaWQgc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0eSk7
CiAgICAgICAgIEludGVycG9sYXRpb25RdWFsaXR5IGltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHko
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb21wb3NpdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKaW5kZXggOWQ1NjZlZC4uYzFmNjQ0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBv
c2l0ZS5jcHAKQEAgLTI3NCwxMSArMjc0LDE1IEBAIHZvaWQgRkVDb21wb3NpdGU6OnBsYXRmb3Jt
QXBwbHlTb2Z0d2FyZSgpCiAgICAgICAgIHJldHVybjsKICAgICBHcmFwaGljc0NvbnRleHQqIGZp
bHRlckNvbnRleHQgPSByZXN1bHRJbWFnZS0+Y29udGV4dCgpOwogCi0gICAgRmxvYXRSZWN0IHNy
Y1JlY3QgPSBGbG9hdFJlY3QoMCwgMCwgLTEsIC0xKTsKKyAgICBJbWFnZUJ1ZmZlciogaW1nQnVm
ZmVyID0gaW4tPmFzSW1hZ2VCdWZmZXIoKTsKKyAgICBJbWFnZUJ1ZmZlciogaW1nQnVmZmVyMiA9
IGluMi0+YXNJbWFnZUJ1ZmZlcigpOworICAgIEFTU0VSVChpbWdCdWZmZXIpOworICAgIEFTU0VS
VChpbWdCdWZmZXIyKTsKKwogICAgIHN3aXRjaCAobV90eXBlKSB7CiAgICAgY2FzZSBGRUNPTVBP
U0lURV9PUEVSQVRPUl9PVkVSOgotICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZm
ZXIoaW4yLT5hc0ltYWdlQnVmZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdp
b25PZklucHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7Ci0gICAgICAgIGZpbHRl
ckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNl
RGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVj
dCgpKSk7CisgICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWdCdWZmZXIy
LCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJz
b2x1dGVQYWludFJlY3QoKSkpOworICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZm
ZXIoaW1nQnVmZmVyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dElt
YWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
RkVDT01QT1NJVEVfT1BFUkFUT1JfSU46IHsKICAgICAgICAgLy8gQXBwbGllcyBvbmx5IHRvIHRo
ZSBpbnRlcnNlY3RlZCByZWdpb24uCkBAIC0yOTIsMjEgKzI5NiwyMSBAQCB2b2lkIEZFQ29tcG9z
aXRlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGVzdGluYXRpb25SZWN0LnkoKSAtIGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpLnko
KSksIGRlc3RpbmF0aW9uUmVjdC5zaXplKCkpOwogICAgICAgICBJbnRSZWN0IHNvdXJjZTJSZWN0
KEludFBvaW50KGRlc3RpbmF0aW9uUmVjdC54KCkgLSBpbjItPmFic29sdXRlUGFpbnRSZWN0KCku
eCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uUmVj
dC55KCkgLSBpbjItPmFic29sdXRlUGFpbnRSZWN0KCkueSgpKSwgZGVzdGluYXRpb25SZWN0LnNp
emUoKSk7Ci0gICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbjItPmFzSW1h
Z2VCdWZmZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZGVzdGluYXRpb25Qb2ludCwgc291cmNl
MlJlY3QpOwotICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW4tPmFzSW1h
Z2VCdWZmZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZGVzdGluYXRpb25Qb2ludCwgc291cmNl
UmVjdCwgQ29tcG9zaXRlU291cmNlSW4pOworICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1h
Z2VCdWZmZXIoaW1nQnVmZmVyMiwgQ29sb3JTcGFjZURldmljZVJHQiwgZGVzdGluYXRpb25Qb2lu
dCwgc291cmNlMlJlY3QpOworICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIo
aW1nQnVmZmVyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkZXN0aW5hdGlvblBvaW50LCBzb3VyY2VS
ZWN0LCBDb21wb3NpdGVTb3VyY2VJbik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNl
IEZFQ09NUE9TSVRFX09QRVJBVE9SX09VVDoKLSAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0lt
YWdlQnVmZmVyKGluLT5hc0ltYWdlQnVmZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdp
bmdSZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKLSAgICAgICAg
ZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGluMi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xv
clNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQ
YWludFJlY3QoKSksIHNyY1JlY3QsIENvbXBvc2l0ZURlc3RpbmF0aW9uT3V0KTsKKyAgICAgICAg
ZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltZ0J1ZmZlciwgQ29sb3JTcGFjZURldmlj
ZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSkp
OworICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1nQnVmZmVyMiwgQ29s
b3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29sdXRl
UGFpbnRSZWN0KCkpLCBJbnRSZWN0KEludFBvaW50KCksIGltZ0J1ZmZlcjItPmxvZ2ljYWxTaXpl
KCkpLCBDb21wb3NpdGVEZXN0aW5hdGlvbk91dCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
RkVDT01QT1NJVEVfT1BFUkFUT1JfQVRPUDoKLSAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0lt
YWdlQnVmZmVyKGluMi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3
aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOwotICAgICAg
ICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW4tPmFzSW1hZ2VCdWZmZXIoKSwgQ29s
b3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQ
YWludFJlY3QoKSksIHNyY1JlY3QsIENvbXBvc2l0ZVNvdXJjZUF0b3ApOworICAgICAgICBmaWx0
ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1nQnVmZmVyMiwgQ29sb3JTcGFjZURldmljZVJH
QiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29sdXRlUGFpbnRSZWN0KCkpKTsK
KyAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltZ0J1ZmZlciwgQ29sb3JT
cGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWlu
dFJlY3QoKSksIEludFJlY3QoSW50UG9pbnQoKSwgaW1nQnVmZmVyLT5sb2dpY2FsU2l6ZSgpKSwg
Q29tcG9zaXRlU291cmNlQXRvcCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRkVDT01QT1NJ
VEVfT1BFUkFUT1JfWE9SOgotICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIo
aW4yLT5hc0ltYWdlQnVmZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25P
ZklucHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7Ci0gICAgICAgIGZpbHRlckNv
bnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNlRGV2
aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgp
KSwgc3JjUmVjdCwgQ29tcG9zaXRlWE9SKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0lt
YWdlQnVmZmVyKGltZ0J1ZmZlcjIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25P
ZklucHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7CisgICAgICAgIGZpbHRlckNv
bnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWdCdWZmZXIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRy
YXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpLCBJbnRSZWN0
KEludFBvaW50KCksIGltZ0J1ZmZlci0+bG9naWNhbFNpemUoKSksIENvbXBvc2l0ZVhPUik7CiAg
ICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3Ry
ZWFtZXIuaAppbmRleCA4M2JkZmUyLi42OGY4ZmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXIuaApA
QCAtNTEsOSArNTEsOCBAQCBjbGFzcyBJbWFnZUdTdHJlYW1lciA6IHB1YmxpYyBSZWZDb3VudGVk
PEltYWdlR1N0cmVhbWVyPiB7CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghbV9jcm9wUmVj
dC5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIEZsb2F0UmVjdChtX2Nyb3BSZWN0
KTsKLQotICAgICAgICAgICAgLy8gRGVmYXVsdCByZWN0YW5nbGUgdXNlZCBieSBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdJbWFnZSgpLgotICAgICAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAwLCAt
MSwgLTEpOworICAgICAgICAgICAgQVNTRVJUKG1faW1hZ2UpOworICAgICAgICAgICAgcmV0dXJu
IEZsb2F0UmVjdCgwLCAwLCBtX2ltYWdlLT5zaXplKCkud2lkdGgoKSwgbV9pbWFnZS0+c2l6ZSgp
LmhlaWdodCgpKTsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlQnVmZmVyUXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKaW5kZXggYWMy
N2RjMi4uNDE4MmQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIEltYWdl
QnVmZmVyOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogZGVzdENvbnRleHQsIENvbG9yU3BhY2Ugc3R5
bGVDb2xvclNwYWNlLAogICAgICAgICAvLyBXZSdyZSBkcmF3aW5nIGludG8gb3VyIG93biBidWZm
ZXIuICBJbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrLCB3ZSBuZWVkIHRvIGNvcHkgdGhlIHNvdXJj
ZSBidWZmZXIgZmlyc3QuCiAgICAgICAgIFJlZlB0cjxJbWFnZT4gY29weSA9IGNvcHlJbWFnZShD
b3B5QmFja2luZ1N0b3JlKTsKICAgICAgICAgZGVzdENvbnRleHQtPmRyYXdJbWFnZShjb3B5Lmdl
dCgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3AsIERvTm90UmVz
cGVjdEltYWdlT3JpZW50YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7Ci0gICAgfSBlbHNlCisg
ICAgfSBlbHNlIGlmIChtX2RhdGEubV9pbWFnZS5nZXQoKSkKICAgICAgICAgZGVzdENvbnRleHQt
PmRyYXdJbWFnZShtX2RhdGEubV9pbWFnZS5nZXQoKSwgc3R5bGVDb2xvclNwYWNlLCBkZXN0UmVj
dCwgc3JjUmVjdCwgb3AsIERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24sIHVzZUxvd1F1YWxp
dHlTY2FsZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5jcHAKaW5k
ZXggODQzNDMzMi4uYjFhMGU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZl
ci5jcHAKQEAgLTYxLDYgKzYxLDggQEAgdm9pZCBCaXRtYXBUZXh0dXJlSW1hZ2VCdWZmZXI6OmRp
ZFJlc2V0KCkKIAogdm9pZCBCaXRtYXBUZXh0dXJlSW1hZ2VCdWZmZXI6OnVwZGF0ZUNvbnRlbnRz
KEltYWdlKiBpbWFnZSwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgSW50UG9pbnQm
IG9mZnNldCwgVXBkYXRlQ29udGVudHNGbGFnKQogeworICAgIGlmICghaW1hZ2UpCisgICAgICAg
IHJldHVybjsKICAgICBtX2ltYWdlLT5jb250ZXh0KCktPmRyYXdJbWFnZShpbWFnZSwgQ29sb3JT
cGFjZURldmljZVJHQiwgdGFyZ2V0UmVjdCwgSW50UmVjdChvZmZzZXQsIHRhcmdldFJlY3Quc2l6
ZSgpKSwgQ29tcG9zaXRlQ29weSk7CiB9CiAKQEAgLTExMCw3ICsxMTIsOCBAQCB2b2lkIFRleHR1
cmVNYXBwZXJJbWFnZUJ1ZmZlcjo6ZHJhd1RleHR1cmUoY29uc3QgQml0bWFwVGV4dHVyZSYgdGV4
dHVyZSwgY29uc3QgRgogICAgICAgICAgICAgbWFza0NvbnRleHQtPnNldEFscGhhKG9wYWNpdHkp
OwogICAgICAgICAgICAgb3BhY2l0eSA9IDE7CiAgICAgICAgIH0KLSAgICAgICAgbWFza0NvbnRl
eHQtPmRyYXdJbWFnZUJ1ZmZlcihtYXNrLT5tX2ltYWdlLmdldCgpLCBDb2xvclNwYWNlRGV2aWNl
UkdCLCBJbnRQb2ludDo6emVybygpLCBDb21wb3NpdGVEZXN0aW5hdGlvbkluKTsKKyAgICAgICAg
aWYgKG1hc2stPm1faW1hZ2UuZ2V0KCkpCisgICAgICAgICAgICBtYXNrQ29udGV4dC0+ZHJhd0lt
YWdlQnVmZmVyKG1hc2stPm1faW1hZ2UuZ2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIEludFBv
aW50Ojp6ZXJvKCksIENvbXBvc2l0ZURlc3RpbmF0aW9uSW4pOwogICAgICAgICBpbWFnZSA9IG1h
c2tlZEltYWdlLmdldCgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAKaW5kZXggZmQwN2Y0YS4uOWYwZWZiYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwCkBA
IC01MTAsNyArNTEwLDggQEAgR3JhcGhpY3NDb250ZXh0KiBGaWx0ZXJFZmZlY3RSZW5kZXJlckhl
bHBlcjo6YXBwbHlGaWx0ZXJFZmZlY3QoKQogICAgIExheW91dFJlY3QgZGVzdFJlY3QgPSBmaWx0
ZXItPm91dHB1dFJlY3QoKTsKICAgICBkZXN0UmVjdC5tb3ZlKG1fcGFpbnRPZmZzZXQueCgpLCBt
X3BhaW50T2Zmc2V0LnkoKSk7CiAgICAgCi0gICAgbV9zYXZlZEdyYXBoaWNzQ29udGV4dC0+ZHJh
d0ltYWdlQnVmZmVyKGZpbHRlci0+b3V0cHV0KCksIG1fcmVuZGVyTGF5ZXItPnJlbmRlcmVyKCkt
PnN0eWxlKCktPmNvbG9yU3BhY2UoKSwgcGl4ZWxTbmFwcGVkSW50UmVjdChkZXN0UmVjdCksIENv
bXBvc2l0ZVNvdXJjZU92ZXIpOworICAgIGlmIChmaWx0ZXItPm91dHB1dCgpKQorICAgICAgICBt
X3NhdmVkR3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoZmlsdGVyLT5vdXRwdXQoKSwg
bV9yZW5kZXJMYXllci0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBwaXhlbFNu
YXBwZWRJbnRSZWN0KGRlc3RSZWN0KSwgQ29tcG9zaXRlU291cmNlT3Zlcik7CiAgICAgCiAgICAg
ZmlsdGVyLT5jbGVhckludGVybWVkaWF0ZVJlc3VsdHMoKTsKICAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IGZkNjM5MGEu
LjhmMThhZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1v
ZGVsT2JqZWN0LmNwcApAQCAtMTI5Nyw2ICsxMjk3LDggQEAgYm9vbCBSZW5kZXJCb3hNb2RlbE9i
amVjdDo6cGFpbnROaW5lUGllY2VJbWFnZShHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4
dCwKICAgICAgICAgICAgICAgICAgICAgICAmJiAoaW1hZ2VIZWlnaHQgLSB0b3BTbGljZSAtIGJv
dHRvbVNsaWNlKSA+IDAgJiYgKGJvcmRlckltYWdlUmVjdC5oZWlnaHQoKSAtIHRvcFdpZHRoIC0g
Ym90dG9tV2lkdGgpID4gMDsKIAogICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBzdHlsZUltYWdl
LT5pbWFnZSh0aGlzLCBpbWFnZVNpemUpOworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVy
biB0cnVlOwogICAgIENvbG9yU3BhY2UgY29sb3JTcGFjZSA9IHN0eWxlLT5jb2xvclNwYWNlKCk7
CiAgICAgCiAgICAgZmxvYXQgZGVzdGluYXRpb25XaWR0aCA9IGJvcmRlckltYWdlUmVjdC53aWR0
aCgpIC0gbGVmdFdpZHRoIC0gcmlnaHRXaWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0TWFya2VyLmNwcAppbmRleCBiN2NiYWEwLi5iYThhZDRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCkBAIC0xMTMwLDcgKzEx
MzAsOSBAQCB2b2lkIFJlbmRlckxpc3RNYXJrZXI6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZQogICAgICAgICBpZiAoc3R5bGUoKS0+aGln
aGxpZ2h0KCkgIT0gbnVsbEF0b20gJiYgIXBhaW50SW5mby5jb250ZXh0LT5wYWludGluZ0Rpc2Fi
bGVkKCkpCiAgICAgICAgICAgICBwYWludEN1c3RvbUhpZ2hsaWdodChwYWludE9mZnNldCwgc3R5
bGUoKS0+aGlnaGxpZ2h0KCksIHRydWUpOwogI2VuZGlmCi0gICAgICAgIGNvbnRleHQtPmRyYXdJ
bWFnZShtX2ltYWdlLT5pbWFnZSh0aGlzLCBtYXJrZXIuc2l6ZSgpKS5nZXQoKSwgc3R5bGUoKS0+
Y29sb3JTcGFjZSgpLCBtYXJrZXIpOworICAgICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gbV9p
bWFnZS0+aW1hZ2UodGhpcywgbWFya2VyLnNpemUoKSk7CisgICAgICAgIGlmIChpbWFnZSkKKyAg
ICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgc3R5bGUoKS0+Y29sb3JT
cGFjZSgpLCBtYXJrZXIpOwogICAgICAgICBpZiAoc2VsZWN0aW9uU3RhdGUoKSAhPSBTZWxlY3Rp
b25Ob25lKSB7CiAgICAgICAgICAgICBMYXlvdXRSZWN0IHNlbFJlY3QgPSBsb2NhbFNlbGVjdGlv
blJlY3QoKTsKICAgICAgICAgICAgIHNlbFJlY3QubW92ZUJ5KGJveE9yaWdpbik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173412</attachid>
            <date>2012-11-09 17:20:35 -0800</date>
            <delta_ts>2012-11-15 14:51:06 -0800</delta_ts>
            <desc>check image pointer in DrawImage(Buffer?) methods</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>18811</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">Y29tbWl0IDQzZjM3MmQyZmFhMjhkMTkyYjlhYTM3N2I1MGY1N2RmZjA4MWJlYTMKQXV0aG9yOiBB
cm5hdWQgUmVuZXZpZXIgPGEucmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KRGF0ZTogICBXZWQg
T2N0IDI0IDE1OjE4OjI4IDIwMTIgLTA3MDAKCiAgICAxMDAwMjYKCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNWY4ZGE5YS4u
MDYwNTMzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEwLTI5ICBBcm5hdWQgUmVuZXZp
ZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgaW5jb25zaXN0ZW5j
eSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJnZXQgcmVjdCBuZWdhdGl2ZSBkaW1lbnNpb25zLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDI2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgZHJhd0lt
YWdlIGNoZWNrIGZvciBhIGRlc3RpbmF0aW9uIHJlY3RhbmdsZSB3aXRoIC0xcHgKKyAgICAgICAg
d2lkdGgvaGVpZ2h0LiBXaGVuIGRyYXdpbmcgdG8gKDEsIDEsIC0xLCAtMSkgcmVjdGFuZ2xlLCBm
aXJzdAorICAgICAgICAodG9wLWxlZnQpIHBpeGVsIHNob3VsZCBoYXZlIGJlZW4gYW5kIGJlZW4g
dGhlIG9ubHkgb25lIGRyYXduIGludG8uCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9kcmF3SW1h
Z2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlv
bi5qczoKKwogMjAxMi0xMS0wOSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLCBiYXNlbGluZXMgY2hhbmdlIC0gcmVtb3ZlIHN0cmF5IGJh
c2VsaW5lcyBmb3IgcmVmdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNl
LWRlc3RpbmF0aW9uLWV4cGVjdGVkLnR4dAppbmRleCA3Mzg1NjhiLi5mNDFhYzkyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3Vy
Y2UtZGVzdGluYXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi1leHBlY3RlZC50eHQK
QEAgLTYsNiArNiwxMiBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogUEFTUyBpbWdkYXRhWzRd
IGlzIDAKIFBBU1MgaW1nZGF0YVs1XSBpcyAyNTUKIFBBU1MgaW1nZGF0YVs2XSBpcyAwCitQQVNT
IGltZ2RhdGFbMF0gaXMgMjU1CitQQVNTIGltZ2RhdGFbMV0gaXMgMAorUEFTUyBpbWdkYXRhWzJd
IGlzIDAKK1BBU1MgaW1nZGF0YVs0XSBpcyAwCitQQVNTIGltZ2RhdGFbNV0gaXMgMAorUEFTUyBp
bWdkYXRhWzZdIGlzIDAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBD
T01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdp
dGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLmpzCmluZGV4IDBh
OGEwOWMuLjY3MWZkNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2RyYXdJ
bWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi5qcworKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24u
anMKQEAgLTE5LDMgKzE5LDE2IEBAIHZhciBpbWdkYXRhID0gaW1hZ2VEYXRhLmRhdGE7CiBzaG91
bGRCZSgiaW1nZGF0YVs0XSIsICIwIik7CiBzaG91bGRCZSgiaW1nZGF0YVs1XSIsICIyNTUiKTsK
IHNob3VsZEJlKCJpbWdkYXRhWzZdIiwgIjAiKTsKKworLy8gdGVzdCB3aWR0aCBvciBoZWlnaHQg
LTEKK2NhbnZhcy5maWxsU3R5bGUgPSAnIzAwMCc7CitjYW52YXMuZmlsbFJlY3QoMCwgMCwgMSwg
Mik7CitjYW52YXMuZHJhd0ltYWdlKGNhbnZhczIsIDAsIDAsIDEsIDEsIDEsIDEsIC0xLCAtMSk7
Cit2YXIgaW1hZ2VEYXRhID0gY2FudmFzLmdldEltYWdlRGF0YSgwLCAwLCAxLCAyKTsKK3ZhciBp
bWdkYXRhID0gaW1hZ2VEYXRhLmRhdGE7CitzaG91bGRCZSgiaW1nZGF0YVswXSIsICIyNTUiKTsK
K3Nob3VsZEJlKCJpbWdkYXRhWzFdIiwgIjAiKTsKK3Nob3VsZEJlKCJpbWdkYXRhWzJdIiwgIjAi
KTsKK3Nob3VsZEJlKCJpbWdkYXRhWzRdIiwgIjAiKTsKK3Nob3VsZEJlKCJpbWdkYXRhWzVdIiwg
IjAiKTsKK3Nob3VsZEJlKCJpbWdkYXRhWzZdIiwgIjAiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3YzFmMjQ5
Li5mOWQ1NzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTItMTAtMzAgIEFybmF1
ZCBSZW5ldmllciAgPGEucmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBpbmNv
bnNpc3RlbmN5IGluIGRyYXdJbWFnZSB3aXRoIHRhcmdldCByZWN0IG5lZ2F0aXZlIGRpbWVuc2lv
bnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAw
MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1v
dmUgLTEsIC0xIHNwZWNpYWwgY2FzZSBpbiBkcmF3SW1hZ2UgYW5kIGRyYXdJbWFnZUJ1ZmZlci4g
UmVwbGFjZQorICAgICAgICBhbGwgLTEgLTEgYXJndW1lbnRzIGNhbGxzIHRvIHdpdGggdGhlIGNv
cnJlY3QgcmVjdGFuZ2xlIGRpbWVuc2lvbnMuCisKKyAgICAgICAgUmVtb3ZlIEZsb2F0UmVjdCgw
LCAwLCAtMSwgLTEpIGRlZmF1bHQgYXJndW1lbnQgZm9yIHNyY1JlY3QsIGFuZAorICAgICAgICBp
bnN0ZWFkLCBhZGQgbmV3IG92ZXJsb2FkZWQgZnVuY3Rpb25zIHRvIGNyZWF0ZSBhIEZsb2F0UmVj
dCBmcm9tIGltYWdlCisgICAgICAgIHNpemUuCisKKyAgICAgICAgUmVwbGFjZSAtMSAtMSBhcmd1
bWVudHMgY2FsbHMgaW4gRkVDb21wb3NpdGU6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZQorICAgICAg
ICB3aXRoIGNvcnJlY3QgcmVjdGFuZ2xlIGRpbWVuc2lvbnMuCisKKyAgICAgICAgUmVwbGFjZSBJ
bWFnZUdTdHJlYW1lciByZWN0IG1ldGhvZCAod2hpY2ggbWF5IHJldHVybiAtMSAtMSByZWN0YW5n
bGUpCisgICAgICAgIHdpdGggY3JvcFJlY3QgbWV0aG9kLCBhbmQgbWFrZSBjYWxsZXIgY2hlY2sg
Zm9yIHJlY3RhbmdsZSBlbXB0aW5lc3MuCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9kcmF3SW1h
Z2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlv
bi5qczoKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZSk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdl
QnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoK
KyAgICAgICAgKEdyYXBoaWNzQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbXBvc2l0ZTo6
cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvSW1hZ2VHU3RyZWFtZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlR1N0cmVhbWVy
OjpyZWN0KToKKwogMjAxMi0xMS0wOSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzNDEwMS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
Y3BwCmluZGV4IDJjYTBlNjUuLjM0MDRhMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtNDM5LDEyICs0MzksMTYg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdIaWdobGlnaHRGb3JUZXh0KGNvbnN0IEZvbnQm
IGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwKIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJ
bWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQ
b2ludCYgcCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51
bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKIHsKLSAgICBkcmF3SW1hZ2UoaW1hZ2Us
IHN0eWxlQ29sb3JTcGFjZSwgcCwgSW50UmVjdCgwLCAwLCAtMSwgLTEpLCBvcCwgc2hvdWxkUmVz
cGVjdEltYWdlT3JpZW50YXRpb24pOworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybjsK
KyAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgcCwgSW50UmVjdChJbnRQb2lu
dCgpLCBpbWFnZS0+c2l6ZSgpKSwgb3AsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsK
IH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9y
U3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiByLCBDb21wb3NpdGVPcGVyYXRv
ciBvcCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKIHsKLSAgICBkcmF3SW1hZ2UoaW1hZ2Us
IHN0eWxlQ29sb3JTcGFjZSwgciwgSW50UmVjdCgwLCAwLCAtMSwgLTEpLCBvcCwgc2hvdWxkUmVz
cGVjdEltYWdlT3JpZW50YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgaWYgKCFpbWFn
ZSkKKyAgICAgICAgcmV0dXJuOworICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNl
LCByLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdlLT5zaXplKCkpLCBvcCwgc2hvdWxkUmVzcGVj
dEltYWdlT3JpZW50YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgY29uc3QgSW50UG9pbnQmIGRlc3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBv
c2l0ZU9wZXJhdG9yIG9wLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVj
dEltYWdlT3JpZW50YXRpb24pCkBAIC00NTcsMjYgKzQ2MSwxOCBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2Us
IGNvbnN0CiAgICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIEZsb2F0UmVjdChk
ZXN0KSwgc3JjUmVjdCwgb3AsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dR
dWFsaXR5U2NhbGUpOwogfQogCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdl
KiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dCkKK3sKKyAgICBpZiAoIWltYWdlKQorICAgICAgICByZXR1cm47CisgICAgZHJhd0ltYWdlKGlt
YWdlLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3QsIEZsb2F0UmVjdChJbnRSZWN0KEludFBvaW50KCks
IGltYWdlLT5zaXplKCkpKSk7Cit9CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2Uo
SW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0LCBjb25zdCBGbG9hdFJlY3QmIHNyYywgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9v
bCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSB8fCAh
aW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZsb2F0IHRzdyA9IHNyYy53aWR0aCgpOwot
ICAgIGZsb2F0IHRzaCA9IHNyYy5oZWlnaHQoKTsKLSAgICBmbG9hdCB0dyA9IGRlc3Qud2lkdGgo
KTsKLSAgICBmbG9hdCB0aCA9IGRlc3QuaGVpZ2h0KCk7Ci0KLSAgICBpZiAodHN3ID09IC0xKQot
ICAgICAgICB0c3cgPSBpbWFnZS0+d2lkdGgoKTsKLSAgICBpZiAodHNoID09IC0xKQotICAgICAg
ICB0c2ggPSBpbWFnZS0+aGVpZ2h0KCk7Ci0KLSAgICBpZiAodHcgPT0gLTEpCi0gICAgICAgIHR3
ID0gaW1hZ2UtPndpZHRoKCk7Ci0gICAgaWYgKHRoID09IC0xKQotICAgICAgICB0aCA9IGltYWdl
LT5oZWlnaHQoKTsKLQogICAgIEludGVycG9sYXRpb25RdWFsaXR5IHByZXZpb3VzSW50ZXJwb2xh
dGlvblF1YWxpdHkgPSBJbnRlcnBvbGF0aW9uRGVmYXVsdDsKIAogICAgIGlmICh1c2VMb3dRdWFs
aXR5U2NhbGUpIHsKQEAgLTQ4OSw3ICs0ODUsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0CiAj
ZW5kaWYKICAgICB9CiAKLSAgICBpbWFnZS0+ZHJhdyh0aGlzLCBGbG9hdFJlY3QoZGVzdC5sb2Nh
dGlvbigpLCBGbG9hdFNpemUodHcsIHRoKSksIEZsb2F0UmVjdChzcmMubG9jYXRpb24oKSwgRmxv
YXRTaXplKHRzdywgdHNoKSksIHN0eWxlQ29sb3JTcGFjZSwgb3AsIHNob3VsZFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uKTsKKyAgICBpbWFnZS0+ZHJhdyh0aGlzLCBkZXN0LCBzcmMsIHN0eWxlQ29s
b3JTcGFjZSwgb3AsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKIAogICAgIGlmICh1
c2VMb3dRdWFsaXR5U2NhbGUpCiAgICAgICAgIHNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHko
cHJldmlvdXNJbnRlcnBvbGF0aW9uUXVhbGl0eSk7CkBAIC01MzIsMTIgKzUyOCwxNiBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNl
IHN0eWxlQ29sb3JTcGFjZSwgYwogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVm
ZmVyKEltYWdlQnVmZmVyKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0
IEludFBvaW50JiBwLCBDb21wb3NpdGVPcGVyYXRvciBvcCkKIHsKLSAgICBkcmF3SW1hZ2VCdWZm
ZXIoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgcCwgSW50UmVjdCgwLCAwLCAtMSwgLTEpLCBvcCk7
CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuOworICAgIGRyYXdJbWFnZUJ1ZmZlcihp
bWFnZSwgc3R5bGVDb2xvclNwYWNlLCBwLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdlLT5sb2dp
Y2FsU2l6ZSgpKSwgb3ApOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVm
ZmVyKEltYWdlQnVmZmVyKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0
IEludFJlY3QmIHIsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBib29sIHVzZUxvd1F1YWxpdHlTY2Fs
ZSkKIHsKLSAgICBkcmF3SW1hZ2VCdWZmZXIoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgciwgSW50
UmVjdCgwLCAwLCAtMSwgLTEpLCBvcCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKKyAgICBpZiAoIWlt
YWdlKQorICAgICAgICByZXR1cm47CisgICAgZHJhd0ltYWdlQnVmZmVyKGltYWdlLCBzdHlsZUNv
bG9yU3BhY2UsIHIsIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2UtPmxvZ2ljYWxTaXplKCkpLCBv
cCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJ
bWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNl
LCBjb25zdCBJbnRQb2ludCYgZGVzdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRl
T3BlcmF0b3Igb3ApCkBAIC01NTAsMjYgKzU1MCwxOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9y
UwogICAgIGRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBGbG9hdFJlY3Qo
ZGVzdCksIHNyY1JlY3QsIG9wLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCit2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBpbWFnZSwgQ29sb3JTcGFj
ZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdCkKK3sKKyAgICBpZiAoIWlt
YWdlKQorICAgICAgICByZXR1cm47CisgICAgZHJhd0ltYWdlQnVmZmVyKGltYWdlLCBzdHlsZUNv
bG9yU3BhY2UsIGRlc3QsIEZsb2F0UmVjdChJbnRSZWN0KEludFBvaW50KCksIGltYWdlLT5sb2dp
Y2FsU2l6ZSgpKSkpOworfQorCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVy
KEltYWdlQnVmZmVyKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdCwgY29uc3QgRmxvYXRSZWN0JiBzcmMsIENvbXBvc2l0ZU9wZXJhdG9yIG9w
LCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgp
IHx8ICFpbWFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZmxvYXQgdHN3ID0gc3JjLndpZHRo
KCk7Ci0gICAgZmxvYXQgdHNoID0gc3JjLmhlaWdodCgpOwotICAgIGZsb2F0IHR3ID0gZGVzdC53
aWR0aCgpOwotICAgIGZsb2F0IHRoID0gZGVzdC5oZWlnaHQoKTsKLQotICAgIGlmICh0c3cgPT0g
LTEpCi0gICAgICAgIHRzdyA9IGltYWdlLT5sb2dpY2FsU2l6ZSgpLndpZHRoKCk7Ci0gICAgaWYg
KHRzaCA9PSAtMSkKLSAgICAgICAgdHNoID0gaW1hZ2UtPmxvZ2ljYWxTaXplKCkuaGVpZ2h0KCk7
Ci0KLSAgICBpZiAodHcgPT0gLTEpCi0gICAgICAgIHR3ID0gaW1hZ2UtPmxvZ2ljYWxTaXplKCku
d2lkdGgoKTsKLSAgICBpZiAodGggPT0gLTEpCi0gICAgICAgIHRoID0gaW1hZ2UtPmxvZ2ljYWxT
aXplKCkuaGVpZ2h0KCk7Ci0KICAgICBpZiAodXNlTG93UXVhbGl0eVNjYWxlKSB7CiAgICAgICAg
IEludGVycG9sYXRpb25RdWFsaXR5IHByZXZpb3VzSW50ZXJwb2xhdGlvblF1YWxpdHkgPSBpbWFn
ZUludGVycG9sYXRpb25RdWFsaXR5KCk7CiAjaWYgUExBVEZPUk0oQ0hST01JVU0pCkBAIC01Nzgs
MTAgKzU3MCwxMCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdl
QnVmZmVyKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yUwogICAgICAgICAvLyBGSVhNRSAo
NDkwMDIpOiBTaG91bGQgYmUgSW50ZXJwb2xhdGlvbkxvdwogICAgICAgICBzZXRJbWFnZUludGVy
cG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25Ob25lKTsKICNlbmRpZgotICAgICAgICBpbWFn
ZS0+ZHJhdyh0aGlzLCBzdHlsZUNvbG9yU3BhY2UsIEZsb2F0UmVjdChkZXN0LmxvY2F0aW9uKCks
IEZsb2F0U2l6ZSh0dywgdGgpKSwgRmxvYXRSZWN0KHNyYy5sb2NhdGlvbigpLCBGbG9hdFNpemUo
dHN3LCB0c2gpKSwgb3AsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgICAgIGltYWdlLT5kcmF3
KHRoaXMsIHN0eWxlQ29sb3JTcGFjZSwgZGVzdCwgc3JjLCBvcCwgdXNlTG93UXVhbGl0eVNjYWxl
KTsKICAgICAgICAgc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShwcmV2aW91c0ludGVycG9s
YXRpb25RdWFsaXR5KTsKICAgICB9IGVsc2UKLSAgICAgICAgaW1hZ2UtPmRyYXcodGhpcywgc3R5
bGVDb2xvclNwYWNlLCBGbG9hdFJlY3QoZGVzdC5sb2NhdGlvbigpLCBGbG9hdFNpemUodHcsIHRo
KSksIEZsb2F0UmVjdChzcmMubG9jYXRpb24oKSwgRmxvYXRTaXplKHRzdywgdHNoKSksIG9wLCB1
c2VMb3dRdWFsaXR5U2NhbGUpOworICAgICAgICBpbWFnZS0+ZHJhdyh0aGlzLCBzdHlsZUNvbG9y
U3BhY2UsIGRlc3QsIHNyYywgb3AsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKICNpZiAhUExB
VEZPUk0oUVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5oCmluZGV4IGZlNjVmODguLjNhMTQ3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCkBAIC0zMTMsOCArMzEz
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSos
IENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiwgQ29tcG9zaXRlT3Bl
cmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0g
PSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9
IGZhbHNlKTsKICAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxl
Q29sb3JTcGFjZSwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgY29uc3QgSW50UmVjdCYgc3Jj
UmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBSZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbkVudW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKICAgICAg
ICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29u
c3QgSW50UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9w
ZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVt
ID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUg
PSBmYWxzZSk7Ci0gICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCA9IEZsb2F0UmVjdCgwLCAwLCAtMSwgLTEpLAotICAgICAgICAgICAgICAgICAgICAg
ICBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uRW51bSA9IERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wgdXNlTG93
UXVhbGl0eVNjYWxlID0gZmFsc2UpOworICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENv
bG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KTsKKyAg
ICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21w
b3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIFJlc3BlY3RJbWFnZU9yaWVudGF0
aW9uRW51bSA9IERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wgdXNlTG93UXVhbGl0
eVNjYWxlID0gZmFsc2UpOwogICAgICAgICB2b2lkIGRyYXdUaWxlZEltYWdlKEltYWdlKiwgQ29s
b3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0LCBjb25zdCBJ
bnRQb2ludCYgc3JjUG9pbnQsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLAogICAgICAgICAgICAg
ICAgICAgICAgICBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIGJvb2wg
dXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwogICAgICAgICB2b2lkIGRyYXdUaWxlZEltYWdl
KEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LApAQCAtMzI1LDggKzMyNSw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqLCBD
b2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UmVjdCYsIENvbXBvc2l0ZU9wZXJh
dG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxz
ZSk7CiAgICAgICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiwgQ29sb3JTcGFj
ZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIGNvbnN0IEludFJl
Y3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3Zlcik7CiAg
ICAgICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0LCBjb25zdCBJbnRSZWN0JiBzcmNS
ZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIGJvb2wgdXNlTG93
UXVhbGl0eVNjYWxlID0gZmFsc2UpOwotICAgICAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihJbWFn
ZUJ1ZmZlciosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QgPSBGbG9hdFJlY3QoMCwgMCwgLTEsIC0x
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21w
b3NpdGVTb3VyY2VPdmVyLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKKyAgICAg
ICAgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqLCBDb2xvclNwYWNlIHN0eWxlQ29s
b3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCk7CisgICAgICAgIHZvaWQgZHJhd0lt
YWdlQnVmZmVyKEltYWdlQnVmZmVyKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRl
T3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9
IGZhbHNlKTsKIAogICAgICAgICB2b2lkIHNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50
ZXJwb2xhdGlvblF1YWxpdHkpOwogICAgICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbWFnZUlu
dGVycG9sYXRpb25RdWFsaXR5KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCmluZGV4IDlkNTY2ZWQu
LmMxZjY0NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb21wb3NpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCkBAIC0yNzQsMTEgKzI3NCwxNSBAQCB2b2lkIEZF
Q29tcG9zaXRlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAgICAgICByZXR1cm47CiAgICAg
R3JhcGhpY3NDb250ZXh0KiBmaWx0ZXJDb250ZXh0ID0gcmVzdWx0SW1hZ2UtPmNvbnRleHQoKTsK
IAotICAgIEZsb2F0UmVjdCBzcmNSZWN0ID0gRmxvYXRSZWN0KDAsIDAsIC0xLCAtMSk7CisgICAg
SW1hZ2VCdWZmZXIqIGltZ0J1ZmZlciA9IGluLT5hc0ltYWdlQnVmZmVyKCk7CisgICAgSW1hZ2VC
dWZmZXIqIGltZ0J1ZmZlcjIgPSBpbjItPmFzSW1hZ2VCdWZmZXIoKTsKKyAgICBBU1NFUlQoaW1n
QnVmZmVyKTsKKyAgICBBU1NFUlQoaW1nQnVmZmVyMik7CisKICAgICBzd2l0Y2ggKG1fdHlwZSkg
ewogICAgIGNhc2UgRkVDT01QT1NJVEVfT1BFUkFUT1JfT1ZFUjoKLSAgICAgICAgZmlsdGVyQ29u
dGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGluMi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNlRGV2
aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3Qo
KSkpOwotICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW4tPmFzSW1hZ2VC
dWZmZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShp
bi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOworICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1h
Z2VCdWZmZXIoaW1nQnVmZmVyMiwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9m
SW5wdXRJbWFnZShpbjItPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKKyAgICAgICAgZmlsdGVyQ29u
dGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltZ0J1ZmZlciwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJh
d2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEZFQ09NUE9TSVRFX09QRVJBVE9SX0lOOiB7CiAgICAgICAgIC8v
IEFwcGxpZXMgb25seSB0byB0aGUgaW50ZXJzZWN0ZWQgcmVnaW9uLgpAQCAtMjkyLDIxICsyOTYs
MjEgQEAgdm9pZCBGRUNvbXBvc2l0ZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKCkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uUmVjdC55KCkgLSBpbi0+YWJz
b2x1dGVQYWludFJlY3QoKS55KCkpLCBkZXN0aW5hdGlvblJlY3Quc2l6ZSgpKTsKICAgICAgICAg
SW50UmVjdCBzb3VyY2UyUmVjdChJbnRQb2ludChkZXN0aW5hdGlvblJlY3QueCgpIC0gaW4yLT5h
YnNvbHV0ZVBhaW50UmVjdCgpLngoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkZXN0aW5hdGlvblJlY3QueSgpIC0gaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpLnkoKSks
IGRlc3RpbmF0aW9uUmVjdC5zaXplKCkpOwotICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1h
Z2VCdWZmZXIoaW4yLT5hc0ltYWdlQnVmZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRlc3Rp
bmF0aW9uUG9pbnQsIHNvdXJjZTJSZWN0KTsKLSAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0lt
YWdlQnVmZmVyKGluLT5hc0ltYWdlQnVmZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRlc3Rp
bmF0aW9uUG9pbnQsIHNvdXJjZVJlY3QsIENvbXBvc2l0ZVNvdXJjZUluKTsKKyAgICAgICAgZmls
dGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltZ0J1ZmZlcjIsIENvbG9yU3BhY2VEZXZpY2VS
R0IsIGRlc3RpbmF0aW9uUG9pbnQsIHNvdXJjZTJSZWN0KTsKKyAgICAgICAgZmlsdGVyQ29udGV4
dC0+ZHJhd0ltYWdlQnVmZmVyKGltZ0J1ZmZlciwgQ29sb3JTcGFjZURldmljZVJHQiwgZGVzdGlu
YXRpb25Qb2ludCwgc291cmNlUmVjdCwgQ29tcG9zaXRlU291cmNlSW4pOwogICAgICAgICBicmVh
azsKICAgICB9CiAgICAgY2FzZSBGRUNPTVBPU0lURV9PUEVSQVRPUl9PVVQ6Ci0gICAgICAgIGZp
bHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNw
YWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50
UmVjdCgpKSk7Ci0gICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbjItPmFz
SW1hZ2VCdWZmZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJ
bWFnZShpbjItPmFic29sdXRlUGFpbnRSZWN0KCkpLCBzcmNSZWN0LCBDb21wb3NpdGVEZXN0aW5h
dGlvbk91dCk7CisgICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWdCdWZm
ZXIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4tPmFi
c29sdXRlUGFpbnRSZWN0KCkpKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVm
ZmVyKGltZ0J1ZmZlcjIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0
SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSwgSW50UmVjdChJbnRQb2ludCgpLCBpbWdC
dWZmZXIyLT5sb2dpY2FsU2l6ZSgpKSwgQ29tcG9zaXRlRGVzdGluYXRpb25PdXQpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEZFQ09NUE9TSVRFX09QRVJBVE9SX0FUT1A6Ci0gICAgICAgIGZp
bHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbjItPmFzSW1hZ2VCdWZmZXIoKSwgQ29sb3JT
cGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29sdXRlUGFp
bnRSZWN0KCkpKTsKLSAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGluLT5h
c0ltYWdlQnVmZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0
SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpLCBzcmNSZWN0LCBDb21wb3NpdGVTb3VyY2VB
dG9wKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltZ0J1ZmZlcjIs
IENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4yLT5hYnNv
bHV0ZVBhaW50UmVjdCgpKSk7CisgICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZl
cihpbWdCdWZmZXIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0SW1h
Z2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpLCBJbnRSZWN0KEludFBvaW50KCksIGltZ0J1ZmZl
ci0+bG9naWNhbFNpemUoKSksIENvbXBvc2l0ZVNvdXJjZUF0b3ApOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEZFQ09NUE9TSVRFX09QRVJBVE9SX1hPUjoKLSAgICAgICAgZmlsdGVyQ29udGV4
dC0+ZHJhd0ltYWdlQnVmZmVyKGluMi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNlRGV2aWNl
UkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSkp
OwotICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW4tPmFzSW1hZ2VCdWZm
ZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+
YWJzb2x1dGVQYWludFJlY3QoKSksIHNyY1JlY3QsIENvbXBvc2l0ZVhPUik7CisgICAgICAgIGZp
bHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWdCdWZmZXIyLCBDb2xvclNwYWNlRGV2aWNl
UkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSkp
OworICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1nQnVmZmVyLCBDb2xv
clNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBh
aW50UmVjdCgpKSwgSW50UmVjdChJbnRQb2ludCgpLCBpbWdCdWZmZXItPmxvZ2ljYWxTaXplKCkp
LCBDb21wb3NpdGVYT1IpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBi
cmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9JbWFnZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmgKaW5kZXggODNiZGZlMi4uNjhmOGZhMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0
cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0ltYWdlR1N0cmVhbWVyLmgKQEAgLTUxLDkgKzUxLDggQEAgY2xhc3MgSW1hZ2VHU3RyZWFtZXIg
OiBwdWJsaWMgUmVmQ291bnRlZDxJbWFnZUdTdHJlYW1lcj4gewogICAgICAgICB7CiAgICAgICAg
ICAgICBpZiAoIW1fY3JvcFJlY3QuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBG
bG9hdFJlY3QobV9jcm9wUmVjdCk7Ci0KLSAgICAgICAgICAgIC8vIERlZmF1bHQgcmVjdGFuZ2xl
IHVzZWQgYnkgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKS4KLSAgICAgICAgICAgIHJldHVy
biBGbG9hdFJlY3QoMCwgMCwgLTEsIC0xKTsKKyAgICAgICAgICAgIEFTU0VSVChtX2ltYWdlKTsK
KyAgICAgICAgICAgIHJldHVybiBGbG9hdFJlY3QoMCwgMCwgbV9pbWFnZS0+c2l6ZSgpLndpZHRo
KCksIG1faW1hZ2UtPnNpemUoKS5oZWlnaHQoKSk7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174523</attachid>
            <date>2012-11-15 14:51:11 -0800</date>
            <delta_ts>2012-12-11 15:25:35 -0800</delta_ts>
            <desc>The performance test show no performance regression (and no improvement also) with the patch</desc>
            <filename>bug-100026-20121115144906.patch</filename>
            <type>text/plain</type>
            <size>20732</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2MxZjI0OWExYjIwMDUz
NmEwZDI4OTgzZTJlNTRlYTZhNTE1YzU2YS4uZjlkNTcwZDMxM2Q3YWIwOGE1MzdlZjQ2MThhY2Y3
N2QxNjM5MmNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTEwLTMwICBBcm5h
dWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgaW5j
b25zaXN0ZW5jeSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJnZXQgcmVjdCBuZWdhdGl2ZSBkaW1lbnNp
b25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAw
MDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIC0xLCAtMSBzcGVjaWFsIGNhc2UgaW4gZHJhd0ltYWdlIGFuZCBkcmF3SW1hZ2VCdWZmZXIu
IFJlcGxhY2UKKyAgICAgICAgYWxsIC0xIC0xIGFyZ3VtZW50cyBjYWxscyB0byB3aXRoIHRoZSBj
b3JyZWN0IHJlY3RhbmdsZSBkaW1lbnNpb25zLgorCisgICAgICAgIFJlbW92ZSBGbG9hdFJlY3Qo
MCwgMCwgLTEsIC0xKSBkZWZhdWx0IGFyZ3VtZW50IGZvciBzcmNSZWN0LCBhbmQKKyAgICAgICAg
aW5zdGVhZCwgYWRkIG5ldyBvdmVybG9hZGVkIGZ1bmN0aW9ucyB0byBjcmVhdGUgYSBGbG9hdFJl
Y3QgZnJvbSBpbWFnZQorICAgICAgICBzaXplLgorCisgICAgICAgIFJlcGxhY2UgLTEgLTEgYXJn
dW1lbnRzIGNhbGxzIGluIEZFQ29tcG9zaXRlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUKKyAgICAg
ICAgd2l0aCBjb3JyZWN0IHJlY3RhbmdsZSBkaW1lbnNpb25zLgorCisgICAgICAgIFJlcGxhY2Ug
SW1hZ2VHU3RyZWFtZXIgcmVjdCBtZXRob2QgKHdoaWNoIG1heSByZXR1cm4gLTEgLTEgcmVjdGFu
Z2xlKQorICAgICAgICB3aXRoIGNyb3BSZWN0IG1ldGhvZCwgYW5kIG1ha2UgY2FsbGVyIGNoZWNr
IGZvciByZWN0YW5nbGUgZW1wdGluZXNzLgorCisgICAgICAgICogZmFzdC9jYW52YXMvZHJhd0lt
YWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRp
b24uanM6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFn
ZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6
CisgICAgICAgIChHcmFwaGljc0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVDb21wb3NpdGU6
OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUdTdHJlYW1l
cjo6cmVjdCk6CisKIDIwMTItMTEtMDkgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzQxMDEuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
LmNwcAppbmRleCAyY2EwZTY1ZjYzNTEyZWY1NWU5Y2EyZWY4ZTJlZDk1MWZkYjkxMjk2Li4zNDA0
YTA4ZGQwZmM0ZGVkNTBkYWNiYjY5YWE4NzBmNDg1MDJhOTY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTQzOSwx
MiArNDM5LDE2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SGlnaGxpZ2h0Rm9yVGV4dChj
b25zdCBGb250JiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4sCiAKIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwg
Y29uc3QgSW50UG9pbnQmIHAsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCiB7Ci0gICAgZHJhd0lt
YWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHAsIEludFJlY3QoMCwgMCwgLTEsIC0xKSwgb3As
IHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKKyAgICBpZiAoIWltYWdlKQorICAgICAg
ICByZXR1cm47CisgICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHAsIEludFJl
Y3QoSW50UG9pbnQoKSwgaW1hZ2UtPnNpemUoKSksIG9wLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGlt
YWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UmVjdCYgciwgQ29tcG9z
aXRlT3BlcmF0b3Igb3AsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7Ci0gICAgZHJhd0lt
YWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHIsIEludFJlY3QoMCwgMCwgLTEsIC0xKSwgb3As
IHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAg
IGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybjsKKyAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxl
Q29sb3JTcGFjZSwgciwgSW50UmVjdChJbnRQb2ludCgpLCBpbWFnZS0+c2l6ZSgpKSwgb3AsIHNo
b3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCiB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBz
dHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiBkZXN0LCBjb25zdCBJbnRSZWN0JiBzcmNS
ZWN0LCBDb21wb3NpdGVPcGVyYXRvciBvcCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNo
b3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQpAQCAtNDU3LDI2ICs0NjEsMTggQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVD
b2xvclNwYWNlLCBjb25zdAogICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBG
bG9hdFJlY3QoZGVzdCksIHNyY1JlY3QsIG9wLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
biwgdXNlTG93UXVhbGl0eVNjYWxlKTsKIH0KIAordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJ
bWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3QpCit7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuOworICAgIGRy
YXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBkZXN0LCBGbG9hdFJlY3QoSW50UmVjdChJ
bnRQb2ludCgpLCBpbWFnZS0+c2l6ZSgpKSkpOworfQorCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdCwgY29uc3QgRmxvYXRSZWN0JiBzcmMsIENvbXBvc2l0ZU9wZXJhdG9y
IG9wLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50
YXRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQogewogICAgIGlmIChwYWludGluZ0Rpc2Fi
bGVkKCkgfHwgIWltYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBmbG9hdCB0c3cgPSBzcmMu
d2lkdGgoKTsKLSAgICBmbG9hdCB0c2ggPSBzcmMuaGVpZ2h0KCk7Ci0gICAgZmxvYXQgdHcgPSBk
ZXN0LndpZHRoKCk7Ci0gICAgZmxvYXQgdGggPSBkZXN0LmhlaWdodCgpOwotCi0gICAgaWYgKHRz
dyA9PSAtMSkKLSAgICAgICAgdHN3ID0gaW1hZ2UtPndpZHRoKCk7Ci0gICAgaWYgKHRzaCA9PSAt
MSkKLSAgICAgICAgdHNoID0gaW1hZ2UtPmhlaWdodCgpOwotCi0gICAgaWYgKHR3ID09IC0xKQot
ICAgICAgICB0dyA9IGltYWdlLT53aWR0aCgpOwotICAgIGlmICh0aCA9PSAtMSkKLSAgICAgICAg
dGggPSBpbWFnZS0+aGVpZ2h0KCk7Ci0KICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBwcmV2aW91
c0ludGVycG9sYXRpb25RdWFsaXR5ID0gSW50ZXJwb2xhdGlvbkRlZmF1bHQ7CiAKICAgICBpZiAo
dXNlTG93UXVhbGl0eVNjYWxlKSB7CkBAIC00ODksNyArNDg1LDcgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNl
LCBjb25zdAogI2VuZGlmCiAgICAgfQogCi0gICAgaW1hZ2UtPmRyYXcodGhpcywgRmxvYXRSZWN0
KGRlc3QubG9jYXRpb24oKSwgRmxvYXRTaXplKHR3LCB0aCkpLCBGbG9hdFJlY3Qoc3JjLmxvY2F0
aW9uKCksIEZsb2F0U2l6ZSh0c3csIHRzaCkpLCBzdHlsZUNvbG9yU3BhY2UsIG9wLCBzaG91bGRS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CisgICAgaW1hZ2UtPmRyYXcodGhpcywgZGVzdCwgc3Jj
LCBzdHlsZUNvbG9yU3BhY2UsIG9wLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CiAK
ICAgICBpZiAodXNlTG93UXVhbGl0eVNjYWxlKQogICAgICAgICBzZXRJbWFnZUludGVycG9sYXRp
b25RdWFsaXR5KHByZXZpb3VzSW50ZXJwb2xhdGlvblF1YWxpdHkpOwpAQCAtNTMyLDEyICs1Mjgs
MTYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxlZEltYWdlKEltYWdlKiBpbWFnZSwg
Q29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGMKIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNw
YWNlLCBjb25zdCBJbnRQb2ludCYgcCwgQ29tcG9zaXRlT3BlcmF0b3Igb3ApCiB7Ci0gICAgZHJh
d0ltYWdlQnVmZmVyKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHAsIEludFJlY3QoMCwgMCwgLTEs
IC0xKSwgb3ApOworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybjsKKyAgICBkcmF3SW1h
Z2VCdWZmZXIoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgcCwgSW50UmVjdChJbnRQb2ludCgpLCBp
bWFnZS0+bG9naWNhbFNpemUoKSksIG9wKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNw
YWNlLCBjb25zdCBJbnRSZWN0JiByLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgYm9vbCB1c2VMb3dR
dWFsaXR5U2NhbGUpCiB7Ci0gICAgZHJhd0ltYWdlQnVmZmVyKGltYWdlLCBzdHlsZUNvbG9yU3Bh
Y2UsIHIsIEludFJlY3QoMCwgMCwgLTEsIC0xKSwgb3AsIHVzZUxvd1F1YWxpdHlTY2FsZSk7Cisg
ICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuOworICAgIGRyYXdJbWFnZUJ1ZmZlcihpbWFn
ZSwgc3R5bGVDb2xvclNwYWNlLCByLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdlLT5sb2dpY2Fs
U2l6ZSgpKSwgb3AsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxl
Q29sb3JTcGFjZSwgY29uc3QgSW50UG9pbnQmIGRlc3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3Qs
IENvbXBvc2l0ZU9wZXJhdG9yIG9wKQpAQCAtNTUwLDI2ICs1NTAsMTggQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ug
c3R5bGVDb2xvclMKICAgICBkcmF3SW1hZ2VCdWZmZXIoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwg
RmxvYXRSZWN0KGRlc3QpLCBzcmNSZWN0LCBvcCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKIH0KIAor
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2Us
IENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3QpCit7Cisg
ICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuOworICAgIGRyYXdJbWFnZUJ1ZmZlcihpbWFn
ZSwgc3R5bGVDb2xvclNwYWNlLCBkZXN0LCBGbG9hdFJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBp
bWFnZS0+bG9naWNhbFNpemUoKSkpKTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJ
bWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBDb21wb3NpdGVP
cGVyYXRvciBvcCwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7CiAgICAgaWYgKHBhaW50aW5n
RGlzYWJsZWQoKSB8fCAhaW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZsb2F0IHRzdyA9
IHNyYy53aWR0aCgpOwotICAgIGZsb2F0IHRzaCA9IHNyYy5oZWlnaHQoKTsKLSAgICBmbG9hdCB0
dyA9IGRlc3Qud2lkdGgoKTsKLSAgICBmbG9hdCB0aCA9IGRlc3QuaGVpZ2h0KCk7Ci0KLSAgICBp
ZiAodHN3ID09IC0xKQotICAgICAgICB0c3cgPSBpbWFnZS0+bG9naWNhbFNpemUoKS53aWR0aCgp
OwotICAgIGlmICh0c2ggPT0gLTEpCi0gICAgICAgIHRzaCA9IGltYWdlLT5sb2dpY2FsU2l6ZSgp
LmhlaWdodCgpOwotCi0gICAgaWYgKHR3ID09IC0xKQotICAgICAgICB0dyA9IGltYWdlLT5sb2dp
Y2FsU2l6ZSgpLndpZHRoKCk7Ci0gICAgaWYgKHRoID09IC0xKQotICAgICAgICB0aCA9IGltYWdl
LT5sb2dpY2FsU2l6ZSgpLmhlaWdodCgpOwotCiAgICAgaWYgKHVzZUxvd1F1YWxpdHlTY2FsZSkg
ewogICAgICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBwcmV2aW91c0ludGVycG9sYXRpb25RdWFs
aXR5ID0gaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSgpOwogI2lmIFBMQVRGT1JNKENIUk9NSVVN
KQpAQCAtNTc4LDEwICs1NzAsMTAgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1
ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclMKICAgICAgICAg
Ly8gRklYTUUgKDQ5MDAyKTogU2hvdWxkIGJlIEludGVycG9sYXRpb25Mb3cKICAgICAgICAgc2V0
SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uTm9uZSk7CiAjZW5kaWYKLSAg
ICAgICAgaW1hZ2UtPmRyYXcodGhpcywgc3R5bGVDb2xvclNwYWNlLCBGbG9hdFJlY3QoZGVzdC5s
b2NhdGlvbigpLCBGbG9hdFNpemUodHcsIHRoKSksIEZsb2F0UmVjdChzcmMubG9jYXRpb24oKSwg
RmxvYXRTaXplKHRzdywgdHNoKSksIG9wLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAgICAgICBp
bWFnZS0+ZHJhdyh0aGlzLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3QsIHNyYywgb3AsIHVzZUxvd1F1
YWxpdHlTY2FsZSk7CiAgICAgICAgIHNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkocHJldmlv
dXNJbnRlcnBvbGF0aW9uUXVhbGl0eSk7CiAgICAgfSBlbHNlCi0gICAgICAgIGltYWdlLT5kcmF3
KHRoaXMsIHN0eWxlQ29sb3JTcGFjZSwgRmxvYXRSZWN0KGRlc3QubG9jYXRpb24oKSwgRmxvYXRT
aXplKHR3LCB0aCkpLCBGbG9hdFJlY3Qoc3JjLmxvY2F0aW9uKCksIEZsb2F0U2l6ZSh0c3csIHRz
aCkpLCBvcCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKKyAgICAgICAgaW1hZ2UtPmRyYXcodGhpcywg
c3R5bGVDb2xvclNwYWNlLCBkZXN0LCBzcmMsIG9wLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQog
CiAjaWYgIVBMQVRGT1JNKFFUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCBmZTY1Zjg4NjBiNDgwYTE0NmJmYWE1ODVmMjIx
NjMyNzExNWUyN2UwLi4zYTE0N2I0NGJkZDVmZTE5ZWM5ZjAzNDhhMTQzZTUwYTU0OWIxMzc1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuaApAQCAtMzEzLDggKzMxMyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9p
ZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50
UmVjdCYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgUmVzcGVjdElt
YWdlT3JpZW50YXRpb25FbnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1
c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CiAgICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdl
KiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQs
IGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291
cmNlT3ZlciwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbik7CiAgICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBz
dHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0LCBjb25zdCBJbnRSZWN0JiBz
cmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wg
dXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwotICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFn
ZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QgPSBGbG9hdFJlY3QoMCwgMCwgLTEsIC0xKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VP
dmVyLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKKyAgICAgICAgdm9pZCBk
cmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCk7CisgICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFj
ZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
LCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKICAgICAgICAgdm9pZCBkcmF3VGls
ZWRJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgSW50UG9pbnQmIHNyY1BvaW50LCBjb25zdCBJbnRTaXplJiB0aWxl
U2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3Np
dGVTb3VyY2VPdmVyLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKICAgICAgICAg
dm9pZCBkcmF3VGlsZWRJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBj
b25zdCBJbnRSZWN0JiBkZXN0UmVjdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwKQEAgLTMyNSw4
ICszMjUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZHJhd0ltYWdlQnVm
ZmVyKEltYWdlQnVmZmVyKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJl
Y3QmLCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIGJvb2wgdXNlTG93
UXVhbGl0eVNjYWxlID0gZmFsc2UpOwogICAgICAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihJbWFn
ZUJ1ZmZlciosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgZGVz
dFBvaW50LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBv
c2l0ZVNvdXJjZU92ZXIpOwogICAgICAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZl
ciosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgSW50UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3Vy
Y2VPdmVyLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKLSAgICAgICAgdm9pZCBk
cmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0ID0gRmxv
YXRSZWN0KDAsIDAsIC0xLCAtMSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbXBv
c2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgYm9vbCB1c2VMb3dRdWFsaXR5U2Nh
bGUgPSBmYWxzZSk7CisgICAgICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiwg
Q29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpOwor
ICAgICAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciosIENvbG9yU3BhY2Ugc3R5
bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgYm9vbCB1
c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CiAKICAgICAgICAgdm9pZCBzZXRJbWFnZUludGVy
cG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25RdWFsaXR5KTsKICAgICAgICAgSW50ZXJwb2xh
dGlvblF1YWxpdHkgaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRl
LmNwcAppbmRleCA5ZDU2NmVkOTIzZDk1YWQzNDQzMTcxYTczMGE5MGNkZTM5Y2FjZjI4Li5jMWY2
NDQzODk3YjA5MTNkNzdiNTczY2YyMzJiZGM2NjBlYWNkOWY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcApA
QCAtMjc0LDExICsyNzQsMTUgQEAgdm9pZCBGRUNvbXBvc2l0ZTo6cGxhdGZvcm1BcHBseVNvZnR3
YXJlKCkKICAgICAgICAgcmV0dXJuOwogICAgIEdyYXBoaWNzQ29udGV4dCogZmlsdGVyQ29udGV4
dCA9IHJlc3VsdEltYWdlLT5jb250ZXh0KCk7CiAKLSAgICBGbG9hdFJlY3Qgc3JjUmVjdCA9IEZs
b2F0UmVjdCgwLCAwLCAtMSwgLTEpOworICAgIEltYWdlQnVmZmVyKiBpbWdCdWZmZXIgPSBpbi0+
YXNJbWFnZUJ1ZmZlcigpOworICAgIEltYWdlQnVmZmVyKiBpbWdCdWZmZXIyID0gaW4yLT5hc0lt
YWdlQnVmZmVyKCk7CisgICAgQVNTRVJUKGltZ0J1ZmZlcik7CisgICAgQVNTRVJUKGltZ0J1ZmZl
cjIpOworCiAgICAgc3dpdGNoIChtX3R5cGUpIHsKICAgICBjYXNlIEZFQ09NUE9TSVRFX09QRVJB
VE9SX09WRVI6Ci0gICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbjItPmFz
SW1hZ2VCdWZmZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJ
bWFnZShpbjItPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKLSAgICAgICAgZmlsdGVyQ29udGV4dC0+
ZHJhd0ltYWdlQnVmZmVyKGluLT5hc0ltYWdlQnVmZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0Is
IGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKKyAg
ICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltZ0J1ZmZlcjIsIENvbG9yU3Bh
Y2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50
UmVjdCgpKSk7CisgICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWdCdWZm
ZXIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4tPmFi
c29sdXRlUGFpbnRSZWN0KCkpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGRUNPTVBPU0lU
RV9PUEVSQVRPUl9JTjogewogICAgICAgICAvLyBBcHBsaWVzIG9ubHkgdG8gdGhlIGludGVyc2Vj
dGVkIHJlZ2lvbi4KQEAgLTI5MiwyMSArMjk2LDIxIEBAIHZvaWQgRkVDb21wb3NpdGU6OnBsYXRm
b3JtQXBwbHlTb2Z0d2FyZSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZXN0aW5hdGlvblJlY3QueSgpIC0gaW4tPmFic29sdXRlUGFpbnRSZWN0KCkueSgpKSwgZGVzdGlu
YXRpb25SZWN0LnNpemUoKSk7CiAgICAgICAgIEludFJlY3Qgc291cmNlMlJlY3QoSW50UG9pbnQo
ZGVzdGluYXRpb25SZWN0LngoKSAtIGluMi0+YWJzb2x1dGVQYWludFJlY3QoKS54KCksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25SZWN0LnkoKSAtIGlu
Mi0+YWJzb2x1dGVQYWludFJlY3QoKS55KCkpLCBkZXN0aW5hdGlvblJlY3Quc2l6ZSgpKTsKLSAg
ICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGluMi0+YXNJbWFnZUJ1ZmZlcigp
LCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkZXN0aW5hdGlvblBvaW50LCBzb3VyY2UyUmVjdCk7Ci0g
ICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbi0+YXNJbWFnZUJ1ZmZlcigp
LCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkZXN0aW5hdGlvblBvaW50LCBzb3VyY2VSZWN0LCBDb21w
b3NpdGVTb3VyY2VJbik7CisgICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihp
bWdCdWZmZXIyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkZXN0aW5hdGlvblBvaW50LCBzb3VyY2Uy
UmVjdCk7CisgICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWdCdWZmZXIs
IENvbG9yU3BhY2VEZXZpY2VSR0IsIGRlc3RpbmF0aW9uUG9pbnQsIHNvdXJjZVJlY3QsIENvbXBv
c2l0ZVNvdXJjZUluKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgRkVDT01QT1NJ
VEVfT1BFUkFUT1JfT1VUOgotICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIo
aW4tPmFzSW1hZ2VCdWZmZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9m
SW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOwotICAgICAgICBmaWx0ZXJDb250
ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW4yLT5hc0ltYWdlQnVmZmVyKCksIENvbG9yU3BhY2VEZXZp
Y2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgp
KSwgc3JjUmVjdCwgQ29tcG9zaXRlRGVzdGluYXRpb25PdXQpOworICAgICAgICBmaWx0ZXJDb250
ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1nQnVmZmVyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3
aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7CisgICAgICAg
IGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWdCdWZmZXIyLCBDb2xvclNwYWNlRGV2
aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3Qo
KSksIEludFJlY3QoSW50UG9pbnQoKSwgaW1nQnVmZmVyMi0+bG9naWNhbFNpemUoKSksIENvbXBv
c2l0ZURlc3RpbmF0aW9uT3V0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGRUNPTVBPU0lU
RV9PUEVSQVRPUl9BVE9QOgotICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIo
aW4yLT5hc0ltYWdlQnVmZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25P
ZklucHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7Ci0gICAgICAgIGZpbHRlckNv
bnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNlRGV2
aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgp
KSwgc3JjUmVjdCwgQ29tcG9zaXRlU291cmNlQXRvcCk7CisgICAgICAgIGZpbHRlckNvbnRleHQt
PmRyYXdJbWFnZUJ1ZmZlcihpbWdCdWZmZXIyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5n
UmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOworICAgICAgICBm
aWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1nQnVmZmVyLCBDb2xvclNwYWNlRGV2aWNl
UkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSwg
SW50UmVjdChJbnRQb2ludCgpLCBpbWdCdWZmZXItPmxvZ2ljYWxTaXplKCkpLCBDb21wb3NpdGVT
b3VyY2VBdG9wKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGRUNPTVBPU0lURV9PUEVSQVRP
Ul9YT1I6Ci0gICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbjItPmFzSW1h
Z2VCdWZmZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFn
ZShpbjItPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKLSAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJh
d0ltYWdlQnVmZmVyKGluLT5hc0ltYWdlQnVmZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRy
YXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpLCBzcmNSZWN0
LCBDb21wb3NpdGVYT1IpOworICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIo
aW1nQnVmZmVyMiwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFn
ZShpbjItPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJh
d0ltYWdlQnVmZmVyKGltZ0J1ZmZlciwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lv
bk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSksIEludFJlY3QoSW50UG9pbnQo
KSwgaW1nQnVmZmVyLT5sb2dpY2FsU2l6ZSgpKSwgQ29tcG9zaXRlWE9SKTsKICAgICAgICAgYnJl
YWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lci5oCmlu
ZGV4IDgzYmRmZTJiNzIyNjhiMDI4ZTczZmQ4NGQ3M2RjMmI0MGIwOTBmNDMuLjY4ZjhmYTFiNTlm
ZmI2MWZlNzQ1ODliYzc2Y2E1Nzc0ODdkZDczODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lci5oCkBA
IC01MSw5ICs1MSw4IEBAIGNsYXNzIEltYWdlR1N0cmVhbWVyIDogcHVibGljIFJlZkNvdW50ZWQ8
SW1hZ2VHU3RyZWFtZXI+IHsKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFtX2Nyb3BSZWN0
LmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gRmxvYXRSZWN0KG1fY3JvcFJlY3Qp
OwotCi0gICAgICAgICAgICAvLyBEZWZhdWx0IHJlY3RhbmdsZSB1c2VkIGJ5IEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0ltYWdlKCkuCi0gICAgICAgICAgICByZXR1cm4gRmxvYXRSZWN0KDAsIDAsIC0x
LCAtMSk7CisgICAgICAgICAgICBBU1NFUlQobV9pbWFnZSk7CisgICAgICAgICAgICByZXR1cm4g
RmxvYXRSZWN0KDAsIDAsIG1faW1hZ2UtPnNpemUoKS53aWR0aCgpLCBtX2ltYWdlLT5zaXplKCku
aGVpZ2h0KCkpOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVmOGRhOWE4OGZk
NDYyY2RkMzM5MDYyMTEwYmJhNmMzOWY5NmNmNDIuLjA2MDUzMzk2NjM4ZWQ1YzUxMTlkMDdlNjE4
ZTVmN2ZkMmRhOTNiOTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMC0yOSAgQXJuYXVk
IFJlbmV2aWVyICA8YS5yZW5ldmllckBzaXNhLnNhbXN1bmcuY29tPgorCisgICAgICAgIGluY29u
c2lzdGVuY3kgaW4gZHJhd0ltYWdlIHdpdGggdGFyZ2V0IHJlY3QgbmVnYXRpdmUgZGltZW5zaW9u
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDAy
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
IGRyYXdJbWFnZSBjaGVjayBmb3IgYSBkZXN0aW5hdGlvbiByZWN0YW5nbGUgd2l0aCAtMXB4Cisg
ICAgICAgIHdpZHRoL2hlaWdodC4gV2hlbiBkcmF3aW5nIHRvICgxLCAxLCAtMSwgLTEpIHJlY3Rh
bmdsZSwgZmlyc3QKKyAgICAgICAgKHRvcC1sZWZ0KSBwaXhlbCBzaG91bGQgaGF2ZSBiZWVuIGFu
ZCBiZWVuIHRoZSBvbmx5IG9uZSBkcmF3biBpbnRvLgorCisgICAgICAgICogZmFzdC9jYW52YXMv
ZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVz
dGluYXRpb24uanM6CisKIDIwMTItMTEtMDkgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYmFzZWxpbmVzIGNoYW5nZSAtIHJlbW92ZSBz
dHJheSBiYXNlbGluZXMgZm9yIHJlZnRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZl
LXNvdXJjZS1kZXN0aW5hdGlvbi1leHBlY3RlZC50eHQKaW5kZXggNzM4NTY4YjBjZTEyMjJlZjg0
YTQ4ZGNmZjA0MDcwZWJmMjViODBhNS4uZjQxYWM5MjM3MDViNzljYjQzODVhNjNmMTcwNmQyMjgx
NDgxNDA4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdp
dGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRp
b24tZXhwZWN0ZWQudHh0CkBAIC02LDYgKzYsMTIgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUK
IFBBU1MgaW1nZGF0YVs0XSBpcyAwCiBQQVNTIGltZ2RhdGFbNV0gaXMgMjU1CiBQQVNTIGltZ2Rh
dGFbNl0gaXMgMAorUEFTUyBpbWdkYXRhWzBdIGlzIDI1NQorUEFTUyBpbWdkYXRhWzFdIGlzIDAK
K1BBU1MgaW1nZGF0YVsyXSBpcyAwCitQQVNTIGltZ2RhdGFbNF0gaXMgMAorUEFTUyBpbWdkYXRh
WzVdIGlzIDAKK1BBU1MgaW1nZGF0YVs2XSBpcyAwCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi5qcyBiL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5h
dGlvbi5qcwppbmRleCAwYThhMDljMTUyMzU4MmNiYzE1YjFkNmFkNTUzNjA3YWQ0MmJmYWRkLi42
NzFmZDczYjZjNTYwNmQxZGU3NGQ1NzA3ZDcwMGM5MDY2NGFkYTAzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGlu
YXRpb24uanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdpdGgtbmVn
YXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLmpzCkBAIC0xOSwzICsxOSwxNiBAQCB2YXIgaW1nZGF0
YSA9IGltYWdlRGF0YS5kYXRhOwogc2hvdWxkQmUoImltZ2RhdGFbNF0iLCAiMCIpOwogc2hvdWxk
QmUoImltZ2RhdGFbNV0iLCAiMjU1Iik7CiBzaG91bGRCZSgiaW1nZGF0YVs2XSIsICIwIik7CisK
Ky8vIHRlc3Qgd2lkdGggb3IgaGVpZ2h0IC0xCitjYW52YXMuZmlsbFN0eWxlID0gJyMwMDAnOwor
Y2FudmFzLmZpbGxSZWN0KDAsIDAsIDEsIDIpOworY2FudmFzLmRyYXdJbWFnZShjYW52YXMyLCAw
LCAwLCAxLCAxLCAxLCAxLCAtMSwgLTEpOwordmFyIGltYWdlRGF0YSA9IGNhbnZhcy5nZXRJbWFn
ZURhdGEoMCwgMCwgMSwgMik7Cit2YXIgaW1nZGF0YSA9IGltYWdlRGF0YS5kYXRhOworc2hvdWxk
QmUoImltZ2RhdGFbMF0iLCAiMjU1Iik7CitzaG91bGRCZSgiaW1nZGF0YVsxXSIsICIwIik7Citz
aG91bGRCZSgiaW1nZGF0YVsyXSIsICIwIik7CitzaG91bGRCZSgiaW1nZGF0YVs0XSIsICIwIik7
CitzaG91bGRCZSgiaW1nZGF0YVs1XSIsICIwIik7CitzaG91bGRCZSgiaW1nZGF0YVs2XSIsICIw
Iik7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NhbnZhcy9kcmF3aW1hZ2UuaHRtbCBi
L1BlcmZvcm1hbmNlVGVzdHMvQ2FudmFzL2RyYXdpbWFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkZDQ3
OWMwM2ZkNTg3MTdlMWRhNjkyNzM2NGJkNjc2NDk3ZWNjZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0NhbnZhcy9kcmF3aW1hZ2UuaHRtbApAQCAtMCwwICsxLDIxIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKwordmFyIHNvdXJjZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImNhbnZhcyIpOworc291cmNlLndpZHRoID0gMzAwOworc291cmNlLmhlaWdodCA9IDE1
MDsKK3NvdXJjZS5nZXRDb250ZXh0KCIyZCIpLmZpbGxTdHlsZSA9ICdncmVlbic7Citzb3VyY2Uu
Z2V0Q29udGV4dCgiMmQiKS5maWxsUmVjdCgwLCAwLCBzb3VyY2Uud2lkdGgsIHNvdXJjZS5oZWln
aHQpOworCit2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Cit0
YXJnZXQud2lkdGggPSBzb3VyY2Uud2lkdGg7Cit0YXJnZXQuaGVpZ2h0ID0gc291cmNlLmhlaWdo
dDsKK3ZhciBjb250ZXh0ID0gdGFyZ2V0LmdldENvbnRleHQoIjJkIikKKworUGVyZlRlc3RSdW5u
ZXIubWVhc3VyZVJ1bnNQZXJTZWNvbmQoe3J1bjogZnVuY3Rpb24oKSB7CisgICAgY29udGV4dC5k
cmF3SW1hZ2Uoc291cmNlLCAwLCAwKTsgICAKK319KTsKKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZm
IC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cgYi9QZXJmb3JtYW5jZVRlc3RzL0No
YW5nZUxvZwppbmRleCA2NmFkMWJhZmJmNGIwMTdjYmQ1MGRlYWQxM2IyM2Q0ZWVjNjFiNDliLi5i
YjE4ZWIxYjhlY2MyZjk4MTMyMzVhNzczNGI3OTg1NTQ5MWIyYjMxIDEwMDY0NAotLS0gYS9QZXJm
b3JtYW5jZVRlc3RzL0NoYW5nZUxvZworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDEyLTExLTE1ICBBcm5hdWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVy
QHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgaW5jb25zaXN0ZW5jeSBpbiBkcmF3SW1hZ2Ug
d2l0aCB0YXJnZXQgcmVjdCBuZWdhdGl2ZSBkaW1lbnNpb25zLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDI2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3JlYXRlIGEgZHJhd0ltYWdlIHBlcmZvcm1h
bmNlIHRlc3QKKworICAgICAgICAqIENhbnZhcy9kcmF3aW1hZ2UuaHRtbDogQWRkZWQuCisKIDIw
MTItMTEtMDYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBET01J
bXBsZW1lbnRhdGlvbiBzaG91bGQgdXNlIFNjcmlwdFdyYXBwYWJsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178893</attachid>
            <date>2012-12-11 15:25:40 -0800</date>
            <delta_ts>2012-12-14 15:37:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100026-20121211152259.patch</filename>
            <type>text/plain</type>
            <size>20929</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzdjYmE4ZmU3ZGFhNTIz
ZTQ0NGMzODU5MzAxYjdiYjNhOTg4Yjg5NS4uNjVhMzVmNzIyNmVmNTEyYjA5OWE2YjJkYWY0Yzkx
NDJmOGM5MWY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTEyLTExICBBcm5h
dWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgaW5j
b25zaXN0ZW5jeSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJnZXQgcmVjdCBuZWdhdGl2ZSBkaW1lbnNp
b25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAw
MDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIC0xLCAtMSBzcGVjaWFsIGNhc2UgaW4gZHJhd0ltYWdlIGFuZCBkcmF3SW1hZ2VCdWZmZXIu
IFJlcGxhY2UKKyAgICAgICAgYWxsIC0xIC0xIGFyZ3VtZW50cyBjYWxscyB0byB3aXRoIHRoZSBj
b3JyZWN0IHJlY3RhbmdsZSBkaW1lbnNpb25zLgorCisgICAgICAgIFJlbW92ZSBGbG9hdFJlY3Qo
MCwgMCwgLTEsIC0xKSBkZWZhdWx0IGFyZ3VtZW50IGZvciBzcmNSZWN0LCBhbmQKKyAgICAgICAg
aW5zdGVhZCwgYWRkIG5ldyBvdmVybG9hZGVkIGZ1bmN0aW9ucyB0byBjcmVhdGUgYSBGbG9hdFJl
Y3QgZnJvbSBpbWFnZQorICAgICAgICBzaXplLgorCisgICAgICAgIFJlcGxhY2UgLTEgLTEgYXJn
dW1lbnRzIGNhbGxzIGluIEZFQ29tcG9zaXRlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUKKyAgICAg
ICAgd2l0aCBjb3JyZWN0IHJlY3RhbmdsZSBkaW1lbnNpb25zLgorCisgICAgICAgIFJlcGxhY2Ug
SW1hZ2VHU3RyZWFtZXIgcmVjdCBtZXRob2QgKHdoaWNoIG1heSByZXR1cm4gLTEgLTEgcmVjdGFu
Z2xlKQorICAgICAgICB3aXRoIGNyb3BSZWN0IG1ldGhvZCwgYW5kIG1ha2UgY2FsbGVyIGNoZWNr
IGZvciByZWN0YW5nbGUgZW1wdGluZXNzLgorCisgICAgICAgICogZmFzdC9jYW52YXMvZHJhd0lt
YWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRp
b24uanM6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFn
ZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6
CisgICAgICAgIChHcmFwaGljc0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVDb21wb3NpdGU6
OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUdTdHJlYW1l
cjo6cmVjdCk6CisKIDIwMTItMTItMDUgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJFR1JFU1NJT04ocjEyNjY4Myk6IFRhYmxlIGNlbGwgYXJlIGdldHRpbmcg
Ym9yZGVycyB3aGVuIHRoZSBzdHlsZSBkb2Vzbid0IG1lbnRpb24gYW55CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCBj
MjExNzNhZTJhMDViZTI0MmQ4N2QzZTQ1NjI4ZWZlYWEyYjY4NjlhLi5hYTcxZTJiZGE2ZjQyZjlj
MjNmOTEzNTQ3NWE5MGUzMDk2YzgzMjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTQ0OCwxMiArNDQ4LDE2IEBA
IHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SGlnaGxpZ2h0Rm9yVGV4dChjb25zdCBGb250JiBm
b250LCBjb25zdCBUZXh0UnVuJiBydW4sCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1h
Z2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UG9p
bnQmIHAsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0g
c2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCiB7Ci0gICAgZHJhd0ltYWdlKGltYWdlLCBz
dHlsZUNvbG9yU3BhY2UsIHAsIEludFJlY3QoMCwgMCwgLTEsIC0xKSwgb3AsIHNob3VsZFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uKTsKKyAgICBpZiAoIWltYWdlKQorICAgICAgICByZXR1cm47Cisg
ICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHAsIEludFJlY3QoSW50UG9pbnQo
KSwgaW1hZ2UtPnNpemUoKSksIG9wLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CiB9
CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNw
YWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UmVjdCYgciwgQ29tcG9zaXRlT3BlcmF0b3Ig
b3AsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRh
dGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7Ci0gICAgZHJhd0ltYWdlKGltYWdlLCBz
dHlsZUNvbG9yU3BhY2UsIHIsIEludFJlY3QoMCwgMCwgLTEsIC0xKSwgb3AsIHNob3VsZFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAgIGlmICghaW1hZ2Up
CisgICAgICAgIHJldHVybjsKKyAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwg
ciwgSW50UmVjdChJbnRQb2ludCgpLCBpbWFnZS0+c2l6ZSgpKSwgb3AsIHNob3VsZFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCiB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3Bh
Y2UsIGNvbnN0IEludFBvaW50JiBkZXN0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3Np
dGVPcGVyYXRvciBvcCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uKQpAQCAtNDY2LDI2ICs0NzAsMTggQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBj
b25zdAogICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBGbG9hdFJlY3QoZGVz
dCksIHNyY1JlY3QsIG9wLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgdXNlTG93UXVh
bGl0eVNjYWxlKTsKIH0KIAordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSog
aW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3Qp
Cit7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuOworICAgIGRyYXdJbWFnZShpbWFn
ZSwgc3R5bGVDb2xvclNwYWNlLCBkZXN0LCBGbG9hdFJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBp
bWFnZS0+c2l6ZSgpKSkpOworfQorCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKElt
YWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdCwgY29uc3QgRmxvYXRSZWN0JiBzcmMsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wg
dXNlTG93UXVhbGl0eVNjYWxlKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkgfHwgIWlt
YWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBmbG9hdCB0c3cgPSBzcmMud2lkdGgoKTsKLSAg
ICBmbG9hdCB0c2ggPSBzcmMuaGVpZ2h0KCk7Ci0gICAgZmxvYXQgdHcgPSBkZXN0LndpZHRoKCk7
Ci0gICAgZmxvYXQgdGggPSBkZXN0LmhlaWdodCgpOwotCi0gICAgaWYgKHRzdyA9PSAtMSkKLSAg
ICAgICAgdHN3ID0gaW1hZ2UtPndpZHRoKCk7Ci0gICAgaWYgKHRzaCA9PSAtMSkKLSAgICAgICAg
dHNoID0gaW1hZ2UtPmhlaWdodCgpOwotCi0gICAgaWYgKHR3ID09IC0xKQotICAgICAgICB0dyA9
IGltYWdlLT53aWR0aCgpOwotICAgIGlmICh0aCA9PSAtMSkKLSAgICAgICAgdGggPSBpbWFnZS0+
aGVpZ2h0KCk7Ci0KICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBwcmV2aW91c0ludGVycG9sYXRp
b25RdWFsaXR5ID0gSW50ZXJwb2xhdGlvbkRlZmF1bHQ7CiAKICAgICBpZiAodXNlTG93UXVhbGl0
eVNjYWxlKSB7CkBAIC00OTgsNyArNDk0LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJ
bWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdAogI2Vu
ZGlmCiAgICAgfQogCi0gICAgaW1hZ2UtPmRyYXcodGhpcywgRmxvYXRSZWN0KGRlc3QubG9jYXRp
b24oKSwgRmxvYXRTaXplKHR3LCB0aCkpLCBGbG9hdFJlY3Qoc3JjLmxvY2F0aW9uKCksIEZsb2F0
U2l6ZSh0c3csIHRzaCkpLCBzdHlsZUNvbG9yU3BhY2UsIG9wLCBzaG91bGRSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbik7CisgICAgaW1hZ2UtPmRyYXcodGhpcywgZGVzdCwgc3JjLCBzdHlsZUNvbG9y
U3BhY2UsIG9wLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CiAKICAgICBpZiAodXNl
TG93UXVhbGl0eVNjYWxlKQogICAgICAgICBzZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KHBy
ZXZpb3VzSW50ZXJwb2xhdGlvblF1YWxpdHkpOwpAQCAtNTQxLDEyICs1MzcsMTYgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdUaWxlZEltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBz
dHlsZUNvbG9yU3BhY2UsIGMKIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZl
cihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJ
bnRQb2ludCYgcCwgQ29tcG9zaXRlT3BlcmF0b3Igb3ApCiB7Ci0gICAgZHJhd0ltYWdlQnVmZmVy
KGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHAsIEludFJlY3QoMCwgMCwgLTEsIC0xKSwgb3ApOwor
ICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybjsKKyAgICBkcmF3SW1hZ2VCdWZmZXIoaW1h
Z2UsIHN0eWxlQ29sb3JTcGFjZSwgcCwgSW50UmVjdChJbnRQb2ludCgpLCBpbWFnZS0+bG9naWNh
bFNpemUoKSksIG9wKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZl
cihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJ
bnRSZWN0JiByLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUp
CiB7Ci0gICAgZHJhd0ltYWdlQnVmZmVyKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHIsIEludFJl
Y3QoMCwgMCwgLTEsIC0xKSwgb3AsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgaWYgKCFpbWFn
ZSkKKyAgICAgICAgcmV0dXJuOworICAgIGRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgc3R5bGVDb2xv
clNwYWNlLCByLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdlLT5sb2dpY2FsU2l6ZSgpKSwgb3As
IHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1h
Z2VCdWZmZXIoSW1hZ2VCdWZmZXIqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwg
Y29uc3QgSW50UG9pbnQmIGRlc3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9w
ZXJhdG9yIG9wKQpAQCAtNTU5LDI2ICs1NTksMTggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclMK
ICAgICBkcmF3SW1hZ2VCdWZmZXIoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgRmxvYXRSZWN0KGRl
c3QpLCBzcmNSZWN0LCBvcCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKIH0KIAordm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ug
c3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3QpCit7CisgICAgaWYgKCFpbWFn
ZSkKKyAgICAgICAgcmV0dXJuOworICAgIGRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgc3R5bGVDb2xv
clNwYWNlLCBkZXN0LCBGbG9hdFJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBpbWFnZS0+bG9naWNh
bFNpemUoKSkpKTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJ
bWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBDb21wb3NpdGVPcGVyYXRvciBvcCwg
Ym9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSB8
fCAhaW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZsb2F0IHRzdyA9IHNyYy53aWR0aCgp
OwotICAgIGZsb2F0IHRzaCA9IHNyYy5oZWlnaHQoKTsKLSAgICBmbG9hdCB0dyA9IGRlc3Qud2lk
dGgoKTsKLSAgICBmbG9hdCB0aCA9IGRlc3QuaGVpZ2h0KCk7Ci0KLSAgICBpZiAodHN3ID09IC0x
KQotICAgICAgICB0c3cgPSBpbWFnZS0+bG9naWNhbFNpemUoKS53aWR0aCgpOwotICAgIGlmICh0
c2ggPT0gLTEpCi0gICAgICAgIHRzaCA9IGltYWdlLT5sb2dpY2FsU2l6ZSgpLmhlaWdodCgpOwot
Ci0gICAgaWYgKHR3ID09IC0xKQotICAgICAgICB0dyA9IGltYWdlLT5sb2dpY2FsU2l6ZSgpLndp
ZHRoKCk7Ci0gICAgaWYgKHRoID09IC0xKQotICAgICAgICB0aCA9IGltYWdlLT5sb2dpY2FsU2l6
ZSgpLmhlaWdodCgpOwotCiAgICAgaWYgKHVzZUxvd1F1YWxpdHlTY2FsZSkgewogICAgICAgICBJ
bnRlcnBvbGF0aW9uUXVhbGl0eSBwcmV2aW91c0ludGVycG9sYXRpb25RdWFsaXR5ID0gaW1hZ2VJ
bnRlcnBvbGF0aW9uUXVhbGl0eSgpOwogI2lmIFBMQVRGT1JNKENIUk9NSVVNKQpAQCAtNTg3LDEw
ICs1NzksMTAgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1
ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclMKICAgICAgICAgLy8gRklYTUUgKDQ5
MDAyKTogU2hvdWxkIGJlIEludGVycG9sYXRpb25Mb3cKICAgICAgICAgc2V0SW1hZ2VJbnRlcnBv
bGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uTm9uZSk7CiAjZW5kaWYKLSAgICAgICAgaW1hZ2Ut
PmRyYXcodGhpcywgc3R5bGVDb2xvclNwYWNlLCBGbG9hdFJlY3QoZGVzdC5sb2NhdGlvbigpLCBG
bG9hdFNpemUodHcsIHRoKSksIEZsb2F0UmVjdChzcmMubG9jYXRpb24oKSwgRmxvYXRTaXplKHRz
dywgdHNoKSksIG9wLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAgICAgICBpbWFnZS0+ZHJhdyh0
aGlzLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3QsIHNyYywgb3AsIHVzZUxvd1F1YWxpdHlTY2FsZSk7
CiAgICAgICAgIHNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkocHJldmlvdXNJbnRlcnBvbGF0
aW9uUXVhbGl0eSk7CiAgICAgfSBlbHNlCi0gICAgICAgIGltYWdlLT5kcmF3KHRoaXMsIHN0eWxl
Q29sb3JTcGFjZSwgRmxvYXRSZWN0KGRlc3QubG9jYXRpb24oKSwgRmxvYXRTaXplKHR3LCB0aCkp
LCBGbG9hdFJlY3Qoc3JjLmxvY2F0aW9uKCksIEZsb2F0U2l6ZSh0c3csIHRzaCkpLCBvcCwgdXNl
TG93UXVhbGl0eVNjYWxlKTsKKyAgICAgICAgaW1hZ2UtPmRyYXcodGhpcywgc3R5bGVDb2xvclNw
YWNlLCBkZXN0LCBzcmMsIG9wLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCiAjaWYgIVBMQVRG
T1JNKFFUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQuaAppbmRleCA3MWIzYTBiYmRhYWNhMjAyNGIxNDhhMjMzYTQ4NjBkMTFjNGFkZjFh
Li45YzU3MTBkMDU4NWJjY2Q5MjBiN2RhZDMyZTg2OGYzNjlkY2FjY2U0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtMzIw
LDggKzMyMCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBkcmF3SW1hZ2Uo
SW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UmVjdCYsIENvbXBv
c2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgUmVzcGVjdEltYWdlT3JpZW50YXRp
b25FbnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5
U2NhbGUgPSBmYWxzZSk7CiAgICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFj
ZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIGNvbnN0IEludFJl
Y3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgUmVz
cGVjdEltYWdlT3JpZW50YXRpb25FbnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7
CiAgICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3Bh
Y2UsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21w
b3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIFJlc3BlY3RJbWFnZU9yaWVudGF0
aW9uRW51bSA9IERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wgdXNlTG93UXVhbGl0
eVNjYWxlID0gZmFsc2UpOwotICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3Bh
Y2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QgPSBGbG9hdFJlY3QoMCwgMCwgLTEsIC0xKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCBib29s
IHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKKyAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1h
Z2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCk7CisgICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9y
U3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbkVudW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCBib29sIHVzZUxv
d1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKICAgICAgICAgdm9pZCBkcmF3VGlsZWRJbWFnZShJbWFn
ZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgSW50UG9pbnQmIHNyY1BvaW50LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVy
LCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKICAgICAgICAgdm9pZCBkcmF3VGls
ZWRJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwKQEAgLTMzMiw4ICszMzIsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVm
ZmVyKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmLCBDb21wb3Np
dGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxl
ID0gZmFsc2UpOwogICAgICAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciosIENv
bG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBjb25z
dCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92
ZXIpOwogICAgICAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciosIENvbG9yU3Bh
Y2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCwgY29uc3QgSW50UmVj
dCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBib29s
IHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKLSAgICAgICAgdm9pZCBkcmF3SW1hZ2VCdWZm
ZXIoSW1hZ2VCdWZmZXIqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0ID0gRmxvYXRSZWN0KDAsIDAs
IC0xLCAtMSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbXBvc2l0ZU9wZXJhdG9y
ID0gQ29tcG9zaXRlU291cmNlT3ZlciwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7
CisgICAgICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiwgQ29sb3JTcGFjZSBz
dHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpOworICAgICAgICB2b2lk
IGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENv
bXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgYm9vbCB1c2VMb3dRdWFsaXR5
U2NhbGUgPSBmYWxzZSk7CiAKICAgICAgICAgdm9pZCBzZXRJbWFnZUludGVycG9sYXRpb25RdWFs
aXR5KEludGVycG9sYXRpb25RdWFsaXR5KTsKICAgICAgICAgSW50ZXJwb2xhdGlvblF1YWxpdHkg
aW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcAppbmRleCA5
ZDU2NmVkOTIzZDk1YWQzNDQzMTcxYTczMGE5MGNkZTM5Y2FjZjI4Li5jMWY2NDQzODk3YjA5MTNk
NzdiNTczY2YyMzJiZGM2NjBlYWNkOWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcApAQCAtMjc0LDExICsy
NzQsMTUgQEAgdm9pZCBGRUNvbXBvc2l0ZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKCkKICAgICAg
ICAgcmV0dXJuOwogICAgIEdyYXBoaWNzQ29udGV4dCogZmlsdGVyQ29udGV4dCA9IHJlc3VsdElt
YWdlLT5jb250ZXh0KCk7CiAKLSAgICBGbG9hdFJlY3Qgc3JjUmVjdCA9IEZsb2F0UmVjdCgwLCAw
LCAtMSwgLTEpOworICAgIEltYWdlQnVmZmVyKiBpbWdCdWZmZXIgPSBpbi0+YXNJbWFnZUJ1ZmZl
cigpOworICAgIEltYWdlQnVmZmVyKiBpbWdCdWZmZXIyID0gaW4yLT5hc0ltYWdlQnVmZmVyKCk7
CisgICAgQVNTRVJUKGltZ0J1ZmZlcik7CisgICAgQVNTRVJUKGltZ0J1ZmZlcjIpOworCiAgICAg
c3dpdGNoIChtX3R5cGUpIHsKICAgICBjYXNlIEZFQ09NUE9TSVRFX09QRVJBVE9SX09WRVI6Ci0g
ICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbjItPmFzSW1hZ2VCdWZmZXIo
KSwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFi
c29sdXRlUGFpbnRSZWN0KCkpKTsKLSAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVm
ZmVyKGluLT5hc0ltYWdlQnVmZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdp
b25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKKyAgICAgICAgZmlsdGVy
Q29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltZ0J1ZmZlcjIsIENvbG9yU3BhY2VEZXZpY2VSR0Is
IGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7Cisg
ICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWdCdWZmZXIsIENvbG9yU3Bh
Y2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRS
ZWN0KCkpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGRUNPTVBPU0lURV9PUEVSQVRPUl9J
TjogewogICAgICAgICAvLyBBcHBsaWVzIG9ubHkgdG8gdGhlIGludGVyc2VjdGVkIHJlZ2lvbi4K
QEAgLTI5MiwyMSArMjk2LDIxIEBAIHZvaWQgRkVDb21wb3NpdGU6OnBsYXRmb3JtQXBwbHlTb2Z0
d2FyZSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvblJl
Y3QueSgpIC0gaW4tPmFic29sdXRlUGFpbnRSZWN0KCkueSgpKSwgZGVzdGluYXRpb25SZWN0LnNp
emUoKSk7CiAgICAgICAgIEludFJlY3Qgc291cmNlMlJlY3QoSW50UG9pbnQoZGVzdGluYXRpb25S
ZWN0LngoKSAtIGluMi0+YWJzb2x1dGVQYWludFJlY3QoKS54KCksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25SZWN0LnkoKSAtIGluMi0+YWJzb2x1dGVQ
YWludFJlY3QoKS55KCkpLCBkZXN0aW5hdGlvblJlY3Quc2l6ZSgpKTsKLSAgICAgICAgZmlsdGVy
Q29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGluMi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNl
RGV2aWNlUkdCLCBkZXN0aW5hdGlvblBvaW50LCBzb3VyY2UyUmVjdCk7Ci0gICAgICAgIGZpbHRl
ckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNl
RGV2aWNlUkdCLCBkZXN0aW5hdGlvblBvaW50LCBzb3VyY2VSZWN0LCBDb21wb3NpdGVTb3VyY2VJ
bik7CisgICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWdCdWZmZXIyLCBD
b2xvclNwYWNlRGV2aWNlUkdCLCBkZXN0aW5hdGlvblBvaW50LCBzb3VyY2UyUmVjdCk7CisgICAg
ICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWdCdWZmZXIsIENvbG9yU3BhY2VE
ZXZpY2VSR0IsIGRlc3RpbmF0aW9uUG9pbnQsIHNvdXJjZVJlY3QsIENvbXBvc2l0ZVNvdXJjZUlu
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgRkVDT01QT1NJVEVfT1BFUkFUT1Jf
T1VUOgotICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW4tPmFzSW1hZ2VC
dWZmZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShp
bi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOwotICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1h
Z2VCdWZmZXIoaW4yLT5hc0ltYWdlQnVmZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdp
bmdSZWdpb25PZklucHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSwgc3JjUmVjdCwg
Q29tcG9zaXRlRGVzdGluYXRpb25PdXQpOworICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1h
Z2VCdWZmZXIoaW1nQnVmZmVyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJ
bnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7CisgICAgICAgIGZpbHRlckNvbnRl
eHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWdCdWZmZXIyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3
aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSksIEludFJlY3Qo
SW50UG9pbnQoKSwgaW1nQnVmZmVyMi0+bG9naWNhbFNpemUoKSksIENvbXBvc2l0ZURlc3RpbmF0
aW9uT3V0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGRUNPTVBPU0lURV9PUEVSQVRPUl9B
VE9QOgotICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW4yLT5hc0ltYWdl
QnVmZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2Uo
aW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7Ci0gICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJ
bWFnZUJ1ZmZlcihpbi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3
aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSwgc3JjUmVjdCwg
Q29tcG9zaXRlU291cmNlQXRvcCk7CisgICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1
ZmZlcihpbWdCdWZmZXIyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1
dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOworICAgICAgICBmaWx0ZXJDb250ZXh0
LT5kcmF3SW1hZ2VCdWZmZXIoaW1nQnVmZmVyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5n
UmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSwgSW50UmVjdChJbnRQ
b2ludCgpLCBpbWdCdWZmZXItPmxvZ2ljYWxTaXplKCkpLCBDb21wb3NpdGVTb3VyY2VBdG9wKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGRUNPTVBPU0lURV9PUEVSQVRPUl9YT1I6Ci0gICAg
ICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbjItPmFzSW1hZ2VCdWZmZXIoKSwg
Q29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29s
dXRlUGFpbnRSZWN0KCkpKTsKLSAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVy
KGluLT5hc0ltYWdlQnVmZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25P
ZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpLCBzcmNSZWN0LCBDb21wb3NpdGVY
T1IpOworICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1nQnVmZmVyMiwg
Q29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29s
dXRlUGFpbnRSZWN0KCkpKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVy
KGltZ0J1ZmZlciwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFn
ZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSksIEludFJlY3QoSW50UG9pbnQoKSwgaW1nQnVmZmVy
LT5sb2dpY2FsU2l6ZSgpKSwgQ29tcG9zaXRlWE9SKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVm
YXVsdDoKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lci5oCmluZGV4IDgzYmRmZTJi
NzIyNjhiMDI4ZTczZmQ4NGQ3M2RjMmI0MGIwOTBmNDMuLjY4ZjhmYTFiNTlmZmI2MWZlNzQ1ODli
Yzc2Y2E1Nzc0ODdkZDczODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lci5oCkBAIC01MSw5ICs1MSw4
IEBAIGNsYXNzIEltYWdlR1N0cmVhbWVyIDogcHVibGljIFJlZkNvdW50ZWQ8SW1hZ2VHU3RyZWFt
ZXI+IHsKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFtX2Nyb3BSZWN0LmlzRW1wdHkoKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gRmxvYXRSZWN0KG1fY3JvcFJlY3QpOwotCi0gICAgICAg
ICAgICAvLyBEZWZhdWx0IHJlY3RhbmdsZSB1c2VkIGJ5IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0lt
YWdlKCkuCi0gICAgICAgICAgICByZXR1cm4gRmxvYXRSZWN0KDAsIDAsIC0xLCAtMSk7CisgICAg
ICAgICAgICBBU1NFUlQobV9pbWFnZSk7CisgICAgICAgICAgICByZXR1cm4gRmxvYXRSZWN0KDAs
IDAsIG1faW1hZ2UtPnNpemUoKS53aWR0aCgpLCBtX2ltYWdlLT5zaXplKCkuaGVpZ2h0KCkpOwog
ICAgICAgICB9CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBhNmMwZjIxOWI2ZjMzYzczYmM1YTcy
NzlkNWU3MWZkODFjOTBhZDEuLjEzN2Y0ZTlkZjMxYjc3YTAzZThlMzZiODljYmZiMGZkMDQxMmM2
OGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMi0xMSAgQXJuYXVkIFJlbmV2aWVyICA8
YS5yZW5ldmllckBzaXNhLnNhbXN1bmcuY29tPgorCisgICAgICAgIGluY29uc2lzdGVuY3kgaW4g
ZHJhd0ltYWdlIHdpdGggdGFyZ2V0IHJlY3QgbmVnYXRpdmUgZGltZW5zaW9ucy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDAyNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIGRyYXdJbWFnZSBj
aGVjayBmb3IgYSBkZXN0aW5hdGlvbiByZWN0YW5nbGUgd2l0aCAtMXB4CisgICAgICAgIHdpZHRo
L2hlaWdodC4gV2hlbiBkcmF3aW5nIHRvICgxLCAxLCAtMSwgLTEpIHJlY3RhbmdsZSwgZmlyc3QK
KyAgICAgICAgKHRvcC1sZWZ0KSBwaXhlbCBzaG91bGQgaGF2ZSBiZWVuIGFuZCBiZWVuIHRoZSBv
bmx5IG9uZSBkcmF3biBpbnRvLgorCisgICAgICAgICogZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdp
dGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24uanM6
CisKIDIwMTItMTItMDUgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBbUXRdIFJFR1JFU1NJT046IDIgdGVzdHMgc3RhcnRlZCB0byBmYWlsIHdpdGggbmV3
ZXIgUXQ1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0
aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLWV4
cGVjdGVkLnR4dAppbmRleCA3Mzg1NjhiMGNlMTIyMmVmODRhNDhkY2ZmMDQwNzBlYmYyNWI4MGE1
Li5mNDFhYzkyMzcwNWI3OWNiNDM4NWE2M2YxNzA2ZDIyODE0ODE0MDg5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVz
dGluYXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2RyYXdJ
bWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi1leHBlY3RlZC50eHQKQEAgLTYs
NiArNiwxMiBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogUEFTUyBpbWdkYXRhWzRdIGlzIDAK
IFBBU1MgaW1nZGF0YVs1XSBpcyAyNTUKIFBBU1MgaW1nZGF0YVs2XSBpcyAwCitQQVNTIGltZ2Rh
dGFbMF0gaXMgMjU1CitQQVNTIGltZ2RhdGFbMV0gaXMgMAorUEFTUyBpbWdkYXRhWzJdIGlzIDAK
K1BBU1MgaW1nZGF0YVs0XSBpcyAwCitQQVNTIGltZ2RhdGFbNV0gaXMgMAorUEFTUyBpbWdkYXRh
WzZdIGlzIDAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVU
RQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdpdGgtbmVn
YXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZHJh
d0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLmpzCmluZGV4IDBhOGEwOWMx
NTIzNTgyY2JjMTViMWQ2YWQ1NTM2MDdhZDQyYmZhZGQuLjY3MWZkNzNiNmM1NjA2ZDFkZTc0ZDU3
MDdkNzAwYzkwNjY0YWRhMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2Ry
YXdJbWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi5qcworKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRp
b24uanMKQEAgLTE5LDMgKzE5LDE2IEBAIHZhciBpbWdkYXRhID0gaW1hZ2VEYXRhLmRhdGE7CiBz
aG91bGRCZSgiaW1nZGF0YVs0XSIsICIwIik7CiBzaG91bGRCZSgiaW1nZGF0YVs1XSIsICIyNTUi
KTsKIHNob3VsZEJlKCJpbWdkYXRhWzZdIiwgIjAiKTsKKworLy8gdGVzdCB3aWR0aCBvciBoZWln
aHQgLTEKK2NhbnZhcy5maWxsU3R5bGUgPSAnIzAwMCc7CitjYW52YXMuZmlsbFJlY3QoMCwgMCwg
MSwgMik7CitjYW52YXMuZHJhd0ltYWdlKGNhbnZhczIsIDAsIDAsIDEsIDEsIDEsIDEsIC0xLCAt
MSk7Cit2YXIgaW1hZ2VEYXRhID0gY2FudmFzLmdldEltYWdlRGF0YSgwLCAwLCAxLCAyKTsKK3Zh
ciBpbWdkYXRhID0gaW1hZ2VEYXRhLmRhdGE7CitzaG91bGRCZSgiaW1nZGF0YVswXSIsICIyNTUi
KTsKK3Nob3VsZEJlKCJpbWdkYXRhWzFdIiwgIjAiKTsKK3Nob3VsZEJlKCJpbWdkYXRhWzJdIiwg
IjAiKTsKK3Nob3VsZEJlKCJpbWdkYXRhWzRdIiwgIjAiKTsKK3Nob3VsZEJlKCJpbWdkYXRhWzVd
IiwgIjAiKTsKK3Nob3VsZEJlKCJpbWdkYXRhWzZdIiwgIjAiKTsKZGlmZiAtLWdpdCBhL1BlcmZv
cm1hbmNlVGVzdHMvQ2FudmFzL2RyYXdpbWFnZS5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9DYW52
YXMvZHJhd2ltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzlkNDQ5MjBlOTkzODVhNDRmNmUxMmFmYTM4
OTVhMmUwZmY1NjU5YQotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2FudmFz
L2RyYXdpbWFnZS5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CisKK3ZhciBzb3VyY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMi
KTsKK3NvdXJjZS53aWR0aCA9IDMwMDsKK3NvdXJjZS5oZWlnaHQgPSAxNTA7Citzb3VyY2UuZ2V0
Q29udGV4dCgiMmQiKS5maWxsU3R5bGUgPSAnZ3JlZW4nOworc291cmNlLmdldENvbnRleHQoIjJk
IikuZmlsbFJlY3QoMCwgMCwgc291cmNlLndpZHRoLCBzb3VyY2UuaGVpZ2h0KTsKKwordmFyIHRh
cmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwordGFyZ2V0LndpZHRoID0g
c291cmNlLndpZHRoOwordGFyZ2V0LmhlaWdodCA9IHNvdXJjZS5oZWlnaHQ7Cit2YXIgY29udGV4
dCA9IHRhcmdldC5nZXRDb250ZXh0KCIyZCIpCisKK1BlcmZUZXN0UnVubmVyLm1lYXN1cmVSdW5z
UGVyU2Vjb25kKHtydW46IGZ1bmN0aW9uKCkgeworICAgIGNvbnRleHQuZHJhd0ltYWdlKHNvdXJj
ZSwgMCwgMCk7ICAgCit9fSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggMjI0ODQzM2U2NDgwYzY2NTVmOTI2YWNiMTZkNGQzNWU3MDc2ZmQ5Zi4uNjU3OGU4
YjMxZjNmODZkN2Q5MGFlYzNhNTU5N2ZiNjE1YzdjZDY1MyAxMDA2NDQKLS0tIGEvUGVyZm9ybWFu
Y2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMi0xMi0xMSAgQXJuYXVkIFJlbmV2aWVyICA8YS5yZW5ldmllckBzaXNh
LnNhbXN1bmcuY29tPgorCisgICAgICAgIGluY29uc2lzdGVuY3kgaW4gZHJhd0ltYWdlIHdpdGgg
dGFyZ2V0IHJlY3QgbmVnYXRpdmUgZGltZW5zaW9ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDAyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0ZSBhIGRyYXdJbWFnZSBwZXJmb3JtYW5jZSB0
ZXN0LiBUaGVyZSBpcyBubyBzaWduaWZpY2F0aXZlIGNoYW5nZQorICAgICAgICBpbiBwZXJmb3Jt
YW5jZTogMjcxNDQuNjg1MTUyOCBydW5zL3Mgd2l0aG91dCB0aGUgcGF0Y2g7IDI3MTUzLjUxNzYx
MgorICAgICAgICBydW5zL3Mgd2l0aCB0aGUgcGF0Y2guCisKKyAgICAgICAgKiBDYW52YXMvZHJh
d2ltYWdlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEyLTAzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgogCiAgICAgICAgIERyb21hZW8gc2hvdWxkIHJlcG9ydCBpbmRpdmlkdWFsIHRl
c3QgcmVzdWx0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179544</attachid>
            <date>2012-12-14 15:38:01 -0800</date>
            <delta_ts>2012-12-14 17:08:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100026-20121214153519.patch</filename>
            <type>text/plain</type>
            <size>21286</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWEzMjIxYmE0YTU1YWQ2
ZWIwNzg2YzBlYmVhYWM5ODliMmVkMGE2YS4uZmJjOGE2OGM3ZmQ2NjEwNDEyYTUxYTliMTQzYTdk
ODYyYmJjMGNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTEyLTE0ICBBcm5h
dWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgaW5j
b25zaXN0ZW5jeSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJnZXQgcmVjdCBuZWdhdGl2ZSBkaW1lbnNp
b25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAw
MDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIC0xLCAtMSBzcGVjaWFsIGNhc2UgaW4gZHJhd0ltYWdlIGFuZCBkcmF3SW1hZ2VCdWZmZXIu
IFJlcGxhY2UKKyAgICAgICAgYWxsIC0xIC0xIGFyZ3VtZW50cyBjYWxscyB0byB3aXRoIHRoZSBj
b3JyZWN0IHJlY3RhbmdsZSBkaW1lbnNpb25zLgorCisgICAgICAgIFJlbW92ZSBGbG9hdFJlY3Qo
MCwgMCwgLTEsIC0xKSBkZWZhdWx0IGFyZ3VtZW50IGZvciBzcmNSZWN0LCBhbmQKKyAgICAgICAg
aW5zdGVhZCwgYWRkIG5ldyBvdmVybG9hZGVkIGZ1bmN0aW9ucyB0byBjcmVhdGUgYSBGbG9hdFJl
Y3QgZnJvbSBpbWFnZQorICAgICAgICBzaXplLgorCisgICAgICAgIFJlcGxhY2UgLTEgLTEgYXJn
dW1lbnRzIGNhbGxzIGluIEZFQ29tcG9zaXRlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUKKyAgICAg
ICAgd2l0aCBjb3JyZWN0IHJlY3RhbmdsZSBkaW1lbnNpb25zLgorCisgICAgICAgIFJlcGxhY2Ug
SW1hZ2VHU3RyZWFtZXIgcmVjdCBtZXRob2QgKHdoaWNoIG1heSByZXR1cm4gLTEgLTEgcmVjdGFu
Z2xlKQorICAgICAgICB3aXRoIGNyb3BSZWN0IG1ldGhvZCwgYW5kIG1ha2UgY2FsbGVyIGNoZWNr
IGZvciByZWN0YW5nbGUgZW1wdGluZXNzLgorCisgICAgICAgICogZmFzdC9jYW52YXMvZHJhd0lt
YWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRp
b24uanM6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFn
ZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6
CisgICAgICAgIChHcmFwaGljc0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVDb21wb3NpdGU6
OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUdTdHJlYW1l
cjo6cmVjdCk6CisKIDIwMTItMTItMTMgIFlvc2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBIYW5kbGluZyBhdXRvc2Nyb2xsIGluIEV2ZW50SGFuZGxlciBzaG91
bGQgYmUgcmUtZmFjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCBhNWExNmRhZWI2MGI4YTgwZTFiN2YyNzg1YWY0
NWQxMWI1ZTVlMDMyLi41Nzc1NDZhOTdmYTkwZWIxZjJkMWI0MWY2MDE0ZDI3YzgyZmM1NjRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5jcHAKQEAgLTQ0OCwxMiArNDQ4LDE2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3
SGlnaGxpZ2h0Rm9yVGV4dChjb25zdCBGb250JiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4sCiAK
IHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNl
IHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UG9pbnQmIHAsIENvbXBvc2l0ZU9wZXJhdG9yIG9w
LCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRp
b24pCiB7Ci0gICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHAsIEludFJlY3Qo
MCwgMCwgLTEsIC0xKSwgb3AsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKKyAgICBp
ZiAoIWltYWdlKQorICAgICAgICByZXR1cm47CisgICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNv
bG9yU3BhY2UsIHAsIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2UtPnNpemUoKSksIG9wLCBzaG91
bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3Qg
SW50UmVjdCYgciwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
RW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2Nh
bGUpCiB7Ci0gICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHIsIEludFJlY3Qo
MCwgMCwgLTEsIC0xKSwgb3AsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dR
dWFsaXR5U2NhbGUpOworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybjsKKyAgICBkcmF3
SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgciwgSW50UmVjdChJbnRQb2ludCgpLCBpbWFn
ZS0+c2l6ZSgpKSwgb3AsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFs
aXR5U2NhbGUpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBp
bWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiBkZXN0LCBj
b25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBvcCwgUmVzcGVjdEltYWdl
T3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQpAQCAtNDcxLDI1
ICs0NzUsMTcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2Us
IENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdAogICAgIGRyYXdJbWFnZShpbWFnZSwg
c3R5bGVDb2xvclNwYWNlLCBGbG9hdFJlY3QoZGVzdCksIHNyYywgb3AsIEJsZW5kTW9kZU5vcm1h
bCwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9
CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNw
YWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0KQoreworICAgIGlmICgh
aW1hZ2UpCisgICAgICAgIHJldHVybjsKKyAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JT
cGFjZSwgZGVzdCwgRmxvYXRSZWN0KEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2UtPnNpemUoKSkp
KTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENv
bG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3QsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwg
UmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
LCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKIHsgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSB8
fCAhaW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZsb2F0IHRzdyA9IHNyYy53aWR0aCgp
OwotICAgIGZsb2F0IHRzaCA9IHNyYy5oZWlnaHQoKTsKLSAgICBmbG9hdCB0dyA9IGRlc3Qud2lk
dGgoKTsKLSAgICBmbG9hdCB0aCA9IGRlc3QuaGVpZ2h0KCk7Ci0KLSAgICBpZiAodHN3ID09IC0x
KQotICAgICAgICB0c3cgPSBpbWFnZS0+d2lkdGgoKTsKLSAgICBpZiAodHNoID09IC0xKQotICAg
ICAgICB0c2ggPSBpbWFnZS0+aGVpZ2h0KCk7Ci0KLSAgICBpZiAodHcgPT0gLTEpCi0gICAgICAg
IHR3ID0gaW1hZ2UtPndpZHRoKCk7Ci0gICAgaWYgKHRoID09IC0xKQotICAgICAgICB0aCA9IGlt
YWdlLT5oZWlnaHQoKTsKLQogICAgIEludGVycG9sYXRpb25RdWFsaXR5IHByZXZpb3VzSW50ZXJw
b2xhdGlvblF1YWxpdHkgPSBJbnRlcnBvbGF0aW9uRGVmYXVsdDsKIAogICAgIGlmICh1c2VMb3dR
dWFsaXR5U2NhbGUpIHsKQEAgLTUwMiw3ICs0OTgsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0
CiAjZW5kaWYKICAgICB9CiAKLSAgICBpbWFnZS0+ZHJhdyh0aGlzLCBGbG9hdFJlY3QoZGVzdC5s
b2NhdGlvbigpLCBGbG9hdFNpemUodHcsIHRoKSksIEZsb2F0UmVjdChzcmMubG9jYXRpb24oKSwg
RmxvYXRTaXplKHRzdywgdHNoKSksIHN0eWxlQ29sb3JTcGFjZSwgb3AsIGJsZW5kTW9kZSwgc2hv
dWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pOworICAgIGltYWdlLT5kcmF3KHRoaXMsIGRlc3Qs
IHNyYywgc3R5bGVDb2xvclNwYWNlLCBvcCwgYmxlbmRNb2RlLCBzaG91bGRSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbik7CiAKICAgICBpZiAodXNlTG93UXVhbGl0eVNjYWxlKQogICAgICAgICBzZXRJ
bWFnZUludGVycG9sYXRpb25RdWFsaXR5KHByZXZpb3VzSW50ZXJwb2xhdGlvblF1YWxpdHkpOwpA
QCAtNTQ1LDEyICs1NDEsMTYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxlZEltYWdl
KEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGMKIAogdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3Bh
Y2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgcCwgQ29tcG9zaXRlT3BlcmF0b3Ig
b3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCiB7Ci0gICAgZHJhd0ltYWdlQnVmZmVyKGltYWdlLCBz
dHlsZUNvbG9yU3BhY2UsIHAsIEludFJlY3QoMCwgMCwgLTEsIC0xKSwgb3AsIGJsZW5kTW9kZSk7
CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuOworICAgIGRyYXdJbWFnZUJ1ZmZlcihp
bWFnZSwgc3R5bGVDb2xvclNwYWNlLCBwLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdlLT5sb2dp
Y2FsU2l6ZSgpKSwgb3AsIGJsZW5kTW9kZSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgY29uc3QgSW50UmVjdCYgciwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBi
bGVuZE1vZGUsIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQogewotICAgIGRyYXdJbWFnZUJ1ZmZl
cihpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCByLCBJbnRSZWN0KDAsIDAsIC0xLCAtMSksIG9wLCBi
bGVuZE1vZGUsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAg
cmV0dXJuOworICAgIGRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCByLCBJ
bnRSZWN0KEludFBvaW50KCksIGltYWdlLT5sb2dpY2FsU2l6ZSgpKSwgb3AsIGJsZW5kTW9kZSwg
dXNlTG93UXVhbGl0eVNjYWxlKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFn
ZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBj
b25zdCBJbnRQb2ludCYgZGVzdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3Bl
cmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCkBAIC01NjMsMjYgKzU2MywxOCBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBpbWFnZSwgQ29s
b3JTcGFjZSBzdHlsZUNvbG9yUwogICAgIGRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgc3R5bGVDb2xv
clNwYWNlLCBGbG9hdFJlY3QoZGVzdCksIHNyY1JlY3QsIG9wLCBibGVuZE1vZGUsIHVzZUxvd1F1
YWxpdHlTY2FsZSk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIo
SW1hZ2VCdWZmZXIqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0KQoreworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybjsKKyAgICBk
cmF3SW1hZ2VCdWZmZXIoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgZGVzdCwgRmxvYXRSZWN0KElu
dFJlY3QoSW50UG9pbnQoKSwgaW1hZ2UtPmxvZ2ljYWxTaXplKCkpKSk7Cit9CisKIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIGltYWdlLCBDb2xvclNw
YWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyYywgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIGJvb2wg
dXNlTG93UXVhbGl0eVNjYWxlKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkgfHwgIWlt
YWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBmbG9hdCB0c3cgPSBzcmMud2lkdGgoKTsKLSAg
ICBmbG9hdCB0c2ggPSBzcmMuaGVpZ2h0KCk7Ci0gICAgZmxvYXQgdHcgPSBkZXN0LndpZHRoKCk7
Ci0gICAgZmxvYXQgdGggPSBkZXN0LmhlaWdodCgpOwotCi0gICAgaWYgKHRzdyA9PSAtMSkKLSAg
ICAgICAgdHN3ID0gaW1hZ2UtPmxvZ2ljYWxTaXplKCkud2lkdGgoKTsKLSAgICBpZiAodHNoID09
IC0xKQotICAgICAgICB0c2ggPSBpbWFnZS0+bG9naWNhbFNpemUoKS5oZWlnaHQoKTsKLQotICAg
IGlmICh0dyA9PSAtMSkKLSAgICAgICAgdHcgPSBpbWFnZS0+bG9naWNhbFNpemUoKS53aWR0aCgp
OwotICAgIGlmICh0aCA9PSAtMSkKLSAgICAgICAgdGggPSBpbWFnZS0+bG9naWNhbFNpemUoKS5o
ZWlnaHQoKTsKLQogICAgIGlmICh1c2VMb3dRdWFsaXR5U2NhbGUpIHsKICAgICAgICAgSW50ZXJw
b2xhdGlvblF1YWxpdHkgcHJldmlvdXNJbnRlcnBvbGF0aW9uUXVhbGl0eSA9IGltYWdlSW50ZXJw
b2xhdGlvblF1YWxpdHkoKTsKICNpZiBQTEFURk9STShDSFJPTUlVTSkKQEAgLTU5MSwxMCArNTgz
LDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIq
IGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTCiAgICAgICAgIC8vIEZJWE1FICg0OTAwMik6
IFNob3VsZCBiZSBJbnRlcnBvbGF0aW9uTG93CiAgICAgICAgIHNldEltYWdlSW50ZXJwb2xhdGlv
blF1YWxpdHkoSW50ZXJwb2xhdGlvbk5vbmUpOwogI2VuZGlmCi0gICAgICAgIGltYWdlLT5kcmF3
KHRoaXMsIHN0eWxlQ29sb3JTcGFjZSwgRmxvYXRSZWN0KGRlc3QubG9jYXRpb24oKSwgRmxvYXRT
aXplKHR3LCB0aCkpLCBGbG9hdFJlY3Qoc3JjLmxvY2F0aW9uKCksIEZsb2F0U2l6ZSh0c3csIHRz
aCkpLCBvcCwgYmxlbmRNb2RlLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAgICAgICBpbWFnZS0+
ZHJhdyh0aGlzLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3QsIHNyYywgb3AsIGJsZW5kTW9kZSwgdXNl
TG93UXVhbGl0eVNjYWxlKTsKICAgICAgICAgc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShw
cmV2aW91c0ludGVycG9sYXRpb25RdWFsaXR5KTsKICAgICB9IGVsc2UKLSAgICAgICAgaW1hZ2Ut
PmRyYXcodGhpcywgc3R5bGVDb2xvclNwYWNlLCBGbG9hdFJlY3QoZGVzdC5sb2NhdGlvbigpLCBG
bG9hdFNpemUodHcsIHRoKSksIEZsb2F0UmVjdChzcmMubG9jYXRpb24oKSwgRmxvYXRTaXplKHRz
dywgdHNoKSksIG9wLCBibGVuZE1vZGUsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgICAgIGlt
YWdlLT5kcmF3KHRoaXMsIHN0eWxlQ29sb3JTcGFjZSwgZGVzdCwgc3JjLCBvcCwgYmxlbmRNb2Rl
LCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCiAjaWYgIVBMQVRGT1JNKFFUKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCAx
YWM4Y2M4Yjg1N2E0OTM0NjVjNzA2YzhiNTBkMzhjNjQzODNhMTQ0Li4xMzI3MWY1YzBiZjU2NTU5
NmViZjhkMmY3YzQ1OTQ5OWM5OTViMjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtMzIyLDggKzMyMiw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNl
IHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UmVjdCYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29t
cG9zaXRlU291cmNlT3ZlciwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtID0gRG9Ob3RSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CiAg
ICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2Us
IGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBv
c2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgUmVzcGVjdEltYWdlT3JpZW50YXRp
b25FbnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CiAgICAgICAgIHZvaWQgZHJh
d0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3Qm
IGRlc3RSZWN0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENv
bXBvc2l0ZVNvdXJjZU92ZXIsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVz
cGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwot
ICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QgPSBG
bG9hdFJlY3QoMCwgMCwgLTEsIC0xKSwKLSAgICAgICAgICAgICAgICAgICAgICAgQ29tcG9zaXRl
T3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVu
dW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2Fs
ZSA9IGZhbHNlKTsKKyAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0
eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCk7CisgICAgICAgIHZvaWQg
ZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0
b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBE
b05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZh
bHNlKTsKICAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29s
b3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
bkVudW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlT
Y2FsZSA9IGZhbHNlKTsKICAgICAgICAgCiAgICAgICAgIHZvaWQgZHJhd1RpbGVkSW1hZ2UoSW1h
Z2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3Qs
IGNvbnN0IEludFBvaW50JiBzcmNQb2ludCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsCkBAIC0z
MzYsNyArMzM2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGRyYXdJbWFn
ZUJ1ZmZlcihJbWFnZUJ1ZmZlciosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJ
bnRSZWN0JiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBCbGVuZE1v
ZGUgPSBCbGVuZE1vZGVOb3JtYWwsIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwog
ICAgICAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciosIENvbG9yU3BhY2Ugc3R5
bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBjb25zdCBJbnRSZWN0JiBz
cmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9k
ZSA9IEJsZW5kTW9kZU5vcm1hbCk7CiAgICAgICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKEltYWdl
QnVmZmVyKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0
ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZU5vcm1hbCwgYm9vbCB1c2VMb3dRdWFs
aXR5U2NhbGUgPSBmYWxzZSk7Ci0gICAgICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVm
ZmVyKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCA9IEZsb2F0UmVjdCgwLCAwLCAtMSwgLTEpLCBD
b21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZSA9IEJsZW5k
TW9kZU5vcm1hbCwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CisgICAgICAgIHZv
aWQgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3Bh
Y2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpOworICAgICAgICB2b2lkIGRyYXdJbWFnZUJ1
ZmZlcihJbWFnZUJ1ZmZlciosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJh
dG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlID0gQmxlbmRNb2RlTm9ybWFsLCBi
b29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKIAogICAgICAgICB2b2lkIHNldEltYWdl
SW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvblF1YWxpdHkpOwogICAgICAgICBJbnRl
cnBvbGF0aW9uUXVhbGl0eSBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5KCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9z
aXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21w
b3NpdGUuY3BwCmluZGV4IDlkNTY2ZWQ5MjNkOTVhZDM0NDMxNzFhNzMwYTkwY2RlMzljYWNmMjgu
LmMxZjY0NDM4OTdiMDkxM2Q3N2I1NzNjZjIzMmJkYzY2MGVhY2Q5ZjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUu
Y3BwCkBAIC0yNzQsMTEgKzI3NCwxNSBAQCB2b2lkIEZFQ29tcG9zaXRlOjpwbGF0Zm9ybUFwcGx5
U29mdHdhcmUoKQogICAgICAgICByZXR1cm47CiAgICAgR3JhcGhpY3NDb250ZXh0KiBmaWx0ZXJD
b250ZXh0ID0gcmVzdWx0SW1hZ2UtPmNvbnRleHQoKTsKIAotICAgIEZsb2F0UmVjdCBzcmNSZWN0
ID0gRmxvYXRSZWN0KDAsIDAsIC0xLCAtMSk7CisgICAgSW1hZ2VCdWZmZXIqIGltZ0J1ZmZlciA9
IGluLT5hc0ltYWdlQnVmZmVyKCk7CisgICAgSW1hZ2VCdWZmZXIqIGltZ0J1ZmZlcjIgPSBpbjIt
PmFzSW1hZ2VCdWZmZXIoKTsKKyAgICBBU1NFUlQoaW1nQnVmZmVyKTsKKyAgICBBU1NFUlQoaW1n
QnVmZmVyMik7CisKICAgICBzd2l0Y2ggKG1fdHlwZSkgewogICAgIGNhc2UgRkVDT01QT1NJVEVf
T1BFUkFUT1JfT1ZFUjoKLSAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGlu
Mi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJ
bnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOwotICAgICAgICBmaWx0ZXJDb250
ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW4tPmFzSW1hZ2VCdWZmZXIoKSwgQ29sb3JTcGFjZURldmlj
ZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSkp
OworICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1nQnVmZmVyMiwgQ29s
b3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29sdXRl
UGFpbnRSZWN0KCkpKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGlt
Z0J1ZmZlciwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShp
bi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZFQ09N
UE9TSVRFX09QRVJBVE9SX0lOOiB7CiAgICAgICAgIC8vIEFwcGxpZXMgb25seSB0byB0aGUgaW50
ZXJzZWN0ZWQgcmVnaW9uLgpAQCAtMjkyLDIxICsyOTYsMjEgQEAgdm9pZCBGRUNvbXBvc2l0ZTo6
cGxhdGZvcm1BcHBseVNvZnR3YXJlKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRlc3RpbmF0aW9uUmVjdC55KCkgLSBpbi0+YWJzb2x1dGVQYWludFJlY3QoKS55KCkpLCBk
ZXN0aW5hdGlvblJlY3Quc2l6ZSgpKTsKICAgICAgICAgSW50UmVjdCBzb3VyY2UyUmVjdChJbnRQ
b2ludChkZXN0aW5hdGlvblJlY3QueCgpIC0gaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpLngoKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvblJlY3QueSgp
IC0gaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpLnkoKSksIGRlc3RpbmF0aW9uUmVjdC5zaXplKCkp
OwotICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW4yLT5hc0ltYWdlQnVm
ZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRlc3RpbmF0aW9uUG9pbnQsIHNvdXJjZTJSZWN0
KTsKLSAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGluLT5hc0ltYWdlQnVm
ZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRlc3RpbmF0aW9uUG9pbnQsIHNvdXJjZVJlY3Qs
IENvbXBvc2l0ZVNvdXJjZUluKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVm
ZmVyKGltZ0J1ZmZlcjIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRlc3RpbmF0aW9uUG9pbnQsIHNv
dXJjZTJSZWN0KTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltZ0J1
ZmZlciwgQ29sb3JTcGFjZURldmljZVJHQiwgZGVzdGluYXRpb25Qb2ludCwgc291cmNlUmVjdCwg
Q29tcG9zaXRlU291cmNlSW4pOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBGRUNP
TVBPU0lURV9PUEVSQVRPUl9PVVQ6Ci0gICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1
ZmZlcihpbi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVn
aW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7Ci0gICAgICAgIGZpbHRl
ckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbjItPmFzSW1hZ2VCdWZmZXIoKSwgQ29sb3JTcGFj
ZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29sdXRlUGFpbnRS
ZWN0KCkpLCBzcmNSZWN0LCBDb21wb3NpdGVEZXN0aW5hdGlvbk91dCk7CisgICAgICAgIGZpbHRl
ckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWdCdWZmZXIsIENvbG9yU3BhY2VEZXZpY2VSR0Is
IGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKKyAg
ICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltZ0J1ZmZlcjIsIENvbG9yU3Bh
Y2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50
UmVjdCgpKSwgSW50UmVjdChJbnRQb2ludCgpLCBpbWdCdWZmZXIyLT5sb2dpY2FsU2l6ZSgpKSwg
Q29tcG9zaXRlRGVzdGluYXRpb25PdXQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZFQ09N
UE9TSVRFX09QRVJBVE9SX0FUT1A6Ci0gICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1
ZmZlcihpbjItPmFzSW1hZ2VCdWZmZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1Jl
Z2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKLSAgICAgICAgZmls
dGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGluLT5hc0ltYWdlQnVmZmVyKCksIENvbG9yU3Bh
Y2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRS
ZWN0KCkpLCBzcmNSZWN0LCBDb21wb3NpdGVTb3VyY2VBdG9wKTsKKyAgICAgICAgZmlsdGVyQ29u
dGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltZ0J1ZmZlcjIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRy
YXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7CisgICAg
ICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWdCdWZmZXIsIENvbG9yU3BhY2VE
ZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0
KCkpLCBJbnRSZWN0KEludFBvaW50KCksIGltZ0J1ZmZlci0+bG9naWNhbFNpemUoKSksIENvbXBv
c2l0ZVNvdXJjZUF0b3ApOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZFQ09NUE9TSVRFX09Q
RVJBVE9SX1hPUjoKLSAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGluMi0+
YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1
dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOwotICAgICAgICBmaWx0ZXJDb250ZXh0
LT5kcmF3SW1hZ2VCdWZmZXIoaW4tPmFzSW1hZ2VCdWZmZXIoKSwgQ29sb3JTcGFjZURldmljZVJH
QiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSksIHNy
Y1JlY3QsIENvbXBvc2l0ZVhPUik7CisgICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1
ZmZlcihpbWdCdWZmZXIyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1
dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOworICAgICAgICBmaWx0ZXJDb250ZXh0
LT5kcmF3SW1hZ2VCdWZmZXIoaW1nQnVmZmVyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5n
UmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSwgSW50UmVjdChJbnRQ
b2ludCgpLCBpbWdCdWZmZXItPmxvZ2ljYWxTaXplKCkpLCBDb21wb3NpdGVYT1IpOwogICAgICAg
ICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVy
LmgKaW5kZXggODNiZGZlMmI3MjI2OGIwMjhlNzNmZDg0ZDczZGMyYjQwYjA5MGY0My4uNjhmOGZh
MWI1OWZmYjYxZmU3NDU4OWJjNzZjYTU3NzQ4N2RkNzM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVy
LmgKQEAgLTUxLDkgKzUxLDggQEAgY2xhc3MgSW1hZ2VHU3RyZWFtZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxJbWFnZUdTdHJlYW1lcj4gewogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIW1fY3Jv
cFJlY3QuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBGbG9hdFJlY3QobV9jcm9w
UmVjdCk7Ci0KLSAgICAgICAgICAgIC8vIERlZmF1bHQgcmVjdGFuZ2xlIHVzZWQgYnkgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3SW1hZ2UoKS4KLSAgICAgICAgICAgIHJldHVybiBGbG9hdFJlY3QoMCwg
MCwgLTEsIC0xKTsKKyAgICAgICAgICAgIEFTU0VSVChtX2ltYWdlKTsKKyAgICAgICAgICAgIHJl
dHVybiBGbG9hdFJlY3QoMCwgMCwgbV9pbWFnZS0+c2l6ZSgpLndpZHRoKCksIG1faW1hZ2UtPnNp
emUoKS5oZWlnaHQoKSk7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTk4MmE3
ZDA0N2NlNmMxOWJjOGQ4NzEwZGI4MTlmZGJkNGVjNjY1Yi4uYzQ3YTQ2ZDU0YWI1YjY3NjFhNTg1
MmNhOGU5MjczODU1NDBjYTkxOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEyLTE0ICBB
cm5hdWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAg
aW5jb25zaXN0ZW5jeSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJnZXQgcmVjdCBuZWdhdGl2ZSBkaW1l
bnNpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAwMDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGEgZHJhd0ltYWdlIGNoZWNrIGZvciBhIGRlc3RpbmF0aW9uIHJlY3RhbmdsZSB3aXRoIC0x
cHgKKyAgICAgICAgd2lkdGgvaGVpZ2h0LiBXaGVuIGRyYXdpbmcgdG8gKDEsIDEsIC0xLCAtMSkg
cmVjdGFuZ2xlLCBmaXJzdAorICAgICAgICAodG9wLWxlZnQpIHBpeGVsIHNob3VsZCBoYXZlIGJl
ZW4gYW5kIGJlZW4gdGhlIG9ubHkgb25lIGRyYXduIGludG8uCisKKyAgICAgICAgKiBmYXN0L2Nh
bnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24tZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJj
ZS1kZXN0aW5hdGlvbi5qczoKKwogMjAxMi0xMi0xMyAgUmljayBCeWVycyAgPHJieWVyc0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgTGF5b3V0IFRlc3QgZmFzdC9ldmVudHMvbW91c2UtY3Vyc29y
LWltYWdlLXNldC5odG1sIGlzIGZsYWt5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291
cmNlLWRlc3RpbmF0aW9uLWV4cGVjdGVkLnR4dAppbmRleCA3Mzg1NjhiMGNlMTIyMmVmODRhNDhk
Y2ZmMDQwNzBlYmYyNWI4MGE1Li5mNDFhYzkyMzcwNWI3OWNiNDM4NWE2M2YxNzA2ZDIyODE0ODE0
MDg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1u
ZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi1l
eHBlY3RlZC50eHQKQEAgLTYsNiArNiwxMiBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogUEFT
UyBpbWdkYXRhWzRdIGlzIDAKIFBBU1MgaW1nZGF0YVs1XSBpcyAyNTUKIFBBU1MgaW1nZGF0YVs2
XSBpcyAwCitQQVNTIGltZ2RhdGFbMF0gaXMgMjU1CitQQVNTIGltZ2RhdGFbMV0gaXMgMAorUEFT
UyBpbWdkYXRhWzJdIGlzIDAKK1BBU1MgaW1nZGF0YVs0XSBpcyAwCitQQVNTIGltZ2RhdGFbNV0g
aXMgMAorUEFTUyBpbWdkYXRhWzZdIGlzIDAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
ZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLmpzIGIvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9u
LmpzCmluZGV4IDBhOGEwOWMxNTIzNTgyY2JjMTViMWQ2YWQ1NTM2MDdhZDQyYmZhZGQuLjY3MWZk
NzNiNmM1NjA2ZDFkZTc0ZDU3MDdkNzAwYzkwNjY0YWRhMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlv
bi5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2
ZS1zb3VyY2UtZGVzdGluYXRpb24uanMKQEAgLTE5LDMgKzE5LDE2IEBAIHZhciBpbWdkYXRhID0g
aW1hZ2VEYXRhLmRhdGE7CiBzaG91bGRCZSgiaW1nZGF0YVs0XSIsICIwIik7CiBzaG91bGRCZSgi
aW1nZGF0YVs1XSIsICIyNTUiKTsKIHNob3VsZEJlKCJpbWdkYXRhWzZdIiwgIjAiKTsKKworLy8g
dGVzdCB3aWR0aCBvciBoZWlnaHQgLTEKK2NhbnZhcy5maWxsU3R5bGUgPSAnIzAwMCc7CitjYW52
YXMuZmlsbFJlY3QoMCwgMCwgMSwgMik7CitjYW52YXMuZHJhd0ltYWdlKGNhbnZhczIsIDAsIDAs
IDEsIDEsIDEsIDEsIC0xLCAtMSk7Cit2YXIgaW1hZ2VEYXRhID0gY2FudmFzLmdldEltYWdlRGF0
YSgwLCAwLCAxLCAyKTsKK3ZhciBpbWdkYXRhID0gaW1hZ2VEYXRhLmRhdGE7CitzaG91bGRCZSgi
aW1nZGF0YVswXSIsICIyNTUiKTsKK3Nob3VsZEJlKCJpbWdkYXRhWzFdIiwgIjAiKTsKK3Nob3Vs
ZEJlKCJpbWdkYXRhWzJdIiwgIjAiKTsKK3Nob3VsZEJlKCJpbWdkYXRhWzRdIiwgIjAiKTsKK3No
b3VsZEJlKCJpbWdkYXRhWzVdIiwgIjAiKTsKK3Nob3VsZEJlKCJpbWdkYXRhWzZdIiwgIjAiKTsK
ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2FudmFzL2RyYXdpbWFnZS5odG1sIGIvUGVy
Zm9ybWFuY2VUZXN0cy9DYW52YXMvZHJhd2ltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzlkNDQ5MjBl
OTkzODVhNDRmNmUxMmFmYTM4OTVhMmUwZmY1NjU5YQotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZv
cm1hbmNlVGVzdHMvQ2FudmFzL2RyYXdpbWFnZS5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVu
bmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3ZhciBzb3VyY2UgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJjYW52YXMiKTsKK3NvdXJjZS53aWR0aCA9IDMwMDsKK3NvdXJjZS5oZWlnaHQg
PSAxNTA7Citzb3VyY2UuZ2V0Q29udGV4dCgiMmQiKS5maWxsU3R5bGUgPSAnZ3JlZW4nOworc291
cmNlLmdldENvbnRleHQoIjJkIikuZmlsbFJlY3QoMCwgMCwgc291cmNlLndpZHRoLCBzb3VyY2Uu
aGVpZ2h0KTsKKwordmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIp
OwordGFyZ2V0LndpZHRoID0gc291cmNlLndpZHRoOwordGFyZ2V0LmhlaWdodCA9IHNvdXJjZS5o
ZWlnaHQ7Cit2YXIgY29udGV4dCA9IHRhcmdldC5nZXRDb250ZXh0KCIyZCIpCisKK1BlcmZUZXN0
UnVubmVyLm1lYXN1cmVSdW5zUGVyU2Vjb25kKHtydW46IGZ1bmN0aW9uKCkgeworICAgIGNvbnRl
eHQuZHJhd0ltYWdlKHNvdXJjZSwgMCwgMCk7ICAgCit9fSk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9y
bWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmM5NjNjZmRmZTczZjBlMGU5YjM1YzNjMTA0M2Q5
OTE3OTQ2OGNhOS4uN2QyM2FlN2FjNjZiZDBiZTRkZjcwNGU5NWNkMGM0NTdhNWU2Mzc4NCAxMDA2
NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMi0xNCAgQXJuYXVkIFJlbmV2aWVy
ICA8YS5yZW5ldmllckBzaXNhLnNhbXN1bmcuY29tPgorCisgICAgICAgIGluY29uc2lzdGVuY3kg
aW4gZHJhd0ltYWdlIHdpdGggdGFyZ2V0IHJlY3QgbmVnYXRpdmUgZGltZW5zaW9ucy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDAyNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0ZSBhIGRyYXdJ
bWFnZSBwZXJmb3JtYW5jZSB0ZXN0LiBUaGVyZSBpcyBubyBzaWduaWZpY2F0aXZlIGNoYW5nZQor
ICAgICAgICBpbiBwZXJmb3JtYW5jZTogMjcxNDQuNjg1MTUyOCBydW5zL3Mgd2l0aG91dCB0aGUg
cGF0Y2g7IDI3MTUzLjUxNzYxMgorICAgICAgICBydW5zL3Mgd2l0aCB0aGUgcGF0Y2guCisKKyAg
ICAgICAgKiBDYW52YXMvZHJhd2ltYWdlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEyLTEzICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bSBwZXJmXSBE
T00vRE9NV2Fsay5odG1sIGZhaWx1cmVzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179563</attachid>
            <date>2012-12-14 17:08:51 -0800</date>
            <delta_ts>2013-01-15 16:04:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100026-20121214170607.patch</filename>
            <type>text/plain</type>
            <size>21690</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWEzMjIxYmE0YTU1YWQ2
ZWIwNzg2YzBlYmVhYWM5ODliMmVkMGE2YS4uZmJjOGE2OGM3ZmQ2NjEwNDEyYTUxYTliMTQzYTdk
ODYyYmJjMGNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTEyLTE0ICBBcm5h
dWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgaW5j
b25zaXN0ZW5jeSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJnZXQgcmVjdCBuZWdhdGl2ZSBkaW1lbnNp
b25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAw
MDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIC0xLCAtMSBzcGVjaWFsIGNhc2UgaW4gZHJhd0ltYWdlIGFuZCBkcmF3SW1hZ2VCdWZmZXIu
IFJlcGxhY2UKKyAgICAgICAgYWxsIC0xIC0xIGFyZ3VtZW50cyBjYWxscyB0byB3aXRoIHRoZSBj
b3JyZWN0IHJlY3RhbmdsZSBkaW1lbnNpb25zLgorCisgICAgICAgIFJlbW92ZSBGbG9hdFJlY3Qo
MCwgMCwgLTEsIC0xKSBkZWZhdWx0IGFyZ3VtZW50IGZvciBzcmNSZWN0LCBhbmQKKyAgICAgICAg
aW5zdGVhZCwgYWRkIG5ldyBvdmVybG9hZGVkIGZ1bmN0aW9ucyB0byBjcmVhdGUgYSBGbG9hdFJl
Y3QgZnJvbSBpbWFnZQorICAgICAgICBzaXplLgorCisgICAgICAgIFJlcGxhY2UgLTEgLTEgYXJn
dW1lbnRzIGNhbGxzIGluIEZFQ29tcG9zaXRlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUKKyAgICAg
ICAgd2l0aCBjb3JyZWN0IHJlY3RhbmdsZSBkaW1lbnNpb25zLgorCisgICAgICAgIFJlcGxhY2Ug
SW1hZ2VHU3RyZWFtZXIgcmVjdCBtZXRob2QgKHdoaWNoIG1heSByZXR1cm4gLTEgLTEgcmVjdGFu
Z2xlKQorICAgICAgICB3aXRoIGNyb3BSZWN0IG1ldGhvZCwgYW5kIG1ha2UgY2FsbGVyIGNoZWNr
IGZvciByZWN0YW5nbGUgZW1wdGluZXNzLgorCisgICAgICAgICogZmFzdC9jYW52YXMvZHJhd0lt
YWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRp
b24uanM6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFn
ZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6
CisgICAgICAgIChHcmFwaGljc0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVDb21wb3NpdGU6
OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUdTdHJlYW1l
cjo6cmVjdCk6CisKIDIwMTItMTItMTMgIFlvc2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBIYW5kbGluZyBhdXRvc2Nyb2xsIGluIEV2ZW50SGFuZGxlciBzaG91
bGQgYmUgcmUtZmFjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCBhNWExNmRhZWI2MGI4YTgwZTFiN2YyNzg1YWY0
NWQxMWI1ZTVlMDMyLi41Nzc1NDZhOTdmYTkwZWIxZjJkMWI0MWY2MDE0ZDI3YzgyZmM1NjRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5jcHAKQEAgLTQ0OCwxMiArNDQ4LDE2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3
SGlnaGxpZ2h0Rm9yVGV4dChjb25zdCBGb250JiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4sCiAK
IHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNl
IHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UG9pbnQmIHAsIENvbXBvc2l0ZU9wZXJhdG9yIG9w
LCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRp
b24pCiB7Ci0gICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHAsIEludFJlY3Qo
MCwgMCwgLTEsIC0xKSwgb3AsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKKyAgICBp
ZiAoIWltYWdlKQorICAgICAgICByZXR1cm47CisgICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNv
bG9yU3BhY2UsIHAsIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2UtPnNpemUoKSksIG9wLCBzaG91
bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3Qg
SW50UmVjdCYgciwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
RW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2Nh
bGUpCiB7Ci0gICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHIsIEludFJlY3Qo
MCwgMCwgLTEsIC0xKSwgb3AsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dR
dWFsaXR5U2NhbGUpOworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybjsKKyAgICBkcmF3
SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgciwgSW50UmVjdChJbnRQb2ludCgpLCBpbWFn
ZS0+c2l6ZSgpKSwgb3AsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFs
aXR5U2NhbGUpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBp
bWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiBkZXN0LCBj
b25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBvcCwgUmVzcGVjdEltYWdl
T3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQpAQCAtNDcxLDI1
ICs0NzUsMTcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2Us
IENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdAogICAgIGRyYXdJbWFnZShpbWFnZSwg
c3R5bGVDb2xvclNwYWNlLCBGbG9hdFJlY3QoZGVzdCksIHNyYywgb3AsIEJsZW5kTW9kZU5vcm1h
bCwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9
CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNw
YWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0KQoreworICAgIGlmICgh
aW1hZ2UpCisgICAgICAgIHJldHVybjsKKyAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JT
cGFjZSwgZGVzdCwgRmxvYXRSZWN0KEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2UtPnNpemUoKSkp
KTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENv
bG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3QsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwg
UmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
LCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKIHsgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSB8
fCAhaW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZsb2F0IHRzdyA9IHNyYy53aWR0aCgp
OwotICAgIGZsb2F0IHRzaCA9IHNyYy5oZWlnaHQoKTsKLSAgICBmbG9hdCB0dyA9IGRlc3Qud2lk
dGgoKTsKLSAgICBmbG9hdCB0aCA9IGRlc3QuaGVpZ2h0KCk7Ci0KLSAgICBpZiAodHN3ID09IC0x
KQotICAgICAgICB0c3cgPSBpbWFnZS0+d2lkdGgoKTsKLSAgICBpZiAodHNoID09IC0xKQotICAg
ICAgICB0c2ggPSBpbWFnZS0+aGVpZ2h0KCk7Ci0KLSAgICBpZiAodHcgPT0gLTEpCi0gICAgICAg
IHR3ID0gaW1hZ2UtPndpZHRoKCk7Ci0gICAgaWYgKHRoID09IC0xKQotICAgICAgICB0aCA9IGlt
YWdlLT5oZWlnaHQoKTsKLQogICAgIEludGVycG9sYXRpb25RdWFsaXR5IHByZXZpb3VzSW50ZXJw
b2xhdGlvblF1YWxpdHkgPSBJbnRlcnBvbGF0aW9uRGVmYXVsdDsKIAogICAgIGlmICh1c2VMb3dR
dWFsaXR5U2NhbGUpIHsKQEAgLTUwMiw3ICs0OTgsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0
CiAjZW5kaWYKICAgICB9CiAKLSAgICBpbWFnZS0+ZHJhdyh0aGlzLCBGbG9hdFJlY3QoZGVzdC5s
b2NhdGlvbigpLCBGbG9hdFNpemUodHcsIHRoKSksIEZsb2F0UmVjdChzcmMubG9jYXRpb24oKSwg
RmxvYXRTaXplKHRzdywgdHNoKSksIHN0eWxlQ29sb3JTcGFjZSwgb3AsIGJsZW5kTW9kZSwgc2hv
dWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pOworICAgIGltYWdlLT5kcmF3KHRoaXMsIGRlc3Qs
IHNyYywgc3R5bGVDb2xvclNwYWNlLCBvcCwgYmxlbmRNb2RlLCBzaG91bGRSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbik7CiAKICAgICBpZiAodXNlTG93UXVhbGl0eVNjYWxlKQogICAgICAgICBzZXRJ
bWFnZUludGVycG9sYXRpb25RdWFsaXR5KHByZXZpb3VzSW50ZXJwb2xhdGlvblF1YWxpdHkpOwpA
QCAtNTQ1LDEyICs1NDEsMTYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxlZEltYWdl
KEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGMKIAogdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3Bh
Y2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgcCwgQ29tcG9zaXRlT3BlcmF0b3Ig
b3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCiB7Ci0gICAgZHJhd0ltYWdlQnVmZmVyKGltYWdlLCBz
dHlsZUNvbG9yU3BhY2UsIHAsIEludFJlY3QoMCwgMCwgLTEsIC0xKSwgb3AsIGJsZW5kTW9kZSk7
CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuOworICAgIGRyYXdJbWFnZUJ1ZmZlcihp
bWFnZSwgc3R5bGVDb2xvclNwYWNlLCBwLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdlLT5sb2dp
Y2FsU2l6ZSgpKSwgb3AsIGJsZW5kTW9kZSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgY29uc3QgSW50UmVjdCYgciwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBi
bGVuZE1vZGUsIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQogewotICAgIGRyYXdJbWFnZUJ1ZmZl
cihpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCByLCBJbnRSZWN0KDAsIDAsIC0xLCAtMSksIG9wLCBi
bGVuZE1vZGUsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAg
cmV0dXJuOworICAgIGRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCByLCBJ
bnRSZWN0KEludFBvaW50KCksIGltYWdlLT5sb2dpY2FsU2l6ZSgpKSwgb3AsIGJsZW5kTW9kZSwg
dXNlTG93UXVhbGl0eVNjYWxlKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFn
ZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBj
b25zdCBJbnRQb2ludCYgZGVzdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3Bl
cmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCkBAIC01NjMsMjYgKzU2MywxOCBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBpbWFnZSwgQ29s
b3JTcGFjZSBzdHlsZUNvbG9yUwogICAgIGRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgc3R5bGVDb2xv
clNwYWNlLCBGbG9hdFJlY3QoZGVzdCksIHNyY1JlY3QsIG9wLCBibGVuZE1vZGUsIHVzZUxvd1F1
YWxpdHlTY2FsZSk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIo
SW1hZ2VCdWZmZXIqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0KQoreworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybjsKKyAgICBk
cmF3SW1hZ2VCdWZmZXIoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgZGVzdCwgRmxvYXRSZWN0KElu
dFJlY3QoSW50UG9pbnQoKSwgaW1hZ2UtPmxvZ2ljYWxTaXplKCkpKSk7Cit9CisKIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIGltYWdlLCBDb2xvclNw
YWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyYywgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIGJvb2wg
dXNlTG93UXVhbGl0eVNjYWxlKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkgfHwgIWlt
YWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBmbG9hdCB0c3cgPSBzcmMud2lkdGgoKTsKLSAg
ICBmbG9hdCB0c2ggPSBzcmMuaGVpZ2h0KCk7Ci0gICAgZmxvYXQgdHcgPSBkZXN0LndpZHRoKCk7
Ci0gICAgZmxvYXQgdGggPSBkZXN0LmhlaWdodCgpOwotCi0gICAgaWYgKHRzdyA9PSAtMSkKLSAg
ICAgICAgdHN3ID0gaW1hZ2UtPmxvZ2ljYWxTaXplKCkud2lkdGgoKTsKLSAgICBpZiAodHNoID09
IC0xKQotICAgICAgICB0c2ggPSBpbWFnZS0+bG9naWNhbFNpemUoKS5oZWlnaHQoKTsKLQotICAg
IGlmICh0dyA9PSAtMSkKLSAgICAgICAgdHcgPSBpbWFnZS0+bG9naWNhbFNpemUoKS53aWR0aCgp
OwotICAgIGlmICh0aCA9PSAtMSkKLSAgICAgICAgdGggPSBpbWFnZS0+bG9naWNhbFNpemUoKS5o
ZWlnaHQoKTsKLQogICAgIGlmICh1c2VMb3dRdWFsaXR5U2NhbGUpIHsKICAgICAgICAgSW50ZXJw
b2xhdGlvblF1YWxpdHkgcHJldmlvdXNJbnRlcnBvbGF0aW9uUXVhbGl0eSA9IGltYWdlSW50ZXJw
b2xhdGlvblF1YWxpdHkoKTsKICNpZiBQTEFURk9STShDSFJPTUlVTSkKQEAgLTU5MSwxMCArNTgz
LDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIq
IGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTCiAgICAgICAgIC8vIEZJWE1FICg0OTAwMik6
IFNob3VsZCBiZSBJbnRlcnBvbGF0aW9uTG93CiAgICAgICAgIHNldEltYWdlSW50ZXJwb2xhdGlv
blF1YWxpdHkoSW50ZXJwb2xhdGlvbk5vbmUpOwogI2VuZGlmCi0gICAgICAgIGltYWdlLT5kcmF3
KHRoaXMsIHN0eWxlQ29sb3JTcGFjZSwgRmxvYXRSZWN0KGRlc3QubG9jYXRpb24oKSwgRmxvYXRT
aXplKHR3LCB0aCkpLCBGbG9hdFJlY3Qoc3JjLmxvY2F0aW9uKCksIEZsb2F0U2l6ZSh0c3csIHRz
aCkpLCBvcCwgYmxlbmRNb2RlLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAgICAgICBpbWFnZS0+
ZHJhdyh0aGlzLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3QsIHNyYywgb3AsIGJsZW5kTW9kZSwgdXNl
TG93UXVhbGl0eVNjYWxlKTsKICAgICAgICAgc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShw
cmV2aW91c0ludGVycG9sYXRpb25RdWFsaXR5KTsKICAgICB9IGVsc2UKLSAgICAgICAgaW1hZ2Ut
PmRyYXcodGhpcywgc3R5bGVDb2xvclNwYWNlLCBGbG9hdFJlY3QoZGVzdC5sb2NhdGlvbigpLCBG
bG9hdFNpemUodHcsIHRoKSksIEZsb2F0UmVjdChzcmMubG9jYXRpb24oKSwgRmxvYXRTaXplKHRz
dywgdHNoKSksIG9wLCBibGVuZE1vZGUsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgICAgIGlt
YWdlLT5kcmF3KHRoaXMsIHN0eWxlQ29sb3JTcGFjZSwgZGVzdCwgc3JjLCBvcCwgYmxlbmRNb2Rl
LCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCiAjaWYgIVBMQVRGT1JNKFFUKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCAx
YWM4Y2M4Yjg1N2E0OTM0NjVjNzA2YzhiNTBkMzhjNjQzODNhMTQ0Li4xMzI3MWY1YzBiZjU2NTU5
NmViZjhkMmY3YzQ1OTQ5OWM5OTViMjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtMzIyLDggKzMyMiw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNl
IHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UmVjdCYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29t
cG9zaXRlU291cmNlT3ZlciwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtID0gRG9Ob3RSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CiAg
ICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2Us
IGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBv
c2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgUmVzcGVjdEltYWdlT3JpZW50YXRp
b25FbnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CiAgICAgICAgIHZvaWQgZHJh
d0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3Qm
IGRlc3RSZWN0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENv
bXBvc2l0ZVNvdXJjZU92ZXIsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVz
cGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwot
ICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QgPSBG
bG9hdFJlY3QoMCwgMCwgLTEsIC0xKSwKLSAgICAgICAgICAgICAgICAgICAgICAgQ29tcG9zaXRl
T3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVu
dW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2Fs
ZSA9IGZhbHNlKTsKKyAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0
eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCk7CisgICAgICAgIHZvaWQg
ZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0
b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBE
b05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZh
bHNlKTsKICAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29s
b3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
bkVudW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlT
Y2FsZSA9IGZhbHNlKTsKICAgICAgICAgCiAgICAgICAgIHZvaWQgZHJhd1RpbGVkSW1hZ2UoSW1h
Z2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3Qs
IGNvbnN0IEludFBvaW50JiBzcmNQb2ludCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsCkBAIC0z
MzYsNyArMzM2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGRyYXdJbWFn
ZUJ1ZmZlcihJbWFnZUJ1ZmZlciosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJ
bnRSZWN0JiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBCbGVuZE1v
ZGUgPSBCbGVuZE1vZGVOb3JtYWwsIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwog
ICAgICAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciosIENvbG9yU3BhY2Ugc3R5
bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBjb25zdCBJbnRSZWN0JiBz
cmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9k
ZSA9IEJsZW5kTW9kZU5vcm1hbCk7CiAgICAgICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKEltYWdl
QnVmZmVyKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0
ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZU5vcm1hbCwgYm9vbCB1c2VMb3dRdWFs
aXR5U2NhbGUgPSBmYWxzZSk7Ci0gICAgICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVm
ZmVyKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCA9IEZsb2F0UmVjdCgwLCAwLCAtMSwgLTEpLCBD
b21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZSA9IEJsZW5k
TW9kZU5vcm1hbCwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CisgICAgICAgIHZv
aWQgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3Bh
Y2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpOworICAgICAgICB2b2lkIGRyYXdJbWFnZUJ1
ZmZlcihJbWFnZUJ1ZmZlciosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJh
dG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlID0gQmxlbmRNb2RlTm9ybWFsLCBi
b29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKIAogICAgICAgICB2b2lkIHNldEltYWdl
SW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvblF1YWxpdHkpOwogICAgICAgICBJbnRl
cnBvbGF0aW9uUXVhbGl0eSBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5KCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9z
aXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21w
b3NpdGUuY3BwCmluZGV4IDlkNTY2ZWQ5MjNkOTVhZDM0NDMxNzFhNzMwYTkwY2RlMzljYWNmMjgu
LmMxZjY0NDM4OTdiMDkxM2Q3N2I1NzNjZjIzMmJkYzY2MGVhY2Q5ZjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUu
Y3BwCkBAIC0yNzQsMTEgKzI3NCwxNSBAQCB2b2lkIEZFQ29tcG9zaXRlOjpwbGF0Zm9ybUFwcGx5
U29mdHdhcmUoKQogICAgICAgICByZXR1cm47CiAgICAgR3JhcGhpY3NDb250ZXh0KiBmaWx0ZXJD
b250ZXh0ID0gcmVzdWx0SW1hZ2UtPmNvbnRleHQoKTsKIAotICAgIEZsb2F0UmVjdCBzcmNSZWN0
ID0gRmxvYXRSZWN0KDAsIDAsIC0xLCAtMSk7CisgICAgSW1hZ2VCdWZmZXIqIGltZ0J1ZmZlciA9
IGluLT5hc0ltYWdlQnVmZmVyKCk7CisgICAgSW1hZ2VCdWZmZXIqIGltZ0J1ZmZlcjIgPSBpbjIt
PmFzSW1hZ2VCdWZmZXIoKTsKKyAgICBBU1NFUlQoaW1nQnVmZmVyKTsKKyAgICBBU1NFUlQoaW1n
QnVmZmVyMik7CisKICAgICBzd2l0Y2ggKG1fdHlwZSkgewogICAgIGNhc2UgRkVDT01QT1NJVEVf
T1BFUkFUT1JfT1ZFUjoKLSAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGlu
Mi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJ
bnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOwotICAgICAgICBmaWx0ZXJDb250
ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW4tPmFzSW1hZ2VCdWZmZXIoKSwgQ29sb3JTcGFjZURldmlj
ZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSkp
OworICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1nQnVmZmVyMiwgQ29s
b3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29sdXRl
UGFpbnRSZWN0KCkpKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGlt
Z0J1ZmZlciwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShp
bi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZFQ09N
UE9TSVRFX09QRVJBVE9SX0lOOiB7CiAgICAgICAgIC8vIEFwcGxpZXMgb25seSB0byB0aGUgaW50
ZXJzZWN0ZWQgcmVnaW9uLgpAQCAtMjkyLDIxICsyOTYsMjEgQEAgdm9pZCBGRUNvbXBvc2l0ZTo6
cGxhdGZvcm1BcHBseVNvZnR3YXJlKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRlc3RpbmF0aW9uUmVjdC55KCkgLSBpbi0+YWJzb2x1dGVQYWludFJlY3QoKS55KCkpLCBk
ZXN0aW5hdGlvblJlY3Quc2l6ZSgpKTsKICAgICAgICAgSW50UmVjdCBzb3VyY2UyUmVjdChJbnRQ
b2ludChkZXN0aW5hdGlvblJlY3QueCgpIC0gaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpLngoKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvblJlY3QueSgp
IC0gaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpLnkoKSksIGRlc3RpbmF0aW9uUmVjdC5zaXplKCkp
OwotICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW4yLT5hc0ltYWdlQnVm
ZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRlc3RpbmF0aW9uUG9pbnQsIHNvdXJjZTJSZWN0
KTsKLSAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGluLT5hc0ltYWdlQnVm
ZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRlc3RpbmF0aW9uUG9pbnQsIHNvdXJjZVJlY3Qs
IENvbXBvc2l0ZVNvdXJjZUluKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVm
ZmVyKGltZ0J1ZmZlcjIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRlc3RpbmF0aW9uUG9pbnQsIHNv
dXJjZTJSZWN0KTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltZ0J1
ZmZlciwgQ29sb3JTcGFjZURldmljZVJHQiwgZGVzdGluYXRpb25Qb2ludCwgc291cmNlUmVjdCwg
Q29tcG9zaXRlU291cmNlSW4pOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBGRUNP
TVBPU0lURV9PUEVSQVRPUl9PVVQ6Ci0gICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1
ZmZlcihpbi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVn
aW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7Ci0gICAgICAgIGZpbHRl
ckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbjItPmFzSW1hZ2VCdWZmZXIoKSwgQ29sb3JTcGFj
ZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29sdXRlUGFpbnRS
ZWN0KCkpLCBzcmNSZWN0LCBDb21wb3NpdGVEZXN0aW5hdGlvbk91dCk7CisgICAgICAgIGZpbHRl
ckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWdCdWZmZXIsIENvbG9yU3BhY2VEZXZpY2VSR0Is
IGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKKyAg
ICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltZ0J1ZmZlcjIsIENvbG9yU3Bh
Y2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50
UmVjdCgpKSwgSW50UmVjdChJbnRQb2ludCgpLCBpbWdCdWZmZXIyLT5sb2dpY2FsU2l6ZSgpKSwg
Q29tcG9zaXRlRGVzdGluYXRpb25PdXQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZFQ09N
UE9TSVRFX09QRVJBVE9SX0FUT1A6Ci0gICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1
ZmZlcihpbjItPmFzSW1hZ2VCdWZmZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1Jl
Z2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKLSAgICAgICAgZmls
dGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGluLT5hc0ltYWdlQnVmZmVyKCksIENvbG9yU3Bh
Y2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRS
ZWN0KCkpLCBzcmNSZWN0LCBDb21wb3NpdGVTb3VyY2VBdG9wKTsKKyAgICAgICAgZmlsdGVyQ29u
dGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltZ0J1ZmZlcjIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRy
YXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7CisgICAg
ICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWdCdWZmZXIsIENvbG9yU3BhY2VE
ZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0
KCkpLCBJbnRSZWN0KEludFBvaW50KCksIGltZ0J1ZmZlci0+bG9naWNhbFNpemUoKSksIENvbXBv
c2l0ZVNvdXJjZUF0b3ApOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZFQ09NUE9TSVRFX09Q
RVJBVE9SX1hPUjoKLSAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGluMi0+
YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1
dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOwotICAgICAgICBmaWx0ZXJDb250ZXh0
LT5kcmF3SW1hZ2VCdWZmZXIoaW4tPmFzSW1hZ2VCdWZmZXIoKSwgQ29sb3JTcGFjZURldmljZVJH
QiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSksIHNy
Y1JlY3QsIENvbXBvc2l0ZVhPUik7CisgICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1
ZmZlcihpbWdCdWZmZXIyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1
dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOworICAgICAgICBmaWx0ZXJDb250ZXh0
LT5kcmF3SW1hZ2VCdWZmZXIoaW1nQnVmZmVyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5n
UmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSwgSW50UmVjdChJbnRQ
b2ludCgpLCBpbWdCdWZmZXItPmxvZ2ljYWxTaXplKCkpLCBDb21wb3NpdGVYT1IpOwogICAgICAg
ICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVy
LmgKaW5kZXggODNiZGZlMmI3MjI2OGIwMjhlNzNmZDg0ZDczZGMyYjQwYjA5MGY0My4uNjhmOGZh
MWI1OWZmYjYxZmU3NDU4OWJjNzZjYTU3NzQ4N2RkNzM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVy
LmgKQEAgLTUxLDkgKzUxLDggQEAgY2xhc3MgSW1hZ2VHU3RyZWFtZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxJbWFnZUdTdHJlYW1lcj4gewogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIW1fY3Jv
cFJlY3QuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBGbG9hdFJlY3QobV9jcm9w
UmVjdCk7Ci0KLSAgICAgICAgICAgIC8vIERlZmF1bHQgcmVjdGFuZ2xlIHVzZWQgYnkgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3SW1hZ2UoKS4KLSAgICAgICAgICAgIHJldHVybiBGbG9hdFJlY3QoMCwg
MCwgLTEsIC0xKTsKKyAgICAgICAgICAgIEFTU0VSVChtX2ltYWdlKTsKKyAgICAgICAgICAgIHJl
dHVybiBGbG9hdFJlY3QoMCwgMCwgbV9pbWFnZS0+c2l6ZSgpLndpZHRoKCksIG1faW1hZ2UtPnNp
emUoKS5oZWlnaHQoKSk7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTk4MmE3
ZDA0N2NlNmMxOWJjOGQ4NzEwZGI4MTlmZGJkNGVjNjY1Yi4uYzQ3YTQ2ZDU0YWI1YjY3NjFhNTg1
MmNhOGU5MjczODU1NDBjYTkxOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEyLTE0ICBB
cm5hdWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAg
aW5jb25zaXN0ZW5jeSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJnZXQgcmVjdCBuZWdhdGl2ZSBkaW1l
bnNpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAwMDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGEgZHJhd0ltYWdlIGNoZWNrIGZvciBhIGRlc3RpbmF0aW9uIHJlY3RhbmdsZSB3aXRoIC0x
cHgKKyAgICAgICAgd2lkdGgvaGVpZ2h0LiBXaGVuIGRyYXdpbmcgdG8gKDEsIDEsIC0xLCAtMSkg
cmVjdGFuZ2xlLCBmaXJzdAorICAgICAgICAodG9wLWxlZnQpIHBpeGVsIHNob3VsZCBoYXZlIGJl
ZW4gYW5kIGJlZW4gdGhlIG9ubHkgb25lIGRyYXduIGludG8uCisKKyAgICAgICAgKiBmYXN0L2Nh
bnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24tZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJj
ZS1kZXN0aW5hdGlvbi5qczoKKwogMjAxMi0xMi0xMyAgUmljayBCeWVycyAgPHJieWVyc0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgTGF5b3V0IFRlc3QgZmFzdC9ldmVudHMvbW91c2UtY3Vyc29y
LWltYWdlLXNldC5odG1sIGlzIGZsYWt5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291
cmNlLWRlc3RpbmF0aW9uLWV4cGVjdGVkLnR4dAppbmRleCA3Mzg1NjhiMGNlMTIyMmVmODRhNDhk
Y2ZmMDQwNzBlYmYyNWI4MGE1Li5mNDFhYzkyMzcwNWI3OWNiNDM4NWE2M2YxNzA2ZDIyODE0ODE0
MDg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1u
ZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi1l
eHBlY3RlZC50eHQKQEAgLTYsNiArNiwxMiBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogUEFT
UyBpbWdkYXRhWzRdIGlzIDAKIFBBU1MgaW1nZGF0YVs1XSBpcyAyNTUKIFBBU1MgaW1nZGF0YVs2
XSBpcyAwCitQQVNTIGltZ2RhdGFbMF0gaXMgMjU1CitQQVNTIGltZ2RhdGFbMV0gaXMgMAorUEFT
UyBpbWdkYXRhWzJdIGlzIDAKK1BBU1MgaW1nZGF0YVs0XSBpcyAwCitQQVNTIGltZ2RhdGFbNV0g
aXMgMAorUEFTUyBpbWdkYXRhWzZdIGlzIDAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
ZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLmpzIGIvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9u
LmpzCmluZGV4IDBhOGEwOWMxNTIzNTgyY2JjMTViMWQ2YWQ1NTM2MDdhZDQyYmZhZGQuLjY3MWZk
NzNiNmM1NjA2ZDFkZTc0ZDU3MDdkNzAwYzkwNjY0YWRhMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlv
bi5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2
ZS1zb3VyY2UtZGVzdGluYXRpb24uanMKQEAgLTE5LDMgKzE5LDE2IEBAIHZhciBpbWdkYXRhID0g
aW1hZ2VEYXRhLmRhdGE7CiBzaG91bGRCZSgiaW1nZGF0YVs0XSIsICIwIik7CiBzaG91bGRCZSgi
aW1nZGF0YVs1XSIsICIyNTUiKTsKIHNob3VsZEJlKCJpbWdkYXRhWzZdIiwgIjAiKTsKKworLy8g
dGVzdCB3aWR0aCBvciBoZWlnaHQgLTEKK2NhbnZhcy5maWxsU3R5bGUgPSAnIzAwMCc7CitjYW52
YXMuZmlsbFJlY3QoMCwgMCwgMSwgMik7CitjYW52YXMuZHJhd0ltYWdlKGNhbnZhczIsIDAsIDAs
IDEsIDEsIDEsIDEsIC0xLCAtMSk7Cit2YXIgaW1hZ2VEYXRhID0gY2FudmFzLmdldEltYWdlRGF0
YSgwLCAwLCAxLCAyKTsKK3ZhciBpbWdkYXRhID0gaW1hZ2VEYXRhLmRhdGE7CitzaG91bGRCZSgi
aW1nZGF0YVswXSIsICIyNTUiKTsKK3Nob3VsZEJlKCJpbWdkYXRhWzFdIiwgIjAiKTsKK3Nob3Vs
ZEJlKCJpbWdkYXRhWzJdIiwgIjAiKTsKK3Nob3VsZEJlKCJpbWdkYXRhWzRdIiwgIjAiKTsKK3No
b3VsZEJlKCJpbWdkYXRhWzVdIiwgIjAiKTsKK3Nob3VsZEJlKCJpbWdkYXRhWzZdIiwgIjAiKTsK
ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2FudmFzL2RyYXdpbWFnZS5odG1sIGIvUGVy
Zm9ybWFuY2VUZXN0cy9DYW52YXMvZHJhd2ltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzlkNDQ5MjBl
OTkzODVhNDRmNmUxMmFmYTM4OTVhMmUwZmY1NjU5YQotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZv
cm1hbmNlVGVzdHMvQ2FudmFzL2RyYXdpbWFnZS5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVu
bmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3ZhciBzb3VyY2UgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJjYW52YXMiKTsKK3NvdXJjZS53aWR0aCA9IDMwMDsKK3NvdXJjZS5oZWlnaHQg
PSAxNTA7Citzb3VyY2UuZ2V0Q29udGV4dCgiMmQiKS5maWxsU3R5bGUgPSAnZ3JlZW4nOworc291
cmNlLmdldENvbnRleHQoIjJkIikuZmlsbFJlY3QoMCwgMCwgc291cmNlLndpZHRoLCBzb3VyY2Uu
aGVpZ2h0KTsKKwordmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIp
OwordGFyZ2V0LndpZHRoID0gc291cmNlLndpZHRoOwordGFyZ2V0LmhlaWdodCA9IHNvdXJjZS5o
ZWlnaHQ7Cit2YXIgY29udGV4dCA9IHRhcmdldC5nZXRDb250ZXh0KCIyZCIpCisKK1BlcmZUZXN0
UnVubmVyLm1lYXN1cmVSdW5zUGVyU2Vjb25kKHtydW46IGZ1bmN0aW9uKCkgeworICAgIGNvbnRl
eHQuZHJhd0ltYWdlKHNvdXJjZSwgMCwgMCk7ICAgCit9fSk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9y
bWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmM5NjNjZmRmZTczZjBlMGU5YjM1YzNjMTA0M2Q5
OTE3OTQ2OGNhOS4uMGIyZmFiOTA5MmViOTkwYzFmZTJlYTUwOTQ2ZjhlOWFmYTg3MTRlMCAxMDA2
NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMi0xNCAgQXJuYXVkIFJlbmV2aWVy
ICA8YS5yZW5ldmllckBzaXNhLnNhbXN1bmcuY29tPgorCisgICAgICAgIGluY29uc2lzdGVuY3kg
aW4gZHJhd0ltYWdlIHdpdGggdGFyZ2V0IHJlY3QgbmVnYXRpdmUgZGltZW5zaW9ucy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDAyNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0ZSBhIGRyYXdJ
bWFnZSBwZXJmb3JtYW5jZSB0ZXN0LiBUaGVyZSBpcyBubyBzaWduaWZpY2F0aXZlIGNoYW5nZQor
ICAgICAgICBpbiBwZXJmb3JtYW5jZTogMjcxNDQuNjg1MTUyOCBydW5zL3Mgd2l0aG91dCB0aGUg
cGF0Y2g7IDI3MTUzLjUxNzYxMgorICAgICAgICBydW5zL3Mgd2l0aCB0aGUgcGF0Y2guIFRlc3Qg
aXMgY3VycmVudGx5IHNraXBwZWQuCisKKyAgICAgICAgKiBDYW52YXMvZHJhd2ltYWdlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIFNraXBwZWQ6CisKIDIwMTItMTItMTMgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtIHBlcmZdIERPTS9ET01XYWxr
Lmh0bWwgZmFpbHVyZXMKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvU2tpcHBlZCBiL1Bl
cmZvcm1hbmNlVGVzdHMvU2tpcHBlZAppbmRleCA1MDkyMzRhYjgxMzU3NGQyZjQyMzQ3MjQ1OGE5
Mzg0YzZlMGRkODAwLi41ZmQ0MTQ5MjI0ODExNzJhMDE1OGRlNWE2M2M4NDQ3MGVlMTljMGIxIDEw
MDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL1NraXBwZWQKKysrIGIvUGVyZm9ybWFuY2VUZXN0
cy9Ta2lwcGVkCkBAIC02MiwzICs2Miw1IEBAIFNWRy9TdmdOZXN0ZWRVc2UuaHRtbAogCiAjIEJ1
ZyAxMDI2NDYgLSBTaGFkb3dET00gaXMgbm90IGVuYWJsZWQgaW4gc29tZSBwb3J0cy4KIFNoYWRv
d0RPTQorCitDYW52YXMvZHJhd2ltYWdlLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182865</attachid>
            <date>2013-01-15 16:04:10 -0800</date>
            <delta_ts>2013-01-16 12:26:31 -0800</delta_ts>
            <desc>same patch except s/imgBuffer/imageBuffer/ and s/imgBuffer2/imageBuffer2/</desc>
            <filename>bug-100026-20130115160110.patch</filename>
            <type>text/plain</type>
            <size>21710</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc3ODYxZDdjMDA0YWIx
OWViZjZkNGEwMDZhNzA3NTE1YzQwZTQ5Mi4uY2YxZWJiNjZiNzc2MzQ5M2NiOTZlYTEyZTQ3YTJh
YmQ3M2I0M2FmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTEyLTE0ICBBcm5h
dWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgaW5j
b25zaXN0ZW5jeSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJnZXQgcmVjdCBuZWdhdGl2ZSBkaW1lbnNp
b25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAw
MDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIC0xLCAtMSBzcGVjaWFsIGNhc2UgaW4gZHJhd0ltYWdlIGFuZCBkcmF3SW1hZ2VCdWZmZXIu
IFJlcGxhY2UKKyAgICAgICAgYWxsIC0xIC0xIGFyZ3VtZW50cyBjYWxscyB0byB3aXRoIHRoZSBj
b3JyZWN0IHJlY3RhbmdsZSBkaW1lbnNpb25zLgorCisgICAgICAgIFJlbW92ZSBGbG9hdFJlY3Qo
MCwgMCwgLTEsIC0xKSBkZWZhdWx0IGFyZ3VtZW50IGZvciBzcmNSZWN0LCBhbmQKKyAgICAgICAg
aW5zdGVhZCwgYWRkIG5ldyBvdmVybG9hZGVkIGZ1bmN0aW9ucyB0byBjcmVhdGUgYSBGbG9hdFJl
Y3QgZnJvbSBpbWFnZQorICAgICAgICBzaXplLgorCisgICAgICAgIFJlcGxhY2UgLTEgLTEgYXJn
dW1lbnRzIGNhbGxzIGluIEZFQ29tcG9zaXRlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUKKyAgICAg
ICAgd2l0aCBjb3JyZWN0IHJlY3RhbmdsZSBkaW1lbnNpb25zLgorCisgICAgICAgIFJlcGxhY2Ug
SW1hZ2VHU3RyZWFtZXIgcmVjdCBtZXRob2QgKHdoaWNoIG1heSByZXR1cm4gLTEgLTEgcmVjdGFu
Z2xlKQorICAgICAgICB3aXRoIGNyb3BSZWN0IG1ldGhvZCwgYW5kIG1ha2UgY2FsbGVyIGNoZWNr
IGZvciByZWN0YW5nbGUgZW1wdGluZXNzLgorCisgICAgICAgICogZmFzdC9jYW52YXMvZHJhd0lt
YWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRp
b24uanM6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFn
ZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6
CisgICAgICAgIChHcmFwaGljc0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVDb21wb3NpdGU6
OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUdTdHJlYW1l
cjo6cmVjdCk6CisKIDIwMTItMTItMjAgIEFybmF1ZCBSZW5ldmllciAgPGEucmVuZXZpZXJAc2lz
YS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBbR1RLXSBBZGQgc3VwcG9ydCBmb3IgY29sb3IgaW5w
dXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuY3BwCmluZGV4IGQ0ZDVjNDBhZjZmZjE2MGI0ZGUzMzU1MDM1ZDFmY2VmY2ZhZjM0ODAu
LjY5YWQ0ZmRkMjkwNWVkYmRhYzVhYTlmZGQ3Y2JlNGNlOTc2MzM4OWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAt
NDQ4LDEyICs0NDgsMTYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdIaWdobGlnaHRGb3JU
ZXh0KGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwKIAogdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNw
YWNlLCBjb25zdCBJbnRQb2ludCYgcCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKIHsKLSAgICBk
cmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgcCwgSW50UmVjdCgwLCAwLCAtMSwgLTEp
LCBvcCwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pOworICAgIGlmICghaW1hZ2UpCisg
ICAgICAgIHJldHVybjsKKyAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgcCwg
SW50UmVjdChJbnRQb2ludCgpLCBpbWFnZS0+c2l6ZSgpKSwgb3AsIHNob3VsZFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFn
ZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiByLCBD
b21wb3NpdGVPcGVyYXRvciBvcCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKIHsKLSAgICBk
cmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgciwgSW50UmVjdCgwLCAwLCAtMSwgLTEp
LCBvcCwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7
CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuOworICAgIGRyYXdJbWFnZShpbWFnZSwg
c3R5bGVDb2xvclNwYWNlLCByLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdlLT5zaXplKCkpLCBv
cCwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9
CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNw
YWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UG9pbnQmIGRlc3QsIGNvbnN0IEludFJlY3Qm
IHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVu
dW0gc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCkBAIC00NzEsMjUgKzQ3NSwxNyBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBz
dHlsZUNvbG9yU3BhY2UsIGNvbnN0CiAgICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3Bh
Y2UsIEZsb2F0UmVjdChkZXN0KSwgc3JjLCBvcCwgQmxlbmRNb2RlTm9ybWFsLCBzaG91bGRSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbiwgdXNlTG93UXVhbGl0eVNjYWxlKTsKIH0KIAordm9pZCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xv
clNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3QpCit7CisgICAgaWYgKCFpbWFnZSkKKyAgICAg
ICAgcmV0dXJuOworICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBkZXN0LCBG
bG9hdFJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBpbWFnZS0+c2l6ZSgpKSkpOworfQorCiB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdCwgY29uc3QgRmxvYXRSZWN0JiBzcmMs
IENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wgdXNlTG93
UXVhbGl0eVNjYWxlKQogeyAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpIHx8ICFpbWFnZSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgZmxvYXQgdHN3ID0gc3JjLndpZHRoKCk7Ci0gICAgZmxvYXQg
dHNoID0gc3JjLmhlaWdodCgpOwotICAgIGZsb2F0IHR3ID0gZGVzdC53aWR0aCgpOwotICAgIGZs
b2F0IHRoID0gZGVzdC5oZWlnaHQoKTsKLQotICAgIGlmICh0c3cgPT0gLTEpCi0gICAgICAgIHRz
dyA9IGltYWdlLT53aWR0aCgpOwotICAgIGlmICh0c2ggPT0gLTEpCi0gICAgICAgIHRzaCA9IGlt
YWdlLT5oZWlnaHQoKTsKLQotICAgIGlmICh0dyA9PSAtMSkKLSAgICAgICAgdHcgPSBpbWFnZS0+
d2lkdGgoKTsKLSAgICBpZiAodGggPT0gLTEpCi0gICAgICAgIHRoID0gaW1hZ2UtPmhlaWdodCgp
OwotCiAgICAgSW50ZXJwb2xhdGlvblF1YWxpdHkgcHJldmlvdXNJbnRlcnBvbGF0aW9uUXVhbGl0
eSA9IEludGVycG9sYXRpb25EZWZhdWx0OwogCiAgICAgaWYgKHVzZUxvd1F1YWxpdHlTY2FsZSkg
ewpAQCAtNTAyLDcgKzQ5OCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1h
Z2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QKICNlbmRpZgogICAg
IH0KIAotICAgIGltYWdlLT5kcmF3KHRoaXMsIEZsb2F0UmVjdChkZXN0LmxvY2F0aW9uKCksIEZs
b2F0U2l6ZSh0dywgdGgpKSwgRmxvYXRSZWN0KHNyYy5sb2NhdGlvbigpLCBGbG9hdFNpemUodHN3
LCB0c2gpKSwgc3R5bGVDb2xvclNwYWNlLCBvcCwgYmxlbmRNb2RlLCBzaG91bGRSZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbik7CisgICAgaW1hZ2UtPmRyYXcodGhpcywgZGVzdCwgc3JjLCBzdHlsZUNv
bG9yU3BhY2UsIG9wLCBibGVuZE1vZGUsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsK
IAogICAgIGlmICh1c2VMb3dRdWFsaXR5U2NhbGUpCiAgICAgICAgIHNldEltYWdlSW50ZXJwb2xh
dGlvblF1YWxpdHkocHJldmlvdXNJbnRlcnBvbGF0aW9uUXVhbGl0eSk7CkBAIC01NDUsMTIgKzU0
MSwxNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UqIGltYWdl
LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgYwogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9y
U3BhY2UsIGNvbnN0IEludFBvaW50JiBwLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2Rl
IGJsZW5kTW9kZSkKIHsKLSAgICBkcmF3SW1hZ2VCdWZmZXIoaW1hZ2UsIHN0eWxlQ29sb3JTcGFj
ZSwgcCwgSW50UmVjdCgwLCAwLCAtMSwgLTEpLCBvcCwgYmxlbmRNb2RlKTsKKyAgICBpZiAoIWlt
YWdlKQorICAgICAgICByZXR1cm47CisgICAgZHJhd0ltYWdlQnVmZmVyKGltYWdlLCBzdHlsZUNv
bG9yU3BhY2UsIHAsIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2UtPmxvZ2ljYWxTaXplKCkpLCBv
cCwgYmxlbmRNb2RlKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZl
cihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJ
bnRSZWN0JiByLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgYm9v
bCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7Ci0gICAgZHJhd0ltYWdlQnVmZmVyKGltYWdlLCBzdHls
ZUNvbG9yU3BhY2UsIHIsIEludFJlY3QoMCwgMCwgLTEsIC0xKSwgb3AsIGJsZW5kTW9kZSwgdXNl
TG93UXVhbGl0eVNjYWxlKTsKKyAgICBpZiAoIWltYWdlKQorICAgICAgICByZXR1cm47CisgICAg
ZHJhd0ltYWdlQnVmZmVyKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHIsIEludFJlY3QoSW50UG9p
bnQoKSwgaW1hZ2UtPmxvZ2ljYWxTaXplKCkpLCBvcCwgYmxlbmRNb2RlLCB1c2VMb3dRdWFsaXR5
U2NhbGUpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdl
QnVmZmVyKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50
JiBkZXN0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxl
bmRNb2RlIGJsZW5kTW9kZSkKQEAgLTU2MywyNiArNTYzLDE4IEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxl
Q29sb3JTCiAgICAgZHJhd0ltYWdlQnVmZmVyKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIEZsb2F0
UmVjdChkZXN0KSwgc3JjUmVjdCwgb3AsIGJsZW5kTW9kZSwgdXNlTG93UXVhbGl0eVNjYWxlKTsK
IH0KIAordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciog
aW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3Qp
Cit7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuOworICAgIGRyYXdJbWFnZUJ1ZmZl
cihpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBkZXN0LCBGbG9hdFJlY3QoSW50UmVjdChJbnRQb2lu
dCgpLCBpbWFnZS0+bG9naWNhbFNpemUoKSkpKTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xv
clNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBDb21w
b3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgYm9vbCB1c2VMb3dRdWFsaXR5
U2NhbGUpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSB8fCAhaW1hZ2UpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGZsb2F0IHRzdyA9IHNyYy53aWR0aCgpOwotICAgIGZsb2F0IHRzaCA9
IHNyYy5oZWlnaHQoKTsKLSAgICBmbG9hdCB0dyA9IGRlc3Qud2lkdGgoKTsKLSAgICBmbG9hdCB0
aCA9IGRlc3QuaGVpZ2h0KCk7Ci0KLSAgICBpZiAodHN3ID09IC0xKQotICAgICAgICB0c3cgPSBp
bWFnZS0+bG9naWNhbFNpemUoKS53aWR0aCgpOwotICAgIGlmICh0c2ggPT0gLTEpCi0gICAgICAg
IHRzaCA9IGltYWdlLT5sb2dpY2FsU2l6ZSgpLmhlaWdodCgpOwotCi0gICAgaWYgKHR3ID09IC0x
KQotICAgICAgICB0dyA9IGltYWdlLT5sb2dpY2FsU2l6ZSgpLndpZHRoKCk7Ci0gICAgaWYgKHRo
ID09IC0xKQotICAgICAgICB0aCA9IGltYWdlLT5sb2dpY2FsU2l6ZSgpLmhlaWdodCgpOwotCiAg
ICAgaWYgKHVzZUxvd1F1YWxpdHlTY2FsZSkgewogICAgICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0
eSBwcmV2aW91c0ludGVycG9sYXRpb25RdWFsaXR5ID0gaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0
eSgpOwogI2lmIFBMQVRGT1JNKENIUk9NSVVNKQpAQCAtNTkxLDEwICs1ODMsMTAgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9y
U3BhY2Ugc3R5bGVDb2xvclMKICAgICAgICAgLy8gRklYTUUgKDQ5MDAyKTogU2hvdWxkIGJlIElu
dGVycG9sYXRpb25Mb3cKICAgICAgICAgc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRl
cnBvbGF0aW9uTm9uZSk7CiAjZW5kaWYKLSAgICAgICAgaW1hZ2UtPmRyYXcodGhpcywgc3R5bGVD
b2xvclNwYWNlLCBGbG9hdFJlY3QoZGVzdC5sb2NhdGlvbigpLCBGbG9hdFNpemUodHcsIHRoKSks
IEZsb2F0UmVjdChzcmMubG9jYXRpb24oKSwgRmxvYXRTaXplKHRzdywgdHNoKSksIG9wLCBibGVu
ZE1vZGUsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgICAgIGltYWdlLT5kcmF3KHRoaXMsIHN0
eWxlQ29sb3JTcGFjZSwgZGVzdCwgc3JjLCBvcCwgYmxlbmRNb2RlLCB1c2VMb3dRdWFsaXR5U2Nh
bGUpOwogICAgICAgICBzZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KHByZXZpb3VzSW50ZXJw
b2xhdGlvblF1YWxpdHkpOwogICAgIH0gZWxzZQotICAgICAgICBpbWFnZS0+ZHJhdyh0aGlzLCBz
dHlsZUNvbG9yU3BhY2UsIEZsb2F0UmVjdChkZXN0LmxvY2F0aW9uKCksIEZsb2F0U2l6ZSh0dywg
dGgpKSwgRmxvYXRSZWN0KHNyYy5sb2NhdGlvbigpLCBGbG9hdFNpemUodHN3LCB0c2gpKSwgb3As
IGJsZW5kTW9kZSwgdXNlTG93UXVhbGl0eVNjYWxlKTsKKyAgICAgICAgaW1hZ2UtPmRyYXcodGhp
cywgc3R5bGVDb2xvclNwYWNlLCBkZXN0LCBzcmMsIG9wLCBibGVuZE1vZGUsIHVzZUxvd1F1YWxp
dHlTY2FsZSk7CiB9CiAKICNpZiAhUExBVEZPUk0oUVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IDhlMTJlMDlkMTM2ZDI3
ZTY3YTA2NDkzYzdmNGU5Yzg2N2YwOTk3YmEuLjlkMzg5ZjYxYzgzZmUyMTMxMDk1NjIzZWZiMzUy
ZWEwYmU3NzM3ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5oCkBAIC0zMjIsOCArMzIyLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNw
YWNlLCBjb25zdCBJbnRSZWN0JiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VP
dmVyLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKICAgICAgICAgdm9pZCBk
cmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UG9p
bnQmIGRlc3RQb2ludCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Ig
PSBDb21wb3NpdGVTb3VyY2VPdmVyLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBEb05v
dFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKICAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2Uq
LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNl
T3ZlciwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7Ci0gICAgICAgIHZvaWQg
ZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCA9IEZsb2F0UmVjdCgwLCAw
LCAtMSwgLTEpLAotICAgICAgICAgICAgICAgICAgICAgICBDb21wb3NpdGVPcGVyYXRvciA9IENv
bXBvc2l0ZVNvdXJjZU92ZXIsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVz
cGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwor
ICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KTsKKyAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1h
Z2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0
ZVNvdXJjZU92ZXIsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVzcGVjdElt
YWdlT3JpZW50YXRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwogICAgICAg
ICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0
ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90
UmVzcGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2Up
OwogICAgICAgICAKICAgICAgICAgdm9pZCBkcmF3VGlsZWRJbWFnZShJbWFnZSosIENvbG9yU3Bh
Y2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCwgY29uc3QgSW50UG9p
bnQmIHNyY1BvaW50LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwKQEAgLTMzNiw3ICszMzYsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKEltYWdl
QnVmZmVyKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmLCBDb21w
b3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZSA9IEJsZW5kTW9k
ZU5vcm1hbCwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CiAgICAgICAgIHZvaWQg
ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2Us
IGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBv
c2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlID0gQmxlbmRNb2Rl
Tm9ybWFsKTsKICAgICAgICAgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqLCBDb2xv
clNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QsIGNvbnN0IElu
dFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3Zlciwg
QmxlbmRNb2RlID0gQmxlbmRNb2RlTm9ybWFsLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZh
bHNlKTsKLSAgICAgICAgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqLCBDb2xvclNw
YWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0ID0gRmxvYXRSZWN0KDAsIDAsIC0xLCAtMSksIENvbXBvc2l0ZU9wZXJh
dG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlID0gQmxlbmRNb2RlTm9ybWFsLCBi
b29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKKyAgICAgICAgdm9pZCBkcmF3SW1hZ2VC
dWZmZXIoSW1hZ2VCdWZmZXIqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCk7CisgICAgICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVm
ZmVyKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3Np
dGVTb3VyY2VPdmVyLCBCbGVuZE1vZGUgPSBCbGVuZE1vZGVOb3JtYWwsIGJvb2wgdXNlTG93UXVh
bGl0eVNjYWxlID0gZmFsc2UpOwogCiAgICAgICAgIHZvaWQgc2V0SW1hZ2VJbnRlcnBvbGF0aW9u
UXVhbGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0eSk7CiAgICAgICAgIEludGVycG9sYXRpb25RdWFs
aXR5IGltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKaW5k
ZXggOWQ1NjZlZDkyM2Q5NWFkMzQ0MzE3MWE3MzBhOTBjZGUzOWNhY2YyOC4uMjdlNzNhYTljZjU3
NTEwZTQzMmI0NDg1OTdhZTRmYjkxYzYxOTNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKQEAgLTI3NCwx
MSArMjc0LDE1IEBAIHZvaWQgRkVDb21wb3NpdGU6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiAg
ICAgICAgIHJldHVybjsKICAgICBHcmFwaGljc0NvbnRleHQqIGZpbHRlckNvbnRleHQgPSByZXN1
bHRJbWFnZS0+Y29udGV4dCgpOwogCi0gICAgRmxvYXRSZWN0IHNyY1JlY3QgPSBGbG9hdFJlY3Qo
MCwgMCwgLTEsIC0xKTsKKyAgICBJbWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXIgPSBpbi0+YXNJbWFn
ZUJ1ZmZlcigpOworICAgIEltYWdlQnVmZmVyKiBpbWFnZUJ1ZmZlcjIgPSBpbjItPmFzSW1hZ2VC
dWZmZXIoKTsKKyAgICBBU1NFUlQoaW1hZ2VCdWZmZXIpOworICAgIEFTU0VSVChpbWFnZUJ1ZmZl
cjIpOworCiAgICAgc3dpdGNoIChtX3R5cGUpIHsKICAgICBjYXNlIEZFQ09NUE9TSVRFX09QRVJB
VE9SX09WRVI6Ci0gICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbjItPmFz
SW1hZ2VCdWZmZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJ
bWFnZShpbjItPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKLSAgICAgICAgZmlsdGVyQ29udGV4dC0+
ZHJhd0ltYWdlQnVmZmVyKGluLT5hc0ltYWdlQnVmZmVyKCksIENvbG9yU3BhY2VEZXZpY2VSR0Is
IGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKKyAg
ICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltYWdlQnVmZmVyMiwgQ29sb3JT
cGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29sdXRlUGFp
bnRSZWN0KCkpKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltYWdl
QnVmZmVyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGlu
LT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRkVDT01Q
T1NJVEVfT1BFUkFUT1JfSU46IHsKICAgICAgICAgLy8gQXBwbGllcyBvbmx5IHRvIHRoZSBpbnRl
cnNlY3RlZCByZWdpb24uCkBAIC0yOTIsMjEgKzI5NiwyMSBAQCB2b2lkIEZFQ29tcG9zaXRlOjpw
bGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGVzdGluYXRpb25SZWN0LnkoKSAtIGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpLnkoKSksIGRl
c3RpbmF0aW9uUmVjdC5zaXplKCkpOwogICAgICAgICBJbnRSZWN0IHNvdXJjZTJSZWN0KEludFBv
aW50KGRlc3RpbmF0aW9uUmVjdC54KCkgLSBpbjItPmFic29sdXRlUGFpbnRSZWN0KCkueCgpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uUmVjdC55KCkg
LSBpbjItPmFic29sdXRlUGFpbnRSZWN0KCkueSgpKSwgZGVzdGluYXRpb25SZWN0LnNpemUoKSk7
Ci0gICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbjItPmFzSW1hZ2VCdWZm
ZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZGVzdGluYXRpb25Qb2ludCwgc291cmNlMlJlY3Qp
OwotICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW4tPmFzSW1hZ2VCdWZm
ZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZGVzdGluYXRpb25Qb2ludCwgc291cmNlUmVjdCwg
Q29tcG9zaXRlU291cmNlSW4pOworICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZm
ZXIoaW1hZ2VCdWZmZXIyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkZXN0aW5hdGlvblBvaW50LCBz
b3VyY2UyUmVjdCk7CisgICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWFn
ZUJ1ZmZlciwgQ29sb3JTcGFjZURldmljZVJHQiwgZGVzdGluYXRpb25Qb2ludCwgc291cmNlUmVj
dCwgQ29tcG9zaXRlU291cmNlSW4pOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBG
RUNPTVBPU0lURV9PUEVSQVRPUl9PVVQ6Ci0gICAgICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFn
ZUJ1ZmZlcihpbi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5n
UmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7Ci0gICAgICAgIGZp
bHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbjItPmFzSW1hZ2VCdWZmZXIoKSwgQ29sb3JT
cGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29sdXRlUGFp
bnRSZWN0KCkpLCBzcmNSZWN0LCBDb21wb3NpdGVEZXN0aW5hdGlvbk91dCk7CisgICAgICAgIGZp
bHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgQ29sb3JTcGFjZURldmlj
ZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSkp
OworICAgICAgICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIyLCBD
b2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1
dGVQYWludFJlY3QoKSksIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXIyLT5sb2dpY2Fs
U2l6ZSgpKSwgQ29tcG9zaXRlRGVzdGluYXRpb25PdXQpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEZFQ09NUE9TSVRFX09QRVJBVE9SX0FUT1A6Ci0gICAgICAgIGZpbHRlckNvbnRleHQtPmRy
YXdJbWFnZUJ1ZmZlcihpbjItPmFzSW1hZ2VCdWZmZXIoKSwgQ29sb3JTcGFjZURldmljZVJHQiwg
ZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKLSAg
ICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGluLT5hc0ltYWdlQnVmZmVyKCks
IENvbG9yU3BhY2VEZXZpY2VSR0IsIGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29s
dXRlUGFpbnRSZWN0KCkpLCBzcmNSZWN0LCBDb21wb3NpdGVTb3VyY2VBdG9wKTsKKyAgICAgICAg
ZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltYWdlQnVmZmVyMiwgQ29sb3JTcGFjZURl
dmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbjItPmFic29sdXRlUGFpbnRSZWN0
KCkpKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltYWdlQnVmZmVy
LCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNv
bHV0ZVBhaW50UmVjdCgpKSwgSW50UmVjdChJbnRQb2ludCgpLCBpbWFnZUJ1ZmZlci0+bG9naWNh
bFNpemUoKSksIENvbXBvc2l0ZVNvdXJjZUF0b3ApOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEZFQ09NUE9TSVRFX09QRVJBVE9SX1hPUjoKLSAgICAgICAgZmlsdGVyQ29udGV4dC0+ZHJhd0lt
YWdlQnVmZmVyKGluMi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBkcmF3
aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOwotICAgICAg
ICBmaWx0ZXJDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW4tPmFzSW1hZ2VCdWZmZXIoKSwgQ29s
b3JTcGFjZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQ
YWludFJlY3QoKSksIHNyY1JlY3QsIENvbXBvc2l0ZVhPUik7CisgICAgICAgIGZpbHRlckNvbnRl
eHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcjIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRy
YXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7CisgICAg
ICAgIGZpbHRlckNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgQ29sb3JTcGFj
ZURldmljZVJHQiwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJl
Y3QoKSksIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXplKCkpLCBD
b21wb3NpdGVYT1IpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVh
azsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9JbWFnZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmgKaW5kZXggODNiZGZlMmI3MjI2OGIwMjhlNzNmZDg0ZDcz
ZGMyYjQwYjA5MGY0My4uNjhmOGZhMWI1OWZmYjYxZmU3NDU4OWJjNzZjYTU3NzQ4N2RkNzM4NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0lt
YWdlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0ltYWdlR1N0cmVhbWVyLmgKQEAgLTUxLDkgKzUxLDggQEAgY2xhc3MgSW1hZ2VHU3Ry
ZWFtZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxJbWFnZUdTdHJlYW1lcj4gewogICAgICAgICB7CiAg
ICAgICAgICAgICBpZiAoIW1fY3JvcFJlY3QuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIHJl
dHVybiBGbG9hdFJlY3QobV9jcm9wUmVjdCk7Ci0KLSAgICAgICAgICAgIC8vIERlZmF1bHQgcmVj
dGFuZ2xlIHVzZWQgYnkgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKS4KLSAgICAgICAgICAg
IHJldHVybiBGbG9hdFJlY3QoMCwgMCwgLTEsIC0xKTsKKyAgICAgICAgICAgIEFTU0VSVChtX2lt
YWdlKTsKKyAgICAgICAgICAgIHJldHVybiBGbG9hdFJlY3QoMCwgMCwgbV9pbWFnZS0+c2l6ZSgp
LndpZHRoKCksIG1faW1hZ2UtPnNpemUoKS5oZWlnaHQoKSk7CiAgICAgICAgIH0KIAogICAgIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggZDRkMjJiMzdiMzNjMGYzMDc0YzhhZGVlMzFkN2I3YWU1YWU0MWE3Ni4u
N2QwNzRiZTAxN2NiYzJjMTk3MWE2MTdlMDNlNjk3MTU4MzY4NDVlNCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDEyLTEyLTE0ICBBcm5hdWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ft
c3VuZy5jb20+CisKKyAgICAgICAgaW5jb25zaXN0ZW5jeSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJn
ZXQgcmVjdCBuZWdhdGl2ZSBkaW1lbnNpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgZHJhd0ltYWdlIGNoZWNrIGZvciBhIGRlc3RpbmF0
aW9uIHJlY3RhbmdsZSB3aXRoIC0xcHgKKyAgICAgICAgd2lkdGgvaGVpZ2h0LiBXaGVuIGRyYXdp
bmcgdG8gKDEsIDEsIC0xLCAtMSkgcmVjdGFuZ2xlLCBmaXJzdAorICAgICAgICAodG9wLWxlZnQp
IHBpeGVsIHNob3VsZCBoYXZlIGJlZW4gYW5kIGJlZW4gdGhlIG9ubHkgb25lIGRyYXduIGludG8u
CisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2Ut
ZGVzdGluYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY2FudmFzL2RyYXdJbWFn
ZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi5qczoKKwogMjAxMy0wMS0xNCAgQXJu
YXVkIFJlbmV2aWVyICA8YS5yZW5ldmllckBzaXNhLnNhbXN1bmcuY29tPgogCiAgICAgICAgIEFk
ZCBDYW52YXMgYmxlbmQgbW9kZXMgdG8gQ2Fpcm8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2
ZS1zb3VyY2UtZGVzdGluYXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDczODU2OGIwY2UxMjIyZWY4
NGE0OGRjZmYwNDA3MGViZjI1YjgwYTUuLmY0MWFjOTIzNzA1Yjc5Y2I0Mzg1YTYzZjE3MDZkMjI4
MTQ4MTQwODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2RyYXdJbWFnZS13
aXRoLW5lZ2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3RpbmF0
aW9uLWV4cGVjdGVkLnR4dApAQCAtNiw2ICs2LDEyIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
CiBQQVNTIGltZ2RhdGFbNF0gaXMgMAogUEFTUyBpbWdkYXRhWzVdIGlzIDI1NQogUEFTUyBpbWdk
YXRhWzZdIGlzIDAKK1BBU1MgaW1nZGF0YVswXSBpcyAyNTUKK1BBU1MgaW1nZGF0YVsxXSBpcyAw
CitQQVNTIGltZ2RhdGFbMl0gaXMgMAorUEFTUyBpbWdkYXRhWzRdIGlzIDAKK1BBU1MgaW1nZGF0
YVs1XSBpcyAwCitQQVNTIGltZ2RhdGFbNl0gaXMgMAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGluYXRpb24uanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1zb3VyY2UtZGVzdGlu
YXRpb24uanMKaW5kZXggMGE4YTA5YzE1MjM1ODJjYmMxNWIxZDZhZDU1MzYwN2FkNDJiZmFkZC4u
NjcxZmQ3M2I2YzU2MDZkMWRlNzRkNTcwN2Q3MDBjOTA2NjRhZGEwMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvZHJhd0ltYWdlLXdpdGgtbmVnYXRpdmUtc291cmNlLWRlc3Rp
bmF0aW9uLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2RyYXdJbWFnZS13aXRoLW5l
Z2F0aXZlLXNvdXJjZS1kZXN0aW5hdGlvbi5qcwpAQCAtMTksMyArMTksMTYgQEAgdmFyIGltZ2Rh
dGEgPSBpbWFnZURhdGEuZGF0YTsKIHNob3VsZEJlKCJpbWdkYXRhWzRdIiwgIjAiKTsKIHNob3Vs
ZEJlKCJpbWdkYXRhWzVdIiwgIjI1NSIpOwogc2hvdWxkQmUoImltZ2RhdGFbNl0iLCAiMCIpOwor
CisvLyB0ZXN0IHdpZHRoIG9yIGhlaWdodCAtMQorY2FudmFzLmZpbGxTdHlsZSA9ICcjMDAwJzsK
K2NhbnZhcy5maWxsUmVjdCgwLCAwLCAxLCAyKTsKK2NhbnZhcy5kcmF3SW1hZ2UoY2FudmFzMiwg
MCwgMCwgMSwgMSwgMSwgMSwgLTEsIC0xKTsKK3ZhciBpbWFnZURhdGEgPSBjYW52YXMuZ2V0SW1h
Z2VEYXRhKDAsIDAsIDEsIDIpOwordmFyIGltZ2RhdGEgPSBpbWFnZURhdGEuZGF0YTsKK3Nob3Vs
ZEJlKCJpbWdkYXRhWzBdIiwgIjI1NSIpOworc2hvdWxkQmUoImltZ2RhdGFbMV0iLCAiMCIpOwor
c2hvdWxkQmUoImltZ2RhdGFbMl0iLCAiMCIpOworc2hvdWxkQmUoImltZ2RhdGFbNF0iLCAiMCIp
Oworc2hvdWxkQmUoImltZ2RhdGFbNV0iLCAiMCIpOworc2hvdWxkQmUoImltZ2RhdGFbNl0iLCAi
MCIpOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9DYW52YXMvZHJhd2ltYWdlLmh0bWwg
Yi9QZXJmb3JtYW5jZVRlc3RzL0NhbnZhcy9kcmF3aW1hZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOWQ0
NDkyMGU5OTM4NWE0NGY2ZTEyYWZhMzg5NWEyZTBmZjU2NTlhCi0tLSAvZGV2L251bGwKKysrIGIv
UGVyZm9ybWFuY2VUZXN0cy9DYW52YXMvZHJhd2ltYWdlLmh0bWwKQEAgLTAsMCArMSwyMyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKwordmFyIHNvdXJjZSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOworc291cmNlLndpZHRoID0gMzAwOworc291cmNlLmhl
aWdodCA9IDE1MDsKK3NvdXJjZS5nZXRDb250ZXh0KCIyZCIpLmZpbGxTdHlsZSA9ICdncmVlbic7
Citzb3VyY2UuZ2V0Q29udGV4dCgiMmQiKS5maWxsUmVjdCgwLCAwLCBzb3VyY2Uud2lkdGgsIHNv
dXJjZS5oZWlnaHQpOworCit2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2Fu
dmFzIik7Cit0YXJnZXQud2lkdGggPSBzb3VyY2Uud2lkdGg7Cit0YXJnZXQuaGVpZ2h0ID0gc291
cmNlLmhlaWdodDsKK3ZhciBjb250ZXh0ID0gdGFyZ2V0LmdldENvbnRleHQoIjJkIikKKworUGVy
ZlRlc3RSdW5uZXIubWVhc3VyZVJ1bnNQZXJTZWNvbmQoe3J1bjogZnVuY3Rpb24oKSB7CisgICAg
Y29udGV4dC5kcmF3SW1hZ2Uoc291cmNlLCAwLCAwKTsgICAKK319KTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwppbmRleCBkMGQ3NTNiMmFhN2YxOWJjMjFmNmM3YmM0
YjBmNjg4NzE2ZjU4NDdiLi4yNzI3ODMzYjg1YWUzMzE4ZWZhMTk3NzVjYmI2YTUyZGZlMTY2MGE4
IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZworKysgYi9QZXJmb3JtYW5j
ZVRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEyLTE0ICBBcm5hdWQgUmVu
ZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+CisKKyAgICAgICAgaW5jb25zaXN0
ZW5jeSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJnZXQgcmVjdCBuZWdhdGl2ZSBkaW1lbnNpb25zLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDI2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3JlYXRlIGEg
ZHJhd0ltYWdlIHBlcmZvcm1hbmNlIHRlc3QuIFRoZXJlIGlzIG5vIHNpZ25pZmljYXRpdmUgY2hh
bmdlCisgICAgICAgIGluIHBlcmZvcm1hbmNlOiAyNzE0NC42ODUxNTI4IHJ1bnMvcyB3aXRob3V0
IHRoZSBwYXRjaDsgMjcxNTMuNTE3NjEyCisgICAgICAgIHJ1bnMvcyB3aXRoIHRoZSBwYXRjaC4g
VGVzdCBpcyBjdXJyZW50bHkgc2tpcHBlZC4KKworICAgICAgICAqIENhbnZhcy9kcmF3aW1hZ2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogU2tpcHBlZDoKKwogMjAxMi0xMi0yOCAgWXVyeSBTZW1p
a2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBy
ZW5hbWUgZGlzdGFuY2VUb1dpbmRvdyB0byBkaXN0YW5jZQpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFu
Y2VUZXN0cy9Ta2lwcGVkIGIvUGVyZm9ybWFuY2VUZXN0cy9Ta2lwcGVkCmluZGV4IDUwOTIzNGFi
ODEzNTc0ZDJmNDIzNDcyNDU4YTkzODRjNmUwZGQ4MDAuLjVmZDQxNDkyMjQ4MTE3MmEwMTU4ZGU1
YTYzYzg0NDcwZWUxOWMwYjEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvU2tpcHBlZAor
KysgYi9QZXJmb3JtYW5jZVRlc3RzL1NraXBwZWQKQEAgLTYyLDMgKzYyLDUgQEAgU1ZHL1N2Z05l
c3RlZFVzZS5odG1sCiAKICMgQnVnIDEwMjY0NiAtIFNoYWRvd0RPTSBpcyBub3QgZW5hYmxlZCBp
biBzb21lIHBvcnRzLgogU2hhZG93RE9NCisKK0NhbnZhcy9kcmF3aW1hZ2UuaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>