<?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>203848</bug_id>
          
          <creation_ts>2019-11-05 05:37:01 -0800</creation_ts>
          <short_desc>Support parsing, computed style and property style for offset, offset-path, offset-distance</short_desc>
          <delta_ts>2021-11-05 10:15:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>MOVED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>203847</blocked>
    
    <blocked>203967</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Dirk Schulze">krit</assigned_to>
          <cc>boris.chiou</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gerard</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joepeck</cc>
    
    <cc>kiet.ho</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1587358</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2019-11-05 05:37:01 -0800</bug_when>
    <thetext>Support the properties  offset, offset-path (only none | path()), offset-distance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587363</commentid>
    <comment_count>1</comment_count>
      <attachid>382818</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2019-11-05 06:07:57 -0800</bug_when>
    <thetext>Created attachment 382818
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587702</commentid>
    <comment_count>2</comment_count>
      <attachid>382898</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2019-11-05 23:51:32 -0800</bug_when>
    <thetext>Created attachment 382898
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588365</commentid>
    <comment_count>3</comment_count>
      <attachid>382898</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-11-07 13:02:31 -0800</bug_when>
    <thetext>Comment on attachment 382898
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        This patch implements the parsing, computed style and property style
&gt; +        for the
&gt; +        longhand properties: offset-path, offset-distance
&gt; +        shorthand properties: offset

Weird wrapping

&gt; Source/WebCore/css/parser/CSSPropertyParser.cpp:2542
&gt; +    CSSParserTokenRange rangeCopy = range;
&gt; +    CSSParserTokenRange args = consumeFunction(rangeCopy);

What&apos;s happening with rangeCopy?

&gt; Source/WebCore/css/parser/CSSPropertyParser.cpp:2544
&gt; +    // FIXME-NEWPARSER: CSSBasicShape should be a CSSValue, and shapes should not be primitive values.

Why the FIXME-NEWPARSER in new code?

&gt; Source/WebCore/css/parser/CSSPropertyParser.cpp:2550
&gt; +    range = rangeCopy;

And here.

&gt; Source/WebCore/page/RuntimeEnabledFeatures.h:184
&gt; +    void setMotionEnabled(bool isEnabled) { m_motionEnabled = isEnabled; }
&gt; +    bool motionEnabled() const { return m_motionEnabled; }
&gt; +

Let&apos;s call this CSSMotionPath. so setCSSMotionPathEnabled etc

&gt; Source/WebCore/rendering/style/RenderStyle.h:648
&gt; +    const Length&amp; offsetDistance() const { return m_rareNonInheritedData-&gt;offsetDistance; }

You can return a Length by value.

&gt; Source/WebCore/rendering/style/RenderStyle.h:1175
&gt; +    void setOffsetDistance(Length&amp;&amp; offsetDistance) { SET_VAR(m_rareNonInheritedData, offsetDistance, WTFMove(offsetDistance)); }

No point using r-value ref for a Length I think.

&gt; Source/WebCore/rendering/style/StyleRareNonInheritedData.h:148
&gt; +    RefPtr&lt;BasicShape&gt; offsetPath;
&gt; +    Length offsetDistance;

How does this affect padding in the class? Is there a more optimal layout?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588602</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2019-11-08 03:31:59 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #3)
&gt; Comment on attachment 382898 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=382898&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        This patch implements the parsing, computed style and property style
&gt; &gt; +        for the
&gt; &gt; +        longhand properties: offset-path, offset-distance
&gt; &gt; +        shorthand properties: offset
&gt; 
&gt; Weird wrapping
&gt; 
&gt; &gt; Source/WebCore/css/parser/CSSPropertyParser.cpp:2542
&gt; &gt; +    CSSParserTokenRange rangeCopy = range;
&gt; &gt; +    CSSParserTokenRange args = consumeFunction(rangeCopy);
&gt; 
&gt; What&apos;s happening with rangeCopy?

That is quite common in CSSPropertyParser. Some functions, like consumeFunction, increase the token iterator of the range while parsing the range. The copy allows parsing the range and, if parsing of the sub-range fails, the same range can be consumed by another function changing the range.

If successful, the original range gets replaced by the copy.

&gt; 
&gt; &gt; Source/WebCore/css/parser/CSSPropertyParser.cpp:2544
&gt; &gt; +    // FIXME-NEWPARSER: CSSBasicShape should be a CSSValue, and shapes should not be primitive values.
&gt; 
&gt; Why the FIXME-NEWPARSER in new code?
&gt; 
&gt; &gt; Source/WebCore/css/parser/CSSPropertyParser.cpp:2550
&gt; &gt; +    range = rangeCopy;

This is from the same FIXME as for the shape-outside property. Sadly there is not much to share between the two. I think the idea is to use CSSValue, CSSValueList, CSSPrimitiveValue as much as possible and not to create custom CSSValues (which CSSBasicShape is).

&gt; 
&gt; And here.
&gt; 
&gt; &gt; Source/WebCore/page/RuntimeEnabledFeatures.h:184
&gt; &gt; +    void setMotionEnabled(bool isEnabled) { m_motionEnabled = isEnabled; }
&gt; &gt; +    bool motionEnabled() const { return m_motionEnabled; }
&gt; &gt; +
&gt; 
&gt; Let&apos;s call this CSSMotionPath. so setCSSMotionPathEnabled etc

Ok. But that will mean changing the runtime flag to cssMotionPath (instead of motion) as well since code gets generates.

&gt; 
&gt; &gt; Source/WebCore/rendering/style/RenderStyle.h:648
&gt; &gt; +    const Length&amp; offsetDistance() const { return m_rareNonInheritedData-&gt;offsetDistance; }
&gt; 
&gt; You can return a Length by value.

Length is special like a few other value types and used the same way in more than 70 cases.

&gt; 
&gt; &gt; Source/WebCore/rendering/style/RenderStyle.h:1175
&gt; &gt; +    void setOffsetDistance(Length&amp;&amp; offsetDistance) { SET_VAR(m_rareNonInheritedData, offsetDistance, WTFMove(offsetDistance)); }
&gt; 
&gt; No point using r-value ref for a Length I think.

See above.

&gt; 
&gt; &gt; Source/WebCore/rendering/style/StyleRareNonInheritedData.h:148
&gt; &gt; +    RefPtr&lt;BasicShape&gt; offsetPath;
&gt; &gt; +    Length offsetDistance;
&gt; 
&gt; How does this affect padding in the class? Is there a more optimal layout?

The offset-* properties do not affect layout:

The offset-path property defines possible definitions of an element along a given path.
The offset-distance property defines a position on this path.
The offset-rotate property defines the rotation of the object on the path at the specified position via offset-distance.

The idea is the following: A user animates the offset-distance property and the element will transition along the path specified for offset-path.

In a way, offset is just a different kind of transform. As a matter of fact, I intend to implement it as a transform initially: This is platform independent and will provide a way to performance test the offset implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588635</commentid>
    <comment_count>5</comment_count>
      <attachid>383124</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2019-11-08 07:32:56 -0800</bug_when>
    <thetext>Created attachment 383124
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588733</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-11-08 11:22:30 -0800</bug_when>
    <thetext>
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/rendering/style/StyleRareNonInheritedData.h:148
&gt; &gt; &gt; +    RefPtr&lt;BasicShape&gt; offsetPath;
&gt; &gt; &gt; +    Length offsetDistance;
&gt; &gt; 
&gt; &gt; How does this affect padding in the class? Is there a more optimal layout?
&gt; 
&gt; The offset-* properties do not affect layout:

I mean the in-memory layout of StyleRareNonInheritedData

