<?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>195862</bug_id>
          
          <creation_ts>2019-03-17 09:07:42 -0700</creation_ts>
          <short_desc>Remove the SVG property tear off objects for SVGAnimatedBoolean</short_desc>
          <delta_ts>2022-09-29 13:18:59 -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>SVG</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=245844</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>195859</dependson>
          <blocked>191237</blocked>
    
    <blocked>195863</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1517537</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-17 09:07:42 -0700</bug_when>
    <thetext>Like what we did for SVGAnimatedInteger in &lt;https://trac.webkit.org/changeset/243036&gt;, we are going to do similar transform for SVGAnimatedBoolean. Instead of saving the raw boolean data in the SVGElement and use the tear off object to provide the animation and the DOM objects, the SVGElement will hold a Ref&lt;SVGAnimatedBoolean&gt;. This will eliminate the need to create any other objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517538</commentid>
    <comment_count>1</comment_count>
      <attachid>364965</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-17 09:19:47 -0700</bug_when>
    <thetext>Created attachment 364965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517539</commentid>
    <comment_count>2</comment_count>
      <attachid>364966</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-17 09:26:57 -0700</bug_when>
    <thetext>Created attachment 364966
Patch for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517884</commentid>
    <comment_count>3</comment_count>
      <attachid>364966</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-18 13:35:56 -0700</bug_when>
    <thetext>Comment on attachment 364966
Patch for review

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

&gt; Source/WebCore/svg/SVGAnimatorFactory.h:52
&gt; -            return std::make_unique&lt;SVGAnimatedBooleanAnimator&gt;(animationElement, contextElement);
&gt; +            return nullptr;

This is legacy code that will be removed?

&gt; Source/WebCore/svg/SVGExternalResourcesRequired.h:77
&gt; +    Ref&lt;SVGAnimatedBoolean&gt; m_externalResourcesRequired;

https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/externalResourcesRequired says that &quot;externalResourcesRequired&quot; is not animatable (I could not find it in the spec). So why do we make a animated boolean for it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517985</commentid>
    <comment_count>4</comment_count>
      <attachid>364966</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-18 16:12:20 -0700</bug_when>
    <thetext>Comment on attachment 364966
Patch for review

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

&gt;&gt; Source/WebCore/svg/SVGAnimatorFactory.h:52
&gt;&gt; +            return nullptr;
&gt; 
&gt; This is legacy code that will be removed?

Yes.

&gt;&gt; Source/WebCore/svg/SVGExternalResourcesRequired.h:77
&gt;&gt; +    Ref&lt;SVGAnimatedBoolean&gt; m_externalResourcesRequired;
&gt; 
&gt; https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/externalResourcesRequired says that &quot;externalResourcesRequired&quot; is not animatable (I could not find it in the spec). So why do we make a animated boolean for it?

This comment at the top of Source/WebCore/svg/SVGExternalResourcesRequired.h might explain why it was defined as SVGAnimatedBoolean. But I did not understand what is the difference between the SVG DOM and the SVG language definition especially there is no links. 

// Notes on a SVG 1.1 spec discrepancy:
// The SVG DOM defines the attribute externalResourcesRequired as being of type SVGAnimatedBoolean, whereas the 
// SVG language definition says that externalResourcesRequired is not animated. Because the SVG language definition
// states that externalResourcesRequired cannot be animated, the animVal will always be the same as the baseVal.
// FIXME: When implementing animVal support, make sure that animVal==baseVal for externalResourcesRequired

I am not sure what we should do here. According to https://www.w3.org/TR/SVG/changes.html, SVGExternalResourcesRequired was removed from SVG2. Should we remove it? If we remove it, what is the backward compatibility story here?

We still need the SVGAnimatedBoolean because it is used by SVGFEConvolveMatrixElement according to https://drafts.fxtf.org/filter-effects/#element-attrdef-feconvolvematrix-preservealpha.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517993</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-18 16:26:23 -0700</bug_when>
    <thetext>Let&apos;s just keep existing behavior for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518022</commentid>
    <comment_count>6</comment_count>
      <attachid>365092</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-18 16:59:50 -0700</bug_when>
    <thetext>Created attachment 365092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518036</commentid>
    <comment_count>7</comment_count>
      <attachid>365092</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-18 17:39:47 -0700</bug_when>
    <thetext>Comment on attachment 365092
Patch

Clearing flags on attachment: 365092

Committed r243121: &lt;https://trac.webkit.org/changeset/243121&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518037</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-18 17:39:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518038</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-18 17:40:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/49001748&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364965</attachid>
            <date>2019-03-17 09:19:47 -0700</date>
            <delta_ts>2019-03-18 16:59:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195862-20190317091946.patch</filename>
            <type>text/plain</type>
            <size>160493</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzMDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzU3OTdlODJkZjg2MzIz
ZGJiYjQwZjVlN2ViYjFjMmY1YTVjNzcyMy4uOGVjMmY3ODc5NTBiZmE1MTZmNTRlNDM0MjQ2OGFm
ZjFlZDVjMmExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3NiBAQAorMjAxOS0wMy0xNyAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92
ZSB0aGUgU1ZHIHByb3BlcnR5IHRlYXIgb2ZmIG9iamVjdHMgZm9yIFNWR0FuaW1hdGVkQm9vbGVh
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1ODYy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU1ZHQW5p
bWF0ZWRCb29sZWFuIHdpbGwgYmUgZGVmaW5lZCBhcyBTVkdBbmltYXRlZFByaW1pdGl2ZVByb3Bl
cnR5PGJvb2w+LgorICAgICAgICAtLSBTVkdBbmltYXRlZEJvb2xlYW5BY2Nlc3NvciBpcyBhZGRl
ZCB0byB0aGlzIGFjY2VzcyB0aGUgbmV3IHR5cGUuCisgICAgICAgIC0tIEEgZnVuY3Rpb24gcmVn
aXN0ZXJQcm9wZXJ0eSgpIGlzIGFkZGVkIHRvIFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeQorICAg
ICAgICAgICB0byByZWdpc3RlciB0aGlzIG5ldyB0eXBlLgorICAgICAgICAtLSBTVkdBbmltYXRl
ZEJvb2xlYW5BbmltYXRvciBpcyBhZGRlZCB0byBhbmltYXRlIHRoZSBuZXcgdHlwZQorICAgICAg
ICAtLSBTVkdBbmltYXRpb25Cb29sZWFuRnVuY3Rpb24gaXMgYWRkZWQgdG8gaGFuZGxlIHRoZSBw
cm9ncmVzcyBvZiB0aGlzCisgICAgICAgICAgIG5ldyB0eXBlIG92ZXIgYSBwZXJpb2Qgb2YgdGlt
ZS4KKworICAgICAgICBTVkdBbmltYXRpb25Cb29sZWFuRnVuY3Rpb24gaXMgYSBzdXBlcmNsYXNz
IG9mIFNWR0FuaW1hdGlvbkRpc2NyZXRlRnVuY3Rpb24KKyAgICAgICAgd2hpY2ggd2lsbCBiZSB0
aGUgYmFzZSBjbGFzcyBvZiB0aGUgZGlzY3JldGUgYW5pbWF0aW9uIHR5cGVzOiBzdHJpbmcsIGJv
b2wsCisgICAgICAgIGVudW0gYW5kIFByZXNlcnZlQXNwZWN0UmF0aW8gdHlwZXMuCisKKyAgICAg
ICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5oOiBSZW1vdmVkLgorICAgICAgICAqIHN2
Zy9TVkdBbmltYXRpb25FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdG9yRmFjdG9y
eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0b3JGYWN0b3J5OjpjcmVhdGUpOgorICAg
ICAgICAqIHN2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQ3Vyc29y
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdEZWZzRWxlbWVudC5oOgorICAgICAgICAqIHN2
Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VB
dHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZDo6cmVnaXN0ZXJBdHRyaWJ1dGVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZDo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpleHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkQW5pbWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZDo6aXNLbm93bkF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkOjpzZXRFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OlNWR0ZFQ29udm9sdmVN
YXRyaXhFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVt
ZW50OjpyZWdpc3RlckF0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb252
b2x2ZU1hdHJpeEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHRm9udEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWln
bk9iamVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHR0VsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHR3JhZGllbnRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR01QYXRoRWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R01hc2tFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1JlY3RFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU2Ny
aXB0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTd2l0Y2hFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVGV4dENvbnRlbnRF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5QWNjZXNzb3JJbXBsLmg6CisgICAgICAgICog
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oOgorICAgICAg
ICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlJbXBsLmg6CisgICAgICAgICog
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbi5oOiBBZGRlZAorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbjo6U1ZHQW5pbWF0aW9u
RGlzY3JldGVGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRpb25EaXNjcmV0
ZUZ1bmN0aW9uOjpwcm9ncmVzcyk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
aW9uRGlzY3JldGVGdW5jdGlvbkltcGwuaDogQWRkZWQKKyAgICAgICAgKiBzdmcvcHJvcGVydGll
cy9TVkdBdHRyaWJ1dGVSZWdpc3RyeS5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1By
b3BlcnR5T3duZXJSZWdpc3RyeS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlPd25l
clJlZ2lzdHJ5OjpyZWdpc3RlclByb3BlcnR5KToKKworMjAxOS0wMy0xNiAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIERlZmluZSB0aGUgdHlw
ZSBvZiBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkgZm9yIGFsbCBTVkcgZWxlbWVudHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTg1OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNWR1Byb3BlcnR5T3du
ZXJSZWdpc3RyeSB3aWxsIGV2ZW50dWFsbHkgcmVwbGFjZSBTVkdBdHRyaWJ1dGVPd25lclByb3h5
SW1wbC4KKworICAgICAgICAqIHN2Zy9TVkdBRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdB
bHRHbHlwaEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdDaXJjbGVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0NsaXBQ
YXRoRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9u
RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlv
bkVsZW1lbnQ6OmF0dHJpYnV0ZVJlZ2lzdHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NvbXBv
bmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50Ojppc0tub3duQXR0cmlidXRlKToKKyAgICAgICAg
KiBzdmcvU1ZHQ3Vyc29yRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdEZWZzRWxlbWVudC5o
OgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0VsbGlwc2VF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmlzS25vd25B
dHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdGRUJsZW5kRWxlbWVudC5oOgorICAgICAgICAq
IHN2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbXBv
bmVudFRyYW5zZmVyRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBzdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRURyb3BTaGFk
b3dFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdGRUltYWdlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRUxp
Z2h0RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVMaWdodEVsZW1lbnQ6OmF0dHJp
YnV0ZVJlZ2lzdHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTGlnaHRFbGVtZW50Ojppc0tu
b3duQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50Lmg6Cisg
ICAgICAgICogc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZH
RkVPZmZzZXRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0Vs
ZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVUaWxlRWxlbWVudC5oOgorICAgICAgICAqIHN2
Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFVHVy
YnVsZW5jZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdG
RVR1cmJ1bGVuY2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6Omlz
S25vd25BdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdGaXRUb1ZpZXdCb3guaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0ZpdFRvVmlld0JveDo6aXNLbm93bkF0dHJpYnV0ZSk6CisgICAgICAg
ICogc3ZnL1NWR0ZvbnRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvcmVpZ25PYmplY3RF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0dFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0dlb21ldHJ5RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR2VvbWV0cnlFbGVtZW50
Ojppc0tub3duQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHR2x5cGhSZWZFbGVtZW50Lmg6
CisgICAgICAgICogc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHR3JhZGllbnRFbGVtZW50Ojppc0tub3duQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZH
R3JhcGhpY3NFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdHcmFwaGljc0VsZW1lbnQ6
OmlzS25vd25BdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVsZW1lbnQuaDoKKyAg
ICAgICAgKiBzdmcvU1ZHTGluZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR01QYXRoRWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdNYXJrZXJFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR01hc2tFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1Bh
dHRlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BvbHlFbGVtZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6YXR0cmlidXRlUmVnaXN0cnkpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUG9seUVsZW1lbnQ6OmlzS25vd25BdHRyaWJ1dGUpOgorICAgICAgICAqIHN2
Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHUmVjdEVsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdT
Y3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1N0b3BFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU3ltYm9sRWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdU
ZXN0cy5oOgorICAgICAgICAqIHN2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6aXNLbm93bkF0dHJpYnV0ZSk6CisgICAg
ICAgICogc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdUZXh0UG9z
aXRpb25pbmdFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0UG9zaXRpb25pbmdF
bGVtZW50Ojppc0tub3duQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHVVJJUmVmZXJlbmNl
Lmg6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVmll
d0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuaDoKKyAgICAgICAgKiBzdmcv
U1ZHWm9vbUFuZFBhbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdab29tQW5kUGFuOjpwYXJz
ZVpvb21BbmRQYW4pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHWm9vbUFuZFBhbjo6cGFyc2VBdHRy
aWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHWm9vbUFuZFBhbjo6U1ZHWm9vbUFuZFBhbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdab29tQW5kUGFuOjpyZWdpc3RlckF0dHJp
YnV0ZXMpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdab29tQW5kUGFuLmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdab29tQW5kUGFuOjp6b29tQW5kUGFuIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1pvb21BbmRQYW46OnNldFpvb21BbmRQYW4pOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHWm9vbUFuZFBhbjo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHWm9vbUFuZFBhbjo6
YXR0cmlidXRlUmVnaXN0cnkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHWm9vbUFu
ZFBhbjo6aXNLbm93bkF0dHJpYnV0ZSk6IERlbGV0ZWQuCisgICAgICAgIFNWR1pvb21BbmRQYW4g
aG9sZHMgbmVpdGhlciBTVkcgYW5pbWF0ZWQgcHJvcGVydGllcyBub3IgU1ZHIHR5cGUgZWxlbWVu
dC4KKyAgICAgICAgU28gcmVtb3ZlIGl0IGZyb20gaXRzIGF0dHJpYnV0ZSByZWdpc3RyeS4KKwog
MjAxOS0wMy0xNiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBM
YXlvdXQgdGVzdHMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvKi1l
eGNlcHRpb24tb3JkZXIuaHRtbCBhcmUgZmFpbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA1ZTI5NWFj
NDE0NzBmOTk3MzRhMzRlOTU1MzlhYjI0ZDdkYTg3OGZiLi40Zjg0MjEzMzI1ZTVmNTY0YzkxMjky
MTYwMTMzMGRjNzBmOWRjZmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjI3MCw3ICsyMjcwLDYgQEAg
c3ZnL1NWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAKIHN2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVu
dC5jcHAKIHN2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAKIHN2Zy9TVkdBbmltYXRl
ZEFuZ2xlLmNwcAotc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHAKIHN2Zy9TVkdBbmltYXRlZENv
bG9yLmNwcAogc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uY3BwCiBzdmcvU1ZHQW5pbWF0ZWRM
ZW5ndGguY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggZWNjNmU3ODhiMmEzODE0MTQ5Yjk4M2EwNjk0ZDU1Nzk3ZThiNTBhNi4u
Mjk1YjZhY2UwYzE2ODBjZWJhYzE3MWY5YzQwODM1YmViZTMxYjc3ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjU4LDcgKzI1
OCw2IEBACiAJCTA4NTRCMDIxMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdJbmxpbmVUZXh0Qm94Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODU0QjAwRjEy
NTVFNEU2MDBCOUNERDAgLyogU1ZHSW5saW5lVGV4dEJveC5oICovOyB9OwogCQkwODU0QjAyMzEy
NTVFNEU2MDBCOUNERDAgLyogU1ZHUm9vdElubGluZUJveC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg1NEIwMTExMjU1RTRFNjAwQjlDREQwIC8qIFNW
R1Jvb3RJbmxpbmVCb3guaCAqLzsgfTsKIAkJMDg1NEIwMjUxMjU1RTRFNjAwQjlDREQwIC8qIFNW
R1RleHRRdWVyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDg1NEIwMTMxMjU1RTRFNjAwQjlDREQwIC8qIFNWR1RleHRRdWVyeS5oICovOyB9OwotCQkw
ODU3OTcwOTEyNzgzOTRDMDBBOEVDNUYgLyogU1ZHQW5pbWF0ZWRCb29sZWFuLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODU3OTcwODEyNzgzOTRDMDBB
OEVDNUYgLyogU1ZHQW5pbWF0ZWRCb29sZWFuLmggKi87IH07CiAJCTA4NUExNTkzMTI4OUE4REQw
MDI3MTBFMyAvKiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NUExNTkyMTI4OUE4
REQwMDI3MTBFMyAvKiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaCAq
LzsgfTsKIAkJMDg1QjkyQkIwRUZERTczRDAwRTYxMjNDIC8qIEZvcm1EYXRhQnVpbGRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg1QjkyQjkwRUZE
RTczRDAwRTYxMjNDIC8qIEZvcm1EYXRhQnVpbGRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKCk7IH07IH07CiAJCTA4NjM5NTE2MTNCNUZFNTcwMEJCMzQ0RCAvKiBTVkdBbmltYXRl
ZFBhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4
NjM5NTE0MTNCNUZFNTcwMEJCMzQ0RCAvKiBTVkdBbmltYXRlZFBhdGguaCAqLzsgfTsKQEAgLTU2
MjksNyArNTYyOCw2IEBACiAJCTA4NTRCMDExMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdSb290SW5s
aW5lQm94LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1Jvb3RJbmxpbmVC
b3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg1NEIwMTIxMjU1RTRFNjAwQjlD
REQwIC8qIFNWR1RleHRRdWVyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTVkdUZXh0UXVlcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODU0
QjAxMzEyNTVFNEU2MDBCOUNERDAgLyogU1ZHVGV4dFF1ZXJ5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNWR1RleHRRdWVyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkwODU3OTcwODEyNzgzOTRDMDBBOEVDNUYgLyogU1ZHQW5pbWF0ZWRCb29sZWFuLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkQm9vbGVhbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODVBMTU5MjEyODlBOEREMDAyNzEwRTMgLyogU1ZH
QW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODVCOTJCODBFRkRFNzNEMDBFNjEyM0Mg
LyogRm9ybURhdGFCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEZvcm1EYXRhQnVpbGRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4
NUI5MkI5MEVGREU3M0QwMEU2MTIzQyAvKiBGb3JtRGF0YUJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRm9ybURhdGFCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC03NTgwLDcgKzc1NzgsNiBAQAogCQk0MzFBMkY5QjEzQjZGMkIwMDA3Nzkx
RTQgLyogU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDMxQTJGRDYxM0I3NzA3QTAwNzc5MUU0
IC8qIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTVkdBbmltYXRlZExlbmd0aExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MzFBMzAyMDEzQjg5RENDMDA3NzkxRTQgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNW
R0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTQzMUEzMDg3MTNCOEY5NzgwMDc3OTFFNCAvKiBTVkdBbmltYXRlZEJvb2xlYW4uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRCb29sZWFu
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDMyRDNGRTcxOEE4NjU4NDAwRDdE
QzAzIC8qIFNlbGVjdG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MzMxQUM3NzEzQjY4NzAwMDBBOUU1QUUgLyogU1ZHQW5pbWF0
ZWROdW1iZXJMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNW
R0FuaW1hdGVkTnVtYmVyTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQz
NThFODdBMTM2MEEyRUUwMEU0NzQ4QyAvKiBKU1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdGRURyb3BTaGFkb3dFbGVt
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk1MDYsNiArOTUwMyw4IEBA
CiAJCTcxRUZDRURFMjAyQjM5QzcwMEQ3QzQxMSAvKiBKU0FuaW1hdGlvbkVmZmVjdEN1c3RvbS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FuaW1hdGlvbkVmZmVj
dEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxRjkzNkY3MURENEY5
OUIwMDkyMkNDNyAvKiB0cmFja3Mtc3VwcG9ydC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2
YXNjcmlwdDsgcGF0aCA9ICJ0cmFja3Mtc3VwcG9ydC5qcyI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTcxRkI5NjdBMTM4M0Q2NDYwMEFDOEE0QyAvKiBTVkdBbmltYXRlZEVudW1lcmF0
aW9uUHJvcGVydHlUZWFyT2ZmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNW
R0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNzIxNDQzMjkyMjNFM0RDNTAwRjEyRkY3IC8qIFNWR0FuaW1hdGlvbkRpc2Ny
ZXRlRnVuY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjE0NDMyQTIyM0UzREU0MDBGMTJG
RjcgLyogU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbkltcGwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbkltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzIzRjk3QkMyMjM4RUUwODAwN0YwNzlDIC8qIFNWR0F0dHJpYnV0ZUFuaW1hdGlv
bkNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQXR0cmlidXRlQW5pbWF0aW9u
Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyM0Y5N0JEMjIz
OEVFMDgwMDdGMDc5QyAvKiBTVkdBdHRyaWJ1dGVBbmltYXRpb25Db250cm9sbGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNWR0F0dHJpYnV0ZUFuaW1hdGlvbkNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzIzRjk3QkUyMjM5NTEyRDAwN0YwNzlDIC8qIFNWR0xlZ2FjeUF0
dHJpYnV0ZUFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHTGVn
YWN5QXR0cmlidXRlQW5pbWF0aW9uQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNjIzMCw2ICsxNjIyOSw4IEBACiAJCQkJNTVCRTAyNUYyMjNCMjlDNTAwMzJG
MDhBIC8qIFNWR0FuaW1hdGlvbkFkZGl0aXZlRnVuY3Rpb24uaCAqLywKIAkJCQk1NUVFNTM1RTIy
M0IyQTBFMDBGQkE5NDQgLyogU1ZHQW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0aW9uLmggKi8s
CiAJCQkJNTVCRTAyNTkyMjNCMjlDMTAwMzJGMDhBIC8qIFNWR0FuaW1hdGlvbkFkZGl0aXZlVmFs
dWVGdW5jdGlvbkltcGwuaCAqLywKKwkJCQk3MjE0NDMyOTIyM0UzREM1MDBGMTJGRjcgLyogU1ZH
QW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbi5oICovLAorCQkJCTcyMTQ0MzJBMjIzRTNERTQwMEYx
MkZGNyAvKiBTVkdBbmltYXRpb25EaXNjcmV0ZUZ1bmN0aW9uSW1wbC5oICovLAogCQkJCTU1QkUw
MjVCMjIzQjI5QzIwMDMyRjA4QSAvKiBTVkdBbmltYXRpb25GdW5jdGlvbi5oICovLAogCQkJCTU1
RkE3RkVGMjEwRkEzODYwMDVBRUZFNyAvKiBTVkdBdHRyaWJ1dGUuaCAqLywKIAkJCQk1NUZBN0ZG
NDIxMEZCNjg4MDA1QUVGRTcgLyogU1ZHQXR0cmlidXRlQWNjZXNzb3IuaCAqLywKQEAgLTI0MTEz
LDggKzI0MTE0LDYgQEAKIAkJCQk0MzYyQzdCODEzQUM2RjFBMDAzNDRCRUIgLyogU1ZHQW5pbWF0
ZWRBbmdsZS5jcHAgKi8sCiAJCQkJMDg3Qjg0OTUxMjcyQ0VDNzAwQTE0NDE3IC8qIFNWR0FuaW1h
dGVkQW5nbGUuaCAqLywKIAkJCQlCMjIyNzdFNjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0
ZWRBbmdsZS5pZGwgKi8sCi0JCQkJNDMxQTMwODcxM0I4Rjk3ODAwNzc5MUU0IC8qIFNWR0FuaW1h
dGVkQm9vbGVhbi5jcHAgKi8sCi0JCQkJMDg1Nzk3MDgxMjc4Mzk0QzAwQThFQzVGIC8qIFNWR0Fu
aW1hdGVkQm9vbGVhbi5oICovLAogCQkJCUIyMjI3N0U3MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdB
bmltYXRlZEJvb2xlYW4uaWRsICovLAogCQkJCTQzQTYyNUY3MTNCMzMwNDAwMEFDOTRCOCAvKiBT
VkdBbmltYXRlZENvbG9yLmNwcCAqLywKIAkJCQk0M0E2MjVGNjEzQjMzMDQwMDBBQzk0QjggLyog
U1ZHQW5pbWF0ZWRDb2xvci5oICovLApAQCAtMzA4NjMsNiArMzA4NjIsOCBAQAogCQkJCTQ5RTkx
MUM3MEVGODZENDcwMDlEMENBRiAvKiBNYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDQkM4REFEMUFBQTMwMjIwMEUxQzgwMyAvKiBNZWRpYUFjY2Vzc2liaWxp
dHlTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMxQkNDNjExMTI0REZDQjAwQkU3MERE
IC8qIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RDQzlCQ0Yy
MjM4N0U5QTAwRkZCNTFDIC8qIE1lZGlhQ2FwYWJpbGl0aWVzRGVjb2RpbmdJbmZvLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlDRENDOUJEMTIyMzg3RUFBMDBGRkI1MUMgLyogTWVkaWFDYXBhYmlsaXRp
ZXNFbmNvZGluZ0luZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTNBMTdEMTZFMUMwMDQy
MEFBMSAvKiBNZWRpYUNvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTcyNTNBQjEz
NTRCQkJDMDAzNjBGMkEgLyogTWVkaWFDb250cm9sRWxlbWVudHMuaCBpbiBIZWFkZXJzICovLAog
CQkJCURFQkNDREQ0MTY2NDZFQUYwMEE0NTJFMSAvKiBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZXMu
aCBpbiBIZWFkZXJzICovLApAQCAtMzE5MDgsNyArMzE5MDksNiBAQAogCQkJCUIyMjI3OTc3MEQw
MEJGMjIwMDcxQjc4MiAvKiBTVkdBbmdsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5N0Ew
RDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA4N0I4NDk2MTI3MkNFQzgwMEExNDQxNyAvKiBTVkdBbmltYXRlZEFuZ2xlLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwODU3OTcwOTEyNzgzOTRDMDBBOEVDNUYgLyogU1ZHQW5pbWF0ZWRC
b29sZWFuLmggaW4gSGVhZGVycyAqLywKIAkJCQk0M0E2MjVGODEzQjMzMDQwMDBBQzk0QjggLyog
U1ZHQW5pbWF0ZWRDb2xvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDhENDZDRTMxMjdBRDVGQzAw
ODk2OTRCIC8qIFNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTcx
RkI5NjdCMTM4M0Q2NDYwMEFDOEE0QyAvKiBTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlU
ZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKQEAgLTMyMTY2LDcgKzMyMTY2LDYgQEAKIAkJCQlDNjUw
NDZBOTE2N0JGQjU1MDBDQzJBNEQgLyogVGVtcGxhdGVDb250ZW50RG9jdW1lbnRGcmFnbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMjZFOTQ0REQxQUM0QjRFQTAwN0I4NUI1IC8qIFRlcm0uaCBp
biBIZWFkZXJzICovLAogCQkJCTY1NTBCNkE2MDk5REYwMjcwMDkwRDc4MSAvKiBUZXh0LmggaW4g
SGVhZGVycyAqLywKLQkJCQlDRENDOUJEMTIyMzg3RUFBMDBGRkI1MUMgLyogTWVkaWFDYXBhYmls
aXRpZXNFbmNvZGluZ0luZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTE3MDk5RTY0OTIw
MDU2RTU4MSAvKiBUZXh0QWZmaW5pdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFN0IyREI1MTU4
NkFCQUQwMDk4QjNGQSAvKiBUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNTREQ0U2MTg4MTA1MUQwMDNFRURCQiAvKiBUZXh0QXV0b1NpemluZy5oIGluIEhl
YWRlcnMgKi8sCkBAIC0zMjI2MCw3ICszMjI1OSw2IEBACiAJCQkJNDlFOTExQzQwRUY4NkQ0NzAw
OUQwQ0FGIC8qIFRyYW5zZm9ybWF0aW9uTWF0cml4LmggaW4gSGVhZGVycyAqLywKIAkJCQlGQjQ4
NEY0RDE3MUY4MjFFMDAwNDA3NTUgLyogVHJhbnNmb3JtRnVuY3Rpb25zLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0OUU5MTFDRTBFRjg2RDQ3MDA5RDBDQUYgLyogVHJhbnNmb3JtT3BlcmF0aW9uLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlDRENDOUJDRjIyMzg3RTlBMDBGRkI1MUMgLyogTWVkaWFDYXBh
YmlsaXRpZXNEZWNvZGluZ0luZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5RTkxMUQwMEVGODZE
NDcwMDlEMENBRiAvKiBUcmFuc2Zvcm1PcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
REIxQkM2QTEwNzE1QTY0MDBFRkFBNDkgLyogVHJhbnNmb3JtU291cmNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0OTQ1QkZENDEzQ0Y4MDkwMDBDQzNCMzggLyogVHJhbnNmb3JtU3RhdGUuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaAppbmRleCBkNDFhZDBiMzUyMmRiOWQ3
MTNkMzliMWU0NDhmZTU5OWFlNjc0YjA1Li4wNTc3OTRiMGU3Y2YzMTQ0ZWI0OGJlZjIwZWE0ODkw
MzBiZTM0YTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaApAQCAtMiw3ICsyLDcgQEAKICAq
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1l
cm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVp
c0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtp
dC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00Miw4ICs0MiwxMSBAQCBwcml2YXRlOgog
ICAgIHVzaW5nIEF0dHJpYnV0ZU93bmVyUHJveHkgPSBTVkdBdHRyaWJ1dGVPd25lclByb3h5SW1w
bDxTVkdBRWxlbWVudCwgU1ZHR3JhcGhpY3NFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkLCBTVkdVUklSZWZlcmVuY2U+OwogICAgIHN0YXRpYyBBdHRyaWJ1dGVPd25lclByb3h5
OjpBdHRyaWJ1dGVSZWdpc3RyeSYgYXR0cmlidXRlUmVnaXN0cnkoKSB7IHJldHVybiBBdHRyaWJ1
dGVPd25lclByb3h5OjphdHRyaWJ1dGVSZWdpc3RyeSgpOyB9CiAgICAgc3RhdGljIHZvaWQgcmVn
aXN0ZXJBdHRyaWJ1dGVzKCk7Ci0KICAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclByb3h5JiBh
dHRyaWJ1dGVPd25lclByb3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hdHRyaWJ1dGVPd25l
clByb3h5OyB9CisKKyAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25l
clJlZ2lzdHJ5PFNWR0FFbGVtZW50LCBTVkdHcmFwaGljc0VsZW1lbnQsIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQsIFNWR1VSSVJlZmVyZW5jZT47CisgICAgY29uc3QgU1ZHUHJvcGVydHlS
ZWdpc3RyeSYgcHJvcGVydHlSZWdpc3RyeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVy
dHlSZWdpc3RyeTsgfQorCiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIApAQCAtNjQsNiArNjcsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBmaW5hbDsK
IAogICAgIEF0dHJpYnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMg
fTsKKyAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CiAg
ICAgU1ZHQW5pbWF0ZWRTdHJpbmdBdHRyaWJ1dGUgbV90YXJnZXQ7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgKaW5kZXggM2I0ZTg2MWEzMDFjMDEwZWViZTM3YWUw
MzNjZjExMzRhYTFiYzc5Zi4uZDM0ZjllZDA2NjIwNDFhNWM3YzQzZjA4ZTQ0NWJjMzUwYzRkZGJk
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaApAQCAtMSw3ICsxLDcg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlrb2xhcyBaaW1tZXJt
YW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIw
MDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
NDgsMTAgKzQ4LDE0IEBAIHByaXZhdGU6CiAgICAgdXNpbmcgQXR0cmlidXRlT3duZXJQcm94eSA9
IFNWR0F0dHJpYnV0ZU93bmVyUHJveHlJbXBsPFNWR0FsdEdseXBoRWxlbWVudCwgU1ZHVGV4dFBv
c2l0aW9uaW5nRWxlbWVudCwgU1ZHVVJJUmVmZXJlbmNlPjsKICAgICBjb25zdCBTVkdBdHRyaWJ1
dGVPd25lclByb3h5JiBhdHRyaWJ1dGVPd25lclByb3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9hdHRyaWJ1dGVPd25lclByb3h5OyB9CiAKKyAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0g
U1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0FsdEdseXBoRWxlbWVudCwgU1ZHVGV4dFBvc2l0
aW9uaW5nRWxlbWVudCwgU1ZHVVJJUmVmZXJlbmNlPjsKKyAgICBjb25zdCBTVkdQcm9wZXJ0eVJl
Z2lzdHJ5JiBwcm9wZXJ0eVJlZ2lzdHJ5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wcm9wZXJ0
eVJlZ2lzdHJ5OyB9CisKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJy
aWRlOwogICAgIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29u
c3Qgb3ZlcnJpZGU7CiAKICAgICBBdHRyaWJ1dGVPd25lclByb3h5IG1fYXR0cmlidXRlT3duZXJQ
cm94eSB7ICp0aGlzIH07CisgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkg
eyAqdGhpcyB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YTM3NTE5YmZlMzBmYmFjZTQwN2ZlZDljNmFkNzM1ODI4YWI0MGE4ZS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRCb29sZWFuLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDg2ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFu
LmgiCi0KLSNpbmNsdWRlICJTVkdBbmltYXRlRWxlbWVudEJhc2UuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1TVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6U1ZHQW5pbWF0ZWRCb29sZWFu
QW5pbWF0b3IoU1ZHQW5pbWF0aW9uRWxlbWVudCogYW5pbWF0aW9uRWxlbWVudCwgU1ZHRWxlbWVu
dCogY29udGV4dEVsZW1lbnQpCi0gICAgOiBTVkdBbmltYXRlZFR5cGVBbmltYXRvcihBbmltYXRl
ZEJvb2xlYW4sIGFuaW1hdGlvbkVsZW1lbnQsIGNvbnRleHRFbGVtZW50KQotewotfQotCi1zdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6
Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKLXsKLSAgICByZXR1cm4g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8Ym9vbD46OmZyb21TdHJp
bmcoc3RyaW5nKSk7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0Fu
aW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxl
bWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQotewotICAgIHJldHVybiBj
b25zdHJ1Y3RGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkQm9vbGVhbj4oYW5pbWF0ZWRUeXBlcyk7
Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5pbWF0
aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykK
LXsKLSAgICBzdG9wQW5pbVZhbEFuaW1hdGlvbkZvclR5cGU8U1ZHQW5pbWF0ZWRCb29sZWFuPihh
bmltYXRlZFR5cGVzKTsKLX0KLQotdm9pZCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6cmVz
ZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYg
YW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQotewotICAgIHJlc2V0RnJvbUJh
c2VWYWx1ZTxTVkdBbmltYXRlZEJvb2xlYW4+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwotfQotCi12
b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCi17Ci0gICAgYW5p
bVZhbFdpbGxDaGFuZ2VGb3JUeXBlPFNWR0FuaW1hdGVkQm9vbGVhbj4oYW5pbWF0ZWRUeXBlcyk7
Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OmFuaW1WYWxEaWRDaGFuZ2Uo
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQotewot
ICAgIGFuaW1WYWxEaWRDaGFuZ2VGb3JUeXBlPFNWR0FuaW1hdGVkQm9vbGVhbj4oYW5pbWF0ZWRU
eXBlcyk7Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OmFkZEFuaW1hdGVk
VHlwZXMoU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKikKLXsKLSAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLX0KLQotdm9pZCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y2Fs
Y3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCwgU1ZHQW5pbWF0
ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdB
bmltYXRlZFR5cGUqIGFuaW1hdGVkKQotewotICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQp
OwotICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKLQotICAgIGNvbnN0IGF1dG8gZnJvbUJv
b2xlYW4gPSAobV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gQW5pbWF0aW9u
TW9kZTo6VG8gPyBhbmltYXRlZCA6IGZyb20pLT5hczxib29sPigpOwotICAgIGNvbnN0IGF1dG8g
dG9Cb29sZWFuID0gdG8tPmFzPGJvb2w+KCk7Ci0gICAgYXV0byYgYW5pbWF0ZWRCb29sZWFuID0g
YW5pbWF0ZWQtPmFzPGJvb2w+KCk7Ci0KLSAgICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVE
aXNjcmV0ZVR5cGU8Ym9vbD4ocGVyY2VudGFnZSwgZnJvbUJvb2xlYW4sIHRvQm9vbGVhbiwgYW5p
bWF0ZWRCb29sZWFuKTsKLX0KLQotZmxvYXQgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OmNh
bGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCi17Ci0gICAgLy8g
Tm8gcGFjZWQgYW5pbWF0aW9ucyBmb3IgYm9vbGVhbi4KLSAgICByZXR1cm4gLTE7Ci19Ci0KLX0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggODc1OTA5ZjA3NmI0YjFhODQ2Yzc1Nzg4NWMyZWFjZDU5NzRiYTUyYy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJTVkdBbmltYXRlZFN0
YXRpY1Byb3BlcnR5VGVhck9mZi5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHlwZUFuaW1hdG9y
LmgiCi0jaW5jbHVkZSAiU1ZHQXR0cmlidXRlQWNjZXNzb3IuaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1jbGFzcyBTVkdBbmltYXRpb25FbGVtZW50OwotCi11c2luZyBTVkdBbmltYXRlZEJv
b2xlYW4gPSBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjxib29sPjsKLXVzaW5nIFNW
R0FuaW1hdGVkQm9vbGVhbkF0dHJpYnV0ZSA9IFNWR0FuaW1hdGVkQXR0cmlidXRlPFNWR0FuaW1h
dGVkQm9vbGVhbj47Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIE93bmVyVHlwZT4KLXVzaW5nIFNWR0Fu
aW1hdGVkQm9vbGVhbkF0dHJpYnV0ZUFjY2Vzc29yID0gU1ZHQW5pbWF0ZWRBdHRyaWJ1dGVBY2Nl
c3NvcjxPd25lclR5cGUsIFNWR0FuaW1hdGVkQm9vbGVhbkF0dHJpYnV0ZSwgQW5pbWF0ZWRCb29s
ZWFuPjsKLQotY2xhc3MgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3IgZmluYWwgOiBwdWJsaWMg
U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IgewotcHVibGljOgotICAgIFNWR0FuaW1hdGVkQm9vbGVh
bkFuaW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQqLCBTVkdFbGVtZW50Kik7Ci0KLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0
cmluZyYpIG92ZXJyaWRlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IHN0
YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3Qm
KSBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVzZXRBbmltVmFs
VG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYsIFNWR0FuaW1h
dGVkVHlwZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgYW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBhbmltVmFs
RGlkQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIG92ZXJyaWRl
OwotCi0gICAgdm9pZCBhZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1h
dGVkVHlwZSopIG92ZXJyaWRlOwotICAgIHZvaWQgY2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9h
dCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZH
QW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKikgb3ZlcnJp
ZGU7Ci0gICAgZmxvYXQgY2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKSBvdmVycmlkZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCmluZGV4IDNm
NGE1NzZlYTM5ZDc4Mzg5OWQ1ZmMyYjAzODYxZGJiMjRhNmVhNDQuLjc3MzA4OGI2N2IxNDE3ZTM2
NTkxNjlmOThiYjBkMmJjZmJhYWM3ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRpb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlv
bkVsZW1lbnQuaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBO
aWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0IChD
KSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIw
MDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAy
MDA4IENhbWVyb24gTWNDb3JtYWNrIDxjYW1AbWNjLmlkLmF1PgogICogQ29weXJpZ2h0IChDKSBS
ZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
QEAgLTI0LDcgKzI0LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdBbmltYXRl
ZEJvb2xlYW4uaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCiAj
aW5jbHVkZSAiU1ZHU01JTEVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdUZXN0cy5oIgpAQCAtMTQ3
LDYgKzE0Niw5IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgQXR0cmlidXRlT3duZXJQcm94eTo6
QXR0cmlidXRlUmVnaXN0cnkmIGF0dHJpYnV0ZVJlZ2lzdHJ5KCkgeyByZXR1cm4gQXR0cmlidXRl
T3duZXJQcm94eTo6YXR0cmlidXRlUmVnaXN0cnkoKTsgfQogICAgIGNvbnN0IFNWR0F0dHJpYnV0
ZU93bmVyUHJveHkmIGF0dHJpYnV0ZU93bmVyUHJveHkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX2F0dHJpYnV0ZU93bmVyUHJveHk7IH0KIAorICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkg
PSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHQW5pbWF0aW9uRWxlbWVudCwgU1ZHRWxlbWVu
dCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgU1ZHVGVzdHM+OworICAgIGNvbnN0IFNW
R1Byb3BlcnR5UmVnaXN0cnkmIHByb3BlcnR5UmVnaXN0cnkoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX3Byb3BlcnR5UmVnaXN0cnk7IH0KKwogICAgIHZpcnR1YWwgdm9pZCByZXNldEFuaW1h
dGlvbigpOwogCiAgICAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYpOwpAQCAtMjA3LDYgKzIwOSw3IEBAIHByaXZhdGU6CiAgICAgQ2FsY01vZGUg
bV9jYWxjTW9kZSB7IENhbGNNb2RlOjpMaW5lYXIgfTsKICAgICBBbmltYXRpb25Nb2RlIG1fYW5p
bWF0aW9uTW9kZSB7IEFuaW1hdGlvbk1vZGU6Ok5vbmUgfTsKICAgICBBdHRyaWJ1dGVPd25lclBy
b3h5IG1fYXR0cmlidXRlT3duZXJQcm94eSB7ICp0aGlzIH07CisgICAgUHJvcGVydHlSZWdpc3Ry
eSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdG9yRmFjdG9yeS5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdG9yRmFjdG9yeS5oCmluZGV4IDBmNDU3NjMz
MTRhMGFhODlkMGFiMzczYzMxOGRiZWEwNjY1NTQ5YzUuLjJiODI3MTdmNDcwYTdhOTEyYjNlNmI2
ODQxODQzMzc1MzIxNzM2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRvckZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0b3JGYWN0b3J5
LmgKQEAgLTIwLDcgKzIwLDYgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRBbmdsZS5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbi5oIgogI2luY2x1ZGUgIlNW
R0FuaW1hdGVkQ29sb3IuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9uLmgiCiAj
aW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKQEAgLTUwLDcgKzQ5LDcgQEAgcHVibGljOgog
ICAgICAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CiAgICAgICAgICAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I+KGFuaW1hdGlvbkVsZW1lbnQsIGNvbnRl
eHRFbGVtZW50KTsKICAgICAgICAgY2FzZSBBbmltYXRlZEJvb2xlYW46Ci0gICAgICAgICAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcj4oYW5pbWF0
aW9uRWxlbWVudCwgY29udGV4dEVsZW1lbnQpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcj4oKmFuaW1hdGlvbkVsZW1lbnQsICpj
b250ZXh0RWxlbWVudCk7CiAgICAgICAgIGNhc2UgQW5pbWF0ZWRFbnVtZXJhdGlvbjoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCmluZGV4IDY1YzdiNDY1YjUxMjg4NDAxYTM0M2M5
ODBjMDJjZTcwOTY4NTEwMDguLjVhMGViNzAzMmI1ZTMxNGE1ZGJiYTIwMDQ3YWQyODc1NmY2N2Fi
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaApAQCAtNDYsMTAgKzQ2LDE3
IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBBdHRyaWJ1dGVPd25lclByb3h5ID0gU1ZHQXR0cmli
dXRlT3duZXJQcm94eUltcGw8U1ZHQ2lyY2xlRWxlbWVudCwgU1ZHR2VvbWV0cnlFbGVtZW50LCBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkPjsKICAgICBzdGF0aWMgYXV0byYgYXR0cmlidXRl
UmVnaXN0cnkoKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5OjphdHRyaWJ1dGVSZWdpc3Ry
eSgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3du
QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOyB9CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJBdHRy
aWJ1dGVzKCk7Ci0KICAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclByb3h5JiBhdHRyaWJ1dGVP
d25lclByb3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hdHRyaWJ1dGVPd25lclByb3h5OyB9
CisKKyAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5
PFNWR0NpcmNsZUVsZW1lbnQsIFNWR0dlb21ldHJ5RWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZD47CisgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3RyeSYgcHJvcGVydHlSZWdp
c3RyeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdpc3RyeTsgfQorCisgICAg
c3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1
dGVOYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmlzS25v
d25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkgfHwgUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0
dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsKKyAgICB9CisKICAgICB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKICAgICB2
b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogCkBA
IC01OSw2ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBmaW5hbDsKIAogICAgIEF0dHJpYnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25lclBy
b3h5IHsgKnRoaXMgfTsKKyAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7
ICp0aGlzIH07CiAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUgbV9jeCB7IExlbmd0aE1v
ZGVXaWR0aCB9OwogICAgIFNWR0FuaW1hdGVkTGVuZ3RoQXR0cmlidXRlIG1fY3kgeyBMZW5ndGhN
b2RlSGVpZ2h0IH07CiAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUgbV9yIHsgTGVuZ3Ro
TW9kZU90aGVyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgKaW5kZXgg
NjNiNmJkZTBlMjQzM2I2ZWM1ZGFhMmYwZWVhNjZlMzdhZTNhZGZmNy4uMDNjMWFkZGY3ZTBlMmYy
ZDg2YzgzODU4NTExM2M4MDQzMTA4ZmYwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0NsaXBQYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0
aEVsZW1lbnQuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUsIDIwMDcsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4K
LSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIxLDcgKzIxLDYgQEAKIAogI3ByYWdtYSBvbmNlCiAK
LSNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW4uaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEVu
dW1lcmF0aW9uLmgiCiAjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oIgog
I2luY2x1ZGUgIlNWR0dyYXBoaWNzRWxlbWVudC5oIgpAQCAtNDQsMTAgKzQzLDE3IEBAIHByaXZh
dGU6CiAKICAgICB1c2luZyBBdHRyaWJ1dGVPd25lclByb3h5ID0gU1ZHQXR0cmlidXRlT3duZXJQ
cm94eUltcGw8U1ZHQ2xpcFBhdGhFbGVtZW50LCBTVkdHcmFwaGljc0VsZW1lbnQsIFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQ+OwogICAgIHN0YXRpYyBBdHRyaWJ1dGVPd25lclByb3h5OjpB
dHRyaWJ1dGVSZWdpc3RyeSYgYXR0cmlidXRlUmVnaXN0cnkoKSB7IHJldHVybiBBdHRyaWJ1dGVP
d25lclByb3h5OjphdHRyaWJ1dGVSZWdpc3RyeSgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNLbm93
bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSB7IHJldHVybiBB
dHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOyB9CiAg
ICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7Ci0KICAgICBjb25zdCBTVkdBdHRy
aWJ1dGVPd25lclByb3h5JiBhdHRyaWJ1dGVPd25lclByb3h5KCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9hdHRyaWJ1dGVPd25lclByb3h5OyB9CisKKyAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5
ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0NsaXBQYXRoRWxlbWVudCwgU1ZHR3JhcGhp
Y3NFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkPjsKKyAgICBjb25zdCBTVkdQ
cm9wZXJ0eVJlZ2lzdHJ5JiBwcm9wZXJ0eVJlZ2lzdHJ5KCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9wcm9wZXJ0eVJlZ2lzdHJ5OyB9CisKKyAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCisgICAgeworICAgICAgICByZXR1
cm4gQXR0cmlidXRlT3duZXJQcm94eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSB8
fCBQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOworICAg
IH0KKwogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYpIGZpbmFsOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3Qg
Q2hpbGRDaGFuZ2UmKSBmaW5hbDsKQEAgLTU5LDYgKzY1LDcgQEAgcHJpdmF0ZToKICAgICBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwogCiAgICAgQXR0cmlidXRlT3duZXJQ
cm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9OworICAgIFByb3BlcnR5UmVnaXN0
cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKICAgICBTVkdBbmltYXRlZEVudW1lcmF0
aW9uQXR0cmlidXRlPFNWR1VuaXRUeXBlczo6U1ZHVW5pdFR5cGU+IG1fY2xpcFBhdGhVbml0cyB7
IFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9VU0VSU1BBQ0VPTlVTRSB9OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25F
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlv
bkVsZW1lbnQuaAppbmRleCA5ZjQ2YmVjZGZiNGI5YzE5YTA1YTRkOTNiYWJiYTVmMzU5MzZiYzJk
Li45ZDJiNmRlNmZmYTY2NmM4YzQzMzljOGY0ODNkMWEyZDgzZWQzZWRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1l
bnQuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIw
MDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLSAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTk2LDEwICs5NiwxNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB1c2luZyBBdHRy
aWJ1dGVPd25lclByb3h5ID0gU1ZHQXR0cmlidXRlT3duZXJQcm94eUltcGw8U1ZHQ29tcG9uZW50
VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQsIFNWR0VsZW1lbnQ+OwogICAgIHN0YXRpYyBBdHRyaWJ1
dGVPd25lclByb3h5OjpBdHRyaWJ1dGVSZWdpc3RyeSYgYXR0cmlidXRlUmVnaXN0cnkoKSB7IHJl
dHVybiBBdHRyaWJ1dGVPd25lclByb3h5OjphdHRyaWJ1dGVSZWdpc3RyeSgpOyB9Ci0gICAgc3Rh
dGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJp
YnV0ZU5hbWUpOyB9CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7Ci0KICAg
ICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclByb3h5JiBhdHRyaWJ1dGVPd25lclByb3h5KCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9hdHRyaWJ1dGVPd25lclByb3h5OyB9CisKKyAgICB1c2lu
ZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0NvbXBvbmVu
dFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LCBTVkdFbGVtZW50PjsKKyAgICBjb25zdCBTVkdQcm9w
ZXJ0eVJlZ2lzdHJ5JiBwcm9wZXJ0eVJlZ2lzdHJ5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9wcm9wZXJ0eVJlZ2lzdHJ5OyB9CisKKyAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCisgICAgeworICAgICAgICByZXR1
cm4gQXR0cmlidXRlT3duZXJQcm94eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSB8
fCBQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOworICAg
IH0KKwogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKQEAgLTEwNyw2ICsxMTQsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgCiBwcml2YXRlOgogICAgIEF0dHJpYnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1
dGVPd25lclByb3h5IHsgKnRoaXMgfTsKKyAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlS
ZWdpc3RyeSB7ICp0aGlzIH07CiAgICAgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkF0dHJpYnV0ZTxD
b21wb25lbnRUcmFuc2ZlclR5cGU+IG1fdHlwZSB7IEZFQ09NUE9ORU5UVFJBTlNGRVJfVFlQRV9J
REVOVElUWSB9OwogICAgIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEF0dHJpYnV0ZSBtX3RhYmxlVmFs
dWVzOwogICAgIFNWR0FuaW1hdGVkTnVtYmVyQXR0cmlidXRlIG1fc2xvcGUgeyAxIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaAppbmRleCAyYTcxYzYyYzBiNmQ4N2Q0ZmJlMTMw
NzU3NWU2Mzc2MjM2ZGZmZjMxLi44ZDY5NWNhZjEzMTQ0ZmYxMWZiZjk4YmM3Y2VlNjk5NzdhNTdj
YzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgKQEAgLTEsNyArMSw3IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IE5pa29sYXMgWmlt
bWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0y
MSw3ICsyMSw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29s
ZWFuLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKICNpbmNsdWRlICJTVkdBbmlt
YXRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKQEAgLTU0LDEwICs1MywxNyBA
QCBwcml2YXRlOgogCiAgICAgdXNpbmcgQXR0cmlidXRlT3duZXJQcm94eSA9IFNWR0F0dHJpYnV0
ZU93bmVyUHJveHlJbXBsPFNWR0N1cnNvckVsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQsIFNWR1Rlc3RzLCBTVkdVUklSZWZlcmVuY2U+OwogICAgIHN0YXRp
YyBBdHRyaWJ1dGVPd25lclByb3h5OjpBdHRyaWJ1dGVSZWdpc3RyeSYgYXR0cmlidXRlUmVnaXN0
cnkoKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5OjphdHRyaWJ1dGVSZWdpc3RyeSgpOyB9
Ci0gICAgc3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyaWJ1dGVOYW1lKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmli
dXRlKGF0dHJpYnV0ZU5hbWUpOyB9CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJBdHRyaWJ1dGVz
KCk7Ci0KICAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclByb3h5JiBhdHRyaWJ1dGVPd25lclBy
b3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hdHRyaWJ1dGVPd25lclByb3h5OyB9CisKKyAg
ICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0N1
cnNvckVsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNW
R1Rlc3RzLCBTVkdVUklSZWZlcmVuY2U+OworICAgIGNvbnN0IFNWR1Byb3BlcnR5UmVnaXN0cnkm
IHByb3BlcnR5UmVnaXN0cnkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3BlcnR5UmVnaXN0
cnk7IH0KKyAgICAKKyAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCisgICAgeworICAgICAgICByZXR1cm4gQXR0cmlidXRl
T3duZXJQcm94eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSB8fCBQcm9wZXJ0eVJl
Z2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOworICAgIH0KKwogICAgIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYpIGZpbmFsOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJikgZmluYWw7CiAKQEAgLTY3LDYgKzczLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZFN1
YnJlc291cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxVUkw+JikgY29uc3QgZmluYWw7CiAK
ICAgICBBdHRyaWJ1dGVPd25lclByb3h5IG1fYXR0cmlidXRlT3duZXJQcm94eSB7ICp0aGlzIH07
CisgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwogICAg
IFNWR0FuaW1hdGVkTGVuZ3RoQXR0cmlidXRlIG1feCB7IExlbmd0aE1vZGVXaWR0aCB9OwogICAg
IFNWR0FuaW1hdGVkTGVuZ3RoQXR0cmlidXRlIG1feSB7IExlbmd0aE1vZGVIZWlnaHQgfTsKICAg
ICBIYXNoU2V0PENTU0N1cnNvckltYWdlVmFsdWUqPiBtX2NsaWVudHM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdEZWZzRWxlbWVudC5oCmluZGV4IGRmM2MwNDAzZWNmNWI1NjgyYWZjYTcyZTlmN2EyN2EwNTcz
ZTQ1MWYuLjNhYjRlOTllM2M1OGFlY2YyMGE4NjNjN2VkOWYyNDMzNzc0MzJkZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4K
ICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3Jn
PgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjEsNyArMjEsNiBAQAogCiAjcHJhZ21hIG9uY2UK
IAotI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbi5oIgogI2luY2x1ZGUgIlNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQuaCIKICNpbmNsdWRlICJTVkdHcmFwaGljc0VsZW1lbnQuaCIKIApA
QCAtMzcsNiArMzYsOSBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgQXR0cmlidXRlT3duZXJQcm94
eSA9IFNWR0F0dHJpYnV0ZU93bmVyUHJveHlJbXBsPFNWR0RlZnNFbGVtZW50LCBTVkdHcmFwaGlj
c0VsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ+OwogICAgIGNvbnN0IFNWR0F0
dHJpYnV0ZU93bmVyUHJveHkmIGF0dHJpYnV0ZU93bmVyUHJveHkoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX2F0dHJpYnV0ZU93bmVyUHJveHk7IH0KKyAgICAKKyAgICB1c2luZyBQcm9wZXJ0eVJl
Z2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0RlZnNFbGVtZW50LCBTVkdHcmFw
aGljc0VsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ+OworICAgIGNvbnN0IFNW
R1Byb3BlcnR5UmVnaXN0cnkmIHByb3BlcnR5UmVnaXN0cnkoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX3Byb3BlcnR5UmVnaXN0cnk7IH0KIAogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IGZpbmFs
OwogICAgIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9
CkBAIC00NCw2ICs0Niw3IEBAIHByaXZhdGU6CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9z
aXRpb24mKSBmaW5hbDsKIAogICAgIEF0dHJpYnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25l
clByb3h5IHsgKnRoaXMgfTsKKyAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3Ry
eSB7ICp0aGlzIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Vs
ZW1lbnQuaAppbmRleCA5Mjk2Y2JhMWUxMWFkNGUzMDM2MDMxZDQzOWI4ZmQwNTRjN2E5MDc5Li5k
OGJmYzJkZjg3YmYyMzEwOGViZDY2ZDFkOWQwYTQ4MjQ4N2JlMDlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdF
bGVtZW50LmgKQEAgLTIxNiw5ICsyMTYsOCBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8U1ZHRWxl
bWVudCo+IG1fZWxlbWVudHNXaXRoUmVsYXRpdmVMZW5ndGhzOwogCiAgICAgQXR0cmlidXRlT3du
ZXJQcm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9OwotICAgIFNWR0FuaW1hdGVk
U3RyaW5nQXR0cmlidXRlIG1fY2xhc3NOYW1lOwotICAgIAogICAgIFByb3BlcnR5UmVnaXN0cnkg
bV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKKyAgICBTVkdBbmltYXRlZFN0cmluZ0F0dHJp
YnV0ZSBtX2NsYXNzTmFtZTsKIH07CiAKIGNsYXNzIFNWR0VsZW1lbnQ6Okluc3RhbmNlSW52YWxp
ZGF0aW9uR3VhcmQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaAppbmRleCA5
ZGFhZWE4Y2Y4YmFhZTFmMjNmNzI2YTU2OTk0MzYyOGQyY2E4M2EwLi4zYzliY2ZjN2Q5YmExY2Vm
MWE0YzI1YzljNzFhZjU3ODRiYzQxMTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRWxsaXBzZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVs
ZW1lbnQuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUs
IDIwMDYsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLSAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQ4LDEwICs0OCwxNyBAQCBwcml2YXRlOgogCiAgICAgdXNp
bmcgQXR0cmlidXRlT3duZXJQcm94eSA9IFNWR0F0dHJpYnV0ZU93bmVyUHJveHlJbXBsPFNWR0Vs
bGlwc2VFbGVtZW50LCBTVkdHZW9tZXRyeUVsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQ+OwogICAgIHN0YXRpYyBBdHRyaWJ1dGVPd25lclByb3h5OjpBdHRyaWJ1dGVSZWdpc3Ry
eSYgYXR0cmlidXRlUmVnaXN0cnkoKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5OjphdHRy
aWJ1dGVSZWdpc3RyeSgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclBy
b3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOyB9CiAgICAgc3RhdGljIHZvaWQg
cmVnaXN0ZXJBdHRyaWJ1dGVzKCk7Ci0KICAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclByb3h5
JiBhdHRyaWJ1dGVPd25lclByb3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hdHRyaWJ1dGVP
d25lclByb3h5OyB9CisgICAgCisgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3Bl
cnR5T3duZXJSZWdpc3RyeTxTVkdFbGxpcHNlRWxlbWVudCwgU1ZHR2VvbWV0cnlFbGVtZW50LCBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkPjsKKyAgICBjb25zdCBTVkdQcm9wZXJ0eVJlZ2lz
dHJ5JiBwcm9wZXJ0eVJlZ2lzdHJ5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wcm9wZXJ0eVJl
Z2lzdHJ5OyB9CisKKyAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCisgICAgeworICAgICAgICByZXR1cm4gQXR0cmlidXRl
T3duZXJQcm94eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSB8fCBQcm9wZXJ0eVJl
Z2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOworICAgIH0KKwogICAgIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYpIGZpbmFsOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJikgZmluYWw7CiAKQEAgLTYxLDYgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwogCiAgICAgQXR0cmlidXRlT3duZXJQcm94eSBt
X2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9OworICAgIFByb3BlcnR5UmVnaXN0cnkgbV9w
cm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKICAgICBTVkdBbmltYXRlZExlbmd0aEF0dHJpYnV0
ZSBtX2N4IHsgTGVuZ3RoTW9kZVdpZHRoIH07CiAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1
dGUgbV9jeSB7IExlbmd0aE1vZGVIZWlnaHQgfTsKICAgICBTVkdBbmltYXRlZExlbmd0aEF0dHJp
YnV0ZSBtX3J4IHsgTGVuZ3RoTW9kZVdpZHRoIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5jcHAKaW5kZXggM2ExZTU2ZGQ2MjNhNmIy
NGViNzU4MDg2NDBlYjEzNzdjZGY3ZGMzZi4uYWYyNjFiNjg2MTI4ZTI3MDAyM2UwMmRmODk2YTY1
OTZjOTY0NTZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkLmNwcApAQCAtMjksMjIgKzI5LDE4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6U1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZChTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCkKICAgICA6IG1fY29udGV4dEVsZW1l
bnQoKmNvbnRleHRFbGVtZW50KQorICAgICwgbV9leHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKFNW
R0FuaW1hdGVkQm9vbGVhbjo6Y3JlYXRlKGNvbnRleHRFbGVtZW50KSkKIHsKLSAgICByZWdpc3Rl
ckF0dHJpYnV0ZXMoKTsKLX0KLQotdm9pZCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpy
ZWdpc3RlckF0dHJpYnV0ZXMoKQotewotICAgIGF1dG8mIHJlZ2lzdHJ5ID0gYXR0cmlidXRlUmVn
aXN0cnkoKTsKLSAgICBpZiAoIXJlZ2lzdHJ5LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyQXR0cmlidXRlPFNWR05hbWVzOjpleHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkQXR0ciwgJlNWR0VsbGlwc2VFbGVtZW50OjptX2V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQ+KCk7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOworICAgIHN0ZDo6
Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CisgICAgICAgIFByb3BlcnR5UmVnaXN0cnk6OnJlZ2lz
dGVyUHJvcGVydHk8U1ZHTmFtZXM6OmV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRBdHRyLCAmU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6bV9leHRlcm5hbFJlc291cmNlc1JlcXVpcmVkPigp
OworICAgIH0pOwogfQogCiB2b2lkIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYg
dmFsdWUpCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmV4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWRBdHRyKQotICAgICAgICBzZXRFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKHZhbHVlID09
ICJ0cnVlIik7CisgICAgICAgIG1fZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC0+c2V0QmFzZVZh
bEludGVybmFsKHZhbHVlID09ICJ0cnVlIik7CiB9CiAKIHZvaWQgU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZC5oCmluZGV4IGQyNTUwN2FkMDdlMjBmMDZlYjJhOTk5NjU3NGQwMGJjMDIyMjlmZDUuLmVh
ZWIyMmFhYmViZWQ5YmUzOGNhOGNmMGIzZDRiNmNmNWE2MTkwYmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaApAQCAtMSw3ICsxLDcg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlrb2xhcyBaaW1tZXJt
YW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9i
IEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIzLDYgKzIzLDcg
QEAKIAogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRlICJTVkdBdHRyaWJ1dGVP
d25lclByb3h5SW1wbC5oIgorI2luY2x1ZGUgIlNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeS5oIgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ3LDE1
ICs0OCwxOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQXR0cmlidXRlT3duZXJQcm94eSA9IFNWR0F0
dHJpYnV0ZU93bmVyUHJveHlJbXBsPFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ+OwogICAg
IHN0YXRpYyBhdXRvJiBhdHRyaWJ1dGVSZWdpc3RyeSgpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVy
UHJveHk6OmF0dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0KIAotICAgIGF1dG8gZXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZEFuaW1hdGVkKCkgeyByZXR1cm4gbV9leHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LmFuaW1hdGVkUHJvcGVydHkoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQorICAgIHVzaW5nIFBy
b3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZD47CiAKLSAgICBib29sIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQoKSBj
b25zdCB7IHJldHVybiBtX2V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQudmFsdWUoKTsgfQotICAg
IHZvaWQgc2V0RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZChib29sIGV4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQpIHsgbV9leHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLnNldFZhbHVlKGV4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQpOyB9CisgICAgYm9vbCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
KCkgY29uc3QgeyByZXR1cm4gbV9leHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLT5jdXJyZW50VmFs
dWUoKTsgfQorICAgIFNWR0FuaW1hdGVkQm9vbGVhbiYgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZEFuaW1hdGVkKCkgeyByZXR1cm4gbV9leHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOyB9CiAKIHBy
b3RlY3RlZDoKICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKFNWR0VsZW1lbnQqIGNv
bnRleHRFbGVtZW50KTsKIAotICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94
eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsgfQorICAgIHN0YXRpYyBib29sIGlz
S25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKKyAgICB7
CisgICAgICAgIHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0
dHJpYnV0ZU5hbWUpIHx8IFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmli
dXRlTmFtZSk7CisgICAgfQogCiAgICAgdmlydHVhbCB2b2lkIHNldEhhdmVGaXJlZExvYWRFdmVu
dChib29sKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQYXJzZXJJbnNlcnRlZCgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CkBAIC02NywxMSArNzEsMTAgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wg
aGF2ZUxvYWRlZFJlcXVpcmVkUmVzb3VyY2VzKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgc3Rh
dGljIHZvaWQgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7CiAgICAgQXR0cmlidXRlT3duZXJQcm94eSBh
dHRyaWJ1dGVPd25lclByb3h5KCkgeyByZXR1cm4geyAqdGhpcywgbV9jb250ZXh0RWxlbWVudCB9
OyB9CiAgICAgCiAgICAgU1ZHRWxlbWVudCYgbV9jb250ZXh0RWxlbWVudDsKLSAgICBTVkdBbmlt
YXRlZEJvb2xlYW5BdHRyaWJ1dGUgbV9leHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOworICAgIFJl
ZjxTVkdBbmltYXRlZEJvb2xlYW4+IG1fZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUJsZW5kRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50
LmgKaW5kZXggZDY3YmFmZmNhYTk2OGVhZTRjZjJhZDBkNTI5OGU4OGE4YzNhZDA0Yy4uYTE2YjFk
MmJmNDFlMTA1MTgwZDI1YTBmMDkxMzk3YzhiMDhiZGUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFQmxlbmRFbGVtZW50LmgKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAq
IENvcHlyaWdodCAoQykgMjAxNCBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTU5LDEwICs1OSwxNyBAQCBwcml2
YXRlOgogCiAgICAgdXNpbmcgQXR0cmlidXRlT3duZXJQcm94eSA9IFNWR0F0dHJpYnV0ZU93bmVy
UHJveHlJbXBsPFNWR0ZFQmxlbmRFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0
dHJpYnV0ZXM+OwogICAgIHN0YXRpYyBBdHRyaWJ1dGVPd25lclByb3h5OjpBdHRyaWJ1dGVSZWdp
c3RyeSYgYXR0cmlidXRlUmVnaXN0cnkoKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojph
dHRyaWJ1dGVSZWdpc3RyeSgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSB7IHJldHVybiBBdHRyaWJ1dGVPd25l
clByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOyB9CiAgICAgc3RhdGljIHZv
aWQgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7Ci0KICAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclBy
b3h5JiBhdHRyaWJ1dGVPd25lclByb3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hdHRyaWJ1
dGVPd25lclByb3h5OyB9CisKKyAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVy
dHlPd25lclJlZ2lzdHJ5PFNWR0ZFQmxlbmRFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXM+OworICAgIGNvbnN0IFNWR1Byb3BlcnR5UmVnaXN0cnkmIHByb3BlcnR5
UmVnaXN0cnkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3BlcnR5UmVnaXN0cnk7IH0KKwor
ICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojpp
c0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpIHx8IFByb3BlcnR5UmVnaXN0cnk6OmlzS25v
d25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7CisgICAgfQorCiAgICAgdm9pZCBwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVy
cmlkZTsKIApAQCAtNzAsNiArNzcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgc2V0RmlsdGVyRWZm
ZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCosIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1l
KSBvdmVycmlkZTsKIAogICAgIEF0dHJpYnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25lclBy
b3h5IHsgKnRoaXMgfTsKKyAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7
ICp0aGlzIH07CiAgICAgU1ZHQW5pbWF0ZWRTdHJpbmdBdHRyaWJ1dGUgbV9pbjE7CiAgICAgU1ZH
QW5pbWF0ZWRTdHJpbmdBdHRyaWJ1dGUgbV9pbjI7CiAgICAgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlv
bkF0dHJpYnV0ZTxCbGVuZE1vZGU+IG1fbW9kZSB7IEJsZW5kTW9kZTo6Tm9ybWFsIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5oCmluZGV4IDQ3Njg4ZWM4
NjlkM2ZjZjEzNTE5NDk4YzhlODAwMGI1NGU2OWMxZjguLjRlMWYzM2EyNzNhNWNkZmMyZDBlODg5
N2JlMjRjOTA4MzE5ZjdhZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNv
bG9yTWF0cml4RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0
cml4RWxlbWVudC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSwgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgotICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtODMsMTAgKzgzLDE3IEBAIHByaXZhdGU6CiAKICAgICB1c2lu
ZyBBdHRyaWJ1dGVPd25lclByb3h5ID0gU1ZHQXR0cmlidXRlT3duZXJQcm94eUltcGw8U1ZHRkVD
b2xvck1hdHJpeEVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcz47
CiAgICAgc3RhdGljIEF0dHJpYnV0ZU93bmVyUHJveHk6OkF0dHJpYnV0ZVJlZ2lzdHJ5JiBhdHRy
aWJ1dGVSZWdpc3RyeSgpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmF0dHJpYnV0ZVJl
Z2lzdHJ5KCk7IH0KLSAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6Omlz
S25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7IH0KICAgICBzdGF0aWMgdm9pZCByZWdpc3Rl
ckF0dHJpYnV0ZXMoKTsKLQogICAgIGNvbnN0IFNWR0F0dHJpYnV0ZU93bmVyUHJveHkmIGF0dHJp
YnV0ZU93bmVyUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2F0dHJpYnV0ZU93bmVyUHJv
eHk7IH0KKworICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVn
aXN0cnk8U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcz47CisgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3RyeSYgcHJvcGVydHlSZWdp
c3RyeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdpc3RyeTsgfQorCisgICAg
c3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1
dGVOYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmlzS25v
d25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkgfHwgUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0
dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsKKyAgICB9CisKICAgICB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAg
ICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRl
OwogCkBAIC05NCw2ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+
IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBvdmVycmlkZTsKIAogICAgIEF0dHJp
YnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsKKyAgICBQcm9w
ZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CiAgICAgU1ZHQW5pbWF0
ZWRTdHJpbmdBdHRyaWJ1dGUgbV9pbjE7CiAgICAgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkF0dHJp
YnV0ZTxDb2xvck1hdHJpeFR5cGU+IG1fdHlwZSB7IEZFQ09MT1JNQVRSSVhfVFlQRV9NQVRSSVgg
fTsKICAgICBTVkdBbmltYXRlZE51bWJlckxpc3RBdHRyaWJ1dGUgbV92YWx1ZXM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oCmluZGV4
IGJkNjJiMzQ4MWM1ZWU0NjUzNDFkNDNkYmM0NGJmODg3MmY0YjZlN2UuLjI1N2E5NTZkODg0ZDAx
ZTk0ZDAzNjA3NzNjNWFmYWUwYzZhNGEzYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oCkBAIC0yLDYgKzIsNyBAQAogICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFu
bkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtk
ZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zOSwxNCArNDAsMTggQEAgcHJpdmF0ZToK
ICAgICB1c2luZyBBdHRyaWJ1dGVPd25lclByb3h5ID0gU1ZHQXR0cmlidXRlT3duZXJQcm94eUlt
cGw8U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcz47CiAgICAgc3RhdGljIEF0dHJpYnV0ZU93bmVyUHJveHk6OkF0dHJpYnV0
ZVJlZ2lzdHJ5JiBhdHRyaWJ1dGVSZWdpc3RyeSgpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJv
eHk6OmF0dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0KICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckF0dHJp
YnV0ZXMoKTsKKyAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclByb3h5JiBhdHRyaWJ1dGVPd25l
clByb3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hdHRyaWJ1dGVPd25lclByb3h5OyB9CisK
KyAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNW
R0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0
dHJpYnV0ZXM+OworICAgIGNvbnN0IFNWR1Byb3BlcnR5UmVnaXN0cnkmIHByb3BlcnR5UmVnaXN0
cnkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3BlcnR5UmVnaXN0cnk7IH0KIAogICAgIC8v
IEZJWE1FOiBzdmdBdHRyaWJ1dGVDaGFuZ2VkIG1pc3NpbmcuCi0gICAgY29uc3QgU1ZHQXR0cmli
dXRlT3duZXJQcm94eSYgYXR0cmlidXRlT3duZXJQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fYXR0cmlidXRlT3duZXJQcm94eTsgfQogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogCiAgICAgUmVm
UHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIG92ZXJy
aWRlOwogCiAgICAgQXR0cmlidXRlT3duZXJQcm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAq
dGhpcyB9OworICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMg
fTsKICAgICBTVkdBbmltYXRlZFN0cmluZ0F0dHJpYnV0ZSBtX2luMTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaAppbmRleCBhMTIzY2M2YTcxNDQwNTFj
ODMzNjg4ZjVkNWViMDIwY2ZkOTlmYzNkLi4wZjExNzNiMTU5NDZlMjMxYzUyMTBiYTI5NWY4MTFj
YzA4ZWFhMmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5o
CkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNyBO
aWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgotICogQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtMTA2LDEwICsxMDYsMTcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIEF0dHJpYnV0
ZU93bmVyUHJveHkgPSBTVkdBdHRyaWJ1dGVPd25lclByb3h5SW1wbDxTVkdGRUNvbXBvc2l0ZUVs
ZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcz47CiAgICAgc3RhdGlj
IEF0dHJpYnV0ZU93bmVyUHJveHk6OkF0dHJpYnV0ZVJlZ2lzdHJ5JiBhdHRyaWJ1dGVSZWdpc3Ry
eSgpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmF0dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0K
LSAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJpYnV0ZU5hbWUpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmlzS25vd25BdHRyaWJ1
dGUoYXR0cmlidXRlTmFtZSk7IH0KICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckF0dHJpYnV0ZXMo
KTsKLQogICAgIGNvbnN0IFNWR0F0dHJpYnV0ZU93bmVyUHJveHkmIGF0dHJpYnV0ZU93bmVyUHJv
eHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2F0dHJpYnV0ZU93bmVyUHJveHk7IH0KKworICAg
IHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVD
b21wb3NpdGVFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+Owor
ICAgIGNvbnN0IFNWR1Byb3BlcnR5UmVnaXN0cnkmIHByb3BlcnR5UmVnaXN0cnkoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX3Byb3BlcnR5UmVnaXN0cnk7IH0KKworICAgIHN0YXRpYyBib29sIGlz
S25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKKyAgICB7
CisgICAgICAgIHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0
dHJpYnV0ZU5hbWUpIHx8IFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmli
dXRlTmFtZSk7CisgICAgfQorCiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIApAQCAtMTE3LDYg
KzEyNCw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmls
dGVyQnVpbGRlciosIEZpbHRlciYpIG92ZXJyaWRlOwogCiAgICAgQXR0cmlidXRlT3duZXJQcm94
eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9OworICAgIFByb3BlcnR5UmVnaXN0cnkg
bV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKICAgICBTVkdBbmltYXRlZFN0cmluZ0F0dHJp
YnV0ZSBtX2luMTsKICAgICBTVkdBbmltYXRlZFN0cmluZ0F0dHJpYnV0ZSBtX2luMjsKICAgICBT
VkdBbmltYXRlZEVudW1lcmF0aW9uQXR0cmlidXRlPENvbXBvc2l0ZU9wZXJhdGlvblR5cGU+IG1f
c3ZnT3BlcmF0b3IgeyBGRUNPTVBPU0lURV9PUEVSQVRPUl9PVkVSIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAppbmRleCBmOWM0MWZk
ZjkyYmI2ZjE0YjUxMDhkNDlkZDYzY2NkOWY3OGVjNDE2Li5kYTcyNmQ2Y2Q5MDFiNTU3NjQxMzAz
NWE1ZjgwYjFmZTM3ZWNkZGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVD
b252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNv
bnZvbHZlTWF0cml4RWxlbWVudC5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAgaW5saW5lIFNWR0ZFQ29u
dm9sdmVNYXRyaXhFbGVtZW50OjpTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW0KICAgICAgICAgUHJvcGVydHlSZWdpc3RyeTo6cmVnaXN0ZXJQcm9wZXJ0eTxTVkdO
YW1lczo6b3JkZXJBdHRyLCAmU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6Om1fb3JkZXJYLCAm
U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6Om1fb3JkZXJZPigpOwogICAgICAgICBQcm9wZXJ0
eVJlZ2lzdHJ5OjpyZWdpc3RlclByb3BlcnR5PFNWR05hbWVzOjp0YXJnZXRYQXR0ciwgJlNWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50OjptX3RhcmdldFg+KCk7CiAgICAgICAgIFByb3BlcnR5UmVn
aXN0cnk6OnJlZ2lzdGVyUHJvcGVydHk8U1ZHTmFtZXM6OnRhcmdldFlBdHRyLCAmU1ZHRkVDb252
b2x2ZU1hdHJpeEVsZW1lbnQ6Om1fdGFyZ2V0WT4oKTsKKyAgICAgICAgUHJvcGVydHlSZWdpc3Ry
eTo6cmVnaXN0ZXJQcm9wZXJ0eTxTVkdOYW1lczo6cHJlc2VydmVBbHBoYUF0dHIsICZTVkdGRUNv
bnZvbHZlTWF0cml4RWxlbWVudDo6bV9wcmVzZXJ2ZUFscGhhPigpOwogICAgIH0pOwogfQogCkBA
IC03OSw3ICs4MCw2IEBAIHZvaWQgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OnJlZ2lzdGVy
QXR0cmlidXRlcygpCiAgICAgcmVnaXN0cnkucmVnaXN0ZXJBdHRyaWJ1dGU8U1ZHTmFtZXM6Omtl
cm5lbFVuaXRMZW5ndGhBdHRyLAogICAgICAgICAmU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6
Omtlcm5lbFVuaXRMZW5ndGhYSWRlbnRpZmllciwgJlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50
OjptX2tlcm5lbFVuaXRMZW5ndGhYLAogICAgICAgICAmU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1l
bnQ6Omtlcm5lbFVuaXRMZW5ndGhZSWRlbnRpZmllciwgJlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVt
ZW50OjptX2tlcm5lbFVuaXRMZW5ndGhZPigpOwotICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyQXR0cmli
dXRlPFNWR05hbWVzOjpwcmVzZXJ2ZUFscGhhQXR0ciwgJlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVt
ZW50OjptX3ByZXNlcnZlQWxwaGE+KCk7CiB9CiAKIHZvaWQgU1ZHRkVDb252b2x2ZU1hdHJpeEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21pY1N0cmluZyYgdmFsdWUpCkBAIC0xNTIsOSArMTUyLDkgQEAgdm9pZCBTVkdGRUNvbnZvbHZl
TWF0cml4RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QKIAogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpwcmVzZXJ2ZUFscGhhQXR0cikgewog
ICAgICAgICBpZiAodmFsdWUgPT0gInRydWUiKQotICAgICAgICAgICAgbV9wcmVzZXJ2ZUFscGhh
LnNldFZhbHVlKHRydWUpOworICAgICAgICAgICAgbV9wcmVzZXJ2ZUFscGhhLT5zZXRCYXNlVmFs
SW50ZXJuYWwodHJ1ZSk7CiAgICAgICAgIGVsc2UgaWYgKHZhbHVlID09ICJmYWxzZSIpCi0gICAg
ICAgICAgICBtX3ByZXNlcnZlQWxwaGEuc2V0VmFsdWUoZmFsc2UpOworICAgICAgICAgICAgbV9w
cmVzZXJ2ZUFscGhhLT5zZXRCYXNlVmFsSW50ZXJuYWwoZmFsc2UpOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5yZXBvcnRXYXJuaW5n
KCJmZUNvbnZvbHZlTWF0cml4OiBwcm9ibGVtIHBhcnNpbmcgcHJlc2VydmVBbHBoYUF0dHI9XCIi
ICsgdmFsdWUgICsgIlwiLiBGaWx0ZXJlZCBlbGVtZW50IHdpbGwgbm90IGJlIGRpc3BsYXllZC4i
KTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQuaAppbmRleCBkMzA0Y2M0MWI5MjI3MzcyMmRmOGY3NjJkYjU2YzIzMjU1
YjJhMWFjLi43MGZiOWQ3MzUwNjRmYTJkNmEwNTMyNzk5MTViYTg5N2M3N2U5OTY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaApAQCAtNzgs
NyArNzgsNyBAQCBwdWJsaWM6CiAgICAgRWRnZU1vZGVUeXBlIGVkZ2VNb2RlKCkgY29uc3QgeyBy
ZXR1cm4gbV9lZGdlTW9kZS5jdXJyZW50VmFsdWUoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQog
ICAgIGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhYKCkgY29uc3QgeyByZXR1cm4gbV9rZXJuZWxVbml0
TGVuZ3RoWC5jdXJyZW50VmFsdWUoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQogICAgIGZsb2F0
IGtlcm5lbFVuaXRMZW5ndGhZKCkgY29uc3QgeyByZXR1cm4gbV9rZXJuZWxVbml0TGVuZ3RoWS5j
dXJyZW50VmFsdWUoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQotICAgIGJvb2wgcHJlc2VydmVB
bHBoYSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlc2VydmVBbHBoYS5jdXJyZW50VmFsdWUoYXR0cmli
dXRlT3duZXJQcm94eSgpKTsgfQorICAgIGJvb2wgcHJlc2VydmVBbHBoYSgpIGNvbnN0IHsgcmV0
dXJuIG1fcHJlc2VydmVBbHBoYS0+Y3VycmVudFZhbHVlKCk7IH0KIAogICAgIFJlZlB0cjxTVkdB
bmltYXRlZFN0cmluZz4gaW4xQW5pbWF0ZWQoKSB7IHJldHVybiBtX2luMS5hbmltYXRlZFByb3Bl
cnR5KGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KICAgICBTVkdBbmltYXRlZEludGVnZXImIG9y
ZGVyWEFuaW1hdGVkKCkgeyByZXR1cm4gbV9vcmRlclg7IH0KQEAgLTkxLDIwICs5MSwyNCBAQCBw
dWJsaWM6CiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+IGVkZ2VNb2RlQW5pbWF0
ZWQoKSB7IHJldHVybiBtX2VkZ2VNb2RlLmFuaW1hdGVkUHJvcGVydHkoYXR0cmlidXRlT3duZXJQ
cm94eSgpKTsgfQogICAgIFJlZlB0cjxTVkdBbmltYXRlZE51bWJlcj4ga2VybmVsVW5pdExlbmd0
aFhBbmltYXRlZCgpIHsgcmV0dXJuIG1fa2VybmVsVW5pdExlbmd0aFguYW5pbWF0ZWRQcm9wZXJ0
eShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkTnVtYmVy
PiBrZXJuZWxVbml0TGVuZ3RoWUFuaW1hdGVkKCkgeyByZXR1cm4gbV9rZXJuZWxVbml0TGVuZ3Ro
WS5hbmltYXRlZFByb3BlcnR5KGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KLSAgICBSZWZQdHI8
U1ZHQW5pbWF0ZWRCb29sZWFuPiBwcmVzZXJ2ZUFscGhhQW5pbWF0ZWQoKSB7IHJldHVybiBtX3By
ZXNlcnZlQWxwaGEuYW5pbWF0ZWRQcm9wZXJ0eShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9Cisg
ICAgU1ZHQW5pbWF0ZWRCb29sZWFuJiBwcmVzZXJ2ZUFscGhhQW5pbWF0ZWQoKSB7IHJldHVybiBt
X3ByZXNlcnZlQWxwaGE7IH0KIAogcHJpdmF0ZToKICAgICBTVkdGRUNvbnZvbHZlTWF0cml4RWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHVzaW5nIEF0dHJp
YnV0ZU93bmVyUHJveHkgPSBTVkdBdHRyaWJ1dGVPd25lclByb3h5SW1wbDxTVkdGRUNvbnZvbHZl
TWF0cml4RWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKICAg
ICBzdGF0aWMgQXR0cmlidXRlT3duZXJQcm94eTo6QXR0cmlidXRlUmVnaXN0cnkmIGF0dHJpYnV0
ZVJlZ2lzdHJ5KCkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6YXR0cmlidXRlUmVnaXN0
cnkoKTsgfQotICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0cmlidXRlTmFtZSkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6aXNLbm93
bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsgfQogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQXR0
cmlidXRlcygpOwotICAgIAorICAgIGNvbnN0IFNWR0F0dHJpYnV0ZU93bmVyUHJveHkmIGF0dHJp
YnV0ZU93bmVyUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2F0dHJpYnV0ZU93bmVyUHJv
eHk7IH0KKwogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVn
aXN0cnk8U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcz47CiAgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3RyeSYgcHJvcGVydHlS
ZWdpc3RyeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdpc3RyeTsgfQogCi0g
ICAgY29uc3QgU1ZHQXR0cmlidXRlT3duZXJQcm94eSYgYXR0cmlidXRlT3duZXJQcm94eSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fYXR0cmlidXRlT3duZXJQcm94eTsgfQorICAgIHN0YXRpYyBi
b29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkK
KyAgICB7CisgICAgICAgIHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmli
dXRlKGF0dHJpYnV0ZU5hbWUpIHx8IFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUo
YXR0cmlidXRlTmFtZSk7CisgICAgfQorCiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIApAQCAt
MTE2LDcgKzEyMCw2IEBAIHByaXZhdGU6CiAKICAgICBBdHRyaWJ1dGVPd25lclByb3h5IG1fYXR0
cmlidXRlT3duZXJQcm94eSB7ICp0aGlzIH07CiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3Bl
cnR5UmVnaXN0cnkgeyAqdGhpcyB9OwotCiAgICAgU1ZHQW5pbWF0ZWRTdHJpbmdBdHRyaWJ1dGUg
bV9pbjE7CiAgICAgUmVmPFNWR0FuaW1hdGVkSW50ZWdlcj4gbV9vcmRlclggeyBTVkdBbmltYXRl
ZEludGVnZXI6OmNyZWF0ZSh0aGlzKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZEludGVnZXI+IG1f
b3JkZXJZIHsgU1ZHQW5pbWF0ZWRJbnRlZ2VyOjpjcmVhdGUodGhpcykgfTsKQEAgLTEyOCw3ICsx
MzEsNyBAQCBwcml2YXRlOgogICAgIFNWR0FuaW1hdGVkRW51bWVyYXRpb25BdHRyaWJ1dGU8RWRn
ZU1vZGVUeXBlPiBtX2VkZ2VNb2RlIHsgRURHRU1PREVfRFVQTElDQVRFIH07CiAgICAgU1ZHQW5p
bWF0ZWROdW1iZXJBdHRyaWJ1dGUgbV9rZXJuZWxVbml0TGVuZ3RoWDsKICAgICBTVkdBbmltYXRl
ZE51bWJlckF0dHJpYnV0ZSBtX2tlcm5lbFVuaXRMZW5ndGhZOwotICAgIFNWR0FuaW1hdGVkQm9v
bGVhbkF0dHJpYnV0ZSBtX3ByZXNlcnZlQWxwaGE7CisgICAgUmVmPFNWR0FuaW1hdGVkQm9vbGVh
bj4gbV9wcmVzZXJ2ZUFscGhhIHsgU1ZHQW5pbWF0ZWRCb29sZWFuOjpjcmVhdGUodGhpcykgfTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuaAppbmRleCAwYjhhZThiMDFlZjRhY2VmNzlhYmIx
YWE2OTIxOGE3YmE4ZjRhNmE4Li45NWM5ZDc0YTI4NmE2ZTMxOTY3NzJlMzFhMzA1NTMyYTk5OGVk
OGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxl
bWVudC5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3
IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDUgT2xpdmVyIEh1bnQgPG9saXZlckBuZXJnZXQuY29tPgotICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOC0y
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpA
QCAtNTMsMTAgKzUzLDE3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBBdHRyaWJ1dGVPd25lclBy
b3h5ID0gU1ZHQXR0cmlidXRlT3duZXJQcm94eUltcGw8U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVt
ZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+OwogICAgIHN0YXRpYyBB
dHRyaWJ1dGVPd25lclByb3h5OjpBdHRyaWJ1dGVSZWdpc3RyeSYgYXR0cmlidXRlUmVnaXN0cnko
KSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5OjphdHRyaWJ1dGVSZWdpc3RyeSgpOyB9Ci0g
ICAgc3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
aWJ1dGVOYW1lKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmlidXRl
KGF0dHJpYnV0ZU5hbWUpOyB9CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7
Ci0KICAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclByb3h5JiBhdHRyaWJ1dGVPd25lclByb3h5
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hdHRyaWJ1dGVPd25lclByb3h5OyB9CisKKyAgICB1
c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZFRGlm
ZnVzZUxpZ2h0aW5nRWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
PjsKKyAgICBjb25zdCBTVkdQcm9wZXJ0eVJlZ2lzdHJ5JiBwcm9wZXJ0eVJlZ2lzdHJ5KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9wcm9wZXJ0eVJlZ2lzdHJ5OyB9CisgICAgCisgICAgc3RhdGlj
IGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1l
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmlzS25vd25BdHRy
aWJ1dGUoYXR0cmlidXRlTmFtZSkgfHwgUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0
ZShhdHRyaWJ1dGVOYW1lKTsKKyAgICB9CisKICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lk
IHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCkBA
IC02Nyw2ICs3NCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYg
a2VybmVsVW5pdExlbmd0aFlJZGVudGlmaWVyKCk7CiAKICAgICBBdHRyaWJ1dGVPd25lclByb3h5
IG1fYXR0cmlidXRlT3duZXJQcm94eSB7ICp0aGlzIH07CisgICAgUHJvcGVydHlSZWdpc3RyeSBt
X3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwogICAgIFNWR0FuaW1hdGVkU3RyaW5nQXR0cmli
dXRlIG1faW4xOwogICAgIFNWR0FuaW1hdGVkTnVtYmVyQXR0cmlidXRlIG1fZGlmZnVzZUNvbnN0
YW50IHsgMSB9OwogICAgIFNWR0FuaW1hdGVkTnVtYmVyQXR0cmlidXRlIG1fc3VyZmFjZVNjYWxl
IHsgMSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50
TWFwRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxl
bWVudC5oCmluZGV4IDUxYmVkNTNkZjY2YjA1YzQ4NDBhZDE1YTZjNDQyYWRkZjkxNzc0N2IuLjNj
MDkyZDRmNjNmZTkwZWU3NzgwNGE1MjUyMTQ1Yjg1MDBlNjk5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmgKQEAgLTEsNiArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IE9saXZlciBIdW50IDxvbGl2ZXJAbmVyZ2V0LmNv
bT4KLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTg4LDEwICs4OCwxNyBAQCBwcml2YXRlOgogCiAg
ICAgdXNpbmcgQXR0cmlidXRlT3duZXJQcm94eSA9IFNWR0F0dHJpYnV0ZU93bmVyUHJveHlJbXBs
PFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzPjsKICAgICBzdGF0aWMgQXR0cmlidXRlT3duZXJQcm94eTo6QXR0cmlidXRlUmVn
aXN0cnkmIGF0dHJpYnV0ZVJlZ2lzdHJ5KCkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6
YXR0cmlidXRlUmVnaXN0cnkoKTsgfQotICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkgeyByZXR1cm4gQXR0cmlidXRlT3du
ZXJQcm94eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsgfQogICAgIHN0YXRpYyB2
b2lkIHJlZ2lzdGVyQXR0cmlidXRlcygpOwotCiAgICAgY29uc3QgU1ZHQXR0cmlidXRlT3duZXJQ
cm94eSYgYXR0cmlidXRlT3duZXJQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYXR0cmli
dXRlT3duZXJQcm94eTsgfQorCisgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3Bl
cnR5T3duZXJSZWdpc3RyeTxTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQsIFNWR0ZpbHRlclBy
aW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcz47CisgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3Ry
eSYgcHJvcGVydHlSZWdpc3RyeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdp
c3RyeTsgfQorCisgICAgc3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEF0dHJpYnV0ZU93
bmVyUHJveHk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7CisgICAgfQorCiAgICAg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3Ry
aW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBvdmVycmlkZTsKIApAQCAtOTksNiArMTA2LDcgQEAgcHJpdmF0ZToKICAgICBS
ZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyJikgb3Zl
cnJpZGU7CiAKICAgICBBdHRyaWJ1dGVPd25lclByb3h5IG1fYXR0cmlidXRlT3duZXJQcm94eSB7
ICp0aGlzIH07CisgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhp
cyB9OwogICAgIFNWR0FuaW1hdGVkU3RyaW5nQXR0cmlidXRlIG1faW4xOwogICAgIFNWR0FuaW1h
dGVkU3RyaW5nQXR0cmlidXRlIG1faW4yOwogICAgIFNWR0FuaW1hdGVkRW51bWVyYXRpb25BdHRy
aWJ1dGU8Q2hhbm5lbFNlbGVjdG9yVHlwZT4gbV94Q2hhbm5lbFNlbGVjdG9yIHsgQ0hBTk5FTF9B
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaAppbmRleCAz
NjYyMTllMDJjNjkzMzc0NjgyNWE3OTJlODM2NWJlMGY1MmQwMTc5Li43MTE2MzQyZDg0YWNkMDE2
OWExZDVlODg0NWJiMjFiYjRhOGNiMjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURy
b3BTaGFkb3dFbGVtZW50LmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSBS
ZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtNTAsMTAgKzUwLDE3IEBAIHByaXZhdGU6CiAKICAgICB1c2lu
ZyBBdHRyaWJ1dGVPd25lclByb3h5ID0gU1ZHQXR0cmlidXRlT3duZXJQcm94eUltcGw8U1ZHRkVE
cm9wU2hhZG93RWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsK
ICAgICBzdGF0aWMgQXR0cmlidXRlT3duZXJQcm94eTo6QXR0cmlidXRlUmVnaXN0cnkmIGF0dHJp
YnV0ZVJlZ2lzdHJ5KCkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6YXR0cmlidXRlUmVn
aXN0cnkoKTsgfQotICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0cmlidXRlTmFtZSkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6aXNL
bm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsgfQogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVy
QXR0cmlidXRlcygpOwotCiAgICAgY29uc3QgU1ZHQXR0cmlidXRlT3duZXJQcm94eSYgYXR0cmli
dXRlT3duZXJQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYXR0cmlidXRlT3duZXJQcm94
eTsgfQorICAgIAorICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVy
UmVnaXN0cnk8U1ZHRkVEcm9wU2hhZG93RWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzPjsKKyAgICBjb25zdCBTVkdQcm9wZXJ0eVJlZ2lzdHJ5JiBwcm9wZXJ0eVJl
Z2lzdHJ5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wcm9wZXJ0eVJlZ2lzdHJ5OyB9CisKKyAg
ICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJp
YnV0ZU5hbWUpCisgICAgeworICAgICAgICByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6aXNL
bm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSB8fCBQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3du
QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOworICAgIH0KKwogICAgIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJp
ZGU7CiAKQEAgLTYzLDYgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgQXRvbWlj
U3RyaW5nJiBzdGREZXZpYXRpb25ZSWRlbnRpZmllcigpOwogCiAgICAgQXR0cmlidXRlT3duZXJQ
cm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9OworICAgIFByb3BlcnR5UmVnaXN0
cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKICAgICBTVkdBbmltYXRlZFN0cmluZ0F0
dHJpYnV0ZSBtX2luMTsKICAgICBTVkdBbmltYXRlZE51bWJlckF0dHJpYnV0ZSBtX2R4IHsgMiB9
OwogICAgIFNWR0FuaW1hdGVkTnVtYmVyQXR0cmlidXRlIG1fZHkgeyAyIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmgKaW5kZXggOTNiNjFhY2E0NmEz
Y2RiMTkwM2Q1NTlmZjhiY2NlMTgxYjRjYzRjOS4uMGY0M2NjNjY3ZTE2NDZiZmI1NDhjYzliNDE2
NGNlMzY4ZTExM2FiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3Np
YW5CbHVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1
ckVsZW1lbnQuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLSAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTUxLDEwICs1MSwxNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcg
QXR0cmlidXRlT3duZXJQcm94eSA9IFNWR0F0dHJpYnV0ZU93bmVyUHJveHlJbXBsPFNWR0ZFR2F1
c3NpYW5CbHVyRWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsK
ICAgICBzdGF0aWMgQXR0cmlidXRlT3duZXJQcm94eTo6QXR0cmlidXRlUmVnaXN0cnkmIGF0dHJp
YnV0ZVJlZ2lzdHJ5KCkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6YXR0cmlidXRlUmVn
aXN0cnkoKTsgfQotICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0cmlidXRlTmFtZSkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6aXNL
bm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsgfQogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVy
QXR0cmlidXRlcygpOwotCiAgICAgY29uc3QgU1ZHQXR0cmlidXRlT3duZXJQcm94eSYgYXR0cmli
dXRlT3duZXJQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYXR0cmlidXRlT3duZXJQcm94
eTsgfQorCisgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdp
c3RyeTxTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcz47CisgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3RyeSYgcHJvcGVydHlSZWdp
c3RyeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdpc3RyeTsgfQorCisgICAg
c3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1
dGVOYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmlzS25v
d25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkgfHwgUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0
dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsKKyAgICB9CisKICAgICB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAg
ICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRl
OwogCkBAIC02NCw2ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0
cmluZyYgc3RkRGV2aWF0aW9uWUlkZW50aWZpZXIoKTsKIAogICAgIEF0dHJpYnV0ZU93bmVyUHJv
eHkgbV9hdHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsKKyAgICBQcm9wZXJ0eVJlZ2lzdHJ5
IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CiAgICAgU1ZHQW5pbWF0ZWRTdHJpbmdBdHRy
aWJ1dGUgbV9pbjE7CiAgICAgU1ZHQW5pbWF0ZWROdW1iZXJBdHRyaWJ1dGUgbV9zdGREZXZpYXRp
b25YOwogICAgIFNWR0FuaW1hdGVkTnVtYmVyQXR0cmlidXRlIG1fc3RkRGV2aWF0aW9uWTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmgKaW5kZXggNmM0ZmQ2MzUwYjk4NzIwYjU4
OTRiZTY2ODgyMjNjNjA0YjM0MjQwOS4uNTUwYmY5MDllYjMzNTFiZjczODIxN2VkYTQ5YzMzNzRl
MmI5ZTYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmgKQEAgLTEsNyAr
MSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3IE5pa29sYXMgWmlt
bWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMyw3ICsy
Myw2IEBACiAKICNpbmNsdWRlICJDYWNoZWRJbWFnZUNsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlSGFuZGxlLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuLmgiCiAjaW5j
bHVkZSAiU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgiCiAjaW5jbHVkZSAiU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oIgogI2luY2x1ZGUgIlNWR0ZFSW1hZ2UuaCIKQEAgLTQ5
LDEwICs0OCwxNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgQXR0cmlidXRlT3duZXJQcm94eSA9
IFNWR0F0dHJpYnV0ZU93bmVyUHJveHlJbXBsPFNWR0ZFSW1hZ2VFbGVtZW50LCBTVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQs
IFNWR1VSSVJlZmVyZW5jZT47CiAgICAgc3RhdGljIEF0dHJpYnV0ZU93bmVyUHJveHk6OkF0dHJp
YnV0ZVJlZ2lzdHJ5JiBhdHRyaWJ1dGVSZWdpc3RyeSgpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVy
UHJveHk6OmF0dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0KLSAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpIHsgcmV0dXJuIEF0dHJp
YnV0ZU93bmVyUHJveHk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7IH0KICAgICBz
dGF0aWMgdm9pZCByZWdpc3RlckF0dHJpYnV0ZXMoKTsKLQogICAgIGNvbnN0IFNWR0F0dHJpYnV0
ZU93bmVyUHJveHkmIGF0dHJpYnV0ZU93bmVyUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2F0dHJpYnV0ZU93bmVyUHJveHk7IH0KKyAgICAKKyAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5
ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZFSW1hZ2VFbGVtZW50LCBTVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQs
IFNWR1VSSVJlZmVyZW5jZT47CisgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3RyeSYgcHJvcGVy
dHlSZWdpc3RyeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdpc3RyeTsgfQor
CisgICAgc3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyaWJ1dGVOYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6
OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkgfHwgUHJvcGVydHlSZWdpc3RyeTo6aXNL
bm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsKKyAgICB9CisKICAgICB2b2lkIHBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlk
ZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92
ZXJyaWRlOwogCkBAIC03MSw2ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVkRnJv
bUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CiAKICAgICBB
dHRyaWJ1dGVPd25lclByb3h5IG1fYXR0cmlidXRlT3duZXJQcm94eSB7ICp0aGlzIH07CisgICAg
UHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwogICAgIFNWR0Fu
aW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0F0dHJpYnV0ZSBtX3ByZXNlcnZlQXNwZWN0UmF0aW87
CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IG1fY2FjaGVkSW1hZ2U7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuaAppbmRleCA4NGE2NzhmZmIwZTc5
MjNmOTE4YWQzYzg3YWNjMzViMjY2ZjI3MWYyLi45YmUyYmZhNDZlYzhjZmEwNDI2MTg3N2FjYzhj
NmVkODA5Y2JjMjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuaApAQCAt
Miw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1h
bm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAw
NiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA1IE9saXZlciBI
dW50IDxvbGl2ZXJAbmVyZ2V0LmNvbT4KLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTY2LDE1ICs2
NiwyMyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHVzaW5nIEF0dHJpYnV0ZU93bmVyUHJv
eHkgPSBTVkdBdHRyaWJ1dGVPd25lclByb3h5SW1wbDxTVkdGRUxpZ2h0RWxlbWVudCwgU1ZHRWxl
bWVudD47CiAgICAgc3RhdGljIGF1dG8mIGF0dHJpYnV0ZVJlZ2lzdHJ5KCkgeyByZXR1cm4gQXR0
cmlidXRlT3duZXJQcm94eTo6YXR0cmlidXRlUmVnaXN0cnkoKTsgfQotICAgIHN0YXRpYyBib29s
IGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkgeyBy
ZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1l
KTsgfQogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQXR0cmlidXRlcygpOwotCiAgICAgY29uc3Qg
U1ZHQXR0cmlidXRlT3duZXJQcm94eSYgYXR0cmlidXRlT3duZXJQcm94eSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fYXR0cmlidXRlT3duZXJQcm94eTsgfQorCisgICAgdXNpbmcgUHJvcGVydHlS
ZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRUxpZ2h0RWxlbWVudCwgU1ZH
RWxlbWVudD47CisgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3RyeSYgcHJvcGVydHlSZWdpc3Ry
eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdpc3RyeTsgfQorCisgICAgc3Rh
dGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmlzS25vd25B
dHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkgfHwgUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJp
YnV0ZShhdHRyaWJ1dGVOYW1lKTsKKyAgICB9CisKICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2
b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CiAK
ICAgICBBdHRyaWJ1dGVPd25lclByb3h5IG1fYXR0cmlidXRlT3duZXJQcm94eSB7ICp0aGlzIH07
CisgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwogICAg
IFNWR0FuaW1hdGVkTnVtYmVyQXR0cmlidXRlIG1fYXppbXV0aDsKICAgICBTVkdBbmltYXRlZE51
bWJlckF0dHJpYnV0ZSBtX2VsZXZhdGlvbjsKICAgICBTVkdBbmltYXRlZE51bWJlckF0dHJpYnV0
ZSBtX3g7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgKaW5kZXgg
OWM1NTRlZTExMjU4NjNmNzQ1Y2MxYTk0YjBhMzIxNGQ2MjUwYzA1Yi4uNzI2ZmI2MjM2MTI2ODE5
YTQxZTQ0MTM4NmVlYmI1N2VjOTBkY2NlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1l
cmdlTm9kZUVsZW1lbnQuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLSAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTM5LDE2ICszOSwyNCBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcg
QXR0cmlidXRlT3duZXJQcm94eSA9IFNWR0F0dHJpYnV0ZU93bmVyUHJveHlJbXBsPFNWR0ZFTWVy
Z2VOb2RlRWxlbWVudCwgU1ZHRWxlbWVudD47CiAgICAgc3RhdGljIEF0dHJpYnV0ZU93bmVyUHJv
eHk6OkF0dHJpYnV0ZVJlZ2lzdHJ5JiBhdHRyaWJ1dGVSZWdpc3RyeSgpIHsgcmV0dXJuIEF0dHJp
YnV0ZU93bmVyUHJveHk6OmF0dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0KLSAgICBzdGF0aWMgYm9vbCBp
c0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpIHsgcmV0
dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7
IH0KICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckF0dHJpYnV0ZXMoKTsKLQogICAgIGNvbnN0IFNW
R0F0dHJpYnV0ZU93bmVyUHJveHkmIGF0dHJpYnV0ZU93bmVyUHJveHkoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2F0dHJpYnV0ZU93bmVyUHJveHk7IH0KKworICAgIHVzaW5nIFByb3BlcnR5UmVn
aXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVNZXJnZU5vZGVFbGVtZW50LCBT
VkdFbGVtZW50PjsKKyAgICBjb25zdCBTVkdQcm9wZXJ0eVJlZ2lzdHJ5JiBwcm9wZXJ0eVJlZ2lz
dHJ5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wcm9wZXJ0eVJlZ2lzdHJ5OyB9CisKKyAgICBz
dGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUpCisgICAgeworICAgICAgICByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6aXNLbm93
bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSB8fCBQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0
cmlidXRlKGF0dHJpYnV0ZU5hbWUpOworICAgIH0KKwogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOwogICAgIHZv
aWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAKICAg
ICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBmaW5hbCB7IHJldHVy
biBmYWxzZTsgfQogCiAgICAgQXR0cmlidXRlT3duZXJQcm94eSBtX2F0dHJpYnV0ZU93bmVyUHJv
eHkgeyAqdGhpcyB9OworICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsg
KnRoaXMgfTsKICAgICBTVkdBbmltYXRlZFN0cmluZ0F0dHJpYnV0ZSBtX2luMTsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5oCmluZGV4IGFmNmYxNWU4
ZjczMTk1YTA3OGM0ZGUxMWYzMWRlOWI1ZjQ4NGFlOWMuLjBiNmJhMmMyMTdhZWQ0MzcxZWE0Y2Iw
ZGFmMDg5NGY5NTMxZTAyYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1v
cnBob2xvZ3lFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9n
eUVsZW1lbnQuaApAQCAtNzgsMTAgKzc4LDE3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBBdHRy
aWJ1dGVPd25lclByb3h5ID0gU1ZHQXR0cmlidXRlT3duZXJQcm94eUltcGw8U1ZHRkVNb3JwaG9s
b2d5RWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKICAgICBz
dGF0aWMgQXR0cmlidXRlT3duZXJQcm94eTo6QXR0cmlidXRlUmVnaXN0cnkmIGF0dHJpYnV0ZVJl
Z2lzdHJ5KCkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6YXR0cmlidXRlUmVnaXN0cnko
KTsgfQotICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0cmlidXRlTmFtZSkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6aXNLbm93bkF0
dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsgfQogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQXR0cmli
dXRlcygpOwotCiAgICAgY29uc3QgU1ZHQXR0cmlidXRlT3duZXJQcm94eSYgYXR0cmlidXRlT3du
ZXJQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYXR0cmlidXRlT3duZXJQcm94eTsgfQor
CisgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxT
VkdGRU1vcnBob2xvZ3lFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXM+OworICAgIGNvbnN0IFNWR1Byb3BlcnR5UmVnaXN0cnkmIHByb3BlcnR5UmVnaXN0cnkoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3BlcnR5UmVnaXN0cnk7IH0KKworICAgIHN0YXRpYyBi
b29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkK
KyAgICB7CisgICAgICAgIHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmli
dXRlKGF0dHJpYnV0ZU5hbWUpIHx8IFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUo
YXR0cmlidXRlTmFtZSk7CisgICAgfQorCiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIApAQCAt
OTIsNiArOTksNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHJh
ZGl1c1lJZGVudGlmaWVyKCk7CiAKICAgICBBdHRyaWJ1dGVPd25lclByb3h5IG1fYXR0cmlidXRl
T3duZXJQcm94eSB7ICp0aGlzIH07CisgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVn
aXN0cnkgeyAqdGhpcyB9OwogICAgIFNWR0FuaW1hdGVkU3RyaW5nQXR0cmlidXRlIG1faW4xOwog
ICAgIFNWR0FuaW1hdGVkRW51bWVyYXRpb25BdHRyaWJ1dGU8TW9ycGhvbG9neU9wZXJhdG9yVHlw
ZT4gbV9zdmdPcGVyYXRvciB7IEZFTU9SUEhPTE9HWV9PUEVSQVRPUl9FUk9ERSB9OwogICAgIFNW
R0FuaW1hdGVkTnVtYmVyQXR0cmlidXRlIG1fcmFkaXVzWDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RU9mZnNldEVsZW1lbnQuaAppbmRleCBiZGIwZTRmMGI4ZmZhODk5NTJkYjkzZDA3ZjRkYjliMGFh
ZjIzYmZlLi4xNDM2YmFlOGQ3YWI0ZDAwOGM0NzkyZmQwM2JmN2ZkNThkYTRlN2RiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5oCkBAIC00NCwxNiArNDQsMjQgQEAgcHJp
dmF0ZToKIAogICAgIHVzaW5nIEF0dHJpYnV0ZU93bmVyUHJveHkgPSBTVkdBdHRyaWJ1dGVPd25l
clByb3h5SW1wbDxTVkdGRU9mZnNldEVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcz47CiAgICAgc3RhdGljIEF0dHJpYnV0ZU93bmVyUHJveHk6OkF0dHJpYnV0ZVJl
Z2lzdHJ5JiBhdHRyaWJ1dGVSZWdpc3RyeSgpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6
OmF0dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0KLSAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpIHsgcmV0dXJuIEF0dHJpYnV0ZU93
bmVyUHJveHk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7IH0KICAgICBzdGF0aWMg
dm9pZCByZWdpc3RlckF0dHJpYnV0ZXMoKTsKLQogICAgIGNvbnN0IFNWR0F0dHJpYnV0ZU93bmVy
UHJveHkmIGF0dHJpYnV0ZU93bmVyUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2F0dHJp
YnV0ZU93bmVyUHJveHk7IH0KKworICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9w
ZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVPZmZzZXRFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXM+OworICAgIGNvbnN0IFNWR1Byb3BlcnR5UmVnaXN0cnkmIHByb3Bl
cnR5UmVnaXN0cnkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3BlcnR5UmVnaXN0cnk7IH0K
KworICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlTmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5
Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpIHx8IFByb3BlcnR5UmVnaXN0cnk6Omlz
S25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7CisgICAgfQorCiAgICAgdm9pZCBwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBv
dmVycmlkZTsKIAogICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxk
ZXIqLCBGaWx0ZXImKSBvdmVycmlkZTsKIAogICAgIEF0dHJpYnV0ZU93bmVyUHJveHkgbV9hdHRy
aWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsKKyAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVy
dHlSZWdpc3RyeSB7ICp0aGlzIH07CiAgICAgU1ZHQW5pbWF0ZWRTdHJpbmdBdHRyaWJ1dGUgbV9p
bjE7CiAgICAgU1ZHQW5pbWF0ZWROdW1iZXJBdHRyaWJ1dGUgbV9keDsKICAgICBTVkdBbmltYXRl
ZE51bWJlckF0dHJpYnV0ZSBtX2R5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNw
ZWN1bGFyTGlnaHRpbmdFbGVtZW50LmgKaW5kZXggN2NlZGFmODU5OWI0MTliZDRkODFiYjQ3ZDU3
NGIxNWE3MjhjYWVjYS4uOTQ4NzdiNDZmN2E2Mzc5OTMwMWMxYjc5NzQ4ZGNlMjcwZDg3MWNhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVu
dC5oCkBAIC01NCwxMCArNTQsMTcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIEF0dHJpYnV0ZU93
bmVyUHJveHkgPSBTVkdBdHRyaWJ1dGVPd25lclByb3h5SW1wbDxTVkdGRVNwZWN1bGFyTGlnaHRp
bmdFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+OwogICAgIHN0
YXRpYyBBdHRyaWJ1dGVPd25lclByb3h5OjpBdHRyaWJ1dGVSZWdpc3RyeSYgYXR0cmlidXRlUmVn
aXN0cnkoKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5OjphdHRyaWJ1dGVSZWdpc3RyeSgp
OyB9Ci0gICAgc3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyaWJ1dGVOYW1lKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0
cmlidXRlKGF0dHJpYnV0ZU5hbWUpOyB9CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJBdHRyaWJ1
dGVzKCk7Ci0KICAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclByb3h5JiBhdHRyaWJ1dGVPd25l
clByb3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hdHRyaWJ1dGVPd25lclByb3h5OyB9CisK
KyAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNW
R0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcz47CisgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3RyeSYgcHJvcGVydHlSZWdpc3Ry
eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdpc3RyeTsgfQorCisgICAgc3Rh
dGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmlzS25vd25B
dHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkgfHwgUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJp
YnV0ZShhdHRyaWJ1dGVOYW1lKTsKKyAgICB9CisKICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2
b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwog
CkBAIC02OCw2ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmlu
ZyYga2VybmVsVW5pdExlbmd0aFlJZGVudGlmaWVyKCk7CiAKICAgICBBdHRyaWJ1dGVPd25lclBy
b3h5IG1fYXR0cmlidXRlT3duZXJQcm94eSB7ICp0aGlzIH07CisgICAgUHJvcGVydHlSZWdpc3Ry
eSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwogICAgIFNWR0FuaW1hdGVkU3RyaW5nQXR0
cmlidXRlIG1faW4xOwogICAgIFNWR0FuaW1hdGVkTnVtYmVyQXR0cmlidXRlIG1fc3BlY3VsYXJD
b25zdGFudCB7IDEgfTsKICAgICBTVkdBbmltYXRlZE51bWJlckF0dHJpYnV0ZSBtX3NwZWN1bGFy
RXhwb25lbnQgeyAxIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxl
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuaAppbmRleCA3
NTRkZjQwOTkxZTg1Yzk4N2VhYThkNWNjZjI4OTUwMGVkMDljNmQxLi45YTAzM2QyMGRlYTY1ZTRj
N2ExOTQ0NjYxZGE5NWFhMDkzMDc4MWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVUaWxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVt
ZW50LmgKQEAgLTM4LDE2ICszOCwyNCBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgQXR0cmlidXRl
T3duZXJQcm94eSA9IFNWR0F0dHJpYnV0ZU93bmVyUHJveHlJbXBsPFNWR0ZFVGlsZUVsZW1lbnQs
IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcz47CiAgICAgc3RhdGljIEF0dHJp
YnV0ZU93bmVyUHJveHk6OkF0dHJpYnV0ZVJlZ2lzdHJ5JiBhdHRyaWJ1dGVSZWdpc3RyeSgpIHsg
cmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmF0dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0KLSAgICBz
dGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmlzS25vd25BdHRyaWJ1dGUoYXR0
cmlidXRlTmFtZSk7IH0KICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckF0dHJpYnV0ZXMoKTsKLQog
ICAgIGNvbnN0IFNWR0F0dHJpYnV0ZU93bmVyUHJveHkmIGF0dHJpYnV0ZU93bmVyUHJveHkoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX2F0dHJpYnV0ZU93bmVyUHJveHk7IH0KKworICAgIHVzaW5n
IFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVUaWxlRWxl
bWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKKyAgICBjb25zdCBT
VkdQcm9wZXJ0eVJlZ2lzdHJ5JiBwcm9wZXJ0eVJlZ2lzdHJ5KCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9wcm9wZXJ0eVJlZ2lzdHJ5OyB9CisKKyAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCisgICAgeworICAgICAgICBy
ZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1l
KSB8fCBQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOwor
ICAgIH0KKwogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBSZWZQdHI8RmlsdGVyRWZm
ZWN0PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyJikgb3ZlcnJpZGU7CiAKICAgICBB
dHRyaWJ1dGVPd25lclByb3h5IG1fYXR0cmlidXRlT3duZXJQcm94eSB7ICp0aGlzIH07CisgICAg
UHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwogICAgIFNWR0Fu
aW1hdGVkU3RyaW5nQXR0cmlidXRlIG1faW4xOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCmluZGV4IDI3MDcxYzA4ZDM1MDJkMTc4YmVkZjRi
NGQzNjRkYmQ5ZDRiOThjNTguLjdkN2ZmNDIyZGMwODM0NmZiOWM3Y2QwNzAzYWI3NjI1NjhlOWEz
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAK
QEAgLTEzMCw3ICsxMzAsNyBAQCBib29sIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OnNldEZpbHRl
ckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqIGVmZmVjdCwgY29ucwogCiB2b2lkIFNWR0ZF
VHVyYnVsZW5jZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUpCiB7Ci0gICAgaWYgKGlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpIHx8IFBy
b3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CisgICAgaWYgKGlz
S25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9u
R3VhcmQgZ3VhcmQoKnRoaXMpOwogICAgICAgICBwcmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKGF0
dHJOYW1lKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1
bGVuY2VFbGVtZW50LmgKaW5kZXggMzZiNDcyYjJhOGI1MzZjYTBlYzMyYTI4YzYwNmU0MGI3MjAw
NjdlYi4uNGZhMjNhZDE5NTlhYTg2NTk1MjJkZTAwOTkyZmViOTMxMDRlZWNhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5oCkBAIC0xMTYsMTMgKzExNiwx
NyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgQXR0cmlidXRlT3duZXJQcm94eSA9IFNWR0F0dHJp
YnV0ZU93bmVyUHJveHlJbXBsPFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQsIFNWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlcz47CiAgICAgc3RhdGljIEF0dHJpYnV0ZU93bmVyUHJveHk6
OkF0dHJpYnV0ZVJlZ2lzdHJ5JiBhdHRyaWJ1dGVSZWdpc3RyeSgpIHsgcmV0dXJuIEF0dHJpYnV0
ZU93bmVyUHJveHk6OmF0dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0KLSAgICBzdGF0aWMgYm9vbCBpc0tu
b3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpIHsgcmV0dXJu
IEF0dHJpYnV0ZU93bmVyUHJveHk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7IH0K
ICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckF0dHJpYnV0ZXMoKTsKLSAgICAKKyAgICBjb25zdCBT
VkdBdHRyaWJ1dGVPd25lclByb3h5JiBhdHRyaWJ1dGVPd25lclByb3h5KCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9hdHRyaWJ1dGVPd25lclByb3h5OyB9CisKICAgICB1c2luZyBQcm9wZXJ0eVJl
Z2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQs
IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcz47CiAgICAgY29uc3QgU1ZHUHJv
cGVydHlSZWdpc3RyeSYgcHJvcGVydHlSZWdpc3RyeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
cHJvcGVydHlSZWdpc3RyeTsgfQogCi0gICAgY29uc3QgU1ZHQXR0cmlidXRlT3duZXJQcm94eSYg
YXR0cmlidXRlT3duZXJQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYXR0cmlidXRlT3du
ZXJQcm94eTsgfQorICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBBdHRyaWJ1dGVP
d25lclByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpIHx8IFByb3BlcnR5UmVn
aXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7CisgICAgfQorCiAgICAgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zp
bHRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKaW5k
ZXggY2VkYTlmNWQ1YzAwOGY0NGM5NjM2NTU5ZDI4ODIxZmE4MDNiMzVhMy4uMzMwZGIyODMyMWM3
YzU4MTk4NDc2NzlhMThiZTcxNjAyNWRlNTQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVy
RWxlbWVudC5oCkBAIC01NiwxMSArNTYsMTkgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIEF0dHJp
YnV0ZU93bmVyUHJveHkgPSBTVkdBdHRyaWJ1dGVPd25lclByb3h5SW1wbDxTVkdGaWx0ZXJFbGVt
ZW50LCBTVkdFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdVUklSZWZl
cmVuY2U+OwogICAgIHN0YXRpYyBBdHRyaWJ1dGVPd25lclByb3h5OjpBdHRyaWJ1dGVSZWdpc3Ry
eSYgYXR0cmlidXRlUmVnaXN0cnkoKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5OjphdHRy
aWJ1dGVSZWdpc3RyeSgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclBy
b3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOyB9Ci0gICAgc3RhdGljIGJvb2wg
aXNBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0FuaW1hdGVkTGVuZ3RoQXR0cmli
dXRlKGF0dHJpYnV0ZU5hbWUpOyB9CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJBdHRyaWJ1dGVz
KCk7Ci0KICAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclByb3h5JiBhdHRyaWJ1dGVPd25lclBy
b3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hdHRyaWJ1dGVPd25lclByb3h5OyB9CisKKyAg
ICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0Zp
bHRlckVsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNW
R1VSSVJlZmVyZW5jZT47CisgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3RyeSYgcHJvcGVydHlS
ZWdpc3RyeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdpc3RyeTsgfQorCisg
ICAgc3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
aWJ1dGVOYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6Omlz
S25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkgfHwgUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93
bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsKKyAgICB9CisKKyAgICBzdGF0aWMgYm9vbCBpc0Fu
aW1hdGVkTGVuZ3RoQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUp
IHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmlzQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUo
YXR0cmlidXRlTmFtZSk7IH0KKwogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOwogICAgIHZvaWQgc3ZnQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAgICAgdm9pZCBjaGlsZHJl
bkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBmaW5hbDsKQEAgLTczLDYgKzgxLDcgQEAgcHJp
dmF0ZToKICAgICBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiB0cnVlOyB9CiAKICAgICBBdHRyaWJ1dGVPd25lclByb3h5IG1fYXR0cmlidXRlT3duZXJQ
cm94eSB7ICp0aGlzIH07CisgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkg
eyAqdGhpcyB9OwogICAgIFNWR0FuaW1hdGVkRW51bWVyYXRpb25BdHRyaWJ1dGU8U1ZHVW5pdFR5
cGVzOjpTVkdVbml0VHlwZT4gbV9maWx0ZXJVbml0cyB7IFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRf
VFlQRV9PQkpFQ1RCT1VORElOR0JPWCB9OwogICAgIFNWR0FuaW1hdGVkRW51bWVyYXRpb25BdHRy
aWJ1dGU8U1ZHVW5pdFR5cGVzOjpTVkdVbml0VHlwZT4gbV9wcmltaXRpdmVVbml0cyB7IFNWR1Vu
aXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9VU0VSU1BBQ0VPTlVTRSB9OwogICAgIFNWR0FuaW1hdGVk
TGVuZ3RoQXR0cmlidXRlIG1feCB7IExlbmd0aE1vZGVXaWR0aCwgIi0xMCUiIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzLmgKaW5kZXggZTA5NDZmNTUyZWE1NDdlYmY4NjYwM2ZiNmY2YjdhNTNhYjU5YjE3Ni4u
YWQyMWIzMjNhYzg1MjU2YTgxODcyZmNhZjA4ZDVjYjRlN2JhYzNjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXMuaApAQCAtNDcsNiArNDcsOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQXR0cmlidXRlT3duZXJQ
cm94eSA9IFNWR0F0dHJpYnV0ZU93bmVyUHJveHlJbXBsPFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcywgU1ZHRWxlbWVudD47CiAgICAgc3RhdGljIEF0dHJpYnV0ZU93bmVyUHJv
eHk6OkF0dHJpYnV0ZVJlZ2lzdHJ5JiBhdHRyaWJ1dGVSZWdpc3RyeSgpIHsgcmV0dXJuIEF0dHJp
YnV0ZU93bmVyUHJveHk6OmF0dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0KIAorICAgIHVzaW5nIFByb3Bl
cnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzLCBTVkdFbGVtZW50PjsKKwogICAgIGNvbnN0IFNWR0xlbmd0aFZh
bHVlJiB4KCkgY29uc3QgeyByZXR1cm4gbV94LmN1cnJlbnRWYWx1ZShhdHRyaWJ1dGVPd25lclBy
b3h5KCkpOyB9CiAgICAgY29uc3QgU1ZHTGVuZ3RoVmFsdWUmIHkoKSBjb25zdCB7IHJldHVybiBt
X3kuY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KICAgICBjb25zdCBTVkdM
ZW5ndGhWYWx1ZSYgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoLmN1cnJlbnRWYWx1ZShh
dHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CkBAIC03MSw3ICs3MywxMiBAQCBwcm90ZWN0ZWQ6CiAK
IHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7Ci0gICAgc3Rh
dGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJp
YnV0ZU5hbWUpOyB9CisgICAgY29uc3QgU1ZHQXR0cmlidXRlT3duZXJQcm94eSYgYXR0cmlidXRl
T3duZXJQcm94eSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYXR0cmlidXRlT3duZXJQcm94
eTsgfQorCisgICAgc3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEF0dHJpYnV0ZU93bmVy
UHJveHk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkgfHwgUHJvcGVydHlSZWdpc3Ry
eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsKKyAgICB9CiAKICAgICBib29sIGlz
RmlsdGVyRWZmZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCkBAIC03OSwx
MCArODYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5k
ZXJTdHlsZSYpIG92ZXJyaWRlOwogICAgIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihj
b25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIGNvbnN0
IFNWR0F0dHJpYnV0ZU93bmVyUHJveHkmIGF0dHJpYnV0ZU93bmVyUHJveHkoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX2F0dHJpYnV0ZU93bmVyUHJveHk7IH0KLQogICAgIEF0dHJpYnV0ZU93
bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsKLQogICAgIC8vIFNwZWM6
IElmIHRoZSB4L3kgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMg
aWYgYSB2YWx1ZSBvZiAiMCUiIHdlcmUgc3BlY2lmaWVkLgogICAgIC8vIFNwZWM6IElmIHRoZSB3
aWR0aC9oZWlnaHQgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMg
aWYgYSB2YWx1ZSBvZiAiMTAwJSIgd2VyZSBzcGVjaWZpZWQuCiAgICAgU1ZHQW5pbWF0ZWRMZW5n
dGhBdHRyaWJ1dGUgbV94IHsgTGVuZ3RoTW9kZVdpZHRoLCAiMCUiIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRml0VG9WaWV3Qm94LmgKaW5kZXggZjUxYTdlOWNhZGFjMDU2YzU4MjA0ZTVlMTNjNzBlN2Y3
ZDUxODdmZi4uNWFiYzVhMGU5YTNlZjFjNjAxMzlhZjU3MmYzMWIxNGExMWEwMDdjZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guaApAQCAtNDAsNiArNDAsOCBAQCBwdWJsaWM6CiAg
ICAgdXNpbmcgQXR0cmlidXRlT3duZXJQcm94eSA9IFNWR0F0dHJpYnV0ZU93bmVyUHJveHlJbXBs
PFNWR0ZpdFRvVmlld0JveD47CiAgICAgc3RhdGljIEF0dHJpYnV0ZU93bmVyUHJveHk6OkF0dHJp
YnV0ZVJlZ2lzdHJ5JiBhdHRyaWJ1dGVSZWdpc3RyeSgpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVy
UHJveHk6OmF0dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0KIAorICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0
cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRml0VG9WaWV3Qm94PjsKKwogICAgIGNv
bnN0IEZsb2F0UmVjdCYgdmlld0JveCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld0JveC5jdXJyZW50
VmFsdWUobV9hdHRyaWJ1dGVPd25lclByb3h5KTsgfQogICAgIGNvbnN0IFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygpIGNvbnN0IHsgcmV0dXJuIG1fcHJl
c2VydmVBc3BlY3RSYXRpby5jdXJyZW50VmFsdWUobV9hdHRyaWJ1dGVPd25lclByb3h5KTsgfQog
CkBAIC02MSw3ICs2MywxMCBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgU1ZHRml0VG9WaWV3
Qm94KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBBbmltYXRlZFByb3BlcnR5U3RhdGUgPSBQ
cm9wZXJ0eUlzUmVhZFdyaXRlKTsKIAotICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkgeyByZXR1cm4gQXR0cmlidXRlT3du
ZXJQcm94eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsgfQorICAgIHN0YXRpYyBi
b29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkK
KyAgICB7CisgICAgICAgIHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmli
dXRlKGF0dHJpYnV0ZU5hbWUpIHx8IFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUo
YXR0cmlidXRlTmFtZSk7CisgICAgfQogCiAgICAgdm9pZCByZXNldCgpOwogICAgIGJvb2wgcGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAppbmRleCA4MmE0MzJhYmYyZjVjZTY5OGY5NzIx
OGMxNmNjNWZmMzA1NzU5NjdjLi43NTIxY2NhODBiZGQ5YWMxNWM0Yzg4MjgwNGY3NmU1MmQwYTE5
Mjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaApAQCAtMjQsNyArMjQsNiBAQAog
CiAjaWYgRU5BQkxFKFNWR19GT05UUykKIAotI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbi5o
IgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVzLmgiCkBAIC01Niw3ICs1
NSwxMSBAQCBwcml2YXRlOgogICAgIHVzaW5nIEF0dHJpYnV0ZU93bmVyUHJveHkgPSBTVkdBdHRy
aWJ1dGVPd25lclByb3h5SW1wbDxTVkdGb250RWxlbWVudCwgU1ZHRWxlbWVudCwgU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZD47CiAgICAgY29uc3QgU1ZHQXR0cmlidXRlT3duZXJQcm94eSYg
YXR0cmlidXRlT3duZXJQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYXR0cmlidXRlT3du
ZXJQcm94eTsgfQogCisgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3du
ZXJSZWdpc3RyeTxTVkdGb250RWxlbWVudCwgU1ZHRWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZD47CisgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3RyeSYgcHJvcGVydHlSZWdp
c3RyeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdpc3RyeTsgfQorCiAgICAg
QXR0cmlidXRlT3duZXJQcm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9OworICAg
IFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b3JlaWduT2JqZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50LmgKaW5kZXggMzA2ZTExNzBlZjkzNzhhNzc1YjBkZTQ1YjRiNTI0NzA5ZWM5MDgw
NS4uNzk5ZmM4MjNhYTkzMTU0NTc5MDFkZWI2ZDM1YzJiYTc1MzhiNTgzZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKQEAgLTE5LDcgKzE5LDYgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW4uaCIKICNpbmNs
dWRlICJTVkdBbmltYXRlZExlbmd0aC5oIgogI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQuaCIKICNpbmNsdWRlICJTVkdHcmFwaGljc0VsZW1lbnQuaCIKQEAgLTQ4LDEwICs0
NywxNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgQXR0cmlidXRlT3duZXJQcm94eSA9IFNWR0F0
dHJpYnV0ZU93bmVyUHJveHlJbXBsPFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LCBTVkdHcmFwaGlj
c0VsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ+OwogICAgIHN0YXRpYyBBdHRy
aWJ1dGVPd25lclByb3h5OjpBdHRyaWJ1dGVSZWdpc3RyeSYgYXR0cmlidXRlUmVnaXN0cnkoKSB7
IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5OjphdHRyaWJ1dGVSZWdpc3RyeSgpOyB9Ci0gICAg
c3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1
dGVOYW1lKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0
dHJpYnV0ZU5hbWUpOyB9CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7Ci0K
ICAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclByb3h5JiBhdHRyaWJ1dGVPd25lclByb3h5KCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9hdHRyaWJ1dGVPd25lclByb3h5OyB9CisKKyAgICB1c2lu
ZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZvcmVpZ25P
YmplY3RFbGVtZW50LCBTVkdHcmFwaGljc0VsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQ+OworICAgIGNvbnN0IFNWR1Byb3BlcnR5UmVnaXN0cnkmIHByb3BlcnR5UmVnaXN0cnko
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3BlcnR5UmVnaXN0cnk7IH0KKworICAgIHN0YXRp
YyBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFt
ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0
cmlidXRlKGF0dHJpYnV0ZU5hbWUpIHx8IFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1
dGUoYXR0cmlidXRlTmFtZSk7CisgICAgfQorCiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CiAgICAgdm9pZCBz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIApAQCAtNjMs
NiArNjksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIEF0dHJpYnV0ZU93bmVyUHJveHkgbV9h
dHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsKKyAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJv
cGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CiAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUg
bV94IHsgTGVuZ3RoTW9kZVdpZHRoIH07CiAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUg
bV95IHsgTGVuZ3RoTW9kZUhlaWdodCB9OwogICAgIFNWR0FuaW1hdGVkTGVuZ3RoQXR0cmlidXRl
IG1fd2lkdGggeyBMZW5ndGhNb2RlV2lkdGggfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmgKaW5k
ZXggYmEzYWNjM2M2MmUyYWEyOTM5NDdmNmVjYWQyOTE5NzJkN2ZjYTg1Ny4uNTBlNDIyNzZiNmQ4
ZTRjYTc5MmVmM2UwY2RjOTlmNjAwOWZhMGI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0dFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmgK
QEAgLTIxLDcgKzIxLDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdBbmltYXRl
ZEJvb2xlYW4uaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCiAj
aW5jbHVkZSAiU1ZHR3JhcGhpY3NFbGVtZW50LmgiCiAKQEAgLTM5LDggKzM4LDExIEBAIHByaXZh
dGU6CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKIAogICAgIHVz
aW5nIEF0dHJpYnV0ZU93bmVyUHJveHkgPSBTVkdBdHRyaWJ1dGVPd25lclByb3h5SW1wbDxTVkdH
RWxlbWVudCwgU1ZHR3JhcGhpY3NFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
PjsKLQogICAgIGNvbnN0IFNWR0F0dHJpYnV0ZU93bmVyUHJveHkmIGF0dHJpYnV0ZU93bmVyUHJv
eHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2F0dHJpYnV0ZU93bmVyUHJveHk7IH0KKworICAg
IHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHR0Vs
ZW1lbnQsIFNWR0dyYXBoaWNzRWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZD47
CisgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3RyeSYgcHJvcGVydHlSZWdpc3RyeSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdpc3RyeTsgfQorCiAgICAgdm9pZCBwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7
CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5h
bDsKIApAQCAtNDgsNiArNTAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgcmVuZGVyZXJJc05lZWRl
ZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsOwogCiAgICAgQXR0cmlidXRlT3duZXJQcm94eSBt
X2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9OworICAgIFByb3BlcnR5UmVnaXN0cnkgbV9w
cm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVsZW1lbnQuaAppbmRleCA4MjRmZWZjNTBmYjI1
NzJjMWVmYmI5OWRhZjJjZGVhN2JjMjBmMDFmLi4zZDYyNTAxOTBhYjVlNjFiYTAyYzdlMzkwZGY0
ZjZmNzQ5YjBmMjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2VvbWV0cnlF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxlbWVudC5oCkBA
IC00NSw2ICs0NSw4IEBAIHB1YmxpYzoKICAgICB1c2luZyBBdHRyaWJ1dGVPd25lclByb3h5ID0g
U1ZHQXR0cmlidXRlT3duZXJQcm94eUltcGw8U1ZHR2VvbWV0cnlFbGVtZW50LCBTVkdHcmFwaGlj
c0VsZW1lbnQ+OwogICAgIHN0YXRpYyBhdXRvJiBhdHRyaWJ1dGVSZWdpc3RyeSgpIHsgcmV0dXJu
IEF0dHJpYnV0ZU93bmVyUHJveHk6OmF0dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0KIAorICAgIHVzaW5n
IFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHR2VvbWV0cnlF
bGVtZW50LCBTVkdHcmFwaGljc0VsZW1lbnQ+OworCiAgICAgYXV0byBwYXRoTGVuZ3RoQW5pbWF0
ZWQoKSB7IHJldHVybiBtX3BhdGhMZW5ndGguYW5pbWF0ZWRQcm9wZXJ0eShhdHRyaWJ1dGVPd25l
clByb3h5KCkpOyB9CiAKIHByb3RlY3RlZDoKQEAgLTU1LDEwICs1NywxNCBAQCBwcm90ZWN0ZWQ6
CiAKIHByaXZhdGU6CiAgICAgYm9vbCBpc1NWR0dlb21ldHJ5RWxlbWVudCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclByb3h5JiBh
dHRyaWJ1dGVPd25lclByb3h5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9hdHRyaWJ1dGVP
d25lclByb3h5OyB9CiAKKyAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclByb3h5JiBhdHRyaWJ1
dGVPd25lclByb3h5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9hdHRyaWJ1dGVPd25lclBy
b3h5OyB9CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7Ci0gICAgc3RhdGlj
IGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1l
KSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0
ZU5hbWUpOyB9CisKKyAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCisgICAgeworICAgICAgICByZXR1cm4gQXR0cmlidXRl
T3duZXJQcm94eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSB8fCBQcm9wZXJ0eVJl
Z2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOworICAgIH0KIAogICAgIEF0
dHJpYnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsKICAgICBT
VkdBbmltYXRlZE51bWJlckF0dHJpYnV0ZSBtX3BhdGhMZW5ndGg7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHR2x5cGhSZWZFbGVtZW50LmgKaW5kZXggODgxMGQ1YjA5MjYyMGRjZGQzNGE5NzBjZDk1NGIx
ZjFhYTIzNjFmNy4uZmFjODAyOTM3NmI1YjRmOGI5MmFhMjk3OGM2MzhlYzQ3YjI4MmNjMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaApAQCAtNDgsOCArNDgsMTEgQEAg
cHJpdmF0ZToKIAogICAgIHVzaW5nIEF0dHJpYnV0ZU93bmVyUHJveHkgPSBTVkdBdHRyaWJ1dGVP
d25lclByb3h5SW1wbDxTVkdHbHlwaFJlZkVsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR1VSSVJlZmVy
ZW5jZT47CiAgICAgY29uc3QgU1ZHQXR0cmlidXRlT3duZXJQcm94eSYgYXR0cmlidXRlT3duZXJQ
cm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYXR0cmlidXRlT3duZXJQcm94eTsgfQotICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0
cmluZyYpIGZpbmFsOwogCisgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5
T3duZXJSZWdpc3RyeTxTVkdHbHlwaFJlZkVsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR1VSSVJlZmVy
ZW5jZT47CisgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3RyeSYgcHJvcGVydHlSZWdpc3RyeSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdpc3RyeTsgfQorCisgICAgdm9pZCBw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikg
ZmluYWw7CiAgICAgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgZmlu
YWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIGZsb2F0IG1feCB7IDAgfTsKQEAgLTU3LDYgKzYw
LDcgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX2R4IHsgMCB9OwogICAgIGZsb2F0IG1fZHkgeyAw
IH07CiAgICAgQXR0cmlidXRlT3duZXJQcm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhp
cyB9OworICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuaAppbmRleCBiNGMz
OTJiMzU0OTc5NjA0Yzk1MWU2ZTc5ZTBjZjc0Y2Q4MWQ2ODQ3Li45NGU1YjE0NjM4ODU4NjFiYjI4
YTc3YjcyNjdkNTUxOWM4OTEyMDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
R3JhZGllbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxl
bWVudC5oCkBAIC0yMiw3ICsyMiw2IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkdyYWRp
ZW50LmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuLmgiCiAjaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5o
IgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKQEAgLTg4LDYgKzg3LDggQEAgcHVibGljOgogICAg
IHVzaW5nIEF0dHJpYnV0ZU93bmVyUHJveHkgPSBTVkdBdHRyaWJ1dGVPd25lclByb3h5SW1wbDxT
VkdHcmFkaWVudEVsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQsIFNWR1VSSVJlZmVyZW5jZT47CiAgICAgc3RhdGljIEF0dHJpYnV0ZU93bmVyUHJveHk6OkF0
dHJpYnV0ZVJlZ2lzdHJ5JiBhdHRyaWJ1dGVSZWdpc3RyeSgpIHsgcmV0dXJuIEF0dHJpYnV0ZU93
bmVyUHJveHk6OmF0dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0KIAorICAgIHVzaW5nIFByb3BlcnR5UmVn
aXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHR3JhZGllbnRFbGVtZW50LCBTVkdF
bGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdVUklSZWZlcmVuY2U+Owor
CiAgICAgU1ZHU3ByZWFkTWV0aG9kVHlwZSBzcHJlYWRNZXRob2QoKSBjb25zdCB7IHJldHVybiBt
X3NwcmVhZE1ldGhvZC5jdXJyZW50VmFsdWUoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQogICAg
IFNWR1VuaXRUeXBlczo6U1ZHVW5pdFR5cGUgZ3JhZGllbnRVbml0cygpIGNvbnN0IHsgcmV0dXJu
IG1fZ3JhZGllbnRVbml0cy5jdXJyZW50VmFsdWUoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQog
ICAgIGNvbnN0IFNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMmIGdyYWRpZW50VHJhbnNmb3JtKCkgY29u
c3QgeyByZXR1cm4gbV9ncmFkaWVudFRyYW5zZm9ybS5jdXJyZW50VmFsdWUoYXR0cmlidXRlT3du
ZXJQcm94eSgpKTsgfQpAQCAtOTksNyArMTAwLDExIEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAg
ICBTVkdHcmFkaWVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
LSAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJpYnV0ZU5hbWUpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmlzS25vd25BdHRyaWJ1
dGUoYXR0cmlidXRlTmFtZSk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCisgICAgeworICAgICAgICByZXR1cm4g
QXR0cmlidXRlT3duZXJQcm94eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSB8fCBQ
cm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOworICAgIH0K
KwogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGlj
c0VsZW1lbnQuaAppbmRleCAwNmVlNGIzMDc5MmI0ZmY5NjFiNjlmZjM5NjY0N2FjMzU3MmI4MmNj
Li4wMDk4YTgyZjZhZWQxMmJjYjk4ZTM4MGY3MDRjODUwYTBkN2I1YWUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5oCkBAIC02NSw2ICs2NSw4IEBAIHB1YmxpYzoKIAog
ICAgIHVzaW5nIEF0dHJpYnV0ZU93bmVyUHJveHkgPSBTVkdBdHRyaWJ1dGVPd25lclByb3h5SW1w
bDxTVkdHcmFwaGljc0VsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR1Rlc3RzPjsKICAgICBzdGF0aWMg
YXV0byYgYXR0cmlidXRlUmVnaXN0cnkoKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojph
dHRyaWJ1dGVSZWdpc3RyeSgpOyB9CisgICAgCisgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9
IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdHcmFwaGljc0VsZW1lbnQsIFNWR0VsZW1lbnQs
IFNWR1Rlc3RzPjsKIAogICAgIGNvbnN0IGF1dG8mIHRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHJhbnNmb3JtLmN1cnJlbnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CiAgICAg
YXV0byB0cmFuc2Zvcm1BbmltYXRlZCgpIHsgcmV0dXJuIG1fdHJhbnNmb3JtLmFuaW1hdGVkUHJv
cGVydHkoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQpAQCAtODEsOSArODMsMTIgQEAgcHJpdmF0
ZToKICAgICBib29sIGlzU1ZHR3JhcGhpY3NFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQogCiAgICAgY29uc3QgU1ZHQXR0cmlidXRlT3duZXJQcm94eSYgYXR0cmlidXRl
T3duZXJQcm94eSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYXR0cmlidXRlT3duZXJQcm94
eTsgfQotCiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7Ci0gICAgc3RhdGlj
IGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1l
KSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0
ZU5hbWUpOyB9CisKKyAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCisgICAgeworICAgICAgICByZXR1cm4gQXR0cmlidXRl
T3duZXJQcm94eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSB8fCBQcm9wZXJ0eVJl
Z2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOworICAgIH0KIAogICAgIC8v
IFVzZWQgYnkgPGFuaW1hdGVNb3Rpb24+CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFmZmluZVRyYW5z
Zm9ybT4gbV9zdXBwbGVtZW50YWxUcmFuc2Zvcm07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVt
ZW50LmgKaW5kZXggNTIzYmU2MDEyMTc1MWU5NmE5ZWI2OTQ0MGE3M2EzYzBmOTBhMjA2OS4uMTcy
YmQ3MWIwYjExZTRmMzJhY2FmZDQ3OGNlOTMwYjk5MzRhZWFiNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdJbWFnZUVsZW1lbnQuaApAQCAtNTUsMTAgKzU1LDE3IEBAIHByaXZhdGU6CiAgICAgCiAgICAg
dXNpbmcgQXR0cmlidXRlT3duZXJQcm94eSA9IFNWR0F0dHJpYnV0ZU93bmVyUHJveHlJbXBsPFNW
R0ltYWdlRWxlbWVudCwgU1ZHR3JhcGhpY3NFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkLCBTVkdVUklSZWZlcmVuY2U+OwogICAgIHN0YXRpYyBBdHRyaWJ1dGVPd25lclByb3h5
OjpBdHRyaWJ1dGVSZWdpc3RyeSYgYXR0cmlidXRlUmVnaXN0cnkoKSB7IHJldHVybiBBdHRyaWJ1
dGVPd25lclByb3h5OjphdHRyaWJ1dGVSZWdpc3RyeSgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNL
bm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSB7IHJldHVy
biBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOyB9
CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7Ci0KICAgICBjb25zdCBTVkdB
dHRyaWJ1dGVPd25lclByb3h5JiBhdHRyaWJ1dGVPd25lclByb3h5KCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9hdHRyaWJ1dGVPd25lclByb3h5OyB9CisKKyAgICB1c2luZyBQcm9wZXJ0eVJlZ2lz
dHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ltYWdlRWxlbWVudCwgU1ZHR3JhcGhp
Y3NFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdVUklSZWZlcmVuY2U+
OworICAgIGNvbnN0IFNWR1Byb3BlcnR5UmVnaXN0cnkmIHByb3BlcnR5UmVnaXN0cnkoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX3Byb3BlcnR5UmVnaXN0cnk7IH0KKworICAgIHN0YXRpYyBib29s
IGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmlidXRl
KGF0dHJpYnV0ZU5hbWUpIHx8IFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0
cmlidXRlTmFtZSk7CisgICAgfQorCiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CiAgICAgdm9pZCBzdmdBdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIApAQCAtNzQsNiArODEs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQmIG9s
ZERvY3VtZW50LCBEb2N1bWVudCYgbmV3RG9jdW1lbnQpIGZpbmFsOwogCiAgICAgQXR0cmlidXRl
T3duZXJQcm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9OworICAgIFByb3BlcnR5
UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKICAgICBTVkdBbmltYXRlZExl
bmd0aEF0dHJpYnV0ZSBtX3ggeyBMZW5ndGhNb2RlV2lkdGggfTsKICAgICBTVkdBbmltYXRlZExl
bmd0aEF0dHJpYnV0ZSBtX3kgeyBMZW5ndGhNb2RlSGVpZ2h0IH07CiAgICAgU1ZHQW5pbWF0ZWRM
ZW5ndGhBdHRyaWJ1dGUgbV93aWR0aCB7IExlbmd0aE1vZGVXaWR0aCB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGluZUVsZW1lbnQuaAppbmRleCBmMWViYzRlY2JmNzVhNDUzMTNkNDM2ZGU1ZjhhODM5ZWM3
YjY5YWYxLi44MDU0ZjMwNmM4MzYyNDc2N2VkY2JjOTEwNTcxNzAyZWFkYTRkNjE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuaApAQCAtNDgsMTAgKzQ4LDE3IEBAIHByaXZhdGU6CiAK
ICAgICB1c2luZyBBdHRyaWJ1dGVPd25lclByb3h5ID0gU1ZHQXR0cmlidXRlT3duZXJQcm94eUlt
cGw8U1ZHTGluZUVsZW1lbnQsIFNWR0dlb21ldHJ5RWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZD47CiAgICAgc3RhdGljIEF0dHJpYnV0ZU93bmVyUHJveHk6OkF0dHJpYnV0ZVJl
Z2lzdHJ5JiBhdHRyaWJ1dGVSZWdpc3RyeSgpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6
OmF0dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0KLSAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpIHsgcmV0dXJuIEF0dHJpYnV0ZU93
bmVyUHJveHk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7IH0KICAgICBzdGF0aWMg
dm9pZCByZWdpc3RlckF0dHJpYnV0ZXMoKTsKLQogICAgIGNvbnN0IFNWR0F0dHJpYnV0ZU93bmVy
UHJveHkmIGF0dHJpYnV0ZU93bmVyUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2F0dHJp
YnV0ZU93bmVyUHJveHk7IH0KKworICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9w
ZXJ0eU93bmVyUmVnaXN0cnk8U1ZHTGluZUVsZW1lbnQsIFNWR0dlb21ldHJ5RWxlbWVudCwgU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZD47CisgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3Ry
eSYgcHJvcGVydHlSZWdpc3RyeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdp
c3RyeTsgfQorCisgICAgc3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEF0dHJpYnV0ZU93
bmVyUHJveHk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkgfHwgUHJvcGVydHlSZWdp
c3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsKKyAgICB9CisKICAgICB2b2lk
IHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcm
KSBmaW5hbDsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIGZpbmFsOwogCkBAIC02MCw2ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzZWxmSGFz
UmVsYXRpdmVMZW5ndGhzKCkgY29uc3QgZmluYWw7CiAKICAgICBBdHRyaWJ1dGVPd25lclByb3h5
IG1fYXR0cmlidXRlT3duZXJQcm94eSB7ICp0aGlzIH07CisgICAgUHJvcGVydHlSZWdpc3RyeSBt
X3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwogICAgIFNWR0FuaW1hdGVkTGVuZ3RoQXR0cmli
dXRlIG1feDEgeyBMZW5ndGhNb2RlV2lkdGggfTsKICAgICBTVkdBbmltYXRlZExlbmd0aEF0dHJp
YnV0ZSBtX3kxIHsgTGVuZ3RoTW9kZUhlaWdodCB9OwogICAgIFNWR0FuaW1hdGVkTGVuZ3RoQXR0
cmlidXRlIG1feDIgeyBMZW5ndGhNb2RlV2lkdGggfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaAppbmRleCA5ZjY3MGM5ZGFhNDgyODE5OWExZjUyYjM0
YTJmNzk2ZGU2YWUxMjc2Li4yMjQ4ZDVjZGM0ZDZhMDE5ODEzYWM3ZDZlODBhZWIzNGVkOGNlNzA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCkBA
IC01MSwxMCArNTEsMTcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIEF0dHJpYnV0ZU93bmVyUHJv
eHkgPSBTVkdBdHRyaWJ1dGVPd25lclByb3h5SW1wbDxTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQs
IFNWR0dyYWRpZW50RWxlbWVudD47CiAgICAgc3RhdGljIEF0dHJpYnV0ZU93bmVyUHJveHk6OkF0
dHJpYnV0ZVJlZ2lzdHJ5JiBhdHRyaWJ1dGVSZWdpc3RyeSgpIHsgcmV0dXJuIEF0dHJpYnV0ZU93
bmVyUHJveHk6OmF0dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0KLSAgICBzdGF0aWMgYm9vbCBpc0tub3du
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpIHsgcmV0dXJuIEF0
dHJpYnV0ZU93bmVyUHJveHk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7IH0KICAg
ICBzdGF0aWMgdm9pZCByZWdpc3RlckF0dHJpYnV0ZXMoKTsKLQogICAgIGNvbnN0IFNWR0F0dHJp
YnV0ZU93bmVyUHJveHkmIGF0dHJpYnV0ZU93bmVyUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2F0dHJpYnV0ZU93bmVyUHJveHk7IH0KKworICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkg
PSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LCBTVkdH
cmFkaWVudEVsZW1lbnQ+OworICAgIGNvbnN0IFNWR1Byb3BlcnR5UmVnaXN0cnkmIHByb3BlcnR5
UmVnaXN0cnkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3BlcnR5UmVnaXN0cnk7IH0KKwor
ICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojpp
c0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpIHx8IFByb3BlcnR5UmVnaXN0cnk6OmlzS25v
d25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7CisgICAgfQorCiAgICAgdm9pZCBwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVy
cmlkZTsKIApAQCAtNjMsNiArNzAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgc2VsZkhhc1JlbGF0
aXZlTGVuZ3RocygpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgQXR0cmlidXRlT3duZXJQcm94eSBt
X2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9OworICAgIFByb3BlcnR5UmVnaXN0cnkgbV9w
cm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKICAgICBTVkdBbmltYXRlZExlbmd0aEF0dHJpYnV0
ZSBtX3gxIHsgTGVuZ3RoTW9kZVdpZHRoIH07CiAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1
dGUgbV95MSB7IExlbmd0aE1vZGVIZWlnaHQgfTsKICAgICBTVkdBbmltYXRlZExlbmd0aEF0dHJp
YnV0ZSBtX3gyIHsgTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdN
UGF0aEVsZW1lbnQuaAppbmRleCAzOWM5ZWEwNDUxODIwOGVkOTIzNGEwMjRlZTA3ODQwNzJjMzA4
Y2VkLi42ZWM4YmQ4YjMwOTUzN2Y0MzdhOGJkMjYwYmZkZGFmN2NlNjVkOTc1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR01QYXRoRWxlbWVudC5oCkBAIC0yMCw3ICsyMCw2IEBACiAKICNwcmFnbWEgb25j
ZQogCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZC5oIgpAQCAtNDYsOCArNDUsMTEgQEAgcHJpdmF0ZToKICAgICBT
VkdNUGF0aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB1
c2luZyBBdHRyaWJ1dGVPd25lclByb3h5ID0gU1ZHQXR0cmlidXRlT3duZXJQcm94eUltcGw8U1ZH
TVBhdGhFbGVtZW50LCBTVkdFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBT
VkdVUklSZWZlcmVuY2U+OwotCiAgICAgY29uc3QgU1ZHQXR0cmlidXRlT3duZXJQcm94eSYgYXR0
cmlidXRlT3duZXJQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYXR0cmlidXRlT3duZXJQ
cm94eTsgfQorCisgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJS
ZWdpc3RyeTxTVkdNUGF0aEVsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQsIFNWR1VSSVJlZmVyZW5jZT47CisgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3Ry
eSYgcHJvcGVydHlSZWdpc3RyeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdp
c3RyeTsgfQorCiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIApAQCAtNjIsNiArNjQsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgbm90aWZ5UGFyZW50T2ZQYXRoQ2hhbmdlKENvbnRhaW5lck5vZGUqKTsKIAog
ICAgIEF0dHJpYnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsK
KyAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWFya2VyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQu
aAppbmRleCAzN2MxODBhMDFmYTRkMjNiOGQ0MmY1ZGJhNzVhMjk1ZTI2NTU1Njg0Li5iODllMDlj
MzYyZmQwNDc4Y2Q3ZmI3MWJkODI2YWNkYzJlNTVlYzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdN
YXJrZXJFbGVtZW50LmgKQEAgLTIyLDcgKzIyLDYgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRBbmdsZS5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbi5oIgog
I2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCIKICNpbmNsdWRlICJTVkdBbmltYXRl
ZExlbmd0aC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIgpA
QCAtNzksMTEgKzc4LDE4IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBBdHRyaWJ1dGVPd25lclBy
b3h5ID0gU1ZHQXR0cmlidXRlT3duZXJQcm94eUltcGw8U1ZHTWFya2VyRWxlbWVudCwgU1ZHRWxl
bWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgU1ZHRml0VG9WaWV3Qm94PjsKICAg
ICBzdGF0aWMgQXR0cmlidXRlT3duZXJQcm94eTo6QXR0cmlidXRlUmVnaXN0cnkmIGF0dHJpYnV0
ZVJlZ2lzdHJ5KCkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6YXR0cmlidXRlUmVnaXN0
cnkoKTsgfQotICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0cmlidXRlTmFtZSkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6aXNLbm93
bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsgfQotICAgIHN0YXRpYyBib29sIGlzQW5pbWF0ZWRM
ZW5ndGhBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkgeyByZXR1
cm4gQXR0cmlidXRlT3duZXJQcm94eTo6aXNBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyaWJ1
dGVOYW1lKTsgfQogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQXR0cmlidXRlcygpOwotCiAgICAg
Y29uc3QgU1ZHQXR0cmlidXRlT3duZXJQcm94eSYgYXR0cmlidXRlT3duZXJQcm94eSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fYXR0cmlidXRlT3duZXJQcm94eTsgfQorCisgICAgdXNpbmcgUHJv
cGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdNYXJrZXJFbGVtZW50
LCBTVkdFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdGaXRUb1ZpZXdC
b3g+OworICAgIGNvbnN0IFNWR1Byb3BlcnR5UmVnaXN0cnkmIHByb3BlcnR5UmVnaXN0cnkoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3BlcnR5UmVnaXN0cnk7IH0KKworICAgIHN0YXRpYyBi
b29sIGlzQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmli
dXRlTmFtZSkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6aXNBbmltYXRlZExlbmd0aEF0
dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsgfQorICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUp
IHx8IFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7Cisg
ICAgfQorCiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdl
ZChjb25zdCBDaGlsZENoYW5nZSYpIG92ZXJyaWRlOwpAQCAtMTI2LDYgKzEzMiw3IEBAIHByaXZh
dGU6CiAKICAgICB1c2luZyBTVkdBbmltYXRlZEN1c3RvbUFuZ2xlQXR0cmlidXRlQWNjZXNzb3Ig
PSBTVkdBbmltYXRlZFBhaXJBdHRyaWJ1dGVBY2Nlc3NvcjxTVkdNYXJrZXJFbGVtZW50LCBTVkdB
bmltYXRlZEFuZ2xlQXR0cmlidXRlLCBBbmltYXRlZEFuZ2xlLCBTVkdBbmltYXRlZEN1c3RvbU9y
aWVudFR5cGVBdHRyaWJ1dGUsIEFuaW1hdGVkRW51bWVyYXRpb24+OwogCisgICAgUHJvcGVydHlS
ZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwogICAgIFNWR0FuaW1hdGVkTGVu
Z3RoQXR0cmlidXRlIG1fcmVmWCB7IExlbmd0aE1vZGVXaWR0aCB9OwogICAgIFNWR0FuaW1hdGVk
TGVuZ3RoQXR0cmlidXRlIG1fcmVmWSB7IExlbmd0aE1vZGVIZWlnaHQgfTsKICAgICBTVkdBbmlt
YXRlZExlbmd0aEF0dHJpYnV0ZSBtX21hcmtlcldpZHRoIHsgTGVuZ3RoTW9kZVdpZHRoLCAiMyIg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKaW5kZXggMzBiZTc3ZTgwYWU0OGEwYWJm
YmMyZjRjZGM2MzIzYTBlYmRkOGFiOC4uOWI5M2RkNGM0YzZhZTYwM2QxOWQ5NjAxODljMmQyOTUz
MmRjMjZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKQEAgLTIwLDcgKzIwLDYg
QEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW4uaCIKICNp
bmNsdWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9uLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRM
ZW5ndGguaCIKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCkBAIC01NSwxMSArNTQsMTggQEAgcHJp
dmF0ZToKIAogICAgIHVzaW5nIEF0dHJpYnV0ZU93bmVyUHJveHkgPSBTVkdBdHRyaWJ1dGVPd25l
clByb3h5SW1wbDxTVkdNYXNrRWxlbWVudCwgU1ZHRWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZCwgU1ZHVGVzdHM+OwogICAgIHN0YXRpYyBBdHRyaWJ1dGVPd25lclByb3h5OjpB
dHRyaWJ1dGVSZWdpc3RyeSYgYXR0cmlidXRlUmVnaXN0cnkoKSB7IHJldHVybiBBdHRyaWJ1dGVP
d25lclByb3h5OjphdHRyaWJ1dGVSZWdpc3RyeSgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNLbm93
bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSB7IHJldHVybiBB
dHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOyB9Ci0g
ICAgc3RhdGljIGJvb2wgaXNBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0FuaW1h
dGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOyB9CiAgICAgc3RhdGljIHZvaWQgcmVn
aXN0ZXJBdHRyaWJ1dGVzKCk7Ci0KICAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclByb3h5JiBh
dHRyaWJ1dGVPd25lclByb3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hdHRyaWJ1dGVPd25l
clByb3h5OyB9CisKKyAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25l
clJlZ2lzdHJ5PFNWR01hc2tFbGVtZW50LCBTVkdFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkLCBTVkdUZXN0cz47CisgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3RyeSYgcHJv
cGVydHlSZWdpc3RyeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdpc3RyeTsg
fQorCisgICAgc3RhdGljIGJvb2wgaXNBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojpp
c0FuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOyB9CisgICAgc3RhdGljIGJv
b2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmlzS25vd25BdHRyaWJ1
dGUoYXR0cmlidXRlTmFtZSkgfHwgUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShh
dHRyaWJ1dGVOYW1lKTsKKyAgICB9CisKICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKICAgICB2b2lkIHN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogICAgIHZvaWQgY2hp
bGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgZmluYWw7CkBAIC03MSw2ICs3Nyw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgQXR0cmlidXRlT3duZXJQcm94eSBtX2F0dHJpYnV0ZU93
bmVyUHJveHkgeyAqdGhpcyB9OworICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lz
dHJ5IHsgKnRoaXMgfTsKICAgICBTVkdBbmltYXRlZExlbmd0aEF0dHJpYnV0ZSBtX3ggeyBMZW5n
dGhNb2RlV2lkdGgsICItMTAlIiB9OwogICAgIFNWR0FuaW1hdGVkTGVuZ3RoQXR0cmlidXRlIG1f
eSB7IExlbmd0aE1vZGVIZWlnaHQsICItMTAlIiB9OwogICAgIFNWR0FuaW1hdGVkTGVuZ3RoQXR0
cmlidXRlIG1fd2lkdGggeyBMZW5ndGhNb2RlV2lkdGgsICIxMjAlIiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0aEVsZW1lbnQuaAppbmRleCA5ODFkZTg2NTFjMWU2YzZjMzY5NTg2MTQxN2JkNWJlNmZk
YzlkZjY3Li5mODAwMDdlMjgwNTI4ZTk4OGM4ZTc1MjYwYjcyOGQxZjFiNGIxYzdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaApAQCAtMjIsNyArMjIsNiBAQAogI3ByYWdtYSBvbmNl
CiAKICNpbmNsdWRlICJQYXRoLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuLmgiCiAj
aW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXIuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFBhdGgu
aCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCkBAIC0xMTEsMTAg
KzExMCwxNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgQXR0cmlidXRlT3duZXJQcm94eSA9IFNW
R0F0dHJpYnV0ZU93bmVyUHJveHlJbXBsPFNWR1BhdGhFbGVtZW50LCBTVkdHZW9tZXRyeUVsZW1l
bnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ+OwogICAgIHN0YXRpYyBhdXRvJiBhdHRy
aWJ1dGVSZWdpc3RyeSgpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmF0dHJpYnV0ZVJl
Z2lzdHJ5KCk7IH0KLSAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6Omlz
S25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7IH0KICAgICBzdGF0aWMgdm9pZCByZWdpc3Rl
ckF0dHJpYnV0ZXMoKTsKLQogICAgIGNvbnN0IFNWR0F0dHJpYnV0ZU93bmVyUHJveHkmIGF0dHJp
YnV0ZU93bmVyUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2F0dHJpYnV0ZU93bmVyUHJv
eHk7IH0KKworICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVn
aXN0cnk8U1ZHUGF0aEVsZW1lbnQsIFNWR0dlb21ldHJ5RWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZD47CisgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3RyeSYgcHJvcGVydHlS
ZWdpc3RyeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdpc3RyeTsgfQorICAg
IAorICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlTmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5
Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpIHx8IFByb3BlcnR5UmVnaXN0cnk6Omlz
S25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7CisgICAgfQorCiAgICAgdm9pZCBwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7
CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5h
bDsKIApAQCAtMTU2LDYgKzE2Miw3IEBAIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHQW5pbWF0ZWRD
dXN0b21QYXRoU2VnTGlzdEF0dHJpYnV0ZUFjY2Vzc29yID0gU1ZHQW5pbWF0ZWRBdHRyaWJ1dGVB
Y2Nlc3NvcjxTVkdQYXRoRWxlbWVudCwgU1ZHQW5pbWF0ZWRDdXN0b21QYXRoU2VnTGlzdEF0dHJp
YnV0ZSwgQW5pbWF0ZWRQYXRoPjsKIAogICAgIEF0dHJpYnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1
dGVPd25lclByb3h5IHsgKnRoaXMgfTsKKyAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlS
ZWdpc3RyeSB7ICp0aGlzIH07CiAgICAgU1ZHQW5pbWF0ZWRDdXN0b21QYXRoU2VnTGlzdEF0dHJp
YnV0ZSBtX3BhdGhTZWdMaXN0IHsgKnRoaXMgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dHRlcm5FbGVtZW50LmgKaW5kZXggMDNhNjA2ZjBhMDU4MjIyMmYyYWY5MTA3NTQwODEwMTA4ZDk2
MzdhOC4uMTlkOWI5MWQ3NWYxOGMwZjE3YThiYTRiY2U2ZDlmYjhmYjdlMGIzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKQEAgLTIxLDcgKzIxLDYgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW4uaCIKICNpbmNsdWRlICJTVkdB
bmltYXRlZEVudW1lcmF0aW9uLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKICNp
bmNsdWRlICJTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCIKQEAgLTY5LDExICs2OCwx
OCBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgQXR0cmlidXRlT3duZXJQcm94eSA9IFNWR0F0dHJp
YnV0ZU93bmVyUHJveHlJbXBsPFNWR1BhdHRlcm5FbGVtZW50LCBTVkdFbGVtZW50LCBTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdGaXRUb1ZpZXdCb3gsIFNWR1Rlc3RzLCBTVkdVUklS
ZWZlcmVuY2U+OwogICAgIHN0YXRpYyBBdHRyaWJ1dGVPd25lclByb3h5OjpBdHRyaWJ1dGVSZWdp
c3RyeSYgYXR0cmlidXRlUmVnaXN0cnkoKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojph
dHRyaWJ1dGVSZWdpc3RyeSgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSB7IHJldHVybiBBdHRyaWJ1dGVPd25l
clByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOyB9Ci0gICAgc3RhdGljIGJv
b2wgaXNBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1
dGVOYW1lKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0FuaW1hdGVkTGVuZ3RoQXR0
cmlidXRlKGF0dHJpYnV0ZU5hbWUpOyB9CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJBdHRyaWJ1
dGVzKCk7Ci0KICAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclByb3h5JiBhdHRyaWJ1dGVPd25l
clByb3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hdHRyaWJ1dGVPd25lclByb3h5OyB9CisK
KyAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNW
R1BhdHRlcm5FbGVtZW50LCBTVkdFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LCBTVkdGaXRUb1ZpZXdCb3gsIFNWR1Rlc3RzLCBTVkdVUklSZWZlcmVuY2U+OworICAgIGNvbnN0
IFNWR1Byb3BlcnR5UmVnaXN0cnkmIHByb3BlcnR5UmVnaXN0cnkoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX3Byb3BlcnR5UmVnaXN0cnk7IH0KKworICAgIHN0YXRpYyBib29sIGlzQW5pbWF0ZWRM
ZW5ndGhBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkgeyByZXR1
cm4gQXR0cmlidXRlT3duZXJQcm94eTo6aXNBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyaWJ1
dGVOYW1lKTsgfQorICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBBdHRyaWJ1dGVP
d25lclByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpIHx8IFByb3BlcnR5UmVn
aXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7CisgICAgfQorCiAgICAgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
JikgZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBmaW5hbDsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYp
IGZpbmFsOwpAQCAtODUsNiArOTEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgc2VsZkhhc1JlbGF0
aXZlTGVuZ3RocygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIEF0dHJpYnV0
ZU93bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsKKyAgICBQcm9wZXJ0
eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CiAgICAgU1ZHQW5pbWF0ZWRM
ZW5ndGhBdHRyaWJ1dGUgbV94IHsgTGVuZ3RoTW9kZVdpZHRoIH07CiAgICAgU1ZHQW5pbWF0ZWRM
ZW5ndGhBdHRyaWJ1dGUgbV95IHsgTGVuZ3RoTW9kZUhlaWdodCB9OwogICAgIFNWR0FuaW1hdGVk
TGVuZ3RoQXR0cmlidXRlIG1fd2lkdGggeyBMZW5ndGhNb2RlV2lkdGggfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BvbHlFbGVtZW50LmgKaW5kZXggMDMyMGMwNDc4MDhjYmEzM2Y4Y2NlMzRjZjdlNDBkMzNk
NjQ3YmJhMi4uNWM0OWY1NjQ5NGE4OWIzMzZhMmI5ODhmNmMxMDQwZGYyNmIzYjZmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgKQEAgLTQ0LDEwICs0NCwxNyBAQCBwcm90ZWN0ZWQ6
CiBwcml2YXRlOgogICAgIHVzaW5nIEF0dHJpYnV0ZU93bmVyUHJveHkgPSBTVkdBdHRyaWJ1dGVP
d25lclByb3h5SW1wbDxTVkdQb2x5RWxlbWVudCwgU1ZHR2VvbWV0cnlFbGVtZW50LCBTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkPjsKICAgICBzdGF0aWMgQXR0cmlidXRlT3duZXJQcm94eTo6
QXR0cmlidXRlUmVnaXN0cnkmIGF0dHJpYnV0ZVJlZ2lzdHJ5KCkgeyByZXR1cm4gQXR0cmlidXRl
T3duZXJQcm94eTo6YXR0cmlidXRlUmVnaXN0cnkoKTsgfQotICAgIHN0YXRpYyBib29sIGlzS25v
d25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkgeyByZXR1cm4g
QXR0cmlidXRlT3duZXJQcm94eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsgfQog
ICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQXR0cmlidXRlcygpOwotCiAgICAgY29uc3QgU1ZHQXR0
cmlidXRlT3duZXJQcm94eSYgYXR0cmlidXRlT3duZXJQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fYXR0cmlidXRlT3duZXJQcm94eTsgfQorCisgICAgdXNpbmcgUHJvcGVydHlSZWdpc3Ry
eSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdQb2x5RWxlbWVudCwgU1ZHR2VvbWV0cnlF
bGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkPjsKKyAgICBjb25zdCBTVkdQcm9w
ZXJ0eVJlZ2lzdHJ5JiBwcm9wZXJ0eVJlZ2lzdHJ5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9w
cm9wZXJ0eVJlZ2lzdHJ5OyB9CisKKyAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCisgICAgeworICAgICAgICByZXR1cm4g
QXR0cmlidXRlT3duZXJQcm94eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSB8fCBQ
cm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOworICAgIH0K
KwogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21pY1N0cmluZyYpIG92ZXJyaWRlOyAKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCkBAIC01NSw2ICs2Miw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBzdXBwb3J0c01hcmtlcnMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CiAKICAgICBBdHRyaWJ1dGVPd25lclByb3h5IG1fYXR0cmlidXRlT3duZXJQcm94eSB7ICp0
aGlzIH07CisgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9
OwogICAgIFNWR0FuaW1hdGVkUG9pbnRMaXN0QXR0cmlidXRlIG1fcG9pbnRzOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCmluZGV4IGY5OTFm
M2QwMmQ5NWI2YjdlMjg4ZWQwYjYzZDdjZTA5ZWI5MjY2ZTAuLmI3MmM3MTU5Nzk3ZjNiZDBhNTk4
NjZkYWFhMjJmZTFkYjFhMmFkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdS
YWRpYWxHcmFkaWVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFs
R3JhZGllbnRFbGVtZW50LmgKQEAgLTU2LDggKzU2LDExIEBAIHByaXZhdGU6CiAgICAgdXNpbmcg
QXR0cmlidXRlT3duZXJQcm94eSA9IFNWR0F0dHJpYnV0ZU93bmVyUHJveHlJbXBsPFNWR1JhZGlh
bEdyYWRpZW50RWxlbWVudCwgU1ZHR3JhZGllbnRFbGVtZW50PjsKICAgICBzdGF0aWMgQXR0cmli
dXRlT3duZXJQcm94eTo6QXR0cmlidXRlUmVnaXN0cnkmIGF0dHJpYnV0ZVJlZ2lzdHJ5KCkgeyBy
ZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6YXR0cmlidXRlUmVnaXN0cnkoKTsgfQogICAgIHN0
YXRpYyB2b2lkIHJlZ2lzdGVyQXR0cmlidXRlcygpOwotCiAgICAgY29uc3QgU1ZHQXR0cmlidXRl
T3duZXJQcm94eSYgYXR0cmlidXRlT3duZXJQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
YXR0cmlidXRlT3duZXJQcm94eTsgfQorICAgIAorICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkg
PSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LCBTVkdH
cmFkaWVudEVsZW1lbnQ+OworICAgIGNvbnN0IFNWR1Byb3BlcnR5UmVnaXN0cnkmIHByb3BlcnR5
UmVnaXN0cnkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3BlcnR5UmVnaXN0cnk7IH0KKwog
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21p
Y1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKQEAgLTY2LDYgKzY5LDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIEF0
dHJpYnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsKKyAgICBQ
cm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CiAgICAgU1ZHQW5p
bWF0ZWRMZW5ndGhBdHRyaWJ1dGUgbV9jeCB7IExlbmd0aE1vZGVXaWR0aCwgIjUwJSIgfTsKICAg
ICBTVkdBbmltYXRlZExlbmd0aEF0dHJpYnV0ZSBtX2N5IHsgTGVuZ3RoTW9kZUhlaWdodCwgIjUw
JSIgfTsKICAgICBTVkdBbmltYXRlZExlbmd0aEF0dHJpYnV0ZSBtX3IgeyBMZW5ndGhNb2RlT3Ro
ZXIsICI1MCUiIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCmluZGV4IGU0Y2RhYjFh
ZmZhNTJjOWY1NDQ0YjM1YjMzN2NkMzZlMDZlMDFmMTUuLjU4Y2UxZDkwMzViNWRlYmZjYWRkZjRi
OTUzY2MyNzc1ODlmMzU1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCkBAIC0y
MSw3ICsyMSw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29s
ZWFuLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKICNpbmNsdWRlICJTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHR2VvbWV0cnlFbGVtZW50Lmgi
CkBAIC01MywxMCArNTIsMTcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIEF0dHJpYnV0ZU93bmVy
UHJveHkgPSBTVkdBdHRyaWJ1dGVPd25lclByb3h5SW1wbDxTVkdSZWN0RWxlbWVudCwgU1ZHR2Vv
bWV0cnlFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkPjsKICAgICBzdGF0aWMg
YXV0byYgYXR0cmlidXRlUmVnaXN0cnkoKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojph
dHRyaWJ1dGVSZWdpc3RyeSgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSB7IHJldHVybiBBdHRyaWJ1dGVPd25l
clByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOyB9CiAgICAgc3RhdGljIHZv
aWQgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7Ci0KICAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclBy
b3h5JiBhdHRyaWJ1dGVPd25lclByb3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hdHRyaWJ1
dGVPd25lclByb3h5OyB9CisKKyAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVy
dHlPd25lclJlZ2lzdHJ5PFNWR1JlY3RFbGVtZW50LCBTVkdHZW9tZXRyeUVsZW1lbnQsIFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ+OworICAgIGNvbnN0IFNWR1Byb3BlcnR5UmVnaXN0cnkm
IHByb3BlcnR5UmVnaXN0cnkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3BlcnR5UmVnaXN0
cnk7IH0KKworICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0cmlidXRlTmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBBdHRyaWJ1dGVPd25l
clByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpIHx8IFByb3BlcnR5UmVnaXN0
cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7CisgICAgfQorCiAgICAgdm9pZCBw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikg
ZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
KSBmaW5hbDsKIApAQCAtNjYsNiArNzIsNyBAQCBwcml2YXRlOgogICAgIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikgZmluYWw7CiAKICAgICBBdHRyaWJ1dGVPd25lclByb3h5IG1fYXR0
cmlidXRlT3duZXJQcm94eSB7ICp0aGlzIH07CisgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3Bl
cnR5UmVnaXN0cnkgeyAqdGhpcyB9OwogICAgIFNWR0FuaW1hdGVkTGVuZ3RoQXR0cmlidXRlIG1f
eCB7IExlbmd0aE1vZGVXaWR0aCB9OwogICAgIFNWR0FuaW1hdGVkTGVuZ3RoQXR0cmlidXRlIG1f
eSB7IExlbmd0aE1vZGVIZWlnaHQgfTsKICAgICBTVkdBbmltYXRlZExlbmd0aEF0dHJpYnV0ZSBt
X3dpZHRoIHsgTGVuZ3RoTW9kZVdpZHRoIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU1ZHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaApp
bmRleCA5YmNmMjg2ODU2NDhiNTM4MTZiMjI1N2NkZGMwNDJmNGM3MjBhODcxLi4xOWRjNWUwMDhj
NDk5YzMxMDU1NWZmMjNlMmY1ZDUzYzQxMTU0ZjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVt
ZW50LmgKQEAgLTIyLDcgKzIyLDYgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRmxvYXRQ
b2ludC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbi5oIgogI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkTGVuZ3RoLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRSZWN0LmgiCkBAIC0xMzUsMTIgKzEzNCwxOSBAQCBw
cml2YXRlOgogICAgIFNWR1NWR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiAgICAgdmlydHVhbCB+U1ZHU1ZHRWxlbWVudCgpOwogCi0gICAgdXNpbmcgQXR0cmlidXRl
T3duZXJQcm94eSA9IFNWR0F0dHJpYnV0ZU93bmVyUHJveHlJbXBsPFNWR1NWR0VsZW1lbnQsIFNW
R0dyYXBoaWNzRWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgU1ZHRml0VG9W
aWV3Qm94LCBTVkdab29tQW5kUGFuPjsKKyAgICB1c2luZyBBdHRyaWJ1dGVPd25lclByb3h5ID0g
U1ZHQXR0cmlidXRlT3duZXJQcm94eUltcGw8U1ZHU1ZHRWxlbWVudCwgU1ZHR3JhcGhpY3NFbGVt
ZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdGaXRUb1ZpZXdCb3g+OwogICAg
IHN0YXRpYyBBdHRyaWJ1dGVPd25lclByb3h5OjpBdHRyaWJ1dGVSZWdpc3RyeSYgYXR0cmlidXRl
UmVnaXN0cnkoKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5OjphdHRyaWJ1dGVSZWdpc3Ry
eSgpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3du
QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOyB9CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJBdHRy
aWJ1dGVzKCk7Ci0KICAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclByb3h5JiBhdHRyaWJ1dGVP
d25lclByb3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hdHRyaWJ1dGVPd25lclByb3h5OyB9
CisgICAgCisgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdp
c3RyeTxTVkdTVkdFbGVtZW50LCBTVkdHcmFwaGljc0VsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQsIFNWR0ZpdFRvVmlld0JveD47CisgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdp
c3RyeSYgcHJvcGVydHlSZWdpc3RyeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlS
ZWdpc3RyeTsgfQorICAgIAorICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBBdHRy
aWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpIHx8IFByb3Bl
cnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7CisgICAgfQorCiAg
ICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWlj
U3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKICAgICBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMo
KSBjb25zdCBvdmVycmlkZTsKQEAgLTE3MCw2ICsxNzYsNyBAQCBwcml2YXRlOgogICAgIFN0cmlu
ZyBtX2N1cnJlbnRWaWV3RnJhZ21lbnRJZGVudGlmaWVyOwogCiAgICAgQXR0cmlidXRlT3duZXJQ
cm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9OworICAgIFByb3BlcnR5UmVnaXN0
cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKICAgICBTVkdBbmltYXRlZExlbmd0aEF0
dHJpYnV0ZSBtX3ggeyBMZW5ndGhNb2RlV2lkdGggfTsKICAgICBTVkdBbmltYXRlZExlbmd0aEF0
dHJpYnV0ZSBtX3kgeyBMZW5ndGhNb2RlSGVpZ2h0fTsKICAgICBTVkdBbmltYXRlZExlbmd0aEF0
dHJpYnV0ZSBtX3dpZHRoIHsgTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSJfcyB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKaW5kZXggZjhjZWQyMmEzMjcyODFiMDExODAzNWE5Yjcx
ODA3ZjE1YTgxNWQyOC4uNjc2MGNjZDMxOTJmNzk3ZWFiZWU0ZmVmMDUwNWY3OTlhNGRjMDBmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCkBAIC0yMSw3ICsyMSw2IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuLmgiCiAjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oIgpAQCAtNDMsOCArNDIsMTEgQEAgcHJp
dmF0ZToKICAgICBTVkdTY3JpcHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYsIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlciwgYm9vbCBhbHJlYWR5U3RhcnRlZCk7CiAKICAg
ICB1c2luZyBBdHRyaWJ1dGVPd25lclByb3h5ID0gU1ZHQXR0cmlidXRlT3duZXJQcm94eUltcGw8
U1ZHU2NyaXB0RWxlbWVudCwgU1ZHRWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZCwgU1ZHVVJJUmVmZXJlbmNlPjsKLQogICAgIGNvbnN0IFNWR0F0dHJpYnV0ZU93bmVyUHJveHkm
IGF0dHJpYnV0ZU93bmVyUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2F0dHJpYnV0ZU93
bmVyUHJveHk7IH0KKworICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93
bmVyUmVnaXN0cnk8U1ZHU2NyaXB0RWxlbWVudCwgU1ZHRWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZCwgU1ZHVVJJUmVmZXJlbmNlPjsKKyAgICBjb25zdCBTVkdQcm9wZXJ0eVJl
Z2lzdHJ5JiBwcm9wZXJ0eVJlZ2lzdHJ5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wcm9wZXJ0
eVJlZ2lzdHJ5OyB9CisKICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogCkBAIC04NSw2ICs4Nyw3IEBAIHBy
aXZhdGU6CiAjZW5kaWYKIAogICAgIEF0dHJpYnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25l
clByb3h5IHsgKnRoaXMgfTsKKyAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3Ry
eSB7ICp0aGlzIH07CiAgICAgVGltZXIgbV9zdmdMb2FkRXZlbnRUaW1lcjsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKaW5kZXggZDg0M2I3NmFmZWRhM2ZhNTA3MDNmYjE3Zjc2
ODZhNjJjMDEwYTc5Zi4uZmQzOTlhYmFkZTI4OWU2NWY1NzZiMDljYzZiNTEyN2Y5MGNlZjAzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKQEAgLTQxLDEwICs0MSwxNyBAQCBwcml2
YXRlOgogCiAgICAgdXNpbmcgQXR0cmlidXRlT3duZXJQcm94eSA9IFNWR0F0dHJpYnV0ZU93bmVy
UHJveHlJbXBsPFNWR1N0b3BFbGVtZW50LCBTVkdFbGVtZW50PjsKICAgICBzdGF0aWMgQXR0cmli
dXRlT3duZXJQcm94eTo6QXR0cmlidXRlUmVnaXN0cnkmIGF0dHJpYnV0ZVJlZ2lzdHJ5KCkgeyBy
ZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6YXR0cmlidXRlUmVnaXN0cnkoKTsgfQotICAgIHN0
YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRl
TmFtZSkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRy
aWJ1dGVOYW1lKTsgfQogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQXR0cmlidXRlcygpOwotCiAg
ICAgY29uc3QgU1ZHQXR0cmlidXRlT3duZXJQcm94eSYgYXR0cmlidXRlT3duZXJQcm94eSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fYXR0cmlidXRlT3duZXJQcm94eTsgfQorCisgICAgdXNpbmcg
UHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdTdG9wRWxlbWVu
dCwgU1ZHRWxlbWVudD47CisgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3RyeSYgcHJvcGVydHlS
ZWdpc3RyeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdpc3RyeTsgfQorCisg
ICAgc3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
aWJ1dGVOYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6Omlz
S25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkgfHwgUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93
bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsKKyAgICB9CisKICAgICB2b2lkIHBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKICAg
ICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwog
CkBAIC01NCw2ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNv
bnN0IFJlbmRlclN0eWxlJikgZmluYWw7CiAKICAgICBBdHRyaWJ1dGVPd25lclByb3h5IG1fYXR0
cmlidXRlT3duZXJQcm94eSB7ICp0aGlzIH07CisgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3Bl
cnR5UmVnaXN0cnkgeyAqdGhpcyB9OwogICAgIFNWR0FuaW1hdGVkTnVtYmVyQXR0cmlidXRlIG1f
b2Zmc2V0IHsgMCB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3
aXRjaEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmgKaW5k
ZXggMWU0NDY2N2RiNGUyYzBmNTQ0ZGUyZWIzMTgxM2E5OGQxOGUyZmZlNS4uYzNkMzMyY2Q4NWVm
NDE4ZTlmOGJmNjIzMjEwMzg3OGIzODg0NDAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N3aXRjaEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNo
RWxlbWVudC5oCkBAIC0yMSw3ICsyMSw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRCb29sZWFuLmgiCiAjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZC5oIgogI2luY2x1ZGUgIlNWR0dyYXBoaWNzRWxlbWVudC5oIgogCkBAIC0zOCwxMiArMzcs
MTYgQEAgcHJpdmF0ZToKICAgICB1c2luZyBBdHRyaWJ1dGVPd25lclByb3h5ID0gU1ZHQXR0cmli
dXRlT3duZXJQcm94eUltcGw8U1ZHU3dpdGNoRWxlbWVudCwgU1ZHR3JhcGhpY3NFbGVtZW50LCBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkPjsKICAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25l
clByb3h5JiBhdHRyaWJ1dGVPd25lclByb3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hdHRy
aWJ1dGVPd25lclByb3h5OyB9CiAKKyAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJv
cGVydHlPd25lclJlZ2lzdHJ5PFNWR1N3aXRjaEVsZW1lbnQsIFNWR0dyYXBoaWNzRWxlbWVudCwg
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZD47CisgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdp
c3RyeSYgcHJvcGVydHlSZWdpc3RyeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlS
ZWdpc3RyeTsgfQorCiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZH
VGVzdHM6OmlzVmFsaWQoKTsgfQogCiAgICAgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVy
KGNvbnN0IE5vZGUmKSBjb25zdCBmaW5hbDsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3Np
dGlvbiYpIGZpbmFsOwogCiAgICAgQXR0cmlidXRlT3duZXJQcm94eSBtX2F0dHJpYnV0ZU93bmVy
UHJveHkgeyAqdGhpcyB9OworICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5
IHsgKnRoaXMgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3ltYm9sRWxlbWVudC5oCmluZGV4IGQ3NjgzZTE5MjM4NWZlZTg0ODZmMDk5YmRhNjc3NTBi
MjUwOWVmMmQuLmUxZjI4ZjE0Yzg4YTQ2NTVlYzRjNGZhZmU3MmI0YjFiNDU4NTkxY2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaApAQCAtMjEsNyArMjEsNiBAQAogCiAjcHJh
Z21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbi5oIgogI2luY2x1ZGUgIlNW
R0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUmVj
dC5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKQEAgLTQxLDYgKzQwLDkgQEAgcHJpdmF0ZToK
ICAgICB1c2luZyBBdHRyaWJ1dGVPd25lclByb3h5ID0gU1ZHQXR0cmlidXRlT3duZXJQcm94eUlt
cGw8U1ZHU3ltYm9sRWxlbWVudCwgU1ZHRWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZCwgU1ZHRml0VG9WaWV3Qm94PjsKICAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclByb3h5
JiBhdHRyaWJ1dGVPd25lclByb3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hdHRyaWJ1dGVP
d25lclByb3h5OyB9CiAKKyAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlP
d25lclJlZ2lzdHJ5PFNWR1N5bWJvbEVsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQsIFNWR0ZpdFRvVmlld0JveD47CisgICAgY29uc3QgU1ZHUHJvcGVydHlS
ZWdpc3RyeSYgcHJvcGVydHlSZWdpc3RyeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVy
dHlSZWdpc3RyeTsgfQorCiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKICAgICBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwpAQCAtNDgsNiArNTAsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgQXR0cmlidXRlT3duZXJQcm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9Owor
ICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUUmVmRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmgKaW5k
ZXggYmExN2NjYWFlN2UwMWFhZTAyMGE3M2QyMWQyYmM4NGE0YWQ3MWIyYi4uMGViM2Q2YTA2YjVm
MmUyZDc1ZmE5OGNhNTJlNjg2N2FiNzI3MDQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RSZWZFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVt
ZW50LmgKQEAgLTQwLDggKzQwLDEwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB+U1ZHVFJlZkVs
ZW1lbnQoKTsKIAogICAgIHVzaW5nIEF0dHJpYnV0ZU93bmVyUHJveHkgPSBTVkdBdHRyaWJ1dGVP
d25lclByb3h5SW1wbDxTVkdUUmVmRWxlbWVudCwgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCwg
U1ZHVVJJUmVmZXJlbmNlPjsKLQogICAgIGNvbnN0IFNWR0F0dHJpYnV0ZU93bmVyUHJveHkmIGF0
dHJpYnV0ZU93bmVyUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2F0dHJpYnV0ZU93bmVy
UHJveHk7IH0KKworICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVy
UmVnaXN0cnk8U1ZHVFJlZkVsZW1lbnQsIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQsIFNWR1VS
SVJlZmVyZW5jZT47CisKICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCkBAIC01OSw2ICs2MSw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBidWlsZFBlbmRpbmdSZXNvdXJjZSgpIG92ZXJyaWRlOwog
CiAgICAgQXR0cmlidXRlT3duZXJQcm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9
OworICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKICAg
ICBSZWY8U1ZHVFJlZlRhcmdldEV2ZW50TGlzdGVuZXI+IG1fdGFyZ2V0TGlzdGVuZXI7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXN0cy5oCmluZGV4IDc5ZGRlOWI2MGE0ODk3YTUxYWNiODgzMDllOTFjOTRh
ZDdlZmU2ZmQuLjY3MTM2ZWRkYjhlODA3NDU0ZDAxNGY3OTkyNWRmYmU0ZjExMjY3ZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUZXN0cy5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSwgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAq
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAxMCBSb2IgQnVpcyA8YnVpc0BrZGUu
b3JnPgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzUsNiArMzUsOSBAQCBjbGFzcyBTVkdBdHRy
aWJ1dGVSZWdpc3RyeTsKIHRlbXBsYXRlPHR5cGVuYW1lIE93bmVyVHlwZSwgdHlwZW5hbWUuLi4g
QmFzZVR5cGVzPgogY2xhc3MgU1ZHQXR0cmlidXRlT3duZXJQcm94eUltcGw7CiAKK3RlbXBsYXRl
PHR5cGVuYW1lIE93bmVyVHlwZSwgdHlwZW5hbWUuLi4gQmFzZVR5cGVzPgorY2xhc3MgU1ZHUHJv
cGVydHlPd25lclJlZ2lzdHJ5OworCiBjbGFzcyBTVkdUZXN0cyB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoU1ZHVGVzdHMpOwogcHVibGljOgpAQCAtNDMsNyArNDYsMTAgQEAgcHVibGljOgog
CiAgICAgdXNpbmcgQXR0cmlidXRlUmVnaXN0cnkgPSBTVkdBdHRyaWJ1dGVSZWdpc3RyeTxTVkdU
ZXN0cz47CiAgICAgc3RhdGljIEF0dHJpYnV0ZVJlZ2lzdHJ5JiBhdHRyaWJ1dGVSZWdpc3RyeSgp
OwotICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlTmFtZSk7CisKKyAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVy
dHlPd25lclJlZ2lzdHJ5PFNWR1Rlc3RzPjsKKworICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgdm9pZCBzdmdB
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaAppbmRleCAxNTdjM2Q3YTc4NjY3MzZhNjY2MzAwY2Ri
MTE3MDE2ZTYyZDlhMzczLi44ZGNhYzY0NWNiYTFlNjA4NWRkNzcxNDY4ZTJhYjcxMTFhYzUzZGYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oCkBAIC0yMSw3
ICsyMSw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFu
LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkTGVuZ3RoLmgiCiAjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5o
IgpAQCAtODksNiArODgsOCBAQCBwdWJsaWM6CiAKICAgICB1c2luZyBBdHRyaWJ1dGVPd25lclBy
b3h5ID0gU1ZHQXR0cmlidXRlT3duZXJQcm94eUltcGw8U1ZHVGV4dENvbnRlbnRFbGVtZW50LCBT
VkdHcmFwaGljc0VsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ+OwogICAgIHN0
YXRpYyBBdHRyaWJ1dGVPd25lclByb3h5OjpBdHRyaWJ1dGVSZWdpc3RyeSYgYXR0cmlidXRlUmVn
aXN0cnkoKSB7IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5OjphdHRyaWJ1dGVSZWdpc3RyeSgp
OyB9CisgICAgCisgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJS
ZWdpc3RyeTxTVkdUZXh0Q29udGVudEVsZW1lbnQsIFNWR0dyYXBoaWNzRWxlbWVudCwgU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZD47CiAKICAgICBjb25zdCBTVkdMZW5ndGhWYWx1ZSYgdGV4
dExlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dExlbmd0aC5jdXJyZW50VmFsdWUoYXR0cmli
dXRlT3duZXJQcm94eSgpKTsgfQogICAgIFNWR0xlbmd0aEFkanVzdFR5cGUgbGVuZ3RoQWRqdXN0
KCkgY29uc3QgeyByZXR1cm4gbV9sZW5ndGhBZGp1c3QuY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93
bmVyUHJveHkoKSk7IH0KQEAgLTExMCwxMCArMTExLDE0IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0
ZToKICAgICBib29sIGlzVGV4dENvbnRlbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
Ci0gICAgY29uc3QgU1ZHQXR0cmlidXRlT3duZXJQcm94eSYgYXR0cmlidXRlT3duZXJQcm94eSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYXR0cmlidXRlT3duZXJQcm94eTsgfQogCisgICAg
Y29uc3QgU1ZHQXR0cmlidXRlT3duZXJQcm94eSYgYXR0cmlidXRlT3duZXJQcm94eSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fYXR0cmlidXRlT3duZXJQcm94eTsgfQogICAgIHN0YXRpYyB2
b2lkIHJlZ2lzdGVyQXR0cmlidXRlcygpOwotICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkgeyByZXR1cm4gQXR0cmlidXRl
T3duZXJQcm94eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsgfQorCisgICAgc3Rh
dGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmlzS25vd25B
dHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkgfHwgUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJp
YnV0ZShhdHRyaWJ1dGVOYW1lKTsKKyAgICB9CiAKICAgICBjbGFzcyBTVkdBbmltYXRlZEN1c3Rv
bUxlbmd0aEF0dHJpYnV0ZSA6IHB1YmxpYyBTVkdBbmltYXRlZExlbmd0aEF0dHJpYnV0ZSB7CiAg
ICAgcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCmluZGV4IDY5
YjM4NTVkNjMzMjQwMjE5NGRlODhhNTYxNTY2YWViOThmYzgxZWEuLmU0ZmE2ODNhZTVmOTc0NDlh
MjdkMjZkMzA0ZWY1NzkxM2FkNTkwMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUZXh0UGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhF
bGVtZW50LmgKQEAgLTEyOCwxMCArMTI4LDE3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBBdHRy
aWJ1dGVPd25lclByb3h5ID0gU1ZHQXR0cmlidXRlT3duZXJQcm94eUltcGw8U1ZHVGV4dFBhdGhF
bGVtZW50LCBTVkdUZXh0Q29udGVudEVsZW1lbnQsIFNWR1VSSVJlZmVyZW5jZT47CiAgICAgc3Rh
dGljIEF0dHJpYnV0ZU93bmVyUHJveHk6OkF0dHJpYnV0ZVJlZ2lzdHJ5JiBhdHRyaWJ1dGVSZWdp
c3RyeSgpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmF0dHJpYnV0ZVJlZ2lzdHJ5KCk7
IH0KLSAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJpYnV0ZU5hbWUpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmlzS25vd25BdHRy
aWJ1dGUoYXR0cmlidXRlTmFtZSk7IH0KICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckF0dHJpYnV0
ZXMoKTsKLQogICAgIGNvbnN0IFNWR0F0dHJpYnV0ZU93bmVyUHJveHkmIGF0dHJpYnV0ZU93bmVy
UHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2F0dHJpYnV0ZU93bmVyUHJveHk7IH0KKwor
ICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZH
VGV4dFBhdGhFbGVtZW50LCBTVkdUZXh0Q29udGVudEVsZW1lbnQsIFNWR1VSSVJlZmVyZW5jZT47
CisgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3RyeSYgcHJvcGVydHlSZWdpc3RyeSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdpc3RyeTsgfQorCisgICAgc3RhdGljIGJvb2wg
aXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmlzS25vd25BdHRyaWJ1dGUo
YXR0cmlidXRlTmFtZSkgfHwgUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRy
aWJ1dGVOYW1lKTsKKyAgICB9CisKICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCkBAIC0xNDcs
NiArMTU0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBj
b25zdCBvdmVycmlkZTsKIAogICAgIEF0dHJpYnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25l
clByb3h5IHsgKnRoaXMgfTsKKyAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3Ry
eSB7ICp0aGlzIH07CiAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUgbV9zdGFydE9mZnNl
dCB7IExlbmd0aE1vZGVPdGhlciB9OwogICAgIFNWR0FuaW1hdGVkRW51bWVyYXRpb25BdHRyaWJ1
dGU8U1ZHVGV4dFBhdGhNZXRob2RUeXBlPiBtX21ldGhvZCB7IFNWR1RleHRQYXRoTWV0aG9kQWxp
Z24gfTsKICAgICBTVkdBbmltYXRlZEVudW1lcmF0aW9uQXR0cmlidXRlPFNWR1RleHRQYXRoU3Bh
Y2luZ1R5cGU+IG1fc3BhY2luZyB7IFNWR1RleHRQYXRoU3BhY2luZ0V4YWN0IH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaAppbmRleCAxYjFiODFi
YjI4OWIxNDMyNTE5MjFhNzVmYTRjODIzNmViZWMyM2ExLi4zM2M5ZjY1MzZjYjU3MGVjNjZkYTNi
MTAwMmFhMGExZGJmYzk3NDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4
dFBvc2l0aW9uaW5nRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9z
aXRpb25pbmdFbGVtZW50LmgKQEAgLTM0LDYgKzM0LDggQEAgcHVibGljOgogCiAgICAgdXNpbmcg
QXR0cmlidXRlT3duZXJQcm94eSA9IFNWR0F0dHJpYnV0ZU93bmVyUHJveHlJbXBsPFNWR1RleHRQ
b3NpdGlvbmluZ0VsZW1lbnQsIFNWR1RleHRDb250ZW50RWxlbWVudD47CiAgICAgc3RhdGljIEF0
dHJpYnV0ZU93bmVyUHJveHk6OkF0dHJpYnV0ZVJlZ2lzdHJ5JiBhdHRyaWJ1dGVSZWdpc3RyeSgp
IHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmF0dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0KKyAg
ICAKKyAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5
PFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQsIFNWR1RleHRDb250ZW50RWxlbWVudD47CiAKICAg
ICBjb25zdCBTVkdMZW5ndGhMaXN0VmFsdWVzJiB4KCkgY29uc3QgeyByZXR1cm4gbV94LmN1cnJl
bnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CiAgICAgY29uc3QgU1ZHTGVuZ3RoTGlz
dFZhbHVlcyYgeSgpIGNvbnN0IHsgcmV0dXJuIG1feS5jdXJyZW50VmFsdWUoYXR0cmlidXRlT3du
ZXJQcm94eSgpKTsgfQpAQCAtNTgsOSArNjAsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbGxl
Y3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogCiAgICAg
Y29uc3QgU1ZHQXR0cmlidXRlT3duZXJQcm94eSYgYXR0cmlidXRlT3duZXJQcm94eSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fYXR0cmlidXRlT3duZXJQcm94eTsgfQotCiAgICAgc3RhdGlj
IHZvaWQgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7Ci0gICAgc3RhdGljIGJvb2wgaXNLbm93bkF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSB7IHJldHVybiBBdHRyaWJ1
dGVPd25lclByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOyB9CisKKyAgICBz
dGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUpCisgICAgeworICAgICAgICByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6aXNLbm93
bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSB8fCBQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0
cmlidXRlKGF0dHJpYnV0ZU5hbWUpOworICAgIH0KIAogICAgIEF0dHJpYnV0ZU93bmVyUHJveHkg
bV9hdHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsKICAgICBTVkdBbmltYXRlZExlbmd0aExp
c3RBdHRyaWJ1dGUgbV94OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VSSVJl
ZmVyZW5jZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VSSVJlZmVyZW5jZS5oCmluZGV4IDY2
MGMyNjI2MzA3NDJhOWNhMjhmZWJiYzdkYWFhN2U4MWUyYTVlZDkuLjMxNzIwMzZmZTM0MzAzMTE5
YjViZjNkMGIwOGRkMTcwNDE3ZjAwMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdVUklSZWZlcmVuY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVVJJUmVmZXJlbmNl
LmgKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA4
LCAyMDA5IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmcuaCIKKyNpbmNs
dWRlICJTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC02Niw2ICs2Nyw4IEBAIHB1YmxpYzoKICAgICB1c2luZyBBdHRyaWJ1dGVSZWdpc3RyeSA9
IFNWR0F0dHJpYnV0ZVJlZ2lzdHJ5PFNWR1VSSVJlZmVyZW5jZT47CiAgICAgc3RhdGljIEF0dHJp
YnV0ZVJlZ2lzdHJ5JiBhdHRyaWJ1dGVSZWdpc3RyeSgpOwogCisgICAgdXNpbmcgUHJvcGVydHlS
ZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdVUklSZWZlcmVuY2U+OworCiAg
ICAgY29uc3QgU3RyaW5nJiBocmVmKCkgY29uc3Q7CiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkU3Ry
aW5nPiBocmVmQW5pbWF0ZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1VzZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKaW5kZXgg
MzFlMGMwOWZiOGM1ZmY0OTlhOThkZTA0M2ViMDlmZWRhNDc2YTM4OC4uZDZlZGFmZWM3ZGE2Nzlm
ZTUxZWRhMWIxNzFkOTQxNmE5MTgwMTUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1VzZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5o
CkBAIC0yMyw3ICsyMyw2IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgog
I2luY2x1ZGUgIkNhY2hlZFNWR0RvY3VtZW50Q2xpZW50LmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRCb29sZWFuLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKICNpbmNsdWRlICJT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHR3JhcGhpY3NFbGVt
ZW50LmgiCkBAIC02NywxMCArNjYsMTcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIEF0dHJpYnV0
ZU93bmVyUHJveHkgPSBTVkdBdHRyaWJ1dGVPd25lclByb3h5SW1wbDxTVkdVc2VFbGVtZW50LCBT
VkdHcmFwaGljc0VsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNWR1VSSVJl
ZmVyZW5jZT47CiAgICAgc3RhdGljIEF0dHJpYnV0ZU93bmVyUHJveHk6OkF0dHJpYnV0ZVJlZ2lz
dHJ5JiBhdHRyaWJ1dGVSZWdpc3RyeSgpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmF0
dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0KLSAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVy
UHJveHk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7IH0KICAgICBzdGF0aWMgdm9p
ZCByZWdpc3RlckF0dHJpYnV0ZXMoKTsKLQogICAgIGNvbnN0IFNWR0F0dHJpYnV0ZU93bmVyUHJv
eHkmIGF0dHJpYnV0ZU93bmVyUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2F0dHJpYnV0
ZU93bmVyUHJveHk7IH0KKworICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0
eU93bmVyUmVnaXN0cnk8U1ZHVXNlRWxlbWVudCwgU1ZHR3JhcGhpY3NFbGVtZW50LCBTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdVUklSZWZlcmVuY2U+OworICAgIGNvbnN0IFNWR1By
b3BlcnR5UmVnaXN0cnkmIHByb3BlcnR5UmVnaXN0cnkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X3Byb3BlcnR5UmVnaXN0cnk7IH0KKworICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKKyAgICB7CisgICAgICAgIHJldHVy
biBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpIHx8
IFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7CisgICAg
fQorCiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIApAQCAtMTAxLDYgKzEwNyw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBpbnZhbGlkYXRlRGVwZW5kZW50U2hhZG93VHJlZXMoKTsKIAogICAgIEF0
dHJpYnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsKKyAgICBQ
cm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CiAgICAgU1ZHQW5p
bWF0ZWRMZW5ndGhBdHRyaWJ1dGUgbV94IHsgTGVuZ3RoTW9kZVdpZHRoIH07CiAgICAgU1ZHQW5p
bWF0ZWRMZW5ndGhBdHRyaWJ1dGUgbV95IHsgTGVuZ3RoTW9kZUhlaWdodCB9OwogICAgIFNWR0Fu
aW1hdGVkTGVuZ3RoQXR0cmlidXRlIG1fd2lkdGggeyBMZW5ndGhNb2RlV2lkdGggfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKaW5kZXggYTU3NzMxMDRkY2EzNDU4YjE3ZDBmYTEzNTU5
MjE1ODZlZDJhNDY2NS4uZDYzMzM1YmViODk3ZDliZGYyY2UxN2UzZTk1MzJkYTdkY2QwNDk2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKQEAgLTQ0LDEzICs0NCwxOCBAQCBwcml2
YXRlOgogICAgIFNWR1ZpZXdFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwogCiAgICAgLy8gRklYTUU6IHN2Z0F0dHJpYnV0ZUNoYW5nZWQgbWlzc2luZy4KLSAgICB1c2lu
ZyBBdHRyaWJ1dGVPd25lclByb3h5ID0gU1ZHQXR0cmlidXRlT3duZXJQcm94eUltcGw8U1ZHVmll
d0VsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNWR0Zp
dFRvVmlld0JveCwgU1ZHWm9vbUFuZFBhbj47CisgICAgdXNpbmcgQXR0cmlidXRlT3duZXJQcm94
eSA9IFNWR0F0dHJpYnV0ZU93bmVyUHJveHlJbXBsPFNWR1ZpZXdFbGVtZW50LCBTVkdFbGVtZW50
LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdGaXRUb1ZpZXdCb3g+OwogICAgIGNv
bnN0IFNWR0F0dHJpYnV0ZU93bmVyUHJveHkmIGF0dHJpYnV0ZU93bmVyUHJveHkoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2F0dHJpYnV0ZU93bmVyUHJveHk7IH0KKworICAgIHVzaW5nIFByb3Bl
cnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHVmlld0VsZW1lbnQsIFNW
R0VsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNWR0ZpdFRvVmlld0JveD47
CisgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3RyeSYgcHJvcGVydHlSZWdpc3RyeSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdpc3RyeTsgfQorCiAgICAgdm9pZCBwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7
CiAKICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBmaW5hbCB7
IHJldHVybiBmYWxzZTsgfQogCiAgICAgQXR0cmlidXRlT3duZXJQcm94eSBtX2F0dHJpYnV0ZU93
bmVyUHJveHkgeyAqdGhpcyB9OworICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lz
dHJ5IHsgKnRoaXMgfTsKICAgICBTVkdTdHJpbmdMaXN0VmFsdWVzIG1fdmlld1RhcmdldDsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgKaW5kZXggYjZmZDdiYzQ1YzRiOWY3ZWNlNDZiMGFl
ZjQ1ODFjOGEzZTRlNjBiYy4uNjZhYjI1YTdmN2I3YjhkMTc2Mjc0MTk5NTk0ZTZkNGUwMTRmYmY1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC01NCwxMiArNTQsMTQgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBT
VkdWaWV3U3BlYyhTVkdFbGVtZW50Jik7CiAKLSAgICB1c2luZyBBdHRyaWJ1dGVPd25lclByb3h5
ID0gU1ZHQXR0cmlidXRlT3duZXJQcm94eUltcGw8U1ZHVmlld1NwZWMsIFNWR0ZpdFRvVmlld0Jv
eCwgU1ZHWm9vbUFuZFBhbj47CisgICAgdXNpbmcgQXR0cmlidXRlT3duZXJQcm94eSA9IFNWR0F0
dHJpYnV0ZU93bmVyUHJveHlJbXBsPFNWR1ZpZXdTcGVjLCBTVkdGaXRUb1ZpZXdCb3g+OwogICAg
IHN0YXRpYyB2b2lkIHJlZ2lzdGVyQXR0cmlidXRlcygpOwogCiAgICAgc3RhdGljIEF0dHJpYnV0
ZU93bmVyUHJveHk6OkF0dHJpYnV0ZVJlZ2lzdHJ5JiBhdHRyaWJ1dGVSZWdpc3RyeSgpIHsgcmV0
dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmF0dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0KICAgICBzdGF0
aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5h
bWUpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmli
dXRlTmFtZSk7IH0KIAorICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93
bmVyUmVnaXN0cnk8U1ZHVmlld1NwZWMsIFNWR0ZpdFRvVmlld0JveD47CisKICAgICBXZWFrUHRy
PFNWR0VsZW1lbnQ+IG1fY29udGV4dEVsZW1lbnQ7CiAgICAgU3RyaW5nIG1fdmlld1RhcmdldFN0
cmluZzsKICAgICBBdHRyaWJ1dGVPd25lclByb3h5IG1fYXR0cmlidXRlT3duZXJQcm94eTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdab29tQW5kUGFuLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdab29tQW5kUGFuLmNwcAppbmRleCBlZmFkZDRiMjI1MTQxMTYwNDYzNzBk
ZDlmOWYxYjEzZjA4MTlhM2NkLi4xNGQ4ZmNiNzdlYTU4MDFkNjUxMDlmNDUzZGEyNTAzNjIzMTEy
NzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHWm9vbUFuZFBhbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1pvb21BbmRQYW4uY3BwCkBAIC0xLDcgKzEsNyBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4g
PHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwg
MjAwNyBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjQs
MzAgKzI0LDE3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU1ZHWm9vbUFuZFBhbjo6U1ZH
Wm9vbUFuZFBhbigpCi17Ci0gICAgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7Ci19Ci0KLXZvaWQgU1ZH
Wm9vbUFuZFBhbjo6cmVnaXN0ZXJBdHRyaWJ1dGVzKCkKLXsKLSAgICBhdXRvJiByZWdpc3RyeSA9
IGF0dHJpYnV0ZVJlZ2lzdHJ5KCk7Ci0gICAgaWYgKCFyZWdpc3RyeS5pc0VtcHR5KCkpCi0gICAg
ICAgIHJldHVybjsKLSAgICByZWdpc3RyeS5yZWdpc3RlckF0dHJpYnV0ZTxTVkdOYW1lczo6em9v
bUFuZFBhbkF0dHIsICZTVkdab29tQW5kUGFuOjptX3pvb21BbmRQYW4+KCk7Ci19Ci0KIGJvb2wg
U1ZHWm9vbUFuZFBhbjo6cGFyc2Vab29tQW5kUGFuKGNvbnN0IFVDaGFyKiYgc3RhcnQsIGNvbnN0
IFVDaGFyKiBlbmQpCiB7CiAgICAgc3RhdGljIGNvbnN0IFVDaGFyIGRpc2FibGVbXSA9IHsgJ2Qn
LCAnaScsICdzJywgJ2EnLCAnYicsICdsJywgJ2UnIH07CiAgICAgaWYgKHNraXBTdHJpbmcoc3Rh
cnQsIGVuZCwgZGlzYWJsZSwgV1RGX0FSUkFZX0xFTkdUSChkaXNhYmxlKSkpIHsKLSAgICAgICAg
bV96b29tQW5kUGFuLnNldFZhbHVlKFNWR1pvb21BbmRQYW5EaXNhYmxlKTsKKyAgICAgICAgbV96
b29tQW5kUGFuID0gU1ZHWm9vbUFuZFBhbkRpc2FibGU7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KIAogICAgIHN0YXRpYyBjb25zdCBVQ2hhciBtYWduaWZ5W10gPSB7ICdtJywgJ2EnLCAn
ZycsICduJywgJ2knLCAnZicsICd5JyB9OwogICAgIGlmIChza2lwU3RyaW5nKHN0YXJ0LCBlbmQs
IG1hZ25pZnksIFdURl9BUlJBWV9MRU5HVEgobWFnbmlmeSkpKSB7Ci0gICAgICAgIG1fem9vbUFu
ZFBhbi5zZXRWYWx1ZShTVkdab29tQW5kUGFuTWFnbmlmeSk7CisgICAgICAgIG1fem9vbUFuZFBh
biA9IFNWR1pvb21BbmRQYW5NYWduaWZ5OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
QEAgLTU4LDcgKzQ1LDcgQEAgdm9pZCBTVkdab29tQW5kUGFuOjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBBdG8KIHsKICAgICBpZiAoYXR0
cmlidXRlTmFtZSAhPSBTVkdOYW1lczo6em9vbUFuZFBhbkF0dHIpCiAgICAgICAgIHJldHVybjsK
LSAgICBtX3pvb21BbmRQYW4uc2V0VmFsdWUoU1ZHUHJvcGVydHlUcmFpdHM8U1ZHWm9vbUFuZFBh
blR5cGU+Ojpmcm9tU3RyaW5nKHZhbHVlKSk7CisgICAgbV96b29tQW5kUGFuID0gU1ZHUHJvcGVy
dHlUcmFpdHM8U1ZHWm9vbUFuZFBhblR5cGU+Ojpmcm9tU3RyaW5nKHZhbHVlKTsKIH0KIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1pvb21BbmRQYW4uaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdab29tQW5kUGFuLmgKaW5kZXggMzVkODgyOGVjNTdjNGRjYmMwYTViNzY4
MGU0M2RjYmVhMmQ2YTgxNC4uMzkyZjQzZWZiN2M4YTlhMjE2NzIyZjg0MTY0MzI3MTRmNzc3MmFl
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1pvb21BbmRQYW4uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHWm9vbUFuZFBhbi5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1l
cm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBS
b2IgQnVpcyA8YnVpc0BrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzcsMjYgKzM3
LDIwIEBAIHB1YmxpYzoKICAgICAgICAgU1ZHX1pPT01BTkRQQU5fTUFHTklGWSA9IFNWR1pvb21B
bmRQYW5NYWduaWZ5CiAgICAgfTsKIAotICAgIFNWR1pvb21BbmRQYW5UeXBlIHpvb21BbmRQYW4o
KSBjb25zdCB7IHJldHVybiBtX3pvb21BbmRQYW4udmFsdWUoKTsgfQotICAgIHZvaWQgc2V0Wm9v
bUFuZFBhbihTVkdab29tQW5kUGFuVHlwZSB6b29tQW5kUGFuKSB7IG1fem9vbUFuZFBhbi5zZXRW
YWx1ZSh6b29tQW5kUGFuKTsgfQorICAgIFNWR1pvb21BbmRQYW5UeXBlIHpvb21BbmRQYW4oKSBj
b25zdCB7IHJldHVybiBtX3pvb21BbmRQYW47IH0KKyAgICB2b2lkIHNldFpvb21BbmRQYW4oU1ZH
Wm9vbUFuZFBhblR5cGUgem9vbUFuZFBhbikgeyBtX3pvb21BbmRQYW4gPSB6b29tQW5kUGFuOyB9
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Wm9vbUFuZFBhbih1bnNpZ25lZCkgeyByZXR1cm4g
RXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsgfQotICAgIHZvaWQgcmVz
ZXQoKSB7IG1fem9vbUFuZFBhbi5zZXRWYWx1ZShTVkdab29tQW5kUGFuTWFnbmlmeSk7IH0KLQot
ICAgIHVzaW5nIEF0dHJpYnV0ZU93bmVyUHJveHkgPSBTVkdBdHRyaWJ1dGVPd25lclByb3h5SW1w
bDxTVkdab29tQW5kUGFuPjsKLSAgICBzdGF0aWMgQXR0cmlidXRlT3duZXJQcm94eTo6QXR0cmli
dXRlUmVnaXN0cnkmIGF0dHJpYnV0ZVJlZ2lzdHJ5KCkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQ
cm94eTo6YXR0cmlidXRlUmVnaXN0cnkoKTsgfQorICAgIHZvaWQgcmVzZXQoKSB7IG1fem9vbUFu
ZFBhbiA9IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1pvb21BbmRQYW5UeXBlPjo6aW5pdGlhbFZhbHVl
KCk7IH0KIAogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21pY1N0cmluZyYpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHWm9vbUFuZFBhbigpOwor
ICAgIFNWR1pvb21BbmRQYW4oKSA9IGRlZmF1bHQ7CiAKLSAgICBzdGF0aWMgYm9vbCBpc0tub3du
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpIHsgcmV0dXJuIEF0
dHJpYnV0ZU93bmVyUHJveHk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7IH0KICAg
ICBib29sIHBhcnNlWm9vbUFuZFBhbihjb25zdCBVQ2hhciomLCBjb25zdCBVQ2hhciopOwogCiBw
cml2YXRlOgotICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQXR0cmlidXRlcygpOwotCi0gICAgU1ZH
UHJvcGVydHlBdHRyaWJ1dGU8U1ZHWm9vbUFuZFBhblR5cGU+IG1fem9vbUFuZFBhbjsKKyAgICBT
Vkdab29tQW5kUGFuVHlwZSBtX3pvb21BbmRQYW4geyBTVkdQcm9wZXJ0eVRyYWl0czxTVkdab29t
QW5kUGFuVHlwZT46OmluaXRpYWxWYWx1ZSgpIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZFByb3BlcnR5QWNjZXNzb3JJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFByb3BlcnR5QWNjZXNzb3JJbXBsLmgKaW5kZXggYTgxZmZjM2ZhOTIwNDFjMTNl
YzE1OGJhMmFkOWQ5Y2Q2NWQ2NzU0Ni4uYzdhODFjODE3YmExZTZlYjFhMjE2ZDhjNjJjYmU0NjRj
ZWY0YWNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRQcm9wZXJ0eUFjY2Vzc29ySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlBY2Nlc3NvckltcGwuaApAQCAtMzIsNiArMzIsMjgg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit0ZW1wbGF0ZTx0eXBlbmFtZSBPd25lclR5cGU+
CitjbGFzcyBTVkdBbmltYXRlZEJvb2xlYW5BY2Nlc3NvciBmaW5hbCA6IHB1YmxpYyBTVkdBbmlt
YXRlZFByb3BlcnR5QWNjZXNzb3I8T3duZXJUeXBlLCBTVkdBbmltYXRlZEJvb2xlYW4+IHsKKyAg
ICB1c2luZyBCYXNlID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFjY2Vzc29yPE93bmVyVHlwZSwgU1ZH
QW5pbWF0ZWRCb29sZWFuPjsKKyAgICB1c2luZyBCYXNlOjpwcm9wZXJ0eTsKKworcHVibGljOgor
ICAgIHVzaW5nIEJhc2U6OkJhc2U7CisgICAgdGVtcGxhdGU8UmVmPFNWR0FuaW1hdGVkQm9vbGVh
bj4gT3duZXJUeXBlOjoqcHJvcGVydHk+CisgICAgY29uc3RleHByIHN0YXRpYyBjb25zdCBTVkdN
ZW1iZXJBY2Nlc3NvcjxPd25lclR5cGU+JiBzaW5nbGV0b24oKSB7IHJldHVybiBCYXNlOjp0ZW1w
bGF0ZSBzaW5nbGV0b248U1ZHQW5pbWF0ZWRCb29sZWFuQWNjZXNzb3IsIHByb3BlcnR5PigpOyB9
CisKK3ByaXZhdGU6CisgICAgc3RkOjp1bmlxdWVfcHRyPFNWR0F0dHJpYnV0ZUFuaW1hdG9yPiBj
cmVhdGVBbmltYXRvcihPd25lclR5cGUmIG93bmVyLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
aWJ1dGVOYW1lLCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2RlIGNhbGNNb2Rl
LCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkgY29uc3QgZmluYWwKKyAgICB7
CisgICAgICAgIHJldHVybiBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y3JlYXRlKGF0dHJp
YnV0ZU5hbWUsIHByb3BlcnR5KG93bmVyKSwgYW5pbWF0aW9uTW9kZSwgY2FsY01vZGUsIGlzQWNj
dW11bGF0ZWQsIGlzQWRkaXRpdmUpOworICAgIH0KKworICAgIHZvaWQgYXBwZW5kQW5pbWF0ZWRJ
bnN0YW5jZShPd25lclR5cGUmIG93bmVyLCBTVkdBdHRyaWJ1dGVBbmltYXRvciYgYW5pbWF0b3Ip
IGNvbnN0IGZpbmFsCisgICAgeworICAgICAgICBzdGF0aWNfY2FzdDxTVkdBbmltYXRlZEJvb2xl
YW5BbmltYXRvciY+KGFuaW1hdG9yKS5hcHBlbmRBbmltYXRlZEluc3RhbmNlKHByb3BlcnR5KG93
bmVyKSk7CisgICAgfQorfTsKKyAgICAKIHRlbXBsYXRlPHR5cGVuYW1lIE93bmVyVHlwZT4KIGNs
YXNzIFNWR0FuaW1hdGVkSW50ZWdlckFjY2Vzc29yIGZpbmFsIDogcHVibGljIFNWR0FuaW1hdGVk
UHJvcGVydHlBY2Nlc3NvcjxPd25lclR5cGUsIFNWR0FuaW1hdGVkSW50ZWdlcj4gewogICAgIHVz
aW5nIEJhc2UgPSBTVkdBbmltYXRlZFByb3BlcnR5QWNjZXNzb3I8T3duZXJUeXBlLCBTVkdBbmlt
YXRlZEludGVnZXI+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oCmluZGV4IDViYjE1Nzg5
OGE0MTE5ZmIyMzRiZjIyZDRkOWQyODc1Yzk5MmIxMGEuLmFmMzM0NTZmYmJlNGI5ZDhkMjYzMWJm
Yjk0YzlhZTIxM2NkMTJkNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlBbmltYXRvckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3JJbXBsLmgKQEAgLTI4
LDYgKzI4LDcgQEAKICNpbmNsdWRlICJTVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3IuaCIKICNp
bmNsdWRlICJTVkdBbmltYXRlZFByb3BlcnR5SW1wbC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGlv
bkFkZGl0aXZlVmFsdWVGdW5jdGlvbkltcGwuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRpb25EaXNj
cmV0ZUZ1bmN0aW9uSW1wbC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM2LDYgKzM3
LDI0IEBAIGNsYXNzIFNWR0FuaW1hdGVkSW50ZWdlclBhaXJBbmltYXRvcjsKIHRlbXBsYXRlPHR5
cGVuYW1lIEFuaW1hdGVkUHJvcGVydHlBbmltYXRvcjEsIHR5cGVuYW1lIEFuaW1hdGVkUHJvcGVy
dHlBbmltYXRvcjI+CiBjbGFzcyBTVkdBbmltYXRlZFByb3BlcnR5UGFpckFuaW1hdG9yOwogCitj
bGFzcyBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvciBmaW5hbCA6IHB1YmxpYyBTVkdBbmltYXRl
ZFByb3BlcnR5QW5pbWF0b3I8U1ZHQW5pbWF0ZWRCb29sZWFuLCBTVkdBbmltYXRpb25Cb29sZWFu
RnVuY3Rpb24+ICB7CisgICAgdXNpbmcgQmFzZSA9IFNWR0FuaW1hdGVkUHJvcGVydHlBbmltYXRv
cjxTVkdBbmltYXRlZEJvb2xlYW4sIFNWR0FuaW1hdGlvbkJvb2xlYW5GdW5jdGlvbj47CisgICAg
dXNpbmcgQmFzZTo6QmFzZTsKKworcHVibGljOgorICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8U1ZHQW5pbWF0ZWRCb29sZWFuPiYg
YW5pbWF0ZWQsIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUgY2FsY01vZGUs
IGJvb2wgaXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0aXZlKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcj4obmV3IFNWR0Fu
aW1hdGVkQm9vbGVhbkFuaW1hdG9yKGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkLCBhbmltYXRpb25N
b2RlLCBjYWxjTW9kZSwgaXNBY2N1bXVsYXRlZCwgaXNBZGRpdGl2ZSkpOworICAgIH0KKworcHJp
dmF0ZToKKyAgICB2b2lkIHByb2dyZXNzKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGZsb2F0
IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50KSBmaW5hbAorICAgIHsKKyAgICAgICAg
Ym9vbCYgYW5pbWF0ZWQgPSBtX2FuaW1hdGVkLT5hbmltVmFsKCk7CisgICAgICAgIG1fZnVuY3Rp
b24ucHJvZ3Jlc3ModGFyZ2V0RWxlbWVudCwgcGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGFuaW1h
dGVkKTsKKyAgICB9Cit9OworCiBjbGFzcyBTVkdBbmltYXRlZEludGVnZXJBbmltYXRvciBmaW5h
bCA6IHB1YmxpYyBTVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3I8U1ZHQW5pbWF0ZWRJbnRlZ2Vy
LCBTVkdBbmltYXRpb25JbnRlZ2VyRnVuY3Rpb24+IHsKICAgICBmcmllbmQgY2xhc3MgU1ZHQW5p
bWF0ZWRQcm9wZXJ0eVBhaXJBbmltYXRvcjxTVkdBbmltYXRlZEludGVnZXJBbmltYXRvciwgU1ZH
QW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I+OwogICAgIGZyaWVuZCBjbGFzcyBTVkdBbmltYXRlZElu
dGVnZXJQYWlyQW5pbWF0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdBbmltYXRlZFByb3BlcnR5SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUltcGwuaAppbmRleCAwMTI5MTU0NmI0NDMzZTBkODg5
NzNlZWQzYWU1YjMwN2JkNDMyNjg0Li44ZWY3NzI2YmFiM2M5MzFkNTM2ZmJiM2NmNjc5NzU0OGIx
NzhkZmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZFByb3BlcnR5SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkUHJvcGVydHlJbXBsLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRBbmdsZS5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9v
bGVhbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCIKICNpbmNsdWRlICJT
VkdBbmltYXRlZExlbmd0aC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oIgpA
QCAtNDEsNiArNDAsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3VzaW5nIFNWR0FuaW1h
dGVkQm9vbGVhbiA9IFNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHk8Ym9vbD47CiB1c2luZyBT
VkdBbmltYXRlZEludGVnZXIgPSBTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5PGludD47CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGlv
bkRpc2NyZXRlRnVuY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0Fu
aW1hdGlvbkRpc2NyZXRlRnVuY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NjcwN2JkNzdmZmYxZTA1NWU4
OWUwYmFmYThmZTUxODFlMGQ0YTA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbi5oCkBAIC0wLDAgKzEs
NjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBWYWx1ZVR5cGU+CitjbGFzcyBTVkdBbmltYXRpb25EaXNjcmV0ZUZ1bmN0aW9uIDogcHVibGlj
IFNWR0FuaW1hdGlvbkZ1bmN0aW9uIHsKK3B1YmxpYzoKKyAgICBTVkdBbmltYXRpb25EaXNjcmV0
ZUZ1bmN0aW9uKEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUsIGJvb2wsIGJv
b2wpCisgICAgICAgIDogU1ZHQW5pbWF0aW9uRnVuY3Rpb24oYW5pbWF0aW9uTW9kZSkKKyAgICB7
CisgICAgfQorCisgICAgYm9vbCBpc0Rpc2NyZXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQorCisgICAgdm9pZCBzZXRUb0F0RW5kT2ZEdXJhdGlvblZhbHVlKGNvbnN0IFN0cmlu
ZyYpIG92ZXJyaWRlCisgICAgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9
CisKKyAgICB2b2lkIHNldEZyb21BbmRCeVZhbHVlcyhTVkdFbGVtZW50KiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIH0KKworICAgIHZvaWQgcHJvZ3Jlc3MoU1ZHRWxlbWVudCosIGZsb2F0IHBl
cmNlbnRhZ2UsIHVuc2lnbmVkLCBWYWx1ZVR5cGUmIGFuaW1hdGVkKQorICAgIHsKKyAgICAgICAg
aWYgKChtX2FuaW1hdGlvbk1vZGUgPT0gQW5pbWF0aW9uTW9kZTo6RnJvbVRvICYmIHBlcmNlbnRh
Z2UgPiAwLjUpIHx8IG1fYW5pbWF0aW9uTW9kZSA9PSBBbmltYXRpb25Nb2RlOjpUbyB8fCBwZXJj
ZW50YWdlID09IDEpCisgICAgICAgICAgICBhbmltYXRlZCA9IG1fdG87CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGFuaW1hdGVkID0gbV9mcm9tOworICAgIH0KKworcHJvdGVjdGVkOgorICAg
IFZhbHVlVHlwZSBtX2Zyb207CisgICAgVmFsdWVUeXBlIG1fdG87Cit9OworCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRpb25EaXNjcmV0ZUZ1
bmN0aW9uSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9u
RGlzY3JldGVGdW5jdGlvbkltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MzYwOWQ3Y2EyNWQ2NDk1NWIxNmM0
ZmRkMjdmMjA3OGNkYzZjNDk3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbkltcGwuaApAQCAtMCwwICsx
LDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTVkdBbmltYXRpb25EaXNjcmV0ZUZ1bmN0aW9u
LmgiCisjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBTVkdBbmltYXRpb25Cb29sZWFuRnVuY3Rpb24gOiBwdWJsaWMgU1ZHQW5pbWF0
aW9uRGlzY3JldGVGdW5jdGlvbjxib29sPiB7CitwdWJsaWM6CisgICAgdXNpbmcgQmFzZSA9IFNW
R0FuaW1hdGlvbkRpc2NyZXRlRnVuY3Rpb248Ym9vbD47CisgICAgdXNpbmcgQmFzZTo6QmFzZTsK
KworICAgIHZvaWQgc2V0RnJvbUFuZFRvVmFsdWVzKFNWR0VsZW1lbnQqLCBjb25zdCBTdHJpbmcm
IGZyb20sIGNvbnN0IFN0cmluZyYgdG8pIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2Zyb20g
PSBTVkdQcm9wZXJ0eVRyYWl0czxib29sPjo6ZnJvbVN0cmluZyhmcm9tKTsKKyAgICAgICAgbV90
byA9IFNWR1Byb3BlcnR5VHJhaXRzPGJvb2w+Ojpmcm9tU3RyaW5nKHRvKTsKKyAgICB9Cit9Owor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1
dGVSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0cmlidXRl
UmVnaXN0cnkuaAppbmRleCBiMGIzMzAyMDljZTY1ZTgxMjc2ODVlMzJhZGZhMDY4ZDA2NmM5MGEy
Li5iMjk2N2RiNTZhNzNkZjA4NWY5ODU4NjhiNzFkMzcwNzUwODJlYThiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVSZWdpc3RyeS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZVJlZ2lzdHJ5LmgKQEAg
LTI1LDcgKzI1LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdBbmltYXRlZEJv
b2xlYW4uaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9uLmgiCiAjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRMZW5ndGguaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aExpc3QuaCIK
QEAgLTY3LDEyICs2Niw2IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBBbmltYXRhYmxlIGF0
dHJpYnV0ZXMKLSAgICB0ZW1wbGF0ZTxjb25zdCBMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgUXVh
bGlmaWVkTmFtZT4mIGF0dHJpYnV0ZU5hbWUsIFNWR0FuaW1hdGVkQm9vbGVhbkF0dHJpYnV0ZSBP
d25lclR5cGU6OiphdHRyaWJ1dGU+Ci0gICAgdm9pZCByZWdpc3RlckF0dHJpYnV0ZSgpCi0gICAg
ewotICAgICAgICByZWdpc3RlckF0dHJpYnV0ZShTVkdBbmltYXRlZEJvb2xlYW5BdHRyaWJ1dGVB
Y2Nlc3NvcjxPd25lclR5cGU+Ojp0ZW1wbGF0ZSBzaW5nbGV0b248YXR0cmlidXRlTmFtZSwgYXR0
cmlidXRlPigpKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTxjb25zdCBMYXp5TmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgUXVhbGlmaWVkTmFtZT4mIGF0dHJpYnV0ZU5hbWUsIHR5cGVuYW1lIEVudW1UeXBl
LCBTVkdBbmltYXRlZEVudW1lcmF0aW9uQXR0cmlidXRlPEVudW1UeXBlPiBPd25lclR5cGU6Oiph
dHRyaWJ1dGU+CiAgICAgdm9pZCByZWdpc3RlckF0dHJpYnV0ZSgpCiAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyUmVnaXN0
cnkuaAppbmRleCBlZjU0NmZmZmM1MjBkMzA0Y2JlMjVhNTllOTFlNDgwNGExMjE0MmZkLi5kMTJi
MzkyYTkzODBmNDE3ZmE2NWYwYjNkMmYyNGY3ZjE0NDU4ZmI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkuaApA
QCAtNDIsNiArNDIsMTIgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTxj
b25zdCBMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgUXVhbGlmaWVkTmFtZT4mIGF0dHJpYnV0ZU5h
bWUsIFJlZjxTVkdBbmltYXRlZEJvb2xlYW4+IE93bmVyVHlwZTo6KnByb3BlcnR5PgorICAgIHN0
YXRpYyB2b2lkIHJlZ2lzdGVyUHJvcGVydHkoKQorICAgIHsKKyAgICAgICAgcmVnaXN0ZXJQcm9w
ZXJ0eShhdHRyaWJ1dGVOYW1lLCBTVkdBbmltYXRlZEJvb2xlYW5BY2Nlc3NvcjxPd25lclR5cGU+
Ojp0ZW1wbGF0ZSBzaW5nbGV0b248cHJvcGVydHk+KCkpOworICAgIH0KKwogICAgIHRlbXBsYXRl
PGNvbnN0IExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBRdWFsaWZpZWROYW1lPiYgYXR0cmlidXRl
TmFtZSwgUmVmPFNWR0FuaW1hdGVkSW50ZWdlcj4gT3duZXJUeXBlOjoqcHJvcGVydHk+CiAgICAg
c3RhdGljIHZvaWQgcmVnaXN0ZXJQcm9wZXJ0eSgpCiAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364966</attachid>
            <date>2019-03-17 09:26:57 -0700</date>
            <delta_ts>2019-03-18 16:59:49 -0700</delta_ts>
            <desc>Patch for review</desc>
            <filename>SVGAnimatedBoolean.patch</filename>
            <type>text/plain</type>
            <size>47692</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjYWJjNDUxOGNkNC4uOGVjMmY3ODc5NTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NCBAQAorMjAxOS0wMy0xNyAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FA
YXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSB0aGUgU1ZHIHByb3BlcnR5IHRlYXIgb2ZmIG9i
amVjdHMgZm9yIFNWR0FuaW1hdGVkQm9vbGVhbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1ODYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU1ZHQW5pbWF0ZWRCb29sZWFuIHdpbGwgYmUgZGVmaW5lZCBh
cyBTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5PGJvb2w+LgorICAgICAgICAtLSBTVkdBbmlt
YXRlZEJvb2xlYW5BY2Nlc3NvciBpcyBhZGRlZCB0byB0aGlzIGFjY2VzcyB0aGUgbmV3IHR5cGUu
CisgICAgICAgIC0tIEEgZnVuY3Rpb24gcmVnaXN0ZXJQcm9wZXJ0eSgpIGlzIGFkZGVkIHRvIFNW
R1Byb3BlcnR5T3duZXJSZWdpc3RyeQorICAgICAgICAgICB0byByZWdpc3RlciB0aGlzIG5ldyB0
eXBlLgorICAgICAgICAtLSBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvciBpcyBhZGRlZCB0byBh
bmltYXRlIHRoZSBuZXcgdHlwZQorICAgICAgICAtLSBTVkdBbmltYXRpb25Cb29sZWFuRnVuY3Rp
b24gaXMgYWRkZWQgdG8gaGFuZGxlIHRoZSBwcm9ncmVzcyBvZiB0aGlzCisgICAgICAgICAgIG5l
dyB0eXBlIG92ZXIgYSBwZXJpb2Qgb2YgdGltZS4KKworICAgICAgICBTVkdBbmltYXRpb25Cb29s
ZWFuRnVuY3Rpb24gaXMgYSBzdXBlcmNsYXNzIG9mIFNWR0FuaW1hdGlvbkRpc2NyZXRlRnVuY3Rp
b24KKyAgICAgICAgd2hpY2ggd2lsbCBiZSB0aGUgYmFzZSBjbGFzcyBvZiB0aGUgZGlzY3JldGUg
YW5pbWF0aW9uIHR5cGVzOiBzdHJpbmcsIGJvb2wsCisgICAgICAgIGVudW0gYW5kIFByZXNlcnZl
QXNwZWN0UmF0aW8gdHlwZXMuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogc3ZnL1NWR0FuaW1h
dGVkQm9vbGVhbi5jcHA6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQm9vbGVh
bi5oOiBSZW1vdmVkLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50Lmg6CisgICAg
ICAgICogc3ZnL1NWR0FuaW1hdG9yRmFjdG9yeS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0b3JGYWN0b3J5OjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdDbGlwUGF0aEVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHQ3Vyc29yRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdE
ZWZzRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OlNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cmVnaXN0ZXJBdHRyaWJ1dGVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBzdmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6ZXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkOjpleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQW5pbWF0ZWQpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6aXNLbm93bkF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpzZXRFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVDb252
b2x2ZU1hdHJpeEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2ZU1h
dHJpeEVsZW1lbnQ6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpyZWdpc3RlckF0dHJpYnV0ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9udEVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBz
dmcvU1ZHR0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHR3JhZGllbnRFbGVtZW50Lmg6Cisg
ICAgICAgICogc3ZnL1NWR01QYXRoRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR01hc2tFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR1BhdGhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50Lmg6Cisg
ICAgICAgICogc3ZnL1NWR1JlY3RFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU2NyaXB0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9T
VkdTd2l0Y2hFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBzdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1Vz
ZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5
QWNjZXNzb3JJbXBsLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eUFuaW1hdG9ySW1wbC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVk
UHJvcGVydHlJbXBsLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uRGlz
Y3JldGVGdW5jdGlvbi5oOiBBZGRlZAorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRGlz
Y3JldGVGdW5jdGlvbjo6U1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRpb25EaXNjcmV0ZUZ1bmN0aW9uOjpwcm9ncmVzcyk6CisgICAgICAg
ICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbkltcGwuaDogQWRk
ZWQKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVSZWdpc3RyeS5oOgorICAg
ICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXJSZWdpc3RyeS5oOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5OjpyZWdpc3RlclByb3BlcnR5KToK
KwogMjAxOS0wMy0xNiAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29t
PgogCiAgICAgICAgIERlZmluZSB0aGUgdHlwZSBvZiBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkg
Zm9yIGFsbCBTVkcgZWxlbWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNWUyOTVhYzQxNDcuLjRmODQy
MTMzMjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjI3MCw3ICsyMjcwLDYgQEAgc3ZnL1NWR0FuaW1h
dGVFbGVtZW50QmFzZS5jcHAKIHN2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKIHN2Zy9T
VkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAKIHN2Zy9TVkdBbmltYXRlZEFuZ2xlLmNwcAot
c3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHAKIHN2Zy9TVkdBbmltYXRlZENvbG9yLmNwcAogc3Zn
L1NWR0FuaW1hdGVkRW51bWVyYXRpb24uY3BwCiBzdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZWNjNmU3ODhiMmEuLjI5NWI2YWNlMGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNTgsNyArMjU4LDYgQEAKIAkJMDg1
NEIwMjExMjU1RTRFNjAwQjlDREQwIC8qIFNWR0lubGluZVRleHRCb3guaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTRCMDBGMTI1NUU0RTYwMEI5Q0RE
MCAvKiBTVkdJbmxpbmVUZXh0Qm94LmggKi87IH07CiAJCTA4NTRCMDIzMTI1NUU0RTYwMEI5Q0RE
MCAvKiBTVkdSb290SW5saW5lQm94LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwODU0QjAxMTEyNTVFNEU2MDBCOUNERDAgLyogU1ZHUm9vdElubGluZUJv
eC5oICovOyB9OwogCQkwODU0QjAyNTEyNTVFNEU2MDBCOUNERDAgLyogU1ZHVGV4dFF1ZXJ5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODU0QjAxMzEy
NTVFNEU2MDBCOUNERDAgLyogU1ZHVGV4dFF1ZXJ5LmggKi87IH07Ci0JCTA4NTc5NzA5MTI3ODM5
NEMwMEE4RUM1RiAvKiBTVkdBbmltYXRlZEJvb2xlYW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTc5NzA4MTI3ODM5NEMwMEE4RUM1RiAvKiBTVkdB
bmltYXRlZEJvb2xlYW4uaCAqLzsgfTsKIAkJMDg1QTE1OTMxMjg5QThERDAwMjcxMEUzIC8qIFNW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg1QTE1OTIxMjg5QThERDAwMjcxMEUzIC8q
IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZi5oICovOyB9OwogCQkwODVC
OTJCQjBFRkRFNzNEMDBFNjEyM0MgLyogRm9ybURhdGFCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODVCOTJCOTBFRkRFNzNEMDBFNjEyM0Mg
LyogRm9ybURhdGFCdWlsZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsg
fTsKIAkJMDg2Mzk1MTYxM0I1RkU1NzAwQkIzNDREIC8qIFNWR0FuaW1hdGVkUGF0aC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg2Mzk1MTQxM0I1RkU1
NzAwQkIzNDREIC8qIFNWR0FuaW1hdGVkUGF0aC5oICovOyB9OwpAQCAtNTYyOSw3ICs1NjI4LDYg
QEAKIAkJMDg1NEIwMTExMjU1RTRFNjAwQjlDREQwIC8qIFNWR1Jvb3RJbmxpbmVCb3guaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUm9vdElubGluZUJveC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwODU0QjAxMjEyNTVFNEU2MDBCOUNERDAgLyogU1ZHVGV4
dFF1ZXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1RleHRR
dWVyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NTRCMDEzMTI1NUU0RTYw
MEI5Q0REMCAvKiBTVkdUZXh0UXVlcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHVGV4dFF1ZXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA4NTc5NzA4
MTI3ODM5NEMwMEE4RUM1RiAvKiBTVkdBbmltYXRlZEJvb2xlYW4uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRCb29sZWFuLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA4NUExNTkyMTI4OUE4REQwMDI3MTBFMyAvKiBTVkdBbmltYXRlZFRyYW5z
Zm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA4NUI5MkI4MEVGREU3M0QwMEU2MTIzQyAvKiBGb3JtRGF0YUJ1
aWxkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9ybURhdGFC
dWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg1QjkyQjkwRUZERTcz
RDAwRTYxMjNDIC8qIEZvcm1EYXRhQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBGb3JtRGF0YUJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTc1ODAsNyArNzU3OCw2IEBACiAJCTQzMUEyRjlCMTNCNkYyQjAwMDc3OTFFNCAvKiBTVkdBbmlt
YXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MzFBMkZENjEzQjc3MDdBMDA3NzkxRTQgLyogU1ZHQW5pbWF0
ZWRMZW5ndGhMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNW
R0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQz
MUEzMDIwMTNCODlEQ0MwMDc3OTFFNCAvKiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDMxQTMw
ODcxM0I4Rjk3ODAwNzc5MUU0IC8qIFNWR0FuaW1hdGVkQm9vbGVhbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZEJvb2xlYW4uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MzJEM0ZFNzE4QTg2NTg0MDBEN0RDMDMgLyogU2VsZWN0
b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQzMzFBQzc3MTNCNjg3MDAwMEE5RTVBRSAvKiBTVkdBbmltYXRlZE51bWJlckxpc3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWROdW1i
ZXJMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDM1OEU4N0ExMzYwQTJF
RTAwRTQ3NDhDIC8qIEpTU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTUwNiw2ICs5NTAzLDggQEAKIAkJNzFFRkNFREUy
MDJCMzlDNzAwRDdDNDExIC8qIEpTQW5pbWF0aW9uRWZmZWN0Q3VzdG9tLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQW5pbWF0aW9uRWZmZWN0Q3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzFGOTM2RjcxREQ0Rjk5QjAwOTIyQ0M3IC8q
IHRyYWNrcy1zdXBwb3J0LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRo
ID0gInRyYWNrcy1zdXBwb3J0LmpzIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzFG
Qjk2N0ExMzgzRDY0NjAwQUM4QTRDIC8qIFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRl
YXJPZmYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRFbnVt
ZXJhdGlvblByb3BlcnR5VGVhck9mZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3
MjE0NDMyOTIyM0UzREM1MDBGMTJGRjcgLyogU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRpb25EaXNjcmV0ZUZ1bmN0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyMTQ0MzJBMjIzRTNERTQwMEYxMkZGNyAvKiBTVkdBbmlt
YXRpb25EaXNjcmV0ZUZ1bmN0aW9uSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRpb25E
aXNjcmV0ZUZ1bmN0aW9uSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjNG
OTdCQzIyMzhFRTA4MDA3RjA3OUMgLyogU1ZHQXR0cmlidXRlQW5pbWF0aW9uQ29udHJvbGxlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBdHRyaWJ1dGVBbmltYXRpb25Db250cm9sbGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzIzRjk3QkQyMjM4RUUwODAwN0YwNzlD
IC8qIFNWR0F0dHJpYnV0ZUFuaW1hdGlvbkNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZH
QXR0cmlidXRlQW5pbWF0aW9uQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3MjNGOTdCRTIyMzk1MTJEMDA3RjA3OUMgLyogU1ZHTGVnYWN5QXR0cmlidXRlQW5pbWF0
aW9uQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdMZWdhY3lBdHRyaWJ1dGVB
bmltYXRpb25Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2
MjMwLDYgKzE2MjI5LDggQEAKIAkJCQk1NUJFMDI1RjIyM0IyOUM1MDAzMkYwOEEgLyogU1ZHQW5p
bWF0aW9uQWRkaXRpdmVGdW5jdGlvbi5oICovLAogCQkJCTU1RUU1MzVFMjIzQjJBMEUwMEZCQTk0
NCAvKiBTVkdBbmltYXRpb25BZGRpdGl2ZVZhbHVlRnVuY3Rpb24uaCAqLywKIAkJCQk1NUJFMDI1
OTIyM0IyOUMxMDAzMkYwOEEgLyogU1ZHQW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0aW9uSW1w
bC5oICovLAorCQkJCTcyMTQ0MzI5MjIzRTNEQzUwMEYxMkZGNyAvKiBTVkdBbmltYXRpb25EaXNj
cmV0ZUZ1bmN0aW9uLmggKi8sCisJCQkJNzIxNDQzMkEyMjNFM0RFNDAwRjEyRkY3IC8qIFNWR0Fu
aW1hdGlvbkRpc2NyZXRlRnVuY3Rpb25JbXBsLmggKi8sCiAJCQkJNTVCRTAyNUIyMjNCMjlDMjAw
MzJGMDhBIC8qIFNWR0FuaW1hdGlvbkZ1bmN0aW9uLmggKi8sCiAJCQkJNTVGQTdGRUYyMTBGQTM4
NjAwNUFFRkU3IC8qIFNWR0F0dHJpYnV0ZS5oICovLAogCQkJCTU1RkE3RkY0MjEwRkI2ODgwMDVB
RUZFNyAvKiBTVkdBdHRyaWJ1dGVBY2Nlc3Nvci5oICovLApAQCAtMjQxMTMsOCArMjQxMTQsNiBA
QAogCQkJCTQzNjJDN0I4MTNBQzZGMUEwMDM0NEJFQiAvKiBTVkdBbmltYXRlZEFuZ2xlLmNwcCAq
LywKIAkJCQkwODdCODQ5NTEyNzJDRUM3MDBBMTQ0MTcgLyogU1ZHQW5pbWF0ZWRBbmdsZS5oICov
LAogCQkJCUIyMjI3N0U2MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZEFuZ2xlLmlkbCAq
LywKLQkJCQk0MzFBMzA4NzEzQjhGOTc4MDA3NzkxRTQgLyogU1ZHQW5pbWF0ZWRCb29sZWFuLmNw
cCAqLywKLQkJCQkwODU3OTcwODEyNzgzOTRDMDBBOEVDNUYgLyogU1ZHQW5pbWF0ZWRCb29sZWFu
LmggKi8sCiAJCQkJQjIyMjc3RTcwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkQm9vbGVh
bi5pZGwgKi8sCiAJCQkJNDNBNjI1RjcxM0IzMzA0MDAwQUM5NEI4IC8qIFNWR0FuaW1hdGVkQ29s
b3IuY3BwICovLAogCQkJCTQzQTYyNUY2MTNCMzMwNDAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZENv
bG9yLmggKi8sCkBAIC0zMDg2Myw2ICszMDg2Miw4IEBACiAJCQkJNDlFOTExQzcwRUY4NkQ0NzAw
OUQwQ0FGIC8qIE1hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNCQzhEQUQxQUFBMzAyMjAwRTFDODAzIC8qIE1lZGlhQWNjZXNzaWJpbGl0eVNvZnRMaW5rLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzFCQ0M2MTExMjRERkNCMDBCRTcwREQgLyogTWVkaWFDYW5T
dGFydExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRENDOUJDRjIyMzg3RTlBMDBGRkI1
MUMgLyogTWVkaWFDYXBhYmlsaXRpZXNEZWNvZGluZ0luZm8uaCBpbiBIZWFkZXJzICovLAorCQkJ
CUNEQ0M5QkQxMjIzODdFQUEwMEZGQjUxQyAvKiBNZWRpYUNhcGFiaWxpdGllc0VuY29kaW5nSW5m
by5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5M0ExN0QxNkUxQzAwNDIwQUExIC8qIE1lZGlh
Q29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzI1M0FCMTM1NEJCQkMwMDM2MEYy
QSAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREVCQ0NERDQx
NjY0NkVBRjAwQTQ1MkUxIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlcy5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0zMTkwOCw3ICszMTkwOSw2IEBACiAJCQkJQjIyMjc5NzcwRDAwQkYyMjAwNzFCNzgy
IC8qIFNWR0FuZ2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3QTBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg3Qjg0
OTYxMjcyQ0VDODAwQTE0NDE3IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCBpbiBIZWFkZXJzICovLAot
CQkJCTA4NTc5NzA5MTI3ODM5NEMwMEE4RUM1RiAvKiBTVkdBbmltYXRlZEJvb2xlYW4uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQzQTYyNUY4MTNCMzMwNDAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZENv
bG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEQ0NkNFMzEyN0FENUZDMDA4OTY5NEIgLyogU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzFGQjk2N0IxMzgzRDY0
NjAwQUM4QTRDIC8qIFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaCBpbiBI
ZWFkZXJzICovLApAQCAtMzIxNjYsNyArMzIxNjYsNiBAQAogCQkJCUM2NTA0NkE5MTY3QkZCNTUw
MENDMkE0RCAvKiBUZW1wbGF0ZUNvbnRlbnREb2N1bWVudEZyYWdtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkyNkU5NDRERDFBQzRCNEVBMDA3Qjg1QjUgLyogVGVybS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjU1MEI2QTYwOTlERjAyNzAwOTBENzgxIC8qIFRleHQuaCBpbiBIZWFkZXJzICovLAot
CQkJCUNEQ0M5QkQxMjIzODdFQUEwMEZGQjUxQyAvKiBNZWRpYUNhcGFiaWxpdGllc0VuY29kaW5n
SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMTcwOTlFNjQ5MjAwNTZFNTgxIC8qIFRl
eHRBZmZpbml0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U3QjJEQjUxNTg2QUJBRDAwOThCM0ZB
IC8qIFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1NERD
RTYxODgxMDUxRDAwM0VFREJCIC8qIFRleHRBdXRvU2l6aW5nLmggaW4gSGVhZGVycyAqLywKQEAg
LTMyMjYwLDcgKzMyMjU5LDYgQEAKIAkJCQk0OUU5MTFDNDBFRjg2RDQ3MDA5RDBDQUYgLyogVHJh
bnNmb3JtYXRpb25NYXRyaXguaCBpbiBIZWFkZXJzICovLAogCQkJCUZCNDg0RjREMTcxRjgyMUUw
MDA0MDc1NSAvKiBUcmFuc2Zvcm1GdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5RTkx
MUNFMEVGODZENDcwMDlEMENBRiAvKiBUcmFuc2Zvcm1PcGVyYXRpb24uaCBpbiBIZWFkZXJzICov
LAotCQkJCUNEQ0M5QkNGMjIzODdFOUEwMEZGQjUxQyAvKiBNZWRpYUNhcGFiaWxpdGllc0RlY29k
aW5nSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlFOTExRDAwRUY4NkQ0NzAwOUQwQ0FGIC8q
IFRyYW5zZm9ybU9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVEQjFCQzZBMTA3MTVB
NjQwMEVGQUE0OSAvKiBUcmFuc2Zvcm1Tb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5NDVC
RkQ0MTNDRjgwOTAwMENDM0IzOCAvKiBUcmFuc2Zvcm1TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhMzc1MTliZmUzMC4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEx
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkQm9vbGVhbi5oIgotCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmgiCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I6OlNWR0Fu
aW1hdGVkQm9vbGVhbkFuaW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQqIGFuaW1hdGlvbkVsZW1l
bnQsIFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KQotICAgIDogU1ZHQW5pbWF0ZWRUeXBlQW5p
bWF0b3IoQW5pbWF0ZWRCb29sZWFuLCBhbmltYXRpb25FbGVtZW50LCBjb250ZXh0RWxlbWVudCkK
LXsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRCb29s
ZWFuQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCi17
Ci0gICAgcmV0dXJuIFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPGJv
b2w+Ojpmcm9tU3RyaW5nKHN0cmluZykpOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9u
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKLXsK
LSAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZEJvb2xlYW4+KGFu
aW1hdGVkVHlwZXMpOwotfQotCi12b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpzdG9w
QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCi17Ci0gICAgc3RvcEFuaW1WYWxBbmltYXRpb25Gb3JUeXBlPFNWR0FuaW1h
dGVkQm9vbGVhbj4oYW5pbWF0ZWRUeXBlcyk7Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFu
QW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKLXsKLSAg
ICByZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRCb29sZWFuPihhbmltYXRlZFR5cGVzLCB0
eXBlKTsKLX0KLQotdm9pZCBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6YW5pbVZhbFdpbGxD
aGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVz
KQotewotICAgIGFuaW1WYWxXaWxsQ2hhbmdlRm9yVHlwZTxTVkdBbmltYXRlZEJvb2xlYW4+KGFu
aW1hdGVkVHlwZXMpOwotfQotCi12b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjphbmlt
VmFsRGlkQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0
ZWRUeXBlcykKLXsKLSAgICBhbmltVmFsRGlkQ2hhbmdlRm9yVHlwZTxTVkdBbmltYXRlZEJvb2xl
YW4+KGFuaW1hdGVkVHlwZXMpOwotfQotCi12b2lkIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9y
OjphZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSopCi17
Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0ZWRCb29sZWFu
QW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWdu
ZWQsIFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0ZWRUeXBlKiB0bywgU1ZHQW5pbWF0
ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiBhbmltYXRlZCkKLXsKLSAgICBBU1NFUlQobV9hbmlt
YXRpb25FbGVtZW50KTsKLSAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7Ci0KLSAgICBjb25z
dCBhdXRvIGZyb21Cb29sZWFuID0gKG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgp
ID09IEFuaW1hdGlvbk1vZGU6OlRvID8gYW5pbWF0ZWQgOiBmcm9tKS0+YXM8Ym9vbD4oKTsKLSAg
ICBjb25zdCBhdXRvIHRvQm9vbGVhbiA9IHRvLT5hczxib29sPigpOwotICAgIGF1dG8mIGFuaW1h
dGVkQm9vbGVhbiA9IGFuaW1hdGVkLT5hczxib29sPigpOwotCi0gICAgbV9hbmltYXRpb25FbGVt
ZW50LT5hbmltYXRlRGlzY3JldGVUeXBlPGJvb2w+KHBlcmNlbnRhZ2UsIGZyb21Cb29sZWFuLCB0
b0Jvb2xlYW4sIGFuaW1hdGVkQm9vbGVhbik7Ci19Ci0KLWZsb2F0IFNWR0FuaW1hdGVkQm9vbGVh
bkFuaW1hdG9yOjpjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
KQotewotICAgIC8vIE5vIHBhY2VkIGFuaW1hdGlvbnMgZm9yIGJvb2xlYW4uCi0gICAgcmV0dXJu
IC0xOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRC
b29sZWFuLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3NTkwOWYwNzZiLi4wMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw1MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGlt
aXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
Ci0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJT
VkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVk
VHlwZUFuaW1hdG9yLmgiCi0jaW5jbHVkZSAiU1ZHQXR0cmlidXRlQWNjZXNzb3IuaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBTVkdBbmltYXRpb25FbGVtZW50OwotCi11c2luZyBT
VkdBbmltYXRlZEJvb2xlYW4gPSBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZjxib29s
PjsKLXVzaW5nIFNWR0FuaW1hdGVkQm9vbGVhbkF0dHJpYnV0ZSA9IFNWR0FuaW1hdGVkQXR0cmli
dXRlPFNWR0FuaW1hdGVkQm9vbGVhbj47Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIE93bmVyVHlwZT4K
LXVzaW5nIFNWR0FuaW1hdGVkQm9vbGVhbkF0dHJpYnV0ZUFjY2Vzc29yID0gU1ZHQW5pbWF0ZWRB
dHRyaWJ1dGVBY2Nlc3NvcjxPd25lclR5cGUsIFNWR0FuaW1hdGVkQm9vbGVhbkF0dHJpYnV0ZSwg
QW5pbWF0ZWRCb29sZWFuPjsKLQotY2xhc3MgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3IgZmlu
YWwgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IgewotcHVibGljOgotICAgIFNWR0Fu
aW1hdGVkQm9vbGVhbkFuaW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQqLCBTVkdFbGVtZW50Kik7
Ci0KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3Ry
aW5nKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IHN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3BBbmltVmFsQW5pbWF0aW9uKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIG92ZXJyaWRlOwotICAgIHZvaWQg
cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYsIFNWR0FuaW1hdGVkVHlwZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgYW5pbVZhbFdpbGxDaGFu
Z2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0Jikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBhbmltVmFsRGlkQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBhZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlw
ZSosIFNWR0FuaW1hdGVkVHlwZSopIG92ZXJyaWRlOwotICAgIHZvaWQgY2FsY3VsYXRlQW5pbWF0
ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0
ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRU
eXBlKikgb3ZlcnJpZGU7Ci0gICAgZmxvYXQgY2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5n
JiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKSBvdmVycmlkZTsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVu
dC5oCmluZGV4IDZmNDAzMmUxZTliLi43NzMwODhiNjdiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0aW9uRWxlbWVudC5oCkBAIC0yNCw3ICsyNCw2IEBACiAKICNwcmFnbWEgb25jZQog
Ci0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuLmgiCiAjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZC5oIgogI2luY2x1ZGUgIlNWR1NNSUxFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiU1ZHVGVzdHMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRv
ckZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRvckZhY3RvcnkuaAppbmRl
eCAwZjQ1NzYzMzE0YS4uMmI4MjcxN2Y0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRvckZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
b3JGYWN0b3J5LmgKQEAgLTIwLDcgKzIwLDYgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRBbmdsZS5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbi5oIgogI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkQ29sb3IuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1lcmF0
aW9uLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKQEAgLTUwLDcgKzQ5LDcgQEAg
cHVibGljOgogICAgICAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CiAgICAgICAgICAgICByZXR1cm4g
c3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3I+KGFuaW1hdGlvbkVsZW1l
bnQsIGNvbnRleHRFbGVtZW50KTsKICAgICAgICAgY2FzZSBBbmltYXRlZEJvb2xlYW46Ci0gICAg
ICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRv
cj4oYW5pbWF0aW9uRWxlbWVudCwgY29udGV4dEVsZW1lbnQpOworICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgICAgIGNhc2UgQW5pbWF0ZWRDb2xvcjoKICAgICAgICAgICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvcj4oKmFuaW1hdGlvbkVs
ZW1lbnQsICpjb250ZXh0RWxlbWVudCk7CiAgICAgICAgIGNhc2UgQW5pbWF0ZWRFbnVtZXJhdGlv
bjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaAppbmRleCA0NGYwNjA0NDU5
OC4uMDNjMWFkZGY3ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0
aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgK
QEAgLTIxLDcgKzIxLDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdBbmltYXRl
ZEJvb2xlYW4uaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9uLmgiCiAjaW5jbHVk
ZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oIgogI2luY2x1ZGUgIlNWR0dyYXBoaWNz
RWxlbWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgKaW5kZXggMTVlOTk1
OTQ4YjkuLjhkNjk1Y2FmMTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vy
c29yRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgK
QEAgLTIxLDcgKzIxLDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdBbmltYXRl
ZEJvb2xlYW4uaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aC5oIgogI2luY2x1ZGUgIlNW
R0FuaW1hdGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRGVmc0VsZW1lbnQuaAppbmRleCBmYzdjMmE3ZGY5MC4uM2FiNGU5OWUzYzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oCkBAIC0yMSw3ICsyMSw2IEBACiAKICNwcmFnbWEgb25j
ZQogCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuLmgiCiAjaW5jbHVkZSAiU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZC5oIgogI2luY2x1ZGUgIlNWR0dyYXBoaWNzRWxlbWVudC5oIgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZC5jcHAKaW5kZXggM2ExZTU2ZGQ2MjMuLmFmMjYxYjY4NjEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuY3BwCkBAIC0yOSwyMiAr
MjksMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkOjpTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50KQogICAgIDogbV9jb250ZXh0RWxlbWVudCgqY29udGV4dEVsZW1lbnQpCisgICAgLCBtX2V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQoU1ZHQW5pbWF0ZWRCb29sZWFuOjpjcmVhdGUoY29udGV4
dEVsZW1lbnQpKQogewotICAgIHJlZ2lzdGVyQXR0cmlidXRlcygpOwotfQotCi12b2lkIFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnJlZ2lzdGVyQXR0cmlidXRlcygpCi17Ci0gICAgYXV0
byYgcmVnaXN0cnkgPSBhdHRyaWJ1dGVSZWdpc3RyeSgpOwotICAgIGlmICghcmVnaXN0cnkuaXNF
bXB0eSgpKQotICAgICAgICByZXR1cm47Ci0gICAgcmVnaXN0cnkucmVnaXN0ZXJBdHRyaWJ1dGU8
U1ZHTmFtZXM6OmV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRBdHRyLCAmU1ZHRWxsaXBzZUVsZW1l
bnQ6Om1fZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZD4oKTsKKyAgICBzdGF0aWMgc3RkOjpvbmNl
X2ZsYWcgb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKKyAgICAg
ICAgUHJvcGVydHlSZWdpc3RyeTo6cmVnaXN0ZXJQcm9wZXJ0eTxTVkdOYW1lczo6ZXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZEF0dHIsICZTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjptX2V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ+KCk7CisgICAgfSk7CiB9CiAKIHZvaWQgU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAobmFtZSA9PSBTVkdO
YW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHIpCi0gICAgICAgIHNldEV4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQodmFsdWUgPT0gInRydWUiKTsKKyAgICAgICAgbV9leHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkLT5zZXRCYXNlVmFsSW50ZXJuYWwodmFsdWUgPT0gInRydWUiKTsKIH0K
IAogdm9pZCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgKaW5kZXggOTA5Y2JhYTkxMzkuLmVhZWIy
MmFhYmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkLmgKQEAgLTUwLDEwICs1MCw4IEBAIHB1YmxpYzoKIAogICAgIHVzaW5nIFByb3Bl
cnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZD47CiAKLSAgICBhdXRvIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRBbmltYXRl
ZCgpIHsgcmV0dXJuIG1fZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5hbmltYXRlZFByb3BlcnR5
KGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KLQotICAgIGJvb2wgZXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC52YWx1
ZSgpOyB9Ci0gICAgdm9pZCBzZXRFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKGJvb2wgZXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZCkgeyBtX2V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuc2V0VmFs
dWUoZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCk7IH0KKyAgICBib29sIGV4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQoKSBjb25zdCB7IHJldHVybiBtX2V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQt
PmN1cnJlbnRWYWx1ZSgpOyB9CisgICAgU1ZHQW5pbWF0ZWRCb29sZWFuJiBleHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkQW5pbWF0ZWQoKSB7IHJldHVybiBtX2V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQ7IH0KIAogcHJvdGVjdGVkOgogICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQoU1ZH
RWxlbWVudCogY29udGV4dEVsZW1lbnQpOwpAQCAtNzMsMTEgKzcxLDEwIEBAIHByb3RlY3RlZDoK
ICAgICBib29sIGhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcygpIGNvbnN0OwogCiBwcml2YXRl
OgotICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQXR0cmlidXRlcygpOwogICAgIEF0dHJpYnV0ZU93
bmVyUHJveHkgYXR0cmlidXRlT3duZXJQcm94eSgpIHsgcmV0dXJuIHsgKnRoaXMsIG1fY29udGV4
dEVsZW1lbnQgfTsgfQogICAgIAogICAgIFNWR0VsZW1lbnQmIG1fY29udGV4dEVsZW1lbnQ7Ci0g
ICAgU1ZHQW5pbWF0ZWRCb29sZWFuQXR0cmlidXRlIG1fZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZDsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRCb29sZWFuPiBtX2V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAppbmRleCBmOWM0MWZkZjkyYi4uZGE3
MjZkNmNkOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0
cml4RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRy
aXhFbGVtZW50LmNwcApAQCAtNDYsNiArNDYsNyBAQCBpbmxpbmUgU1ZHRkVDb252b2x2ZU1hdHJp
eEVsZW1lbnQ6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbQog
ICAgICAgICBQcm9wZXJ0eVJlZ2lzdHJ5OjpyZWdpc3RlclByb3BlcnR5PFNWR05hbWVzOjpvcmRl
ckF0dHIsICZTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6bV9vcmRlclgsICZTVkdGRUNvbnZv
bHZlTWF0cml4RWxlbWVudDo6bV9vcmRlclk+KCk7CiAgICAgICAgIFByb3BlcnR5UmVnaXN0cnk6
OnJlZ2lzdGVyUHJvcGVydHk8U1ZHTmFtZXM6OnRhcmdldFhBdHRyLCAmU1ZHRkVDb252b2x2ZU1h
dHJpeEVsZW1lbnQ6Om1fdGFyZ2V0WD4oKTsKICAgICAgICAgUHJvcGVydHlSZWdpc3RyeTo6cmVn
aXN0ZXJQcm9wZXJ0eTxTVkdOYW1lczo6dGFyZ2V0WUF0dHIsICZTVkdGRUNvbnZvbHZlTWF0cml4
RWxlbWVudDo6bV90YXJnZXRZPigpOworICAgICAgICBQcm9wZXJ0eVJlZ2lzdHJ5OjpyZWdpc3Rl
clByb3BlcnR5PFNWR05hbWVzOjpwcmVzZXJ2ZUFscGhhQXR0ciwgJlNWR0ZFQ29udm9sdmVNYXRy
aXhFbGVtZW50OjptX3ByZXNlcnZlQWxwaGE+KCk7CiAgICAgfSk7CiB9CiAKQEAgLTc5LDcgKzgw
LDYgQEAgdm9pZCBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6cmVnaXN0ZXJBdHRyaWJ1dGVz
KCkKICAgICByZWdpc3RyeS5yZWdpc3RlckF0dHJpYnV0ZTxTVkdOYW1lczo6a2VybmVsVW5pdExl
bmd0aEF0dHIsCiAgICAgICAgICZTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6a2VybmVsVW5p
dExlbmd0aFhJZGVudGlmaWVyLCAmU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6Om1fa2VybmVs
VW5pdExlbmd0aFgsCiAgICAgICAgICZTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6a2VybmVs
VW5pdExlbmd0aFlJZGVudGlmaWVyLCAmU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6Om1fa2Vy
bmVsVW5pdExlbmd0aFk+KCk7Ci0gICAgcmVnaXN0cnkucmVnaXN0ZXJBdHRyaWJ1dGU8U1ZHTmFt
ZXM6OnByZXNlcnZlQWxwaGFBdHRyLCAmU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6Om1fcHJl
c2VydmVBbHBoYT4oKTsKIH0KIAogdm9pZCBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5n
JiB2YWx1ZSkKQEAgLTE1Miw5ICsxNTIsOSBAQCB2b2lkIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdAogCiAg
ICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnByZXNlcnZlQWxwaGFBdHRyKSB7CiAgICAgICAgIGlm
ICh2YWx1ZSA9PSAidHJ1ZSIpCi0gICAgICAgICAgICBtX3ByZXNlcnZlQWxwaGEuc2V0VmFsdWUo
dHJ1ZSk7CisgICAgICAgICAgICBtX3ByZXNlcnZlQWxwaGEtPnNldEJhc2VWYWxJbnRlcm5hbCh0
cnVlKTsKICAgICAgICAgZWxzZSBpZiAodmFsdWUgPT0gImZhbHNlIikKLSAgICAgICAgICAgIG1f
cHJlc2VydmVBbHBoYS5zZXRWYWx1ZShmYWxzZSk7CisgICAgICAgICAgICBtX3ByZXNlcnZlQWxw
aGEtPnNldEJhc2VWYWxJbnRlcm5hbChmYWxzZSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAg
IGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLnJlcG9ydFdhcm5pbmcoImZlQ29udm9s
dmVNYXRyaXg6IHByb2JsZW0gcGFyc2luZyBwcmVzZXJ2ZUFscGhhQXR0cj1cIiIgKyB2YWx1ZSAg
KyAiXCIuIEZpbHRlcmVkIGVsZW1lbnQgd2lsbCBub3QgYmUgZGlzcGxheWVkLiIpOwogICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1h
dHJpeEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxl
bWVudC5oCmluZGV4IDlmNjdjZjg1NjM4Li43MGZiOWQ3MzUwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmgKQEAgLTc4LDcgKzc4LDcgQEAg
cHVibGljOgogICAgIEVkZ2VNb2RlVHlwZSBlZGdlTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fZWRn
ZU1vZGUuY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KICAgICBmbG9hdCBr
ZXJuZWxVbml0TGVuZ3RoWCgpIGNvbnN0IHsgcmV0dXJuIG1fa2VybmVsVW5pdExlbmd0aFguY3Vy
cmVudFZhbHVlKGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KICAgICBmbG9hdCBrZXJuZWxVbml0
TGVuZ3RoWSgpIGNvbnN0IHsgcmV0dXJuIG1fa2VybmVsVW5pdExlbmd0aFkuY3VycmVudFZhbHVl
KGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KLSAgICBib29sIHByZXNlcnZlQWxwaGEoKSBjb25z
dCB7IHJldHVybiBtX3ByZXNlcnZlQWxwaGEuY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93bmVyUHJv
eHkoKSk7IH0KKyAgICBib29sIHByZXNlcnZlQWxwaGEoKSBjb25zdCB7IHJldHVybiBtX3ByZXNl
cnZlQWxwaGEtPmN1cnJlbnRWYWx1ZSgpOyB9CiAKICAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRTdHJp
bmc+IGluMUFuaW1hdGVkKCkgeyByZXR1cm4gbV9pbjEuYW5pbWF0ZWRQcm9wZXJ0eShhdHRyaWJ1
dGVPd25lclByb3h5KCkpOyB9CiAgICAgU1ZHQW5pbWF0ZWRJbnRlZ2VyJiBvcmRlclhBbmltYXRl
ZCgpIHsgcmV0dXJuIG1fb3JkZXJYOyB9CkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICBS
ZWZQdHI8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4gZWRnZU1vZGVBbmltYXRlZCgpIHsgcmV0dXJu
IG1fZWRnZU1vZGUuYW5pbWF0ZWRQcm9wZXJ0eShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CiAg
ICAgUmVmUHRyPFNWR0FuaW1hdGVkTnVtYmVyPiBrZXJuZWxVbml0TGVuZ3RoWEFuaW1hdGVkKCkg
eyByZXR1cm4gbV9rZXJuZWxVbml0TGVuZ3RoWC5hbmltYXRlZFByb3BlcnR5KGF0dHJpYnV0ZU93
bmVyUHJveHkoKSk7IH0KICAgICBSZWZQdHI8U1ZHQW5pbWF0ZWROdW1iZXI+IGtlcm5lbFVuaXRM
ZW5ndGhZQW5pbWF0ZWQoKSB7IHJldHVybiBtX2tlcm5lbFVuaXRMZW5ndGhZLmFuaW1hdGVkUHJv
cGVydHkoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQotICAgIFJlZlB0cjxTVkdBbmltYXRlZEJv
b2xlYW4+IHByZXNlcnZlQWxwaGFBbmltYXRlZCgpIHsgcmV0dXJuIG1fcHJlc2VydmVBbHBoYS5h
bmltYXRlZFByb3BlcnR5KGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KKyAgICBTVkdBbmltYXRl
ZEJvb2xlYW4mIHByZXNlcnZlQWxwaGFBbmltYXRlZCgpIHsgcmV0dXJuIG1fcHJlc2VydmVBbHBo
YTsgfQogCiBwcml2YXRlOgogICAgIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpAQCAtOTksNyArOTksOCBAQCBwcml2YXRlOgogICAg
IHVzaW5nIEF0dHJpYnV0ZU93bmVyUHJveHkgPSBTVkdBdHRyaWJ1dGVPd25lclByb3h5SW1wbDxT
VkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzPjsKICAgICBzdGF0aWMgQXR0cmlidXRlT3duZXJQcm94eTo6QXR0cmlidXRlUmVnaXN0
cnkmIGF0dHJpYnV0ZVJlZ2lzdHJ5KCkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6YXR0
cmlidXRlUmVnaXN0cnkoKTsgfQogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQXR0cmlidXRlcygp
OwotICAgIAorICAgIGNvbnN0IFNWR0F0dHJpYnV0ZU93bmVyUHJveHkmIGF0dHJpYnV0ZU93bmVy
UHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2F0dHJpYnV0ZU93bmVyUHJveHk7IH0KKwog
ICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlcz47CiAgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3RyeSYgcHJvcGVydHlSZWdpc3RyeSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdpc3RyeTsgfQogCkBAIC0xMDgsNyAr
MTA5LDYgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6Omlz
S25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkgfHwgUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93
bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsKICAgICB9CiAKLSAgICBjb25zdCBTVkdBdHRyaWJ1
dGVPd25lclByb3h5JiBhdHRyaWJ1dGVPd25lclByb3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9hdHRyaWJ1dGVPd25lclByb3h5OyB9CiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIApAQCAt
MTMxLDcgKzEzMSw3IEBAIHByaXZhdGU6CiAgICAgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkF0dHJp
YnV0ZTxFZGdlTW9kZVR5cGU+IG1fZWRnZU1vZGUgeyBFREdFTU9ERV9EVVBMSUNBVEUgfTsKICAg
ICBTVkdBbmltYXRlZE51bWJlckF0dHJpYnV0ZSBtX2tlcm5lbFVuaXRMZW5ndGhYOwogICAgIFNW
R0FuaW1hdGVkTnVtYmVyQXR0cmlidXRlIG1fa2VybmVsVW5pdExlbmd0aFk7Ci0gICAgU1ZHQW5p
bWF0ZWRCb29sZWFuQXR0cmlidXRlIG1fcHJlc2VydmVBbHBoYTsKKyAgICBSZWY8U1ZHQW5pbWF0
ZWRCb29sZWFuPiBtX3ByZXNlcnZlQWxwaGEgeyBTVkdBbmltYXRlZEJvb2xlYW46OmNyZWF0ZSh0
aGlzKSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVJbWFnZUVsZW1lbnQuaAppbmRleCBjYmQyMDk4ODFjZi4uNTUwYmY5MDllYjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCkBAIC0yMyw3ICsyMyw2IEBACiAKICNpbmNs
dWRlICJDYWNoZWRJbWFnZUNsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxl
LmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgiCiAjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZC5oIgogI2luY2x1ZGUgIlNWR0ZFSW1hZ2UuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRF
bGVtZW50LmgKaW5kZXggNTNjYmFiMTEwYjYuLjc1MjFjY2E4MGJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRm9udEVsZW1lbnQuaApAQCAtMjQsNyArMjQsNiBAQAogCiAjaWYgRU5BQkxFKFNWR19GT05U
UykKIAotI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbi5oIgogI2luY2x1ZGUgIlNWR0VsZW1l
bnQuaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVk
ZSAiU1ZHUGFyc2VyVXRpbGl0aWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWdu
T2JqZWN0RWxlbWVudC5oCmluZGV4IGE2OGI0OGZlMjVkLi43OTlmYzgyM2FhOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKQEAgLTE5LDcgKzE5LDYg
QEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW4uaCIKICNp
bmNsdWRlICJTVkdBbmltYXRlZExlbmd0aC5oIgogI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQuaCIKICNpbmNsdWRlICJTVkdHcmFwaGljc0VsZW1lbnQuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dFbGVtZW50LmgKaW5kZXggMzQ4YjA5N2M0NGYuLjUwZTQyMjc2YjZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR0VsZW1lbnQuaApAQCAtMjEsNyArMjEsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbi5oIgogI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQuaCIKICNpbmNsdWRlICJTVkdHcmFwaGljc0VsZW1lbnQuaCIKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5oCmluZGV4IGU3NjVlNWQxNmIxLi45NGU1YjE0
NjM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuaApAQCAtMjIsNyAr
MjIsNiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJHcmFkaWVudC5oIgotI2luY2x1ZGUg
IlNWR0FuaW1hdGVkQm9vbGVhbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24u
aCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCIKICNpbmNsdWRlICJTVkdF
bGVtZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmgKaW5kZXggYTFlOWZlY2Jk
M2QuLjZlYzhiZDhiMzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5oCkBAIC0y
MCw3ICsyMCw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29s
ZWFuLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJTVkdFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKaW5kZXggYjBmZTQ5YjYwYjkuLmI4OWUwOWMzNjJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKQEAgLTIyLDcgKzIyLDYgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRBbmdsZS5oIgotI2luY2x1ZGUg
IlNWR0FuaW1hdGVkQm9vbGVhbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24u
aCIKICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpby5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01hc2tFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaAppbmRl
eCAzYTY3MGY0ZTZjNC4uOWI5M2RkNGM0YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXNrRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVu
dC5oCkBAIC0yMCw3ICsyMCw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRCb29sZWFuLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIgogI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoLmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAppbmRleCA4YmZkZWVmYzhhNS4uZjgwMDA3ZTI4MDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCkBAIC0yMiw3ICsyMiw2IEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgIlBhdGguaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xl
YW4uaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlci5oIgogI2luY2x1ZGUgIlNWR0FuaW1h
dGVkUGF0aC5oIgogI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKaW5kZXggN2IwMTk4NDQ1YTkuLjE5ZDli
OTFkNzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaApAQCAtMjEsNyAr
MjEsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbi5o
IgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCIKICNpbmNsdWRlICJTVkdBbmlt
YXRlZExlbmd0aC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaAppbmRleCBkOGZmNDI3MmU3ZS4uNThjZTFk
OTAzNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCkBAIC0yMSw3ICsyMSw2IEBA
CiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuLmgiCiAjaW5j
bHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHR2VvbWV0cnlFbGVtZW50LmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1NWR0VsZW1lbnQuaAppbmRleCBmZDAxNjM1MzM2Zi4uMTlkYzVlMDA4YzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NWR0VsZW1lbnQuaApAQCAtMjIsNyArMjIsNiBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuLmgi
CiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFBy
ZXNlcnZlQXNwZWN0UmF0aW8uaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFJlY3QuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCmluZGV4IDZmOGZkZGU5YTFiLi42NzYwY2NkMzE5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCkBAIC0yMSw3ICsyMSw2IEBA
CiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuLmgiCiAjaW5j
bHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAjaW5j
bHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
d2l0Y2hFbGVtZW50LmgKaW5kZXggMDZiMzQ2NzAyNWMuLmMzZDMzMmNkODVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmgKQEAgLTIxLDcgKzIxLDYgQEAKIAogI3ByYWdtYSBv
bmNlCiAKLSNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW4uaCIKICNpbmNsdWRlICJTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHR3JhcGhpY3NFbGVtZW50Lmgi
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCmluZGV4IDM1MzI0MzJmZDI0Li5l
MWYyOGYxNGM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCkBAIC0yMSw3
ICsyMSw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFu
LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgiCiAjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRSZWN0LmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oCmluZGV4IGFhMDQ0MDBkYjQzLi44ZGNh
YzY0NWNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaApA
QCAtMjEsNyArMjEsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR0FuaW1hdGVk
Qm9vbGVhbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCIKICNpbmNsdWRl
ICJTVkdBbmltYXRlZExlbmd0aC5oIgogI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCmluZGV4IDFmYjRmOTQxYWFmLi5k
NmVkYWZlYzdkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCkBAIC0yMyw3ICsyMyw2
IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIkNhY2hl
ZFNWR0RvY3VtZW50Q2xpZW50LmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuLmgiCiAj
aW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHR3JhcGhpY3NFbGVtZW50LmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5QWNj
ZXNzb3JJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBy
b3BlcnR5QWNjZXNzb3JJbXBsLmgKaW5kZXggYTgxZmZjM2ZhOTIuLmM3YTgxYzgxN2JhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5
QWNjZXNzb3JJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRQcm9wZXJ0eUFjY2Vzc29ySW1wbC5oCkBAIC0zMiw2ICszMiwyOCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK3RlbXBsYXRlPHR5cGVuYW1lIE93bmVyVHlwZT4KK2NsYXNzIFNWR0Fu
aW1hdGVkQm9vbGVhbkFjY2Vzc29yIGZpbmFsIDogcHVibGljIFNWR0FuaW1hdGVkUHJvcGVydHlB
Y2Nlc3NvcjxPd25lclR5cGUsIFNWR0FuaW1hdGVkQm9vbGVhbj4geworICAgIHVzaW5nIEJhc2Ug
PSBTVkdBbmltYXRlZFByb3BlcnR5QWNjZXNzb3I8T3duZXJUeXBlLCBTVkdBbmltYXRlZEJvb2xl
YW4+OworICAgIHVzaW5nIEJhc2U6OnByb3BlcnR5OworCitwdWJsaWM6CisgICAgdXNpbmcgQmFz
ZTo6QmFzZTsKKyAgICB0ZW1wbGF0ZTxSZWY8U1ZHQW5pbWF0ZWRCb29sZWFuPiBPd25lclR5cGU6
Oipwcm9wZXJ0eT4KKyAgICBjb25zdGV4cHIgc3RhdGljIGNvbnN0IFNWR01lbWJlckFjY2Vzc29y
PE93bmVyVHlwZT4mIHNpbmdsZXRvbigpIHsgcmV0dXJuIEJhc2U6OnRlbXBsYXRlIHNpbmdsZXRv
bjxTVkdBbmltYXRlZEJvb2xlYW5BY2Nlc3NvciwgcHJvcGVydHk+KCk7IH0KKworcHJpdmF0ZToK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQXR0cmlidXRlQW5pbWF0b3I+IGNyZWF0ZUFuaW1hdG9y
KE93bmVyVHlwZSYgb3duZXIsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFu
aW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUgY2FsY01vZGUsIGJvb2wgaXNBY2N1
bXVsYXRlZCwgYm9vbCBpc0FkZGl0aXZlKSBjb25zdCBmaW5hbAorICAgIHsKKyAgICAgICAgcmV0
dXJuIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpjcmVhdGUoYXR0cmlidXRlTmFtZSwgcHJv
cGVydHkob3duZXIpLCBhbmltYXRpb25Nb2RlLCBjYWxjTW9kZSwgaXNBY2N1bXVsYXRlZCwgaXNB
ZGRpdGl2ZSk7CisgICAgfQorCisgICAgdm9pZCBhcHBlbmRBbmltYXRlZEluc3RhbmNlKE93bmVy
VHlwZSYgb3duZXIsIFNWR0F0dHJpYnV0ZUFuaW1hdG9yJiBhbmltYXRvcikgY29uc3QgZmluYWwK
KyAgICB7CisgICAgICAgIHN0YXRpY19jYXN0PFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yJj4o
YW5pbWF0b3IpLmFwcGVuZEFuaW1hdGVkSW5zdGFuY2UocHJvcGVydHkob3duZXIpKTsKKyAgICB9
Cit9OworICAgIAogdGVtcGxhdGU8dHlwZW5hbWUgT3duZXJUeXBlPgogY2xhc3MgU1ZHQW5pbWF0
ZWRJbnRlZ2VyQWNjZXNzb3IgZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFjY2Vz
c29yPE93bmVyVHlwZSwgU1ZHQW5pbWF0ZWRJbnRlZ2VyPiB7CiAgICAgdXNpbmcgQmFzZSA9IFNW
R0FuaW1hdGVkUHJvcGVydHlBY2Nlc3NvcjxPd25lclR5cGUsIFNWR0FuaW1hdGVkSW50ZWdlcj47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBy
b3BlcnR5QW5pbWF0b3JJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFByb3BlcnR5QW5pbWF0b3JJbXBsLmgKaW5kZXggNWJiMTU3ODk4YTQuLmFmMzM0NTZm
YmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZFByb3BlcnR5QW5pbWF0b3JJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oCkBAIC0yOCw2ICsyOCw3IEBACiAj
aW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9yLmgiCiAjaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRQcm9wZXJ0eUltcGwuaCIKICNpbmNsdWRlICJTVkdBbmltYXRpb25BZGRpdGl2ZVZhbHVl
RnVuY3Rpb25JbXBsLmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbklt
cGwuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNiw2ICszNywyNCBAQCBjbGFzcyBT
VkdBbmltYXRlZEludGVnZXJQYWlyQW5pbWF0b3I7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBBbmltYXRl
ZFByb3BlcnR5QW5pbWF0b3IxLCB0eXBlbmFtZSBBbmltYXRlZFByb3BlcnR5QW5pbWF0b3IyPgog
Y2xhc3MgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBbmltYXRvcjsKIAorY2xhc3MgU1ZHQW5pbWF0
ZWRCb29sZWFuQW5pbWF0b3IgZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1h
dG9yPFNWR0FuaW1hdGVkQm9vbGVhbiwgU1ZHQW5pbWF0aW9uQm9vbGVhbkZ1bmN0aW9uPiAgewor
ICAgIHVzaW5nIEJhc2UgPSBTVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3I8U1ZHQW5pbWF0ZWRC
b29sZWFuLCBTVkdBbmltYXRpb25Cb29sZWFuRnVuY3Rpb24+OworICAgIHVzaW5nIEJhc2U6OkJh
c2U7CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0cmlidXRlTmFtZSwgUmVmPFNWR0FuaW1hdGVkQm9vbGVhbj4mIGFuaW1hdGVkLCBBbmlt
YXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2RlIGNhbGNNb2RlLCBib29sIGlzQWNjdW11
bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBzdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0b3I+KG5ldyBTVkdBbmltYXRlZEJvb2xlYW5B
bmltYXRvcihhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZCwgYW5pbWF0aW9uTW9kZSwgY2FsY01vZGUs
IGlzQWNjdW11bGF0ZWQsIGlzQWRkaXRpdmUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdm9p
ZCBwcm9ncmVzcyhTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBmbG9hdCBwZXJjZW50YWdlLCB1
bnNpZ25lZCByZXBlYXRDb3VudCkgZmluYWwKKyAgICB7CisgICAgICAgIGJvb2wmIGFuaW1hdGVk
ID0gbV9hbmltYXRlZC0+YW5pbVZhbCgpOworICAgICAgICBtX2Z1bmN0aW9uLnByb2dyZXNzKHRh
cmdldEVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBhbmltYXRlZCk7CisgICAgfQor
fTsKKwogY2xhc3MgU1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3IgZmluYWwgOiBwdWJsaWMgU1ZH
QW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9yPFNWR0FuaW1hdGVkSW50ZWdlciwgU1ZHQW5pbWF0aW9u
SW50ZWdlckZ1bmN0aW9uPiB7CiAgICAgZnJpZW5kIGNsYXNzIFNWR0FuaW1hdGVkUHJvcGVydHlQ
YWlyQW5pbWF0b3I8U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3IsIFNWR0FuaW1hdGVkSW50ZWdl
ckFuaW1hdG9yPjsKICAgICBmcmllbmQgY2xhc3MgU1ZHQW5pbWF0ZWRJbnRlZ2VyUGFpckFuaW1h
dG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRQcm9wZXJ0eUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkUHJvcGVydHlJbXBsLmgKaW5kZXggMDEyOTE1NDZiNDQuLjhlZjc3MjZiYWIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5SW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVy
dHlJbXBsLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU1ZH
QW5pbWF0ZWRBbmdsZS5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbi5oIgogI2luY2x1
ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0
aC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oIgpAQCAtNDEsNiArNDAsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3VzaW5nIFNWR0FuaW1hdGVkQm9vbGVhbiA9IFNW
R0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHk8Ym9vbD47CiB1c2luZyBTVkdBbmltYXRlZEludGVn
ZXIgPSBTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5PGludD47CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGlvbkRpc2NyZXRlRnVuY3Rp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGlvbkRpc2NyZXRl
RnVuY3Rpb24uaAppbmRleCA4YjEzNzg5MTc5MS4uOTY3MDdiZDc3ZmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGlvbkRpc2NyZXRlRnVuY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRpb25EaXNjcmV0
ZUZ1bmN0aW9uLmgKQEAgLTEgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAx
OSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLwogCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCit0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGU+CitjbGFzcyBTVkdBbmltYXRpb25EaXNj
cmV0ZUZ1bmN0aW9uIDogcHVibGljIFNWR0FuaW1hdGlvbkZ1bmN0aW9uIHsKK3B1YmxpYzoKKyAg
ICBTVkdBbmltYXRpb25EaXNjcmV0ZUZ1bmN0aW9uKEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9k
ZSwgQ2FsY01vZGUsIGJvb2wsIGJvb2wpCisgICAgICAgIDogU1ZHQW5pbWF0aW9uRnVuY3Rpb24o
YW5pbWF0aW9uTW9kZSkKKyAgICB7CisgICAgfQorCisgICAgYm9vbCBpc0Rpc2NyZXRlKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgdm9pZCBzZXRUb0F0RW5kT2ZEdXJh
dGlvblZhbHVlKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlCisgICAgeworICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICB2b2lkIHNldEZyb21BbmRCeVZhbHVlcyhTVkdF
bGVtZW50KiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUKKyAgICB7Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIHZvaWQgcHJvZ3Jlc3Mo
U1ZHRWxlbWVudCosIGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkLCBWYWx1ZVR5cGUmIGFuaW1h
dGVkKQorICAgIHsKKyAgICAgICAgaWYgKChtX2FuaW1hdGlvbk1vZGUgPT0gQW5pbWF0aW9uTW9k
ZTo6RnJvbVRvICYmIHBlcmNlbnRhZ2UgPiAwLjUpIHx8IG1fYW5pbWF0aW9uTW9kZSA9PSBBbmlt
YXRpb25Nb2RlOjpUbyB8fCBwZXJjZW50YWdlID09IDEpCisgICAgICAgICAgICBhbmltYXRlZCA9
IG1fdG87CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGFuaW1hdGVkID0gbV9mcm9tOworICAg
IH0KKworcHJvdGVjdGVkOgorICAgIFZhbHVlVHlwZSBtX2Zyb207CisgICAgVmFsdWVUeXBlIG1f
dG87Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRpb25EaXNjcmV0ZUZ1bmN0aW9uSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbkltcGwuaAppbmRleCA4YjEzNzg5
MTc5MS4uNzM2MDlkN2NhMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGlvbkRpc2NyZXRlRnVuY3Rpb25JbXBsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbkltcGwuaApAQCAt
MSArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCiAKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5j
dGlvbi5oIgorI2luY2x1ZGUgIlNWR1Byb3BlcnR5VHJhaXRzLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgU1ZHQW5pbWF0aW9uQm9vbGVhbkZ1bmN0aW9uIDogcHVibGljIFNWR0Fu
aW1hdGlvbkRpc2NyZXRlRnVuY3Rpb248Ym9vbD4geworcHVibGljOgorICAgIHVzaW5nIEJhc2Ug
PSBTVkdBbmltYXRpb25EaXNjcmV0ZUZ1bmN0aW9uPGJvb2w+OworICAgIHVzaW5nIEJhc2U6OkJh
c2U7CisKKyAgICB2b2lkIHNldEZyb21BbmRUb1ZhbHVlcyhTVkdFbGVtZW50KiwgY29uc3QgU3Ry
aW5nJiBmcm9tLCBjb25zdCBTdHJpbmcmIHRvKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV9m
cm9tID0gU1ZHUHJvcGVydHlUcmFpdHM8Ym9vbD46OmZyb21TdHJpbmcoZnJvbSk7CisgICAgICAg
IG1fdG8gPSBTVkdQcm9wZXJ0eVRyYWl0czxib29sPjo6ZnJvbVN0cmluZyh0byk7CisgICAgfQor
fTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0
cmlidXRlUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJp
YnV0ZVJlZ2lzdHJ5LmgKaW5kZXggYjBiMzMwMjA5Y2UuLmIyOTY3ZGI1NmE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVSZWdpc3RyeS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZVJlZ2lzdHJ5LmgK
QEAgLTI1LDcgKzI1LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdBbmltYXRl
ZEJvb2xlYW4uaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9uLmgiCiAjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aExpc3Qu
aCIKQEAgLTY3LDEyICs2Niw2IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBBbmltYXRhYmxl
IGF0dHJpYnV0ZXMKLSAgICB0ZW1wbGF0ZTxjb25zdCBMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
UXVhbGlmaWVkTmFtZT4mIGF0dHJpYnV0ZU5hbWUsIFNWR0FuaW1hdGVkQm9vbGVhbkF0dHJpYnV0
ZSBPd25lclR5cGU6OiphdHRyaWJ1dGU+Ci0gICAgdm9pZCByZWdpc3RlckF0dHJpYnV0ZSgpCi0g
ICAgewotICAgICAgICByZWdpc3RlckF0dHJpYnV0ZShTVkdBbmltYXRlZEJvb2xlYW5BdHRyaWJ1
dGVBY2Nlc3NvcjxPd25lclR5cGU+Ojp0ZW1wbGF0ZSBzaW5nbGV0b248YXR0cmlidXRlTmFtZSwg
YXR0cmlidXRlPigpKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTxjb25zdCBMYXp5TmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgUXVhbGlmaWVkTmFtZT4mIGF0dHJpYnV0ZU5hbWUsIHR5cGVuYW1lIEVudW1U
eXBlLCBTVkdBbmltYXRlZEVudW1lcmF0aW9uQXR0cmlidXRlPEVudW1UeXBlPiBPd25lclR5cGU6
OiphdHRyaWJ1dGU+CiAgICAgdm9pZCByZWdpc3RlckF0dHJpYnV0ZSgpCiAgICAgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lclJlZ2lz
dHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyUmVn
aXN0cnkuaAppbmRleCBlZjU0NmZmZmM1Mi4uZDEyYjM5MmE5MzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXJSZWdpc3RyeS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXJSZWdpc3RyeS5o
CkBAIC00Miw2ICs0MiwxMiBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAorICAgIHRlbXBsYXRl
PGNvbnN0IExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBRdWFsaWZpZWROYW1lPiYgYXR0cmlidXRl
TmFtZSwgUmVmPFNWR0FuaW1hdGVkQm9vbGVhbj4gT3duZXJUeXBlOjoqcHJvcGVydHk+CisgICAg
c3RhdGljIHZvaWQgcmVnaXN0ZXJQcm9wZXJ0eSgpCisgICAgeworICAgICAgICByZWdpc3RlclBy
b3BlcnR5KGF0dHJpYnV0ZU5hbWUsIFNWR0FuaW1hdGVkQm9vbGVhbkFjY2Vzc29yPE93bmVyVHlw
ZT46OnRlbXBsYXRlIHNpbmdsZXRvbjxwcm9wZXJ0eT4oKSk7CisgICAgfQorCiAgICAgdGVtcGxh
dGU8Y29uc3QgTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IFF1YWxpZmllZE5hbWU+JiBhdHRyaWJ1
dGVOYW1lLCBSZWY8U1ZHQW5pbWF0ZWRJbnRlZ2VyPiBPd25lclR5cGU6Oipwcm9wZXJ0eT4KICAg
ICBzdGF0aWMgdm9pZCByZWdpc3RlclByb3BlcnR5KCkKICAgICB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365092</attachid>
            <date>2019-03-18 16:59:50 -0700</date>
            <delta_ts>2019-03-18 17:39:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195862-20190318165950.patch</filename>
            <type>text/plain</type>
            <size>39832</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MzExNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxIEBACisyMDE5LTAzLTE4ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRo
ZSBTVkcgcHJvcGVydHkgdGVhciBvZmYgb2JqZWN0cyBmb3IgU1ZHQW5pbWF0ZWRCb29sZWFuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTU4NjIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgLS0gU1ZHQW5pbWF0
ZWRCb29sZWFuIHdpbGwgYmUgZGVmaW5lZCBhcyBTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5
PGJvb2w+LgorICAgICAgICAtLSBTVkdBbmltYXRlZEJvb2xlYW5BY2Nlc3NvciBpcyBhZGRlZCB0
byBhY2Nlc3MgYSBtZW1iZXIgb2YgdGhpcyB0eXBlLgorICAgICAgICAtLSBBIGZ1bmN0aW9uIHJl
Z2lzdGVyUHJvcGVydHkoKSBpcyBhZGRlZCB0byBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkKKyAg
ICAgICAgICAgdG8gcmVnaXN0ZXIgdGhpcyB0eXBlLgorICAgICAgICAtLSBTVkdBbmltYXRlZEJv
b2xlYW5BbmltYXRvciBpcyBhZGRlZCB0byBhbmltYXRlIGEgbWVtYmVyIG9mIHRoaXMgdHlwZS4K
KyAgICAgICAgLS0gU1ZHQW5pbWF0aW9uQm9vbGVhbkZ1bmN0aW9uIGlzIGFkZGVkIHRvIGhhbmRs
ZSB0aGUgcHJvZ3Jlc3Mgb2YgdGhpcworICAgICAgICAgICBuZXcgdHlwZSBvdmVyIGEgcGVyaW9k
IG9mIHRpbWUuCisKKyAgICAgICAgU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbiBpcyB0aGUg
YmFzZSBjbGFzcyBvZiBTVkdBbmltYXRpb25Cb29sZWFuRnVuY3Rpb24uCisgICAgICAgIEl0IHdp
bGwgYmUgdGhlIGJhc2UgY2xhc3Mgb2YgYWxsIHRoZSBkaXNjcmV0ZSBhbmltYXRpb24gZnVuY3Rp
b24gdHlwZXM6CisgICAgICAgIHN0cmluZywgYm9vbCwgZW51bSBhbmQgUHJlc2VydmVBc3BlY3RS
YXRpbyB0eXBlcy4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0aW9uRWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRvckZhY3RvcnkuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdG9yRmFjdG9yeTo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHQ2xp
cFBhdGhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0N1cnNvckVsZW1lbnQuaDoKKyAgICAg
ICAgKiBzdmcvU1ZHRGVmc0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkOjpTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnJlZ2lzdGVyQXR0cmli
dXRlcyk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmV4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEFuaW1hdGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnNldEV4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdGRUNv
bnZvbHZlTWF0cml4RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbnZvbHZl
TWF0cml4RWxlbWVudDo6U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OnJlZ2lzdGVyQXR0cmlidXRlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUpOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdGRUltYWdlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGb250RWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oOgorICAgICAgICAq
IHN2Zy9TVkdHRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdHcmFkaWVudEVsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHTVBhdGhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR01hcmtl
ckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTWFza0VsZW1lbnQuaDoKKyAgICAgICAgKiBz
dmcvU1ZHUGF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0dGVybkVsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHUmVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR1N3aXRjaEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU3ltYm9sRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZH
VXNlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVy
dHlBY2Nlc3NvckltcGwuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBy
b3BlcnR5QW5pbWF0b3JJbXBsLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRQcm9wZXJ0eUltcGwuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRpb25E
aXNjcmV0ZUZ1bmN0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9u
RGlzY3JldGVGdW5jdGlvbjo6U1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRpb25EaXNjcmV0ZUZ1bmN0aW9uOjpwcm9ncmVzcyk6CisgICAg
ICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbkltcGwuaDog
QWRkZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0cmlidXRlUmVnaXN0cnkuaDoK
KyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTo6cmVnaXN0ZXJQcm9wZXJ0
eSk6CisKIDIwMTktMDMtMTggIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxl
LmNvbT4KIAogICAgICAgICBEZWZpbmUgdGhlIHR5cGUgb2YgU1ZHUHJvcGVydHlPd25lclJlZ2lz
dHJ5IGZvciBhbGwgU1ZHIGVsZW1lbnRzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkocmV2aXNpb24gMjQz
MTE0KQorKysgU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIy
NzAsNyArMjI3MCw2IEBAIHN2Zy9TVkdBbmltYXRlRWxlbWVudEJhc2UuY3BwCiBzdmcvU1ZHQW5p
bWF0ZU1vdGlvbkVsZW1lbnQuY3BwCiBzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3Bw
CiBzdmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHAKLXN2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwCiBz
dmcvU1ZHQW5pbWF0ZWRDb2xvci5jcHAKIHN2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcAog
c3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjQzMTE0KQorKysgU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0yNTgsNyArMjU4LDYgQEAKIAkJMDg1NEIwMjExMjU1RTRFNjAwQjlDREQwIC8qIFNW
R0lubGluZVRleHRCb3guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA4NTRCMDBGMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdJbmxpbmVUZXh0Qm94LmggKi87
IH07CiAJCTA4NTRCMDIzMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdSb290SW5saW5lQm94LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODU0QjAxMTEyNTVF
NEU2MDBCOUNERDAgLyogU1ZHUm9vdElubGluZUJveC5oICovOyB9OwogCQkwODU0QjAyNTEyNTVF
NEU2MDBCOUNERDAgLyogU1ZHVGV4dFF1ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwODU0QjAxMzEyNTVFNEU2MDBCOUNERDAgLyogU1ZHVGV4dFF1
ZXJ5LmggKi87IH07Ci0JCTA4NTc5NzA5MTI3ODM5NEMwMEE4RUM1RiAvKiBTVkdBbmltYXRlZEJv
b2xlYW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4
NTc5NzA4MTI3ODM5NEMwMEE4RUM1RiAvKiBTVkdBbmltYXRlZEJvb2xlYW4uaCAqLzsgfTsKIAkJ
MDg1QTE1OTMxMjg5QThERDAwMjcxMEUzIC8qIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3Bl
cnR5VGVhck9mZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDg1QTE1OTIxMjg5QThERDAwMjcxMEUzIC8qIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFBy
b3BlcnR5VGVhck9mZi5oICovOyB9OwogCQkwODVCOTJCQjBFRkRFNzNEMDBFNjEyM0MgLyogRm9y
bURhdGFCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwODVCOTJCOTBFRkRFNzNEMDBFNjEyM0MgLyogRm9ybURhdGFCdWlsZGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJMDg2Mzk1MTYxM0I1RkU1NzAwQkIz
NDREIC8qIFNWR0FuaW1hdGVkUGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDg2Mzk1MTQxM0I1RkU1NzAwQkIzNDREIC8qIFNWR0FuaW1hdGVkUGF0
aC5oICovOyB9OwpAQCAtNTYyOSw3ICs1NjI4LDYgQEAKIAkJMDg1NEIwMTExMjU1RTRFNjAwQjlD
REQwIC8qIFNWR1Jvb3RJbmxpbmVCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHUm9vdElubGluZUJveC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODU0
QjAxMjEyNTVFNEU2MDBCOUNERDAgLyogU1ZHVGV4dFF1ZXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1RleHRRdWVyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA4NTRCMDEzMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdUZXh0UXVlcnkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHVGV4dFF1ZXJ5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA4NTc5NzA4MTI3ODM5NEMwMEE4RUM1RiAvKiBTVkdBbmlt
YXRlZEJvb2xlYW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0
ZWRCb29sZWFuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NUExNTkyMTI4OUE4
REQwMDI3MTBFMyAvKiBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
UHJvcGVydHlUZWFyT2ZmLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NUI5MkI4
MEVGREU3M0QwMEU2MTIzQyAvKiBGb3JtRGF0YUJ1aWxkZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRm9ybURhdGFCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDg1QjkyQjkwRUZERTczRDAwRTYxMjNDIC8qIEZvcm1EYXRhQnVpbGRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtRGF0YUJ1aWxkZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc1ODEsNyArNzU3OSw2IEBACiAJCTQzMUEy
RjlCMTNCNkYyQjAwMDc3OTFFNCAvKiBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkTnVtYmVy
T3B0aW9uYWxOdW1iZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzFBMkZE
NjEzQjc3MDdBMDA3NzkxRTQgLyogU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzMUEzMDIwMTNCODlEQ0MwMDc3OTFFNCAvKiBT
VkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDMxQTMwODcxM0I4Rjk3ODAwNzc5MUU0IC8qIFNWR0Fu
aW1hdGVkQm9vbGVhbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
VkdBbmltYXRlZEJvb2xlYW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzJE
M0ZFNzE4QTg2NTg0MDBEN0RDMDMgLyogU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rp
b25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzMzFBQzc3MTNCNjg3MDAwMEE5
RTVBRSAvKiBTVkdBbmltYXRlZE51bWJlckxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDM1OEU4N0ExMzYwQTJFRTAwRTQ3NDhDIC8qIEpTU1ZHRkVEcm9wU2hh
ZG93RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NW
R0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
ODY4MSw2ICs4Njc4LDggQEAKIAkJNTVENzBEMjAyMjNCMDA5MTAwMDQ0QjhFIC8qIFNWR0xlZ2Fj
eUFuaW1hdGVkUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZH
TGVnYWN5QW5pbWF0ZWRQcm9wZXJ0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
NUQ3MEQyMTIyM0IwMEJCMDAwNDRCOEUgLyogU1ZHTGVnYWN5QW5pbWF0ZWRQcm9wZXJ0eS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTVkdMZWdhY3lBbmltYXRlZFByb3BlcnR5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVENzBEMjIyMjNCMDBFQTAwMDQ0QjhFIC8qIFNWR0xl
Z2FjeVByb3BlcnR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0xlZ2Fj
eVByb3BlcnR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU1RENDNTFDMjI0MDYw
NUUwMEMyNkUzMiAvKiBTVkdBbmltYXRpb25EaXNjcmV0ZUZ1bmN0aW9uSW1wbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTVkdBbmltYXRpb25EaXNjcmV0ZUZ1bmN0aW9uSW1wbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1NURDQzUxRDIyNDA2MTU1MDBDMjZFMzIgLyogU1ZHQW5pbWF0aW9u
RGlzY3JldGVGdW5jdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRpb25EaXNjcmV0ZUZ1
bmN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1RUM5NTk3MjA2OUM5MkQw
MDdERDBBOSAvKiBQYWludEZyZXF1ZW5jeVRyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFpbnRG
cmVxdWVuY3lUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1RUU1MzU0
MjIzQjI5RTkwMEZCQTk0NCAvKiBTVkdNZW1iZXJBY2Nlc3Nvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTVkdNZW1iZXJBY2Nlc3Nvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NUVFNTM1NjIyM0IyOUY3MDBGQkE5NDQgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0
eUFuaW1hdG9ySW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmlt
YXRlZFByb3BlcnR5QW5pbWF0b3JJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNjIzMCw2ICsxNjIyOSw4IEBACiAJCQkJNTVCRTAyNUYyMjNCMjlDNTAwMzJGMDhBIC8qIFNW
R0FuaW1hdGlvbkFkZGl0aXZlRnVuY3Rpb24uaCAqLywKIAkJCQk1NUVFNTM1RTIyM0IyQTBFMDBG
QkE5NDQgLyogU1ZHQW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0aW9uLmggKi8sCiAJCQkJNTVC
RTAyNTkyMjNCMjlDMTAwMzJGMDhBIC8qIFNWR0FuaW1hdGlvbkFkZGl0aXZlVmFsdWVGdW5jdGlv
bkltcGwuaCAqLywKKwkJCQk1NURDQzUxRDIyNDA2MTU1MDBDMjZFMzIgLyogU1ZHQW5pbWF0aW9u
RGlzY3JldGVGdW5jdGlvbi5oICovLAorCQkJCTU1RENDNTFDMjI0MDYwNUUwMEMyNkUzMiAvKiBT
VkdBbmltYXRpb25EaXNjcmV0ZUZ1bmN0aW9uSW1wbC5oICovLAogCQkJCTU1QkUwMjVCMjIzQjI5
QzIwMDMyRjA4QSAvKiBTVkdBbmltYXRpb25GdW5jdGlvbi5oICovLAogCQkJCTU1RkE3RkVGMjEw
RkEzODYwMDVBRUZFNyAvKiBTVkdBdHRyaWJ1dGUuaCAqLywKIAkJCQk1NUZBN0ZGNDIxMEZCNjg4
MDA1QUVGRTcgLyogU1ZHQXR0cmlidXRlQWNjZXNzb3IuaCAqLywKQEAgLTI0MTEyLDggKzI0MTEz
LDYgQEAKIAkJCQk0MzYyQzdCODEzQUM2RjFBMDAzNDRCRUIgLyogU1ZHQW5pbWF0ZWRBbmdsZS5j
cHAgKi8sCiAJCQkJMDg3Qjg0OTUxMjcyQ0VDNzAwQTE0NDE3IC8qIFNWR0FuaW1hdGVkQW5nbGUu
aCAqLywKIAkJCQlCMjIyNzdFNjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRBbmdsZS5p
ZGwgKi8sCi0JCQkJNDMxQTMwODcxM0I4Rjk3ODAwNzc5MUU0IC8qIFNWR0FuaW1hdGVkQm9vbGVh
bi5jcHAgKi8sCi0JCQkJMDg1Nzk3MDgxMjc4Mzk0QzAwQThFQzVGIC8qIFNWR0FuaW1hdGVkQm9v
bGVhbi5oICovLAogCQkJCUIyMjI3N0U3MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZEJv
b2xlYW4uaWRsICovLAogCQkJCTQzQTYyNUY3MTNCMzMwNDAwMEFDOTRCOCAvKiBTVkdBbmltYXRl
ZENvbG9yLmNwcCAqLywKIAkJCQk0M0E2MjVGNjEzQjMzMDQwMDBBQzk0QjggLyogU1ZHQW5pbWF0
ZWRDb2xvci5oICovLApAQCAtMzE5MTAsNyArMzE5MDksNiBAQAogCQkJCUIyMjI3OTc3MEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdBbmdsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5N0EwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA4N0I4NDk2MTI3MkNFQzgwMEExNDQxNyAvKiBTVkdBbmltYXRlZEFuZ2xlLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwODU3OTcwOTEyNzgzOTRDMDBBOEVDNUYgLyogU1ZHQW5pbWF0ZWRCb29s
ZWFuLmggaW4gSGVhZGVycyAqLywKIAkJCQk0M0E2MjVGODEzQjMzMDQwMDBBQzk0QjggLyogU1ZH
QW5pbWF0ZWRDb2xvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDhENDZDRTMxMjdBRDVGQzAwODk2
OTRCIC8qIFNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTcxRkI5
NjdCMTM4M0Q2NDYwMEFDOEE0QyAvKiBTVkdBbmltYXRlZEVudW1lcmF0aW9uUHJvcGVydHlUZWFy
T2ZmLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRp
b25FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlv
bkVsZW1lbnQuaAkocmV2aXNpb24gMjQzMTE0KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGlvbkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNiBAQAogCiAjcHJh
Z21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbi5oIgogI2luY2x1ZGUgIlNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaCIKICNpbmNsdWRlICJTVkdTTUlMRWxlbWVudC5o
IgogI2luY2x1ZGUgIlNWR1Rlc3RzLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0b3JGYWN0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dG9yRmFjdG9yeS5oCShyZXZpc2lvbiAyNDMxMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0b3JGYWN0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTIwLDcgKzIwLDYgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRBbmdsZS5oIgotI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkQm9vbGVhbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkQ29sb3IuaCIKICNpbmNsdWRl
ICJTVkdBbmltYXRlZEVudW1lcmF0aW9uLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGgu
aCIKQEAgLTUwLDcgKzQ5LDcgQEAgcHVibGljOgogICAgICAgICBjYXNlIEFuaW1hdGVkQW5nbGU6
CiAgICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZEFuZ2xlQW5p
bWF0b3I+KGFuaW1hdGlvbkVsZW1lbnQsIGNvbnRleHRFbGVtZW50KTsKICAgICAgICAgY2FzZSBB
bmltYXRlZEJvb2xlYW46Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdB
bmltYXRlZEJvb2xlYW5BbmltYXRvcj4oYW5pbWF0aW9uRWxlbWVudCwgY29udGV4dEVsZW1lbnQp
OworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIGNhc2UgQW5pbWF0ZWRDb2xv
cjoKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkQ29sb3JB
bmltYXRvcj4oKmFuaW1hdGlvbkVsZW1lbnQsICpjb250ZXh0RWxlbWVudCk7CiAgICAgICAgIGNh
c2UgQW5pbWF0ZWRFbnVtZXJhdGlvbjoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlw
UGF0aEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBh
dGhFbGVtZW50LmgJKHJldmlzaW9uIDI0MzExNCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
bGlwUGF0aEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNiBAQAogCiAjcHJh
Z21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbi5oIgogI2luY2x1ZGUgIlNW
R0FuaW1hdGVkRW51bWVyYXRpb24uaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHR3JhcGhpY3NFbGVtZW50LmgiCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgJKHJldmlzaW9uIDI0MzExNCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIx
LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW4uaCIK
ICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3Ry
aW5nLmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0RlZnNFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Rl
ZnNFbGVtZW50LmgJKHJldmlzaW9uIDI0MzExNCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdE
ZWZzRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw3ICsyMSw2IEBACiAKICNwcmFnbWEg
b25jZQogCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuLmgiCiAjaW5jbHVkZSAiU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oIgogI2luY2x1ZGUgIlNWR0dyYXBoaWNzRWxlbWVudC5o
IgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQuY3BwCShyZXZpc2lvbiAyNDMxMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDIy
ICsyOSwxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQ6OlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQoU1ZHRWxlbWVudCogY29udGV4dEVs
ZW1lbnQpCiAgICAgOiBtX2NvbnRleHRFbGVtZW50KCpjb250ZXh0RWxlbWVudCkKKyAgICAsIG1f
ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZChTVkdBbmltYXRlZEJvb2xlYW46OmNyZWF0ZShjb250
ZXh0RWxlbWVudCkpCiB7Ci0gICAgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7Ci19Ci0KLXZvaWQgU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cmVnaXN0ZXJBdHRyaWJ1dGVzKCkKLXsKLSAgICBh
dXRvJiByZWdpc3RyeSA9IGF0dHJpYnV0ZVJlZ2lzdHJ5KCk7Ci0gICAgaWYgKCFyZWdpc3RyeS5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLSAgICByZWdpc3RyeS5yZWdpc3RlckF0dHJpYnV0
ZTxTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHIsICZTVkdFbGxpcHNlRWxl
bWVudDo6bV9leHRlcm5hbFJlc291cmNlc1JlcXVpcmVkPigpOworICAgIHN0YXRpYyBzdGQ6Om9u
Y2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10geworICAg
ICAgICBQcm9wZXJ0eVJlZ2lzdHJ5OjpyZWdpc3RlclByb3BlcnR5PFNWR05hbWVzOjpleHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkQXR0ciwgJlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6Om1f
ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZD4oKTsKKyAgICB9KTsKIH0KIAogdm9pZCBTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogewogICAgIGlmIChuYW1lID09IFNW
R05hbWVzOjpleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0cikKLSAgICAgICAgc2V0RXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZCh2YWx1ZSA9PSAidHJ1ZSIpOworICAgICAgICBtX2V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQtPnNldEJhc2VWYWxJbnRlcm5hbCh2YWx1ZSA9PSAidHJ1ZSIpOwog
fQogCiB2b2lkIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgJKHJldmlzaW9uIDI0MzEx
NCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTUwLDEwICs1MCw4IEBAIHB1YmxpYzoKIAogICAgIHVzaW5nIFBy
b3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZD47CiAKLSAgICBhdXRvIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRBbmlt
YXRlZCgpIHsgcmV0dXJuIG1fZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5hbmltYXRlZFByb3Bl
cnR5KGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KLQotICAgIGJvb2wgZXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC52
YWx1ZSgpOyB9Ci0gICAgdm9pZCBzZXRFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKGJvb2wgZXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkgeyBtX2V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuc2V0
VmFsdWUoZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCk7IH0KKyAgICBib29sIGV4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQoKSBjb25zdCB7IHJldHVybiBtX2V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQtPmN1cnJlbnRWYWx1ZSgpOyB9CisgICAgU1ZHQW5pbWF0ZWRCb29sZWFuJiBleHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkQW5pbWF0ZWQoKSB7IHJldHVybiBtX2V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQ7IH0KIAogcHJvdGVjdGVkOgogICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQo
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpOwpAQCAtNzMsMTEgKzcxLDEwIEBAIHByb3RlY3Rl
ZDoKICAgICBib29sIGhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcygpIGNvbnN0OwogCiBwcml2
YXRlOgotICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQXR0cmlidXRlcygpOwogICAgIEF0dHJpYnV0
ZU93bmVyUHJveHkgYXR0cmlidXRlT3duZXJQcm94eSgpIHsgcmV0dXJuIHsgKnRoaXMsIG1fY29u
dGV4dEVsZW1lbnQgfTsgfQogICAgIAogICAgIFNWR0VsZW1lbnQmIG1fY29udGV4dEVsZW1lbnQ7
Ci0gICAgU1ZHQW5pbWF0ZWRCb29sZWFuQXR0cmlidXRlIG1fZXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZDsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRCb29sZWFuPiBtX2V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAJKHJldmlzaW9uIDI0
MzExNCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAgaW5saW5lIFNWR0ZFQ29udm9sdmVN
YXRyaXhFbGVtZW50OjpTVkdGRQogICAgICAgICBQcm9wZXJ0eVJlZ2lzdHJ5OjpyZWdpc3RlclBy
b3BlcnR5PFNWR05hbWVzOjpvcmRlckF0dHIsICZTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6
bV9vcmRlclgsICZTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6bV9vcmRlclk+KCk7CiAgICAg
ICAgIFByb3BlcnR5UmVnaXN0cnk6OnJlZ2lzdGVyUHJvcGVydHk8U1ZHTmFtZXM6OnRhcmdldFhB
dHRyLCAmU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6Om1fdGFyZ2V0WD4oKTsKICAgICAgICAg
UHJvcGVydHlSZWdpc3RyeTo6cmVnaXN0ZXJQcm9wZXJ0eTxTVkdOYW1lczo6dGFyZ2V0WUF0dHIs
ICZTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6bV90YXJnZXRZPigpOworICAgICAgICBQcm9w
ZXJ0eVJlZ2lzdHJ5OjpyZWdpc3RlclByb3BlcnR5PFNWR05hbWVzOjpwcmVzZXJ2ZUFscGhhQXR0
ciwgJlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjptX3ByZXNlcnZlQWxwaGE+KCk7CiAgICAg
fSk7CiB9CiAKQEAgLTc5LDcgKzgwLDYgQEAgdm9pZCBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVu
dDo6cmVnaXN0ZQogICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyQXR0cmlidXRlPFNWR05hbWVzOjprZXJu
ZWxVbml0TGVuZ3RoQXR0ciwKICAgICAgICAgJlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50Ojpr
ZXJuZWxVbml0TGVuZ3RoWElkZW50aWZpZXIsICZTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6
bV9rZXJuZWxVbml0TGVuZ3RoWCwKICAgICAgICAgJlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50
OjprZXJuZWxVbml0TGVuZ3RoWUlkZW50aWZpZXIsICZTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVu
dDo6bV9rZXJuZWxVbml0TGVuZ3RoWT4oKTsKLSAgICByZWdpc3RyeS5yZWdpc3RlckF0dHJpYnV0
ZTxTVkdOYW1lczo6cHJlc2VydmVBbHBoYUF0dHIsICZTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVu
dDo6bV9wcmVzZXJ2ZUFscGhhPigpOwogfQogCiB2b2lkIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
aWNTdHJpbmcmIHZhbHVlKQpAQCAtMTUyLDkgKzE1Miw5IEBAIHZvaWQgU1ZHRkVDb252b2x2ZU1h
dHJpeEVsZW1lbnQ6OnBhcnNlQXQKIAogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpwcmVzZXJ2
ZUFscGhhQXR0cikgewogICAgICAgICBpZiAodmFsdWUgPT0gInRydWUiKQotICAgICAgICAgICAg
bV9wcmVzZXJ2ZUFscGhhLnNldFZhbHVlKHRydWUpOworICAgICAgICAgICAgbV9wcmVzZXJ2ZUFs
cGhhLT5zZXRCYXNlVmFsSW50ZXJuYWwodHJ1ZSk7CiAgICAgICAgIGVsc2UgaWYgKHZhbHVlID09
ICJmYWxzZSIpCi0gICAgICAgICAgICBtX3ByZXNlcnZlQWxwaGEuc2V0VmFsdWUoZmFsc2UpOwor
ICAgICAgICAgICAgbV9wcmVzZXJ2ZUFscGhhLT5zZXRCYXNlVmFsSW50ZXJuYWwoZmFsc2UpOwog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMo
KS5yZXBvcnRXYXJuaW5nKCJmZUNvbnZvbHZlTWF0cml4OiBwcm9ibGVtIHBhcnNpbmcgcHJlc2Vy
dmVBbHBoYUF0dHI9XCIiICsgdmFsdWUgICsgIlwiLiBGaWx0ZXJlZCBlbGVtZW50IHdpbGwgbm90
IGJlIGRpc3BsYXllZC4iKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmgJKHJldmlzaW9uIDI0MzExNCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKICAgICBFZGdlTW9kZVR5cGUgZWRn
ZU1vZGUoKSBjb25zdCB7IHJldHVybiBtX2VkZ2VNb2RlLmN1cnJlbnRWYWx1ZShhdHRyaWJ1dGVP
d25lclByb3h5KCkpOyB9CiAgICAgZmxvYXQga2VybmVsVW5pdExlbmd0aFgoKSBjb25zdCB7IHJl
dHVybiBtX2tlcm5lbFVuaXRMZW5ndGhYLmN1cnJlbnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5
KCkpOyB9CiAgICAgZmxvYXQga2VybmVsVW5pdExlbmd0aFkoKSBjb25zdCB7IHJldHVybiBtX2tl
cm5lbFVuaXRMZW5ndGhZLmN1cnJlbnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9Ci0g
ICAgYm9vbCBwcmVzZXJ2ZUFscGhhKCkgY29uc3QgeyByZXR1cm4gbV9wcmVzZXJ2ZUFscGhhLmN1
cnJlbnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CisgICAgYm9vbCBwcmVzZXJ2ZUFs
cGhhKCkgY29uc3QgeyByZXR1cm4gbV9wcmVzZXJ2ZUFscGhhLT5jdXJyZW50VmFsdWUoKTsgfQog
CiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkU3RyaW5nPiBpbjFBbmltYXRlZCgpIHsgcmV0dXJuIG1f
aW4xLmFuaW1hdGVkUHJvcGVydHkoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQogICAgIFNWR0Fu
aW1hdGVkSW50ZWdlciYgb3JkZXJYQW5pbWF0ZWQoKSB7IHJldHVybiBtX29yZGVyWDsgfQpAQCAt
OTEsNyArOTEsNyBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+
IGVkZ2VNb2RlQW5pbWF0ZWQoKSB7IHJldHVybiBtX2VkZ2VNb2RlLmFuaW1hdGVkUHJvcGVydHko
YXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQogICAgIFJlZlB0cjxTVkdBbmltYXRlZE51bWJlcj4g
a2VybmVsVW5pdExlbmd0aFhBbmltYXRlZCgpIHsgcmV0dXJuIG1fa2VybmVsVW5pdExlbmd0aFgu
YW5pbWF0ZWRQcm9wZXJ0eShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CiAgICAgUmVmUHRyPFNW
R0FuaW1hdGVkTnVtYmVyPiBrZXJuZWxVbml0TGVuZ3RoWUFuaW1hdGVkKCkgeyByZXR1cm4gbV9r
ZXJuZWxVbml0TGVuZ3RoWS5hbmltYXRlZFByb3BlcnR5KGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7
IH0KLSAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRCb29sZWFuPiBwcmVzZXJ2ZUFscGhhQW5pbWF0ZWQo
KSB7IHJldHVybiBtX3ByZXNlcnZlQWxwaGEuYW5pbWF0ZWRQcm9wZXJ0eShhdHRyaWJ1dGVPd25l
clByb3h5KCkpOyB9CisgICAgU1ZHQW5pbWF0ZWRCb29sZWFuJiBwcmVzZXJ2ZUFscGhhQW5pbWF0
ZWQoKSB7IHJldHVybiBtX3ByZXNlcnZlQWxwaGE7IH0KIAogcHJpdmF0ZToKICAgICBTVkdGRUNv
bnZvbHZlTWF0cml4RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKQEAg
LTk5LDcgKzk5LDggQEAgcHJpdmF0ZToKICAgICB1c2luZyBBdHRyaWJ1dGVPd25lclByb3h5ID0g
U1ZHQXR0cmlidXRlT3duZXJQcm94eUltcGw8U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQsIFNW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcz47CiAgICAgc3RhdGljIEF0dHJpYnV0
ZU93bmVyUHJveHk6OkF0dHJpYnV0ZVJlZ2lzdHJ5JiBhdHRyaWJ1dGVSZWdpc3RyeSgpIHsgcmV0
dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmF0dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0KICAgICBzdGF0
aWMgdm9pZCByZWdpc3RlckF0dHJpYnV0ZXMoKTsKLSAgICAKKyAgICBjb25zdCBTVkdBdHRyaWJ1
dGVPd25lclByb3h5JiBhdHRyaWJ1dGVPd25lclByb3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9hdHRyaWJ1dGVPd25lclByb3h5OyB9CisKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0g
U1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LCBTVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+OwogICAgIGNvbnN0IFNWR1Byb3BlcnR5
UmVnaXN0cnkmIHByb3BlcnR5UmVnaXN0cnkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3Bl
cnR5UmVnaXN0cnk7IH0KIApAQCAtMTA4LDcgKzEwOSw2IEBAIHByaXZhdGU6CiAgICAgICAgIHJl
dHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUp
IHx8IFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7CiAg
ICAgfQogCi0gICAgY29uc3QgU1ZHQXR0cmlidXRlT3duZXJQcm94eSYgYXR0cmlidXRlT3duZXJQ
cm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYXR0cmlidXRlT3duZXJQcm94eTsgfQogICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0
cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKQEAgLTEzMSw3ICsxMzEsNyBAQCBwcml2YXRlOgogICAg
IFNWR0FuaW1hdGVkRW51bWVyYXRpb25BdHRyaWJ1dGU8RWRnZU1vZGVUeXBlPiBtX2VkZ2VNb2Rl
IHsgRURHRU1PREVfRFVQTElDQVRFIH07CiAgICAgU1ZHQW5pbWF0ZWROdW1iZXJBdHRyaWJ1dGUg
bV9rZXJuZWxVbml0TGVuZ3RoWDsKICAgICBTVkdBbmltYXRlZE51bWJlckF0dHJpYnV0ZSBtX2tl
cm5lbFVuaXRMZW5ndGhZOwotICAgIFNWR0FuaW1hdGVkQm9vbGVhbkF0dHJpYnV0ZSBtX3ByZXNl
cnZlQWxwaGE7CisgICAgUmVmPFNWR0FuaW1hdGVkQm9vbGVhbj4gbV9wcmVzZXJ2ZUFscGhhIHsg
U1ZHQW5pbWF0ZWRCb29sZWFuOjpjcmVhdGUodGhpcykgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCShyZXZp
c2lvbiAyNDMxMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNiBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2VD
bGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgotI2luY2x1ZGUgIlNW
R0FuaW1hdGVkQm9vbGVhbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpby5oIgogI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaCIKICNpbmNs
dWRlICJTVkdGRUltYWdlLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAko
cmV2aXNpb24gMjQzMTE0KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDYgQEAKIAogI2lmIEVOQUJMRShTVkdfRk9OVFMp
CiAKLSNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW4uaCIKICNpbmNsdWRlICJTVkdFbGVtZW50
LmgiCiAjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oIgogI2luY2x1ZGUg
IlNWR1BhcnNlclV0aWxpdGllcy5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVp
Z25PYmplY3RFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zv
cmVpZ25PYmplY3RFbGVtZW50LmgJKHJldmlzaW9uIDI0MzExNCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw3ICsx
OSw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuLmgi
CiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHR3JhcGhpY3NFbGVtZW50LmgiCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaAkocmV2aXNpb24gMjQzMTE0KQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDYgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW4uaCIKICNpbmNs
dWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHR3JhcGhp
Y3NFbGVtZW50LmgiCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50
LmgJKHJldmlzaW9uIDI0MzExNCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNiBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJHcmFkaWVudC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbi5oIgog
I2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCIKICNpbmNsdWRlICJTVkdBbmltYXRl
ZFRyYW5zZm9ybUxpc3QuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR01QYXRoRWxlbWVudC5oCShyZXZpc2lvbiAyNDMxMTQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIwLDcgKzIwLDYg
QEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW4uaCIKICNp
bmNsdWRlICJTVkdBbmltYXRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNp
bmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgJKHJldmlzaW9uIDI0MzExNCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDYg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRBbmdsZS5oIgotI2luY2x1
ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRp
b24uaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aC5oIgogI2luY2x1ZGUgIlNWR0FuaW1h
dGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR01h
c2tFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVt
ZW50LmgJKHJldmlzaW9uIDI0MzExNCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw3ICsyMCw2IEBACiAKICNwcmFnbWEgb25jZQog
Ci0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoLmgiCiAjaW5jbHVkZSAi
U1ZHRWxlbWVudC5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmgJKHJldmlz
aW9uIDI0MzExNCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMiw3ICsyMiw2IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlBh
dGguaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZEJvb2xlYW4uaCIKICNpbmNsdWRlICJTVkdBbmlt
YXRlZE51bWJlci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUGF0aC5oIgogI2luY2x1ZGUgIlNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXR0ZXJuRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXR0ZXJuRWxlbWVudC5oCShyZXZpc2lvbiAyNDMxMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0dGVybkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNiBAQAogCiAj
cHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVhbi5oIgogI2luY2x1ZGUg
IlNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aC5o
IgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIgpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgJKHJldmlzaW9uIDI0MzExNCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw3ICsyMSw2
IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuLmgiCiAj
aW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHR2VvbWV0cnlFbGVtZW50LmgiCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgJKHJldmlzaW9uIDI0MzExNCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDYg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgotI2luY2x1ZGUgIlNW
R0FuaW1hdGVkQm9vbGVhbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoLmgiCiAjaW5j
bHVkZSAiU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgiCiAjaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRSZWN0LmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgJKHJl
dmlzaW9uIDI0MzExNCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNs
dWRlICJTVkdBbmltYXRlZEJvb2xlYW4uaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZy5o
IgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmgJKHJl
dmlzaW9uIDI0MzExNCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNs
dWRlICJTVkdBbmltYXRlZEJvb2xlYW4uaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHR3JhcGhpY3NFbGVtZW50LmgiCiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAkocmV2aXNpb24gMjQzMTE0KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjEs
NyArMjEsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR0FuaW1hdGVkQm9vbGVh
bi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIgogI2luY2x1
ZGUgIlNWR0FuaW1hdGVkUmVjdC5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmgJKHJldmlzaW9uIDI0MzEx
NCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjEsNyArMjEsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNW
R0FuaW1hdGVkQm9vbGVhbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCIK
ICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aC5oIgogI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAkocmV2
aXNpb24gMjQzMTE0KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNiBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VI
YW5kbGUuaCIKICNpbmNsdWRlICJDYWNoZWRTVkdEb2N1bWVudENsaWVudC5oIgotI2luY2x1ZGUg
IlNWR0FuaW1hdGVkQm9vbGVhbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoLmgiCiAj
aW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oIgogI2luY2x1ZGUgIlNWR0dy
YXBoaWNzRWxlbWVudC5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0ZWRQcm9wZXJ0eUFjY2Vzc29ySW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlBY2Nlc3NvckltcGwuaAkocmV2
aXNpb24gMjQzMTE0KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRQcm9wZXJ0eUFjY2Vzc29ySW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMywyOCBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBPd25lclR5cGU+Citj
bGFzcyBTVkdBbmltYXRlZEJvb2xlYW5BY2Nlc3NvciBmaW5hbCA6IHB1YmxpYyBTVkdBbmltYXRl
ZFByb3BlcnR5QWNjZXNzb3I8T3duZXJUeXBlLCBTVkdBbmltYXRlZEJvb2xlYW4+IHsKKyAgICB1
c2luZyBCYXNlID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFjY2Vzc29yPE93bmVyVHlwZSwgU1ZHQW5p
bWF0ZWRCb29sZWFuPjsKKyAgICB1c2luZyBCYXNlOjpwcm9wZXJ0eTsKKworcHVibGljOgorICAg
IHVzaW5nIEJhc2U6OkJhc2U7CisgICAgdGVtcGxhdGU8UmVmPFNWR0FuaW1hdGVkQm9vbGVhbj4g
T3duZXJUeXBlOjoqcHJvcGVydHk+CisgICAgY29uc3RleHByIHN0YXRpYyBjb25zdCBTVkdNZW1i
ZXJBY2Nlc3NvcjxPd25lclR5cGU+JiBzaW5nbGV0b24oKSB7IHJldHVybiBCYXNlOjp0ZW1wbGF0
ZSBzaW5nbGV0b248U1ZHQW5pbWF0ZWRCb29sZWFuQWNjZXNzb3IsIHByb3BlcnR5PigpOyB9CisK
K3ByaXZhdGU6CisgICAgc3RkOjp1bmlxdWVfcHRyPFNWR0F0dHJpYnV0ZUFuaW1hdG9yPiBjcmVh
dGVBbmltYXRvcihPd25lclR5cGUmIG93bmVyLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1
dGVOYW1lLCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2RlIGNhbGNNb2RlLCBi
b29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkgY29uc3QgZmluYWwKKyAgICB7Cisg
ICAgICAgIHJldHVybiBTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y3JlYXRlKGF0dHJpYnV0
ZU5hbWUsIHByb3BlcnR5KG93bmVyKSwgYW5pbWF0aW9uTW9kZSwgY2FsY01vZGUsIGlzQWNjdW11
bGF0ZWQsIGlzQWRkaXRpdmUpOworICAgIH0KKworICAgIHZvaWQgYXBwZW5kQW5pbWF0ZWRJbnN0
YW5jZShPd25lclR5cGUmIG93bmVyLCBTVkdBdHRyaWJ1dGVBbmltYXRvciYgYW5pbWF0b3IpIGNv
bnN0IGZpbmFsCisgICAgeworICAgICAgICBzdGF0aWNfY2FzdDxTVkdBbmltYXRlZEJvb2xlYW5B
bmltYXRvciY+KGFuaW1hdG9yKS5hcHBlbmRBbmltYXRlZEluc3RhbmNlKHByb3BlcnR5KG93bmVy
KSk7CisgICAgfQorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgT3duZXJUeXBlPgogY2xhc3MgU1ZH
QW5pbWF0ZWRJbnRlZ2VyQWNjZXNzb3IgZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRQcm9wZXJ0
eUFjY2Vzc29yPE93bmVyVHlwZSwgU1ZHQW5pbWF0ZWRJbnRlZ2VyPiB7CiAgICAgdXNpbmcgQmFz
ZSA9IFNWR0FuaW1hdGVkUHJvcGVydHlBY2Nlc3NvcjxPd25lclR5cGUsIFNWR0FuaW1hdGVkSW50
ZWdlcj47CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVk
UHJvcGVydHlBbmltYXRvckltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3JJbXBsLmgJKHJldmlzaW9uIDI0
MzExNCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVy
dHlBbmltYXRvckltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1
ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHlBbmltYXRvci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVk
UHJvcGVydHlJbXBsLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0
aW9uSW1wbC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGlvbkRpc2NyZXRlRnVuY3Rpb25JbXBsLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzYsNiArMzcsMjQgQEAgY2xhc3MgU1ZHQW5p
bWF0ZWRJbnRlZ2VyUGFpckFuaW1hdG9yOwogdGVtcGxhdGU8dHlwZW5hbWUgQW5pbWF0ZWRQcm9w
ZXJ0eUFuaW1hdG9yMSwgdHlwZW5hbWUgQW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9yMj4KIGNsYXNz
IFNWR0FuaW1hdGVkUHJvcGVydHlQYWlyQW5pbWF0b3I7CiAKK2NsYXNzIFNWR0FuaW1hdGVkQm9v
bGVhbkFuaW1hdG9yIGZpbmFsIDogcHVibGljIFNWR0FuaW1hdGVkUHJvcGVydHlBbmltYXRvcjxT
VkdBbmltYXRlZEJvb2xlYW4sIFNWR0FuaW1hdGlvbkJvb2xlYW5GdW5jdGlvbj4gIHsKKyAgICB1
c2luZyBCYXNlID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9yPFNWR0FuaW1hdGVkQm9vbGVh
biwgU1ZHQW5pbWF0aW9uQm9vbGVhbkZ1bmN0aW9uPjsKKyAgICB1c2luZyBCYXNlOjpCYXNlOwor
CitwdWJsaWM6CisgICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJpYnV0ZU5hbWUsIFJlZjxTVkdBbmltYXRlZEJvb2xlYW4+JiBhbmltYXRlZCwgQW5pbWF0aW9u
TW9kZSBhbmltYXRpb25Nb2RlLCBDYWxjTW9kZSBjYWxjTW9kZSwgYm9vbCBpc0FjY3VtdWxhdGVk
LCBib29sIGlzQWRkaXRpdmUpCisgICAgeworICAgICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yPihuZXcgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0
b3IoYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWQsIGFuaW1hdGlvbk1vZGUsIGNhbGNNb2RlLCBpc0Fj
Y3VtdWxhdGVkLCBpc0FkZGl0aXZlKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIHZvaWQgcHJv
Z3Jlc3MoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgZmxvYXQgcGVyY2VudGFnZSwgdW5zaWdu
ZWQgcmVwZWF0Q291bnQpIGZpbmFsCisgICAgeworICAgICAgICBib29sJiBhbmltYXRlZCA9IG1f
YW5pbWF0ZWQtPmFuaW1WYWwoKTsKKyAgICAgICAgbV9mdW5jdGlvbi5wcm9ncmVzcyh0YXJnZXRF
bGVtZW50LCBwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgYW5pbWF0ZWQpOworICAgIH0KK307CisK
IGNsYXNzIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yIGZpbmFsIDogcHVibGljIFNWR0FuaW1h
dGVkUHJvcGVydHlBbmltYXRvcjxTVkdBbmltYXRlZEludGVnZXIsIFNWR0FuaW1hdGlvbkludGVn
ZXJGdW5jdGlvbj4gewogICAgIGZyaWVuZCBjbGFzcyBTVkdBbmltYXRlZFByb3BlcnR5UGFpckFu
aW1hdG9yPFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9yLCBTVkdBbmltYXRlZEludGVnZXJBbmlt
YXRvcj47CiAgICAgZnJpZW5kIGNsYXNzIFNWR0FuaW1hdGVkSW50ZWdlclBhaXJBbmltYXRvcjsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlJ
bXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRQcm9wZXJ0eUltcGwuaAkocmV2aXNpb24gMjQzMTE0KQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUltcGwuaAkod29ya2luZyBjb3B5KQpA
QCAtMjYsNyArMjYsNiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTVkdBbmltYXRlZEFu
Z2xlLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuLmgiCiAjaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoLmgiCiAjaW5j
bHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmgiCkBAIC00MSw2ICs0MCw3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAordXNpbmcgU1ZHQW5pbWF0ZWRCb29sZWFuID0gU1ZHQW5pbWF0ZWRQ
cmltaXRpdmVQcm9wZXJ0eTxib29sPjsKIHVzaW5nIFNWR0FuaW1hdGVkSW50ZWdlciA9IFNWR0Fu
aW1hdGVkUHJpbWl0aXZlUHJvcGVydHk8aW50PjsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGlvbkRpc2NyZXRlRnVu
Y3Rpb24uaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRpb25EaXNjcmV0ZUZ1bmN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3RlbXBsYXRlPHR5cGVuYW1l
IFZhbHVlVHlwZT4KK2NsYXNzIFNWR0FuaW1hdGlvbkRpc2NyZXRlRnVuY3Rpb24gOiBwdWJsaWMg
U1ZHQW5pbWF0aW9uRnVuY3Rpb24geworcHVibGljOgorICAgIFNWR0FuaW1hdGlvbkRpc2NyZXRl
RnVuY3Rpb24oQW5pbWF0aW9uTW9kZSBhbmltYXRpb25Nb2RlLCBDYWxjTW9kZSwgYm9vbCwgYm9v
bCkKKyAgICAgICAgOiBTVkdBbmltYXRpb25GdW5jdGlvbihhbmltYXRpb25Nb2RlKQorICAgIHsK
KyAgICB9CisKKyAgICBib29sIGlzRGlzY3JldGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CisKKyAgICB2b2lkIHNldFRvQXRFbmRPZkR1cmF0aW9uVmFsdWUoY29uc3QgU3RyaW5n
Jikgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0K
KworICAgIHZvaWQgc2V0RnJvbUFuZEJ5VmFsdWVzKFNWR0VsZW1lbnQqLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgfQorCisgICAgdm9pZCBwcm9ncmVzcyhTVkdFbGVtZW50KiwgZmxvYXQgcGVy
Y2VudGFnZSwgdW5zaWduZWQsIFZhbHVlVHlwZSYgYW5pbWF0ZWQpCisgICAgeworICAgICAgICBp
ZiAoKG1fYW5pbWF0aW9uTW9kZSA9PSBBbmltYXRpb25Nb2RlOjpGcm9tVG8gJiYgcGVyY2VudGFn
ZSA+IDAuNSkgfHwgbV9hbmltYXRpb25Nb2RlID09IEFuaW1hdGlvbk1vZGU6OlRvIHx8IHBlcmNl
bnRhZ2UgPT0gMSkKKyAgICAgICAgICAgIGFuaW1hdGVkID0gbV90bzsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgYW5pbWF0ZWQgPSBtX2Zyb207CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAg
VmFsdWVUeXBlIG1fZnJvbTsKKyAgICBWYWx1ZVR5cGUgbV90bzsKK307CisKK30KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGlvbkRpc2NyZXRlRnVuY3Rpb25J
bXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0aW9uRGlzY3JldGVGdW5jdGlvbkltcGwuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRpb25EaXNjcmV0ZUZ1bmN0aW9uSW1wbC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTVkdBbmltYXRp
b25EaXNjcmV0ZUZ1bmN0aW9uLmgiCisjaW5jbHVkZSAiU1ZHUHJvcGVydHlUcmFpdHMuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTVkdBbmltYXRpb25Cb29sZWFuRnVuY3Rpb24g
OiBwdWJsaWMgU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbjxib29sPiB7CitwdWJsaWM6Cisg
ICAgdXNpbmcgQmFzZSA9IFNWR0FuaW1hdGlvbkRpc2NyZXRlRnVuY3Rpb248Ym9vbD47CisgICAg
dXNpbmcgQmFzZTo6QmFzZTsKKworICAgIHZvaWQgc2V0RnJvbUFuZFRvVmFsdWVzKFNWR0VsZW1l
bnQqLCBjb25zdCBTdHJpbmcmIGZyb20sIGNvbnN0IFN0cmluZyYgdG8pIG92ZXJyaWRlCisgICAg
eworICAgICAgICBtX2Zyb20gPSBTVkdQcm9wZXJ0eVRyYWl0czxib29sPjo6ZnJvbVN0cmluZyhm
cm9tKTsKKyAgICAgICAgbV90byA9IFNWR1Byb3BlcnR5VHJhaXRzPGJvb2w+Ojpmcm9tU3RyaW5n
KHRvKTsKKyAgICB9Cit9OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdBdHRyaWJ1dGVSZWdpc3RyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZVJlZ2lzdHJ5LmgJKHJldmlzaW9uIDI0MzExNCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZVJlZ2lzdHJ5LmgJKHdv
cmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRl
ICJTVkdBbmltYXRlZEJvb2xlYW4uaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9u
LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKICNpbmNsdWRlICJTVkdBbmltYXRl
ZExlbmd0aExpc3QuaCIKQEAgLTY3LDEyICs2Niw2IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAv
LyBBbmltYXRhYmxlIGF0dHJpYnV0ZXMKLSAgICB0ZW1wbGF0ZTxjb25zdCBMYXp5TmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgUXVhbGlmaWVkTmFtZT4mIGF0dHJpYnV0ZU5hbWUsIFNWR0FuaW1hdGVkQm9v
bGVhbkF0dHJpYnV0ZSBPd25lclR5cGU6OiphdHRyaWJ1dGU+Ci0gICAgdm9pZCByZWdpc3RlckF0
dHJpYnV0ZSgpCi0gICAgewotICAgICAgICByZWdpc3RlckF0dHJpYnV0ZShTVkdBbmltYXRlZEJv
b2xlYW5BdHRyaWJ1dGVBY2Nlc3NvcjxPd25lclR5cGU+Ojp0ZW1wbGF0ZSBzaW5nbGV0b248YXR0
cmlidXRlTmFtZSwgYXR0cmlidXRlPigpKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTxjb25zdCBM
YXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgUXVhbGlmaWVkTmFtZT4mIGF0dHJpYnV0ZU5hbWUsIHR5
cGVuYW1lIEVudW1UeXBlLCBTVkdBbmltYXRlZEVudW1lcmF0aW9uQXR0cmlidXRlPEVudW1UeXBl
PiBPd25lclR5cGU6OiphdHRyaWJ1dGU+CiAgICAgdm9pZCByZWdpc3RlckF0dHJpYnV0ZSgpCiAg
ICAgewpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25l
clJlZ2lzdHJ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5LmgJKHJldmlzaW9uIDI0MzExNCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXJSZWdpc3RyeS5oCSh3b3JraW5n
IGNvcHkpCkBAIC00Miw2ICs0MiwxMiBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAorICAgIHRl
bXBsYXRlPGNvbnN0IExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBRdWFsaWZpZWROYW1lPiYgYXR0
cmlidXRlTmFtZSwgUmVmPFNWR0FuaW1hdGVkQm9vbGVhbj4gT3duZXJUeXBlOjoqcHJvcGVydHk+
CisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJQcm9wZXJ0eSgpCisgICAgeworICAgICAgICByZWdp
c3RlclByb3BlcnR5KGF0dHJpYnV0ZU5hbWUsIFNWR0FuaW1hdGVkQm9vbGVhbkFjY2Vzc29yPE93
bmVyVHlwZT46OnRlbXBsYXRlIHNpbmdsZXRvbjxwcm9wZXJ0eT4oKSk7CisgICAgfQorCiAgICAg
dGVtcGxhdGU8Y29uc3QgTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IFF1YWxpZmllZE5hbWU+JiBh
dHRyaWJ1dGVOYW1lLCBSZWY8U1ZHQW5pbWF0ZWRJbnRlZ2VyPiBPd25lclR5cGU6Oipwcm9wZXJ0
eT4KICAgICBzdGF0aWMgdm9pZCByZWdpc3RlclByb3BlcnR5KCkKICAgICB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>