<?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>195960</bug_id>
          
          <creation_ts>2019-03-19 12:32:02 -0700</creation_ts>
          <short_desc>Remove the SVG property tear off objects of SVGAnimatedPreserveAspectRatio</short_desc>
          <delta_ts>2019-03-20 15:58:32 -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>
          
          
          <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>195949</dependson>
          <blocked>191237</blocked>
    
    <blocked>196025</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>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1518447</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-19 12:32:02 -0700</bug_when>
    <thetext>This is very similar to https://bugs.webkit.org/show_bug.cgi?id=195949. The changes should be almost the same expect the animation function for SVGRect is additive while it is discrete for SVGPreserveAspectRatio.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518450</commentid>
    <comment_count>1</comment_count>
      <attachid>365205</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-19 12:35:12 -0700</bug_when>
    <thetext>Created attachment 365205
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518455</commentid>
    <comment_count>2</comment_count>
      <attachid>365208</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-19 12:38:40 -0700</bug_when>
    <thetext>Created attachment 365208
Patch for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518601</commentid>
    <comment_count>3</comment_count>
      <attachid>365208</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-19 15:58:44 -0700</bug_when>
    <thetext>Comment on attachment 365208
Patch for review

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        -- Define SVGAnimatedPreserveAspectRatio to be SVGAnimatedValueProperty&lt;
&gt; +           SVGPreserveAspectRatio&gt;.
&gt; +
&gt; +        -- Make SVGPreserveAspectRatio be derived form SVGValueProperty&lt;S
&gt; +           VGPreserveAspectRatioValue&gt;.

Bad wrapping.

&gt; Source/WebCore/svg/properties/SVGAnimatedPropertyAnimatorImpl.h:84
&gt; +        return std::unique_ptr&lt;SVGAnimatedPreserveAspectRatioAnimator&gt;(new SVGAnimatedPreserveAspectRatioAnimator(attributeName, animated, animationMode, calcMode, isAccumulated, isAdditive));

make_unique&lt;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518688</commentid>
    <comment_count>4</comment_count>
      <attachid>365279</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-19 18:22:45 -0700</bug_when>
    <thetext>Created attachment 365279
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518702</commentid>
    <comment_count>5</comment_count>
      <attachid>365279</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-19 18:49:36 -0700</bug_when>
    <thetext>Comment on attachment 365279
Patch

Clearing flags on attachment: 365279

Committed r243185: &lt;https://trac.webkit.org/changeset/243185&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518703</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-19 18:49:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518704</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-19 18:50:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/49045550&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365205</attachid>
            <date>2019-03-19 12:35:12 -0700</date>
            <delta_ts>2019-03-19 18:22:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195960-20190319123511.patch</filename>
            <type>text/plain</type>
            <size>115142</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzMTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODlhNTU0ZmM4ODM1N2Mx
ZWIxMzhhY2RmNDgwMWU0OGI4NThmYWEyMS4uNzhhODI2NDIxYjg0ZDRiZDJkNWZhZTI3MDM0MGUy
MGQwMWMxNTQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0NSBAQAorMjAxOS0wMy0xOSAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92
ZSB0aGUgU1ZHIHByb3BlcnR5IHRlYXIgb2ZmIG9iamVjdHMgb2YgU1ZHQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTU5NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAtLSBEZWZpbmUgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvIHRvIGJlIFNWR0Fu
aW1hdGVkVmFsdWVQcm9wZXJ0eTwKKyAgICAgICAgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4u
CisKKyAgICAgICAgLS0gTWFrZSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvIGJlIGRlcml2ZWQgZm9y
bSBTVkdWYWx1ZVByb3BlcnR5PFMKKyAgICAgICAgICAgVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFs
dWU+LgorCisgICAgICAgIC0tIEFkZCBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BY2Nl
c3NvciB0byBhY2Nlc3MgdGhlIGFuaW1hdGVkIAorICAgICAgICAgICBwcm9wZXJ0eS4KKworICAg
ICAgICAtLSBBZGQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3IgdG8gYW5p
bWF0ZSB0aGUgYW5pbWF0ZWQKKyAgICAgICAgICAgcHJvcGVydHkgb2YgdGhlIHRhcmdldCBlbGVt
ZW50IGFuZCBhbGwgaXRzIGluc3RhbmNlcy4KKworICAgICAgICAtLSBBZGQgU1ZHQW5pbWF0aW9u
UHJlc2VydmVBc3BlY3RSYXRpb0Z1bmN0aW9uIHRvIHByb2dyZXNzIGFuaW1WYWwgb2YKKyAgICAg
ICAgICAgYW5pbWF0ZWQgcHJvcGVydHkgaW4gYSBwZXJpb2Qgb2YgdGltZS4KKworICAgICAgICBT
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmJ1aWxkKCkgc2hvdWxkIGJlIGNv
bnN0IGZ1bmN0aW9uLgorICAgICAgICBUaGlzIGlzIHJlcXVpcmVkIGZvciB0aGlzIHBhdGNoIGJl
Y2F1c2UgU1ZHRkVJbWFnZUVsZW1lbnQ6OmJ1aWxkKCkgY2FsbHMKKyAgICAgICAgU1ZHRkVJbWFn
ZUVsZW1lbnQ6OnByZXNlcnZlQXNwZWN0UmF0aW8oKSB3aGljaCBpcyBjb25zdC4KKworICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmg6
IFJlbW92ZWQuCisgICAgICAgICogc3ZnL1NWR0FuaW1hdG9yRmFjdG9yeS5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0b3JGYWN0b3J5OjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdG
RUJsZW5kRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUJsZW5kRWxlbWVudDo6
YnVpbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVCbGVuZEVsZW1lbnQ6OmJ1aWxk
KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVCbGVuZEVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
RkVDb2xvck1hdHJpeEVsZW1lbnQ6OmJ1aWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpidWlsZCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NW
R0ZFQ29sb3JNYXRyaXhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFQ29tcG9uZW50VHJh
bnNmZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29tcG9uZW50VHJhbnNm
ZXJFbGVtZW50OjpidWlsZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbXBvbmVu
dFRyYW5zZmVyRWxlbWVudDo6YnVpbGQpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdGRUNv
bXBvbmVudFRyYW5zZmVyRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbXBvc2l0ZUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb21wb3NpdGVFbGVtZW50OjpidWls
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmJ1aWxk
KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50Lmg6CisgICAg
ICAgICogc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpidWlsZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6YnVpbGQpOiBEZWxldGVkLgorICAg
ICAgICAqIHN2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9T
VkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVE
aWZmdXNlTGlnaHRpbmdFbGVtZW50OjpidWlsZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OmJ1aWxkKTogRGVsZXRlZC4KKyAgICAgICAgKiBz
dmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRGlz
cGxhY2VtZW50TWFwRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURpc3BsYWNl
bWVudE1hcEVsZW1lbnQ6OmJ1aWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRGlz
cGxhY2VtZW50TWFwRWxlbWVudDo6YnVpbGQpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdG
RURpc3BsYWNlbWVudE1hcEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVEcm9wU2hhZG93
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURyb3BTaGFkb3dFbGVtZW50Ojpi
dWlsZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURyb3BTaGFkb3dFbGVtZW50Ojpi
dWlsZCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHRkVGbG9vZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHRkVGbG9vZEVsZW1lbnQ6OmJ1aWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZF
Rmxvb2RFbGVtZW50OjpidWlsZCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR0ZFRmxvb2RF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OmJ1aWxkIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6YnVpbGQpOiBEZWxl
dGVkLgorICAgICAgICAqIHN2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVJbWFn
ZUVsZW1lbnQ6OlNWR0ZFSW1hZ2VFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1h
Z2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUltYWdl
RWxlbWVudDo6YnVpbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVJbWFnZUVsZW1l
bnQ6OnJlZ2lzdGVyQXR0cmlidXRlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdG
RUltYWdlRWxlbWVudDo6YnVpbGQpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdGRUltYWdl
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRU1lcmdlRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGRU1lcmdlRWxlbWVudDo6YnVpbGQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRkVNZXJnZUVsZW1lbnQ6OmJ1aWxkKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcv
U1ZHRkVNZXJnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpidWlsZCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpidWlsZCk6
IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBzdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZF
T2Zmc2V0RWxlbWVudDo6YnVpbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVPZmZz
ZXRFbGVtZW50OjpidWlsZCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR0ZFT2Zmc2V0RWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OmJ1aWxkIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OmJ1
aWxkKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0ZFVGlsZUVsZW1lbnQ6OmJ1aWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0ZFVGlsZUVsZW1lbnQ6OmJ1aWxkKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVUaWxl
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmJ1aWxkIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmJ1aWxkKTogRGVsZXRlZC4K
KyAgICAgICAgKiBzdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9T
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaDoKKyAgICAgICAgKiBzdmcvU1ZH
Rml0VG9WaWV3Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpdFRvVmlld0JveDo6U1ZH
Rml0VG9WaWV3Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpdFRvVmlld0JveDo6cGFyc2VW
aWV3Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpdFRvVmlld0JveDo6cmVnaXN0ZXJBdHRy
aWJ1dGVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRml0VG9WaWV3Qm94Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdGaXRUb1ZpZXdCb3g6OnByZXNlcnZlQXNwZWN0UmF0aW8gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHRml0VG9WaWV3Qm94OjpwcmVzZXJ2ZUFzcGVjdFJhdGlv
QW5pbWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRml0VG9WaWV3Qm94OjpzZXRQcmVzZXJ2
ZUFzcGVjdFJhdGlvKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpdFRvVmlld0JveDo6cmVzZXRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpdFRvVmlld0JveDo6
cHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR0ltYWdl
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUVsZW1lbnQ6OlNWR0ltYWdl
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUVsZW1lbnQ6OnJlZ2lzdGVyQXR0
cmlidXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKToKKyAgICAgICAgKiBzdmcvU1ZHSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R01hcmtlckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0dGVybkVsZW1lbnQuaDoKKyAg
ICAgICAgKiBzdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1By
ZXNlcnZlQXNwZWN0UmF0aW86OmFsaWduIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1By
ZXNlcnZlQXNwZWN0UmF0aW86OnNldEFsaWduKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ByZXNl
cnZlQXNwZWN0UmF0aW86Om1lZXRPclNsaWNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1ByZXNlcnZlQXNwZWN0UmF0aW86OnNldE1lZXRPclNsaWNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OmFsaWduKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW86Om1lZXRPclNsaWNlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OlNWR1ByZXNlcnZlQXNwZWN0UmF0
aW8pOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR1N0cmluZ0xpc3QuaDoKKyAgICAgICAgKiBzdmcvU1ZHU3ltYm9sRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkUHJvcGVydHlBY2Nlc3NvckltcGwuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3JJbXBsLmg6CisgICAgICAgICogc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUltcGwuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGll
cy9TVkdBbmltYXRpb25EaXNjcmV0ZUZ1bmN0aW9uSW1wbC5oOgorICAgICAgICAqIHN2Zy9wcm9w
ZXJ0aWVzL1NWR0F0dHJpYnV0ZVJlZ2lzdHJ5Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMv
U1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eU93bmVyUmVnaXN0cnk6OnJlZ2lzdGVyUHJvcGVydHkpOgorCisyMDE5LTAzLTE5ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRo
ZSBTVkcgcHJvcGVydHkgdGVhciBvZmYgb2JqZWN0cyBvZiBTVkdBbmltYXRlZFJlY3QKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTk0OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNWR1JlY3QgaXMgYW4g
U1ZHIHR5cGUsIHNvIHdlIG5lZWQgdG8gaW50cm9kdWNlIHR3byBjbGFzc2VzIHRvIHJlcHJlc2Vu
dAorICAgICAgICBpdCBhbmQgaXRzIGFuaW1hdGVkIHByb3BlcnR5IFNWR0FuaW1hdGVkUmVjdC4K
KworICAgICAgICAtLSBTVkdWYWx1ZVByb3BlcnR5OiBJdCBpcyBkZXJpdmVkIGZyb20gU1ZHUHJv
cGVydHkgYW5kIGl0IHdpbGwgYmUgdGhlIAorICAgICAgICAgICBiYXNlIGNsYXNzIG9mIGFsbCB0
aGUgU1ZHIHR5cGUgYmFzZWQgcHJvcGVydGllcy4gSXQgaXMgYmFzaWNhbGx5IGEKKyAgICAgICAg
ICAgUmVmQ291bnRlZCBvYmplY3Qgd2l0aCBtX3ZhbHVlIG1lbWJlci4gRm9yIFNWR1JlY3QsIG1f
dmFsdWUgd2lsbCBiZQorICAgICAgICAgICBvZiB0eXBlIEZsb2F0UmVjdC4KKworICAgICAgICAt
LSBTVkdBbmltYXRlZFZhbHVlUHJvcGVydHk6IEl0IGlzIGRlcml2ZWQgZnJvbSBTVkdBbmltYXRl
ZFByb3BlcnR5IGFuZAorICAgICAgICAgICBpdCB3aWxsIGJlIHRoZSBiYXNlIGNsYXNzIG9mIGFs
bCB0aGUgYW5pbWF0ZWQgU1ZHIHR5cGUgYmFzZWQgcHJvcGVydGllcy4KKyAgICAgICAgICAgSXQg
aXMgUmVmQ291bnRlZCBvYmplY3Qgd2l0aCB0d28gUmVmQ291bnRlZCBtZW1iZXJzLiBUaGVzZSB0
d28gbWVtYmVycworICAgICAgICAgICBhcmUgb2YgdHlwZSBTVkdWYWx1ZVByb3BlcnR5LiBGb3Ig
U1ZHQW5pbWF0ZWRSZWN0LCBiYXNlVmFsIGFuZCBhbmltVmFsIAorICAgICAgICAgICB3aWxsIGJl
IG9mIHR5cGUgU1ZHUmVjdC4KKworICAgICAgICBTVkdBbmltYXRlZFZhbHVlUHJvcGVydHkgd2ls
bCBiZSByZXNwb25zaWJsZSBvZjoKKworICAgICAgICAxKSBQcm92aWRlIGFjY2VzcyB0byBpdHMg
YmFzZVZhbCBhbmQgYW5pbVZhbC4gTm90ZSB0aGUgc2FtZSBpbnRlcmZhY2UKKyAgICAgICAgICAg
aXMgdXNlZCBpbnRlcm5hbGx5IGFuZCB1c2VkIGJ5IHRoZSBET00uCisKKyAgICAgICAgMikgTWFu
YWdpbmcgdGhlIGFuaW1hdGlvbiBvZiB0aGUgcHJvcGVydHkgYnkgc3RhcnRpbmcgYW5kIHN0b3Bw
aW5nIGl0LgorCisgICAgICAgIDMpIENvb3JkaW5hdGluZyB0aGUgY2hhbmdlcyBpbiBpdHMgYmFz
ZVZhbCBhbmQgYW5pbVZhbCB3aXRoIHRoZSBvd25lcgorICAgICAgICAgICBlbGVtZW50LgorCisg
ICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFJlY3QuY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFJlY3QuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdmcv
U1ZHQW5pbWF0b3JGYWN0b3J5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRvckZhY3Rv
cnk6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR0F0dHJpYnV0ZUFuaW1hdGlvbkNvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQXR0cmlidXRlQW5pbWF0aW9uQ29udHJvbGxl
cjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgIFRoaXMgaXMgYSBidWcgZnJvbSBy
MjQzMDM2LiBUaGUgPHNldD4gY2FuIGJlIHRoZSB0YWcgb2YgbV9hbmltYXRpb25FbGVtZW50Cisg
ICAgICAgIG5vdCBtX3RhcmdldEVsZW1lbnQuCisgICAgICAgICogc3ZnL1NWR0F0dHJpYnV0ZUFu
aW1hdGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBzdmcvU1ZHQXR0cmlidXRlQW5pbWF0aW9u
Q29udHJvbGxlckJhc2UuaDoKKyAgICAgICAgKiBzdmcvU1ZHRml0VG9WaWV3Qm94LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZpdFRvVmlld0JveDo6U1ZHRml0VG9WaWV3Qm94KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0ZpdFRvVmlld0JveDo6cmVnaXN0ZXJBdHRyaWJ1dGVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0ZpdFRvVmlld0JveDo6c2V0Vmlld0JveCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdGaXRUb1ZpZXdCb3g6OnJlc2V0Vmlld0JveCk6CisgICAgICAgICogc3ZnL1NWR0Zp
dFRvVmlld0JveC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRml0VG9WaWV3Qm94Ojp2aWV3Qm94
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpdFRvVmlld0JveDo6dmlld0JveEFuaW1h
dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpdFRvVmlld0JveDo6dmlld0JveFN0cmluZyBj
b25zdCk6CisgICAgICAgICogc3ZnL1NWR01hcmtlckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcv
U1ZHUGF0dGVybkVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHUmVjdC5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUmVjdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6Ongp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6c2V0WCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdSZWN0Ojp5KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OnNldFkpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUmVjdDo6d2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6c2V0
V2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6aGVpZ2h0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1JlY3Q6OnNldEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0OjpT
VkdSZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjaGVja0ludGVyc2VjdGlvbldpdGhvdXRVcGRhdGluZ0xheW91dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpjaGVja0VuY2xvc3VyZVdpdGhvdXRVcGRhdGluZ0xheW91dCk6Cisg
ICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU3ltYm9sRWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdWaWV3U3BlYzo6U1ZHVmlld1NwZWMpOgorICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5o
OgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlBY2Nlc3Nvcklt
cGwuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0
b3JJbXBsLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUlt
cGwuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFZhbHVlUHJvcGVydHku
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFZhbHVlUHJvcGVydHk6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFZhbHVlUHJvcGVydHk6On5TVkdB
bmltYXRlZFZhbHVlUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRWYWx1
ZVByb3BlcnR5OjpzZXRCYXNlVmFsSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRWYWx1ZVByb3BlcnR5OjpiYXNlVmFsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkVmFsdWVQcm9wZXJ0eTo6YmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRlZFZhbHVlUHJvcGVydHk6OnNldEFuaW1WYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRWYWx1ZVByb3BlcnR5OjphbmltVmFsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eTo6YW5pbVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFZhbHVlUHJvcGVydHk6OmN1cnJlbnRWYWx1ZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFZhbHVlUHJvcGVydHk6OlNWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0
eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFZhbHVlUHJvcGVydHk6OmVuc3VyZUFu
aW1WYWwpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGlvbkFkZGl0aXZlVmFs
dWVGdW5jdGlvbkltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvblJlY3RGdW5j
dGlvbjo6cHJvZ3Jlc3MpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZVJl
Z2lzdHJ5Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lclJlZ2lz
dHJ5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk6OnJlZ2lz
dGVyUHJvcGVydHkpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHku
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZVByb3BlcnR5OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWVQcm9wZXJ0eTo6dmFsdWUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHVmFsdWVQcm9wZXJ0eTo6c2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHVmFsdWVQcm9wZXJ0eTo6dmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWVQ
cm9wZXJ0eTo6U1ZHVmFsdWVQcm9wZXJ0eSk6CisKIDIwMTktMDMtMTkgIFphbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5kZXJFbGVtZW50OjpzdGFydEFuaW1hdGlv
biBzaG91bGQgdGFrZSBjb25zdCBBbmltYXRpb24mCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDcxY2ZmMWIx
MWIyNzBhNTUzOWFjMjQ0ZjVlNWQzMWVjMjZkNWIwODIuLjM2YWE1MTE1OGQyNTg3ZGFiZjQxNjZk
NjI5OTRmODViOGY0OWI3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yMjc5LDggKzIyNzksNiBAQCBz
dmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAogc3ZnL1NWR0FuaW1hdGVkTnVtYmVyT3B0aW9u
YWxOdW1iZXIuY3BwCiBzdmcvU1ZHQW5pbWF0ZWRQYXRoLmNwcAogc3ZnL1NWR0FuaW1hdGVkUG9p
bnRMaXN0LmNwcAotc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAKLXN2Zy9T
VkdBbmltYXRlZFJlY3QuY3BwCiBzdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwCiBzdmcvU1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcAogc3ZnL1NWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDJlNTI5ZGM0MjQ5NjE0MmM5MTk1MTM0YTdiNjU3ZDNjYjgxMDg5NjQuLmRhZmM1YmI5ZTIx
ZGE5NzhiODMzNDMwYjVlZDc4Njg4ODY5Mzc0YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4Myw3ICsyODMsNiBAQAogCQkw
OEIzNUIxMzEyN0I2QTdDMDA1MzE0REQgLyogU1ZHQW5pbWF0ZWROdW1iZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4QjM1QjEyMTI3QjZBN0MwMDUz
MTRERCAvKiBTVkdBbmltYXRlZE51bWJlci5oICovOyB9OwogCQkwOEIzNUIxNzEyN0I2QTg4MDA1
MzE0REQgLyogU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwOEIzNUIxNjEyN0I2QTg4MDA1MzE0REQgLyogU1ZHQW5p
bWF0ZWROdW1iZXJMaXN0LmggKi87IH07CiAJCTA4QzdBMkM3MTBEQzc0NjIwMDJEMzY4QiAvKiBT
VkdOYW1lcy5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNjU2NTgxRTkwOUQxNTA4RDAwMEU2MUQ3IC8qIFNWR05hbWVzLmggKi87
IH07Ci0JCTA4Qzg1OUMwMTI3NDU3NTQwMEE1NzI4RCAvKiBTVkdBbmltYXRlZFJlY3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4Qzg1OUJGMTI3NDU3
NTMwMEE1NzI4RCAvKiBTVkdBbmltYXRlZFJlY3QuaCAqLzsgfTsKIAkJMDhDOTI1MUEwRkNDN0M0
QTAwNDgwREVDIC8qIEZpbHRlckVmZmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDhDOTI1MTgwRkNDN0M0QTAwNDgwREVDIC8qIEZpbHRlckVmZmVj
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA4
Q0EzRDQ0MTI4OTRBMzgwMEZGRjI2MCAvKiBTVkdNYXRyaXhUZWFyT2ZmLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwOENBM0Q0MzEyODk0QTM4MDBGRkYy
NjAgLyogU1ZHTWF0cml4VGVhck9mZi5oICovOyB9OwogCQkwOEQ0NkNFMzEyN0FENUZDMDA4OTY5
NEIgLyogU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDhENDZDRTIxMjdBRDVGQzAwODk2OTRCIC8qIFNWR0FuaW1h
dGVkRW51bWVyYXRpb24uaCAqLzsgfTsKQEAgLTI5NCw3ICsyOTMsNiBAQAogCQkwOEYyRjAwQTEy
MTNFNjE3MDBEQ0VDNDggLyogUmVuZGVySW1hZ2VSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDhGMkYwMDgxMjEzRTYxNzAwRENFQzQ4IC8q
IFJlbmRlckltYWdlUmVzb3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwOEY4NTlENTE0NjNGOUNEMDA2N0Q5MzMgLyogU1ZHSW1hZ2VDYWNo
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDhGODU5
RDMxNDYzRjlDRDAwNjdEOTMzIC8qIFNWR0ltYWdlQ2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwOEY4NTlENTE0NjNGOUNEMDA2N0Q5MzQg
LyogU1ZHSW1hZ2VGb3JDb250YWluZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA4Rjg1OUQzMTQ2M0Y5Q0QwMDY3RDkzNCAvKiBTVkdJbWFnZUZvckNv
bnRhaW5lci5oICovOyB9OwotCQkwOEZFMEJDNTEyN0UyQUMxMDAwQzRGQjUgLyogU1ZHQW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwOEZFMEJDNDEyN0UyQUMxMDAwQzRGQjUgLyogU1ZHQW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvLmggKi87IH07CiAJCTBBRkRBQzNEMTBGNTQ0OEMwMEUxRjNEMiAvKiBQ
bHVnaW5WaWV3QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEFGREFDM0MxMEY1NDQ4QzAwRTFGM0QyIC8qIFBsdWdpblZpZXdCYXNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEI5MDU2MUEwRjI1
NzhCRjAwOTVGRjZBIC8qIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEI5MDU2MTYwRjI1NzhCRTAwOTVGRjZB
IC8qIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKCk7IH07IH07CiAJCTBCOTA1NjFCMEYyNTc4QkYwMDk1RkY2QSAvKiBUaHJlYWRhYmxlTG9h
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQjkw
NTYxNzBGMjU3OEJFMDA5NUZGNkEgLyogVGhyZWFkYWJsZUxvYWRlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01NjYzLDcgKzU2NjEsNiBAQAog
CQkwOEE0ODQ3NjBFNTI3MkM1MDBDM0ZFNzYgLyogU2NyaXB0RWxlbWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA4QjM1QjEyMTI3QjZBN0MwMDUzMTRERCAvKiBTVkdBbmltYXRlZE51bWJl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZE51bWJlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwOEIzNUIxNjEyN0I2QTg4MDA1MzE0REQg
LyogU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNWR0FuaW1hdGVkTnVtYmVyTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkwOEM4NTlCRjEyNzQ1NzUzMDBBNTcyOEQgLyogU1ZHQW5pbWF0ZWRSZWN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkUmVjdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwOEM5MjUxNzBGQ0M3QzRBMDA0ODBERUMgLyogRmlsdGVyRWZmZWN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbHRlckVmZmVjdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4QzkyNTE4MEZDQzdDNEEwMDQ4MERF
QyAvKiBGaWx0ZXJFZmZlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmls
dGVyRWZmZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4Q0EzRDQzMTI4OTRB
MzgwMEZGRjI2MCAvKiBTVkdNYXRyaXhUZWFyT2ZmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNWR01hdHJpeFRlYXJPZmYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTU2ODAsNyArNTY3Nyw2IEBACiAJCTA4Rjg1OUQyMTQ2M0Y5Q0QwMDY3RDkzNCAvKiBTVkdJ
bWFnZUZvckNvbnRhaW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTVkdJbWFnZUZvckNvbnRhaW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA4Rjg1OUQzMTQ2M0Y5Q0QwMDY3RDkzMyAvKiBTVkdJbWFnZUNhY2hlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0ltYWdlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDhGODU5RDMxNDYzRjlDRDAwNjdEOTM0IC8qIFNWR0ltYWdlRm9yQ29udGFp
bmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0ltYWdlRm9yQ29udGFp
bmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA4RkUwQkM0MTI3RTJBQzEwMDBD
NEZCNSAvKiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBBRkRBQzNDMTBGNTQ0OEMwMEUxRjNEMiAvKiBQbHVn
aW5WaWV3QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbHVnaW5WaWV3
QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwQjhDNTZEMzBGMjg2MjdGMDAw
NTAyRTEgLyogSFRUUEhlYWRlck1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBIVFRQSGVhZGVyTWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEI5MDU2MTUwRjI1NzhCRTAwOTVGRjZBIC8qIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudFRocmVhZGFibGVM
b2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzU3NywxMSArNzU3Myw5
IEBACiAJCTQyN0RBNzFCMTM3MzVERkEwMDdDNTdGQiAvKiBKU1NlcnZpY2VXb3JrZXJJbnRlcm5h
bHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTZXJ2aWNlV29y
a2VySW50ZXJuYWxzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDI3REE3MUMx
MzczNURGQTAwN0M1N0ZCIC8qIEpTU2VydmljZVdvcmtlckludGVybmFscy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDMxMDdCRTExOENDMTlERTAwQ0MxOEU4IC8qIFNlbGVj
dG9yUHNldWRvVHlwZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWxl
Y3RvclBzZXVkb1R5cGVNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDMxNDJF
NzkxM0IxRTk3NzAwRjFDODcxIC8qIFNWR0FuaW1hdGVkUmVjdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZFJlY3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MzFBMkY5QTEzQjZGMkIwMDA3NzkxRTQgLyogU1ZHQW5pbWF0ZWRO
dW1iZXJPcHRpb25hbE51bWJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
VkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQzMUEyRjlCMTNCNkYyQjAwMDc3OTFFNCAvKiBTVkdBbmltYXRlZE51bWJlck9wdGlv
bmFsTnVtYmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0Fu
aW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MzFBMkZENjEzQjc3MDdBMDA3NzkxRTQgLyogU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkTGVuZ3Ro
TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQzMUEzMDIwMTNCODlEQ0Mw
MDc3OTFFNCAvKiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDMyRDNGRTcxOEE4NjU4NDAwRDdE
QzAzIC8qIFNlbGVjdG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MzMxQUM3NzEzQjY4NzAwMDBBOUU1QUUgLyogU1ZHQW5pbWF0
ZWROdW1iZXJMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNW
R0FuaW1hdGVkTnVtYmVyTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQz
NThFODdBMTM2MEEyRUUwMEU0NzQ4QyAvKiBKU1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdGRURyb3BTaGFkb3dFbGVt
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk1MTMsNiArOTUwNyw4IEBA
CiAJCTcxRUZDRURFMjAyQjM5QzcwMEQ3QzQxMSAvKiBKU0FuaW1hdGlvbkVmZmVjdEN1c3RvbS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FuaW1hdGlvbkVmZmVj
dEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxRjkzNkY3MURENEY5
OUIwMDkyMkNDNyAvKiB0cmFja3Mtc3VwcG9ydC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2
YXNjcmlwdDsgcGF0aCA9ICJ0cmFja3Mtc3VwcG9ydC5qcyI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTcxRkI5NjdBMTM4M0Q2NDYwMEFDOEE0QyAvKiBTVkdBbmltYXRlZEVudW1lcmF0
aW9uUHJvcGVydHlUZWFyT2ZmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNW
R0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNzIxNDQzNDUyMjQwQzhCQTAwRjEyRkY3IC8qIFNWR0FuaW1hdGVkVmFsdWVQ
cm9wZXJ0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFZhbHVlUHJvcGVydHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzIxNDQzNDYyMjQwQ0FEMjAwRjEyRkY3IC8qIFNW
R1ZhbHVlUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHVmFsdWVQcm9wZXJ0eS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjNGOTdCQzIyMzhFRTA4MDA3RjA3OUMgLyogU1ZH
QXR0cmlidXRlQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdB
dHRyaWJ1dGVBbmltYXRpb25Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzIzRjk3QkQyMjM4RUUwODAwN0YwNzlDIC8qIFNWR0F0dHJpYnV0ZUFuaW1hdGlvbkNv
bnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQXR0cmlidXRlQW5pbWF0aW9uQ29udHJvbGxl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjNGOTdCRTIyMzk1MTJEMDA3RjA3
OUMgLyogU1ZHTGVnYWN5QXR0cmlidXRlQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTVkdMZWdhY3lBdHRyaWJ1dGVBbmltYXRpb25Db250cm9sbGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MjMxLDYgKzE2MjI3LDcgQEAKIAkJCQk1NUZB
N0ZGRTIxMTEwRTZFMDA1QUVGRTcgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eVR5cGUuaCAqLywKIAkJ
CQkwODUyNUU2MjEyNzhDMDAxMDBBODQ3NzggLyogU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRl
YXJPZmYuaCAqLywKIAkJCQkwODVBMTU5MjEyODlBOEREMDAyNzEwRTMgLyogU1ZHQW5pbWF0ZWRU
cmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmggKi8sCisJCQkJNzIxNDQzNDUyMjQwQzhCQTAw
RjEyRkY3IC8qIFNWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oICovLAogCQkJCTU1QkUwMjVGMjIz
QjI5QzUwMDMyRjA4QSAvKiBTVkdBbmltYXRpb25BZGRpdGl2ZUZ1bmN0aW9uLmggKi8sCiAJCQkJ
NTVFRTUzNUUyMjNCMkEwRTAwRkJBOTQ0IC8qIFNWR0FuaW1hdGlvbkFkZGl0aXZlVmFsdWVGdW5j
dGlvbi5oICovLAogCQkJCTU1QkUwMjU5MjIzQjI5QzEwMDMyRjA4QSAvKiBTVkdBbmltYXRpb25B
ZGRpdGl2ZVZhbHVlRnVuY3Rpb25JbXBsLmggKi8sCkBAIC0xNjI2NCw2ICsxNjI2MSw3IEBACiAJ
CQkJMDg4QTBFMDIxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5VGVhck9mZi5oICovLAog
CQkJCTA4OEEwRTAzMTI2RUYxREIwMDk3OEY3QSAvKiBTVkdQcm9wZXJ0eVRyYWl0cy5oICovLAog
CQkJCTA4MTNBNEU5MTI4NDEzMjYwMDk5MjUxMSAvKiBTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYu
aCAqLywKKwkJCQk3MjE0NDM0NjIyNDBDQUQyMDBGMTJGRjcgLyogU1ZHVmFsdWVQcm9wZXJ0eS5o
ICovLAogCQkJKTsKIAkJCXBhdGggPSBwcm9wZXJ0aWVzOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTI0MTQ2LDExICsyNDE0NCw3IEBACiAJCQkJMDg2Mzk1MTQxM0I1RkU1NzAwQkIz
NDREIC8qIFNWR0FuaW1hdGVkUGF0aC5oICovLAogCQkJCTQzQjkzMzY4MTNCMjYxQjEwMDQ1ODRC
RiAvKiBTVkdBbmltYXRlZFBvaW50TGlzdC5jcHAgKi8sCiAJCQkJNDNCOTMzNjcxM0IyNjFCMTAw
NDU4NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRMaXN0LmggKi8sCi0JCQkJNDMxQTMwMjAxM0I4OURD
QzAwNzc5MUU0IC8qIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAgKi8sCi0JCQkJ
MDhGRTBCQzQxMjdFMkFDMTAwMEM0RkI1IC8qIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
by5oICovLAogCQkJCUIyMjI3N0Y0MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW8uaWRsICovLAotCQkJCTQzMTQyRTc5MTNCMUU5NzcwMEYxQzg3MSAvKiBT
VkdBbmltYXRlZFJlY3QuY3BwICovLAotCQkJCTA4Qzg1OUJGMTI3NDU3NTMwMEE1NzI4RCAvKiBT
VkdBbmltYXRlZFJlY3QuaCAqLywKIAkJCQlCMjIyNzdGNTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZH
QW5pbWF0ZWRSZWN0LmlkbCAqLywKIAkJCQk0M0E2MjY2NjEzQjNEMTEwMDBBQzk0QjggLyogU1ZH
QW5pbWF0ZWRTdHJpbmcuY3BwICovLAogCQkJCTA4NERCNTlBMTI4MDA4Q0MwMDJBNkQ2NCAvKiBT
VkdBbmltYXRlZFN0cmluZy5oICovLApAQCAtMzE5MjksMTEgKzMxOTIzLDkgQEAKIAkJCQkwODYz
OTUxNjEzQjVGRTU3MDBCQjM0NEQgLyogU1ZHQW5pbWF0ZWRQYXRoLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwODlBOEUwNzEyOEQ4QjNEMDBFN0E1MzQgLyogU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFBy
b3BlcnR5VGVhck9mZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDNCOTMzNjkxM0IyNjFCMTAwNDU4
NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRMaXN0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwOEZFMEJD
NTEyN0UyQUMxMDAwQzRGQjUgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwODhBMEUwNjEyNkVGMURCMDA5NzhGN0EgLyogU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eURlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODhBMEUwODEyNkVGMURC
MDA5NzhGN0EgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaCBpbiBIZWFkZXJzICovLAog
CQkJCTU1RkE3RkZGMjExMTBFNkUwMDVBRUZFNyAvKiBTVkdBbmltYXRlZFByb3BlcnR5VHlwZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMDhDODU5QzAxMjc0NTc1NDAwQTU3MjhEIC8qIFNWR0FuaW1h
dGVkUmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg1MjVFNjMxMjc4QzAwMTAwQTg0Nzc4IC8q
IFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
ODREQjU5QjEyODAwOENDMDAyQTZENjQgLyogU1ZHQW5pbWF0ZWRTdHJpbmcuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA4MjUwOTM5MTI4QkQ0RDgwMEUyRUQ4RSAvKiBTVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3QuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDJiOTYwNWQyZGUzZjUzM2EyMmZhNWVmODZhY2E3ZjUzZjk2ZDgzNS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDg1
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVk
IDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgot
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCIKLQotI2luY2x1ZGUgIlNWR0FuaW1h
dGVFbGVtZW50QmFzZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVNWR0FuaW1hdGVkUHJl
c2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9B
bmltYXRvcihTVkdBbmltYXRpb25FbGVtZW50KiBhbmltYXRpb25FbGVtZW50LCBTVkdFbGVtZW50
KiBjb250ZXh0RWxlbWVudCkKLSAgICA6IFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yKEFuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpbywgYW5pbWF0aW9uRWxlbWVudCwgY29udGV4dEVsZW1lbnQpCi17
Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYg
c3RyaW5nKQotewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZShTVkdQcm9wZXJ0
eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+Ojpmcm9tU3RyaW5nKHN0cmluZykp
OwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKLXsKLSAgICByZXR1cm4g
Y29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+KGFu
aW1hdGVkVHlwZXMpOwotfQotCi12b2lkIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0Fu
aW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCi17Ci0gICAgc3RvcEFuaW1WYWxBbmltYXRpb25Gb3JU
eXBlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4oYW5pbWF0ZWRUeXBlcyk7Ci19Ci0K
LXZvaWQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnJlc2V0QW5pbVZh
bFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVk
VHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKLXsKLSAgICByZXNldEZyb21CYXNlVmFsdWU8
U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvPihhbmltYXRlZFR5cGVzLCB0eXBlKTsKLX0K
LQotdm9pZCBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6YW5pbVZhbFdp
bGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5
cGVzKQotewotICAgIGFuaW1WYWxXaWxsQ2hhbmdlRm9yVHlwZTxTVkdBbmltYXRlZFByZXNlcnZl
QXNwZWN0UmF0aW8+KGFuaW1hdGVkVHlwZXMpOwotfQotCi12b2lkIFNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpb0FuaW1hdG9yOjphbmltVmFsRGlkQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRB
bmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKLXsKLSAgICBhbmltVmFsRGlkQ2hh
bmdlRm9yVHlwZTxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+KGFuaW1hdGVkVHlwZXMp
OwotfQotCi12b2lkIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjphZGRB
bmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSopCi17Ci0gICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwg
dW5zaWduZWQsIFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5pbWF0ZWRUeXBlKiB0bywgU1ZH
QW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiBhbmltYXRlZCkKLXsKLSAgICBBU1NFUlQo
bV9hbmltYXRpb25FbGVtZW50KTsKLSAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7Ci0KLSAg
ICBjb25zdCBhdXRvJiBmcm9tUHJlc2VydmVBc3BlY3RSYXRpbyA9IChtX2FuaW1hdGlvbkVsZW1l
bnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBBbmltYXRpb25Nb2RlOjpUbyA/IGFuaW1hdGVkIDogZnJv
bSktPmFzPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oKTsKLSAgICBjb25zdCBhdXRvJiB0
b1ByZXNlcnZlQXNwZWN0UmF0aW8gPSB0by0+YXM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
PigpOwotICAgIGF1dG8mIGFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyA9IGFuaW1hdGVkLT5h
czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KCk7Ci0KLSAgICBtX2FuaW1hdGlvbkVsZW1l
bnQtPmFuaW1hdGVEaXNjcmV0ZVR5cGU8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPihwZXJj
ZW50YWdlLCBmcm9tUHJlc2VydmVBc3BlY3RSYXRpbywgdG9QcmVzZXJ2ZUFzcGVjdFJhdGlvLCBh
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8pOwotfQotCi1mbG9hdCBTVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJikKLXsKLSAgICAvLyBObyBwYWNlZCBhbmltYXRpb25zIGZvciBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvLgotICAgIHJldHVybiAtMTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyNjk5ZDlkMDc0NzhmOGZlMTgxMjFmMDIzYTUyYTA2NjY1NmRj
ODQ0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaAorKysgL2Rldi9u
dWxsCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1v
dGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0g
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRUeXBlQW5pbWF0b3IuaCIKLSNpbmNsdWRlICJTVkdBdHRyaWJ1dGVBY2Nlc3Nvci5oIgotI2lu
Y2x1ZGUgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1jbGFzcyBTVkdBbmltYXRpb25FbGVtZW50OwotCi11c2luZyBTVkdBbmltYXRlZFByZXNlcnZl
QXNwZWN0UmF0aW8gPSBTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZjxTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvPjsKLXVzaW5nIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0F0dHJpYnV0ZSA9
IFNWR0FuaW1hdGVkQXR0cmlidXRlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz47Ci0K
LXRlbXBsYXRlPHR5cGVuYW1lIE93bmVyVHlwZT4KLXVzaW5nIFNWR0FuaW1hdGVkUHJlc2VydmVB
c3BlY3RSYXRpb0F0dHJpYnV0ZUFjY2Vzc29yID0gU1ZHQW5pbWF0ZWRBdHRyaWJ1dGVBY2Nlc3Nv
cjxPd25lclR5cGUsIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0F0dHJpYnV0ZSwgQW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvPjsKLQotY2xhc3MgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvQW5pbWF0b3IgZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3Ig
ewotcHVibGljOgotICAgIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yKFNW
R0FuaW1hdGlvbkVsZW1lbnQqLCBTVkdFbGVtZW50Kik7Ci0KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpIG92ZXJy
aWRlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IHN0YXJ0QW5pbVZhbEFu
aW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsK
LSAgICB2b2lkIHN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYsIFNWR0FuaW1hdGVkVHlwZSYpIG92
ZXJyaWRlOwotICAgIHZvaWQgYW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHJvcGVydHlMaXN0Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBhbmltVmFsRGlkQ2hhbmdlKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIG92ZXJyaWRlOwotCi0gICAgdm9p
ZCBhZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSopIG92
ZXJyaWRlOwotICAgIHZvaWQgY2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdl
LCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBl
KiwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKikgb3ZlcnJpZGU7Ci0gICAgZmxv
YXQgY2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJp
bmcmIHRvU3RyaW5nKSBvdmVycmlkZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFJlY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDMwZmExNmM0ZmJkYzUzYWRkMTBkMDQ3NGI0N2M2ZjQyNGFlYTEzYTIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkUmVjdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5OSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAq
Ci0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQot
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRS
ZWN0LmgiCi0KLSNpbmNsdWRlICJTVkdBbmltYXRlRWxlbWVudEJhc2UuaCIKLSNpbmNsdWRlICJT
VkdQYXJzZXJVdGlsaXRpZXMuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1TVkdBbmltYXRl
ZFJlY3RBbmltYXRvcjo6U1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3IoU1ZHQW5pbWF0aW9uRWxlbWVu
dCogYW5pbWF0aW9uRWxlbWVudCwgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpCi0gICAgOiBT
VkdBbmltYXRlZFR5cGVBbmltYXRvcihBbmltYXRlZFJlY3QsIGFuaW1hdGlvbkVsZW1lbnQsIGNv
bnRleHRFbGVtZW50KQotewotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBT
VkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcm
IHN0cmluZykKLXsKLSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVy
dHlUcmFpdHM8RmxvYXRSZWN0Pjo6ZnJvbVN0cmluZyhzdHJpbmcpKTsKLX0KLQotc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OnN0YXJ0QW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMpCi17Ci0gICAgcmV0dXJuIGNvbnN0cnVjdEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0
ZWRSZWN0PihhbmltYXRlZFR5cGVzKTsKLX0KLQotdm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRv
cjo6c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlM
aXN0JiBhbmltYXRlZFR5cGVzKQotewotICAgIHN0b3BBbmltVmFsQW5pbWF0aW9uRm9yVHlwZTxT
VkdBbmltYXRlZFJlY3Q+KGFuaW1hdGVkVHlwZXMpOwotfQotCi12b2lkIFNWR0FuaW1hdGVkUmVj
dEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVk
UHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBTVkdBbmltYXRlZFR5cGUmIHR5cGUpCi17Ci0g
ICAgcmVzZXRGcm9tQmFzZVZhbHVlPFNWR0FuaW1hdGVkUmVjdD4oYW5pbWF0ZWRUeXBlcywgdHlw
ZSk7Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdl
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKLXsK
LSAgICBhbmltVmFsV2lsbENoYW5nZUZvclR5cGU8U1ZHQW5pbWF0ZWRSZWN0PihhbmltYXRlZFR5
cGVzKTsKLX0KLQotdm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6YW5pbVZhbERpZENoYW5n
ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCi17
Ci0gICAgYW5pbVZhbERpZENoYW5nZUZvclR5cGU8U1ZHQW5pbWF0ZWRSZWN0PihhbmltYXRlZFR5
cGVzKTsKLX0KLQotdm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6YWRkQW5pbWF0ZWRUeXBl
cyhTVkdBbmltYXRlZFR5cGUqIGZyb20sIFNWR0FuaW1hdGVkVHlwZSogdG8pCi17Ci0gICAgQVNT
RVJUKGZyb20tPnR5cGUoKSA9PSBBbmltYXRlZFJlY3QpOwotICAgIEFTU0VSVChmcm9tLT50eXBl
KCkgPT0gdG8tPnR5cGUoKSk7Ci0KLSAgICB0by0+YXM8RmxvYXRSZWN0PigpICs9IGZyb20tPmFz
PEZsb2F0UmVjdD4oKTsKLX0KLQotdm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y2FsY3Vs
YXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwg
U1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5
cGUqIHRvQXRFbmRPZkR1cmF0aW9uLCBTVkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkKQotewotICAg
IEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwotICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50
KTsKLQotICAgIGNvbnN0IGF1dG8mIGZyb21SZWN0ID0gKG1fYW5pbWF0aW9uRWxlbWVudC0+YW5p
bWF0aW9uTW9kZSgpID09IEFuaW1hdGlvbk1vZGU6OlRvID8gYW5pbWF0ZWQgOiBmcm9tKS0+YXM8
RmxvYXRSZWN0PigpOwotICAgIGNvbnN0IGF1dG8mIHRvUmVjdCA9IHRvLT5hczxGbG9hdFJlY3Q+
KCk7Ci0gICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25SZWN0ID0gdG9BdEVuZE9mRHVy
YXRpb24tPmFzPEZsb2F0UmVjdD4oKTsKLSAgICBhdXRvJiBhbmltYXRlZFJlY3QgPSBhbmltYXRl
ZC0+YXM8RmxvYXRSZWN0PigpOwotCi0gICAgZmxvYXQgYW5pbWF0ZWRYID0gYW5pbWF0ZWRSZWN0
LngoKTsKLSAgICBmbG9hdCBhbmltYXRlZFkgPSBhbmltYXRlZFJlY3QueSgpOwotICAgIGZsb2F0
IGFuaW1hdGVkV2lkdGggPSBhbmltYXRlZFJlY3Qud2lkdGgoKTsKLSAgICBmbG9hdCBhbmltYXRl
ZEhlaWdodCA9IGFuaW1hdGVkUmVjdC5oZWlnaHQoKTsKLSAgICBtX2FuaW1hdGlvbkVsZW1lbnQt
PmFuaW1hdGVBZGRpdGl2ZU51bWJlcihwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgZnJvbVJlY3Qu
eCgpLCB0b1JlY3QueCgpLCB0b0F0RW5kT2ZEdXJhdGlvblJlY3QueCgpLCBhbmltYXRlZFgpOwot
ICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKHBlcmNlbnRhZ2Us
IHJlcGVhdENvdW50LCBmcm9tUmVjdC55KCksIHRvUmVjdC55KCksIHRvQXRFbmRPZkR1cmF0aW9u
UmVjdC55KCksIGFuaW1hdGVkWSk7Ci0gICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRk
aXRpdmVOdW1iZXIocGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGZyb21SZWN0LndpZHRoKCksIHRv
UmVjdC53aWR0aCgpLCB0b0F0RW5kT2ZEdXJhdGlvblJlY3Qud2lkdGgoKSwgYW5pbWF0ZWRXaWR0
aCk7Ci0gICAgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRlQWRkaXRpdmVOdW1iZXIocGVyY2Vu
dGFnZSwgcmVwZWF0Q291bnQsIGZyb21SZWN0LmhlaWdodCgpLCB0b1JlY3QuaGVpZ2h0KCksIHRv
QXRFbmRPZkR1cmF0aW9uUmVjdC5oZWlnaHQoKSwgYW5pbWF0ZWRIZWlnaHQpOwotCi0gICAgYW5p
bWF0ZWRSZWN0ID0gRmxvYXRSZWN0KGFuaW1hdGVkWCwgYW5pbWF0ZWRZLCBhbmltYXRlZFdpZHRo
LCBhbmltYXRlZEhlaWdodCk7Ci19Ci0KLWZsb2F0IFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yOjpj
YWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQotewotICAgIC8v
IEZJWE1FOiBEaXN0YW5jZSBjYWxjdWxhdGlvbiBpcyBub3QgcG9zc2libGUgZm9yIFNWR1JlY3Qg
cmlnaHQgbm93LiBXZSBuZWVkIHRoZSBkaXN0YW5jZSBvZiBmb3IgZXZlcnkgc2luZ2xlIHZhbHVl
LgotICAgIHJldHVybiAtMTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkUmVjdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUmVjdC5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YjI2ZGNlNGY0YzZhNmUyMzMyZjIzYWI0
ZWNlZThmYWIyZjIwNjk4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFJlY3QuaAorKysgL2Rldi9udWxs
CkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlv
biBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0g
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgot
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1
ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRU
eXBlQW5pbWF0b3IuaCIKLSNpbmNsdWRlICJTVkdBdHRyaWJ1dGVBY2Nlc3Nvci5oIgotI2luY2x1
ZGUgIlNWR1JlY3QuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBTVkdBbmltYXRp
b25FbGVtZW50OwotY2xhc3MgU1ZHUmVjdDsKLQotdXNpbmcgU1ZHQW5pbWF0ZWRSZWN0ID0gU1ZH
QW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmY8U1ZHUmVjdD47Ci11c2luZyBTVkdBbmltYXRlZFJlY3RB
dHRyaWJ1dGUgPSBTVkdBbmltYXRlZEF0dHJpYnV0ZTxTVkdBbmltYXRlZFJlY3Q+OwotCi10ZW1w
bGF0ZTx0eXBlbmFtZSBPd25lclR5cGU+Ci11c2luZyBTVkdBbmltYXRlZFJlY3RBdHRyaWJ1dGVB
Y2Nlc3NvciA9IFNWR0FuaW1hdGVkQXR0cmlidXRlQWNjZXNzb3I8T3duZXJUeXBlLCBTVkdBbmlt
YXRlZFJlY3RBdHRyaWJ1dGUsIEFuaW1hdGVkUmVjdD47Ci0KLWNsYXNzIFNWR0FuaW1hdGVkUmVj
dEFuaW1hdG9yIGZpbmFsIDogcHVibGljIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yIHsKLXB1Ymxp
YzoKLSAgICBTVkdBbmltYXRlZFJlY3RBbmltYXRvcihTVkdBbmltYXRpb25FbGVtZW50KiwgU1ZH
RWxlbWVudCopOwotCi0gICAgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY29uc3Ry
dWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8U1ZHQW5pbWF0ZWRUeXBlPiBzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVu
dEFuaW1hdGVkUHJvcGVydHlMaXN0Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzdG9wQW5pbVZhbEFu
aW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsK
LSAgICB2b2lkIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmLCBTVkdBbmltYXRlZFR5cGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIGFuaW1W
YWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIG92ZXJy
aWRlOwotICAgIHZvaWQgYW5pbVZhbERpZENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKLQotICAgIHZvaWQgYWRkQW5pbWF0ZWRUeXBlcyhTVkdB
bmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqKSBvdmVycmlkZTsKLSAgICB2b2lkIGNhbGN1
bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQs
IFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSosIFNW
R0FuaW1hdGVkVHlwZSopIG92ZXJyaWRlOwotICAgIGZsb2F0IGNhbGN1bGF0ZURpc3RhbmNlKGNv
bnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykgb3ZlcnJpZGU7
Ci0KLSAgICBzdGF0aWMgYm9vbCBwYXJzZVNWR1JlY3QoY29uc3QgU3RyaW5nJiwgRmxvYXRSZWN0
Jik7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0b3JGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0b3JGYWN0b3J5LmgKaW5kZXggMmI4MjcxN2Y0NzBhN2E5MTJiM2U2YjY4NDE4NDMzNzUzMjE3
MzZkMi4uNTExYTIyYzk0OTA3M2U4ZGZlNmUyNGRlM2U5NDIwOWMzODFjNWE5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdG9yRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRvckZhY3RvcnkuaApAQCAtMjksOCArMjksNiBAQAogI2luY2x1
ZGUgIlNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIuaCIKICNpbmNsdWRlICJTVkdBbmlt
YXRlZFBhdGguaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFBvaW50TGlzdC5oIgotI2luY2x1ZGUg
IlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVk
UmVjdC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0LmgiCiAKQEAgLTczLDkgKzcxLDkgQEAgcHVibGljOgogICAgICAg
ICBjYXNlIEFuaW1hdGVkUG9pbnRzOgogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcj4oYW5pbWF0aW9uRWxlbWVudCwgY29udGV4
dEVsZW1lbnQpOwogICAgICAgICBjYXNlIEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbzoKLSAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpb0FuaW1hdG9yPihhbmltYXRpb25FbGVtZW50LCBjb250ZXh0RWxlbWVudCk7CisgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgY2FzZSBBbmltYXRlZFJlY3Q6Ci0gICAg
ICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFJlY3RBbmltYXRvcj4o
YW5pbWF0aW9uRWxlbWVudCwgY29udGV4dEVsZW1lbnQpOworICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgICAgIGNhc2UgQW5pbWF0ZWRTdHJpbmc6CiAgICAgICAgICAgICByZXR1cm4g
c3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yPihhbmltYXRpb25FbGVt
ZW50LCBjb250ZXh0RWxlbWVudCk7CiAgICAgICAgIGNhc2UgQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0F0dHJpYnV0ZUFuaW1hdGlvbkNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0F0dHJpYnV0ZUFuaW1hdGlvbkNv
bnRyb2xsZXIuY3BwCmluZGV4IDY3NzdmNzM4YzQ3OWQ5MThhNDEzNzU4YjBkMmU0MGU0NTBiOGM0
NzYuLjRjYTM2MmQ3NTJjYThkYzA2YmM4M2ViZGE5YmE5OTVmM2I4ZjAyZTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBdHRyaWJ1dGVBbmltYXRpb25Db250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQXR0cmlidXRlQW5pbWF0aW9uQ29udHJvbGxlci5j
cHAKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIFNWR0F0dHJpYnV0ZUFuaW1hdGlvbkNvbnRyb2xs
ZXI6OnJlc2V0QW5pbWF0ZWRUeXBlKCkKIHZvaWQgU1ZHQXR0cmlidXRlQW5pbWF0aW9uQ29udHJv
bGxlcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCBy
ZXBlYXRDb3VudCwgU1ZHU01JTEVsZW1lbnQqKQogewogICAgIEFTU0VSVChwZXJjZW50YWdlID49
IDAgJiYgcGVyY2VudGFnZSA8PSAxKTsKLSAgICBpZiAobV90YXJnZXRFbGVtZW50Lmhhc1RhZ05h
bWUoU1ZHTmFtZXM6OnNldFRhZykpCisgICAgaWYgKG1fYW5pbWF0aW9uRWxlbWVudC5oYXNUYWdO
YW1lKFNWR05hbWVzOjpzZXRUYWcpKQogICAgICAgICBwZXJjZW50YWdlID0gMTsKIAogICAgIGlm
IChtX2FuaW1hdGlvbkVsZW1lbnQuY2FsY01vZGUoKSA9PSBDYWxjTW9kZTo6RGlzY3JldGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQXR0cmlidXRlQW5pbWF0aW9uQ29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0F0dHJpYnV0ZUFuaW1hdGlvbkNvbnRyb2xs
ZXIuaAppbmRleCAwODIzMDFhNWYwMDAzNzY3ODA0Y2MyNzhkMjg2MWFhMDA0OWI2Y2RiLi4zMmJj
YTVkN2VmOTAzNjZhNjc0YzYwZTg2M2Q1OGZlZGUzYjk5NzQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQXR0cmlidXRlQW5pbWF0aW9uQ29udHJvbGxlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBdHRyaWJ1dGVBbmltYXRpb25Db250cm9sbGVyLmgKQEAgLTMwLDYg
KzMwLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHQW5pbWF0aW9uRWxlbWVu
dDsKK2NsYXNzIFNWR0F0dHJpYnV0ZUFuaW1hdG9yOwogY2xhc3MgU1ZHRWxlbWVudDsKIGNsYXNz
IFNWR1NNSUxFbGVtZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQXR0
cmlidXRlQW5pbWF0aW9uQ29udHJvbGxlckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
dHRyaWJ1dGVBbmltYXRpb25Db250cm9sbGVyQmFzZS5oCmluZGV4IGZlOWQ1YjRkM2QzYzg0ZWE3
M2U5MDBkNTYxY2RiMTg3YTFiYjNjMzUuLjQ4ODkxNDhjMDA4Y2VjZGIwMTQ1ZWUwNmM5YmE4MmRh
MTY3YmQyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBdHRyaWJ1dGVBbmlt
YXRpb25Db250cm9sbGVyQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBdHRyaWJ1
dGVBbmltYXRpb25Db250cm9sbGVyQmFzZS5oCkBAIC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEg
b25jZQogCisjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVk
UHJvcGVydHlUeXBlLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHQW5pbWF0
aW9uRWxlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwCmluZGV4
IDE2N2E1NDdhYzZkMmM0NGE2OTk3YTcwMTUxNjJkN2E3NTQzNzk4ZDQuLjhhOWM4MDEwNTc1Yjli
ZTU5YjY4NjM5ZDEyZDYzNTQ2ZTdjYmE2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxl
bmRFbGVtZW50LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgU1ZHRkVCbGVuZEVsZW1lbnQ6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAg
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGF0dHJOYW1lKTsKIH0KIAotUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVCbGVuZEVsZW1lbnQ6
OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKQor
UmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVCbGVuZEVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1
aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKSBjb25zdAogewogICAgIGF1dG8g
aW5wdXQxID0gZmlsdGVyQnVpbGRlci0+Z2V0RWZmZWN0QnlJZChpbjEoKSk7CiAgICAgYXV0byBp
bnB1dDIgPSBmaWx0ZXJCdWlsZGVyLT5nZXRFZmZlY3RCeUlkKGluMigpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmgKaW5kZXggYTE2YjFkMmJmNDFlMTA1MTgwZDI1YTBmMDkx
Mzk3YzhiMDhiZGUxZS4uOWZiOTA2NDNiZWU3ZWNlNzg2OTI3NmRhYjFkZTJjZDY1NmQ4YzQwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmgKQEAgLTczLDcgKzczLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCi0gICAgUmVmUHRyPEZpbHRlckVm
ZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIG92ZXJyaWRlOworICAgIFJl
ZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBjb25z
dCBvdmVycmlkZTsKICAgICBib29sIHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZl
Y3QqLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkgb3ZlcnJpZGU7CiAKICAgICBBdHRy
aWJ1dGVPd25lclByb3h5IG1fYXR0cmlidXRlT3duZXJQcm94eSB7ICp0aGlzIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcAppbmRleCAzNmU2Njk4
YjJjNGI3NWQyY2FiNmE5ZDIzODRmZDBjODU4NzYzZmJhLi45ZTYxOGMxNjgzN2MxODkzNjc2Yjkx
YzEzNWUyYjJkNmI2NzFiOWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVD
b2xvck1hdHJpeEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9y
TWF0cml4RWxlbWVudC5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIFNWR0ZFQ29sb3JNYXRy
aXhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lKQogICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6c3ZnQXR0cmli
dXRlQ2hhbmdlZChhdHRyTmFtZSk7CiB9CiAKLVJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFQ29s
b3JNYXRyaXhFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiBmaWx0ZXJCdWlsZGVyLCBG
aWx0ZXImIGZpbHRlcikKK1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFQ29sb3JNYXRyaXhFbGVt
ZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiBmaWx0ZXJCdWlsZGVyLCBGaWx0ZXImIGZpbHRl
cikgY29uc3QKIHsKICAgICBhdXRvIGlucHV0MSA9IGZpbHRlckJ1aWxkZXItPmdldEVmZmVjdEJ5
SWQoaW4xKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1h
dHJpeEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVu
dC5oCmluZGV4IDRlMWYzM2EyNzNhNWNkZmMyZDBlODg5N2JlMjRjOTA4MzE5ZjdhZGQuLmEzMjA3
NjcwYmQ5MzViZDEyODM5ZjhiYWQ5ZDYzZTk5ODI4YjdlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5oCkBAIC05OCw3ICs5OCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVy
cmlkZTsKIAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCos
IGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKLSAgICBSZWZQdHI8RmlsdGVyRWZmZWN0
PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyJikgb3ZlcnJpZGU7CisgICAgUmVmUHRy
PEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIGNvbnN0IG92
ZXJyaWRlOwogCiAgICAgQXR0cmlidXRlT3duZXJQcm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkg
eyAqdGhpcyB9OwogICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRo
aXMgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5z
ZmVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2Zl
ckVsZW1lbnQuY3BwCmluZGV4IDAyMzc5OTUyYmRjYjYxNmE4ZjA4M2ZiNDEzNTdhMzE1NjBhYzg0
NzcuLmU5NzQwMDY3MWUzOTE1OWFkNDAwNmRkOTBlMDVkMWZiZDlhNWNiYTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcApA
QCAtNjYsNyArNjYsNyBAQCB2b2lkIFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjbwogICAgIFNWR0ZpbHRlclBy
aW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwog
fQogCi1SZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudDo6
YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciogZmlsdGVyQnVpbGRlciwgRmlsdGVyJiBmaWx0ZXIpCitS
ZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudDo6YnVpbGQo
U1ZHRmlsdGVyQnVpbGRlciogZmlsdGVyQnVpbGRlciwgRmlsdGVyJiBmaWx0ZXIpIGNvbnN0CiB7
CiAgICAgYXV0byBpbnB1dDEgPSBmaWx0ZXJCdWlsZGVyLT5nZXRFZmZlY3RCeUlkKGluMSgpKTsK
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5z
ZmVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJF
bGVtZW50LmgKaW5kZXggMjU3YTk1NmQ4ODRkMDFlOTRkMDM2MDc3M2M1YWZhZTBjNmE0YTNhNi4u
NWZmYjFlMTZlZjA2YjJjMmMxNTllNmRhZTRiMDY5NGM4ZGIzNmFlNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgKQEAgLTQ4LDcg
KzQ4LDcgQEAgcHJpdmF0ZToKICAgICAvLyBGSVhNRTogc3ZnQXR0cmlidXRlQ2hhbmdlZCBtaXNz
aW5nLgogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogCi0gICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVp
bGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIG92ZXJyaWRlOworICAgIFJlZlB0cjxGaWx0
ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBjb25zdCBvdmVycmlk
ZTsKIAogICAgIEF0dHJpYnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25lclByb3h5IHsgKnRo
aXMgfTsKICAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwCmluZGV4IGE3
YTc2ODI5NmQzNGU0MjdlNTAwOWRhZTJhNzhjNDk5YzZmMGIyNjkuLjU4MjU1M2M4YzM4NGFlNTNk
YzQwNmUyZTExZDQ2YjBjNWI2ZWJlMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNv
bXBvc2l0ZUVsZW1lbnQuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCBTVkdGRUNvbXBvc2l0
ZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCiAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGF0dHJOYW1lKTsKIH0KIAotUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVDb21w
b3NpdGVFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiBmaWx0ZXJCdWlsZGVyLCBGaWx0
ZXImIGZpbHRlcikKK1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6
YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciogZmlsdGVyQnVpbGRlciwgRmlsdGVyJiBmaWx0ZXIpIGNv
bnN0CiB7CiAgICAgYXV0byBpbnB1dDEgPSBmaWx0ZXJCdWlsZGVyLT5nZXRFZmZlY3RCeUlkKGlu
MSgpKTsKICAgICBhdXRvIGlucHV0MiA9IGZpbHRlckJ1aWxkZXItPmdldEVmZmVjdEJ5SWQoaW4y
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5oCmluZGV4IDBm
MTE3M2IxNTk0NmUyMzFjNTIxMGJhMjk1ZjgxMWNjMDhlYWEyZDcuLjU1YmE4ZmFjMzE3MWViMzM5
YjRlZjI1YjZkZmMzZWQwODVmMDA2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUNvbXBvc2l0ZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21w
b3NpdGVFbGVtZW50LmgKQEAgLTg1LDggKzg1LDggQEAgY2xhc3MgU1ZHRkVDb21wb3NpdGVFbGVt
ZW50IGZpbmFsIDogcHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcwog
cHVibGljOgogICAgIHN0YXRpYyBSZWY8U1ZHRkVDb21wb3NpdGVFbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICBTdHJpbmcgaW4xKCkgeyByZXR1
cm4gbV9pbjEuY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KLSAgICBTdHJp
bmcgaW4yKCkgeyByZXR1cm4gbV9pbjIuY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93bmVyUHJveHko
KSk7IH0KKyAgICBTdHJpbmcgaW4xKCkgY29uc3QgeyByZXR1cm4gbV9pbjEuY3VycmVudFZhbHVl
KGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KKyAgICBTdHJpbmcgaW4yKCkgY29uc3QgeyByZXR1
cm4gbV9pbjIuY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KICAgICBDb21w
b3NpdGVPcGVyYXRpb25UeXBlIHN2Z09wZXJhdG9yKCkgY29uc3QgeyByZXR1cm4gbV9zdmdPcGVy
YXRvci5jdXJyZW50VmFsdWUoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQogICAgIGZsb2F0IGsx
KCkgY29uc3QgeyByZXR1cm4gbV9rMS5jdXJyZW50VmFsdWUoYXR0cmlidXRlT3duZXJQcm94eSgp
KTsgfQogICAgIGZsb2F0IGsyKCkgY29uc3QgeyByZXR1cm4gbV9rMi5jdXJyZW50VmFsdWUoYXR0
cmlidXRlT3duZXJQcm94eSgpKTsgfQpAQCAtMTIxLDcgKzEyMSw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsK
IAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCosIGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKLSAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWls
ZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyJikgb3ZlcnJpZGU7CisgICAgUmVmUHRyPEZpbHRl
ckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIGNvbnN0IG92ZXJyaWRl
OwogCiAgICAgQXR0cmlidXRlT3duZXJQcm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhp
cyB9OwogICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3Bw
CmluZGV4IGRhNzI2ZDZjZDkwMWI1NTc2NDEzMDM1YTVmODBiMWZlMzdlY2RkYWQuLjg4NzVkM2M5
YjRhMWZkODBkNjVlZTQwOGJlYWVjOTEzMDFjOTgwYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcApAQCAtMjE2LDcgKzIxNiw3IEBA
IHZvaWQgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hCiAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzOjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKIH0KIAotUmVmUHRyPEZp
bHRlckVmZmVjdD4gU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1
aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKQorUmVmUHRyPEZpbHRlckVmZmVj
dD4gU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZp
bHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKSBjb25zdAogewogICAgIGF1dG8gaW5wdXQxID0g
ZmlsdGVyQnVpbGRlci0+Z2V0RWZmZWN0QnlJZChpbjEoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmgKaW5kZXggYTQ0NmY5NGU5ODc0YTc0
ZjhhOGIwYzBmYWQxOGQ2YmZkOWIyMWQ1Mi4uYzczZmM5Y2Q2NGQ3MDgyODk3ODRkNjVmNjYyN2I2
NGYxMTExMWM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVN
YXRyaXhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRy
aXhFbGVtZW50LmgKQEAgLTExMyw3ICsxMTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBib29s
IHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqLCBjb25zdCBRdWFsaWZpZWRO
YW1lJikgb3ZlcnJpZGU7Ci0gICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVy
QnVpbGRlciosIEZpbHRlciYpIG92ZXJyaWRlOworICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1
aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHN0
YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGtlcm5lbFVuaXRMZW5ndGhYSWRlbnRpZmllcigpOwog
ICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGtlcm5lbFVuaXRMZW5ndGhZSWRlbnRpZmll
cigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5n
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVt
ZW50LmNwcAppbmRleCBkOWRiMGFjZWI3ZjNlMDQ0Mjg1MjY3M2Y3YjgyYWRjMTkwMDM0NDYwLi5h
MTllZDEyZmUwZjdiYzI4OGYzMmM4ZDAxOTYyN2YyYjU0M2MxNThiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcApAQCAtMTcwLDcg
KzE3MCw3IEBAIHZvaWQgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpsaWdodEVsZW1lbnRB
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFNWR0ZFTGlnaHRFCiAgICAgcHJpbWl0aXZlQXR0cmlidXRl
Q2hhbmdlZChhdHRyTmFtZSk7CiB9CiAKLVJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFRGlmZnVz
ZUxpZ2h0aW5nRWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciogZmlsdGVyQnVpbGRlciwg
RmlsdGVyJiBmaWx0ZXIpCitSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRURpZmZ1c2VMaWdodGlu
Z0VsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYg
ZmlsdGVyKSBjb25zdAogewogICAgIGF1dG8gaW5wdXQxID0gZmlsdGVyQnVpbGRlci0+Z2V0RWZm
ZWN0QnlJZChpbjEoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURp
ZmZ1c2VMaWdodGluZ0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VM
aWdodGluZ0VsZW1lbnQuaAppbmRleCA5NWM5ZDc0YTI4NmE2ZTMxOTY3NzJlMzFhMzA1NTMyYTk5
OGVkOGUxLi4zYmU2ZGE4OGJkNjk2OWViODk1MTc2OWRkZDQ2ZjBjOTlhOGZkN2JmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oCkBAIC02
OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0
cmlidXRlKEZpbHRlckVmZmVjdCosIGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKLSAg
ICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyJikg
b3ZlcnJpZGU7CisgICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRl
ciosIEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0
cmluZyYga2VybmVsVW5pdExlbmd0aFhJZGVudGlmaWVyKCk7CiAgICAgc3RhdGljIGNvbnN0IEF0
b21pY1N0cmluZyYga2VybmVsVW5pdExlbmd0aFlJZGVudGlmaWVyKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwCmluZGV4IDJiNDJm
MzQ0MDgyODllZjliMDkwM2E4YTZiYTVhYzMyNGVjMzU1NDAuLjY3MGJjNTY0ZDViMGE1YzdmMDk2
OGQzZGYxZjAxZDhkNzMzY2ZkOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwCkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBTVkdG
RURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck4KICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwogfQogCi1SZWZQdHI8RmlsdGVyRWZmZWN0
PiBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZp
bHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKQorUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVE
aXNwbGFjZW1lbnRNYXBFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiBmaWx0ZXJCdWls
ZGVyLCBGaWx0ZXImIGZpbHRlcikgY29uc3QKIHsKICAgICBhdXRvIGlucHV0MSA9IGZpbHRlckJ1
aWxkZXItPmdldEVmZmVjdEJ5SWQoaW4xKCkpOwogICAgIGF1dG8gaW5wdXQyID0gZmlsdGVyQnVp
bGRlci0+Z2V0RWZmZWN0QnlJZChpbjIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmgKaW5kZXggM2MwOTJkNGY2M2ZlOTBlZTc3ODA0YTUy
NTIxNDViODUwMGU2OTk1MS4uMjQ0OGFkMDg5NTQxNDM0ZmRkYmI4NGNiNjA1MTIxZjBkMzlkNjg0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1l
bnQuaApAQCAtMTAzLDcgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2V0Rmls
dGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCosIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lKSBvdmVycmlkZTsKLSAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0
ZXJCdWlsZGVyKiwgRmlsdGVyJikgb3ZlcnJpZGU7CisgICAgUmVmUHRyPEZpbHRlckVmZmVjdD4g
YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
QXR0cmlidXRlT3duZXJQcm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9OwogICAg
IFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcAppbmRleCA2OThhNDg1NGMx
YjE1NGUyOTM1OGE5YjJiNDliM2Y2ZWUyNjhmNjY4Li4xM2I2OWVjN2ZmNmZkNGI1MzJmNTA5Y2I5
MTNmOGZjMDEyYzU4NzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9w
U2hhZG93RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRv
d0VsZW1lbnQuY3BwCkBAIC0xMTYsNyArMTE2LDcgQEAgdm9pZCBTVkdGRURyb3BTaGFkb3dFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6c3ZnQXR0cmlidXRlQ2hh
bmdlZChhdHRyTmFtZSk7CiB9CiAKLVJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFRHJvcFNoYWRv
d0VsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYg
ZmlsdGVyKQorUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6YnVp
bGQoU1ZHRmlsdGVyQnVpbGRlciogZmlsdGVyQnVpbGRlciwgRmlsdGVyJiBmaWx0ZXIpIGNvbnN0
CiB7CiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAg
aWYgKCFyZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BT
aGFkb3dFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVu
dC5oCmluZGV4IDcxMTYzNDJkODRhY2QwMTY5YTFkNWU4ODQ1YmIyMWJiNGE4Y2IyMmYuLjhlMjlj
MGQyYjQ3ZGY3ODMyZDAwZTU5NjE2MTQ2ODE3M2ZhZTc5YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaApAQCAtNjQsNyArNjQsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21p
Y1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKLSAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWls
ZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyJikgb3ZlcnJpZGU7CisgICAgUmVmUHRyPEZpbHRl
ckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIGNvbnN0IG92ZXJyaWRl
OwogCiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3RkRGV2aWF0aW9uWElkZW50aWZp
ZXIoKTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdGREZXZpYXRpb25ZSWRlbnRp
ZmllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZsb29kRWxlbWVudC5jcHAKaW5kZXggY2Zl
NjQyYTMzMmY3MmRmYmE4N2ZlZTZiM2JhNjg1N2JmOTI2MTBiZC4uYzIyOGUyMmQ1NjVkMGUxNjNm
Zjg3ZDBiNGJjYWJkMjI0NDc1OGZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFRmxvb2RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGbG9vZEVs
ZW1lbnQuY3BwCkBAIC01OCw3ICs1OCw3IEBAIGJvb2wgU1ZHRkVGbG9vZEVsZW1lbnQ6OnNldEZp
bHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqIGVmZmVjdCwgY29uc3QgUXVhCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi1SZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUZsb29kRWxlbWVu
dDo6YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYgZmlsdGVyKQorUmVmUHRyPEZpbHRl
ckVmZmVjdD4gU1ZHRkVGbG9vZEVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0
ZXImIGZpbHRlcikgY29uc3QKIHsKICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gdGhpcy0+
cmVuZGVyZXIoKTsKICAgICBpZiAoIXJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGbG9v
ZEVsZW1lbnQuaAppbmRleCA2NDQ3ZmZjNDcxOWY5ZmE2OWQ5NzgyNGFmODFhMTY5YjdlY2Y3ZWM1
Li5iNTYxMzVhN2Y0ODEzMTBkNDA3Y2JlZTRkZTgxYWU3MDhhNzk2ZWY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuaApAQCAtMzMsNyArMzMsNyBAQCBwcml2YXRlOgogICAg
IFNWR0ZFRmxvb2RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAg
ICAgYm9vbCBzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0KiwgY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUpIG92ZXJyaWRlOwotICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+
IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBvdmVycmlkZTsKKyAgICBSZWZQdHI8
RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyJikgY29uc3Qgb3Zl
cnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCmluZGV4IDk1NDcyZGI3MTg2Mzk3NTAx
NzA3N2E2OTMxOTY1MzQ1YzQxMmYxOTEuLmNhYmIxZjRhMDExMDZjOGNjOGRlMGMzN2YyN2U4NjRi
M2M5ZGFkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1
ckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVs
ZW1lbnQuY3BwCkBAIC0xMTQsNyArMTE0LDcgQEAgdm9pZCBTVkdGRUdhdXNzaWFuQmx1ckVsZW1l
bnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUKICAg
ICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoYXR0ck5hbWUpOwogfQogCi1SZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUdhdXNzaWFuQmx1
ckVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYg
ZmlsdGVyKQorUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50Ojpi
dWlsZChTVkdGaWx0ZXJCdWlsZGVyKiBmaWx0ZXJCdWlsZGVyLCBGaWx0ZXImIGZpbHRlcikgY29u
c3QKIHsKICAgICBhdXRvIGlucHV0MSA9IGZpbHRlckJ1aWxkZXItPmdldEVmZmVjdEJ5SWQoaW4x
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmgK
aW5kZXggMGY0M2NjNjY3ZTE2NDZiZmI1NDhjYzliNDE2NGNlMzY4ZTExM2FiYy4uZTMzODdiYzNi
OWU3NzJmNjcyNWFiOTc1ZjQ0NjMxOWZlNTcxY2MyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaApAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21p
Y1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKLSAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWls
ZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyJikgb3ZlcnJpZGU7CisgICAgUmVmUHRyPEZpbHRl
ckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIGNvbnN0IG92ZXJyaWRl
OwogCiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3RkRGV2aWF0aW9uWElkZW50aWZp
ZXIoKTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdGREZXZpYXRpb25ZSWRlbnRp
ZmllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKaW5kZXggNWRh
MGQ0OWUzYThkNmYyMzk0MjBhZTUzYmY4ZmQ5MTdiMTE3MjNkYS4uYmYzZjM4ZjQ0NGVjZTAxMGQ4
N2E0OGFkMDdjZWZjOGFlM2QyMjRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVs
ZW1lbnQuY3BwCkBAIC00NCw3ICs0NCwxMSBAQCBpbmxpbmUgU1ZHRkVJbWFnZUVsZW1lbnQ6OlNW
R0ZFSW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZQogICAg
ICwgU1ZHVVJJUmVmZXJlbmNlKHRoaXMpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFt
ZXM6OmZlSW1hZ2VUYWcpKTsKLSAgICByZWdpc3RlckF0dHJpYnV0ZXMoKTsKKworICAgIHN0YXRp
YyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywg
W10geworICAgICAgICBQcm9wZXJ0eVJlZ2lzdHJ5OjpyZWdpc3RlclByb3BlcnR5PFNWR05hbWVz
OjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0ciwgJlNWR0ZFSW1hZ2VFbGVtZW50OjptX3ByZXNlcnZl
QXNwZWN0UmF0aW8+KCk7CisgICAgfSk7CiB9CiAKIFJlZjxTVkdGRUltYWdlRWxlbWVudD4gU1ZH
RkVJbWFnZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQpCkBAIC0xMTEsMjAgKzExNSwxMiBAQCB2b2lkIFNWR0ZFSW1hZ2VFbGVt
ZW50OjpidWlsZFBlbmRpbmdSZXNvdXJjZSgpCiAgICAgaW52YWxpZGF0ZSgpOwogfQogCi12b2lk
IFNWR0ZFSW1hZ2VFbGVtZW50OjpyZWdpc3RlckF0dHJpYnV0ZXMoKQotewotICAgIGF1dG8mIHJl
Z2lzdHJ5ID0gYXR0cmlidXRlUmVnaXN0cnkoKTsKLSAgICBpZiAoIXJlZ2lzdHJ5LmlzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuOwotICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyQXR0cmlidXRlPFNWR05h
bWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0ciwgJlNWR0ZFSW1hZ2VFbGVtZW50OjptX3ByZXNl
cnZlQXNwZWN0UmF0aW8+KCk7Ci19Ci0KIHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFs
dWUpCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRy
KSB7CiAgICAgICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSBwcmVzZXJ2ZUFzcGVjdFJh
dGlvOwogICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvLnBhcnNlKHZhbHVlKTsKLSAgICAgICAg
bV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLnNldFZhbHVlKHByZXNlcnZlQXNwZWN0UmF0aW8pOworICAg
ICAgICBtX3ByZXNlcnZlQXNwZWN0UmF0aW8tPnNldEJhc2VWYWxJbnRlcm5hbChwcmVzZXJ2ZUFz
cGVjdFJhdGlvKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTg1LDcgKzE4MSw3IEBA
IHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlJikK
ICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291cmNlSW52
YWxpZGF0aW9uKCpwYXJlbnRSZW5kZXJlcik7CiB9CiAKLVJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNW
R0ZFSW1hZ2VFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyJiBmaWx0ZXIp
CitSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUltYWdlRWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVy
QnVpbGRlciosIEZpbHRlciYgZmlsdGVyKSBjb25zdAogewogICAgIGlmIChtX2NhY2hlZEltYWdl
KQogICAgICAgICByZXR1cm4gRkVJbWFnZTo6Y3JlYXRlV2l0aEltYWdlKGZpbHRlciwgbV9jYWNo
ZWRJbWFnZS0+aW1hZ2VGb3JSZW5kZXJlcihyZW5kZXJlcigpKSwgcHJlc2VydmVBc3BlY3RSYXRp
bygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmgKaW5kZXggNTUwYmY5MDll
YjMzNTFiZjczODIxN2VkYTQ5YzMzNzRlMmI5ZTYwNi4uZTVkMTBiM2ZmYWE1MGEyMThmMzkwZmJm
MzAxMzBhZjVmYzg2N2Q4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1h
Z2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmgK
QEAgLTIzLDcgKzIzLDYgQEAKIAogI2luY2x1ZGUgIkNhY2hlZEltYWdlQ2xpZW50LmgiCiAjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW8uaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LmgiCiAjaW5jbHVkZSAiU1ZHRkVJbWFnZS5oIgogI2luY2x1ZGUgIlNWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlcy5oIgpAQCAtNDAsMTUgKzM5LDEzIEBAIHB1YmxpYzoKIAogICAg
IGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKIAotICAgIGNvbnN0IFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygpIGNvbnN0IHsgcmV0
dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpby5jdXJyZW50VmFsdWUoYXR0cmlidXRlT3duZXJQcm94
eSgpKTsgfQotICAgIFJlZlB0cjxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+IHByZXNl
cnZlQXNwZWN0UmF0aW9BbmltYXRlZCgpIHsgcmV0dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpby5h
bmltYXRlZFByb3BlcnR5KGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KKyAgICBjb25zdCBTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8oKSBjb25zdCB7IHJl
dHVybiBtX3ByZXNlcnZlQXNwZWN0UmF0aW8tPmN1cnJlbnRWYWx1ZSgpOyB9CisgICAgU1ZHQW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0ZWQoKSB7
IHJldHVybiBtX3ByZXNlcnZlQXNwZWN0UmF0aW87IH0KIAogcHJpdmF0ZToKICAgICBTVkdGRUlt
YWdlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHVzaW5n
IEF0dHJpYnV0ZU93bmVyUHJveHkgPSBTVkdBdHRyaWJ1dGVPd25lclByb3h5SW1wbDxTVkdGRUlt
YWdlRWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLCBTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdVUklSZWZlcmVuY2U+OwotICAgIHN0YXRpYyBBdHRy
aWJ1dGVPd25lclByb3h5OjpBdHRyaWJ1dGVSZWdpc3RyeSYgYXR0cmlidXRlUmVnaXN0cnkoKSB7
IHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5OjphdHRyaWJ1dGVSZWdpc3RyeSgpOyB9Ci0gICAg
c3RhdGljIHZvaWQgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7CiAgICAgY29uc3QgU1ZHQXR0cmlidXRl
T3duZXJQcm94eSYgYXR0cmlidXRlT3duZXJQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
YXR0cmlidXRlT3duZXJQcm94eTsgfQogICAgIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkg
PSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVJbWFnZUVsZW1lbnQsIFNWR0ZpbHRlclBy
aW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcywgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwg
U1ZHVVJJUmVmZXJlbmNlPjsKQEAgLTY3LDcgKzY0LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
ZGlkRmluaXNoSW5zZXJ0aW5nTm9kZSgpIG92ZXJyaWRlOwogCi0gICAgUmVmUHRyPEZpbHRlckVm
ZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIG92ZXJyaWRlOworICAgIFJl
ZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBjb25z
dCBvdmVycmlkZTsKIAogICAgIHZvaWQgY2xlYXJSZXNvdXJjZVJlZmVyZW5jZXMoKTsKICAgICB2
b2lkIHJlcXVlc3RJbWFnZVJlc291cmNlKCk7CkBAIC03OCw3ICs3NSw3IEBAIHByaXZhdGU6CiAK
ICAgICBBdHRyaWJ1dGVPd25lclByb3h5IG1fYXR0cmlidXRlT3duZXJQcm94eSB7ICp0aGlzIH07
CiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwotICAg
IFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0F0dHJpYnV0ZSBtX3ByZXNlcnZlQXNwZWN0
UmF0aW87CisgICAgUmVmPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4gbV9wcmVzZXJ2
ZUFzcGVjdFJhdGlvIHsgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVhdGUodGhp
cykgfTsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gbV9jYWNoZWRJbWFn
ZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuY3BwCmluZGV4IGVm
YTc3ZGUyYzFiYmQ1ODYyNWU1NmY4NGFjM2U1M2JmNGQwZjkzZDQuLjQ1MzkwMTIwMDhmYTNkMGUx
Njg1MmE0NTZhMDZkNjVjNGUzNDI2MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRU1lcmdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VF
bGVtZW50LmNwcApAQCAtNDQsNyArNDQsNyBAQCBSZWY8U1ZHRkVNZXJnZUVsZW1lbnQ+IFNWR0ZF
TWVyZ2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRAogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFTWVyZ2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CiB9CiAKLVJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFTWVyZ2VFbGVtZW50OjpidWlsZChT
VkdGaWx0ZXJCdWlsZGVyKiBmaWx0ZXJCdWlsZGVyLCBGaWx0ZXImIGZpbHRlcikKK1JlZlB0cjxG
aWx0ZXJFZmZlY3Q+IFNWR0ZFTWVyZ2VFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiBm
aWx0ZXJCdWlsZGVyLCBGaWx0ZXImIGZpbHRlcikgY29uc3QKIHsKICAgICBhdXRvIGVmZmVjdCA9
IEZFTWVyZ2U6OmNyZWF0ZShmaWx0ZXIpOwogICAgIEZpbHRlckVmZmVjdFZlY3RvciYgbWVyZ2VJ
bnB1dHMgPSBlZmZlY3QtPmlucHV0RWZmZWN0cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJn
ZUVsZW1lbnQuaAppbmRleCAzZTQyYTc0OGRhYWRjNmRlYzE1MDJkMWYxMmUyMDgwNzhkMjM1ZWUy
Li44NDMzYzlhNDgxZWFlMTBkMjZhYWZkMjYxMWQ0NzgyODQ3M2JkMjc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuaApAQCAtMzIsNyArMzIsNyBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIFNWR0ZFTWVyZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCi0gICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlcios
IEZpbHRlciYpIG92ZXJyaWRlOworICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0Zp
bHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xv
Z3lFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50
LmNwcAppbmRleCA3YTRjZDA4MmQ1NDE1OWFhZjUyNTAwMmRhOTQ2MGViYTFkOWVmMTBkLi45YWY1
ZmZmZjM1ZmQwMjA1MDMzYWMyZWFiOTYyMWM4YmFmOTkxY2QxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCkBAIC0xMzMsNyArMTMzLDcgQEAgdm9p
ZCBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlczo6c3ZnQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiB9CiAKLVJlZlB0cjxGaWx0ZXJF
ZmZlY3Q+IFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZp
bHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKQorUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVN
b3JwaG9sb2d5RWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciogZmlsdGVyQnVpbGRlciwg
RmlsdGVyJiBmaWx0ZXIpIGNvbnN0CiB7CiAgICAgYXV0byBpbnB1dDEgPSBmaWx0ZXJCdWlsZGVy
LT5nZXRFZmZlY3RCeUlkKGluMSgpKTsKICAgICBmbG9hdCB4UmFkaXVzID0gcmFkaXVzWCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmgKaW5kZXggMjdkODE3
NTdjOTQzNDhiMWQzNmM1ZmYzNWIxYWMyZDNmODBhZDJhNC4uNjgyODFiN2ZmZmU4M2FjMmMwYTBh
MzY1NmYzZWM2MWJkNmYzN2I5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
TW9ycGhvbG9neUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9s
b2d5RWxlbWVudC5oCkBAIC05Myw3ICs5Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdmdBdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wg
c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCosIGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBvdmVycmlkZTsKLSAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0ZXJC
dWlsZGVyKiwgRmlsdGVyJikgb3ZlcnJpZGU7CisgICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVp
bGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgc3Rh
dGljIGNvbnN0IEF0b21pY1N0cmluZyYgcmFkaXVzWElkZW50aWZpZXIoKTsKICAgICBzdGF0aWMg
Y29uc3QgQXRvbWljU3RyaW5nJiByYWRpdXNZSWRlbnRpZmllcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcAppbmRleCA4ODUyNzExYTVhNmE2ZDQ0MzMzYzRlNzFl
NmUzYjIxM2EwYTU3ZGNiLi4yZTEzMDY0NTNhNDMzNWJkMWUwNTdmNjEzMDliZGQ3MjAzN2FkMmE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcApAQCAtODUsNyAr
ODUsNyBAQCB2b2lkIFNWR0ZFT2Zmc2V0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFy
ZEF0dHJpYnV0ZXM6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwogfQogCi1SZWZQdHI8
RmlsdGVyRWZmZWN0PiBTVkdGRU9mZnNldEVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIq
IGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKQorUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZH
RkVPZmZzZXRFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiBmaWx0ZXJCdWlsZGVyLCBG
aWx0ZXImIGZpbHRlcikgY29uc3QKIHsKICAgICBhdXRvIGlucHV0MSA9IGZpbHRlckJ1aWxkZXIt
PmdldEVmZmVjdEJ5SWQoaW4xKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVPZmZzZXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVt
ZW50LmgKaW5kZXggZGZkZjI2MWY5OGM5ZDk5YWI4NmE1NmRjMDMzOTEzYzlkYTM2MjJlZi4uMjc1
YTlmYzJjNzcwNzNiYjEwMTRlOTBhMzU0NDQ1MjY0MWFlMjI5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRU9mZnNldEVsZW1lbnQuaApAQCAtNTgsNyArNTgsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJikgb3ZlcnJpZGU7CiAKLSAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdG
aWx0ZXJCdWlsZGVyKiwgRmlsdGVyJikgb3ZlcnJpZGU7CisgICAgUmVmUHRyPEZpbHRlckVmZmVj
dD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgQXR0cmlidXRlT3duZXJQcm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9Owog
ICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcApp
bmRleCA4MWVmNDU3Njg2OTcxN2E2OWU5ZGViNmU2NDk1ZGE1MTE3NGNjMmNmLi43ZWEzMTQwZmI5
NjJhZmZlYWU0OWFiMjBjNmViYjczY2JiNjU5YTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCkBAIC0xNzksNyArMTc5LDcg
QEAgdm9pZCBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpsaWdodEVsZW1lbnRBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFNWR0ZFTGlnaHQKICAgICBwcmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2Vk
KGF0dHJOYW1lKTsKIH0KIAotUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVTcGVjdWxhckxpZ2h0
aW5nRWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciogZmlsdGVyQnVpbGRlciwgRmlsdGVy
JiBmaWx0ZXIpCitSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVt
ZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiBmaWx0ZXJCdWlsZGVyLCBGaWx0ZXImIGZpbHRl
cikgY29uc3QKIHsKICAgICBhdXRvIGlucHV0MSA9IGZpbHRlckJ1aWxkZXItPmdldEVmZmVjdEJ5
SWQoaW4xKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxh
ckxpZ2h0aW5nRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdo
dGluZ0VsZW1lbnQuaAppbmRleCA3NTAzMWZlNjYzNWE4MDgwN2VlNjdjOGQ1OWI3YWIxZGYzMmFl
MGI3Li43YzkwNWFhNzJhN2UyZjk5ZjU5YWYwZjdhODY1MjVkZTRjZTU5YjY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmgKQEAgLTY5
LDcgKzY5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzZXRGaWx0ZXJFZmZlY3RBdHRy
aWJ1dGUoRmlsdGVyRWZmZWN0KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwotICAg
IFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBv
dmVycmlkZTsKKyAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVy
KiwgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3Ry
aW5nJiBrZXJuZWxVbml0TGVuZ3RoWElkZW50aWZpZXIoKTsKICAgICBzdGF0aWMgY29uc3QgQXRv
bWljU3RyaW5nJiBrZXJuZWxVbml0TGVuZ3RoWUlkZW50aWZpZXIoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRVRpbGVFbGVtZW50LmNwcAppbmRleCBlM2NmNWFkY2Y0ZjY0OTdkNzM2YmNkYjdiNmMy
ZWJlYWYxZjBlOGU5Li44M2ZiZWU5MTk5ZDI2YzZiODg3NzAwNjQzYWM2MTgxZjFmYTRjNzAwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCkBAIC03NCw3ICs3NCw3IEBA
IHZvaWQgU1ZHRkVUaWxlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXM6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwogfQogCi1SZWZQdHI8RmlsdGVyRWZm
ZWN0PiBTVkdGRVRpbGVFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiBmaWx0ZXJCdWls
ZGVyLCBGaWx0ZXImIGZpbHRlcikKK1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFVGlsZUVsZW1l
bnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVy
KSBjb25zdAogewogICAgIGF1dG8gaW5wdXQxID0gZmlsdGVyQnVpbGRlci0+Z2V0RWZmZWN0QnlJ
ZChpbjEoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5oCmluZGV4IDI3ZDU0
MzhjMjcwZDhlOGVmMjRmYzdmMzc4MjFhZDBjMjYxMGZiYTQuLjhkNWRjOWJlODRiYTQ3MTM2YjE1
ZDZlZWMxNDlmOWE1ZTYxOGE0ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RVRpbGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQu
aApAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZv
aWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAK
LSAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVy
Jikgb3ZlcnJpZGU7CisgICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVp
bGRlciosIEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgQXR0cmlidXRlT3duZXJQcm94
eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9OwogICAgIFByb3BlcnR5UmVnaXN0cnkg
bV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RVR1cmJ1bGVuY2VFbGVtZW50LmNwcAppbmRleCA3ZDdmZjQyMmRjMDgzNDZmYjljN2NkMDcwM2Fi
NzYyNTY4ZTlhMzJiLi45OWQ4YzJkZTQwZTY3OTQxNzU0YmYxZDEyYzEyNTg3ODExMzBiMGMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCkBAIC0x
MzksNyArMTM5LDcgQEAgdm9pZCBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIFNWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6c3ZnQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiB9
CiAKLVJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmJ1aWxkKFNW
R0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImIGZpbHRlcikKK1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNW
R0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImIGZp
bHRlcikgY29uc3QKIHsKICAgICBpZiAoYmFzZUZyZXF1ZW5jeVgoKSA8IDAgfHwgYmFzZUZyZXF1
ZW5jeVkoKSA8IDApCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmgKaW5kZXggNGZhMjNhZDE5NTlhYTg2NTk1MjJkZTAw
OTkyZmViOTMxMDRlZWNhMS4uMTFjZDdmZWIwYTJiMDhhY2FmYWQyMDNmMzEwNWQyYjZlNDU2Mjk0
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5oCkBAIC0x
MzEsNyArMTMxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzZXRGaWx0ZXJFZmZlY3RB
dHRyaWJ1dGUoRmlsdGVyRWZmZWN0KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpIG92
ZXJyaWRlOwotICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIq
LCBGaWx0ZXImKSBvdmVycmlkZTsKKyAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdG
aWx0ZXJCdWlsZGVyKiwgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBzdGF0aWMgY29u
c3QgQXRvbWljU3RyaW5nJiBiYXNlRnJlcXVlbmN5WElkZW50aWZpZXIoKTsKICAgICBzdGF0aWMg
Y29uc3QgQXRvbWljU3RyaW5nJiBiYXNlRnJlcXVlbmN5WUlkZW50aWZpZXIoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMuaAppbmRleCA3MzQxMDY1MmUyZjRmNDM3ZGRlODViYmUxYzA5MjdjN2M3MGFkOGQ3Li5m
ZWZlYmVhNzAyYzY4YzdkNTk4M2YyMDMxYjkyMmY5ZDA5NzZmMDVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cy5oCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcyA6IHB1YmxpYyBTVkdFbGVtZW50IHsKIHB1YmxpYzoKICAgICB2b2lkIHNldFN0YW5k
YXJkQXR0cmlidXRlcyhGaWx0ZXJFZmZlY3QqKSBjb25zdDsKIAotICAgIHZpcnR1YWwgUmVmUHRy
PEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpID0gMDsKKyAg
ICB2aXJ0dWFsIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBG
aWx0ZXImKSBjb25zdCA9IDA7CiAgICAgLy8gUmV0dXJucyB0cnVlLCBpZiB0aGUgbmV3IHZhbHVl
IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBvbGQgb25lLgogICAgIHZpcnR1YWwgYm9vbCBzZXRGaWx0
ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwCmluZGV4IGI3NjllNWIwY2NmNWVh
YmNhOTdlZGNhNDQxYWFhYWQxZDhhNTM0ZGUuLmQxNWUzNTQ2YzEyMTNlMDBkZmE1N2M4MWI0YTAw
YjJlZmUzMGE5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdC
b3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwCkBAIC0z
NCwzMCArMzQsMjYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TVkdGaXRUb1ZpZXdCb3g6
OlNWR0ZpdFRvVmlld0JveChTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgQW5pbWF0ZWRQcm9w
ZXJ0eVN0YXRlIGFuaW1hdGVkU3RhdGUpCi0gICAgOiBtX2F0dHJpYnV0ZU93bmVyUHJveHkoKnRo
aXMsICpjb250ZXh0RWxlbWVudCwgYW5pbWF0ZWRTdGF0ZSkKK1NWR0ZpdFRvVmlld0JveDo6U1ZH
Rml0VG9WaWV3Qm94KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBTVkdQcm9wZXJ0eUFjY2Vz
cyBhY2Nlc3MpCisgICAgOiBtX3ZpZXdCb3goU1ZHQW5pbWF0ZWRSZWN0OjpjcmVhdGUoY29udGV4
dEVsZW1lbnQsIGFjY2VzcykpCisgICAgLCBtX3ByZXNlcnZlQXNwZWN0UmF0aW8oU1ZHQW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVhdGUoY29udGV4dEVsZW1lbnQsIGFjY2VzcykpCiB7
Ci0gICAgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7Ci19Ci0KLXZvaWQgU1ZHRml0VG9WaWV3Qm94Ojpy
ZWdpc3RlckF0dHJpYnV0ZXMoKQotewotICAgIGF1dG8mIHJlZ2lzdHJ5ID0gYXR0cmlidXRlUmVn
aXN0cnkoKTsKLSAgICBpZiAoIXJlZ2lzdHJ5LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyQXR0cmlidXRlPFNWR05hbWVzOjp2aWV3Qm94QXR0ciwgJlNW
R0ZpdFRvVmlld0JveDo6bV92aWV3Qm94PigpOwotICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyQXR0cmli
dXRlPFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0ciwgJlNWR0ZpdFRvVmlld0JveDo6
bV9wcmVzZXJ2ZUFzcGVjdFJhdGlvPigpOworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNl
RmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10geworICAgICAgICBQcm9wZXJ0
eVJlZ2lzdHJ5OjpyZWdpc3RlclByb3BlcnR5PFNWR05hbWVzOjp2aWV3Qm94QXR0ciwgJlNWR0Zp
dFRvVmlld0JveDo6bV92aWV3Qm94PigpOworICAgICAgICBQcm9wZXJ0eVJlZ2lzdHJ5OjpyZWdp
c3RlclByb3BlcnR5PFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0ciwgJlNWR0ZpdFRv
Vmlld0JveDo6bV9wcmVzZXJ2ZUFzcGVjdFJhdGlvPigpOworICAgIH0pOwogfQogCiB2b2lkIFNW
R0ZpdFRvVmlld0JveDo6c2V0Vmlld0JveChjb25zdCBGbG9hdFJlY3QmIHZpZXdCb3gpCiB7Ci0g
ICAgbV92aWV3Qm94LnNldFZhbHVlKHZpZXdCb3gpOworICAgIG1fdmlld0JveC0+c2V0QmFzZVZh
bEludGVybmFsKHZpZXdCb3gpOwogICAgIG1faXNWaWV3Qm94VmFsaWQgPSB0cnVlOwogfQogCiB2
b2lkIFNWR0ZpdFRvVmlld0JveDo6cmVzZXRWaWV3Qm94KCkKIHsKLSAgICBtX3ZpZXdCb3gucmVz
ZXRWYWx1ZSgpOworICAgIG1fdmlld0JveC0+c2V0QmFzZVZhbEludGVybmFsKHsgfSk7CiAgICAg
bV9pc1ZpZXdCb3hWYWxpZCA9IGZhbHNlOwogfQogCkBAIC0xMDgsNyArMTA0LDcgQEAgYm9vbCBT
VkdGaXRUb1ZpZXdCb3g6OnBhcnNlVmlld0JveChjb25zdCBVQ2hhciomIGMsIGNvbnN0IFVDaGFy
KiBlbmQsIEZsb2F0UmVjdCYKICAgICBib29sIHZhbGlkID0gcGFyc2VOdW1iZXIoYywgZW5kLCB4
KSAmJiBwYXJzZU51bWJlcihjLCBlbmQsIHkpICYmIHBhcnNlTnVtYmVyKGMsIGVuZCwgd2lkdGgp
ICYmIHBhcnNlTnVtYmVyKGMsIGVuZCwgaGVpZ2h0LCBmYWxzZSk7CiAKICAgICBpZiAodmFsaWRh
dGUpIHsKLSAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gbV9hdHRyaWJ1dGVPd25lclByb3h5
LmVsZW1lbnQoKS5kb2N1bWVudCgpOworICAgICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBtX3Zp
ZXdCb3gtPmNvbnRleHRFbGVtZW50KCktPmRvY3VtZW50KCk7CiAKICAgICAgICAgaWYgKCF2YWxp
ZCkgewogICAgICAgICAgICAgZG9jdW1lbnQuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLnJlcG9ydFdh
cm5pbmcoIlByb2JsZW0gcGFyc2luZyB2aWV3Qm94PVwiIiArIHN0ciArICJcIiIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5oCmluZGV4IDVhYmM1YTBlOWEzZWYxYzYwMTM5YWY1NzJm
MzFiMTRhMTFhMDA3Y2QuLjBlMWVmZTc1ZmQ1ZjMxZjU0YTMzMGY3NGVjNjEyMjhmN2ExMTIzYTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmgKQEAgLTQyLDI2ICs0MiwyNiBAQCBw
dWJsaWM6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJl
Z2lzdHJ5PFNWR0ZpdFRvVmlld0JveD47CiAKLSAgICBjb25zdCBGbG9hdFJlY3QmIHZpZXdCb3go
KSBjb25zdCB7IHJldHVybiBtX3ZpZXdCb3guY3VycmVudFZhbHVlKG1fYXR0cmlidXRlT3duZXJQ
cm94eSk7IH0KLSAgICBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZl
QXNwZWN0UmF0aW8oKSBjb25zdCB7IHJldHVybiBtX3ByZXNlcnZlQXNwZWN0UmF0aW8uY3VycmVu
dFZhbHVlKG1fYXR0cmlidXRlT3duZXJQcm94eSk7IH0KKyAgICBjb25zdCBGbG9hdFJlY3QmIHZp
ZXdCb3goKSBjb25zdCB7IHJldHVybiBtX3ZpZXdCb3gtPmN1cnJlbnRWYWx1ZSgpOyB9CisgICAg
Y29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCkg
Y29uc3QgeyByZXR1cm4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLT5jdXJyZW50VmFsdWUoKTsgfQog
Ci0gICAgUmVmUHRyPFNWR0FuaW1hdGVkUmVjdD4gdmlld0JveEFuaW1hdGVkKCkgeyByZXR1cm4g
bV92aWV3Qm94LmFuaW1hdGVkUHJvcGVydHkobV9hdHRyaWJ1dGVPd25lclByb3h5KTsgfQotICAg
IFJlZlB0cjxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+IHByZXNlcnZlQXNwZWN0UmF0
aW9BbmltYXRlZCgpIHsgcmV0dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpby5hbmltYXRlZFByb3Bl
cnR5KG1fYXR0cmlidXRlT3duZXJQcm94eSk7IH0KKyAgICBTVkdBbmltYXRlZFJlY3QmIHZpZXdC
b3hBbmltYXRlZCgpIHsgcmV0dXJuIG1fdmlld0JveDsgfQorICAgIFNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpbyYgcHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdGVkKCkgeyByZXR1cm4gbV9w
cmVzZXJ2ZUFzcGVjdFJhdGlvOyB9CiAKICAgICB2b2lkIHNldFZpZXdCb3goY29uc3QgRmxvYXRS
ZWN0Jik7CiAgICAgdm9pZCByZXNldFZpZXdCb3goKTsKIAotICAgIHZvaWQgc2V0UHJlc2VydmVB
c3BlY3RSYXRpbyhjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNw
ZWN0UmF0aW8pIHsgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLnNldFZhbHVlKHByZXNlcnZlQXNwZWN0
UmF0aW8pOyB9Ci0gICAgdm9pZCByZXNldFByZXNlcnZlQXNwZWN0UmF0aW8oKSB7IG1fcHJlc2Vy
dmVBc3BlY3RSYXRpby5yZXNldFZhbHVlKCk7IH0KKyAgICB2b2lkIHNldFByZXNlcnZlQXNwZWN0
UmF0aW8oY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJh
dGlvKSB7IG1fcHJlc2VydmVBc3BlY3RSYXRpby0+c2V0QmFzZVZhbEludGVybmFsKHByZXNlcnZl
QXNwZWN0UmF0aW8pOyB9CisgICAgdm9pZCByZXNldFByZXNlcnZlQXNwZWN0UmF0aW8oKSB7IG1f
cHJlc2VydmVBc3BlY3RSYXRpby0+c2V0QmFzZVZhbEludGVybmFsKHsgfSk7IH0KIAotICAgIFN0
cmluZyB2aWV3Qm94U3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV92aWV3Qm94LnRvU3RyaW5nKCk7
IH0KLSAgICBTdHJpbmcgcHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZygpIGNvbnN0IHsgcmV0dXJu
IG1fcHJlc2VydmVBc3BlY3RSYXRpby50b1N0cmluZygpOyB9CisgICAgU3RyaW5nIHZpZXdCb3hT
dHJpbmcoKSBjb25zdCB7IHJldHVybiBTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+Ojp0b1N0
cmluZyh2aWV3Qm94KCkpOyB9CisgICAgU3RyaW5nIHByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmco
KSBjb25zdCB7IHJldHVybiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCkudmFsdWVBc1N0cmluZygpOyB9
CiAKICAgICBib29sIGhhc1ZhbGlkVmlld0JveCgpIGNvbnN0IHsgcmV0dXJuIG1faXNWaWV3Qm94
VmFsaWQ7IH0KICAgICBib29sIGhhc0VtcHR5Vmlld0JveCgpIGNvbnN0IHsgcmV0dXJuIG1faXNW
aWV3Qm94VmFsaWQgJiYgdmlld0JveCgpLmlzRW1wdHkoKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAg
U1ZHRml0VG9WaWV3Qm94KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBBbmltYXRlZFByb3Bl
cnR5U3RhdGUgPSBQcm9wZXJ0eUlzUmVhZFdyaXRlKTsKKyAgICBTVkdGaXRUb1ZpZXdCb3goU1ZH
RWxlbWVudCogY29udGV4dEVsZW1lbnQsIFNWR1Byb3BlcnR5QWNjZXNzID0gU1ZHUHJvcGVydHlB
Y2Nlc3M6OlJlYWRXcml0ZSk7CiAKICAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCiAgICAgewpAQCAtNzQsMTEgKzc0LDgg
QEAgcHJvdGVjdGVkOgogICAgIGJvb2wgcGFyc2VWaWV3Qm94KGNvbnN0IFVDaGFyKiYgc3RhcnQs
IGNvbnN0IFVDaGFyKiBlbmQsIEZsb2F0UmVjdCYgdmlld0JveCwgYm9vbCB2YWxpZGF0ZSA9IHRy
dWUpOwogCiBwcml2YXRlOgotICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQXR0cmlidXRlcygpOwot
Ci0gICAgQXR0cmlidXRlT3duZXJQcm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHk7Ci0gICAgU1ZH
QW5pbWF0ZWRSZWN0QXR0cmlidXRlIG1fdmlld0JveDsKLSAgICBTVkdBbmltYXRlZFByZXNlcnZl
QXNwZWN0UmF0aW9BdHRyaWJ1dGUgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOworICAgIFJlZjxTVkdB
bmltYXRlZFJlY3Q+IG1fdmlld0JveDsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvPiBtX3ByZXNlcnZlQXNwZWN0UmF0aW87CiAgICAgYm9vbCBtX2lzVmlld0JveFZhbGlk
IHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFn
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKaW5k
ZXggMDU1OTkyNzY0YzYzZWQyMzUxZjI2N2ViODUzZGY0ZjU4ZDBjMWFlMy4uZDJiMTRhNTZjMjQ2
NTEyOWExMzE0OWM3ZGQ4NWIyMWVhZWI3ZDkzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdl
RWxlbWVudC5jcHAKQEAgLTQ0LDYgKzQ0LDExIEBAIGlubGluZSBTVkdJbWFnZUVsZW1lbnQ6OlNW
R0ltYWdlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYKICAg
ICAsIG1faW1hZ2VMb2FkZXIoKnRoaXMpCiB7CiAgICAgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7CisK
KyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uo
b25jZUZsYWcsIFtdIHsKKyAgICAgICAgUHJvcGVydHlSZWdpc3RyeTo6cmVnaXN0ZXJQcm9wZXJ0
eTxTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIsICZTVkdJbWFnZUVsZW1lbnQ6Om1f
cHJlc2VydmVBc3BlY3RSYXRpbz4oKTsKKyAgICB9KTsKIH0KIAogUmVmPFNWR0ltYWdlRWxlbWVu
dD4gU1ZHSW1hZ2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50KQpAQCAtNjksNyArNzQsNiBAQCB2b2lkIFNWR0ltYWdlRWxlbWVu
dDo6cmVnaXN0ZXJBdHRyaWJ1dGVzKCkKICAgICByZWdpc3RyeS5yZWdpc3RlckF0dHJpYnV0ZTxT
VkdOYW1lczo6eUF0dHIsICZTVkdJbWFnZUVsZW1lbnQ6Om1feT4oKTsKICAgICByZWdpc3RyeS5y
ZWdpc3RlckF0dHJpYnV0ZTxTVkdOYW1lczo6d2lkdGhBdHRyLCAmU1ZHSW1hZ2VFbGVtZW50Ojpt
X3dpZHRoPigpOwogICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyQXR0cmlidXRlPFNWR05hbWVzOjpoZWln
aHRBdHRyLCAmU1ZHSW1hZ2VFbGVtZW50OjptX2hlaWdodD4oKTsKLSAgICByZWdpc3RyeS5yZWdp
c3RlckF0dHJpYnV0ZTxTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIsICZTVkdJbWFn
ZUVsZW1lbnQ6Om1fcHJlc2VydmVBc3BlY3RSYXRpbz4oKTsKIH0KIAogdm9pZCBTVkdJbWFnZUVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21pY1N0cmluZyYgdmFsdWUpCkBAIC03Nyw3ICs4MSw3IEBAIHZvaWQgU1ZHSW1hZ2VFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNT
dHJpCiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRyKSB7
CiAgICAgICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSBwcmVzZXJ2ZUFzcGVjdFJhdGlv
OwogICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvLnBhcnNlKHZhbHVlKTsKLSAgICAgICAgbV9w
cmVzZXJ2ZUFzcGVjdFJhdGlvLnNldFZhbHVlKHByZXNlcnZlQXNwZWN0UmF0aW8pOworICAgICAg
ICBtX3ByZXNlcnZlQXNwZWN0UmF0aW8tPnNldEJhc2VWYWxJbnRlcm5hbChwcmVzZXJ2ZUFzcGVj
dFJhdGlvKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdl
RWxlbWVudC5oCmluZGV4IDliYzUxOTIyZGUwZjY1OTUzN2VjYjEzMTI2NzZjNWEzMzY2NzQ3ZGMu
LmVjZmM2YjYyMmYyZWQzZWEzM2IxZjhkNzIyODYxNzg3ZjU0ODkwODUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHSW1hZ2VFbGVtZW50LmgKQEAgLTIyLDcgKzIyLDYgQEAKICNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW8uaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LmgiCiAjaW5jbHVkZSAiU1ZHR3JhcGhpY3NFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHSW1hZ2VM
b2FkZXIuaCIKQEAgLTQyLDEzICs0MSwxMyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU1ZHTGVuZ3Ro
VmFsdWUmIHkoKSBjb25zdCB7IHJldHVybiBtX3kuY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93bmVy
UHJveHkoKSk7IH0KICAgICBjb25zdCBTVkdMZW5ndGhWYWx1ZSYgd2lkdGgoKSBjb25zdCB7IHJl
dHVybiBtX3dpZHRoLmN1cnJlbnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CiAgICAg
Y29uc3QgU1ZHTGVuZ3RoVmFsdWUmIGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0LmN1
cnJlbnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9Ci0gICAgY29uc3QgU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCkgY29uc3QgeyByZXR1cm4g
bV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLmN1cnJlbnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkp
OyB9CisgICAgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVj
dFJhdGlvKCkgY29uc3QgeyByZXR1cm4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLT5jdXJyZW50VmFs
dWUoKTsgfQogCiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkTGVuZ3RoPiB4QW5pbWF0ZWQoKSB7IHJl
dHVybiBtX3guYW5pbWF0ZWRQcm9wZXJ0eShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CiAgICAg
UmVmUHRyPFNWR0FuaW1hdGVkTGVuZ3RoPiB5QW5pbWF0ZWQoKSB7IHJldHVybiBtX3kuYW5pbWF0
ZWRQcm9wZXJ0eShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CiAgICAgUmVmUHRyPFNWR0FuaW1h
dGVkTGVuZ3RoPiB3aWR0aEFuaW1hdGVkKCkgeyByZXR1cm4gbV93aWR0aC5hbmltYXRlZFByb3Bl
cnR5KGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KICAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRMZW5n
dGg+IGhlaWdodEFuaW1hdGVkKCkgeyByZXR1cm4gbV9oZWlnaHQuYW5pbWF0ZWRQcm9wZXJ0eShh
dHRyaWJ1dGVPd25lclByb3h5KCkpOyB9Ci0gICAgUmVmUHRyPFNWR0FuaW1hdGVkUHJlc2VydmVB
c3BlY3RSYXRpbz4gcHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdGVkKCkgeyByZXR1cm4gbV9wcmVz
ZXJ2ZUFzcGVjdFJhdGlvLmFuaW1hdGVkUHJvcGVydHkoYXR0cmlidXRlT3duZXJQcm94eSgpKTsg
fQorICAgIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyYgcHJlc2VydmVBc3BlY3RSYXRp
b0FuaW1hdGVkKCkgeyByZXR1cm4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOyB9CiAKIHByaXZhdGU6
CiAgICAgU1ZHSW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpA
QCAtODYsNyArODUsNyBAQCBwcml2YXRlOgogICAgIFNWR0FuaW1hdGVkTGVuZ3RoQXR0cmlidXRl
IG1feSB7IExlbmd0aE1vZGVIZWlnaHQgfTsKICAgICBTVkdBbmltYXRlZExlbmd0aEF0dHJpYnV0
ZSBtX3dpZHRoIHsgTGVuZ3RoTW9kZVdpZHRoIH07CiAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhBdHRy
aWJ1dGUgbV9oZWlnaHQgeyBMZW5ndGhNb2RlSGVpZ2h0IH07Ci0gICAgU1ZHQW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvQXR0cmlidXRlIG1fcHJlc2VydmVBc3BlY3RSYXRpbzsKKyAgICBSZWY8
U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBtX3ByZXNlcnZlQXNwZWN0UmF0aW8geyBT
VkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW86OmNyZWF0ZSh0aGlzKSB9OwogICAgIFNWR0lt
YWdlTG9hZGVyIG1faW1hZ2VMb2FkZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVs
ZW1lbnQuaAppbmRleCBmYjQ5NzFhOGZiZjQwM2Y5ZTA5OGUwZTNkYWY5N2JiMDFmNDYyMzcxLi4x
MDc2NjU3Zjk5ODk0OGM5NjBkNzIzZDIzNDhlNDRiNDkwYTNlNGFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXJrZXJFbGVtZW50LmgKQEAgLTI0LDggKzI0LDYgQEAKICNpbmNsdWRlICJTVkdBbmlt
YXRlZEFuZ2xlLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIgogI2luY2x1
ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRSZWN0LmgiCiAjaW5jbHVkZSAiU1ZH
RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaCIKICNp
bmNsdWRlICJTVkdGaXRUb1ZpZXdCb3guaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXR0ZXJuRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVt
ZW50LmgKaW5kZXggYmUzNWMxMTdhYjFhNmMwYWI2YWY0ZjY1MjFkZWNkNGZhODMxYjMxMC4uMzIx
NGFiNTY1YTIwMjI3OGQ0ZmJkZjI0ZDZmMjY1NzM0NDQzZDljNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdHRlcm5FbGVtZW50LmgKQEAgLTIzLDggKzIzLDYgQEAKIAogI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkRW51bWVyYXRpb24uaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aC5oIgotI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIgotI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkUmVjdC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIgogI2lu
Y2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RS
YXRpby5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaAppbmRl
eCAxMDY5NWEzYzA2ZjJjYzBmNzJkNTA5MDlhNmYzMzU1YzFiYzRlYWEyLi4yNzE3YWJlYmUxMDE5
YWFhMGYzYWY3NjFlYjM1MWY5MTdiNzhhZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE2LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw0MCArMjYsMzcgQEAKICNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgiCi0jaW5jbHVkZSAiU1ZH
UHJvcGVydHlUZWFyT2ZmLmgiCisjaW5jbHVkZSAiU1ZHVmFsdWVQcm9wZXJ0eS5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8gOiBwdWJsaWMg
U1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4gewotcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4gY3JlYXRlKFNWR0xlZ2Fj
eUFuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xl
LCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhhbmltYXRlZFByb3BlcnR5
LCByb2xlLCB2YWx1ZSkpOwotICAgIH0KK2NsYXNzIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8gOiBw
dWJsaWMgU1ZHVmFsdWVQcm9wZXJ0eTxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+IHsKKyAg
ICB1c2luZyBCYXNlID0gU1ZHVmFsdWVQcm9wZXJ0eTxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFs
dWU+OworICAgIHVzaW5nIEJhc2U6OkJhc2U7CisgICAgdXNpbmcgQmFzZTo6bV92YWx1ZTsKIAot
ICAgIHN0YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4gY3JlYXRlKGNvbnN0IFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgaW5pdGlhbFZhbHVlID0geyB9KQorcHVibGljOgorICAg
IHN0YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4gY3JlYXRlKFNWR1Byb3BlcnR5T3du
ZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIGNvbnN0IFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9WYWx1ZSYgdmFsdWUgPSB7IH0pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKGluaXRpYWxWYWx1ZSkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKG93bmVyLCBhY2Nlc3Ms
IHZhbHVlKSk7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIEV4Y2Vw
dGlvbk9yPFJlZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPj4gY3JlYXRlKEV4Y2VwdGlvbk9yPFQ+
JiYgaW5pdGlhbFZhbHVlKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgc3RhdGljIEV4
Y2VwdGlvbk9yPFJlZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPj4gY3JlYXRlKEV4Y2VwdGlvbk9y
PFQ+JiYgdmFsdWUpCiAgICAgewotICAgICAgICBpZiAoaW5pdGlhbFZhbHVlLmhhc0V4Y2VwdGlv
bigpKQotICAgICAgICAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZS5yZWxlYXNlRXhjZXB0aW9uKCk7
Ci0gICAgICAgIHJldHVybiBjcmVhdGUoaW5pdGlhbFZhbHVlLnJlbGVhc2VSZXR1cm5WYWx1ZSgp
KTsKKyAgICAgICAgaWYgKHZhbHVlLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJu
IHZhbHVlLnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U1ZHUHJlc2VydmVBc3BlY3RSYXRpbyh2YWx1ZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSkpOwogICAg
IH0KIAotICAgIHVuc2lnbmVkIHNob3J0IGFsaWduKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBw
cm9wZXJ0eVJlZmVyZW5jZSgpLmFsaWduKCk7Ci0gICAgfQorICAgIHVuc2lnbmVkIHNob3J0IGFs
aWduKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS5hbGlnbigpOyB9CiAKICAgICBFeGNlcHRpb25P
cjx2b2lkPiBzZXRBbGlnbihmbG9hdCB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChpc1JlYWRP
bmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxv
d2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCku
c2V0QWxpZ24odmFsdWUpOworICAgICAgICBhdXRvIHJlc3VsdCA9IG1fdmFsdWUuc2V0QWxpZ24o
dmFsdWUpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKIApAQCAtNjcsMTcgKzY0LDE0IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICB1bnNpZ25lZCBzaG9ydCBtZWV0T3JTbGljZSgpCi0g
ICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHlSZWZlcmVuY2UoKS5tZWV0T3JTbGljZSgpOwot
ICAgIH0KKyAgICB1bnNpZ25lZCBzaG9ydCBtZWV0T3JTbGljZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dmFsdWUubWVldE9yU2xpY2UoKTsgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0TWVldE9y
U2xpY2UoZmxvYXQgdmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaXNSZWFkT25seSgpKQogICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07
CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldE1lZXRPclNs
aWNlKHZhbHVlKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSBtX3ZhbHVlLnNldE1lZXRPclNsaWNl
KHZhbHVlKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAKQEAgLTg1LDE1ICs3OSw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRp
byhTVkdMZWdhY3lBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0
eVJvbGUgcm9sZSwgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB2YWx1ZSkKLSAgICAgICAg
OiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigmYW5pbWF0
ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCi0gICAgewotICAgIH0KLQotICAgIGV4cGxpY2l0IFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8oY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBp
bml0aWFsVmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9WYWx1ZT4oaW5pdGlhbFZhbHVlKQorICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkg
Y29uc3Qgb3ZlcnJpZGUKICAgICB7CisgICAgICAgIHJldHVybiBtX3ZhbHVlLnZhbHVlQXNTdHJp
bmcoKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVj
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3QuaAppbmRleCA5ZjQ4N2I3YWVhYWZkYjZl
MmY0YjQyYzJmMjc1MmVmMGNkMDAwMTMyLi44MjE0MjE2MzliZWJjOTk1ZWU4MDBkYTZkNjBjYTg5
MTYyNWRiOTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjAsMTAzICsyMCw4NiBAQAogCiAjcHJh
Z21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR1Byb3BlcnR5VGVhck9mZi5oIgogI2luY2x1ZGUgIlNW
R1Byb3BlcnR5VHJhaXRzLmgiCisjaW5jbHVkZSAiU1ZHVmFsdWVQcm9wZXJ0eS5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNWR1JlY3QgOiBwdWJsaWMgU1ZHUHJvcGVydHlUZWFy
T2ZmPEZsb2F0UmVjdD4geworY2xhc3MgU1ZHUmVjdCA6IHB1YmxpYyBTVkdWYWx1ZVByb3BlcnR5
PEZsb2F0UmVjdD4geworICAgIHVzaW5nIEJhc2UgPSBTVkdWYWx1ZVByb3BlcnR5PEZsb2F0UmVj
dD47CisgICAgdXNpbmcgQmFzZTo6QmFzZTsKKyAgICB1c2luZyBCYXNlOjptX3ZhbHVlOworCiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdSZWN0PiBjcmVhdGUoU1ZHTGVnYWN5QW5pbWF0ZWRQ
cm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIEZsb2F0UmVj
dCYgdmFsdWUpCisgICAgc3RhdGljIFJlZjxTVkdSZWN0PiBjcmVhdGUoY29uc3QgRmxvYXRSZWN0
JiB2YWx1ZSA9IHsgfSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1Jl
Y3QoYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU1ZHUmVjdCh2YWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHUmVj
dD4gY3JlYXRlKGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbFZhbHVlID0geyB9KQorICAgIHN0YXRp
YyBSZWY8U1ZHUmVjdD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0
eUFjY2VzcyBhY2Nlc3MsIGNvbnN0IEZsb2F0UmVjdCYgdmFsdWUgPSB7IH0pCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdSZWN0KGluaXRpYWxWYWx1ZSkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdSZWN0KG93bmVyLCBhY2Nlc3MsIHZhbHVlKSk7CiAg
ICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxT
VkdSZWN0Pj4gY3JlYXRlKEV4Y2VwdGlvbk9yPFQ+JiYgaW5pdGlhbFZhbHVlKQorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+CisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxTVkdSZWN0Pj4gY3Jl
YXRlKEV4Y2VwdGlvbk9yPFQ+JiYgdmFsdWUpCiAgICAgewotICAgICAgICBpZiAoaW5pdGlhbFZh
bHVlLmhhc0V4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZS5yZWxl
YXNlRXhjZXB0aW9uKCk7Ci0gICAgICAgIHJldHVybiBjcmVhdGUoaW5pdGlhbFZhbHVlLnJlbGVh
c2VSZXR1cm5WYWx1ZSgpKTsKKyAgICAgICAgaWYgKHZhbHVlLmhhc0V4Y2VwdGlvbigpKQorICAg
ICAgICAgICAgcmV0dXJuIHZhbHVlLnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHUmVjdCh2YWx1ZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSkpOwogICAg
IH0KIAotICAgIGZsb2F0IHgoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJl
bmNlKCkueCgpOwotICAgIH0KKyAgICBmbG9hdCB4KCkgeyByZXR1cm4gbV92YWx1ZS54KCk7IH0K
IAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFgoZmxvYXQgeFZhbHVlKQogICAgIHsKICAgICAg
ICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01v
ZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlKCku
c2V0WCh4VmFsdWUpOworICAgICAgICBtX3ZhbHVlLnNldFgoeFZhbHVlKTsKICAgICAgICAgY29t
bWl0Q2hhbmdlKCk7Ci0KICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKLSAgICBmbG9hdCB5
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLnkoKTsKLSAgICB9
CisgICAgZmxvYXQgeSgpIHsgcmV0dXJuIG1fdmFsdWUueSgpOyB9CiAKICAgICBFeGNlcHRpb25P
cjx2b2lkPiBzZXRZKGZsb2F0IHhWYWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChpc1JlYWRPbmx5
KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2Vk
RXJyb3IgfTsKIAotICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZSgpLnNldFkoeFZhbHVlKTsKKyAg
ICAgICAgbV92YWx1ZS5zZXRZKHhWYWx1ZSk7CiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwotCiAg
ICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCi0gICAgZmxvYXQgd2lkdGgoKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkud2lkdGgoKTsKLSAgICB9CisgICAgZmxv
YXQgd2lkdGgoKSB7IHJldHVybiBtX3ZhbHVlLndpZHRoKCk7IH0KIAogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldFdpZHRoKGZsb2F0IHdpZHRoVmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaXNS
ZWFkT25seSgpKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9u
QWxsb3dlZEVycm9yIH07CiAKLSAgICAgICAgcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRXaWR0aCh3
aWR0aFZhbHVlKTsKKyAgICAgICAgbV92YWx1ZS5zZXRXaWR0aCh3aWR0aFZhbHVlKTsKICAgICAg
ICAgY29tbWl0Q2hhbmdlKCk7Ci0KICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKLSAgICBm
bG9hdCBoZWlnaHQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCku
aGVpZ2h0KCk7Ci0gICAgfQorICAgIGZsb2F0IGhlaWdodCgpIHsgcmV0dXJuIG1fdmFsdWUuaGVp
Z2h0KCk7IH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEhlaWdodChmbG9hdCBoZWlnaHRW
YWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBw
cm9wZXJ0eVJlZmVyZW5jZSgpLnNldEhlaWdodChoZWlnaHRWYWx1ZSk7CisgICAgICAgIG1fdmFs
dWUuc2V0SGVpZ2h0KGhlaWdodFZhbHVlKTsKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7Ci0KICAg
ICAgICAgcmV0dXJuIHsgfTsKICAgICB9Ci0KLXByaXZhdGU6Ci0gICAgU1ZHUmVjdChTVkdMZWdh
Y3lBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9s
ZSwgRmxvYXRSZWN0JiB2YWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRS
ZWN0PigmYW5pbWF0ZWRQcm9wZXJ0eSwgcm9sZSwgdmFsdWUpCi0gICAgewotICAgIH0KLQotICAg
IGV4cGxpY2l0IFNWR1JlY3QoY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsVmFsdWUpCi0gICAgICAg
IDogU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UmVjdD4oaW5pdGlhbFZhbHVlKQorICAgIAorICAg
IFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CisgICAgICAgIHJl
dHVybiBTVkdQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+Ojp0b1N0cmluZyhtX3ZhbHVlKTsKICAg
ICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKaW5kZXggNGQxNDQxNWNk
NTlhN2UyYzA2NWE4ZWFjMTZkZDk1NTJhZTdjNTY4Zi4uMjc5NGQ5YTlhNmM1MTNjMDc0Mjc2NjFi
NTFlNGQ1ODU1ZTA0ZDJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcApAQCAt
MzIyLDEyICszMjIsMTIgQEAgUmVmPE5vZGVMaXN0PiBTVkdTVkdFbGVtZW50Ojpjb2xsZWN0SW50
ZXJzZWN0aW9uT3JFbmNsb3N1cmVMaXN0KFNWR1JlY3QmIHJlY3QsIFMKIAogc3RhdGljIGJvb2wg
Y2hlY2tJbnRlcnNlY3Rpb25XaXRob3V0VXBkYXRpbmdMYXlvdXQoU1ZHRWxlbWVudCYgZWxlbWVu
dCwgU1ZHUmVjdCYgcmVjdCkKIHsKLSAgICByZXR1cm4gUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmNo
ZWNrSW50ZXJzZWN0aW9uKGVsZW1lbnQucmVuZGVyZXIoKSwgcmVjdC5wcm9wZXJ0eVJlZmVyZW5j
ZSgpKTsKKyAgICByZXR1cm4gUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmNoZWNrSW50ZXJzZWN0aW9u
KGVsZW1lbnQucmVuZGVyZXIoKSwgcmVjdC52YWx1ZSgpKTsKIH0KICAgICAKIHN0YXRpYyBib29s
IGNoZWNrRW5jbG9zdXJlV2l0aG91dFVwZGF0aW5nTGF5b3V0KFNWR0VsZW1lbnQmIGVsZW1lbnQs
IFNWR1JlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIFJlbmRlclNWR01vZGVsT2JqZWN0OjpjaGVj
a0VuY2xvc3VyZShlbGVtZW50LnJlbmRlcmVyKCksIHJlY3QucHJvcGVydHlSZWZlcmVuY2UoKSk7
CisgICAgcmV0dXJuIFJlbmRlclNWR01vZGVsT2JqZWN0OjpjaGVja0VuY2xvc3VyZShlbGVtZW50
LnJlbmRlcmVyKCksIHJlY3QudmFsdWUoKSk7CiB9CiAKIFJlZjxOb2RlTGlzdD4gU1ZHU1ZHRWxl
bWVudDo6Z2V0SW50ZXJzZWN0aW9uTGlzdChTVkdSZWN0JiByZWN0LCBTVkdFbGVtZW50KiByZWZl
cmVuY2VFbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKaW5kZXggMTlkYzVlMDA4
YzQ5OWMzMTA1NTVmZjIzZTJmNWQ1M2M0MTE1NGYzYi4uZWQ1MmQzNmU5ZTY3YjliMjk2NjMwN2Q3
OGY1NjQ0ZmFlZGY3OWQyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0Vs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCkBAIC0yMyw4
ICsyMyw2IEBACiAKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRMZW5ndGguaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCIK
LSNpbmNsdWRlICJTVkdBbmltYXRlZFJlY3QuaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94LmgiCiAjaW5jbHVkZSAi
U1ZHR3JhcGhpY3NFbGVtZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U3RyaW5nTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAppbmRleCBl
ZDdlYTQ0OTY4NWMxMTEzOTA5M2Y1OGM3M2Q1YmU5ZmIwMjVjMTk1Li5kMWUwMTA2OWIxMmM3ZTkw
NjAyYWYwMDJmZTI5M2M0MGQ0YjcwZWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3RyaW5nTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmgK
QEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIlNWR1BhcnNlclV0aWxpdGllcy5oIgogI2lu
Y2x1ZGUgIlNWR1ByaW1pdGl2ZUxpc3QuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xF
bGVtZW50LmgKaW5kZXggOTBhN2JjM2I0ZmM2N2ZlYzA1YzlmOTYzMmM2ZmM0ODNmNTNlMWU4MC4u
MDg3NmE0NDcxMmQ3Mzg0OTg3MWVlZTVlYTBmOTAwMTBlNmQxYWY5MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU3ltYm9sRWxlbWVudC5oCkBAIC0yMSw4ICsyMSw2IEBACiAKICNwcmFnbWEgb25jZQog
Ci0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgiCi0jaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRSZWN0LmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaCIKICNpbmNsdWRlICJTVkdGaXRUb1ZpZXdCb3gu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCmluZGV4IDlhZjg3ODM3N2U2NjhjOWE3N2Mx
NmI0MGZiMjQzZjgyNzViYzZiNDUuLjEwZDkyNDNhNzNmZmJjNWIwODIzODZiMDQ0NWMzNDJlZDZh
MjRmYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTAgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLSAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogU1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVjKFNWR0VsZW1lbnQmIGNvbnRleHRFbGVtZW50KQot
ICAgIDogU1ZHRml0VG9WaWV3Qm94KCZjb250ZXh0RWxlbWVudCwgUHJvcGVydHlJc1JlYWRPbmx5
KQorICAgIDogU1ZHRml0VG9WaWV3Qm94KCZjb250ZXh0RWxlbWVudCwgU1ZHUHJvcGVydHlBY2Nl
c3M6OlJlYWRPbmx5KQogICAgICwgbV9jb250ZXh0RWxlbWVudChtYWtlV2Vha1B0cihjb250ZXh0
RWxlbWVudCkpCiAgICAgLCBtX2F0dHJpYnV0ZU93bmVyUHJveHkoKnRoaXMsIGNvbnRleHRFbGVt
ZW50KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuaAppbmRleCA2NmFiMjVhN2Y3YjdiOGQxNzYy
NzQxOTk1OTRlNmQ0ZTAxNGZiZjVlLi5kMWEyMTczZmVmNzE4MTk5MjAwYzBlMDUyNjBjMWRlOTlj
MDdkOWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuaApAQCAtMjAsOCArMjAsNiBAQAogCiAj
cHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5o
IgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUmVjdC5oIgogI2luY2x1ZGUgIlNWR0ZpdFRvVmlld0Jv
eC5oIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybUxpc3RWYWx1ZXMuaCIKICNpbmNsdWRlICJTVkda
b29tQW5kUGFuLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFByb3BlcnR5QWNjZXNzb3JJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5QWNjZXNzb3JJbXBsLmgKaW5kZXggZjAxMmNmYTZm
NTQ5ZWYyM2VhODJlM2M0ZTdkNTUwNWRmODgwYjU2ZC4uZDA4ZWI3MDNmMDI1MTQ0YjI3YzM1YzUy
NTY0NDIwNDE4OGI5OWUzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFjY2Vzc29ySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlBY2Nlc3NvckltcGwuaApAQCAtNzYs
NCArNzYsNDggQEAgcHJpdmF0ZToKICAgICB9CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBPd25l
clR5cGU+CitjbGFzcyBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BY2Nlc3NvciBmaW5h
bCA6IHB1YmxpYyBTVkdBbmltYXRlZFByb3BlcnR5QWNjZXNzb3I8T3duZXJUeXBlLCBTVkdBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+IHsKKyAgICB1c2luZyBCYXNlID0gU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eUFjY2Vzc29yPE93bmVyVHlwZSwgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
PjsKKyAgICB1c2luZyBCYXNlOjpwcm9wZXJ0eTsKKworcHVibGljOgorICAgIHVzaW5nIEJhc2U6
OkJhc2U7CisgICAgdGVtcGxhdGU8UmVmPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4g
T3duZXJUeXBlOjoqcHJvcGVydHk+CisgICAgY29uc3RleHByIHN0YXRpYyBjb25zdCBTVkdNZW1i
ZXJBY2Nlc3NvcjxPd25lclR5cGU+JiBzaW5nbGV0b24oKSB7IHJldHVybiBCYXNlOjp0ZW1wbGF0
ZSBzaW5nbGV0b248U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQWNjZXNzb3IsIHByb3Bl
cnR5PigpOyB9CisKK3ByaXZhdGU6CisgICAgc3RkOjp1bmlxdWVfcHRyPFNWR0F0dHJpYnV0ZUFu
aW1hdG9yPiBjcmVhdGVBbmltYXRvcihPd25lclR5cGUmIG93bmVyLCBjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2Rl
IGNhbGNNb2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkgY29uc3QgZmlu
YWwKKyAgICB7CisgICAgICAgIHJldHVybiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9B
bmltYXRvcjo6Y3JlYXRlKGF0dHJpYnV0ZU5hbWUsIHByb3BlcnR5KG93bmVyKSwgYW5pbWF0aW9u
TW9kZSwgY2FsY01vZGUsIGlzQWNjdW11bGF0ZWQsIGlzQWRkaXRpdmUpOworICAgIH0KKworICAg
IHZvaWQgYXBwZW5kQW5pbWF0ZWRJbnN0YW5jZShPd25lclR5cGUmIG93bmVyLCBTVkdBdHRyaWJ1
dGVBbmltYXRvciYgYW5pbWF0b3IpIGNvbnN0IGZpbmFsCisgICAgeworICAgICAgICBzdGF0aWNf
Y2FzdDxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvciY+KGFuaW1hdG9yKS5h
cHBlbmRBbmltYXRlZEluc3RhbmNlKHByb3BlcnR5KG93bmVyKSk7CisgICAgfQorfTsKKwordGVt
cGxhdGU8dHlwZW5hbWUgT3duZXJUeXBlPgorY2xhc3MgU1ZHQW5pbWF0ZWRSZWN0QWNjZXNzb3Ig
ZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFjY2Vzc29yPE93bmVyVHlwZSwgU1ZH
QW5pbWF0ZWRSZWN0PiB7CisgICAgdXNpbmcgQmFzZSA9IFNWR0FuaW1hdGVkUHJvcGVydHlBY2Nl
c3NvcjxPd25lclR5cGUsIFNWR0FuaW1hdGVkUmVjdD47CisgICAgdXNpbmcgQmFzZTo6cHJvcGVy
dHk7CisKK3B1YmxpYzoKKyAgICB1c2luZyBCYXNlOjpCYXNlOworICAgIHRlbXBsYXRlPFJlZjxT
VkdBbmltYXRlZFJlY3Q+IE93bmVyVHlwZTo6KnByb3BlcnR5PgorICAgIGNvbnN0ZXhwciBzdGF0
aWMgY29uc3QgU1ZHTWVtYmVyQWNjZXNzb3I8T3duZXJUeXBlPiYgc2luZ2xldG9uKCkgeyByZXR1
cm4gQmFzZTo6dGVtcGxhdGUgc2luZ2xldG9uPFNWR0FuaW1hdGVkUmVjdEFjY2Vzc29yLCBwcm9w
ZXJ0eT4oKTsgfQorCitwcml2YXRlOgorICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdBdHRyaWJ1dGVB
bmltYXRvcj4gY3JlYXRlQW5pbWF0b3IoT3duZXJUeXBlJiBvd25lciwgY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0aW9uTW9kZSBhbmltYXRpb25Nb2RlLCBDYWxjTW9k
ZSBjYWxjTW9kZSwgYm9vbCBpc0FjY3VtdWxhdGVkLCBib29sIGlzQWRkaXRpdmUpIGNvbnN0IGZp
bmFsCisgICAgeworICAgICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3I6OmNyZWF0
ZShhdHRyaWJ1dGVOYW1lLCBwcm9wZXJ0eShvd25lciksIGFuaW1hdGlvbk1vZGUsIGNhbGNNb2Rl
LCBpc0FjY3VtdWxhdGVkLCBpc0FkZGl0aXZlKTsKKyAgICB9CisKKyAgICB2b2lkIGFwcGVuZEFu
aW1hdGVkSW5zdGFuY2UoT3duZXJUeXBlJiBvd25lciwgU1ZHQXR0cmlidXRlQW5pbWF0b3ImIGFu
aW1hdG9yKSBjb25zdCBmaW5hbAorICAgIHsKKyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHQW5pbWF0
ZWRSZWN0QW5pbWF0b3ImPihhbmltYXRvcikuYXBwZW5kQW5pbWF0ZWRJbnN0YW5jZShwcm9wZXJ0
eShvd25lcikpOworICAgIH0KK307CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlBbmltYXRvckltcGwuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlBbmltYXRvckltcGwuaApp
bmRleCBhZjMzNDU2ZmJiZTRiOWQ4ZDI2MzFiZmI5NGM5YWUyMTNjZDEyZDZmLi44NDNmOTMyZDIx
ZDIwYTYwZjg4MTIyMjYyNjFiZmZkNDhkYzE4ZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3JJbXBsLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9y
SW1wbC5oCkBAIC03NCw0ICs3NCwzOSBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKK2NsYXNzIFNW
R0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yIGZpbmFsIDogcHVibGljIFNWR0Fu
aW1hdGVkUHJvcGVydHlBbmltYXRvcjxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8sIFNW
R0FuaW1hdGlvblByZXNlcnZlQXNwZWN0UmF0aW9GdW5jdGlvbj4geworICAgIHVzaW5nIEJhc2Ug
PSBTVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3I8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJh
dGlvLCBTVkdBbmltYXRpb25QcmVzZXJ2ZUFzcGVjdFJhdGlvRnVuY3Rpb24+OworICAgIHVzaW5n
IEJhc2U6OkJhc2U7CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgUmVmPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpbz4mIGFuaW1hdGVkLCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2RlIGNh
bGNNb2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
QW5pbWF0b3I+KG5ldyBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcihhdHRy
aWJ1dGVOYW1lLCBhbmltYXRlZCwgYW5pbWF0aW9uTW9kZSwgY2FsY01vZGUsIGlzQWNjdW11bGF0
ZWQsIGlzQWRkaXRpdmUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBwcm9ncmVzcyhT
VkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBl
YXRDb3VudCkgZmluYWwKKyAgICB7CisgICAgICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZSYgYW5pbWF0ZWQgPSBtX2FuaW1hdGVkLT5hbmltVmFsKCktPnZhbHVlKCk7CisgICAgICAgIG1f
ZnVuY3Rpb24ucHJvZ3Jlc3ModGFyZ2V0RWxlbWVudCwgcGVyY2VudGFnZSwgcmVwZWF0Q291bnQs
IGFuaW1hdGVkKTsKKyAgICB9Cit9OworCitjbGFzcyBTVkdBbmltYXRlZFJlY3RBbmltYXRvciBm
aW5hbCA6IHB1YmxpYyBTVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3I8U1ZHQW5pbWF0ZWRSZWN0
LCBTVkdBbmltYXRpb25SZWN0RnVuY3Rpb24+IHsKKyAgICB1c2luZyBCYXNlID0gU1ZHQW5pbWF0
ZWRQcm9wZXJ0eUFuaW1hdG9yPFNWR0FuaW1hdGVkUmVjdCwgU1ZHQW5pbWF0aW9uUmVjdEZ1bmN0
aW9uPjsKKyAgICB1c2luZyBCYXNlOjpCYXNlOworCitwdWJsaWM6CisgICAgc3RhdGljIGF1dG8g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFJlZjxTVkdBbmltYXRl
ZFJlY3Q+JiBhbmltYXRlZCwgQW5pbWF0aW9uTW9kZSBhbmltYXRpb25Nb2RlLCBDYWxjTW9kZSBj
YWxjTW9kZSwgYm9vbCBpc0FjY3VtdWxhdGVkLCBib29sIGlzQWRkaXRpdmUpCisgICAgeworICAg
ICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yPihuZXcg
U1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3IoYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWQsIGFuaW1hdGlv
bk1vZGUsIGNhbGNNb2RlLCBpc0FjY3VtdWxhdGVkLCBpc0FkZGl0aXZlKSk7CisgICAgfQorCitw
cml2YXRlOgorICAgIHZvaWQgcHJvZ3Jlc3MoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgZmxv
YXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQpIGZpbmFsCisgICAgeworICAgICAg
ICBtX2Z1bmN0aW9uLnByb2dyZXNzKHRhcmdldEVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENv
dW50LCBtX2FuaW1hdGVkLT5hbmltVmFsKCktPnZhbHVlKCkpOworICAgIH0KK307CisKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVy
dHlJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3Bl
cnR5SW1wbC5oCmluZGV4IDhlZjc3MjZiYWIzYzkzMWQ1MzZmYmIzY2Y2Nzk3NTQ4YjE3OGRmZDUu
LjJhMGMzMmViYTE3N2YxNWQ1ZjRlMmNkNmI0NWMwMTQ3OTY1ZTI2ZGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlJbXBsLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUltcGwu
aApAQCAtMzIsMTUgKzMyLDE5IEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXIuaCIKICNp
bmNsdWRlICJTVkdBbmltYXRlZE51bWJlckxpc3QuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFBv
aW50TGlzdC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIgog
I2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkuaCIKLSNpbmNsdWRlICJTVkdB
bmltYXRlZFJlY3QuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZy5oIgogI2luY2x1ZGUg
IlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVkVmFsdWVQ
cm9wZXJ0eS5oIgorI2luY2x1ZGUgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCIKKyNpbmNsdWRl
ICJTVkdSZWN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgU1ZHQW5pbWF0ZWRC
b29sZWFuID0gU1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eTxib29sPjsKIHVzaW5nIFNWR0Fu
aW1hdGVkSW50ZWdlciA9IFNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHk8aW50PjsKIAordXNp
bmcgU1ZHQW5pbWF0ZWRSZWN0ID0gU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5PFNWR1JlY3Q+Owor
dXNpbmcgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvID0gU1ZHQW5pbWF0ZWRWYWx1ZVBy
b3BlcnR5PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+OworCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFZhbHVlUHJvcGVydHkuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmRmZGIxNzFhMGNiODNmYzc1OTYwNTllNzYwNGE3ZmQ4OTM1MWY1MjUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFZhbHVl
UHJvcGVydHkuaApAQCAtMCwwICsxLDE2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOC0y
MDE5IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRQcm9wZXJ0eS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCit0ZW1wbGF0ZTx0
eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CitjbGFzcyBTVkdBbmltYXRlZFZhbHVlUHJvcGVydHkgOiBw
dWJsaWMgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSB7CitwdWJsaWM6CisgICAgdXNpbmcgVmFsdWVUeXBl
ID0gdHlwZW5hbWUgUHJvcGVydHlUeXBlOjpWYWx1ZVR5cGU7CisKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZS4uLiBBcmd1bWVudHM+CisgICAgc3RhdGljIFJlZjxTVkdBbmltYXRlZFZhbHVlUHJvcGVy
dHk+IGNyZWF0ZShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgQXJndW1lbnRzJiYuLi4gYXJn
dW1lbnRzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5pbWF0ZWRW
YWx1ZVByb3BlcnR5KGNvbnRleHRFbGVtZW50LCBzdGQ6OmZvcndhcmQ8QXJndW1lbnRzPihhcmd1
bWVudHMpLi4uKSk7CisgICAgfQorCisgICAgflNWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eSgpCisg
ICAgeworICAgICAgICBtX2Jhc2VWYWwtPmRldGFjaCgpOworICAgICAgICBpZiAobV9hbmltVmFs
KQorICAgICAgICAgICAgbV9hbmltVmFsLT5kZXRhY2goKTsKKyAgICB9CisKKyAgICAvLyBVc2Vk
IGJ5IFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKCkuCisgICAgdm9pZCBzZXRCYXNlVmFsSW50
ZXJuYWwoY29uc3QgVmFsdWVUeXBlJiBiYXNlVmFsKQorICAgIHsKKyAgICAgICAgbV9iYXNlVmFs
LT5zZXRWYWx1ZShiYXNlVmFsKTsKKyAgICAgICAgaWYgKG1fYW5pbVZhbCkKKyAgICAgICAgICAg
IG1fYW5pbVZhbC0+c2V0VmFsdWUoYmFzZVZhbCk7CisgICAgfQorCisgICAgLy8gVXNlZCBieSB0
aGUgRE9NLgorICAgIGNvbnN0IFJlZjxQcm9wZXJ0eVR5cGU+JiBiYXNlVmFsKCkgY29uc3QgeyBy
ZXR1cm4gbV9iYXNlVmFsOyB9CisKKyAgICBSZWY8UHJvcGVydHlUeXBlPiYgYmFzZVZhbCgpIHsg
cmV0dXJuIG1fYmFzZVZhbDsgfQorCisgICAgLy8gVXNlZCBieSBTVkdBbmltYXRvcjo6cHJvZ3Jl
c3MuCisgICAgdm9pZCBzZXRBbmltVmFsKGNvbnN0IFZhbHVlVHlwZSYgYW5pbVZhbCkKKyAgICB7
CisgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpICYmIG1fYW5pbVZhbCk7CisgICAgICAgIG1f
YW5pbVZhbC0+c2V0VmFsdWUoYW5pbVZhbCk7CisgICAgfQorCisgICAgLy8gVXNlZCBieSB0aGUg
RE9NLgorICAgIGNvbnN0IFJlZlB0cjxQcm9wZXJ0eVR5cGU+JiBhbmltVmFsKCkgY29uc3QgeyBy
ZXR1cm4gY29uc3RfY2FzdDxTVkdBbmltYXRlZFZhbHVlUHJvcGVydHkqPih0aGlzKS0+ZW5zdXJl
QW5pbVZhbCgpOyB9CisKKyAgICAvLyBDYWxsZWQgYnkgU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1h
dG9yIHRvIHBhc3MgdGhlIGFuaW1WYWwgdG8gdGhlIFNWR0FuaW1hdGlvbkZ1bmN0aW9uOjpwcm9n
cmVzcy4KKyAgICBSZWZQdHI8UHJvcGVydHlUeXBlPiYgYW5pbVZhbCgpIHsgcmV0dXJuIGVuc3Vy
ZUFuaW1WYWwoKTsgfQorCisgICAgLy8gVXNlZCB3aGVuIGNvbW1pdHRpbmcgYSBjaGFuZ2UgZnJv
bSB0aGUgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSB0byB0aGUgYXR0cmlidXRlLgorICAgIFN0cmluZyBi
YXNlVmFsQXNTdHJpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Jhc2VWYWwtPnZhbHVl
QXNTdHJpbmcoKTsgfQorCisgICAgLy8gVXNlZCB0byBhcHBseSB0aGUgU1ZHQW5pbWF0b3IgY2hh
bmdlIHRvIHRoZSB0YXJnZXQgZWxlbWVudC4KKyAgICBTdHJpbmcgYW5pbVZhbEFzU3RyaW5nKCkg
Y29uc3Qgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpICYmIG1f
YW5pbVZhbCk7CisgICAgICAgIHJldHVybiBtX2FuaW1WYWwtPnZhbHVlQXNTdHJpbmcoKTsKKyAg
ICB9CisKKyAgICAvLyBNYW5hZ2luZyB0aGUgcmVsYXRpb25zaGlwIHdpdGggdGhlIG93bmVyLgor
ICAgIHZvaWQgc2V0RGlydHkoKSBvdmVycmlkZSB7IG1fYmFzZVZhbC0+c2V0RGlydHkoKTsgfQor
ICAgIGJvb2wgaXNEaXJ0eSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYmFzZVZhbC0+aXNE
aXJ0eSgpOyB9CisgICAgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZSgpIG92ZXJyaWRlIHsg
cmV0dXJuIG1fYmFzZVZhbC0+c3luY2hyb25pemUoKTsgfQorCisgICAgLy8gVXNlZCBieSBSZW5k
ZXJTVkdFbGVtZW50cyBhbmQgRHVtcFJlbmRlclRyZWUuCisgICAgY29uc3QgVmFsdWVUeXBlJiBj
dXJyZW50VmFsdWUoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUX0lNUExJRVMoaXNBbmlt
YXRpbmcoKSwgbV9hbmltVmFsKTsKKyAgICAgICAgcmV0dXJuIChpc0FuaW1hdGluZygpID8gKm1f
YW5pbVZhbCA6IG1fYmFzZVZhbC5nZXQoKSkudmFsdWUoKTsKKyAgICB9CisKKyAgICAvLyBDb250
cm9sbGluZyB0aGUgYW5pbWF0aW9uLgorICAgIHZvaWQgc3RhcnRBbmltYXRpb24oKSBvdmVycmlk
ZQorICAgIHsKKyAgICAgICAgaWYgKG1fYW5pbVZhbCkKKyAgICAgICAgICAgIG1fYW5pbVZhbC0+
c2V0VmFsdWUobV9iYXNlVmFsLT52YWx1ZSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
ZW5zdXJlQW5pbVZhbCgpOworICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjpzdGFydEFuaW1h
dGlvbigpOworICAgIH0KKworICAgIHZvaWQgc3RvcEFuaW1hdGlvbigpIG92ZXJyaWRlCisgICAg
eworICAgICAgICBpZiAobV9hbmltVmFsKQorICAgICAgICAgICAgbV9hbmltVmFsLT5zZXRWYWx1
ZShtX2Jhc2VWYWwtPnZhbHVlKCkpOworICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjpzdG9w
QW5pbWF0aW9uKCk7CisgICAgfQorCisgICAgLy8gQ29udHJvbGxpbmcgdGhlIGluc3RhbmNlIGFu
aW1hdGlvbi4KKyAgICB2b2lkIGluc3RhbmNlU3RhcnRBbmltYXRpb24oU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eSYgYW5pbWF0ZWQpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2FuaW1WYWwgPSBzdGF0
aWNfY2FzdDxTVkdBbmltYXRlZFZhbHVlUHJvcGVydHkmPihhbmltYXRlZCkuYW5pbVZhbCgpOwor
ICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjppbnN0YW5jZVN0YXJ0QW5pbWF0aW9uKGFuaW1h
dGVkKTsKKyAgICB9CisKKyAgICB2b2lkIGluc3RhbmNlU3RvcEFuaW1hdGlvbigpIG92ZXJyaWRl
CisgICAgeworICAgICAgICBtX2FuaW1WYWwgPSBudWxscHRyOworICAgICAgICBTVkdBbmltYXRl
ZFByb3BlcnR5OjppbnN0YW5jZVN0b3BBbmltYXRpb24oKTsKKyAgICB9CisKK3Byb3RlY3RlZDoK
KyAgICAvLyBUaGUgcGFja2VkIGFyZ3VtZW50cyBhcmUgdXNlZCBpbiBQcm9wZXJ0eVR5cGUgY3Jl
YXRpb24sIGZvciBleGFtcGxlIHBhc3NpbmcKKyAgICAvLyBTVkdMZW5ndGhNb2RlIHRvIFNWR0xl
bmd0aC4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CisgICAgU1ZHQW5pbWF0
ZWRWYWx1ZVByb3BlcnR5KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBBcmd1bWVudHMmJi4u
LiBhcmd1bWVudHMpCisgICAgICAgIDogU1ZHQW5pbWF0ZWRQcm9wZXJ0eShjb250ZXh0RWxlbWVu
dCkKKyAgICAgICAgLCBtX2Jhc2VWYWwoUHJvcGVydHlUeXBlOjpjcmVhdGUodGhpcywgU1ZHUHJv
cGVydHlBY2Nlc3M6OlJlYWRXcml0ZSwgVmFsdWVUeXBlKHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+
KGFyZ3VtZW50cykuLi4pKSkKKyAgICB7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUu
Li4gQXJndW1lbnRzPgorICAgIFNWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eShTVkdFbGVtZW50KiBj
b250ZXh0RWxlbWVudCwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBBcmd1bWVudHMmJi4uLiBh
cmd1bWVudHMpCisgICAgICAgIDogU1ZHQW5pbWF0ZWRQcm9wZXJ0eShjb250ZXh0RWxlbWVudCkK
KyAgICAgICAgLCBtX2Jhc2VWYWwoUHJvcGVydHlUeXBlOjpjcmVhdGUodGhpcywgYWNjZXNzLCBW
YWx1ZVR5cGUoc3RkOjpmb3J3YXJkPEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLikpKQorICAgIHsK
KyAgICB9CisKKyAgICBSZWZQdHI8UHJvcGVydHlUeXBlPiYgZW5zdXJlQW5pbVZhbCgpCisgICAg
eworICAgICAgICBpZiAoIW1fYW5pbVZhbCkKKyAgICAgICAgICAgIG1fYW5pbVZhbCA9IFByb3Bl
cnR5VHlwZTo6Y3JlYXRlKHRoaXMsIFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkT25seSwgbV9iYXNl
VmFsLT52YWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIG1fYW5pbVZhbDsKKyAgICB9CisKKyAgICAv
LyBDYWxsZWQgd2hlbiBtX2Jhc2VWYWwgY2hhbmdlcy4KKyAgICB2b2lkIGNvbW1pdFByb3BlcnR5
Q2hhbmdlKFNWR1Byb3BlcnR5KiBwcm9wZXJ0eSkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGlm
IChtX2FuaW1WYWwpCisgICAgICAgICAgICBtX2FuaW1WYWwtPnNldFZhbHVlKG1fYmFzZVZhbC0+
dmFsdWUoKSk7CisgICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OmNvbW1pdFByb3BlcnR5Q2hh
bmdlKHByb3BlcnR5KTsKKyAgICB9CisKKyAgICBSZWY8UHJvcGVydHlUeXBlPiBtX2Jhc2VWYWw7
CisgICAgbXV0YWJsZSBSZWZQdHI8UHJvcGVydHlUeXBlPiBtX2FuaW1WYWw7Cit9OworCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRpb25BZGRp
dGl2ZVZhbHVlRnVuY3Rpb25JbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRpb25BZGRpdGl2ZVZhbHVlRnVuY3Rpb25JbXBsLmgKaW5kZXggMDk4YjljZTRkMGJk
NjRiMzkyNjc3OTA2NzY0MTRkYTdiMWE5ZDIxNS4uNWQ3NDcxMDI2NDQwMTEyMDg1NTk3N2JhMDEw
ZDU4MzA4Y2NiY2M1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0aW9uSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGlvbkFkZGl0aXZlVmFsdWVGdW5jdGlvbkltcGwu
aApAQCAtNjQsNSArNjQsNDAgQEAgcHJpdmF0ZToKICAgICAgICAgbV90byArPSBtX2Zyb207CiAg
ICAgfQogfTsKKyAgICAKK2NsYXNzIFNWR0FuaW1hdGlvblJlY3RGdW5jdGlvbiA6IHB1YmxpYyBT
VkdBbmltYXRpb25BZGRpdGl2ZVZhbHVlRnVuY3Rpb248RmxvYXRSZWN0PiB7CitwdWJsaWM6Cisg
ICAgdXNpbmcgQmFzZSA9IFNWR0FuaW1hdGlvbkFkZGl0aXZlVmFsdWVGdW5jdGlvbjxGbG9hdFJl
Y3Q+OworICAgIHVzaW5nIEJhc2U6OkJhc2U7CisKKyAgICB2b2lkIHNldEZyb21BbmRUb1ZhbHVl
cyhTVkdFbGVtZW50KiwgY29uc3QgU3RyaW5nJiBmcm9tLCBjb25zdCBTdHJpbmcmIHRvKSBvdmVy
cmlkZQorICAgIHsKKyAgICAgICAgbV9mcm9tID0gU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0
Pjo6ZnJvbVN0cmluZyhmcm9tKTsKKyAgICAgICAgbV90byA9IFNWR1Byb3BlcnR5VHJhaXRzPEZs
b2F0UmVjdD46OmZyb21TdHJpbmcodG8pOworICAgIH0KKworICAgIHZvaWQgc2V0VG9BdEVuZE9m
RHVyYXRpb25WYWx1ZShjb25zdCBTdHJpbmcmIHRvQXRFbmRPZkR1cmF0aW9uKSBvdmVycmlkZQor
ICAgIHsKKyAgICAgICAgbV90b0F0RW5kT2ZEdXJhdGlvbiA9IFNWR1Byb3BlcnR5VHJhaXRzPEZs
b2F0UmVjdD46OmZyb21TdHJpbmcodG9BdEVuZE9mRHVyYXRpb24pOworICAgIH0KKworICAgIHZv
aWQgcHJvZ3Jlc3MoU1ZHRWxlbWVudCosIGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVh
dENvdW50LCBGbG9hdFJlY3QmIGFuaW1hdGVkKQorICAgIHsKKyAgICAgICAgRmxvYXRSZWN0IGZy
b20gPSBtX2FuaW1hdGlvbk1vZGUgPT0gQW5pbWF0aW9uTW9kZTo6VG8gPyBhbmltYXRlZCA6IG1f
ZnJvbTsKKyAgICAgICAgCisgICAgICAgIGZsb2F0IHggPSBCYXNlOjpwcm9ncmVzcyhwZXJjZW50
YWdlLCByZXBlYXRDb3VudCwgZnJvbS54KCksIG1fdG8ueCgpLCB0b0F0RW5kT2ZEdXJhdGlvbigp
LngoKSwgYW5pbWF0ZWQueCgpKTsKKyAgICAgICAgZmxvYXQgeSA9IEJhc2U6OnByb2dyZXNzKHBl
cmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tLnkoKSwgbV90by55KCksIHRvQXRFbmRPZkR1cmF0
aW9uKCkueSgpLCBhbmltYXRlZC55KCkpOworICAgICAgICBmbG9hdCB3aWR0aCA9IEJhc2U6OnBy
b2dyZXNzKHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBmcm9tLndpZHRoKCksIG1fdG8ud2lkdGgo
KSwgdG9BdEVuZE9mRHVyYXRpb24oKS53aWR0aCgpLCBhbmltYXRlZC53aWR0aCgpKTsKKyAgICAg
ICAgZmxvYXQgaGVpZ2h0ID0gQmFzZTo6cHJvZ3Jlc3MocGVyY2VudGFnZSwgcmVwZWF0Q291bnQs
IGZyb20uaGVpZ2h0KCksIG1fdG8uaGVpZ2h0KCksIHRvQXRFbmRPZkR1cmF0aW9uKCkuaGVpZ2h0
KCksIGFuaW1hdGVkLmhlaWdodCgpKTsKKyAgICAgICAgCisgICAgICAgIGFuaW1hdGVkID0geyB4
LCB5LCB3aWR0aCwgaGVpZ2h0IH07CisgICAgfQorCitwcml2YXRlOgorICAgIHZvaWQgYWRkRnJv
bUFuZFRvVmFsdWVzKFNWR0VsZW1lbnQqKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgbV90byAr
PSBtX2Zyb207CisgICAgfQorfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbkltcGwuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGlvbkRpc2NyZXRlRnVuY3Rpb25JbXBsLmgK
aW5kZXggYTY2MjkwZmRhNWI5ZDFkMzVhYTdiMGI4NGUzZjI5NmUwOTA0ODY5My4uMjc1NWMzOTk1
M2I5N2U3ZTQ2YzhkMmU3YTg2NWMyMTAzZjlmMjQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbkltcGwuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRpb25EaXNjcmV0ZUZ1bmN0
aW9uSW1wbC5oCkBAIC00Miw0ICs0MiwyOCBAQCBwdWJsaWM6CiAgICAgfQogfTsKIAorY2xhc3Mg
U1ZHQW5pbWF0aW9uUHJlc2VydmVBc3BlY3RSYXRpb0Z1bmN0aW9uIDogcHVibGljIFNWR0FuaW1h
dGlvbkRpc2NyZXRlRnVuY3Rpb248U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPiB7CitwdWJs
aWM6CisgICAgdXNpbmcgQmFzZSA9IFNWR0FuaW1hdGlvbkRpc2NyZXRlRnVuY3Rpb248U1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlPjsKKyAgICB1c2luZyBCYXNlOjpCYXNlOworICAgIAorICAg
IHZvaWQgc2V0RnJvbUFuZFRvVmFsdWVzKFNWR0VsZW1lbnQqLCBjb25zdCBTdHJpbmcmIGZyb20s
IGNvbnN0IFN0cmluZyYgdG8pIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2Zyb20gPSBTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoZnJvbSk7CisgICAgICAgIG1fdG8gPSBTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvVmFsdWUodG8pOworICAgIH0KK307CisKK2NsYXNzIFNWR0FuaW1hdGlvblN0
cmluZ0Z1bmN0aW9uIDogcHVibGljIFNWR0FuaW1hdGlvbkRpc2NyZXRlRnVuY3Rpb248U3RyaW5n
PiB7CitwdWJsaWM6CisgICAgdXNpbmcgQmFzZSA9IFNWR0FuaW1hdGlvbkRpc2NyZXRlRnVuY3Rp
b248U3RyaW5nPjsKKyAgICB1c2luZyBCYXNlOjpCYXNlOworICAgIAorICAgIHZvaWQgc2V0RnJv
bUFuZFRvVmFsdWVzKFNWR0VsZW1lbnQqLCBjb25zdCBTdHJpbmcmIGZyb20sIGNvbnN0IFN0cmlu
ZyYgdG8pIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2Zyb20gPSBmcm9tOworICAgICAgICBt
X3RvID0gdG87CisgICAgfQorfTsKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQXR0cmlidXRlUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZVJlZ2lzdHJ5LmgKaW5kZXggM2I0NjkzODAyYTAzYWZkYmYw
ZTVhZTRmYTM5ZDdjMTE2ZTc0OTE3My4uN2Y1ODY3YTBmY2RjNTkzMDg1OTE0ZjBlZTQ5MDJlYWZi
YTViNTIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0
cmlidXRlUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
dHRyaWJ1dGVSZWdpc3RyeS5oCkBAIC0zMSw4ICszMSw2IEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0
ZWROdW1iZXIuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlckxpc3QuaCIKICNpbmNsdWRl
ICJTVkdBbmltYXRlZFBvaW50TGlzdC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVB
c3BlY3RSYXRpby5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUmVjdC5oIgogI2luY2x1ZGUgIlNW
R0FuaW1hdGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0Lmgi
CiAjaW5jbHVkZSAiU1ZHQXR0cmlidXRlQWNjZXNzb3IuaCIKQEAgLTEwMiwxOCArMTAwLDYgQEAg
cHVibGljOgogICAgICAgICByZWdpc3RlckF0dHJpYnV0ZShTVkdBbmltYXRlZFBvaW50TGlzdEF0
dHJpYnV0ZUFjY2Vzc29yPE93bmVyVHlwZT46OnRlbXBsYXRlIHNpbmdsZXRvbjxhdHRyaWJ1dGVO
YW1lLCBhdHRyaWJ1dGU+KCkpOwogICAgIH0KIAotICAgIHRlbXBsYXRlPGNvbnN0IExhenlOZXZl
ckRlc3Ryb3llZDxjb25zdCBRdWFsaWZpZWROYW1lPiYgYXR0cmlidXRlTmFtZSwgU1ZHQW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0cmlidXRlIE93bmVyVHlwZTo6KmF0dHJpYnV0ZT4KLSAg
ICB2b2lkIHJlZ2lzdGVyQXR0cmlidXRlKCkKLSAgICB7Ci0gICAgICAgIHJlZ2lzdGVyQXR0cmli
dXRlKFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0F0dHJpYnV0ZUFjY2Vzc29yPE93bmVy
VHlwZT46OnRlbXBsYXRlIHNpbmdsZXRvbjxhdHRyaWJ1dGVOYW1lLCBhdHRyaWJ1dGU+KCkpOwot
ICAgIH0KLQotICAgIHRlbXBsYXRlPGNvbnN0IExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBRdWFs
aWZpZWROYW1lPiYgYXR0cmlidXRlTmFtZSwgU1ZHQW5pbWF0ZWRSZWN0QXR0cmlidXRlIE93bmVy
VHlwZTo6KmF0dHJpYnV0ZT4KLSAgICB2b2lkIHJlZ2lzdGVyQXR0cmlidXRlKCkKLSAgICB7Ci0g
ICAgICAgIHJlZ2lzdGVyQXR0cmlidXRlKFNWR0FuaW1hdGVkUmVjdEF0dHJpYnV0ZUFjY2Vzc29y
PE93bmVyVHlwZT46OnRlbXBsYXRlIHNpbmdsZXRvbjxhdHRyaWJ1dGVOYW1lLCBhdHRyaWJ1dGU+
KCkpOwotICAgIH0KLQogICAgIHRlbXBsYXRlPGNvbnN0IExhenlOZXZlckRlc3Ryb3llZDxjb25z
dCBRdWFsaWZpZWROYW1lPiYgYXR0cmlidXRlTmFtZSwgU1ZHQW5pbWF0ZWRTdHJpbmdBdHRyaWJ1
dGUgT3duZXJUeXBlOjoqYXR0cmlidXRlPgogICAgIHZvaWQgcmVnaXN0ZXJBdHRyaWJ1dGUoKQog
ICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3Bl
cnR5T3duZXJSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJv
cGVydHlPd25lclJlZ2lzdHJ5LmgKaW5kZXggNTkzNTcwM2MyMDc2NGE0NTc1MGNmYjc4NTRmMWJk
NTJiYTYwNDNlNi4uNjhhNWU5ZDBkZjc1OGI5NmFlZjU0ZjcyYmMzM2VmYWM3Yjc2MzJkNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lclJl
Z2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlP
d25lclJlZ2lzdHJ5LmgKQEAgLTYwLDYgKzYwLDE4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAg
IHJlZ2lzdGVyUHJvcGVydHkoYXR0cmlidXRlTmFtZSwgU1ZHQW5pbWF0ZWRJbnRlZ2VyQWNjZXNz
b3I8T3duZXJUeXBlPjo6dGVtcGxhdGUgc2luZ2xldG9uPHByb3BlcnR5PigpKTsKICAgICB9Cisg
ICAgCisgICAgdGVtcGxhdGU8Y29uc3QgTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IFF1YWxpZmll
ZE5hbWU+JiBhdHRyaWJ1dGVOYW1lLCBSZWY8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
PiBPd25lclR5cGU6Oipwcm9wZXJ0eT4KKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlclByb3BlcnR5
KCkKKyAgICB7CisgICAgICAgIHJlZ2lzdGVyUHJvcGVydHkoYXR0cmlidXRlTmFtZSwgU1ZHQW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQWNjZXNzb3I8T3duZXJUeXBlPjo6dGVtcGxhdGUgc2lu
Z2xldG9uPHByb3BlcnR5PigpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjb25zdCBMYXp5TmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgUXVhbGlmaWVkTmFtZT4mIGF0dHJpYnV0ZU5hbWUsIFJlZjxTVkdB
bmltYXRlZFJlY3Q+IE93bmVyVHlwZTo6KnByb3BlcnR5PgorICAgIHN0YXRpYyB2b2lkIHJlZ2lz
dGVyUHJvcGVydHkoKQorICAgIHsKKyAgICAgICAgcmVnaXN0ZXJQcm9wZXJ0eShhdHRyaWJ1dGVO
YW1lLCBTVkdBbmltYXRlZFJlY3RBY2Nlc3NvcjxPd25lclR5cGU+Ojp0ZW1wbGF0ZSBzaW5nbGV0
b248cHJvcGVydHk+KCkpOworICAgIH0KIAogICAgIHRlbXBsYXRlPGNvbnN0IExhenlOZXZlckRl
c3Ryb3llZDxjb25zdCBRdWFsaWZpZWROYW1lPiYgYXR0cmlidXRlTmFtZSwgUmVmPFNWR0FuaW1h
dGVkSW50ZWdlcj4gT3duZXJUeXBlOjoqcHJvcGVydHkxLCBSZWY8U1ZHQW5pbWF0ZWRJbnRlZ2Vy
PiBPd25lclR5cGU6Oipwcm9wZXJ0eTI+CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJQcm9wZXJ0
eSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVBy
b3BlcnR5LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjFjNTk5YWQwNDkzMWI5ZTllOTlmZDVmNDcxZmRmMjFjYzAwYjMxZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVl
UHJvcGVydHkuaApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU1ZHUHJvcGVydHku
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAordGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVy
dHlUeXBlPgorY2xhc3MgU1ZHVmFsdWVQcm9wZXJ0eSA6IHB1YmxpYyBTVkdQcm9wZXJ0eSB7Citw
dWJsaWM6CisgICAgdXNpbmcgVmFsdWVUeXBlID0gUHJvcGVydHlUeXBlOworCisgICAgc3RhdGlj
IFJlZjxTVkdWYWx1ZVByb3BlcnR5PiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHVmFsdWVQcm9wZXJ0eSgpKTsKKyAgICB9CisKKyAgICAvLyBHZXR0ZXIv
U2V0dGVyIGZvciB0aGUgdmFsdWUuCisgICAgY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KKyAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFByb3BlcnR5
VHlwZSYgdmFsdWUpIHsgbV92YWx1ZSA9IHZhbHVlOyB9CisKKyAgICAvLyBVc2VkIHRoZSBTVkdB
bmltYXRlZFByb3BlcnR5QW5pbWF0b3IgdG8gcGFzcyBtX3ZhbHVlIHRvIFNWR0FuaW1hdGlvbkZ1
bmN0aW9uLgorICAgIFByb3BlcnR5VHlwZSYgdmFsdWUoKSB7IHJldHVybiBtX3ZhbHVlOyB9CisK
K3Byb3RlY3RlZDoKKyAgICAvLyBDcmVhdGUgYW4gaW5pdGlhbGl6ZWQgcHJvcGVydHksIGUuZyBj
cmVhdGluZyBhbiBpdGVtIHRvIGJlIGFwcGVuZGVkIGluIGFuIFNWR0xpc3QuCisgICAgU1ZHVmFs
dWVQcm9wZXJ0eShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAgICAgICA6IG1fdmFsdWUo
dmFsdWUpCisgICAgeworICAgIH0KKworICAgIC8vIE5lZWRlZCB3aGVuIHZhbHVlIHNob3VsZCBu
b3QgYmUgY29waWVkLCBlLmcuIFNWR1RyYW5zZnJvbVZhbHVlLgorICAgIFNWR1ZhbHVlUHJvcGVy
dHkoUHJvcGVydHlUeXBlJiYgdmFsdWUpCisgICAgICAgIDogbV92YWx1ZShXVEZNb3ZlKHZhbHVl
KSkKKyAgICB7CisgICAgfQorCisgICAgLy8gQmFzZSBhbmQgZGVmYXVsdCBjb25zdHJ1Y3Rvci4g
RG8gbm90IHVzZSAidXNpbmcgU1ZHUHJvcGVydHk6OlNWR1Byb3BlcnR5IiBiZWNhdXNlIG9mIFdp
bmRvd3MgYW5kIEdUSyBwb3J0cy4KKyAgICBTVkdWYWx1ZVByb3BlcnR5KFNWR1Byb3BlcnR5T3du
ZXIqIG93bmVyID0gbnVsbHB0ciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzID0gU1ZHUHJvcGVy
dHlBY2Nlc3M6OlJlYWRXcml0ZSkKKyAgICAgICAgOiBTVkdQcm9wZXJ0eShvd25lciwgYWNjZXNz
KQorICAgIHsKKyAgICB9CisKKyAgICAvLyBDcmVhdGUgYW4gaW5pdGlhbGl6ZWQgYW5kIGF0dGFj
aGVkIHByb3BlcnR5LgorICAgIFNWR1ZhbHVlUHJvcGVydHkoU1ZHUHJvcGVydHlPd25lciogb3du
ZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcywgY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSkK
KyAgICAgICAgOiBTVkdQcm9wZXJ0eShvd25lciwgYWNjZXNzKQorICAgICAgICAsIG1fdmFsdWUo
dmFsdWUpCisgICAgeworICAgIH0KKworICAgIFByb3BlcnR5VHlwZSBtX3ZhbHVlOworfTsKKwor
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365208</attachid>
            <date>2019-03-19 12:38:40 -0700</date>
            <delta_ts>2019-03-19 18:22:44 -0700</delta_ts>
            <desc>Patch for review</desc>
            <filename>SVGAnimatedPreserveAspectRatio.patch</filename>
            <type>text/plain</type>
            <size>71891</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyMzY0MjRkNzdjNS4uNzhhODI2NDIxYjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNDUgQEAKKzIwMTktMDMtMTkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdh
QGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIFNWRyBwcm9wZXJ0eSB0ZWFyIG9mZiBv
YmplY3RzIG9mIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1OTYwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLS0gRGVmaW5lIFNWR0FuaW1hdGVkUHJl
c2VydmVBc3BlY3RSYXRpbyB0byBiZSBTVkdBbmltYXRlZFZhbHVlUHJvcGVydHk8CisgICAgICAg
ICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+LgorCisgICAgICAgIC0tIE1ha2UgU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpbyBiZSBkZXJpdmVkIGZvcm0gU1ZHVmFsdWVQcm9wZXJ0eTxTCisgICAgICAg
ICAgIFZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPi4KKworICAgICAgICAtLSBBZGQgU1ZHQW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQWNjZXNzb3IgdG8gYWNjZXNzIHRoZSBhbmltYXRlZCAK
KyAgICAgICAgICAgcHJvcGVydHkuCisKKyAgICAgICAgLS0gQWRkIFNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpb0FuaW1hdG9yIHRvIGFuaW1hdGUgdGhlIGFuaW1hdGVkCisgICAgICAgICAg
IHByb3BlcnR5IG9mIHRoZSB0YXJnZXQgZWxlbWVudCBhbmQgYWxsIGl0cyBpbnN0YW5jZXMuCisK
KyAgICAgICAgLS0gQWRkIFNWR0FuaW1hdGlvblByZXNlcnZlQXNwZWN0UmF0aW9GdW5jdGlvbiB0
byBwcm9ncmVzcyBhbmltVmFsIG9mCisgICAgICAgICAgIGFuaW1hdGVkIHByb3BlcnR5IGluIGEg
cGVyaW9kIG9mIHRpbWUuCisKKyAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzOjpidWlsZCgpIHNob3VsZCBiZSBjb25zdCBmdW5jdGlvbi4KKyAgICAgICAgVGhpcyBp
cyByZXF1aXJlZCBmb3IgdGhpcyBwYXRjaCBiZWNhdXNlIFNWR0ZFSW1hZ2VFbGVtZW50OjpidWls
ZCgpIGNhbGxzCisgICAgICAgIFNWR0ZFSW1hZ2VFbGVtZW50OjpwcmVzZXJ2ZUFzcGVjdFJhdGlv
KCkgd2hpY2ggaXMgY29uc3QuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogc3ZnL1NWR0FuaW1h
dGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHA6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL1NWR0Fu
aW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oOiBSZW1vdmVkLgorICAgICAgICAqIHN2Zy9TVkdB
bmltYXRvckZhY3RvcnkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdG9yRmFjdG9yeTo6
Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHRkVCbGVuZEVsZW1lbnQ6OmJ1aWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0ZFQmxlbmRFbGVtZW50OjpidWlsZCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NW
R0ZFQmxlbmRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpidWlsZCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6YnVpbGQp
OiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5oOgorICAg
ICAgICAqIHN2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudDo6YnVpbGQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ6OmJ1aWxkKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaDoKKyAg
ICAgICAgKiBzdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6YnVpbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHRkVDb21wb3NpdGVFbGVtZW50OjpidWlsZCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NW
R0ZFQ29tcG9zaXRlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbnZvbHZlTWF0cml4
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVu
dDo6YnVpbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVs
ZW1lbnQ6OmJ1aWxkKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVDb252b2x2ZU1hdHJp
eEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6YnVpbGQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50Ojpi
dWlsZCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50OjpidWlsZCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OmJ1aWxkKTog
RGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50Lmg6Cisg
ICAgICAgICogc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6YnVpbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6YnVpbGQpOiBEZWxldGVkLgorICAgICAgICAqIHN2
Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRmxvb2RFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRmxvb2RFbGVtZW50OjpidWlsZCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUZsb29kRWxlbWVudDo6YnVpbGQpOiBEZWxldGVk
LgorICAgICAgICAqIHN2Zy9TVkdGRUZsb29kRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdG
RUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVHYXVzc2lh
bkJsdXJFbGVtZW50OjpidWlsZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUdhdXNz
aWFuQmx1ckVsZW1lbnQ6OmJ1aWxkKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVHYXVz
c2lhbkJsdXJFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpTVkdGRUltYWdlRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUltYWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRkVJbWFnZUVsZW1lbnQ6OmJ1aWxkIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpyZWdpc3RlckF0dHJpYnV0ZXMpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVJbWFnZUVsZW1lbnQ6OmJ1aWxkKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZH
RkVNZXJnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVNZXJnZUVsZW1lbnQ6
OmJ1aWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTWVyZ2VFbGVtZW50OjpidWls
ZCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
RkVNb3JwaG9sb2d5RWxlbWVudDo6YnVpbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
RkVNb3JwaG9sb2d5RWxlbWVudDo6YnVpbGQpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdG
RU1vcnBob2xvZ3lFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU9mZnNldEVsZW1lbnQ6OmJ1aWxkIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFT2Zmc2V0RWxlbWVudDo6YnVpbGQpOiBEZWxldGVkLgor
ICAgICAgICAqIHN2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVT
cGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVNwZWN1
bGFyTGlnaHRpbmdFbGVtZW50OjpidWlsZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
RVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpidWlsZCk6IERlbGV0ZWQuCisgICAgICAgICogc3Zn
L1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVUaWxl
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVRpbGVFbGVtZW50OjpidWlsZCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVRpbGVFbGVtZW50OjpidWlsZCk6IERlbGV0
ZWQuCisgICAgICAgICogc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZH
RkVUdXJidWxlbmNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVR1cmJ1bGVu
Y2VFbGVtZW50OjpidWlsZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVR1cmJ1bGVu
Y2VFbGVtZW50OjpidWlsZCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR0ZFVHVyYnVsZW5j
ZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzLmg6CisgICAgICAgICogc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdGaXRUb1ZpZXdCb3g6OlNWR0ZpdFRvVmlld0JveCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlVmlld0JveCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdGaXRUb1ZpZXdCb3g6OnJlZ2lzdGVyQXR0cmlidXRlcyk6IERlbGV0ZWQuCisgICAgICAgICog
c3ZnL1NWR0ZpdFRvVmlld0JveC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRml0VG9WaWV3Qm94
OjpwcmVzZXJ2ZUFzcGVjdFJhdGlvIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpdFRv
Vmlld0JveDo6cHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZpdFRvVmlld0JveDo6c2V0UHJlc2VydmVBc3BlY3RSYXRpbyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdGaXRUb1ZpZXdCb3g6OnJlc2V0UHJlc2VydmVBc3BlY3RSYXRpbyk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGaXRUb1ZpZXdCb3g6OnByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcgY29u
c3QpOgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHSW1hZ2VFbGVtZW50OjpTVkdJbWFnZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHSW1hZ2VFbGVtZW50OjpyZWdpc3RlckF0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHSW1hZ2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ltYWdl
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR1BhdHRlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0
UmF0aW8uaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjphbGlnbiBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpzZXRBbGlnbik6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjptZWV0T3JTbGljZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpzZXRNZWV0
T3JTbGljZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjphbGln
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpt
ZWV0T3JTbGljZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcv
U1ZHU1ZHRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTdHJpbmdMaXN0Lmg6CisgICAgICAg
ICogc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuaDoK
KyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5QWNjZXNzb3JJbXBs
Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9y
SW1wbC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlJbXBs
Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlv
bkltcGwuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVSZWdpc3RyeS5o
OgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXJSZWdpc3RyeS5oOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5OjpyZWdpc3RlclByb3Bl
cnR5KToKKwogMjAxOS0wMy0xOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB0aGUgU1ZHIHByb3BlcnR5IHRlYXIgb2ZmIG9iamVj
dHMgb2YgU1ZHQW5pbWF0ZWRSZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGQyYjkxMGQzZjc0Li4zNmFh
NTExNThkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTIyNzksNyArMjI3OSw2IEBAIHN2Zy9TVkdBbmlt
YXRlZE51bWJlckxpc3QuY3BwCiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5j
cHAKIHN2Zy9TVkdBbmltYXRlZFBhdGguY3BwCiBzdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3Bw
Ci1zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAogc3ZnL1NWR0FuaW1hdGVk
U3RyaW5nLmNwcAogc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAKIHN2Zy9TVkdBbmlt
YXRlZFR5cGVBbmltYXRvci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4YzIzZDNiM2YzOC4uZGFmYzViYjllMjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTI5Myw3ICsyOTMsNiBAQAogCQkwOEYyRjAwQTEyMTNFNjE3MDBEQ0VDNDggLyogUmVuZGVySW1h
Z2VSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDhGMkYwMDgxMjEzRTYxNzAwRENFQzQ4IC8qIFJlbmRlckltYWdlUmVzb3VyY2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwOEY4NTlENTE0
NjNGOUNEMDA2N0Q5MzMgLyogU1ZHSW1hZ2VDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDhGODU5RDMxNDYzRjlDRDAwNjdEOTMzIC8qIFNWR0lt
YWdlQ2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwOEY4NTlENTE0NjNGOUNEMDA2N0Q5MzQgLyogU1ZHSW1hZ2VGb3JDb250YWluZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4Rjg1OUQzMTQ2
M0Y5Q0QwMDY3RDkzNCAvKiBTVkdJbWFnZUZvckNvbnRhaW5lci5oICovOyB9OwotCQkwOEZFMEJD
NTEyN0UyQUMxMDAwQzRGQjUgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwOEZFMEJDNDEyN0Uy
QUMxMDAwQzRGQjUgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggKi87IH07CiAJ
CTBBRkRBQzNEMTBGNTQ0OEMwMEUxRjNEMiAvKiBQbHVnaW5WaWV3QmFzZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEFGREFDM0MxMEY1NDQ4QzAwRTFG
M0QyIC8qIFBsdWdpblZpZXdCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMEI5MDU2MUEwRjI1NzhCRjAwOTVGRjZBIC8qIERvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEI5MDU2MTYwRjI1NzhCRTAwOTVGRjZBIC8qIERvY3VtZW50VGhyZWFkYWJsZUxvYWRl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CiAJCTBCOTA1NjFCMEYy
NTc4QkYwMDk1RkY2QSAvKiBUaHJlYWRhYmxlTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQjkwNTYxNzBGMjU3OEJFMDA5NUZGNkEgLyogVGhy
ZWFkYWJsZUxvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC01Njc4LDcgKzU2NzcsNiBAQAogCQkwOEY4NTlEMjE0NjNGOUNEMDA2N0Q5MzQg
LyogU1ZHSW1hZ2VGb3JDb250YWluZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU1ZHSW1hZ2VGb3JDb250YWluZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwOEY4NTlEMzE0NjNGOUNEMDA2N0Q5MzMgLyogU1ZHSW1hZ2VDYWNoZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdJbWFnZUNhY2hlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA4Rjg1OUQzMTQ2M0Y5Q0QwMDY3RDkzNCAvKiBTVkdJbWFnZUZv
ckNvbnRhaW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdJbWFnZUZv
ckNvbnRhaW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwOEZFMEJDNDEyN0Uy
QUMxMDAwQzRGQjUgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwQUZEQUMzQzEwRjU0NDhDMDBFMUYzRDIg
LyogUGx1Z2luVmlld0Jhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGx1
Z2luVmlld0Jhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEI4QzU2RDMwRjI4
NjI3RjAwMDUwMkUxIC8qIEhUVFBIZWFkZXJNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSFRUUEhlYWRlck1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBCOTA1NjE1MEYyNTc4QkUwMDk1RkY2QSAvKiBEb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1lbnRUaHJl
YWRhYmxlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc1NzgsNyAr
NzU3Niw2IEBACiAJCTQzMUEyRjlBMTNCNkYyQjAwMDc3OTFFNCAvKiBTVkdBbmltYXRlZE51bWJl
ck9wdGlvbmFsTnVtYmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0Fu
aW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDMxQTJGOUIxM0I2RjJCMDAwNzc5MUU0IC8qIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxO
dW1iZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0
ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQzMUEyRkQ2MTNCNzcwN0EwMDc3OTFFNCAvKiBTVkdBbmltYXRlZExlbmd0aExpc3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDMxQTMwMjAxM0I4OURDQzAwNzc5
MUU0IC8qIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzJEM0ZFNzE4QTg2NTg0MDBEN0RDMDMg
LyogU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQzMzFBQzc3MTNCNjg3MDAwMEE5RTVBRSAvKiBTVkdBbmltYXRlZE51
bWJlckxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5p
bWF0ZWROdW1iZXJMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDM1OEU4
N0ExMzYwQTJFRTAwRTQ3NDhDIC8qIEpTU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQxNDcsOCArMjQxNDQsNiBAQAog
CQkJCTA4NjM5NTE0MTNCNUZFNTcwMEJCMzQ0RCAvKiBTVkdBbmltYXRlZFBhdGguaCAqLywKIAkJ
CQk0M0I5MzM2ODEzQjI2MUIxMDA0NTg0QkYgLyogU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwICov
LAogCQkJCTQzQjkzMzY3MTNCMjYxQjEwMDQ1ODRCRiAvKiBTVkdBbmltYXRlZFBvaW50TGlzdC5o
ICovLAotCQkJCTQzMUEzMDIwMTNCODlEQ0MwMDc3OTFFNCAvKiBTVkdBbmltYXRlZFByZXNlcnZl
QXNwZWN0UmF0aW8uY3BwICovLAotCQkJCTA4RkUwQkM0MTI3RTJBQzEwMDBDNEZCNSAvKiBTVkdB
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCAqLywKIAkJCQlCMjIyNzdGNDBEMDBCRjFGMDA3
MUI3ODIgLyogU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbCAqLywKIAkJCQlCMjIy
NzdGNTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRSZWN0LmlkbCAqLywKIAkJCQk0M0E2
MjY2NjEzQjNEMTEwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwICovLApAQCAtMzE5
MjgsNyArMzE5MjMsNiBAQAogCQkJCTA4NjM5NTE2MTNCNUZFNTcwMEJCMzQ0RCAvKiBTVkdBbmlt
YXRlZFBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCTA4OUE4RTA3MTI4RDhCM0QwMEU3QTUzNCAv
KiBTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0M0I5MzM2OTEzQjI2MUIxMDA0NTg0QkYgLyogU1ZHQW5pbWF0ZWRQb2ludExpc3QuaCBp
biBIZWFkZXJzICovLAotCQkJCTA4RkUwQkM1MTI3RTJBQzEwMDBDNEZCNSAvKiBTVkdBbmltYXRl
ZFByZXNlcnZlQXNwZWN0UmF0aW8uaCBpbiBIZWFkZXJzICovLAogCQkJCTA4OEEwRTA2MTI2RUYx
REIwMDk3OEY3QSAvKiBTVkdBbmltYXRlZFByb3BlcnR5RGVzY3JpcHRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA4OEEwRTA4MTI2RUYxREIwMDk3OEY3QSAvKiBTVkdBbmltYXRlZFByb3BlcnR5
VGVhck9mZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVGQTdGRkYyMTExMEU2RTAwNUFFRkU3IC8q
IFNWR0FuaW1hdGVkUHJvcGVydHlUeXBlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAyYjk2MDVkMmRlLi4wMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNo
IEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCIKLQot
I2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50QmFzZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpTVkdBbmltYXRlZFBy
ZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcihTVkdBbmltYXRpb25FbGVtZW50KiBhbmltYXRpb25F
bGVtZW50LCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCkKLSAgICA6IFNWR0FuaW1hdGVkVHlw
ZUFuaW1hdG9yKEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbywgYW5pbWF0aW9uRWxlbWVudCwg
Y29udGV4dEVsZW1lbnQpCi17Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpjb25zdHJ1Y3RGcm9tU3Ry
aW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQotewotICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6
OmNyZWF0ZShTVkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+Ojpm
cm9tU3RyaW5nKHN0cmluZykpOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBl
PiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6c3RhcnRBbmltVmFsQW5p
bWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cykKLXsKLSAgICByZXR1cm4gY29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW8+KGFuaW1hdGVkVHlwZXMpOwotfQotCi12b2lkIFNWR0FuaW1hdGVkUHJl
c2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjpzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCi17Ci0gICAgc3RvcEFu
aW1WYWxBbmltYXRpb25Gb3JUeXBlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4oYW5p
bWF0ZWRUeXBlcyk7Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5p
bWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0FuaW1hdGVkVHlwZSYgdHlwZSkKLXsKLSAgICBy
ZXNldEZyb21CYXNlVmFsdWU8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvPihhbmltYXRl
ZFR5cGVzLCB0eXBlKTsKLX0KLQotdm9pZCBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9B
bmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0JiBhbmltYXRlZFR5cGVzKQotewotICAgIGFuaW1WYWxXaWxsQ2hhbmdlRm9yVHlwZTxT
VkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+KGFuaW1hdGVkVHlwZXMpOwotfQotCi12b2lk
IFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjphbmltVmFsRGlkQ2hhbmdl
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKLXsK
LSAgICBhbmltVmFsRGlkQ2hhbmdlRm9yVHlwZTxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0
aW8+KGFuaW1hdGVkVHlwZXMpOwotfQotCi12b2lkIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpb0FuaW1hdG9yOjphZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1h
dGVkVHlwZSopCi17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KLXZvaWQgU1ZHQW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUo
ZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQsIFNWR0FuaW1hdGVkVHlwZSogZnJvbSwgU1ZHQW5p
bWF0ZWRUeXBlKiB0bywgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiBhbmltYXRl
ZCkKLXsKLSAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKLSAgICBBU1NFUlQobV9jb250
ZXh0RWxlbWVudCk7Ci0KLSAgICBjb25zdCBhdXRvJiBmcm9tUHJlc2VydmVBc3BlY3RSYXRpbyA9
IChtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBBbmltYXRpb25Nb2RlOjpU
byA/IGFuaW1hdGVkIDogZnJvbSktPmFzPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4oKTsK
LSAgICBjb25zdCBhdXRvJiB0b1ByZXNlcnZlQXNwZWN0UmF0aW8gPSB0by0+YXM8U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlPigpOwotICAgIGF1dG8mIGFuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpbyA9IGFuaW1hdGVkLT5hczxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KCk7Ci0KLSAg
ICBtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGVEaXNjcmV0ZVR5cGU8U1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb1ZhbHVlPihwZXJjZW50YWdlLCBmcm9tUHJlc2VydmVBc3BlY3RSYXRpbywgdG9QcmVz
ZXJ2ZUFzcGVjdFJhdGlvLCBhbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8pOwotfQotCi1mbG9h
dCBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6Y2FsY3VsYXRlRGlzdGFu
Y2UoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKLXsKLSAgICAvLyBObyBwYWNlZCBhbmlt
YXRpb25zIGZvciBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLgotICAgIHJldHVybiAtMTsKLX0KLQot
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpby5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpby5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNjk5ZDlkMDc0Ny4uMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpby5oCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwot
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaCIKLSNp
bmNsdWRlICJTVkdBbmltYXRlZFR5cGVBbmltYXRvci5oIgotI2luY2x1ZGUgIlNWR0F0dHJpYnV0
ZUFjY2Vzc29yLmgiCi0jaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFNWR0FuaW1hdGlvbkVsZW1lbnQ7Ci0KLXVzaW5nIFNW
R0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyA9IFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2Zm
PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+OwotdXNpbmcgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvQXR0cmlidXRlID0gU1ZHQW5pbWF0ZWRBdHRyaWJ1dGU8U1ZHQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvPjsKLQotdGVtcGxhdGU8dHlwZW5hbWUgT3duZXJUeXBlPgotdXNpbmcgU1ZH
QW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0cmlidXRlQWNjZXNzb3IgPSBTVkdBbmltYXRl
ZEF0dHJpYnV0ZUFjY2Vzc29yPE93bmVyVHlwZSwgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJh
dGlvQXR0cmlidXRlLCBBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+OwotCi1jbGFzcyBTVkdB
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvciBmaW5hbCA6IHB1YmxpYyBTVkdBbmlt
YXRlZFR5cGVBbmltYXRvciB7Ci1wdWJsaWM6Ci0gICAgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvQW5pbWF0b3IoU1ZHQW5pbWF0aW9uRWxlbWVudCosIFNWR0VsZW1lbnQqKTsKLQotICAg
IHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNvbnN0cnVjdEZyb21TdHJpbmcoY29u
c3QgU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gc3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYpIG92ZXJyaWRlOwotICAgIHZvaWQgc3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXNldEFu
aW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiwgU1ZH
QW5pbWF0ZWRUeXBlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBhbmltVmFsV2lsbENoYW5nZShjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKLSAgICB2b2lkIGFu
aW1WYWxEaWRDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0Jikgb3Zl
cnJpZGU7Ci0KLSAgICB2b2lkIGFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZH
QW5pbWF0ZWRUeXBlKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVl
KGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUq
LCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqKSBv
dmVycmlkZTsKLSAgICBmbG9hdCBjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmIGZyb21T
dHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpIG92ZXJyaWRlOwotfTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdG9y
RmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdG9yRmFjdG9yeS5oCmluZGV4
IDg0Y2MzYjk1MWU3Li41MTFhMjJjOTQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdG9yRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRv
ckZhY3RvcnkuaApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVy
T3B0aW9uYWxOdW1iZXIuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFBhdGguaCIKICNpbmNsdWRl
ICJTVkdBbmltYXRlZFBvaW50TGlzdC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVB
c3BlY3RSYXRpby5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmgiCiAKQEAgLTcyLDcgKzcxLDcgQEAgcHVibGljOgog
ICAgICAgICBjYXNlIEFuaW1hdGVkUG9pbnRzOgogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8U1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcj4oYW5pbWF0aW9uRWxlbWVudCwg
Y29udGV4dEVsZW1lbnQpOwogICAgICAgICBjYXNlIEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
bzoKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpb0FuaW1hdG9yPihhbmltYXRpb25FbGVtZW50LCBjb250ZXh0RWxlbWVudCk7
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgY2FzZSBBbmltYXRlZFJlY3Q6
CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgY2FzZSBBbmltYXRlZFN0cmlu
ZzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwCmluZGV4IDE2N2E1NDdh
YzZkLi44YTljODAxMDU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxl
bmRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQu
Y3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBTVkdGRUJsZW5kRWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBTVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUp
OwogfQogCi1SZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUJsZW5kRWxlbWVudDo6YnVpbGQoU1ZH
RmlsdGVyQnVpbGRlciogZmlsdGVyQnVpbGRlciwgRmlsdGVyJiBmaWx0ZXIpCitSZWZQdHI8Rmls
dGVyRWZmZWN0PiBTVkdGRUJsZW5kRWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciogZmls
dGVyQnVpbGRlciwgRmlsdGVyJiBmaWx0ZXIpIGNvbnN0CiB7CiAgICAgYXV0byBpbnB1dDEgPSBm
aWx0ZXJCdWlsZGVyLT5nZXRFZmZlY3RCeUlkKGluMSgpKTsKICAgICBhdXRvIGlucHV0MiA9IGZp
bHRlckJ1aWxkZXItPmdldEVmZmVjdEJ5SWQoaW4yKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVC
bGVuZEVsZW1lbnQuaAppbmRleCBhMTZiMWQyYmY0MS4uOWZiOTA2NDNiZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5oCkBAIC03Myw3ICs3Myw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWlj
U3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAotICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxk
KFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBvdmVycmlkZTsKKyAgICBSZWZQdHI8RmlsdGVy
RWZmZWN0PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgYm9vbCBzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0KiwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpIG92ZXJyaWRlOwogCiAgICAgQXR0cmlidXRlT3duZXJQ
cm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAKaW5kZXggMzZlNjY5OGIyYzQuLjllNjE4
YzE2ODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVu
dC5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIFNW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6c3ZnQXR0cmlidXRlQ2hhbmdlZChh
dHRyTmFtZSk7CiB9CiAKLVJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFQ29sb3JNYXRyaXhFbGVt
ZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiBmaWx0ZXJCdWlsZGVyLCBGaWx0ZXImIGZpbHRl
cikKK1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpidWlsZChT
VkdGaWx0ZXJCdWlsZGVyKiBmaWx0ZXJCdWlsZGVyLCBGaWx0ZXImIGZpbHRlcikgY29uc3QKIHsK
ICAgICBhdXRvIGlucHV0MSA9IGZpbHRlckJ1aWxkZXItPmdldEVmZmVjdEJ5SWQoaW4xKCkpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5oCmluZGV4IDRl
MWYzM2EyNzNhLi5hMzIwNzY3MGJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFQ29sb3JNYXRyaXhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29s
b3JNYXRyaXhFbGVtZW50LmgKQEAgLTk4LDcgKzk4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN2
Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAg
Ym9vbCBzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0KiwgY29uc3QgUXVhbGlm
aWVkTmFtZSYpIG92ZXJyaWRlOwotICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0Zp
bHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBvdmVycmlkZTsKKyAgICBSZWZQdHI8RmlsdGVyRWZmZWN0
PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAg
ICBBdHRyaWJ1dGVPd25lclByb3h5IG1fYXR0cmlidXRlT3duZXJQcm94eSB7ICp0aGlzIH07CiAg
ICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAK
aW5kZXggMDIzNzk5NTJiZGMuLmU5NzQwMDY3MWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAKQEAgLTY2LDcgKzY2LDcg
QEAgdm9pZCBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY28KICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFy
ZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAotUmVmUHRyPEZp
bHRlckVmZmVjdD4gU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRl
ckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKQorUmVmUHRyPEZpbHRlckVm
ZmVjdD4gU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxk
ZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKSBjb25zdAogewogICAgIGF1dG8gaW5w
dXQxID0gZmlsdGVyQnVpbGRlci0+Z2V0RWZmZWN0QnlJZChpbjEoKSk7CiAgICAgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oCmluZGV4
IDI1N2E5NTZkODg0Li41ZmZiMWUxNmVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0
ZToKICAgICAvLyBGSVhNRTogc3ZnQXR0cmlidXRlQ2hhbmdlZCBtaXNzaW5nLgogICAgIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYp
IG92ZXJyaWRlOwogCi0gICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVp
bGRlciosIEZpbHRlciYpIG92ZXJyaWRlOworICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxk
KFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIAogICAgIEF0dHJp
YnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsKICAgICBQcm9w
ZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwCmluZGV4IGE3YTc2ODI5NmQzLi41ODI1
NTNjOGMzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5j
cHAKQEAgLTEzNSw3ICsxMzUsNyBAQCB2b2lkIFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBTVkdGaWx0
ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0ck5h
bWUpOwogfQogCi1SZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmJ1
aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKQorUmVm
UHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVDb21wb3NpdGVFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJC
dWlsZGVyKiBmaWx0ZXJCdWlsZGVyLCBGaWx0ZXImIGZpbHRlcikgY29uc3QKIHsKICAgICBhdXRv
IGlucHV0MSA9IGZpbHRlckJ1aWxkZXItPmdldEVmZmVjdEJ5SWQoaW4xKCkpOwogICAgIGF1dG8g
aW5wdXQyID0gZmlsdGVyQnVpbGRlci0+Z2V0RWZmZWN0QnlJZChpbjIoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmgKaW5kZXggMGYxMTczYjE1OTQuLjU1YmE4
ZmFjMzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5oCkBA
IC04NSw4ICs4NSw4IEBAIGNsYXNzIFNWR0ZFQ29tcG9zaXRlRWxlbWVudCBmaW5hbCA6IHB1Ymxp
YyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPFNWR0ZFQ29tcG9zaXRlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwogCi0gICAgU3RyaW5nIGluMSgpIHsgcmV0dXJuIG1faW4xLmN1cnJlbnRW
YWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9Ci0gICAgU3RyaW5nIGluMigpIHsgcmV0dXJu
IG1faW4yLmN1cnJlbnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CisgICAgU3RyaW5n
IGluMSgpIGNvbnN0IHsgcmV0dXJuIG1faW4xLmN1cnJlbnRWYWx1ZShhdHRyaWJ1dGVPd25lclBy
b3h5KCkpOyB9CisgICAgU3RyaW5nIGluMigpIGNvbnN0IHsgcmV0dXJuIG1faW4yLmN1cnJlbnRW
YWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CiAgICAgQ29tcG9zaXRlT3BlcmF0aW9uVHlw
ZSBzdmdPcGVyYXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fc3ZnT3BlcmF0b3IuY3VycmVudFZhbHVl
KGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KICAgICBmbG9hdCBrMSgpIGNvbnN0IHsgcmV0dXJu
IG1fazEuY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KICAgICBmbG9hdCBr
MigpIGNvbnN0IHsgcmV0dXJuIG1fazIuY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93bmVyUHJveHko
KSk7IH0KQEAgLTEyMSw3ICsxMjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3ZnQXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBib29sIHNldEZp
bHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqLCBjb25zdCBRdWFsaWZpZWROYW1lJikg
b3ZlcnJpZGU7Ci0gICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRl
ciosIEZpbHRlciYpIG92ZXJyaWRlOworICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNW
R0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIAogICAgIEF0dHJpYnV0
ZU93bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsKICAgICBQcm9wZXJ0
eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAppbmRleCBkYTcyNmQ2Y2Q5
MC4uODg3NWQzYzliNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZv
bHZlTWF0cml4RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50LmNwcApAQCAtMjE2LDcgKzIxNiw3IEBAIHZvaWQgU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hCiAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpzdmdBdHRy
aWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKIH0KIAotUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVD
b252b2x2ZU1hdHJpeEVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZpbHRlckJ1aWxk
ZXIsIEZpbHRlciYgZmlsdGVyKQorUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVDb252b2x2ZU1h
dHJpeEVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRl
ciYgZmlsdGVyKSBjb25zdAogewogICAgIGF1dG8gaW5wdXQxID0gZmlsdGVyQnVpbGRlci0+Z2V0
RWZmZWN0QnlJZChpbjEoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50LmgKaW5kZXggYTQ0NmY5NGU5ODcuLmM3M2ZjOWNkNjRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaApAQCAtMTEz
LDcgKzExMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0
cmlidXRlKEZpbHRlckVmZmVjdCosIGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKLSAg
ICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyJikg
b3ZlcnJpZGU7CisgICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRl
ciosIEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0
cmluZyYga2VybmVsVW5pdExlbmd0aFhJZGVudGlmaWVyKCk7CiAgICAgc3RhdGljIGNvbnN0IEF0
b21pY1N0cmluZyYga2VybmVsVW5pdExlbmd0aFlJZGVudGlmaWVyKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCmluZGV4IGQ5ZGIw
YWNlYjdmLi5hMTllZDEyZmUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
RGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
RGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKQEAgLTE3MCw3ICsxNzAsNyBAQCB2b2lkIFNWR0ZF
RGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6bGlnaHRFbGVtZW50QXR0cmlidXRlQ2hhbmdlZChjb25z
dCBTVkdGRUxpZ2h0RQogICAgIHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwog
fQogCi1SZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OmJ1
aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKQorUmVm
UHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpidWlsZChTVkdG
aWx0ZXJCdWlsZGVyKiBmaWx0ZXJCdWlsZGVyLCBGaWx0ZXImIGZpbHRlcikgY29uc3QKIHsKICAg
ICBhdXRvIGlucHV0MSA9IGZpbHRlckJ1aWxkZXItPmdldEVmZmVjdEJ5SWQoaW4xKCkpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmgKaW5k
ZXggOTVjOWQ3NGEyODYuLjNiZTZkYTg4YmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oCkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVy
cmlkZTsKIAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCos
IGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKLSAgICBSZWZQdHI8RmlsdGVyRWZmZWN0
PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyJikgb3ZlcnJpZGU7CisgICAgUmVmUHRy
PEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIGNvbnN0IG92
ZXJyaWRlOwogCiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYga2VybmVsVW5pdExlbmd0
aFhJZGVudGlmaWVyKCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYga2VybmVsVW5p
dExlbmd0aFlJZGVudGlmaWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURp
c3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwCmluZGV4IDJiNDJmMzQ0MDgyLi42NzBiYzU2NGQ1YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVu
dC5jcHAKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTgogICAgIFNW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6c3ZnQXR0cmlidXRlQ2hhbmdlZChh
dHRyTmFtZSk7CiB9CiAKLVJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFRGlzcGxhY2VtZW50TWFw
RWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciogZmlsdGVyQnVpbGRlciwgRmlsdGVyJiBm
aWx0ZXIpCitSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6
OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKSBj
b25zdAogewogICAgIGF1dG8gaW5wdXQxID0gZmlsdGVyQnVpbGRlci0+Z2V0RWZmZWN0QnlJZChp
bjEoKSk7CiAgICAgYXV0byBpbnB1dDIgPSBmaWx0ZXJCdWlsZGVyLT5nZXRFZmZlY3RCeUlkKGlu
MigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1h
cEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1l
bnQuaAppbmRleCAzYzA5MmQ0ZjYzZi4uMjQ0OGFkMDg5NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmgKQEAgLTEwMyw3ICsxMDMsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJikgb3ZlcnJpZGU7CiAKICAgICBib29sIHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0
ZXJFZmZlY3QqLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkgb3ZlcnJpZGU7Ci0gICAg
UmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIG92
ZXJyaWRlOworICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIq
LCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIAogICAgIEF0dHJpYnV0ZU93bmVyUHJveHkgbV9h
dHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsKICAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJv
cGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9w
U2hhZG93RWxlbWVudC5jcHAKaW5kZXggNjk4YTQ4NTRjMWIuLjEzYjY5ZWM3ZmY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwCkBAIC0xMTYsNyAr
MTE2LDcgQEAgdm9pZCBTVkdGRURyb3BTaGFkb3dFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlczo6c3ZnQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiB9CiAKLVJl
ZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRl
ckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKQorUmVmUHRyPEZpbHRlckVm
ZmVjdD4gU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciogZmls
dGVyQnVpbGRlciwgRmlsdGVyJiBmaWx0ZXIpIGNvbnN0CiB7CiAgICAgUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oCmluZGV4IDcxMTYzNDJkODRhLi44
ZTI5YzBkMmI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRv
d0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVu
dC5oCkBAIC02NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsK
IAotICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0
ZXImKSBvdmVycmlkZTsKKyAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0ZXJC
dWlsZGVyKiwgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBzdGF0aWMgY29uc3QgQXRv
bWljU3RyaW5nJiBzdGREZXZpYXRpb25YSWRlbnRpZmllcigpOwogICAgIHN0YXRpYyBjb25zdCBB
dG9taWNTdHJpbmcmIHN0ZERldmlhdGlvbllJZGVudGlmaWVyKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRmxvb2RFbGVtZW50LmNwcAppbmRleCBjZmU2NDJhMzMyZi4uYzIyOGUyMmQ1NjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZsb29kRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50LmNwcApAQCAtNTgsNyArNTgsNyBA
QCBib29sIFNWR0ZFRmxvb2RFbGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVy
RWZmZWN0KiBlZmZlY3QsIGNvbnN0IFF1YQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUmVmUHRy
PEZpbHRlckVmZmVjdD4gU1ZHRkVGbG9vZEVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIq
LCBGaWx0ZXImIGZpbHRlcikKK1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFRmxvb2RFbGVtZW50
OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyJiBmaWx0ZXIpIGNvbnN0CiB7CiAgICAg
UmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5k
ZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZsb29kRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50LmgKaW5kZXggNjQ0N2ZmYzQ3
MTkuLmI1NjEzNWE3ZjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGbG9v
ZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuaApA
QCAtMzMsNyArMzMsNyBAQCBwcml2YXRlOgogICAgIFNWR0ZFRmxvb2RFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgYm9vbCBzZXRGaWx0ZXJFZmZlY3RBdHRy
aWJ1dGUoRmlsdGVyRWZmZWN0KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpIG92ZXJy
aWRlOwotICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBG
aWx0ZXImKSBvdmVycmlkZTsKKyAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0
ZXJCdWlsZGVyKiwgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJs
dXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1l
bnQuY3BwCmluZGV4IDk1NDcyZGI3MTg2Li5jYWJiMWY0YTAxMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKQEAgLTExNCw3ICsxMTQsNyBA
QCB2b2lkIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZQogICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlczo6c3ZnQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiB9CiAKLVJlZlB0cjxG
aWx0ZXJFZmZlY3Q+IFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVp
bGRlciogZmlsdGVyQnVpbGRlciwgRmlsdGVyJiBmaWx0ZXIpCitSZWZQdHI8RmlsdGVyRWZmZWN0
PiBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZpbHRl
ckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKSBjb25zdAogewogICAgIGF1dG8gaW5wdXQxID0gZmls
dGVyQnVpbGRlci0+Z2V0RWZmZWN0QnlJZChpbjEoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaAppbmRleCAwZjQzY2M2NjdlMS4uZTMzODdiYzNi
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmgK
QEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lk
IHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCi0g
ICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYp
IG92ZXJyaWRlOworICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxk
ZXIqLCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHN0YXRpYyBjb25zdCBBdG9taWNT
dHJpbmcmIHN0ZERldmlhdGlvblhJZGVudGlmaWVyKCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21p
Y1N0cmluZyYgc3RkRGV2aWF0aW9uWUlkZW50aWZpZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDVkYTBkNDllM2E4Li5iZjNmMzhmNDQ0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCkBAIC00NCw3ICs0NCwxMSBAQCBp
bmxpbmUgU1ZHRkVJbWFnZUVsZW1lbnQ6OlNWR0ZFSW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZQogICAgICwgU1ZHVVJJUmVmZXJlbmNlKHRoaXMpCiB7CiAg
ICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZlSW1hZ2VUYWcpKTsKLSAgICByZWdpc3Rl
ckF0dHJpYnV0ZXMoKTsKKworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAg
ICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10geworICAgICAgICBQcm9wZXJ0eVJlZ2lzdHJ5
OjpyZWdpc3RlclByb3BlcnR5PFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0ciwgJlNW
R0ZFSW1hZ2VFbGVtZW50OjptX3ByZXNlcnZlQXNwZWN0UmF0aW8+KCk7CisgICAgfSk7CiB9CiAK
IFJlZjxTVkdGRUltYWdlRWxlbWVudD4gU1ZHRkVJbWFnZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC0xMTEsMjAgKzEx
NSwxMiBAQCB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpidWlsZFBlbmRpbmdSZXNvdXJjZSgpCiAg
ICAgaW52YWxpZGF0ZSgpOwogfQogCi12b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpyZWdpc3RlckF0
dHJpYnV0ZXMoKQotewotICAgIGF1dG8mIHJlZ2lzdHJ5ID0gYXR0cmlidXRlUmVnaXN0cnkoKTsK
LSAgICBpZiAoIXJlZ2lzdHJ5LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIHJlZ2lz
dHJ5LnJlZ2lzdGVyQXR0cmlidXRlPFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0ciwg
JlNWR0ZFSW1hZ2VFbGVtZW50OjptX3ByZXNlcnZlQXNwZWN0UmF0aW8+KCk7Ci19Ci0KIHZvaWQg
U1ZHRkVJbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFt
ZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRyKSB7CiAgICAgICAgIFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZSBwcmVzZXJ2ZUFzcGVjdFJhdGlvOwogICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJh
dGlvLnBhcnNlKHZhbHVlKTsKLSAgICAgICAgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLnNldFZhbHVl
KHByZXNlcnZlQXNwZWN0UmF0aW8pOworICAgICAgICBtX3ByZXNlcnZlQXNwZWN0UmF0aW8tPnNl
dEJhc2VWYWxJbnRlcm5hbChwcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtMTg1LDcgKzE4MSw3IEBAIHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6Om5vdGlm
eUZpbmlzaGVkKENhY2hlZFJlc291cmNlJikKICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0Zv
ckxheW91dEFuZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKCpwYXJlbnRSZW5kZXJlcik7CiB9
CiAKLVJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFSW1hZ2VFbGVtZW50OjpidWlsZChTVkdGaWx0
ZXJCdWlsZGVyKiwgRmlsdGVyJiBmaWx0ZXIpCitSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUlt
YWdlRWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYgZmlsdGVyKSBjb25z
dAogewogICAgIGlmIChtX2NhY2hlZEltYWdlKQogICAgICAgICByZXR1cm4gRkVJbWFnZTo6Y3Jl
YXRlV2l0aEltYWdlKGZpbHRlciwgbV9jYWNoZWRJbWFnZS0+aW1hZ2VGb3JSZW5kZXJlcihyZW5k
ZXJlcigpKSwgcHJlc2VydmVBc3BlY3RSYXRpbygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1h
Z2VFbGVtZW50LmgKaW5kZXggNTUwYmY5MDllYjMuLmU1ZDEwYjNmZmFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaApAQCAtMjMsNyArMjMsNiBAQAogCiAjaW5jbHVkZSAi
Q2FjaGVkSW1hZ2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgot
I2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIgogI2luY2x1ZGUgIlNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaCIKICNpbmNsdWRlICJTVkdGRUltYWdlLmgiCiAj
aW5jbHVkZSAiU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgiCkBAIC00MCwx
NSArMzksMTMgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigp
IGNvbnN0OwogCi0gICAgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2
ZUFzcGVjdFJhdGlvKCkgY29uc3QgeyByZXR1cm4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLmN1cnJl
bnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9Ci0gICAgUmVmUHRyPFNWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpbz4gcHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdGVkKCkgeyByZXR1
cm4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLmFuaW1hdGVkUHJvcGVydHkoYXR0cmlidXRlT3duZXJQ
cm94eSgpKTsgfQorICAgIGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2Vy
dmVBc3BlY3RSYXRpbygpIGNvbnN0IHsgcmV0dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpby0+Y3Vy
cmVudFZhbHVlKCk7IH0KKyAgICBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8mIHByZXNl
cnZlQXNwZWN0UmF0aW9BbmltYXRlZCgpIHsgcmV0dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpbzsg
fQogCiBwcml2YXRlOgogICAgIFNWR0ZFSW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwogCiAgICAgdXNpbmcgQXR0cmlidXRlT3duZXJQcm94eSA9IFNWR0F0dHJp
YnV0ZU93bmVyUHJveHlJbXBsPFNWR0ZFSW1hZ2VFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXMsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNWR1VSSVJl
ZmVyZW5jZT47Ci0gICAgc3RhdGljIEF0dHJpYnV0ZU93bmVyUHJveHk6OkF0dHJpYnV0ZVJlZ2lz
dHJ5JiBhdHRyaWJ1dGVSZWdpc3RyeSgpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6OmF0
dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0KLSAgICBzdGF0aWMgdm9pZCByZWdpc3RlckF0dHJpYnV0ZXMo
KTsKICAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclByb3h5JiBhdHRyaWJ1dGVPd25lclByb3h5
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hdHRyaWJ1dGVPd25lclByb3h5OyB9CiAgICAgCiAg
ICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdG
RUltYWdlRWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLCBTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdVUklSZWZlcmVuY2U+OwpAQCAtNjcsNyArNjQs
NyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRGaW5pc2hJbnNlcnRpbmdOb2RlKCkgb3ZlcnJp
ZGU7CiAKLSAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwg
RmlsdGVyJikgb3ZlcnJpZGU7CisgICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmls
dGVyQnVpbGRlciosIEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBjbGVhclJl
c291cmNlUmVmZXJlbmNlcygpOwogICAgIHZvaWQgcmVxdWVzdEltYWdlUmVzb3VyY2UoKTsKQEAg
LTc4LDcgKzc1LDcgQEAgcHJpdmF0ZToKIAogICAgIEF0dHJpYnV0ZU93bmVyUHJveHkgbV9hdHRy
aWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsKICAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVy
dHlSZWdpc3RyeSB7ICp0aGlzIH07Ci0gICAgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
QXR0cmlidXRlIG1fcHJlc2VydmVBc3BlY3RSYXRpbzsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRQcmVz
ZXJ2ZUFzcGVjdFJhdGlvPiBtX3ByZXNlcnZlQXNwZWN0UmF0aW8geyBTVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW86OmNyZWF0ZSh0aGlzKSB9OwogICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZEltYWdlPiBtX2NhY2hlZEltYWdlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RU1lcmdlRWxlbWVudC5jcHAKaW5kZXggZWZhNzdkZTJjMWIuLjQ1MzkwMTIwMDhmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlRWxlbWVudC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgUmVm
PFNWR0ZFTWVyZ2VFbGVtZW50PiBTVkdGRU1lcmdlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIEQKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRU1lcmdl
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi1SZWZQdHI8RmlsdGVyRWZmZWN0PiBT
VkdGRU1lcmdlRWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciogZmlsdGVyQnVpbGRlciwg
RmlsdGVyJiBmaWx0ZXIpCitSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRU1lcmdlRWxlbWVudDo6
YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciogZmlsdGVyQnVpbGRlciwgRmlsdGVyJiBmaWx0ZXIpIGNv
bnN0CiB7CiAgICAgYXV0byBlZmZlY3QgPSBGRU1lcmdlOjpjcmVhdGUoZmlsdGVyKTsKICAgICBG
aWx0ZXJFZmZlY3RWZWN0b3ImIG1lcmdlSW5wdXRzID0gZWZmZWN0LT5pbnB1dEVmZmVjdHMoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50LmgKaW5kZXggM2U0MmE3NDhkYWEuLjg0
MzNjOWE0ODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuaApAQCAtMzIs
NyArMzIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNWR0ZFTWVyZ2VFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgUmVmUHRyPEZpbHRlckVmZmVjdD4g
YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIG92ZXJyaWRlOworICAgIFJlZlB0cjxG
aWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBjb25zdCBvdmVy
cmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcAppbmRleCA3YTRjZDA4MmQ1NC4uOWFmNWZmZmYz
NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAK
QEAgLTEzMyw3ICsxMzMsNyBAQCB2b2lkIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OnN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1l
KTsKIH0KIAotUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6YnVp
bGQoU1ZHRmlsdGVyQnVpbGRlciogZmlsdGVyQnVpbGRlciwgRmlsdGVyJiBmaWx0ZXIpCitSZWZQ
dHI8RmlsdGVyRWZmZWN0PiBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJC
dWlsZGVyKiBmaWx0ZXJCdWlsZGVyLCBGaWx0ZXImIGZpbHRlcikgY29uc3QKIHsKICAgICBhdXRv
IGlucHV0MSA9IGZpbHRlckJ1aWxkZXItPmdldEVmZmVjdEJ5SWQoaW4xKCkpOwogICAgIGZsb2F0
IHhSYWRpdXMgPSByYWRpdXNYKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVNb3JwaG9sb2d5RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9n
eUVsZW1lbnQuaAppbmRleCAyN2Q4MTc1N2M5NC4uNjgyODFiN2ZmZmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuaApAQCAtOTMsNyArOTMsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikg
b3ZlcnJpZGU7CiAKICAgICBib29sIHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZl
Y3QqLCBjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7Ci0gICAgUmVmUHRyPEZpbHRlckVm
ZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIG92ZXJyaWRlOworICAgIFJl
ZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBjb25z
dCBvdmVycmlkZTsKIAogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHJhZGl1c1hJZGVu
dGlmaWVyKCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgcmFkaXVzWUlkZW50aWZp
ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHAKaW5kZXggODg1
MjcxMWE1YTYuLjJlMTMwNjQ1M2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVPZmZzZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRF
bGVtZW50LmNwcApAQCAtODUsNyArODUsNyBAQCB2b2lkIFNWR0ZFT2Zmc2V0RWxlbWVudDo6c3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBTVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0
ck5hbWUpOwogfQogCi1SZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRU9mZnNldEVsZW1lbnQ6OmJ1
aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKQorUmVm
UHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVPZmZzZXRFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJCdWls
ZGVyKiBmaWx0ZXJCdWlsZGVyLCBGaWx0ZXImIGZpbHRlcikgY29uc3QKIHsKICAgICBhdXRvIGlu
cHV0MSA9IGZpbHRlckJ1aWxkZXItPmdldEVmZmVjdEJ5SWQoaW4xKCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmgKaW5kZXggZGZkZjI2MWY5OGMuLjI3NWE5ZmMyYzc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5oCkBAIC01OCw3ICs1OCw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAotICAgIFJlZlB0cjxGaWx0
ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBvdmVycmlkZTsKKyAg
ICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyJikg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICBBdHRyaWJ1dGVPd25lclByb3h5IG1fYXR0cmlidXRlT3du
ZXJQcm94eSB7ICp0aGlzIH07CiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0
cnkgeyAqdGhpcyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3Vs
YXJMaWdodGluZ0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJM
aWdodGluZ0VsZW1lbnQuY3BwCmluZGV4IDgxZWY0NTc2ODY5Li43ZWEzMTQwZmI5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNw
cApAQCAtMTc5LDcgKzE3OSw3IEBAIHZvaWQgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6
bGlnaHRFbGVtZW50QXR0cmlidXRlQ2hhbmdlZChjb25zdCBTVkdGRUxpZ2h0CiAgICAgcHJpbWl0
aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiB9CiAKLVJlZlB0cjxGaWx0ZXJFZmZlY3Q+
IFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZp
bHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKQorUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVT
cGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciogZmlsdGVyQnVp
bGRlciwgRmlsdGVyJiBmaWx0ZXIpIGNvbnN0CiB7CiAgICAgYXV0byBpbnB1dDEgPSBmaWx0ZXJC
dWlsZGVyLT5nZXRFZmZlY3RCeUlkKGluMSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmgKaW5kZXggNzUwMzFmZTY2MzUuLjdjOTA1
YWE3MmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0
aW5nRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRp
bmdFbGVtZW50LmgKQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBz
ZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0KiwgY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIG92ZXJyaWRlOwotICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1
aWxkZXIqLCBGaWx0ZXImKSBvdmVycmlkZTsKKyAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWls
ZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBzdGF0
aWMgY29uc3QgQXRvbWljU3RyaW5nJiBrZXJuZWxVbml0TGVuZ3RoWElkZW50aWZpZXIoKTsKICAg
ICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBrZXJuZWxVbml0TGVuZ3RoWUlkZW50aWZpZXIo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcAppbmRleCBlM2NmNWFkY2Y0
Zi4uODNmYmVlOTE5OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHAK
QEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBTVkdGRVRpbGVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIFNWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlczo6c3ZnQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiB9CiAK
LVJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFVGlsZUVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1
aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKQorUmVmUHRyPEZpbHRlckVmZmVj
dD4gU1ZHRkVUaWxlRWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciogZmlsdGVyQnVpbGRl
ciwgRmlsdGVyJiBmaWx0ZXIpIGNvbnN0CiB7CiAgICAgYXV0byBpbnB1dDEgPSBmaWx0ZXJCdWls
ZGVyLT5nZXRFZmZlY3RCeUlkKGluMSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFVGlsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVt
ZW50LmgKaW5kZXggMjdkNTQzOGMyNzAuLjhkNWRjOWJlODRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRVRpbGVFbGVtZW50LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBv
dmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIG92ZXJyaWRlOwogCi0gICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVy
QnVpbGRlciosIEZpbHRlciYpIG92ZXJyaWRlOworICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1
aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIAogICAgIEF0
dHJpYnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsKICAgICBQ
cm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAKaW5kZXggN2Q3ZmY0MjJkYzAu
Ljk5ZDhjMmRlNDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxl
bmNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVs
ZW1lbnQuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgdm9pZCBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAg
IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZChhdHRyTmFtZSk7CiB9CiAKLVJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFVHVyYnVsZW5jZUVs
ZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImIGZpbHRlcikKK1JlZlB0cjxG
aWx0ZXJFZmZlY3Q+IFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxk
ZXIqLCBGaWx0ZXImIGZpbHRlcikgY29uc3QKIHsKICAgICBpZiAoYmFzZUZyZXF1ZW5jeVgoKSA8
IDAgfHwgYmFzZUZyZXF1ZW5jeVkoKSA8IDApCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmgKaW5kZXggNGZhMjNhZDE5
NTkuLjExY2Q3ZmViMGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJi
dWxlbmNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VF
bGVtZW50LmgKQEAgLTEzMSw3ICsxMzEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3ZnQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBib29sIHNl
dEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqLCBjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkgb3ZlcnJpZGU7Ci0gICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZH
RmlsdGVyQnVpbGRlciosIEZpbHRlciYpIG92ZXJyaWRlOworICAgIFJlZlB0cjxGaWx0ZXJFZmZl
Y3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIAog
ICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGJhc2VGcmVxdWVuY3lYSWRlbnRpZmllcigp
OwogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGJhc2VGcmVxdWVuY3lZSWRlbnRpZmll
cigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlcy5oCmluZGV4IDczNDEwNjUyZTJmLi5mZWZlYmVhNzAyYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXMuaApAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBTVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXMgOiBwdWJsaWMgU1ZHRWxlbWVudCB7CiBwdWJsaWM6CiAgICAg
dm9pZCBzZXRTdGFuZGFyZEF0dHJpYnV0ZXMoRmlsdGVyRWZmZWN0KikgY29uc3Q7CiAKLSAgICB2
aXJ0dWFsIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0
ZXImKSA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0
ZXJCdWlsZGVyKiwgRmlsdGVyJikgY29uc3QgPSAwOwogICAgIC8vIFJldHVybnMgdHJ1ZSwgaWYg
dGhlIG5ldyB2YWx1ZSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgb2xkIG9uZS4KICAgICB2aXJ0dWFs
IGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCosIGNvbnN0IFF1YWxp
ZmllZE5hbWUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmll
d0JveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmNwcAppbmRleCBl
ZjRhOGQwYzVhOS4uZDE1ZTM1NDZjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGaXRUb1ZpZXdCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdC
b3guY3BwCkBAIC0zNSwyNSArMzUsMTYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU1ZHRml0
VG9WaWV3Qm94OjpTVkdGaXRUb1ZpZXdCb3goU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIFNW
R1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKLSAgICA6IG1fYXR0cmlidXRlT3duZXJQcm94eSgqdGhp
cywgKmNvbnRleHRFbGVtZW50LCBhY2Nlc3MgPT0gU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0
ZSA/IFByb3BlcnR5SXNSZWFkV3JpdGUgOiBQcm9wZXJ0eUlzUmVhZE9ubHkpCi0gICAgLCBtX3Zp
ZXdCb3goU1ZHQW5pbWF0ZWRSZWN0OjpjcmVhdGUoY29udGV4dEVsZW1lbnQsIGFjY2VzcykpCisg
ICAgOiBtX3ZpZXdCb3goU1ZHQW5pbWF0ZWRSZWN0OjpjcmVhdGUoY29udGV4dEVsZW1lbnQsIGFj
Y2VzcykpCisgICAgLCBtX3ByZXNlcnZlQXNwZWN0UmF0aW8oU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvOjpjcmVhdGUoY29udGV4dEVsZW1lbnQsIGFjY2VzcykpCiB7Ci0gICAgcmVnaXN0
ZXJBdHRyaWJ1dGVzKCk7Ci0KICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CiAg
ICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKICAgICAgICAgUHJvcGVydHlSZWdpc3Ry
eTo6cmVnaXN0ZXJQcm9wZXJ0eTxTVkdOYW1lczo6dmlld0JveEF0dHIsICZTVkdGaXRUb1ZpZXdC
b3g6Om1fdmlld0JveD4oKTsKKyAgICAgICAgUHJvcGVydHlSZWdpc3RyeTo6cmVnaXN0ZXJQcm9w
ZXJ0eTxTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIsICZTVkdGaXRUb1ZpZXdCb3g6
Om1fcHJlc2VydmVBc3BlY3RSYXRpbz4oKTsKICAgICB9KTsKIH0KIAotdm9pZCBTVkdGaXRUb1Zp
ZXdCb3g6OnJlZ2lzdGVyQXR0cmlidXRlcygpCi17Ci0gICAgYXV0byYgcmVnaXN0cnkgPSBhdHRy
aWJ1dGVSZWdpc3RyeSgpOwotICAgIGlmICghcmVnaXN0cnkuaXNFbXB0eSgpKQotICAgICAgICBy
ZXR1cm47Ci0gICAgcmVnaXN0cnkucmVnaXN0ZXJBdHRyaWJ1dGU8U1ZHTmFtZXM6OnByZXNlcnZl
QXNwZWN0UmF0aW9BdHRyLCAmU1ZHRml0VG9WaWV3Qm94OjptX3ByZXNlcnZlQXNwZWN0UmF0aW8+
KCk7Ci19Ci0KIHZvaWQgU1ZHRml0VG9WaWV3Qm94OjpzZXRWaWV3Qm94KGNvbnN0IEZsb2F0UmVj
dCYgdmlld0JveCkKIHsKICAgICBtX3ZpZXdCb3gtPnNldEJhc2VWYWxJbnRlcm5hbCh2aWV3Qm94
KTsKQEAgLTExMyw3ICsxMDQsNyBAQCBib29sIFNWR0ZpdFRvVmlld0JveDo6cGFyc2VWaWV3Qm94
KGNvbnN0IFVDaGFyKiYgYywgY29uc3QgVUNoYXIqIGVuZCwgRmxvYXRSZWN0JgogICAgIGJvb2wg
dmFsaWQgPSBwYXJzZU51bWJlcihjLCBlbmQsIHgpICYmIHBhcnNlTnVtYmVyKGMsIGVuZCwgeSkg
JiYgcGFyc2VOdW1iZXIoYywgZW5kLCB3aWR0aCkgJiYgcGFyc2VOdW1iZXIoYywgZW5kLCBoZWln
aHQsIGZhbHNlKTsKIAogICAgIGlmICh2YWxpZGF0ZSkgewotICAgICAgICBEb2N1bWVudCYgZG9j
dW1lbnQgPSBtX2F0dHJpYnV0ZU93bmVyUHJveHkuZWxlbWVudCgpLmRvY3VtZW50KCk7CisgICAg
ICAgIERvY3VtZW50JiBkb2N1bWVudCA9IG1fdmlld0JveC0+Y29udGV4dEVsZW1lbnQoKS0+ZG9j
dW1lbnQoKTsKIAogICAgICAgICBpZiAoIXZhbGlkKSB7CiAgICAgICAgICAgICBkb2N1bWVudC5h
Y2Nlc3NTVkdFeHRlbnNpb25zKCkucmVwb3J0V2FybmluZygiUHJvYmxlbSBwYXJzaW5nIHZpZXdC
b3g9XCIiICsgc3RyICsgIlwiIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rml0VG9WaWV3Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmgKaW5k
ZXggZjg5NGEwODcyMDIuLjBlMWVmZTc1ZmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRml0VG9WaWV3Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmll
d0JveC5oCkBAIC00MywxOSArNDMsMTkgQEAgcHVibGljOgogICAgIHVzaW5nIFByb3BlcnR5UmVn
aXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRml0VG9WaWV3Qm94PjsKIAogICAg
IGNvbnN0IEZsb2F0UmVjdCYgdmlld0JveCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld0JveC0+Y3Vy
cmVudFZhbHVlKCk7IH0KLSAgICBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHBy
ZXNlcnZlQXNwZWN0UmF0aW8oKSBjb25zdCB7IHJldHVybiBtX3ByZXNlcnZlQXNwZWN0UmF0aW8u
Y3VycmVudFZhbHVlKG1fYXR0cmlidXRlT3duZXJQcm94eSk7IH0KKyAgICBjb25zdCBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8oKSBjb25zdCB7IHJldHVy
biBtX3ByZXNlcnZlQXNwZWN0UmF0aW8tPmN1cnJlbnRWYWx1ZSgpOyB9CiAKICAgICBTVkdBbmlt
YXRlZFJlY3QmIHZpZXdCb3hBbmltYXRlZCgpIHsgcmV0dXJuIG1fdmlld0JveDsgfQotICAgIFJl
ZlB0cjxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+IHByZXNlcnZlQXNwZWN0UmF0aW9B
bmltYXRlZCgpIHsgcmV0dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpby5hbmltYXRlZFByb3BlcnR5
KG1fYXR0cmlidXRlT3duZXJQcm94eSk7IH0KKyAgICBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0
UmF0aW8mIHByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRlZCgpIHsgcmV0dXJuIG1fcHJlc2VydmVB
c3BlY3RSYXRpbzsgfQogCiAgICAgdm9pZCBzZXRWaWV3Qm94KGNvbnN0IEZsb2F0UmVjdCYpOwog
ICAgIHZvaWQgcmVzZXRWaWV3Qm94KCk7CiAKLSAgICB2b2lkIHNldFByZXNlcnZlQXNwZWN0UmF0
aW8oY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJhdGlv
KSB7IG1fcHJlc2VydmVBc3BlY3RSYXRpby5zZXRWYWx1ZShwcmVzZXJ2ZUFzcGVjdFJhdGlvKTsg
fQotICAgIHZvaWQgcmVzZXRQcmVzZXJ2ZUFzcGVjdFJhdGlvKCkgeyBtX3ByZXNlcnZlQXNwZWN0
UmF0aW8ucmVzZXRWYWx1ZSgpOyB9CisgICAgdm9pZCBzZXRQcmVzZXJ2ZUFzcGVjdFJhdGlvKGNv
bnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbykgeyBt
X3ByZXNlcnZlQXNwZWN0UmF0aW8tPnNldEJhc2VWYWxJbnRlcm5hbChwcmVzZXJ2ZUFzcGVjdFJh
dGlvKTsgfQorICAgIHZvaWQgcmVzZXRQcmVzZXJ2ZUFzcGVjdFJhdGlvKCkgeyBtX3ByZXNlcnZl
QXNwZWN0UmF0aW8tPnNldEJhc2VWYWxJbnRlcm5hbCh7IH0pOyB9CiAKICAgICBTdHJpbmcgdmll
d0JveFN0cmluZygpIGNvbnN0IHsgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPEZsb2F0UmVjdD46
OnRvU3RyaW5nKHZpZXdCb3goKSk7IH0KLSAgICBTdHJpbmcgcHJlc2VydmVBc3BlY3RSYXRpb1N0
cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpby50b1N0cmluZygpOyB9
CisgICAgU3RyaW5nIHByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcoKSBjb25zdCB7IHJldHVybiBw
cmVzZXJ2ZUFzcGVjdFJhdGlvKCkudmFsdWVBc1N0cmluZygpOyB9CiAKICAgICBib29sIGhhc1Zh
bGlkVmlld0JveCgpIGNvbnN0IHsgcmV0dXJuIG1faXNWaWV3Qm94VmFsaWQ7IH0KICAgICBib29s
IGhhc0VtcHR5Vmlld0JveCgpIGNvbnN0IHsgcmV0dXJuIG1faXNWaWV3Qm94VmFsaWQgJiYgdmll
d0JveCgpLmlzRW1wdHkoKTsgfQpAQCAtNzQsMTEgKzc0LDggQEAgcHJvdGVjdGVkOgogICAgIGJv
b2wgcGFyc2VWaWV3Qm94KGNvbnN0IFVDaGFyKiYgc3RhcnQsIGNvbnN0IFVDaGFyKiBlbmQsIEZs
b2F0UmVjdCYgdmlld0JveCwgYm9vbCB2YWxpZGF0ZSA9IHRydWUpOwogCiBwcml2YXRlOgotICAg
IHN0YXRpYyB2b2lkIHJlZ2lzdGVyQXR0cmlidXRlcygpOwotCi0gICAgQXR0cmlidXRlT3duZXJQ
cm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHk7CiAgICAgUmVmPFNWR0FuaW1hdGVkUmVjdD4gbV92
aWV3Qm94OwotICAgIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0F0dHJpYnV0ZSBtX3By
ZXNlcnZlQXNwZWN0UmF0aW87CisgICAgUmVmPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
bz4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOwogICAgIGJvb2wgbV9pc1ZpZXdCb3hWYWxpZCB7IGZh
bHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDA1
NTk5Mjc2NGM2Li5kMmIxNGE1NmMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVu
dC5jcHAKQEAgLTQ0LDYgKzQ0LDExIEBAIGlubGluZSBTVkdJbWFnZUVsZW1lbnQ6OlNWR0ltYWdl
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYKICAgICAsIG1f
aW1hZ2VMb2FkZXIoKnRoaXMpCiB7CiAgICAgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7CisKKyAgICBz
dGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZs
YWcsIFtdIHsKKyAgICAgICAgUHJvcGVydHlSZWdpc3RyeTo6cmVnaXN0ZXJQcm9wZXJ0eTxTVkdO
YW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIsICZTVkdJbWFnZUVsZW1lbnQ6Om1fcHJlc2Vy
dmVBc3BlY3RSYXRpbz4oKTsKKyAgICB9KTsKIH0KIAogUmVmPFNWR0ltYWdlRWxlbWVudD4gU1ZH
SW1hZ2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQpAQCAtNjksNyArNzQsNiBAQCB2b2lkIFNWR0ltYWdlRWxlbWVudDo6cmVn
aXN0ZXJBdHRyaWJ1dGVzKCkKICAgICByZWdpc3RyeS5yZWdpc3RlckF0dHJpYnV0ZTxTVkdOYW1l
czo6eUF0dHIsICZTVkdJbWFnZUVsZW1lbnQ6Om1feT4oKTsKICAgICByZWdpc3RyeS5yZWdpc3Rl
ckF0dHJpYnV0ZTxTVkdOYW1lczo6d2lkdGhBdHRyLCAmU1ZHSW1hZ2VFbGVtZW50OjptX3dpZHRo
PigpOwogICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyQXR0cmlidXRlPFNWR05hbWVzOjpoZWlnaHRBdHRy
LCAmU1ZHSW1hZ2VFbGVtZW50OjptX2hlaWdodD4oKTsKLSAgICByZWdpc3RyeS5yZWdpc3RlckF0
dHJpYnV0ZTxTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIsICZTVkdJbWFnZUVsZW1l
bnQ6Om1fcHJlc2VydmVBc3BlY3RSYXRpbz4oKTsKIH0KIAogdm9pZCBTVkdJbWFnZUVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0
cmluZyYgdmFsdWUpCkBAIC03Nyw3ICs4MSw3IEBAIHZvaWQgU1ZHSW1hZ2VFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpCiAg
ICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRyKSB7CiAgICAg
ICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSBwcmVzZXJ2ZUFzcGVjdFJhdGlvOwogICAg
ICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvLnBhcnNlKHZhbHVlKTsKLSAgICAgICAgbV9wcmVzZXJ2
ZUFzcGVjdFJhdGlvLnNldFZhbHVlKHByZXNlcnZlQXNwZWN0UmF0aW8pOworICAgICAgICBtX3By
ZXNlcnZlQXNwZWN0UmF0aW8tPnNldEJhc2VWYWxJbnRlcm5hbChwcmVzZXJ2ZUFzcGVjdFJhdGlv
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVu
dC5oCmluZGV4IDliYzUxOTIyZGUwLi5lY2ZjNmI2MjJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJ
bWFnZUVsZW1lbnQuaApAQCAtMjIsNyArMjIsNiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJTVkdBbmltYXRlZExlbmd0aC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpby5oIgogI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaCIKICNp
bmNsdWRlICJTVkdHcmFwaGljc0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdJbWFnZUxvYWRlci5o
IgpAQCAtNDIsMTMgKzQxLDEzIEBAIHB1YmxpYzoKICAgICBjb25zdCBTVkdMZW5ndGhWYWx1ZSYg
eSgpIGNvbnN0IHsgcmV0dXJuIG1feS5jdXJyZW50VmFsdWUoYXR0cmlidXRlT3duZXJQcm94eSgp
KTsgfQogICAgIGNvbnN0IFNWR0xlbmd0aFZhbHVlJiB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1f
d2lkdGguY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KICAgICBjb25zdCBT
VkdMZW5ndGhWYWx1ZSYgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWlnaHQuY3VycmVudFZh
bHVlKGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KLSAgICBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8oKSBjb25zdCB7IHJldHVybiBtX3ByZXNl
cnZlQXNwZWN0UmF0aW8uY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KKyAg
ICBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8o
KSBjb25zdCB7IHJldHVybiBtX3ByZXNlcnZlQXNwZWN0UmF0aW8tPmN1cnJlbnRWYWx1ZSgpOyB9
CiAKICAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRMZW5ndGg+IHhBbmltYXRlZCgpIHsgcmV0dXJuIG1f
eC5hbmltYXRlZFByb3BlcnR5KGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KICAgICBSZWZQdHI8
U1ZHQW5pbWF0ZWRMZW5ndGg+IHlBbmltYXRlZCgpIHsgcmV0dXJuIG1feS5hbmltYXRlZFByb3Bl
cnR5KGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KICAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRMZW5n
dGg+IHdpZHRoQW5pbWF0ZWQoKSB7IHJldHVybiBtX3dpZHRoLmFuaW1hdGVkUHJvcGVydHkoYXR0
cmlidXRlT3duZXJQcm94eSgpKTsgfQogICAgIFJlZlB0cjxTVkdBbmltYXRlZExlbmd0aD4gaGVp
Z2h0QW5pbWF0ZWQoKSB7IHJldHVybiBtX2hlaWdodC5hbmltYXRlZFByb3BlcnR5KGF0dHJpYnV0
ZU93bmVyUHJveHkoKSk7IH0KLSAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJh
dGlvPiBwcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0ZWQoKSB7IHJldHVybiBtX3ByZXNlcnZlQXNw
ZWN0UmF0aW8uYW5pbWF0ZWRQcm9wZXJ0eShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CisgICAg
U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0
ZWQoKSB7IHJldHVybiBtX3ByZXNlcnZlQXNwZWN0UmF0aW87IH0KIAogcHJpdmF0ZToKICAgICBT
VkdJbWFnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkBAIC04Niw3
ICs4NSw3IEBAIHByaXZhdGU6CiAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUgbV95IHsg
TGVuZ3RoTW9kZUhlaWdodCB9OwogICAgIFNWR0FuaW1hdGVkTGVuZ3RoQXR0cmlidXRlIG1fd2lk
dGggeyBMZW5ndGhNb2RlV2lkdGggfTsKICAgICBTVkdBbmltYXRlZExlbmd0aEF0dHJpYnV0ZSBt
X2hlaWdodCB7IExlbmd0aE1vZGVIZWlnaHQgfTsKLSAgICBTVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW9BdHRyaWJ1dGUgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOworICAgIFJlZjxTVkdBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+IG1fcHJlc2VydmVBc3BlY3RSYXRpbyB7IFNWR0FuaW1h
dGVkUHJlc2VydmVBc3BlY3RSYXRpbzo6Y3JlYXRlKHRoaXMpIH07CiAgICAgU1ZHSW1hZ2VMb2Fk
ZXIgbV9pbWFnZUxvYWRlcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXJrZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5o
CmluZGV4IDhjYjkzYjZlMTIwLi4xMDc2NjU3Zjk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFy
a2VyRWxlbWVudC5oCkBAIC0yNCw3ICsyNCw2IEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRBbmds
ZS5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCIKICNpbmNsdWRlICJTVkdB
bmltYXRlZExlbmd0aC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
by5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94LmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCmluZGV4IGZkNjA3ZTYxMjQ5Li4zMjE0YWI1NjVhMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKQEAgLTIzLDcgKzIzLDYgQEAK
IAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCIKICNpbmNsdWRlICJTVkdBbmlt
YXRlZExlbmd0aC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5o
IgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIgogI2luY2x1ZGUgIlNWR0Vs
ZW1lbnQuaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaAppbmRleCAxMDY5NWEzYzA2
Zi4uMjcxN2FiZWJlMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0
UmF0aW8uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI2LDQwICsyNiwzNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCIKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eVRlYXJP
ZmYuaCIKKyNpbmNsdWRlICJTVkdWYWx1ZVByb3BlcnR5LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY2xhc3MgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRl
YXJPZmY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBjcmVhdGUoU1ZHTGVnYWN5QW5pbWF0ZWRQcm9w
ZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJvcGVydHlSb2xlIHJvbGUsIFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZSYgdmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVl
KSk7Ci0gICAgfQorY2xhc3MgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyA6IHB1YmxpYyBTVkdWYWx1
ZVByb3BlcnR5PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4geworICAgIHVzaW5nIEJhc2Ug
PSBTVkdWYWx1ZVByb3BlcnR5PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT47CisgICAgdXNp
bmcgQmFzZTo6QmFzZTsKKyAgICB1c2luZyBCYXNlOjptX3ZhbHVlOwogCi0gICAgc3RhdGljIFJl
ZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBjcmVhdGUoY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RS
YXRpb1ZhbHVlJiBpbml0aWFsVmFsdWUgPSB7IH0pCitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIsIFNW
R1Byb3BlcnR5QWNjZXNzIGFjY2VzcywgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
JiB2YWx1ZSA9IHsgfSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW8oaW5pdGlhbFZhbHVlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8ob3duZXIsIGFjY2VzcywgdmFsdWUpKTsKICAg
ICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8+PiBjcmVhdGUoRXhjZXB0aW9uT3I8VD4mJiBpbml0aWFsVmFs
dWUpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVm
PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+PiBjcmVhdGUoRXhjZXB0aW9uT3I8VD4mJiB2YWx1ZSkK
ICAgICB7Ci0gICAgICAgIGlmIChpbml0aWFsVmFsdWUuaGFzRXhjZXB0aW9uKCkpCi0gICAgICAg
ICAgICByZXR1cm4gaW5pdGlhbFZhbHVlLnJlbGVhc2VFeGNlcHRpb24oKTsKLSAgICAgICAgcmV0
dXJuIGNyZWF0ZShpbml0aWFsVmFsdWUucmVsZWFzZVJldHVyblZhbHVlKCkpOworICAgICAgICBp
ZiAodmFsdWUuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gdmFsdWUucmVsZWFz
ZUV4Y2VwdGlvbigpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvKHZhbHVlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpKSk7CiAgICAgfQogCi0gICAgdW5z
aWduZWQgc2hvcnQgYWxpZ24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJl
bmNlKCkuYWxpZ24oKTsKLSAgICB9CisgICAgdW5zaWduZWQgc2hvcnQgYWxpZ24oKSBjb25zdCB7
IHJldHVybiBtX3ZhbHVlLmFsaWduKCk7IH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEFs
aWduKGZsb2F0IHZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9Owog
Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVydHlSZWZlcmVuY2UoKS5zZXRBbGlnbih2YWx1
ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gbV92YWx1ZS5zZXRBbGlnbih2YWx1ZSk7CiAgICAg
ICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwogCkBAIC02NywxNyArNjQsMTQgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gcmVzdWx0Owog
ICAgIH0KIAotICAgIHVuc2lnbmVkIHNob3J0IG1lZXRPclNsaWNlKCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLm1lZXRPclNsaWNlKCk7Ci0gICAgfQorICAgIHVu
c2lnbmVkIHNob3J0IG1lZXRPclNsaWNlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS5tZWV0T3JT
bGljZSgpOyB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRNZWV0T3JTbGljZShmbG9hdCB2
YWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBh
dXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNlKCkuc2V0TWVldE9yU2xpY2UodmFsdWUpOwor
ICAgICAgICBhdXRvIHJlc3VsdCA9IG1fdmFsdWUuc2V0TWVldE9yU2xpY2UodmFsdWUpOwogICAg
ICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKIApAQCAtODUsMTUgKzc5LDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gcmVzdWx0Owog
ICAgIH0KIAotcHJpdmF0ZToKLSAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKFNWR0xlZ2FjeUFu
aW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHZhbHVlKQotICAgICAgICA6IFNWR1Byb3BlcnR5
VGVhck9mZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KCZhbmltYXRlZFByb3BlcnR5LCBy
b2xlLCB2YWx1ZSkKLSAgICB7Ci0gICAgfQotCi0gICAgZXhwbGljaXQgU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpbyhjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIGluaXRpYWxWYWx1ZSkK
LSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
Pihpbml0aWFsVmFsdWUpCisgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdCBvdmVycmlk
ZQogICAgIHsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWUudmFsdWVBc1N0cmluZygpOwogICAgIH0K
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCmluZGV4IGQzNjE1MjNkNjg0Li5lZDUy
ZDM2ZTllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCkBAIC0yMyw3ICsyMyw2IEBA
CiAKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGgu
aCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCIKICNpbmNsdWRl
ICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHRml0VG9WaWV3
Qm94LmgiCiAjaW5jbHVkZSAiU1ZHR3JhcGhpY3NFbGVtZW50LmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0
cmluZ0xpc3QuaAppbmRleCBlZDdlYTQ0OTY4NS4uZDFlMDEwNjliMTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1N0cmluZ0xpc3QuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiU1ZHUGFyc2Vy
VXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiU1ZHUHJpbWl0aXZlTGlzdC5oIgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAppbmRleCA4YWY0MmEzMDM4NS4uMDg3NmE0NDcxMmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaApAQCAtMjEsNyArMjEsNiBAQAog
CiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
by5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94LmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdWaWV3U3BlYy5oCmluZGV4IDg5YWUwODA2Mjc0Li5kMWEyMTczZmVmNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1ZpZXdTcGVjLmgKQEAgLTIwLDcgKzIwLDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNs
dWRlICJTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCIKICNpbmNsdWRlICJTVkdGaXRU
b1ZpZXdCb3guaCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgiCiAjaW5jbHVk
ZSAiU1ZHWm9vbUFuZFBhbi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFjY2Vzc29ySW1wbC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFjY2Vzc29ySW1wbC5oCmluZGV4IDQw
ZjQ2NDVhMDgwLi5kMDhlYjcwM2YwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFjY2Vzc29ySW1wbC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlBY2Nlc3NvckltcGwuaApA
QCAtNzYsNiArNzYsMjggQEAgcHJpdmF0ZToKICAgICB9CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBPd25lclR5cGU+CitjbGFzcyBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BY2Nlc3Nv
ciBmaW5hbCA6IHB1YmxpYyBTVkdBbmltYXRlZFByb3BlcnR5QWNjZXNzb3I8T3duZXJUeXBlLCBT
VkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8+IHsKKyAgICB1c2luZyBCYXNlID0gU1ZHQW5p
bWF0ZWRQcm9wZXJ0eUFjY2Vzc29yPE93bmVyVHlwZSwgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvPjsKKyAgICB1c2luZyBCYXNlOjpwcm9wZXJ0eTsKKworcHVibGljOgorICAgIHVzaW5n
IEJhc2U6OkJhc2U7CisgICAgdGVtcGxhdGU8UmVmPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpbz4gT3duZXJUeXBlOjoqcHJvcGVydHk+CisgICAgY29uc3RleHByIHN0YXRpYyBjb25zdCBT
VkdNZW1iZXJBY2Nlc3NvcjxPd25lclR5cGU+JiBzaW5nbGV0b24oKSB7IHJldHVybiBCYXNlOjp0
ZW1wbGF0ZSBzaW5nbGV0b248U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQWNjZXNzb3Is
IHByb3BlcnR5PigpOyB9CisKK3ByaXZhdGU6CisgICAgc3RkOjp1bmlxdWVfcHRyPFNWR0F0dHJp
YnV0ZUFuaW1hdG9yPiBjcmVhdGVBbmltYXRvcihPd25lclR5cGUmIG93bmVyLCBjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENh
bGNNb2RlIGNhbGNNb2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkgY29u
c3QgZmluYWwKKyAgICB7CisgICAgICAgIHJldHVybiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0
UmF0aW9BbmltYXRvcjo6Y3JlYXRlKGF0dHJpYnV0ZU5hbWUsIHByb3BlcnR5KG93bmVyKSwgYW5p
bWF0aW9uTW9kZSwgY2FsY01vZGUsIGlzQWNjdW11bGF0ZWQsIGlzQWRkaXRpdmUpOworICAgIH0K
KworICAgIHZvaWQgYXBwZW5kQW5pbWF0ZWRJbnN0YW5jZShPd25lclR5cGUmIG93bmVyLCBTVkdB
dHRyaWJ1dGVBbmltYXRvciYgYW5pbWF0b3IpIGNvbnN0IGZpbmFsCisgICAgeworICAgICAgICBz
dGF0aWNfY2FzdDxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvciY+KGFuaW1h
dG9yKS5hcHBlbmRBbmltYXRlZEluc3RhbmNlKHByb3BlcnR5KG93bmVyKSk7CisgICAgfQorfTsK
KwogdGVtcGxhdGU8dHlwZW5hbWUgT3duZXJUeXBlPgogY2xhc3MgU1ZHQW5pbWF0ZWRSZWN0QWNj
ZXNzb3IgZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFjY2Vzc29yPE93bmVyVHlw
ZSwgU1ZHQW5pbWF0ZWRSZWN0PiB7CiAgICAgdXNpbmcgQmFzZSA9IFNWR0FuaW1hdGVkUHJvcGVy
dHlBY2Nlc3NvcjxPd25lclR5cGUsIFNWR0FuaW1hdGVkUmVjdD47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3JJbXBs
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5QW5p
bWF0b3JJbXBsLmgKaW5kZXggZmM3OTQ1ODcyZWUuLjg0M2Y5MzJkMjFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3JJ
bXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eUFuaW1hdG9ySW1wbC5oCkBAIC03Myw3ICs3MywyNSBAQCBwcml2YXRlOgogICAgICAgICBt
X2Z1bmN0aW9uLnByb2dyZXNzKHRhcmdldEVsZW1lbnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50
LCBtX2FuaW1hdGVkLT5hbmltVmFsKCkpOwogICAgIH0KIH07Ci0gICAgCisKK2NsYXNzIFNWR0Fu
aW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yIGZpbmFsIDogcHVibGljIFNWR0FuaW1h
dGVkUHJvcGVydHlBbmltYXRvcjxTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8sIFNWR0Fu
aW1hdGlvblByZXNlcnZlQXNwZWN0UmF0aW9GdW5jdGlvbj4geworICAgIHVzaW5nIEJhc2UgPSBT
VkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3I8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
LCBTVkdBbmltYXRpb25QcmVzZXJ2ZUFzcGVjdFJhdGlvRnVuY3Rpb24+OworICAgIHVzaW5nIEJh
c2U6OkJhc2U7CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgUmVmPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
bz4mIGFuaW1hdGVkLCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2RlIGNhbGNN
b2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkKKyAgICB7CisgICAgICAg
IHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5p
bWF0b3I+KG5ldyBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcihhdHRyaWJ1
dGVOYW1lLCBhbmltYXRlZCwgYW5pbWF0aW9uTW9kZSwgY2FsY01vZGUsIGlzQWNjdW11bGF0ZWQs
IGlzQWRkaXRpdmUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBwcm9ncmVzcyhTVkdF
bGVtZW50KiB0YXJnZXRFbGVtZW50LCBmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRD
b3VudCkgZmluYWwKKyAgICB7CisgICAgICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYg
YW5pbWF0ZWQgPSBtX2FuaW1hdGVkLT5hbmltVmFsKCktPnZhbHVlKCk7CisgICAgICAgIG1fZnVu
Y3Rpb24ucHJvZ3Jlc3ModGFyZ2V0RWxlbWVudCwgcGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGFu
aW1hdGVkKTsKKyAgICB9Cit9OworCiBjbGFzcyBTVkdBbmltYXRlZFJlY3RBbmltYXRvciBmaW5h
bCA6IHB1YmxpYyBTVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3I8U1ZHQW5pbWF0ZWRSZWN0LCBT
VkdBbmltYXRpb25SZWN0RnVuY3Rpb24+IHsKICAgICB1c2luZyBCYXNlID0gU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eUFuaW1hdG9yPFNWR0FuaW1hdGVkUmVjdCwgU1ZHQW5pbWF0aW9uUmVjdEZ1bmN0aW9u
PjsKICAgICB1c2luZyBCYXNlOjpCYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlJbXBsLmgKaW5kZXggYWY1ZjE2MWY0MjIu
LjJhMGMzMmViYTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFByb3BlcnR5SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlJbXBsLmgKQEAgLTMyLDExICszMiwxMSBAQAogI2luY2x1
ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXJMaXN0
LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQb2ludExpc3QuaCIKLSNpbmNsdWRlICJTVkdBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFByaW1pdGl2
ZVByb3BlcnR5LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJT
VkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFZhbHVlUHJv
cGVydHkuaCIKKyNpbmNsdWRlICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgiCiAjaW5jbHVkZSAi
U1ZHUmVjdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NSw1ICs0NSw2IEBAIHVzaW5n
IFNWR0FuaW1hdGVkQm9vbGVhbiA9IFNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHk8Ym9vbD47
CiB1c2luZyBTVkdBbmltYXRlZEludGVnZXIgPSBTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5
PGludD47CiAKIHVzaW5nIFNWR0FuaW1hdGVkUmVjdCA9IFNWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0
eTxTVkdSZWN0PjsKK3VzaW5nIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyA9IFNWR0Fu
aW1hdGVkVmFsdWVQcm9wZXJ0eTxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPjsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uRGlzY3JldGVG
dW5jdGlvbkltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGlv
bkRpc2NyZXRlRnVuY3Rpb25JbXBsLmgKaW5kZXggYTY2MjkwZmRhNWIuLjI3NTVjMzk5NTNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRpb25EaXNj
cmV0ZUZ1bmN0aW9uSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGlvbkRpc2NyZXRlRnVuY3Rpb25JbXBsLmgKQEAgLTQyLDQgKzQyLDI4IEBAIHB1Ymxp
YzoKICAgICB9CiB9OwogCitjbGFzcyBTVkdBbmltYXRpb25QcmVzZXJ2ZUFzcGVjdFJhdGlvRnVu
Y3Rpb24gOiBwdWJsaWMgU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbjxTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvVmFsdWU+IHsKK3B1YmxpYzoKKyAgICB1c2luZyBCYXNlID0gU1ZHQW5pbWF0aW9u
RGlzY3JldGVGdW5jdGlvbjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+OworICAgIHVzaW5n
IEJhc2U6OkJhc2U7CisgICAgCisgICAgdm9pZCBzZXRGcm9tQW5kVG9WYWx1ZXMoU1ZHRWxlbWVu
dCosIGNvbnN0IFN0cmluZyYgZnJvbSwgY29uc3QgU3RyaW5nJiB0bykgb3ZlcnJpZGUKKyAgICB7
CisgICAgICAgIG1fZnJvbSA9IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZShmcm9tKTsKKyAg
ICAgICAgbV90byA9IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSh0byk7CisgICAgfQorfTsK
KworY2xhc3MgU1ZHQW5pbWF0aW9uU3RyaW5nRnVuY3Rpb24gOiBwdWJsaWMgU1ZHQW5pbWF0aW9u
RGlzY3JldGVGdW5jdGlvbjxTdHJpbmc+IHsKK3B1YmxpYzoKKyAgICB1c2luZyBCYXNlID0gU1ZH
QW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbjxTdHJpbmc+OworICAgIHVzaW5nIEJhc2U6OkJhc2U7
CisgICAgCisgICAgdm9pZCBzZXRGcm9tQW5kVG9WYWx1ZXMoU1ZHRWxlbWVudCosIGNvbnN0IFN0
cmluZyYgZnJvbSwgY29uc3QgU3RyaW5nJiB0bykgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1f
ZnJvbSA9IGZyb207CisgICAgICAgIG1fdG8gPSB0bzsKKyAgICB9Cit9OworCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVSZWdpc3RyeS5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0cmlidXRlUmVnaXN0cnkuaApp
bmRleCBkOGMzYTczNmU1ZC4uN2Y1ODY3YTBmY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZVJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0cmlidXRlUmVnaXN0cnkuaApAQCAtMzEsNyArMzEsNiBA
QAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRO
dW1iZXJMaXN0LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQb2ludExpc3QuaCIKLSNpbmNsdWRl
ICJTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCIKICNpbmNsdWRlICJTVkdBbmltYXRl
ZFN0cmluZy5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIgogI2luY2x1
ZGUgIlNWR0F0dHJpYnV0ZUFjY2Vzc29yLmgiCkBAIC0xMDEsMTIgKzEwMCw2IEBAIHB1YmxpYzoK
ICAgICAgICAgcmVnaXN0ZXJBdHRyaWJ1dGUoU1ZHQW5pbWF0ZWRQb2ludExpc3RBdHRyaWJ1dGVB
Y2Nlc3NvcjxPd25lclR5cGU+Ojp0ZW1wbGF0ZSBzaW5nbGV0b248YXR0cmlidXRlTmFtZSwgYXR0
cmlidXRlPigpKTsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTxjb25zdCBMYXp5TmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgUXVhbGlmaWVkTmFtZT4mIGF0dHJpYnV0ZU5hbWUsIFNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpb0F0dHJpYnV0ZSBPd25lclR5cGU6OiphdHRyaWJ1dGU+Ci0gICAgdm9pZCBy
ZWdpc3RlckF0dHJpYnV0ZSgpCi0gICAgewotICAgICAgICByZWdpc3RlckF0dHJpYnV0ZShTVkdB
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BdHRyaWJ1dGVBY2Nlc3NvcjxPd25lclR5cGU+Ojp0
ZW1wbGF0ZSBzaW5nbGV0b248YXR0cmlidXRlTmFtZSwgYXR0cmlidXRlPigpKTsKLSAgICB9Ci0K
ICAgICB0ZW1wbGF0ZTxjb25zdCBMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgUXVhbGlmaWVkTmFt
ZT4mIGF0dHJpYnV0ZU5hbWUsIFNWR0FuaW1hdGVkU3RyaW5nQXR0cmlidXRlIE93bmVyVHlwZTo6
KmF0dHJpYnV0ZT4KICAgICB2b2lkIHJlZ2lzdGVyQXR0cmlidXRlKCkKICAgICB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyUmVnaXN0
cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXJSZWdp
c3RyeS5oCmluZGV4IDg0YjQ5MjUyM2E5Li42OGE1ZTlkMGRmNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5LmgK
QEAgLTU1LDE2ICs1NSwyMiBAQCBwdWJsaWM6CiAgICAgICAgIHJlZ2lzdGVyUHJvcGVydHkoYXR0
cmlidXRlTmFtZSwgU1ZHQW5pbWF0ZWRCb29sZWFuQWNjZXNzb3I8T3duZXJUeXBlPjo6dGVtcGxh
dGUgc2luZ2xldG9uPHByb3BlcnR5PigpKTsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTxjb25zdCBM
YXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgUXVhbGlmaWVkTmFtZT4mIGF0dHJpYnV0ZU5hbWUsIFJl
ZjxTVkdBbmltYXRlZFJlY3Q+IE93bmVyVHlwZTo6KnByb3BlcnR5PgorICAgIHRlbXBsYXRlPGNv
bnN0IExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBRdWFsaWZpZWROYW1lPiYgYXR0cmlidXRlTmFt
ZSwgUmVmPFNWR0FuaW1hdGVkSW50ZWdlcj4gT3duZXJUeXBlOjoqcHJvcGVydHk+CiAgICAgc3Rh
dGljIHZvaWQgcmVnaXN0ZXJQcm9wZXJ0eSgpCiAgICAgewotICAgICAgICByZWdpc3RlclByb3Bl
cnR5KGF0dHJpYnV0ZU5hbWUsIFNWR0FuaW1hdGVkUmVjdEFjY2Vzc29yPE93bmVyVHlwZT46OnRl
bXBsYXRlIHNpbmdsZXRvbjxwcm9wZXJ0eT4oKSk7CisgICAgICAgIHJlZ2lzdGVyUHJvcGVydHko
YXR0cmlidXRlTmFtZSwgU1ZHQW5pbWF0ZWRJbnRlZ2VyQWNjZXNzb3I8T3duZXJUeXBlPjo6dGVt
cGxhdGUgc2luZ2xldG9uPHByb3BlcnR5PigpKTsKKyAgICB9CisgICAgCisgICAgdGVtcGxhdGU8
Y29uc3QgTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IFF1YWxpZmllZE5hbWU+JiBhdHRyaWJ1dGVO
YW1lLCBSZWY8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBPd25lclR5cGU6Oipwcm9w
ZXJ0eT4KKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlclByb3BlcnR5KCkKKyAgICB7CisgICAgICAg
IHJlZ2lzdGVyUHJvcGVydHkoYXR0cmlidXRlTmFtZSwgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvQWNjZXNzb3I8T3duZXJUeXBlPjo6dGVtcGxhdGUgc2luZ2xldG9uPHByb3BlcnR5Pigp
KTsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTxjb25zdCBMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
UXVhbGlmaWVkTmFtZT4mIGF0dHJpYnV0ZU5hbWUsIFJlZjxTVkdBbmltYXRlZEludGVnZXI+IE93
bmVyVHlwZTo6KnByb3BlcnR5PgorICAgIHRlbXBsYXRlPGNvbnN0IExhenlOZXZlckRlc3Ryb3ll
ZDxjb25zdCBRdWFsaWZpZWROYW1lPiYgYXR0cmlidXRlTmFtZSwgUmVmPFNWR0FuaW1hdGVkUmVj
dD4gT3duZXJUeXBlOjoqcHJvcGVydHk+CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJQcm9wZXJ0
eSgpCiAgICAgewotICAgICAgICByZWdpc3RlclByb3BlcnR5KGF0dHJpYnV0ZU5hbWUsIFNWR0Fu
aW1hdGVkSW50ZWdlckFjY2Vzc29yPE93bmVyVHlwZT46OnRlbXBsYXRlIHNpbmdsZXRvbjxwcm9w
ZXJ0eT4oKSk7CisgICAgICAgIHJlZ2lzdGVyUHJvcGVydHkoYXR0cmlidXRlTmFtZSwgU1ZHQW5p
bWF0ZWRSZWN0QWNjZXNzb3I8T3duZXJUeXBlPjo6dGVtcGxhdGUgc2luZ2xldG9uPHByb3BlcnR5
PigpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxjb25zdCBMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgUXVhbGlmaWVkTmFtZT4mIGF0dHJpYnV0ZU5hbWUsIFJlZjxTVkdBbmltYXRlZEludGVnZXI+
IE93bmVyVHlwZTo6KnByb3BlcnR5MSwgUmVmPFNWR0FuaW1hdGVkSW50ZWdlcj4gT3duZXJUeXBl
OjoqcHJvcGVydHkyPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365279</attachid>
            <date>2019-03-19 18:22:45 -0700</date>
            <delta_ts>2019-03-19 18:49:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195960-20190319182244.patch</filename>
            <type>text/plain</type>
            <size>71805</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MzE4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0NSBAQAorMjAxOS0wMy0xOSAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSB0
aGUgU1ZHIHByb3BlcnR5IHRlYXIgb2ZmIG9iamVjdHMgb2YgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTU5NjAKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAg
LS0gRGVmaW5lIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyB0byBiZSBTVkdBbmltYXRl
ZFZhbHVlUHJvcGVydHk8CisgICAgICAgICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+LgorCisg
ICAgICAgIC0tIE1ha2UgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyBiZSBkZXJpdmVkIGZvcm0gU1ZH
VmFsdWVQcm9wZXJ0eTwKKyAgICAgICAgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPi4K
KworICAgICAgICAtLSBBZGQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQWNjZXNzb3Ig
dG8gYWNjZXNzIHRoZSBhbmltYXRlZCAKKyAgICAgICAgICAgcHJvcGVydHkuCisKKyAgICAgICAg
LS0gQWRkIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yIHRvIGFuaW1hdGUg
dGhlIGFuaW1hdGVkCisgICAgICAgICAgIHByb3BlcnR5IG9mIHRoZSB0YXJnZXQgZWxlbWVudCBh
bmQgYWxsIGl0cyBpbnN0YW5jZXMuCisKKyAgICAgICAgLS0gQWRkIFNWR0FuaW1hdGlvblByZXNl
cnZlQXNwZWN0UmF0aW9GdW5jdGlvbiB0byBwcm9ncmVzcyBhbmltVmFsIG9mCisgICAgICAgICAg
IGFuaW1hdGVkIHByb3BlcnR5IGluIGEgcGVyaW9kIG9mIHRpbWUuCisKKyAgICAgICAgU1ZHRmls
dGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpidWlsZCgpIHNob3VsZCBiZSBjb25zdCBm
dW5jdGlvbi4KKyAgICAgICAgVGhpcyBpcyByZXF1aXJlZCBmb3IgdGhpcyBwYXRjaCBiZWNhdXNl
IFNWR0ZFSW1hZ2VFbGVtZW50OjpidWlsZCgpIGNhbGxzCisgICAgICAgIFNWR0ZFSW1hZ2VFbGVt
ZW50OjpwcmVzZXJ2ZUFzcGVjdFJhdGlvKCkgd2hpY2ggaXMgY29uc3QuCisKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHA6IFJlbW92
ZWQuCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oOiBSZW1v
dmVkLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRvckZhY3RvcnkuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdG9yRmFjdG9yeTo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVCbGVu
ZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVCbGVuZEVsZW1lbnQ6OmJ1aWxk
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQmxlbmRFbGVtZW50OjpidWlsZCk6IERl
bGV0ZWQuCisgICAgICAgICogc3ZnL1NWR0ZFQmxlbmRFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29s
b3JNYXRyaXhFbGVtZW50OjpidWlsZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNv
bG9yTWF0cml4RWxlbWVudDo6YnVpbGQpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdGRUNv
bG9yTWF0cml4RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVy
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxl
bWVudDo6YnVpbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb21wb25lbnRUcmFu
c2ZlckVsZW1lbnQ6OmJ1aWxkKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVDb21wb25l
bnRUcmFuc2ZlckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6YnVpbGQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb21wb3NpdGVFbGVtZW50OjpidWlsZCk6IERl
bGV0ZWQuCisgICAgICAgICogc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5oOgorICAgICAgICAq
IHN2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6YnVpbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmJ1aWxkKTogRGVsZXRlZC4KKyAgICAgICAg
KiBzdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVE
aWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRGlmZnVz
ZUxpZ2h0aW5nRWxlbWVudDo6YnVpbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVE
aWZmdXNlTGlnaHRpbmdFbGVtZW50OjpidWlsZCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NW
R0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRURpc3BsYWNl
bWVudE1hcEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEaXNwbGFjZW1lbnRN
YXBFbGVtZW50OjpidWlsZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURpc3BsYWNl
bWVudE1hcEVsZW1lbnQ6OmJ1aWxkKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVEaXNw
bGFjZW1lbnRNYXBFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6YnVpbGQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6YnVpbGQp
OiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50Lmg6CisgICAg
ICAgICogc3ZnL1NWR0ZFRmxvb2RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZF
Rmxvb2RFbGVtZW50OjpidWlsZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUZsb29k
RWxlbWVudDo6YnVpbGQpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdGRUZsb29kRWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpidWlsZCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OmJ1aWxkKTogRGVsZXRlZC4K
KyAgICAgICAgKiBzdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR0ZFSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVt
ZW50OjpTVkdGRUltYWdlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUltYWdlRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVJbWFnZUVsZW1l
bnQ6OmJ1aWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50Ojpy
ZWdpc3RlckF0dHJpYnV0ZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVJbWFn
ZUVsZW1lbnQ6OmJ1aWxkKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVJbWFnZUVsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVNZXJnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRkVNZXJnZUVsZW1lbnQ6OmJ1aWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZFTWVyZ2VFbGVtZW50OjpidWlsZCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR0ZF
TWVyZ2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6YnVpbGQgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6YnVpbGQpOiBEZWxl
dGVkLgorICAgICAgICAqIHN2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU9mZnNl
dEVsZW1lbnQ6OmJ1aWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFT2Zmc2V0RWxl
bWVudDo6YnVpbGQpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdGRU9mZnNldEVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpidWlsZCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpidWlsZCk6
IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdGRVRpbGVFbGVtZW50OjpidWlsZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVRp
bGVFbGVtZW50OjpidWlsZCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR0ZFVGlsZUVsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpidWlsZCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpidWlsZCk6IERlbGV0ZWQuCisgICAg
ICAgICogc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRmls
dGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmg6CisgICAgICAgICogc3ZnL1NWR0ZpdFRv
Vmlld0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaXRUb1ZpZXdCb3g6OlNWR0ZpdFRv
Vmlld0JveCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlVmlld0Jv
eCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaXRUb1ZpZXdCb3g6OnJlZ2lzdGVyQXR0cmlidXRl
cyk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR0ZpdFRvVmlld0JveC5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHRml0VG9WaWV3Qm94OjpwcmVzZXJ2ZUFzcGVjdFJhdGlvIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZpdFRvVmlld0JveDo6cHJlc2VydmVBc3BlY3RSYXRpb0FuaW1h
dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpdFRvVmlld0JveDo6c2V0UHJlc2VydmVBc3Bl
Y3RSYXRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaXRUb1ZpZXdCb3g6OnJlc2V0UHJlc2Vy
dmVBc3BlY3RSYXRpbyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaXRUb1ZpZXdCb3g6OnByZXNl
cnZlQXNwZWN0UmF0aW9TdHJpbmcgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVtZW50OjpTVkdJbWFnZUVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVtZW50OjpyZWdpc3RlckF0dHJpYnV0
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6
CisgICAgICAgICogc3ZnL1NWR0ltYWdlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXJr
ZXJFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1By
ZXNlcnZlQXNwZWN0UmF0aW86OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvOjphbGlnbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvOjpzZXRBbGlnbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvOjptZWV0T3JTbGljZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvOjpzZXRNZWV0T3JTbGljZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvOjphbGlnbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjptZWV0T3JTbGljZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKTog
RGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9T
VkdTdHJpbmdMaXN0Lmg6CisgICAgICAgICogc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBzdmcvU1ZHVmlld1NwZWMuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZFByb3BlcnR5QWNjZXNzb3JJbXBsLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkUHJvcGVydHlJbXBsLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbkltcGwuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGll
cy9TVkdBdHRyaWJ1dGVSZWdpc3RyeS5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1By
b3BlcnR5T3duZXJSZWdpc3RyeS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlPd25l
clJlZ2lzdHJ5OjpyZWdpc3RlclByb3BlcnR5KToKKwogMjAxOS0wMy0xOSAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB0aGUgU1ZH
IHByb3BlcnR5IHRlYXIgb2ZmIG9iamVjdHMgb2YgU1ZHQW5pbWF0ZWRSZWN0CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAkocmV2aXNpb24gMjQzMTgzKQorKysgU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTIyNzksNyArMjI3OSw2IEBAIHN2Zy9TVkdBbmltYXRlZE51bWJl
ckxpc3QuY3BwCiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHAKIHN2Zy9T
VkdBbmltYXRlZFBhdGguY3BwCiBzdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwCi1zdmcvU1ZH
QW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAogc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmNw
cAogc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAKIHN2Zy9TVkdBbmltYXRlZFR5cGVB
bmltYXRvci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI0MzE4MykKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjkzLDcg
KzI5Myw2IEBACiAJCTA4RjJGMDBBMTIxM0U2MTcwMERDRUM0OCAvKiBSZW5kZXJJbWFnZVJlc291
cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwOEYy
RjAwODEyMTNFNjE3MDBEQ0VDNDggLyogUmVuZGVySW1hZ2VSZXNvdXJjZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA4Rjg1OUQ1MTQ2M0Y5Q0Qw
MDY3RDkzMyAvKiBTVkdJbWFnZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwOEY4NTlEMzE0NjNGOUNEMDA2N0Q5MzMgLyogU1ZHSW1hZ2VDYWNo
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA4
Rjg1OUQ1MTQ2M0Y5Q0QwMDY3RDkzNCAvKiBTVkdJbWFnZUZvckNvbnRhaW5lci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDhGODU5RDMxNDYzRjlDRDAw
NjdEOTM0IC8qIFNWR0ltYWdlRm9yQ29udGFpbmVyLmggKi87IH07Ci0JCTA4RkUwQkM1MTI3RTJB
QzEwMDBDNEZCNSAvKiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4RkUwQkM0MTI3RTJBQzEwMDBD
NEZCNSAvKiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCAqLzsgfTsKIAkJMEFGREFD
M0QxMEY1NDQ4QzAwRTFGM0QyIC8qIFBsdWdpblZpZXdCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQUZEQUMzQzEwRjU0NDhDMDBFMUYzRDIgLyog
UGx1Z2luVmlld0Jhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkwQjkwNTYxQTBGMjU3OEJGMDA5NUZGNkEgLyogRG9jdW1lbnRUaHJlYWRhYmxl
TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
QjkwNTYxNjBGMjU3OEJFMDA5NUZGNkEgLyogRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJMEI5MDU2MUIwRjI1NzhCRjAw
OTVGRjZBIC8qIFRocmVhZGFibGVMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBCOTA1NjE3MEYyNTc4QkUwMDk1RkY2QSAvKiBUaHJlYWRhYmxl
TG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTU2NzgsNyArNTY3Nyw2IEBACiAJCTA4Rjg1OUQyMTQ2M0Y5Q0QwMDY3RDkzNCAvKiBTVkdJ
bWFnZUZvckNvbnRhaW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTVkdJbWFnZUZvckNvbnRhaW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA4Rjg1OUQzMTQ2M0Y5Q0QwMDY3RDkzMyAvKiBTVkdJbWFnZUNhY2hlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0ltYWdlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDhGODU5RDMxNDYzRjlDRDAwNjdEOTM0IC8qIFNWR0ltYWdlRm9yQ29udGFp
bmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0ltYWdlRm9yQ29udGFp
bmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA4RkUwQkM0MTI3RTJBQzEwMDBD
NEZCNSAvKiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBBRkRBQzNDMTBGNTQ0OEMwMEUxRjNEMiAvKiBQbHVn
aW5WaWV3QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbHVnaW5WaWV3
QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwQjhDNTZEMzBGMjg2MjdGMDAw
NTAyRTEgLyogSFRUUEhlYWRlck1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBIVFRQSGVhZGVyTWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEI5MDU2MTUwRjI1NzhCRTAwOTVGRjZBIC8qIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudFRocmVhZGFibGVM
b2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzU3OCw3ICs3NTc2LDYg
QEAKIAkJNDMxQTJGOUExM0I2RjJCMDAwNzc5MUU0IC8qIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9u
YWxOdW1iZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRO
dW1iZXJPcHRpb25hbE51bWJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzFB
MkY5QjEzQjZGMkIwMDA3NzkxRTQgLyogU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZE51bWJl
ck9wdGlvbmFsTnVtYmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDMxQTJG
RDYxM0I3NzA3QTAwNzc5MUU0IC8qIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZExlbmd0aExpc3QuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MzFBMzAyMDEzQjg5RENDMDA3NzkxRTQgLyog
U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzMkQzRkU3MThBODY1ODQwMEQ3REMwMyAvKiBTZWxl
Y3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNlbGVjdG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDMzMUFDNzcxM0I2ODcwMDAwQTlFNUFFIC8qIFNWR0FuaW1hdGVkTnVtYmVyTGlz
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZE51
bWJlckxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzU4RTg3QTEzNjBB
MkVFMDBFNDc0OEMgLyogSlNTVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDE0Nyw4ICsyNDE0NCw2IEBACiAJCQkJMDg2
Mzk1MTQxM0I1RkU1NzAwQkIzNDREIC8qIFNWR0FuaW1hdGVkUGF0aC5oICovLAogCQkJCTQzQjkz
MzY4MTNCMjYxQjEwMDQ1ODRCRiAvKiBTVkdBbmltYXRlZFBvaW50TGlzdC5jcHAgKi8sCiAJCQkJ
NDNCOTMzNjcxM0IyNjFCMTAwNDU4NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRMaXN0LmggKi8sCi0J
CQkJNDMxQTMwMjAxM0I4OURDQzAwNzc5MUU0IC8qIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpby5jcHAgKi8sCi0JCQkJMDhGRTBCQzQxMjdFMkFDMTAwMEM0RkI1IC8qIFNWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpby5oICovLAogCQkJCUIyMjI3N0Y0MEQwMEJGMUYwMDcxQjc4MiAv
KiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaWRsICovLAogCQkJCUIyMjI3N0Y1MEQw
MEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFJlY3QuaWRsICovLAogCQkJCTQzQTYyNjY2MTNC
M0QxMTAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZFN0cmluZy5jcHAgKi8sCkBAIC0zMTkyOCw3ICsz
MTkyMyw2IEBACiAJCQkJMDg2Mzk1MTYxM0I1RkU1NzAwQkIzNDREIC8qIFNWR0FuaW1hdGVkUGF0
aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg5QThFMDcxMjhEOEIzRDAwRTdBNTM0IC8qIFNWR0Fu
aW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCBpbiBIZWFkZXJzICovLAogCQkJCTQz
QjkzMzY5MTNCMjYxQjEwMDQ1ODRCRiAvKiBTVkdBbmltYXRlZFBvaW50TGlzdC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMDhGRTBCQzUxMjdFMkFDMTAwMEM0RkI1IC8qIFNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4QTBFMDYxMjZFRjFEQjAwOTc4
RjdBIC8qIFNWR0FuaW1hdGVkUHJvcGVydHlEZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDg4QTBFMDgxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2Zm
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NUZBN0ZGRjIxMTEwRTZFMDA1QUVGRTcgLyogU1ZHQW5p
bWF0ZWRQcm9wZXJ0eVR5cGUuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAJKHJldmlz
aW9uIDI0MzE4MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW8uY3BwCShub25leGlzdGVudCkKQEAgLTEsODUgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVB
c3BlY3RSYXRpby5oIgotCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmgiCi0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0
b3I6OlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yKFNWR0FuaW1hdGlvbkVs
ZW1lbnQqIGFuaW1hdGlvbkVsZW1lbnQsIFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KQotICAg
IDogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IoQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBh
bmltYXRpb25FbGVtZW50LCBjb250ZXh0RWxlbWVudCkKLXsKLX0KLQotc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6
OmNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCi17Ci0gICAgcmV0dXJu
IFNWR0FuaW1hdGVkVHlwZTo6Y3JlYXRlKFNWR1Byb3BlcnR5VHJhaXRzPFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9WYWx1ZT46OmZyb21TdHJpbmcoc3RyaW5nKSk7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9y
OjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlM
aXN0JiBhbmltYXRlZFR5cGVzKQotewotICAgIHJldHVybiBjb25zdHJ1Y3RGcm9tQmFzZVZhbHVl
PFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4oYW5pbWF0ZWRUeXBlcyk7Ci19Ci0KLXZv
aWQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OnN0b3BBbmltVmFsQW5p
bWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBl
cykKLXsKLSAgICBzdG9wQW5pbVZhbEFuaW1hdGlvbkZvclR5cGU8U1ZHQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvPihhbmltYXRlZFR5cGVzKTsKLX0KLQotdm9pZCBTVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBl
JiB0eXBlKQotewotICAgIHJlc2V0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW8+KGFuaW1hdGVkVHlwZXMsIHR5cGUpOwotfQotCi12b2lkIFNWR0FuaW1hdGVkUHJl
c2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVt
ZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCi17Ci0gICAgYW5pbVZhbFdp
bGxDaGFuZ2VGb3JUeXBlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4oYW5pbWF0ZWRU
eXBlcyk7Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6
OmFuaW1WYWxEaWRDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzKQotewotICAgIGFuaW1WYWxEaWRDaGFuZ2VGb3JUeXBlPFNWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpbz4oYW5pbWF0ZWRUeXBlcyk7Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5pbWF0
ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKikKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LX0KLQotdm9pZCBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6Y2FsY3Vs
YXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCwgU1ZHQW5pbWF0ZWRU
eXBlKiBmcm9tLCBTVkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmlt
YXRlZFR5cGUqIGFuaW1hdGVkKQotewotICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwot
ICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKLQotICAgIGNvbnN0IGF1dG8mIGZyb21QcmVz
ZXJ2ZUFzcGVjdFJhdGlvID0gKG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09
IEFuaW1hdGlvbk1vZGU6OlRvID8gYW5pbWF0ZWQgOiBmcm9tKS0+YXM8U1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb1ZhbHVlPigpOwotICAgIGNvbnN0IGF1dG8mIHRvUHJlc2VydmVBc3BlY3RSYXRpbyA9
IHRvLT5hczxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KCk7Ci0gICAgYXV0byYgYW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvID0gYW5pbWF0ZWQtPmFzPFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZT4oKTsKLQotICAgIG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0ZURpc2NyZXRlVHlw
ZTxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KHBlcmNlbnRhZ2UsIGZyb21QcmVzZXJ2ZUFz
cGVjdFJhdGlvLCB0b1ByZXNlcnZlQXNwZWN0UmF0aW8sIGFuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpbyk7Ci19Ci0KLWZsb2F0IFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9y
OjpjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQotewotICAg
IC8vIE5vIHBhY2VkIGFuaW1hdGlvbnMgZm9yIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uCi0gICAg
cmV0dXJuIC0xOwotfQotCi19CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6
IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZl
QXNwZWN0UmF0aW8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgJKHJldmlzaW9uIDI0MzE4MykKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaAkobm9uZXhpc3RlbnQpCkBA
IC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBM
aW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUg
IlNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUeXBl
QW5pbWF0b3IuaCIKLSNpbmNsdWRlICJTVkdBdHRyaWJ1dGVBY2Nlc3Nvci5oIgotI2luY2x1ZGUg
IlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFz
cyBTVkdBbmltYXRpb25FbGVtZW50OwotCi11c2luZyBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0
UmF0aW8gPSBTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
PjsKLXVzaW5nIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0F0dHJpYnV0ZSA9IFNWR0Fu
aW1hdGVkQXR0cmlidXRlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz47Ci0KLXRlbXBs
YXRlPHR5cGVuYW1lIE93bmVyVHlwZT4KLXVzaW5nIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpb0F0dHJpYnV0ZUFjY2Vzc29yID0gU1ZHQW5pbWF0ZWRBdHRyaWJ1dGVBY2Nlc3NvcjxPd25l
clR5cGUsIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0F0dHJpYnV0ZSwgQW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvPjsKLQotY2xhc3MgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJh
dGlvQW5pbWF0b3IgZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IgewotcHVi
bGljOgotICAgIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yKFNWR0FuaW1h
dGlvbkVsZW1lbnQqLCBTVkdFbGVtZW50Kik7Ci0KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5p
bWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwot
ICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IHN0YXJ0QW5pbVZhbEFuaW1hdGlv
bihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKLSAgICB2
b2lkIHN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYsIFNWR0FuaW1hdGVkVHlwZSYpIG92ZXJyaWRl
OwotICAgIHZvaWQgYW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJv
cGVydHlMaXN0Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBhbmltVmFsRGlkQ2hhbmdlKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBhZGRB
bmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSopIG92ZXJyaWRl
OwotICAgIHZvaWQgY2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNp
Z25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZH
QW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKikgb3ZlcnJpZGU7Ci0gICAgZmxvYXQgY2Fs
Y3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRv
U3RyaW5nKSBvdmVycmlkZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKClByb3BlcnR5
IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0
UmF0aW8uaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwot
bmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRvckZhY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0b3JGYWN0b3J5LmgJKHJldmlzaW9uIDI0MzE4MykKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRvckZhY3RvcnkuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyAr
MjksNiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIuaCIKICNp
bmNsdWRlICJTVkdBbmltYXRlZFBhdGguaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFBvaW50TGlz
dC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIgogI2luY2x1
ZGUgIlNWR0FuaW1hdGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0LmgiCiAKQEAgLTcyLDcgKzcxLDcgQEAgcHVibGljOgogICAgICAgICBjYXNlIEFuaW1hdGVk
UG9pbnRzOgogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRQ
b2ludExpc3RBbmltYXRvcj4oYW5pbWF0aW9uRWxlbWVudCwgY29udGV4dEVsZW1lbnQpOwogICAg
ICAgICBjYXNlIEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbzoKLSAgICAgICAgICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9y
PihhbmltYXRpb25FbGVtZW50LCBjb250ZXh0RWxlbWVudCk7CisgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICAgICAgY2FzZSBBbmltYXRlZFJlY3Q6CiAgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICAgICAgY2FzZSBBbmltYXRlZFN0cmluZzoKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcAkocmV2aXNpb24gMjQzMTgzKQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA0
LDcgKzEwNCw3IEBAIHZvaWQgU1ZHRkVCbGVuZEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW4KICAg
ICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoYXR0ck5hbWUpOwogfQogCi1SZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUJsZW5kRWxlbWVu
dDo6YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciogZmlsdGVyQnVpbGRlciwgRmlsdGVyJiBmaWx0ZXIp
CitSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUJsZW5kRWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVy
QnVpbGRlciogZmlsdGVyQnVpbGRlciwgRmlsdGVyJiBmaWx0ZXIpIGNvbnN0CiB7CiAgICAgYXV0
byBpbnB1dDEgPSBmaWx0ZXJCdWlsZGVyLT5nZXRFZmZlY3RCeUlkKGluMSgpKTsKICAgICBhdXRv
IGlucHV0MiA9IGZpbHRlckJ1aWxkZXItPmdldEVmZmVjdEJ5SWQoaW4yKCkpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmgJKHJldmlzaW9uIDI0MzE4MykKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03
Myw3ICs3Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdB
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAotICAgIFJl
ZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBvdmVy
cmlkZTsKKyAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwg
RmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1
dGUoRmlsdGVyRWZmZWN0KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpIG92ZXJyaWRl
OwogCiAgICAgQXR0cmlidXRlT3duZXJQcm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhp
cyB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1l
bnQuY3BwCShyZXZpc2lvbiAyNDMxODMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xv
ck1hdHJpeEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9p
ZCBTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6c3ZnQXR0cmlidQogICAgIFNWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6c3ZnQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiB9
CiAKLVJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpidWlsZChT
VkdGaWx0ZXJCdWlsZGVyKiBmaWx0ZXJCdWlsZGVyLCBGaWx0ZXImIGZpbHRlcikKK1JlZlB0cjxG
aWx0ZXJFZmZlY3Q+IFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJCdWls
ZGVyKiBmaWx0ZXJCdWlsZGVyLCBGaWx0ZXImIGZpbHRlcikgY29uc3QKIHsKICAgICBhdXRvIGlu
cHV0MSA9IGZpbHRlckJ1aWxkZXItPmdldEVmZmVjdEJ5SWQoaW4xKCkpOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaAkocmV2aXNpb24gMjQz
MTgzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTk4LDcgKzk4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBz
ZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0KiwgY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIG92ZXJyaWRlOwotICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1
aWxkZXIqLCBGaWx0ZXImKSBvdmVycmlkZTsKKyAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWls
ZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBBdHRy
aWJ1dGVPd25lclByb3h5IG1fYXR0cmlidXRlT3duZXJQcm94eSB7ICp0aGlzIH07CiAgICAgUHJv
cGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwpJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3Bw
CShyZXZpc2lvbiAyNDMxODMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRU
cmFuc2ZlckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2Niw3IEBAIHZvaWQg
U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ6OnBhcnMKICAgICBTVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAot
UmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ6OmJ1aWxk
KFNWR0ZpbHRlckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKQorUmVmUHRy
PEZpbHRlckVmZmVjdD4gU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ6OmJ1aWxkKFNWR0Zp
bHRlckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKSBjb25zdAogewogICAg
IGF1dG8gaW5wdXQxID0gZmlsdGVyQnVpbGRlci0+Z2V0RWZmZWN0QnlJZChpbjEoKSk7CiAgICAg
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2Zl
ckVsZW1lbnQuaAkocmV2aXNpb24gMjQzMTgzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
Q29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcg
QEAgcHJpdmF0ZToKICAgICAvLyBGSVhNRTogc3ZnQXR0cmlidXRlQ2hhbmdlZCBtaXNzaW5nLgog
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21p
Y1N0cmluZyYpIG92ZXJyaWRlOwogCi0gICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZH
RmlsdGVyQnVpbGRlciosIEZpbHRlciYpIG92ZXJyaWRlOworICAgIFJlZlB0cjxGaWx0ZXJFZmZl
Y3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIAog
ICAgIEF0dHJpYnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsK
ICAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcAkocmV2aXNp
b24gMjQzMTgzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNSw3ICsxMzUsNyBAQCB2b2lkIFNWR0ZFQ29tcG9zaXRl
RWxlbWVudDo6c3ZnQXR0cmlidXRlCiAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzOjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKIH0KIAotUmVmUHRyPEZpbHRl
ckVmZmVjdD4gU1ZHRkVDb21wb3NpdGVFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiBm
aWx0ZXJCdWlsZGVyLCBGaWx0ZXImIGZpbHRlcikKK1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZF
Q29tcG9zaXRlRWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciogZmlsdGVyQnVpbGRlciwg
RmlsdGVyJiBmaWx0ZXIpIGNvbnN0CiB7CiAgICAgYXV0byBpbnB1dDEgPSBmaWx0ZXJCdWlsZGVy
LT5nZXRFZmZlY3RCeUlkKGluMSgpKTsKICAgICBhdXRvIGlucHV0MiA9IGZpbHRlckJ1aWxkZXIt
PmdldEVmZmVjdEJ5SWQoaW4yKCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29t
cG9zaXRlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNv
bXBvc2l0ZUVsZW1lbnQuaAkocmV2aXNpb24gMjQzMTgzKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC04NSw4ICs4NSw4IEBA
IGNsYXNzIFNWR0ZFQ29tcG9zaXRlRWxlbWVudCBmaW5hbCA6IHB1YmwKIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVmPFNWR0ZFQ29tcG9zaXRlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCYpOwogCi0gICAgU3RyaW5nIGluMSgpIHsgcmV0dXJuIG1faW4xLmN1cnJl
bnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9Ci0gICAgU3RyaW5nIGluMigpIHsgcmV0
dXJuIG1faW4yLmN1cnJlbnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CisgICAgU3Ry
aW5nIGluMSgpIGNvbnN0IHsgcmV0dXJuIG1faW4xLmN1cnJlbnRWYWx1ZShhdHRyaWJ1dGVPd25l
clByb3h5KCkpOyB9CisgICAgU3RyaW5nIGluMigpIGNvbnN0IHsgcmV0dXJuIG1faW4yLmN1cnJl
bnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CiAgICAgQ29tcG9zaXRlT3BlcmF0aW9u
VHlwZSBzdmdPcGVyYXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fc3ZnT3BlcmF0b3IuY3VycmVudFZh
bHVlKGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KICAgICBmbG9hdCBrMSgpIGNvbnN0IHsgcmV0
dXJuIG1fazEuY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KICAgICBmbG9h
dCBrMigpIGNvbnN0IHsgcmV0dXJuIG1fazIuY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93bmVyUHJv
eHkoKSk7IH0KQEAgLTEyMSw3ICsxMjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3ZnQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBib29sIHNl
dEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqLCBjb25zdCBRdWFsaWZpZWROYW1l
Jikgb3ZlcnJpZGU7Ci0gICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVp
bGRlciosIEZpbHRlciYpIG92ZXJyaWRlOworICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxk
KFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIAogICAgIEF0dHJp
YnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsKICAgICBQcm9w
ZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAJKHJldmlz
aW9uIDI0MzE4MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxNiw3ICsyMTYsNyBAQCB2b2lkIFNWR0ZFQ29u
dm9sdmVNYXRyaXhFbGVtZW50OjpzdmdBdHRyCiAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzOjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKIH0KIAotUmVmUHRy
PEZpbHRlckVmZmVjdD4gU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRl
ckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKQorUmVmUHRyPEZpbHRlckVm
ZmVjdD4gU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIq
IGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKSBjb25zdAogewogICAgIGF1dG8gaW5wdXQx
ID0gZmlsdGVyQnVpbGRlci0+Z2V0RWZmZWN0QnlJZChpbjEoKSk7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oCShyZXZpc2lvbiAy
NDMxODMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDcgKzExMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAg
IGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCosIGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBvdmVycmlkZTsKLSAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdG
aWx0ZXJCdWlsZGVyKiwgRmlsdGVyJikgb3ZlcnJpZGU7CisgICAgUmVmUHRyPEZpbHRlckVmZmVj
dD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYga2VybmVsVW5pdExlbmd0aFhJZGVudGlmaWVy
KCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYga2VybmVsVW5pdExlbmd0aFlJZGVu
dGlmaWVyKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNl
TGlnaHRpbmdFbGVtZW50LmNwcAkocmV2aXNpb24gMjQzMTgzKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3
MCw3ICsxNzAsNyBAQCB2b2lkIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6bGlnaHRFCiAg
ICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiB9CiAKLVJlZlB0cjxGaWx0
ZXJFZmZlY3Q+IFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVp
bGRlciogZmlsdGVyQnVpbGRlciwgRmlsdGVyJiBmaWx0ZXIpCitSZWZQdHI8RmlsdGVyRWZmZWN0
PiBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZp
bHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKSBjb25zdAogewogICAgIGF1dG8gaW5wdXQxID0g
ZmlsdGVyQnVpbGRlci0+Z2V0RWZmZWN0QnlJZChpbjEoKSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmgJKHJldmlzaW9uIDI0
MzE4MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBi
b29sIHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqLCBjb25zdCBRdWFsaWZp
ZWROYW1lJikgb3ZlcnJpZGU7Ci0gICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmls
dGVyQnVpbGRlciosIEZpbHRlciYpIG92ZXJyaWRlOworICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+
IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIAogICAg
IHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGtlcm5lbFVuaXRMZW5ndGhYSWRlbnRpZmllcigp
OwogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGtlcm5lbFVuaXRMZW5ndGhZSWRlbnRp
ZmllcigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2Vt
ZW50TWFwRWxlbWVudC5jcHAJKHJldmlzaW9uIDI0MzE4MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTks
NyArMTE5LDcgQEAgdm9pZCBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OnN2Z0F0dAogICAg
IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZChhdHRyTmFtZSk7CiB9CiAKLVJlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFRGlzcGxhY2VtZW50
TWFwRWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciogZmlsdGVyQnVpbGRlciwgRmlsdGVy
JiBmaWx0ZXIpCitSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1l
bnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVy
KSBjb25zdAogewogICAgIGF1dG8gaW5wdXQxID0gZmlsdGVyQnVpbGRlci0+Z2V0RWZmZWN0QnlJ
ZChpbjEoKSk7CiAgICAgYXV0byBpbnB1dDIgPSBmaWx0ZXJCdWlsZGVyLT5nZXRFZmZlY3RCeUlk
KGluMigpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1l
bnRNYXBFbGVtZW50LmgJKHJldmlzaW9uIDI0MzE4MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDcgKzEw
Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRl
KEZpbHRlckVmZmVjdCosIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKSBvdmVycmlkZTsK
LSAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVy
Jikgb3ZlcnJpZGU7CisgICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVp
bGRlciosIEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgQXR0cmlidXRlT3duZXJQcm94
eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9OwogICAgIFByb3BlcnR5UmVnaXN0cnkg
bV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAJKHJldmlzaW9uIDI0MzE4MykKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTE2LDcgKzExNiw3IEBAIHZvaWQgU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6c3ZnQXR0cmli
dXQKICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQoYXR0ck5hbWUpOwogfQogCi1SZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRURyb3BT
aGFkb3dFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiBmaWx0ZXJCdWlsZGVyLCBGaWx0
ZXImIGZpbHRlcikKK1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6
OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKSBj
b25zdAogewogICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpOwog
ICAgIGlmICghcmVuZGVyZXIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hh
ZG93RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BT
aGFkb3dFbGVtZW50LmgJKHJldmlzaW9uIDI0MzE4MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRURyb3BTaGFkb3dFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCi0gICAgUmVmUHRyPEZpbHRlckVm
ZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIG92ZXJyaWRlOworICAgIFJl
ZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBjb25z
dCBvdmVycmlkZTsKIAogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN0ZERldmlhdGlv
blhJZGVudGlmaWVyKCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3RkRGV2aWF0
aW9uWUlkZW50aWZpZXIoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZsb29kRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRmxvb2RFbGVt
ZW50LmNwcAkocmV2aXNpb24gMjQzMTgzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRmxv
b2RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBAQCBib29sIFNWR0ZF
Rmxvb2RFbGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RBCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1S
ZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUZsb29kRWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVp
bGRlciosIEZpbHRlciYgZmlsdGVyKQorUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVGbG9vZEVs
ZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImIGZpbHRlcikgY29uc3QKIHsK
ICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKTsKICAgICBpZiAo
IXJlbmRlcmVyKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50LmgJKHJl
dmlzaW9uIDI0MzE4MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZsb29kRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVGbG9v
ZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBib29sIHNl
dEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqLCBjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkgb3ZlcnJpZGU7Ci0gICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZH
RmlsdGVyQnVpbGRlciosIEZpbHRlciYpIG92ZXJyaWRlOworICAgIFJlZlB0cjxGaWx0ZXJFZmZl
Y3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCShyZXZpc2lvbiAyNDMxODMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpzdmdB
dHRyaWIKICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnN2Z0F0dHJp
YnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwogfQogCi1SZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUdh
dXNzaWFuQmx1ckVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIs
IEZpbHRlciYgZmlsdGVyKQorUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVHYXVzc2lhbkJsdXJF
bGVtZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiBmaWx0ZXJCdWlsZGVyLCBGaWx0ZXImIGZp
bHRlcikgY29uc3QKIHsKICAgICBhdXRvIGlucHV0MSA9IGZpbHRlckJ1aWxkZXItPmdldEVmZmVj
dEJ5SWQoaW4xKCkpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJs
dXJFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3Np
YW5CbHVyRWxlbWVudC5oCShyZXZpc2lvbiAyNDMxODMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCi0gICAgUmVmUHRyPEZpbHRl
ckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIG92ZXJyaWRlOworICAg
IFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBj
b25zdCBvdmVycmlkZTsKIAogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN0ZERldmlh
dGlvblhJZGVudGlmaWVyKCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3RkRGV2
aWF0aW9uWUlkZW50aWZpZXIoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdl
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VF
bGVtZW50LmNwcAkocmV2aXNpb24gMjQzMTgzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
SW1hZ2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsMTEgQEAgaW5saW5l
IFNWR0ZFSW1hZ2VFbGVtZW50OjpTVkdGRUltYWdlRWxlbQogICAgICwgU1ZHVVJJUmVmZXJlbmNl
KHRoaXMpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZlSW1hZ2VUYWcpKTsK
LSAgICByZWdpc3RlckF0dHJpYnV0ZXMoKTsKKworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBv
bmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10geworICAgICAgICBQcm9w
ZXJ0eVJlZ2lzdHJ5OjpyZWdpc3RlclByb3BlcnR5PFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJh
dGlvQXR0ciwgJlNWR0ZFSW1hZ2VFbGVtZW50OjptX3ByZXNlcnZlQXNwZWN0UmF0aW8+KCk7Cisg
ICAgfSk7CiB9CiAKIFJlZjxTVkdGRUltYWdlRWxlbWVudD4gU1ZHRkVJbWFnZUVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCkBA
IC0xMTEsMjAgKzExNSwxMiBAQCB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpidWlsZFBlbmRpbmdS
ZXNvCiAgICAgaW52YWxpZGF0ZSgpOwogfQogCi12b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpyZWdp
c3RlckF0dHJpYnV0ZXMoKQotewotICAgIGF1dG8mIHJlZ2lzdHJ5ID0gYXR0cmlidXRlUmVnaXN0
cnkoKTsKLSAgICBpZiAoIXJlZ2lzdHJ5LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotICAg
IHJlZ2lzdHJ5LnJlZ2lzdGVyQXR0cmlidXRlPFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlv
QXR0ciwgJlNWR0ZFSW1hZ2VFbGVtZW50OjptX3ByZXNlcnZlQXNwZWN0UmF0aW8+KCk7Ci19Ci0K
IHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAgaWYgKG5hbWUgPT0g
U1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRyKSB7CiAgICAgICAgIFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZSBwcmVzZXJ2ZUFzcGVjdFJhdGlvOwogICAgICAgICBwcmVzZXJ2ZUFz
cGVjdFJhdGlvLnBhcnNlKHZhbHVlKTsKLSAgICAgICAgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLnNl
dFZhbHVlKHByZXNlcnZlQXNwZWN0UmF0aW8pOworICAgICAgICBtX3ByZXNlcnZlQXNwZWN0UmF0
aW8tPnNldEJhc2VWYWxJbnRlcm5hbChwcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApAQCAtMTg1LDcgKzE4MSw3IEBAIHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6
Om5vdGlmeUZpbmlzaGVkKEMKICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFu
ZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKCpwYXJlbnRSZW5kZXJlcik7CiB9CiAKLVJlZlB0
cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFSW1hZ2VFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVy
KiwgRmlsdGVyJiBmaWx0ZXIpCitSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRUltYWdlRWxlbWVu
dDo6YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYgZmlsdGVyKSBjb25zdAogewogICAg
IGlmIChtX2NhY2hlZEltYWdlKQogICAgICAgICByZXR1cm4gRkVJbWFnZTo6Y3JlYXRlV2l0aElt
YWdlKGZpbHRlciwgbV9jYWNoZWRJbWFnZS0+aW1hZ2VGb3JSZW5kZXJlcihyZW5kZXJlcigpKSwg
cHJlc2VydmVBc3BlY3RSYXRpbygpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUlt
YWdlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdl
RWxlbWVudC5oCShyZXZpc2lvbiAyNDMxODMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJ
bWFnZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNiBAQAogCiAjaW5jbHVk
ZSAiQ2FjaGVkSW1hZ2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5o
IgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIgogI2luY2x1ZGUg
IlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaCIKICNpbmNsdWRlICJTVkdGRUltYWdlLmgi
CiAjaW5jbHVkZSAiU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgiCkBAIC00
MCwxNSArMzksMTMgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdp
bigpIGNvbnN0OwogCi0gICAgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVz
ZXJ2ZUFzcGVjdFJhdGlvKCkgY29uc3QgeyByZXR1cm4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLmN1
cnJlbnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9Ci0gICAgUmVmUHRyPFNWR0FuaW1h
dGVkUHJlc2VydmVBc3BlY3RSYXRpbz4gcHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdGVkKCkgeyBy
ZXR1cm4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLmFuaW1hdGVkUHJvcGVydHkoYXR0cmlidXRlT3du
ZXJQcm94eSgpKTsgfQorICAgIGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJl
c2VydmVBc3BlY3RSYXRpbygpIGNvbnN0IHsgcmV0dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpby0+
Y3VycmVudFZhbHVlKCk7IH0KKyAgICBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8mIHBy
ZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRlZCgpIHsgcmV0dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRp
bzsgfQogCiBwcml2YXRlOgogICAgIFNWR0ZFSW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCYpOwogCiAgICAgdXNpbmcgQXR0cmlidXRlT3duZXJQcm94eSA9IFNWR0F0
dHJpYnV0ZU93bmVyUHJveHlJbXBsPFNWR0ZFSW1hZ2VFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXMsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNWR1VS
SVJlZmVyZW5jZT47Ci0gICAgc3RhdGljIEF0dHJpYnV0ZU93bmVyUHJveHk6OkF0dHJpYnV0ZVJl
Z2lzdHJ5JiBhdHRyaWJ1dGVSZWdpc3RyeSgpIHsgcmV0dXJuIEF0dHJpYnV0ZU93bmVyUHJveHk6
OmF0dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0KLSAgICBzdGF0aWMgdm9pZCByZWdpc3RlckF0dHJpYnV0
ZXMoKTsKICAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclByb3h5JiBhdHRyaWJ1dGVPd25lclBy
b3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hdHRyaWJ1dGVPd25lclByb3h5OyB9CiAgICAg
CiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxT
VkdGRUltYWdlRWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLCBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdVUklSZWZlcmVuY2U+OwpAQCAtNjcsNyAr
NjQsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRGaW5pc2hJbnNlcnRpbmdOb2RlKCkgb3Zl
cnJpZGU7CiAKLSAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVy
KiwgRmlsdGVyJikgb3ZlcnJpZGU7CisgICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZH
RmlsdGVyQnVpbGRlciosIEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBjbGVh
clJlc291cmNlUmVmZXJlbmNlcygpOwogICAgIHZvaWQgcmVxdWVzdEltYWdlUmVzb3VyY2UoKTsK
QEAgLTc4LDcgKzc1LDcgQEAgcHJpdmF0ZToKIAogICAgIEF0dHJpYnV0ZU93bmVyUHJveHkgbV9h
dHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsKICAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJv
cGVydHlSZWdpc3RyeSB7ICp0aGlzIH07Ci0gICAgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJh
dGlvQXR0cmlidXRlIG1fcHJlc2VydmVBc3BlY3RSYXRpbzsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvPiBtX3ByZXNlcnZlQXNwZWN0UmF0aW8geyBTVkdBbmltYXRlZFBy
ZXNlcnZlQXNwZWN0UmF0aW86OmNyZWF0ZSh0aGlzKSB9OwogICAgIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZEltYWdlPiBtX2NhY2hlZEltYWdlOwogfTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAyNDMxODMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3
ICs0NCw3IEBAIFJlZjxTVkdGRU1lcmdlRWxlbWVudD4gU1ZHRkVNZXJnZUVsZW1lbnQKICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRU1lcmdlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkp
OwogfQogCi1SZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRU1lcmdlRWxlbWVudDo6YnVpbGQoU1ZH
RmlsdGVyQnVpbGRlciogZmlsdGVyQnVpbGRlciwgRmlsdGVyJiBmaWx0ZXIpCitSZWZQdHI8Rmls
dGVyRWZmZWN0PiBTVkdGRU1lcmdlRWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciogZmls
dGVyQnVpbGRlciwgRmlsdGVyJiBmaWx0ZXIpIGNvbnN0CiB7CiAgICAgYXV0byBlZmZlY3QgPSBG
RU1lcmdlOjpjcmVhdGUoZmlsdGVyKTsKICAgICBGaWx0ZXJFZmZlY3RWZWN0b3ImIG1lcmdlSW5w
dXRzID0gZWZmZWN0LT5pbnB1dEVmZmVjdHMoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRU1lcmdlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RU1lcmdlRWxlbWVudC5oCShyZXZpc2lvbiAyNDMxODMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVNZXJnZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIFNWR0ZFTWVyZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwogCi0gICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVy
QnVpbGRlciosIEZpbHRlciYpIG92ZXJyaWRlOworICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1
aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBo
b2xvZ3lFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVN
b3JwaG9sb2d5RWxlbWVudC5jcHAJKHJldmlzaW9uIDI0MzE4MykKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMzLDcg
KzEzMyw3IEBAIHZvaWQgU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6c3ZnQXR0cmlidXQKICAgICBT
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQo
YXR0ck5hbWUpOwogfQogCi1SZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRU1vcnBob2xvZ3lFbGVt
ZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiBmaWx0ZXJCdWlsZGVyLCBGaWx0ZXImIGZpbHRl
cikKK1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OmJ1aWxkKFNW
R0ZpbHRlckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKSBjb25zdAogewog
ICAgIGF1dG8gaW5wdXQxID0gZmlsdGVyQnVpbGRlci0+Z2V0RWZmZWN0QnlJZChpbjEoKSk7CiAg
ICAgZmxvYXQgeFJhZGl1cyA9IHJhZGl1c1goKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRU1vcnBob2xvZ3lFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuaAkocmV2aXNpb24gMjQzMTgzKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtOTMs
NyArOTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBib29sIHNldEZpbHRlckVmZmVjdEF0dHJp
YnV0ZShGaWx0ZXJFZmZlY3QqLCBjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7Ci0gICAg
UmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIG92
ZXJyaWRlOworICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIq
LCBGaWx0ZXImKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJp
bmcmIHJhZGl1c1hJZGVudGlmaWVyKCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYg
cmFkaXVzWUlkZW50aWZpZXIoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNl
dEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNl
dEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyNDMxODMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVPZmZzZXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODUsNyArODUsNyBAQCB2b2lk
IFNWR0ZFT2Zmc2V0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhCiAgICAgU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKIH0K
IAotUmVmUHRyPEZpbHRlckVmZmVjdD4gU1ZHRkVPZmZzZXRFbGVtZW50OjpidWlsZChTVkdGaWx0
ZXJCdWlsZGVyKiBmaWx0ZXJCdWlsZGVyLCBGaWx0ZXImIGZpbHRlcikKK1JlZlB0cjxGaWx0ZXJF
ZmZlY3Q+IFNWR0ZFT2Zmc2V0RWxlbWVudDo6YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciogZmlsdGVy
QnVpbGRlciwgRmlsdGVyJiBmaWx0ZXIpIGNvbnN0CiB7CiAgICAgYXV0byBpbnB1dDEgPSBmaWx0
ZXJCdWlsZGVyLT5nZXRFZmZlY3RCeUlkKGluMSgpKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRU9mZnNldEVsZW1lbnQuaAkocmV2aXNpb24gMjQzMTgzKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAotICAgIFJlZlB0cjxGaWx0
ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBvdmVycmlkZTsKKyAg
ICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyJikg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICBBdHRyaWJ1dGVPd25lclByb3h5IG1fYXR0cmlidXRlT3du
ZXJQcm94eSB7ICp0aGlzIH07CiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0
cnkgeyAqdGhpcyB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdo
dGluZ0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNw
ZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAkocmV2aXNpb24gMjQzMTgzKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzksNyArMTc5LDcgQEAgdm9pZCBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50Ojps
aWdodAogICAgIHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwogfQogCi1SZWZQ
dHI8RmlsdGVyRWZmZWN0PiBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpidWlsZChTVkdG
aWx0ZXJCdWlsZGVyKiBmaWx0ZXJCdWlsZGVyLCBGaWx0ZXImIGZpbHRlcikKK1JlZlB0cjxGaWx0
ZXJFZmZlY3Q+IFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1
aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZpbHRlciYgZmlsdGVyKSBjb25zdAogewogICAgIGF1dG8g
aW5wdXQxID0gZmlsdGVyQnVpbGRlci0+Z2V0RWZmZWN0QnlJZChpbjEoKSk7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaAko
cmV2aXNpb24gMjQzMTgzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdo
dGluZ0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjksNyArNjksNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJp
ZGU7CiAKICAgICBib29sIHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqLCBj
b25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7Ci0gICAgUmVmUHRyPEZpbHRlckVmZmVjdD4g
YnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIG92ZXJyaWRlOworICAgIFJlZlB0cjxG
aWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXImKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGtlcm5lbFVuaXRMZW5ndGhY
SWRlbnRpZmllcigpOwogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGtlcm5lbFVuaXRM
ZW5ndGhZSWRlbnRpZmllcigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVt
ZW50LmNwcAkocmV2aXNpb24gMjQzMTgzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGls
ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgU1ZHRkVU
aWxlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmcKICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXM6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwogfQogCi1SZWZQ
dHI8RmlsdGVyRWZmZWN0PiBTVkdGRVRpbGVFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVy
KiBmaWx0ZXJCdWlsZGVyLCBGaWx0ZXImIGZpbHRlcikKK1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNW
R0ZFVGlsZUVsZW1lbnQ6OmJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqIGZpbHRlckJ1aWxkZXIsIEZp
bHRlciYgZmlsdGVyKSBjb25zdAogewogICAgIGF1dG8gaW5wdXQxID0gZmlsdGVyQnVpbGRlci0+
Z2V0RWZmZWN0QnlJZChpbjEoKSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRp
bGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVs
ZW1lbnQuaAkocmV2aXNpb24gMjQzMTgzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGls
ZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0
cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKLSAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChT
VkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyJikgb3ZlcnJpZGU7CisgICAgUmVmUHRyPEZpbHRlckVm
ZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgQXR0cmlidXRlT3duZXJQcm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9
OwogICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDI0MzE4MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDcgKzEzOSw3IEBAIHZvaWQgU1ZHRkVUdXJi
dWxlbmNlRWxlbWVudDo6c3ZnQXR0cmlidXQKICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFy
ZEF0dHJpYnV0ZXM6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwogfQogCi1SZWZQdHI8
RmlsdGVyRWZmZWN0PiBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJCdWls
ZGVyKiwgRmlsdGVyJiBmaWx0ZXIpCitSZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGRVR1cmJ1bGVu
Y2VFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmlsdGVyJiBmaWx0ZXIpIGNvbnN0
CiB7CiAgICAgaWYgKGJhc2VGcmVxdWVuY3lYKCkgPCAwIHx8IGJhc2VGcmVxdWVuY3lZKCkgPCAw
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RVR1cmJ1bGVuY2VFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFVHVyYnVsZW5jZUVsZW1lbnQuaAkocmV2aXNpb24gMjQzMTgzKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTMxLDcg
KzEzMSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmli
dXRlKEZpbHRlckVmZmVjdCosIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKSBvdmVycmlk
ZTsKLSAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVyKiwgRmls
dGVyJikgb3ZlcnJpZGU7CisgICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVy
QnVpbGRlciosIEZpbHRlciYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgc3RhdGljIGNvbnN0IEF0
b21pY1N0cmluZyYgYmFzZUZyZXF1ZW5jeVhJZGVudGlmaWVyKCk7CiAgICAgc3RhdGljIGNvbnN0
IEF0b21pY1N0cmluZyYgYmFzZUZyZXF1ZW5jeVlJZGVudGlmaWVyKCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcy5oCShyZXZpc2lvbiAyNDMxODMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmls
dGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcg
KzQwLDcgQEAgY2xhc3MgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dAogcHVibGlj
OgogICAgIHZvaWQgc2V0U3RhbmRhcmRBdHRyaWJ1dGVzKEZpbHRlckVmZmVjdCopIGNvbnN0Owog
Ci0gICAgdmlydHVhbCBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVy
KiwgRmlsdGVyJikgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQo
U1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciYpIGNvbnN0ID0gMDsKICAgICAvLyBSZXR1cm5zIHRy
dWUsIGlmIHRoZSBuZXcgdmFsdWUgaXMgZGlmZmVyZW50IGZyb20gdGhlIG9sZCBvbmUuCiAgICAg
dmlydHVhbCBib29sIHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqLCBjb25z
dCBRdWFsaWZpZWROYW1lJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1Zp
ZXdCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdC
b3guY3BwCShyZXZpc2lvbiAyNDMxODMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9W
aWV3Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsMjUgKzM1LDE2IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFNWR0ZpdFRvVmlld0JveDo6U1ZHRml0VG9WaWV3Qm94KFNWR0VsZW1lbnQq
IGNvbnRleHRFbGVtZW50LCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCi0gICAgOiBtX2F0dHJp
YnV0ZU93bmVyUHJveHkoKnRoaXMsICpjb250ZXh0RWxlbWVudCwgYWNjZXNzID09IFNWR1Byb3Bl
cnR5QWNjZXNzOjpSZWFkV3JpdGUgPyBQcm9wZXJ0eUlzUmVhZFdyaXRlIDogUHJvcGVydHlJc1Jl
YWRPbmx5KQotICAgICwgbV92aWV3Qm94KFNWR0FuaW1hdGVkUmVjdDo6Y3JlYXRlKGNvbnRleHRF
bGVtZW50LCBhY2Nlc3MpKQorICAgIDogbV92aWV3Qm94KFNWR0FuaW1hdGVkUmVjdDo6Y3JlYXRl
KGNvbnRleHRFbGVtZW50LCBhY2Nlc3MpKQorICAgICwgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKFNW
R0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbzo6Y3JlYXRlKGNvbnRleHRFbGVtZW50LCBhY2Nl
c3MpKQogewotICAgIHJlZ2lzdGVyQXR0cmlidXRlcygpOwotCiAgICAgc3RhdGljIHN0ZDo6b25j
ZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CiAgICAg
ICAgIFByb3BlcnR5UmVnaXN0cnk6OnJlZ2lzdGVyUHJvcGVydHk8U1ZHTmFtZXM6OnZpZXdCb3hB
dHRyLCAmU1ZHRml0VG9WaWV3Qm94OjptX3ZpZXdCb3g+KCk7CisgICAgICAgIFByb3BlcnR5UmVn
aXN0cnk6OnJlZ2lzdGVyUHJvcGVydHk8U1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRy
LCAmU1ZHRml0VG9WaWV3Qm94OjptX3ByZXNlcnZlQXNwZWN0UmF0aW8+KCk7CiAgICAgfSk7CiB9
CiAKLXZvaWQgU1ZHRml0VG9WaWV3Qm94OjpyZWdpc3RlckF0dHJpYnV0ZXMoKQotewotICAgIGF1
dG8mIHJlZ2lzdHJ5ID0gYXR0cmlidXRlUmVnaXN0cnkoKTsKLSAgICBpZiAoIXJlZ2lzdHJ5Lmlz
RW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyQXR0cmlidXRl
PFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0ciwgJlNWR0ZpdFRvVmlld0JveDo6bV9w
cmVzZXJ2ZUFzcGVjdFJhdGlvPigpOwotfQotCiB2b2lkIFNWR0ZpdFRvVmlld0JveDo6c2V0Vmll
d0JveChjb25zdCBGbG9hdFJlY3QmIHZpZXdCb3gpCiB7CiAgICAgbV92aWV3Qm94LT5zZXRCYXNl
VmFsSW50ZXJuYWwodmlld0JveCk7CkBAIC0xMTMsNyArMTA0LDcgQEAgYm9vbCBTVkdGaXRUb1Zp
ZXdCb3g6OnBhcnNlVmlld0JveChjb25zdAogICAgIGJvb2wgdmFsaWQgPSBwYXJzZU51bWJlcihj
LCBlbmQsIHgpICYmIHBhcnNlTnVtYmVyKGMsIGVuZCwgeSkgJiYgcGFyc2VOdW1iZXIoYywgZW5k
LCB3aWR0aCkgJiYgcGFyc2VOdW1iZXIoYywgZW5kLCBoZWlnaHQsIGZhbHNlKTsKIAogICAgIGlm
ICh2YWxpZGF0ZSkgewotICAgICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBtX2F0dHJpYnV0ZU93
bmVyUHJveHkuZWxlbWVudCgpLmRvY3VtZW50KCk7CisgICAgICAgIERvY3VtZW50JiBkb2N1bWVu
dCA9IG1fdmlld0JveC0+Y29udGV4dEVsZW1lbnQoKS0+ZG9jdW1lbnQoKTsKIAogICAgICAgICBp
ZiAoIXZhbGlkKSB7CiAgICAgICAgICAgICBkb2N1bWVudC5hY2Nlc3NTVkdFeHRlbnNpb25zKCku
cmVwb3J0V2FybmluZygiUHJvYmxlbSBwYXJzaW5nIHZpZXdCb3g9XCIiICsgc3RyICsgIlwiIik7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5oCShyZXZpc2lvbiAyNDMxODMp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmgJKHdvcmtpbmcgY29weSkK
QEAgLTQzLDE5ICs0MywxOSBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9
IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGaXRUb1ZpZXdCb3g+OwogCiAgICAgY29uc3Qg
RmxvYXRSZWN0JiB2aWV3Qm94KCkgY29uc3QgeyByZXR1cm4gbV92aWV3Qm94LT5jdXJyZW50VmFs
dWUoKTsgfQotICAgIGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVB
c3BlY3RSYXRpbygpIGNvbnN0IHsgcmV0dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpby5jdXJyZW50
VmFsdWUobV9hdHRyaWJ1dGVPd25lclByb3h5KTsgfQorICAgIGNvbnN0IFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygpIGNvbnN0IHsgcmV0dXJuIG1fcHJl
c2VydmVBc3BlY3RSYXRpby0+Y3VycmVudFZhbHVlKCk7IH0KIAogICAgIFNWR0FuaW1hdGVkUmVj
dCYgdmlld0JveEFuaW1hdGVkKCkgeyByZXR1cm4gbV92aWV3Qm94OyB9Ci0gICAgUmVmUHRyPFNW
R0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4gcHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdGVk
KCkgeyByZXR1cm4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLmFuaW1hdGVkUHJvcGVydHkobV9hdHRy
aWJ1dGVPd25lclByb3h5KTsgfQorICAgIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyYg
cHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdGVkKCkgeyByZXR1cm4gbV9wcmVzZXJ2ZUFzcGVjdFJh
dGlvOyB9CiAKICAgICB2b2lkIHNldFZpZXdCb3goY29uc3QgRmxvYXRSZWN0Jik7CiAgICAgdm9p
ZCByZXNldFZpZXdCb3goKTsKIAotICAgIHZvaWQgc2V0UHJlc2VydmVBc3BlY3RSYXRpbyhjb25z
dCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8pIHsgbV9w
cmVzZXJ2ZUFzcGVjdFJhdGlvLnNldFZhbHVlKHByZXNlcnZlQXNwZWN0UmF0aW8pOyB9Ci0gICAg
dm9pZCByZXNldFByZXNlcnZlQXNwZWN0UmF0aW8oKSB7IG1fcHJlc2VydmVBc3BlY3RSYXRpby5y
ZXNldFZhbHVlKCk7IH0KKyAgICB2b2lkIHNldFByZXNlcnZlQXNwZWN0UmF0aW8oY29uc3QgU1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKSB7IG1fcHJlc2Vy
dmVBc3BlY3RSYXRpby0+c2V0QmFzZVZhbEludGVybmFsKHByZXNlcnZlQXNwZWN0UmF0aW8pOyB9
CisgICAgdm9pZCByZXNldFByZXNlcnZlQXNwZWN0UmF0aW8oKSB7IG1fcHJlc2VydmVBc3BlY3RS
YXRpby0+c2V0QmFzZVZhbEludGVybmFsKHsgfSk7IH0KIAogICAgIFN0cmluZyB2aWV3Qm94U3Ry
aW5nKCkgY29uc3QgeyByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6dG9TdHJp
bmcodmlld0JveCgpKTsgfQotICAgIFN0cmluZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nKCkg
Y29uc3QgeyByZXR1cm4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLnRvU3RyaW5nKCk7IH0KKyAgICBT
dHJpbmcgcHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIHByZXNlcnZl
QXNwZWN0UmF0aW8oKS52YWx1ZUFzU3RyaW5nKCk7IH0KIAogICAgIGJvb2wgaGFzVmFsaWRWaWV3
Qm94KCkgY29uc3QgeyByZXR1cm4gbV9pc1ZpZXdCb3hWYWxpZDsgfQogICAgIGJvb2wgaGFzRW1w
dHlWaWV3Qm94KCkgY29uc3QgeyByZXR1cm4gbV9pc1ZpZXdCb3hWYWxpZCAmJiB2aWV3Qm94KCku
aXNFbXB0eSgpOyB9CkBAIC03NCwxMSArNzQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBwYXJz
ZVZpZXdCb3goY29uc3QgVUNoYXIqJiBzdGFydCwgY29uc3QgVUNoYXIqIGVuZCwgRmxvYXRSZWN0
JiB2aWV3Qm94LCBib29sIHZhbGlkYXRlID0gdHJ1ZSk7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGlj
IHZvaWQgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7Ci0KLSAgICBBdHRyaWJ1dGVPd25lclByb3h5IG1f
YXR0cmlidXRlT3duZXJQcm94eTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRSZWN0PiBtX3ZpZXdCb3g7
Ci0gICAgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0cmlidXRlIG1fcHJlc2VydmVB
c3BlY3RSYXRpbzsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBtX3By
ZXNlcnZlQXNwZWN0UmF0aW87CiAgICAgYm9vbCBtX2lzVmlld0JveFZhbGlkIHsgZmFsc2UgfTsK
IH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCShyZXZpc2lv
biAyNDMxODMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDQsNiArNDQsMTEgQEAgaW5saW5lIFNWR0ltYWdlRWxlbWVudDo6U1ZH
SW1hZ2VFbGVtZW50KAogICAgICwgbV9pbWFnZUxvYWRlcigqdGhpcykKIHsKICAgICByZWdpc3Rl
ckF0dHJpYnV0ZXMoKTsKKworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAg
ICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10geworICAgICAgICBQcm9wZXJ0eVJlZ2lzdHJ5
OjpyZWdpc3RlclByb3BlcnR5PFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0ciwgJlNW
R0ltYWdlRWxlbWVudDo6bV9wcmVzZXJ2ZUFzcGVjdFJhdGlvPigpOworICAgIH0pOwogfQogCiBS
ZWY8U1ZHSW1hZ2VFbGVtZW50PiBTVkdJbWFnZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC02OSw3ICs3NCw2IEBAIHZv
aWQgU1ZHSW1hZ2VFbGVtZW50OjpyZWdpc3RlckF0dHJpYnV0ZXMKICAgICByZWdpc3RyeS5yZWdp
c3RlckF0dHJpYnV0ZTxTVkdOYW1lczo6eUF0dHIsICZTVkdJbWFnZUVsZW1lbnQ6Om1feT4oKTsK
ICAgICByZWdpc3RyeS5yZWdpc3RlckF0dHJpYnV0ZTxTVkdOYW1lczo6d2lkdGhBdHRyLCAmU1ZH
SW1hZ2VFbGVtZW50OjptX3dpZHRoPigpOwogICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyQXR0cmlidXRl
PFNWR05hbWVzOjpoZWlnaHRBdHRyLCAmU1ZHSW1hZ2VFbGVtZW50OjptX2hlaWdodD4oKTsKLSAg
ICByZWdpc3RyeS5yZWdpc3RlckF0dHJpYnV0ZTxTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRp
b0F0dHIsICZTVkdJbWFnZUVsZW1lbnQ6Om1fcHJlc2VydmVBc3BlY3RSYXRpbz4oKTsKIH0KIAog
dm9pZCBTVkdJbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCkBAIC03Nyw3ICs4MSw3IEBAIHZvaWQg
U1ZHSW1hZ2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb24KICAgICBpZiAobmFtZSA9PSBTVkdO
YW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIpIHsKICAgICAgICAgU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb1ZhbHVlIHByZXNlcnZlQXNwZWN0UmF0aW87CiAgICAgICAgIHByZXNlcnZlQXNwZWN0
UmF0aW8ucGFyc2UodmFsdWUpOwotICAgICAgICBtX3ByZXNlcnZlQXNwZWN0UmF0aW8uc2V0VmFs
dWUocHJlc2VydmVBc3BlY3RSYXRpbyk7CisgICAgICAgIG1fcHJlc2VydmVBc3BlY3RSYXRpby0+
c2V0QmFzZVZhbEludGVybmFsKHByZXNlcnZlQXNwZWN0UmF0aW8pOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCShyZXZpc2lv
biAyNDMxODMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTIyLDcgKzIyLDYgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU1ZH
QW5pbWF0ZWRMZW5ndGguaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0
aW8uaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVk
ZSAiU1ZHR3JhcGhpY3NFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHSW1hZ2VMb2FkZXIuaCIKQEAg
LTQyLDEzICs0MSwxMyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU1ZHTGVuZ3RoVmFsdWUmIHkoKSBj
b25zdCB7IHJldHVybiBtX3kuY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0K
ICAgICBjb25zdCBTVkdMZW5ndGhWYWx1ZSYgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRo
LmN1cnJlbnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CiAgICAgY29uc3QgU1ZHTGVu
Z3RoVmFsdWUmIGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0LmN1cnJlbnRWYWx1ZShh
dHRyaWJ1dGVPd25lclByb3h5KCkpOyB9Ci0gICAgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCkgY29uc3QgeyByZXR1cm4gbV9wcmVzZXJ2ZUFz
cGVjdFJhdGlvLmN1cnJlbnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CisgICAgY29u
c3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCkgY29u
c3QgeyByZXR1cm4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLT5jdXJyZW50VmFsdWUoKTsgfQogCiAg
ICAgUmVmUHRyPFNWR0FuaW1hdGVkTGVuZ3RoPiB4QW5pbWF0ZWQoKSB7IHJldHVybiBtX3guYW5p
bWF0ZWRQcm9wZXJ0eShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CiAgICAgUmVmUHRyPFNWR0Fu
aW1hdGVkTGVuZ3RoPiB5QW5pbWF0ZWQoKSB7IHJldHVybiBtX3kuYW5pbWF0ZWRQcm9wZXJ0eShh
dHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkTGVuZ3RoPiB3
aWR0aEFuaW1hdGVkKCkgeyByZXR1cm4gbV93aWR0aC5hbmltYXRlZFByb3BlcnR5KGF0dHJpYnV0
ZU93bmVyUHJveHkoKSk7IH0KICAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRMZW5ndGg+IGhlaWdodEFu
aW1hdGVkKCkgeyByZXR1cm4gbV9oZWlnaHQuYW5pbWF0ZWRQcm9wZXJ0eShhdHRyaWJ1dGVPd25l
clByb3h5KCkpOyB9Ci0gICAgUmVmUHRyPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4g
cHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdGVkKCkgeyByZXR1cm4gbV9wcmVzZXJ2ZUFzcGVjdFJh
dGlvLmFuaW1hdGVkUHJvcGVydHkoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQorICAgIFNWR0Fu
aW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyYgcHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdGVkKCkg
eyByZXR1cm4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOyB9CiAKIHByaXZhdGU6CiAgICAgU1ZHSW1h
Z2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpAQCAtODYsNyArODUs
NyBAQCBwcml2YXRlOgogICAgIFNWR0FuaW1hdGVkTGVuZ3RoQXR0cmlidXRlIG1feSB7IExlbmd0
aE1vZGVIZWlnaHQgfTsKICAgICBTVkdBbmltYXRlZExlbmd0aEF0dHJpYnV0ZSBtX3dpZHRoIHsg
TGVuZ3RoTW9kZVdpZHRoIH07CiAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUgbV9oZWln
aHQgeyBMZW5ndGhNb2RlSGVpZ2h0IH07Ci0gICAgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJh
dGlvQXR0cmlidXRlIG1fcHJlc2VydmVBc3BlY3RSYXRpbzsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvPiBtX3ByZXNlcnZlQXNwZWN0UmF0aW8geyBTVkdBbmltYXRlZFBy
ZXNlcnZlQXNwZWN0UmF0aW86OmNyZWF0ZSh0aGlzKSB9OwogICAgIFNWR0ltYWdlTG9hZGVyIG1f
aW1hZ2VMb2FkZXI7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50
LmgJKHJldmlzaW9uIDI0MzE4MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDYgQEAKICNpbmNsdWRlICJTVkdBbmlt
YXRlZEFuZ2xlLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIgogI2luY2x1
ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvLmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQuaCIKICNpbmNsdWRlICJTVkdGaXRUb1ZpZXdCb3guaCIKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCShyZXZpc2lvbiAyNDMxODMp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMjMsNyArMjMsNiBAQAogCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5o
IgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
LmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8uaAkocmV2aXNpb24gMjQzMTgzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1By
ZXNlcnZlQXNwZWN0UmF0aW8uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDQwICsyNiwzNyBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCIK
LSNpbmNsdWRlICJTVkdQcm9wZXJ0eVRlYXJPZmYuaCIKKyNpbmNsdWRlICJTVkdWYWx1ZVByb3Bl
cnR5LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU1ZHUHJlc2VydmVBc3BlY3RS
YXRpbyA6IHB1YmxpYyBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBj
cmVhdGUoU1ZHTGVnYWN5QW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSwgU1ZHUHJv
cGVydHlSb2xlIHJvbGUsIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgdmFsdWUpCi0gICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKGFu
aW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlKSk7Ci0gICAgfQorY2xhc3MgU1ZHUHJlc2VydmVB
c3BlY3RSYXRpbyA6IHB1YmxpYyBTVkdWYWx1ZVByb3BlcnR5PFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZT4geworICAgIHVzaW5nIEJhc2UgPSBTVkdWYWx1ZVByb3BlcnR5PFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZT47CisgICAgdXNpbmcgQmFzZTo6QmFzZTsKKyAgICB1c2luZyBCYXNl
OjptX3ZhbHVlOwogCi0gICAgc3RhdGljIFJlZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBjcmVh
dGUoY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBpbml0aWFsVmFsdWUgPSB7IH0p
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBjcmVhdGUo
U1ZHUHJvcGVydHlPd25lciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcywgY29uc3Qg
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB2YWx1ZSA9IHsgfSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8oaW5pdGlhbFZhbHVl
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8o
b3duZXIsIGFjY2VzcywgdmFsdWUpKTsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+PiBjcmVhdGUo
RXhjZXB0aW9uT3I8VD4mJiBpbml0aWFsVmFsdWUpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4K
KyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+PiBjcmVh
dGUoRXhjZXB0aW9uT3I8VD4mJiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIGlmIChpbml0aWFsVmFs
dWUuaGFzRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gaW5pdGlhbFZhbHVlLnJlbGVh
c2VFeGNlcHRpb24oKTsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZShpbml0aWFsVmFsdWUucmVsZWFz
ZVJldHVyblZhbHVlKCkpOworICAgICAgICBpZiAodmFsdWUuaGFzRXhjZXB0aW9uKCkpCisgICAg
ICAgICAgICByZXR1cm4gdmFsdWUucmVsZWFzZUV4Y2VwdGlvbigpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKHZhbHVlLnJlbGVhc2VSZXR1cm5W
YWx1ZSgpKSk7CiAgICAgfQogCi0gICAgdW5zaWduZWQgc2hvcnQgYWxpZ24oKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIHByb3BlcnR5UmVmZXJlbmNlKCkuYWxpZ24oKTsKLSAgICB9CisgICAgdW5z
aWduZWQgc2hvcnQgYWxpZ24oKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLmFsaWduKCk7IH0KIAog
ICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEFsaWduKGZsb2F0IHZhbHVlKQogICAgIHsKICAgICAg
ICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01v
ZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gcHJvcGVy
dHlSZWZlcmVuY2UoKS5zZXRBbGlnbih2YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gbV92
YWx1ZS5zZXRBbGlnbih2YWx1ZSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogCkBAIC02NywxNyArNjQsMTQgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIHVuc2lnbmVkIHNob3J0IG1l
ZXRPclNsaWNlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eVJlZmVyZW5jZSgpLm1l
ZXRPclNsaWNlKCk7Ci0gICAgfQorICAgIHVuc2lnbmVkIHNob3J0IG1lZXRPclNsaWNlKCkgY29u
c3QgeyByZXR1cm4gbV92YWx1ZS5tZWV0T3JTbGljZSgpOyB9CiAKICAgICBFeGNlcHRpb25Pcjx2
b2lkPiBzZXRNZWV0T3JTbGljZShmbG9hdCB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChpc1Jl
YWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25B
bGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IHByb3BlcnR5UmVmZXJlbmNl
KCkuc2V0TWVldE9yU2xpY2UodmFsdWUpOworICAgICAgICBhdXRvIHJlc3VsdCA9IG1fdmFsdWUu
c2V0TWVldE9yU2xpY2UodmFsdWUpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigp
KQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIApAQCAtODUsMTUgKzc5LDkgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotcHJpdmF0ZToKLSAgICBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvKFNWR0xlZ2FjeUFuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVy
dHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHZh
bHVlKQotICAgICAgICA6IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
VmFsdWU+KCZhbmltYXRlZFByb3BlcnR5LCByb2xlLCB2YWx1ZSkKLSAgICB7Ci0gICAgfQotCi0g
ICAgZXhwbGljaXQgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhjb25zdCBTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWUmIGluaXRpYWxWYWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eVRlYXJPZmY8
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPihpbml0aWFsVmFsdWUpCisgICAgU3RyaW5nIHZh
bHVlQXNTdHJpbmcoKSBjb25zdCBvdmVycmlkZQogICAgIHsKKyAgICAgICAgcmV0dXJuIG1fdmFs
dWUudmFsdWVBc1N0cmluZygpOwogICAgIH0KIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTVkdFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NW
R0VsZW1lbnQuaAkocmV2aXNpb24gMjQzMTgzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NW
R0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNiBAQAogCiAjaW5jbHVkZSAi
RmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoLmgiCi0jaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgiCiAjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZC5oIgogI2luY2x1ZGUgIlNWR0ZpdFRvVmlld0JveC5oIgogI2luY2x1
ZGUgIlNWR0dyYXBoaWNzRWxlbWVudC5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0
cmluZ0xpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlz
dC5oCShyZXZpc2lvbiAyNDMxODMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlz
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJTVkdQYXJz
ZXJVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJTVkdQcmltaXRpdmVMaXN0LmgiCisjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAkocmV2aXNpb24gMjQzMTgzKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MjEsNyArMjEsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJl
c2VydmVBc3BlY3RSYXRpby5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94
LmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuaAkocmV2aXNpb24gMjQzMTgzKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwLDcg
KzIwLDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdBbmltYXRlZFByZXNlcnZl
QXNwZWN0UmF0aW8uaCIKICNpbmNsdWRlICJTVkdGaXRUb1ZpZXdCb3guaCIKICNpbmNsdWRlICJT
VkdUcmFuc2Zvcm1MaXN0VmFsdWVzLmgiCiAjaW5jbHVkZSAiU1ZHWm9vbUFuZFBhbi5oIgpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFjY2Vz
c29ySW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkUHJvcGVydHlBY2Nlc3NvckltcGwuaAkocmV2aXNpb24gMjQzMTgzKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFjY2Vzc29ySW1w
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw2ICs3NywyOCBAQCBwcml2YXRlOgogfTsKIAogdGVt
cGxhdGU8dHlwZW5hbWUgT3duZXJUeXBlPgorY2xhc3MgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvQWNjZXNzb3IgZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFjY2Vzc29y
PE93bmVyVHlwZSwgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvPiB7CisgICAgdXNpbmcg
QmFzZSA9IFNWR0FuaW1hdGVkUHJvcGVydHlBY2Nlc3NvcjxPd25lclR5cGUsIFNWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpbz47CisgICAgdXNpbmcgQmFzZTo6cHJvcGVydHk7CisKK3B1Ymxp
YzoKKyAgICB1c2luZyBCYXNlOjpCYXNlOworICAgIHRlbXBsYXRlPFJlZjxTVkdBbmltYXRlZFBy
ZXNlcnZlQXNwZWN0UmF0aW8+IE93bmVyVHlwZTo6KnByb3BlcnR5PgorICAgIGNvbnN0ZXhwciBz
dGF0aWMgY29uc3QgU1ZHTWVtYmVyQWNjZXNzb3I8T3duZXJUeXBlPiYgc2luZ2xldG9uKCkgeyBy
ZXR1cm4gQmFzZTo6dGVtcGxhdGUgc2luZ2xldG9uPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpb0FjY2Vzc29yLCBwcm9wZXJ0eT4oKTsgfQorCitwcml2YXRlOgorICAgIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBdHRyaWJ1dGVBbmltYXRvcj4gY3JlYXRlQW5pbWF0b3IoT3duZXJUeXBlJiBvd25l
ciwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgQW5pbWF0aW9uTW9kZSBhbmlt
YXRpb25Nb2RlLCBDYWxjTW9kZSBjYWxjTW9kZSwgYm9vbCBpc0FjY3VtdWxhdGVkLCBib29sIGlz
QWRkaXRpdmUpIGNvbnN0IGZpbmFsCisgICAgeworICAgICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvQW5pbWF0b3I6OmNyZWF0ZShhdHRyaWJ1dGVOYW1lLCBwcm9wZXJ0
eShvd25lciksIGFuaW1hdGlvbk1vZGUsIGNhbGNNb2RlLCBpc0FjY3VtdWxhdGVkLCBpc0FkZGl0
aXZlKTsKKyAgICB9CisKKyAgICB2b2lkIGFwcGVuZEFuaW1hdGVkSW5zdGFuY2UoT3duZXJUeXBl
JiBvd25lciwgU1ZHQXR0cmlidXRlQW5pbWF0b3ImIGFuaW1hdG9yKSBjb25zdCBmaW5hbAorICAg
IHsKKyAgICAgICAgc3RhdGljX2Nhc3Q8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvQW5p
bWF0b3ImPihhbmltYXRvcikuYXBwZW5kQW5pbWF0ZWRJbnN0YW5jZShwcm9wZXJ0eShvd25lcikp
OworICAgIH0KK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIE93bmVyVHlwZT4KIGNsYXNzIFNWR0Fu
aW1hdGVkUmVjdEFjY2Vzc29yIGZpbmFsIDogcHVibGljIFNWR0FuaW1hdGVkUHJvcGVydHlBY2Nl
c3NvcjxPd25lclR5cGUsIFNWR0FuaW1hdGVkUmVjdD4gewogICAgIHVzaW5nIEJhc2UgPSBTVkdB
bmltYXRlZFByb3BlcnR5QWNjZXNzb3I8T3duZXJUeXBlLCBTVkdBbmltYXRlZFJlY3Q+OwogICAg
IHVzaW5nIEJhc2U6OnByb3BlcnR5OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlBbmltYXRvckltcGwu
aAkocmV2aXNpb24gMjQzMTgzKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3
NSwyNSBAQCBwcml2YXRlOgogICAgICAgICBtX2Z1bmN0aW9uLnByb2dyZXNzKHRhcmdldEVsZW1l
bnQsIHBlcmNlbnRhZ2UsIHJlcGVhdENvdW50LCBtX2FuaW1hdGVkLT5hbmltVmFsKCkpOwogICAg
IH0KIH07Ci0gICAgCisKK2NsYXNzIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1h
dG9yIGZpbmFsIDogcHVibGljIFNWR0FuaW1hdGVkUHJvcGVydHlBbmltYXRvcjxTVkdBbmltYXRl
ZFByZXNlcnZlQXNwZWN0UmF0aW8sIFNWR0FuaW1hdGlvblByZXNlcnZlQXNwZWN0UmF0aW9GdW5j
dGlvbj4geworICAgIHVzaW5nIEJhc2UgPSBTVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3I8U1ZH
QW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBTVkdBbmltYXRpb25QcmVzZXJ2ZUFzcGVjdFJh
dGlvRnVuY3Rpb24+OworICAgIHVzaW5nIEJhc2U6OkJhc2U7CisKK3B1YmxpYzoKKyAgICBzdGF0
aWMgYXV0byBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgUmVmPFNW
R0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4mIGFuaW1hdGVkLCBBbmltYXRpb25Nb2RlIGFu
aW1hdGlvbk1vZGUsIENhbGNNb2RlIGNhbGNNb2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wg
aXNBZGRpdGl2ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0Fu
aW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yPihhdHRyaWJ1dGVOYW1lLCBhbmltYXRl
ZCwgYW5pbWF0aW9uTW9kZSwgY2FsY01vZGUsIGlzQWNjdW11bGF0ZWQsIGlzQWRkaXRpdmUpOwor
ICAgIH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHByb2dyZXNzKFNWR0VsZW1lbnQqIHRhcmdldEVs
ZW1lbnQsIGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50KSBmaW5hbAorICAg
IHsKKyAgICAgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBhbmltYXRlZCA9IG1fYW5p
bWF0ZWQtPmFuaW1WYWwoKS0+dmFsdWUoKTsKKyAgICAgICAgbV9mdW5jdGlvbi5wcm9ncmVzcyh0
YXJnZXRFbGVtZW50LCBwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgYW5pbWF0ZWQpOworICAgIH0K
K307CisKIGNsYXNzIFNWR0FuaW1hdGVkUmVjdEFuaW1hdG9yIGZpbmFsIDogcHVibGljIFNWR0Fu
aW1hdGVkUHJvcGVydHlBbmltYXRvcjxTVkdBbmltYXRlZFJlY3QsIFNWR0FuaW1hdGlvblJlY3RG
dW5jdGlvbj4gewogICAgIHVzaW5nIEJhc2UgPSBTVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3I8
U1ZHQW5pbWF0ZWRSZWN0LCBTVkdBbmltYXRpb25SZWN0RnVuY3Rpb24+OwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5SW1wbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVy
dHlJbXBsLmgJKHJldmlzaW9uIDI0MzE4MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDExICsz
MiwxMSBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmgiCiAjaW5jbHVkZSAiU1ZHQW5p
bWF0ZWROdW1iZXJMaXN0LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQb2ludExpc3QuaCIKLSNp
bmNsdWRlICJTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCIKICNpbmNsdWRlICJTVkdB
bmltYXRlZFByaW1pdGl2ZVByb3BlcnR5LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmcu
aCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCIKICNpbmNsdWRlICJTVkdB
bmltYXRlZFZhbHVlUHJvcGVydHkuaCIKKyNpbmNsdWRlICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
LmgiCiAjaW5jbHVkZSAiU1ZHUmVjdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NSw1
ICs0NSw2IEBAIHVzaW5nIFNWR0FuaW1hdGVkQm9vbGVhbiA9IFNWR0FuaW1hdGVkUHIKIHVzaW5n
IFNWR0FuaW1hdGVkSW50ZWdlciA9IFNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHk8aW50PjsK
IAogdXNpbmcgU1ZHQW5pbWF0ZWRSZWN0ID0gU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5PFNWR1Jl
Y3Q+OwordXNpbmcgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvID0gU1ZHQW5pbWF0ZWRW
YWx1ZVByb3BlcnR5PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+OwogCiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRpb25EaXNjcmV0ZUZ1bmN0aW9uSW1wbC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGlv
bkRpc2NyZXRlRnVuY3Rpb25JbXBsLmgJKHJldmlzaW9uIDI0MzE4MykKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGlvbkRpc2NyZXRlRnVuY3Rpb25JbXBsLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQyLDQgKzQyLDI4IEBAIHB1YmxpYzoKICAgICB9CiB9OwogCitjbGFz
cyBTVkdBbmltYXRpb25QcmVzZXJ2ZUFzcGVjdFJhdGlvRnVuY3Rpb24gOiBwdWJsaWMgU1ZHQW5p
bWF0aW9uRGlzY3JldGVGdW5jdGlvbjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+IHsKK3B1
YmxpYzoKKyAgICB1c2luZyBCYXNlID0gU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbjxTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+OworICAgIHVzaW5nIEJhc2U6OkJhc2U7CisgICAgCisg
ICAgdm9pZCBzZXRGcm9tQW5kVG9WYWx1ZXMoU1ZHRWxlbWVudCosIGNvbnN0IFN0cmluZyYgZnJv
bSwgY29uc3QgU3RyaW5nJiB0bykgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fZnJvbSA9IFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZShmcm9tKTsKKyAgICAgICAgbV90byA9IFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZSh0byk7CisgICAgfQorfTsKKworY2xhc3MgU1ZHQW5pbWF0aW9u
U3RyaW5nRnVuY3Rpb24gOiBwdWJsaWMgU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5jdGlvbjxTdHJp
bmc+IHsKK3B1YmxpYzoKKyAgICB1c2luZyBCYXNlID0gU1ZHQW5pbWF0aW9uRGlzY3JldGVGdW5j
dGlvbjxTdHJpbmc+OworICAgIHVzaW5nIEJhc2U6OkJhc2U7CisgICAgCisgICAgdm9pZCBzZXRG
cm9tQW5kVG9WYWx1ZXMoU1ZHRWxlbWVudCosIGNvbnN0IFN0cmluZyYgZnJvbSwgY29uc3QgU3Ry
aW5nJiB0bykgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fZnJvbSA9IGZyb207CisgICAgICAg
IG1fdG8gPSB0bzsKKyAgICB9Cit9OworCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBdHRyaWJ1dGVSZWdpc3RyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZVJlZ2lzdHJ5LmgJKHJldmlzaW9uIDI0MzE4
MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZVJlZ2lzdHJ5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJTVkdBbmltYXRl
ZE51bWJlci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyTGlzdC5oIgogI2luY2x1ZGUg
IlNWR0FuaW1hdGVkUG9pbnRMaXN0LmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJT
VkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCIKICNpbmNsdWRlICJTVkdBdHRyaWJ1dGVBY2Nlc3Nv
ci5oIgpAQCAtMTAxLDEyICsxMDAsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJlZ2lzdGVyQXR0cmli
dXRlKFNWR0FuaW1hdGVkUG9pbnRMaXN0QXR0cmlidXRlQWNjZXNzb3I8T3duZXJUeXBlPjo6dGVt
cGxhdGUgc2luZ2xldG9uPGF0dHJpYnV0ZU5hbWUsIGF0dHJpYnV0ZT4oKSk7CiAgICAgfQogCi0g
ICAgdGVtcGxhdGU8Y29uc3QgTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IFF1YWxpZmllZE5hbWU+
JiBhdHRyaWJ1dGVOYW1lLCBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BdHRyaWJ1dGUg
T3duZXJUeXBlOjoqYXR0cmlidXRlPgotICAgIHZvaWQgcmVnaXN0ZXJBdHRyaWJ1dGUoKQotICAg
IHsKLSAgICAgICAgcmVnaXN0ZXJBdHRyaWJ1dGUoU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJh
dGlvQXR0cmlidXRlQWNjZXNzb3I8T3duZXJUeXBlPjo6dGVtcGxhdGUgc2luZ2xldG9uPGF0dHJp
YnV0ZU5hbWUsIGF0dHJpYnV0ZT4oKSk7Ci0gICAgfQotCiAgICAgdGVtcGxhdGU8Y29uc3QgTGF6
eU5ldmVyRGVzdHJveWVkPGNvbnN0IFF1YWxpZmllZE5hbWU+JiBhdHRyaWJ1dGVOYW1lLCBTVkdB
bmltYXRlZFN0cmluZ0F0dHJpYnV0ZSBPd25lclR5cGU6OiphdHRyaWJ1dGU+CiAgICAgdm9pZCBy
ZWdpc3RlckF0dHJpYnV0ZSgpCiAgICAgewpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5LmgJKHJldmlzaW9u
IDI0MzE4MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3du
ZXJSZWdpc3RyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSwxNiArNTUsMjIgQEAgcHVibGljOgog
ICAgICAgICByZWdpc3RlclByb3BlcnR5KGF0dHJpYnV0ZU5hbWUsIFNWR0FuaW1hdGVkQm9vbGVh
bkFjY2Vzc29yPE93bmVyVHlwZT46OnRlbXBsYXRlIHNpbmdsZXRvbjxwcm9wZXJ0eT4oKSk7CiAg
ICAgfQogCi0gICAgdGVtcGxhdGU8Y29uc3QgTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IFF1YWxp
ZmllZE5hbWU+JiBhdHRyaWJ1dGVOYW1lLCBSZWY8U1ZHQW5pbWF0ZWRSZWN0PiBPd25lclR5cGU6
Oipwcm9wZXJ0eT4KKyAgICB0ZW1wbGF0ZTxjb25zdCBMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
UXVhbGlmaWVkTmFtZT4mIGF0dHJpYnV0ZU5hbWUsIFJlZjxTVkdBbmltYXRlZEludGVnZXI+IE93
bmVyVHlwZTo6KnByb3BlcnR5PgogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyUHJvcGVydHkoKQog
ICAgIHsKLSAgICAgICAgcmVnaXN0ZXJQcm9wZXJ0eShhdHRyaWJ1dGVOYW1lLCBTVkdBbmltYXRl
ZFJlY3RBY2Nlc3NvcjxPd25lclR5cGU+Ojp0ZW1wbGF0ZSBzaW5nbGV0b248cHJvcGVydHk+KCkp
OworICAgICAgICByZWdpc3RlclByb3BlcnR5KGF0dHJpYnV0ZU5hbWUsIFNWR0FuaW1hdGVkSW50
ZWdlckFjY2Vzc29yPE93bmVyVHlwZT46OnRlbXBsYXRlIHNpbmdsZXRvbjxwcm9wZXJ0eT4oKSk7
CisgICAgfQorICAgIAorICAgIHRlbXBsYXRlPGNvbnN0IExhenlOZXZlckRlc3Ryb3llZDxjb25z
dCBRdWFsaWZpZWROYW1lPiYgYXR0cmlidXRlTmFtZSwgUmVmPFNWR0FuaW1hdGVkUHJlc2VydmVB
c3BlY3RSYXRpbz4gT3duZXJUeXBlOjoqcHJvcGVydHk+CisgICAgc3RhdGljIHZvaWQgcmVnaXN0
ZXJQcm9wZXJ0eSgpCisgICAgeworICAgICAgICByZWdpc3RlclByb3BlcnR5KGF0dHJpYnV0ZU5h
bWUsIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FjY2Vzc29yPE93bmVyVHlwZT46OnRl
bXBsYXRlIHNpbmdsZXRvbjxwcm9wZXJ0eT4oKSk7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8Y29u
c3QgTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IFF1YWxpZmllZE5hbWU+JiBhdHRyaWJ1dGVOYW1l
LCBSZWY8U1ZHQW5pbWF0ZWRJbnRlZ2VyPiBPd25lclR5cGU6Oipwcm9wZXJ0eT4KKyAgICB0ZW1w
bGF0ZTxjb25zdCBMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgUXVhbGlmaWVkTmFtZT4mIGF0dHJp
YnV0ZU5hbWUsIFJlZjxTVkdBbmltYXRlZFJlY3Q+IE93bmVyVHlwZTo6KnByb3BlcnR5PgogICAg
IHN0YXRpYyB2b2lkIHJlZ2lzdGVyUHJvcGVydHkoKQogICAgIHsKLSAgICAgICAgcmVnaXN0ZXJQ
cm9wZXJ0eShhdHRyaWJ1dGVOYW1lLCBTVkdBbmltYXRlZEludGVnZXJBY2Nlc3NvcjxPd25lclR5
cGU+Ojp0ZW1wbGF0ZSBzaW5nbGV0b248cHJvcGVydHk+KCkpOworICAgICAgICByZWdpc3RlclBy
b3BlcnR5KGF0dHJpYnV0ZU5hbWUsIFNWR0FuaW1hdGVkUmVjdEFjY2Vzc29yPE93bmVyVHlwZT46
OnRlbXBsYXRlIHNpbmdsZXRvbjxwcm9wZXJ0eT4oKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8
Y29uc3QgTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IFF1YWxpZmllZE5hbWU+JiBhdHRyaWJ1dGVO
YW1lLCBSZWY8U1ZHQW5pbWF0ZWRJbnRlZ2VyPiBPd25lclR5cGU6Oipwcm9wZXJ0eTEsIFJlZjxT
VkdBbmltYXRlZEludGVnZXI+IE93bmVyVHlwZTo6KnByb3BlcnR5Mj4K
</data>

          </attachment>
      

    </bug>

</bugzilla>