Try ./Tools/Scripts/dump-class-layout on a release build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588756</commentid>
    <comment_count>7</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2019-11-08 12:33:33 -0800</bug_when>
    <thetext>+303 &lt;  1&gt;   [93m&lt;PADDING: 1 byte&gt;[0m
+304 &lt;  8&gt;     [94mWTF::RefPtr&lt;WebCore::BasicShape, WTF::DumbPtrTraits&lt;WebCore::BasicShape&gt; &gt;[0m offsetPath
+304 &lt;  8&gt;       WTF::DumbPtrTraits&lt;WebCore::BasicShape&gt;::StorageType m_ptr
+312 &lt;  8&gt;     [94mWebCore::Length[0m offsetDistance
+312 &lt;  4&gt;       WebCore::Length::(anonymous union) None
+316 &lt;  1&gt;       bool m_hasQuirk
+317 &lt;  1&gt;       unsigned char m_type
+318 &lt;  1&gt;       bool m_isFloat
+319 &lt;  1&gt;   [93m&lt;PADDING: 1 byte&gt;[0m
...


Total byte size: 496
Total pad bytes: 55
Padding percentage: 11.09 %</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591963</commentid>
    <comment_count>8</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2019-11-20 04:40:19 -0800</bug_when>
    <thetext>Ping</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696805</commentid>
    <comment_count>9</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-10-12 02:24:43 -0700</bug_when>
    <thetext>I think a first step before considering this patch would be to import the css/motion WPT tests with baseline results before any experimental support for the new CSS properties related to Motion Path. If the parsing WPT tests don&apos;t support the full breadth of testing added in the patch, we should make sure the WPT tests are updated to include them.

As for this patch, I think the run-time flag should be made a setting, which as I understand it is the recommended way to add an experimental flag that doesn&apos;t require being checked across processes. I added one recently for the support of individual transform operations, see CSSIndividualTransformPropertiesEnabled in WebPreferencesExperimental.yaml.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812167</commentid>
    <comment_count>10</comment_count>
    <who name="Kiet Ho">kiet.ho</who>
    <bug_when>2021-11-05 10:15:10 -0700</bug_when>
    <thetext>Work is being done via bugs 232760, 231801, 231491.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382818</attachid>
            <date>2019-11-05 06:07:57 -0800</date>
            <delta_ts>2019-11-05 23:51:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203848-20191105150755.patch</filename>
            <type>text/plain</type>
            <size>49105</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY4NjgzYjAxZDY3ZWM5
MTA2OGI3ZjVmMTIyYWY5YmQ2YjIxN2IwNi4uZDI5M2FhY2I3MzA5MTc3YzE0MDhiZmVhYjdmOGQ5
MjczNWQ5MzViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE5LTExLTA1ICBEaXJr
IFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3VwcG9ydCBwYXJzaW5nLCBj
b21wdXRlZCBzdHlsZSBhbmQgcHJvcGVydHkgc3R5bGUgZm9yIG9mZnNldCwgb2Zmc2V0LXBhdGgs
IG9mZnNldC1kaXN0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAzODQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBwYXJzaW5nLCBjb21wdXRlZCBzdHls
ZSBhbmQgcHJvcGVydHkgc3R5bGUKKyAgICAgICAgZm9yIHRoZQorICAgICAgICBsb25naGFuZCBw
cm9wZXJ0aWVzOiBvZmZzZXQtcGF0aCwgb2Zmc2V0LWRpc3RhbmNlCisgICAgICAgIHNob3J0aGFu
ZCBwcm9wZXJ0aWVzOiBvZmZzZXQKKworICAgICAgICBUaGUgaW1wbGVtZW50YXRpb24gaGFwcGVu
cyBiZWhpbmQgdGhlIGZlYXR1cmUgZmxhZzogY3NzT2Zmc2V0LgorCisgICAgICAgIFRoZSBsb25n
aGFuZCBvZmZzZXQtcm90YXRlIGdldHMgaW1wbGVtZW50ZWQgaW4gYSBzZXBhcmF0ZSBwYXRjaC4g
CisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3NzL29mZnNldC9wYXJzaW5nLW9mZnNldC1kaXN0YW5j
ZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9vZmZzZXQvcGFyc2luZy1vZmZzZXQtcGF0
aC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9vZmZzZXQvcGFyc2luZy1vZmZzZXQuaHRt
bAorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5T
dHlsZSk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnRpZXMuanNvbjoKKyAgICAgICAgKiBjc3Mv
U3R5bGVQcm9wZXJ0aWVzLmNwcDoKKyAgICAgICAgICAgICAgICBBZGQgb2Zmc2V0IHNob3J0aGFu
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6Z2V0UHJvcGVydHlWYWx1ZSBj
b25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjb25zdW1lUGF0aFNoYXBlT3JOb25lKToKKyAgICAgICAgICAgICAgICBP
bmx5IHBhcnNlIG5vbmUgfCBwYXRoKCkgYXMgQmxpbmsgYW5kIEdlY2tvIGRvLgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUpOgorICAgICAgICAg
ICAgICAgIEFkZCBsb25naGFuZHM6IG9mZnNldC1kaXN0YW5jZSBhbmQgb2Zmc2V0LXBhdGguCisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlcjo6Y29uc3VtZU9mZnNldFNob3J0aGFu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaG9ydGhhbmQp
OgorICAgICAgICAgICAgICAgIEFkZCBvZmZzZXQgc2hvcnRoYW5kLgorICAgICAgICAqIGNzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaDoKKyAgICAgICAgKiBwYWdlL1J1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaDogQWRkIGNzc09mZnNldCBmZWF0dXJlIGZsYWcuCisgICAgICAgIChXZWJDb3Jl
OjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRDU1NPZmZzZXRFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmNzc09mZnNldEVuYWJsZWQgY29uc3Qp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOiBBZGQgb2Zmc2V0RGlz
dGFuY2UgbGVuZ3RoIHZhbHVlCisgICAgICAgICAgICAgICAgYW5kIG9mZnNldFBhdGggQmFzaWNT
aGFwZSB2YWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpvZmZzZXRQYXRoIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpvZmZzZXREaXN0YW5jZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0T2Zmc2V0RGlzdGFuY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmluaXRpYWxPZmZzZXRQYXRoKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjppbml0aWFsT2Zmc2V0RGlzdGFuY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldE9mZnNldFBhdGgpOgorICAgICAgICAqIHJlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9
PSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGEuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0QmFzaWNTaGFwZSk6
CisgICAgICAgICAgICAgICAgQ29udmVydCBiYXNpYyBzaGFwZXMgdy9vIGJvdW5kaW5nIGJveGVz
LiBUaGUgc3BlYyByZXF1aXJlcworICAgICAgICAgICAgICAgIHN1cHBvcnQgZm9yIGJvdW5kaW5n
IGJveGVzIGJ1dCBuZWl0aGVyIEJsaW5rIG5vciBHZWNrbworICAgICAgICAgICAgICAgIGltcGxl
bWVudCB0aGVtLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXJDb252ZXJ0ZXI6OmNv
bnZlcnRCYXNpY1NoYXBlR2VvbWV0cnlCb3gpOgorICAgICAgICAgICAgICAgIFNpbXBsZSByZW5h
bWluZyB0byByZWZsZWN0IHRoZSBiZWhhdmlvciBpbnN0ZWFkIG9mIHRoZQorICAgICAgICAgICAg
ICAgIHByb3BlcnR5LgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXJDb252ZXJ0ZXI6
OmNvbnZlcnRDbGlwUGF0aCk6IERlbGV0ZWQuCisKIDIwMTktMTEtMDUgIHlvdWVubiBmYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIG1wNCB2aWRlbyBlbGVtZW50IGJyb2tlbiB3
aXRoIHNlcnZpY2Ugd29ya2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc0MDRlYTA0MzVhYWQ5Mjc2YTY4OTMyYTUy
Mjg2ZTE3NDY1ZWYzMzguLjA3ODg5MjM1N2UyZWVjNGU4NDc1MDI0N2U2MzRkZDAwY2Q5ZDIyYTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMTEtMDUgIERpcmsgU2NodWx6ZSAgPGty
aXRAd2Via2l0Lm9yZz4KKworICAgICAgICBTdXBwb3J0IHBhcnNpbmcsIGNvbXB1dGVkIHN0eWxl
IGFuZCBwcm9wZXJ0eSBzdHlsZSBmb3Igb2Zmc2V0LCBvZmZzZXQtcGF0aCwgb2Zmc2V0LWRpc3Rh
bmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM4
NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUg
aW1wbGVtZW50YXRpb24gb2YgdGhlIE1vdGlvbiBQYXRoIHNwZWMgaGFwcGVucyBiZWhpbmQgYSBm
ZWF0dXJlIGZsYWcuCisgICAgICAgIEV4cG9zZSB0aGUgZmVhdHVyZSBmbGFnIHRvIHRoZSB0ZXN0
IHN1aXRlLgorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpvdmVycmlkZUJvb2xQcmVmZXJlbmNlRm9yVGVzdFJ1
bm5lcik6CisKIDIwMTktMTEtMDUgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29u
eS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggZm9yICFFTkFCTEUoTUVESUFf
U1RSRUFNKSBidWlsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA4MjRiNDBmYmUy
YTZlYmM1MzU3NDc0NTkyODE2NWUyNmYwYmM0MzllLi41ZDhmY2JiZmEyODk4MDlhNDlmMjJkNzI3
YmY1YWY1ZDE1ZWYwNGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjIgQEAKKzIwMTktMTEtMDUgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAg
ICAgICBTdXBwb3J0IHBhcnNpbmcsIGNvbXB1dGVkIHN0eWxlIGFuZCBwcm9wZXJ0eSBzdHlsZSBm
b3Igb2Zmc2V0LCBvZmZzZXQtcGF0aCwgb2Zmc2V0LWRpc3RhbmNlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM4NDgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgaW1wbGVtZW50YXRpb24gb2YgdGhl
IE1vdGlvbiBQYXRoIHNwZWMgaGFwcGVucyBiZWhpbmQgYSBmZWF0dXJlIGZsYWcuCisgICAgICAg
IEV4cG9zZSB0aGUgZmVhdHVyZSBmbGFnIHRvIHRoZSB0ZXN0IHN1aXRlLgorCisgICAgICAgICog
V2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dl
YlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6
CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIGNzc09mZnNldEVuYWJsZWRdKToKKyAgICAgICAg
KC1bV2ViUHJlZmVyZW5jZXMgc2V0Q1NTT2Zmc2V0RW5hYmxlZDpdKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5t
bToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgorCiAyMDE5LTEx
LTA0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUkVHUkVTU0lPTihyMjQzOTQ3KSBFcHNvbiBzb2Z0d2FyZSB1cGRhdGVyIGZhaWxzIHRvIGlu
c3RhbGwgbmV3IHZlcnNpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggNGJjMjFhZTBjNmQxMDMyNTNiOGI4Yzg3NGRiMDQ2
MjI2MTc4MGI2MS4uY2Y3N2VkY2E1ODVlNzQwZDY0ZTRlZjZhYWFiZjk4N2U4NTRhNTRlYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKQEAgLTMwMDYsNiArMzAwNiwxNiBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVF
eHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlJblN0eWxlKGNvbnN0IFJlbmRlclN0eQogICAgICAg
ICAgICAgbGlzdC0+YXBwZW5kKHpvb21BZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgoc3R5bGUu
b2JqZWN0UG9zaXRpb24oKS55KCksIHN0eWxlKSk7CiAgICAgICAgICAgICByZXR1cm4gbGlzdDsK
ICAgICAgICAgfQorICAgICAgICBjYXNlIENTU1Byb3BlcnR5T2Zmc2V0UGF0aDogeworICAgICAg
ICAgICAgYXV0byogYmFzaWNTaGFwZSA9IHN0eWxlLm9mZnNldFBhdGgoKTsKKyAgICAgICAgICAg
IGlmICghYmFzaWNTaGFwZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNy
ZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpOworICAgICAgICAgICAgcmV0dXJuIHZh
bHVlRm9yQmFzaWNTaGFwZShzdHlsZSwgKmJhc2ljU2hhcGUpOworICAgICAgICB9CisgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlPZmZzZXREaXN0YW5jZToKKyAgICAgICAgICAgIHJldHVybiBjc3NW
YWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUub2Zmc2V0RGlzdGFuY2UoKSwgc3R5bGUpOworICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5T2Zmc2V0OgorICAgICAgICAgICAgcmV0dXJuIGdldENTU1By
b3BlcnR5VmFsdWVzRm9yU2hvcnRoYW5kUHJvcGVydGllcyhvZmZzZXRTaG9ydGhhbmQoKSk7CiAg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPcGFjaXR5OgogICAgICAgICAgICAgcmV0dXJuIGNzc1Zh
bHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vcGFjaXR5KCksIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfTlVNQkVSKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU9ycGhhbnM6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnRpZXMuanNvbgppbmRleCBiYmM5YmVlZDA2ZjJlZjdhM2QwOTRhNTUyZmQw
ZWY2ZDcxZjc5MjZkLi42YTA5N2RiYjc5OGFjNTFhZTExZDhhMjY4ZjBlOWY4NGFlZWVlOWJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KQEAgLTIxMjgsNyArMjEyOCw3IEBA
CiAgICAgICAgICAgICAgICAgImFsaWFzZXMiOiBbCiAgICAgICAgICAgICAgICAgICAgICItd2Vi
a2l0LWNsaXAtcGF0aCIKICAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICJjb252
ZXJ0ZXIiOiAiQ2xpcFBhdGgiCisgICAgICAgICAgICAgICAgImNvbnZlcnRlciI6ICJCYXNpY1No
YXBlR2VvbWV0cnlCb3giCiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCiAgICAgICAgICJjbGlw
LXJ1bGUiOiB7CkBAIC0zMTM0LDYgKzMxMzQsMzkgQEAKICAgICAgICAgICAgICAgICAidXJsIjog
Imh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MzLWltYWdlcy8jb2JqZWN0LXBvc2l0aW9uIgogICAg
ICAgICAgICAgfQogICAgICAgICB9LAorICAgICAgICAib2Zmc2V0IjogeworICAgICAgICAgICAg
ImNvZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAgICAgICAicnVudGltZS1mbGFnIjog
ImNzc09mZnNldCIsCisgICAgICAgICAgICAgICAgImxvbmdoYW5kcyI6IFsKKyAgICAgICAgICAg
ICAgICAgICAgIm9mZnNldC1wYXRoIiwKKyAgICAgICAgICAgICAgICAgICAgIm9mZnNldC1kaXN0
YW5jZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNw
ZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgImNhdGVnb3J5IjogImNzcy1vZmZzZXQt
cHJvcHMiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9kcmFmdHMuZnh0Zi5vcmcv
bW90aW9uLTEvI29mZnNldC1zaG9ydGhhbmQiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCisg
ICAgICAgICJvZmZzZXQtcGF0aCI6IHsKKyAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMi
OiB7CisgICAgICAgICAgICAgICAgInJ1bnRpbWUtZmxhZyI6ICJjc3NPZmZzZXQiLAorICAgICAg
ICAgICAgICAgICJjb252ZXJ0ZXIiOiAiQmFzaWNTaGFwZSIKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAiY2F0ZWdvcnkiOiAi
Y3NzLW9mZnNldC1wcm9wcyIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2RyYWZ0
cy5meHRmLm9yZy9tb3Rpb24tMS8jb2Zmc2V0LXBhdGgtcHJvcGVydHkiCisgICAgICAgICAgICB9
CisgICAgICAgIH0sCisgICAgICAgICJvZmZzZXQtZGlzdGFuY2UiOiB7CisgICAgICAgICAgICAi
Y29kZWdlbi1wcm9wZXJ0aWVzIjogeworICAgICAgICAgICAgICAgICJydW50aW1lLWZsYWciOiAi
Y3NzT2Zmc2V0IiwKKyAgICAgICAgICAgICAgICAiY29udmVydGVyIjogIkxlbmd0aCIKKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKKyAgICAgICAgICAgICAg
ICAiY2F0ZWdvcnkiOiAiY3NzLW9mZnNldC1wcm9wcyIsCisgICAgICAgICAgICAgICAgInVybCI6
ICJodHRwczovL2RyYWZ0cy5meHRmLm9yZy9tb3Rpb24tMS8jb2Zmc2V0LWRpc3RhbmNlLXByb3Bl
cnR5IgorICAgICAgICAgICAgfQorICAgICAgICB9LAogICAgICAgICAib3BhY2l0eSI6IHsKICAg
ICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgImNvbnZl
cnRlciI6ICJPcGFjaXR5IiwKQEAgLTcxMDEsNiArNzEzNCwxMiBAQAogICAgICAgICAgICAgImxv
bmduYW1lIjogIkNTUyBMaXN0cyBhbmQgQ291bnRlcnMgTW9kdWxlIiwKICAgICAgICAgICAgICJ1
cmwiOiAiaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1saXN0cy0zLyIKICAgICAgICAgfSwKKyAg
ICAgICAgImNzcy1vZmZzZXQtcHJvcHMiOiB7CisgICAgICAgICAgICAic2hvcnRuYW1lIjogIk1v
dGlvbiBQYXRoIiwKKyAgICAgICAgICAgICJsb25nbmFtZSI6ICJNb3Rpb24gUGF0aCBNb2R1bGUi
LAorICAgICAgICAgICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5meHRmLm9yZy9tb3Rpb24tMS8i
LAorICAgICAgICAgICAgInN0YXR1cyI6ICJleHBlcmltZW50YWwiCisgICAgICAgIH0sCiAgICAg
ICAgICJjc3MtbG9naWNhbC1wcm9wcyI6IHsKICAgICAgICAgICAgICJzaG9ydG5hbWUiOiAiQ1NT
IExvZ2ljYWwgUHJvcGVydGllcyIsCiAgICAgICAgICAgICAibG9uZ25hbWUiOiAiQ1NTIExvZ2lj
YWwgUHJvcGVydGllcyBNb2R1bGUiLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNw
cAppbmRleCAzNTc4YzlhMWViZGE2NGZjNzNlOWQxNjljMzUzNmMyNzVmZTQ5MzU2Li4xMGEzNTg2
NWFmZDA3N2UxZWMxMGQ1YTVhZjA0M2U1NjUxMmM3NmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVQcm9wZXJ0aWVzLmNwcApAQCAtMjU1LDYgKzI1NSw4IEBAIFN0cmluZyBTdHlsZVByb3BlcnRp
ZXM6OmdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdAogICAg
ICAgICByZXR1cm4gZ2V0MlZhbHVlcyhtYXJnaW5JbmxpbmVTaG9ydGhhbmQoKSk7CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcmdpbkNvbGxhcHNlOgogICAgICAgICByZXR1cm4gZ2V0U2hv
cnRoYW5kVmFsdWUod2Via2l0TWFyZ2luQ29sbGFwc2VTaG9ydGhhbmQoKSk7CisgICAgY2FzZSBD
U1NQcm9wZXJ0eU9mZnNldDoKKyAgICAgICAgcmV0dXJuIGdldFNob3J0aGFuZFZhbHVlKG9mZnNl
dFNob3J0aGFuZCgpKTsKICAgICBjYXNlIENTU1Byb3BlcnR5T3ZlcmZsb3c6CiAgICAgICAgIHJl
dHVybiBnZXQyVmFsdWVzKG92ZXJmbG93U2hvcnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJvcGVy
dHlQYWRkaW5nOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFy
c2VyLmNwcAppbmRleCA0YmEwYzFjMjNkZWNlZjQyYzgzNWZjODRhZTA4MzM3M2Y2YjdhYThiLi5m
OWQyZjM0ZWY0YTk3Mzc5ZGJiNzAyZmY5NzljM2RlMjhhYmYwM2ZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcApAQCAtMjUzMCw2ICsyNTMw
LDMwIEBAIHN0YXRpYyBSZWZQdHI8Q1NTQmFzaWNTaGFwZUluc2V0PiBjb25zdW1lQmFzaWNTaGFw
ZUluc2V0KENTU1BhcnNlclRva2VuUmFuZ2UmIGFyCiAgICAgcmV0dXJuIHNoYXBlOwogfQogCitz
dGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lUGF0aFNoYXBlT3JOb25lKENTU1BhcnNlclRv
a2VuUmFuZ2UmIHJhbmdlKQoreworICAgIGlmIChyYW5nZS5wZWVrKCkuaWQoKSA9PSBDU1NWYWx1
ZU5vbmUpCisgICAgICAgIHJldHVybiBjb25zdW1lSWRlbnQocmFuZ2UpOworICAgIGlmIChyYW5n
ZS5wZWVrKCkudHlwZSgpICE9IEZ1bmN0aW9uVG9rZW4pCisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIENTU1ZhbHVlSUQgaWQgPSByYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpOworICAgIENT
U1BhcnNlclRva2VuUmFuZ2UgcmFuZ2VDb3B5ID0gcmFuZ2U7CisgICAgQ1NTUGFyc2VyVG9rZW5S
YW5nZSBhcmdzID0gY29uc3VtZUZ1bmN0aW9uKHJhbmdlQ29weSk7CisKKyAgICAvLyBGSVhNRS1O
RVdQQVJTRVI6IENTU0Jhc2ljU2hhcGUgc2hvdWxkIGJlIGEgQ1NTVmFsdWUsIGFuZCBzaGFwZXMg
c2hvdWxkIG5vdCBiZSBwcmltaXRpdmUgdmFsdWVzLgorICAgIFJlZlB0cjxDU1NCYXNpY1NoYXBl
PiBzaGFwZTsKKyAgICBpZiAoaWQgPT0gQ1NTVmFsdWVQYXRoKQorICAgICAgICBzaGFwZSA9IGNv
bnN1bWVCYXNpY1NoYXBlUGF0aChhcmdzKTsKKyAgICBpZiAoIXNoYXBlKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICByYW5nZSA9IHJhbmdlQ29weTsKKyAgICAKKyAgICBpZiAoIWFyZ3Mu
YXRFbmQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gQ1NTVmFsdWVQ
b29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZShzaGFwZS5yZWxlYXNlTm9uTnVsbCgpKTsKK30K
Kwogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUJhc2ljU2hhcGUoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYgcmFuZ2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCiB7CiAgICAg
UmVmUHRyPENTU1ZhbHVlPiByZXN1bHQ7CkBAIC0zOTMwLDYgKzM5NTQsMTEgQEAgUmVmUHRyPENT
U1ZhbHVlPiBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaW5nbGVWYWx1ZShDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5LCBDU1MKICNlbmRpZgogICAgIGNhc2UgQ1NTUHJvcGVydHlPYmplY3RQb3NpdGlv
bjoKICAgICAgICAgcmV0dXJuIGNvbnN1bWVQb3NpdGlvbihtX3JhbmdlLCBtX2NvbnRleHQubW9k
ZSwgVW5pdGxlc3NRdWlyazo6Rm9yYmlkLCBQb3NpdGlvblN5bnRheDo6UG9zaXRpb24pOworICAg
IGNhc2UgQ1NTUHJvcGVydHlPZmZzZXRQYXRoOgorICAgICAgICAvLyBPbmx5IHN1cHBvcnQgbm9u
ZSB8IHBhdGgoKSBpbml0aWFsbHkgbGlrZSBCbGluay4KKyAgICAgICAgcmV0dXJuIGNvbnN1bWVQ
YXRoU2hhcGVPck5vbmUobV9yYW5nZSk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eU9mZnNldERpc3Rh
bmNlOgorICAgICAgICByZXR1cm4gY29uc3VtZUxlbmd0aE9yUGVyY2VudChtX3JhbmdlLCBtX2Nv
bnRleHQubW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0TGluZUNsYW1wOgogICAgICAgICByZXR1cm4gY29uc3VtZUxpbmVDbGFtcChtX3Jhbmdl
KTsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rm9udFNpemVEZWx0YToKQEAgLTU0NDQsNiAr
NTQ3MywyMiBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lSW1wbGljaXRHcmlkQXV0
b0Zsb3coQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsCiAgICAgcmV0dXJuIGxpc3Q7CiB9CiAK
K2Jvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1bWVPZmZzZXRTaG9ydGhhbmQoYm9vbCBpbXBv
cnRhbnQpCit7CisgICAgUmVmUHRyPENTU1ZhbHVlPiBwYXRoID0gY29uc3VtZVBhdGhTaGFwZU9y
Tm9uZShtX3JhbmdlKTsKKyAgICBpZiAoIXBhdGgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIFJlZlB0cjxDU1NWYWx1ZT4gZGlzdGFuY2UgPSBjb25zdW1lTGVuZ3RoT3JQZXJjZW50KG1f
cmFuZ2UsIG1fY29udGV4dC5tb2RlLCBWYWx1ZVJhbmdlTm9uTmVnYXRpdmUpOworICAgIGlmICgh
ZGlzdGFuY2UpCisgICAgICAgIGRpc3RhbmNlID0gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5j
cmVhdGVJbXBsaWNpdEluaXRpYWxWYWx1ZSgpOworCisgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVy
dHlPZmZzZXRQYXRoLCBDU1NQcm9wZXJ0eU9mZnNldCwgcGF0aC5yZWxlYXNlTm9uTnVsbCgpLCBp
bXBvcnRhbnQpOworICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5T2Zmc2V0RGlzdGFuY2UsIENT
U1Byb3BlcnR5T2Zmc2V0LCBkaXN0YW5jZS5yZWxlYXNlTm9uTnVsbCgpLCBpbXBvcnRhbnQpOwor
CisgICAgcmV0dXJuIG1fcmFuZ2UuYXRFbmQoKTsKK30KKwogYm9vbCBDU1NQcm9wZXJ0eVBhcnNl
cjo6Y29uc3VtZUdyaWRTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCiB7CiAgICAgQVNTRVJUKHNo
b3J0aGFuZEZvclByb3BlcnR5KENTU1Byb3BlcnR5R3JpZCkubGVuZ3RoKCkgPT0gNik7CkBAIC01
ODMzLDYgKzU4NzgsOCBAQCBib29sIENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNob3J0aGFuZChD
U1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBib29sIGltcG9ydGFudCkKICAgICAgICAgcmV0dXJuIGNv
bnN1bWVHcmlkVGVtcGxhdGVTaG9ydGhhbmQoQ1NTUHJvcGVydHlHcmlkVGVtcGxhdGUsIGltcG9y
dGFudCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUdyaWQ6CiAgICAgICAgIHJldHVybiBjb25zdW1l
R3JpZFNob3J0aGFuZChpbXBvcnRhbnQpOworICAgIGNhc2UgQ1NTUHJvcGVydHlPZmZzZXQ6Cisg
ICAgICAgIHJldHVybiBjb25zdW1lT2Zmc2V0U2hvcnRoYW5kKGltcG9ydGFudCk7CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVBsYWNlQ29udGVudDoKICAgICAgICAgcmV0dXJuIGNvbnN1bWVQbGFjZUNv
bnRlbnRTaG9ydGhhbmQoaW1wb3J0YW50KTsKICAgICBjYXNlIENTU1Byb3BlcnR5UGxhY2VJdGVt
czoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaAppbmRl
eCBjNjdjMjAyMDUwOTk2Yzk5YzcwM2U4MTUzYmEwMzFkN2E2ZDRiYzE4Li5hNTczZWRmNWRhZDQ4
MDQ3NDNjMDRlNTA1OWVmOGRhNWFkMGJhMGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oCkBAIC05Miw2ICs5Miw4IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBjb25zdW1lR3JpZFNob3J0aGFuZChib29sIGltcG9ydGFudCk7CiAgICAgYm9vbCBjb25z
dW1lR3JpZEFyZWFTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpOwogCisgICAgYm9vbCBjb25zdW1l
T2Zmc2V0U2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KTsKKwogICAgIGJvb2wgY29uc3VtZVBsYWNl
Q29udGVudFNob3J0aGFuZChib29sIGltcG9ydGFudCk7CiAgICAgYm9vbCBjb25zdW1lUGxhY2VJ
dGVtc1Nob3J0aGFuZChib29sIGltcG9ydGFudCk7CiAgICAgYm9vbCBjb25zdW1lUGxhY2VTZWxm
U2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggOWJlM2JjNWQ5NjdiOGU5MzM0NTlmN2QwOGEyYThmNzgz
ZjU2ZGE2Zi4uNjA4MzQ0OWEyNTU2MDMwMjcyMTFmOTRmMmFjY2E0OTk0Y2Q2ODE4NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTE3OSw2ICsx
NzksOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDU1NDdXN0b21Qcm9wZXJ0aWVzQW5kVmFsdWVz
RW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX0NTU0N1c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNF
bmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCBjc3NDdXN0b21Qcm9wZXJ0aWVzQW5kVmFs
dWVzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fQ1NTQ3VzdG9tUHJvcGVydGllc0FuZFZhbHVl
c0VuYWJsZWQ7IH0KIAorICAgIHZvaWQgc2V0Q1NTT2Zmc2V0RW5hYmxlZChib29sIGlzRW5hYmxl
ZCkgeyBtX0NTU09mZnNldEVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KKyAgICBib29sIGNzc09mZnNl
dEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX0NTU09mZnNldEVuYWJsZWQ7IH0KKwogICAgIHZv
aWQgc2V0UG9pbnRlckV2ZW50c0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9wb2ludGVyRXZl
bnRzRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIGJvb2wgcG9pbnRlckV2ZW50c0VuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX3BvaW50ZXJFdmVudHNFbmFibGVkOyB9CiAgICAgCkBAIC00MzQs
NiArNDM3LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fYXR0clN0eWxlRW5hYmxlZCB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX3dlYkFQSVN0YXRpc3RpY3NFbmFibGVkIHsgZmFsc2UgfTsKICAgICBi
b29sIG1fQ1NTQ3VzdG9tUHJvcGVydGllc0FuZFZhbHVlc0VuYWJsZWQgeyBmYWxzZSB9OworICAg
IGJvb2wgbV9DU1NPZmZzZXRFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fcG9pbnRlckV2
ZW50c0VuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX3N5bnRoZXRpY0VkaXRpbmdDb21tYW5k
c0VuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2RpYWxvZ0VsZW1lbnRFbmFibGVkIHsgZmFs
c2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5k
ZXggNDJkZGQ1MDVjMTYwZGZmNjk4YjQ1ZTUzN2U2OTBmYzY2NjM0MmViMC4uNDgzMGI3MWY3N2Vh
NjQzOWUwMmZhMDVmZmU2ODY2NWJlZmE5OWEyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTY0Myw2ICs2NDMsOSBAQCBwdWJsaWM6CiAgICAg
T2JqZWN0Rml0IG9iamVjdEZpdCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PE9iamVjdEZp
dD4obV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+b2JqZWN0Rml0KTsgfQogICAgIExlbmd0aFBvaW50
IG9iamVjdFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+
b2JqZWN0UG9zaXRpb247IH0KIAorICAgIEJhc2ljU2hhcGUqIG9mZnNldFBhdGgoKSBjb25zdCB7
IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5vZmZzZXRQYXRoLmdldCgpOyB9CisgICAg
Y29uc3QgTGVuZ3RoJiBvZmZzZXREaXN0YW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZU5vbklu
aGVyaXRlZERhdGEtPm9mZnNldERpc3RhbmNlOyB9CisKICAgICAvLyBSZXR1cm4gdHJ1ZSBpZiBh
bnkgdHJhbnNmb3JtIHJlbGF0ZWQgcHJvcGVydHkgKGN1cnJlbnRseSB0cmFuc2Zvcm0sIHRyYW5z
Zm9ybVN0eWxlM0Qgb3IgcGVyc3BlY3RpdmUpCiAgICAgLy8gaW5kaWNhdGVzIHRoYXQgd2UgYXJl
IHRyYW5zZm9ybWluZy4KICAgICBib29sIGhhc1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0eSgpIGNv
bnN0IHsgcmV0dXJuIGhhc1RyYW5zZm9ybSgpIHx8IHByZXNlcnZlczNEKCkgfHwgaGFzUGVyc3Bl
Y3RpdmUoKTsgfQpAQCAtMTE2Nyw2ICsxMTcwLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T2Jq
ZWN0Rml0KE9iamVjdEZpdCBmaXQpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBv
YmplY3RGaXQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihmaXQpKTsgfQogICAgIHZvaWQgc2V0T2Jq
ZWN0UG9zaXRpb24oTGVuZ3RoUG9pbnQmJiBwb3NpdGlvbikgeyBTRVRfVkFSKG1fcmFyZU5vbklu
aGVyaXRlZERhdGEsIG9iamVjdFBvc2l0aW9uLCBXVEZNb3ZlKHBvc2l0aW9uKSk7IH0KIAorICAg
IHZvaWQgc2V0T2Zmc2V0UGF0aChSZWZQdHI8QmFzaWNTaGFwZT4mJik7CisgICAgdm9pZCBzZXRP
ZmZzZXREaXN0YW5jZShMZW5ndGgmJiBvZmZzZXREaXN0YW5jZSkgeyBTRVRfVkFSKG1fcmFyZU5v
bkluaGVyaXRlZERhdGEsIG9mZnNldERpc3RhbmNlLCBXVEZNb3ZlKG9mZnNldERpc3RhbmNlKSk7
IH0KKwogICAgIHZvaWQgc2V0UnVieVBvc2l0aW9uKFJ1YnlQb3NpdGlvbiBwb3NpdGlvbikgeyBT
RVRfVkFSKG1fcmFyZUluaGVyaXRlZERhdGEsIHJ1YnlQb3NpdGlvbiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KHBvc2l0aW9uKSk7IH0KIAogI2lmIEVOQUJMRShEQVJLX01PREVfQ1NTKQpAQCAtMTQ2
OCw2ICsxNDc0LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBUZXh0T3JpZW50YXRpb24gaW5pdGlh
bFRleHRPcmllbnRhdGlvbigpIHsgcmV0dXJuIFRleHRPcmllbnRhdGlvbjo6TWl4ZWQ7IH0KICAg
ICBzdGF0aWMgT2JqZWN0Rml0IGluaXRpYWxPYmplY3RGaXQoKSB7IHJldHVybiBPYmplY3RGaXQ6
OkZpbGw7IH0KICAgICBzdGF0aWMgTGVuZ3RoUG9pbnQgaW5pdGlhbE9iamVjdFBvc2l0aW9uKCkg
eyByZXR1cm4gTGVuZ3RoUG9pbnQoTGVuZ3RoKDUwLjBmLCBQZXJjZW50KSwgTGVuZ3RoKDUwLjBm
LCBQZXJjZW50KSk7IH0KKyAgICBzdGF0aWMgQmFzaWNTaGFwZSogaW5pdGlhbE9mZnNldFBhdGgo
KSB7IHJldHVybiBudWxscHRyOyB9CisgICAgc3RhdGljIExlbmd0aCBpbml0aWFsT2Zmc2V0RGlz
dGFuY2UoKSB7IHJldHVybiBMZW5ndGgoMCwgRml4ZWQpOyB9CiAgICAgc3RhdGljIEVtcHR5Q2Vs
bCBpbml0aWFsRW1wdHlDZWxscygpIHsgcmV0dXJuIEVtcHR5Q2VsbDo6U2hvdzsgfQogICAgIHN0
YXRpYyBMaXN0U3R5bGVQb3NpdGlvbiBpbml0aWFsTGlzdFN0eWxlUG9zaXRpb24oKSB7IHJldHVy
biBMaXN0U3R5bGVQb3NpdGlvbjo6T3V0c2lkZTsgfQogICAgIHN0YXRpYyBMaXN0U3R5bGVUeXBl
IGluaXRpYWxMaXN0U3R5bGVUeXBlKCkgeyByZXR1cm4gTGlzdFN0eWxlVHlwZTo6RGlzYzsgfQpA
QCAtMjIwMiw2ICsyMjEwLDEyIEBAIGlubGluZSB2b2lkIFJlbmRlclN0eWxlOjpzZXRDbGlwUGF0
aChSZWZQdHI8Q2xpcFBhdGhPcGVyYXRpb24+JiYgb3BlcmF0aW9uKQogICAgICAgICBtX3JhcmVO
b25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLmNsaXBQYXRoID0gV1RGTW92ZShvcGVyYXRpb24pOwog
fQogCitpbmxpbmUgdm9pZCBSZW5kZXJTdHlsZTo6c2V0T2Zmc2V0UGF0aChSZWZQdHI8QmFzaWNT
aGFwZT4mJiBiYXNpY1NoYXBlKQoreworICAgIGlmIChtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5v
ZmZzZXRQYXRoICE9IGJhc2ljU2hhcGUpCisgICAgICAgIG1fcmFyZU5vbkluaGVyaXRlZERhdGEu
YWNjZXNzKCkub2Zmc2V0UGF0aCA9IFdURk1vdmUoYmFzaWNTaGFwZSk7Cit9CisKIGlubGluZSBi
b29sIFJlbmRlclN0eWxlOjp3aWxsQ2hhbmdlQ3JlYXRlc1N0YWNraW5nQ29udGV4dCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIHdpbGxDaGFuZ2UoKSAmJiB3aWxsQ2hhbmdlKCktPmNhbkNyZWF0ZVN0
YWNraW5nQ29udGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IGZiMzIwODIzMzc0
MjhiMTFmZDY4MTUyMDdhZmU1MTNmNDJjZjEwMWYuLmZkZWFkMDJkMmRiNDg0ZjJkZGZiMWVkMzY0
N2U0OTY4NDVkYjQyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTY2LDYgKzY2LDgg
QEAgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgp
CiAgICAgLCBtYXNrKEZpbGxMYXllclR5cGU6Ok1hc2spCiAgICAgLCBtYXNrQm94SW1hZ2UoTmlu
ZVBpZWNlSW1hZ2U6OlR5cGU6Ok1hc2spCiAgICAgLCBvYmplY3RQb3NpdGlvbihSZW5kZXJTdHls
ZTo6aW5pdGlhbE9iamVjdFBvc2l0aW9uKCkpCisgICAgLCBvZmZzZXRQYXRoKFJlbmRlclN0eWxl
Ojppbml0aWFsT2Zmc2V0UGF0aCgpKQorICAgICwgb2Zmc2V0RGlzdGFuY2UoUmVuZGVyU3R5bGU6
OmluaXRpYWxPZmZzZXREaXN0YW5jZSgpKQogICAgICwgc2hhcGVPdXRzaWRlKFJlbmRlclN0eWxl
Ojppbml0aWFsU2hhcGVPdXRzaWRlKCkpCiAgICAgLCBzaGFwZU1hcmdpbihSZW5kZXJTdHlsZTo6
aW5pdGlhbFNoYXBlTWFyZ2luKCkpCiAgICAgLCBzaGFwZUltYWdlVGhyZXNob2xkKFJlbmRlclN0
eWxlOjppbml0aWFsU2hhcGVJbWFnZVRocmVzaG9sZCgpKQpAQCAtMTUxLDYgKzE1Myw4IEBAIGlu
bGluZSBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
KGNvbnN0IFN0eWxlUmFyZU5vbkluCiAgICAgLCBtYXNrQm94SW1hZ2Uoby5tYXNrQm94SW1hZ2Up
CiAgICAgLCBwYWdlU2l6ZShvLnBhZ2VTaXplKQogICAgICwgb2JqZWN0UG9zaXRpb24oby5vYmpl
Y3RQb3NpdGlvbikKKyAgICAsIG9mZnNldFBhdGgoby5vZmZzZXRQYXRoKQorICAgICwgb2Zmc2V0
RGlzdGFuY2Uoby5vZmZzZXREaXN0YW5jZSkKICAgICAsIHNoYXBlT3V0c2lkZShvLnNoYXBlT3V0
c2lkZSkKICAgICAsIHNoYXBlTWFyZ2luKG8uc2hhcGVNYXJnaW4pCiAgICAgLCBzaGFwZUltYWdl
VGhyZXNob2xkKG8uc2hhcGVJbWFnZVRocmVzaG9sZCkKQEAgLTI1MSw2ICsyNTUsOCBAQCBib29s
IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YSYgbykgYwogICAgICAgICAmJiBtYXNrQm94SW1hZ2UgPT0gby5tYXNrQm94
SW1hZ2UKICAgICAgICAgJiYgcGFnZVNpemUgPT0gby5wYWdlU2l6ZQogICAgICAgICAmJiBvYmpl
Y3RQb3NpdGlvbiA9PSBvLm9iamVjdFBvc2l0aW9uCisgICAgICAgICYmIGFyZVBvaW50aW5nVG9F
cXVhbERhdGEob2Zmc2V0UGF0aCwgby5vZmZzZXRQYXRoKQorICAgICAgICAmJiBvZmZzZXREaXN0
YW5jZSA9PSBvLm9mZnNldERpc3RhbmNlCiAgICAgICAgICYmIGFyZVBvaW50aW5nVG9FcXVhbERh
dGEoc2hhcGVPdXRzaWRlLCBvLnNoYXBlT3V0c2lkZSkKICAgICAgICAgJiYgc2hhcGVNYXJnaW4g
PT0gby5zaGFwZU1hcmdpbgogICAgICAgICAmJiBzaGFwZUltYWdlVGhyZXNob2xkID09IG8uc2hh
cGVJbWFnZVRocmVzaG9sZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggMTljNTkxYjJkMTI0Yzk2
NWQ4OTdlYmE1ODA1MTExMTRhNmJjNzQzNS4uMmUzOTA0NjkwNmE2ODBiMmFiMWM5M2E2MmE4ZDVl
N2Y0NDNhYTc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC0xNDQsNiArMTQ0LDkgQEAgcHVi
bGljOgogICAgIExlbmd0aFNpemUgcGFnZVNpemU7CiAgICAgTGVuZ3RoUG9pbnQgb2JqZWN0UG9z
aXRpb247CiAKKyAgICBSZWZQdHI8QmFzaWNTaGFwZT4gb2Zmc2V0UGF0aDsKKyAgICBMZW5ndGgg
b2Zmc2V0RGlzdGFuY2U7CisKICAgICBSZWZQdHI8U2hhcGVWYWx1ZT4gc2hhcGVPdXRzaWRlOwog
ICAgIExlbmd0aCBzaGFwZU1hcmdpbjsKICAgICBmbG9hdCBzaGFwZUltYWdlVGhyZXNob2xkOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAppbmRleCA1MTcy
ZjFjNmI0ZjgxNDViM2E2ZGQyYjkxZTRiOTM3MGFlZGQzN2RmLi44MjYwNzkxOTgwZTJmYTE3OTky
MWM5MDU2YTY3NjkwMGU4NmU5MTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1
aWxkZXJDb252ZXJ0ZXIuaApAQCAtOTAsNyArOTAsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0
cmluZyBjb252ZXJ0U3RyaW5nT3JOb25lKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7
CiAgICAgc3RhdGljIE9wdGlvblNldDxUZXh0RW1waGFzaXNQb3NpdGlvbj4gY29udmVydFRleHRF
bXBoYXNpc1Bvc2l0aW9uKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7CiAgICAgc3Rh
dGljIFRleHRBbGlnbk1vZGUgY29udmVydFRleHRBbGlnbihCdWlsZGVyU3RhdGUmLCBjb25zdCBD
U1NWYWx1ZSYpOwotICAgIHN0YXRpYyBSZWZQdHI8Q2xpcFBhdGhPcGVyYXRpb24+IGNvbnZlcnRD
bGlwUGF0aChCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYpOworICAgIHN0YXRpYyBSZWZQ
dHI8QmFzaWNTaGFwZT4gY29udmVydEJhc2ljU2hhcGUoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NT
VmFsdWUmKTsKKyAgICBzdGF0aWMgUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBjb252ZXJ0QmFz
aWNTaGFwZUdlb21ldHJ5Qm94KEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7CiAgICAg
c3RhdGljIFJlc2l6ZSBjb252ZXJ0UmVzaXplKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVl
Jik7CiAgICAgc3RhdGljIGludCBjb252ZXJ0TWFycXVlZVJlcGV0aXRpb24oQnVpbGRlclN0YXRl
JiwgY29uc3QgQ1NTVmFsdWUmKTsKICAgICBzdGF0aWMgaW50IGNvbnZlcnRNYXJxdWVlU3BlZWQo
QnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmKTsKQEAgLTU4NCw3ICs1ODUsMTcgQEAgaW5s
aW5lIFRleHRBbGlnbk1vZGUgQnVpbGRlckNvbnZlcnRlcjo6Y29udmVydFRleHRBbGlnbihCdWls
ZGVyU3RhdGUmIGJ1aWxkZXJTdGEKICAgICByZXR1cm4gcGFyZW50U3R5bGUudGV4dEFsaWduKCk7
CiB9CiAKLWlubGluZSBSZWZQdHI8Q2xpcFBhdGhPcGVyYXRpb24+IEJ1aWxkZXJDb252ZXJ0ZXI6
OmNvbnZlcnRDbGlwUGF0aChCdWlsZGVyU3RhdGUmIGJ1aWxkZXJTdGF0ZSwgY29uc3QgQ1NTVmFs
dWUmIHZhbHVlKQoraW5saW5lIFJlZlB0cjxCYXNpY1NoYXBlPiBCdWlsZGVyQ29udmVydGVyOjpj
b252ZXJ0QmFzaWNTaGFwZShCdWlsZGVyU3RhdGUmIGJ1aWxkZXJTdGF0ZSwgY29uc3QgQ1NTVmFs
dWUmIHZhbHVlKQoreworICAgIGlmIChpczxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKSB7Cisg
ICAgICAgIGF1dG8mIHByaW1pdGl2ZVZhbHVlID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+
KHZhbHVlKTsKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLmlzU2hhcGUoKSkKKyAgICAgICAg
ICAgIHJldHVybiBiYXNpY1NoYXBlRm9yVmFsdWUoYnVpbGRlclN0YXRlLmNzc1RvTGVuZ3RoQ29u
dmVyc2lvbkRhdGEoKSwgKnByaW1pdGl2ZVZhbHVlLnNoYXBlVmFsdWUoKSk7CisgICAgfQorICAg
IHJldHVybiBudWxscHRyOworfQorCitpbmxpbmUgUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBC
dWlsZGVyQ29udmVydGVyOjpjb252ZXJ0QmFzaWNTaGFwZUdlb21ldHJ5Qm94KEJ1aWxkZXJTdGF0
ZSYgYnVpbGRlclN0YXRlLCBjb25zdCBDU1NWYWx1ZSYgdmFsdWUpCiB7CiAgICAgaWYgKGlzPENT
U1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkpIHsKICAgICAgICAgYXV0byYgcHJpbWl0aXZlVmFsdWUg
PSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggMzQ0OGNkYzRkNzE2M2ZlNzI4MzMyYzFkOGE2MWRj
OTJhYzU5MTc0NS4uNDdiNTQ5OWIxOTU1MGYxODIzNWU4M2U5ZDI5YzVjYzcyYzNiNWI5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMzc3LDYgKzEzNzcs
MTQgQEAgQ1NTQ3VzdG9tUHJvcGVydGllc0FuZFZhbHVlc0VuYWJsZWQ6CiAgIHdlYmNvcmVCaW5k
aW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCiAgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKIAor
Q1NTT2Zmc2V0RW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisg
IGh1bWFuUmVhZGFibGVOYW1lOiAiQ1NTIE9mZnNldCBwcm9wZXJ0aWVzIgorICBodW1hblJlYWRh
YmxlRGVzY3JpcHRpb246ICJFbmFibGUgQ1NTIE9mZnNldCBwcm9wZXJ0aWVzIgorICB3ZWJjb3Jl
QmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcworICBjYXRlZ29yeTogaW50ZXJuYWwKKwog
Q1NTUGFpbnRpbmdBUElFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogZmFs
c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDBiMjQ5ZDZlNmU5YjFjODEyMjI5YmNhYjNiZGMx
YmRhODg5MmU0ZjYuLjA1Njc0ZjA3M2Q1ZTEyM2I3MTIwYjFhNzA5M2M5NWRkYTZlOGIzOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcApAQCAtMjU4LDYgKzI1OCw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5k
bGU6Om92ZXJyaWRlQm9vbFByZWZlcmVuY2VGb3JUZXN0UnVubmVyKFdlYlBhZ2VHcm91cFByb3h5
KiBwYWdlCiAgICAgaWYgKHByZWZlcmVuY2UgPT0gIkNTU0N1c3RvbVByb3BlcnRpZXNBbmRWYWx1
ZXNFbmFibGVkIikKICAgICAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS5zZXRDU1NDdXN0b21Qcm9wZXJ0aWVzQW5kVmFsdWVzRW5hYmxlZChlbmFibGVkKTsKIAor
ICAgIGlmIChwcmVmZXJlbmNlID09ICJDU1NPZmZzZXRFbmFibGVkIikKKyAgICAgICAgUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDU1NPZmZzZXRFbmFibGVkKGVu
YWJsZWQpOworCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAgICAgaWYg
KHByZWZlcmVuY2UgPT0gIkxheW91dEZvcm1hdHRpbmdDb250ZXh0RW5hYmxlZCIpCiAgICAgICAg
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0TGF5b3V0Rm9ybWF0
dGluZ0NvbnRleHRFbmFibGVkKGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggNmI1
YWQxMDAwOTY5ODMzZGZiYzM2NWE0ZGZkZmZiZDFjOWM5NjllMC4uMWUxOTZkNWE2MThmODgxMGE3
Y2VmM2E0ZjU1OTk0NDM0OTE5NmIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0yNzEsNiAr
MjcxLDcgQEAKICNkZWZpbmUgV2ViS2l0U2VydmVyVGltaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkg
QCJXZWJLaXRTZXJ2ZXJUaW1pbmdFbmFibGVkIgogI2RlZmluZSBXZWJLaXRTZWxlY3Rpb25BY3Jv
c3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRTZWxlY3Rpb25B
Y3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q1NTTG9naWNhbEVu
YWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTTG9naWNhbEVuYWJsZWQiCisjZGVmaW5lIFdl
YktpdENTU09mZnNldEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTT2Zmc2V0RW5hYmxl
ZCIKICNkZWZpbmUgV2ViS2l0QWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXkg
QCJXZWJLaXRBZENsaWNrQXR0cmlidXRpb25FbmFibGVkIgogI2RlZmluZSBXZWJLaXRSZWZlcnJl
clBvbGljeUF0dHJpYnV0ZUVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0UmVmZXJyZXJQb2xp
Y3lBdHRyaWJ1dGVFbmFibGVkIgogI2RlZmluZSBXZWJLaXRSZXNpemVPYnNlcnZlckVuYWJsZWRQ
cmVmZXJlbmNlS2V5IEAiV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVkIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggODM2NjU3
MzEzZTZmN2FhNjFiOTdmMjRlZGY4ODQ4NjA5M2ZmM2M1Ni4uMjRiMWJkZTY2NmYxNGUwY2QyOTRm
Y2MwY2Q2MGRhODc2YTYyZjhhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC02NzAsNiArNjcwLDcgQEAgKyAodm9pZClpbml0
aWFsaXplCiAjZW5kaWYKICAgICAgICAgQFlFUywgV2ViS2l0U2VsZWN0aW9uQWNyb3NzU2hhZG93
Qm91bmRhcmllc0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBATk8sIFdlYktpdENTU0xv
Z2ljYWxFbmFibGVkUHJlZmVyZW5jZUtleSwKKyAgICAgICAgQE5PLCBXZWJLaXRDU1NPZmZzZXRF
bmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgQE5PLCBXZWJLaXRBZENsaWNrQXR0cmlidXRp
b25FbmFibGVkUHJlZmVyZW5jZUtleSwKICNpZiBFTkFCTEUoSU5URVJTRUNUSU9OX09CU0VSVkVS
KQogICAgICAgICBATk8sIFdlYktpdEludGVyc2VjdGlvbk9ic2VydmVyRW5hYmxlZFByZWZlcmVu
Y2VLZXksCkBAIC0zNDg4LDYgKzM0ODksMTYgQEAgLSAodm9pZClzZXRDU1NMb2dpY2FsRW5hYmxl
ZDooQk9PTClmbGFnCiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRD
U1NMb2dpY2FsRW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCistIChCT09MKWNzc09mZnNldEVu
YWJsZWQKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRDU1NPZmZz
ZXRFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpc2V0Q1NTT2Zmc2V0RW5hYmxl
ZDooQk9PTClmbGFnCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJL
aXRDU1NPZmZzZXRFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKIC0gKEJPT0wpYWRDbGlja0F0
dHJpYnV0aW9uRW5hYmxlZAogewogICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5Oldl
YktpdEFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5o
CmluZGV4IDgxYmRmZThjZDQ4MTY5MTQxZWNjYzNkNDVkN2FlZGE2N2VjYWVmN2MuLmMzNWQ1Nzcz
Njk5YjA4OWE1Y2NlOGE5NTkwZjZhNzk4ZDY4MTg0NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNjAz
LDYgKzYwMyw5IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hh
bmdlZEludGVybmFsTm90aWZpY2F0aW9uIFdFQktJVF9ERVBSCiAtICh2b2lkKXNldENTU0xvZ2lj
YWxFbmFibGVkOihCT09MKWZsYWc7CiAtIChCT09MKWNzc0xvZ2ljYWxFbmFibGVkOwogCistICh2
b2lkKXNldENTU09mZnNldEVuYWJsZWQ6KEJPT0wpZmxhZzsKKy0gKEJPT0wpY3NzT2Zmc2V0RW5h
YmxlZDsKKwogLSAoQk9PTClhZENsaWNrQXR0cmlidXRpb25FbmFibGVkOwogLSAodm9pZClzZXRB
ZENsaWNrQXR0cmlidXRpb25FbmFibGVkOihCT09MKWZsYWc7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBjZGZmMDk5MTRhYmNhZTNiODQ0ZWE3NjY4
ZDgxNDQ0Y2VjMDA3MzNkLi40ZmI4YzEwYmRmMzU0ZjEzNjI2N2RhMjhiNTFhN2ZmOWExNzE3YTk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0zMTE3
LDYgKzMxMTcsOCBAQCAtICh2b2lkKV9wcmVmZXJlbmNlc0NoYW5nZWQ6KFdlYlByZWZlcmVuY2Vz
ICopcHJlZmVyZW5jZXMKIAogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuc2V0Q1NTTG9naWNhbEVuYWJsZWQoW3ByZWZlcmVuY2VzIGNzc0xvZ2ljYWxFbmFibGVk
XSk7CiAKKyAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldENT
U09mZnNldEVuYWJsZWQoW3ByZWZlcmVuY2VzIGNzc09mZnNldEVuYWJsZWRdKTsKKwogICAgIFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0QWRDbGlja0F0dHJpYnV0
aW9uRW5hYmxlZChbcHJlZmVyZW5jZXMgYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZF0pOwogCiAg
ICAgc2V0dGluZ3Muc2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQoW3ByZWZl
cmVuY2VzIGhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdFbmFibGVkXSk7CmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWYzOTgzYzBlMDVmMTVl
OGRlMjE0MWI4NWE3MTU0Y2Q0NDQzYjg3Yy4uOTYzMWU3NzkxZDJkMGFhMDlkODc5ZDdlOGFhZWJh
MGM2ODgyZGVmYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTExLTA1ICBEaXJrIFNjaHVsemUgIDxrcml0QHdl
YmtpdC5vcmc+CisKKyAgICAgICAgU3VwcG9ydCBwYXJzaW5nLCBjb21wdXRlZCBzdHlsZSBhbmQg
cHJvcGVydHkgc3R5bGUgZm9yIG9mZnNldCwgb2Zmc2V0LXBhdGgsIG9mZnNldC1kaXN0YW5jZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzODQ4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGltcGxl
bWVudGF0aW9uIG9mIHRoZSBNb3Rpb24gUGF0aCBzcGVjIGhhcHBlbnMgYmVoaW5kIGEgZmVhdHVy
ZSBmbGFnLgorICAgICAgICBFeHBvc2UgdGhlIGZlYXR1cmUgZmxhZyB0byB0aGUgdGVzdCBzdWl0
ZS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAg
KFRlc3RPcHRpb25zOjpUZXN0T3B0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVz
dE9wdGlvbnMuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW06CisgICAgICAgIChzZXRXZWJQcmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKToKKwogMjAxOS0x
MS0wNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTihyMjUyMDMxKTogbGF5b3V0IHRlc3RzIGZhaWwgdG8gcnVuIGluIG5vbiBh
cHBsZSBwb3J0cyBhZnRlciByMjUyMDMxCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0T3B0aW9ucy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAK
aW5kZXggNTU2ZWVjMjc2NjM3ZTgxYjkzZjc3ZDk2NTkzNzVjZmMyYTQ5NTk1OS4uOTExMzE5MDM5
MmEyYmUzMTAyNDRiZGIzMTc2ZGUyZWQ1YmJmMTMzMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RP
cHRpb25zLmNwcApAQCAtMTE3LDYgKzExNyw4IEBAIFRlc3RPcHRpb25zOjpUZXN0T3B0aW9ucyhj
b25zdCBzdGQ6OnN0cmluZyYgcGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgYWJzb2x1CiAg
ICAgICAgICAgICBlbmFibGVXZWJHUFUgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFs
dWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImludGVybmFsOkNTU0xvZ2ljYWxFbmFibGVk
IikKICAgICAgICAgICAgIGVuYWJsZUNTU0xvZ2ljYWwgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVy
VmFsdWUodmFsdWUpOworICAgICAgICBlbHNlIGlmIChrZXkgPT0gImludGVybmFsOkNTU09mZnNl
dEVuYWJsZWQiKQorICAgICAgICAgICAgZW5hYmxlQ1NTT2Zmc2V0ID0gcGFyc2VCb29sZWFuVGVz
dEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50
YWw6QWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZCIpCiAgICAgICAgICAgICBhZENsaWNrQXR0cmli
dXRpb25FbmFibGVkID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAg
ICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6UmVzaXplT2JzZXJ2ZXJFbmFibGVkIikK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCmluZGV4IGU1MzM1ZTgzMTE0ZTc5ZTViNTRkODYx
YzNkMjNmZmNlYmJhNzBhMGIuLmQ1YzJiYWNjZTQwMDIxMjg2ZDNjYzczZjI5ZWM1NWI5NGM2ODgy
YzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaApAQCAtNDgsNiArNDgsNyBAQCBzdHJ1
Y3QgVGVzdE9wdGlvbnMgewogICAgIGJvb2wgZW5hYmxlU2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91
bmRhcmllcyB7IHRydWUgfTsKICAgICBib29sIGVuYWJsZVdlYkdQVSB7IGZhbHNlIH07CiAgICAg
Ym9vbCBlbmFibGVDU1NMb2dpY2FsIHsgZmFsc2UgfTsKKyAgICBib29sIGVuYWJsZUNTU09mZnNl
dCB7IGZhbHNlIH07CiAgICAgYm9vbCBhZENsaWNrQXR0cmlidXRpb25FbmFibGVkIHsgZmFsc2Ug
fTsKICAgICBib29sIGVuYWJsZVJlc2l6ZU9ic2VydmVyIHsgZmFsc2UgfTsKICAgICBib29sIGVu
YWJsZUNvcmVNYXRoTUwgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlLm1tCmluZGV4IDI0YzMyZjgzOWE2NzdhOTI5ODIwMTAzNTFmN2FiMTIxZjRlMGFl
N2QuLmZlODdhNjk1Yzc5YzIwM2YyOWMxODgxNmJlYjhiNzQ4OGI2OTMxZGYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTEwMjUsNiArMTAyNSw3IEBA
IHN0YXRpYyB2b2lkIHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMoY29uc3QgVGVzdE9w
dGlvbnMmIG9wdGlvbnMpCiAgICAgcHJlZmVyZW5jZXMuc2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91
bmRhcmllc0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5k
YXJpZXM7CiAgICAgcHJlZmVyZW5jZXMud2ViR1BVRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlV2Vi
R1BVOwogICAgIHByZWZlcmVuY2VzLkNTU0xvZ2ljYWxFbmFibGVkID0gb3B0aW9ucy5lbmFibGVD
U1NMb2dpY2FsOworICAgIHByZWZlcmVuY2VzLkNTU09mZnNldEVuYWJsZWQgPSBvcHRpb25zLmVu
YWJsZUNTU09mZnNldDsKICAgICBwcmVmZXJlbmNlcy5hZENsaWNrQXR0cmlidXRpb25FbmFibGVk
ID0gb3B0aW9ucy5hZENsaWNrQXR0cmlidXRpb25FbmFibGVkOwogICAgIHByZWZlcmVuY2VzLnJl
c2l6ZU9ic2VydmVyRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlUmVzaXplT2JzZXJ2ZXI7CiAgICAg
cHJlZmVyZW5jZXMuY29yZU1hdGhNTEVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZUNvcmVNYXRoTUw7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggMzFmYTlhZDRhOThjOWFjMTc3NDBmYjc5MTkzODgxN2U1OTAwMTA1MS4uMmE3MzAw
MzBhMGVkZjc4MzhlYTM1ZDQyMWZmYTQ1NzkyMTY4N2U2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBA
CisyMDE5LTExLTA1ICBEaXJrIFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CisKKyAgICAgICAg
U3VwcG9ydCBwYXJzaW5nLCBjb21wdXRlZCBzdHlsZSBhbmQgcHJvcGVydHkgc3R5bGUgZm9yIG9m
ZnNldCwgb2Zmc2V0LXBhdGgsIG9mZnNldC1kaXN0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzODQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3RzIGZvciBwYXJzaW5nLCBjb21wdXRl
ZCBzdHlsZSBhbmQgcHJvcGVydHkgc3R5bGUgZm9yIHRoZQorICAgICAgICBwcm9wZXJ0aWVzOiBv
ZmZzZXQsIG9mZnNldC1wYXRoLCBvZmZzZXQtZGlzdGFuY2UuCisKKyAgICAgICAgKiBmYXN0L2Nz
cy9vZmZzZXQvcGFyc2luZy1vZmZzZXQtZGlzdGFuY2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2Nzcy9vZmZzZXQvcGFyc2luZy1vZmZzZXQtZGlzdGFuY2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9jc3Mvb2Zmc2V0L3BhcnNpbmctb2Zmc2V0LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mvb2Zmc2V0L3BhcnNpbmctb2Zmc2V0LXBhdGgt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9vZmZzZXQvcGFyc2luZy1v
ZmZzZXQtcGF0aC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9vZmZzZXQvcGFyc2lu
Zy1vZmZzZXQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZXhwb3NlZC9jc3MtcHJvcGVydGll
cy1iZWhpbmQtZmxhZ3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmV4cG9zZWQvY3NzLXBy
b3BlcnRpZXMtYmVoaW5kLWZsYWdzLmh0bWw6CisKIDIwMTktMTEtMDUgIHlvdWVubiBmYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIG1wNCB2aWRlbyBlbGVtZW50IGJyb2tlbiB3
aXRoIHNlcnZpY2Ugd29ya2VyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9vZmZz
ZXQvcGFyc2luZy1vZmZzZXQtZGlzdGFuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3Mvb2Zmc2V0L3BhcnNpbmctb2Zmc2V0LWRpc3RhbmNlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42ODAyZDkxMWNmMTVlZDFiMTUxYjk4ZjNhYjg3MGRkYTI1MDc5Y2E5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvb2Zmc2V0L3BhcnNpbmctb2Zmc2V0LWRpc3Rh
bmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACitUZXN0IHBhcnNpbmcgYW5kIGNvbXB1
dGVkIHN0eWxlIG9mIG9mZnNldC1kaXN0YW5jZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAiMCIpIGlzICIwcHgiCitQ
QVNTIGlubmVyU3R5bGUoIm9mZnNldC1kaXN0YW5jZSIsICIyMHB4IikgaXMgIjIwcHgiCitQQVNT
IGlubmVyU3R5bGUoIm9mZnNldC1kaXN0YW5jZSIsICIyMCUiKSBpcyAiMjAlIgorUEFTUyBpbm5l
clN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAiMmUxJSIpIGlzICIyMCUiCitQQVNTIGlubmVyU3R5
bGUoIm9mZnNldC1kaXN0YW5jZSIsICIyMDBlLTFweCIpIGlzICIyMHB4IgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAiMCIpIGlzICIwcHgiCitQQVNTIGNvbXB1dGVkU3R5
bGUoIm9mZnNldC1kaXN0YW5jZSIsICIyMHB4IikgaXMgIjIwcHgiCitQQVNTIGNvbXB1dGVkU3R5
bGUoIm9mZnNldC1kaXN0YW5jZSIsICIyMCUiKSBpcyAiMjAlIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJvZmZzZXQtZGlzdGFuY2UiLCAiMmUxJSIpIGlzICIyMCUiCitQQVNTIGNvbXB1dGVkU3R5bGUo
Im9mZnNldC1kaXN0YW5jZSIsICIyMDBlLTFweCIpIGlzICIyMHB4IgorUEFTUyBpbm5lclN0eWxl
KCJvZmZzZXQtZGlzdGFuY2UiLCAicGF0aCgnTTAgMCcpIDIwcHgiKSBpcyAiIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAicGF0aCgnTTAgMCcpIDIwcHgiKSBpcyAiMHB4
IgorUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAiMjBweCBwYXRoKCdNMCAwJyki
KSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAiMjBweCBwYXRo
KCdNMCAwJykiKSBpcyAiMHB4IgorUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAi
YXV0byIpIGlzICIiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldC1kaXN0YW5jZSIsICJhdXRv
IikgaXMgIjBweCIKK1BBU1MgaW5uZXJTdHlsZSgib2Zmc2V0LWRpc3RhbmNlIiwgImF1dG8iKSBp
cyAiIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAiYXV0byIpIGlzICIw
cHgiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldC1kaXN0YW5jZSIsICItMjBweCIpIGlzICIiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldC1kaXN0YW5jZSIsICItMjBweCIpIGlzICIwcHgiCitQ
QVNTIGlubmVyU3R5bGUoIm9mZnNldC1kaXN0YW5jZSIsICItMjAlIikgaXMgIiIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgib2Zmc2V0LWRpc3RhbmNlIiwgIi0yMCUiKSBpcyAiMHB4IgorUEFTUyBpbm5l
clN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAiJ3N0ciciKSBpcyAiIgorUEFTUyBjb21wdXRlZFN0
eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAiJ3N0ciciKSBpcyAiMHB4IgorUEFTUyBpbm5lclN0eWxl
KCJvZmZzZXQtZGlzdGFuY2UiLCAidG9wIGxlZnQiKSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJvZmZzZXQtZGlzdGFuY2UiLCAidG9wIGxlZnQiKSBpcyAiMHB4IgorUEFTUyBpbm5lclN0eWxl
KCJvZmZzZXQtZGlzdGFuY2UiLCAicGF0aCgnTTEwMCAxMDAgMjAwIDIwMCAwIDIwMCB6JykiKSBp
cyAiIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAicGF0aCgnTTEwMCAx
MDAgMjAwIDIwMCAwIDIwMCB6JykiKSBpcyAiMHB4IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL29mZnNldC9wYXJzaW5nLW9mZnNldC1kaXN0YW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3Mvb2Zmc2V0L3BhcnNpbmctb2Zmc2V0LWRpc3RhbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzkx
MGY4ZjViMDhhOGRjZjZkN2JmOGM1MTg1YTkzZGVlMDUzY2UyMAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL29mZnNldC9wYXJzaW5nLW9mZnNldC1kaXN0YW5jZS5odG1s
CkBAIC0wLDAgKzEsNzAgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgaW50ZXJuYWw6Q1NTT2Zmc2V0RW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxzdHlsZT4K
KyogeyBmb250LXNpemU6IDE2cHg7IH0KK2RpdiB7IGZvbnQtc2l6ZTogOHB4OyB9Cis8L3N0eWxl
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBwYXJzaW5nIGFuZCBjb21w
dXRlZCBzdHlsZSBvZiBvZmZzZXQtZGlzdGFuY2UnKTsKKworZnVuY3Rpb24gY29tcHV0ZWRTdHls
ZShwcm9wZXJ0eSwgdmFsdWUpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpOworICAgIGRpdi5z
dHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpOworICAgIHZhciBjb21wdXRlZFZhbHVl
ID0gZ2V0Q29tcHV0ZWRTdHlsZShkaXYpLmdldFByb3BlcnR5VmFsdWUocHJvcGVydHkpOworICAg
IGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZGl2KTsKKyAgICByZXR1cm4gY29tcHV0ZWRWYWx1
ZTsKK30KKworZnVuY3Rpb24gaW5uZXJTdHlsZShwcm9wZXJ0eSwgdmFsdWUpIHsKKyAgICB2YXIg
ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZGl2LnN0eWxlLnNldFBy
b3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7CisgICAgcmV0dXJuIGRpdi5zdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKHByb3BlcnR5KTsKK30KKworZnVuY3Rpb24gdGVzdENvbXB1dGVkKHByb3BlcnR5LCB2
YWx1ZSwgZXhwZWN0ZWQpIHsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5
bGUoIicgKyBwcm9wZXJ0eSArICciLCAiJyArIHZhbHVlICsgJyIpJywgZXhwZWN0ZWQpOworfQor
CitmdW5jdGlvbiB0ZXN0SW5uZXIocHJvcGVydHksIHZhbHVlLCBleHBlY3RlZCkgeworICAgIGlm
IChleHBlY3RlZCA9PT0gbnVsbCkKKyAgICAgICAgZXhwZWN0ZWQgPSAiIjsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2lubmVyU3R5bGUoIicgKyBwcm9wZXJ0eSArICciLCAiJyArIHZhbHVl
ICsgJyIpJywgZXhwZWN0ZWQpOworfQorCitmdW5jdGlvbiBuZWdhdGl2ZVRlc3QocHJvcGVydHks
IHZhbHVlKSB7CisgICAgdGVzdElubmVyKHByb3BlcnR5LCB2YWx1ZSwgbnVsbCk7CisgICAgdGVz
dENvbXB1dGVkKHByb3BlcnR5LCB2YWx1ZSwgJzBweCcpOworfQorCisvLyBQcm9wZXJ0eSBzdHls
ZQordGVzdElubmVyKCJvZmZzZXQtZGlzdGFuY2UiLCAiMCIsICIwcHgiKTsKK3Rlc3RJbm5lcigi
b2Zmc2V0LWRpc3RhbmNlIiwgIjIwcHgiLCAiMjBweCIpOwordGVzdElubmVyKCJvZmZzZXQtZGlz
dGFuY2UiLCAiMjAlIiwgIjIwJSIpOwordGVzdElubmVyKCJvZmZzZXQtZGlzdGFuY2UiLCAiMmUx
JSIsICIyMCUiKTsKK3Rlc3RJbm5lcigib2Zmc2V0LWRpc3RhbmNlIiwgIjIwMGUtMXB4IiwgIjIw
cHgiKTsKKworLy8gQ29tcHV0ZWQgc3R5bGUKK3Rlc3RDb21wdXRlZCgib2Zmc2V0LWRpc3RhbmNl
IiwgIjAiLCAiMHB4Iik7Cit0ZXN0Q29tcHV0ZWQoIm9mZnNldC1kaXN0YW5jZSIsICIyMHB4Iiwg
IjIwcHgiKTsKK3Rlc3RDb21wdXRlZCgib2Zmc2V0LWRpc3RhbmNlIiwgIjIwJSIsICIyMCUiKTsK
K3Rlc3RDb21wdXRlZCgib2Zmc2V0LWRpc3RhbmNlIiwgIjJlMSUiLCAiMjAlIik7Cit0ZXN0Q29t
cHV0ZWQoIm9mZnNldC1kaXN0YW5jZSIsICIyMDBlLTFweCIsICIyMHB4Iik7CisKKy8vIGludmFs
aWQKK25lZ2F0aXZlVGVzdCgib2Zmc2V0LWRpc3RhbmNlIiwgInBhdGgoJ00wIDAnKSAyMHB4Iik7
CituZWdhdGl2ZVRlc3QoIm9mZnNldC1kaXN0YW5jZSIsICIyMHB4IHBhdGgoJ00wIDAnKSIpOwor
bmVnYXRpdmVUZXN0KCJvZmZzZXQtZGlzdGFuY2UiLCAiYXV0byIpOworbmVnYXRpdmVUZXN0KCJv
ZmZzZXQtZGlzdGFuY2UiLCAiYXV0byIpOworbmVnYXRpdmVUZXN0KCJvZmZzZXQtZGlzdGFuY2Ui
LCAiLTIwcHgiKTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0LWRpc3RhbmNlIiwgIi0yMCUiKTsKK25l
Z2F0aXZlVGVzdCgib2Zmc2V0LWRpc3RhbmNlIiwgIidzdHInIik7CituZWdhdGl2ZVRlc3QoIm9m
ZnNldC1kaXN0YW5jZSIsICJ0b3AgbGVmdCIpOworbmVnYXRpdmVUZXN0KCJvZmZzZXQtZGlzdGFu
Y2UiLCAicGF0aCgnTTEwMCAxMDAgMjAwIDIwMCAwIDIwMCB6JykiKTsKKworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9vZmZz
ZXQvcGFyc2luZy1vZmZzZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvb2Zm
c2V0L3BhcnNpbmctb2Zmc2V0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzFiNmFiMDk5NGI4
MmU3NWUzNjkzMzUwZjE2YjgyN2Y2MTI4YzE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3Mvb2Zmc2V0L3BhcnNpbmctb2Zmc2V0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDM5IEBACitUZXN0IHBhcnNpbmcgYW5kIGNvbXB1dGVkIHN0eWxlIG9mIG9mZnNldAorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQiLCAibm9u
ZSIpIGlzICJub25lIgorUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQiLCAicGF0aCgnTTAgMCBMIDEw
MCAwIEwgMTAwIDEwMHonKSIpIGlzICJwYXRoKFwiTSAwIDAgTCAxMDAgMCBMIDEwMCAxMDAgWlwi
KSIKK1BBU1MgaW5uZXJTdHlsZSgib2Zmc2V0IiwgInBhdGgoJ00wIDAgTCAxMDAgMCBMIDEwMCAx
MDAnKSIpIGlzICJwYXRoKFwiTSAwIDAgTCAxMDAgMCBMIDEwMCAxMDBcIikiCitQQVNTIGlubmVy
U3R5bGUoIm9mZnNldCIsICJwYXRoKCdNMCAwJykiKSBpcyAicGF0aChcIk0gMCAwXCIpIgorUEFT
UyBpbm5lclN0eWxlKCJvZmZzZXQiLCAicGF0aCgnTTAgMCBMIDEwMCAwIEwgMTAwIDEwMHonKSAy
MHB4IikgaXMgInBhdGgoXCJNIDAgMCBMIDEwMCAwIEwgMTAwIDEwMCBaXCIpIDIwcHgiCitQQVNT
IGNvbXB1dGVkU3R5bGUoIm9mZnNldCIsICJub25lIikgaXMgIm5vbmUgMHB4IgorUEFTUyBjb21w
dXRlZFN0eWxlKCJvZmZzZXQiLCAicGF0aCgnTTAgMCBMIDEwMCAwIEwgMTAwIDEwMHonKSAyMHB4
IikgaXMgInBhdGgoXCJNIDAgMCBMIDEwMCAwIEwgMTAwIDEwMCBaXCIpIDIwcHgiCitQQVNTIGNv
bXB1dGVkU3R5bGUoIm9mZnNldCIsICJwYXRoKCdNMCAwIEwgMTAwIDAgTCAxMDAgMTAweicpIikg
aXMgInBhdGgoXCJNIDAgMCBMIDEwMCAwIEwgMTAwIDEwMCBaXCIpIDBweCIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgib2Zmc2V0IiwgInBhdGgoJ00wIDAgTCAxMDAgMCBMIDEwMCAxMDAnKSIpIGlzICJw
YXRoKFwiTSAwIDAgTCAxMDAgMCBMIDEwMCAxMDBcIikgMHB4IgorUEFTUyBjb21wdXRlZFN0eWxl
KCJvZmZzZXQiLCAicGF0aCgnTTAgMCcpIikgaXMgInBhdGgoXCJNIDAgMFwiKSAwcHgiCitQQVNT
IGlubmVyU3R5bGUoIm9mZnNldCIsICIwIikgaXMgIiIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zm
c2V0IiwgIjAiKSBpcyAibm9uZSAwcHgiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldCIsICIyMHB4
IikgaXMgIiIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0IiwgIjIwcHgiKSBpcyAibm9uZSAw
cHgiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldCIsICIyMCUiKSBpcyAiIgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJvZmZzZXQiLCAiMjAlIikgaXMgIm5vbmUgMHB4IgorUEFTUyBpbm5lclN0eWxlKCJv
ZmZzZXQiLCAiLTIwcHgiKSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQiLCAiLTIw
cHgiKSBpcyAibm9uZSAwcHgiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldCIsICItMjAlIikgaXMg
IiIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0IiwgIi0yMCUiKSBpcyAibm9uZSAwcHgiCitQ
QVNTIGlubmVyU3R5bGUoIm9mZnNldCIsICIyZTElIikgaXMgIiIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgib2Zmc2V0IiwgIjJlMSUiKSBpcyAibm9uZSAwcHgiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNl
dCIsICIyZTElIikgaXMgIiIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0IiwgIjJlMSUiKSBp
cyAibm9uZSAwcHgiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldCIsICIyMDBlLTFweCIpIGlzICIi
CitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldCIsICIyMDBlLTFweCIpIGlzICJub25lIDBweCIK
K1BBU1MgaW5uZXJTdHlsZSgib2Zmc2V0IiwgInBhdGgoJ00wIDAnKSBub25zZW5zZSIpIGlzICIi
CitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldCIsICJwYXRoKCdNMCAwJykgbm9uc2Vuc2UiKSBp
cyAibm9uZSAwcHgiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldCIsICIyMHB4IHBhdGgoJ00wIDAg
TCAxMDAgMCBMIDEwMCAxMDB6JykiKSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQi
LCAiMjBweCBwYXRoKCdNMCAwIEwgMTAwIDAgTCAxMDAgMTAweicpIikgaXMgIm5vbmUgMHB4Igor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL29mZnNldC9wYXJzaW5nLW9mZnNldC1wYXRoLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL29mZnNldC9wYXJzaW5nLW9mZnNldC1w
YXRoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjQyZDAwNDY1ODAzNjQzNTcxOWUzNjhmOGU3
M2UxYmVhMGMzZDQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvb2Zm
c2V0L3BhcnNpbmctb2Zmc2V0LXBhdGgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDMgQEAKK1Rl
c3QgcGFyc2luZyBhbmQgY29tcHV0ZWQgc3R5bGUgb2Ygb2Zmc2V0LXBhdGgKKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW5uZXJTdHlsZSgib2Zmc2V0LXBhdGgiLCAibm9u
ZSIpIGlzICJub25lIgorUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQtcGF0aCIsICJwYXRoKCdNMCAw
IEwgMTAwIDAgTCAxMDAgMTAweicpIikgaXMgInBhdGgoXCJNIDAgMCBMIDEwMCAwIEwgMTAwIDEw
MCBaXCIpIgorUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQtcGF0aCIsICJwYXRoKCdNMCAwIEwgMTAw
IDAgTCAxMDAgMTAwJykiKSBpcyAicGF0aChcIk0gMCAwIEwgMTAwIDAgTCAxMDAgMTAwXCIpIgor
UEFTUyBpbm5lclN0eWxlKCJvZmZzZXQtcGF0aCIsICJwYXRoKCdNMCAwJykiKSBpcyAicGF0aChc
Ik0gMCAwXCIpIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQtcGF0aCIsICJub25lIikgaXMg
Im5vbmUiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAgTCAx
MDAgMCBMIDEwMCAxMDB6JykiKSBpcyAicGF0aChcIk0gMCAwIEwgMTAwIDAgTCAxMDAgMTAwIFpc
IikiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAgTCAxMDAg
MCBMIDEwMCAxMDAnKSIpIGlzICJwYXRoKFwiTSAwIDAgTCAxMDAgMCBMIDEwMCAxMDBcIikiCitQ
QVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAnKSIpIGlzICJwYXRo
KFwiTSAwIDBcIikiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldC1wYXRoIiwgImF1dG8iKSBpcyAi
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQtcGF0aCIsICJhdXRvIikgaXMgIm5vbmUiCitQ
QVNTIGlubmVyU3R5bGUoIm9mZnNldC1wYXRoIiwgInBhdGgoKSIpIGlzICIiCitQQVNTIGNvbXB1
dGVkU3R5bGUoIm9mZnNldC1wYXRoIiwgInBhdGgoKSIpIGlzICJub25lIgorUEFTUyBpbm5lclN0
eWxlKCJvZmZzZXQtcGF0aCIsICJwYXRoKCdNMCAwJykgbm9uZSIpIGlzICIiCitQQVNTIGNvbXB1
dGVkU3R5bGUoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAnKSBub25lIikgaXMgIm5vbmUiCitQ
QVNTIGlubmVyU3R5bGUoIm9mZnNldC1wYXRoIiwgIm5vbmUgcGF0aCgnTTAgMCcpIikgaXMgIiIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0LXBhdGgiLCAibm9uZSBwYXRoKCdNMCAwJykiKSBp
cyAibm9uZSIKK1BBU1MgaW5uZXJTdHlsZSgib2Zmc2V0LXBhdGgiLCAicGF0aCgnTTAgMCcpIHBh
dGgoJ00wIDAnKSIpIGlzICIiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldC1wYXRoIiwgInBh
dGgoJ00wIDAnKSBwYXRoKCdNMCAwJykiKSBpcyAibm9uZSIKK1BBU1MgaW5uZXJTdHlsZSgib2Zm
c2V0LXBhdGgiLCAibm9uZSBub25lIikgaXMgIiIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0
LXBhdGgiLCAibm9uZSBub25lIikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldC1w
YXRoIiwgInBhdGgoJ00wIDAnKSAyMHB4IikgaXMgIiIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zm
c2V0LXBhdGgiLCAicGF0aCgnTTAgMCcpIDIwcHgiKSBpcyAibm9uZSIKK1BBU1MgaW5uZXJTdHls
ZSgib2Zmc2V0LXBhdGgiLCAicGF0aCgnTTAgMCcpIDIwJSIpIGlzICIiCitQQVNTIGNvbXB1dGVk
U3R5bGUoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAnKSAyMCUiKSBpcyAibm9uZSIKK1BBU1Mg
aW5uZXJTdHlsZSgib2Zmc2V0LXBhdGgiLCAidXJsKCNzaGFwZSkiKSBpcyAiIgorUEFTUyBjb21w
dXRlZFN0eWxlKCJvZmZzZXQtcGF0aCIsICJ1cmwoI3NoYXBlKSIpIGlzICJub25lIgorUEFTUyBp
bm5lclN0eWxlKCJvZmZzZXQtcGF0aCIsICJjaXJjbGUoKSIpIGlzICIiCitQQVNTIGNvbXB1dGVk
U3R5bGUoIm9mZnNldC1wYXRoIiwgImNpcmNsZSgpIikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5
bGUoIm9mZnNldC1wYXRoIiwgImVsbGlwc2UoKSIpIGlzICIiCitQQVNTIGNvbXB1dGVkU3R5bGUo
Im9mZnNldC1wYXRoIiwgImVsbGlwc2UoKSIpIGlzICJub25lIgorUEFTUyBpbm5lclN0eWxlKCJv
ZmZzZXQtcGF0aCIsICJpbnNldCgpIikgaXMgIiIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0
LXBhdGgiLCAiaW5zZXQoKSIpIGlzICJub25lIgorUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQtcGF0
aCIsICJyZWN0YW5nbGUoKSIpIGlzICIiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldC1wYXRo
IiwgInJlY3RhbmdsZSgpIikgaXMgIm5vbmUiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
b2Zmc2V0L3BhcnNpbmctb2Zmc2V0LXBhdGguaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL29m
ZnNldC9wYXJzaW5nLW9mZnNldC1wYXRoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTVkMDY0ZTU4YmJhNDFk
NjA0ZjgzNDIzZGQ2MDE3NTQ5NTk1ODU2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL29mZnNldC9wYXJzaW5nLW9mZnNldC1wYXRoLmh0bWwKQEAgLTAsMCArMSw3NCBA
QAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRlcm5hbDpDU1NP
ZmZzZXRFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPHN0eWxlPgorKiB7IGZvbnQtc2l6ZTog
MTZweDsgfQorZGl2IHsgZm9udC1zaXplOiA4cHg7IH0KKzwvc3R5bGU+Cis8Ym9keT4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHBhcnNpbmcgYW5kIGNvbXB1dGVkIHN0eWxlIG9mIG9m
ZnNldC1wYXRoJyk7CisKK2Z1bmN0aW9uIGNvbXB1dGVkU3R5bGUocHJvcGVydHksIHZhbHVlKSB7
CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkocHJv
cGVydHksIHZhbHVlKTsKKyAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9IGdldENvbXB1dGVkU3R5bGUo
ZGl2KS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92
ZUNoaWxkKGRpdik7CisgICAgcmV0dXJuIGNvbXB1dGVkVmFsdWU7Cit9CisKK2Z1bmN0aW9uIGlu
bmVyU3R5bGUocHJvcGVydHksIHZhbHVlKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOworICAgIGRpdi5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFs
dWUpOworICAgIHJldHVybiBkaXYuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSk7Cit9
CisKK2Z1bmN0aW9uIHRlc3RDb21wdXRlZChwcm9wZXJ0eSwgdmFsdWUsIGV4cGVjdGVkKSB7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21wdXRlZFN0eWxlKCInICsgcHJvcGVydHkgKyAn
IiwgIicgKyB2YWx1ZSArICciKScsIGV4cGVjdGVkKTsKK30KKworZnVuY3Rpb24gdGVzdElubmVy
KHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoZXhwZWN0ZWQgPT09IG51bGwp
CisgICAgICAgIGV4cGVjdGVkID0gIiI7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbm5l
clN0eWxlKCInICsgcHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScsIGV4cGVjdGVkKTsK
K30KKworZnVuY3Rpb24gbmVnYXRpdmVUZXN0KHByb3BlcnR5LCB2YWx1ZSkgeworICAgIHRlc3RJ
bm5lcihwcm9wZXJ0eSwgdmFsdWUsIG51bGwpOworICAgIHRlc3RDb21wdXRlZChwcm9wZXJ0eSwg
dmFsdWUsICdub25lJyk7Cit9CisKKy8vIFByb3BlcnR5IHN0eWxlCit0ZXN0SW5uZXIoIm9mZnNl
dC1wYXRoIiwgIm5vbmUiLCAibm9uZSIpOwordGVzdElubmVyKCJvZmZzZXQtcGF0aCIsICJwYXRo
KCdNMCAwIEwgMTAwIDAgTCAxMDAgMTAweicpIiwgInBhdGgoXCJNIDAgMCBMIDEwMCAwIEwgMTAw
IDEwMCBaXCIpIik7Cit0ZXN0SW5uZXIoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAgTCAxMDAg
MCBMIDEwMCAxMDAnKSIsICJwYXRoKFwiTSAwIDAgTCAxMDAgMCBMIDEwMCAxMDBcIikiKTsKK3Rl
c3RJbm5lcigib2Zmc2V0LXBhdGgiLCAicGF0aCgnTTAgMCcpIiwgInBhdGgoXCJNIDAgMFwiKSIp
OworCisvLyBDb21wdXRlZCBzdHlsZQordGVzdENvbXB1dGVkKCJvZmZzZXQtcGF0aCIsICJub25l
IiwgIm5vbmUiKTsKK3Rlc3RDb21wdXRlZCgib2Zmc2V0LXBhdGgiLCAicGF0aCgnTTAgMCBMIDEw
MCAwIEwgMTAwIDEwMHonKSIsICJwYXRoKFwiTSAwIDAgTCAxMDAgMCBMIDEwMCAxMDAgWlwiKSIp
OwordGVzdENvbXB1dGVkKCJvZmZzZXQtcGF0aCIsICJwYXRoKCdNMCAwIEwgMTAwIDAgTCAxMDAg
MTAwJykiLCAicGF0aChcIk0gMCAwIEwgMTAwIDAgTCAxMDAgMTAwXCIpIik7Cit0ZXN0Q29tcHV0
ZWQoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAnKSIsICJwYXRoKFwiTSAwIDBcIikiKTsKKwor
CisvLyBpbnZhbGlkCituZWdhdGl2ZVRlc3QoIm9mZnNldC1wYXRoIiwgImF1dG8iKTsKK25lZ2F0
aXZlVGVzdCgib2Zmc2V0LXBhdGgiLCAicGF0aCgpIik7CituZWdhdGl2ZVRlc3QoIm9mZnNldC1w
YXRoIiwgInBhdGgoJ00wIDAnKSBub25lIik7CituZWdhdGl2ZVRlc3QoIm9mZnNldC1wYXRoIiwg
Im5vbmUgcGF0aCgnTTAgMCcpIik7CituZWdhdGl2ZVRlc3QoIm9mZnNldC1wYXRoIiwgInBhdGgo
J00wIDAnKSBwYXRoKCdNMCAwJykiKTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0LXBhdGgiLCAibm9u
ZSBub25lIik7CituZWdhdGl2ZVRlc3QoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAnKSAyMHB4
Iik7CituZWdhdGl2ZVRlc3QoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAnKSAyMCUiKTsKKy8v
IE1heSBnZXQgdmFsaWQgaW4gdGhlIGZ1dHVyZS4KK25lZ2F0aXZlVGVzdCgib2Zmc2V0LXBhdGgi
LCAidXJsKCNzaGFwZSkiKTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0LXBhdGgiLCAiY2lyY2xlKCki
KTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0LXBhdGgiLCAiZWxsaXBzZSgpIik7CituZWdhdGl2ZVRl
c3QoIm9mZnNldC1wYXRoIiwgImluc2V0KCkiKTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0LXBhdGgi
LCAicmVjdGFuZ2xlKCkiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9vZmZzZXQvcGFyc2luZy1vZmZzZXQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL29mZnNldC9wYXJzaW5nLW9mZnNldC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIwMjJlNTFjYmZhMDcwYTU1NTc1ZjQ2MGM0MzkzNmE0NGIzNGQyMTQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9vZmZzZXQvcGFyc2luZy1vZmZzZXQuaHRtbApA
QCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGludGVybmFsOkNTU09mZnNldEVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8c3R5bGU+Cisq
IHsgZm9udC1zaXplOiAxNnB4OyB9CitkaXYgeyBmb250LXNpemU6IDhweDsgfQorPC9zdHlsZT4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgcGFyc2luZyBhbmQgY29tcHV0
ZWQgc3R5bGUgb2Ygb2Zmc2V0Jyk7CisKK2Z1bmN0aW9uIGNvbXB1dGVkU3R5bGUocHJvcGVydHks
IHZhbHVlKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwor
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICBkaXYuc3R5bGUuc2V0UHJv
cGVydHkocHJvcGVydHksIHZhbHVlKTsKKyAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9IGdldENvbXB1
dGVkU3R5bGUoZGl2KS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKKyAgICBkb2N1bWVudC5i
b2R5LnJlbW92ZUNoaWxkKGRpdik7CisgICAgcmV0dXJuIGNvbXB1dGVkVmFsdWU7Cit9CisKK2Z1
bmN0aW9uIGlubmVyU3R5bGUocHJvcGVydHksIHZhbHVlKSB7CisgICAgdmFyIGRpdiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRpdi5zdHlsZS5zZXRQcm9wZXJ0eShwcm9w
ZXJ0eSwgdmFsdWUpOworICAgIHJldHVybiBkaXYuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShwcm9w
ZXJ0eSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RDb21wdXRlZChwcm9wZXJ0eSwgdmFsdWUsIGV4cGVj
dGVkKSB7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21wdXRlZFN0eWxlKCInICsgcHJv
cGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScsIGV4cGVjdGVkKTsKK30KKworZnVuY3Rpb24g
dGVzdElubmVyKHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoZXhwZWN0ZWQg
PT09IG51bGwpCisgICAgICAgIGV4cGVjdGVkID0gIiI7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdpbm5lclN0eWxlKCInICsgcHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScsIGV4
cGVjdGVkKTsKK30KKworZnVuY3Rpb24gbmVnYXRpdmVUZXN0KHByb3BlcnR5LCB2YWx1ZSkgewor
ICAgIHRlc3RJbm5lcihwcm9wZXJ0eSwgdmFsdWUsIG51bGwpOworICAgIHRlc3RDb21wdXRlZChw
cm9wZXJ0eSwgdmFsdWUsICdub25lIDBweCcpOworfQorCisKK3Rlc3RJbm5lcigib2Zmc2V0Iiwg
Im5vbmUiLCAibm9uZSIpOwordGVzdElubmVyKCJvZmZzZXQiLCAicGF0aCgnTTAgMCBMIDEwMCAw
IEwgMTAwIDEwMHonKSIsICJwYXRoKFwiTSAwIDAgTCAxMDAgMCBMIDEwMCAxMDAgWlwiKSIpOwor
dGVzdElubmVyKCJvZmZzZXQiLCAicGF0aCgnTTAgMCBMIDEwMCAwIEwgMTAwIDEwMCcpIiwgInBh
dGgoXCJNIDAgMCBMIDEwMCAwIEwgMTAwIDEwMFwiKSIpOwordGVzdElubmVyKCJvZmZzZXQiLCAi
cGF0aCgnTTAgMCcpIiwgInBhdGgoXCJNIDAgMFwiKSIpOwordGVzdElubmVyKCJvZmZzZXQiLCAi
cGF0aCgnTTAgMCBMIDEwMCAwIEwgMTAwIDEwMHonKSAyMHB4IiwgInBhdGgoXCJNIDAgMCBMIDEw
MCAwIEwgMTAwIDEwMCBaXCIpIDIwcHgiKTsKKworLy8gQ29tcHV0ZWQgc3R5bGUKK3Rlc3RDb21w
dXRlZCgib2Zmc2V0IiwgIm5vbmUiLCAibm9uZSAwcHgiKTsKK3Rlc3RDb21wdXRlZCgib2Zmc2V0
IiwgInBhdGgoJ00wIDAgTCAxMDAgMCBMIDEwMCAxMDB6JykgMjBweCIsICJwYXRoKFwiTSAwIDAg
TCAxMDAgMCBMIDEwMCAxMDAgWlwiKSAyMHB4Iik7Cit0ZXN0Q29tcHV0ZWQoIm9mZnNldCIsICJw
YXRoKCdNMCAwIEwgMTAwIDAgTCAxMDAgMTAweicpIiwgInBhdGgoXCJNIDAgMCBMIDEwMCAwIEwg
MTAwIDEwMCBaXCIpIDBweCIpOwordGVzdENvbXB1dGVkKCJvZmZzZXQiLCAicGF0aCgnTTAgMCBM
IDEwMCAwIEwgMTAwIDEwMCcpIiwgInBhdGgoXCJNIDAgMCBMIDEwMCAwIEwgMTAwIDEwMFwiKSAw
cHgiKTsKK3Rlc3RDb21wdXRlZCgib2Zmc2V0IiwgInBhdGgoJ00wIDAnKSIsICJwYXRoKFwiTSAw
IDBcIikgMHB4Iik7CisKKy8vIGludmFsaWQgc3R5bGUKK25lZ2F0aXZlVGVzdCgib2Zmc2V0Iiwg
IjAiKTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0IiwgIjIwcHgiKTsKK25lZ2F0aXZlVGVzdCgib2Zm
c2V0IiwgIjIwJSIpOworbmVnYXRpdmVUZXN0KCJvZmZzZXQiLCAiLTIwcHgiKTsKK25lZ2F0aXZl
VGVzdCgib2Zmc2V0IiwgIi0yMCUiKTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0IiwgIjJlMSUiKTsK
K25lZ2F0aXZlVGVzdCgib2Zmc2V0IiwgIjJlMSUiKTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0Iiwg
IjIwMGUtMXB4Iik7CituZWdhdGl2ZVRlc3QoIm9mZnNldCIsICJwYXRoKCdNMCAwJykgbm9uc2Vu
c2UiKTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0IiwgIjIwcHggcGF0aCgnTTAgMCBMIDEwMCAwIEwg
MTAwIDEwMHonKSIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmV4cG9zZWQvY3NzLXByb3BlcnRpZXMtYmVoaW5kLWZsYWdzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmV4cG9zZWQvY3NzLXByb3BlcnRpZXMtYmVoaW5k
LWZsYWdzLWV4cGVjdGVkLnR4dAppbmRleCAzYTM2N2I5MzQ2ODFjNWVjY2I1YTM3NWI4ZjRiZjY2
Y2Q5Y2Y3NTY0Li4xZThmMzVlOWZjMWM3NmVhMTc5ZTAyMjZmNGQ5YWZhZDNlMDQwYmUzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJleHBvc2VkL2Nzcy1wcm9wZXJ0aWVzLWJlaGluZC1mbGFn
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViZXhwb3NlZC9jc3MtcHJvcGVydGll
cy1iZWhpbmQtZmxhZ3MtZXhwZWN0ZWQudHh0CkBAIC0xOCw0ICsxOCw3IEBAIFBBU1MgbWFyZ2lu
LWJsb2NrIGlzIG5vdCBleHBvc2VkCiBQQVNTIG1hcmdpbi1pbmxpbmUgaXMgbm90IGV4cG9zZWQg
CiBQQVNTIHBhZGRpbmctYmxvY2sgaXMgbm90IGV4cG9zZWQgCiBQQVNTIHBhZGRpbmctaW5saW5l
IGlzIG5vdCBleHBvc2VkIAorUEFTUyBvZmZzZXQgaXMgbm90IGV4cG9zZWQgCitQQVNTIG9mZnNl
dC1wYXRoIGlzIG5vdCBleHBvc2VkIAorUEFTUyBvZmZzZXQtZGlzdGFuY2UgaXMgbm90IGV4cG9z
ZWQgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmV4cG9zZWQvY3NzLXByb3BlcnRpZXMt
YmVoaW5kLWZsYWdzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJleHBvc2VkL2Nzcy1wcm9wZXJ0aWVz
LWJlaGluZC1mbGFncy5odG1sCmluZGV4IGNmZTM1YjM4Mzk2YWE1Yjg5N2JkYjk3M2M4OTlhYzcy
NzY2NTUyODQuLmM2YzRjMTE5NTg2ZTk5YjRjOGMwZjRlNDg3MDIwNjgwODJmMGFhMjcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3dlYmV4cG9zZWQvY3NzLXByb3BlcnRpZXMtYmVoaW5kLWZsYWdz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZXhwb3NlZC9jc3MtcHJvcGVydGllcy1iZWhpbmQt
ZmxhZ3MuaHRtbApAQCAtMjMsNiArMjMsOSBAQCBsZXQgaGlkZGVuUHJvcGVydGllcyA9IFsKICAg
ICAibWFyZ2luLWlubGluZSIsCiAgICAgInBhZGRpbmctYmxvY2siLAogICAgICJwYWRkaW5nLWlu
bGluZSIsCisgICAgIm9mZnNldCIsCisgICAgIm9mZnNldC1wYXRoIiwKKyAgICAib2Zmc2V0LWRp
c3RhbmNlIiwKIF07CiBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0
Iik7CiBsZXQge3N0eWxlfSA9IGVsZW1lbnQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382898</attachid>
            <date>2019-11-05 23:51:32 -0800</date>
            <delta_ts>2019-11-08 07:32:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203848-20191106085130.patch</filename>
            <type>text/plain</type>
            <size>50494</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY4NjgzYjAxZDY3ZWM5
MTA2OGI3ZjVmMTIyYWY5YmQ2YjIxN2IwNi4uNTI3ODM3MWE1ZmRhNTViMmYwNjBhMGQ3Zjk0NWU5
MWNiZTVhYzNjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE5LTExLTA1ICBEaXJr
IFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3VwcG9ydCBwYXJzaW5nLCBj
b21wdXRlZCBzdHlsZSBhbmQgcHJvcGVydHkgc3R5bGUgZm9yIG9mZnNldCwgb2Zmc2V0LXBhdGgs
IG9mZnNldC1kaXN0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAzODQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBwYXJzaW5nLCBjb21wdXRlZCBzdHls
ZSBhbmQgcHJvcGVydHkgc3R5bGUKKyAgICAgICAgZm9yIHRoZQorICAgICAgICBsb25naGFuZCBw
cm9wZXJ0aWVzOiBvZmZzZXQtcGF0aCwgb2Zmc2V0LWRpc3RhbmNlCisgICAgICAgIHNob3J0aGFu
ZCBwcm9wZXJ0aWVzOiBvZmZzZXQKKworICAgICAgICBUaGUgaW1wbGVtZW50YXRpb24gaGFwcGVu
cyBiZWhpbmQgdGhlIGZlYXR1cmUgZmxhZzogbW90aW9uLgorCisgICAgICAgIFRoZSBsb25naGFu
ZCBvZmZzZXQtcm90YXRlIGdldHMgaW1wbGVtZW50ZWQgaW4gYSBzZXBhcmF0ZSBwYXRjaC4gCisK
KyAgICAgICAgVGVzdHM6IGZhc3QvY3NzL29mZnNldC9wYXJzaW5nLW9mZnNldC1kaXN0YW5jZS5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9vZmZzZXQvcGFyc2luZy1vZmZzZXQtcGF0aC5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9vZmZzZXQvcGFyc2luZy1vZmZzZXQuaHRtbAor
CisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5TdHls
ZSk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnRpZXMuanNvbjoKKyAgICAgICAgKiBjc3MvU3R5
bGVQcm9wZXJ0aWVzLmNwcDoKKyAgICAgICAgICAgICAgICBBZGQgb2Zmc2V0IHNob3J0aGFuZC4K
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6Z2V0UHJvcGVydHlWYWx1ZSBjb25z
dCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjb25zdW1lUGF0aFNoYXBlT3JOb25lKToKKyAgICAgICAgICAgICAgICBPbmx5
IHBhcnNlIG5vbmUgfCBwYXRoKCkgYXMgQmxpbmsgYW5kIEdlY2tvIGRvLgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUpOgorICAgICAgICAgICAg
ICAgIEFkZCBsb25naGFuZHM6IG9mZnNldC1kaXN0YW5jZSBhbmQgb2Zmc2V0LXBhdGguCisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlcjo6Y29uc3VtZU9mZnNldFNob3J0aGFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaG9ydGhhbmQpOgor
ICAgICAgICAgICAgICAgIEFkZCBvZmZzZXQgc2hvcnRoYW5kLgorICAgICAgICAqIGNzcy9wYXJz
ZXIvQ1NTUHJvcGVydHlQYXJzZXIuaDoKKyAgICAgICAgKiBwYWdlL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuaDogQWRkIG1vdGlvbiBmZWF0dXJlIGZsYWcuCisgICAgICAgIChXZWJDb3JlOjpSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRNb3Rpb25FbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6Om1vdGlvbkVuYWJsZWQgY29uc3QpOgorICAgICAgICAq
IHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOiBBZGQgb2Zmc2V0RGlzdGFuY2UgbGVuZ3Ro
IHZhbHVlCisgICAgICAgICAgICAgICAgYW5kIG9mZnNldFBhdGggQmFzaWNTaGFwZSB2YWx1ZS4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpvZmZzZXRQYXRoIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpvZmZzZXREaXN0YW5jZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0T2Zmc2V0RGlzdGFuY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU3R5bGU6OmluaXRpYWxPZmZzZXRQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjppbml0aWFsT2Zmc2V0RGlzdGFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU3R5bGU6OnNldE9mZnNldFBhdGgpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSBjb25zdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAg
ICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0QmFzaWNTaGFwZSk6CisgICAgICAgICAg
ICAgICAgQ29udmVydCBiYXNpYyBzaGFwZXMgdy9vIGJvdW5kaW5nIGJveGVzLiBUaGUgc3BlYyBy
ZXF1aXJlcworICAgICAgICAgICAgICAgIHN1cHBvcnQgZm9yIGJvdW5kaW5nIGJveGVzIGJ1dCBu
ZWl0aGVyIEJsaW5rIG5vciBHZWNrbworICAgICAgICAgICAgICAgIGltcGxlbWVudCB0aGVtLgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRCYXNpY1No
YXBlR2VvbWV0cnlCb3gpOgorICAgICAgICAgICAgICAgIFNpbXBsZSByZW5hbWluZyB0byByZWZs
ZWN0IHRoZSBiZWhhdmlvciBpbnN0ZWFkIG9mIHRoZQorICAgICAgICAgICAgICAgIHByb3BlcnR5
LgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRDbGlw
UGF0aCk6IERlbGV0ZWQuCisKIDIwMTktMTEtMDUgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIG1wNCB2aWRlbyBlbGVtZW50IGJyb2tlbiB3aXRoIHNlcnZpY2Ug
d29ya2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDc0MDRlYTA0MzVhYWQ5Mjc2YTY4OTMyYTUyMjg2ZTE3NDY1ZWYz
MzguLjA3ODg5MjM1N2UyZWVjNGU4NDc1MDI0N2U2MzRkZDAwY2Q5ZDIyYTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTktMTEtMDUgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBTdXBwb3J0IHBhcnNpbmcsIGNvbXB1dGVkIHN0eWxlIGFuZCBwcm9wZXJ0
eSBzdHlsZSBmb3Igb2Zmc2V0LCBvZmZzZXQtcGF0aCwgb2Zmc2V0LWRpc3RhbmNlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM4NDgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgaW1wbGVtZW50YXRp
b24gb2YgdGhlIE1vdGlvbiBQYXRoIHNwZWMgaGFwcGVucyBiZWhpbmQgYSBmZWF0dXJlIGZsYWcu
CisgICAgICAgIEV4cG9zZSB0aGUgZmVhdHVyZSBmbGFnIHRvIHRoZSB0ZXN0IHN1aXRlLgorCisg
ICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlOjpvdmVycmlkZUJvb2xQcmVmZXJlbmNlRm9yVGVzdFJ1bm5lcik6CisKIDIw
MTktMTEtMDUgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggZm9yICFFTkFCTEUoTUVESUFfU1RSRUFNKSBidWls
ZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA4MjRiNDBmYmUyYTZlYmM1MzU3NDc0
NTkyODE2NWUyNmYwYmM0MzllLi43MGU3MWUyNjgyNmJlOGRiMWI4NDdiZTZlMTEwNzM1NGU4NGIy
Y2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTkt
MTEtMDUgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBTdXBwb3J0
IHBhcnNpbmcsIGNvbXB1dGVkIHN0eWxlIGFuZCBwcm9wZXJ0eSBzdHlsZSBmb3Igb2Zmc2V0LCBv
ZmZzZXQtcGF0aCwgb2Zmc2V0LWRpc3RhbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM4NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1vdGlvbiBQYXRo
IHNwZWMgaGFwcGVucyBiZWhpbmQgYSBmZWF0dXJlIGZsYWcuCisgICAgICAgIEV4cG9zZSB0aGUg
ZmVhdHVyZSBmbGFnIHRvIHRoZSB0ZXN0IHN1aXRlLgorCisgICAgICAgICogV2ViVmlldy9XZWJQ
cmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2Vz
Lm1tOgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6CisgICAgICAgICgt
W1dlYlByZWZlcmVuY2VzIG1vdGlvbkVuYWJsZWRdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5j
ZXMgc2V0TW90aW9uRW5hYmxlZDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2Vz
UHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
VmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgorCiAyMDE5LTExLTA0ICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjQz
OTQ3KSBFcHNvbiBzb2Z0d2FyZSB1cGRhdGVyIGZhaWxzIHRvIGluc3RhbGwgbmV3IHZlcnNpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKaW5kZXggNGJjMjFhZTBjNmQxMDMyNTNiOGI4Yzg3NGRiMDQ2MjI2MTc4MGI2MS4uMjY3OGRh
N2RkMGE0NzY5NDk4ZWRlNDBmOGRkNmFjMzFiNzBmZjJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTQsNyArNCw3IEBA
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxleGV5IFByb3NrdXJ5YWtvdiA8YXBAd2Via2l0Lm9y
Zz4KICAqIENvcHlyaWdodCAoQykgMjAwNyBOaWNob2xhcyBTaGFua3MgPHdlYmtpdEBuaWNrc2hh
bmtzLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAxMSBTZW5jaGEsIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMyBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRl
ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxOSBBZG9i
ZS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0zMDA2LDYgKzMw
MDYsMTYgQEAgUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZv
clByb3BlcnR5SW5TdHlsZShjb25zdCBSZW5kZXJTdHkKICAgICAgICAgICAgIGxpc3QtPmFwcGVu
ZCh6b29tQWRqdXN0ZWRQaXhlbFZhbHVlRm9yTGVuZ3RoKHN0eWxlLm9iamVjdFBvc2l0aW9uKCku
eSgpLCBzdHlsZSkpOwogICAgICAgICAgICAgcmV0dXJuIGxpc3Q7CiAgICAgICAgIH0KKyAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eU9mZnNldFBhdGg6IHsKKyAgICAgICAgICAgIGF1dG8qIGJhc2lj
U2hhcGUgPSBzdHlsZS5vZmZzZXRQYXRoKCk7CisgICAgICAgICAgICBpZiAoIWJhc2ljU2hhcGUp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFs
dWUoQ1NTVmFsdWVOb25lKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckJhc2ljU2hhcGUo
c3R5bGUsICpiYXNpY1NoYXBlKTsKKyAgICAgICAgfQorICAgICAgICBjYXNlIENTU1Byb3BlcnR5
T2Zmc2V0RGlzdGFuY2U6CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZh
bHVlKHN0eWxlLm9mZnNldERpc3RhbmNlKCksIHN0eWxlKTsKKyAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eU9mZnNldDoKKyAgICAgICAgICAgIHJldHVybiBnZXRDU1NQcm9wZXJ0eVZhbHVlc0ZvclNo
b3J0aGFuZFByb3BlcnRpZXMob2Zmc2V0U2hvcnRoYW5kKCkpOwogICAgICAgICBjYXNlIENTU1By
b3BlcnR5T3BhY2l0eToKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFs
dWUoc3R5bGUub3BhY2l0eSgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7CiAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlPcnBoYW5zOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnRpZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVz
Lmpzb24KaW5kZXggYmJjOWJlZWQwNmYyZWY3YTNkMDk0YTU1MmZkMGVmNmQ3MWY3OTI2ZC4uNDYz
MDQxMGViNTAyMTc3NzhkZmI4NDMwNGYzYjY0MmRhMjhlNWE3NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJvcGVydGllcy5qc29uCkBAIC0yMTI4LDcgKzIxMjgsNyBAQAogICAgICAgICAgICAgICAg
ICJhbGlhc2VzIjogWwogICAgICAgICAgICAgICAgICAgICAiLXdlYmtpdC1jbGlwLXBhdGgiCiAg
ICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICAiY29udmVydGVyIjogIkNsaXBQYXRo
IgorICAgICAgICAgICAgICAgICJjb252ZXJ0ZXIiOiAiQmFzaWNTaGFwZUdlb21ldHJ5Qm94Igog
ICAgICAgICAgICAgfQogICAgICAgICB9LAogICAgICAgICAiY2xpcC1ydWxlIjogewpAQCAtMzEz
NCw2ICszMTM0LDM5IEBACiAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5v
cmcvVFIvY3NzMy1pbWFnZXMvI29iamVjdC1wb3NpdGlvbiIKICAgICAgICAgICAgIH0KICAgICAg
ICAgfSwKKyAgICAgICAgIm9mZnNldCI6IHsKKyAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRp
ZXMiOiB7CisgICAgICAgICAgICAgICAgInJ1bnRpbWUtZmxhZyI6ICJtb3Rpb24iLAorICAgICAg
ICAgICAgICAgICJsb25naGFuZHMiOiBbCisgICAgICAgICAgICAgICAgICAgICJvZmZzZXQtcGF0
aCIsCisgICAgICAgICAgICAgICAgICAgICJvZmZzZXQtZGlzdGFuY2UiCisgICAgICAgICAgICAg
ICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogeworICAg
ICAgICAgICAgICAgICJjYXRlZ29yeSI6ICJjc3Mtb2Zmc2V0LXByb3BzIiwKKyAgICAgICAgICAg
ICAgICAidXJsIjogImh0dHBzOi8vZHJhZnRzLmZ4dGYub3JnL21vdGlvbi0xLyNvZmZzZXQtc2hv
cnRoYW5kIgorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAib2Zmc2V0LXBhdGgi
OiB7CisgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0aWVzIjogeworICAgICAgICAgICAgICAg
ICJydW50aW1lLWZsYWciOiAibW90aW9uIiwKKyAgICAgICAgICAgICAgICAiY29udmVydGVyIjog
IkJhc2ljU2hhcGUiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24i
OiB7CisgICAgICAgICAgICAgICAgImNhdGVnb3J5IjogImNzcy1vZmZzZXQtcHJvcHMiLAorICAg
ICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9kcmFmdHMuZnh0Zi5vcmcvbW90aW9uLTEvI29m
ZnNldC1wYXRoLXByb3BlcnR5IgorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAi
b2Zmc2V0LWRpc3RhbmNlIjogeworICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsK
KyAgICAgICAgICAgICAgICAicnVudGltZS1mbGFnIjogIm1vdGlvbiIsCisgICAgICAgICAgICAg
ICAgImNvbnZlcnRlciI6ICJMZW5ndGgiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNw
ZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgImNhdGVnb3J5IjogImNzcy1vZmZzZXQt
cHJvcHMiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9kcmFmdHMuZnh0Zi5vcmcv
bW90aW9uLTEvI29mZnNldC1kaXN0YW5jZS1wcm9wZXJ0eSIKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSwKICAgICAgICAgIm9wYWNpdHkiOiB7CiAgICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0
aWVzIjogewogICAgICAgICAgICAgICAgICJjb252ZXJ0ZXIiOiAiT3BhY2l0eSIsCkBAIC03MTAx
LDYgKzcxMzQsMTIgQEAKICAgICAgICAgICAgICJsb25nbmFtZSI6ICJDU1MgTGlzdHMgYW5kIENv
dW50ZXJzIE1vZHVsZSIsCiAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9U
Ui9jc3MtbGlzdHMtMy8iCiAgICAgICAgIH0sCisgICAgICAgICJjc3Mtb2Zmc2V0LXByb3BzIjog
eworICAgICAgICAgICAgInNob3J0bmFtZSI6ICJNb3Rpb24gUGF0aCIsCisgICAgICAgICAgICAi
bG9uZ25hbWUiOiAiTW90aW9uIFBhdGggTW9kdWxlIiwKKyAgICAgICAgICAgICJ1cmwiOiAiaHR0
cHM6Ly9kcmFmdHMuZnh0Zi5vcmcvbW90aW9uLTEvIiwKKyAgICAgICAgICAgICJzdGF0dXMiOiAi
ZXhwZXJpbWVudGFsIgorICAgICAgICB9LAogICAgICAgICAiY3NzLWxvZ2ljYWwtcHJvcHMiOiB7
CiAgICAgICAgICAgICAic2hvcnRuYW1lIjogIkNTUyBMb2dpY2FsIFByb3BlcnRpZXMiLAogICAg
ICAgICAgICAgImxvbmduYW1lIjogIkNTUyBMb2dpY2FsIFByb3BlcnRpZXMgTW9kdWxlIiwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKaW5kZXggMzU3OGM5YTFlYmRhNjRmYzcz
ZTlkMTY5YzM1MzZjMjc1ZmU0OTM1Ni4uMTBhMzU4NjVhZmQwNzdlMWVjMTBkNWE1YWYwNDNlNTY1
MTJjNzZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKQEAgLTI1NSw2
ICsyNTUsOCBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXRQcm9wZXJ0eVZhbHVlKENTU1By
b3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QKICAgICAgICAgcmV0dXJuIGdldDJWYWx1ZXMobWFy
Z2luSW5saW5lU2hvcnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJnaW5D
b2xsYXBzZToKICAgICAgICAgcmV0dXJuIGdldFNob3J0aGFuZFZhbHVlKHdlYmtpdE1hcmdpbkNv
bGxhcHNlU2hvcnRoYW5kKCkpOworICAgIGNhc2UgQ1NTUHJvcGVydHlPZmZzZXQ6CisgICAgICAg
IHJldHVybiBnZXRTaG9ydGhhbmRWYWx1ZShvZmZzZXRTaG9ydGhhbmQoKSk7CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eU92ZXJmbG93OgogICAgICAgICByZXR1cm4gZ2V0MlZhbHVlcyhvdmVyZmxvd1No
b3J0aGFuZCgpKTsKICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZzoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggNGJhMGMxYzIzZGVj
ZWY0MmM4MzVmYzg0YWUwODMzNzNmNmI3YWE4Yi4uMDBhZWIzYTU5MTgzNTFmN2I2MTMyZDAwZDhk
YjI0NzQ5MDZjNDljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlci5jcHAKQEAgLTEsNSArMSw2IEBACiAvLyBDb3B5cmlnaHQgMjAxNSBUaGUgQ2hy
b21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KIC8vIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTkg
QWRvYmUuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAvLwogLy8gUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAvLyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCkBAIC0yNTMwLDYgKzI1MzEsMzAgQEAgc3RhdGljIFJlZlB0cjxDU1NCYXNpY1NoYXBl
SW5zZXQ+IGNvbnN1bWVCYXNpY1NoYXBlSW5zZXQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgYXIKICAg
ICByZXR1cm4gc2hhcGU7CiB9CiAKK3N0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVQYXRo
U2hhcGVPck5vbmUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCit7CisgICAgaWYgKHJhbmdl
LnBlZWsoKS5pZCgpID09IENTU1ZhbHVlTm9uZSkKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVJZGVu
dChyYW5nZSk7CisgICAgaWYgKHJhbmdlLnBlZWsoKS50eXBlKCkgIT0gRnVuY3Rpb25Ub2tlbikK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgQ1NTVmFsdWVJRCBpZCA9IHJhbmdlLnBlZWso
KS5mdW5jdGlvbklkKCk7CisgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSByYW5nZUNvcHkgPSByYW5n
ZTsKKyAgICBDU1NQYXJzZXJUb2tlblJhbmdlIGFyZ3MgPSBjb25zdW1lRnVuY3Rpb24ocmFuZ2VD
b3B5KTsKKworICAgIC8vIEZJWE1FLU5FV1BBUlNFUjogQ1NTQmFzaWNTaGFwZSBzaG91bGQgYmUg
YSBDU1NWYWx1ZSwgYW5kIHNoYXBlcyBzaG91bGQgbm90IGJlIHByaW1pdGl2ZSB2YWx1ZXMuCisg
ICAgUmVmUHRyPENTU0Jhc2ljU2hhcGU+IHNoYXBlOworICAgIGlmIChpZCA9PSBDU1NWYWx1ZVBh
dGgpCisgICAgICAgIHNoYXBlID0gY29uc3VtZUJhc2ljU2hhcGVQYXRoKGFyZ3MpOworICAgIGlm
ICghc2hhcGUpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJhbmdlID0gcmFuZ2VDb3B5
OworICAgIAorICAgIGlmICghYXJncy5hdEVuZCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKHNoYXBl
LnJlbGVhc2VOb25OdWxsKCkpOworfQorCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1l
QmFzaWNTaGFwZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTUGFyc2VyQ29u
dGV4dCYgY29udGV4dCkKIHsKICAgICBSZWZQdHI8Q1NTVmFsdWU+IHJlc3VsdDsKQEAgLTM5MzAs
NiArMzk1NSwxMSBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNp
bmdsZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTUwogI2VuZGlmCiAgICAgY2FzZSBD
U1NQcm9wZXJ0eU9iamVjdFBvc2l0aW9uOgogICAgICAgICByZXR1cm4gY29uc3VtZVBvc2l0aW9u
KG1fcmFuZ2UsIG1fY29udGV4dC5tb2RlLCBVbml0bGVzc1F1aXJrOjpGb3JiaWQsIFBvc2l0aW9u
U3ludGF4OjpQb3NpdGlvbik7CisgICAgY2FzZSBDU1NQcm9wZXJ0eU9mZnNldFBhdGg6CisgICAg
ICAgIC8vIE9ubHkgc3VwcG9ydCBub25lIHwgcGF0aCgpIGluaXRpYWxseSBsaWtlIEJsaW5rLgor
ICAgICAgICByZXR1cm4gY29uc3VtZVBhdGhTaGFwZU9yTm9uZShtX3JhbmdlKTsKKyAgICBjYXNl
IENTU1Byb3BlcnR5T2Zmc2V0RGlzdGFuY2U6CisgICAgICAgIHJldHVybiBjb25zdW1lTGVuZ3Ro
T3JQZXJjZW50KG1fcmFuZ2UsIG1fY29udGV4dC5tb2RlLCBWYWx1ZVJhbmdlTm9uTmVnYXRpdmUp
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRMaW5lQ2xhbXA6CiAgICAgICAgIHJldHVybiBj
b25zdW1lTGluZUNsYW1wKG1fcmFuZ2UpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGb250
U2l6ZURlbHRhOgpAQCAtNTQ0NCw2ICs1NDc0LDIyIEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+
IGNvbnN1bWVJbXBsaWNpdEdyaWRBdXRvRmxvdyhDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwK
ICAgICByZXR1cm4gbGlzdDsKIH0KIAorYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6Y29uc3VtZU9m
ZnNldFNob3J0aGFuZChib29sIGltcG9ydGFudCkKK3sKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IHBh
dGggPSBjb25zdW1lUGF0aFNoYXBlT3JOb25lKG1fcmFuZ2UpOworICAgIGlmICghcGF0aCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgUmVmUHRyPENTU1ZhbHVlPiBkaXN0YW5jZSA9IGNv
bnN1bWVMZW5ndGhPclBlcmNlbnQobV9yYW5nZSwgbV9jb250ZXh0Lm1vZGUsIFZhbHVlUmFuZ2VO
b25OZWdhdGl2ZSk7CisgICAgaWYgKCFkaXN0YW5jZSkKKyAgICAgICAgZGlzdGFuY2UgPSBDU1NW
YWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUltcGxpY2l0SW5pdGlhbFZhbHVlKCk7CisKKyAg
ICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eU9mZnNldFBhdGgsIENTU1Byb3BlcnR5T2Zmc2V0LCBw
YXRoLnJlbGVhc2VOb25OdWxsKCksIGltcG9ydGFudCk7CisgICAgYWRkUHJvcGVydHkoQ1NTUHJv
cGVydHlPZmZzZXREaXN0YW5jZSwgQ1NTUHJvcGVydHlPZmZzZXQsIGRpc3RhbmNlLnJlbGVhc2VO
b25OdWxsKCksIGltcG9ydGFudCk7CisKKyAgICByZXR1cm4gbV9yYW5nZS5hdEVuZCgpOworfQor
CiBib29sIENTU1Byb3BlcnR5UGFyc2VyOjpjb25zdW1lR3JpZFNob3J0aGFuZChib29sIGltcG9y
dGFudCkKIHsKICAgICBBU1NFUlQoc2hvcnRoYW5kRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlHcmlk
KS5sZW5ndGgoKSA9PSA2KTsKQEAgLTU4MzMsNiArNTg3OSw4IEBAIGJvb2wgQ1NTUHJvcGVydHlQ
YXJzZXI6OnBhcnNlU2hvcnRoYW5kKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIGJvb2wgaW1wb3J0
YW50KQogICAgICAgICByZXR1cm4gY29uc3VtZUdyaWRUZW1wbGF0ZVNob3J0aGFuZChDU1NQcm9w
ZXJ0eUdyaWRUZW1wbGF0ZSwgaW1wb3J0YW50KTsKICAgICBjYXNlIENTU1Byb3BlcnR5R3JpZDoK
ICAgICAgICAgcmV0dXJuIGNvbnN1bWVHcmlkU2hvcnRoYW5kKGltcG9ydGFudCk7CisgICAgY2Fz
ZSBDU1NQcm9wZXJ0eU9mZnNldDoKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVPZmZzZXRTaG9ydGhh
bmQoaW1wb3J0YW50KTsKICAgICBjYXNlIENTU1Byb3BlcnR5UGxhY2VDb250ZW50OgogICAgICAg
ICByZXR1cm4gY29uc3VtZVBsYWNlQ29udGVudFNob3J0aGFuZChpbXBvcnRhbnQpOwogICAgIGNh
c2UgQ1NTUHJvcGVydHlQbGFjZUl0ZW1zOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5oCmluZGV4IGM2N2MyMDIwNTA5OTZjOTljNzAzZTgxNTNiYTAzMWQ3
YTZkNGJjMTguLmE1NzNlZGY1ZGFkNDgwNDc0M2MwNGU1MDU5ZWY4ZGE1YWQwYmEwYmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKQEAgLTkyLDYg
KzkyLDggQEAgcHJpdmF0ZToKICAgICBib29sIGNvbnN1bWVHcmlkU2hvcnRoYW5kKGJvb2wgaW1w
b3J0YW50KTsKICAgICBib29sIGNvbnN1bWVHcmlkQXJlYVNob3J0aGFuZChib29sIGltcG9ydGFu
dCk7CiAKKyAgICBib29sIGNvbnN1bWVPZmZzZXRTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpOwor
CiAgICAgYm9vbCBjb25zdW1lUGxhY2VDb250ZW50U2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KTsK
ICAgICBib29sIGNvbnN1bWVQbGFjZUl0ZW1zU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KTsKICAg
ICBib29sIGNvbnN1bWVQbGFjZVNlbGZTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCA5YmUzYmM1ZDk2
N2I4ZTkzMzQ1OWY3ZDA4YTJhOGY3ODNmNTZkYTZmLi5kNzQ2YjQ4YTEzMGZlNDYzODdiOTRiZDFk
OTk1ZjU2OGY3YmJjNzYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaApAQCAtMTc5LDYgKzE3OSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENTU0N1
c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fQ1NTQ3Vz
dG9tUHJvcGVydGllc0FuZFZhbHVlc0VuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29sIGNz
c0N1c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9DU1ND
dXN0b21Qcm9wZXJ0aWVzQW5kVmFsdWVzRW5hYmxlZDsgfQogCisgICAgdm9pZCBzZXRNb3Rpb25F
bmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fbW90aW9uRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQor
ICAgIGJvb2wgbW90aW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW90aW9uRW5hYmxlZDsg
fQorCiAgICAgdm9pZCBzZXRQb2ludGVyRXZlbnRzRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBt
X3BvaW50ZXJFdmVudHNFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCBwb2ludGVyRXZl
bnRzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9pbnRlckV2ZW50c0VuYWJsZWQ7IH0KICAg
ICAKQEAgLTQzNCw2ICs0MzcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hdHRyU3R5bGVFbmFi
bGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fd2ViQVBJU3RhdGlzdGljc0VuYWJsZWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9DU1NDdXN0b21Qcm9wZXJ0aWVzQW5kVmFsdWVzRW5hYmxlZCB7IGZh
bHNlIH07CisgICAgYm9vbCBtX21vdGlvbkVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9w
b2ludGVyRXZlbnRzRW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1fc3ludGhldGljRWRpdGlu
Z0NvbW1hbmRzRW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1fZGlhbG9nRWxlbWVudEVuYWJs
ZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaAppbmRleCA0MmRkZDUwNWMxNjBkZmY2OThiNDVlNTM3ZTY5MGZjNjY2MzQyZWIwLi5mZDhm
YWU4ZDkxOTJkYThkYzVlZTk2NTIxNmEzMTRmNDlhODYxYmM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNCw2ICs0LDcgQEAKICAqICAgICAg
ICAgICAoQykgMjAwMCBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKICAqIENvcHlyaWdo
dCAoQykgMjAwMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAwNiBHcmFoYW0gRGVubmlzIChncmFoYW0uZGVubmlzQGdtYWlsLmNvbSkKKyAq
IENvcHlyaWdodCAoQykgMjAxOSBBZG9iZS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtNjQzLDYgKzY0NCw5IEBAIHB1YmxpYzoKICAgICBPYmplY3RGaXQgb2Jq
ZWN0Rml0KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8T2JqZWN0Rml0PihtX3JhcmVOb25J
bmhlcml0ZWREYXRhLT5vYmplY3RGaXQpOyB9CiAgICAgTGVuZ3RoUG9pbnQgb2JqZWN0UG9zaXRp
b24oKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5vYmplY3RQb3NpdGlv
bjsgfQogCisgICAgQmFzaWNTaGFwZSogb2Zmc2V0UGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcmFy
ZU5vbkluaGVyaXRlZERhdGEtPm9mZnNldFBhdGguZ2V0KCk7IH0KKyAgICBjb25zdCBMZW5ndGgm
IG9mZnNldERpc3RhbmNlKCkgY29uc3QgeyByZXR1cm4gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+
b2Zmc2V0RGlzdGFuY2U7IH0KKwogICAgIC8vIFJldHVybiB0cnVlIGlmIGFueSB0cmFuc2Zvcm0g
cmVsYXRlZCBwcm9wZXJ0eSAoY3VycmVudGx5IHRyYW5zZm9ybSwgdHJhbnNmb3JtU3R5bGUzRCBv
ciBwZXJzcGVjdGl2ZSkKICAgICAvLyBpbmRpY2F0ZXMgdGhhdCB3ZSBhcmUgdHJhbnNmb3JtaW5n
LgogICAgIGJvb2wgaGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4g
aGFzVHJhbnNmb3JtKCkgfHwgcHJlc2VydmVzM0QoKSB8fCBoYXNQZXJzcGVjdGl2ZSgpOyB9CkBA
IC0xMTY3LDYgKzExNzEsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPYmplY3RGaXQoT2JqZWN0
Rml0IGZpdCkgeyBTRVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG9iamVjdEZpdCwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KGZpdCkpOyB9CiAgICAgdm9pZCBzZXRPYmplY3RQb3NpdGlvbihM
ZW5ndGhQb2ludCYmIHBvc2l0aW9uKSB7IFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwg
b2JqZWN0UG9zaXRpb24sIFdURk1vdmUocG9zaXRpb24pKTsgfQogCisgICAgdm9pZCBzZXRPZmZz
ZXRQYXRoKFJlZlB0cjxCYXNpY1NoYXBlPiYmKTsKKyAgICB2b2lkIHNldE9mZnNldERpc3RhbmNl
KExlbmd0aCYmIG9mZnNldERpc3RhbmNlKSB7IFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0
YSwgb2Zmc2V0RGlzdGFuY2UsIFdURk1vdmUob2Zmc2V0RGlzdGFuY2UpKTsgfQorCiAgICAgdm9p
ZCBzZXRSdWJ5UG9zaXRpb24oUnVieVBvc2l0aW9uIHBvc2l0aW9uKSB7IFNFVF9WQVIobV9yYXJl
SW5oZXJpdGVkRGF0YSwgcnVieVBvc2l0aW9uLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocG9zaXRp
b24pKTsgfQogCiAjaWYgRU5BQkxFKERBUktfTU9ERV9DU1MpCkBAIC0xNDY4LDYgKzE0NzUsOCBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIFRleHRPcmllbnRhdGlvbiBpbml0aWFsVGV4dE9yaWVudGF0
aW9uKCkgeyByZXR1cm4gVGV4dE9yaWVudGF0aW9uOjpNaXhlZDsgfQogICAgIHN0YXRpYyBPYmpl
Y3RGaXQgaW5pdGlhbE9iamVjdEZpdCgpIHsgcmV0dXJuIE9iamVjdEZpdDo6RmlsbDsgfQogICAg
IHN0YXRpYyBMZW5ndGhQb2ludCBpbml0aWFsT2JqZWN0UG9zaXRpb24oKSB7IHJldHVybiBMZW5n
dGhQb2ludChMZW5ndGgoNTAuMGYsIFBlcmNlbnQpLCBMZW5ndGgoNTAuMGYsIFBlcmNlbnQpKTsg
fQorICAgIHN0YXRpYyBCYXNpY1NoYXBlKiBpbml0aWFsT2Zmc2V0UGF0aCgpIHsgcmV0dXJuIG51
bGxwdHI7IH0KKyAgICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxPZmZzZXREaXN0YW5jZSgpIHsgcmV0
dXJuIExlbmd0aCgwLCBGaXhlZCk7IH0KICAgICBzdGF0aWMgRW1wdHlDZWxsIGluaXRpYWxFbXB0
eUNlbGxzKCkgeyByZXR1cm4gRW1wdHlDZWxsOjpTaG93OyB9CiAgICAgc3RhdGljIExpc3RTdHls
ZVBvc2l0aW9uIGluaXRpYWxMaXN0U3R5bGVQb3NpdGlvbigpIHsgcmV0dXJuIExpc3RTdHlsZVBv
c2l0aW9uOjpPdXRzaWRlOyB9CiAgICAgc3RhdGljIExpc3RTdHlsZVR5cGUgaW5pdGlhbExpc3RT
dHlsZVR5cGUoKSB7IHJldHVybiBMaXN0U3R5bGVUeXBlOjpEaXNjOyB9CkBAIC0yMjAyLDYgKzIy
MTEsMTIgQEAgaW5saW5lIHZvaWQgUmVuZGVyU3R5bGU6OnNldENsaXBQYXRoKFJlZlB0cjxDbGlw
UGF0aE9wZXJhdGlvbj4mJiBvcGVyYXRpb24pCiAgICAgICAgIG1fcmFyZU5vbkluaGVyaXRlZERh
dGEuYWNjZXNzKCkuY2xpcFBhdGggPSBXVEZNb3ZlKG9wZXJhdGlvbik7CiB9CiAKK2lubGluZSB2
b2lkIFJlbmRlclN0eWxlOjpzZXRPZmZzZXRQYXRoKFJlZlB0cjxCYXNpY1NoYXBlPiYmIGJhc2lj
U2hhcGUpCit7CisgICAgaWYgKG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm9mZnNldFBhdGggIT0g
YmFzaWNTaGFwZSkKKyAgICAgICAgbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS5vZmZz
ZXRQYXRoID0gV1RGTW92ZShiYXNpY1NoYXBlKTsKK30KKwogaW5saW5lIGJvb2wgUmVuZGVyU3R5
bGU6OndpbGxDaGFuZ2VDcmVhdGVzU3RhY2tpbmdDb250ZXh0KCkgY29uc3QKIHsKICAgICByZXR1
cm4gd2lsbENoYW5nZSgpICYmIHdpbGxDaGFuZ2UoKS0+Y2FuQ3JlYXRlU3RhY2tpbmdDb250ZXh0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggZmIzMjA4MjMzNzQyOGIxMWZkNjgxNTIw
N2FmZTUxM2Y0MmNmMTAxZi4uZmRlYWQwMmQyZGI0ODRmMmRkZmIxZWQzNjQ3ZTQ5Njg0NWRiNDI3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcApAQCAtNjYsNiArNjYsOCBAQCBTdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKCkKICAgICAsIG1hc2so
RmlsbExheWVyVHlwZTo6TWFzaykKICAgICAsIG1hc2tCb3hJbWFnZShOaW5lUGllY2VJbWFnZTo6
VHlwZTo6TWFzaykKICAgICAsIG9iamVjdFBvc2l0aW9uKFJlbmRlclN0eWxlOjppbml0aWFsT2Jq
ZWN0UG9zaXRpb24oKSkKKyAgICAsIG9mZnNldFBhdGgoUmVuZGVyU3R5bGU6OmluaXRpYWxPZmZz
ZXRQYXRoKCkpCisgICAgLCBvZmZzZXREaXN0YW5jZShSZW5kZXJTdHlsZTo6aW5pdGlhbE9mZnNl
dERpc3RhbmNlKCkpCiAgICAgLCBzaGFwZU91dHNpZGUoUmVuZGVyU3R5bGU6OmluaXRpYWxTaGFw
ZU91dHNpZGUoKSkKICAgICAsIHNoYXBlTWFyZ2luKFJlbmRlclN0eWxlOjppbml0aWFsU2hhcGVN
YXJnaW4oKSkKICAgICAsIHNoYXBlSW1hZ2VUaHJlc2hvbGQoUmVuZGVyU3R5bGU6OmluaXRpYWxT
aGFwZUltYWdlVGhyZXNob2xkKCkpCkBAIC0xNTEsNiArMTUzLDggQEAgaW5saW5lIFN0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVS
YXJlTm9uSW4KICAgICAsIG1hc2tCb3hJbWFnZShvLm1hc2tCb3hJbWFnZSkKICAgICAsIHBhZ2VT
aXplKG8ucGFnZVNpemUpCiAgICAgLCBvYmplY3RQb3NpdGlvbihvLm9iamVjdFBvc2l0aW9uKQor
ICAgICwgb2Zmc2V0UGF0aChvLm9mZnNldFBhdGgpCisgICAgLCBvZmZzZXREaXN0YW5jZShvLm9m
ZnNldERpc3RhbmNlKQogICAgICwgc2hhcGVPdXRzaWRlKG8uc2hhcGVPdXRzaWRlKQogICAgICwg
c2hhcGVNYXJnaW4oby5zaGFwZU1hcmdpbikKICAgICAsIHNoYXBlSW1hZ2VUaHJlc2hvbGQoby5z
aGFwZUltYWdlVGhyZXNob2xkKQpAQCAtMjUxLDYgKzI1NSw4IEBAIGJvb2wgU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
JiBvKSBjCiAgICAgICAgICYmIG1hc2tCb3hJbWFnZSA9PSBvLm1hc2tCb3hJbWFnZQogICAgICAg
ICAmJiBwYWdlU2l6ZSA9PSBvLnBhZ2VTaXplCiAgICAgICAgICYmIG9iamVjdFBvc2l0aW9uID09
IG8ub2JqZWN0UG9zaXRpb24KKyAgICAgICAgJiYgYXJlUG9pbnRpbmdUb0VxdWFsRGF0YShvZmZz
ZXRQYXRoLCBvLm9mZnNldFBhdGgpCisgICAgICAgICYmIG9mZnNldERpc3RhbmNlID09IG8ub2Zm
c2V0RGlzdGFuY2UKICAgICAgICAgJiYgYXJlUG9pbnRpbmdUb0VxdWFsRGF0YShzaGFwZU91dHNp
ZGUsIG8uc2hhcGVPdXRzaWRlKQogICAgICAgICAmJiBzaGFwZU1hcmdpbiA9PSBvLnNoYXBlTWFy
Z2luCiAgICAgICAgICYmIHNoYXBlSW1hZ2VUaHJlc2hvbGQgPT0gby5zaGFwZUltYWdlVGhyZXNo
b2xkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRleCAxOWM1OTFiMmQxMjRjOTY1ZDg5N2ViYTU4MDUx
MTExNGE2YmM3NDM1Li4yZTM5MDQ2OTA2YTY4MGIyYWIxYzkzYTYyYThkNWU3ZjQ0M2FhNzRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhLmgKQEAgLTE0NCw2ICsxNDQsOSBAQCBwdWJsaWM6CiAgICAgTGVu
Z3RoU2l6ZSBwYWdlU2l6ZTsKICAgICBMZW5ndGhQb2ludCBvYmplY3RQb3NpdGlvbjsKIAorICAg
IFJlZlB0cjxCYXNpY1NoYXBlPiBvZmZzZXRQYXRoOworICAgIExlbmd0aCBvZmZzZXREaXN0YW5j
ZTsKKwogICAgIFJlZlB0cjxTaGFwZVZhbHVlPiBzaGFwZU91dHNpZGU7CiAgICAgTGVuZ3RoIHNo
YXBlTWFyZ2luOwogICAgIGZsb2F0IHNoYXBlSW1hZ2VUaHJlc2hvbGQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCmluZGV4IDUxNzJmMWM2YjRmODE0NWIz
YTZkZDJiOTFlNGI5MzcwYWVkZDM3ZGYuLjVhMzE2MGZjMTdiZGE5ZjIzNGJjMDI5NzQ2MGJiNGNi
NzZkZTE4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNv
bnZlcnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRl
ci5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOSBBZG9iZS4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTAsNyAr
OTEsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyBjb252ZXJ0U3RyaW5nT3JOb25lKEJ1
aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7CiAgICAgc3RhdGljIE9wdGlvblNldDxUZXh0
RW1waGFzaXNQb3NpdGlvbj4gY29udmVydFRleHRFbXBoYXNpc1Bvc2l0aW9uKEJ1aWxkZXJTdGF0
ZSYsIGNvbnN0IENTU1ZhbHVlJik7CiAgICAgc3RhdGljIFRleHRBbGlnbk1vZGUgY29udmVydFRl
eHRBbGlnbihCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYpOwotICAgIHN0YXRpYyBSZWZQ
dHI8Q2xpcFBhdGhPcGVyYXRpb24+IGNvbnZlcnRDbGlwUGF0aChCdWlsZGVyU3RhdGUmLCBjb25z
dCBDU1NWYWx1ZSYpOworICAgIHN0YXRpYyBSZWZQdHI8QmFzaWNTaGFwZT4gY29udmVydEJhc2lj
U2hhcGUoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmKTsKKyAgICBzdGF0aWMgUmVmUHRy
PENsaXBQYXRoT3BlcmF0aW9uPiBjb252ZXJ0QmFzaWNTaGFwZUdlb21ldHJ5Qm94KEJ1aWxkZXJT
dGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7CiAgICAgc3RhdGljIFJlc2l6ZSBjb252ZXJ0UmVzaXpl
KEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7CiAgICAgc3RhdGljIGludCBjb252ZXJ0
TWFycXVlZVJlcGV0aXRpb24oQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmKTsKICAgICBz
dGF0aWMgaW50IGNvbnZlcnRNYXJxdWVlU3BlZWQoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFs
dWUmKTsKQEAgLTU4NCw3ICs1ODYsMTcgQEAgaW5saW5lIFRleHRBbGlnbk1vZGUgQnVpbGRlckNv
bnZlcnRlcjo6Y29udmVydFRleHRBbGlnbihCdWlsZGVyU3RhdGUmIGJ1aWxkZXJTdGEKICAgICBy
ZXR1cm4gcGFyZW50U3R5bGUudGV4dEFsaWduKCk7CiB9CiAKLWlubGluZSBSZWZQdHI8Q2xpcFBh
dGhPcGVyYXRpb24+IEJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRDbGlwUGF0aChCdWlsZGVyU3Rh
dGUmIGJ1aWxkZXJTdGF0ZSwgY29uc3QgQ1NTVmFsdWUmIHZhbHVlKQoraW5saW5lIFJlZlB0cjxC
YXNpY1NoYXBlPiBCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0QmFzaWNTaGFwZShCdWlsZGVyU3Rh
dGUmIGJ1aWxkZXJTdGF0ZSwgY29uc3QgQ1NTVmFsdWUmIHZhbHVlKQoreworICAgIGlmIChpczxD
U1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKSB7CisgICAgICAgIGF1dG8mIHByaW1pdGl2ZVZhbHVl
ID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKTsKKyAgICAgICAgaWYgKHByaW1p
dGl2ZVZhbHVlLmlzU2hhcGUoKSkKKyAgICAgICAgICAgIHJldHVybiBiYXNpY1NoYXBlRm9yVmFs
dWUoYnVpbGRlclN0YXRlLmNzc1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoKSwgKnByaW1pdGl2ZVZh
bHVlLnNoYXBlVmFsdWUoKSk7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOworfQorCitpbmxp
bmUgUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0QmFz
aWNTaGFwZUdlb21ldHJ5Qm94KEJ1aWxkZXJTdGF0ZSYgYnVpbGRlclN0YXRlLCBjb25zdCBDU1NW
YWx1ZSYgdmFsdWUpCiB7CiAgICAgaWYgKGlzPENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkpIHsK
ICAgICAgICAgYXV0byYgcHJpbWl0aXZlVmFsdWUgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZT4odmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXgg
MzQ0OGNkYzRkNzE2M2ZlNzI4MzMyYzFkOGE2MWRjOTJhYzU5MTc0NS4uY2NlMjhhMmM1Y2ZhZjBm
OTFmN2RkZDYzYmJmYjc5YTAwMjZmZTQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVm
ZXJlbmNlcy55YW1sCkBAIC0xMzc3LDYgKzEzNzcsMTQgQEAgQ1NTQ3VzdG9tUHJvcGVydGllc0Fu
ZFZhbHVlc0VuYWJsZWQ6CiAgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVz
CiAgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKIAorTW90aW9uRW5hYmxlZDoKKyAgdHlwZTogYm9v
bAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiQ1NTIE9mZnNl
dCBwcm9wZXJ0aWVzIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgQ1NTIE9m
ZnNldCBwcm9wZXJ0aWVzIgorICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJl
cworICBjYXRlZ29yeTogaW50ZXJuYWwKKwogQ1NTUGFpbnRpbmdBUElFbmFibGVkOgogICB0eXBl
OiBib29sCiAgIGRlZmF1bHRWYWx1ZTogZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDBi
MjQ5ZDZlNmU5YjFjODEyMjI5YmNhYjNiZGMxYmRhODg5MmU0ZjYuLmMxMDM4YWFkODBjMjk2N2Rh
YzcwNWMzOGIyYzU2MzE4MjE2OWRmNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtMjU4LDYg
KzI1OCw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6Om92ZXJyaWRlQm9vbFByZWZlcmVuY2VGb3JU
ZXN0UnVubmVyKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlCiAgICAgaWYgKHByZWZlcmVuY2UgPT0g
IkNTU0N1c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFibGVkIikKICAgICAgICAgUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDU1NDdXN0b21Qcm9wZXJ0aWVzQW5k
VmFsdWVzRW5hYmxlZChlbmFibGVkKTsKIAorICAgIGlmIChwcmVmZXJlbmNlID09ICJNb3Rpb25F
bmFibGVkIikKKyAgICAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS5zZXRNb3Rpb25FbmFibGVkKGVuYWJsZWQpOworCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRU
SU5HX0NPTlRFWFQpCiAgICAgaWYgKHByZWZlcmVuY2UgPT0gIkxheW91dEZvcm1hdHRpbmdDb250
ZXh0RW5hYmxlZCIpCiAgICAgICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuc2V0TGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRFbmFibGVkKGVuYWJsZWQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmgKaW5kZXggNmI1YWQxMDAwOTY5ODMzZGZiYzM2NWE0ZGZkZmZiZDFjOWM5Njll
MC4uZjNmMmI4MTQ4NDEyMzUyZjU0NDdkYTcwMTc3MGUyYTA0Y2ZiZjliMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlz
UHJpdmF0ZS5oCkBAIC0yNzEsNiArMjcxLDcgQEAKICNkZWZpbmUgV2ViS2l0U2VydmVyVGltaW5n
RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRTZXJ2ZXJUaW1pbmdFbmFibGVkIgogI2RlZmlu
ZSBXZWJLaXRTZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxlZFByZWZlcmVuY2VL
ZXkgQCJXZWJLaXRTZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxlZCIKICNkZWZp
bmUgV2ViS2l0Q1NTTG9naWNhbEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTTG9naWNh
bEVuYWJsZWQiCisjZGVmaW5lIFdlYktpdE1vdGlvbkVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0TW90aW9uRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0QWRDbGlja0F0dHJpYnV0aW9uRW5hYmxl
ZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRBZENsaWNrQXR0cmlidXRpb25FbmFibGVkIgogI2RlZmlu
ZSBXZWJLaXRSZWZlcnJlclBvbGljeUF0dHJpYnV0ZUVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0UmVmZXJyZXJQb2xpY3lBdHRyaWJ1dGVFbmFibGVkIgogI2RlZmluZSBXZWJLaXRSZXNpemVP
YnNlcnZlckVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0UmVzaXplT2JzZXJ2ZXJFbmFibGVk
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
bW0KaW5kZXggODM2NjU3MzEzZTZmN2FhNjFiOTdmMjRlZGY4ODQ4NjA5M2ZmM2M1Ni4uYTY1YjBi
OWY1YzkwNzkwMWYwMDk0M2E2ZDNhNDc3ODVmOTE1MTEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC02NzAsNiArNjcwLDcg
QEAgKyAodm9pZClpbml0aWFsaXplCiAjZW5kaWYKICAgICAgICAgQFlFUywgV2ViS2l0U2VsZWN0
aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBA
Tk8sIFdlYktpdENTU0xvZ2ljYWxFbmFibGVkUHJlZmVyZW5jZUtleSwKKyAgICAgICAgQE5PLCBX
ZWJLaXRNb3Rpb25FbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgQE5PLCBXZWJLaXRBZENs
aWNrQXR0cmlidXRpb25FbmFibGVkUHJlZmVyZW5jZUtleSwKICNpZiBFTkFCTEUoSU5URVJTRUNU
SU9OX09CU0VSVkVSKQogICAgICAgICBATk8sIFdlYktpdEludGVyc2VjdGlvbk9ic2VydmVyRW5h
YmxlZFByZWZlcmVuY2VLZXksCkBAIC0zNDg4LDYgKzM0ODksMTYgQEAgLSAodm9pZClzZXRDU1NM
b2dpY2FsRW5hYmxlZDooQk9PTClmbGFnCiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZv
cktleTpXZWJLaXRDU1NMb2dpY2FsRW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCistIChCT09M
KW1vdGlvbkVuYWJsZWQKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJL
aXRNb3Rpb25FbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpc2V0TW90aW9uRW5h
YmxlZDooQk9PTClmbGFnCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpX
ZWJLaXRNb3Rpb25FbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKIC0gKEJPT0wpYWRDbGlja0F0
dHJpYnV0aW9uRW5hYmxlZAogewogICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5Oldl
YktpdEFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5o
CmluZGV4IDgxYmRmZThjZDQ4MTY5MTQxZWNjYzNkNDVkN2FlZGE2N2VjYWVmN2MuLjdlYzVhMTU1
YmVkYTU3NjljOTM0MTdiNjMzNDgwOGJhZWVkMDcwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNjAz
LDYgKzYwMyw5IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hh
bmdlZEludGVybmFsTm90aWZpY2F0aW9uIFdFQktJVF9ERVBSCiAtICh2b2lkKXNldENTU0xvZ2lj
YWxFbmFibGVkOihCT09MKWZsYWc7CiAtIChCT09MKWNzc0xvZ2ljYWxFbmFibGVkOwogCistICh2
b2lkKXNldE1vdGlvbkVuYWJsZWQ6KEJPT0wpZmxhZzsKKy0gKEJPT0wpbW90aW9uRW5hYmxlZDsK
KwogLSAoQk9PTClhZENsaWNrQXR0cmlidXRpb25FbmFibGVkOwogLSAodm9pZClzZXRBZENsaWNr
QXR0cmlidXRpb25FbmFibGVkOihCT09MKWZsYWc7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBjZGZmMDk5MTRhYmNhZTNiODQ0ZWE3NjY4ZDgxNDQ0
Y2VjMDA3MzNkLi5hMzA4ZGRhZGEwMGIxMDU0MWNhNTFmMjAwMGQwMDMzMjFjODM1MDdhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0zMTE3LDYgKzMx
MTcsOCBAQCAtICh2b2lkKV9wcmVmZXJlbmNlc0NoYW5nZWQ6KFdlYlByZWZlcmVuY2VzICopcHJl
ZmVyZW5jZXMKIAogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
c2V0Q1NTTG9naWNhbEVuYWJsZWQoW3ByZWZlcmVuY2VzIGNzc0xvZ2ljYWxFbmFibGVkXSk7CiAK
KyAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldE1vdGlvbkVu
YWJsZWQoW3ByZWZlcmVuY2VzIG1vdGlvbkVuYWJsZWRdKTsKKwogICAgIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0QWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZChb
cHJlZmVyZW5jZXMgYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZF0pOwogCiAgICAgc2V0dGluZ3Mu
c2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQoW3ByZWZlcmVuY2VzIGhpZGRl
blBhZ2VET01UaW1lclRocm90dGxpbmdFbmFibGVkXSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWYzOTgzYzBlMDVmMTVlOGRlMjE0MWI4NWE3
MTU0Y2Q0NDQzYjg3Yy4uOTYzMWU3NzkxZDJkMGFhMDlkODc5ZDdlOGFhZWJhMGM2ODgyZGVmYSAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDE5LTExLTA1ICBEaXJrIFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CisK
KyAgICAgICAgU3VwcG9ydCBwYXJzaW5nLCBjb21wdXRlZCBzdHlsZSBhbmQgcHJvcGVydHkgc3R5
bGUgZm9yIG9mZnNldCwgb2Zmc2V0LXBhdGgsIG9mZnNldC1kaXN0YW5jZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzODQ4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGltcGxlbWVudGF0aW9uIG9m
IHRoZSBNb3Rpb24gUGF0aCBzcGVjIGhhcHBlbnMgYmVoaW5kIGEgZmVhdHVyZSBmbGFnLgorICAg
ICAgICBFeHBvc2UgdGhlIGZlYXR1cmUgZmxhZyB0byB0aGUgdGVzdCBzdWl0ZS4KKworICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAgKFRlc3RPcHRpb25z
OjpUZXN0T3B0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaDoK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAg
IChzZXRXZWJQcmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKToKKwogMjAxOS0xMS0wNSAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TihyMjUyMDMxKTogbGF5b3V0IHRlc3RzIGZhaWwgdG8gcnVuIGluIG5vbiBhcHBsZSBwb3J0cyBh
ZnRlciByMjUyMDMxCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9u
cy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKaW5kZXggNTU2ZWVj
Mjc2NjM3ZTgxYjkzZjc3ZDk2NTkzNzVjZmMyYTQ5NTk1OS4uNTM4ZjNkOTAyYjIzYWU4OTUxOWY1
ZjA1OWE3MjE0MDlhMGU2OTE5NSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE9wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcApA
QCAtMTE3LDYgKzExNyw4IEBAIFRlc3RPcHRpb25zOjpUZXN0T3B0aW9ucyhjb25zdCBzdGQ6OnN0
cmluZyYgcGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgYWJzb2x1CiAgICAgICAgICAgICBl
bmFibGVXZWJHUFUgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAg
ICBlbHNlIGlmIChrZXkgPT0gImludGVybmFsOkNTU0xvZ2ljYWxFbmFibGVkIikKICAgICAgICAg
ICAgIGVuYWJsZUNTU0xvZ2ljYWwgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUp
OworICAgICAgICBlbHNlIGlmIChrZXkgPT0gImludGVybmFsOk1vdGlvbkVuYWJsZWQiKQorICAg
ICAgICAgICAgZW5hYmxlTW90aW9uID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVl
KTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6QWRDbGlja0F0dHJpYnV0
aW9uRW5hYmxlZCIpCiAgICAgICAgICAgICBhZENsaWNrQXR0cmlidXRpb25FbmFibGVkID0gcGFy
c2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09
ICJleHBlcmltZW50YWw6UmVzaXplT2JzZXJ2ZXJFbmFibGVkIikKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
T3B0aW9ucy5oCmluZGV4IGU1MzM1ZTgzMTE0ZTc5ZTViNTRkODYxYzNkMjNmZmNlYmJhNzBhMGIu
LjkyNWU1MzkxYjI0NmNkNjM5MzIxZDdiNzI3YzJjMDI0NGRmNTA4ZjcgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdE9wdGlvbnMuaApAQCAtNDgsNiArNDgsNyBAQCBzdHJ1Y3QgVGVzdE9wdGlvbnMgewog
ICAgIGJvb2wgZW5hYmxlU2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllcyB7IHRydWUgfTsK
ICAgICBib29sIGVuYWJsZVdlYkdQVSB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVDU1NMb2dp
Y2FsIHsgZmFsc2UgfTsKKyAgICBib29sIGVuYWJsZU1vdGlvbiB7IGZhbHNlIH07CiAgICAgYm9v
bCBhZENsaWNrQXR0cmlidXRpb25FbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZVJl
c2l6ZU9ic2VydmVyIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZUNvcmVNYXRoTUwgeyBmYWxz
ZSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVl
Lm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDI0
YzMyZjgzOWE2NzdhOTI5ODIwMTAzNTFmN2FiMTIxZjRlMGFlN2QuLmZkMzZjZTU1NTkwOTU1YTMz
ZDgxNmNmMWZiOWY3MTcwY2MyMTk2ZDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVt
cFJlbmRlclRyZWUubW0KQEAgLTEwMjUsNiArMTAyNSw3IEBAIHN0YXRpYyB2b2lkIHNldFdlYlBy
ZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAg
cHJlZmVyZW5jZXMuc2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQgPSBvcHRp
b25zLmVuYWJsZVNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXM7CiAgICAgcHJlZmVyZW5j
ZXMud2ViR1BVRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlV2ViR1BVOwogICAgIHByZWZlcmVuY2Vz
LkNTU0xvZ2ljYWxFbmFibGVkID0gb3B0aW9ucy5lbmFibGVDU1NMb2dpY2FsOworICAgIHByZWZl
cmVuY2VzLk1vdGlvbkVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZU1vdGlvbjsKICAgICBwcmVmZXJl
bmNlcy5hZENsaWNrQXR0cmlidXRpb25FbmFibGVkID0gb3B0aW9ucy5hZENsaWNrQXR0cmlidXRp
b25FbmFibGVkOwogICAgIHByZWZlcmVuY2VzLnJlc2l6ZU9ic2VydmVyRW5hYmxlZCA9IG9wdGlv
bnMuZW5hYmxlUmVzaXplT2JzZXJ2ZXI7CiAgICAgcHJlZmVyZW5jZXMuY29yZU1hdGhNTEVuYWJs
ZWQgPSBvcHRpb25zLmVuYWJsZUNvcmVNYXRoTUw7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzFmYTlhZDRhOThjOWFjMTc3
NDBmYjc5MTkzODgxN2U1OTAwMTA1MS4uMmE3MzAwMzBhMGVkZjc4MzhlYTM1ZDQyMWZmYTQ1Nzky
MTY4N2U2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE5LTExLTA1ICBEaXJrIFNjaHVsemUg
IDxrcml0QHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3VwcG9ydCBwYXJzaW5nLCBjb21wdXRlZCBz
dHlsZSBhbmQgcHJvcGVydHkgc3R5bGUgZm9yIG9mZnNldCwgb2Zmc2V0LXBhdGgsIG9mZnNldC1k
aXN0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAzODQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIHRlc3RzIGZvciBwYXJzaW5nLCBjb21wdXRlZCBzdHlsZSBhbmQgcHJvcGVydHkgc3R5bGUg
Zm9yIHRoZQorICAgICAgICBwcm9wZXJ0aWVzOiBvZmZzZXQsIG9mZnNldC1wYXRoLCBvZmZzZXQt
ZGlzdGFuY2UuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9vZmZzZXQvcGFyc2luZy1vZmZzZXQtZGlz
dGFuY2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9vZmZzZXQvcGFy
c2luZy1vZmZzZXQtZGlzdGFuY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mvb2Zm
c2V0L3BhcnNpbmctb2Zmc2V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9j
c3Mvb2Zmc2V0L3BhcnNpbmctb2Zmc2V0LXBhdGgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2Nzcy9vZmZzZXQvcGFyc2luZy1vZmZzZXQtcGF0aC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2Nzcy9vZmZzZXQvcGFyc2luZy1vZmZzZXQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViZXhwb3NlZC9jc3MtcHJvcGVydGllcy1iZWhpbmQtZmxhZ3MtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYmV4cG9zZWQvY3NzLXByb3BlcnRpZXMtYmVoaW5kLWZsYWdzLmh0bWw6
CisKIDIwMTktMTEtMDUgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIG1wNCB2aWRlbyBlbGVtZW50IGJyb2tlbiB3aXRoIHNlcnZpY2Ugd29ya2VyCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9vZmZzZXQvcGFyc2luZy1vZmZzZXQtZGlzdGFuY2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvb2Zmc2V0L3BhcnNpbmctb2Zmc2V0
LWRpc3RhbmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODAyZDkxMWNmMTVlZDFiMTUxYjk4
ZjNhYjg3MGRkYTI1MDc5Y2E5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3Mvb2Zmc2V0L3BhcnNpbmctb2Zmc2V0LWRpc3RhbmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDM3IEBACitUZXN0IHBhcnNpbmcgYW5kIGNvbXB1dGVkIHN0eWxlIG9mIG9mZnNldC1kaXN0YW5j
ZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBpbm5lclN0eWxlKCJvZmZz
ZXQtZGlzdGFuY2UiLCAiMCIpIGlzICIwcHgiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldC1kaXN0
YW5jZSIsICIyMHB4IikgaXMgIjIwcHgiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldC1kaXN0YW5j
ZSIsICIyMCUiKSBpcyAiMjAlIgorUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAi
MmUxJSIpIGlzICIyMCUiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldC1kaXN0YW5jZSIsICIyMDBl
LTFweCIpIGlzICIyMHB4IgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAi
MCIpIGlzICIwcHgiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldC1kaXN0YW5jZSIsICIyMHB4
IikgaXMgIjIwcHgiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldC1kaXN0YW5jZSIsICIyMCUi
KSBpcyAiMjAlIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAiMmUxJSIp
IGlzICIyMCUiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldC1kaXN0YW5jZSIsICIyMDBlLTFw
eCIpIGlzICIyMHB4IgorUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAicGF0aCgn
TTAgMCcpIDIwcHgiKSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQtZGlzdGFuY2Ui
LCAicGF0aCgnTTAgMCcpIDIwcHgiKSBpcyAiMHB4IgorUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQt
ZGlzdGFuY2UiLCAiMjBweCBwYXRoKCdNMCAwJykiKSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJvZmZzZXQtZGlzdGFuY2UiLCAiMjBweCBwYXRoKCdNMCAwJykiKSBpcyAiMHB4IgorUEFTUyBp
bm5lclN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAiYXV0byIpIGlzICIiCitQQVNTIGNvbXB1dGVk
U3R5bGUoIm9mZnNldC1kaXN0YW5jZSIsICJhdXRvIikgaXMgIjBweCIKK1BBU1MgaW5uZXJTdHls
ZSgib2Zmc2V0LWRpc3RhbmNlIiwgImF1dG8iKSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxlKCJv
ZmZzZXQtZGlzdGFuY2UiLCAiYXV0byIpIGlzICIwcHgiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNl
dC1kaXN0YW5jZSIsICItMjBweCIpIGlzICIiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldC1k
aXN0YW5jZSIsICItMjBweCIpIGlzICIwcHgiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldC1kaXN0
YW5jZSIsICItMjAlIikgaXMgIiIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0LWRpc3RhbmNl
IiwgIi0yMCUiKSBpcyAiMHB4IgorUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAi
J3N0ciciKSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAiJ3N0
ciciKSBpcyAiMHB4IgorUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAidG9wIGxl
ZnQiKSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAidG9wIGxl
ZnQiKSBpcyAiMHB4IgorUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAicGF0aCgn
TTEwMCAxMDAgMjAwIDIwMCAwIDIwMCB6JykiKSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxlKCJv
ZmZzZXQtZGlzdGFuY2UiLCAicGF0aCgnTTEwMCAxMDAgMjAwIDIwMCAwIDIwMCB6JykiKSBpcyAi
MHB4IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL29mZnNldC9wYXJzaW5nLW9mZnNldC1k
aXN0YW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvb2Zmc2V0L3BhcnNpbmctb2Zmc2V0
LWRpc3RhbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzYyODU1N2NlMzhlMGMzNjM2ZjlhMDhjZDExYTk1
N2MxMmI2OTM4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL29mZnNl
dC9wYXJzaW5nLW9mZnNldC1kaXN0YW5jZS5odG1sCkBAIC0wLDAgKzEsNzAgQEAKKzwhRE9DVFlQ
RSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaW50ZXJuYWw6TW90aW9uRW5hYmxlZD10
cnVlIF0gLS0+Cis8aHRtbD4KKzxzdHlsZT4KKyogeyBmb250LXNpemU6IDE2cHg7IH0KK2RpdiB7
IGZvbnQtc2l6ZTogOHB4OyB9Cis8L3N0eWxlPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbignVGVzdCBwYXJzaW5nIGFuZCBjb21wdXRlZCBzdHlsZSBvZiBvZmZzZXQtZGlzdGFuY2Un
KTsKKworZnVuY3Rpb24gY29tcHV0ZWRTdHlsZShwcm9wZXJ0eSwgdmFsdWUpIHsKKyAgICB2YXIg
ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChkaXYpOworICAgIGRpdi5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFs
dWUpOworICAgIHZhciBjb21wdXRlZFZhbHVlID0gZ2V0Q29tcHV0ZWRTdHlsZShkaXYpLmdldFBy
b3BlcnR5VmFsdWUocHJvcGVydHkpOworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZGl2
KTsKKyAgICByZXR1cm4gY29tcHV0ZWRWYWx1ZTsKK30KKworZnVuY3Rpb24gaW5uZXJTdHlsZShw
cm9wZXJ0eSwgdmFsdWUpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7CisgICAgZGl2LnN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7CisgICAg
cmV0dXJuIGRpdi5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKK30KKworZnVuY3Rp
b24gdGVzdENvbXB1dGVkKHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0ZWQpIHsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5bGUoIicgKyBwcm9wZXJ0eSArICciLCAiJyArIHZh
bHVlICsgJyIpJywgZXhwZWN0ZWQpOworfQorCitmdW5jdGlvbiB0ZXN0SW5uZXIocHJvcGVydHks
IHZhbHVlLCBleHBlY3RlZCkgeworICAgIGlmIChleHBlY3RlZCA9PT0gbnVsbCkKKyAgICAgICAg
ZXhwZWN0ZWQgPSAiIjsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lubmVyU3R5bGUoIicg
KyBwcm9wZXJ0eSArICciLCAiJyArIHZhbHVlICsgJyIpJywgZXhwZWN0ZWQpOworfQorCitmdW5j
dGlvbiBuZWdhdGl2ZVRlc3QocHJvcGVydHksIHZhbHVlKSB7CisgICAgdGVzdElubmVyKHByb3Bl
cnR5LCB2YWx1ZSwgbnVsbCk7CisgICAgdGVzdENvbXB1dGVkKHByb3BlcnR5LCB2YWx1ZSwgJzBw
eCcpOworfQorCisvLyBQcm9wZXJ0eSBzdHlsZQordGVzdElubmVyKCJvZmZzZXQtZGlzdGFuY2Ui
LCAiMCIsICIwcHgiKTsKK3Rlc3RJbm5lcigib2Zmc2V0LWRpc3RhbmNlIiwgIjIwcHgiLCAiMjBw
eCIpOwordGVzdElubmVyKCJvZmZzZXQtZGlzdGFuY2UiLCAiMjAlIiwgIjIwJSIpOwordGVzdElu
bmVyKCJvZmZzZXQtZGlzdGFuY2UiLCAiMmUxJSIsICIyMCUiKTsKK3Rlc3RJbm5lcigib2Zmc2V0
LWRpc3RhbmNlIiwgIjIwMGUtMXB4IiwgIjIwcHgiKTsKKworLy8gQ29tcHV0ZWQgc3R5bGUKK3Rl
c3RDb21wdXRlZCgib2Zmc2V0LWRpc3RhbmNlIiwgIjAiLCAiMHB4Iik7Cit0ZXN0Q29tcHV0ZWQo
Im9mZnNldC1kaXN0YW5jZSIsICIyMHB4IiwgIjIwcHgiKTsKK3Rlc3RDb21wdXRlZCgib2Zmc2V0
LWRpc3RhbmNlIiwgIjIwJSIsICIyMCUiKTsKK3Rlc3RDb21wdXRlZCgib2Zmc2V0LWRpc3RhbmNl
IiwgIjJlMSUiLCAiMjAlIik7Cit0ZXN0Q29tcHV0ZWQoIm9mZnNldC1kaXN0YW5jZSIsICIyMDBl
LTFweCIsICIyMHB4Iik7CisKKy8vIGludmFsaWQKK25lZ2F0aXZlVGVzdCgib2Zmc2V0LWRpc3Rh
bmNlIiwgInBhdGgoJ00wIDAnKSAyMHB4Iik7CituZWdhdGl2ZVRlc3QoIm9mZnNldC1kaXN0YW5j
ZSIsICIyMHB4IHBhdGgoJ00wIDAnKSIpOworbmVnYXRpdmVUZXN0KCJvZmZzZXQtZGlzdGFuY2Ui
LCAiYXV0byIpOworbmVnYXRpdmVUZXN0KCJvZmZzZXQtZGlzdGFuY2UiLCAiYXV0byIpOworbmVn
YXRpdmVUZXN0KCJvZmZzZXQtZGlzdGFuY2UiLCAiLTIwcHgiKTsKK25lZ2F0aXZlVGVzdCgib2Zm
c2V0LWRpc3RhbmNlIiwgIi0yMCUiKTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0LWRpc3RhbmNlIiwg
IidzdHInIik7CituZWdhdGl2ZVRlc3QoIm9mZnNldC1kaXN0YW5jZSIsICJ0b3AgbGVmdCIpOwor
bmVnYXRpdmVUZXN0KCJvZmZzZXQtZGlzdGFuY2UiLCAicGF0aCgnTTEwMCAxMDAgMjAwIDIwMCAw
IDIwMCB6JykiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9vZmZzZXQvcGFyc2luZy1vZmZzZXQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvb2Zmc2V0L3BhcnNpbmctb2Zmc2V0LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xMzFiNmFiMDk5NGI4MmU3NWUzNjkzMzUwZjE2YjgyN2Y2MTI4YzE1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvb2Zmc2V0L3BhcnNpbmctb2Zm
c2V0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM5IEBACitUZXN0IHBhcnNpbmcgYW5kIGNvbXB1
dGVkIHN0eWxlIG9mIG9mZnNldAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBpbm5lclN0eWxlKCJvZmZzZXQiLCAibm9uZSIpIGlzICJub25lIgorUEFTUyBpbm5lclN0eWxl
KCJvZmZzZXQiLCAicGF0aCgnTTAgMCBMIDEwMCAwIEwgMTAwIDEwMHonKSIpIGlzICJwYXRoKFwi
TSAwIDAgTCAxMDAgMCBMIDEwMCAxMDAgWlwiKSIKK1BBU1MgaW5uZXJTdHlsZSgib2Zmc2V0Iiwg
InBhdGgoJ00wIDAgTCAxMDAgMCBMIDEwMCAxMDAnKSIpIGlzICJwYXRoKFwiTSAwIDAgTCAxMDAg
MCBMIDEwMCAxMDBcIikiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldCIsICJwYXRoKCdNMCAwJyki
KSBpcyAicGF0aChcIk0gMCAwXCIpIgorUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQiLCAicGF0aCgn
TTAgMCBMIDEwMCAwIEwgMTAwIDEwMHonKSAyMHB4IikgaXMgInBhdGgoXCJNIDAgMCBMIDEwMCAw
IEwgMTAwIDEwMCBaXCIpIDIwcHgiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldCIsICJub25l
IikgaXMgIm5vbmUgMHB4IgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQiLCAicGF0aCgnTTAg
MCBMIDEwMCAwIEwgMTAwIDEwMHonKSAyMHB4IikgaXMgInBhdGgoXCJNIDAgMCBMIDEwMCAwIEwg
MTAwIDEwMCBaXCIpIDIwcHgiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldCIsICJwYXRoKCdN
MCAwIEwgMTAwIDAgTCAxMDAgMTAweicpIikgaXMgInBhdGgoXCJNIDAgMCBMIDEwMCAwIEwgMTAw
IDEwMCBaXCIpIDBweCIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0IiwgInBhdGgoJ00wIDAg
TCAxMDAgMCBMIDEwMCAxMDAnKSIpIGlzICJwYXRoKFwiTSAwIDAgTCAxMDAgMCBMIDEwMCAxMDBc
IikgMHB4IgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQiLCAicGF0aCgnTTAgMCcpIikgaXMg
InBhdGgoXCJNIDAgMFwiKSAwcHgiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldCIsICIwIikgaXMg
IiIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0IiwgIjAiKSBpcyAibm9uZSAwcHgiCitQQVNT
IGlubmVyU3R5bGUoIm9mZnNldCIsICIyMHB4IikgaXMgIiIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
b2Zmc2V0IiwgIjIwcHgiKSBpcyAibm9uZSAwcHgiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldCIs
ICIyMCUiKSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQiLCAiMjAlIikgaXMgIm5v
bmUgMHB4IgorUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQiLCAiLTIwcHgiKSBpcyAiIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJvZmZzZXQiLCAiLTIwcHgiKSBpcyAibm9uZSAwcHgiCitQQVNTIGlubmVy
U3R5bGUoIm9mZnNldCIsICItMjAlIikgaXMgIiIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0
IiwgIi0yMCUiKSBpcyAibm9uZSAwcHgiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldCIsICIyZTEl
IikgaXMgIiIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0IiwgIjJlMSUiKSBpcyAibm9uZSAw
cHgiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldCIsICIyZTElIikgaXMgIiIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgib2Zmc2V0IiwgIjJlMSUiKSBpcyAibm9uZSAwcHgiCitQQVNTIGlubmVyU3R5bGUo
Im9mZnNldCIsICIyMDBlLTFweCIpIGlzICIiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldCIs
ICIyMDBlLTFweCIpIGlzICJub25lIDBweCIKK1BBU1MgaW5uZXJTdHlsZSgib2Zmc2V0IiwgInBh
dGgoJ00wIDAnKSBub25zZW5zZSIpIGlzICIiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldCIs
ICJwYXRoKCdNMCAwJykgbm9uc2Vuc2UiKSBpcyAibm9uZSAwcHgiCitQQVNTIGlubmVyU3R5bGUo
Im9mZnNldCIsICIyMHB4IHBhdGgoJ00wIDAgTCAxMDAgMCBMIDEwMCAxMDB6JykiKSBpcyAiIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQiLCAiMjBweCBwYXRoKCdNMCAwIEwgMTAwIDAgTCAx
MDAgMTAweicpIikgaXMgIm5vbmUgMHB4IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL29m
ZnNldC9wYXJzaW5nLW9mZnNldC1wYXRoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL29mZnNldC9wYXJzaW5nLW9mZnNldC1wYXRoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
NjQyZDAwNDY1ODAzNjQzNTcxOWUzNjhmOGU3M2UxYmVhMGMzZDQyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvb2Zmc2V0L3BhcnNpbmctb2Zmc2V0LXBhdGgtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNDMgQEAKK1Rlc3QgcGFyc2luZyBhbmQgY29tcHV0ZWQgc3R5bGUg
b2Ygb2Zmc2V0LXBhdGgKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW5u
ZXJTdHlsZSgib2Zmc2V0LXBhdGgiLCAibm9uZSIpIGlzICJub25lIgorUEFTUyBpbm5lclN0eWxl
KCJvZmZzZXQtcGF0aCIsICJwYXRoKCdNMCAwIEwgMTAwIDAgTCAxMDAgMTAweicpIikgaXMgInBh
dGgoXCJNIDAgMCBMIDEwMCAwIEwgMTAwIDEwMCBaXCIpIgorUEFTUyBpbm5lclN0eWxlKCJvZmZz
ZXQtcGF0aCIsICJwYXRoKCdNMCAwIEwgMTAwIDAgTCAxMDAgMTAwJykiKSBpcyAicGF0aChcIk0g
MCAwIEwgMTAwIDAgTCAxMDAgMTAwXCIpIgorUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQtcGF0aCIs
ICJwYXRoKCdNMCAwJykiKSBpcyAicGF0aChcIk0gMCAwXCIpIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJvZmZzZXQtcGF0aCIsICJub25lIikgaXMgIm5vbmUiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9m
ZnNldC1wYXRoIiwgInBhdGgoJ00wIDAgTCAxMDAgMCBMIDEwMCAxMDB6JykiKSBpcyAicGF0aChc
Ik0gMCAwIEwgMTAwIDAgTCAxMDAgMTAwIFpcIikiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNl
dC1wYXRoIiwgInBhdGgoJ00wIDAgTCAxMDAgMCBMIDEwMCAxMDAnKSIpIGlzICJwYXRoKFwiTSAw
IDAgTCAxMDAgMCBMIDEwMCAxMDBcIikiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldC1wYXRo
IiwgInBhdGgoJ00wIDAnKSIpIGlzICJwYXRoKFwiTSAwIDBcIikiCitQQVNTIGlubmVyU3R5bGUo
Im9mZnNldC1wYXRoIiwgImF1dG8iKSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQt
cGF0aCIsICJhdXRvIikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldC1wYXRoIiwg
InBhdGgoKSIpIGlzICIiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldC1wYXRoIiwgInBhdGgo
KSIpIGlzICJub25lIgorUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQtcGF0aCIsICJwYXRoKCdNMCAw
Jykgbm9uZSIpIGlzICIiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldC1wYXRoIiwgInBhdGgo
J00wIDAnKSBub25lIikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldC1wYXRoIiwg
Im5vbmUgcGF0aCgnTTAgMCcpIikgaXMgIiIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0LXBh
dGgiLCAibm9uZSBwYXRoKCdNMCAwJykiKSBpcyAibm9uZSIKK1BBU1MgaW5uZXJTdHlsZSgib2Zm
c2V0LXBhdGgiLCAicGF0aCgnTTAgMCcpIHBhdGgoJ00wIDAnKSIpIGlzICIiCitQQVNTIGNvbXB1
dGVkU3R5bGUoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAnKSBwYXRoKCdNMCAwJykiKSBpcyAi
bm9uZSIKK1BBU1MgaW5uZXJTdHlsZSgib2Zmc2V0LXBhdGgiLCAibm9uZSBub25lIikgaXMgIiIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0LXBhdGgiLCAibm9uZSBub25lIikgaXMgIm5vbmUi
CitQQVNTIGlubmVyU3R5bGUoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAnKSAyMHB4IikgaXMg
IiIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0LXBhdGgiLCAicGF0aCgnTTAgMCcpIDIwcHgi
KSBpcyAibm9uZSIKK1BBU1MgaW5uZXJTdHlsZSgib2Zmc2V0LXBhdGgiLCAicGF0aCgnTTAgMCcp
IDIwJSIpIGlzICIiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00w
IDAnKSAyMCUiKSBpcyAibm9uZSIKK1BBU1MgaW5uZXJTdHlsZSgib2Zmc2V0LXBhdGgiLCAidXJs
KCNzaGFwZSkiKSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQtcGF0aCIsICJ1cmwo
I3NoYXBlKSIpIGlzICJub25lIgorUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQtcGF0aCIsICJjaXJj
bGUoKSIpIGlzICIiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldC1wYXRoIiwgImNpcmNsZSgp
IikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldC1wYXRoIiwgImVsbGlwc2UoKSIp
IGlzICIiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldC1wYXRoIiwgImVsbGlwc2UoKSIpIGlz
ICJub25lIgorUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQtcGF0aCIsICJpbnNldCgpIikgaXMgIiIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0LXBhdGgiLCAiaW5zZXQoKSIpIGlzICJub25lIgor
UEFTUyBpbm5lclN0eWxlKCJvZmZzZXQtcGF0aCIsICJyZWN0YW5nbGUoKSIpIGlzICIiCitQQVNT
IGNvbXB1dGVkU3R5bGUoIm9mZnNldC1wYXRoIiwgInJlY3RhbmdsZSgpIikgaXMgIm5vbmUiCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvb2Zmc2V0L3BhcnNpbmctb2Zmc2V0LXBhdGguaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL29mZnNldC9wYXJzaW5nLW9mZnNldC1wYXRoLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDk0YzMwM2Q4ZmFhNjhkZDcyMzIzNGUwMTZjMGZlODBlYjNlYWI0MwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL29mZnNldC9wYXJzaW5nLW9mZnNl
dC1wYXRoLmh0bWwKQEAgLTAsMCArMSw3NCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBpbnRlcm5hbDpNb3Rpb25FbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgor
PHN0eWxlPgorKiB7IGZvbnQtc2l6ZTogMTZweDsgfQorZGl2IHsgZm9udC1zaXplOiA4cHg7IH0K
Kzwvc3R5bGU+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHBhcnNpbmcg
YW5kIGNvbXB1dGVkIHN0eWxlIG9mIG9mZnNldC1wYXRoJyk7CisKK2Z1bmN0aW9uIGNvbXB1dGVk
U3R5bGUocHJvcGVydHksIHZhbHVlKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICBk
aXYuc3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHksIHZhbHVlKTsKKyAgICB2YXIgY29tcHV0ZWRW
YWx1ZSA9IGdldENvbXB1dGVkU3R5bGUoZGl2KS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsK
KyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7CisgICAgcmV0dXJuIGNvbXB1dGVk
VmFsdWU7Cit9CisKK2Z1bmN0aW9uIGlubmVyU3R5bGUocHJvcGVydHksIHZhbHVlKSB7CisgICAg
dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRpdi5zdHlsZS5z
ZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpOworICAgIHJldHVybiBkaXYuc3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZShwcm9wZXJ0eSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RDb21wdXRlZChwcm9wZXJ0
eSwgdmFsdWUsIGV4cGVjdGVkKSB7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21wdXRl
ZFN0eWxlKCInICsgcHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScsIGV4cGVjdGVkKTsK
K30KKworZnVuY3Rpb24gdGVzdElubmVyKHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0ZWQpIHsKKyAg
ICBpZiAoZXhwZWN0ZWQgPT09IG51bGwpCisgICAgICAgIGV4cGVjdGVkID0gIiI7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCdpbm5lclN0eWxlKCInICsgcHJvcGVydHkgKyAnIiwgIicgKyB2
YWx1ZSArICciKScsIGV4cGVjdGVkKTsKK30KKworZnVuY3Rpb24gbmVnYXRpdmVUZXN0KHByb3Bl
cnR5LCB2YWx1ZSkgeworICAgIHRlc3RJbm5lcihwcm9wZXJ0eSwgdmFsdWUsIG51bGwpOworICAg
IHRlc3RDb21wdXRlZChwcm9wZXJ0eSwgdmFsdWUsICdub25lJyk7Cit9CisKKy8vIFByb3BlcnR5
IHN0eWxlCit0ZXN0SW5uZXIoIm9mZnNldC1wYXRoIiwgIm5vbmUiLCAibm9uZSIpOwordGVzdElu
bmVyKCJvZmZzZXQtcGF0aCIsICJwYXRoKCdNMCAwIEwgMTAwIDAgTCAxMDAgMTAweicpIiwgInBh
dGgoXCJNIDAgMCBMIDEwMCAwIEwgMTAwIDEwMCBaXCIpIik7Cit0ZXN0SW5uZXIoIm9mZnNldC1w
YXRoIiwgInBhdGgoJ00wIDAgTCAxMDAgMCBMIDEwMCAxMDAnKSIsICJwYXRoKFwiTSAwIDAgTCAx
MDAgMCBMIDEwMCAxMDBcIikiKTsKK3Rlc3RJbm5lcigib2Zmc2V0LXBhdGgiLCAicGF0aCgnTTAg
MCcpIiwgInBhdGgoXCJNIDAgMFwiKSIpOworCisvLyBDb21wdXRlZCBzdHlsZQordGVzdENvbXB1
dGVkKCJvZmZzZXQtcGF0aCIsICJub25lIiwgIm5vbmUiKTsKK3Rlc3RDb21wdXRlZCgib2Zmc2V0
LXBhdGgiLCAicGF0aCgnTTAgMCBMIDEwMCAwIEwgMTAwIDEwMHonKSIsICJwYXRoKFwiTSAwIDAg
TCAxMDAgMCBMIDEwMCAxMDAgWlwiKSIpOwordGVzdENvbXB1dGVkKCJvZmZzZXQtcGF0aCIsICJw
YXRoKCdNMCAwIEwgMTAwIDAgTCAxMDAgMTAwJykiLCAicGF0aChcIk0gMCAwIEwgMTAwIDAgTCAx
MDAgMTAwXCIpIik7Cit0ZXN0Q29tcHV0ZWQoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAnKSIs
ICJwYXRoKFwiTSAwIDBcIikiKTsKKworCisvLyBpbnZhbGlkCituZWdhdGl2ZVRlc3QoIm9mZnNl
dC1wYXRoIiwgImF1dG8iKTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0LXBhdGgiLCAicGF0aCgpIik7
CituZWdhdGl2ZVRlc3QoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAnKSBub25lIik7CituZWdh
dGl2ZVRlc3QoIm9mZnNldC1wYXRoIiwgIm5vbmUgcGF0aCgnTTAgMCcpIik7CituZWdhdGl2ZVRl
c3QoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAnKSBwYXRoKCdNMCAwJykiKTsKK25lZ2F0aXZl
VGVzdCgib2Zmc2V0LXBhdGgiLCAibm9uZSBub25lIik7CituZWdhdGl2ZVRlc3QoIm9mZnNldC1w
YXRoIiwgInBhdGgoJ00wIDAnKSAyMHB4Iik7CituZWdhdGl2ZVRlc3QoIm9mZnNldC1wYXRoIiwg
InBhdGgoJ00wIDAnKSAyMCUiKTsKKy8vIE1heSBnZXQgdmFsaWQgaW4gdGhlIGZ1dHVyZS4KK25l
Z2F0aXZlVGVzdCgib2Zmc2V0LXBhdGgiLCAidXJsKCNzaGFwZSkiKTsKK25lZ2F0aXZlVGVzdCgi
b2Zmc2V0LXBhdGgiLCAiY2lyY2xlKCkiKTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0LXBhdGgiLCAi
ZWxsaXBzZSgpIik7CituZWdhdGl2ZVRlc3QoIm9mZnNldC1wYXRoIiwgImluc2V0KCkiKTsKK25l
Z2F0aXZlVGVzdCgib2Zmc2V0LXBhdGgiLCAicmVjdGFuZ2xlKCkiKTsKKworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9vZmZz
ZXQvcGFyc2luZy1vZmZzZXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL29mZnNldC9wYXJz
aW5nLW9mZnNldC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0OTdlZDYwNWZjOGFhMTE0MTg5ZGVkNzNlZDQ4
YWQ4NzlmNTdiNzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9vZmZz
ZXQvcGFyc2luZy1vZmZzZXQuaHRtbApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD48
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGludGVybmFsOk1vdGlvbkVuYWJsZWQ9dHJ1ZSBdIC0t
PgorPGh0bWw+Cis8c3R5bGU+CisqIHsgZm9udC1zaXplOiAxNnB4OyB9CitkaXYgeyBmb250LXNp
emU6IDhweDsgfQorPC9zdHlsZT4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rl
c3QgcGFyc2luZyBhbmQgY29tcHV0ZWQgc3R5bGUgb2Ygb2Zmc2V0Jyk7CisKK2Z1bmN0aW9uIGNv
bXB1dGVkU3R5bGUocHJvcGVydHksIHZhbHVlKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsK
KyAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHksIHZhbHVlKTsKKyAgICB2YXIgY29t
cHV0ZWRWYWx1ZSA9IGdldENvbXB1dGVkU3R5bGUoZGl2KS5nZXRQcm9wZXJ0eVZhbHVlKHByb3Bl
cnR5KTsKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7CisgICAgcmV0dXJuIGNv
bXB1dGVkVmFsdWU7Cit9CisKK2Z1bmN0aW9uIGlubmVyU3R5bGUocHJvcGVydHksIHZhbHVlKSB7
CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRpdi5z
dHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpOworICAgIHJldHVybiBkaXYuc3R5bGUu
Z2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RDb21wdXRlZChw
cm9wZXJ0eSwgdmFsdWUsIGV4cGVjdGVkKSB7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdj
b21wdXRlZFN0eWxlKCInICsgcHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScsIGV4cGVj
dGVkKTsKK30KKworZnVuY3Rpb24gdGVzdElubmVyKHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0ZWQp
IHsKKyAgICBpZiAoZXhwZWN0ZWQgPT09IG51bGwpCisgICAgICAgIGV4cGVjdGVkID0gIiI7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbm5lclN0eWxlKCInICsgcHJvcGVydHkgKyAnIiwg
IicgKyB2YWx1ZSArICciKScsIGV4cGVjdGVkKTsKK30KKworZnVuY3Rpb24gbmVnYXRpdmVUZXN0
KHByb3BlcnR5LCB2YWx1ZSkgeworICAgIHRlc3RJbm5lcihwcm9wZXJ0eSwgdmFsdWUsIG51bGwp
OworICAgIHRlc3RDb21wdXRlZChwcm9wZXJ0eSwgdmFsdWUsICdub25lIDBweCcpOworfQorCisK
K3Rlc3RJbm5lcigib2Zmc2V0IiwgIm5vbmUiLCAibm9uZSIpOwordGVzdElubmVyKCJvZmZzZXQi
LCAicGF0aCgnTTAgMCBMIDEwMCAwIEwgMTAwIDEwMHonKSIsICJwYXRoKFwiTSAwIDAgTCAxMDAg
MCBMIDEwMCAxMDAgWlwiKSIpOwordGVzdElubmVyKCJvZmZzZXQiLCAicGF0aCgnTTAgMCBMIDEw
MCAwIEwgMTAwIDEwMCcpIiwgInBhdGgoXCJNIDAgMCBMIDEwMCAwIEwgMTAwIDEwMFwiKSIpOwor
dGVzdElubmVyKCJvZmZzZXQiLCAicGF0aCgnTTAgMCcpIiwgInBhdGgoXCJNIDAgMFwiKSIpOwor
dGVzdElubmVyKCJvZmZzZXQiLCAicGF0aCgnTTAgMCBMIDEwMCAwIEwgMTAwIDEwMHonKSAyMHB4
IiwgInBhdGgoXCJNIDAgMCBMIDEwMCAwIEwgMTAwIDEwMCBaXCIpIDIwcHgiKTsKKworLy8gQ29t
cHV0ZWQgc3R5bGUKK3Rlc3RDb21wdXRlZCgib2Zmc2V0IiwgIm5vbmUiLCAibm9uZSAwcHgiKTsK
K3Rlc3RDb21wdXRlZCgib2Zmc2V0IiwgInBhdGgoJ00wIDAgTCAxMDAgMCBMIDEwMCAxMDB6Jykg
MjBweCIsICJwYXRoKFwiTSAwIDAgTCAxMDAgMCBMIDEwMCAxMDAgWlwiKSAyMHB4Iik7Cit0ZXN0
Q29tcHV0ZWQoIm9mZnNldCIsICJwYXRoKCdNMCAwIEwgMTAwIDAgTCAxMDAgMTAweicpIiwgInBh
dGgoXCJNIDAgMCBMIDEwMCAwIEwgMTAwIDEwMCBaXCIpIDBweCIpOwordGVzdENvbXB1dGVkKCJv
ZmZzZXQiLCAicGF0aCgnTTAgMCBMIDEwMCAwIEwgMTAwIDEwMCcpIiwgInBhdGgoXCJNIDAgMCBM
IDEwMCAwIEwgMTAwIDEwMFwiKSAwcHgiKTsKK3Rlc3RDb21wdXRlZCgib2Zmc2V0IiwgInBhdGgo
J00wIDAnKSIsICJwYXRoKFwiTSAwIDBcIikgMHB4Iik7CisKKy8vIGludmFsaWQgc3R5bGUKK25l
Z2F0aXZlVGVzdCgib2Zmc2V0IiwgIjAiKTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0IiwgIjIwcHgi
KTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0IiwgIjIwJSIpOworbmVnYXRpdmVUZXN0KCJvZmZzZXQi
LCAiLTIwcHgiKTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0IiwgIi0yMCUiKTsKK25lZ2F0aXZlVGVz
dCgib2Zmc2V0IiwgIjJlMSUiKTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0IiwgIjJlMSUiKTsKK25l
Z2F0aXZlVGVzdCgib2Zmc2V0IiwgIjIwMGUtMXB4Iik7CituZWdhdGl2ZVRlc3QoIm9mZnNldCIs
ICJwYXRoKCdNMCAwJykgbm9uc2Vuc2UiKTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0IiwgIjIwcHgg
cGF0aCgnTTAgMCBMIDEwMCAwIEwgMTAwIDEwMHonKSIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmV4cG9zZWQvY3NzLXByb3Bl
cnRpZXMtYmVoaW5kLWZsYWdzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmV4cG9zZWQv
Y3NzLXByb3BlcnRpZXMtYmVoaW5kLWZsYWdzLWV4cGVjdGVkLnR4dAppbmRleCAzYTM2N2I5MzQ2
ODFjNWVjY2I1YTM3NWI4ZjRiZjY2Y2Q5Y2Y3NTY0Li4xZThmMzVlOWZjMWM3NmVhMTc5ZTAyMjZm
NGQ5YWZhZDNlMDQwYmUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJleHBvc2VkL2Nzcy1w
cm9wZXJ0aWVzLWJlaGluZC1mbGFncy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
ZXhwb3NlZC9jc3MtcHJvcGVydGllcy1iZWhpbmQtZmxhZ3MtZXhwZWN0ZWQudHh0CkBAIC0xOCw0
ICsxOCw3IEBAIFBBU1MgbWFyZ2luLWJsb2NrIGlzIG5vdCBleHBvc2VkCiBQQVNTIG1hcmdpbi1p
bmxpbmUgaXMgbm90IGV4cG9zZWQgCiBQQVNTIHBhZGRpbmctYmxvY2sgaXMgbm90IGV4cG9zZWQg
CiBQQVNTIHBhZGRpbmctaW5saW5lIGlzIG5vdCBleHBvc2VkIAorUEFTUyBvZmZzZXQgaXMgbm90
IGV4cG9zZWQgCitQQVNTIG9mZnNldC1wYXRoIGlzIG5vdCBleHBvc2VkIAorUEFTUyBvZmZzZXQt
ZGlzdGFuY2UgaXMgbm90IGV4cG9zZWQgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmV4
cG9zZWQvY3NzLXByb3BlcnRpZXMtYmVoaW5kLWZsYWdzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJl
eHBvc2VkL2Nzcy1wcm9wZXJ0aWVzLWJlaGluZC1mbGFncy5odG1sCmluZGV4IGNmZTM1YjM4Mzk2
YWE1Yjg5N2JkYjk3M2M4OTlhYzcyNzY2NTUyODQuLmM2YzRjMTE5NTg2ZTk5YjRjOGMwZjRlNDg3
MDIwNjgwODJmMGFhMjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmV4cG9zZWQvY3NzLXBy
b3BlcnRpZXMtYmVoaW5kLWZsYWdzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZXhwb3NlZC9j
c3MtcHJvcGVydGllcy1iZWhpbmQtZmxhZ3MuaHRtbApAQCAtMjMsNiArMjMsOSBAQCBsZXQgaGlk
ZGVuUHJvcGVydGllcyA9IFsKICAgICAibWFyZ2luLWlubGluZSIsCiAgICAgInBhZGRpbmctYmxv
Y2siLAogICAgICJwYWRkaW5nLWlubGluZSIsCisgICAgIm9mZnNldCIsCisgICAgIm9mZnNldC1w
YXRoIiwKKyAgICAib2Zmc2V0LWRpc3RhbmNlIiwKIF07CiBsZXQgZWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CiBsZXQge3N0eWxlfSA9IGVsZW1lbnQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383124</attachid>
            <date>2019-11-08 07:32:56 -0800</date>
            <delta_ts>2021-11-05 10:10:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203848-20191108163254.patch</filename>
            <type>text/plain</type>
            <size>50708</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY4NjgzYjAxZDY3ZWM5
MTA2OGI3ZjVmMTIyYWY5YmQ2YjIxN2IwNi4uZTc1NDVkMjM3OGY0ZDUwZjRlMDNkYTRhNGVkZTkx
YjUyNTFmZThiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE5LTExLTA1ICBEaXJr
IFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3VwcG9ydCBwYXJzaW5nLCBj
b21wdXRlZCBzdHlsZSBhbmQgcHJvcGVydHkgc3R5bGUgZm9yIG9mZnNldCwgb2Zmc2V0LXBhdGgs
IG9mZnNldC1kaXN0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAzODQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBwYXJzaW5nLCBjb21wdXRlZCBzdHls
ZSBhbmQgcHJvcGVydHkgc3R5bGUKKyAgICAgICAgZm9yIHRoZSBsb25naGFuZCBwcm9wZXJ0aWVz
OiBvZmZzZXQtcGF0aCwgb2Zmc2V0LWRpc3RhbmNlIGFuZCB0aGUKKyAgICAgICAgc2hvcnRoYW5k
IHByb3BlcnR5OiBvZmZzZXQKKworICAgICAgICBUaGUgaW1wbGVtZW50YXRpb24gaGFwcGVucyBi
ZWhpbmQgdGhlIGZlYXR1cmUgZmxhZzogbW90aW9uLgorCisgICAgICAgIFRoZSBsb25naGFuZCBv
ZmZzZXQtcm90YXRlIGdldHMgaW1wbGVtZW50ZWQgaW4gYSBzZXBhcmF0ZSBwYXRjaC4gCisKKyAg
ICAgICAgVGVzdHM6IGZhc3QvY3NzL29mZnNldC9wYXJzaW5nLW9mZnNldC1kaXN0YW5jZS5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2Nzcy9vZmZzZXQvcGFyc2luZy1vZmZzZXQtcGF0aC5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2Nzcy9vZmZzZXQvcGFyc2luZy1vZmZzZXQuaHRtbAorCisg
ICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5TdHlsZSk6
CisgICAgICAgICogY3NzL0NTU1Byb3BlcnRpZXMuanNvbjoKKyAgICAgICAgKiBjc3MvU3R5bGVQ
cm9wZXJ0aWVzLmNwcDoKKyAgICAgICAgICAgICAgICBBZGQgb2Zmc2V0IHNob3J0aGFuZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6Z2V0UHJvcGVydHlWYWx1ZSBjb25zdCk6
CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjb25zdW1lUGF0aFNoYXBlT3JOb25lKToKKyAgICAgICAgICAgICAgICBPbmx5IHBh
cnNlIG5vbmUgfCBwYXRoKCkgYXMgQmxpbmsgYW5kIEdlY2tvIGRvLgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUpOgorICAgICAgICAgICAgICAg
IEFkZCBsb25naGFuZHM6IG9mZnNldC1kaXN0YW5jZSBhbmQgb2Zmc2V0LXBhdGguCisgICAgICAg
IChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlcjo6Y29uc3VtZU9mZnNldFNob3J0aGFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaG9ydGhhbmQpOgorICAg
ICAgICAgICAgICAgIEFkZCBvZmZzZXQgc2hvcnRoYW5kLgorICAgICAgICAqIGNzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXIuaDoKKyAgICAgICAgKiBwYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaDogQWRkIG1vdGlvbiBmZWF0dXJlIGZsYWcuCisgICAgICAgIChXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXRDU1NNb3Rpb25QYXRoRW5hYmxlZCk6CisgICAgICAgIChXZWJD
b3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpjc3NNb3Rpb25QYXRoRW5hYmxlZCBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6IEFkZCBvZmZzZXREaXN0
YW5jZSBsZW5ndGggdmFsdWUKKyAgICAgICAgICAgICAgICBhbmQgb2Zmc2V0UGF0aCBCYXNpY1No
YXBlIHZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6Om9mZnNldFBhdGggY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6Om9mZnNldERpc3RhbmNlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRPZmZzZXREaXN0YW5jZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aW5pdGlhbE9mZnNldFBhdGgpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmluaXRpYWxPZmZzZXREaXN0YW5jZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0T2Zmc2V0UGF0aCk6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09
IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5oOgorICAgICAgICAqIHN0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRCYXNpY1NoYXBlKToK
KyAgICAgICAgICAgICAgICBDb252ZXJ0IGJhc2ljIHNoYXBlcyB3L28gYm91bmRpbmcgYm94ZXMu
IFRoZSBzcGVjIHJlcXVpcmVzCisgICAgICAgICAgICAgICAgc3VwcG9ydCBmb3IgYm91bmRpbmcg
Ym94ZXMgYnV0IG5laXRoZXIgQmxpbmsgbm9yIEdlY2tvCisgICAgICAgICAgICAgICAgaW1wbGVt
ZW50IHRoZW0uCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QnVpbGRlckNvbnZlcnRlcjo6Y29u
dmVydEJhc2ljU2hhcGVHZW9tZXRyeUJveCk6CisgICAgICAgICAgICAgICAgU2ltcGxlIHJlbmFt
aW5nIHRvIHJlZmxlY3QgdGhlIGJlaGF2aW9yIGluc3RlYWQgb2YgdGhlCisgICAgICAgICAgICAg
ICAgcHJvcGVydHkuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QnVpbGRlckNvbnZlcnRlcjo6
Y29udmVydENsaXBQYXRoKTogRGVsZXRlZC4KKwogMjAxOS0xMS0wNSAgeW91ZW5uIGZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgbXA0IHZpZGVvIGVsZW1lbnQgYnJva2VuIHdp
dGggc2VydmljZSB3b3JrZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzQwNGVhMDQzNWFhZDkyNzZhNjg5MzJhNTIy
ODZlMTc0NjVlZjMzOC4uMDc4ODkyMzU3ZTJlZWM0ZTg0NzUwMjQ3ZTYzNGRkMDBjZDlkMjJhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0xMS0wNSAgRGlyayBTY2h1bHplICA8a3Jp
dEB3ZWJraXQub3JnPgorCisgICAgICAgIFN1cHBvcnQgcGFyc2luZywgY29tcHV0ZWQgc3R5bGUg
YW5kIHByb3BlcnR5IHN0eWxlIGZvciBvZmZzZXQsIG9mZnNldC1wYXRoLCBvZmZzZXQtZGlzdGFu
Y2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzg0
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBp
bXBsZW1lbnRhdGlvbiBvZiB0aGUgTW90aW9uIFBhdGggc3BlYyBoYXBwZW5zIGJlaGluZCBhIGZl
YXR1cmUgZmxhZy4KKyAgICAgICAgRXhwb3NlIHRoZSBmZWF0dXJlIGZsYWcgdG8gdGhlIHRlc3Qg
c3VpdGUuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6Om92ZXJyaWRlQm9vbFByZWZlcmVuY2VGb3JUZXN0UnVu
bmVyKToKKwogMjAxOS0xMS0wNSAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBmb3IgIUVOQUJMRShNRURJQV9T
VFJFQU0pIGJ1aWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDgyNGI0MGZiZTJh
NmViYzUzNTc0NzQ1OTI4MTY1ZTI2ZjBiYzQzOWUuLjViN2VhYzZmMDM5YmRiYTU4YTIyMDE3MzI5
NGI5ZjM3ODIwNWUwZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MiBAQAorMjAxOS0xMS0wNSAgRGlyayBTY2h1bHplICA8a3JpdEB3ZWJraXQub3JnPgorCisgICAg
ICAgIFN1cHBvcnQgcGFyc2luZywgY29tcHV0ZWQgc3R5bGUgYW5kIHByb3BlcnR5IHN0eWxlIGZv
ciBvZmZzZXQsIG9mZnNldC1wYXRoLCBvZmZzZXQtZGlzdGFuY2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzg0OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUg
TW90aW9uIFBhdGggc3BlYyBoYXBwZW5zIGJlaGluZCBhIGZlYXR1cmUgZmxhZy4KKyAgICAgICAg
RXhwb3NlIHRoZSBmZWF0dXJlIGZsYWcgdG8gdGhlIHRlc3Qgc3VpdGUuCisKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
UHJlZmVyZW5jZXMubW06CisgICAgICAgICgrW1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKToK
KyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgY3NzTW90aW9uUGF0aEVuYWJsZWRdKToKKyAgICAg
ICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0Q1NTTW90aW9uUGF0aEVuYWJsZWQ6XSk6CisgICAgICAg
ICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dl
YlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKToKKwog
MjAxOS0xMS0wNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJFR1JFU1NJT04ocjI0Mzk0NykgRXBzb24gc29mdHdhcmUgdXBkYXRlciBmYWls
cyB0byBpbnN0YWxsIG5ldyB2ZXJzaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDRiYzIxYWUwYzZkMTAzMjUzYjhiOGM4
NzRkYjA0NjIyNjE3ODBiNjEuLjI2NzhkYTdkZDBhNDc2OTQ5OGVkZTQwZjhkZDZhYzMxYjcwZmYy
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwCkBAIC00LDcgKzQsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA3IEFsZXhleSBQ
cm9za3VyeWFrb3YgPGFwQHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgTmljaG9s
YXMgU2hhbmtzIDx3ZWJraXRAbmlja3NoYW5rcy5jb20+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
U2VuY2hhLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMsIDIwMTkgQWRvYmUuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYwpAQCAtMzAwNiw2ICszMDA2LDE2IEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ29tcHV0
ZWRTdHlsZUV4dHJhY3Rvcjo6dmFsdWVGb3JQcm9wZXJ0eUluU3R5bGUoY29uc3QgUmVuZGVyU3R5
CiAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoem9vbUFkanVzdGVkUGl4ZWxWYWx1ZUZvckxlbmd0
aChzdHlsZS5vYmplY3RQb3NpdGlvbigpLnkoKSwgc3R5bGUpKTsKICAgICAgICAgICAgIHJldHVy
biBsaXN0OwogICAgICAgICB9CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPZmZzZXRQYXRoOiB7
CisgICAgICAgICAgICBhdXRvKiBiYXNpY1NoYXBlID0gc3R5bGUub2Zmc2V0UGF0aCgpOworICAg
ICAgICAgICAgaWYgKCFiYXNpY1NoYXBlKQorICAgICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1
ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9uZSk7CisgICAgICAgICAgICBy
ZXR1cm4gdmFsdWVGb3JCYXNpY1NoYXBlKHN0eWxlLCAqYmFzaWNTaGFwZSk7CisgICAgICAgIH0K
KyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU9mZnNldERpc3RhbmNlOgorICAgICAgICAgICAgcmV0
dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5vZmZzZXREaXN0YW5jZSgpLCBzdHls
ZSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlPZmZzZXQ6CisgICAgICAgICAgICByZXR1cm4g
Z2V0Q1NTUHJvcGVydHlWYWx1ZXNGb3JTaG9ydGhhbmRQcm9wZXJ0aWVzKG9mZnNldFNob3J0aGFu
ZCgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU9wYWNpdHk6CiAgICAgICAgICAgICByZXR1
cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLm9wYWNpdHkoKSwgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19OVU1CRVIpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3JwaGFuczoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24gYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCmluZGV4IGJiYzliZWVkMDZmMmVmN2EzZDA5
NGE1NTJmZDBlZjZkNzFmNzkyNmQuLjBiYWUxNTVhZDk0ODY0ZDFkMjIyNGM1NGZiN2E2NzZjMmFj
OTczNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24K
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgpAQCAtMjEyOCw3ICsy
MTI4LDcgQEAKICAgICAgICAgICAgICAgICAiYWxpYXNlcyI6IFsKICAgICAgICAgICAgICAgICAg
ICAgIi13ZWJraXQtY2xpcC1wYXRoIgogICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAg
ICAgImNvbnZlcnRlciI6ICJDbGlwUGF0aCIKKyAgICAgICAgICAgICAgICAiY29udmVydGVyIjog
IkJhc2ljU2hhcGVHZW9tZXRyeUJveCIKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKICAgICAg
ICAgImNsaXAtcnVsZSI6IHsKQEAgLTMxMzQsNiArMzEzNCwzOSBAQAogICAgICAgICAgICAgICAg
ICJ1cmwiOiAiaHR0cHM6Ly93d3cudzMub3JnL1RSL2NzczMtaW1hZ2VzLyNvYmplY3QtcG9zaXRp
b24iCiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCisgICAgICAgICJvZmZzZXQiOiB7CisgICAg
ICAgICAgICAiY29kZWdlbi1wcm9wZXJ0aWVzIjogeworICAgICAgICAgICAgICAgICJydW50aW1l
LWZsYWciOiAiY3NzTW90aW9uUGF0aCIsCisgICAgICAgICAgICAgICAgImxvbmdoYW5kcyI6IFsK
KyAgICAgICAgICAgICAgICAgICAgIm9mZnNldC1wYXRoIiwKKyAgICAgICAgICAgICAgICAgICAg
Im9mZnNldC1kaXN0YW5jZSIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgImNhdGVnb3J5Ijog
ImNzcy1vZmZzZXQtcHJvcHMiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9kcmFm
dHMuZnh0Zi5vcmcvbW90aW9uLTEvI29mZnNldC1zaG9ydGhhbmQiCisgICAgICAgICAgICB9Cisg
ICAgICAgIH0sCisgICAgICAgICJvZmZzZXQtcGF0aCI6IHsKKyAgICAgICAgICAgICJjb2RlZ2Vu
LXByb3BlcnRpZXMiOiB7CisgICAgICAgICAgICAgICAgInJ1bnRpbWUtZmxhZyI6ICJjc3NNb3Rp
b25QYXRoIiwKKyAgICAgICAgICAgICAgICAiY29udmVydGVyIjogIkJhc2ljU2hhcGUiCisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAg
ICAgImNhdGVnb3J5IjogImNzcy1vZmZzZXQtcHJvcHMiLAorICAgICAgICAgICAgICAgICJ1cmwi
OiAiaHR0cHM6Ly9kcmFmdHMuZnh0Zi5vcmcvbW90aW9uLTEvI29mZnNldC1wYXRoLXByb3BlcnR5
IgorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAib2Zmc2V0LWRpc3RhbmNlIjog
eworICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAgICAgICAi
cnVudGltZS1mbGFnIjogImNzc01vdGlvblBhdGgiLAorICAgICAgICAgICAgICAgICJjb252ZXJ0
ZXIiOiAiTGVuZ3RoIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzcGVjaWZpY2F0aW9u
IjogeworICAgICAgICAgICAgICAgICJjYXRlZ29yeSI6ICJjc3Mtb2Zmc2V0LXByb3BzIiwKKyAg
ICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZHJhZnRzLmZ4dGYub3JnL21vdGlvbi0xLyNv
ZmZzZXQtZGlzdGFuY2UtcHJvcGVydHkiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCiAgICAg
ICAgICJvcGFjaXR5IjogewogICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKICAg
ICAgICAgICAgICAgICAiY29udmVydGVyIjogIk9wYWNpdHkiLApAQCAtNzEwMSw2ICs3MTM0LDEy
IEBACiAgICAgICAgICAgICAibG9uZ25hbWUiOiAiQ1NTIExpc3RzIGFuZCBDb3VudGVycyBNb2R1
bGUiLAogICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIvY3NzLWxpc3Rz
LTMvIgogICAgICAgICB9LAorICAgICAgICAiY3NzLW9mZnNldC1wcm9wcyI6IHsKKyAgICAgICAg
ICAgICJzaG9ydG5hbWUiOiAiTW90aW9uIFBhdGgiLAorICAgICAgICAgICAgImxvbmduYW1lIjog
Ik1vdGlvbiBQYXRoIE1vZHVsZSIsCisgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZHJhZnRz
LmZ4dGYub3JnL21vdGlvbi0xLyIsCisgICAgICAgICAgICAic3RhdHVzIjogImV4cGVyaW1lbnRh
bCIKKyAgICAgICAgfSwKICAgICAgICAgImNzcy1sb2dpY2FsLXByb3BzIjogewogICAgICAgICAg
ICAgInNob3J0bmFtZSI6ICJDU1MgTG9naWNhbCBQcm9wZXJ0aWVzIiwKICAgICAgICAgICAgICJs
b25nbmFtZSI6ICJDU1MgTG9naWNhbCBQcm9wZXJ0aWVzIE1vZHVsZSIsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVByb3BlcnRpZXMuY3BwCmluZGV4IDM1NzhjOWExZWJkYTY0ZmM3M2U5ZDE2OWMzNTM2
YzI3NWZlNDkzNTYuLjEwYTM1ODY1YWZkMDc3ZTFlYzEwZDVhNWFmMDQzZTU2NTEyYzc2YjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCkBAIC0yNTUsNiArMjU1LDggQEAg
U3RyaW5nIFN0eWxlUHJvcGVydGllczo6Z2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHBy
b3BlcnR5SUQpIGNvbnN0CiAgICAgICAgIHJldHVybiBnZXQyVmFsdWVzKG1hcmdpbklubGluZVNo
b3J0aGFuZCgpKTsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFyZ2luQ29sbGFwc2U6CiAg
ICAgICAgIHJldHVybiBnZXRTaG9ydGhhbmRWYWx1ZSh3ZWJraXRNYXJnaW5Db2xsYXBzZVNob3J0
aGFuZCgpKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5T2Zmc2V0OgorICAgICAgICByZXR1cm4gZ2V0
U2hvcnRoYW5kVmFsdWUob2Zmc2V0U2hvcnRoYW5kKCkpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlP
dmVyZmxvdzoKICAgICAgICAgcmV0dXJuIGdldDJWYWx1ZXMob3ZlcmZsb3dTaG9ydGhhbmQoKSk7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmc6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCmluZGV4IDRiYTBjMWMyM2RlY2VmNDJjODM1ZmM4
NGFlMDgzMzczZjZiN2FhOGIuLjAwYWViM2E1OTE4MzUxZjdiNjEzMmQwMGQ4ZGIyNDc0OTA2YzQ5
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIu
Y3BwCkBAIC0xLDUgKzEsNiBAQAogLy8gQ29weXJpZ2h0IDIwMTUgVGhlIENocm9taXVtIEF1dGhv
cnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAvLyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDE5IEFkb2JlLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogLy8KIC8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogLy8gbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAt
MjUzMCw2ICsyNTMxLDMwIEBAIHN0YXRpYyBSZWZQdHI8Q1NTQmFzaWNTaGFwZUluc2V0PiBjb25z
dW1lQmFzaWNTaGFwZUluc2V0KENTU1BhcnNlclRva2VuUmFuZ2UmIGFyCiAgICAgcmV0dXJuIHNo
YXBlOwogfQogCitzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lUGF0aFNoYXBlT3JOb25l
KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQoreworICAgIGlmIChyYW5nZS5wZWVrKCkuaWQo
KSA9PSBDU1NWYWx1ZU5vbmUpCisgICAgICAgIHJldHVybiBjb25zdW1lSWRlbnQocmFuZ2UpOwor
ICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpICE9IEZ1bmN0aW9uVG9rZW4pCisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIENTU1ZhbHVlSUQgaWQgPSByYW5nZS5wZWVrKCkuZnVuY3Rpb25J
ZCgpOworICAgIENTU1BhcnNlclRva2VuUmFuZ2UgcmFuZ2VDb3B5ID0gcmFuZ2U7CisgICAgQ1NT
UGFyc2VyVG9rZW5SYW5nZSBhcmdzID0gY29uc3VtZUZ1bmN0aW9uKHJhbmdlQ29weSk7CisKKyAg
ICAvLyBGSVhNRS1ORVdQQVJTRVI6IENTU0Jhc2ljU2hhcGUgc2hvdWxkIGJlIGEgQ1NTVmFsdWUs
IGFuZCBzaGFwZXMgc2hvdWxkIG5vdCBiZSBwcmltaXRpdmUgdmFsdWVzLgorICAgIFJlZlB0cjxD
U1NCYXNpY1NoYXBlPiBzaGFwZTsKKyAgICBpZiAoaWQgPT0gQ1NTVmFsdWVQYXRoKQorICAgICAg
ICBzaGFwZSA9IGNvbnN1bWVCYXNpY1NoYXBlUGF0aChhcmdzKTsKKyAgICBpZiAoIXNoYXBlKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByYW5nZSA9IHJhbmdlQ29weTsKKyAgICAKKyAg
ICBpZiAoIWFyZ3MuYXRFbmQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1
cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZShzaGFwZS5yZWxlYXNlTm9u
TnVsbCgpKTsKK30KKwogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUJhc2ljU2hhcGUo
Q1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRl
eHQpCiB7CiAgICAgUmVmUHRyPENTU1ZhbHVlPiByZXN1bHQ7CkBAIC0zOTMwLDYgKzM5NTUsMTEg
QEAgUmVmUHRyPENTU1ZhbHVlPiBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaW5nbGVWYWx1ZShD
U1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBDU1MKICNlbmRpZgogICAgIGNhc2UgQ1NTUHJvcGVydHlP
YmplY3RQb3NpdGlvbjoKICAgICAgICAgcmV0dXJuIGNvbnN1bWVQb3NpdGlvbihtX3JhbmdlLCBt
X2NvbnRleHQubW9kZSwgVW5pdGxlc3NRdWlyazo6Rm9yYmlkLCBQb3NpdGlvblN5bnRheDo6UG9z
aXRpb24pOworICAgIGNhc2UgQ1NTUHJvcGVydHlPZmZzZXRQYXRoOgorICAgICAgICAvLyBPbmx5
IHN1cHBvcnQgbm9uZSB8IHBhdGgoKSBpbml0aWFsbHkgbGlrZSBCbGluay4KKyAgICAgICAgcmV0
dXJuIGNvbnN1bWVQYXRoU2hhcGVPck5vbmUobV9yYW5nZSk7CisgICAgY2FzZSBDU1NQcm9wZXJ0
eU9mZnNldERpc3RhbmNlOgorICAgICAgICByZXR1cm4gY29uc3VtZUxlbmd0aE9yUGVyY2VudCht
X3JhbmdlLCBtX2NvbnRleHQubW9kZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZlKTsKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0TGluZUNsYW1wOgogICAgICAgICByZXR1cm4gY29uc3VtZUxpbmVD
bGFtcChtX3JhbmdlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rm9udFNpemVEZWx0YToK
QEAgLTU0NDQsNiArNTQ3NCwyMiBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lSW1w
bGljaXRHcmlkQXV0b0Zsb3coQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsCiAgICAgcmV0dXJu
IGxpc3Q7CiB9CiAKK2Jvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1bWVPZmZzZXRTaG9ydGhh
bmQoYm9vbCBpbXBvcnRhbnQpCit7CisgICAgUmVmUHRyPENTU1ZhbHVlPiBwYXRoID0gY29uc3Vt
ZVBhdGhTaGFwZU9yTm9uZShtX3JhbmdlKTsKKyAgICBpZiAoIXBhdGgpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIFJlZlB0cjxDU1NWYWx1ZT4gZGlzdGFuY2UgPSBjb25zdW1lTGVuZ3Ro
T3JQZXJjZW50KG1fcmFuZ2UsIG1fY29udGV4dC5tb2RlLCBWYWx1ZVJhbmdlTm9uTmVnYXRpdmUp
OworICAgIGlmICghZGlzdGFuY2UpCisgICAgICAgIGRpc3RhbmNlID0gQ1NTVmFsdWVQb29sOjpz
aW5nbGV0b24oKS5jcmVhdGVJbXBsaWNpdEluaXRpYWxWYWx1ZSgpOworCisgICAgYWRkUHJvcGVy
dHkoQ1NTUHJvcGVydHlPZmZzZXRQYXRoLCBDU1NQcm9wZXJ0eU9mZnNldCwgcGF0aC5yZWxlYXNl
Tm9uTnVsbCgpLCBpbXBvcnRhbnQpOworICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5T2Zmc2V0
RGlzdGFuY2UsIENTU1Byb3BlcnR5T2Zmc2V0LCBkaXN0YW5jZS5yZWxlYXNlTm9uTnVsbCgpLCBp
bXBvcnRhbnQpOworCisgICAgcmV0dXJuIG1fcmFuZ2UuYXRFbmQoKTsKK30KKwogYm9vbCBDU1NQ
cm9wZXJ0eVBhcnNlcjo6Y29uc3VtZUdyaWRTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCiB7CiAg
ICAgQVNTRVJUKHNob3J0aGFuZEZvclByb3BlcnR5KENTU1Byb3BlcnR5R3JpZCkubGVuZ3RoKCkg
PT0gNik7CkBAIC01ODMzLDYgKzU4NzksOCBAQCBib29sIENTU1Byb3BlcnR5UGFyc2VyOjpwYXJz
ZVNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBib29sIGltcG9ydGFudCkKICAgICAg
ICAgcmV0dXJuIGNvbnN1bWVHcmlkVGVtcGxhdGVTaG9ydGhhbmQoQ1NTUHJvcGVydHlHcmlkVGVt
cGxhdGUsIGltcG9ydGFudCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUdyaWQ6CiAgICAgICAgIHJl
dHVybiBjb25zdW1lR3JpZFNob3J0aGFuZChpbXBvcnRhbnQpOworICAgIGNhc2UgQ1NTUHJvcGVy
dHlPZmZzZXQ6CisgICAgICAgIHJldHVybiBjb25zdW1lT2Zmc2V0U2hvcnRoYW5kKGltcG9ydGFu
dCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBsYWNlQ29udGVudDoKICAgICAgICAgcmV0dXJuIGNv
bnN1bWVQbGFjZUNvbnRlbnRTaG9ydGhhbmQoaW1wb3J0YW50KTsKICAgICBjYXNlIENTU1Byb3Bl
cnR5UGxhY2VJdGVtczoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UHJvcGVydHlQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQ
YXJzZXIuaAppbmRleCBjNjdjMjAyMDUwOTk2Yzk5YzcwM2U4MTUzYmEwMzFkN2E2ZDRiYzE4Li5h
NTczZWRmNWRhZDQ4MDQ3NDNjMDRlNTA1OWVmOGRhNWFkMGJhMGJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oCkBAIC05Miw2ICs5Miw4IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBjb25zdW1lR3JpZFNob3J0aGFuZChib29sIGltcG9ydGFudCk7CiAg
ICAgYm9vbCBjb25zdW1lR3JpZEFyZWFTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpOwogCisgICAg
Ym9vbCBjb25zdW1lT2Zmc2V0U2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KTsKKwogICAgIGJvb2wg
Y29uc3VtZVBsYWNlQ29udGVudFNob3J0aGFuZChib29sIGltcG9ydGFudCk7CiAgICAgYm9vbCBj
b25zdW1lUGxhY2VJdGVtc1Nob3J0aGFuZChib29sIGltcG9ydGFudCk7CiAgICAgYm9vbCBjb25z
dW1lUGxhY2VTZWxmU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggOWJlM2JjNWQ5NjdiOGU5MzM0NTlm
N2QwOGEyYThmNzgzZjU2ZGE2Zi4uYWMwZmMzODc1NTQ4ZWYyM2ViZWU1OWI1NjA1MjY5NDU3MTRm
NjI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgK
QEAgLTE3OSw2ICsxNzksOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDU1NDdXN0b21Qcm9wZXJ0
aWVzQW5kVmFsdWVzRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX0NTU0N1c3RvbVByb3BlcnRp
ZXNBbmRWYWx1ZXNFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCBjc3NDdXN0b21Qcm9w
ZXJ0aWVzQW5kVmFsdWVzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fQ1NTQ3VzdG9tUHJvcGVy
dGllc0FuZFZhbHVlc0VuYWJsZWQ7IH0KIAorICAgIHZvaWQgc2V0Q1NTTW90aW9uUGF0aEVuYWJs
ZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9jc3NNb3Rpb25QYXRoRW5hYmxlZCA9IGlzRW5hYmxlZDsg
fQorICAgIGJvb2wgY3NzTW90aW9uUGF0aEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Nzc01v
dGlvblBhdGhFbmFibGVkOyB9CisKICAgICB2b2lkIHNldFBvaW50ZXJFdmVudHNFbmFibGVkKGJv
b2wgaXNFbmFibGVkKSB7IG1fcG9pbnRlckV2ZW50c0VuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAg
ICBib29sIHBvaW50ZXJFdmVudHNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9wb2ludGVyRXZl
bnRzRW5hYmxlZDsgfQogICAgIApAQCAtNDM0LDYgKzQzNyw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2F0dHJTdHlsZUVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV93ZWJBUElTdGF0aXN0
aWNzRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX0NTU0N1c3RvbVByb3BlcnRpZXNBbmRW
YWx1ZXNFbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fY3NzTW90aW9uUGF0aEVuYWJsZWQg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9wb2ludGVyRXZlbnRzRW5hYmxlZCB7IHRydWUgfTsKICAg
ICBib29sIG1fc3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZCB7IHRydWUgfTsKICAgICBi
b29sIG1fZGlhbG9nRWxlbWVudEVuYWJsZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA0MmRkZDUwNWMxNjBkZmY2OThiNDVl
NTM3ZTY5MGZjNjY2MzQyZWIwLi5mZDhmYWU4ZDkxOTJkYThkYzVlZTk2NTIxNmEzMTRmNDlhODYx
YmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApA
QCAtNCw2ICs0LDcgQEAKICAqICAgICAgICAgICAoQykgMjAwMCBEaXJrIE11ZWxsZXIgKG11ZWxs
ZXJAa2RlLm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBHcmFoYW0gRGVubmlzIChncmFo
YW0uZGVubmlzQGdtYWlsLmNvbSkKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBZG9iZS4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNjQzLDYgKzY0NCw5IEBAIHB1
YmxpYzoKICAgICBPYmplY3RGaXQgb2JqZWN0Rml0KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8T2JqZWN0Rml0PihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5vYmplY3RGaXQpOyB9CiAgICAg
TGVuZ3RoUG9pbnQgb2JqZWN0UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhl
cml0ZWREYXRhLT5vYmplY3RQb3NpdGlvbjsgfQogCisgICAgQmFzaWNTaGFwZSogb2Zmc2V0UGF0
aCgpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm9mZnNldFBhdGguZ2V0
KCk7IH0KKyAgICBjb25zdCBMZW5ndGgmIG9mZnNldERpc3RhbmNlKCkgY29uc3QgeyByZXR1cm4g
bV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+b2Zmc2V0RGlzdGFuY2U7IH0KKwogICAgIC8vIFJldHVy
biB0cnVlIGlmIGFueSB0cmFuc2Zvcm0gcmVsYXRlZCBwcm9wZXJ0eSAoY3VycmVudGx5IHRyYW5z
Zm9ybSwgdHJhbnNmb3JtU3R5bGUzRCBvciBwZXJzcGVjdGl2ZSkKICAgICAvLyBpbmRpY2F0ZXMg
dGhhdCB3ZSBhcmUgdHJhbnNmb3JtaW5nLgogICAgIGJvb2wgaGFzVHJhbnNmb3JtUmVsYXRlZFBy
b3BlcnR5KCkgY29uc3QgeyByZXR1cm4gaGFzVHJhbnNmb3JtKCkgfHwgcHJlc2VydmVzM0QoKSB8
fCBoYXNQZXJzcGVjdGl2ZSgpOyB9CkBAIC0xMTY3LDYgKzExNzEsOSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRPYmplY3RGaXQoT2JqZWN0Rml0IGZpdCkgeyBTRVRfVkFSKG1fcmFyZU5vbkluaGVy
aXRlZERhdGEsIG9iamVjdEZpdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZpdCkpOyB9CiAgICAg
dm9pZCBzZXRPYmplY3RQb3NpdGlvbihMZW5ndGhQb2ludCYmIHBvc2l0aW9uKSB7IFNFVF9WQVIo
bV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgb2JqZWN0UG9zaXRpb24sIFdURk1vdmUocG9zaXRpb24p
KTsgfQogCisgICAgdm9pZCBzZXRPZmZzZXRQYXRoKFJlZlB0cjxCYXNpY1NoYXBlPiYmKTsKKyAg
ICB2b2lkIHNldE9mZnNldERpc3RhbmNlKExlbmd0aCYmIG9mZnNldERpc3RhbmNlKSB7IFNFVF9W
QVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgb2Zmc2V0RGlzdGFuY2UsIFdURk1vdmUob2Zmc2V0
RGlzdGFuY2UpKTsgfQorCiAgICAgdm9pZCBzZXRSdWJ5UG9zaXRpb24oUnVieVBvc2l0aW9uIHBv
c2l0aW9uKSB7IFNFVF9WQVIobV9yYXJlSW5oZXJpdGVkRGF0YSwgcnVieVBvc2l0aW9uLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4ocG9zaXRpb24pKTsgfQogCiAjaWYgRU5BQkxFKERBUktfTU9ERV9D
U1MpCkBAIC0xNDY4LDYgKzE0NzUsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFRleHRPcmllbnRh
dGlvbiBpbml0aWFsVGV4dE9yaWVudGF0aW9uKCkgeyByZXR1cm4gVGV4dE9yaWVudGF0aW9uOjpN
aXhlZDsgfQogICAgIHN0YXRpYyBPYmplY3RGaXQgaW5pdGlhbE9iamVjdEZpdCgpIHsgcmV0dXJu
IE9iamVjdEZpdDo6RmlsbDsgfQogICAgIHN0YXRpYyBMZW5ndGhQb2ludCBpbml0aWFsT2JqZWN0
UG9zaXRpb24oKSB7IHJldHVybiBMZW5ndGhQb2ludChMZW5ndGgoNTAuMGYsIFBlcmNlbnQpLCBM
ZW5ndGgoNTAuMGYsIFBlcmNlbnQpKTsgfQorICAgIHN0YXRpYyBCYXNpY1NoYXBlKiBpbml0aWFs
T2Zmc2V0UGF0aCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICBzdGF0aWMgTGVuZ3RoIGluaXRp
YWxPZmZzZXREaXN0YW5jZSgpIHsgcmV0dXJuIExlbmd0aCgwLCBGaXhlZCk7IH0KICAgICBzdGF0
aWMgRW1wdHlDZWxsIGluaXRpYWxFbXB0eUNlbGxzKCkgeyByZXR1cm4gRW1wdHlDZWxsOjpTaG93
OyB9CiAgICAgc3RhdGljIExpc3RTdHlsZVBvc2l0aW9uIGluaXRpYWxMaXN0U3R5bGVQb3NpdGlv
bigpIHsgcmV0dXJuIExpc3RTdHlsZVBvc2l0aW9uOjpPdXRzaWRlOyB9CiAgICAgc3RhdGljIExp
c3RTdHlsZVR5cGUgaW5pdGlhbExpc3RTdHlsZVR5cGUoKSB7IHJldHVybiBMaXN0U3R5bGVUeXBl
OjpEaXNjOyB9CkBAIC0yMjAyLDYgKzIyMTEsMTIgQEAgaW5saW5lIHZvaWQgUmVuZGVyU3R5bGU6
OnNldENsaXBQYXRoKFJlZlB0cjxDbGlwUGF0aE9wZXJhdGlvbj4mJiBvcGVyYXRpb24pCiAgICAg
ICAgIG1fcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCkuY2xpcFBhdGggPSBXVEZNb3ZlKG9w
ZXJhdGlvbik7CiB9CiAKK2lubGluZSB2b2lkIFJlbmRlclN0eWxlOjpzZXRPZmZzZXRQYXRoKFJl
ZlB0cjxCYXNpY1NoYXBlPiYmIGJhc2ljU2hhcGUpCit7CisgICAgaWYgKG1fcmFyZU5vbkluaGVy
aXRlZERhdGEtPm9mZnNldFBhdGggIT0gYmFzaWNTaGFwZSkKKyAgICAgICAgbV9yYXJlTm9uSW5o
ZXJpdGVkRGF0YS5hY2Nlc3MoKS5vZmZzZXRQYXRoID0gV1RGTW92ZShiYXNpY1NoYXBlKTsKK30K
KwogaW5saW5lIGJvb2wgUmVuZGVyU3R5bGU6OndpbGxDaGFuZ2VDcmVhdGVzU3RhY2tpbmdDb250
ZXh0KCkgY29uc3QKIHsKICAgICByZXR1cm4gd2lsbENoYW5nZSgpICYmIHdpbGxDaGFuZ2UoKS0+
Y2FuQ3JlYXRlU3RhY2tpbmdDb250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXgg
ZmIzMjA4MjMzNzQyOGIxMWZkNjgxNTIwN2FmZTUxM2Y0MmNmMTAxZi4uZmRlYWQwMmQyZGI0ODRm
MmRkZmIxZWQzNjQ3ZTQ5Njg0NWRiNDI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcApAQCAt
NjYsNiArNjYsOCBAQCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhKCkKICAgICAsIG1hc2soRmlsbExheWVyVHlwZTo6TWFzaykKICAgICAsIG1hc2tC
b3hJbWFnZShOaW5lUGllY2VJbWFnZTo6VHlwZTo6TWFzaykKICAgICAsIG9iamVjdFBvc2l0aW9u
KFJlbmRlclN0eWxlOjppbml0aWFsT2JqZWN0UG9zaXRpb24oKSkKKyAgICAsIG9mZnNldFBhdGgo
UmVuZGVyU3R5bGU6OmluaXRpYWxPZmZzZXRQYXRoKCkpCisgICAgLCBvZmZzZXREaXN0YW5jZShS
ZW5kZXJTdHlsZTo6aW5pdGlhbE9mZnNldERpc3RhbmNlKCkpCiAgICAgLCBzaGFwZU91dHNpZGUo
UmVuZGVyU3R5bGU6OmluaXRpYWxTaGFwZU91dHNpZGUoKSkKICAgICAsIHNoYXBlTWFyZ2luKFJl
bmRlclN0eWxlOjppbml0aWFsU2hhcGVNYXJnaW4oKSkKICAgICAsIHNoYXBlSW1hZ2VUaHJlc2hv
bGQoUmVuZGVyU3R5bGU6OmluaXRpYWxTaGFwZUltYWdlVGhyZXNob2xkKCkpCkBAIC0xNTEsNiAr
MTUzLDggQEAgaW5saW5lIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW4KICAgICAsIG1hc2tCb3hJbWFnZShvLm1h
c2tCb3hJbWFnZSkKICAgICAsIHBhZ2VTaXplKG8ucGFnZVNpemUpCiAgICAgLCBvYmplY3RQb3Np
dGlvbihvLm9iamVjdFBvc2l0aW9uKQorICAgICwgb2Zmc2V0UGF0aChvLm9mZnNldFBhdGgpCisg
ICAgLCBvZmZzZXREaXN0YW5jZShvLm9mZnNldERpc3RhbmNlKQogICAgICwgc2hhcGVPdXRzaWRl
KG8uc2hhcGVPdXRzaWRlKQogICAgICwgc2hhcGVNYXJnaW4oby5zaGFwZU1hcmdpbikKICAgICAs
IHNoYXBlSW1hZ2VUaHJlc2hvbGQoby5zaGFwZUltYWdlVGhyZXNob2xkKQpAQCAtMjUxLDYgKzI1
NSw4IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBT
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjCiAgICAgICAgICYmIG1hc2tCb3hJbWFnZSA9
PSBvLm1hc2tCb3hJbWFnZQogICAgICAgICAmJiBwYWdlU2l6ZSA9PSBvLnBhZ2VTaXplCiAgICAg
ICAgICYmIG9iamVjdFBvc2l0aW9uID09IG8ub2JqZWN0UG9zaXRpb24KKyAgICAgICAgJiYgYXJl
UG9pbnRpbmdUb0VxdWFsRGF0YShvZmZzZXRQYXRoLCBvLm9mZnNldFBhdGgpCisgICAgICAgICYm
IG9mZnNldERpc3RhbmNlID09IG8ub2Zmc2V0RGlzdGFuY2UKICAgICAgICAgJiYgYXJlUG9pbnRp
bmdUb0VxdWFsRGF0YShzaGFwZU91dHNpZGUsIG8uc2hhcGVPdXRzaWRlKQogICAgICAgICAmJiBz
aGFwZU1hcmdpbiA9PSBvLnNoYXBlTWFyZ2luCiAgICAgICAgICYmIHNoYXBlSW1hZ2VUaHJlc2hv
bGQgPT0gby5zaGFwZUltYWdlVGhyZXNob2xkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRleCAxOWM1
OTFiMmQxMjRjOTY1ZDg5N2ViYTU4MDUxMTExNGE2YmM3NDM1Li4yZTM5MDQ2OTA2YTY4MGIyYWIx
YzkzYTYyYThkNWU3ZjQ0M2FhNzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKQEAgLTE0NCw2ICsx
NDQsOSBAQCBwdWJsaWM6CiAgICAgTGVuZ3RoU2l6ZSBwYWdlU2l6ZTsKICAgICBMZW5ndGhQb2lu
dCBvYmplY3RQb3NpdGlvbjsKIAorICAgIFJlZlB0cjxCYXNpY1NoYXBlPiBvZmZzZXRQYXRoOwor
ICAgIExlbmd0aCBvZmZzZXREaXN0YW5jZTsKKwogICAgIFJlZlB0cjxTaGFwZVZhbHVlPiBzaGFw
ZU91dHNpZGU7CiAgICAgTGVuZ3RoIHNoYXBlTWFyZ2luOwogICAgIGZsb2F0IHNoYXBlSW1hZ2VU
aHJlc2hvbGQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJD
b252ZXJ0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5o
CmluZGV4IDUxNzJmMWM2YjRmODE0NWIzYTZkZDJiOTFlNGI5MzcwYWVkZDM3ZGYuLjVhMzE2MGZj
MTdiZGE5ZjIzNGJjMDI5NzQ2MGJiNGNiNzZkZTE4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJp
Z2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBBZG9iZS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtOTAsNyArOTEsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmlu
ZyBjb252ZXJ0U3RyaW5nT3JOb25lKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7CiAg
ICAgc3RhdGljIE9wdGlvblNldDxUZXh0RW1waGFzaXNQb3NpdGlvbj4gY29udmVydFRleHRFbXBo
YXNpc1Bvc2l0aW9uKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7CiAgICAgc3RhdGlj
IFRleHRBbGlnbk1vZGUgY29udmVydFRleHRBbGlnbihCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NW
YWx1ZSYpOwotICAgIHN0YXRpYyBSZWZQdHI8Q2xpcFBhdGhPcGVyYXRpb24+IGNvbnZlcnRDbGlw
UGF0aChCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYpOworICAgIHN0YXRpYyBSZWZQdHI8
QmFzaWNTaGFwZT4gY29udmVydEJhc2ljU2hhcGUoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFs
dWUmKTsKKyAgICBzdGF0aWMgUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBjb252ZXJ0QmFzaWNT
aGFwZUdlb21ldHJ5Qm94KEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7CiAgICAgc3Rh
dGljIFJlc2l6ZSBjb252ZXJ0UmVzaXplKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7
CiAgICAgc3RhdGljIGludCBjb252ZXJ0TWFycXVlZVJlcGV0aXRpb24oQnVpbGRlclN0YXRlJiwg
Y29uc3QgQ1NTVmFsdWUmKTsKICAgICBzdGF0aWMgaW50IGNvbnZlcnRNYXJxdWVlU3BlZWQoQnVp
bGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmKTsKQEAgLTU4NCw3ICs1ODYsMTcgQEAgaW5saW5l
IFRleHRBbGlnbk1vZGUgQnVpbGRlckNvbnZlcnRlcjo6Y29udmVydFRleHRBbGlnbihCdWlsZGVy
U3RhdGUmIGJ1aWxkZXJTdGEKICAgICByZXR1cm4gcGFyZW50U3R5bGUudGV4dEFsaWduKCk7CiB9
CiAKLWlubGluZSBSZWZQdHI8Q2xpcFBhdGhPcGVyYXRpb24+IEJ1aWxkZXJDb252ZXJ0ZXI6OmNv
bnZlcnRDbGlwUGF0aChCdWlsZGVyU3RhdGUmIGJ1aWxkZXJTdGF0ZSwgY29uc3QgQ1NTVmFsdWUm
IHZhbHVlKQoraW5saW5lIFJlZlB0cjxCYXNpY1NoYXBlPiBCdWlsZGVyQ29udmVydGVyOjpjb252
ZXJ0QmFzaWNTaGFwZShCdWlsZGVyU3RhdGUmIGJ1aWxkZXJTdGF0ZSwgY29uc3QgQ1NTVmFsdWUm
IHZhbHVlKQoreworICAgIGlmIChpczxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKSB7CisgICAg
ICAgIGF1dG8mIHByaW1pdGl2ZVZhbHVlID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZh
bHVlKTsKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLmlzU2hhcGUoKSkKKyAgICAgICAgICAg
IHJldHVybiBiYXNpY1NoYXBlRm9yVmFsdWUoYnVpbGRlclN0YXRlLmNzc1RvTGVuZ3RoQ29udmVy
c2lvbkRhdGEoKSwgKnByaW1pdGl2ZVZhbHVlLnNoYXBlVmFsdWUoKSk7CisgICAgfQorICAgIHJl
dHVybiBudWxscHRyOworfQorCitpbmxpbmUgUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBCdWls
ZGVyQ29udmVydGVyOjpjb252ZXJ0QmFzaWNTaGFwZUdlb21ldHJ5Qm94KEJ1aWxkZXJTdGF0ZSYg
YnVpbGRlclN0YXRlLCBjb25zdCBDU1NWYWx1ZSYgdmFsdWUpCiB7CiAgICAgaWYgKGlzPENTU1By
aW1pdGl2ZVZhbHVlPih2YWx1ZSkpIHsKICAgICAgICAgYXV0byYgcHJpbWl0aXZlVmFsdWUgPSBk
b3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByZWZlcmVuY2VzLnlhbWwKaW5kZXggMzQ0OGNkYzRkNzE2M2ZlNzI4MzMyYzFkOGE2MWRjOTJh
YzU5MTc0NS4uYjJjZDMzNDhiYmRlY2VmZWIzNDk3NzJmMDlhZmU2YzNiYjMzZDYxMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMzc3LDYgKzEzNzcsMTQg
QEAgQ1NTQ3VzdG9tUHJvcGVydGllc0FuZFZhbHVlc0VuYWJsZWQ6CiAgIHdlYmNvcmVCaW5kaW5n
OiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCiAgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKIAorQ1NT
TW90aW9uUGF0aEVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBmYWxzZQor
ICBodW1hblJlYWRhYmxlTmFtZTogIkNTUyBPZmZzZXQgcHJvcGVydGllcyIKKyAgaHVtYW5SZWFk
YWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIENTUyBPZmZzZXQgcHJvcGVydGllcyIKKyAgd2ViY29y
ZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKKyAgY2F0ZWdvcnk6IGludGVybmFsCisK
IENTU1BhaW50aW5nQVBJRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IGZh
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCAwYjI0OWQ2ZTZlOWIxYzgxMjIyOWJjYWIzYmRj
MWJkYTg4OTJlNGY2Li4yY2M0ODJjYzhkNDRiMmJlMjc5ZDM4Yzc2Zjc1NjhlMGZhZjVjZmQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTI1OCw2ICsyNTgsOSBAQCB2b2lkIEluamVjdGVkQnVu
ZGxlOjpvdmVycmlkZUJvb2xQcmVmZXJlbmNlRm9yVGVzdFJ1bm5lcihXZWJQYWdlR3JvdXBQcm94
eSogcGFnZQogICAgIGlmIChwcmVmZXJlbmNlID09ICJDU1NDdXN0b21Qcm9wZXJ0aWVzQW5kVmFs
dWVzRW5hYmxlZCIpCiAgICAgICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuc2V0Q1NTQ3VzdG9tUHJvcGVydGllc0FuZFZhbHVlc0VuYWJsZWQoZW5hYmxlZCk7CiAK
KyAgICBpZiAocHJlZmVyZW5jZSA9PSAiQ1NTTW90aW9uUGF0aEVuYWJsZWQiKQorICAgICAgICBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldENTU01vdGlvblBhdGhF
bmFibGVkKGVuYWJsZWQpOworCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQp
CiAgICAgaWYgKHByZWZlcmVuY2UgPT0gIkxheW91dEZvcm1hdHRpbmdDb250ZXh0RW5hYmxlZCIp
CiAgICAgICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0TGF5
b3V0Rm9ybWF0dGluZ0NvbnRleHRFbmFibGVkKGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgK
aW5kZXggNmI1YWQxMDAwOTY5ODMzZGZiYzM2NWE0ZGZkZmZiZDFjOWM5NjllMC4uZWIwZTJmOWMw
YzEzYjkyNWYzYzdkNWY3NmM3ZGI5NjRjMGJmYWQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBA
IC0yNzEsNiArMjcxLDcgQEAKICNkZWZpbmUgV2ViS2l0U2VydmVyVGltaW5nRW5hYmxlZFByZWZl
cmVuY2VLZXkgQCJXZWJLaXRTZXJ2ZXJUaW1pbmdFbmFibGVkIgogI2RlZmluZSBXZWJLaXRTZWxl
Y3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRT
ZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q1NT
TG9naWNhbEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTTG9naWNhbEVuYWJsZWQiCisj
ZGVmaW5lIFdlYktpdENTU01vdGlvblBhdGhFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENT
U01vdGlvblBhdGhFbmFibGVkIgogI2RlZmluZSBXZWJLaXRBZENsaWNrQXR0cmlidXRpb25FbmFi
bGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQiCiAjZGVm
aW5lIFdlYktpdFJlZmVycmVyUG9saWN5QXR0cmlidXRlRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJX
ZWJLaXRSZWZlcnJlclBvbGljeUF0dHJpYnV0ZUVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFJlc2l6
ZU9ic2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRSZXNpemVPYnNlcnZlckVuYWJs
ZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
cy5tbQppbmRleCA4MzY2NTczMTNlNmY3YWE2MWI5N2YyNGVkZjg4NDg2MDkzZmYzYzU2Li5hOWNi
YWQ2ZGJkNjJjYTU5YzIwYzhiYWRjMWE0YmY4YTFkYTI5NWIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTY3MCw2ICs2NzAs
NyBAQCArICh2b2lkKWluaXRpYWxpemUKICNlbmRpZgogICAgICAgICBAWUVTLCBXZWJLaXRTZWxl
Y3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAg
IEBOTywgV2ViS2l0Q1NTTG9naWNhbEVuYWJsZWRQcmVmZXJlbmNlS2V5LAorICAgICAgICBATk8s
IFdlYktpdENTU01vdGlvblBhdGhFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgQE5PLCBX
ZWJLaXRBZENsaWNrQXR0cmlidXRpb25FbmFibGVkUHJlZmVyZW5jZUtleSwKICNpZiBFTkFCTEUo
SU5URVJTRUNUSU9OX09CU0VSVkVSKQogICAgICAgICBATk8sIFdlYktpdEludGVyc2VjdGlvbk9i
c2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXksCkBAIC0zNDg4LDYgKzM0ODksMTYgQEAgLSAodm9p
ZClzZXRDU1NMb2dpY2FsRW5hYmxlZDooQk9PTClmbGFnCiAgICAgW3NlbGYgX3NldEJvb2xWYWx1
ZTpmbGFnIGZvcktleTpXZWJLaXRDU1NMb2dpY2FsRW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQog
CistIChCT09MKWNzc01vdGlvblBhdGhFbmFibGVkCit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29s
VmFsdWVGb3JLZXk6V2ViS2l0Q1NTTW90aW9uUGF0aEVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30K
KworLSAodm9pZClzZXRDU1NNb3Rpb25QYXRoRW5hYmxlZDooQk9PTClmbGFnCit7CisgICAgW3Nl
bGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRDU1NNb3Rpb25QYXRoRW5hYmxlZFBy
ZWZlcmVuY2VLZXldOworfQorCiAtIChCT09MKWFkQ2xpY2tBdHRyaWJ1dGlvbkVuYWJsZWQKIHsK
ICAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRBZENsaWNrQXR0cmlidXRp
b25FbmFibGVkUHJlZmVyZW5jZUtleV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA4MWJkZmU4Y2Q0ODE2
OTE0MWVjY2MzZDQ1ZDdhZWRhNjdlY2FlZjdjLi4wZTJjZDkzMTMwN2VmN2MyYzg3YzY2YWZiOTU3
OGVjZmUzODBkY2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTYwMyw2ICs2MDMsOSBAQCBleHRlcm4g
TlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNh
dGlvbiBXRUJLSVRfREVQUgogLSAodm9pZClzZXRDU1NMb2dpY2FsRW5hYmxlZDooQk9PTClmbGFn
OwogLSAoQk9PTCljc3NMb2dpY2FsRW5hYmxlZDsKIAorLSAodm9pZClzZXRDU1NNb3Rpb25QYXRo
RW5hYmxlZDooQk9PTClmbGFnOworLSAoQk9PTCljc3NNb3Rpb25QYXRoRW5hYmxlZDsKKwogLSAo
Qk9PTClhZENsaWNrQXR0cmlidXRpb25FbmFibGVkOwogLSAodm9pZClzZXRBZENsaWNrQXR0cmli
dXRpb25FbmFibGVkOihCT09MKWZsYWc7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQppbmRleCBjZGZmMDk5MTRhYmNhZTNiODQ0ZWE3NjY4ZDgxNDQ0Y2VjMDA3
MzNkLi5hMWEwYjZjOGYzNWMxNTk3YThhY2Y3YzkwM2FhN2U5NTk1NWZlZDdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0zMTE3LDYgKzMxMTcsOCBA
QCAtICh2b2lkKV9wcmVmZXJlbmNlc0NoYW5nZWQ6KFdlYlByZWZlcmVuY2VzICopcHJlZmVyZW5j
ZXMKIAogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0Q1NT
TG9naWNhbEVuYWJsZWQoW3ByZWZlcmVuY2VzIGNzc0xvZ2ljYWxFbmFibGVkXSk7CiAKKyAgICBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldENTU01vdGlvblBhdGhF
bmFibGVkKFtwcmVmZXJlbmNlcyBjc3NNb3Rpb25QYXRoRW5hYmxlZF0pOworCiAgICAgUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRBZENsaWNrQXR0cmlidXRpb25F
bmFibGVkKFtwcmVmZXJlbmNlcyBhZENsaWNrQXR0cmlidXRpb25FbmFibGVkXSk7CiAKICAgICBz
ZXR0aW5ncy5zZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nRW5hYmxlZChbcHJlZmVyZW5j
ZXMgaGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWRdKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1ZjM5ODNjMGUwNWYxNWU4ZGUy
MTQxYjg1YTcxNTRjZDQ0NDNiODdjLi45NjMxZTc3OTFkMmQwYWEwOWQ4NzlkN2U4YWFlYmEwYzY4
ODJkZWZhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTkgQEAKKzIwMTktMTEtMDUgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0
Lm9yZz4KKworICAgICAgICBTdXBwb3J0IHBhcnNpbmcsIGNvbXB1dGVkIHN0eWxlIGFuZCBwcm9w
ZXJ0eSBzdHlsZSBmb3Igb2Zmc2V0LCBvZmZzZXQtcGF0aCwgb2Zmc2V0LWRpc3RhbmNlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM4NDgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgaW1wbGVtZW50
YXRpb24gb2YgdGhlIE1vdGlvbiBQYXRoIHNwZWMgaGFwcGVucyBiZWhpbmQgYSBmZWF0dXJlIGZs
YWcuCisgICAgICAgIEV4cG9zZSB0aGUgZmVhdHVyZSBmbGFnIHRvIHRoZSB0ZXN0IHN1aXRlLgor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwOgorICAgICAgICAoVGVz
dE9wdGlvbnM6OlRlc3RPcHRpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0
aW9ucy5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToK
KyAgICAgICAgKHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMpOgorCiAyMDE5LTExLTA1
ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBS
RUdSRVNTSU9OKHIyNTIwMzEpOiBsYXlvdXQgdGVzdHMgZmFpbCB0byBydW4gaW4gbm9uIGFwcGxl
IHBvcnRzIGFmdGVyIHIyNTIwMzEKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAppbmRl
eCA1NTZlZWMyNzY2MzdlODFiOTNmNzdkOTY1OTM3NWNmYzJhNDk1OTU5Li4yMzE5YWM3NDFkM2U4
MzIxNjM5NTcwYWY2NzgzYjA3OTI3MGM3NWIxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlv
bnMuY3BwCkBAIC0xMTcsNiArMTE3LDggQEAgVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25zKGNvbnN0
IHN0ZDo6c3RyaW5nJiBwYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBhYnNvbHUKICAgICAg
ICAgICAgIGVuYWJsZVdlYkdQVSA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7
CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiaW50ZXJuYWw6Q1NTTG9naWNhbEVuYWJsZWQiKQog
ICAgICAgICAgICAgZW5hYmxlQ1NTTG9naWNhbCA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1
ZSh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiaW50ZXJuYWw6Q1NTTW90aW9uUGF0
aEVuYWJsZWQiKQorICAgICAgICAgICAgZW5hYmxlTW90aW9uID0gcGFyc2VCb29sZWFuVGVzdEhl
YWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6
QWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZCIpCiAgICAgICAgICAgICBhZENsaWNrQXR0cmlidXRp
b25FbmFibGVkID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAg
ZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6UmVzaXplT2JzZXJ2ZXJFbmFibGVkIikKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmggYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCmluZGV4IGU1MzM1ZTgzMTE0ZTc5ZTViNTRkODYxYzNk
MjNmZmNlYmJhNzBhMGIuLjkyNWU1MzkxYjI0NmNkNjM5MzIxZDdiNzI3YzJjMDI0NGRmNTA4Zjcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaApAQCAtNDgsNiArNDgsNyBAQCBzdHJ1Y3Qg
VGVzdE9wdGlvbnMgewogICAgIGJvb2wgZW5hYmxlU2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRh
cmllcyB7IHRydWUgfTsKICAgICBib29sIGVuYWJsZVdlYkdQVSB7IGZhbHNlIH07CiAgICAgYm9v
bCBlbmFibGVDU1NMb2dpY2FsIHsgZmFsc2UgfTsKKyAgICBib29sIGVuYWJsZU1vdGlvbiB7IGZh
bHNlIH07CiAgICAgYm9vbCBhZENsaWNrQXR0cmlidXRpb25FbmFibGVkIHsgZmFsc2UgfTsKICAg
ICBib29sIGVuYWJsZVJlc2l6ZU9ic2VydmVyIHsgZmFsc2UgfTsKICAgICBib29sIGVuYWJsZUNv
cmVNYXRoTUwgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlLm1tCmluZGV4IDI0YzMyZjgzOWE2NzdhOTI5ODIwMTAzNTFmN2FiMTIxZjRlMGFlN2QuLjMz
MGFmOTY4ZjY0NzQ0NmEzNTIxNWJhMTU1NzRjYjU3NDBkNDU1YjggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTEwMjUsNiArMTAyNSw3IEBAIHN0YXRp
YyB2b2lkIHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMm
IG9wdGlvbnMpCiAgICAgcHJlZmVyZW5jZXMuc2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmll
c0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXM7
CiAgICAgcHJlZmVyZW5jZXMud2ViR1BVRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlV2ViR1BVOwog
ICAgIHByZWZlcmVuY2VzLkNTU0xvZ2ljYWxFbmFibGVkID0gb3B0aW9ucy5lbmFibGVDU1NMb2dp
Y2FsOworICAgIHByZWZlcmVuY2VzLkNTU01vdGlvblBhdGhFbmFibGVkID0gb3B0aW9ucy5lbmFi
bGVNb3Rpb247CiAgICAgcHJlZmVyZW5jZXMuYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZCA9IG9w
dGlvbnMuYWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZDsKICAgICBwcmVmZXJlbmNlcy5yZXNpemVP
YnNlcnZlckVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVJlc2l6ZU9ic2VydmVyOwogICAgIHByZWZl
cmVuY2VzLmNvcmVNYXRoTUxFbmFibGVkID0gb3B0aW9ucy5lbmFibGVDb3JlTWF0aE1MOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDMxZmE5YWQ0YTk4YzlhYzE3NzQwZmI3OTE5Mzg4MTdlNTkwMDEwNTEuLjJhNzMwMDMwYTBl
ZGY3ODM4ZWEzNWQ0MjFmZmE0NTc5MjE2ODdlNmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAx
OS0xMS0wNSAgRGlyayBTY2h1bHplICA8a3JpdEB3ZWJraXQub3JnPgorCisgICAgICAgIFN1cHBv
cnQgcGFyc2luZywgY29tcHV0ZWQgc3R5bGUgYW5kIHByb3BlcnR5IHN0eWxlIGZvciBvZmZzZXQs
IG9mZnNldC1wYXRoLCBvZmZzZXQtZGlzdGFuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzg0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyBmb3IgcGFyc2luZywgY29tcHV0ZWQgc3R5
bGUgYW5kIHByb3BlcnR5IHN0eWxlIGZvciB0aGUKKyAgICAgICAgcHJvcGVydGllczogb2Zmc2V0
LCBvZmZzZXQtcGF0aCwgb2Zmc2V0LWRpc3RhbmNlLgorCisgICAgICAgICogZmFzdC9jc3Mvb2Zm
c2V0L3BhcnNpbmctb2Zmc2V0LWRpc3RhbmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9jc3Mvb2Zmc2V0L3BhcnNpbmctb2Zmc2V0LWRpc3RhbmNlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzL29mZnNldC9wYXJzaW5nLW9mZnNldC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvY3NzL29mZnNldC9wYXJzaW5nLW9mZnNldC1wYXRoLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mvb2Zmc2V0L3BhcnNpbmctb2Zmc2V0
LXBhdGguaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mvb2Zmc2V0L3BhcnNpbmctb2Zm
c2V0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmV4cG9zZWQvY3NzLXByb3BlcnRpZXMtYmVo
aW5kLWZsYWdzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJleHBvc2VkL2Nzcy1wcm9wZXJ0
aWVzLWJlaGluZC1mbGFncy5odG1sOgorCiAyMDE5LTExLTA1ICB5b3Vlbm4gZmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBtcDQgdmlkZW8gZWxlbWVudCBicm9rZW4gd2l0aCBz
ZXJ2aWNlIHdvcmtlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvb2Zmc2V0L3Bh
cnNpbmctb2Zmc2V0LWRpc3RhbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L29mZnNldC9wYXJzaW5nLW9mZnNldC1kaXN0YW5jZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjgwMmQ5MTFjZjE1ZWQxYjE1MWI5OGYzYWI4NzBkZGEyNTA3OWNhOQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL29mZnNldC9wYXJzaW5nLW9mZnNldC1kaXN0YW5jZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNyBAQAorVGVzdCBwYXJzaW5nIGFuZCBjb21wdXRlZCBz
dHlsZSBvZiBvZmZzZXQtZGlzdGFuY2UKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgaW5uZXJTdHlsZSgib2Zmc2V0LWRpc3RhbmNlIiwgIjAiKSBpcyAiMHB4IgorUEFTUyBp
bm5lclN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAiMjBweCIpIGlzICIyMHB4IgorUEFTUyBpbm5l
clN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAiMjAlIikgaXMgIjIwJSIKK1BBU1MgaW5uZXJTdHls
ZSgib2Zmc2V0LWRpc3RhbmNlIiwgIjJlMSUiKSBpcyAiMjAlIgorUEFTUyBpbm5lclN0eWxlKCJv
ZmZzZXQtZGlzdGFuY2UiLCAiMjAwZS0xcHgiKSBpcyAiMjBweCIKK1BBU1MgY29tcHV0ZWRTdHls
ZSgib2Zmc2V0LWRpc3RhbmNlIiwgIjAiKSBpcyAiMHB4IgorUEFTUyBjb21wdXRlZFN0eWxlKCJv
ZmZzZXQtZGlzdGFuY2UiLCAiMjBweCIpIGlzICIyMHB4IgorUEFTUyBjb21wdXRlZFN0eWxlKCJv
ZmZzZXQtZGlzdGFuY2UiLCAiMjAlIikgaXMgIjIwJSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zm
c2V0LWRpc3RhbmNlIiwgIjJlMSUiKSBpcyAiMjAlIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZz
ZXQtZGlzdGFuY2UiLCAiMjAwZS0xcHgiKSBpcyAiMjBweCIKK1BBU1MgaW5uZXJTdHlsZSgib2Zm
c2V0LWRpc3RhbmNlIiwgInBhdGgoJ00wIDAnKSAyMHB4IikgaXMgIiIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgib2Zmc2V0LWRpc3RhbmNlIiwgInBhdGgoJ00wIDAnKSAyMHB4IikgaXMgIjBweCIKK1BB
U1MgaW5uZXJTdHlsZSgib2Zmc2V0LWRpc3RhbmNlIiwgIjIwcHggcGF0aCgnTTAgMCcpIikgaXMg
IiIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0LWRpc3RhbmNlIiwgIjIwcHggcGF0aCgnTTAg
MCcpIikgaXMgIjBweCIKK1BBU1MgaW5uZXJTdHlsZSgib2Zmc2V0LWRpc3RhbmNlIiwgImF1dG8i
KSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAiYXV0byIpIGlz
ICIwcHgiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldC1kaXN0YW5jZSIsICJhdXRvIikgaXMgIiIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0LWRpc3RhbmNlIiwgImF1dG8iKSBpcyAiMHB4Igor
UEFTUyBpbm5lclN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAiLTIwcHgiKSBpcyAiIgorUEFTUyBj
b21wdXRlZFN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAiLTIwcHgiKSBpcyAiMHB4IgorUEFTUyBp
bm5lclN0eWxlKCJvZmZzZXQtZGlzdGFuY2UiLCAiLTIwJSIpIGlzICIiCitQQVNTIGNvbXB1dGVk
U3R5bGUoIm9mZnNldC1kaXN0YW5jZSIsICItMjAlIikgaXMgIjBweCIKK1BBU1MgaW5uZXJTdHls
ZSgib2Zmc2V0LWRpc3RhbmNlIiwgIidzdHInIikgaXMgIiIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
b2Zmc2V0LWRpc3RhbmNlIiwgIidzdHInIikgaXMgIjBweCIKK1BBU1MgaW5uZXJTdHlsZSgib2Zm
c2V0LWRpc3RhbmNlIiwgInRvcCBsZWZ0IikgaXMgIiIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zm
c2V0LWRpc3RhbmNlIiwgInRvcCBsZWZ0IikgaXMgIjBweCIKK1BBU1MgaW5uZXJTdHlsZSgib2Zm
c2V0LWRpc3RhbmNlIiwgInBhdGgoJ00xMDAgMTAwIDIwMCAyMDAgMCAyMDAgeicpIikgaXMgIiIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0LWRpc3RhbmNlIiwgInBhdGgoJ00xMDAgMTAwIDIw
MCAyMDAgMCAyMDAgeicpIikgaXMgIjBweCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9v
ZmZzZXQvcGFyc2luZy1vZmZzZXQtZGlzdGFuY2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L29mZnNldC9wYXJzaW5nLW9mZnNldC1kaXN0YW5jZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5NzgxZDgx
N2IwYzczNDUxMGIyMmZjNWZmMjczNzFiN2I3YTk2YzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9vZmZzZXQvcGFyc2luZy1vZmZzZXQtZGlzdGFuY2UuaHRtbApAQCAt
MCwwICsxLDcwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlu
dGVybmFsOkNTU01vdGlvblBhdGhFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPHN0eWxlPgor
KiB7IGZvbnQtc2l6ZTogMTZweDsgfQorZGl2IHsgZm9udC1zaXplOiA4cHg7IH0KKzwvc3R5bGU+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHBhcnNpbmcgYW5kIGNvbXB1
dGVkIHN0eWxlIG9mIG9mZnNldC1kaXN0YW5jZScpOworCitmdW5jdGlvbiBjb21wdXRlZFN0eWxl
KHByb3BlcnR5LCB2YWx1ZSkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CisgICAgZGl2LnN0
eWxlLnNldFByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7CisgICAgdmFyIGNvbXB1dGVkVmFsdWUg
PSBnZXRDb21wdXRlZFN0eWxlKGRpdikuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSk7CisgICAg
ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpOworICAgIHJldHVybiBjb21wdXRlZFZhbHVl
OworfQorCitmdW5jdGlvbiBpbm5lclN0eWxlKHByb3BlcnR5LCB2YWx1ZSkgeworICAgIHZhciBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBkaXYuc3R5bGUuc2V0UHJv
cGVydHkocHJvcGVydHksIHZhbHVlKTsKKyAgICByZXR1cm4gZGl2LnN0eWxlLmdldFByb3BlcnR5
VmFsdWUocHJvcGVydHkpOworfQorCitmdW5jdGlvbiB0ZXN0Q29tcHV0ZWQocHJvcGVydHksIHZh
bHVlLCBleHBlY3RlZCkgeworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnY29tcHV0ZWRTdHls
ZSgiJyArIHByb3BlcnR5ICsgJyIsICInICsgdmFsdWUgKyAnIiknLCBleHBlY3RlZCk7Cit9CisK
K2Z1bmN0aW9uIHRlc3RJbm5lcihwcm9wZXJ0eSwgdmFsdWUsIGV4cGVjdGVkKSB7CisgICAgaWYg
KGV4cGVjdGVkID09PSBudWxsKQorICAgICAgICBleHBlY3RlZCA9ICIiOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnaW5uZXJTdHlsZSgiJyArIHByb3BlcnR5ICsgJyIsICInICsgdmFsdWUg
KyAnIiknLCBleHBlY3RlZCk7Cit9CisKK2Z1bmN0aW9uIG5lZ2F0aXZlVGVzdChwcm9wZXJ0eSwg
dmFsdWUpIHsKKyAgICB0ZXN0SW5uZXIocHJvcGVydHksIHZhbHVlLCBudWxsKTsKKyAgICB0ZXN0
Q29tcHV0ZWQocHJvcGVydHksIHZhbHVlLCAnMHB4Jyk7Cit9CisKKy8vIFByb3BlcnR5IHN0eWxl
Cit0ZXN0SW5uZXIoIm9mZnNldC1kaXN0YW5jZSIsICIwIiwgIjBweCIpOwordGVzdElubmVyKCJv
ZmZzZXQtZGlzdGFuY2UiLCAiMjBweCIsICIyMHB4Iik7Cit0ZXN0SW5uZXIoIm9mZnNldC1kaXN0
YW5jZSIsICIyMCUiLCAiMjAlIik7Cit0ZXN0SW5uZXIoIm9mZnNldC1kaXN0YW5jZSIsICIyZTEl
IiwgIjIwJSIpOwordGVzdElubmVyKCJvZmZzZXQtZGlzdGFuY2UiLCAiMjAwZS0xcHgiLCAiMjBw
eCIpOworCisvLyBDb21wdXRlZCBzdHlsZQordGVzdENvbXB1dGVkKCJvZmZzZXQtZGlzdGFuY2Ui
LCAiMCIsICIwcHgiKTsKK3Rlc3RDb21wdXRlZCgib2Zmc2V0LWRpc3RhbmNlIiwgIjIwcHgiLCAi
MjBweCIpOwordGVzdENvbXB1dGVkKCJvZmZzZXQtZGlzdGFuY2UiLCAiMjAlIiwgIjIwJSIpOwor
dGVzdENvbXB1dGVkKCJvZmZzZXQtZGlzdGFuY2UiLCAiMmUxJSIsICIyMCUiKTsKK3Rlc3RDb21w
dXRlZCgib2Zmc2V0LWRpc3RhbmNlIiwgIjIwMGUtMXB4IiwgIjIwcHgiKTsKKworLy8gaW52YWxp
ZAorbmVnYXRpdmVUZXN0KCJvZmZzZXQtZGlzdGFuY2UiLCAicGF0aCgnTTAgMCcpIDIwcHgiKTsK
K25lZ2F0aXZlVGVzdCgib2Zmc2V0LWRpc3RhbmNlIiwgIjIwcHggcGF0aCgnTTAgMCcpIik7Citu
ZWdhdGl2ZVRlc3QoIm9mZnNldC1kaXN0YW5jZSIsICJhdXRvIik7CituZWdhdGl2ZVRlc3QoIm9m
ZnNldC1kaXN0YW5jZSIsICJhdXRvIik7CituZWdhdGl2ZVRlc3QoIm9mZnNldC1kaXN0YW5jZSIs
ICItMjBweCIpOworbmVnYXRpdmVUZXN0KCJvZmZzZXQtZGlzdGFuY2UiLCAiLTIwJSIpOworbmVn
YXRpdmVUZXN0KCJvZmZzZXQtZGlzdGFuY2UiLCAiJ3N0ciciKTsKK25lZ2F0aXZlVGVzdCgib2Zm
c2V0LWRpc3RhbmNlIiwgInRvcCBsZWZ0Iik7CituZWdhdGl2ZVRlc3QoIm9mZnNldC1kaXN0YW5j
ZSIsICJwYXRoKCdNMTAwIDEwMCAyMDAgMjAwIDAgMjAwIHonKSIpOworCis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL29mZnNl
dC9wYXJzaW5nLW9mZnNldC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9vZmZz
ZXQvcGFyc2luZy1vZmZzZXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzMWI2YWIwOTk0Yjgy
ZTc1ZTM2OTMzNTBmMTZiODI3ZjYxMjhjMTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9vZmZzZXQvcGFyc2luZy1vZmZzZXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MzkgQEAKK1Rlc3QgcGFyc2luZyBhbmQgY29tcHV0ZWQgc3R5bGUgb2Ygb2Zmc2V0CisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldCIsICJub25l
IikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldCIsICJwYXRoKCdNMCAwIEwgMTAw
IDAgTCAxMDAgMTAweicpIikgaXMgInBhdGgoXCJNIDAgMCBMIDEwMCAwIEwgMTAwIDEwMCBaXCIp
IgorUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQiLCAicGF0aCgnTTAgMCBMIDEwMCAwIEwgMTAwIDEw
MCcpIikgaXMgInBhdGgoXCJNIDAgMCBMIDEwMCAwIEwgMTAwIDEwMFwiKSIKK1BBU1MgaW5uZXJT
dHlsZSgib2Zmc2V0IiwgInBhdGgoJ00wIDAnKSIpIGlzICJwYXRoKFwiTSAwIDBcIikiCitQQVNT
IGlubmVyU3R5bGUoIm9mZnNldCIsICJwYXRoKCdNMCAwIEwgMTAwIDAgTCAxMDAgMTAweicpIDIw
cHgiKSBpcyAicGF0aChcIk0gMCAwIEwgMTAwIDAgTCAxMDAgMTAwIFpcIikgMjBweCIKK1BBU1Mg
Y29tcHV0ZWRTdHlsZSgib2Zmc2V0IiwgIm5vbmUiKSBpcyAibm9uZSAwcHgiCitQQVNTIGNvbXB1
dGVkU3R5bGUoIm9mZnNldCIsICJwYXRoKCdNMCAwIEwgMTAwIDAgTCAxMDAgMTAweicpIDIwcHgi
KSBpcyAicGF0aChcIk0gMCAwIEwgMTAwIDAgTCAxMDAgMTAwIFpcIikgMjBweCIKK1BBU1MgY29t
cHV0ZWRTdHlsZSgib2Zmc2V0IiwgInBhdGgoJ00wIDAgTCAxMDAgMCBMIDEwMCAxMDB6JykiKSBp
cyAicGF0aChcIk0gMCAwIEwgMTAwIDAgTCAxMDAgMTAwIFpcIikgMHB4IgorUEFTUyBjb21wdXRl
ZFN0eWxlKCJvZmZzZXQiLCAicGF0aCgnTTAgMCBMIDEwMCAwIEwgMTAwIDEwMCcpIikgaXMgInBh
dGgoXCJNIDAgMCBMIDEwMCAwIEwgMTAwIDEwMFwiKSAwcHgiCitQQVNTIGNvbXB1dGVkU3R5bGUo
Im9mZnNldCIsICJwYXRoKCdNMCAwJykiKSBpcyAicGF0aChcIk0gMCAwXCIpIDBweCIKK1BBU1Mg
aW5uZXJTdHlsZSgib2Zmc2V0IiwgIjAiKSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZz
ZXQiLCAiMCIpIGlzICJub25lIDBweCIKK1BBU1MgaW5uZXJTdHlsZSgib2Zmc2V0IiwgIjIwcHgi
KSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQiLCAiMjBweCIpIGlzICJub25lIDBw
eCIKK1BBU1MgaW5uZXJTdHlsZSgib2Zmc2V0IiwgIjIwJSIpIGlzICIiCitQQVNTIGNvbXB1dGVk
U3R5bGUoIm9mZnNldCIsICIyMCUiKSBpcyAibm9uZSAwcHgiCitQQVNTIGlubmVyU3R5bGUoIm9m
ZnNldCIsICItMjBweCIpIGlzICIiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldCIsICItMjBw
eCIpIGlzICJub25lIDBweCIKK1BBU1MgaW5uZXJTdHlsZSgib2Zmc2V0IiwgIi0yMCUiKSBpcyAi
IgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQiLCAiLTIwJSIpIGlzICJub25lIDBweCIKK1BB
U1MgaW5uZXJTdHlsZSgib2Zmc2V0IiwgIjJlMSUiKSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxl
KCJvZmZzZXQiLCAiMmUxJSIpIGlzICJub25lIDBweCIKK1BBU1MgaW5uZXJTdHlsZSgib2Zmc2V0
IiwgIjJlMSUiKSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQiLCAiMmUxJSIpIGlz
ICJub25lIDBweCIKK1BBU1MgaW5uZXJTdHlsZSgib2Zmc2V0IiwgIjIwMGUtMXB4IikgaXMgIiIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0IiwgIjIwMGUtMXB4IikgaXMgIm5vbmUgMHB4Igor
UEFTUyBpbm5lclN0eWxlKCJvZmZzZXQiLCAicGF0aCgnTTAgMCcpIG5vbnNlbnNlIikgaXMgIiIK
K1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0IiwgInBhdGgoJ00wIDAnKSBub25zZW5zZSIpIGlz
ICJub25lIDBweCIKK1BBU1MgaW5uZXJTdHlsZSgib2Zmc2V0IiwgIjIwcHggcGF0aCgnTTAgMCBM
IDEwMCAwIEwgMTAwIDEwMHonKSIpIGlzICIiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldCIs
ICIyMHB4IHBhdGgoJ00wIDAgTCAxMDAgMCBMIDEwMCAxMDB6JykiKSBpcyAibm9uZSAwcHgiCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvb2Zmc2V0L3BhcnNpbmctb2Zmc2V0LXBhdGgtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvb2Zmc2V0L3BhcnNpbmctb2Zmc2V0LXBh
dGgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2NDJkMDA0NjU4MDM2NDM1NzE5ZTM2OGY4ZTcz
ZTFiZWEwYzNkNDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9vZmZz
ZXQvcGFyc2luZy1vZmZzZXQtcGF0aC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MyBAQAorVGVz
dCBwYXJzaW5nIGFuZCBjb21wdXRlZCBzdHlsZSBvZiBvZmZzZXQtcGF0aAorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQtcGF0aCIsICJub25l
IikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAg
TCAxMDAgMCBMIDEwMCAxMDB6JykiKSBpcyAicGF0aChcIk0gMCAwIEwgMTAwIDAgTCAxMDAgMTAw
IFpcIikiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAgTCAxMDAg
MCBMIDEwMCAxMDAnKSIpIGlzICJwYXRoKFwiTSAwIDAgTCAxMDAgMCBMIDEwMCAxMDBcIikiCitQ
QVNTIGlubmVyU3R5bGUoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAnKSIpIGlzICJwYXRoKFwi
TSAwIDBcIikiCitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldC1wYXRoIiwgIm5vbmUiKSBpcyAi
bm9uZSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0LXBhdGgiLCAicGF0aCgnTTAgMCBMIDEw
MCAwIEwgMTAwIDEwMHonKSIpIGlzICJwYXRoKFwiTSAwIDAgTCAxMDAgMCBMIDEwMCAxMDAgWlwi
KSIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0LXBhdGgiLCAicGF0aCgnTTAgMCBMIDEwMCAw
IEwgMTAwIDEwMCcpIikgaXMgInBhdGgoXCJNIDAgMCBMIDEwMCAwIEwgMTAwIDEwMFwiKSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0LXBhdGgiLCAicGF0aCgnTTAgMCcpIikgaXMgInBhdGgo
XCJNIDAgMFwiKSIKK1BBU1MgaW5uZXJTdHlsZSgib2Zmc2V0LXBhdGgiLCAiYXV0byIpIGlzICIi
CitQQVNTIGNvbXB1dGVkU3R5bGUoIm9mZnNldC1wYXRoIiwgImF1dG8iKSBpcyAibm9uZSIKK1BB
U1MgaW5uZXJTdHlsZSgib2Zmc2V0LXBhdGgiLCAicGF0aCgpIikgaXMgIiIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgib2Zmc2V0LXBhdGgiLCAicGF0aCgpIikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5
bGUoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAnKSBub25lIikgaXMgIiIKK1BBU1MgY29tcHV0
ZWRTdHlsZSgib2Zmc2V0LXBhdGgiLCAicGF0aCgnTTAgMCcpIG5vbmUiKSBpcyAibm9uZSIKK1BB
U1MgaW5uZXJTdHlsZSgib2Zmc2V0LXBhdGgiLCAibm9uZSBwYXRoKCdNMCAwJykiKSBpcyAiIgor
UEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQtcGF0aCIsICJub25lIHBhdGgoJ00wIDAnKSIpIGlz
ICJub25lIgorUEFTUyBpbm5lclN0eWxlKCJvZmZzZXQtcGF0aCIsICJwYXRoKCdNMCAwJykgcGF0
aCgnTTAgMCcpIikgaXMgIiIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0LXBhdGgiLCAicGF0
aCgnTTAgMCcpIHBhdGgoJ00wIDAnKSIpIGlzICJub25lIgorUEFTUyBpbm5lclN0eWxlKCJvZmZz
ZXQtcGF0aCIsICJub25lIG5vbmUiKSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQt
cGF0aCIsICJub25lIG5vbmUiKSBpcyAibm9uZSIKK1BBU1MgaW5uZXJTdHlsZSgib2Zmc2V0LXBh
dGgiLCAicGF0aCgnTTAgMCcpIDIwcHgiKSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZz
ZXQtcGF0aCIsICJwYXRoKCdNMCAwJykgMjBweCIpIGlzICJub25lIgorUEFTUyBpbm5lclN0eWxl
KCJvZmZzZXQtcGF0aCIsICJwYXRoKCdNMCAwJykgMjAlIikgaXMgIiIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgib2Zmc2V0LXBhdGgiLCAicGF0aCgnTTAgMCcpIDIwJSIpIGlzICJub25lIgorUEFTUyBp
bm5lclN0eWxlKCJvZmZzZXQtcGF0aCIsICJ1cmwoI3NoYXBlKSIpIGlzICIiCitQQVNTIGNvbXB1
dGVkU3R5bGUoIm9mZnNldC1wYXRoIiwgInVybCgjc2hhcGUpIikgaXMgIm5vbmUiCitQQVNTIGlu
bmVyU3R5bGUoIm9mZnNldC1wYXRoIiwgImNpcmNsZSgpIikgaXMgIiIKK1BBU1MgY29tcHV0ZWRT
dHlsZSgib2Zmc2V0LXBhdGgiLCAiY2lyY2xlKCkiKSBpcyAibm9uZSIKK1BBU1MgaW5uZXJTdHls
ZSgib2Zmc2V0LXBhdGgiLCAiZWxsaXBzZSgpIikgaXMgIiIKK1BBU1MgY29tcHV0ZWRTdHlsZSgi
b2Zmc2V0LXBhdGgiLCAiZWxsaXBzZSgpIikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5bGUoIm9m
ZnNldC1wYXRoIiwgImluc2V0KCkiKSBpcyAiIgorUEFTUyBjb21wdXRlZFN0eWxlKCJvZmZzZXQt
cGF0aCIsICJpbnNldCgpIikgaXMgIm5vbmUiCitQQVNTIGlubmVyU3R5bGUoIm9mZnNldC1wYXRo
IiwgInJlY3RhbmdsZSgpIikgaXMgIiIKK1BBU1MgY29tcHV0ZWRTdHlsZSgib2Zmc2V0LXBhdGgi
LCAicmVjdGFuZ2xlKCkiKSBpcyAibm9uZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9v
ZmZzZXQvcGFyc2luZy1vZmZzZXQtcGF0aC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvb2Zm
c2V0L3BhcnNpbmctb2Zmc2V0LXBhdGguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzliZTAwYTVhOGM0YzVi
YTJiMWUxMTc2NDAxNTVkNWFmNWRiZjgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3Mvb2Zmc2V0L3BhcnNpbmctb2Zmc2V0LXBhdGguaHRtbApAQCAtMCwwICsxLDc0IEBA
Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGludGVybmFsOkNTU01v
dGlvblBhdGhFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPHN0eWxlPgorKiB7IGZvbnQtc2l6
ZTogMTZweDsgfQorZGl2IHsgZm9udC1zaXplOiA4cHg7IH0KKzwvc3R5bGU+Cis8Ym9keT4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHBhcnNpbmcgYW5kIGNvbXB1dGVkIHN0eWxlIG9m
IG9mZnNldC1wYXRoJyk7CisKK2Z1bmN0aW9uIGNvbXB1dGVkU3R5bGUocHJvcGVydHksIHZhbHVl
KSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICBkaXYuc3R5bGUuc2V0UHJvcGVydHko
cHJvcGVydHksIHZhbHVlKTsKKyAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9IGdldENvbXB1dGVkU3R5
bGUoZGl2KS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKKyAgICBkb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKGRpdik7CisgICAgcmV0dXJuIGNvbXB1dGVkVmFsdWU7Cit9CisKK2Z1bmN0aW9u
IGlubmVyU3R5bGUocHJvcGVydHksIHZhbHVlKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRpdi5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwg
dmFsdWUpOworICAgIHJldHVybiBkaXYuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSk7
Cit9CisKK2Z1bmN0aW9uIHRlc3RDb21wdXRlZChwcm9wZXJ0eSwgdmFsdWUsIGV4cGVjdGVkKSB7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21wdXRlZFN0eWxlKCInICsgcHJvcGVydHkg
KyAnIiwgIicgKyB2YWx1ZSArICciKScsIGV4cGVjdGVkKTsKK30KKworZnVuY3Rpb24gdGVzdElu
bmVyKHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoZXhwZWN0ZWQgPT09IG51
bGwpCisgICAgICAgIGV4cGVjdGVkID0gIiI7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdp
bm5lclN0eWxlKCInICsgcHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScsIGV4cGVjdGVk
KTsKK30KKworZnVuY3Rpb24gbmVnYXRpdmVUZXN0KHByb3BlcnR5LCB2YWx1ZSkgeworICAgIHRl
c3RJbm5lcihwcm9wZXJ0eSwgdmFsdWUsIG51bGwpOworICAgIHRlc3RDb21wdXRlZChwcm9wZXJ0
eSwgdmFsdWUsICdub25lJyk7Cit9CisKKy8vIFByb3BlcnR5IHN0eWxlCit0ZXN0SW5uZXIoIm9m
ZnNldC1wYXRoIiwgIm5vbmUiLCAibm9uZSIpOwordGVzdElubmVyKCJvZmZzZXQtcGF0aCIsICJw
YXRoKCdNMCAwIEwgMTAwIDAgTCAxMDAgMTAweicpIiwgInBhdGgoXCJNIDAgMCBMIDEwMCAwIEwg
MTAwIDEwMCBaXCIpIik7Cit0ZXN0SW5uZXIoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAgTCAx
MDAgMCBMIDEwMCAxMDAnKSIsICJwYXRoKFwiTSAwIDAgTCAxMDAgMCBMIDEwMCAxMDBcIikiKTsK
K3Rlc3RJbm5lcigib2Zmc2V0LXBhdGgiLCAicGF0aCgnTTAgMCcpIiwgInBhdGgoXCJNIDAgMFwi
KSIpOworCisvLyBDb21wdXRlZCBzdHlsZQordGVzdENvbXB1dGVkKCJvZmZzZXQtcGF0aCIsICJu
b25lIiwgIm5vbmUiKTsKK3Rlc3RDb21wdXRlZCgib2Zmc2V0LXBhdGgiLCAicGF0aCgnTTAgMCBM
IDEwMCAwIEwgMTAwIDEwMHonKSIsICJwYXRoKFwiTSAwIDAgTCAxMDAgMCBMIDEwMCAxMDAgWlwi
KSIpOwordGVzdENvbXB1dGVkKCJvZmZzZXQtcGF0aCIsICJwYXRoKCdNMCAwIEwgMTAwIDAgTCAx
MDAgMTAwJykiLCAicGF0aChcIk0gMCAwIEwgMTAwIDAgTCAxMDAgMTAwXCIpIik7Cit0ZXN0Q29t
cHV0ZWQoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAnKSIsICJwYXRoKFwiTSAwIDBcIikiKTsK
KworCisvLyBpbnZhbGlkCituZWdhdGl2ZVRlc3QoIm9mZnNldC1wYXRoIiwgImF1dG8iKTsKK25l
Z2F0aXZlVGVzdCgib2Zmc2V0LXBhdGgiLCAicGF0aCgpIik7CituZWdhdGl2ZVRlc3QoIm9mZnNl
dC1wYXRoIiwgInBhdGgoJ00wIDAnKSBub25lIik7CituZWdhdGl2ZVRlc3QoIm9mZnNldC1wYXRo
IiwgIm5vbmUgcGF0aCgnTTAgMCcpIik7CituZWdhdGl2ZVRlc3QoIm9mZnNldC1wYXRoIiwgInBh
dGgoJ00wIDAnKSBwYXRoKCdNMCAwJykiKTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0LXBhdGgiLCAi
bm9uZSBub25lIik7CituZWdhdGl2ZVRlc3QoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAnKSAy
MHB4Iik7CituZWdhdGl2ZVRlc3QoIm9mZnNldC1wYXRoIiwgInBhdGgoJ00wIDAnKSAyMCUiKTsK
Ky8vIE1heSBnZXQgdmFsaWQgaW4gdGhlIGZ1dHVyZS4KK25lZ2F0aXZlVGVzdCgib2Zmc2V0LXBh
dGgiLCAidXJsKCNzaGFwZSkiKTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0LXBhdGgiLCAiY2lyY2xl
KCkiKTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0LXBhdGgiLCAiZWxsaXBzZSgpIik7CituZWdhdGl2
ZVRlc3QoIm9mZnNldC1wYXRoIiwgImluc2V0KCkiKTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0LXBh
dGgiLCAicmVjdGFuZ2xlKCkiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9vZmZzZXQvcGFyc2luZy1vZmZzZXQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL29mZnNldC9wYXJzaW5nLW9mZnNldC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFiYWE5ODE4MDc3MTYzZjQ4NTFmMWZmMmZkZGUyYWMzOWUwNDU2YTEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9vZmZzZXQvcGFyc2luZy1vZmZzZXQuaHRt
bApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGludGVybmFsOkNTU01vdGlvblBhdGhFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPHN0
eWxlPgorKiB7IGZvbnQtc2l6ZTogMTZweDsgfQorZGl2IHsgZm9udC1zaXplOiA4cHg7IH0KKzwv
c3R5bGU+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IHBhcnNpbmcgYW5k
IGNvbXB1dGVkIHN0eWxlIG9mIG9mZnNldCcpOworCitmdW5jdGlvbiBjb21wdXRlZFN0eWxlKHBy
b3BlcnR5LCB2YWx1ZSkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CisgICAgZGl2LnN0eWxl
LnNldFByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7CisgICAgdmFyIGNvbXB1dGVkVmFsdWUgPSBn
ZXRDb21wdXRlZFN0eWxlKGRpdikuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSk7CisgICAgZG9j
dW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpOworICAgIHJldHVybiBjb21wdXRlZFZhbHVlOwor
fQorCitmdW5jdGlvbiBpbm5lclN0eWxlKHByb3BlcnR5LCB2YWx1ZSkgeworICAgIHZhciBkaXYg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBkaXYuc3R5bGUuc2V0UHJvcGVy
dHkocHJvcGVydHksIHZhbHVlKTsKKyAgICByZXR1cm4gZGl2LnN0eWxlLmdldFByb3BlcnR5VmFs
dWUocHJvcGVydHkpOworfQorCitmdW5jdGlvbiB0ZXN0Q29tcHV0ZWQocHJvcGVydHksIHZhbHVl
LCBleHBlY3RlZCkgeworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnY29tcHV0ZWRTdHlsZSgi
JyArIHByb3BlcnR5ICsgJyIsICInICsgdmFsdWUgKyAnIiknLCBleHBlY3RlZCk7Cit9CisKK2Z1
bmN0aW9uIHRlc3RJbm5lcihwcm9wZXJ0eSwgdmFsdWUsIGV4cGVjdGVkKSB7CisgICAgaWYgKGV4
cGVjdGVkID09PSBudWxsKQorICAgICAgICBleHBlY3RlZCA9ICIiOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygnaW5uZXJTdHlsZSgiJyArIHByb3BlcnR5ICsgJyIsICInICsgdmFsdWUgKyAn
IiknLCBleHBlY3RlZCk7Cit9CisKK2Z1bmN0aW9uIG5lZ2F0aXZlVGVzdChwcm9wZXJ0eSwgdmFs
dWUpIHsKKyAgICB0ZXN0SW5uZXIocHJvcGVydHksIHZhbHVlLCBudWxsKTsKKyAgICB0ZXN0Q29t
cHV0ZWQocHJvcGVydHksIHZhbHVlLCAnbm9uZSAwcHgnKTsKK30KKworCit0ZXN0SW5uZXIoIm9m
ZnNldCIsICJub25lIiwgIm5vbmUiKTsKK3Rlc3RJbm5lcigib2Zmc2V0IiwgInBhdGgoJ00wIDAg
TCAxMDAgMCBMIDEwMCAxMDB6JykiLCAicGF0aChcIk0gMCAwIEwgMTAwIDAgTCAxMDAgMTAwIFpc
IikiKTsKK3Rlc3RJbm5lcigib2Zmc2V0IiwgInBhdGgoJ00wIDAgTCAxMDAgMCBMIDEwMCAxMDAn
KSIsICJwYXRoKFwiTSAwIDAgTCAxMDAgMCBMIDEwMCAxMDBcIikiKTsKK3Rlc3RJbm5lcigib2Zm
c2V0IiwgInBhdGgoJ00wIDAnKSIsICJwYXRoKFwiTSAwIDBcIikiKTsKK3Rlc3RJbm5lcigib2Zm
c2V0IiwgInBhdGgoJ00wIDAgTCAxMDAgMCBMIDEwMCAxMDB6JykgMjBweCIsICJwYXRoKFwiTSAw
IDAgTCAxMDAgMCBMIDEwMCAxMDAgWlwiKSAyMHB4Iik7CisKKy8vIENvbXB1dGVkIHN0eWxlCit0
ZXN0Q29tcHV0ZWQoIm9mZnNldCIsICJub25lIiwgIm5vbmUgMHB4Iik7Cit0ZXN0Q29tcHV0ZWQo
Im9mZnNldCIsICJwYXRoKCdNMCAwIEwgMTAwIDAgTCAxMDAgMTAweicpIDIwcHgiLCAicGF0aChc
Ik0gMCAwIEwgMTAwIDAgTCAxMDAgMTAwIFpcIikgMjBweCIpOwordGVzdENvbXB1dGVkKCJvZmZz
ZXQiLCAicGF0aCgnTTAgMCBMIDEwMCAwIEwgMTAwIDEwMHonKSIsICJwYXRoKFwiTSAwIDAgTCAx
MDAgMCBMIDEwMCAxMDAgWlwiKSAwcHgiKTsKK3Rlc3RDb21wdXRlZCgib2Zmc2V0IiwgInBhdGgo
J00wIDAgTCAxMDAgMCBMIDEwMCAxMDAnKSIsICJwYXRoKFwiTSAwIDAgTCAxMDAgMCBMIDEwMCAx
MDBcIikgMHB4Iik7Cit0ZXN0Q29tcHV0ZWQoIm9mZnNldCIsICJwYXRoKCdNMCAwJykiLCAicGF0
aChcIk0gMCAwXCIpIDBweCIpOworCisvLyBpbnZhbGlkIHN0eWxlCituZWdhdGl2ZVRlc3QoIm9m
ZnNldCIsICIwIik7CituZWdhdGl2ZVRlc3QoIm9mZnNldCIsICIyMHB4Iik7CituZWdhdGl2ZVRl
c3QoIm9mZnNldCIsICIyMCUiKTsKK25lZ2F0aXZlVGVzdCgib2Zmc2V0IiwgIi0yMHB4Iik7Citu
ZWdhdGl2ZVRlc3QoIm9mZnNldCIsICItMjAlIik7CituZWdhdGl2ZVRlc3QoIm9mZnNldCIsICIy
ZTElIik7CituZWdhdGl2ZVRlc3QoIm9mZnNldCIsICIyZTElIik7CituZWdhdGl2ZVRlc3QoIm9m
ZnNldCIsICIyMDBlLTFweCIpOworbmVnYXRpdmVUZXN0KCJvZmZzZXQiLCAicGF0aCgnTTAgMCcp
IG5vbnNlbnNlIik7CituZWdhdGl2ZVRlc3QoIm9mZnNldCIsICIyMHB4IHBhdGgoJ00wIDAgTCAx
MDAgMCBMIDEwMCAxMDB6JykiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJleHBvc2VkL2Nzcy1wcm9wZXJ0aWVzLWJlaGluZC1m
bGFncy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJleHBvc2VkL2Nzcy1wcm9wZXJ0aWVz
LWJlaGluZC1mbGFncy1leHBlY3RlZC50eHQKaW5kZXggM2EzNjdiOTM0NjgxYzVlY2NiNWEzNzVi
OGY0YmY2NmNkOWNmNzU2NC4uMWU4ZjM1ZTlmYzFjNzZlYTE3OWUwMjI2ZjRkOWFmYWQzZTA0MGJl
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZXhwb3NlZC9jc3MtcHJvcGVydGllcy1iZWhp
bmQtZmxhZ3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmV4cG9zZWQvY3NzLXBy
b3BlcnRpZXMtYmVoaW5kLWZsYWdzLWV4cGVjdGVkLnR4dApAQCAtMTgsNCArMTgsNyBAQCBQQVNT
IG1hcmdpbi1ibG9jayBpcyBub3QgZXhwb3NlZAogUEFTUyBtYXJnaW4taW5saW5lIGlzIG5vdCBl
eHBvc2VkIAogUEFTUyBwYWRkaW5nLWJsb2NrIGlzIG5vdCBleHBvc2VkIAogUEFTUyBwYWRkaW5n
LWlubGluZSBpcyBub3QgZXhwb3NlZCAKK1BBU1Mgb2Zmc2V0IGlzIG5vdCBleHBvc2VkIAorUEFT
UyBvZmZzZXQtcGF0aCBpcyBub3QgZXhwb3NlZCAKK1BBU1Mgb2Zmc2V0LWRpc3RhbmNlIGlzIG5v
dCBleHBvc2VkIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJleHBvc2VkL2Nzcy1wcm9w
ZXJ0aWVzLWJlaGluZC1mbGFncy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZXhwb3NlZC9jc3MtcHJv
cGVydGllcy1iZWhpbmQtZmxhZ3MuaHRtbAppbmRleCBjZmUzNWIzODM5NmFhNWI4OTdiZGI5NzNj
ODk5YWM3Mjc2NjU1Mjg0Li5jNmM0YzExOTU4NmU5OWI0YzhjMGY0ZTQ4NzAyMDY4MDgyZjBhYTI3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJleHBvc2VkL2Nzcy1wcm9wZXJ0aWVzLWJlaGlu
ZC1mbGFncy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmV4cG9zZWQvY3NzLXByb3BlcnRpZXMt
YmVoaW5kLWZsYWdzLmh0bWwKQEAgLTIzLDYgKzIzLDkgQEAgbGV0IGhpZGRlblByb3BlcnRpZXMg
PSBbCiAgICAgIm1hcmdpbi1pbmxpbmUiLAogICAgICJwYWRkaW5nLWJsb2NrIiwKICAgICAicGFk
ZGluZy1pbmxpbmUiLAorICAgICJvZmZzZXQiLAorICAgICJvZmZzZXQtcGF0aCIsCisgICAgIm9m
ZnNldC1kaXN0YW5jZSIsCiBdOwogbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGVzdCIpOwogbGV0IHtzdHlsZX0gPSBlbGVtZW50Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>