<?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>205694</bug_id>
          
          <creation_ts>2020-01-02 14:32:59 -0800</creation_ts>
          <short_desc>REGRESSION (r252724): Unable to tap on play button on google video &apos;See the top search trends of 2019&apos;</short_desc>
          <delta_ts>2020-01-06 08:44:53 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://about.google/stories/year-in-search-2019</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>205761</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>dstockwell</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1602237</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-02 14:32:59 -0800</bug_when>
    <thetext>REGRESSION (r252724): Unable to tap on play button on google video &apos;See the top search trends of 2019&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602238</commentid>
    <comment_count>1</comment_count>
      <attachid>386630</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-02 14:35:47 -0800</bug_when>
    <thetext>Created attachment 386630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602239</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-02 14:35:49 -0800</bug_when>
    <thetext>&lt;rdar://problem/58062987&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602278</commentid>
    <comment_count>3</comment_count>
      <attachid>386645</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-02 16:10:36 -0800</bug_when>
    <thetext>Created attachment 386645
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602358</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-01-03 01:29:40 -0800</bug_when>
    <thetext>You probably want to get rid of the scheme changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602376</commentid>
    <comment_count>5</comment_count>
      <attachid>386645</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-01-03 02:00:24 -0800</bug_when>
    <thetext>Comment on attachment 386645
Patch

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

&gt; Source/WebCore/animation/KeyframeEffect.cpp:1099
&gt; -    if (m_triggersStackingContext &amp;&amp; targetStyle.hasAutoUsedZIndex())
&gt; -        targetStyle.setUsedZIndex(0);
&gt; +    Style::Adjuster::adjustAnimatedStyle(targetStyle, *m_target, m_triggersStackingContext);
&gt;  }

A better approach might be to simply mark a bit that this adjustment is needed and do it from TreeResolver::createAnimatedElementUpdate where you have things like parent/parent box style available. Alternatively those things need to be passed through here.

&gt; Source/WebCore/page/animation/CompositeAnimation.cpp:342
&gt; -    if (forceStackingContext &amp;&amp; animatedStyle) {
&gt; -        if (animatedStyle-&gt;hasAutoUsedZIndex())
&gt; -            animatedStyle-&gt;setUsedZIndex(0);
&gt; -    }
&gt; +    if (animatedStyle)
&gt; +        Style::Adjuster::adjustAnimatedStyle(*animatedStyle, element, forceStackingContext);
&gt;  

Why are we making code changes to the legacy animation engine? Don&apos;t we have a new one enabled by default? Are these changes tested?

&gt; Source/WebCore/style/StyleAdjuster.cpp:538
&gt; +static const RenderStyle* parentBoxStyle(const Element&amp; element)
&gt; +{
&gt; +    auto* renderer = element.renderer();
&gt; +    if (!renderer)
&gt; +        return nullptr;
&gt; +    
&gt; +    if (is&lt;RenderBox&gt;(renderer) &amp;&amp; is&lt;RenderBox&gt;(renderer-&gt;parent()))
&gt; +        return &amp;renderer-&gt;parent()-&gt;style();
&gt; +
&gt; +    return nullptr;
&gt; +}

We can&apos;t look into renderers for style during style resolution (which is where animations are resolved too). All style changes are resolved in one go and applied to the render tree as a separate step. A renderer may have stale style, and it might not even have been created yet. If parent box style is needed, it needs to passed in, like with other Adjuster functions.

&gt; WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:60
&gt; -               BuildableName = &quot;libANGLE.a&quot;
&gt; +               BuildableName = &quot;libANGLE-shared.dylib&quot;

Some random garbage here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602593</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-03 14:43:31 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #5)
&gt; Comment on attachment 386645 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=386645&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/animation/KeyframeEffect.cpp:1099
&gt; &gt; -    if (m_triggersStackingContext &amp;&amp; targetStyle.hasAutoUsedZIndex())
&gt; &gt; -        targetStyle.setUsedZIndex(0);
&gt; &gt; +    Style::Adjuster::adjustAnimatedStyle(targetStyle, *m_target, m_triggersStackingContext);
&gt; &gt;  }
&gt; 
&gt; A better approach might be to simply mark a bit that this adjustment is
&gt; needed and do it from TreeResolver::createAnimatedElementUpdate where you
&gt; have things like parent/parent box style available. Alternatively those
&gt; things need to be passed through here.

Fixed.

&gt; &gt; Source/WebCore/page/animation/CompositeAnimation.cpp:342
&gt; &gt; -    if (forceStackingContext &amp;&amp; animatedStyle) {
&gt; &gt; -        if (animatedStyle-&gt;hasAutoUsedZIndex())
&gt; &gt; -            animatedStyle-&gt;setUsedZIndex(0);
&gt; &gt; -    }
&gt; &gt; +    if (animatedStyle)
&gt; &gt; +        Style::Adjuster::adjustAnimatedStyle(*animatedStyle, element, forceStackingContext);
&gt; &gt;  
&gt; 
&gt; Why are we making code changes to the legacy animation engine? Don&apos;t we have
&gt; a new one enabled by default? Are these changes tested?

Yes, existing tests hit the new code paths (I saw assertions with legacy animation tests while working on the patch).

&gt; &gt; Source/WebCore/style/StyleAdjuster.cpp:538
&gt; &gt; +static const RenderStyle* parentBoxStyle(const Element&amp; element)
&gt; &gt; +{
&gt; &gt; +    auto* renderer = element.renderer();
&gt; &gt; +    if (!renderer)
&gt; &gt; +        return nullptr;
&gt; &gt; +    
&gt; &gt; +    if (is&lt;RenderBox&gt;(renderer) &amp;&amp; is&lt;RenderBox&gt;(renderer-&gt;parent()))
&gt; &gt; +        return &amp;renderer-&gt;parent()-&gt;style();
&gt; &gt; +
&gt; &gt; +    return nullptr;
&gt; &gt; +}
&gt; 
&gt; We can&apos;t look into renderers for style during style resolution (which is
&gt; where animations are resolved too). All style changes are resolved in one go
&gt; and applied to the render tree as a separate step. A renderer may have stale
&gt; style, and it might not even have been created yet. If parent box style is
&gt; needed, it needs to passed in, like with other Adjuster functions.


Fixed by doing the work in TreeResolver::createAnimatedElementUpdate() which has access to the parent style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602605</commentid>
    <comment_count>7</comment_count>
      <attachid>386720</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-03 15:06:54 -0800</bug_when>
    <thetext>Created attachment 386720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602630</commentid>
    <comment_count>8</comment_count>
      <attachid>386720</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-01-03 15:59:53 -0800</bug_when>
    <thetext>Comment on attachment 386720
Patch

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

&gt; Source/WebCore/style/StyleTreeResolver.cpp:322
&gt; +                animationMayHaveChangedStyle = true;

animationMayHaveChangedComputedStyle

&gt; LayoutTests/ChangeLog:22
&gt; +2020-01-02  Simon Fraser  &lt;simon.fraser@apple.com&gt;
&gt; +
&gt; +        REGRESSION (r252724): Unable to tap on play button on google video &apos;See the top search trends of 2019&apos;
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=205694
&gt; +        &lt;rdar://problem/58062987&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * animations/z-index-in-keyframe-expected.html: Added.
&gt; +        * animations/z-index-in-keyframe.html: Added.
&gt; +

oops</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602636</commentid>
    <comment_count>9</comment_count>
      <attachid>386720</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-01-03 16:23:20 -0800</bug_when>
    <thetext>Comment on attachment 386720
Patch

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

