<?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>202479</bug_id>
          
          <creation_ts>2019-10-02 10:43:33 -0700</creation_ts>
          <short_desc>Make DOMPoint a DOMLiveObject</short_desc>
          <delta_ts>2020-06-15 11:47:02 -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>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>201782</dependson>
          <blocked>191376</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>ysuzuki</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1576053</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-10-02 10:43:33 -0700</bug_when>
    <thetext>In order to replace SVGPoint by DOMPoint, DOMPoint has to communicate changes with its observer. Changing DOMPoint will not be allowed if the observer is read-only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576059</commentid>
    <comment_count>1</comment_count>
      <attachid>380037</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-10-02 10:57:53 -0700</bug_when>
    <thetext>Created attachment 380037
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576458</commentid>
    <comment_count>2</comment_count>
      <attachid>380127</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-10-03 10:02:37 -0700</bug_when>
    <thetext>Created attachment 380127
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576465</commentid>
    <comment_count>3</comment_count>
      <attachid>380130</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-10-03 10:38:12 -0700</bug_when>
    <thetext>Created attachment 380130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576479</commentid>
    <comment_count>4</comment_count>
      <attachid>380133</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-10-03 10:49:18 -0700</bug_when>
    <thetext>Created attachment 380133
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576532</commentid>
    <comment_count>5</comment_count>
      <attachid>380147</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-10-03 11:52:31 -0700</bug_when>
    <thetext>Created attachment 380147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576535</commentid>
    <comment_count>6</comment_count>
      <attachid>380147</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-10-03 12:03:50 -0700</bug_when>
    <thetext>Comment on attachment 380147
Patch

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

&gt; Source/WebCore/dom/DOMPoint.h:98
&gt; +static_assert(sizeof(DOMPoint) == sizeof(DOMPointReadOnly) + sizeof(DOMLiveProperty), &quot;&quot;);

Let&apos;s remove this. This `static_assert` ensures that it is OK that DOMPoint shares the same IsoHeap with DOMPointReadOnly.
But now, this patch changes DOMPoint, and now they are not the same layout. This patch introduced IsoHeap for DOMPoint (this is mandatory), and then, this static_assert is not necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576559</commentid>
    <comment_count>7</comment_count>
      <attachid>380154</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-10-03 12:55:14 -0700</bug_when>
    <thetext>Created attachment 380154
Patch for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577580</commentid>
    <comment_count>8</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-10-07 17:23:58 -0700</bug_when>
    <thetext>*** Bug 201783 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662704</commentid>
    <comment_count>9</comment_count>
      <attachid>380154</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-15 10:50:42 -0700</bug_when>
    <thetext>Comment on attachment 380154
Patch for review

r- because applying the patch does not work. Looks like rebase is necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662741</commentid>
    <comment_count>10</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-06-15 11:47:02 -0700</bug_when>
    <thetext>Replacing SVGRect/SVGPoint/SVGMatrix by DOM equivalents was reverted in the specs: https://github.com/w3c/svgwg/issues/706. So this bug is now invalid and the attached patch should not be considered.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380037</attachid>
            <date>2019-10-02 10:57:53 -0700</date>
            <delta_ts>2019-10-03 10:02:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202479-20191002105752.patch</filename>
            <type>text/plain</type>
            <size>100865</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDA3ZTkxNDk2NDU3NGI1
MDEyMWIwMWJjOWEzOGUxZDZjZTdlMTUyMi4uZDVmNjdjM2E0MDc5N2U1NTcxZTY4NjE0YWZmN2I1
ZGVjZWYyMzMzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5OCBAQAorMjAxOS0xMC0wMiAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ug
RE9NUG9pbnQgYSBET01MaXZlT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDI0NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTVkdQcm9wZXJ0eSBoYXMgdG8gY29tZSBiYWNrIGJlY2F1c2UgRE9N
UG9pbnQgaW5oZXJpdHMgRE9NUG9pbnRSZWFkT25seQorICAgICAgICB3aGljaCBpcyBSZWZDb3Vu
dGVkLiBTbyBET01MaXZlUHJvcGVydHkgY2FuJ3QgYmUgUmVmQ291bnRlZC4gT3RoZXJ3aXNlCisg
ICAgICAgIERPTVBvaW50IHdpbGwgbWFrZSBhIGRpYW1vbmQgaW5oZXJpdGFuY2UuIFNWR1Byb3Bl
cnR5IHdpbGwgaW5oZXJpdCAKKyAgICAgICAgRE9NTGl2ZVByb3BlcnR5IGFuZCBpdCB3aWxsIGJl
IFJlZkNvdW50ZWQuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NTGl2ZVByb3Bl
cnR5Lmg6CisgICAgICAgICogZG9tL0RPTVBvaW50Lmg6CisgICAgICAgICogZG9tL0RPTVBvaW50
LmlkbDoKKyAgICAgICAgKiBkb20vRE9NUG9pbnRSZWFkT25seS5oOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NUG9pbnRSZWFkT25seTo6eEZvckJpbmRpbmdzIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVBvaW50UmVhZE9ubHk6OnlGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpET01Qb2ludFJlYWRPbmx5Ojp6Rm9yQmluZGluZ3MgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NUG9pbnRSZWFkT25seTo6d0ZvckJpbmRpbmdzIGNvbnN0KToKKyAgICAgICAgKiBk
b20vRE9NUG9pbnRSZWFkT25seS5pZGw6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWcuaDoKKyAg
ICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdMaXN0Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRp
ZXMvU1ZHTWVtYmVyQWNjZXNzb3IuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcmlt
aXRpdmVQcm9wZXJ0eUFuaW1hdG9yLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJv
cGVydHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5Ojppc0F0dGFjaGVkIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5OjphdHRhY2gpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmRldGFjaCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6Y29udGV4dEVsZW1lbnQgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmNvbW1pdENoYW5nZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6YWNjZXNzIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5Ojppc1JlYWRPbmx5IGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5Ojppc0RpcnR5IGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5OjpzZXREaXJ0eSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6c3luY2hyb25pemUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OlNWR1Byb3BlcnR5KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeS5oOgorICAg
ICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1NoYXJlZFByaW1pdGl2ZVByb3BlcnR5Lmg6CisgICAg
ICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eS5oOgorICAgICAgICAqIHN2Zy9w
cm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlBbmltYXRvci5oOgorICAgICAgICAqIHN2Zy9wcm9w
ZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlBbmltYXRvckltcGwuaDoKKyAgICAgICAgKiBzdmcvcHJv
cGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yLmg6CisgICAgICAgICogc3ZnL3By
b3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3RBbmltYXRvckltcGwuaDoKKworMjAxOS0xMC0w
MSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAg
IFJlcGxhY2UgU1ZHUHJvcGVydHkvU1ZHUHJvcGVydHlPd25lciBieSBET01MaXZlUHJvcGVydHkv
RE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMTc4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgaXMgYSBzdGVwIHRvd2FyZHMgcmVwbGFjaW5nIFNWR1BvaW50
IGJ5IERPTVBvaW50LgorCisgICAgICAgIC0tIEFkZCBhIG5ldyBjbGFzcywgbmFtZWQgRE9NTGl2
ZVByb3BlcnR5LiBJdHMgam9iIGlzIHRvIGNvbW11bmljYXRlIHRoZQorICAgICAgICAgICBjaGFu
Z2VzIGluIHRoaXMgb2JqZWN0IHRvIGl0cyBvYnNlcnZlci4gVGhpcyBpcyByZXBsYWNpbmcgU1ZH
UHJvcGVydHkuCisgICAgICAgICAgIERPTVBvaW50IHdpbGwgYmUgbWFkZSBpbiBhIHN1cGVyIG9m
IGl0IGFsc28gaW4gYSBmb2xsb3dpbmcgcGF0Y2guCisKKyAgICAgICAgLS0gQWRkIGEgbmV3IGNs
YXNzLCBuYW1lZCBET01MaXZlUHJvcGVydHlPYnNlcnZlciBhbmQgbWFrZSBpdCB0aGUgYmFzZQor
ICAgICAgICAgICBjbGFzcyBvZiBET01MaXZlUHJvcGVydHkgb2JzZXJ2ZXJzLiBDdXJyZW50bHkg
dGhlIGZvbGxvd2luZyBjbGFzcyBhcmUKKyAgICAgICAgICAgbWFkZSBzdXBlciBjbGFzc2VzIG9m
IERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyOgorICAgICAgICAgICAxLiBTVkdFbGVtZW50OiBUaGlz
IG9ic2VydmVzIHRoZSBjaGFuZ2VzIGluIGFsbCB0aGUgU1ZHIHByb3BlcnRpZXMuCisgICAgICAg
ICAgIDIuIFNWR0FuaW1hdGVkUHJvcGVydHk6IFRoaXMgb2JzZXJ2ZXMgdGhlIGNoYW5nZXMgaW4g
aXRzIGJhc2VWYWwuCisgICAgICAgICAgIDMuIFNWR1Byb3BlcnR5TGlzdDogVGhpcyBvYnNlcnZl
cyB0aGUgY2hhbmdlcyBpbiB0aGUgaXRlbXMuCisgICAgICAgICAgIDQuIFNWR1RyYW5zZm9ybTog
VGhpcyBvYnNlcnZlcyB0aGUgY2hhbmdlcyBpbiB0aGUgdW5kZXJseWluZyBTVkdNYXRyaXguCisK
KyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NTGl2ZVByb3BlcnR5Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5Ojppc0F0dGFjaGVkIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6b2JzZXJ2ZXIgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NTGl2ZVByb3BlcnR5OjpkZXRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3Bl
cnR5OjpzdmdDb250ZXh0RWxlbWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01MaXZl
UHJvcGVydHk6OmlzUmVhZE9ubHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVBy
b3BlcnR5Ojpjb21taXRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5
Ojp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0
eTo6RE9NTGl2ZVByb3BlcnR5KToKKyAgICAgICAgKiBkb20vRE9NTGl2ZVByb3BlcnR5T2JzZXJ2
ZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpET01MaXZlUHJvcGVydHlPYnNlcnZlcjo6
b2JzZXJ2ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5T2JzZXJ2
ZXI6OnByb3BlcnR5U1ZHQ29udGV4dEVsZW1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXI6OmlzUHJvcGVydHlSZWFkT25seSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpET01MaXZlUHJvcGVydHlPYnNlcnZlcjo6Y29tbWl0UHJvcGVydHlDaGFu
Z2UpOgorICAgICAgICAqIHN2Zy9TVkdBbmdsZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5n
bGU6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRWxlbWVudDo6Y29tbWl0UHJvcGVydHlDaGFuZ2UpOgorICAgICAgICAqIHN2Zy9T
VkdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aC5oOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTGVuZ3RoOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjp2YWx1
ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6c2V0VmFsdWVGb3JC
aW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OmNvbnZlcnRUb1NwZWNpZmll
ZFVuaXRzKToKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdC5oOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTGVuZ3RoTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aExp
c3Q6OlNWR0xlbmd0aExpc3QpOgorICAgICAgICAqIHN2Zy9TVkdNYXRyaXguaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR01hdHJpeDo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXI6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NW
R051bWJlckxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlckxpc3Q6OmNyZWF0ZSk6
CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWcuaDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0xp
c3QuaDoKKyAgICAgICAgKiBzdmcvU1ZHUG9pbnRMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQb2ludExpc3Q6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0
aW8uaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OmNyZWF0ZSk6
CisgICAgICAgICogc3ZnL1NWR1JlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OmNy
ZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR1N0cmluZ0xpc3QuaDoKKyAgICAgICAgKiBzdmcvU1ZH
VHJhbnNmb3JtLmg6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaDoKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6Om9ic2VydmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6Om93bmVyIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAg
ICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TGlzdC5oOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlQYWlyQWNjZXNzb3JJbXBsLmg6Cisg
ICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5Lmg6CisgICAg
ICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVz
L1NWR01lbWJlckFjY2Vzc29yLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdNZW1iZXJBY2Nlc3Nv
cjo6bWF0Y2hlcyBjb25zdCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUG9pbnRlck1l
bWJlckFjY2Vzc29yLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJpbWl0aXZlUHJv
cGVydHlBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJpbWl0aXZlUHJvcGVydHlB
bmltYXRvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ByaW1pdGl2ZVByb3BlcnR5
QW5pbWF0b3I6OlNWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3IpOgorICAgICAgICAqIHN2Zy9w
cm9wZXJ0aWVzL1NWR1Byb3BlcnR5Lmg6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRp
ZXMvU1ZHUHJvcGVydHlBY2Nlc3Nvci5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1By
b3BlcnR5QW5pbWF0b3JGYWN0b3J5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eUFu
aW1hdG9yRmFjdG9yeTo6Y3JlYXRlQ29sb3JBbmltYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeTo6Y3JlYXRlTGVuZ3RoQW5pbWF0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZUxlbmd0aExpc3RB
bmltYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeTo6
Y3JlYXRlTnVtYmVyQW5pbWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlBbmlt
YXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKToKKyAgICAgICAgKiBzdmcvcHJvcGVy
dGllcy9TVkdQcm9wZXJ0eUxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5TGlz
dDo6U1ZHUHJvcGVydHlMaXN0KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0
eU93bmVyLmg6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlP
d25lclJlZ2lzdHJ5Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlSZWdp
c3RyeS5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1NoYXJlZFByaW1pdGl2ZVByb3Bl
cnR5Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eS5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVmFsdWVQcm9wZXJ0eTo6U1ZHVmFsdWVQcm9wZXJ0eSk6CisgICAg
ICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9yLmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3I6OlNWR1ZhbHVlUHJvcGVydHlBbmlt
YXRvcik6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9y
SW1wbC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZVByb3BlcnR5TGlzdDo6U1ZHVmFsdWVQcm9wZXJ0
eUxpc3QpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0QW5p
bWF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3I6
OlNWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3IpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVz
L1NWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3JJbXBsLmg6CisKKzIwMTktMTAtMDEgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUg
U1ZHUHJvcGVydHlTdGF0ZSBmcm9tIFNWR1Byb3BlcnR5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0MzkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGEgc3RlcCB0b3dhcmRzIHJlcGxhY2lu
ZyBTVkdQb2ludCBieSBET01Qb2ludC4KKworICAgICAgICBTVkdQcm9wZXJ0eSBrZWVwcyBhIG1l
bWJlciBvZiB0eXBlIFNWR1Byb3BlcnR5U3RhdGUgd2hpY2ggdGVsbHMgd2hldGhlcgorICAgICAg
ICBpdCBuZWVkcyB0byBiZSByZS1zZXJpYWxpemVkIHRvIGl0cyBhdHRyaWJ1dGUgb3Igbm90LiBC
dXQgdGhlIGRpcnR5IHN0YXRlCisgICAgICAgIGlzIG9ubHkgc2V0IGluIFNWR0VsZW1lbnQ6OmNv
bW1pdFByb3BlcnR5Q2hhbmdlKCkuCisKKyAgICAgICAgU28gaW5zdGVhZCBvZiBoYXZpbmcgU1ZH
RWxlbWVudCBzZW5kcyB0aGlzIGNoYW5nZSBiYWNrIHRvIHRoZSBwcm9wZXJ0eSwKKyAgICAgICAg
d2UgYXJlIGdvaW5nIHRvIGtlZXAgYSBIYXNoU2V0PFF1YWxpZmllZE5hbWU+IGluIFNWR0VsZW1l
bnQgdG8gdGVsbCB3aGljaAorICAgICAgICBhdHRyaWJ1dGVzIG5lZWQgdG8gYmUgcmUtc2VyaWFs
aXplZC4gQW5kIGluc3RlYWQgb2YgY2FsbGluZyB0aGUgdmlydHVhbAorICAgICAgICBtZXRob2Qg
c3luY2hyb25pemUoKSB3aGljaCB3YXMgcmV0dXJuaW5nIE9wdGlvbmFsPFN0cmluZz4sIHdlIGFy
ZSBnb2luZworICAgICAgICB0byBjYWxsIHRoZSB2aXJ0dWFsIG1ldGhvZCB2YWx1ZUFzU3RyaW5n
KCkgd2hpY2ggcmV0dXJucyBhIFN0cmluZy4KKworICAgICAgICAqIHN2Zy9TVkdFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OnN5bmNocm9uaXplQXR0cmlidXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OnN5bmNocm9uaXplQWxsQXR0cmlidXRlcyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50Ojpjb21taXRQcm9wZXJ0eUNoYW5nZSk6Cisg
ICAgICAgICogc3ZnL1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoLmg6Cisg
ICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3QuaDoKKyAgICAgICAgKiBzdmcvU1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+Ojppbml0aWFsVmFsdWUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlPjo6ZnJvbVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+OjpwYXJzZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
VmFsdWU+Ojp0b1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0ZWREZWNvcmF0ZWRQcm9wZXJ0eS5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFByb3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3Bl
cnR5Ojp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
UHJvcGVydHk6OmlzRGlydHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRQcm9wZXJ0eTo6c2V0RGlydHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6c3luY2hyb25pemUpOiBEZWxldGVkLgorICAgICAgICAqIHN2
Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlMaXN0Lmg6CisgICAgICAgICogc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3NvckltcGwuaDoKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFZhbHVlUHJvcGVydHkuaDoKKyAgICAgICAgKiBz
dmcvcHJvcGVydGllcy9TVkdNZW1iZXJBY2Nlc3Nvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TWVtYmVyQWNjZXNzb3I6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTWVtYmVyQWNjZXNzb3I6OnN5bmNocm9uaXplIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdQb2ludGVyTWVtYmVyQWNjZXNzb3IuaDoKKyAgICAgICAgKiBz
dmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHk6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6ZGV0YWNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5Ojppc0RpcnR5IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5OjpzZXREaXJ0eSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6c3luY2hyb25pemUpOiBEZWxldGVkLgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXJSZWdpc3RyeS5oOgorICAgICAgICAqIHN2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5UmVnaXN0cnkuaDoKKworMjAxOS0xMC0wMSAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBT
VkdQcm9wZXJ0eUFjY2VzcyBmcm9tIFNWR1Byb3BlcnR5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0MTUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGEgc3RlcCB0b3dhcmRzIHJlcGxhY2lu
ZyBTVkdQb2ludCBieSBET01Qb2ludC4KKworICAgICAgICBBbiBTVkdQcm9wZXJ0eSBpcyByZWFk
LW9ubHkgaWYgaXQgb3IgaXRzIG93bmVyIGlzIHRoZSBhbmltVmFsIG9mIGFuCisgICAgICAgIFNW
R0FuaW1hdGVkUHJvcGVydHkgb3IgU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuIEluIHRoaXMgY2Fz
ZSBhbGwgYXR0ZW1wdHMKKyAgICAgICAgdG8gY2hhbmdlIGl0IHRocm91Z2ggSmF2YVNjcmlwdCBz
aG91bGQgdGhyb3cgZXhwZWN0aW9ucy4KKworICAgICAgICBTbyBpbnN0ZWFkIG9mIGtlZXBpbmcg
YSBtZW1iZXIgb2YgU1ZHUHJvcGVydHlBY2Nlc3MgaW4gZWFjaCBTVkdQcm9wZXJ0eSwKKyAgICAg
ICAgd2UgY2FuIHdhbGsgdGhyb3VnaCB0aGUgU1ZHUHJvcGVydHlPd25lciBjaGFpbiB0aWxsIHdl
IHJlYWNoIGFuIG93bmVyIG9mCisgICAgICAgIHR5cGUgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSBvciBT
VkdBbmltYXRlZFByb3BlcnR5TGlzdC4gVGhpcyBvd25lciBjb21wYXJlcworICAgICAgICB0aGUg
cHJvcGVydHkgdG8gYmUgbW9kaWZpZWQgd2l0aCBpdHMgYW5pbVZhbC4gQW5kIGlmIHRoZXkgYXJl
IHRoZSBzYW1lLAorICAgICAgICBpdCB3aWxsIHJldHVybiAndHJ1ZScgdGhyb3VnaCBpdHMgdmly
dHVhbCBtZXRob2QgaXNQcm9wZXJ0eVJlYWRPbmx5KCkuCisKKyAgICAgICAgKiBzdmcvU1ZHQW5n
bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpjcmVhdGUpOgorICAgICAgICAqIHN2
Zy9TVkdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aC5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGVuZ3RoOjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhMaXN0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGhMaXN0OjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGVuZ3RoTGlzdDo6U1ZHTGVuZ3RoTGlzdCk6CisgICAgICAgICogc3ZnL1NWR01h
dHJpeC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpjcmVhdGUpOgorICAgICAgICAq
IHN2Zy9TVkdOdW1iZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlcjo6Y3JlYXRlKToK
KyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTnVt
YmVyTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0xpc3QuaDoKKyAgICAg
ICAgKiBzdmcvU1ZHUG9pbnRMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3Q6
OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OmNyZWF0ZSk6CisgICAgICAgICog
c3ZnL1NWR1JlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OmNyZWF0ZSk6CisgICAg
ICAgICogc3ZnL1NWR1RyYW5zZm9ybS5oOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1MaXN0
Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHlMaXN0OjpTVkdBbmltYXRlZFBy
b3BlcnR5TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5TGlzdDo6
ZW5zdXJlQW5pbVZhbCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRWYWx1
ZVByb3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFZhbHVlUHJvcGVydHk6
OlNWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZFZhbHVlUHJvcGVydHk6OmVuc3VyZUFuaW1WYWwpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVz
L1NWR1Byb3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6YXR0YWNoKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5OjpkZXRhY2gpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJvcGVydHk6OmNvbnRleHRFbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Byb3BlcnR5Ojppc1JlYWRPbmx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1By
b3BlcnR5OjpTVkdQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6YWNj
ZXNzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0
eUxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5TGlzdDo6U1ZHUHJvcGVydHlM
aXN0KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eU93bmVyOjppc1Byb3BlcnR5UmVhZE9ubHkgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlPd25lcjo6cHJvcGVydHlDb250ZXh0RWxl
bWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eU93bmVyOjphdHRyaWJ1
dGVDb250ZXh0RWxlbWVudCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRp
ZXMvU1ZHVmFsdWVQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWVQcm9wZXJ0
eTo6U1ZHVmFsdWVQcm9wZXJ0eSk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQ
cm9wZXJ0eUxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlUHJvcGVydHlMaXN0OjpT
VkdWYWx1ZVByb3BlcnR5TGlzdCk6CisKKzIwMTktMTAtMDEgIFNhaWQgQWJvdS1IYWxsYXdhICA8
c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHRoZSBTVkcgcHJvcGVydGll
cyBvZiBTVkdWaWV3U3BlYyBtb2RpZmlhYmxlIGJ1dCBkZXRhY2hlZCBwcm9wZXJ0aWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0MTEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUbyBmYWNpbGl0YXRl
IGFjY2Vzc2luZyB0aGUgU1ZHUHJvcGVydGllcywgbWFrZSBhbGwgdGhlIHByb3BlcnRpZXMgb2YK
KyAgICAgICAgU1ZHVmlld1NwZWMgbW9kaWZpYWJsZSBidXQgZGV0YWNoZWQgcHJvcGVydGllcy4g
VGhpcyB3aWxsIGJlIGluIGNvbXBsaWFuY2UKKyAgICAgICAgd2l0aCB0aGUgc3BlY3M6IGh0dHBz
Oi8vd3d3LnczLm9yZy9UUi9TVkcxMS90eXBlcy5odG1sI0ludGVyZmFjZVNWR1ZpZXdTcGVjLgor
CisgICAgICAgICogc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdGaXRUb1ZpZXdCb3g6OlNWR0ZpdFRvVmlld0JveCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
aXRUb1ZpZXdCb3g6OnBhcnNlVmlld0JveCk6CisgICAgICAgICogc3ZnL1NWR0ZpdFRvVmlld0Jv
eC5oOgorICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdWaWV3U3BlYzo6U1ZHVmlld1NwZWMpOgorICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5oOgor
CiAyMDE5LTEwLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCBhdHRlbXB0IHRvIGZpeCBXaW5kb3dzIGJ1aWxkIGFmdGVyIHIyNTA1MjcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQppbmRleCA1NGFmMjJkYWRlNjUzZmQzYWJhNzg2YzE1OWZlMDBkMmYwYThi
ZDk0Li4zNTkzNzYyZjk2MGUyZjAxMjgyZmY5Yjk4OWEwYWJlNjY0N2JlZjQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKQEAgLTM2MCw2ICszNjAsOCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09S
S19IRUFERVJTCiAgICAgZG9tL0RPTUV4Y2VwdGlvbi5oCiAgICAgZG9tL0RPTUhpZ2hSZXNUaW1l
U3RhbXAuaAogICAgIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5oCisgICAgZG9tL0RPTUxpdmVQcm9w
ZXJ0eS5oCisgICAgZG9tL0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmgKICAgICBkb20vRE9NUGFz
dGVBY2Nlc3MuaAogICAgIGRvbS9ET01SZWN0LmgKICAgICBkb20vRE9NUmVjdEluaXQuaApAQCAt
MTM5MCw3ICsxMzkyLDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwog
ICAgIHN2Zy9wcm9wZXJ0aWVzL1NWR0xpc3QuaAogICAgIHN2Zy9wcm9wZXJ0aWVzL1NWR1ByaW1p
dGl2ZUxpc3QuaAogICAgIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5LmgKLSAgICBzdmcvcHJv
cGVydGllcy9TVkdQcm9wZXJ0eU93bmVyLmgKICAgICBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0
eVRyYWl0cy5oCiAKICAgICB0ZXN0aW5nL01vY2tHYW1lcGFkLmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhMTc2MWM2N2I0Yzk1
ZDhlYWI0NzdhN2MwMGFlNTU0NWQyM2E3OWVlLi4zMTQ4ZjRjMzllNmEyYWQ3ODVjMWQ3OWZkZDIw
MzM1OTgyNzM1ZGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0yMDg1LDEyICsyMDg1LDEzIEBACiAJCTcxRUZDRURDMjAyQjM4
QTkwMEQ3QzQxMSAvKiBBbmltYXRpb25FZmZlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxRUZDRUQ3MjAyQjM4OEQwMEQ3QzQxMSAvKiBBbmltYXRp
b25FZmZlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3MjE0NDMzMTIyM0VDODU0MDBGMTJGRjcgLyogKG51bGwpIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTcyMTQ0MzMyMjIzRUM4NUYwMEYxMkZGNyAvKiAobnVsbCkgaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJNzIxNDQzMzMyMjNFQzhCMDAwRjEyRkY3IC8qIFNWR1Byb3BlcnR5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUVFNTM2MzIy
M0IyQTI0MDBGQkE5NDQgLyogU1ZHUHJvcGVydHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk3MjE0NDMzNDIyM0VDOTE2MDBGMTJGRjcgLyogU1ZH
UHJvcGVydHlPd25lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTVFRTUzNjAyMjNCMkEyMTAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5T3duZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjI4M0YwRTIz
MEIyNjhDMDBGNUQ4MjggLyogSW1hZ2VQYWludGluZ09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyQzE4QTNGMjMwQjA0QjcwMDY4NDdDNyAv
KiBJbWFnZVBhaW50aW5nT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTcyNEVEMzMyMUEzQThCMjMwMEY1RjEzQyAvKiBKU0VYVEJsZW5k
TWluTWF4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
MjRFRDMzMDFBM0E4QjIzMDBGNUYxM0MgLyogSlNFWFRCbGVuZE1pbk1heC5oICovOyB9OwogCQk3
MjRFRTU1MDFEQzgwRDdGMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUU1NEUxREM3RjI1QjAwQTkxRkZC
IC8qIEFjdGl2aXR5U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk3MjRFRTU1MTFEQzgwRDg0MDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNo
YW5nZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3MjRFRTU0RjFEQzdGMjVCMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2Vy
dmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
NzI4MzE1QzEyMzQ0NDAxNTAwMDdEMjc3IC8qIERPTUxpdmVQcm9wZXJ0eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI4MzE1QzAyMzQ0MjI5MjAwMDdE
Mjc3IC8qIERPTUxpdmVQcm9wZXJ0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTcyODMxNUMyMjM0NDQwMjIwMDA3RDI3NyAvKiBET01MaXZlUHJv
cGVydHlPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzI4MzE1QkUyMzQ0MjI5MTAwMDdEMjc3IC8qIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzI4
MzE1QzcyMzQ1MTgyMzAwMDdEMjc3IC8qIFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjgzMTVDNTIzNDUwRkMyMDAwN0QyNzcgLyog
U1ZHUHJvcGVydHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk3NTUzQ0ZFODEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZF
NjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi87IH07CiAJCTc1
NzkzRTg0MEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRTgxMEQwQ0UwQjMwMDdGQzBBQyAv
KiBNZXNzYWdlRXZlbnQuaCAqLzsgfTsKIAkJNzU3OTNFQzkwRDBDRTcyRDAwN0ZDMEFDIC8qIEpT
TWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3NTc5M0VDNzBEMENFNzJEMDA3RkMwQUMgLyogSlNNZXNzYWdlRXZlbnQuaCAqLzsgfTsK
QEAgLTg1NjUsMTAgKzg1NjYsOCBAQAogCQk1NUVFNTM1RDIyM0IyQTBEMDBGQkE5NDQgLyogU1ZH
QW5pbWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3NvckltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3NvckltcGwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVFRTUzNUUyMjNCMkEwRTAwRkJBOTQ0IC8qIFNWR0Fu
aW1hdGlvbkFkZGl0aXZlVmFsdWVGdW5jdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTVkdBbmltYXRpb25BZGRpdGl2ZVZhbHVlRnVuY3Rpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTVFRTUzNUYyMjNCMkEwRjAwRkJBOTQ0IC8qIFNWR0FuaW1hdGVk
UHJvcGVydHlQYWlyQW5pbWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBbmltYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk1NUVFNTM2MDIyM0IyQTIxMDBGQkE5NDQgLyogU1ZHUHJvcGVydHlPd25lci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQcm9wZXJ0eU93bmVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1RUU1MzYxMjIzQjJBMjIwMEZCQTk0NCAvKiBTVkdB
dHRyaWJ1dGVBbmltYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTVkdBdHRyaWJ1dGVBbmltYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU1RUU1MzYyMjIzQjJBMjMwMEZCQTk0NCAvKiBTVkdBbmltYXRlZFByb3BlcnR5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkUHJvcGVydHkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTVFRTUzNjMyMjNCMkEyNDAwRkJBOTQ0IC8qIFNWR1By
b3BlcnR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1Byb3BlcnR5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1RUU1MzY0MjIzQjJBMjQwMEZCQTk0NCAv
KiBTVkdBdHRyaWJ1dGVBbmltYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTVkdBdHRyaWJ1dGVBbmltYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
NUZBN0ZGQTIxMTBFQ0Q3MDA1QUVGRTcgLyogU1ZHWm9vbUFuZFBhblR5cGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU1ZHWm9vbUFuZFBhblR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTcwNDQwNTcxRTUzODUxNjAwMzU2NjAxIC8qIENyeXB0b0FsZ29yaXRobUFFU19DRkJNYWMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtQUVT
X0NGQk1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NDQ5LDYgKzk0NDgs
OSBAQAogCQk3MjdBRkVEMTFBMkVBNkEwMDAwNDQyRTggLyogRVhUc1JHQi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFWFRzUkdCLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzI3QUZFRDIxQTJFQTZBMDAwMDQ0MkU4IC8qIEVYVHNSR0IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRVhUc1JHQi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3MjdBRkVEMzFBMkVBNkEwMDAwNDQyRTggLyogRVhUc1JHQi5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gRVhUc1JHQi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTcyODMxNUJFMjM0NDIyOTEwMDA3RDI3NyAvKiBET01MaXZlUHJvcGVydHlPYnNlcnZl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01MaXZlUHJvcGVydHlPYnNl
cnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjgzMTVDMDIzNDQyMjkyMDAw
N0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTUxpdmVQcm9wZXJ0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Mjgz
MTVDNTIzNDUwRkMyMDAwN0QyNzcgLyogU1ZHUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU1ZHUHJvcGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIEltYWdlUGFpbnRpbmdPcHRpb25zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEltYWdlUGFpbnRpbmdPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTcyRTQxNzYxMUEyRThEMkYwMDRDNTYyQSAvKiBKU0VYVHNSR0IuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFWFRzUkdCLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJFNDE3NjIxQTJFOEQyRjAwNEM1NjJBIC8qIEpTRVhUc1JH
Qi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0VYVHNSR0IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MTYzLDEzICsxNjE2NSwxMiBAQAogCQkJCTU1REND
NTI1MjI0MDc0OUUwMEMyNkUzMiAvKiBTVkdQcmltaXRpdmVMaXN0LmggKi8sCiAJCQkJNzI2NkYw
MTUyMjQxQzA5ODAwODMzOTc1IC8qIFNWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3IuaCAqLywK
IAkJCQk3MjY2RjAxNDIyNDFCRkIyMDA4MzM5NzUgLyogU1ZHUHJpbWl0aXZlUHJvcGVydHlBbmlt
YXRvckltcGwuaCAqLywKLQkJCQk1NUVFNTM2MzIyM0IyQTI0MDBGQkE5NDQgLyogU1ZHUHJvcGVy
dHkuaCAqLywKKwkJCQk3MjgzMTVDNTIzNDUwRkMyMDAwN0QyNzcgLyogU1ZHUHJvcGVydHkuaCAq
LywKIAkJCQk1NURDQzUyNjIyNDA3NEZBMDBDMjZFMzIgLyogU1ZHUHJvcGVydHlBY2Nlc3Nvci5o
ICovLAogCQkJCTU1RENDNTI3MjI0MDc1MEIwMEMyNkUzMiAvKiBTVkdQcm9wZXJ0eUFjY2Vzc29y
SW1wbC5oICovLAogCQkJCTcyNjZGMDE2MjI0MUMwRkUwMDgzMzk3NSAvKiBTVkdQcm9wZXJ0eUFu
aW1hdG9yLmggKi8sCiAJCQkJNzI2NkYwMTMyMjQxQkNFMjAwODMzOTc1IC8qIFNWR1Byb3BlcnR5
QW5pbWF0b3JGYWN0b3J5LmggKi8sCiAJCQkJNzI2NkYwMjcyMjQzMTA5MjAwODMzOTc1IC8qIFNW
R1Byb3BlcnR5TGlzdC5oICovLAotCQkJCTU1RUU1MzYwMjIzQjJBMjEwMEZCQTk0NCAvKiBTVkdQ
cm9wZXJ0eU93bmVyLmggKi8sCiAJCQkJNTVCRTAyNUMyMjNCMjlDMzAwMzJGMDhBIC8qIFNWR1By
b3BlcnR5T3duZXJSZWdpc3RyeS5oICovLAogCQkJCTU1QkUwMjU3MjIzQjI5QzAwMDMyRjA4QSAv
KiBTVkdQcm9wZXJ0eVJlZ2lzdHJ5LmggKi8sCiAJCQkJMDg4QTBFMDMxMjZFRjFEQjAwOTc4RjdB
IC8qIFNWR1Byb3BlcnR5VHJhaXRzLmggKi8sCkBAIC0yNzU1OSw2ICsyNzU2MCw4IEBACiAJCQkJ
QTgxODVGMzYwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUltcGxlbWVudGF0aW9uLmNwcCAqLywKIAkJ
CQlBODE4NUYzMzA5NzY1NzY1MDA1ODI2RDkgLyogRE9NSW1wbGVtZW50YXRpb24uaCAqLywKIAkJ
CQk5M0VFQzFFOTA5QzI4Nzc3MDBDNTE1RDEgLyogRE9NSW1wbGVtZW50YXRpb24uaWRsICovLAor
CQkJCTcyODMxNUMwMjM0NDIyOTIwMDA3RDI3NyAvKiBET01MaXZlUHJvcGVydHkuaCAqLywKKwkJ
CQk3MjgzMTVCRTIzNDQyMjkxMDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIuaCAq
LywKIAkJCQlGNEI0MjJDMjIyMEMwMDAwMDA5RTFFN0QgLyogRE9NUGFzdGVBY2Nlc3MuaCAqLywK
IAkJCQkwRjQ5NjY5OTFEQjQwOEMxMDBBMjc0QkIgLyogRE9NUG9pbnQuaCAqLywKIAkJCQkwRjQ5
NjY5QTFEQjQwOEMxMDBBMjc0QkIgLyogRE9NUG9pbnQuaWRsICovLApAQCAtMjkxNTMsNiArMjkx
NTYsOCBAQAogCQkJCUUzQTc3NjY3MURDODVEMjgwMEI2OTBEOCAvKiBET01KSVRJRExDb252ZXJ0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0E3NzY2ODFEQzg1RDI4MDBCNjkwRDggLyogRE9NSklU
SURMVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTM1ODAyQjYxREM4NDM1RDAwQTk3NzNDIC8q
IERPTUpJVElETFR5cGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTcyODMxNUMxMjM0NDQw
MTUwMDA3RDI3NyAvKiBET01MaXZlUHJvcGVydHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTcyODMx
NUMyMjM0NDQwMjIwMDA3RDI3NyAvKiBET01MaXZlUHJvcGVydHlPYnNlcnZlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODM2QUNFQ0ExRUNBOTU2OTAwNEJEMDEyIC8qIERPTU1hdHJpeC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0NCQkJDQzcxRjU2MDU4MTAwNUVGQUFDIC8qIERPTU1hdHJpeDJESW5p
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2QUNFQ0IxRUNBOTU2RDAwNEJEMDEyIC8qIERPTU1h
dHJpeEluaXQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE5NzYsOCArMzE5ODEsNyBAQAogCQkJCUIy
MjI3QTk0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2x5bGluZUVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QTk3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NURDQzUyODIyNDA3QjIwMDBDMjZFMzIgLyogU1ZH
UHJpbWl0aXZlTGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNzIxNDQzMzMyMjNFQzhCMDAwRjEy
RkY3IC8qIFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKLQkJCQk3MjE0NDMzNDIyM0VDOTE2
MDBGMTJGRjcgLyogU1ZHUHJvcGVydHlPd25lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzI4MzE1
QzcyMzQ1MTgyMzAwMDdEMjc3IC8qIFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
ODhBMEUwQzEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUcmFpdHMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QTlBMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdSYWRpYWxHcmFkaWVudEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4RURFMTlGMTJBNTBCOEUwMEI5NTc5NyAvKiBT
VkdSZWN0LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
T01MaXZlUHJvcGVydHkuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01MaXZlUHJvcGVydHkuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40NDU1ZDI0OGI1YjEwMzMwOWYyNjQyYjJkOTRiY2MwY2Q0YTM3NDNhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUxpdmVQcm9wZXJ0eS5oCkBAIC0w
LDAgKzEsODAgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6Cisq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01MaXZlUHJvcGVydHkg
eworcHVibGljOgorICAgIC8vIE1hbmFnaW5nIHRoZSByZWxhdGlvbnNoaXAgd2l0aCB0aGUgb2Jz
ZXJ2ZXIuCisgICAgYm9vbCBpc0F0dGFjaGVkKCkgY29uc3QgeyByZXR1cm4gbV9vYnNlcnZlcjsg
fQorICAgIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcigpIGNvbnN0IHsgcmV0dXJu
IG1fb2JzZXJ2ZXI7IH0KKworICAgIHZvaWQgYXR0YWNoKERPTUxpdmVQcm9wZXJ0eU9ic2VydmVy
KiBvYnNlcnZlcikKKyAgICB7CisgICAgICAgIEFTU0VSVCghbV9vYnNlcnZlcik7CisgICAgICAg
IG1fb2JzZXJ2ZXIgPSBvYnNlcnZlcjsKKyAgICB9CisKKyAgICB2b2lkIGRldGFjaCgpCisgICAg
eworICAgICAgICBtX29ic2VydmVyID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICAvLyBUcmF2ZXJz
ZSB0aGUgb2JzZXJ2ZXJzIGNoYWluIHRpbGwgYW4gRWxlbWVudCBvYnNlcnZlciBpcyByZWFjaGVk
LgorICAgIGNvbnN0IFNWR0VsZW1lbnQqIHN2Z0NvbnRleHRFbGVtZW50KCkgY29uc3QKKyAgICB7
CisgICAgICAgIGlmICghbV9vYnNlcnZlcikKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgICAgICByZXR1cm4gbV9vYnNlcnZlci0+cHJvcGVydHlTVkdDb250ZXh0RWxlbWVudCgpOwor
ICAgIH0KKworICAgIGJvb2wgaXNSZWFkT25seSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gbV9vYnNlcnZlciAmJiBtX29ic2VydmVyLT5pc1Byb3BlcnR5UmVhZE9ubHkoKnRoaXMpOwor
ICAgIH0KKworICAgIC8vIENvbW1pdCB0aGUgbGl2ZSBwcm9wZXJ0eSBjaGFuZ2VzIHZpYSB0aGUg
b2JzZXJ2ZXJzIGNoYWluLgorICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkKKyAgICB7CisgICAgICAg
IGlmICghbV9vYnNlcnZlcikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9vYnNlcnZl
ci0+Y29tbWl0UHJvcGVydHlDaGFuZ2UodGhpcyk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAg
RE9NTGl2ZVByb3BlcnR5KERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlciA9IG51bGxw
dHIpCisgICAgICAgIDogbV9vYnNlcnZlcihvYnNlcnZlcikKKyAgICB7CisgICAgfQorCisgICAg
RE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG1fb2JzZXJ2ZXIgeyBudWxscHRyIH07Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9N
TGl2ZVByb3BlcnR5T2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01MaXZlUHJvcGVy
dHlPYnNlcnZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwYTkwN2FjMTY2MDE5N2ZkMmMyNTdiZGI2OThlYmIz
M2M5NzUyMGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NTGl2ZVBy
b3BlcnR5T2JzZXJ2ZXIuaApAQCAtMCwwICsxLDY1IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLwor
CisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01MaXZlUHJv
cGVydHk7CitjbGFzcyBTVkdFbGVtZW50OworCitjbGFzcyBET01MaXZlUHJvcGVydHlPYnNlcnZl
ciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+RE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIoKSA9IGRl
ZmF1bHQ7CisKKyAgICAvLyBUaGUgb2JzZXJ2ZXIgaXRzZWxmIG1heSBoYXZlIGFuIG9ic2VydmVy
LgorICAgIHZpcnR1YWwgRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyKCkgY29uc3Qg
eyByZXR1cm4gbnVsbHB0cjsgfQorCisgICAgLy8gVHJhdmVyc2UgdGhlIG9ic2VydmVycyBjaGFp
biB0aWxsIGFuIEVsZW1lbnQgb2JzZXJ2ZXIgaXMgcmVhY2hlZC4KKyAgICB2aXJ0dWFsIGNvbnN0
IFNWR0VsZW1lbnQqIHByb3BlcnR5U1ZHQ29udGV4dEVsZW1lbnQoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgaWYgKCFvYnNlcnZlcigpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
ICAgIHJldHVybiBvYnNlcnZlcigpLT5wcm9wZXJ0eVNWR0NvbnRleHRFbGVtZW50KCk7CisgICAg
fQorCisgICAgdmlydHVhbCBib29sIGlzUHJvcGVydHlSZWFkT25seShjb25zdCBET01MaXZlUHJv
cGVydHkmIHByb3BlcnR5KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG9ic2VydmVyKCkg
JiYgb2JzZXJ2ZXIoKS0+aXNQcm9wZXJ0eVJlYWRPbmx5KHByb3BlcnR5KTsKKyAgICB9CisKKyAg
ICAvLyBDb21taXQgdGhlIGxpdmUgcHJvcGVydHkgY2hhbmdlcyB2aWEgdGhlIG9ic2VydmVycyBj
aGFpbi4KKyAgICB2aXJ0dWFsIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoRE9NTGl2ZVByb3Bl
cnR5KiBwcm9wZXJ0eSkKKyAgICB7CisgICAgICAgIGlmICghb2JzZXJ2ZXIoKSkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgb2JzZXJ2ZXIoKS0+Y29tbWl0UHJvcGVydHlDaGFuZ2UocHJv
cGVydHkpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVy
KCkgPSBkZWZhdWx0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9p
bnQuaAppbmRleCA3NzI3N2Q3ZjIxYjNmNGJjYzNjNDA0ZDUzZWUxZWM4Y2IwMzUzYmMzLi4xMzQ1
ZmZlNjdmZjI3OWRjYzBiOTg0NGNjZWUyMDBmNzU3ZjdlODc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NUG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnQu
aApAQCAtMzAsMTEgKzMwLDEyIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRE9NTGl2
ZVByb3BlcnR5LmgiCiAjaW5jbHVkZSAiRE9NUG9pbnRSZWFkT25seS5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIERPTVBvaW50IGZpbmFsIDogcHVibGljIERPTVBvaW50UmVhZE9u
bHkgeworY2xhc3MgRE9NUG9pbnQgZmluYWwgOiBwdWJsaWMgRE9NUG9pbnRSZWFkT25seSwgcHVi
bGljIERPTUxpdmVQcm9wZXJ0eSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxET01Qb2ludD4g
Y3JlYXRlKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHogPSAwLCBkb3VibGUgdyA9IDEpIHsg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NUG9pbnQoeCwgeSwgeiwgdykpOyB9CiAgICAgc3RhdGlj
IFJlZjxET01Qb2ludD4gY3JlYXRlKGNvbnN0IERPTVBvaW50SW5pdCYgaW5pdCkgeyByZXR1cm4g
Y3JlYXRlKGluaXQueCwgaW5pdC55LCBpbml0LnosIGluaXQudyk7IH0KQEAgLTQ1LDEyICs0Niw1
MyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRaKGRvdWJsZSB6KSB7IG1feiA9IHo7IH0KICAgICB2
b2lkIHNldFcoZG91YmxlIHcpIHsgbV93ID0gdzsgfQogCisgICAgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0WEZvckJpbmRpbmdzKGRvdWJsZSB4KQorICAgIHsKKyAgICAgICAgaWYgKGlzUmVhZE9ubHko
KSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRF
cnJvciB9OworCisgICAgICAgIG1feCA9IHg7CisgICAgICAgIGNvbW1pdENoYW5nZSgpOworICAg
ICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFlGb3JC
aW5kaW5ncyhkb3VibGUgeSkKKyAgICB7CisgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCisgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsK
KworICAgICAgICBtX3kgPSB5OworICAgICAgICBjb21taXRDaGFuZ2UoKTsKKyAgICAgICAgcmV0
dXJuIHsgfTsKKyAgICB9CisgICAgCisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0WkZvckJpbmRp
bmdzKGRvdWJsZSB6KQorICAgIHsKKyAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKKyAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OworCisg
ICAgICAgIG1feiA9IHo7CisgICAgICAgIGNvbW1pdENoYW5nZSgpOworICAgICAgICByZXR1cm4g
eyB9OworICAgIH0KKyAgICAKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRXRm9yQmluZGluZ3Mo
ZG91YmxlIHcpCisgICAgeworICAgICAgICBpZiAoaXNSZWFkT25seSgpKQorICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CisKKyAgICAg
ICAgbV93ID0gdzsKKyAgICAgICAgY29tbWl0Q2hhbmdlKCk7CisgICAgICAgIHJldHVybiB7IH07
CisgICAgfQorCiBwcml2YXRlOgogICAgIERPTVBvaW50KGRvdWJsZSB4LCBkb3VibGUgeSwgZG91
YmxlIHosIGRvdWJsZSB3KQogICAgICAgICA6IERPTVBvaW50UmVhZE9ubHkoeCwgeSwgeiwgdykK
ICAgICB7CiAgICAgfQogfTsKLXN0YXRpY19hc3NlcnQoc2l6ZW9mKERPTVBvaW50KSA9PSBzaXpl
b2YoRE9NUG9pbnRSZWFkT25seSksICIiKTsKKworc3RhdGljX2Fzc2VydChzaXplb2YoRE9NUG9p
bnQpID09IHNpemVvZihET01Qb2ludFJlYWRPbmx5KSArIHNpemVvZihET01MaXZlUHJvcGVydHkp
LCAiIik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01Qb2ludC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnQuaWRsCmlu
ZGV4IDY5YmJjMmQwZmYyMDc2MTQ2ZmZkNTUyNzA0ZDU3NjIyNTE5ZGQ2MDUuLmExYmU1ZTBhY2Jl
ZmJkZTlhODQ3MjIwZGI4YjQ2NTE4OTFhMzZlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01Qb2ludC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50LmlkbApA
QCAtNDAsOCArNDAsOCBAQAogaW50ZXJmYWNlIERPTVBvaW50IDogRE9NUG9pbnRSZWFkT25seSB7
CiAgICAgW05ld09iamVjdF0gc3RhdGljIERPTVBvaW50IGZyb21Qb2ludChvcHRpb25hbCBET01Q
b2ludEluaXQgb3RoZXIpOwogCi0gICAgaW5oZXJpdCBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRv
dWJsZSB4OwotICAgIGluaGVyaXQgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgeTsKLSAg
ICBpbmhlcml0IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHo7Ci0gICAgaW5oZXJpdCBh
dHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB3OworICAgIFtJbXBsZW1lbnRlZEFzPXhGb3JC
aW5kaW5nc10gaW5oZXJpdCBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB4OworICAgIFtJ
bXBsZW1lbnRlZEFzPXlGb3JCaW5kaW5nc10gaW5oZXJpdCBhdHRyaWJ1dGUgdW5yZXN0cmljdGVk
IGRvdWJsZSB5OworICAgIFtJbXBsZW1lbnRlZEFzPXpGb3JCaW5kaW5nc10gaW5oZXJpdCBhdHRy
aWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB6OworICAgIFtJbXBsZW1lbnRlZEFzPXdGb3JCaW5k
aW5nc10gaW5oZXJpdCBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB3OwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludFJlYWRPbmx5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRE9NUG9pbnRSZWFkT25seS5oCmluZGV4IDBhNjhmZGYxYmMxOTRlNDMxN2UxYjU1
ZmFkODlkNDZkYWVmZTcyMTEuLmU5NDU5Zjc2ZDI5MmE0YzcyMTkzMDI1ZDc3MzE3NTZlOTg1NTI3
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludFJlYWRPbmx5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50UmVhZE9ubHkuaApAQCAtNTIsNiArNTIsMTEg
QEAgcHVibGljOgogICAgIGRvdWJsZSB6KCkgY29uc3QgeyByZXR1cm4gbV96OyB9CiAgICAgZG91
YmxlIHcoKSBjb25zdCB7IHJldHVybiBtX3c7IH0KIAorICAgIGRvdWJsZSB4Rm9yQmluZGluZ3Mo
KSBjb25zdCB7IHJldHVybiBtX3g7IH0KKyAgICBkb3VibGUgeUZvckJpbmRpbmdzKCkgY29uc3Qg
eyByZXR1cm4gbV95OyB9CisgICAgZG91YmxlIHpGb3JCaW5kaW5ncygpIGNvbnN0IHsgcmV0dXJu
IG1fejsgfQorICAgIGRvdWJsZSB3Rm9yQmluZGluZ3MoKSBjb25zdCB7IHJldHVybiBtX3c7IH0K
KwogICAgIEV4Y2VwdGlvbk9yPFJlZjxET01Qb2ludD4+IG1hdHJpeFRyYW5zZm9ybShET01NYXRy
aXhJbml0JiYpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NUG9pbnRSZWFkT25seS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnRS
ZWFkT25seS5pZGwKaW5kZXggM2ZmZDY2ZmQ3MTIxYTlkYzdjYzVmODU3M2E3NmE3ODk3NDRmOTY4
ZS4uZTM1NWY2ZGE1YzVkNzRmMGQ0YmFjZjNkYWNmYjFkN2Y4MjhlMDVjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01Qb2ludFJlYWRPbmx5LmlkbApAQCAtMzksMTAgKzM5LDEwIEBACiBpbnRlcmZh
Y2UgRE9NUG9pbnRSZWFkT25seSB7CiAgICAgW05ld09iamVjdF0gc3RhdGljIERPTVBvaW50UmVh
ZE9ubHkgZnJvbVBvaW50KG9wdGlvbmFsIERPTVBvaW50SW5pdCBvdGhlcik7CiAKLSAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB4OwotICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHk7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVz
dHJpY3RlZCBkb3VibGUgejsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRv
dWJsZSB3OworICAgIFtJbXBsZW1lbnRlZEFzPXhGb3JCaW5kaW5nc10gcmVhZG9ubHkgYXR0cmli
dXRlIHVucmVzdHJpY3RlZCBkb3VibGUgeDsKKyAgICBbSW1wbGVtZW50ZWRBcz14Rm9yQmluZGlu
Z3NdIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHk7CisgICAgW0ltcGxl
bWVudGVkQXM9eEZvckJpbmRpbmdzXSByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRv
dWJsZSB6OworICAgIFtJbXBsZW1lbnRlZEFzPXhGb3JCaW5kaW5nc10gcmVhZG9ubHkgYXR0cmli
dXRlIHVucmVzdHJpY3RlZCBkb3VibGUgdzsKIAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9N
UG9pbnQgbWF0cml4VHJhbnNmb3JtKG9wdGlvbmFsIERPTU1hdHJpeEluaXQgbWF0cml4KTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5nbGUuaAppbmRleCA5YzYxNzMyYWU5MzFjOTg1NGU3NTY5ZTFjYjIyYTZlZDhk
YWY1YjAzLi4wNGIyMTZmYTc2ZWUwYWMyODc2YTYzZTBkNmIzOTU0YTM4NjVhZWYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5nbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5nbGUuaApAQCAtNDEsOSArNDEsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNWR0FuZ2xlKHZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxT
VkdBbmdsZT4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2Vz
cyBhY2Nlc3MsIGNvbnN0IFNWR0FuZ2xlVmFsdWUmIHZhbHVlID0geyB9KQorICAgIHN0YXRpYyBS
ZWY8U1ZHQW5nbGU+IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIsIGNv
bnN0IFNWR0FuZ2xlVmFsdWUmIHZhbHVlID0geyB9KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHQW5nbGUob3duZXIsIGFjY2VzcywgdmFsdWUpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5nbGUob2JzZXJ2ZXIsIHZhbHVlKSk7CiAgICAgfQogCiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCAx
NmMzYWZjMjE1M2I2OGRhOWQ4NTM2NTY5NjI2MDVjOGUxMGE1YWY0Li4yMDRjMjJiYjM2ZGRhMDg2
MjgxMzkxNzIzMGZkNGU5NDAxMWY0OTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCkBA
IC01NDEsMjAgKzU0MSwyMyBAQCB2b2lkIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgbwogICAgICAgICBzdmdB
dHRyaWJ1dGVDaGFuZ2VkKG5hbWUpOwogfQogCi12b2lkIFNWR0VsZW1lbnQ6OnN5bmNocm9uaXpl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpCit2b2lkIFNWR0VsZW1lbnQ6OnN5
bmNocm9uaXplQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCiB7
Ci0gICAgLy8gSWYgdGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBoYXMgY2hhbmdlZCwgc2VyaWFs
aXplIHRoZSBuZXcgdmFsdWUgdG8gdGhlIGF0dHJpYnV0ZS4KLSAgICBpZiAoYXV0byB2YWx1ZSA9
IHByb3BlcnR5UmVnaXN0cnkoKS5zeW5jaHJvbml6ZShuYW1lKSkKLSAgICAgICAgc2V0U3luY2hy
b25pemVkTGF6eUF0dHJpYnV0ZShuYW1lLCAqdmFsdWUpOworICAgIGF1dG8gaXQgPSBtX2RpcnR5
QXR0cmlidXRlcy5maW5kKGF0dHJpYnV0ZU5hbWUpOworICAgIGlmIChpdCA9PSBtX2RpcnR5QXR0
cmlidXRlcy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIC8vIElmIHRoZSB2YWx1
ZSBvZiB0aGUgcHJvcGVydHkgaGFzIGNoYW5nZWQsIHJlc2VyaWFsaXplIHRoZSBuZXcgdmFsdWUg
dG8gdGhlIGF0dHJpYnV0ZS4KKyAgICBzZXRTeW5jaHJvbml6ZWRMYXp5QXR0cmlidXRlKGF0dHJp
YnV0ZU5hbWUsIHByb3BlcnR5UmVnaXN0cnkoKS52YWx1ZUFzU3RyaW5nKGF0dHJpYnV0ZU5hbWUp
KTsKKyAgICBtX2RpcnR5QXR0cmlidXRlcy5yZW1vdmUoaXQpOwogfQogICAgIAogdm9pZCBTVkdF
bGVtZW50OjpzeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMoKQogewotICAgIC8vIFNWR1Byb3BlcnR5
UmVnaXN0cnk6OnN5bmNocm9uaXplQWxsQXR0cmlidXRlcygpIHJldHVybnMgdGhlIG5ldyB2YWx1
ZXMgb2YKLSAgICAvLyB0aGUgcHJvcGVydGllcyB3aGljaCBoYXZlIGNoYW5nZWQgYnV0IG5vdCBj
b21taXR0ZWQgeWV0LgotICAgIGF1dG8gbWFwID0gcHJvcGVydHlSZWdpc3RyeSgpLnN5bmNocm9u
aXplQWxsQXR0cmlidXRlcygpOwotICAgIGZvciAoY29uc3QgYXV0byYgZW50cnkgOiBtYXApCi0g
ICAgICAgIHNldFN5bmNocm9uaXplZExhenlBdHRyaWJ1dGUoZW50cnkua2V5LCBlbnRyeS52YWx1
ZSk7CisgICAgLy8gUmVzZXJpYWxpemUgdGhlIHZhbHVlcyBvZiB0aGUgY2hhbmdlZCBwcm9wZXJ0
aWVzIHRvIHRoZWlyIGF0dHJpYnV0ZXMuCisgICAgZm9yIChhdXRvJiBhdHRyaWJ1dGVOYW1lIDog
bV9kaXJ0eUF0dHJpYnV0ZXMpCisgICAgICAgIHNldFN5bmNocm9uaXplZExhenlBdHRyaWJ1dGUo
YXR0cmlidXRlTmFtZSwgcHJvcGVydHlSZWdpc3RyeSgpLnZhbHVlQXNTdHJpbmcoYXR0cmlidXRl
TmFtZSkpOworICAgIG1fZGlydHlBdHRyaWJ1dGVzLmNsZWFyKCk7CiB9CiAKIHZvaWQgU1ZHRWxl
bWVudDo6c3luY2hyb25pemVBbGxBbmltYXRlZFNWR0F0dHJpYnV0ZShTVkdFbGVtZW50JiBzdmdF
bGVtZW50KQpAQCAtNTYyLDE1ICs1NjUsMTggQEAgdm9pZCBTVkdFbGVtZW50OjpzeW5jaHJvbml6
ZUFsbEFuaW1hdGVkU1ZHQXR0cmlidXRlKFNWR0VsZW1lbnQmIHN2Z0VsZW1lbnQpCiAgICAgc3Zn
RWxlbWVudC5zeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMoKTsKIH0KIAotdm9pZCBTVkdFbGVtZW50
Ojpjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9wZXJ0eSogcHJvcGVydHkpCit2b2lkIFNWR0Vs
ZW1lbnQ6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKERPTUxpdmVQcm9wZXJ0eSogcHJvcGVydHkpCiB7
CisgICAgUXVhbGlmaWVkTmFtZSBhdHRyaWJ1dGVOYW1lID0gcHJvcGVydHlSZWdpc3RyeSgpLnBy
b3BlcnR5QXR0cmlidXRlTmFtZSgqcHJvcGVydHkpOworICAgIEFTU0VSVChhdHRyaWJ1dGVOYW1l
ICE9IG51bGxRTmFtZSgpKTsKKwogICAgIC8vIFdlIHdhbnQgdG8gZGlydHkgdGhlIHRvcC1sZXZl
bCBwcm9wZXJ0eSB3aGVuIGEgZGVzY2VuZGFudCBjaGFuZ2VzLiBGb3IgZXhhbXBsZQogICAgIC8v
IGEgY2hhbmdlIGluIGFuIFNWR0xlbmd0aCBpdGVtIGluIFNWR0xlbmd0aExpc3Qgc2hvdWxkIHNl
dCB0aGUgZGlydHkgZmxhZyBvbgogICAgIC8vIFNWR0xlbmd0aExpc3QgYW5kIG5vdCB0aGUgU1ZH
TGVuZ3RoLgotICAgIHByb3BlcnR5LT5zZXREaXJ0eSgpOworICAgIG1fZGlydHlBdHRyaWJ1dGVz
LmFkZChhdHRyaWJ1dGVOYW1lKTsKIAogICAgIGludmFsaWRhdGVTVkdBdHRyaWJ1dGVzKCk7Ci0g
ICAgc3ZnQXR0cmlidXRlQ2hhbmdlZChwcm9wZXJ0eVJlZ2lzdHJ5KCkucHJvcGVydHlBdHRyaWJ1
dGVOYW1lKCpwcm9wZXJ0eSkpOworICAgIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0cmlidXRlTmFt
ZSk7CiB9CiAKIHZvaWQgU1ZHRWxlbWVudDo6Y29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHQW5pbWF0
ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSkKQEAgLTU4MSw3ICs1ODcsNyBAQCB2b2lkIFNW
R0VsZW1lbnQ6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1h
dGVkUHJvcGVydHkpCiAgICAgLy8gQSBjaGFuZ2UgaW4gYSBzdHlsZSBwcm9wZXJ0eSwgZS5nIFNW
R1JlY3RFbGVtZW50Ojp4IHNob3VsZCBiZSBzZXJpYWxpemVkIHRvCiAgICAgLy8gdGhlIGF0dHJp
YnV0ZSBpbW1lZGlhdGVseS4gT3RoZXJ3aXNlIGl0IGlzIG9rYXkgdG8gYmUgbGF6eSBpbiB0aGlz
IHJlZ2FyZC4KICAgICBpZiAoIXByb3BlcnR5UmVnaXN0cnkoKS5pc0FuaW1hdGVkU3R5bGVQcm9w
ZXJ0eUF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSkKLSAgICAgICAgYW5pbWF0ZWRQcm9wZXJ0eS5z
ZXREaXJ0eSgpOworICAgICAgICBtX2RpcnR5QXR0cmlidXRlcy5hZGQoYXR0cmlidXRlTmFtZSk7
CiAgICAgZWxzZQogICAgICAgICBzZXRTeW5jaHJvbml6ZWRMYXp5QXR0cmlidXRlKGF0dHJpYnV0
ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHkuYmFzZVZhbEFzU3RyaW5nKCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0VsZW1lbnQuaAppbmRleCA4Y2M2YWFjYTY1NzY4MGVlOGQzZjNmNDZjODc4MmFkMjI1NWM3NzQy
Li5kOTA4NzZhZmZiNzRlNjE1MzMyM2U1MzRjODg5N2ZkOGRlNTZlMGRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdFbGVtZW50LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgU1ZHVXNlRWxlbWVudDsKIAogdm9p
ZCBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KEhhc2hNYXA8QXRvbVN0cmluZ0ltcGwqLCBDU1NQ
cm9wZXJ0eUlEPiogcHJvcGVydHlOYW1lVG9JZE1hcCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUpOwogCi1jbGFzcyBTVkdFbGVtZW50IDogcHVibGljIFN0eWxlZEVsZW1lbnQsIHB1Ymxp
YyBTVkdMYW5nU3BhY2UsIHB1YmxpYyBTVkdQcm9wZXJ0eU93bmVyIHsKK2NsYXNzIFNWR0VsZW1l
bnQgOiBwdWJsaWMgU3R5bGVkRWxlbWVudCwgcHVibGljIFNWR0xhbmdTcGFjZSwgcHVibGljIERP
TUxpdmVQcm9wZXJ0eU9ic2VydmVyIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNWR0Vs
ZW1lbnQpOwogcHVibGljOgogICAgIGJvb2wgaXNPdXRlcm1vc3RTVkdTVkdFbGVtZW50KCkgY29u
c3Q7CkBAIC0xMzYsMTAgKzEzNiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzeW5jaHJvbml6ZUFs
bEF0dHJpYnV0ZXMoKTsKICAgICBzdGF0aWMgdm9pZCBzeW5jaHJvbml6ZUFsbEFuaW1hdGVkU1ZH
QXR0cmlidXRlKFNWR0VsZW1lbnQmKTsKIAotICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2Uo
U1ZHUHJvcGVydHkqKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKERP
TUxpdmVQcm9wZXJ0eSopIG92ZXJyaWRlOwogICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2Uo
U1ZHQW5pbWF0ZWRQcm9wZXJ0eSYpOwogCi0gICAgY29uc3QgU1ZHRWxlbWVudCogYXR0cmlidXRl
Q29udGV4dEVsZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0aGlzOyB9CisgICAgY29u
c3QgU1ZHRWxlbWVudCogcHJvcGVydHlTVkdDb250ZXh0RWxlbWVudCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIHRoaXM7IH0KICAgICBTVkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeSYgcHJvcGVy
dHlBbmltYXRvckZhY3RvcnkoKSB7IHJldHVybiAqbV9wcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeTsg
fQogICAgIFJlZlB0cjxTVkdBdHRyaWJ1dGVBbmltYXRvcj4gY3JlYXRlQW5pbWF0b3IoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIEFuaW1hdGlvbk1vZGUsIENhbGNNb2RlLCBib29sIGlzQWNjdW11bGF0
ZWQsIGJvb2wgaXNBZGRpdGl2ZSk7CiAgICAgdm9pZCBhbmltYXRvcldpbGxCZURlbGV0ZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYpOwpAQCAtMTk2LDYgKzE5Niw3IEBAIHByaXZhdGU6CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFNWR1Byb3BlcnR5QW5pbWF0b3JGYWN0b3J5PiBtX3Byb3BlcnR5QW5pbWF0
b3JGYWN0b3J5OwogCiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAq
dGhpcyB9OworICAgIEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4gbV9kaXJ0eUF0dHJpYnV0ZXM7CiAg
ICAgUmVmPFNWR0FuaW1hdGVkU3RyaW5nPiBtX2NsYXNzTmFtZSB7IFNWR0FuaW1hdGVkU3RyaW5n
OjpjcmVhdGUodGhpcykgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGaXRUb1ZpZXdCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5j
cHAKaW5kZXggMWY0N2QzNjhlOTAzMWY0NGEwYmUwZmQyNDM1MGM3MmQxNDFmNjU0OS4uYTQ0MGM2
YzJiMzI5YTYzZTEwOThmNjNkZDgxZjk5NzMwOWRjMjJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZpdFRvVmlld0JveC5jcHAKQEAgLTM0LDkgKzM0LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotU1ZHRml0VG9WaWV3Qm94OjpTVkdGaXRUb1ZpZXdCb3goU1ZHRWxlbWVudCogY29udGV4
dEVsZW1lbnQsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKLSAgICA6IG1fdmlld0JveChTVkdB
bmltYXRlZFJlY3Q6OmNyZWF0ZShjb250ZXh0RWxlbWVudCwgYWNjZXNzKSkKLSAgICAsIG1fcHJl
c2VydmVBc3BlY3RSYXRpbyhTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW86OmNyZWF0ZShj
b250ZXh0RWxlbWVudCwgYWNjZXNzKSkKK1NWR0ZpdFRvVmlld0JveDo6U1ZHRml0VG9WaWV3Qm94
KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KQorICAgIDogbV92aWV3Qm94KFNWR0FuaW1hdGVk
UmVjdDo6Y3JlYXRlKHN0YXRpY19jYXN0PHZvaWQqPihjb250ZXh0RWxlbWVudCkgPT0gdGhpcyA/
IGNvbnRleHRFbGVtZW50IDogbnVsbHB0cikpCisgICAgLCBtX3ByZXNlcnZlQXNwZWN0UmF0aW8o
U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVhdGUoc3RhdGljX2Nhc3Q8dm9pZCo+
KGNvbnRleHRFbGVtZW50KSA9PSB0aGlzID8gY29udGV4dEVsZW1lbnQgOiBudWxscHRyKSkKKyAg
ICAsIG1fY29udGV4dEVsZW1lbnQoY29udGV4dEVsZW1lbnQpCiB7CiAgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CkBA
IC0xMDQsMjkgKzEwNSwyOSBAQCBib29sIFNWR0ZpdFRvVmlld0JveDo6cGFyc2VWaWV3Qm94KGNv
bnN0IFVDaGFyKiYgYywgY29uc3QgVUNoYXIqIGVuZCwgRmxvYXRSZWN0JgogICAgIGJvb2wgdmFs
aWQgPSBwYXJzZU51bWJlcihjLCBlbmQsIHgpICYmIHBhcnNlTnVtYmVyKGMsIGVuZCwgeSkgJiYg
cGFyc2VOdW1iZXIoYywgZW5kLCB3aWR0aCkgJiYgcGFyc2VOdW1iZXIoYywgZW5kLCBoZWlnaHQs
IGZhbHNlKTsKIAogICAgIGlmICh2YWxpZGF0ZSkgewotICAgICAgICBEb2N1bWVudCYgZG9jdW1l
bnQgPSBtX3ZpZXdCb3gtPmNvbnRleHRFbGVtZW50KCktPmRvY3VtZW50KCk7CisgICAgICAgIGF1
dG8mIGRvY3VtZW50RXh0ZW5zaW9ucyA9IG1fY29udGV4dEVsZW1lbnQtPmRvY3VtZW50KCkuYWNj
ZXNzU1ZHRXh0ZW5zaW9ucygpOwogCiAgICAgICAgIGlmICghdmFsaWQpIHsKLSAgICAgICAgICAg
IGRvY3VtZW50LmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5yZXBvcnRXYXJuaW5nKCJQcm9ibGVtIHBh
cnNpbmcgdmlld0JveD1cIiIgKyBzdHIgKyAiXCIiKTsKKyAgICAgICAgICAgIGRvY3VtZW50RXh0
ZW5zaW9ucy5yZXBvcnRXYXJuaW5nKCJQcm9ibGVtIHBhcnNpbmcgdmlld0JveD1cIiIgKyBzdHIg
KyAiXCIiKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCiAgICAgICAg
IC8vIENoZWNrIHRoYXQgd2lkdGggaXMgcG9zaXRpdmUuCiAgICAgICAgIGlmICh3aWR0aCA8IDAu
MCkgewotICAgICAgICAgICAgZG9jdW1lbnQuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLnJlcG9ydEVy
cm9yKCJBIG5lZ2F0aXZlIHZhbHVlIGZvciBWaWV3Qm94IHdpZHRoIGlzIG5vdCBhbGxvd2VkIik7
CisgICAgICAgICAgICBkb2N1bWVudEV4dGVuc2lvbnMucmVwb3J0RXJyb3IoIkEgbmVnYXRpdmUg
dmFsdWUgZm9yIFZpZXdCb3ggd2lkdGggaXMgbm90IGFsbG93ZWQiKTsKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIENoZWNrIHRoYXQgaGVpZ2h0IGlz
IHBvc2l0aXZlLgogICAgICAgICBpZiAoaGVpZ2h0IDwgMC4wKSB7Ci0gICAgICAgICAgICBkb2N1
bWVudC5hY2Nlc3NTVkdFeHRlbnNpb25zKCkucmVwb3J0RXJyb3IoIkEgbmVnYXRpdmUgdmFsdWUg
Zm9yIFZpZXdCb3ggaGVpZ2h0IGlzIG5vdCBhbGxvd2VkIik7CisgICAgICAgICAgICBkb2N1bWVu
dEV4dGVuc2lvbnMucmVwb3J0RXJyb3IoIkEgbmVnYXRpdmUgdmFsdWUgZm9yIFZpZXdCb3ggaGVp
Z2h0IGlzIG5vdCBhbGxvd2VkIik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IH0KIAogICAgICAgICAvLyBOb3RoaW5nIHNob3VsZCBjb21lIGFmdGVyIHRoZSBsYXN0LCBmb3Vy
dGggbnVtYmVyLgogICAgICAgICBza2lwT3B0aW9uYWxTVkdTcGFjZXMoYywgZW5kKTsKICAgICAg
ICAgaWYgKGMgPCBlbmQpIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmFjY2Vzc1NWR0V4dGVuc2lv
bnMoKS5yZXBvcnRXYXJuaW5nKCJQcm9ibGVtIHBhcnNpbmcgdmlld0JveD1cIiIgKyBzdHIgKyAi
XCIiKTsKKyAgICAgICAgICAgIGRvY3VtZW50RXh0ZW5zaW9ucy5yZXBvcnRXYXJuaW5nKCJQcm9i
bGVtIHBhcnNpbmcgdmlld0JveD1cIiIgKyBzdHIgKyAiXCIiKTsKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGaXRUb1ZpZXdCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3gu
aAppbmRleCA5MDdkNjU1Y2QxYjFiOWIzNzJhMjBmODE4OTIzNjA0MmUyMGYwZmQwLi41OTZkZmRj
MWQwNTY3YTA0N2Y1Yjg5Y2FkYTU4NDA3YmM0OWZiNDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zp
dFRvVmlld0JveC5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0VtcHR5
Vmlld0JveCgpIGNvbnN0IHsgcmV0dXJuIG1faXNWaWV3Qm94VmFsaWQgJiYgdmlld0JveCgpLmlz
RW1wdHkoKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHRml0VG9WaWV3Qm94KFNWR0VsZW1lbnQq
IGNvbnRleHRFbGVtZW50LCBTVkdQcm9wZXJ0eUFjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpS
ZWFkV3JpdGUpOworICAgIFNWR0ZpdFRvVmlld0JveChTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVu
dCk7CiAKICAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJpYnV0ZU5hbWUpIHsgcmV0dXJuIFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRy
aWJ1dGUoYXR0cmlidXRlTmFtZSk7IH0KIApAQCAtNzEsNiArNzEsNyBAQCBwcm90ZWN0ZWQ6CiBw
cml2YXRlOgogICAgIFJlZjxTVkdBbmltYXRlZFJlY3Q+IG1fdmlld0JveDsKICAgICBSZWY8U1ZH
QW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBtX3ByZXNlcnZlQXNwZWN0UmF0aW87CisgICAg
U1ZHRWxlbWVudCogbV9jb250ZXh0RWxlbWVudCB7IG51bGxwdHIgfTsKICAgICBib29sIG1faXNW
aWV3Qm94VmFsaWQgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xlbmd0aC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oCmluZGV4IGVk
NTAwMzgyYzVmZTgzODFkNDc3OTY4YjkwOTMwMGY2YmZjNGQ5MmQuLjYwYTViNTZlNTNiYWQwYTBi
YTAxM2E0NjQ2NTdiYTYxZmExOGU2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdMZW5ndGguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgKQEAgLTYyLDkg
KzYyLDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGgo
dmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3JlYXRlKFNWR1By
b3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIGNvbnN0IFNWR0xl
bmd0aFZhbHVlJiB2YWx1ZSA9IHsgfSkKKyAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3JlYXRl
KERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlciwgY29uc3QgU1ZHTGVuZ3RoVmFsdWUm
IHZhbHVlID0geyB9KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVu
Z3RoKG93bmVyLCBhY2Nlc3MsIHZhbHVlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR0xlbmd0aChvYnNlcnZlciwgdmFsdWUpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgpAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAKICAgICBFeGNlcHRpb25PcjxmbG9h
dD4gdmFsdWVGb3JCaW5kaW5ncygpCiAgICAgewotICAgICAgICByZXR1cm4gbV92YWx1ZS52YWx1
ZUZvckJpbmRpbmdzKFNWR0xlbmd0aENvbnRleHQgeyBjb250ZXh0RWxlbWVudCgpIH0pOworICAg
ICAgICByZXR1cm4gbV92YWx1ZS52YWx1ZUZvckJpbmRpbmdzKFNWR0xlbmd0aENvbnRleHQgeyBz
dmdDb250ZXh0RWxlbWVudCgpIH0pOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dFZhbHVlRm9yQmluZGluZ3MoZmxvYXQgdmFsdWUpCkBAIC05NSw3ICs5NSw3IEBAIHB1YmxpYzoK
ICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0g
bV92YWx1ZS5zZXRWYWx1ZShTVkdMZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9LCB2
YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gbV92YWx1ZS5zZXRWYWx1ZShTVkdMZW5ndGhD
b250ZXh0IHsgc3ZnQ29udGV4dEVsZW1lbnQoKSB9LCB2YWx1ZSk7CiAgICAgICAgIGlmIChyZXN1
bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAK
QEAgLTE1Miw3ICsxNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmICh1bml0VHlwZSA9PSBTVkdf
TEVOR1RIVFlQRV9VTktOT1dOIHx8IHVuaXRUeXBlID4gU1ZHX0xFTkdUSFRZUEVfUEMpCiAgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKIAotICAgICAg
ICBhdXRvIHJlc3VsdCA9IG1fdmFsdWUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMoU1ZHTGVuZ3Ro
Q29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSwgc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVHlwZT4o
dW5pdFR5cGUpKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSBtX3ZhbHVlLmNvbnZlcnRUb1NwZWNp
ZmllZFVuaXRzKFNWR0xlbmd0aENvbnRleHQgeyBzdmdDb250ZXh0RWxlbWVudCgpIH0sIHN0YXRp
Y19jYXN0PFNWR0xlbmd0aFR5cGU+KHVuaXRUeXBlKSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFz
RXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0xlbmd0aExpc3QuaAppbmRleCA1ZWI1NzAxYzY3NDY4NzkyZDA1NjJjMTViNTIxNmI0OTJjMDIx
ZWQ4Li4zMmQ1ODc0ZDI5MzcyNDZjNzA1MjEzOTEzYjE0ZjA0NTYzZmZkZTMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMZW5ndGhMaXN0LmgKQEAgLTQwLDE0ICs0MCwxNCBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aExpc3QobGVuZ3RoTW9kZSkpOwogICAgIH0K
IAotICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoTGlzdD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIq
IG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9k
ZSkKKyAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aExpc3Q+IGNyZWF0ZShET01MaXZlUHJvcGVydHlP
YnNlcnZlciogb2JzZXJ2ZXIsIFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aExpc3Qob3duZXIsIGFjY2VzcywgbGVu
Z3RoTW9kZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGhMaXN0KG9i
c2VydmVyLCBsZW5ndGhNb2RlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdMZW5ndGhM
aXN0PiBjcmVhdGUoY29uc3QgU1ZHTGVuZ3RoTGlzdCYgb3RoZXIsIFNWR1Byb3BlcnR5QWNjZXNz
IGFjY2VzcykKKyAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aExpc3Q+IGNyZWF0ZShjb25zdCBTVkdM
ZW5ndGhMaXN0JiBvdGhlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNW
R0xlbmd0aExpc3Qob3RoZXIsIGFjY2VzcykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdMZW5ndGhMaXN0KG90aGVyKSk7CiAgICAgfQogCiAgICAgU1ZHTGVuZ3RoTW9kZSBsZW5n
dGhNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9sZW5ndGhNb2RlOyB9CkBAIC04Niw3ICs4Niw3IEBA
IHB1YmxpYzoKICAgICAgICAgICAgIGlmIChidWlsZGVyLmxlbmd0aCgpKQogICAgICAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGxl
bmd0aC0+dmFsdWUoKS52YWx1ZUFzU3RyaW5nKCkpOworICAgICAgICAgICAgYnVpbGRlci5hcHBl
bmQobGVuZ3RoLT52YWx1ZUFzU3RyaW5nKCkpOwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKTsKQEAgLTk4LDE0ICs5OCwxNCBAQCBwcml2YXRlOgogICAgIHsK
ICAgICB9CiAKLSAgICBTVkdMZW5ndGhMaXN0KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQ
cm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSkKLSAgICAgICAg
OiBCYXNlKG93bmVyLCBhY2Nlc3MpCisgICAgU1ZHTGVuZ3RoTGlzdChET01MaXZlUHJvcGVydHlP
YnNlcnZlciogb2JzZXJ2ZXIsIFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSkKKyAgICAgICAgOiBC
YXNlKG9ic2VydmVyKQogICAgICAgICAsIG1fbGVuZ3RoTW9kZShsZW5ndGhNb2RlKQogICAgIHsK
ICAgICB9CiAKLSAgICBTVkdMZW5ndGhMaXN0KGNvbnN0IFNWR0xlbmd0aExpc3QmIG90aGVyLCBT
VkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCi0gICAgICAgIDogQmFzZShvdGhlciwgYWNjZXNzKQor
ICAgIFNWR0xlbmd0aExpc3QoY29uc3QgU1ZHTGVuZ3RoTGlzdCYgb3RoZXIpCisgICAgICAgIDog
QmFzZShvdGhlcikKICAgICAgICAgLCBtX2xlbmd0aE1vZGUob3RoZXIubGVuZ3RoTW9kZSgpKQog
ICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmgKaW5kZXggZDhjMzdkY2IyNmRiZTQ1MThh
YzkxZmQyZTFjNzVlOTQyYzFkMjI3Ni4uZjAwMzhjNGMwN2UwYWZjNWU3YjlmMmJiYmQ1ODBmOGFk
YWRhMjc5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaApAQCAtNDIsOSArNDIsOSBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR01hdHJpeCh2YWx1ZSkpOwogICAgIH0K
IAotICAgIHN0YXRpYyBSZWY8U1ZHTWF0cml4PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciogb3du
ZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcywgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB2YWx1
ZSA9IHsgfSkKKyAgICBzdGF0aWMgUmVmPFNWR01hdHJpeD4gY3JlYXRlKERPTUxpdmVQcm9wZXJ0
eU9ic2VydmVyKiBvYnNlcnZlciwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB2YWx1ZSA9IHsgfSkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR01hdHJpeChvd25lciwgYWNj
ZXNzLCB2YWx1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXgob2Jz
ZXJ2ZXIsIHZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdOdW1iZXIuaAppbmRleCAyM2M4MmU0NGU2NzdkOGQzNjBjOTYxNTRjNzk1ZGFiODc3NmEx
ZmE0Li41OThhMGY1OTYxOTkyYTRiNzlmNzA4OWU0NDg5YjYzNTYzMjFlZGM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR051bWJlci5oCkBAIC00MCw5ICs0MCw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHTnVtYmVyKHZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxT
VkdOdW1iZXI+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nl
c3MgYWNjZXNzLCBmbG9hdCB2YWx1ZSA9IDApCisgICAgc3RhdGljIFJlZjxTVkdOdW1iZXI+IGNy
ZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIsIGZsb2F0IHZhbHVlID0gMCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlcihvd25lciwgYWNj
ZXNzLCB2YWx1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXIob2Jz
ZXJ2ZXIsIHZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTnVtYmVyTGlzdC5oCmluZGV4IDViNWQ1N2U4NDZmNDMxYWFmNWMwOGRiYzlhNGMz
NGFiZTg0ZDZkMWYuLjY4MWI0ZGNlZjhjZWM5MzUxMWJlMDU5MjA1NGNmMDgxZTkwMzc3NTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuaApAQCAtNDAsMTQgKzQwLDE0IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyTGlzdCgpKTsKICAgICB9CiAK
LSAgICBzdGF0aWMgUmVmPFNWR051bWJlckxpc3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBv
d25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQorICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVy
TGlzdD4gY3JlYXRlKERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcikKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlckxpc3Qob3duZXIsIGFjY2Vzcykp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXJMaXN0KG9ic2VydmVyKSk7
CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdOdW1iZXJMaXN0PiBjcmVhdGUoY29uc3QgU1ZH
TnVtYmVyTGlzdCYgb3RoZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKKyAgICBzdGF0aWMg
UmVmPFNWR051bWJlckxpc3Q+IGNyZWF0ZShjb25zdCBTVkdOdW1iZXJMaXN0JiBvdGhlcikKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlckxpc3Qob3RoZXIsIGFj
Y2VzcykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXJMaXN0KG90aGVy
KSk7CiAgICAgfQogCiAgICAgYm9vbCBwYXJzZShjb25zdCBTdHJpbmcmIHZhbHVlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAppbmRleCA5NGY2ZjM5ZTRlMWYxYjY3NDQzM2NhMjUwMTUz
ODE4ZjRmNjJmZTQyLi5lNjZmOGEwYTdiMGMwMGU2YjY0NDAzYTUwM2NhZmIxNTQxMjE0MTU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaApAQCAtMzYsMTQgKzM2LDE0IEBAIGNsYXNz
IFNWR1BhdGhTZWdMaXN0IGZpbmFsIDogcHVibGljIFNWR1Byb3BlcnR5TGlzdDxTVkdQYXRoU2Vn
PiB7CiAgICAgdXNpbmcgQmFzZTo6QmFzZTsKIAogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZH
UGF0aFNlZ0xpc3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlB
Y2Nlc3MgYWNjZXNzKQorICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShET01M
aXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTVkdQYXRoU2VnTGlzdChvd25lciwgYWNjZXNzKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdMaXN0KG9ic2VydmVyKSk7CiAgICAgfQogCi0gICAg
c3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKGNvbnN0IFNWR1BhdGhTZWdMaXN0JiBv
dGhlciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQorICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNl
Z0xpc3Q+IGNyZWF0ZShjb25zdCBTVkdQYXRoU2VnTGlzdCYgb3RoZXIpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQYXRoU2VnTGlzdChvdGhlciwgYWNjZXNzKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdMaXN0KG90aGVyKSk7CiAgICAg
fQogCiAgICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKFJlZjxTVkdQYXRoU2Vn
PiYmIG5ld0l0ZW0pCkBAIC0xNTksOCArMTU5LDggQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0
ZToKLSAgICBTVkdQYXRoU2VnTGlzdChjb25zdCBTVkdQYXRoU2VnTGlzdCYgb3RoZXIsIFNWR1By
b3BlcnR5QWNjZXNzIGFjY2VzcykKLSAgICAgICAgOiBCYXNlKG90aGVyLm93bmVyKCksIGFjY2Vz
cykKKyAgICBTVkdQYXRoU2VnTGlzdChjb25zdCBTVkdQYXRoU2VnTGlzdCYgb3RoZXIpCisgICAg
ICAgIDogQmFzZShvdGhlci5vYnNlcnZlcigpKQogICAgICAgICAsIG1fcGF0aEJ5dGVTdHJlYW0o
b3RoZXIucGF0aEJ5dGVTdHJlYW0oKSkKICAgICB7CiAgICAgfQpAQCAtMTcyLDcgKzE3Miw3IEBA
IHByaXZhdGU6CiAgICAgfQogCiAgICAgLy8gQ2FsbGVkIHdoZW4gY2hhbmdpbmcgYW4gaXRlbSBp
biB0aGUgbGlzdC4KLSAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5KiBw
cm9wZXJ0eSkgb3ZlcnJpZGUKKyAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKERPTUxpdmVQ
cm9wZXJ0eSogcHJvcGVydHkpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBpdGVtc1dpbGxDaGFu
Z2UoKTsKICAgICAgICAgQmFzZTo6Y29tbWl0UHJvcGVydHlDaGFuZ2UocHJvcGVydHkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BvaW50TGlzdC5oCmluZGV4IDhjNmM1MGIwZTNiYWNlNTM2YWU1MGViYjI4YzFi
NDZlMTU3NDllODEuLjg4YTE4OTMzODcxZmQyZDQyOTM4ZDY1NDlkMDE5ZDE1MGJlN2IzNTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmgKQEAgLTQwLDE0ICs0MCwxNCBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BvaW50TGlzdCgpKTsKICAgICB9CiAKLSAg
ICBzdGF0aWMgUmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93bmVy
LCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCisgICAgc3RhdGljIFJlZjxTVkdQb2ludExpc3Q+
IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludExpc3Qob3duZXIsIGFjY2VzcykpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludExpc3Qob2JzZXJ2ZXIpKTsKICAgICB9
CiAKLSAgICBzdGF0aWMgUmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKGNvbnN0IFNWR1BvaW50TGlz
dCYgb3RoZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKKyAgICBzdGF0aWMgUmVmPFNWR1Bv
aW50TGlzdD4gY3JlYXRlKGNvbnN0IFNWR1BvaW50TGlzdCYgb3RoZXIpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludExpc3Qob3RoZXIsIGFjY2VzcykpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludExpc3Qob3RoZXIpKTsKICAgICB9CiAK
ICAgICBib29sIHBhcnNlKGNvbnN0IFN0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaAppbmRleCAyNzE3YWJlYmUxMDE5YWFhMGYzYWY3NjFl
YjM1MWY5MTdiNzhhZGQ2Li44MzU0OTNlNzk0YzFlOGYyNWQ4OTQ3YjM4ZGRhMjRjNjA5YmY0NmMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgKQEAgLTM2
LDkgKzM2LDkgQEAgY2xhc3MgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyA6IHB1YmxpYyBTVkdWYWx1
ZVByb3BlcnR5PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWwKICAgICB1c2luZyBCYXNlOjptX3Zh
bHVlOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBj
cmVhdGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2Vzcywg
Y29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB2YWx1ZSA9IHsgfSkKKyAgICBzdGF0
aWMgUmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNl
cnZlciogb2JzZXJ2ZXIsIGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgdmFsdWUg
PSB7IH0pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvKG93bmVyLCBhY2Nlc3MsIHZhbHVlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8ob2JzZXJ2ZXIsIHZhbHVlKSk7CiAgICAgfQog
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaAppbmRleCA0MTViODcyM2Y4ZDMwODY0YzFiM2ZkNzg4
Y2MzYjk4OWJhZDdlZjljLi41OWM4MzcxMjNmMjFkYjI2MWZmZTc4MTY5YWQwODJiMmEzZjZlOThh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZS5oCkBAIC03NiwxMSArNzYsNCBAQCBwcml2YXRlOgogICAgIGJvb2wgcGFyc2VJbnRlcm5hbChj
b25zdCBVQ2hhciomIGN1cnJQYXJhbSwgY29uc3QgVUNoYXIqIGVuZCwgYm9vbCB2YWxpZGF0ZSk7
CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvVmFsdWU+IHsKLSAgICBzdGF0aWMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
IGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSgpOyB9
Ci0gICAgc3RhdGljIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSBmcm9tU3RyaW5nKGNvbnN0
IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoc3Ry
aW5nKTsgfQotICAgIHN0YXRpYyBPcHRpb25hbDxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+
IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmKSB7IEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyByZXR1cm4gaW5pdGlhbFZhbHVlKCk7IH0KLSAgICBzdGF0aWMgU3RyaW5nIHRv
U3RyaW5nKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgdHlwZSkgeyByZXR1cm4g
dHlwZS52YWx1ZUFzU3RyaW5nKCk7IH0KLX07Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUmVjdC5oCmluZGV4IDkwMDE4ZTE4NmIxOTJhYzNiZTZmMDU1MGRmODExNjI3ZmJkN2U5
ZjIuLmJhZTc3YmZlZjAyMTk1MTNlZWYwMDk5NjliMzNjMmZhZGNmMzkzZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1JlY3QuaApAQCAtMzYsOSArMzYsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR1JlY3QodmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1JlY3Q+
IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNz
LCBjb25zdCBGbG9hdFJlY3QmIHZhbHVlID0geyB9KQorICAgIHN0YXRpYyBSZWY8U1ZHUmVjdD4g
Y3JlYXRlKERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlciwgY29uc3QgRmxvYXRSZWN0
JiB2YWx1ZSA9IHsgfSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1Jl
Y3Qob3duZXIsIGFjY2VzcywgdmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U1ZHUmVjdChvYnNlcnZlciwgdmFsdWUpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmgKaW5kZXggM2IzNzY1YzVkOWUwNzQ2OTAw
YTJkNzc5NzlmZmRmNThiNDNhZGQzNS4uMTExZjA2N2U2OTI2NjdiMDZmMmM4ZGE4ZmFiMjc3ZDI3
ZWEyN2I3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5oCkBAIC0zNyw5ICszNyw5IEBA
IGNsYXNzIFNWR1N0cmluZ0xpc3QgZmluYWwgOiBwdWJsaWMgU1ZHUHJpbWl0aXZlTGlzdDxTdHJp
bmc+IHsKICAgICB1c2luZyBCYXNlOjptX2l0ZW1zOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIpCisgICAgc3Rh
dGljIFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9i
c2VydmVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHU3RyaW5nTGlz
dChvd25lcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdTdHJpbmdMaXN0KG9i
c2VydmVyKSk7CiAgICAgfQogCiAgICAgdm9pZCByZXNldChjb25zdCBTdHJpbmcmIHN0cmluZykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uaAppbmRleCA2YTI5YzcyY2YzZTdmMzEzZjcwOTY1N2E0
MDEyNDgxYzIyM2I4ZGNkLi4zM2RiNjhmNDI5YWE3ZmEzZmVlYWRjMjI5Y2QxOTY4NDVlNmZjYmE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5oCkBAIC0zMSw3ICszMSw3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU1ZHVHJhbnNmb3JtIDogcHVibGljIFNWR1ZhbHVlUHJv
cGVydHk8U1ZHVHJhbnNmb3JtVmFsdWU+LCBwdWJsaWMgU1ZHUHJvcGVydHlPd25lciB7CitjbGFz
cyBTVkdUcmFuc2Zvcm0gOiBwdWJsaWMgU1ZHVmFsdWVQcm9wZXJ0eTxTVkdUcmFuc2Zvcm1WYWx1
ZT4sIHB1YmxpYyBET01MaXZlUHJvcGVydHlPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxTVkdUcmFuc2Zvcm0+IGNyZWF0ZShTVkdUcmFuc2Zvcm1WYWx1ZTo6U1ZHVHJhbnNmb3Jt
VHlwZSB0eXBlKQogICAgIHsKQEAgLTEzNCwxNyArMTM0LDE3IEBAIHByaXZhdGU6CiAgICAgdXNp
bmcgQmFzZSA9IFNWR1ZhbHVlUHJvcGVydHk8U1ZHVHJhbnNmb3JtVmFsdWU+OwogCiAgICAgU1ZH
VHJhbnNmb3JtKFNWR1RyYW5zZm9ybVZhbHVlOjpTVkdUcmFuc2Zvcm1UeXBlIHR5cGUsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtID0geyB9LCBmbG9hdCBhbmdsZSA9IDAsIGNvbnN0
IEZsb2F0UG9pbnQmIHJvdGF0aW9uQ2VudGVyID0geyB9KQotICAgICAgICA6IEJhc2UoU1ZHVHJh
bnNmb3JtVmFsdWUodHlwZSwgU1ZHTWF0cml4OjpjcmVhdGUodGhpcywgU1ZHUHJvcGVydHlBY2Nl
c3M6OlJlYWRXcml0ZSwgdHJhbnNmb3JtKSwgYW5nbGUsIHJvdGF0aW9uQ2VudGVyKSkKKyAgICAg
ICAgOiBCYXNlKFNWR1RyYW5zZm9ybVZhbHVlKHR5cGUsIFNWR01hdHJpeDo6Y3JlYXRlKHRoaXMs
IHRyYW5zZm9ybSksIGFuZ2xlLCByb3RhdGlvbkNlbnRlcikpCiAgICAgewogICAgIH0KIAotICAg
IFNWR1Byb3BlcnR5T3duZXIqIG93bmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9vd25l
cjsgfQorICAgIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcigpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fb2JzZXJ2ZXI7IH0KIAotICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFu
Z2UoU1ZHUHJvcGVydHkqIHByb3BlcnR5KSBvdmVycmlkZQorICAgIHZvaWQgY29tbWl0UHJvcGVy
dHlDaGFuZ2UoRE9NTGl2ZVByb3BlcnR5KiBwcm9wZXJ0eSkgb3ZlcnJpZGUKICAgICB7CiAgICAg
ICAgIEFTU0VSVF9VTlVTRUQocHJvcGVydHksIHByb3BlcnR5ID09IG1fdmFsdWUubWF0cml4KCku
cHRyKCkpOwotICAgICAgICBpZiAob3duZXIoKSkKLSAgICAgICAgICAgIG93bmVyKCktPmNvbW1p
dFByb3BlcnR5Q2hhbmdlKHRoaXMpOworICAgICAgICBpZiAob2JzZXJ2ZXIoKSkKKyAgICAgICAg
ICAgIG9ic2VydmVyKCktPmNvbW1pdFByb3BlcnR5Q2hhbmdlKHRoaXMpOwogICAgICAgICBtX3Zh
bHVlLm1hdHJpeERpZENoYW5nZSgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zv
cm1MaXN0LmgKaW5kZXggNTQ0ZDYwYjJlNjM1YzFjMjA5OTM0ZWU0MzVjZjQxMjVlNmE3MWYyYi4u
ZTYwNDVlZDI1NjIzMjFlOTE0MTY0YTBmYjIwNDk3NDg3MTA1ZTIyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVHJhbnNmb3JtTGlzdC5oCkBAIC0zOCwxNCArMzgsMTQgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdUcmFuc2Zvcm1MaXN0KCkpOwogICAgIH0KIAotICAg
IHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtTGlzdD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93
bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCisgICAgc3RhdGljIFJlZjxTVkdUcmFuc2Zv
cm1MaXN0PiBjcmVhdGUoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtTGlzdChvd25lciwgYWNj
ZXNzKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RyYW5zZm9ybUxpc3Qob2Jz
ZXJ2ZXIpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybUxpc3Q+IGNyZWF0
ZShjb25zdCBTVkdUcmFuc2Zvcm1MaXN0JiBvdGhlciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNz
KQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtTGlzdD4gY3JlYXRlKGNvbnN0IFNWR1RyYW5z
Zm9ybUxpc3QmIG90aGVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
VHJhbnNmb3JtTGlzdChvdGhlciwgYWNjZXNzKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR1RyYW5zZm9ybUxpc3Qob3RoZXIpKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25PcjxS
ZWY8U1ZHVHJhbnNmb3JtPj4gY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChjb25zdCBSZWY8
U1ZHTWF0cml4PiYgbWF0cml4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Zp
ZXdTcGVjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKaW5kZXggOGY0
MjM1MTZiNWJkYmM1Mjg3Y2RhNDRhZGY0OWZjNjE4ZGRjMzJlYy4uNTNjYzE1ZGM5MGU3N2NhOTEy
NGY2Y2FmYTI4ZGExYWM1MDU5Y2FkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1ZpZXdTcGVjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCkBA
IC0zMiw5ICszMiw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNWR1ZpZXdTcGVjOjpTVkdW
aWV3U3BlYyhTVkdFbGVtZW50JiBjb250ZXh0RWxlbWVudCkKLSAgICA6IFNWR0ZpdFRvVmlld0Jv
eCgmY29udGV4dEVsZW1lbnQsIFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkT25seSkKKyAgICA6IFNW
R0ZpdFRvVmlld0JveCgmY29udGV4dEVsZW1lbnQpCiAgICAgLCBtX2NvbnRleHRFbGVtZW50KG1h
a2VXZWFrUHRyKGNvbnRleHRFbGVtZW50KSkKLSAgICAsIG1fdHJhbnNmb3JtKFNWR1RyYW5zZm9y
bUxpc3Q6OmNyZWF0ZSgmY29udGV4dEVsZW1lbnQsIFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkT25s
eSkpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6Y2Fs
bF9vbmNlKG9uY2VGbGFnLCBbXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Vmlld1NwZWMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCmluZGV4IDJlN2Vm
OTc4NmMxYTg4NmZkMjVhY2ZlYTAzN2ZjODUwZDc5ZGU1MjAuLjZlZmMwOWY5ODNjMmM0M2M2YTNk
ODU1YjAyZDM0MjIyMDAzODIxYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdW
aWV3U3BlYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCkBAIC01NSw3
ICs1NSw3IEBAIHByaXZhdGU6CiAKICAgICBXZWFrUHRyPFNWR0VsZW1lbnQ+IG1fY29udGV4dEVs
ZW1lbnQ7CiAgICAgU3RyaW5nIG1fdmlld1RhcmdldFN0cmluZzsKLSAgICBSZWY8U1ZHVHJhbnNm
b3JtTGlzdD4gbV90cmFuc2Zvcm07CisgICAgUmVmPFNWR1RyYW5zZm9ybUxpc3Q+IG1fdHJhbnNm
b3JtIHsgU1ZHVHJhbnNmb3JtTGlzdDo6Y3JlYXRlKCkgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0Fu
aW1hdGVkRGVjb3JhdGVkUHJvcGVydHkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkRGVjb3JhdGVkUHJvcGVydHkuaAppbmRleCBjZWJhYTM2M2JmNTI3YmJiMzhl
NTY3ZDNlM2Q0MmJmODQzMTAyYTc1Li42ZGE5ZDQ0OWVjY2NmMTlmMDllY2ZhYWZjYTVhNThiOWM3
ODQxZDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZERlY29yYXRlZFByb3BlcnR5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHQW5pbWF0ZWREZWNvcmF0ZWRQcm9wZXJ0eS5oCkBAIC05NywxNSArOTcsNyBAQCBwdWJs
aWM6CiAgICAgfQogCiAgICAgLy8gTWFuYWdpbmcgdGhlIHJlbGF0aW9uc2hpcCB3aXRoIHRoZSBv
d25lci4KLSAgICB2b2lkIHNldERpcnR5KCkgb3ZlcnJpZGUgeyBtX3N0YXRlID0gU1ZHUHJvcGVy
dHlTdGF0ZTo6RGlydHk7IH0KLSAgICBib29sIGlzRGlydHkoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX3N0YXRlID09IFNWR1Byb3BlcnR5U3RhdGU6OkRpcnR5OyB9Ci0gICAgT3B0aW9uYWw8
U3RyaW5nPiBzeW5jaHJvbml6ZSgpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBpZiAobV9zdGF0
ZSA9PSBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbikKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7Ci0gICAgICAgIG1fc3RhdGUgPSBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbjsKLSAgICAg
ICAgcmV0dXJuIGJhc2VWYWxBc1N0cmluZygpOwotICAgIH0KKyAgICBTdHJpbmcgdmFsdWVBc1N0
cmluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJhc2VWYWxBc1N0cmluZygpOyB9CiAKICAg
ICAvLyBVc2VkIGJ5IFJlbmRlclNWR0VsZW1lbnRzIGFuZCBEdW1wUmVuZGVyVHJlZS4KICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CkBAIC0xMzMsNyArMTI1LDYgQEAgcHVibGlj
OgogcHJvdGVjdGVkOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdEZWNvcmF0ZWRQcm9wZXJ0eTxE
ZWNvcmF0aW9uVHlwZT4+IG1fYmFzZVZhbDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHRGVjb3Jh
dGVkUHJvcGVydHk8RGVjb3JhdGlvblR5cGU+PiBtX2FuaW1WYWw7Ci0gICAgU1ZHUHJvcGVydHlT
dGF0ZSBtX3N0YXRlIHsgU1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW4gfTsKIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJpbWl0aXZl
UHJvcGVydHkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJp
bWl0aXZlUHJvcGVydHkuaAppbmRleCBlMTRmNjc5ZjMzNjNkZGM1YThmNDFjMDM1ZmRmNzM0ZWJj
Yjk2NjYxLi5kNDQ4MGY3NGEyZTM5NmQxOGE5MzdkZjc4OTMwZjNkNWZiZmIxMThkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByaW1pdGl2ZVBy
b3BlcnR5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQ
cmltaXRpdmVQcm9wZXJ0eS5oCkBAIC04Nyw5ICs4Nyw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAg
ICAvLyBNYW5hZ2luZyB0aGUgcmVsYXRpb25zaGlwIHdpdGggdGhlIG93bmVyLgotICAgIHZvaWQg
c2V0RGlydHkoKSBvdmVycmlkZSB7IG1fYmFzZVZhbC0+c2V0RGlydHkoKTsgfQotICAgIGJvb2wg
aXNEaXJ0eSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYmFzZVZhbC0+aXNEaXJ0eSgpOyB9
Ci0gICAgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZSgpIG92ZXJyaWRlIHsgcmV0dXJuIG1f
YmFzZVZhbC0+c3luY2hyb25pemUoKTsgfQorICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gYmFzZVZhbEFzU3RyaW5nKCk7IH0KIAogICAgIC8vIFVzZWQg
YnkgUmVuZGVyU1ZHRWxlbWVudHMgYW5kIER1bXBSZW5kZXJUcmVlLgogICAgIGNvbnN0IFByb3Bl
cnR5VHlwZSYgY3VycmVudFZhbHVlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAKaW5kZXggZWMyZjNhNDg3Zjgz
MGYxYzcyNmQwZjZiZTRjOTQyMmVjOGYzMDFlOC4uZWRhNWM4NGMzNWZiYzdiZDI1NGQxYWRlMmZi
MjU4MTY2NTgzZGMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAKQEAgLTMwLDEyICszMCwxMiBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVNWR1Byb3BlcnR5T3duZXIqIFNWR0FuaW1hdGVkUHJvcGVydHk6Om93
bmVyKCkgY29uc3QKK0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBTVkdBbmltYXRlZFByb3BlcnR5
OjpvYnNlcnZlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY29udGV4dEVsZW1lbnQ7CiB9CiAK
LXZvaWQgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6Y29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJvcGVy
dHkqKQordm9pZCBTVkdBbmltYXRlZFByb3BlcnR5Ojpjb21taXRQcm9wZXJ0eUNoYW5nZShET01M
aXZlUHJvcGVydHkqKQogewogICAgIGlmICghbV9jb250ZXh0RWxlbWVudCkKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eS5oCmluZGV4IGM2ZjkzMmU2ZGY2OWNjZWZhZmM5NjVlMzJjZDU2NjIwYTFmYzMzNjQu
LmExMDQxZTYwNTI5ZGExZmQyMzE4NjBlMjYwYjcxY2NmYjcwYzRhOWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmgKQEAgLTI1
LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eU93bmVy
LmgiCisjaW5jbHVkZSAiRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgpAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgCiBjbGFzcyBTVkdFbGVtZW50OwogCi1jbGFzcyBTVkdBbmltYXRlZFByb3BlcnR5IDogcHVi
bGljIFJlZkNvdW50ZWQ8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4sIHB1YmxpYyBTVkdQcm9wZXJ0eU93
bmVyIHsKK2NsYXNzIFNWR0FuaW1hdGVkUHJvcGVydHkgOiBwdWJsaWMgUmVmQ291bnRlZDxTVkdB
bmltYXRlZFByb3BlcnR5PiwgcHVibGljIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyIHsKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZFByb3BlcnR5KCkgPSBkZWZhdWx0OwogICAgIApA
QCAtNDcsOSArNDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgYW5pbVZhbEFzU3Ry
aW5nKCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQogICAgIAogICAgIC8vIENvbnRy
b2wgdGhlIHN5bmNocm9uaXphdGlvbiBiZXR3ZWVuIHRoZSBhdHRyaWJ1dGUgYW5kIGl0cyByZWZs
ZWN0aW9uIGluIGJhc2VWYWwuCi0gICAgdmlydHVhbCBib29sIGlzRGlydHkoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXREaXJ0eSgpIHsgfQotICAgIHZpcnR1
YWwgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZSgpIHsgcmV0dXJuIFdURjo6bnVsbG9wdDsg
fQorICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdCB7IHJldHVybiBlbXB0
eVN0cmluZygpOyB9CiAgICAgCiAgICAgLy8gQ29udHJvbCB0aGUgYW5pbWF0aW9uIGxpZmUgY3lj
bGUuCiAgICAgYm9vbCBpc0FuaW1hdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNBbmltYXRpbmc7
IH0KQEAgLTY2LDggKzY0LDggQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICB9CiAgICAgCi0gICAg
U1ZHUHJvcGVydHlPd25lciogb3duZXIoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGNvbW1p
dFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5Kikgb3ZlcnJpZGU7CisgICAgRE9NTGl2ZVByb3Bl
cnR5T2JzZXJ2ZXIqIG9ic2VydmVyKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21taXRQ
cm9wZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqKSBvdmVycmlkZTsKICAgICAKICAgICBTVkdF
bGVtZW50KiBtX2NvbnRleHRFbGVtZW50IHsgbnVsbHB0ciB9OwogICAgIGJvb2wgbV9pc0FuaW1h
dGluZyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZFByb3BlcnR5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuaAppbmRleCBmNDI1NWQ3ZjZlNzViMTRhY2E4OGE4
ODBiZmYzNmU2NTYzODNmNzE2Li5hZDIxYTk4MDZjNTRhZmMwNmVjYWE1YTcxMzI1Y2RiMjMxM2Nh
ZjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZFByb3BlcnR5TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0Fu
aW1hdGVkUHJvcGVydHlMaXN0LmgKQEAgLTY4LDkgKzY4LDcgQEAgcHVibGljOgogICAgIH0KIAog
ICAgIC8vIE1hbmFnaW5nIHRoZSByZWxhdGlvbnNoaXAgd2l0aCB0aGUgb3duZXIuCi0gICAgdm9p
ZCBzZXREaXJ0eSgpIG92ZXJyaWRlIHsgbV9iYXNlVmFsLT5zZXREaXJ0eSgpOyB9Ci0gICAgYm9v
bCBpc0RpcnR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9iYXNlVmFsLT5pc0RpcnR5KCk7
IH0KLSAgICBPcHRpb25hbDxTdHJpbmc+IHN5bmNocm9uaXplKCkgb3ZlcnJpZGUgeyByZXR1cm4g
bV9iYXNlVmFsLT5zeW5jaHJvbml6ZSgpOyB9CisgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBiYXNlVmFsQXNTdHJpbmcoKTsgfQogCiAgICAgLy8gVXNl
ZCBieSBSZW5kZXJTVkdFbGVtZW50cyBhbmQgRHVtcFJlbmRlclRyZWUuCiAgICAgY29uc3QgTGlz
dFR5cGUmIGN1cnJlbnRWYWx1ZSgpIGNvbnN0CkBAIC0xMTcsMTkgKzExNSwyNCBAQCBwcm90ZWN0
ZWQ6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIFNWR0FuaW1hdGVk
UHJvcGVydHlMaXN0KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBBcmd1bWVudHMmJi4uLiBh
cmd1bWVudHMpCiAgICAgICAgIDogU1ZHQW5pbWF0ZWRQcm9wZXJ0eShjb250ZXh0RWxlbWVudCkK
LSAgICAgICAgLCBtX2Jhc2VWYWwoTGlzdFR5cGU6OmNyZWF0ZSh0aGlzLCBTVkdQcm9wZXJ0eUFj
Y2Vzczo6UmVhZFdyaXRlLCBzdGQ6OmZvcndhcmQ8QXJndW1lbnRzPihhcmd1bWVudHMpLi4uKSkK
KyAgICAgICAgLCBtX2Jhc2VWYWwoTGlzdFR5cGU6OmNyZWF0ZSh0aGlzLCBzdGQ6OmZvcndhcmQ8
QXJndW1lbnRzPihhcmd1bWVudHMpLi4uKSkKICAgICB7CiAgICAgfQogCiAgICAgUmVmUHRyPExp
c3RUeXBlPiYgZW5zdXJlQW5pbVZhbCgpCiAgICAgewogICAgICAgICBpZiAoIW1fYW5pbVZhbCkK
LSAgICAgICAgICAgIG1fYW5pbVZhbCA9IExpc3RUeXBlOjpjcmVhdGUobV9iYXNlVmFsLCBTVkdQ
cm9wZXJ0eUFjY2Vzczo6UmVhZE9ubHkpOworICAgICAgICAgICAgbV9hbmltVmFsID0gTGlzdFR5
cGU6OmNyZWF0ZShtX2Jhc2VWYWwuZ2V0KCkpOwogICAgICAgICByZXR1cm4gbV9hbmltVmFsOwog
ICAgIH0KIAorICAgIGJvb2wgaXNQcm9wZXJ0eVJlYWRPbmx5KGNvbnN0IERPTUxpdmVQcm9wZXJ0
eSYgcHJvcGVydHkpIGNvbnN0IG92ZXJyaWRlCisgICAgeworICAgICAgICByZXR1cm4gbV9hbmlt
VmFsID09ICZwcm9wZXJ0eTsKKyAgICB9CisKICAgICAvLyBDYWxsZWQgd2hlbiBtX2Jhc2VWYWwg
Y2hhbmdlcyBvciBhbiBpdGVtIGluIG1fYmFzZVZhbCBjaGFuZ2VzLgotICAgIHZvaWQgY29tbWl0
UHJvcGVydHlDaGFuZ2UoU1ZHUHJvcGVydHkqIHByb3BlcnR5KSBvdmVycmlkZQorICAgIHZvaWQg
Y29tbWl0UHJvcGVydHlDaGFuZ2UoRE9NTGl2ZVByb3BlcnR5KiBwcm9wZXJ0eSkgb3ZlcnJpZGUK
ICAgICB7CiAgICAgICAgIGlmIChtX2FuaW1WYWwpCiAgICAgICAgICAgICAqbV9hbmltVmFsID0g
bV9iYXNlVmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3NvckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlQYWlyQWNjZXNzb3JJbXBsLmgKaW5kZXggNGEy
NjlmYTVhOGYyN2NkMzM1NWU4MzQwNmZhNTM4NTNkOTUyODljNS4uMzUwYmMwODhlYjQ1YTk2MDk4
ZWE5MjQ3YTM3NTg1ODI4ZWUxMzUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3NvckltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5UGFpckFjY2Vzc29y
SW1wbC5oCkBAIC00NiwxNyArNDYsMTEgQEAgcHVibGljOgogICAgIGNvbnN0ZXhwciBzdGF0aWMg
Y29uc3QgU1ZHTWVtYmVyQWNjZXNzb3I8T3duZXJUeXBlPiYgc2luZ2xldG9uKCkgeyByZXR1cm4g
QmFzZTo6dGVtcGxhdGUgc2luZ2xldG9uPFNWR0FuaW1hdGVkQW5nbGVPcmllbnRBY2Nlc3Nvciwg
cHJvcGVydHkxLCBwcm9wZXJ0eTI+KCk7IH0KIAogcHJpdmF0ZToKLSAgICBPcHRpb25hbDxTdHJp
bmc+IHN5bmNocm9uaXplKGNvbnN0IE93bmVyVHlwZSYgb3duZXIpIGNvbnN0IGZpbmFsCisgICAg
U3RyaW5nIHZhbHVlQXNTdHJpbmcoY29uc3QgT3duZXJUeXBlJiBvd25lcikgY29uc3QgZmluYWwK
ICAgICB7Ci0gICAgICAgIGJvb2wgZGlydHkxID0gcHJvcGVydHkxKG93bmVyKS0+aXNEaXJ0eSgp
OwotICAgICAgICBib29sIGRpcnR5MiA9IHByb3BlcnR5Mihvd25lciktPmlzRGlydHkoKTsKLSAg
ICAgICAgaWYgKCEoZGlydHkxIHx8IGRpcnR5MikpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwotCiAgICAgICAgIGF1dG8gdHlwZSA9IHByb3BlcnR5Mihvd25lciktPmJhc2VWYWwo
KTsKLQotICAgICAgICBTdHJpbmcgc3RyaW5nMSA9IGRpcnR5MSA/ICpwcm9wZXJ0eTEob3duZXIp
LT5zeW5jaHJvbml6ZSgpIDogcHJvcGVydHkxKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5nKCk7Ci0g
ICAgICAgIFN0cmluZyBzdHJpbmcyID0gZGlydHkyID8gKnByb3BlcnR5Mihvd25lciktPnN5bmNo
cm9uaXplKCkgOiBwcm9wZXJ0eTIob3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsKKyAgICAgICAg
U3RyaW5nIHN0cmluZzEgPSBwcm9wZXJ0eTEob3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsKKyAg
ICAgICAgU3RyaW5nIHN0cmluZzIgPSBwcm9wZXJ0eTIob3duZXIpLT5iYXNlVmFsQXNTdHJpbmco
KTsKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gU1ZHTWFya2VyT3JpZW50QXV0byB8fCB0eXBlID09
IFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVyc2UgPyBzdHJpbmcyIDogc3RyaW5nMTsKICAg
ICB9CiAKQEAgLTgzLDE1ICs3NywxMCBAQCBwdWJsaWM6CiAgICAgY29uc3RleHByIHN0YXRpYyBj
b25zdCBTVkdNZW1iZXJBY2Nlc3NvcjxPd25lclR5cGU+JiBzaW5nbGV0b24oKSB7IHJldHVybiBC
YXNlOjp0ZW1wbGF0ZSBzaW5nbGV0b248U1ZHQW5pbWF0ZWRJbnRlZ2VyUGFpckFjY2Vzc29yLCBw
cm9wZXJ0eTEsIHByb3BlcnR5Mj4oKTsgfQogCiBwcml2YXRlOgotICAgIE9wdGlvbmFsPFN0cmlu
Zz4gc3luY2hyb25pemUoY29uc3QgT3duZXJUeXBlJiBvd25lcikgY29uc3QgZmluYWwKKyAgICBT
dHJpbmcgdmFsdWVBc1N0cmluZyhjb25zdCBPd25lclR5cGUmIG93bmVyKSBjb25zdCBmaW5hbAog
ICAgIHsKLSAgICAgICAgYm9vbCBkaXJ0eTEgPSBwcm9wZXJ0eTEob3duZXIpLT5pc0RpcnR5KCk7
Ci0gICAgICAgIGJvb2wgZGlydHkyID0gcHJvcGVydHkyKG93bmVyKS0+aXNEaXJ0eSgpOwotICAg
ICAgICBpZiAoIShkaXJ0eTEgfHwgZGlydHkyKSkKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7Ci0KLSAgICAgICAgU3RyaW5nIHN0cmluZzEgPSBkaXJ0eTEgPyAqcHJvcGVydHkxKG93
bmVyKS0+c3luY2hyb25pemUoKSA6IHByb3BlcnR5MShvd25lciktPmJhc2VWYWxBc1N0cmluZygp
OwotICAgICAgICBTdHJpbmcgc3RyaW5nMiA9IGRpcnR5MiA/ICpwcm9wZXJ0eTIob3duZXIpLT5z
eW5jaHJvbml6ZSgpIDogcHJvcGVydHkyKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5nKCk7CisgICAg
ICAgIFN0cmluZyBzdHJpbmcxID0gcHJvcGVydHkxKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5nKCk7
CisgICAgICAgIFN0cmluZyBzdHJpbmcyID0gcHJvcGVydHkyKG93bmVyKS0+YmFzZVZhbEFzU3Ry
aW5nKCk7CiAgICAgICAgIHJldHVybiBzdHJpbmcxID09IHN0cmluZzIgPyBzdHJpbmcxIDogc3Ry
aW5nMSArICIsICIgKyBzdHJpbmcyOwogICAgIH0KIApAQCAtMTE0LDE5ICsxMDMsMTQgQEAgY2xh
c3MgU1ZHQW5pbWF0ZWROdW1iZXJQYWlyQWNjZXNzb3IgZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0
ZWRQcm9wZXJ0eVBhaXJBY2Nlc3MKIAogcHVibGljOgogICAgIHVzaW5nIEJhc2U6OkJhc2U7Ci0g
ICAgdGVtcGxhdGU8UmVmPFNWR0FuaW1hdGVkTnVtYmVyPiBPd25lclR5cGU6Oipwcm9wZXJ0eTEs
IFJlZjxTVkdBbmltYXRlZE51bWJlcj4gT3duZXJUeXBlOjoqcHJvcGVydHkyID4KKyAgICB0ZW1w
bGF0ZTxSZWY8U1ZHQW5pbWF0ZWROdW1iZXI+IE93bmVyVHlwZTo6KnByb3BlcnR5MSwgUmVmPFNW
R0FuaW1hdGVkTnVtYmVyPiBPd25lclR5cGU6Oipwcm9wZXJ0eTI+CiAgICAgY29uc3RleHByIHN0
YXRpYyBjb25zdCBTVkdNZW1iZXJBY2Nlc3NvcjxPd25lclR5cGU+JiBzaW5nbGV0b24oKSB7IHJl
dHVybiBCYXNlOjp0ZW1wbGF0ZSBzaW5nbGV0b248U1ZHQW5pbWF0ZWROdW1iZXJQYWlyQWNjZXNz
b3IsIHByb3BlcnR5MSwgcHJvcGVydHkyPigpOyB9CiAKIHByaXZhdGU6Ci0gICAgT3B0aW9uYWw8
U3RyaW5nPiBzeW5jaHJvbml6ZShjb25zdCBPd25lclR5cGUmIG93bmVyKSBjb25zdCBmaW5hbAor
ICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKGNvbnN0IE93bmVyVHlwZSYgb3duZXIpIGNvbnN0IGZp
bmFsCiAgICAgewotICAgICAgICBib29sIGRpcnR5MSA9IHByb3BlcnR5MShvd25lciktPmlzRGly
dHkoKTsKLSAgICAgICAgYm9vbCBkaXJ0eTIgPSBwcm9wZXJ0eTIob3duZXIpLT5pc0RpcnR5KCk7
Ci0gICAgICAgIGlmICghKGRpcnR5MSB8fCBkaXJ0eTIpKQotICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKLQotICAgICAgICBTdHJpbmcgc3RyaW5nMSA9IGRpcnR5MSA/ICpwcm9wZXJ0
eTEob3duZXIpLT5zeW5jaHJvbml6ZSgpIDogcHJvcGVydHkxKG93bmVyKS0+YmFzZVZhbEFzU3Ry
aW5nKCk7Ci0gICAgICAgIFN0cmluZyBzdHJpbmcyID0gZGlydHkyID8gKnByb3BlcnR5Mihvd25l
ciktPnN5bmNocm9uaXplKCkgOiBwcm9wZXJ0eTIob3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsK
KyAgICAgICAgU3RyaW5nIHN0cmluZzEgPSBwcm9wZXJ0eTEob3duZXIpLT5iYXNlVmFsQXNTdHJp
bmcoKTsKKyAgICAgICAgU3RyaW5nIHN0cmluZzIgPSBwcm9wZXJ0eTIob3duZXIpLT5iYXNlVmFs
QXNTdHJpbmcoKTsKICAgICAgICAgcmV0dXJuIHN0cmluZzEgPT0gc3RyaW5nMiA/IHN0cmluZzEg
OiBzdHJpbmcxICsgIiwgIiArIHN0cmluZzI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFZhbHVlUHJvcGVydHkuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oCmluZGV4
IGRmZGIxNzFhMGNiODNmYzc1OTYwNTllNzYwNGE3ZmQ4OTM1MWY1MjUuLjdmOTY1MjVhYjkzYjY0
Y2YzN2NjYTUyYWY0N2RmYjRlNmMwMWFmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oCkBAIC04NCw5ICs4
NCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBNYW5hZ2luZyB0aGUgcmVsYXRpb25zaGlw
IHdpdGggdGhlIG93bmVyLgotICAgIHZvaWQgc2V0RGlydHkoKSBvdmVycmlkZSB7IG1fYmFzZVZh
bC0+c2V0RGlydHkoKTsgfQotICAgIGJvb2wgaXNEaXJ0eSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1fYmFzZVZhbC0+aXNEaXJ0eSgpOyB9Ci0gICAgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJv
bml6ZSgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fYmFzZVZhbC0+c3luY2hyb25pemUoKTsgfQorICAg
IFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYmFzZVZhbEFz
U3RyaW5nKCk7IH0KIAogICAgIC8vIFVzZWQgYnkgUmVuZGVyU1ZHRWxlbWVudHMgYW5kIER1bXBS
ZW5kZXJUcmVlLgogICAgIGNvbnN0IFZhbHVlVHlwZSYgY3VycmVudFZhbHVlKCkgY29uc3QKQEAg
LTEzMSwyNiArMTI5LDI0IEBAIHByb3RlY3RlZDoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBB
cmd1bWVudHM+CiAgICAgU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5KFNWR0VsZW1lbnQqIGNvbnRl
eHRFbGVtZW50LCBBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCiAgICAgICAgIDogU1ZHQW5pbWF0
ZWRQcm9wZXJ0eShjb250ZXh0RWxlbWVudCkKLSAgICAgICAgLCBtX2Jhc2VWYWwoUHJvcGVydHlU
eXBlOjpjcmVhdGUodGhpcywgU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0ZSwgVmFsdWVUeXBl
KHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4pKSkKLSAgICB7Ci0gICAgfQot
Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIFNWR0FuaW1hdGVkVmFs
dWVQcm9wZXJ0eShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgU1ZHUHJvcGVydHlBY2Nlc3Mg
YWNjZXNzLCBBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCi0gICAgICAgIDogU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eShjb250ZXh0RWxlbWVudCkKLSAgICAgICAgLCBtX2Jhc2VWYWwoUHJvcGVydHlUeXBl
OjpjcmVhdGUodGhpcywgYWNjZXNzLCBWYWx1ZVR5cGUoc3RkOjpmb3J3YXJkPEFyZ3VtZW50cz4o
YXJndW1lbnRzKS4uLikpKQorICAgICAgICAsIG1fYmFzZVZhbChQcm9wZXJ0eVR5cGU6OmNyZWF0
ZSh0aGlzLCBWYWx1ZVR5cGUoc3RkOjpmb3J3YXJkPEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLikp
KQogICAgIHsKICAgICB9CiAKICAgICBSZWZQdHI8UHJvcGVydHlUeXBlPiYgZW5zdXJlQW5pbVZh
bCgpCiAgICAgewogICAgICAgICBpZiAoIW1fYW5pbVZhbCkKLSAgICAgICAgICAgIG1fYW5pbVZh
bCA9IFByb3BlcnR5VHlwZTo6Y3JlYXRlKHRoaXMsIFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkT25s
eSwgbV9iYXNlVmFsLT52YWx1ZSgpKTsKKyAgICAgICAgICAgIG1fYW5pbVZhbCA9IFByb3BlcnR5
VHlwZTo6Y3JlYXRlKHRoaXMsIG1fYmFzZVZhbC0+dmFsdWUoKSk7CiAgICAgICAgIHJldHVybiBt
X2FuaW1WYWw7CiAgICAgfQogCisgICAgYm9vbCBpc1Byb3BlcnR5UmVhZE9ubHkoY29uc3QgRE9N
TGl2ZVByb3BlcnR5JiBwcm9wZXJ0eSkgY29uc3Qgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHJl
dHVybiBtX2FuaW1WYWwgPT0gJnByb3BlcnR5OworICAgIH0KKwogICAgIC8vIENhbGxlZCB3aGVu
IG1fYmFzZVZhbCBjaGFuZ2VzLgotICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJv
cGVydHkqIHByb3BlcnR5KSBvdmVycmlkZQorICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2Uo
RE9NTGl2ZVByb3BlcnR5KiBwcm9wZXJ0eSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmICht
X2FuaW1WYWwpCiAgICAgICAgICAgICBtX2FuaW1WYWwtPnNldFZhbHVlKG1fYmFzZVZhbC0+dmFs
dWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNZW1i
ZXJBY2Nlc3Nvci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWVtYmVyQWNj
ZXNzb3IuaAppbmRleCBmN2JiYTZhZTBhMGVlYWJiNmU2MTg3YTU4MTA0ZjcyMTI4YWNhYWZhLi5l
NTk3NzgwNTc2MDQxOTEzMjdjMjc0NTg5ZDYyYWY1NzY3YmJiM2RmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNZW1iZXJBY2Nlc3Nvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01lbWJlckFjY2Vzc29yLmgKQEAgLTMwLDggKzMw
LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBET01MaXZlUHJvcGVydHk7CiBj
bGFzcyBTVkdBbmltYXRlZFByb3BlcnR5OwotY2xhc3MgU1ZHUHJvcGVydHk7CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIE93bmVyVHlwZT4KIGNsYXNzIFNWR01lbWJlckFjY2Vzc29yIHsKQEAgLTQzLDkg
KzQzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGVkUHJvcGVydHkoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGVkTGVuZ3Ro
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBtYXRjaGVzKGNv
bnN0IE93bmVyVHlwZSYsIGNvbnN0IFNWR1Byb3BlcnR5JikgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlcyhjb25zdCBPd25lclR5cGUmLCBjb25zdCBET01M
aXZlUHJvcGVydHkmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBt
YXRjaGVzKGNvbnN0IE93bmVyVHlwZSYsIGNvbnN0IFNWR0FuaW1hdGVkUHJvcGVydHkmKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJv
bml6ZShjb25zdCBPd25lclR5cGUmKSBjb25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KKyAg
ICB2aXJ0dWFsIFN0cmluZyB2YWx1ZUFzU3RyaW5nKGNvbnN0IE93bmVyVHlwZSYpIGNvbnN0IHsg
cmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KIAogICAgIHZpcnR1YWwgUmVmUHRyPFNWR0F0dHJpYnV0
ZUFuaW1hdG9yPiBjcmVhdGVBbmltYXRvcihPd25lclR5cGUmLCBjb25zdCBRdWFsaWZpZWROYW1l
JiwgQW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUsIGJvb2wsIGJvb2wpIGNvbnN0IHsgcmV0dXJuIG51
bGxwdHI7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kQW5pbWF0ZWRJbnN0YW5jZShPd25lclR5
cGUmLCBTVkdBdHRyaWJ1dGVBbmltYXRvciYpIGNvbnN0IHsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUG9pbnRlck1lbWJlckFjY2Vzc29yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQb2ludGVyTWVtYmVyQWNjZXNzb3IuaAppbmRl
eCA4ZTJmNzZkY2FiNGU5MGZiMzhlYjMzOTY5ZWE2NWMwNzAyMjQ1Mzg3Li5hZjUzZDZjNTZmZDg2
OTdlMzA5NWUwMWNiYWE5OWU4OWQ3MzZkMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdQb2ludGVyTWVtYmVyQWNjZXNzb3IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdQb2ludGVyTWVtYmVyQWNjZXNzb3IuaApAQCAtNDcsOSAr
NDcsOSBAQCBwdWJsaWM6CiAgICAgICAgIHByb3BlcnR5KG93bmVyKS0+ZGV0YWNoKCk7CiAgICAg
fQogCi0gICAgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZShjb25zdCBPd25lclR5cGUmIG93
bmVyKSBjb25zdCBvdmVycmlkZQorICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKGNvbnN0IE93bmVy
VHlwZSYgb3duZXIpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVy
dHkob3duZXIpLT5zeW5jaHJvbml6ZSgpOworICAgICAgICByZXR1cm4gcHJvcGVydHkob3duZXIp
LT52YWx1ZUFzU3RyaW5nKCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHkuaAppbmRleCBjZTY1Y2IxMTBkMWZiNDY2ZTIyOWVj
NzljOWRkMDE3ZTg2MTI5OTY3Li43NmE5N2M1OTllYzhlM2M0Y2UzYzA0YmU2MWQ2MWEwODk4YzQ3
Y2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5LmgKQEAg
LTIwLDgzICsyMCwyMSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR1Byb3BlcnR5
T3duZXIuaCIKLSNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlICJET01MaXZlUHJv
cGVydHkuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgU1ZHUHJv
cGVydHlBY2Nlc3MgOiB1aW50OF90IHsgUmVhZFdyaXRlLCBSZWFkT25seSB9OwotZW51bSBjbGFz
cyBTVkdQcm9wZXJ0eVN0YXRlIDogdWludDhfdCB7IENsZWFuLCBEaXJ0eSB9OwotCi1jbGFzcyBT
VkdQcm9wZXJ0eSA6IHB1YmxpYyBSZWZDb3VudGVkPFNWR1Byb3BlcnR5PiB7CitjbGFzcyBTVkdQ
cm9wZXJ0eSA6IHB1YmxpYyBET01MaXZlUHJvcGVydHksIHB1YmxpYyBSZWZDb3VudGVkPFNWR1By
b3BlcnR5PiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1ZHUHJvcGVydHkoKSA9IGRlZmF1bHQ7
CiAKLSAgICAvLyBNYW5hZ2luZyB0aGUgcmVsYXRpb25zaGlwIHdpdGggdGhlIG93bmVyLgotICAg
IGJvb2wgaXNBdHRhY2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1fb3duZXI7IH0KLSAgICB2b2lkIGF0
dGFjaChTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQot
ICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX293bmVyKTsKLSAgICAgICAgQVNTRVJUKG1fc3RhdGUg
PT0gU1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW4pOwotICAgICAgICBtX293bmVyID0gb3duZXI7Ci0g
ICAgICAgIG1fYWNjZXNzID0gYWNjZXNzOwotICAgIH0KLQotICAgIHZvaWQgZGV0YWNoKCkKLSAg
ICB7Ci0gICAgICAgIG1fb3duZXIgPSBudWxscHRyOwotICAgICAgICBtX2FjY2VzcyA9IFNWR1By
b3BlcnR5QWNjZXNzOjpSZWFkV3JpdGU7Ci0gICAgICAgIG1fc3RhdGUgPSBTVkdQcm9wZXJ0eVN0
YXRlOjpDbGVhbjsKLSAgICB9Ci0KLSAgICBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVu
dCgpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoIW1fb3duZXIpCi0gICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICAgICAgcmV0dXJuIG1fb3duZXItPmF0dHJpYnV0ZUNvbnRleHRFbGVt
ZW50KCk7Ci0gICAgfQotCi0gICAgdm9pZCBjb21taXRDaGFuZ2UoKQotICAgIHsKLSAgICAgICAg
aWYgKCFtX293bmVyKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX293bmVyLT5jb21t
aXRQcm9wZXJ0eUNoYW5nZSh0aGlzKTsKLSAgICB9Ci0KLSAgICAvLyBET00gYWNjZXNzLgotICAg
IFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzOyB9Ci0g
ICAgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3QgeyByZXR1cm4gbV9hY2Nlc3MgPT0gU1ZHUHJvcGVy
dHlBY2Nlc3M6OlJlYWRPbmx5OyB9Ci0KLSAgICAvLyBTeW5jaHJvbml6aW5nIHRoZSBTVkcgYXR0
cmlidXRlIGFuZCBpdHMgcmVmbGVjdGlvbiBoZXJlLgotICAgIGJvb2wgaXNEaXJ0eSgpIGNvbnN0
IHsgcmV0dXJuIG1fc3RhdGUgPT0gU1ZHUHJvcGVydHlTdGF0ZTo6RGlydHk7IH0KLSAgICB2b2lk
IHNldERpcnR5KCkgeyBtX3N0YXRlID0gU1ZHUHJvcGVydHlTdGF0ZTo6RGlydHk7IH0KLSAgICBP
cHRpb25hbDxTdHJpbmc+IHN5bmNocm9uaXplKCkKLSAgICB7Ci0gICAgICAgIGlmIChtX3N0YXRl
ID09IFNWR1Byb3BlcnR5U3RhdGU6OkNsZWFuKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKLSAgICAgICAgbV9zdGF0ZSA9IFNWR1Byb3BlcnR5U3RhdGU6OkNsZWFuOwotICAgICAg
ICByZXR1cm4gdmFsdWVBc1N0cmluZygpOwotICAgIH0KLQogICAgIC8vIFRoaXMgaXMgdXNlZCB3
aGVuIGNhbGxpbmcgc2V0QXR0cmlidXRlKCkuCiAgICAgdmlydHVhbCBTdHJpbmcgdmFsdWVBc1N0
cmluZygpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KIAotICAgIC8vIFZpc3VhbCBT
dHVkaW8gZG9lc24ndCBzZWVtIHRvIHNlZSB0aGVzZSBwcml2YXRlIGNvbnN0cnVjdG9ycyBmcm9t
IHN1YmNsYXNzZXMuCi0gICAgLy8gRklYTUU6IFNlZSB3aGF0IGl0IHRha2VzIHRvIHJlbW92ZSB0
aGlzIGhhY2suCi0jaWYgIUNPTVBJTEVSKE1TVkMpCiBwcm90ZWN0ZWQ6Ci0jZW5kaWYKLSAgICBT
VkdQcm9wZXJ0eShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciA9IG51bGxwdHIsIFNWR1Byb3BlcnR5
QWNjZXNzIGFjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUpCi0gICAgICAgIDog
bV9vd25lcihvd25lcikKLSAgICAgICAgLCBtX2FjY2VzcyhhY2Nlc3MpCi0gICAgewotICAgIH0K
LQotICAgIFNWR1Byb3BlcnR5T3duZXIqIG1fb3duZXIgeyBudWxscHRyIH07Ci0gICAgU1ZHUHJv
cGVydHlBY2Nlc3MgbV9hY2Nlc3MgeyBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRlIH07Ci0g
ICAgU1ZHUHJvcGVydHlTdGF0ZSBtX3N0YXRlIHsgU1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW4gfTsK
KyAgICB1c2luZyBET01MaXZlUHJvcGVydHk6OkRPTUxpdmVQcm9wZXJ0eTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR1Byb3BlcnR5QWNjZXNzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR1Byb3BlcnR5QWNjZXNzb3IuaAppbmRleCBmZjhjNGNkZTZkZDBmM2NhZmJjOGYyN2IyNzAy
OTcwZTM1ZjQ4NzY0Li44ZDEyODE4MjdkNGZiOTg4OTNiZmYxZjI0OWUwYjM1Njg4MjI3NWY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFjY2Vz
c29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlBY2Nl
c3Nvci5oCkBAIC00MCw3ICs0MCw3IEBAIHByb3RlY3RlZDoKICAgICB1c2luZyBCYXNlOjpwcm9w
ZXJ0eTsKICAgICB1c2luZyBCYXNlOjpzaW5nbGV0b247CiAKLSAgICBib29sIG1hdGNoZXMoY29u
c3QgT3duZXJUeXBlJiBvd25lciwgY29uc3QgU1ZHUHJvcGVydHkmIHByb3BlcnR5KSBjb25zdCBv
dmVycmlkZQorICAgIGJvb2wgbWF0Y2hlcyhjb25zdCBPd25lclR5cGUmIG93bmVyLCBjb25zdCBE
T01MaXZlUHJvcGVydHkmIHByb3BlcnR5KSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAg
cmV0dXJuIHRoaXMtPnByb3BlcnR5KG93bmVyKS5wdHIoKSA9PSAmcHJvcGVydHk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlMaXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUxpc3QuaAppbmRl
eCBjYmIwMGFmMTAzMDI1OWZhM2MwNDFhM2YwZjJhYjc4NzNjN2RkM2NkLi5jMTM0NjQzODg1ZjFi
ZWFhZmI5N2E3YjdmNWQ0ZWUwZmQ4MjNmYzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdQcm9wZXJ0eUxpc3QuaApAQCAtMzAsNyArMzAsNyBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+Ci1jbGFzcyBTVkdQ
cm9wZXJ0eUxpc3QgOiBwdWJsaWMgU1ZHTGlzdDxSZWY8UHJvcGVydHlUeXBlPj4sIHB1YmxpYyBT
VkdQcm9wZXJ0eU93bmVyIHsKK2NsYXNzIFNWR1Byb3BlcnR5TGlzdCA6IHB1YmxpYyBTVkdMaXN0
PFJlZjxQcm9wZXJ0eVR5cGU+PiwgcHVibGljIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyIHsKIHB1
YmxpYzoKICAgICB1c2luZyBCYXNlTGlzdCA9IFNWR0xpc3Q8UmVmPFByb3BlcnR5VHlwZT4+Owog
ICAgIHVzaW5nIEJhc2VMaXN0Ojppc0VtcHR5OwpAQCAtNDIsMTMgKzQyLDEyIEBAIHB1YmxpYzoK
ICNpZiAhQ09NUElMRVIoTVNWQykKIHByb3RlY3RlZDoKICNlbmRpZgotICAgIHVzaW5nIFNWR1By
b3BlcnR5T3duZXI6OlNWR1Byb3BlcnR5T3duZXI7CisgICAgdXNpbmcgRE9NTGl2ZVByb3BlcnR5
T2JzZXJ2ZXI6OkRPTUxpdmVQcm9wZXJ0eU9ic2VydmVyOwogICAgIHVzaW5nIEJhc2VMaXN0Ojpt
X2l0ZW1zOwotICAgIHVzaW5nIEJhc2VMaXN0OjptX2FjY2VzczsKLSAgICB1c2luZyBCYXNlTGlz
dDo6bV9vd25lcjsKKyAgICB1c2luZyBCYXNlTGlzdDo6bV9vYnNlcnZlcjsKIAotICAgIFNWR1By
b3BlcnR5TGlzdChTVkdQcm9wZXJ0eU93bmVyKiBvd25lciA9IG51bGxwdHIsIFNWR1Byb3BlcnR5
QWNjZXNzIGFjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUpCi0gICAgICAgIDog
QmFzZUxpc3Qob3duZXIsIGFjY2VzcykKKyAgICBTVkdQcm9wZXJ0eUxpc3QoRE9NTGl2ZVByb3Bl
cnR5T2JzZXJ2ZXIqIG9ic2VydmVyID0gbnVsbHB0cikKKyAgICAgICAgOiBCYXNlTGlzdChvYnNl
cnZlcikKICAgICB7CiAgICAgfQogCkBAIC02NCwxMiArNjMsMTcgQEAgcHJvdGVjdGVkOgogICAg
ICAgICAgICAgaXRlbS0+ZGV0YWNoKCk7CiAgICAgfQogCi0gICAgU1ZHUHJvcGVydHlPd25lciog
b3duZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX293bmVyOyB9CisgICAgRE9NTGl2ZVBy
b3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9vYnNl
cnZlcjsgfQogCi0gICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9wZXJ0eSopIG92
ZXJyaWRlCisgICAgYm9vbCBpc1Byb3BlcnR5UmVhZE9ubHkoY29uc3QgRE9NTGl2ZVByb3BlcnR5
JikgY29uc3Qgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIGlmIChvd25lcigpKQotICAgICAgICAg
ICAgb3duZXIoKS0+Y29tbWl0UHJvcGVydHlDaGFuZ2UodGhpcyk7CisgICAgICAgIHJldHVybiBv
YnNlcnZlcigpICYmIG9ic2VydmVyKCktPmlzUHJvcGVydHlSZWFkT25seSgqdGhpcyk7CisgICAg
fQorCisgICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqKSBvdmVy
cmlkZQorICAgIHsKKyAgICAgICAgaWYgKG9ic2VydmVyKCkpCisgICAgICAgICAgICBvYnNlcnZl
cigpLT5jb21taXRQcm9wZXJ0eUNoYW5nZSh0aGlzKTsKICAgICB9CiAKICAgICBSZWY8UHJvcGVy
dHlUeXBlPiBhdCh1bnNpZ25lZCBpbmRleCkgY29uc3Qgb3ZlcnJpZGUKQEAgLTg4LDcgKzkyLDcg
QEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgbmV3SXRlbSA9IG5ld0l0ZW0tPmNsb25lKCk7CiAK
ICAgICAgICAgLy8gU3BlYzogQXR0YWNoIG5ld0l0ZW0gdG8gdGhlIGxpc3Qgb2JqZWN0LgotICAg
ICAgICBuZXdJdGVtLT5hdHRhY2godGhpcywgbV9hY2Nlc3MpOworICAgICAgICBuZXdJdGVtLT5h
dHRhY2godGhpcyk7CiAgICAgICAgIG1faXRlbXMuaW5zZXJ0KGluZGV4LCBXVEZNb3ZlKG5ld0l0
ZW0pKTsKICAgICAgICAgcmV0dXJuIGF0KGluZGV4KTsKICAgICB9CkBAIC0xMDksNyArMTEzLDcg
QEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgaXRlbSA9IFdURk1vdmUobmV3SXRlbSk7CiAKICAg
ICAgICAgLy8gU3BlYzogQXR0YWNoIG5ld0l0ZW0gdG8gdGhlIGxpc3Qgb2JqZWN0LgotICAgICAg
ICBpdGVtLT5hdHRhY2godGhpcywgbV9hY2Nlc3MpOworICAgICAgICBpdGVtLT5hdHRhY2godGhp
cyk7CiAgICAgICAgIHJldHVybiBhdChpbmRleCk7CiAgICAgfQogCkBAIC0xMzIsNyArMTM2LDcg
QEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgbmV3SXRlbSA9IG5ld0l0ZW0tPmNsb25lKCk7CiAK
ICAgICAgICAgLy8gU3BlYzogQXR0YWNoIG5ld0l0ZW0gdG8gdGhlIGxpc3Qgb2JqZWN0LgotICAg
ICAgICBuZXdJdGVtLT5hdHRhY2godGhpcywgbV9hY2Nlc3MpOworICAgICAgICBuZXdJdGVtLT5h
dHRhY2godGhpcyk7CiAgICAgICAgIG1faXRlbXMuYXBwZW5kKFdURk1vdmUobmV3SXRlbSkpOwog
ICAgICAgICByZXR1cm4gYXQoc2l6ZSgpIC0gMSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lci5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjOTgxOGJlOWY4NDBjNzY0NTM5OGU2MWI0ODkzODE4NjJhMzQ2OGYzLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDU3
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jcHJhZ21hIG9uY2UKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAotY2xhc3MgU1ZH
RWxlbWVudDsKLWNsYXNzIFNWR1Byb3BlcnR5OwotCi1jbGFzcyBTVkdQcm9wZXJ0eU93bmVyIHsK
LXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5TVkdQcm9wZXJ0eU93bmVyKCkgPSBkZWZhdWx0OwotCi0g
ICAgdmlydHVhbCBTVkdQcm9wZXJ0eU93bmVyKiBvd25lcigpIGNvbnN0IHsgcmV0dXJuIG51bGxw
dHI7IH0KLSAgICAKLSAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGF0dHJpYnV0ZUNvbnRl
eHRFbGVtZW50KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmICghb3duZXIoKSkKLSAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwotICAgICAgICByZXR1cm4gb3duZXIoKS0+YXR0cmlidXRlQ29u
dGV4dEVsZW1lbnQoKTsKLSAgICB9Ci0gICAgCi0gICAgdmlydHVhbCB2b2lkIGNvbW1pdFByb3Bl
cnR5Q2hhbmdlKFNWR1Byb3BlcnR5KiBwcm9wZXJ0eSkKLSAgICB7Ci0gICAgICAgIGlmICghb3du
ZXIoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgb3duZXIoKS0+Y29tbWl0UHJvcGVy
dHlDaGFuZ2UocHJvcGVydHkpOwotICAgIH0KLSAgICAKLXByb3RlY3RlZDoKLSAgICBTVkdQcm9w
ZXJ0eU93bmVyKCkgPSBkZWZhdWx0OwotfTsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkuaAppbmRleCBhNWY3
MTM2OTdlYTJjNGM2MDBiYTUzN2RhMjk0MWY1ZGE5OWU5NzhiLi4zMTlhNTA4MmE1OWQ5ZGU1YjYx
ZGZmMjFiNWViMzY4ZmQyODdhYzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkuaApAQCAtMTc4LDcgKzE3OCw3
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIFF1YWxpZmll
ZE5hbWUgcHJvcGVydHlBdHRyaWJ1dGVOYW1lKGNvbnN0IFNWR1Byb3BlcnR5JiBwcm9wZXJ0eSkg
Y29uc3Qgb3ZlcnJpZGUKKyAgICBRdWFsaWZpZWROYW1lIHByb3BlcnR5QXR0cmlidXRlTmFtZShj
b25zdCBET01MaXZlUHJvcGVydHkmIHByb3BlcnR5KSBjb25zdCBvdmVycmlkZQogICAgIHsKICAg
ICAgICAgUXVhbGlmaWVkTmFtZSBhdHRyaWJ1dGVOYW1lID0gbnVsbFFOYW1lKCk7CiAgICAgICAg
IGVudW1lcmF0ZVJlY3Vyc2l2ZWx5KFsmXShjb25zdCBhdXRvJiBlbnRyeSkgLT4gYm9vbCB7CkBA
IC0yMTEsMzMgKzIxMSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIC8v
IEZpbmRzIHRoZSBwcm9wZXJ0eSB3aG9zZSBuYW1lIGlzIGF0dHJpYnV0ZU5hbWUgYW5kIHJldHVy
bnMgdGhlIHN5bmNocm9uaXplCi0gICAgLy8gc3RyaW5nIHRocm91Z2ggdGhlIGFzc29jaWF0ZWQg
U1ZHTWVtYmVyQWNjZXNzb3IuCi0gICAgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSBjb25zdCBvdmVycmlkZQorICAgIC8vIEZp
bmRzIHRoZSBwcm9wZXJ0eSB3aG9zZSBuYW1lIGlzIGF0dHJpYnV0ZU5hbWUgYW5kIHJldHVybnMg
dGhlIHZhbHVlQXNTdHJpbmcKKyAgICAvLyB0aHJvdWdoIHRoZSBhc3NvY2lhdGVkIFNWR01lbWJl
ckFjY2Vzc29yLgorICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJpYnV0ZU5hbWUpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAgICAgICBPcHRpb25hbDxT
dHJpbmc+IHZhbHVlOworICAgICAgICBTdHJpbmcgdmFsdWU7CiAgICAgICAgIGVudW1lcmF0ZVJl
Y3Vyc2l2ZWx5KFsmXShjb25zdCBhdXRvJiBlbnRyeSkgLT4gYm9vbCB7CiAgICAgICAgICAgICBp
ZiAoIWVudHJ5LmtleS5tYXRjaGVzKGF0dHJpYnV0ZU5hbWUpKQogICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICAgICAgdmFsdWUgPSBlbnRyeS52YWx1ZS0+c3luY2hyb25pemUo
bV9vd25lcik7CisgICAgICAgICAgICB2YWx1ZSA9IGVudHJ5LnZhbHVlLT52YWx1ZUFzU3RyaW5n
KG1fb3duZXIpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9KTsKICAgICAg
ICAgcmV0dXJuIHZhbHVlOwogICAgIH0KIAotICAgIC8vIEVudW1lcmF0ZSByZWN1cnNpdmVseSB0
aGUgU1ZHTWVtYmVyQWNjZXNzb3JzIG9mIHRoZSBPd25lclR5cGUgYW5kIGFsbCBpdHMgQmFzZVR5
cGVzLgotICAgIC8vIENvbGxlY3QgYWxsIHRoZSBwYWlycyA8QXR0cmlidXRlTmFtZSwgU3RyaW5n
PiBvbmx5IGZvciB0aGUgZGlydHkgcHJvcGVydGllcy4KLSAgICBIYXNoTWFwPFF1YWxpZmllZE5h
bWUsIFN0cmluZz4gc3luY2hyb25pemVBbGxBdHRyaWJ1dGVzKCkgY29uc3Qgb3ZlcnJpZGUKLSAg
ICB7Ci0gICAgICAgIEhhc2hNYXA8UXVhbGlmaWVkTmFtZSwgU3RyaW5nPiBtYXA7Ci0gICAgICAg
IGVudW1lcmF0ZVJlY3Vyc2l2ZWx5KFsmXShjb25zdCBhdXRvJiBlbnRyeSkgLT4gYm9vbCB7Ci0g
ICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBlbnRyeS52YWx1ZS0+c3luY2hyb25pemUobV9v
d25lcikpCi0gICAgICAgICAgICAgICAgbWFwLmFkZChlbnRyeS5rZXksICpzdHJpbmcpOwotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0pOwotICAgICAgICByZXR1cm4gbWFwOwot
ICAgIH0KLQogICAgIGJvb2wgaXNBbmltYXRlZFByb3BlcnR5QXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBi
b29sIGlzQW5pbWF0ZWRQcm9wZXJ0eUF0dHJpYnV0ZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlSZWdpc3RyeS5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlSZWdpc3RyeS5oCmluZGV4IDI0ZmU2
NDIzN2UyZjVlNWUxYWZlODU1MTBmMTM2NjI2MmRmNDM0MDQuLmRlMjhlYjlmZTE0YTc4N2E2YzU1
MWU0ZGQwZjU4NTAzODdlMjlhOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR1Byb3BlcnR5UmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdQcm9wZXJ0eVJlZ2lzdHJ5LmgKQEAgLTM3LDEwICszNyw5IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5TVkdQcm9wZXJ0eVJlZ2lzdHJ5KCkgPSBkZWZhdWx0OwogCiAgICAgdmly
dHVhbCB2b2lkIGRldGFjaEFsbFByb3BlcnRpZXMoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBR
dWFsaWZpZWROYW1lIHByb3BlcnR5QXR0cmlidXRlTmFtZShjb25zdCBTVkdQcm9wZXJ0eSYpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIFF1YWxpZmllZE5hbWUgcHJvcGVydHlBdHRyaWJ1dGVOYW1l
KGNvbnN0IERPTUxpdmVQcm9wZXJ0eSYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFF1YWxpZmll
ZE5hbWUgYW5pbWF0ZWRQcm9wZXJ0eUF0dHJpYnV0ZU5hbWUoY29uc3QgU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eSYpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIE9wdGlvbmFsPFN0cmluZz4gc3luY2hyb25p
emUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIEhhc2hNYXA8
UXVhbGlmaWVkTmFtZSwgU3RyaW5nPiBzeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMoKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCBTdHJpbmcgdmFsdWVBc1N0cmluZyhjb25zdCBRdWFsaWZpZWROYW1l
JikgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGlzQW5pbWF0ZWRQcm9wZXJ0eUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBp
c0FuaW1hdGVkU3R5bGVQcm9wZXJ0eUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29u
c3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFs
dWVQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9w
ZXJ0eS5oCmluZGV4IDlmMzFlMmQwZjUzOWNjMjAyM2I2M2Y4NzA2ODZmMGVkODFkYzI5Y2UuLjg1
MmYyNzRkN2JiMzFlNzVhMjI1MDkxMTNjMjcyNjlhMWQ3OTk0ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5LmgKQEAgLTY0LDE0ICs2NCwx
NCBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogCiAgICAgLy8gQmFzZSBhbmQgZGVmYXVsdCBjb25zdHJ1
Y3Rvci4gRG8gbm90IHVzZSAidXNpbmcgU1ZHUHJvcGVydHk6OlNWR1Byb3BlcnR5IiBiZWNhdXNl
IG9mIFdpbmRvd3MgYW5kIEdUSyBwb3J0cy4KLSAgICBTVkdWYWx1ZVByb3BlcnR5KFNWR1Byb3Bl
cnR5T3duZXIqIG93bmVyID0gbnVsbHB0ciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzID0gU1ZH
UHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eShvd25lciwg
YWNjZXNzKQorICAgIFNWR1ZhbHVlUHJvcGVydHkoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9i
c2VydmVyID0gbnVsbHB0cikKKyAgICAgICAgOiBTVkdQcm9wZXJ0eShvYnNlcnZlcikKICAgICB7
CiAgICAgfQogCiAgICAgLy8gQ3JlYXRlIGFuIGluaXRpYWxpemVkIGFuZCBhdHRhY2hlZCBwcm9w
ZXJ0eS4KLSAgICBTVkdWYWx1ZVByb3BlcnR5KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQ
cm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUpCi0gICAgICAg
IDogU1ZHUHJvcGVydHkob3duZXIsIGFjY2VzcykKKyAgICBTVkdWYWx1ZVByb3BlcnR5KERPTUxp
dmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlciwgY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSkK
KyAgICAgICAgOiBTVkdQcm9wZXJ0eShvYnNlcnZlcikKICAgICAgICAgLCBtX3ZhbHVlKHZhbHVl
KQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdWYWx1ZVByb3BlcnR5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHVmFsdWVQcm9wZXJ0eUxpc3QuaAppbmRleCAzMDEwYzMzYTc0MDg5YmM0NGZiYjQxMGE1NmY3
ODVhOWY3MTdjY2VlLi5jNWI3M2EwZWE0Yjk2ZmIxYzRiMDQ0M2VkOTExNWEwOTQ0ZWI1MmUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5
TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVy
dHlMaXN0LmgKQEAgLTc1LDE0ICs3NSwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgdXNpbmcgQmFzZTo6
cmVtb3ZlOwogCiAgICAgLy8gQmFzZSBhbmQgZGVmYXVsdCBjb25zdHJ1Y3Rvci4gRG8gbm90IHVz
ZSAidXNpbmcgQmFzZTo6QmFzZSIgYmVjYXVzZSBvZiBXaW5kb3dzIGFuZCBHVEsgcG9ydHMuCi0g
ICAgU1ZHVmFsdWVQcm9wZXJ0eUxpc3QoU1ZHUHJvcGVydHlPd25lciogb3duZXIgPSBudWxscHRy
LCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MgPSBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRl
KQotICAgICAgICA6IEJhc2Uob3duZXIsIGFjY2VzcykKKyAgICBTVkdWYWx1ZVByb3BlcnR5TGlz
dChET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIgPSBudWxscHRyKQorICAgICAgICA6
IEJhc2Uob2JzZXJ2ZXIpCiAgICAgewogICAgIH0KIAogICAgIC8vIFVzZWQgYnkgU1ZHQW5pbWF0
ZWRQcm9wZXJ0eUxpc3Qgd2hlbiBjcmVhdGluZyBpdCBhbmltVmFsIGZyb20gYmFzZVZhbC4KLSAg
ICBTVkdWYWx1ZVByb3BlcnR5TGlzdChjb25zdCBTVkdWYWx1ZVByb3BlcnR5TGlzdCYgb3RoZXIs
IFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUp
Ci0gICAgICAgIDogQmFzZShvdGhlci5vd25lcigpLCBhY2Nlc3MpCisgICAgU1ZHVmFsdWVQcm9w
ZXJ0eUxpc3QoY29uc3QgU1ZHVmFsdWVQcm9wZXJ0eUxpc3QmIG90aGVyKQorICAgICAgICA6IEJh
c2Uob3RoZXIub2JzZXJ2ZXIoKSkKICAgICB7CiAgICAgICAgIC8vIENsb25lIGFsbCBpdGVtcy4K
ICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBpdGVtIDogb3RoZXIuaXRlbXMoKSkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBi
ZDA5OTgwMGE4NWYzYzNjMDBjZTA1M2U5NGYxM2U2ZmY2YTI3ODA0Li44MmM5MWNiOGRjZmM4MzM2
YmMyZDIzOGNhMmQyOTNkN2Q4MTYxNmVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMTAt
MDEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAg
ICBNYWtlIHRoZSBTVkcgcHJvcGVydGllcyBvZiBTVkdWaWV3U3BlYyBtb2RpZmlhYmxlIGJ1dCBk
ZXRhY2hlZCBwcm9wZXJ0aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDI0MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNYWtlIHN1cmUgYWxsIHRoZSBwcm9wZXJ0aWVzIG9mIFNWR1ZpZXdTcGVjIGFy
ZSBtb2RpZmlhYmxlLgorCisgICAgICAgICogc3ZnL2RvbS9TVkdWaWV3U3BlYy1kZWZhdWx0cy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogc3ZnL2RvbS9TVkdWaWV3U3BlYy1kZWZhdWx0cy5odG1s
OgorCiAyMDE5LTEwLTAxICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4K
IAogICAgICAgICBTdXBwb3J0IGFjY2Vzc2liaWxpdHkgZm9yIDxmaWd1cmU+IGVsZW1lbnQgb24g
aU9TLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdWaWV3U3BlYy1kZWZhdWx0
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1ZpZXdTcGVjLWRlZmF1bHRz
LWV4cGVjdGVkLnR4dAppbmRleCA5YzAxODE3NTgxNWI3NDRmZDJiNjUwZDczNzJjNDdmODVhYTE0
YWYxLi4xNDUyYWI3YzQ1YTRmMzVhMzk1OTdmMDMzZTBkMzk5MjUwYmJhMmM4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1ZpZXdTcGVjLWRlZmF1bHRzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1ZpZXdTcGVjLWRlZmF1bHRzLWV4cGVjdGVkLnR4
dApAQCAtMjAsNTAgKzIwLDUzIEBAIFBBU1MgY3VycmVudFZpZXcudHJhbnNmb3JtU3RyaW5nIGlz
ICIiCiBQQVNTIGN1cnJlbnRWaWV3LnZpZXdUYXJnZXRTdHJpbmcgaXMgIiIKIFBBU1MgY3VycmVu
dFZpZXcuem9vbUFuZFBhbiBpcyBTVkdWaWV3RWxlbWVudC5TVkdfWk9PTUFORFBBTl9NQUdOSUZZ
CiAKLVRyeSBjaGFuZ2luZyB6b29tQW5kUGFuIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGFz
IFNWR1ZpZXdTcGVjIGlzIGZ1bGx5IHJlYWRvbmx5IC0gZXZlbiB0aGUgYW5pbWF0ZWQgcHJvcGVy
dGllcyBpdCBpbmhlcml0cyBmcm9tIHBhcmVudCBjbGFzc2VzIGxpa2UgU1ZHWm9vbUFuZFBhbi9T
VkdGaXRUb1ZpZXdCb3gKK1RyeSBjaGFuZ2luZyB6b29tQW5kUGFuIC0gbm9uZSBvZiB0aGVzZSB3
aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5CiBQQVNTIGN1cnJlbnRWaWV3Lnpv
b21BbmRQYW4gPSBTVkdWaWV3RWxlbWVudC5TVkdfWk9PTUFORFBBTl9ESVNBQkxFIHRocmV3IGV4
Y2VwdGlvbiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogVGhlIG9iamVjdCBjYW4gbm90IGJl
IG1vZGlmaWVkLi4KIFBBU1MgY3VycmVudFZpZXcuem9vbUFuZFBhbiBpcyBTVkdWaWV3RWxlbWVu
dC5TVkdfWk9PTUFORFBBTl9NQUdOSUZZCiAKLVRyeSBjaGFuZ2luZyB2aWV3Qm94IC0gdGhpcyBo
YXMgbm8gYWZmZWN0IG9uIHRoZSBTVkdTVkdFbGVtZW50IHRoZSB2aWV3U3BlYyBiZWxvbmdzIHRv
IC0gaXQgZXhwb3NlZCBhbGwgaXRzIHByb3BlcnRpZXMgYXMgcmVhZC1vbmx5Ci1QQVNTIGN1cnJl
bnRWaWV3LnZpZXdCb3guYmFzZVZhbC54ID0gMTAgdGhyZXcgZXhjZXB0aW9uIE5vTW9kaWZpY2F0
aW9uQWxsb3dlZEVycm9yOiBUaGUgb2JqZWN0IGNhbiBub3QgYmUgbW9kaWZpZWQuLgotUEFTUyBj
dXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueCBpcyAwCi1QQVNTIGN1cnJlbnRWaWV3LnZpZXdC
b3guYmFzZVZhbC55ID0gMjAgdGhyZXcgZXhjZXB0aW9uIE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVy
cm9yOiBUaGUgb2JqZWN0IGNhbiBub3QgYmUgbW9kaWZpZWQuLgotUEFTUyBjdXJyZW50Vmlldy52
aWV3Qm94LmJhc2VWYWwueSBpcyAwCi1QQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC53
aWR0aCA9IDUwIHRocmV3IGV4Y2VwdGlvbiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogVGhl
IG9iamVjdCBjYW4gbm90IGJlIG1vZGlmaWVkLi4KLVBBU1MgY3VycmVudFZpZXcudmlld0JveC5i
YXNlVmFsLndpZHRoIGlzIDAKLVBBU1MgY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLmhlaWdo
dCA9IDEwMCB0aHJldyBleGNlcHRpb24gTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IFRoZSBv
YmplY3QgY2FuIG5vdCBiZSBtb2RpZmllZC4uCi1QQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFz
ZVZhbC5oZWlnaHQgaXMgMAotUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94U3RyaW5nIGlzICIwIDAg
MCAwIgorQ2hhbmdpbmcgdmlld0JveCAtIHRoaXMgaGFzIG5vIGFmZmVjdCBvbiB0aGUgU1ZHU1ZH
RWxlbWVudCB0aGUgdmlld1NwZWMgYmVsb25ncyB0byAtIGl0IGlzIGEgZGV0YWNoZWQgcHJvcGVy
dHkKK1BBU1MgY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLnggPSAxMCBpcyAxMAorUEFTUyBj
dXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueCBpcyAxMAorUEFTUyBjdXJyZW50Vmlldy52aWV3
Qm94LmJhc2VWYWwueSA9IDIwIGlzIDIwCitQQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZh
bC55IGlzIDIwCitQQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC53aWR0aCA9IDUwIGlz
IDUwCitQQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC53aWR0aCBpcyA1MAorUEFTUyBj
dXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0ID0gMTAwIGlzIDEwMAorUEFTUyBjdXJy
ZW50Vmlldy52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0IGlzIDEwMAorUEFTUyBjdXJyZW50Vmlldy52
aWV3Qm94U3RyaW5nIGlzICIxMCAyMCA1MCAxMDAiCiAKLVRyeSBjaGFuZ2luZyB2aWV3Qm94U3Ry
aW5nCitUcnkgY2hhbmdpbmcgdmlld0JveFN0cmluZyAtIG5vbmUgb2YgdGhlc2Ugd2lsbCB3b3Jr
LCBpdCBpcyBhIHByaW1pdGl2ZSBwcm9wZXJ0eQogUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94U3Ry
aW5nID0gJzEgMiAzIDQnIGlzICIxIDIgMyA0IgotUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94U3Ry
aW5nIGlzICIwIDAgMCAwIgorUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94U3RyaW5nIGlzICIxMCAy
MCA1MCAxMDAiCiAKLVRyeSBjaGFuZ2luZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvCi1QQVNTIGN1cnJl
bnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFzZVZhbC5hbGlnbiA9IFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8uU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSU4gdGhyZXcgZXhjZXB0aW9u
IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yOiBUaGUgb2JqZWN0IGNhbiBub3QgYmUgbW9kaWZp
ZWQuLgotUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwuYWxpZ24g
aXMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlEWU1J
RAotUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwubWVldE9yU2xp
Y2UgPSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19NRUVUT1JTTElDRV9TTElDRSB0aHJldyBl
eGNlcHRpb24gTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5vdCBi
ZSBtb2RpZmllZC4uCi1QQVNTIGN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFzZVZh
bC5tZWV0T3JTbGljZSBpcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19NRUVUT1JTTElDRV9N
RUVUCitDaGFuZ2luZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvIC0gdGhpcyBoYXMgbm8gYWZmZWN0IG9u
IHRoZSBTVkdTVkdFbGVtZW50IHRoZSB2aWV3U3BlYyBiZWxvbmdzIHRvIC0gaXQgaXMgYSBkZXRh
Y2hlZCBwcm9wZXJ0eQorUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VW
YWwuYWxpZ24gPSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19QUkVTRVJWRUFTUEVDVFJBVElP
X1hNSU5ZTUlOIGlzIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX1BSRVNFUlZFQVNQRUNUUkFU
SU9fWE1JTllNSU4KK1BBU1MgY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFs
LmFsaWduIGlzIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9f
WE1JTllNSU4KK1BBU1MgY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLm1l
ZXRPclNsaWNlID0gU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJQ0VfU0xJQ0Ug
aXMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJQ0VfU0xJQ0UKK1BBU1MgY3Vy
cmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLm1lZXRPclNsaWNlIGlzIFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX01FRVRPUlNMSUNFX1NMSUNFCiAKLVRyeSBjaGFuZ2luZyBw
cmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nCi1QQVNTIGN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0
UmF0aW9TdHJpbmcgPSAneE1pbllNaW4gc2xpY2UnIGlzICJ4TWluWU1pbiBzbGljZSIKLVBBU1Mg
Y3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZyBpcyAieE1pZFlNaWQgbWVldCIK
LQotVHJ5IGNoYW5naW5nIHRyYW5zZm9ybVN0cmluZwotUEFTUyBjdXJyZW50Vmlldy50cmFuc2Zv
cm1TdHJpbmcgPSAncm90YXRlKDkwKScgaXMgInJvdGF0ZSg5MCkiCi1QQVNTIGN1cnJlbnRWaWV3
LnRyYW5zZm9ybVN0cmluZyBpcyAiIgorQ2hhbmdpbmcgcHJlc2VydmVBc3BlY3RSYXRpb1N0cmlu
ZyAtIG5vbmUgb2YgdGhlc2Ugd2lsbCB3b3JrLCBpdCBpcyBhIHByaW1pdGl2ZSBwcm9wZXJ0eQor
UEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nID0gJ3hNaWRZTWlkIG1l
ZXQnIGlzICJ4TWlkWU1pZCBtZWV0IgorUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJh
dGlvU3RyaW5nIGlzICJ4TWluWU1pbiBzbGljZSIKIAotVHJ5IGNoYW5naW5nIHZpZXdUYXJnZXQK
K1RyeSBjaGFuZ2luZyB2aWV3VGFyZ2V0IC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlz
IGEgcHJpbWl0aXZlIHByb3BlcnR5CiBQQVNTIGN1cnJlbnRWaWV3LnZpZXdUYXJnZXQgPSBzdmdF
bGVtZW50IGlzIHN2Z0VsZW1lbnQKIFBBU1MgY3VycmVudFZpZXcudmlld1RhcmdldCBpcyBudWxs
CiAKLVRyeSBjaGFuZ2luZyB2aWV3VGFyZ2V0U3RyaW5nCitUcnkgY2hhbmdpbmcgdmlld1Rhcmdl
dFN0cmluZyAtIG5vbmUgb2YgdGhlc2Ugd2lsbCB3b3JrLCBpdCBpcyBhIHByaW1pdGl2ZSBwcm9w
ZXJ0eQogUEFTUyBjdXJyZW50Vmlldy52aWV3VGFyZ2V0U3RyaW5nID0gJyN0ZXN0JyBpcyAiI3Rl
c3QiCiBQQVNTIGN1cnJlbnRWaWV3LnZpZXdUYXJnZXRTdHJpbmcgaXMgIiIKIAotVHJ5IGNoYW5n
aW5nIHRyYW5zZm9ybQotUEFTUyBjdXJyZW50Vmlldy50cmFuc2Zvcm0uY2xlYXIoKSB0aHJldyBl
eGNlcHRpb24gTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5vdCBi
ZSBtb2RpZmllZC4uCitDaGFuZ2luZyB0cmFuc2Zvcm0gLSB0aGlzIGhhcyBubyBhZmZlY3Qgb24g
dGhlIFNWR1NWR0VsZW1lbnQgdGhlIHZpZXdTcGVjIGJlbG9uZ3MgdG8gLSBpdCBpcyBhIGRldGFj
aGVkIHByb3BlcnR5CitQQVNTIGN1cnJlbnRWaWV3LnRyYW5zZm9ybS5hcHBlbmRJdGVtKHRyYW5z
Zm9ybSkudG9TdHJpbmcoKSBpcyAiW29iamVjdCBTVkdUcmFuc2Zvcm1dIgorUEFTUyBjdXJyZW50
Vmlldy50cmFuc2Zvcm0ubnVtYmVyT2ZJdGVtcyBpcyAxCitQQVNTIGN1cnJlbnRWaWV3LnRyYW5z
Zm9ybVN0cmluZyBpcyAibWF0cml4KDEgMCAwIDEgMCAwKSIKK1BBU1MgdW5kZWZpbmVkIGlzIHVu
ZGVmaW5lZC4KIFBBU1MgY3VycmVudFZpZXcudHJhbnNmb3JtLm51bWJlck9mSXRlbXMgaXMgMAor
CitUcnkgY2hhbmdpbmcgdHJhbnNmb3JtU3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmss
IGl0IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5CitQQVNTIGN1cnJlbnRWaWV3LnRyYW5zZm9ybVN0
cmluZyA9ICdyb3RhdGUoOTApJyBpcyAicm90YXRlKDkwKSIKK1BBU1MgY3VycmVudFZpZXcudHJh
bnNmb3JtU3RyaW5nIGlzICIiCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRF
U1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHVmlld1NwZWMt
ZGVmYXVsdHMuaHRtbCBiL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHVmlld1NwZWMtZGVmYXVsdHMu
aHRtbAppbmRleCBhMDI0MjY3MWQyY2FjY2IwYmVjNTI0OWIwZTVjYzkzZTQ2Mjc2MWViLi4xMDYw
YmRjMmNiZGRhNzgyNDNhOGFmOGMwNjU0MjVjNjZmNzIzMWZiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdmcvZG9tL1NWR1ZpZXdTcGVjLWRlZmF1bHRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
c3ZnL2RvbS9TVkdWaWV3U3BlYy1kZWZhdWx0cy5odG1sCkBAIC0zNCw2MiArMzQsNjQgQEAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJyZW50Vmlldy52aWV3VGFyZ2V0U3RyaW5nIiwgIiIpOwog
c2hvdWxkQmUoImN1cnJlbnRWaWV3Lnpvb21BbmRQYW4iLCAiU1ZHVmlld0VsZW1lbnQuU1ZHX1pP
T01BTkRQQU5fTUFHTklGWSIpOwogCiBkZWJ1ZygiIik7Ci1kZWJ1ZygiVHJ5IGNoYW5naW5nIHpv
b21BbmRQYW4gLSBub25lIG9mIHRoZXNlIHdpbGwgd29yaywgYXMgU1ZHVmlld1NwZWMgaXMgZnVs
bHkgcmVhZG9ubHkgLSBldmVuIHRoZSBhbmltYXRlZCBwcm9wZXJ0aWVzIGl0IGluaGVyaXRzIGZy
b20gcGFyZW50IGNsYXNzZXMgbGlrZSBTVkdab29tQW5kUGFuL1NWR0ZpdFRvVmlld0JveCIpOwor
ZGVidWcoIlRyeSBjaGFuZ2luZyB6b29tQW5kUGFuIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmss
IGl0IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5Iik7CiBzaG91bGRUaHJvdygiY3VycmVudFZpZXcu
em9vbUFuZFBhbiA9IFNWR1ZpZXdFbGVtZW50LlNWR19aT09NQU5EUEFOX0RJU0FCTEUiKTsKIHNo
b3VsZEJlKCJjdXJyZW50Vmlldy56b29tQW5kUGFuIiwgIlNWR1ZpZXdFbGVtZW50LlNWR19aT09N
QU5EUEFOX01BR05JRlkiKTsKIAogZGVidWcoIiIpOwotZGVidWcoIlRyeSBjaGFuZ2luZyB2aWV3
Qm94IC0gdGhpcyBoYXMgbm8gYWZmZWN0IG9uIHRoZSBTVkdTVkdFbGVtZW50IHRoZSB2aWV3U3Bl
YyBiZWxvbmdzIHRvIC0gaXQgZXhwb3NlZCBhbGwgaXRzIHByb3BlcnRpZXMgYXMgcmVhZC1vbmx5
Iik7Ci1zaG91bGRUaHJvdygiY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLnggPSAxMCIpOwot
c2hvdWxkQmUoImN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC54IiwgIjAiKTsKLXNob3VsZFRo
cm93KCJjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueSA9IDIwIik7Ci1zaG91bGRCZSgiY3Vy
cmVudFZpZXcudmlld0JveC5iYXNlVmFsLnkiLCAiMCIpOwotc2hvdWxkVGhyb3coImN1cnJlbnRW
aWV3LnZpZXdCb3guYmFzZVZhbC53aWR0aCA9IDUwIik7Ci1zaG91bGRCZSgiY3VycmVudFZpZXcu
dmlld0JveC5iYXNlVmFsLndpZHRoIiwgIjAiKTsKLXNob3VsZFRocm93KCJjdXJyZW50Vmlldy52
aWV3Qm94LmJhc2VWYWwuaGVpZ2h0ID0gMTAwIik7Ci1zaG91bGRCZSgiY3VycmVudFZpZXcudmll
d0JveC5iYXNlVmFsLmhlaWdodCIsICIwIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJl
bnRWaWV3LnZpZXdCb3hTdHJpbmciLCAiMCAwIDAgMCIpOworZGVidWcoIkNoYW5naW5nIHZpZXdC
b3ggLSB0aGlzIGhhcyBubyBhZmZlY3Qgb24gdGhlIFNWR1NWR0VsZW1lbnQgdGhlIHZpZXdTcGVj
IGJlbG9uZ3MgdG8gLSBpdCBpcyBhIGRldGFjaGVkIHByb3BlcnR5Iik7CitzaG91bGRCZSgiY3Vy
cmVudFZpZXcudmlld0JveC5iYXNlVmFsLnggPSAxMCIsICIxMCIpOworc2hvdWxkQmUoImN1cnJl
bnRWaWV3LnZpZXdCb3guYmFzZVZhbC54IiwgIjEwIik7CitzaG91bGRCZSgiY3VycmVudFZpZXcu
dmlld0JveC5iYXNlVmFsLnkgPSAyMCIsICIyMCIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnZp
ZXdCb3guYmFzZVZhbC55IiwgIjIwIik7CitzaG91bGRCZSgiY3VycmVudFZpZXcudmlld0JveC5i
YXNlVmFsLndpZHRoID0gNTAiLCAiNTAiKTsKK3Nob3VsZEJlKCJjdXJyZW50Vmlldy52aWV3Qm94
LmJhc2VWYWwud2lkdGgiLCAiNTAiKTsKK3Nob3VsZEJlKCJjdXJyZW50Vmlldy52aWV3Qm94LmJh
c2VWYWwuaGVpZ2h0ID0gMTAwIiwgIjEwMCIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnZpZXdC
b3guYmFzZVZhbC5oZWlnaHQiLCAiMTAwIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJl
bnRWaWV3LnZpZXdCb3hTdHJpbmciLCAiMTAgMjAgNTAgMTAwIik7CiAKIGRlYnVnKCIiKTsKLWRl
YnVnKCJUcnkgY2hhbmdpbmcgdmlld0JveFN0cmluZyIpOworZGVidWcoIlRyeSBjaGFuZ2luZyB2
aWV3Qm94U3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0aXZl
IHByb3BlcnR5Iik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnZpZXdCb3hT
dHJpbmcgPSAnMSAyIDMgNCciLCAiMSAyIDMgNCIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJj
dXJyZW50Vmlldy52aWV3Qm94U3RyaW5nIiwgIjAgMCAwIDAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygiY3VycmVudFZpZXcudmlld0JveFN0cmluZyIsICIxMCAyMCA1MCAxMDAiKTsKIAogZGVi
dWcoIiIpOwotZGVidWcoIlRyeSBjaGFuZ2luZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvIik7Ci1zaG91
bGRUaHJvdygiY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLmFsaWduID0g
U1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JTiIp
Owotc2hvdWxkQmUoImN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFzZVZhbC5hbGln
biIsICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZ
TUlEIik7Ci1zaG91bGRUaHJvdygiY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNl
VmFsLm1lZXRPclNsaWNlID0gU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJQ0Vf
U0xJQ0UiKTsKLXNob3VsZEJlKCJjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VW
YWwubWVldE9yU2xpY2UiLCAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJQ0Vf
TUVFVCIpOworZGVidWcoIkNoYW5naW5nIHByZXNlcnZlQXNwZWN0UmF0aW8gLSB0aGlzIGhhcyBu
byBhZmZlY3Qgb24gdGhlIFNWR1NWR0VsZW1lbnQgdGhlIHZpZXdTcGVjIGJlbG9uZ3MgdG8gLSBp
dCBpcyBhIGRldGFjaGVkIHByb3BlcnR5Iik7CitzaG91bGRCZSgiY3VycmVudFZpZXcucHJlc2Vy
dmVBc3BlY3RSYXRpby5iYXNlVmFsLmFsaWduID0gU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdf
UFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JTiIsICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNW
R19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlOIik7CitzaG91bGRCZSgiY3VycmVudFZpZXcu
cHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLmFsaWduIiwgIlNWR1ByZXNlcnZlQXNwZWN0UmF0
aW8uU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSU4iKTsKK3Nob3VsZEJlKCJjdXJyZW50
Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwubWVldE9yU2xpY2UgPSBTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvLlNWR19NRUVUT1JTTElDRV9TTElDRSIsICJTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvLlNWR19NRUVUT1JTTElDRV9TTElDRSIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnByZXNl
cnZlQXNwZWN0UmF0aW8uYmFzZVZhbC5tZWV0T3JTbGljZSIsICJTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvLlNWR19NRUVUT1JTTElDRV9TTElDRSIpOwogCiBkZWJ1ZygiIik7Ci1kZWJ1ZygiVHJ5IGNo
YW5naW5nIHByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmciKTsKLXNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZyA9ICd4TWluWU1pbiBzbGlj
ZSciLCAieE1pbllNaW4gc2xpY2UiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZp
ZXcucHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZyIsICJ4TWlkWU1pZCBtZWV0Iik7Ci0KK2RlYnVn
KCJDaGFuZ2luZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3aWxs
IHdvcmssIGl0IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5Iik7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcgPSAneE1pZFlNaWQgbWVl
dCciLCAieE1pZFlNaWQgbWVldCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJyZW50Vmll
dy5wcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nIiwgInhNaW5ZTWluIHNsaWNlIik7CiAKIGRlYnVn
KCIiKTsKLWRlYnVnKCJUcnkgY2hhbmdpbmcgdHJhbnNmb3JtU3RyaW5nIik7Ci1zaG91bGRCZUVx
dWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnRyYW5zZm9ybVN0cmluZyA9ICdyb3RhdGUoOTApJyIs
ICJyb3RhdGUoOTApIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnRyYW5z
Zm9ybVN0cmluZyIsICIiKTsKLQotCi1kZWJ1ZygiIik7Ci1kZWJ1ZygiVHJ5IGNoYW5naW5nIHZp
ZXdUYXJnZXQiKTsKK2RlYnVnKCJUcnkgY2hhbmdpbmcgdmlld1RhcmdldCAtIG5vbmUgb2YgdGhl
c2Ugd2lsbCB3b3JrLCBpdCBpcyBhIHByaW1pdGl2ZSBwcm9wZXJ0eSIpOwogc2hvdWxkQmUoImN1
cnJlbnRWaWV3LnZpZXdUYXJnZXQgPSBzdmdFbGVtZW50IiwgInN2Z0VsZW1lbnQiKTsKIHNob3Vs
ZEJlTnVsbCgiY3VycmVudFZpZXcudmlld1RhcmdldCIpOwogCiAKIGRlYnVnKCIiKTsKLWRlYnVn
KCJUcnkgY2hhbmdpbmcgdmlld1RhcmdldFN0cmluZyIpOworZGVidWcoIlRyeSBjaGFuZ2luZyB2
aWV3VGFyZ2V0U3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0
aXZlIHByb3BlcnR5Iik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnZpZXdU
YXJnZXRTdHJpbmcgPSAnI3Rlc3QnIiwgIiN0ZXN0Iik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImN1cnJlbnRWaWV3LnZpZXdUYXJnZXRTdHJpbmciLCAiIik7CiAKIGRlYnVnKCIiKTsKLWRlYnVn
KCJUcnkgY2hhbmdpbmcgdHJhbnNmb3JtIik7Ci1zaG91bGRUaHJvdygiY3VycmVudFZpZXcudHJh
bnNmb3JtLmNsZWFyKCkiKTsKK2RlYnVnKCJDaGFuZ2luZyB0cmFuc2Zvcm0gLSB0aGlzIGhhcyBu
byBhZmZlY3Qgb24gdGhlIFNWR1NWR0VsZW1lbnQgdGhlIHZpZXdTcGVjIGJlbG9uZ3MgdG8gLSBp
dCBpcyBhIGRldGFjaGVkIHByb3BlcnR5Iik7Cit2YXIgdHJhbnNmb3JtID0gc3ZnRWxlbWVudC5j
cmVhdGVTVkdUcmFuc2Zvcm0oKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZpZXcu
dHJhbnNmb3JtLmFwcGVuZEl0ZW0odHJhbnNmb3JtKS50b1N0cmluZygpIiwgIltvYmplY3QgU1ZH
VHJhbnNmb3JtXSIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnRyYW5zZm9ybS5udW1iZXJPZkl0
ZW1zIiwgIjEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZpZXcudHJhbnNmb3Jt
U3RyaW5nIiwgIm1hdHJpeCgxIDAgMCAxIDAgMCkiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKGN1cnJl
bnRWaWV3LnRyYW5zZm9ybS5jbGVhcigpKTsKIHNob3VsZEJlKCJjdXJyZW50Vmlldy50cmFuc2Zv
cm0ubnVtYmVyT2ZJdGVtcyIsICIwIik7CiAKK2RlYnVnKCIiKTsKK2RlYnVnKCJUcnkgY2hhbmdp
bmcgdHJhbnNmb3JtU3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJp
bWl0aXZlIHByb3BlcnR5Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnRy
YW5zZm9ybVN0cmluZyA9ICdyb3RhdGUoOTApJyIsICJyb3RhdGUoOTApIik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnRyYW5zZm9ybVN0cmluZyIsICIiKTsKKwogc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380127</attachid>
            <date>2019-10-03 10:02:37 -0700</date>
            <delta_ts>2019-10-03 10:38:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202479-20191003100236.patch</filename>
            <type>text/plain</type>
            <size>104667</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDA3ZTkxNDk2NDU3NGI1
MDEyMWIwMWJjOWEzOGUxZDZjZTdlMTUyMi4uZDVmNjdjM2E0MDc5N2U1NTcxZTY4NjE0YWZmN2I1
ZGVjZWYyMzMzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5OCBAQAorMjAxOS0xMC0wMiAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ug
RE9NUG9pbnQgYSBET01MaXZlT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDI0NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTVkdQcm9wZXJ0eSBoYXMgdG8gY29tZSBiYWNrIGJlY2F1c2UgRE9N
UG9pbnQgaW5oZXJpdHMgRE9NUG9pbnRSZWFkT25seQorICAgICAgICB3aGljaCBpcyBSZWZDb3Vu
dGVkLiBTbyBET01MaXZlUHJvcGVydHkgY2FuJ3QgYmUgUmVmQ291bnRlZC4gT3RoZXJ3aXNlCisg
ICAgICAgIERPTVBvaW50IHdpbGwgbWFrZSBhIGRpYW1vbmQgaW5oZXJpdGFuY2UuIFNWR1Byb3Bl
cnR5IHdpbGwgaW5oZXJpdCAKKyAgICAgICAgRE9NTGl2ZVByb3BlcnR5IGFuZCBpdCB3aWxsIGJl
IFJlZkNvdW50ZWQuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NTGl2ZVByb3Bl
cnR5Lmg6CisgICAgICAgICogZG9tL0RPTVBvaW50Lmg6CisgICAgICAgICogZG9tL0RPTVBvaW50
LmlkbDoKKyAgICAgICAgKiBkb20vRE9NUG9pbnRSZWFkT25seS5oOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NUG9pbnRSZWFkT25seTo6eEZvckJpbmRpbmdzIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVBvaW50UmVhZE9ubHk6OnlGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpET01Qb2ludFJlYWRPbmx5Ojp6Rm9yQmluZGluZ3MgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NUG9pbnRSZWFkT25seTo6d0ZvckJpbmRpbmdzIGNvbnN0KToKKyAgICAgICAgKiBk
b20vRE9NUG9pbnRSZWFkT25seS5pZGw6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWcuaDoKKyAg
ICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdMaXN0Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRp
ZXMvU1ZHTWVtYmVyQWNjZXNzb3IuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcmlt
aXRpdmVQcm9wZXJ0eUFuaW1hdG9yLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJv
cGVydHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5Ojppc0F0dGFjaGVkIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5OjphdHRhY2gpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmRldGFjaCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6Y29udGV4dEVsZW1lbnQgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmNvbW1pdENoYW5nZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6YWNjZXNzIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5Ojppc1JlYWRPbmx5IGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5Ojppc0RpcnR5IGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5OjpzZXREaXJ0eSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6c3luY2hyb25pemUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OlNWR1Byb3BlcnR5KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeS5oOgorICAg
ICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1NoYXJlZFByaW1pdGl2ZVByb3BlcnR5Lmg6CisgICAg
ICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eS5oOgorICAgICAgICAqIHN2Zy9w
cm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlBbmltYXRvci5oOgorICAgICAgICAqIHN2Zy9wcm9w
ZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlBbmltYXRvckltcGwuaDoKKyAgICAgICAgKiBzdmcvcHJv
cGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yLmg6CisgICAgICAgICogc3ZnL3By
b3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3RBbmltYXRvckltcGwuaDoKKworMjAxOS0xMC0w
MSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAg
IFJlcGxhY2UgU1ZHUHJvcGVydHkvU1ZHUHJvcGVydHlPd25lciBieSBET01MaXZlUHJvcGVydHkv
RE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMTc4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgaXMgYSBzdGVwIHRvd2FyZHMgcmVwbGFjaW5nIFNWR1BvaW50
IGJ5IERPTVBvaW50LgorCisgICAgICAgIC0tIEFkZCBhIG5ldyBjbGFzcywgbmFtZWQgRE9NTGl2
ZVByb3BlcnR5LiBJdHMgam9iIGlzIHRvIGNvbW11bmljYXRlIHRoZQorICAgICAgICAgICBjaGFu
Z2VzIGluIHRoaXMgb2JqZWN0IHRvIGl0cyBvYnNlcnZlci4gVGhpcyBpcyByZXBsYWNpbmcgU1ZH
UHJvcGVydHkuCisgICAgICAgICAgIERPTVBvaW50IHdpbGwgYmUgbWFkZSBpbiBhIHN1cGVyIG9m
IGl0IGFsc28gaW4gYSBmb2xsb3dpbmcgcGF0Y2guCisKKyAgICAgICAgLS0gQWRkIGEgbmV3IGNs
YXNzLCBuYW1lZCBET01MaXZlUHJvcGVydHlPYnNlcnZlciBhbmQgbWFrZSBpdCB0aGUgYmFzZQor
ICAgICAgICAgICBjbGFzcyBvZiBET01MaXZlUHJvcGVydHkgb2JzZXJ2ZXJzLiBDdXJyZW50bHkg
dGhlIGZvbGxvd2luZyBjbGFzcyBhcmUKKyAgICAgICAgICAgbWFkZSBzdXBlciBjbGFzc2VzIG9m
IERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyOgorICAgICAgICAgICAxLiBTVkdFbGVtZW50OiBUaGlz
IG9ic2VydmVzIHRoZSBjaGFuZ2VzIGluIGFsbCB0aGUgU1ZHIHByb3BlcnRpZXMuCisgICAgICAg
ICAgIDIuIFNWR0FuaW1hdGVkUHJvcGVydHk6IFRoaXMgb2JzZXJ2ZXMgdGhlIGNoYW5nZXMgaW4g
aXRzIGJhc2VWYWwuCisgICAgICAgICAgIDMuIFNWR1Byb3BlcnR5TGlzdDogVGhpcyBvYnNlcnZl
cyB0aGUgY2hhbmdlcyBpbiB0aGUgaXRlbXMuCisgICAgICAgICAgIDQuIFNWR1RyYW5zZm9ybTog
VGhpcyBvYnNlcnZlcyB0aGUgY2hhbmdlcyBpbiB0aGUgdW5kZXJseWluZyBTVkdNYXRyaXguCisK
KyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NTGl2ZVByb3BlcnR5Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5Ojppc0F0dGFjaGVkIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6b2JzZXJ2ZXIgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NTGl2ZVByb3BlcnR5OjpkZXRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3Bl
cnR5OjpzdmdDb250ZXh0RWxlbWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01MaXZl
UHJvcGVydHk6OmlzUmVhZE9ubHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVBy
b3BlcnR5Ojpjb21taXRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5
Ojp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0
eTo6RE9NTGl2ZVByb3BlcnR5KToKKyAgICAgICAgKiBkb20vRE9NTGl2ZVByb3BlcnR5T2JzZXJ2
ZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpET01MaXZlUHJvcGVydHlPYnNlcnZlcjo6
b2JzZXJ2ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5T2JzZXJ2
ZXI6OnByb3BlcnR5U1ZHQ29udGV4dEVsZW1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXI6OmlzUHJvcGVydHlSZWFkT25seSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpET01MaXZlUHJvcGVydHlPYnNlcnZlcjo6Y29tbWl0UHJvcGVydHlDaGFu
Z2UpOgorICAgICAgICAqIHN2Zy9TVkdBbmdsZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5n
bGU6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRWxlbWVudDo6Y29tbWl0UHJvcGVydHlDaGFuZ2UpOgorICAgICAgICAqIHN2Zy9T
VkdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aC5oOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTGVuZ3RoOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjp2YWx1
ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6c2V0VmFsdWVGb3JC
aW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OmNvbnZlcnRUb1NwZWNpZmll
ZFVuaXRzKToKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdC5oOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHTGVuZ3RoTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aExp
c3Q6OlNWR0xlbmd0aExpc3QpOgorICAgICAgICAqIHN2Zy9TVkdNYXRyaXguaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR01hdHJpeDo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXI6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NW
R051bWJlckxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlckxpc3Q6OmNyZWF0ZSk6
CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWcuaDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0xp
c3QuaDoKKyAgICAgICAgKiBzdmcvU1ZHUG9pbnRMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQb2ludExpc3Q6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0
aW8uaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OmNyZWF0ZSk6
CisgICAgICAgICogc3ZnL1NWR1JlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OmNy
ZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR1N0cmluZ0xpc3QuaDoKKyAgICAgICAgKiBzdmcvU1ZH
VHJhbnNmb3JtLmg6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaDoKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6Om9ic2VydmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6Om93bmVyIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAg
ICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TGlzdC5oOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlQYWlyQWNjZXNzb3JJbXBsLmg6Cisg
ICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5Lmg6CisgICAg
ICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVz
L1NWR01lbWJlckFjY2Vzc29yLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdNZW1iZXJBY2Nlc3Nv
cjo6bWF0Y2hlcyBjb25zdCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUG9pbnRlck1l
bWJlckFjY2Vzc29yLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJpbWl0aXZlUHJv
cGVydHlBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJpbWl0aXZlUHJvcGVydHlB
bmltYXRvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ByaW1pdGl2ZVByb3BlcnR5
QW5pbWF0b3I6OlNWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3IpOgorICAgICAgICAqIHN2Zy9w
cm9wZXJ0aWVzL1NWR1Byb3BlcnR5Lmg6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRp
ZXMvU1ZHUHJvcGVydHlBY2Nlc3Nvci5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1By
b3BlcnR5QW5pbWF0b3JGYWN0b3J5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eUFu
aW1hdG9yRmFjdG9yeTo6Y3JlYXRlQ29sb3JBbmltYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeTo6Y3JlYXRlTGVuZ3RoQW5pbWF0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZUxlbmd0aExpc3RB
bmltYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeTo6
Y3JlYXRlTnVtYmVyQW5pbWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlBbmlt
YXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKToKKyAgICAgICAgKiBzdmcvcHJvcGVy
dGllcy9TVkdQcm9wZXJ0eUxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5TGlz
dDo6U1ZHUHJvcGVydHlMaXN0KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0
eU93bmVyLmg6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlP
d25lclJlZ2lzdHJ5Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlSZWdp
c3RyeS5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1NoYXJlZFByaW1pdGl2ZVByb3Bl
cnR5Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eS5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVmFsdWVQcm9wZXJ0eTo6U1ZHVmFsdWVQcm9wZXJ0eSk6CisgICAg
ICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9yLmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3I6OlNWR1ZhbHVlUHJvcGVydHlBbmlt
YXRvcik6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9y
SW1wbC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZVByb3BlcnR5TGlzdDo6U1ZHVmFsdWVQcm9wZXJ0
eUxpc3QpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0QW5p
bWF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3I6
OlNWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3IpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVz
L1NWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3JJbXBsLmg6CisKKzIwMTktMTAtMDEgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUg
U1ZHUHJvcGVydHlTdGF0ZSBmcm9tIFNWR1Byb3BlcnR5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0MzkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGEgc3RlcCB0b3dhcmRzIHJlcGxhY2lu
ZyBTVkdQb2ludCBieSBET01Qb2ludC4KKworICAgICAgICBTVkdQcm9wZXJ0eSBrZWVwcyBhIG1l
bWJlciBvZiB0eXBlIFNWR1Byb3BlcnR5U3RhdGUgd2hpY2ggdGVsbHMgd2hldGhlcgorICAgICAg
ICBpdCBuZWVkcyB0byBiZSByZS1zZXJpYWxpemVkIHRvIGl0cyBhdHRyaWJ1dGUgb3Igbm90LiBC
dXQgdGhlIGRpcnR5IHN0YXRlCisgICAgICAgIGlzIG9ubHkgc2V0IGluIFNWR0VsZW1lbnQ6OmNv
bW1pdFByb3BlcnR5Q2hhbmdlKCkuCisKKyAgICAgICAgU28gaW5zdGVhZCBvZiBoYXZpbmcgU1ZH
RWxlbWVudCBzZW5kcyB0aGlzIGNoYW5nZSBiYWNrIHRvIHRoZSBwcm9wZXJ0eSwKKyAgICAgICAg
d2UgYXJlIGdvaW5nIHRvIGtlZXAgYSBIYXNoU2V0PFF1YWxpZmllZE5hbWU+IGluIFNWR0VsZW1l
bnQgdG8gdGVsbCB3aGljaAorICAgICAgICBhdHRyaWJ1dGVzIG5lZWQgdG8gYmUgcmUtc2VyaWFs
aXplZC4gQW5kIGluc3RlYWQgb2YgY2FsbGluZyB0aGUgdmlydHVhbAorICAgICAgICBtZXRob2Qg
c3luY2hyb25pemUoKSB3aGljaCB3YXMgcmV0dXJuaW5nIE9wdGlvbmFsPFN0cmluZz4sIHdlIGFy
ZSBnb2luZworICAgICAgICB0byBjYWxsIHRoZSB2aXJ0dWFsIG1ldGhvZCB2YWx1ZUFzU3RyaW5n
KCkgd2hpY2ggcmV0dXJucyBhIFN0cmluZy4KKworICAgICAgICAqIHN2Zy9TVkdFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OnN5bmNocm9uaXplQXR0cmlidXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OnN5bmNocm9uaXplQWxsQXR0cmlidXRlcyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50Ojpjb21taXRQcm9wZXJ0eUNoYW5nZSk6Cisg
ICAgICAgICogc3ZnL1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoLmg6Cisg
ICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3QuaDoKKyAgICAgICAgKiBzdmcvU1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+Ojppbml0aWFsVmFsdWUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlPjo6ZnJvbVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+OjpwYXJzZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
VmFsdWU+Ojp0b1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0ZWREZWNvcmF0ZWRQcm9wZXJ0eS5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFByb3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3Bl
cnR5Ojp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVk
UHJvcGVydHk6OmlzRGlydHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRQcm9wZXJ0eTo6c2V0RGlydHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6c3luY2hyb25pemUpOiBEZWxldGVkLgorICAgICAgICAqIHN2
Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlMaXN0Lmg6CisgICAgICAgICogc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3NvckltcGwuaDoKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFZhbHVlUHJvcGVydHkuaDoKKyAgICAgICAgKiBz
dmcvcHJvcGVydGllcy9TVkdNZW1iZXJBY2Nlc3Nvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TWVtYmVyQWNjZXNzb3I6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTWVtYmVyQWNjZXNzb3I6OnN5bmNocm9uaXplIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdQb2ludGVyTWVtYmVyQWNjZXNzb3IuaDoKKyAgICAgICAgKiBz
dmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHk6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6ZGV0YWNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5Ojppc0RpcnR5IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5OjpzZXREaXJ0eSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6c3luY2hyb25pemUpOiBEZWxldGVkLgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXJSZWdpc3RyeS5oOgorICAgICAgICAqIHN2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5UmVnaXN0cnkuaDoKKworMjAxOS0xMC0wMSAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBT
VkdQcm9wZXJ0eUFjY2VzcyBmcm9tIFNWR1Byb3BlcnR5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0MTUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGEgc3RlcCB0b3dhcmRzIHJlcGxhY2lu
ZyBTVkdQb2ludCBieSBET01Qb2ludC4KKworICAgICAgICBBbiBTVkdQcm9wZXJ0eSBpcyByZWFk
LW9ubHkgaWYgaXQgb3IgaXRzIG93bmVyIGlzIHRoZSBhbmltVmFsIG9mIGFuCisgICAgICAgIFNW
R0FuaW1hdGVkUHJvcGVydHkgb3IgU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuIEluIHRoaXMgY2Fz
ZSBhbGwgYXR0ZW1wdHMKKyAgICAgICAgdG8gY2hhbmdlIGl0IHRocm91Z2ggSmF2YVNjcmlwdCBz
aG91bGQgdGhyb3cgZXhwZWN0aW9ucy4KKworICAgICAgICBTbyBpbnN0ZWFkIG9mIGtlZXBpbmcg
YSBtZW1iZXIgb2YgU1ZHUHJvcGVydHlBY2Nlc3MgaW4gZWFjaCBTVkdQcm9wZXJ0eSwKKyAgICAg
ICAgd2UgY2FuIHdhbGsgdGhyb3VnaCB0aGUgU1ZHUHJvcGVydHlPd25lciBjaGFpbiB0aWxsIHdl
IHJlYWNoIGFuIG93bmVyIG9mCisgICAgICAgIHR5cGUgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSBvciBT
VkdBbmltYXRlZFByb3BlcnR5TGlzdC4gVGhpcyBvd25lciBjb21wYXJlcworICAgICAgICB0aGUg
cHJvcGVydHkgdG8gYmUgbW9kaWZpZWQgd2l0aCBpdHMgYW5pbVZhbC4gQW5kIGlmIHRoZXkgYXJl
IHRoZSBzYW1lLAorICAgICAgICBpdCB3aWxsIHJldHVybiAndHJ1ZScgdGhyb3VnaCBpdHMgdmly
dHVhbCBtZXRob2QgaXNQcm9wZXJ0eVJlYWRPbmx5KCkuCisKKyAgICAgICAgKiBzdmcvU1ZHQW5n
bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpjcmVhdGUpOgorICAgICAgICAqIHN2
Zy9TVkdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aC5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGVuZ3RoOjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhMaXN0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGhMaXN0OjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGVuZ3RoTGlzdDo6U1ZHTGVuZ3RoTGlzdCk6CisgICAgICAgICogc3ZnL1NWR01h
dHJpeC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpjcmVhdGUpOgorICAgICAgICAq
IHN2Zy9TVkdOdW1iZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlcjo6Y3JlYXRlKToK
KyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTnVt
YmVyTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0xpc3QuaDoKKyAgICAg
ICAgKiBzdmcvU1ZHUG9pbnRMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3Q6
OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OmNyZWF0ZSk6CisgICAgICAgICog
c3ZnL1NWR1JlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OmNyZWF0ZSk6CisgICAg
ICAgICogc3ZnL1NWR1RyYW5zZm9ybS5oOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1MaXN0
Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHlMaXN0OjpTVkdBbmltYXRlZFBy
b3BlcnR5TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5TGlzdDo6
ZW5zdXJlQW5pbVZhbCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRWYWx1
ZVByb3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFZhbHVlUHJvcGVydHk6
OlNWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
ZFZhbHVlUHJvcGVydHk6OmVuc3VyZUFuaW1WYWwpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVz
L1NWR1Byb3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6YXR0YWNoKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5OjpkZXRhY2gpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJvcGVydHk6OmNvbnRleHRFbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Byb3BlcnR5Ojppc1JlYWRPbmx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1By
b3BlcnR5OjpTVkdQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6YWNj
ZXNzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0
eUxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5TGlzdDo6U1ZHUHJvcGVydHlM
aXN0KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eU93bmVyOjppc1Byb3BlcnR5UmVhZE9ubHkgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlPd25lcjo6cHJvcGVydHlDb250ZXh0RWxl
bWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eU93bmVyOjphdHRyaWJ1
dGVDb250ZXh0RWxlbWVudCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRp
ZXMvU1ZHVmFsdWVQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWVQcm9wZXJ0
eTo6U1ZHVmFsdWVQcm9wZXJ0eSk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQ
cm9wZXJ0eUxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlUHJvcGVydHlMaXN0OjpT
VkdWYWx1ZVByb3BlcnR5TGlzdCk6CisKKzIwMTktMTAtMDEgIFNhaWQgQWJvdS1IYWxsYXdhICA8
c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHRoZSBTVkcgcHJvcGVydGll
cyBvZiBTVkdWaWV3U3BlYyBtb2RpZmlhYmxlIGJ1dCBkZXRhY2hlZCBwcm9wZXJ0aWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0MTEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUbyBmYWNpbGl0YXRl
IGFjY2Vzc2luZyB0aGUgU1ZHUHJvcGVydGllcywgbWFrZSBhbGwgdGhlIHByb3BlcnRpZXMgb2YK
KyAgICAgICAgU1ZHVmlld1NwZWMgbW9kaWZpYWJsZSBidXQgZGV0YWNoZWQgcHJvcGVydGllcy4g
VGhpcyB3aWxsIGJlIGluIGNvbXBsaWFuY2UKKyAgICAgICAgd2l0aCB0aGUgc3BlY3M6IGh0dHBz
Oi8vd3d3LnczLm9yZy9UUi9TVkcxMS90eXBlcy5odG1sI0ludGVyZmFjZVNWR1ZpZXdTcGVjLgor
CisgICAgICAgICogc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdGaXRUb1ZpZXdCb3g6OlNWR0ZpdFRvVmlld0JveCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
aXRUb1ZpZXdCb3g6OnBhcnNlVmlld0JveCk6CisgICAgICAgICogc3ZnL1NWR0ZpdFRvVmlld0Jv
eC5oOgorICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdWaWV3U3BlYzo6U1ZHVmlld1NwZWMpOgorICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5oOgor
CiAyMDE5LTEwLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCBhdHRlbXB0IHRvIGZpeCBXaW5kb3dzIGJ1aWxkIGFmdGVyIHIyNTA1MjcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQppbmRleCA1NGFmMjJkYWRlNjUzZmQzYWJhNzg2YzE1OWZlMDBkMmYwYThi
ZDk0Li4zNTkzNzYyZjk2MGUyZjAxMjgyZmY5Yjk4OWEwYWJlNjY0N2JlZjQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKQEAgLTM2MCw2ICszNjAsOCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09S
S19IRUFERVJTCiAgICAgZG9tL0RPTUV4Y2VwdGlvbi5oCiAgICAgZG9tL0RPTUhpZ2hSZXNUaW1l
U3RhbXAuaAogICAgIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5oCisgICAgZG9tL0RPTUxpdmVQcm9w
ZXJ0eS5oCisgICAgZG9tL0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmgKICAgICBkb20vRE9NUGFz
dGVBY2Nlc3MuaAogICAgIGRvbS9ET01SZWN0LmgKICAgICBkb20vRE9NUmVjdEluaXQuaApAQCAt
MTM5MCw3ICsxMzkyLDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwog
ICAgIHN2Zy9wcm9wZXJ0aWVzL1NWR0xpc3QuaAogICAgIHN2Zy9wcm9wZXJ0aWVzL1NWR1ByaW1p
dGl2ZUxpc3QuaAogICAgIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5LmgKLSAgICBzdmcvcHJv
cGVydGllcy9TVkdQcm9wZXJ0eU93bmVyLmgKICAgICBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0
eVRyYWl0cy5oCiAKICAgICB0ZXN0aW5nL01vY2tHYW1lcGFkLmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXgg
Zjk1ODZmYTA0OGNiN2VlZDI4NjU5YmEwNjBiOGRmOGExMGUyYmRkYS4uMjIzMmM2NmU2ODViZGFh
MjJjN2VkMzNiNDllNjQ5MGUwNTQyNjNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTgzNyw2ICs4Mzcs
NyBAQCBkb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmNwcAogZG9tL0N1c3RvbUV2ZW50LmNwcAog
ZG9tL0RPTUV4Y2VwdGlvbi5jcHAKIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKK2RvbS9ET01Q
b2ludC5jcHAKIGRvbS9ET01Qb2ludFJlYWRPbmx5LmNwcAogZG9tL0RPTVF1YWQuY3BwCiBkb20v
RE9NUmVjdExpc3QuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYTE3NjFjNjdiNGM5NWQ4ZWFiNDc3YTdjMDBhZTU1NDVkMjNh
NzllZS4uOWQyNjAxZWI1NDVkMGU2NGVmNTlhZTg5MjA0Zjc4ZmM2NzJlY2U2NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjA4
NSwxMiArMjA4NSwxMyBAQAogCQk3MUVGQ0VEQzIwMkIzOEE5MDBEN0M0MTEgLyogQW5pbWF0aW9u
RWZmZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
MUVGQ0VENzIwMkIzODhEMDBEN0M0MTEgLyogQW5pbWF0aW9uRWZmZWN0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzIxNDQzMzEyMjNFQzg1NDAw
RjEyRkY3IC8qIChudWxsKSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjE0NDMzMjIyM0VD
ODVGMDBGMTJGRjcgLyogKG51bGwpIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTcyMTQ0MzMz
MjIzRUM4QjAwMEYxMkZGNyAvKiBTVkdQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVFRTUzNjMyMjNCMkEyNDAwRkJBOTQ0IC8qIFNWR1By
b3BlcnR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
LQkJNzIxNDQzMzQyMjNFQzkxNjAwRjEyRkY3IC8qIFNWR1Byb3BlcnR5T3duZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1RUU1MzYwMjIzQjJBMjEw
MEZCQTk0NCAvKiBTVkdQcm9wZXJ0eU93bmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzIyODNGMEUyMzBCMjY4QzAwRjVEODI4IC8qIEltYWdl
UGFpbnRpbmdPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3MkMxOEEzRjIzMEIwNEI3MDA2ODQ3QzcgLyogSW1hZ2VQYWludGluZ09wdGlvbnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjRF
RDMzMjFBM0E4QjIzMDBGNUYxM0MgLyogSlNFWFRCbGVuZE1pbk1heC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUQzMzAxQTNBOEIyMzAwRjVGMTND
IC8qIEpTRVhUQmxlbmRNaW5NYXguaCAqLzsgfTsKIAkJNzI0RUU1NTAxREM4MEQ3RjAwQTkxRkZC
IC8qIEFjdGl2aXR5U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDcyNEVFNTRFMURDN0YyNUIwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI0RUU1NTEx
REM4MEQ4NDAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUU1NEYxREM3RjI1QjAw
QTkxRkZCIC8qIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTcyODMxNUMxMjM0NDQwMTUwMDA3RDI3
NyAvKiBET01MaXZlUHJvcGVydHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDcyODMxNUMwMjM0NDIyOTIwMDA3RDI3NyAvKiBET01MaXZlUHJvcGVydHku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3Mjgz
MTVDMjIzNDQ0MDIyMDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyODMxNUJFMjM0NDIyOTEw
MDA3RDI3NyAvKiBET01MaXZlUHJvcGVydHlPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTcyODMxNUM3MjM0NTE4MjMwMDA3RDI3NyAv
KiBTVkdQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzI4MzE1QzUyMzQ1MEZDMjAwMDdEMjc3IC8qIFNWR1Byb3BlcnR5LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzU1M0NGRTgxMDhGNDcz
RjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1M0NGRTYxMDhGNDczRjAwRUEyODFFIC8qIFRp
bWVsaW5lUmVjb3JkRmFjdG9yeS5oICovOyB9OwogCQk3NTc5M0U4NDBEMENFMEIzMDA3RkMwQUMg
LyogTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3NTc5M0U4MTBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmggKi87IH07
CiAJCTc1NzkzRUM5MEQwQ0U3MkQwMDdGQzBBQyAvKiBKU01lc3NhZ2VFdmVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFQzcwRDBDRTcyRDAw
N0ZDMEFDIC8qIEpTTWVzc2FnZUV2ZW50LmggKi87IH07CkBAIC04NTY1LDEwICs4NTY2LDggQEAK
IAkJNTVFRTUzNUQyMjNCMkEwRDAwRkJBOTQ0IC8qIFNWR0FuaW1hdGVkUHJvcGVydHlQYWlyQWNj
ZXNzb3JJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVk
UHJvcGVydHlQYWlyQWNjZXNzb3JJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU1RUU1MzVFMjIzQjJBMEUwMEZCQTk0NCAvKiBTVkdBbmltYXRpb25BZGRpdGl2ZVZhbHVlRnVu
Y3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0aW9uQWRk
aXRpdmVWYWx1ZUZ1bmN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1RUU1
MzVGMjIzQjJBMEYwMEZCQTk0NCAvKiBTVkdBbmltYXRlZFByb3BlcnR5UGFpckFuaW1hdG9yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkUHJvcGVydHlQYWly
QW5pbWF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTVFRTUzNjAyMjNCMkEy
MTAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5T3duZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU1ZHUHJvcGVydHlPd25lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1NUVFNTM2MTIyM0IyQTIyMDBGQkE5NDQgLyogU1ZHQXR0cmlidXRlQW5pbWF0b3IuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQXR0cmlidXRlQW5pbWF0b3Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUVFNTM2MjIyM0IyQTIzMDBGQkE5
NDQgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTVkdBbmltYXRlZFByb3BlcnR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTU1RUU1MzYzMjIzQjJBMjQwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQcm9wZXJ0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1NUVFNTM2NDIyM0IyQTI0MDBGQkE5NDQgLyogU1ZHQXR0cmlidXRlQW5pbWF0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQXR0cmlidXRlQW5pbWF0b3Iu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVGQTdGRkEyMTEwRUNENzAwNUFFRkU3
IC8qIFNWR1pvb21BbmRQYW5UeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1pvb21BbmRQYW5UeXBl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MDQ0MDU3MUU1Mzg1MTYwMDM1NjYw
MSAvKiBDcnlwdG9BbGdvcml0aG1BRVNfQ0ZCTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUFFU19DRkJNYWMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtOTQ0OSw2ICs5NDQ4LDEwIEBACiAJCTcyN0FGRUQxMUEyRUE2
QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEVYVHNSR0IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjdBRkVE
MjFBMkVBNkEwMDAwNDQyRTggLyogRVhUc1JHQi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBFWFRzUkdCLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0FGRUQz
MUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBF
WFRzUkdCLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI4MzE1QkUyMzQ0MjI5
MTAwMDdEMjc3IC8qIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTcyODMxNUMwMjM0NDIyOTIwMDA3RDI3NyAvKiBET01MaXZlUHJvcGVy
dHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NTGl2ZVByb3BlcnR5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyODMxNUM1MjM0NTBGQzIwMDA3RDI3NyAv
KiBTVkdQcm9wZXJ0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQcm9w
ZXJ0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjgzMTVDRTIzNDY1OTAxMDAw
N0QyNzcgLyogRE9NUG9pbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NUG9pbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MkMxOEEzRjIzMEIwNEI3MDA2ODQ3QzcgLyog
SW1hZ2VQYWludGluZ09wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VQYWludGluZ09wdGlv
bnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJFNDE3NjExQTJFOEQyRjAwNEM1
NjJBIC8qIEpTRVhUc1JHQi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0VYVHNSR0IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MkU0MTc2MjFB
MkU4RDJGMDA0QzU2MkEgLyogSlNFWFRzUkdCLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTRVhUc1JHQi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYxNjMs
MTMgKzE2MTY2LDEyIEBACiAJCQkJNTVEQ0M1MjUyMjQwNzQ5RTAwQzI2RTMyIC8qIFNWR1ByaW1p
dGl2ZUxpc3QuaCAqLywKIAkJCQk3MjY2RjAxNTIyNDFDMDk4MDA4MzM5NzUgLyogU1ZHUHJpbWl0
aXZlUHJvcGVydHlBbmltYXRvci5oICovLAogCQkJCTcyNjZGMDE0MjI0MUJGQjIwMDgzMzk3NSAv
KiBTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oICovLAotCQkJCTU1RUU1MzYzMjIz
QjJBMjQwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0eS5oICovLAorCQkJCTcyODMxNUM1MjM0NTBGQzIw
MDA3RDI3NyAvKiBTVkdQcm9wZXJ0eS5oICovLAogCQkJCTU1RENDNTI2MjI0MDc0RkEwMEMyNkUz
MiAvKiBTVkdQcm9wZXJ0eUFjY2Vzc29yLmggKi8sCiAJCQkJNTVEQ0M1MjcyMjQwNzUwQjAwQzI2
RTMyIC8qIFNWR1Byb3BlcnR5QWNjZXNzb3JJbXBsLmggKi8sCiAJCQkJNzI2NkYwMTYyMjQxQzBG
RTAwODMzOTc1IC8qIFNWR1Byb3BlcnR5QW5pbWF0b3IuaCAqLywKIAkJCQk3MjY2RjAxMzIyNDFC
Q0UyMDA4MzM5NzUgLyogU1ZHUHJvcGVydHlBbmltYXRvckZhY3RvcnkuaCAqLywKIAkJCQk3MjY2
RjAyNzIyNDMxMDkyMDA4MzM5NzUgLyogU1ZHUHJvcGVydHlMaXN0LmggKi8sCi0JCQkJNTVFRTUz
NjAyMjNCMkEyMTAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5T3duZXIuaCAqLywKIAkJCQk1NUJFMDI1
QzIyM0IyOUMzMDAzMkYwOEEgLyogU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5LmggKi8sCiAJCQkJ
NTVCRTAyNTcyMjNCMjlDMDAwMzJGMDhBIC8qIFNWR1Byb3BlcnR5UmVnaXN0cnkuaCAqLywKIAkJ
CQkwODhBMEUwMzEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUcmFpdHMuaCAqLywKQEAg
LTI3NTU5LDcgKzI3NTYxLDEwIEBACiAJCQkJQTgxODVGMzYwOTc2NTc2NTAwNTgyNkQ5IC8qIERP
TUltcGxlbWVudGF0aW9uLmNwcCAqLywKIAkJCQlBODE4NUYzMzA5NzY1NzY1MDA1ODI2RDkgLyog
RE9NSW1wbGVtZW50YXRpb24uaCAqLywKIAkJCQk5M0VFQzFFOTA5QzI4Nzc3MDBDNTE1RDEgLyog
RE9NSW1wbGVtZW50YXRpb24uaWRsICovLAorCQkJCTcyODMxNUMwMjM0NDIyOTIwMDA3RDI3NyAv
KiBET01MaXZlUHJvcGVydHkuaCAqLywKKwkJCQk3MjgzMTVCRTIzNDQyMjkxMDAwN0QyNzcgLyog
RE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIuaCAqLywKIAkJCQlGNEI0MjJDMjIyMEMwMDAwMDA5RTFF
N0QgLyogRE9NUGFzdGVBY2Nlc3MuaCAqLywKKwkJCQk3MjgzMTVDRTIzNDY1OTAxMDAwN0QyNzcg
LyogRE9NUG9pbnQuY3BwICovLAogCQkJCTBGNDk2Njk5MURCNDA4QzEwMEEyNzRCQiAvKiBET01Q
b2ludC5oICovLAogCQkJCTBGNDk2NjlBMURCNDA4QzEwMEEyNzRCQiAvKiBET01Qb2ludC5pZGwg
Ki8sCiAJCQkJMEY0OTY2QTIxREI0MDkxMDAwQTI3NEJCIC8qIERPTVBvaW50SW5pdC5oICovLApA
QCAtMjkxNTMsNiArMjkxNTgsOCBAQAogCQkJCUUzQTc3NjY3MURDODVEMjgwMEI2OTBEOCAvKiBE
T01KSVRJRExDb252ZXJ0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0E3NzY2ODFEQzg1RDI4MDBC
NjkwRDggLyogRE9NSklUSURMVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTM1ODAyQjYxREM4
NDM1RDAwQTk3NzNDIC8qIERPTUpJVElETFR5cGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTcyODMxNUMxMjM0NDQwMTUwMDA3RDI3NyAvKiBET01MaXZlUHJvcGVydHkuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTcyODMxNUMyMjM0NDQwMjIwMDA3RDI3NyAvKiBET01MaXZlUHJvcGVydHlPYnNl
cnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2QUNFQ0ExRUNBOTU2OTAwNEJEMDEyIC8qIERP
TU1hdHJpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NCQkJDQzcxRjU2MDU4MTAwNUVGQUFDIC8q
IERPTU1hdHJpeDJESW5pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2QUNFQ0IxRUNBOTU2RDAw
NEJEMDEyIC8qIERPTU1hdHJpeEluaXQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE5NzYsOCArMzE5
ODMsNyBAQAogCQkJCUIyMjI3QTk0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2x5bGluZUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTk3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NURDQzUyODIyNDA3QjIw
MDBDMjZFMzIgLyogU1ZHUHJpbWl0aXZlTGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNzIxNDQz
MzMyMjNFQzhCMDAwRjEyRkY3IC8qIFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKLQkJCQk3
MjE0NDMzNDIyM0VDOTE2MDBGMTJGRjcgLyogU1ZHUHJvcGVydHlPd25lci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNzI4MzE1QzcyMzQ1MTgyMzAwMDdEMjc3IC8qIFNWR1Byb3BlcnR5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwODhBMEUwQzEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUcmFp
dHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTlBMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdS
YWRpYWxHcmFkaWVudEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4RURFMTlGMTJBNTBC
OEUwMEI5NTc5NyAvKiBTVkdSZWN0LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01MaXZlUHJvcGVydHkuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01M
aXZlUHJvcGVydHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTU5NDhiNjgzNTkxY2ZiZWY1NzNmZWZhODkwZWNh
ZWMyNjJiYzlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUxpdmVQ
cm9wZXJ0eS5oCkBAIC0wLDAgKzEsODAgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBET01MaXZlUHJvcGVydHkgeworcHVibGljOgorICAgIC8v
IE1hbmFnaW5nIHRoZSByZWxhdGlvbnNoaXAgd2l0aCB0aGUgb2JzZXJ2ZXIuCisgICAgYm9vbCBp
c0F0dGFjaGVkKCkgY29uc3QgeyByZXR1cm4gbV9vYnNlcnZlcjsgfQorICAgIERPTUxpdmVQcm9w
ZXJ0eU9ic2VydmVyKiBvYnNlcnZlcigpIGNvbnN0IHsgcmV0dXJuIG1fb2JzZXJ2ZXI7IH0KKwor
ICAgIHZvaWQgYXR0YWNoKERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcikKKyAgICB7
CisgICAgICAgIEFTU0VSVCghbV9vYnNlcnZlcik7CisgICAgICAgIG1fb2JzZXJ2ZXIgPSBvYnNl
cnZlcjsKKyAgICB9CisKKyAgICB2b2lkIGRldGFjaCgpCisgICAgeworICAgICAgICBtX29ic2Vy
dmVyID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICAvLyBUcmF2ZXJzZSB0aGUgb2JzZXJ2ZXJzIGNo
YWluIHRpbGwgYW4gU1ZHRWxlbWVudCBvYnNlcnZlciBpcyByZWFjaGVkLgorICAgIGNvbnN0IFNW
R0VsZW1lbnQqIHN2Z0NvbnRleHRFbGVtZW50KCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmICgh
bV9vYnNlcnZlcikKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4g
bV9vYnNlcnZlci0+cHJvcGVydHlTVkdDb250ZXh0RWxlbWVudCgpOworICAgIH0KKworICAgIC8v
IENoZWNrIGlmIHRoZSBvYnNlcnZlciBkaXNhbGxvd3MgY2hhbmdpbmcgdGhpcyBwcm9wZXJ0eS4K
KyAgICBib29sIGlzUmVhZE9ubHkoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fb2Jz
ZXJ2ZXIgJiYgbV9vYnNlcnZlci0+aXNQcm9wZXJ0eVJlYWRPbmx5KCp0aGlzKTsKKyAgICB9CisK
KyAgICAvLyBDb21taXQgdGhlIGxpdmUgcHJvcGVydHkgY2hhbmdlcyB2aWEgdGhlIG9ic2VydmVy
cyBjaGFpbi4KKyAgICB2b2lkIGNvbW1pdENoYW5nZSgpCisgICAgeworICAgICAgICBpZiAoIW1f
b2JzZXJ2ZXIpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fb2JzZXJ2ZXItPmNvbW1p
dFByb3BlcnR5Q2hhbmdlKHRoaXMpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIERPTUxpdmVQ
cm9wZXJ0eShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIgPSBudWxscHRyKQorICAg
ICAgICA6IG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCisgICAgeworICAgIH0KKworICAgIERPTUxpdmVQ
cm9wZXJ0eU9ic2VydmVyKiBtX29ic2VydmVyIHsgbnVsbHB0ciB9OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUxpdmVQcm9w
ZXJ0eU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NTGl2ZVByb3BlcnR5T2JzZXJ2
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kMGE5MDdhYzE2NjAxOTdmZDJjMjU3YmRiNjk4ZWJiMzNjOTc1MjBh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUxpdmVQcm9wZXJ0eU9i
c2VydmVyLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdt
YSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NTGl2ZVByb3BlcnR5Owor
Y2xhc3MgU1ZHRWxlbWVudDsKKworY2xhc3MgRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIgeworcHVi
bGljOgorICAgIHZpcnR1YWwgfkRPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKCkgPSBkZWZhdWx0Owor
CisgICAgLy8gVGhlIG9ic2VydmVyIGl0c2VsZiBtYXkgaGF2ZSBhbiBvYnNlcnZlci4KKyAgICB2
aXJ0dWFsIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcigpIGNvbnN0IHsgcmV0dXJu
IG51bGxwdHI7IH0KKworICAgIC8vIFRyYXZlcnNlIHRoZSBvYnNlcnZlcnMgY2hhaW4gdGlsbCBh
biBFbGVtZW50IG9ic2VydmVyIGlzIHJlYWNoZWQuCisgICAgdmlydHVhbCBjb25zdCBTVkdFbGVt
ZW50KiBwcm9wZXJ0eVNWR0NvbnRleHRFbGVtZW50KCkgY29uc3QKKyAgICB7CisgICAgICAgIGlm
ICghb2JzZXJ2ZXIoKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1
cm4gb2JzZXJ2ZXIoKS0+cHJvcGVydHlTVkdDb250ZXh0RWxlbWVudCgpOworICAgIH0KKworICAg
IHZpcnR1YWwgYm9vbCBpc1Byb3BlcnR5UmVhZE9ubHkoY29uc3QgRE9NTGl2ZVByb3BlcnR5JiBw
cm9wZXJ0eSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBvYnNlcnZlcigpICYmIG9ic2Vy
dmVyKCktPmlzUHJvcGVydHlSZWFkT25seShwcm9wZXJ0eSk7CisgICAgfQorCisgICAgLy8gQ29t
bWl0IHRoZSBsaXZlIHByb3BlcnR5IGNoYW5nZXMgdmlhIHRoZSBvYnNlcnZlcnMgY2hhaW4uCisg
ICAgdmlydHVhbCB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKERPTUxpdmVQcm9wZXJ0eSogcHJv
cGVydHkpCisgICAgeworICAgICAgICBpZiAoIW9ic2VydmVyKCkpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIG9ic2VydmVyKCktPmNvbW1pdFByb3BlcnR5Q2hhbmdlKHByb3BlcnR5KTsK
KyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBET01MaXZlUHJvcGVydHlPYnNlcnZlcigpID0gZGVm
YXVsdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9ET01Qb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnQuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjRjZWUxYWFhMDdiYWYxNzMzNGI0YjFjMzhlMmRlMzFlOTA4MGRlNDcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnQuY3BwCkBAIC0wLDAg
KzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRz
IFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAg
IGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscwor
ICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUworICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIENPUFlSSUdIVCBIT0xERVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwKKyAqIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwKKyAqIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQKKyAqIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRE9NUG9pbnQuaCIKKworI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRF9JTVBMKERPTVBvaW50KTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01Qb2ludC5oCmluZGV4IDc3Mjc3ZDdmMjFiM2Y0YmNjM2M0MDRkNTNlZTFlYzhj
YjAzNTNiYzMuLmE5MGY3MzQ5NGU5NWM3OTVjYTNiYWU2ZGJhNzczMjQwZjdhNzAwMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01Qb2ludC5oCkBAIC0zMCwxMSArMzAsMTQgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
bmNsdWRlICJET01MaXZlUHJvcGVydHkuaCIKICNpbmNsdWRlICJET01Qb2ludFJlYWRPbmx5Lmgi
CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBET01Qb2ludCBmaW5hbCA6IHB1YmxpYyBET01Qb2ludFJlYWRPbmx5IHsKK2Ns
YXNzIERPTVBvaW50IGZpbmFsIDogcHVibGljIERPTVBvaW50UmVhZE9ubHksIHB1YmxpYyBET01M
aXZlUHJvcGVydHkgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRE9NUG9pbnQpOwogcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8RE9NUG9pbnQ+IGNyZWF0ZShkb3VibGUgeCwgZG91YmxlIHks
IGRvdWJsZSB6ID0gMCwgZG91YmxlIHcgPSAxKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTVBv
aW50KHgsIHksIHosIHcpKTsgfQogICAgIHN0YXRpYyBSZWY8RE9NUG9pbnQ+IGNyZWF0ZShjb25z
dCBET01Qb2ludEluaXQmIGluaXQpIHsgcmV0dXJuIGNyZWF0ZShpbml0LngsIGluaXQueSwgaW5p
dC56LCBpbml0LncpOyB9CkBAIC00NSwxMiArNDgsNTMgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
Wihkb3VibGUgeikgeyBtX3ogPSB6OyB9CiAgICAgdm9pZCBzZXRXKGRvdWJsZSB3KSB7IG1fdyA9
IHc7IH0KIAorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFhGb3JCaW5kaW5ncyhkb3VibGUgeCkK
KyAgICB7CisgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCisgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKKyAgICAKKyAgICAgICAgbV94
ID0geDsKKyAgICAgICAgY29tbWl0Q2hhbmdlKCk7CisgICAgICAgIHJldHVybiB7IH07CisgICAg
fQorICAgIAorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFlGb3JCaW5kaW5ncyhkb3VibGUgeSkK
KyAgICB7CisgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCisgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKKyAgICAKKyAgICAgICAgbV95
ID0geTsKKyAgICAgICAgY29tbWl0Q2hhbmdlKCk7CisgICAgICAgIHJldHVybiB7IH07CisgICAg
fQorICAgIAorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFpGb3JCaW5kaW5ncyhkb3VibGUgeikK
KyAgICB7CisgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCisgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKKyAgICAKKyAgICAgICAgbV96
ID0gejsKKyAgICAgICAgY29tbWl0Q2hhbmdlKCk7CisgICAgICAgIHJldHVybiB7IH07CisgICAg
fQorICAgIAorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFdGb3JCaW5kaW5ncyhkb3VibGUgdykK
KyAgICB7CisgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCisgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKKyAgICAKKyAgICAgICAgbV93
ID0gdzsKKyAgICAgICAgY29tbWl0Q2hhbmdlKCk7CisgICAgICAgIHJldHVybiB7IH07CisgICAg
fQorICAgIAogcHJpdmF0ZToKICAgICBET01Qb2ludChkb3VibGUgeCwgZG91YmxlIHksIGRvdWJs
ZSB6LCBkb3VibGUgdykKICAgICAgICAgOiBET01Qb2ludFJlYWRPbmx5KHgsIHksIHosIHcpCiAg
ICAgewogICAgIH0KIH07Ci1zdGF0aWNfYXNzZXJ0KHNpemVvZihET01Qb2ludCkgPT0gc2l6ZW9m
KERPTVBvaW50UmVhZE9ubHkpLCAiIik7CisKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKERPTVBvaW50
KSA9PSBzaXplb2YoRE9NUG9pbnRSZWFkT25seSkgKyBzaXplb2YoRE9NTGl2ZVByb3BlcnR5KSwg
IiIpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NUG9pbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50LmlkbAppbmRl
eCA2OWJiYzJkMGZmMjA3NjE0NmZmZDU1MjcwNGQ1NzYyMjUxOWRkNjA1Li5kMTZlMDRlYzQ0ZTE0
MjE3YjgxMzhlN2VjODlhYmZlMmY0NDdmYjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NUG9pbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludC5pZGwKQEAg
LTM1LDEzICszNSwxMyBAQAogICAgICAgICBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHog
PSAwLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHcgPSAxKSwKICAgICBFeHBvc2VkPShX
aW5kb3csV29ya2VyKSwKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGwsCi0gICAgSW1wbGVt
ZW50YXRpb25MYWNrc1ZUYWJsZQorICAgIFNraXBWVGFibGVWYWxpZGF0aW9uCiBdCiBpbnRlcmZh
Y2UgRE9NUG9pbnQgOiBET01Qb2ludFJlYWRPbmx5IHsKICAgICBbTmV3T2JqZWN0XSBzdGF0aWMg
RE9NUG9pbnQgZnJvbVBvaW50KG9wdGlvbmFsIERPTVBvaW50SW5pdCBvdGhlcik7CiAKLSAgICBp
bmhlcml0IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHg7Ci0gICAgaW5oZXJpdCBhdHRy
aWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB5OwotICAgIGluaGVyaXQgYXR0cmlidXRlIHVucmVz
dHJpY3RlZCBkb3VibGUgejsKLSAgICBpbmhlcml0IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91
YmxlIHc7CisgICAgW0ltcGxlbWVudGVkQXM9eEZvckJpbmRpbmdzXSBpbmhlcml0IGF0dHJpYnV0
ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHg7CisgICAgW0ltcGxlbWVudGVkQXM9eUZvckJpbmRpbmdz
XSBpbmhlcml0IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHk7CisgICAgW0ltcGxlbWVu
dGVkQXM9ekZvckJpbmRpbmdzXSBpbmhlcml0IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91Ymxl
IHo7CisgICAgW0ltcGxlbWVudGVkQXM9d0ZvckJpbmRpbmdzXSBpbmhlcml0IGF0dHJpYnV0ZSB1
bnJlc3RyaWN0ZWQgZG91YmxlIHc7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RPTVBvaW50UmVhZE9ubHkuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludFJlYWRPbmx5
LmgKaW5kZXggMGE2OGZkZjFiYzE5NGU0MzE3ZTFiNTVmYWQ4OWQ0NmRhZWZlNzIxMS4uOWE0ZGI2
NjA5MTQ1NTk4MmFmNmY4YTc1MTM1NGI2ZmMwMjZmNDAxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RPTVBvaW50UmVhZE9ubHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9N
UG9pbnRSZWFkT25seS5oCkBAIC00Myw2ICs0Myw3IEBAIGNsYXNzIERPTVBvaW50OwogY2xhc3Mg
RE9NUG9pbnRSZWFkT25seSA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3Vu
dGVkPERPTVBvaW50UmVhZE9ubHk+IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKERPTVBv
aW50UmVhZE9ubHkpOwogcHVibGljOgorICAgIHZpcnR1YWwgfkRPTVBvaW50UmVhZE9ubHkoKSA9
IGRlZmF1bHQ7CiAgICAgc3RhdGljIFJlZjxET01Qb2ludFJlYWRPbmx5PiBjcmVhdGUoZG91Ymxl
IHgsIGRvdWJsZSB5LCBkb3VibGUgeiwgZG91YmxlIHcpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
RE9NUG9pbnRSZWFkT25seSh4LCB5LCB6LCB3KSk7IH0KICAgICBzdGF0aWMgUmVmPERPTVBvaW50
UmVhZE9ubHk+IGNyZWF0ZShjb25zdCBET01Qb2ludEluaXQmIGluaXQpIHsgcmV0dXJuIGNyZWF0
ZShpbml0LngsIGluaXQueSwgaW5pdC56LCBpbml0LncpOyB9CiAgICAgc3RhdGljIFJlZjxET01Q
b2ludFJlYWRPbmx5PiBmcm9tUG9pbnQoY29uc3QgRE9NUG9pbnRJbml0JiBpbml0KSB7IHJldHVy
biBjcmVhdGUoaW5pdC54LCBpbml0LnksIGluaXQueiwgaW5pdC53KTsgfQpAQCAtNTIsNiArNTMs
MTEgQEAgcHVibGljOgogICAgIGRvdWJsZSB6KCkgY29uc3QgeyByZXR1cm4gbV96OyB9CiAgICAg
ZG91YmxlIHcoKSBjb25zdCB7IHJldHVybiBtX3c7IH0KIAorICAgIGRvdWJsZSB4Rm9yQmluZGlu
Z3MoKSBjb25zdCB7IHJldHVybiBtX3g7IH0KKyAgICBkb3VibGUgeUZvckJpbmRpbmdzKCkgY29u
c3QgeyByZXR1cm4gbV95OyB9CisgICAgZG91YmxlIHpGb3JCaW5kaW5ncygpIGNvbnN0IHsgcmV0
dXJuIG1fejsgfQorICAgIGRvdWJsZSB3Rm9yQmluZGluZ3MoKSBjb25zdCB7IHJldHVybiBtX3c7
IH0KKwogICAgIEV4Y2VwdGlvbk9yPFJlZjxET01Qb2ludD4+IG1hdHJpeFRyYW5zZm9ybShET01N
YXRyaXhJbml0JiYpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6CkBAIC03MSw0ICs3NywzIEBAIHByb3Rl
Y3RlZDoKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RP
TVBvaW50UmVhZE9ubHkuaWRsCmluZGV4IDNmZmQ2NmZkNzEyMWE5ZGM3Y2M1Zjg1NzNhNzZhNzg5
NzQ0Zjk2OGUuLmY5ZWMzNDM5ODMxMWU0NzY5MGE2Y2M0NjRhOWFkYzVkMTUzN2UyZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludFJlYWRPbmx5LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NUG9pbnRSZWFkT25seS5pZGwKQEAgLTM0LDE1ICszNCwxNSBAQAog
ICAgIENvbnN0cnVjdG9yKG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUgeCA9IDAsIG9wdGlv
bmFsIHVucmVzdHJpY3RlZCBkb3VibGUgeSA9IDAsCiAgICAgICAgIG9wdGlvbmFsIHVucmVzdHJp
Y3RlZCBkb3VibGUgeiA9IDAsIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUgdyA9IDEpLAog
ICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpLAotICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFi
bGUKKyAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbgogXQogaW50ZXJmYWNlIERPTVBvaW50UmVhZE9u
bHkgewogICAgIFtOZXdPYmplY3RdIHN0YXRpYyBET01Qb2ludFJlYWRPbmx5IGZyb21Qb2ludChv
cHRpb25hbCBET01Qb2ludEluaXQgb3RoZXIpOwogCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
cmVzdHJpY3RlZCBkb3VibGUgeDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVk
IGRvdWJsZSB5OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHo7
Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgdzsKKyAgICBbSW1w
bGVtZW50ZWRBcz14Rm9yQmluZGluZ3NdIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQg
ZG91YmxlIHg7CisgICAgW0ltcGxlbWVudGVkQXM9eEZvckJpbmRpbmdzXSByZWFkb25seSBhdHRy
aWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB5OworICAgIFtJbXBsZW1lbnRlZEFzPXhGb3JCaW5k
aW5nc10gcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgejsKKyAgICBbSW1w
bGVtZW50ZWRBcz14Rm9yQmluZGluZ3NdIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQg
ZG91YmxlIHc7CiAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERPTVBvaW50IG1hdHJpeFRyYW5z
Zm9ybShvcHRpb25hbCBET01NYXRyaXhJbml0IG1hdHJpeCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmgK
aW5kZXggOWM2MTczMmFlOTMxYzk4NTRlNzU2OWUxY2IyMmE2ZWQ4ZGFmNWIwMy4uMDRiMjE2ZmE3
NmVlMGFjMjg3NmE2M2UwZDZiMzk1NGEzODY1YWVmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuZ2xlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmgKQEAg
LTQxLDkgKzQxLDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdB
bmdsZSh2YWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHQW5nbGU+IGNyZWF0ZShT
VkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBjb25zdCBT
VkdBbmdsZVZhbHVlJiB2YWx1ZSA9IHsgfSkKKyAgICBzdGF0aWMgUmVmPFNWR0FuZ2xlPiBjcmVh
dGUoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyLCBjb25zdCBTVkdBbmdsZVZhbHVl
JiB2YWx1ZSA9IHsgfSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0Fu
Z2xlKG93bmVyLCBhY2Nlc3MsIHZhbHVlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR0FuZ2xlKG9ic2VydmVyLCB2YWx1ZSkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKaW5kZXggMTZjM2FmYzIxNTNiNjhkYTlk
ODUzNjU2OTYyNjA1YzhlMTBhNWFmNC4uMjA0YzIyYmIzNmRkYTA4NjI4MTM5MTcyMzBmZDRlOTQw
MTFmNDk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcApAQCAtNTQxLDIwICs1NDEsMjMg
QEAgdm9pZCBTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG8KICAgICAgICAgc3ZnQXR0cmlidXRlQ2hhbmdlZChu
YW1lKTsKIH0KIAotdm9pZCBTVkdFbGVtZW50OjpzeW5jaHJvbml6ZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lKQordm9pZCBTVkdFbGVtZW50OjpzeW5jaHJvbml6ZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQogewotICAgIC8vIElmIHRoZSB2
YWx1ZSBvZiB0aGUgcHJvcGVydHkgaGFzIGNoYW5nZWQsIHNlcmlhbGl6ZSB0aGUgbmV3IHZhbHVl
IHRvIHRoZSBhdHRyaWJ1dGUuCi0gICAgaWYgKGF1dG8gdmFsdWUgPSBwcm9wZXJ0eVJlZ2lzdHJ5
KCkuc3luY2hyb25pemUobmFtZSkpCi0gICAgICAgIHNldFN5bmNocm9uaXplZExhenlBdHRyaWJ1
dGUobmFtZSwgKnZhbHVlKTsKKyAgICBhdXRvIGl0ID0gbV9kaXJ0eUF0dHJpYnV0ZXMuZmluZChh
dHRyaWJ1dGVOYW1lKTsKKyAgICBpZiAoaXQgPT0gbV9kaXJ0eUF0dHJpYnV0ZXMuZW5kKCkpCisg
ICAgICAgIHJldHVybjsKKyAgICAKKyAgICAvLyBJZiB0aGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5
IGhhcyBjaGFuZ2VkLCByZXNlcmlhbGl6ZSB0aGUgbmV3IHZhbHVlIHRvIHRoZSBhdHRyaWJ1dGUu
CisgICAgc2V0U3luY2hyb25pemVkTGF6eUF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lLCBwcm9wZXJ0
eVJlZ2lzdHJ5KCkudmFsdWVBc1N0cmluZyhhdHRyaWJ1dGVOYW1lKSk7CisgICAgbV9kaXJ0eUF0
dHJpYnV0ZXMucmVtb3ZlKGl0KTsKIH0KICAgICAKIHZvaWQgU1ZHRWxlbWVudDo6c3luY2hyb25p
emVBbGxBdHRyaWJ1dGVzKCkKIHsKLSAgICAvLyBTVkdQcm9wZXJ0eVJlZ2lzdHJ5OjpzeW5jaHJv
bml6ZUFsbEF0dHJpYnV0ZXMoKSByZXR1cm5zIHRoZSBuZXcgdmFsdWVzIG9mCi0gICAgLy8gdGhl
IHByb3BlcnRpZXMgd2hpY2ggaGF2ZSBjaGFuZ2VkIGJ1dCBub3QgY29tbWl0dGVkIHlldC4KLSAg
ICBhdXRvIG1hcCA9IHByb3BlcnR5UmVnaXN0cnkoKS5zeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMo
KTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGVudHJ5IDogbWFwKQotICAgICAgICBzZXRTeW5jaHJv
bml6ZWRMYXp5QXR0cmlidXRlKGVudHJ5LmtleSwgZW50cnkudmFsdWUpOworICAgIC8vIFJlc2Vy
aWFsaXplIHRoZSB2YWx1ZXMgb2YgdGhlIGNoYW5nZWQgcHJvcGVydGllcyB0byB0aGVpciBhdHRy
aWJ1dGVzLgorICAgIGZvciAoYXV0byYgYXR0cmlidXRlTmFtZSA6IG1fZGlydHlBdHRyaWJ1dGVz
KQorICAgICAgICBzZXRTeW5jaHJvbml6ZWRMYXp5QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUsIHBy
b3BlcnR5UmVnaXN0cnkoKS52YWx1ZUFzU3RyaW5nKGF0dHJpYnV0ZU5hbWUpKTsKKyAgICBtX2Rp
cnR5QXR0cmlidXRlcy5jbGVhcigpOwogfQogCiB2b2lkIFNWR0VsZW1lbnQ6OnN5bmNocm9uaXpl
QWxsQW5pbWF0ZWRTVkdBdHRyaWJ1dGUoU1ZHRWxlbWVudCYgc3ZnRWxlbWVudCkKQEAgLTU2Miwx
NSArNTY1LDE4IEBAIHZvaWQgU1ZHRWxlbWVudDo6c3luY2hyb25pemVBbGxBbmltYXRlZFNWR0F0
dHJpYnV0ZShTVkdFbGVtZW50JiBzdmdFbGVtZW50KQogICAgIHN2Z0VsZW1lbnQuc3luY2hyb25p
emVBbGxBdHRyaWJ1dGVzKCk7CiB9CiAKLXZvaWQgU1ZHRWxlbWVudDo6Y29tbWl0UHJvcGVydHlD
aGFuZ2UoU1ZHUHJvcGVydHkqIHByb3BlcnR5KQordm9pZCBTVkdFbGVtZW50Ojpjb21taXRQcm9w
ZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqIHByb3BlcnR5KQogeworICAgIFF1YWxpZmllZE5h
bWUgYXR0cmlidXRlTmFtZSA9IHByb3BlcnR5UmVnaXN0cnkoKS5wcm9wZXJ0eUF0dHJpYnV0ZU5h
bWUoKnByb3BlcnR5KTsKKyAgICBBU1NFUlQoYXR0cmlidXRlTmFtZSAhPSBudWxsUU5hbWUoKSk7
CisKICAgICAvLyBXZSB3YW50IHRvIGRpcnR5IHRoZSB0b3AtbGV2ZWwgcHJvcGVydHkgd2hlbiBh
IGRlc2NlbmRhbnQgY2hhbmdlcy4gRm9yIGV4YW1wbGUKICAgICAvLyBhIGNoYW5nZSBpbiBhbiBT
VkdMZW5ndGggaXRlbSBpbiBTVkdMZW5ndGhMaXN0IHNob3VsZCBzZXQgdGhlIGRpcnR5IGZsYWcg
b24KICAgICAvLyBTVkdMZW5ndGhMaXN0IGFuZCBub3QgdGhlIFNWR0xlbmd0aC4KLSAgICBwcm9w
ZXJ0eS0+c2V0RGlydHkoKTsKKyAgICBtX2RpcnR5QXR0cmlidXRlcy5hZGQoYXR0cmlidXRlTmFt
ZSk7CiAKICAgICBpbnZhbGlkYXRlU1ZHQXR0cmlidXRlcygpOwotICAgIHN2Z0F0dHJpYnV0ZUNo
YW5nZWQocHJvcGVydHlSZWdpc3RyeSgpLnByb3BlcnR5QXR0cmlidXRlTmFtZSgqcHJvcGVydHkp
KTsKKyAgICBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJpYnV0ZU5hbWUpOwogfQogCiB2b2lkIFNW
R0VsZW1lbnQ6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1h
dGVkUHJvcGVydHkpCkBAIC01ODEsNyArNTg3LDcgQEAgdm9pZCBTVkdFbGVtZW50Ojpjb21taXRQ
cm9wZXJ0eUNoYW5nZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5KQogICAg
IC8vIEEgY2hhbmdlIGluIGEgc3R5bGUgcHJvcGVydHksIGUuZyBTVkdSZWN0RWxlbWVudDo6eCBz
aG91bGQgYmUgc2VyaWFsaXplZCB0bwogICAgIC8vIHRoZSBhdHRyaWJ1dGUgaW1tZWRpYXRlbHku
IE90aGVyd2lzZSBpdCBpcyBva2F5IHRvIGJlIGxhenkgaW4gdGhpcyByZWdhcmQuCiAgICAgaWYg
KCFwcm9wZXJ0eVJlZ2lzdHJ5KCkuaXNBbmltYXRlZFN0eWxlUHJvcGVydHlBdHRyaWJ1dGUoYXR0
cmlidXRlTmFtZSkpCi0gICAgICAgIGFuaW1hdGVkUHJvcGVydHkuc2V0RGlydHkoKTsKKyAgICAg
ICAgbV9kaXJ0eUF0dHJpYnV0ZXMuYWRkKGF0dHJpYnV0ZU5hbWUpOwogICAgIGVsc2UKICAgICAg
ICAgc2V0U3luY2hyb25pemVkTGF6eUF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFBy
b3BlcnR5LmJhc2VWYWxBc1N0cmluZygpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKaW5kZXgg
OGNjNmFhY2E2NTc2ODBlZThkM2YzZjQ2Yzg3ODJhZDIyNTVjNzc0Mi4uZDkwODc2YWZmYjc0ZTYx
NTMzMjNlNTM0Yzg4OTdmZDhkZTU2ZTBkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCkBAIC00
Nyw3ICs0Nyw3IEBAIGNsYXNzIFNWR1VzZUVsZW1lbnQ7CiAKIHZvaWQgbWFwQXR0cmlidXRlVG9D
U1NQcm9wZXJ0eShIYXNoTWFwPEF0b21TdHJpbmdJbXBsKiwgQ1NTUHJvcGVydHlJRD4qIHByb3Bl
cnR5TmFtZVRvSWRNYXAsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKTsKIAotY2xhc3Mg
U1ZHRWxlbWVudCA6IHB1YmxpYyBTdHlsZWRFbGVtZW50LCBwdWJsaWMgU1ZHTGFuZ1NwYWNlLCBw
dWJsaWMgU1ZHUHJvcGVydHlPd25lciB7CitjbGFzcyBTVkdFbGVtZW50IDogcHVibGljIFN0eWxl
ZEVsZW1lbnQsIHB1YmxpYyBTVkdMYW5nU3BhY2UsIHB1YmxpYyBET01MaXZlUHJvcGVydHlPYnNl
cnZlciB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTVkdFbGVtZW50KTsKIHB1YmxpYzoK
ICAgICBib29sIGlzT3V0ZXJtb3N0U1ZHU1ZHRWxlbWVudCgpIGNvbnN0OwpAQCAtMTM2LDEwICsx
MzYsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc3luY2hyb25pemVBbGxBdHRyaWJ1dGVzKCk7CiAg
ICAgc3RhdGljIHZvaWQgc3luY2hyb25pemVBbGxBbmltYXRlZFNWR0F0dHJpYnV0ZShTVkdFbGVt
ZW50Jik7CiAKLSAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5Kikgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqKSBv
dmVycmlkZTsKICAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR0FuaW1hdGVkUHJvcGVy
dHkmKTsKIAotICAgIGNvbnN0IFNWR0VsZW1lbnQqIGF0dHJpYnV0ZUNvbnRleHRFbGVtZW50KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdGhpczsgfQorICAgIGNvbnN0IFNWR0VsZW1lbnQqIHBy
b3BlcnR5U1ZHQ29udGV4dEVsZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0aGlzOyB9
CiAgICAgU1ZHUHJvcGVydHlBbmltYXRvckZhY3RvcnkmIHByb3BlcnR5QW5pbWF0b3JGYWN0b3J5
KCkgeyByZXR1cm4gKm1fcHJvcGVydHlBbmltYXRvckZhY3Rvcnk7IH0KICAgICBSZWZQdHI8U1ZH
QXR0cmlidXRlQW5pbWF0b3I+IGNyZWF0ZUFuaW1hdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBB
bmltYXRpb25Nb2RlLCBDYWxjTW9kZSwgYm9vbCBpc0FjY3VtdWxhdGVkLCBib29sIGlzQWRkaXRp
dmUpOwogICAgIHZvaWQgYW5pbWF0b3JXaWxsQmVEZWxldGVkKGNvbnN0IFF1YWxpZmllZE5hbWUm
KTsKQEAgLTE5Niw2ICsxOTYsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdQ
cm9wZXJ0eUFuaW1hdG9yRmFjdG9yeT4gbV9wcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeTsKIAogICAg
IFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKKyAgICBIYXNo
U2V0PFF1YWxpZmllZE5hbWU+IG1fZGlydHlBdHRyaWJ1dGVzOwogICAgIFJlZjxTVkdBbmltYXRl
ZFN0cmluZz4gbV9jbGFzc05hbWUgeyBTVkdBbmltYXRlZFN0cmluZzo6Y3JlYXRlKHRoaXMpIH07
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwCmluZGV4IDFmNDdkMzY4
ZTkwMzFmNDRhMGJlMGZkMjQzNTBjNzJkMTQxZjY1NDkuLmE0NDBjNmMyYjMyOWE2M2UxMDk4ZjYz
ZGQ4MWY5OTczMDlkYzIyYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRU
b1ZpZXdCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3Bw
CkBAIC0zNCw5ICszNCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNWR0ZpdFRvVmll
d0JveDo6U1ZHRml0VG9WaWV3Qm94KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBTVkdQcm9w
ZXJ0eUFjY2VzcyBhY2Nlc3MpCi0gICAgOiBtX3ZpZXdCb3goU1ZHQW5pbWF0ZWRSZWN0OjpjcmVh
dGUoY29udGV4dEVsZW1lbnQsIGFjY2VzcykpCi0gICAgLCBtX3ByZXNlcnZlQXNwZWN0UmF0aW8o
U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVhdGUoY29udGV4dEVsZW1lbnQsIGFj
Y2VzcykpCitTVkdGaXRUb1ZpZXdCb3g6OlNWR0ZpdFRvVmlld0JveChTVkdFbGVtZW50KiBjb250
ZXh0RWxlbWVudCkKKyAgICA6IG1fdmlld0JveChTVkdBbmltYXRlZFJlY3Q6OmNyZWF0ZShzdGF0
aWNfY2FzdDx2b2lkKj4oY29udGV4dEVsZW1lbnQpID09IHRoaXMgPyBjb250ZXh0RWxlbWVudCA6
IG51bGxwdHIpKQorICAgICwgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKFNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpbzo6Y3JlYXRlKHN0YXRpY19jYXN0PHZvaWQqPihjb250ZXh0RWxlbWVudCkg
PT0gdGhpcyA/IGNvbnRleHRFbGVtZW50IDogbnVsbHB0cikpCisgICAgLCBtX2NvbnRleHRFbGVt
ZW50KGNvbnRleHRFbGVtZW50KQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxh
ZzsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10gewpAQCAtMTA0LDI5ICsxMDUsMjkg
QEAgYm9vbCBTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlVmlld0JveChjb25zdCBVQ2hhciomIGMsIGNv
bnN0IFVDaGFyKiBlbmQsIEZsb2F0UmVjdCYKICAgICBib29sIHZhbGlkID0gcGFyc2VOdW1iZXIo
YywgZW5kLCB4KSAmJiBwYXJzZU51bWJlcihjLCBlbmQsIHkpICYmIHBhcnNlTnVtYmVyKGMsIGVu
ZCwgd2lkdGgpICYmIHBhcnNlTnVtYmVyKGMsIGVuZCwgaGVpZ2h0LCBmYWxzZSk7CiAKICAgICBp
ZiAodmFsaWRhdGUpIHsKLSAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gbV92aWV3Qm94LT5j
b250ZXh0RWxlbWVudCgpLT5kb2N1bWVudCgpOworICAgICAgICBhdXRvJiBkb2N1bWVudEV4dGVu
c2lvbnMgPSBtX2NvbnRleHRFbGVtZW50LT5kb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMo
KTsKIAogICAgICAgICBpZiAoIXZhbGlkKSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5hY2Nlc3NT
VkdFeHRlbnNpb25zKCkucmVwb3J0V2FybmluZygiUHJvYmxlbSBwYXJzaW5nIHZpZXdCb3g9XCIi
ICsgc3RyICsgIlwiIik7CisgICAgICAgICAgICBkb2N1bWVudEV4dGVuc2lvbnMucmVwb3J0V2Fy
bmluZygiUHJvYmxlbSBwYXJzaW5nIHZpZXdCb3g9XCIiICsgc3RyICsgIlwiIik7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBDaGVjayB0aGF0IHdp
ZHRoIGlzIHBvc2l0aXZlLgogICAgICAgICBpZiAod2lkdGggPCAwLjApIHsKLSAgICAgICAgICAg
IGRvY3VtZW50LmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5yZXBvcnRFcnJvcigiQSBuZWdhdGl2ZSB2
YWx1ZSBmb3IgVmlld0JveCB3aWR0aCBpcyBub3QgYWxsb3dlZCIpOworICAgICAgICAgICAgZG9j
dW1lbnRFeHRlbnNpb25zLnJlcG9ydEVycm9yKCJBIG5lZ2F0aXZlIHZhbHVlIGZvciBWaWV3Qm94
IHdpZHRoIGlzIG5vdCBhbGxvd2VkIik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIH0KIAogICAgICAgICAvLyBDaGVjayB0aGF0IGhlaWdodCBpcyBwb3NpdGl2ZS4KICAgICAg
ICAgaWYgKGhlaWdodCA8IDAuMCkgewotICAgICAgICAgICAgZG9jdW1lbnQuYWNjZXNzU1ZHRXh0
ZW5zaW9ucygpLnJlcG9ydEVycm9yKCJBIG5lZ2F0aXZlIHZhbHVlIGZvciBWaWV3Qm94IGhlaWdo
dCBpcyBub3QgYWxsb3dlZCIpOworICAgICAgICAgICAgZG9jdW1lbnRFeHRlbnNpb25zLnJlcG9y
dEVycm9yKCJBIG5lZ2F0aXZlIHZhbHVlIGZvciBWaWV3Qm94IGhlaWdodCBpcyBub3QgYWxsb3dl
ZCIpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKICAgICAgICAgLy8g
Tm90aGluZyBzaG91bGQgY29tZSBhZnRlciB0aGUgbGFzdCwgZm91cnRoIG51bWJlci4KICAgICAg
ICAgc2tpcE9wdGlvbmFsU1ZHU3BhY2VzKGMsIGVuZCk7CiAgICAgICAgIGlmIChjIDwgZW5kKSB7
Ci0gICAgICAgICAgICBkb2N1bWVudC5hY2Nlc3NTVkdFeHRlbnNpb25zKCkucmVwb3J0V2Fybmlu
ZygiUHJvYmxlbSBwYXJzaW5nIHZpZXdCb3g9XCIiICsgc3RyICsgIlwiIik7CisgICAgICAgICAg
ICBkb2N1bWVudEV4dGVuc2lvbnMucmVwb3J0V2FybmluZygiUHJvYmxlbSBwYXJzaW5nIHZpZXdC
b3g9XCIiICsgc3RyICsgIlwiIik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmgKaW5kZXggOTA3ZDY1NWNk
MWIxYjliMzcyYTIwZjgxODkyMzYwNDJlMjBmMGZkMC4uNTk2ZGZkYzFkMDU2N2EwNDdmNWI4OWNh
ZGE1ODQwN2JjNDlmYjQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpdFRv
Vmlld0JveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guaApAQCAt
NTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNFbXB0eVZpZXdCb3goKSBjb25zdCB7
IHJldHVybiBtX2lzVmlld0JveFZhbGlkICYmIHZpZXdCb3goKS5pc0VtcHR5KCk7IH0KIAogcHJv
dGVjdGVkOgotICAgIFNWR0ZpdFRvVmlld0JveChTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwg
U1ZHUHJvcGVydHlBY2Nlc3MgPSBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRlKTsKKyAgICBT
VkdGaXRUb1ZpZXdCb3goU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpOwogCiAgICAgc3RhdGlj
IGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1l
KSB7IHJldHVybiBQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5h
bWUpOyB9CiAKQEAgLTcxLDYgKzcxLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBSZWY8
U1ZHQW5pbWF0ZWRSZWN0PiBtX3ZpZXdCb3g7CiAgICAgUmVmPFNWR0FuaW1hdGVkUHJlc2VydmVB
c3BlY3RSYXRpbz4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOworICAgIFNWR0VsZW1lbnQqIG1fY29u
dGV4dEVsZW1lbnQgeyBudWxscHRyIH07CiAgICAgYm9vbCBtX2lzVmlld0JveFZhbGlkIHsgZmFs
c2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaAppbmRleCBlZDUwMDM4MmM1ZmU4MzgxZDQ3
Nzk2OGI5MDkzMDBmNmJmYzRkOTJkLi42MGE1YjU2ZTUzYmFkMGEwYmEwMTNhNDY0NjU3YmE2MWZh
MThlNmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oCkBAIC02Miw5ICs2Miw5IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVuZ3RoKHZhbHVlKSk7CiAgICAgfQog
Ci0gICAgc3RhdGljIFJlZjxTVkdMZW5ndGg+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25l
ciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBjb25zdCBTVkdMZW5ndGhWYWx1ZSYgdmFsdWUg
PSB7IH0pCisgICAgc3RhdGljIFJlZjxTVkdMZW5ndGg+IGNyZWF0ZShET01MaXZlUHJvcGVydHlP
YnNlcnZlciogb2JzZXJ2ZXIsIGNvbnN0IFNWR0xlbmd0aFZhbHVlJiB2YWx1ZSA9IHsgfSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aChvd25lciwgYWNjZXNz
LCB2YWx1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGgob2JzZXJ2
ZXIsIHZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KQEAgLTg3LDcg
Kzg3LDcgQEAgcHVibGljOgogCiAgICAgRXhjZXB0aW9uT3I8ZmxvYXQ+IHZhbHVlRm9yQmluZGlu
Z3MoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdmFsdWUudmFsdWVGb3JCaW5kaW5ncyhTVkdM
ZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9KTsKKyAgICAgICAgcmV0dXJuIG1fdmFs
dWUudmFsdWVGb3JCaW5kaW5ncyhTVkdMZW5ndGhDb250ZXh0IHsgc3ZnQ29udGV4dEVsZW1lbnQo
KSB9KTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUZvckJpbmRpbmdz
KGZsb2F0IHZhbHVlKQpAQCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1Jl
YWRPbmx5KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25B
bGxvd2VkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IG1fdmFsdWUuc2V0VmFsdWUo
U1ZHTGVuZ3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSwgdmFsdWUpOworICAgICAgICBh
dXRvIHJlc3VsdCA9IG1fdmFsdWUuc2V0VmFsdWUoU1ZHTGVuZ3RoQ29udGV4dCB7IHN2Z0NvbnRl
eHRFbGVtZW50KCkgfSwgdmFsdWUpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigp
KQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgCkBAIC0xNTIsNyArMTUyLDcg
QEAgcHVibGljOgogICAgICAgICBpZiAodW5pdFR5cGUgPT0gU1ZHX0xFTkdUSFRZUEVfVU5LTk9X
TiB8fCB1bml0VHlwZSA+IFNWR19MRU5HVEhUWVBFX1BDKQogICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBt
X3ZhbHVlLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKFNWR0xlbmd0aENvbnRleHQgeyBjb250ZXh0
RWxlbWVudCgpIH0sIHN0YXRpY19jYXN0PFNWR0xlbmd0aFR5cGU+KHVuaXRUeXBlKSk7CisgICAg
ICAgIGF1dG8gcmVzdWx0ID0gbV92YWx1ZS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyhTVkdMZW5n
dGhDb250ZXh0IHsgc3ZnQ29udGV4dEVsZW1lbnQoKSB9LCBzdGF0aWNfY2FzdDxTVkdMZW5ndGhU
eXBlPih1bml0VHlwZSkpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xlbmd0aExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgKaW5k
ZXggNWViNTcwMWM2NzQ2ODc5MmQwNTYyYzE1YjUyMTZiNDkyYzAyMWVkOC4uMzJkNTg3NGQyOTM3
MjQ2YzcwNTIxMzkxM2IxNGYwNDU2M2ZmZGUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xlbmd0aExpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlz
dC5oCkBAIC00MCwxNCArNDAsMTQgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdMZW5ndGhMaXN0KGxlbmd0aE1vZGUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVm
PFNWR0xlbmd0aExpc3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVy
dHlBY2Nlc3MgYWNjZXNzLCBTVkdMZW5ndGhNb2RlIGxlbmd0aE1vZGUpCisgICAgc3RhdGljIFJl
ZjxTVkdMZW5ndGhMaXN0PiBjcmVhdGUoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVy
LCBTVkdMZW5ndGhNb2RlIGxlbmd0aE1vZGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdMZW5ndGhMaXN0KG93bmVyLCBhY2Nlc3MsIGxlbmd0aE1vZGUpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVuZ3RoTGlzdChvYnNlcnZlciwgbGVuZ3RoTW9k
ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoTGlzdD4gY3JlYXRlKGNvbnN0
IFNWR0xlbmd0aExpc3QmIG90aGVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCisgICAgc3Rh
dGljIFJlZjxTVkdMZW5ndGhMaXN0PiBjcmVhdGUoY29uc3QgU1ZHTGVuZ3RoTGlzdCYgb3RoZXIp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGhMaXN0KG90aGVy
LCBhY2Nlc3MpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVuZ3RoTGlzdChv
dGhlcikpOwogICAgIH0KIAogICAgIFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSgpIGNvbnN0IHsg
cmV0dXJuIG1fbGVuZ3RoTW9kZTsgfQpAQCAtODYsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICBpZiAoYnVpbGRlci5sZW5ndGgoKSkKICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZCgnICcpOwogCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZChsZW5ndGgtPnZhbHVlKCkudmFs
dWVBc1N0cmluZygpKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGxlbmd0aC0+dmFsdWVB
c1N0cmluZygpKTsKICAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7CkBAIC05OCwxNCArOTgsMTQgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgfQogCi0gICAgU1ZH
TGVuZ3RoTGlzdChTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNj
ZXNzLCBTVkdMZW5ndGhNb2RlIGxlbmd0aE1vZGUpCi0gICAgICAgIDogQmFzZShvd25lciwgYWNj
ZXNzKQorICAgIFNWR0xlbmd0aExpc3QoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVy
LCBTVkdMZW5ndGhNb2RlIGxlbmd0aE1vZGUpCisgICAgICAgIDogQmFzZShvYnNlcnZlcikKICAg
ICAgICAgLCBtX2xlbmd0aE1vZGUobGVuZ3RoTW9kZSkKICAgICB7CiAgICAgfQogCi0gICAgU1ZH
TGVuZ3RoTGlzdChjb25zdCBTVkdMZW5ndGhMaXN0JiBvdGhlciwgU1ZHUHJvcGVydHlBY2Nlc3Mg
YWNjZXNzKQotICAgICAgICA6IEJhc2Uob3RoZXIsIGFjY2VzcykKKyAgICBTVkdMZW5ndGhMaXN0
KGNvbnN0IFNWR0xlbmd0aExpc3QmIG90aGVyKQorICAgICAgICA6IEJhc2Uob3RoZXIpCiAgICAg
ICAgICwgbV9sZW5ndGhNb2RlKG90aGVyLmxlbmd0aE1vZGUoKSkKICAgICB7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR01hdHJpeC5oCmluZGV4IGQ4YzM3ZGNiMjZkYmU0NTE4YWM5MWZkMmUxYzc1ZTk0MmMx
ZDIyNzYuLmYwMDM4YzRjMDdlMGFmYzVlN2I5ZjJiYmJkNTgwZjhhZGFkYTI3OWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTWF0cml4LmgKQEAgLTQyLDkgKzQyLDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTVkdNYXRyaXgodmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVm
PFNWR01hdHJpeD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFj
Y2VzcyBhY2Nlc3MsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdmFsdWUgPSB7IH0pCisgICAgc3Rh
dGljIFJlZjxTVkdNYXRyaXg+IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2
ZXIsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdmFsdWUgPSB7IH0pCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXgob3duZXIsIGFjY2VzcywgdmFsdWUpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTWF0cml4KG9ic2VydmVyLCB2YWx1ZSkpOwog
ICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTnVtYmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgKaW5k
ZXggMjNjODJlNDRlNjc3ZDhkMzYwYzk2MTU0Yzc5NWRhYjg3NzZhMWZhNC4uNTk4YTBmNTk2MTk5
MmE0Yjc5ZjcwODllNDQ4OWI2MzU2MzIxZWRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR051bWJlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaApAQCAt
NDAsOSArNDAsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051
bWJlcih2YWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyPiBjcmVhdGUo
U1ZHUHJvcGVydHlPd25lciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcywgZmxvYXQg
dmFsdWUgPSAwKQorICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyPiBjcmVhdGUoRE9NTGl2ZVByb3Bl
cnR5T2JzZXJ2ZXIqIG9ic2VydmVyLCBmbG9hdCB2YWx1ZSA9IDApCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXIob3duZXIsIGFjY2VzcywgdmFsdWUpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyKG9ic2VydmVyLCB2YWx1ZSkpOwog
ICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxp
c3QuaAppbmRleCA1YjVkNTdlODQ2ZjQzMWFhZjVjMDhkYmM5YTRjMzRhYmU4NGQ2ZDFmLi42ODFi
NGRjZWY4Y2VjOTM1MTFiZTA1OTIwNTRjZjA4MWU5MDM3NzU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdO
dW1iZXJMaXN0LmgKQEAgLTQwLDE0ICs0MCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNWR051bWJlckxpc3QoKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxT
VkdOdW1iZXJMaXN0PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIsIFNWR1Byb3BlcnR5
QWNjZXNzIGFjY2VzcykKKyAgICBzdGF0aWMgUmVmPFNWR051bWJlckxpc3Q+IGNyZWF0ZShET01M
aXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTVkdOdW1iZXJMaXN0KG93bmVyLCBhY2Nlc3MpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyTGlzdChvYnNlcnZlcikpOwogICAgIH0KIAotICAgIHN0
YXRpYyBSZWY8U1ZHTnVtYmVyTGlzdD4gY3JlYXRlKGNvbnN0IFNWR051bWJlckxpc3QmIG90aGVy
LCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCisgICAgc3RhdGljIFJlZjxTVkdOdW1iZXJMaXN0
PiBjcmVhdGUoY29uc3QgU1ZHTnVtYmVyTGlzdCYgb3RoZXIpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXJMaXN0KG90aGVyLCBhY2Nlc3MpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyTGlzdChvdGhlcikpOwogICAgIH0KIAogICAg
IGJvb2wgcGFyc2UoY29uc3QgU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdM
aXN0LmgKaW5kZXggOTRmNmYzOWU0ZTFmMWI2NzQ0MzNjYTI1MDE1MzgxOGY0ZjYyZmU0Mi4uZTY2
ZjhhMGE3YjBjMDBlNmI2NDQwM2E1MDNjYWZiMTU0MTIxNDE1NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BhdGhTZWdMaXN0LmgKQEAgLTM2LDE0ICszNiwxNCBAQCBjbGFzcyBTVkdQYXRoU2VnTGlzdCBm
aW5hbCA6IHB1YmxpYyBTVkdQcm9wZXJ0eUxpc3Q8U1ZHUGF0aFNlZz4gewogICAgIHVzaW5nIEJh
c2U6OkJhc2U7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVh
dGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKKyAg
ICBzdGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2
ZXIqIG9ic2VydmVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0
aFNlZ0xpc3Qob3duZXIsIGFjY2VzcykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdQYXRoU2VnTGlzdChvYnNlcnZlcikpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHUGF0
aFNlZ0xpc3Q+IGNyZWF0ZShjb25zdCBTVkdQYXRoU2VnTGlzdCYgb3RoZXIsIFNWR1Byb3BlcnR5
QWNjZXNzIGFjY2VzcykKKyAgICBzdGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUoY29u
c3QgU1ZHUGF0aFNlZ0xpc3QmIG90aGVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHUGF0aFNlZ0xpc3Qob3RoZXIsIGFjY2VzcykpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTVkdQYXRoU2VnTGlzdChvdGhlcikpOwogICAgIH0KIAogICAgIHN0YXRpYyBS
ZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShSZWY8U1ZHUGF0aFNlZz4mJiBuZXdJdGVtKQpAQCAt
MTU5LDggKzE1OSw4IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHUGF0aFNl
Z0xpc3QoY29uc3QgU1ZHUGF0aFNlZ0xpc3QmIG90aGVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nl
c3MpCi0gICAgICAgIDogQmFzZShvdGhlci5vd25lcigpLCBhY2Nlc3MpCisgICAgU1ZHUGF0aFNl
Z0xpc3QoY29uc3QgU1ZHUGF0aFNlZ0xpc3QmIG90aGVyKQorICAgICAgICA6IEJhc2Uob3RoZXIu
b2JzZXJ2ZXIoKSkKICAgICAgICAgLCBtX3BhdGhCeXRlU3RyZWFtKG90aGVyLnBhdGhCeXRlU3Ry
ZWFtKCkpCiAgICAgewogICAgIH0KQEAgLTE3Miw3ICsxNzIsNyBAQCBwcml2YXRlOgogICAgIH0K
IAogICAgIC8vIENhbGxlZCB3aGVuIGNoYW5naW5nIGFuIGl0ZW0gaW4gdGhlIGxpc3QuCi0gICAg
dm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9wZXJ0eSogcHJvcGVydHkpIG92ZXJyaWRl
CisgICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqIHByb3BlcnR5
KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaXRlbXNXaWxsQ2hhbmdlKCk7CiAgICAgICAgIEJh
c2U6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKHByb3BlcnR5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExp
c3QuaAppbmRleCA4YzZjNTBiMGUzYmFjZTUzNmFlNTBlYmIyOGMxYjQ2ZTE1NzQ5ZTgxLi44OGEx
ODkzMzg3MWZkMmQ0MjkzOGQ2NTQ5ZDAxOWQxNTBiZTdiMzU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bv
aW50TGlzdC5oCkBAIC00MCwxNCArNDAsMTQgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTVkdQb2ludExpc3QoKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdQ
b2ludExpc3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nl
c3MgYWNjZXNzKQorICAgIHN0YXRpYyBSZWY8U1ZHUG9pbnRMaXN0PiBjcmVhdGUoRE9NTGl2ZVBy
b3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHUG9pbnRMaXN0KG93bmVyLCBhY2Nlc3MpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU1ZHUG9pbnRMaXN0KG9ic2VydmVyKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJl
ZjxTVkdQb2ludExpc3Q+IGNyZWF0ZShjb25zdCBTVkdQb2ludExpc3QmIG90aGVyLCBTVkdQcm9w
ZXJ0eUFjY2VzcyBhY2Nlc3MpCisgICAgc3RhdGljIFJlZjxTVkdQb2ludExpc3Q+IGNyZWF0ZShj
b25zdCBTVkdQb2ludExpc3QmIG90aGVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHUG9pbnRMaXN0KG90aGVyLCBhY2Nlc3MpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU1ZHUG9pbnRMaXN0KG90aGVyKSk7CiAgICAgfQogCiAgICAgYm9vbCBwYXJzZShj
b25zdCBTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1By
ZXNlcnZlQXNwZWN0UmF0aW8uaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvLmgKaW5kZXggMjcxN2FiZWJlMTAxOWFhYTBmM2FmNzYxZWIzNTFmOTE3Yjc4YWRkNi4u
ODM1NDkzZTc5NGMxZThmMjVkODk0N2IzOGRkYTI0YzYwOWJmNDZjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oCkBAIC0zNiw5ICszNiw5IEBAIGNsYXNz
IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8gOiBwdWJsaWMgU1ZHVmFsdWVQcm9wZXJ0eTxTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvVmFsCiAgICAgdXNpbmcgQmFzZTo6bV92YWx1ZTsKIAogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4gY3JlYXRlKFNWR1Byb3BlcnR5
T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIGNvbnN0IFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZSYgdmFsdWUgPSB7IH0pCisgICAgc3RhdGljIFJlZjxTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvPiBjcmVhdGUoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyLCBj
b25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHZhbHVlID0geyB9KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhvd25lciwg
YWNjZXNzLCB2YWx1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvKG9ic2VydmVyLCB2YWx1ZSkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb1ZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlLmgKaW5kZXggNDE1Yjg3MjNmOGQzMDg2NGMxYjNmZDc4OGNjM2I5ODliYWQ3ZWY5Yy4u
NTljODM3MTIzZjIxZGIyNjFmZmU3ODE2OWFkMDgyYjJhM2Y2ZTk4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaApAQCAtNzYsMTEgKzc2
LDQgQEAgcHJpdmF0ZToKICAgICBib29sIHBhcnNlSW50ZXJuYWwoY29uc3QgVUNoYXIqJiBjdXJy
UGFyYW0sIGNvbnN0IFVDaGFyKiBlbmQsIGJvb2wgdmFsaWRhdGUpOwogfTsKIAotdGVtcGxhdGU8
PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPiB7
Ci0gICAgc3RhdGljIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSBpbml0aWFsVmFsdWUoKSB7
IHJldHVybiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoKTsgfQotICAgIHN0YXRpYyBTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykg
eyByZXR1cm4gU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKHN0cmluZyk7IH0KLSAgICBzdGF0
aWMgT3B0aW9uYWw8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPiBwYXJzZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJu
IGluaXRpYWxWYWx1ZSgpOyB9Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHR5cGUpIHsgcmV0dXJuIHR5cGUudmFsdWVBc1N0cmlu
ZygpOyB9Ci19OwotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUmVjdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3QuaAppbmRl
eCA5MDAxOGUxODZiMTkyYWMzYmU2ZjA1NTBkZjgxMTYyN2ZiZDdlOWYyLi5iYWU3N2JmZWYwMjE5
NTEzZWVmMDA5OTY5YjMzYzJmYWRjZjM5M2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmgKQEAgLTM2LDkg
KzM2LDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdSZWN0KHZh
bHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdSZWN0PiBjcmVhdGUoU1ZHUHJvcGVy
dHlPd25lciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcywgY29uc3QgRmxvYXRSZWN0
JiB2YWx1ZSA9IHsgfSkKKyAgICBzdGF0aWMgUmVmPFNWR1JlY3Q+IGNyZWF0ZShET01MaXZlUHJv
cGVydHlPYnNlcnZlciogb2JzZXJ2ZXIsIGNvbnN0IEZsb2F0UmVjdCYgdmFsdWUgPSB7IH0pCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdSZWN0KG93bmVyLCBhY2Nlc3Ms
IHZhbHVlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1JlY3Qob2JzZXJ2ZXIs
IHZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3RyaW5nTGlzdC5oCmluZGV4IDNiMzc2NWM1ZDllMDc0NjkwMGEyZDc3OTc5ZmZkZjU4YjQz
YWRkMzUuLjExMWYwNjdlNjkyNjY3YjA2ZjJjOGRhOGZhYjI3N2QyN2VhMjdiNzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0cmluZ0xpc3QuaApAQCAtMzcsOSArMzcsOSBAQCBjbGFzcyBTVkdTdHJpbmdM
aXN0IGZpbmFsIDogcHVibGljIFNWR1ByaW1pdGl2ZUxpc3Q8U3RyaW5nPiB7CiAgICAgdXNpbmcg
QmFzZTo6bV9pdGVtczsKIAogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHU3RyaW5nTGlzdD4g
Y3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93bmVyKQorICAgIHN0YXRpYyBSZWY8U1ZHU3RyaW5n
TGlzdD4gY3JlYXRlKERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcikKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1N0cmluZ0xpc3Qob3duZXIpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHU3RyaW5nTGlzdChvYnNlcnZlcikpOwogICAgIH0K
IAogICAgIHZvaWQgcmVzZXQoY29uc3QgU3RyaW5nJiBzdHJpbmcpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJh
bnNmb3JtLmgKaW5kZXggNmEyOWM3MmNmM2U3ZjMxM2Y3MDk2NTdhNDAxMjQ4MWMyMjNiOGRjZC4u
MzNkYjY4ZjQyOWFhN2ZhM2ZlZWFkYzIyOWNkMTk2ODQ1ZTZmY2JhNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUcmFuc2Zvcm0uaApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIFNWR1RyYW5zZm9ybSA6IHB1YmxpYyBTVkdWYWx1ZVByb3BlcnR5PFNWR1RyYW5zZm9y
bVZhbHVlPiwgcHVibGljIFNWR1Byb3BlcnR5T3duZXIgeworY2xhc3MgU1ZHVHJhbnNmb3JtIDog
cHVibGljIFNWR1ZhbHVlUHJvcGVydHk8U1ZHVHJhbnNmb3JtVmFsdWU+LCBwdWJsaWMgRE9NTGl2
ZVByb3BlcnR5T2JzZXJ2ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3Jt
PiBjcmVhdGUoU1ZHVHJhbnNmb3JtVmFsdWU6OlNWR1RyYW5zZm9ybVR5cGUgdHlwZSkKICAgICB7
CkBAIC0xMzQsMTcgKzEzNCwxNyBAQCBwcml2YXRlOgogICAgIHVzaW5nIEJhc2UgPSBTVkdWYWx1
ZVByb3BlcnR5PFNWR1RyYW5zZm9ybVZhbHVlPjsKIAogICAgIFNWR1RyYW5zZm9ybShTVkdUcmFu
c2Zvcm1WYWx1ZTo6U1ZHVHJhbnNmb3JtVHlwZSB0eXBlLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
IHRyYW5zZm9ybSA9IHsgfSwgZmxvYXQgYW5nbGUgPSAwLCBjb25zdCBGbG9hdFBvaW50JiByb3Rh
dGlvbkNlbnRlciA9IHsgfSkKLSAgICAgICAgOiBCYXNlKFNWR1RyYW5zZm9ybVZhbHVlKHR5cGUs
IFNWR01hdHJpeDo6Y3JlYXRlKHRoaXMsIFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUsIHRy
YW5zZm9ybSksIGFuZ2xlLCByb3RhdGlvbkNlbnRlcikpCisgICAgICAgIDogQmFzZShTVkdUcmFu
c2Zvcm1WYWx1ZSh0eXBlLCBTVkdNYXRyaXg6OmNyZWF0ZSh0aGlzLCB0cmFuc2Zvcm0pLCBhbmds
ZSwgcm90YXRpb25DZW50ZXIpKQogICAgIHsKICAgICB9CiAKLSAgICBTVkdQcm9wZXJ0eU93bmVy
KiBvd25lcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fb3duZXI7IH0KKyAgICBET01MaXZl
UHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX29i
c2VydmVyOyB9CiAKLSAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5KiBw
cm9wZXJ0eSkgb3ZlcnJpZGUKKyAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKERPTUxpdmVQ
cm9wZXJ0eSogcHJvcGVydHkpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VE
KHByb3BlcnR5LCBwcm9wZXJ0eSA9PSBtX3ZhbHVlLm1hdHJpeCgpLnB0cigpKTsKLSAgICAgICAg
aWYgKG93bmVyKCkpCi0gICAgICAgICAgICBvd25lcigpLT5jb21taXRQcm9wZXJ0eUNoYW5nZSh0
aGlzKTsKKyAgICAgICAgaWYgKG9ic2VydmVyKCkpCisgICAgICAgICAgICBvYnNlcnZlcigpLT5j
b21taXRQcm9wZXJ0eUNoYW5nZSh0aGlzKTsKICAgICAgICAgbV92YWx1ZS5tYXRyaXhEaWRDaGFu
Z2UoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zv
cm1MaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oCmluZGV4IDU0
NGQ2MGIyZTYzNWMxYzIwOTkzNGVlNDM1Y2Y0MTI1ZTZhNzFmMmIuLmU2MDQ1ZWQyNTYyMzIxZTkx
NDE2NGEwZmIyMDQ5NzQ4NzEwNWUyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUcmFuc2Zvcm1MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxp
c3QuaApAQCAtMzgsMTQgKzM4LDE0IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHVHJhbnNmb3JtTGlzdCgpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1Ry
YW5zZm9ybUxpc3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlB
Y2Nlc3MgYWNjZXNzKQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtTGlzdD4gY3JlYXRlKERP
TUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNWR1RyYW5zZm9ybUxpc3Qob3duZXIsIGFjY2VzcykpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdUcmFuc2Zvcm1MaXN0KG9ic2VydmVyKSk7CiAgICAgfQog
Ci0gICAgc3RhdGljIFJlZjxTVkdUcmFuc2Zvcm1MaXN0PiBjcmVhdGUoY29uc3QgU1ZHVHJhbnNm
b3JtTGlzdCYgb3RoZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKKyAgICBzdGF0aWMgUmVm
PFNWR1RyYW5zZm9ybUxpc3Q+IGNyZWF0ZShjb25zdCBTVkdUcmFuc2Zvcm1MaXN0JiBvdGhlcikK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RyYW5zZm9ybUxpc3Qob3Ro
ZXIsIGFjY2VzcykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdUcmFuc2Zvcm1M
aXN0KG90aGVyKSk7CiAgICAgfQogCiAgICAgRXhjZXB0aW9uT3I8UmVmPFNWR1RyYW5zZm9ybT4+
IGNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoY29uc3QgUmVmPFNWR01hdHJpeD4mIG1hdHJp
eCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCmluZGV4IDhmNDIzNTE2YjViZGJjNTI4N2Nk
YTQ0YWRmNDlmYzYxOGRkYzMyZWMuLjUzY2MxNWRjOTBlNzdjYTkxMjRmNmNhZmEyOGRhMWFjNTA1
OWNhZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcApAQCAtMzIsOSArMzIsOCBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBTVkdWaWV3U3BlYzo6U1ZHVmlld1NwZWMoU1ZHRWxlbWVu
dCYgY29udGV4dEVsZW1lbnQpCi0gICAgOiBTVkdGaXRUb1ZpZXdCb3goJmNvbnRleHRFbGVtZW50
LCBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZE9ubHkpCisgICAgOiBTVkdGaXRUb1ZpZXdCb3goJmNv
bnRleHRFbGVtZW50KQogICAgICwgbV9jb250ZXh0RWxlbWVudChtYWtlV2Vha1B0cihjb250ZXh0
RWxlbWVudCkpCi0gICAgLCBtX3RyYW5zZm9ybShTVkdUcmFuc2Zvcm1MaXN0OjpjcmVhdGUoJmNv
bnRleHRFbGVtZW50LCBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZE9ubHkpKQogewogICAgIHN0YXRp
YyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywg
W10gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuaAppbmRleCAyZTdlZjk3ODZjMWE4ODZmZDI1YWNm
ZWEwMzdmYzg1MGQ3OWRlNTIwLi42ZWZjMDlmOTgzYzJjNDNjNmEzZDg1NWIwMmQzNDIyMjAwMzgy
MWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuaApAQCAtNTUsNyArNTUsNyBAQCBwcml2YXRl
OgogCiAgICAgV2Vha1B0cjxTVkdFbGVtZW50PiBtX2NvbnRleHRFbGVtZW50OwogICAgIFN0cmlu
ZyBtX3ZpZXdUYXJnZXRTdHJpbmc7Ci0gICAgUmVmPFNWR1RyYW5zZm9ybUxpc3Q+IG1fdHJhbnNm
b3JtOworICAgIFJlZjxTVkdUcmFuc2Zvcm1MaXN0PiBtX3RyYW5zZm9ybSB7IFNWR1RyYW5zZm9y
bUxpc3Q6OmNyZWF0ZSgpIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZERlY29yYXRlZFBy
b3BlcnR5LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZERlY29y
YXRlZFByb3BlcnR5LmgKaW5kZXggY2ViYWEzNjNiZjUyN2JiYjM4ZTU2N2QzZTNkNDJiZjg0MzEw
MmE3NS4uNmRhOWQ0NDllY2NjZjE5ZjA5ZWNmYWFmY2E1YTU4YjljNzg0MWQ4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWREZWNvcmF0ZWRQcm9w
ZXJ0eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRGVj
b3JhdGVkUHJvcGVydHkuaApAQCAtOTcsMTUgKzk3LDcgQEAgcHVibGljOgogICAgIH0KIAogICAg
IC8vIE1hbmFnaW5nIHRoZSByZWxhdGlvbnNoaXAgd2l0aCB0aGUgb3duZXIuCi0gICAgdm9pZCBz
ZXREaXJ0eSgpIG92ZXJyaWRlIHsgbV9zdGF0ZSA9IFNWR1Byb3BlcnR5U3RhdGU6OkRpcnR5OyB9
Ci0gICAgYm9vbCBpc0RpcnR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zdGF0ZSA9PSBT
VkdQcm9wZXJ0eVN0YXRlOjpEaXJ0eTsgfQotICAgIE9wdGlvbmFsPFN0cmluZz4gc3luY2hyb25p
emUoKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAgaWYgKG1fc3RhdGUgPT0gU1ZHUHJvcGVydHlT
dGF0ZTo6Q2xlYW4pCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgICAgICBt
X3N0YXRlID0gU1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW47Ci0gICAgICAgIHJldHVybiBiYXNlVmFs
QXNTdHJpbmcoKTsKLSAgICB9CisgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBiYXNlVmFsQXNTdHJpbmcoKTsgfQogCiAgICAgLy8gVXNlZCBieSBSZW5k
ZXJTVkdFbGVtZW50cyBhbmQgRHVtcFJlbmRlclRyZWUuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
UHJvcGVydHlUeXBlPgpAQCAtMTMzLDcgKzEyNSw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHRGVjb3JhdGVkUHJvcGVydHk8RGVjb3JhdGlvblR5cGU+PiBt
X2Jhc2VWYWw7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNWR0RlY29yYXRlZFByb3BlcnR5PERlY29y
YXRpb25UeXBlPj4gbV9hbmltVmFsOwotICAgIFNWR1Byb3BlcnR5U3RhdGUgbV9zdGF0ZSB7IFNW
R1Byb3BlcnR5U3RhdGU6OkNsZWFuIH07CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5LmgK
aW5kZXggZTE0ZjY3OWYzMzYzZGRjNWE4ZjQxYzAzNWZkZjczNGViY2I5NjY2MS4uZDQ0ODBmNzRh
MmUzOTZkMThhOTM3ZGY3ODkzMGYzZDVmYmZiMTE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHku
aApAQCAtODcsOSArODcsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgLy8gTWFuYWdpbmcgdGhl
IHJlbGF0aW9uc2hpcCB3aXRoIHRoZSBvd25lci4KLSAgICB2b2lkIHNldERpcnR5KCkgb3ZlcnJp
ZGUgeyBtX2Jhc2VWYWwtPnNldERpcnR5KCk7IH0KLSAgICBib29sIGlzRGlydHkoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX2Jhc2VWYWwtPmlzRGlydHkoKTsgfQotICAgIE9wdGlvbmFsPFN0
cmluZz4gc3luY2hyb25pemUoKSBvdmVycmlkZSB7IHJldHVybiBtX2Jhc2VWYWwtPnN5bmNocm9u
aXplKCk7IH0KKyAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIGJhc2VWYWxBc1N0cmluZygpOyB9CiAKICAgICAvLyBVc2VkIGJ5IFJlbmRlclNWR0VsZW1l
bnRzIGFuZCBEdW1wUmVuZGVyVHJlZS4KICAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGN1cnJlbnRW
YWx1ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFByb3BlcnR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkUHJvcGVydHkuY3BwCmluZGV4IGVjMmYzYTQ4N2Y4MzBmMWM3MjZkMGY2YmU0Yzk0
MjJlYzhmMzAxZTguLmVkYTVjODRjMzVmYmM3YmQyNTRkMWFkZTJmYjI1ODE2NjU4M2RjM2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVy
dHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJv
cGVydHkuY3BwCkBAIC0zMCwxMiArMzAsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1T
VkdQcm9wZXJ0eU93bmVyKiBTVkdBbmltYXRlZFByb3BlcnR5Ojpvd25lcigpIGNvbnN0CitET01M
aXZlUHJvcGVydHlPYnNlcnZlciogU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6b2JzZXJ2ZXIoKSBjb25z
dAogewogICAgIHJldHVybiBtX2NvbnRleHRFbGVtZW50OwogfQogCi12b2lkIFNWR0FuaW1hdGVk
UHJvcGVydHk6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5KikKK3ZvaWQgU1ZHQW5p
bWF0ZWRQcm9wZXJ0eTo6Y29tbWl0UHJvcGVydHlDaGFuZ2UoRE9NTGl2ZVByb3BlcnR5KikKIHsK
ICAgICBpZiAoIW1fY29udGV4dEVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaAppbmRleCBj
NmY5MzJlNmRmNjljY2VmYWZjOTY1ZTMyY2Q1NjYyMGExZmMzMzY0Li5hMTA0MWU2MDUyOWRhMWZk
MjMxODYwZTI2MGI3MWNjZmI3MGM0YTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHUHJvcGVydHlPd25lci5oIgorI2luY2x1ZGUgIkRP
TUxpdmVQcm9wZXJ0eU9ic2VydmVyLmgiCiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
QEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgU1ZHRWxl
bWVudDsKIAotY2xhc3MgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSA6IHB1YmxpYyBSZWZDb3VudGVkPFNW
R0FuaW1hdGVkUHJvcGVydHk+LCBwdWJsaWMgU1ZHUHJvcGVydHlPd25lciB7CitjbGFzcyBTVkdB
bmltYXRlZFByb3BlcnR5IDogcHVibGljIFJlZkNvdW50ZWQ8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4s
IHB1YmxpYyBET01MaXZlUHJvcGVydHlPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+
U1ZHQW5pbWF0ZWRQcm9wZXJ0eSgpID0gZGVmYXVsdDsKICAgICAKQEAgLTQ3LDkgKzQ3LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGFuaW1WYWxBc1N0cmluZygpIGNvbnN0IHsgcmV0
dXJuIGVtcHR5U3RyaW5nKCk7IH0KICAgICAKICAgICAvLyBDb250cm9sIHRoZSBzeW5jaHJvbml6
YXRpb24gYmV0d2VlbiB0aGUgYXR0cmlidXRlIGFuZCBpdHMgcmVmbGVjdGlvbiBpbiBiYXNlVmFs
LgotICAgIHZpcnR1YWwgYm9vbCBpc0RpcnR5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0RGlydHkoKSB7IH0KLSAgICB2aXJ0dWFsIE9wdGlvbmFsPFN0cmlu
Zz4gc3luY2hyb25pemUoKSB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KKyAgICB2aXJ0dWFsIFN0
cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQogICAg
IAogICAgIC8vIENvbnRyb2wgdGhlIGFuaW1hdGlvbiBsaWZlIGN5Y2xlLgogICAgIGJvb2wgaXNB
bmltYXRpbmcoKSBjb25zdCB7IHJldHVybiBtX2lzQW5pbWF0aW5nOyB9CkBAIC02Niw4ICs2NCw4
IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogICAgIAotICAgIFNWR1Byb3BlcnR5T3duZXIq
IG93bmVyKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShT
VkdQcm9wZXJ0eSopIG92ZXJyaWRlOworICAgIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNl
cnZlcigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoRE9N
TGl2ZVByb3BlcnR5Kikgb3ZlcnJpZGU7CiAgICAgCiAgICAgU1ZHRWxlbWVudCogbV9jb250ZXh0
RWxlbWVudCB7IG51bGxwdHIgfTsKICAgICBib29sIG1faXNBbmltYXRpbmcgeyBmYWxzZSB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJv
cGVydHlMaXN0LmgKaW5kZXggZjQyNTVkN2Y2ZTc1YjE0YWNhODhhODgwYmZmMzZlNjU2MzgzZjcx
Ni4uYWQyMWE5ODA2YzU0YWZjMDZlY2FhNWE3MTMyNWNkYjIzMTNjYWYzMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TGlz
dC5oCkBAIC02OCw5ICs2OCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBNYW5hZ2luZyB0
aGUgcmVsYXRpb25zaGlwIHdpdGggdGhlIG93bmVyLgotICAgIHZvaWQgc2V0RGlydHkoKSBvdmVy
cmlkZSB7IG1fYmFzZVZhbC0+c2V0RGlydHkoKTsgfQotICAgIGJvb2wgaXNEaXJ0eSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fYmFzZVZhbC0+aXNEaXJ0eSgpOyB9Ci0gICAgT3B0aW9uYWw8
U3RyaW5nPiBzeW5jaHJvbml6ZSgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fYmFzZVZhbC0+c3luY2hy
b25pemUoKTsgfQorICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gYmFzZVZhbEFzU3RyaW5nKCk7IH0KIAogICAgIC8vIFVzZWQgYnkgUmVuZGVyU1ZHRWxl
bWVudHMgYW5kIER1bXBSZW5kZXJUcmVlLgogICAgIGNvbnN0IExpc3RUeXBlJiBjdXJyZW50VmFs
dWUoKSBjb25zdApAQCAtMTE3LDE5ICsxMTUsMjQgQEAgcHJvdGVjdGVkOgogICAgIHRlbXBsYXRl
PHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KICAgICBTVkdBbmltYXRlZFByb3BlcnR5TGlzdChTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCwgQXJndW1lbnRzJiYuLi4gYXJndW1lbnRzKQogICAgICAg
ICA6IFNWR0FuaW1hdGVkUHJvcGVydHkoY29udGV4dEVsZW1lbnQpCi0gICAgICAgICwgbV9iYXNl
VmFsKExpc3RUeXBlOjpjcmVhdGUodGhpcywgU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0ZSwg
c3RkOjpmb3J3YXJkPEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLikpCisgICAgICAgICwgbV9iYXNl
VmFsKExpc3RUeXBlOjpjcmVhdGUodGhpcywgc3RkOjpmb3J3YXJkPEFyZ3VtZW50cz4oYXJndW1l
bnRzKS4uLikpCiAgICAgewogICAgIH0KIAogICAgIFJlZlB0cjxMaXN0VHlwZT4mIGVuc3VyZUFu
aW1WYWwoKQogICAgIHsKICAgICAgICAgaWYgKCFtX2FuaW1WYWwpCi0gICAgICAgICAgICBtX2Fu
aW1WYWwgPSBMaXN0VHlwZTo6Y3JlYXRlKG1fYmFzZVZhbCwgU1ZHUHJvcGVydHlBY2Nlc3M6OlJl
YWRPbmx5KTsKKyAgICAgICAgICAgIG1fYW5pbVZhbCA9IExpc3RUeXBlOjpjcmVhdGUobV9iYXNl
VmFsLmdldCgpKTsKICAgICAgICAgcmV0dXJuIG1fYW5pbVZhbDsKICAgICB9CiAKKyAgICBib29s
IGlzUHJvcGVydHlSZWFkT25seShjb25zdCBET01MaXZlUHJvcGVydHkmIHByb3BlcnR5KSBjb25z
dCBvdmVycmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYW5pbVZhbCA9PSAmcHJvcGVydHk7
CisgICAgfQorCiAgICAgLy8gQ2FsbGVkIHdoZW4gbV9iYXNlVmFsIGNoYW5nZXMgb3IgYW4gaXRl
bSBpbiBtX2Jhc2VWYWwgY2hhbmdlcy4KLSAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKFNW
R1Byb3BlcnR5KiBwcm9wZXJ0eSkgb3ZlcnJpZGUKKyAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hh
bmdlKERPTUxpdmVQcm9wZXJ0eSogcHJvcGVydHkpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBp
ZiAobV9hbmltVmFsKQogICAgICAgICAgICAgKm1fYW5pbVZhbCA9IG1fYmFzZVZhbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlQ
YWlyQWNjZXNzb3JJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZFByb3BlcnR5UGFpckFjY2Vzc29ySW1wbC5oCmluZGV4IDRhMjY5ZmE1YThmMjdjZDMzNTVl
ODM0MDZmYTUzODUzZDk1Mjg5YzUuLjM1MGJjMDg4ZWI0NWE5NjA5OGVhOTI0N2EzNzU4NTgyOGVl
MTM1MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkUHJvcGVydHlQYWlyQWNjZXNzb3JJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3NvckltcGwuaApAQCAtNDYsMTcg
KzQ2LDExIEBAIHB1YmxpYzoKICAgICBjb25zdGV4cHIgc3RhdGljIGNvbnN0IFNWR01lbWJlckFj
Y2Vzc29yPE93bmVyVHlwZT4mIHNpbmdsZXRvbigpIHsgcmV0dXJuIEJhc2U6OnRlbXBsYXRlIHNp
bmdsZXRvbjxTVkdBbmltYXRlZEFuZ2xlT3JpZW50QWNjZXNzb3IsIHByb3BlcnR5MSwgcHJvcGVy
dHkyPigpOyB9CiAKIHByaXZhdGU6Ci0gICAgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZShj
b25zdCBPd25lclR5cGUmIG93bmVyKSBjb25zdCBmaW5hbAorICAgIFN0cmluZyB2YWx1ZUFzU3Ry
aW5nKGNvbnN0IE93bmVyVHlwZSYgb3duZXIpIGNvbnN0IGZpbmFsCiAgICAgewotICAgICAgICBi
b29sIGRpcnR5MSA9IHByb3BlcnR5MShvd25lciktPmlzRGlydHkoKTsKLSAgICAgICAgYm9vbCBk
aXJ0eTIgPSBwcm9wZXJ0eTIob3duZXIpLT5pc0RpcnR5KCk7Ci0gICAgICAgIGlmICghKGRpcnR5
MSB8fCBkaXJ0eTIpKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQogICAgICAg
ICBhdXRvIHR5cGUgPSBwcm9wZXJ0eTIob3duZXIpLT5iYXNlVmFsKCk7Ci0KLSAgICAgICAgU3Ry
aW5nIHN0cmluZzEgPSBkaXJ0eTEgPyAqcHJvcGVydHkxKG93bmVyKS0+c3luY2hyb25pemUoKSA6
IHByb3BlcnR5MShvd25lciktPmJhc2VWYWxBc1N0cmluZygpOwotICAgICAgICBTdHJpbmcgc3Ry
aW5nMiA9IGRpcnR5MiA/ICpwcm9wZXJ0eTIob3duZXIpLT5zeW5jaHJvbml6ZSgpIDogcHJvcGVy
dHkyKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5nKCk7CisgICAgICAgIFN0cmluZyBzdHJpbmcxID0g
cHJvcGVydHkxKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5nKCk7CisgICAgICAgIFN0cmluZyBzdHJp
bmcyID0gcHJvcGVydHkyKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5nKCk7CiAgICAgICAgIHJldHVy
biB0eXBlID09IFNWR01hcmtlck9yaWVudEF1dG8gfHwgdHlwZSA9PSBTVkdNYXJrZXJPcmllbnRB
dXRvU3RhcnRSZXZlcnNlID8gc3RyaW5nMiA6IHN0cmluZzE7CiAgICAgfQogCkBAIC04MywxNSAr
NzcsMTAgQEAgcHVibGljOgogICAgIGNvbnN0ZXhwciBzdGF0aWMgY29uc3QgU1ZHTWVtYmVyQWNj
ZXNzb3I8T3duZXJUeXBlPiYgc2luZ2xldG9uKCkgeyByZXR1cm4gQmFzZTo6dGVtcGxhdGUgc2lu
Z2xldG9uPFNWR0FuaW1hdGVkSW50ZWdlclBhaXJBY2Nlc3NvciwgcHJvcGVydHkxLCBwcm9wZXJ0
eTI+KCk7IH0KIAogcHJpdmF0ZToKLSAgICBPcHRpb25hbDxTdHJpbmc+IHN5bmNocm9uaXplKGNv
bnN0IE93bmVyVHlwZSYgb3duZXIpIGNvbnN0IGZpbmFsCisgICAgU3RyaW5nIHZhbHVlQXNTdHJp
bmcoY29uc3QgT3duZXJUeXBlJiBvd25lcikgY29uc3QgZmluYWwKICAgICB7Ci0gICAgICAgIGJv
b2wgZGlydHkxID0gcHJvcGVydHkxKG93bmVyKS0+aXNEaXJ0eSgpOwotICAgICAgICBib29sIGRp
cnR5MiA9IHByb3BlcnR5Mihvd25lciktPmlzRGlydHkoKTsKLSAgICAgICAgaWYgKCEoZGlydHkx
IHx8IGRpcnR5MikpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgICAg
IFN0cmluZyBzdHJpbmcxID0gZGlydHkxID8gKnByb3BlcnR5MShvd25lciktPnN5bmNocm9uaXpl
KCkgOiBwcm9wZXJ0eTEob3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsKLSAgICAgICAgU3RyaW5n
IHN0cmluZzIgPSBkaXJ0eTIgPyAqcHJvcGVydHkyKG93bmVyKS0+c3luY2hyb25pemUoKSA6IHBy
b3BlcnR5Mihvd25lciktPmJhc2VWYWxBc1N0cmluZygpOworICAgICAgICBTdHJpbmcgc3RyaW5n
MSA9IHByb3BlcnR5MShvd25lciktPmJhc2VWYWxBc1N0cmluZygpOworICAgICAgICBTdHJpbmcg
c3RyaW5nMiA9IHByb3BlcnR5Mihvd25lciktPmJhc2VWYWxBc1N0cmluZygpOwogICAgICAgICBy
ZXR1cm4gc3RyaW5nMSA9PSBzdHJpbmcyID8gc3RyaW5nMSA6IHN0cmluZzEgKyAiLCAiICsgc3Ry
aW5nMjsKICAgICB9CiAKQEAgLTExNCwxOSArMTAzLDE0IEBAIGNsYXNzIFNWR0FuaW1hdGVkTnVt
YmVyUGFpckFjY2Vzc29yIGZpbmFsIDogcHVibGljIFNWR0FuaW1hdGVkUHJvcGVydHlQYWlyQWNj
ZXNzCiAKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlOjpCYXNlOwotICAgIHRlbXBsYXRlPFJlZjxT
VkdBbmltYXRlZE51bWJlcj4gT3duZXJUeXBlOjoqcHJvcGVydHkxLCBSZWY8U1ZHQW5pbWF0ZWRO
dW1iZXI+IE93bmVyVHlwZTo6KnByb3BlcnR5MiA+CisgICAgdGVtcGxhdGU8UmVmPFNWR0FuaW1h
dGVkTnVtYmVyPiBPd25lclR5cGU6Oipwcm9wZXJ0eTEsIFJlZjxTVkdBbmltYXRlZE51bWJlcj4g
T3duZXJUeXBlOjoqcHJvcGVydHkyPgogICAgIGNvbnN0ZXhwciBzdGF0aWMgY29uc3QgU1ZHTWVt
YmVyQWNjZXNzb3I8T3duZXJUeXBlPiYgc2luZ2xldG9uKCkgeyByZXR1cm4gQmFzZTo6dGVtcGxh
dGUgc2luZ2xldG9uPFNWR0FuaW1hdGVkTnVtYmVyUGFpckFjY2Vzc29yLCBwcm9wZXJ0eTEsIHBy
b3BlcnR5Mj4oKTsgfQogCiBwcml2YXRlOgotICAgIE9wdGlvbmFsPFN0cmluZz4gc3luY2hyb25p
emUoY29uc3QgT3duZXJUeXBlJiBvd25lcikgY29uc3QgZmluYWwKKyAgICBTdHJpbmcgdmFsdWVB
c1N0cmluZyhjb25zdCBPd25lclR5cGUmIG93bmVyKSBjb25zdCBmaW5hbAogICAgIHsKLSAgICAg
ICAgYm9vbCBkaXJ0eTEgPSBwcm9wZXJ0eTEob3duZXIpLT5pc0RpcnR5KCk7Ci0gICAgICAgIGJv
b2wgZGlydHkyID0gcHJvcGVydHkyKG93bmVyKS0+aXNEaXJ0eSgpOwotICAgICAgICBpZiAoIShk
aXJ0eTEgfHwgZGlydHkyKSkKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAg
ICAgICAgU3RyaW5nIHN0cmluZzEgPSBkaXJ0eTEgPyAqcHJvcGVydHkxKG93bmVyKS0+c3luY2hy
b25pemUoKSA6IHByb3BlcnR5MShvd25lciktPmJhc2VWYWxBc1N0cmluZygpOwotICAgICAgICBT
dHJpbmcgc3RyaW5nMiA9IGRpcnR5MiA/ICpwcm9wZXJ0eTIob3duZXIpLT5zeW5jaHJvbml6ZSgp
IDogcHJvcGVydHkyKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5nKCk7CisgICAgICAgIFN0cmluZyBz
dHJpbmcxID0gcHJvcGVydHkxKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5nKCk7CisgICAgICAgIFN0
cmluZyBzdHJpbmcyID0gcHJvcGVydHkyKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5nKCk7CiAgICAg
ICAgIHJldHVybiBzdHJpbmcxID09IHN0cmluZzIgPyBzdHJpbmcxIDogc3RyaW5nMSArICIsICIg
KyBzdHJpbmcyOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFZhbHVlUHJvcGVydHkuaAppbmRleCBkZmRiMTcxYTBjYjgzZmM3
NTk2MDU5ZTc2MDRhN2ZkODkzNTFmNTI1Li43Zjk2NTI1YWI5M2I2NGNmMzdjY2E1MmFmNDdkZmI0
ZTZjMDFhZjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFZhbHVlUHJvcGVydHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZFZhbHVlUHJvcGVydHkuaApAQCAtODQsOSArODQsNyBAQCBwdWJsaWM6CiAg
ICAgfQogCiAgICAgLy8gTWFuYWdpbmcgdGhlIHJlbGF0aW9uc2hpcCB3aXRoIHRoZSBvd25lci4K
LSAgICB2b2lkIHNldERpcnR5KCkgb3ZlcnJpZGUgeyBtX2Jhc2VWYWwtPnNldERpcnR5KCk7IH0K
LSAgICBib29sIGlzRGlydHkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Jhc2VWYWwtPmlz
RGlydHkoKTsgfQotICAgIE9wdGlvbmFsPFN0cmluZz4gc3luY2hyb25pemUoKSBvdmVycmlkZSB7
IHJldHVybiBtX2Jhc2VWYWwtPnN5bmNocm9uaXplKCk7IH0KKyAgICBTdHJpbmcgdmFsdWVBc1N0
cmluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJhc2VWYWxBc1N0cmluZygpOyB9CiAKICAg
ICAvLyBVc2VkIGJ5IFJlbmRlclNWR0VsZW1lbnRzIGFuZCBEdW1wUmVuZGVyVHJlZS4KICAgICBj
b25zdCBWYWx1ZVR5cGUmIGN1cnJlbnRWYWx1ZSgpIGNvbnN0CkBAIC0xMzEsMjYgKzEyOSwyNCBA
QCBwcm90ZWN0ZWQ6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIFNW
R0FuaW1hdGVkVmFsdWVQcm9wZXJ0eShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgQXJndW1l
bnRzJiYuLi4gYXJndW1lbnRzKQogICAgICAgICA6IFNWR0FuaW1hdGVkUHJvcGVydHkoY29udGV4
dEVsZW1lbnQpCi0gICAgICAgICwgbV9iYXNlVmFsKFByb3BlcnR5VHlwZTo6Y3JlYXRlKHRoaXMs
IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUsIFZhbHVlVHlwZShzdGQ6OmZvcndhcmQ8QXJn
dW1lbnRzPihhcmd1bWVudHMpLi4uKSkpCi0gICAgewotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5
cGVuYW1lLi4uIEFyZ3VtZW50cz4KLSAgICBTVkdBbmltYXRlZFZhbHVlUHJvcGVydHkoU1ZHRWxl
bWVudCogY29udGV4dEVsZW1lbnQsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcywgQXJndW1lbnRz
JiYuLi4gYXJndW1lbnRzKQotICAgICAgICA6IFNWR0FuaW1hdGVkUHJvcGVydHkoY29udGV4dEVs
ZW1lbnQpCi0gICAgICAgICwgbV9iYXNlVmFsKFByb3BlcnR5VHlwZTo6Y3JlYXRlKHRoaXMsIGFj
Y2VzcywgVmFsdWVUeXBlKHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4pKSkK
KyAgICAgICAgLCBtX2Jhc2VWYWwoUHJvcGVydHlUeXBlOjpjcmVhdGUodGhpcywgVmFsdWVUeXBl
KHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4pKSkKICAgICB7CiAgICAgfQog
CiAgICAgUmVmUHRyPFByb3BlcnR5VHlwZT4mIGVuc3VyZUFuaW1WYWwoKQogICAgIHsKICAgICAg
ICAgaWYgKCFtX2FuaW1WYWwpCi0gICAgICAgICAgICBtX2FuaW1WYWwgPSBQcm9wZXJ0eVR5cGU6
OmNyZWF0ZSh0aGlzLCBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZE9ubHksIG1fYmFzZVZhbC0+dmFs
dWUoKSk7CisgICAgICAgICAgICBtX2FuaW1WYWwgPSBQcm9wZXJ0eVR5cGU6OmNyZWF0ZSh0aGlz
LCBtX2Jhc2VWYWwtPnZhbHVlKCkpOwogICAgICAgICByZXR1cm4gbV9hbmltVmFsOwogICAgIH0K
IAorICAgIGJvb2wgaXNQcm9wZXJ0eVJlYWRPbmx5KGNvbnN0IERPTUxpdmVQcm9wZXJ0eSYgcHJv
cGVydHkpIGNvbnN0IG92ZXJyaWRlCisgICAgeworICAgICAgICByZXR1cm4gbV9hbmltVmFsID09
ICZwcm9wZXJ0eTsKKyAgICB9CisKICAgICAvLyBDYWxsZWQgd2hlbiBtX2Jhc2VWYWwgY2hhbmdl
cy4KLSAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5KiBwcm9wZXJ0eSkg
b3ZlcnJpZGUKKyAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKERPTUxpdmVQcm9wZXJ0eSog
cHJvcGVydHkpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAobV9hbmltVmFsKQogICAgICAg
ICAgICAgbV9hbmltVmFsLT5zZXRWYWx1ZShtX2Jhc2VWYWwtPnZhbHVlKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWVtYmVyQWNjZXNzb3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01lbWJlckFjY2Vzc29yLmgKaW5kZXggZjdi
YmE2YWUwYTBlZWFiYjZlNjE4N2E1ODEwNGY3MjEyOGFjYWFmYS4uZTU5Nzc4MDU3NjA0MTkxMzI3
YzI3NDU4OWQ2MmFmNTc2N2JiYjNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHTWVtYmVyQWNjZXNzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdNZW1iZXJBY2Nlc3Nvci5oCkBAIC0zMCw4ICszMCw4IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorY2xhc3MgRE9NTGl2ZVByb3BlcnR5OwogY2xhc3MgU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eTsKLWNsYXNzIFNWR1Byb3BlcnR5OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBPd25lclR5
cGU+CiBjbGFzcyBTVkdNZW1iZXJBY2Nlc3NvciB7CkBAIC00Myw5ICs0Myw5IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGJvb2wgaXNBbmltYXRlZFByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNBbmltYXRlZExlbmd0aCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlcyhjb25zdCBPd25lclR5cGUmLCBj
b25zdCBTVkdQcm9wZXJ0eSYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBi
b29sIG1hdGNoZXMoY29uc3QgT3duZXJUeXBlJiwgY29uc3QgRE9NTGl2ZVByb3BlcnR5JikgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlcyhjb25zdCBPd25l
clR5cGUmLCBjb25zdCBTVkdBbmltYXRlZFByb3BlcnR5JikgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICB2aXJ0dWFsIE9wdGlvbmFsPFN0cmluZz4gc3luY2hyb25pemUoY29uc3QgT3duZXJU
eXBlJikgY29uc3QgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CisgICAgdmlydHVhbCBTdHJpbmcg
dmFsdWVBc1N0cmluZyhjb25zdCBPd25lclR5cGUmKSBjb25zdCB7IHJldHVybiBlbXB0eVN0cmlu
ZygpOyB9CiAKICAgICB2aXJ0dWFsIFJlZlB0cjxTVkdBdHRyaWJ1dGVBbmltYXRvcj4gY3JlYXRl
QW5pbWF0b3IoT3duZXJUeXBlJiwgY29uc3QgUXVhbGlmaWVkTmFtZSYsIEFuaW1hdGlvbk1vZGUs
IENhbGNNb2RlLCBib29sLCBib29sKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmly
dHVhbCB2b2lkIGFwcGVuZEFuaW1hdGVkSW5zdGFuY2UoT3duZXJUeXBlJiwgU1ZHQXR0cmlidXRl
QW5pbWF0b3ImKSBjb25zdCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR1BvaW50ZXJNZW1iZXJBY2Nlc3Nvci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHUG9pbnRlck1lbWJlckFjY2Vzc29yLmgKaW5kZXggOGUyZjc2ZGNhYjRlOTBm
YjM4ZWIzMzk2OWVhNjVjMDcwMjI0NTM4Ny4uYWY1M2Q2YzU2ZmQ4Njk3ZTMwOTVlMDFjYmFhOTll
ODlkNzM2ZDIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
UG9pbnRlck1lbWJlckFjY2Vzc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHUG9pbnRlck1lbWJlckFjY2Vzc29yLmgKQEAgLTQ3LDkgKzQ3LDkgQEAgcHVibGljOgog
ICAgICAgICBwcm9wZXJ0eShvd25lciktPmRldGFjaCgpOwogICAgIH0KIAotICAgIE9wdGlvbmFs
PFN0cmluZz4gc3luY2hyb25pemUoY29uc3QgT3duZXJUeXBlJiBvd25lcikgY29uc3Qgb3ZlcnJp
ZGUKKyAgICBTdHJpbmcgdmFsdWVBc1N0cmluZyhjb25zdCBPd25lclR5cGUmIG93bmVyKSBjb25z
dCBvdmVycmlkZQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5KG93bmVyKS0+c3luY2hy
b25pemUoKTsKKyAgICAgICAgcmV0dXJuIHByb3BlcnR5KG93bmVyKS0+dmFsdWVBc1N0cmluZygp
OwogICAgIH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHUHJvcGVydHkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R1Byb3BlcnR5LmgKaW5kZXggY2U2NWNiMTEwZDFmYjQ2NmUyMjllYzc5YzlkZDAxN2U4NjEyOTk2
Ny4uNzZhOTdjNTk5ZWM4ZTNjNGNlM2MwNGJlNjFkNjFhMDg5OGM0N2NkZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5oCkBAIC0yMCw4MyArMjAsMjEgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eU93bmVyLmgiCi0jaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSAiRE9NTGl2ZVByb3BlcnR5LmgiCiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFNWR1Byb3BlcnR5QWNjZXNzIDogdWlu
dDhfdCB7IFJlYWRXcml0ZSwgUmVhZE9ubHkgfTsKLWVudW0gY2xhc3MgU1ZHUHJvcGVydHlTdGF0
ZSA6IHVpbnQ4X3QgeyBDbGVhbiwgRGlydHkgfTsKLQotY2xhc3MgU1ZHUHJvcGVydHkgOiBwdWJs
aWMgUmVmQ291bnRlZDxTVkdQcm9wZXJ0eT4geworY2xhc3MgU1ZHUHJvcGVydHkgOiBwdWJsaWMg
RE9NTGl2ZVByb3BlcnR5LCBwdWJsaWMgUmVmQ291bnRlZDxTVkdQcm9wZXJ0eT4gewogcHVibGlj
OgogICAgIHZpcnR1YWwgflNWR1Byb3BlcnR5KCkgPSBkZWZhdWx0OwogCi0gICAgLy8gTWFuYWdp
bmcgdGhlIHJlbGF0aW9uc2hpcCB3aXRoIHRoZSBvd25lci4KLSAgICBib29sIGlzQXR0YWNoZWQo
KSBjb25zdCB7IHJldHVybiBtX293bmVyOyB9Ci0gICAgdm9pZCBhdHRhY2goU1ZHUHJvcGVydHlP
d25lciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKLSAgICB7Ci0gICAgICAgIEFT
U0VSVCghbV9vd25lcik7Ci0gICAgICAgIEFTU0VSVChtX3N0YXRlID09IFNWR1Byb3BlcnR5U3Rh
dGU6OkNsZWFuKTsKLSAgICAgICAgbV9vd25lciA9IG93bmVyOwotICAgICAgICBtX2FjY2VzcyA9
IGFjY2VzczsKLSAgICB9Ci0KLSAgICB2b2lkIGRldGFjaCgpCi0gICAgewotICAgICAgICBtX293
bmVyID0gbnVsbHB0cjsKLSAgICAgICAgbV9hY2Nlc3MgPSBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVh
ZFdyaXRlOwotICAgICAgICBtX3N0YXRlID0gU1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW47Ci0gICAg
fQotCi0gICAgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdAotICAgIHsK
LSAgICAgICAgaWYgKCFtX293bmVyKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
ICAgIHJldHVybiBtX293bmVyLT5hdHRyaWJ1dGVDb250ZXh0RWxlbWVudCgpOwotICAgIH0KLQot
ICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkKLSAgICB7Ci0gICAgICAgIGlmICghbV9vd25lcikKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9vd25lci0+Y29tbWl0UHJvcGVydHlDaGFuZ2Uo
dGhpcyk7Ci0gICAgfQotCi0gICAgLy8gRE9NIGFjY2Vzcy4KLSAgICBTVkdQcm9wZXJ0eUFjY2Vz
cyBhY2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX2FjY2VzczsgfQotICAgIGJvb2wgaXNSZWFkT25s
eSgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzID09IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkT25s
eTsgfQotCi0gICAgLy8gU3luY2hyb25pemluZyB0aGUgU1ZHIGF0dHJpYnV0ZSBhbmQgaXRzIHJl
ZmxlY3Rpb24gaGVyZS4KLSAgICBib29sIGlzRGlydHkoKSBjb25zdCB7IHJldHVybiBtX3N0YXRl
ID09IFNWR1Byb3BlcnR5U3RhdGU6OkRpcnR5OyB9Ci0gICAgdm9pZCBzZXREaXJ0eSgpIHsgbV9z
dGF0ZSA9IFNWR1Byb3BlcnR5U3RhdGU6OkRpcnR5OyB9Ci0gICAgT3B0aW9uYWw8U3RyaW5nPiBz
eW5jaHJvbml6ZSgpCi0gICAgewotICAgICAgICBpZiAobV9zdGF0ZSA9PSBTVkdQcm9wZXJ0eVN0
YXRlOjpDbGVhbikKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgICAgIG1f
c3RhdGUgPSBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbjsKLSAgICAgICAgcmV0dXJuIHZhbHVlQXNT
dHJpbmcoKTsKLSAgICB9Ci0KICAgICAvLyBUaGlzIGlzIHVzZWQgd2hlbiBjYWxsaW5nIHNldEF0
dHJpYnV0ZSgpLgogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdCB7IHJl
dHVybiBlbXB0eVN0cmluZygpOyB9CiAKLSAgICAvLyBWaXN1YWwgU3R1ZGlvIGRvZXNuJ3Qgc2Vl
bSB0byBzZWUgdGhlc2UgcHJpdmF0ZSBjb25zdHJ1Y3RvcnMgZnJvbSBzdWJjbGFzc2VzLgotICAg
IC8vIEZJWE1FOiBTZWUgd2hhdCBpdCB0YWtlcyB0byByZW1vdmUgdGhpcyBoYWNrLgotI2lmICFD
T01QSUxFUihNU1ZDKQogcHJvdGVjdGVkOgotI2VuZGlmCi0gICAgU1ZHUHJvcGVydHkoU1ZHUHJv
cGVydHlPd25lciogb3duZXIgPSBudWxscHRyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MgPSBT
VkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRlKQotICAgICAgICA6IG1fb3duZXIob3duZXIpCi0g
ICAgICAgICwgbV9hY2Nlc3MoYWNjZXNzKQotICAgIHsKLSAgICB9Ci0KLSAgICBTVkdQcm9wZXJ0
eU93bmVyKiBtX293bmVyIHsgbnVsbHB0ciB9OwotICAgIFNWR1Byb3BlcnR5QWNjZXNzIG1fYWNj
ZXNzIHsgU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0ZSB9OwotICAgIFNWR1Byb3BlcnR5U3Rh
dGUgbV9zdGF0ZSB7IFNWR1Byb3BlcnR5U3RhdGU6OkNsZWFuIH07CisgICAgdXNpbmcgRE9NTGl2
ZVByb3BlcnR5OjpET01MaXZlUHJvcGVydHk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFj
Y2Vzc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFjY2Vz
c29yLmgKaW5kZXggZmY4YzRjZGU2ZGQwZjNjYWZiYzhmMjdiMjcwMjk3MGUzNWY0ODc2NC4uOGQx
MjgxODI3ZDRmYjk4ODkzYmZmMWYyNDllMGIzNTY4ODIyNzVmNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlBY2Nlc3Nvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QWNjZXNzb3IuaApAQCAtNDAsNyAr
NDAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdXNpbmcgQmFzZTo6cHJvcGVydHk7CiAgICAgdXNpbmcg
QmFzZTo6c2luZ2xldG9uOwogCi0gICAgYm9vbCBtYXRjaGVzKGNvbnN0IE93bmVyVHlwZSYgb3du
ZXIsIGNvbnN0IFNWR1Byb3BlcnR5JiBwcm9wZXJ0eSkgY29uc3Qgb3ZlcnJpZGUKKyAgICBib29s
IG1hdGNoZXMoY29uc3QgT3duZXJUeXBlJiBvd25lciwgY29uc3QgRE9NTGl2ZVByb3BlcnR5JiBw
cm9wZXJ0eSkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLT5wcm9w
ZXJ0eShvd25lcikucHRyKCkgPT0gJnByb3BlcnR5OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5TGlzdC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlMaXN0LmgKaW5kZXggY2JiMDBhZjEwMzAyNTlm
YTNjMDQxYTNmMGYyYWI3ODczYzdkZDNjZC4uYzEzNDY0Mzg4NWYxYmVhYWZiOTdhN2I3ZjVkNGVl
MGZkODIzZmMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJvcGVydHlMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJv
cGVydHlMaXN0LmgKQEAgLTMwLDcgKzMwLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdGVt
cGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgotY2xhc3MgU1ZHUHJvcGVydHlMaXN0IDogcHVi
bGljIFNWR0xpc3Q8UmVmPFByb3BlcnR5VHlwZT4+LCBwdWJsaWMgU1ZHUHJvcGVydHlPd25lciB7
CitjbGFzcyBTVkdQcm9wZXJ0eUxpc3QgOiBwdWJsaWMgU1ZHTGlzdDxSZWY8UHJvcGVydHlUeXBl
Pj4sIHB1YmxpYyBET01MaXZlUHJvcGVydHlPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgdXNpbmcg
QmFzZUxpc3QgPSBTVkdMaXN0PFJlZjxQcm9wZXJ0eVR5cGU+PjsKICAgICB1c2luZyBCYXNlTGlz
dDo6aXNFbXB0eTsKQEAgLTQyLDEzICs0MiwxMiBAQCBwdWJsaWM6CiAjaWYgIUNPTVBJTEVSKE1T
VkMpCiBwcm90ZWN0ZWQ6CiAjZW5kaWYKLSAgICB1c2luZyBTVkdQcm9wZXJ0eU93bmVyOjpTVkdQ
cm9wZXJ0eU93bmVyOworICAgIHVzaW5nIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyOjpET01MaXZl
UHJvcGVydHlPYnNlcnZlcjsKICAgICB1c2luZyBCYXNlTGlzdDo6bV9pdGVtczsKLSAgICB1c2lu
ZyBCYXNlTGlzdDo6bV9hY2Nlc3M7Ci0gICAgdXNpbmcgQmFzZUxpc3Q6Om1fb3duZXI7CisgICAg
dXNpbmcgQmFzZUxpc3Q6Om1fb2JzZXJ2ZXI7CiAKLSAgICBTVkdQcm9wZXJ0eUxpc3QoU1ZHUHJv
cGVydHlPd25lciogb3duZXIgPSBudWxscHRyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MgPSBT
VkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRlKQotICAgICAgICA6IEJhc2VMaXN0KG93bmVyLCBh
Y2Nlc3MpCisgICAgU1ZHUHJvcGVydHlMaXN0KERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNl
cnZlciA9IG51bGxwdHIpCisgICAgICAgIDogQmFzZUxpc3Qob2JzZXJ2ZXIpCiAgICAgewogICAg
IH0KIApAQCAtNjQsMTIgKzYzLDE3IEBAIHByb3RlY3RlZDoKICAgICAgICAgICAgIGl0ZW0tPmRl
dGFjaCgpOwogICAgIH0KIAotICAgIFNWR1Byb3BlcnR5T3duZXIqIG93bmVyKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV9vd25lcjsgfQorICAgIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBv
YnNlcnZlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fb2JzZXJ2ZXI7IH0KIAotICAgIHZv
aWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJvcGVydHkqKSBvdmVycmlkZQorICAgIGJvb2wg
aXNQcm9wZXJ0eVJlYWRPbmx5KGNvbnN0IERPTUxpdmVQcm9wZXJ0eSYpIGNvbnN0IG92ZXJyaWRl
CiAgICAgewotICAgICAgICBpZiAob3duZXIoKSkKLSAgICAgICAgICAgIG93bmVyKCktPmNvbW1p
dFByb3BlcnR5Q2hhbmdlKHRoaXMpOworICAgICAgICByZXR1cm4gb2JzZXJ2ZXIoKSAmJiBvYnNl
cnZlcigpLT5pc1Byb3BlcnR5UmVhZE9ubHkoKnRoaXMpOworICAgIH0KKworICAgIHZvaWQgY29t
bWl0UHJvcGVydHlDaGFuZ2UoRE9NTGl2ZVByb3BlcnR5Kikgb3ZlcnJpZGUKKyAgICB7CisgICAg
ICAgIGlmIChvYnNlcnZlcigpKQorICAgICAgICAgICAgb2JzZXJ2ZXIoKS0+Y29tbWl0UHJvcGVy
dHlDaGFuZ2UodGhpcyk7CiAgICAgfQogCiAgICAgUmVmPFByb3BlcnR5VHlwZT4gYXQodW5zaWdu
ZWQgaW5kZXgpIGNvbnN0IG92ZXJyaWRlCkBAIC04OCw3ICs5Miw3IEBAIHByb3RlY3RlZDoKICAg
ICAgICAgICAgIG5ld0l0ZW0gPSBuZXdJdGVtLT5jbG9uZSgpOwogCiAgICAgICAgIC8vIFNwZWM6
IEF0dGFjaCBuZXdJdGVtIHRvIHRoZSBsaXN0IG9iamVjdC4KLSAgICAgICAgbmV3SXRlbS0+YXR0
YWNoKHRoaXMsIG1fYWNjZXNzKTsKKyAgICAgICAgbmV3SXRlbS0+YXR0YWNoKHRoaXMpOwogICAg
ICAgICBtX2l0ZW1zLmluc2VydChpbmRleCwgV1RGTW92ZShuZXdJdGVtKSk7CiAgICAgICAgIHJl
dHVybiBhdChpbmRleCk7CiAgICAgfQpAQCAtMTA5LDcgKzExMyw3IEBAIHByb3RlY3RlZDoKICAg
ICAgICAgICAgIGl0ZW0gPSBXVEZNb3ZlKG5ld0l0ZW0pOwogCiAgICAgICAgIC8vIFNwZWM6IEF0
dGFjaCBuZXdJdGVtIHRvIHRoZSBsaXN0IG9iamVjdC4KLSAgICAgICAgaXRlbS0+YXR0YWNoKHRo
aXMsIG1fYWNjZXNzKTsKKyAgICAgICAgaXRlbS0+YXR0YWNoKHRoaXMpOwogICAgICAgICByZXR1
cm4gYXQoaW5kZXgpOwogICAgIH0KIApAQCAtMTMyLDcgKzEzNiw3IEBAIHByb3RlY3RlZDoKICAg
ICAgICAgICAgIG5ld0l0ZW0gPSBuZXdJdGVtLT5jbG9uZSgpOwogCiAgICAgICAgIC8vIFNwZWM6
IEF0dGFjaCBuZXdJdGVtIHRvIHRoZSBsaXN0IG9iamVjdC4KLSAgICAgICAgbmV3SXRlbS0+YXR0
YWNoKHRoaXMsIG1fYWNjZXNzKTsKKyAgICAgICAgbmV3SXRlbS0+YXR0YWNoKHRoaXMpOwogICAg
ICAgICBtX2l0ZW1zLmFwcGVuZChXVEZNb3ZlKG5ld0l0ZW0pKTsKICAgICAgICAgcmV0dXJuIGF0
KHNpemUoKSAtIDEpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR1Byb3BlcnR5T3duZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzk4MThi
ZTlmODQwYzc2NDUzOThlNjFiNDg5MzgxODYyYTM0NjhmMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdQcm9wZXJ0eU93bmVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNl
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICAKLWNsYXNzIFNWR0VsZW1lbnQ7Ci1jbGFzcyBT
VkdQcm9wZXJ0eTsKLQotY2xhc3MgU1ZHUHJvcGVydHlPd25lciB7Ci1wdWJsaWM6Ci0gICAgdmly
dHVhbCB+U1ZHUHJvcGVydHlPd25lcigpID0gZGVmYXVsdDsKLQotICAgIHZpcnR1YWwgU1ZHUHJv
cGVydHlPd25lciogb3duZXIoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9Ci0gICAgCi0gICAg
dmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBhdHRyaWJ1dGVDb250ZXh0RWxlbWVudCgpIGNvbnN0
Ci0gICAgewotICAgICAgICBpZiAoIW93bmVyKCkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICAgICAgcmV0dXJuIG93bmVyKCktPmF0dHJpYnV0ZUNvbnRleHRFbGVtZW50KCk7Ci0g
ICAgfQotICAgIAotICAgIHZpcnR1YWwgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9w
ZXJ0eSogcHJvcGVydHkpCi0gICAgewotICAgICAgICBpZiAoIW93bmVyKCkpCi0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIG93bmVyKCktPmNvbW1pdFByb3BlcnR5Q2hhbmdlKHByb3BlcnR5
KTsKLSAgICB9Ci0gICAgCi1wcm90ZWN0ZWQ6Ci0gICAgU1ZHUHJvcGVydHlPd25lcigpID0gZGVm
YXVsdDsKLX07Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR1Byb3BlcnR5T3duZXJSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5LmgKaW5kZXggYTVmNzEzNjk3ZWEyYzRjNjAwYmE1
MzdkYTI5NDFmNWRhOTllOTc4Yi4uMzE5YTUwODJhNTlkOWRlNWI2MWRmZjIxYjVlYjM2OGZkMjg3
YWM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVy
dHlPd25lclJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJvcGVydHlPd25lclJlZ2lzdHJ5LmgKQEAgLTE3OCw3ICsxNzgsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBRdWFsaWZpZWROYW1lIHByb3BlcnR5QXR0
cmlidXRlTmFtZShjb25zdCBTVkdQcm9wZXJ0eSYgcHJvcGVydHkpIGNvbnN0IG92ZXJyaWRlCisg
ICAgUXVhbGlmaWVkTmFtZSBwcm9wZXJ0eUF0dHJpYnV0ZU5hbWUoY29uc3QgRE9NTGl2ZVByb3Bl
cnR5JiBwcm9wZXJ0eSkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIFF1YWxpZmllZE5h
bWUgYXR0cmlidXRlTmFtZSA9IG51bGxRTmFtZSgpOwogICAgICAgICBlbnVtZXJhdGVSZWN1cnNp
dmVseShbJl0oY29uc3QgYXV0byYgZW50cnkpIC0+IGJvb2wgewpAQCAtMjExLDMzICsyMTEsMjAg
QEAgcHVibGljOgogICAgICAgICB9KTsKICAgICB9CiAKLSAgICAvLyBGaW5kcyB0aGUgcHJvcGVy
dHkgd2hvc2UgbmFtZSBpcyBhdHRyaWJ1dGVOYW1lIGFuZCByZXR1cm5zIHRoZSBzeW5jaHJvbml6
ZQotICAgIC8vIHN0cmluZyB0aHJvdWdoIHRoZSBhc3NvY2lhdGVkIFNWR01lbWJlckFjY2Vzc29y
LgotICAgIE9wdGlvbmFsPFN0cmluZz4gc3luY2hyb25pemUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlTmFtZSkgY29uc3Qgb3ZlcnJpZGUKKyAgICAvLyBGaW5kcyB0aGUgcHJvcGVydHkg
d2hvc2UgbmFtZSBpcyBhdHRyaWJ1dGVOYW1lIGFuZCByZXR1cm5zIHRoZSB2YWx1ZUFzU3RyaW5n
CisgICAgLy8gdGhyb3VnaCB0aGUgYXNzb2NpYXRlZCBTVkdNZW1iZXJBY2Nlc3Nvci4KKyAgICBT
dHJpbmcgdmFsdWVBc1N0cmluZyhjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSBj
b25zdCBvdmVycmlkZQogICAgIHsKLSAgICAgICAgT3B0aW9uYWw8U3RyaW5nPiB2YWx1ZTsKKyAg
ICAgICAgU3RyaW5nIHZhbHVlOwogICAgICAgICBlbnVtZXJhdGVSZWN1cnNpdmVseShbJl0oY29u
c3QgYXV0byYgZW50cnkpIC0+IGJvb2wgewogICAgICAgICAgICAgaWYgKCFlbnRyeS5rZXkubWF0
Y2hlcyhhdHRyaWJ1dGVOYW1lKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgICAgIHZhbHVlID0gZW50cnkudmFsdWUtPnN5bmNocm9uaXplKG1fb3duZXIpOworICAgICAg
ICAgICAgdmFsdWUgPSBlbnRyeS52YWx1ZS0+dmFsdWVBc1N0cmluZyhtX293bmVyKTsKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybiB2YWx1ZTsK
ICAgICB9CiAKLSAgICAvLyBFbnVtZXJhdGUgcmVjdXJzaXZlbHkgdGhlIFNWR01lbWJlckFjY2Vz
c29ycyBvZiB0aGUgT3duZXJUeXBlIGFuZCBhbGwgaXRzIEJhc2VUeXBlcy4KLSAgICAvLyBDb2xs
ZWN0IGFsbCB0aGUgcGFpcnMgPEF0dHJpYnV0ZU5hbWUsIFN0cmluZz4gb25seSBmb3IgdGhlIGRp
cnR5IHByb3BlcnRpZXMuCi0gICAgSGFzaE1hcDxRdWFsaWZpZWROYW1lLCBTdHJpbmc+IHN5bmNo
cm9uaXplQWxsQXR0cmlidXRlcygpIGNvbnN0IG92ZXJyaWRlCi0gICAgewotICAgICAgICBIYXNo
TWFwPFF1YWxpZmllZE5hbWUsIFN0cmluZz4gbWFwOwotICAgICAgICBlbnVtZXJhdGVSZWN1cnNp
dmVseShbJl0oY29uc3QgYXV0byYgZW50cnkpIC0+IGJvb2wgewotICAgICAgICAgICAgaWYgKGF1
dG8gc3RyaW5nID0gZW50cnkudmFsdWUtPnN5bmNocm9uaXplKG1fb3duZXIpKQotICAgICAgICAg
ICAgICAgIG1hcC5hZGQoZW50cnkua2V5LCAqc3RyaW5nKTsKLSAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuIG1hcDsKLSAgICB9Ci0KICAgICBib29s
IGlzQW5pbWF0ZWRQcm9wZXJ0eUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1
dGVOYW1lKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgYm9vbCBpc0FuaW1hdGVkUHJv
cGVydHlBdHRyaWJ1dGUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR1Byb3BlcnR5UmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR1Byb3BlcnR5UmVnaXN0cnkuaAppbmRleCAyNGZlNjQyMzdlMmY1ZTVlMWFmZTg1
NTEwZjEzNjYyNjJkZjQzNDA0Li5kZTI4ZWI5ZmUxNGE3ODdhNmM1NTFlNGRkMGY1ODUwMzg3ZTI5
YTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0
eVJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVy
dHlSZWdpc3RyeS5oCkBAIC0zNywxMCArMzcsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1ZH
UHJvcGVydHlSZWdpc3RyeSgpID0gZGVmYXVsdDsKIAogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hB
bGxQcm9wZXJ0aWVzKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgUXVhbGlmaWVkTmFtZSBwcm9w
ZXJ0eUF0dHJpYnV0ZU5hbWUoY29uc3QgU1ZHUHJvcGVydHkmKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCBRdWFsaWZpZWROYW1lIHByb3BlcnR5QXR0cmlidXRlTmFtZShjb25zdCBET01MaXZlUHJv
cGVydHkmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBRdWFsaWZpZWROYW1lIGFuaW1hdGVkUHJv
cGVydHlBdHRyaWJ1dGVOYW1lKGNvbnN0IFNWR0FuaW1hdGVkUHJvcGVydHkmKSBjb25zdCA9IDA7
Ci0gICAgdmlydHVhbCBPcHRpb25hbDxTdHJpbmc+IHN5bmNocm9uaXplKGNvbnN0IFF1YWxpZmll
ZE5hbWUmKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBIYXNoTWFwPFF1YWxpZmllZE5hbWUsIFN0
cmluZz4gc3luY2hyb25pemVBbGxBdHRyaWJ1dGVzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwg
U3RyaW5nIHZhbHVlQXNTdHJpbmcoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0ID0gMDsKIAog
ICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGVkUHJvcGVydHlBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBbmltYXRlZFN0eWxlUHJv
cGVydHlBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0ID0gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHkuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHkuaAppbmRleCA5ZjMx
ZTJkMGY1MzljYzIwMjNiNjNmODcwNjg2ZjBlZDgxZGMyOWNlLi44NTJmMjc0ZDdiYjMxZTc1YTIy
NTA5MTEzYzI3MjY5YTFkNzk5NGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdWYWx1ZVByb3BlcnR5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eS5oCkBAIC02NCwxNCArNjQsMTQgQEAgcHJvdGVjdGVkOgog
ICAgIH0KIAogICAgIC8vIEJhc2UgYW5kIGRlZmF1bHQgY29uc3RydWN0b3IuIERvIG5vdCB1c2Ug
InVzaW5nIFNWR1Byb3BlcnR5OjpTVkdQcm9wZXJ0eSIgYmVjYXVzZSBvZiBXaW5kb3dzIGFuZCBH
VEsgcG9ydHMuCi0gICAgU1ZHVmFsdWVQcm9wZXJ0eShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciA9
IG51bGxwdHIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpS
ZWFkV3JpdGUpCi0gICAgICAgIDogU1ZHUHJvcGVydHkob3duZXIsIGFjY2VzcykKKyAgICBTVkdW
YWx1ZVByb3BlcnR5KERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlciA9IG51bGxwdHIp
CisgICAgICAgIDogU1ZHUHJvcGVydHkob2JzZXJ2ZXIpCiAgICAgewogICAgIH0KIAogICAgIC8v
IENyZWF0ZSBhbiBpbml0aWFsaXplZCBhbmQgYXR0YWNoZWQgcHJvcGVydHkuCi0gICAgU1ZHVmFs
dWVQcm9wZXJ0eShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNj
ZXNzLCBjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQotICAgICAgICA6IFNWR1Byb3BlcnR5KG93
bmVyLCBhY2Nlc3MpCisgICAgU1ZHVmFsdWVQcm9wZXJ0eShET01MaXZlUHJvcGVydHlPYnNlcnZl
ciogb2JzZXJ2ZXIsIGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUpCisgICAgICAgIDogU1ZHUHJv
cGVydHkob2JzZXJ2ZXIpCiAgICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKICAgICB7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0
eUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlM
aXN0LmgKaW5kZXggMzAxMGMzM2E3NDA4OWJjNDRmYmI0MTBhNTZmNzg1YTlmNzE3Y2NlZS4uYzVi
NzNhMGVhNGI5NmZiMWM0YjA0NDNlZDkxMTVhMDk0NGViNTJlMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdC5oCkBAIC03NSwx
NCArNzUsMTQgQEAgcHJvdGVjdGVkOgogICAgIHVzaW5nIEJhc2U6OnJlbW92ZTsKIAogICAgIC8v
IEJhc2UgYW5kIGRlZmF1bHQgY29uc3RydWN0b3IuIERvIG5vdCB1c2UgInVzaW5nIEJhc2U6OkJh
c2UiIGJlY2F1c2Ugb2YgV2luZG93cyBhbmQgR1RLIHBvcnRzLgotICAgIFNWR1ZhbHVlUHJvcGVy
dHlMaXN0KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyID0gbnVsbHB0ciwgU1ZHUHJvcGVydHlBY2Nl
c3MgYWNjZXNzID0gU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0ZSkKLSAgICAgICAgOiBCYXNl
KG93bmVyLCBhY2Nlc3MpCisgICAgU1ZHVmFsdWVQcm9wZXJ0eUxpc3QoRE9NTGl2ZVByb3BlcnR5
T2JzZXJ2ZXIqIG9ic2VydmVyID0gbnVsbHB0cikKKyAgICAgICAgOiBCYXNlKG9ic2VydmVyKQog
ICAgIHsKICAgICB9CiAKICAgICAvLyBVc2VkIGJ5IFNWR0FuaW1hdGVkUHJvcGVydHlMaXN0IHdo
ZW4gY3JlYXRpbmcgaXQgYW5pbVZhbCBmcm9tIGJhc2VWYWwuCi0gICAgU1ZHVmFsdWVQcm9wZXJ0
eUxpc3QoY29uc3QgU1ZHVmFsdWVQcm9wZXJ0eUxpc3QmIG90aGVyLCBTVkdQcm9wZXJ0eUFjY2Vz
cyBhY2Nlc3MgPSBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRlKQotICAgICAgICA6IEJhc2Uo
b3RoZXIub3duZXIoKSwgYWNjZXNzKQorICAgIFNWR1ZhbHVlUHJvcGVydHlMaXN0KGNvbnN0IFNW
R1ZhbHVlUHJvcGVydHlMaXN0JiBvdGhlcikKKyAgICAgICAgOiBCYXNlKG90aGVyLm9ic2VydmVy
KCkpCiAgICAgewogICAgICAgICAvLyBDbG9uZSBhbGwgaXRlbXMuCiAgICAgICAgIGZvciAoY29u
c3QgYXV0byYgaXRlbSA6IG90aGVyLml0ZW1zKCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmQwOTk4MDBhODVmM2MzYzAw
Y2UwNTNlOTRmMTNlNmZmNmEyNzgwNC4uODJjOTFjYjhkY2ZjODMzNmJjMmQyMzhjYTJkMjkzZDdk
ODE2MTZlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEwLTAxICBTYWlkIEFib3UtSGFs
bGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSB0aGUgU1ZHIHBy
b3BlcnRpZXMgb2YgU1ZHVmlld1NwZWMgbW9kaWZpYWJsZSBidXQgZGV0YWNoZWQgcHJvcGVydGll
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNDEx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBz
dXJlIGFsbCB0aGUgcHJvcGVydGllcyBvZiBTVkdWaWV3U3BlYyBhcmUgbW9kaWZpYWJsZS4KKwor
ICAgICAgICAqIHN2Zy9kb20vU1ZHVmlld1NwZWMtZGVmYXVsdHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHN2Zy9kb20vU1ZHVmlld1NwZWMtZGVmYXVsdHMuaHRtbDoKKwogMjAxOS0xMC0wMSAg
QW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9y
dCBhY2Nlc3NpYmlsaXR5IGZvciA8ZmlndXJlPiBlbGVtZW50IG9uIGlPUy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHVmlld1NwZWMtZGVmYXVsdHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdWaWV3U3BlYy1kZWZhdWx0cy1leHBlY3RlZC50eHQKaW5k
ZXggOWMwMTgxNzU4MTViNzQ0ZmQyYjY1MGQ3MzcyYzQ3Zjg1YWExNGFmMS4uMTQ1MmFiN2M0NWE0
ZjM1YTM5NTk3ZjAzM2UwZDM5OTI1MGJiYTJjOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Zn
L2RvbS9TVkdWaWV3U3BlYy1kZWZhdWx0cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
c3ZnL2RvbS9TVkdWaWV3U3BlYy1kZWZhdWx0cy1leHBlY3RlZC50eHQKQEAgLTIwLDUwICsyMCw1
MyBAQCBQQVNTIGN1cnJlbnRWaWV3LnRyYW5zZm9ybVN0cmluZyBpcyAiIgogUEFTUyBjdXJyZW50
Vmlldy52aWV3VGFyZ2V0U3RyaW5nIGlzICIiCiBQQVNTIGN1cnJlbnRWaWV3Lnpvb21BbmRQYW4g
aXMgU1ZHVmlld0VsZW1lbnQuU1ZHX1pPT01BTkRQQU5fTUFHTklGWQogCi1UcnkgY2hhbmdpbmcg
em9vbUFuZFBhbiAtIG5vbmUgb2YgdGhlc2Ugd2lsbCB3b3JrLCBhcyBTVkdWaWV3U3BlYyBpcyBm
dWxseSByZWFkb25seSAtIGV2ZW4gdGhlIGFuaW1hdGVkIHByb3BlcnRpZXMgaXQgaW5oZXJpdHMg
ZnJvbSBwYXJlbnQgY2xhc3NlcyBsaWtlIFNWR1pvb21BbmRQYW4vU1ZHRml0VG9WaWV3Qm94CitU
cnkgY2hhbmdpbmcgem9vbUFuZFBhbiAtIG5vbmUgb2YgdGhlc2Ugd2lsbCB3b3JrLCBpdCBpcyBh
IHByaW1pdGl2ZSBwcm9wZXJ0eQogUEFTUyBjdXJyZW50Vmlldy56b29tQW5kUGFuID0gU1ZHVmll
d0VsZW1lbnQuU1ZHX1pPT01BTkRQQU5fRElTQUJMRSB0aHJldyBleGNlcHRpb24gTm9Nb2RpZmlj
YXRpb25BbGxvd2VkRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5vdCBiZSBtb2RpZmllZC4uCiBQQVNT
IGN1cnJlbnRWaWV3Lnpvb21BbmRQYW4gaXMgU1ZHVmlld0VsZW1lbnQuU1ZHX1pPT01BTkRQQU5f
TUFHTklGWQogCi1UcnkgY2hhbmdpbmcgdmlld0JveCAtIHRoaXMgaGFzIG5vIGFmZmVjdCBvbiB0
aGUgU1ZHU1ZHRWxlbWVudCB0aGUgdmlld1NwZWMgYmVsb25ncyB0byAtIGl0IGV4cG9zZWQgYWxs
IGl0cyBwcm9wZXJ0aWVzIGFzIHJlYWQtb25seQotUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94LmJh
c2VWYWwueCA9IDEwIHRocmV3IGV4Y2VwdGlvbiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjog
VGhlIG9iamVjdCBjYW4gbm90IGJlIG1vZGlmaWVkLi4KLVBBU1MgY3VycmVudFZpZXcudmlld0Jv
eC5iYXNlVmFsLnggaXMgMAotUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueSA9IDIw
IHRocmV3IGV4Y2VwdGlvbiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogVGhlIG9iamVjdCBj
YW4gbm90IGJlIG1vZGlmaWVkLi4KLVBBU1MgY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLnkg
aXMgMAotUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwud2lkdGggPSA1MCB0aHJldyBl
eGNlcHRpb24gTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5vdCBi
ZSBtb2RpZmllZC4uCi1QQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC53aWR0aCBpcyAw
Ci1QQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC5oZWlnaHQgPSAxMDAgdGhyZXcgZXhj
ZXB0aW9uIE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yOiBUaGUgb2JqZWN0IGNhbiBub3QgYmUg
bW9kaWZpZWQuLgotUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0IGlzIDAK
LVBBU1MgY3VycmVudFZpZXcudmlld0JveFN0cmluZyBpcyAiMCAwIDAgMCIKK0NoYW5naW5nIHZp
ZXdCb3ggLSB0aGlzIGhhcyBubyBhZmZlY3Qgb24gdGhlIFNWR1NWR0VsZW1lbnQgdGhlIHZpZXdT
cGVjIGJlbG9uZ3MgdG8gLSBpdCBpcyBhIGRldGFjaGVkIHByb3BlcnR5CitQQVNTIGN1cnJlbnRW
aWV3LnZpZXdCb3guYmFzZVZhbC54ID0gMTAgaXMgMTAKK1BBU1MgY3VycmVudFZpZXcudmlld0Jv
eC5iYXNlVmFsLnggaXMgMTAKK1BBU1MgY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLnkgPSAy
MCBpcyAyMAorUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueSBpcyAyMAorUEFTUyBj
dXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwud2lkdGggPSA1MCBpcyA1MAorUEFTUyBjdXJyZW50
Vmlldy52aWV3Qm94LmJhc2VWYWwud2lkdGggaXMgNTAKK1BBU1MgY3VycmVudFZpZXcudmlld0Jv
eC5iYXNlVmFsLmhlaWdodCA9IDEwMCBpcyAxMDAKK1BBU1MgY3VycmVudFZpZXcudmlld0JveC5i
YXNlVmFsLmhlaWdodCBpcyAxMDAKK1BBU1MgY3VycmVudFZpZXcudmlld0JveFN0cmluZyBpcyAi
MTAgMjAgNTAgMTAwIgogCi1UcnkgY2hhbmdpbmcgdmlld0JveFN0cmluZworVHJ5IGNoYW5naW5n
IHZpZXdCb3hTdHJpbmcgLSBub25lIG9mIHRoZXNlIHdpbGwgd29yaywgaXQgaXMgYSBwcmltaXRp
dmUgcHJvcGVydHkKIFBBU1MgY3VycmVudFZpZXcudmlld0JveFN0cmluZyA9ICcxIDIgMyA0JyBp
cyAiMSAyIDMgNCIKLVBBU1MgY3VycmVudFZpZXcudmlld0JveFN0cmluZyBpcyAiMCAwIDAgMCIK
K1BBU1MgY3VycmVudFZpZXcudmlld0JveFN0cmluZyBpcyAiMTAgMjAgNTAgMTAwIgogCi1Ucnkg
Y2hhbmdpbmcgcHJlc2VydmVBc3BlY3RSYXRpbwotUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFz
cGVjdFJhdGlvLmJhc2VWYWwuYWxpZ24gPSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19QUkVT
RVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlOIHRocmV3IGV4Y2VwdGlvbiBOb01vZGlmaWNhdGlvbkFs
bG93ZWRFcnJvcjogVGhlIG9iamVjdCBjYW4gbm90IGJlIG1vZGlmaWVkLi4KLVBBU1MgY3VycmVu
dFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLmFsaWduIGlzIFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8uU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNSUQKLVBBU1MgY3VycmVudFZp
ZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLm1lZXRPclNsaWNlID0gU1ZHUHJlc2VydmVB
c3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJQ0VfU0xJQ0UgdGhyZXcgZXhjZXB0aW9uIE5vTW9kaWZp
Y2F0aW9uQWxsb3dlZEVycm9yOiBUaGUgb2JqZWN0IGNhbiBub3QgYmUgbW9kaWZpZWQuLgotUEFT
UyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwubWVldE9yU2xpY2UgaXMg
U1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJQ0VfTUVFVAorQ2hhbmdpbmcgcHJl
c2VydmVBc3BlY3RSYXRpbyAtIHRoaXMgaGFzIG5vIGFmZmVjdCBvbiB0aGUgU1ZHU1ZHRWxlbWVu
dCB0aGUgdmlld1NwZWMgYmVsb25ncyB0byAtIGl0IGlzIGEgZGV0YWNoZWQgcHJvcGVydHkKK1BB
U1MgY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLmFsaWduID0gU1ZHUHJl
c2VydmVBc3BlY3RSYXRpby5TVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JTiBpcyBTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlOCitQQVNT
IGN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFzZVZhbC5hbGlnbiBpcyBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvLlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlOCitQQVNTIGN1
cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFzZVZhbC5tZWV0T3JTbGljZSA9IFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX01FRVRPUlNMSUNFX1NMSUNFIGlzIFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8uU1ZHX01FRVRPUlNMSUNFX1NMSUNFCitQQVNTIGN1cnJlbnRWaWV3LnByZXNlcnZl
QXNwZWN0UmF0aW8uYmFzZVZhbC5tZWV0T3JTbGljZSBpcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
LlNWR19NRUVUT1JTTElDRV9TTElDRQogCi1UcnkgY2hhbmdpbmcgcHJlc2VydmVBc3BlY3RSYXRp
b1N0cmluZwotUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nID0gJ3hN
aW5ZTWluIHNsaWNlJyBpcyAieE1pbllNaW4gc2xpY2UiCi1QQVNTIGN1cnJlbnRWaWV3LnByZXNl
cnZlQXNwZWN0UmF0aW9TdHJpbmcgaXMgInhNaWRZTWlkIG1lZXQiCi0KLVRyeSBjaGFuZ2luZyB0
cmFuc2Zvcm1TdHJpbmcKLVBBU1MgY3VycmVudFZpZXcudHJhbnNmb3JtU3RyaW5nID0gJ3JvdGF0
ZSg5MCknIGlzICJyb3RhdGUoOTApIgotUEFTUyBjdXJyZW50Vmlldy50cmFuc2Zvcm1TdHJpbmcg
aXMgIiIKK0NoYW5naW5nIHByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcgLSBub25lIG9mIHRoZXNl
IHdpbGwgd29yaywgaXQgaXMgYSBwcmltaXRpdmUgcHJvcGVydHkKK1BBU1MgY3VycmVudFZpZXcu
cHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZyA9ICd4TWlkWU1pZCBtZWV0JyBpcyAieE1pZFlNaWQg
bWVldCIKK1BBU1MgY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZyBpcyAieE1p
bllNaW4gc2xpY2UiCiAKLVRyeSBjaGFuZ2luZyB2aWV3VGFyZ2V0CitUcnkgY2hhbmdpbmcgdmll
d1RhcmdldCAtIG5vbmUgb2YgdGhlc2Ugd2lsbCB3b3JrLCBpdCBpcyBhIHByaW1pdGl2ZSBwcm9w
ZXJ0eQogUEFTUyBjdXJyZW50Vmlldy52aWV3VGFyZ2V0ID0gc3ZnRWxlbWVudCBpcyBzdmdFbGVt
ZW50CiBQQVNTIGN1cnJlbnRWaWV3LnZpZXdUYXJnZXQgaXMgbnVsbAogCi1UcnkgY2hhbmdpbmcg
dmlld1RhcmdldFN0cmluZworVHJ5IGNoYW5naW5nIHZpZXdUYXJnZXRTdHJpbmcgLSBub25lIG9m
IHRoZXNlIHdpbGwgd29yaywgaXQgaXMgYSBwcmltaXRpdmUgcHJvcGVydHkKIFBBU1MgY3VycmVu
dFZpZXcudmlld1RhcmdldFN0cmluZyA9ICcjdGVzdCcgaXMgIiN0ZXN0IgogUEFTUyBjdXJyZW50
Vmlldy52aWV3VGFyZ2V0U3RyaW5nIGlzICIiCiAKLVRyeSBjaGFuZ2luZyB0cmFuc2Zvcm0KLVBB
U1MgY3VycmVudFZpZXcudHJhbnNmb3JtLmNsZWFyKCkgdGhyZXcgZXhjZXB0aW9uIE5vTW9kaWZp
Y2F0aW9uQWxsb3dlZEVycm9yOiBUaGUgb2JqZWN0IGNhbiBub3QgYmUgbW9kaWZpZWQuLgorQ2hh
bmdpbmcgdHJhbnNmb3JtIC0gdGhpcyBoYXMgbm8gYWZmZWN0IG9uIHRoZSBTVkdTVkdFbGVtZW50
IHRoZSB2aWV3U3BlYyBiZWxvbmdzIHRvIC0gaXQgaXMgYSBkZXRhY2hlZCBwcm9wZXJ0eQorUEFT
UyBjdXJyZW50Vmlldy50cmFuc2Zvcm0uYXBwZW5kSXRlbSh0cmFuc2Zvcm0pLnRvU3RyaW5nKCkg
aXMgIltvYmplY3QgU1ZHVHJhbnNmb3JtXSIKK1BBU1MgY3VycmVudFZpZXcudHJhbnNmb3JtLm51
bWJlck9mSXRlbXMgaXMgMQorUEFTUyBjdXJyZW50Vmlldy50cmFuc2Zvcm1TdHJpbmcgaXMgIm1h
dHJpeCgxIDAgMCAxIDAgMCkiCitQQVNTIHVuZGVmaW5lZCBpcyB1bmRlZmluZWQuCiBQQVNTIGN1
cnJlbnRWaWV3LnRyYW5zZm9ybS5udW1iZXJPZkl0ZW1zIGlzIDAKKworVHJ5IGNoYW5naW5nIHRy
YW5zZm9ybVN0cmluZyAtIG5vbmUgb2YgdGhlc2Ugd2lsbCB3b3JrLCBpdCBpcyBhIHByaW1pdGl2
ZSBwcm9wZXJ0eQorUEFTUyBjdXJyZW50Vmlldy50cmFuc2Zvcm1TdHJpbmcgPSAncm90YXRlKDkw
KScgaXMgInJvdGF0ZSg5MCkiCitQQVNTIGN1cnJlbnRWaWV3LnRyYW5zZm9ybVN0cmluZyBpcyAi
IgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1ZpZXdTcGVjLWRlZmF1bHRzLmh0bWwgYi9M
YXlvdXRUZXN0cy9zdmcvZG9tL1NWR1ZpZXdTcGVjLWRlZmF1bHRzLmh0bWwKaW5kZXggYTAyNDI2
NzFkMmNhY2NiMGJlYzUyNDliMGU1Y2M5M2U0NjI3NjFlYi4uMTA2MGJkYzJjYmRkYTc4MjQzYThh
ZjhjMDY1NDI1YzY2ZjcyMzFmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdW
aWV3U3BlYy1kZWZhdWx0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHVmlld1Nw
ZWMtZGVmYXVsdHMuaHRtbApAQCAtMzQsNjIgKzM0LDY0IEBAIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiY3VycmVudFZpZXcudmlld1RhcmdldFN0cmluZyIsICIiKTsKIHNob3VsZEJlKCJjdXJyZW50
Vmlldy56b29tQW5kUGFuIiwgIlNWR1ZpZXdFbGVtZW50LlNWR19aT09NQU5EUEFOX01BR05JRlki
KTsKIAogZGVidWcoIiIpOwotZGVidWcoIlRyeSBjaGFuZ2luZyB6b29tQW5kUGFuIC0gbm9uZSBv
ZiB0aGVzZSB3aWxsIHdvcmssIGFzIFNWR1ZpZXdTcGVjIGlzIGZ1bGx5IHJlYWRvbmx5IC0gZXZl
biB0aGUgYW5pbWF0ZWQgcHJvcGVydGllcyBpdCBpbmhlcml0cyBmcm9tIHBhcmVudCBjbGFzc2Vz
IGxpa2UgU1ZHWm9vbUFuZFBhbi9TVkdGaXRUb1ZpZXdCb3giKTsKK2RlYnVnKCJUcnkgY2hhbmdp
bmcgem9vbUFuZFBhbiAtIG5vbmUgb2YgdGhlc2Ugd2lsbCB3b3JrLCBpdCBpcyBhIHByaW1pdGl2
ZSBwcm9wZXJ0eSIpOwogc2hvdWxkVGhyb3coImN1cnJlbnRWaWV3Lnpvb21BbmRQYW4gPSBTVkdW
aWV3RWxlbWVudC5TVkdfWk9PTUFORFBBTl9ESVNBQkxFIik7CiBzaG91bGRCZSgiY3VycmVudFZp
ZXcuem9vbUFuZFBhbiIsICJTVkdWaWV3RWxlbWVudC5TVkdfWk9PTUFORFBBTl9NQUdOSUZZIik7
CiAKIGRlYnVnKCIiKTsKLWRlYnVnKCJUcnkgY2hhbmdpbmcgdmlld0JveCAtIHRoaXMgaGFzIG5v
IGFmZmVjdCBvbiB0aGUgU1ZHU1ZHRWxlbWVudCB0aGUgdmlld1NwZWMgYmVsb25ncyB0byAtIGl0
IGV4cG9zZWQgYWxsIGl0cyBwcm9wZXJ0aWVzIGFzIHJlYWQtb25seSIpOwotc2hvdWxkVGhyb3co
ImN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC54ID0gMTAiKTsKLXNob3VsZEJlKCJjdXJyZW50
Vmlldy52aWV3Qm94LmJhc2VWYWwueCIsICIwIik7Ci1zaG91bGRUaHJvdygiY3VycmVudFZpZXcu
dmlld0JveC5iYXNlVmFsLnkgPSAyMCIpOwotc2hvdWxkQmUoImN1cnJlbnRWaWV3LnZpZXdCb3gu
YmFzZVZhbC55IiwgIjAiKTsKLXNob3VsZFRocm93KCJjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VW
YWwud2lkdGggPSA1MCIpOwotc2hvdWxkQmUoImN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC53
aWR0aCIsICIwIik7Ci1zaG91bGRUaHJvdygiY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLmhl
aWdodCA9IDEwMCIpOwotc2hvdWxkQmUoImN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC5oZWln
aHQiLCAiMCIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJyZW50Vmlldy52aWV3Qm94U3Ry
aW5nIiwgIjAgMCAwIDAiKTsKK2RlYnVnKCJDaGFuZ2luZyB2aWV3Qm94IC0gdGhpcyBoYXMgbm8g
YWZmZWN0IG9uIHRoZSBTVkdTVkdFbGVtZW50IHRoZSB2aWV3U3BlYyBiZWxvbmdzIHRvIC0gaXQg
aXMgYSBkZXRhY2hlZCBwcm9wZXJ0eSIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnZpZXdCb3gu
YmFzZVZhbC54ID0gMTAiLCAiMTAiKTsKK3Nob3VsZEJlKCJjdXJyZW50Vmlldy52aWV3Qm94LmJh
c2VWYWwueCIsICIxMCIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC55
ID0gMjAiLCAiMjAiKTsKK3Nob3VsZEJlKCJjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueSIs
ICIyMCIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC53aWR0aCA9IDUw
IiwgIjUwIik7CitzaG91bGRCZSgiY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLndpZHRoIiwg
IjUwIik7CitzaG91bGRCZSgiY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLmhlaWdodCA9IDEw
MCIsICIxMDAiKTsKK3Nob3VsZEJlKCJjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0
IiwgIjEwMCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJyZW50Vmlldy52aWV3Qm94U3Ry
aW5nIiwgIjEwIDIwIDUwIDEwMCIpOwogCiBkZWJ1ZygiIik7Ci1kZWJ1ZygiVHJ5IGNoYW5naW5n
IHZpZXdCb3hTdHJpbmciKTsKK2RlYnVnKCJUcnkgY2hhbmdpbmcgdmlld0JveFN0cmluZyAtIG5v
bmUgb2YgdGhlc2Ugd2lsbCB3b3JrLCBpdCBpcyBhIHByaW1pdGl2ZSBwcm9wZXJ0eSIpOwogc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJyZW50Vmlldy52aWV3Qm94U3RyaW5nID0gJzEgMiAzIDQn
IiwgIjEgMiAzIDQiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZpZXcudmlld0Jv
eFN0cmluZyIsICIwIDAgMCAwIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3
LnZpZXdCb3hTdHJpbmciLCAiMTAgMjAgNTAgMTAwIik7CiAKIGRlYnVnKCIiKTsKLWRlYnVnKCJU
cnkgY2hhbmdpbmcgcHJlc2VydmVBc3BlY3RSYXRpbyIpOwotc2hvdWxkVGhyb3coImN1cnJlbnRW
aWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFzZVZhbC5hbGlnbiA9IFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW8uU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSU4iKTsKLXNob3VsZEJlKCJjdXJy
ZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwuYWxpZ24iLCAiU1ZHUHJlc2VydmVB
c3BlY3RSYXRpby5TVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlEWU1JRCIpOwotc2hvdWxkVGhy
b3coImN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFzZVZhbC5tZWV0T3JTbGljZSA9
IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX01FRVRPUlNMSUNFX1NMSUNFIik7Ci1zaG91bGRC
ZSgiY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLm1lZXRPclNsaWNlIiwg
IlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX01FRVRPUlNMSUNFX01FRVQiKTsKK2RlYnVnKCJD
aGFuZ2luZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvIC0gdGhpcyBoYXMgbm8gYWZmZWN0IG9uIHRoZSBT
VkdTVkdFbGVtZW50IHRoZSB2aWV3U3BlYyBiZWxvbmdzIHRvIC0gaXQgaXMgYSBkZXRhY2hlZCBw
cm9wZXJ0eSIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFz
ZVZhbC5hbGlnbiA9IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX1BSRVNFUlZFQVNQRUNUUkFU
SU9fWE1JTllNSU4iLCAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfUFJFU0VSVkVBU1BFQ1RS
QVRJT19YTUlOWU1JTiIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0
aW8uYmFzZVZhbC5hbGlnbiIsICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19QUkVTRVJWRUFT
UEVDVFJBVElPX1hNSU5ZTUlOIik7CitzaG91bGRCZSgiY3VycmVudFZpZXcucHJlc2VydmVBc3Bl
Y3RSYXRpby5iYXNlVmFsLm1lZXRPclNsaWNlID0gU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdf
TUVFVE9SU0xJQ0VfU0xJQ0UiLCAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJ
Q0VfU0xJQ0UiKTsKK3Nob3VsZEJlKCJjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJh
c2VWYWwubWVldE9yU2xpY2UiLCAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJ
Q0VfU0xJQ0UiKTsKIAogZGVidWcoIiIpOwotZGVidWcoIlRyeSBjaGFuZ2luZyBwcmVzZXJ2ZUFz
cGVjdFJhdGlvU3RyaW5nIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnBy
ZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcgPSAneE1pbllNaW4gc2xpY2UnIiwgInhNaW5ZTWluIHNs
aWNlIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0
UmF0aW9TdHJpbmciLCAieE1pZFlNaWQgbWVldCIpOwotCitkZWJ1ZygiQ2hhbmdpbmcgcHJlc2Vy
dmVBc3BlY3RSYXRpb1N0cmluZyAtIG5vbmUgb2YgdGhlc2Ugd2lsbCB3b3JrLCBpdCBpcyBhIHBy
aW1pdGl2ZSBwcm9wZXJ0eSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJyZW50Vmlldy5w
cmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nID0gJ3hNaWRZTWlkIG1lZXQnIiwgInhNaWRZTWlkIG1l
ZXQiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RS
YXRpb1N0cmluZyIsICJ4TWluWU1pbiBzbGljZSIpOwogCiBkZWJ1ZygiIik7Ci1kZWJ1ZygiVHJ5
IGNoYW5naW5nIHRyYW5zZm9ybVN0cmluZyIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJy
ZW50Vmlldy50cmFuc2Zvcm1TdHJpbmcgPSAncm90YXRlKDkwKSciLCAicm90YXRlKDkwKSIpOwot
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJyZW50Vmlldy50cmFuc2Zvcm1TdHJpbmciLCAiIik7
Ci0KLQotZGVidWcoIiIpOwotZGVidWcoIlRyeSBjaGFuZ2luZyB2aWV3VGFyZ2V0Iik7CitkZWJ1
ZygiVHJ5IGNoYW5naW5nIHZpZXdUYXJnZXQgLSBub25lIG9mIHRoZXNlIHdpbGwgd29yaywgaXQg
aXMgYSBwcmltaXRpdmUgcHJvcGVydHkiKTsKIHNob3VsZEJlKCJjdXJyZW50Vmlldy52aWV3VGFy
Z2V0ID0gc3ZnRWxlbWVudCIsICJzdmdFbGVtZW50Iik7CiBzaG91bGRCZU51bGwoImN1cnJlbnRW
aWV3LnZpZXdUYXJnZXQiKTsKIAogCiBkZWJ1ZygiIik7Ci1kZWJ1ZygiVHJ5IGNoYW5naW5nIHZp
ZXdUYXJnZXRTdHJpbmciKTsKK2RlYnVnKCJUcnkgY2hhbmdpbmcgdmlld1RhcmdldFN0cmluZyAt
IG5vbmUgb2YgdGhlc2Ugd2lsbCB3b3JrLCBpdCBpcyBhIHByaW1pdGl2ZSBwcm9wZXJ0eSIpOwog
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJyZW50Vmlldy52aWV3VGFyZ2V0U3RyaW5nID0gJyN0
ZXN0JyIsICIjdGVzdCIpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJyZW50Vmlldy52aWV3
VGFyZ2V0U3RyaW5nIiwgIiIpOwogCiBkZWJ1ZygiIik7Ci1kZWJ1ZygiVHJ5IGNoYW5naW5nIHRy
YW5zZm9ybSIpOwotc2hvdWxkVGhyb3coImN1cnJlbnRWaWV3LnRyYW5zZm9ybS5jbGVhcigpIik7
CitkZWJ1ZygiQ2hhbmdpbmcgdHJhbnNmb3JtIC0gdGhpcyBoYXMgbm8gYWZmZWN0IG9uIHRoZSBT
VkdTVkdFbGVtZW50IHRoZSB2aWV3U3BlYyBiZWxvbmdzIHRvIC0gaXQgaXMgYSBkZXRhY2hlZCBw
cm9wZXJ0eSIpOwordmFyIHRyYW5zZm9ybSA9IHN2Z0VsZW1lbnQuY3JlYXRlU1ZHVHJhbnNmb3Jt
KCk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnRyYW5zZm9ybS5hcHBlbmRJ
dGVtKHRyYW5zZm9ybSkudG9TdHJpbmcoKSIsICJbb2JqZWN0IFNWR1RyYW5zZm9ybV0iKTsKK3No
b3VsZEJlKCJjdXJyZW50Vmlldy50cmFuc2Zvcm0ubnVtYmVyT2ZJdGVtcyIsICIxIik7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnRyYW5zZm9ybVN0cmluZyIsICJtYXRyaXgo
MSAwIDAgMSAwIDApIik7CitzaG91bGRCZVVuZGVmaW5lZChjdXJyZW50Vmlldy50cmFuc2Zvcm0u
Y2xlYXIoKSk7CiBzaG91bGRCZSgiY3VycmVudFZpZXcudHJhbnNmb3JtLm51bWJlck9mSXRlbXMi
LCAiMCIpOwogCitkZWJ1ZygiIik7CitkZWJ1ZygiVHJ5IGNoYW5naW5nIHRyYW5zZm9ybVN0cmlu
ZyAtIG5vbmUgb2YgdGhlc2Ugd2lsbCB3b3JrLCBpdCBpcyBhIHByaW1pdGl2ZSBwcm9wZXJ0eSIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJyZW50Vmlldy50cmFuc2Zvcm1TdHJpbmcgPSAn
cm90YXRlKDkwKSciLCAicm90YXRlKDkwKSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJy
ZW50Vmlldy50cmFuc2Zvcm1TdHJpbmciLCAiIik7CisKIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380130</attachid>
            <date>2019-10-03 10:38:12 -0700</date>
            <delta_ts>2019-10-03 10:49:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202479-20191003103811.patch</filename>
            <type>text/plain</type>
            <size>105347</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDA3ZTkxNDk2NDU3NGI1
MDEyMWIwMWJjOWEzOGUxZDZjZTdlMTUyMi4uMmY1Y2VmMDBlZTdmMGFjZDJiMDgxOWZiNzU5MGJk
MDMzMWM5ZTZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwMSBAQAorMjAxOS0xMC0wMyAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ug
RE9NUG9pbnQgYSBET01MaXZlT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDI0NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTVkdQcm9wZXJ0eSBoYXMgdG8gY29tZSBiYWNrIGJlY2F1c2UgRE9N
UG9pbnQgaW5oZXJpdHMgRE9NUG9pbnRSZWFkT25seQorICAgICAgICB3aGljaCBpcyBSZWZDb3Vu
dGVkLiBTbyBET01MaXZlUHJvcGVydHkgY2FuJ3QgYmUgUmVmQ291bnRlZC4gT3RoZXJ3aXNlCisg
ICAgICAgIERPTVBvaW50IHdpbGwgbWFrZSBhIGRpYW1vbmQgaW5oZXJpdGFuY2UuIFNWR1Byb3Bl
cnR5IHdpbGwgaW5oZXJpdCAKKyAgICAgICAgRE9NTGl2ZVByb3BlcnR5IGFuZCBpdCB3aWxsIGJl
IFJlZkNvdW50ZWQuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBkb20vRE9NTGl2ZVByb3BlcnR5Lmg6CisgICAgICAgICogZG9tL0RPTVBvaW50Lmg6
IEFkZGVkLgorICAgICAgICAqIGRvbS9ET01Qb2ludC5oOgorICAgICAgICAqIGRvbS9ET01Qb2lu
dC5pZGw6CisgICAgICAgICogZG9tL0RPTVBvaW50UmVhZE9ubHkuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVBvaW50UmVhZE9ubHk6OnhGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpET01Qb2ludFJlYWRPbmx5Ojp5Rm9yQmluZGluZ3MgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NUG9pbnRSZWFkT25seTo6ekZvckJpbmRpbmdzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVBvaW50UmVhZE9ubHk6OndGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgICog
ZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uRXZlbnQuY3BwOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnLmg6CisgICAgICAg
ICogc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NW
R01lbWJlckFjY2Vzc29yLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJpbWl0aXZl
UHJvcGVydHlBbmltYXRvci5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6aXNBdHRhY2hlZCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6YXR0YWNoKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5OjpkZXRhY2gpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmNvbnRleHRFbGVtZW50IGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5Ojpjb21taXRDaGFuZ2UpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmFjY2VzcyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6aXNSZWFkT25seSBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6aXNEaXJ0eSBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6c2V0RGlydHkpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OnN5bmNocm9uaXplKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5OjpTVkdQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAg
ICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlBbmltYXRvckZhY3RvcnkuaDoKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eS5oOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHkuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVy
dGllcy9TVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3IuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGll
cy9TVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3JJbXBsLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRp
ZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3RBbmltYXRvci5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0
aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3JJbXBsLmg6CisKKzIwMTktMTAtMDEgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBs
YWNlIFNWR1Byb3BlcnR5L1NWR1Byb3BlcnR5T3duZXIgYnkgRE9NTGl2ZVByb3BlcnR5L0RPTUxp
dmVQcm9wZXJ0eU9ic2VydmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDE3ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIGlzIGEgc3RlcCB0b3dhcmRzIHJlcGxhY2luZyBTVkdQb2ludCBieSBE
T01Qb2ludC4KKworICAgICAgICAtLSBBZGQgYSBuZXcgY2xhc3MsIG5hbWVkIERPTUxpdmVQcm9w
ZXJ0eS4gSXRzIGpvYiBpcyB0byBjb21tdW5pY2F0ZSB0aGUKKyAgICAgICAgICAgY2hhbmdlcyBp
biB0aGlzIG9iamVjdCB0byBpdHMgb2JzZXJ2ZXIuIFRoaXMgaXMgcmVwbGFjaW5nIFNWR1Byb3Bl
cnR5LgorICAgICAgICAgICBET01Qb2ludCB3aWxsIGJlIG1hZGUgaW4gYSBzdXBlciBvZiBpdCBh
bHNvIGluIGEgZm9sbG93aW5nIHBhdGNoLgorCisgICAgICAgIC0tIEFkZCBhIG5ldyBjbGFzcywg
bmFtZWQgRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIgYW5kIG1ha2UgaXQgdGhlIGJhc2UKKyAgICAg
ICAgICAgY2xhc3Mgb2YgRE9NTGl2ZVByb3BlcnR5IG9ic2VydmVycy4gQ3VycmVudGx5IHRoZSBm
b2xsb3dpbmcgY2xhc3MgYXJlCisgICAgICAgICAgIG1hZGUgc3VwZXIgY2xhc3NlcyBvZiBET01M
aXZlUHJvcGVydHlPYnNlcnZlcjoKKyAgICAgICAgICAgMS4gU1ZHRWxlbWVudDogVGhpcyBvYnNl
cnZlcyB0aGUgY2hhbmdlcyBpbiBhbGwgdGhlIFNWRyBwcm9wZXJ0aWVzLgorICAgICAgICAgICAy
LiBTVkdBbmltYXRlZFByb3BlcnR5OiBUaGlzIG9ic2VydmVzIHRoZSBjaGFuZ2VzIGluIGl0cyBi
YXNlVmFsLgorICAgICAgICAgICAzLiBTVkdQcm9wZXJ0eUxpc3Q6IFRoaXMgb2JzZXJ2ZXMgdGhl
IGNoYW5nZXMgaW4gdGhlIGl0ZW1zLgorICAgICAgICAgICA0LiBTVkdUcmFuc2Zvcm06IFRoaXMg
b2JzZXJ2ZXMgdGhlIGNoYW5nZXMgaW4gdGhlIHVuZGVybHlpbmcgU1ZHTWF0cml4LgorCisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogZG9tL0RPTUxpdmVQcm9wZXJ0eS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6aXNBdHRhY2hlZCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpET01MaXZlUHJvcGVydHk6Om9ic2VydmVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6YXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxp
dmVQcm9wZXJ0eTo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6
c3ZnQ29udGV4dEVsZW1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3Bl
cnR5Ojppc1JlYWRPbmx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0
eTo6Y29tbWl0Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6dmFs
dWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01MaXZlUHJvcGVydHk6OkRP
TUxpdmVQcm9wZXJ0eSk6CisgICAgICAgICogZG9tL0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXI6Om9ic2Vy
dmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eU9ic2VydmVyOjpw
cm9wZXJ0eVNWR0NvbnRleHRFbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxp
dmVQcm9wZXJ0eU9ic2VydmVyOjppc1Byb3BlcnR5UmVhZE9ubHkgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXI6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKToK
KyAgICAgICAgKiBzdmcvU1ZHQW5nbGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpj
cmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0VsZW1lbnQ6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKToKKyAgICAgICAgKiBzdmcvU1ZHRWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGguaDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0xlbmd0aDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6dmFsdWVGb3JC
aW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OnNldFZhbHVlRm9yQmluZGlu
Z3MpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpjb252ZXJ0VG9TcGVjaWZpZWRVbml0
cyk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0xlbmd0aExpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGhMaXN0OjpT
VkdMZW5ndGhMaXN0KToKKyAgICAgICAgKiBzdmcvU1ZHTWF0cml4Lmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXRyaXg6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR051bWJlci5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyOjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdOdW1i
ZXJMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0OjpjcmVhdGUpOgorICAg
ICAgICAqIHN2Zy9TVkdQYXRoU2VnLmg6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0Lmg6
CisgICAgICAgICogc3ZnL1NWR1BvaW50TGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9p
bnRMaXN0OjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVhdGUpOgorICAg
ICAgICAqIHN2Zy9TVkdSZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0OjpjcmVhdGUp
OgorICAgICAgICAqIHN2Zy9TVkdTdHJpbmdMaXN0Lmg6CisgICAgICAgICogc3ZnL1NWR1RyYW5z
Zm9ybS5oOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1MaXN0Lmg6CisgICAgICAgICogc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFByb3BlcnR5OjpvYnNlcnZlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFByb3BlcnR5Ojpjb21taXRQcm9wZXJ0eUNoYW5nZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojpvd25lciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICog
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuaDoKKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5UGFpckFjY2Vzc29ySW1wbC5oOgorICAgICAg
ICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR0xpc3QuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdN
ZW1iZXJBY2Nlc3Nvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWVtYmVyQWNjZXNzb3I6Om1h
dGNoZXMgY29uc3QpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1BvaW50ZXJNZW1iZXJB
Y2Nlc3Nvci5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ByaW1pdGl2ZVByb3BlcnR5
QW5pbWF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0
b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1h
dG9yOjpTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9yKToKKyAgICAgICAgKiBzdmcvcHJvcGVy
dGllcy9TVkdQcm9wZXJ0eS5oOiBSZW1vdmVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NW
R1Byb3BlcnR5QWNjZXNzb3IuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0
eUFuaW1hdG9yRmFjdG9yeS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlBbmltYXRv
ckZhY3Rvcnk6OmNyZWF0ZUNvbG9yQW5pbWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJv
cGVydHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZUxlbmd0aEFuaW1hdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1Byb3BlcnR5QW5pbWF0b3JGYWN0b3J5OjpjcmVhdGVMZW5ndGhMaXN0QW5pbWF0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0
ZU51bWJlckFuaW1hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5QW5pbWF0b3JG
YWN0b3J5OjpjcmVhdGVTdHJpbmdBbmltYXRvcik6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMv
U1ZHUHJvcGVydHlMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eUxpc3Q6OlNW
R1Byb3BlcnR5TGlzdCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25l
ci5oOiBSZW1vdmVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXJS
ZWdpc3RyeS5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5UmVnaXN0cnku
aDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eS5o
OgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHkuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1ZhbHVlUHJvcGVydHk6OlNWR1ZhbHVlUHJvcGVydHkpOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlBbmltYXRvci5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9yOjpTVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3Ip
OgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlBbmltYXRvckltcGwu
aDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdC5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVmFsdWVQcm9wZXJ0eUxpc3Q6OlNWR1ZhbHVlUHJvcGVydHlMaXN0
KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9y
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yOjpTVkdW
YWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdW
YWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9ySW1wbC5oOgorCisyMDE5LTEwLTAxICBTYWlkIEFib3Ut
SGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFNWR1By
b3BlcnR5U3RhdGUgZnJvbSBTVkdQcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNDM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhIHN0ZXAgdG93YXJkcyByZXBsYWNpbmcgU1ZH
UG9pbnQgYnkgRE9NUG9pbnQuCisKKyAgICAgICAgU1ZHUHJvcGVydHkga2VlcHMgYSBtZW1iZXIg
b2YgdHlwZSBTVkdQcm9wZXJ0eVN0YXRlIHdoaWNoIHRlbGxzIHdoZXRoZXIKKyAgICAgICAgaXQg
bmVlZHMgdG8gYmUgcmUtc2VyaWFsaXplZCB0byBpdHMgYXR0cmlidXRlIG9yIG5vdC4gQnV0IHRo
ZSBkaXJ0eSBzdGF0ZQorICAgICAgICBpcyBvbmx5IHNldCBpbiBTVkdFbGVtZW50Ojpjb21taXRQ
cm9wZXJ0eUNoYW5nZSgpLgorCisgICAgICAgIFNvIGluc3RlYWQgb2YgaGF2aW5nIFNWR0VsZW1l
bnQgc2VuZHMgdGhpcyBjaGFuZ2UgYmFjayB0byB0aGUgcHJvcGVydHksCisgICAgICAgIHdlIGFy
ZSBnb2luZyB0byBrZWVwIGEgSGFzaFNldDxRdWFsaWZpZWROYW1lPiBpbiBTVkdFbGVtZW50IHRv
IHRlbGwgd2hpY2gKKyAgICAgICAgYXR0cmlidXRlcyBuZWVkIHRvIGJlIHJlLXNlcmlhbGl6ZWQu
IEFuZCBpbnN0ZWFkIG9mIGNhbGxpbmcgdGhlIHZpcnR1YWwKKyAgICAgICAgbWV0aG9kIHN5bmNo
cm9uaXplKCkgd2hpY2ggd2FzIHJldHVybmluZyBPcHRpb25hbDxTdHJpbmc+LCB3ZSBhcmUgZ29p
bmcKKyAgICAgICAgdG8gY2FsbCB0aGUgdmlydHVhbCBtZXRob2QgdmFsdWVBc1N0cmluZygpIHdo
aWNoIHJldHVybnMgYSBTdHJpbmcuCisKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50OjpzeW5jaHJvbml6ZUF0dHJpYnV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdFbGVtZW50OjpzeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6Y29tbWl0UHJvcGVydHlDaGFuZ2UpOgorICAgICAg
ICAqIHN2Zy9TVkdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aC5oOgorICAgICAg
ICAqIHN2Zy9TVkdMZW5ndGhMaXN0Lmg6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6aW5pdGlhbFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT46
OmZyb21TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFp
dHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6cGFyc2UpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
Pjo6dG9TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkRGVjb3JhdGVkUHJvcGVydHkuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZFByaW1pdGl2ZVByb3BlcnR5Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6
dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3Bl
cnR5Ojppc0RpcnR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkUHJvcGVydHk6OnNldERpcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkUHJvcGVydHk6OnN5bmNocm9uaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TGlzdC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlQYWlyQWNjZXNzb3JJbXBsLmg6CisgICAgICAgICogc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5Lmg6CisgICAgICAgICogc3ZnL3By
b3BlcnRpZXMvU1ZHTWVtYmVyQWNjZXNzb3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01lbWJl
ckFjY2Vzc29yOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01l
bWJlckFjY2Vzc29yOjpzeW5jaHJvbml6ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogc3Zn
L3Byb3BlcnRpZXMvU1ZHUG9pbnRlck1lbWJlckFjY2Vzc29yLmg6CisgICAgICAgICogc3ZnL3By
b3BlcnRpZXMvU1ZHUHJvcGVydHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5Ojph
dHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmRldGFjaCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6aXNEaXJ0eSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6c2V0RGlydHkpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHk6OnN5bmNocm9uaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkuaDoKKyAgICAgICAgKiBzdmcvcHJv
cGVydGllcy9TVkdQcm9wZXJ0eVJlZ2lzdHJ5Lmg6CisKKzIwMTktMTAtMDEgIFNhaWQgQWJvdS1I
YWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgU1ZHUHJv
cGVydHlBY2Nlc3MgZnJvbSBTVkdQcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNDE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhIHN0ZXAgdG93YXJkcyByZXBsYWNpbmcgU1ZH
UG9pbnQgYnkgRE9NUG9pbnQuCisKKyAgICAgICAgQW4gU1ZHUHJvcGVydHkgaXMgcmVhZC1vbmx5
IGlmIGl0IG9yIGl0cyBvd25lciBpcyB0aGUgYW5pbVZhbCBvZiBhbgorICAgICAgICBTVkdBbmlt
YXRlZFByb3BlcnR5IG9yIFNWR0FuaW1hdGVkUHJvcGVydHlMaXN0LiBJbiB0aGlzIGNhc2UgYWxs
IGF0dGVtcHRzCisgICAgICAgIHRvIGNoYW5nZSBpdCB0aHJvdWdoIEphdmFTY3JpcHQgc2hvdWxk
IHRocm93IGV4cGVjdGlvbnMuCisKKyAgICAgICAgU28gaW5zdGVhZCBvZiBrZWVwaW5nIGEgbWVt
YmVyIG9mIFNWR1Byb3BlcnR5QWNjZXNzIGluIGVhY2ggU1ZHUHJvcGVydHksCisgICAgICAgIHdl
IGNhbiB3YWxrIHRocm91Z2ggdGhlIFNWR1Byb3BlcnR5T3duZXIgY2hhaW4gdGlsbCB3ZSByZWFj
aCBhbiBvd25lciBvZgorICAgICAgICB0eXBlIFNWR0FuaW1hdGVkUHJvcGVydHkgb3IgU1ZHQW5p
bWF0ZWRQcm9wZXJ0eUxpc3QuIFRoaXMgb3duZXIgY29tcGFyZXMKKyAgICAgICAgdGhlIHByb3Bl
cnR5IHRvIGJlIG1vZGlmaWVkIHdpdGggaXRzIGFuaW1WYWwuIEFuZCBpZiB0aGV5IGFyZSB0aGUg
c2FtZSwKKyAgICAgICAgaXQgd2lsbCByZXR1cm4gJ3RydWUnIHRocm91Z2ggaXRzIHZpcnR1YWwg
bWV0aG9kIGlzUHJvcGVydHlSZWFkT25seSgpLgorCisgICAgICAgICogc3ZnL1NWR0FuZ2xlLmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmdsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZH
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGguaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xlbmd0aDo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdC5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xlbmd0aExpc3Q6OlNWR0xlbmd0aExpc3QpOgorICAgICAgICAqIHN2Zy9TVkdNYXRyaXgu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcv
U1ZHTnVtYmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXI6OmNyZWF0ZSk6CisgICAg
ICAgICogc3ZnL1NWR051bWJlckxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlckxp
c3Q6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0Lmg6CisgICAgICAgICog
c3ZnL1NWR1BvaW50TGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnRMaXN0OjpjcmVh
dGUpOgorICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9T
VkdSZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0OjpjcmVhdGUpOgorICAgICAgICAq
IHN2Zy9TVkdUcmFuc2Zvcm0uaDoKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdC5oOgor
ICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlMaXN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5TGlzdDo6U1ZHQW5pbWF0ZWRQcm9wZXJ0
eUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3Q6OmVuc3Vy
ZUFuaW1WYWwpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9w
ZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5OjpTVkdB
bmltYXRlZFZhbHVlUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRWYWx1
ZVByb3BlcnR5OjplbnN1cmVBbmltVmFsKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQ
cm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmF0dGFjaCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1Byb3BlcnR5Ojpjb250ZXh0RWxlbWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
cm9wZXJ0eTo6aXNSZWFkT25seSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eTo6U1ZHUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmFjY2VzcyBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlMaXN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eUxpc3Q6OlNWR1Byb3BlcnR5TGlzdCk6
CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lci5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlPd25lcjo6aXNQcm9wZXJ0eVJlYWRPbmx5IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5T3duZXI6OnByb3BlcnR5Q29udGV4dEVsZW1lbnQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlPd25lcjo6YXR0cmlidXRlQ29u
dGV4dEVsZW1lbnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NW
R1ZhbHVlUHJvcGVydHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlUHJvcGVydHk6OlNW
R1ZhbHVlUHJvcGVydHkpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVy
dHlMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZVByb3BlcnR5TGlzdDo6U1ZHVmFs
dWVQcm9wZXJ0eUxpc3QpOgorCisyMDE5LTEwLTAxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91
aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSB0aGUgU1ZHIHByb3BlcnRpZXMgb2Yg
U1ZHVmlld1NwZWMgbW9kaWZpYWJsZSBidXQgZGV0YWNoZWQgcHJvcGVydGllcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNDExCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gZmFjaWxpdGF0ZSBhY2Nl
c3NpbmcgdGhlIFNWR1Byb3BlcnRpZXMsIG1ha2UgYWxsIHRoZSBwcm9wZXJ0aWVzIG9mCisgICAg
ICAgIFNWR1ZpZXdTcGVjIG1vZGlmaWFibGUgYnV0IGRldGFjaGVkIHByb3BlcnRpZXMuIFRoaXMg
d2lsbCBiZSBpbiBjb21wbGlhbmNlCisgICAgICAgIHdpdGggdGhlIHNwZWNzOiBodHRwczovL3d3
dy53My5vcmcvVFIvU1ZHMTEvdHlwZXMuaHRtbCNJbnRlcmZhY2VTVkdWaWV3U3BlYy4KKworICAg
ICAgICAqIHN2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRml0
VG9WaWV3Qm94OjpTVkdGaXRUb1ZpZXdCb3gpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRml0VG9W
aWV3Qm94OjpwYXJzZVZpZXdCb3gpOgorICAgICAgICAqIHN2Zy9TVkdGaXRUb1ZpZXdCb3guaDoK
KyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmll
d1NwZWM6OlNWR1ZpZXdTcGVjKToKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuaDoKKwogMjAx
OS0xMC0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgYXR0ZW1wdCB0byBmaXggV2luZG93cyBidWlsZCBhZnRlciByMjUwNTI3LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKaW5kZXggNTRhZjIyZGFkZTY1M2ZkM2FiYTc4NmMxNTlmZTAwZDJmMGE4YmQ5NC4u
MzU5Mzc2MmY5NjBlMmYwMTI4MmZmOWI5ODlhMGFiZTY2NDdiZWY0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCkBAIC0zNjAsNiArMzYwLDggQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIGRvbS9ET01FeGNlcHRpb24uaAogICAgIGRvbS9ET01IaWdoUmVzVGltZVN0YW1w
LmgKICAgICBkb20vRE9NSW1wbGVtZW50YXRpb24uaAorICAgIGRvbS9ET01MaXZlUHJvcGVydHku
aAorICAgIGRvbS9ET01MaXZlUHJvcGVydHlPYnNlcnZlci5oCiAgICAgZG9tL0RPTVBhc3RlQWNj
ZXNzLmgKICAgICBkb20vRE9NUmVjdC5oCiAgICAgZG9tL0RPTVJlY3RJbml0LmgKQEAgLTEzOTAs
NyArMTM5Miw2IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBz
dmcvcHJvcGVydGllcy9TVkdMaXN0LmgKICAgICBzdmcvcHJvcGVydGllcy9TVkdQcmltaXRpdmVM
aXN0LmgKICAgICBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5oCi0gICAgc3ZnL3Byb3BlcnRp
ZXMvU1ZHUHJvcGVydHlPd25lci5oCiAgICAgc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFp
dHMuaAogCiAgICAgdGVzdGluZy9Nb2NrR2FtZXBhZC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGY5NTg2
ZmEwNDhjYjdlZWQyODY1OWJhMDYwYjhkZjhhMTBlMmJkZGEuLjIyMzJjNjZlNjg1YmRhYTIyYzdl
ZDMzYjQ5ZTY0OTBlMDU0MjYzYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC04MzcsNiArODM3LDcgQEAg
ZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHAKIGRvbS9DdXN0b21FdmVudC5jcHAKIGRvbS9E
T01FeGNlcHRpb24uY3BwCiBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCitkb20vRE9NUG9pbnQu
Y3BwCiBkb20vRE9NUG9pbnRSZWFkT25seS5jcHAKIGRvbS9ET01RdWFkLmNwcAogZG9tL0RPTVJl
Y3RMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGExNzYxYzY3YjRjOTVkOGVhYjQ3N2E3YzAwYWU1NTQ1ZDIzYTc5ZWUu
LjlkMjYwMWViNTQ1ZDBlNjRlZjU5YWU4OTIwNGY3OGZjNjcyZWNlNjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwODUsMTIg
KzIwODUsMTMgQEAKIAkJNzFFRkNFREMyMDJCMzhBOTAwRDdDNDExIC8qIEFuaW1hdGlvbkVmZmVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFFRkNF
RDcyMDJCMzg4RDAwRDdDNDExIC8qIEFuaW1hdGlvbkVmZmVjdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyMTQ0MzMxMjIzRUM4NTQwMEYxMkZG
NyAvKiAobnVsbCkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzIxNDQzMzIyMjNFQzg1RjAw
RjEyRkY3IC8qIChudWxsKSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk3MjE0NDMzMzIyM0VD
OEIwMDBGMTJGRjcgLyogU1ZHUHJvcGVydHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU1RUU1MzYzMjIzQjJBMjQwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0
eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTcy
MTQ0MzM0MjIzRUM5MTYwMEYxMkZGNyAvKiBTVkdQcm9wZXJ0eU93bmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUVFNTM2MDIyM0IyQTIxMDBGQkE5
NDQgLyogU1ZHUHJvcGVydHlPd25lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTcyMjgzRjBFMjMwQjI2OEMwMEY1RDgyOCAvKiBJbWFnZVBhaW50
aW5nT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIEltYWdlUGFpbnRpbmdPcHRpb25zLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI0RUQzMzIx
QTNBOEIyMzAwRjVGMTNDIC8qIEpTRVhUQmxlbmRNaW5NYXguaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNEVEMzMwMUEzQThCMjMwMEY1RjEzQyAvKiBK
U0VYVEJsZW5kTWluTWF4LmggKi87IH07CiAJCTcyNEVFNTUwMURDODBEN0YwMEE5MUZGQiAvKiBB
Y3Rpdml0eVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3MjRFRTU0RTFEQzdGMjVCMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyNEVFNTUxMURDODBE
ODQwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNEVFNTRGMURDN0YyNUIwMEE5MUZG
QiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3MjgzMTVDMTIzNDQ0MDE1MDAwN0QyNzcgLyog
RE9NTGl2ZVByb3BlcnR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3MjgzMTVDMDIzNDQyMjkyMDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzI4MzE1QzIy
MzQ0NDAyMjAwMDdEMjc3IC8qIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjgzMTVCRTIzNDQyMjkxMDAwN0Qy
NzcgLyogRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3MjgzMTVDNzIzNDUxODIzMDAwN0QyNzcgLyogU1ZH
UHJvcGVydHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcyODMxNUM1MjM0NTBGQzIwMDA3RDI3NyAvKiBTVkdQcm9wZXJ0eS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc1NTNDRkU4MTA4RjQ3M0YwMEVB
MjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGlu
ZVJlY29yZEZhY3RvcnkuaCAqLzsgfTsKIAkJNzU3OTNFODQwRDBDRTBCMzAwN0ZDMEFDIC8qIE1l
c3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU3OTNFODEwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oICovOyB9OwogCQk3
NTc5M0VDOTBEMENFNzJEMDA3RkMwQUMgLyogSlNNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRUM3MEQwQ0U3MkQwMDdGQzBB
QyAvKiBKU01lc3NhZ2VFdmVudC5oICovOyB9OwpAQCAtODU2NSwxMCArODU2Niw4IEBACiAJCTU1
RUU1MzVEMjIzQjJBMEQwMEZCQTk0NCAvKiBTVkdBbmltYXRlZFByb3BlcnR5UGFpckFjY2Vzc29y
SW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFByb3Bl
cnR5UGFpckFjY2Vzc29ySW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUVF
NTM1RTIyM0IyQTBFMDBGQkE5NDQgLyogU1ZHQW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGlvbkFkZGl0aXZl
VmFsdWVGdW5jdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUVFNTM1RjIy
M0IyQTBGMDBGQkE5NDQgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBbmltYXRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFByb3BlcnR5UGFpckFuaW1h
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU1RUU1MzYwMjIzQjJBMjEwMEZC
QTk0NCAvKiBTVkdQcm9wZXJ0eU93bmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNWR1Byb3BlcnR5T3duZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVF
RTUzNjEyMjNCMkEyMjAwRkJBOTQ0IC8qIFNWR0F0dHJpYnV0ZUFuaW1hdG9yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0F0dHJpYnV0ZUFuaW1hdG9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVFRTUzNjIyMjNCMkEyMzAwRkJBOTQ0IC8q
IFNWR0FuaW1hdGVkUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NUVF
NTM2MzIyM0IyQTI0MDBGQkE5NDQgLyogU1ZHUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU1ZHUHJvcGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTVFRTUzNjQyMjNCMkEyNDAwRkJBOTQ0IC8qIFNWR0F0dHJpYnV0ZUFuaW1hdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0F0dHJpYnV0ZUFuaW1hdG9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1RkE3RkZBMjExMEVDRDcwMDVBRUZFNyAvKiBT
Vkdab29tQW5kUGFuVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdab29tQW5kUGFuVHlwZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzA0NDA1NzFFNTM4NTE2MDAzNTY2MDEgLyog
Q3J5cHRvQWxnb3JpdGhtQUVTX0NGQk1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1BRVNfQ0ZCTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTk0NDksNiArOTQ0OCwxMCBAQAogCQk3MjdBRkVEMTFBMkVBNkEwMDAw
NDQyRTggLyogRVhUc1JHQi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBFWFRzUkdCLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI3QUZFRDIxQTJF
QTZBMDAwMDQ0MkU4IC8qIEVYVHNSR0IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRVhUc1JHQi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjdBRkVEMzFBMkVB
NkEwMDAwNDQyRTggLyogRVhUc1JHQi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRVhUc1JH
Qi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyODMxNUJFMjM0NDIyOTEwMDA3
RDI3NyAvKiBET01MaXZlUHJvcGVydHlPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01MaXZlUHJvcGVydHlPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3MjgzMTVDMDIzNDQyMjkyMDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUxpdmVQcm9wZXJ0eS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjgzMTVDNTIzNDUwRkMyMDAwN0QyNzcgLyogU1ZH
UHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUHJvcGVydHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI4MzE1Q0UyMzQ2NTkwMTAwMDdEMjc3
IC8qIERPTVBvaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVBvaW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIEltYWdl
UGFpbnRpbmdPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlUGFpbnRpbmdPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyRTQxNzYxMUEyRThEMkYwMDRDNTYyQSAv
KiBKU0VYVHNSR0IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNF
WFRzUkdCLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJFNDE3NjIxQTJFOEQy
RjAwNEM1NjJBIC8qIEpTRVhUc1JHQi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0VYVHNSR0IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MTYzLDEzICsx
NjE2NiwxMiBAQAogCQkJCTU1RENDNTI1MjI0MDc0OUUwMEMyNkUzMiAvKiBTVkdQcmltaXRpdmVM
aXN0LmggKi8sCiAJCQkJNzI2NkYwMTUyMjQxQzA5ODAwODMzOTc1IC8qIFNWR1ByaW1pdGl2ZVBy
b3BlcnR5QW5pbWF0b3IuaCAqLywKIAkJCQk3MjY2RjAxNDIyNDFCRkIyMDA4MzM5NzUgLyogU1ZH
UHJpbWl0aXZlUHJvcGVydHlBbmltYXRvckltcGwuaCAqLywKLQkJCQk1NUVFNTM2MzIyM0IyQTI0
MDBGQkE5NDQgLyogU1ZHUHJvcGVydHkuaCAqLywKKwkJCQk3MjgzMTVDNTIzNDUwRkMyMDAwN0Qy
NzcgLyogU1ZHUHJvcGVydHkuaCAqLywKIAkJCQk1NURDQzUyNjIyNDA3NEZBMDBDMjZFMzIgLyog
U1ZHUHJvcGVydHlBY2Nlc3Nvci5oICovLAogCQkJCTU1RENDNTI3MjI0MDc1MEIwMEMyNkUzMiAv
KiBTVkdQcm9wZXJ0eUFjY2Vzc29ySW1wbC5oICovLAogCQkJCTcyNjZGMDE2MjI0MUMwRkUwMDgz
Mzk3NSAvKiBTVkdQcm9wZXJ0eUFuaW1hdG9yLmggKi8sCiAJCQkJNzI2NkYwMTMyMjQxQkNFMjAw
ODMzOTc1IC8qIFNWR1Byb3BlcnR5QW5pbWF0b3JGYWN0b3J5LmggKi8sCiAJCQkJNzI2NkYwMjcy
MjQzMTA5MjAwODMzOTc1IC8qIFNWR1Byb3BlcnR5TGlzdC5oICovLAotCQkJCTU1RUU1MzYwMjIz
QjJBMjEwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0eU93bmVyLmggKi8sCiAJCQkJNTVCRTAyNUMyMjNC
MjlDMzAwMzJGMDhBIC8qIFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeS5oICovLAogCQkJCTU1QkUw
MjU3MjIzQjI5QzAwMDMyRjA4QSAvKiBTVkdQcm9wZXJ0eVJlZ2lzdHJ5LmggKi8sCiAJCQkJMDg4
QTBFMDMxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5VHJhaXRzLmggKi8sCkBAIC0yNzU1
OSw3ICsyNzU2MSwxMCBAQAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBs
ZW1lbnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgxODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggKi8sCiAJCQkJOTNFRUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUlt
cGxlbWVudGF0aW9uLmlkbCAqLywKKwkJCQk3MjgzMTVDMDIzNDQyMjkyMDAwN0QyNzcgLyogRE9N
TGl2ZVByb3BlcnR5LmggKi8sCisJCQkJNzI4MzE1QkUyMzQ0MjI5MTAwMDdEMjc3IC8qIERPTUxp
dmVQcm9wZXJ0eU9ic2VydmVyLmggKi8sCiAJCQkJRjRCNDIyQzIyMjBDMDAwMDAwOUUxRTdEIC8q
IERPTVBhc3RlQWNjZXNzLmggKi8sCisJCQkJNzI4MzE1Q0UyMzQ2NTkwMTAwMDdEMjc3IC8qIERP
TVBvaW50LmNwcCAqLywKIAkJCQkwRjQ5NjY5OTFEQjQwOEMxMDBBMjc0QkIgLyogRE9NUG9pbnQu
aCAqLywKIAkJCQkwRjQ5NjY5QTFEQjQwOEMxMDBBMjc0QkIgLyogRE9NUG9pbnQuaWRsICovLAog
CQkJCTBGNDk2NkEyMURCNDA5MTAwMEEyNzRCQiAvKiBET01Qb2ludEluaXQuaCAqLywKQEAgLTI5
MTUzLDYgKzI5MTU4LDggQEAKIAkJCQlFM0E3NzY2NzFEQzg1RDI4MDBCNjkwRDggLyogRE9NSklU
SURMQ29udmVydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTNBNzc2NjgxREM4NUQyODAwQjY5MEQ4
IC8qIERPTUpJVElETFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzNTgwMkI2MURDODQzNUQw
MEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3Mjgz
MTVDMTIzNDQ0MDE1MDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5LmggaW4gSGVhZGVycyAqLywK
KwkJCQk3MjgzMTVDMjIzNDQ0MDIyMDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzNkFDRUNBMUVDQTk1NjkwMDRCRDAxMiAvKiBET01NYXRy
aXguaCBpbiBIZWFkZXJzICovLAogCQkJCTdDQkJCQ0M3MUY1NjA1ODEwMDVFRkFBQyAvKiBET01N
YXRyaXgyREluaXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNkFDRUNCMUVDQTk1NkQwMDRCRDAx
MiAvKiBET01NYXRyaXhJbml0LmggaW4gSGVhZGVycyAqLywKQEAgLTMxOTc2LDggKzMxOTgzLDcg
QEAKIAkJCQlCMjIyN0E5NDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUG9seWxpbmVFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVEQ0M1MjgyMjQwN0IyMDAwQzI2
RTMyIC8qIFNWR1ByaW1pdGl2ZUxpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTcyMTQ0MzMzMjIz
RUM4QjAwMEYxMkZGNyAvKiBTVkdQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNzIxNDQz
MzQyMjNFQzkxNjAwRjEyRkY3IC8qIFNWR1Byb3BlcnR5T3duZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTcyODMxNUM3MjM0NTE4MjMwMDA3RDI3NyAvKiBTVkdQcm9wZXJ0eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDg4QTBFMEMxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5VHJhaXRzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5QTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUmFkaWFs
R3JhZGllbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEVERTE5RjEyQTUwQjhFMDBC
OTU3OTcgLyogU1ZHUmVjdC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRE9NTGl2ZVByb3BlcnR5LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NTGl2ZVBy
b3BlcnR5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU1OTQ4YjY4MzU5MWNmYmVmNTczZmVmYTg5MGVjYWVjMjYy
YmM5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01MaXZlUHJvcGVy
dHkuaApAQCAtMCwwICsxLDgwIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBh
cmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIkRPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgRE9NTGl2ZVByb3BlcnR5IHsKK3B1YmxpYzoKKyAgICAvLyBNYW5h
Z2luZyB0aGUgcmVsYXRpb25zaGlwIHdpdGggdGhlIG9ic2VydmVyLgorICAgIGJvb2wgaXNBdHRh
Y2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1fb2JzZXJ2ZXI7IH0KKyAgICBET01MaXZlUHJvcGVydHlP
YnNlcnZlciogb2JzZXJ2ZXIoKSBjb25zdCB7IHJldHVybiBtX29ic2VydmVyOyB9CisKKyAgICB2
b2lkIGF0dGFjaChET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIpCisgICAgeworICAg
ICAgICBBU1NFUlQoIW1fb2JzZXJ2ZXIpOworICAgICAgICBtX29ic2VydmVyID0gb2JzZXJ2ZXI7
CisgICAgfQorCisgICAgdm9pZCBkZXRhY2goKQorICAgIHsKKyAgICAgICAgbV9vYnNlcnZlciA9
IG51bGxwdHI7CisgICAgfQorCisgICAgLy8gVHJhdmVyc2UgdGhlIG9ic2VydmVycyBjaGFpbiB0
aWxsIGFuIFNWR0VsZW1lbnQgb2JzZXJ2ZXIgaXMgcmVhY2hlZC4KKyAgICBjb25zdCBTVkdFbGVt
ZW50KiBzdmdDb250ZXh0RWxlbWVudCgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIW1fb2Jz
ZXJ2ZXIpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIG1fb2Jz
ZXJ2ZXItPnByb3BlcnR5U1ZHQ29udGV4dEVsZW1lbnQoKTsKKyAgICB9CisKKyAgICAvLyBDaGVj
ayBpZiB0aGUgb2JzZXJ2ZXIgZGlzYWxsb3dzIGNoYW5naW5nIHRoaXMgcHJvcGVydHkuCisgICAg
Ym9vbCBpc1JlYWRPbmx5KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX29ic2VydmVy
ICYmIG1fb2JzZXJ2ZXItPmlzUHJvcGVydHlSZWFkT25seSgqdGhpcyk7CisgICAgfQorCisgICAg
Ly8gQ29tbWl0IHRoZSBsaXZlIHByb3BlcnR5IGNoYW5nZXMgdmlhIHRoZSBvYnNlcnZlcnMgY2hh
aW4uCisgICAgdm9pZCBjb21taXRDaGFuZ2UoKQorICAgIHsKKyAgICAgICAgaWYgKCFtX29ic2Vy
dmVyKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX29ic2VydmVyLT5jb21taXRQcm9w
ZXJ0eUNoYW5nZSh0aGlzKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBET01MaXZlUHJvcGVy
dHkoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyID0gbnVsbHB0cikKKyAgICAgICAg
OiBtX29ic2VydmVyKG9ic2VydmVyKQorICAgIHsKKyAgICB9CisKKyAgICBET01MaXZlUHJvcGVy
dHlPYnNlcnZlciogbV9vYnNlcnZlciB7IG51bGxwdHIgfTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01MaXZlUHJvcGVydHlP
YnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDBhOTA3YWMxNjYwMTk3ZmQyYzI1N2JkYjY5OGViYjMzYzk3NTIwYQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01MaXZlUHJvcGVydHlPYnNlcnZl
ci5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFy
ZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25j
ZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTUxpdmVQcm9wZXJ0eTsKK2NsYXNz
IFNWR0VsZW1lbnQ7CisKK2NsYXNzIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyIHsKK3B1YmxpYzoK
KyAgICB2aXJ0dWFsIH5ET01MaXZlUHJvcGVydHlPYnNlcnZlcigpID0gZGVmYXVsdDsKKworICAg
IC8vIFRoZSBvYnNlcnZlciBpdHNlbGYgbWF5IGhhdmUgYW4gb2JzZXJ2ZXIuCisgICAgdmlydHVh
bCBET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIoKSBjb25zdCB7IHJldHVybiBudWxs
cHRyOyB9CisKKyAgICAvLyBUcmF2ZXJzZSB0aGUgb2JzZXJ2ZXJzIGNoYWluIHRpbGwgYW4gRWxl
bWVudCBvYnNlcnZlciBpcyByZWFjaGVkLgorICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCog
cHJvcGVydHlTVkdDb250ZXh0RWxlbWVudCgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIW9i
c2VydmVyKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIG9i
c2VydmVyKCktPnByb3BlcnR5U1ZHQ29udGV4dEVsZW1lbnQoKTsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIGJvb2wgaXNQcm9wZXJ0eVJlYWRPbmx5KGNvbnN0IERPTUxpdmVQcm9wZXJ0eSYgcHJvcGVy
dHkpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gb2JzZXJ2ZXIoKSAmJiBvYnNlcnZlcigp
LT5pc1Byb3BlcnR5UmVhZE9ubHkocHJvcGVydHkpOworICAgIH0KKworICAgIC8vIENvbW1pdCB0
aGUgbGl2ZSBwcm9wZXJ0eSBjaGFuZ2VzIHZpYSB0aGUgb2JzZXJ2ZXJzIGNoYWluLgorICAgIHZp
cnR1YWwgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqIHByb3BlcnR5
KQorICAgIHsKKyAgICAgICAgaWYgKCFvYnNlcnZlcigpKQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBvYnNlcnZlcigpLT5jb21taXRQcm9wZXJ0eUNoYW5nZShwcm9wZXJ0eSk7CisgICAg
fQorCitwcm90ZWN0ZWQ6CisgICAgRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIoKSA9IGRlZmF1bHQ7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NUG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40Y2VlMWFhYTA3YmFmMTczMzRiNGIxYzM4ZTJkZTMxZTkwODBkZTQ3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50LmNwcApAQCAtMCwwICsxLDQw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
CisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAg
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MKKyAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBDT1BZUklHSFQgSE9MREVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsCisgKiBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsCisgKiBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VECisgKiBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRPTVBvaW50LmgiCisKKyNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19B
TExPQ0FURURfSU1QTChET01Qb2ludCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NUG9pbnQuaAppbmRleCA3NzI3N2Q3ZjIxYjNmNGJjYzNjNDA0ZDUzZWUxZWM4Y2IwMzUz
YmMzLi5hOTBmNzM0OTRlOTVjNzk1Y2EzYmFlNmRiYTc3MzI0MGY3YTcwMDMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NUG9pbnQuaApAQCAtMzAsMTEgKzMwLDE0IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVk
ZSAiRE9NTGl2ZVByb3BlcnR5LmgiCiAjaW5jbHVkZSAiRE9NUG9pbnRSZWFkT25seS5oIgorI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgRE9NUG9pbnQgZmluYWwgOiBwdWJsaWMgRE9NUG9pbnRSZWFkT25seSB7CitjbGFzcyBE
T01Qb2ludCBmaW5hbCA6IHB1YmxpYyBET01Qb2ludFJlYWRPbmx5LCBwdWJsaWMgRE9NTGl2ZVBy
b3BlcnR5IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKERPTVBvaW50KTsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPERPTVBvaW50PiBjcmVhdGUoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3Vi
bGUgeiA9IDAsIGRvdWJsZSB3ID0gMSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01Qb2ludCh4
LCB5LCB6LCB3KSk7IH0KICAgICBzdGF0aWMgUmVmPERPTVBvaW50PiBjcmVhdGUoY29uc3QgRE9N
UG9pbnRJbml0JiBpbml0KSB7IHJldHVybiBjcmVhdGUoaW5pdC54LCBpbml0LnksIGluaXQueiwg
aW5pdC53KTsgfQpAQCAtNDUsMTIgKzQ4LDUzIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFooZG91
YmxlIHopIHsgbV96ID0gejsgfQogICAgIHZvaWQgc2V0Vyhkb3VibGUgdykgeyBtX3cgPSB3OyB9
CiAKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRYRm9yQmluZGluZ3MoZG91YmxlIHgpCisgICAg
eworICAgICAgICBpZiAoaXNSZWFkT25seSgpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CisgICAgCisgICAgICAgIG1feCA9IHg7
CisgICAgICAgIGNvbW1pdENoYW5nZSgpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKyAg
ICAKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRZRm9yQmluZGluZ3MoZG91YmxlIHkpCisgICAg
eworICAgICAgICBpZiAoaXNSZWFkT25seSgpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CisgICAgCisgICAgICAgIG1feSA9IHk7
CisgICAgICAgIGNvbW1pdENoYW5nZSgpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKyAg
ICAKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRaRm9yQmluZGluZ3MoZG91YmxlIHopCisgICAg
eworICAgICAgICBpZiAoaXNSZWFkT25seSgpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CisgICAgCisgICAgICAgIG1feiA9IHo7
CisgICAgICAgIGNvbW1pdENoYW5nZSgpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKyAg
ICAKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRXRm9yQmluZGluZ3MoZG91YmxlIHcpCisgICAg
eworICAgICAgICBpZiAoaXNSZWFkT25seSgpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CisgICAgCisgICAgICAgIG1fdyA9IHc7
CisgICAgICAgIGNvbW1pdENoYW5nZSgpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKyAg
ICAKIHByaXZhdGU6CiAgICAgRE9NUG9pbnQoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeiwg
ZG91YmxlIHcpCiAgICAgICAgIDogRE9NUG9pbnRSZWFkT25seSh4LCB5LCB6LCB3KQogICAgIHsK
ICAgICB9CiB9Owotc3RhdGljX2Fzc2VydChzaXplb2YoRE9NUG9pbnQpID09IHNpemVvZihET01Q
b2ludFJlYWRPbmx5KSwgIiIpOworCitzdGF0aWNfYXNzZXJ0KHNpemVvZihET01Qb2ludCkgPT0g
c2l6ZW9mKERPTVBvaW50UmVhZE9ubHkpICsgc2l6ZW9mKERPTUxpdmVQcm9wZXJ0eSksICIiKTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RPTVBvaW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludC5pZGwKaW5kZXggNjli
YmMyZDBmZjIwNzYxNDZmZmQ1NTI3MDRkNTc2MjI1MTlkZDYwNS4uZDE2ZTA0ZWM0NGUxNDIxN2I4
MTM4ZTdlYzg5YWJmZTJmNDQ3ZmI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RP
TVBvaW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnQuaWRsCkBAIC0zNSwx
MyArMzUsMTMgQEAKICAgICAgICAgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSB6ID0gMCwg
b3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSB3ID0gMSksCiAgICAgRXhwb3NlZD0oV2luZG93
LFdvcmtlciksCiAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsLAotICAgIEltcGxlbWVudGF0
aW9uTGFja3NWVGFibGUKKyAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbgogXQogaW50ZXJmYWNlIERP
TVBvaW50IDogRE9NUG9pbnRSZWFkT25seSB7CiAgICAgW05ld09iamVjdF0gc3RhdGljIERPTVBv
aW50IGZyb21Qb2ludChvcHRpb25hbCBET01Qb2ludEluaXQgb3RoZXIpOwogCi0gICAgaW5oZXJp
dCBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB4OwotICAgIGluaGVyaXQgYXR0cmlidXRl
IHVucmVzdHJpY3RlZCBkb3VibGUgeTsKLSAgICBpbmhlcml0IGF0dHJpYnV0ZSB1bnJlc3RyaWN0
ZWQgZG91YmxlIHo7Ci0gICAgaW5oZXJpdCBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB3
OworICAgIFtJbXBsZW1lbnRlZEFzPXhGb3JCaW5kaW5nc10gaW5oZXJpdCBhdHRyaWJ1dGUgdW5y
ZXN0cmljdGVkIGRvdWJsZSB4OworICAgIFtJbXBsZW1lbnRlZEFzPXlGb3JCaW5kaW5nc10gaW5o
ZXJpdCBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB5OworICAgIFtJbXBsZW1lbnRlZEFz
PXpGb3JCaW5kaW5nc10gaW5oZXJpdCBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB6Owor
ICAgIFtJbXBsZW1lbnRlZEFzPXdGb3JCaW5kaW5nc10gaW5oZXJpdCBhdHRyaWJ1dGUgdW5yZXN0
cmljdGVkIGRvdWJsZSB3OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Q
b2ludFJlYWRPbmx5LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnRSZWFkT25seS5oCmlu
ZGV4IDBhNjhmZGYxYmMxOTRlNDMxN2UxYjU1ZmFkODlkNDZkYWVmZTcyMTEuLjlhNGRiNjYwOTE0
NTU5ODJhZjZmOGE3NTEzNTRiNmZjMDI2ZjQwMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01Qb2ludFJlYWRPbmx5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50
UmVhZE9ubHkuaApAQCAtNDMsNiArNDMsNyBAQCBjbGFzcyBET01Qb2ludDsKIGNsYXNzIERPTVBv
aW50UmVhZE9ubHkgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxE
T01Qb2ludFJlYWRPbmx5PiB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChET01Qb2ludFJl
YWRPbmx5KTsKIHB1YmxpYzoKKyAgICB2aXJ0dWFsIH5ET01Qb2ludFJlYWRPbmx5KCkgPSBkZWZh
dWx0OwogICAgIHN0YXRpYyBSZWY8RE9NUG9pbnRSZWFkT25seT4gY3JlYXRlKGRvdWJsZSB4LCBk
b3VibGUgeSwgZG91YmxlIHosIGRvdWJsZSB3KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTVBv
aW50UmVhZE9ubHkoeCwgeSwgeiwgdykpOyB9CiAgICAgc3RhdGljIFJlZjxET01Qb2ludFJlYWRP
bmx5PiBjcmVhdGUoY29uc3QgRE9NUG9pbnRJbml0JiBpbml0KSB7IHJldHVybiBjcmVhdGUoaW5p
dC54LCBpbml0LnksIGluaXQueiwgaW5pdC53KTsgfQogICAgIHN0YXRpYyBSZWY8RE9NUG9pbnRS
ZWFkT25seT4gZnJvbVBvaW50KGNvbnN0IERPTVBvaW50SW5pdCYgaW5pdCkgeyByZXR1cm4gY3Jl
YXRlKGluaXQueCwgaW5pdC55LCBpbml0LnosIGluaXQudyk7IH0KQEAgLTUyLDYgKzUzLDExIEBA
IHB1YmxpYzoKICAgICBkb3VibGUgeigpIGNvbnN0IHsgcmV0dXJuIG1fejsgfQogICAgIGRvdWJs
ZSB3KCkgY29uc3QgeyByZXR1cm4gbV93OyB9CiAKKyAgICBkb3VibGUgeEZvckJpbmRpbmdzKCkg
Y29uc3QgeyByZXR1cm4gbV94OyB9CisgICAgZG91YmxlIHlGb3JCaW5kaW5ncygpIGNvbnN0IHsg
cmV0dXJuIG1feTsgfQorICAgIGRvdWJsZSB6Rm9yQmluZGluZ3MoKSBjb25zdCB7IHJldHVybiBt
X3o7IH0KKyAgICBkb3VibGUgd0ZvckJpbmRpbmdzKCkgY29uc3QgeyByZXR1cm4gbV93OyB9CisK
ICAgICBFeGNlcHRpb25PcjxSZWY8RE9NUG9pbnQ+PiBtYXRyaXhUcmFuc2Zvcm0oRE9NTWF0cml4
SW5pdCYmKSBjb25zdDsKIAogcHJvdGVjdGVkOgpAQCAtNzEsNCArNzcsMyBAQCBwcm90ZWN0ZWQ6
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01Qb2ludFJlYWRPbmx5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2lu
dFJlYWRPbmx5LmlkbAppbmRleCAzZmZkNjZmZDcxMjFhOWRjN2NjNWY4NTczYTc2YTc4OTc0NGY5
NjhlLi5mOWVjMzQzOTgzMTFlNDc2OTBhNmNjNDY0YTlhZGM1ZDE1MzdlMmY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnRSZWFkT25seS5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsCkBAIC0zNCwxNSArMzQsMTUgQEAKICAgICBD
b25zdHJ1Y3RvcihvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHggPSAwLCBvcHRpb25hbCB1
bnJlc3RyaWN0ZWQgZG91YmxlIHkgPSAwLAogICAgICAgICBvcHRpb25hbCB1bnJlc3RyaWN0ZWQg
ZG91YmxlIHogPSAwLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHcgPSAxKSwKICAgICBF
eHBvc2VkPShXaW5kb3csV29ya2VyKSwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCisg
ICAgU2tpcFZUYWJsZVZhbGlkYXRpb24KIF0KIGludGVyZmFjZSBET01Qb2ludFJlYWRPbmx5IHsK
ICAgICBbTmV3T2JqZWN0XSBzdGF0aWMgRE9NUG9pbnRSZWFkT25seSBmcm9tUG9pbnQob3B0aW9u
YWwgRE9NUG9pbnRJbml0IG90aGVyKTsKIAotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3Ry
aWN0ZWQgZG91YmxlIHg7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3Vi
bGUgeTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB6OwotICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHc7CisgICAgW0ltcGxlbWVu
dGVkQXM9eEZvckJpbmRpbmdzXSByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJs
ZSB4OworICAgIFtJbXBsZW1lbnRlZEFzPXhGb3JCaW5kaW5nc10gcmVhZG9ubHkgYXR0cmlidXRl
IHVucmVzdHJpY3RlZCBkb3VibGUgeTsKKyAgICBbSW1wbGVtZW50ZWRBcz14Rm9yQmluZGluZ3Nd
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHo7CisgICAgW0ltcGxlbWVu
dGVkQXM9eEZvckJpbmRpbmdzXSByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJs
ZSB3OwogCiAgICAgW01heVRocm93RXhjZXB0aW9uXSBET01Qb2ludCBtYXRyaXhUcmFuc2Zvcm0o
b3B0aW9uYWwgRE9NTWF0cml4SW5pdCBtYXRyaXgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCmluZGV4IDY5ZTA2ZTdi
MDU0MDAyNmM0YjEwYzIxYTE3YmI5YzZhOWJlMzJmMjMuLjE4M2YzYjMzZjVkOGZlZjA3ZGNjMDY0
ZTk2ZmQwZGI4MjMyMTk0ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCkBAIC0yNiw2ICsyNiwxMCBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5o
IgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyNpbmNsdWRlICJEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaCIKKyNlbmRpZgorCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuZ2xlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5nbGUuaAppbmRl
eCA5YzYxNzMyYWU5MzFjOTg1NGU3NTY5ZTFjYjIyYTZlZDhkYWY1YjAzLi4wNGIyMTZmYTc2ZWUw
YWMyODc2YTYzZTBkNmIzOTU0YTM4NjVhZWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5nbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5nbGUuaApAQCAtNDEs
OSArNDEsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuZ2xl
KHZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdBbmdsZT4gY3JlYXRlKFNWR1By
b3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIGNvbnN0IFNWR0Fu
Z2xlVmFsdWUmIHZhbHVlID0geyB9KQorICAgIHN0YXRpYyBSZWY8U1ZHQW5nbGU+IGNyZWF0ZShE
T01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIsIGNvbnN0IFNWR0FuZ2xlVmFsdWUmIHZh
bHVlID0geyB9KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5nbGUo
b3duZXIsIGFjY2VzcywgdmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
QW5nbGUob2JzZXJ2ZXIsIHZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCAxNmMzYWZjMjE1M2I2OGRhOWQ4NTM2
NTY5NjI2MDVjOGUxMGE1YWY0Li4yMDRjMjJiYjM2ZGRhMDg2MjgxMzkxNzIzMGZkNGU5NDAxMWY0
OTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCkBAIC01NDEsMjAgKzU0MSwyMyBAQCB2
b2lkIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgbwogICAgICAgICBzdmdBdHRyaWJ1dGVDaGFuZ2VkKG5hbWUp
OwogfQogCi12b2lkIFNWR0VsZW1lbnQ6OnN5bmNocm9uaXplQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUpCit2b2lkIFNWR0VsZW1lbnQ6OnN5bmNocm9uaXplQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCiB7Ci0gICAgLy8gSWYgdGhlIHZhbHVl
IG9mIHRoZSBwcm9wZXJ0eSBoYXMgY2hhbmdlZCwgc2VyaWFsaXplIHRoZSBuZXcgdmFsdWUgdG8g
dGhlIGF0dHJpYnV0ZS4KLSAgICBpZiAoYXV0byB2YWx1ZSA9IHByb3BlcnR5UmVnaXN0cnkoKS5z
eW5jaHJvbml6ZShuYW1lKSkKLSAgICAgICAgc2V0U3luY2hyb25pemVkTGF6eUF0dHJpYnV0ZShu
YW1lLCAqdmFsdWUpOworICAgIGF1dG8gaXQgPSBtX2RpcnR5QXR0cmlidXRlcy5maW5kKGF0dHJp
YnV0ZU5hbWUpOworICAgIGlmIChpdCA9PSBtX2RpcnR5QXR0cmlidXRlcy5lbmQoKSkKKyAgICAg
ICAgcmV0dXJuOworICAgIAorICAgIC8vIElmIHRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHkgaGFz
IGNoYW5nZWQsIHJlc2VyaWFsaXplIHRoZSBuZXcgdmFsdWUgdG8gdGhlIGF0dHJpYnV0ZS4KKyAg
ICBzZXRTeW5jaHJvbml6ZWRMYXp5QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUsIHByb3BlcnR5UmVn
aXN0cnkoKS52YWx1ZUFzU3RyaW5nKGF0dHJpYnV0ZU5hbWUpKTsKKyAgICBtX2RpcnR5QXR0cmli
dXRlcy5yZW1vdmUoaXQpOwogfQogICAgIAogdm9pZCBTVkdFbGVtZW50OjpzeW5jaHJvbml6ZUFs
bEF0dHJpYnV0ZXMoKQogewotICAgIC8vIFNWR1Byb3BlcnR5UmVnaXN0cnk6OnN5bmNocm9uaXpl
QWxsQXR0cmlidXRlcygpIHJldHVybnMgdGhlIG5ldyB2YWx1ZXMgb2YKLSAgICAvLyB0aGUgcHJv
cGVydGllcyB3aGljaCBoYXZlIGNoYW5nZWQgYnV0IG5vdCBjb21taXR0ZWQgeWV0LgotICAgIGF1
dG8gbWFwID0gcHJvcGVydHlSZWdpc3RyeSgpLnN5bmNocm9uaXplQWxsQXR0cmlidXRlcygpOwot
ICAgIGZvciAoY29uc3QgYXV0byYgZW50cnkgOiBtYXApCi0gICAgICAgIHNldFN5bmNocm9uaXpl
ZExhenlBdHRyaWJ1dGUoZW50cnkua2V5LCBlbnRyeS52YWx1ZSk7CisgICAgLy8gUmVzZXJpYWxp
emUgdGhlIHZhbHVlcyBvZiB0aGUgY2hhbmdlZCBwcm9wZXJ0aWVzIHRvIHRoZWlyIGF0dHJpYnV0
ZXMuCisgICAgZm9yIChhdXRvJiBhdHRyaWJ1dGVOYW1lIDogbV9kaXJ0eUF0dHJpYnV0ZXMpCisg
ICAgICAgIHNldFN5bmNocm9uaXplZExhenlBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSwgcHJvcGVy
dHlSZWdpc3RyeSgpLnZhbHVlQXNTdHJpbmcoYXR0cmlidXRlTmFtZSkpOworICAgIG1fZGlydHlB
dHRyaWJ1dGVzLmNsZWFyKCk7CiB9CiAKIHZvaWQgU1ZHRWxlbWVudDo6c3luY2hyb25pemVBbGxB
bmltYXRlZFNWR0F0dHJpYnV0ZShTVkdFbGVtZW50JiBzdmdFbGVtZW50KQpAQCAtNTYyLDE1ICs1
NjUsMTggQEAgdm9pZCBTVkdFbGVtZW50OjpzeW5jaHJvbml6ZUFsbEFuaW1hdGVkU1ZHQXR0cmli
dXRlKFNWR0VsZW1lbnQmIHN2Z0VsZW1lbnQpCiAgICAgc3ZnRWxlbWVudC5zeW5jaHJvbml6ZUFs
bEF0dHJpYnV0ZXMoKTsKIH0KIAotdm9pZCBTVkdFbGVtZW50Ojpjb21taXRQcm9wZXJ0eUNoYW5n
ZShTVkdQcm9wZXJ0eSogcHJvcGVydHkpCit2b2lkIFNWR0VsZW1lbnQ6OmNvbW1pdFByb3BlcnR5
Q2hhbmdlKERPTUxpdmVQcm9wZXJ0eSogcHJvcGVydHkpCiB7CisgICAgUXVhbGlmaWVkTmFtZSBh
dHRyaWJ1dGVOYW1lID0gcHJvcGVydHlSZWdpc3RyeSgpLnByb3BlcnR5QXR0cmlidXRlTmFtZSgq
cHJvcGVydHkpOworICAgIEFTU0VSVChhdHRyaWJ1dGVOYW1lICE9IG51bGxRTmFtZSgpKTsKKwog
ICAgIC8vIFdlIHdhbnQgdG8gZGlydHkgdGhlIHRvcC1sZXZlbCBwcm9wZXJ0eSB3aGVuIGEgZGVz
Y2VuZGFudCBjaGFuZ2VzLiBGb3IgZXhhbXBsZQogICAgIC8vIGEgY2hhbmdlIGluIGFuIFNWR0xl
bmd0aCBpdGVtIGluIFNWR0xlbmd0aExpc3Qgc2hvdWxkIHNldCB0aGUgZGlydHkgZmxhZyBvbgog
ICAgIC8vIFNWR0xlbmd0aExpc3QgYW5kIG5vdCB0aGUgU1ZHTGVuZ3RoLgotICAgIHByb3BlcnR5
LT5zZXREaXJ0eSgpOworICAgIG1fZGlydHlBdHRyaWJ1dGVzLmFkZChhdHRyaWJ1dGVOYW1lKTsK
IAogICAgIGludmFsaWRhdGVTVkdBdHRyaWJ1dGVzKCk7Ci0gICAgc3ZnQXR0cmlidXRlQ2hhbmdl
ZChwcm9wZXJ0eVJlZ2lzdHJ5KCkucHJvcGVydHlBdHRyaWJ1dGVOYW1lKCpwcm9wZXJ0eSkpOwor
ICAgIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0cmlidXRlTmFtZSk7CiB9CiAKIHZvaWQgU1ZHRWxl
bWVudDo6Y29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQ
cm9wZXJ0eSkKQEAgLTU4MSw3ICs1ODcsNyBAQCB2b2lkIFNWR0VsZW1lbnQ6OmNvbW1pdFByb3Bl
cnR5Q2hhbmdlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHkpCiAgICAgLy8g
QSBjaGFuZ2UgaW4gYSBzdHlsZSBwcm9wZXJ0eSwgZS5nIFNWR1JlY3RFbGVtZW50Ojp4IHNob3Vs
ZCBiZSBzZXJpYWxpemVkIHRvCiAgICAgLy8gdGhlIGF0dHJpYnV0ZSBpbW1lZGlhdGVseS4gT3Ro
ZXJ3aXNlIGl0IGlzIG9rYXkgdG8gYmUgbGF6eSBpbiB0aGlzIHJlZ2FyZC4KICAgICBpZiAoIXBy
b3BlcnR5UmVnaXN0cnkoKS5pc0FuaW1hdGVkU3R5bGVQcm9wZXJ0eUF0dHJpYnV0ZShhdHRyaWJ1
dGVOYW1lKSkKLSAgICAgICAgYW5pbWF0ZWRQcm9wZXJ0eS5zZXREaXJ0eSgpOworICAgICAgICBt
X2RpcnR5QXR0cmlidXRlcy5hZGQoYXR0cmlidXRlTmFtZSk7CiAgICAgZWxzZQogICAgICAgICBz
ZXRTeW5jaHJvbml6ZWRMYXp5QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVy
dHkuYmFzZVZhbEFzU3RyaW5nKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaAppbmRleCA4Y2M2
YWFjYTY1NzY4MGVlOGQzZjNmNDZjODc4MmFkMjI1NWM3NzQyLi5kOTA4NzZhZmZiNzRlNjE1MzMy
M2U1MzRjODg5N2ZkOGRlNTZlMGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKQEAgLTQ3LDcg
KzQ3LDcgQEAgY2xhc3MgU1ZHVXNlRWxlbWVudDsKIAogdm9pZCBtYXBBdHRyaWJ1dGVUb0NTU1By
b3BlcnR5KEhhc2hNYXA8QXRvbVN0cmluZ0ltcGwqLCBDU1NQcm9wZXJ0eUlEPiogcHJvcGVydHlO
YW1lVG9JZE1hcCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpOwogCi1jbGFzcyBTVkdF
bGVtZW50IDogcHVibGljIFN0eWxlZEVsZW1lbnQsIHB1YmxpYyBTVkdMYW5nU3BhY2UsIHB1Ymxp
YyBTVkdQcm9wZXJ0eU93bmVyIHsKK2NsYXNzIFNWR0VsZW1lbnQgOiBwdWJsaWMgU3R5bGVkRWxl
bWVudCwgcHVibGljIFNWR0xhbmdTcGFjZSwgcHVibGljIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVy
IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNWR0VsZW1lbnQpOwogcHVibGljOgogICAg
IGJvb2wgaXNPdXRlcm1vc3RTVkdTVkdFbGVtZW50KCkgY29uc3Q7CkBAIC0xMzYsMTAgKzEzNiwx
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMoKTsKICAgICBz
dGF0aWMgdm9pZCBzeW5jaHJvbml6ZUFsbEFuaW1hdGVkU1ZHQXR0cmlidXRlKFNWR0VsZW1lbnQm
KTsKIAotICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJvcGVydHkqKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKERPTUxpdmVQcm9wZXJ0eSopIG92ZXJy
aWRlOwogICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYp
OwogCi0gICAgY29uc3QgU1ZHRWxlbWVudCogYXR0cmlidXRlQ29udGV4dEVsZW1lbnQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0aGlzOyB9CisgICAgY29uc3QgU1ZHRWxlbWVudCogcHJvcGVy
dHlTVkdDb250ZXh0RWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRoaXM7IH0KICAg
ICBTVkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeSYgcHJvcGVydHlBbmltYXRvckZhY3RvcnkoKSB7
IHJldHVybiAqbV9wcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeTsgfQogICAgIFJlZlB0cjxTVkdBdHRy
aWJ1dGVBbmltYXRvcj4gY3JlYXRlQW5pbWF0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEFuaW1h
dGlvbk1vZGUsIENhbGNNb2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSk7
CiAgICAgdm9pZCBhbmltYXRvcldpbGxCZURlbGV0ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwpA
QCAtMTk2LDYgKzE5Niw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNWR1Byb3Bl
cnR5QW5pbWF0b3JGYWN0b3J5PiBtX3Byb3BlcnR5QW5pbWF0b3JGYWN0b3J5OwogCiAgICAgUHJv
cGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OworICAgIEhhc2hTZXQ8
UXVhbGlmaWVkTmFtZT4gbV9kaXJ0eUF0dHJpYnV0ZXM7CiAgICAgUmVmPFNWR0FuaW1hdGVkU3Ry
aW5nPiBtX2NsYXNzTmFtZSB7IFNWR0FuaW1hdGVkU3RyaW5nOjpjcmVhdGUodGhpcykgfTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHAKaW5kZXggMWY0N2QzNjhlOTAz
MWY0NGEwYmUwZmQyNDM1MGM3MmQxNDFmNjU0OS4uYTQ0MGM2YzJiMzI5YTYzZTEwOThmNjNkZDgx
Zjk5NzMwOWRjMjJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmll
d0JveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHAKQEAg
LTM0LDkgKzM0LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU1ZHRml0VG9WaWV3Qm94
OjpTVkdGaXRUb1ZpZXdCb3goU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIFNWR1Byb3BlcnR5
QWNjZXNzIGFjY2VzcykKLSAgICA6IG1fdmlld0JveChTVkdBbmltYXRlZFJlY3Q6OmNyZWF0ZShj
b250ZXh0RWxlbWVudCwgYWNjZXNzKSkKLSAgICAsIG1fcHJlc2VydmVBc3BlY3RSYXRpbyhTVkdB
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW86OmNyZWF0ZShjb250ZXh0RWxlbWVudCwgYWNjZXNz
KSkKK1NWR0ZpdFRvVmlld0JveDo6U1ZHRml0VG9WaWV3Qm94KFNWR0VsZW1lbnQqIGNvbnRleHRF
bGVtZW50KQorICAgIDogbV92aWV3Qm94KFNWR0FuaW1hdGVkUmVjdDo6Y3JlYXRlKHN0YXRpY19j
YXN0PHZvaWQqPihjb250ZXh0RWxlbWVudCkgPT0gdGhpcyA/IGNvbnRleHRFbGVtZW50IDogbnVs
bHB0cikpCisgICAgLCBtX3ByZXNlcnZlQXNwZWN0UmF0aW8oU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvOjpjcmVhdGUoc3RhdGljX2Nhc3Q8dm9pZCo+KGNvbnRleHRFbGVtZW50KSA9PSB0
aGlzID8gY29udGV4dEVsZW1lbnQgOiBudWxscHRyKSkKKyAgICAsIG1fY29udGV4dEVsZW1lbnQo
Y29udGV4dEVsZW1lbnQpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwog
ICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CkBAIC0xMDQsMjkgKzEwNSwyOSBAQCBi
b29sIFNWR0ZpdFRvVmlld0JveDo6cGFyc2VWaWV3Qm94KGNvbnN0IFVDaGFyKiYgYywgY29uc3Qg
VUNoYXIqIGVuZCwgRmxvYXRSZWN0JgogICAgIGJvb2wgdmFsaWQgPSBwYXJzZU51bWJlcihjLCBl
bmQsIHgpICYmIHBhcnNlTnVtYmVyKGMsIGVuZCwgeSkgJiYgcGFyc2VOdW1iZXIoYywgZW5kLCB3
aWR0aCkgJiYgcGFyc2VOdW1iZXIoYywgZW5kLCBoZWlnaHQsIGZhbHNlKTsKIAogICAgIGlmICh2
YWxpZGF0ZSkgewotICAgICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBtX3ZpZXdCb3gtPmNvbnRl
eHRFbGVtZW50KCktPmRvY3VtZW50KCk7CisgICAgICAgIGF1dG8mIGRvY3VtZW50RXh0ZW5zaW9u
cyA9IG1fY29udGV4dEVsZW1lbnQtPmRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpOwog
CiAgICAgICAgIGlmICghdmFsaWQpIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmFjY2Vzc1NWR0V4
dGVuc2lvbnMoKS5yZXBvcnRXYXJuaW5nKCJQcm9ibGVtIHBhcnNpbmcgdmlld0JveD1cIiIgKyBz
dHIgKyAiXCIiKTsKKyAgICAgICAgICAgIGRvY3VtZW50RXh0ZW5zaW9ucy5yZXBvcnRXYXJuaW5n
KCJQcm9ibGVtIHBhcnNpbmcgdmlld0JveD1cIiIgKyBzdHIgKyAiXCIiKTsKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIENoZWNrIHRoYXQgd2lkdGgg
aXMgcG9zaXRpdmUuCiAgICAgICAgIGlmICh3aWR0aCA8IDAuMCkgewotICAgICAgICAgICAgZG9j
dW1lbnQuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLnJlcG9ydEVycm9yKCJBIG5lZ2F0aXZlIHZhbHVl
IGZvciBWaWV3Qm94IHdpZHRoIGlzIG5vdCBhbGxvd2VkIik7CisgICAgICAgICAgICBkb2N1bWVu
dEV4dGVuc2lvbnMucmVwb3J0RXJyb3IoIkEgbmVnYXRpdmUgdmFsdWUgZm9yIFZpZXdCb3ggd2lk
dGggaXMgbm90IGFsbG93ZWQiKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
fQogCiAgICAgICAgIC8vIENoZWNrIHRoYXQgaGVpZ2h0IGlzIHBvc2l0aXZlLgogICAgICAgICBp
ZiAoaGVpZ2h0IDwgMC4wKSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5hY2Nlc3NTVkdFeHRlbnNp
b25zKCkucmVwb3J0RXJyb3IoIkEgbmVnYXRpdmUgdmFsdWUgZm9yIFZpZXdCb3ggaGVpZ2h0IGlz
IG5vdCBhbGxvd2VkIik7CisgICAgICAgICAgICBkb2N1bWVudEV4dGVuc2lvbnMucmVwb3J0RXJy
b3IoIkEgbmVnYXRpdmUgdmFsdWUgZm9yIFZpZXdCb3ggaGVpZ2h0IGlzIG5vdCBhbGxvd2VkIik7
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBOb3Ro
aW5nIHNob3VsZCBjb21lIGFmdGVyIHRoZSBsYXN0LCBmb3VydGggbnVtYmVyLgogICAgICAgICBz
a2lwT3B0aW9uYWxTVkdTcGFjZXMoYywgZW5kKTsKICAgICAgICAgaWYgKGMgPCBlbmQpIHsKLSAg
ICAgICAgICAgIGRvY3VtZW50LmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5yZXBvcnRXYXJuaW5nKCJQ
cm9ibGVtIHBhcnNpbmcgdmlld0JveD1cIiIgKyBzdHIgKyAiXCIiKTsKKyAgICAgICAgICAgIGRv
Y3VtZW50RXh0ZW5zaW9ucy5yZXBvcnRXYXJuaW5nKCJQcm9ibGVtIHBhcnNpbmcgdmlld0JveD1c
IiIgKyBzdHIgKyAiXCIiKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guaAppbmRleCA5MDdkNjU1Y2QxYjFi
OWIzNzJhMjBmODE4OTIzNjA0MmUyMGYwZmQwLi41OTZkZmRjMWQwNTY3YTA0N2Y1Yjg5Y2FkYTU4
NDA3YmM0OWZiNDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3
Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5oCkBAIC01OSw3
ICs1OSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0VtcHR5Vmlld0JveCgpIGNvbnN0IHsgcmV0
dXJuIG1faXNWaWV3Qm94VmFsaWQgJiYgdmlld0JveCgpLmlzRW1wdHkoKTsgfQogCiBwcm90ZWN0
ZWQ6Ci0gICAgU1ZHRml0VG9WaWV3Qm94KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBTVkdQ
cm9wZXJ0eUFjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUpOworICAgIFNWR0Zp
dFRvVmlld0JveChTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCk7CiAKICAgICBzdGF0aWMgYm9v
bCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpIHsg
cmV0dXJuIFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7
IH0KIApAQCAtNzEsNiArNzEsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIFJlZjxTVkdB
bmltYXRlZFJlY3Q+IG1fdmlld0JveDsKICAgICBSZWY8U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvPiBtX3ByZXNlcnZlQXNwZWN0UmF0aW87CisgICAgU1ZHRWxlbWVudCogbV9jb250ZXh0
RWxlbWVudCB7IG51bGxwdHIgfTsKICAgICBib29sIG1faXNWaWV3Qm94VmFsaWQgeyBmYWxzZSB9
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oCmluZGV4IGVkNTAwMzgyYzVmZTgzODFkNDc3OTY4
YjkwOTMwMGY2YmZjNGQ5MmQuLjYwYTViNTZlNTNiYWQwYTBiYTAxM2E0NjQ2NTdiYTYxZmExOGU2
YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgKQEAgLTYyLDkgKzYyLDkgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGgodmFsdWUpKTsKICAgICB9CiAKLSAg
ICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBT
VkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIGNvbnN0IFNWR0xlbmd0aFZhbHVlJiB2YWx1ZSA9IHsg
fSkKKyAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3JlYXRlKERPTUxpdmVQcm9wZXJ0eU9ic2Vy
dmVyKiBvYnNlcnZlciwgY29uc3QgU1ZHTGVuZ3RoVmFsdWUmIHZhbHVlID0geyB9KQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVuZ3RoKG93bmVyLCBhY2Nlc3MsIHZh
bHVlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aChvYnNlcnZlciwg
dmFsdWUpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpAQCAtODcsNyArODcs
NyBAQCBwdWJsaWM6CiAKICAgICBFeGNlcHRpb25PcjxmbG9hdD4gdmFsdWVGb3JCaW5kaW5ncygp
CiAgICAgewotICAgICAgICByZXR1cm4gbV92YWx1ZS52YWx1ZUZvckJpbmRpbmdzKFNWR0xlbmd0
aENvbnRleHQgeyBjb250ZXh0RWxlbWVudCgpIH0pOworICAgICAgICByZXR1cm4gbV92YWx1ZS52
YWx1ZUZvckJpbmRpbmdzKFNWR0xlbmd0aENvbnRleHQgeyBzdmdDb250ZXh0RWxlbWVudCgpIH0p
OwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlRm9yQmluZGluZ3MoZmxv
YXQgdmFsdWUpCkBAIC05NSw3ICs5NSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9u
bHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93
ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gbV92YWx1ZS5zZXRWYWx1ZShTVkdM
ZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9LCB2YWx1ZSk7CisgICAgICAgIGF1dG8g
cmVzdWx0ID0gbV92YWx1ZS5zZXRWYWx1ZShTVkdMZW5ndGhDb250ZXh0IHsgc3ZnQ29udGV4dEVs
ZW1lbnQoKSB9LCB2YWx1ZSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAgLTE1Miw3ICsxNTIsNyBAQCBw
dWJsaWM6CiAgICAgICAgIGlmICh1bml0VHlwZSA9PSBTVkdfTEVOR1RIVFlQRV9VTktOT1dOIHx8
IHVuaXRUeXBlID4gU1ZHX0xFTkdUSFRZUEVfUEMpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IG1fdmFs
dWUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMoU1ZHTGVuZ3RoQ29udGV4dCB7IGNvbnRleHRFbGVt
ZW50KCkgfSwgc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVHlwZT4odW5pdFR5cGUpKTsKKyAgICAgICAg
YXV0byByZXN1bHQgPSBtX3ZhbHVlLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKFNWR0xlbmd0aENv
bnRleHQgeyBzdmdDb250ZXh0RWxlbWVudCgpIH0sIHN0YXRpY19jYXN0PFNWR0xlbmd0aFR5cGU+
KHVuaXRUeXBlKSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TGVuZ3RoTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaAppbmRleCA1
ZWI1NzAxYzY3NDY4NzkyZDA1NjJjMTViNTIxNmI0OTJjMDIxZWQ4Li4zMmQ1ODc0ZDI5MzcyNDZj
NzA1MjEzOTEzYjE0ZjA0NTYzZmZkZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGVuZ3RoTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgK
QEAgLTQwLDE0ICs0MCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR0xlbmd0aExpc3QobGVuZ3RoTW9kZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZH
TGVuZ3RoTGlzdD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFj
Y2VzcyBhY2Nlc3MsIFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSkKKyAgICBzdGF0aWMgUmVmPFNW
R0xlbmd0aExpc3Q+IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIsIFNW
R0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR0xlbmd0aExpc3Qob3duZXIsIGFjY2VzcywgbGVuZ3RoTW9kZSkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGhMaXN0KG9ic2VydmVyLCBsZW5ndGhNb2RlKSk7
CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdMZW5ndGhMaXN0PiBjcmVhdGUoY29uc3QgU1ZH
TGVuZ3RoTGlzdCYgb3RoZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKKyAgICBzdGF0aWMg
UmVmPFNWR0xlbmd0aExpc3Q+IGNyZWF0ZShjb25zdCBTVkdMZW5ndGhMaXN0JiBvdGhlcikKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aExpc3Qob3RoZXIsIGFj
Y2VzcykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGhMaXN0KG90aGVy
KSk7CiAgICAgfQogCiAgICAgU1ZHTGVuZ3RoTW9kZSBsZW5ndGhNb2RlKCkgY29uc3QgeyByZXR1
cm4gbV9sZW5ndGhNb2RlOyB9CkBAIC04Niw3ICs4Niw3IEBAIHB1YmxpYzoKICAgICAgICAgICAg
IGlmIChidWlsZGVyLmxlbmd0aCgpKQogICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcg
Jyk7CiAKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGxlbmd0aC0+dmFsdWUoKS52YWx1ZUFz
U3RyaW5nKCkpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQobGVuZ3RoLT52YWx1ZUFzU3Ry
aW5nKCkpOwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
QEAgLTk4LDE0ICs5OCwxNCBAQCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKLSAgICBTVkdMZW5n
dGhMaXN0KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3Ms
IFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSkKLSAgICAgICAgOiBCYXNlKG93bmVyLCBhY2Nlc3Mp
CisgICAgU1ZHTGVuZ3RoTGlzdChET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIsIFNW
R0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSkKKyAgICAgICAgOiBCYXNlKG9ic2VydmVyKQogICAgICAg
ICAsIG1fbGVuZ3RoTW9kZShsZW5ndGhNb2RlKQogICAgIHsKICAgICB9CiAKLSAgICBTVkdMZW5n
dGhMaXN0KGNvbnN0IFNWR0xlbmd0aExpc3QmIG90aGVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nl
c3MpCi0gICAgICAgIDogQmFzZShvdGhlciwgYWNjZXNzKQorICAgIFNWR0xlbmd0aExpc3QoY29u
c3QgU1ZHTGVuZ3RoTGlzdCYgb3RoZXIpCisgICAgICAgIDogQmFzZShvdGhlcikKICAgICAgICAg
LCBtX2xlbmd0aE1vZGUob3RoZXIubGVuZ3RoTW9kZSgpKQogICAgIHsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWF0cml4LmgKaW5kZXggZDhjMzdkY2IyNmRiZTQ1MThhYzkxZmQyZTFjNzVlOTQyYzFkMjI3
Ni4uZjAwMzhjNGMwN2UwYWZjNWU3YjlmMmJiYmQ1ODBmOGFkYWRhMjc5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXRyaXguaApAQCAtNDIsOSArNDIsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR01hdHJpeCh2YWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZH
TWF0cml4PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNz
IGFjY2VzcywgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB2YWx1ZSA9IHsgfSkKKyAgICBzdGF0aWMg
UmVmPFNWR01hdHJpeD4gY3JlYXRlKERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlciwg
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiB2YWx1ZSA9IHsgfSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR01hdHJpeChvd25lciwgYWNjZXNzLCB2YWx1ZSkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXgob2JzZXJ2ZXIsIHZhbHVlKSk7CiAgICAg
fQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdOdW1iZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaAppbmRleCAy
M2M4MmU0NGU2NzdkOGQzNjBjOTYxNTRjNzk1ZGFiODc3NmExZmE0Li41OThhMGY1OTYxOTkyYTRi
NzlmNzA4OWU0NDg5YjYzNTYzMjFlZGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTnVtYmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlci5oCkBAIC00MCw5
ICs0MCw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVy
KHZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdOdW1iZXI+IGNyZWF0ZShTVkdQ
cm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBmbG9hdCB2YWx1
ZSA9IDApCisgICAgc3RhdGljIFJlZjxTVkdOdW1iZXI+IGNyZWF0ZShET01MaXZlUHJvcGVydHlP
YnNlcnZlciogb2JzZXJ2ZXIsIGZsb2F0IHZhbHVlID0gMCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR051bWJlcihvd25lciwgYWNjZXNzLCB2YWx1ZSkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXIob2JzZXJ2ZXIsIHZhbHVlKSk7CiAgICAg
fQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdOdW1iZXJMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5o
CmluZGV4IDViNWQ1N2U4NDZmNDMxYWFmNWMwOGRiYzlhNGMzNGFiZTg0ZDZkMWYuLjY4MWI0ZGNl
ZjhjZWM5MzUxMWJlMDU5MjA1NGNmMDgxZTkwMzc3NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdOdW1iZXJMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJl
ckxpc3QuaApAQCAtNDAsMTQgKzQwLDE0IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU1ZHTnVtYmVyTGlzdCgpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR051
bWJlckxpc3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nl
c3MgYWNjZXNzKQorICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyTGlzdD4gY3JlYXRlKERPTUxpdmVQ
cm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR051bWJlckxpc3Qob3duZXIsIGFjY2VzcykpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTVkdOdW1iZXJMaXN0KG9ic2VydmVyKSk7CiAgICAgfQogCi0gICAgc3RhdGlj
IFJlZjxTVkdOdW1iZXJMaXN0PiBjcmVhdGUoY29uc3QgU1ZHTnVtYmVyTGlzdCYgb3RoZXIsIFNW
R1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKKyAgICBzdGF0aWMgUmVmPFNWR051bWJlckxpc3Q+IGNy
ZWF0ZShjb25zdCBTVkdOdW1iZXJMaXN0JiBvdGhlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNWR051bWJlckxpc3Qob3RoZXIsIGFjY2VzcykpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXJMaXN0KG90aGVyKSk7CiAgICAgfQogCiAgICAgYm9v
bCBwYXJzZShjb25zdCBTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhTZWdMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3Qu
aAppbmRleCA5NGY2ZjM5ZTRlMWYxYjY3NDQzM2NhMjUwMTUzODE4ZjRmNjJmZTQyLi5lNjZmOGEw
YTdiMGMwMGU2YjY0NDAzYTUwM2NhZmIxNTQxMjE0MTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aFNlZ0xpc3QuaApAQCAtMzYsMTQgKzM2LDE0IEBAIGNsYXNzIFNWR1BhdGhTZWdMaXN0IGZpbmFs
IDogcHVibGljIFNWR1Byb3BlcnR5TGlzdDxTVkdQYXRoU2VnPiB7CiAgICAgdXNpbmcgQmFzZTo6
QmFzZTsKIAogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShT
VkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQorICAgIHN0
YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciog
b2JzZXJ2ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQYXRoU2Vn
TGlzdChvd25lciwgYWNjZXNzKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1Bh
dGhTZWdMaXN0KG9ic2VydmVyKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdQYXRoU2Vn
TGlzdD4gY3JlYXRlKGNvbnN0IFNWR1BhdGhTZWdMaXN0JiBvdGhlciwgU1ZHUHJvcGVydHlBY2Nl
c3MgYWNjZXNzKQorICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShjb25zdCBT
VkdQYXRoU2VnTGlzdCYgb3RoZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdQYXRoU2VnTGlzdChvdGhlciwgYWNjZXNzKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR1BhdGhTZWdMaXN0KG90aGVyKSk7CiAgICAgfQogCiAgICAgc3RhdGljIFJlZjxT
VkdQYXRoU2VnTGlzdD4gY3JlYXRlKFJlZjxTVkdQYXRoU2VnPiYmIG5ld0l0ZW0pCkBAIC0xNTks
OCArMTU5LDggQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTVkdQYXRoU2VnTGlz
dChjb25zdCBTVkdQYXRoU2VnTGlzdCYgb3RoZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykK
LSAgICAgICAgOiBCYXNlKG90aGVyLm93bmVyKCksIGFjY2VzcykKKyAgICBTVkdQYXRoU2VnTGlz
dChjb25zdCBTVkdQYXRoU2VnTGlzdCYgb3RoZXIpCisgICAgICAgIDogQmFzZShvdGhlci5vYnNl
cnZlcigpKQogICAgICAgICAsIG1fcGF0aEJ5dGVTdHJlYW0ob3RoZXIucGF0aEJ5dGVTdHJlYW0o
KSkKICAgICB7CiAgICAgfQpAQCAtMTcyLDcgKzE3Miw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAg
ICAgLy8gQ2FsbGVkIHdoZW4gY2hhbmdpbmcgYW4gaXRlbSBpbiB0aGUgbGlzdC4KLSAgICB2b2lk
IGNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5KiBwcm9wZXJ0eSkgb3ZlcnJpZGUKKyAg
ICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKERPTUxpdmVQcm9wZXJ0eSogcHJvcGVydHkpIG92
ZXJyaWRlCiAgICAgewogICAgICAgICBpdGVtc1dpbGxDaGFuZ2UoKTsKICAgICAgICAgQmFzZTo6
Y29tbWl0UHJvcGVydHlDaGFuZ2UocHJvcGVydHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BvaW50TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5o
CmluZGV4IDhjNmM1MGIwZTNiYWNlNTM2YWU1MGViYjI4YzFiNDZlMTU3NDllODEuLjg4YTE4OTMz
ODcxZmQyZDQyOTM4ZDY1NDlkMDE5ZDE1MGJlN2IzNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQb2ludExpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRM
aXN0LmgKQEAgLTQwLDE0ICs0MCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR1BvaW50TGlzdCgpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1BvaW50
TGlzdD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBh
Y2Nlc3MpCisgICAgc3RhdGljIFJlZjxTVkdQb2ludExpc3Q+IGNyZWF0ZShET01MaXZlUHJvcGVy
dHlPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdQb2ludExpc3Qob3duZXIsIGFjY2VzcykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdQb2ludExpc3Qob2JzZXJ2ZXIpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNW
R1BvaW50TGlzdD4gY3JlYXRlKGNvbnN0IFNWR1BvaW50TGlzdCYgb3RoZXIsIFNWR1Byb3BlcnR5
QWNjZXNzIGFjY2VzcykKKyAgICBzdGF0aWMgUmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKGNvbnN0
IFNWR1BvaW50TGlzdCYgb3RoZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdQb2ludExpc3Qob3RoZXIsIGFjY2VzcykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdQb2ludExpc3Qob3RoZXIpKTsKICAgICB9CiAKICAgICBib29sIHBhcnNlKGNvbnN0
IFN0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpby5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0
aW8uaAppbmRleCAyNzE3YWJlYmUxMDE5YWFhMGYzYWY3NjFlYjM1MWY5MTdiNzhhZGQ2Li44MzU0
OTNlNzk0YzFlOGYyNWQ4OTQ3YjM4ZGRhMjRjNjA5YmY0NmMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgKQEAgLTM2LDkgKzM2LDkgQEAgY2xhc3MgU1ZH
UHJlc2VydmVBc3BlY3RSYXRpbyA6IHB1YmxpYyBTVkdWYWx1ZVByb3BlcnR5PFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWwKICAgICB1c2luZyBCYXNlOjptX3ZhbHVlOwogCiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBjcmVhdGUoU1ZHUHJvcGVydHlPd25l
ciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcywgY29uc3QgU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb1ZhbHVlJiB2YWx1ZSA9IHsgfSkKKyAgICBzdGF0aWMgUmVmPFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8+IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIsIGNvbnN0
IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgdmFsdWUgPSB7IH0pCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKG93bmVyLCBhY2Nl
c3MsIHZhbHVlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8ob2JzZXJ2ZXIsIHZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFs
dWUuaAppbmRleCA0MTViODcyM2Y4ZDMwODY0YzFiM2ZkNzg4Y2MzYjk4OWJhZDdlZjljLi41OWM4
MzcxMjNmMjFkYjI2MWZmZTc4MTY5YWQwODJiMmEzZjZlOThhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oCkBAIC03NiwxMSArNzYsNCBA
QCBwcml2YXRlOgogICAgIGJvb2wgcGFyc2VJbnRlcm5hbChjb25zdCBVQ2hhciomIGN1cnJQYXJh
bSwgY29uc3QgVUNoYXIqIGVuZCwgYm9vbCB2YWxpZGF0ZSk7CiB9OwogCi10ZW1wbGF0ZTw+IHN0
cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+IHsKLSAg
ICBzdGF0aWMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlIGluaXRpYWxWYWx1ZSgpIHsgcmV0
dXJuIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSgpOyB9Ci0gICAgc3RhdGljIFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZSBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJl
dHVybiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoc3RyaW5nKTsgfQotICAgIHN0YXRpYyBP
cHRpb25hbDxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+IHBhcnNlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBTdHJpbmcmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gaW5p
dGlhbFZhbHVlKCk7IH0KLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZSYgdHlwZSkgeyByZXR1cm4gdHlwZS52YWx1ZUFzU3RyaW5nKCk7
IH0KLX07Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdSZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5oCmluZGV4IDkw
MDE4ZTE4NmIxOTJhYzNiZTZmMDU1MGRmODExNjI3ZmJkN2U5ZjIuLmJhZTc3YmZlZjAyMTk1MTNl
ZWYwMDk5NjliMzNjMmZhZGNmMzkzZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3QuaApAQCAtMzYsOSArMzYs
OSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1JlY3QodmFsdWUp
KTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1JlY3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93
bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBjb25zdCBGbG9hdFJlY3QmIHZh
bHVlID0geyB9KQorICAgIHN0YXRpYyBSZWY8U1ZHUmVjdD4gY3JlYXRlKERPTUxpdmVQcm9wZXJ0
eU9ic2VydmVyKiBvYnNlcnZlciwgY29uc3QgRmxvYXRSZWN0JiB2YWx1ZSA9IHsgfSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1JlY3Qob3duZXIsIGFjY2VzcywgdmFs
dWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUmVjdChvYnNlcnZlciwgdmFs
dWUpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
dHJpbmdMaXN0LmgKaW5kZXggM2IzNzY1YzVkOWUwNzQ2OTAwYTJkNzc5NzlmZmRmNThiNDNhZGQz
NS4uMTExZjA2N2U2OTI2NjdiMDZmMmM4ZGE4ZmFiMjc3ZDI3ZWEyN2I3NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU3RyaW5nTGlzdC5oCkBAIC0zNyw5ICszNyw5IEBAIGNsYXNzIFNWR1N0cmluZ0xpc3Qg
ZmluYWwgOiBwdWJsaWMgU1ZHUHJpbWl0aXZlTGlzdDxTdHJpbmc+IHsKICAgICB1c2luZyBCYXNl
OjptX2l0ZW1zOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVh
dGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIpCisgICAgc3RhdGljIFJlZjxTVkdTdHJpbmdMaXN0
PiBjcmVhdGUoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHU3RyaW5nTGlzdChvd25lcikpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdTdHJpbmdMaXN0KG9ic2VydmVyKSk7CiAgICAgfQogCiAg
ICAgdm9pZCByZXNldChjb25zdCBTdHJpbmcmIHN0cmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zv
cm0uaAppbmRleCA2YTI5YzcyY2YzZTdmMzEzZjcwOTY1N2E0MDEyNDgxYzIyM2I4ZGNkLi4zM2Ri
NjhmNDI5YWE3ZmEzZmVlYWRjMjI5Y2QxOTY4NDVlNmZjYmE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Ry
YW5zZm9ybS5oCkBAIC0zMSw3ICszMSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgU1ZHVHJhbnNmb3JtIDogcHVibGljIFNWR1ZhbHVlUHJvcGVydHk8U1ZHVHJhbnNmb3JtVmFs
dWU+LCBwdWJsaWMgU1ZHUHJvcGVydHlPd25lciB7CitjbGFzcyBTVkdUcmFuc2Zvcm0gOiBwdWJs
aWMgU1ZHVmFsdWVQcm9wZXJ0eTxTVkdUcmFuc2Zvcm1WYWx1ZT4sIHB1YmxpYyBET01MaXZlUHJv
cGVydHlPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTVkdUcmFuc2Zvcm0+IGNy
ZWF0ZShTVkdUcmFuc2Zvcm1WYWx1ZTo6U1ZHVHJhbnNmb3JtVHlwZSB0eXBlKQogICAgIHsKQEAg
LTEzNCwxNyArMTM0LDE3IEBAIHByaXZhdGU6CiAgICAgdXNpbmcgQmFzZSA9IFNWR1ZhbHVlUHJv
cGVydHk8U1ZHVHJhbnNmb3JtVmFsdWU+OwogCiAgICAgU1ZHVHJhbnNmb3JtKFNWR1RyYW5zZm9y
bVZhbHVlOjpTVkdUcmFuc2Zvcm1UeXBlIHR5cGUsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJh
bnNmb3JtID0geyB9LCBmbG9hdCBhbmdsZSA9IDAsIGNvbnN0IEZsb2F0UG9pbnQmIHJvdGF0aW9u
Q2VudGVyID0geyB9KQotICAgICAgICA6IEJhc2UoU1ZHVHJhbnNmb3JtVmFsdWUodHlwZSwgU1ZH
TWF0cml4OjpjcmVhdGUodGhpcywgU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0ZSwgdHJhbnNm
b3JtKSwgYW5nbGUsIHJvdGF0aW9uQ2VudGVyKSkKKyAgICAgICAgOiBCYXNlKFNWR1RyYW5zZm9y
bVZhbHVlKHR5cGUsIFNWR01hdHJpeDo6Y3JlYXRlKHRoaXMsIHRyYW5zZm9ybSksIGFuZ2xlLCBy
b3RhdGlvbkNlbnRlcikpCiAgICAgewogICAgIH0KIAotICAgIFNWR1Byb3BlcnR5T3duZXIqIG93
bmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9vd25lcjsgfQorICAgIERPTUxpdmVQcm9w
ZXJ0eU9ic2VydmVyKiBvYnNlcnZlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fb2JzZXJ2
ZXI7IH0KIAotICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJvcGVydHkqIHByb3Bl
cnR5KSBvdmVycmlkZQorICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoRE9NTGl2ZVByb3Bl
cnR5KiBwcm9wZXJ0eSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQocHJv
cGVydHksIHByb3BlcnR5ID09IG1fdmFsdWUubWF0cml4KCkucHRyKCkpOwotICAgICAgICBpZiAo
b3duZXIoKSkKLSAgICAgICAgICAgIG93bmVyKCktPmNvbW1pdFByb3BlcnR5Q2hhbmdlKHRoaXMp
OworICAgICAgICBpZiAob2JzZXJ2ZXIoKSkKKyAgICAgICAgICAgIG9ic2VydmVyKCktPmNvbW1p
dFByb3BlcnR5Q2hhbmdlKHRoaXMpOwogICAgICAgICBtX3ZhbHVlLm1hdHJpeERpZENoYW5nZSgp
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxp
c3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmgKaW5kZXggNTQ0ZDYw
YjJlNjM1YzFjMjA5OTM0ZWU0MzVjZjQxMjVlNmE3MWYyYi4uZTYwNDVlZDI1NjIzMjFlOTE0MTY0
YTBmYjIwNDk3NDg3MTA1ZTIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Ry
YW5zZm9ybUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5o
CkBAIC0zOCwxNCArMzgsMTQgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdUcmFuc2Zvcm1MaXN0KCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNm
b3JtTGlzdD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2Vz
cyBhY2Nlc3MpCisgICAgc3RhdGljIFJlZjxTVkdUcmFuc2Zvcm1MaXN0PiBjcmVhdGUoRE9NTGl2
ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU1ZHVHJhbnNmb3JtTGlzdChvd25lciwgYWNjZXNzKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR1RyYW5zZm9ybUxpc3Qob2JzZXJ2ZXIpKTsKICAgICB9CiAKLSAg
ICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybUxpc3Q+IGNyZWF0ZShjb25zdCBTVkdUcmFuc2Zvcm1M
aXN0JiBvdGhlciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQorICAgIHN0YXRpYyBSZWY8U1ZH
VHJhbnNmb3JtTGlzdD4gY3JlYXRlKGNvbnN0IFNWR1RyYW5zZm9ybUxpc3QmIG90aGVyKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtTGlzdChvdGhlciwg
YWNjZXNzKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RyYW5zZm9ybUxpc3Qo
b3RoZXIpKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25PcjxSZWY8U1ZHVHJhbnNmb3JtPj4gY3Jl
YXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChjb25zdCBSZWY8U1ZHTWF0cml4PiYgbWF0cml4KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKaW5kZXggOGY0MjM1MTZiNWJkYmM1Mjg3Y2RhNDRh
ZGY0OWZjNjE4ZGRjMzJlYy4uNTNjYzE1ZGM5MGU3N2NhOTEyNGY2Y2FmYTI4ZGExYWM1MDU5Y2Fk
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCkBAIC0zMiw5ICszMiw4IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIFNWR1ZpZXdTcGVjOjpTVkdWaWV3U3BlYyhTVkdFbGVtZW50JiBj
b250ZXh0RWxlbWVudCkKLSAgICA6IFNWR0ZpdFRvVmlld0JveCgmY29udGV4dEVsZW1lbnQsIFNW
R1Byb3BlcnR5QWNjZXNzOjpSZWFkT25seSkKKyAgICA6IFNWR0ZpdFRvVmlld0JveCgmY29udGV4
dEVsZW1lbnQpCiAgICAgLCBtX2NvbnRleHRFbGVtZW50KG1ha2VXZWFrUHRyKGNvbnRleHRFbGVt
ZW50KSkKLSAgICAsIG1fdHJhbnNmb3JtKFNWR1RyYW5zZm9ybUxpc3Q6OmNyZWF0ZSgmY29udGV4
dEVsZW1lbnQsIFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkT25seSkpCiB7CiAgICAgc3RhdGljIHN0
ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCmluZGV4IDJlN2VmOTc4NmMxYTg4NmZkMjVhY2ZlYTAz
N2ZjODUwZDc5ZGU1MjAuLjZlZmMwOWY5ODNjMmM0M2M2YTNkODU1YjAyZDM0MjIyMDAzODIxYzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCkBAIC01NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAK
ICAgICBXZWFrUHRyPFNWR0VsZW1lbnQ+IG1fY29udGV4dEVsZW1lbnQ7CiAgICAgU3RyaW5nIG1f
dmlld1RhcmdldFN0cmluZzsKLSAgICBSZWY8U1ZHVHJhbnNmb3JtTGlzdD4gbV90cmFuc2Zvcm07
CisgICAgUmVmPFNWR1RyYW5zZm9ybUxpc3Q+IG1fdHJhbnNmb3JtIHsgU1ZHVHJhbnNmb3JtTGlz
dDo6Y3JlYXRlKCkgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRGVjb3JhdGVkUHJvcGVy
dHkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRGVjb3JhdGVk
UHJvcGVydHkuaAppbmRleCBjZWJhYTM2M2JmNTI3YmJiMzhlNTY3ZDNlM2Q0MmJmODQzMTAyYTc1
Li42ZGE5ZDQ0OWVjY2NmMTlmMDllY2ZhYWZjYTVhNThiOWM3ODQxZDhjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZERlY29yYXRlZFByb3BlcnR5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWREZWNvcmF0
ZWRQcm9wZXJ0eS5oCkBAIC05NywxNSArOTcsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgLy8g
TWFuYWdpbmcgdGhlIHJlbGF0aW9uc2hpcCB3aXRoIHRoZSBvd25lci4KLSAgICB2b2lkIHNldERp
cnR5KCkgb3ZlcnJpZGUgeyBtX3N0YXRlID0gU1ZHUHJvcGVydHlTdGF0ZTo6RGlydHk7IH0KLSAg
ICBib29sIGlzRGlydHkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3N0YXRlID09IFNWR1By
b3BlcnR5U3RhdGU6OkRpcnR5OyB9Ci0gICAgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZSgp
IG92ZXJyaWRlCi0gICAgewotICAgICAgICBpZiAobV9zdGF0ZSA9PSBTVkdQcm9wZXJ0eVN0YXRl
OjpDbGVhbikKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgICAgIG1fc3Rh
dGUgPSBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbjsKLSAgICAgICAgcmV0dXJuIGJhc2VWYWxBc1N0
cmluZygpOwotICAgIH0KKyAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGJhc2VWYWxBc1N0cmluZygpOyB9CiAKICAgICAvLyBVc2VkIGJ5IFJlbmRlclNW
R0VsZW1lbnRzIGFuZCBEdW1wUmVuZGVyVHJlZS4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9w
ZXJ0eVR5cGU+CkBAIC0xMzMsNyArMTI1LDYgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIHN0
ZDo6dW5pcXVlX3B0cjxTVkdEZWNvcmF0ZWRQcm9wZXJ0eTxEZWNvcmF0aW9uVHlwZT4+IG1fYmFz
ZVZhbDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHRGVjb3JhdGVkUHJvcGVydHk8RGVjb3JhdGlv
blR5cGU+PiBtX2FuaW1WYWw7Ci0gICAgU1ZHUHJvcGVydHlTdGF0ZSBtX3N0YXRlIHsgU1ZHUHJv
cGVydHlTdGF0ZTo6Q2xlYW4gfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkuaAppbmRl
eCBlMTRmNjc5ZjMzNjNkZGM1YThmNDFjMDM1ZmRmNzM0ZWJjYjk2NjYxLi5kNDQ4MGY3NGEyZTM5
NmQxOGE5MzdkZjc4OTMwZjNkNWZiZmIxMThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eS5oCkBA
IC04Nyw5ICs4Nyw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBNYW5hZ2luZyB0aGUgcmVs
YXRpb25zaGlwIHdpdGggdGhlIG93bmVyLgotICAgIHZvaWQgc2V0RGlydHkoKSBvdmVycmlkZSB7
IG1fYmFzZVZhbC0+c2V0RGlydHkoKTsgfQotICAgIGJvb2wgaXNEaXJ0eSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fYmFzZVZhbC0+aXNEaXJ0eSgpOyB9Ci0gICAgT3B0aW9uYWw8U3RyaW5n
PiBzeW5jaHJvbml6ZSgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fYmFzZVZhbC0+c3luY2hyb25pemUo
KTsgfQorICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
YmFzZVZhbEFzU3RyaW5nKCk7IH0KIAogICAgIC8vIFVzZWQgYnkgUmVuZGVyU1ZHRWxlbWVudHMg
YW5kIER1bXBSZW5kZXJUcmVlLgogICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgY3VycmVudFZhbHVl
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0Fu
aW1hdGVkUHJvcGVydHkuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRQcm9wZXJ0eS5jcHAKaW5kZXggZWMyZjNhNDg3ZjgzMGYxYzcyNmQwZjZiZTRjOTQyMmVj
OGYzMDFlOC4uZWRhNWM4NGMzNWZiYzdiZDI1NGQxYWRlMmZiMjU4MTY2NTgzZGMzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0
eS5jcHAKQEAgLTMwLDEyICszMCwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNWR1By
b3BlcnR5T3duZXIqIFNWR0FuaW1hdGVkUHJvcGVydHk6Om93bmVyKCkgY29uc3QKK0RPTUxpdmVQ
cm9wZXJ0eU9ic2VydmVyKiBTVkdBbmltYXRlZFByb3BlcnR5OjpvYnNlcnZlcigpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fY29udGV4dEVsZW1lbnQ7CiB9CiAKLXZvaWQgU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eTo6Y29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJvcGVydHkqKQordm9pZCBTVkdBbmltYXRl
ZFByb3BlcnR5Ojpjb21taXRQcm9wZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqKQogewogICAg
IGlmICghbV9jb250ZXh0RWxlbWVudCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oCmluZGV4IGM2Zjkz
MmU2ZGY2OWNjZWZhZmM5NjVlMzJjZDU2NjIwYTFmYzMzNjQuLmExMDQxZTYwNTI5ZGExZmQyMzE4
NjBlMjYwYjcxY2NmYjcwYzRhOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eU93bmVyLmgiCisjaW5jbHVkZSAiRE9NTGl2
ZVByb3BlcnR5T2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAt
MzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBTVkdFbGVtZW50
OwogCi1jbGFzcyBTVkdBbmltYXRlZFByb3BlcnR5IDogcHVibGljIFJlZkNvdW50ZWQ8U1ZHQW5p
bWF0ZWRQcm9wZXJ0eT4sIHB1YmxpYyBTVkdQcm9wZXJ0eU93bmVyIHsKK2NsYXNzIFNWR0FuaW1h
dGVkUHJvcGVydHkgOiBwdWJsaWMgUmVmQ291bnRlZDxTVkdBbmltYXRlZFByb3BlcnR5PiwgcHVi
bGljIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TVkdB
bmltYXRlZFByb3BlcnR5KCkgPSBkZWZhdWx0OwogICAgIApAQCAtNDcsOSArNDcsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBTdHJpbmcgYW5pbVZhbEFzU3RyaW5nKCkgY29uc3QgeyByZXR1cm4g
ZW1wdHlTdHJpbmcoKTsgfQogICAgIAogICAgIC8vIENvbnRyb2wgdGhlIHN5bmNocm9uaXphdGlv
biBiZXR3ZWVuIHRoZSBhdHRyaWJ1dGUgYW5kIGl0cyByZWZsZWN0aW9uIGluIGJhc2VWYWwuCi0g
ICAgdmlydHVhbCBib29sIGlzRGlydHkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZp
cnR1YWwgdm9pZCBzZXREaXJ0eSgpIHsgfQotICAgIHZpcnR1YWwgT3B0aW9uYWw8U3RyaW5nPiBz
eW5jaHJvbml6ZSgpIHsgcmV0dXJuIFdURjo6bnVsbG9wdDsgfQorICAgIHZpcnR1YWwgU3RyaW5n
IHZhbHVlQXNTdHJpbmcoKSBjb25zdCB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CiAgICAgCiAg
ICAgLy8gQ29udHJvbCB0aGUgYW5pbWF0aW9uIGxpZmUgY3ljbGUuCiAgICAgYm9vbCBpc0FuaW1h
dGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNBbmltYXRpbmc7IH0KQEAgLTY2LDggKzY0LDggQEAg
cHJvdGVjdGVkOgogICAgIHsKICAgICB9CiAgICAgCi0gICAgU1ZHUHJvcGVydHlPd25lciogb3du
ZXIoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR1By
b3BlcnR5Kikgb3ZlcnJpZGU7CisgICAgRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVy
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShET01MaXZl
UHJvcGVydHkqKSBvdmVycmlkZTsKICAgICAKICAgICBTVkdFbGVtZW50KiBtX2NvbnRleHRFbGVt
ZW50IHsgbnVsbHB0ciB9OwogICAgIGJvb2wgbV9pc0FuaW1hdGluZyB7IGZhbHNlIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5
TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0
eUxpc3QuaAppbmRleCBmNDI1NWQ3ZjZlNzViMTRhY2E4OGE4ODBiZmYzNmU2NTYzODNmNzE2Li5h
ZDIxYTk4MDZjNTRhZmMwNmVjYWE1YTcxMzI1Y2RiMjMxM2NhZjMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TGlzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlMaXN0LmgK
QEAgLTY4LDkgKzY4LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIE1hbmFnaW5nIHRoZSBy
ZWxhdGlvbnNoaXAgd2l0aCB0aGUgb3duZXIuCi0gICAgdm9pZCBzZXREaXJ0eSgpIG92ZXJyaWRl
IHsgbV9iYXNlVmFsLT5zZXREaXJ0eSgpOyB9Ci0gICAgYm9vbCBpc0RpcnR5KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV9iYXNlVmFsLT5pc0RpcnR5KCk7IH0KLSAgICBPcHRpb25hbDxTdHJp
bmc+IHN5bmNocm9uaXplKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9iYXNlVmFsLT5zeW5jaHJvbml6
ZSgpOyB9CisgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBiYXNlVmFsQXNTdHJpbmcoKTsgfQogCiAgICAgLy8gVXNlZCBieSBSZW5kZXJTVkdFbGVtZW50
cyBhbmQgRHVtcFJlbmRlclRyZWUuCiAgICAgY29uc3QgTGlzdFR5cGUmIGN1cnJlbnRWYWx1ZSgp
IGNvbnN0CkBAIC0xMTcsMTkgKzExNSwyNCBAQCBwcm90ZWN0ZWQ6CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIFNWR0FuaW1hdGVkUHJvcGVydHlMaXN0KFNWR0VsZW1l
bnQqIGNvbnRleHRFbGVtZW50LCBBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCiAgICAgICAgIDog
U1ZHQW5pbWF0ZWRQcm9wZXJ0eShjb250ZXh0RWxlbWVudCkKLSAgICAgICAgLCBtX2Jhc2VWYWwo
TGlzdFR5cGU6OmNyZWF0ZSh0aGlzLCBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRlLCBzdGQ6
OmZvcndhcmQ8QXJndW1lbnRzPihhcmd1bWVudHMpLi4uKSkKKyAgICAgICAgLCBtX2Jhc2VWYWwo
TGlzdFR5cGU6OmNyZWF0ZSh0aGlzLCBzdGQ6OmZvcndhcmQ8QXJndW1lbnRzPihhcmd1bWVudHMp
Li4uKSkKICAgICB7CiAgICAgfQogCiAgICAgUmVmUHRyPExpc3RUeXBlPiYgZW5zdXJlQW5pbVZh
bCgpCiAgICAgewogICAgICAgICBpZiAoIW1fYW5pbVZhbCkKLSAgICAgICAgICAgIG1fYW5pbVZh
bCA9IExpc3RUeXBlOjpjcmVhdGUobV9iYXNlVmFsLCBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZE9u
bHkpOworICAgICAgICAgICAgbV9hbmltVmFsID0gTGlzdFR5cGU6OmNyZWF0ZShtX2Jhc2VWYWwu
Z2V0KCkpOwogICAgICAgICByZXR1cm4gbV9hbmltVmFsOwogICAgIH0KIAorICAgIGJvb2wgaXNQ
cm9wZXJ0eVJlYWRPbmx5KGNvbnN0IERPTUxpdmVQcm9wZXJ0eSYgcHJvcGVydHkpIGNvbnN0IG92
ZXJyaWRlCisgICAgeworICAgICAgICByZXR1cm4gbV9hbmltVmFsID09ICZwcm9wZXJ0eTsKKyAg
ICB9CisKICAgICAvLyBDYWxsZWQgd2hlbiBtX2Jhc2VWYWwgY2hhbmdlcyBvciBhbiBpdGVtIGlu
IG1fYmFzZVZhbCBjaGFuZ2VzLgotICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJv
cGVydHkqIHByb3BlcnR5KSBvdmVycmlkZQorICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2Uo
RE9NTGl2ZVByb3BlcnR5KiBwcm9wZXJ0eSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmICht
X2FuaW1WYWwpCiAgICAgICAgICAgICAqbV9hbmltVmFsID0gbV9iYXNlVmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJB
Y2Nlc3NvckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVk
UHJvcGVydHlQYWlyQWNjZXNzb3JJbXBsLmgKaW5kZXggNGEyNjlmYTVhOGYyN2NkMzM1NWU4MzQw
NmZhNTM4NTNkOTUyODljNS4uMzUwYmMwODhlYjQ1YTk2MDk4ZWE5MjQ3YTM3NTg1ODI4ZWUxMzUx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eVBhaXJBY2Nlc3NvckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdBbmltYXRlZFByb3BlcnR5UGFpckFjY2Vzc29ySW1wbC5oCkBAIC00NiwxNyArNDYs
MTEgQEAgcHVibGljOgogICAgIGNvbnN0ZXhwciBzdGF0aWMgY29uc3QgU1ZHTWVtYmVyQWNjZXNz
b3I8T3duZXJUeXBlPiYgc2luZ2xldG9uKCkgeyByZXR1cm4gQmFzZTo6dGVtcGxhdGUgc2luZ2xl
dG9uPFNWR0FuaW1hdGVkQW5nbGVPcmllbnRBY2Nlc3NvciwgcHJvcGVydHkxLCBwcm9wZXJ0eTI+
KCk7IH0KIAogcHJpdmF0ZToKLSAgICBPcHRpb25hbDxTdHJpbmc+IHN5bmNocm9uaXplKGNvbnN0
IE93bmVyVHlwZSYgb3duZXIpIGNvbnN0IGZpbmFsCisgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmco
Y29uc3QgT3duZXJUeXBlJiBvd25lcikgY29uc3QgZmluYWwKICAgICB7Ci0gICAgICAgIGJvb2wg
ZGlydHkxID0gcHJvcGVydHkxKG93bmVyKS0+aXNEaXJ0eSgpOwotICAgICAgICBib29sIGRpcnR5
MiA9IHByb3BlcnR5Mihvd25lciktPmlzRGlydHkoKTsKLSAgICAgICAgaWYgKCEoZGlydHkxIHx8
IGRpcnR5MikpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCiAgICAgICAgIGF1
dG8gdHlwZSA9IHByb3BlcnR5Mihvd25lciktPmJhc2VWYWwoKTsKLQotICAgICAgICBTdHJpbmcg
c3RyaW5nMSA9IGRpcnR5MSA/ICpwcm9wZXJ0eTEob3duZXIpLT5zeW5jaHJvbml6ZSgpIDogcHJv
cGVydHkxKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5nKCk7Ci0gICAgICAgIFN0cmluZyBzdHJpbmcy
ID0gZGlydHkyID8gKnByb3BlcnR5Mihvd25lciktPnN5bmNocm9uaXplKCkgOiBwcm9wZXJ0eTIo
b3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nIHN0cmluZzEgPSBwcm9w
ZXJ0eTEob3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nIHN0cmluZzIg
PSBwcm9wZXJ0eTIob3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsKICAgICAgICAgcmV0dXJuIHR5
cGUgPT0gU1ZHTWFya2VyT3JpZW50QXV0byB8fCB0eXBlID09IFNWR01hcmtlck9yaWVudEF1dG9T
dGFydFJldmVyc2UgPyBzdHJpbmcyIDogc3RyaW5nMTsKICAgICB9CiAKQEAgLTgzLDE1ICs3Nywx
MCBAQCBwdWJsaWM6CiAgICAgY29uc3RleHByIHN0YXRpYyBjb25zdCBTVkdNZW1iZXJBY2Nlc3Nv
cjxPd25lclR5cGU+JiBzaW5nbGV0b24oKSB7IHJldHVybiBCYXNlOjp0ZW1wbGF0ZSBzaW5nbGV0
b248U1ZHQW5pbWF0ZWRJbnRlZ2VyUGFpckFjY2Vzc29yLCBwcm9wZXJ0eTEsIHByb3BlcnR5Mj4o
KTsgfQogCiBwcml2YXRlOgotICAgIE9wdGlvbmFsPFN0cmluZz4gc3luY2hyb25pemUoY29uc3Qg
T3duZXJUeXBlJiBvd25lcikgY29uc3QgZmluYWwKKyAgICBTdHJpbmcgdmFsdWVBc1N0cmluZyhj
b25zdCBPd25lclR5cGUmIG93bmVyKSBjb25zdCBmaW5hbAogICAgIHsKLSAgICAgICAgYm9vbCBk
aXJ0eTEgPSBwcm9wZXJ0eTEob3duZXIpLT5pc0RpcnR5KCk7Ci0gICAgICAgIGJvb2wgZGlydHky
ID0gcHJvcGVydHkyKG93bmVyKS0+aXNEaXJ0eSgpOwotICAgICAgICBpZiAoIShkaXJ0eTEgfHwg
ZGlydHkyKSkKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICAgICAgU3Ry
aW5nIHN0cmluZzEgPSBkaXJ0eTEgPyAqcHJvcGVydHkxKG93bmVyKS0+c3luY2hyb25pemUoKSA6
IHByb3BlcnR5MShvd25lciktPmJhc2VWYWxBc1N0cmluZygpOwotICAgICAgICBTdHJpbmcgc3Ry
aW5nMiA9IGRpcnR5MiA/ICpwcm9wZXJ0eTIob3duZXIpLT5zeW5jaHJvbml6ZSgpIDogcHJvcGVy
dHkyKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5nKCk7CisgICAgICAgIFN0cmluZyBzdHJpbmcxID0g
cHJvcGVydHkxKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5nKCk7CisgICAgICAgIFN0cmluZyBzdHJp
bmcyID0gcHJvcGVydHkyKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5nKCk7CiAgICAgICAgIHJldHVy
biBzdHJpbmcxID09IHN0cmluZzIgPyBzdHJpbmcxIDogc3RyaW5nMSArICIsICIgKyBzdHJpbmcy
OwogICAgIH0KIApAQCAtMTE0LDE5ICsxMDMsMTQgQEAgY2xhc3MgU1ZHQW5pbWF0ZWROdW1iZXJQ
YWlyQWNjZXNzb3IgZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3MK
IAogcHVibGljOgogICAgIHVzaW5nIEJhc2U6OkJhc2U7Ci0gICAgdGVtcGxhdGU8UmVmPFNWR0Fu
aW1hdGVkTnVtYmVyPiBPd25lclR5cGU6Oipwcm9wZXJ0eTEsIFJlZjxTVkdBbmltYXRlZE51bWJl
cj4gT3duZXJUeXBlOjoqcHJvcGVydHkyID4KKyAgICB0ZW1wbGF0ZTxSZWY8U1ZHQW5pbWF0ZWRO
dW1iZXI+IE93bmVyVHlwZTo6KnByb3BlcnR5MSwgUmVmPFNWR0FuaW1hdGVkTnVtYmVyPiBPd25l
clR5cGU6Oipwcm9wZXJ0eTI+CiAgICAgY29uc3RleHByIHN0YXRpYyBjb25zdCBTVkdNZW1iZXJB
Y2Nlc3NvcjxPd25lclR5cGU+JiBzaW5nbGV0b24oKSB7IHJldHVybiBCYXNlOjp0ZW1wbGF0ZSBz
aW5nbGV0b248U1ZHQW5pbWF0ZWROdW1iZXJQYWlyQWNjZXNzb3IsIHByb3BlcnR5MSwgcHJvcGVy
dHkyPigpOyB9CiAKIHByaXZhdGU6Ci0gICAgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZShj
b25zdCBPd25lclR5cGUmIG93bmVyKSBjb25zdCBmaW5hbAorICAgIFN0cmluZyB2YWx1ZUFzU3Ry
aW5nKGNvbnN0IE93bmVyVHlwZSYgb3duZXIpIGNvbnN0IGZpbmFsCiAgICAgewotICAgICAgICBi
b29sIGRpcnR5MSA9IHByb3BlcnR5MShvd25lciktPmlzRGlydHkoKTsKLSAgICAgICAgYm9vbCBk
aXJ0eTIgPSBwcm9wZXJ0eTIob3duZXIpLT5pc0RpcnR5KCk7Ci0gICAgICAgIGlmICghKGRpcnR5
MSB8fCBkaXJ0eTIpKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgICAg
ICBTdHJpbmcgc3RyaW5nMSA9IGRpcnR5MSA/ICpwcm9wZXJ0eTEob3duZXIpLT5zeW5jaHJvbml6
ZSgpIDogcHJvcGVydHkxKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5nKCk7Ci0gICAgICAgIFN0cmlu
ZyBzdHJpbmcyID0gZGlydHkyID8gKnByb3BlcnR5Mihvd25lciktPnN5bmNocm9uaXplKCkgOiBw
cm9wZXJ0eTIob3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nIHN0cmlu
ZzEgPSBwcm9wZXJ0eTEob3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsKKyAgICAgICAgU3RyaW5n
IHN0cmluZzIgPSBwcm9wZXJ0eTIob3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsKICAgICAgICAg
cmV0dXJuIHN0cmluZzEgPT0gc3RyaW5nMiA/IHN0cmluZzEgOiBzdHJpbmcxICsgIiwgIiArIHN0
cmluZzI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZFZhbHVlUHJvcGVydHkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oCmluZGV4IGRmZGIxNzFhMGNiODNmYzc1OTYw
NTllNzYwNGE3ZmQ4OTM1MWY1MjUuLjdmOTY1MjVhYjkzYjY0Y2YzN2NjYTUyYWY0N2RmYjRlNmMw
MWFmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkVmFsdWVQcm9wZXJ0eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oCkBAIC04NCw5ICs4NCw3IEBAIHB1YmxpYzoKICAgICB9
CiAKICAgICAvLyBNYW5hZ2luZyB0aGUgcmVsYXRpb25zaGlwIHdpdGggdGhlIG93bmVyLgotICAg
IHZvaWQgc2V0RGlydHkoKSBvdmVycmlkZSB7IG1fYmFzZVZhbC0+c2V0RGlydHkoKTsgfQotICAg
IGJvb2wgaXNEaXJ0eSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYmFzZVZhbC0+aXNEaXJ0
eSgpOyB9Ci0gICAgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZSgpIG92ZXJyaWRlIHsgcmV0
dXJuIG1fYmFzZVZhbC0+c3luY2hyb25pemUoKTsgfQorICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5n
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYmFzZVZhbEFzU3RyaW5nKCk7IH0KIAogICAgIC8v
IFVzZWQgYnkgUmVuZGVyU1ZHRWxlbWVudHMgYW5kIER1bXBSZW5kZXJUcmVlLgogICAgIGNvbnN0
IFZhbHVlVHlwZSYgY3VycmVudFZhbHVlKCkgY29uc3QKQEAgLTEzMSwyNiArMTI5LDI0IEBAIHBy
b3RlY3RlZDoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgU1ZHQW5p
bWF0ZWRWYWx1ZVByb3BlcnR5KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBBcmd1bWVudHMm
Ji4uLiBhcmd1bWVudHMpCiAgICAgICAgIDogU1ZHQW5pbWF0ZWRQcm9wZXJ0eShjb250ZXh0RWxl
bWVudCkKLSAgICAgICAgLCBtX2Jhc2VWYWwoUHJvcGVydHlUeXBlOjpjcmVhdGUodGhpcywgU1ZH
UHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0ZSwgVmFsdWVUeXBlKHN0ZDo6Zm9yd2FyZDxBcmd1bWVu
dHM+KGFyZ3VtZW50cykuLi4pKSkKLSAgICB7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5h
bWUuLi4gQXJndW1lbnRzPgotICAgIFNWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eShTVkdFbGVtZW50
KiBjb250ZXh0RWxlbWVudCwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBBcmd1bWVudHMmJi4u
LiBhcmd1bWVudHMpCi0gICAgICAgIDogU1ZHQW5pbWF0ZWRQcm9wZXJ0eShjb250ZXh0RWxlbWVu
dCkKLSAgICAgICAgLCBtX2Jhc2VWYWwoUHJvcGVydHlUeXBlOjpjcmVhdGUodGhpcywgYWNjZXNz
LCBWYWx1ZVR5cGUoc3RkOjpmb3J3YXJkPEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLikpKQorICAg
ICAgICAsIG1fYmFzZVZhbChQcm9wZXJ0eVR5cGU6OmNyZWF0ZSh0aGlzLCBWYWx1ZVR5cGUoc3Rk
Ojpmb3J3YXJkPEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLikpKQogICAgIHsKICAgICB9CiAKICAg
ICBSZWZQdHI8UHJvcGVydHlUeXBlPiYgZW5zdXJlQW5pbVZhbCgpCiAgICAgewogICAgICAgICBp
ZiAoIW1fYW5pbVZhbCkKLSAgICAgICAgICAgIG1fYW5pbVZhbCA9IFByb3BlcnR5VHlwZTo6Y3Jl
YXRlKHRoaXMsIFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkT25seSwgbV9iYXNlVmFsLT52YWx1ZSgp
KTsKKyAgICAgICAgICAgIG1fYW5pbVZhbCA9IFByb3BlcnR5VHlwZTo6Y3JlYXRlKHRoaXMsIG1f
YmFzZVZhbC0+dmFsdWUoKSk7CiAgICAgICAgIHJldHVybiBtX2FuaW1WYWw7CiAgICAgfQogCisg
ICAgYm9vbCBpc1Byb3BlcnR5UmVhZE9ubHkoY29uc3QgRE9NTGl2ZVByb3BlcnR5JiBwcm9wZXJ0
eSkgY29uc3Qgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHJldHVybiBtX2FuaW1WYWwgPT0gJnBy
b3BlcnR5OworICAgIH0KKwogICAgIC8vIENhbGxlZCB3aGVuIG1fYmFzZVZhbCBjaGFuZ2VzLgot
ICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJvcGVydHkqIHByb3BlcnR5KSBvdmVy
cmlkZQorICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoRE9NTGl2ZVByb3BlcnR5KiBwcm9w
ZXJ0eSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChtX2FuaW1WYWwpCiAgICAgICAgICAg
ICBtX2FuaW1WYWwtPnNldFZhbHVlKG1fYmFzZVZhbC0+dmFsdWUoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNZW1iZXJBY2Nlc3Nvci5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWVtYmVyQWNjZXNzb3IuaAppbmRleCBmN2JiYTZh
ZTBhMGVlYWJiNmU2MTg3YTU4MTA0ZjcyMTI4YWNhYWZhLi5lNTk3NzgwNTc2MDQxOTEzMjdjMjc0
NTg5ZDYyYWY1NzY3YmJiM2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdNZW1iZXJBY2Nlc3Nvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR01lbWJlckFjY2Vzc29yLmgKQEAgLTMwLDggKzMwLDggQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitjbGFzcyBET01MaXZlUHJvcGVydHk7CiBjbGFzcyBTVkdBbmltYXRlZFByb3Bl
cnR5OwotY2xhc3MgU1ZHUHJvcGVydHk7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIE93bmVyVHlwZT4K
IGNsYXNzIFNWR01lbWJlckFjY2Vzc29yIHsKQEAgLTQzLDkgKzQzLDkgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBpc0FuaW1hdGVkUHJvcGVydHkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGVkTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBtYXRjaGVzKGNvbnN0IE93bmVyVHlwZSYsIGNvbnN0
IFNWR1Byb3BlcnR5JikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
bWF0Y2hlcyhjb25zdCBPd25lclR5cGUmLCBjb25zdCBET01MaXZlUHJvcGVydHkmKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBtYXRjaGVzKGNvbnN0IE93bmVyVHlw
ZSYsIGNvbnN0IFNWR0FuaW1hdGVkUHJvcGVydHkmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQot
ICAgIHZpcnR1YWwgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZShjb25zdCBPd25lclR5cGUm
KSBjb25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KKyAgICB2aXJ0dWFsIFN0cmluZyB2YWx1
ZUFzU3RyaW5nKGNvbnN0IE93bmVyVHlwZSYpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7
IH0KIAogICAgIHZpcnR1YWwgUmVmUHRyPFNWR0F0dHJpYnV0ZUFuaW1hdG9yPiBjcmVhdGVBbmlt
YXRvcihPd25lclR5cGUmLCBjb25zdCBRdWFsaWZpZWROYW1lJiwgQW5pbWF0aW9uTW9kZSwgQ2Fs
Y01vZGUsIGJvb2wsIGJvb2wpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFs
IHZvaWQgYXBwZW5kQW5pbWF0ZWRJbnN0YW5jZShPd25lclR5cGUmLCBTVkdBdHRyaWJ1dGVBbmlt
YXRvciYpIGNvbnN0IHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHUG9pbnRlck1lbWJlckFjY2Vzc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdQb2ludGVyTWVtYmVyQWNjZXNzb3IuaAppbmRleCA4ZTJmNzZkY2FiNGU5MGZiMzhl
YjMzOTY5ZWE2NWMwNzAyMjQ1Mzg3Li5hZjUzZDZjNTZmZDg2OTdlMzA5NWUwMWNiYWE5OWU4OWQ3
MzZkMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQb2lu
dGVyTWVtYmVyQWNjZXNzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdQb2ludGVyTWVtYmVyQWNjZXNzb3IuaApAQCAtNDcsOSArNDcsOSBAQCBwdWJsaWM6CiAgICAg
ICAgIHByb3BlcnR5KG93bmVyKS0+ZGV0YWNoKCk7CiAgICAgfQogCi0gICAgT3B0aW9uYWw8U3Ry
aW5nPiBzeW5jaHJvbml6ZShjb25zdCBPd25lclR5cGUmIG93bmVyKSBjb25zdCBvdmVycmlkZQor
ICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKGNvbnN0IE93bmVyVHlwZSYgb3duZXIpIGNvbnN0IG92
ZXJyaWRlCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHkob3duZXIpLT5zeW5jaHJvbml6
ZSgpOworICAgICAgICByZXR1cm4gcHJvcGVydHkob3duZXIpLT52YWx1ZUFzU3RyaW5nKCk7CiAg
ICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJv
cGVydHkuaAppbmRleCBjZTY1Y2IxMTBkMWZiNDY2ZTIyOWVjNzljOWRkMDE3ZTg2MTI5OTY3Li43
NmE5N2M1OTllYzhlM2M0Y2UzYzA0YmU2MWQ2MWEwODk4YzQ3Y2RmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5LmgKQEAgLTIwLDgzICsyMCwyMSBAQAogCiAj
cHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR1Byb3BlcnR5T3duZXIuaCIKLSNpbmNsdWRlIDx3
dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlICJET01MaXZlUHJvcGVydHkuaCIKICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgU1ZHUHJvcGVydHlBY2Nlc3MgOiB1aW50OF90
IHsgUmVhZFdyaXRlLCBSZWFkT25seSB9OwotZW51bSBjbGFzcyBTVkdQcm9wZXJ0eVN0YXRlIDog
dWludDhfdCB7IENsZWFuLCBEaXJ0eSB9OwotCi1jbGFzcyBTVkdQcm9wZXJ0eSA6IHB1YmxpYyBS
ZWZDb3VudGVkPFNWR1Byb3BlcnR5PiB7CitjbGFzcyBTVkdQcm9wZXJ0eSA6IHB1YmxpYyBET01M
aXZlUHJvcGVydHksIHB1YmxpYyBSZWZDb3VudGVkPFNWR1Byb3BlcnR5PiB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+U1ZHUHJvcGVydHkoKSA9IGRlZmF1bHQ7CiAKLSAgICAvLyBNYW5hZ2luZyB0
aGUgcmVsYXRpb25zaGlwIHdpdGggdGhlIG93bmVyLgotICAgIGJvb2wgaXNBdHRhY2hlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fb3duZXI7IH0KLSAgICB2b2lkIGF0dGFjaChTVkdQcm9wZXJ0eU93bmVy
KiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQotICAgIHsKLSAgICAgICAgQVNTRVJU
KCFtX293bmVyKTsKLSAgICAgICAgQVNTRVJUKG1fc3RhdGUgPT0gU1ZHUHJvcGVydHlTdGF0ZTo6
Q2xlYW4pOwotICAgICAgICBtX293bmVyID0gb3duZXI7Ci0gICAgICAgIG1fYWNjZXNzID0gYWNj
ZXNzOwotICAgIH0KLQotICAgIHZvaWQgZGV0YWNoKCkKLSAgICB7Ci0gICAgICAgIG1fb3duZXIg
PSBudWxscHRyOwotICAgICAgICBtX2FjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3Jp
dGU7Ci0gICAgICAgIG1fc3RhdGUgPSBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbjsKLSAgICB9Ci0K
LSAgICBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0Ci0gICAgewotICAg
ICAgICBpZiAoIW1fb3duZXIpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAg
cmV0dXJuIG1fb3duZXItPmF0dHJpYnV0ZUNvbnRleHRFbGVtZW50KCk7Ci0gICAgfQotCi0gICAg
dm9pZCBjb21taXRDaGFuZ2UoKQotICAgIHsKLSAgICAgICAgaWYgKCFtX293bmVyKQotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICBtX293bmVyLT5jb21taXRQcm9wZXJ0eUNoYW5nZSh0aGlz
KTsKLSAgICB9Ci0KLSAgICAvLyBET00gYWNjZXNzLgotICAgIFNWR1Byb3BlcnR5QWNjZXNzIGFj
Y2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzOyB9Ci0gICAgYm9vbCBpc1JlYWRPbmx5KCkg
Y29uc3QgeyByZXR1cm4gbV9hY2Nlc3MgPT0gU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRPbmx5OyB9
Ci0KLSAgICAvLyBTeW5jaHJvbml6aW5nIHRoZSBTVkcgYXR0cmlidXRlIGFuZCBpdHMgcmVmbGVj
dGlvbiBoZXJlLgotICAgIGJvb2wgaXNEaXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUgPT0g
U1ZHUHJvcGVydHlTdGF0ZTo6RGlydHk7IH0KLSAgICB2b2lkIHNldERpcnR5KCkgeyBtX3N0YXRl
ID0gU1ZHUHJvcGVydHlTdGF0ZTo6RGlydHk7IH0KLSAgICBPcHRpb25hbDxTdHJpbmc+IHN5bmNo
cm9uaXplKCkKLSAgICB7Ci0gICAgICAgIGlmIChtX3N0YXRlID09IFNWR1Byb3BlcnR5U3RhdGU6
OkNsZWFuKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAgbV9zdGF0
ZSA9IFNWR1Byb3BlcnR5U3RhdGU6OkNsZWFuOwotICAgICAgICByZXR1cm4gdmFsdWVBc1N0cmlu
ZygpOwotICAgIH0KLQogICAgIC8vIFRoaXMgaXMgdXNlZCB3aGVuIGNhbGxpbmcgc2V0QXR0cmli
dXRlKCkuCiAgICAgdmlydHVhbCBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0IHsgcmV0dXJu
IGVtcHR5U3RyaW5nKCk7IH0KIAotICAgIC8vIFZpc3VhbCBTdHVkaW8gZG9lc24ndCBzZWVtIHRv
IHNlZSB0aGVzZSBwcml2YXRlIGNvbnN0cnVjdG9ycyBmcm9tIHN1YmNsYXNzZXMuCi0gICAgLy8g
RklYTUU6IFNlZSB3aGF0IGl0IHRha2VzIHRvIHJlbW92ZSB0aGlzIGhhY2suCi0jaWYgIUNPTVBJ
TEVSKE1TVkMpCiBwcm90ZWN0ZWQ6Ci0jZW5kaWYKLSAgICBTVkdQcm9wZXJ0eShTVkdQcm9wZXJ0
eU93bmVyKiBvd25lciA9IG51bGxwdHIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcyA9IFNWR1By
b3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUpCi0gICAgICAgIDogbV9vd25lcihvd25lcikKLSAgICAg
ICAgLCBtX2FjY2VzcyhhY2Nlc3MpCi0gICAgewotICAgIH0KLQotICAgIFNWR1Byb3BlcnR5T3du
ZXIqIG1fb3duZXIgeyBudWxscHRyIH07Ci0gICAgU1ZHUHJvcGVydHlBY2Nlc3MgbV9hY2Nlc3Mg
eyBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRlIH07Ci0gICAgU1ZHUHJvcGVydHlTdGF0ZSBt
X3N0YXRlIHsgU1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW4gfTsKKyAgICB1c2luZyBET01MaXZlUHJv
cGVydHk6OkRPTUxpdmVQcm9wZXJ0eTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QWNjZXNz
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QWNjZXNzb3Iu
aAppbmRleCBmZjhjNGNkZTZkZDBmM2NhZmJjOGYyN2IyNzAyOTcwZTM1ZjQ4NzY0Li44ZDEyODE4
MjdkNGZiOTg4OTNiZmYxZjI0OWUwYjM1Njg4MjI3NWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFjY2Vzc29yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlBY2Nlc3Nvci5oCkBAIC00MCw3ICs0MCw3
IEBAIHByb3RlY3RlZDoKICAgICB1c2luZyBCYXNlOjpwcm9wZXJ0eTsKICAgICB1c2luZyBCYXNl
OjpzaW5nbGV0b247CiAKLSAgICBib29sIG1hdGNoZXMoY29uc3QgT3duZXJUeXBlJiBvd25lciwg
Y29uc3QgU1ZHUHJvcGVydHkmIHByb3BlcnR5KSBjb25zdCBvdmVycmlkZQorICAgIGJvb2wgbWF0
Y2hlcyhjb25zdCBPd25lclR5cGUmIG93bmVyLCBjb25zdCBET01MaXZlUHJvcGVydHkmIHByb3Bl
cnR5KSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMtPnByb3BlcnR5
KG93bmVyKS5wdHIoKSA9PSAmcHJvcGVydHk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUxpc3QuaAppbmRleCBjYmIwMGFmMTAzMDI1OWZhM2Mw
NDFhM2YwZjJhYjc4NzNjN2RkM2NkLi5jMTM0NjQzODg1ZjFiZWFhZmI5N2E3YjdmNWQ0ZWUwZmQ4
MjNmYzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9w
ZXJ0eUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0
eUxpc3QuaApAQCAtMzAsNyArMzAsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+Ci1jbGFzcyBTVkdQcm9wZXJ0eUxpc3QgOiBwdWJsaWMg
U1ZHTGlzdDxSZWY8UHJvcGVydHlUeXBlPj4sIHB1YmxpYyBTVkdQcm9wZXJ0eU93bmVyIHsKK2Ns
YXNzIFNWR1Byb3BlcnR5TGlzdCA6IHB1YmxpYyBTVkdMaXN0PFJlZjxQcm9wZXJ0eVR5cGU+Piwg
cHVibGljIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyIHsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNl
TGlzdCA9IFNWR0xpc3Q8UmVmPFByb3BlcnR5VHlwZT4+OwogICAgIHVzaW5nIEJhc2VMaXN0Ojpp
c0VtcHR5OwpAQCAtNDIsMTMgKzQyLDEyIEBAIHB1YmxpYzoKICNpZiAhQ09NUElMRVIoTVNWQykK
IHByb3RlY3RlZDoKICNlbmRpZgotICAgIHVzaW5nIFNWR1Byb3BlcnR5T3duZXI6OlNWR1Byb3Bl
cnR5T3duZXI7CisgICAgdXNpbmcgRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXI6OkRPTUxpdmVQcm9w
ZXJ0eU9ic2VydmVyOwogICAgIHVzaW5nIEJhc2VMaXN0OjptX2l0ZW1zOwotICAgIHVzaW5nIEJh
c2VMaXN0OjptX2FjY2VzczsKLSAgICB1c2luZyBCYXNlTGlzdDo6bV9vd25lcjsKKyAgICB1c2lu
ZyBCYXNlTGlzdDo6bV9vYnNlcnZlcjsKIAotICAgIFNWR1Byb3BlcnR5TGlzdChTVkdQcm9wZXJ0
eU93bmVyKiBvd25lciA9IG51bGxwdHIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcyA9IFNWR1By
b3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUpCi0gICAgICAgIDogQmFzZUxpc3Qob3duZXIsIGFjY2Vz
cykKKyAgICBTVkdQcm9wZXJ0eUxpc3QoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVy
ID0gbnVsbHB0cikKKyAgICAgICAgOiBCYXNlTGlzdChvYnNlcnZlcikKICAgICB7CiAgICAgfQog
CkBAIC02NCwxMiArNjMsMTcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgaXRlbS0+ZGV0YWNo
KCk7CiAgICAgfQogCi0gICAgU1ZHUHJvcGVydHlPd25lciogb3duZXIoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBtX293bmVyOyB9CisgICAgRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2Vy
dmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9vYnNlcnZlcjsgfQogCi0gICAgdm9pZCBj
b21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9wZXJ0eSopIG92ZXJyaWRlCisgICAgYm9vbCBpc1By
b3BlcnR5UmVhZE9ubHkoY29uc3QgRE9NTGl2ZVByb3BlcnR5JikgY29uc3Qgb3ZlcnJpZGUKICAg
ICB7Ci0gICAgICAgIGlmIChvd25lcigpKQotICAgICAgICAgICAgb3duZXIoKS0+Y29tbWl0UHJv
cGVydHlDaGFuZ2UodGhpcyk7CisgICAgICAgIHJldHVybiBvYnNlcnZlcigpICYmIG9ic2VydmVy
KCktPmlzUHJvcGVydHlSZWFkT25seSgqdGhpcyk7CisgICAgfQorCisgICAgdm9pZCBjb21taXRQ
cm9wZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAg
aWYgKG9ic2VydmVyKCkpCisgICAgICAgICAgICBvYnNlcnZlcigpLT5jb21taXRQcm9wZXJ0eUNo
YW5nZSh0aGlzKTsKICAgICB9CiAKICAgICBSZWY8UHJvcGVydHlUeXBlPiBhdCh1bnNpZ25lZCBp
bmRleCkgY29uc3Qgb3ZlcnJpZGUKQEAgLTg4LDcgKzkyLDcgQEAgcHJvdGVjdGVkOgogICAgICAg
ICAgICAgbmV3SXRlbSA9IG5ld0l0ZW0tPmNsb25lKCk7CiAKICAgICAgICAgLy8gU3BlYzogQXR0
YWNoIG5ld0l0ZW0gdG8gdGhlIGxpc3Qgb2JqZWN0LgotICAgICAgICBuZXdJdGVtLT5hdHRhY2go
dGhpcywgbV9hY2Nlc3MpOworICAgICAgICBuZXdJdGVtLT5hdHRhY2godGhpcyk7CiAgICAgICAg
IG1faXRlbXMuaW5zZXJ0KGluZGV4LCBXVEZNb3ZlKG5ld0l0ZW0pKTsKICAgICAgICAgcmV0dXJu
IGF0KGluZGV4KTsKICAgICB9CkBAIC0xMDksNyArMTEzLDcgQEAgcHJvdGVjdGVkOgogICAgICAg
ICAgICAgaXRlbSA9IFdURk1vdmUobmV3SXRlbSk7CiAKICAgICAgICAgLy8gU3BlYzogQXR0YWNo
IG5ld0l0ZW0gdG8gdGhlIGxpc3Qgb2JqZWN0LgotICAgICAgICBpdGVtLT5hdHRhY2godGhpcywg
bV9hY2Nlc3MpOworICAgICAgICBpdGVtLT5hdHRhY2godGhpcyk7CiAgICAgICAgIHJldHVybiBh
dChpbmRleCk7CiAgICAgfQogCkBAIC0xMzIsNyArMTM2LDcgQEAgcHJvdGVjdGVkOgogICAgICAg
ICAgICAgbmV3SXRlbSA9IG5ld0l0ZW0tPmNsb25lKCk7CiAKICAgICAgICAgLy8gU3BlYzogQXR0
YWNoIG5ld0l0ZW0gdG8gdGhlIGxpc3Qgb2JqZWN0LgotICAgICAgICBuZXdJdGVtLT5hdHRhY2go
dGhpcywgbV9hY2Nlc3MpOworICAgICAgICBuZXdJdGVtLT5hdHRhY2godGhpcyk7CiAgICAgICAg
IG1faXRlbXMuYXBwZW5kKFdURk1vdmUobmV3SXRlbSkpOwogICAgICAgICByZXR1cm4gYXQoc2l6
ZSgpIC0gMSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHUHJvcGVydHlPd25lci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJvcGVydHlPd25lci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTgxOGJlOWY4
NDBjNzY0NTM5OGU2MWI0ODkzODE4NjJhMzQ2OGYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1By
b3BlcnR5T3duZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAotY2xhc3MgU1ZHRWxlbWVudDsKLWNsYXNzIFNWR1By
b3BlcnR5OwotCi1jbGFzcyBTVkdQcm9wZXJ0eU93bmVyIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFs
IH5TVkdQcm9wZXJ0eU93bmVyKCkgPSBkZWZhdWx0OwotCi0gICAgdmlydHVhbCBTVkdQcm9wZXJ0
eU93bmVyKiBvd25lcigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KLSAgICAKLSAgICB2aXJ0
dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGF0dHJpYnV0ZUNvbnRleHRFbGVtZW50KCkgY29uc3QKLSAg
ICB7Ci0gICAgICAgIGlmICghb3duZXIoKSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgICAgICByZXR1cm4gb3duZXIoKS0+YXR0cmlidXRlQ29udGV4dEVsZW1lbnQoKTsKLSAgICB9
Ci0gICAgCi0gICAgdmlydHVhbCB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5
KiBwcm9wZXJ0eSkKLSAgICB7Ci0gICAgICAgIGlmICghb3duZXIoKSkKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgb3duZXIoKS0+Y29tbWl0UHJvcGVydHlDaGFuZ2UocHJvcGVydHkpOwot
ICAgIH0KLSAgICAKLXByb3RlY3RlZDoKLSAgICBTVkdQcm9wZXJ0eU93bmVyKCkgPSBkZWZhdWx0
OwotfTsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJvcGVydHlPd25lclJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkuaAppbmRleCBhNWY3MTM2OTdlYTJjNGM2MDBiYTUzN2Rh
Mjk0MWY1ZGE5OWU5NzhiLi4zMTlhNTA4MmE1OWQ5ZGU1YjYxZGZmMjFiNWViMzY4ZmQyODdhYzZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93
bmVyUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9w
ZXJ0eU93bmVyUmVnaXN0cnkuaApAQCAtMTc4LDcgKzE3OCw3IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIFF1YWxpZmllZE5hbWUgcHJvcGVydHlBdHRyaWJ1
dGVOYW1lKGNvbnN0IFNWR1Byb3BlcnR5JiBwcm9wZXJ0eSkgY29uc3Qgb3ZlcnJpZGUKKyAgICBR
dWFsaWZpZWROYW1lIHByb3BlcnR5QXR0cmlidXRlTmFtZShjb25zdCBET01MaXZlUHJvcGVydHkm
IHByb3BlcnR5KSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgUXVhbGlmaWVkTmFtZSBh
dHRyaWJ1dGVOYW1lID0gbnVsbFFOYW1lKCk7CiAgICAgICAgIGVudW1lcmF0ZVJlY3Vyc2l2ZWx5
KFsmXShjb25zdCBhdXRvJiBlbnRyeSkgLT4gYm9vbCB7CkBAIC0yMTEsMzMgKzIxMSwyMCBAQCBw
dWJsaWM6CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIC8vIEZpbmRzIHRoZSBwcm9wZXJ0eSB3
aG9zZSBuYW1lIGlzIGF0dHJpYnV0ZU5hbWUgYW5kIHJldHVybnMgdGhlIHN5bmNocm9uaXplCi0g
ICAgLy8gc3RyaW5nIHRocm91Z2ggdGhlIGFzc29jaWF0ZWQgU1ZHTWVtYmVyQWNjZXNzb3IuCi0g
ICAgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
aWJ1dGVOYW1lKSBjb25zdCBvdmVycmlkZQorICAgIC8vIEZpbmRzIHRoZSBwcm9wZXJ0eSB3aG9z
ZSBuYW1lIGlzIGF0dHJpYnV0ZU5hbWUgYW5kIHJldHVybnMgdGhlIHZhbHVlQXNTdHJpbmcKKyAg
ICAvLyB0aHJvdWdoIHRoZSBhc3NvY2lhdGVkIFNWR01lbWJlckFjY2Vzc29yLgorICAgIFN0cmlu
ZyB2YWx1ZUFzU3RyaW5nKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpIGNvbnN0
IG92ZXJyaWRlCiAgICAgewotICAgICAgICBPcHRpb25hbDxTdHJpbmc+IHZhbHVlOworICAgICAg
ICBTdHJpbmcgdmFsdWU7CiAgICAgICAgIGVudW1lcmF0ZVJlY3Vyc2l2ZWx5KFsmXShjb25zdCBh
dXRvJiBlbnRyeSkgLT4gYm9vbCB7CiAgICAgICAgICAgICBpZiAoIWVudHJ5LmtleS5tYXRjaGVz
KGF0dHJpYnV0ZU5hbWUpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAg
ICAgdmFsdWUgPSBlbnRyeS52YWx1ZS0+c3luY2hyb25pemUobV9vd25lcik7CisgICAgICAgICAg
ICB2YWx1ZSA9IGVudHJ5LnZhbHVlLT52YWx1ZUFzU3RyaW5nKG1fb3duZXIpOwogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAg
IH0KIAotICAgIC8vIEVudW1lcmF0ZSByZWN1cnNpdmVseSB0aGUgU1ZHTWVtYmVyQWNjZXNzb3Jz
IG9mIHRoZSBPd25lclR5cGUgYW5kIGFsbCBpdHMgQmFzZVR5cGVzLgotICAgIC8vIENvbGxlY3Qg
YWxsIHRoZSBwYWlycyA8QXR0cmlidXRlTmFtZSwgU3RyaW5nPiBvbmx5IGZvciB0aGUgZGlydHkg
cHJvcGVydGllcy4KLSAgICBIYXNoTWFwPFF1YWxpZmllZE5hbWUsIFN0cmluZz4gc3luY2hyb25p
emVBbGxBdHRyaWJ1dGVzKCkgY29uc3Qgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIEhhc2hNYXA8
UXVhbGlmaWVkTmFtZSwgU3RyaW5nPiBtYXA7Ci0gICAgICAgIGVudW1lcmF0ZVJlY3Vyc2l2ZWx5
KFsmXShjb25zdCBhdXRvJiBlbnRyeSkgLT4gYm9vbCB7Ci0gICAgICAgICAgICBpZiAoYXV0byBz
dHJpbmcgPSBlbnRyeS52YWx1ZS0+c3luY2hyb25pemUobV9vd25lcikpCi0gICAgICAgICAgICAg
ICAgbWFwLmFkZChlbnRyeS5rZXksICpzdHJpbmcpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgIH0pOwotICAgICAgICByZXR1cm4gbWFwOwotICAgIH0KLQogICAgIGJvb2wgaXNB
bmltYXRlZFByb3BlcnR5QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5h
bWUpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBib29sIGlzQW5pbWF0ZWRQcm9wZXJ0
eUF0dHJpYnV0ZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHUHJvcGVydHlSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHUHJvcGVydHlSZWdpc3RyeS5oCmluZGV4IDI0ZmU2NDIzN2UyZjVlNWUxYWZlODU1MTBm
MTM2NjI2MmRmNDM0MDQuLmRlMjhlYjlmZTE0YTc4N2E2YzU1MWU0ZGQwZjU4NTAzODdlMjlhOWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5UmVn
aXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVJl
Z2lzdHJ5LmgKQEAgLTM3LDEwICszNyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TVkdQcm9w
ZXJ0eVJlZ2lzdHJ5KCkgPSBkZWZhdWx0OwogCiAgICAgdmlydHVhbCB2b2lkIGRldGFjaEFsbFBy
b3BlcnRpZXMoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBRdWFsaWZpZWROYW1lIHByb3BlcnR5
QXR0cmlidXRlTmFtZShjb25zdCBTVkdQcm9wZXJ0eSYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IFF1YWxpZmllZE5hbWUgcHJvcGVydHlBdHRyaWJ1dGVOYW1lKGNvbnN0IERPTUxpdmVQcm9wZXJ0
eSYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFF1YWxpZmllZE5hbWUgYW5pbWF0ZWRQcm9wZXJ0
eUF0dHJpYnV0ZU5hbWUoY29uc3QgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYpIGNvbnN0ID0gMDsKLSAg
ICB2aXJ0dWFsIE9wdGlvbmFsPFN0cmluZz4gc3luY2hyb25pemUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIEhhc2hNYXA8UXVhbGlmaWVkTmFtZSwgU3RyaW5n
PiBzeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTdHJp
bmcgdmFsdWVBc1N0cmluZyhjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgPSAwOwogCiAgICAg
dmlydHVhbCBib29sIGlzQW5pbWF0ZWRQcm9wZXJ0eUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGVkU3R5bGVQcm9wZXJ0
eUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eS5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eS5oCmluZGV4IDlmMzFlMmQw
ZjUzOWNjMjAyM2I2M2Y4NzA2ODZmMGVkODFkYzI5Y2UuLjg1MmYyNzRkN2JiMzFlNzVhMjI1MDkx
MTNjMjcyNjlhMWQ3OTk0ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR1ZhbHVlUHJvcGVydHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdWYWx1ZVByb3BlcnR5LmgKQEAgLTY0LDE0ICs2NCwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAg
fQogCiAgICAgLy8gQmFzZSBhbmQgZGVmYXVsdCBjb25zdHJ1Y3Rvci4gRG8gbm90IHVzZSAidXNp
bmcgU1ZHUHJvcGVydHk6OlNWR1Byb3BlcnR5IiBiZWNhdXNlIG9mIFdpbmRvd3MgYW5kIEdUSyBw
b3J0cy4KLSAgICBTVkdWYWx1ZVByb3BlcnR5KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyID0gbnVs
bHB0ciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzID0gU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRX
cml0ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eShvd25lciwgYWNjZXNzKQorICAgIFNWR1ZhbHVl
UHJvcGVydHkoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyID0gbnVsbHB0cikKKyAg
ICAgICAgOiBTVkdQcm9wZXJ0eShvYnNlcnZlcikKICAgICB7CiAgICAgfQogCiAgICAgLy8gQ3Jl
YXRlIGFuIGluaXRpYWxpemVkIGFuZCBhdHRhY2hlZCBwcm9wZXJ0eS4KLSAgICBTVkdWYWx1ZVBy
b3BlcnR5KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3Ms
IGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHkob3duZXIs
IGFjY2VzcykKKyAgICBTVkdWYWx1ZVByb3BlcnR5KERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBv
YnNlcnZlciwgY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAgICAgICAgOiBTVkdQcm9wZXJ0
eShvYnNlcnZlcikKICAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQogICAgIHsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlz
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3Qu
aAppbmRleCAzMDEwYzMzYTc0MDg5YmM0NGZiYjQxMGE1NmY3ODVhOWY3MTdjY2VlLi5jNWI3M2Ew
ZWE0Yjk2ZmIxYzRiMDQ0M2VkOTExNWEwOTQ0ZWI1MmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0LmgKQEAgLTc1LDE0ICs3
NSwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgdXNpbmcgQmFzZTo6cmVtb3ZlOwogCiAgICAgLy8gQmFz
ZSBhbmQgZGVmYXVsdCBjb25zdHJ1Y3Rvci4gRG8gbm90IHVzZSAidXNpbmcgQmFzZTo6QmFzZSIg
YmVjYXVzZSBvZiBXaW5kb3dzIGFuZCBHVEsgcG9ydHMuCi0gICAgU1ZHVmFsdWVQcm9wZXJ0eUxp
c3QoU1ZHUHJvcGVydHlPd25lciogb3duZXIgPSBudWxscHRyLCBTVkdQcm9wZXJ0eUFjY2VzcyBh
Y2Nlc3MgPSBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRlKQotICAgICAgICA6IEJhc2Uob3du
ZXIsIGFjY2VzcykKKyAgICBTVkdWYWx1ZVByb3BlcnR5TGlzdChET01MaXZlUHJvcGVydHlPYnNl
cnZlciogb2JzZXJ2ZXIgPSBudWxscHRyKQorICAgICAgICA6IEJhc2Uob2JzZXJ2ZXIpCiAgICAg
ewogICAgIH0KIAogICAgIC8vIFVzZWQgYnkgU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3Qgd2hlbiBj
cmVhdGluZyBpdCBhbmltVmFsIGZyb20gYmFzZVZhbC4KLSAgICBTVkdWYWx1ZVByb3BlcnR5TGlz
dChjb25zdCBTVkdWYWx1ZVByb3BlcnR5TGlzdCYgb3RoZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFj
Y2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUpCi0gICAgICAgIDogQmFzZShvdGhl
ci5vd25lcigpLCBhY2Nlc3MpCisgICAgU1ZHVmFsdWVQcm9wZXJ0eUxpc3QoY29uc3QgU1ZHVmFs
dWVQcm9wZXJ0eUxpc3QmIG90aGVyKQorICAgICAgICA6IEJhc2Uob3RoZXIub2JzZXJ2ZXIoKSkK
ICAgICB7CiAgICAgICAgIC8vIENsb25lIGFsbCBpdGVtcy4KICAgICAgICAgZm9yIChjb25zdCBh
dXRvJiBpdGVtIDogb3RoZXIuaXRlbXMoKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiZDA5OTgwMGE4NWYzYzNjMDBjZTA1
M2U5NGYxM2U2ZmY2YTI3ODA0Li44MmM5MWNiOGRjZmM4MzM2YmMyZDIzOGNhMmQyOTNkN2Q4MTYx
NmVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMTAtMDEgIFNhaWQgQWJvdS1IYWxsYXdh
ICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHRoZSBTVkcgcHJvcGVy
dGllcyBvZiBTVkdWaWV3U3BlYyBtb2RpZmlhYmxlIGJ1dCBkZXRhY2hlZCBwcm9wZXJ0aWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0MTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHN1cmUg
YWxsIHRoZSBwcm9wZXJ0aWVzIG9mIFNWR1ZpZXdTcGVjIGFyZSBtb2RpZmlhYmxlLgorCisgICAg
ICAgICogc3ZnL2RvbS9TVkdWaWV3U3BlYy1kZWZhdWx0cy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogc3ZnL2RvbS9TVkdWaWV3U3BlYy1kZWZhdWx0cy5odG1sOgorCiAyMDE5LTEwLTAxICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IGFj
Y2Vzc2liaWxpdHkgZm9yIDxmaWd1cmU+IGVsZW1lbnQgb24gaU9TLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3ZnL2RvbS9TVkdWaWV3U3BlYy1kZWZhdWx0cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdmcvZG9tL1NWR1ZpZXdTcGVjLWRlZmF1bHRzLWV4cGVjdGVkLnR4dAppbmRleCA5
YzAxODE3NTgxNWI3NDRmZDJiNjUwZDczNzJjNDdmODVhYTE0YWYxLi4xNDUyYWI3YzQ1YTRmMzVh
Mzk1OTdmMDMzZTBkMzk5MjUwYmJhMmM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvZG9t
L1NWR1ZpZXdTcGVjLWRlZmF1bHRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdmcv
ZG9tL1NWR1ZpZXdTcGVjLWRlZmF1bHRzLWV4cGVjdGVkLnR4dApAQCAtMjAsNTAgKzIwLDUzIEBA
IFBBU1MgY3VycmVudFZpZXcudHJhbnNmb3JtU3RyaW5nIGlzICIiCiBQQVNTIGN1cnJlbnRWaWV3
LnZpZXdUYXJnZXRTdHJpbmcgaXMgIiIKIFBBU1MgY3VycmVudFZpZXcuem9vbUFuZFBhbiBpcyBT
VkdWaWV3RWxlbWVudC5TVkdfWk9PTUFORFBBTl9NQUdOSUZZCiAKLVRyeSBjaGFuZ2luZyB6b29t
QW5kUGFuIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGFzIFNWR1ZpZXdTcGVjIGlzIGZ1bGx5
IHJlYWRvbmx5IC0gZXZlbiB0aGUgYW5pbWF0ZWQgcHJvcGVydGllcyBpdCBpbmhlcml0cyBmcm9t
IHBhcmVudCBjbGFzc2VzIGxpa2UgU1ZHWm9vbUFuZFBhbi9TVkdGaXRUb1ZpZXdCb3gKK1RyeSBj
aGFuZ2luZyB6b29tQW5kUGFuIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJp
bWl0aXZlIHByb3BlcnR5CiBQQVNTIGN1cnJlbnRWaWV3Lnpvb21BbmRQYW4gPSBTVkdWaWV3RWxl
bWVudC5TVkdfWk9PTUFORFBBTl9ESVNBQkxFIHRocmV3IGV4Y2VwdGlvbiBOb01vZGlmaWNhdGlv
bkFsbG93ZWRFcnJvcjogVGhlIG9iamVjdCBjYW4gbm90IGJlIG1vZGlmaWVkLi4KIFBBU1MgY3Vy
cmVudFZpZXcuem9vbUFuZFBhbiBpcyBTVkdWaWV3RWxlbWVudC5TVkdfWk9PTUFORFBBTl9NQUdO
SUZZCiAKLVRyeSBjaGFuZ2luZyB2aWV3Qm94IC0gdGhpcyBoYXMgbm8gYWZmZWN0IG9uIHRoZSBT
VkdTVkdFbGVtZW50IHRoZSB2aWV3U3BlYyBiZWxvbmdzIHRvIC0gaXQgZXhwb3NlZCBhbGwgaXRz
IHByb3BlcnRpZXMgYXMgcmVhZC1vbmx5Ci1QQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZh
bC54ID0gMTAgdGhyZXcgZXhjZXB0aW9uIE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yOiBUaGUg
b2JqZWN0IGNhbiBub3QgYmUgbW9kaWZpZWQuLgotUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94LmJh
c2VWYWwueCBpcyAwCi1QQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC55ID0gMjAgdGhy
ZXcgZXhjZXB0aW9uIE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yOiBUaGUgb2JqZWN0IGNhbiBu
b3QgYmUgbW9kaWZpZWQuLgotUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueSBpcyAw
Ci1QQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC53aWR0aCA9IDUwIHRocmV3IGV4Y2Vw
dGlvbiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogVGhlIG9iamVjdCBjYW4gbm90IGJlIG1v
ZGlmaWVkLi4KLVBBU1MgY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLndpZHRoIGlzIDAKLVBB
U1MgY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLmhlaWdodCA9IDEwMCB0aHJldyBleGNlcHRp
b24gTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5vdCBiZSBtb2Rp
ZmllZC4uCi1QQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC5oZWlnaHQgaXMgMAotUEFT
UyBjdXJyZW50Vmlldy52aWV3Qm94U3RyaW5nIGlzICIwIDAgMCAwIgorQ2hhbmdpbmcgdmlld0Jv
eCAtIHRoaXMgaGFzIG5vIGFmZmVjdCBvbiB0aGUgU1ZHU1ZHRWxlbWVudCB0aGUgdmlld1NwZWMg
YmVsb25ncyB0byAtIGl0IGlzIGEgZGV0YWNoZWQgcHJvcGVydHkKK1BBU1MgY3VycmVudFZpZXcu
dmlld0JveC5iYXNlVmFsLnggPSAxMCBpcyAxMAorUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94LmJh
c2VWYWwueCBpcyAxMAorUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueSA9IDIwIGlz
IDIwCitQQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC55IGlzIDIwCitQQVNTIGN1cnJl
bnRWaWV3LnZpZXdCb3guYmFzZVZhbC53aWR0aCA9IDUwIGlzIDUwCitQQVNTIGN1cnJlbnRWaWV3
LnZpZXdCb3guYmFzZVZhbC53aWR0aCBpcyA1MAorUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94LmJh
c2VWYWwuaGVpZ2h0ID0gMTAwIGlzIDEwMAorUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VW
YWwuaGVpZ2h0IGlzIDEwMAorUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94U3RyaW5nIGlzICIxMCAy
MCA1MCAxMDAiCiAKLVRyeSBjaGFuZ2luZyB2aWV3Qm94U3RyaW5nCitUcnkgY2hhbmdpbmcgdmll
d0JveFN0cmluZyAtIG5vbmUgb2YgdGhlc2Ugd2lsbCB3b3JrLCBpdCBpcyBhIHByaW1pdGl2ZSBw
cm9wZXJ0eQogUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94U3RyaW5nID0gJzEgMiAzIDQnIGlzICIx
IDIgMyA0IgotUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94U3RyaW5nIGlzICIwIDAgMCAwIgorUEFT
UyBjdXJyZW50Vmlldy52aWV3Qm94U3RyaW5nIGlzICIxMCAyMCA1MCAxMDAiCiAKLVRyeSBjaGFu
Z2luZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvCi1QQVNTIGN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0
UmF0aW8uYmFzZVZhbC5hbGlnbiA9IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX1BSRVNFUlZF
QVNQRUNUUkFUSU9fWE1JTllNSU4gdGhyZXcgZXhjZXB0aW9uIE5vTW9kaWZpY2F0aW9uQWxsb3dl
ZEVycm9yOiBUaGUgb2JqZWN0IGNhbiBub3QgYmUgbW9kaWZpZWQuLgotUEFTUyBjdXJyZW50Vmll
dy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwuYWxpZ24gaXMgU1ZHUHJlc2VydmVBc3BlY3RS
YXRpby5TVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlEWU1JRAotUEFTUyBjdXJyZW50Vmlldy5w
cmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwubWVldE9yU2xpY2UgPSBTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvLlNWR19NRUVUT1JTTElDRV9TTElDRSB0aHJldyBleGNlcHRpb24gTm9Nb2RpZmljYXRp
b25BbGxvd2VkRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5vdCBiZSBtb2RpZmllZC4uCi1QQVNTIGN1
cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFzZVZhbC5tZWV0T3JTbGljZSBpcyBTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19NRUVUT1JTTElDRV9NRUVUCitDaGFuZ2luZyBwcmVzZXJ2
ZUFzcGVjdFJhdGlvIC0gdGhpcyBoYXMgbm8gYWZmZWN0IG9uIHRoZSBTVkdTVkdFbGVtZW50IHRo
ZSB2aWV3U3BlYyBiZWxvbmdzIHRvIC0gaXQgaXMgYSBkZXRhY2hlZCBwcm9wZXJ0eQorUEFTUyBj
dXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwuYWxpZ24gPSBTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvLlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlOIGlzIFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW8uU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSU4KK1BBU1MgY3Vy
cmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLmFsaWduIGlzIFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW8uU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSU4KK1BBU1MgY3VycmVu
dFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLm1lZXRPclNsaWNlID0gU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJQ0VfU0xJQ0UgaXMgU1ZHUHJlc2VydmVBc3BlY3RS
YXRpby5TVkdfTUVFVE9SU0xJQ0VfU0xJQ0UKK1BBU1MgY3VycmVudFZpZXcucHJlc2VydmVBc3Bl
Y3RSYXRpby5iYXNlVmFsLm1lZXRPclNsaWNlIGlzIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZH
X01FRVRPUlNMSUNFX1NMSUNFCiAKLVRyeSBjaGFuZ2luZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvU3Ry
aW5nCi1QQVNTIGN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcgPSAneE1pbllN
aW4gc2xpY2UnIGlzICJ4TWluWU1pbiBzbGljZSIKLVBBU1MgY3VycmVudFZpZXcucHJlc2VydmVB
c3BlY3RSYXRpb1N0cmluZyBpcyAieE1pZFlNaWQgbWVldCIKLQotVHJ5IGNoYW5naW5nIHRyYW5z
Zm9ybVN0cmluZwotUEFTUyBjdXJyZW50Vmlldy50cmFuc2Zvcm1TdHJpbmcgPSAncm90YXRlKDkw
KScgaXMgInJvdGF0ZSg5MCkiCi1QQVNTIGN1cnJlbnRWaWV3LnRyYW5zZm9ybVN0cmluZyBpcyAi
IgorQ2hhbmdpbmcgcHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZyAtIG5vbmUgb2YgdGhlc2Ugd2ls
bCB3b3JrLCBpdCBpcyBhIHByaW1pdGl2ZSBwcm9wZXJ0eQorUEFTUyBjdXJyZW50Vmlldy5wcmVz
ZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nID0gJ3hNaWRZTWlkIG1lZXQnIGlzICJ4TWlkWU1pZCBtZWV0
IgorUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nIGlzICJ4TWluWU1p
biBzbGljZSIKIAotVHJ5IGNoYW5naW5nIHZpZXdUYXJnZXQKK1RyeSBjaGFuZ2luZyB2aWV3VGFy
Z2V0IC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5
CiBQQVNTIGN1cnJlbnRWaWV3LnZpZXdUYXJnZXQgPSBzdmdFbGVtZW50IGlzIHN2Z0VsZW1lbnQK
IFBBU1MgY3VycmVudFZpZXcudmlld1RhcmdldCBpcyBudWxsCiAKLVRyeSBjaGFuZ2luZyB2aWV3
VGFyZ2V0U3RyaW5nCitUcnkgY2hhbmdpbmcgdmlld1RhcmdldFN0cmluZyAtIG5vbmUgb2YgdGhl
c2Ugd2lsbCB3b3JrLCBpdCBpcyBhIHByaW1pdGl2ZSBwcm9wZXJ0eQogUEFTUyBjdXJyZW50Vmll
dy52aWV3VGFyZ2V0U3RyaW5nID0gJyN0ZXN0JyBpcyAiI3Rlc3QiCiBQQVNTIGN1cnJlbnRWaWV3
LnZpZXdUYXJnZXRTdHJpbmcgaXMgIiIKIAotVHJ5IGNoYW5naW5nIHRyYW5zZm9ybQotUEFTUyBj
dXJyZW50Vmlldy50cmFuc2Zvcm0uY2xlYXIoKSB0aHJldyBleGNlcHRpb24gTm9Nb2RpZmljYXRp
b25BbGxvd2VkRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5vdCBiZSBtb2RpZmllZC4uCitDaGFuZ2lu
ZyB0cmFuc2Zvcm0gLSB0aGlzIGhhcyBubyBhZmZlY3Qgb24gdGhlIFNWR1NWR0VsZW1lbnQgdGhl
IHZpZXdTcGVjIGJlbG9uZ3MgdG8gLSBpdCBpcyBhIGRldGFjaGVkIHByb3BlcnR5CitQQVNTIGN1
cnJlbnRWaWV3LnRyYW5zZm9ybS5hcHBlbmRJdGVtKHRyYW5zZm9ybSkudG9TdHJpbmcoKSBpcyAi
W29iamVjdCBTVkdUcmFuc2Zvcm1dIgorUEFTUyBjdXJyZW50Vmlldy50cmFuc2Zvcm0ubnVtYmVy
T2ZJdGVtcyBpcyAxCitQQVNTIGN1cnJlbnRWaWV3LnRyYW5zZm9ybVN0cmluZyBpcyAibWF0cml4
KDEgMCAwIDEgMCAwKSIKK1BBU1MgdW5kZWZpbmVkIGlzIHVuZGVmaW5lZC4KIFBBU1MgY3VycmVu
dFZpZXcudHJhbnNmb3JtLm51bWJlck9mSXRlbXMgaXMgMAorCitUcnkgY2hhbmdpbmcgdHJhbnNm
b3JtU3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0aXZlIHBy
b3BlcnR5CitQQVNTIGN1cnJlbnRWaWV3LnRyYW5zZm9ybVN0cmluZyA9ICdyb3RhdGUoOTApJyBp
cyAicm90YXRlKDkwKSIKK1BBU1MgY3VycmVudFZpZXcudHJhbnNmb3JtU3RyaW5nIGlzICIiCiBQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHVmlld1NwZWMtZGVmYXVsdHMuaHRtbCBiL0xheW91
dFRlc3RzL3N2Zy9kb20vU1ZHVmlld1NwZWMtZGVmYXVsdHMuaHRtbAppbmRleCBhMDI0MjY3MWQy
Y2FjY2IwYmVjNTI0OWIwZTVjYzkzZTQ2Mjc2MWViLi4xMDYwYmRjMmNiZGRhNzgyNDNhOGFmOGMw
NjU0MjVjNjZmNzIzMWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1ZpZXdT
cGVjLWRlZmF1bHRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdWaWV3U3BlYy1k
ZWZhdWx0cy5odG1sCkBAIC0zNCw2MiArMzQsNjQgQEAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJj
dXJyZW50Vmlldy52aWV3VGFyZ2V0U3RyaW5nIiwgIiIpOwogc2hvdWxkQmUoImN1cnJlbnRWaWV3
Lnpvb21BbmRQYW4iLCAiU1ZHVmlld0VsZW1lbnQuU1ZHX1pPT01BTkRQQU5fTUFHTklGWSIpOwog
CiBkZWJ1ZygiIik7Ci1kZWJ1ZygiVHJ5IGNoYW5naW5nIHpvb21BbmRQYW4gLSBub25lIG9mIHRo
ZXNlIHdpbGwgd29yaywgYXMgU1ZHVmlld1NwZWMgaXMgZnVsbHkgcmVhZG9ubHkgLSBldmVuIHRo
ZSBhbmltYXRlZCBwcm9wZXJ0aWVzIGl0IGluaGVyaXRzIGZyb20gcGFyZW50IGNsYXNzZXMgbGlr
ZSBTVkdab29tQW5kUGFuL1NWR0ZpdFRvVmlld0JveCIpOworZGVidWcoIlRyeSBjaGFuZ2luZyB6
b29tQW5kUGFuIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0aXZlIHBy
b3BlcnR5Iik7CiBzaG91bGRUaHJvdygiY3VycmVudFZpZXcuem9vbUFuZFBhbiA9IFNWR1ZpZXdF
bGVtZW50LlNWR19aT09NQU5EUEFOX0RJU0FCTEUiKTsKIHNob3VsZEJlKCJjdXJyZW50Vmlldy56
b29tQW5kUGFuIiwgIlNWR1ZpZXdFbGVtZW50LlNWR19aT09NQU5EUEFOX01BR05JRlkiKTsKIAog
ZGVidWcoIiIpOwotZGVidWcoIlRyeSBjaGFuZ2luZyB2aWV3Qm94IC0gdGhpcyBoYXMgbm8gYWZm
ZWN0IG9uIHRoZSBTVkdTVkdFbGVtZW50IHRoZSB2aWV3U3BlYyBiZWxvbmdzIHRvIC0gaXQgZXhw
b3NlZCBhbGwgaXRzIHByb3BlcnRpZXMgYXMgcmVhZC1vbmx5Iik7Ci1zaG91bGRUaHJvdygiY3Vy
cmVudFZpZXcudmlld0JveC5iYXNlVmFsLnggPSAxMCIpOwotc2hvdWxkQmUoImN1cnJlbnRWaWV3
LnZpZXdCb3guYmFzZVZhbC54IiwgIjAiKTsKLXNob3VsZFRocm93KCJjdXJyZW50Vmlldy52aWV3
Qm94LmJhc2VWYWwueSA9IDIwIik7Ci1zaG91bGRCZSgiY3VycmVudFZpZXcudmlld0JveC5iYXNl
VmFsLnkiLCAiMCIpOwotc2hvdWxkVGhyb3coImN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC53
aWR0aCA9IDUwIik7Ci1zaG91bGRCZSgiY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLndpZHRo
IiwgIjAiKTsKLXNob3VsZFRocm93KCJjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0
ID0gMTAwIik7Ci1zaG91bGRCZSgiY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLmhlaWdodCIs
ICIwIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnZpZXdCb3hTdHJpbmci
LCAiMCAwIDAgMCIpOworZGVidWcoIkNoYW5naW5nIHZpZXdCb3ggLSB0aGlzIGhhcyBubyBhZmZl
Y3Qgb24gdGhlIFNWR1NWR0VsZW1lbnQgdGhlIHZpZXdTcGVjIGJlbG9uZ3MgdG8gLSBpdCBpcyBh
IGRldGFjaGVkIHByb3BlcnR5Iik7CitzaG91bGRCZSgiY3VycmVudFZpZXcudmlld0JveC5iYXNl
VmFsLnggPSAxMCIsICIxMCIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZh
bC54IiwgIjEwIik7CitzaG91bGRCZSgiY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLnkgPSAy
MCIsICIyMCIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC55IiwgIjIw
Iik7CitzaG91bGRCZSgiY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLndpZHRoID0gNTAiLCAi
NTAiKTsKK3Nob3VsZEJlKCJjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwud2lkdGgiLCAiNTAi
KTsKK3Nob3VsZEJlKCJjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0ID0gMTAwIiwg
IjEwMCIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC5oZWlnaHQiLCAi
MTAwIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnZpZXdCb3hTdHJpbmci
LCAiMTAgMjAgNTAgMTAwIik7CiAKIGRlYnVnKCIiKTsKLWRlYnVnKCJUcnkgY2hhbmdpbmcgdmll
d0JveFN0cmluZyIpOworZGVidWcoIlRyeSBjaGFuZ2luZyB2aWV3Qm94U3RyaW5nIC0gbm9uZSBv
ZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5Iik7CiBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnZpZXdCb3hTdHJpbmcgPSAnMSAyIDMgNCciLCAi
MSAyIDMgNCIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJyZW50Vmlldy52aWV3Qm94U3Ry
aW5nIiwgIjAgMCAwIDAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZpZXcudmll
d0JveFN0cmluZyIsICIxMCAyMCA1MCAxMDAiKTsKIAogZGVidWcoIiIpOwotZGVidWcoIlRyeSBj
aGFuZ2luZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvIik7Ci1zaG91bGRUaHJvdygiY3VycmVudFZpZXcu
cHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLmFsaWduID0gU1ZHUHJlc2VydmVBc3BlY3RSYXRp
by5TVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JTiIpOwotc2hvdWxkQmUoImN1cnJlbnRW
aWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFzZVZhbC5hbGlnbiIsICJTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvLlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUlEIik7Ci1zaG91bGRUaHJvdygi
Y3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLm1lZXRPclNsaWNlID0gU1ZH
UHJlc2VydmVBc3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJQ0VfU0xJQ0UiKTsKLXNob3VsZEJlKCJj
dXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwubWVldE9yU2xpY2UiLCAiU1ZH
UHJlc2VydmVBc3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJQ0VfTUVFVCIpOworZGVidWcoIkNoYW5n
aW5nIHByZXNlcnZlQXNwZWN0UmF0aW8gLSB0aGlzIGhhcyBubyBhZmZlY3Qgb24gdGhlIFNWR1NW
R0VsZW1lbnQgdGhlIHZpZXdTcGVjIGJlbG9uZ3MgdG8gLSBpdCBpcyBhIGRldGFjaGVkIHByb3Bl
cnR5Iik7CitzaG91bGRCZSgiY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFs
LmFsaWduID0gU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19Y
TUlOWU1JTiIsICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19QUkVTRVJWRUFTUEVDVFJBVElP
X1hNSU5ZTUlOIik7CitzaG91bGRCZSgiY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5i
YXNlVmFsLmFsaWduIiwgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX1BSRVNFUlZFQVNQRUNU
UkFUSU9fWE1JTllNSU4iKTsKK3Nob3VsZEJlKCJjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJh
dGlvLmJhc2VWYWwubWVldE9yU2xpY2UgPSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19NRUVU
T1JTTElDRV9TTElDRSIsICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19NRUVUT1JTTElDRV9T
TElDRSIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFzZVZh
bC5tZWV0T3JTbGljZSIsICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19NRUVUT1JTTElDRV9T
TElDRSIpOwogCiBkZWJ1ZygiIik7Ci1kZWJ1ZygiVHJ5IGNoYW5naW5nIHByZXNlcnZlQXNwZWN0
UmF0aW9TdHJpbmciKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZpZXcucHJlc2Vy
dmVBc3BlY3RSYXRpb1N0cmluZyA9ICd4TWluWU1pbiBzbGljZSciLCAieE1pbllNaW4gc2xpY2Ui
KTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRp
b1N0cmluZyIsICJ4TWlkWU1pZCBtZWV0Iik7Ci0KK2RlYnVnKCJDaGFuZ2luZyBwcmVzZXJ2ZUFz
cGVjdFJhdGlvU3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0
aXZlIHByb3BlcnR5Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnByZXNl
cnZlQXNwZWN0UmF0aW9TdHJpbmcgPSAneE1pZFlNaWQgbWVldCciLCAieE1pZFlNaWQgbWVldCIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlv
U3RyaW5nIiwgInhNaW5ZTWluIHNsaWNlIik7CiAKIGRlYnVnKCIiKTsKLWRlYnVnKCJUcnkgY2hh
bmdpbmcgdHJhbnNmb3JtU3RyaW5nIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRW
aWV3LnRyYW5zZm9ybVN0cmluZyA9ICdyb3RhdGUoOTApJyIsICJyb3RhdGUoOTApIik7Ci1zaG91
bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnRyYW5zZm9ybVN0cmluZyIsICIiKTsKLQot
Ci1kZWJ1ZygiIik7Ci1kZWJ1ZygiVHJ5IGNoYW5naW5nIHZpZXdUYXJnZXQiKTsKK2RlYnVnKCJU
cnkgY2hhbmdpbmcgdmlld1RhcmdldCAtIG5vbmUgb2YgdGhlc2Ugd2lsbCB3b3JrLCBpdCBpcyBh
IHByaW1pdGl2ZSBwcm9wZXJ0eSIpOwogc2hvdWxkQmUoImN1cnJlbnRWaWV3LnZpZXdUYXJnZXQg
PSBzdmdFbGVtZW50IiwgInN2Z0VsZW1lbnQiKTsKIHNob3VsZEJlTnVsbCgiY3VycmVudFZpZXcu
dmlld1RhcmdldCIpOwogCiAKIGRlYnVnKCIiKTsKLWRlYnVnKCJUcnkgY2hhbmdpbmcgdmlld1Rh
cmdldFN0cmluZyIpOworZGVidWcoIlRyeSBjaGFuZ2luZyB2aWV3VGFyZ2V0U3RyaW5nIC0gbm9u
ZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5Iik7CiBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnZpZXdUYXJnZXRTdHJpbmcgPSAnI3Rlc3Qn
IiwgIiN0ZXN0Iik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnZpZXdUYXJn
ZXRTdHJpbmciLCAiIik7CiAKIGRlYnVnKCIiKTsKLWRlYnVnKCJUcnkgY2hhbmdpbmcgdHJhbnNm
b3JtIik7Ci1zaG91bGRUaHJvdygiY3VycmVudFZpZXcudHJhbnNmb3JtLmNsZWFyKCkiKTsKK2Rl
YnVnKCJDaGFuZ2luZyB0cmFuc2Zvcm0gLSB0aGlzIGhhcyBubyBhZmZlY3Qgb24gdGhlIFNWR1NW
R0VsZW1lbnQgdGhlIHZpZXdTcGVjIGJlbG9uZ3MgdG8gLSBpdCBpcyBhIGRldGFjaGVkIHByb3Bl
cnR5Iik7Cit2YXIgdHJhbnNmb3JtID0gc3ZnRWxlbWVudC5jcmVhdGVTVkdUcmFuc2Zvcm0oKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZpZXcudHJhbnNmb3JtLmFwcGVuZEl0ZW0o
dHJhbnNmb3JtKS50b1N0cmluZygpIiwgIltvYmplY3QgU1ZHVHJhbnNmb3JtXSIpOworc2hvdWxk
QmUoImN1cnJlbnRWaWV3LnRyYW5zZm9ybS5udW1iZXJPZkl0ZW1zIiwgIjEiKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygiY3VycmVudFZpZXcudHJhbnNmb3JtU3RyaW5nIiwgIm1hdHJpeCgxIDAg
MCAxIDAgMCkiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKGN1cnJlbnRWaWV3LnRyYW5zZm9ybS5jbGVh
cigpKTsKIHNob3VsZEJlKCJjdXJyZW50Vmlldy50cmFuc2Zvcm0ubnVtYmVyT2ZJdGVtcyIsICIw
Iik7CiAKK2RlYnVnKCIiKTsKK2RlYnVnKCJUcnkgY2hhbmdpbmcgdHJhbnNmb3JtU3RyaW5nIC0g
bm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5Iik7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnRyYW5zZm9ybVN0cmluZyA9ICdyb3Rh
dGUoOTApJyIsICJyb3RhdGUoOTApIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRW
aWV3LnRyYW5zZm9ybVN0cmluZyIsICIiKTsKKwogc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
IDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380133</attachid>
            <date>2019-10-03 10:49:18 -0700</date>
            <delta_ts>2019-10-03 11:52:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202479-20191003104918.patch</filename>
            <type>text/plain</type>
            <size>105371</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDA3ZTkxNDk2NDU3NGI1
MDEyMWIwMWJjOWEzOGUxZDZjZTdlMTUyMi4uMmY1Y2VmMDBlZTdmMGFjZDJiMDgxOWZiNzU5MGJk
MDMzMWM5ZTZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwMSBAQAorMjAxOS0xMC0wMyAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ug
RE9NUG9pbnQgYSBET01MaXZlT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDI0NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTVkdQcm9wZXJ0eSBoYXMgdG8gY29tZSBiYWNrIGJlY2F1c2UgRE9N
UG9pbnQgaW5oZXJpdHMgRE9NUG9pbnRSZWFkT25seQorICAgICAgICB3aGljaCBpcyBSZWZDb3Vu
dGVkLiBTbyBET01MaXZlUHJvcGVydHkgY2FuJ3QgYmUgUmVmQ291bnRlZC4gT3RoZXJ3aXNlCisg
ICAgICAgIERPTVBvaW50IHdpbGwgbWFrZSBhIGRpYW1vbmQgaW5oZXJpdGFuY2UuIFNWR1Byb3Bl
cnR5IHdpbGwgaW5oZXJpdCAKKyAgICAgICAgRE9NTGl2ZVByb3BlcnR5IGFuZCBpdCB3aWxsIGJl
IFJlZkNvdW50ZWQuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBkb20vRE9NTGl2ZVByb3BlcnR5Lmg6CisgICAgICAgICogZG9tL0RPTVBvaW50Lmg6
IEFkZGVkLgorICAgICAgICAqIGRvbS9ET01Qb2ludC5oOgorICAgICAgICAqIGRvbS9ET01Qb2lu
dC5pZGw6CisgICAgICAgICogZG9tL0RPTVBvaW50UmVhZE9ubHkuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVBvaW50UmVhZE9ubHk6OnhGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpET01Qb2ludFJlYWRPbmx5Ojp5Rm9yQmluZGluZ3MgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NUG9pbnRSZWFkT25seTo6ekZvckJpbmRpbmdzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVBvaW50UmVhZE9ubHk6OndGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgICog
ZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uRXZlbnQuY3BwOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnLmg6CisgICAgICAg
ICogc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NW
R01lbWJlckFjY2Vzc29yLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJpbWl0aXZl
UHJvcGVydHlBbmltYXRvci5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6aXNBdHRhY2hlZCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6YXR0YWNoKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5OjpkZXRhY2gpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmNvbnRleHRFbGVtZW50IGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5Ojpjb21taXRDaGFuZ2UpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmFjY2VzcyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6aXNSZWFkT25seSBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6aXNEaXJ0eSBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6c2V0RGlydHkpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OnN5bmNocm9uaXplKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5OjpTVkdQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAg
ICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlBbmltYXRvckZhY3RvcnkuaDoKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eS5oOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHkuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVy
dGllcy9TVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3IuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGll
cy9TVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3JJbXBsLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRp
ZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3RBbmltYXRvci5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0
aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3JJbXBsLmg6CisKKzIwMTktMTAtMDEgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBs
YWNlIFNWR1Byb3BlcnR5L1NWR1Byb3BlcnR5T3duZXIgYnkgRE9NTGl2ZVByb3BlcnR5L0RPTUxp
dmVQcm9wZXJ0eU9ic2VydmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDE3ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIGlzIGEgc3RlcCB0b3dhcmRzIHJlcGxhY2luZyBTVkdQb2ludCBieSBE
T01Qb2ludC4KKworICAgICAgICAtLSBBZGQgYSBuZXcgY2xhc3MsIG5hbWVkIERPTUxpdmVQcm9w
ZXJ0eS4gSXRzIGpvYiBpcyB0byBjb21tdW5pY2F0ZSB0aGUKKyAgICAgICAgICAgY2hhbmdlcyBp
biB0aGlzIG9iamVjdCB0byBpdHMgb2JzZXJ2ZXIuIFRoaXMgaXMgcmVwbGFjaW5nIFNWR1Byb3Bl
cnR5LgorICAgICAgICAgICBET01Qb2ludCB3aWxsIGJlIG1hZGUgaW4gYSBzdXBlciBvZiBpdCBh
bHNvIGluIGEgZm9sbG93aW5nIHBhdGNoLgorCisgICAgICAgIC0tIEFkZCBhIG5ldyBjbGFzcywg
bmFtZWQgRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIgYW5kIG1ha2UgaXQgdGhlIGJhc2UKKyAgICAg
ICAgICAgY2xhc3Mgb2YgRE9NTGl2ZVByb3BlcnR5IG9ic2VydmVycy4gQ3VycmVudGx5IHRoZSBm
b2xsb3dpbmcgY2xhc3MgYXJlCisgICAgICAgICAgIG1hZGUgc3VwZXIgY2xhc3NlcyBvZiBET01M
aXZlUHJvcGVydHlPYnNlcnZlcjoKKyAgICAgICAgICAgMS4gU1ZHRWxlbWVudDogVGhpcyBvYnNl
cnZlcyB0aGUgY2hhbmdlcyBpbiBhbGwgdGhlIFNWRyBwcm9wZXJ0aWVzLgorICAgICAgICAgICAy
LiBTVkdBbmltYXRlZFByb3BlcnR5OiBUaGlzIG9ic2VydmVzIHRoZSBjaGFuZ2VzIGluIGl0cyBi
YXNlVmFsLgorICAgICAgICAgICAzLiBTVkdQcm9wZXJ0eUxpc3Q6IFRoaXMgb2JzZXJ2ZXMgdGhl
IGNoYW5nZXMgaW4gdGhlIGl0ZW1zLgorICAgICAgICAgICA0LiBTVkdUcmFuc2Zvcm06IFRoaXMg
b2JzZXJ2ZXMgdGhlIGNoYW5nZXMgaW4gdGhlIHVuZGVybHlpbmcgU1ZHTWF0cml4LgorCisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogZG9tL0RPTUxpdmVQcm9wZXJ0eS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6aXNBdHRhY2hlZCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpET01MaXZlUHJvcGVydHk6Om9ic2VydmVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6YXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxp
dmVQcm9wZXJ0eTo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6
c3ZnQ29udGV4dEVsZW1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3Bl
cnR5Ojppc1JlYWRPbmx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0
eTo6Y29tbWl0Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6dmFs
dWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01MaXZlUHJvcGVydHk6OkRP
TUxpdmVQcm9wZXJ0eSk6CisgICAgICAgICogZG9tL0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXI6Om9ic2Vy
dmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eU9ic2VydmVyOjpw
cm9wZXJ0eVNWR0NvbnRleHRFbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxp
dmVQcm9wZXJ0eU9ic2VydmVyOjppc1Byb3BlcnR5UmVhZE9ubHkgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXI6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKToK
KyAgICAgICAgKiBzdmcvU1ZHQW5nbGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpj
cmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0VsZW1lbnQ6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKToKKyAgICAgICAgKiBzdmcvU1ZHRWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGguaDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0xlbmd0aDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6dmFsdWVGb3JC
aW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OnNldFZhbHVlRm9yQmluZGlu
Z3MpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpjb252ZXJ0VG9TcGVjaWZpZWRVbml0
cyk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0xlbmd0aExpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGhMaXN0OjpT
VkdMZW5ndGhMaXN0KToKKyAgICAgICAgKiBzdmcvU1ZHTWF0cml4Lmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXRyaXg6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR051bWJlci5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyOjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdOdW1i
ZXJMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0OjpjcmVhdGUpOgorICAg
ICAgICAqIHN2Zy9TVkdQYXRoU2VnLmg6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0Lmg6
CisgICAgICAgICogc3ZnL1NWR1BvaW50TGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9p
bnRMaXN0OjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVhdGUpOgorICAg
ICAgICAqIHN2Zy9TVkdSZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0OjpjcmVhdGUp
OgorICAgICAgICAqIHN2Zy9TVkdTdHJpbmdMaXN0Lmg6CisgICAgICAgICogc3ZnL1NWR1RyYW5z
Zm9ybS5oOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1MaXN0Lmg6CisgICAgICAgICogc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFByb3BlcnR5OjpvYnNlcnZlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFByb3BlcnR5Ojpjb21taXRQcm9wZXJ0eUNoYW5nZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojpvd25lciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICog
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuaDoKKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5UGFpckFjY2Vzc29ySW1wbC5oOgorICAgICAg
ICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR0xpc3QuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdN
ZW1iZXJBY2Nlc3Nvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWVtYmVyQWNjZXNzb3I6Om1h
dGNoZXMgY29uc3QpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1BvaW50ZXJNZW1iZXJB
Y2Nlc3Nvci5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ByaW1pdGl2ZVByb3BlcnR5
QW5pbWF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0
b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1h
dG9yOjpTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9yKToKKyAgICAgICAgKiBzdmcvcHJvcGVy
dGllcy9TVkdQcm9wZXJ0eS5oOiBSZW1vdmVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NW
R1Byb3BlcnR5QWNjZXNzb3IuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0
eUFuaW1hdG9yRmFjdG9yeS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlBbmltYXRv
ckZhY3Rvcnk6OmNyZWF0ZUNvbG9yQW5pbWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJv
cGVydHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZUxlbmd0aEFuaW1hdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1Byb3BlcnR5QW5pbWF0b3JGYWN0b3J5OjpjcmVhdGVMZW5ndGhMaXN0QW5pbWF0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0
ZU51bWJlckFuaW1hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5QW5pbWF0b3JG
YWN0b3J5OjpjcmVhdGVTdHJpbmdBbmltYXRvcik6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMv
U1ZHUHJvcGVydHlMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eUxpc3Q6OlNW
R1Byb3BlcnR5TGlzdCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25l
ci5oOiBSZW1vdmVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXJS
ZWdpc3RyeS5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5UmVnaXN0cnku
aDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eS5o
OgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHkuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1ZhbHVlUHJvcGVydHk6OlNWR1ZhbHVlUHJvcGVydHkpOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlBbmltYXRvci5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9yOjpTVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3Ip
OgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlBbmltYXRvckltcGwu
aDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdC5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVmFsdWVQcm9wZXJ0eUxpc3Q6OlNWR1ZhbHVlUHJvcGVydHlMaXN0
KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9y
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yOjpTVkdW
YWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdW
YWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9ySW1wbC5oOgorCisyMDE5LTEwLTAxICBTYWlkIEFib3Ut
SGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFNWR1By
b3BlcnR5U3RhdGUgZnJvbSBTVkdQcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNDM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhIHN0ZXAgdG93YXJkcyByZXBsYWNpbmcgU1ZH
UG9pbnQgYnkgRE9NUG9pbnQuCisKKyAgICAgICAgU1ZHUHJvcGVydHkga2VlcHMgYSBtZW1iZXIg
b2YgdHlwZSBTVkdQcm9wZXJ0eVN0YXRlIHdoaWNoIHRlbGxzIHdoZXRoZXIKKyAgICAgICAgaXQg
bmVlZHMgdG8gYmUgcmUtc2VyaWFsaXplZCB0byBpdHMgYXR0cmlidXRlIG9yIG5vdC4gQnV0IHRo
ZSBkaXJ0eSBzdGF0ZQorICAgICAgICBpcyBvbmx5IHNldCBpbiBTVkdFbGVtZW50Ojpjb21taXRQ
cm9wZXJ0eUNoYW5nZSgpLgorCisgICAgICAgIFNvIGluc3RlYWQgb2YgaGF2aW5nIFNWR0VsZW1l
bnQgc2VuZHMgdGhpcyBjaGFuZ2UgYmFjayB0byB0aGUgcHJvcGVydHksCisgICAgICAgIHdlIGFy
ZSBnb2luZyB0byBrZWVwIGEgSGFzaFNldDxRdWFsaWZpZWROYW1lPiBpbiBTVkdFbGVtZW50IHRv
IHRlbGwgd2hpY2gKKyAgICAgICAgYXR0cmlidXRlcyBuZWVkIHRvIGJlIHJlLXNlcmlhbGl6ZWQu
IEFuZCBpbnN0ZWFkIG9mIGNhbGxpbmcgdGhlIHZpcnR1YWwKKyAgICAgICAgbWV0aG9kIHN5bmNo
cm9uaXplKCkgd2hpY2ggd2FzIHJldHVybmluZyBPcHRpb25hbDxTdHJpbmc+LCB3ZSBhcmUgZ29p
bmcKKyAgICAgICAgdG8gY2FsbCB0aGUgdmlydHVhbCBtZXRob2QgdmFsdWVBc1N0cmluZygpIHdo
aWNoIHJldHVybnMgYSBTdHJpbmcuCisKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50OjpzeW5jaHJvbml6ZUF0dHJpYnV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdFbGVtZW50OjpzeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6Y29tbWl0UHJvcGVydHlDaGFuZ2UpOgorICAgICAg
ICAqIHN2Zy9TVkdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aC5oOgorICAgICAg
ICAqIHN2Zy9TVkdMZW5ndGhMaXN0Lmg6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6aW5pdGlhbFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT46
OmZyb21TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFp
dHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6cGFyc2UpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
Pjo6dG9TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkRGVjb3JhdGVkUHJvcGVydHkuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZFByaW1pdGl2ZVByb3BlcnR5Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6
dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3Bl
cnR5Ojppc0RpcnR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkUHJvcGVydHk6OnNldERpcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkUHJvcGVydHk6OnN5bmNocm9uaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TGlzdC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlQYWlyQWNjZXNzb3JJbXBsLmg6CisgICAgICAgICogc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5Lmg6CisgICAgICAgICogc3ZnL3By
b3BlcnRpZXMvU1ZHTWVtYmVyQWNjZXNzb3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01lbWJl
ckFjY2Vzc29yOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01l
bWJlckFjY2Vzc29yOjpzeW5jaHJvbml6ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogc3Zn
L3Byb3BlcnRpZXMvU1ZHUG9pbnRlck1lbWJlckFjY2Vzc29yLmg6CisgICAgICAgICogc3ZnL3By
b3BlcnRpZXMvU1ZHUHJvcGVydHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5Ojph
dHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmRldGFjaCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6aXNEaXJ0eSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6c2V0RGlydHkpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHk6OnN5bmNocm9uaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkuaDoKKyAgICAgICAgKiBzdmcvcHJv
cGVydGllcy9TVkdQcm9wZXJ0eVJlZ2lzdHJ5Lmg6CisKKzIwMTktMTAtMDEgIFNhaWQgQWJvdS1I
YWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgU1ZHUHJv
cGVydHlBY2Nlc3MgZnJvbSBTVkdQcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNDE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhIHN0ZXAgdG93YXJkcyByZXBsYWNpbmcgU1ZH
UG9pbnQgYnkgRE9NUG9pbnQuCisKKyAgICAgICAgQW4gU1ZHUHJvcGVydHkgaXMgcmVhZC1vbmx5
IGlmIGl0IG9yIGl0cyBvd25lciBpcyB0aGUgYW5pbVZhbCBvZiBhbgorICAgICAgICBTVkdBbmlt
YXRlZFByb3BlcnR5IG9yIFNWR0FuaW1hdGVkUHJvcGVydHlMaXN0LiBJbiB0aGlzIGNhc2UgYWxs
IGF0dGVtcHRzCisgICAgICAgIHRvIGNoYW5nZSBpdCB0aHJvdWdoIEphdmFTY3JpcHQgc2hvdWxk
IHRocm93IGV4cGVjdGlvbnMuCisKKyAgICAgICAgU28gaW5zdGVhZCBvZiBrZWVwaW5nIGEgbWVt
YmVyIG9mIFNWR1Byb3BlcnR5QWNjZXNzIGluIGVhY2ggU1ZHUHJvcGVydHksCisgICAgICAgIHdl
IGNhbiB3YWxrIHRocm91Z2ggdGhlIFNWR1Byb3BlcnR5T3duZXIgY2hhaW4gdGlsbCB3ZSByZWFj
aCBhbiBvd25lciBvZgorICAgICAgICB0eXBlIFNWR0FuaW1hdGVkUHJvcGVydHkgb3IgU1ZHQW5p
bWF0ZWRQcm9wZXJ0eUxpc3QuIFRoaXMgb3duZXIgY29tcGFyZXMKKyAgICAgICAgdGhlIHByb3Bl
cnR5IHRvIGJlIG1vZGlmaWVkIHdpdGggaXRzIGFuaW1WYWwuIEFuZCBpZiB0aGV5IGFyZSB0aGUg
c2FtZSwKKyAgICAgICAgaXQgd2lsbCByZXR1cm4gJ3RydWUnIHRocm91Z2ggaXRzIHZpcnR1YWwg
bWV0aG9kIGlzUHJvcGVydHlSZWFkT25seSgpLgorCisgICAgICAgICogc3ZnL1NWR0FuZ2xlLmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmdsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZH
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGguaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xlbmd0aDo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdC5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xlbmd0aExpc3Q6OlNWR0xlbmd0aExpc3QpOgorICAgICAgICAqIHN2Zy9TVkdNYXRyaXgu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcv
U1ZHTnVtYmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXI6OmNyZWF0ZSk6CisgICAg
ICAgICogc3ZnL1NWR051bWJlckxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlckxp
c3Q6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0Lmg6CisgICAgICAgICog
c3ZnL1NWR1BvaW50TGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnRMaXN0OjpjcmVh
dGUpOgorICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9T
VkdSZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0OjpjcmVhdGUpOgorICAgICAgICAq
IHN2Zy9TVkdUcmFuc2Zvcm0uaDoKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdC5oOgor
ICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlMaXN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5TGlzdDo6U1ZHQW5pbWF0ZWRQcm9wZXJ0
eUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3Q6OmVuc3Vy
ZUFuaW1WYWwpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9w
ZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5OjpTVkdB
bmltYXRlZFZhbHVlUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRWYWx1
ZVByb3BlcnR5OjplbnN1cmVBbmltVmFsKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQ
cm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmF0dGFjaCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1Byb3BlcnR5Ojpjb250ZXh0RWxlbWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
cm9wZXJ0eTo6aXNSZWFkT25seSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eTo6U1ZHUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmFjY2VzcyBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlMaXN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eUxpc3Q6OlNWR1Byb3BlcnR5TGlzdCk6
CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lci5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlPd25lcjo6aXNQcm9wZXJ0eVJlYWRPbmx5IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5T3duZXI6OnByb3BlcnR5Q29udGV4dEVsZW1lbnQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlPd25lcjo6YXR0cmlidXRlQ29u
dGV4dEVsZW1lbnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NW
R1ZhbHVlUHJvcGVydHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlUHJvcGVydHk6OlNW
R1ZhbHVlUHJvcGVydHkpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVy
dHlMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZVByb3BlcnR5TGlzdDo6U1ZHVmFs
dWVQcm9wZXJ0eUxpc3QpOgorCisyMDE5LTEwLTAxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91
aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSB0aGUgU1ZHIHByb3BlcnRpZXMgb2Yg
U1ZHVmlld1NwZWMgbW9kaWZpYWJsZSBidXQgZGV0YWNoZWQgcHJvcGVydGllcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNDExCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gZmFjaWxpdGF0ZSBhY2Nl
c3NpbmcgdGhlIFNWR1Byb3BlcnRpZXMsIG1ha2UgYWxsIHRoZSBwcm9wZXJ0aWVzIG9mCisgICAg
ICAgIFNWR1ZpZXdTcGVjIG1vZGlmaWFibGUgYnV0IGRldGFjaGVkIHByb3BlcnRpZXMuIFRoaXMg
d2lsbCBiZSBpbiBjb21wbGlhbmNlCisgICAgICAgIHdpdGggdGhlIHNwZWNzOiBodHRwczovL3d3
dy53My5vcmcvVFIvU1ZHMTEvdHlwZXMuaHRtbCNJbnRlcmZhY2VTVkdWaWV3U3BlYy4KKworICAg
ICAgICAqIHN2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRml0
VG9WaWV3Qm94OjpTVkdGaXRUb1ZpZXdCb3gpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRml0VG9W
aWV3Qm94OjpwYXJzZVZpZXdCb3gpOgorICAgICAgICAqIHN2Zy9TVkdGaXRUb1ZpZXdCb3guaDoK
KyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmll
d1NwZWM6OlNWR1ZpZXdTcGVjKToKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuaDoKKwogMjAx
OS0xMC0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgYXR0ZW1wdCB0byBmaXggV2luZG93cyBidWlsZCBhZnRlciByMjUwNTI3LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKaW5kZXggNTRhZjIyZGFkZTY1M2ZkM2FiYTc4NmMxNTlmZTAwZDJmMGE4YmQ5NC4u
MzU5Mzc2MmY5NjBlMmYwMTI4MmZmOWI5ODlhMGFiZTY2NDdiZWY0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCkBAIC0zNjAsNiArMzYwLDggQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIGRvbS9ET01FeGNlcHRpb24uaAogICAgIGRvbS9ET01IaWdoUmVzVGltZVN0YW1w
LmgKICAgICBkb20vRE9NSW1wbGVtZW50YXRpb24uaAorICAgIGRvbS9ET01MaXZlUHJvcGVydHku
aAorICAgIGRvbS9ET01MaXZlUHJvcGVydHlPYnNlcnZlci5oCiAgICAgZG9tL0RPTVBhc3RlQWNj
ZXNzLmgKICAgICBkb20vRE9NUmVjdC5oCiAgICAgZG9tL0RPTVJlY3RJbml0LmgKQEAgLTEzOTAs
NyArMTM5Miw2IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBz
dmcvcHJvcGVydGllcy9TVkdMaXN0LmgKICAgICBzdmcvcHJvcGVydGllcy9TVkdQcmltaXRpdmVM
aXN0LmgKICAgICBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5oCi0gICAgc3ZnL3Byb3BlcnRp
ZXMvU1ZHUHJvcGVydHlPd25lci5oCiAgICAgc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFp
dHMuaAogCiAgICAgdGVzdGluZy9Nb2NrR2FtZXBhZC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGY5NTg2
ZmEwNDhjYjdlZWQyODY1OWJhMDYwYjhkZjhhMTBlMmJkZGEuLjIyMzJjNjZlNjg1YmRhYTIyYzdl
ZDMzYjQ5ZTY0OTBlMDU0MjYzYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC04MzcsNiArODM3LDcgQEAg
ZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHAKIGRvbS9DdXN0b21FdmVudC5jcHAKIGRvbS9E
T01FeGNlcHRpb24uY3BwCiBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCitkb20vRE9NUG9pbnQu
Y3BwCiBkb20vRE9NUG9pbnRSZWFkT25seS5jcHAKIGRvbS9ET01RdWFkLmNwcAogZG9tL0RPTVJl
Y3RMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGExNzYxYzY3YjRjOTVkOGVhYjQ3N2E3YzAwYWU1NTQ1ZDIzYTc5ZWUu
LjlkMjYwMWViNTQ1ZDBlNjRlZjU5YWU4OTIwNGY3OGZjNjcyZWNlNjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwODUsMTIg
KzIwODUsMTMgQEAKIAkJNzFFRkNFREMyMDJCMzhBOTAwRDdDNDExIC8qIEFuaW1hdGlvbkVmZmVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFFRkNF
RDcyMDJCMzg4RDAwRDdDNDExIC8qIEFuaW1hdGlvbkVmZmVjdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyMTQ0MzMxMjIzRUM4NTQwMEYxMkZG
NyAvKiAobnVsbCkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzIxNDQzMzIyMjNFQzg1RjAw
RjEyRkY3IC8qIChudWxsKSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk3MjE0NDMzMzIyM0VD
OEIwMDBGMTJGRjcgLyogU1ZHUHJvcGVydHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU1RUU1MzYzMjIzQjJBMjQwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0
eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTcy
MTQ0MzM0MjIzRUM5MTYwMEYxMkZGNyAvKiBTVkdQcm9wZXJ0eU93bmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUVFNTM2MDIyM0IyQTIxMDBGQkE5
NDQgLyogU1ZHUHJvcGVydHlPd25lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTcyMjgzRjBFMjMwQjI2OEMwMEY1RDgyOCAvKiBJbWFnZVBhaW50
aW5nT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIEltYWdlUGFpbnRpbmdPcHRpb25zLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI0RUQzMzIx
QTNBOEIyMzAwRjVGMTNDIC8qIEpTRVhUQmxlbmRNaW5NYXguaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNEVEMzMwMUEzQThCMjMwMEY1RjEzQyAvKiBK
U0VYVEJsZW5kTWluTWF4LmggKi87IH07CiAJCTcyNEVFNTUwMURDODBEN0YwMEE5MUZGQiAvKiBB
Y3Rpdml0eVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3MjRFRTU0RTFEQzdGMjVCMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyNEVFNTUxMURDODBE
ODQwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNEVFNTRGMURDN0YyNUIwMEE5MUZG
QiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3MjgzMTVDMTIzNDQ0MDE1MDAwN0QyNzcgLyog
RE9NTGl2ZVByb3BlcnR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3MjgzMTVDMDIzNDQyMjkyMDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzI4MzE1QzIy
MzQ0NDAyMjAwMDdEMjc3IC8qIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjgzMTVCRTIzNDQyMjkxMDAwN0Qy
NzcgLyogRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3MjgzMTVDNzIzNDUxODIzMDAwN0QyNzcgLyogU1ZH
UHJvcGVydHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcyODMxNUM1MjM0NTBGQzIwMDA3RDI3NyAvKiBTVkdQcm9wZXJ0eS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc1NTNDRkU4MTA4RjQ3M0YwMEVB
MjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGlu
ZVJlY29yZEZhY3RvcnkuaCAqLzsgfTsKIAkJNzU3OTNFODQwRDBDRTBCMzAwN0ZDMEFDIC8qIE1l
c3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU3OTNFODEwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oICovOyB9OwogCQk3
NTc5M0VDOTBEMENFNzJEMDA3RkMwQUMgLyogSlNNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRUM3MEQwQ0U3MkQwMDdGQzBB
QyAvKiBKU01lc3NhZ2VFdmVudC5oICovOyB9OwpAQCAtODU2NSwxMCArODU2Niw4IEBACiAJCTU1
RUU1MzVEMjIzQjJBMEQwMEZCQTk0NCAvKiBTVkdBbmltYXRlZFByb3BlcnR5UGFpckFjY2Vzc29y
SW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFByb3Bl
cnR5UGFpckFjY2Vzc29ySW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUVF
NTM1RTIyM0IyQTBFMDBGQkE5NDQgLyogU1ZHQW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGlvbkFkZGl0aXZl
VmFsdWVGdW5jdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUVFNTM1RjIy
M0IyQTBGMDBGQkE5NDQgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBbmltYXRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFByb3BlcnR5UGFpckFuaW1h
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU1RUU1MzYwMjIzQjJBMjEwMEZC
QTk0NCAvKiBTVkdQcm9wZXJ0eU93bmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNWR1Byb3BlcnR5T3duZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVF
RTUzNjEyMjNCMkEyMjAwRkJBOTQ0IC8qIFNWR0F0dHJpYnV0ZUFuaW1hdG9yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0F0dHJpYnV0ZUFuaW1hdG9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVFRTUzNjIyMjNCMkEyMzAwRkJBOTQ0IC8q
IFNWR0FuaW1hdGVkUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NUVF
NTM2MzIyM0IyQTI0MDBGQkE5NDQgLyogU1ZHUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU1ZHUHJvcGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTVFRTUzNjQyMjNCMkEyNDAwRkJBOTQ0IC8qIFNWR0F0dHJpYnV0ZUFuaW1hdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0F0dHJpYnV0ZUFuaW1hdG9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1RkE3RkZBMjExMEVDRDcwMDVBRUZFNyAvKiBT
Vkdab29tQW5kUGFuVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdab29tQW5kUGFuVHlwZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzA0NDA1NzFFNTM4NTE2MDAzNTY2MDEgLyog
Q3J5cHRvQWxnb3JpdGhtQUVTX0NGQk1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1BRVNfQ0ZCTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTk0NDksNiArOTQ0OCwxMCBAQAogCQk3MjdBRkVEMTFBMkVBNkEwMDAw
NDQyRTggLyogRVhUc1JHQi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBFWFRzUkdCLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI3QUZFRDIxQTJF
QTZBMDAwMDQ0MkU4IC8qIEVYVHNSR0IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRVhUc1JHQi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjdBRkVEMzFBMkVB
NkEwMDAwNDQyRTggLyogRVhUc1JHQi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRVhUc1JH
Qi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyODMxNUJFMjM0NDIyOTEwMDA3
RDI3NyAvKiBET01MaXZlUHJvcGVydHlPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01MaXZlUHJvcGVydHlPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3MjgzMTVDMDIzNDQyMjkyMDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUxpdmVQcm9wZXJ0eS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjgzMTVDNTIzNDUwRkMyMDAwN0QyNzcgLyogU1ZH
UHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUHJvcGVydHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI4MzE1Q0UyMzQ2NTkwMTAwMDdEMjc3
IC8qIERPTVBvaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVBvaW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIEltYWdl
UGFpbnRpbmdPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlUGFpbnRpbmdPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyRTQxNzYxMUEyRThEMkYwMDRDNTYyQSAv
KiBKU0VYVHNSR0IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNF
WFRzUkdCLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJFNDE3NjIxQTJFOEQy
RjAwNEM1NjJBIC8qIEpTRVhUc1JHQi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0VYVHNSR0IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MTYzLDEzICsx
NjE2NiwxMiBAQAogCQkJCTU1RENDNTI1MjI0MDc0OUUwMEMyNkUzMiAvKiBTVkdQcmltaXRpdmVM
aXN0LmggKi8sCiAJCQkJNzI2NkYwMTUyMjQxQzA5ODAwODMzOTc1IC8qIFNWR1ByaW1pdGl2ZVBy
b3BlcnR5QW5pbWF0b3IuaCAqLywKIAkJCQk3MjY2RjAxNDIyNDFCRkIyMDA4MzM5NzUgLyogU1ZH
UHJpbWl0aXZlUHJvcGVydHlBbmltYXRvckltcGwuaCAqLywKLQkJCQk1NUVFNTM2MzIyM0IyQTI0
MDBGQkE5NDQgLyogU1ZHUHJvcGVydHkuaCAqLywKKwkJCQk3MjgzMTVDNTIzNDUwRkMyMDAwN0Qy
NzcgLyogU1ZHUHJvcGVydHkuaCAqLywKIAkJCQk1NURDQzUyNjIyNDA3NEZBMDBDMjZFMzIgLyog
U1ZHUHJvcGVydHlBY2Nlc3Nvci5oICovLAogCQkJCTU1RENDNTI3MjI0MDc1MEIwMEMyNkUzMiAv
KiBTVkdQcm9wZXJ0eUFjY2Vzc29ySW1wbC5oICovLAogCQkJCTcyNjZGMDE2MjI0MUMwRkUwMDgz
Mzk3NSAvKiBTVkdQcm9wZXJ0eUFuaW1hdG9yLmggKi8sCiAJCQkJNzI2NkYwMTMyMjQxQkNFMjAw
ODMzOTc1IC8qIFNWR1Byb3BlcnR5QW5pbWF0b3JGYWN0b3J5LmggKi8sCiAJCQkJNzI2NkYwMjcy
MjQzMTA5MjAwODMzOTc1IC8qIFNWR1Byb3BlcnR5TGlzdC5oICovLAotCQkJCTU1RUU1MzYwMjIz
QjJBMjEwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0eU93bmVyLmggKi8sCiAJCQkJNTVCRTAyNUMyMjNC
MjlDMzAwMzJGMDhBIC8qIFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeS5oICovLAogCQkJCTU1QkUw
MjU3MjIzQjI5QzAwMDMyRjA4QSAvKiBTVkdQcm9wZXJ0eVJlZ2lzdHJ5LmggKi8sCiAJCQkJMDg4
QTBFMDMxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5VHJhaXRzLmggKi8sCkBAIC0yNzU1
OSw3ICsyNzU2MSwxMCBAQAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBs
ZW1lbnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgxODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggKi8sCiAJCQkJOTNFRUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUlt
cGxlbWVudGF0aW9uLmlkbCAqLywKKwkJCQk3MjgzMTVDMDIzNDQyMjkyMDAwN0QyNzcgLyogRE9N
TGl2ZVByb3BlcnR5LmggKi8sCisJCQkJNzI4MzE1QkUyMzQ0MjI5MTAwMDdEMjc3IC8qIERPTUxp
dmVQcm9wZXJ0eU9ic2VydmVyLmggKi8sCiAJCQkJRjRCNDIyQzIyMjBDMDAwMDAwOUUxRTdEIC8q
IERPTVBhc3RlQWNjZXNzLmggKi8sCisJCQkJNzI4MzE1Q0UyMzQ2NTkwMTAwMDdEMjc3IC8qIERP
TVBvaW50LmNwcCAqLywKIAkJCQkwRjQ5NjY5OTFEQjQwOEMxMDBBMjc0QkIgLyogRE9NUG9pbnQu
aCAqLywKIAkJCQkwRjQ5NjY5QTFEQjQwOEMxMDBBMjc0QkIgLyogRE9NUG9pbnQuaWRsICovLAog
CQkJCTBGNDk2NkEyMURCNDA5MTAwMEEyNzRCQiAvKiBET01Qb2ludEluaXQuaCAqLywKQEAgLTI5
MTUzLDYgKzI5MTU4LDggQEAKIAkJCQlFM0E3NzY2NzFEQzg1RDI4MDBCNjkwRDggLyogRE9NSklU
SURMQ29udmVydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTNBNzc2NjgxREM4NUQyODAwQjY5MEQ4
IC8qIERPTUpJVElETFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzNTgwMkI2MURDODQzNUQw
MEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3Mjgz
MTVDMTIzNDQ0MDE1MDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5LmggaW4gSGVhZGVycyAqLywK
KwkJCQk3MjgzMTVDMjIzNDQ0MDIyMDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzNkFDRUNBMUVDQTk1NjkwMDRCRDAxMiAvKiBET01NYXRy
aXguaCBpbiBIZWFkZXJzICovLAogCQkJCTdDQkJCQ0M3MUY1NjA1ODEwMDVFRkFBQyAvKiBET01N
YXRyaXgyREluaXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNkFDRUNCMUVDQTk1NkQwMDRCRDAx
MiAvKiBET01NYXRyaXhJbml0LmggaW4gSGVhZGVycyAqLywKQEAgLTMxOTc2LDggKzMxOTgzLDcg
QEAKIAkJCQlCMjIyN0E5NDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUG9seWxpbmVFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVEQ0M1MjgyMjQwN0IyMDAwQzI2
RTMyIC8qIFNWR1ByaW1pdGl2ZUxpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTcyMTQ0MzMzMjIz
RUM4QjAwMEYxMkZGNyAvKiBTVkdQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNzIxNDQz
MzQyMjNFQzkxNjAwRjEyRkY3IC8qIFNWR1Byb3BlcnR5T3duZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTcyODMxNUM3MjM0NTE4MjMwMDA3RDI3NyAvKiBTVkdQcm9wZXJ0eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDg4QTBFMEMxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5VHJhaXRzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5QTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUmFkaWFs
R3JhZGllbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEVERTE5RjEyQTUwQjhFMDBC
OTU3OTcgLyogU1ZHUmVjdC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRE9NTGl2ZVByb3BlcnR5LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NTGl2ZVBy
b3BlcnR5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU1OTQ4YjY4MzU5MWNmYmVmNTczZmVmYTg5MGVjYWVjMjYy
YmM5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01MaXZlUHJvcGVy
dHkuaApAQCAtMCwwICsxLDgwIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBh
cmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIkRPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgRE9NTGl2ZVByb3BlcnR5IHsKK3B1YmxpYzoKKyAgICAvLyBNYW5h
Z2luZyB0aGUgcmVsYXRpb25zaGlwIHdpdGggdGhlIG9ic2VydmVyLgorICAgIGJvb2wgaXNBdHRh
Y2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1fb2JzZXJ2ZXI7IH0KKyAgICBET01MaXZlUHJvcGVydHlP
YnNlcnZlciogb2JzZXJ2ZXIoKSBjb25zdCB7IHJldHVybiBtX29ic2VydmVyOyB9CisKKyAgICB2
b2lkIGF0dGFjaChET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIpCisgICAgeworICAg
ICAgICBBU1NFUlQoIW1fb2JzZXJ2ZXIpOworICAgICAgICBtX29ic2VydmVyID0gb2JzZXJ2ZXI7
CisgICAgfQorCisgICAgdm9pZCBkZXRhY2goKQorICAgIHsKKyAgICAgICAgbV9vYnNlcnZlciA9
IG51bGxwdHI7CisgICAgfQorCisgICAgLy8gVHJhdmVyc2UgdGhlIG9ic2VydmVycyBjaGFpbiB0
aWxsIGFuIFNWR0VsZW1lbnQgb2JzZXJ2ZXIgaXMgcmVhY2hlZC4KKyAgICBjb25zdCBTVkdFbGVt
ZW50KiBzdmdDb250ZXh0RWxlbWVudCgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIW1fb2Jz
ZXJ2ZXIpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIG1fb2Jz
ZXJ2ZXItPnByb3BlcnR5U1ZHQ29udGV4dEVsZW1lbnQoKTsKKyAgICB9CisKKyAgICAvLyBDaGVj
ayBpZiB0aGUgb2JzZXJ2ZXIgZGlzYWxsb3dzIGNoYW5naW5nIHRoaXMgcHJvcGVydHkuCisgICAg
Ym9vbCBpc1JlYWRPbmx5KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX29ic2VydmVy
ICYmIG1fb2JzZXJ2ZXItPmlzUHJvcGVydHlSZWFkT25seSgqdGhpcyk7CisgICAgfQorCisgICAg
Ly8gQ29tbWl0IHRoZSBsaXZlIHByb3BlcnR5IGNoYW5nZXMgdmlhIHRoZSBvYnNlcnZlcnMgY2hh
aW4uCisgICAgdm9pZCBjb21taXRDaGFuZ2UoKQorICAgIHsKKyAgICAgICAgaWYgKCFtX29ic2Vy
dmVyKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX29ic2VydmVyLT5jb21taXRQcm9w
ZXJ0eUNoYW5nZSh0aGlzKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBET01MaXZlUHJvcGVy
dHkoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyID0gbnVsbHB0cikKKyAgICAgICAg
OiBtX29ic2VydmVyKG9ic2VydmVyKQorICAgIHsKKyAgICB9CisKKyAgICBET01MaXZlUHJvcGVy
dHlPYnNlcnZlciogbV9vYnNlcnZlciB7IG51bGxwdHIgfTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01MaXZlUHJvcGVydHlP
YnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDBhOTA3YWMxNjYwMTk3ZmQyYzI1N2JkYjY5OGViYjMzYzk3NTIwYQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01MaXZlUHJvcGVydHlPYnNlcnZl
ci5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFy
ZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25j
ZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTUxpdmVQcm9wZXJ0eTsKK2NsYXNz
IFNWR0VsZW1lbnQ7CisKK2NsYXNzIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyIHsKK3B1YmxpYzoK
KyAgICB2aXJ0dWFsIH5ET01MaXZlUHJvcGVydHlPYnNlcnZlcigpID0gZGVmYXVsdDsKKworICAg
IC8vIFRoZSBvYnNlcnZlciBpdHNlbGYgbWF5IGhhdmUgYW4gb2JzZXJ2ZXIuCisgICAgdmlydHVh
bCBET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIoKSBjb25zdCB7IHJldHVybiBudWxs
cHRyOyB9CisKKyAgICAvLyBUcmF2ZXJzZSB0aGUgb2JzZXJ2ZXJzIGNoYWluIHRpbGwgYW4gRWxl
bWVudCBvYnNlcnZlciBpcyByZWFjaGVkLgorICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCog
cHJvcGVydHlTVkdDb250ZXh0RWxlbWVudCgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIW9i
c2VydmVyKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIG9i
c2VydmVyKCktPnByb3BlcnR5U1ZHQ29udGV4dEVsZW1lbnQoKTsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIGJvb2wgaXNQcm9wZXJ0eVJlYWRPbmx5KGNvbnN0IERPTUxpdmVQcm9wZXJ0eSYgcHJvcGVy
dHkpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gb2JzZXJ2ZXIoKSAmJiBvYnNlcnZlcigp
LT5pc1Byb3BlcnR5UmVhZE9ubHkocHJvcGVydHkpOworICAgIH0KKworICAgIC8vIENvbW1pdCB0
aGUgbGl2ZSBwcm9wZXJ0eSBjaGFuZ2VzIHZpYSB0aGUgb2JzZXJ2ZXJzIGNoYWluLgorICAgIHZp
cnR1YWwgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqIHByb3BlcnR5
KQorICAgIHsKKyAgICAgICAgaWYgKCFvYnNlcnZlcigpKQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBvYnNlcnZlcigpLT5jb21taXRQcm9wZXJ0eUNoYW5nZShwcm9wZXJ0eSk7CisgICAg
fQorCitwcm90ZWN0ZWQ6CisgICAgRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIoKSA9IGRlZmF1bHQ7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NUG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40Y2VlMWFhYTA3YmFmMTczMzRiNGIxYzM4ZTJkZTMxZTkwODBkZTQ3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50LmNwcApAQCAtMCwwICsxLDQw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
CisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAg
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MKKyAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBDT1BZUklHSFQgSE9MREVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsCisgKiBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsCisgKiBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VECisgKiBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRPTVBvaW50LmgiCisKKyNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19B
TExPQ0FURURfSU1QTChET01Qb2ludCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NUG9pbnQuaAppbmRleCA3NzI3N2Q3ZjIxYjNmNGJjYzNjNDA0ZDUzZWUxZWM4Y2IwMzUz
YmMzLi5hOTBmNzM0OTRlOTVjNzk1Y2EzYmFlNmRiYTc3MzI0MGY3YTcwMDMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NUG9pbnQuaApAQCAtMzAsMTEgKzMwLDE0IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVk
ZSAiRE9NTGl2ZVByb3BlcnR5LmgiCiAjaW5jbHVkZSAiRE9NUG9pbnRSZWFkT25seS5oIgorI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgRE9NUG9pbnQgZmluYWwgOiBwdWJsaWMgRE9NUG9pbnRSZWFkT25seSB7CitjbGFzcyBE
T01Qb2ludCBmaW5hbCA6IHB1YmxpYyBET01Qb2ludFJlYWRPbmx5LCBwdWJsaWMgRE9NTGl2ZVBy
b3BlcnR5IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKERPTVBvaW50KTsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPERPTVBvaW50PiBjcmVhdGUoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3Vi
bGUgeiA9IDAsIGRvdWJsZSB3ID0gMSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01Qb2ludCh4
LCB5LCB6LCB3KSk7IH0KICAgICBzdGF0aWMgUmVmPERPTVBvaW50PiBjcmVhdGUoY29uc3QgRE9N
UG9pbnRJbml0JiBpbml0KSB7IHJldHVybiBjcmVhdGUoaW5pdC54LCBpbml0LnksIGluaXQueiwg
aW5pdC53KTsgfQpAQCAtNDUsMTIgKzQ4LDUzIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFooZG91
YmxlIHopIHsgbV96ID0gejsgfQogICAgIHZvaWQgc2V0Vyhkb3VibGUgdykgeyBtX3cgPSB3OyB9
CiAKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRYRm9yQmluZGluZ3MoZG91YmxlIHgpCisgICAg
eworICAgICAgICBpZiAoaXNSZWFkT25seSgpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CisgICAgCisgICAgICAgIG1feCA9IHg7
CisgICAgICAgIGNvbW1pdENoYW5nZSgpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKyAg
ICAKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRZRm9yQmluZGluZ3MoZG91YmxlIHkpCisgICAg
eworICAgICAgICBpZiAoaXNSZWFkT25seSgpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CisgICAgCisgICAgICAgIG1feSA9IHk7
CisgICAgICAgIGNvbW1pdENoYW5nZSgpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKyAg
ICAKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRaRm9yQmluZGluZ3MoZG91YmxlIHopCisgICAg
eworICAgICAgICBpZiAoaXNSZWFkT25seSgpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CisgICAgCisgICAgICAgIG1feiA9IHo7
CisgICAgICAgIGNvbW1pdENoYW5nZSgpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKyAg
ICAKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRXRm9yQmluZGluZ3MoZG91YmxlIHcpCisgICAg
eworICAgICAgICBpZiAoaXNSZWFkT25seSgpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CisgICAgCisgICAgICAgIG1fdyA9IHc7
CisgICAgICAgIGNvbW1pdENoYW5nZSgpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKyAg
ICAKIHByaXZhdGU6CiAgICAgRE9NUG9pbnQoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeiwg
ZG91YmxlIHcpCiAgICAgICAgIDogRE9NUG9pbnRSZWFkT25seSh4LCB5LCB6LCB3KQogICAgIHsK
ICAgICB9CiB9Owotc3RhdGljX2Fzc2VydChzaXplb2YoRE9NUG9pbnQpID09IHNpemVvZihET01Q
b2ludFJlYWRPbmx5KSwgIiIpOworCitzdGF0aWNfYXNzZXJ0KHNpemVvZihET01Qb2ludCkgPT0g
c2l6ZW9mKERPTVBvaW50UmVhZE9ubHkpICsgc2l6ZW9mKERPTUxpdmVQcm9wZXJ0eSksICIiKTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RPTVBvaW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludC5pZGwKaW5kZXggNjli
YmMyZDBmZjIwNzYxNDZmZmQ1NTI3MDRkNTc2MjI1MTlkZDYwNS4uZDE2ZTA0ZWM0NGUxNDIxN2I4
MTM4ZTdlYzg5YWJmZTJmNDQ3ZmI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RP
TVBvaW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnQuaWRsCkBAIC0zNSwx
MyArMzUsMTMgQEAKICAgICAgICAgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSB6ID0gMCwg
b3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSB3ID0gMSksCiAgICAgRXhwb3NlZD0oV2luZG93
LFdvcmtlciksCiAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsLAotICAgIEltcGxlbWVudGF0
aW9uTGFja3NWVGFibGUKKyAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbgogXQogaW50ZXJmYWNlIERP
TVBvaW50IDogRE9NUG9pbnRSZWFkT25seSB7CiAgICAgW05ld09iamVjdF0gc3RhdGljIERPTVBv
aW50IGZyb21Qb2ludChvcHRpb25hbCBET01Qb2ludEluaXQgb3RoZXIpOwogCi0gICAgaW5oZXJp
dCBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB4OwotICAgIGluaGVyaXQgYXR0cmlidXRl
IHVucmVzdHJpY3RlZCBkb3VibGUgeTsKLSAgICBpbmhlcml0IGF0dHJpYnV0ZSB1bnJlc3RyaWN0
ZWQgZG91YmxlIHo7Ci0gICAgaW5oZXJpdCBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB3
OworICAgIFtJbXBsZW1lbnRlZEFzPXhGb3JCaW5kaW5nc10gaW5oZXJpdCBhdHRyaWJ1dGUgdW5y
ZXN0cmljdGVkIGRvdWJsZSB4OworICAgIFtJbXBsZW1lbnRlZEFzPXlGb3JCaW5kaW5nc10gaW5o
ZXJpdCBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB5OworICAgIFtJbXBsZW1lbnRlZEFz
PXpGb3JCaW5kaW5nc10gaW5oZXJpdCBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB6Owor
ICAgIFtJbXBsZW1lbnRlZEFzPXdGb3JCaW5kaW5nc10gaW5oZXJpdCBhdHRyaWJ1dGUgdW5yZXN0
cmljdGVkIGRvdWJsZSB3OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Q
b2ludFJlYWRPbmx5LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnRSZWFkT25seS5oCmlu
ZGV4IDBhNjhmZGYxYmMxOTRlNDMxN2UxYjU1ZmFkODlkNDZkYWVmZTcyMTEuLjlhNGRiNjYwOTE0
NTU5ODJhZjZmOGE3NTEzNTRiNmZjMDI2ZjQwMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01Qb2ludFJlYWRPbmx5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50
UmVhZE9ubHkuaApAQCAtNDMsNiArNDMsNyBAQCBjbGFzcyBET01Qb2ludDsKIGNsYXNzIERPTVBv
aW50UmVhZE9ubHkgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxE
T01Qb2ludFJlYWRPbmx5PiB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChET01Qb2ludFJl
YWRPbmx5KTsKIHB1YmxpYzoKKyAgICB2aXJ0dWFsIH5ET01Qb2ludFJlYWRPbmx5KCkgPSBkZWZh
dWx0OwogICAgIHN0YXRpYyBSZWY8RE9NUG9pbnRSZWFkT25seT4gY3JlYXRlKGRvdWJsZSB4LCBk
b3VibGUgeSwgZG91YmxlIHosIGRvdWJsZSB3KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTVBv
aW50UmVhZE9ubHkoeCwgeSwgeiwgdykpOyB9CiAgICAgc3RhdGljIFJlZjxET01Qb2ludFJlYWRP
bmx5PiBjcmVhdGUoY29uc3QgRE9NUG9pbnRJbml0JiBpbml0KSB7IHJldHVybiBjcmVhdGUoaW5p
dC54LCBpbml0LnksIGluaXQueiwgaW5pdC53KTsgfQogICAgIHN0YXRpYyBSZWY8RE9NUG9pbnRS
ZWFkT25seT4gZnJvbVBvaW50KGNvbnN0IERPTVBvaW50SW5pdCYgaW5pdCkgeyByZXR1cm4gY3Jl
YXRlKGluaXQueCwgaW5pdC55LCBpbml0LnosIGluaXQudyk7IH0KQEAgLTUyLDYgKzUzLDExIEBA
IHB1YmxpYzoKICAgICBkb3VibGUgeigpIGNvbnN0IHsgcmV0dXJuIG1fejsgfQogICAgIGRvdWJs
ZSB3KCkgY29uc3QgeyByZXR1cm4gbV93OyB9CiAKKyAgICBkb3VibGUgeEZvckJpbmRpbmdzKCkg
Y29uc3QgeyByZXR1cm4gbV94OyB9CisgICAgZG91YmxlIHlGb3JCaW5kaW5ncygpIGNvbnN0IHsg
cmV0dXJuIG1feTsgfQorICAgIGRvdWJsZSB6Rm9yQmluZGluZ3MoKSBjb25zdCB7IHJldHVybiBt
X3o7IH0KKyAgICBkb3VibGUgd0ZvckJpbmRpbmdzKCkgY29uc3QgeyByZXR1cm4gbV93OyB9CisK
ICAgICBFeGNlcHRpb25PcjxSZWY8RE9NUG9pbnQ+PiBtYXRyaXhUcmFuc2Zvcm0oRE9NTWF0cml4
SW5pdCYmKSBjb25zdDsKIAogcHJvdGVjdGVkOgpAQCAtNzEsNCArNzcsMyBAQCBwcm90ZWN0ZWQ6
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01Qb2ludFJlYWRPbmx5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2lu
dFJlYWRPbmx5LmlkbAppbmRleCAzZmZkNjZmZDcxMjFhOWRjN2NjNWY4NTczYTc2YTc4OTc0NGY5
NjhlLi5mOWVjMzQzOTgzMTFlNDc2OTBhNmNjNDY0YTlhZGM1ZDE1MzdlMmY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnRSZWFkT25seS5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsCkBAIC0zNCwxNSArMzQsMTUgQEAKICAgICBD
b25zdHJ1Y3RvcihvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHggPSAwLCBvcHRpb25hbCB1
bnJlc3RyaWN0ZWQgZG91YmxlIHkgPSAwLAogICAgICAgICBvcHRpb25hbCB1bnJlc3RyaWN0ZWQg
ZG91YmxlIHogPSAwLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHcgPSAxKSwKICAgICBF
eHBvc2VkPShXaW5kb3csV29ya2VyKSwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCisg
ICAgU2tpcFZUYWJsZVZhbGlkYXRpb24KIF0KIGludGVyZmFjZSBET01Qb2ludFJlYWRPbmx5IHsK
ICAgICBbTmV3T2JqZWN0XSBzdGF0aWMgRE9NUG9pbnRSZWFkT25seSBmcm9tUG9pbnQob3B0aW9u
YWwgRE9NUG9pbnRJbml0IG90aGVyKTsKIAotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3Ry
aWN0ZWQgZG91YmxlIHg7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3Vi
bGUgeTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB6OwotICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHc7CisgICAgW0ltcGxlbWVu
dGVkQXM9eEZvckJpbmRpbmdzXSByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJs
ZSB4OworICAgIFtJbXBsZW1lbnRlZEFzPXhGb3JCaW5kaW5nc10gcmVhZG9ubHkgYXR0cmlidXRl
IHVucmVzdHJpY3RlZCBkb3VibGUgeTsKKyAgICBbSW1wbGVtZW50ZWRBcz14Rm9yQmluZGluZ3Nd
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHo7CisgICAgW0ltcGxlbWVu
dGVkQXM9eEZvckJpbmRpbmdzXSByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJs
ZSB3OwogCiAgICAgW01heVRocm93RXhjZXB0aW9uXSBET01Qb2ludCBtYXRyaXhUcmFuc2Zvcm0o
b3B0aW9uYWwgRE9NTWF0cml4SW5pdCBtYXRyaXgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCmluZGV4IDY5ZTA2ZTdi
MDU0MDAyNmM0YjEwYzIxYTE3YmI5YzZhOWJlMzJmMjMuLmFkMDg4NTlkODUwMWE3ZTQzM2MxMDQ1
Y2ZmODYzNGRhY2QxNmMxMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCkBAIC0yNiw2ICsyNiwxMSBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5o
IgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyNpbmNsdWRlICJEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaCIKKyNlbmRpZgorCisjaW5jbHVkZSAi
RE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5nbGUuaAppbmRleCA5YzYxNzMyYWU5MzFjOTg1NGU3NTY5ZTFjYjIyYTZl
ZDhkYWY1YjAzLi4wNGIyMTZmYTc2ZWUwYWMyODc2YTYzZTBkNmIzOTU0YTM4NjVhZWYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5nbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5nbGUuaApAQCAtNDEsOSArNDEsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR0FuZ2xlKHZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJl
ZjxTVkdBbmdsZT4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFj
Y2VzcyBhY2Nlc3MsIGNvbnN0IFNWR0FuZ2xlVmFsdWUmIHZhbHVlID0geyB9KQorICAgIHN0YXRp
YyBSZWY8U1ZHQW5nbGU+IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIs
IGNvbnN0IFNWR0FuZ2xlVmFsdWUmIHZhbHVlID0geyB9KQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHQW5nbGUob3duZXIsIGFjY2VzcywgdmFsdWUpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5nbGUob2JzZXJ2ZXIsIHZhbHVlKSk7CiAgICAgfQog
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRl
eCAxNmMzYWZjMjE1M2I2OGRhOWQ4NTM2NTY5NjI2MDVjOGUxMGE1YWY0Li4yMDRjMjJiYjM2ZGRh
MDg2MjgxMzkxNzIzMGZkNGU5NDAxMWY0OTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3Bw
CkBAIC01NDEsMjAgKzU0MSwyMyBAQCB2b2lkIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgbwogICAgICAgICBz
dmdBdHRyaWJ1dGVDaGFuZ2VkKG5hbWUpOwogfQogCi12b2lkIFNWR0VsZW1lbnQ6OnN5bmNocm9u
aXplQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpCit2b2lkIFNWR0VsZW1lbnQ6
OnN5bmNocm9uaXplQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUp
CiB7Ci0gICAgLy8gSWYgdGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBoYXMgY2hhbmdlZCwgc2Vy
aWFsaXplIHRoZSBuZXcgdmFsdWUgdG8gdGhlIGF0dHJpYnV0ZS4KLSAgICBpZiAoYXV0byB2YWx1
ZSA9IHByb3BlcnR5UmVnaXN0cnkoKS5zeW5jaHJvbml6ZShuYW1lKSkKLSAgICAgICAgc2V0U3lu
Y2hyb25pemVkTGF6eUF0dHJpYnV0ZShuYW1lLCAqdmFsdWUpOworICAgIGF1dG8gaXQgPSBtX2Rp
cnR5QXR0cmlidXRlcy5maW5kKGF0dHJpYnV0ZU5hbWUpOworICAgIGlmIChpdCA9PSBtX2RpcnR5
QXR0cmlidXRlcy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIC8vIElmIHRoZSB2
YWx1ZSBvZiB0aGUgcHJvcGVydHkgaGFzIGNoYW5nZWQsIHJlc2VyaWFsaXplIHRoZSBuZXcgdmFs
dWUgdG8gdGhlIGF0dHJpYnV0ZS4KKyAgICBzZXRTeW5jaHJvbml6ZWRMYXp5QXR0cmlidXRlKGF0
dHJpYnV0ZU5hbWUsIHByb3BlcnR5UmVnaXN0cnkoKS52YWx1ZUFzU3RyaW5nKGF0dHJpYnV0ZU5h
bWUpKTsKKyAgICBtX2RpcnR5QXR0cmlidXRlcy5yZW1vdmUoaXQpOwogfQogICAgIAogdm9pZCBT
VkdFbGVtZW50OjpzeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMoKQogewotICAgIC8vIFNWR1Byb3Bl
cnR5UmVnaXN0cnk6OnN5bmNocm9uaXplQWxsQXR0cmlidXRlcygpIHJldHVybnMgdGhlIG5ldyB2
YWx1ZXMgb2YKLSAgICAvLyB0aGUgcHJvcGVydGllcyB3aGljaCBoYXZlIGNoYW5nZWQgYnV0IG5v
dCBjb21taXR0ZWQgeWV0LgotICAgIGF1dG8gbWFwID0gcHJvcGVydHlSZWdpc3RyeSgpLnN5bmNo
cm9uaXplQWxsQXR0cmlidXRlcygpOwotICAgIGZvciAoY29uc3QgYXV0byYgZW50cnkgOiBtYXAp
Ci0gICAgICAgIHNldFN5bmNocm9uaXplZExhenlBdHRyaWJ1dGUoZW50cnkua2V5LCBlbnRyeS52
YWx1ZSk7CisgICAgLy8gUmVzZXJpYWxpemUgdGhlIHZhbHVlcyBvZiB0aGUgY2hhbmdlZCBwcm9w
ZXJ0aWVzIHRvIHRoZWlyIGF0dHJpYnV0ZXMuCisgICAgZm9yIChhdXRvJiBhdHRyaWJ1dGVOYW1l
IDogbV9kaXJ0eUF0dHJpYnV0ZXMpCisgICAgICAgIHNldFN5bmNocm9uaXplZExhenlBdHRyaWJ1
dGUoYXR0cmlidXRlTmFtZSwgcHJvcGVydHlSZWdpc3RyeSgpLnZhbHVlQXNTdHJpbmcoYXR0cmli
dXRlTmFtZSkpOworICAgIG1fZGlydHlBdHRyaWJ1dGVzLmNsZWFyKCk7CiB9CiAKIHZvaWQgU1ZH
RWxlbWVudDo6c3luY2hyb25pemVBbGxBbmltYXRlZFNWR0F0dHJpYnV0ZShTVkdFbGVtZW50JiBz
dmdFbGVtZW50KQpAQCAtNTYyLDE1ICs1NjUsMTggQEAgdm9pZCBTVkdFbGVtZW50OjpzeW5jaHJv
bml6ZUFsbEFuaW1hdGVkU1ZHQXR0cmlidXRlKFNWR0VsZW1lbnQmIHN2Z0VsZW1lbnQpCiAgICAg
c3ZnRWxlbWVudC5zeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMoKTsKIH0KIAotdm9pZCBTVkdFbGVt
ZW50Ojpjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9wZXJ0eSogcHJvcGVydHkpCit2b2lkIFNW
R0VsZW1lbnQ6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKERPTUxpdmVQcm9wZXJ0eSogcHJvcGVydHkp
CiB7CisgICAgUXVhbGlmaWVkTmFtZSBhdHRyaWJ1dGVOYW1lID0gcHJvcGVydHlSZWdpc3RyeSgp
LnByb3BlcnR5QXR0cmlidXRlTmFtZSgqcHJvcGVydHkpOworICAgIEFTU0VSVChhdHRyaWJ1dGVO
YW1lICE9IG51bGxRTmFtZSgpKTsKKwogICAgIC8vIFdlIHdhbnQgdG8gZGlydHkgdGhlIHRvcC1s
ZXZlbCBwcm9wZXJ0eSB3aGVuIGEgZGVzY2VuZGFudCBjaGFuZ2VzLiBGb3IgZXhhbXBsZQogICAg
IC8vIGEgY2hhbmdlIGluIGFuIFNWR0xlbmd0aCBpdGVtIGluIFNWR0xlbmd0aExpc3Qgc2hvdWxk
IHNldCB0aGUgZGlydHkgZmxhZyBvbgogICAgIC8vIFNWR0xlbmd0aExpc3QgYW5kIG5vdCB0aGUg
U1ZHTGVuZ3RoLgotICAgIHByb3BlcnR5LT5zZXREaXJ0eSgpOworICAgIG1fZGlydHlBdHRyaWJ1
dGVzLmFkZChhdHRyaWJ1dGVOYW1lKTsKIAogICAgIGludmFsaWRhdGVTVkdBdHRyaWJ1dGVzKCk7
Ci0gICAgc3ZnQXR0cmlidXRlQ2hhbmdlZChwcm9wZXJ0eVJlZ2lzdHJ5KCkucHJvcGVydHlBdHRy
aWJ1dGVOYW1lKCpwcm9wZXJ0eSkpOworICAgIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0cmlidXRl
TmFtZSk7CiB9CiAKIHZvaWQgU1ZHRWxlbWVudDo6Y29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHQW5p
bWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSkKQEAgLTU4MSw3ICs1ODcsNyBAQCB2b2lk
IFNWR0VsZW1lbnQ6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFu
aW1hdGVkUHJvcGVydHkpCiAgICAgLy8gQSBjaGFuZ2UgaW4gYSBzdHlsZSBwcm9wZXJ0eSwgZS5n
IFNWR1JlY3RFbGVtZW50Ojp4IHNob3VsZCBiZSBzZXJpYWxpemVkIHRvCiAgICAgLy8gdGhlIGF0
dHJpYnV0ZSBpbW1lZGlhdGVseS4gT3RoZXJ3aXNlIGl0IGlzIG9rYXkgdG8gYmUgbGF6eSBpbiB0
aGlzIHJlZ2FyZC4KICAgICBpZiAoIXByb3BlcnR5UmVnaXN0cnkoKS5pc0FuaW1hdGVkU3R5bGVQ
cm9wZXJ0eUF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSkKLSAgICAgICAgYW5pbWF0ZWRQcm9wZXJ0
eS5zZXREaXJ0eSgpOworICAgICAgICBtX2RpcnR5QXR0cmlidXRlcy5hZGQoYXR0cmlidXRlTmFt
ZSk7CiAgICAgZWxzZQogICAgICAgICBzZXRTeW5jaHJvbml6ZWRMYXp5QXR0cmlidXRlKGF0dHJp
YnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHkuYmFzZVZhbEFzU3RyaW5nKCkpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0VsZW1lbnQuaAppbmRleCA4Y2M2YWFjYTY1NzY4MGVlOGQzZjNmNDZjODc4MmFkMjI1NWM3
NzQyLi5kOTA4NzZhZmZiNzRlNjE1MzMyM2U1MzRjODg5N2ZkOGRlNTZlMGRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdFbGVtZW50LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgU1ZHVXNlRWxlbWVudDsKIAog
dm9pZCBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KEhhc2hNYXA8QXRvbVN0cmluZ0ltcGwqLCBD
U1NQcm9wZXJ0eUlEPiogcHJvcGVydHlOYW1lVG9JZE1hcCwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpOwogCi1jbGFzcyBTVkdFbGVtZW50IDogcHVibGljIFN0eWxlZEVsZW1lbnQsIHB1
YmxpYyBTVkdMYW5nU3BhY2UsIHB1YmxpYyBTVkdQcm9wZXJ0eU93bmVyIHsKK2NsYXNzIFNWR0Vs
ZW1lbnQgOiBwdWJsaWMgU3R5bGVkRWxlbWVudCwgcHVibGljIFNWR0xhbmdTcGFjZSwgcHVibGlj
IERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNW
R0VsZW1lbnQpOwogcHVibGljOgogICAgIGJvb2wgaXNPdXRlcm1vc3RTVkdTVkdFbGVtZW50KCkg
Y29uc3Q7CkBAIC0xMzYsMTAgKzEzNiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzeW5jaHJvbml6
ZUFsbEF0dHJpYnV0ZXMoKTsKICAgICBzdGF0aWMgdm9pZCBzeW5jaHJvbml6ZUFsbEFuaW1hdGVk
U1ZHQXR0cmlidXRlKFNWR0VsZW1lbnQmKTsKIAotICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFu
Z2UoU1ZHUHJvcGVydHkqKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdl
KERPTUxpdmVQcm9wZXJ0eSopIG92ZXJyaWRlOwogICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFu
Z2UoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYpOwogCi0gICAgY29uc3QgU1ZHRWxlbWVudCogYXR0cmli
dXRlQ29udGV4dEVsZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0aGlzOyB9CisgICAg
Y29uc3QgU1ZHRWxlbWVudCogcHJvcGVydHlTVkdDb250ZXh0RWxlbWVudCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRoaXM7IH0KICAgICBTVkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeSYgcHJv
cGVydHlBbmltYXRvckZhY3RvcnkoKSB7IHJldHVybiAqbV9wcm9wZXJ0eUFuaW1hdG9yRmFjdG9y
eTsgfQogICAgIFJlZlB0cjxTVkdBdHRyaWJ1dGVBbmltYXRvcj4gY3JlYXRlQW5pbWF0b3IoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIEFuaW1hdGlvbk1vZGUsIENhbGNNb2RlLCBib29sIGlzQWNjdW11
bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSk7CiAgICAgdm9pZCBhbmltYXRvcldpbGxCZURlbGV0ZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpOwpAQCAtMTk2LDYgKzE5Niw3IEBAIHByaXZhdGU6CiAgICAg
c3RkOjp1bmlxdWVfcHRyPFNWR1Byb3BlcnR5QW5pbWF0b3JGYWN0b3J5PiBtX3Byb3BlcnR5QW5p
bWF0b3JGYWN0b3J5OwogCiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkg
eyAqdGhpcyB9OworICAgIEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4gbV9kaXJ0eUF0dHJpYnV0ZXM7
CiAgICAgUmVmPFNWR0FuaW1hdGVkU3RyaW5nPiBtX2NsYXNzTmFtZSB7IFNWR0FuaW1hdGVkU3Ry
aW5nOjpjcmVhdGUodGhpcykgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGaXRUb1ZpZXdCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0Jv
eC5jcHAKaW5kZXggMWY0N2QzNjhlOTAzMWY0NGEwYmUwZmQyNDM1MGM3MmQxNDFmNjU0OS4uYTQ0
MGM2YzJiMzI5YTYzZTEwOThmNjNkZDgxZjk5NzMwOWRjMjJhNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZpdFRvVmlld0JveC5jcHAKQEAgLTM0LDkgKzM0LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotU1ZHRml0VG9WaWV3Qm94OjpTVkdGaXRUb1ZpZXdCb3goU1ZHRWxlbWVudCogY29u
dGV4dEVsZW1lbnQsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKLSAgICA6IG1fdmlld0JveChT
VkdBbmltYXRlZFJlY3Q6OmNyZWF0ZShjb250ZXh0RWxlbWVudCwgYWNjZXNzKSkKLSAgICAsIG1f
cHJlc2VydmVBc3BlY3RSYXRpbyhTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW86OmNyZWF0
ZShjb250ZXh0RWxlbWVudCwgYWNjZXNzKSkKK1NWR0ZpdFRvVmlld0JveDo6U1ZHRml0VG9WaWV3
Qm94KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KQorICAgIDogbV92aWV3Qm94KFNWR0FuaW1h
dGVkUmVjdDo6Y3JlYXRlKHN0YXRpY19jYXN0PHZvaWQqPihjb250ZXh0RWxlbWVudCkgPT0gdGhp
cyA/IGNvbnRleHRFbGVtZW50IDogbnVsbHB0cikpCisgICAgLCBtX3ByZXNlcnZlQXNwZWN0UmF0
aW8oU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVhdGUoc3RhdGljX2Nhc3Q8dm9p
ZCo+KGNvbnRleHRFbGVtZW50KSA9PSB0aGlzID8gY29udGV4dEVsZW1lbnQgOiBudWxscHRyKSkK
KyAgICAsIG1fY29udGV4dEVsZW1lbnQoY29udGV4dEVsZW1lbnQpCiB7CiAgICAgc3RhdGljIHN0
ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7
CkBAIC0xMDQsMjkgKzEwNSwyOSBAQCBib29sIFNWR0ZpdFRvVmlld0JveDo6cGFyc2VWaWV3Qm94
KGNvbnN0IFVDaGFyKiYgYywgY29uc3QgVUNoYXIqIGVuZCwgRmxvYXRSZWN0JgogICAgIGJvb2wg
dmFsaWQgPSBwYXJzZU51bWJlcihjLCBlbmQsIHgpICYmIHBhcnNlTnVtYmVyKGMsIGVuZCwgeSkg
JiYgcGFyc2VOdW1iZXIoYywgZW5kLCB3aWR0aCkgJiYgcGFyc2VOdW1iZXIoYywgZW5kLCBoZWln
aHQsIGZhbHNlKTsKIAogICAgIGlmICh2YWxpZGF0ZSkgewotICAgICAgICBEb2N1bWVudCYgZG9j
dW1lbnQgPSBtX3ZpZXdCb3gtPmNvbnRleHRFbGVtZW50KCktPmRvY3VtZW50KCk7CisgICAgICAg
IGF1dG8mIGRvY3VtZW50RXh0ZW5zaW9ucyA9IG1fY29udGV4dEVsZW1lbnQtPmRvY3VtZW50KCku
YWNjZXNzU1ZHRXh0ZW5zaW9ucygpOwogCiAgICAgICAgIGlmICghdmFsaWQpIHsKLSAgICAgICAg
ICAgIGRvY3VtZW50LmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5yZXBvcnRXYXJuaW5nKCJQcm9ibGVt
IHBhcnNpbmcgdmlld0JveD1cIiIgKyBzdHIgKyAiXCIiKTsKKyAgICAgICAgICAgIGRvY3VtZW50
RXh0ZW5zaW9ucy5yZXBvcnRXYXJuaW5nKCJQcm9ibGVtIHBhcnNpbmcgdmlld0JveD1cIiIgKyBz
dHIgKyAiXCIiKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCiAgICAg
ICAgIC8vIENoZWNrIHRoYXQgd2lkdGggaXMgcG9zaXRpdmUuCiAgICAgICAgIGlmICh3aWR0aCA8
IDAuMCkgewotICAgICAgICAgICAgZG9jdW1lbnQuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLnJlcG9y
dEVycm9yKCJBIG5lZ2F0aXZlIHZhbHVlIGZvciBWaWV3Qm94IHdpZHRoIGlzIG5vdCBhbGxvd2Vk
Iik7CisgICAgICAgICAgICBkb2N1bWVudEV4dGVuc2lvbnMucmVwb3J0RXJyb3IoIkEgbmVnYXRp
dmUgdmFsdWUgZm9yIFZpZXdCb3ggd2lkdGggaXMgbm90IGFsbG93ZWQiKTsKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIENoZWNrIHRoYXQgaGVpZ2h0
IGlzIHBvc2l0aXZlLgogICAgICAgICBpZiAoaGVpZ2h0IDwgMC4wKSB7Ci0gICAgICAgICAgICBk
b2N1bWVudC5hY2Nlc3NTVkdFeHRlbnNpb25zKCkucmVwb3J0RXJyb3IoIkEgbmVnYXRpdmUgdmFs
dWUgZm9yIFZpZXdCb3ggaGVpZ2h0IGlzIG5vdCBhbGxvd2VkIik7CisgICAgICAgICAgICBkb2N1
bWVudEV4dGVuc2lvbnMucmVwb3J0RXJyb3IoIkEgbmVnYXRpdmUgdmFsdWUgZm9yIFZpZXdCb3gg
aGVpZ2h0IGlzIG5vdCBhbGxvd2VkIik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIH0KIAogICAgICAgICAvLyBOb3RoaW5nIHNob3VsZCBjb21lIGFmdGVyIHRoZSBsYXN0LCBm
b3VydGggbnVtYmVyLgogICAgICAgICBza2lwT3B0aW9uYWxTVkdTcGFjZXMoYywgZW5kKTsKICAg
ICAgICAgaWYgKGMgPCBlbmQpIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmFjY2Vzc1NWR0V4dGVu
c2lvbnMoKS5yZXBvcnRXYXJuaW5nKCJQcm9ibGVtIHBhcnNpbmcgdmlld0JveD1cIiIgKyBzdHIg
KyAiXCIiKTsKKyAgICAgICAgICAgIGRvY3VtZW50RXh0ZW5zaW9ucy5yZXBvcnRXYXJuaW5nKCJQ
cm9ibGVtIHBhcnNpbmcgdmlld0JveD1cIiIgKyBzdHIgKyAiXCIiKTsKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGaXRUb1ZpZXdCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdC
b3guaAppbmRleCA5MDdkNjU1Y2QxYjFiOWIzNzJhMjBmODE4OTIzNjA0MmUyMGYwZmQwLi41OTZk
ZmRjMWQwNTY3YTA0N2Y1Yjg5Y2FkYTU4NDA3YmM0OWZiNDFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZpdFRvVmlld0JveC5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0Vt
cHR5Vmlld0JveCgpIGNvbnN0IHsgcmV0dXJuIG1faXNWaWV3Qm94VmFsaWQgJiYgdmlld0JveCgp
LmlzRW1wdHkoKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHRml0VG9WaWV3Qm94KFNWR0VsZW1l
bnQqIGNvbnRleHRFbGVtZW50LCBTVkdQcm9wZXJ0eUFjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNz
OjpSZWFkV3JpdGUpOworICAgIFNWR0ZpdFRvVmlld0JveChTVkdFbGVtZW50KiBjb250ZXh0RWxl
bWVudCk7CiAKICAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUpIHsgcmV0dXJuIFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25B
dHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7IH0KIApAQCAtNzEsNiArNzEsNyBAQCBwcm90ZWN0ZWQ6
CiBwcml2YXRlOgogICAgIFJlZjxTVkdBbmltYXRlZFJlY3Q+IG1fdmlld0JveDsKICAgICBSZWY8
U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBtX3ByZXNlcnZlQXNwZWN0UmF0aW87Cisg
ICAgU1ZHRWxlbWVudCogbV9jb250ZXh0RWxlbWVudCB7IG51bGxwdHIgfTsKICAgICBib29sIG1f
aXNWaWV3Qm94VmFsaWQgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xlbmd0aC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oCmluZGV4
IGVkNTAwMzgyYzVmZTgzODFkNDc3OTY4YjkwOTMwMGY2YmZjNGQ5MmQuLjYwYTViNTZlNTNiYWQw
YTBiYTAxM2E0NjQ2NTdiYTYxZmExOGU2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMZW5ndGguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgKQEAgLTYy
LDkgKzYyLDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5n
dGgodmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3JlYXRlKFNW
R1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIGNvbnN0IFNW
R0xlbmd0aFZhbHVlJiB2YWx1ZSA9IHsgfSkKKyAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3Jl
YXRlKERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlciwgY29uc3QgU1ZHTGVuZ3RoVmFs
dWUmIHZhbHVlID0geyB9KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
TGVuZ3RoKG93bmVyLCBhY2Nlc3MsIHZhbHVlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR0xlbmd0aChvYnNlcnZlciwgdmFsdWUpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPgpAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAKICAgICBFeGNlcHRpb25Pcjxm
bG9hdD4gdmFsdWVGb3JCaW5kaW5ncygpCiAgICAgewotICAgICAgICByZXR1cm4gbV92YWx1ZS52
YWx1ZUZvckJpbmRpbmdzKFNWR0xlbmd0aENvbnRleHQgeyBjb250ZXh0RWxlbWVudCgpIH0pOwor
ICAgICAgICByZXR1cm4gbV92YWx1ZS52YWx1ZUZvckJpbmRpbmdzKFNWR0xlbmd0aENvbnRleHQg
eyBzdmdDb250ZXh0RWxlbWVudCgpIH0pOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldFZhbHVlRm9yQmluZGluZ3MoZmxvYXQgdmFsdWUpCkBAIC05NSw3ICs5NSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0
ID0gbV92YWx1ZS5zZXRWYWx1ZShTVkdMZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9
LCB2YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gbV92YWx1ZS5zZXRWYWx1ZShTVkdMZW5n
dGhDb250ZXh0IHsgc3ZnQ29udGV4dEVsZW1lbnQoKSB9LCB2YWx1ZSk7CiAgICAgICAgIGlmIChy
ZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAg
ICAKQEAgLTE1Miw3ICsxNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmICh1bml0VHlwZSA9PSBT
VkdfTEVOR1RIVFlQRV9VTktOT1dOIHx8IHVuaXRUeXBlID4gU1ZHX0xFTkdUSFRZUEVfUEMpCiAg
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKIAotICAg
ICAgICBhdXRvIHJlc3VsdCA9IG1fdmFsdWUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMoU1ZHTGVu
Z3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSwgc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVHlw
ZT4odW5pdFR5cGUpKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSBtX3ZhbHVlLmNvbnZlcnRUb1Nw
ZWNpZmllZFVuaXRzKFNWR0xlbmd0aENvbnRleHQgeyBzdmdDb250ZXh0RWxlbWVudCgpIH0sIHN0
YXRpY19jYXN0PFNWR0xlbmd0aFR5cGU+KHVuaXRUeXBlKSk7CiAgICAgICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xlbmd0aExpc3QuaAppbmRleCA1ZWI1NzAxYzY3NDY4NzkyZDA1NjJjMTViNTIxNmI0OTJj
MDIxZWQ4Li4zMmQ1ODc0ZDI5MzcyNDZjNzA1MjEzOTEzYjE0ZjA0NTYzZmZkZTMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgKQEAgLTQwLDE0ICs0MCwxNCBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aExpc3QobGVuZ3RoTW9kZSkpOwogICAg
IH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoTGlzdD4gY3JlYXRlKFNWR1Byb3BlcnR5T3du
ZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIFNWR0xlbmd0aE1vZGUgbGVuZ3Ro
TW9kZSkKKyAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aExpc3Q+IGNyZWF0ZShET01MaXZlUHJvcGVy
dHlPYnNlcnZlciogb2JzZXJ2ZXIsIFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aExpc3Qob3duZXIsIGFjY2Vzcywg
bGVuZ3RoTW9kZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGhMaXN0
KG9ic2VydmVyLCBsZW5ndGhNb2RlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdMZW5n
dGhMaXN0PiBjcmVhdGUoY29uc3QgU1ZHTGVuZ3RoTGlzdCYgb3RoZXIsIFNWR1Byb3BlcnR5QWNj
ZXNzIGFjY2VzcykKKyAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aExpc3Q+IGNyZWF0ZShjb25zdCBT
VkdMZW5ndGhMaXN0JiBvdGhlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR0xlbmd0aExpc3Qob3RoZXIsIGFjY2VzcykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdMZW5ndGhMaXN0KG90aGVyKSk7CiAgICAgfQogCiAgICAgU1ZHTGVuZ3RoTW9kZSBs
ZW5ndGhNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9sZW5ndGhNb2RlOyB9CkBAIC04Niw3ICs4Niw3
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGlmIChidWlsZGVyLmxlbmd0aCgpKQogICAgICAgICAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGxlbmd0aC0+dmFsdWUoKS52YWx1ZUFzU3RyaW5nKCkpOworICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQobGVuZ3RoLT52YWx1ZUFzU3RyaW5nKCkpOwogICAgICAgICB9CiAKICAgICAgICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKQEAgLTk4LDE0ICs5OCwxNCBAQCBwcml2YXRlOgogICAg
IHsKICAgICB9CiAKLSAgICBTVkdMZW5ndGhMaXN0KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBT
VkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSkKLSAgICAg
ICAgOiBCYXNlKG93bmVyLCBhY2Nlc3MpCisgICAgU1ZHTGVuZ3RoTGlzdChET01MaXZlUHJvcGVy
dHlPYnNlcnZlciogb2JzZXJ2ZXIsIFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSkKKyAgICAgICAg
OiBCYXNlKG9ic2VydmVyKQogICAgICAgICAsIG1fbGVuZ3RoTW9kZShsZW5ndGhNb2RlKQogICAg
IHsKICAgICB9CiAKLSAgICBTVkdMZW5ndGhMaXN0KGNvbnN0IFNWR0xlbmd0aExpc3QmIG90aGVy
LCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCi0gICAgICAgIDogQmFzZShvdGhlciwgYWNjZXNz
KQorICAgIFNWR0xlbmd0aExpc3QoY29uc3QgU1ZHTGVuZ3RoTGlzdCYgb3RoZXIpCisgICAgICAg
IDogQmFzZShvdGhlcikKICAgICAgICAgLCBtX2xlbmd0aE1vZGUob3RoZXIubGVuZ3RoTW9kZSgp
KQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmgKaW5kZXggZDhjMzdkY2IyNmRiZTQ1
MThhYzkxZmQyZTFjNzVlOTQyYzFkMjI3Ni4uZjAwMzhjNGMwN2UwYWZjNWU3YjlmMmJiYmQ1ODBm
OGFkYWRhMjc5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaApAQCAtNDIsOSArNDIsOSBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR01hdHJpeCh2YWx1ZSkpOwogICAg
IH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHTWF0cml4PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciog
b3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcywgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB2
YWx1ZSA9IHsgfSkKKyAgICBzdGF0aWMgUmVmPFNWR01hdHJpeD4gY3JlYXRlKERPTUxpdmVQcm9w
ZXJ0eU9ic2VydmVyKiBvYnNlcnZlciwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB2YWx1ZSA9IHsg
fSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR01hdHJpeChvd25lciwg
YWNjZXNzLCB2YWx1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXgo
b2JzZXJ2ZXIsIHZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdOdW1iZXIuaAppbmRleCAyM2M4MmU0NGU2NzdkOGQzNjBjOTYxNTRjNzk1ZGFiODc3
NmExZmE0Li41OThhMGY1OTYxOTkyYTRiNzlmNzA4OWU0NDg5YjYzNTYzMjFlZGM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR051bWJlci5oCkBAIC00MCw5ICs0MCw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyKHZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJl
ZjxTVkdOdW1iZXI+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlB
Y2Nlc3MgYWNjZXNzLCBmbG9hdCB2YWx1ZSA9IDApCisgICAgc3RhdGljIFJlZjxTVkdOdW1iZXI+
IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIsIGZsb2F0IHZhbHVlID0g
MCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlcihvd25lciwg
YWNjZXNzLCB2YWx1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXIo
b2JzZXJ2ZXIsIHZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5oCmluZGV4IDViNWQ1N2U4NDZmNDMxYWFmNWMwOGRiYzlh
NGMzNGFiZTg0ZDZkMWYuLjY4MWI0ZGNlZjhjZWM5MzUxMWJlMDU5MjA1NGNmMDgxZTkwMzc3NTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuaApAQCAtNDAsMTQgKzQwLDE0IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyTGlzdCgpKTsKICAgICB9
CiAKLSAgICBzdGF0aWMgUmVmPFNWR051bWJlckxpc3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVy
KiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQorICAgIHN0YXRpYyBSZWY8U1ZHTnVt
YmVyTGlzdD4gY3JlYXRlKERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcikKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlckxpc3Qob3duZXIsIGFjY2Vz
cykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXJMaXN0KG9ic2VydmVy
KSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdOdW1iZXJMaXN0PiBjcmVhdGUoY29uc3Qg
U1ZHTnVtYmVyTGlzdCYgb3RoZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKKyAgICBzdGF0
aWMgUmVmPFNWR051bWJlckxpc3Q+IGNyZWF0ZShjb25zdCBTVkdOdW1iZXJMaXN0JiBvdGhlcikK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlckxpc3Qob3RoZXIs
IGFjY2VzcykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXJMaXN0KG90
aGVyKSk7CiAgICAgfQogCiAgICAgYm9vbCBwYXJzZShjb25zdCBTdHJpbmcmIHZhbHVlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAppbmRleCA5NGY2ZjM5ZTRlMWYxYjY3NDQzM2NhMjUw
MTUzODE4ZjRmNjJmZTQyLi5lNjZmOGEwYTdiMGMwMGU2YjY0NDAzYTUwM2NhZmIxNTQxMjE0MTU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaApAQCAtMzYsMTQgKzM2LDE0IEBAIGNs
YXNzIFNWR1BhdGhTZWdMaXN0IGZpbmFsIDogcHVibGljIFNWR1Byb3BlcnR5TGlzdDxTVkdQYXRo
U2VnPiB7CiAgICAgdXNpbmcgQmFzZTo6QmFzZTsKIAogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVy
dHlBY2Nlc3MgYWNjZXNzKQorICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShE
T01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTVkdQYXRoU2VnTGlzdChvd25lciwgYWNjZXNzKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdMaXN0KG9ic2VydmVyKSk7CiAgICAgfQogCi0g
ICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKGNvbnN0IFNWR1BhdGhTZWdMaXN0
JiBvdGhlciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQorICAgIHN0YXRpYyBSZWY8U1ZHUGF0
aFNlZ0xpc3Q+IGNyZWF0ZShjb25zdCBTVkdQYXRoU2VnTGlzdCYgb3RoZXIpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQYXRoU2VnTGlzdChvdGhlciwgYWNjZXNzKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdMaXN0KG90aGVyKSk7CiAg
ICAgfQogCiAgICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKFJlZjxTVkdQYXRo
U2VnPiYmIG5ld0l0ZW0pCkBAIC0xNTksOCArMTU5LDggQEAgcHVibGljOgogICAgIH0KIAogcHJp
dmF0ZToKLSAgICBTVkdQYXRoU2VnTGlzdChjb25zdCBTVkdQYXRoU2VnTGlzdCYgb3RoZXIsIFNW
R1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKLSAgICAgICAgOiBCYXNlKG90aGVyLm93bmVyKCksIGFj
Y2VzcykKKyAgICBTVkdQYXRoU2VnTGlzdChjb25zdCBTVkdQYXRoU2VnTGlzdCYgb3RoZXIpCisg
ICAgICAgIDogQmFzZShvdGhlci5vYnNlcnZlcigpKQogICAgICAgICAsIG1fcGF0aEJ5dGVTdHJl
YW0ob3RoZXIucGF0aEJ5dGVTdHJlYW0oKSkKICAgICB7CiAgICAgfQpAQCAtMTcyLDcgKzE3Miw3
IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgLy8gQ2FsbGVkIHdoZW4gY2hhbmdpbmcgYW4gaXRl
bSBpbiB0aGUgbGlzdC4KLSAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5
KiBwcm9wZXJ0eSkgb3ZlcnJpZGUKKyAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKERPTUxp
dmVQcm9wZXJ0eSogcHJvcGVydHkpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBpdGVtc1dpbGxD
aGFuZ2UoKTsKICAgICAgICAgQmFzZTo6Y29tbWl0UHJvcGVydHlDaGFuZ2UocHJvcGVydHkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5oCmluZGV4IDhjNmM1MGIwZTNiYWNlNTM2YWU1MGViYjI4
YzFiNDZlMTU3NDllODEuLjg4YTE4OTMzODcxZmQyZDQyOTM4ZDY1NDlkMDE5ZDE1MGJlN2IzNTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmgKQEAgLTQwLDE0ICs0MCwxNCBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BvaW50TGlzdCgpKTsKICAgICB9CiAK
LSAgICBzdGF0aWMgUmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93
bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCisgICAgc3RhdGljIFJlZjxTVkdQb2ludExp
c3Q+IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludExpc3Qob3duZXIsIGFjY2VzcykpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludExpc3Qob2JzZXJ2ZXIpKTsKICAg
ICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKGNvbnN0IFNWR1BvaW50
TGlzdCYgb3RoZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKKyAgICBzdGF0aWMgUmVmPFNW
R1BvaW50TGlzdD4gY3JlYXRlKGNvbnN0IFNWR1BvaW50TGlzdCYgb3RoZXIpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludExpc3Qob3RoZXIsIGFjY2VzcykpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludExpc3Qob3RoZXIpKTsKICAgICB9
CiAKICAgICBib29sIHBhcnNlKGNvbnN0IFN0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaAppbmRleCAyNzE3YWJlYmUxMDE5YWFhMGYzYWY3
NjFlYjM1MWY5MTdiNzhhZGQ2Li44MzU0OTNlNzk0YzFlOGYyNWQ4OTQ3YjM4ZGRhMjRjNjA5YmY0
NmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRp
by5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgKQEAg
LTM2LDkgKzM2LDkgQEAgY2xhc3MgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyA6IHB1YmxpYyBTVkdW
YWx1ZVByb3BlcnR5PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWwKICAgICB1c2luZyBCYXNlOjpt
X3ZhbHVlOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2Vz
cywgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB2YWx1ZSA9IHsgfSkKKyAgICBz
dGF0aWMgUmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+IGNyZWF0ZShET01MaXZlUHJvcGVydHlP
YnNlcnZlciogb2JzZXJ2ZXIsIGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgdmFs
dWUgPSB7IH0pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvKG93bmVyLCBhY2Nlc3MsIHZhbHVlKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8ob2JzZXJ2ZXIsIHZhbHVlKSk7CiAgICAg
fQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaAppbmRleCA0MTViODcyM2Y4ZDMwODY0YzFiM2Zk
Nzg4Y2MzYjk4OWJhZDdlZjljLi41OWM4MzcxMjNmMjFkYjI2MWZmZTc4MTY5YWQwODJiMmEzZjZl
OThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZS5oCkBAIC03NiwxMSArNzYsNCBAQCBwcml2YXRlOgogICAgIGJvb2wgcGFyc2VJbnRlcm5h
bChjb25zdCBVQ2hhciomIGN1cnJQYXJhbSwgY29uc3QgVUNoYXIqIGVuZCwgYm9vbCB2YWxpZGF0
ZSk7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvVmFsdWU+IHsKLSAgICBzdGF0aWMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSgp
OyB9Ci0gICAgc3RhdGljIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSBmcm9tU3RyaW5nKGNv
bnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUo
c3RyaW5nKTsgfQotICAgIHN0YXRpYyBPcHRpb25hbDxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFs
dWU+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmKSB7IEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOyByZXR1cm4gaW5pdGlhbFZhbHVlKCk7IH0KLSAgICBzdGF0aWMgU3RyaW5n
IHRvU3RyaW5nKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgdHlwZSkgeyByZXR1
cm4gdHlwZS52YWx1ZUFzU3RyaW5nKCk7IH0KLX07Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUmVjdC5oCmluZGV4IDkwMDE4ZTE4NmIxOTJhYzNiZTZmMDU1MGRmODExNjI3ZmJk
N2U5ZjIuLmJhZTc3YmZlZjAyMTk1MTNlZWYwMDk5NjliMzNjMmZhZGNmMzkzZjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1JlY3QuaApAQCAtMzYsOSArMzYsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR1JlY3QodmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1Jl
Y3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNj
ZXNzLCBjb25zdCBGbG9hdFJlY3QmIHZhbHVlID0geyB9KQorICAgIHN0YXRpYyBSZWY8U1ZHUmVj
dD4gY3JlYXRlKERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlciwgY29uc3QgRmxvYXRS
ZWN0JiB2YWx1ZSA9IHsgfSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNW
R1JlY3Qob3duZXIsIGFjY2VzcywgdmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHUmVjdChvYnNlcnZlciwgdmFsdWUpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmgKaW5kZXggM2IzNzY1YzVkOWUwNzQ2
OTAwYTJkNzc5NzlmZmRmNThiNDNhZGQzNS4uMTExZjA2N2U2OTI2NjdiMDZmMmM4ZGE4ZmFiMjc3
ZDI3ZWEyN2I3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5oCkBAIC0zNyw5ICszNyw5
IEBAIGNsYXNzIFNWR1N0cmluZ0xpc3QgZmluYWwgOiBwdWJsaWMgU1ZHUHJpbWl0aXZlTGlzdDxT
dHJpbmc+IHsKICAgICB1c2luZyBCYXNlOjptX2l0ZW1zOwogCiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIpCisgICAg
c3RhdGljIFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIq
IG9ic2VydmVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHU3RyaW5n
TGlzdChvd25lcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdTdHJpbmdMaXN0
KG9ic2VydmVyKSk7CiAgICAgfQogCiAgICAgdm9pZCByZXNldChjb25zdCBTdHJpbmcmIHN0cmlu
ZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uaAppbmRleCA2YTI5YzcyY2YzZTdmMzEzZjcwOTY1
N2E0MDEyNDgxYzIyM2I4ZGNkLi4zM2RiNjhmNDI5YWE3ZmEzZmVlYWRjMjI5Y2QxOTY4NDVlNmZj
YmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5oCkBAIC0zMSw3ICszMSw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU1ZHVHJhbnNmb3JtIDogcHVibGljIFNWR1ZhbHVl
UHJvcGVydHk8U1ZHVHJhbnNmb3JtVmFsdWU+LCBwdWJsaWMgU1ZHUHJvcGVydHlPd25lciB7Citj
bGFzcyBTVkdUcmFuc2Zvcm0gOiBwdWJsaWMgU1ZHVmFsdWVQcm9wZXJ0eTxTVkdUcmFuc2Zvcm1W
YWx1ZT4sIHB1YmxpYyBET01MaXZlUHJvcGVydHlPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZjxTVkdUcmFuc2Zvcm0+IGNyZWF0ZShTVkdUcmFuc2Zvcm1WYWx1ZTo6U1ZHVHJhbnNm
b3JtVHlwZSB0eXBlKQogICAgIHsKQEAgLTEzNCwxNyArMTM0LDE3IEBAIHByaXZhdGU6CiAgICAg
dXNpbmcgQmFzZSA9IFNWR1ZhbHVlUHJvcGVydHk8U1ZHVHJhbnNmb3JtVmFsdWU+OwogCiAgICAg
U1ZHVHJhbnNmb3JtKFNWR1RyYW5zZm9ybVZhbHVlOjpTVkdUcmFuc2Zvcm1UeXBlIHR5cGUsIGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtID0geyB9LCBmbG9hdCBhbmdsZSA9IDAsIGNv
bnN0IEZsb2F0UG9pbnQmIHJvdGF0aW9uQ2VudGVyID0geyB9KQotICAgICAgICA6IEJhc2UoU1ZH
VHJhbnNmb3JtVmFsdWUodHlwZSwgU1ZHTWF0cml4OjpjcmVhdGUodGhpcywgU1ZHUHJvcGVydHlB
Y2Nlc3M6OlJlYWRXcml0ZSwgdHJhbnNmb3JtKSwgYW5nbGUsIHJvdGF0aW9uQ2VudGVyKSkKKyAg
ICAgICAgOiBCYXNlKFNWR1RyYW5zZm9ybVZhbHVlKHR5cGUsIFNWR01hdHJpeDo6Y3JlYXRlKHRo
aXMsIHRyYW5zZm9ybSksIGFuZ2xlLCByb3RhdGlvbkNlbnRlcikpCiAgICAgewogICAgIH0KIAot
ICAgIFNWR1Byb3BlcnR5T3duZXIqIG93bmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9v
d25lcjsgfQorICAgIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fb2JzZXJ2ZXI7IH0KIAotICAgIHZvaWQgY29tbWl0UHJvcGVydHlD
aGFuZ2UoU1ZHUHJvcGVydHkqIHByb3BlcnR5KSBvdmVycmlkZQorICAgIHZvaWQgY29tbWl0UHJv
cGVydHlDaGFuZ2UoRE9NTGl2ZVByb3BlcnR5KiBwcm9wZXJ0eSkgb3ZlcnJpZGUKICAgICB7CiAg
ICAgICAgIEFTU0VSVF9VTlVTRUQocHJvcGVydHksIHByb3BlcnR5ID09IG1fdmFsdWUubWF0cml4
KCkucHRyKCkpOwotICAgICAgICBpZiAob3duZXIoKSkKLSAgICAgICAgICAgIG93bmVyKCktPmNv
bW1pdFByb3BlcnR5Q2hhbmdlKHRoaXMpOworICAgICAgICBpZiAob2JzZXJ2ZXIoKSkKKyAgICAg
ICAgICAgIG9ic2VydmVyKCktPmNvbW1pdFByb3BlcnR5Q2hhbmdlKHRoaXMpOwogICAgICAgICBt
X3ZhbHVlLm1hdHJpeERpZENoYW5nZSgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFu
c2Zvcm1MaXN0LmgKaW5kZXggNTQ0ZDYwYjJlNjM1YzFjMjA5OTM0ZWU0MzVjZjQxMjVlNmE3MWYy
Yi4uZTYwNDVlZDI1NjIzMjFlOTE0MTY0YTBmYjIwNDk3NDg3MTA1ZTIyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oCkBAIC0zOCwxNCArMzgsMTQgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdUcmFuc2Zvcm1MaXN0KCkpOwogICAgIH0KIAot
ICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtTGlzdD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIq
IG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCisgICAgc3RhdGljIFJlZjxTVkdUcmFu
c2Zvcm1MaXN0PiBjcmVhdGUoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtTGlzdChvd25lciwg
YWNjZXNzKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RyYW5zZm9ybUxpc3Qo
b2JzZXJ2ZXIpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybUxpc3Q+IGNy
ZWF0ZShjb25zdCBTVkdUcmFuc2Zvcm1MaXN0JiBvdGhlciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNj
ZXNzKQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtTGlzdD4gY3JlYXRlKGNvbnN0IFNWR1Ry
YW5zZm9ybUxpc3QmIG90aGVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U1ZHVHJhbnNmb3JtTGlzdChvdGhlciwgYWNjZXNzKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR1RyYW5zZm9ybUxpc3Qob3RoZXIpKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25P
cjxSZWY8U1ZHVHJhbnNmb3JtPj4gY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChjb25zdCBS
ZWY8U1ZHTWF0cml4PiYgbWF0cml4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1ZpZXdTcGVjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKaW5kZXgg
OGY0MjM1MTZiNWJkYmM1Mjg3Y2RhNDRhZGY0OWZjNjE4ZGRjMzJlYy4uNTNjYzE1ZGM5MGU3N2Nh
OTEyNGY2Y2FmYTI4ZGExYWM1MDU5Y2FkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1ZpZXdTcGVjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3Bw
CkBAIC0zMiw5ICszMiw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNWR1ZpZXdTcGVjOjpT
VkdWaWV3U3BlYyhTVkdFbGVtZW50JiBjb250ZXh0RWxlbWVudCkKLSAgICA6IFNWR0ZpdFRvVmll
d0JveCgmY29udGV4dEVsZW1lbnQsIFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkT25seSkKKyAgICA6
IFNWR0ZpdFRvVmlld0JveCgmY29udGV4dEVsZW1lbnQpCiAgICAgLCBtX2NvbnRleHRFbGVtZW50
KG1ha2VXZWFrUHRyKGNvbnRleHRFbGVtZW50KSkKLSAgICAsIG1fdHJhbnNmb3JtKFNWR1RyYW5z
Zm9ybUxpc3Q6OmNyZWF0ZSgmY29udGV4dEVsZW1lbnQsIFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFk
T25seSkpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6
Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVmlld1NwZWMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCmluZGV4IDJl
N2VmOTc4NmMxYTg4NmZkMjVhY2ZlYTAzN2ZjODUwZDc5ZGU1MjAuLjZlZmMwOWY5ODNjMmM0M2M2
YTNkODU1YjAyZDM0MjIyMDAzODIxYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdWaWV3U3BlYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCkBAIC01
NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAKICAgICBXZWFrUHRyPFNWR0VsZW1lbnQ+IG1fY29udGV4
dEVsZW1lbnQ7CiAgICAgU3RyaW5nIG1fdmlld1RhcmdldFN0cmluZzsKLSAgICBSZWY8U1ZHVHJh
bnNmb3JtTGlzdD4gbV90cmFuc2Zvcm07CisgICAgUmVmPFNWR1RyYW5zZm9ybUxpc3Q+IG1fdHJh
bnNmb3JtIHsgU1ZHVHJhbnNmb3JtTGlzdDo6Y3JlYXRlKCkgfTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkRGVjb3JhdGVkUHJvcGVydHkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkRGVjb3JhdGVkUHJvcGVydHkuaAppbmRleCBjZWJhYTM2M2JmNTI3YmJi
MzhlNTY3ZDNlM2Q0MmJmODQzMTAyYTc1Li42ZGE5ZDQ0OWVjY2NmMTlmMDllY2ZhYWZjYTVhNThi
OWM3ODQxZDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZERlY29yYXRlZFByb3BlcnR5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWREZWNvcmF0ZWRQcm9wZXJ0eS5oCkBAIC05NywxNSArOTcsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiAgICAgLy8gTWFuYWdpbmcgdGhlIHJlbGF0aW9uc2hpcCB3aXRoIHRo
ZSBvd25lci4KLSAgICB2b2lkIHNldERpcnR5KCkgb3ZlcnJpZGUgeyBtX3N0YXRlID0gU1ZHUHJv
cGVydHlTdGF0ZTo6RGlydHk7IH0KLSAgICBib29sIGlzRGlydHkoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBtX3N0YXRlID09IFNWR1Byb3BlcnR5U3RhdGU6OkRpcnR5OyB9Ci0gICAgT3B0aW9u
YWw8U3RyaW5nPiBzeW5jaHJvbml6ZSgpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBpZiAobV9z
dGF0ZSA9PSBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbikKLSAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7Ci0gICAgICAgIG1fc3RhdGUgPSBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbjsKLSAg
ICAgICAgcmV0dXJuIGJhc2VWYWxBc1N0cmluZygpOwotICAgIH0KKyAgICBTdHJpbmcgdmFsdWVB
c1N0cmluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJhc2VWYWxBc1N0cmluZygpOyB9CiAK
ICAgICAvLyBVc2VkIGJ5IFJlbmRlclNWR0VsZW1lbnRzIGFuZCBEdW1wUmVuZGVyVHJlZS4KICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CkBAIC0xMzMsNyArMTI1LDYgQEAgcHVi
bGljOgogcHJvdGVjdGVkOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdEZWNvcmF0ZWRQcm9wZXJ0
eTxEZWNvcmF0aW9uVHlwZT4+IG1fYmFzZVZhbDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHRGVj
b3JhdGVkUHJvcGVydHk8RGVjb3JhdGlvblR5cGU+PiBtX2FuaW1WYWw7Ci0gICAgU1ZHUHJvcGVy
dHlTdGF0ZSBtX3N0YXRlIHsgU1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW4gfTsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJpbWl0
aXZlUHJvcGVydHkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVk
UHJpbWl0aXZlUHJvcGVydHkuaAppbmRleCBlMTRmNjc5ZjMzNjNkZGM1YThmNDFjMDM1ZmRmNzM0
ZWJjYjk2NjYxLi5kNDQ4MGY3NGEyZTM5NmQxOGE5MzdkZjc4OTMwZjNkNWZiZmIxMThkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByaW1pdGl2
ZVByb3BlcnR5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRQcmltaXRpdmVQcm9wZXJ0eS5oCkBAIC04Nyw5ICs4Nyw3IEBAIHB1YmxpYzoKICAgICB9CiAK
ICAgICAvLyBNYW5hZ2luZyB0aGUgcmVsYXRpb25zaGlwIHdpdGggdGhlIG93bmVyLgotICAgIHZv
aWQgc2V0RGlydHkoKSBvdmVycmlkZSB7IG1fYmFzZVZhbC0+c2V0RGlydHkoKTsgfQotICAgIGJv
b2wgaXNEaXJ0eSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYmFzZVZhbC0+aXNEaXJ0eSgp
OyB9Ci0gICAgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZSgpIG92ZXJyaWRlIHsgcmV0dXJu
IG1fYmFzZVZhbC0+c3luY2hyb25pemUoKTsgfQorICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYmFzZVZhbEFzU3RyaW5nKCk7IH0KIAogICAgIC8vIFVz
ZWQgYnkgUmVuZGVyU1ZHRWxlbWVudHMgYW5kIER1bXBSZW5kZXJUcmVlLgogICAgIGNvbnN0IFBy
b3BlcnR5VHlwZSYgY3VycmVudFZhbHVlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAKaW5kZXggZWMyZjNhNDg3
ZjgzMGYxYzcyNmQwZjZiZTRjOTQyMmVjOGYzMDFlOC4uZWRhNWM4NGMzNWZiYzdiZDI1NGQxYWRl
MmZiMjU4MTY2NTgzZGMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAKQEAgLTMwLDEyICszMCwxMiBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVNWR1Byb3BlcnR5T3duZXIqIFNWR0FuaW1hdGVkUHJvcGVydHk6
Om93bmVyKCkgY29uc3QKK0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBTVkdBbmltYXRlZFByb3Bl
cnR5OjpvYnNlcnZlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY29udGV4dEVsZW1lbnQ7CiB9
CiAKLXZvaWQgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6Y29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJv
cGVydHkqKQordm9pZCBTVkdBbmltYXRlZFByb3BlcnR5Ojpjb21taXRQcm9wZXJ0eUNoYW5nZShE
T01MaXZlUHJvcGVydHkqKQogewogICAgIGlmICghbV9jb250ZXh0RWxlbWVudCkKICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRQcm9wZXJ0eS5oCmluZGV4IGM2ZjkzMmU2ZGY2OWNjZWZhZmM5NjVlMzJjZDU2NjIwYTFmYzMz
NjQuLmExMDQxZTYwNTI5ZGExZmQyMzE4NjBlMjYwYjcxY2NmYjcwYzRhOWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmgKQEAg
LTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eU93
bmVyLmgiCisjaW5jbHVkZSAiRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDx3
dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgCiBjbGFzcyBTVkdFbGVtZW50OwogCi1jbGFzcyBTVkdBbmltYXRlZFByb3BlcnR5IDog
cHVibGljIFJlZkNvdW50ZWQ8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4sIHB1YmxpYyBTVkdQcm9wZXJ0
eU93bmVyIHsKK2NsYXNzIFNWR0FuaW1hdGVkUHJvcGVydHkgOiBwdWJsaWMgUmVmQ291bnRlZDxT
VkdBbmltYXRlZFByb3BlcnR5PiwgcHVibGljIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyIHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZFByb3BlcnR5KCkgPSBkZWZhdWx0OwogICAg
IApAQCAtNDcsOSArNDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgYW5pbVZhbEFz
U3RyaW5nKCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQogICAgIAogICAgIC8vIENv
bnRyb2wgdGhlIHN5bmNocm9uaXphdGlvbiBiZXR3ZWVuIHRoZSBhdHRyaWJ1dGUgYW5kIGl0cyBy
ZWZsZWN0aW9uIGluIGJhc2VWYWwuCi0gICAgdmlydHVhbCBib29sIGlzRGlydHkoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXREaXJ0eSgpIHsgfQotICAgIHZp
cnR1YWwgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZSgpIHsgcmV0dXJuIFdURjo6bnVsbG9w
dDsgfQorICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdCB7IHJldHVybiBl
bXB0eVN0cmluZygpOyB9CiAgICAgCiAgICAgLy8gQ29udHJvbCB0aGUgYW5pbWF0aW9uIGxpZmUg
Y3ljbGUuCiAgICAgYm9vbCBpc0FuaW1hdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNBbmltYXRp
bmc7IH0KQEAgLTY2LDggKzY0LDggQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICB9CiAgICAgCi0g
ICAgU1ZHUHJvcGVydHlPd25lciogb3duZXIoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGNv
bW1pdFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5Kikgb3ZlcnJpZGU7CisgICAgRE9NTGl2ZVBy
b3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21t
aXRQcm9wZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqKSBvdmVycmlkZTsKICAgICAKICAgICBT
VkdFbGVtZW50KiBtX2NvbnRleHRFbGVtZW50IHsgbnVsbHB0ciB9OwogICAgIGJvb2wgbV9pc0Fu
aW1hdGluZyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdBbmltYXRlZFByb3BlcnR5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuaAppbmRleCBmNDI1NWQ3ZjZlNzViMTRhY2E4
OGE4ODBiZmYzNmU2NTYzODNmNzE2Li5hZDIxYTk4MDZjNTRhZmMwNmVjYWE1YTcxMzI1Y2RiMjMx
M2NhZjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZFByb3BlcnR5TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkUHJvcGVydHlMaXN0LmgKQEAgLTY4LDkgKzY4LDcgQEAgcHVibGljOgogICAgIH0K
IAogICAgIC8vIE1hbmFnaW5nIHRoZSByZWxhdGlvbnNoaXAgd2l0aCB0aGUgb3duZXIuCi0gICAg
dm9pZCBzZXREaXJ0eSgpIG92ZXJyaWRlIHsgbV9iYXNlVmFsLT5zZXREaXJ0eSgpOyB9Ci0gICAg
Ym9vbCBpc0RpcnR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9iYXNlVmFsLT5pc0RpcnR5
KCk7IH0KLSAgICBPcHRpb25hbDxTdHJpbmc+IHN5bmNocm9uaXplKCkgb3ZlcnJpZGUgeyByZXR1
cm4gbV9iYXNlVmFsLT5zeW5jaHJvbml6ZSgpOyB9CisgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmco
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBiYXNlVmFsQXNTdHJpbmcoKTsgfQogCiAgICAgLy8g
VXNlZCBieSBSZW5kZXJTVkdFbGVtZW50cyBhbmQgRHVtcFJlbmRlclRyZWUuCiAgICAgY29uc3Qg
TGlzdFR5cGUmIGN1cnJlbnRWYWx1ZSgpIGNvbnN0CkBAIC0xMTcsMTkgKzExNSwyNCBAQCBwcm90
ZWN0ZWQ6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIFNWR0FuaW1h
dGVkUHJvcGVydHlMaXN0KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBBcmd1bWVudHMmJi4u
LiBhcmd1bWVudHMpCiAgICAgICAgIDogU1ZHQW5pbWF0ZWRQcm9wZXJ0eShjb250ZXh0RWxlbWVu
dCkKLSAgICAgICAgLCBtX2Jhc2VWYWwoTGlzdFR5cGU6OmNyZWF0ZSh0aGlzLCBTVkdQcm9wZXJ0
eUFjY2Vzczo6UmVhZFdyaXRlLCBzdGQ6OmZvcndhcmQ8QXJndW1lbnRzPihhcmd1bWVudHMpLi4u
KSkKKyAgICAgICAgLCBtX2Jhc2VWYWwoTGlzdFR5cGU6OmNyZWF0ZSh0aGlzLCBzdGQ6OmZvcndh
cmQ8QXJndW1lbnRzPihhcmd1bWVudHMpLi4uKSkKICAgICB7CiAgICAgfQogCiAgICAgUmVmUHRy
PExpc3RUeXBlPiYgZW5zdXJlQW5pbVZhbCgpCiAgICAgewogICAgICAgICBpZiAoIW1fYW5pbVZh
bCkKLSAgICAgICAgICAgIG1fYW5pbVZhbCA9IExpc3RUeXBlOjpjcmVhdGUobV9iYXNlVmFsLCBT
VkdQcm9wZXJ0eUFjY2Vzczo6UmVhZE9ubHkpOworICAgICAgICAgICAgbV9hbmltVmFsID0gTGlz
dFR5cGU6OmNyZWF0ZShtX2Jhc2VWYWwuZ2V0KCkpOwogICAgICAgICByZXR1cm4gbV9hbmltVmFs
OwogICAgIH0KIAorICAgIGJvb2wgaXNQcm9wZXJ0eVJlYWRPbmx5KGNvbnN0IERPTUxpdmVQcm9w
ZXJ0eSYgcHJvcGVydHkpIGNvbnN0IG92ZXJyaWRlCisgICAgeworICAgICAgICByZXR1cm4gbV9h
bmltVmFsID09ICZwcm9wZXJ0eTsKKyAgICB9CisKICAgICAvLyBDYWxsZWQgd2hlbiBtX2Jhc2VW
YWwgY2hhbmdlcyBvciBhbiBpdGVtIGluIG1fYmFzZVZhbCBjaGFuZ2VzLgotICAgIHZvaWQgY29t
bWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJvcGVydHkqIHByb3BlcnR5KSBvdmVycmlkZQorICAgIHZv
aWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoRE9NTGl2ZVByb3BlcnR5KiBwcm9wZXJ0eSkgb3ZlcnJp
ZGUKICAgICB7CiAgICAgICAgIGlmIChtX2FuaW1WYWwpCiAgICAgICAgICAgICAqbV9hbmltVmFs
ID0gbV9iYXNlVmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3NvckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlQYWlyQWNjZXNzb3JJbXBsLmgKaW5kZXgg
NGEyNjlmYTVhOGYyN2NkMzM1NWU4MzQwNmZhNTM4NTNkOTUyODljNS4uMzUwYmMwODhlYjQ1YTk2
MDk4ZWE5MjQ3YTM3NTg1ODI4ZWUxMzUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3NvckltcGwuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5UGFpckFjY2Vz
c29ySW1wbC5oCkBAIC00NiwxNyArNDYsMTEgQEAgcHVibGljOgogICAgIGNvbnN0ZXhwciBzdGF0
aWMgY29uc3QgU1ZHTWVtYmVyQWNjZXNzb3I8T3duZXJUeXBlPiYgc2luZ2xldG9uKCkgeyByZXR1
cm4gQmFzZTo6dGVtcGxhdGUgc2luZ2xldG9uPFNWR0FuaW1hdGVkQW5nbGVPcmllbnRBY2Nlc3Nv
ciwgcHJvcGVydHkxLCBwcm9wZXJ0eTI+KCk7IH0KIAogcHJpdmF0ZToKLSAgICBPcHRpb25hbDxT
dHJpbmc+IHN5bmNocm9uaXplKGNvbnN0IE93bmVyVHlwZSYgb3duZXIpIGNvbnN0IGZpbmFsCisg
ICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoY29uc3QgT3duZXJUeXBlJiBvd25lcikgY29uc3QgZmlu
YWwKICAgICB7Ci0gICAgICAgIGJvb2wgZGlydHkxID0gcHJvcGVydHkxKG93bmVyKS0+aXNEaXJ0
eSgpOwotICAgICAgICBib29sIGRpcnR5MiA9IHByb3BlcnR5Mihvd25lciktPmlzRGlydHkoKTsK
LSAgICAgICAgaWYgKCEoZGlydHkxIHx8IGRpcnR5MikpCi0gICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwotCiAgICAgICAgIGF1dG8gdHlwZSA9IHByb3BlcnR5Mihvd25lciktPmJhc2VW
YWwoKTsKLQotICAgICAgICBTdHJpbmcgc3RyaW5nMSA9IGRpcnR5MSA/ICpwcm9wZXJ0eTEob3du
ZXIpLT5zeW5jaHJvbml6ZSgpIDogcHJvcGVydHkxKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5nKCk7
Ci0gICAgICAgIFN0cmluZyBzdHJpbmcyID0gZGlydHkyID8gKnByb3BlcnR5Mihvd25lciktPnN5
bmNocm9uaXplKCkgOiBwcm9wZXJ0eTIob3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsKKyAgICAg
ICAgU3RyaW5nIHN0cmluZzEgPSBwcm9wZXJ0eTEob3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsK
KyAgICAgICAgU3RyaW5nIHN0cmluZzIgPSBwcm9wZXJ0eTIob3duZXIpLT5iYXNlVmFsQXNTdHJp
bmcoKTsKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gU1ZHTWFya2VyT3JpZW50QXV0byB8fCB0eXBl
ID09IFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVyc2UgPyBzdHJpbmcyIDogc3RyaW5nMTsK
ICAgICB9CiAKQEAgLTgzLDE1ICs3NywxMCBAQCBwdWJsaWM6CiAgICAgY29uc3RleHByIHN0YXRp
YyBjb25zdCBTVkdNZW1iZXJBY2Nlc3NvcjxPd25lclR5cGU+JiBzaW5nbGV0b24oKSB7IHJldHVy
biBCYXNlOjp0ZW1wbGF0ZSBzaW5nbGV0b248U1ZHQW5pbWF0ZWRJbnRlZ2VyUGFpckFjY2Vzc29y
LCBwcm9wZXJ0eTEsIHByb3BlcnR5Mj4oKTsgfQogCiBwcml2YXRlOgotICAgIE9wdGlvbmFsPFN0
cmluZz4gc3luY2hyb25pemUoY29uc3QgT3duZXJUeXBlJiBvd25lcikgY29uc3QgZmluYWwKKyAg
ICBTdHJpbmcgdmFsdWVBc1N0cmluZyhjb25zdCBPd25lclR5cGUmIG93bmVyKSBjb25zdCBmaW5h
bAogICAgIHsKLSAgICAgICAgYm9vbCBkaXJ0eTEgPSBwcm9wZXJ0eTEob3duZXIpLT5pc0RpcnR5
KCk7Ci0gICAgICAgIGJvb2wgZGlydHkyID0gcHJvcGVydHkyKG93bmVyKS0+aXNEaXJ0eSgpOwot
ICAgICAgICBpZiAoIShkaXJ0eTEgfHwgZGlydHkyKSkKLSAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7Ci0KLSAgICAgICAgU3RyaW5nIHN0cmluZzEgPSBkaXJ0eTEgPyAqcHJvcGVydHkx
KG93bmVyKS0+c3luY2hyb25pemUoKSA6IHByb3BlcnR5MShvd25lciktPmJhc2VWYWxBc1N0cmlu
ZygpOwotICAgICAgICBTdHJpbmcgc3RyaW5nMiA9IGRpcnR5MiA/ICpwcm9wZXJ0eTIob3duZXIp
LT5zeW5jaHJvbml6ZSgpIDogcHJvcGVydHkyKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5nKCk7Cisg
ICAgICAgIFN0cmluZyBzdHJpbmcxID0gcHJvcGVydHkxKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5n
KCk7CisgICAgICAgIFN0cmluZyBzdHJpbmcyID0gcHJvcGVydHkyKG93bmVyKS0+YmFzZVZhbEFz
U3RyaW5nKCk7CiAgICAgICAgIHJldHVybiBzdHJpbmcxID09IHN0cmluZzIgPyBzdHJpbmcxIDog
c3RyaW5nMSArICIsICIgKyBzdHJpbmcyOwogICAgIH0KIApAQCAtMTE0LDE5ICsxMDMsMTQgQEAg
Y2xhc3MgU1ZHQW5pbWF0ZWROdW1iZXJQYWlyQWNjZXNzb3IgZmluYWwgOiBwdWJsaWMgU1ZHQW5p
bWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3MKIAogcHVibGljOgogICAgIHVzaW5nIEJhc2U6OkJhc2U7
Ci0gICAgdGVtcGxhdGU8UmVmPFNWR0FuaW1hdGVkTnVtYmVyPiBPd25lclR5cGU6Oipwcm9wZXJ0
eTEsIFJlZjxTVkdBbmltYXRlZE51bWJlcj4gT3duZXJUeXBlOjoqcHJvcGVydHkyID4KKyAgICB0
ZW1wbGF0ZTxSZWY8U1ZHQW5pbWF0ZWROdW1iZXI+IE93bmVyVHlwZTo6KnByb3BlcnR5MSwgUmVm
PFNWR0FuaW1hdGVkTnVtYmVyPiBPd25lclR5cGU6Oipwcm9wZXJ0eTI+CiAgICAgY29uc3RleHBy
IHN0YXRpYyBjb25zdCBTVkdNZW1iZXJBY2Nlc3NvcjxPd25lclR5cGU+JiBzaW5nbGV0b24oKSB7
IHJldHVybiBCYXNlOjp0ZW1wbGF0ZSBzaW5nbGV0b248U1ZHQW5pbWF0ZWROdW1iZXJQYWlyQWNj
ZXNzb3IsIHByb3BlcnR5MSwgcHJvcGVydHkyPigpOyB9CiAKIHByaXZhdGU6Ci0gICAgT3B0aW9u
YWw8U3RyaW5nPiBzeW5jaHJvbml6ZShjb25zdCBPd25lclR5cGUmIG93bmVyKSBjb25zdCBmaW5h
bAorICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKGNvbnN0IE93bmVyVHlwZSYgb3duZXIpIGNvbnN0
IGZpbmFsCiAgICAgewotICAgICAgICBib29sIGRpcnR5MSA9IHByb3BlcnR5MShvd25lciktPmlz
RGlydHkoKTsKLSAgICAgICAgYm9vbCBkaXJ0eTIgPSBwcm9wZXJ0eTIob3duZXIpLT5pc0RpcnR5
KCk7Ci0gICAgICAgIGlmICghKGRpcnR5MSB8fCBkaXJ0eTIpKQotICAgICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKLQotICAgICAgICBTdHJpbmcgc3RyaW5nMSA9IGRpcnR5MSA/ICpwcm9w
ZXJ0eTEob3duZXIpLT5zeW5jaHJvbml6ZSgpIDogcHJvcGVydHkxKG93bmVyKS0+YmFzZVZhbEFz
U3RyaW5nKCk7Ci0gICAgICAgIFN0cmluZyBzdHJpbmcyID0gZGlydHkyID8gKnByb3BlcnR5Mihv
d25lciktPnN5bmNocm9uaXplKCkgOiBwcm9wZXJ0eTIob3duZXIpLT5iYXNlVmFsQXNTdHJpbmco
KTsKKyAgICAgICAgU3RyaW5nIHN0cmluZzEgPSBwcm9wZXJ0eTEob3duZXIpLT5iYXNlVmFsQXNT
dHJpbmcoKTsKKyAgICAgICAgU3RyaW5nIHN0cmluZzIgPSBwcm9wZXJ0eTIob3duZXIpLT5iYXNl
VmFsQXNTdHJpbmcoKTsKICAgICAgICAgcmV0dXJuIHN0cmluZzEgPT0gc3RyaW5nMiA/IHN0cmlu
ZzEgOiBzdHJpbmcxICsgIiwgIiArIHN0cmluZzI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFZhbHVlUHJvcGVydHkuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oCmlu
ZGV4IGRmZGIxNzFhMGNiODNmYzc1OTYwNTllNzYwNGE3ZmQ4OTM1MWY1MjUuLjdmOTY1MjVhYjkz
YjY0Y2YzN2NjYTUyYWY0N2RmYjRlNmMwMWFmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oCkBAIC04NCw5
ICs4NCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBNYW5hZ2luZyB0aGUgcmVsYXRpb25z
aGlwIHdpdGggdGhlIG93bmVyLgotICAgIHZvaWQgc2V0RGlydHkoKSBvdmVycmlkZSB7IG1fYmFz
ZVZhbC0+c2V0RGlydHkoKTsgfQotICAgIGJvb2wgaXNEaXJ0eSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG1fYmFzZVZhbC0+aXNEaXJ0eSgpOyB9Ci0gICAgT3B0aW9uYWw8U3RyaW5nPiBzeW5j
aHJvbml6ZSgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fYmFzZVZhbC0+c3luY2hyb25pemUoKTsgfQor
ICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYmFzZVZh
bEFzU3RyaW5nKCk7IH0KIAogICAgIC8vIFVzZWQgYnkgUmVuZGVyU1ZHRWxlbWVudHMgYW5kIER1
bXBSZW5kZXJUcmVlLgogICAgIGNvbnN0IFZhbHVlVHlwZSYgY3VycmVudFZhbHVlKCkgY29uc3QK
QEAgLTEzMSwyNiArMTI5LDI0IEBAIHByb3RlY3RlZDoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4u
LiBBcmd1bWVudHM+CiAgICAgU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5KFNWR0VsZW1lbnQqIGNv
bnRleHRFbGVtZW50LCBBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCiAgICAgICAgIDogU1ZHQW5p
bWF0ZWRQcm9wZXJ0eShjb250ZXh0RWxlbWVudCkKLSAgICAgICAgLCBtX2Jhc2VWYWwoUHJvcGVy
dHlUeXBlOjpjcmVhdGUodGhpcywgU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0ZSwgVmFsdWVU
eXBlKHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4pKSkKLSAgICB7Ci0gICAg
fQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIFNWR0FuaW1hdGVk
VmFsdWVQcm9wZXJ0eShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgU1ZHUHJvcGVydHlBY2Nl
c3MgYWNjZXNzLCBBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCi0gICAgICAgIDogU1ZHQW5pbWF0
ZWRQcm9wZXJ0eShjb250ZXh0RWxlbWVudCkKLSAgICAgICAgLCBtX2Jhc2VWYWwoUHJvcGVydHlU
eXBlOjpjcmVhdGUodGhpcywgYWNjZXNzLCBWYWx1ZVR5cGUoc3RkOjpmb3J3YXJkPEFyZ3VtZW50
cz4oYXJndW1lbnRzKS4uLikpKQorICAgICAgICAsIG1fYmFzZVZhbChQcm9wZXJ0eVR5cGU6OmNy
ZWF0ZSh0aGlzLCBWYWx1ZVR5cGUoc3RkOjpmb3J3YXJkPEFyZ3VtZW50cz4oYXJndW1lbnRzKS4u
LikpKQogICAgIHsKICAgICB9CiAKICAgICBSZWZQdHI8UHJvcGVydHlUeXBlPiYgZW5zdXJlQW5p
bVZhbCgpCiAgICAgewogICAgICAgICBpZiAoIW1fYW5pbVZhbCkKLSAgICAgICAgICAgIG1fYW5p
bVZhbCA9IFByb3BlcnR5VHlwZTo6Y3JlYXRlKHRoaXMsIFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFk
T25seSwgbV9iYXNlVmFsLT52YWx1ZSgpKTsKKyAgICAgICAgICAgIG1fYW5pbVZhbCA9IFByb3Bl
cnR5VHlwZTo6Y3JlYXRlKHRoaXMsIG1fYmFzZVZhbC0+dmFsdWUoKSk7CiAgICAgICAgIHJldHVy
biBtX2FuaW1WYWw7CiAgICAgfQogCisgICAgYm9vbCBpc1Byb3BlcnR5UmVhZE9ubHkoY29uc3Qg
RE9NTGl2ZVByb3BlcnR5JiBwcm9wZXJ0eSkgY29uc3Qgb3ZlcnJpZGUKKyAgICB7CisgICAgICAg
IHJldHVybiBtX2FuaW1WYWwgPT0gJnByb3BlcnR5OworICAgIH0KKwogICAgIC8vIENhbGxlZCB3
aGVuIG1fYmFzZVZhbCBjaGFuZ2VzLgotICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZH
UHJvcGVydHkqIHByb3BlcnR5KSBvdmVycmlkZQorICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFu
Z2UoRE9NTGl2ZVByb3BlcnR5KiBwcm9wZXJ0eSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlm
IChtX2FuaW1WYWwpCiAgICAgICAgICAgICBtX2FuaW1WYWwtPnNldFZhbHVlKG1fYmFzZVZhbC0+
dmFsdWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdN
ZW1iZXJBY2Nlc3Nvci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWVtYmVy
QWNjZXNzb3IuaAppbmRleCBmN2JiYTZhZTBhMGVlYWJiNmU2MTg3YTU4MTA0ZjcyMTI4YWNhYWZh
Li5lNTk3NzgwNTc2MDQxOTEzMjdjMjc0NTg5ZDYyYWY1NzY3YmJiM2RmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNZW1iZXJBY2Nlc3Nvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01lbWJlckFjY2Vzc29yLmgKQEAgLTMwLDgg
KzMwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBET01MaXZlUHJvcGVydHk7
CiBjbGFzcyBTVkdBbmltYXRlZFByb3BlcnR5OwotY2xhc3MgU1ZHUHJvcGVydHk7CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIE93bmVyVHlwZT4KIGNsYXNzIFNWR01lbWJlckFjY2Vzc29yIHsKQEAgLTQz
LDkgKzQzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGVkUHJvcGVydHko
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGVkTGVu
Z3RoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBtYXRjaGVz
KGNvbnN0IE93bmVyVHlwZSYsIGNvbnN0IFNWR1Byb3BlcnR5JikgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlcyhjb25zdCBPd25lclR5cGUmLCBjb25zdCBE
T01MaXZlUHJvcGVydHkmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBtYXRjaGVzKGNvbnN0IE93bmVyVHlwZSYsIGNvbnN0IFNWR0FuaW1hdGVkUHJvcGVydHkmKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgT3B0aW9uYWw8U3RyaW5nPiBzeW5j
aHJvbml6ZShjb25zdCBPd25lclR5cGUmKSBjb25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0K
KyAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZUFzU3RyaW5nKGNvbnN0IE93bmVyVHlwZSYpIGNvbnN0
IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KIAogICAgIHZpcnR1YWwgUmVmUHRyPFNWR0F0dHJp
YnV0ZUFuaW1hdG9yPiBjcmVhdGVBbmltYXRvcihPd25lclR5cGUmLCBjb25zdCBRdWFsaWZpZWRO
YW1lJiwgQW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUsIGJvb2wsIGJvb2wpIGNvbnN0IHsgcmV0dXJu
IG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kQW5pbWF0ZWRJbnN0YW5jZShPd25l
clR5cGUmLCBTVkdBdHRyaWJ1dGVBbmltYXRvciYpIGNvbnN0IHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUG9pbnRlck1lbWJlckFjY2Vzc29yLmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQb2ludGVyTWVtYmVyQWNjZXNzb3IuaApp
bmRleCA4ZTJmNzZkY2FiNGU5MGZiMzhlYjMzOTY5ZWE2NWMwNzAyMjQ1Mzg3Li5hZjUzZDZjNTZm
ZDg2OTdlMzA5NWUwMWNiYWE5OWU4OWQ3MzZkMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQb2ludGVyTWVtYmVyQWNjZXNzb3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQb2ludGVyTWVtYmVyQWNjZXNzb3IuaApAQCAtNDcs
OSArNDcsOSBAQCBwdWJsaWM6CiAgICAgICAgIHByb3BlcnR5KG93bmVyKS0+ZGV0YWNoKCk7CiAg
ICAgfQogCi0gICAgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZShjb25zdCBPd25lclR5cGUm
IG93bmVyKSBjb25zdCBvdmVycmlkZQorICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKGNvbnN0IE93
bmVyVHlwZSYgb3duZXIpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAgICAgICByZXR1cm4gcHJv
cGVydHkob3duZXIpLT5zeW5jaHJvbml6ZSgpOworICAgICAgICByZXR1cm4gcHJvcGVydHkob3du
ZXIpLT52YWx1ZUFzU3RyaW5nKCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHkuaAppbmRleCBjZTY1Y2IxMTBkMWZiNDY2ZTIy
OWVjNzljOWRkMDE3ZTg2MTI5OTY3Li43NmE5N2M1OTllYzhlM2M0Y2UzYzA0YmU2MWQ2MWEwODk4
YzQ3Y2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9w
ZXJ0eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5LmgK
QEAgLTIwLDgzICsyMCwyMSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR1Byb3Bl
cnR5T3duZXIuaCIKLSNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlICJET01MaXZl
UHJvcGVydHkuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgU1ZH
UHJvcGVydHlBY2Nlc3MgOiB1aW50OF90IHsgUmVhZFdyaXRlLCBSZWFkT25seSB9OwotZW51bSBj
bGFzcyBTVkdQcm9wZXJ0eVN0YXRlIDogdWludDhfdCB7IENsZWFuLCBEaXJ0eSB9OwotCi1jbGFz
cyBTVkdQcm9wZXJ0eSA6IHB1YmxpYyBSZWZDb3VudGVkPFNWR1Byb3BlcnR5PiB7CitjbGFzcyBT
VkdQcm9wZXJ0eSA6IHB1YmxpYyBET01MaXZlUHJvcGVydHksIHB1YmxpYyBSZWZDb3VudGVkPFNW
R1Byb3BlcnR5PiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1ZHUHJvcGVydHkoKSA9IGRlZmF1
bHQ7CiAKLSAgICAvLyBNYW5hZ2luZyB0aGUgcmVsYXRpb25zaGlwIHdpdGggdGhlIG93bmVyLgot
ICAgIGJvb2wgaXNBdHRhY2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1fb3duZXI7IH0KLSAgICB2b2lk
IGF0dGFjaChTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNz
KQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX293bmVyKTsKLSAgICAgICAgQVNTRVJUKG1fc3Rh
dGUgPT0gU1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW4pOwotICAgICAgICBtX293bmVyID0gb3duZXI7
Ci0gICAgICAgIG1fYWNjZXNzID0gYWNjZXNzOwotICAgIH0KLQotICAgIHZvaWQgZGV0YWNoKCkK
LSAgICB7Ci0gICAgICAgIG1fb3duZXIgPSBudWxscHRyOwotICAgICAgICBtX2FjY2VzcyA9IFNW
R1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGU7Ci0gICAgICAgIG1fc3RhdGUgPSBTVkdQcm9wZXJ0
eVN0YXRlOjpDbGVhbjsKLSAgICB9Ci0KLSAgICBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxl
bWVudCgpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoIW1fb3duZXIpCi0gICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgcmV0dXJuIG1fb3duZXItPmF0dHJpYnV0ZUNvbnRleHRF
bGVtZW50KCk7Ci0gICAgfQotCi0gICAgdm9pZCBjb21taXRDaGFuZ2UoKQotICAgIHsKLSAgICAg
ICAgaWYgKCFtX293bmVyKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX293bmVyLT5j
b21taXRQcm9wZXJ0eUNoYW5nZSh0aGlzKTsKLSAgICB9Ci0KLSAgICAvLyBET00gYWNjZXNzLgot
ICAgIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzOyB9
Ci0gICAgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3QgeyByZXR1cm4gbV9hY2Nlc3MgPT0gU1ZHUHJv
cGVydHlBY2Nlc3M6OlJlYWRPbmx5OyB9Ci0KLSAgICAvLyBTeW5jaHJvbml6aW5nIHRoZSBTVkcg
YXR0cmlidXRlIGFuZCBpdHMgcmVmbGVjdGlvbiBoZXJlLgotICAgIGJvb2wgaXNEaXJ0eSgpIGNv
bnN0IHsgcmV0dXJuIG1fc3RhdGUgPT0gU1ZHUHJvcGVydHlTdGF0ZTo6RGlydHk7IH0KLSAgICB2
b2lkIHNldERpcnR5KCkgeyBtX3N0YXRlID0gU1ZHUHJvcGVydHlTdGF0ZTo6RGlydHk7IH0KLSAg
ICBPcHRpb25hbDxTdHJpbmc+IHN5bmNocm9uaXplKCkKLSAgICB7Ci0gICAgICAgIGlmIChtX3N0
YXRlID09IFNWR1Byb3BlcnR5U3RhdGU6OkNsZWFuKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKLSAgICAgICAgbV9zdGF0ZSA9IFNWR1Byb3BlcnR5U3RhdGU6OkNsZWFuOwotICAg
ICAgICByZXR1cm4gdmFsdWVBc1N0cmluZygpOwotICAgIH0KLQogICAgIC8vIFRoaXMgaXMgdXNl
ZCB3aGVuIGNhbGxpbmcgc2V0QXR0cmlidXRlKCkuCiAgICAgdmlydHVhbCBTdHJpbmcgdmFsdWVB
c1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KIAotICAgIC8vIFZpc3Vh
bCBTdHVkaW8gZG9lc24ndCBzZWVtIHRvIHNlZSB0aGVzZSBwcml2YXRlIGNvbnN0cnVjdG9ycyBm
cm9tIHN1YmNsYXNzZXMuCi0gICAgLy8gRklYTUU6IFNlZSB3aGF0IGl0IHRha2VzIHRvIHJlbW92
ZSB0aGlzIGhhY2suCi0jaWYgIUNPTVBJTEVSKE1TVkMpCiBwcm90ZWN0ZWQ6Ci0jZW5kaWYKLSAg
ICBTVkdQcm9wZXJ0eShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciA9IG51bGxwdHIsIFNWR1Byb3Bl
cnR5QWNjZXNzIGFjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUpCi0gICAgICAg
IDogbV9vd25lcihvd25lcikKLSAgICAgICAgLCBtX2FjY2VzcyhhY2Nlc3MpCi0gICAgewotICAg
IH0KLQotICAgIFNWR1Byb3BlcnR5T3duZXIqIG1fb3duZXIgeyBudWxscHRyIH07Ci0gICAgU1ZH
UHJvcGVydHlBY2Nlc3MgbV9hY2Nlc3MgeyBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRlIH07
Ci0gICAgU1ZHUHJvcGVydHlTdGF0ZSBtX3N0YXRlIHsgU1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW4g
fTsKKyAgICB1c2luZyBET01MaXZlUHJvcGVydHk6OkRPTUxpdmVQcm9wZXJ0eTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR1Byb3BlcnR5QWNjZXNzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR1Byb3BlcnR5QWNjZXNzb3IuaAppbmRleCBmZjhjNGNkZTZkZDBmM2NhZmJjOGYyN2Iy
NzAyOTcwZTM1ZjQ4NzY0Li44ZDEyODE4MjdkNGZiOTg4OTNiZmYxZjI0OWUwYjM1Njg4MjI3NWY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFj
Y2Vzc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlB
Y2Nlc3Nvci5oCkBAIC00MCw3ICs0MCw3IEBAIHByb3RlY3RlZDoKICAgICB1c2luZyBCYXNlOjpw
cm9wZXJ0eTsKICAgICB1c2luZyBCYXNlOjpzaW5nbGV0b247CiAKLSAgICBib29sIG1hdGNoZXMo
Y29uc3QgT3duZXJUeXBlJiBvd25lciwgY29uc3QgU1ZHUHJvcGVydHkmIHByb3BlcnR5KSBjb25z
dCBvdmVycmlkZQorICAgIGJvb2wgbWF0Y2hlcyhjb25zdCBPd25lclR5cGUmIG93bmVyLCBjb25z
dCBET01MaXZlUHJvcGVydHkmIHByb3BlcnR5KSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAg
ICAgcmV0dXJuIHRoaXMtPnByb3BlcnR5KG93bmVyKS5wdHIoKSA9PSAmcHJvcGVydHk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlM
aXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUxpc3QuaApp
bmRleCBjYmIwMGFmMTAzMDI1OWZhM2MwNDFhM2YwZjJhYjc4NzNjN2RkM2NkLi5jMTM0NjQzODg1
ZjFiZWFhZmI5N2E3YjdmNWQ0ZWUwZmQ4MjNmYzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUxpc3QuaApAQCAtMzAsNyArMzAsNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+Ci1jbGFzcyBT
VkdQcm9wZXJ0eUxpc3QgOiBwdWJsaWMgU1ZHTGlzdDxSZWY8UHJvcGVydHlUeXBlPj4sIHB1Ymxp
YyBTVkdQcm9wZXJ0eU93bmVyIHsKK2NsYXNzIFNWR1Byb3BlcnR5TGlzdCA6IHB1YmxpYyBTVkdM
aXN0PFJlZjxQcm9wZXJ0eVR5cGU+PiwgcHVibGljIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyIHsK
IHB1YmxpYzoKICAgICB1c2luZyBCYXNlTGlzdCA9IFNWR0xpc3Q8UmVmPFByb3BlcnR5VHlwZT4+
OwogICAgIHVzaW5nIEJhc2VMaXN0Ojppc0VtcHR5OwpAQCAtNDIsMTMgKzQyLDEyIEBAIHB1Ymxp
YzoKICNpZiAhQ09NUElMRVIoTVNWQykKIHByb3RlY3RlZDoKICNlbmRpZgotICAgIHVzaW5nIFNW
R1Byb3BlcnR5T3duZXI6OlNWR1Byb3BlcnR5T3duZXI7CisgICAgdXNpbmcgRE9NTGl2ZVByb3Bl
cnR5T2JzZXJ2ZXI6OkRPTUxpdmVQcm9wZXJ0eU9ic2VydmVyOwogICAgIHVzaW5nIEJhc2VMaXN0
OjptX2l0ZW1zOwotICAgIHVzaW5nIEJhc2VMaXN0OjptX2FjY2VzczsKLSAgICB1c2luZyBCYXNl
TGlzdDo6bV9vd25lcjsKKyAgICB1c2luZyBCYXNlTGlzdDo6bV9vYnNlcnZlcjsKIAotICAgIFNW
R1Byb3BlcnR5TGlzdChTVkdQcm9wZXJ0eU93bmVyKiBvd25lciA9IG51bGxwdHIsIFNWR1Byb3Bl
cnR5QWNjZXNzIGFjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUpCi0gICAgICAg
IDogQmFzZUxpc3Qob3duZXIsIGFjY2VzcykKKyAgICBTVkdQcm9wZXJ0eUxpc3QoRE9NTGl2ZVBy
b3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyID0gbnVsbHB0cikKKyAgICAgICAgOiBCYXNlTGlzdChv
YnNlcnZlcikKICAgICB7CiAgICAgfQogCkBAIC02NCwxMiArNjMsMTcgQEAgcHJvdGVjdGVkOgog
ICAgICAgICAgICAgaXRlbS0+ZGV0YWNoKCk7CiAgICAgfQogCi0gICAgU1ZHUHJvcGVydHlPd25l
ciogb3duZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX293bmVyOyB9CisgICAgRE9NTGl2
ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9v
YnNlcnZlcjsgfQogCi0gICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9wZXJ0eSop
IG92ZXJyaWRlCisgICAgYm9vbCBpc1Byb3BlcnR5UmVhZE9ubHkoY29uc3QgRE9NTGl2ZVByb3Bl
cnR5JikgY29uc3Qgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIGlmIChvd25lcigpKQotICAgICAg
ICAgICAgb3duZXIoKS0+Y29tbWl0UHJvcGVydHlDaGFuZ2UodGhpcyk7CisgICAgICAgIHJldHVy
biBvYnNlcnZlcigpICYmIG9ic2VydmVyKCktPmlzUHJvcGVydHlSZWFkT25seSgqdGhpcyk7Cisg
ICAgfQorCisgICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqKSBv
dmVycmlkZQorICAgIHsKKyAgICAgICAgaWYgKG9ic2VydmVyKCkpCisgICAgICAgICAgICBvYnNl
cnZlcigpLT5jb21taXRQcm9wZXJ0eUNoYW5nZSh0aGlzKTsKICAgICB9CiAKICAgICBSZWY8UHJv
cGVydHlUeXBlPiBhdCh1bnNpZ25lZCBpbmRleCkgY29uc3Qgb3ZlcnJpZGUKQEAgLTg4LDcgKzky
LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgbmV3SXRlbSA9IG5ld0l0ZW0tPmNsb25lKCk7
CiAKICAgICAgICAgLy8gU3BlYzogQXR0YWNoIG5ld0l0ZW0gdG8gdGhlIGxpc3Qgb2JqZWN0Lgot
ICAgICAgICBuZXdJdGVtLT5hdHRhY2godGhpcywgbV9hY2Nlc3MpOworICAgICAgICBuZXdJdGVt
LT5hdHRhY2godGhpcyk7CiAgICAgICAgIG1faXRlbXMuaW5zZXJ0KGluZGV4LCBXVEZNb3ZlKG5l
d0l0ZW0pKTsKICAgICAgICAgcmV0dXJuIGF0KGluZGV4KTsKICAgICB9CkBAIC0xMDksNyArMTEz
LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgaXRlbSA9IFdURk1vdmUobmV3SXRlbSk7CiAK
ICAgICAgICAgLy8gU3BlYzogQXR0YWNoIG5ld0l0ZW0gdG8gdGhlIGxpc3Qgb2JqZWN0LgotICAg
ICAgICBpdGVtLT5hdHRhY2godGhpcywgbV9hY2Nlc3MpOworICAgICAgICBpdGVtLT5hdHRhY2go
dGhpcyk7CiAgICAgICAgIHJldHVybiBhdChpbmRleCk7CiAgICAgfQogCkBAIC0xMzIsNyArMTM2
LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgbmV3SXRlbSA9IG5ld0l0ZW0tPmNsb25lKCk7
CiAKICAgICAgICAgLy8gU3BlYzogQXR0YWNoIG5ld0l0ZW0gdG8gdGhlIGxpc3Qgb2JqZWN0Lgot
ICAgICAgICBuZXdJdGVtLT5hdHRhY2godGhpcywgbV9hY2Nlc3MpOworICAgICAgICBuZXdJdGVt
LT5hdHRhY2godGhpcyk7CiAgICAgICAgIG1faXRlbXMuYXBwZW5kKFdURk1vdmUobmV3SXRlbSkp
OwogICAgICAgICByZXR1cm4gYXQoc2l6ZSgpIC0gMSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lci5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lci5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjOTgxOGJlOWY4NDBjNzY0NTM5OGU2MWI0ODkzODE4NjJhMzQ2OGYzLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXIuaAorKysgL2Rldi9udWxsCkBAIC0x
LDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jcHJhZ21hIG9uY2UKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAotY2xhc3Mg
U1ZHRWxlbWVudDsKLWNsYXNzIFNWR1Byb3BlcnR5OwotCi1jbGFzcyBTVkdQcm9wZXJ0eU93bmVy
IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5TVkdQcm9wZXJ0eU93bmVyKCkgPSBkZWZhdWx0Owot
Ci0gICAgdmlydHVhbCBTVkdQcm9wZXJ0eU93bmVyKiBvd25lcigpIGNvbnN0IHsgcmV0dXJuIG51
bGxwdHI7IH0KLSAgICAKLSAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGF0dHJpYnV0ZUNv
bnRleHRFbGVtZW50KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmICghb3duZXIoKSkKLSAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICByZXR1cm4gb3duZXIoKS0+YXR0cmlidXRl
Q29udGV4dEVsZW1lbnQoKTsKLSAgICB9Ci0gICAgCi0gICAgdmlydHVhbCB2b2lkIGNvbW1pdFBy
b3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5KiBwcm9wZXJ0eSkKLSAgICB7Ci0gICAgICAgIGlmICgh
b3duZXIoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgb3duZXIoKS0+Y29tbWl0UHJv
cGVydHlDaGFuZ2UocHJvcGVydHkpOwotICAgIH0KLSAgICAKLXByb3RlY3RlZDoKLSAgICBTVkdQ
cm9wZXJ0eU93bmVyKCkgPSBkZWZhdWx0OwotfTsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkuaAppbmRleCBh
NWY3MTM2OTdlYTJjNGM2MDBiYTUzN2RhMjk0MWY1ZGE5OWU5NzhiLi4zMTlhNTA4MmE1OWQ5ZGU1
YjYxZGZmMjFiNWViMzY4ZmQyODdhYzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkuaApAQCAtMTc4LDcgKzE3
OCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIFF1YWxp
ZmllZE5hbWUgcHJvcGVydHlBdHRyaWJ1dGVOYW1lKGNvbnN0IFNWR1Byb3BlcnR5JiBwcm9wZXJ0
eSkgY29uc3Qgb3ZlcnJpZGUKKyAgICBRdWFsaWZpZWROYW1lIHByb3BlcnR5QXR0cmlidXRlTmFt
ZShjb25zdCBET01MaXZlUHJvcGVydHkmIHByb3BlcnR5KSBjb25zdCBvdmVycmlkZQogICAgIHsK
ICAgICAgICAgUXVhbGlmaWVkTmFtZSBhdHRyaWJ1dGVOYW1lID0gbnVsbFFOYW1lKCk7CiAgICAg
ICAgIGVudW1lcmF0ZVJlY3Vyc2l2ZWx5KFsmXShjb25zdCBhdXRvJiBlbnRyeSkgLT4gYm9vbCB7
CkBAIC0yMTEsMzMgKzIxMSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIH0pOwogICAgIH0KIAotICAg
IC8vIEZpbmRzIHRoZSBwcm9wZXJ0eSB3aG9zZSBuYW1lIGlzIGF0dHJpYnV0ZU5hbWUgYW5kIHJl
dHVybnMgdGhlIHN5bmNocm9uaXplCi0gICAgLy8gc3RyaW5nIHRocm91Z2ggdGhlIGFzc29jaWF0
ZWQgU1ZHTWVtYmVyQWNjZXNzb3IuCi0gICAgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSBjb25zdCBvdmVycmlkZQorICAgIC8v
IEZpbmRzIHRoZSBwcm9wZXJ0eSB3aG9zZSBuYW1lIGlzIGF0dHJpYnV0ZU5hbWUgYW5kIHJldHVy
bnMgdGhlIHZhbHVlQXNTdHJpbmcKKyAgICAvLyB0aHJvdWdoIHRoZSBhc3NvY2lhdGVkIFNWR01l
bWJlckFjY2Vzc29yLgorICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJpYnV0ZU5hbWUpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAgICAgICBPcHRpb25h
bDxTdHJpbmc+IHZhbHVlOworICAgICAgICBTdHJpbmcgdmFsdWU7CiAgICAgICAgIGVudW1lcmF0
ZVJlY3Vyc2l2ZWx5KFsmXShjb25zdCBhdXRvJiBlbnRyeSkgLT4gYm9vbCB7CiAgICAgICAgICAg
ICBpZiAoIWVudHJ5LmtleS5tYXRjaGVzKGF0dHJpYnV0ZU5hbWUpKQogICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOwotICAgICAgICAgICAgdmFsdWUgPSBlbnRyeS52YWx1ZS0+c3luY2hyb25p
emUobV9vd25lcik7CisgICAgICAgICAgICB2YWx1ZSA9IGVudHJ5LnZhbHVlLT52YWx1ZUFzU3Ry
aW5nKG1fb3duZXIpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9KTsKICAg
ICAgICAgcmV0dXJuIHZhbHVlOwogICAgIH0KIAotICAgIC8vIEVudW1lcmF0ZSByZWN1cnNpdmVs
eSB0aGUgU1ZHTWVtYmVyQWNjZXNzb3JzIG9mIHRoZSBPd25lclR5cGUgYW5kIGFsbCBpdHMgQmFz
ZVR5cGVzLgotICAgIC8vIENvbGxlY3QgYWxsIHRoZSBwYWlycyA8QXR0cmlidXRlTmFtZSwgU3Ry
aW5nPiBvbmx5IGZvciB0aGUgZGlydHkgcHJvcGVydGllcy4KLSAgICBIYXNoTWFwPFF1YWxpZmll
ZE5hbWUsIFN0cmluZz4gc3luY2hyb25pemVBbGxBdHRyaWJ1dGVzKCkgY29uc3Qgb3ZlcnJpZGUK
LSAgICB7Ci0gICAgICAgIEhhc2hNYXA8UXVhbGlmaWVkTmFtZSwgU3RyaW5nPiBtYXA7Ci0gICAg
ICAgIGVudW1lcmF0ZVJlY3Vyc2l2ZWx5KFsmXShjb25zdCBhdXRvJiBlbnRyeSkgLT4gYm9vbCB7
Ci0gICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBlbnRyeS52YWx1ZS0+c3luY2hyb25pemUo
bV9vd25lcikpCi0gICAgICAgICAgICAgICAgbWFwLmFkZChlbnRyeS5rZXksICpzdHJpbmcpOwot
ICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0pOwotICAgICAgICByZXR1cm4gbWFw
OwotICAgIH0KLQogICAgIGJvb2wgaXNBbmltYXRlZFByb3BlcnR5QXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAg
ICBib29sIGlzQW5pbWF0ZWRQcm9wZXJ0eUF0dHJpYnV0ZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlSZWdpc3RyeS5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlSZWdpc3RyeS5oCmluZGV4IDI0
ZmU2NDIzN2UyZjVlNWUxYWZlODU1MTBmMTM2NjI2MmRmNDM0MDQuLmRlMjhlYjlmZTE0YTc4N2E2
YzU1MWU0ZGQwZjU4NTAzODdlMjlhOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR1Byb3BlcnR5UmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdQcm9wZXJ0eVJlZ2lzdHJ5LmgKQEAgLTM3LDEwICszNyw5IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5TVkdQcm9wZXJ0eVJlZ2lzdHJ5KCkgPSBkZWZhdWx0OwogCiAgICAg
dmlydHVhbCB2b2lkIGRldGFjaEFsbFByb3BlcnRpZXMoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVh
bCBRdWFsaWZpZWROYW1lIHByb3BlcnR5QXR0cmlidXRlTmFtZShjb25zdCBTVkdQcm9wZXJ0eSYp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFF1YWxpZmllZE5hbWUgcHJvcGVydHlBdHRyaWJ1dGVO
YW1lKGNvbnN0IERPTUxpdmVQcm9wZXJ0eSYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFF1YWxp
ZmllZE5hbWUgYW5pbWF0ZWRQcm9wZXJ0eUF0dHJpYnV0ZU5hbWUoY29uc3QgU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eSYpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIE9wdGlvbmFsPFN0cmluZz4gc3luY2hy
b25pemUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIEhhc2hN
YXA8UXVhbGlmaWVkTmFtZSwgU3RyaW5nPiBzeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMoKSBjb25z
dCA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgdmFsdWVBc1N0cmluZyhjb25zdCBRdWFsaWZpZWRO
YW1lJikgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGlzQW5pbWF0ZWRQcm9wZXJ0eUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBpc0FuaW1hdGVkU3R5bGVQcm9wZXJ0eUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikg
Y29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
VmFsdWVQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQ
cm9wZXJ0eS5oCmluZGV4IDlmMzFlMmQwZjUzOWNjMjAyM2I2M2Y4NzA2ODZmMGVkODFkYzI5Y2Uu
Ljg1MmYyNzRkN2JiMzFlNzVhMjI1MDkxMTNjMjcyNjlhMWQ3OTk0ZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5LmgKQEAgLTY0LDE0ICs2
NCwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogCiAgICAgLy8gQmFzZSBhbmQgZGVmYXVsdCBjb25z
dHJ1Y3Rvci4gRG8gbm90IHVzZSAidXNpbmcgU1ZHUHJvcGVydHk6OlNWR1Byb3BlcnR5IiBiZWNh
dXNlIG9mIFdpbmRvd3MgYW5kIEdUSyBwb3J0cy4KLSAgICBTVkdWYWx1ZVByb3BlcnR5KFNWR1By
b3BlcnR5T3duZXIqIG93bmVyID0gbnVsbHB0ciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzID0g
U1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eShvd25l
ciwgYWNjZXNzKQorICAgIFNWR1ZhbHVlUHJvcGVydHkoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIq
IG9ic2VydmVyID0gbnVsbHB0cikKKyAgICAgICAgOiBTVkdQcm9wZXJ0eShvYnNlcnZlcikKICAg
ICB7CiAgICAgfQogCiAgICAgLy8gQ3JlYXRlIGFuIGluaXRpYWxpemVkIGFuZCBhdHRhY2hlZCBw
cm9wZXJ0eS4KLSAgICBTVkdWYWx1ZVByb3BlcnR5KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBT
VkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUpCi0gICAg
ICAgIDogU1ZHUHJvcGVydHkob3duZXIsIGFjY2VzcykKKyAgICBTVkdWYWx1ZVByb3BlcnR5KERP
TUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlciwgY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1
ZSkKKyAgICAgICAgOiBTVkdQcm9wZXJ0eShvYnNlcnZlcikKICAgICAgICAgLCBtX3ZhbHVlKHZh
bHVlKQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3QuaAppbmRleCAzMDEwYzMzYTc0MDg5YmM0NGZiYjQxMGE1
NmY3ODVhOWY3MTdjY2VlLi5jNWI3M2EwZWE0Yjk2ZmIxYzRiMDQ0M2VkOTExNWEwOTQ0ZWI1MmUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3Bl
cnR5TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJv
cGVydHlMaXN0LmgKQEAgLTc1LDE0ICs3NSwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgdXNpbmcgQmFz
ZTo6cmVtb3ZlOwogCiAgICAgLy8gQmFzZSBhbmQgZGVmYXVsdCBjb25zdHJ1Y3Rvci4gRG8gbm90
IHVzZSAidXNpbmcgQmFzZTo6QmFzZSIgYmVjYXVzZSBvZiBXaW5kb3dzIGFuZCBHVEsgcG9ydHMu
Ci0gICAgU1ZHVmFsdWVQcm9wZXJ0eUxpc3QoU1ZHUHJvcGVydHlPd25lciogb3duZXIgPSBudWxs
cHRyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MgPSBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdy
aXRlKQotICAgICAgICA6IEJhc2Uob3duZXIsIGFjY2VzcykKKyAgICBTVkdWYWx1ZVByb3BlcnR5
TGlzdChET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIgPSBudWxscHRyKQorICAgICAg
ICA6IEJhc2Uob2JzZXJ2ZXIpCiAgICAgewogICAgIH0KIAogICAgIC8vIFVzZWQgYnkgU1ZHQW5p
bWF0ZWRQcm9wZXJ0eUxpc3Qgd2hlbiBjcmVhdGluZyBpdCBhbmltVmFsIGZyb20gYmFzZVZhbC4K
LSAgICBTVkdWYWx1ZVByb3BlcnR5TGlzdChjb25zdCBTVkdWYWx1ZVByb3BlcnR5TGlzdCYgb3Ro
ZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3Jp
dGUpCi0gICAgICAgIDogQmFzZShvdGhlci5vd25lcigpLCBhY2Nlc3MpCisgICAgU1ZHVmFsdWVQ
cm9wZXJ0eUxpc3QoY29uc3QgU1ZHVmFsdWVQcm9wZXJ0eUxpc3QmIG90aGVyKQorICAgICAgICA6
IEJhc2Uob3RoZXIub2JzZXJ2ZXIoKSkKICAgICB7CiAgICAgICAgIC8vIENsb25lIGFsbCBpdGVt
cy4KICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBpdGVtIDogb3RoZXIuaXRlbXMoKSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBiZDA5OTgwMGE4NWYzYzNjMDBjZTA1M2U5NGYxM2U2ZmY2YTI3ODA0Li44MmM5MWNiOGRjZmM4
MzM2YmMyZDIzOGNhMmQyOTNkN2Q4MTYxNmVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTkt
MTAtMDEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAg
ICAgICBNYWtlIHRoZSBTVkcgcHJvcGVydGllcyBvZiBTVkdWaWV3U3BlYyBtb2RpZmlhYmxlIGJ1
dCBkZXRhY2hlZCBwcm9wZXJ0aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDI0MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBNYWtlIHN1cmUgYWxsIHRoZSBwcm9wZXJ0aWVzIG9mIFNWR1ZpZXdTcGVj
IGFyZSBtb2RpZmlhYmxlLgorCisgICAgICAgICogc3ZnL2RvbS9TVkdWaWV3U3BlYy1kZWZhdWx0
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3ZnL2RvbS9TVkdWaWV3U3BlYy1kZWZhdWx0cy5o
dG1sOgorCiAyMDE5LTEwLTAxICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNv
bT4KIAogICAgICAgICBTdXBwb3J0IGFjY2Vzc2liaWxpdHkgZm9yIDxmaWd1cmU+IGVsZW1lbnQg
b24gaU9TLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdWaWV3U3BlYy1kZWZh
dWx0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1ZpZXdTcGVjLWRlZmF1
bHRzLWV4cGVjdGVkLnR4dAppbmRleCA5YzAxODE3NTgxNWI3NDRmZDJiNjUwZDczNzJjNDdmODVh
YTE0YWYxLi4xNDUyYWI3YzQ1YTRmMzVhMzk1OTdmMDMzZTBkMzk5MjUwYmJhMmM4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1ZpZXdTcGVjLWRlZmF1bHRzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1ZpZXdTcGVjLWRlZmF1bHRzLWV4cGVjdGVk
LnR4dApAQCAtMjAsNTAgKzIwLDUzIEBAIFBBU1MgY3VycmVudFZpZXcudHJhbnNmb3JtU3RyaW5n
IGlzICIiCiBQQVNTIGN1cnJlbnRWaWV3LnZpZXdUYXJnZXRTdHJpbmcgaXMgIiIKIFBBU1MgY3Vy
cmVudFZpZXcuem9vbUFuZFBhbiBpcyBTVkdWaWV3RWxlbWVudC5TVkdfWk9PTUFORFBBTl9NQUdO
SUZZCiAKLVRyeSBjaGFuZ2luZyB6b29tQW5kUGFuIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmss
IGFzIFNWR1ZpZXdTcGVjIGlzIGZ1bGx5IHJlYWRvbmx5IC0gZXZlbiB0aGUgYW5pbWF0ZWQgcHJv
cGVydGllcyBpdCBpbmhlcml0cyBmcm9tIHBhcmVudCBjbGFzc2VzIGxpa2UgU1ZHWm9vbUFuZFBh
bi9TVkdGaXRUb1ZpZXdCb3gKK1RyeSBjaGFuZ2luZyB6b29tQW5kUGFuIC0gbm9uZSBvZiB0aGVz
ZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5CiBQQVNTIGN1cnJlbnRWaWV3
Lnpvb21BbmRQYW4gPSBTVkdWaWV3RWxlbWVudC5TVkdfWk9PTUFORFBBTl9ESVNBQkxFIHRocmV3
IGV4Y2VwdGlvbiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogVGhlIG9iamVjdCBjYW4gbm90
IGJlIG1vZGlmaWVkLi4KIFBBU1MgY3VycmVudFZpZXcuem9vbUFuZFBhbiBpcyBTVkdWaWV3RWxl
bWVudC5TVkdfWk9PTUFORFBBTl9NQUdOSUZZCiAKLVRyeSBjaGFuZ2luZyB2aWV3Qm94IC0gdGhp
cyBoYXMgbm8gYWZmZWN0IG9uIHRoZSBTVkdTVkdFbGVtZW50IHRoZSB2aWV3U3BlYyBiZWxvbmdz
IHRvIC0gaXQgZXhwb3NlZCBhbGwgaXRzIHByb3BlcnRpZXMgYXMgcmVhZC1vbmx5Ci1QQVNTIGN1
cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC54ID0gMTAgdGhyZXcgZXhjZXB0aW9uIE5vTW9kaWZp
Y2F0aW9uQWxsb3dlZEVycm9yOiBUaGUgb2JqZWN0IGNhbiBub3QgYmUgbW9kaWZpZWQuLgotUEFT
UyBjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueCBpcyAwCi1QQVNTIGN1cnJlbnRWaWV3LnZp
ZXdCb3guYmFzZVZhbC55ID0gMjAgdGhyZXcgZXhjZXB0aW9uIE5vTW9kaWZpY2F0aW9uQWxsb3dl
ZEVycm9yOiBUaGUgb2JqZWN0IGNhbiBub3QgYmUgbW9kaWZpZWQuLgotUEFTUyBjdXJyZW50Vmll
dy52aWV3Qm94LmJhc2VWYWwueSBpcyAwCi1QQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZh
bC53aWR0aCA9IDUwIHRocmV3IGV4Y2VwdGlvbiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjog
VGhlIG9iamVjdCBjYW4gbm90IGJlIG1vZGlmaWVkLi4KLVBBU1MgY3VycmVudFZpZXcudmlld0Jv
eC5iYXNlVmFsLndpZHRoIGlzIDAKLVBBU1MgY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLmhl
aWdodCA9IDEwMCB0aHJldyBleGNlcHRpb24gTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IFRo
ZSBvYmplY3QgY2FuIG5vdCBiZSBtb2RpZmllZC4uCi1QQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3gu
YmFzZVZhbC5oZWlnaHQgaXMgMAotUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94U3RyaW5nIGlzICIw
IDAgMCAwIgorQ2hhbmdpbmcgdmlld0JveCAtIHRoaXMgaGFzIG5vIGFmZmVjdCBvbiB0aGUgU1ZH
U1ZHRWxlbWVudCB0aGUgdmlld1NwZWMgYmVsb25ncyB0byAtIGl0IGlzIGEgZGV0YWNoZWQgcHJv
cGVydHkKK1BBU1MgY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLnggPSAxMCBpcyAxMAorUEFT
UyBjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueCBpcyAxMAorUEFTUyBjdXJyZW50Vmlldy52
aWV3Qm94LmJhc2VWYWwueSA9IDIwIGlzIDIwCitQQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFz
ZVZhbC55IGlzIDIwCitQQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC53aWR0aCA9IDUw
IGlzIDUwCitQQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC53aWR0aCBpcyA1MAorUEFT
UyBjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0ID0gMTAwIGlzIDEwMAorUEFTUyBj
dXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0IGlzIDEwMAorUEFTUyBjdXJyZW50Vmll
dy52aWV3Qm94U3RyaW5nIGlzICIxMCAyMCA1MCAxMDAiCiAKLVRyeSBjaGFuZ2luZyB2aWV3Qm94
U3RyaW5nCitUcnkgY2hhbmdpbmcgdmlld0JveFN0cmluZyAtIG5vbmUgb2YgdGhlc2Ugd2lsbCB3
b3JrLCBpdCBpcyBhIHByaW1pdGl2ZSBwcm9wZXJ0eQogUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94
U3RyaW5nID0gJzEgMiAzIDQnIGlzICIxIDIgMyA0IgotUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94
U3RyaW5nIGlzICIwIDAgMCAwIgorUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94U3RyaW5nIGlzICIx
MCAyMCA1MCAxMDAiCiAKLVRyeSBjaGFuZ2luZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvCi1QQVNTIGN1
cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFzZVZhbC5hbGlnbiA9IFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW8uU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSU4gdGhyZXcgZXhjZXB0
aW9uIE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yOiBUaGUgb2JqZWN0IGNhbiBub3QgYmUgbW9k
aWZpZWQuLgotUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwuYWxp
Z24gaXMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlE
WU1JRAotUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwubWVldE9y
U2xpY2UgPSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19NRUVUT1JTTElDRV9TTElDRSB0aHJl
dyBleGNlcHRpb24gTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5v
dCBiZSBtb2RpZmllZC4uCi1QQVNTIGN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFz
ZVZhbC5tZWV0T3JTbGljZSBpcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19NRUVUT1JTTElD
RV9NRUVUCitDaGFuZ2luZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvIC0gdGhpcyBoYXMgbm8gYWZmZWN0
IG9uIHRoZSBTVkdTVkdFbGVtZW50IHRoZSB2aWV3U3BlYyBiZWxvbmdzIHRvIC0gaXQgaXMgYSBk
ZXRhY2hlZCBwcm9wZXJ0eQorUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJh
c2VWYWwuYWxpZ24gPSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19QUkVTRVJWRUFTUEVDVFJB
VElPX1hNSU5ZTUlOIGlzIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX1BSRVNFUlZFQVNQRUNU
UkFUSU9fWE1JTllNSU4KK1BBU1MgY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNl
VmFsLmFsaWduIGlzIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX1BSRVNFUlZFQVNQRUNUUkFU
SU9fWE1JTllNSU4KK1BBU1MgY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFs
Lm1lZXRPclNsaWNlID0gU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJQ0VfU0xJ
Q0UgaXMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJQ0VfU0xJQ0UKK1BBU1Mg
Y3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLm1lZXRPclNsaWNlIGlzIFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX01FRVRPUlNMSUNFX1NMSUNFCiAKLVRyeSBjaGFuZ2lu
ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nCi1QQVNTIGN1cnJlbnRWaWV3LnByZXNlcnZlQXNw
ZWN0UmF0aW9TdHJpbmcgPSAneE1pbllNaW4gc2xpY2UnIGlzICJ4TWluWU1pbiBzbGljZSIKLVBB
U1MgY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZyBpcyAieE1pZFlNaWQgbWVl
dCIKLQotVHJ5IGNoYW5naW5nIHRyYW5zZm9ybVN0cmluZwotUEFTUyBjdXJyZW50Vmlldy50cmFu
c2Zvcm1TdHJpbmcgPSAncm90YXRlKDkwKScgaXMgInJvdGF0ZSg5MCkiCi1QQVNTIGN1cnJlbnRW
aWV3LnRyYW5zZm9ybVN0cmluZyBpcyAiIgorQ2hhbmdpbmcgcHJlc2VydmVBc3BlY3RSYXRpb1N0
cmluZyAtIG5vbmUgb2YgdGhlc2Ugd2lsbCB3b3JrLCBpdCBpcyBhIHByaW1pdGl2ZSBwcm9wZXJ0
eQorUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nID0gJ3hNaWRZTWlk
IG1lZXQnIGlzICJ4TWlkWU1pZCBtZWV0IgorUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVj
dFJhdGlvU3RyaW5nIGlzICJ4TWluWU1pbiBzbGljZSIKIAotVHJ5IGNoYW5naW5nIHZpZXdUYXJn
ZXQKK1RyeSBjaGFuZ2luZyB2aWV3VGFyZ2V0IC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0
IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5CiBQQVNTIGN1cnJlbnRWaWV3LnZpZXdUYXJnZXQgPSBz
dmdFbGVtZW50IGlzIHN2Z0VsZW1lbnQKIFBBU1MgY3VycmVudFZpZXcudmlld1RhcmdldCBpcyBu
dWxsCiAKLVRyeSBjaGFuZ2luZyB2aWV3VGFyZ2V0U3RyaW5nCitUcnkgY2hhbmdpbmcgdmlld1Rh
cmdldFN0cmluZyAtIG5vbmUgb2YgdGhlc2Ugd2lsbCB3b3JrLCBpdCBpcyBhIHByaW1pdGl2ZSBw
cm9wZXJ0eQogUEFTUyBjdXJyZW50Vmlldy52aWV3VGFyZ2V0U3RyaW5nID0gJyN0ZXN0JyBpcyAi
I3Rlc3QiCiBQQVNTIGN1cnJlbnRWaWV3LnZpZXdUYXJnZXRTdHJpbmcgaXMgIiIKIAotVHJ5IGNo
YW5naW5nIHRyYW5zZm9ybQotUEFTUyBjdXJyZW50Vmlldy50cmFuc2Zvcm0uY2xlYXIoKSB0aHJl
dyBleGNlcHRpb24gTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5v
dCBiZSBtb2RpZmllZC4uCitDaGFuZ2luZyB0cmFuc2Zvcm0gLSB0aGlzIGhhcyBubyBhZmZlY3Qg
b24gdGhlIFNWR1NWR0VsZW1lbnQgdGhlIHZpZXdTcGVjIGJlbG9uZ3MgdG8gLSBpdCBpcyBhIGRl
dGFjaGVkIHByb3BlcnR5CitQQVNTIGN1cnJlbnRWaWV3LnRyYW5zZm9ybS5hcHBlbmRJdGVtKHRy
YW5zZm9ybSkudG9TdHJpbmcoKSBpcyAiW29iamVjdCBTVkdUcmFuc2Zvcm1dIgorUEFTUyBjdXJy
ZW50Vmlldy50cmFuc2Zvcm0ubnVtYmVyT2ZJdGVtcyBpcyAxCitQQVNTIGN1cnJlbnRWaWV3LnRy
YW5zZm9ybVN0cmluZyBpcyAibWF0cml4KDEgMCAwIDEgMCAwKSIKK1BBU1MgdW5kZWZpbmVkIGlz
IHVuZGVmaW5lZC4KIFBBU1MgY3VycmVudFZpZXcudHJhbnNmb3JtLm51bWJlck9mSXRlbXMgaXMg
MAorCitUcnkgY2hhbmdpbmcgdHJhbnNmb3JtU3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdv
cmssIGl0IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5CitQQVNTIGN1cnJlbnRWaWV3LnRyYW5zZm9y
bVN0cmluZyA9ICdyb3RhdGUoOTApJyBpcyAicm90YXRlKDkwKSIKK1BBU1MgY3VycmVudFZpZXcu
dHJhbnNmb3JtU3RyaW5nIGlzICIiCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAK
IFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHVmlld1Nw
ZWMtZGVmYXVsdHMuaHRtbCBiL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHVmlld1NwZWMtZGVmYXVs
dHMuaHRtbAppbmRleCBhMDI0MjY3MWQyY2FjY2IwYmVjNTI0OWIwZTVjYzkzZTQ2Mjc2MWViLi4x
MDYwYmRjMmNiZGRhNzgyNDNhOGFmOGMwNjU0MjVjNjZmNzIzMWZiIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdmcvZG9tL1NWR1ZpZXdTcGVjLWRlZmF1bHRzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvc3ZnL2RvbS9TVkdWaWV3U3BlYy1kZWZhdWx0cy5odG1sCkBAIC0zNCw2MiArMzQsNjQgQEAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJyZW50Vmlldy52aWV3VGFyZ2V0U3RyaW5nIiwgIiIp
Owogc2hvdWxkQmUoImN1cnJlbnRWaWV3Lnpvb21BbmRQYW4iLCAiU1ZHVmlld0VsZW1lbnQuU1ZH
X1pPT01BTkRQQU5fTUFHTklGWSIpOwogCiBkZWJ1ZygiIik7Ci1kZWJ1ZygiVHJ5IGNoYW5naW5n
IHpvb21BbmRQYW4gLSBub25lIG9mIHRoZXNlIHdpbGwgd29yaywgYXMgU1ZHVmlld1NwZWMgaXMg
ZnVsbHkgcmVhZG9ubHkgLSBldmVuIHRoZSBhbmltYXRlZCBwcm9wZXJ0aWVzIGl0IGluaGVyaXRz
IGZyb20gcGFyZW50IGNsYXNzZXMgbGlrZSBTVkdab29tQW5kUGFuL1NWR0ZpdFRvVmlld0JveCIp
OworZGVidWcoIlRyeSBjaGFuZ2luZyB6b29tQW5kUGFuIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdv
cmssIGl0IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5Iik7CiBzaG91bGRUaHJvdygiY3VycmVudFZp
ZXcuem9vbUFuZFBhbiA9IFNWR1ZpZXdFbGVtZW50LlNWR19aT09NQU5EUEFOX0RJU0FCTEUiKTsK
IHNob3VsZEJlKCJjdXJyZW50Vmlldy56b29tQW5kUGFuIiwgIlNWR1ZpZXdFbGVtZW50LlNWR19a
T09NQU5EUEFOX01BR05JRlkiKTsKIAogZGVidWcoIiIpOwotZGVidWcoIlRyeSBjaGFuZ2luZyB2
aWV3Qm94IC0gdGhpcyBoYXMgbm8gYWZmZWN0IG9uIHRoZSBTVkdTVkdFbGVtZW50IHRoZSB2aWV3
U3BlYyBiZWxvbmdzIHRvIC0gaXQgZXhwb3NlZCBhbGwgaXRzIHByb3BlcnRpZXMgYXMgcmVhZC1v
bmx5Iik7Ci1zaG91bGRUaHJvdygiY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLnggPSAxMCIp
Owotc2hvdWxkQmUoImN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC54IiwgIjAiKTsKLXNob3Vs
ZFRocm93KCJjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueSA9IDIwIik7Ci1zaG91bGRCZSgi
Y3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLnkiLCAiMCIpOwotc2hvdWxkVGhyb3coImN1cnJl
bnRWaWV3LnZpZXdCb3guYmFzZVZhbC53aWR0aCA9IDUwIik7Ci1zaG91bGRCZSgiY3VycmVudFZp
ZXcudmlld0JveC5iYXNlVmFsLndpZHRoIiwgIjAiKTsKLXNob3VsZFRocm93KCJjdXJyZW50Vmll
dy52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0ID0gMTAwIik7Ci1zaG91bGRCZSgiY3VycmVudFZpZXcu
dmlld0JveC5iYXNlVmFsLmhlaWdodCIsICIwIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1
cnJlbnRWaWV3LnZpZXdCb3hTdHJpbmciLCAiMCAwIDAgMCIpOworZGVidWcoIkNoYW5naW5nIHZp
ZXdCb3ggLSB0aGlzIGhhcyBubyBhZmZlY3Qgb24gdGhlIFNWR1NWR0VsZW1lbnQgdGhlIHZpZXdT
cGVjIGJlbG9uZ3MgdG8gLSBpdCBpcyBhIGRldGFjaGVkIHByb3BlcnR5Iik7CitzaG91bGRCZSgi
Y3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLnggPSAxMCIsICIxMCIpOworc2hvdWxkQmUoImN1
cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC54IiwgIjEwIik7CitzaG91bGRCZSgiY3VycmVudFZp
ZXcudmlld0JveC5iYXNlVmFsLnkgPSAyMCIsICIyMCIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3
LnZpZXdCb3guYmFzZVZhbC55IiwgIjIwIik7CitzaG91bGRCZSgiY3VycmVudFZpZXcudmlld0Jv
eC5iYXNlVmFsLndpZHRoID0gNTAiLCAiNTAiKTsKK3Nob3VsZEJlKCJjdXJyZW50Vmlldy52aWV3
Qm94LmJhc2VWYWwud2lkdGgiLCAiNTAiKTsKK3Nob3VsZEJlKCJjdXJyZW50Vmlldy52aWV3Qm94
LmJhc2VWYWwuaGVpZ2h0ID0gMTAwIiwgIjEwMCIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnZp
ZXdCb3guYmFzZVZhbC5oZWlnaHQiLCAiMTAwIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1
cnJlbnRWaWV3LnZpZXdCb3hTdHJpbmciLCAiMTAgMjAgNTAgMTAwIik7CiAKIGRlYnVnKCIiKTsK
LWRlYnVnKCJUcnkgY2hhbmdpbmcgdmlld0JveFN0cmluZyIpOworZGVidWcoIlRyeSBjaGFuZ2lu
ZyB2aWV3Qm94U3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0
aXZlIHByb3BlcnR5Iik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnZpZXdC
b3hTdHJpbmcgPSAnMSAyIDMgNCciLCAiMSAyIDMgNCIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJjdXJyZW50Vmlldy52aWV3Qm94U3RyaW5nIiwgIjAgMCAwIDAiKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygiY3VycmVudFZpZXcudmlld0JveFN0cmluZyIsICIxMCAyMCA1MCAxMDAiKTsKIAog
ZGVidWcoIiIpOwotZGVidWcoIlRyeSBjaGFuZ2luZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvIik7Ci1z
aG91bGRUaHJvdygiY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLmFsaWdu
ID0gU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1J
TiIpOwotc2hvdWxkQmUoImN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFzZVZhbC5h
bGlnbiIsICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hN
SURZTUlEIik7Ci1zaG91bGRUaHJvdygiY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5i
YXNlVmFsLm1lZXRPclNsaWNlID0gU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJ
Q0VfU0xJQ0UiKTsKLXNob3VsZEJlKCJjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJh
c2VWYWwubWVldE9yU2xpY2UiLCAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJ
Q0VfTUVFVCIpOworZGVidWcoIkNoYW5naW5nIHByZXNlcnZlQXNwZWN0UmF0aW8gLSB0aGlzIGhh
cyBubyBhZmZlY3Qgb24gdGhlIFNWR1NWR0VsZW1lbnQgdGhlIHZpZXdTcGVjIGJlbG9uZ3MgdG8g
LSBpdCBpcyBhIGRldGFjaGVkIHByb3BlcnR5Iik7CitzaG91bGRCZSgiY3VycmVudFZpZXcucHJl
c2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLmFsaWduID0gU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5T
VkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JTiIsICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
LlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlOIik7CitzaG91bGRCZSgiY3VycmVudFZp
ZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLmFsaWduIiwgIlNWR1ByZXNlcnZlQXNwZWN0
UmF0aW8uU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSU4iKTsKK3Nob3VsZEJlKCJjdXJy
ZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwubWVldE9yU2xpY2UgPSBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvLlNWR19NRUVUT1JTTElDRV9TTElDRSIsICJTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvLlNWR19NRUVUT1JTTElDRV9TTElDRSIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnBy
ZXNlcnZlQXNwZWN0UmF0aW8uYmFzZVZhbC5tZWV0T3JTbGljZSIsICJTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvLlNWR19NRUVUT1JTTElDRV9TTElDRSIpOwogCiBkZWJ1ZygiIik7Ci1kZWJ1ZygiVHJ5
IGNoYW5naW5nIHByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmciKTsKLXNob3VsZEJlRXF1YWxUb1N0
cmluZygiY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZyA9ICd4TWluWU1pbiBz
bGljZSciLCAieE1pbllNaW4gc2xpY2UiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVu
dFZpZXcucHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZyIsICJ4TWlkWU1pZCBtZWV0Iik7Ci0KK2Rl
YnVnKCJDaGFuZ2luZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3
aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5Iik7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcgPSAneE1pZFlNaWQg
bWVldCciLCAieE1pZFlNaWQgbWVldCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJyZW50
Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nIiwgInhNaW5ZTWluIHNsaWNlIik7CiAKIGRl
YnVnKCIiKTsKLWRlYnVnKCJUcnkgY2hhbmdpbmcgdHJhbnNmb3JtU3RyaW5nIik7Ci1zaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnRyYW5zZm9ybVN0cmluZyA9ICdyb3RhdGUoOTAp
JyIsICJyb3RhdGUoOTApIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnRy
YW5zZm9ybVN0cmluZyIsICIiKTsKLQotCi1kZWJ1ZygiIik7Ci1kZWJ1ZygiVHJ5IGNoYW5naW5n
IHZpZXdUYXJnZXQiKTsKK2RlYnVnKCJUcnkgY2hhbmdpbmcgdmlld1RhcmdldCAtIG5vbmUgb2Yg
dGhlc2Ugd2lsbCB3b3JrLCBpdCBpcyBhIHByaW1pdGl2ZSBwcm9wZXJ0eSIpOwogc2hvdWxkQmUo
ImN1cnJlbnRWaWV3LnZpZXdUYXJnZXQgPSBzdmdFbGVtZW50IiwgInN2Z0VsZW1lbnQiKTsKIHNo
b3VsZEJlTnVsbCgiY3VycmVudFZpZXcudmlld1RhcmdldCIpOwogCiAKIGRlYnVnKCIiKTsKLWRl
YnVnKCJUcnkgY2hhbmdpbmcgdmlld1RhcmdldFN0cmluZyIpOworZGVidWcoIlRyeSBjaGFuZ2lu
ZyB2aWV3VGFyZ2V0U3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJp
bWl0aXZlIHByb3BlcnR5Iik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnZp
ZXdUYXJnZXRTdHJpbmcgPSAnI3Rlc3QnIiwgIiN0ZXN0Iik7CiBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImN1cnJlbnRWaWV3LnZpZXdUYXJnZXRTdHJpbmciLCAiIik7CiAKIGRlYnVnKCIiKTsKLWRl
YnVnKCJUcnkgY2hhbmdpbmcgdHJhbnNmb3JtIik7Ci1zaG91bGRUaHJvdygiY3VycmVudFZpZXcu
dHJhbnNmb3JtLmNsZWFyKCkiKTsKK2RlYnVnKCJDaGFuZ2luZyB0cmFuc2Zvcm0gLSB0aGlzIGhh
cyBubyBhZmZlY3Qgb24gdGhlIFNWR1NWR0VsZW1lbnQgdGhlIHZpZXdTcGVjIGJlbG9uZ3MgdG8g
LSBpdCBpcyBhIGRldGFjaGVkIHByb3BlcnR5Iik7Cit2YXIgdHJhbnNmb3JtID0gc3ZnRWxlbWVu
dC5jcmVhdGVTVkdUcmFuc2Zvcm0oKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZp
ZXcudHJhbnNmb3JtLmFwcGVuZEl0ZW0odHJhbnNmb3JtKS50b1N0cmluZygpIiwgIltvYmplY3Qg
U1ZHVHJhbnNmb3JtXSIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnRyYW5zZm9ybS5udW1iZXJP
Zkl0ZW1zIiwgIjEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZpZXcudHJhbnNm
b3JtU3RyaW5nIiwgIm1hdHJpeCgxIDAgMCAxIDAgMCkiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKGN1
cnJlbnRWaWV3LnRyYW5zZm9ybS5jbGVhcigpKTsKIHNob3VsZEJlKCJjdXJyZW50Vmlldy50cmFu
c2Zvcm0ubnVtYmVyT2ZJdGVtcyIsICIwIik7CiAKK2RlYnVnKCIiKTsKK2RlYnVnKCJUcnkgY2hh
bmdpbmcgdHJhbnNmb3JtU3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEg
cHJpbWl0aXZlIHByb3BlcnR5Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3
LnRyYW5zZm9ybVN0cmluZyA9ICdyb3RhdGUoOTApJyIsICJyb3RhdGUoOTApIik7CitzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnRyYW5zZm9ybVN0cmluZyIsICIiKTsKKwogc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380147</attachid>
            <date>2019-10-03 11:52:31 -0700</date>
            <delta_ts>2019-10-03 11:52:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202479-20191003115230.patch</filename>
            <type>text/plain</type>
            <size>105371</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDA3ZTkxNDk2NDU3NGI1
MDEyMWIwMWJjOWEzOGUxZDZjZTdlMTUyMi4uMmY1Y2VmMDBlZTdmMGFjZDJiMDgxOWZiNzU5MGJk
MDMzMWM5ZTZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwMSBAQAorMjAxOS0xMC0wMyAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ug
RE9NUG9pbnQgYSBET01MaXZlT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDI0NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTVkdQcm9wZXJ0eSBoYXMgdG8gY29tZSBiYWNrIGJlY2F1c2UgRE9N
UG9pbnQgaW5oZXJpdHMgRE9NUG9pbnRSZWFkT25seQorICAgICAgICB3aGljaCBpcyBSZWZDb3Vu
dGVkLiBTbyBET01MaXZlUHJvcGVydHkgY2FuJ3QgYmUgUmVmQ291bnRlZC4gT3RoZXJ3aXNlCisg
ICAgICAgIERPTVBvaW50IHdpbGwgbWFrZSBhIGRpYW1vbmQgaW5oZXJpdGFuY2UuIFNWR1Byb3Bl
cnR5IHdpbGwgaW5oZXJpdCAKKyAgICAgICAgRE9NTGl2ZVByb3BlcnR5IGFuZCBpdCB3aWxsIGJl
IFJlZkNvdW50ZWQuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBkb20vRE9NTGl2ZVByb3BlcnR5Lmg6CisgICAgICAgICogZG9tL0RPTVBvaW50Lmg6
IEFkZGVkLgorICAgICAgICAqIGRvbS9ET01Qb2ludC5oOgorICAgICAgICAqIGRvbS9ET01Qb2lu
dC5pZGw6CisgICAgICAgICogZG9tL0RPTVBvaW50UmVhZE9ubHkuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVBvaW50UmVhZE9ubHk6OnhGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpET01Qb2ludFJlYWRPbmx5Ojp5Rm9yQmluZGluZ3MgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NUG9pbnRSZWFkT25seTo6ekZvckJpbmRpbmdzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVBvaW50UmVhZE9ubHk6OndGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgICog
ZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uRXZlbnQuY3BwOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnLmg6CisgICAgICAg
ICogc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NW
R01lbWJlckFjY2Vzc29yLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJpbWl0aXZl
UHJvcGVydHlBbmltYXRvci5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6aXNBdHRhY2hlZCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6YXR0YWNoKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5OjpkZXRhY2gpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmNvbnRleHRFbGVtZW50IGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5Ojpjb21taXRDaGFuZ2UpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmFjY2VzcyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6aXNSZWFkT25seSBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6aXNEaXJ0eSBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6c2V0RGlydHkpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OnN5bmNocm9uaXplKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5OjpTVkdQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAg
ICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlBbmltYXRvckZhY3RvcnkuaDoKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eS5oOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHkuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVy
dGllcy9TVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3IuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGll
cy9TVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3JJbXBsLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRp
ZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3RBbmltYXRvci5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0
aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3JJbXBsLmg6CisKKzIwMTktMTAtMDEgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBs
YWNlIFNWR1Byb3BlcnR5L1NWR1Byb3BlcnR5T3duZXIgYnkgRE9NTGl2ZVByb3BlcnR5L0RPTUxp
dmVQcm9wZXJ0eU9ic2VydmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDE3ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIGlzIGEgc3RlcCB0b3dhcmRzIHJlcGxhY2luZyBTVkdQb2ludCBieSBE
T01Qb2ludC4KKworICAgICAgICAtLSBBZGQgYSBuZXcgY2xhc3MsIG5hbWVkIERPTUxpdmVQcm9w
ZXJ0eS4gSXRzIGpvYiBpcyB0byBjb21tdW5pY2F0ZSB0aGUKKyAgICAgICAgICAgY2hhbmdlcyBp
biB0aGlzIG9iamVjdCB0byBpdHMgb2JzZXJ2ZXIuIFRoaXMgaXMgcmVwbGFjaW5nIFNWR1Byb3Bl
cnR5LgorICAgICAgICAgICBET01Qb2ludCB3aWxsIGJlIG1hZGUgaW4gYSBzdXBlciBvZiBpdCBh
bHNvIGluIGEgZm9sbG93aW5nIHBhdGNoLgorCisgICAgICAgIC0tIEFkZCBhIG5ldyBjbGFzcywg
bmFtZWQgRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIgYW5kIG1ha2UgaXQgdGhlIGJhc2UKKyAgICAg
ICAgICAgY2xhc3Mgb2YgRE9NTGl2ZVByb3BlcnR5IG9ic2VydmVycy4gQ3VycmVudGx5IHRoZSBm
b2xsb3dpbmcgY2xhc3MgYXJlCisgICAgICAgICAgIG1hZGUgc3VwZXIgY2xhc3NlcyBvZiBET01M
aXZlUHJvcGVydHlPYnNlcnZlcjoKKyAgICAgICAgICAgMS4gU1ZHRWxlbWVudDogVGhpcyBvYnNl
cnZlcyB0aGUgY2hhbmdlcyBpbiBhbGwgdGhlIFNWRyBwcm9wZXJ0aWVzLgorICAgICAgICAgICAy
LiBTVkdBbmltYXRlZFByb3BlcnR5OiBUaGlzIG9ic2VydmVzIHRoZSBjaGFuZ2VzIGluIGl0cyBi
YXNlVmFsLgorICAgICAgICAgICAzLiBTVkdQcm9wZXJ0eUxpc3Q6IFRoaXMgb2JzZXJ2ZXMgdGhl
IGNoYW5nZXMgaW4gdGhlIGl0ZW1zLgorICAgICAgICAgICA0LiBTVkdUcmFuc2Zvcm06IFRoaXMg
b2JzZXJ2ZXMgdGhlIGNoYW5nZXMgaW4gdGhlIHVuZGVybHlpbmcgU1ZHTWF0cml4LgorCisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogZG9tL0RPTUxpdmVQcm9wZXJ0eS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6aXNBdHRhY2hlZCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpET01MaXZlUHJvcGVydHk6Om9ic2VydmVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6YXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxp
dmVQcm9wZXJ0eTo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6
c3ZnQ29udGV4dEVsZW1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3Bl
cnR5Ojppc1JlYWRPbmx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0
eTo6Y29tbWl0Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6dmFs
dWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01MaXZlUHJvcGVydHk6OkRP
TUxpdmVQcm9wZXJ0eSk6CisgICAgICAgICogZG9tL0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXI6Om9ic2Vy
dmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eU9ic2VydmVyOjpw
cm9wZXJ0eVNWR0NvbnRleHRFbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxp
dmVQcm9wZXJ0eU9ic2VydmVyOjppc1Byb3BlcnR5UmVhZE9ubHkgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXI6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKToK
KyAgICAgICAgKiBzdmcvU1ZHQW5nbGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpj
cmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0VsZW1lbnQ6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKToKKyAgICAgICAgKiBzdmcvU1ZHRWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGguaDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0xlbmd0aDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6dmFsdWVGb3JC
aW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OnNldFZhbHVlRm9yQmluZGlu
Z3MpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpjb252ZXJ0VG9TcGVjaWZpZWRVbml0
cyk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0xlbmd0aExpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGhMaXN0OjpT
VkdMZW5ndGhMaXN0KToKKyAgICAgICAgKiBzdmcvU1ZHTWF0cml4Lmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXRyaXg6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR051bWJlci5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyOjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdOdW1i
ZXJMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0OjpjcmVhdGUpOgorICAg
ICAgICAqIHN2Zy9TVkdQYXRoU2VnLmg6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0Lmg6
CisgICAgICAgICogc3ZnL1NWR1BvaW50TGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9p
bnRMaXN0OjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVhdGUpOgorICAg
ICAgICAqIHN2Zy9TVkdSZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0OjpjcmVhdGUp
OgorICAgICAgICAqIHN2Zy9TVkdTdHJpbmdMaXN0Lmg6CisgICAgICAgICogc3ZnL1NWR1RyYW5z
Zm9ybS5oOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1MaXN0Lmg6CisgICAgICAgICogc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFByb3BlcnR5OjpvYnNlcnZlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFByb3BlcnR5Ojpjb21taXRQcm9wZXJ0eUNoYW5nZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojpvd25lciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICog
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuaDoKKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5UGFpckFjY2Vzc29ySW1wbC5oOgorICAgICAg
ICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR0xpc3QuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdN
ZW1iZXJBY2Nlc3Nvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWVtYmVyQWNjZXNzb3I6Om1h
dGNoZXMgY29uc3QpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1BvaW50ZXJNZW1iZXJB
Y2Nlc3Nvci5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ByaW1pdGl2ZVByb3BlcnR5
QW5pbWF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0
b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1h
dG9yOjpTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9yKToKKyAgICAgICAgKiBzdmcvcHJvcGVy
dGllcy9TVkdQcm9wZXJ0eS5oOiBSZW1vdmVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NW
R1Byb3BlcnR5QWNjZXNzb3IuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0
eUFuaW1hdG9yRmFjdG9yeS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlBbmltYXRv
ckZhY3Rvcnk6OmNyZWF0ZUNvbG9yQW5pbWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJv
cGVydHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZUxlbmd0aEFuaW1hdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1Byb3BlcnR5QW5pbWF0b3JGYWN0b3J5OjpjcmVhdGVMZW5ndGhMaXN0QW5pbWF0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0
ZU51bWJlckFuaW1hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5QW5pbWF0b3JG
YWN0b3J5OjpjcmVhdGVTdHJpbmdBbmltYXRvcik6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMv
U1ZHUHJvcGVydHlMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eUxpc3Q6OlNW
R1Byb3BlcnR5TGlzdCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25l
ci5oOiBSZW1vdmVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXJS
ZWdpc3RyeS5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5UmVnaXN0cnku
aDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eS5o
OgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHkuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1ZhbHVlUHJvcGVydHk6OlNWR1ZhbHVlUHJvcGVydHkpOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlBbmltYXRvci5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9yOjpTVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3Ip
OgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlBbmltYXRvckltcGwu
aDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdC5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVmFsdWVQcm9wZXJ0eUxpc3Q6OlNWR1ZhbHVlUHJvcGVydHlMaXN0
KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9y
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yOjpTVkdW
YWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdW
YWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9ySW1wbC5oOgorCisyMDE5LTEwLTAxICBTYWlkIEFib3Ut
SGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFNWR1By
b3BlcnR5U3RhdGUgZnJvbSBTVkdQcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNDM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhIHN0ZXAgdG93YXJkcyByZXBsYWNpbmcgU1ZH
UG9pbnQgYnkgRE9NUG9pbnQuCisKKyAgICAgICAgU1ZHUHJvcGVydHkga2VlcHMgYSBtZW1iZXIg
b2YgdHlwZSBTVkdQcm9wZXJ0eVN0YXRlIHdoaWNoIHRlbGxzIHdoZXRoZXIKKyAgICAgICAgaXQg
bmVlZHMgdG8gYmUgcmUtc2VyaWFsaXplZCB0byBpdHMgYXR0cmlidXRlIG9yIG5vdC4gQnV0IHRo
ZSBkaXJ0eSBzdGF0ZQorICAgICAgICBpcyBvbmx5IHNldCBpbiBTVkdFbGVtZW50Ojpjb21taXRQ
cm9wZXJ0eUNoYW5nZSgpLgorCisgICAgICAgIFNvIGluc3RlYWQgb2YgaGF2aW5nIFNWR0VsZW1l
bnQgc2VuZHMgdGhpcyBjaGFuZ2UgYmFjayB0byB0aGUgcHJvcGVydHksCisgICAgICAgIHdlIGFy
ZSBnb2luZyB0byBrZWVwIGEgSGFzaFNldDxRdWFsaWZpZWROYW1lPiBpbiBTVkdFbGVtZW50IHRv
IHRlbGwgd2hpY2gKKyAgICAgICAgYXR0cmlidXRlcyBuZWVkIHRvIGJlIHJlLXNlcmlhbGl6ZWQu
IEFuZCBpbnN0ZWFkIG9mIGNhbGxpbmcgdGhlIHZpcnR1YWwKKyAgICAgICAgbWV0aG9kIHN5bmNo
cm9uaXplKCkgd2hpY2ggd2FzIHJldHVybmluZyBPcHRpb25hbDxTdHJpbmc+LCB3ZSBhcmUgZ29p
bmcKKyAgICAgICAgdG8gY2FsbCB0aGUgdmlydHVhbCBtZXRob2QgdmFsdWVBc1N0cmluZygpIHdo
aWNoIHJldHVybnMgYSBTdHJpbmcuCisKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50OjpzeW5jaHJvbml6ZUF0dHJpYnV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdFbGVtZW50OjpzeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6Y29tbWl0UHJvcGVydHlDaGFuZ2UpOgorICAgICAg
ICAqIHN2Zy9TVkdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aC5oOgorICAgICAg
ICAqIHN2Zy9TVkdMZW5ndGhMaXN0Lmg6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6aW5pdGlhbFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT46
OmZyb21TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFp
dHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6cGFyc2UpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
Pjo6dG9TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkRGVjb3JhdGVkUHJvcGVydHkuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZFByaW1pdGl2ZVByb3BlcnR5Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6
dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3Bl
cnR5Ojppc0RpcnR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkUHJvcGVydHk6OnNldERpcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkUHJvcGVydHk6OnN5bmNocm9uaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TGlzdC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlQYWlyQWNjZXNzb3JJbXBsLmg6CisgICAgICAgICogc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5Lmg6CisgICAgICAgICogc3ZnL3By
b3BlcnRpZXMvU1ZHTWVtYmVyQWNjZXNzb3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01lbWJl
ckFjY2Vzc29yOjp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01l
bWJlckFjY2Vzc29yOjpzeW5jaHJvbml6ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogc3Zn
L3Byb3BlcnRpZXMvU1ZHUG9pbnRlck1lbWJlckFjY2Vzc29yLmg6CisgICAgICAgICogc3ZnL3By
b3BlcnRpZXMvU1ZHUHJvcGVydHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5Ojph
dHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmRldGFjaCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6aXNEaXJ0eSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6c2V0RGlydHkpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHk6OnN5bmNocm9uaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkuaDoKKyAgICAgICAgKiBzdmcvcHJv
cGVydGllcy9TVkdQcm9wZXJ0eVJlZ2lzdHJ5Lmg6CisKKzIwMTktMTAtMDEgIFNhaWQgQWJvdS1I
YWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgU1ZHUHJv
cGVydHlBY2Nlc3MgZnJvbSBTVkdQcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNDE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhIHN0ZXAgdG93YXJkcyByZXBsYWNpbmcgU1ZH
UG9pbnQgYnkgRE9NUG9pbnQuCisKKyAgICAgICAgQW4gU1ZHUHJvcGVydHkgaXMgcmVhZC1vbmx5
IGlmIGl0IG9yIGl0cyBvd25lciBpcyB0aGUgYW5pbVZhbCBvZiBhbgorICAgICAgICBTVkdBbmlt
YXRlZFByb3BlcnR5IG9yIFNWR0FuaW1hdGVkUHJvcGVydHlMaXN0LiBJbiB0aGlzIGNhc2UgYWxs
IGF0dGVtcHRzCisgICAgICAgIHRvIGNoYW5nZSBpdCB0aHJvdWdoIEphdmFTY3JpcHQgc2hvdWxk
IHRocm93IGV4cGVjdGlvbnMuCisKKyAgICAgICAgU28gaW5zdGVhZCBvZiBrZWVwaW5nIGEgbWVt
YmVyIG9mIFNWR1Byb3BlcnR5QWNjZXNzIGluIGVhY2ggU1ZHUHJvcGVydHksCisgICAgICAgIHdl
IGNhbiB3YWxrIHRocm91Z2ggdGhlIFNWR1Byb3BlcnR5T3duZXIgY2hhaW4gdGlsbCB3ZSByZWFj
aCBhbiBvd25lciBvZgorICAgICAgICB0eXBlIFNWR0FuaW1hdGVkUHJvcGVydHkgb3IgU1ZHQW5p
bWF0ZWRQcm9wZXJ0eUxpc3QuIFRoaXMgb3duZXIgY29tcGFyZXMKKyAgICAgICAgdGhlIHByb3Bl
cnR5IHRvIGJlIG1vZGlmaWVkIHdpdGggaXRzIGFuaW1WYWwuIEFuZCBpZiB0aGV5IGFyZSB0aGUg
c2FtZSwKKyAgICAgICAgaXQgd2lsbCByZXR1cm4gJ3RydWUnIHRocm91Z2ggaXRzIHZpcnR1YWwg
bWV0aG9kIGlzUHJvcGVydHlSZWFkT25seSgpLgorCisgICAgICAgICogc3ZnL1NWR0FuZ2xlLmg6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmdsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZH
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGguaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xlbmd0aDo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdC5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0xlbmd0aExpc3Q6OlNWR0xlbmd0aExpc3QpOgorICAgICAgICAqIHN2Zy9TVkdNYXRyaXgu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hdHJpeDo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcv
U1ZHTnVtYmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXI6OmNyZWF0ZSk6CisgICAg
ICAgICogc3ZnL1NWR051bWJlckxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlckxp
c3Q6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0Lmg6CisgICAgICAgICog
c3ZnL1NWR1BvaW50TGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnRMaXN0OjpjcmVh
dGUpOgorICAgICAgICAqIHN2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9T
VkdSZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0OjpjcmVhdGUpOgorICAgICAgICAq
IHN2Zy9TVkdUcmFuc2Zvcm0uaDoKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdC5oOgor
ICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlMaXN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5TGlzdDo6U1ZHQW5pbWF0ZWRQcm9wZXJ0
eUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3Q6OmVuc3Vy
ZUFuaW1WYWwpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9w
ZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5OjpTVkdB
bmltYXRlZFZhbHVlUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRWYWx1
ZVByb3BlcnR5OjplbnN1cmVBbmltVmFsKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQ
cm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmF0dGFjaCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1Byb3BlcnR5Ojpjb250ZXh0RWxlbWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
cm9wZXJ0eTo6aXNSZWFkT25seSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eTo6U1ZHUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmFjY2VzcyBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlMaXN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eUxpc3Q6OlNWR1Byb3BlcnR5TGlzdCk6
CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lci5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlPd25lcjo6aXNQcm9wZXJ0eVJlYWRPbmx5IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5T3duZXI6OnByb3BlcnR5Q29udGV4dEVsZW1lbnQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlPd25lcjo6YXR0cmlidXRlQ29u
dGV4dEVsZW1lbnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NW
R1ZhbHVlUHJvcGVydHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlUHJvcGVydHk6OlNW
R1ZhbHVlUHJvcGVydHkpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVy
dHlMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1ZVByb3BlcnR5TGlzdDo6U1ZHVmFs
dWVQcm9wZXJ0eUxpc3QpOgorCisyMDE5LTEwLTAxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91
aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSB0aGUgU1ZHIHByb3BlcnRpZXMgb2Yg
U1ZHVmlld1NwZWMgbW9kaWZpYWJsZSBidXQgZGV0YWNoZWQgcHJvcGVydGllcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNDExCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gZmFjaWxpdGF0ZSBhY2Nl
c3NpbmcgdGhlIFNWR1Byb3BlcnRpZXMsIG1ha2UgYWxsIHRoZSBwcm9wZXJ0aWVzIG9mCisgICAg
ICAgIFNWR1ZpZXdTcGVjIG1vZGlmaWFibGUgYnV0IGRldGFjaGVkIHByb3BlcnRpZXMuIFRoaXMg
d2lsbCBiZSBpbiBjb21wbGlhbmNlCisgICAgICAgIHdpdGggdGhlIHNwZWNzOiBodHRwczovL3d3
dy53My5vcmcvVFIvU1ZHMTEvdHlwZXMuaHRtbCNJbnRlcmZhY2VTVkdWaWV3U3BlYy4KKworICAg
ICAgICAqIHN2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRml0
VG9WaWV3Qm94OjpTVkdGaXRUb1ZpZXdCb3gpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRml0VG9W
aWV3Qm94OjpwYXJzZVZpZXdCb3gpOgorICAgICAgICAqIHN2Zy9TVkdGaXRUb1ZpZXdCb3guaDoK
KyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmll
d1NwZWM6OlNWR1ZpZXdTcGVjKToKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuaDoKKwogMjAx
OS0xMC0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgYXR0ZW1wdCB0byBmaXggV2luZG93cyBidWlsZCBhZnRlciByMjUwNTI3LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKaW5kZXggNTRhZjIyZGFkZTY1M2ZkM2FiYTc4NmMxNTlmZTAwZDJmMGE4YmQ5NC4u
MzU5Mzc2MmY5NjBlMmYwMTI4MmZmOWI5ODlhMGFiZTY2NDdiZWY0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCkBAIC0zNjAsNiArMzYwLDggQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIGRvbS9ET01FeGNlcHRpb24uaAogICAgIGRvbS9ET01IaWdoUmVzVGltZVN0YW1w
LmgKICAgICBkb20vRE9NSW1wbGVtZW50YXRpb24uaAorICAgIGRvbS9ET01MaXZlUHJvcGVydHku
aAorICAgIGRvbS9ET01MaXZlUHJvcGVydHlPYnNlcnZlci5oCiAgICAgZG9tL0RPTVBhc3RlQWNj
ZXNzLmgKICAgICBkb20vRE9NUmVjdC5oCiAgICAgZG9tL0RPTVJlY3RJbml0LmgKQEAgLTEzOTAs
NyArMTM5Miw2IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBz
dmcvcHJvcGVydGllcy9TVkdMaXN0LmgKICAgICBzdmcvcHJvcGVydGllcy9TVkdQcmltaXRpdmVM
aXN0LmgKICAgICBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5oCi0gICAgc3ZnL3Byb3BlcnRp
ZXMvU1ZHUHJvcGVydHlPd25lci5oCiAgICAgc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFp
dHMuaAogCiAgICAgdGVzdGluZy9Nb2NrR2FtZXBhZC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGY5NTg2
ZmEwNDhjYjdlZWQyODY1OWJhMDYwYjhkZjhhMTBlMmJkZGEuLjIyMzJjNjZlNjg1YmRhYTIyYzdl
ZDMzYjQ5ZTY0OTBlMDU0MjYzYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC04MzcsNiArODM3LDcgQEAg
ZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHAKIGRvbS9DdXN0b21FdmVudC5jcHAKIGRvbS9E
T01FeGNlcHRpb24uY3BwCiBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCitkb20vRE9NUG9pbnQu
Y3BwCiBkb20vRE9NUG9pbnRSZWFkT25seS5jcHAKIGRvbS9ET01RdWFkLmNwcAogZG9tL0RPTVJl
Y3RMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGExNzYxYzY3YjRjOTVkOGVhYjQ3N2E3YzAwYWU1NTQ1ZDIzYTc5ZWUu
LjlkMjYwMWViNTQ1ZDBlNjRlZjU5YWU4OTIwNGY3OGZjNjcyZWNlNjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwODUsMTIg
KzIwODUsMTMgQEAKIAkJNzFFRkNFREMyMDJCMzhBOTAwRDdDNDExIC8qIEFuaW1hdGlvbkVmZmVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFFRkNF
RDcyMDJCMzg4RDAwRDdDNDExIC8qIEFuaW1hdGlvbkVmZmVjdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyMTQ0MzMxMjIzRUM4NTQwMEYxMkZG
NyAvKiAobnVsbCkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzIxNDQzMzIyMjNFQzg1RjAw
RjEyRkY3IC8qIChudWxsKSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk3MjE0NDMzMzIyM0VD
OEIwMDBGMTJGRjcgLyogU1ZHUHJvcGVydHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU1RUU1MzYzMjIzQjJBMjQwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0
eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTcy
MTQ0MzM0MjIzRUM5MTYwMEYxMkZGNyAvKiBTVkdQcm9wZXJ0eU93bmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUVFNTM2MDIyM0IyQTIxMDBGQkE5
NDQgLyogU1ZHUHJvcGVydHlPd25lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTcyMjgzRjBFMjMwQjI2OEMwMEY1RDgyOCAvKiBJbWFnZVBhaW50
aW5nT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIEltYWdlUGFpbnRpbmdPcHRpb25zLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI0RUQzMzIx
QTNBOEIyMzAwRjVGMTNDIC8qIEpTRVhUQmxlbmRNaW5NYXguaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNEVEMzMwMUEzQThCMjMwMEY1RjEzQyAvKiBK
U0VYVEJsZW5kTWluTWF4LmggKi87IH07CiAJCTcyNEVFNTUwMURDODBEN0YwMEE5MUZGQiAvKiBB
Y3Rpdml0eVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3MjRFRTU0RTFEQzdGMjVCMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyNEVFNTUxMURDODBE
ODQwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNEVFNTRGMURDN0YyNUIwMEE5MUZG
QiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3MjgzMTVDMTIzNDQ0MDE1MDAwN0QyNzcgLyog
RE9NTGl2ZVByb3BlcnR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3MjgzMTVDMDIzNDQyMjkyMDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzI4MzE1QzIy
MzQ0NDAyMjAwMDdEMjc3IC8qIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjgzMTVCRTIzNDQyMjkxMDAwN0Qy
NzcgLyogRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3MjgzMTVDNzIzNDUxODIzMDAwN0QyNzcgLyogU1ZH
UHJvcGVydHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcyODMxNUM1MjM0NTBGQzIwMDA3RDI3NyAvKiBTVkdQcm9wZXJ0eS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc1NTNDRkU4MTA4RjQ3M0YwMEVB
MjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGlu
ZVJlY29yZEZhY3RvcnkuaCAqLzsgfTsKIAkJNzU3OTNFODQwRDBDRTBCMzAwN0ZDMEFDIC8qIE1l
c3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU3OTNFODEwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oICovOyB9OwogCQk3
NTc5M0VDOTBEMENFNzJEMDA3RkMwQUMgLyogSlNNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRUM3MEQwQ0U3MkQwMDdGQzBB
QyAvKiBKU01lc3NhZ2VFdmVudC5oICovOyB9OwpAQCAtODU2NSwxMCArODU2Niw4IEBACiAJCTU1
RUU1MzVEMjIzQjJBMEQwMEZCQTk0NCAvKiBTVkdBbmltYXRlZFByb3BlcnR5UGFpckFjY2Vzc29y
SW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFByb3Bl
cnR5UGFpckFjY2Vzc29ySW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUVF
NTM1RTIyM0IyQTBFMDBGQkE5NDQgLyogU1ZHQW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGlvbkFkZGl0aXZl
VmFsdWVGdW5jdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUVFNTM1RjIy
M0IyQTBGMDBGQkE5NDQgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBbmltYXRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFByb3BlcnR5UGFpckFuaW1h
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU1RUU1MzYwMjIzQjJBMjEwMEZC
QTk0NCAvKiBTVkdQcm9wZXJ0eU93bmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNWR1Byb3BlcnR5T3duZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVF
RTUzNjEyMjNCMkEyMjAwRkJBOTQ0IC8qIFNWR0F0dHJpYnV0ZUFuaW1hdG9yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0F0dHJpYnV0ZUFuaW1hdG9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVFRTUzNjIyMjNCMkEyMzAwRkJBOTQ0IC8q
IFNWR0FuaW1hdGVkUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NUVF
NTM2MzIyM0IyQTI0MDBGQkE5NDQgLyogU1ZHUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU1ZHUHJvcGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTVFRTUzNjQyMjNCMkEyNDAwRkJBOTQ0IC8qIFNWR0F0dHJpYnV0ZUFuaW1hdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0F0dHJpYnV0ZUFuaW1hdG9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1RkE3RkZBMjExMEVDRDcwMDVBRUZFNyAvKiBT
Vkdab29tQW5kUGFuVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdab29tQW5kUGFuVHlwZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzA0NDA1NzFFNTM4NTE2MDAzNTY2MDEgLyog
Q3J5cHRvQWxnb3JpdGhtQUVTX0NGQk1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1BRVNfQ0ZCTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTk0NDksNiArOTQ0OCwxMCBAQAogCQk3MjdBRkVEMTFBMkVBNkEwMDAw
NDQyRTggLyogRVhUc1JHQi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBFWFRzUkdCLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI3QUZFRDIxQTJF
QTZBMDAwMDQ0MkU4IC8qIEVYVHNSR0IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRVhUc1JHQi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjdBRkVEMzFBMkVB
NkEwMDAwNDQyRTggLyogRVhUc1JHQi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRVhUc1JH
Qi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyODMxNUJFMjM0NDIyOTEwMDA3
RDI3NyAvKiBET01MaXZlUHJvcGVydHlPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01MaXZlUHJvcGVydHlPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3MjgzMTVDMDIzNDQyMjkyMDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUxpdmVQcm9wZXJ0eS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjgzMTVDNTIzNDUwRkMyMDAwN0QyNzcgLyogU1ZH
UHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUHJvcGVydHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI4MzE1Q0UyMzQ2NTkwMTAwMDdEMjc3
IC8qIERPTVBvaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVBvaW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIEltYWdl
UGFpbnRpbmdPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlUGFpbnRpbmdPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyRTQxNzYxMUEyRThEMkYwMDRDNTYyQSAv
KiBKU0VYVHNSR0IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNF
WFRzUkdCLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJFNDE3NjIxQTJFOEQy
RjAwNEM1NjJBIC8qIEpTRVhUc1JHQi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0VYVHNSR0IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MTYzLDEzICsx
NjE2NiwxMiBAQAogCQkJCTU1RENDNTI1MjI0MDc0OUUwMEMyNkUzMiAvKiBTVkdQcmltaXRpdmVM
aXN0LmggKi8sCiAJCQkJNzI2NkYwMTUyMjQxQzA5ODAwODMzOTc1IC8qIFNWR1ByaW1pdGl2ZVBy
b3BlcnR5QW5pbWF0b3IuaCAqLywKIAkJCQk3MjY2RjAxNDIyNDFCRkIyMDA4MzM5NzUgLyogU1ZH
UHJpbWl0aXZlUHJvcGVydHlBbmltYXRvckltcGwuaCAqLywKLQkJCQk1NUVFNTM2MzIyM0IyQTI0
MDBGQkE5NDQgLyogU1ZHUHJvcGVydHkuaCAqLywKKwkJCQk3MjgzMTVDNTIzNDUwRkMyMDAwN0Qy
NzcgLyogU1ZHUHJvcGVydHkuaCAqLywKIAkJCQk1NURDQzUyNjIyNDA3NEZBMDBDMjZFMzIgLyog
U1ZHUHJvcGVydHlBY2Nlc3Nvci5oICovLAogCQkJCTU1RENDNTI3MjI0MDc1MEIwMEMyNkUzMiAv
KiBTVkdQcm9wZXJ0eUFjY2Vzc29ySW1wbC5oICovLAogCQkJCTcyNjZGMDE2MjI0MUMwRkUwMDgz
Mzk3NSAvKiBTVkdQcm9wZXJ0eUFuaW1hdG9yLmggKi8sCiAJCQkJNzI2NkYwMTMyMjQxQkNFMjAw
ODMzOTc1IC8qIFNWR1Byb3BlcnR5QW5pbWF0b3JGYWN0b3J5LmggKi8sCiAJCQkJNzI2NkYwMjcy
MjQzMTA5MjAwODMzOTc1IC8qIFNWR1Byb3BlcnR5TGlzdC5oICovLAotCQkJCTU1RUU1MzYwMjIz
QjJBMjEwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0eU93bmVyLmggKi8sCiAJCQkJNTVCRTAyNUMyMjNC
MjlDMzAwMzJGMDhBIC8qIFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeS5oICovLAogCQkJCTU1QkUw
MjU3MjIzQjI5QzAwMDMyRjA4QSAvKiBTVkdQcm9wZXJ0eVJlZ2lzdHJ5LmggKi8sCiAJCQkJMDg4
QTBFMDMxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5VHJhaXRzLmggKi8sCkBAIC0yNzU1
OSw3ICsyNzU2MSwxMCBAQAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBs
ZW1lbnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgxODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggKi8sCiAJCQkJOTNFRUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUlt
cGxlbWVudGF0aW9uLmlkbCAqLywKKwkJCQk3MjgzMTVDMDIzNDQyMjkyMDAwN0QyNzcgLyogRE9N
TGl2ZVByb3BlcnR5LmggKi8sCisJCQkJNzI4MzE1QkUyMzQ0MjI5MTAwMDdEMjc3IC8qIERPTUxp
dmVQcm9wZXJ0eU9ic2VydmVyLmggKi8sCiAJCQkJRjRCNDIyQzIyMjBDMDAwMDAwOUUxRTdEIC8q
IERPTVBhc3RlQWNjZXNzLmggKi8sCisJCQkJNzI4MzE1Q0UyMzQ2NTkwMTAwMDdEMjc3IC8qIERP
TVBvaW50LmNwcCAqLywKIAkJCQkwRjQ5NjY5OTFEQjQwOEMxMDBBMjc0QkIgLyogRE9NUG9pbnQu
aCAqLywKIAkJCQkwRjQ5NjY5QTFEQjQwOEMxMDBBMjc0QkIgLyogRE9NUG9pbnQuaWRsICovLAog
CQkJCTBGNDk2NkEyMURCNDA5MTAwMEEyNzRCQiAvKiBET01Qb2ludEluaXQuaCAqLywKQEAgLTI5
MTUzLDYgKzI5MTU4LDggQEAKIAkJCQlFM0E3NzY2NzFEQzg1RDI4MDBCNjkwRDggLyogRE9NSklU
SURMQ29udmVydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTNBNzc2NjgxREM4NUQyODAwQjY5MEQ4
IC8qIERPTUpJVElETFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzNTgwMkI2MURDODQzNUQw
MEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3Mjgz
MTVDMTIzNDQ0MDE1MDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5LmggaW4gSGVhZGVycyAqLywK
KwkJCQk3MjgzMTVDMjIzNDQ0MDIyMDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzNkFDRUNBMUVDQTk1NjkwMDRCRDAxMiAvKiBET01NYXRy
aXguaCBpbiBIZWFkZXJzICovLAogCQkJCTdDQkJCQ0M3MUY1NjA1ODEwMDVFRkFBQyAvKiBET01N
YXRyaXgyREluaXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNkFDRUNCMUVDQTk1NkQwMDRCRDAx
MiAvKiBET01NYXRyaXhJbml0LmggaW4gSGVhZGVycyAqLywKQEAgLTMxOTc2LDggKzMxOTgzLDcg
QEAKIAkJCQlCMjIyN0E5NDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUG9seWxpbmVFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVEQ0M1MjgyMjQwN0IyMDAwQzI2
RTMyIC8qIFNWR1ByaW1pdGl2ZUxpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTcyMTQ0MzMzMjIz
RUM4QjAwMEYxMkZGNyAvKiBTVkdQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNzIxNDQz
MzQyMjNFQzkxNjAwRjEyRkY3IC8qIFNWR1Byb3BlcnR5T3duZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTcyODMxNUM3MjM0NTE4MjMwMDA3RDI3NyAvKiBTVkdQcm9wZXJ0eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDg4QTBFMEMxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5VHJhaXRzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5QTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUmFkaWFs
R3JhZGllbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEVERTE5RjEyQTUwQjhFMDBC
OTU3OTcgLyogU1ZHUmVjdC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRE9NTGl2ZVByb3BlcnR5LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NTGl2ZVBy
b3BlcnR5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU1OTQ4YjY4MzU5MWNmYmVmNTczZmVmYTg5MGVjYWVjMjYy
YmM5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01MaXZlUHJvcGVy
dHkuaApAQCAtMCwwICsxLDgwIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBh
cmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIkRPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgRE9NTGl2ZVByb3BlcnR5IHsKK3B1YmxpYzoKKyAgICAvLyBNYW5h
Z2luZyB0aGUgcmVsYXRpb25zaGlwIHdpdGggdGhlIG9ic2VydmVyLgorICAgIGJvb2wgaXNBdHRh
Y2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1fb2JzZXJ2ZXI7IH0KKyAgICBET01MaXZlUHJvcGVydHlP
YnNlcnZlciogb2JzZXJ2ZXIoKSBjb25zdCB7IHJldHVybiBtX29ic2VydmVyOyB9CisKKyAgICB2
b2lkIGF0dGFjaChET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIpCisgICAgeworICAg
ICAgICBBU1NFUlQoIW1fb2JzZXJ2ZXIpOworICAgICAgICBtX29ic2VydmVyID0gb2JzZXJ2ZXI7
CisgICAgfQorCisgICAgdm9pZCBkZXRhY2goKQorICAgIHsKKyAgICAgICAgbV9vYnNlcnZlciA9
IG51bGxwdHI7CisgICAgfQorCisgICAgLy8gVHJhdmVyc2UgdGhlIG9ic2VydmVycyBjaGFpbiB0
aWxsIGFuIFNWR0VsZW1lbnQgb2JzZXJ2ZXIgaXMgcmVhY2hlZC4KKyAgICBjb25zdCBTVkdFbGVt
ZW50KiBzdmdDb250ZXh0RWxlbWVudCgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIW1fb2Jz
ZXJ2ZXIpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIG1fb2Jz
ZXJ2ZXItPnByb3BlcnR5U1ZHQ29udGV4dEVsZW1lbnQoKTsKKyAgICB9CisKKyAgICAvLyBDaGVj
ayBpZiB0aGUgb2JzZXJ2ZXIgZGlzYWxsb3dzIGNoYW5naW5nIHRoaXMgcHJvcGVydHkuCisgICAg
Ym9vbCBpc1JlYWRPbmx5KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX29ic2VydmVy
ICYmIG1fb2JzZXJ2ZXItPmlzUHJvcGVydHlSZWFkT25seSgqdGhpcyk7CisgICAgfQorCisgICAg
Ly8gQ29tbWl0IHRoZSBsaXZlIHByb3BlcnR5IGNoYW5nZXMgdmlhIHRoZSBvYnNlcnZlcnMgY2hh
aW4uCisgICAgdm9pZCBjb21taXRDaGFuZ2UoKQorICAgIHsKKyAgICAgICAgaWYgKCFtX29ic2Vy
dmVyKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX29ic2VydmVyLT5jb21taXRQcm9w
ZXJ0eUNoYW5nZSh0aGlzKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBET01MaXZlUHJvcGVy
dHkoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyID0gbnVsbHB0cikKKyAgICAgICAg
OiBtX29ic2VydmVyKG9ic2VydmVyKQorICAgIHsKKyAgICB9CisKKyAgICBET01MaXZlUHJvcGVy
dHlPYnNlcnZlciogbV9vYnNlcnZlciB7IG51bGxwdHIgfTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01MaXZlUHJvcGVydHlP
YnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDBhOTA3YWMxNjYwMTk3ZmQyYzI1N2JkYjY5OGViYjMzYzk3NTIwYQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01MaXZlUHJvcGVydHlPYnNlcnZl
ci5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFy
ZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25j
ZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTUxpdmVQcm9wZXJ0eTsKK2NsYXNz
IFNWR0VsZW1lbnQ7CisKK2NsYXNzIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyIHsKK3B1YmxpYzoK
KyAgICB2aXJ0dWFsIH5ET01MaXZlUHJvcGVydHlPYnNlcnZlcigpID0gZGVmYXVsdDsKKworICAg
IC8vIFRoZSBvYnNlcnZlciBpdHNlbGYgbWF5IGhhdmUgYW4gb2JzZXJ2ZXIuCisgICAgdmlydHVh
bCBET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIoKSBjb25zdCB7IHJldHVybiBudWxs
cHRyOyB9CisKKyAgICAvLyBUcmF2ZXJzZSB0aGUgb2JzZXJ2ZXJzIGNoYWluIHRpbGwgYW4gRWxl
bWVudCBvYnNlcnZlciBpcyByZWFjaGVkLgorICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCog
cHJvcGVydHlTVkdDb250ZXh0RWxlbWVudCgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIW9i
c2VydmVyKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIG9i
c2VydmVyKCktPnByb3BlcnR5U1ZHQ29udGV4dEVsZW1lbnQoKTsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIGJvb2wgaXNQcm9wZXJ0eVJlYWRPbmx5KGNvbnN0IERPTUxpdmVQcm9wZXJ0eSYgcHJvcGVy
dHkpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gb2JzZXJ2ZXIoKSAmJiBvYnNlcnZlcigp
LT5pc1Byb3BlcnR5UmVhZE9ubHkocHJvcGVydHkpOworICAgIH0KKworICAgIC8vIENvbW1pdCB0
aGUgbGl2ZSBwcm9wZXJ0eSBjaGFuZ2VzIHZpYSB0aGUgb2JzZXJ2ZXJzIGNoYWluLgorICAgIHZp
cnR1YWwgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqIHByb3BlcnR5
KQorICAgIHsKKyAgICAgICAgaWYgKCFvYnNlcnZlcigpKQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBvYnNlcnZlcigpLT5jb21taXRQcm9wZXJ0eUNoYW5nZShwcm9wZXJ0eSk7CisgICAg
fQorCitwcm90ZWN0ZWQ6CisgICAgRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIoKSA9IGRlZmF1bHQ7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NUG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40Y2VlMWFhYTA3YmFmMTczMzRiNGIxYzM4ZTJkZTMxZTkwODBkZTQ3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50LmNwcApAQCAtMCwwICsxLDQw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
CisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAg
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MKKyAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBDT1BZUklHSFQgSE9MREVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsCisgKiBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsCisgKiBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VECisgKiBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRPTVBvaW50LmgiCisKKyNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19B
TExPQ0FURURfSU1QTChET01Qb2ludCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NUG9pbnQuaAppbmRleCA3NzI3N2Q3ZjIxYjNmNGJjYzNjNDA0ZDUzZWUxZWM4Y2IwMzUz
YmMzLi5hOTBmNzM0OTRlOTVjNzk1Y2EzYmFlNmRiYTc3MzI0MGY3YTcwMDMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NUG9pbnQuaApAQCAtMzAsMTEgKzMwLDE0IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVk
ZSAiRE9NTGl2ZVByb3BlcnR5LmgiCiAjaW5jbHVkZSAiRE9NUG9pbnRSZWFkT25seS5oIgorI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgRE9NUG9pbnQgZmluYWwgOiBwdWJsaWMgRE9NUG9pbnRSZWFkT25seSB7CitjbGFzcyBE
T01Qb2ludCBmaW5hbCA6IHB1YmxpYyBET01Qb2ludFJlYWRPbmx5LCBwdWJsaWMgRE9NTGl2ZVBy
b3BlcnR5IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKERPTVBvaW50KTsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPERPTVBvaW50PiBjcmVhdGUoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3Vi
bGUgeiA9IDAsIGRvdWJsZSB3ID0gMSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01Qb2ludCh4
LCB5LCB6LCB3KSk7IH0KICAgICBzdGF0aWMgUmVmPERPTVBvaW50PiBjcmVhdGUoY29uc3QgRE9N
UG9pbnRJbml0JiBpbml0KSB7IHJldHVybiBjcmVhdGUoaW5pdC54LCBpbml0LnksIGluaXQueiwg
aW5pdC53KTsgfQpAQCAtNDUsMTIgKzQ4LDUzIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFooZG91
YmxlIHopIHsgbV96ID0gejsgfQogICAgIHZvaWQgc2V0Vyhkb3VibGUgdykgeyBtX3cgPSB3OyB9
CiAKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRYRm9yQmluZGluZ3MoZG91YmxlIHgpCisgICAg
eworICAgICAgICBpZiAoaXNSZWFkT25seSgpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CisgICAgCisgICAgICAgIG1feCA9IHg7
CisgICAgICAgIGNvbW1pdENoYW5nZSgpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKyAg
ICAKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRZRm9yQmluZGluZ3MoZG91YmxlIHkpCisgICAg
eworICAgICAgICBpZiAoaXNSZWFkT25seSgpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CisgICAgCisgICAgICAgIG1feSA9IHk7
CisgICAgICAgIGNvbW1pdENoYW5nZSgpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKyAg
ICAKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRaRm9yQmluZGluZ3MoZG91YmxlIHopCisgICAg
eworICAgICAgICBpZiAoaXNSZWFkT25seSgpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CisgICAgCisgICAgICAgIG1feiA9IHo7
CisgICAgICAgIGNvbW1pdENoYW5nZSgpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKyAg
ICAKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRXRm9yQmluZGluZ3MoZG91YmxlIHcpCisgICAg
eworICAgICAgICBpZiAoaXNSZWFkT25seSgpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07CisgICAgCisgICAgICAgIG1fdyA9IHc7
CisgICAgICAgIGNvbW1pdENoYW5nZSgpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKyAg
ICAKIHByaXZhdGU6CiAgICAgRE9NUG9pbnQoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeiwg
ZG91YmxlIHcpCiAgICAgICAgIDogRE9NUG9pbnRSZWFkT25seSh4LCB5LCB6LCB3KQogICAgIHsK
ICAgICB9CiB9Owotc3RhdGljX2Fzc2VydChzaXplb2YoRE9NUG9pbnQpID09IHNpemVvZihET01Q
b2ludFJlYWRPbmx5KSwgIiIpOworCitzdGF0aWNfYXNzZXJ0KHNpemVvZihET01Qb2ludCkgPT0g
c2l6ZW9mKERPTVBvaW50UmVhZE9ubHkpICsgc2l6ZW9mKERPTUxpdmVQcm9wZXJ0eSksICIiKTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RPTVBvaW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludC5pZGwKaW5kZXggNjli
YmMyZDBmZjIwNzYxNDZmZmQ1NTI3MDRkNTc2MjI1MTlkZDYwNS4uZDE2ZTA0ZWM0NGUxNDIxN2I4
MTM4ZTdlYzg5YWJmZTJmNDQ3ZmI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RP
TVBvaW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnQuaWRsCkBAIC0zNSwx
MyArMzUsMTMgQEAKICAgICAgICAgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSB6ID0gMCwg
b3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSB3ID0gMSksCiAgICAgRXhwb3NlZD0oV2luZG93
LFdvcmtlciksCiAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsLAotICAgIEltcGxlbWVudGF0
aW9uTGFja3NWVGFibGUKKyAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbgogXQogaW50ZXJmYWNlIERP
TVBvaW50IDogRE9NUG9pbnRSZWFkT25seSB7CiAgICAgW05ld09iamVjdF0gc3RhdGljIERPTVBv
aW50IGZyb21Qb2ludChvcHRpb25hbCBET01Qb2ludEluaXQgb3RoZXIpOwogCi0gICAgaW5oZXJp
dCBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB4OwotICAgIGluaGVyaXQgYXR0cmlidXRl
IHVucmVzdHJpY3RlZCBkb3VibGUgeTsKLSAgICBpbmhlcml0IGF0dHJpYnV0ZSB1bnJlc3RyaWN0
ZWQgZG91YmxlIHo7Ci0gICAgaW5oZXJpdCBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB3
OworICAgIFtJbXBsZW1lbnRlZEFzPXhGb3JCaW5kaW5nc10gaW5oZXJpdCBhdHRyaWJ1dGUgdW5y
ZXN0cmljdGVkIGRvdWJsZSB4OworICAgIFtJbXBsZW1lbnRlZEFzPXlGb3JCaW5kaW5nc10gaW5o
ZXJpdCBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB5OworICAgIFtJbXBsZW1lbnRlZEFz
PXpGb3JCaW5kaW5nc10gaW5oZXJpdCBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB6Owor
ICAgIFtJbXBsZW1lbnRlZEFzPXdGb3JCaW5kaW5nc10gaW5oZXJpdCBhdHRyaWJ1dGUgdW5yZXN0
cmljdGVkIGRvdWJsZSB3OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Q
b2ludFJlYWRPbmx5LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnRSZWFkT25seS5oCmlu
ZGV4IDBhNjhmZGYxYmMxOTRlNDMxN2UxYjU1ZmFkODlkNDZkYWVmZTcyMTEuLjlhNGRiNjYwOTE0
NTU5ODJhZjZmOGE3NTEzNTRiNmZjMDI2ZjQwMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01Qb2ludFJlYWRPbmx5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50
UmVhZE9ubHkuaApAQCAtNDMsNiArNDMsNyBAQCBjbGFzcyBET01Qb2ludDsKIGNsYXNzIERPTVBv
aW50UmVhZE9ubHkgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxE
T01Qb2ludFJlYWRPbmx5PiB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChET01Qb2ludFJl
YWRPbmx5KTsKIHB1YmxpYzoKKyAgICB2aXJ0dWFsIH5ET01Qb2ludFJlYWRPbmx5KCkgPSBkZWZh
dWx0OwogICAgIHN0YXRpYyBSZWY8RE9NUG9pbnRSZWFkT25seT4gY3JlYXRlKGRvdWJsZSB4LCBk
b3VibGUgeSwgZG91YmxlIHosIGRvdWJsZSB3KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTVBv
aW50UmVhZE9ubHkoeCwgeSwgeiwgdykpOyB9CiAgICAgc3RhdGljIFJlZjxET01Qb2ludFJlYWRP
bmx5PiBjcmVhdGUoY29uc3QgRE9NUG9pbnRJbml0JiBpbml0KSB7IHJldHVybiBjcmVhdGUoaW5p
dC54LCBpbml0LnksIGluaXQueiwgaW5pdC53KTsgfQogICAgIHN0YXRpYyBSZWY8RE9NUG9pbnRS
ZWFkT25seT4gZnJvbVBvaW50KGNvbnN0IERPTVBvaW50SW5pdCYgaW5pdCkgeyByZXR1cm4gY3Jl
YXRlKGluaXQueCwgaW5pdC55LCBpbml0LnosIGluaXQudyk7IH0KQEAgLTUyLDYgKzUzLDExIEBA
IHB1YmxpYzoKICAgICBkb3VibGUgeigpIGNvbnN0IHsgcmV0dXJuIG1fejsgfQogICAgIGRvdWJs
ZSB3KCkgY29uc3QgeyByZXR1cm4gbV93OyB9CiAKKyAgICBkb3VibGUgeEZvckJpbmRpbmdzKCkg
Y29uc3QgeyByZXR1cm4gbV94OyB9CisgICAgZG91YmxlIHlGb3JCaW5kaW5ncygpIGNvbnN0IHsg
cmV0dXJuIG1feTsgfQorICAgIGRvdWJsZSB6Rm9yQmluZGluZ3MoKSBjb25zdCB7IHJldHVybiBt
X3o7IH0KKyAgICBkb3VibGUgd0ZvckJpbmRpbmdzKCkgY29uc3QgeyByZXR1cm4gbV93OyB9CisK
ICAgICBFeGNlcHRpb25PcjxSZWY8RE9NUG9pbnQ+PiBtYXRyaXhUcmFuc2Zvcm0oRE9NTWF0cml4
SW5pdCYmKSBjb25zdDsKIAogcHJvdGVjdGVkOgpAQCAtNzEsNCArNzcsMyBAQCBwcm90ZWN0ZWQ6
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01Qb2ludFJlYWRPbmx5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2lu
dFJlYWRPbmx5LmlkbAppbmRleCAzZmZkNjZmZDcxMjFhOWRjN2NjNWY4NTczYTc2YTc4OTc0NGY5
NjhlLi40MWMzYzRlNTM4NmI2M2NhN2U2NzRhYjQzYjUzMDdmYWU1YTA4MjQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnRSZWFkT25seS5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsCkBAIC0zNCwxNSArMzQsMTUgQEAKICAgICBD
b25zdHJ1Y3RvcihvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHggPSAwLCBvcHRpb25hbCB1
bnJlc3RyaWN0ZWQgZG91YmxlIHkgPSAwLAogICAgICAgICBvcHRpb25hbCB1bnJlc3RyaWN0ZWQg
ZG91YmxlIHogPSAwLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHcgPSAxKSwKICAgICBF
eHBvc2VkPShXaW5kb3csV29ya2VyKSwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCisg
ICAgU2tpcFZUYWJsZVZhbGlkYXRpb24KIF0KIGludGVyZmFjZSBET01Qb2ludFJlYWRPbmx5IHsK
ICAgICBbTmV3T2JqZWN0XSBzdGF0aWMgRE9NUG9pbnRSZWFkT25seSBmcm9tUG9pbnQob3B0aW9u
YWwgRE9NUG9pbnRJbml0IG90aGVyKTsKIAotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3Ry
aWN0ZWQgZG91YmxlIHg7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3Vi
bGUgeTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB6OwotICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHc7CisgICAgW0ltcGxlbWVu
dGVkQXM9eEZvckJpbmRpbmdzXSByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJs
ZSB4OworICAgIFtJbXBsZW1lbnRlZEFzPXlGb3JCaW5kaW5nc10gcmVhZG9ubHkgYXR0cmlidXRl
IHVucmVzdHJpY3RlZCBkb3VibGUgeTsKKyAgICBbSW1wbGVtZW50ZWRBcz16Rm9yQmluZGluZ3Nd
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHo7CisgICAgW0ltcGxlbWVu
dGVkQXM9d0ZvckJpbmRpbmdzXSByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJs
ZSB3OwogCiAgICAgW01heVRocm93RXhjZXB0aW9uXSBET01Qb2ludCBtYXRyaXhUcmFuc2Zvcm0o
b3B0aW9uYWwgRE9NTWF0cml4SW5pdCBtYXRyaXgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCmluZGV4IDY5ZTA2ZTdi
MDU0MDAyNmM0YjEwYzIxYTE3YmI5YzZhOWJlMzJmMjMuLmFkMDg4NTlkODUwMWE3ZTQzM2MxMDQ1
Y2ZmODYzNGRhY2QxNmMxMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCkBAIC0yNiw2ICsyNiwxMSBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25FdmVudC5o
IgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyNpbmNsdWRlICJEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaCIKKyNlbmRpZgorCisjaW5jbHVkZSAi
RE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5nbGUuaAppbmRleCA5YzYxNzMyYWU5MzFjOTg1NGU3NTY5ZTFjYjIyYTZl
ZDhkYWY1YjAzLi4wNGIyMTZmYTc2ZWUwYWMyODc2YTYzZTBkNmIzOTU0YTM4NjVhZWYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5nbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5nbGUuaApAQCAtNDEsOSArNDEsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR0FuZ2xlKHZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJl
ZjxTVkdBbmdsZT4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFj
Y2VzcyBhY2Nlc3MsIGNvbnN0IFNWR0FuZ2xlVmFsdWUmIHZhbHVlID0geyB9KQorICAgIHN0YXRp
YyBSZWY8U1ZHQW5nbGU+IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIs
IGNvbnN0IFNWR0FuZ2xlVmFsdWUmIHZhbHVlID0geyB9KQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHQW5nbGUob3duZXIsIGFjY2VzcywgdmFsdWUpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5nbGUob2JzZXJ2ZXIsIHZhbHVlKSk7CiAgICAgfQog
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRl
eCAxNmMzYWZjMjE1M2I2OGRhOWQ4NTM2NTY5NjI2MDVjOGUxMGE1YWY0Li4yMDRjMjJiYjM2ZGRh
MDg2MjgxMzkxNzIzMGZkNGU5NDAxMWY0OTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3Bw
CkBAIC01NDEsMjAgKzU0MSwyMyBAQCB2b2lkIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgbwogICAgICAgICBz
dmdBdHRyaWJ1dGVDaGFuZ2VkKG5hbWUpOwogfQogCi12b2lkIFNWR0VsZW1lbnQ6OnN5bmNocm9u
aXplQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpCit2b2lkIFNWR0VsZW1lbnQ6
OnN5bmNocm9uaXplQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUp
CiB7Ci0gICAgLy8gSWYgdGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBoYXMgY2hhbmdlZCwgc2Vy
aWFsaXplIHRoZSBuZXcgdmFsdWUgdG8gdGhlIGF0dHJpYnV0ZS4KLSAgICBpZiAoYXV0byB2YWx1
ZSA9IHByb3BlcnR5UmVnaXN0cnkoKS5zeW5jaHJvbml6ZShuYW1lKSkKLSAgICAgICAgc2V0U3lu
Y2hyb25pemVkTGF6eUF0dHJpYnV0ZShuYW1lLCAqdmFsdWUpOworICAgIGF1dG8gaXQgPSBtX2Rp
cnR5QXR0cmlidXRlcy5maW5kKGF0dHJpYnV0ZU5hbWUpOworICAgIGlmIChpdCA9PSBtX2RpcnR5
QXR0cmlidXRlcy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIC8vIElmIHRoZSB2
YWx1ZSBvZiB0aGUgcHJvcGVydHkgaGFzIGNoYW5nZWQsIHJlc2VyaWFsaXplIHRoZSBuZXcgdmFs
dWUgdG8gdGhlIGF0dHJpYnV0ZS4KKyAgICBzZXRTeW5jaHJvbml6ZWRMYXp5QXR0cmlidXRlKGF0
dHJpYnV0ZU5hbWUsIHByb3BlcnR5UmVnaXN0cnkoKS52YWx1ZUFzU3RyaW5nKGF0dHJpYnV0ZU5h
bWUpKTsKKyAgICBtX2RpcnR5QXR0cmlidXRlcy5yZW1vdmUoaXQpOwogfQogICAgIAogdm9pZCBT
VkdFbGVtZW50OjpzeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMoKQogewotICAgIC8vIFNWR1Byb3Bl
cnR5UmVnaXN0cnk6OnN5bmNocm9uaXplQWxsQXR0cmlidXRlcygpIHJldHVybnMgdGhlIG5ldyB2
YWx1ZXMgb2YKLSAgICAvLyB0aGUgcHJvcGVydGllcyB3aGljaCBoYXZlIGNoYW5nZWQgYnV0IG5v
dCBjb21taXR0ZWQgeWV0LgotICAgIGF1dG8gbWFwID0gcHJvcGVydHlSZWdpc3RyeSgpLnN5bmNo
cm9uaXplQWxsQXR0cmlidXRlcygpOwotICAgIGZvciAoY29uc3QgYXV0byYgZW50cnkgOiBtYXAp
Ci0gICAgICAgIHNldFN5bmNocm9uaXplZExhenlBdHRyaWJ1dGUoZW50cnkua2V5LCBlbnRyeS52
YWx1ZSk7CisgICAgLy8gUmVzZXJpYWxpemUgdGhlIHZhbHVlcyBvZiB0aGUgY2hhbmdlZCBwcm9w
ZXJ0aWVzIHRvIHRoZWlyIGF0dHJpYnV0ZXMuCisgICAgZm9yIChhdXRvJiBhdHRyaWJ1dGVOYW1l
IDogbV9kaXJ0eUF0dHJpYnV0ZXMpCisgICAgICAgIHNldFN5bmNocm9uaXplZExhenlBdHRyaWJ1
dGUoYXR0cmlidXRlTmFtZSwgcHJvcGVydHlSZWdpc3RyeSgpLnZhbHVlQXNTdHJpbmcoYXR0cmli
dXRlTmFtZSkpOworICAgIG1fZGlydHlBdHRyaWJ1dGVzLmNsZWFyKCk7CiB9CiAKIHZvaWQgU1ZH
RWxlbWVudDo6c3luY2hyb25pemVBbGxBbmltYXRlZFNWR0F0dHJpYnV0ZShTVkdFbGVtZW50JiBz
dmdFbGVtZW50KQpAQCAtNTYyLDE1ICs1NjUsMTggQEAgdm9pZCBTVkdFbGVtZW50OjpzeW5jaHJv
bml6ZUFsbEFuaW1hdGVkU1ZHQXR0cmlidXRlKFNWR0VsZW1lbnQmIHN2Z0VsZW1lbnQpCiAgICAg
c3ZnRWxlbWVudC5zeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMoKTsKIH0KIAotdm9pZCBTVkdFbGVt
ZW50Ojpjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9wZXJ0eSogcHJvcGVydHkpCit2b2lkIFNW
R0VsZW1lbnQ6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKERPTUxpdmVQcm9wZXJ0eSogcHJvcGVydHkp
CiB7CisgICAgUXVhbGlmaWVkTmFtZSBhdHRyaWJ1dGVOYW1lID0gcHJvcGVydHlSZWdpc3RyeSgp
LnByb3BlcnR5QXR0cmlidXRlTmFtZSgqcHJvcGVydHkpOworICAgIEFTU0VSVChhdHRyaWJ1dGVO
YW1lICE9IG51bGxRTmFtZSgpKTsKKwogICAgIC8vIFdlIHdhbnQgdG8gZGlydHkgdGhlIHRvcC1s
ZXZlbCBwcm9wZXJ0eSB3aGVuIGEgZGVzY2VuZGFudCBjaGFuZ2VzLiBGb3IgZXhhbXBsZQogICAg
IC8vIGEgY2hhbmdlIGluIGFuIFNWR0xlbmd0aCBpdGVtIGluIFNWR0xlbmd0aExpc3Qgc2hvdWxk
IHNldCB0aGUgZGlydHkgZmxhZyBvbgogICAgIC8vIFNWR0xlbmd0aExpc3QgYW5kIG5vdCB0aGUg
U1ZHTGVuZ3RoLgotICAgIHByb3BlcnR5LT5zZXREaXJ0eSgpOworICAgIG1fZGlydHlBdHRyaWJ1
dGVzLmFkZChhdHRyaWJ1dGVOYW1lKTsKIAogICAgIGludmFsaWRhdGVTVkdBdHRyaWJ1dGVzKCk7
Ci0gICAgc3ZnQXR0cmlidXRlQ2hhbmdlZChwcm9wZXJ0eVJlZ2lzdHJ5KCkucHJvcGVydHlBdHRy
aWJ1dGVOYW1lKCpwcm9wZXJ0eSkpOworICAgIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0cmlidXRl
TmFtZSk7CiB9CiAKIHZvaWQgU1ZHRWxlbWVudDo6Y29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHQW5p
bWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSkKQEAgLTU4MSw3ICs1ODcsNyBAQCB2b2lk
IFNWR0VsZW1lbnQ6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFu
aW1hdGVkUHJvcGVydHkpCiAgICAgLy8gQSBjaGFuZ2UgaW4gYSBzdHlsZSBwcm9wZXJ0eSwgZS5n
IFNWR1JlY3RFbGVtZW50Ojp4IHNob3VsZCBiZSBzZXJpYWxpemVkIHRvCiAgICAgLy8gdGhlIGF0
dHJpYnV0ZSBpbW1lZGlhdGVseS4gT3RoZXJ3aXNlIGl0IGlzIG9rYXkgdG8gYmUgbGF6eSBpbiB0
aGlzIHJlZ2FyZC4KICAgICBpZiAoIXByb3BlcnR5UmVnaXN0cnkoKS5pc0FuaW1hdGVkU3R5bGVQ
cm9wZXJ0eUF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSkKLSAgICAgICAgYW5pbWF0ZWRQcm9wZXJ0
eS5zZXREaXJ0eSgpOworICAgICAgICBtX2RpcnR5QXR0cmlidXRlcy5hZGQoYXR0cmlidXRlTmFt
ZSk7CiAgICAgZWxzZQogICAgICAgICBzZXRTeW5jaHJvbml6ZWRMYXp5QXR0cmlidXRlKGF0dHJp
YnV0ZU5hbWUsIGFuaW1hdGVkUHJvcGVydHkuYmFzZVZhbEFzU3RyaW5nKCkpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0VsZW1lbnQuaAppbmRleCA4Y2M2YWFjYTY1NzY4MGVlOGQzZjNmNDZjODc4MmFkMjI1NWM3
NzQyLi5kOTA4NzZhZmZiNzRlNjE1MzMyM2U1MzRjODg5N2ZkOGRlNTZlMGRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdFbGVtZW50LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgU1ZHVXNlRWxlbWVudDsKIAog
dm9pZCBtYXBBdHRyaWJ1dGVUb0NTU1Byb3BlcnR5KEhhc2hNYXA8QXRvbVN0cmluZ0ltcGwqLCBD
U1NQcm9wZXJ0eUlEPiogcHJvcGVydHlOYW1lVG9JZE1hcCwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpOwogCi1jbGFzcyBTVkdFbGVtZW50IDogcHVibGljIFN0eWxlZEVsZW1lbnQsIHB1
YmxpYyBTVkdMYW5nU3BhY2UsIHB1YmxpYyBTVkdQcm9wZXJ0eU93bmVyIHsKK2NsYXNzIFNWR0Vs
ZW1lbnQgOiBwdWJsaWMgU3R5bGVkRWxlbWVudCwgcHVibGljIFNWR0xhbmdTcGFjZSwgcHVibGlj
IERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNW
R0VsZW1lbnQpOwogcHVibGljOgogICAgIGJvb2wgaXNPdXRlcm1vc3RTVkdTVkdFbGVtZW50KCkg
Y29uc3Q7CkBAIC0xMzYsMTAgKzEzNiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzeW5jaHJvbml6
ZUFsbEF0dHJpYnV0ZXMoKTsKICAgICBzdGF0aWMgdm9pZCBzeW5jaHJvbml6ZUFsbEFuaW1hdGVk
U1ZHQXR0cmlidXRlKFNWR0VsZW1lbnQmKTsKIAotICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFu
Z2UoU1ZHUHJvcGVydHkqKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdl
KERPTUxpdmVQcm9wZXJ0eSopIG92ZXJyaWRlOwogICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFu
Z2UoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYpOwogCi0gICAgY29uc3QgU1ZHRWxlbWVudCogYXR0cmli
dXRlQ29udGV4dEVsZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0aGlzOyB9CisgICAg
Y29uc3QgU1ZHRWxlbWVudCogcHJvcGVydHlTVkdDb250ZXh0RWxlbWVudCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRoaXM7IH0KICAgICBTVkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeSYgcHJv
cGVydHlBbmltYXRvckZhY3RvcnkoKSB7IHJldHVybiAqbV9wcm9wZXJ0eUFuaW1hdG9yRmFjdG9y
eTsgfQogICAgIFJlZlB0cjxTVkdBdHRyaWJ1dGVBbmltYXRvcj4gY3JlYXRlQW5pbWF0b3IoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIEFuaW1hdGlvbk1vZGUsIENhbGNNb2RlLCBib29sIGlzQWNjdW11
bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSk7CiAgICAgdm9pZCBhbmltYXRvcldpbGxCZURlbGV0ZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpOwpAQCAtMTk2LDYgKzE5Niw3IEBAIHByaXZhdGU6CiAgICAg
c3RkOjp1bmlxdWVfcHRyPFNWR1Byb3BlcnR5QW5pbWF0b3JGYWN0b3J5PiBtX3Byb3BlcnR5QW5p
bWF0b3JGYWN0b3J5OwogCiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkg
eyAqdGhpcyB9OworICAgIEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4gbV9kaXJ0eUF0dHJpYnV0ZXM7
CiAgICAgUmVmPFNWR0FuaW1hdGVkU3RyaW5nPiBtX2NsYXNzTmFtZSB7IFNWR0FuaW1hdGVkU3Ry
aW5nOjpjcmVhdGUodGhpcykgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGaXRUb1ZpZXdCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0Jv
eC5jcHAKaW5kZXggMWY0N2QzNjhlOTAzMWY0NGEwYmUwZmQyNDM1MGM3MmQxNDFmNjU0OS4uYTQ0
MGM2YzJiMzI5YTYzZTEwOThmNjNkZDgxZjk5NzMwOWRjMjJhNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZpdFRvVmlld0JveC5jcHAKQEAgLTM0LDkgKzM0LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotU1ZHRml0VG9WaWV3Qm94OjpTVkdGaXRUb1ZpZXdCb3goU1ZHRWxlbWVudCogY29u
dGV4dEVsZW1lbnQsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKLSAgICA6IG1fdmlld0JveChT
VkdBbmltYXRlZFJlY3Q6OmNyZWF0ZShjb250ZXh0RWxlbWVudCwgYWNjZXNzKSkKLSAgICAsIG1f
cHJlc2VydmVBc3BlY3RSYXRpbyhTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW86OmNyZWF0
ZShjb250ZXh0RWxlbWVudCwgYWNjZXNzKSkKK1NWR0ZpdFRvVmlld0JveDo6U1ZHRml0VG9WaWV3
Qm94KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KQorICAgIDogbV92aWV3Qm94KFNWR0FuaW1h
dGVkUmVjdDo6Y3JlYXRlKHN0YXRpY19jYXN0PHZvaWQqPihjb250ZXh0RWxlbWVudCkgPT0gdGhp
cyA/IGNvbnRleHRFbGVtZW50IDogbnVsbHB0cikpCisgICAgLCBtX3ByZXNlcnZlQXNwZWN0UmF0
aW8oU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVhdGUoc3RhdGljX2Nhc3Q8dm9p
ZCo+KGNvbnRleHRFbGVtZW50KSA9PSB0aGlzID8gY29udGV4dEVsZW1lbnQgOiBudWxscHRyKSkK
KyAgICAsIG1fY29udGV4dEVsZW1lbnQoY29udGV4dEVsZW1lbnQpCiB7CiAgICAgc3RhdGljIHN0
ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7
CkBAIC0xMDQsMjkgKzEwNSwyOSBAQCBib29sIFNWR0ZpdFRvVmlld0JveDo6cGFyc2VWaWV3Qm94
KGNvbnN0IFVDaGFyKiYgYywgY29uc3QgVUNoYXIqIGVuZCwgRmxvYXRSZWN0JgogICAgIGJvb2wg
dmFsaWQgPSBwYXJzZU51bWJlcihjLCBlbmQsIHgpICYmIHBhcnNlTnVtYmVyKGMsIGVuZCwgeSkg
JiYgcGFyc2VOdW1iZXIoYywgZW5kLCB3aWR0aCkgJiYgcGFyc2VOdW1iZXIoYywgZW5kLCBoZWln
aHQsIGZhbHNlKTsKIAogICAgIGlmICh2YWxpZGF0ZSkgewotICAgICAgICBEb2N1bWVudCYgZG9j
dW1lbnQgPSBtX3ZpZXdCb3gtPmNvbnRleHRFbGVtZW50KCktPmRvY3VtZW50KCk7CisgICAgICAg
IGF1dG8mIGRvY3VtZW50RXh0ZW5zaW9ucyA9IG1fY29udGV4dEVsZW1lbnQtPmRvY3VtZW50KCku
YWNjZXNzU1ZHRXh0ZW5zaW9ucygpOwogCiAgICAgICAgIGlmICghdmFsaWQpIHsKLSAgICAgICAg
ICAgIGRvY3VtZW50LmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5yZXBvcnRXYXJuaW5nKCJQcm9ibGVt
IHBhcnNpbmcgdmlld0JveD1cIiIgKyBzdHIgKyAiXCIiKTsKKyAgICAgICAgICAgIGRvY3VtZW50
RXh0ZW5zaW9ucy5yZXBvcnRXYXJuaW5nKCJQcm9ibGVtIHBhcnNpbmcgdmlld0JveD1cIiIgKyBz
dHIgKyAiXCIiKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCiAgICAg
ICAgIC8vIENoZWNrIHRoYXQgd2lkdGggaXMgcG9zaXRpdmUuCiAgICAgICAgIGlmICh3aWR0aCA8
IDAuMCkgewotICAgICAgICAgICAgZG9jdW1lbnQuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLnJlcG9y
dEVycm9yKCJBIG5lZ2F0aXZlIHZhbHVlIGZvciBWaWV3Qm94IHdpZHRoIGlzIG5vdCBhbGxvd2Vk
Iik7CisgICAgICAgICAgICBkb2N1bWVudEV4dGVuc2lvbnMucmVwb3J0RXJyb3IoIkEgbmVnYXRp
dmUgdmFsdWUgZm9yIFZpZXdCb3ggd2lkdGggaXMgbm90IGFsbG93ZWQiKTsKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIENoZWNrIHRoYXQgaGVpZ2h0
IGlzIHBvc2l0aXZlLgogICAgICAgICBpZiAoaGVpZ2h0IDwgMC4wKSB7Ci0gICAgICAgICAgICBk
b2N1bWVudC5hY2Nlc3NTVkdFeHRlbnNpb25zKCkucmVwb3J0RXJyb3IoIkEgbmVnYXRpdmUgdmFs
dWUgZm9yIFZpZXdCb3ggaGVpZ2h0IGlzIG5vdCBhbGxvd2VkIik7CisgICAgICAgICAgICBkb2N1
bWVudEV4dGVuc2lvbnMucmVwb3J0RXJyb3IoIkEgbmVnYXRpdmUgdmFsdWUgZm9yIFZpZXdCb3gg
aGVpZ2h0IGlzIG5vdCBhbGxvd2VkIik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIH0KIAogICAgICAgICAvLyBOb3RoaW5nIHNob3VsZCBjb21lIGFmdGVyIHRoZSBsYXN0LCBm
b3VydGggbnVtYmVyLgogICAgICAgICBza2lwT3B0aW9uYWxTVkdTcGFjZXMoYywgZW5kKTsKICAg
ICAgICAgaWYgKGMgPCBlbmQpIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmFjY2Vzc1NWR0V4dGVu
c2lvbnMoKS5yZXBvcnRXYXJuaW5nKCJQcm9ibGVtIHBhcnNpbmcgdmlld0JveD1cIiIgKyBzdHIg
KyAiXCIiKTsKKyAgICAgICAgICAgIGRvY3VtZW50RXh0ZW5zaW9ucy5yZXBvcnRXYXJuaW5nKCJQ
cm9ibGVtIHBhcnNpbmcgdmlld0JveD1cIiIgKyBzdHIgKyAiXCIiKTsKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGaXRUb1ZpZXdCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdC
b3guaAppbmRleCA5MDdkNjU1Y2QxYjFiOWIzNzJhMjBmODE4OTIzNjA0MmUyMGYwZmQwLi41OTZk
ZmRjMWQwNTY3YTA0N2Y1Yjg5Y2FkYTU4NDA3YmM0OWZiNDFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZpdFRvVmlld0JveC5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0Vt
cHR5Vmlld0JveCgpIGNvbnN0IHsgcmV0dXJuIG1faXNWaWV3Qm94VmFsaWQgJiYgdmlld0JveCgp
LmlzRW1wdHkoKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgU1ZHRml0VG9WaWV3Qm94KFNWR0VsZW1l
bnQqIGNvbnRleHRFbGVtZW50LCBTVkdQcm9wZXJ0eUFjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNz
OjpSZWFkV3JpdGUpOworICAgIFNWR0ZpdFRvVmlld0JveChTVkdFbGVtZW50KiBjb250ZXh0RWxl
bWVudCk7CiAKICAgICBzdGF0aWMgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUpIHsgcmV0dXJuIFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25B
dHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7IH0KIApAQCAtNzEsNiArNzEsNyBAQCBwcm90ZWN0ZWQ6
CiBwcml2YXRlOgogICAgIFJlZjxTVkdBbmltYXRlZFJlY3Q+IG1fdmlld0JveDsKICAgICBSZWY8
U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBtX3ByZXNlcnZlQXNwZWN0UmF0aW87Cisg
ICAgU1ZHRWxlbWVudCogbV9jb250ZXh0RWxlbWVudCB7IG51bGxwdHIgfTsKICAgICBib29sIG1f
aXNWaWV3Qm94VmFsaWQgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xlbmd0aC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oCmluZGV4
IGVkNTAwMzgyYzVmZTgzODFkNDc3OTY4YjkwOTMwMGY2YmZjNGQ5MmQuLjYwYTViNTZlNTNiYWQw
YTBiYTAxM2E0NjQ2NTdiYTYxZmExOGU2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMZW5ndGguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgKQEAgLTYy
LDkgKzYyLDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5n
dGgodmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3JlYXRlKFNW
R1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIGNvbnN0IFNW
R0xlbmd0aFZhbHVlJiB2YWx1ZSA9IHsgfSkKKyAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aD4gY3Jl
YXRlKERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlciwgY29uc3QgU1ZHTGVuZ3RoVmFs
dWUmIHZhbHVlID0geyB9KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
TGVuZ3RoKG93bmVyLCBhY2Nlc3MsIHZhbHVlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR0xlbmd0aChvYnNlcnZlciwgdmFsdWUpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPgpAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAKICAgICBFeGNlcHRpb25Pcjxm
bG9hdD4gdmFsdWVGb3JCaW5kaW5ncygpCiAgICAgewotICAgICAgICByZXR1cm4gbV92YWx1ZS52
YWx1ZUZvckJpbmRpbmdzKFNWR0xlbmd0aENvbnRleHQgeyBjb250ZXh0RWxlbWVudCgpIH0pOwor
ICAgICAgICByZXR1cm4gbV92YWx1ZS52YWx1ZUZvckJpbmRpbmdzKFNWR0xlbmd0aENvbnRleHQg
eyBzdmdDb250ZXh0RWxlbWVudCgpIH0pOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldFZhbHVlRm9yQmluZGluZ3MoZmxvYXQgdmFsdWUpCkBAIC05NSw3ICs5NSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0
ID0gbV92YWx1ZS5zZXRWYWx1ZShTVkdMZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9
LCB2YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gbV92YWx1ZS5zZXRWYWx1ZShTVkdMZW5n
dGhDb250ZXh0IHsgc3ZnQ29udGV4dEVsZW1lbnQoKSB9LCB2YWx1ZSk7CiAgICAgICAgIGlmIChy
ZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAg
ICAKQEAgLTE1Miw3ICsxNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmICh1bml0VHlwZSA9PSBT
VkdfTEVOR1RIVFlQRV9VTktOT1dOIHx8IHVuaXRUeXBlID4gU1ZHX0xFTkdUSFRZUEVfUEMpCiAg
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKIAotICAg
ICAgICBhdXRvIHJlc3VsdCA9IG1fdmFsdWUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMoU1ZHTGVu
Z3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSwgc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVHlw
ZT4odW5pdFR5cGUpKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSBtX3ZhbHVlLmNvbnZlcnRUb1Nw
ZWNpZmllZFVuaXRzKFNWR0xlbmd0aENvbnRleHQgeyBzdmdDb250ZXh0RWxlbWVudCgpIH0sIHN0
YXRpY19jYXN0PFNWR0xlbmd0aFR5cGU+KHVuaXRUeXBlKSk7CiAgICAgICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xlbmd0aExpc3QuaAppbmRleCA1ZWI1NzAxYzY3NDY4NzkyZDA1NjJjMTViNTIxNmI0OTJj
MDIxZWQ4Li4zMmQ1ODc0ZDI5MzcyNDZjNzA1MjEzOTEzYjE0ZjA0NTYzZmZkZTMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgKQEAgLTQwLDE0ICs0MCwxNCBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aExpc3QobGVuZ3RoTW9kZSkpOwogICAg
IH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoTGlzdD4gY3JlYXRlKFNWR1Byb3BlcnR5T3du
ZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIFNWR0xlbmd0aE1vZGUgbGVuZ3Ro
TW9kZSkKKyAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aExpc3Q+IGNyZWF0ZShET01MaXZlUHJvcGVy
dHlPYnNlcnZlciogb2JzZXJ2ZXIsIFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aExpc3Qob3duZXIsIGFjY2Vzcywg
bGVuZ3RoTW9kZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGhMaXN0
KG9ic2VydmVyLCBsZW5ndGhNb2RlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdMZW5n
dGhMaXN0PiBjcmVhdGUoY29uc3QgU1ZHTGVuZ3RoTGlzdCYgb3RoZXIsIFNWR1Byb3BlcnR5QWNj
ZXNzIGFjY2VzcykKKyAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aExpc3Q+IGNyZWF0ZShjb25zdCBT
VkdMZW5ndGhMaXN0JiBvdGhlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR0xlbmd0aExpc3Qob3RoZXIsIGFjY2VzcykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdMZW5ndGhMaXN0KG90aGVyKSk7CiAgICAgfQogCiAgICAgU1ZHTGVuZ3RoTW9kZSBs
ZW5ndGhNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9sZW5ndGhNb2RlOyB9CkBAIC04Niw3ICs4Niw3
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGlmIChidWlsZGVyLmxlbmd0aCgpKQogICAgICAgICAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGxlbmd0aC0+dmFsdWUoKS52YWx1ZUFzU3RyaW5nKCkpOworICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQobGVuZ3RoLT52YWx1ZUFzU3RyaW5nKCkpOwogICAgICAgICB9CiAKICAgICAgICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKQEAgLTk4LDE0ICs5OCwxNCBAQCBwcml2YXRlOgogICAg
IHsKICAgICB9CiAKLSAgICBTVkdMZW5ndGhMaXN0KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBT
VkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSkKLSAgICAg
ICAgOiBCYXNlKG93bmVyLCBhY2Nlc3MpCisgICAgU1ZHTGVuZ3RoTGlzdChET01MaXZlUHJvcGVy
dHlPYnNlcnZlciogb2JzZXJ2ZXIsIFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSkKKyAgICAgICAg
OiBCYXNlKG9ic2VydmVyKQogICAgICAgICAsIG1fbGVuZ3RoTW9kZShsZW5ndGhNb2RlKQogICAg
IHsKICAgICB9CiAKLSAgICBTVkdMZW5ndGhMaXN0KGNvbnN0IFNWR0xlbmd0aExpc3QmIG90aGVy
LCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCi0gICAgICAgIDogQmFzZShvdGhlciwgYWNjZXNz
KQorICAgIFNWR0xlbmd0aExpc3QoY29uc3QgU1ZHTGVuZ3RoTGlzdCYgb3RoZXIpCisgICAgICAg
IDogQmFzZShvdGhlcikKICAgICAgICAgLCBtX2xlbmd0aE1vZGUob3RoZXIubGVuZ3RoTW9kZSgp
KQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmgKaW5kZXggZDhjMzdkY2IyNmRiZTQ1
MThhYzkxZmQyZTFjNzVlOTQyYzFkMjI3Ni4uZjAwMzhjNGMwN2UwYWZjNWU3YjlmMmJiYmQ1ODBm
OGFkYWRhMjc5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaApAQCAtNDIsOSArNDIsOSBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR01hdHJpeCh2YWx1ZSkpOwogICAg
IH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHTWF0cml4PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciog
b3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcywgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB2
YWx1ZSA9IHsgfSkKKyAgICBzdGF0aWMgUmVmPFNWR01hdHJpeD4gY3JlYXRlKERPTUxpdmVQcm9w
ZXJ0eU9ic2VydmVyKiBvYnNlcnZlciwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB2YWx1ZSA9IHsg
fSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR01hdHJpeChvd25lciwg
YWNjZXNzLCB2YWx1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXgo
b2JzZXJ2ZXIsIHZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdOdW1iZXIuaAppbmRleCAyM2M4MmU0NGU2NzdkOGQzNjBjOTYxNTRjNzk1ZGFiODc3
NmExZmE0Li41OThhMGY1OTYxOTkyYTRiNzlmNzA4OWU0NDg5YjYzNTYzMjFlZGM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR051bWJlci5oCkBAIC00MCw5ICs0MCw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyKHZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJl
ZjxTVkdOdW1iZXI+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlB
Y2Nlc3MgYWNjZXNzLCBmbG9hdCB2YWx1ZSA9IDApCisgICAgc3RhdGljIFJlZjxTVkdOdW1iZXI+
IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIsIGZsb2F0IHZhbHVlID0g
MCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlcihvd25lciwg
YWNjZXNzLCB2YWx1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXIo
b2JzZXJ2ZXIsIHZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5oCmluZGV4IDViNWQ1N2U4NDZmNDMxYWFmNWMwOGRiYzlh
NGMzNGFiZTg0ZDZkMWYuLjY4MWI0ZGNlZjhjZWM5MzUxMWJlMDU5MjA1NGNmMDgxZTkwMzc3NTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuaApAQCAtNDAsMTQgKzQwLDE0IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyTGlzdCgpKTsKICAgICB9
CiAKLSAgICBzdGF0aWMgUmVmPFNWR051bWJlckxpc3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVy
KiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQorICAgIHN0YXRpYyBSZWY8U1ZHTnVt
YmVyTGlzdD4gY3JlYXRlKERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcikKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlckxpc3Qob3duZXIsIGFjY2Vz
cykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXJMaXN0KG9ic2VydmVy
KSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdOdW1iZXJMaXN0PiBjcmVhdGUoY29uc3Qg
U1ZHTnVtYmVyTGlzdCYgb3RoZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKKyAgICBzdGF0
aWMgUmVmPFNWR051bWJlckxpc3Q+IGNyZWF0ZShjb25zdCBTVkdOdW1iZXJMaXN0JiBvdGhlcikK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlckxpc3Qob3RoZXIs
IGFjY2VzcykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXJMaXN0KG90
aGVyKSk7CiAgICAgfQogCiAgICAgYm9vbCBwYXJzZShjb25zdCBTdHJpbmcmIHZhbHVlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAppbmRleCA5NGY2ZjM5ZTRlMWYxYjY3NDQzM2NhMjUw
MTUzODE4ZjRmNjJmZTQyLi5lNjZmOGEwYTdiMGMwMGU2YjY0NDAzYTUwM2NhZmIxNTQxMjE0MTU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaApAQCAtMzYsMTQgKzM2LDE0IEBAIGNs
YXNzIFNWR1BhdGhTZWdMaXN0IGZpbmFsIDogcHVibGljIFNWR1Byb3BlcnR5TGlzdDxTVkdQYXRo
U2VnPiB7CiAgICAgdXNpbmcgQmFzZTo6QmFzZTsKIAogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVy
dHlBY2Nlc3MgYWNjZXNzKQorICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShE
T01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTVkdQYXRoU2VnTGlzdChvd25lciwgYWNjZXNzKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdMaXN0KG9ic2VydmVyKSk7CiAgICAgfQogCi0g
ICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKGNvbnN0IFNWR1BhdGhTZWdMaXN0
JiBvdGhlciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQorICAgIHN0YXRpYyBSZWY8U1ZHUGF0
aFNlZ0xpc3Q+IGNyZWF0ZShjb25zdCBTVkdQYXRoU2VnTGlzdCYgb3RoZXIpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQYXRoU2VnTGlzdChvdGhlciwgYWNjZXNzKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdMaXN0KG90aGVyKSk7CiAg
ICAgfQogCiAgICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKFJlZjxTVkdQYXRo
U2VnPiYmIG5ld0l0ZW0pCkBAIC0xNTksOCArMTU5LDggQEAgcHVibGljOgogICAgIH0KIAogcHJp
dmF0ZToKLSAgICBTVkdQYXRoU2VnTGlzdChjb25zdCBTVkdQYXRoU2VnTGlzdCYgb3RoZXIsIFNW
R1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKLSAgICAgICAgOiBCYXNlKG90aGVyLm93bmVyKCksIGFj
Y2VzcykKKyAgICBTVkdQYXRoU2VnTGlzdChjb25zdCBTVkdQYXRoU2VnTGlzdCYgb3RoZXIpCisg
ICAgICAgIDogQmFzZShvdGhlci5vYnNlcnZlcigpKQogICAgICAgICAsIG1fcGF0aEJ5dGVTdHJl
YW0ob3RoZXIucGF0aEJ5dGVTdHJlYW0oKSkKICAgICB7CiAgICAgfQpAQCAtMTcyLDcgKzE3Miw3
IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgLy8gQ2FsbGVkIHdoZW4gY2hhbmdpbmcgYW4gaXRl
bSBpbiB0aGUgbGlzdC4KLSAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5
KiBwcm9wZXJ0eSkgb3ZlcnJpZGUKKyAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKERPTUxp
dmVQcm9wZXJ0eSogcHJvcGVydHkpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBpdGVtc1dpbGxD
aGFuZ2UoKTsKICAgICAgICAgQmFzZTo6Y29tbWl0UHJvcGVydHlDaGFuZ2UocHJvcGVydHkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5oCmluZGV4IDhjNmM1MGIwZTNiYWNlNTM2YWU1MGViYjI4
YzFiNDZlMTU3NDllODEuLjg4YTE4OTMzODcxZmQyZDQyOTM4ZDY1NDlkMDE5ZDE1MGJlN2IzNTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmgKQEAgLTQwLDE0ICs0MCwxNCBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BvaW50TGlzdCgpKTsKICAgICB9CiAK
LSAgICBzdGF0aWMgUmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93
bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCisgICAgc3RhdGljIFJlZjxTVkdQb2ludExp
c3Q+IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludExpc3Qob3duZXIsIGFjY2VzcykpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludExpc3Qob2JzZXJ2ZXIpKTsKICAg
ICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKGNvbnN0IFNWR1BvaW50
TGlzdCYgb3RoZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKKyAgICBzdGF0aWMgUmVmPFNW
R1BvaW50TGlzdD4gY3JlYXRlKGNvbnN0IFNWR1BvaW50TGlzdCYgb3RoZXIpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludExpc3Qob3RoZXIsIGFjY2VzcykpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludExpc3Qob3RoZXIpKTsKICAgICB9
CiAKICAgICBib29sIHBhcnNlKGNvbnN0IFN0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaAppbmRleCAyNzE3YWJlYmUxMDE5YWFhMGYzYWY3
NjFlYjM1MWY5MTdiNzhhZGQ2Li44MzU0OTNlNzk0YzFlOGYyNWQ4OTQ3YjM4ZGRhMjRjNjA5YmY0
NmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRp
by5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgKQEAg
LTM2LDkgKzM2LDkgQEAgY2xhc3MgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyA6IHB1YmxpYyBTVkdW
YWx1ZVByb3BlcnR5PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWwKICAgICB1c2luZyBCYXNlOjpt
X3ZhbHVlOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2Vz
cywgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB2YWx1ZSA9IHsgfSkKKyAgICBz
dGF0aWMgUmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+IGNyZWF0ZShET01MaXZlUHJvcGVydHlP
YnNlcnZlciogb2JzZXJ2ZXIsIGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgdmFs
dWUgPSB7IH0pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvKG93bmVyLCBhY2Nlc3MsIHZhbHVlKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8ob2JzZXJ2ZXIsIHZhbHVlKSk7CiAgICAg
fQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaAppbmRleCA0MTViODcyM2Y4ZDMwODY0YzFiM2Zk
Nzg4Y2MzYjk4OWJhZDdlZjljLi41OWM4MzcxMjNmMjFkYjI2MWZmZTc4MTY5YWQwODJiMmEzZjZl
OThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZS5oCkBAIC03NiwxMSArNzYsNCBAQCBwcml2YXRlOgogICAgIGJvb2wgcGFyc2VJbnRlcm5h
bChjb25zdCBVQ2hhciomIGN1cnJQYXJhbSwgY29uc3QgVUNoYXIqIGVuZCwgYm9vbCB2YWxpZGF0
ZSk7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvVmFsdWU+IHsKLSAgICBzdGF0aWMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSgp
OyB9Ci0gICAgc3RhdGljIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSBmcm9tU3RyaW5nKGNv
bnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUo
c3RyaW5nKTsgfQotICAgIHN0YXRpYyBPcHRpb25hbDxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFs
dWU+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmKSB7IEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOyByZXR1cm4gaW5pdGlhbFZhbHVlKCk7IH0KLSAgICBzdGF0aWMgU3RyaW5n
IHRvU3RyaW5nKGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgdHlwZSkgeyByZXR1
cm4gdHlwZS52YWx1ZUFzU3RyaW5nKCk7IH0KLX07Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUmVjdC5oCmluZGV4IDkwMDE4ZTE4NmIxOTJhYzNiZTZmMDU1MGRmODExNjI3ZmJk
N2U5ZjIuLmJhZTc3YmZlZjAyMTk1MTNlZWYwMDk5NjliMzNjMmZhZGNmMzkzZjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1JlY3QuaApAQCAtMzYsOSArMzYsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR1JlY3QodmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1Jl
Y3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNj
ZXNzLCBjb25zdCBGbG9hdFJlY3QmIHZhbHVlID0geyB9KQorICAgIHN0YXRpYyBSZWY8U1ZHUmVj
dD4gY3JlYXRlKERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlciwgY29uc3QgRmxvYXRS
ZWN0JiB2YWx1ZSA9IHsgfSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNW
R1JlY3Qob3duZXIsIGFjY2VzcywgdmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHUmVjdChvYnNlcnZlciwgdmFsdWUpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmgKaW5kZXggM2IzNzY1YzVkOWUwNzQ2
OTAwYTJkNzc5NzlmZmRmNThiNDNhZGQzNS4uMTExZjA2N2U2OTI2NjdiMDZmMmM4ZGE4ZmFiMjc3
ZDI3ZWEyN2I3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5oCkBAIC0zNyw5ICszNyw5
IEBAIGNsYXNzIFNWR1N0cmluZ0xpc3QgZmluYWwgOiBwdWJsaWMgU1ZHUHJpbWl0aXZlTGlzdDxT
dHJpbmc+IHsKICAgICB1c2luZyBCYXNlOjptX2l0ZW1zOwogCiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIpCisgICAg
c3RhdGljIFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIq
IG9ic2VydmVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHU3RyaW5n
TGlzdChvd25lcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdTdHJpbmdMaXN0
KG9ic2VydmVyKSk7CiAgICAgfQogCiAgICAgdm9pZCByZXNldChjb25zdCBTdHJpbmcmIHN0cmlu
ZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uaAppbmRleCA2YTI5YzcyY2YzZTdmMzEzZjcwOTY1
N2E0MDEyNDgxYzIyM2I4ZGNkLi4zM2RiNjhmNDI5YWE3ZmEzZmVlYWRjMjI5Y2QxOTY4NDVlNmZj
YmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5oCkBAIC0zMSw3ICszMSw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU1ZHVHJhbnNmb3JtIDogcHVibGljIFNWR1ZhbHVl
UHJvcGVydHk8U1ZHVHJhbnNmb3JtVmFsdWU+LCBwdWJsaWMgU1ZHUHJvcGVydHlPd25lciB7Citj
bGFzcyBTVkdUcmFuc2Zvcm0gOiBwdWJsaWMgU1ZHVmFsdWVQcm9wZXJ0eTxTVkdUcmFuc2Zvcm1W
YWx1ZT4sIHB1YmxpYyBET01MaXZlUHJvcGVydHlPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZjxTVkdUcmFuc2Zvcm0+IGNyZWF0ZShTVkdUcmFuc2Zvcm1WYWx1ZTo6U1ZHVHJhbnNm
b3JtVHlwZSB0eXBlKQogICAgIHsKQEAgLTEzNCwxNyArMTM0LDE3IEBAIHByaXZhdGU6CiAgICAg
dXNpbmcgQmFzZSA9IFNWR1ZhbHVlUHJvcGVydHk8U1ZHVHJhbnNmb3JtVmFsdWU+OwogCiAgICAg
U1ZHVHJhbnNmb3JtKFNWR1RyYW5zZm9ybVZhbHVlOjpTVkdUcmFuc2Zvcm1UeXBlIHR5cGUsIGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtID0geyB9LCBmbG9hdCBhbmdsZSA9IDAsIGNv
bnN0IEZsb2F0UG9pbnQmIHJvdGF0aW9uQ2VudGVyID0geyB9KQotICAgICAgICA6IEJhc2UoU1ZH
VHJhbnNmb3JtVmFsdWUodHlwZSwgU1ZHTWF0cml4OjpjcmVhdGUodGhpcywgU1ZHUHJvcGVydHlB
Y2Nlc3M6OlJlYWRXcml0ZSwgdHJhbnNmb3JtKSwgYW5nbGUsIHJvdGF0aW9uQ2VudGVyKSkKKyAg
ICAgICAgOiBCYXNlKFNWR1RyYW5zZm9ybVZhbHVlKHR5cGUsIFNWR01hdHJpeDo6Y3JlYXRlKHRo
aXMsIHRyYW5zZm9ybSksIGFuZ2xlLCByb3RhdGlvbkNlbnRlcikpCiAgICAgewogICAgIH0KIAot
ICAgIFNWR1Byb3BlcnR5T3duZXIqIG93bmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9v
d25lcjsgfQorICAgIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fb2JzZXJ2ZXI7IH0KIAotICAgIHZvaWQgY29tbWl0UHJvcGVydHlD
aGFuZ2UoU1ZHUHJvcGVydHkqIHByb3BlcnR5KSBvdmVycmlkZQorICAgIHZvaWQgY29tbWl0UHJv
cGVydHlDaGFuZ2UoRE9NTGl2ZVByb3BlcnR5KiBwcm9wZXJ0eSkgb3ZlcnJpZGUKICAgICB7CiAg
ICAgICAgIEFTU0VSVF9VTlVTRUQocHJvcGVydHksIHByb3BlcnR5ID09IG1fdmFsdWUubWF0cml4
KCkucHRyKCkpOwotICAgICAgICBpZiAob3duZXIoKSkKLSAgICAgICAgICAgIG93bmVyKCktPmNv
bW1pdFByb3BlcnR5Q2hhbmdlKHRoaXMpOworICAgICAgICBpZiAob2JzZXJ2ZXIoKSkKKyAgICAg
ICAgICAgIG9ic2VydmVyKCktPmNvbW1pdFByb3BlcnR5Q2hhbmdlKHRoaXMpOwogICAgICAgICBt
X3ZhbHVlLm1hdHJpeERpZENoYW5nZSgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFu
c2Zvcm1MaXN0LmgKaW5kZXggNTQ0ZDYwYjJlNjM1YzFjMjA5OTM0ZWU0MzVjZjQxMjVlNmE3MWYy
Yi4uZTYwNDVlZDI1NjIzMjFlOTE0MTY0YTBmYjIwNDk3NDg3MTA1ZTIyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oCkBAIC0zOCwxNCArMzgsMTQgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdUcmFuc2Zvcm1MaXN0KCkpOwogICAgIH0KIAot
ICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtTGlzdD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIq
IG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCisgICAgc3RhdGljIFJlZjxTVkdUcmFu
c2Zvcm1MaXN0PiBjcmVhdGUoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtTGlzdChvd25lciwg
YWNjZXNzKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RyYW5zZm9ybUxpc3Qo
b2JzZXJ2ZXIpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybUxpc3Q+IGNy
ZWF0ZShjb25zdCBTVkdUcmFuc2Zvcm1MaXN0JiBvdGhlciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNj
ZXNzKQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtTGlzdD4gY3JlYXRlKGNvbnN0IFNWR1Ry
YW5zZm9ybUxpc3QmIG90aGVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U1ZHVHJhbnNmb3JtTGlzdChvdGhlciwgYWNjZXNzKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR1RyYW5zZm9ybUxpc3Qob3RoZXIpKTsKICAgICB9CiAKICAgICBFeGNlcHRpb25P
cjxSZWY8U1ZHVHJhbnNmb3JtPj4gY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChjb25zdCBS
ZWY8U1ZHTWF0cml4PiYgbWF0cml4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1ZpZXdTcGVjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKaW5kZXgg
OGY0MjM1MTZiNWJkYmM1Mjg3Y2RhNDRhZGY0OWZjNjE4ZGRjMzJlYy4uNTNjYzE1ZGM5MGU3N2Nh
OTEyNGY2Y2FmYTI4ZGExYWM1MDU5Y2FkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1ZpZXdTcGVjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3Bw
CkBAIC0zMiw5ICszMiw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNWR1ZpZXdTcGVjOjpT
VkdWaWV3U3BlYyhTVkdFbGVtZW50JiBjb250ZXh0RWxlbWVudCkKLSAgICA6IFNWR0ZpdFRvVmll
d0JveCgmY29udGV4dEVsZW1lbnQsIFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkT25seSkKKyAgICA6
IFNWR0ZpdFRvVmlld0JveCgmY29udGV4dEVsZW1lbnQpCiAgICAgLCBtX2NvbnRleHRFbGVtZW50
KG1ha2VXZWFrUHRyKGNvbnRleHRFbGVtZW50KSkKLSAgICAsIG1fdHJhbnNmb3JtKFNWR1RyYW5z
Zm9ybUxpc3Q6OmNyZWF0ZSgmY29udGV4dEVsZW1lbnQsIFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFk
T25seSkpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6
Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVmlld1NwZWMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCmluZGV4IDJl
N2VmOTc4NmMxYTg4NmZkMjVhY2ZlYTAzN2ZjODUwZDc5ZGU1MjAuLjZlZmMwOWY5ODNjMmM0M2M2
YTNkODU1YjAyZDM0MjIyMDAzODIxYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdWaWV3U3BlYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCkBAIC01
NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAKICAgICBXZWFrUHRyPFNWR0VsZW1lbnQ+IG1fY29udGV4
dEVsZW1lbnQ7CiAgICAgU3RyaW5nIG1fdmlld1RhcmdldFN0cmluZzsKLSAgICBSZWY8U1ZHVHJh
bnNmb3JtTGlzdD4gbV90cmFuc2Zvcm07CisgICAgUmVmPFNWR1RyYW5zZm9ybUxpc3Q+IG1fdHJh
bnNmb3JtIHsgU1ZHVHJhbnNmb3JtTGlzdDo6Y3JlYXRlKCkgfTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkRGVjb3JhdGVkUHJvcGVydHkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkRGVjb3JhdGVkUHJvcGVydHkuaAppbmRleCBjZWJhYTM2M2JmNTI3YmJi
MzhlNTY3ZDNlM2Q0MmJmODQzMTAyYTc1Li42ZGE5ZDQ0OWVjY2NmMTlmMDllY2ZhYWZjYTVhNThi
OWM3ODQxZDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZERlY29yYXRlZFByb3BlcnR5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWREZWNvcmF0ZWRQcm9wZXJ0eS5oCkBAIC05NywxNSArOTcsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiAgICAgLy8gTWFuYWdpbmcgdGhlIHJlbGF0aW9uc2hpcCB3aXRoIHRo
ZSBvd25lci4KLSAgICB2b2lkIHNldERpcnR5KCkgb3ZlcnJpZGUgeyBtX3N0YXRlID0gU1ZHUHJv
cGVydHlTdGF0ZTo6RGlydHk7IH0KLSAgICBib29sIGlzRGlydHkoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBtX3N0YXRlID09IFNWR1Byb3BlcnR5U3RhdGU6OkRpcnR5OyB9Ci0gICAgT3B0aW9u
YWw8U3RyaW5nPiBzeW5jaHJvbml6ZSgpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBpZiAobV9z
dGF0ZSA9PSBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbikKLSAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7Ci0gICAgICAgIG1fc3RhdGUgPSBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbjsKLSAg
ICAgICAgcmV0dXJuIGJhc2VWYWxBc1N0cmluZygpOwotICAgIH0KKyAgICBTdHJpbmcgdmFsdWVB
c1N0cmluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJhc2VWYWxBc1N0cmluZygpOyB9CiAK
ICAgICAvLyBVc2VkIGJ5IFJlbmRlclNWR0VsZW1lbnRzIGFuZCBEdW1wUmVuZGVyVHJlZS4KICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+CkBAIC0xMzMsNyArMTI1LDYgQEAgcHVi
bGljOgogcHJvdGVjdGVkOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdEZWNvcmF0ZWRQcm9wZXJ0
eTxEZWNvcmF0aW9uVHlwZT4+IG1fYmFzZVZhbDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHRGVj
b3JhdGVkUHJvcGVydHk8RGVjb3JhdGlvblR5cGU+PiBtX2FuaW1WYWw7Ci0gICAgU1ZHUHJvcGVy
dHlTdGF0ZSBtX3N0YXRlIHsgU1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW4gfTsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJpbWl0
aXZlUHJvcGVydHkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVk
UHJpbWl0aXZlUHJvcGVydHkuaAppbmRleCBlMTRmNjc5ZjMzNjNkZGM1YThmNDFjMDM1ZmRmNzM0
ZWJjYjk2NjYxLi5kNDQ4MGY3NGEyZTM5NmQxOGE5MzdkZjc4OTMwZjNkNWZiZmIxMThkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByaW1pdGl2
ZVByb3BlcnR5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRQcmltaXRpdmVQcm9wZXJ0eS5oCkBAIC04Nyw5ICs4Nyw3IEBAIHB1YmxpYzoKICAgICB9CiAK
ICAgICAvLyBNYW5hZ2luZyB0aGUgcmVsYXRpb25zaGlwIHdpdGggdGhlIG93bmVyLgotICAgIHZv
aWQgc2V0RGlydHkoKSBvdmVycmlkZSB7IG1fYmFzZVZhbC0+c2V0RGlydHkoKTsgfQotICAgIGJv
b2wgaXNEaXJ0eSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYmFzZVZhbC0+aXNEaXJ0eSgp
OyB9Ci0gICAgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZSgpIG92ZXJyaWRlIHsgcmV0dXJu
IG1fYmFzZVZhbC0+c3luY2hyb25pemUoKTsgfQorICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYmFzZVZhbEFzU3RyaW5nKCk7IH0KIAogICAgIC8vIFVz
ZWQgYnkgUmVuZGVyU1ZHRWxlbWVudHMgYW5kIER1bXBSZW5kZXJUcmVlLgogICAgIGNvbnN0IFBy
b3BlcnR5VHlwZSYgY3VycmVudFZhbHVlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAKaW5kZXggZWMyZjNhNDg3
ZjgzMGYxYzcyNmQwZjZiZTRjOTQyMmVjOGYzMDFlOC4uZWRhNWM4NGMzNWZiYzdiZDI1NGQxYWRl
MmZiMjU4MTY2NTgzZGMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAKQEAgLTMwLDEyICszMCwxMiBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVNWR1Byb3BlcnR5T3duZXIqIFNWR0FuaW1hdGVkUHJvcGVydHk6
Om93bmVyKCkgY29uc3QKK0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBTVkdBbmltYXRlZFByb3Bl
cnR5OjpvYnNlcnZlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY29udGV4dEVsZW1lbnQ7CiB9
CiAKLXZvaWQgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6Y29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJv
cGVydHkqKQordm9pZCBTVkdBbmltYXRlZFByb3BlcnR5Ojpjb21taXRQcm9wZXJ0eUNoYW5nZShE
T01MaXZlUHJvcGVydHkqKQogewogICAgIGlmICghbV9jb250ZXh0RWxlbWVudCkKICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRQcm9wZXJ0eS5oCmluZGV4IGM2ZjkzMmU2ZGY2OWNjZWZhZmM5NjVlMzJjZDU2NjIwYTFmYzMz
NjQuLmExMDQxZTYwNTI5ZGExZmQyMzE4NjBlMjYwYjcxY2NmYjcwYzRhOWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmgKQEAg
LTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eU93
bmVyLmgiCisjaW5jbHVkZSAiRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDx3
dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgCiBjbGFzcyBTVkdFbGVtZW50OwogCi1jbGFzcyBTVkdBbmltYXRlZFByb3BlcnR5IDog
cHVibGljIFJlZkNvdW50ZWQ8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4sIHB1YmxpYyBTVkdQcm9wZXJ0
eU93bmVyIHsKK2NsYXNzIFNWR0FuaW1hdGVkUHJvcGVydHkgOiBwdWJsaWMgUmVmQ291bnRlZDxT
VkdBbmltYXRlZFByb3BlcnR5PiwgcHVibGljIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyIHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZFByb3BlcnR5KCkgPSBkZWZhdWx0OwogICAg
IApAQCAtNDcsOSArNDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgYW5pbVZhbEFz
U3RyaW5nKCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQogICAgIAogICAgIC8vIENv
bnRyb2wgdGhlIHN5bmNocm9uaXphdGlvbiBiZXR3ZWVuIHRoZSBhdHRyaWJ1dGUgYW5kIGl0cyBy
ZWZsZWN0aW9uIGluIGJhc2VWYWwuCi0gICAgdmlydHVhbCBib29sIGlzRGlydHkoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXREaXJ0eSgpIHsgfQotICAgIHZp
cnR1YWwgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZSgpIHsgcmV0dXJuIFdURjo6bnVsbG9w
dDsgfQorICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdCB7IHJldHVybiBl
bXB0eVN0cmluZygpOyB9CiAgICAgCiAgICAgLy8gQ29udHJvbCB0aGUgYW5pbWF0aW9uIGxpZmUg
Y3ljbGUuCiAgICAgYm9vbCBpc0FuaW1hdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNBbmltYXRp
bmc7IH0KQEAgLTY2LDggKzY0LDggQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICB9CiAgICAgCi0g
ICAgU1ZHUHJvcGVydHlPd25lciogb3duZXIoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGNv
bW1pdFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5Kikgb3ZlcnJpZGU7CisgICAgRE9NTGl2ZVBy
b3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21t
aXRQcm9wZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqKSBvdmVycmlkZTsKICAgICAKICAgICBT
VkdFbGVtZW50KiBtX2NvbnRleHRFbGVtZW50IHsgbnVsbHB0ciB9OwogICAgIGJvb2wgbV9pc0Fu
aW1hdGluZyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdBbmltYXRlZFByb3BlcnR5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuaAppbmRleCBmNDI1NWQ3ZjZlNzViMTRhY2E4
OGE4ODBiZmYzNmU2NTYzODNmNzE2Li5hZDIxYTk4MDZjNTRhZmMwNmVjYWE1YTcxMzI1Y2RiMjMx
M2NhZjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZFByb3BlcnR5TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkUHJvcGVydHlMaXN0LmgKQEAgLTY4LDkgKzY4LDcgQEAgcHVibGljOgogICAgIH0K
IAogICAgIC8vIE1hbmFnaW5nIHRoZSByZWxhdGlvbnNoaXAgd2l0aCB0aGUgb3duZXIuCi0gICAg
dm9pZCBzZXREaXJ0eSgpIG92ZXJyaWRlIHsgbV9iYXNlVmFsLT5zZXREaXJ0eSgpOyB9Ci0gICAg
Ym9vbCBpc0RpcnR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9iYXNlVmFsLT5pc0RpcnR5
KCk7IH0KLSAgICBPcHRpb25hbDxTdHJpbmc+IHN5bmNocm9uaXplKCkgb3ZlcnJpZGUgeyByZXR1
cm4gbV9iYXNlVmFsLT5zeW5jaHJvbml6ZSgpOyB9CisgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmco
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBiYXNlVmFsQXNTdHJpbmcoKTsgfQogCiAgICAgLy8g
VXNlZCBieSBSZW5kZXJTVkdFbGVtZW50cyBhbmQgRHVtcFJlbmRlclRyZWUuCiAgICAgY29uc3Qg
TGlzdFR5cGUmIGN1cnJlbnRWYWx1ZSgpIGNvbnN0CkBAIC0xMTcsMTkgKzExNSwyNCBAQCBwcm90
ZWN0ZWQ6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIFNWR0FuaW1h
dGVkUHJvcGVydHlMaXN0KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBBcmd1bWVudHMmJi4u
LiBhcmd1bWVudHMpCiAgICAgICAgIDogU1ZHQW5pbWF0ZWRQcm9wZXJ0eShjb250ZXh0RWxlbWVu
dCkKLSAgICAgICAgLCBtX2Jhc2VWYWwoTGlzdFR5cGU6OmNyZWF0ZSh0aGlzLCBTVkdQcm9wZXJ0
eUFjY2Vzczo6UmVhZFdyaXRlLCBzdGQ6OmZvcndhcmQ8QXJndW1lbnRzPihhcmd1bWVudHMpLi4u
KSkKKyAgICAgICAgLCBtX2Jhc2VWYWwoTGlzdFR5cGU6OmNyZWF0ZSh0aGlzLCBzdGQ6OmZvcndh
cmQ8QXJndW1lbnRzPihhcmd1bWVudHMpLi4uKSkKICAgICB7CiAgICAgfQogCiAgICAgUmVmUHRy
PExpc3RUeXBlPiYgZW5zdXJlQW5pbVZhbCgpCiAgICAgewogICAgICAgICBpZiAoIW1fYW5pbVZh
bCkKLSAgICAgICAgICAgIG1fYW5pbVZhbCA9IExpc3RUeXBlOjpjcmVhdGUobV9iYXNlVmFsLCBT
VkdQcm9wZXJ0eUFjY2Vzczo6UmVhZE9ubHkpOworICAgICAgICAgICAgbV9hbmltVmFsID0gTGlz
dFR5cGU6OmNyZWF0ZShtX2Jhc2VWYWwuZ2V0KCkpOwogICAgICAgICByZXR1cm4gbV9hbmltVmFs
OwogICAgIH0KIAorICAgIGJvb2wgaXNQcm9wZXJ0eVJlYWRPbmx5KGNvbnN0IERPTUxpdmVQcm9w
ZXJ0eSYgcHJvcGVydHkpIGNvbnN0IG92ZXJyaWRlCisgICAgeworICAgICAgICByZXR1cm4gbV9h
bmltVmFsID09ICZwcm9wZXJ0eTsKKyAgICB9CisKICAgICAvLyBDYWxsZWQgd2hlbiBtX2Jhc2VW
YWwgY2hhbmdlcyBvciBhbiBpdGVtIGluIG1fYmFzZVZhbCBjaGFuZ2VzLgotICAgIHZvaWQgY29t
bWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJvcGVydHkqIHByb3BlcnR5KSBvdmVycmlkZQorICAgIHZv
aWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoRE9NTGl2ZVByb3BlcnR5KiBwcm9wZXJ0eSkgb3ZlcnJp
ZGUKICAgICB7CiAgICAgICAgIGlmIChtX2FuaW1WYWwpCiAgICAgICAgICAgICAqbV9hbmltVmFs
ID0gbV9iYXNlVmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3NvckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlQYWlyQWNjZXNzb3JJbXBsLmgKaW5kZXgg
NGEyNjlmYTVhOGYyN2NkMzM1NWU4MzQwNmZhNTM4NTNkOTUyODljNS4uMzUwYmMwODhlYjQ1YTk2
MDk4ZWE5MjQ3YTM3NTg1ODI4ZWUxMzUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3NvckltcGwuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5UGFpckFjY2Vz
c29ySW1wbC5oCkBAIC00NiwxNyArNDYsMTEgQEAgcHVibGljOgogICAgIGNvbnN0ZXhwciBzdGF0
aWMgY29uc3QgU1ZHTWVtYmVyQWNjZXNzb3I8T3duZXJUeXBlPiYgc2luZ2xldG9uKCkgeyByZXR1
cm4gQmFzZTo6dGVtcGxhdGUgc2luZ2xldG9uPFNWR0FuaW1hdGVkQW5nbGVPcmllbnRBY2Nlc3Nv
ciwgcHJvcGVydHkxLCBwcm9wZXJ0eTI+KCk7IH0KIAogcHJpdmF0ZToKLSAgICBPcHRpb25hbDxT
dHJpbmc+IHN5bmNocm9uaXplKGNvbnN0IE93bmVyVHlwZSYgb3duZXIpIGNvbnN0IGZpbmFsCisg
ICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoY29uc3QgT3duZXJUeXBlJiBvd25lcikgY29uc3QgZmlu
YWwKICAgICB7Ci0gICAgICAgIGJvb2wgZGlydHkxID0gcHJvcGVydHkxKG93bmVyKS0+aXNEaXJ0
eSgpOwotICAgICAgICBib29sIGRpcnR5MiA9IHByb3BlcnR5Mihvd25lciktPmlzRGlydHkoKTsK
LSAgICAgICAgaWYgKCEoZGlydHkxIHx8IGRpcnR5MikpCi0gICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwotCiAgICAgICAgIGF1dG8gdHlwZSA9IHByb3BlcnR5Mihvd25lciktPmJhc2VW
YWwoKTsKLQotICAgICAgICBTdHJpbmcgc3RyaW5nMSA9IGRpcnR5MSA/ICpwcm9wZXJ0eTEob3du
ZXIpLT5zeW5jaHJvbml6ZSgpIDogcHJvcGVydHkxKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5nKCk7
Ci0gICAgICAgIFN0cmluZyBzdHJpbmcyID0gZGlydHkyID8gKnByb3BlcnR5Mihvd25lciktPnN5
bmNocm9uaXplKCkgOiBwcm9wZXJ0eTIob3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsKKyAgICAg
ICAgU3RyaW5nIHN0cmluZzEgPSBwcm9wZXJ0eTEob3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsK
KyAgICAgICAgU3RyaW5nIHN0cmluZzIgPSBwcm9wZXJ0eTIob3duZXIpLT5iYXNlVmFsQXNTdHJp
bmcoKTsKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gU1ZHTWFya2VyT3JpZW50QXV0byB8fCB0eXBl
ID09IFNWR01hcmtlck9yaWVudEF1dG9TdGFydFJldmVyc2UgPyBzdHJpbmcyIDogc3RyaW5nMTsK
ICAgICB9CiAKQEAgLTgzLDE1ICs3NywxMCBAQCBwdWJsaWM6CiAgICAgY29uc3RleHByIHN0YXRp
YyBjb25zdCBTVkdNZW1iZXJBY2Nlc3NvcjxPd25lclR5cGU+JiBzaW5nbGV0b24oKSB7IHJldHVy
biBCYXNlOjp0ZW1wbGF0ZSBzaW5nbGV0b248U1ZHQW5pbWF0ZWRJbnRlZ2VyUGFpckFjY2Vzc29y
LCBwcm9wZXJ0eTEsIHByb3BlcnR5Mj4oKTsgfQogCiBwcml2YXRlOgotICAgIE9wdGlvbmFsPFN0
cmluZz4gc3luY2hyb25pemUoY29uc3QgT3duZXJUeXBlJiBvd25lcikgY29uc3QgZmluYWwKKyAg
ICBTdHJpbmcgdmFsdWVBc1N0cmluZyhjb25zdCBPd25lclR5cGUmIG93bmVyKSBjb25zdCBmaW5h
bAogICAgIHsKLSAgICAgICAgYm9vbCBkaXJ0eTEgPSBwcm9wZXJ0eTEob3duZXIpLT5pc0RpcnR5
KCk7Ci0gICAgICAgIGJvb2wgZGlydHkyID0gcHJvcGVydHkyKG93bmVyKS0+aXNEaXJ0eSgpOwot
ICAgICAgICBpZiAoIShkaXJ0eTEgfHwgZGlydHkyKSkKLSAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7Ci0KLSAgICAgICAgU3RyaW5nIHN0cmluZzEgPSBkaXJ0eTEgPyAqcHJvcGVydHkx
KG93bmVyKS0+c3luY2hyb25pemUoKSA6IHByb3BlcnR5MShvd25lciktPmJhc2VWYWxBc1N0cmlu
ZygpOwotICAgICAgICBTdHJpbmcgc3RyaW5nMiA9IGRpcnR5MiA/ICpwcm9wZXJ0eTIob3duZXIp
LT5zeW5jaHJvbml6ZSgpIDogcHJvcGVydHkyKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5nKCk7Cisg
ICAgICAgIFN0cmluZyBzdHJpbmcxID0gcHJvcGVydHkxKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5n
KCk7CisgICAgICAgIFN0cmluZyBzdHJpbmcyID0gcHJvcGVydHkyKG93bmVyKS0+YmFzZVZhbEFz
U3RyaW5nKCk7CiAgICAgICAgIHJldHVybiBzdHJpbmcxID09IHN0cmluZzIgPyBzdHJpbmcxIDog
c3RyaW5nMSArICIsICIgKyBzdHJpbmcyOwogICAgIH0KIApAQCAtMTE0LDE5ICsxMDMsMTQgQEAg
Y2xhc3MgU1ZHQW5pbWF0ZWROdW1iZXJQYWlyQWNjZXNzb3IgZmluYWwgOiBwdWJsaWMgU1ZHQW5p
bWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3MKIAogcHVibGljOgogICAgIHVzaW5nIEJhc2U6OkJhc2U7
Ci0gICAgdGVtcGxhdGU8UmVmPFNWR0FuaW1hdGVkTnVtYmVyPiBPd25lclR5cGU6Oipwcm9wZXJ0
eTEsIFJlZjxTVkdBbmltYXRlZE51bWJlcj4gT3duZXJUeXBlOjoqcHJvcGVydHkyID4KKyAgICB0
ZW1wbGF0ZTxSZWY8U1ZHQW5pbWF0ZWROdW1iZXI+IE93bmVyVHlwZTo6KnByb3BlcnR5MSwgUmVm
PFNWR0FuaW1hdGVkTnVtYmVyPiBPd25lclR5cGU6Oipwcm9wZXJ0eTI+CiAgICAgY29uc3RleHBy
IHN0YXRpYyBjb25zdCBTVkdNZW1iZXJBY2Nlc3NvcjxPd25lclR5cGU+JiBzaW5nbGV0b24oKSB7
IHJldHVybiBCYXNlOjp0ZW1wbGF0ZSBzaW5nbGV0b248U1ZHQW5pbWF0ZWROdW1iZXJQYWlyQWNj
ZXNzb3IsIHByb3BlcnR5MSwgcHJvcGVydHkyPigpOyB9CiAKIHByaXZhdGU6Ci0gICAgT3B0aW9u
YWw8U3RyaW5nPiBzeW5jaHJvbml6ZShjb25zdCBPd25lclR5cGUmIG93bmVyKSBjb25zdCBmaW5h
bAorICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKGNvbnN0IE93bmVyVHlwZSYgb3duZXIpIGNvbnN0
IGZpbmFsCiAgICAgewotICAgICAgICBib29sIGRpcnR5MSA9IHByb3BlcnR5MShvd25lciktPmlz
RGlydHkoKTsKLSAgICAgICAgYm9vbCBkaXJ0eTIgPSBwcm9wZXJ0eTIob3duZXIpLT5pc0RpcnR5
KCk7Ci0gICAgICAgIGlmICghKGRpcnR5MSB8fCBkaXJ0eTIpKQotICAgICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKLQotICAgICAgICBTdHJpbmcgc3RyaW5nMSA9IGRpcnR5MSA/ICpwcm9w
ZXJ0eTEob3duZXIpLT5zeW5jaHJvbml6ZSgpIDogcHJvcGVydHkxKG93bmVyKS0+YmFzZVZhbEFz
U3RyaW5nKCk7Ci0gICAgICAgIFN0cmluZyBzdHJpbmcyID0gZGlydHkyID8gKnByb3BlcnR5Mihv
d25lciktPnN5bmNocm9uaXplKCkgOiBwcm9wZXJ0eTIob3duZXIpLT5iYXNlVmFsQXNTdHJpbmco
KTsKKyAgICAgICAgU3RyaW5nIHN0cmluZzEgPSBwcm9wZXJ0eTEob3duZXIpLT5iYXNlVmFsQXNT
dHJpbmcoKTsKKyAgICAgICAgU3RyaW5nIHN0cmluZzIgPSBwcm9wZXJ0eTIob3duZXIpLT5iYXNl
VmFsQXNTdHJpbmcoKTsKICAgICAgICAgcmV0dXJuIHN0cmluZzEgPT0gc3RyaW5nMiA/IHN0cmlu
ZzEgOiBzdHJpbmcxICsgIiwgIiArIHN0cmluZzI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFZhbHVlUHJvcGVydHkuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oCmlu
ZGV4IGRmZGIxNzFhMGNiODNmYzc1OTYwNTllNzYwNGE3ZmQ4OTM1MWY1MjUuLjdmOTY1MjVhYjkz
YjY0Y2YzN2NjYTUyYWY0N2RmYjRlNmMwMWFmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oCkBAIC04NCw5
ICs4NCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBNYW5hZ2luZyB0aGUgcmVsYXRpb25z
aGlwIHdpdGggdGhlIG93bmVyLgotICAgIHZvaWQgc2V0RGlydHkoKSBvdmVycmlkZSB7IG1fYmFz
ZVZhbC0+c2V0RGlydHkoKTsgfQotICAgIGJvb2wgaXNEaXJ0eSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG1fYmFzZVZhbC0+aXNEaXJ0eSgpOyB9Ci0gICAgT3B0aW9uYWw8U3RyaW5nPiBzeW5j
aHJvbml6ZSgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fYmFzZVZhbC0+c3luY2hyb25pemUoKTsgfQor
ICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYmFzZVZh
bEFzU3RyaW5nKCk7IH0KIAogICAgIC8vIFVzZWQgYnkgUmVuZGVyU1ZHRWxlbWVudHMgYW5kIER1
bXBSZW5kZXJUcmVlLgogICAgIGNvbnN0IFZhbHVlVHlwZSYgY3VycmVudFZhbHVlKCkgY29uc3QK
QEAgLTEzMSwyNiArMTI5LDI0IEBAIHByb3RlY3RlZDoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4u
LiBBcmd1bWVudHM+CiAgICAgU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5KFNWR0VsZW1lbnQqIGNv
bnRleHRFbGVtZW50LCBBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCiAgICAgICAgIDogU1ZHQW5p
bWF0ZWRQcm9wZXJ0eShjb250ZXh0RWxlbWVudCkKLSAgICAgICAgLCBtX2Jhc2VWYWwoUHJvcGVy
dHlUeXBlOjpjcmVhdGUodGhpcywgU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0ZSwgVmFsdWVU
eXBlKHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4pKSkKLSAgICB7Ci0gICAg
fQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIFNWR0FuaW1hdGVk
VmFsdWVQcm9wZXJ0eShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgU1ZHUHJvcGVydHlBY2Nl
c3MgYWNjZXNzLCBBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCi0gICAgICAgIDogU1ZHQW5pbWF0
ZWRQcm9wZXJ0eShjb250ZXh0RWxlbWVudCkKLSAgICAgICAgLCBtX2Jhc2VWYWwoUHJvcGVydHlU
eXBlOjpjcmVhdGUodGhpcywgYWNjZXNzLCBWYWx1ZVR5cGUoc3RkOjpmb3J3YXJkPEFyZ3VtZW50
cz4oYXJndW1lbnRzKS4uLikpKQorICAgICAgICAsIG1fYmFzZVZhbChQcm9wZXJ0eVR5cGU6OmNy
ZWF0ZSh0aGlzLCBWYWx1ZVR5cGUoc3RkOjpmb3J3YXJkPEFyZ3VtZW50cz4oYXJndW1lbnRzKS4u
LikpKQogICAgIHsKICAgICB9CiAKICAgICBSZWZQdHI8UHJvcGVydHlUeXBlPiYgZW5zdXJlQW5p
bVZhbCgpCiAgICAgewogICAgICAgICBpZiAoIW1fYW5pbVZhbCkKLSAgICAgICAgICAgIG1fYW5p
bVZhbCA9IFByb3BlcnR5VHlwZTo6Y3JlYXRlKHRoaXMsIFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFk
T25seSwgbV9iYXNlVmFsLT52YWx1ZSgpKTsKKyAgICAgICAgICAgIG1fYW5pbVZhbCA9IFByb3Bl
cnR5VHlwZTo6Y3JlYXRlKHRoaXMsIG1fYmFzZVZhbC0+dmFsdWUoKSk7CiAgICAgICAgIHJldHVy
biBtX2FuaW1WYWw7CiAgICAgfQogCisgICAgYm9vbCBpc1Byb3BlcnR5UmVhZE9ubHkoY29uc3Qg
RE9NTGl2ZVByb3BlcnR5JiBwcm9wZXJ0eSkgY29uc3Qgb3ZlcnJpZGUKKyAgICB7CisgICAgICAg
IHJldHVybiBtX2FuaW1WYWwgPT0gJnByb3BlcnR5OworICAgIH0KKwogICAgIC8vIENhbGxlZCB3
aGVuIG1fYmFzZVZhbCBjaGFuZ2VzLgotICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZH
UHJvcGVydHkqIHByb3BlcnR5KSBvdmVycmlkZQorICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFu
Z2UoRE9NTGl2ZVByb3BlcnR5KiBwcm9wZXJ0eSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlm
IChtX2FuaW1WYWwpCiAgICAgICAgICAgICBtX2FuaW1WYWwtPnNldFZhbHVlKG1fYmFzZVZhbC0+
dmFsdWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdN
ZW1iZXJBY2Nlc3Nvci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWVtYmVy
QWNjZXNzb3IuaAppbmRleCBmN2JiYTZhZTBhMGVlYWJiNmU2MTg3YTU4MTA0ZjcyMTI4YWNhYWZh
Li5lNTk3NzgwNTc2MDQxOTEzMjdjMjc0NTg5ZDYyYWY1NzY3YmJiM2RmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNZW1iZXJBY2Nlc3Nvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01lbWJlckFjY2Vzc29yLmgKQEAgLTMwLDgg
KzMwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBET01MaXZlUHJvcGVydHk7
CiBjbGFzcyBTVkdBbmltYXRlZFByb3BlcnR5OwotY2xhc3MgU1ZHUHJvcGVydHk7CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIE93bmVyVHlwZT4KIGNsYXNzIFNWR01lbWJlckFjY2Vzc29yIHsKQEAgLTQz
LDkgKzQzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGVkUHJvcGVydHko
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGVkTGVu
Z3RoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBtYXRjaGVz
KGNvbnN0IE93bmVyVHlwZSYsIGNvbnN0IFNWR1Byb3BlcnR5JikgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlcyhjb25zdCBPd25lclR5cGUmLCBjb25zdCBE
T01MaXZlUHJvcGVydHkmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBtYXRjaGVzKGNvbnN0IE93bmVyVHlwZSYsIGNvbnN0IFNWR0FuaW1hdGVkUHJvcGVydHkmKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgT3B0aW9uYWw8U3RyaW5nPiBzeW5j
aHJvbml6ZShjb25zdCBPd25lclR5cGUmKSBjb25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0K
KyAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZUFzU3RyaW5nKGNvbnN0IE93bmVyVHlwZSYpIGNvbnN0
IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KIAogICAgIHZpcnR1YWwgUmVmUHRyPFNWR0F0dHJp
YnV0ZUFuaW1hdG9yPiBjcmVhdGVBbmltYXRvcihPd25lclR5cGUmLCBjb25zdCBRdWFsaWZpZWRO
YW1lJiwgQW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUsIGJvb2wsIGJvb2wpIGNvbnN0IHsgcmV0dXJu
IG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kQW5pbWF0ZWRJbnN0YW5jZShPd25l
clR5cGUmLCBTVkdBdHRyaWJ1dGVBbmltYXRvciYpIGNvbnN0IHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUG9pbnRlck1lbWJlckFjY2Vzc29yLmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQb2ludGVyTWVtYmVyQWNjZXNzb3IuaApp
bmRleCA4ZTJmNzZkY2FiNGU5MGZiMzhlYjMzOTY5ZWE2NWMwNzAyMjQ1Mzg3Li5hZjUzZDZjNTZm
ZDg2OTdlMzA5NWUwMWNiYWE5OWU4OWQ3MzZkMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQb2ludGVyTWVtYmVyQWNjZXNzb3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQb2ludGVyTWVtYmVyQWNjZXNzb3IuaApAQCAtNDcs
OSArNDcsOSBAQCBwdWJsaWM6CiAgICAgICAgIHByb3BlcnR5KG93bmVyKS0+ZGV0YWNoKCk7CiAg
ICAgfQogCi0gICAgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZShjb25zdCBPd25lclR5cGUm
IG93bmVyKSBjb25zdCBvdmVycmlkZQorICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKGNvbnN0IE93
bmVyVHlwZSYgb3duZXIpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAgICAgICByZXR1cm4gcHJv
cGVydHkob3duZXIpLT5zeW5jaHJvbml6ZSgpOworICAgICAgICByZXR1cm4gcHJvcGVydHkob3du
ZXIpLT52YWx1ZUFzU3RyaW5nKCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHkuaAppbmRleCBjZTY1Y2IxMTBkMWZiNDY2ZTIy
OWVjNzljOWRkMDE3ZTg2MTI5OTY3Li43NmE5N2M1OTllYzhlM2M0Y2UzYzA0YmU2MWQ2MWEwODk4
YzQ3Y2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9w
ZXJ0eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5LmgK
QEAgLTIwLDgzICsyMCwyMSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR1Byb3Bl
cnR5T3duZXIuaCIKLSNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlICJET01MaXZl
UHJvcGVydHkuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgU1ZH
UHJvcGVydHlBY2Nlc3MgOiB1aW50OF90IHsgUmVhZFdyaXRlLCBSZWFkT25seSB9OwotZW51bSBj
bGFzcyBTVkdQcm9wZXJ0eVN0YXRlIDogdWludDhfdCB7IENsZWFuLCBEaXJ0eSB9OwotCi1jbGFz
cyBTVkdQcm9wZXJ0eSA6IHB1YmxpYyBSZWZDb3VudGVkPFNWR1Byb3BlcnR5PiB7CitjbGFzcyBT
VkdQcm9wZXJ0eSA6IHB1YmxpYyBET01MaXZlUHJvcGVydHksIHB1YmxpYyBSZWZDb3VudGVkPFNW
R1Byb3BlcnR5PiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1ZHUHJvcGVydHkoKSA9IGRlZmF1
bHQ7CiAKLSAgICAvLyBNYW5hZ2luZyB0aGUgcmVsYXRpb25zaGlwIHdpdGggdGhlIG93bmVyLgot
ICAgIGJvb2wgaXNBdHRhY2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1fb3duZXI7IH0KLSAgICB2b2lk
IGF0dGFjaChTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNz
KQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX293bmVyKTsKLSAgICAgICAgQVNTRVJUKG1fc3Rh
dGUgPT0gU1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW4pOwotICAgICAgICBtX293bmVyID0gb3duZXI7
Ci0gICAgICAgIG1fYWNjZXNzID0gYWNjZXNzOwotICAgIH0KLQotICAgIHZvaWQgZGV0YWNoKCkK
LSAgICB7Ci0gICAgICAgIG1fb3duZXIgPSBudWxscHRyOwotICAgICAgICBtX2FjY2VzcyA9IFNW
R1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGU7Ci0gICAgICAgIG1fc3RhdGUgPSBTVkdQcm9wZXJ0
eVN0YXRlOjpDbGVhbjsKLSAgICB9Ci0KLSAgICBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxl
bWVudCgpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoIW1fb3duZXIpCi0gICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgcmV0dXJuIG1fb3duZXItPmF0dHJpYnV0ZUNvbnRleHRF
bGVtZW50KCk7Ci0gICAgfQotCi0gICAgdm9pZCBjb21taXRDaGFuZ2UoKQotICAgIHsKLSAgICAg
ICAgaWYgKCFtX293bmVyKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX293bmVyLT5j
b21taXRQcm9wZXJ0eUNoYW5nZSh0aGlzKTsKLSAgICB9Ci0KLSAgICAvLyBET00gYWNjZXNzLgot
ICAgIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzOyB9
Ci0gICAgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3QgeyByZXR1cm4gbV9hY2Nlc3MgPT0gU1ZHUHJv
cGVydHlBY2Nlc3M6OlJlYWRPbmx5OyB9Ci0KLSAgICAvLyBTeW5jaHJvbml6aW5nIHRoZSBTVkcg
YXR0cmlidXRlIGFuZCBpdHMgcmVmbGVjdGlvbiBoZXJlLgotICAgIGJvb2wgaXNEaXJ0eSgpIGNv
bnN0IHsgcmV0dXJuIG1fc3RhdGUgPT0gU1ZHUHJvcGVydHlTdGF0ZTo6RGlydHk7IH0KLSAgICB2
b2lkIHNldERpcnR5KCkgeyBtX3N0YXRlID0gU1ZHUHJvcGVydHlTdGF0ZTo6RGlydHk7IH0KLSAg
ICBPcHRpb25hbDxTdHJpbmc+IHN5bmNocm9uaXplKCkKLSAgICB7Ci0gICAgICAgIGlmIChtX3N0
YXRlID09IFNWR1Byb3BlcnR5U3RhdGU6OkNsZWFuKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKLSAgICAgICAgbV9zdGF0ZSA9IFNWR1Byb3BlcnR5U3RhdGU6OkNsZWFuOwotICAg
ICAgICByZXR1cm4gdmFsdWVBc1N0cmluZygpOwotICAgIH0KLQogICAgIC8vIFRoaXMgaXMgdXNl
ZCB3aGVuIGNhbGxpbmcgc2V0QXR0cmlidXRlKCkuCiAgICAgdmlydHVhbCBTdHJpbmcgdmFsdWVB
c1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KIAotICAgIC8vIFZpc3Vh
bCBTdHVkaW8gZG9lc24ndCBzZWVtIHRvIHNlZSB0aGVzZSBwcml2YXRlIGNvbnN0cnVjdG9ycyBm
cm9tIHN1YmNsYXNzZXMuCi0gICAgLy8gRklYTUU6IFNlZSB3aGF0IGl0IHRha2VzIHRvIHJlbW92
ZSB0aGlzIGhhY2suCi0jaWYgIUNPTVBJTEVSKE1TVkMpCiBwcm90ZWN0ZWQ6Ci0jZW5kaWYKLSAg
ICBTVkdQcm9wZXJ0eShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciA9IG51bGxwdHIsIFNWR1Byb3Bl
cnR5QWNjZXNzIGFjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUpCi0gICAgICAg
IDogbV9vd25lcihvd25lcikKLSAgICAgICAgLCBtX2FjY2VzcyhhY2Nlc3MpCi0gICAgewotICAg
IH0KLQotICAgIFNWR1Byb3BlcnR5T3duZXIqIG1fb3duZXIgeyBudWxscHRyIH07Ci0gICAgU1ZH
UHJvcGVydHlBY2Nlc3MgbV9hY2Nlc3MgeyBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRlIH07
Ci0gICAgU1ZHUHJvcGVydHlTdGF0ZSBtX3N0YXRlIHsgU1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW4g
fTsKKyAgICB1c2luZyBET01MaXZlUHJvcGVydHk6OkRPTUxpdmVQcm9wZXJ0eTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR1Byb3BlcnR5QWNjZXNzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR1Byb3BlcnR5QWNjZXNzb3IuaAppbmRleCBmZjhjNGNkZTZkZDBmM2NhZmJjOGYyN2Iy
NzAyOTcwZTM1ZjQ4NzY0Li44ZDEyODE4MjdkNGZiOTg4OTNiZmYxZjI0OWUwYjM1Njg4MjI3NWY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFj
Y2Vzc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlB
Y2Nlc3Nvci5oCkBAIC00MCw3ICs0MCw3IEBAIHByb3RlY3RlZDoKICAgICB1c2luZyBCYXNlOjpw
cm9wZXJ0eTsKICAgICB1c2luZyBCYXNlOjpzaW5nbGV0b247CiAKLSAgICBib29sIG1hdGNoZXMo
Y29uc3QgT3duZXJUeXBlJiBvd25lciwgY29uc3QgU1ZHUHJvcGVydHkmIHByb3BlcnR5KSBjb25z
dCBvdmVycmlkZQorICAgIGJvb2wgbWF0Y2hlcyhjb25zdCBPd25lclR5cGUmIG93bmVyLCBjb25z
dCBET01MaXZlUHJvcGVydHkmIHByb3BlcnR5KSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAg
ICAgcmV0dXJuIHRoaXMtPnByb3BlcnR5KG93bmVyKS5wdHIoKSA9PSAmcHJvcGVydHk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlM
aXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUxpc3QuaApp
bmRleCBjYmIwMGFmMTAzMDI1OWZhM2MwNDFhM2YwZjJhYjc4NzNjN2RkM2NkLi5jMTM0NjQzODg1
ZjFiZWFhZmI5N2E3YjdmNWQ0ZWUwZmQ4MjNmYzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUxpc3QuaApAQCAtMzAsNyArMzAsNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+Ci1jbGFzcyBT
VkdQcm9wZXJ0eUxpc3QgOiBwdWJsaWMgU1ZHTGlzdDxSZWY8UHJvcGVydHlUeXBlPj4sIHB1Ymxp
YyBTVkdQcm9wZXJ0eU93bmVyIHsKK2NsYXNzIFNWR1Byb3BlcnR5TGlzdCA6IHB1YmxpYyBTVkdM
aXN0PFJlZjxQcm9wZXJ0eVR5cGU+PiwgcHVibGljIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyIHsK
IHB1YmxpYzoKICAgICB1c2luZyBCYXNlTGlzdCA9IFNWR0xpc3Q8UmVmPFByb3BlcnR5VHlwZT4+
OwogICAgIHVzaW5nIEJhc2VMaXN0Ojppc0VtcHR5OwpAQCAtNDIsMTMgKzQyLDEyIEBAIHB1Ymxp
YzoKICNpZiAhQ09NUElMRVIoTVNWQykKIHByb3RlY3RlZDoKICNlbmRpZgotICAgIHVzaW5nIFNW
R1Byb3BlcnR5T3duZXI6OlNWR1Byb3BlcnR5T3duZXI7CisgICAgdXNpbmcgRE9NTGl2ZVByb3Bl
cnR5T2JzZXJ2ZXI6OkRPTUxpdmVQcm9wZXJ0eU9ic2VydmVyOwogICAgIHVzaW5nIEJhc2VMaXN0
OjptX2l0ZW1zOwotICAgIHVzaW5nIEJhc2VMaXN0OjptX2FjY2VzczsKLSAgICB1c2luZyBCYXNl
TGlzdDo6bV9vd25lcjsKKyAgICB1c2luZyBCYXNlTGlzdDo6bV9vYnNlcnZlcjsKIAotICAgIFNW
R1Byb3BlcnR5TGlzdChTVkdQcm9wZXJ0eU93bmVyKiBvd25lciA9IG51bGxwdHIsIFNWR1Byb3Bl
cnR5QWNjZXNzIGFjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUpCi0gICAgICAg
IDogQmFzZUxpc3Qob3duZXIsIGFjY2VzcykKKyAgICBTVkdQcm9wZXJ0eUxpc3QoRE9NTGl2ZVBy
b3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyID0gbnVsbHB0cikKKyAgICAgICAgOiBCYXNlTGlzdChv
YnNlcnZlcikKICAgICB7CiAgICAgfQogCkBAIC02NCwxMiArNjMsMTcgQEAgcHJvdGVjdGVkOgog
ICAgICAgICAgICAgaXRlbS0+ZGV0YWNoKCk7CiAgICAgfQogCi0gICAgU1ZHUHJvcGVydHlPd25l
ciogb3duZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX293bmVyOyB9CisgICAgRE9NTGl2
ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9v
YnNlcnZlcjsgfQogCi0gICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9wZXJ0eSop
IG92ZXJyaWRlCisgICAgYm9vbCBpc1Byb3BlcnR5UmVhZE9ubHkoY29uc3QgRE9NTGl2ZVByb3Bl
cnR5JikgY29uc3Qgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIGlmIChvd25lcigpKQotICAgICAg
ICAgICAgb3duZXIoKS0+Y29tbWl0UHJvcGVydHlDaGFuZ2UodGhpcyk7CisgICAgICAgIHJldHVy
biBvYnNlcnZlcigpICYmIG9ic2VydmVyKCktPmlzUHJvcGVydHlSZWFkT25seSgqdGhpcyk7Cisg
ICAgfQorCisgICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqKSBv
dmVycmlkZQorICAgIHsKKyAgICAgICAgaWYgKG9ic2VydmVyKCkpCisgICAgICAgICAgICBvYnNl
cnZlcigpLT5jb21taXRQcm9wZXJ0eUNoYW5nZSh0aGlzKTsKICAgICB9CiAKICAgICBSZWY8UHJv
cGVydHlUeXBlPiBhdCh1bnNpZ25lZCBpbmRleCkgY29uc3Qgb3ZlcnJpZGUKQEAgLTg4LDcgKzky
LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgbmV3SXRlbSA9IG5ld0l0ZW0tPmNsb25lKCk7
CiAKICAgICAgICAgLy8gU3BlYzogQXR0YWNoIG5ld0l0ZW0gdG8gdGhlIGxpc3Qgb2JqZWN0Lgot
ICAgICAgICBuZXdJdGVtLT5hdHRhY2godGhpcywgbV9hY2Nlc3MpOworICAgICAgICBuZXdJdGVt
LT5hdHRhY2godGhpcyk7CiAgICAgICAgIG1faXRlbXMuaW5zZXJ0KGluZGV4LCBXVEZNb3ZlKG5l
d0l0ZW0pKTsKICAgICAgICAgcmV0dXJuIGF0KGluZGV4KTsKICAgICB9CkBAIC0xMDksNyArMTEz
LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgaXRlbSA9IFdURk1vdmUobmV3SXRlbSk7CiAK
ICAgICAgICAgLy8gU3BlYzogQXR0YWNoIG5ld0l0ZW0gdG8gdGhlIGxpc3Qgb2JqZWN0LgotICAg
ICAgICBpdGVtLT5hdHRhY2godGhpcywgbV9hY2Nlc3MpOworICAgICAgICBpdGVtLT5hdHRhY2go
dGhpcyk7CiAgICAgICAgIHJldHVybiBhdChpbmRleCk7CiAgICAgfQogCkBAIC0xMzIsNyArMTM2
LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgbmV3SXRlbSA9IG5ld0l0ZW0tPmNsb25lKCk7
CiAKICAgICAgICAgLy8gU3BlYzogQXR0YWNoIG5ld0l0ZW0gdG8gdGhlIGxpc3Qgb2JqZWN0Lgot
ICAgICAgICBuZXdJdGVtLT5hdHRhY2godGhpcywgbV9hY2Nlc3MpOworICAgICAgICBuZXdJdGVt
LT5hdHRhY2godGhpcyk7CiAgICAgICAgIG1faXRlbXMuYXBwZW5kKFdURk1vdmUobmV3SXRlbSkp
OwogICAgICAgICByZXR1cm4gYXQoc2l6ZSgpIC0gMSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lci5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lci5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjOTgxOGJlOWY4NDBjNzY0NTM5OGU2MWI0ODkzODE4NjJhMzQ2OGYzLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXIuaAorKysgL2Rldi9udWxsCkBAIC0x
LDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jcHJhZ21hIG9uY2UKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAotY2xhc3Mg
U1ZHRWxlbWVudDsKLWNsYXNzIFNWR1Byb3BlcnR5OwotCi1jbGFzcyBTVkdQcm9wZXJ0eU93bmVy
IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5TVkdQcm9wZXJ0eU93bmVyKCkgPSBkZWZhdWx0Owot
Ci0gICAgdmlydHVhbCBTVkdQcm9wZXJ0eU93bmVyKiBvd25lcigpIGNvbnN0IHsgcmV0dXJuIG51
bGxwdHI7IH0KLSAgICAKLSAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGF0dHJpYnV0ZUNv
bnRleHRFbGVtZW50KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmICghb3duZXIoKSkKLSAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICByZXR1cm4gb3duZXIoKS0+YXR0cmlidXRl
Q29udGV4dEVsZW1lbnQoKTsKLSAgICB9Ci0gICAgCi0gICAgdmlydHVhbCB2b2lkIGNvbW1pdFBy
b3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5KiBwcm9wZXJ0eSkKLSAgICB7Ci0gICAgICAgIGlmICgh
b3duZXIoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgb3duZXIoKS0+Y29tbWl0UHJv
cGVydHlDaGFuZ2UocHJvcGVydHkpOwotICAgIH0KLSAgICAKLXByb3RlY3RlZDoKLSAgICBTVkdQ
cm9wZXJ0eU93bmVyKCkgPSBkZWZhdWx0OwotfTsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkuaAppbmRleCBh
NWY3MTM2OTdlYTJjNGM2MDBiYTUzN2RhMjk0MWY1ZGE5OWU5NzhiLi4zMTlhNTA4MmE1OWQ5ZGU1
YjYxZGZmMjFiNWViMzY4ZmQyODdhYzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkuaApAQCAtMTc4LDcgKzE3
OCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIFF1YWxp
ZmllZE5hbWUgcHJvcGVydHlBdHRyaWJ1dGVOYW1lKGNvbnN0IFNWR1Byb3BlcnR5JiBwcm9wZXJ0
eSkgY29uc3Qgb3ZlcnJpZGUKKyAgICBRdWFsaWZpZWROYW1lIHByb3BlcnR5QXR0cmlidXRlTmFt
ZShjb25zdCBET01MaXZlUHJvcGVydHkmIHByb3BlcnR5KSBjb25zdCBvdmVycmlkZQogICAgIHsK
ICAgICAgICAgUXVhbGlmaWVkTmFtZSBhdHRyaWJ1dGVOYW1lID0gbnVsbFFOYW1lKCk7CiAgICAg
ICAgIGVudW1lcmF0ZVJlY3Vyc2l2ZWx5KFsmXShjb25zdCBhdXRvJiBlbnRyeSkgLT4gYm9vbCB7
CkBAIC0yMTEsMzMgKzIxMSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIH0pOwogICAgIH0KIAotICAg
IC8vIEZpbmRzIHRoZSBwcm9wZXJ0eSB3aG9zZSBuYW1lIGlzIGF0dHJpYnV0ZU5hbWUgYW5kIHJl
dHVybnMgdGhlIHN5bmNocm9uaXplCi0gICAgLy8gc3RyaW5nIHRocm91Z2ggdGhlIGFzc29jaWF0
ZWQgU1ZHTWVtYmVyQWNjZXNzb3IuCi0gICAgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSBjb25zdCBvdmVycmlkZQorICAgIC8v
IEZpbmRzIHRoZSBwcm9wZXJ0eSB3aG9zZSBuYW1lIGlzIGF0dHJpYnV0ZU5hbWUgYW5kIHJldHVy
bnMgdGhlIHZhbHVlQXNTdHJpbmcKKyAgICAvLyB0aHJvdWdoIHRoZSBhc3NvY2lhdGVkIFNWR01l
bWJlckFjY2Vzc29yLgorICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJpYnV0ZU5hbWUpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAgICAgICBPcHRpb25h
bDxTdHJpbmc+IHZhbHVlOworICAgICAgICBTdHJpbmcgdmFsdWU7CiAgICAgICAgIGVudW1lcmF0
ZVJlY3Vyc2l2ZWx5KFsmXShjb25zdCBhdXRvJiBlbnRyeSkgLT4gYm9vbCB7CiAgICAgICAgICAg
ICBpZiAoIWVudHJ5LmtleS5tYXRjaGVzKGF0dHJpYnV0ZU5hbWUpKQogICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOwotICAgICAgICAgICAgdmFsdWUgPSBlbnRyeS52YWx1ZS0+c3luY2hyb25p
emUobV9vd25lcik7CisgICAgICAgICAgICB2YWx1ZSA9IGVudHJ5LnZhbHVlLT52YWx1ZUFzU3Ry
aW5nKG1fb3duZXIpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9KTsKICAg
ICAgICAgcmV0dXJuIHZhbHVlOwogICAgIH0KIAotICAgIC8vIEVudW1lcmF0ZSByZWN1cnNpdmVs
eSB0aGUgU1ZHTWVtYmVyQWNjZXNzb3JzIG9mIHRoZSBPd25lclR5cGUgYW5kIGFsbCBpdHMgQmFz
ZVR5cGVzLgotICAgIC8vIENvbGxlY3QgYWxsIHRoZSBwYWlycyA8QXR0cmlidXRlTmFtZSwgU3Ry
aW5nPiBvbmx5IGZvciB0aGUgZGlydHkgcHJvcGVydGllcy4KLSAgICBIYXNoTWFwPFF1YWxpZmll
ZE5hbWUsIFN0cmluZz4gc3luY2hyb25pemVBbGxBdHRyaWJ1dGVzKCkgY29uc3Qgb3ZlcnJpZGUK
LSAgICB7Ci0gICAgICAgIEhhc2hNYXA8UXVhbGlmaWVkTmFtZSwgU3RyaW5nPiBtYXA7Ci0gICAg
ICAgIGVudW1lcmF0ZVJlY3Vyc2l2ZWx5KFsmXShjb25zdCBhdXRvJiBlbnRyeSkgLT4gYm9vbCB7
Ci0gICAgICAgICAgICBpZiAoYXV0byBzdHJpbmcgPSBlbnRyeS52YWx1ZS0+c3luY2hyb25pemUo
bV9vd25lcikpCi0gICAgICAgICAgICAgICAgbWFwLmFkZChlbnRyeS5rZXksICpzdHJpbmcpOwot
ICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0pOwotICAgICAgICByZXR1cm4gbWFw
OwotICAgIH0KLQogICAgIGJvb2wgaXNBbmltYXRlZFByb3BlcnR5QXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAg
ICBib29sIGlzQW5pbWF0ZWRQcm9wZXJ0eUF0dHJpYnV0ZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlSZWdpc3RyeS5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlSZWdpc3RyeS5oCmluZGV4IDI0
ZmU2NDIzN2UyZjVlNWUxYWZlODU1MTBmMTM2NjI2MmRmNDM0MDQuLmRlMjhlYjlmZTE0YTc4N2E2
YzU1MWU0ZGQwZjU4NTAzODdlMjlhOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR1Byb3BlcnR5UmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdQcm9wZXJ0eVJlZ2lzdHJ5LmgKQEAgLTM3LDEwICszNyw5IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5TVkdQcm9wZXJ0eVJlZ2lzdHJ5KCkgPSBkZWZhdWx0OwogCiAgICAg
dmlydHVhbCB2b2lkIGRldGFjaEFsbFByb3BlcnRpZXMoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVh
bCBRdWFsaWZpZWROYW1lIHByb3BlcnR5QXR0cmlidXRlTmFtZShjb25zdCBTVkdQcm9wZXJ0eSYp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFF1YWxpZmllZE5hbWUgcHJvcGVydHlBdHRyaWJ1dGVO
YW1lKGNvbnN0IERPTUxpdmVQcm9wZXJ0eSYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFF1YWxp
ZmllZE5hbWUgYW5pbWF0ZWRQcm9wZXJ0eUF0dHJpYnV0ZU5hbWUoY29uc3QgU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eSYpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIE9wdGlvbmFsPFN0cmluZz4gc3luY2hy
b25pemUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIEhhc2hN
YXA8UXVhbGlmaWVkTmFtZSwgU3RyaW5nPiBzeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMoKSBjb25z
dCA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgdmFsdWVBc1N0cmluZyhjb25zdCBRdWFsaWZpZWRO
YW1lJikgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGlzQW5pbWF0ZWRQcm9wZXJ0eUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBpc0FuaW1hdGVkU3R5bGVQcm9wZXJ0eUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikg
Y29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
VmFsdWVQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQ
cm9wZXJ0eS5oCmluZGV4IDlmMzFlMmQwZjUzOWNjMjAyM2I2M2Y4NzA2ODZmMGVkODFkYzI5Y2Uu
Ljg1MmYyNzRkN2JiMzFlNzVhMjI1MDkxMTNjMjcyNjlhMWQ3OTk0ZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5LmgKQEAgLTY0LDE0ICs2
NCwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogCiAgICAgLy8gQmFzZSBhbmQgZGVmYXVsdCBjb25z
dHJ1Y3Rvci4gRG8gbm90IHVzZSAidXNpbmcgU1ZHUHJvcGVydHk6OlNWR1Byb3BlcnR5IiBiZWNh
dXNlIG9mIFdpbmRvd3MgYW5kIEdUSyBwb3J0cy4KLSAgICBTVkdWYWx1ZVByb3BlcnR5KFNWR1By
b3BlcnR5T3duZXIqIG93bmVyID0gbnVsbHB0ciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzID0g
U1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eShvd25l
ciwgYWNjZXNzKQorICAgIFNWR1ZhbHVlUHJvcGVydHkoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIq
IG9ic2VydmVyID0gbnVsbHB0cikKKyAgICAgICAgOiBTVkdQcm9wZXJ0eShvYnNlcnZlcikKICAg
ICB7CiAgICAgfQogCiAgICAgLy8gQ3JlYXRlIGFuIGluaXRpYWxpemVkIGFuZCBhdHRhY2hlZCBw
cm9wZXJ0eS4KLSAgICBTVkdWYWx1ZVByb3BlcnR5KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBT
VkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUpCi0gICAg
ICAgIDogU1ZHUHJvcGVydHkob3duZXIsIGFjY2VzcykKKyAgICBTVkdWYWx1ZVByb3BlcnR5KERP
TUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlciwgY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1
ZSkKKyAgICAgICAgOiBTVkdQcm9wZXJ0eShvYnNlcnZlcikKICAgICAgICAgLCBtX3ZhbHVlKHZh
bHVlKQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3QuaAppbmRleCAzMDEwYzMzYTc0MDg5YmM0NGZiYjQxMGE1
NmY3ODVhOWY3MTdjY2VlLi5jNWI3M2EwZWE0Yjk2ZmIxYzRiMDQ0M2VkOTExNWEwOTQ0ZWI1MmUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3Bl
cnR5TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJv
cGVydHlMaXN0LmgKQEAgLTc1LDE0ICs3NSwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgdXNpbmcgQmFz
ZTo6cmVtb3ZlOwogCiAgICAgLy8gQmFzZSBhbmQgZGVmYXVsdCBjb25zdHJ1Y3Rvci4gRG8gbm90
IHVzZSAidXNpbmcgQmFzZTo6QmFzZSIgYmVjYXVzZSBvZiBXaW5kb3dzIGFuZCBHVEsgcG9ydHMu
Ci0gICAgU1ZHVmFsdWVQcm9wZXJ0eUxpc3QoU1ZHUHJvcGVydHlPd25lciogb3duZXIgPSBudWxs
cHRyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MgPSBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdy
aXRlKQotICAgICAgICA6IEJhc2Uob3duZXIsIGFjY2VzcykKKyAgICBTVkdWYWx1ZVByb3BlcnR5
TGlzdChET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIgPSBudWxscHRyKQorICAgICAg
ICA6IEJhc2Uob2JzZXJ2ZXIpCiAgICAgewogICAgIH0KIAogICAgIC8vIFVzZWQgYnkgU1ZHQW5p
bWF0ZWRQcm9wZXJ0eUxpc3Qgd2hlbiBjcmVhdGluZyBpdCBhbmltVmFsIGZyb20gYmFzZVZhbC4K
LSAgICBTVkdWYWx1ZVByb3BlcnR5TGlzdChjb25zdCBTVkdWYWx1ZVByb3BlcnR5TGlzdCYgb3Ro
ZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3Jp
dGUpCi0gICAgICAgIDogQmFzZShvdGhlci5vd25lcigpLCBhY2Nlc3MpCisgICAgU1ZHVmFsdWVQ
cm9wZXJ0eUxpc3QoY29uc3QgU1ZHVmFsdWVQcm9wZXJ0eUxpc3QmIG90aGVyKQorICAgICAgICA6
IEJhc2Uob3RoZXIub2JzZXJ2ZXIoKSkKICAgICB7CiAgICAgICAgIC8vIENsb25lIGFsbCBpdGVt
cy4KICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBpdGVtIDogb3RoZXIuaXRlbXMoKSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBiZDA5OTgwMGE4NWYzYzNjMDBjZTA1M2U5NGYxM2U2ZmY2YTI3ODA0Li44MmM5MWNiOGRjZmM4
MzM2YmMyZDIzOGNhMmQyOTNkN2Q4MTYxNmVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTkt
MTAtMDEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAg
ICAgICBNYWtlIHRoZSBTVkcgcHJvcGVydGllcyBvZiBTVkdWaWV3U3BlYyBtb2RpZmlhYmxlIGJ1
dCBkZXRhY2hlZCBwcm9wZXJ0aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDI0MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBNYWtlIHN1cmUgYWxsIHRoZSBwcm9wZXJ0aWVzIG9mIFNWR1ZpZXdTcGVj
IGFyZSBtb2RpZmlhYmxlLgorCisgICAgICAgICogc3ZnL2RvbS9TVkdWaWV3U3BlYy1kZWZhdWx0
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3ZnL2RvbS9TVkdWaWV3U3BlYy1kZWZhdWx0cy5o
dG1sOgorCiAyMDE5LTEwLTAxICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNv
bT4KIAogICAgICAgICBTdXBwb3J0IGFjY2Vzc2liaWxpdHkgZm9yIDxmaWd1cmU+IGVsZW1lbnQg
b24gaU9TLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdWaWV3U3BlYy1kZWZh
dWx0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1ZpZXdTcGVjLWRlZmF1
bHRzLWV4cGVjdGVkLnR4dAppbmRleCA5YzAxODE3NTgxNWI3NDRmZDJiNjUwZDczNzJjNDdmODVh
YTE0YWYxLi4xNDUyYWI3YzQ1YTRmMzVhMzk1OTdmMDMzZTBkMzk5MjUwYmJhMmM4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1ZpZXdTcGVjLWRlZmF1bHRzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1ZpZXdTcGVjLWRlZmF1bHRzLWV4cGVjdGVk
LnR4dApAQCAtMjAsNTAgKzIwLDUzIEBAIFBBU1MgY3VycmVudFZpZXcudHJhbnNmb3JtU3RyaW5n
IGlzICIiCiBQQVNTIGN1cnJlbnRWaWV3LnZpZXdUYXJnZXRTdHJpbmcgaXMgIiIKIFBBU1MgY3Vy
cmVudFZpZXcuem9vbUFuZFBhbiBpcyBTVkdWaWV3RWxlbWVudC5TVkdfWk9PTUFORFBBTl9NQUdO
SUZZCiAKLVRyeSBjaGFuZ2luZyB6b29tQW5kUGFuIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmss
IGFzIFNWR1ZpZXdTcGVjIGlzIGZ1bGx5IHJlYWRvbmx5IC0gZXZlbiB0aGUgYW5pbWF0ZWQgcHJv
cGVydGllcyBpdCBpbmhlcml0cyBmcm9tIHBhcmVudCBjbGFzc2VzIGxpa2UgU1ZHWm9vbUFuZFBh
bi9TVkdGaXRUb1ZpZXdCb3gKK1RyeSBjaGFuZ2luZyB6b29tQW5kUGFuIC0gbm9uZSBvZiB0aGVz
ZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5CiBQQVNTIGN1cnJlbnRWaWV3
Lnpvb21BbmRQYW4gPSBTVkdWaWV3RWxlbWVudC5TVkdfWk9PTUFORFBBTl9ESVNBQkxFIHRocmV3
IGV4Y2VwdGlvbiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogVGhlIG9iamVjdCBjYW4gbm90
IGJlIG1vZGlmaWVkLi4KIFBBU1MgY3VycmVudFZpZXcuem9vbUFuZFBhbiBpcyBTVkdWaWV3RWxl
bWVudC5TVkdfWk9PTUFORFBBTl9NQUdOSUZZCiAKLVRyeSBjaGFuZ2luZyB2aWV3Qm94IC0gdGhp
cyBoYXMgbm8gYWZmZWN0IG9uIHRoZSBTVkdTVkdFbGVtZW50IHRoZSB2aWV3U3BlYyBiZWxvbmdz
IHRvIC0gaXQgZXhwb3NlZCBhbGwgaXRzIHByb3BlcnRpZXMgYXMgcmVhZC1vbmx5Ci1QQVNTIGN1
cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC54ID0gMTAgdGhyZXcgZXhjZXB0aW9uIE5vTW9kaWZp
Y2F0aW9uQWxsb3dlZEVycm9yOiBUaGUgb2JqZWN0IGNhbiBub3QgYmUgbW9kaWZpZWQuLgotUEFT
UyBjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueCBpcyAwCi1QQVNTIGN1cnJlbnRWaWV3LnZp
ZXdCb3guYmFzZVZhbC55ID0gMjAgdGhyZXcgZXhjZXB0aW9uIE5vTW9kaWZpY2F0aW9uQWxsb3dl
ZEVycm9yOiBUaGUgb2JqZWN0IGNhbiBub3QgYmUgbW9kaWZpZWQuLgotUEFTUyBjdXJyZW50Vmll
dy52aWV3Qm94LmJhc2VWYWwueSBpcyAwCi1QQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZh
bC53aWR0aCA9IDUwIHRocmV3IGV4Y2VwdGlvbiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjog
VGhlIG9iamVjdCBjYW4gbm90IGJlIG1vZGlmaWVkLi4KLVBBU1MgY3VycmVudFZpZXcudmlld0Jv
eC5iYXNlVmFsLndpZHRoIGlzIDAKLVBBU1MgY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLmhl
aWdodCA9IDEwMCB0aHJldyBleGNlcHRpb24gTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IFRo
ZSBvYmplY3QgY2FuIG5vdCBiZSBtb2RpZmllZC4uCi1QQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3gu
YmFzZVZhbC5oZWlnaHQgaXMgMAotUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94U3RyaW5nIGlzICIw
IDAgMCAwIgorQ2hhbmdpbmcgdmlld0JveCAtIHRoaXMgaGFzIG5vIGFmZmVjdCBvbiB0aGUgU1ZH
U1ZHRWxlbWVudCB0aGUgdmlld1NwZWMgYmVsb25ncyB0byAtIGl0IGlzIGEgZGV0YWNoZWQgcHJv
cGVydHkKK1BBU1MgY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLnggPSAxMCBpcyAxMAorUEFT
UyBjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueCBpcyAxMAorUEFTUyBjdXJyZW50Vmlldy52
aWV3Qm94LmJhc2VWYWwueSA9IDIwIGlzIDIwCitQQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFz
ZVZhbC55IGlzIDIwCitQQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC53aWR0aCA9IDUw
IGlzIDUwCitQQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC53aWR0aCBpcyA1MAorUEFT
UyBjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0ID0gMTAwIGlzIDEwMAorUEFTUyBj
dXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0IGlzIDEwMAorUEFTUyBjdXJyZW50Vmll
dy52aWV3Qm94U3RyaW5nIGlzICIxMCAyMCA1MCAxMDAiCiAKLVRyeSBjaGFuZ2luZyB2aWV3Qm94
U3RyaW5nCitUcnkgY2hhbmdpbmcgdmlld0JveFN0cmluZyAtIG5vbmUgb2YgdGhlc2Ugd2lsbCB3
b3JrLCBpdCBpcyBhIHByaW1pdGl2ZSBwcm9wZXJ0eQogUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94
U3RyaW5nID0gJzEgMiAzIDQnIGlzICIxIDIgMyA0IgotUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94
U3RyaW5nIGlzICIwIDAgMCAwIgorUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94U3RyaW5nIGlzICIx
MCAyMCA1MCAxMDAiCiAKLVRyeSBjaGFuZ2luZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvCi1QQVNTIGN1
cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFzZVZhbC5hbGlnbiA9IFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW8uU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSU4gdGhyZXcgZXhjZXB0
aW9uIE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yOiBUaGUgb2JqZWN0IGNhbiBub3QgYmUgbW9k
aWZpZWQuLgotUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwuYWxp
Z24gaXMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlE
WU1JRAotUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwubWVldE9y
U2xpY2UgPSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19NRUVUT1JTTElDRV9TTElDRSB0aHJl
dyBleGNlcHRpb24gTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5v
dCBiZSBtb2RpZmllZC4uCi1QQVNTIGN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFz
ZVZhbC5tZWV0T3JTbGljZSBpcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19NRUVUT1JTTElD
RV9NRUVUCitDaGFuZ2luZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvIC0gdGhpcyBoYXMgbm8gYWZmZWN0
IG9uIHRoZSBTVkdTVkdFbGVtZW50IHRoZSB2aWV3U3BlYyBiZWxvbmdzIHRvIC0gaXQgaXMgYSBk
ZXRhY2hlZCBwcm9wZXJ0eQorUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJh
c2VWYWwuYWxpZ24gPSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19QUkVTRVJWRUFTUEVDVFJB
VElPX1hNSU5ZTUlOIGlzIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX1BSRVNFUlZFQVNQRUNU
UkFUSU9fWE1JTllNSU4KK1BBU1MgY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNl
VmFsLmFsaWduIGlzIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX1BSRVNFUlZFQVNQRUNUUkFU
SU9fWE1JTllNSU4KK1BBU1MgY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFs
Lm1lZXRPclNsaWNlID0gU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJQ0VfU0xJ
Q0UgaXMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJQ0VfU0xJQ0UKK1BBU1Mg
Y3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLm1lZXRPclNsaWNlIGlzIFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX01FRVRPUlNMSUNFX1NMSUNFCiAKLVRyeSBjaGFuZ2lu
ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nCi1QQVNTIGN1cnJlbnRWaWV3LnByZXNlcnZlQXNw
ZWN0UmF0aW9TdHJpbmcgPSAneE1pbllNaW4gc2xpY2UnIGlzICJ4TWluWU1pbiBzbGljZSIKLVBB
U1MgY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZyBpcyAieE1pZFlNaWQgbWVl
dCIKLQotVHJ5IGNoYW5naW5nIHRyYW5zZm9ybVN0cmluZwotUEFTUyBjdXJyZW50Vmlldy50cmFu
c2Zvcm1TdHJpbmcgPSAncm90YXRlKDkwKScgaXMgInJvdGF0ZSg5MCkiCi1QQVNTIGN1cnJlbnRW
aWV3LnRyYW5zZm9ybVN0cmluZyBpcyAiIgorQ2hhbmdpbmcgcHJlc2VydmVBc3BlY3RSYXRpb1N0
cmluZyAtIG5vbmUgb2YgdGhlc2Ugd2lsbCB3b3JrLCBpdCBpcyBhIHByaW1pdGl2ZSBwcm9wZXJ0
eQorUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nID0gJ3hNaWRZTWlk
IG1lZXQnIGlzICJ4TWlkWU1pZCBtZWV0IgorUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVj
dFJhdGlvU3RyaW5nIGlzICJ4TWluWU1pbiBzbGljZSIKIAotVHJ5IGNoYW5naW5nIHZpZXdUYXJn
ZXQKK1RyeSBjaGFuZ2luZyB2aWV3VGFyZ2V0IC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0
IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5CiBQQVNTIGN1cnJlbnRWaWV3LnZpZXdUYXJnZXQgPSBz
dmdFbGVtZW50IGlzIHN2Z0VsZW1lbnQKIFBBU1MgY3VycmVudFZpZXcudmlld1RhcmdldCBpcyBu
dWxsCiAKLVRyeSBjaGFuZ2luZyB2aWV3VGFyZ2V0U3RyaW5nCitUcnkgY2hhbmdpbmcgdmlld1Rh
cmdldFN0cmluZyAtIG5vbmUgb2YgdGhlc2Ugd2lsbCB3b3JrLCBpdCBpcyBhIHByaW1pdGl2ZSBw
cm9wZXJ0eQogUEFTUyBjdXJyZW50Vmlldy52aWV3VGFyZ2V0U3RyaW5nID0gJyN0ZXN0JyBpcyAi
I3Rlc3QiCiBQQVNTIGN1cnJlbnRWaWV3LnZpZXdUYXJnZXRTdHJpbmcgaXMgIiIKIAotVHJ5IGNo
YW5naW5nIHRyYW5zZm9ybQotUEFTUyBjdXJyZW50Vmlldy50cmFuc2Zvcm0uY2xlYXIoKSB0aHJl
dyBleGNlcHRpb24gTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5v
dCBiZSBtb2RpZmllZC4uCitDaGFuZ2luZyB0cmFuc2Zvcm0gLSB0aGlzIGhhcyBubyBhZmZlY3Qg
b24gdGhlIFNWR1NWR0VsZW1lbnQgdGhlIHZpZXdTcGVjIGJlbG9uZ3MgdG8gLSBpdCBpcyBhIGRl
dGFjaGVkIHByb3BlcnR5CitQQVNTIGN1cnJlbnRWaWV3LnRyYW5zZm9ybS5hcHBlbmRJdGVtKHRy
YW5zZm9ybSkudG9TdHJpbmcoKSBpcyAiW29iamVjdCBTVkdUcmFuc2Zvcm1dIgorUEFTUyBjdXJy
ZW50Vmlldy50cmFuc2Zvcm0ubnVtYmVyT2ZJdGVtcyBpcyAxCitQQVNTIGN1cnJlbnRWaWV3LnRy
YW5zZm9ybVN0cmluZyBpcyAibWF0cml4KDEgMCAwIDEgMCAwKSIKK1BBU1MgdW5kZWZpbmVkIGlz
IHVuZGVmaW5lZC4KIFBBU1MgY3VycmVudFZpZXcudHJhbnNmb3JtLm51bWJlck9mSXRlbXMgaXMg
MAorCitUcnkgY2hhbmdpbmcgdHJhbnNmb3JtU3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdv
cmssIGl0IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5CitQQVNTIGN1cnJlbnRWaWV3LnRyYW5zZm9y
bVN0cmluZyA9ICdyb3RhdGUoOTApJyBpcyAicm90YXRlKDkwKSIKK1BBU1MgY3VycmVudFZpZXcu
dHJhbnNmb3JtU3RyaW5nIGlzICIiCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAK
IFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHVmlld1Nw
ZWMtZGVmYXVsdHMuaHRtbCBiL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHVmlld1NwZWMtZGVmYXVs
dHMuaHRtbAppbmRleCBhMDI0MjY3MWQyY2FjY2IwYmVjNTI0OWIwZTVjYzkzZTQ2Mjc2MWViLi4x
MDYwYmRjMmNiZGRhNzgyNDNhOGFmOGMwNjU0MjVjNjZmNzIzMWZiIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdmcvZG9tL1NWR1ZpZXdTcGVjLWRlZmF1bHRzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvc3ZnL2RvbS9TVkdWaWV3U3BlYy1kZWZhdWx0cy5odG1sCkBAIC0zNCw2MiArMzQsNjQgQEAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJyZW50Vmlldy52aWV3VGFyZ2V0U3RyaW5nIiwgIiIp
Owogc2hvdWxkQmUoImN1cnJlbnRWaWV3Lnpvb21BbmRQYW4iLCAiU1ZHVmlld0VsZW1lbnQuU1ZH
X1pPT01BTkRQQU5fTUFHTklGWSIpOwogCiBkZWJ1ZygiIik7Ci1kZWJ1ZygiVHJ5IGNoYW5naW5n
IHpvb21BbmRQYW4gLSBub25lIG9mIHRoZXNlIHdpbGwgd29yaywgYXMgU1ZHVmlld1NwZWMgaXMg
ZnVsbHkgcmVhZG9ubHkgLSBldmVuIHRoZSBhbmltYXRlZCBwcm9wZXJ0aWVzIGl0IGluaGVyaXRz
IGZyb20gcGFyZW50IGNsYXNzZXMgbGlrZSBTVkdab29tQW5kUGFuL1NWR0ZpdFRvVmlld0JveCIp
OworZGVidWcoIlRyeSBjaGFuZ2luZyB6b29tQW5kUGFuIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdv
cmssIGl0IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5Iik7CiBzaG91bGRUaHJvdygiY3VycmVudFZp
ZXcuem9vbUFuZFBhbiA9IFNWR1ZpZXdFbGVtZW50LlNWR19aT09NQU5EUEFOX0RJU0FCTEUiKTsK
IHNob3VsZEJlKCJjdXJyZW50Vmlldy56b29tQW5kUGFuIiwgIlNWR1ZpZXdFbGVtZW50LlNWR19a
T09NQU5EUEFOX01BR05JRlkiKTsKIAogZGVidWcoIiIpOwotZGVidWcoIlRyeSBjaGFuZ2luZyB2
aWV3Qm94IC0gdGhpcyBoYXMgbm8gYWZmZWN0IG9uIHRoZSBTVkdTVkdFbGVtZW50IHRoZSB2aWV3
U3BlYyBiZWxvbmdzIHRvIC0gaXQgZXhwb3NlZCBhbGwgaXRzIHByb3BlcnRpZXMgYXMgcmVhZC1v
bmx5Iik7Ci1zaG91bGRUaHJvdygiY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLnggPSAxMCIp
Owotc2hvdWxkQmUoImN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC54IiwgIjAiKTsKLXNob3Vs
ZFRocm93KCJjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueSA9IDIwIik7Ci1zaG91bGRCZSgi
Y3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLnkiLCAiMCIpOwotc2hvdWxkVGhyb3coImN1cnJl
bnRWaWV3LnZpZXdCb3guYmFzZVZhbC53aWR0aCA9IDUwIik7Ci1zaG91bGRCZSgiY3VycmVudFZp
ZXcudmlld0JveC5iYXNlVmFsLndpZHRoIiwgIjAiKTsKLXNob3VsZFRocm93KCJjdXJyZW50Vmll
dy52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0ID0gMTAwIik7Ci1zaG91bGRCZSgiY3VycmVudFZpZXcu
dmlld0JveC5iYXNlVmFsLmhlaWdodCIsICIwIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1
cnJlbnRWaWV3LnZpZXdCb3hTdHJpbmciLCAiMCAwIDAgMCIpOworZGVidWcoIkNoYW5naW5nIHZp
ZXdCb3ggLSB0aGlzIGhhcyBubyBhZmZlY3Qgb24gdGhlIFNWR1NWR0VsZW1lbnQgdGhlIHZpZXdT
cGVjIGJlbG9uZ3MgdG8gLSBpdCBpcyBhIGRldGFjaGVkIHByb3BlcnR5Iik7CitzaG91bGRCZSgi
Y3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLnggPSAxMCIsICIxMCIpOworc2hvdWxkQmUoImN1
cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC54IiwgIjEwIik7CitzaG91bGRCZSgiY3VycmVudFZp
ZXcudmlld0JveC5iYXNlVmFsLnkgPSAyMCIsICIyMCIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3
LnZpZXdCb3guYmFzZVZhbC55IiwgIjIwIik7CitzaG91bGRCZSgiY3VycmVudFZpZXcudmlld0Jv
eC5iYXNlVmFsLndpZHRoID0gNTAiLCAiNTAiKTsKK3Nob3VsZEJlKCJjdXJyZW50Vmlldy52aWV3
Qm94LmJhc2VWYWwud2lkdGgiLCAiNTAiKTsKK3Nob3VsZEJlKCJjdXJyZW50Vmlldy52aWV3Qm94
LmJhc2VWYWwuaGVpZ2h0ID0gMTAwIiwgIjEwMCIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnZp
ZXdCb3guYmFzZVZhbC5oZWlnaHQiLCAiMTAwIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1
cnJlbnRWaWV3LnZpZXdCb3hTdHJpbmciLCAiMTAgMjAgNTAgMTAwIik7CiAKIGRlYnVnKCIiKTsK
LWRlYnVnKCJUcnkgY2hhbmdpbmcgdmlld0JveFN0cmluZyIpOworZGVidWcoIlRyeSBjaGFuZ2lu
ZyB2aWV3Qm94U3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0
aXZlIHByb3BlcnR5Iik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnZpZXdC
b3hTdHJpbmcgPSAnMSAyIDMgNCciLCAiMSAyIDMgNCIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJjdXJyZW50Vmlldy52aWV3Qm94U3RyaW5nIiwgIjAgMCAwIDAiKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygiY3VycmVudFZpZXcudmlld0JveFN0cmluZyIsICIxMCAyMCA1MCAxMDAiKTsKIAog
ZGVidWcoIiIpOwotZGVidWcoIlRyeSBjaGFuZ2luZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvIik7Ci1z
aG91bGRUaHJvdygiY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLmFsaWdu
ID0gU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1J
TiIpOwotc2hvdWxkQmUoImN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFzZVZhbC5h
bGlnbiIsICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hN
SURZTUlEIik7Ci1zaG91bGRUaHJvdygiY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5i
YXNlVmFsLm1lZXRPclNsaWNlID0gU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJ
Q0VfU0xJQ0UiKTsKLXNob3VsZEJlKCJjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJh
c2VWYWwubWVldE9yU2xpY2UiLCAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJ
Q0VfTUVFVCIpOworZGVidWcoIkNoYW5naW5nIHByZXNlcnZlQXNwZWN0UmF0aW8gLSB0aGlzIGhh
cyBubyBhZmZlY3Qgb24gdGhlIFNWR1NWR0VsZW1lbnQgdGhlIHZpZXdTcGVjIGJlbG9uZ3MgdG8g
LSBpdCBpcyBhIGRldGFjaGVkIHByb3BlcnR5Iik7CitzaG91bGRCZSgiY3VycmVudFZpZXcucHJl
c2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLmFsaWduID0gU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5T
VkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JTiIsICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
LlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlOIik7CitzaG91bGRCZSgiY3VycmVudFZp
ZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLmFsaWduIiwgIlNWR1ByZXNlcnZlQXNwZWN0
UmF0aW8uU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSU4iKTsKK3Nob3VsZEJlKCJjdXJy
ZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwubWVldE9yU2xpY2UgPSBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvLlNWR19NRUVUT1JTTElDRV9TTElDRSIsICJTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvLlNWR19NRUVUT1JTTElDRV9TTElDRSIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnBy
ZXNlcnZlQXNwZWN0UmF0aW8uYmFzZVZhbC5tZWV0T3JTbGljZSIsICJTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvLlNWR19NRUVUT1JTTElDRV9TTElDRSIpOwogCiBkZWJ1ZygiIik7Ci1kZWJ1ZygiVHJ5
IGNoYW5naW5nIHByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmciKTsKLXNob3VsZEJlRXF1YWxUb1N0
cmluZygiY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZyA9ICd4TWluWU1pbiBz
bGljZSciLCAieE1pbllNaW4gc2xpY2UiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVu
dFZpZXcucHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZyIsICJ4TWlkWU1pZCBtZWV0Iik7Ci0KK2Rl
YnVnKCJDaGFuZ2luZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3
aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5Iik7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcgPSAneE1pZFlNaWQg
bWVldCciLCAieE1pZFlNaWQgbWVldCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJyZW50
Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nIiwgInhNaW5ZTWluIHNsaWNlIik7CiAKIGRl
YnVnKCIiKTsKLWRlYnVnKCJUcnkgY2hhbmdpbmcgdHJhbnNmb3JtU3RyaW5nIik7Ci1zaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnRyYW5zZm9ybVN0cmluZyA9ICdyb3RhdGUoOTAp
JyIsICJyb3RhdGUoOTApIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnRy
YW5zZm9ybVN0cmluZyIsICIiKTsKLQotCi1kZWJ1ZygiIik7Ci1kZWJ1ZygiVHJ5IGNoYW5naW5n
IHZpZXdUYXJnZXQiKTsKK2RlYnVnKCJUcnkgY2hhbmdpbmcgdmlld1RhcmdldCAtIG5vbmUgb2Yg
dGhlc2Ugd2lsbCB3b3JrLCBpdCBpcyBhIHByaW1pdGl2ZSBwcm9wZXJ0eSIpOwogc2hvdWxkQmUo
ImN1cnJlbnRWaWV3LnZpZXdUYXJnZXQgPSBzdmdFbGVtZW50IiwgInN2Z0VsZW1lbnQiKTsKIHNo
b3VsZEJlTnVsbCgiY3VycmVudFZpZXcudmlld1RhcmdldCIpOwogCiAKIGRlYnVnKCIiKTsKLWRl
YnVnKCJUcnkgY2hhbmdpbmcgdmlld1RhcmdldFN0cmluZyIpOworZGVidWcoIlRyeSBjaGFuZ2lu
ZyB2aWV3VGFyZ2V0U3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJp
bWl0aXZlIHByb3BlcnR5Iik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnZp
ZXdUYXJnZXRTdHJpbmcgPSAnI3Rlc3QnIiwgIiN0ZXN0Iik7CiBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImN1cnJlbnRWaWV3LnZpZXdUYXJnZXRTdHJpbmciLCAiIik7CiAKIGRlYnVnKCIiKTsKLWRl
YnVnKCJUcnkgY2hhbmdpbmcgdHJhbnNmb3JtIik7Ci1zaG91bGRUaHJvdygiY3VycmVudFZpZXcu
dHJhbnNmb3JtLmNsZWFyKCkiKTsKK2RlYnVnKCJDaGFuZ2luZyB0cmFuc2Zvcm0gLSB0aGlzIGhh
cyBubyBhZmZlY3Qgb24gdGhlIFNWR1NWR0VsZW1lbnQgdGhlIHZpZXdTcGVjIGJlbG9uZ3MgdG8g
LSBpdCBpcyBhIGRldGFjaGVkIHByb3BlcnR5Iik7Cit2YXIgdHJhbnNmb3JtID0gc3ZnRWxlbWVu
dC5jcmVhdGVTVkdUcmFuc2Zvcm0oKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZp
ZXcudHJhbnNmb3JtLmFwcGVuZEl0ZW0odHJhbnNmb3JtKS50b1N0cmluZygpIiwgIltvYmplY3Qg
U1ZHVHJhbnNmb3JtXSIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnRyYW5zZm9ybS5udW1iZXJP
Zkl0ZW1zIiwgIjEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZpZXcudHJhbnNm
b3JtU3RyaW5nIiwgIm1hdHJpeCgxIDAgMCAxIDAgMCkiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKGN1
cnJlbnRWaWV3LnRyYW5zZm9ybS5jbGVhcigpKTsKIHNob3VsZEJlKCJjdXJyZW50Vmlldy50cmFu
c2Zvcm0ubnVtYmVyT2ZJdGVtcyIsICIwIik7CiAKK2RlYnVnKCIiKTsKK2RlYnVnKCJUcnkgY2hh
bmdpbmcgdHJhbnNmb3JtU3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEg
cHJpbWl0aXZlIHByb3BlcnR5Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3
LnRyYW5zZm9ybVN0cmluZyA9ICdyb3RhdGUoOTApJyIsICJyb3RhdGUoOTApIik7CitzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnRyYW5zZm9ybVN0cmluZyIsICIiKTsKKwogc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380154</attachid>
            <date>2019-10-03 12:55:14 -0700</date>
            <delta_ts>2020-06-15 10:50:42 -0700</delta_ts>
            <desc>Patch for review</desc>
            <filename>202479.patch</filename>
            <type>text/plain</type>
            <size>32933</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2MWJiMzg4M2FlOS4uMmY1Y2VmMDBlZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MyBAQAorMjAxOS0xMC0wMyAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FA
YXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgRE9NUG9pbnQgYSBET01MaXZlT2JqZWN0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0NzkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkdQcm9wZXJ0eSBo
YXMgdG8gY29tZSBiYWNrIGJlY2F1c2UgRE9NUG9pbnQgaW5oZXJpdHMgRE9NUG9pbnRSZWFkT25s
eQorICAgICAgICB3aGljaCBpcyBSZWZDb3VudGVkLiBTbyBET01MaXZlUHJvcGVydHkgY2FuJ3Qg
YmUgUmVmQ291bnRlZC4gT3RoZXJ3aXNlCisgICAgICAgIERPTVBvaW50IHdpbGwgbWFrZSBhIGRp
YW1vbmQgaW5oZXJpdGFuY2UuIFNWR1Byb3BlcnR5IHdpbGwgaW5oZXJpdCAKKyAgICAgICAgRE9N
TGl2ZVByb3BlcnR5IGFuZCBpdCB3aWxsIGJlIFJlZkNvdW50ZWQuCisKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NTGl2ZVByb3BlcnR5Lmg6
CisgICAgICAgICogZG9tL0RPTVBvaW50Lmg6IEFkZGVkLgorICAgICAgICAqIGRvbS9ET01Qb2lu
dC5oOgorICAgICAgICAqIGRvbS9ET01Qb2ludC5pZGw6CisgICAgICAgICogZG9tL0RPTVBvaW50
UmVhZE9ubHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVBvaW50UmVhZE9ubHk6OnhGb3JCaW5k
aW5ncyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01Qb2ludFJlYWRPbmx5Ojp5Rm9yQmlu
ZGluZ3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NUG9pbnRSZWFkT25seTo6ekZvckJp
bmRpbmdzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVBvaW50UmVhZE9ubHk6OndGb3JC
aW5kaW5ncyBjb25zdCk6CisgICAgICAgICogZG9tL0RPTVBvaW50UmVhZE9ubHkuaWRsOgorICAg
ICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwOgorICAgICAgICAq
IHN2Zy9TVkdQYXRoU2VnLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdC5oOgor
ICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR01lbWJlckFjY2Vzc29yLmg6CisgICAgICAgICog
c3ZnL3Byb3BlcnRpZXMvU1ZHUHJpbWl0aXZlUHJvcGVydHlBbmltYXRvci5oOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9w
ZXJ0eTo6aXNBdHRhY2hlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQ
cm9wZXJ0eTo6YXR0YWNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5
OjpkZXRhY2gpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmNvbnRl
eHRFbGVtZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5
Ojpjb21taXRDaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6
OmFjY2VzcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6
aXNSZWFkT25seSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eTo6aXNEaXJ0eSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0
eTo6c2V0RGlydHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OnN5
bmNocm9uaXplKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5OjpTVkdQ
cm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlB
bmltYXRvckZhY3RvcnkuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdTaGFyZWRQcmlt
aXRpdmVQcm9wZXJ0eS5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVy
dHkuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3Iu
aDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3JJbXBs
Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3RBbmltYXRv
ci5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0
b3JJbXBsLmg6CisKIDIwMTktMTAtMDEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdh
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNlIFNWR1Byb3BlcnR5L1NWR1Byb3BlcnR5T3du
ZXIgYnkgRE9NTGl2ZVByb3BlcnR5L0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQppbmRleCAzZDdkNzc2MTk2NC4uMzU5Mzc2MmY5NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpA
QCAtMTM5MSw2ICsxMzkxLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVS
UwogCiAgICAgc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdC5oCiAgICAgc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJpbWl0aXZlTGlzdC5oCisgICAgc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHkuaAogICAgIHN2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKIAogICAgIHRlc3RpbmcvTW9ja0dhbWVw
YWQuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAppbmRleCBmOTU4NmZhMDQ4Yy4uMjIzMmM2NmU2ODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC04MzcsNiArODM3LDcgQEAgZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHAK
IGRvbS9DdXN0b21FdmVudC5jcHAKIGRvbS9ET01FeGNlcHRpb24uY3BwCiBkb20vRE9NSW1wbGVt
ZW50YXRpb24uY3BwCitkb20vRE9NUG9pbnQuY3BwCiBkb20vRE9NUG9pbnRSZWFkT25seS5jcHAK
IGRvbS9ET01RdWFkLmNwcAogZG9tL0RPTVJlY3RMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhiYTIwYWQxNjhjLi45
ZDI2MDFlYjU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjA5MSw2ICsyMDkxLDcgQEAKIAkJNzI0RUU1NTExREM4MEQ4NDAw
QTkxRkZCIC8qIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUU1NEYxREM3RjI1QjAwQTkxRkZCIC8q
IEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyODMxNUMxMjM0NDQwMTUwMDA3RDI3NyAvKiBET01M
aXZlUHJvcGVydHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDcyODMxNUMwMjM0NDIyOTIwMDA3RDI3NyAvKiBET01MaXZlUHJvcGVydHkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjgzMTVDMjIzNDQ0
MDIyMDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyODMxNUJFMjM0NDIyOTEwMDA3RDI3NyAv
KiBET01MaXZlUHJvcGVydHlPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTcyODMxNUM3MjM0NTE4MjMwMDA3RDI3NyAvKiBTVkdQcm9w
ZXJ0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI4
MzE1QzUyMzQ1MEZDMjAwMDdEMjc3IC8qIFNWR1Byb3BlcnR5LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzU1M0NGRTgxMDhGNDczRjAwRUEyODFF
IC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzU1M0NGRTYxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVj
b3JkRmFjdG9yeS5oICovOyB9OwogCQk3NTc5M0U4NDBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2Fn
ZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NTc5M0U4MTBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmggKi87IH07CiAJCTc1Nzkz
RUM5MEQwQ0U3MkQwMDdGQzBBQyAvKiBKU01lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFQzcwRDBDRTcyRDAwN0ZDMEFDIC8q
IEpTTWVzc2FnZUV2ZW50LmggKi87IH07CkBAIC05NDQ5LDYgKzk0NTAsOCBAQAogCQk3MjdBRkVE
MzFBMkVBNkEwMDAwNDQyRTggLyogRVhUc1JHQi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
RVhUc1JHQi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyODMxNUJFMjM0NDIy
OTEwMDA3RDI3NyAvKiBET01MaXZlUHJvcGVydHlPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBET01MaXZlUHJvcGVydHlPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3MjgzMTVDMDIzNDQyMjkyMDAwN0QyNzcgLyogRE9NTGl2ZVByb3Bl
cnR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUxpdmVQcm9wZXJ0eS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjgzMTVDNTIzNDUwRkMyMDAwN0QyNzcg
LyogU1ZHUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUHJv
cGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI4MzE1Q0UyMzQ2NTkwMTAw
MDdEMjc3IC8qIERPTVBvaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVBvaW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8q
IEltYWdlUGFpbnRpbmdPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlUGFpbnRpbmdPcHRp
b25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyRTQxNzYxMUEyRThEMkYwMDRD
NTYyQSAvKiBKU0VYVHNSR0IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNFWFRzUkdCLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJFNDE3NjIx
QTJFOEQyRjAwNEM1NjJBIC8qIEpTRVhUc1JHQi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU0VYVHNSR0IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MTYz
LDYgKzE2MTY2LDcgQEAKIAkJCQk1NURDQzUyNTIyNDA3NDlFMDBDMjZFMzIgLyogU1ZHUHJpbWl0
aXZlTGlzdC5oICovLAogCQkJCTcyNjZGMDE1MjI0MUMwOTgwMDgzMzk3NSAvKiBTVkdQcmltaXRp
dmVQcm9wZXJ0eUFuaW1hdG9yLmggKi8sCiAJCQkJNzI2NkYwMTQyMjQxQkZCMjAwODMzOTc1IC8q
IFNWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3JJbXBsLmggKi8sCisJCQkJNzI4MzE1QzUyMzQ1
MEZDMjAwMDdEMjc3IC8qIFNWR1Byb3BlcnR5LmggKi8sCiAJCQkJNTVEQ0M1MjYyMjQwNzRGQTAw
QzI2RTMyIC8qIFNWR1Byb3BlcnR5QWNjZXNzb3IuaCAqLywKIAkJCQk1NURDQzUyNzIyNDA3NTBC
MDBDMjZFMzIgLyogU1ZHUHJvcGVydHlBY2Nlc3NvckltcGwuaCAqLywKIAkJCQk3MjY2RjAxNjIy
NDFDMEZFMDA4MzM5NzUgLyogU1ZHUHJvcGVydHlBbmltYXRvci5oICovLApAQCAtMjc1NjAsNiAr
Mjc1NjQsNyBAQAogCQkJCTcyODMxNUMwMjM0NDIyOTIwMDA3RDI3NyAvKiBET01MaXZlUHJvcGVy
dHkuaCAqLywKIAkJCQk3MjgzMTVCRTIzNDQyMjkxMDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5
T2JzZXJ2ZXIuaCAqLywKIAkJCQlGNEI0MjJDMjIyMEMwMDAwMDA5RTFFN0QgLyogRE9NUGFzdGVB
Y2Nlc3MuaCAqLywKKwkJCQk3MjgzMTVDRTIzNDY1OTAxMDAwN0QyNzcgLyogRE9NUG9pbnQuY3Bw
ICovLAogCQkJCTBGNDk2Njk5MURCNDA4QzEwMEEyNzRCQiAvKiBET01Qb2ludC5oICovLAogCQkJ
CTBGNDk2NjlBMURCNDA4QzEwMEEyNzRCQiAvKiBET01Qb2ludC5pZGwgKi8sCiAJCQkJMEY0OTY2
QTIxREI0MDkxMDAwQTI3NEJCIC8qIERPTVBvaW50SW5pdC5oICovLApAQCAtMzE5NzgsNiArMzE5
ODMsNyBAQAogCQkJCUIyMjI3QTk0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2x5bGluZUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTk3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NURDQzUyODIyNDA3QjIw
MDBDMjZFMzIgLyogU1ZHUHJpbWl0aXZlTGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzI4MzE1
QzcyMzQ1MTgyMzAwMDdEMjc3IC8qIFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
ODhBMEUwQzEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUcmFpdHMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QTlBMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdSYWRpYWxHcmFkaWVudEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4RURFMTlGMTJBNTBCOEUwMEI5NTc5NyAvKiBT
VkdSZWN0LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
T01MaXZlUHJvcGVydHkuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01MaXZlUHJvcGVydHkuaApp
bmRleCAzODg4OGQzN2Q2ZS4uOWU1OTQ4YjY4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01MaXZlUHJvcGVydHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NTGl2ZVBy
b3BlcnR5LmgKQEAgLTI2LDE1ICsyNiwxMSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJE
T01MaXZlUHJvcGVydHlPYnNlcnZlci5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0j
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgRE9NTGl2ZVByb3BlcnR5IDogcHVibGljIFJlZkNvdW50ZWQ8RE9NTGl2ZVByb3BlcnR5
PiB7CitjbGFzcyBET01MaXZlUHJvcGVydHkgewogcHVibGljOgotICAgIHZpcnR1YWwgfkRPTUxp
dmVQcm9wZXJ0eSgpID0gZGVmYXVsdDsKLQogICAgIC8vIE1hbmFnaW5nIHRoZSByZWxhdGlvbnNo
aXAgd2l0aCB0aGUgb2JzZXJ2ZXIuCiAgICAgYm9vbCBpc0F0dGFjaGVkKCkgY29uc3QgeyByZXR1
cm4gbV9vYnNlcnZlcjsgfQogICAgIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcigp
IGNvbnN0IHsgcmV0dXJuIG1fb2JzZXJ2ZXI7IH0KQEAgLTUwLDcgKzQ2LDcgQEAgcHVibGljOgog
ICAgICAgICBtX29ic2VydmVyID0gbnVsbHB0cjsKICAgICB9CiAKLSAgICAvLyBUcmF2ZXJzZSB0
aGUgb2JzZXJ2ZXJzIGNoYWluIHRpbGwgYW4gRWxlbWVudCBvYnNlcnZlciBpcyByZWFjaGVkLgor
ICAgIC8vIFRyYXZlcnNlIHRoZSBvYnNlcnZlcnMgY2hhaW4gdGlsbCBhbiBTVkdFbGVtZW50IG9i
c2VydmVyIGlzIHJlYWNoZWQuCiAgICAgY29uc3QgU1ZHRWxlbWVudCogc3ZnQ29udGV4dEVsZW1l
bnQoKSBjb25zdAogICAgIHsKICAgICAgICAgaWYgKCFtX29ic2VydmVyKQpAQCAtNTgsNiArNTQs
NyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX29ic2VydmVyLT5wcm9wZXJ0eVNWR0NvbnRl
eHRFbGVtZW50KCk7CiAgICAgfQogCisgICAgLy8gQ2hlY2sgaWYgdGhlIG9ic2VydmVyIGRpc2Fs
bG93cyBjaGFuZ2luZyB0aGlzIHByb3BlcnR5LgogICAgIGJvb2wgaXNSZWFkT25seSgpIGNvbnN0
CiAgICAgewogICAgICAgICByZXR1cm4gbV9vYnNlcnZlciAmJiBtX29ic2VydmVyLT5pc1Byb3Bl
cnR5UmVhZE9ubHkoKnRoaXMpOwpAQCAtNzEsOCArNjgsNiBAQCBwdWJsaWM6CiAgICAgICAgIG1f
b2JzZXJ2ZXItPmNvbW1pdFByb3BlcnR5Q2hhbmdlKHRoaXMpOwogICAgIH0KIAotICAgIHZpcnR1
YWwgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdCB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9
Ci0KIHByb3RlY3RlZDoKICAgICBET01MaXZlUHJvcGVydHkoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2
ZXIqIG9ic2VydmVyID0gbnVsbHB0cikKICAgICAgICAgOiBtX29ic2VydmVyKG9ic2VydmVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01Qb2ludC5jcHAKaW5kZXggOGIxMzc4OTE3OTEuLjRjZWUxYWFhMDdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01Qb2ludC5jcHAKQEAgLTEgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUworICog
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUKKyAqIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwKKyAqIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAq
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwKKyAqIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQKKyAqIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RE9NUG9pbnQuaCIKKworI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERPTVBvaW50KTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NUG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludC5oCmluZGV4IDc3Mjc3
ZDdmMjFiLi43YTU5ODMxYWVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBv
aW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50LmgKQEAgLTMwLDExICszMCwx
NCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkRPTUxpdmVQcm9wZXJ0eS5oIgogI2lu
Y2x1ZGUgIkRPTVBvaW50UmVhZE9ubHkuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5l
cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERPTVBvaW50IGZpbmFsIDogcHVi
bGljIERPTVBvaW50UmVhZE9ubHkgeworY2xhc3MgRE9NUG9pbnQgZmluYWwgOiBwdWJsaWMgRE9N
UG9pbnRSZWFkT25seSwgcHVibGljIERPTUxpdmVQcm9wZXJ0eSB7CisgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChET01Qb2ludCk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxET01Qb2ludD4g
Y3JlYXRlKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHogPSAwLCBkb3VibGUgdyA9IDEpIHsg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NUG9pbnQoeCwgeSwgeiwgdykpOyB9CiAgICAgc3RhdGlj
IFJlZjxET01Qb2ludD4gY3JlYXRlKGNvbnN0IERPTVBvaW50SW5pdCYgaW5pdCkgeyByZXR1cm4g
Y3JlYXRlKGluaXQueCwgaW5pdC55LCBpbml0LnosIGluaXQudyk7IH0KQEAgLTQ1LDEyICs0OCw1
MSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRaKGRvdWJsZSB6KSB7IG1feiA9IHo7IH0KICAgICB2
b2lkIHNldFcoZG91YmxlIHcpIHsgbV93ID0gdzsgfQogCisgICAgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0WEZvckJpbmRpbmdzKGRvdWJsZSB4KQorICAgIHsKKyAgICAgICAgaWYgKGlzUmVhZE9ubHko
KSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRF
cnJvciB9OworICAgIAorICAgICAgICBtX3ggPSB4OworICAgICAgICBjb21taXRDaGFuZ2UoKTsK
KyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisgICAgCisgICAgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0WUZvckJpbmRpbmdzKGRvdWJsZSB5KQorICAgIHsKKyAgICAgICAgaWYgKGlzUmVhZE9ubHko
KSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRF
cnJvciB9OworICAgIAorICAgICAgICBtX3kgPSB5OworICAgICAgICBjb21taXRDaGFuZ2UoKTsK
KyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisgICAgCisgICAgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0WkZvckJpbmRpbmdzKGRvdWJsZSB6KQorICAgIHsKKyAgICAgICAgaWYgKGlzUmVhZE9ubHko
KSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRF
cnJvciB9OworICAgIAorICAgICAgICBtX3ogPSB6OworICAgICAgICBjb21taXRDaGFuZ2UoKTsK
KyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisgICAgCisgICAgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0V0ZvckJpbmRpbmdzKGRvdWJsZSB3KQorICAgIHsKKyAgICAgICAgaWYgKGlzUmVhZE9ubHko
KSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRF
cnJvciB9OworICAgIAorICAgICAgICBtX3cgPSB3OworICAgICAgICBjb21taXRDaGFuZ2UoKTsK
KyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisgICAgCiBwcml2YXRlOgogICAgIERPTVBvaW50
KGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHosIGRvdWJsZSB3KQogICAgICAgICA6IERPTVBv
aW50UmVhZE9ubHkoeCwgeSwgeiwgdykKICAgICB7CiAgICAgfQogfTsKLXN0YXRpY19hc3NlcnQo
c2l6ZW9mKERPTVBvaW50KSA9PSBzaXplb2YoRE9NUG9pbnRSZWFkT25seSksICIiKTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBv
aW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludC5pZGwKaW5kZXggNjliYmMyZDBm
ZjIuLmQxNmUwNGVjNDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnQu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludC5pZGwKQEAgLTM1LDEzICszNSwx
MyBAQAogICAgICAgICBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHogPSAwLCBvcHRpb25h
bCB1bnJlc3RyaWN0ZWQgZG91YmxlIHcgPSAxKSwKICAgICBFeHBvc2VkPShXaW5kb3csV29ya2Vy
KSwKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGwsCi0gICAgSW1wbGVtZW50YXRpb25MYWNr
c1ZUYWJsZQorICAgIFNraXBWVGFibGVWYWxpZGF0aW9uCiBdCiBpbnRlcmZhY2UgRE9NUG9pbnQg
OiBET01Qb2ludFJlYWRPbmx5IHsKICAgICBbTmV3T2JqZWN0XSBzdGF0aWMgRE9NUG9pbnQgZnJv
bVBvaW50KG9wdGlvbmFsIERPTVBvaW50SW5pdCBvdGhlcik7CiAKLSAgICBpbmhlcml0IGF0dHJp
YnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHg7Ci0gICAgaW5oZXJpdCBhdHRyaWJ1dGUgdW5yZXN0
cmljdGVkIGRvdWJsZSB5OwotICAgIGluaGVyaXQgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3Vi
bGUgejsKLSAgICBpbmhlcml0IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHc7CisgICAg
W0ltcGxlbWVudGVkQXM9eEZvckJpbmRpbmdzXSBpbmhlcml0IGF0dHJpYnV0ZSB1bnJlc3RyaWN0
ZWQgZG91YmxlIHg7CisgICAgW0ltcGxlbWVudGVkQXM9eUZvckJpbmRpbmdzXSBpbmhlcml0IGF0
dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHk7CisgICAgW0ltcGxlbWVudGVkQXM9ekZvckJp
bmRpbmdzXSBpbmhlcml0IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHo7CisgICAgW0lt
cGxlbWVudGVkQXM9d0ZvckJpbmRpbmdzXSBpbmhlcml0IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQg
ZG91YmxlIHc7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50UmVh
ZE9ubHkuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludFJlYWRPbmx5LmgKaW5kZXggMGE2
OGZkZjFiYzEuLjlhNGRiNjYwOTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9N
UG9pbnRSZWFkT25seS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Qb2ludFJlYWRPbmx5
LmgKQEAgLTQzLDYgKzQzLDcgQEAgY2xhc3MgRE9NUG9pbnQ7CiBjbGFzcyBET01Qb2ludFJlYWRP
bmx5IDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8RE9NUG9pbnRS
ZWFkT25seT4gewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRE9NUG9pbnRSZWFkT25seSk7
CiBwdWJsaWM6CisgICAgdmlydHVhbCB+RE9NUG9pbnRSZWFkT25seSgpID0gZGVmYXVsdDsKICAg
ICBzdGF0aWMgUmVmPERPTVBvaW50UmVhZE9ubHk+IGNyZWF0ZShkb3VibGUgeCwgZG91YmxlIHks
IGRvdWJsZSB6LCBkb3VibGUgdykgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01Qb2ludFJlYWRP
bmx5KHgsIHksIHosIHcpKTsgfQogICAgIHN0YXRpYyBSZWY8RE9NUG9pbnRSZWFkT25seT4gY3Jl
YXRlKGNvbnN0IERPTVBvaW50SW5pdCYgaW5pdCkgeyByZXR1cm4gY3JlYXRlKGluaXQueCwgaW5p
dC55LCBpbml0LnosIGluaXQudyk7IH0KICAgICBzdGF0aWMgUmVmPERPTVBvaW50UmVhZE9ubHk+
IGZyb21Qb2ludChjb25zdCBET01Qb2ludEluaXQmIGluaXQpIHsgcmV0dXJuIGNyZWF0ZShpbml0
LngsIGluaXQueSwgaW5pdC56LCBpbml0LncpOyB9CkBAIC01Miw2ICs1MywxMSBAQCBwdWJsaWM6
CiAgICAgZG91YmxlIHooKSBjb25zdCB7IHJldHVybiBtX3o7IH0KICAgICBkb3VibGUgdygpIGNv
bnN0IHsgcmV0dXJuIG1fdzsgfQogCisgICAgZG91YmxlIHhGb3JCaW5kaW5ncygpIGNvbnN0IHsg
cmV0dXJuIG1feDsgfQorICAgIGRvdWJsZSB5Rm9yQmluZGluZ3MoKSBjb25zdCB7IHJldHVybiBt
X3k7IH0KKyAgICBkb3VibGUgekZvckJpbmRpbmdzKCkgY29uc3QgeyByZXR1cm4gbV96OyB9Cisg
ICAgZG91YmxlIHdGb3JCaW5kaW5ncygpIGNvbnN0IHsgcmV0dXJuIG1fdzsgfQorCiAgICAgRXhj
ZXB0aW9uT3I8UmVmPERPTVBvaW50Pj4gbWF0cml4VHJhbnNmb3JtKERPTU1hdHJpeEluaXQmJikg
Y29uc3Q7CiAKIHByb3RlY3RlZDoKQEAgLTcxLDQgKzc3LDMgQEAgcHJvdGVjdGVkOgogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NUG9pbnRSZWFkT25seS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnRSZWFkT25s
eS5pZGwKaW5kZXggM2ZmZDY2ZmQ3MTIuLjQxYzNjNGU1Mzg2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NUG9pbnRSZWFkT25seS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RPTVBvaW50UmVhZE9ubHkuaWRsCkBAIC0zNCwxNSArMzQsMTUgQEAKICAgICBDb25zdHJ1Y3Rv
cihvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHggPSAwLCBvcHRpb25hbCB1bnJlc3RyaWN0
ZWQgZG91YmxlIHkgPSAwLAogICAgICAgICBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHog
PSAwLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHcgPSAxKSwKICAgICBFeHBvc2VkPShX
aW5kb3csV29ya2VyKSwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCisgICAgU2tpcFZU
YWJsZVZhbGlkYXRpb24KIF0KIGludGVyZmFjZSBET01Qb2ludFJlYWRPbmx5IHsKICAgICBbTmV3
T2JqZWN0XSBzdGF0aWMgRE9NUG9pbnRSZWFkT25seSBmcm9tUG9pbnQob3B0aW9uYWwgRE9NUG9p
bnRJbml0IG90aGVyKTsKIAotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91
YmxlIHg7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgeTsKLSAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB6OwotICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHc7CisgICAgW0ltcGxlbWVudGVkQXM9eEZv
ckJpbmRpbmdzXSByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB4OworICAg
IFtJbXBsZW1lbnRlZEFzPXlGb3JCaW5kaW5nc10gcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJp
Y3RlZCBkb3VibGUgeTsKKyAgICBbSW1wbGVtZW50ZWRBcz16Rm9yQmluZGluZ3NdIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHo7CisgICAgW0ltcGxlbWVudGVkQXM9d0Zv
ckJpbmRpbmdzXSByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSB3OwogCiAg
ICAgW01heVRocm93RXhjZXB0aW9uXSBET01Qb2ludCBtYXRyaXhUcmFuc2Zvcm0ob3B0aW9uYWwg
RE9NTWF0cml4SW5pdCBtYXRyaXgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuY3BwCmluZGV4IDY5ZTA2ZTdiMDU0Li5hZDA4
ODU5ZDg1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0
aW9uT3JNb3Rpb25FdmVudC5jcHAKQEAgLTI2LDYgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmgiCiAKKyNpZiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzQ29udHJvbGxlci5oIgorI2VuZGlmCisKKyNpbmNsdWRlICJET01XaW5kb3cu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZy5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhTZWcuaAppbmRleCBiY2JhZmRjZTI3OC4uZDYyZmU0ZjgzNGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhTZWcuaApAQCAtMjEsNyArMjEsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1
ZGUgIkRPTUxpdmVQcm9wZXJ0eS5oIgorI2luY2x1ZGUgIlNWR1Byb3BlcnR5LmgiCiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ5LDcg
KzQ5LDcgQEAgZW51bSBTVkdQYXRoU2VnVHlwZSB7CiAgICAgUGF0aFNlZ0N1cnZlVG9RdWFkcmF0
aWNTbW9vdGhSZWwgPSAxOQogfTsKIAotY2xhc3MgU1ZHUGF0aFNlZyA6IHB1YmxpYyBET01MaXZl
UHJvcGVydHkgeworY2xhc3MgU1ZHUGF0aFNlZyA6IHB1YmxpYyBTVkdQcm9wZXJ0eSB7CiBwdWJs
aWM6CiAgICAgdmlydHVhbCB+U1ZHUGF0aFNlZygpID0gZGVmYXVsdDsKIApAQCAtODIsNyArODIs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCA9
IDA7CiAKIHByb3RlY3RlZDoKLSAgICB1c2luZyBET01MaXZlUHJvcGVydHk6OkRPTUxpdmVQcm9w
ZXJ0eTsKKyAgICB1c2luZyBTVkdQcm9wZXJ0eTo6U1ZHUHJvcGVydHk7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0LmgKaW5k
ZXggZjNkZWU5OWEwOWYuLmRkY2IxNzAxOTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHTGlzdC5oCkBAIC0yNSwxMyArMjUsMTMgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNs
dWRlICJET01MaXZlUHJvcGVydHkuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1
ZGUgIlNWR1Byb3BlcnR5LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgSXRlbVR5cGU+Ci1jbGFzcyBTVkdMaXN0IDogcHVibGljIERPTUxpdmVQcm9wZXJ0eSB7
CitjbGFzcyBTVkdMaXN0IDogcHVibGljIFNWR1Byb3BlcnR5IHsKIHB1YmxpYzoKICAgICB1bnNp
Z25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBudW1iZXJPZkl0ZW1zKCk7IH0KIApAQCAtMTUw
LDcgKzE1MCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICB1c2luZyBET01M
aXZlUHJvcGVydHk6OkRPTUxpdmVQcm9wZXJ0eTsKKyAgICB1c2luZyBTVkdQcm9wZXJ0eTo6U1ZH
UHJvcGVydHk7CiAKICAgICBFeGNlcHRpb25Pcjxib29sPiBjYW5BbHRlckxpc3QoKSBjb25zdAog
ICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01lbWJl
ckFjY2Vzc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNZW1iZXJBY2Nl
c3Nvci5oCmluZGV4IGU0MDlkNGRhMWUwLi5lNTk3NzgwNTc2MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWVtYmVyQWNjZXNzb3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNZW1iZXJBY2Nlc3Nvci5oCkBAIC0zMCw4ICszMCw4
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTsK
IGNsYXNzIERPTUxpdmVQcm9wZXJ0eTsKK2NsYXNzIFNWR0FuaW1hdGVkUHJvcGVydHk7CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIE93bmVyVHlwZT4KIGNsYXNzIFNWR01lbWJlckFjY2Vzc29yIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ByaW1pdGl2ZVByb3Bl
cnR5QW5pbWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ByaW1pdGl2
ZVByb3BlcnR5QW5pbWF0b3IuaAppbmRleCBkMGIxNTMyNDZmMy4uMWYyMzc0ZjVkZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ByaW1pdGl2ZVByb3BlcnR5
QW5pbWF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcmltaXRp
dmVQcm9wZXJ0eUFuaW1hdG9yLmgKQEAgLTQyLDEzICs0MiwxMyBAQCBjbGFzcyBTVkdQcmltaXRp
dmVQcm9wZXJ0eUFuaW1hdG9yIDogcHVibGljIFNWR1Byb3BlcnR5QW5pbWF0b3I8QW5pbWF0aW9u
RnVuY3RpbwogICAgIHVzaW5nIEJhc2U6Om1fZnVuY3Rpb247CiAgICAgCiBwdWJsaWM6Ci0gICAg
c3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFJl
ZjxET01MaXZlUHJvcGVydHk+JiYgcHJvcGVydHksIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9k
ZSwgQ2FsY01vZGUgY2FsY01vZGUsIGJvb2wgaXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0aXZl
KQorICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lLCBSZWY8U1ZHUHJvcGVydHk+JiYgcHJvcGVydHksIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9u
TW9kZSwgQ2FsY01vZGUgY2FsY01vZGUsIGJvb2wgaXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0
aXZlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUHJpbWl0aXZlUHJv
cGVydHlBbmltYXRvcihhdHRyaWJ1dGVOYW1lLCBXVEZNb3ZlKHByb3BlcnR5KSwgYW5pbWF0aW9u
TW9kZSwgY2FsY01vZGUsIGlzQWNjdW11bGF0ZWQsIGlzQWRkaXRpdmUpKTsKICAgICB9CiAgICAg
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIFNWR1ByaW1pdGl2ZVBy
b3BlcnR5QW5pbWF0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgUmVmPERP
TUxpdmVQcm9wZXJ0eT4mJiBwcm9wZXJ0eSwgQXJndW1lbnRzJiYuLi4gYXJndW1lbnRzKQorICAg
IFNWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmli
dXRlTmFtZSwgUmVmPFNWR1Byb3BlcnR5PiYmIHByb3BlcnR5LCBBcmd1bWVudHMmJi4uLiBhcmd1
bWVudHMpCiAgICAgICAgIDogQmFzZShhdHRyaWJ1dGVOYW1lLCBzdGQ6OmZvcndhcmQ8QXJndW1l
bnRzPihhcmd1bWVudHMpLi4uKQogICAgICAgICAsIG1fcHJvcGVydHkoc3RhdGljX3JlZmVyZW5j
ZV9jYXN0PFZhbHVlUHJvcGVydHlUeXBlPihXVEZNb3ZlKHByb3BlcnR5KSkpCiAgICAgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHkuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5LmgKaW5kZXggY2U2NWNiMTEw
ZDEuLjc2YTk3YzU5OWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdQcm9wZXJ0eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1By
b3BlcnR5LmgKQEAgLTIwLDgzICsyMCwyMSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUg
IlNWR1Byb3BlcnR5T3duZXIuaCIKLSNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRl
ICJET01MaXZlUHJvcGVydHkuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0g
Y2xhc3MgU1ZHUHJvcGVydHlBY2Nlc3MgOiB1aW50OF90IHsgUmVhZFdyaXRlLCBSZWFkT25seSB9
OwotZW51bSBjbGFzcyBTVkdQcm9wZXJ0eVN0YXRlIDogdWludDhfdCB7IENsZWFuLCBEaXJ0eSB9
OwotCi1jbGFzcyBTVkdQcm9wZXJ0eSA6IHB1YmxpYyBSZWZDb3VudGVkPFNWR1Byb3BlcnR5PiB7
CitjbGFzcyBTVkdQcm9wZXJ0eSA6IHB1YmxpYyBET01MaXZlUHJvcGVydHksIHB1YmxpYyBSZWZD
b3VudGVkPFNWR1Byb3BlcnR5PiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1ZHUHJvcGVydHko
KSA9IGRlZmF1bHQ7CiAKLSAgICAvLyBNYW5hZ2luZyB0aGUgcmVsYXRpb25zaGlwIHdpdGggdGhl
IG93bmVyLgotICAgIGJvb2wgaXNBdHRhY2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1fb3duZXI7IH0K
LSAgICB2b2lkIGF0dGFjaChTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nl
c3MgYWNjZXNzKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX293bmVyKTsKLSAgICAgICAgQVNT
RVJUKG1fc3RhdGUgPT0gU1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW4pOwotICAgICAgICBtX293bmVy
ID0gb3duZXI7Ci0gICAgICAgIG1fYWNjZXNzID0gYWNjZXNzOwotICAgIH0KLQotICAgIHZvaWQg
ZGV0YWNoKCkKLSAgICB7Ci0gICAgICAgIG1fb3duZXIgPSBudWxscHRyOwotICAgICAgICBtX2Fj
Y2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGU7Ci0gICAgICAgIG1fc3RhdGUgPSBT
VkdQcm9wZXJ0eVN0YXRlOjpDbGVhbjsKLSAgICB9Ci0KLSAgICBjb25zdCBTVkdFbGVtZW50KiBj
b250ZXh0RWxlbWVudCgpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoIW1fb3duZXIpCi0gICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgcmV0dXJuIG1fb3duZXItPmF0dHJpYnV0
ZUNvbnRleHRFbGVtZW50KCk7Ci0gICAgfQotCi0gICAgdm9pZCBjb21taXRDaGFuZ2UoKQotICAg
IHsKLSAgICAgICAgaWYgKCFtX293bmVyKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBt
X293bmVyLT5jb21taXRQcm9wZXJ0eUNoYW5nZSh0aGlzKTsKLSAgICB9Ci0KLSAgICAvLyBET00g
YWNjZXNzLgotICAgIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1f
YWNjZXNzOyB9Ci0gICAgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3QgeyByZXR1cm4gbV9hY2Nlc3Mg
PT0gU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRPbmx5OyB9Ci0KLSAgICAvLyBTeW5jaHJvbml6aW5n
IHRoZSBTVkcgYXR0cmlidXRlIGFuZCBpdHMgcmVmbGVjdGlvbiBoZXJlLgotICAgIGJvb2wgaXNE
aXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUgPT0gU1ZHUHJvcGVydHlTdGF0ZTo6RGlydHk7
IH0KLSAgICB2b2lkIHNldERpcnR5KCkgeyBtX3N0YXRlID0gU1ZHUHJvcGVydHlTdGF0ZTo6RGly
dHk7IH0KLSAgICBPcHRpb25hbDxTdHJpbmc+IHN5bmNocm9uaXplKCkKLSAgICB7Ci0gICAgICAg
IGlmIChtX3N0YXRlID09IFNWR1Byb3BlcnR5U3RhdGU6OkNsZWFuKQotICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAgbV9zdGF0ZSA9IFNWR1Byb3BlcnR5U3RhdGU6OkNs
ZWFuOwotICAgICAgICByZXR1cm4gdmFsdWVBc1N0cmluZygpOwotICAgIH0KLQogICAgIC8vIFRo
aXMgaXMgdXNlZCB3aGVuIGNhbGxpbmcgc2V0QXR0cmlidXRlKCkuCiAgICAgdmlydHVhbCBTdHJp
bmcgdmFsdWVBc1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KIAotICAg
IC8vIFZpc3VhbCBTdHVkaW8gZG9lc24ndCBzZWVtIHRvIHNlZSB0aGVzZSBwcml2YXRlIGNvbnN0
cnVjdG9ycyBmcm9tIHN1YmNsYXNzZXMuCi0gICAgLy8gRklYTUU6IFNlZSB3aGF0IGl0IHRha2Vz
IHRvIHJlbW92ZSB0aGlzIGhhY2suCi0jaWYgIUNPTVBJTEVSKE1TVkMpCiBwcm90ZWN0ZWQ6Ci0j
ZW5kaWYKLSAgICBTVkdQcm9wZXJ0eShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciA9IG51bGxwdHIs
IFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUp
Ci0gICAgICAgIDogbV9vd25lcihvd25lcikKLSAgICAgICAgLCBtX2FjY2VzcyhhY2Nlc3MpCi0g
ICAgewotICAgIH0KLQotICAgIFNWR1Byb3BlcnR5T3duZXIqIG1fb3duZXIgeyBudWxscHRyIH07
Ci0gICAgU1ZHUHJvcGVydHlBY2Nlc3MgbV9hY2Nlc3MgeyBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVh
ZFdyaXRlIH07Ci0gICAgU1ZHUHJvcGVydHlTdGF0ZSBtX3N0YXRlIHsgU1ZHUHJvcGVydHlTdGF0
ZTo6Q2xlYW4gfTsKKyAgICB1c2luZyBET01MaXZlUHJvcGVydHk6OkRPTUxpdmVQcm9wZXJ0eTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QW5pbWF0b3JGYWN0b3J5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeS5oCmluZGV4IDRi
NWRlZjlkYmVjLi42ODFlNmRjNjU0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHUHJvcGVydHlBbmltYXRvckZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeS5oCkBAIC02OSwzNyAr
NjksMzcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIFRoaXMgSGFzaE1hcCBtYXBzIGFu
IGF0dHJpYnV0ZSBuYW1lIHRvIGEgcGFpciBvZiBzdGF0aWMgbWV0aG9kcy4gVGhlIGZpcnN0IG9u
ZSBjcmVhdGVzIGEgc2hhcmVkCi0gICAgLy8gUmVmPERPTUxpdmVQcm9wZXJ0eT4gZm9yIHRoZSB2
YWx1ZSB0eXBlIG9mIHRoaXMgYXR0cmlidXRlLiBUaGUgc2Vjb25kIGNyZWF0ZXMgdGhlIGFuaW1h
dG9yIGdpdmVuIHRoZQotICAgIC8vIGF0dHJpYnV0ZSBuYW1lIGFuZCB0aGUgc2hhcmVkIFJlZjxE
T01MaXZlUHJvcGVydHk+LgorICAgIC8vIFJlZjxTVkdQcm9wZXJ0eT4gZm9yIHRoZSB2YWx1ZSB0
eXBlIG9mIHRoaXMgYXR0cmlidXRlLiBUaGUgc2Vjb25kIGNyZWF0ZXMgdGhlIGFuaW1hdG9yIGdp
dmVuIHRoZQorICAgIC8vIGF0dHJpYnV0ZSBuYW1lIGFuZCB0aGUgc2hhcmVkIFJlZjxTVkdQcm9w
ZXJ0eT4uCiAgICAgdXNpbmcgQXR0cmlidXRlQW5pbWF0b3JDcmVhdG9yID0gSGFzaE1hcDwKICAg
ICAgICAgUXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZUltcGwqLAogICAgICAgICBzdGQ6OnBh
aXI8Ci0gICAgICAgICAgICBzdGQ6OmZ1bmN0aW9uPFJlZjxET01MaXZlUHJvcGVydHk+KCk+LAot
ICAgICAgICAgICAgc3RkOjpmdW5jdGlvbjxSZWY8U1ZHQXR0cmlidXRlQW5pbWF0b3I+KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBSZWY8RE9NTGl2ZVByb3BlcnR5PiYmLCBBbmltYXRpb25Nb2RlLCBD
YWxjTW9kZSwgYm9vbCwgYm9vbCk+CisgICAgICAgICAgICBzdGQ6OmZ1bmN0aW9uPFJlZjxTVkdQ
cm9wZXJ0eT4oKT4sCisgICAgICAgICAgICBzdGQ6OmZ1bmN0aW9uPFJlZjxTVkdBdHRyaWJ1dGVB
bmltYXRvcj4oY29uc3QgUXVhbGlmaWVkTmFtZSYsIFJlZjxTVkdQcm9wZXJ0eT4mJiwgQW5pbWF0
aW9uTW9kZSwgQ2FsY01vZGUsIGJvb2wsIGJvb2wpPgogICAgICAgICA+CiAgICAgPjsKIAotICAg
IHN0YXRpYyBhdXRvIGNyZWF0ZUNvbG9yQW5pbWF0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSwgUmVmPERPTUxpdmVQcm9wZXJ0eT4mJiBwcm9wZXJ0eSwgQW5pbWF0aW9uTW9k
ZSBhbmltYXRpb25Nb2RlLCBDYWxjTW9kZSBjYWxjTW9kZSwgYm9vbCBpc0FjY3VtdWxhdGVkLCBi
b29sIGlzQWRkaXRpdmUpCisgICAgc3RhdGljIGF1dG8gY3JlYXRlQ29sb3JBbmltYXRvcihjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8U1ZHUHJvcGVydHk+JiYgcHJvcGVy
dHksIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUgY2FsY01vZGUsIGJvb2wg
aXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0aXZlKQogICAgIHsKICAgICAgICAgcmV0dXJuIFNW
R0NvbG9yQW5pbWF0b3I6OmNyZWF0ZShhdHRyaWJ1dGVOYW1lLCBXVEZNb3ZlKHByb3BlcnR5KSwg
YW5pbWF0aW9uTW9kZSwgY2FsY01vZGUsIGlzQWNjdW11bGF0ZWQsIGlzQWRkaXRpdmUpOwogICAg
IH0KIAotICAgIHN0YXRpYyBhdXRvIGNyZWF0ZUxlbmd0aEFuaW1hdG9yKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFJlZjxET01MaXZlUHJvcGVydHk+JiYgcHJvcGVydHksIEFu
aW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUgY2FsY01vZGUsIGJvb2wgaXNBY2N1
bXVsYXRlZCwgYm9vbCBpc0FkZGl0aXZlKQorICAgIHN0YXRpYyBhdXRvIGNyZWF0ZUxlbmd0aEFu
aW1hdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFJlZjxTVkdQcm9wZXJ0
eT4mJiBwcm9wZXJ0eSwgQW5pbWF0aW9uTW9kZSBhbmltYXRpb25Nb2RlLCBDYWxjTW9kZSBjYWxj
TW9kZSwgYm9vbCBpc0FjY3VtdWxhdGVkLCBib29sIGlzQWRkaXRpdmUpCiAgICAgewogICAgICAg
ICByZXR1cm4gU1ZHTGVuZ3RoQW5pbWF0b3I6OmNyZWF0ZShhdHRyaWJ1dGVOYW1lLCBXVEZNb3Zl
KHByb3BlcnR5KSwgYW5pbWF0aW9uTW9kZSwgY2FsY01vZGUsIGlzQWNjdW11bGF0ZWQsIGlzQWRk
aXRpdmUpOwogICAgIH0KIAotICAgIHN0YXRpYyBhdXRvIGNyZWF0ZUxlbmd0aExpc3RBbmltYXRv
cihjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8RE9NTGl2ZVByb3BlcnR5
PiYmIHByb3BlcnR5LCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2RlIGNhbGNN
b2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkKKyAgICBzdGF0aWMgYXV0
byBjcmVhdGVMZW5ndGhMaXN0QW5pbWF0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRl
TmFtZSwgUmVmPFNWR1Byb3BlcnR5PiYmIHByb3BlcnR5LCBBbmltYXRpb25Nb2RlIGFuaW1hdGlv
bk1vZGUsIENhbGNNb2RlIGNhbGNNb2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRp
dGl2ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBTVkdMZW5ndGhMaXN0QW5pbWF0b3I6OmNyZWF0
ZShhdHRyaWJ1dGVOYW1lLCBXVEZNb3ZlKHByb3BlcnR5KSwgYW5pbWF0aW9uTW9kZSwgY2FsY01v
ZGUsIGlzQWNjdW11bGF0ZWQsIGlzQWRkaXRpdmUpOwogICAgIH0KIAotICAgIHN0YXRpYyBhdXRv
IGNyZWF0ZU51bWJlckFuaW1hdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUs
IFJlZjxET01MaXZlUHJvcGVydHk+JiYgcHJvcGVydHksIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9u
TW9kZSwgQ2FsY01vZGUgY2FsY01vZGUsIGJvb2wgaXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0
aXZlKQorICAgIHN0YXRpYyBhdXRvIGNyZWF0ZU51bWJlckFuaW1hdG9yKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFJlZjxTVkdQcm9wZXJ0eT4mJiBwcm9wZXJ0eSwgQW5pbWF0
aW9uTW9kZSBhbmltYXRpb25Nb2RlLCBDYWxjTW9kZSBjYWxjTW9kZSwgYm9vbCBpc0FjY3VtdWxh
dGVkLCBib29sIGlzQWRkaXRpdmUpCiAgICAgewogICAgICAgICByZXR1cm4gU1ZHTnVtYmVyQW5p
bWF0b3I6OmNyZWF0ZShhdHRyaWJ1dGVOYW1lLCAgV1RGTW92ZShwcm9wZXJ0eSksIGFuaW1hdGlv
bk1vZGUsIGNhbGNNb2RlLCBpc0FjY3VtdWxhdGVkLCBpc0FkZGl0aXZlKTsKICAgICB9CiAgICAg
Ci0gICAgc3RhdGljIGF1dG8gY3JlYXRlU3RyaW5nQW5pbWF0b3IoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0cmlidXRlTmFtZSwgUmVmPERPTUxpdmVQcm9wZXJ0eT4mJiBwcm9wZXJ0eSwgQW5pbWF0
aW9uTW9kZSBhbmltYXRpb25Nb2RlLCBDYWxjTW9kZSBjYWxjTW9kZSwgYm9vbCBpc0FjY3VtdWxh
dGVkLCBib29sIGlzQWRkaXRpdmUpCisgICAgc3RhdGljIGF1dG8gY3JlYXRlU3RyaW5nQW5pbWF0
b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgUmVmPFNWR1Byb3BlcnR5PiYm
IHByb3BlcnR5LCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2RlIGNhbGNNb2Rl
LCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkKICAgICB7CiAgICAgICAgIHJl
dHVybiBTVkdTdHJpbmdBbmltYXRvcjo6Y3JlYXRlKGF0dHJpYnV0ZU5hbWUsIFdURk1vdmUocHJv
cGVydHkpLCBhbmltYXRpb25Nb2RlLCBjYWxjTW9kZSwgaXNBY2N1bXVsYXRlZCwgaXNBZGRpdGl2
ZSk7CiAgICAgfQpAQCAtMTcwLDcgKzE3MCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBt
YXA7CiAgICAgfQogCi0gICAgdXNpbmcgQXR0cmlidXRlUHJvcGVydHkgPSBIYXNoTWFwPFF1YWxp
ZmllZE5hbWUsIFJlZjxET01MaXZlUHJvcGVydHk+PjsKKyAgICB1c2luZyBBdHRyaWJ1dGVQcm9w
ZXJ0eSA9IEhhc2hNYXA8UXVhbGlmaWVkTmFtZSwgUmVmPFNWR1Byb3BlcnR5Pj47CiAgICAgQXR0
cmlidXRlUHJvcGVydHkgbV9hdHRyaWJ1dGVQcm9wZXJ0eTsKIH07CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0
eS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU2hhcmVkUHJpbWl0aXZlUHJv
cGVydHkuaAppbmRleCBmNzBmMThiOGZmZC4uYWNlMDUwMmIzY2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1NoYXJlZFByaW1pdGl2ZVByb3BlcnR5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVy
dHkuaApAQCAtMjUsMTIgKzI1LDEyIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRE9N
TGl2ZVByb3BlcnR5LmgiCisjaW5jbHVkZSAiU1ZHUHJvcGVydHkuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+Ci1jbGFzcyBTVkdTaGFy
ZWRQcmltaXRpdmVQcm9wZXJ0eSA6IHB1YmxpYyBET01MaXZlUHJvcGVydHkgeworY2xhc3MgU1ZH
U2hhcmVkUHJpbWl0aXZlUHJvcGVydHkgOiBwdWJsaWMgU1ZHUHJvcGVydHkgewogcHVibGljOgog
ICAgIHVzaW5nIFZhbHVlVHlwZSA9IFByb3BlcnR5VHlwZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eS5oCmluZGV4IDg1OTg2YzliYmYwLi44
NTJmMjc0ZDdiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
VmFsdWVQcm9wZXJ0eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Zh
bHVlUHJvcGVydHkuaApAQCAtMjUsMTIgKzI1LDEyIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5j
bHVkZSAiRE9NTGl2ZVByb3BlcnR5LmgiCisjaW5jbHVkZSAiU1ZHUHJvcGVydHkuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIAogdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgot
Y2xhc3MgU1ZHVmFsdWVQcm9wZXJ0eSA6IHB1YmxpYyBET01MaXZlUHJvcGVydHkgeworY2xhc3Mg
U1ZHVmFsdWVQcm9wZXJ0eSA6IHB1YmxpYyBTVkdQcm9wZXJ0eSB7CiBwdWJsaWM6CiAgICAgdXNp
bmcgVmFsdWVUeXBlID0gUHJvcGVydHlUeXBlOwogCkBAIC02MywxNSArNjMsMTUgQEAgcHJvdGVj
dGVkOgogICAgIHsKICAgICB9CiAKLSAgICAvLyBCYXNlIGFuZCBkZWZhdWx0IGNvbnN0cnVjdG9y
LiBEbyBub3QgdXNlICJ1c2luZyBET01MaXZlUHJvcGVydHk6OkRPTUxpdmVQcm9wZXJ0eSIgYmVj
YXVzZSBvZiBXaW5kb3dzIGFuZCBHVEsgcG9ydHMuCisgICAgLy8gQmFzZSBhbmQgZGVmYXVsdCBj
b25zdHJ1Y3Rvci4gRG8gbm90IHVzZSAidXNpbmcgU1ZHUHJvcGVydHk6OlNWR1Byb3BlcnR5IiBi
ZWNhdXNlIG9mIFdpbmRvd3MgYW5kIEdUSyBwb3J0cy4KICAgICBTVkdWYWx1ZVByb3BlcnR5KERP
TUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlciA9IG51bGxwdHIpCi0gICAgICAgIDogRE9N
TGl2ZVByb3BlcnR5KG9ic2VydmVyKQorICAgICAgICA6IFNWR1Byb3BlcnR5KG9ic2VydmVyKQog
ICAgIHsKICAgICB9CiAKICAgICAvLyBDcmVhdGUgYW4gaW5pdGlhbGl6ZWQgYW5kIGF0dGFjaGVk
IHByb3BlcnR5LgogICAgIFNWR1ZhbHVlUHJvcGVydHkoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIq
IG9ic2VydmVyLCBjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQotICAgICAgICA6IERPTUxpdmVQ
cm9wZXJ0eShvYnNlcnZlcikKKyAgICAgICAgOiBTVkdQcm9wZXJ0eShvYnNlcnZlcikKICAgICAg
ICAgLCBtX3ZhbHVlKHZhbHVlKQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlBbmltYXRvci5oCmluZGV4IGVl
MWIzNzVkZmU5Li5lMTZjODkwNDUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9yLmgKQEAgLTM4LDcgKzM4LDcg
QEAgY2xhc3MgU1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9yIDogcHVibGljIFNWR1Byb3BlcnR5QW5p
bWF0b3I8QW5pbWF0aW9uRnVuY3Rpb24+IHsKIAogcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVu
YW1lLi4uIEFyZ3VtZW50cz4KLSAgICBTVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3IoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgUmVmPERPTUxpdmVQcm9wZXJ0eT4mJiBwcm9wZXJ0
eSwgQXJndW1lbnRzJiYuLi4gYXJndW1lbnRzKQorICAgIFNWR1ZhbHVlUHJvcGVydHlBbmltYXRv
cihjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8U1ZHUHJvcGVydHk+JiYg
cHJvcGVydHksIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKICAgICAgICAgOiBCYXNlKGF0dHJp
YnV0ZU5hbWUsIHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4pCiAgICAgICAg
ICwgbV9wcm9wZXJ0eShzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8UHJvcGVydHlUeXBlPihXVEZNb3Zl
KHByb3BlcnR5KSkpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oCmluZGV4IDA2OGI0MzE0
NGQ0Li5lNjk2MjYwZThkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlBbmltYXRvckltcGwuaApAQCAtMzcsNyArMzcs
NyBAQCBjbGFzcyBTVkdMZW5ndGhBbmltYXRvciBmaW5hbCA6IHB1YmxpYyBTVkdWYWx1ZVByb3Bl
cnR5QW5pbWF0b3I8U1ZHTGVuZ3RoLCBTVkdBbgogICAgIHVzaW5nIEJhc2U6Om1fcHJvcGVydHk7
CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlTmFtZSwgUmVmPERPTUxpdmVQcm9wZXJ0eT4mJiBwcm9wZXJ0eSwgQW5pbWF0aW9u
TW9kZSBhbmltYXRpb25Nb2RlLCBDYWxjTW9kZSBjYWxjTW9kZSwgYm9vbCBpc0FjY3VtdWxhdGVk
LCBib29sIGlzQWRkaXRpdmUpCisgICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFJlZjxTVkdQcm9wZXJ0eT4mJiBwcm9wZXJ0eSwgQW5pbWF0
aW9uTW9kZSBhbmltYXRpb25Nb2RlLCBDYWxjTW9kZSBjYWxjTW9kZSwgYm9vbCBpc0FjY3VtdWxh
dGVkLCBib29sIGlzQWRkaXRpdmUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdMZW5ndGhBbmltYXRvcihhdHRyaWJ1dGVOYW1lLCBXVEZNb3ZlKHByb3BlcnR5KSwgYW5p
bWF0aW9uTW9kZSwgY2FsY01vZGUsIGlzQWNjdW11bGF0ZWQsIGlzQWRkaXRpdmUsIFNWR0xlbmd0
aE1vZGU6Ok90aGVyKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3RBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3RBbmltYXRvci5oCmluZGV4IGYxNThi
NDYwZTUyLi5hYmFmYzUxZjlmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3RBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3IuaApAQCAtMzgsNyAr
MzgsNyBAQCBjbGFzcyBTVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yIDogcHVibGljIFNWR1By
b3BlcnR5QW5pbWF0b3I8QW5pbWF0aW9uRnVuY3RpbwogCiBwdWJsaWM6CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIFNWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3Io
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgUmVmPERPTUxpdmVQcm9wZXJ0eT4m
JiBwcm9wZXJ0eSwgQXJndW1lbnRzJiYuLi4gYXJndW1lbnRzKQorICAgIFNWR1ZhbHVlUHJvcGVy
dHlMaXN0QW5pbWF0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgUmVmPFNW
R1Byb3BlcnR5PiYmIHByb3BlcnR5LCBBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCiAgICAgICAg
IDogQmFzZShhdHRyaWJ1dGVOYW1lLCBzdGQ6OmZvcndhcmQ8QXJndW1lbnRzPihhcmd1bWVudHMp
Li4uKQogICAgICAgICAsIG1fbGlzdChzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8TGlzdFR5cGU+KFdU
Rk1vdmUocHJvcGVydHkpKSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9ySW1wbC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3RBbmltYXRvckltcGwuaApp
bmRleCAyMTliMzU4YTE2Yy4uMmUyYTg1NDBhYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3JJbXBsLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3RBbmltYXRv
ckltcGwuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBTVkdMZW5ndGhMaXN0QW5pbWF0b3IgZmlu
YWwgOiBwdWJsaWMgU1ZHVmFsdWVQcm9wZXJ0eUxpc3RBbmltYXRvcjxTVkdMZW5ndAogICAgIHVz
aW5nIEJhc2U6Om1fbGlzdDsKIAogcHVibGljOgotICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8RE9NTGl2ZVByb3BlcnR5PiYmIHBy
b3BlcnR5LCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2RlIGNhbGNNb2RlLCBi
b29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkKKyAgICBzdGF0aWMgYXV0byBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgUmVmPFNWR1Byb3BlcnR5PiYm
IHByb3BlcnR5LCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2RlIGNhbGNNb2Rl
LCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkKICAgICB7CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aExpc3RBbmltYXRvcihhdHRyaWJ1dGVOYW1lLCBX
VEZNb3ZlKHByb3BlcnR5KSwgYW5pbWF0aW9uTW9kZSwgY2FsY01vZGUsIGlzQWNjdW11bGF0ZWQs
IGlzQWRkaXRpdmUsIFNWR0xlbmd0aE1vZGU6Ok90aGVyKSk7CiAgICAgfQo=
</data>
<flag name="review"
          id="395869"
          type_id="1"
          status="-"
          setter="ysuzuki"
    />
          </attachment>
      

    </bug>

</bugzilla>