<?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>154478</bug_id>
          
          <creation_ts>2016-02-19 16:13:08 -0800</creation_ts>
          <short_desc>Repeated background images have the wrong position when using bottom/right-relative background-position</short_desc>
          <delta_ts>2016-02-22 17:28:57 -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>CSS</component>
          <version>Safari 9</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>dino</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1166603</commentid>
    <comment_count>0</comment_count>
      <attachid>271816</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-19 16:13:08 -0800</bug_when>
    <thetext>Created attachment 271816
Testcase

We get the image position wrong when repeating, with background-position: bottom 10px right 20px;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166696</commentid>
    <comment_count>1</comment_count>
      <attachid>271850</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-19 22:43:44 -0800</bug_when>
    <thetext>Created attachment 271850
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166697</commentid>
    <comment_count>2</comment_count>
      <attachid>271851</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-19 22:44:31 -0800</bug_when>
    <thetext>Created attachment 271851
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166699</commentid>
    <comment_count>3</comment_count>
      <attachid>271853</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-19 23:24:45 -0800</bug_when>
    <thetext>Created attachment 271853
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166755</commentid>
    <comment_count>4</comment_count>
      <attachid>271863</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-20 11:25:32 -0800</bug_when>
    <thetext>Created attachment 271863
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166888</commentid>
    <comment_count>5</comment_count>
      <attachid>271863</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-02-21 16:52:57 -0800</bug_when>
    <thetext>Comment on attachment 271863
Patch

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

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:706
&gt; +static Ref&lt;CSSValueList&gt; createPositionListForLayer(const FillLayer* layer, const RenderStyle&amp; style)

This should take a reference rather than a pointer since it won’t work if the layer is null.

&gt; Source/WebCore/css/CSSPrimitiveValueMappings.h:905
&gt; +template&lt;&gt; inline CSSPrimitiveValue::CSSPrimitiveValue(Edge e)

Would be nicer to name this “edge” rather than “e”.

&gt; Source/WebCore/css/CSSToStyleMap.cpp:255
&gt; +    layer.setXPosition(EdgeRelativeLength(length, edge, pair));

Need to name the type? How about this instead:

    layer.setXPosition({ length, edge, pair });

&gt; Source/WebCore/css/CSSToStyleMap.cpp:287
&gt; +    layer.setYPosition(EdgeRelativeLength(length, edge, pair));

Ditto.

&gt; Source/WebCore/rendering/style/EdgeRelativeLength.h:61
&gt; +    Length m_length;
&gt; +    unsigned m_edge : 2;
&gt; +    bool m_edgeSpecified : 1;

I suppose this is a lot more efficient than the more straightforward version? This:

    struct EdgeRelativeLength {
        Length length;
        Optional&lt;Edge&gt; edge;
    };

It sure would be clearer to just use a struct instead if we can.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166940</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-21 21:54:17 -0800</bug_when>
    <thetext>I&apos;m considering an alternative solution where &quot;bottom 10px&quot; is represented as a calc expression like &quot;calc(100% - 10px)&quot;, which is what other browsers do. This lets it be interpolated (if we allow calc to interpolate), and avoids the need to store a separate edge flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167152</commentid>
    <comment_count>7</comment_count>
      <attachid>271943</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-22 12:45:19 -0800</bug_when>
    <thetext>Created attachment 271943
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167153</commentid>
    <comment_count>8</comment_count>
      <attachid>271943</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-02-22 12:47:48 -0800</bug_when>
    <thetext>Comment on attachment 271943
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167196</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-22 14:27:28 -0800</bug_when>
    <thetext>https://webkit.org/b/154478</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167224</commentid>
    <comment_count>10</comment_count>
      <attachid>271943</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-02-22 15:45:54 -0800</bug_when>
    <thetext>Comment on attachment 271943
Patch

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

&gt; Source/WebCore/rendering/RenderBoxModelObject.cpp:1047
&gt; +static LayoutUnit resolveEdgeRelativeLength(const Length&amp; length, Edge edge, LayoutUnit availableSpace, const LayoutSize&amp; areaSize, const LayoutSize&amp; tileSize)

I think &quot;resolve&quot; is misleading here.  My understanding about this function is it transforms a length from the other side of the coordinates system to the origin of the coordinates system. How about normalizeEdgeRelativeLength() or edgeRelativeLengthToAbsolutePosition()?

&gt; Source/WebCore/rendering/RenderBoxModelObject.cpp:1055
&gt; +        return areaSize.height() - tileSize.height() - result;

Why do we involve the tileSize in these calculations? Isn&apos;t edge at the border of the areaSize?

&gt; Source/WebCore/rendering/style/FillLayer.h:206
&gt; +    unsigned m_backgroundYOrigin : 2; // Edge

Can&apos;t we define these variables like this?

Edge m_backgroundXOrigin : 2;
Edge m_backgroundYOrigin : 2;

So we can avoid casting everywhere. I think clang is fine with these definitions but I am not sure about the other ports.

&gt; Source/WebCore/rendering/style/RenderStyleConstants.h:234
&gt; +enum class Edge { Top, Right, Bottom, Left };

Why do we have different enums for the same thing?
BackgroundEdgeOrigin (now Edge)
BoxSide
PhysicalBoxSide</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167268</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-22 17:28:57 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Comment on attachment 271943 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=271943&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBoxModelObject.cpp:1047
&gt; &gt; +static LayoutUnit resolveEdgeRelativeLength(const Length&amp; length, Edge edge, LayoutUnit availableSpace, const LayoutSize&amp; areaSize, const LayoutSize&amp; tileSize)
&gt; 
&gt; I think &quot;resolve&quot; is misleading here.  My understanding about this function
&gt; is it transforms a length from the other side of the coordinates system to
&gt; the origin of the coordinates system. How about
&gt; normalizeEdgeRelativeLength() or edgeRelativeLengthToAbsolutePosition()?

I&apos;m OK with &quot;normalize&quot; but I don&apos;t think it&apos;s better enough to change.

&gt; &gt; Source/WebCore/rendering/RenderBoxModelObject.cpp:1055
&gt; &gt; +        return areaSize.height() - tileSize.height() - result;
&gt; 
&gt; Why do we involve the tileSize in these calculations? Isn&apos;t edge at the
&gt; border of the areaSize?

Because percentages are relative to (boxSize - tileSize).

&gt; &gt; Source/WebCore/rendering/style/FillLayer.h:206
&gt; &gt; +    unsigned m_backgroundYOrigin : 2; // Edge
&gt; 
&gt; Can&apos;t we define these variables like this?
&gt; 
&gt; Edge m_backgroundXOrigin : 2;
&gt; Edge m_backgroundYOrigin : 2;

No, the Windows compiler doesn&apos;t allow enums in bitfields.

&gt; &gt; Source/WebCore/rendering/style/RenderStyleConstants.h:234
&gt; &gt; +enum class Edge { Top, Right, Bottom, Left };
&gt; 
&gt; Why do we have different enums for the same thing?
&gt; BackgroundEdgeOrigin (now Edge)
&gt; BoxSide
&gt; PhysicalBoxSide

Yes, we could change all these (as long as there aren&apos;t implicit orderings).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>271816</attachid>
            <date>2016-02-19 16:13:08 -0800</date>
            <delta_ts>2016-02-19 16:13:08 -0800</delta_ts>
            <desc>Testcase</desc>
            <filename>transform-origin-positions.html</filename>
            <type>text/html</type>
            <size>614</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+Cgo8aHRtbD4KPGhlYWQ+CiAgICA8c3R5bGU+CiAgICAgICAgLmJveCB7
CiAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKICAg
ICAgICAgICAgbWFyZ2luOiAzMHB4OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFj
azsKICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwOi8vd3d3Lmdvb2dsZS5j
b20vaW1hZ2VzL2JyYW5kaW5nL2dvb2dsZWxvZ28vMXgvZ29vZ2xlbG9nb19jb2xvcl8yNzJ4OTJk
cC5wbmcnKTsKICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7CiAgICAgICAg
ICAgIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSAxMHB4IHJpZ2h0IDIwcHg7CiAgICAgICAg
fQogICAgICAgIAogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICAgIDxwPkltYWdlIHBvc2l0
aW9uaW5nIHNob3VsZCBiZSB0aGUgc2FtZSBmb3IgYm90aCBlbGVtZW50czwvcD4KICAgIDxkaXYg
Y2xhc3M9ImJveCI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5k
LXJlcGVhdDogbm8tcmVwZWF0OyI+PC9kaXY+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271850</attachid>
            <date>2016-02-19 22:43:44 -0800</date>
            <delta_ts>2016-02-19 22:44:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154478-20160219224324.patch</filename>
            <type>text/plain</type>
            <size>52652</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2ODIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDA3YTE3NmY1YTk5Mzk2
ODJlZjc3NDFhY2JlZGI3YWFiYTczZTJlMi4uYTAyMDYzOWNjZWNiMWFjMmI3MGE3NmM3ZjVmMTY4
ZGNjOGY4M2RmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc2IEBACiAyMDE2LTAyLTE5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFJlcGVhdGVkIGJh
Y2tncm91bmQgaW1hZ2VzIGhhdmUgdGhlIHdyb25nIHBvc2l0aW9uIHdoZW4gdXNpbmcgYm90dG9t
L3JpZ2h0LXJlbGF0aXZlIGJhY2tncm91bmQtcG9zaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDQ3OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgRml4IGJhY2tncm91bmQtaW1hZ2Ug
cG9zaXRpb25pbmcgd2hlbiByZXBlYXRpbmcsIGFuZCB1c2luZyByaWdodC9ib3R0b20tcmVsYXRp
dmUgb2Zmc2V0cy4KKyAgICAgICAgCisgICAgICAgIFJhdGhlciB0aGFuIGNhcnJ5aW5nIGFyb3Vu
ZCBhIExlbmd0aCBhbmQgQmFja2dyb3VuZEVkZ2VPcmlnaW4gd2hpY2ggaXMgZXJyb3ItcHJvbmUs
CisgICAgICAgIGdyb3VwIHRoZW0gaW50byBhIEVkZ2VSZWxhdGl2ZUxlbmd0aCwgd2hpY2ggYWxs
b3dzIEZpbGxMYXllciB0byBqdXN0IGhhdmUgRWRnZVJlbGF0aXZlTGVuZ3RocworICAgICAgICBm
b3IgeCBhbmQgeS4KKyAgICAgICAgCisgICAgICAgIFJlbmFtZSBCYWNrZ3JvdW5kRWRnZU9yaWdp
biB0byBjbGFzcyBFZGdlLgorICAgICAgICAKKyAgICAgICAgVGhlIHJlbmRlcmluZyBmaXggaXMg
aW4gUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUJhY2tncm91bmRJbWFnZUdlb21ldHJ5
KCksCisgICAgICAgIHdoaWNoIGNvbXB1dGVzIGEgdG9wLWxlZnQgcmVsYXRpdmUgcG9zaXRpb24g
YW5kIHVzZXMgaXQgZm9yIGJvdGggcmVwZWF0aW5nIGFuZAorICAgICAgICBub24tcmVwZWF0aW5n
IGJhY2tncm91bmRzLgorCisgICAgICAgIFRlc3Q6IGZhc3QvaW1hZ2VzL2JhY2tncm91bmQtcG9z
aXRpb24uaHRtbAorCisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjph
cHBlbmRGaWxsTGF5ZXJQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQb3NpdGlv
bkZvckxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVBvc2l0aW9uTGlzdEZvckxheWVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnByb3BlcnR5VmFs
dWUpOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVkZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJhY2tncm91bmRFZGdlT3JpZ2lu
KTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvQ1NTVG9TdHlsZU1hcC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NUb1N0eWxlTWFwOjptYXBGaWxsWFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1RvU3R5bGVNYXA6Om1hcEZpbGxZUG9zaXRpb24pOgorICAgICAgICAqIHBhZ2UvYW5p
bWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJsZW5k
RnVuYyk6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXJzUHJvcGVydHlXcmFwcGVyOjpGaWxs
TGF5ZXJzUHJvcGVydHlXcmFwcGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZUVkZ2VSZWxhdGl2ZUxlbmd0
aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlQmFj
a2dyb3VuZEltYWdlR2VvbWV0cnkpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om11c3RSZXBhaW50RmlsbExheWVycyk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL0VkZ2VSZWxhdGl2ZUxlbmd0aC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkVkZ2VSZWxhdGl2ZUxlbmd0aDo6RWRnZVJlbGF0aXZlTGVuZ3RoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVkZ2VSZWxhdGl2ZUxlbmd0aDo6b3BlcmF0b3I9PSk6CisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRv
cjw8KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6RmlsbExheWVyKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6b3BlcmF0b3I9KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6b3BlcmF0b3I9PSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpGaWxsTGF5ZXI6OmZpbGxVbnNldFByb3BlcnRpZXMpOiBEZWxldGVkLgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxM
YXllcjo6eFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6eVBvc2l0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6c2V0WFBvc2l0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGxMYXllcjo6c2V0WVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZp
bGxMYXllcjo6Y2xlYXJYUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpj
bGVhcllQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OmluaXRpYWxGaWxs
WFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6aW5pdGlhbEZpbGxZUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpiYWNrZ3JvdW5kWE9yaWdpbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OmJhY2tncm91bmRZT3JpZ2lu
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6aXNCYWNrZ3JvdW5kT3Jp
Z2luU2V0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6c2V0QmFja2dy
b3VuZFhPcmlnaW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpzZXRC
YWNrZ3JvdW5kWU9yaWdpbik6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3Rh
bnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHJlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgorCisyMDE2LTAyLTE5ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCiAgICAgICAgIFVzZSBtb3JlIGNvbmNy
ZXRlIHR5cGVzIGZvciBwYXJzaW5nIHBvc2l0aW9ucwogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NDgxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IGE2YjM0NTkxNjFhM2QyOWIxODg1MDQx
ZTdhNmYzMzllN2FmOWUwMTkuLmVlNzAwZDY4MTA0MGRlYTg1NzNiODg5MjE2ZGM3NzNkMTIyNTIy
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
agpAQCAtMjIwNjUsNiArMjIwNjUsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVu
ZGVyaW5nXHN0eWxlXEN1cnNvckRhdGEuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJlbmRlcmluZ1xzdHlsZVxDdXJzb3JMaXN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxyZW5kZXJpbmdcc3R5bGVcRGF0YVJlZi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEVkZ2VSZWxhdGl2ZUxlbmd0aC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEZpbGxMYXllci5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdyaWRDb29yZGluYXRlLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZExlbmd0aC5o
IiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDQ5Y2ZmZjI1YmMyMGVhZGI3MzhkNGY0Nzc5NmYwMTcxN2FlMzExNTQuLjYxMzli
NmIyYTdkZGU2ZTRiNmRmYmQzOTY2ZjNlMWYzNTNlZTlmYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUwNSw2ICs1MDUsNyBA
QAogCQkwRjYwNUFFRDE1Rjk0ODQ4MDA0REYwQzAgLyogU2Nyb2xsaW5nQ29uc3RyYWludHMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNjA1QUVCMTVG
OTQ4NDgwMDRERjBDMCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNjM4M0REMTg2MTVCMjkwMDNFNURC
NSAvKiBUaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2MzgzREIxODYxNUIyOTAwM0U1REI1IC8qIFRocmVhZGVk
U2Nyb2xsaW5nVHJlZS5jcHAgKi87IH07CiAJCTBGNjM4M0RFMTg2MTVCMjkwMDNFNURCNSAvKiBU
aHJlYWRlZFNjcm9sbGluZ1RyZWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGNjM4M0RDMTg2MTVCMjkwMDNFNURCNSAvKiBUaHJlYWRlZFNjcm9sbGlu
Z1RyZWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQkwRjY2MUVBNDFDNzdGNDJGMDAzRDA0OUYgLyogRWRnZVJlbGF0aXZlTGVuZ3RoLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjY2MUVBMzFDNzdGNDJG
MDAzRDA0OUYgLyogRWRnZVJlbGF0aXZlTGVuZ3RoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY2QTEyQkQxQTAwOTIzNzAwQzZERTcyIC8qIERl
YnVnUGFnZU92ZXJsYXlzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNkExMkJCMUEwMDkyMzcwMEM2REU3MiAvKiBEZWJ1Z1BhZ2VPdmVybGF5cy5j
cHAgKi87IH07CiAJCTBGNkExMkJFMUEwMDkyMzcwMEM2REU3MiAvKiBEZWJ1Z1BhZ2VPdmVybGF5
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QTEy
QkMxQTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFnZU92ZXJsYXlzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3RDA3MzMxODg0QzU2QzAwQjRB
Rjg2IC8qIFBsYXRmb3JtVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzI4NDdFMjE2RUJDNUIwMDA0M0NGQTQgLyogUGxhdGZvcm1UZXh0
VHJhY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtNzkwMiw2ICs3OTAzLDcgQEAKIAkJMEY2MDVBRUIxNUY5NDg0ODAwNERGMEMwIC8qIFNjcm9s
bGluZ0NvbnN0cmFpbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9s
bGluZ0NvbnN0cmFpbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNjM4M0RC
MTg2MTVCMjkwMDNFNURCNSAvKiBUaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2MzgzREMxODYxNUIyOTAwM0U1REI1IC8qIFRo
cmVhZGVkU2Nyb2xsaW5nVHJlZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBU
aHJlYWRlZFNjcm9sbGluZ1RyZWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2
NjFFQTMxQzc3RjQyRjAwM0QwNDlGIC8qIEVkZ2VSZWxhdGl2ZUxlbmd0aC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBFZGdlUmVsYXRpdmVMZW5ndGguaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEY2QTEyQkIxQTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFnZU92
ZXJsYXlzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERlYnVnUGFn
ZU92ZXJsYXlzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2QTEyQkMxQTAw
OTIzNzAwQzZERTcyIC8qIERlYnVnUGFnZU92ZXJsYXlzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERlYnVnUGFnZU92ZXJsYXlzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGOTdBNjU3MTU1REE4MUUwMEZBREQ0QyAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JJ
T1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEaXNwbGF5UmVm
cmVzaE1vbml0b3JJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjUxMiw2
ICsyMjUxNCw3IEBACiAJCQkJQkMyMjcyQTEwRTgyRTg3QzAwRTdGOTc1IC8qIEN1cnNvckRhdGEu
aCAqLywKIAkJCQlCQzIyNzJBQzBFODJFOEYzMDBFN0Y5NzUgLyogQ3Vyc29yTGlzdC5oICovLAog
CQkJCUJDMjI3NDZFMEU4MzY2NDUwMEU3Rjk3NSAvKiBEYXRhUmVmLmggKi8sCisJCQkJMEY2NjFF
QTMxQzc3RjQyRjAwM0QwNDlGIC8qIEVkZ2VSZWxhdGl2ZUxlbmd0aC5oICovLAogCQkJCUJDNUVC
NjlDMEU4MURBRUIwMEIyNTk2NSAvKiBGaWxsTGF5ZXIuY3BwICovLAogCQkJCUJDNUVCNjlEMEU4
MURBRUIwMEIyNTk2NSAvKiBGaWxsTGF5ZXIuaCAqLywKIAkJCQlDRDNFMjUxQjE4MDQ2QjA2MDBF
MjdGNTYgLyogR3JpZENvb3JkaW5hdGUuaCAqLywKQEAgLTI1OTgwLDYgKzI1OTgzLDcgQEAKIAkJ
CQlCMkMzREE2ODBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udENhc2NhZGVGb250cy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjJBRkZDN0UwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTY2MEQwMDZDRDYwMEVGNkYyNiAvKiBG
b250RGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNjYxRUE0MUM3N0Y0MkYwMDNE
MDQ5RiAvKiBFZGdlUmVsYXRpdmVMZW5ndGguaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNkU5RkM4
MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVNldHRpbmdzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MDlFQkRCNjE2QjdFRUEzMDBDQkEzRkMgLyogRm9udExvYWRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDg0NTY4MDgxMkI5MERBNjAwOTYwQTlGIC8qIEZvbnRNZXRyaWNzLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHAKaW5kZXggN2FlYTZhZmIzMjk3OTMxM2M3MjVjZDVjNTEwY2UxNTZiNDg5MDYx
Ny4uZjRlM2M1OWY1ZWI4YmZkNzc3MWMwMTRlN2Q4MTYyZTA2ZTBmMjdiOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTY4
NCwxOSArNjg0LDMyIEBAIHN0YXRpYyBSZWY8Q1NTVmFsdWU+IHZhbHVlRm9yUmVmbGVjdGlvbihj
b25zdCBTdHlsZVJlZmxlY3Rpb24qIHJlZmxlY3Rpb24sIGNvbnN0CiAgICAgcmV0dXJuIENTU1Jl
ZmxlY3RWYWx1ZTo6Y3JlYXRlKGRpcmVjdGlvbi5yZWxlYXNlKCksIG9mZnNldC5yZWxlYXNlKCks
IHZhbHVlRm9yTmluZVBpZWNlSW1hZ2UocmVmbGVjdGlvbi0+bWFzaygpKSk7CiB9CiAKLXN0YXRp
YyBSZWY8Q1NTVmFsdWVMaXN0PiBjcmVhdGVQb3NpdGlvbkxpc3RGb3JMYXllcihDU1NQcm9wZXJ0
eUlEIHByb3BlcnR5SUQsIGNvbnN0IEZpbGxMYXllciogbGF5ZXIsIGNvbnN0IFJlbmRlclN0eWxl
JiBzdHlsZSkKK3N0YXRpYyB2b2lkIGFwcGVuZEZpbGxMYXllclBvc2l0aW9uKENTU1ZhbHVlTGlz
dCYgbGlzdCwgY29uc3QgRWRnZVJlbGF0aXZlTGVuZ3RoJiBsZW5ndGgsIGNvbnN0IFJlbmRlclN0
eWxlJiBzdHlsZSkKIHsKLSAgICBhdXRvIHBvc2l0aW9uTGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3Jl
YXRlU3BhY2VTZXBhcmF0ZWQoKTsKLSAgICBpZiAobGF5ZXItPmlzQmFja2dyb3VuZE9yaWdpblNl
dCgpKSB7Ci0gICAgICAgIEFTU0VSVF9VTlVTRUQocHJvcGVydHlJRCwgcHJvcGVydHlJRCA9PSBD
U1NQcm9wZXJ0eUJhY2tncm91bmRQb3NpdGlvbiB8fCBwcm9wZXJ0eUlEID09IENTU1Byb3BlcnR5
V2Via2l0TWFza1Bvc2l0aW9uKTsKLSAgICAgICAgcG9zaXRpb25MaXN0LmdldCgpLmFwcGVuZChD
U1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKGxheWVyLT5iYWNrZ3JvdW5kWE9y
aWdpbigpKSk7Ci0gICAgfQotICAgIHBvc2l0aW9uTGlzdC5nZXQoKS5hcHBlbmQoem9vbUFkanVz
dGVkUGl4ZWxWYWx1ZUZvckxlbmd0aChsYXllci0+eFBvc2l0aW9uKCksIHN0eWxlKSk7Ci0gICAg
aWYgKGxheWVyLT5pc0JhY2tncm91bmRPcmlnaW5TZXQoKSkgewotICAgICAgICBBU1NFUlQocHJv
cGVydHlJRCA9PSBDU1NQcm9wZXJ0eUJhY2tncm91bmRQb3NpdGlvbiB8fCBwcm9wZXJ0eUlEID09
IENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uKTsKLSAgICAgICAgcG9zaXRpb25MaXN0Lmdl
dCgpLmFwcGVuZChDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKGxheWVyLT5i
YWNrZ3JvdW5kWU9yaWdpbigpKSk7CisgICAgaWYgKGxlbmd0aC5lZGdlU3BlY2lmaWVkKQorICAg
ICAgICBsaXN0LmFwcGVuZChDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKGxl
bmd0aC5lZGdlKSk7CisKKyAgICBsaXN0LmFwcGVuZCh6b29tQWRqdXN0ZWRQaXhlbFZhbHVlRm9y
TGVuZ3RoKGxlbmd0aC5sZW5ndGgsIHN0eWxlKSk7Cit9CisKK3N0YXRpYyBSZWY8Q1NTVmFsdWU+
IGNyZWF0ZVBvc2l0aW9uRm9yTGF5ZXIoY29uc3QgRWRnZVJlbGF0aXZlTGVuZ3RoJiBsZW5ndGgs
IGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKK3sKKyAgICBpZiAobGVuZ3RoLmVkZ2VTcGVjaWZp
ZWQpIHsKKyAgICAgICAgYXV0byBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNlcGFy
YXRlZCgpOworICAgICAgICBhcHBlbmRGaWxsTGF5ZXJQb3NpdGlvbihsaXN0LCBsZW5ndGgsIHN0
eWxlKTsKKyAgICAgICAgcmV0dXJuIFdURk1vdmUobGlzdCk7CiAgICAgfQotICAgIHBvc2l0aW9u
TGlzdC5nZXQoKS5hcHBlbmQoem9vbUFkanVzdGVkUGl4ZWxWYWx1ZUZvckxlbmd0aChsYXllci0+
eVBvc2l0aW9uKCksIHN0eWxlKSk7CisKKyAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0
b24oKS5jcmVhdGVWYWx1ZShsZW5ndGgubGVuZ3RoKTsKK30KKworc3RhdGljIFJlZjxDU1NWYWx1
ZUxpc3Q+IGNyZWF0ZVBvc2l0aW9uTGlzdEZvckxheWVyKGNvbnN0IEZpbGxMYXllciogbGF5ZXIs
IGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKK3sKKyAgICBhdXRvIHBvc2l0aW9uTGlzdCA9IENT
U1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKKworICAgIGFwcGVuZEZpbGxMYXll
clBvc2l0aW9uKHBvc2l0aW9uTGlzdCwgbGF5ZXItPnhQb3NpdGlvbigpLCBzdHlsZSk7CisgICAg
YXBwZW5kRmlsbExheWVyUG9zaXRpb24ocG9zaXRpb25MaXN0LCBsYXllci0+eVBvc2l0aW9uKCks
IHN0eWxlKTsKKwogICAgIHJldHVybiBwb3NpdGlvbkxpc3Q7CiB9CiAKQEAgLTI1MzksMjIgKzI1
NTIsMjIgQEAgUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0
eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdE1hc2tQb3NpdGlvbjogewogICAgICAgICAgICAgY29uc3QgRmlsbExheWVyKiBsYXll
cnMgPSBwcm9wZXJ0eUlEID09IENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uID8gc3R5bGUt
Pm1hc2tMYXllcnMoKSA6IHN0eWxlLT5iYWNrZ3JvdW5kTGF5ZXJzKCk7CiAgICAgICAgICAgICBp
ZiAoIWxheWVycy0+bmV4dCgpKQotICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVQb3NpdGlv
bkxpc3RGb3JMYXllcihwcm9wZXJ0eUlELCBsYXllcnMsICpzdHlsZSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGNyZWF0ZVBvc2l0aW9uTGlzdEZvckxheWVyKGxheWVycywgKnN0eWxlKTsKIAog
ICAgICAgICAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3Jl
YXRlQ29tbWFTZXBhcmF0ZWQoKTsKICAgICAgICAgICAgIGZvciAoY29uc3QgRmlsbExheWVyKiBj
dXJyTGF5ZXIgPSBsYXllcnM7IGN1cnJMYXllcjsgY3VyckxheWVyID0gY3VyckxheWVyLT5uZXh0
KCkpCi0gICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNyZWF0ZVBvc2l0aW9uTGlzdEZvckxh
eWVyKHByb3BlcnR5SUQsIGN1cnJMYXllciwgKnN0eWxlKSk7CisgICAgICAgICAgICAgICAgbGlz
dC0+YXBwZW5kKGNyZWF0ZVBvc2l0aW9uTGlzdEZvckxheWVyKGN1cnJMYXllciwgKnN0eWxlKSk7
CiAgICAgICAgICAgICByZXR1cm4gbGlzdDsKICAgICAgICAgfQogICAgICAgICBjYXNlIENTU1By
b3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWDoKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dE1hc2tQb3NpdGlvblg6IHsKICAgICAgICAgICAgIGNvbnN0IEZpbGxMYXllciogbGF5ZXJzID0g
cHJvcGVydHlJRCA9PSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlvblggPyBzdHlsZS0+bWFz
a0xheWVycygpIDogc3R5bGUtPmJhY2tncm91bmRMYXllcnMoKTsKICAgICAgICAgICAgIGlmICgh
bGF5ZXJzLT5uZXh0KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVh
dGVWYWx1ZShsYXllcnMtPnhQb3NpdGlvbigpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY3Jl
YXRlUG9zaXRpb25Gb3JMYXllcihsYXllcnMtPnhQb3NpdGlvbigpLCAqc3R5bGUpOwogCiAgICAg
ICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVD
b21tYVNlcGFyYXRlZCgpOwogICAgICAgICAgICAgZm9yIChjb25zdCBGaWxsTGF5ZXIqIGN1cnJM
YXllciA9IGxheWVyczsgY3VyckxheWVyOyBjdXJyTGF5ZXIgPSBjdXJyTGF5ZXItPm5leHQoKSkK
LSAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKGN1
cnJMYXllci0+eFBvc2l0aW9uKCkpKTsKKyAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3Nz
VmFsdWVQb29sLmNyZWF0ZVZhbHVlKGN1cnJMYXllci0+eFBvc2l0aW9uKCkubGVuZ3RoKSk7CiAK
ICAgICAgICAgICAgIHJldHVybiBsaXN0OwogICAgICAgICB9CkBAIC0yNTYyLDExICsyNTc1LDEx
IEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1
ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRNYXNrUG9zaXRpb25ZOiB7CiAgICAgICAgICAgICBjb25zdCBGaWxsTGF5ZXIqIGxheWVycyA9
IHByb3BlcnR5SUQgPT0gQ1NTUHJvcGVydHlXZWJraXRNYXNrUG9zaXRpb25ZID8gc3R5bGUtPm1h
c2tMYXllcnMoKSA6IHN0eWxlLT5iYWNrZ3JvdW5kTGF5ZXJzKCk7CiAgICAgICAgICAgICBpZiAo
IWxheWVycy0+bmV4dCgpKQotICAgICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3Jl
YXRlVmFsdWUobGF5ZXJzLT55UG9zaXRpb24oKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNz
c1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShsYXllcnMtPnlQb3NpdGlvbigpLmxlbmd0aCk7CiAKICAg
ICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0
ZUNvbW1hU2VwYXJhdGVkKCk7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IEZpbGxMYXllciogY3Vy
ckxheWVyID0gbGF5ZXJzOyBjdXJyTGF5ZXI7IGN1cnJMYXllciA9IGN1cnJMYXllci0+bmV4dCgp
KQotICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUo
Y3VyckxheWVyLT55UG9zaXRpb24oKSkpOworICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChj
c3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoY3VyckxheWVyLT55UG9zaXRpb24oKS5sZW5ndGgpKTsK
IAogICAgICAgICAgICAgcmV0dXJuIGxpc3Q7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCmluZGV4IGE5YWFhOTRjNzk4NGM1MmZl
ZDI5YzI4NGQxZmRmYmM5NTYzYmZkODIuLmY3ZWJiY2Q3NjAwOGZhOWJmYTA5ZDY1NWM5YjQwNDRk
MDM0YTdlOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFw
cGluZ3MuaApAQCAtOTAyLDQ1ICs5MDIsNDUgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hEZWNvcmF0aW9uQnJlYWsoKSBjb25zdAogfQogI2VuZGlm
CiAKLXRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShCYWNrZ3JvdW5kRWRnZU9yaWdpbiBlKQordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVkZ2UgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2
ZUNsYXNzKQogewogICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7CiAgICAg
c3dpdGNoIChlKSB7Ci0gICAgY2FzZSBUb3BFZGdlOgorICAgIGNhc2UgRWRnZTo6VG9wOgogICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRvcDsKICAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBSaWdodEVkZ2U6CisgICAgY2FzZSBFZGdlOjpSaWdodDoKICAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVSaWdodDsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBCb3R0b21F
ZGdlOgorICAgIGNhc2UgRWRnZTo6Qm90dG9tOgogICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUJvdHRvbTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBMZWZ0RWRnZToKKyAgICBj
YXNlIEVkZ2U6OkxlZnQ6CiAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGVmdDsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgQmFja2dyb3VuZEVkZ2VPcmlnaW4oKSBjb25zdAordGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVkZ2UoKSBjb25zdAogewogICAg
IEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKICAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewog
ICAgIGNhc2UgQ1NTVmFsdWVUb3A6Ci0gICAgICAgIHJldHVybiBUb3BFZGdlOworICAgICAgICBy
ZXR1cm4gRWRnZTo6VG9wOwogICAgIGNhc2UgQ1NTVmFsdWVSaWdodDoKLSAgICAgICAgcmV0dXJu
IFJpZ2h0RWRnZTsKKyAgICAgICAgcmV0dXJuIEVkZ2U6OlJpZ2h0OwogICAgIGNhc2UgQ1NTVmFs
dWVCb3R0b206Ci0gICAgICAgIHJldHVybiBCb3R0b21FZGdlOworICAgICAgICByZXR1cm4gRWRn
ZTo6Qm90dG9tOwogICAgIGNhc2UgQ1NTVmFsdWVMZWZ0OgotICAgICAgICByZXR1cm4gTGVmdEVk
Z2U7CisgICAgICAgIHJldHVybiBFZGdlOjpMZWZ0OwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBUb3BF
ZGdlOworICAgIHJldHVybiBFZGdlOjpUb3A7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFQm94U2l6aW5nIGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVG9TdHlsZU1hcC5jcHAKaW5kZXggOTYxZWExMDU3ZDkwYjViNDA5ZjEwNDA1ODZmMWRk
MzRmZDFlYzQ2My4uOTU1NWM3OTdlNzQwYmE1MGZiZGVkZGQyMzkyZDM1ODRiOTZjNGE5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcApAQCAtMjM1LDkgKzIzNSwxMSBAQCB2b2lk
IENTU1RvU3R5bGVNYXA6Om1hcEZpbGxYUG9zaXRpb24oQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlE
LCBGaWxsTGF5ZXImIGxheWVyLAogCiAgICAgYXV0byogcHJpbWl0aXZlVmFsdWUgPSAmZG93bmNh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKTsKICAgICBQYWlyKiBwYWlyID0gcHJpbWl0aXZl
VmFsdWUtPmdldFBhaXJWYWx1ZSgpOworICAgIEVkZ2UgZWRnZSA9IEVkZ2U6OkxlZnQ7CiAgICAg
aWYgKHBhaXIpIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChwcm9wZXJ0eUlELCBwcm9wZXJ0eUlE
ID09IENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWCB8fCBwcm9wZXJ0eUlEID09IENTU1By
b3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uWCk7CiAgICAgICAgIHByaW1pdGl2ZVZhbHVlID0gcGFp
ci0+c2Vjb25kKCk7CisgICAgICAgIGVkZ2UgPSAqcGFpci0+Zmlyc3QoKTsKICAgICB9CiAKICAg
ICBMZW5ndGggbGVuZ3RoOwpAQCAtMjUwLDkgKzI1Miw3IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6
bWFwRmlsbFhQb3NpdGlvbihDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIEZpbGxMYXllciYgbGF5
ZXIsCiAgICAgZWxzZQogICAgICAgICByZXR1cm47CiAKLSAgICBsYXllci5zZXRYUG9zaXRpb24o
bGVuZ3RoKTsKLSAgICBpZiAocGFpcikKLSAgICAgICAgbGF5ZXIuc2V0QmFja2dyb3VuZFhPcmln
aW4oKnBhaXItPmZpcnN0KCkpOworICAgIGxheWVyLnNldFhQb3NpdGlvbihFZGdlUmVsYXRpdmVM
ZW5ndGgobGVuZ3RoLCBlZGdlLCBwYWlyKSk7CiB9CiAKIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFw
RmlsbFlQb3NpdGlvbihDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIEZpbGxMYXllciYgbGF5ZXIs
IGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSkKQEAgLTI2Nyw5ICsyNjcsMTEgQEAgdm9pZCBDU1NUb1N0
eWxlTWFwOjptYXBGaWxsWVBvc2l0aW9uKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgRmlsbExh
eWVyJiBsYXllciwKIAogICAgIGF1dG8qIHByaW1pdGl2ZVZhbHVlID0gJmRvd25jYXN0PENTU1By
aW1pdGl2ZVZhbHVlPih2YWx1ZSk7CiAgICAgUGFpciogcGFpciA9IHByaW1pdGl2ZVZhbHVlLT5n
ZXRQYWlyVmFsdWUoKTsKKyAgICBFZGdlIGVkZ2UgPSBFZGdlOjpUb3A7CiAgICAgaWYgKHBhaXIp
IHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChwcm9wZXJ0eUlELCBwcm9wZXJ0eUlEID09IENTU1By
b3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWSB8fCBwcm9wZXJ0eUlEID09IENTU1Byb3BlcnR5V2Vi
a2l0TWFza1Bvc2l0aW9uWSk7CiAgICAgICAgIHByaW1pdGl2ZVZhbHVlID0gcGFpci0+c2Vjb25k
KCk7CisgICAgICAgIGVkZ2UgPSAqcGFpci0+Zmlyc3QoKTsKICAgICB9CiAKICAgICBMZW5ndGgg
bGVuZ3RoOwpAQCAtMjgyLDkgKzI4NCw3IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwRmlsbFlQ
b3NpdGlvbihDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIEZpbGxMYXllciYgbGF5ZXIsCiAgICAg
ZWxzZQogICAgICAgICByZXR1cm47CiAKLSAgICBsYXllci5zZXRZUG9zaXRpb24obGVuZ3RoKTsK
LSAgICBpZiAocGFpcikKLSAgICAgICAgbGF5ZXIuc2V0QmFja2dyb3VuZFlPcmlnaW4oKnBhaXIt
PmZpcnN0KCkpOworICAgIGxheWVyLnNldFlQb3NpdGlvbihFZGdlUmVsYXRpdmVMZW5ndGgobGVu
Z3RoLCBlZGdlLCBwYWlyKSk7CiB9CiAKIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwRmlsbE1hc2tT
b3VyY2VUeXBlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgRmlsbExheWVyJiBsYXllciwgY29u
c3QgQ1NTVmFsdWUmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCmluZGV4IDQ3NDUxYzVkNzg3ZTllMGQwZjBi
MWY3ZThhZjIwZTgxYjFmYmQ5Y2EuLjhkYzg0MDA3YWQ3YTM5ODQyMDJlMTFlYjY4ZDA1NjkzMmM0
YjM4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3Bl
cnR5QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQ
cm9wZXJ0eUFuaW1hdGlvbi5jcHAKQEAgLTkxLDYgKzkxLDE1IEBAIHN0YXRpYyBpbmxpbmUgTGVu
Z3RoU2l6ZSBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgY29uc3QgTGVuZ3Ro
U2l6ZSYKICAgICAgICAgICAgICAgICAgICAgICBibGVuZEZ1bmMoYW5pbSwgZnJvbS5oZWlnaHQo
KSwgdG8uaGVpZ2h0KCksIHByb2dyZXNzKSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgRWRnZVJlbGF0
aXZlTGVuZ3RoIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBjb25zdCBFZGdl
UmVsYXRpdmVMZW5ndGgmIGZyb20sIGNvbnN0IEVkZ2VSZWxhdGl2ZUxlbmd0aCYgdG8sIGRvdWJs
ZSBwcm9ncmVzcykKK3sKKyAgICAvLyBGSVhNRTogSWYgd2UgcmVwcmVzZW50ZWQgZWRnZS1yZWxh
dGl2ZSBsZW5ndGhzIGFzIGNhbGMgZXhwcmVzc2lvbnMsIHdlIGNvdWxkIGFuaW1hdGUgdGhlbS4K
KyAgICBpZiAoZnJvbS5lZGdlICE9IHRvLmVkZ2UpCisgICAgICAgIHJldHVybiB0bzsKKworICAg
IHJldHVybiBFZGdlUmVsYXRpdmVMZW5ndGgoYmxlbmRGdW5jKGFuaW0sIGZyb20ubGVuZ3RoLCB0
by5sZW5ndGgsIHByb2dyZXNzKSwgdG8uZWRnZSwgdG8uZWRnZVNwZWNpZmllZCk7Cit9CisKIHN0
YXRpYyBpbmxpbmUgU2hhZG93U3R5bGUgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFu
aW0sIFNoYWRvd1N0eWxlIGZyb20sIFNoYWRvd1N0eWxlIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7
CiAgICAgaWYgKGZyb20gPT0gdG8pCkBAIC05NzYsMTEgKzk4NSwxMSBAQCBwdWJsaWM6CiAgICAg
ICAgIHN3aXRjaCAocHJvcCkgewogICAgICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZFBv
c2l0aW9uWDoKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlvblg6Ci0g
ICAgICAgICAgICBtX2ZpbGxMYXllclByb3BlcnR5V3JhcHBlciA9IHN0ZDo6bWFrZV91bmlxdWU8
RmlsbExheWVyUHJvcGVydHlXcmFwcGVyPExlbmd0aD4+KCZGaWxsTGF5ZXI6OnhQb3NpdGlvbiwg
JkZpbGxMYXllcjo6c2V0WFBvc2l0aW9uKTsKKyAgICAgICAgICAgIG1fZmlsbExheWVyUHJvcGVy
dHlXcmFwcGVyID0gc3RkOjptYWtlX3VuaXF1ZTxGaWxsTGF5ZXJQcm9wZXJ0eVdyYXBwZXI8RWRn
ZVJlbGF0aXZlTGVuZ3RoPj4oJkZpbGxMYXllcjo6eFBvc2l0aW9uLCAmRmlsbExheWVyOjpzZXRY
UG9zaXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlC
YWNrZ3JvdW5kUG9zaXRpb25ZOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1Bv
c2l0aW9uWToKLSAgICAgICAgICAgIG1fZmlsbExheWVyUHJvcGVydHlXcmFwcGVyID0gc3RkOjpt
YWtlX3VuaXF1ZTxGaWxsTGF5ZXJQcm9wZXJ0eVdyYXBwZXI8TGVuZ3RoPj4oJkZpbGxMYXllcjo6
eVBvc2l0aW9uLCAmRmlsbExheWVyOjpzZXRZUG9zaXRpb24pOworICAgICAgICAgICAgbV9maWxs
TGF5ZXJQcm9wZXJ0eVdyYXBwZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEZpbGxMYXllclByb3BlcnR5
V3JhcHBlcjxFZGdlUmVsYXRpdmVMZW5ndGg+PigmRmlsbExheWVyOjp5UG9zaXRpb24sICZGaWxs
TGF5ZXI6OnNldFlQb3NpdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eUJhY2tncm91bmRTaXplOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
QmFja2dyb3VuZFNpemU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eE1vZGVsT2JqZWN0LmNwcAppbmRleCA3NDdmNmZmZTc5Nzk3MjMyZjZmZDQ0MDY1NjNlY2U1MWQ1
NThmMDQ3Li43YzFlZTc5OGU3ZTY4NzJmMzVjNDE3ZTFkZWMxMmFiM2NkOWExNTI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKQEAg
LTEwNDQsNiArMTA0NCwyMSBAQCBzdGF0aWMgaW5saW5lIExheW91dFVuaXQgZ2V0U3BhY2UoTGF5
b3V0VW5pdCBhcmVhU2l6ZSwgTGF5b3V0VW5pdCB0aWxlU2l6ZSkKICAgICByZXR1cm4gc3BhY2U7
CiB9CiAKK3N0YXRpYyBMYXlvdXRVbml0IHJlc29sdmVFZGdlUmVsYXRpdmVMZW5ndGgoY29uc3Qg
RWRnZVJlbGF0aXZlTGVuZ3RoJiBsZW5ndGgsIExheW91dFVuaXQgYXZhaWxhYmxlU3BhY2UsIGNv
bnN0IExheW91dFNpemUmIGFyZWFTaXplLCBjb25zdCBMYXlvdXRTaXplJiB0aWxlU2l6ZSkKK3sK
KyAgICBMYXlvdXRVbml0IHJlc3VsdCA9IG1pbmltdW1WYWx1ZUZvckxlbmd0aChsZW5ndGgubGVu
Z3RoLCBhdmFpbGFibGVTcGFjZSwgZmFsc2UpOworICAgIAorICAgIGlmIChsZW5ndGguZWRnZVNw
ZWNpZmllZCkgeworICAgICAgICBpZiAobGVuZ3RoLmVkZ2UgPT0gRWRnZTo6UmlnaHQpCisgICAg
ICAgICAgICByZXR1cm4gYXJlYVNpemUud2lkdGgoKSAtIHRpbGVTaXplLndpZHRoKCkgLSByZXN1
bHQ7CisgICAgICAgIAorICAgICAgICBpZiAobGVuZ3RoLmVkZ2UgPT0gRWRnZTo6Qm90dG9tKQor
ICAgICAgICAgICAgcmV0dXJuIGFyZWFTaXplLmhlaWdodCgpIC0gdGlsZVNpemUuaGVpZ2h0KCkg
LSByZXN1bHQ7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogQmFja2dyb3VuZElt
YWdlR2VvbWV0cnkgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUJhY2tncm91bmRJbWFn
ZUdlb21ldHJ5KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHBhaW50Q29udGFpbmVyLCBj
b25zdCBGaWxsTGF5ZXImIGZpbGxMYXllciwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0
LAogICAgIGNvbnN0IExheW91dFJlY3QmIGJvcmRlckJveFJlY3QsIFJlbmRlckVsZW1lbnQqIGJh
Y2tncm91bmRPYmplY3QpIGNvbnN0CiB7CkBAIC0xMTQ3LDcgKzExNjIsNyBAQCBCYWNrZ3JvdW5k
SW1hZ2VHZW9tZXRyeSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlQmFja2dyb3VuZElt
YWdlR2VvbWV0cnkoYwogICAgIExheW91dFNpemUgc3BhY2VTaXplOwogICAgIExheW91dFNpemUg
cGhhc2U7CiAgICAgTGF5b3V0U2l6ZSBub1JlcGVhdDsKLSAgICBMYXlvdXRVbml0IGNvbXB1dGVk
WFBvc2l0aW9uID0gbWluaW11bVZhbHVlRm9yTGVuZ3RoKGZpbGxMYXllci54UG9zaXRpb24oKSwg
YXZhaWxhYmxlV2lkdGgsIGZhbHNlKTsKKyAgICBMYXlvdXRVbml0IGNvbXB1dGVkWFBvc2l0aW9u
ID0gcmVzb2x2ZUVkZ2VSZWxhdGl2ZUxlbmd0aChmaWxsTGF5ZXIueFBvc2l0aW9uKCksIGF2YWls
YWJsZVdpZHRoLCBwb3NpdGlvbmluZ0FyZWFTaXplLCB0aWxlU2l6ZSk7CiAgICAgaWYgKGJhY2tn
cm91bmRSZXBlYXRYID09IFJvdW5kRmlsbCAmJiBwb3NpdGlvbmluZ0FyZWFTaXplLndpZHRoKCkg
PiAwICYmIHRpbGVTaXplLndpZHRoKCkgPiAwKSB7CiAgICAgICAgIGludCBudW1UaWxlcyA9IHN0
ZDo6bWF4KDEsIHJvdW5kVG9JbnQocG9zaXRpb25pbmdBcmVhU2l6ZS53aWR0aCgpIC8gdGlsZVNp
emUud2lkdGgoKSkpOwogICAgICAgICBpZiAoZmlsbExheWVyLnNpemUoKS5zaXplLmhlaWdodCgp
LmlzQXV0bygpICYmIGJhY2tncm91bmRSZXBlYXRZICE9IFJvdW5kRmlsbCkKQEAgLTExNTcsNyAr
MTE3Miw3IEBAIEJhY2tncm91bmRJbWFnZUdlb21ldHJ5IFJlbmRlckJveE1vZGVsT2JqZWN0Ojpj
YWxjdWxhdGVCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeShjCiAgICAgICAgIHBoYXNlLnNldFdpZHRo
KHRpbGVTaXplLndpZHRoKCkgPyB0aWxlU2l6ZS53aWR0aCgpIC0gZm1vZGYoKGNvbXB1dGVkWFBv
c2l0aW9uICsgbGVmdCksIHRpbGVTaXplLndpZHRoKCkpIDogMCk7CiAgICAgfQogCi0gICAgTGF5
b3V0VW5pdCBjb21wdXRlZFlQb3NpdGlvbiA9IG1pbmltdW1WYWx1ZUZvckxlbmd0aChmaWxsTGF5
ZXIueVBvc2l0aW9uKCksIGF2YWlsYWJsZUhlaWdodCwgZmFsc2UpOworICAgIExheW91dFVuaXQg
Y29tcHV0ZWRZUG9zaXRpb24gPSByZXNvbHZlRWRnZVJlbGF0aXZlTGVuZ3RoKGZpbGxMYXllci55
UG9zaXRpb24oKSwgYXZhaWxhYmxlSGVpZ2h0LCBwb3NpdGlvbmluZ0FyZWFTaXplLCB0aWxlU2l6
ZSk7CiAgICAgaWYgKGJhY2tncm91bmRSZXBlYXRZID09IFJvdW5kRmlsbCAmJiBwb3NpdGlvbmlu
Z0FyZWFTaXplLmhlaWdodCgpID4gMCAmJiB0aWxlU2l6ZS5oZWlnaHQoKSA+IDApIHsKICAgICAg
ICAgaW50IG51bVRpbGVzID0gc3RkOjptYXgoMSwgcm91bmRUb0ludChwb3NpdGlvbmluZ0FyZWFT
aXplLmhlaWdodCgpIC8gdGlsZVNpemUuaGVpZ2h0KCkpKTsKICAgICAgICAgaWYgKGZpbGxMYXll
ci5zaXplKCkuc2l6ZS53aWR0aCgpLmlzQXV0bygpICYmIGJhY2tncm91bmRSZXBlYXRYICE9IFJv
dW5kRmlsbCkKQEAgLTExODEsOCArMTE5Niw5IEBAIEJhY2tncm91bmRJbWFnZUdlb21ldHJ5IFJl
bmRlckJveE1vZGVsT2JqZWN0OjpjYWxjdWxhdGVCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeShjCiAg
ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgYmFja2dyb3VuZFJlcGVhdFggPSBOb1JlcGVhdEZp
bGw7CiAgICAgfQorCiAgICAgaWYgKGJhY2tncm91bmRSZXBlYXRYID09IE5vUmVwZWF0RmlsbCkg
ewotICAgICAgICBMYXlvdXRVbml0IHhPZmZzZXQgPSBsZWZ0ICsgKGZpbGxMYXllci5iYWNrZ3Jv
dW5kWE9yaWdpbigpID09IFJpZ2h0RWRnZSA/IGF2YWlsYWJsZVdpZHRoIC0gY29tcHV0ZWRYUG9z
aXRpb24gOiBjb21wdXRlZFhQb3NpdGlvbik7CisgICAgICAgIExheW91dFVuaXQgeE9mZnNldCA9
IGxlZnQgKyBjb21wdXRlZFhQb3NpdGlvbjsKICAgICAgICAgaWYgKHhPZmZzZXQgPiAwKQogICAg
ICAgICAgICAgZGVzdGluYXRpb25SZWN0Lm1vdmUoeE9mZnNldCwgMCk7CiAgICAgICAgIHhPZmZz
ZXQgPSBzdGQ6Om1pbjxMYXlvdXRVbml0Pih4T2Zmc2V0LCAwKTsKQEAgLTEyMDYsNyArMTIyMiw3
IEBAIEJhY2tncm91bmRJbWFnZUdlb21ldHJ5IFJlbmRlckJveE1vZGVsT2JqZWN0OjpjYWxjdWxh
dGVCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeShjCiAgICAgICAgICAgICBiYWNrZ3JvdW5kUmVwZWF0
WSA9IE5vUmVwZWF0RmlsbDsKICAgICB9CiAgICAgaWYgKGJhY2tncm91bmRSZXBlYXRZID09IE5v
UmVwZWF0RmlsbCkgewotICAgICAgICBMYXlvdXRVbml0IHlPZmZzZXQgPSB0b3AgKyAoZmlsbExh
eWVyLmJhY2tncm91bmRZT3JpZ2luKCkgPT0gQm90dG9tRWRnZSA/IGF2YWlsYWJsZUhlaWdodCAt
IGNvbXB1dGVkWVBvc2l0aW9uIDogY29tcHV0ZWRZUG9zaXRpb24pOworICAgICAgICBMYXlvdXRV
bml0IHlPZmZzZXQgPSB0b3AgKyBjb21wdXRlZFlQb3NpdGlvbjsKICAgICAgICAgaWYgKHlPZmZz
ZXQgPiAwKQogICAgICAgICAgICAgZGVzdGluYXRpb25SZWN0Lm1vdmUoMCwgeU9mZnNldCk7CiAg
ICAgICAgIHlPZmZzZXQgPSBzdGQ6Om1pbjxMYXlvdXRVbml0Pih5T2Zmc2V0LCAwKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCA2OTczMWYyMWViNmMy
NGQzYTY0NWEyNjczMDNhYWUyNWE0YzNjMTAwLi5mZDdiNWRiNzEzOGFmMzIwZWY1MzdlODg3MWQ3
MzRiZGE1ODc1NzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQu
Y3BwCkBAIC0xMjQ0LDcgKzEyNDQsNyBAQCBzdGF0aWMgYm9vbCBtdXN0UmVwYWludEZpbGxMYXll
cnMoY29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNvbnN0IEZpbGxMYXllcgogICAgIGlm
ICghaW1hZ2UgfHwgIWltYWdlLT5jYW5SZW5kZXIoJnJlbmRlcmVyLCByZW5kZXJlci5zdHlsZSgp
LmVmZmVjdGl2ZVpvb20oKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghbGF5
ZXItPnhQb3NpdGlvbigpLmlzWmVybygpIHx8ICFsYXllci0+eVBvc2l0aW9uKCkuaXNaZXJvKCkp
CisgICAgaWYgKCFsYXllci0+eFBvc2l0aW9uKCkubGVuZ3RoLmlzWmVybygpIHx8ICFsYXllci0+
eVBvc2l0aW9uKCkubGVuZ3RoLmlzWmVybygpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAg
IEVGaWxsU2l6ZVR5cGUgc2l6ZVR5cGUgPSBsYXllci0+c2l6ZVR5cGUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9FZGdlUmVsYXRpdmVMZW5ndGguaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9FZGdlUmVsYXRpdmVMZW5ndGguaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yNTYyY2JkMmZiNjZiYzI3N2E3MjBjNzBiNWQ4Njc4OWU3ODc5MDYxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0VkZ2VSZWxhdGl2ZUxlbmd0
aC5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIEVkZ2VSZWxhdGl2ZUxlbmd0aF9oCisjZGVmaW5lIEVkZ2VSZWxh
dGl2ZUxlbmd0aF9oCisKKyNpbmNsdWRlICJMZW5ndGguaCIKKyNpbmNsdWRlICJSZW5kZXJTdHls
ZUNvbnN0YW50cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBFZGdlUmVsYXRp
dmVMZW5ndGggeworcHVibGljOgorICAgIEVkZ2VSZWxhdGl2ZUxlbmd0aChMZW5ndGggaW5MZW5n
dGgsIEVkZ2UgaW5FZGdlLCBib29sIGluRWRnZVNwZWNpZmllZCkKKyAgICAgICAgOiBsZW5ndGgo
aW5MZW5ndGgpCisgICAgICAgICwgZWRnZShpbkVkZ2UpCisgICAgICAgICwgZWRnZVNwZWNpZmll
ZChpbkVkZ2VTcGVjaWZpZWQpCisgICAgeworICAgIH0KKyAgICAKKyAgICBFZGdlUmVsYXRpdmVM
ZW5ndGgoKQorICAgICAgICA6IGVkZ2UoRWRnZTo6TGVmdCkKKyAgICAgICAgLCBlZGdlU3BlY2lm
aWVkKGZhbHNlKQorICAgIHsKKyAgICB9CisgICAgCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IEVkZ2VSZWxhdGl2ZUxlbmd0aCYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4g
bGVuZ3RoID09IG90aGVyLmxlbmd0aCAmJiBlZGdlID09IG90aGVyLmVkZ2U7CisgICAgfQorICAg
IAorICAgIExlbmd0aCBsZW5ndGg7CisgICAgRWRnZSBlZGdlOworICAgIGJvb2wgZWRnZVNwZWNp
ZmllZCA6IDE7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFZGdl
UmVsYXRpdmVMZW5ndGhfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0ZpbGxMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExh
eWVyLmNwcAppbmRleCAxZjQxOTg4ZjIyMTIwYTE0NjA2ODk1MTM1ZDEyZGUxY2Q4NzVjMGMzLi42
MmQwMjZmZDk0Mjc2NTUwYTYxMGRiNDdlMTVjNTY0Y2VjYzMwNWQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcApAQCAtMzIsMTMgKzMyLDEzIEBAIHN0
cnVjdCBTYW1lU2l6ZUFzRmlsbExheWVyIHsKIAogICAgIFJlZlB0cjxTdHlsZUltYWdlPiBpbWFn
ZTsKIAotICAgIExlbmd0aCB4OwotICAgIExlbmd0aCB5OworICAgIEVkZ2VSZWxhdGl2ZUxlbmd0
aCB4OworICAgIEVkZ2VSZWxhdGl2ZUxlbmd0aCB5OwogCiAgICAgTGVuZ3RoU2l6ZSBzaXplTGVu
Z3RoOwogCi0gICAgdW5zaWduZWQgYml0ZmllbGRzIDogMzI7Ci0gICAgdW5zaWduZWQgYml0Zmll
bGRzMiA6IDExOworICAgIHVuc2lnbmVkIGJpdGZpZWxkcyA6IDI0OworICAgIHVuc2lnbmVkIGJp
dGZpZWxkczIgOiAxNDsKIH07CiAKIENPTVBJTEVfQVNTRVJUKHNpemVvZihGaWxsTGF5ZXIpID09
IHNpemVvZihTYW1lU2l6ZUFzRmlsbExheWVyKSwgRmlsbExheWVyX3Nob3VsZF9zdGF5X3NtYWxs
KTsKQEAgLTY0LDkgKzY0LDYgQEAgRmlsbExheWVyOjpGaWxsTGF5ZXIoRUZpbGxMYXllclR5cGUg
dHlwZSkKICAgICAsIG1fcmVwZWF0WVNldChmYWxzZSkKICAgICAsIG1feFBvc1NldChmYWxzZSkK
ICAgICAsIG1feVBvc1NldChmYWxzZSkKLSAgICAsIG1fYmFja2dyb3VuZE9yaWdpblNldChmYWxz
ZSkKLSAgICAsIG1fYmFja2dyb3VuZFhPcmlnaW4oTGVmdEVkZ2UpCi0gICAgLCBtX2JhY2tncm91
bmRZT3JpZ2luKFRvcEVkZ2UpCiAgICAgLCBtX2NvbXBvc2l0ZVNldCh0eXBlID09IE1hc2tGaWxs
TGF5ZXIpCiAgICAgLCBtX2JsZW5kTW9kZVNldChmYWxzZSkKICAgICAsIG1fbWFza1NvdXJjZVR5
cGVTZXQoZmFsc2UpCkBAIC05Nyw5ICs5NCw2IEBAIEZpbGxMYXllcjo6RmlsbExheWVyKGNvbnN0
IEZpbGxMYXllciYgbykKICAgICAsIG1fcmVwZWF0WVNldChvLm1fcmVwZWF0WVNldCkKICAgICAs
IG1feFBvc1NldChvLm1feFBvc1NldCkKICAgICAsIG1feVBvc1NldChvLm1feVBvc1NldCkKLSAg
ICAsIG1fYmFja2dyb3VuZE9yaWdpblNldChvLm1fYmFja2dyb3VuZE9yaWdpblNldCkKLSAgICAs
IG1fYmFja2dyb3VuZFhPcmlnaW4oby5tX2JhY2tncm91bmRYT3JpZ2luKQotICAgICwgbV9iYWNr
Z3JvdW5kWU9yaWdpbihvLm1fYmFja2dyb3VuZFlPcmlnaW4pCiAgICAgLCBtX2NvbXBvc2l0ZVNl
dChvLm1fY29tcG9zaXRlU2V0KQogICAgICwgbV9ibGVuZE1vZGVTZXQoby5tX2JsZW5kTW9kZVNl
dCkKICAgICAsIG1fbWFza1NvdXJjZVR5cGVTZXQoby5tX21hc2tTb3VyY2VUeXBlU2V0KQpAQCAt
MTIwLDkgKzExNCw2IEBAIEZpbGxMYXllciYgRmlsbExheWVyOjpvcGVyYXRvcj0oY29uc3QgRmls
bExheWVyJiBvKQogICAgIG1faW1hZ2UgPSBvLm1faW1hZ2U7CiAgICAgbV94UG9zaXRpb24gPSBv
Lm1feFBvc2l0aW9uOwogICAgIG1feVBvc2l0aW9uID0gby5tX3lQb3NpdGlvbjsKLSAgICBtX2Jh
Y2tncm91bmRYT3JpZ2luID0gby5tX2JhY2tncm91bmRYT3JpZ2luOwotICAgIG1fYmFja2dyb3Vu
ZFlPcmlnaW4gPSBvLm1fYmFja2dyb3VuZFlPcmlnaW47Ci0gICAgbV9iYWNrZ3JvdW5kT3JpZ2lu
U2V0ID0gby5tX2JhY2tncm91bmRPcmlnaW5TZXQ7CiAgICAgbV9zaXplTGVuZ3RoID0gby5tX3Np
emVMZW5ndGg7CiAgICAgbV9hdHRhY2htZW50ID0gby5tX2F0dGFjaG1lbnQ7CiAgICAgbV9jbGlw
ID0gby5tX2NsaXA7CkBAIC0xNTYsNyArMTQ3LDYgQEAgYm9vbCBGaWxsTGF5ZXI6Om9wZXJhdG9y
PT0oY29uc3QgRmlsbExheWVyJiBvKSBjb25zdAogICAgIC8vIFdlIGRvIG5vdCBjaGVjayB0aGUg
ImlzU2V0IiBib29sZWFucyBmb3IgZWFjaCBwcm9wZXJ0eSwgc2luY2UgdGhvc2UgYXJlIG9ubHkg
dXNlZCBkdXJpbmcgaW5pdGlhbCBjb25zdHJ1Y3Rpb24KICAgICAvLyB0byBwcm9wYWdhdGUgcGF0
dGVybnMgaW50byBsYXllcnMuIEFsbCBsYXllciBjb21wYXJpc29ucyBoYXBwZW4gYWZ0ZXIgdmFs
dWVzIGhhdmUgYWxsIGJlZW4gZmlsbGVkIGluIGFueXdheS4KICAgICByZXR1cm4gYXJlUG9pbnRp
bmdUb0VxdWFsRGF0YShtX2ltYWdlLmdldCgpLCBvLm1faW1hZ2UuZ2V0KCkpICYmIG1feFBvc2l0
aW9uID09IG8ubV94UG9zaXRpb24gJiYgbV95UG9zaXRpb24gPT0gby5tX3lQb3NpdGlvbgotICAg
ICAgICAmJiBtX2JhY2tncm91bmRYT3JpZ2luID09IG8ubV9iYWNrZ3JvdW5kWE9yaWdpbiAmJiBt
X2JhY2tncm91bmRZT3JpZ2luID09IG8ubV9iYWNrZ3JvdW5kWU9yaWdpbgogICAgICAgICAmJiBt
X2F0dGFjaG1lbnQgPT0gby5tX2F0dGFjaG1lbnQgJiYgbV9jbGlwID09IG8ubV9jbGlwICYmIG1f
Y29tcG9zaXRlID09IG8ubV9jb21wb3NpdGUKICAgICAgICAgJiYgbV9ibGVuZE1vZGUgPT0gby5t
X2JsZW5kTW9kZSAmJiBtX29yaWdpbiA9PSBvLm1fb3JpZ2luICYmIG1fcmVwZWF0WCA9PSBvLm1f
cmVwZWF0WAogICAgICAgICAmJiBtX3JlcGVhdFkgPT0gby5tX3JlcGVhdFkgJiYgbV9zaXplVHlw
ZSA9PSBvLm1fc2l6ZVR5cGUgJiYgbV9tYXNrU291cmNlVHlwZSA9PSBvLm1fbWFza1NvdXJjZVR5
cGUKQEAgLTE3MiwxMCArMTYyLDYgQEAgdm9pZCBGaWxsTGF5ZXI6OmZpbGxVbnNldFByb3BlcnRp
ZXMoKQogICAgICAgICAvLyBXZSBuZWVkIHRvIGZpbGwgaW4gdGhlIHJlbWFpbmluZyB2YWx1ZXMg
d2l0aCB0aGUgcGF0dGVybiBzcGVjaWZpZWQuCiAgICAgICAgIGZvciAoRmlsbExheWVyKiBwYXR0
ZXJuID0gdGhpczsgY3VycjsgY3VyciA9IGN1cnItPm5leHQoKSkgewogICAgICAgICAgICAgY3Vy
ci0+bV94UG9zaXRpb24gPSBwYXR0ZXJuLT5tX3hQb3NpdGlvbjsKLSAgICAgICAgICAgIGlmIChw
YXR0ZXJuLT5pc0JhY2tncm91bmRPcmlnaW5TZXQoKSkgewotICAgICAgICAgICAgICAgIGN1cnIt
Pm1fYmFja2dyb3VuZFhPcmlnaW4gPSBwYXR0ZXJuLT5tX2JhY2tncm91bmRYT3JpZ2luOwotICAg
ICAgICAgICAgICAgIGN1cnItPm1fYmFja2dyb3VuZFlPcmlnaW4gPSBwYXR0ZXJuLT5tX2JhY2tn
cm91bmRZT3JpZ2luOwotICAgICAgICAgICAgfQogICAgICAgICAgICAgcGF0dGVybiA9IHBhdHRl
cm4tPm5leHQoKTsKICAgICAgICAgICAgIGlmIChwYXR0ZXJuID09IGN1cnIgfHwgIXBhdHRlcm4p
CiAgICAgICAgICAgICAgICAgcGF0dGVybiA9IHRoaXM7CkBAIC0xODcsMTAgKzE3Myw2IEBAIHZv
aWQgRmlsbExheWVyOjpmaWxsVW5zZXRQcm9wZXJ0aWVzKCkKICAgICAgICAgLy8gV2UgbmVlZCB0
byBmaWxsIGluIHRoZSByZW1haW5pbmcgdmFsdWVzIHdpdGggdGhlIHBhdHRlcm4gc3BlY2lmaWVk
LgogICAgICAgICBmb3IgKEZpbGxMYXllciogcGF0dGVybiA9IHRoaXM7IGN1cnI7IGN1cnIgPSBj
dXJyLT5uZXh0KCkpIHsKICAgICAgICAgICAgIGN1cnItPm1feVBvc2l0aW9uID0gcGF0dGVybi0+
bV95UG9zaXRpb247Ci0gICAgICAgICAgICBpZiAocGF0dGVybi0+aXNCYWNrZ3JvdW5kT3JpZ2lu
U2V0KCkpIHsKLSAgICAgICAgICAgICAgICBjdXJyLT5tX2JhY2tncm91bmRYT3JpZ2luID0gcGF0
dGVybi0+bV9iYWNrZ3JvdW5kWE9yaWdpbjsKLSAgICAgICAgICAgICAgICBjdXJyLT5tX2JhY2tn
cm91bmRZT3JpZ2luID0gcGF0dGVybi0+bV9iYWNrZ3JvdW5kWU9yaWdpbjsKLSAgICAgICAgICAg
IH0KICAgICAgICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLT5uZXh0KCk7CiAgICAgICAgICAgICBp
ZiAocGF0dGVybiA9PSBjdXJyIHx8ICFwYXR0ZXJuKQogICAgICAgICAgICAgICAgIHBhdHRlcm4g
PSB0aGlzOwpAQCAtNDA3LDE2ICszODksMjAgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgY29uc3QgRmlsbExheWVyJiBsYXllcikKICAgICB0cyA8PCAiZmlsbC1sYXll
ciI7CiAKICAgICB0cy5zdGFydEdyb3VwKCk7Ci0gICAgdHMgPDwgInBvc2l0aW9uICIgPDwgbGF5
ZXIueFBvc2l0aW9uKCkgPDwgIiAiIDw8IGxheWVyLnlQb3NpdGlvbigpOworICAgIHRzIDw8ICJw
b3NpdGlvbiAiOworICAgIGlmIChsYXllci54UG9zaXRpb24oKS5lZGdlU3BlY2lmaWVkKQorICAg
ICAgICB0cyA8PCBsYXllci54UG9zaXRpb24oKS5lZGdlIDw8ICIgIjsKKyAgICB0cyA8PCBsYXll
ci54UG9zaXRpb24oKS5sZW5ndGg7CisKKyAgICB0cyA8PCAicG9zaXRpb24gIjsKKyAgICBpZiAo
bGF5ZXIueVBvc2l0aW9uKCkuZWRnZVNwZWNpZmllZCkKKyAgICAgICAgdHMgPDwgbGF5ZXIueVBv
c2l0aW9uKCkuZWRnZSA8PCAiICI7CisgICAgdHMgPDwgbGF5ZXIueVBvc2l0aW9uKCkubGVuZ3Ro
OwogICAgIHRzLmVuZEdyb3VwKCk7CiAKICAgICB0cy5kdW1wUHJvcGVydHkoInNpemUiLCBsYXll
ci5zaXplKCkpOwogCiAgICAgdHMuc3RhcnRHcm91cCgpOwotICAgIHRzIDw8ICJiYWNrZ3JvdW5k
LW9yaWdpbiAiIDw8IGxheWVyLmJhY2tncm91bmRYT3JpZ2luKCkgPDwgIiAiIDw8IGxheWVyLmJh
Y2tncm91bmRZT3JpZ2luKCk7Ci0gICAgdHMuZW5kR3JvdXAoKTsKLQotICAgIHRzLnN0YXJ0R3Jv
dXAoKTsKICAgICB0cyA8PCAicmVwZWF0ICIgPDwgbGF5ZXIucmVwZWF0WCgpIDw8ICIgIiA8PCBs
YXllci5yZXBlYXRZKCk7CiAgICAgdHMuZW5kR3JvdXAoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCmluZGV4IDhiMGU2NWUzZjdmNDRhNjBiODIxYzE2OWVh
YjNlOGNjY2U1NzQ1NzcuLmUyZDAzYmNlNjFiNTNkNjMyYjJhN2FlYmU3M2ExM2IyMzIyNTkxZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgKQEAgLTI1LDYg
KzI1LDcgQEAKICNpZm5kZWYgRmlsbExheWVyX2gKICNkZWZpbmUgRmlsbExheWVyX2gKIAorI2lu
Y2x1ZGUgIkVkZ2VSZWxhdGl2ZUxlbmd0aC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIK
ICNpbmNsdWRlICJMZW5ndGhTaXplLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMu
aCIKQEAgLTY4LDEwICs2OSw4IEBAIHB1YmxpYzoKICAgICB+RmlsbExheWVyKCk7CiAKICAgICBT
dHlsZUltYWdlKiBpbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2UuZ2V0KCk7IH0KLSAgICBj
b25zdCBMZW5ndGgmIHhQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1feFBvc2l0aW9uOyB9Ci0g
ICAgY29uc3QgTGVuZ3RoJiB5UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3lQb3NpdGlvbjsg
fQotICAgIEJhY2tncm91bmRFZGdlT3JpZ2luIGJhY2tncm91bmRYT3JpZ2luKCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8QmFja2dyb3VuZEVkZ2VPcmlnaW4+KG1fYmFja2dyb3VuZFhPcmln
aW4pOyB9Ci0gICAgQmFja2dyb3VuZEVkZ2VPcmlnaW4gYmFja2dyb3VuZFlPcmlnaW4oKSBjb25z
dCB7IHJldHVybiBzdGF0aWNfY2FzdDxCYWNrZ3JvdW5kRWRnZU9yaWdpbj4obV9iYWNrZ3JvdW5k
WU9yaWdpbik7IH0KKyAgICBjb25zdCBFZGdlUmVsYXRpdmVMZW5ndGgmIHhQb3NpdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1feFBvc2l0aW9uOyB9CisgICAgY29uc3QgRWRnZVJlbGF0aXZlTGVuZ3Ro
JiB5UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3lQb3NpdGlvbjsgfQogICAgIEVGaWxsQXR0
YWNobWVudCBhdHRhY2htZW50KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUZpbGxBdHRh
Y2htZW50PihtX2F0dGFjaG1lbnQpOyB9CiAgICAgRUZpbGxCb3ggY2xpcCgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PEVGaWxsQm94PihtX2NsaXApOyB9CiAgICAgRUZpbGxCb3ggb3JpZ2lu
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUZpbGxCb3g+KG1fb3JpZ2luKTsgfQpAQCAt
OTAsNyArODksNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0ltYWdlU2V0KCkgY29uc3QgeyByZXR1
cm4gbV9pbWFnZVNldDsgfQogICAgIGJvb2wgaXNYUG9zaXRpb25TZXQoKSBjb25zdCB7IHJldHVy
biBtX3hQb3NTZXQ7IH0KICAgICBib29sIGlzWVBvc2l0aW9uU2V0KCkgY29uc3QgeyByZXR1cm4g
bV95UG9zU2V0OyB9Ci0gICAgYm9vbCBpc0JhY2tncm91bmRPcmlnaW5TZXQoKSBjb25zdCB7IHJl
dHVybiBtX2JhY2tncm91bmRPcmlnaW5TZXQ7IH0KICAgICBib29sIGlzQXR0YWNobWVudFNldCgp
IGNvbnN0IHsgcmV0dXJuIG1fYXR0YWNobWVudFNldDsgfQogICAgIGJvb2wgaXNDbGlwU2V0KCkg
Y29uc3QgeyByZXR1cm4gbV9jbGlwU2V0OyB9CiAgICAgYm9vbCBpc09yaWdpblNldCgpIGNvbnN0
IHsgcmV0dXJuIG1fb3JpZ2luU2V0OyB9CkBAIC0xMDIsMTAgKzEwMCw4IEBAIHB1YmxpYzoKICAg
ICBib29sIGlzTWFza1NvdXJjZVR5cGVTZXQoKSBjb25zdCB7IHJldHVybiBtX21hc2tTb3VyY2VU
eXBlU2V0OyB9CiAKICAgICB2b2lkIHNldEltYWdlKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gaW1h
Z2UpIHsgbV9pbWFnZSA9IGltYWdlOyBtX2ltYWdlU2V0ID0gdHJ1ZTsgfQotICAgIHZvaWQgc2V0
WFBvc2l0aW9uKExlbmd0aCBsZW5ndGgpIHsgbV94UG9zaXRpb24gPSBXVEZNb3ZlKGxlbmd0aCk7
IG1feFBvc1NldCA9IHRydWU7IH0KLSAgICB2b2lkIHNldFlQb3NpdGlvbihMZW5ndGggbGVuZ3Ro
KSB7IG1feVBvc2l0aW9uID0gV1RGTW92ZShsZW5ndGgpOyBtX3lQb3NTZXQgPSB0cnVlOyB9Ci0g
ICAgdm9pZCBzZXRCYWNrZ3JvdW5kWE9yaWdpbihCYWNrZ3JvdW5kRWRnZU9yaWdpbiBvKSB7IG1f
YmFja2dyb3VuZFhPcmlnaW4gPSBvOyBtX2JhY2tncm91bmRPcmlnaW5TZXQgPSB0cnVlOyB9Ci0g
ICAgdm9pZCBzZXRCYWNrZ3JvdW5kWU9yaWdpbihCYWNrZ3JvdW5kRWRnZU9yaWdpbiBvKSB7IG1f
YmFja2dyb3VuZFlPcmlnaW4gPSBvOyBtX2JhY2tncm91bmRPcmlnaW5TZXQgPSB0cnVlOyB9Cisg
ICAgdm9pZCBzZXRYUG9zaXRpb24oRWRnZVJlbGF0aXZlTGVuZ3RoIGxlbmd0aCkgeyBtX3hQb3Np
dGlvbiA9IGxlbmd0aDsgbV94UG9zU2V0ID0gdHJ1ZTsgfQorICAgIHZvaWQgc2V0WVBvc2l0aW9u
KEVkZ2VSZWxhdGl2ZUxlbmd0aCBsZW5ndGgpIHsgbV95UG9zaXRpb24gPSBsZW5ndGg7IG1feVBv
c1NldCA9IHRydWU7IH0KICAgICB2b2lkIHNldEF0dGFjaG1lbnQoRUZpbGxBdHRhY2htZW50IGF0
dGFjaG1lbnQpIHsgbV9hdHRhY2htZW50ID0gYXR0YWNobWVudDsgbV9hdHRhY2htZW50U2V0ID0g
dHJ1ZTsgfQogICAgIHZvaWQgc2V0Q2xpcChFRmlsbEJveCBiKSB7IG1fY2xpcCA9IGI7IG1fY2xp
cFNldCA9IHRydWU7IH0KICAgICB2b2lkIHNldE9yaWdpbihFRmlsbEJveCBiKSB7IG1fb3JpZ2lu
ID0gYjsgbV9vcmlnaW5TZXQgPSB0cnVlOyB9CkBAIC0xMjAsOCArMTE2LDggQEAgcHVibGljOgog
CiAgICAgdm9pZCBjbGVhckltYWdlKCkgeyBtX2ltYWdlID0gbnVsbHB0cjsgbV9pbWFnZVNldCA9
IGZhbHNlOyB9CiAKLSAgICB2b2lkIGNsZWFyWFBvc2l0aW9uKCkgeyBtX3hQb3NTZXQgPSBmYWxz
ZTsgbV9iYWNrZ3JvdW5kT3JpZ2luU2V0ID0gZmFsc2U7IH0KLSAgICB2b2lkIGNsZWFyWVBvc2l0
aW9uKCkgeyBtX3lQb3NTZXQgPSBmYWxzZTsgbV9iYWNrZ3JvdW5kT3JpZ2luU2V0ID0gZmFsc2U7
IH0KKyAgICB2b2lkIGNsZWFyWFBvc2l0aW9uKCkgeyBtX3hQb3NTZXQgPSBmYWxzZTsgfQorICAg
IHZvaWQgY2xlYXJZUG9zaXRpb24oKSB7IG1feVBvc1NldCA9IGZhbHNlOyB9CiAKICAgICB2b2lk
IGNsZWFyQXR0YWNobWVudCgpIHsgbV9hdHRhY2htZW50U2V0ID0gZmFsc2U7IH0KICAgICB2b2lk
IGNsZWFyQ2xpcCgpIHsgbV9jbGlwU2V0ID0gZmFsc2U7IH0KQEAgLTE2NCw4ICsxNjAsOCBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIENvbXBvc2l0ZU9wZXJhdG9yIGluaXRpYWxGaWxsQ29tcG9zaXRl
KEVGaWxsTGF5ZXJUeXBlKSB7IHJldHVybiBDb21wb3NpdGVTb3VyY2VPdmVyOyB9CiAgICAgc3Rh
dGljIEJsZW5kTW9kZSBpbml0aWFsRmlsbEJsZW5kTW9kZShFRmlsbExheWVyVHlwZSkgeyByZXR1
cm4gQmxlbmRNb2RlTm9ybWFsOyB9CiAgICAgc3RhdGljIEZpbGxTaXplIGluaXRpYWxGaWxsU2l6
ZShFRmlsbExheWVyVHlwZSkgeyByZXR1cm4gRmlsbFNpemUoKTsgfQotICAgIHN0YXRpYyBMZW5n
dGggaW5pdGlhbEZpbGxYUG9zaXRpb24oRUZpbGxMYXllclR5cGUpIHsgcmV0dXJuIExlbmd0aCgw
LjBmLCBQZXJjZW50KTsgfQotICAgIHN0YXRpYyBMZW5ndGggaW5pdGlhbEZpbGxZUG9zaXRpb24o
RUZpbGxMYXllclR5cGUpIHsgcmV0dXJuIExlbmd0aCgwLjBmLCBQZXJjZW50KTsgfQorICAgIHN0
YXRpYyBFZGdlUmVsYXRpdmVMZW5ndGggaW5pdGlhbEZpbGxYUG9zaXRpb24oRUZpbGxMYXllclR5
cGUpIHsgcmV0dXJuIEVkZ2VSZWxhdGl2ZUxlbmd0aChMZW5ndGgoMC4wZiwgUGVyY2VudCksIEVk
Z2U6OkxlZnQsIGZhbHNlKTsgfQorICAgIHN0YXRpYyBFZGdlUmVsYXRpdmVMZW5ndGggaW5pdGlh
bEZpbGxZUG9zaXRpb24oRUZpbGxMYXllclR5cGUpIHsgcmV0dXJuIEVkZ2VSZWxhdGl2ZUxlbmd0
aChMZW5ndGgoMC4wZiwgUGVyY2VudCksIEVkZ2U6OlRvcCwgZmFsc2UpOyB9CiAgICAgc3RhdGlj
IFN0eWxlSW1hZ2UqIGluaXRpYWxGaWxsSW1hZ2UoRUZpbGxMYXllclR5cGUpIHsgcmV0dXJuIG51
bGxwdHI7IH0KICAgICBzdGF0aWMgRU1hc2tTb3VyY2VUeXBlIGluaXRpYWxGaWxsTWFza1NvdXJj
ZVR5cGUoRUZpbGxMYXllclR5cGUpIHsgcmV0dXJuIE1hc2tBbHBoYTsgfQogCkBAIC0xNzgsOCAr
MTc0LDggQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxTdHlsZUltYWdlPiBtX2ltYWdlOwogCi0g
ICAgTGVuZ3RoIG1feFBvc2l0aW9uOwotICAgIExlbmd0aCBtX3lQb3NpdGlvbjsKKyAgICBFZGdl
UmVsYXRpdmVMZW5ndGggbV94UG9zaXRpb247CisgICAgRWRnZVJlbGF0aXZlTGVuZ3RoIG1feVBv
c2l0aW9uOwogCiAgICAgTGVuZ3RoU2l6ZSBtX3NpemVMZW5ndGg7CiAKQEAgLTIwMSw5ICsxOTcs
NiBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fcmVwZWF0WVNldCA6IDE7CiAgICAgdW5zaWdu
ZWQgbV94UG9zU2V0IDogMTsKICAgICB1bnNpZ25lZCBtX3lQb3NTZXQgOiAxOwotICAgIHVuc2ln
bmVkIG1fYmFja2dyb3VuZE9yaWdpblNldCA6IDE7Ci0gICAgdW5zaWduZWQgbV9iYWNrZ3JvdW5k
WE9yaWdpbiA6IDI7IC8vIEJhY2tncm91bmRFZGdlT3JpZ2luCi0gICAgdW5zaWduZWQgbV9iYWNr
Z3JvdW5kWU9yaWdpbiA6IDI7IC8vIEJhY2tncm91bmRFZGdlT3JpZ2luCiAgICAgdW5zaWduZWQg
bV9jb21wb3NpdGVTZXQgOiAxOwogICAgIHVuc2lnbmVkIG1fYmxlbmRNb2RlU2V0IDogMTsKICAg
ICB1bnNpZ25lZCBtX21hc2tTb3VyY2VUeXBlU2V0IDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggYTI3NDIxNTdkYzI5YWUyMjNiZDE4YWNj
ZTViYTkyOWIzYzM1MjVmYy4uNWU5NGVhZmMwODMyMzhiZDA2YjVhZGQ4OTVkY2ZiYzU3M2NhZjZj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAg
LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJDb2xvclNwYWNlLmgiCiAjaW5jbHVkZSAiQ291bnRl
ckRpcmVjdGl2ZXMuaCIKICNpbmNsdWRlICJEYXRhUmVmLmgiCisjaW5jbHVkZSAiRWRnZVJlbGF0
aXZlTGVuZ3RoLmgiCiAjaW5jbHVkZSAiRm9udEJhc2VsaW5lLmgiCiAjaW5jbHVkZSAiRm9udERl
c2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgpAQCAtNzk5LDggKzgwMCw4
IEBAIHB1YmxpYzoKICAgICBFRmlsbEF0dGFjaG1lbnQgYmFja2dyb3VuZEF0dGFjaG1lbnQoKSBj
b25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFRmlsbEF0dGFjaG1lbnQ+KG1fYmFja2dyb3VuZC0+
YmFja2dyb3VuZCgpLmF0dGFjaG1lbnQoKSk7IH0KICAgICBFRmlsbEJveCBiYWNrZ3JvdW5kQ2xp
cCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVGaWxsQm94PihtX2JhY2tncm91bmQtPmJh
Y2tncm91bmQoKS5jbGlwKCkpOyB9CiAgICAgRUZpbGxCb3ggYmFja2dyb3VuZE9yaWdpbigpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVGaWxsQm94PihtX2JhY2tncm91bmQtPmJhY2tncm91
bmQoKS5vcmlnaW4oKSk7IH0KLSAgICBjb25zdCBMZW5ndGgmIGJhY2tncm91bmRYUG9zaXRpb24o
KSBjb25zdCB7IHJldHVybiBtX2JhY2tncm91bmQtPmJhY2tncm91bmQoKS54UG9zaXRpb24oKTsg
fQotICAgIGNvbnN0IExlbmd0aCYgYmFja2dyb3VuZFlQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fYmFja2dyb3VuZC0+YmFja2dyb3VuZCgpLnlQb3NpdGlvbigpOyB9CisgICAgY29uc3QgRWRn
ZVJlbGF0aXZlTGVuZ3RoJiBiYWNrZ3JvdW5kWFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9i
YWNrZ3JvdW5kLT5iYWNrZ3JvdW5kKCkueFBvc2l0aW9uKCk7IH0KKyAgICBjb25zdCBFZGdlUmVs
YXRpdmVMZW5ndGgmIGJhY2tncm91bmRZUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2JhY2tn
cm91bmQtPmJhY2tncm91bmQoKS55UG9zaXRpb24oKTsgfQogICAgIEVGaWxsU2l6ZVR5cGUgYmFj
a2dyb3VuZFNpemVUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZ3JvdW5kLT5iYWNrZ3JvdW5k
KCkuc2l6ZVR5cGUoKTsgfQogICAgIGNvbnN0IExlbmd0aFNpemUmIGJhY2tncm91bmRTaXplTGVu
Z3RoKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZ3JvdW5kLT5iYWNrZ3JvdW5kKCkuc2l6ZUxlbmd0
aCgpOyB9CiAgICAgRmlsbExheWVyJiBlbnN1cmVCYWNrZ3JvdW5kTGF5ZXJzKCkgeyByZXR1cm4g
bV9iYWNrZ3JvdW5kLmFjY2VzcygpLT5tX2JhY2tncm91bmQ7IH0KQEAgLTgxMiw4ICs4MTMsOCBA
QCBwdWJsaWM6CiAgICAgQ29tcG9zaXRlT3BlcmF0b3IgbWFza0NvbXBvc2l0ZSgpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PENvbXBvc2l0ZU9wZXJhdG9yPihyYXJlTm9uSW5oZXJpdGVkRGF0
YS0+bV9tYXNrLmNvbXBvc2l0ZSgpKTsgfQogICAgIEVGaWxsQm94IG1hc2tDbGlwKCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8RUZpbGxCb3g+KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX21h
c2suY2xpcCgpKTsgfQogICAgIEVGaWxsQm94IG1hc2tPcmlnaW4oKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxFRmlsbEJveD4ocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbWFzay5vcmlnaW4o
KSk7IH0KLSAgICBjb25zdCBMZW5ndGgmIG1hc2tYUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBy
YXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tYXNrLnhQb3NpdGlvbigpOyB9Ci0gICAgY29uc3QgTGVu
Z3RoJiBtYXNrWVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEt
Pm1fbWFzay55UG9zaXRpb24oKTsgfQorICAgIGNvbnN0IEVkZ2VSZWxhdGl2ZUxlbmd0aCYgbWFz
a1hQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX21hc2su
eFBvc2l0aW9uKCk7IH0KKyAgICBjb25zdCBFZGdlUmVsYXRpdmVMZW5ndGgmIG1hc2tZUG9zaXRp
b24oKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tYXNrLnlQb3NpdGlv
bigpOyB9CiAgICAgRUZpbGxTaXplVHlwZSBtYXNrU2l6ZVR5cGUoKSBjb25zdCB7IHJldHVybiBy
YXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tYXNrLnNpemVUeXBlKCk7IH0KICAgICBjb25zdCBMZW5n
dGhTaXplJiBtYXNrU2l6ZUxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWRE
YXRhLT5tX21hc2suc2l6ZUxlbmd0aCgpOyB9CiAgICAgRmlsbExheWVyJiBlbnN1cmVNYXNrTGF5
ZXJzKCkgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbWFzazsgfQpA
QCAtMTI2Myw4ICsxMjY0LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRCYWNrZ3JvdW5kQ29s
b3IoY29uc3QgQ29sb3ImIHYpIHsgU0VUX1ZBUihtX2JhY2tncm91bmQsIG1fY29sb3IsIHYpOyB9
CiAKLSAgICB2b2lkIHNldEJhY2tncm91bmRYUG9zaXRpb24oTGVuZ3RoIGxlbmd0aCkgeyBTRVRf
VkFSKG1fYmFja2dyb3VuZCwgbV9iYWNrZ3JvdW5kLm1feFBvc2l0aW9uLCBXVEZNb3ZlKGxlbmd0
aCkpOyB9Ci0gICAgdm9pZCBzZXRCYWNrZ3JvdW5kWVBvc2l0aW9uKExlbmd0aCBsZW5ndGgpIHsg
U0VUX1ZBUihtX2JhY2tncm91bmQsIG1fYmFja2dyb3VuZC5tX3lQb3NpdGlvbiwgV1RGTW92ZShs
ZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0QmFja2dyb3VuZFhQb3NpdGlvbihjb25zdCBFZGdlUmVs
YXRpdmVMZW5ndGgmIGxlbmd0aCkgeyBTRVRfVkFSKG1fYmFja2dyb3VuZCwgbV9iYWNrZ3JvdW5k
Lm1feFBvc2l0aW9uLCBsZW5ndGgpOyB9CisgICAgdm9pZCBzZXRCYWNrZ3JvdW5kWVBvc2l0aW9u
KGNvbnN0IEVkZ2VSZWxhdGl2ZUxlbmd0aCYgbGVuZ3RoKSB7IFNFVF9WQVIobV9iYWNrZ3JvdW5k
LCBtX2JhY2tncm91bmQubV95UG9zaXRpb24sIGxlbmd0aCk7IH0KICAgICB2b2lkIHNldEJhY2tn
cm91bmRTaXplKEVGaWxsU2l6ZVR5cGUgYikgeyBTRVRfVkFSKG1fYmFja2dyb3VuZCwgbV9iYWNr
Z3JvdW5kLm1fc2l6ZVR5cGUsIGIpOyB9CiAgICAgdm9pZCBzZXRCYWNrZ3JvdW5kU2l6ZUxlbmd0
aChMZW5ndGhTaXplIHNpemUpIHsgU0VUX1ZBUihtX2JhY2tncm91bmQsIG1fYmFja2dyb3VuZC5t
X3NpemVMZW5ndGgsIFdURk1vdmUoc2l6ZSkpOyB9CiAgICAgCkBAIC0xNDE4LDggKzE0MTksOCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1hc2tCb3hJbWFnZShjb25zdCBOaW5lUGllY2VJbWFn
ZSYgYikgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX21hc2tCb3hJbWFnZSwgYik7
IH0KICAgICB2b2lkIHNldE1hc2tCb3hJbWFnZVNvdXJjZShQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+
IHYpIHsgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbWFza0JveEltYWdlLnNldElt
YWdlKHYpOyB9Ci0gICAgdm9pZCBzZXRNYXNrWFBvc2l0aW9uKExlbmd0aCBsZW5ndGgpIHsgU0VU
X1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwgbV9tYXNrLm1feFBvc2l0aW9uLCBXVEZNb3ZlKGxl
bmd0aCkpOyB9Ci0gICAgdm9pZCBzZXRNYXNrWVBvc2l0aW9uKExlbmd0aCBsZW5ndGgpIHsgU0VU
X1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwgbV9tYXNrLm1feVBvc2l0aW9uLCBXVEZNb3ZlKGxl
bmd0aCkpOyB9CisgICAgdm9pZCBzZXRNYXNrWFBvc2l0aW9uKGNvbnN0IEVkZ2VSZWxhdGl2ZUxl
bmd0aCYgbGVuZ3RoKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fbWFzay5tX3hQ
b3NpdGlvbiwgbGVuZ3RoKTsgfQorICAgIHZvaWQgc2V0TWFza1lQb3NpdGlvbihjb25zdCBFZGdl
UmVsYXRpdmVMZW5ndGgmIGxlbmd0aCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBt
X21hc2subV95UG9zaXRpb24sIGxlbmd0aCk7IH0KICAgICB2b2lkIHNldE1hc2tTaXplKExlbmd0
aFNpemUgc2l6ZSkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX21hc2subV9zaXpl
TGVuZ3RoLCBXVEZNb3ZlKHNpemUpKTsgfQogCiAgICAgdm9pZCBzZXRCb3JkZXJDb2xsYXBzZShF
Qm9yZGVyQ29sbGFwc2UgY29sbGFwc2UpIHsgaW5oZXJpdGVkX2ZsYWdzLl9ib3JkZXJfY29sbGFw
c2UgPSBjb2xsYXBzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5jcHAKaW5kZXggODMxZDE3OTI3YWRmYTBkZGUwNWVl
NGJlMGIyMTdmMjQyOWFkN2RjYy4uZjEzY2Q3YmQ5MTJmNjU3ZTg3MjBlZjk1ZGI3MGNmYjViYmY0
NmQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGVDb25zdGFudHMuY3BwCkBAIC04NSwxMyArODUsMTMgQEAgVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiB0cywgRU1hc2tTb3VyY2VUeXBlIG1hc2tTb3VyY2UpCiAgICAg
cmV0dXJuIHRzOwogfQogCi1UZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBC
YWNrZ3JvdW5kRWRnZU9yaWdpbiBlZGdlKQorVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3Ry
ZWFtJiB0cywgRWRnZSBlZGdlKQogewogICAgIHN3aXRjaCAoZWRnZSkgewotICAgIGNhc2UgVG9w
RWRnZTogdHMgPDwgInRvcCI7IGJyZWFrOwotICAgIGNhc2UgUmlnaHRFZGdlOiB0cyA8PCAicmln
aHQiOyBicmVhazsKLSAgICBjYXNlIEJvdHRvbUVkZ2U6IHRzIDw8ICJib3R0b20iOyBicmVhazsK
LSAgICBjYXNlIExlZnRFZGdlOiB0cyA8PCAibGVmdCI7IGJyZWFrOworICAgIGNhc2UgRWRnZTo6
VG9wOiB0cyA8PCAidG9wIjsgYnJlYWs7CisgICAgY2FzZSBFZGdlOjpSaWdodDogdHMgPDwgInJp
Z2h0IjsgYnJlYWs7CisgICAgY2FzZSBFZGdlOjpCb3R0b206IHRzIDw8ICJib3R0b20iOyBicmVh
azsKKyAgICBjYXNlIEVkZ2U6OkxlZnQ6IHRzIDw8ICJsZWZ0IjsgYnJlYWs7CiAgICAgfQogICAg
IHJldHVybiB0czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKaW5kZXggZmU2ZjYzMGFkNDg5NGExNTk2Y2FlYmU5MTNl
ZThlMzQxNzNjN2RhMS4uNDkyZjc4YzRkMmYxMjlkNGUwNDk0ZjMzZDMzZDJhM2I3ODg5MzBjMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29u
c3RhbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Q29uc3RhbnRzLmgKQEAgLTIzMCw4ICsyMzAsOCBAQCBlbnVtIEVGaWxsTGF5ZXJUeXBlIHsKIC8v
IENTUzMgQmFja2dyb3VuZCBWYWx1ZXMKIGVudW0gRUZpbGxTaXplVHlwZSB7IENvbnRhaW4sIENv
dmVyLCBTaXplTGVuZ3RoLCBTaXplTm9uZSB9OwogCi0vLyBDU1MzIEJhY2tncm91bmQgUG9zaXRp
b24KLWVudW0gQmFja2dyb3VuZEVkZ2VPcmlnaW4geyBUb3BFZGdlLCBSaWdodEVkZ2UsIEJvdHRv
bUVkZ2UsIExlZnRFZGdlIH07CisvLyBDU1MzIDxwb3NpdGlvbj4KK2VudW0gY2xhc3MgRWRnZSB7
IFRvcCwgUmlnaHQsIEJvdHRvbSwgTGVmdCB9OwogCiAvLyBDU1MzIE1hc2sgU291cmNlIFR5cGVz
CiBlbnVtIEVNYXNrU291cmNlVHlwZSB7IE1hc2tBbHBoYSwgTWFza0x1bWluYW5jZSB9OwpAQCAt
Njk0LDcgKzY5NCw3IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIEVGaWxs
QXR0YWNobWVudCk7CiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBFRmlsbEJv
eCk7CiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBFRmlsbFJlcGVhdCk7CiBU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBFTWFza1NvdXJjZVR5cGUpOwotVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgQmFja2dyb3VuZEVkZ2VPcmlnaW4pOwor
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgRWRnZSk7CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU0Y2I1ZDFlNWIyZTAyOWJhNTA1MzU2YTYzNDI0MDcyMzQw
YmJjZTUuLmZhYzA2NmYyOTdhZTcwZTk2ZGIyNDczNDMzYjM0YjNlMDRmMTVlMjUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxNi0wMi0xOSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXBlYXRlZCBiYWNrZ3JvdW5kIGltYWdlcyBoYXZlIHRoZSB3
cm9uZyBwb3NpdGlvbiB3aGVuIHVzaW5nIGJvdHRvbS9yaWdodC1yZWxhdGl2ZSBiYWNrZ3JvdW5k
LXBvc2l0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTQ0NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGZhc3QvY3NzL2JhY2tncm91bmQtcG9zaXRpb24tc2VyaWFsaXplLmh0bWw6IEFkZCBtb3Jl
IHRlc3RzLCB1c2luZyAnYm90dG9tJyBhbmQgJ3JpZ2h0JyBrZXl3b3Jkcy4KKyAgICAgICAgKiBm
YXN0L2ltYWdlcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvaW1hZ2VzL2JhY2tncm91bmQtcG9zaXRpb24uaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2NoZWNrZXIucG5nOiBBZGRlZC4KKwogMjAxNi0w
Mi0xOSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWJh
c2VsaW5lIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaW50ZXJmYWNl
cy5odG1sIGZvciBpb3Mtc2ltdWxhdG9yIGFmdGVyIHIxOTY3OTcKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2JhY2tncm91bmQtcG9zaXRpb24tc2VyaWFsaXplLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLXNlcmlhbGl6ZS5odG1sCmluZGV4
IGQzOTUwZmY2MTlmMGI5MjJhYWIwOWZjYjg5OTYzZmRlOTllYmVlNGMuLjc4NzM3ZDBjOGY0Njg1
NDExOTgyNjU2ODliMTg1YzM5OTYzZDY0M2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2JhY2tncm91bmQtcG9zaXRpb24tc2VyaWFsaXplLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvYmFja2dyb3VuZC1wb3NpdGlvbi1zZXJpYWxpemUuaHRtbApAQCAtMSw3ICsxLDcg
QEAKIDxodG1sPgogPGJvZHk+Ci08ZGl2IGlkPXQ+PC9kaXY+Ci08ZGl2IGlkPWNvbnNvbGU+PC9k
aXY+Cis8ZGl2IGlkPSJ0Ij48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlw
dD4KIGZ1bmN0aW9uIHByaW50KG1lc3NhZ2UsIGNvbG9yKSAKIHsKQEAgLTExMSw2ICsxMTEsMjQg
QEAgc2hvdWxkQmUoInQuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uWCIsICIxMHB4LCAyMHB4LCAz
MHB4Iik7CiBzaG91bGRCZSgidC5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRpb25ZIiwgIjE1cHgsIDI1
cHgsIDM1cHgiKTsKIHNob3VsZEJlKCJ0LnN0eWxlLmNzc1RleHQiLCAiYmFja2dyb3VuZC1wb3Np
dGlvbjogMTBweCAxNXB4LCAyMHB4IDI1cHgsIDMwcHggMzVweDsiKTsKIAorcnVuKCJ0LnNldEF0
dHJpYnV0ZSgnc3R5bGUnLCAnYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIDEwcHggcmlnaHQg
MjBweCcpOyIpOworc2hvdWxkQmUoInQuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uIiwgInJpZ2h0
IDIwcHggYm90dG9tIDEwcHgiKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0
KS5iYWNrZ3JvdW5kUG9zaXRpb24iLCAicmlnaHQgMjBweCBib3R0b20gMTBweCIpOworCitydW4o
InQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgMTBweCBy
aWdodCAyMHB4Jyk7Iik7CitzaG91bGRCZSgidC5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRpb24iLCAi
cmlnaHQgMjBweCB0b3AgMTBweCIpOworc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KHQpLmJhY2tncm91bmRQb3NpdGlvbiIsICJyaWdodCAyMHB4IHRvcCAxMHB4Iik7CisKK3J1bigi
dC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2JhY2tncm91bmQtcG9zaXRpb246IDUwJSBsZWZ0Jyk7
Iik7IC8vIEludmFsaWQgcGVyIHNwZWMuCitzaG91bGRCZSgidC5zdHlsZS5iYWNrZ3JvdW5kUG9z
aXRpb24iLCAiIik7CisKK3J1bigidC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2JhY2tncm91bmQt
cG9zaXRpb24teDogcmlnaHQgMjBweCcpOyIpOyAvLyBUaGlzIGRvZXMgbm90IHBhcnNlLCBidXQg
cGVyaGFwcyBpdCBzaG91bGQuCitzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodCku
YmFja2dyb3VuZFBvc2l0aW9uWCIsICIwJSIpOworCitydW4oInQuc2V0QXR0cmlidXRlKCdzdHls
ZScsICdiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAyMHB4IGJvdHRvbSAxMHB4Jyk7Iik7Citz
aG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuYmFja2dyb3VuZFBvc2l0aW9uIiwg
InJpZ2h0IDIwcHggYm90dG9tIDEwcHgiKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZSh0KS5iYWNrZ3JvdW5kUG9zaXRpb25YIiwgInJpZ2h0IDIwcHgiKTsKKwogcnVuKCJ0LnNl
dEF0dHJpYnV0ZSgnc3R5bGUnLCAnYmFja2dyb3VuZDogdXJsKGFib3V0OmJsYW5rKSA4MCUgODAl
OycpOyIpOwogcnVuKCJ0LnN0eWxlLmJhY2tncm91bmRQb3NpdGlvblkgPSAnNTBweCciKTsKIHBy
aW50KCJzdHlsZS5jc3NUZXh0ID0iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2JhY2tncm91bmQtcG9zaXRpb24tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2JhY2tncm91bmQtcG9zaXRpb24tZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZGU3
NTQ0MTViZGFjYzFkMzZkODRiMzIzMDhiYzEzY2UxOWUyZTkyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvYmFja2dyb3VuZC1wb3NpdGlvbi1leHBlY3RlZC5odG1s
CkBAIC0wLDAgKzEsOTAgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAg
IDxzdHlsZT4KKyAgICAgICAgLmNvbnRhaW5lciB7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7
CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgbWFyZ2luOiAxMHB4Owor
ICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgZ3JheTsKKyAgICAgICAgICAgIGRpc3BsYXk6
IGlubGluZS1ibG9jazsKKyAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAg
fQorICAgICAgICAuYm94IHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAg
ICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAg
ICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9jaGVja2VyLnBuZycpOworICAg
ICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgLnJlcGVhdCAuYm94IHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0
OiByZXBlYXQ7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAg
PGRpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYg
Y2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDAgMCI+PC9kaXY+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAg
PGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMTBweCAyMHB4Ij48
L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1
cHggMjVweCI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1w
b3NpdGlvbjogMjVweCA1cHgiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJh
Y2tncm91bmQtcG9zaXRpb246IDQ1cHggMjVweCI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94
IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAyNXB4Ij48L2Rpdj4KKyAgICAgICAg
PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVwZWF0Ij4KKyAgICAgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9
ImJhY2tncm91bmQtcG9zaXRpb246IDAgMCI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94IiBz
dHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMTBweCAyMHB4Ij48L2Rpdj4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1cHggMjVweCI+PC9kaXY+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAg
ICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMjVweCA1cHgi
PjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246
IDQ1cHggMjVweCI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3Vu
ZC1wb3NpdGlvbjogMTAwJSAyNXB4Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0icmVwZWF0Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRp
b246IDAgMDsgLXdlYmtpdC1jbGlwLXBhdGg6IGluc2V0KDAgNTBweCA1MHB4IDApOyI+PC9kaXY+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMTBweCAy
MHB4OyAtd2Via2l0LWNsaXAtcGF0aDogaW5zZXQoMjBweCA0MHB4IDMwcHggMTBweCk7Ij48L2Rp
dj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1cHgg
MjVweDsgLXdlYmtpdC1jbGlwLXBhdGg6IGluc2V0KDI1cHggNDVweCAyNXB4IDVweCk7Ij48L2Rp
dj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyNXB4
IDVweDsgLXdlYmtpdC1jbGlwLXBhdGg6IGluc2V0KDVweCAyNXB4IDQ1cHggMjVweCk7Ij48L2Rp
dj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0NXB4
IDI1cHg7IC13ZWJraXQtY2xpcC1wYXRoOiBpbnNldCgyNXB4IDVweCAyNXB4IDQ1cHgpOyI+PC9k
aXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMTAw
JSAyNXB4OyAtd2Via2l0LWNsaXAtcGF0aDogaW5zZXQoMjVweCAwIDI1cHggNTBweCk7Ij48L2Rp
dj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2JhY2tncm91bmQtcG9zaXRpb24uaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2JhY2tncm91bmQtcG9zaXRpb24uaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mMmZkNTRlN2EzNmRjYjU0OTg5ZThkMzkxNDViNDgyZWQ1OGY1N2I1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvYmFja2dyb3VuZC1wb3NpdGlvbi5odG1s
CkBAIC0wLDAgKzEsOTAgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAg
IDxzdHlsZT4KKyAgICAgICAgLmNvbnRhaW5lciB7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7
CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgbWFyZ2luOiAxMHB4Owor
ICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgZ3JheTsKKyAgICAgICAgICAgIGRpc3BsYXk6
IGlubGluZS1ibG9jazsKKyAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAg
fQorICAgICAgICAuYm94IHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAg
ICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAg
ICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9jaGVja2VyLnBuZycpOworICAg
ICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgLnJlcGVhdCAuYm94IHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0
OiByZXBlYXQ7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAg
PGRpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYg
Y2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDAgMCI+PC9kaXY+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAg
PGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMTBweCAyMHB4Ij48
L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAx
MCUgNTAlIj48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBv
c2l0aW9uOiB0b3AgMTAlIGxlZnQgNTAlIj48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0
eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxMCUgYm90dG9tIDUwJSI+PC9kaXY+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAg
ICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHJp
Z2h0Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
cmVwZWF0Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDAgMCI+PC9kaXY+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAg
ICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMTBweCAyMHB4
Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9u
OiAxMCUgNTAlIj48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5k
LXBvc2l0aW9uOiB0b3AgMTAlIGxlZnQgNTAlIj48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3gi
IHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxMCUgYm90dG9tIDUwJSI+PC9kaXY+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVy
IHJpZ2h0Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJv
eCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDAgMCI+PC9kaXY+CisgICAgICAgIDwvZGl2
PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFz
cz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMTBweCAyMHB4Ij48L2Rpdj4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMCUgNTAlIj48
L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0
b3AgMTAlIGxlZnQgNTAlIj48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNr
Z3JvdW5kLXBvc2l0aW9uOiByaWdodCAxMCUgYm90dG9tIDUwJSI+PC9kaXY+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBj
bGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHJpZ2h0Ij48L2Rp
dj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jlc291cmNlcy9jaGVja2VyLnBuZyBiL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jlc291cmNlcy9jaGVja2VyLnBuZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
NDc5YjQ3NjA5NjRiMzI0NjllN2RkYTg1N2E3YjNlZmQ5MTA1NTg2CkdJVCBiaW5hcnkgcGF0Y2gK
bGl0ZXJhbCAxNTgKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5NaipfPTF8O1J8SjJuRVRSOEpT
amtjQGs4WipBbXRhXiFKMm5DXjFfCnohcD9lYm1GWTVAUyNMO1hEeFZJezZATDxZXzR9SmlmOUs0
IzRfPmR3JCQ8dD09K0RnaHstSEIzdD1+OT1uKnxqLQpmUys4KGV3TGhLVGslYzJNZj9MbElYZCMy
QXREbm17ci1VV3xmVkNAfAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271851</attachid>
            <date>2016-02-19 22:44:31 -0800</date>
            <delta_ts>2016-02-19 23:24:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154478-20160219224411.patch</filename>
            <type>text/plain</type>
            <size>53098</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2ODIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDA3YTE3NmY1YTk5Mzk2
ODJlZjc3NDFhY2JlZGI3YWFiYTczZTJlMi4uYjkyMTg0M2RkNDViOWJiYWExNTA5ZTkxNWU2ZTA2
NWYyNjg5MjcwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc5IEBACiAyMDE2LTAyLTE5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFJlcGVhdGVkIGJh
Y2tncm91bmQgaW1hZ2VzIGhhdmUgdGhlIHdyb25nIHBvc2l0aW9uIHdoZW4gdXNpbmcgYm90dG9t
L3JpZ2h0LXJlbGF0aXZlIGJhY2tncm91bmQtcG9zaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDQ3OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgRml4IGJhY2tncm91bmQtaW1hZ2Ug
cG9zaXRpb25pbmcgd2hlbiByZXBlYXRpbmcsIGFuZCB1c2luZyByaWdodC9ib3R0b20tcmVsYXRp
dmUgb2Zmc2V0cy4KKyAgICAgICAgCisgICAgICAgIFJhdGhlciB0aGFuIGNhcnJ5aW5nIGFyb3Vu
ZCBhIExlbmd0aCBhbmQgQmFja2dyb3VuZEVkZ2VPcmlnaW4gd2hpY2ggaXMgZXJyb3ItcHJvbmUs
CisgICAgICAgIGdyb3VwIHRoZW0gaW50byBhIEVkZ2VSZWxhdGl2ZUxlbmd0aCwgd2hpY2ggYWxs
b3dzIEZpbGxMYXllciB0byBqdXN0IGhhdmUgRWRnZVJlbGF0aXZlTGVuZ3RocworICAgICAgICBm
b3IgeCBhbmQgeS4gVGhpcyBlbGltaW5hdGVzIHRoZSBjb25mdXNpbmdseS1uYW1lZCBiYWNrZ3Jv
dW5kWC9ZT3JpZ2luIGluIEZpbGxMYXllci4KKyAgICAgICAgCisgICAgICAgIFJlbmFtZSBCYWNr
Z3JvdW5kRWRnZU9yaWdpbiB0byBjbGFzcyBFZGdlLgorICAgICAgICAKKyAgICAgICAgVGhlIHJl
bmRlcmluZyBmaXggaXMgaW4gUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUJhY2tncm91
bmRJbWFnZUdlb21ldHJ5KCksCisgICAgICAgIHdoaWNoIGNvbXB1dGVzIGEgdG9wLWxlZnQgcmVs
YXRpdmUgcG9zaXRpb24gYW5kIHVzZXMgaXQgZm9yIGJvdGggcmVwZWF0aW5nIGFuZAorICAgICAg
ICBub24tcmVwZWF0aW5nIGJhY2tncm91bmRzLgorICAgICAgICAKKyAgICAgICAgQSBtaW5vciBm
aXggaXMgbWFkZSB0byBjb21wdXRlZCBzdHlsZSwgd2hpY2ggbm93IHJldHVybnMgInJpZ2h0IDEw
cHgiIGlmIHRoYXQgd2FzIHNwZWNpZmllZAorICAgICAgICBpbiBiYWNrZ3JvdW5kLXBvc2l0aW9u
LiBIb3dldmVyLCB0aGlzIHdlIHN0aWxsIGRvbid0IHBhcnNlIHZhbHVlcyBvZiB0aGlzIGZvcm0g
aW4gYmFja2dyb3VuZC1wb3NpdGlvbi14L3kuCisKKyAgICAgICAgVGVzdDogZmFzdC9pbWFnZXMv
YmFja2dyb3VuZC1wb3NpdGlvbi5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmFwcGVuZEZpbGxMYXllclBvc2l0aW9uKTogSGVscGVyIGZvciBhcHBlbmRp
bmcgdGhlIGVkZ2UgaWYgc3BlY2lmaWVkLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUG9zaXRp
b25Gb3JMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQb3NpdGlvbkxpc3RGb3JMYXll
cik6CisgICAgICAgIChXZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZh
bHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFZGdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCYWNrZ3JvdW5kRWRnZU9yaWdp
bik6IERlbGV0ZWQuCisgICAgICAgICogY3NzL0NTU1RvU3R5bGVNYXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVG9TdHlsZU1hcDo6bWFwRmlsbFhQb3NpdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpDU1NUb1N0eWxlTWFwOjptYXBGaWxsWVBvc2l0aW9uKToKKyAgICAgICAgKiBwYWdlL2Fu
aW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpibGVu
ZEZ1bmMpOiBOZWVkIHRvIGJsZW5kIEVkZ2VSZWxhdGl2ZUxlbmd0aHMsIHdpdGggYSBGSVhNRSBh
Ym91dCBibGVuZGxpbmcgd2hlbiB0aGUgZWRnZSBpcyBkaWZmZXJlbnQuCisgICAgICAgIChXZWJD
b3JlOjpGaWxsTGF5ZXJzUHJvcGVydHlXcmFwcGVyOjpGaWxsTGF5ZXJzUHJvcGVydHlXcmFwcGVy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6cmVzb2x2ZUVkZ2VSZWxhdGl2ZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlQmFja2dyb3VuZEltYWdlR2VvbWV0cnkp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Om11c3RSZXBhaW50RmlsbExheWVycyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0Vk
Z2VSZWxhdGl2ZUxlbmd0aC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVkZ2VSZWxhdGl2
ZUxlbmd0aDo6RWRnZVJlbGF0aXZlTGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkVkZ2VSZWxh
dGl2ZUxlbmd0aDo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxM
YXllci5jcHA6IFdlIGxvc3Qgc29tZSBiaXRzIGJ1dCBnYWluZWQgc29tZSBwYWRkaW5nLgorICAg
ICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6
OkZpbGxMYXllcik6LgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpvcGVyYXRvcj0pOi4K
KyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6b3BlcmF0b3I9PSk6LgorICAgICAgICAoV2Vi
Q29yZTo6RmlsbExheWVyOjpmaWxsVW5zZXRQcm9wZXJ0aWVzKTouCisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL0ZpbGxMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjp4UG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjp5UG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsbExheWVyOjpzZXRYUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
RmlsbExheWVyOjpzZXRZUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpj
bGVhclhQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OmNsZWFyWVBvc2l0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6aW5pdGlhbEZpbGxYUG9zaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjppbml0aWFsRmlsbFlQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OmJhY2tncm91bmRYT3JpZ2luKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6YmFja2dyb3VuZFlPcmlnaW4pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjppc0JhY2tncm91bmRPcmlnaW5TZXQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpzZXRCYWNrZ3JvdW5kWE9yaWdp
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OnNldEJhY2tncm91bmRZ
T3JpZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisKKzIwMTYtMDItMTkgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgVXNlIG1vcmUgY29uY3JldGUgdHlwZXMg
Zm9yIHBhcnNpbmcgcG9zaXRpb25zCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTQ0ODEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2oKaW5kZXggYTZiMzQ1OTE2MWEzZDI5YjE4ODUwNDFlN2E2ZjMzOWU3
YWY5ZTAxOS4uZWU3MDBkNjgxMDQwZGVhODU3M2I4ODkyMTZkYzc3M2QxMjI1MjI4NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0yMjA2
NSw2ICsyMjA2NSw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5
bGVcQ3Vyc29yRGF0YS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5n
XHN0eWxlXEN1cnNvckxpc3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRl
cmluZ1xzdHlsZVxEYXRhUmVmLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5k
ZXJpbmdcc3R5bGVcRWRnZVJlbGF0aXZlTGVuZ3RoLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcRmlsbExheWVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZENvb3JkaW5hdGUuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkTGVuZ3RoLmgiIC8+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NDljZmZmMjViYzIwZWFkYjczOGQ0ZjQ3Nzk2ZjAxNzE3YWUzMTE1NC4uNjEzOWI2YjJhN2RkZTZl
NGI2ZGZiZDM5NjZmM2UxZjM1M2VlOWZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA1LDYgKzUwNSw3IEBACiAJCTBGNjA1
QUVEMTVGOTQ4NDgwMDRERjBDMCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2MDVBRUIxNUY5NDg0ODAwNERG
MEMwIC8qIFNjcm9sbGluZ0NvbnN0cmFpbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY2MzgzREQxODYxNUIyOTAwM0U1REI1IC8qIFRocmVh
ZGVkU2Nyb2xsaW5nVHJlZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjYzODNEQjE4NjE1QjI5MDAzRTVEQjUgLyogVGhyZWFkZWRTY3JvbGxpbmdU
cmVlLmNwcCAqLzsgfTsKIAkJMEY2MzgzREUxODYxNUIyOTAwM0U1REI1IC8qIFRocmVhZGVkU2Ny
b2xsaW5nVHJlZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY2MzgzREMxODYxNUIyOTAwM0U1REI1IC8qIFRocmVhZGVkU2Nyb2xsaW5nVHJlZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNjYxRUE0
MUM3N0Y0MkYwMDNEMDQ5RiAvKiBFZGdlUmVsYXRpdmVMZW5ndGguaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNjYxRUEzMUM3N0Y0MkYwMDNEMDQ5RiAv
KiBFZGdlUmVsYXRpdmVMZW5ndGguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjZBMTJCRDFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3Zl
cmxheXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY2QTEyQkIxQTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFnZU92ZXJsYXlzLmNwcCAqLzsgfTsK
IAkJMEY2QTEyQkUxQTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFnZU92ZXJsYXlzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZBMTJCQzFBMDA5MjM3
MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjdEMDczMzE4ODRDNTZDMDBCNEFGODYgLyogUGxh
dGZvcm1UZXh0VHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3Mjg0N0UyMTZFQkM1QjAwMDQzQ0ZBNCAvKiBQbGF0Zm9ybVRleHRUcmFjay5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC03OTAyLDYg
Kzc5MDMsNyBAQAogCQkwRjYwNUFFQjE1Rjk0ODQ4MDA0REYwQzAgLyogU2Nyb2xsaW5nQ29uc3Ry
YWludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsaW5nQ29uc3Ry
YWludHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2MzgzREIxODYxNUIyOTAw
M0U1REI1IC8qIFRocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBUaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjYzODNEQzE4NjE1QjI5MDAzRTVEQjUgLyogVGhyZWFkZWRTY3Jv
bGxpbmdUcmVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRocmVhZGVkU2Ny
b2xsaW5nVHJlZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjY2MUVBMzFDNzdG
NDJGMDAzRDA0OUYgLyogRWRnZVJlbGF0aXZlTGVuZ3RoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEVkZ2VSZWxhdGl2ZUxlbmd0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjZBMTJCQjFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVidWdQYWdlT3ZlcmxheXMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjZBMTJCQzFBMDA5MjM3MDBDNkRF
NzIgLyogRGVidWdQYWdlT3ZlcmxheXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGVidWdQYWdlT3ZlcmxheXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5
N0E2NTcxNTVEQTgxRTAwRkFERDRDIC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvcklPUy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERpc3BsYXlSZWZyZXNoTW9uaXRv
cklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyNTEyLDYgKzIyNTE0LDcg
QEAKIAkJCQlCQzIyNzJBMTBFODJFODdDMDBFN0Y5NzUgLyogQ3Vyc29yRGF0YS5oICovLAogCQkJ
CUJDMjI3MkFDMEU4MkU4RjMwMEU3Rjk3NSAvKiBDdXJzb3JMaXN0LmggKi8sCiAJCQkJQkMyMjc0
NkUwRTgzNjY0NTAwRTdGOTc1IC8qIERhdGFSZWYuaCAqLywKKwkJCQkwRjY2MUVBMzFDNzdGNDJG
MDAzRDA0OUYgLyogRWRnZVJlbGF0aXZlTGVuZ3RoLmggKi8sCiAJCQkJQkM1RUI2OUMwRTgxREFF
QjAwQjI1OTY1IC8qIEZpbGxMYXllci5jcHAgKi8sCiAJCQkJQkM1RUI2OUQwRTgxREFFQjAwQjI1
OTY1IC8qIEZpbGxMYXllci5oICovLAogCQkJCUNEM0UyNTFCMTgwNDZCMDYwMEUyN0Y1NiAvKiBH
cmlkQ29vcmRpbmF0ZS5oICovLApAQCAtMjU5ODAsNiArMjU5ODMsNyBAQAogCQkJCUIyQzNEQTY4
MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FzY2FkZUZvbnRzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMkFGRkM3RTBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNjYwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnREZXNjcmlw
dGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2NjFFQTQxQzc3RjQyRjAwM0QwNDlGIC8qIEVk
Z2VSZWxhdGl2ZUxlbmd0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE2RTlGQzgxM0MxN0Q1NzAw
NDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTQwOUVC
REI2MTZCN0VFQTMwMENCQTNGQyAvKiBGb250TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
ODQ1NjgwODEyQjkwREE2MDA5NjBBOUYgLyogRm9udE1ldHJpY3MuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cAppbmRleCA3YWVhNmFmYjMyOTc5MzEzYzcyNWNkNWM1MTBjZTE1NmI0ODkwNjE3Li5mNGUzYzU5
ZjVlYjhiZmQ3NzcxYzAxNGU3ZDgxNjJlMDZlMGYyN2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtNjg0LDE5ICs2ODQs
MzIgQEAgc3RhdGljIFJlZjxDU1NWYWx1ZT4gdmFsdWVGb3JSZWZsZWN0aW9uKGNvbnN0IFN0eWxl
UmVmbGVjdGlvbiogcmVmbGVjdGlvbiwgY29uc3QKICAgICByZXR1cm4gQ1NTUmVmbGVjdFZhbHVl
OjpjcmVhdGUoZGlyZWN0aW9uLnJlbGVhc2UoKSwgb2Zmc2V0LnJlbGVhc2UoKSwgdmFsdWVGb3JO
aW5lUGllY2VJbWFnZShyZWZsZWN0aW9uLT5tYXNrKCkpKTsKIH0KIAotc3RhdGljIFJlZjxDU1NW
YWx1ZUxpc3Q+IGNyZWF0ZVBvc2l0aW9uTGlzdEZvckxheWVyKENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJRCwgY29uc3QgRmlsbExheWVyKiBsYXllciwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQor
c3RhdGljIHZvaWQgYXBwZW5kRmlsbExheWVyUG9zaXRpb24oQ1NTVmFsdWVMaXN0JiBsaXN0LCBj
b25zdCBFZGdlUmVsYXRpdmVMZW5ndGgmIGxlbmd0aCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
KQogewotICAgIGF1dG8gcG9zaXRpb25MaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNl
cGFyYXRlZCgpOwotICAgIGlmIChsYXllci0+aXNCYWNrZ3JvdW5kT3JpZ2luU2V0KCkpIHsKLSAg
ICAgICAgQVNTRVJUX1VOVVNFRChwcm9wZXJ0eUlELCBwcm9wZXJ0eUlEID09IENTU1Byb3BlcnR5
QmFja2dyb3VuZFBvc2l0aW9uIHx8IHByb3BlcnR5SUQgPT0gQ1NTUHJvcGVydHlXZWJraXRNYXNr
UG9zaXRpb24pOwotICAgICAgICBwb3NpdGlvbkxpc3QuZ2V0KCkuYXBwZW5kKENTU1ZhbHVlUG9v
bDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUobGF5ZXItPmJhY2tncm91bmRYT3JpZ2luKCkpKTsK
LSAgICB9Ci0gICAgcG9zaXRpb25MaXN0LmdldCgpLmFwcGVuZCh6b29tQWRqdXN0ZWRQaXhlbFZh
bHVlRm9yTGVuZ3RoKGxheWVyLT54UG9zaXRpb24oKSwgc3R5bGUpKTsKLSAgICBpZiAobGF5ZXIt
PmlzQmFja2dyb3VuZE9yaWdpblNldCgpKSB7Ci0gICAgICAgIEFTU0VSVChwcm9wZXJ0eUlEID09
IENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uIHx8IHByb3BlcnR5SUQgPT0gQ1NTUHJvcGVy
dHlXZWJraXRNYXNrUG9zaXRpb24pOwotICAgICAgICBwb3NpdGlvbkxpc3QuZ2V0KCkuYXBwZW5k
KENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUobGF5ZXItPmJhY2tncm91bmRZ
T3JpZ2luKCkpKTsKKyAgICBpZiAobGVuZ3RoLmVkZ2VTcGVjaWZpZWQpCisgICAgICAgIGxpc3Qu
YXBwZW5kKENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUobGVuZ3RoLmVkZ2Up
KTsKKworICAgIGxpc3QuYXBwZW5kKHpvb21BZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgobGVu
Z3RoLmxlbmd0aCwgc3R5bGUpKTsKK30KKworc3RhdGljIFJlZjxDU1NWYWx1ZT4gY3JlYXRlUG9z
aXRpb25Gb3JMYXllcihjb25zdCBFZGdlUmVsYXRpdmVMZW5ndGgmIGxlbmd0aCwgY29uc3QgUmVu
ZGVyU3R5bGUmIHN0eWxlKQoreworICAgIGlmIChsZW5ndGguZWRnZVNwZWNpZmllZCkgeworICAg
ICAgICBhdXRvIGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7Cisg
ICAgICAgIGFwcGVuZEZpbGxMYXllclBvc2l0aW9uKGxpc3QsIGxlbmd0aCwgc3R5bGUpOworICAg
ICAgICByZXR1cm4gV1RGTW92ZShsaXN0KTsKICAgICB9Ci0gICAgcG9zaXRpb25MaXN0LmdldCgp
LmFwcGVuZCh6b29tQWRqdXN0ZWRQaXhlbFZhbHVlRm9yTGVuZ3RoKGxheWVyLT55UG9zaXRpb24o
KSwgc3R5bGUpKTsKKworICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0
ZVZhbHVlKGxlbmd0aC5sZW5ndGgpOworfQorCitzdGF0aWMgUmVmPENTU1ZhbHVlTGlzdD4gY3Jl
YXRlUG9zaXRpb25MaXN0Rm9yTGF5ZXIoY29uc3QgRmlsbExheWVyKiBsYXllciwgY29uc3QgUmVu
ZGVyU3R5bGUmIHN0eWxlKQoreworICAgIGF1dG8gcG9zaXRpb25MaXN0ID0gQ1NTVmFsdWVMaXN0
OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOworCisgICAgYXBwZW5kRmlsbExheWVyUG9zaXRpb24o
cG9zaXRpb25MaXN0LCBsYXllci0+eFBvc2l0aW9uKCksIHN0eWxlKTsKKyAgICBhcHBlbmRGaWxs
TGF5ZXJQb3NpdGlvbihwb3NpdGlvbkxpc3QsIGxheWVyLT55UG9zaXRpb24oKSwgc3R5bGUpOwor
CiAgICAgcmV0dXJuIHBvc2l0aW9uTGlzdDsKIH0KIApAQCAtMjUzOSwyMiArMjU1MiwyMiBAQCBS
ZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnByb3BlcnR5VmFsdWUoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eUlELAogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFz
a1Bvc2l0aW9uOiB7CiAgICAgICAgICAgICBjb25zdCBGaWxsTGF5ZXIqIGxheWVycyA9IHByb3Bl
cnR5SUQgPT0gQ1NTUHJvcGVydHlXZWJraXRNYXNrUG9zaXRpb24gPyBzdHlsZS0+bWFza0xheWVy
cygpIDogc3R5bGUtPmJhY2tncm91bmRMYXllcnMoKTsKICAgICAgICAgICAgIGlmICghbGF5ZXJz
LT5uZXh0KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVBvc2l0aW9uTGlzdEZvckxh
eWVyKHByb3BlcnR5SUQsIGxheWVycywgKnN0eWxlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
Y3JlYXRlUG9zaXRpb25MaXN0Rm9yTGF5ZXIobGF5ZXJzLCAqc3R5bGUpOwogCiAgICAgICAgICAg
ICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVDb21tYVNl
cGFyYXRlZCgpOwogICAgICAgICAgICAgZm9yIChjb25zdCBGaWxsTGF5ZXIqIGN1cnJMYXllciA9
IGxheWVyczsgY3VyckxheWVyOyBjdXJyTGF5ZXIgPSBjdXJyTGF5ZXItPm5leHQoKSkKLSAgICAg
ICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3JlYXRlUG9zaXRpb25MaXN0Rm9yTGF5ZXIocHJvcGVy
dHlJRCwgY3VyckxheWVyLCAqc3R5bGUpKTsKKyAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQo
Y3JlYXRlUG9zaXRpb25MaXN0Rm9yTGF5ZXIoY3VyckxheWVyLCAqc3R5bGUpKTsKICAgICAgICAg
ICAgIHJldHVybiBsaXN0OwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNr
Z3JvdW5kUG9zaXRpb25YOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0
aW9uWDogewogICAgICAgICAgICAgY29uc3QgRmlsbExheWVyKiBsYXllcnMgPSBwcm9wZXJ0eUlE
ID09IENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uWCA/IHN0eWxlLT5tYXNrTGF5ZXJzKCkg
OiBzdHlsZS0+YmFja2dyb3VuZExheWVycygpOwogICAgICAgICAgICAgaWYgKCFsYXllcnMtPm5l
eHQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKGxh
eWVycy0+eFBvc2l0aW9uKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVQb3NpdGlv
bkZvckxheWVyKGxheWVycy0+eFBvc2l0aW9uKCksICpzdHlsZSk7CiAKICAgICAgICAgICAgIFJl
ZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJh
dGVkKCk7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IEZpbGxMYXllciogY3VyckxheWVyID0gbGF5
ZXJzOyBjdXJyTGF5ZXI7IGN1cnJMYXllciA9IGN1cnJMYXllci0+bmV4dCgpKQotICAgICAgICAg
ICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoY3VyckxheWVyLT54
UG9zaXRpb24oKSkpOworICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2wu
Y3JlYXRlVmFsdWUoY3VyckxheWVyLT54UG9zaXRpb24oKS5sZW5ndGgpKTsKIAogICAgICAgICAg
ICAgcmV0dXJuIGxpc3Q7CiAgICAgICAgIH0KQEAgLTI1NjIsMTEgKzI1NzUsMTEgQEAgUmVmUHRy
PENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZhbHVlKENTU1Byb3Bl
cnR5SUQgcHJvcGVydHlJRCwKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tQb3Np
dGlvblk6IHsKICAgICAgICAgICAgIGNvbnN0IEZpbGxMYXllciogbGF5ZXJzID0gcHJvcGVydHlJ
RCA9PSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlvblkgPyBzdHlsZS0+bWFza0xheWVycygp
IDogc3R5bGUtPmJhY2tncm91bmRMYXllcnMoKTsKICAgICAgICAgICAgIGlmICghbGF5ZXJzLT5u
ZXh0KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShs
YXllcnMtPnlQb3NpdGlvbigpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29s
LmNyZWF0ZVZhbHVlKGxheWVycy0+eVBvc2l0aW9uKCkubGVuZ3RoKTsKIAogICAgICAgICAgICAg
UmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlQ29tbWFTZXBh
cmF0ZWQoKTsKICAgICAgICAgICAgIGZvciAoY29uc3QgRmlsbExheWVyKiBjdXJyTGF5ZXIgPSBs
YXllcnM7IGN1cnJMYXllcjsgY3VyckxheWVyID0gY3VyckxheWVyLT5uZXh0KCkpCi0gICAgICAg
ICAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShjdXJyTGF5ZXIt
PnlQb3NpdGlvbigpKSk7CisgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9v
bC5jcmVhdGVWYWx1ZShjdXJyTGF5ZXItPnlQb3NpdGlvbigpLmxlbmd0aCkpOwogCiAgICAgICAg
ICAgICByZXR1cm4gbGlzdDsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5kZXggYTlhYWE5NGM3OTg0YzUyZmVkMjljMjg0ZDFm
ZGZiYzk1NjNiZmQ4Mi4uZjdlYmJjZDc2MDA4ZmE5YmZhMDlkNjU1YzliNDA0NGQwMzRhN2U5NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3Mu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBA
IC05MDIsNDUgKzkwMiw0NSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgRUJveERlY29yYXRpb25CcmVhaygpIGNvbnN0CiB9CiAjZW5kaWYKIAotdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJhY2tncm91
bmRFZGdlT3JpZ2luIGUpCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoRWRnZSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7
CiAgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUp
IHsKLSAgICBjYXNlIFRvcEVkZ2U6CisgICAgY2FzZSBFZGdlOjpUb3A6CiAgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlVG9wOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFJpZ2h0
RWRnZToKKyAgICBjYXNlIEVkZ2U6OlJpZ2h0OgogICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVJpZ2h0OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEJvdHRvbUVkZ2U6CisgICAg
Y2FzZSBFZGdlOjpCb3R0b206CiAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm90
dG9tOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIExlZnRFZGdlOgorICAgIGNhc2UgRWRnZTo6
TGVmdDoKICAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0OwogICAgICAgICBi
cmVhazsKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBCYWNrZ3JvdW5kRWRnZU9yaWdpbigpIGNvbnN0Cit0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRWRnZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlz
VmFsdWVJRCgpKTsKIAogICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZVRvcDoKLSAgICAgICAgcmV0dXJuIFRvcEVkZ2U7CisgICAgICAgIHJldHVybiBFZGdl
OjpUb3A7CiAgICAgY2FzZSBDU1NWYWx1ZVJpZ2h0OgotICAgICAgICByZXR1cm4gUmlnaHRFZGdl
OworICAgICAgICByZXR1cm4gRWRnZTo6UmlnaHQ7CiAgICAgY2FzZSBDU1NWYWx1ZUJvdHRvbToK
LSAgICAgICAgcmV0dXJuIEJvdHRvbUVkZ2U7CisgICAgICAgIHJldHVybiBFZGdlOjpCb3R0b207
CiAgICAgY2FzZSBDU1NWYWx1ZUxlZnQ6Ci0gICAgICAgIHJldHVybiBMZWZ0RWRnZTsKKyAgICAg
ICAgcmV0dXJuIEVkZ2U6OkxlZnQ7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAg
fQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFRvcEVkZ2U7CisgICAg
cmV0dXJuIEVkZ2U6OlRvcDsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVCb3hTaXppbmcgZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0
eWxlTWFwLmNwcAppbmRleCA5NjFlYTEwNTdkOTBiNWI0MDlmMTA0MDU4NmYxZGQzNGZkMWVjNDYz
Li45NTU1Yzc5N2U3NDBiYTUwZmJkZWRkZDIzOTJkMzU4NGI5NmM0YTlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1RvU3R5bGVNYXAuY3BwCkBAIC0yMzUsOSArMjM1LDExIEBAIHZvaWQgQ1NTVG9TdHls
ZU1hcDo6bWFwRmlsbFhQb3NpdGlvbihDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIEZpbGxMYXll
ciYgbGF5ZXIsCiAKICAgICBhdXRvKiBwcmltaXRpdmVWYWx1ZSA9ICZkb3duY2FzdDxDU1NQcmlt
aXRpdmVWYWx1ZT4odmFsdWUpOwogICAgIFBhaXIqIHBhaXIgPSBwcmltaXRpdmVWYWx1ZS0+Z2V0
UGFpclZhbHVlKCk7CisgICAgRWRnZSBlZGdlID0gRWRnZTo6TGVmdDsKICAgICBpZiAocGFpcikg
ewogICAgICAgICBBU1NFUlRfVU5VU0VEKHByb3BlcnR5SUQsIHByb3BlcnR5SUQgPT0gQ1NTUHJv
cGVydHlCYWNrZ3JvdW5kUG9zaXRpb25YIHx8IHByb3BlcnR5SUQgPT0gQ1NTUHJvcGVydHlXZWJr
aXRNYXNrUG9zaXRpb25YKTsKICAgICAgICAgcHJpbWl0aXZlVmFsdWUgPSBwYWlyLT5zZWNvbmQo
KTsKKyAgICAgICAgZWRnZSA9ICpwYWlyLT5maXJzdCgpOwogICAgIH0KIAogICAgIExlbmd0aCBs
ZW5ndGg7CkBAIC0yNTAsOSArMjUyLDcgQEAgdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBGaWxsWFBv
c2l0aW9uKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgRmlsbExheWVyJiBsYXllciwKICAgICBl
bHNlCiAgICAgICAgIHJldHVybjsKIAotICAgIGxheWVyLnNldFhQb3NpdGlvbihsZW5ndGgpOwot
ICAgIGlmIChwYWlyKQotICAgICAgICBsYXllci5zZXRCYWNrZ3JvdW5kWE9yaWdpbigqcGFpci0+
Zmlyc3QoKSk7CisgICAgbGF5ZXIuc2V0WFBvc2l0aW9uKEVkZ2VSZWxhdGl2ZUxlbmd0aChsZW5n
dGgsIGVkZ2UsIHBhaXIpKTsKIH0KIAogdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBGaWxsWVBvc2l0
aW9uKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgRmlsbExheWVyJiBsYXllciwgY29uc3QgQ1NT
VmFsdWUmIHZhbHVlKQpAQCAtMjY3LDkgKzI2NywxMSBAQCB2b2lkIENTU1RvU3R5bGVNYXA6Om1h
cEZpbGxZUG9zaXRpb24oQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBGaWxsTGF5ZXImIGxheWVy
LAogCiAgICAgYXV0byogcHJpbWl0aXZlVmFsdWUgPSAmZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFs
dWU+KHZhbHVlKTsKICAgICBQYWlyKiBwYWlyID0gcHJpbWl0aXZlVmFsdWUtPmdldFBhaXJWYWx1
ZSgpOworICAgIEVkZ2UgZWRnZSA9IEVkZ2U6OlRvcDsKICAgICBpZiAocGFpcikgewogICAgICAg
ICBBU1NFUlRfVU5VU0VEKHByb3BlcnR5SUQsIHByb3BlcnR5SUQgPT0gQ1NTUHJvcGVydHlCYWNr
Z3JvdW5kUG9zaXRpb25ZIHx8IHByb3BlcnR5SUQgPT0gQ1NTUHJvcGVydHlXZWJraXRNYXNrUG9z
aXRpb25ZKTsKICAgICAgICAgcHJpbWl0aXZlVmFsdWUgPSBwYWlyLT5zZWNvbmQoKTsKKyAgICAg
ICAgZWRnZSA9ICpwYWlyLT5maXJzdCgpOwogICAgIH0KIAogICAgIExlbmd0aCBsZW5ndGg7CkBA
IC0yODIsOSArMjg0LDcgQEAgdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBGaWxsWVBvc2l0aW9uKENT
U1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgRmlsbExheWVyJiBsYXllciwKICAgICBlbHNlCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGxheWVyLnNldFlQb3NpdGlvbihsZW5ndGgpOwotICAgIGlmIChw
YWlyKQotICAgICAgICBsYXllci5zZXRCYWNrZ3JvdW5kWU9yaWdpbigqcGFpci0+Zmlyc3QoKSk7
CisgICAgbGF5ZXIuc2V0WVBvc2l0aW9uKEVkZ2VSZWxhdGl2ZUxlbmd0aChsZW5ndGgsIGVkZ2Us
IHBhaXIpKTsKIH0KIAogdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBGaWxsTWFza1NvdXJjZVR5cGUo
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBGaWxsTGF5ZXImIGxheWVyLCBjb25zdCBDU1NWYWx1
ZSYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQ
cm9wZXJ0eUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQ
cm9wZXJ0eUFuaW1hdGlvbi5jcHAKaW5kZXggNDc0NTFjNWQ3ODdlOWUwZDBmMGIxZjdlOGFmMjBl
ODFiMWZiZDljYS4uOGRjODQwMDdhZDdhMzk4NDIwMmUxMWViNjhkMDU2OTMyYzRiMzg4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5p
bWF0aW9uLmNwcApAQCAtOTEsNiArOTEsMTUgQEAgc3RhdGljIGlubGluZSBMZW5ndGhTaXplIGJs
ZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBjb25zdCBMZW5ndGhTaXplJgogICAg
ICAgICAgICAgICAgICAgICAgIGJsZW5kRnVuYyhhbmltLCBmcm9tLmhlaWdodCgpLCB0by5oZWln
aHQoKSwgcHJvZ3Jlc3MpKTsKIH0KIAorc3RhdGljIGlubGluZSBFZGdlUmVsYXRpdmVMZW5ndGgg
YmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIGNvbnN0IEVkZ2VSZWxhdGl2ZUxl
bmd0aCYgZnJvbSwgY29uc3QgRWRnZVJlbGF0aXZlTGVuZ3RoJiB0bywgZG91YmxlIHByb2dyZXNz
KQoreworICAgIC8vIEZJWE1FOiBJZiB3ZSByZXByZXNlbnRlZCBlZGdlLXJlbGF0aXZlIGxlbmd0
aHMgYXMgY2FsYyBleHByZXNzaW9ucywgd2UgY291bGQgYW5pbWF0ZSB0aGVtLgorICAgIGlmIChm
cm9tLmVkZ2UgIT0gdG8uZWRnZSkKKyAgICAgICAgcmV0dXJuIHRvOworCisgICAgcmV0dXJuIEVk
Z2VSZWxhdGl2ZUxlbmd0aChibGVuZEZ1bmMoYW5pbSwgZnJvbS5sZW5ndGgsIHRvLmxlbmd0aCwg
cHJvZ3Jlc3MpLCB0by5lZGdlLCB0by5lZGdlU3BlY2lmaWVkKTsKK30KKwogc3RhdGljIGlubGlu
ZSBTaGFkb3dTdHlsZSBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgU2hhZG93
U3R5bGUgZnJvbSwgU2hhZG93U3R5bGUgdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBpZiAo
ZnJvbSA9PSB0bykKQEAgLTk3NiwxMSArOTg1LDExIEBAIHB1YmxpYzoKICAgICAgICAgc3dpdGNo
IChwcm9wKSB7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUG9zaXRpb25YOgog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uWDoKLSAgICAgICAgICAg
IG1fZmlsbExheWVyUHJvcGVydHlXcmFwcGVyID0gc3RkOjptYWtlX3VuaXF1ZTxGaWxsTGF5ZXJQ
cm9wZXJ0eVdyYXBwZXI8TGVuZ3RoPj4oJkZpbGxMYXllcjo6eFBvc2l0aW9uLCAmRmlsbExheWVy
OjpzZXRYUG9zaXRpb24pOworICAgICAgICAgICAgbV9maWxsTGF5ZXJQcm9wZXJ0eVdyYXBwZXIg
PSBzdGQ6Om1ha2VfdW5pcXVlPEZpbGxMYXllclByb3BlcnR5V3JhcHBlcjxFZGdlUmVsYXRpdmVM
ZW5ndGg+PigmRmlsbExheWVyOjp4UG9zaXRpb24sICZGaWxsTGF5ZXI6OnNldFhQb3NpdGlvbik7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRQ
b3NpdGlvblk6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUG9zaXRpb25ZOgot
ICAgICAgICAgICAgbV9maWxsTGF5ZXJQcm9wZXJ0eVdyYXBwZXIgPSBzdGQ6Om1ha2VfdW5pcXVl
PEZpbGxMYXllclByb3BlcnR5V3JhcHBlcjxMZW5ndGg+PigmRmlsbExheWVyOjp5UG9zaXRpb24s
ICZGaWxsTGF5ZXI6OnNldFlQb3NpdGlvbik7CisgICAgICAgICAgICBtX2ZpbGxMYXllclByb3Bl
cnR5V3JhcHBlciA9IHN0ZDo6bWFrZV91bmlxdWU8RmlsbExheWVyUHJvcGVydHlXcmFwcGVyPEVk
Z2VSZWxhdGl2ZUxlbmd0aD4+KCZGaWxsTGF5ZXI6OnlQb3NpdGlvbiwgJkZpbGxMYXllcjo6c2V0
WVBvc2l0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5
QmFja2dyb3VuZFNpemU6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCYWNrZ3JvdW5k
U2l6ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2Rl
bE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuY3BwCmluZGV4IDc0N2Y2ZmZlNzk3OTcyMzJmNmZkNDQwNjU2M2VjZTUxZDU1OGYwNDcuLjdj
MWVlNzk4ZTdlNjg3MmYzNWM0MTdlMWRlYzEyYWIzY2Q5YTE1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtMTA0NCw2ICsx
MDQ0LDIxIEBAIHN0YXRpYyBpbmxpbmUgTGF5b3V0VW5pdCBnZXRTcGFjZShMYXlvdXRVbml0IGFy
ZWFTaXplLCBMYXlvdXRVbml0IHRpbGVTaXplKQogICAgIHJldHVybiBzcGFjZTsKIH0KIAorc3Rh
dGljIExheW91dFVuaXQgcmVzb2x2ZUVkZ2VSZWxhdGl2ZUxlbmd0aChjb25zdCBFZGdlUmVsYXRp
dmVMZW5ndGgmIGxlbmd0aCwgTGF5b3V0VW5pdCBhdmFpbGFibGVTcGFjZSwgY29uc3QgTGF5b3V0
U2l6ZSYgYXJlYVNpemUsIGNvbnN0IExheW91dFNpemUmIHRpbGVTaXplKQoreworICAgIExheW91
dFVuaXQgcmVzdWx0ID0gbWluaW11bVZhbHVlRm9yTGVuZ3RoKGxlbmd0aC5sZW5ndGgsIGF2YWls
YWJsZVNwYWNlLCBmYWxzZSk7CisgICAgCisgICAgaWYgKGxlbmd0aC5lZGdlU3BlY2lmaWVkKSB7
CisgICAgICAgIGlmIChsZW5ndGguZWRnZSA9PSBFZGdlOjpSaWdodCkKKyAgICAgICAgICAgIHJl
dHVybiBhcmVhU2l6ZS53aWR0aCgpIC0gdGlsZVNpemUud2lkdGgoKSAtIHJlc3VsdDsKKyAgICAg
ICAgCisgICAgICAgIGlmIChsZW5ndGguZWRnZSA9PSBFZGdlOjpCb3R0b20pCisgICAgICAgICAg
ICByZXR1cm4gYXJlYVNpemUuaGVpZ2h0KCkgLSB0aWxlU2l6ZS5oZWlnaHQoKSAtIHJlc3VsdDsK
KyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRy
eSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlQmFja2dyb3VuZEltYWdlR2VvbWV0cnko
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcGFpbnRDb250YWluZXIsIGNvbnN0IEZpbGxM
YXllciYgZmlsbExheWVyLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsCiAgICAgY29u
c3QgTGF5b3V0UmVjdCYgYm9yZGVyQm94UmVjdCwgUmVuZGVyRWxlbWVudCogYmFja2dyb3VuZE9i
amVjdCkgY29uc3QKIHsKQEAgLTExNDcsNyArMTE2Miw3IEBAIEJhY2tncm91bmRJbWFnZUdlb21l
dHJ5IFJlbmRlckJveE1vZGVsT2JqZWN0OjpjYWxjdWxhdGVCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRy
eShjCiAgICAgTGF5b3V0U2l6ZSBzcGFjZVNpemU7CiAgICAgTGF5b3V0U2l6ZSBwaGFzZTsKICAg
ICBMYXlvdXRTaXplIG5vUmVwZWF0OwotICAgIExheW91dFVuaXQgY29tcHV0ZWRYUG9zaXRpb24g
PSBtaW5pbXVtVmFsdWVGb3JMZW5ndGgoZmlsbExheWVyLnhQb3NpdGlvbigpLCBhdmFpbGFibGVX
aWR0aCwgZmFsc2UpOworICAgIExheW91dFVuaXQgY29tcHV0ZWRYUG9zaXRpb24gPSByZXNvbHZl
RWRnZVJlbGF0aXZlTGVuZ3RoKGZpbGxMYXllci54UG9zaXRpb24oKSwgYXZhaWxhYmxlV2lkdGgs
IHBvc2l0aW9uaW5nQXJlYVNpemUsIHRpbGVTaXplKTsKICAgICBpZiAoYmFja2dyb3VuZFJlcGVh
dFggPT0gUm91bmRGaWxsICYmIHBvc2l0aW9uaW5nQXJlYVNpemUud2lkdGgoKSA+IDAgJiYgdGls
ZVNpemUud2lkdGgoKSA+IDApIHsKICAgICAgICAgaW50IG51bVRpbGVzID0gc3RkOjptYXgoMSwg
cm91bmRUb0ludChwb3NpdGlvbmluZ0FyZWFTaXplLndpZHRoKCkgLyB0aWxlU2l6ZS53aWR0aCgp
KSk7CiAgICAgICAgIGlmIChmaWxsTGF5ZXIuc2l6ZSgpLnNpemUuaGVpZ2h0KCkuaXNBdXRvKCkg
JiYgYmFja2dyb3VuZFJlcGVhdFkgIT0gUm91bmRGaWxsKQpAQCAtMTE1Nyw3ICsxMTcyLDcgQEAg
QmFja2dyb3VuZEltYWdlR2VvbWV0cnkgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUJh
Y2tncm91bmRJbWFnZUdlb21ldHJ5KGMKICAgICAgICAgcGhhc2Uuc2V0V2lkdGgodGlsZVNpemUu
d2lkdGgoKSA/IHRpbGVTaXplLndpZHRoKCkgLSBmbW9kZigoY29tcHV0ZWRYUG9zaXRpb24gKyBs
ZWZ0KSwgdGlsZVNpemUud2lkdGgoKSkgOiAwKTsKICAgICB9CiAKLSAgICBMYXlvdXRVbml0IGNv
bXB1dGVkWVBvc2l0aW9uID0gbWluaW11bVZhbHVlRm9yTGVuZ3RoKGZpbGxMYXllci55UG9zaXRp
b24oKSwgYXZhaWxhYmxlSGVpZ2h0LCBmYWxzZSk7CisgICAgTGF5b3V0VW5pdCBjb21wdXRlZFlQ
b3NpdGlvbiA9IHJlc29sdmVFZGdlUmVsYXRpdmVMZW5ndGgoZmlsbExheWVyLnlQb3NpdGlvbigp
LCBhdmFpbGFibGVIZWlnaHQsIHBvc2l0aW9uaW5nQXJlYVNpemUsIHRpbGVTaXplKTsKICAgICBp
ZiAoYmFja2dyb3VuZFJlcGVhdFkgPT0gUm91bmRGaWxsICYmIHBvc2l0aW9uaW5nQXJlYVNpemUu
aGVpZ2h0KCkgPiAwICYmIHRpbGVTaXplLmhlaWdodCgpID4gMCkgewogICAgICAgICBpbnQgbnVt
VGlsZXMgPSBzdGQ6Om1heCgxLCByb3VuZFRvSW50KHBvc2l0aW9uaW5nQXJlYVNpemUuaGVpZ2h0
KCkgLyB0aWxlU2l6ZS5oZWlnaHQoKSkpOwogICAgICAgICBpZiAoZmlsbExheWVyLnNpemUoKS5z
aXplLndpZHRoKCkuaXNBdXRvKCkgJiYgYmFja2dyb3VuZFJlcGVhdFggIT0gUm91bmRGaWxsKQpA
QCAtMTE4MSw4ICsxMTk2LDkgQEAgQmFja2dyb3VuZEltYWdlR2VvbWV0cnkgUmVuZGVyQm94TW9k
ZWxPYmplY3Q6OmNhbGN1bGF0ZUJhY2tncm91bmRJbWFnZUdlb21ldHJ5KGMKICAgICAgICAgfSBl
bHNlCiAgICAgICAgICAgICBiYWNrZ3JvdW5kUmVwZWF0WCA9IE5vUmVwZWF0RmlsbDsKICAgICB9
CisKICAgICBpZiAoYmFja2dyb3VuZFJlcGVhdFggPT0gTm9SZXBlYXRGaWxsKSB7Ci0gICAgICAg
IExheW91dFVuaXQgeE9mZnNldCA9IGxlZnQgKyAoZmlsbExheWVyLmJhY2tncm91bmRYT3JpZ2lu
KCkgPT0gUmlnaHRFZGdlID8gYXZhaWxhYmxlV2lkdGggLSBjb21wdXRlZFhQb3NpdGlvbiA6IGNv
bXB1dGVkWFBvc2l0aW9uKTsKKyAgICAgICAgTGF5b3V0VW5pdCB4T2Zmc2V0ID0gbGVmdCArIGNv
bXB1dGVkWFBvc2l0aW9uOwogICAgICAgICBpZiAoeE9mZnNldCA+IDApCiAgICAgICAgICAgICBk
ZXN0aW5hdGlvblJlY3QubW92ZSh4T2Zmc2V0LCAwKTsKICAgICAgICAgeE9mZnNldCA9IHN0ZDo6
bWluPExheW91dFVuaXQ+KHhPZmZzZXQsIDApOwpAQCAtMTIwNiw3ICsxMjIyLDcgQEAgQmFja2dy
b3VuZEltYWdlR2VvbWV0cnkgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUJhY2tncm91
bmRJbWFnZUdlb21ldHJ5KGMKICAgICAgICAgICAgIGJhY2tncm91bmRSZXBlYXRZID0gTm9SZXBl
YXRGaWxsOwogICAgIH0KICAgICBpZiAoYmFja2dyb3VuZFJlcGVhdFkgPT0gTm9SZXBlYXRGaWxs
KSB7Ci0gICAgICAgIExheW91dFVuaXQgeU9mZnNldCA9IHRvcCArIChmaWxsTGF5ZXIuYmFja2dy
b3VuZFlPcmlnaW4oKSA9PSBCb3R0b21FZGdlID8gYXZhaWxhYmxlSGVpZ2h0IC0gY29tcHV0ZWRZ
UG9zaXRpb24gOiBjb21wdXRlZFlQb3NpdGlvbik7CisgICAgICAgIExheW91dFVuaXQgeU9mZnNl
dCA9IHRvcCArIGNvbXB1dGVkWVBvc2l0aW9uOwogICAgICAgICBpZiAoeU9mZnNldCA+IDApCiAg
ICAgICAgICAgICBkZXN0aW5hdGlvblJlY3QubW92ZSgwLCB5T2Zmc2V0KTsKICAgICAgICAgeU9m
ZnNldCA9IHN0ZDo6bWluPExheW91dFVuaXQ+KHlPZmZzZXQsIDApOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IDY5NzMxZjIxZWI2YzI0ZDNhNjQ1YTI2
NzMwM2FhZTI1YTRjM2MxMDAuLmZkN2I1ZGI3MTM4YWYzMjBlZjUzN2U4ODcxZDczNGJkYTU4NzU3
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTEy
NDQsNyArMTI0NCw3IEBAIHN0YXRpYyBib29sIG11c3RSZXBhaW50RmlsbExheWVycyhjb25zdCBS
ZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgRmlsbExheWVyCiAgICAgaWYgKCFpbWFnZSB8
fCAhaW1hZ2UtPmNhblJlbmRlcigmcmVuZGVyZXIsIHJlbmRlcmVyLnN0eWxlKCkuZWZmZWN0aXZl
Wm9vbSgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFsYXllci0+eFBvc2l0
aW9uKCkuaXNaZXJvKCkgfHwgIWxheWVyLT55UG9zaXRpb24oKS5pc1plcm8oKSkKKyAgICBpZiAo
IWxheWVyLT54UG9zaXRpb24oKS5sZW5ndGguaXNaZXJvKCkgfHwgIWxheWVyLT55UG9zaXRpb24o
KS5sZW5ndGguaXNaZXJvKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgRUZpbGxTaXpl
VHlwZSBzaXplVHlwZSA9IGxheWVyLT5zaXplVHlwZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0VkZ2VSZWxhdGl2ZUxlbmd0aC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL0VkZ2VSZWxhdGl2ZUxlbmd0aC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1NjJj
YmQyZmI2NmJjMjc3YTcyMGM3MGI1ZDg2Nzg5ZTc4NzkwNjEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRWRnZVJlbGF0aXZlTGVuZ3RoLmgKQEAgLTAs
MCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgRWRnZVJlbGF0aXZlTGVuZ3RoX2gKKyNkZWZpbmUgRWRnZVJlbGF0aXZlTGVuZ3Ro
X2gKKworI2luY2x1ZGUgIkxlbmd0aC5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRz
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEVkZ2VSZWxhdGl2ZUxlbmd0aCB7
CitwdWJsaWM6CisgICAgRWRnZVJlbGF0aXZlTGVuZ3RoKExlbmd0aCBpbkxlbmd0aCwgRWRnZSBp
bkVkZ2UsIGJvb2wgaW5FZGdlU3BlY2lmaWVkKQorICAgICAgICA6IGxlbmd0aChpbkxlbmd0aCkK
KyAgICAgICAgLCBlZGdlKGluRWRnZSkKKyAgICAgICAgLCBlZGdlU3BlY2lmaWVkKGluRWRnZVNw
ZWNpZmllZCkKKyAgICB7CisgICAgfQorICAgIAorICAgIEVkZ2VSZWxhdGl2ZUxlbmd0aCgpCisg
ICAgICAgIDogZWRnZShFZGdlOjpMZWZ0KQorICAgICAgICAsIGVkZ2VTcGVjaWZpZWQoZmFsc2Up
CisgICAgeworICAgIH0KKyAgICAKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRWRnZVJlbGF0
aXZlTGVuZ3RoJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBsZW5ndGggPT0g
b3RoZXIubGVuZ3RoICYmIGVkZ2UgPT0gb3RoZXIuZWRnZTsKKyAgICB9CisgICAgCisgICAgTGVu
Z3RoIGxlbmd0aDsKKyAgICBFZGdlIGVkZ2U7CisgICAgYm9vbCBlZGdlU3BlY2lmaWVkIDogMTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVkZ2VSZWxhdGl2ZUxl
bmd0aF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExh
eWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCmlu
ZGV4IDFmNDE5ODhmMjIxMjBhMTQ2MDY4OTUxMzVkMTJkZTFjZDg3NWMwYzMuLjYyZDAyNmZkOTQy
NzY1NTBhNjEwZGI0N2UxNWM1NjRjZWNjMzA1ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCkBAIC0zMiwxMyArMzIsMTMgQEAgc3RydWN0IFNhbWVT
aXplQXNGaWxsTGF5ZXIgewogCiAgICAgUmVmUHRyPFN0eWxlSW1hZ2U+IGltYWdlOwogCi0gICAg
TGVuZ3RoIHg7Ci0gICAgTGVuZ3RoIHk7CisgICAgRWRnZVJlbGF0aXZlTGVuZ3RoIHg7CisgICAg
RWRnZVJlbGF0aXZlTGVuZ3RoIHk7CiAKICAgICBMZW5ndGhTaXplIHNpemVMZW5ndGg7CiAKLSAg
ICB1bnNpZ25lZCBiaXRmaWVsZHMgOiAzMjsKLSAgICB1bnNpZ25lZCBiaXRmaWVsZHMyIDogMTE7
CisgICAgdW5zaWduZWQgYml0ZmllbGRzIDogMjQ7CisgICAgdW5zaWduZWQgYml0ZmllbGRzMiA6
IDE0OwogfTsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKEZpbGxMYXllcikgPT0gc2l6ZW9mKFNh
bWVTaXplQXNGaWxsTGF5ZXIpLCBGaWxsTGF5ZXJfc2hvdWxkX3N0YXlfc21hbGwpOwpAQCAtNjQs
OSArNjQsNiBAQCBGaWxsTGF5ZXI6OkZpbGxMYXllcihFRmlsbExheWVyVHlwZSB0eXBlKQogICAg
ICwgbV9yZXBlYXRZU2V0KGZhbHNlKQogICAgICwgbV94UG9zU2V0KGZhbHNlKQogICAgICwgbV95
UG9zU2V0KGZhbHNlKQotICAgICwgbV9iYWNrZ3JvdW5kT3JpZ2luU2V0KGZhbHNlKQotICAgICwg
bV9iYWNrZ3JvdW5kWE9yaWdpbihMZWZ0RWRnZSkKLSAgICAsIG1fYmFja2dyb3VuZFlPcmlnaW4o
VG9wRWRnZSkKICAgICAsIG1fY29tcG9zaXRlU2V0KHR5cGUgPT0gTWFza0ZpbGxMYXllcikKICAg
ICAsIG1fYmxlbmRNb2RlU2V0KGZhbHNlKQogICAgICwgbV9tYXNrU291cmNlVHlwZVNldChmYWxz
ZSkKQEAgLTk3LDkgKzk0LDYgQEAgRmlsbExheWVyOjpGaWxsTGF5ZXIoY29uc3QgRmlsbExheWVy
JiBvKQogICAgICwgbV9yZXBlYXRZU2V0KG8ubV9yZXBlYXRZU2V0KQogICAgICwgbV94UG9zU2V0
KG8ubV94UG9zU2V0KQogICAgICwgbV95UG9zU2V0KG8ubV95UG9zU2V0KQotICAgICwgbV9iYWNr
Z3JvdW5kT3JpZ2luU2V0KG8ubV9iYWNrZ3JvdW5kT3JpZ2luU2V0KQotICAgICwgbV9iYWNrZ3Jv
dW5kWE9yaWdpbihvLm1fYmFja2dyb3VuZFhPcmlnaW4pCi0gICAgLCBtX2JhY2tncm91bmRZT3Jp
Z2luKG8ubV9iYWNrZ3JvdW5kWU9yaWdpbikKICAgICAsIG1fY29tcG9zaXRlU2V0KG8ubV9jb21w
b3NpdGVTZXQpCiAgICAgLCBtX2JsZW5kTW9kZVNldChvLm1fYmxlbmRNb2RlU2V0KQogICAgICwg
bV9tYXNrU291cmNlVHlwZVNldChvLm1fbWFza1NvdXJjZVR5cGVTZXQpCkBAIC0xMjAsOSArMTE0
LDYgQEAgRmlsbExheWVyJiBGaWxsTGF5ZXI6Om9wZXJhdG9yPShjb25zdCBGaWxsTGF5ZXImIG8p
CiAgICAgbV9pbWFnZSA9IG8ubV9pbWFnZTsKICAgICBtX3hQb3NpdGlvbiA9IG8ubV94UG9zaXRp
b247CiAgICAgbV95UG9zaXRpb24gPSBvLm1feVBvc2l0aW9uOwotICAgIG1fYmFja2dyb3VuZFhP
cmlnaW4gPSBvLm1fYmFja2dyb3VuZFhPcmlnaW47Ci0gICAgbV9iYWNrZ3JvdW5kWU9yaWdpbiA9
IG8ubV9iYWNrZ3JvdW5kWU9yaWdpbjsKLSAgICBtX2JhY2tncm91bmRPcmlnaW5TZXQgPSBvLm1f
YmFja2dyb3VuZE9yaWdpblNldDsKICAgICBtX3NpemVMZW5ndGggPSBvLm1fc2l6ZUxlbmd0aDsK
ICAgICBtX2F0dGFjaG1lbnQgPSBvLm1fYXR0YWNobWVudDsKICAgICBtX2NsaXAgPSBvLm1fY2xp
cDsKQEAgLTE1Niw3ICsxNDcsNiBAQCBib29sIEZpbGxMYXllcjo6b3BlcmF0b3I9PShjb25zdCBG
aWxsTGF5ZXImIG8pIGNvbnN0CiAgICAgLy8gV2UgZG8gbm90IGNoZWNrIHRoZSAiaXNTZXQiIGJv
b2xlYW5zIGZvciBlYWNoIHByb3BlcnR5LCBzaW5jZSB0aG9zZSBhcmUgb25seSB1c2VkIGR1cmlu
ZyBpbml0aWFsIGNvbnN0cnVjdGlvbgogICAgIC8vIHRvIHByb3BhZ2F0ZSBwYXR0ZXJucyBpbnRv
IGxheWVycy4gQWxsIGxheWVyIGNvbXBhcmlzb25zIGhhcHBlbiBhZnRlciB2YWx1ZXMgaGF2ZSBh
bGwgYmVlbiBmaWxsZWQgaW4gYW55d2F5LgogICAgIHJldHVybiBhcmVQb2ludGluZ1RvRXF1YWxE
YXRhKG1faW1hZ2UuZ2V0KCksIG8ubV9pbWFnZS5nZXQoKSkgJiYgbV94UG9zaXRpb24gPT0gby5t
X3hQb3NpdGlvbiAmJiBtX3lQb3NpdGlvbiA9PSBvLm1feVBvc2l0aW9uCi0gICAgICAgICYmIG1f
YmFja2dyb3VuZFhPcmlnaW4gPT0gby5tX2JhY2tncm91bmRYT3JpZ2luICYmIG1fYmFja2dyb3Vu
ZFlPcmlnaW4gPT0gby5tX2JhY2tncm91bmRZT3JpZ2luCiAgICAgICAgICYmIG1fYXR0YWNobWVu
dCA9PSBvLm1fYXR0YWNobWVudCAmJiBtX2NsaXAgPT0gby5tX2NsaXAgJiYgbV9jb21wb3NpdGUg
PT0gby5tX2NvbXBvc2l0ZQogICAgICAgICAmJiBtX2JsZW5kTW9kZSA9PSBvLm1fYmxlbmRNb2Rl
ICYmIG1fb3JpZ2luID09IG8ubV9vcmlnaW4gJiYgbV9yZXBlYXRYID09IG8ubV9yZXBlYXRYCiAg
ICAgICAgICYmIG1fcmVwZWF0WSA9PSBvLm1fcmVwZWF0WSAmJiBtX3NpemVUeXBlID09IG8ubV9z
aXplVHlwZSAmJiBtX21hc2tTb3VyY2VUeXBlID09IG8ubV9tYXNrU291cmNlVHlwZQpAQCAtMTcy
LDEwICsxNjIsNiBAQCB2b2lkIEZpbGxMYXllcjo6ZmlsbFVuc2V0UHJvcGVydGllcygpCiAgICAg
ICAgIC8vIFdlIG5lZWQgdG8gZmlsbCBpbiB0aGUgcmVtYWluaW5nIHZhbHVlcyB3aXRoIHRoZSBw
YXR0ZXJuIHNwZWNpZmllZC4KICAgICAgICAgZm9yIChGaWxsTGF5ZXIqIHBhdHRlcm4gPSB0aGlz
OyBjdXJyOyBjdXJyID0gY3Vyci0+bmV4dCgpKSB7CiAgICAgICAgICAgICBjdXJyLT5tX3hQb3Np
dGlvbiA9IHBhdHRlcm4tPm1feFBvc2l0aW9uOwotICAgICAgICAgICAgaWYgKHBhdHRlcm4tPmlz
QmFja2dyb3VuZE9yaWdpblNldCgpKSB7Ci0gICAgICAgICAgICAgICAgY3Vyci0+bV9iYWNrZ3Jv
dW5kWE9yaWdpbiA9IHBhdHRlcm4tPm1fYmFja2dyb3VuZFhPcmlnaW47Ci0gICAgICAgICAgICAg
ICAgY3Vyci0+bV9iYWNrZ3JvdW5kWU9yaWdpbiA9IHBhdHRlcm4tPm1fYmFja2dyb3VuZFlPcmln
aW47Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi0+bmV4dCgp
OwogICAgICAgICAgICAgaWYgKHBhdHRlcm4gPT0gY3VyciB8fCAhcGF0dGVybikKICAgICAgICAg
ICAgICAgICBwYXR0ZXJuID0gdGhpczsKQEAgLTE4NywxMCArMTczLDYgQEAgdm9pZCBGaWxsTGF5
ZXI6OmZpbGxVbnNldFByb3BlcnRpZXMoKQogICAgICAgICAvLyBXZSBuZWVkIHRvIGZpbGwgaW4g
dGhlIHJlbWFpbmluZyB2YWx1ZXMgd2l0aCB0aGUgcGF0dGVybiBzcGVjaWZpZWQuCiAgICAgICAg
IGZvciAoRmlsbExheWVyKiBwYXR0ZXJuID0gdGhpczsgY3VycjsgY3VyciA9IGN1cnItPm5leHQo
KSkgewogICAgICAgICAgICAgY3Vyci0+bV95UG9zaXRpb24gPSBwYXR0ZXJuLT5tX3lQb3NpdGlv
bjsKLSAgICAgICAgICAgIGlmIChwYXR0ZXJuLT5pc0JhY2tncm91bmRPcmlnaW5TZXQoKSkgewot
ICAgICAgICAgICAgICAgIGN1cnItPm1fYmFja2dyb3VuZFhPcmlnaW4gPSBwYXR0ZXJuLT5tX2Jh
Y2tncm91bmRYT3JpZ2luOwotICAgICAgICAgICAgICAgIGN1cnItPm1fYmFja2dyb3VuZFlPcmln
aW4gPSBwYXR0ZXJuLT5tX2JhY2tncm91bmRZT3JpZ2luOwotICAgICAgICAgICAgfQogICAgICAg
ICAgICAgcGF0dGVybiA9IHBhdHRlcm4tPm5leHQoKTsKICAgICAgICAgICAgIGlmIChwYXR0ZXJu
ID09IGN1cnIgfHwgIXBhdHRlcm4pCiAgICAgICAgICAgICAgICAgcGF0dGVybiA9IHRoaXM7CkBA
IC00MDcsMTYgKzM4OSwyMCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBjb25zdCBGaWxsTGF5ZXImIGxheWVyKQogICAgIHRzIDw8ICJmaWxsLWxheWVyIjsKIAogICAg
IHRzLnN0YXJ0R3JvdXAoKTsKLSAgICB0cyA8PCAicG9zaXRpb24gIiA8PCBsYXllci54UG9zaXRp
b24oKSA8PCAiICIgPDwgbGF5ZXIueVBvc2l0aW9uKCk7CisgICAgdHMgPDwgInBvc2l0aW9uICI7
CisgICAgaWYgKGxheWVyLnhQb3NpdGlvbigpLmVkZ2VTcGVjaWZpZWQpCisgICAgICAgIHRzIDw8
IGxheWVyLnhQb3NpdGlvbigpLmVkZ2UgPDwgIiAiOworICAgIHRzIDw8IGxheWVyLnhQb3NpdGlv
bigpLmxlbmd0aDsKKworICAgIHRzIDw8ICJwb3NpdGlvbiAiOworICAgIGlmIChsYXllci55UG9z
aXRpb24oKS5lZGdlU3BlY2lmaWVkKQorICAgICAgICB0cyA8PCBsYXllci55UG9zaXRpb24oKS5l
ZGdlIDw8ICIgIjsKKyAgICB0cyA8PCBsYXllci55UG9zaXRpb24oKS5sZW5ndGg7CiAgICAgdHMu
ZW5kR3JvdXAoKTsKIAogICAgIHRzLmR1bXBQcm9wZXJ0eSgic2l6ZSIsIGxheWVyLnNpemUoKSk7
CiAKICAgICB0cy5zdGFydEdyb3VwKCk7Ci0gICAgdHMgPDwgImJhY2tncm91bmQtb3JpZ2luICIg
PDwgbGF5ZXIuYmFja2dyb3VuZFhPcmlnaW4oKSA8PCAiICIgPDwgbGF5ZXIuYmFja2dyb3VuZFlP
cmlnaW4oKTsKLSAgICB0cy5lbmRHcm91cCgpOwotCi0gICAgdHMuc3RhcnRHcm91cCgpOwogICAg
IHRzIDw8ICJyZXBlYXQgIiA8PCBsYXllci5yZXBlYXRYKCkgPDwgIiAiIDw8IGxheWVyLnJlcGVh
dFkoKTsKICAgICB0cy5lbmRHcm91cCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvRmlsbExheWVyLmgKaW5kZXggOGIwZTY1ZTNmN2Y0NGE2MGI4MjFjMTY5ZWFiM2U4Y2NjZTU3
NDU3Ny4uZTJkMDNiY2U2MWI1M2Q2MzJiMmE3YWViZTczYTEzYjIzMjI1OTFkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaApAQCAtMjUsNiArMjUsNyBAQAog
I2lmbmRlZiBGaWxsTGF5ZXJfaAogI2RlZmluZSBGaWxsTGF5ZXJfaAogCisjaW5jbHVkZSAiRWRn
ZVJlbGF0aXZlTGVuZ3RoLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgogI2luY2x1ZGUg
Ikxlbmd0aFNpemUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgpAQCAtNjgs
MTAgKzY5LDggQEAgcHVibGljOgogICAgIH5GaWxsTGF5ZXIoKTsKIAogICAgIFN0eWxlSW1hZ2Uq
IGltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZS5nZXQoKTsgfQotICAgIGNvbnN0IExlbmd0
aCYgeFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV94UG9zaXRpb247IH0KLSAgICBjb25zdCBM
ZW5ndGgmIHlQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1feVBvc2l0aW9uOyB9Ci0gICAgQmFj
a2dyb3VuZEVkZ2VPcmlnaW4gYmFja2dyb3VuZFhPcmlnaW4oKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxCYWNrZ3JvdW5kRWRnZU9yaWdpbj4obV9iYWNrZ3JvdW5kWE9yaWdpbik7IH0KLSAg
ICBCYWNrZ3JvdW5kRWRnZU9yaWdpbiBiYWNrZ3JvdW5kWU9yaWdpbigpIGNvbnN0IHsgcmV0dXJu
IHN0YXRpY19jYXN0PEJhY2tncm91bmRFZGdlT3JpZ2luPihtX2JhY2tncm91bmRZT3JpZ2luKTsg
fQorICAgIGNvbnN0IEVkZ2VSZWxhdGl2ZUxlbmd0aCYgeFBvc2l0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV94UG9zaXRpb247IH0KKyAgICBjb25zdCBFZGdlUmVsYXRpdmVMZW5ndGgmIHlQb3NpdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1feVBvc2l0aW9uOyB9CiAgICAgRUZpbGxBdHRhY2htZW50IGF0
dGFjaG1lbnQoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFRmlsbEF0dGFjaG1lbnQ+KG1f
YXR0YWNobWVudCk7IH0KICAgICBFRmlsbEJveCBjbGlwKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8RUZpbGxCb3g+KG1fY2xpcCk7IH0KICAgICBFRmlsbEJveCBvcmlnaW4oKSBjb25zdCB7
IHJldHVybiBzdGF0aWNfY2FzdDxFRmlsbEJveD4obV9vcmlnaW4pOyB9CkBAIC05MCw3ICs4OSw2
IEBAIHB1YmxpYzoKICAgICBib29sIGlzSW1hZ2VTZXQoKSBjb25zdCB7IHJldHVybiBtX2ltYWdl
U2V0OyB9CiAgICAgYm9vbCBpc1hQb3NpdGlvblNldCgpIGNvbnN0IHsgcmV0dXJuIG1feFBvc1Nl
dDsgfQogICAgIGJvb2wgaXNZUG9zaXRpb25TZXQoKSBjb25zdCB7IHJldHVybiBtX3lQb3NTZXQ7
IH0KLSAgICBib29sIGlzQmFja2dyb3VuZE9yaWdpblNldCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFj
a2dyb3VuZE9yaWdpblNldDsgfQogICAgIGJvb2wgaXNBdHRhY2htZW50U2V0KCkgY29uc3QgeyBy
ZXR1cm4gbV9hdHRhY2htZW50U2V0OyB9CiAgICAgYm9vbCBpc0NsaXBTZXQoKSBjb25zdCB7IHJl
dHVybiBtX2NsaXBTZXQ7IH0KICAgICBib29sIGlzT3JpZ2luU2V0KCkgY29uc3QgeyByZXR1cm4g
bV9vcmlnaW5TZXQ7IH0KQEAgLTEwMiwxMCArMTAwLDggQEAgcHVibGljOgogICAgIGJvb2wgaXNN
YXNrU291cmNlVHlwZVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFza1NvdXJjZVR5cGVTZXQ7IH0K
IAogICAgIHZvaWQgc2V0SW1hZ2UoUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBpbWFnZSkgeyBtX2lt
YWdlID0gaW1hZ2U7IG1faW1hZ2VTZXQgPSB0cnVlOyB9Ci0gICAgdm9pZCBzZXRYUG9zaXRpb24o
TGVuZ3RoIGxlbmd0aCkgeyBtX3hQb3NpdGlvbiA9IFdURk1vdmUobGVuZ3RoKTsgbV94UG9zU2V0
ID0gdHJ1ZTsgfQotICAgIHZvaWQgc2V0WVBvc2l0aW9uKExlbmd0aCBsZW5ndGgpIHsgbV95UG9z
aXRpb24gPSBXVEZNb3ZlKGxlbmd0aCk7IG1feVBvc1NldCA9IHRydWU7IH0KLSAgICB2b2lkIHNl
dEJhY2tncm91bmRYT3JpZ2luKEJhY2tncm91bmRFZGdlT3JpZ2luIG8pIHsgbV9iYWNrZ3JvdW5k
WE9yaWdpbiA9IG87IG1fYmFja2dyb3VuZE9yaWdpblNldCA9IHRydWU7IH0KLSAgICB2b2lkIHNl
dEJhY2tncm91bmRZT3JpZ2luKEJhY2tncm91bmRFZGdlT3JpZ2luIG8pIHsgbV9iYWNrZ3JvdW5k
WU9yaWdpbiA9IG87IG1fYmFja2dyb3VuZE9yaWdpblNldCA9IHRydWU7IH0KKyAgICB2b2lkIHNl
dFhQb3NpdGlvbihFZGdlUmVsYXRpdmVMZW5ndGggbGVuZ3RoKSB7IG1feFBvc2l0aW9uID0gbGVu
Z3RoOyBtX3hQb3NTZXQgPSB0cnVlOyB9CisgICAgdm9pZCBzZXRZUG9zaXRpb24oRWRnZVJlbGF0
aXZlTGVuZ3RoIGxlbmd0aCkgeyBtX3lQb3NpdGlvbiA9IGxlbmd0aDsgbV95UG9zU2V0ID0gdHJ1
ZTsgfQogICAgIHZvaWQgc2V0QXR0YWNobWVudChFRmlsbEF0dGFjaG1lbnQgYXR0YWNobWVudCkg
eyBtX2F0dGFjaG1lbnQgPSBhdHRhY2htZW50OyBtX2F0dGFjaG1lbnRTZXQgPSB0cnVlOyB9CiAg
ICAgdm9pZCBzZXRDbGlwKEVGaWxsQm94IGIpIHsgbV9jbGlwID0gYjsgbV9jbGlwU2V0ID0gdHJ1
ZTsgfQogICAgIHZvaWQgc2V0T3JpZ2luKEVGaWxsQm94IGIpIHsgbV9vcmlnaW4gPSBiOyBtX29y
aWdpblNldCA9IHRydWU7IH0KQEAgLTEyMCw4ICsxMTYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGNsZWFySW1hZ2UoKSB7IG1faW1hZ2UgPSBudWxscHRyOyBtX2ltYWdlU2V0ID0gZmFsc2U7IH0K
IAotICAgIHZvaWQgY2xlYXJYUG9zaXRpb24oKSB7IG1feFBvc1NldCA9IGZhbHNlOyBtX2JhY2tn
cm91bmRPcmlnaW5TZXQgPSBmYWxzZTsgfQotICAgIHZvaWQgY2xlYXJZUG9zaXRpb24oKSB7IG1f
eVBvc1NldCA9IGZhbHNlOyBtX2JhY2tncm91bmRPcmlnaW5TZXQgPSBmYWxzZTsgfQorICAgIHZv
aWQgY2xlYXJYUG9zaXRpb24oKSB7IG1feFBvc1NldCA9IGZhbHNlOyB9CisgICAgdm9pZCBjbGVh
cllQb3NpdGlvbigpIHsgbV95UG9zU2V0ID0gZmFsc2U7IH0KIAogICAgIHZvaWQgY2xlYXJBdHRh
Y2htZW50KCkgeyBtX2F0dGFjaG1lbnRTZXQgPSBmYWxzZTsgfQogICAgIHZvaWQgY2xlYXJDbGlw
KCkgeyBtX2NsaXBTZXQgPSBmYWxzZTsgfQpAQCAtMTY0LDggKzE2MCw4IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgQ29tcG9zaXRlT3BlcmF0b3IgaW5pdGlhbEZpbGxDb21wb3NpdGUoRUZpbGxMYXll
clR5cGUpIHsgcmV0dXJuIENvbXBvc2l0ZVNvdXJjZU92ZXI7IH0KICAgICBzdGF0aWMgQmxlbmRN
b2RlIGluaXRpYWxGaWxsQmxlbmRNb2RlKEVGaWxsTGF5ZXJUeXBlKSB7IHJldHVybiBCbGVuZE1v
ZGVOb3JtYWw7IH0KICAgICBzdGF0aWMgRmlsbFNpemUgaW5pdGlhbEZpbGxTaXplKEVGaWxsTGF5
ZXJUeXBlKSB7IHJldHVybiBGaWxsU2l6ZSgpOyB9Ci0gICAgc3RhdGljIExlbmd0aCBpbml0aWFs
RmlsbFhQb3NpdGlvbihFRmlsbExheWVyVHlwZSkgeyByZXR1cm4gTGVuZ3RoKDAuMGYsIFBlcmNl
bnQpOyB9Ci0gICAgc3RhdGljIExlbmd0aCBpbml0aWFsRmlsbFlQb3NpdGlvbihFRmlsbExheWVy
VHlwZSkgeyByZXR1cm4gTGVuZ3RoKDAuMGYsIFBlcmNlbnQpOyB9CisgICAgc3RhdGljIEVkZ2VS
ZWxhdGl2ZUxlbmd0aCBpbml0aWFsRmlsbFhQb3NpdGlvbihFRmlsbExheWVyVHlwZSkgeyByZXR1
cm4gRWRnZVJlbGF0aXZlTGVuZ3RoKExlbmd0aCgwLjBmLCBQZXJjZW50KSwgRWRnZTo6TGVmdCwg
ZmFsc2UpOyB9CisgICAgc3RhdGljIEVkZ2VSZWxhdGl2ZUxlbmd0aCBpbml0aWFsRmlsbFlQb3Np
dGlvbihFRmlsbExheWVyVHlwZSkgeyByZXR1cm4gRWRnZVJlbGF0aXZlTGVuZ3RoKExlbmd0aCgw
LjBmLCBQZXJjZW50KSwgRWRnZTo6VG9wLCBmYWxzZSk7IH0KICAgICBzdGF0aWMgU3R5bGVJbWFn
ZSogaW5pdGlhbEZpbGxJbWFnZShFRmlsbExheWVyVHlwZSkgeyByZXR1cm4gbnVsbHB0cjsgfQog
ICAgIHN0YXRpYyBFTWFza1NvdXJjZVR5cGUgaW5pdGlhbEZpbGxNYXNrU291cmNlVHlwZShFRmls
bExheWVyVHlwZSkgeyByZXR1cm4gTWFza0FscGhhOyB9CiAKQEAgLTE3OCw4ICsxNzQsOCBAQCBw
cml2YXRlOgogCiAgICAgUmVmUHRyPFN0eWxlSW1hZ2U+IG1faW1hZ2U7CiAKLSAgICBMZW5ndGgg
bV94UG9zaXRpb247Ci0gICAgTGVuZ3RoIG1feVBvc2l0aW9uOworICAgIEVkZ2VSZWxhdGl2ZUxl
bmd0aCBtX3hQb3NpdGlvbjsKKyAgICBFZGdlUmVsYXRpdmVMZW5ndGggbV95UG9zaXRpb247CiAK
ICAgICBMZW5ndGhTaXplIG1fc2l6ZUxlbmd0aDsKIApAQCAtMjAxLDkgKzE5Nyw2IEBAIHByaXZh
dGU6CiAgICAgdW5zaWduZWQgbV9yZXBlYXRZU2V0IDogMTsKICAgICB1bnNpZ25lZCBtX3hQb3NT
ZXQgOiAxOwogICAgIHVuc2lnbmVkIG1feVBvc1NldCA6IDE7Ci0gICAgdW5zaWduZWQgbV9iYWNr
Z3JvdW5kT3JpZ2luU2V0IDogMTsKLSAgICB1bnNpZ25lZCBtX2JhY2tncm91bmRYT3JpZ2luIDog
MjsgLy8gQmFja2dyb3VuZEVkZ2VPcmlnaW4KLSAgICB1bnNpZ25lZCBtX2JhY2tncm91bmRZT3Jp
Z2luIDogMjsgLy8gQmFja2dyb3VuZEVkZ2VPcmlnaW4KICAgICB1bnNpZ25lZCBtX2NvbXBvc2l0
ZVNldCA6IDE7CiAgICAgdW5zaWduZWQgbV9ibGVuZE1vZGVTZXQgOiAxOwogICAgIHVuc2lnbmVk
IG1fbWFza1NvdXJjZVR5cGVTZXQgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaAppbmRleCBhMjc0MjE1N2RjMjlhZTIyM2JkMThhY2NlNWJhOTI5YjNj
MzUyNWZjLi41ZTk0ZWFmYzA4MzIzOGJkMDZiNWFkZDg5NWRjZmJjNTczY2FmNmNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMzQsNiArMzQs
NyBAQAogI2luY2x1ZGUgIkNvbG9yU3BhY2UuaCIKICNpbmNsdWRlICJDb3VudGVyRGlyZWN0aXZl
cy5oIgogI2luY2x1ZGUgIkRhdGFSZWYuaCIKKyNpbmNsdWRlICJFZGdlUmVsYXRpdmVMZW5ndGgu
aCIKICNpbmNsdWRlICJGb250QmFzZWxpbmUuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24u
aCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCkBAIC03OTksOCArODAwLDggQEAgcHVibGlj
OgogICAgIEVGaWxsQXR0YWNobWVudCBiYWNrZ3JvdW5kQXR0YWNobWVudCgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PEVGaWxsQXR0YWNobWVudD4obV9iYWNrZ3JvdW5kLT5iYWNrZ3JvdW5k
KCkuYXR0YWNobWVudCgpKTsgfQogICAgIEVGaWxsQm94IGJhY2tncm91bmRDbGlwKCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8RUZpbGxCb3g+KG1fYmFja2dyb3VuZC0+YmFja2dyb3VuZCgp
LmNsaXAoKSk7IH0KICAgICBFRmlsbEJveCBiYWNrZ3JvdW5kT3JpZ2luKCkgY29uc3QgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8RUZpbGxCb3g+KG1fYmFja2dyb3VuZC0+YmFja2dyb3VuZCgpLm9yaWdp
bigpKTsgfQotICAgIGNvbnN0IExlbmd0aCYgYmFja2dyb3VuZFhQb3NpdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fYmFja2dyb3VuZC0+YmFja2dyb3VuZCgpLnhQb3NpdGlvbigpOyB9Ci0gICAgY29u
c3QgTGVuZ3RoJiBiYWNrZ3JvdW5kWVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZ3Jv
dW5kLT5iYWNrZ3JvdW5kKCkueVBvc2l0aW9uKCk7IH0KKyAgICBjb25zdCBFZGdlUmVsYXRpdmVM
ZW5ndGgmIGJhY2tncm91bmRYUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2JhY2tncm91bmQt
PmJhY2tncm91bmQoKS54UG9zaXRpb24oKTsgfQorICAgIGNvbnN0IEVkZ2VSZWxhdGl2ZUxlbmd0
aCYgYmFja2dyb3VuZFlQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2dyb3VuZC0+YmFj
a2dyb3VuZCgpLnlQb3NpdGlvbigpOyB9CiAgICAgRUZpbGxTaXplVHlwZSBiYWNrZ3JvdW5kU2l6
ZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX2JhY2tncm91bmQtPmJhY2tncm91bmQoKS5zaXplVHlw
ZSgpOyB9CiAgICAgY29uc3QgTGVuZ3RoU2l6ZSYgYmFja2dyb3VuZFNpemVMZW5ndGgoKSBjb25z
dCB7IHJldHVybiBtX2JhY2tncm91bmQtPmJhY2tncm91bmQoKS5zaXplTGVuZ3RoKCk7IH0KICAg
ICBGaWxsTGF5ZXImIGVuc3VyZUJhY2tncm91bmRMYXllcnMoKSB7IHJldHVybiBtX2JhY2tncm91
bmQuYWNjZXNzKCktPm1fYmFja2dyb3VuZDsgfQpAQCAtODEyLDggKzgxMyw4IEBAIHB1YmxpYzoK
ICAgICBDb21wb3NpdGVPcGVyYXRvciBtYXNrQ29tcG9zaXRlKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8Q29tcG9zaXRlT3BlcmF0b3I+KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX21hc2su
Y29tcG9zaXRlKCkpOyB9CiAgICAgRUZpbGxCb3ggbWFza0NsaXAoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxFRmlsbEJveD4ocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbWFzay5jbGlwKCkp
OyB9CiAgICAgRUZpbGxCb3ggbWFza09yaWdpbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0
PEVGaWxsQm94PihyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tYXNrLm9yaWdpbigpKTsgfQotICAg
IGNvbnN0IExlbmd0aCYgbWFza1hQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhl
cml0ZWREYXRhLT5tX21hc2sueFBvc2l0aW9uKCk7IH0KLSAgICBjb25zdCBMZW5ndGgmIG1hc2tZ
UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tYXNrLnlQ
b3NpdGlvbigpOyB9CisgICAgY29uc3QgRWRnZVJlbGF0aXZlTGVuZ3RoJiBtYXNrWFBvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbWFzay54UG9zaXRpb24o
KTsgfQorICAgIGNvbnN0IEVkZ2VSZWxhdGl2ZUxlbmd0aCYgbWFza1lQb3NpdGlvbigpIGNvbnN0
IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX21hc2sueVBvc2l0aW9uKCk7IH0KICAg
ICBFRmlsbFNpemVUeXBlIG1hc2tTaXplVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhl
cml0ZWREYXRhLT5tX21hc2suc2l6ZVR5cGUoKTsgfQogICAgIGNvbnN0IExlbmd0aFNpemUmIG1h
c2tTaXplTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbWFz
ay5zaXplTGVuZ3RoKCk7IH0KICAgICBGaWxsTGF5ZXImIGVuc3VyZU1hc2tMYXllcnMoKSB7IHJl
dHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tYXNrOyB9CkBAIC0xMjYzLDgg
KzEyNjQsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEJhY2tncm91bmRDb2xvcihjb25zdCBD
b2xvciYgdikgeyBTRVRfVkFSKG1fYmFja2dyb3VuZCwgbV9jb2xvciwgdik7IH0KIAotICAgIHZv
aWQgc2V0QmFja2dyb3VuZFhQb3NpdGlvbihMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIobV9iYWNr
Z3JvdW5kLCBtX2JhY2tncm91bmQubV94UG9zaXRpb24sIFdURk1vdmUobGVuZ3RoKSk7IH0KLSAg
ICB2b2lkIHNldEJhY2tncm91bmRZUG9zaXRpb24oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKG1f
YmFja2dyb3VuZCwgbV9iYWNrZ3JvdW5kLm1feVBvc2l0aW9uLCBXVEZNb3ZlKGxlbmd0aCkpOyB9
CisgICAgdm9pZCBzZXRCYWNrZ3JvdW5kWFBvc2l0aW9uKGNvbnN0IEVkZ2VSZWxhdGl2ZUxlbmd0
aCYgbGVuZ3RoKSB7IFNFVF9WQVIobV9iYWNrZ3JvdW5kLCBtX2JhY2tncm91bmQubV94UG9zaXRp
b24sIGxlbmd0aCk7IH0KKyAgICB2b2lkIHNldEJhY2tncm91bmRZUG9zaXRpb24oY29uc3QgRWRn
ZVJlbGF0aXZlTGVuZ3RoJiBsZW5ndGgpIHsgU0VUX1ZBUihtX2JhY2tncm91bmQsIG1fYmFja2dy
b3VuZC5tX3lQb3NpdGlvbiwgbGVuZ3RoKTsgfQogICAgIHZvaWQgc2V0QmFja2dyb3VuZFNpemUo
RUZpbGxTaXplVHlwZSBiKSB7IFNFVF9WQVIobV9iYWNrZ3JvdW5kLCBtX2JhY2tncm91bmQubV9z
aXplVHlwZSwgYik7IH0KICAgICB2b2lkIHNldEJhY2tncm91bmRTaXplTGVuZ3RoKExlbmd0aFNp
emUgc2l6ZSkgeyBTRVRfVkFSKG1fYmFja2dyb3VuZCwgbV9iYWNrZ3JvdW5kLm1fc2l6ZUxlbmd0
aCwgV1RGTW92ZShzaXplKSk7IH0KICAgICAKQEAgLTE0MTgsOCArMTQxOSw4IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgc2V0TWFza0JveEltYWdlKGNvbnN0IE5pbmVQaWVjZUltYWdlJiBiKSB7IFNF
VF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fbWFza0JveEltYWdlLCBiKTsgfQogICAgIHZv
aWQgc2V0TWFza0JveEltYWdlU291cmNlKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gdikgeyByYXJl
Tm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tYXNrQm94SW1hZ2Uuc2V0SW1hZ2Uodik7IH0K
LSAgICB2b2lkIHNldE1hc2tYUG9zaXRpb24oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHJhcmVO
b25Jbmhlcml0ZWREYXRhLCBtX21hc2subV94UG9zaXRpb24sIFdURk1vdmUobGVuZ3RoKSk7IH0K
LSAgICB2b2lkIHNldE1hc2tZUG9zaXRpb24oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHJhcmVO
b25Jbmhlcml0ZWREYXRhLCBtX21hc2subV95UG9zaXRpb24sIFdURk1vdmUobGVuZ3RoKSk7IH0K
KyAgICB2b2lkIHNldE1hc2tYUG9zaXRpb24oY29uc3QgRWRnZVJlbGF0aXZlTGVuZ3RoJiBsZW5n
dGgpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwgbV9tYXNrLm1feFBvc2l0aW9uLCBs
ZW5ndGgpOyB9CisgICAgdm9pZCBzZXRNYXNrWVBvc2l0aW9uKGNvbnN0IEVkZ2VSZWxhdGl2ZUxl
bmd0aCYgbGVuZ3RoKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fbWFzay5tX3lQ
b3NpdGlvbiwgbGVuZ3RoKTsgfQogICAgIHZvaWQgc2V0TWFza1NpemUoTGVuZ3RoU2l6ZSBzaXpl
KSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fbWFzay5tX3NpemVMZW5ndGgsIFdU
Rk1vdmUoc2l6ZSkpOyB9CiAKICAgICB2b2lkIHNldEJvcmRlckNvbGxhcHNlKEVCb3JkZXJDb2xs
YXBzZSBjb2xsYXBzZSkgeyBpbmhlcml0ZWRfZmxhZ3MuX2JvcmRlcl9jb2xsYXBzZSA9IGNvbGxh
cHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGVDb25zdGFudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlQ29uc3RhbnRzLmNwcAppbmRleCA4MzFkMTc5MjdhZGZhMGRkZTA1ZWU0YmUwYjIxN2Yy
NDI5YWQ3ZGNjLi5mMTNjZDdiZDkxMmY2NTdlODcyMGVmOTVkYjcwY2ZiNWJiZjQ2ZDZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFu
dHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNv
bnN0YW50cy5jcHAKQEAgLTg1LDEzICs4NSwxMyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBFTWFza1NvdXJjZVR5cGUgbWFza1NvdXJjZSkKICAgICByZXR1cm4gdHM7
CiB9CiAKLVRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEJhY2tncm91bmRF
ZGdlT3JpZ2luIGVkZ2UpCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBF
ZGdlIGVkZ2UpCiB7CiAgICAgc3dpdGNoIChlZGdlKSB7Ci0gICAgY2FzZSBUb3BFZGdlOiB0cyA8
PCAidG9wIjsgYnJlYWs7Ci0gICAgY2FzZSBSaWdodEVkZ2U6IHRzIDw8ICJyaWdodCI7IGJyZWFr
OwotICAgIGNhc2UgQm90dG9tRWRnZTogdHMgPDwgImJvdHRvbSI7IGJyZWFrOwotICAgIGNhc2Ug
TGVmdEVkZ2U6IHRzIDw8ICJsZWZ0IjsgYnJlYWs7CisgICAgY2FzZSBFZGdlOjpUb3A6IHRzIDw8
ICJ0b3AiOyBicmVhazsKKyAgICBjYXNlIEVkZ2U6OlJpZ2h0OiB0cyA8PCAicmlnaHQiOyBicmVh
azsKKyAgICBjYXNlIEVkZ2U6OkJvdHRvbTogdHMgPDwgImJvdHRvbSI7IGJyZWFrOworICAgIGNh
c2UgRWRnZTo6TGVmdDogdHMgPDwgImxlZnQiOyBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIHRz
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGVDb25zdGFudHMuaAppbmRleCBmZTZmNjMwYWQ0ODk0YTE1OTZjYWViZTkxM2VlOGUzNDE3M2M3
ZGExLi40OTJmNzhjNGQyZjEyOWQ0ZTA0OTRmMzNkMzNkMmEzYjc4ODkzMGMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMu
aApAQCAtMjMwLDggKzIzMCw4IEBAIGVudW0gRUZpbGxMYXllclR5cGUgewogLy8gQ1NTMyBCYWNr
Z3JvdW5kIFZhbHVlcwogZW51bSBFRmlsbFNpemVUeXBlIHsgQ29udGFpbiwgQ292ZXIsIFNpemVM
ZW5ndGgsIFNpemVOb25lIH07CiAKLS8vIENTUzMgQmFja2dyb3VuZCBQb3NpdGlvbgotZW51bSBC
YWNrZ3JvdW5kRWRnZU9yaWdpbiB7IFRvcEVkZ2UsIFJpZ2h0RWRnZSwgQm90dG9tRWRnZSwgTGVm
dEVkZ2UgfTsKKy8vIENTUzMgPHBvc2l0aW9uPgorZW51bSBjbGFzcyBFZGdlIHsgVG9wLCBSaWdo
dCwgQm90dG9tLCBMZWZ0IH07CiAKIC8vIENTUzMgTWFzayBTb3VyY2UgVHlwZXMKIGVudW0gRU1h
c2tTb3VyY2VUeXBlIHsgTWFza0FscGhhLCBNYXNrTHVtaW5hbmNlIH07CkBAIC02OTQsNyArNjk0
LDcgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgRUZpbGxBdHRhY2htZW50
KTsKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIEVGaWxsQm94KTsKIFRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIEVGaWxsUmVwZWF0KTsKIFRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIEVNYXNrU291cmNlVHlwZSk7Ci1UZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mLCBCYWNrZ3JvdW5kRWRnZU9yaWdpbik7CitUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBFZGdlKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggNTRjYjVkMWU1YjJlMDI5YmE1MDUzNTZhNjM0MjQwNzIzNDBiYmNlNS4uZmFj
MDY2ZjI5N2FlNzBlOTZkYjI0NzM0MzNiMzRiM2UwNGYxNWUyNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE2LTAyLTE5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFJlcGVhdGVkIGJhY2tncm91bmQgaW1hZ2VzIGhhdmUgdGhlIHdyb25nIHBvc2l0
aW9uIHdoZW4gdXNpbmcgYm90dG9tL3JpZ2h0LXJlbGF0aXZlIGJhY2tncm91bmQtcG9zaXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDQ3OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9j
c3MvYmFja2dyb3VuZC1wb3NpdGlvbi1zZXJpYWxpemUuaHRtbDogQWRkIG1vcmUgdGVzdHMsIHVz
aW5nICdib3R0b20nIGFuZCAncmlnaHQnIGtleXdvcmRzLgorICAgICAgICAqIGZhc3QvaW1hZ2Vz
L2JhY2tncm91bmQtcG9zaXRpb24tZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9pbWFnZXMvYmFja2dyb3VuZC1wb3NpdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2ltYWdlcy9yZXNvdXJjZXMvY2hlY2tlci5wbmc6IEFkZGVkLgorCiAyMDE2LTAyLTE5ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFJlYmFzZWxpbmUgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pbnRlcmZhY2VzLmh0bWwgZm9y
IGlvcy1zaW11bGF0b3IgYWZ0ZXIgcjE5Njc5NwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvYmFja2dyb3VuZC1wb3NpdGlvbi1zZXJpYWxpemUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzL2JhY2tncm91bmQtcG9zaXRpb24tc2VyaWFsaXplLmh0bWwKaW5kZXggZDM5NTBmZjYx
OWYwYjkyMmFhYjA5ZmNiODk5NjNmZGU5OWViZWU0Yy4uNzg3MzdkMGM4ZjQ2ODU0MTE5ODI2NTY4
OWIxODVjMzk5NjNkNjQzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvYmFja2dy
b3VuZC1wb3NpdGlvbi1zZXJpYWxpemUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9i
YWNrZ3JvdW5kLXBvc2l0aW9uLXNlcmlhbGl6ZS5odG1sCkBAIC0xLDcgKzEsNyBAQAogPGh0bWw+
CiA8Ym9keT4KLTxkaXYgaWQ9dD48L2Rpdj4KLTxkaXYgaWQ9Y29uc29sZT48L2Rpdj4KKzxkaXYg
aWQ9InQiPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiA8c2NyaXB0PgogZnVuY3Rp
b24gcHJpbnQobWVzc2FnZSwgY29sb3IpIAogewpAQCAtMTExLDYgKzExMSwyNCBAQCBzaG91bGRC
ZSgidC5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRpb25YIiwgIjEwcHgsIDIwcHgsIDMwcHgiKTsKIHNo
b3VsZEJlKCJ0LnN0eWxlLmJhY2tncm91bmRQb3NpdGlvblkiLCAiMTVweCwgMjVweCwgMzVweCIp
Owogc2hvdWxkQmUoInQuc3R5bGUuY3NzVGV4dCIsICJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMHB4
IDE1cHgsIDIwcHggMjVweCwgMzBweCAzNXB4OyIpOwogCitydW4oInQuc2V0QXR0cmlidXRlKCdz
dHlsZScsICdiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gMTBweCByaWdodCAyMHB4Jyk7Iik7
CitzaG91bGRCZSgidC5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRpb24iLCAicmlnaHQgMjBweCBib3R0
b20gMTBweCIpOworc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmJhY2tncm91
bmRQb3NpdGlvbiIsICJyaWdodCAyMHB4IGJvdHRvbSAxMHB4Iik7CisKK3J1bigidC5zZXRBdHRy
aWJ1dGUoJ3N0eWxlJywgJ2JhY2tncm91bmQtcG9zaXRpb246IHRvcCAxMHB4IHJpZ2h0IDIwcHgn
KTsiKTsKK3Nob3VsZEJlKCJ0LnN0eWxlLmJhY2tncm91bmRQb3NpdGlvbiIsICJyaWdodCAyMHB4
IHRvcCAxMHB4Iik7CitzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuYmFja2dy
b3VuZFBvc2l0aW9uIiwgInJpZ2h0IDIwcHggdG9wIDEwcHgiKTsKKworcnVuKCJ0LnNldEF0dHJp
YnV0ZSgnc3R5bGUnLCAnYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIGxlZnQnKTsiKTsgLy8gSW52
YWxpZCBwZXIgc3BlYy4KK3Nob3VsZEJlKCJ0LnN0eWxlLmJhY2tncm91bmRQb3NpdGlvbiIsICIi
KTsKKworcnVuKCJ0LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnYmFja2dyb3VuZC1wb3NpdGlvbi14
OiByaWdodCAyMHB4Jyk7Iik7IC8vIFRoaXMgZG9lcyBub3QgcGFyc2UsIGJ1dCBwZXJoYXBzIGl0
IHNob3VsZC4KK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5iYWNrZ3JvdW5k
UG9zaXRpb25YIiwgIjAlIik7CisKK3J1bigidC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2JhY2tn
cm91bmQtcG9zaXRpb246IHJpZ2h0IDIwcHggYm90dG9tIDEwcHgnKTsiKTsKK3Nob3VsZEJlKCJ3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5iYWNrZ3JvdW5kUG9zaXRpb24iLCAicmlnaHQgMjBw
eCBib3R0b20gMTBweCIpOworc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmJh
Y2tncm91bmRQb3NpdGlvblgiLCAicmlnaHQgMjBweCIpOworCiBydW4oInQuc2V0QXR0cmlidXRl
KCdzdHlsZScsICdiYWNrZ3JvdW5kOiB1cmwoYWJvdXQ6YmxhbmspIDgwJSA4MCU7Jyk7Iik7CiBy
dW4oInQuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uWSA9ICc1MHB4JyIpOwogcHJpbnQoInN0eWxl
LmNzc1RleHQgPSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvYmFja2dy
b3VuZC1wb3NpdGlvbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvYmFj
a2dyb3VuZC1wb3NpdGlvbi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkZTc1NDQxNWJkYWNj
MWQzNmQ4NGIzMjMwOGJjMTNjZTE5ZTJlOTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCAr
MSw5MCBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgor
ICAgICAgICAuY29udGFpbmVyIHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAg
ICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgICAgICAg
ICBib3JkZXI6IDJweCBzb2xpZCBncmF5OworICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJs
b2NrOworICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICB9CisgICAgICAg
IC5ib3ggeworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgd2lk
dGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIGJhY2tn
cm91bmQtaW1hZ2U6IHVybCgncmVzb3VyY2VzL2NoZWNrZXIucG5nJyk7CisgICAgICAgICAgICBi
YWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICAucmVwZWF0IC5ib3ggeworICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDsK
KyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2PgorICAg
ICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94
IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwIj48L2Rpdj4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNz
PSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMHB4IDIwcHgiPjwvZGl2PgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAg
IDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDVweCAyNXB4Ij48
L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAy
NXB4IDVweCI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1w
b3NpdGlvbjogNDVweCAyNXB4Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJi
YWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDI1cHgiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZXBlYXQiPgorICAgICAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3Vu
ZC1wb3NpdGlvbjogMCAwIj48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNr
Z3JvdW5kLXBvc2l0aW9uOiAxMHB4IDIwcHgiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIg
c3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDVweCAyNXB4Ij48L2Rpdj4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyNXB4IDVweCI+PC9kaXY+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAg
ICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogNDVweCAyNXB4
Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9u
OiAxMDAlIDI1cHgiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2
IGNsYXNzPSJyZXBlYXQiPgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOyAt
d2Via2l0LWNsaXAtcGF0aDogaW5zZXQoMCA1MHB4IDUwcHggMCk7Ij48L2Rpdj4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMHB4IDIwcHg7IC13ZWJr
aXQtY2xpcC1wYXRoOiBpbnNldCgyMHB4IDQwcHggMzBweCAxMHB4KTsiPjwvZGl2PgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDVweCAyNXB4OyAtd2Vi
a2l0LWNsaXAtcGF0aDogaW5zZXQoMjVweCA0NXB4IDI1cHggNXB4KTsiPjwvZGl2PgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDI1cHggNXB4OyAtd2Vi
a2l0LWNsaXAtcGF0aDogaW5zZXQoNXB4IDI1cHggNDVweCAyNXB4KTsiPjwvZGl2PgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDQ1cHggMjVweDsgLXdl
YmtpdC1jbGlwLXBhdGg6IGluc2V0KDI1cHggNXB4IDI1cHggNDVweCk7Ij48L2Rpdj4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDI1cHg7IC13
ZWJraXQtY2xpcC1wYXRoOiBpbnNldCgyNXB4IDAgMjVweCA1MHB4KTsiPjwvZGl2PgorICAgICAg
ICA8L2Rpdj4KKyAgICA8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvYmFja2dyb3VuZC1wb3NpdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvYmFja2dyb3VuZC1wb3NpdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyZmQ1
NGU3YTM2ZGNiNTQ5ODllOGQzOTE0NWI0ODJlZDU4ZjU3YjUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLmh0bWwKQEAgLTAsMCAr
MSw5MCBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgor
ICAgICAgICAuY29udGFpbmVyIHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAg
ICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgICAgICAg
ICBib3JkZXI6IDJweCBzb2xpZCBncmF5OworICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJs
b2NrOworICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICB9CisgICAgICAg
IC5ib3ggeworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgd2lk
dGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIGJhY2tn
cm91bmQtaW1hZ2U6IHVybCgncmVzb3VyY2VzL2NoZWNrZXIucG5nJyk7CisgICAgICAgICAgICBi
YWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICAucmVwZWF0IC5ib3ggeworICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDsK
KyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2PgorICAg
ICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94
IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwIj48L2Rpdj4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNz
PSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMHB4IDIwcHgiPjwvZGl2PgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAg
IDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDEwJSA1MCUiPjwv
ZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IHRv
cCAxMCUgbGVmdCA1MCUiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tn
cm91bmQtcG9zaXRpb246IHJpZ2h0IDEwJSBib3R0b20gNTAlIj48L2Rpdj4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQiPjwvZGl2
PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZXBlYXQiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0i
Ym94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwIj48L2Rpdj4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMHB4IDIwcHgiPjwvZGl2Pgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
ICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDEwJSA1MCUi
PjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246
IHRvcCAxMCUgbGVmdCA1MCUiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJh
Y2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDEwJSBib3R0b20gNTAlIj48L2Rpdj4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQiPjwv
ZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0i
YmFja2dyb3VuZC1wb3NpdGlvbjogMCAwIj48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0
eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMHB4IDIwcHgiPjwvZGl2PgorICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xh
c3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDEwJSA1MCUiPjwvZGl2PgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAg
IDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IHRvcCAxMCUgbGVm
dCA1MCUiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9z
aXRpb246IHJpZ2h0IDEwJSBib3R0b20gNTAlIj48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3gi
IHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQiPjwvZGl2PgorICAgICAg
ICA8L2Rpdj4KKyAgICA8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2NoZWNrZXIucG5nIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2NoZWNrZXIucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0NzliNDc2MDk2
NGIzMjQ2OWU3ZGRhODU3YTdiM2VmZDkxMDU1ODYKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDE1
OAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXk1qKl89MXw7UnxKMm5FVFI4SlNqa2NAazhaKkFt
dGFeIUoybkNeMV8KeiFwP2VibUZZNUBTI0w7WER4Vkl7NkBMPFlfNH1KaWY5SzQjNF8+ZHckJDx0
PT0rRGdoey1IQjN0PX45PW4qfGotCmZTKzgoZXdMaEtUayVjMk1mP0xsSVhkIzJBdERubXtyLVVX
fGZWQ0B8CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271853</attachid>
            <date>2016-02-19 23:24:45 -0800</date>
            <delta_ts>2016-02-20 11:25:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154478-20160219232426.patch</filename>
            <type>text/plain</type>
            <size>54972</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2ODIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDA3YTE3NmY1YTk5Mzk2
ODJlZjc3NDFhY2JlZGI3YWFiYTczZTJlMi4uYjkyMTg0M2RkNDViOWJiYWExNTA5ZTkxNWU2ZTA2
NWYyNjg5MjcwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc5IEBACiAyMDE2LTAyLTE5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFJlcGVhdGVkIGJh
Y2tncm91bmQgaW1hZ2VzIGhhdmUgdGhlIHdyb25nIHBvc2l0aW9uIHdoZW4gdXNpbmcgYm90dG9t
L3JpZ2h0LXJlbGF0aXZlIGJhY2tncm91bmQtcG9zaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDQ3OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgRml4IGJhY2tncm91bmQtaW1hZ2Ug
cG9zaXRpb25pbmcgd2hlbiByZXBlYXRpbmcsIGFuZCB1c2luZyByaWdodC9ib3R0b20tcmVsYXRp
dmUgb2Zmc2V0cy4KKyAgICAgICAgCisgICAgICAgIFJhdGhlciB0aGFuIGNhcnJ5aW5nIGFyb3Vu
ZCBhIExlbmd0aCBhbmQgQmFja2dyb3VuZEVkZ2VPcmlnaW4gd2hpY2ggaXMgZXJyb3ItcHJvbmUs
CisgICAgICAgIGdyb3VwIHRoZW0gaW50byBhIEVkZ2VSZWxhdGl2ZUxlbmd0aCwgd2hpY2ggYWxs
b3dzIEZpbGxMYXllciB0byBqdXN0IGhhdmUgRWRnZVJlbGF0aXZlTGVuZ3RocworICAgICAgICBm
b3IgeCBhbmQgeS4gVGhpcyBlbGltaW5hdGVzIHRoZSBjb25mdXNpbmdseS1uYW1lZCBiYWNrZ3Jv
dW5kWC9ZT3JpZ2luIGluIEZpbGxMYXllci4KKyAgICAgICAgCisgICAgICAgIFJlbmFtZSBCYWNr
Z3JvdW5kRWRnZU9yaWdpbiB0byBjbGFzcyBFZGdlLgorICAgICAgICAKKyAgICAgICAgVGhlIHJl
bmRlcmluZyBmaXggaXMgaW4gUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUJhY2tncm91
bmRJbWFnZUdlb21ldHJ5KCksCisgICAgICAgIHdoaWNoIGNvbXB1dGVzIGEgdG9wLWxlZnQgcmVs
YXRpdmUgcG9zaXRpb24gYW5kIHVzZXMgaXQgZm9yIGJvdGggcmVwZWF0aW5nIGFuZAorICAgICAg
ICBub24tcmVwZWF0aW5nIGJhY2tncm91bmRzLgorICAgICAgICAKKyAgICAgICAgQSBtaW5vciBm
aXggaXMgbWFkZSB0byBjb21wdXRlZCBzdHlsZSwgd2hpY2ggbm93IHJldHVybnMgInJpZ2h0IDEw
cHgiIGlmIHRoYXQgd2FzIHNwZWNpZmllZAorICAgICAgICBpbiBiYWNrZ3JvdW5kLXBvc2l0aW9u
LiBIb3dldmVyLCB0aGlzIHdlIHN0aWxsIGRvbid0IHBhcnNlIHZhbHVlcyBvZiB0aGlzIGZvcm0g
aW4gYmFja2dyb3VuZC1wb3NpdGlvbi14L3kuCisKKyAgICAgICAgVGVzdDogZmFzdC9pbWFnZXMv
YmFja2dyb3VuZC1wb3NpdGlvbi5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmFwcGVuZEZpbGxMYXllclBvc2l0aW9uKTogSGVscGVyIGZvciBhcHBlbmRp
bmcgdGhlIGVkZ2UgaWYgc3BlY2lmaWVkLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUG9zaXRp
b25Gb3JMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQb3NpdGlvbkxpc3RGb3JMYXll
cik6CisgICAgICAgIChXZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZh
bHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFZGdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCYWNrZ3JvdW5kRWRnZU9yaWdp
bik6IERlbGV0ZWQuCisgICAgICAgICogY3NzL0NTU1RvU3R5bGVNYXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVG9TdHlsZU1hcDo6bWFwRmlsbFhQb3NpdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpDU1NUb1N0eWxlTWFwOjptYXBGaWxsWVBvc2l0aW9uKToKKyAgICAgICAgKiBwYWdlL2Fu
aW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpibGVu
ZEZ1bmMpOiBOZWVkIHRvIGJsZW5kIEVkZ2VSZWxhdGl2ZUxlbmd0aHMsIHdpdGggYSBGSVhNRSBh
Ym91dCBibGVuZGxpbmcgd2hlbiB0aGUgZWRnZSBpcyBkaWZmZXJlbnQuCisgICAgICAgIChXZWJD
b3JlOjpGaWxsTGF5ZXJzUHJvcGVydHlXcmFwcGVyOjpGaWxsTGF5ZXJzUHJvcGVydHlXcmFwcGVy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6cmVzb2x2ZUVkZ2VSZWxhdGl2ZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlQmFja2dyb3VuZEltYWdlR2VvbWV0cnkp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Om11c3RSZXBhaW50RmlsbExheWVycyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0Vk
Z2VSZWxhdGl2ZUxlbmd0aC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVkZ2VSZWxhdGl2
ZUxlbmd0aDo6RWRnZVJlbGF0aXZlTGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkVkZ2VSZWxh
dGl2ZUxlbmd0aDo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxM
YXllci5jcHA6IFdlIGxvc3Qgc29tZSBiaXRzIGJ1dCBnYWluZWQgc29tZSBwYWRkaW5nLgorICAg
ICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6
OkZpbGxMYXllcik6LgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpvcGVyYXRvcj0pOi4K
KyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6b3BlcmF0b3I9PSk6LgorICAgICAgICAoV2Vi
Q29yZTo6RmlsbExheWVyOjpmaWxsVW5zZXRQcm9wZXJ0aWVzKTouCisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL0ZpbGxMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjp4UG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjp5UG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsbExheWVyOjpzZXRYUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
RmlsbExheWVyOjpzZXRZUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpj
bGVhclhQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OmNsZWFyWVBvc2l0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6aW5pdGlhbEZpbGxYUG9zaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjppbml0aWFsRmlsbFlQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OmJhY2tncm91bmRYT3JpZ2luKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6YmFja2dyb3VuZFlPcmlnaW4pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjppc0JhY2tncm91bmRPcmlnaW5TZXQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpzZXRCYWNrZ3JvdW5kWE9yaWdp
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OnNldEJhY2tncm91bmRZ
T3JpZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisKKzIwMTYtMDItMTkgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgVXNlIG1vcmUgY29uY3JldGUgdHlwZXMg
Zm9yIHBhcnNpbmcgcG9zaXRpb25zCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTQ0ODEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2oKaW5kZXggYTZiMzQ1OTE2MWEzZDI5YjE4ODUwNDFlN2E2ZjMzOWU3
YWY5ZTAxOS4uZWU3MDBkNjgxMDQwZGVhODU3M2I4ODkyMTZkYzc3M2QxMjI1MjI4NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0yMjA2
NSw2ICsyMjA2NSw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5
bGVcQ3Vyc29yRGF0YS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5n
XHN0eWxlXEN1cnNvckxpc3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRl
cmluZ1xzdHlsZVxEYXRhUmVmLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5k
ZXJpbmdcc3R5bGVcRWRnZVJlbGF0aXZlTGVuZ3RoLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcRmlsbExheWVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZENvb3JkaW5hdGUuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkTGVuZ3RoLmgiIC8+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NDljZmZmMjViYzIwZWFkYjczOGQ0ZjQ3Nzk2ZjAxNzE3YWUzMTE1NC4uNjEzOWI2YjJhN2RkZTZl
NGI2ZGZiZDM5NjZmM2UxZjM1M2VlOWZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA1LDYgKzUwNSw3IEBACiAJCTBGNjA1
QUVEMTVGOTQ4NDgwMDRERjBDMCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2MDVBRUIxNUY5NDg0ODAwNERG
MEMwIC8qIFNjcm9sbGluZ0NvbnN0cmFpbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY2MzgzREQxODYxNUIyOTAwM0U1REI1IC8qIFRocmVh
ZGVkU2Nyb2xsaW5nVHJlZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjYzODNEQjE4NjE1QjI5MDAzRTVEQjUgLyogVGhyZWFkZWRTY3JvbGxpbmdU
cmVlLmNwcCAqLzsgfTsKIAkJMEY2MzgzREUxODYxNUIyOTAwM0U1REI1IC8qIFRocmVhZGVkU2Ny
b2xsaW5nVHJlZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY2MzgzREMxODYxNUIyOTAwM0U1REI1IC8qIFRocmVhZGVkU2Nyb2xsaW5nVHJlZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNjYxRUE0
MUM3N0Y0MkYwMDNEMDQ5RiAvKiBFZGdlUmVsYXRpdmVMZW5ndGguaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNjYxRUEzMUM3N0Y0MkYwMDNEMDQ5RiAv
KiBFZGdlUmVsYXRpdmVMZW5ndGguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjZBMTJCRDFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3Zl
cmxheXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY2QTEyQkIxQTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFnZU92ZXJsYXlzLmNwcCAqLzsgfTsK
IAkJMEY2QTEyQkUxQTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFnZU92ZXJsYXlzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZBMTJCQzFBMDA5MjM3
MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjdEMDczMzE4ODRDNTZDMDBCNEFGODYgLyogUGxh
dGZvcm1UZXh0VHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3Mjg0N0UyMTZFQkM1QjAwMDQzQ0ZBNCAvKiBQbGF0Zm9ybVRleHRUcmFjay5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC03OTAyLDYg
Kzc5MDMsNyBAQAogCQkwRjYwNUFFQjE1Rjk0ODQ4MDA0REYwQzAgLyogU2Nyb2xsaW5nQ29uc3Ry
YWludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsaW5nQ29uc3Ry
YWludHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2MzgzREIxODYxNUIyOTAw
M0U1REI1IC8qIFRocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBUaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjYzODNEQzE4NjE1QjI5MDAzRTVEQjUgLyogVGhyZWFkZWRTY3Jv
bGxpbmdUcmVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRocmVhZGVkU2Ny
b2xsaW5nVHJlZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjY2MUVBMzFDNzdG
NDJGMDAzRDA0OUYgLyogRWRnZVJlbGF0aXZlTGVuZ3RoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEVkZ2VSZWxhdGl2ZUxlbmd0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjZBMTJCQjFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVidWdQYWdlT3ZlcmxheXMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjZBMTJCQzFBMDA5MjM3MDBDNkRF
NzIgLyogRGVidWdQYWdlT3ZlcmxheXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGVidWdQYWdlT3ZlcmxheXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5
N0E2NTcxNTVEQTgxRTAwRkFERDRDIC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvcklPUy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERpc3BsYXlSZWZyZXNoTW9uaXRv
cklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyNTEyLDYgKzIyNTE0LDcg
QEAKIAkJCQlCQzIyNzJBMTBFODJFODdDMDBFN0Y5NzUgLyogQ3Vyc29yRGF0YS5oICovLAogCQkJ
CUJDMjI3MkFDMEU4MkU4RjMwMEU3Rjk3NSAvKiBDdXJzb3JMaXN0LmggKi8sCiAJCQkJQkMyMjc0
NkUwRTgzNjY0NTAwRTdGOTc1IC8qIERhdGFSZWYuaCAqLywKKwkJCQkwRjY2MUVBMzFDNzdGNDJG
MDAzRDA0OUYgLyogRWRnZVJlbGF0aXZlTGVuZ3RoLmggKi8sCiAJCQkJQkM1RUI2OUMwRTgxREFF
QjAwQjI1OTY1IC8qIEZpbGxMYXllci5jcHAgKi8sCiAJCQkJQkM1RUI2OUQwRTgxREFFQjAwQjI1
OTY1IC8qIEZpbGxMYXllci5oICovLAogCQkJCUNEM0UyNTFCMTgwNDZCMDYwMEUyN0Y1NiAvKiBH
cmlkQ29vcmRpbmF0ZS5oICovLApAQCAtMjU5ODAsNiArMjU5ODMsNyBAQAogCQkJCUIyQzNEQTY4
MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FzY2FkZUZvbnRzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMkFGRkM3RTBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNjYwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnREZXNjcmlw
dGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2NjFFQTQxQzc3RjQyRjAwM0QwNDlGIC8qIEVk
Z2VSZWxhdGl2ZUxlbmd0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE2RTlGQzgxM0MxN0Q1NzAw
NDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTQwOUVC
REI2MTZCN0VFQTMwMENCQTNGQyAvKiBGb250TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
ODQ1NjgwODEyQjkwREE2MDA5NjBBOUYgLyogRm9udE1ldHJpY3MuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cAppbmRleCA3YWVhNmFmYjMyOTc5MzEzYzcyNWNkNWM1MTBjZTE1NmI0ODkwNjE3Li5mNGUzYzU5
ZjVlYjhiZmQ3NzcxYzAxNGU3ZDgxNjJlMDZlMGYyN2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtNjg0LDE5ICs2ODQs
MzIgQEAgc3RhdGljIFJlZjxDU1NWYWx1ZT4gdmFsdWVGb3JSZWZsZWN0aW9uKGNvbnN0IFN0eWxl
UmVmbGVjdGlvbiogcmVmbGVjdGlvbiwgY29uc3QKICAgICByZXR1cm4gQ1NTUmVmbGVjdFZhbHVl
OjpjcmVhdGUoZGlyZWN0aW9uLnJlbGVhc2UoKSwgb2Zmc2V0LnJlbGVhc2UoKSwgdmFsdWVGb3JO
aW5lUGllY2VJbWFnZShyZWZsZWN0aW9uLT5tYXNrKCkpKTsKIH0KIAotc3RhdGljIFJlZjxDU1NW
YWx1ZUxpc3Q+IGNyZWF0ZVBvc2l0aW9uTGlzdEZvckxheWVyKENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJRCwgY29uc3QgRmlsbExheWVyKiBsYXllciwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQor
c3RhdGljIHZvaWQgYXBwZW5kRmlsbExheWVyUG9zaXRpb24oQ1NTVmFsdWVMaXN0JiBsaXN0LCBj
b25zdCBFZGdlUmVsYXRpdmVMZW5ndGgmIGxlbmd0aCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
KQogewotICAgIGF1dG8gcG9zaXRpb25MaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNl
cGFyYXRlZCgpOwotICAgIGlmIChsYXllci0+aXNCYWNrZ3JvdW5kT3JpZ2luU2V0KCkpIHsKLSAg
ICAgICAgQVNTRVJUX1VOVVNFRChwcm9wZXJ0eUlELCBwcm9wZXJ0eUlEID09IENTU1Byb3BlcnR5
QmFja2dyb3VuZFBvc2l0aW9uIHx8IHByb3BlcnR5SUQgPT0gQ1NTUHJvcGVydHlXZWJraXRNYXNr
UG9zaXRpb24pOwotICAgICAgICBwb3NpdGlvbkxpc3QuZ2V0KCkuYXBwZW5kKENTU1ZhbHVlUG9v
bDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUobGF5ZXItPmJhY2tncm91bmRYT3JpZ2luKCkpKTsK
LSAgICB9Ci0gICAgcG9zaXRpb25MaXN0LmdldCgpLmFwcGVuZCh6b29tQWRqdXN0ZWRQaXhlbFZh
bHVlRm9yTGVuZ3RoKGxheWVyLT54UG9zaXRpb24oKSwgc3R5bGUpKTsKLSAgICBpZiAobGF5ZXIt
PmlzQmFja2dyb3VuZE9yaWdpblNldCgpKSB7Ci0gICAgICAgIEFTU0VSVChwcm9wZXJ0eUlEID09
IENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uIHx8IHByb3BlcnR5SUQgPT0gQ1NTUHJvcGVy
dHlXZWJraXRNYXNrUG9zaXRpb24pOwotICAgICAgICBwb3NpdGlvbkxpc3QuZ2V0KCkuYXBwZW5k
KENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUobGF5ZXItPmJhY2tncm91bmRZ
T3JpZ2luKCkpKTsKKyAgICBpZiAobGVuZ3RoLmVkZ2VTcGVjaWZpZWQpCisgICAgICAgIGxpc3Qu
YXBwZW5kKENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUobGVuZ3RoLmVkZ2Up
KTsKKworICAgIGxpc3QuYXBwZW5kKHpvb21BZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgobGVu
Z3RoLmxlbmd0aCwgc3R5bGUpKTsKK30KKworc3RhdGljIFJlZjxDU1NWYWx1ZT4gY3JlYXRlUG9z
aXRpb25Gb3JMYXllcihjb25zdCBFZGdlUmVsYXRpdmVMZW5ndGgmIGxlbmd0aCwgY29uc3QgUmVu
ZGVyU3R5bGUmIHN0eWxlKQoreworICAgIGlmIChsZW5ndGguZWRnZVNwZWNpZmllZCkgeworICAg
ICAgICBhdXRvIGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7Cisg
ICAgICAgIGFwcGVuZEZpbGxMYXllclBvc2l0aW9uKGxpc3QsIGxlbmd0aCwgc3R5bGUpOworICAg
ICAgICByZXR1cm4gV1RGTW92ZShsaXN0KTsKICAgICB9Ci0gICAgcG9zaXRpb25MaXN0LmdldCgp
LmFwcGVuZCh6b29tQWRqdXN0ZWRQaXhlbFZhbHVlRm9yTGVuZ3RoKGxheWVyLT55UG9zaXRpb24o
KSwgc3R5bGUpKTsKKworICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0
ZVZhbHVlKGxlbmd0aC5sZW5ndGgpOworfQorCitzdGF0aWMgUmVmPENTU1ZhbHVlTGlzdD4gY3Jl
YXRlUG9zaXRpb25MaXN0Rm9yTGF5ZXIoY29uc3QgRmlsbExheWVyKiBsYXllciwgY29uc3QgUmVu
ZGVyU3R5bGUmIHN0eWxlKQoreworICAgIGF1dG8gcG9zaXRpb25MaXN0ID0gQ1NTVmFsdWVMaXN0
OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOworCisgICAgYXBwZW5kRmlsbExheWVyUG9zaXRpb24o
cG9zaXRpb25MaXN0LCBsYXllci0+eFBvc2l0aW9uKCksIHN0eWxlKTsKKyAgICBhcHBlbmRGaWxs
TGF5ZXJQb3NpdGlvbihwb3NpdGlvbkxpc3QsIGxheWVyLT55UG9zaXRpb24oKSwgc3R5bGUpOwor
CiAgICAgcmV0dXJuIHBvc2l0aW9uTGlzdDsKIH0KIApAQCAtMjUzOSwyMiArMjU1MiwyMiBAQCBS
ZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnByb3BlcnR5VmFsdWUoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eUlELAogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFz
a1Bvc2l0aW9uOiB7CiAgICAgICAgICAgICBjb25zdCBGaWxsTGF5ZXIqIGxheWVycyA9IHByb3Bl
cnR5SUQgPT0gQ1NTUHJvcGVydHlXZWJraXRNYXNrUG9zaXRpb24gPyBzdHlsZS0+bWFza0xheWVy
cygpIDogc3R5bGUtPmJhY2tncm91bmRMYXllcnMoKTsKICAgICAgICAgICAgIGlmICghbGF5ZXJz
LT5uZXh0KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVBvc2l0aW9uTGlzdEZvckxh
eWVyKHByb3BlcnR5SUQsIGxheWVycywgKnN0eWxlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
Y3JlYXRlUG9zaXRpb25MaXN0Rm9yTGF5ZXIobGF5ZXJzLCAqc3R5bGUpOwogCiAgICAgICAgICAg
ICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVDb21tYVNl
cGFyYXRlZCgpOwogICAgICAgICAgICAgZm9yIChjb25zdCBGaWxsTGF5ZXIqIGN1cnJMYXllciA9
IGxheWVyczsgY3VyckxheWVyOyBjdXJyTGF5ZXIgPSBjdXJyTGF5ZXItPm5leHQoKSkKLSAgICAg
ICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3JlYXRlUG9zaXRpb25MaXN0Rm9yTGF5ZXIocHJvcGVy
dHlJRCwgY3VyckxheWVyLCAqc3R5bGUpKTsKKyAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQo
Y3JlYXRlUG9zaXRpb25MaXN0Rm9yTGF5ZXIoY3VyckxheWVyLCAqc3R5bGUpKTsKICAgICAgICAg
ICAgIHJldHVybiBsaXN0OwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNr
Z3JvdW5kUG9zaXRpb25YOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0
aW9uWDogewogICAgICAgICAgICAgY29uc3QgRmlsbExheWVyKiBsYXllcnMgPSBwcm9wZXJ0eUlE
ID09IENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uWCA/IHN0eWxlLT5tYXNrTGF5ZXJzKCkg
OiBzdHlsZS0+YmFja2dyb3VuZExheWVycygpOwogICAgICAgICAgICAgaWYgKCFsYXllcnMtPm5l
eHQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKGxh
eWVycy0+eFBvc2l0aW9uKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVQb3NpdGlv
bkZvckxheWVyKGxheWVycy0+eFBvc2l0aW9uKCksICpzdHlsZSk7CiAKICAgICAgICAgICAgIFJl
ZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJh
dGVkKCk7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IEZpbGxMYXllciogY3VyckxheWVyID0gbGF5
ZXJzOyBjdXJyTGF5ZXI7IGN1cnJMYXllciA9IGN1cnJMYXllci0+bmV4dCgpKQotICAgICAgICAg
ICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoY3VyckxheWVyLT54
UG9zaXRpb24oKSkpOworICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2wu
Y3JlYXRlVmFsdWUoY3VyckxheWVyLT54UG9zaXRpb24oKS5sZW5ndGgpKTsKIAogICAgICAgICAg
ICAgcmV0dXJuIGxpc3Q7CiAgICAgICAgIH0KQEAgLTI1NjIsMTEgKzI1NzUsMTEgQEAgUmVmUHRy
PENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZhbHVlKENTU1Byb3Bl
cnR5SUQgcHJvcGVydHlJRCwKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tQb3Np
dGlvblk6IHsKICAgICAgICAgICAgIGNvbnN0IEZpbGxMYXllciogbGF5ZXJzID0gcHJvcGVydHlJ
RCA9PSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlvblkgPyBzdHlsZS0+bWFza0xheWVycygp
IDogc3R5bGUtPmJhY2tncm91bmRMYXllcnMoKTsKICAgICAgICAgICAgIGlmICghbGF5ZXJzLT5u
ZXh0KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShs
YXllcnMtPnlQb3NpdGlvbigpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29s
LmNyZWF0ZVZhbHVlKGxheWVycy0+eVBvc2l0aW9uKCkubGVuZ3RoKTsKIAogICAgICAgICAgICAg
UmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlQ29tbWFTZXBh
cmF0ZWQoKTsKICAgICAgICAgICAgIGZvciAoY29uc3QgRmlsbExheWVyKiBjdXJyTGF5ZXIgPSBs
YXllcnM7IGN1cnJMYXllcjsgY3VyckxheWVyID0gY3VyckxheWVyLT5uZXh0KCkpCi0gICAgICAg
ICAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShjdXJyTGF5ZXIt
PnlQb3NpdGlvbigpKSk7CisgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9v
bC5jcmVhdGVWYWx1ZShjdXJyTGF5ZXItPnlQb3NpdGlvbigpLmxlbmd0aCkpOwogCiAgICAgICAg
ICAgICByZXR1cm4gbGlzdDsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5kZXggYTlhYWE5NGM3OTg0YzUyZmVkMjljMjg0ZDFm
ZGZiYzk1NjNiZmQ4Mi4uZjdlYmJjZDc2MDA4ZmE5YmZhMDlkNjU1YzliNDA0NGQwMzRhN2U5NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3Mu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBA
IC05MDIsNDUgKzkwMiw0NSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgRUJveERlY29yYXRpb25CcmVhaygpIGNvbnN0CiB9CiAjZW5kaWYKIAotdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJhY2tncm91
bmRFZGdlT3JpZ2luIGUpCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoRWRnZSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7
CiAgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUp
IHsKLSAgICBjYXNlIFRvcEVkZ2U6CisgICAgY2FzZSBFZGdlOjpUb3A6CiAgICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlVG9wOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFJpZ2h0
RWRnZToKKyAgICBjYXNlIEVkZ2U6OlJpZ2h0OgogICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVJpZ2h0OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEJvdHRvbUVkZ2U6CisgICAg
Y2FzZSBFZGdlOjpCb3R0b206CiAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm90
dG9tOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIExlZnRFZGdlOgorICAgIGNhc2UgRWRnZTo6
TGVmdDoKICAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0OwogICAgICAgICBi
cmVhazsKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBCYWNrZ3JvdW5kRWRnZU9yaWdpbigpIGNvbnN0Cit0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRWRnZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlz
VmFsdWVJRCgpKTsKIAogICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZVRvcDoKLSAgICAgICAgcmV0dXJuIFRvcEVkZ2U7CisgICAgICAgIHJldHVybiBFZGdl
OjpUb3A7CiAgICAgY2FzZSBDU1NWYWx1ZVJpZ2h0OgotICAgICAgICByZXR1cm4gUmlnaHRFZGdl
OworICAgICAgICByZXR1cm4gRWRnZTo6UmlnaHQ7CiAgICAgY2FzZSBDU1NWYWx1ZUJvdHRvbToK
LSAgICAgICAgcmV0dXJuIEJvdHRvbUVkZ2U7CisgICAgICAgIHJldHVybiBFZGdlOjpCb3R0b207
CiAgICAgY2FzZSBDU1NWYWx1ZUxlZnQ6Ci0gICAgICAgIHJldHVybiBMZWZ0RWRnZTsKKyAgICAg
ICAgcmV0dXJuIEVkZ2U6OkxlZnQ7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAg
fQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFRvcEVkZ2U7CisgICAg
cmV0dXJuIEVkZ2U6OlRvcDsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVCb3hTaXppbmcgZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0
eWxlTWFwLmNwcAppbmRleCA5NjFlYTEwNTdkOTBiNWI0MDlmMTA0MDU4NmYxZGQzNGZkMWVjNDYz
Li45NTU1Yzc5N2U3NDBiYTUwZmJkZWRkZDIzOTJkMzU4NGI5NmM0YTlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1RvU3R5bGVNYXAuY3BwCkBAIC0yMzUsOSArMjM1LDExIEBAIHZvaWQgQ1NTVG9TdHls
ZU1hcDo6bWFwRmlsbFhQb3NpdGlvbihDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIEZpbGxMYXll
ciYgbGF5ZXIsCiAKICAgICBhdXRvKiBwcmltaXRpdmVWYWx1ZSA9ICZkb3duY2FzdDxDU1NQcmlt
aXRpdmVWYWx1ZT4odmFsdWUpOwogICAgIFBhaXIqIHBhaXIgPSBwcmltaXRpdmVWYWx1ZS0+Z2V0
UGFpclZhbHVlKCk7CisgICAgRWRnZSBlZGdlID0gRWRnZTo6TGVmdDsKICAgICBpZiAocGFpcikg
ewogICAgICAgICBBU1NFUlRfVU5VU0VEKHByb3BlcnR5SUQsIHByb3BlcnR5SUQgPT0gQ1NTUHJv
cGVydHlCYWNrZ3JvdW5kUG9zaXRpb25YIHx8IHByb3BlcnR5SUQgPT0gQ1NTUHJvcGVydHlXZWJr
aXRNYXNrUG9zaXRpb25YKTsKICAgICAgICAgcHJpbWl0aXZlVmFsdWUgPSBwYWlyLT5zZWNvbmQo
KTsKKyAgICAgICAgZWRnZSA9ICpwYWlyLT5maXJzdCgpOwogICAgIH0KIAogICAgIExlbmd0aCBs
ZW5ndGg7CkBAIC0yNTAsOSArMjUyLDcgQEAgdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBGaWxsWFBv
c2l0aW9uKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgRmlsbExheWVyJiBsYXllciwKICAgICBl
bHNlCiAgICAgICAgIHJldHVybjsKIAotICAgIGxheWVyLnNldFhQb3NpdGlvbihsZW5ndGgpOwot
ICAgIGlmIChwYWlyKQotICAgICAgICBsYXllci5zZXRCYWNrZ3JvdW5kWE9yaWdpbigqcGFpci0+
Zmlyc3QoKSk7CisgICAgbGF5ZXIuc2V0WFBvc2l0aW9uKEVkZ2VSZWxhdGl2ZUxlbmd0aChsZW5n
dGgsIGVkZ2UsIHBhaXIpKTsKIH0KIAogdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBGaWxsWVBvc2l0
aW9uKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgRmlsbExheWVyJiBsYXllciwgY29uc3QgQ1NT
VmFsdWUmIHZhbHVlKQpAQCAtMjY3LDkgKzI2NywxMSBAQCB2b2lkIENTU1RvU3R5bGVNYXA6Om1h
cEZpbGxZUG9zaXRpb24oQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBGaWxsTGF5ZXImIGxheWVy
LAogCiAgICAgYXV0byogcHJpbWl0aXZlVmFsdWUgPSAmZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFs
dWU+KHZhbHVlKTsKICAgICBQYWlyKiBwYWlyID0gcHJpbWl0aXZlVmFsdWUtPmdldFBhaXJWYWx1
ZSgpOworICAgIEVkZ2UgZWRnZSA9IEVkZ2U6OlRvcDsKICAgICBpZiAocGFpcikgewogICAgICAg
ICBBU1NFUlRfVU5VU0VEKHByb3BlcnR5SUQsIHByb3BlcnR5SUQgPT0gQ1NTUHJvcGVydHlCYWNr
Z3JvdW5kUG9zaXRpb25ZIHx8IHByb3BlcnR5SUQgPT0gQ1NTUHJvcGVydHlXZWJraXRNYXNrUG9z
aXRpb25ZKTsKICAgICAgICAgcHJpbWl0aXZlVmFsdWUgPSBwYWlyLT5zZWNvbmQoKTsKKyAgICAg
ICAgZWRnZSA9ICpwYWlyLT5maXJzdCgpOwogICAgIH0KIAogICAgIExlbmd0aCBsZW5ndGg7CkBA
IC0yODIsOSArMjg0LDcgQEAgdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBGaWxsWVBvc2l0aW9uKENT
U1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgRmlsbExheWVyJiBsYXllciwKICAgICBlbHNlCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGxheWVyLnNldFlQb3NpdGlvbihsZW5ndGgpOwotICAgIGlmIChw
YWlyKQotICAgICAgICBsYXllci5zZXRCYWNrZ3JvdW5kWU9yaWdpbigqcGFpci0+Zmlyc3QoKSk7
CisgICAgbGF5ZXIuc2V0WVBvc2l0aW9uKEVkZ2VSZWxhdGl2ZUxlbmd0aChsZW5ndGgsIGVkZ2Us
IHBhaXIpKTsKIH0KIAogdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBGaWxsTWFza1NvdXJjZVR5cGUo
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBGaWxsTGF5ZXImIGxheWVyLCBjb25zdCBDU1NWYWx1
ZSYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQ
cm9wZXJ0eUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQ
cm9wZXJ0eUFuaW1hdGlvbi5jcHAKaW5kZXggNDc0NTFjNWQ3ODdlOWUwZDBmMGIxZjdlOGFmMjBl
ODFiMWZiZDljYS4uOGRjODQwMDdhZDdhMzk4NDIwMmUxMWViNjhkMDU2OTMyYzRiMzg4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5p
bWF0aW9uLmNwcApAQCAtOTEsNiArOTEsMTUgQEAgc3RhdGljIGlubGluZSBMZW5ndGhTaXplIGJs
ZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBjb25zdCBMZW5ndGhTaXplJgogICAg
ICAgICAgICAgICAgICAgICAgIGJsZW5kRnVuYyhhbmltLCBmcm9tLmhlaWdodCgpLCB0by5oZWln
aHQoKSwgcHJvZ3Jlc3MpKTsKIH0KIAorc3RhdGljIGlubGluZSBFZGdlUmVsYXRpdmVMZW5ndGgg
YmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIGNvbnN0IEVkZ2VSZWxhdGl2ZUxl
bmd0aCYgZnJvbSwgY29uc3QgRWRnZVJlbGF0aXZlTGVuZ3RoJiB0bywgZG91YmxlIHByb2dyZXNz
KQoreworICAgIC8vIEZJWE1FOiBJZiB3ZSByZXByZXNlbnRlZCBlZGdlLXJlbGF0aXZlIGxlbmd0
aHMgYXMgY2FsYyBleHByZXNzaW9ucywgd2UgY291bGQgYW5pbWF0ZSB0aGVtLgorICAgIGlmIChm
cm9tLmVkZ2UgIT0gdG8uZWRnZSkKKyAgICAgICAgcmV0dXJuIHRvOworCisgICAgcmV0dXJuIEVk
Z2VSZWxhdGl2ZUxlbmd0aChibGVuZEZ1bmMoYW5pbSwgZnJvbS5sZW5ndGgsIHRvLmxlbmd0aCwg
cHJvZ3Jlc3MpLCB0by5lZGdlLCB0by5lZGdlU3BlY2lmaWVkKTsKK30KKwogc3RhdGljIGlubGlu
ZSBTaGFkb3dTdHlsZSBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgU2hhZG93
U3R5bGUgZnJvbSwgU2hhZG93U3R5bGUgdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBpZiAo
ZnJvbSA9PSB0bykKQEAgLTk3NiwxMSArOTg1LDExIEBAIHB1YmxpYzoKICAgICAgICAgc3dpdGNo
IChwcm9wKSB7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUG9zaXRpb25YOgog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uWDoKLSAgICAgICAgICAg
IG1fZmlsbExheWVyUHJvcGVydHlXcmFwcGVyID0gc3RkOjptYWtlX3VuaXF1ZTxGaWxsTGF5ZXJQ
cm9wZXJ0eVdyYXBwZXI8TGVuZ3RoPj4oJkZpbGxMYXllcjo6eFBvc2l0aW9uLCAmRmlsbExheWVy
OjpzZXRYUG9zaXRpb24pOworICAgICAgICAgICAgbV9maWxsTGF5ZXJQcm9wZXJ0eVdyYXBwZXIg
PSBzdGQ6Om1ha2VfdW5pcXVlPEZpbGxMYXllclByb3BlcnR5V3JhcHBlcjxFZGdlUmVsYXRpdmVM
ZW5ndGg+PigmRmlsbExheWVyOjp4UG9zaXRpb24sICZGaWxsTGF5ZXI6OnNldFhQb3NpdGlvbik7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRQ
b3NpdGlvblk6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUG9zaXRpb25ZOgot
ICAgICAgICAgICAgbV9maWxsTGF5ZXJQcm9wZXJ0eVdyYXBwZXIgPSBzdGQ6Om1ha2VfdW5pcXVl
PEZpbGxMYXllclByb3BlcnR5V3JhcHBlcjxMZW5ndGg+PigmRmlsbExheWVyOjp5UG9zaXRpb24s
ICZGaWxsTGF5ZXI6OnNldFlQb3NpdGlvbik7CisgICAgICAgICAgICBtX2ZpbGxMYXllclByb3Bl
cnR5V3JhcHBlciA9IHN0ZDo6bWFrZV91bmlxdWU8RmlsbExheWVyUHJvcGVydHlXcmFwcGVyPEVk
Z2VSZWxhdGl2ZUxlbmd0aD4+KCZGaWxsTGF5ZXI6OnlQb3NpdGlvbiwgJkZpbGxMYXllcjo6c2V0
WVBvc2l0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5
QmFja2dyb3VuZFNpemU6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCYWNrZ3JvdW5k
U2l6ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2Rl
bE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuY3BwCmluZGV4IDc0N2Y2ZmZlNzk3OTcyMzJmNmZkNDQwNjU2M2VjZTUxZDU1OGYwNDcuLjdj
MWVlNzk4ZTdlNjg3MmYzNWM0MTdlMWRlYzEyYWIzY2Q5YTE1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtMTA0NCw2ICsx
MDQ0LDIxIEBAIHN0YXRpYyBpbmxpbmUgTGF5b3V0VW5pdCBnZXRTcGFjZShMYXlvdXRVbml0IGFy
ZWFTaXplLCBMYXlvdXRVbml0IHRpbGVTaXplKQogICAgIHJldHVybiBzcGFjZTsKIH0KIAorc3Rh
dGljIExheW91dFVuaXQgcmVzb2x2ZUVkZ2VSZWxhdGl2ZUxlbmd0aChjb25zdCBFZGdlUmVsYXRp
dmVMZW5ndGgmIGxlbmd0aCwgTGF5b3V0VW5pdCBhdmFpbGFibGVTcGFjZSwgY29uc3QgTGF5b3V0
U2l6ZSYgYXJlYVNpemUsIGNvbnN0IExheW91dFNpemUmIHRpbGVTaXplKQoreworICAgIExheW91
dFVuaXQgcmVzdWx0ID0gbWluaW11bVZhbHVlRm9yTGVuZ3RoKGxlbmd0aC5sZW5ndGgsIGF2YWls
YWJsZVNwYWNlLCBmYWxzZSk7CisgICAgCisgICAgaWYgKGxlbmd0aC5lZGdlU3BlY2lmaWVkKSB7
CisgICAgICAgIGlmIChsZW5ndGguZWRnZSA9PSBFZGdlOjpSaWdodCkKKyAgICAgICAgICAgIHJl
dHVybiBhcmVhU2l6ZS53aWR0aCgpIC0gdGlsZVNpemUud2lkdGgoKSAtIHJlc3VsdDsKKyAgICAg
ICAgCisgICAgICAgIGlmIChsZW5ndGguZWRnZSA9PSBFZGdlOjpCb3R0b20pCisgICAgICAgICAg
ICByZXR1cm4gYXJlYVNpemUuaGVpZ2h0KCkgLSB0aWxlU2l6ZS5oZWlnaHQoKSAtIHJlc3VsdDsK
KyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRy
eSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlQmFja2dyb3VuZEltYWdlR2VvbWV0cnko
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcGFpbnRDb250YWluZXIsIGNvbnN0IEZpbGxM
YXllciYgZmlsbExheWVyLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsCiAgICAgY29u
c3QgTGF5b3V0UmVjdCYgYm9yZGVyQm94UmVjdCwgUmVuZGVyRWxlbWVudCogYmFja2dyb3VuZE9i
amVjdCkgY29uc3QKIHsKQEAgLTExNDcsNyArMTE2Miw3IEBAIEJhY2tncm91bmRJbWFnZUdlb21l
dHJ5IFJlbmRlckJveE1vZGVsT2JqZWN0OjpjYWxjdWxhdGVCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRy
eShjCiAgICAgTGF5b3V0U2l6ZSBzcGFjZVNpemU7CiAgICAgTGF5b3V0U2l6ZSBwaGFzZTsKICAg
ICBMYXlvdXRTaXplIG5vUmVwZWF0OwotICAgIExheW91dFVuaXQgY29tcHV0ZWRYUG9zaXRpb24g
PSBtaW5pbXVtVmFsdWVGb3JMZW5ndGgoZmlsbExheWVyLnhQb3NpdGlvbigpLCBhdmFpbGFibGVX
aWR0aCwgZmFsc2UpOworICAgIExheW91dFVuaXQgY29tcHV0ZWRYUG9zaXRpb24gPSByZXNvbHZl
RWRnZVJlbGF0aXZlTGVuZ3RoKGZpbGxMYXllci54UG9zaXRpb24oKSwgYXZhaWxhYmxlV2lkdGgs
IHBvc2l0aW9uaW5nQXJlYVNpemUsIHRpbGVTaXplKTsKICAgICBpZiAoYmFja2dyb3VuZFJlcGVh
dFggPT0gUm91bmRGaWxsICYmIHBvc2l0aW9uaW5nQXJlYVNpemUud2lkdGgoKSA+IDAgJiYgdGls
ZVNpemUud2lkdGgoKSA+IDApIHsKICAgICAgICAgaW50IG51bVRpbGVzID0gc3RkOjptYXgoMSwg
cm91bmRUb0ludChwb3NpdGlvbmluZ0FyZWFTaXplLndpZHRoKCkgLyB0aWxlU2l6ZS53aWR0aCgp
KSk7CiAgICAgICAgIGlmIChmaWxsTGF5ZXIuc2l6ZSgpLnNpemUuaGVpZ2h0KCkuaXNBdXRvKCkg
JiYgYmFja2dyb3VuZFJlcGVhdFkgIT0gUm91bmRGaWxsKQpAQCAtMTE1Nyw3ICsxMTcyLDcgQEAg
QmFja2dyb3VuZEltYWdlR2VvbWV0cnkgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUJh
Y2tncm91bmRJbWFnZUdlb21ldHJ5KGMKICAgICAgICAgcGhhc2Uuc2V0V2lkdGgodGlsZVNpemUu
d2lkdGgoKSA/IHRpbGVTaXplLndpZHRoKCkgLSBmbW9kZigoY29tcHV0ZWRYUG9zaXRpb24gKyBs
ZWZ0KSwgdGlsZVNpemUud2lkdGgoKSkgOiAwKTsKICAgICB9CiAKLSAgICBMYXlvdXRVbml0IGNv
bXB1dGVkWVBvc2l0aW9uID0gbWluaW11bVZhbHVlRm9yTGVuZ3RoKGZpbGxMYXllci55UG9zaXRp
b24oKSwgYXZhaWxhYmxlSGVpZ2h0LCBmYWxzZSk7CisgICAgTGF5b3V0VW5pdCBjb21wdXRlZFlQ
b3NpdGlvbiA9IHJlc29sdmVFZGdlUmVsYXRpdmVMZW5ndGgoZmlsbExheWVyLnlQb3NpdGlvbigp
LCBhdmFpbGFibGVIZWlnaHQsIHBvc2l0aW9uaW5nQXJlYVNpemUsIHRpbGVTaXplKTsKICAgICBp
ZiAoYmFja2dyb3VuZFJlcGVhdFkgPT0gUm91bmRGaWxsICYmIHBvc2l0aW9uaW5nQXJlYVNpemUu
aGVpZ2h0KCkgPiAwICYmIHRpbGVTaXplLmhlaWdodCgpID4gMCkgewogICAgICAgICBpbnQgbnVt
VGlsZXMgPSBzdGQ6Om1heCgxLCByb3VuZFRvSW50KHBvc2l0aW9uaW5nQXJlYVNpemUuaGVpZ2h0
KCkgLyB0aWxlU2l6ZS5oZWlnaHQoKSkpOwogICAgICAgICBpZiAoZmlsbExheWVyLnNpemUoKS5z
aXplLndpZHRoKCkuaXNBdXRvKCkgJiYgYmFja2dyb3VuZFJlcGVhdFggIT0gUm91bmRGaWxsKQpA
QCAtMTE4MSw4ICsxMTk2LDkgQEAgQmFja2dyb3VuZEltYWdlR2VvbWV0cnkgUmVuZGVyQm94TW9k
ZWxPYmplY3Q6OmNhbGN1bGF0ZUJhY2tncm91bmRJbWFnZUdlb21ldHJ5KGMKICAgICAgICAgfSBl
bHNlCiAgICAgICAgICAgICBiYWNrZ3JvdW5kUmVwZWF0WCA9IE5vUmVwZWF0RmlsbDsKICAgICB9
CisKICAgICBpZiAoYmFja2dyb3VuZFJlcGVhdFggPT0gTm9SZXBlYXRGaWxsKSB7Ci0gICAgICAg
IExheW91dFVuaXQgeE9mZnNldCA9IGxlZnQgKyAoZmlsbExheWVyLmJhY2tncm91bmRYT3JpZ2lu
KCkgPT0gUmlnaHRFZGdlID8gYXZhaWxhYmxlV2lkdGggLSBjb21wdXRlZFhQb3NpdGlvbiA6IGNv
bXB1dGVkWFBvc2l0aW9uKTsKKyAgICAgICAgTGF5b3V0VW5pdCB4T2Zmc2V0ID0gbGVmdCArIGNv
bXB1dGVkWFBvc2l0aW9uOwogICAgICAgICBpZiAoeE9mZnNldCA+IDApCiAgICAgICAgICAgICBk
ZXN0aW5hdGlvblJlY3QubW92ZSh4T2Zmc2V0LCAwKTsKICAgICAgICAgeE9mZnNldCA9IHN0ZDo6
bWluPExheW91dFVuaXQ+KHhPZmZzZXQsIDApOwpAQCAtMTIwNiw3ICsxMjIyLDcgQEAgQmFja2dy
b3VuZEltYWdlR2VvbWV0cnkgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUJhY2tncm91
bmRJbWFnZUdlb21ldHJ5KGMKICAgICAgICAgICAgIGJhY2tncm91bmRSZXBlYXRZID0gTm9SZXBl
YXRGaWxsOwogICAgIH0KICAgICBpZiAoYmFja2dyb3VuZFJlcGVhdFkgPT0gTm9SZXBlYXRGaWxs
KSB7Ci0gICAgICAgIExheW91dFVuaXQgeU9mZnNldCA9IHRvcCArIChmaWxsTGF5ZXIuYmFja2dy
b3VuZFlPcmlnaW4oKSA9PSBCb3R0b21FZGdlID8gYXZhaWxhYmxlSGVpZ2h0IC0gY29tcHV0ZWRZ
UG9zaXRpb24gOiBjb21wdXRlZFlQb3NpdGlvbik7CisgICAgICAgIExheW91dFVuaXQgeU9mZnNl
dCA9IHRvcCArIGNvbXB1dGVkWVBvc2l0aW9uOwogICAgICAgICBpZiAoeU9mZnNldCA+IDApCiAg
ICAgICAgICAgICBkZXN0aW5hdGlvblJlY3QubW92ZSgwLCB5T2Zmc2V0KTsKICAgICAgICAgeU9m
ZnNldCA9IHN0ZDo6bWluPExheW91dFVuaXQ+KHlPZmZzZXQsIDApOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IDY5NzMxZjIxZWI2YzI0ZDNhNjQ1YTI2
NzMwM2FhZTI1YTRjM2MxMDAuLmZkN2I1ZGI3MTM4YWYzMjBlZjUzN2U4ODcxZDczNGJkYTU4NzU3
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTEy
NDQsNyArMTI0NCw3IEBAIHN0YXRpYyBib29sIG11c3RSZXBhaW50RmlsbExheWVycyhjb25zdCBS
ZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgRmlsbExheWVyCiAgICAgaWYgKCFpbWFnZSB8
fCAhaW1hZ2UtPmNhblJlbmRlcigmcmVuZGVyZXIsIHJlbmRlcmVyLnN0eWxlKCkuZWZmZWN0aXZl
Wm9vbSgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFsYXllci0+eFBvc2l0
aW9uKCkuaXNaZXJvKCkgfHwgIWxheWVyLT55UG9zaXRpb24oKS5pc1plcm8oKSkKKyAgICBpZiAo
IWxheWVyLT54UG9zaXRpb24oKS5sZW5ndGguaXNaZXJvKCkgfHwgIWxheWVyLT55UG9zaXRpb24o
KS5sZW5ndGguaXNaZXJvKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgRUZpbGxTaXpl
VHlwZSBzaXplVHlwZSA9IGxheWVyLT5zaXplVHlwZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0VkZ2VSZWxhdGl2ZUxlbmd0aC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL0VkZ2VSZWxhdGl2ZUxlbmd0aC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1NjJj
YmQyZmI2NmJjMjc3YTcyMGM3MGI1ZDg2Nzg5ZTc4NzkwNjEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRWRnZVJlbGF0aXZlTGVuZ3RoLmgKQEAgLTAs
MCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgRWRnZVJlbGF0aXZlTGVuZ3RoX2gKKyNkZWZpbmUgRWRnZVJlbGF0aXZlTGVuZ3Ro
X2gKKworI2luY2x1ZGUgIkxlbmd0aC5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRz
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEVkZ2VSZWxhdGl2ZUxlbmd0aCB7
CitwdWJsaWM6CisgICAgRWRnZVJlbGF0aXZlTGVuZ3RoKExlbmd0aCBpbkxlbmd0aCwgRWRnZSBp
bkVkZ2UsIGJvb2wgaW5FZGdlU3BlY2lmaWVkKQorICAgICAgICA6IGxlbmd0aChpbkxlbmd0aCkK
KyAgICAgICAgLCBlZGdlKGluRWRnZSkKKyAgICAgICAgLCBlZGdlU3BlY2lmaWVkKGluRWRnZVNw
ZWNpZmllZCkKKyAgICB7CisgICAgfQorICAgIAorICAgIEVkZ2VSZWxhdGl2ZUxlbmd0aCgpCisg
ICAgICAgIDogZWRnZShFZGdlOjpMZWZ0KQorICAgICAgICAsIGVkZ2VTcGVjaWZpZWQoZmFsc2Up
CisgICAgeworICAgIH0KKyAgICAKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRWRnZVJlbGF0
aXZlTGVuZ3RoJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBsZW5ndGggPT0g
b3RoZXIubGVuZ3RoICYmIGVkZ2UgPT0gb3RoZXIuZWRnZTsKKyAgICB9CisgICAgCisgICAgTGVu
Z3RoIGxlbmd0aDsKKyAgICBFZGdlIGVkZ2U7CisgICAgYm9vbCBlZGdlU3BlY2lmaWVkIDogMTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVkZ2VSZWxhdGl2ZUxl
bmd0aF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExh
eWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCmlu
ZGV4IDFmNDE5ODhmMjIxMjBhMTQ2MDY4OTUxMzVkMTJkZTFjZDg3NWMwYzMuLjYyZDAyNmZkOTQy
NzY1NTBhNjEwZGI0N2UxNWM1NjRjZWNjMzA1ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCkBAIC0zMiwxMyArMzIsMTMgQEAgc3RydWN0IFNhbWVT
aXplQXNGaWxsTGF5ZXIgewogCiAgICAgUmVmUHRyPFN0eWxlSW1hZ2U+IGltYWdlOwogCi0gICAg
TGVuZ3RoIHg7Ci0gICAgTGVuZ3RoIHk7CisgICAgRWRnZVJlbGF0aXZlTGVuZ3RoIHg7CisgICAg
RWRnZVJlbGF0aXZlTGVuZ3RoIHk7CiAKICAgICBMZW5ndGhTaXplIHNpemVMZW5ndGg7CiAKLSAg
ICB1bnNpZ25lZCBiaXRmaWVsZHMgOiAzMjsKLSAgICB1bnNpZ25lZCBiaXRmaWVsZHMyIDogMTE7
CisgICAgdW5zaWduZWQgYml0ZmllbGRzIDogMjQ7CisgICAgdW5zaWduZWQgYml0ZmllbGRzMiA6
IDE0OwogfTsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKEZpbGxMYXllcikgPT0gc2l6ZW9mKFNh
bWVTaXplQXNGaWxsTGF5ZXIpLCBGaWxsTGF5ZXJfc2hvdWxkX3N0YXlfc21hbGwpOwpAQCAtNjQs
OSArNjQsNiBAQCBGaWxsTGF5ZXI6OkZpbGxMYXllcihFRmlsbExheWVyVHlwZSB0eXBlKQogICAg
ICwgbV9yZXBlYXRZU2V0KGZhbHNlKQogICAgICwgbV94UG9zU2V0KGZhbHNlKQogICAgICwgbV95
UG9zU2V0KGZhbHNlKQotICAgICwgbV9iYWNrZ3JvdW5kT3JpZ2luU2V0KGZhbHNlKQotICAgICwg
bV9iYWNrZ3JvdW5kWE9yaWdpbihMZWZ0RWRnZSkKLSAgICAsIG1fYmFja2dyb3VuZFlPcmlnaW4o
VG9wRWRnZSkKICAgICAsIG1fY29tcG9zaXRlU2V0KHR5cGUgPT0gTWFza0ZpbGxMYXllcikKICAg
ICAsIG1fYmxlbmRNb2RlU2V0KGZhbHNlKQogICAgICwgbV9tYXNrU291cmNlVHlwZVNldChmYWxz
ZSkKQEAgLTk3LDkgKzk0LDYgQEAgRmlsbExheWVyOjpGaWxsTGF5ZXIoY29uc3QgRmlsbExheWVy
JiBvKQogICAgICwgbV9yZXBlYXRZU2V0KG8ubV9yZXBlYXRZU2V0KQogICAgICwgbV94UG9zU2V0
KG8ubV94UG9zU2V0KQogICAgICwgbV95UG9zU2V0KG8ubV95UG9zU2V0KQotICAgICwgbV9iYWNr
Z3JvdW5kT3JpZ2luU2V0KG8ubV9iYWNrZ3JvdW5kT3JpZ2luU2V0KQotICAgICwgbV9iYWNrZ3Jv
dW5kWE9yaWdpbihvLm1fYmFja2dyb3VuZFhPcmlnaW4pCi0gICAgLCBtX2JhY2tncm91bmRZT3Jp
Z2luKG8ubV9iYWNrZ3JvdW5kWU9yaWdpbikKICAgICAsIG1fY29tcG9zaXRlU2V0KG8ubV9jb21w
b3NpdGVTZXQpCiAgICAgLCBtX2JsZW5kTW9kZVNldChvLm1fYmxlbmRNb2RlU2V0KQogICAgICwg
bV9tYXNrU291cmNlVHlwZVNldChvLm1fbWFza1NvdXJjZVR5cGVTZXQpCkBAIC0xMjAsOSArMTE0
LDYgQEAgRmlsbExheWVyJiBGaWxsTGF5ZXI6Om9wZXJhdG9yPShjb25zdCBGaWxsTGF5ZXImIG8p
CiAgICAgbV9pbWFnZSA9IG8ubV9pbWFnZTsKICAgICBtX3hQb3NpdGlvbiA9IG8ubV94UG9zaXRp
b247CiAgICAgbV95UG9zaXRpb24gPSBvLm1feVBvc2l0aW9uOwotICAgIG1fYmFja2dyb3VuZFhP
cmlnaW4gPSBvLm1fYmFja2dyb3VuZFhPcmlnaW47Ci0gICAgbV9iYWNrZ3JvdW5kWU9yaWdpbiA9
IG8ubV9iYWNrZ3JvdW5kWU9yaWdpbjsKLSAgICBtX2JhY2tncm91bmRPcmlnaW5TZXQgPSBvLm1f
YmFja2dyb3VuZE9yaWdpblNldDsKICAgICBtX3NpemVMZW5ndGggPSBvLm1fc2l6ZUxlbmd0aDsK
ICAgICBtX2F0dGFjaG1lbnQgPSBvLm1fYXR0YWNobWVudDsKICAgICBtX2NsaXAgPSBvLm1fY2xp
cDsKQEAgLTE1Niw3ICsxNDcsNiBAQCBib29sIEZpbGxMYXllcjo6b3BlcmF0b3I9PShjb25zdCBG
aWxsTGF5ZXImIG8pIGNvbnN0CiAgICAgLy8gV2UgZG8gbm90IGNoZWNrIHRoZSAiaXNTZXQiIGJv
b2xlYW5zIGZvciBlYWNoIHByb3BlcnR5LCBzaW5jZSB0aG9zZSBhcmUgb25seSB1c2VkIGR1cmlu
ZyBpbml0aWFsIGNvbnN0cnVjdGlvbgogICAgIC8vIHRvIHByb3BhZ2F0ZSBwYXR0ZXJucyBpbnRv
IGxheWVycy4gQWxsIGxheWVyIGNvbXBhcmlzb25zIGhhcHBlbiBhZnRlciB2YWx1ZXMgaGF2ZSBh
bGwgYmVlbiBmaWxsZWQgaW4gYW55d2F5LgogICAgIHJldHVybiBhcmVQb2ludGluZ1RvRXF1YWxE
YXRhKG1faW1hZ2UuZ2V0KCksIG8ubV9pbWFnZS5nZXQoKSkgJiYgbV94UG9zaXRpb24gPT0gby5t
X3hQb3NpdGlvbiAmJiBtX3lQb3NpdGlvbiA9PSBvLm1feVBvc2l0aW9uCi0gICAgICAgICYmIG1f
YmFja2dyb3VuZFhPcmlnaW4gPT0gby5tX2JhY2tncm91bmRYT3JpZ2luICYmIG1fYmFja2dyb3Vu
ZFlPcmlnaW4gPT0gby5tX2JhY2tncm91bmRZT3JpZ2luCiAgICAgICAgICYmIG1fYXR0YWNobWVu
dCA9PSBvLm1fYXR0YWNobWVudCAmJiBtX2NsaXAgPT0gby5tX2NsaXAgJiYgbV9jb21wb3NpdGUg
PT0gby5tX2NvbXBvc2l0ZQogICAgICAgICAmJiBtX2JsZW5kTW9kZSA9PSBvLm1fYmxlbmRNb2Rl
ICYmIG1fb3JpZ2luID09IG8ubV9vcmlnaW4gJiYgbV9yZXBlYXRYID09IG8ubV9yZXBlYXRYCiAg
ICAgICAgICYmIG1fcmVwZWF0WSA9PSBvLm1fcmVwZWF0WSAmJiBtX3NpemVUeXBlID09IG8ubV9z
aXplVHlwZSAmJiBtX21hc2tTb3VyY2VUeXBlID09IG8ubV9tYXNrU291cmNlVHlwZQpAQCAtMTcy
LDEwICsxNjIsNiBAQCB2b2lkIEZpbGxMYXllcjo6ZmlsbFVuc2V0UHJvcGVydGllcygpCiAgICAg
ICAgIC8vIFdlIG5lZWQgdG8gZmlsbCBpbiB0aGUgcmVtYWluaW5nIHZhbHVlcyB3aXRoIHRoZSBw
YXR0ZXJuIHNwZWNpZmllZC4KICAgICAgICAgZm9yIChGaWxsTGF5ZXIqIHBhdHRlcm4gPSB0aGlz
OyBjdXJyOyBjdXJyID0gY3Vyci0+bmV4dCgpKSB7CiAgICAgICAgICAgICBjdXJyLT5tX3hQb3Np
dGlvbiA9IHBhdHRlcm4tPm1feFBvc2l0aW9uOwotICAgICAgICAgICAgaWYgKHBhdHRlcm4tPmlz
QmFja2dyb3VuZE9yaWdpblNldCgpKSB7Ci0gICAgICAgICAgICAgICAgY3Vyci0+bV9iYWNrZ3Jv
dW5kWE9yaWdpbiA9IHBhdHRlcm4tPm1fYmFja2dyb3VuZFhPcmlnaW47Ci0gICAgICAgICAgICAg
ICAgY3Vyci0+bV9iYWNrZ3JvdW5kWU9yaWdpbiA9IHBhdHRlcm4tPm1fYmFja2dyb3VuZFlPcmln
aW47Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi0+bmV4dCgp
OwogICAgICAgICAgICAgaWYgKHBhdHRlcm4gPT0gY3VyciB8fCAhcGF0dGVybikKICAgICAgICAg
ICAgICAgICBwYXR0ZXJuID0gdGhpczsKQEAgLTE4NywxMCArMTczLDYgQEAgdm9pZCBGaWxsTGF5
ZXI6OmZpbGxVbnNldFByb3BlcnRpZXMoKQogICAgICAgICAvLyBXZSBuZWVkIHRvIGZpbGwgaW4g
dGhlIHJlbWFpbmluZyB2YWx1ZXMgd2l0aCB0aGUgcGF0dGVybiBzcGVjaWZpZWQuCiAgICAgICAg
IGZvciAoRmlsbExheWVyKiBwYXR0ZXJuID0gdGhpczsgY3VycjsgY3VyciA9IGN1cnItPm5leHQo
KSkgewogICAgICAgICAgICAgY3Vyci0+bV95UG9zaXRpb24gPSBwYXR0ZXJuLT5tX3lQb3NpdGlv
bjsKLSAgICAgICAgICAgIGlmIChwYXR0ZXJuLT5pc0JhY2tncm91bmRPcmlnaW5TZXQoKSkgewot
ICAgICAgICAgICAgICAgIGN1cnItPm1fYmFja2dyb3VuZFhPcmlnaW4gPSBwYXR0ZXJuLT5tX2Jh
Y2tncm91bmRYT3JpZ2luOwotICAgICAgICAgICAgICAgIGN1cnItPm1fYmFja2dyb3VuZFlPcmln
aW4gPSBwYXR0ZXJuLT5tX2JhY2tncm91bmRZT3JpZ2luOwotICAgICAgICAgICAgfQogICAgICAg
ICAgICAgcGF0dGVybiA9IHBhdHRlcm4tPm5leHQoKTsKICAgICAgICAgICAgIGlmIChwYXR0ZXJu
ID09IGN1cnIgfHwgIXBhdHRlcm4pCiAgICAgICAgICAgICAgICAgcGF0dGVybiA9IHRoaXM7CkBA
IC00MDcsMTYgKzM4OSwyMCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBjb25zdCBGaWxsTGF5ZXImIGxheWVyKQogICAgIHRzIDw8ICJmaWxsLWxheWVyIjsKIAogICAg
IHRzLnN0YXJ0R3JvdXAoKTsKLSAgICB0cyA8PCAicG9zaXRpb24gIiA8PCBsYXllci54UG9zaXRp
b24oKSA8PCAiICIgPDwgbGF5ZXIueVBvc2l0aW9uKCk7CisgICAgdHMgPDwgInBvc2l0aW9uICI7
CisgICAgaWYgKGxheWVyLnhQb3NpdGlvbigpLmVkZ2VTcGVjaWZpZWQpCisgICAgICAgIHRzIDw8
IGxheWVyLnhQb3NpdGlvbigpLmVkZ2UgPDwgIiAiOworICAgIHRzIDw8IGxheWVyLnhQb3NpdGlv
bigpLmxlbmd0aDsKKworICAgIHRzIDw8ICJwb3NpdGlvbiAiOworICAgIGlmIChsYXllci55UG9z
aXRpb24oKS5lZGdlU3BlY2lmaWVkKQorICAgICAgICB0cyA8PCBsYXllci55UG9zaXRpb24oKS5l
ZGdlIDw8ICIgIjsKKyAgICB0cyA8PCBsYXllci55UG9zaXRpb24oKS5sZW5ndGg7CiAgICAgdHMu
ZW5kR3JvdXAoKTsKIAogICAgIHRzLmR1bXBQcm9wZXJ0eSgic2l6ZSIsIGxheWVyLnNpemUoKSk7
CiAKICAgICB0cy5zdGFydEdyb3VwKCk7Ci0gICAgdHMgPDwgImJhY2tncm91bmQtb3JpZ2luICIg
PDwgbGF5ZXIuYmFja2dyb3VuZFhPcmlnaW4oKSA8PCAiICIgPDwgbGF5ZXIuYmFja2dyb3VuZFlP
cmlnaW4oKTsKLSAgICB0cy5lbmRHcm91cCgpOwotCi0gICAgdHMuc3RhcnRHcm91cCgpOwogICAg
IHRzIDw8ICJyZXBlYXQgIiA8PCBsYXllci5yZXBlYXRYKCkgPDwgIiAiIDw8IGxheWVyLnJlcGVh
dFkoKTsKICAgICB0cy5lbmRHcm91cCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvRmlsbExheWVyLmgKaW5kZXggOGIwZTY1ZTNmN2Y0NGE2MGI4MjFjMTY5ZWFiM2U4Y2NjZTU3
NDU3Ny4uZTJkMDNiY2U2MWI1M2Q2MzJiMmE3YWViZTczYTEzYjIzMjI1OTFkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaApAQCAtMjUsNiArMjUsNyBAQAog
I2lmbmRlZiBGaWxsTGF5ZXJfaAogI2RlZmluZSBGaWxsTGF5ZXJfaAogCisjaW5jbHVkZSAiRWRn
ZVJlbGF0aXZlTGVuZ3RoLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgogI2luY2x1ZGUg
Ikxlbmd0aFNpemUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgpAQCAtNjgs
MTAgKzY5LDggQEAgcHVibGljOgogICAgIH5GaWxsTGF5ZXIoKTsKIAogICAgIFN0eWxlSW1hZ2Uq
IGltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZS5nZXQoKTsgfQotICAgIGNvbnN0IExlbmd0
aCYgeFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV94UG9zaXRpb247IH0KLSAgICBjb25zdCBM
ZW5ndGgmIHlQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1feVBvc2l0aW9uOyB9Ci0gICAgQmFj
a2dyb3VuZEVkZ2VPcmlnaW4gYmFja2dyb3VuZFhPcmlnaW4oKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxCYWNrZ3JvdW5kRWRnZU9yaWdpbj4obV9iYWNrZ3JvdW5kWE9yaWdpbik7IH0KLSAg
ICBCYWNrZ3JvdW5kRWRnZU9yaWdpbiBiYWNrZ3JvdW5kWU9yaWdpbigpIGNvbnN0IHsgcmV0dXJu
IHN0YXRpY19jYXN0PEJhY2tncm91bmRFZGdlT3JpZ2luPihtX2JhY2tncm91bmRZT3JpZ2luKTsg
fQorICAgIGNvbnN0IEVkZ2VSZWxhdGl2ZUxlbmd0aCYgeFBvc2l0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV94UG9zaXRpb247IH0KKyAgICBjb25zdCBFZGdlUmVsYXRpdmVMZW5ndGgmIHlQb3NpdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1feVBvc2l0aW9uOyB9CiAgICAgRUZpbGxBdHRhY2htZW50IGF0
dGFjaG1lbnQoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFRmlsbEF0dGFjaG1lbnQ+KG1f
YXR0YWNobWVudCk7IH0KICAgICBFRmlsbEJveCBjbGlwKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8RUZpbGxCb3g+KG1fY2xpcCk7IH0KICAgICBFRmlsbEJveCBvcmlnaW4oKSBjb25zdCB7
IHJldHVybiBzdGF0aWNfY2FzdDxFRmlsbEJveD4obV9vcmlnaW4pOyB9CkBAIC05MCw3ICs4OSw2
IEBAIHB1YmxpYzoKICAgICBib29sIGlzSW1hZ2VTZXQoKSBjb25zdCB7IHJldHVybiBtX2ltYWdl
U2V0OyB9CiAgICAgYm9vbCBpc1hQb3NpdGlvblNldCgpIGNvbnN0IHsgcmV0dXJuIG1feFBvc1Nl
dDsgfQogICAgIGJvb2wgaXNZUG9zaXRpb25TZXQoKSBjb25zdCB7IHJldHVybiBtX3lQb3NTZXQ7
IH0KLSAgICBib29sIGlzQmFja2dyb3VuZE9yaWdpblNldCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFj
a2dyb3VuZE9yaWdpblNldDsgfQogICAgIGJvb2wgaXNBdHRhY2htZW50U2V0KCkgY29uc3QgeyBy
ZXR1cm4gbV9hdHRhY2htZW50U2V0OyB9CiAgICAgYm9vbCBpc0NsaXBTZXQoKSBjb25zdCB7IHJl
dHVybiBtX2NsaXBTZXQ7IH0KICAgICBib29sIGlzT3JpZ2luU2V0KCkgY29uc3QgeyByZXR1cm4g
bV9vcmlnaW5TZXQ7IH0KQEAgLTEwMiwxMCArMTAwLDggQEAgcHVibGljOgogICAgIGJvb2wgaXNN
YXNrU291cmNlVHlwZVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFza1NvdXJjZVR5cGVTZXQ7IH0K
IAogICAgIHZvaWQgc2V0SW1hZ2UoUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBpbWFnZSkgeyBtX2lt
YWdlID0gaW1hZ2U7IG1faW1hZ2VTZXQgPSB0cnVlOyB9Ci0gICAgdm9pZCBzZXRYUG9zaXRpb24o
TGVuZ3RoIGxlbmd0aCkgeyBtX3hQb3NpdGlvbiA9IFdURk1vdmUobGVuZ3RoKTsgbV94UG9zU2V0
ID0gdHJ1ZTsgfQotICAgIHZvaWQgc2V0WVBvc2l0aW9uKExlbmd0aCBsZW5ndGgpIHsgbV95UG9z
aXRpb24gPSBXVEZNb3ZlKGxlbmd0aCk7IG1feVBvc1NldCA9IHRydWU7IH0KLSAgICB2b2lkIHNl
dEJhY2tncm91bmRYT3JpZ2luKEJhY2tncm91bmRFZGdlT3JpZ2luIG8pIHsgbV9iYWNrZ3JvdW5k
WE9yaWdpbiA9IG87IG1fYmFja2dyb3VuZE9yaWdpblNldCA9IHRydWU7IH0KLSAgICB2b2lkIHNl
dEJhY2tncm91bmRZT3JpZ2luKEJhY2tncm91bmRFZGdlT3JpZ2luIG8pIHsgbV9iYWNrZ3JvdW5k
WU9yaWdpbiA9IG87IG1fYmFja2dyb3VuZE9yaWdpblNldCA9IHRydWU7IH0KKyAgICB2b2lkIHNl
dFhQb3NpdGlvbihFZGdlUmVsYXRpdmVMZW5ndGggbGVuZ3RoKSB7IG1feFBvc2l0aW9uID0gbGVu
Z3RoOyBtX3hQb3NTZXQgPSB0cnVlOyB9CisgICAgdm9pZCBzZXRZUG9zaXRpb24oRWRnZVJlbGF0
aXZlTGVuZ3RoIGxlbmd0aCkgeyBtX3lQb3NpdGlvbiA9IGxlbmd0aDsgbV95UG9zU2V0ID0gdHJ1
ZTsgfQogICAgIHZvaWQgc2V0QXR0YWNobWVudChFRmlsbEF0dGFjaG1lbnQgYXR0YWNobWVudCkg
eyBtX2F0dGFjaG1lbnQgPSBhdHRhY2htZW50OyBtX2F0dGFjaG1lbnRTZXQgPSB0cnVlOyB9CiAg
ICAgdm9pZCBzZXRDbGlwKEVGaWxsQm94IGIpIHsgbV9jbGlwID0gYjsgbV9jbGlwU2V0ID0gdHJ1
ZTsgfQogICAgIHZvaWQgc2V0T3JpZ2luKEVGaWxsQm94IGIpIHsgbV9vcmlnaW4gPSBiOyBtX29y
aWdpblNldCA9IHRydWU7IH0KQEAgLTEyMCw4ICsxMTYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGNsZWFySW1hZ2UoKSB7IG1faW1hZ2UgPSBudWxscHRyOyBtX2ltYWdlU2V0ID0gZmFsc2U7IH0K
IAotICAgIHZvaWQgY2xlYXJYUG9zaXRpb24oKSB7IG1feFBvc1NldCA9IGZhbHNlOyBtX2JhY2tn
cm91bmRPcmlnaW5TZXQgPSBmYWxzZTsgfQotICAgIHZvaWQgY2xlYXJZUG9zaXRpb24oKSB7IG1f
eVBvc1NldCA9IGZhbHNlOyBtX2JhY2tncm91bmRPcmlnaW5TZXQgPSBmYWxzZTsgfQorICAgIHZv
aWQgY2xlYXJYUG9zaXRpb24oKSB7IG1feFBvc1NldCA9IGZhbHNlOyB9CisgICAgdm9pZCBjbGVh
cllQb3NpdGlvbigpIHsgbV95UG9zU2V0ID0gZmFsc2U7IH0KIAogICAgIHZvaWQgY2xlYXJBdHRh
Y2htZW50KCkgeyBtX2F0dGFjaG1lbnRTZXQgPSBmYWxzZTsgfQogICAgIHZvaWQgY2xlYXJDbGlw
KCkgeyBtX2NsaXBTZXQgPSBmYWxzZTsgfQpAQCAtMTY0LDggKzE2MCw4IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgQ29tcG9zaXRlT3BlcmF0b3IgaW5pdGlhbEZpbGxDb21wb3NpdGUoRUZpbGxMYXll
clR5cGUpIHsgcmV0dXJuIENvbXBvc2l0ZVNvdXJjZU92ZXI7IH0KICAgICBzdGF0aWMgQmxlbmRN
b2RlIGluaXRpYWxGaWxsQmxlbmRNb2RlKEVGaWxsTGF5ZXJUeXBlKSB7IHJldHVybiBCbGVuZE1v
ZGVOb3JtYWw7IH0KICAgICBzdGF0aWMgRmlsbFNpemUgaW5pdGlhbEZpbGxTaXplKEVGaWxsTGF5
ZXJUeXBlKSB7IHJldHVybiBGaWxsU2l6ZSgpOyB9Ci0gICAgc3RhdGljIExlbmd0aCBpbml0aWFs
RmlsbFhQb3NpdGlvbihFRmlsbExheWVyVHlwZSkgeyByZXR1cm4gTGVuZ3RoKDAuMGYsIFBlcmNl
bnQpOyB9Ci0gICAgc3RhdGljIExlbmd0aCBpbml0aWFsRmlsbFlQb3NpdGlvbihFRmlsbExheWVy
VHlwZSkgeyByZXR1cm4gTGVuZ3RoKDAuMGYsIFBlcmNlbnQpOyB9CisgICAgc3RhdGljIEVkZ2VS
ZWxhdGl2ZUxlbmd0aCBpbml0aWFsRmlsbFhQb3NpdGlvbihFRmlsbExheWVyVHlwZSkgeyByZXR1
cm4gRWRnZVJlbGF0aXZlTGVuZ3RoKExlbmd0aCgwLjBmLCBQZXJjZW50KSwgRWRnZTo6TGVmdCwg
ZmFsc2UpOyB9CisgICAgc3RhdGljIEVkZ2VSZWxhdGl2ZUxlbmd0aCBpbml0aWFsRmlsbFlQb3Np
dGlvbihFRmlsbExheWVyVHlwZSkgeyByZXR1cm4gRWRnZVJlbGF0aXZlTGVuZ3RoKExlbmd0aCgw
LjBmLCBQZXJjZW50KSwgRWRnZTo6VG9wLCBmYWxzZSk7IH0KICAgICBzdGF0aWMgU3R5bGVJbWFn
ZSogaW5pdGlhbEZpbGxJbWFnZShFRmlsbExheWVyVHlwZSkgeyByZXR1cm4gbnVsbHB0cjsgfQog
ICAgIHN0YXRpYyBFTWFza1NvdXJjZVR5cGUgaW5pdGlhbEZpbGxNYXNrU291cmNlVHlwZShFRmls
bExheWVyVHlwZSkgeyByZXR1cm4gTWFza0FscGhhOyB9CiAKQEAgLTE3OCw4ICsxNzQsOCBAQCBw
cml2YXRlOgogCiAgICAgUmVmUHRyPFN0eWxlSW1hZ2U+IG1faW1hZ2U7CiAKLSAgICBMZW5ndGgg
bV94UG9zaXRpb247Ci0gICAgTGVuZ3RoIG1feVBvc2l0aW9uOworICAgIEVkZ2VSZWxhdGl2ZUxl
bmd0aCBtX3hQb3NpdGlvbjsKKyAgICBFZGdlUmVsYXRpdmVMZW5ndGggbV95UG9zaXRpb247CiAK
ICAgICBMZW5ndGhTaXplIG1fc2l6ZUxlbmd0aDsKIApAQCAtMjAxLDkgKzE5Nyw2IEBAIHByaXZh
dGU6CiAgICAgdW5zaWduZWQgbV9yZXBlYXRZU2V0IDogMTsKICAgICB1bnNpZ25lZCBtX3hQb3NT
ZXQgOiAxOwogICAgIHVuc2lnbmVkIG1feVBvc1NldCA6IDE7Ci0gICAgdW5zaWduZWQgbV9iYWNr
Z3JvdW5kT3JpZ2luU2V0IDogMTsKLSAgICB1bnNpZ25lZCBtX2JhY2tncm91bmRYT3JpZ2luIDog
MjsgLy8gQmFja2dyb3VuZEVkZ2VPcmlnaW4KLSAgICB1bnNpZ25lZCBtX2JhY2tncm91bmRZT3Jp
Z2luIDogMjsgLy8gQmFja2dyb3VuZEVkZ2VPcmlnaW4KICAgICB1bnNpZ25lZCBtX2NvbXBvc2l0
ZVNldCA6IDE7CiAgICAgdW5zaWduZWQgbV9ibGVuZE1vZGVTZXQgOiAxOwogICAgIHVuc2lnbmVk
IG1fbWFza1NvdXJjZVR5cGVTZXQgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaAppbmRleCBhMjc0MjE1N2RjMjlhZTIyM2JkMThhY2NlNWJhOTI5YjNj
MzUyNWZjLi41ZTk0ZWFmYzA4MzIzOGJkMDZiNWFkZDg5NWRjZmJjNTczY2FmNmNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMzQsNiArMzQs
NyBAQAogI2luY2x1ZGUgIkNvbG9yU3BhY2UuaCIKICNpbmNsdWRlICJDb3VudGVyRGlyZWN0aXZl
cy5oIgogI2luY2x1ZGUgIkRhdGFSZWYuaCIKKyNpbmNsdWRlICJFZGdlUmVsYXRpdmVMZW5ndGgu
aCIKICNpbmNsdWRlICJGb250QmFzZWxpbmUuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24u
aCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCkBAIC03OTksOCArODAwLDggQEAgcHVibGlj
OgogICAgIEVGaWxsQXR0YWNobWVudCBiYWNrZ3JvdW5kQXR0YWNobWVudCgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PEVGaWxsQXR0YWNobWVudD4obV9iYWNrZ3JvdW5kLT5iYWNrZ3JvdW5k
KCkuYXR0YWNobWVudCgpKTsgfQogICAgIEVGaWxsQm94IGJhY2tncm91bmRDbGlwKCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8RUZpbGxCb3g+KG1fYmFja2dyb3VuZC0+YmFja2dyb3VuZCgp
LmNsaXAoKSk7IH0KICAgICBFRmlsbEJveCBiYWNrZ3JvdW5kT3JpZ2luKCkgY29uc3QgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8RUZpbGxCb3g+KG1fYmFja2dyb3VuZC0+YmFja2dyb3VuZCgpLm9yaWdp
bigpKTsgfQotICAgIGNvbnN0IExlbmd0aCYgYmFja2dyb3VuZFhQb3NpdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fYmFja2dyb3VuZC0+YmFja2dyb3VuZCgpLnhQb3NpdGlvbigpOyB9Ci0gICAgY29u
c3QgTGVuZ3RoJiBiYWNrZ3JvdW5kWVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZ3Jv
dW5kLT5iYWNrZ3JvdW5kKCkueVBvc2l0aW9uKCk7IH0KKyAgICBjb25zdCBFZGdlUmVsYXRpdmVM
ZW5ndGgmIGJhY2tncm91bmRYUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2JhY2tncm91bmQt
PmJhY2tncm91bmQoKS54UG9zaXRpb24oKTsgfQorICAgIGNvbnN0IEVkZ2VSZWxhdGl2ZUxlbmd0
aCYgYmFja2dyb3VuZFlQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2dyb3VuZC0+YmFj
a2dyb3VuZCgpLnlQb3NpdGlvbigpOyB9CiAgICAgRUZpbGxTaXplVHlwZSBiYWNrZ3JvdW5kU2l6
ZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX2JhY2tncm91bmQtPmJhY2tncm91bmQoKS5zaXplVHlw
ZSgpOyB9CiAgICAgY29uc3QgTGVuZ3RoU2l6ZSYgYmFja2dyb3VuZFNpemVMZW5ndGgoKSBjb25z
dCB7IHJldHVybiBtX2JhY2tncm91bmQtPmJhY2tncm91bmQoKS5zaXplTGVuZ3RoKCk7IH0KICAg
ICBGaWxsTGF5ZXImIGVuc3VyZUJhY2tncm91bmRMYXllcnMoKSB7IHJldHVybiBtX2JhY2tncm91
bmQuYWNjZXNzKCktPm1fYmFja2dyb3VuZDsgfQpAQCAtODEyLDggKzgxMyw4IEBAIHB1YmxpYzoK
ICAgICBDb21wb3NpdGVPcGVyYXRvciBtYXNrQ29tcG9zaXRlKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8Q29tcG9zaXRlT3BlcmF0b3I+KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX21hc2su
Y29tcG9zaXRlKCkpOyB9CiAgICAgRUZpbGxCb3ggbWFza0NsaXAoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxFRmlsbEJveD4ocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbWFzay5jbGlwKCkp
OyB9CiAgICAgRUZpbGxCb3ggbWFza09yaWdpbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0
PEVGaWxsQm94PihyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tYXNrLm9yaWdpbigpKTsgfQotICAg
IGNvbnN0IExlbmd0aCYgbWFza1hQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhl
cml0ZWREYXRhLT5tX21hc2sueFBvc2l0aW9uKCk7IH0KLSAgICBjb25zdCBMZW5ndGgmIG1hc2tZ
UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tYXNrLnlQ
b3NpdGlvbigpOyB9CisgICAgY29uc3QgRWRnZVJlbGF0aXZlTGVuZ3RoJiBtYXNrWFBvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbWFzay54UG9zaXRpb24o
KTsgfQorICAgIGNvbnN0IEVkZ2VSZWxhdGl2ZUxlbmd0aCYgbWFza1lQb3NpdGlvbigpIGNvbnN0
IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX21hc2sueVBvc2l0aW9uKCk7IH0KICAg
ICBFRmlsbFNpemVUeXBlIG1hc2tTaXplVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhl
cml0ZWREYXRhLT5tX21hc2suc2l6ZVR5cGUoKTsgfQogICAgIGNvbnN0IExlbmd0aFNpemUmIG1h
c2tTaXplTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbWFz
ay5zaXplTGVuZ3RoKCk7IH0KICAgICBGaWxsTGF5ZXImIGVuc3VyZU1hc2tMYXllcnMoKSB7IHJl
dHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tYXNrOyB9CkBAIC0xMjYzLDgg
KzEyNjQsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEJhY2tncm91bmRDb2xvcihjb25zdCBD
b2xvciYgdikgeyBTRVRfVkFSKG1fYmFja2dyb3VuZCwgbV9jb2xvciwgdik7IH0KIAotICAgIHZv
aWQgc2V0QmFja2dyb3VuZFhQb3NpdGlvbihMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIobV9iYWNr
Z3JvdW5kLCBtX2JhY2tncm91bmQubV94UG9zaXRpb24sIFdURk1vdmUobGVuZ3RoKSk7IH0KLSAg
ICB2b2lkIHNldEJhY2tncm91bmRZUG9zaXRpb24oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKG1f
YmFja2dyb3VuZCwgbV9iYWNrZ3JvdW5kLm1feVBvc2l0aW9uLCBXVEZNb3ZlKGxlbmd0aCkpOyB9
CisgICAgdm9pZCBzZXRCYWNrZ3JvdW5kWFBvc2l0aW9uKGNvbnN0IEVkZ2VSZWxhdGl2ZUxlbmd0
aCYgbGVuZ3RoKSB7IFNFVF9WQVIobV9iYWNrZ3JvdW5kLCBtX2JhY2tncm91bmQubV94UG9zaXRp
b24sIGxlbmd0aCk7IH0KKyAgICB2b2lkIHNldEJhY2tncm91bmRZUG9zaXRpb24oY29uc3QgRWRn
ZVJlbGF0aXZlTGVuZ3RoJiBsZW5ndGgpIHsgU0VUX1ZBUihtX2JhY2tncm91bmQsIG1fYmFja2dy
b3VuZC5tX3lQb3NpdGlvbiwgbGVuZ3RoKTsgfQogICAgIHZvaWQgc2V0QmFja2dyb3VuZFNpemUo
RUZpbGxTaXplVHlwZSBiKSB7IFNFVF9WQVIobV9iYWNrZ3JvdW5kLCBtX2JhY2tncm91bmQubV9z
aXplVHlwZSwgYik7IH0KICAgICB2b2lkIHNldEJhY2tncm91bmRTaXplTGVuZ3RoKExlbmd0aFNp
emUgc2l6ZSkgeyBTRVRfVkFSKG1fYmFja2dyb3VuZCwgbV9iYWNrZ3JvdW5kLm1fc2l6ZUxlbmd0
aCwgV1RGTW92ZShzaXplKSk7IH0KICAgICAKQEAgLTE0MTgsOCArMTQxOSw4IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgc2V0TWFza0JveEltYWdlKGNvbnN0IE5pbmVQaWVjZUltYWdlJiBiKSB7IFNF
VF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fbWFza0JveEltYWdlLCBiKTsgfQogICAgIHZv
aWQgc2V0TWFza0JveEltYWdlU291cmNlKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gdikgeyByYXJl
Tm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tYXNrQm94SW1hZ2Uuc2V0SW1hZ2Uodik7IH0K
LSAgICB2b2lkIHNldE1hc2tYUG9zaXRpb24oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHJhcmVO
b25Jbmhlcml0ZWREYXRhLCBtX21hc2subV94UG9zaXRpb24sIFdURk1vdmUobGVuZ3RoKSk7IH0K
LSAgICB2b2lkIHNldE1hc2tZUG9zaXRpb24oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHJhcmVO
b25Jbmhlcml0ZWREYXRhLCBtX21hc2subV95UG9zaXRpb24sIFdURk1vdmUobGVuZ3RoKSk7IH0K
KyAgICB2b2lkIHNldE1hc2tYUG9zaXRpb24oY29uc3QgRWRnZVJlbGF0aXZlTGVuZ3RoJiBsZW5n
dGgpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwgbV9tYXNrLm1feFBvc2l0aW9uLCBs
ZW5ndGgpOyB9CisgICAgdm9pZCBzZXRNYXNrWVBvc2l0aW9uKGNvbnN0IEVkZ2VSZWxhdGl2ZUxl
bmd0aCYgbGVuZ3RoKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fbWFzay5tX3lQ
b3NpdGlvbiwgbGVuZ3RoKTsgfQogICAgIHZvaWQgc2V0TWFza1NpemUoTGVuZ3RoU2l6ZSBzaXpl
KSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fbWFzay5tX3NpemVMZW5ndGgsIFdU
Rk1vdmUoc2l6ZSkpOyB9CiAKICAgICB2b2lkIHNldEJvcmRlckNvbGxhcHNlKEVCb3JkZXJDb2xs
YXBzZSBjb2xsYXBzZSkgeyBpbmhlcml0ZWRfZmxhZ3MuX2JvcmRlcl9jb2xsYXBzZSA9IGNvbGxh
cHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGVDb25zdGFudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlQ29uc3RhbnRzLmNwcAppbmRleCA4MzFkMTc5MjdhZGZhMGRkZTA1ZWU0YmUwYjIxN2Yy
NDI5YWQ3ZGNjLi5mMTNjZDdiZDkxMmY2NTdlODcyMGVmOTVkYjcwY2ZiNWJiZjQ2ZDZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFu
dHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNv
bnN0YW50cy5jcHAKQEAgLTg1LDEzICs4NSwxMyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBFTWFza1NvdXJjZVR5cGUgbWFza1NvdXJjZSkKICAgICByZXR1cm4gdHM7
CiB9CiAKLVRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEJhY2tncm91bmRF
ZGdlT3JpZ2luIGVkZ2UpCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBF
ZGdlIGVkZ2UpCiB7CiAgICAgc3dpdGNoIChlZGdlKSB7Ci0gICAgY2FzZSBUb3BFZGdlOiB0cyA8
PCAidG9wIjsgYnJlYWs7Ci0gICAgY2FzZSBSaWdodEVkZ2U6IHRzIDw8ICJyaWdodCI7IGJyZWFr
OwotICAgIGNhc2UgQm90dG9tRWRnZTogdHMgPDwgImJvdHRvbSI7IGJyZWFrOwotICAgIGNhc2Ug
TGVmdEVkZ2U6IHRzIDw8ICJsZWZ0IjsgYnJlYWs7CisgICAgY2FzZSBFZGdlOjpUb3A6IHRzIDw8
ICJ0b3AiOyBicmVhazsKKyAgICBjYXNlIEVkZ2U6OlJpZ2h0OiB0cyA8PCAicmlnaHQiOyBicmVh
azsKKyAgICBjYXNlIEVkZ2U6OkJvdHRvbTogdHMgPDwgImJvdHRvbSI7IGJyZWFrOworICAgIGNh
c2UgRWRnZTo6TGVmdDogdHMgPDwgImxlZnQiOyBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIHRz
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGVDb25zdGFudHMuaAppbmRleCBmZTZmNjMwYWQ0ODk0YTE1OTZjYWViZTkxM2VlOGUzNDE3M2M3
ZGExLi40OTJmNzhjNGQyZjEyOWQ0ZTA0OTRmMzNkMzNkMmEzYjc4ODkzMGMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMu
aApAQCAtMjMwLDggKzIzMCw4IEBAIGVudW0gRUZpbGxMYXllclR5cGUgewogLy8gQ1NTMyBCYWNr
Z3JvdW5kIFZhbHVlcwogZW51bSBFRmlsbFNpemVUeXBlIHsgQ29udGFpbiwgQ292ZXIsIFNpemVM
ZW5ndGgsIFNpemVOb25lIH07CiAKLS8vIENTUzMgQmFja2dyb3VuZCBQb3NpdGlvbgotZW51bSBC
YWNrZ3JvdW5kRWRnZU9yaWdpbiB7IFRvcEVkZ2UsIFJpZ2h0RWRnZSwgQm90dG9tRWRnZSwgTGVm
dEVkZ2UgfTsKKy8vIENTUzMgPHBvc2l0aW9uPgorZW51bSBjbGFzcyBFZGdlIHsgVG9wLCBSaWdo
dCwgQm90dG9tLCBMZWZ0IH07CiAKIC8vIENTUzMgTWFzayBTb3VyY2UgVHlwZXMKIGVudW0gRU1h
c2tTb3VyY2VUeXBlIHsgTWFza0FscGhhLCBNYXNrTHVtaW5hbmNlIH07CkBAIC02OTQsNyArNjk0
LDcgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgRUZpbGxBdHRhY2htZW50
KTsKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIEVGaWxsQm94KTsKIFRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIEVGaWxsUmVwZWF0KTsKIFRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIEVNYXNrU291cmNlVHlwZSk7Ci1UZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mLCBCYWNrZ3JvdW5kRWRnZU9yaWdpbik7CitUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBFZGdlKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggNTRjYjVkMWU1YjJlMDI5YmE1MDUzNTZhNjM0MjQwNzIzNDBiYmNlNS4uMWJm
NjBiMGQ0MTJmNWNiNTVlYzQ5ODkxYTQxNGM1YzI2MmYwMzllYSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDE2LTAyLTE5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFJlcGVhdGVkIGJhY2tncm91bmQgaW1hZ2VzIGhhdmUgdGhlIHdyb25nIHBvc2l0
aW9uIHdoZW4gdXNpbmcgYm90dG9tL3JpZ2h0LXJlbGF0aXZlIGJhY2tncm91bmQtcG9zaXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDQ3OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9j
c3MvYmFja2dyb3VuZC1wb3NpdGlvbi1zZXJpYWxpemUuaHRtbDogQWRkIG1vcmUgdGVzdHMsIHVz
aW5nICdib3R0b20nIGFuZCAncmlnaHQnIGtleXdvcmRzLgorICAgICAgICAqIGZhc3QvY3NzL2Jh
Y2tncm91bmQtcG9zaXRpb24tc2VyaWFsaXplLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L2ltYWdlcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvaW1hZ2VzL2JhY2tncm91bmQtcG9zaXRpb24uaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2NoZWNrZXIucG5nOiBBZGRlZC4KKwogMjAxNi0wMi0x
OSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWJhc2Vs
aW5lIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaW50ZXJmYWNlcy5o
dG1sIGZvciBpb3Mtc2ltdWxhdG9yIGFmdGVyIHIxOTY3OTcKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY3NzL2JhY2tncm91bmQtcG9zaXRpb24tc2VyaWFsaXplLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL2JhY2tncm91bmQtcG9zaXRpb24tc2VyaWFsaXplLWV4cGVj
dGVkLnR4dAppbmRleCA3YTBiMGZkY2EyYzNhNDQ0NzIzM2NjNjMwZDkxNjM0ODAzNTE0Y2FjLi40
MDYxY2ZhOWEzMjU0NzQzYmZiNDdjMjI2ZDhjYTcxMGM5NmQwMDQxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLXNlcmlhbGl6ZS1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvYmFja2dyb3VuZC1wb3NpdGlvbi1zZXJpYWxp
emUtZXhwZWN0ZWQudHh0CkBAIC01Niw2ICs1NiwxOSBAQCBQQVNTOiB0LnN0eWxlLmJhY2tncm91
bmRQb3NpdGlvbiBzaG91bGQgYmUgMTBweCAxNXB4LCAyMHB4IDI1cHgsIDMwcHggMzVweCBhbmQg
aQogUEFTUzogdC5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRpb25YIHNob3VsZCBiZSAxMHB4LCAyMHB4
LCAzMHB4IGFuZCBpcy4KIFBBU1M6IHQuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uWSBzaG91bGQg
YmUgMTVweCwgMjVweCwgMzVweCBhbmQgaXMuCiBQQVNTOiB0LnN0eWxlLmNzc1RleHQgc2hvdWxk
IGJlIGJhY2tncm91bmQtcG9zaXRpb246IDEwcHggMTVweCwgMjBweCAyNXB4LCAzMHB4IDM1cHg7
IGFuZCBpcy4KK3Quc2V0QXR0cmlidXRlKCdzdHlsZScsICdiYWNrZ3JvdW5kLXBvc2l0aW9uOiBi
b3R0b20gMTBweCByaWdodCAyMHB4Jyk7CitQQVNTOiB0LnN0eWxlLmJhY2tncm91bmRQb3NpdGlv
biBzaG91bGQgYmUgcmlnaHQgMjBweCBib3R0b20gMTBweCBhbmQgaXMuCitQQVNTOiB3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZSh0KS5iYWNrZ3JvdW5kUG9zaXRpb24gc2hvdWxkIGJlIHJpZ2h0IDIw
cHggYm90dG9tIDEwcHggYW5kIGlzLgordC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2JhY2tncm91
bmQtcG9zaXRpb246IHRvcCAxMHB4IHJpZ2h0IDIwcHgnKTsKK1BBU1M6IHQuc3R5bGUuYmFja2dy
b3VuZFBvc2l0aW9uIHNob3VsZCBiZSByaWdodCAyMHB4IHRvcCAxMHB4IGFuZCBpcy4KK1BBU1M6
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmJhY2tncm91bmRQb3NpdGlvbiBzaG91bGQgYmUg
cmlnaHQgMjBweCB0b3AgMTBweCBhbmQgaXMuCit0LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnYmFj
a2dyb3VuZC1wb3NpdGlvbjogNTAlIGxlZnQnKTsKK1BBU1M6IHQuc3R5bGUuYmFja2dyb3VuZFBv
c2l0aW9uIHNob3VsZCBiZSBhbmQgaXMuCit0LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnYmFja2dy
b3VuZC1wb3NpdGlvbi14OiByaWdodCAyMHB4Jyk7CitQQVNTOiB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZSh0KS5iYWNrZ3JvdW5kUG9zaXRpb25YIHNob3VsZCBiZSAwJSBhbmQgaXMuCit0LnNldEF0
dHJpYnV0ZSgnc3R5bGUnLCAnYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMjBweCBib3R0b20g
MTBweCcpOworUEFTUzogd2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuYmFja2dyb3VuZFBvc2l0
aW9uIHNob3VsZCBiZSByaWdodCAyMHB4IGJvdHRvbSAxMHB4IGFuZCBpcy4KK1BBU1M6IHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKHQpLmJhY2tncm91bmRQb3NpdGlvblggc2hvdWxkIGJlIHJpZ2h0
IDIwcHggYW5kIGlzLgogdC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2JhY2tncm91bmQ6IHVybChh
Ym91dDpibGFuaykgODAlIDgwJTsnKTsKIHQuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uWSA9ICc1
MHB4Jwogc3R5bGUuY3NzVGV4dCA9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9i
YWNrZ3JvdW5kLXBvc2l0aW9uLXNlcmlhbGl6ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
YmFja2dyb3VuZC1wb3NpdGlvbi1zZXJpYWxpemUuaHRtbAppbmRleCBkMzk1MGZmNjE5ZjBiOTIy
YWFiMDlmY2I4OTk2M2ZkZTk5ZWJlZTRjLi43ODczN2QwYzhmNDY4NTQxMTk4MjY1Njg5YjE4NWMz
OTk2M2Q2NDNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9iYWNrZ3JvdW5kLXBv
c2l0aW9uLXNlcmlhbGl6ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2JhY2tncm91
bmQtcG9zaXRpb24tc2VyaWFsaXplLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8aHRtbD4KIDxib2R5
PgotPGRpdiBpZD10PjwvZGl2PgotPGRpdiBpZD1jb25zb2xlPjwvZGl2PgorPGRpdiBpZD0idCI+
PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQ+CiBmdW5jdGlvbiBwcmlu
dChtZXNzYWdlLCBjb2xvcikgCiB7CkBAIC0xMTEsNiArMTExLDI0IEBAIHNob3VsZEJlKCJ0LnN0
eWxlLmJhY2tncm91bmRQb3NpdGlvblgiLCAiMTBweCwgMjBweCwgMzBweCIpOwogc2hvdWxkQmUo
InQuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uWSIsICIxNXB4LCAyNXB4LCAzNXB4Iik7CiBzaG91
bGRCZSgidC5zdHlsZS5jc3NUZXh0IiwgImJhY2tncm91bmQtcG9zaXRpb246IDEwcHggMTVweCwg
MjBweCAyNXB4LCAzMHB4IDM1cHg7Iik7CiAKK3J1bigidC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywg
J2JhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSAxMHB4IHJpZ2h0IDIwcHgnKTsiKTsKK3Nob3Vs
ZEJlKCJ0LnN0eWxlLmJhY2tncm91bmRQb3NpdGlvbiIsICJyaWdodCAyMHB4IGJvdHRvbSAxMHB4
Iik7CitzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuYmFja2dyb3VuZFBvc2l0
aW9uIiwgInJpZ2h0IDIwcHggYm90dG9tIDEwcHgiKTsKKworcnVuKCJ0LnNldEF0dHJpYnV0ZSgn
c3R5bGUnLCAnYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIDEwcHggcmlnaHQgMjBweCcpOyIpOwor
c2hvdWxkQmUoInQuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uIiwgInJpZ2h0IDIwcHggdG9wIDEw
cHgiKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5iYWNrZ3JvdW5kUG9z
aXRpb24iLCAicmlnaHQgMjBweCB0b3AgMTBweCIpOworCitydW4oInQuc2V0QXR0cmlidXRlKCdz
dHlsZScsICdiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgbGVmdCcpOyIpOyAvLyBJbnZhbGlkIHBl
ciBzcGVjLgorc2hvdWxkQmUoInQuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uIiwgIiIpOworCity
dW4oInQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IHJpZ2h0
IDIwcHgnKTsiKTsgLy8gVGhpcyBkb2VzIG5vdCBwYXJzZSwgYnV0IHBlcmhhcHMgaXQgc2hvdWxk
Lgorc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmJhY2tncm91bmRQb3NpdGlv
blgiLCAiMCUiKTsKKworcnVuKCJ0LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnYmFja2dyb3VuZC1w
b3NpdGlvbjogcmlnaHQgMjBweCBib3R0b20gMTBweCcpOyIpOworc2hvdWxkQmUoIndpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKHQpLmJhY2tncm91bmRQb3NpdGlvbiIsICJyaWdodCAyMHB4IGJvdHRv
bSAxMHB4Iik7CitzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuYmFja2dyb3Vu
ZFBvc2l0aW9uWCIsICJyaWdodCAyMHB4Iik7CisKIHJ1bigidC5zZXRBdHRyaWJ1dGUoJ3N0eWxl
JywgJ2JhY2tncm91bmQ6IHVybChhYm91dDpibGFuaykgODAlIDgwJTsnKTsiKTsKIHJ1bigidC5z
dHlsZS5iYWNrZ3JvdW5kUG9zaXRpb25ZID0gJzUwcHgnIik7CiBwcmludCgic3R5bGUuY3NzVGV4
dCA9Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9iYWNrZ3JvdW5kLXBv
c2l0aW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9iYWNrZ3JvdW5k
LXBvc2l0aW9uLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWRlNzU0NDE1YmRhY2MxZDM2ZDg0
YjMyMzA4YmMxM2NlMTllMmU5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2JhY2tncm91bmQtcG9zaXRpb24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDkwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAg
IC5jb250YWluZXIgeworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVp
Z2h0OiAxMDBweDsKKyAgICAgICAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgICAgICAgIGJvcmRl
cjogMnB4IHNvbGlkIGdyYXk7CisgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cisg
ICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIH0KKyAgICAgICAgLmJveCB7
CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB3aWR0aDogMTAw
cHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1p
bWFnZTogdXJsKCdyZXNvdXJjZXMvY2hlY2tlci5wbmcnKTsKKyAgICAgICAgICAgIGJhY2tncm91
bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5yZXBl
YXQgLmJveCB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0OworICAgICAg
ICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXY+CisgICAgICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxl
PSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDAiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIg
c3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDEwcHggMjBweCI+PC9kaXY+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBj
bGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogNXB4IDI1cHgiPjwvZGl2Pgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
ICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDI1cHggNXB4
Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9u
OiA0NXB4IDI1cHgiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91
bmQtcG9zaXRpb246IDEwMCUgMjVweCI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9InJlcGVhdCI+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0
aW9uOiAwIDAiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQt
cG9zaXRpb246IDEwcHggMjBweCI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0i
YmFja2dyb3VuZC1wb3NpdGlvbjogNXB4IDI1cHgiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJv
eCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDI1cHggNXB4Ij48L2Rpdj4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0NXB4IDI1cHgiPjwvZGl2
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDEwMCUg
MjVweCI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9
InJlcGVhdCI+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IC13ZWJraXQt
Y2xpcC1wYXRoOiBpbnNldCgwIDUwcHggNTBweCAwKTsiPjwvZGl2PgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDEwcHggMjBweDsgLXdlYmtpdC1jbGlw
LXBhdGg6IGluc2V0KDIwcHggNDBweCAzMHB4IDEwcHgpOyI+PC9kaXY+CisgICAgICAgIDwvZGl2
PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFz
cz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogNXB4IDI1cHg7IC13ZWJraXQtY2xp
cC1wYXRoOiBpbnNldCgyNXB4IDQ1cHggMjVweCA1cHgpOyI+PC9kaXY+CisgICAgICAgIDwvZGl2
PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFz
cz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMjVweCA1cHg7IC13ZWJraXQtY2xp
cC1wYXRoOiBpbnNldCg1cHggMjVweCA0NXB4IDI1cHgpOyI+PC9kaXY+CisgICAgICAgIDwvZGl2
PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFz
cz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogNDVweCAyNXB4OyAtd2Via2l0LWNs
aXAtcGF0aDogaW5zZXQoMjVweCA1cHggMjVweCA0NXB4KTsiPjwvZGl2PgorICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xh
c3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMjVweDsgLXdlYmtpdC1j
bGlwLXBhdGg6IGluc2V0KDI1cHggMCAyNXB4IDUwcHgpOyI+PC9kaXY+CisgICAgICAgIDwvZGl2
PgorICAgIDwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjJmZDU0ZTdhMzZk
Y2I1NDk4OWU4ZDM5MTQ1YjQ4MmVkNThmNTdiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2JhY2tncm91bmQtcG9zaXRpb24uaHRtbApAQCAtMCwwICsxLDkwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAg
IC5jb250YWluZXIgeworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVp
Z2h0OiAxMDBweDsKKyAgICAgICAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgICAgICAgIGJvcmRl
cjogMnB4IHNvbGlkIGdyYXk7CisgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cisg
ICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIH0KKyAgICAgICAgLmJveCB7
CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB3aWR0aDogMTAw
cHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1p
bWFnZTogdXJsKCdyZXNvdXJjZXMvY2hlY2tlci5wbmcnKTsKKyAgICAgICAgICAgIGJhY2tncm91
bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5yZXBl
YXQgLmJveCB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0OworICAgICAg
ICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXY+CisgICAgICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxl
PSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDAiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIg
c3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDEwcHggMjBweCI+PC9kaXY+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBj
bGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMTAlIDUwJSI+PC9kaXY+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAg
ICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIDEwJSBs
ZWZ0IDUwJSI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1w
b3NpdGlvbjogcmlnaHQgMTAlIGJvdHRvbSA1MCUiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJv
eCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodCI+PC9kaXY+CisgICAg
ICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlcGVhdCI+CisgICAgICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0
eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDAiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJv
eCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDEwcHggMjBweCI+PC9kaXY+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRp
diBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMTAlIDUwJSI+PC9kaXY+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIDEw
JSBsZWZ0IDUwJSI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3Vu
ZC1wb3NpdGlvbjogcmlnaHQgMTAlIGJvdHRvbSA1MCUiPjwvZGl2PgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodCI+PC9kaXY+Cisg
ICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3Jv
dW5kLXBvc2l0aW9uOiAwIDAiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJh
Y2tncm91bmQtcG9zaXRpb246IDEwcHggMjBweCI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94
IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMTAlIDUwJSI+PC9kaXY+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBj
bGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIDEwJSBsZWZ0IDUwJSI+
PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjog
cmlnaHQgMTAlIGJvdHRvbSA1MCUiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9
ImJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodCI+PC9kaXY+CisgICAgICAgIDwvZGl2
PgorICAgIDwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9yZXNvdXJjZXMvY2hlY2tlci5wbmcgYi9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9yZXNvdXJjZXMvY2hlY2tlci5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQ3OWI0NzYwOTY0YjMyNDY5
ZTdkZGE4NTdhN2IzZWZkOTEwNTU4NgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTU4CnpjbWVB
U0BOPyhvbEh5YHVWQnEhaWEwdnBeTWoqXz0xfDtSfEoybkVUUjhKU2prY0BrOFoqQW10YV4hSjJu
Q14xXwp6IXA/ZWJtRlk1QFMjTDtYRHhWSXs2QEw8WV80fUppZjlLNCM0Xz5kdyQkPHQ9PStEZ2h7
LUhCM3Q9fjk9bip8ai0KZlMrOChld0xoS1RrJWMyTWY/TGxJWGQjMkF0RG5te3ItVVd8ZlZDQHwK
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271863</attachid>
            <date>2016-02-20 11:25:32 -0800</date>
            <delta_ts>2016-02-22 12:45:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154478-20160220112512.patch</filename>
            <type>text/plain</type>
            <size>55317</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2ODIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDA3YTE3NmY1YTk5Mzk2
ODJlZjc3NDFhY2JlZGI3YWFiYTczZTJlMi4uYjkyMTg0M2RkNDViOWJiYWExNTA5ZTkxNWU2ZTA2
NWYyNjg5MjcwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc5IEBACiAyMDE2LTAyLTE5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFJlcGVhdGVkIGJh
Y2tncm91bmQgaW1hZ2VzIGhhdmUgdGhlIHdyb25nIHBvc2l0aW9uIHdoZW4gdXNpbmcgYm90dG9t
L3JpZ2h0LXJlbGF0aXZlIGJhY2tncm91bmQtcG9zaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDQ3OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgRml4IGJhY2tncm91bmQtaW1hZ2Ug
cG9zaXRpb25pbmcgd2hlbiByZXBlYXRpbmcsIGFuZCB1c2luZyByaWdodC9ib3R0b20tcmVsYXRp
dmUgb2Zmc2V0cy4KKyAgICAgICAgCisgICAgICAgIFJhdGhlciB0aGFuIGNhcnJ5aW5nIGFyb3Vu
ZCBhIExlbmd0aCBhbmQgQmFja2dyb3VuZEVkZ2VPcmlnaW4gd2hpY2ggaXMgZXJyb3ItcHJvbmUs
CisgICAgICAgIGdyb3VwIHRoZW0gaW50byBhIEVkZ2VSZWxhdGl2ZUxlbmd0aCwgd2hpY2ggYWxs
b3dzIEZpbGxMYXllciB0byBqdXN0IGhhdmUgRWRnZVJlbGF0aXZlTGVuZ3RocworICAgICAgICBm
b3IgeCBhbmQgeS4gVGhpcyBlbGltaW5hdGVzIHRoZSBjb25mdXNpbmdseS1uYW1lZCBiYWNrZ3Jv
dW5kWC9ZT3JpZ2luIGluIEZpbGxMYXllci4KKyAgICAgICAgCisgICAgICAgIFJlbmFtZSBCYWNr
Z3JvdW5kRWRnZU9yaWdpbiB0byBjbGFzcyBFZGdlLgorICAgICAgICAKKyAgICAgICAgVGhlIHJl
bmRlcmluZyBmaXggaXMgaW4gUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUJhY2tncm91
bmRJbWFnZUdlb21ldHJ5KCksCisgICAgICAgIHdoaWNoIGNvbXB1dGVzIGEgdG9wLWxlZnQgcmVs
YXRpdmUgcG9zaXRpb24gYW5kIHVzZXMgaXQgZm9yIGJvdGggcmVwZWF0aW5nIGFuZAorICAgICAg
ICBub24tcmVwZWF0aW5nIGJhY2tncm91bmRzLgorICAgICAgICAKKyAgICAgICAgQSBtaW5vciBm
aXggaXMgbWFkZSB0byBjb21wdXRlZCBzdHlsZSwgd2hpY2ggbm93IHJldHVybnMgInJpZ2h0IDEw
cHgiIGlmIHRoYXQgd2FzIHNwZWNpZmllZAorICAgICAgICBpbiBiYWNrZ3JvdW5kLXBvc2l0aW9u
LiBIb3dldmVyLCB0aGlzIHdlIHN0aWxsIGRvbid0IHBhcnNlIHZhbHVlcyBvZiB0aGlzIGZvcm0g
aW4gYmFja2dyb3VuZC1wb3NpdGlvbi14L3kuCisKKyAgICAgICAgVGVzdDogZmFzdC9pbWFnZXMv
YmFja2dyb3VuZC1wb3NpdGlvbi5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmFwcGVuZEZpbGxMYXllclBvc2l0aW9uKTogSGVscGVyIGZvciBhcHBlbmRp
bmcgdGhlIGVkZ2UgaWYgc3BlY2lmaWVkLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUG9zaXRp
b25Gb3JMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQb3NpdGlvbkxpc3RGb3JMYXll
cik6CisgICAgICAgIChXZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZh
bHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFZGdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCYWNrZ3JvdW5kRWRnZU9yaWdp
bik6IERlbGV0ZWQuCisgICAgICAgICogY3NzL0NTU1RvU3R5bGVNYXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVG9TdHlsZU1hcDo6bWFwRmlsbFhQb3NpdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpDU1NUb1N0eWxlTWFwOjptYXBGaWxsWVBvc2l0aW9uKToKKyAgICAgICAgKiBwYWdlL2Fu
aW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpibGVu
ZEZ1bmMpOiBOZWVkIHRvIGJsZW5kIEVkZ2VSZWxhdGl2ZUxlbmd0aHMsIHdpdGggYSBGSVhNRSBh
Ym91dCBibGVuZGxpbmcgd2hlbiB0aGUgZWRnZSBpcyBkaWZmZXJlbnQuCisgICAgICAgIChXZWJD
b3JlOjpGaWxsTGF5ZXJzUHJvcGVydHlXcmFwcGVyOjpGaWxsTGF5ZXJzUHJvcGVydHlXcmFwcGVy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6cmVzb2x2ZUVkZ2VSZWxhdGl2ZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlQmFja2dyb3VuZEltYWdlR2VvbWV0cnkp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Om11c3RSZXBhaW50RmlsbExheWVycyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0Vk
Z2VSZWxhdGl2ZUxlbmd0aC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVkZ2VSZWxhdGl2
ZUxlbmd0aDo6RWRnZVJlbGF0aXZlTGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkVkZ2VSZWxh
dGl2ZUxlbmd0aDo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxM
YXllci5jcHA6IFdlIGxvc3Qgc29tZSBiaXRzIGJ1dCBnYWluZWQgc29tZSBwYWRkaW5nLgorICAg
ICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6
OkZpbGxMYXllcik6LgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpvcGVyYXRvcj0pOi4K
KyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6b3BlcmF0b3I9PSk6LgorICAgICAgICAoV2Vi
Q29yZTo6RmlsbExheWVyOjpmaWxsVW5zZXRQcm9wZXJ0aWVzKTouCisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL0ZpbGxMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjp4UG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjp5UG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsbExheWVyOjpzZXRYUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
RmlsbExheWVyOjpzZXRZUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpj
bGVhclhQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OmNsZWFyWVBvc2l0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6aW5pdGlhbEZpbGxYUG9zaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjppbml0aWFsRmlsbFlQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OmJhY2tncm91bmRYT3JpZ2luKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6YmFja2dyb3VuZFlPcmlnaW4pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjppc0JhY2tncm91bmRPcmlnaW5TZXQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpzZXRCYWNrZ3JvdW5kWE9yaWdp
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OnNldEJhY2tncm91bmRZ
T3JpZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisKKzIwMTYtMDItMTkgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgVXNlIG1vcmUgY29uY3JldGUgdHlwZXMg
Zm9yIHBhcnNpbmcgcG9zaXRpb25zCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTQ0ODEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2oKaW5kZXggYTZiMzQ1OTE2MWEzZDI5YjE4ODUwNDFlN2E2ZjMzOWU3
YWY5ZTAxOS4uZWU3MDBkNjgxMDQwZGVhODU3M2I4ODkyMTZkYzc3M2QxMjI1MjI4NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0yMjA2
NSw2ICsyMjA2NSw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5
bGVcQ3Vyc29yRGF0YS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5n
XHN0eWxlXEN1cnNvckxpc3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRl
cmluZ1xzdHlsZVxEYXRhUmVmLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5k
ZXJpbmdcc3R5bGVcRWRnZVJlbGF0aXZlTGVuZ3RoLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcRmlsbExheWVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZENvb3JkaW5hdGUuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkTGVuZ3RoLmgiIC8+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NDljZmZmMjViYzIwZWFkYjczOGQ0ZjQ3Nzk2ZjAxNzE3YWUzMTE1NC4uNjEzOWI2YjJhN2RkZTZl
NGI2ZGZiZDM5NjZmM2UxZjM1M2VlOWZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA1LDYgKzUwNSw3IEBACiAJCTBGNjA1
QUVEMTVGOTQ4NDgwMDRERjBDMCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2MDVBRUIxNUY5NDg0ODAwNERG
MEMwIC8qIFNjcm9sbGluZ0NvbnN0cmFpbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY2MzgzREQxODYxNUIyOTAwM0U1REI1IC8qIFRocmVh
ZGVkU2Nyb2xsaW5nVHJlZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjYzODNEQjE4NjE1QjI5MDAzRTVEQjUgLyogVGhyZWFkZWRTY3JvbGxpbmdU
cmVlLmNwcCAqLzsgfTsKIAkJMEY2MzgzREUxODYxNUIyOTAwM0U1REI1IC8qIFRocmVhZGVkU2Ny
b2xsaW5nVHJlZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY2MzgzREMxODYxNUIyOTAwM0U1REI1IC8qIFRocmVhZGVkU2Nyb2xsaW5nVHJlZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNjYxRUE0
MUM3N0Y0MkYwMDNEMDQ5RiAvKiBFZGdlUmVsYXRpdmVMZW5ndGguaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNjYxRUEzMUM3N0Y0MkYwMDNEMDQ5RiAv
KiBFZGdlUmVsYXRpdmVMZW5ndGguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjZBMTJCRDFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3Zl
cmxheXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY2QTEyQkIxQTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFnZU92ZXJsYXlzLmNwcCAqLzsgfTsK
IAkJMEY2QTEyQkUxQTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFnZU92ZXJsYXlzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZBMTJCQzFBMDA5MjM3
MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjdEMDczMzE4ODRDNTZDMDBCNEFGODYgLyogUGxh
dGZvcm1UZXh0VHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3Mjg0N0UyMTZFQkM1QjAwMDQzQ0ZBNCAvKiBQbGF0Zm9ybVRleHRUcmFjay5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC03OTAyLDYg
Kzc5MDMsNyBAQAogCQkwRjYwNUFFQjE1Rjk0ODQ4MDA0REYwQzAgLyogU2Nyb2xsaW5nQ29uc3Ry
YWludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsaW5nQ29uc3Ry
YWludHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2MzgzREIxODYxNUIyOTAw
M0U1REI1IC8qIFRocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBUaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjYzODNEQzE4NjE1QjI5MDAzRTVEQjUgLyogVGhyZWFkZWRTY3Jv
bGxpbmdUcmVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRocmVhZGVkU2Ny
b2xsaW5nVHJlZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjY2MUVBMzFDNzdG
NDJGMDAzRDA0OUYgLyogRWRnZVJlbGF0aXZlTGVuZ3RoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEVkZ2VSZWxhdGl2ZUxlbmd0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjZBMTJCQjFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVidWdQYWdlT3ZlcmxheXMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjZBMTJCQzFBMDA5MjM3MDBDNkRF
NzIgLyogRGVidWdQYWdlT3ZlcmxheXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGVidWdQYWdlT3ZlcmxheXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5
N0E2NTcxNTVEQTgxRTAwRkFERDRDIC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvcklPUy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERpc3BsYXlSZWZyZXNoTW9uaXRv
cklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyNTEyLDYgKzIyNTE0LDcg
QEAKIAkJCQlCQzIyNzJBMTBFODJFODdDMDBFN0Y5NzUgLyogQ3Vyc29yRGF0YS5oICovLAogCQkJ
CUJDMjI3MkFDMEU4MkU4RjMwMEU3Rjk3NSAvKiBDdXJzb3JMaXN0LmggKi8sCiAJCQkJQkMyMjc0
NkUwRTgzNjY0NTAwRTdGOTc1IC8qIERhdGFSZWYuaCAqLywKKwkJCQkwRjY2MUVBMzFDNzdGNDJG
MDAzRDA0OUYgLyogRWRnZVJlbGF0aXZlTGVuZ3RoLmggKi8sCiAJCQkJQkM1RUI2OUMwRTgxREFF
QjAwQjI1OTY1IC8qIEZpbGxMYXllci5jcHAgKi8sCiAJCQkJQkM1RUI2OUQwRTgxREFFQjAwQjI1
OTY1IC8qIEZpbGxMYXllci5oICovLAogCQkJCUNEM0UyNTFCMTgwNDZCMDYwMEUyN0Y1NiAvKiBH
cmlkQ29vcmRpbmF0ZS5oICovLApAQCAtMjU5ODAsNiArMjU5ODMsNyBAQAogCQkJCUIyQzNEQTY4
MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FzY2FkZUZvbnRzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMkFGRkM3RTBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNjYwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnREZXNjcmlw
dGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2NjFFQTQxQzc3RjQyRjAwM0QwNDlGIC8qIEVk
Z2VSZWxhdGl2ZUxlbmd0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE2RTlGQzgxM0MxN0Q1NzAw
NDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTQwOUVC
REI2MTZCN0VFQTMwMENCQTNGQyAvKiBGb250TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
ODQ1NjgwODEyQjkwREE2MDA5NjBBOUYgLyogRm9udE1ldHJpY3MuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cAppbmRleCA3YWVhNmFmYjMyOTc5MzEzYzcyNWNkNWM1MTBjZTE1NmI0ODkwNjE3Li45OGVkMjc3
YmFlNDU0ZmYyZTgxNzJhMTc5ZTcxNjc1MTZkYWJkMWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtNjg0LDE5ICs2ODQs
MzIgQEAgc3RhdGljIFJlZjxDU1NWYWx1ZT4gdmFsdWVGb3JSZWZsZWN0aW9uKGNvbnN0IFN0eWxl
UmVmbGVjdGlvbiogcmVmbGVjdGlvbiwgY29uc3QKICAgICByZXR1cm4gQ1NTUmVmbGVjdFZhbHVl
OjpjcmVhdGUoZGlyZWN0aW9uLnJlbGVhc2UoKSwgb2Zmc2V0LnJlbGVhc2UoKSwgdmFsdWVGb3JO
aW5lUGllY2VJbWFnZShyZWZsZWN0aW9uLT5tYXNrKCkpKTsKIH0KIAotc3RhdGljIFJlZjxDU1NW
YWx1ZUxpc3Q+IGNyZWF0ZVBvc2l0aW9uTGlzdEZvckxheWVyKENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJRCwgY29uc3QgRmlsbExheWVyKiBsYXllciwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQor
c3RhdGljIHZvaWQgYXBwZW5kRmlsbExheWVyUG9zaXRpb24oQ1NTVmFsdWVMaXN0JiBsaXN0LCBj
b25zdCBFZGdlUmVsYXRpdmVMZW5ndGgmIGxlbmd0aCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
KQogewotICAgIGF1dG8gcG9zaXRpb25MaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNl
cGFyYXRlZCgpOwotICAgIGlmIChsYXllci0+aXNCYWNrZ3JvdW5kT3JpZ2luU2V0KCkpIHsKLSAg
ICAgICAgQVNTRVJUX1VOVVNFRChwcm9wZXJ0eUlELCBwcm9wZXJ0eUlEID09IENTU1Byb3BlcnR5
QmFja2dyb3VuZFBvc2l0aW9uIHx8IHByb3BlcnR5SUQgPT0gQ1NTUHJvcGVydHlXZWJraXRNYXNr
UG9zaXRpb24pOwotICAgICAgICBwb3NpdGlvbkxpc3QuZ2V0KCkuYXBwZW5kKENTU1ZhbHVlUG9v
bDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUobGF5ZXItPmJhY2tncm91bmRYT3JpZ2luKCkpKTsK
LSAgICB9Ci0gICAgcG9zaXRpb25MaXN0LmdldCgpLmFwcGVuZCh6b29tQWRqdXN0ZWRQaXhlbFZh
bHVlRm9yTGVuZ3RoKGxheWVyLT54UG9zaXRpb24oKSwgc3R5bGUpKTsKLSAgICBpZiAobGF5ZXIt
PmlzQmFja2dyb3VuZE9yaWdpblNldCgpKSB7Ci0gICAgICAgIEFTU0VSVChwcm9wZXJ0eUlEID09
IENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uIHx8IHByb3BlcnR5SUQgPT0gQ1NTUHJvcGVy
dHlXZWJraXRNYXNrUG9zaXRpb24pOwotICAgICAgICBwb3NpdGlvbkxpc3QuZ2V0KCkuYXBwZW5k
KENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUobGF5ZXItPmJhY2tncm91bmRZ
T3JpZ2luKCkpKTsKKyAgICBpZiAobGVuZ3RoLmVkZ2VTcGVjaWZpZWQoKSkKKyAgICAgICAgbGlz
dC5hcHBlbmQoQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZShsZW5ndGguZWRn
ZSgpKSk7CisKKyAgICBsaXN0LmFwcGVuZCh6b29tQWRqdXN0ZWRQaXhlbFZhbHVlRm9yTGVuZ3Ro
KGxlbmd0aC5sZW5ndGgoKSwgc3R5bGUpKTsKK30KKworc3RhdGljIFJlZjxDU1NWYWx1ZT4gY3Jl
YXRlUG9zaXRpb25Gb3JMYXllcihjb25zdCBFZGdlUmVsYXRpdmVMZW5ndGgmIGxlbmd0aCwgY29u
c3QgUmVuZGVyU3R5bGUmIHN0eWxlKQoreworICAgIGlmIChsZW5ndGguZWRnZVNwZWNpZmllZCgp
KSB7CisgICAgICAgIGF1dG8gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0
ZWQoKTsKKyAgICAgICAgYXBwZW5kRmlsbExheWVyUG9zaXRpb24obGlzdCwgbGVuZ3RoLCBzdHls
ZSk7CisgICAgICAgIHJldHVybiBXVEZNb3ZlKGxpc3QpOwogICAgIH0KLSAgICBwb3NpdGlvbkxp
c3QuZ2V0KCkuYXBwZW5kKHpvb21BZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgobGF5ZXItPnlQ
b3NpdGlvbigpLCBzdHlsZSkpOworCisgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9u
KCkuY3JlYXRlVmFsdWUobGVuZ3RoLmxlbmd0aCgpKTsKK30KKworc3RhdGljIFJlZjxDU1NWYWx1
ZUxpc3Q+IGNyZWF0ZVBvc2l0aW9uTGlzdEZvckxheWVyKGNvbnN0IEZpbGxMYXllciogbGF5ZXIs
IGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKK3sKKyAgICBhdXRvIHBvc2l0aW9uTGlzdCA9IENT
U1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKKworICAgIGFwcGVuZEZpbGxMYXll
clBvc2l0aW9uKHBvc2l0aW9uTGlzdCwgbGF5ZXItPnhQb3NpdGlvbigpLCBzdHlsZSk7CisgICAg
YXBwZW5kRmlsbExheWVyUG9zaXRpb24ocG9zaXRpb25MaXN0LCBsYXllci0+eVBvc2l0aW9uKCks
IHN0eWxlKTsKKwogICAgIHJldHVybiBwb3NpdGlvbkxpc3Q7CiB9CiAKQEAgLTI1MzksMjIgKzI1
NTIsMjIgQEAgUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0
eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdE1hc2tQb3NpdGlvbjogewogICAgICAgICAgICAgY29uc3QgRmlsbExheWVyKiBsYXll
cnMgPSBwcm9wZXJ0eUlEID09IENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uID8gc3R5bGUt
Pm1hc2tMYXllcnMoKSA6IHN0eWxlLT5iYWNrZ3JvdW5kTGF5ZXJzKCk7CiAgICAgICAgICAgICBp
ZiAoIWxheWVycy0+bmV4dCgpKQotICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVQb3NpdGlv
bkxpc3RGb3JMYXllcihwcm9wZXJ0eUlELCBsYXllcnMsICpzdHlsZSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGNyZWF0ZVBvc2l0aW9uTGlzdEZvckxheWVyKGxheWVycywgKnN0eWxlKTsKIAog
ICAgICAgICAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3Jl
YXRlQ29tbWFTZXBhcmF0ZWQoKTsKICAgICAgICAgICAgIGZvciAoY29uc3QgRmlsbExheWVyKiBj
dXJyTGF5ZXIgPSBsYXllcnM7IGN1cnJMYXllcjsgY3VyckxheWVyID0gY3VyckxheWVyLT5uZXh0
KCkpCi0gICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNyZWF0ZVBvc2l0aW9uTGlzdEZvckxh
eWVyKHByb3BlcnR5SUQsIGN1cnJMYXllciwgKnN0eWxlKSk7CisgICAgICAgICAgICAgICAgbGlz
dC0+YXBwZW5kKGNyZWF0ZVBvc2l0aW9uTGlzdEZvckxheWVyKGN1cnJMYXllciwgKnN0eWxlKSk7
CiAgICAgICAgICAgICByZXR1cm4gbGlzdDsKICAgICAgICAgfQogICAgICAgICBjYXNlIENTU1By
b3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWDoKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dE1hc2tQb3NpdGlvblg6IHsKICAgICAgICAgICAgIGNvbnN0IEZpbGxMYXllciogbGF5ZXJzID0g
cHJvcGVydHlJRCA9PSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlvblggPyBzdHlsZS0+bWFz
a0xheWVycygpIDogc3R5bGUtPmJhY2tncm91bmRMYXllcnMoKTsKICAgICAgICAgICAgIGlmICgh
bGF5ZXJzLT5uZXh0KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVh
dGVWYWx1ZShsYXllcnMtPnhQb3NpdGlvbigpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY3Jl
YXRlUG9zaXRpb25Gb3JMYXllcihsYXllcnMtPnhQb3NpdGlvbigpLCAqc3R5bGUpOwogCiAgICAg
ICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVD
b21tYVNlcGFyYXRlZCgpOwogICAgICAgICAgICAgZm9yIChjb25zdCBGaWxsTGF5ZXIqIGN1cnJM
YXllciA9IGxheWVyczsgY3VyckxheWVyOyBjdXJyTGF5ZXIgPSBjdXJyTGF5ZXItPm5leHQoKSkK
LSAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKGN1
cnJMYXllci0+eFBvc2l0aW9uKCkpKTsKKyAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3Nz
VmFsdWVQb29sLmNyZWF0ZVZhbHVlKGN1cnJMYXllci0+eFBvc2l0aW9uKCkubGVuZ3RoKCkpKTsK
IAogICAgICAgICAgICAgcmV0dXJuIGxpc3Q7CiAgICAgICAgIH0KQEAgLTI1NjIsMTEgKzI1NzUs
MTEgQEAgUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZh
bHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdE1hc2tQb3NpdGlvblk6IHsKICAgICAgICAgICAgIGNvbnN0IEZpbGxMYXllciogbGF5ZXJz
ID0gcHJvcGVydHlJRCA9PSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tQb3NpdGlvblkgPyBzdHlsZS0+
bWFza0xheWVycygpIDogc3R5bGUtPmJhY2tncm91bmRMYXllcnMoKTsKICAgICAgICAgICAgIGlm
ICghbGF5ZXJzLT5uZXh0KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5j
cmVhdGVWYWx1ZShsYXllcnMtPnlQb3NpdGlvbigpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
Y3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKGxheWVycy0+eVBvc2l0aW9uKCkubGVuZ3RoKCkpOwog
CiAgICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0Ojpj
cmVhdGVDb21tYVNlcGFyYXRlZCgpOwogICAgICAgICAgICAgZm9yIChjb25zdCBGaWxsTGF5ZXIq
IGN1cnJMYXllciA9IGxheWVyczsgY3VyckxheWVyOyBjdXJyTGF5ZXIgPSBjdXJyTGF5ZXItPm5l
eHQoKSkKLSAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sLmNyZWF0ZVZh
bHVlKGN1cnJMYXllci0+eVBvc2l0aW9uKCkpKTsKKyAgICAgICAgICAgICAgICBsaXN0LT5hcHBl
bmQoY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKGN1cnJMYXllci0+eVBvc2l0aW9uKCkubGVuZ3Ro
KCkpKTsKIAogICAgICAgICAgICAgcmV0dXJuIGxpc3Q7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCmluZGV4IGE5YWFhOTRjNzk4
NGM1MmZlZDI5YzI4NGQxZmRmYmM5NTYzYmZkODIuLmY3ZWJiY2Q3NjAwOGZhOWJmYTA5ZDY1NWM5
YjQwNDRkMDM0YTdlOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRp
dmVWYWx1ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlTWFwcGluZ3MuaApAQCAtOTAyLDQ1ICs5MDIsNDUgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCb3hEZWNvcmF0aW9uQnJlYWsoKSBjb25zdAogfQog
I2VuZGlmCiAKLXRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShCYWNrZ3JvdW5kRWRnZU9yaWdpbiBlKQordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVkZ2UgZSkKICAgICA6IENTU1ZhbHVlKFBy
aW1pdGl2ZUNsYXNzKQogewogICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkFMVUVfSUQ7
CiAgICAgc3dpdGNoIChlKSB7Ci0gICAgY2FzZSBUb3BFZGdlOgorICAgIGNhc2UgRWRnZTo6VG9w
OgogICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRvcDsKICAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBSaWdodEVkZ2U6CisgICAgY2FzZSBFZGdlOjpSaWdodDoKICAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSaWdodDsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBC
b3R0b21FZGdlOgorICAgIGNhc2UgRWRnZTo6Qm90dG9tOgogICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUJvdHRvbTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBMZWZ0RWRnZToK
KyAgICBjYXNlIEVkZ2U6OkxlZnQ6CiAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
TGVmdDsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQmFja2dyb3VuZEVkZ2VPcmlnaW4oKSBjb25zdAordGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVkZ2UoKSBjb25zdAog
ewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKICAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJ
RCkgewogICAgIGNhc2UgQ1NTVmFsdWVUb3A6Ci0gICAgICAgIHJldHVybiBUb3BFZGdlOworICAg
ICAgICByZXR1cm4gRWRnZTo6VG9wOwogICAgIGNhc2UgQ1NTVmFsdWVSaWdodDoKLSAgICAgICAg
cmV0dXJuIFJpZ2h0RWRnZTsKKyAgICAgICAgcmV0dXJuIEVkZ2U6OlJpZ2h0OwogICAgIGNhc2Ug
Q1NTVmFsdWVCb3R0b206Ci0gICAgICAgIHJldHVybiBCb3R0b21FZGdlOworICAgICAgICByZXR1
cm4gRWRnZTo6Qm90dG9tOwogICAgIGNhc2UgQ1NTVmFsdWVMZWZ0OgotICAgICAgICByZXR1cm4g
TGVmdEVkZ2U7CisgICAgICAgIHJldHVybiBFZGdlOjpMZWZ0OwogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVy
biBUb3BFZGdlOworICAgIHJldHVybiBFZGdlOjpUb3A7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFQm94U2l6aW5nIGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5jcHAKaW5kZXggOTYxZWExMDU3ZDkwYjViNDA5ZjEwNDA1
ODZmMWRkMzRmZDFlYzQ2My4uOTU1NWM3OTdlNzQwYmE1MGZiZGVkZGQyMzkyZDM1ODRiOTZjNGE5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcApAQCAtMjM1LDkgKzIzNSwxMSBA
QCB2b2lkIENTU1RvU3R5bGVNYXA6Om1hcEZpbGxYUG9zaXRpb24oQ1NTUHJvcGVydHlJRCBwcm9w
ZXJ0eUlELCBGaWxsTGF5ZXImIGxheWVyLAogCiAgICAgYXV0byogcHJpbWl0aXZlVmFsdWUgPSAm
ZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKTsKICAgICBQYWlyKiBwYWlyID0gcHJp
bWl0aXZlVmFsdWUtPmdldFBhaXJWYWx1ZSgpOworICAgIEVkZ2UgZWRnZSA9IEVkZ2U6OkxlZnQ7
CiAgICAgaWYgKHBhaXIpIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChwcm9wZXJ0eUlELCBwcm9w
ZXJ0eUlEID09IENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWCB8fCBwcm9wZXJ0eUlEID09
IENTU1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uWCk7CiAgICAgICAgIHByaW1pdGl2ZVZhbHVl
ID0gcGFpci0+c2Vjb25kKCk7CisgICAgICAgIGVkZ2UgPSAqcGFpci0+Zmlyc3QoKTsKICAgICB9
CiAKICAgICBMZW5ndGggbGVuZ3RoOwpAQCAtMjUwLDkgKzI1Miw3IEBAIHZvaWQgQ1NTVG9TdHls
ZU1hcDo6bWFwRmlsbFhQb3NpdGlvbihDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIEZpbGxMYXll
ciYgbGF5ZXIsCiAgICAgZWxzZQogICAgICAgICByZXR1cm47CiAKLSAgICBsYXllci5zZXRYUG9z
aXRpb24obGVuZ3RoKTsKLSAgICBpZiAocGFpcikKLSAgICAgICAgbGF5ZXIuc2V0QmFja2dyb3Vu
ZFhPcmlnaW4oKnBhaXItPmZpcnN0KCkpOworICAgIGxheWVyLnNldFhQb3NpdGlvbihFZGdlUmVs
YXRpdmVMZW5ndGgobGVuZ3RoLCBlZGdlLCBwYWlyKSk7CiB9CiAKIHZvaWQgQ1NTVG9TdHlsZU1h
cDo6bWFwRmlsbFlQb3NpdGlvbihDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIEZpbGxMYXllciYg
bGF5ZXIsIGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSkKQEAgLTI2Nyw5ICsyNjcsMTEgQEAgdm9pZCBD
U1NUb1N0eWxlTWFwOjptYXBGaWxsWVBvc2l0aW9uKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwg
RmlsbExheWVyJiBsYXllciwKIAogICAgIGF1dG8qIHByaW1pdGl2ZVZhbHVlID0gJmRvd25jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSk7CiAgICAgUGFpciogcGFpciA9IHByaW1pdGl2ZVZh
bHVlLT5nZXRQYWlyVmFsdWUoKTsKKyAgICBFZGdlIGVkZ2UgPSBFZGdlOjpUb3A7CiAgICAgaWYg
KHBhaXIpIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChwcm9wZXJ0eUlELCBwcm9wZXJ0eUlEID09
IENTU1Byb3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWSB8fCBwcm9wZXJ0eUlEID09IENTU1Byb3Bl
cnR5V2Via2l0TWFza1Bvc2l0aW9uWSk7CiAgICAgICAgIHByaW1pdGl2ZVZhbHVlID0gcGFpci0+
c2Vjb25kKCk7CisgICAgICAgIGVkZ2UgPSAqcGFpci0+Zmlyc3QoKTsKICAgICB9CiAKICAgICBM
ZW5ndGggbGVuZ3RoOwpAQCAtMjgyLDkgKzI4NCw3IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFw
RmlsbFlQb3NpdGlvbihDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIEZpbGxMYXllciYgbGF5ZXIs
CiAgICAgZWxzZQogICAgICAgICByZXR1cm47CiAKLSAgICBsYXllci5zZXRZUG9zaXRpb24obGVu
Z3RoKTsKLSAgICBpZiAocGFpcikKLSAgICAgICAgbGF5ZXIuc2V0QmFja2dyb3VuZFlPcmlnaW4o
KnBhaXItPmZpcnN0KCkpOworICAgIGxheWVyLnNldFlQb3NpdGlvbihFZGdlUmVsYXRpdmVMZW5n
dGgobGVuZ3RoLCBlZGdlLCBwYWlyKSk7CiB9CiAKIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwRmls
bE1hc2tTb3VyY2VUeXBlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgRmlsbExheWVyJiBsYXll
ciwgY29uc3QgQ1NTVmFsdWUmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCmluZGV4IDQ3NDUxYzVkNzg3ZTll
MGQwZjBiMWY3ZThhZjIwZTgxYjFmYmQ5Y2EuLmFhODk2ZDhlN2UzOTU4YmEyMjUyNTQzOTliOWMw
MjhhYTA4ODM4ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NT
U1Byb3BlcnR5QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKQEAgLTkxLDYgKzkxLDE1IEBAIHN0YXRpYyBpbmxp
bmUgTGVuZ3RoU2l6ZSBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgY29uc3Qg
TGVuZ3RoU2l6ZSYKICAgICAgICAgICAgICAgICAgICAgICBibGVuZEZ1bmMoYW5pbSwgZnJvbS5o
ZWlnaHQoKSwgdG8uaGVpZ2h0KCksIHByb2dyZXNzKSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgRWRn
ZVJlbGF0aXZlTGVuZ3RoIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBjb25z
dCBFZGdlUmVsYXRpdmVMZW5ndGgmIGZyb20sIGNvbnN0IEVkZ2VSZWxhdGl2ZUxlbmd0aCYgdG8s
IGRvdWJsZSBwcm9ncmVzcykKK3sKKyAgICAvLyBGSVhNRTogSWYgd2UgcmVwcmVzZW50ZWQgZWRn
ZS1yZWxhdGl2ZSBsZW5ndGhzIGFzIGNhbGMgZXhwcmVzc2lvbnMsIHdlIGNvdWxkIGFuaW1hdGUg
dGhlbS4KKyAgICBpZiAoZnJvbS5lZGdlKCkgIT0gdG8uZWRnZSgpKQorICAgICAgICByZXR1cm4g
dG87CisKKyAgICByZXR1cm4gRWRnZVJlbGF0aXZlTGVuZ3RoKGJsZW5kRnVuYyhhbmltLCBmcm9t
Lmxlbmd0aCgpLCB0by5sZW5ndGgoKSwgcHJvZ3Jlc3MpLCB0by5lZGdlKCksIHRvLmVkZ2VTcGVj
aWZpZWQoKSk7Cit9CisKIHN0YXRpYyBpbmxpbmUgU2hhZG93U3R5bGUgYmxlbmRGdW5jKGNvbnN0
IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFNoYWRvd1N0eWxlIGZyb20sIFNoYWRvd1N0eWxlIHRvLCBk
b3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAgaWYgKGZyb20gPT0gdG8pCkBAIC05NzYsMTEgKzk4NSwx
MSBAQCBwdWJsaWM6CiAgICAgICAgIHN3aXRjaCAocHJvcCkgewogICAgICAgICBjYXNlIENTU1By
b3BlcnR5QmFja2dyb3VuZFBvc2l0aW9uWDoKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dE1hc2tQb3NpdGlvblg6Ci0gICAgICAgICAgICBtX2ZpbGxMYXllclByb3BlcnR5V3JhcHBlciA9
IHN0ZDo6bWFrZV91bmlxdWU8RmlsbExheWVyUHJvcGVydHlXcmFwcGVyPExlbmd0aD4+KCZGaWxs
TGF5ZXI6OnhQb3NpdGlvbiwgJkZpbGxMYXllcjo6c2V0WFBvc2l0aW9uKTsKKyAgICAgICAgICAg
IG1fZmlsbExheWVyUHJvcGVydHlXcmFwcGVyID0gc3RkOjptYWtlX3VuaXF1ZTxGaWxsTGF5ZXJQ
cm9wZXJ0eVdyYXBwZXI8RWRnZVJlbGF0aXZlTGVuZ3RoPj4oJkZpbGxMYXllcjo6eFBvc2l0aW9u
LCAmRmlsbExheWVyOjpzZXRYUG9zaXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUG9zaXRpb25ZOgogICAgICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uWToKLSAgICAgICAgICAgIG1fZmlsbExheWVyUHJvcGVy
dHlXcmFwcGVyID0gc3RkOjptYWtlX3VuaXF1ZTxGaWxsTGF5ZXJQcm9wZXJ0eVdyYXBwZXI8TGVu
Z3RoPj4oJkZpbGxMYXllcjo6eVBvc2l0aW9uLCAmRmlsbExheWVyOjpzZXRZUG9zaXRpb24pOwor
ICAgICAgICAgICAgbV9maWxsTGF5ZXJQcm9wZXJ0eVdyYXBwZXIgPSBzdGQ6Om1ha2VfdW5pcXVl
PEZpbGxMYXllclByb3BlcnR5V3JhcHBlcjxFZGdlUmVsYXRpdmVMZW5ndGg+PigmRmlsbExheWVy
Ojp5UG9zaXRpb24sICZGaWxsTGF5ZXI6OnNldFlQb3NpdGlvbik7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRTaXplOgogICAgICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0QmFja2dyb3VuZFNpemU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAppbmRleCA3NDdmNmZmZTc5Nzk3MjMy
ZjZmZDQ0MDY1NjNlY2U1MWQ1NThmMDQ3Li5mODA4MDBiNTJkOWMzZjNmMTFjMDk2ZWRjOTAxMGI1
NzBmYjdiZDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5jcHAKQEAgLTEwNDQsNiArMTA0NCwyMSBAQCBzdGF0aWMgaW5saW5lIExheW91
dFVuaXQgZ2V0U3BhY2UoTGF5b3V0VW5pdCBhcmVhU2l6ZSwgTGF5b3V0VW5pdCB0aWxlU2l6ZSkK
ICAgICByZXR1cm4gc3BhY2U7CiB9CiAKK3N0YXRpYyBMYXlvdXRVbml0IHJlc29sdmVFZGdlUmVs
YXRpdmVMZW5ndGgoY29uc3QgRWRnZVJlbGF0aXZlTGVuZ3RoJiBsZW5ndGgsIExheW91dFVuaXQg
YXZhaWxhYmxlU3BhY2UsIGNvbnN0IExheW91dFNpemUmIGFyZWFTaXplLCBjb25zdCBMYXlvdXRT
aXplJiB0aWxlU2l6ZSkKK3sKKyAgICBMYXlvdXRVbml0IHJlc3VsdCA9IG1pbmltdW1WYWx1ZUZv
ckxlbmd0aChsZW5ndGgubGVuZ3RoKCksIGF2YWlsYWJsZVNwYWNlLCBmYWxzZSk7CisgICAgCisg
ICAgaWYgKGxlbmd0aC5lZGdlU3BlY2lmaWVkKCkpIHsKKyAgICAgICAgaWYgKGxlbmd0aC5lZGdl
KCkgPT0gRWRnZTo6UmlnaHQpCisgICAgICAgICAgICByZXR1cm4gYXJlYVNpemUud2lkdGgoKSAt
IHRpbGVTaXplLndpZHRoKCkgLSByZXN1bHQ7CisgICAgICAgIAorICAgICAgICBpZiAobGVuZ3Ro
LmVkZ2UoKSA9PSBFZGdlOjpCb3R0b20pCisgICAgICAgICAgICByZXR1cm4gYXJlYVNpemUuaGVp
Z2h0KCkgLSB0aWxlU2l6ZS5oZWlnaHQoKSAtIHJlc3VsdDsKKyAgICB9CisKKyAgICByZXR1cm4g
cmVzdWx0OworfQorCiBCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeSBSZW5kZXJCb3hNb2RlbE9iamVj
dDo6Y2FsY3VsYXRlQmFja2dyb3VuZEltYWdlR2VvbWV0cnkoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcGFpbnRDb250YWluZXIsIGNvbnN0IEZpbGxMYXllciYgZmlsbExheWVyLCBjb25z
dCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsCiAgICAgY29uc3QgTGF5b3V0UmVjdCYgYm9yZGVy
Qm94UmVjdCwgUmVuZGVyRWxlbWVudCogYmFja2dyb3VuZE9iamVjdCkgY29uc3QKIHsKQEAgLTEx
NDcsNyArMTE2Miw3IEBAIEJhY2tncm91bmRJbWFnZUdlb21ldHJ5IFJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpjYWxjdWxhdGVCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeShjCiAgICAgTGF5b3V0U2l6ZSBz
cGFjZVNpemU7CiAgICAgTGF5b3V0U2l6ZSBwaGFzZTsKICAgICBMYXlvdXRTaXplIG5vUmVwZWF0
OwotICAgIExheW91dFVuaXQgY29tcHV0ZWRYUG9zaXRpb24gPSBtaW5pbXVtVmFsdWVGb3JMZW5n
dGgoZmlsbExheWVyLnhQb3NpdGlvbigpLCBhdmFpbGFibGVXaWR0aCwgZmFsc2UpOworICAgIExh
eW91dFVuaXQgY29tcHV0ZWRYUG9zaXRpb24gPSByZXNvbHZlRWRnZVJlbGF0aXZlTGVuZ3RoKGZp
bGxMYXllci54UG9zaXRpb24oKSwgYXZhaWxhYmxlV2lkdGgsIHBvc2l0aW9uaW5nQXJlYVNpemUs
IHRpbGVTaXplKTsKICAgICBpZiAoYmFja2dyb3VuZFJlcGVhdFggPT0gUm91bmRGaWxsICYmIHBv
c2l0aW9uaW5nQXJlYVNpemUud2lkdGgoKSA+IDAgJiYgdGlsZVNpemUud2lkdGgoKSA+IDApIHsK
ICAgICAgICAgaW50IG51bVRpbGVzID0gc3RkOjptYXgoMSwgcm91bmRUb0ludChwb3NpdGlvbmlu
Z0FyZWFTaXplLndpZHRoKCkgLyB0aWxlU2l6ZS53aWR0aCgpKSk7CiAgICAgICAgIGlmIChmaWxs
TGF5ZXIuc2l6ZSgpLnNpemUuaGVpZ2h0KCkuaXNBdXRvKCkgJiYgYmFja2dyb3VuZFJlcGVhdFkg
IT0gUm91bmRGaWxsKQpAQCAtMTE1Nyw3ICsxMTcyLDcgQEAgQmFja2dyb3VuZEltYWdlR2VvbWV0
cnkgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUJhY2tncm91bmRJbWFnZUdlb21ldHJ5
KGMKICAgICAgICAgcGhhc2Uuc2V0V2lkdGgodGlsZVNpemUud2lkdGgoKSA/IHRpbGVTaXplLndp
ZHRoKCkgLSBmbW9kZigoY29tcHV0ZWRYUG9zaXRpb24gKyBsZWZ0KSwgdGlsZVNpemUud2lkdGgo
KSkgOiAwKTsKICAgICB9CiAKLSAgICBMYXlvdXRVbml0IGNvbXB1dGVkWVBvc2l0aW9uID0gbWlu
aW11bVZhbHVlRm9yTGVuZ3RoKGZpbGxMYXllci55UG9zaXRpb24oKSwgYXZhaWxhYmxlSGVpZ2h0
LCBmYWxzZSk7CisgICAgTGF5b3V0VW5pdCBjb21wdXRlZFlQb3NpdGlvbiA9IHJlc29sdmVFZGdl
UmVsYXRpdmVMZW5ndGgoZmlsbExheWVyLnlQb3NpdGlvbigpLCBhdmFpbGFibGVIZWlnaHQsIHBv
c2l0aW9uaW5nQXJlYVNpemUsIHRpbGVTaXplKTsKICAgICBpZiAoYmFja2dyb3VuZFJlcGVhdFkg
PT0gUm91bmRGaWxsICYmIHBvc2l0aW9uaW5nQXJlYVNpemUuaGVpZ2h0KCkgPiAwICYmIHRpbGVT
aXplLmhlaWdodCgpID4gMCkgewogICAgICAgICBpbnQgbnVtVGlsZXMgPSBzdGQ6Om1heCgxLCBy
b3VuZFRvSW50KHBvc2l0aW9uaW5nQXJlYVNpemUuaGVpZ2h0KCkgLyB0aWxlU2l6ZS5oZWlnaHQo
KSkpOwogICAgICAgICBpZiAoZmlsbExheWVyLnNpemUoKS5zaXplLndpZHRoKCkuaXNBdXRvKCkg
JiYgYmFja2dyb3VuZFJlcGVhdFggIT0gUm91bmRGaWxsKQpAQCAtMTE4MSw4ICsxMTk2LDkgQEAg
QmFja2dyb3VuZEltYWdlR2VvbWV0cnkgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUJh
Y2tncm91bmRJbWFnZUdlb21ldHJ5KGMKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBiYWNr
Z3JvdW5kUmVwZWF0WCA9IE5vUmVwZWF0RmlsbDsKICAgICB9CisKICAgICBpZiAoYmFja2dyb3Vu
ZFJlcGVhdFggPT0gTm9SZXBlYXRGaWxsKSB7Ci0gICAgICAgIExheW91dFVuaXQgeE9mZnNldCA9
IGxlZnQgKyAoZmlsbExheWVyLmJhY2tncm91bmRYT3JpZ2luKCkgPT0gUmlnaHRFZGdlID8gYXZh
aWxhYmxlV2lkdGggLSBjb21wdXRlZFhQb3NpdGlvbiA6IGNvbXB1dGVkWFBvc2l0aW9uKTsKKyAg
ICAgICAgTGF5b3V0VW5pdCB4T2Zmc2V0ID0gbGVmdCArIGNvbXB1dGVkWFBvc2l0aW9uOwogICAg
ICAgICBpZiAoeE9mZnNldCA+IDApCiAgICAgICAgICAgICBkZXN0aW5hdGlvblJlY3QubW92ZSh4
T2Zmc2V0LCAwKTsKICAgICAgICAgeE9mZnNldCA9IHN0ZDo6bWluPExheW91dFVuaXQ+KHhPZmZz
ZXQsIDApOwpAQCAtMTIwNiw3ICsxMjIyLDcgQEAgQmFja2dyb3VuZEltYWdlR2VvbWV0cnkgUmVu
ZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUJhY2tncm91bmRJbWFnZUdlb21ldHJ5KGMKICAg
ICAgICAgICAgIGJhY2tncm91bmRSZXBlYXRZID0gTm9SZXBlYXRGaWxsOwogICAgIH0KICAgICBp
ZiAoYmFja2dyb3VuZFJlcGVhdFkgPT0gTm9SZXBlYXRGaWxsKSB7Ci0gICAgICAgIExheW91dFVu
aXQgeU9mZnNldCA9IHRvcCArIChmaWxsTGF5ZXIuYmFja2dyb3VuZFlPcmlnaW4oKSA9PSBCb3R0
b21FZGdlID8gYXZhaWxhYmxlSGVpZ2h0IC0gY29tcHV0ZWRZUG9zaXRpb24gOiBjb21wdXRlZFlQ
b3NpdGlvbik7CisgICAgICAgIExheW91dFVuaXQgeU9mZnNldCA9IHRvcCArIGNvbXB1dGVkWVBv
c2l0aW9uOwogICAgICAgICBpZiAoeU9mZnNldCA+IDApCiAgICAgICAgICAgICBkZXN0aW5hdGlv
blJlY3QubW92ZSgwLCB5T2Zmc2V0KTsKICAgICAgICAgeU9mZnNldCA9IHN0ZDo6bWluPExheW91
dFVuaXQ+KHlPZmZzZXQsIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1l
bnQuY3BwCmluZGV4IDY5NzMxZjIxZWI2YzI0ZDNhNjQ1YTI2NzMwM2FhZTI1YTRjM2MxMDAuLmEw
NWY1MTUzYzAzZGU4ODg5ODU4NTVlNTBlYTQ4OTIwNjdjOWQ5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTEyNDQsNyArMTI0NCw3IEBAIHN0YXRp
YyBib29sIG11c3RSZXBhaW50RmlsbExheWVycyhjb25zdCBSZW5kZXJFbGVtZW50JiByZW5kZXJl
ciwgY29uc3QgRmlsbExheWVyCiAgICAgaWYgKCFpbWFnZSB8fCAhaW1hZ2UtPmNhblJlbmRlcigm
cmVuZGVyZXIsIHJlbmRlcmVyLnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgaWYgKCFsYXllci0+eFBvc2l0aW9uKCkuaXNaZXJvKCkgfHwgIWxh
eWVyLT55UG9zaXRpb24oKS5pc1plcm8oKSkKKyAgICBpZiAoIWxheWVyLT54UG9zaXRpb24oKS5s
ZW5ndGgoKS5pc1plcm8oKSB8fCAhbGF5ZXItPnlQb3NpdGlvbigpLmxlbmd0aCgpLmlzWmVybygp
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIEVGaWxsU2l6ZVR5cGUgc2l6ZVR5cGUgPSBs
YXllci0+c2l6ZVR5cGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9FZGdlUmVsYXRpdmVMZW5ndGguaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9FZGdlUmVsYXRpdmVMZW5ndGguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzdiZGU3NTUyYjZiZGRkZTY4MWQ3
ODIyZTM0MTcyMTUzZDU1N2IzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL0VkZ2VSZWxhdGl2ZUxlbmd0aC5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEVkZ2VSZWxh
dGl2ZUxlbmd0aF9oCisjZGVmaW5lIEVkZ2VSZWxhdGl2ZUxlbmd0aF9oCisKKyNpbmNsdWRlICJM
ZW5ndGguaCIKKyNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIEVkZ2VSZWxhdGl2ZUxlbmd0aCB7CitwdWJsaWM6CisgICAgRWRn
ZVJlbGF0aXZlTGVuZ3RoKExlbmd0aCBsZW5ndGgsIEVkZ2UgZWRnZSwgYm9vbCBlZGdlU3BlY2lm
aWVkKQorICAgICAgICA6IG1fbGVuZ3RoKGxlbmd0aCkKKyAgICAgICAgLCBtX2VkZ2Uoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGVkZ2UpKQorICAgICAgICAsIG1fZWRnZVNwZWNpZmllZChlZGdlU3Bl
Y2lmaWVkKQorICAgIHsKKyAgICB9CisgICAgCisgICAgRWRnZVJlbGF0aXZlTGVuZ3RoKCkKKyAg
ICAgICAgOiBtX2VkZ2Uoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEVkZ2U6OkxlZnQpKQorICAgICAg
ICAsIG1fZWRnZVNwZWNpZmllZChmYWxzZSkKKyAgICB7CisgICAgfQorICAgIAorICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBFZGdlUmVsYXRpdmVMZW5ndGgmIG90aGVyKSBjb25zdAorICAgIHsK
KyAgICAgICAgcmV0dXJuIG1fbGVuZ3RoID09IG90aGVyLm1fbGVuZ3RoICYmIG1fZWRnZSA9PSBv
dGhlci5tX2VkZ2UgJiYgbV9lZGdlU3BlY2lmaWVkID09IG90aGVyLm1fZWRnZVNwZWNpZmllZDsK
KyAgICB9CisKKyAgICBjb25zdCBMZW5ndGgmIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVu
Z3RoOyB9CisgICAgRWRnZSBlZGdlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RWRnZT4o
bV9lZGdlKTsgfQorICAgIGJvb2wgZWRnZVNwZWNpZmllZCgpIGNvbnN0IHsgcmV0dXJuIG1fZWRn
ZVNwZWNpZmllZDsgfQorCitwcml2YXRlOgorICAgIExlbmd0aCBtX2xlbmd0aDsKKyAgICB1bnNp
Z25lZCBtX2VkZ2UgOiAyOworICAgIGJvb2wgbV9lZGdlU3BlY2lmaWVkIDogMTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVkZ2VSZWxhdGl2ZUxlbmd0aF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCmluZGV4IDFmNDE5
ODhmMjIxMjBhMTQ2MDY4OTUxMzVkMTJkZTFjZDg3NWMwYzMuLmM1OGM2M2M0MWM0OWZkMjQ5ZDQ2
MjljZDljODU0ZTNmNzFjOGY4ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9GaWxsTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9GaWxsTGF5ZXIuY3BwCkBAIC0zMiwxMyArMzIsMTMgQEAgc3RydWN0IFNhbWVTaXplQXNGaWxs
TGF5ZXIgewogCiAgICAgUmVmUHRyPFN0eWxlSW1hZ2U+IGltYWdlOwogCi0gICAgTGVuZ3RoIHg7
Ci0gICAgTGVuZ3RoIHk7CisgICAgRWRnZVJlbGF0aXZlTGVuZ3RoIHg7CisgICAgRWRnZVJlbGF0
aXZlTGVuZ3RoIHk7CiAKICAgICBMZW5ndGhTaXplIHNpemVMZW5ndGg7CiAKLSAgICB1bnNpZ25l
ZCBiaXRmaWVsZHMgOiAzMjsKLSAgICB1bnNpZ25lZCBiaXRmaWVsZHMyIDogMTE7CisgICAgdW5z
aWduZWQgYml0ZmllbGRzIDogMjQ7CisgICAgdW5zaWduZWQgYml0ZmllbGRzMiA6IDE0OwogfTsK
IAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKEZpbGxMYXllcikgPT0gc2l6ZW9mKFNhbWVTaXplQXNG
aWxsTGF5ZXIpLCBGaWxsTGF5ZXJfc2hvdWxkX3N0YXlfc21hbGwpOwpAQCAtNjQsOSArNjQsNiBA
QCBGaWxsTGF5ZXI6OkZpbGxMYXllcihFRmlsbExheWVyVHlwZSB0eXBlKQogICAgICwgbV9yZXBl
YXRZU2V0KGZhbHNlKQogICAgICwgbV94UG9zU2V0KGZhbHNlKQogICAgICwgbV95UG9zU2V0KGZh
bHNlKQotICAgICwgbV9iYWNrZ3JvdW5kT3JpZ2luU2V0KGZhbHNlKQotICAgICwgbV9iYWNrZ3Jv
dW5kWE9yaWdpbihMZWZ0RWRnZSkKLSAgICAsIG1fYmFja2dyb3VuZFlPcmlnaW4oVG9wRWRnZSkK
ICAgICAsIG1fY29tcG9zaXRlU2V0KHR5cGUgPT0gTWFza0ZpbGxMYXllcikKICAgICAsIG1fYmxl
bmRNb2RlU2V0KGZhbHNlKQogICAgICwgbV9tYXNrU291cmNlVHlwZVNldChmYWxzZSkKQEAgLTk3
LDkgKzk0LDYgQEAgRmlsbExheWVyOjpGaWxsTGF5ZXIoY29uc3QgRmlsbExheWVyJiBvKQogICAg
ICwgbV9yZXBlYXRZU2V0KG8ubV9yZXBlYXRZU2V0KQogICAgICwgbV94UG9zU2V0KG8ubV94UG9z
U2V0KQogICAgICwgbV95UG9zU2V0KG8ubV95UG9zU2V0KQotICAgICwgbV9iYWNrZ3JvdW5kT3Jp
Z2luU2V0KG8ubV9iYWNrZ3JvdW5kT3JpZ2luU2V0KQotICAgICwgbV9iYWNrZ3JvdW5kWE9yaWdp
bihvLm1fYmFja2dyb3VuZFhPcmlnaW4pCi0gICAgLCBtX2JhY2tncm91bmRZT3JpZ2luKG8ubV9i
YWNrZ3JvdW5kWU9yaWdpbikKICAgICAsIG1fY29tcG9zaXRlU2V0KG8ubV9jb21wb3NpdGVTZXQp
CiAgICAgLCBtX2JsZW5kTW9kZVNldChvLm1fYmxlbmRNb2RlU2V0KQogICAgICwgbV9tYXNrU291
cmNlVHlwZVNldChvLm1fbWFza1NvdXJjZVR5cGVTZXQpCkBAIC0xMjAsOSArMTE0LDYgQEAgRmls
bExheWVyJiBGaWxsTGF5ZXI6Om9wZXJhdG9yPShjb25zdCBGaWxsTGF5ZXImIG8pCiAgICAgbV9p
bWFnZSA9IG8ubV9pbWFnZTsKICAgICBtX3hQb3NpdGlvbiA9IG8ubV94UG9zaXRpb247CiAgICAg
bV95UG9zaXRpb24gPSBvLm1feVBvc2l0aW9uOwotICAgIG1fYmFja2dyb3VuZFhPcmlnaW4gPSBv
Lm1fYmFja2dyb3VuZFhPcmlnaW47Ci0gICAgbV9iYWNrZ3JvdW5kWU9yaWdpbiA9IG8ubV9iYWNr
Z3JvdW5kWU9yaWdpbjsKLSAgICBtX2JhY2tncm91bmRPcmlnaW5TZXQgPSBvLm1fYmFja2dyb3Vu
ZE9yaWdpblNldDsKICAgICBtX3NpemVMZW5ndGggPSBvLm1fc2l6ZUxlbmd0aDsKICAgICBtX2F0
dGFjaG1lbnQgPSBvLm1fYXR0YWNobWVudDsKICAgICBtX2NsaXAgPSBvLm1fY2xpcDsKQEAgLTE1
Niw3ICsxNDcsNiBAQCBib29sIEZpbGxMYXllcjo6b3BlcmF0b3I9PShjb25zdCBGaWxsTGF5ZXIm
IG8pIGNvbnN0CiAgICAgLy8gV2UgZG8gbm90IGNoZWNrIHRoZSAiaXNTZXQiIGJvb2xlYW5zIGZv
ciBlYWNoIHByb3BlcnR5LCBzaW5jZSB0aG9zZSBhcmUgb25seSB1c2VkIGR1cmluZyBpbml0aWFs
IGNvbnN0cnVjdGlvbgogICAgIC8vIHRvIHByb3BhZ2F0ZSBwYXR0ZXJucyBpbnRvIGxheWVycy4g
QWxsIGxheWVyIGNvbXBhcmlzb25zIGhhcHBlbiBhZnRlciB2YWx1ZXMgaGF2ZSBhbGwgYmVlbiBm
aWxsZWQgaW4gYW55d2F5LgogICAgIHJldHVybiBhcmVQb2ludGluZ1RvRXF1YWxEYXRhKG1faW1h
Z2UuZ2V0KCksIG8ubV9pbWFnZS5nZXQoKSkgJiYgbV94UG9zaXRpb24gPT0gby5tX3hQb3NpdGlv
biAmJiBtX3lQb3NpdGlvbiA9PSBvLm1feVBvc2l0aW9uCi0gICAgICAgICYmIG1fYmFja2dyb3Vu
ZFhPcmlnaW4gPT0gby5tX2JhY2tncm91bmRYT3JpZ2luICYmIG1fYmFja2dyb3VuZFlPcmlnaW4g
PT0gby5tX2JhY2tncm91bmRZT3JpZ2luCiAgICAgICAgICYmIG1fYXR0YWNobWVudCA9PSBvLm1f
YXR0YWNobWVudCAmJiBtX2NsaXAgPT0gby5tX2NsaXAgJiYgbV9jb21wb3NpdGUgPT0gby5tX2Nv
bXBvc2l0ZQogICAgICAgICAmJiBtX2JsZW5kTW9kZSA9PSBvLm1fYmxlbmRNb2RlICYmIG1fb3Jp
Z2luID09IG8ubV9vcmlnaW4gJiYgbV9yZXBlYXRYID09IG8ubV9yZXBlYXRYCiAgICAgICAgICYm
IG1fcmVwZWF0WSA9PSBvLm1fcmVwZWF0WSAmJiBtX3NpemVUeXBlID09IG8ubV9zaXplVHlwZSAm
JiBtX21hc2tTb3VyY2VUeXBlID09IG8ubV9tYXNrU291cmNlVHlwZQpAQCAtMTcyLDEwICsxNjIs
NiBAQCB2b2lkIEZpbGxMYXllcjo6ZmlsbFVuc2V0UHJvcGVydGllcygpCiAgICAgICAgIC8vIFdl
IG5lZWQgdG8gZmlsbCBpbiB0aGUgcmVtYWluaW5nIHZhbHVlcyB3aXRoIHRoZSBwYXR0ZXJuIHNw
ZWNpZmllZC4KICAgICAgICAgZm9yIChGaWxsTGF5ZXIqIHBhdHRlcm4gPSB0aGlzOyBjdXJyOyBj
dXJyID0gY3Vyci0+bmV4dCgpKSB7CiAgICAgICAgICAgICBjdXJyLT5tX3hQb3NpdGlvbiA9IHBh
dHRlcm4tPm1feFBvc2l0aW9uOwotICAgICAgICAgICAgaWYgKHBhdHRlcm4tPmlzQmFja2dyb3Vu
ZE9yaWdpblNldCgpKSB7Ci0gICAgICAgICAgICAgICAgY3Vyci0+bV9iYWNrZ3JvdW5kWE9yaWdp
biA9IHBhdHRlcm4tPm1fYmFja2dyb3VuZFhPcmlnaW47Ci0gICAgICAgICAgICAgICAgY3Vyci0+
bV9iYWNrZ3JvdW5kWU9yaWdpbiA9IHBhdHRlcm4tPm1fYmFja2dyb3VuZFlPcmlnaW47Ci0gICAg
ICAgICAgICB9CiAgICAgICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi0+bmV4dCgpOwogICAgICAg
ICAgICAgaWYgKHBhdHRlcm4gPT0gY3VyciB8fCAhcGF0dGVybikKICAgICAgICAgICAgICAgICBw
YXR0ZXJuID0gdGhpczsKQEAgLTE4NywxMCArMTczLDYgQEAgdm9pZCBGaWxsTGF5ZXI6OmZpbGxV
bnNldFByb3BlcnRpZXMoKQogICAgICAgICAvLyBXZSBuZWVkIHRvIGZpbGwgaW4gdGhlIHJlbWFp
bmluZyB2YWx1ZXMgd2l0aCB0aGUgcGF0dGVybiBzcGVjaWZpZWQuCiAgICAgICAgIGZvciAoRmls
bExheWVyKiBwYXR0ZXJuID0gdGhpczsgY3VycjsgY3VyciA9IGN1cnItPm5leHQoKSkgewogICAg
ICAgICAgICAgY3Vyci0+bV95UG9zaXRpb24gPSBwYXR0ZXJuLT5tX3lQb3NpdGlvbjsKLSAgICAg
ICAgICAgIGlmIChwYXR0ZXJuLT5pc0JhY2tncm91bmRPcmlnaW5TZXQoKSkgewotICAgICAgICAg
ICAgICAgIGN1cnItPm1fYmFja2dyb3VuZFhPcmlnaW4gPSBwYXR0ZXJuLT5tX2JhY2tncm91bmRY
T3JpZ2luOwotICAgICAgICAgICAgICAgIGN1cnItPm1fYmFja2dyb3VuZFlPcmlnaW4gPSBwYXR0
ZXJuLT5tX2JhY2tncm91bmRZT3JpZ2luOwotICAgICAgICAgICAgfQogICAgICAgICAgICAgcGF0
dGVybiA9IHBhdHRlcm4tPm5leHQoKTsKICAgICAgICAgICAgIGlmIChwYXR0ZXJuID09IGN1cnIg
fHwgIXBhdHRlcm4pCiAgICAgICAgICAgICAgICAgcGF0dGVybiA9IHRoaXM7CkBAIC00MDcsMTYg
KzM4OSwyMCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBG
aWxsTGF5ZXImIGxheWVyKQogICAgIHRzIDw8ICJmaWxsLWxheWVyIjsKIAogICAgIHRzLnN0YXJ0
R3JvdXAoKTsKLSAgICB0cyA8PCAicG9zaXRpb24gIiA8PCBsYXllci54UG9zaXRpb24oKSA8PCAi
ICIgPDwgbGF5ZXIueVBvc2l0aW9uKCk7CisgICAgdHMgPDwgInBvc2l0aW9uICI7CisgICAgaWYg
KGxheWVyLnhQb3NpdGlvbigpLmVkZ2VTcGVjaWZpZWQoKSkKKyAgICAgICAgdHMgPDwgbGF5ZXIu
eFBvc2l0aW9uKCkuZWRnZSgpIDw8ICIgIjsKKyAgICB0cyA8PCBsYXllci54UG9zaXRpb24oKS5s
ZW5ndGgoKTsKKworICAgIHRzIDw8ICJwb3NpdGlvbiAiOworICAgIGlmIChsYXllci55UG9zaXRp
b24oKS5lZGdlU3BlY2lmaWVkKCkpCisgICAgICAgIHRzIDw8IGxheWVyLnlQb3NpdGlvbigpLmVk
Z2UoKSA8PCAiICI7CisgICAgdHMgPDwgbGF5ZXIueVBvc2l0aW9uKCkubGVuZ3RoKCk7CiAgICAg
dHMuZW5kR3JvdXAoKTsKIAogICAgIHRzLmR1bXBQcm9wZXJ0eSgic2l6ZSIsIGxheWVyLnNpemUo
KSk7CiAKICAgICB0cy5zdGFydEdyb3VwKCk7Ci0gICAgdHMgPDwgImJhY2tncm91bmQtb3JpZ2lu
ICIgPDwgbGF5ZXIuYmFja2dyb3VuZFhPcmlnaW4oKSA8PCAiICIgPDwgbGF5ZXIuYmFja2dyb3Vu
ZFlPcmlnaW4oKTsKLSAgICB0cy5lbmRHcm91cCgpOwotCi0gICAgdHMuc3RhcnRHcm91cCgpOwog
ICAgIHRzIDw8ICJyZXBlYXQgIiA8PCBsYXllci5yZXBlYXRYKCkgPDwgIiAiIDw8IGxheWVyLnJl
cGVhdFkoKTsKICAgICB0cy5lbmRHcm91cCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvRmlsbExheWVyLmgKaW5kZXggOGIwZTY1ZTNmN2Y0NGE2MGI4MjFjMTY5ZWFiM2U4Y2Nj
ZTU3NDU3Ny4uZTJkMDNiY2U2MWI1M2Q2MzJiMmE3YWViZTczYTEzYjIzMjI1OTFkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaApAQCAtMjUsNiArMjUsNyBA
QAogI2lmbmRlZiBGaWxsTGF5ZXJfaAogI2RlZmluZSBGaWxsTGF5ZXJfaAogCisjaW5jbHVkZSAi
RWRnZVJlbGF0aXZlTGVuZ3RoLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgogI2luY2x1
ZGUgIkxlbmd0aFNpemUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgpAQCAt
NjgsMTAgKzY5LDggQEAgcHVibGljOgogICAgIH5GaWxsTGF5ZXIoKTsKIAogICAgIFN0eWxlSW1h
Z2UqIGltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZS5nZXQoKTsgfQotICAgIGNvbnN0IExl
bmd0aCYgeFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV94UG9zaXRpb247IH0KLSAgICBjb25z
dCBMZW5ndGgmIHlQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1feVBvc2l0aW9uOyB9Ci0gICAg
QmFja2dyb3VuZEVkZ2VPcmlnaW4gYmFja2dyb3VuZFhPcmlnaW4oKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxCYWNrZ3JvdW5kRWRnZU9yaWdpbj4obV9iYWNrZ3JvdW5kWE9yaWdpbik7IH0K
LSAgICBCYWNrZ3JvdW5kRWRnZU9yaWdpbiBiYWNrZ3JvdW5kWU9yaWdpbigpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PEJhY2tncm91bmRFZGdlT3JpZ2luPihtX2JhY2tncm91bmRZT3JpZ2lu
KTsgfQorICAgIGNvbnN0IEVkZ2VSZWxhdGl2ZUxlbmd0aCYgeFBvc2l0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV94UG9zaXRpb247IH0KKyAgICBjb25zdCBFZGdlUmVsYXRpdmVMZW5ndGgmIHlQb3Np
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1feVBvc2l0aW9uOyB9CiAgICAgRUZpbGxBdHRhY2htZW50
IGF0dGFjaG1lbnQoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFRmlsbEF0dGFjaG1lbnQ+
KG1fYXR0YWNobWVudCk7IH0KICAgICBFRmlsbEJveCBjbGlwKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8RUZpbGxCb3g+KG1fY2xpcCk7IH0KICAgICBFRmlsbEJveCBvcmlnaW4oKSBjb25z
dCB7IHJldHVybiBzdGF0aWNfY2FzdDxFRmlsbEJveD4obV9vcmlnaW4pOyB9CkBAIC05MCw3ICs4
OSw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzSW1hZ2VTZXQoKSBjb25zdCB7IHJldHVybiBtX2lt
YWdlU2V0OyB9CiAgICAgYm9vbCBpc1hQb3NpdGlvblNldCgpIGNvbnN0IHsgcmV0dXJuIG1feFBv
c1NldDsgfQogICAgIGJvb2wgaXNZUG9zaXRpb25TZXQoKSBjb25zdCB7IHJldHVybiBtX3lQb3NT
ZXQ7IH0KLSAgICBib29sIGlzQmFja2dyb3VuZE9yaWdpblNldCgpIGNvbnN0IHsgcmV0dXJuIG1f
YmFja2dyb3VuZE9yaWdpblNldDsgfQogICAgIGJvb2wgaXNBdHRhY2htZW50U2V0KCkgY29uc3Qg
eyByZXR1cm4gbV9hdHRhY2htZW50U2V0OyB9CiAgICAgYm9vbCBpc0NsaXBTZXQoKSBjb25zdCB7
IHJldHVybiBtX2NsaXBTZXQ7IH0KICAgICBib29sIGlzT3JpZ2luU2V0KCkgY29uc3QgeyByZXR1
cm4gbV9vcmlnaW5TZXQ7IH0KQEAgLTEwMiwxMCArMTAwLDggQEAgcHVibGljOgogICAgIGJvb2wg
aXNNYXNrU291cmNlVHlwZVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFza1NvdXJjZVR5cGVTZXQ7
IH0KIAogICAgIHZvaWQgc2V0SW1hZ2UoUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBpbWFnZSkgeyBt
X2ltYWdlID0gaW1hZ2U7IG1faW1hZ2VTZXQgPSB0cnVlOyB9Ci0gICAgdm9pZCBzZXRYUG9zaXRp
b24oTGVuZ3RoIGxlbmd0aCkgeyBtX3hQb3NpdGlvbiA9IFdURk1vdmUobGVuZ3RoKTsgbV94UG9z
U2V0ID0gdHJ1ZTsgfQotICAgIHZvaWQgc2V0WVBvc2l0aW9uKExlbmd0aCBsZW5ndGgpIHsgbV95
UG9zaXRpb24gPSBXVEZNb3ZlKGxlbmd0aCk7IG1feVBvc1NldCA9IHRydWU7IH0KLSAgICB2b2lk
IHNldEJhY2tncm91bmRYT3JpZ2luKEJhY2tncm91bmRFZGdlT3JpZ2luIG8pIHsgbV9iYWNrZ3Jv
dW5kWE9yaWdpbiA9IG87IG1fYmFja2dyb3VuZE9yaWdpblNldCA9IHRydWU7IH0KLSAgICB2b2lk
IHNldEJhY2tncm91bmRZT3JpZ2luKEJhY2tncm91bmRFZGdlT3JpZ2luIG8pIHsgbV9iYWNrZ3Jv
dW5kWU9yaWdpbiA9IG87IG1fYmFja2dyb3VuZE9yaWdpblNldCA9IHRydWU7IH0KKyAgICB2b2lk
IHNldFhQb3NpdGlvbihFZGdlUmVsYXRpdmVMZW5ndGggbGVuZ3RoKSB7IG1feFBvc2l0aW9uID0g
bGVuZ3RoOyBtX3hQb3NTZXQgPSB0cnVlOyB9CisgICAgdm9pZCBzZXRZUG9zaXRpb24oRWRnZVJl
bGF0aXZlTGVuZ3RoIGxlbmd0aCkgeyBtX3lQb3NpdGlvbiA9IGxlbmd0aDsgbV95UG9zU2V0ID0g
dHJ1ZTsgfQogICAgIHZvaWQgc2V0QXR0YWNobWVudChFRmlsbEF0dGFjaG1lbnQgYXR0YWNobWVu
dCkgeyBtX2F0dGFjaG1lbnQgPSBhdHRhY2htZW50OyBtX2F0dGFjaG1lbnRTZXQgPSB0cnVlOyB9
CiAgICAgdm9pZCBzZXRDbGlwKEVGaWxsQm94IGIpIHsgbV9jbGlwID0gYjsgbV9jbGlwU2V0ID0g
dHJ1ZTsgfQogICAgIHZvaWQgc2V0T3JpZ2luKEVGaWxsQm94IGIpIHsgbV9vcmlnaW4gPSBiOyBt
X29yaWdpblNldCA9IHRydWU7IH0KQEAgLTEyMCw4ICsxMTYsOCBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGNsZWFySW1hZ2UoKSB7IG1faW1hZ2UgPSBudWxscHRyOyBtX2ltYWdlU2V0ID0gZmFsc2U7
IH0KIAotICAgIHZvaWQgY2xlYXJYUG9zaXRpb24oKSB7IG1feFBvc1NldCA9IGZhbHNlOyBtX2Jh
Y2tncm91bmRPcmlnaW5TZXQgPSBmYWxzZTsgfQotICAgIHZvaWQgY2xlYXJZUG9zaXRpb24oKSB7
IG1feVBvc1NldCA9IGZhbHNlOyBtX2JhY2tncm91bmRPcmlnaW5TZXQgPSBmYWxzZTsgfQorICAg
IHZvaWQgY2xlYXJYUG9zaXRpb24oKSB7IG1feFBvc1NldCA9IGZhbHNlOyB9CisgICAgdm9pZCBj
bGVhcllQb3NpdGlvbigpIHsgbV95UG9zU2V0ID0gZmFsc2U7IH0KIAogICAgIHZvaWQgY2xlYXJB
dHRhY2htZW50KCkgeyBtX2F0dGFjaG1lbnRTZXQgPSBmYWxzZTsgfQogICAgIHZvaWQgY2xlYXJD
bGlwKCkgeyBtX2NsaXBTZXQgPSBmYWxzZTsgfQpAQCAtMTY0LDggKzE2MCw4IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgQ29tcG9zaXRlT3BlcmF0b3IgaW5pdGlhbEZpbGxDb21wb3NpdGUoRUZpbGxM
YXllclR5cGUpIHsgcmV0dXJuIENvbXBvc2l0ZVNvdXJjZU92ZXI7IH0KICAgICBzdGF0aWMgQmxl
bmRNb2RlIGluaXRpYWxGaWxsQmxlbmRNb2RlKEVGaWxsTGF5ZXJUeXBlKSB7IHJldHVybiBCbGVu
ZE1vZGVOb3JtYWw7IH0KICAgICBzdGF0aWMgRmlsbFNpemUgaW5pdGlhbEZpbGxTaXplKEVGaWxs
TGF5ZXJUeXBlKSB7IHJldHVybiBGaWxsU2l6ZSgpOyB9Ci0gICAgc3RhdGljIExlbmd0aCBpbml0
aWFsRmlsbFhQb3NpdGlvbihFRmlsbExheWVyVHlwZSkgeyByZXR1cm4gTGVuZ3RoKDAuMGYsIFBl
cmNlbnQpOyB9Ci0gICAgc3RhdGljIExlbmd0aCBpbml0aWFsRmlsbFlQb3NpdGlvbihFRmlsbExh
eWVyVHlwZSkgeyByZXR1cm4gTGVuZ3RoKDAuMGYsIFBlcmNlbnQpOyB9CisgICAgc3RhdGljIEVk
Z2VSZWxhdGl2ZUxlbmd0aCBpbml0aWFsRmlsbFhQb3NpdGlvbihFRmlsbExheWVyVHlwZSkgeyBy
ZXR1cm4gRWRnZVJlbGF0aXZlTGVuZ3RoKExlbmd0aCgwLjBmLCBQZXJjZW50KSwgRWRnZTo6TGVm
dCwgZmFsc2UpOyB9CisgICAgc3RhdGljIEVkZ2VSZWxhdGl2ZUxlbmd0aCBpbml0aWFsRmlsbFlQ
b3NpdGlvbihFRmlsbExheWVyVHlwZSkgeyByZXR1cm4gRWRnZVJlbGF0aXZlTGVuZ3RoKExlbmd0
aCgwLjBmLCBQZXJjZW50KSwgRWRnZTo6VG9wLCBmYWxzZSk7IH0KICAgICBzdGF0aWMgU3R5bGVJ
bWFnZSogaW5pdGlhbEZpbGxJbWFnZShFRmlsbExheWVyVHlwZSkgeyByZXR1cm4gbnVsbHB0cjsg
fQogICAgIHN0YXRpYyBFTWFza1NvdXJjZVR5cGUgaW5pdGlhbEZpbGxNYXNrU291cmNlVHlwZShF
RmlsbExheWVyVHlwZSkgeyByZXR1cm4gTWFza0FscGhhOyB9CiAKQEAgLTE3OCw4ICsxNzQsOCBA
QCBwcml2YXRlOgogCiAgICAgUmVmUHRyPFN0eWxlSW1hZ2U+IG1faW1hZ2U7CiAKLSAgICBMZW5n
dGggbV94UG9zaXRpb247Ci0gICAgTGVuZ3RoIG1feVBvc2l0aW9uOworICAgIEVkZ2VSZWxhdGl2
ZUxlbmd0aCBtX3hQb3NpdGlvbjsKKyAgICBFZGdlUmVsYXRpdmVMZW5ndGggbV95UG9zaXRpb247
CiAKICAgICBMZW5ndGhTaXplIG1fc2l6ZUxlbmd0aDsKIApAQCAtMjAxLDkgKzE5Nyw2IEBAIHBy
aXZhdGU6CiAgICAgdW5zaWduZWQgbV9yZXBlYXRZU2V0IDogMTsKICAgICB1bnNpZ25lZCBtX3hQ
b3NTZXQgOiAxOwogICAgIHVuc2lnbmVkIG1feVBvc1NldCA6IDE7Ci0gICAgdW5zaWduZWQgbV9i
YWNrZ3JvdW5kT3JpZ2luU2V0IDogMTsKLSAgICB1bnNpZ25lZCBtX2JhY2tncm91bmRYT3JpZ2lu
IDogMjsgLy8gQmFja2dyb3VuZEVkZ2VPcmlnaW4KLSAgICB1bnNpZ25lZCBtX2JhY2tncm91bmRZ
T3JpZ2luIDogMjsgLy8gQmFja2dyb3VuZEVkZ2VPcmlnaW4KICAgICB1bnNpZ25lZCBtX2NvbXBv
c2l0ZVNldCA6IDE7CiAgICAgdW5zaWduZWQgbV9ibGVuZE1vZGVTZXQgOiAxOwogICAgIHVuc2ln
bmVkIG1fbWFza1NvdXJjZVR5cGVTZXQgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCBhMjc0MjE1N2RjMjlhZTIyM2JkMThhY2NlNWJhOTI5
YjNjMzUyNWZjLi41ZTk0ZWFmYzA4MzIzOGJkMDZiNWFkZDg5NWRjZmJjNTczY2FmNmNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMzQsNiAr
MzQsNyBAQAogI2luY2x1ZGUgIkNvbG9yU3BhY2UuaCIKICNpbmNsdWRlICJDb3VudGVyRGlyZWN0
aXZlcy5oIgogI2luY2x1ZGUgIkRhdGFSZWYuaCIKKyNpbmNsdWRlICJFZGdlUmVsYXRpdmVMZW5n
dGguaCIKICNpbmNsdWRlICJGb250QmFzZWxpbmUuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRp
b24uaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCkBAIC03OTksOCArODAwLDggQEAgcHVi
bGljOgogICAgIEVGaWxsQXR0YWNobWVudCBiYWNrZ3JvdW5kQXR0YWNobWVudCgpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PEVGaWxsQXR0YWNobWVudD4obV9iYWNrZ3JvdW5kLT5iYWNrZ3Jv
dW5kKCkuYXR0YWNobWVudCgpKTsgfQogICAgIEVGaWxsQm94IGJhY2tncm91bmRDbGlwKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUZpbGxCb3g+KG1fYmFja2dyb3VuZC0+YmFja2dyb3Vu
ZCgpLmNsaXAoKSk7IH0KICAgICBFRmlsbEJveCBiYWNrZ3JvdW5kT3JpZ2luKCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8RUZpbGxCb3g+KG1fYmFja2dyb3VuZC0+YmFja2dyb3VuZCgpLm9y
aWdpbigpKTsgfQotICAgIGNvbnN0IExlbmd0aCYgYmFja2dyb3VuZFhQb3NpdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fYmFja2dyb3VuZC0+YmFja2dyb3VuZCgpLnhQb3NpdGlvbigpOyB9Ci0gICAg
Y29uc3QgTGVuZ3RoJiBiYWNrZ3JvdW5kWVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9iYWNr
Z3JvdW5kLT5iYWNrZ3JvdW5kKCkueVBvc2l0aW9uKCk7IH0KKyAgICBjb25zdCBFZGdlUmVsYXRp
dmVMZW5ndGgmIGJhY2tncm91bmRYUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2JhY2tncm91
bmQtPmJhY2tncm91bmQoKS54UG9zaXRpb24oKTsgfQorICAgIGNvbnN0IEVkZ2VSZWxhdGl2ZUxl
bmd0aCYgYmFja2dyb3VuZFlQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2dyb3VuZC0+
YmFja2dyb3VuZCgpLnlQb3NpdGlvbigpOyB9CiAgICAgRUZpbGxTaXplVHlwZSBiYWNrZ3JvdW5k
U2l6ZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX2JhY2tncm91bmQtPmJhY2tncm91bmQoKS5zaXpl
VHlwZSgpOyB9CiAgICAgY29uc3QgTGVuZ3RoU2l6ZSYgYmFja2dyb3VuZFNpemVMZW5ndGgoKSBj
b25zdCB7IHJldHVybiBtX2JhY2tncm91bmQtPmJhY2tncm91bmQoKS5zaXplTGVuZ3RoKCk7IH0K
ICAgICBGaWxsTGF5ZXImIGVuc3VyZUJhY2tncm91bmRMYXllcnMoKSB7IHJldHVybiBtX2JhY2tn
cm91bmQuYWNjZXNzKCktPm1fYmFja2dyb3VuZDsgfQpAQCAtODEyLDggKzgxMyw4IEBAIHB1Ymxp
YzoKICAgICBDb21wb3NpdGVPcGVyYXRvciBtYXNrQ29tcG9zaXRlKCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8Q29tcG9zaXRlT3BlcmF0b3I+KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX21h
c2suY29tcG9zaXRlKCkpOyB9CiAgICAgRUZpbGxCb3ggbWFza0NsaXAoKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxFRmlsbEJveD4ocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbWFzay5jbGlw
KCkpOyB9CiAgICAgRUZpbGxCb3ggbWFza09yaWdpbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19j
YXN0PEVGaWxsQm94PihyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tYXNrLm9yaWdpbigpKTsgfQot
ICAgIGNvbnN0IExlbmd0aCYgbWFza1hQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25J
bmhlcml0ZWREYXRhLT5tX21hc2sueFBvc2l0aW9uKCk7IH0KLSAgICBjb25zdCBMZW5ndGgmIG1h
c2tZUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tYXNr
LnlQb3NpdGlvbigpOyB9CisgICAgY29uc3QgRWRnZVJlbGF0aXZlTGVuZ3RoJiBtYXNrWFBvc2l0
aW9uKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fbWFzay54UG9zaXRp
b24oKTsgfQorICAgIGNvbnN0IEVkZ2VSZWxhdGl2ZUxlbmd0aCYgbWFza1lQb3NpdGlvbigpIGNv
bnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX21hc2sueVBvc2l0aW9uKCk7IH0K
ICAgICBFRmlsbFNpemVUeXBlIG1hc2tTaXplVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25J
bmhlcml0ZWREYXRhLT5tX21hc2suc2l6ZVR5cGUoKTsgfQogICAgIGNvbnN0IExlbmd0aFNpemUm
IG1hc2tTaXplTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1f
bWFzay5zaXplTGVuZ3RoKCk7IH0KICAgICBGaWxsTGF5ZXImIGVuc3VyZU1hc2tMYXllcnMoKSB7
IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tYXNrOyB9CkBAIC0xMjYz
LDggKzEyNjQsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEJhY2tncm91bmRDb2xvcihjb25z
dCBDb2xvciYgdikgeyBTRVRfVkFSKG1fYmFja2dyb3VuZCwgbV9jb2xvciwgdik7IH0KIAotICAg
IHZvaWQgc2V0QmFja2dyb3VuZFhQb3NpdGlvbihMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIobV9i
YWNrZ3JvdW5kLCBtX2JhY2tncm91bmQubV94UG9zaXRpb24sIFdURk1vdmUobGVuZ3RoKSk7IH0K
LSAgICB2b2lkIHNldEJhY2tncm91bmRZUG9zaXRpb24oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFS
KG1fYmFja2dyb3VuZCwgbV9iYWNrZ3JvdW5kLm1feVBvc2l0aW9uLCBXVEZNb3ZlKGxlbmd0aCkp
OyB9CisgICAgdm9pZCBzZXRCYWNrZ3JvdW5kWFBvc2l0aW9uKGNvbnN0IEVkZ2VSZWxhdGl2ZUxl
bmd0aCYgbGVuZ3RoKSB7IFNFVF9WQVIobV9iYWNrZ3JvdW5kLCBtX2JhY2tncm91bmQubV94UG9z
aXRpb24sIGxlbmd0aCk7IH0KKyAgICB2b2lkIHNldEJhY2tncm91bmRZUG9zaXRpb24oY29uc3Qg
RWRnZVJlbGF0aXZlTGVuZ3RoJiBsZW5ndGgpIHsgU0VUX1ZBUihtX2JhY2tncm91bmQsIG1fYmFj
a2dyb3VuZC5tX3lQb3NpdGlvbiwgbGVuZ3RoKTsgfQogICAgIHZvaWQgc2V0QmFja2dyb3VuZFNp
emUoRUZpbGxTaXplVHlwZSBiKSB7IFNFVF9WQVIobV9iYWNrZ3JvdW5kLCBtX2JhY2tncm91bmQu
bV9zaXplVHlwZSwgYik7IH0KICAgICB2b2lkIHNldEJhY2tncm91bmRTaXplTGVuZ3RoKExlbmd0
aFNpemUgc2l6ZSkgeyBTRVRfVkFSKG1fYmFja2dyb3VuZCwgbV9iYWNrZ3JvdW5kLm1fc2l6ZUxl
bmd0aCwgV1RGTW92ZShzaXplKSk7IH0KICAgICAKQEAgLTE0MTgsOCArMTQxOSw4IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgc2V0TWFza0JveEltYWdlKGNvbnN0IE5pbmVQaWVjZUltYWdlJiBiKSB7
IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fbWFza0JveEltYWdlLCBiKTsgfQogICAg
IHZvaWQgc2V0TWFza0JveEltYWdlU291cmNlKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gdikgeyBy
YXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tYXNrQm94SW1hZ2Uuc2V0SW1hZ2Uodik7
IH0KLSAgICB2b2lkIHNldE1hc2tYUG9zaXRpb24oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHJh
cmVOb25Jbmhlcml0ZWREYXRhLCBtX21hc2subV94UG9zaXRpb24sIFdURk1vdmUobGVuZ3RoKSk7
IH0KLSAgICB2b2lkIHNldE1hc2tZUG9zaXRpb24oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHJh
cmVOb25Jbmhlcml0ZWREYXRhLCBtX21hc2subV95UG9zaXRpb24sIFdURk1vdmUobGVuZ3RoKSk7
IH0KKyAgICB2b2lkIHNldE1hc2tYUG9zaXRpb24oY29uc3QgRWRnZVJlbGF0aXZlTGVuZ3RoJiBs
ZW5ndGgpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwgbV9tYXNrLm1feFBvc2l0aW9u
LCBsZW5ndGgpOyB9CisgICAgdm9pZCBzZXRNYXNrWVBvc2l0aW9uKGNvbnN0IEVkZ2VSZWxhdGl2
ZUxlbmd0aCYgbGVuZ3RoKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fbWFzay5t
X3lQb3NpdGlvbiwgbGVuZ3RoKTsgfQogICAgIHZvaWQgc2V0TWFza1NpemUoTGVuZ3RoU2l6ZSBz
aXplKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fbWFzay5tX3NpemVMZW5ndGgs
IFdURk1vdmUoc2l6ZSkpOyB9CiAKICAgICB2b2lkIHNldEJvcmRlckNvbGxhcHNlKEVCb3JkZXJD
b2xsYXBzZSBjb2xsYXBzZSkgeyBpbmhlcml0ZWRfZmxhZ3MuX2JvcmRlcl9jb2xsYXBzZSA9IGNv
bGxhcHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGVDb25zdGFudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlQ29uc3RhbnRzLmNwcAppbmRleCA4MzFkMTc5MjdhZGZhMGRkZTA1ZWU0YmUwYjIx
N2YyNDI5YWQ3ZGNjLi5mMTNjZDdiZDkxMmY2NTdlODcyMGVmOTVkYjcwY2ZiNWJiZjQ2ZDZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25z
dGFudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZUNvbnN0YW50cy5jcHAKQEAgLTg1LDEzICs4NSwxMyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBFTWFza1NvdXJjZVR5cGUgbWFza1NvdXJjZSkKICAgICByZXR1cm4g
dHM7CiB9CiAKLVRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEJhY2tncm91
bmRFZGdlT3JpZ2luIGVkZ2UpCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBFZGdlIGVkZ2UpCiB7CiAgICAgc3dpdGNoIChlZGdlKSB7Ci0gICAgY2FzZSBUb3BFZGdlOiB0
cyA8PCAidG9wIjsgYnJlYWs7Ci0gICAgY2FzZSBSaWdodEVkZ2U6IHRzIDw8ICJyaWdodCI7IGJy
ZWFrOwotICAgIGNhc2UgQm90dG9tRWRnZTogdHMgPDwgImJvdHRvbSI7IGJyZWFrOwotICAgIGNh
c2UgTGVmdEVkZ2U6IHRzIDw8ICJsZWZ0IjsgYnJlYWs7CisgICAgY2FzZSBFZGdlOjpUb3A6IHRz
IDw8ICJ0b3AiOyBicmVhazsKKyAgICBjYXNlIEVkZ2U6OlJpZ2h0OiB0cyA8PCAicmlnaHQiOyBi
cmVhazsKKyAgICBjYXNlIEVkZ2U6OkJvdHRvbTogdHMgPDwgImJvdHRvbSI7IGJyZWFrOworICAg
IGNhc2UgRWRnZTo6TGVmdDogdHMgPDwgImxlZnQiOyBicmVhazsKICAgICB9CiAgICAgcmV0dXJu
IHRzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGVDb25zdGFudHMuaAppbmRleCBmZTZmNjMwYWQ0ODk0YTE1OTZjYWViZTkxM2VlOGUzNDE3
M2M3ZGExLi40OTJmNzhjNGQyZjEyOWQ0ZTA0OTRmMzNkMzNkMmEzYjc4ODkzMGMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFu
dHMuaApAQCAtMjMwLDggKzIzMCw4IEBAIGVudW0gRUZpbGxMYXllclR5cGUgewogLy8gQ1NTMyBC
YWNrZ3JvdW5kIFZhbHVlcwogZW51bSBFRmlsbFNpemVUeXBlIHsgQ29udGFpbiwgQ292ZXIsIFNp
emVMZW5ndGgsIFNpemVOb25lIH07CiAKLS8vIENTUzMgQmFja2dyb3VuZCBQb3NpdGlvbgotZW51
bSBCYWNrZ3JvdW5kRWRnZU9yaWdpbiB7IFRvcEVkZ2UsIFJpZ2h0RWRnZSwgQm90dG9tRWRnZSwg
TGVmdEVkZ2UgfTsKKy8vIENTUzMgPHBvc2l0aW9uPgorZW51bSBjbGFzcyBFZGdlIHsgVG9wLCBS
aWdodCwgQm90dG9tLCBMZWZ0IH07CiAKIC8vIENTUzMgTWFzayBTb3VyY2UgVHlwZXMKIGVudW0g
RU1hc2tTb3VyY2VUeXBlIHsgTWFza0FscGhhLCBNYXNrTHVtaW5hbmNlIH07CkBAIC02OTQsNyAr
Njk0LDcgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgRUZpbGxBdHRhY2ht
ZW50KTsKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIEVGaWxsQm94KTsKIFRl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIEVGaWxsUmVwZWF0KTsKIFRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIEVNYXNrU291cmNlVHlwZSk7Ci1UZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBCYWNrZ3JvdW5kRWRnZU9yaWdpbik7CitUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBFZGdlKTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNTRjYjVkMWU1YjJlMDI5YmE1MDUzNTZhNjM0MjQwNzIzNDBiYmNlNS4u
MWJmNjBiMGQ0MTJmNWNiNTVlYzQ5ODkxYTQxNGM1YzI2MmYwMzllYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDE2LTAyLTE5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgorCisgICAgICAgIFJlcGVhdGVkIGJhY2tncm91bmQgaW1hZ2VzIGhhdmUgdGhlIHdyb25nIHBv
c2l0aW9uIHdoZW4gdXNpbmcgYm90dG9tL3JpZ2h0LXJlbGF0aXZlIGJhY2tncm91bmQtcG9zaXRp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDQ3
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFz
dC9jc3MvYmFja2dyb3VuZC1wb3NpdGlvbi1zZXJpYWxpemUuaHRtbDogQWRkIG1vcmUgdGVzdHMs
IHVzaW5nICdib3R0b20nIGFuZCAncmlnaHQnIGtleXdvcmRzLgorICAgICAgICAqIGZhc3QvY3Nz
L2JhY2tncm91bmQtcG9zaXRpb24tc2VyaWFsaXplLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L2ltYWdlcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvaW1hZ2VzL2JhY2tncm91bmQtcG9zaXRpb24uaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2NoZWNrZXIucG5nOiBBZGRlZC4KKwogMjAxNi0w
Mi0xOSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWJh
c2VsaW5lIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaW50ZXJmYWNl
cy5odG1sIGZvciBpb3Mtc2ltdWxhdG9yIGFmdGVyIHIxOTY3OTcKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2JhY2tncm91bmQtcG9zaXRpb24tc2VyaWFsaXplLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2JhY2tncm91bmQtcG9zaXRpb24tc2VyaWFsaXplLWV4
cGVjdGVkLnR4dAppbmRleCA3YTBiMGZkY2EyYzNhNDQ0NzIzM2NjNjMwZDkxNjM0ODAzNTE0Y2Fj
Li40MDYxY2ZhOWEzMjU0NzQzYmZiNDdjMjI2ZDhjYTcxMGM5NmQwMDQxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLXNlcmlhbGl6ZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvYmFja2dyb3VuZC1wb3NpdGlvbi1zZXJp
YWxpemUtZXhwZWN0ZWQudHh0CkBAIC01Niw2ICs1NiwxOSBAQCBQQVNTOiB0LnN0eWxlLmJhY2tn
cm91bmRQb3NpdGlvbiBzaG91bGQgYmUgMTBweCAxNXB4LCAyMHB4IDI1cHgsIDMwcHggMzVweCBh
bmQgaQogUEFTUzogdC5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRpb25YIHNob3VsZCBiZSAxMHB4LCAy
MHB4LCAzMHB4IGFuZCBpcy4KIFBBU1M6IHQuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uWSBzaG91
bGQgYmUgMTVweCwgMjVweCwgMzVweCBhbmQgaXMuCiBQQVNTOiB0LnN0eWxlLmNzc1RleHQgc2hv
dWxkIGJlIGJhY2tncm91bmQtcG9zaXRpb246IDEwcHggMTVweCwgMjBweCAyNXB4LCAzMHB4IDM1
cHg7IGFuZCBpcy4KK3Quc2V0QXR0cmlidXRlKCdzdHlsZScsICdiYWNrZ3JvdW5kLXBvc2l0aW9u
OiBib3R0b20gMTBweCByaWdodCAyMHB4Jyk7CitQQVNTOiB0LnN0eWxlLmJhY2tncm91bmRQb3Np
dGlvbiBzaG91bGQgYmUgcmlnaHQgMjBweCBib3R0b20gMTBweCBhbmQgaXMuCitQQVNTOiB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5iYWNrZ3JvdW5kUG9zaXRpb24gc2hvdWxkIGJlIHJpZ2h0
IDIwcHggYm90dG9tIDEwcHggYW5kIGlzLgordC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2JhY2tn
cm91bmQtcG9zaXRpb246IHRvcCAxMHB4IHJpZ2h0IDIwcHgnKTsKK1BBU1M6IHQuc3R5bGUuYmFj
a2dyb3VuZFBvc2l0aW9uIHNob3VsZCBiZSByaWdodCAyMHB4IHRvcCAxMHB4IGFuZCBpcy4KK1BB
U1M6IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmJhY2tncm91bmRQb3NpdGlvbiBzaG91bGQg
YmUgcmlnaHQgMjBweCB0b3AgMTBweCBhbmQgaXMuCit0LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAn
YmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIGxlZnQnKTsKK1BBU1M6IHQuc3R5bGUuYmFja2dyb3Vu
ZFBvc2l0aW9uIHNob3VsZCBiZSBhbmQgaXMuCit0LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnYmFj
a2dyb3VuZC1wb3NpdGlvbi14OiByaWdodCAyMHB4Jyk7CitQQVNTOiB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZSh0KS5iYWNrZ3JvdW5kUG9zaXRpb25YIHNob3VsZCBiZSAwJSBhbmQgaXMuCit0LnNl
dEF0dHJpYnV0ZSgnc3R5bGUnLCAnYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMjBweCBib3R0
b20gMTBweCcpOworUEFTUzogd2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuYmFja2dyb3VuZFBv
c2l0aW9uIHNob3VsZCBiZSByaWdodCAyMHB4IGJvdHRvbSAxMHB4IGFuZCBpcy4KK1BBU1M6IHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmJhY2tncm91bmRQb3NpdGlvblggc2hvdWxkIGJlIHJp
Z2h0IDIwcHggYW5kIGlzLgogdC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2JhY2tncm91bmQ6IHVy
bChhYm91dDpibGFuaykgODAlIDgwJTsnKTsKIHQuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uWSA9
ICc1MHB4Jwogc3R5bGUuY3NzVGV4dCA9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9iYWNrZ3JvdW5kLXBvc2l0aW9uLXNlcmlhbGl6ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvYmFja2dyb3VuZC1wb3NpdGlvbi1zZXJpYWxpemUuaHRtbAppbmRleCBkMzk1MGZmNjE5ZjBi
OTIyYWFiMDlmY2I4OTk2M2ZkZTk5ZWJlZTRjLi43ODczN2QwYzhmNDY4NTQxMTk4MjY1Njg5YjE4
NWMzOTk2M2Q2NDNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9iYWNrZ3JvdW5k
LXBvc2l0aW9uLXNlcmlhbGl6ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2JhY2tn
cm91bmQtcG9zaXRpb24tc2VyaWFsaXplLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8aHRtbD4KIDxi
b2R5PgotPGRpdiBpZD10PjwvZGl2PgotPGRpdiBpZD1jb25zb2xlPjwvZGl2PgorPGRpdiBpZD0i
dCI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQ+CiBmdW5jdGlvbiBw
cmludChtZXNzYWdlLCBjb2xvcikgCiB7CkBAIC0xMTEsNiArMTExLDI0IEBAIHNob3VsZEJlKCJ0
LnN0eWxlLmJhY2tncm91bmRQb3NpdGlvblgiLCAiMTBweCwgMjBweCwgMzBweCIpOwogc2hvdWxk
QmUoInQuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uWSIsICIxNXB4LCAyNXB4LCAzNXB4Iik7CiBz
aG91bGRCZSgidC5zdHlsZS5jc3NUZXh0IiwgImJhY2tncm91bmQtcG9zaXRpb246IDEwcHggMTVw
eCwgMjBweCAyNXB4LCAzMHB4IDM1cHg7Iik7CiAKK3J1bigidC5zZXRBdHRyaWJ1dGUoJ3N0eWxl
JywgJ2JhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSAxMHB4IHJpZ2h0IDIwcHgnKTsiKTsKK3No
b3VsZEJlKCJ0LnN0eWxlLmJhY2tncm91bmRQb3NpdGlvbiIsICJyaWdodCAyMHB4IGJvdHRvbSAx
MHB4Iik7CitzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuYmFja2dyb3VuZFBv
c2l0aW9uIiwgInJpZ2h0IDIwcHggYm90dG9tIDEwcHgiKTsKKworcnVuKCJ0LnNldEF0dHJpYnV0
ZSgnc3R5bGUnLCAnYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIDEwcHggcmlnaHQgMjBweCcpOyIp
Oworc2hvdWxkQmUoInQuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uIiwgInJpZ2h0IDIwcHggdG9w
IDEwcHgiKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5iYWNrZ3JvdW5k
UG9zaXRpb24iLCAicmlnaHQgMjBweCB0b3AgMTBweCIpOworCitydW4oInQuc2V0QXR0cmlidXRl
KCdzdHlsZScsICdiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgbGVmdCcpOyIpOyAvLyBJbnZhbGlk
IHBlciBzcGVjLgorc2hvdWxkQmUoInQuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uIiwgIiIpOwor
CitydW4oInQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IHJp
Z2h0IDIwcHgnKTsiKTsgLy8gVGhpcyBkb2VzIG5vdCBwYXJzZSwgYnV0IHBlcmhhcHMgaXQgc2hv
dWxkLgorc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmJhY2tncm91bmRQb3Np
dGlvblgiLCAiMCUiKTsKKworcnVuKCJ0LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnYmFja2dyb3Vu
ZC1wb3NpdGlvbjogcmlnaHQgMjBweCBib3R0b20gMTBweCcpOyIpOworc2hvdWxkQmUoIndpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKHQpLmJhY2tncm91bmRQb3NpdGlvbiIsICJyaWdodCAyMHB4IGJv
dHRvbSAxMHB4Iik7CitzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuYmFja2dy
b3VuZFBvc2l0aW9uWCIsICJyaWdodCAyMHB4Iik7CisKIHJ1bigidC5zZXRBdHRyaWJ1dGUoJ3N0
eWxlJywgJ2JhY2tncm91bmQ6IHVybChhYm91dDpibGFuaykgODAlIDgwJTsnKTsiKTsKIHJ1bigi
dC5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRpb25ZID0gJzUwcHgnIik7CiBwcmludCgic3R5bGUuY3Nz
VGV4dCA9Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9iYWNrZ3JvdW5k
LXBvc2l0aW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9iYWNrZ3Jv
dW5kLXBvc2l0aW9uLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWRlNzU0NDE1YmRhY2MxZDM2
ZDg0YjMyMzA4YmMxM2NlMTllMmU5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2JhY2tncm91bmQtcG9zaXRpb24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDkw
IEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAg
ICAgIC5jb250YWluZXIgeworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAg
aGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgICAgICAgIGJv
cmRlcjogMnB4IHNvbGlkIGdyYXk7CisgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
CisgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIH0KKyAgICAgICAgLmJv
eCB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB3aWR0aDog
MTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgYmFja2dyb3Vu
ZC1pbWFnZTogdXJsKCdyZXNvdXJjZXMvY2hlY2tlci5wbmcnKTsKKyAgICAgICAgICAgIGJhY2tn
cm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5y
ZXBlYXQgLmJveCB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0OworICAg
ICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXY+CisgICAgICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0
eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDAiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJv
eCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDEwcHggMjBweCI+PC9kaXY+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRp
diBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogNXB4IDI1cHgiPjwvZGl2
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDI1cHgg
NXB4Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0
aW9uOiA0NXB4IDI1cHgiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tn
cm91bmQtcG9zaXRpb246IDEwMCUgMjVweCI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9InJlcGVhdCI+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBv
c2l0aW9uOiAwIDAiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91
bmQtcG9zaXRpb246IDEwcHggMjBweCI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHls
ZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogNXB4IDI1cHgiPjwvZGl2PgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDI1cHggNXB4Ij48L2Rpdj4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0NXB4IDI1cHgiPjwv
ZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDEw
MCUgMjVweCI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9InJlcGVhdCI+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IC13ZWJr
aXQtY2xpcC1wYXRoOiBpbnNldCgwIDUwcHggNTBweCAwKTsiPjwvZGl2PgorICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xh
c3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDEwcHggMjBweDsgLXdlYmtpdC1j
bGlwLXBhdGg6IGluc2V0KDIwcHggNDBweCAzMHB4IDEwcHgpOyI+PC9kaXY+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBj
bGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogNXB4IDI1cHg7IC13ZWJraXQt
Y2xpcC1wYXRoOiBpbnNldCgyNXB4IDQ1cHggMjVweCA1cHgpOyI+PC9kaXY+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBj
bGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMjVweCA1cHg7IC13ZWJraXQt
Y2xpcC1wYXRoOiBpbnNldCg1cHggMjVweCA0NXB4IDI1cHgpOyI+PC9kaXY+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBj
bGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogNDVweCAyNXB4OyAtd2Via2l0
LWNsaXAtcGF0aDogaW5zZXQoMjVweCA1cHggMjVweCA0NXB4KTsiPjwvZGl2PgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYg
Y2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMjVweDsgLXdlYmtp
dC1jbGlwLXBhdGg6IGluc2V0KDI1cHggMCAyNXB4IDUwcHgpOyI+PC9kaXY+CisgICAgICAgIDwv
ZGl2PgorICAgIDwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjJmZDU0ZTdh
MzZkY2I1NDk4OWU4ZDM5MTQ1YjQ4MmVkNThmNTdiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2JhY2tncm91bmQtcG9zaXRpb24uaHRtbApAQCAtMCwwICsxLDkw
IEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAg
ICAgIC5jb250YWluZXIgeworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAg
aGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgICAgICAgIGJv
cmRlcjogMnB4IHNvbGlkIGdyYXk7CisgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
CisgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIH0KKyAgICAgICAgLmJv
eCB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB3aWR0aDog
MTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgYmFja2dyb3Vu
ZC1pbWFnZTogdXJsKCdyZXNvdXJjZXMvY2hlY2tlci5wbmcnKTsKKyAgICAgICAgICAgIGJhY2tn
cm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5y
ZXBlYXQgLmJveCB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0OworICAg
ICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXY+CisgICAgICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0
eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDAiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJv
eCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDEwcHggMjBweCI+PC9kaXY+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRp
diBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMTAlIDUwJSI+PC9kaXY+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIDEw
JSBsZWZ0IDUwJSI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3Vu
ZC1wb3NpdGlvbjogcmlnaHQgMTAlIGJvdHRvbSA1MCUiPjwvZGl2PgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodCI+PC9kaXY+Cisg
ICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlcGVhdCI+CisgICAg
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3gi
IHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDAiPjwvZGl2PgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDEwcHggMjBweCI+PC9kaXY+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAg
PGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMTAlIDUwJSI+PC9k
aXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogdG9w
IDEwJSBsZWZ0IDUwJSI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNz
PSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dy
b3VuZC1wb3NpdGlvbjogcmlnaHQgMTAlIGJvdHRvbSA1MCUiPjwvZGl2PgorICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xh
c3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodCI+PC9kaXY+
CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNr
Z3JvdW5kLXBvc2l0aW9uOiAwIDAiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9
ImJhY2tncm91bmQtcG9zaXRpb246IDEwcHggMjBweCI+PC9kaXY+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0i
Ym94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMTAlIDUwJSI+PC9kaXY+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRp
diBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIDEwJSBsZWZ0IDUw
JSI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlv
bjogcmlnaHQgMTAlIGJvdHRvbSA1MCUiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5
bGU9ImJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodCI+PC9kaXY+CisgICAgICAgIDwv
ZGl2PgorICAgIDwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9yZXNvdXJjZXMvY2hlY2tlci5wbmcgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9yZXNvdXJjZXMvY2hlY2tlci5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQ3OWI0NzYwOTY0YjMy
NDY5ZTdkZGE4NTdhN2IzZWZkOTEwNTU4NgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTU4Cnpj
bWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeTWoqXz0xfDtSfEoybkVUUjhKU2prY0BrOFoqQW10YV4h
SjJuQ14xXwp6IXA/ZWJtRlk1QFMjTDtYRHhWSXs2QEw8WV80fUppZjlLNCM0Xz5kdyQkPHQ9PStE
Z2h7LUhCM3Q9fjk9bip8ai0KZlMrOChld0xoS1RrJWMyTWY/TGxJWGQjMkF0RG5te3ItVVd8ZlZD
QHwKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271943</attachid>
            <date>2016-02-22 12:45:19 -0800</date>
            <delta_ts>2016-02-22 12:47:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154478-20160222124501.patch</filename>
            <type>text/plain</type>
            <size>24958</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2ODY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjlhNmEyMDJkYzNlY2U5
N2U0ZDk3YzUxMzBjY2ZlMTk4MGJiMDBlNC4uYTUzZDZkYTU3ZmQ4M2ZhMDliOGU1ZWU1ZWRhN2Jm
YTBjZmZiY2FiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE2LTAyLTIyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlcGVhdGVkIGJh
Y2tncm91bmQgaW1hZ2VzIGhhdmUgdGhlIHdyb25nIHBvc2l0aW9uIHdoZW4gdXNpbmcgYm90dG9t
L3JpZ2h0LXJlbGF0aXZlIGJhY2tncm91bmQtcG9zaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDQ3OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgRml4IFJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpjYWxjdWxhdGVCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeSgpIHRvIHVzZSB0aGUgcmlnaHQg
cG9zaXRpb24gd2hlbgorICAgICAgICBwYWludGluZyByZXBlYXRlZCBiYWNrZ3JvdW5kIGltYWdl
cyB3aGVuIHJpZ2h0L2JvdHRvbSBlZGdlcyBhcmUgdXNlZC4KKyAgICAgICAgCisgICAgICAgIEFs
c28gcmVuYW1lIEJhY2tncm91bmRFZGdlT3JpZ2luIHRvIEVkZ2UKKworICAgICAgICBUZXN0OiBm
YXN0L2ltYWdlcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NQ
cmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEVkZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIEJhY2tncm91bmRFZGdlT3JpZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVz
b2x2ZUVkZ2VSZWxhdGl2ZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2Rl
bE9iamVjdDo6Y2FsY3VsYXRlQmFja2dyb3VuZEltYWdlR2VvbWV0cnkpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVy
OjpGaWxsTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6YmFja2dyb3VuZFhPcmlnaW4pOgorICAgICAgICAo
V2ViQ29yZTo6RmlsbExheWVyOjpiYWNrZ3JvdW5kWU9yaWdpbik6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxsTGF5ZXI6OnNldEJhY2tncm91bmRYT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkZp
bGxMYXllcjo6c2V0QmFja2dyb3VuZFlPcmlnaW4pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaDoKKwog
MjAxNi0wMi0yMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXaGVlbCBldmVudCBjYWxsYmFjayByZW1vdmluZyB0aGUgd2luZG93IGNhdXNlcyBjcmFz
aCBpbiBXZWJDb3JlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlTWFwcGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1h
cHBpbmdzLmgKaW5kZXggYTlhYWE5NGM3OTg0YzUyZmVkMjljMjg0ZDFmZGZiYzk1NjNiZmQ4Mi4u
ZjdlYmJjZDc2MDA4ZmE5YmZhMDlkNjU1YzliNDA0NGQwMzRhN2U5NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC05MDIsNDUgKzkwMiw0
NSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRUJveERl
Y29yYXRpb25CcmVhaygpIGNvbnN0CiB9CiAjZW5kaWYKIAotdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJhY2tncm91bmRFZGdlT3JpZ2luIGUp
Cit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
RWRnZSBlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7CiAgICAgbV9wcmltaXRp
dmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICBjYXNlIFRv
cEVkZ2U6CisgICAgY2FzZSBFZGdlOjpUb3A6CiAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlVG9wOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFJpZ2h0RWRnZToKKyAgICBjYXNl
IEVkZ2U6OlJpZ2h0OgogICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJpZ2h0Owog
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEJvdHRvbUVkZ2U6CisgICAgY2FzZSBFZGdlOjpCb3R0
b206CiAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm90dG9tOwogICAgICAgICBi
cmVhazsKLSAgICBjYXNlIExlZnRFZGdlOgorICAgIGNhc2UgRWRnZTo6TGVmdDoKICAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0OwogICAgICAgICBicmVhazsKICAgICB9CiB9
CiAKLXRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCYWNrZ3Jv
dW5kRWRnZU9yaWdpbigpIGNvbnN0Cit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRWRnZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAog
ICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVRvcDoKLSAg
ICAgICAgcmV0dXJuIFRvcEVkZ2U7CisgICAgICAgIHJldHVybiBFZGdlOjpUb3A7CiAgICAgY2Fz
ZSBDU1NWYWx1ZVJpZ2h0OgotICAgICAgICByZXR1cm4gUmlnaHRFZGdlOworICAgICAgICByZXR1
cm4gRWRnZTo6UmlnaHQ7CiAgICAgY2FzZSBDU1NWYWx1ZUJvdHRvbToKLSAgICAgICAgcmV0dXJu
IEJvdHRvbUVkZ2U7CisgICAgICAgIHJldHVybiBFZGdlOjpCb3R0b207CiAgICAgY2FzZSBDU1NW
YWx1ZUxlZnQ6Ci0gICAgICAgIHJldHVybiBMZWZ0RWRnZTsKKyAgICAgICAgcmV0dXJuIEVkZ2U6
OkxlZnQ7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFRvcEVkZ2U7CisgICAgcmV0dXJuIEVkZ2U6OlRv
cDsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2
ZVZhbHVlKEVCb3hTaXppbmcgZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDc0N2Y2ZmZlNzk3OTcyMzJmNmZkNDQwNjU2M2Vj
ZTUxZDU1OGYwNDcuLmQyMTU5ODAwZWIxYzc2YTg3YmU5MjY3Yzc3NWFhYTg3NmE3MGViODMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNw
cApAQCAtMTA0NCw2ICsxMDQ0LDE5IEBAIHN0YXRpYyBpbmxpbmUgTGF5b3V0VW5pdCBnZXRTcGFj
ZShMYXlvdXRVbml0IGFyZWFTaXplLCBMYXlvdXRVbml0IHRpbGVTaXplKQogICAgIHJldHVybiBz
cGFjZTsKIH0KIAorc3RhdGljIExheW91dFVuaXQgcmVzb2x2ZUVkZ2VSZWxhdGl2ZUxlbmd0aChj
b25zdCBMZW5ndGgmIGxlbmd0aCwgRWRnZSBlZGdlLCBMYXlvdXRVbml0IGF2YWlsYWJsZVNwYWNl
LCBjb25zdCBMYXlvdXRTaXplJiBhcmVhU2l6ZSwgY29uc3QgTGF5b3V0U2l6ZSYgdGlsZVNpemUp
Cit7CisgICAgTGF5b3V0VW5pdCByZXN1bHQgPSBtaW5pbXVtVmFsdWVGb3JMZW5ndGgobGVuZ3Ro
LCBhdmFpbGFibGVTcGFjZSwgZmFsc2UpOworCisgICAgaWYgKGVkZ2UgPT0gRWRnZTo6UmlnaHQp
CisgICAgICAgIHJldHVybiBhcmVhU2l6ZS53aWR0aCgpIC0gdGlsZVNpemUud2lkdGgoKSAtIHJl
c3VsdDsKKyAgICAKKyAgICBpZiAoZWRnZSA9PSBFZGdlOjpCb3R0b20pCisgICAgICAgIHJldHVy
biBhcmVhU2l6ZS5oZWlnaHQoKSAtIHRpbGVTaXplLmhlaWdodCgpIC0gcmVzdWx0OworCisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKwogQmFja2dyb3VuZEltYWdlR2VvbWV0cnkgUmVuZGVyQm94TW9k
ZWxPYmplY3Q6OmNhbGN1bGF0ZUJhY2tncm91bmRJbWFnZUdlb21ldHJ5KGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHBhaW50Q29udGFpbmVyLCBjb25zdCBGaWxsTGF5ZXImIGZpbGxMYXll
ciwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LAogICAgIGNvbnN0IExheW91dFJlY3Qm
IGJvcmRlckJveFJlY3QsIFJlbmRlckVsZW1lbnQqIGJhY2tncm91bmRPYmplY3QpIGNvbnN0CiB7
CkBAIC0xMTQ3LDcgKzExNjAsNyBAQCBCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeSBSZW5kZXJCb3hN
b2RlbE9iamVjdDo6Y2FsY3VsYXRlQmFja2dyb3VuZEltYWdlR2VvbWV0cnkoYwogICAgIExheW91
dFNpemUgc3BhY2VTaXplOwogICAgIExheW91dFNpemUgcGhhc2U7CiAgICAgTGF5b3V0U2l6ZSBu
b1JlcGVhdDsKLSAgICBMYXlvdXRVbml0IGNvbXB1dGVkWFBvc2l0aW9uID0gbWluaW11bVZhbHVl
Rm9yTGVuZ3RoKGZpbGxMYXllci54UG9zaXRpb24oKSwgYXZhaWxhYmxlV2lkdGgsIGZhbHNlKTsK
KyAgICBMYXlvdXRVbml0IGNvbXB1dGVkWFBvc2l0aW9uID0gcmVzb2x2ZUVkZ2VSZWxhdGl2ZUxl
bmd0aChmaWxsTGF5ZXIueFBvc2l0aW9uKCksIGZpbGxMYXllci5iYWNrZ3JvdW5kWE9yaWdpbigp
LCBhdmFpbGFibGVXaWR0aCwgcG9zaXRpb25pbmdBcmVhU2l6ZSwgdGlsZVNpemUpOwogICAgIGlm
IChiYWNrZ3JvdW5kUmVwZWF0WCA9PSBSb3VuZEZpbGwgJiYgcG9zaXRpb25pbmdBcmVhU2l6ZS53
aWR0aCgpID4gMCAmJiB0aWxlU2l6ZS53aWR0aCgpID4gMCkgewogICAgICAgICBpbnQgbnVtVGls
ZXMgPSBzdGQ6Om1heCgxLCByb3VuZFRvSW50KHBvc2l0aW9uaW5nQXJlYVNpemUud2lkdGgoKSAv
IHRpbGVTaXplLndpZHRoKCkpKTsKICAgICAgICAgaWYgKGZpbGxMYXllci5zaXplKCkuc2l6ZS5o
ZWlnaHQoKS5pc0F1dG8oKSAmJiBiYWNrZ3JvdW5kUmVwZWF0WSAhPSBSb3VuZEZpbGwpCkBAIC0x
MTU3LDcgKzExNzAsNyBAQCBCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeSBSZW5kZXJCb3hNb2RlbE9i
amVjdDo6Y2FsY3VsYXRlQmFja2dyb3VuZEltYWdlR2VvbWV0cnkoYwogICAgICAgICBwaGFzZS5z
ZXRXaWR0aCh0aWxlU2l6ZS53aWR0aCgpID8gdGlsZVNpemUud2lkdGgoKSAtIGZtb2RmKChjb21w
dXRlZFhQb3NpdGlvbiArIGxlZnQpLCB0aWxlU2l6ZS53aWR0aCgpKSA6IDApOwogICAgIH0KIAot
ICAgIExheW91dFVuaXQgY29tcHV0ZWRZUG9zaXRpb24gPSBtaW5pbXVtVmFsdWVGb3JMZW5ndGgo
ZmlsbExheWVyLnlQb3NpdGlvbigpLCBhdmFpbGFibGVIZWlnaHQsIGZhbHNlKTsKKyAgICBMYXlv
dXRVbml0IGNvbXB1dGVkWVBvc2l0aW9uID0gcmVzb2x2ZUVkZ2VSZWxhdGl2ZUxlbmd0aChmaWxs
TGF5ZXIueVBvc2l0aW9uKCksIGZpbGxMYXllci5iYWNrZ3JvdW5kWU9yaWdpbigpLCBhdmFpbGFi
bGVIZWlnaHQsIHBvc2l0aW9uaW5nQXJlYVNpemUsIHRpbGVTaXplKTsKICAgICBpZiAoYmFja2dy
b3VuZFJlcGVhdFkgPT0gUm91bmRGaWxsICYmIHBvc2l0aW9uaW5nQXJlYVNpemUuaGVpZ2h0KCkg
PiAwICYmIHRpbGVTaXplLmhlaWdodCgpID4gMCkgewogICAgICAgICBpbnQgbnVtVGlsZXMgPSBz
dGQ6Om1heCgxLCByb3VuZFRvSW50KHBvc2l0aW9uaW5nQXJlYVNpemUuaGVpZ2h0KCkgLyB0aWxl
U2l6ZS5oZWlnaHQoKSkpOwogICAgICAgICBpZiAoZmlsbExheWVyLnNpemUoKS5zaXplLndpZHRo
KCkuaXNBdXRvKCkgJiYgYmFja2dyb3VuZFJlcGVhdFggIT0gUm91bmRGaWxsKQpAQCAtMTE4MSw4
ICsxMTk0LDkgQEAgQmFja2dyb3VuZEltYWdlR2VvbWV0cnkgUmVuZGVyQm94TW9kZWxPYmplY3Q6
OmNhbGN1bGF0ZUJhY2tncm91bmRJbWFnZUdlb21ldHJ5KGMKICAgICAgICAgfSBlbHNlCiAgICAg
ICAgICAgICBiYWNrZ3JvdW5kUmVwZWF0WCA9IE5vUmVwZWF0RmlsbDsKICAgICB9CisKICAgICBp
ZiAoYmFja2dyb3VuZFJlcGVhdFggPT0gTm9SZXBlYXRGaWxsKSB7Ci0gICAgICAgIExheW91dFVu
aXQgeE9mZnNldCA9IGxlZnQgKyAoZmlsbExheWVyLmJhY2tncm91bmRYT3JpZ2luKCkgPT0gUmln
aHRFZGdlID8gYXZhaWxhYmxlV2lkdGggLSBjb21wdXRlZFhQb3NpdGlvbiA6IGNvbXB1dGVkWFBv
c2l0aW9uKTsKKyAgICAgICAgTGF5b3V0VW5pdCB4T2Zmc2V0ID0gbGVmdCArIGNvbXB1dGVkWFBv
c2l0aW9uOwogICAgICAgICBpZiAoeE9mZnNldCA+IDApCiAgICAgICAgICAgICBkZXN0aW5hdGlv
blJlY3QubW92ZSh4T2Zmc2V0LCAwKTsKICAgICAgICAgeE9mZnNldCA9IHN0ZDo6bWluPExheW91
dFVuaXQ+KHhPZmZzZXQsIDApOwpAQCAtMTIwNiw3ICsxMjIwLDcgQEAgQmFja2dyb3VuZEltYWdl
R2VvbWV0cnkgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUJhY2tncm91bmRJbWFnZUdl
b21ldHJ5KGMKICAgICAgICAgICAgIGJhY2tncm91bmRSZXBlYXRZID0gTm9SZXBlYXRGaWxsOwog
ICAgIH0KICAgICBpZiAoYmFja2dyb3VuZFJlcGVhdFkgPT0gTm9SZXBlYXRGaWxsKSB7Ci0gICAg
ICAgIExheW91dFVuaXQgeU9mZnNldCA9IHRvcCArIChmaWxsTGF5ZXIuYmFja2dyb3VuZFlPcmln
aW4oKSA9PSBCb3R0b21FZGdlID8gYXZhaWxhYmxlSGVpZ2h0IC0gY29tcHV0ZWRZUG9zaXRpb24g
OiBjb21wdXRlZFlQb3NpdGlvbik7CisgICAgICAgIExheW91dFVuaXQgeU9mZnNldCA9IHRvcCAr
IGNvbXB1dGVkWVBvc2l0aW9uOwogICAgICAgICBpZiAoeU9mZnNldCA+IDApCiAgICAgICAgICAg
ICBkZXN0aW5hdGlvblJlY3QubW92ZSgwLCB5T2Zmc2V0KTsKICAgICAgICAgeU9mZnNldCA9IHN0
ZDo6bWluPExheW91dFVuaXQ+KHlPZmZzZXQsIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvRmlsbExheWVyLmNwcAppbmRleCAxZjQxOTg4ZjIyMTIwYTE0NjA2ODk1MTM1ZDEy
ZGUxY2Q4NzVjMGMzLi5hMGYwYWJlZTQ5NGZiYjQyNGIzMGJmY2E5MmZlZjA2MjVlNWQzNjU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcApAQCAtNjUs
OCArNjUsOCBAQCBGaWxsTGF5ZXI6OkZpbGxMYXllcihFRmlsbExheWVyVHlwZSB0eXBlKQogICAg
ICwgbV94UG9zU2V0KGZhbHNlKQogICAgICwgbV95UG9zU2V0KGZhbHNlKQogICAgICwgbV9iYWNr
Z3JvdW5kT3JpZ2luU2V0KGZhbHNlKQotICAgICwgbV9iYWNrZ3JvdW5kWE9yaWdpbihMZWZ0RWRn
ZSkKLSAgICAsIG1fYmFja2dyb3VuZFlPcmlnaW4oVG9wRWRnZSkKKyAgICAsIG1fYmFja2dyb3Vu
ZFhPcmlnaW4oc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEVkZ2U6OkxlZnQpKQorICAgICwgbV9iYWNr
Z3JvdW5kWU9yaWdpbihzdGF0aWNfY2FzdDx1bnNpZ25lZD4oRWRnZTo6VG9wKSkKICAgICAsIG1f
Y29tcG9zaXRlU2V0KHR5cGUgPT0gTWFza0ZpbGxMYXllcikKICAgICAsIG1fYmxlbmRNb2RlU2V0
KGZhbHNlKQogICAgICwgbV9tYXNrU291cmNlVHlwZVNldChmYWxzZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaAppbmRleCA4YjBlNjVlM2Y3ZjQ0YTYwYjgyMWMx
NjllYWIzZThjY2NlNTc0NTc3Li4yMzU4YjRkYjJhNTRkMWQyYTgxN2M2NmFkMmI2MzdhYzI1ZDNm
YjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCkBAIC03
MCw4ICs3MCw4IEBAIHB1YmxpYzoKICAgICBTdHlsZUltYWdlKiBpbWFnZSgpIGNvbnN0IHsgcmV0
dXJuIG1faW1hZ2UuZ2V0KCk7IH0KICAgICBjb25zdCBMZW5ndGgmIHhQb3NpdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1feFBvc2l0aW9uOyB9CiAgICAgY29uc3QgTGVuZ3RoJiB5UG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiBtX3lQb3NpdGlvbjsgfQotICAgIEJhY2tncm91bmRFZGdlT3JpZ2luIGJh
Y2tncm91bmRYT3JpZ2luKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8QmFja2dyb3VuZEVk
Z2VPcmlnaW4+KG1fYmFja2dyb3VuZFhPcmlnaW4pOyB9Ci0gICAgQmFja2dyb3VuZEVkZ2VPcmln
aW4gYmFja2dyb3VuZFlPcmlnaW4oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxCYWNrZ3Jv
dW5kRWRnZU9yaWdpbj4obV9iYWNrZ3JvdW5kWU9yaWdpbik7IH0KKyAgICBFZGdlIGJhY2tncm91
bmRYT3JpZ2luKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RWRnZT4obV9iYWNrZ3JvdW5k
WE9yaWdpbik7IH0KKyAgICBFZGdlIGJhY2tncm91bmRZT3JpZ2luKCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8RWRnZT4obV9iYWNrZ3JvdW5kWU9yaWdpbik7IH0KICAgICBFRmlsbEF0dGFj
aG1lbnQgYXR0YWNobWVudCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVGaWxsQXR0YWNo
bWVudD4obV9hdHRhY2htZW50KTsgfQogICAgIEVGaWxsQm94IGNsaXAoKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxFRmlsbEJveD4obV9jbGlwKTsgfQogICAgIEVGaWxsQm94IG9yaWdpbigp
IGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVGaWxsQm94PihtX29yaWdpbik7IH0KQEAgLTEw
NCw4ICsxMDQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJbWFnZShQYXNzUmVmUHRyPFN0eWxl
SW1hZ2U+IGltYWdlKSB7IG1faW1hZ2UgPSBpbWFnZTsgbV9pbWFnZVNldCA9IHRydWU7IH0KICAg
ICB2b2lkIHNldFhQb3NpdGlvbihMZW5ndGggbGVuZ3RoKSB7IG1feFBvc2l0aW9uID0gV1RGTW92
ZShsZW5ndGgpOyBtX3hQb3NTZXQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXRZUG9zaXRpb24oTGVu
Z3RoIGxlbmd0aCkgeyBtX3lQb3NpdGlvbiA9IFdURk1vdmUobGVuZ3RoKTsgbV95UG9zU2V0ID0g
dHJ1ZTsgfQotICAgIHZvaWQgc2V0QmFja2dyb3VuZFhPcmlnaW4oQmFja2dyb3VuZEVkZ2VPcmln
aW4gbykgeyBtX2JhY2tncm91bmRYT3JpZ2luID0gbzsgbV9iYWNrZ3JvdW5kT3JpZ2luU2V0ID0g
dHJ1ZTsgfQotICAgIHZvaWQgc2V0QmFja2dyb3VuZFlPcmlnaW4oQmFja2dyb3VuZEVkZ2VPcmln
aW4gbykgeyBtX2JhY2tncm91bmRZT3JpZ2luID0gbzsgbV9iYWNrZ3JvdW5kT3JpZ2luU2V0ID0g
dHJ1ZTsgfQorICAgIHZvaWQgc2V0QmFja2dyb3VuZFhPcmlnaW4oRWRnZSBvKSB7IG1fYmFja2dy
b3VuZFhPcmlnaW4gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obyk7IG1fYmFja2dyb3VuZE9yaWdp
blNldCA9IHRydWU7IH0KKyAgICB2b2lkIHNldEJhY2tncm91bmRZT3JpZ2luKEVkZ2UgbykgeyBt
X2JhY2tncm91bmRZT3JpZ2luID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG8pOyBtX2JhY2tncm91
bmRPcmlnaW5TZXQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXRBdHRhY2htZW50KEVGaWxsQXR0YWNo
bWVudCBhdHRhY2htZW50KSB7IG1fYXR0YWNobWVudCA9IGF0dGFjaG1lbnQ7IG1fYXR0YWNobWVu
dFNldCA9IHRydWU7IH0KICAgICB2b2lkIHNldENsaXAoRUZpbGxCb3ggYikgeyBtX2NsaXAgPSBi
OyBtX2NsaXBTZXQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXRPcmlnaW4oRUZpbGxCb3ggYikgeyBt
X29yaWdpbiA9IGI7IG1fb3JpZ2luU2V0ID0gdHJ1ZTsgfQpAQCAtMjAyLDggKzIwMiw4IEBAIHBy
aXZhdGU6CiAgICAgdW5zaWduZWQgbV94UG9zU2V0IDogMTsKICAgICB1bnNpZ25lZCBtX3lQb3NT
ZXQgOiAxOwogICAgIHVuc2lnbmVkIG1fYmFja2dyb3VuZE9yaWdpblNldCA6IDE7Ci0gICAgdW5z
aWduZWQgbV9iYWNrZ3JvdW5kWE9yaWdpbiA6IDI7IC8vIEJhY2tncm91bmRFZGdlT3JpZ2luCi0g
ICAgdW5zaWduZWQgbV9iYWNrZ3JvdW5kWU9yaWdpbiA6IDI7IC8vIEJhY2tncm91bmRFZGdlT3Jp
Z2luCisgICAgdW5zaWduZWQgbV9iYWNrZ3JvdW5kWE9yaWdpbiA6IDI7IC8vIEVkZ2UKKyAgICB1
bnNpZ25lZCBtX2JhY2tncm91bmRZT3JpZ2luIDogMjsgLy8gRWRnZQogICAgIHVuc2lnbmVkIG1f
Y29tcG9zaXRlU2V0IDogMTsKICAgICB1bnNpZ25lZCBtX2JsZW5kTW9kZVNldCA6IDE7CiAgICAg
dW5zaWduZWQgbV9tYXNrU291cmNlVHlwZVNldCA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcAppbmRleCA4MzFk
MTc5MjdhZGZhMGRkZTA1ZWU0YmUwYjIxN2YyNDI5YWQ3ZGNjLi5mMTNjZDdiZDkxMmY2NTdlODcy
MGVmOTVkYjcwY2ZiNWJiZjQ2ZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5jcHAKQEAgLTg1LDEzICs4NSwxMyBA
QCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBFTWFza1NvdXJjZVR5cGUg
bWFza1NvdXJjZSkKICAgICByZXR1cm4gdHM7CiB9CiAKLVRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIEJhY2tncm91bmRFZGdlT3JpZ2luIGVkZ2UpCitUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBFZGdlIGVkZ2UpCiB7CiAgICAgc3dpdGNoIChlZGdl
KSB7Ci0gICAgY2FzZSBUb3BFZGdlOiB0cyA8PCAidG9wIjsgYnJlYWs7Ci0gICAgY2FzZSBSaWdo
dEVkZ2U6IHRzIDw8ICJyaWdodCI7IGJyZWFrOwotICAgIGNhc2UgQm90dG9tRWRnZTogdHMgPDwg
ImJvdHRvbSI7IGJyZWFrOwotICAgIGNhc2UgTGVmdEVkZ2U6IHRzIDw8ICJsZWZ0IjsgYnJlYWs7
CisgICAgY2FzZSBFZGdlOjpUb3A6IHRzIDw8ICJ0b3AiOyBicmVhazsKKyAgICBjYXNlIEVkZ2U6
OlJpZ2h0OiB0cyA8PCAicmlnaHQiOyBicmVhazsKKyAgICBjYXNlIEVkZ2U6OkJvdHRvbTogdHMg
PDwgImJvdHRvbSI7IGJyZWFrOworICAgIGNhc2UgRWRnZTo6TGVmdDogdHMgPDwgImxlZnQiOyBi
cmVhazsKICAgICB9CiAgICAgcmV0dXJuIHRzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAppbmRleCBmZTZmNjMwYWQ0
ODk0YTE1OTZjYWViZTkxM2VlOGUzNDE3M2M3ZGExLi40OTJmNzhjNGQyZjEyOWQ0ZTA0OTRmMzNk
MzNkMmEzYjc4ODkzMGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtMjMwLDggKzIzMCw4IEBAIGVudW0gRUZp
bGxMYXllclR5cGUgewogLy8gQ1NTMyBCYWNrZ3JvdW5kIFZhbHVlcwogZW51bSBFRmlsbFNpemVU
eXBlIHsgQ29udGFpbiwgQ292ZXIsIFNpemVMZW5ndGgsIFNpemVOb25lIH07CiAKLS8vIENTUzMg
QmFja2dyb3VuZCBQb3NpdGlvbgotZW51bSBCYWNrZ3JvdW5kRWRnZU9yaWdpbiB7IFRvcEVkZ2Us
IFJpZ2h0RWRnZSwgQm90dG9tRWRnZSwgTGVmdEVkZ2UgfTsKKy8vIENTUzMgPHBvc2l0aW9uPgor
ZW51bSBjbGFzcyBFZGdlIHsgVG9wLCBSaWdodCwgQm90dG9tLCBMZWZ0IH07CiAKIC8vIENTUzMg
TWFzayBTb3VyY2UgVHlwZXMKIGVudW0gRU1hc2tTb3VyY2VUeXBlIHsgTWFza0FscGhhLCBNYXNr
THVtaW5hbmNlIH07CkBAIC02OTQsNyArNjk0LDcgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiwgRUZpbGxBdHRhY2htZW50KTsKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYsIEVGaWxsQm94KTsKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYs
IEVGaWxsUmVwZWF0KTsKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIEVNYXNr
U291cmNlVHlwZSk7Ci1UZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBCYWNrZ3Jv
dW5kRWRnZU9yaWdpbik7CitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBFZGdl
KTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTlmZjdmMTBkMDNlY2Q5ZTUy
YWE5MjU3MzkyNzNjNTVkOGJkMjk3YS4uNmRlNTc0NjVjYjEzNGU4NGE2ZDIyYjhjZGI3ZDBiZmUz
NTJkMjY4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE2LTAyLTIyICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlcGVhdGVkIGJhY2tncm91bmQg
aW1hZ2VzIGhhdmUgdGhlIHdyb25nIHBvc2l0aW9uIHdoZW4gdXNpbmcgYm90dG9tL3JpZ2h0LXJl
bGF0aXZlIGJhY2tncm91bmQtcG9zaXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1NDQ3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorICAgICAgICAKKyAgICAgICAgRW5oYW5jZWQgYmFja2dyb3VuZC1wb3NpdGlvbi1z
ZXJpYWxpemUuaHRtbCB0byB0ZXN0IHZhbHVlcyB0aGF0IHVzZSByaWdodC9ib3R0b20gZWRnZSBz
cGVjaWZpZXJzLgorICAgICAgICAKKyAgICAgICAgUmVmIHRlc3QgZm9yIGJhY2tncm91bmQtcG9z
aXRpb24uCisKKyAgICAgICAgKiBmYXN0L2Nzcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLXNlcmlhbGl6
ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvYmFja2dyb3VuZC1wb3NpdGlvbi1z
ZXJpYWxpemUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2ltYWdlcy9iYWNrZ3JvdW5kLXBvc2l0aW9u
LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2JhY2tncm91bmQt
cG9zaXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2No
ZWNrZXIucG5nOiBBZGRlZC4KKwogMjAxNi0wMi0yMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBXaGVlbCBldmVudCBjYWxsYmFjayByZW1vdmluZyB0
aGUgd2luZG93IGNhdXNlcyBjcmFzaCBpbiBXZWJDb3JlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvYmFja2dyb3VuZC1wb3NpdGlvbi1zZXJpYWxpemUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvYmFja2dyb3VuZC1wb3NpdGlvbi1zZXJpYWxpemUtZXhwZWN0
ZWQudHh0CmluZGV4IDdhMGIwZmRjYTJjM2E0NDQ3MjMzY2M2MzBkOTE2MzQ4MDM1MTRjYWMuLmMw
ZmIzYmUzMzE2ZmQ4MjBlOWQ2NTRmMWNiOGNlYThjNDg1YWU4MzMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2JhY2tncm91bmQtcG9zaXRpb24tc2VyaWFsaXplLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLXNlcmlhbGl6
ZS1leHBlY3RlZC50eHQKQEAgLTU2LDYgKzU2LDE5IEBAIFBBU1M6IHQuc3R5bGUuYmFja2dyb3Vu
ZFBvc2l0aW9uIHNob3VsZCBiZSAxMHB4IDE1cHgsIDIwcHggMjVweCwgMzBweCAzNXB4IGFuZCBp
CiBQQVNTOiB0LnN0eWxlLmJhY2tncm91bmRQb3NpdGlvblggc2hvdWxkIGJlIDEwcHgsIDIwcHgs
IDMwcHggYW5kIGlzLgogUEFTUzogdC5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRpb25ZIHNob3VsZCBi
ZSAxNXB4LCAyNXB4LCAzNXB4IGFuZCBpcy4KIFBBU1M6IHQuc3R5bGUuY3NzVGV4dCBzaG91bGQg
YmUgYmFja2dyb3VuZC1wb3NpdGlvbjogMTBweCAxNXB4LCAyMHB4IDI1cHgsIDMwcHggMzVweDsg
YW5kIGlzLgordC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2JhY2tncm91bmQtcG9zaXRpb246IGJv
dHRvbSAxMHB4IHJpZ2h0IDIwcHgnKTsKK1BBU1M6IHQuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9u
IHNob3VsZCBiZSByaWdodCAyMHB4IGJvdHRvbSAxMHB4IGFuZCBpcy4KK1BBU1M6IHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKHQpLmJhY2tncm91bmRQb3NpdGlvbiBzaG91bGQgYmUgcmlnaHQgMjBw
eCBib3R0b20gMTBweCBhbmQgaXMuCit0LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnYmFja2dyb3Vu
ZC1wb3NpdGlvbjogdG9wIDEwcHggcmlnaHQgMjBweCcpOworUEFTUzogdC5zdHlsZS5iYWNrZ3Jv
dW5kUG9zaXRpb24gc2hvdWxkIGJlIHJpZ2h0IDIwcHggdG9wIDEwcHggYW5kIGlzLgorUEFTUzog
d2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuYmFja2dyb3VuZFBvc2l0aW9uIHNob3VsZCBiZSBy
aWdodCAyMHB4IHRvcCAxMHB4IGFuZCBpcy4KK3Quc2V0QXR0cmlidXRlKCdzdHlsZScsICdiYWNr
Z3JvdW5kLXBvc2l0aW9uOiA1MCUgbGVmdCcpOworUEFTUzogdC5zdHlsZS5iYWNrZ3JvdW5kUG9z
aXRpb24gc2hvdWxkIGJlIGFuZCBpcy4KK3Quc2V0QXR0cmlidXRlKCdzdHlsZScsICdiYWNrZ3Jv
dW5kLXBvc2l0aW9uLXg6IHJpZ2h0IDIwcHgnKTsKK1BBU1M6IHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKHQpLmJhY2tncm91bmRQb3NpdGlvblggc2hvdWxkIGJlIDAlIGFuZCBpcy4KK3Quc2V0QXR0
cmlidXRlKCdzdHlsZScsICdiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAyMHB4IGJvdHRvbSAx
MHB4Jyk7CitQQVNTOiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5iYWNrZ3JvdW5kUG9zaXRp
b24gc2hvdWxkIGJlIHJpZ2h0IDIwcHggYm90dG9tIDEwcHggYW5kIGlzLgorUEFTUzogd2luZG93
LmdldENvbXB1dGVkU3R5bGUodCkuYmFja2dyb3VuZFBvc2l0aW9uWCBzaG91bGQgYmUgMjBweCBh
bmQgaXMuCiB0LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnYmFja2dyb3VuZDogdXJsKGFib3V0OmJs
YW5rKSA4MCUgODAlOycpOwogdC5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRpb25ZID0gJzUwcHgnCiBz
dHlsZS5jc3NUZXh0ID0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2JhY2tncm91
bmQtcG9zaXRpb24tc2VyaWFsaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9iYWNrZ3Jv
dW5kLXBvc2l0aW9uLXNlcmlhbGl6ZS5odG1sCmluZGV4IGQzOTUwZmY2MTlmMGI5MjJhYWIwOWZj
Yjg5OTYzZmRlOTllYmVlNGMuLmZjMjFlZWJlMDgzMmVmNWEyZDc2YWI0ZjNhODFmNTUwYzlmMDgy
MjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2JhY2tncm91bmQtcG9zaXRpb24t
c2VyaWFsaXplLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvYmFja2dyb3VuZC1wb3Np
dGlvbi1zZXJpYWxpemUuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDxodG1sPgogPGJvZHk+Ci08ZGl2
IGlkPXQ+PC9kaXY+Ci08ZGl2IGlkPWNvbnNvbGU+PC9kaXY+Cis8ZGl2IGlkPSJ0Ij48L2Rpdj4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlwdD4KIGZ1bmN0aW9uIHByaW50KG1lc3Nh
Z2UsIGNvbG9yKSAKIHsKQEAgLTExMSw2ICsxMTEsMjQgQEAgc2hvdWxkQmUoInQuc3R5bGUuYmFj
a2dyb3VuZFBvc2l0aW9uWCIsICIxMHB4LCAyMHB4LCAzMHB4Iik7CiBzaG91bGRCZSgidC5zdHls
ZS5iYWNrZ3JvdW5kUG9zaXRpb25ZIiwgIjE1cHgsIDI1cHgsIDM1cHgiKTsKIHNob3VsZEJlKCJ0
LnN0eWxlLmNzc1RleHQiLCAiYmFja2dyb3VuZC1wb3NpdGlvbjogMTBweCAxNXB4LCAyMHB4IDI1
cHgsIDMwcHggMzVweDsiKTsKIAorcnVuKCJ0LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnYmFja2dy
b3VuZC1wb3NpdGlvbjogYm90dG9tIDEwcHggcmlnaHQgMjBweCcpOyIpOworc2hvdWxkQmUoInQu
c3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uIiwgInJpZ2h0IDIwcHggYm90dG9tIDEwcHgiKTsKK3No
b3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5iYWNrZ3JvdW5kUG9zaXRpb24iLCAi
cmlnaHQgMjBweCBib3R0b20gMTBweCIpOworCitydW4oInQuc2V0QXR0cmlidXRlKCdzdHlsZScs
ICdiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgMTBweCByaWdodCAyMHB4Jyk7Iik7CitzaG91bGRC
ZSgidC5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRpb24iLCAicmlnaHQgMjBweCB0b3AgMTBweCIpOwor
c2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmJhY2tncm91bmRQb3NpdGlvbiIs
ICJyaWdodCAyMHB4IHRvcCAxMHB4Iik7CisKK3J1bigidC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywg
J2JhY2tncm91bmQtcG9zaXRpb246IDUwJSBsZWZ0Jyk7Iik7IC8vIEludmFsaWQgcGVyIHNwZWMu
CitzaG91bGRCZSgidC5zdHlsZS5iYWNrZ3JvdW5kUG9zaXRpb24iLCAiIik7CisKK3J1bigidC5z
ZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2JhY2tncm91bmQtcG9zaXRpb24teDogcmlnaHQgMjBweCcp
OyIpOyAvLyBUaGlzIGRvZXMgbm90IHBhcnNlLCBidXQgcGVyaGFwcyBpdCBzaG91bGQuCitzaG91
bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuYmFja2dyb3VuZFBvc2l0aW9uWCIsICIw
JSIpOworCitydW4oInQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdiYWNrZ3JvdW5kLXBvc2l0aW9u
OiByaWdodCAyMHB4IGJvdHRvbSAxMHB4Jyk7Iik7CitzaG91bGRCZSgid2luZG93LmdldENvbXB1
dGVkU3R5bGUodCkuYmFja2dyb3VuZFBvc2l0aW9uIiwgInJpZ2h0IDIwcHggYm90dG9tIDEwcHgi
KTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5iYWNrZ3JvdW5kUG9zaXRp
b25YIiwgIjIwcHgiKTsgLy8gVGhpcyBpcyBhIGJ1Zy4gd2Via2l0Lm9yZy9iLzE1NDU1MQorCiBy
dW4oInQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdiYWNrZ3JvdW5kOiB1cmwoYWJvdXQ6Ymxhbmsp
IDgwJSA4MCU7Jyk7Iik7CiBydW4oInQuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uWSA9ICc1MHB4
JyIpOwogcHJpbnQoInN0eWxlLmNzc1RleHQgPSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvYmFja2dyb3VuZC1wb3NpdGlvbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvYmFja2dyb3VuZC1wb3NpdGlvbi1leHBlY3RlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjlkZTc1NDQxNWJkYWNjMWQzNmQ4NGIzMjMwOGJjMTNjZTE5ZTJlOTIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9iYWNrZ3JvdW5kLXBvc2l0aW9uLWV4cGVj
dGVkLmh0bWwKQEAgLTAsMCArMSw5MCBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhl
YWQ+CisgICAgPHN0eWxlPgorICAgICAgICAuY29udGFpbmVyIHsKKyAgICAgICAgICAgIHdpZHRo
OiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICBtYXJnaW46
IDEwcHg7CisgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBncmF5OworICAgICAgICAgICAg
ZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwor
ICAgICAgICB9CisgICAgICAgIC5ib3ggeworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRl
OworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsK
KyAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgncmVzb3VyY2VzL2NoZWNrZXIucG5n
Jyk7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICAgICAgICB9
CisgICAgICAgIAorICAgICAgICAucmVwZWF0IC5ib3ggeworICAgICAgICAgICAgYmFja2dyb3Vu
ZC1yZXBlYXQ6IHJlcGVhdDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKyAgICA8ZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAg
ICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwIj48L2Rp
dj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMHB4
IDIwcHgiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9z
aXRpb246IDVweCAyNXB4Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNr
Z3JvdW5kLXBvc2l0aW9uOiAyNXB4IDVweCI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94IiBz
dHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogNDVweCAyNXB4Ij48L2Rpdj4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDI1cHgiPjwvZGl2Pgor
ICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZXBlYXQiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94
IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwIj48L2Rpdj4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNz
PSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMHB4IDIwcHgiPjwvZGl2PgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAg
IDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDVweCAyNXB4Ij48
L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAy
NXB4IDVweCI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1w
b3NpdGlvbjogNDVweCAyNXB4Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJi
YWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDI1cHgiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZXBlYXQiPgorICAgICAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3Vu
ZC1wb3NpdGlvbjogMCAwOyAtd2Via2l0LWNsaXAtcGF0aDogaW5zZXQoMCA1MHB4IDUwcHggMCk7
Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9u
OiAxMHB4IDIwcHg7IC13ZWJraXQtY2xpcC1wYXRoOiBpbnNldCgyMHB4IDQwcHggMzBweCAxMHB4
KTsiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRp
b246IDVweCAyNXB4OyAtd2Via2l0LWNsaXAtcGF0aDogaW5zZXQoMjVweCA0NXB4IDI1cHggNXB4
KTsiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRp
b246IDI1cHggNXB4OyAtd2Via2l0LWNsaXAtcGF0aDogaW5zZXQoNXB4IDI1cHggNDVweCAyNXB4
KTsiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRp
b246IDQ1cHggMjVweDsgLXdlYmtpdC1jbGlwLXBhdGg6IGluc2V0KDI1cHggNXB4IDI1cHggNDVw
eCk7Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0
aW9uOiAxMDAlIDI1cHg7IC13ZWJraXQtY2xpcC1wYXRoOiBpbnNldCgyNXB4IDAgMjVweCA1MHB4
KTsiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKworPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvYmFja2dyb3VuZC1wb3NpdGlv
bi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvYmFja2dyb3VuZC1wb3NpdGlvbi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmYyZmQ1NGU3YTM2ZGNiNTQ5ODllOGQzOTE0NWI0ODJlZDU4ZjU3YjUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9iYWNrZ3JvdW5kLXBvc2l0
aW9uLmh0bWwKQEAgLTAsMCArMSw5MCBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhl
YWQ+CisgICAgPHN0eWxlPgorICAgICAgICAuY29udGFpbmVyIHsKKyAgICAgICAgICAgIHdpZHRo
OiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICBtYXJnaW46
IDEwcHg7CisgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBncmF5OworICAgICAgICAgICAg
ZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwor
ICAgICAgICB9CisgICAgICAgIC5ib3ggeworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRl
OworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsK
KyAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgncmVzb3VyY2VzL2NoZWNrZXIucG5n
Jyk7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICAgICAgICB9
CisgICAgICAgIAorICAgICAgICAucmVwZWF0IC5ib3ggeworICAgICAgICAgICAgYmFja2dyb3Vu
ZC1yZXBlYXQ6IHJlcGVhdDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKyAgICA8ZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAg
ICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwIj48L2Rp
dj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMHB4
IDIwcHgiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9z
aXRpb246IDEwJSA1MCUiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tn
cm91bmQtcG9zaXRpb246IHRvcCAxMCUgbGVmdCA1MCUiPjwvZGl2PgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDEwJSBib3R0b20gNTAlIj48
L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiBj
ZW50ZXIgcmlnaHQiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2
IGNsYXNzPSJyZXBlYXQiPgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICAgICAgPGRpdiBjbGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwIj48
L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAx
MHB4IDIwcHgiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQt
cG9zaXRpb246IDEwJSA1MCUiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJh
Y2tncm91bmQtcG9zaXRpb246IHRvcCAxMCUgbGVmdCA1MCUiPjwvZGl2PgorICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xh
c3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDEwJSBib3R0b20gNTAl
Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9u
OiBjZW50ZXIgcmlnaHQiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8
ZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBj
bGFzcz0iYm94IiBzdHlsZT0iYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwIj48L2Rpdj4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMHB4IDIwcHgiPjwv
ZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9zaXRpb246IDEw
JSA1MCUiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5bGU9ImJhY2tncm91bmQtcG9z
aXRpb246IHRvcCAxMCUgbGVmdCA1MCUiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCIgc3R5
bGU9ImJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDEwJSBib3R0b20gNTAlIj48L2Rpdj4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmln
aHQiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKworPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2NoZWNrZXIu
cG5nIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2NoZWNrZXIucG5nCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjE0NzliNDc2MDk2NGIzMjQ2OWU3ZGRhODU3YTdiM2VmZDkxMDU1ODYKR0lUIGJpbmFy
eSBwYXRjaApsaXRlcmFsIDE1OAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXk1qKl89MXw7UnxK
Mm5FVFI4SlNqa2NAazhaKkFtdGFeIUoybkNeMV8KeiFwP2VibUZZNUBTI0w7WER4Vkl7NkBMPFlf
NH1KaWY5SzQjNF8+ZHckJDx0PT0rRGdoey1IQjN0PX45PW4qfGotCmZTKzgoZXdMaEtUayVjMk1m
P0xsSVhkIzJBdERubXtyLVVXfGZWQ0B8CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>
<flag name="review"
          id="296768"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>