&gt; Source/WebCore/style/StyleAdjuster.cpp:536
&gt; +void Adjuster::adjustAnimatedStyle(RenderStyle&amp; style, const RenderStyle&amp; parentStyle, bool forceStackingContext)
&gt; +{
&gt; +    // Set an explicit used z-index in two cases:
&gt; +    // 1. When the element respects z-index, and the style has an explicit z-index set (for example, the animation
&gt; +    //    itself may animate z-index).
&gt; +    // 2. When we want the stacking context side-effets of explicit z-index, via forceStackingContext.
&gt; +    // It&apos;s important to not clobber an existing used z-index, since an earlier animation may have set it, but we
&gt; +    // may still need to update the used z-index value from the specified value.
&gt; +    bool elementRespectsZIndex = style.position() != PositionType::Static || parentStyle.isDisplayFlexibleOrGridBox();

I think you want parentBoxStyle instead of parentStyle here since the test appears to be for the parent box type.

&gt; Source/WebCore/style/StyleTreeResolver.cpp:352
&gt; +        Adjuster::adjustAnimatedStyle(*newStyle, parent().style, forceStackingContext);

I think you want to pass parentBoxStyle() here.

They are different when parent().style doesn&apos;t generate a box (because it has display:contents).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602651</commentid>
    <comment_count>10</comment_count>
      <attachid>386720</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-01-03 16:31:00 -0800</bug_when>
    <thetext>Comment on attachment 386720
Patch

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

&gt; Source/WebCore/dom/Element.h:76
&gt; +struct AnimationImpact {

Alternatively OptionSet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602760</commentid>
    <comment_count>11</comment_count>
      <attachid>386720</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-01-04 05:39:40 -0800</bug_when>
    <thetext>Comment on attachment 386720
Patch

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

&gt; Source/WebCore/style/StyleAdjuster.cpp:528
&gt; +void Adjuster::adjustAnimatedStyle(RenderStyle&amp; style, const RenderStyle&amp; parentStyle, bool forceStackingContext)

It would be nicer if this took AnimationImpact instead of a bool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602868</commentid>
    <comment_count>12</comment_count>
      <attachid>386794</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-05 10:41:55 -0800</bug_when>
    <thetext>Created attachment 386794
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602873</commentid>
    <comment_count>13</comment_count>
      <attachid>386794</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-01-05 11:21:21 -0800</bug_when>
    <thetext>Comment on attachment 386794
Patch

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

&gt; Source/WebCore/style/StyleAdjuster.cpp:528
&gt; +void Adjuster::adjustAnimatedStyle(RenderStyle&amp; style, const RenderStyle* parentStyle, OptionSet&lt;AnimationImpact&gt; impact)

Please also rename the variable to parentBoxStyle</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602876</commentid>
    <comment_count>14</comment_count>
      <attachid>386794</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-01-05 11:24:46 -0800</bug_when>
    <thetext>Comment on attachment 386794
Patch

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

&gt; Source/WebCore/style/StyleTreeResolver.cpp:308
&gt; +    OptionSet&lt;AnimationImpact&gt; animationImpact;
&gt; +    bool animationMayHaveChangedStyle = false;

Shouldn&apos;t it be sufficient to test for non-empty animationImpact?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602934</commentid>
    <comment_count>15</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-05 20:18:38 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #14)
&gt; Comment on attachment 386794 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=386794&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/style/StyleTreeResolver.cpp:308
&gt; &gt; +    OptionSet&lt;AnimationImpact&gt; animationImpact;
&gt; &gt; +    bool animationMayHaveChangedStyle = false;
&gt; 
&gt; Shouldn&apos;t it be sufficient to test for non-empty animationImpact?

True! First I have to figure out what I broke. The double negatives in Element::applyKeyframeEffects were very confusing and I tried to fix, but I think that broke stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602936</commentid>
    <comment_count>16</comment_count>
      <attachid>386808</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-05 20:42:43 -0800</bug_when>
    <thetext>Created attachment 386808
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603040</commentid>
    <comment_count>17</comment_count>
      <attachid>386808</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-06 08:06:35 -0800</bug_when>
    <thetext>Comment on attachment 386808
Patch

Rejecting attachment 386808 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 386808, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.

Full output: https://webkit-queues.webkit.org/results/13300067</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603056</commentid>
    <comment_count>18</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-06 08:44:53 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/254054/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386630</attachid>
            <date>2020-01-02 14:35:47 -0800</date>
            <delta_ts>2020-01-02 16:10:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205694-20200102143546.patch</filename>
            <type>text/plain</type>
            <size>10614</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjc5Yjg1N2Q1ZjAyNDI0
MTcxMzgzMTAwYWUwMTk0M2IxMmRlYzdiYy4uODJkOTI2ZjlhOTcwMjg4ZWEzOGI4ZDM0NmIzZTdh
YmNhOWU4NTAzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAxLTAyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04g
KHIyNTI3MjQpOiBVbmFibGUgdG8gdGFwIG9uIHBsYXkgYnV0dG9uIG9uIGdvb2dsZSB2aWRlbyAn
U2VlIHRoZSB0b3Agc2VhcmNoIHRyZW5kcyBvZiAyMDE5JworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Njk0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81ODA2Mjk4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZnRlciByMjUyNzI0LCB3aGljaCBzZXBhcmF0ZWQgJ3VzZWQnIGZyb20gJ3NwZWNpZmll
ZCcgei1pbmRleCBpbiBzdHlsZSwgd2UgbmVlZCB0byBjb3B5CisgICAgICAgIHRoZSBzcGVjaWZp
ZWQgdG8gdGhlIHVzZWQgei1pbmRleCBpbiBhbmltYXRlZCBzdHlsZXMsIHdoaWxlIHByZXNlcnZp
bmcgdGhlIGV4aXN0aW5nICdmb3JjZVN0YWNraW5nQ29udGV4dCcKKyAgICAgICAgYmVoYXZpb3Ig
d2hpY2ggc2V0IHRoZSB1c2VkIHotaW5kZXggdG8gMC4KKworICAgICAgICBEbyBzbyBieSBjcmVh
dGluZyBBZGp1c3Rlcjo6YWRqdXN0QW5pbWF0ZWRTdHlsZSgpIHdoaWNoIGlzIGNhbGxlZCBmcm9t
IHRoZSBvbGQgYW5kIG5ldyBhbmltYXRpb24KKyAgICAgICAgY29kZSBwYXRocy4KKworICAgICAg
ICBUZXN0OiBhbmltYXRpb25zL3otaW5kZXgtaW4ta2V5ZnJhbWUuaHRtbAorCisgICAgICAgICog
YW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1l
RWZmZWN0OjphcHBseSk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6YW5pbWF0ZSk6
CisgICAgICAgICogc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6cGFyZW50Qm94U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkFkanVzdGVy
OjphZGp1c3RBbmltYXRlZFN0eWxlKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZUFkanVzdGVyLmg6
CisKIDIwMTktMTItMjAgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFNXU2VydmVyIGNhbiBiZSBjcmVhdGVkIHdpdGhvdXQgYW55IHBhdGggdG8gc3RvcmUgcmVn
aXN0cmF0aW9ucyBpbiBub24gZXBoZW1lcmFsIHNlc3Npb25zCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAppbmRleCBmOTk0MzA3ZDY2MGE5NmEwOWZiMDc0MmNm
ZWZjM2MyODFlNDEyYjAxLi5jY2Y5MGY4ODg4M2QyYjgwNWQxMDY5N2EwOTc2OTM4NDE1ZGY2NjMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKQEAgLTUw
LDYgKzUwLDcgQEAKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVy
U3R5bGUuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAi
U3R5bGVBZGp1c3Rlci5oIgogI2luY2x1ZGUgIlN0eWxlUGVuZGluZ1Jlc291cmNlcy5oIgogI2lu
Y2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJUaW1pbmdGdW5jdGlvbi5oIgpAQCAt
MTA5NCw4ICsxMDk1LDcgQEAgdm9pZCBLZXlmcmFtZUVmZmVjdDo6YXBwbHkoUmVuZGVyU3R5bGUm
IHRhcmdldFN0eWxlKQogICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWItYW5pbWF0aW9u
cy8jc2lkZS1lZmZlY3RzLXNlY3Rpb24KICAgICAvLyBGb3IgZXZlcnkgcHJvcGVydHkgdGFyZ2V0
ZWQgYnkgYXQgbGVhc3Qgb25lIGFuaW1hdGlvbiBlZmZlY3QgdGhhdCBpcyBjdXJyZW50IG9yIGlu
IGVmZmVjdCwgdGhlIHVzZXIgYWdlbnQKICAgICAvLyBtdXN0IGFjdCBhcyBpZiB0aGUgd2lsbC1j
aGFuZ2UgcHJvcGVydHkgKFtjc3Mtd2lsbC1jaGFuZ2UtMV0pIG9uIHRoZSB0YXJnZXQgZWxlbWVu
dCBpbmNsdWRlcyB0aGUgcHJvcGVydHkuCi0gICAgaWYgKG1fdHJpZ2dlcnNTdGFja2luZ0NvbnRl
eHQgJiYgdGFyZ2V0U3R5bGUuaGFzQXV0b1VzZWRaSW5kZXgoKSkKLSAgICAgICAgdGFyZ2V0U3R5
bGUuc2V0VXNlZFpJbmRleCgwKTsKKyAgICBTdHlsZTo6QWRqdXN0ZXI6OmFkanVzdEFuaW1hdGVk
U3R5bGUodGFyZ2V0U3R5bGUsICptX3RhcmdldCwgbV90cmlnZ2Vyc1N0YWNraW5nQ29udGV4dCk7
CiB9CiAKIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmludmFsaWRhdGUoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKaW5kZXggMDQ0
OTQ3MDI0MGY5YTYzMmFhYTcwNjEzOWIxNWM4ZDMyN2Q4YjUzMS4uMGRjYmI4ODYzNDljYTQzZmM0
YmUwOTdmZTViYmU5MGU4YTE0NWVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJS
ZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlN0eWxlQWRqdXN0ZXIuaCIKICNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTMz
NiwxMCArMzM3LDggQEAgQW5pbWF0aW9uVXBkYXRlIENvbXBvc2l0ZUFuaW1hdGlvbjo6YW5pbWF0
ZShFbGVtZW50JiBlbGVtZW50LCBjb25zdCBSZW5kZXJTdHlsZSoKICAgICAvLyBXaGlsZSBhbiBh
bmltYXRpb24gaXMgYXBwbGllZCBidXQgaGFzIG5vdCBmaW5pc2hlZCwgb3IgaGFzIGZpbmlzaGVk
IGJ1dCBoYXMgYW4gYW5pbWF0aW9uLWZpbGwtbW9kZSBvZiBmb3J3YXJkcyBvciBib3RoLAogICAg
IC8vIHRoZSB1c2VyIGFnZW50IG11c3QgYWN0IGFzIGlmIHRoZSB3aWxsLWNoYW5nZSBwcm9wZXJ0
eSAoW2Nzcy13aWxsLWNoYW5nZS0xXSkgb24gdGhlIGVsZW1lbnQgYWRkaXRpb25hbGx5CiAgICAg
Ly8gaW5jbHVkZXMgYWxsIHRoZSBwcm9wZXJ0aWVzIGFuaW1hdGVkIGJ5IHRoZSBhbmltYXRpb24u
Ci0gICAgaWYgKGZvcmNlU3RhY2tpbmdDb250ZXh0ICYmIGFuaW1hdGVkU3R5bGUpIHsKLSAgICAg
ICAgaWYgKGFuaW1hdGVkU3R5bGUtPmhhc0F1dG9Vc2VkWkluZGV4KCkpCi0gICAgICAgICAgICBh
bmltYXRlZFN0eWxlLT5zZXRVc2VkWkluZGV4KDApOwotICAgIH0KKyAgICBpZiAoYW5pbWF0ZWRT
dHlsZSkKKyAgICAgICAgU3R5bGU6OkFkanVzdGVyOjphZGp1c3RBbmltYXRlZFN0eWxlKCphbmlt
YXRlZFN0eWxlLCBlbGVtZW50LCBmb3JjZVN0YWNraW5nQ29udGV4dCk7CiAKICAgICByZXR1cm4g
eyBXVEZNb3ZlKGFuaW1hdGVkU3R5bGUpLCBhbmltYXRpb25DaGFuZ2VSZXF1aXJlc1JlY29tcG9z
aXRlIH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCmluZGV4IGU1MzA1
YTA2ZWI5MTA5MWM1MDRiMWQ2OTUzNjIyODgxODUzODQ3YjEuLjEzOTA3Mzg3MWRhMGE5NTMxZTJh
YWUyYTFhMTZiOWU4OWUwMTY5ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlQWRqdXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIu
Y3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiTWF0aE1MRWxlbWVudC5oIgogI2luY2x1
ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJRdWlya3MuaCIKKyNpbmNsdWRlICJSZW5kZXJCb3guaCIK
ICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5j
bHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgpAQCAtNTI1LDYgKzUyNiw0MiBAQCB2b2lk
IEFkanVzdGVyOjphZGp1c3RTVkdFbGVtZW50U3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25z
dCBTVkdFbGVtZW50JiBzdmdFbAogICAgICAgICBzdHlsZS5zZXREaXNwbGF5KERpc3BsYXlUeXBl
OjpCbG9jayk7CiB9CiAKK3N0YXRpYyBjb25zdCBSZW5kZXJTdHlsZSogcGFyZW50Qm94U3R5bGUo
Y29uc3QgRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQu
cmVuZGVyZXIoKTsKKyAgICBpZiAoIXJlbmRlcmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICAKKyAgICBSZW5kZXJCb3gqIHBhcmVudEJveFJlbmRlcmVyOworICAgIGlmIChpczxSZW5k
ZXJCb3g+KHJlbmRlcmVyKSkKKyAgICAgICAgcGFyZW50Qm94UmVuZGVyZXIgPSBkb3duY2FzdDxS
ZW5kZXJCb3g+KHJlbmRlcmVyKS0+cGFyZW50Qm94KCk7CisgICAgZWxzZQorICAgICAgICBwYXJl
bnRCb3hSZW5kZXJlciA9ICZyZW5kZXJlci0+ZW5jbG9zaW5nQm94KCk7CisgICAgCisgICAgcmV0
dXJuIHBhcmVudEJveFJlbmRlcmVyID8gJnBhcmVudEJveFJlbmRlcmVyLT5zdHlsZSgpIDogbnVs
bHB0cjsKK30KKwordm9pZCBBZGp1c3Rlcjo6YWRqdXN0QW5pbWF0ZWRTdHlsZShSZW5kZXJTdHls
ZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIGJvb2wgZm9yY2VTdGFja2luZ0NvbnRl
eHQpCit7CisgICAgYXV0byBwYXJlbnRJc0ZsZXhPckdyaWQgPSBbXShjb25zdCBFbGVtZW50JiBl
bGVtZW50KSB7CisgICAgICAgIGF1dG8qIHBhcmVudFN0eWxlID0gcGFyZW50Qm94U3R5bGUoZWxl
bWVudCk7CisgICAgICAgIHJldHVybiBwYXJlbnRTdHlsZSA/IHBhcmVudFN0eWxlLT5pc0Rpc3Bs
YXlGbGV4aWJsZU9yR3JpZEJveCgpIDogZmFsc2U7CisgICAgfTsKKworICAgIC8vIFNldCBhbiBl
eHBsaWNpdCB1c2VkIHotaW5kZXggaW4gdHdvIGNhc2VzOgorICAgIC8vIDEuIFdoZW4gdGhlIGVs
ZW1lbnQgcmVzcGVjdHMgei1pbmRleCwgYW5kIHRoZSBzdHlsZSBoYXMgYW4gZXhwbGljaXQgei1p
bmRleCBzZXQgKGZvciBleGFtcGxlLCB0aGUgYW5pbWF0aW9uCisgICAgLy8gICAgaXRzZWxmIG1h
eSBhbmltYXRlIHotaW5kZXgpLgorICAgIC8vIDIuIFdoZW4gd2Ugd2FudCB0aGUgc3RhY2tpbmcg
Y29udGV4dCBzaWRlLWVmZmV0cyBvZiBleHBsaWNpdCB6LWluZGV4LCB2aWEgZm9yY2VTdGFja2lu
Z0NvbnRleHQuCisgICAgLy8gSXQncyBpbXBvcnRhbnQgdG8gbm90IGNsb2JiZXIgYW4gZXhpc3Rp
bmcgdXNlZCB6LWluZGV4LCBzaW5jZSBhbiBlYXJsaWVyIGFuaW1hdGlvbiBtYXkgaGF2ZSBzZXQg
aXQsIGJ1dCB3ZQorICAgIC8vIG1heSBzdGlsbCBuZWVkIHRvIHVwZGF0ZSB0aGUgdXNlZCB6LWlu
ZGV4IHZhbHVlIGZyb20gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICBib29sIGVsZW1lbnRSZXNw
ZWN0c1pJbmRleCA9IHN0eWxlLnBvc2l0aW9uKCkgIT0gUG9zaXRpb25UeXBlOjpTdGF0aWMgfHwg
cGFyZW50SXNGbGV4T3JHcmlkKGVsZW1lbnQpOworCisgICAgaWYgKGVsZW1lbnRSZXNwZWN0c1pJ
bmRleCAmJiAhc3R5bGUuaGFzQXV0b1NwZWNpZmllZFpJbmRleCgpKQorICAgICAgICBzdHlsZS5z
ZXRVc2VkWkluZGV4KHN0eWxlLnNwZWNpZmllZFpJbmRleCgpKTsKKyAgICBlbHNlIGlmIChmb3Jj
ZVN0YWNraW5nQ29udGV4dCkKKyAgICAgICAgc3R5bGUuc2V0VXNlZFpJbmRleCgwKTsKK30KKwog
dm9pZCBBZGp1c3Rlcjo6YWRqdXN0Rm9yU2l0ZVNwZWNpZmljUXVpcmtzKFJlbmRlclN0eWxlJiBz
dHlsZSkgY29uc3QKIHsKICAgICBpZiAobV9kb2N1bWVudC5xdWlya3MoKS5uZWVkc0dNYWlsT3Zl
cmZsb3dTY3JvbGxRdWlyaygpICYmIG1fZWxlbWVudCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVB
ZGp1c3Rlci5oCmluZGV4IGQzN2UyZDY2N2E5YTc2NjE5NjM3Y2EyZDhiOGYyZTA4NjcyMDliMDku
Ljg5ZTBmNzY5NWMzYWNhZWRhZThmZTkwMzk4YjQ0NGE4YTBmMzA4MjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZUFkanVzdGVyLmgKQEAgLTQyLDYgKzQyLDggQEAgcHVibGljOgogICAgIHZvaWQg
YWRqdXN0KFJlbmRlclN0eWxlJiwgY29uc3QgUmVuZGVyU3R5bGUqIHVzZXJBZ2VudEFwcGVhcmFu
Y2VTdHlsZSkgY29uc3Q7CiAKICAgICBzdGF0aWMgdm9pZCBhZGp1c3RTVkdFbGVtZW50U3R5bGUo
UmVuZGVyU3R5bGUmLCBjb25zdCBTVkdFbGVtZW50Jik7CisgICAgc3RhdGljIHZvaWQgYWRqdXN0
QW5pbWF0ZWRTdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQmLCBib29sIGZvcmNlU3Rh
Y2tpbmdDb250ZXh0KTsKKwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgc3RhdGlj
IGJvb2wgYWRqdXN0Rm9yVGV4dEF1dG9zaXppbmcoUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50
Jik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBjMTZiMWM1MWUyZTUzYzIxOWQzMTllMzg2MzExZDM4MmNlZGU4
MTU1Li42MWEyZGNlYjI3MzdlZTcwMmFmOGIxYWQxZjMxZDdkNDMyOTlkNjcwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMjAtMDEtMDIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI1MjcyNCk6IFVuYWJsZSB0byB0YXAgb24g
cGxheSBidXR0b24gb24gZ29vZ2xlIHZpZGVvICdTZWUgdGhlIHRvcCBzZWFyY2ggdHJlbmRzIG9m
IDIwMTknCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDU2OTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4MDYyOTg3PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYW5pbWF0aW9ucy96LWluZGV4LWlu
LWtleWZyYW1lLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMvei1p
bmRleC1pbi1rZXlmcmFtZS5odG1sOiBBZGRlZC4KKwogMjAxOS0xMi0yMCAgVHJ1aXR0IFNhdmVs
bCAgPHRzYXZlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIEZsYWt5IGNyYXNoIGluIEF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDOjp+QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMgb24gd2ViYXVk
aW8vc2lsZW50LWF1ZGlvLWludGVycnVwdGVkLWluLWJhY2tncm91bmQuaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy96LWluZGV4LWluLWtleWZyYW1lLWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3otaW5kZXgtaW4ta2V5ZnJhbWUtZXhwZWN0ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41MzMwYTQ1MmZhYmY4MDIyNmQwM2FkZjcyYjI3MTliZDgyYjNkM2Ey
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy96LWluZGV4LWluLWtl
eWZyYW1lLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgLmNvbnRhaW5lciB7CisgICAgICAg
ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB3aWR0aDogMzAwcHg7CisgICAg
ICAgICAgICBoZWlnaHQ6IDMwMHB4OworICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxh
Y2s7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5ib3ggeworICAgICAgICAgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAg
aGVpZ2h0OiAyMDBweDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLmJvdHRvbSB7Cisg
ICAgICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsKKyAgICAgICAgfQorCisgICAgICAgIC50b3Agewor
ICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgICAgICB0b3A6IDEwMHB4OworICAgICAg
ICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgICAgICB6LWluZGV4OiAtMTsK
KyAgICAgICAgICAgIG9wYWNpdHk6IDAuODsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzPSJib3R0b20gYm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0idG9wIGJveCI+PC9k
aXY+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL3otaW5kZXgtaW4ta2V5ZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1h
dGlvbnMvei1pbmRleC1pbi1rZXlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzN2U3N2NhYTQ0ZmY0
ZTk0NjhmNjFmOTI2OWMyYzFkZmIzMmQ5ODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL3otaW5kZXgtaW4ta2V5ZnJhbWUuaHRtbApAQCAtMCwwICsxLDU5IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICAuY29u
dGFpbmVyIHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIHdp
ZHRoOiAzMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICAgICAgICBib3Jk
ZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLmJveCB7
CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB3aWR0aDogMjAw
cHg7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICB9CisgICAgICAgIAorICAg
ICAgICAuYm90dG9tIHsKKyAgICAgICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgICAgIHRvcDog
MHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlOworICAgICAgICB9CisK
KyAgICAgICAgLnRvcCB7CisgICAgICAgICAgICBsZWZ0OiAxMDBweDsKKyAgICAgICAgICAgIHRv
cDogMTAwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAg
ICAgIGFuaW1hdGlvbjogZmFkZS1vdXQgMzBtcyBmb3J3YXJkczsKKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgQGtleWZyYW1lcyBmYWRlLW91dCB7CisgICAgICAgICAgICAwJSB7CisgICAg
ICAgICAgICAgICAgb3BhY2l0eTogMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIDEwMCUg
eworICAgICAgICAgICAgICAgIHotaW5kZXg6IC0xOworICAgICAgICAgICAgICAgIG9wYWNpdHk6
IDAuODsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xv
YWQnLCAoKSA9PiB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdGVy
JykuYWRkRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uZW5kJywgKCkgPT4geworICAgICAgICAgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9LCBmYWxzZSk7CisgICAgICAgIH0sIGZhbHNl
KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbSBib3giPjwvZGl2PgorICAgICAgICA8
ZGl2IGlkPSJ0ZXN0ZXIiIGNsYXNzPSJ0b3AgYm94Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386645</attachid>
            <date>2020-01-02 16:10:36 -0800</date>
            <delta_ts>2020-01-03 15:06:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205694-20200102161035.patch</filename>
            <type>text/plain</type>
            <size>12530</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjEzMzliZGY4NTgzMzgx
MTRhNjAwYTg1OGY0MjAyZWNhMGFmM2JlZi4uMzM0MDllMjYxNmRjM2Q4YjY0M2FlZTI4ZDg1Zjgx
ZmViMWU0ODgyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAxLTAyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04g
KHIyNTI3MjQpOiBVbmFibGUgdG8gdGFwIG9uIHBsYXkgYnV0dG9uIG9uIGdvb2dsZSB2aWRlbyAn
U2VlIHRoZSB0b3Agc2VhcmNoIHRyZW5kcyBvZiAyMDE5JworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Njk0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81ODA2Mjk4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZnRlciByMjUyNzI0LCB3aGljaCBzZXBhcmF0ZWQgJ3VzZWQnIGZyb20gJ3NwZWNpZmll
ZCcgei1pbmRleCBpbiBzdHlsZSwgd2UgbmVlZCB0byBjb3B5CisgICAgICAgIHRoZSBzcGVjaWZp
ZWQgdG8gdGhlIHVzZWQgei1pbmRleCBpbiBhbmltYXRlZCBzdHlsZXMsIHdoaWxlIHByZXNlcnZp
bmcgdGhlIGV4aXN0aW5nICdmb3JjZVN0YWNraW5nQ29udGV4dCcKKyAgICAgICAgYmVoYXZpb3Ig
d2hpY2ggc2V0IHRoZSB1c2VkIHotaW5kZXggdG8gMC4KKworICAgICAgICBEbyBzbyBieSBjcmVh
dGluZyBBZGp1c3Rlcjo6YWRqdXN0QW5pbWF0ZWRTdHlsZSgpIHdoaWNoIGlzIGNhbGxlZCBmcm9t
IHRoZSBvbGQgYW5kIG5ldyBhbmltYXRpb24KKyAgICAgICAgY29kZSBwYXRocy4KKworICAgICAg
ICBUZXN0OiBhbmltYXRpb25zL3otaW5kZXgtaW4ta2V5ZnJhbWUuaHRtbAorCisgICAgICAgICog
YW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1l
RWZmZWN0OjphcHBseSk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6YW5pbWF0ZSk6
CisgICAgICAgICogc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6cGFyZW50Qm94U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkFkanVzdGVy
OjphZGp1c3RBbmltYXRlZFN0eWxlKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZUFkanVzdGVyLmg6
CisKIDIwMjAtMDEtMDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBBZGQgU1BJIHRvIGRpc2FibGUgQ09SUyBvbiByZXF1ZXN0cyB0byBVUkxz
IG1hdGNoaW5nIGEgcGF0dGVybgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0tleWZyYW1lRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVm
ZmVjdC5jcHAKaW5kZXggZjk5NDMwN2Q2NjBhOTZhMDlmYjA3NDJjZmVmYzNjMjgxZTQxMmIwMS4u
Y2NmOTBmODg4ODNkMmI4MDVkMTA2OTdhMDk3NjkzODQxNWRmNjYzMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5j
bHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVk
ZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlN0eWxlQWRqdXN0ZXIuaCIK
ICNpbmNsdWRlICJTdHlsZVBlbmRpbmdSZXNvdXJjZXMuaCIKICNpbmNsdWRlICJTdHlsZVJlc29s
dmVyLmgiCiAjaW5jbHVkZSAiVGltaW5nRnVuY3Rpb24uaCIKQEAgLTEwOTQsOCArMTA5NSw3IEBA
IHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmFwcGx5KFJlbmRlclN0eWxlJiB0YXJnZXRTdHlsZSkKICAg
ICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViLWFuaW1hdGlvbnMvI3NpZGUtZWZmZWN0cy1z
ZWN0aW9uCiAgICAgLy8gRm9yIGV2ZXJ5IHByb3BlcnR5IHRhcmdldGVkIGJ5IGF0IGxlYXN0IG9u
ZSBhbmltYXRpb24gZWZmZWN0IHRoYXQgaXMgY3VycmVudCBvciBpbiBlZmZlY3QsIHRoZSB1c2Vy
IGFnZW50CiAgICAgLy8gbXVzdCBhY3QgYXMgaWYgdGhlIHdpbGwtY2hhbmdlIHByb3BlcnR5IChb
Y3NzLXdpbGwtY2hhbmdlLTFdKSBvbiB0aGUgdGFyZ2V0IGVsZW1lbnQgaW5jbHVkZXMgdGhlIHBy
b3BlcnR5LgotICAgIGlmIChtX3RyaWdnZXJzU3RhY2tpbmdDb250ZXh0ICYmIHRhcmdldFN0eWxl
Lmhhc0F1dG9Vc2VkWkluZGV4KCkpCi0gICAgICAgIHRhcmdldFN0eWxlLnNldFVzZWRaSW5kZXgo
MCk7CisgICAgU3R5bGU6OkFkanVzdGVyOjphZGp1c3RBbmltYXRlZFN0eWxlKHRhcmdldFN0eWxl
LCAqbV90YXJnZXQsIG1fdHJpZ2dlcnNTdGFja2luZ0NvbnRleHQpOwogfQogCiB2b2lkIEtleWZy
YW1lRWZmZWN0OjppbnZhbGlkYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCmluZGV4IDA0NDk0NzAyNDBmOWE2MzJhYWE3
MDYxMzliMTVjOGQzMjdkOGI1MzEuLjBkY2JiODg2MzQ5Y2E0M2ZjNGJlMDk3ZmU1YmJlOTBlOGEx
NDVlY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0
ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9z
aXRlQW5pbWF0aW9uLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNp
bmNsdWRlICJTdHlsZUFkanVzdGVyLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC0zMzYsMTAgKzMzNyw4IEBAIEFu
aW1hdGlvblVwZGF0ZSBDb21wb3NpdGVBbmltYXRpb246OmFuaW1hdGUoRWxlbWVudCYgZWxlbWVu
dCwgY29uc3QgUmVuZGVyU3R5bGUqCiAgICAgLy8gV2hpbGUgYW4gYW5pbWF0aW9uIGlzIGFwcGxp
ZWQgYnV0IGhhcyBub3QgZmluaXNoZWQsIG9yIGhhcyBmaW5pc2hlZCBidXQgaGFzIGFuIGFuaW1h
dGlvbi1maWxsLW1vZGUgb2YgZm9yd2FyZHMgb3IgYm90aCwKICAgICAvLyB0aGUgdXNlciBhZ2Vu
dCBtdXN0IGFjdCBhcyBpZiB0aGUgd2lsbC1jaGFuZ2UgcHJvcGVydHkgKFtjc3Mtd2lsbC1jaGFu
Z2UtMV0pIG9uIHRoZSBlbGVtZW50IGFkZGl0aW9uYWxseQogICAgIC8vIGluY2x1ZGVzIGFsbCB0
aGUgcHJvcGVydGllcyBhbmltYXRlZCBieSB0aGUgYW5pbWF0aW9uLgotICAgIGlmIChmb3JjZVN0
YWNraW5nQ29udGV4dCAmJiBhbmltYXRlZFN0eWxlKSB7Ci0gICAgICAgIGlmIChhbmltYXRlZFN0
eWxlLT5oYXNBdXRvVXNlZFpJbmRleCgpKQotICAgICAgICAgICAgYW5pbWF0ZWRTdHlsZS0+c2V0
VXNlZFpJbmRleCgwKTsKLSAgICB9CisgICAgaWYgKGFuaW1hdGVkU3R5bGUpCisgICAgICAgIFN0
eWxlOjpBZGp1c3Rlcjo6YWRqdXN0QW5pbWF0ZWRTdHlsZSgqYW5pbWF0ZWRTdHlsZSwgZWxlbWVu
dCwgZm9yY2VTdGFja2luZ0NvbnRleHQpOwogCiAgICAgcmV0dXJuIHsgV1RGTW92ZShhbmltYXRl
ZFN0eWxlKSwgYW5pbWF0aW9uQ2hhbmdlUmVxdWlyZXNSZWNvbXBvc2l0ZSB9OwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcAppbmRleCA4ZGFjYTFlZTA4MTllZjVlMmI2ODMy
Y2MzZTM1MGExMWQ0ZjliNmY5Li42ZGZlMmFkNTc0YmVlNzI5YjI3MThmOTJkMGE3NGU2OGUzNTgx
MTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcApAQCAtNDIsNiArNDIs
NyBAQAogI2luY2x1ZGUgIk1hdGhNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiUXVpcmtzLmgiCisjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVy
U3R5bGUuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaCIKQEAgLTUyNCw2ICs1MjUsMzkgQEAgdm9pZCBBZGp1c3Rlcjo6YWRqdXN0
U1ZHRWxlbWVudFN0eWxlKFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgU1ZHRWxlbWVudCYgc3Zn
RWwKICAgICAgICAgc3R5bGUuc2V0RGlzcGxheShEaXNwbGF5VHlwZTo6QmxvY2spOwogfQogCitz
dGF0aWMgY29uc3QgUmVuZGVyU3R5bGUqIHBhcmVudEJveFN0eWxlKGNvbnN0IEVsZW1lbnQmIGVs
ZW1lbnQpCit7CisgICAgYXV0byogcmVuZGVyZXIgPSBlbGVtZW50LnJlbmRlcmVyKCk7CisgICAg
aWYgKCFyZW5kZXJlcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgCisgICAgaWYgKGlz
PFJlbmRlckJveD4ocmVuZGVyZXIpICYmIGlzPFJlbmRlckJveD4ocmVuZGVyZXItPnBhcmVudCgp
KSkKKyAgICAgICAgcmV0dXJuICZyZW5kZXJlci0+cGFyZW50KCktPnN0eWxlKCk7CisKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBBZGp1c3Rlcjo6YWRqdXN0QW5pbWF0ZWRTdHlsZShS
ZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIGJvb2wgZm9yY2VTdGFj
a2luZ0NvbnRleHQpCit7CisgICAgYXV0byBwYXJlbnRJc0ZsZXhPckdyaWQgPSBbXShjb25zdCBF
bGVtZW50JiBlbGVtZW50KSB7CisgICAgICAgIGF1dG8qIHBhcmVudFN0eWxlID0gcGFyZW50Qm94
U3R5bGUoZWxlbWVudCk7CisgICAgICAgIHJldHVybiBwYXJlbnRTdHlsZSA/IHBhcmVudFN0eWxl
LT5pc0Rpc3BsYXlGbGV4aWJsZU9yR3JpZEJveCgpIDogZmFsc2U7CisgICAgfTsKKworICAgIC8v
IFNldCBhbiBleHBsaWNpdCB1c2VkIHotaW5kZXggaW4gdHdvIGNhc2VzOgorICAgIC8vIDEuIFdo
ZW4gdGhlIGVsZW1lbnQgcmVzcGVjdHMgei1pbmRleCwgYW5kIHRoZSBzdHlsZSBoYXMgYW4gZXhw
bGljaXQgei1pbmRleCBzZXQgKGZvciBleGFtcGxlLCB0aGUgYW5pbWF0aW9uCisgICAgLy8gICAg
aXRzZWxmIG1heSBhbmltYXRlIHotaW5kZXgpLgorICAgIC8vIDIuIFdoZW4gd2Ugd2FudCB0aGUg
c3RhY2tpbmcgY29udGV4dCBzaWRlLWVmZmV0cyBvZiBleHBsaWNpdCB6LWluZGV4LCB2aWEgZm9y
Y2VTdGFja2luZ0NvbnRleHQuCisgICAgLy8gSXQncyBpbXBvcnRhbnQgdG8gbm90IGNsb2JiZXIg
YW4gZXhpc3RpbmcgdXNlZCB6LWluZGV4LCBzaW5jZSBhbiBlYXJsaWVyIGFuaW1hdGlvbiBtYXkg
aGF2ZSBzZXQgaXQsIGJ1dCB3ZQorICAgIC8vIG1heSBzdGlsbCBuZWVkIHRvIHVwZGF0ZSB0aGUg
dXNlZCB6LWluZGV4IHZhbHVlIGZyb20gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICBib29sIGVs
ZW1lbnRSZXNwZWN0c1pJbmRleCA9IHN0eWxlLnBvc2l0aW9uKCkgIT0gUG9zaXRpb25UeXBlOjpT
dGF0aWMgfHwgcGFyZW50SXNGbGV4T3JHcmlkKGVsZW1lbnQpOworCisgICAgaWYgKGVsZW1lbnRS
ZXNwZWN0c1pJbmRleCAmJiAhc3R5bGUuaGFzQXV0b1NwZWNpZmllZFpJbmRleCgpKQorICAgICAg
ICBzdHlsZS5zZXRVc2VkWkluZGV4KHN0eWxlLnNwZWNpZmllZFpJbmRleCgpKTsKKyAgICBlbHNl
IGlmIChmb3JjZVN0YWNraW5nQ29udGV4dCkKKyAgICAgICAgc3R5bGUuc2V0VXNlZFpJbmRleCgw
KTsKK30KKwogdm9pZCBBZGp1c3Rlcjo6YWRqdXN0Rm9yU2l0ZVNwZWNpZmljUXVpcmtzKFJlbmRl
clN0eWxlJiBzdHlsZSkgY29uc3QKIHsKICAgICBpZiAobV9kb2N1bWVudC5xdWlya3MoKS5uZWVk
c0dNYWlsT3ZlcmZsb3dTY3JvbGxRdWlyaygpICYmIG1fZWxlbWVudCkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5oIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVBZGp1c3Rlci5oCmluZGV4IGQzN2UyZDY2N2E5YTc2NjE5NjM3Y2EyZDhiOGYyZTA4
NjcyMDliMDkuLjg5ZTBmNzY5NWMzYWNhZWRhZThmZTkwMzk4YjQ0NGE4YTBmMzA4MjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmgKQEAgLTQyLDYgKzQyLDggQEAgcHVibGljOgog
ICAgIHZvaWQgYWRqdXN0KFJlbmRlclN0eWxlJiwgY29uc3QgUmVuZGVyU3R5bGUqIHVzZXJBZ2Vu
dEFwcGVhcmFuY2VTdHlsZSkgY29uc3Q7CiAKICAgICBzdGF0aWMgdm9pZCBhZGp1c3RTVkdFbGVt
ZW50U3R5bGUoUmVuZGVyU3R5bGUmLCBjb25zdCBTVkdFbGVtZW50Jik7CisgICAgc3RhdGljIHZv
aWQgYWRqdXN0QW5pbWF0ZWRTdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQmLCBib29s
IGZvcmNlU3RhY2tpbmdDb250ZXh0KTsKKwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAg
ICAgc3RhdGljIGJvb2wgYWRqdXN0Rm9yVGV4dEF1dG9zaXppbmcoUmVuZGVyU3R5bGUmLCBjb25z
dCBFbGVtZW50Jik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMzI3YWY5ZWJlZGE2MzExNmQxYTg2MWNlOGQw
NzgwYTNmNzkyZGRkLi4yZDQ0ODA5NDk1MzUxOWU0MWRkMTEwNTlhMDA5MjE1ZTM0OGY1NWFlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDEtMDIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI1MjcyNCk6IFVuYWJsZSB0
byB0YXAgb24gcGxheSBidXR0b24gb24gZ29vZ2xlIHZpZGVvICdTZWUgdGhlIHRvcCBzZWFyY2gg
dHJlbmRzIG9mIDIwMTknCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDU2OTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4MDYyOTg3PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYW5pbWF0aW9ucy96
LWluZGV4LWluLWtleWZyYW1lLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGFuaW1h
dGlvbnMvei1pbmRleC1pbi1rZXlmcmFtZS5odG1sOiBBZGRlZC4KKwogMjAyMC0wMS0wMiAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
IHRlc3QgZ2FyZGVuaW5nIGZvciBpUGFkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRp
b25zL3otaW5kZXgtaW4ta2V5ZnJhbWUtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1h
dGlvbnMvei1pbmRleC1pbi1rZXlmcmFtZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzMzBh
NDUyZmFiZjgwMjI2ZDAzYWRmNzJiMjcxOWJkODJiM2QzYTIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9hbmltYXRpb25zL3otaW5kZXgtaW4ta2V5ZnJhbWUtZXhwZWN0ZWQuaHRtbApA
QCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHN0
eWxlPgorICAgICAgICAuY29udGFpbmVyIHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKKyAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMzAwcHg7
CisgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgLmJveCB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
ICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICAuYm90dG9tIHsKKyAgICAgICAgICAgIGxlZnQ6IDBweDsK
KyAgICAgICAgICAgIHRvcDogMHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogb3Jh
bmdlOworICAgICAgICB9CisKKyAgICAgICAgLnRvcCB7CisgICAgICAgICAgICBsZWZ0OiAxMDBw
eDsKKyAgICAgICAgICAgIHRvcDogMTAwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBncmVlbjsKKyAgICAgICAgICAgIHotaW5kZXg6IC0xOworICAgICAgICAgICAgb3BhY2l0eTog
MC44OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbSBib3giPjwvZGl2
PgorICAgICAgICA8ZGl2IGNsYXNzPSJ0b3AgYm94Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvei1pbmRleC1p
bi1rZXlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy96LWluZGV4LWluLWtleWZy
YW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzM3ZTc3Y2FhNDRmZjRlOTQ2OGY2MWY5MjY5YzJjMWRmYjMy
ZDk4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvei1pbmRleC1p
bi1rZXlmcmFtZS5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIC5jb250YWluZXIgeworICAgICAgICAgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICAg
ICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwor
ICAgICAgICB9CisgICAgICAgIAorICAgICAgICAuYm94IHsKKyAgICAgICAgICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgIGhlaWdo
dDogMjAwcHg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5ib3R0b20geworICAgICAg
ICAgICAgbGVmdDogMHB4OworICAgICAgICAgICAgdG9wOiAwcHg7CisgICAgICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBvcmFuZ2U7CisgICAgICAgIH0KKworICAgICAgICAudG9wIHsKKyAgICAg
ICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICAgICAgdG9wOiAxMDBweDsKKyAgICAgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlLW91
dCAzMG1zIGZvcndhcmRzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBAa2V5ZnJhbWVz
IGZhZGUtb3V0IHsKKyAgICAgICAgICAgIDAlIHsKKyAgICAgICAgICAgICAgICBvcGFjaXR5OiAx
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgMTAwJSB7CisgICAgICAgICAgICAgICAgei1p
bmRleDogLTE7CisgICAgICAgICAgICAgICAgb3BhY2l0eTogMC44OworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKwor
ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHsKKyAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0ZXInKS5hZGRFdmVudExpc3RlbmVyKCdh
bmltYXRpb25lbmQnLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAg
ICAgICAgIH0sIGZhbHNlKTsKKyAgICAgICAgfSwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iYm90dG9tIGJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InRlc3RlciIgY2xhc3M9
InRvcCBib3giPjwvZGl2PgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvV2ViS2l0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvQWxsIFNvdXJjZS54
Y3NjaGVtZSBiL1dlYktpdC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL0FsbCBT
b3VyY2UueGNzY2hlbWUKaW5kZXggYjc1ZjRiZDE5OWQ4YWU1NmViZmYzNzdjOGYyMjgxMzFhOGVi
MzI3Yi4uZTFjOTc0Y2FmM2IxYWY1ZjZmMGNmZTU3NzA0YTU2N2UyODNjNTA5ZCAxMDA2NDQKLS0t
IGEvV2ViS2l0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvQWxsIFNvdXJjZS54
Y3NjaGVtZQkKKysrIGIvV2ViS2l0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMv
QWxsIFNvdXJjZS54Y3NjaGVtZQkKQEAgLTU3LDcgKzU3LDcgQEAKICAgICAgICAgICAgIDxCdWls
ZGFibGVSZWZlcmVuY2UKICAgICAgICAgICAgICAgIEJ1aWxkYWJsZUlkZW50aWZpZXIgPSAicHJp
bWFyeSIKICAgICAgICAgICAgICAgIEJsdWVwcmludElkZW50aWZpZXIgPSAiRkIzOUQwRDAxMjAw
RjBFMzAwMDg4RTY5IgotICAgICAgICAgICAgICAgQnVpbGRhYmxlTmFtZSA9ICJsaWJBTkdMRS5h
IgorICAgICAgICAgICAgICAgQnVpbGRhYmxlTmFtZSA9ICJsaWJBTkdMRS1zaGFyZWQuZHlsaWIi
CiAgICAgICAgICAgICAgICBCbHVlcHJpbnROYW1lID0gIkFOR0xFIgogICAgICAgICAgICAgICAg
UmVmZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6U291cmNlL1RoaXJkUGFydHkvQU5HTEUv
QU5HTEUueGNvZGVwcm9qIj4KICAgICAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNlPgpkaWZm
IC0tZ2l0IGEvV2ViS2l0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvQWxsIFRv
b2xzLnhjc2NoZW1lIGIvV2ViS2l0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMv
QWxsIFRvb2xzLnhjc2NoZW1lCmluZGV4IGYxNGFkZjRhMTExMTFhMGNlZDI2OWQzODZlN2UyNmU1
NjBkYjI4NmEuLjA5NjI5NzU4NTBlZTA2ZDMyYjBiMmQyODE3NjU2ZjkxYjFmOGZkYTUgMTAwNjQ0
Ci0tLSBhL1dlYktpdC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL0FsbCBUb29s
cy54Y3NjaGVtZQkKKysrIGIvV2ViS2l0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVt
ZXMvQWxsIFRvb2xzLnhjc2NoZW1lCQpAQCAtODMsOCArODMsNiBAQAogICAgICAgc2VsZWN0ZWRE
ZWJ1Z2dlcklkZW50aWZpZXIgPSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkRlYnVnZ2VyLkxM
REIiCiAgICAgICBzZWxlY3RlZExhdW5jaGVySWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dlckZv
dW5kYXRpb24uTGF1bmNoZXIuTExEQiIKICAgICAgIHNob3VsZFVzZUxhdW5jaFNjaGVtZUFyZ3NF
bnYgPSAiWUVTIj4KLSAgICAgIDxUZXN0YWJsZXM+Ci0gICAgICA8L1Rlc3RhYmxlcz4KICAgICAg
IDxNYWNyb0V4cGFuc2lvbj4KICAgICAgICAgIDxCdWlsZGFibGVSZWZlcmVuY2UKICAgICAgICAg
ICAgIEJ1aWxkYWJsZUlkZW50aWZpZXIgPSAicHJpbWFyeSIKQEAgLTk0LDggKzkyLDggQEAKICAg
ICAgICAgICAgIFJlZmVyZW5jZWRDb250YWluZXIgPSAiY29udGFpbmVyOlRvb2xzL0R1bXBSZW5k
ZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvaiI+CiAgICAgICAgICA8L0J1aWxkYWJsZVJl
ZmVyZW5jZT4KICAgICAgIDwvTWFjcm9FeHBhbnNpb24+Ci0gICAgICA8QWRkaXRpb25hbE9wdGlv
bnM+Ci0gICAgICA8L0FkZGl0aW9uYWxPcHRpb25zPgorICAgICAgPFRlc3RhYmxlcz4KKyAgICAg
IDwvVGVzdGFibGVzPgogICAgPC9UZXN0QWN0aW9uPgogICAgPExhdW5jaEFjdGlvbgogICAgICAg
YnVpbGRDb25maWd1cmF0aW9uID0gIkRlYnVnIgpAQCAtMTE3LDggKzExNSw2IEBACiAgICAgICAg
ICAgICBSZWZlcmVuY2VkQ29udGFpbmVyID0gImNvbnRhaW5lcjpUb29scy9EdW1wUmVuZGVyVHJl
ZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2oiPgogICAgICAgICAgPC9CdWlsZGFibGVSZWZlcmVu
Y2U+CiAgICAgICA8L01hY3JvRXhwYW5zaW9uPgotICAgICAgPEFkZGl0aW9uYWxPcHRpb25zPgot
ICAgICAgPC9BZGRpdGlvbmFsT3B0aW9ucz4KICAgIDwvTGF1bmNoQWN0aW9uPgogICAgPFByb2Zp
bGVBY3Rpb24KICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJSZWxlYXNlIgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386720</attachid>
            <date>2020-01-03 15:06:54 -0800</date>
            <delta_ts>2020-01-03 15:59:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205694-20200103150653.patch</filename>
            <type>text/plain</type>
            <size>18303</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjEzMzliZGY4NTgzMzgx
MTRhNjAwYTg1OGY0MjAyZWNhMGFmM2JlZi4uOGY0M2RkNWI2YTdlZjcwZmYyYmI0Y2UwNjRkZjJj
ZjA5Y2M5NTg4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTAxLTAyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04g
KHIyNTI3MjQpOiBVbmFibGUgdG8gdGFwIG9uIHBsYXkgYnV0dG9uIG9uIGdvb2dsZSB2aWRlbyAn
U2VlIHRoZSB0b3Agc2VhcmNoIHRyZW5kcyBvZiAyMDE5JworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Njk0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81ODA2Mjk4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZnRlciByMjUyNzI0LCB3aGljaCBzZXBhcmF0ZWQgJ3VzZWQnIGZyb20gJ3NwZWNpZmll
ZCcgei1pbmRleCBpbiBzdHlsZSwgd2UgbmVlZCB0byBjb3B5CisgICAgICAgIHRoZSBzcGVjaWZp
ZWQgdG8gdGhlIHVzZWQgei1pbmRleCBpbiBhbmltYXRlZCBzdHlsZXMsIHdoaWxlIHByZXNlcnZp
bmcgdGhlIGV4aXN0aW5nICdmb3JjZVN0YWNraW5nQ29udGV4dCcKKyAgICAgICAgYmVoYXZpb3Ig
d2hpY2ggc2V0IHRoZSB1c2VkIHotaW5kZXggdG8gMC4KKworICAgICAgICBEbyBzbyBieSBjcmVh
dGluZyBBZGp1c3Rlcjo6YWRqdXN0QW5pbWF0ZWRTdHlsZSgpLCB3aGljaCBpcyBjYWxsZWQgZnJv
bSBUcmVlUmVzb2x2ZXI6OmNyZWF0ZUFuaW1hdGVkRWxlbWVudFVwZGF0ZSgpCisgICAgICAgIGlm
IGFueSBhbmltYXRpb25zIGNvdWxkIGhhdmUgYWZmZWN0ZWQgdGhlIHN0eWxlLiBXZSBuZWVkIHRv
IHBhc3MgYmFjayBpbmZvcm1hdGlvbiBhYm91dCB3aGV0aGVyIHRoZSBhbmltYXRpb24gc2hvdWxk
CisgICAgICAgIGZvcmNlIHN0YWNraW5nIGNvbnRleHQuCisKKyAgICAgICAgVGVzdDogYW5pbWF0
aW9ucy96LWluZGV4LWluLWtleWZyYW1lLmh0bWwKKworICAgICAgICAqIGFuaW1hdGlvbi9LZXlm
cmFtZUVmZmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6YXBwbHkp
OgorICAgICAgICAqIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oOgorICAgICAgICAoV2ViQ29y
ZTo6S2V5ZnJhbWVFZmZlY3Q6OnRyaWdnZXJzU3RhY2tpbmdDb250ZXh0IGNvbnN0KToKKyAgICAg
ICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjphcHBseUtl
eWZyYW1lRWZmZWN0cyk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBwYWdl
L2FuaW1hdGlvbi9DU1NBbmltYXRpb25Db250cm9sbGVyLmg6CisgICAgICAgICgpOiBEZWxldGVk
LgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb21wb3NpdGVBbmltYXRpb246OmFuaW1hdGUpOgorICAgICAgICAqIHN0
eWxlL1N0eWxlQWRqdXN0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkFkanVzdGVy
OjphZGp1c3RBbmltYXRlZFN0eWxlKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZUFkanVzdGVyLmg6
CisgICAgICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6Y3JlYXRlQW5pbWF0ZWRFbGVtZW50VXBkYXRlKToKKwog
MjAyMC0wMS0wMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIEFkZCBTUEkgdG8gZGlzYWJsZSBDT1JTIG9uIHJlcXVlc3RzIHRvIFVSTHMgbWF0
Y2hpbmcgYSBwYXR0ZXJuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5
ZnJhbWVFZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0
LmNwcAppbmRleCBmOTk0MzA3ZDY2MGE5NmEwOWZiMDc0MmNmZWZjM2MyODFlNDEyYjAxLi45NTgz
YWNhZThhZWJlNzg0ZWFkMjNlNmY5NzE5OWU3ZTNlM2YwNmUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJS
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiU3R5bGVBZGp1c3Rlci5oIgogI2lu
Y2x1ZGUgIlN0eWxlUGVuZGluZ1Jlc291cmNlcy5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIu
aCIKICNpbmNsdWRlICJUaW1pbmdGdW5jdGlvbi5oIgpAQCAtMTA5MCwxMiArMTA5MSw2IEBAIHZv
aWQgS2V5ZnJhbWVFZmZlY3Q6OmFwcGx5KFJlbmRlclN0eWxlJiB0YXJnZXRTdHlsZSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgc2V0QW5pbWF0ZWRQcm9wZXJ0aWVzSW5TdHlsZSh0YXJnZXRTdHls
ZSwgY29tcHV0ZWRUaW1pbmcucHJvZ3Jlc3MudmFsdWUoKSk7Ci0KLSAgICAvLyBodHRwczovL3cz
Yy5naXRodWIuaW8vd2ViLWFuaW1hdGlvbnMvI3NpZGUtZWZmZWN0cy1zZWN0aW9uCi0gICAgLy8g
Rm9yIGV2ZXJ5IHByb3BlcnR5IHRhcmdldGVkIGJ5IGF0IGxlYXN0IG9uZSBhbmltYXRpb24gZWZm
ZWN0IHRoYXQgaXMgY3VycmVudCBvciBpbiBlZmZlY3QsIHRoZSB1c2VyIGFnZW50Ci0gICAgLy8g
bXVzdCBhY3QgYXMgaWYgdGhlIHdpbGwtY2hhbmdlIHByb3BlcnR5IChbY3NzLXdpbGwtY2hhbmdl
LTFdKSBvbiB0aGUgdGFyZ2V0IGVsZW1lbnQgaW5jbHVkZXMgdGhlIHByb3BlcnR5LgotICAgIGlm
IChtX3RyaWdnZXJzU3RhY2tpbmdDb250ZXh0ICYmIHRhcmdldFN0eWxlLmhhc0F1dG9Vc2VkWklu
ZGV4KCkpCi0gICAgICAgIHRhcmdldFN0eWxlLnNldFVzZWRaSW5kZXgoMCk7CiB9CiAKIHZvaWQg
S2V5ZnJhbWVFZmZlY3Q6OmludmFsaWRhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5
ZnJhbWVFZmZlY3QuaAppbmRleCAwNDkzMzdkZGEwMDU4OGIyNmVlN2QyYjk5ZGUwNjc4NDQ2NjFl
ZWM1Li44NTYwOTgxMjYwM2JmNzMwMDU4NTUzZmZjYTMwMDExN2JmN2JmZDlkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaApAQCAtMTI2LDYgKzEyNiw3IEBAIHB1
YmxpYzoKICAgICBSZW5kZXJFbGVtZW50KiByZW5kZXJlcigpIGNvbnN0IG92ZXJyaWRlOwogICAg
IGNvbnN0IFJlbmRlclN0eWxlJiBjdXJyZW50U3R5bGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBi
b29sIGlzQWNjZWxlcmF0ZWQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFJ1bkFjY2VsZXJhdGVk
OyB9CisgICAgYm9vbCB0cmlnZ2Vyc1N0YWNraW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1f
dHJpZ2dlcnNTdGFja2luZ0NvbnRleHQ7IH0KICAgICBib29sIGZpbHRlckZ1bmN0aW9uTGlzdHNN
YXRjaCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fZmlsdGVyRnVuY3Rpb25MaXN0c01hdGNo
OyB9CiAgICAgYm9vbCB0cmFuc2Zvcm1GdW5jdGlvbkxpc3RzTWF0Y2goKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBtX3RyYW5zZm9ybUZ1bmN0aW9uTGlzdHNNYXRjaDsgfQogI2lmIEVOQUJMRShG
SUxURVJTX0xFVkVMXzIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNTM3ZWQyYjE3NmE0MjY5
N2VhZDNlNjk4N2UzYzMwZTk4MzdlNzA5Mi4uODdhYTgyNzIwZDgwNjIzNjBjZDA0NzU5NjFkOTMx
MDkxOWY5NGYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMzcyNCw5ICszNzI0LDEwIEBA
IGJvb2wgRWxlbWVudDo6aGFzS2V5ZnJhbWVFZmZlY3RzKCkgY29uc3QKICAgICByZXR1cm4ga2V5
ZnJhbWVFZmZlY3RTdGFjayAmJiBrZXlmcmFtZUVmZmVjdFN0YWNrLT5oYXNFZmZlY3RzKCk7CiB9
CiAKLWJvb2wgRWxlbWVudDo6YXBwbHlLZXlmcmFtZUVmZmVjdHMoUmVuZGVyU3R5bGUmIHRhcmdl
dFN0eWxlKQorQW5pbWF0aW9uSW1wYWN0IEVsZW1lbnQ6OmFwcGx5S2V5ZnJhbWVFZmZlY3RzKFJl
bmRlclN0eWxlJiB0YXJnZXRTdHlsZSkKIHsKICAgICBib29sIGhhc05vbkFjY2VsZXJhdGVkQW5p
bWF0aW9uUHJvcGVydHkgPSBmYWxzZTsKKyAgICBib29sIGZvcmNlU3RhY2tpbmdDb250ZXh0ID0g
ZmFsc2U7CiAKICAgICBmb3IgKGNvbnN0IGF1dG8mIGVmZmVjdCA6IGVuc3VyZUtleWZyYW1lRWZm
ZWN0U3RhY2soKS5zb3J0ZWRFZmZlY3RzKCkpIHsKICAgICAgICAgQVNTRVJUKGVmZmVjdC0+YW5p
bWF0aW9uKCkpOwpAQCAtMzczNCw5ICszNzM1LDExIEBAIGJvb2wgRWxlbWVudDo6YXBwbHlLZXlm
cmFtZUVmZmVjdHMoUmVuZGVyU3R5bGUmIHRhcmdldFN0eWxlKQogCiAgICAgICAgIGlmICghaGFz
Tm9uQWNjZWxlcmF0ZWRBbmltYXRpb25Qcm9wZXJ0eSAmJiAhZWZmZWN0LT5pc0FjY2VsZXJhdGVk
KCkpCiAgICAgICAgICAgICBoYXNOb25BY2NlbGVyYXRlZEFuaW1hdGlvblByb3BlcnR5ID0gdHJ1
ZTsKKyAgICAgICAgCisgICAgICAgIGZvcmNlU3RhY2tpbmdDb250ZXh0IHw9IGVmZmVjdC0+dHJp
Z2dlcnNTdGFja2luZ0NvbnRleHQoKTsKICAgICB9CiAKLSAgICByZXR1cm4gIWhhc05vbkFjY2Vs
ZXJhdGVkQW5pbWF0aW9uUHJvcGVydHk7CisgICAgcmV0dXJuIHsgIWhhc05vbkFjY2VsZXJhdGVk
QW5pbWF0aW9uUHJvcGVydHksIGZvcmNlU3RhY2tpbmdDb250ZXh0IH07CiB9CiAKICNpZiBFTkFC
TEUoUkVTSVpFX09CU0VSVkVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggODQ0YWUyMmFhYjYxZDUz
YWU0OWFiZmY4NDlhY2M4YTJhZTljNWFjZi4uZmIyZDYxOWRjZTAxZjA5ZDk1MWZmN2E1MGZkYTE4
MTdkZmNlZjJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC03Myw2ICs3MywxMSBAQCBuYW1lc3Bh
Y2UgU3R5bGUgewogc3RydWN0IEVsZW1lbnRTdHlsZTsKIH0KIAorc3RydWN0IEFuaW1hdGlvbklt
cGFjdCB7CisgICAgYm9vbCByZXF1aXJlc1JlY29tcG9zaXRlIHsgZmFsc2UgfTsKKyAgICBib29s
IGZvcmNlc1N0YWNraW5nQ29udGV4dCB7IGZhbHNlIH07Cit9OworCiBjbGFzcyBFbGVtZW50IDog
cHVibGljIENvbnRhaW5lck5vZGUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRWxlbWVu
dCk7CiBwdWJsaWM6CkBAIC00ODAsNyArNDg1LDcgQEAgcHVibGljOgogCiAgICAgS2V5ZnJhbWVF
ZmZlY3RTdGFjayYgZW5zdXJlS2V5ZnJhbWVFZmZlY3RTdGFjaygpOwogICAgIGJvb2wgaGFzS2V5
ZnJhbWVFZmZlY3RzKCkgY29uc3Q7Ci0gICAgYm9vbCBhcHBseUtleWZyYW1lRWZmZWN0cyhSZW5k
ZXJTdHlsZSYpOworICAgIEFuaW1hdGlvbkltcGFjdCBhcHBseUtleWZyYW1lRWZmZWN0cyhSZW5k
ZXJTdHlsZSYpOwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgY29udGFpbnNGdWxsU2NyZWVuRWxlbWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5oCmlu
ZGV4IGVjN2I5YzdkMjdmOWM5ZDJlODVhMzBmZjZmYWJhYjFkOWJhMGIyMmYuLjdjZWJkMmZjZWM2
ZmFkMWZmN2IyOGMxOGU5MjI4YTgxNDNkNDg4MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9DU1NBbmltYXRpb25Db250cm9sbGVyLmgKQEAgLTMwLDYgKzMw
LDcgQEAKIAogI2luY2x1ZGUgIkFuaW1hdGlvbkJhc2UuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0
eU5hbWVzLmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgi
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIApAQCAtMzcsMTQgKzM4LDEzIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU7CiBjbGFz
cyBEb2N1bWVudDsKLWNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIExheW91dFJl
Y3Q7CiBjbGFzcyBSZW5kZXJFbGVtZW50OwogCiBzdHJ1Y3QgQW5pbWF0aW9uVXBkYXRlIHsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IHN0eWxlOwotICAgIGJvb2wgYW5pbWF0aW9u
Q2hhbmdlUmVxdWlyZXNSZWNvbXBvc2l0ZSB7IGZhbHNlIH07CisgICAgQW5pbWF0aW9uSW1wYWN0
IGltcGFjdDsKIH07CiAKIGNsYXNzIENTU0FuaW1hdGlvbkNvbnRyb2xsZXIgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKaW5k
ZXggMDQ0OTQ3MDI0MGY5YTYzMmFhYTcwNjEzOWIxNWM4ZDMyN2Q4YjUzMS4uMjBjODI4MmU5OTcx
YTUxMjQ1ZDRiODE2YWE3MDNkZGM1NTY1ZjA4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCkBAIC0zNyw2ICszNyw3IEBA
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNs
dWRlICJSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlN0eWxlQWRqdXN0ZXIuaCIKICNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAK
QEAgLTMzMiwxNiArMzMzLDcgQEAgQW5pbWF0aW9uVXBkYXRlIENvbXBvc2l0ZUFuaW1hdGlvbjo6
YW5pbWF0ZShFbGVtZW50JiBlbGVtZW50LCBjb25zdCBSZW5kZXJTdHlsZSoKICAgICAgICAgfQog
ICAgIH0KIAotICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtYW5pbWF0aW9ucy0x
LwotICAgIC8vIFdoaWxlIGFuIGFuaW1hdGlvbiBpcyBhcHBsaWVkIGJ1dCBoYXMgbm90IGZpbmlz
aGVkLCBvciBoYXMgZmluaXNoZWQgYnV0IGhhcyBhbiBhbmltYXRpb24tZmlsbC1tb2RlIG9mIGZv
cndhcmRzIG9yIGJvdGgsCi0gICAgLy8gdGhlIHVzZXIgYWdlbnQgbXVzdCBhY3QgYXMgaWYgdGhl
IHdpbGwtY2hhbmdlIHByb3BlcnR5IChbY3NzLXdpbGwtY2hhbmdlLTFdKSBvbiB0aGUgZWxlbWVu
dCBhZGRpdGlvbmFsbHkKLSAgICAvLyBpbmNsdWRlcyBhbGwgdGhlIHByb3BlcnRpZXMgYW5pbWF0
ZWQgYnkgdGhlIGFuaW1hdGlvbi4KLSAgICBpZiAoZm9yY2VTdGFja2luZ0NvbnRleHQgJiYgYW5p
bWF0ZWRTdHlsZSkgewotICAgICAgICBpZiAoYW5pbWF0ZWRTdHlsZS0+aGFzQXV0b1VzZWRaSW5k
ZXgoKSkKLSAgICAgICAgICAgIGFuaW1hdGVkU3R5bGUtPnNldFVzZWRaSW5kZXgoMCk7Ci0gICAg
fQotCi0gICAgcmV0dXJuIHsgV1RGTW92ZShhbmltYXRlZFN0eWxlKSwgYW5pbWF0aW9uQ2hhbmdl
UmVxdWlyZXNSZWNvbXBvc2l0ZSB9OworICAgIHJldHVybiB7IFdURk1vdmUoYW5pbWF0ZWRTdHls
ZSksIHsgYW5pbWF0aW9uQ2hhbmdlUmVxdWlyZXNSZWNvbXBvc2l0ZSwgZm9yY2VTdGFja2luZ0Nv
bnRleHQgfSB9OwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IENvbXBvc2l0ZUFu
aW1hdGlvbjo6Z2V0QW5pbWF0ZWRTdHlsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
QWRqdXN0ZXIuY3BwCmluZGV4IDhkYWNhMWVlMDgxOWVmNWUyYjY4MzJjYzNlMzUwYTExZDRmOWI2
ZjkuLmU2NjM0YWYyMmNjMGQ3NDdmZGExMDY2YzY2ZWM3MmY4MjNjNmUxZDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAi
TWF0aE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJRdWlya3MuaCIK
KyNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1
ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgpA
QCAtNTI0LDYgKzUyNSwyMiBAQCB2b2lkIEFkanVzdGVyOjphZGp1c3RTVkdFbGVtZW50U3R5bGUo
UmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBTVkdFbGVtZW50JiBzdmdFbAogICAgICAgICBzdHls
ZS5zZXREaXNwbGF5KERpc3BsYXlUeXBlOjpCbG9jayk7CiB9CiAKK3ZvaWQgQWRqdXN0ZXI6OmFk
anVzdEFuaW1hdGVkU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSYg
cGFyZW50U3R5bGUsIGJvb2wgZm9yY2VTdGFja2luZ0NvbnRleHQpCit7CisgICAgLy8gU2V0IGFu
IGV4cGxpY2l0IHVzZWQgei1pbmRleCBpbiB0d28gY2FzZXM6CisgICAgLy8gMS4gV2hlbiB0aGUg
ZWxlbWVudCByZXNwZWN0cyB6LWluZGV4LCBhbmQgdGhlIHN0eWxlIGhhcyBhbiBleHBsaWNpdCB6
LWluZGV4IHNldCAoZm9yIGV4YW1wbGUsIHRoZSBhbmltYXRpb24KKyAgICAvLyAgICBpdHNlbGYg
bWF5IGFuaW1hdGUgei1pbmRleCkuCisgICAgLy8gMi4gV2hlbiB3ZSB3YW50IHRoZSBzdGFja2lu
ZyBjb250ZXh0IHNpZGUtZWZmZXRzIG9mIGV4cGxpY2l0IHotaW5kZXgsIHZpYSBmb3JjZVN0YWNr
aW5nQ29udGV4dC4KKyAgICAvLyBJdCdzIGltcG9ydGFudCB0byBub3QgY2xvYmJlciBhbiBleGlz
dGluZyB1c2VkIHotaW5kZXgsIHNpbmNlIGFuIGVhcmxpZXIgYW5pbWF0aW9uIG1heSBoYXZlIHNl
dCBpdCwgYnV0IHdlCisgICAgLy8gbWF5IHN0aWxsIG5lZWQgdG8gdXBkYXRlIHRoZSB1c2VkIHot
aW5kZXggdmFsdWUgZnJvbSB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgIGJvb2wgZWxlbWVudFJl
c3BlY3RzWkluZGV4ID0gc3R5bGUucG9zaXRpb24oKSAhPSBQb3NpdGlvblR5cGU6OlN0YXRpYyB8
fCBwYXJlbnRTdHlsZS5pc0Rpc3BsYXlGbGV4aWJsZU9yR3JpZEJveCgpOworCisgICAgaWYgKGVs
ZW1lbnRSZXNwZWN0c1pJbmRleCAmJiAhc3R5bGUuaGFzQXV0b1NwZWNpZmllZFpJbmRleCgpKQor
ICAgICAgICBzdHlsZS5zZXRVc2VkWkluZGV4KHN0eWxlLnNwZWNpZmllZFpJbmRleCgpKTsKKyAg
ICBlbHNlIGlmIChmb3JjZVN0YWNraW5nQ29udGV4dCkKKyAgICAgICAgc3R5bGUuc2V0VXNlZFpJ
bmRleCgwKTsKK30KKwogdm9pZCBBZGp1c3Rlcjo6YWRqdXN0Rm9yU2l0ZVNwZWNpZmljUXVpcmtz
KFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKIHsKICAgICBpZiAobV9kb2N1bWVudC5xdWlya3Mo
KS5uZWVkc0dNYWlsT3ZlcmZsb3dTY3JvbGxRdWlyaygpICYmIG1fZWxlbWVudCkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5oIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5oCmluZGV4IGQzN2UyZDY2N2E5YTc2NjE5NjM3Y2EyZDhi
OGYyZTA4NjcyMDliMDkuLjYwZTA0MzE0YmE4MDlkZmFmYjVjMjk5NGRjZjk2NTU0YjYzOGIzODQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmgKQEAgLTQyLDYgKzQyLDggQEAgcHVi
bGljOgogICAgIHZvaWQgYWRqdXN0KFJlbmRlclN0eWxlJiwgY29uc3QgUmVuZGVyU3R5bGUqIHVz
ZXJBZ2VudEFwcGVhcmFuY2VTdHlsZSkgY29uc3Q7CiAKICAgICBzdGF0aWMgdm9pZCBhZGp1c3RT
VkdFbGVtZW50U3R5bGUoUmVuZGVyU3R5bGUmLCBjb25zdCBTVkdFbGVtZW50Jik7CisgICAgc3Rh
dGljIHZvaWQgYWRqdXN0QW5pbWF0ZWRTdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IFJlbmRlclN0
eWxlJiBwYXJlbnRTdHlsZSwgYm9vbCBmb3JjZVN0YWNraW5nQ29udGV4dCk7CisKICNpZiBFTkFC
TEUoVEVYVF9BVVRPU0laSU5HKQogICAgIHN0YXRpYyBib29sIGFkanVzdEZvclRleHRBdXRvc2l6
aW5nKFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKaW5kZXggM2Y1NTQwZGE4ZjUyZGIxY2FjYzJm
MGQzZDY4ZmVjOWI5Nzc1ODdlNi4uOTJiNTczYmNjNTQ1N2Y2ODlmZTFhZjg5OTExZTk4NGJiOTAz
Yzk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcApAQCAt
NDksNiArNDksNyBAQAogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTdHls
ZUFkanVzdGVyLmgiCiAjaW5jbHVkZSAiU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5oIgogI2luY2x1
ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJTdHlsZVNjb3BlLmgiCkBAIC0zMDIsNiAr
MzAzLDggQEAgRWxlbWVudFVwZGF0ZSBUcmVlUmVzb2x2ZXI6OmNyZWF0ZUFuaW1hdGVkRWxlbWVu
dFVwZGF0ZShzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3QKICAgICBhdXRvKiBvbGRTdHlsZSA9IGVs
ZW1lbnQucmVuZGVyT3JEaXNwbGF5Q29udGVudHNTdHlsZSgpOwogCiAgICAgYm9vbCBzaG91bGRS
ZWNvbXBvc2l0ZUxheWVyID0gZmFsc2U7CisgICAgYm9vbCBmb3JjZVN0YWNraW5nQ29udGV4dCA9
IGZhbHNlOworICAgIGJvb2wgYW5pbWF0aW9uTWF5SGF2ZUNoYW5nZWRTdHlsZSA9IGZhbHNlOwog
CiAgICAgLy8gTmV3IGNvZGUgcGF0aCBmb3IgQ1NTIEFuaW1hdGlvbnMgYW5kIENTUyBUcmFuc2l0
aW9ucy4KICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53
ZWJBbmltYXRpb25zQ1NTSW50ZWdyYXRpb25FbmFibGVkKCkpIHsKQEAgLTMwOSwxMSArMzEyLDE1
IEBAIEVsZW1lbnRVcGRhdGUgVHJlZVJlc29sdmVyOjpjcmVhdGVBbmltYXRlZEVsZW1lbnRVcGRh
dGUoc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0CiAgICAgICAgIC8vIG9uIHRoZSBkb2N1bWVudCB0
aW1lbGluZS4gTm90ZSB0aGF0IHdlIGdldCB0aW1lbGluZSgpIG9uIHRoZSBEb2N1bWVudCBoZXJl
IGJlY2F1c2Ugd2UgbmVlZCBhIHRpbWVsaW5lIGNyZWF0ZWQKICAgICAgICAgLy8gaW4gY2FzZSBu
byBXZWIgQW5pbWF0aW9ucyBoYXZlIGJlZW4gY3JlYXRlZCB0aHJvdWdoIHRoZSBKUyBBUEkuCiAg
ICAgICAgIGlmIChlbGVtZW50LmRvY3VtZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0g
RG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSAmJiAhZWxlbWVudC5kb2N1bWVudCgpLnJl
bmRlclZpZXcoKS0+cHJpbnRpbmcoKSkgewotICAgICAgICAgICAgaWYgKG9sZFN0eWxlICYmIChv
bGRTdHlsZS0+aGFzVHJhbnNpdGlvbnMoKSB8fCBuZXdTdHlsZS0+aGFzVHJhbnNpdGlvbnMoKSkp
CisgICAgICAgICAgICBpZiAob2xkU3R5bGUgJiYgKG9sZFN0eWxlLT5oYXNUcmFuc2l0aW9ucygp
IHx8IG5ld1N0eWxlLT5oYXNUcmFuc2l0aW9ucygpKSkgewogICAgICAgICAgICAgICAgIG1fZG9j
dW1lbnQudGltZWxpbmUoKS51cGRhdGVDU1NUcmFuc2l0aW9uc0ZvckVsZW1lbnQoZWxlbWVudCwg
Km9sZFN0eWxlLCAqbmV3U3R5bGUpOworICAgICAgICAgICAgICAgIGFuaW1hdGlvbk1heUhhdmVD
aGFuZ2VkU3R5bGUgPSB0cnVlOworICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAoKG9s
ZFN0eWxlICYmIG9sZFN0eWxlLT5oYXNBbmltYXRpb25zKCkpIHx8IG5ld1N0eWxlLT5oYXNBbmlt
YXRpb25zKCkpCisgICAgICAgICAgICBpZiAoKG9sZFN0eWxlICYmIG9sZFN0eWxlLT5oYXNBbmlt
YXRpb25zKCkpIHx8IG5ld1N0eWxlLT5oYXNBbmltYXRpb25zKCkpIHsKICAgICAgICAgICAgICAg
ICBtX2RvY3VtZW50LnRpbWVsaW5lKCkudXBkYXRlQ1NTQW5pbWF0aW9uc0ZvckVsZW1lbnQoZWxl
bWVudCwgb2xkU3R5bGUsICpuZXdTdHlsZSk7CisgICAgICAgICAgICAgICAgYW5pbWF0aW9uTWF5
SGF2ZUNoYW5nZWRTdHlsZSA9IHRydWU7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9
CiAKQEAgLTMyMSw3ICszMjgsOSBAQCBFbGVtZW50VXBkYXRlIFRyZWVSZXNvbHZlcjo6Y3JlYXRl
QW5pbWF0ZWRFbGVtZW50VXBkYXRlKHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdAogICAgIC8vIGFz
IGFuaW1hdGlvbnMgY3JlYXRlZCB2aWEgdGhlIEpTIEFQSS4KICAgICBpZiAoZWxlbWVudC5oYXNL
ZXlmcmFtZUVmZmVjdHMoKSkgewogICAgICAgICBhdXRvIGFuaW1hdGVkU3R5bGUgPSBSZW5kZXJT
dHlsZTo6Y2xvbmVQdHIoKm5ld1N0eWxlKTsKLSAgICAgICAgc2hvdWxkUmVjb21wb3NpdGVMYXll
ciA9IGVsZW1lbnQuYXBwbHlLZXlmcmFtZUVmZmVjdHMoKmFuaW1hdGVkU3R5bGUpOworICAgICAg
ICBhdXRvIGltcGFjdCA9IGVsZW1lbnQuYXBwbHlLZXlmcmFtZUVmZmVjdHMoKmFuaW1hdGVkU3R5
bGUpOworICAgICAgICBzaG91bGRSZWNvbXBvc2l0ZUxheWVyID0gaW1wYWN0LnJlcXVpcmVzUmVj
b21wb3NpdGU7CisgICAgICAgIGZvcmNlU3RhY2tpbmdDb250ZXh0ID0gaW1wYWN0LmZvcmNlc1N0
YWNraW5nQ29udGV4dDsKICAgICAgICAgbmV3U3R5bGUgPSBXVEZNb3ZlKGFuaW1hdGVkU3R5bGUp
OwogICAgIH0KIApAQCAtMzMwLDEyICszMzksMTggQEAgRWxlbWVudFVwZGF0ZSBUcmVlUmVzb2x2
ZXI6OmNyZWF0ZUFuaW1hdGVkRWxlbWVudFVwZGF0ZShzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3QK
ICAgICAgICAgYXV0byYgYW5pbWF0aW9uQ29udHJvbGxlciA9IG1fZG9jdW1lbnQuZnJhbWUoKS0+
YW5pbWF0aW9uKCk7CiAKICAgICAgICAgYXV0byBhbmltYXRpb25VcGRhdGUgPSBhbmltYXRpb25D
b250cm9sbGVyLnVwZGF0ZUFuaW1hdGlvbnMoZWxlbWVudCwgKm5ld1N0eWxlLCBvbGRTdHlsZSk7
Ci0gICAgICAgIHNob3VsZFJlY29tcG9zaXRlTGF5ZXIgPSBhbmltYXRpb25VcGRhdGUuYW5pbWF0
aW9uQ2hhbmdlUmVxdWlyZXNSZWNvbXBvc2l0ZTsKKyAgICAgICAgc2hvdWxkUmVjb21wb3NpdGVM
YXllciA9IGFuaW1hdGlvblVwZGF0ZS5pbXBhY3QucmVxdWlyZXNSZWNvbXBvc2l0ZTsKKyAgICAg
ICAgZm9yY2VTdGFja2luZ0NvbnRleHQgPSBhbmltYXRpb25VcGRhdGUuaW1wYWN0LmZvcmNlc1N0
YWNraW5nQ29udGV4dDsKIAotICAgICAgICBpZiAoYW5pbWF0aW9uVXBkYXRlLnN0eWxlKQorICAg
ICAgICBpZiAoYW5pbWF0aW9uVXBkYXRlLnN0eWxlKSB7CiAgICAgICAgICAgICBuZXdTdHlsZSA9
IFdURk1vdmUoYW5pbWF0aW9uVXBkYXRlLnN0eWxlKTsKKyAgICAgICAgICAgIGFuaW1hdGlvbk1h
eUhhdmVDaGFuZ2VkU3R5bGUgPSB0cnVlOworICAgICAgICB9CiAgICAgfQogCisgICAgaWYgKGFu
aW1hdGlvbk1heUhhdmVDaGFuZ2VkU3R5bGUpCisgICAgICAgIEFkanVzdGVyOjphZGp1c3RBbmlt
YXRlZFN0eWxlKCpuZXdTdHlsZSwgcGFyZW50KCkuc3R5bGUsIGZvcmNlU3RhY2tpbmdDb250ZXh0
KTsKKwogICAgIGF1dG8gY2hhbmdlID0gb2xkU3R5bGUgPyBkZXRlcm1pbmVDaGFuZ2UoKm9sZFN0
eWxlLCAqbmV3U3R5bGUpIDogRGV0YWNoOwogCiAgICAgYXV0byB2YWxpZGl0eSA9IGVsZW1lbnQu
c3R5bGVWYWxpZGl0eSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYzMjdhZjllYmVkYTYzMTE2ZDFhODYxY2U4ZDA3ODBh
M2Y3OTJkZGQuLmQyMWIwZjVkMGFhNjVmNjBhNDg2MmY1OWZjODQ2MzhhMzE3YTY0NzcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNSBAQAorMjAyMC0wMS0wMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjUyNzI0KTogVW5hYmxlIHRvIHRh
cCBvbiBwbGF5IGJ1dHRvbiBvbiBnb29nbGUgdmlkZW8gJ1NlZSB0aGUgdG9wIHNlYXJjaCB0cmVu
ZHMgb2YgMjAxOScKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNTY5NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgwNjI5ODc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhbmltYXRpb25zL3otaW5k
ZXgtaW4ta2V5ZnJhbWUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9u
cy96LWluZGV4LWluLWtleWZyYW1lLmh0bWw6IEFkZGVkLgorCisyMDIwLTAxLTAyICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIy
NTI3MjQpOiBVbmFibGUgdG8gdGFwIG9uIHBsYXkgYnV0dG9uIG9uIGdvb2dsZSB2aWRlbyAnU2Vl
IHRoZSB0b3Agc2VhcmNoIHRyZW5kcyBvZiAyMDE5JworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Njk0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
ODA2Mjk4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGFuaW1hdGlvbnMvei1pbmRleC1pbi1rZXlmcmFtZS1leHBlY3RlZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBhbmltYXRpb25zL3otaW5kZXgtaW4ta2V5ZnJhbWUuaHRtbDogQWRkZWQuCisK
IDIwMjAtMDEtMDIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZyBmb3IgaVBhZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvYW5pbWF0aW9ucy96LWluZGV4LWluLWtleWZyYW1lLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9hbmltYXRpb25zL3otaW5kZXgtaW4ta2V5ZnJhbWUtZXhwZWN0ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MzMwYTQ1MmZhYmY4MDIyNmQwM2FkZjcyYjI3MTliZDgyYjNkM2EyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy96LWluZGV4LWluLWtleWZyYW1l
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgLmNvbnRhaW5lciB7CisgICAgICAgICAgICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB3aWR0aDogMzAwcHg7CisgICAgICAgICAg
ICBoZWlnaHQ6IDMwMHB4OworICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5ib3ggeworICAgICAgICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAgaGVpZ2h0
OiAyMDBweDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLmJvdHRvbSB7CisgICAgICAg
ICAgICBsZWZ0OiAwcHg7CisgICAgICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IG9yYW5nZTsKKyAgICAgICAgfQorCisgICAgICAgIC50b3AgeworICAgICAg
ICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgICAgICB0b3A6IDEwMHB4OworICAgICAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgICAgICB6LWluZGV4OiAtMTsKKyAgICAg
ICAgICAgIG9wYWNpdHk6IDAuODsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJi
b3R0b20gYm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0idG9wIGJveCI+PC9kaXY+Cisg
ICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmlt
YXRpb25zL3otaW5kZXgtaW4ta2V5ZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMv
ei1pbmRleC1pbi1rZXlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzN2U3N2NhYTQ0ZmY0ZTk0Njhm
NjFmOTI2OWMyYzFkZmIzMmQ5ODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hbmlt
YXRpb25zL3otaW5kZXgtaW4ta2V5ZnJhbWUuaHRtbApAQCAtMCwwICsxLDU5IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICAuY29udGFpbmVy
IHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIHdpZHRoOiAz
MDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICAgICAgICBib3JkZXI6IDFw
eCBzb2xpZCBibGFjazsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLmJveCB7CisgICAg
ICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB3aWR0aDogMjAwcHg7Cisg
ICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAu
Ym90dG9tIHsKKyAgICAgICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgICAgIHRvcDogMHB4Owor
ICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlOworICAgICAgICB9CisKKyAgICAg
ICAgLnRvcCB7CisgICAgICAgICAgICBsZWZ0OiAxMDBweDsKKyAgICAgICAgICAgIHRvcDogMTAw
cHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgICAgIGFu
aW1hdGlvbjogZmFkZS1vdXQgMzBtcyBmb3J3YXJkczsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgQGtleWZyYW1lcyBmYWRlLW91dCB7CisgICAgICAgICAgICAwJSB7CisgICAgICAgICAg
ICAgICAgb3BhY2l0eTogMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIDEwMCUgeworICAg
ICAgICAgICAgICAgIHotaW5kZXg6IC0xOworICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuODsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdD4KKyAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAo
KSA9PiB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdGVyJykuYWRk
RXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uZW5kJywgKCkgPT4geworICAgICAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgICAgICB9LCBmYWxzZSk7CisgICAgICAgIH0sIGZhbHNlKTsKKyAg
ICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbSBib3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlk
PSJ0ZXN0ZXIiIGNsYXNzPSJ0b3AgYm94Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>
<flag name="review"
          id="402492"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386794</attachid>
            <date>2020-01-05 10:41:55 -0800</date>
            <delta_ts>2020-01-05 20:42:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205694-20200105104154.patch</filename>
            <type>text/plain</type>
            <size>21097</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDEzNmYwYTUyZTJjMDgw
OWZjZjFmMTNmZTM4NTJkMDU1OWY5OGIzMC4uNjFkMjBiNWQ0MjM2N2NhMjViNTM0MGE2NjJhYTI3
ZDNmZDBlYjViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTAxLTA1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04g
KHIyNTI3MjQpOiBVbmFibGUgdG8gdGFwIG9uIHBsYXkgYnV0dG9uIG9uIGdvb2dsZSB2aWRlbyAn
U2VlIHRoZSB0b3Agc2VhcmNoIHRyZW5kcyBvZiAyMDE5JworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Njk0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81ODA2Mjk4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBaYWxhbiBCdWp0YXMuCisKKyAgICAg
ICAgQWZ0ZXIgcjI1MjcyNCwgd2hpY2ggc2VwYXJhdGVkICd1c2VkJyBmcm9tICdzcGVjaWZpZWQn
IHotaW5kZXggaW4gc3R5bGUsIHdlIG5lZWQgdG8gY29weQorICAgICAgICB0aGUgc3BlY2lmaWVk
IHRvIHRoZSB1c2VkIHotaW5kZXggaW4gYW5pbWF0ZWQgc3R5bGVzLCB3aGlsZSBwcmVzZXJ2aW5n
IHRoZSBleGlzdGluZyAnZm9yY2VTdGFja2luZ0NvbnRleHQnCisgICAgICAgIGJlaGF2aW9yIHdo
aWNoIHNldCB0aGUgdXNlZCB6LWluZGV4IHRvIDAuCisKKyAgICAgICAgRG8gc28gYnkgY3JlYXRp
bmcgQWRqdXN0ZXI6OmFkanVzdEFuaW1hdGVkU3R5bGUoKSwgd2hpY2ggaXMgY2FsbGVkIGZyb20g
VHJlZVJlc29sdmVyOjpjcmVhdGVBbmltYXRlZEVsZW1lbnRVcGRhdGUoKQorICAgICAgICBpZiBh
bnkgYW5pbWF0aW9ucyBjb3VsZCBoYXZlIGFmZmVjdGVkIHRoZSBzdHlsZS4gV2UgbmVlZCB0byBw
YXNzIGJhY2sgaW5mb3JtYXRpb24gYWJvdXQgd2hldGhlciB0aGUgYW5pbWF0aW9uIHNob3VsZAor
ICAgICAgICBmb3JjZSBzdGFja2luZyBjb250ZXh0LgorCisgICAgICAgIFRlc3Q6IGFuaW1hdGlv
bnMvei1pbmRleC1pbi1rZXlmcmFtZS5odG1sCisKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJh
bWVFZmZlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OmFwcGx5KToK
KyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OktleWZyYW1lRWZmZWN0Ojp0cmlnZ2Vyc1N0YWNraW5nQ29udGV4dCBjb25zdCk6CisgICAgICAg
ICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6YXBwbHlLZXlm
cmFtZUVmZmVjdHMpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogcGFnZS9h
bmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAoKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjphbmltYXRlKToKKyAgICAgICAgKiBzdHls
ZS9TdHlsZUFkanVzdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpBZGp1c3Rlcjo6
YWRqdXN0QW5pbWF0ZWRTdHlsZSk6CisgICAgICAgICogc3R5bGUvU3R5bGVBZGp1c3Rlci5oOgor
ICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OmNyZWF0ZUFuaW1hdGVkRWxlbWVudFVwZGF0ZSk6CisKIDIw
MjAtMDEtMDUgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZD
XVtJbnRlZ3JhdGlvbl0gRml4IGNvbXBvc2l0aW5nL21hc2tzL2NvbXBvc2l0aW5nLWNsaXAtcGF0
aC1jaGFuZ2Utbm8tcmVwYWludC5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZy
YW1lRWZmZWN0LmNwcAppbmRleCBmOTk0MzA3ZDY2MGE5NmEwOWZiMDc0MmNmZWZjM2MyODFlNDEy
YjAxLi45NTgzYWNhZThhZWJlNzg0ZWFkMjNlNmY5NzE5OWU3ZTNlM2YwNmUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKQEAgLTUwLDYgKzUwLDcgQEAK
ICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNp
bmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiU3R5bGVBZGp1c3Rl
ci5oIgogI2luY2x1ZGUgIlN0eWxlUGVuZGluZ1Jlc291cmNlcy5oIgogI2luY2x1ZGUgIlN0eWxl
UmVzb2x2ZXIuaCIKICNpbmNsdWRlICJUaW1pbmdGdW5jdGlvbi5oIgpAQCAtMTA5MCwxMiArMTA5
MSw2IEBAIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmFwcGx5KFJlbmRlclN0eWxlJiB0YXJnZXRTdHls
ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc2V0QW5pbWF0ZWRQcm9wZXJ0aWVzSW5TdHlsZSh0
YXJnZXRTdHlsZSwgY29tcHV0ZWRUaW1pbmcucHJvZ3Jlc3MudmFsdWUoKSk7Ci0KLSAgICAvLyBo
dHRwczovL3czYy5naXRodWIuaW8vd2ViLWFuaW1hdGlvbnMvI3NpZGUtZWZmZWN0cy1zZWN0aW9u
Ci0gICAgLy8gRm9yIGV2ZXJ5IHByb3BlcnR5IHRhcmdldGVkIGJ5IGF0IGxlYXN0IG9uZSBhbmlt
YXRpb24gZWZmZWN0IHRoYXQgaXMgY3VycmVudCBvciBpbiBlZmZlY3QsIHRoZSB1c2VyIGFnZW50
Ci0gICAgLy8gbXVzdCBhY3QgYXMgaWYgdGhlIHdpbGwtY2hhbmdlIHByb3BlcnR5IChbY3NzLXdp
bGwtY2hhbmdlLTFdKSBvbiB0aGUgdGFyZ2V0IGVsZW1lbnQgaW5jbHVkZXMgdGhlIHByb3BlcnR5
LgotICAgIGlmIChtX3RyaWdnZXJzU3RhY2tpbmdDb250ZXh0ICYmIHRhcmdldFN0eWxlLmhhc0F1
dG9Vc2VkWkluZGV4KCkpCi0gICAgICAgIHRhcmdldFN0eWxlLnNldFVzZWRaSW5kZXgoMCk7CiB9
CiAKIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmludmFsaWRhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vS2V5ZnJhbWVFZmZlY3QuaAppbmRleCAwNDkzMzdkZGEwMDU4OGIyNmVlN2QyYjk5ZGUw
Njc4NDQ2NjFlZWM1Li44NTYwOTgxMjYwM2JmNzMwMDU4NTUzZmZjYTMwMDExN2JmN2JmZDlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaApAQCAtMTI2LDYgKzEy
Niw3IEBAIHB1YmxpYzoKICAgICBSZW5kZXJFbGVtZW50KiByZW5kZXJlcigpIGNvbnN0IG92ZXJy
aWRlOwogICAgIGNvbnN0IFJlbmRlclN0eWxlJiBjdXJyZW50U3R5bGUoKSBjb25zdCBvdmVycmlk
ZTsKICAgICBib29sIGlzQWNjZWxlcmF0ZWQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFJ1bkFj
Y2VsZXJhdGVkOyB9CisgICAgYm9vbCB0cmlnZ2Vyc1N0YWNraW5nQ29udGV4dCgpIGNvbnN0IHsg
cmV0dXJuIG1fdHJpZ2dlcnNTdGFja2luZ0NvbnRleHQ7IH0KICAgICBib29sIGZpbHRlckZ1bmN0
aW9uTGlzdHNNYXRjaCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fZmlsdGVyRnVuY3Rpb25M
aXN0c01hdGNoOyB9CiAgICAgYm9vbCB0cmFuc2Zvcm1GdW5jdGlvbkxpc3RzTWF0Y2goKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX3RyYW5zZm9ybUZ1bmN0aW9uTGlzdHNNYXRjaDsgfQogI2lm
IEVOQUJMRShGSUxURVJTX0xFVkVMXzIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNTM3ZWQy
YjE3NmE0MjY5N2VhZDNlNjk4N2UzYzMwZTk4MzdlNzA5Mi4uNzlhYTJiNWRmYWRjZTI0ZmEzZDUw
NWNhZmUzYWY4MDBiYzYyZDVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMzcyNCwxOSAr
MzcyNCwyMiBAQCBib29sIEVsZW1lbnQ6Omhhc0tleWZyYW1lRWZmZWN0cygpIGNvbnN0CiAgICAg
cmV0dXJuIGtleWZyYW1lRWZmZWN0U3RhY2sgJiYga2V5ZnJhbWVFZmZlY3RTdGFjay0+aGFzRWZm
ZWN0cygpOwogfQogCi1ib29sIEVsZW1lbnQ6OmFwcGx5S2V5ZnJhbWVFZmZlY3RzKFJlbmRlclN0
eWxlJiB0YXJnZXRTdHlsZSkKK09wdGlvblNldDxBbmltYXRpb25JbXBhY3Q+IEVsZW1lbnQ6OmFw
cGx5S2V5ZnJhbWVFZmZlY3RzKFJlbmRlclN0eWxlJiB0YXJnZXRTdHlsZSkKIHsKLSAgICBib29s
IGhhc05vbkFjY2VsZXJhdGVkQW5pbWF0aW9uUHJvcGVydHkgPSBmYWxzZTsKKyAgICBPcHRpb25T
ZXQ8QW5pbWF0aW9uSW1wYWN0PiBpbXBhY3Q7CiAKICAgICBmb3IgKGNvbnN0IGF1dG8mIGVmZmVj
dCA6IGVuc3VyZUtleWZyYW1lRWZmZWN0U3RhY2soKS5zb3J0ZWRFZmZlY3RzKCkpIHsKICAgICAg
ICAgQVNTRVJUKGVmZmVjdC0+YW5pbWF0aW9uKCkpOwogICAgICAgICBlZmZlY3QtPmFuaW1hdGlv
bigpLT5yZXNvbHZlKHRhcmdldFN0eWxlKTsKIAotICAgICAgICBpZiAoIWhhc05vbkFjY2VsZXJh
dGVkQW5pbWF0aW9uUHJvcGVydHkgJiYgIWVmZmVjdC0+aXNBY2NlbGVyYXRlZCgpKQotICAgICAg
ICAgICAgaGFzTm9uQWNjZWxlcmF0ZWRBbmltYXRpb25Qcm9wZXJ0eSA9IHRydWU7CisgICAgICAg
IGlmIChlZmZlY3QtPmlzQWNjZWxlcmF0ZWQoKSkKKyAgICAgICAgICAgIGltcGFjdC5hZGQoQW5p
bWF0aW9uSW1wYWN0OjpSZXF1aXJlc1JlY29tcG9zaXRlKTsKKworICAgICAgICBpZiAoZWZmZWN0
LT50cmlnZ2Vyc1N0YWNraW5nQ29udGV4dCgpKQorICAgICAgICAgICAgaW1wYWN0LmFkZChBbmlt
YXRpb25JbXBhY3Q6OkZvcmNlc1N0YWNraW5nQ29udGV4dCk7CiAgICAgfQogCi0gICAgcmV0dXJu
ICFoYXNOb25BY2NlbGVyYXRlZEFuaW1hdGlvblByb3BlcnR5OworICAgIHJldHVybiBpbXBhY3Q7
CiB9CiAKICNpZiBFTkFCTEUoUkVTSVpFX09CU0VSVkVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXgg
ODQ0YWUyMmFhYjYxZDUzYWU0OWFiZmY4NDlhY2M4YTJhZTljNWFjZi4uNDdhNzFjYTdjNTNjOTQy
ZWRlOTU3N2M5OTcyYTc2ZGRhYmQwYTQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC03Myw2ICs3
MywxMSBAQCBuYW1lc3BhY2UgU3R5bGUgewogc3RydWN0IEVsZW1lbnRTdHlsZTsKIH0KIAorZW51
bSBjbGFzcyBBbmltYXRpb25JbXBhY3QgOiB1aW50OF90IHsKKyAgICBSZXF1aXJlc1JlY29tcG9z
aXRlLAorICAgIEZvcmNlc1N0YWNraW5nQ29udGV4dAorfTsKKwogY2xhc3MgRWxlbWVudCA6IHB1
YmxpYyBDb250YWluZXJOb2RlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEVsZW1lbnQp
OwogcHVibGljOgpAQCAtNDgwLDcgKzQ4NSw3IEBAIHB1YmxpYzoKIAogICAgIEtleWZyYW1lRWZm
ZWN0U3RhY2smIGVuc3VyZUtleWZyYW1lRWZmZWN0U3RhY2soKTsKICAgICBib29sIGhhc0tleWZy
YW1lRWZmZWN0cygpIGNvbnN0OwotICAgIGJvb2wgYXBwbHlLZXlmcmFtZUVmZmVjdHMoUmVuZGVy
U3R5bGUmKTsKKyAgICBPcHRpb25TZXQ8QW5pbWF0aW9uSW1wYWN0PiBhcHBseUtleWZyYW1lRWZm
ZWN0cyhSZW5kZXJTdHlsZSYpOwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgY29udGFpbnNGdWxsU2NyZWVuRWxlbWVudCgpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJv
bGxlci5oCmluZGV4IGVjN2I5YzdkMjdmOWM5ZDJlODVhMzBmZjZmYWJhYjFkOWJhMGIyMmYuLmVj
ZDYwNTg0NTM5OGFhOGU3NWE5YTUyNjVlMDBlZjY0ZDYyMjI4MTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NBbmltYXRpb25Db250cm9sbGVyLmgKQEAg
LTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkFuaW1hdGlvbkJhc2UuaCIKICNpbmNsdWRlICJD
U1NQcm9wZXJ0eU5hbWVzLmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRl
clN0eWxlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIApAQCAtMzcsMTQgKzM4LDE0IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZh
dGU7CiBjbGFzcyBEb2N1bWVudDsKLWNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNz
IExheW91dFJlY3Q7CiBjbGFzcyBSZW5kZXJFbGVtZW50OwogCiBzdHJ1Y3QgQW5pbWF0aW9uVXBk
YXRlIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IHN0eWxlOwotICAgIGJvb2wg
YW5pbWF0aW9uQ2hhbmdlUmVxdWlyZXNSZWNvbXBvc2l0ZSB7IGZhbHNlIH07CisgICAgT3B0aW9u
U2V0PEFuaW1hdGlvbkltcGFjdD4gaW1wYWN0OworCiB9OwogCiBjbGFzcyBDU1NBbmltYXRpb25D
b250cm9sbGVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Nv
bXBvc2l0ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21w
b3NpdGVBbmltYXRpb24uY3BwCmluZGV4IDA0NDk0NzAyNDBmOWE2MzJhYWE3MDYxMzliMTVjOGQz
MjdkOGI1MzEuLmViZDQ5MjcwN2YyMjhlZDBlZWEwZTI0YjAwMDgxNzYzYzdmYmU4NDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9u
LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJS
ZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJTdHls
ZUFkanVzdGVyLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC0yODYsOCArMjg3LDcgQEAgQW5pbWF0aW9uVXBkYXRl
IENvbXBvc2l0ZUFuaW1hdGlvbjo6YW5pbWF0ZShFbGVtZW50JiBlbGVtZW50LCBjb25zdCBSZW5k
ZXJTdHlsZSoKICAgICB1cGRhdGVLZXlmcmFtZUFuaW1hdGlvbnMoZWxlbWVudCwgY3VycmVudFN0
eWxlLCB0YXJnZXRTdHlsZSk7CiAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbnMuY2hlY2tDb25zaXN0
ZW5jeSgpOwogCi0gICAgYm9vbCBhbmltYXRpb25DaGFuZ2VSZXF1aXJlc1JlY29tcG9zaXRlID0g
ZmFsc2U7Ci0gICAgYm9vbCBmb3JjZVN0YWNraW5nQ29udGV4dCA9IGZhbHNlOworICAgIE9wdGlv
blNldDxBbmltYXRpb25JbXBhY3Q+IGltYXBjdDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5k
ZXJTdHlsZT4gYW5pbWF0ZWRTdHlsZTsKIApAQCAtMzAwLDcgKzMwMCw4IEBAIEFuaW1hdGlvblVw
ZGF0ZSBDb21wb3NpdGVBbmltYXRpb246OmFuaW1hdGUoRWxlbWVudCYgZWxlbWVudCwgY29uc3Qg
UmVuZGVyU3R5bGUqCiAgICAgICAgICAgICBpZiAoY2hhbmdlcy5jb250YWlucyhBbmltYXRlQ2hh
bmdlOjpTdHlsZUJsZW5kZWQpKQogICAgICAgICAgICAgICAgIGNoZWNrRm9yU3RhY2tpbmdDb250
ZXh0IHw9IFdpbGxDaGFuZ2VEYXRhOjpwcm9wZXJ0eUNyZWF0ZXNTdGFja2luZ0NvbnRleHQodHJh
bnNpdGlvbi0+YW5pbWF0aW5nUHJvcGVydHkoKSk7CiAKLSAgICAgICAgICAgIGFuaW1hdGlvbkNo
YW5nZVJlcXVpcmVzUmVjb21wb3NpdGUgPSBjaGFuZ2VzLmNvbnRhaW5zKEFuaW1hdGVDaGFuZ2U6
OlJ1bm5pbmdTdGF0ZUNoYW5nZSkgJiYgdHJhbnNpdGlvbi0+YWZmZWN0c0FjY2VsZXJhdGVkUHJv
cGVydHkoKTsKKyAgICAgICAgICAgIGlmIChjaGFuZ2VzLmNvbnRhaW5zKEFuaW1hdGVDaGFuZ2U6
OlJ1bm5pbmdTdGF0ZUNoYW5nZSkgJiYgdHJhbnNpdGlvbi0+YWZmZWN0c0FjY2VsZXJhdGVkUHJv
cGVydHkoKSkKKyAgICAgICAgICAgICAgICBpbWFwY3QuYWRkKEFuaW1hdGlvbkltcGFjdDo6UmVx
dWlyZXNSZWNvbXBvc2l0ZSk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoYW5pbWF0ZWRTdHls
ZSAmJiBjaGVja0ZvclN0YWNraW5nQ29udGV4dCkgewpAQCAtMzE2LDcgKzMxNyw3IEBAIEFuaW1h
dGlvblVwZGF0ZSBDb21wb3NpdGVBbmltYXRpb246OmFuaW1hdGUoRWxlbWVudCYgZWxlbWVudCwg
Y29uc3QgUmVuZGVyU3R5bGUqCiAgICAgICAgICAgICAgICAgfHwgYW5pbWF0ZWRTdHlsZS0+aGFz
QmFja2Ryb3BGaWx0ZXIoKQogI2VuZGlmCiAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAg
Zm9yY2VTdGFja2luZ0NvbnRleHQgPSB0cnVlOworICAgICAgICAgICAgaW1hcGN0LmFkZChBbmlt
YXRpb25JbXBhY3Q6OkZvcmNlc1N0YWNraW5nQ29udGV4dCk7CiAgICAgICAgIH0KICAgICB9CiAK
QEAgLTMyNiwyMiArMzI3LDE3IEBAIEFuaW1hdGlvblVwZGF0ZSBDb21wb3NpdGVBbmltYXRpb246
OmFuaW1hdGUoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUmVuZGVyU3R5bGUqCiAgICAgICAgIFJl
ZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4ga2V5ZnJhbWVBbmltID0gbV9rZXlmcmFtZUFuaW1hdGlv
bnMuZ2V0KG5hbWUpOwogICAgICAgICBpZiAoa2V5ZnJhbWVBbmltKSB7CiAgICAgICAgICAgICBh
dXRvIGNoYW5nZXMgPSBrZXlmcmFtZUFuaW0tPmFuaW1hdGUoKnRoaXMsIHRhcmdldFN0eWxlLCBh
bmltYXRlZFN0eWxlKTsKLSAgICAgICAgICAgIGFuaW1hdGlvbkNoYW5nZVJlcXVpcmVzUmVjb21w
b3NpdGUgPSBjaGFuZ2VzLmNvbnRhaW5zKEFuaW1hdGVDaGFuZ2U6OlJ1bm5pbmdTdGF0ZUNoYW5n
ZSkgJiYga2V5ZnJhbWVBbmltLT5hZmZlY3RzQWNjZWxlcmF0ZWRQcm9wZXJ0eSgpOwotICAgICAg
ICAgICAgZm9yY2VTdGFja2luZ0NvbnRleHQgfD0gY2hhbmdlcy5jb250YWlucyhBbmltYXRlQ2hh
bmdlOjpTdHlsZUJsZW5kZWQpICYmIGtleWZyYW1lQW5pbS0+dHJpZ2dlcnNTdGFja2luZ0NvbnRl
eHQoKTsKKyAgICAgICAgICAgIGlmIChjaGFuZ2VzLmNvbnRhaW5zKEFuaW1hdGVDaGFuZ2U6OlJ1
bm5pbmdTdGF0ZUNoYW5nZSkgJiYga2V5ZnJhbWVBbmltLT5hZmZlY3RzQWNjZWxlcmF0ZWRQcm9w
ZXJ0eSgpKQorICAgICAgICAgICAgICAgIGltYXBjdC5hZGQoQW5pbWF0aW9uSW1wYWN0OjpSZXF1
aXJlc1JlY29tcG9zaXRlKTsKKworICAgICAgICAgICAgaWYgKGNoYW5nZXMuY29udGFpbnMoQW5p
bWF0ZUNoYW5nZTo6U3R5bGVCbGVuZGVkKSAmJiBrZXlmcmFtZUFuaW0tPnRyaWdnZXJzU3RhY2tp
bmdDb250ZXh0KCkpCisgICAgICAgICAgICAgICAgaW1hcGN0LmFkZChBbmltYXRpb25JbXBhY3Q6
OkZvcmNlc1N0YWNraW5nQ29udGV4dCk7CisKICAgICAgICAgICAgIG1faGFzQW5pbWF0aW9uVGhh
dERlcGVuZHNPbkxheW91dCB8PSBrZXlmcmFtZUFuaW0tPmRlcGVuZHNPbkxheW91dCgpOwogICAg
ICAgICB9CiAgICAgfQogCi0gICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1hbmlt
YXRpb25zLTEvCi0gICAgLy8gV2hpbGUgYW4gYW5pbWF0aW9uIGlzIGFwcGxpZWQgYnV0IGhhcyBu
b3QgZmluaXNoZWQsIG9yIGhhcyBmaW5pc2hlZCBidXQgaGFzIGFuIGFuaW1hdGlvbi1maWxsLW1v
ZGUgb2YgZm9yd2FyZHMgb3IgYm90aCwKLSAgICAvLyB0aGUgdXNlciBhZ2VudCBtdXN0IGFjdCBh
cyBpZiB0aGUgd2lsbC1jaGFuZ2UgcHJvcGVydHkgKFtjc3Mtd2lsbC1jaGFuZ2UtMV0pIG9uIHRo
ZSBlbGVtZW50IGFkZGl0aW9uYWxseQotICAgIC8vIGluY2x1ZGVzIGFsbCB0aGUgcHJvcGVydGll
cyBhbmltYXRlZCBieSB0aGUgYW5pbWF0aW9uLgotICAgIGlmIChmb3JjZVN0YWNraW5nQ29udGV4
dCAmJiBhbmltYXRlZFN0eWxlKSB7Ci0gICAgICAgIGlmIChhbmltYXRlZFN0eWxlLT5oYXNBdXRv
VXNlZFpJbmRleCgpKQotICAgICAgICAgICAgYW5pbWF0ZWRTdHlsZS0+c2V0VXNlZFpJbmRleCgw
KTsKLSAgICB9Ci0KLSAgICByZXR1cm4geyBXVEZNb3ZlKGFuaW1hdGVkU3R5bGUpLCBhbmltYXRp
b25DaGFuZ2VSZXF1aXJlc1JlY29tcG9zaXRlIH07CisgICAgcmV0dXJuIHsgV1RGTW92ZShhbmlt
YXRlZFN0eWxlKSwgaW1hcGN0IH07CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4g
Q29tcG9zaXRlQW5pbWF0aW9uOjpnZXRBbmltYXRlZFN0eWxlKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKaW5kZXggOGRhY2ExZWUwODE5ZWY1ZTJiNjgzMmNjM2Uz
NTBhMTFkNGY5YjZmOS4uNDA5OTljNjVhMTA3MzQ5N2MxN2Y2OTE2MzRlYjY0NWNjMWIzZWM2YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKQEAgLTQyLDYgKzQyLDcgQEAK
ICNpbmNsdWRlICJNYXRoTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlF1aXJrcy5oIgorI2luY2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxl
LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmgiCkBAIC01MjQsNiArNTI1LDIyIEBAIHZvaWQgQWRqdXN0ZXI6OmFkanVzdFNWR0Vs
ZW1lbnRTdHlsZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFNWR0VsZW1lbnQmIHN2Z0VsCiAg
ICAgICAgIHN0eWxlLnNldERpc3BsYXkoRGlzcGxheVR5cGU6OkJsb2NrKTsKIH0KIAordm9pZCBB
ZGp1c3Rlcjo6YWRqdXN0QW5pbWF0ZWRTdHlsZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJl
bmRlclN0eWxlKiBwYXJlbnRTdHlsZSwgT3B0aW9uU2V0PEFuaW1hdGlvbkltcGFjdD4gaW1wYWN0
KQoreworICAgIC8vIFNldCBhbiBleHBsaWNpdCB1c2VkIHotaW5kZXggaW4gdHdvIGNhc2VzOgor
ICAgIC8vIDEuIFdoZW4gdGhlIGVsZW1lbnQgcmVzcGVjdHMgei1pbmRleCwgYW5kIHRoZSBzdHls
ZSBoYXMgYW4gZXhwbGljaXQgei1pbmRleCBzZXQgKGZvciBleGFtcGxlLCB0aGUgYW5pbWF0aW9u
CisgICAgLy8gICAgaXRzZWxmIG1heSBhbmltYXRlIHotaW5kZXgpLgorICAgIC8vIDIuIFdoZW4g
d2Ugd2FudCB0aGUgc3RhY2tpbmcgY29udGV4dCBzaWRlLWVmZmV0cyBvZiBleHBsaWNpdCB6LWlu
ZGV4LCB2aWEgZm9yY2VTdGFja2luZ0NvbnRleHQuCisgICAgLy8gSXQncyBpbXBvcnRhbnQgdG8g
bm90IGNsb2JiZXIgYW4gZXhpc3RpbmcgdXNlZCB6LWluZGV4LCBzaW5jZSBhbiBlYXJsaWVyIGFu
aW1hdGlvbiBtYXkgaGF2ZSBzZXQgaXQsIGJ1dCB3ZQorICAgIC8vIG1heSBzdGlsbCBuZWVkIHRv
IHVwZGF0ZSB0aGUgdXNlZCB6LWluZGV4IHZhbHVlIGZyb20gdGhlIHNwZWNpZmllZCB2YWx1ZS4K
KyAgICBib29sIGVsZW1lbnRSZXNwZWN0c1pJbmRleCA9IHN0eWxlLnBvc2l0aW9uKCkgIT0gUG9z
aXRpb25UeXBlOjpTdGF0aWMgfHwgKHBhcmVudFN0eWxlICYmIHBhcmVudFN0eWxlLT5pc0Rpc3Bs
YXlGbGV4aWJsZU9yR3JpZEJveCgpKTsKKworICAgIGlmIChlbGVtZW50UmVzcGVjdHNaSW5kZXgg
JiYgIXN0eWxlLmhhc0F1dG9TcGVjaWZpZWRaSW5kZXgoKSkKKyAgICAgICAgc3R5bGUuc2V0VXNl
ZFpJbmRleChzdHlsZS5zcGVjaWZpZWRaSW5kZXgoKSk7CisgICAgZWxzZSBpZiAoaW1wYWN0LmNv
bnRhaW5zKEFuaW1hdGlvbkltcGFjdDo6Rm9yY2VzU3RhY2tpbmdDb250ZXh0KSkKKyAgICAgICAg
c3R5bGUuc2V0VXNlZFpJbmRleCgwKTsKK30KKwogdm9pZCBBZGp1c3Rlcjo6YWRqdXN0Rm9yU2l0
ZVNwZWNpZmljUXVpcmtzKFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKIHsKICAgICBpZiAobV9k
b2N1bWVudC5xdWlya3MoKS5uZWVkc0dNYWlsT3ZlcmZsb3dTY3JvbGxRdWlyaygpICYmIG1fZWxl
bWVudCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5o
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5oCmluZGV4IGQzN2UyZDY2N2E5
YTc2NjE5NjM3Y2EyZDhiOGYyZTA4NjcyMDliMDkuLjMwMDFlOGFjOGU3ZjMzZjY2NDA2NGFkZTdl
Mzg2ODc2N2NjOWE5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRq
dXN0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmgKQEAgLTQy
LDYgKzQyLDggQEAgcHVibGljOgogICAgIHZvaWQgYWRqdXN0KFJlbmRlclN0eWxlJiwgY29uc3Qg
UmVuZGVyU3R5bGUqIHVzZXJBZ2VudEFwcGVhcmFuY2VTdHlsZSkgY29uc3Q7CiAKICAgICBzdGF0
aWMgdm9pZCBhZGp1c3RTVkdFbGVtZW50U3R5bGUoUmVuZGVyU3R5bGUmLCBjb25zdCBTVkdFbGVt
ZW50Jik7CisgICAgc3RhdGljIHZvaWQgYWRqdXN0QW5pbWF0ZWRTdHlsZShSZW5kZXJTdHlsZSYs
IGNvbnN0IFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSwgT3B0aW9uU2V0PEFuaW1hdGlvbkltcGFj
dD4pOworCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAgICBzdGF0aWMgYm9vbCBhZGp1
c3RGb3JUZXh0QXV0b3NpemluZyhSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQmKTsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCmluZGV4IDA5MDJm
Mzk1NTM0MjU5MDdjNjAzNzU4MmE0ZGIxMmYxNmQwMzU4NzEuLjZiMzk1ZGFmMWNkZDUyNTMzZmZi
NjA1YWE4YTFlMjJhNTE3NzhmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlVHJlZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVS
ZXNvbHZlci5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFkb3dSb290Lmgi
CisjaW5jbHVkZSAiU3R5bGVBZGp1c3Rlci5oIgogI2luY2x1ZGUgIlN0eWxlRm9udFNpemVGdW5j
dGlvbnMuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVTY29w
ZS5oIgpAQCAtMzAyLDggKzMwMyw5IEBAIGNvbnN0IFJlbmRlclN0eWxlKiBUcmVlUmVzb2x2ZXI6
OnBhcmVudEJveFN0eWxlRm9yUHNldWRvKGNvbnN0IEVsZW1lbnRVcGRhdGUmIGVsCiBFbGVtZW50
VXBkYXRlIFRyZWVSZXNvbHZlcjo6Y3JlYXRlQW5pbWF0ZWRFbGVtZW50VXBkYXRlKHN0ZDo6dW5p
cXVlX3B0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUsIEVsZW1lbnQmIGVsZW1lbnQsIENoYW5nZSBw
YXJlbnRDaGFuZ2UpCiB7CiAgICAgYXV0byogb2xkU3R5bGUgPSBlbGVtZW50LnJlbmRlck9yRGlz
cGxheUNvbnRlbnRzU3R5bGUoKTsKLQotICAgIGJvb2wgc2hvdWxkUmVjb21wb3NpdGVMYXllciA9
IGZhbHNlOworICAgIAorICAgIE9wdGlvblNldDxBbmltYXRpb25JbXBhY3Q+IGFuaW1hdGlvbklt
cGFjdDsKKyAgICBib29sIGFuaW1hdGlvbk1heUhhdmVDaGFuZ2VkU3R5bGUgPSBmYWxzZTsKIAog
ICAgIC8vIE5ldyBjb2RlIHBhdGggZm9yIENTUyBBbmltYXRpb25zIGFuZCBDU1MgVHJhbnNpdGlv
bnMuCiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2Vi
QW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5hYmxlZCgpKSB7CkBAIC0zMTEsMTEgKzMxMywxNSBA
QCBFbGVtZW50VXBkYXRlIFRyZWVSZXNvbHZlcjo6Y3JlYXRlQW5pbWF0ZWRFbGVtZW50VXBkYXRl
KHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdAogICAgICAgICAvLyBvbiB0aGUgZG9jdW1lbnQgdGlt
ZWxpbmUuIE5vdGUgdGhhdCB3ZSBnZXQgdGltZWxpbmUoKSBvbiB0aGUgRG9jdW1lbnQgaGVyZSBi
ZWNhdXNlIHdlIG5lZWQgYSB0aW1lbGluZSBjcmVhdGVkCiAgICAgICAgIC8vIGluIGNhc2Ugbm8g
V2ViIEFuaW1hdGlvbnMgaGF2ZSBiZWVuIGNyZWF0ZWQgdGhyb3VnaCB0aGUgSlMgQVBJLgogICAg
ICAgICBpZiAoZWxlbWVudC5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERv
Y3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUgJiYgIWVsZW1lbnQuZG9jdW1lbnQoKS5yZW5k
ZXJWaWV3KCktPnByaW50aW5nKCkpIHsKLSAgICAgICAgICAgIGlmIChvbGRTdHlsZSAmJiAob2xk
U3R5bGUtPmhhc1RyYW5zaXRpb25zKCkgfHwgbmV3U3R5bGUtPmhhc1RyYW5zaXRpb25zKCkpKQor
ICAgICAgICAgICAgaWYgKG9sZFN0eWxlICYmIChvbGRTdHlsZS0+aGFzVHJhbnNpdGlvbnMoKSB8
fCBuZXdTdHlsZS0+aGFzVHJhbnNpdGlvbnMoKSkpIHsKICAgICAgICAgICAgICAgICBtX2RvY3Vt
ZW50LnRpbWVsaW5lKCkudXBkYXRlQ1NTVHJhbnNpdGlvbnNGb3JFbGVtZW50KGVsZW1lbnQsICpv
bGRTdHlsZSwgKm5ld1N0eWxlKTsKKyAgICAgICAgICAgICAgICBhbmltYXRpb25NYXlIYXZlQ2hh
bmdlZFN0eWxlID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKChvbGRT
dHlsZSAmJiBvbGRTdHlsZS0+aGFzQW5pbWF0aW9ucygpKSB8fCBuZXdTdHlsZS0+aGFzQW5pbWF0
aW9ucygpKQorICAgICAgICAgICAgaWYgKChvbGRTdHlsZSAmJiBvbGRTdHlsZS0+aGFzQW5pbWF0
aW9ucygpKSB8fCBuZXdTdHlsZS0+aGFzQW5pbWF0aW9ucygpKSB7CiAgICAgICAgICAgICAgICAg
bV9kb2N1bWVudC50aW1lbGluZSgpLnVwZGF0ZUNTU0FuaW1hdGlvbnNGb3JFbGVtZW50KGVsZW1l
bnQsIG9sZFN0eWxlLCAqbmV3U3R5bGUpOworICAgICAgICAgICAgICAgIGFuaW1hdGlvbk1heUhh
dmVDaGFuZ2VkU3R5bGUgPSB0cnVlOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQog
CkBAIC0zMjMsNyArMzI5LDcgQEAgRWxlbWVudFVwZGF0ZSBUcmVlUmVzb2x2ZXI6OmNyZWF0ZUFu
aW1hdGVkRWxlbWVudFVwZGF0ZShzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3QKICAgICAvLyBhcyBh
bmltYXRpb25zIGNyZWF0ZWQgdmlhIHRoZSBKUyBBUEkuCiAgICAgaWYgKGVsZW1lbnQuaGFzS2V5
ZnJhbWVFZmZlY3RzKCkpIHsKICAgICAgICAgYXV0byBhbmltYXRlZFN0eWxlID0gUmVuZGVyU3R5
bGU6OmNsb25lUHRyKCpuZXdTdHlsZSk7Ci0gICAgICAgIHNob3VsZFJlY29tcG9zaXRlTGF5ZXIg
PSBlbGVtZW50LmFwcGx5S2V5ZnJhbWVFZmZlY3RzKCphbmltYXRlZFN0eWxlKTsKKyAgICAgICAg
YW5pbWF0aW9uSW1wYWN0ID0gZWxlbWVudC5hcHBseUtleWZyYW1lRWZmZWN0cygqYW5pbWF0ZWRT
dHlsZSk7CiAgICAgICAgIG5ld1N0eWxlID0gV1RGTW92ZShhbmltYXRlZFN0eWxlKTsKICAgICB9
CiAKQEAgLTMzMiwyMCArMzM4LDI0IEBAIEVsZW1lbnRVcGRhdGUgVHJlZVJlc29sdmVyOjpjcmVh
dGVBbmltYXRlZEVsZW1lbnRVcGRhdGUoc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0CiAgICAgICAg
IGF1dG8mIGFuaW1hdGlvbkNvbnRyb2xsZXIgPSBtX2RvY3VtZW50LmZyYW1lKCktPmFuaW1hdGlv
bigpOwogCiAgICAgICAgIGF1dG8gYW5pbWF0aW9uVXBkYXRlID0gYW5pbWF0aW9uQ29udHJvbGxl
ci51cGRhdGVBbmltYXRpb25zKGVsZW1lbnQsICpuZXdTdHlsZSwgb2xkU3R5bGUpOwotICAgICAg
ICBzaG91bGRSZWNvbXBvc2l0ZUxheWVyID0gYW5pbWF0aW9uVXBkYXRlLmFuaW1hdGlvbkNoYW5n
ZVJlcXVpcmVzUmVjb21wb3NpdGU7CisgICAgICAgIGFuaW1hdGlvbkltcGFjdC5hZGQoYW5pbWF0
aW9uVXBkYXRlLmltcGFjdCk7CiAKLSAgICAgICAgaWYgKGFuaW1hdGlvblVwZGF0ZS5zdHlsZSkK
KyAgICAgICAgaWYgKGFuaW1hdGlvblVwZGF0ZS5zdHlsZSkgewogICAgICAgICAgICAgbmV3U3R5
bGUgPSBXVEZNb3ZlKGFuaW1hdGlvblVwZGF0ZS5zdHlsZSk7CisgICAgICAgICAgICBhbmltYXRp
b25NYXlIYXZlQ2hhbmdlZFN0eWxlID0gdHJ1ZTsKKyAgICAgICAgfQogICAgIH0KIAorICAgIGlm
IChhbmltYXRpb25NYXlIYXZlQ2hhbmdlZFN0eWxlKQorICAgICAgICBBZGp1c3Rlcjo6YWRqdXN0
QW5pbWF0ZWRTdHlsZSgqbmV3U3R5bGUsIHBhcmVudEJveFN0eWxlKCksIGFuaW1hdGlvbkltcGFj
dCk7CisKICAgICBhdXRvIGNoYW5nZSA9IG9sZFN0eWxlID8gZGV0ZXJtaW5lQ2hhbmdlKCpvbGRT
dHlsZSwgKm5ld1N0eWxlKSA6IERldGFjaDsKIAogICAgIGF1dG8gdmFsaWRpdHkgPSBlbGVtZW50
LnN0eWxlVmFsaWRpdHkoKTsKICAgICBpZiAodmFsaWRpdHkgPj0gVmFsaWRpdHk6OlN1YnRyZWVB
bmRSZW5kZXJlcnNJbnZhbGlkIHx8IHBhcmVudENoYW5nZSA9PSBEZXRhY2gpCiAgICAgICAgIGNo
YW5nZSA9IERldGFjaDsKIAotICAgIHNob3VsZFJlY29tcG9zaXRlTGF5ZXIgfD0gZWxlbWVudC5z
dHlsZVJlc29sdXRpb25TaG91bGRSZWNvbXBvc2l0ZUxheWVyKCk7Ci0KKyAgICBib29sIHNob3Vs
ZFJlY29tcG9zaXRlTGF5ZXIgPSBhbmltYXRpb25JbXBhY3QuY29udGFpbnMoQW5pbWF0aW9uSW1w
YWN0OjpSZXF1aXJlc1JlY29tcG9zaXRlKSB8fCBlbGVtZW50LnN0eWxlUmVzb2x1dGlvblNob3Vs
ZFJlY29tcG9zaXRlTGF5ZXIoKTsKICAgICByZXR1cm4geyBXVEZNb3ZlKG5ld1N0eWxlKSwgY2hh
bmdlLCBzaG91bGRSZWNvbXBvc2l0ZUxheWVyIH07CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMWJjMTdlODE1ZThm
YWQyMGU3MWIwMGRmZDI2MzA1ODQ4OTUxN2E4Li4zZmVhM2Q5MjZhNjI0OGRiNTUxYTA2NmZiY2Ey
ZGZmMTNkYTk2Yzc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDEtMDUgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI1
MjcyNCk6IFVuYWJsZSB0byB0YXAgb24gcGxheSBidXR0b24gb24gZ29vZ2xlIHZpZGVvICdTZWUg
dGhlIHRvcCBzZWFyY2ggdHJlbmRzIG9mIDIwMTknCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2OTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4
MDYyOTg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IFphbGFuIEJ1anRhcy4KKworICAgICAgICAq
IGFuaW1hdGlvbnMvei1pbmRleC1pbi1rZXlmcmFtZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBhbmltYXRpb25zL3otaW5kZXgtaW4ta2V5ZnJhbWUuaHRtbDogQWRkZWQuCisKKzIw
MjAtMDEtMDIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAg
ICAgUkVHUkVTU0lPTiAocjI1MjcyNCk6IFVuYWJsZSB0byB0YXAgb24gcGxheSBidXR0b24gb24g
Z29vZ2xlIHZpZGVvICdTZWUgdGhlIHRvcCBzZWFyY2ggdHJlbmRzIG9mIDIwMTknCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2OTQKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzU4MDYyOTg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogYW5pbWF0aW9ucy96LWluZGV4LWluLWtleWZyYW1lLWV4cGVj
dGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMvei1pbmRleC1pbi1rZXlmcmFt
ZS5odG1sOiBBZGRlZC4KKwogMjAyMC0wMS0wNSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xp
bmdAc29ueS5jb20+CiAKICAgICAgICAgSmF2YVNjcmlwdDogSW52YWxpZCBkYXRlIHBhcnNlIGZv
ciBJU08gODYwMSBzdHJpbmdzIHdoZW4gbm8gdGltZXpvbmUgZ2l2ZW4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2FuaW1hdGlvbnMvei1pbmRleC1pbi1rZXlmcmFtZS1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvYW5pbWF0aW9ucy96LWluZGV4LWluLWtleWZyYW1lLWV4cGVjdGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTMzMGE0NTJmYWJmODAyMjZkMDNhZGY3MmIyNzE5YmQ4MmIzZDNhMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvei1pbmRleC1pbi1rZXlmcmFt
ZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIC5jb250YWluZXIgeworICAgICAgICAgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICAg
ICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwor
ICAgICAgICB9CisgICAgICAgIAorICAgICAgICAuYm94IHsKKyAgICAgICAgICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgIGhlaWdo
dDogMjAwcHg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5ib3R0b20geworICAgICAg
ICAgICAgbGVmdDogMHB4OworICAgICAgICAgICAgdG9wOiAwcHg7CisgICAgICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBvcmFuZ2U7CisgICAgICAgIH0KKworICAgICAgICAudG9wIHsKKyAgICAg
ICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICAgICAgdG9wOiAxMDBweDsKKyAgICAgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICAgICAgei1pbmRleDogLTE7CisgICAg
ICAgICAgICBvcGFjaXR5OiAwLjg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHk+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
Ym90dG9tIGJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InRvcCBib3giPjwvZGl2Pgor
ICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5p
bWF0aW9ucy96LWluZGV4LWluLWtleWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25z
L3otaW5kZXgtaW4ta2V5ZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzdlNzdjYWE0NGZmNGU5NDY4
ZjYxZjkyNjljMmMxZGZiMzJkOTgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5p
bWF0aW9ucy96LWluZGV4LWluLWtleWZyYW1lLmh0bWwKQEAgLTAsMCArMSw1OSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgLmNvbnRhaW5l
ciB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB3aWR0aDog
MzAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDMwMHB4OworICAgICAgICAgICAgYm9yZGVyOiAx
cHggc29saWQgYmxhY2s7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5ib3ggeworICAg
ICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgd2lkdGg6IDIwMHB4Owor
ICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAg
LmJvdHRvbSB7CisgICAgICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAgICAgICB0b3A6IDBweDsK
KyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsKKyAgICAgICAgfQorCisgICAg
ICAgIC50b3AgeworICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgICAgICB0b3A6IDEw
MHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgICAgICBh
bmltYXRpb246IGZhZGUtb3V0IDMwbXMgZm9yd2FyZHM7CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIEBrZXlmcmFtZXMgZmFkZS1vdXQgeworICAgICAgICAgICAgMCUgeworICAgICAgICAg
ICAgICAgIG9wYWNpdHk6IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAxMDAlIHsKKyAg
ICAgICAgICAgICAgICB6LWluZGV4OiAtMTsKKyAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjg7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQ+Cisg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywg
KCkgPT4geworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RlcicpLmFk
ZEV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsICgpID0+IHsKKyAgICAgICAgICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworICAgICAgICAgICAgfSwgZmFsc2UpOworICAgICAgICB9LCBmYWxzZSk7Cisg
ICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgICA8ZGl2IGNsYXNzPSJib3R0b20gYm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBp
ZD0idGVzdGVyIiBjbGFzcz0idG9wIGJveCI+PC9kaXY+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386808</attachid>
            <date>2020-01-05 20:42:43 -0800</date>
            <delta_ts>2020-01-06 08:06:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205694-20200105204243.patch</filename>
            <type>text/plain</type>
            <size>20581</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDEzNmYwYTUyZTJjMDgw
OWZjZjFmMTNmZTM4NTJkMDU1OWY5OGIzMC4uNjFkMjBiNWQ0MjM2N2NhMjViNTM0MGE2NjJhYTI3
ZDNmZDBlYjViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTAxLTA1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04g
KHIyNTI3MjQpOiBVbmFibGUgdG8gdGFwIG9uIHBsYXkgYnV0dG9uIG9uIGdvb2dsZSB2aWRlbyAn
U2VlIHRoZSB0b3Agc2VhcmNoIHRyZW5kcyBvZiAyMDE5JworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Njk0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81ODA2Mjk4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBaYWxhbiBCdWp0YXMuCisKKyAgICAg
ICAgQWZ0ZXIgcjI1MjcyNCwgd2hpY2ggc2VwYXJhdGVkICd1c2VkJyBmcm9tICdzcGVjaWZpZWQn
IHotaW5kZXggaW4gc3R5bGUsIHdlIG5lZWQgdG8gY29weQorICAgICAgICB0aGUgc3BlY2lmaWVk
IHRvIHRoZSB1c2VkIHotaW5kZXggaW4gYW5pbWF0ZWQgc3R5bGVzLCB3aGlsZSBwcmVzZXJ2aW5n
IHRoZSBleGlzdGluZyAnZm9yY2VTdGFja2luZ0NvbnRleHQnCisgICAgICAgIGJlaGF2aW9yIHdo
aWNoIHNldCB0aGUgdXNlZCB6LWluZGV4IHRvIDAuCisKKyAgICAgICAgRG8gc28gYnkgY3JlYXRp
bmcgQWRqdXN0ZXI6OmFkanVzdEFuaW1hdGVkU3R5bGUoKSwgd2hpY2ggaXMgY2FsbGVkIGZyb20g
VHJlZVJlc29sdmVyOjpjcmVhdGVBbmltYXRlZEVsZW1lbnRVcGRhdGUoKQorICAgICAgICBpZiBh
bnkgYW5pbWF0aW9ucyBjb3VsZCBoYXZlIGFmZmVjdGVkIHRoZSBzdHlsZS4gV2UgbmVlZCB0byBw
YXNzIGJhY2sgaW5mb3JtYXRpb24gYWJvdXQgd2hldGhlciB0aGUgYW5pbWF0aW9uIHNob3VsZAor
ICAgICAgICBmb3JjZSBzdGFja2luZyBjb250ZXh0LgorCisgICAgICAgIFRlc3Q6IGFuaW1hdGlv
bnMvei1pbmRleC1pbi1rZXlmcmFtZS5odG1sCisKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJh
bWVFZmZlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OmFwcGx5KToK
KyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OktleWZyYW1lRWZmZWN0Ojp0cmlnZ2Vyc1N0YWNraW5nQ29udGV4dCBjb25zdCk6CisgICAgICAg
ICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6YXBwbHlLZXlm
cmFtZUVmZmVjdHMpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogcGFnZS9h
bmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAoKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjphbmltYXRlKToKKyAgICAgICAgKiBzdHls
ZS9TdHlsZUFkanVzdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpBZGp1c3Rlcjo6
YWRqdXN0QW5pbWF0ZWRTdHlsZSk6CisgICAgICAgICogc3R5bGUvU3R5bGVBZGp1c3Rlci5oOgor
ICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OmNyZWF0ZUFuaW1hdGVkRWxlbWVudFVwZGF0ZSk6CisKIDIw
MjAtMDEtMDUgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZD
XVtJbnRlZ3JhdGlvbl0gRml4IGNvbXBvc2l0aW5nL21hc2tzL2NvbXBvc2l0aW5nLWNsaXAtcGF0
aC1jaGFuZ2Utbm8tcmVwYWludC5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZy
YW1lRWZmZWN0LmNwcAppbmRleCBmOTk0MzA3ZDY2MGE5NmEwOWZiMDc0MmNmZWZjM2MyODFlNDEy
YjAxLi45NTgzYWNhZThhZWJlNzg0ZWFkMjNlNmY5NzE5OWU3ZTNlM2YwNmUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKQEAgLTUwLDYgKzUwLDcgQEAK
ICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNp
bmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiU3R5bGVBZGp1c3Rl
ci5oIgogI2luY2x1ZGUgIlN0eWxlUGVuZGluZ1Jlc291cmNlcy5oIgogI2luY2x1ZGUgIlN0eWxl
UmVzb2x2ZXIuaCIKICNpbmNsdWRlICJUaW1pbmdGdW5jdGlvbi5oIgpAQCAtMTA5MCwxMiArMTA5
MSw2IEBAIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmFwcGx5KFJlbmRlclN0eWxlJiB0YXJnZXRTdHls
ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc2V0QW5pbWF0ZWRQcm9wZXJ0aWVzSW5TdHlsZSh0
YXJnZXRTdHlsZSwgY29tcHV0ZWRUaW1pbmcucHJvZ3Jlc3MudmFsdWUoKSk7Ci0KLSAgICAvLyBo
dHRwczovL3czYy5naXRodWIuaW8vd2ViLWFuaW1hdGlvbnMvI3NpZGUtZWZmZWN0cy1zZWN0aW9u
Ci0gICAgLy8gRm9yIGV2ZXJ5IHByb3BlcnR5IHRhcmdldGVkIGJ5IGF0IGxlYXN0IG9uZSBhbmlt
YXRpb24gZWZmZWN0IHRoYXQgaXMgY3VycmVudCBvciBpbiBlZmZlY3QsIHRoZSB1c2VyIGFnZW50
Ci0gICAgLy8gbXVzdCBhY3QgYXMgaWYgdGhlIHdpbGwtY2hhbmdlIHByb3BlcnR5IChbY3NzLXdp
bGwtY2hhbmdlLTFdKSBvbiB0aGUgdGFyZ2V0IGVsZW1lbnQgaW5jbHVkZXMgdGhlIHByb3BlcnR5
LgotICAgIGlmIChtX3RyaWdnZXJzU3RhY2tpbmdDb250ZXh0ICYmIHRhcmdldFN0eWxlLmhhc0F1
dG9Vc2VkWkluZGV4KCkpCi0gICAgICAgIHRhcmdldFN0eWxlLnNldFVzZWRaSW5kZXgoMCk7CiB9
CiAKIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmludmFsaWRhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vS2V5ZnJhbWVFZmZlY3QuaAppbmRleCAwNDkzMzdkZGEwMDU4OGIyNmVlN2QyYjk5ZGUw
Njc4NDQ2NjFlZWM1Li44NTYwOTgxMjYwM2JmNzMwMDU4NTUzZmZjYTMwMDExN2JmN2JmZDlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaApAQCAtMTI2LDYgKzEy
Niw3IEBAIHB1YmxpYzoKICAgICBSZW5kZXJFbGVtZW50KiByZW5kZXJlcigpIGNvbnN0IG92ZXJy
aWRlOwogICAgIGNvbnN0IFJlbmRlclN0eWxlJiBjdXJyZW50U3R5bGUoKSBjb25zdCBvdmVycmlk
ZTsKICAgICBib29sIGlzQWNjZWxlcmF0ZWQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFJ1bkFj
Y2VsZXJhdGVkOyB9CisgICAgYm9vbCB0cmlnZ2Vyc1N0YWNraW5nQ29udGV4dCgpIGNvbnN0IHsg
cmV0dXJuIG1fdHJpZ2dlcnNTdGFja2luZ0NvbnRleHQ7IH0KICAgICBib29sIGZpbHRlckZ1bmN0
aW9uTGlzdHNNYXRjaCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fZmlsdGVyRnVuY3Rpb25M
aXN0c01hdGNoOyB9CiAgICAgYm9vbCB0cmFuc2Zvcm1GdW5jdGlvbkxpc3RzTWF0Y2goKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX3RyYW5zZm9ybUZ1bmN0aW9uTGlzdHNNYXRjaDsgfQogI2lm
IEVOQUJMRShGSUxURVJTX0xFVkVMXzIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNTM3ZWQy
YjE3NmE0MjY5N2VhZDNlNjk4N2UzYzMwZTk4MzdlNzA5Mi4uNzlhYTJiNWRmYWRjZTI0ZmEzZDUw
NWNhZmUzYWY4MDBiYzYyZDVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMzcyNCwxOSAr
MzcyNCwyMiBAQCBib29sIEVsZW1lbnQ6Omhhc0tleWZyYW1lRWZmZWN0cygpIGNvbnN0CiAgICAg
cmV0dXJuIGtleWZyYW1lRWZmZWN0U3RhY2sgJiYga2V5ZnJhbWVFZmZlY3RTdGFjay0+aGFzRWZm
ZWN0cygpOwogfQogCi1ib29sIEVsZW1lbnQ6OmFwcGx5S2V5ZnJhbWVFZmZlY3RzKFJlbmRlclN0
eWxlJiB0YXJnZXRTdHlsZSkKK09wdGlvblNldDxBbmltYXRpb25JbXBhY3Q+IEVsZW1lbnQ6OmFw
cGx5S2V5ZnJhbWVFZmZlY3RzKFJlbmRlclN0eWxlJiB0YXJnZXRTdHlsZSkKIHsKLSAgICBib29s
IGhhc05vbkFjY2VsZXJhdGVkQW5pbWF0aW9uUHJvcGVydHkgPSBmYWxzZTsKKyAgICBPcHRpb25T
ZXQ8QW5pbWF0aW9uSW1wYWN0PiBpbXBhY3Q7CiAKICAgICBmb3IgKGNvbnN0IGF1dG8mIGVmZmVj
dCA6IGVuc3VyZUtleWZyYW1lRWZmZWN0U3RhY2soKS5zb3J0ZWRFZmZlY3RzKCkpIHsKICAgICAg
ICAgQVNTRVJUKGVmZmVjdC0+YW5pbWF0aW9uKCkpOwogICAgICAgICBlZmZlY3QtPmFuaW1hdGlv
bigpLT5yZXNvbHZlKHRhcmdldFN0eWxlKTsKIAotICAgICAgICBpZiAoIWhhc05vbkFjY2VsZXJh
dGVkQW5pbWF0aW9uUHJvcGVydHkgJiYgIWVmZmVjdC0+aXNBY2NlbGVyYXRlZCgpKQotICAgICAg
ICAgICAgaGFzTm9uQWNjZWxlcmF0ZWRBbmltYXRpb25Qcm9wZXJ0eSA9IHRydWU7CisgICAgICAg
IGlmIChlZmZlY3QtPmlzQWNjZWxlcmF0ZWQoKSkKKyAgICAgICAgICAgIGltcGFjdC5hZGQoQW5p
bWF0aW9uSW1wYWN0OjpSZXF1aXJlc1JlY29tcG9zaXRlKTsKKworICAgICAgICBpZiAoZWZmZWN0
LT50cmlnZ2Vyc1N0YWNraW5nQ29udGV4dCgpKQorICAgICAgICAgICAgaW1wYWN0LmFkZChBbmlt
YXRpb25JbXBhY3Q6OkZvcmNlc1N0YWNraW5nQ29udGV4dCk7CiAgICAgfQogCi0gICAgcmV0dXJu
ICFoYXNOb25BY2NlbGVyYXRlZEFuaW1hdGlvblByb3BlcnR5OworICAgIHJldHVybiBpbXBhY3Q7
CiB9CiAKICNpZiBFTkFCTEUoUkVTSVpFX09CU0VSVkVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXgg
ODQ0YWUyMmFhYjYxZDUzYWU0OWFiZmY4NDlhY2M4YTJhZTljNWFjZi4uYTg1ZDA0OTQxODE5M2Zm
YTIyOWQ4NWYyNzhkYTg0MGExNjc0YmZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC03Myw2ICs3
Myw4IEBAIG5hbWVzcGFjZSBTdHlsZSB7CiBzdHJ1Y3QgRWxlbWVudFN0eWxlOwogfQogCitlbnVt
IGNsYXNzIEFuaW1hdGlvbkltcGFjdDsKKwogY2xhc3MgRWxlbWVudCA6IHB1YmxpYyBDb250YWlu
ZXJOb2RlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEVsZW1lbnQpOwogcHVibGljOgpA
QCAtNDgwLDcgKzQ4Miw3IEBAIHB1YmxpYzoKIAogICAgIEtleWZyYW1lRWZmZWN0U3RhY2smIGVu
c3VyZUtleWZyYW1lRWZmZWN0U3RhY2soKTsKICAgICBib29sIGhhc0tleWZyYW1lRWZmZWN0cygp
IGNvbnN0OwotICAgIGJvb2wgYXBwbHlLZXlmcmFtZUVmZmVjdHMoUmVuZGVyU3R5bGUmKTsKKyAg
ICBPcHRpb25TZXQ8QW5pbWF0aW9uSW1wYWN0PiBhcHBseUtleWZyYW1lRWZmZWN0cyhSZW5kZXJT
dHlsZSYpOwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgY29udGFpbnNGdWxsU2NyZWVuRWxlbWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCmluZGV4IGZlODcwMjBjNGRlYmEyNmEx
ODVjYmRhMDA5YzcxNTdhZjgxNzJjN2UuLjdiYzQyMDRlZDc5NmFlNTIxYWE4YjFjOGU0NzI4OTI0
MDI0NTRhODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1h
dGlvbkJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25C
YXNlLmgKQEAgLTQ5LDYgKzQ5LDExIEBAIGVudW0gY2xhc3MgQW5pbWF0ZUNoYW5nZSB7CiAgICAg
UnVubmluZ1N0YXRlQ2hhbmdlICAgICAgPSAxIDw8IDIsIC8vIEFuaW1hdGlvbiAicnVubmluZyBv
ciBwYXVzZWQiIGNoYW5nZWQuCiB9OwogCitlbnVtIGNsYXNzIEFuaW1hdGlvbkltcGFjdCB7Cisg
ICAgUmVxdWlyZXNSZWNvbXBvc2l0ZSAgICAgPSAxIDw8IDAsCisgICAgRm9yY2VzU3RhY2tpbmdD
b250ZXh0ICAgPSAxIDw8IDEKK307CisKIGNsYXNzIEFuaW1hdGlvbkJhc2UgOiBwdWJsaWMgUmVm
Q291bnRlZDxBbmltYXRpb25CYXNlPgogICAgICwgcHVibGljIENTU1Byb3BlcnR5QmxlbmRpbmdD
bGllbnQgewogICAgIGZyaWVuZCBjbGFzcyBDb21wb3NpdGVBbmltYXRpb247CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NBbmltYXRpb25Db250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NBbmltYXRpb25Db250cm9sbGVyLmgK
aW5kZXggZWM3YjljN2QyN2Y5YzlkMmU4NWEzMGZmNmZhYmFiMWQ5YmEwYjIyZi4uZWNkNjA1ODQ1
Mzk4YWE4ZTc1YTlhNTI2NWUwMGVmNjRkNjIyMjgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXIuaApAQCAtMzAsNiAr
MzAsNyBAQAogCiAjaW5jbHVkZSAiQW5pbWF0aW9uQmFzZS5oIgogI2luY2x1ZGUgIkNTU1Byb3Bl
cnR5TmFtZXMuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUu
aCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCkBAIC0zNywxNCArMzgsMTQgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBDU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTsKIGNs
YXNzIERvY3VtZW50OwotY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1lOwogY2xhc3MgTGF5b3V0
UmVjdDsKIGNsYXNzIFJlbmRlckVsZW1lbnQ7CiAKIHN0cnVjdCBBbmltYXRpb25VcGRhdGUgewog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gc3R5bGU7Ci0gICAgYm9vbCBhbmltYXRp
b25DaGFuZ2VSZXF1aXJlc1JlY29tcG9zaXRlIHsgZmFsc2UgfTsKKyAgICBPcHRpb25TZXQ8QW5p
bWF0aW9uSW1wYWN0PiBpbXBhY3Q7CisKIH07CiAKIGNsYXNzIENTU0FuaW1hdGlvbkNvbnRyb2xs
ZXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRl
QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFu
aW1hdGlvbi5jcHAKaW5kZXggMDQ0OTQ3MDI0MGY5YTYzMmFhYTcwNjEzOWIxNWM4ZDMyN2Q4YjUz
MS4uZWJkNDkyNzA3ZjIyOGVkMGVlYTBlMjRiMDAwODE3NjNjN2ZiZTg0NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCkBA
IC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlbmRlckVs
ZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlN0eWxlQWRqdXN0
ZXIuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAKQEAgLTI4Niw4ICsyODcsNyBAQCBBbmltYXRpb25VcGRhdGUgQ29tcG9z
aXRlQW5pbWF0aW9uOjphbmltYXRlKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFJlbmRlclN0eWxl
KgogICAgIHVwZGF0ZUtleWZyYW1lQW5pbWF0aW9ucyhlbGVtZW50LCBjdXJyZW50U3R5bGUsIHRh
cmdldFN0eWxlKTsKICAgICBtX2tleWZyYW1lQW5pbWF0aW9ucy5jaGVja0NvbnNpc3RlbmN5KCk7
CiAKLSAgICBib29sIGFuaW1hdGlvbkNoYW5nZVJlcXVpcmVzUmVjb21wb3NpdGUgPSBmYWxzZTsK
LSAgICBib29sIGZvcmNlU3RhY2tpbmdDb250ZXh0ID0gZmFsc2U7CisgICAgT3B0aW9uU2V0PEFu
aW1hdGlvbkltcGFjdD4gaW1hcGN0OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxl
PiBhbmltYXRlZFN0eWxlOwogCkBAIC0zMDAsNyArMzAwLDggQEAgQW5pbWF0aW9uVXBkYXRlIENv
bXBvc2l0ZUFuaW1hdGlvbjo6YW5pbWF0ZShFbGVtZW50JiBlbGVtZW50LCBjb25zdCBSZW5kZXJT
dHlsZSoKICAgICAgICAgICAgIGlmIChjaGFuZ2VzLmNvbnRhaW5zKEFuaW1hdGVDaGFuZ2U6OlN0
eWxlQmxlbmRlZCkpCiAgICAgICAgICAgICAgICAgY2hlY2tGb3JTdGFja2luZ0NvbnRleHQgfD0g
V2lsbENoYW5nZURhdGE6OnByb3BlcnR5Q3JlYXRlc1N0YWNraW5nQ29udGV4dCh0cmFuc2l0aW9u
LT5hbmltYXRpbmdQcm9wZXJ0eSgpKTsKIAotICAgICAgICAgICAgYW5pbWF0aW9uQ2hhbmdlUmVx
dWlyZXNSZWNvbXBvc2l0ZSA9IGNoYW5nZXMuY29udGFpbnMoQW5pbWF0ZUNoYW5nZTo6UnVubmlu
Z1N0YXRlQ2hhbmdlKSAmJiB0cmFuc2l0aW9uLT5hZmZlY3RzQWNjZWxlcmF0ZWRQcm9wZXJ0eSgp
OworICAgICAgICAgICAgaWYgKGNoYW5nZXMuY29udGFpbnMoQW5pbWF0ZUNoYW5nZTo6UnVubmlu
Z1N0YXRlQ2hhbmdlKSAmJiB0cmFuc2l0aW9uLT5hZmZlY3RzQWNjZWxlcmF0ZWRQcm9wZXJ0eSgp
KQorICAgICAgICAgICAgICAgIGltYXBjdC5hZGQoQW5pbWF0aW9uSW1wYWN0OjpSZXF1aXJlc1Jl
Y29tcG9zaXRlKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChhbmltYXRlZFN0eWxlICYmIGNo
ZWNrRm9yU3RhY2tpbmdDb250ZXh0KSB7CkBAIC0zMTYsNyArMzE3LDcgQEAgQW5pbWF0aW9uVXBk
YXRlIENvbXBvc2l0ZUFuaW1hdGlvbjo6YW5pbWF0ZShFbGVtZW50JiBlbGVtZW50LCBjb25zdCBS
ZW5kZXJTdHlsZSoKICAgICAgICAgICAgICAgICB8fCBhbmltYXRlZFN0eWxlLT5oYXNCYWNrZHJv
cEZpbHRlcigpCiAjZW5kaWYKICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBmb3JjZVN0
YWNraW5nQ29udGV4dCA9IHRydWU7CisgICAgICAgICAgICBpbWFwY3QuYWRkKEFuaW1hdGlvbklt
cGFjdDo6Rm9yY2VzU3RhY2tpbmdDb250ZXh0KTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMzI2
LDIyICszMjcsMTcgQEAgQW5pbWF0aW9uVXBkYXRlIENvbXBvc2l0ZUFuaW1hdGlvbjo6YW5pbWF0
ZShFbGVtZW50JiBlbGVtZW50LCBjb25zdCBSZW5kZXJTdHlsZSoKICAgICAgICAgUmVmUHRyPEtl
eWZyYW1lQW5pbWF0aW9uPiBrZXlmcmFtZUFuaW0gPSBtX2tleWZyYW1lQW5pbWF0aW9ucy5nZXQo
bmFtZSk7CiAgICAgICAgIGlmIChrZXlmcmFtZUFuaW0pIHsKICAgICAgICAgICAgIGF1dG8gY2hh
bmdlcyA9IGtleWZyYW1lQW5pbS0+YW5pbWF0ZSgqdGhpcywgdGFyZ2V0U3R5bGUsIGFuaW1hdGVk
U3R5bGUpOwotICAgICAgICAgICAgYW5pbWF0aW9uQ2hhbmdlUmVxdWlyZXNSZWNvbXBvc2l0ZSA9
IGNoYW5nZXMuY29udGFpbnMoQW5pbWF0ZUNoYW5nZTo6UnVubmluZ1N0YXRlQ2hhbmdlKSAmJiBr
ZXlmcmFtZUFuaW0tPmFmZmVjdHNBY2NlbGVyYXRlZFByb3BlcnR5KCk7Ci0gICAgICAgICAgICBm
b3JjZVN0YWNraW5nQ29udGV4dCB8PSBjaGFuZ2VzLmNvbnRhaW5zKEFuaW1hdGVDaGFuZ2U6OlN0
eWxlQmxlbmRlZCkgJiYga2V5ZnJhbWVBbmltLT50cmlnZ2Vyc1N0YWNraW5nQ29udGV4dCgpOwor
ICAgICAgICAgICAgaWYgKGNoYW5nZXMuY29udGFpbnMoQW5pbWF0ZUNoYW5nZTo6UnVubmluZ1N0
YXRlQ2hhbmdlKSAmJiBrZXlmcmFtZUFuaW0tPmFmZmVjdHNBY2NlbGVyYXRlZFByb3BlcnR5KCkp
CisgICAgICAgICAgICAgICAgaW1hcGN0LmFkZChBbmltYXRpb25JbXBhY3Q6OlJlcXVpcmVzUmVj
b21wb3NpdGUpOworCisgICAgICAgICAgICBpZiAoY2hhbmdlcy5jb250YWlucyhBbmltYXRlQ2hh
bmdlOjpTdHlsZUJsZW5kZWQpICYmIGtleWZyYW1lQW5pbS0+dHJpZ2dlcnNTdGFja2luZ0NvbnRl
eHQoKSkKKyAgICAgICAgICAgICAgICBpbWFwY3QuYWRkKEFuaW1hdGlvbkltcGFjdDo6Rm9yY2Vz
U3RhY2tpbmdDb250ZXh0KTsKKwogICAgICAgICAgICAgbV9oYXNBbmltYXRpb25UaGF0RGVwZW5k
c09uTGF5b3V0IHw9IGtleWZyYW1lQW5pbS0+ZGVwZW5kc09uTGF5b3V0KCk7CiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWFuaW1hdGlvbnMt
MS8KLSAgICAvLyBXaGlsZSBhbiBhbmltYXRpb24gaXMgYXBwbGllZCBidXQgaGFzIG5vdCBmaW5p
c2hlZCwgb3IgaGFzIGZpbmlzaGVkIGJ1dCBoYXMgYW4gYW5pbWF0aW9uLWZpbGwtbW9kZSBvZiBm
b3J3YXJkcyBvciBib3RoLAotICAgIC8vIHRoZSB1c2VyIGFnZW50IG11c3QgYWN0IGFzIGlmIHRo
ZSB3aWxsLWNoYW5nZSBwcm9wZXJ0eSAoW2Nzcy13aWxsLWNoYW5nZS0xXSkgb24gdGhlIGVsZW1l
bnQgYWRkaXRpb25hbGx5Ci0gICAgLy8gaW5jbHVkZXMgYWxsIHRoZSBwcm9wZXJ0aWVzIGFuaW1h
dGVkIGJ5IHRoZSBhbmltYXRpb24uCi0gICAgaWYgKGZvcmNlU3RhY2tpbmdDb250ZXh0ICYmIGFu
aW1hdGVkU3R5bGUpIHsKLSAgICAgICAgaWYgKGFuaW1hdGVkU3R5bGUtPmhhc0F1dG9Vc2VkWklu
ZGV4KCkpCi0gICAgICAgICAgICBhbmltYXRlZFN0eWxlLT5zZXRVc2VkWkluZGV4KDApOwotICAg
IH0KLQotICAgIHJldHVybiB7IFdURk1vdmUoYW5pbWF0ZWRTdHlsZSksIGFuaW1hdGlvbkNoYW5n
ZVJlcXVpcmVzUmVjb21wb3NpdGUgfTsKKyAgICByZXR1cm4geyBXVEZNb3ZlKGFuaW1hdGVkU3R5
bGUpLCBpbWFwY3QgfTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBDb21wb3Np
dGVBbmltYXRpb246OmdldEFuaW1hdGVkU3R5bGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZUFkanVzdGVyLmNwcAppbmRleCA4ZGFjYTFlZTA4MTllZjVlMmI2ODMyY2MzZTM1MGExMWQ0
ZjliNmY5Li5lZWU0OGZlODEyMjk5MzEzYTBlNzFjYWZmODY4NDc1OGU0YmE1ODdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlN0eWxlQWRqdXN0ZXIuaCIKIAorI2luY2x1ZGUgIkFu
aW1hdGlvbkJhc2UuaCIKICNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJF
bGVtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBAIC00Miw2ICs0Myw3IEBACiAjaW5j
bHVkZSAiTWF0aE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJRdWly
a3MuaCIKKyNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgog
I2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oIgpAQCAtNTI0LDYgKzUyNiwyMiBAQCB2b2lkIEFkanVzdGVyOjphZGp1c3RTVkdFbGVtZW50
U3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBTVkdFbGVtZW50JiBzdmdFbAogICAgICAg
ICBzdHlsZS5zZXREaXNwbGF5KERpc3BsYXlUeXBlOjpCbG9jayk7CiB9CiAKK3ZvaWQgQWRqdXN0
ZXI6OmFkanVzdEFuaW1hdGVkU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJT
dHlsZSogcGFyZW50Qm94U3R5bGUsIE9wdGlvblNldDxBbmltYXRpb25JbXBhY3Q+IGltcGFjdCkK
K3sKKyAgICAvLyBTZXQgYW4gZXhwbGljaXQgdXNlZCB6LWluZGV4IGluIHR3byBjYXNlczoKKyAg
ICAvLyAxLiBXaGVuIHRoZSBlbGVtZW50IHJlc3BlY3RzIHotaW5kZXgsIGFuZCB0aGUgc3R5bGUg
aGFzIGFuIGV4cGxpY2l0IHotaW5kZXggc2V0IChmb3IgZXhhbXBsZSwgdGhlIGFuaW1hdGlvbgor
ICAgIC8vICAgIGl0c2VsZiBtYXkgYW5pbWF0ZSB6LWluZGV4KS4KKyAgICAvLyAyLiBXaGVuIHdl
IHdhbnQgdGhlIHN0YWNraW5nIGNvbnRleHQgc2lkZS1lZmZldHMgb2YgZXhwbGljaXQgei1pbmRl
eCwgdmlhIGZvcmNlU3RhY2tpbmdDb250ZXh0LgorICAgIC8vIEl0J3MgaW1wb3J0YW50IHRvIG5v
dCBjbG9iYmVyIGFuIGV4aXN0aW5nIHVzZWQgei1pbmRleCwgc2luY2UgYW4gZWFybGllciBhbmlt
YXRpb24gbWF5IGhhdmUgc2V0IGl0LCBidXQgd2UKKyAgICAvLyBtYXkgc3RpbGwgbmVlZCB0byB1
cGRhdGUgdGhlIHVzZWQgei1pbmRleCB2YWx1ZSBmcm9tIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisg
ICAgYm9vbCBlbGVtZW50UmVzcGVjdHNaSW5kZXggPSBzdHlsZS5wb3NpdGlvbigpICE9IFBvc2l0
aW9uVHlwZTo6U3RhdGljIHx8IChwYXJlbnRCb3hTdHlsZSAmJiBwYXJlbnRCb3hTdHlsZS0+aXNE
aXNwbGF5RmxleGlibGVPckdyaWRCb3goKSk7CisKKyAgICBpZiAoZWxlbWVudFJlc3BlY3RzWklu
ZGV4ICYmICFzdHlsZS5oYXNBdXRvU3BlY2lmaWVkWkluZGV4KCkpCisgICAgICAgIHN0eWxlLnNl
dFVzZWRaSW5kZXgoc3R5bGUuc3BlY2lmaWVkWkluZGV4KCkpOworICAgIGVsc2UgaWYgKGltcGFj
dC5jb250YWlucyhBbmltYXRpb25JbXBhY3Q6OkZvcmNlc1N0YWNraW5nQ29udGV4dCkpCisgICAg
ICAgIHN0eWxlLnNldFVzZWRaSW5kZXgoMCk7Cit9CisKIHZvaWQgQWRqdXN0ZXI6OmFkanVzdEZv
clNpdGVTcGVjaWZpY1F1aXJrcyhSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiB7CiAgICAgaWYg
KG1fZG9jdW1lbnQucXVpcmtzKCkubmVlZHNHTWFpbE92ZXJmbG93U2Nyb2xsUXVpcmsoKSAmJiBt
X2VsZW1lbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuaAppbmRleCBkMzdlMmQ2
NjdhOWE3NjYxOTYzN2NhMmQ4YjhmMmUwODY3MjA5YjA5Li5lM2FjMjNiOGJjM2E1ODJlOTVlNDZm
M2FjMTFmNzJiMzJiNDE4Zjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZUFkanVzdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5oCkBA
IC00Miw2ICs0Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkanVzdChSZW5kZXJTdHlsZSYsIGNv
bnN0IFJlbmRlclN0eWxlKiB1c2VyQWdlbnRBcHBlYXJhbmNlU3R5bGUpIGNvbnN0OwogCiAgICAg
c3RhdGljIHZvaWQgYWRqdXN0U1ZHRWxlbWVudFN0eWxlKFJlbmRlclN0eWxlJiwgY29uc3QgU1ZH
RWxlbWVudCYpOworICAgIHN0YXRpYyB2b2lkIGFkanVzdEFuaW1hdGVkU3R5bGUoUmVuZGVyU3R5
bGUmLCBjb25zdCBSZW5kZXJTdHlsZSogcGFyZW50Qm94U3R5bGUsIE9wdGlvblNldDxBbmltYXRp
b25JbXBhY3Q+KTsKKwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgc3RhdGljIGJv
b2wgYWRqdXN0Rm9yVGV4dEF1dG9zaXppbmcoUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50Jik7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29s
dmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAppbmRl
eCAwOTAyZjM5NTUzNDI1OTA3YzYwMzc1ODJhNGRiMTJmMTZkMDM1ODcxLi5hNjk3NjU1ZjA0ODcw
YWI1NDA1MGEyNDVhYTZiMmQxOWIzNzkzMGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVUcmVlUmVzb2x2ZXIuY3BwCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93
Um9vdC5oIgorI2luY2x1ZGUgIlN0eWxlQWRqdXN0ZXIuaCIKICNpbmNsdWRlICJTdHlsZUZvbnRT
aXplRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlN0
eWxlU2NvcGUuaCIKQEAgLTMwMiw4ICszMDMsOCBAQCBjb25zdCBSZW5kZXJTdHlsZSogVHJlZVJl
c29sdmVyOjpwYXJlbnRCb3hTdHlsZUZvclBzZXVkbyhjb25zdCBFbGVtZW50VXBkYXRlJiBlbAog
RWxlbWVudFVwZGF0ZSBUcmVlUmVzb2x2ZXI6OmNyZWF0ZUFuaW1hdGVkRWxlbWVudFVwZGF0ZShz
dGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlLCBFbGVtZW50JiBlbGVtZW50LCBD
aGFuZ2UgcGFyZW50Q2hhbmdlKQogewogICAgIGF1dG8qIG9sZFN0eWxlID0gZWxlbWVudC5yZW5k
ZXJPckRpc3BsYXlDb250ZW50c1N0eWxlKCk7Ci0KLSAgICBib29sIHNob3VsZFJlY29tcG9zaXRl
TGF5ZXIgPSBmYWxzZTsKKyAgICAKKyAgICBPcHRpb25TZXQ8QW5pbWF0aW9uSW1wYWN0PiBhbmlt
YXRpb25JbXBhY3Q7CiAKICAgICAvLyBOZXcgY29kZSBwYXRoIGZvciBDU1MgQW5pbWF0aW9ucyBh
bmQgQ1NTIFRyYW5zaXRpb25zLgogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLndlYkFuaW1hdGlvbnNDU1NJbnRlZ3JhdGlvbkVuYWJsZWQoKSkgewpAQCAt
MzIzLDcgKzMyNCw3IEBAIEVsZW1lbnRVcGRhdGUgVHJlZVJlc29sdmVyOjpjcmVhdGVBbmltYXRl
ZEVsZW1lbnRVcGRhdGUoc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0CiAgICAgLy8gYXMgYW5pbWF0
aW9ucyBjcmVhdGVkIHZpYSB0aGUgSlMgQVBJLgogICAgIGlmIChlbGVtZW50Lmhhc0tleWZyYW1l
RWZmZWN0cygpKSB7CiAgICAgICAgIGF1dG8gYW5pbWF0ZWRTdHlsZSA9IFJlbmRlclN0eWxlOjpj
bG9uZVB0cigqbmV3U3R5bGUpOwotICAgICAgICBzaG91bGRSZWNvbXBvc2l0ZUxheWVyID0gZWxl
bWVudC5hcHBseUtleWZyYW1lRWZmZWN0cygqYW5pbWF0ZWRTdHlsZSk7CisgICAgICAgIGFuaW1h
dGlvbkltcGFjdCA9IGVsZW1lbnQuYXBwbHlLZXlmcmFtZUVmZmVjdHMoKmFuaW1hdGVkU3R5bGUp
OwogICAgICAgICBuZXdTdHlsZSA9IFdURk1vdmUoYW5pbWF0ZWRTdHlsZSk7CiAgICAgfQogCkBA
IC0zMzIsMjAgKzMzMywyMiBAQCBFbGVtZW50VXBkYXRlIFRyZWVSZXNvbHZlcjo6Y3JlYXRlQW5p
bWF0ZWRFbGVtZW50VXBkYXRlKHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdAogICAgICAgICBhdXRv
JiBhbmltYXRpb25Db250cm9sbGVyID0gbV9kb2N1bWVudC5mcmFtZSgpLT5hbmltYXRpb24oKTsK
IAogICAgICAgICBhdXRvIGFuaW1hdGlvblVwZGF0ZSA9IGFuaW1hdGlvbkNvbnRyb2xsZXIudXBk
YXRlQW5pbWF0aW9ucyhlbGVtZW50LCAqbmV3U3R5bGUsIG9sZFN0eWxlKTsKLSAgICAgICAgc2hv
dWxkUmVjb21wb3NpdGVMYXllciA9IGFuaW1hdGlvblVwZGF0ZS5hbmltYXRpb25DaGFuZ2VSZXF1
aXJlc1JlY29tcG9zaXRlOworICAgICAgICBhbmltYXRpb25JbXBhY3QuYWRkKGFuaW1hdGlvblVw
ZGF0ZS5pbXBhY3QpOwogCiAgICAgICAgIGlmIChhbmltYXRpb25VcGRhdGUuc3R5bGUpCiAgICAg
ICAgICAgICBuZXdTdHlsZSA9IFdURk1vdmUoYW5pbWF0aW9uVXBkYXRlLnN0eWxlKTsKICAgICB9
CiAKKyAgICBpZiAoYW5pbWF0aW9uSW1wYWN0KQorICAgICAgICBBZGp1c3Rlcjo6YWRqdXN0QW5p
bWF0ZWRTdHlsZSgqbmV3U3R5bGUsIHBhcmVudEJveFN0eWxlKCksIGFuaW1hdGlvbkltcGFjdCk7
CisKICAgICBhdXRvIGNoYW5nZSA9IG9sZFN0eWxlID8gZGV0ZXJtaW5lQ2hhbmdlKCpvbGRTdHls
ZSwgKm5ld1N0eWxlKSA6IERldGFjaDsKIAogICAgIGF1dG8gdmFsaWRpdHkgPSBlbGVtZW50LnN0
eWxlVmFsaWRpdHkoKTsKICAgICBpZiAodmFsaWRpdHkgPj0gVmFsaWRpdHk6OlN1YnRyZWVBbmRS
ZW5kZXJlcnNJbnZhbGlkIHx8IHBhcmVudENoYW5nZSA9PSBEZXRhY2gpCiAgICAgICAgIGNoYW5n
ZSA9IERldGFjaDsKIAotICAgIHNob3VsZFJlY29tcG9zaXRlTGF5ZXIgfD0gZWxlbWVudC5zdHls
ZVJlc29sdXRpb25TaG91bGRSZWNvbXBvc2l0ZUxheWVyKCk7Ci0KKyAgICBib29sIHNob3VsZFJl
Y29tcG9zaXRlTGF5ZXIgPSBhbmltYXRpb25JbXBhY3QuY29udGFpbnMoQW5pbWF0aW9uSW1wYWN0
OjpSZXF1aXJlc1JlY29tcG9zaXRlKSB8fCBlbGVtZW50LnN0eWxlUmVzb2x1dGlvblNob3VsZFJl
Y29tcG9zaXRlTGF5ZXIoKTsKICAgICByZXR1cm4geyBXVEZNb3ZlKG5ld1N0eWxlKSwgY2hhbmdl
LCBzaG91bGRSZWNvbXBvc2l0ZUxheWVyIH07CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMWJjMTdlODE1ZThmYWQy
MGU3MWIwMGRmZDI2MzA1ODQ4OTUxN2E4Li4zZmVhM2Q5MjZhNjI0OGRiNTUxYTA2NmZiY2EyZGZm
MTNkYTk2Yzc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDEtMDUgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI1Mjcy
NCk6IFVuYWJsZSB0byB0YXAgb24gcGxheSBidXR0b24gb24gZ29vZ2xlIHZpZGVvICdTZWUgdGhl
IHRvcCBzZWFyY2ggdHJlbmRzIG9mIDIwMTknCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2OTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4MDYy
OTg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IFphbGFuIEJ1anRhcy4KKworICAgICAgICAqIGFu
aW1hdGlvbnMvei1pbmRleC1pbi1rZXlmcmFtZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBhbmltYXRpb25zL3otaW5kZXgtaW4ta2V5ZnJhbWUuaHRtbDogQWRkZWQuCisKKzIwMjAt
MDEtMDIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAg
UkVHUkVTU0lPTiAocjI1MjcyNCk6IFVuYWJsZSB0byB0YXAgb24gcGxheSBidXR0b24gb24gZ29v
Z2xlIHZpZGVvICdTZWUgdGhlIHRvcCBzZWFyY2ggdHJlbmRzIG9mIDIwMTknCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2OTQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU4MDYyOTg3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogYW5pbWF0aW9ucy96LWluZGV4LWluLWtleWZyYW1lLWV4cGVjdGVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMvei1pbmRleC1pbi1rZXlmcmFtZS5o
dG1sOiBBZGRlZC4KKwogMjAyMC0wMS0wNSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdA
c29ueS5jb20+CiAKICAgICAgICAgSmF2YVNjcmlwdDogSW52YWxpZCBkYXRlIHBhcnNlIGZvciBJ
U08gODYwMSBzdHJpbmdzIHdoZW4gbm8gdGltZXpvbmUgZ2l2ZW4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvei1pbmRleC1pbi1rZXlmcmFtZS1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvYW5pbWF0aW9ucy96LWluZGV4LWluLWtleWZyYW1lLWV4cGVjdGVkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTMzMGE0NTJmYWJmODAyMjZkMDNhZGY3MmIyNzE5YmQ4MmIzZDNhMgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvei1pbmRleC1pbi1rZXlmcmFtZS1l
eHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIC5jb250YWluZXIgeworICAgICAgICAgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgICAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICAgICAg
aGVpZ2h0OiAzMDBweDsKKyAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAg
ICAgICB9CisgICAgICAgIAorICAgICAgICAuYm94IHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKKyAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgIGhlaWdodDog
MjAwcHg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5ib3R0b20geworICAgICAgICAg
ICAgbGVmdDogMHB4OworICAgICAgICAgICAgdG9wOiAwcHg7CisgICAgICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBvcmFuZ2U7CisgICAgICAgIH0KKworICAgICAgICAudG9wIHsKKyAgICAgICAg
ICAgIGxlZnQ6IDEwMHB4OworICAgICAgICAgICAgdG9wOiAxMDBweDsKKyAgICAgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICAgICAgei1pbmRleDogLTE7CisgICAgICAg
ICAgICBvcGFjaXR5OiAwLjg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iYm90
dG9tIGJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InRvcCBib3giPjwvZGl2PgorICAg
IDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy96LWluZGV4LWluLWtleWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3ot
aW5kZXgtaW4ta2V5ZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzdlNzdjYWE0NGZmNGU5NDY4ZjYx
ZjkyNjljMmMxZGZiMzJkOTgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy96LWluZGV4LWluLWtleWZyYW1lLmh0bWwKQEAgLTAsMCArMSw1OSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgLmNvbnRhaW5lciB7
CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB3aWR0aDogMzAw
cHg7CisgICAgICAgICAgICBoZWlnaHQ6IDMwMHB4OworICAgICAgICAgICAgYm9yZGVyOiAxcHgg
c29saWQgYmxhY2s7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5ib3ggeworICAgICAg
ICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAg
ICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLmJv
dHRvbSB7CisgICAgICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAgICAgICB0b3A6IDBweDsKKyAg
ICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsKKyAgICAgICAgfQorCisgICAgICAg
IC50b3AgeworICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgICAgICB0b3A6IDEwMHB4
OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgICAgICBhbmlt
YXRpb246IGZhZGUtb3V0IDMwbXMgZm9yd2FyZHM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAg
ICAgIEBrZXlmcmFtZXMgZmFkZS1vdXQgeworICAgICAgICAgICAgMCUgeworICAgICAgICAgICAg
ICAgIG9wYWNpdHk6IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAxMDAlIHsKKyAgICAg
ICAgICAgICAgICB6LWluZGV4OiAtMTsKKyAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjg7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQ+CisgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkg
PT4geworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RlcicpLmFkZEV2
ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsICgpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICAgICAgfSwgZmFsc2UpOworICAgICAgICB9LCBmYWxzZSk7CisgICAg
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJib3R0b20gYm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0i
dGVzdGVyIiBjbGFzcz0idG9wIGJveCI+PC9kaXY+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>
<flag name="commit-queue"
          id="402604"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>