<?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>230015</bug_id>
          
          <creation_ts>2021-09-07 12:40:46 -0700</creation_ts>
          <short_desc>Replace PrivateClickMeasurementNetworkLoader::start with an implementation that doesn&apos;t need NetworkSession</short_desc>
          <delta_ts>2021-09-15 12:49:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=230317</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1791160</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-07 12:40:46 -0700</bug_when>
    <thetext>Replace PrivateClickMeasurementNetworkLoader::start with an implementation that doesn&apos;t need NetworkSession</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791162</commentid>
    <comment_count>1</comment_count>
      <attachid>437541</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-07 12:44:31 -0700</bug_when>
    <thetext>Created attachment 437541
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791170</commentid>
    <comment_count>2</comment_count>
      <attachid>437544</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-07 12:53:54 -0700</bug_when>
    <thetext>Created attachment 437544
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791174</commentid>
    <comment_count>3</comment_count>
      <attachid>437546</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-07 13:01:43 -0700</bug_when>
    <thetext>Created attachment 437546
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791187</commentid>
    <comment_count>4</comment_count>
      <attachid>437552</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-07 13:17:01 -0700</bug_when>
    <thetext>Created attachment 437552
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791193</commentid>
    <comment_count>5</comment_count>
      <attachid>437546</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-07 13:27:22 -0700</bug_when>
    <thetext>Comment on attachment 437546
Patch

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

We should check that we&apos;re not leaving behind an ephemeral, stateless session that is no longer used. I believe we use it for more things but we should make sure.

See inline questions. r=me as long as EWS is happy.

&gt; Source/WebKit/ChangeLog:8
&gt; +        This is needed to run this code in a process that doesn&apos;t have NetworkSession, which is a class tied closely to WKWebsiteDataStore.

With this change, do we still have guarantees that PCM will not be enabled in ephemeral sessions?

&gt; Source/WebKit/ChangeLog:11
&gt; +        2. Does not allow redirects.

Did we have this configuration before? I&apos;m for it until we are proven otherwise but I want to keep track of any functional changes.

&gt; Source/WebKit/NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementNetworkLoaderCocoa.mm:88
&gt; +        configuration._shouldSkipPreferredClientCertificateLookup = YES;

What does this imply?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791194</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-07 13:32:10 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #5)
&gt; Comment on attachment 437546 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=437546&amp;action=review
&gt; 
&gt; We should check that we&apos;re not leaving behind an ephemeral, stateless
&gt; session that is no longer used. I believe we use it for more things but we
&gt; should make sure.
&gt; 
&gt; See inline questions. r=me as long as EWS is happy.
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:8
&gt; &gt; +        This is needed to run this code in a process that doesn&apos;t have NetworkSession, which is a class tied closely to WKWebsiteDataStore.
&gt; 
&gt; With this change, do we still have guarantees that PCM will not be enabled
&gt; in ephemeral sessions?
Yes, that is currently done in a function named pcmStoreDirectory.

&gt; &gt; Source/WebKit/ChangeLog:11
&gt; &gt; +        2. Does not allow redirects.
&gt; 
&gt; Did we have this configuration before? I&apos;m for it until we are proven
&gt; otherwise but I want to keep track of any functional changes.
Yes, PrivateClickMeasurementNetworkLoader::willSendRedirectedRequest called cancel.

&gt; &gt; Source/WebKit/NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementNetworkLoaderCocoa.mm:88
&gt; &gt; +        configuration._shouldSkipPreferredClientCertificateLookup = YES;
&gt; 
&gt; What does this imply?
This is what we do for all our sessions in WebKit now.  It makes it so that CFNetwork doesn&apos;t look in the keychain for client certificates if the server requests one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791234</commentid>
    <comment_count>7</comment_count>
      <attachid>437561</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-07 15:10:36 -0700</bug_when>
    <thetext>Created attachment 437561
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791236</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-07 15:14:39 -0700</bug_when>
    <thetext>http://trac.webkit.org/r282110</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791239</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-07 15:15:54 -0700</bug_when>
    <thetext>&lt;rdar://problem/82841918&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791304</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-07 18:35:43 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791305</commentid>
    <comment_count>11</comment_count>
      <attachid>437576</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-07 18:35:44 -0700</bug_when>
    <thetext>Created attachment 437576
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791307</commentid>
    <comment_count>12</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-07 18:42:38 -0700</bug_when>
    <thetext>Removed extra &quot;static&quot; and committed to r282121</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437541</attachid>
            <date>2021-09-07 12:44:31 -0700</date>
            <delta_ts>2021-09-07 12:53:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230015-20210907124430.patch</filename>
            <type>text/plain</type>
            <size>34629</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDMwYTkyZGEwNGRhNDQ5MTVj
ODVmYjFlZjYxNTAxYjc4YjQzNjFlMTEuLjEyYzNjNWU4ZjBkNTk2ODAzODJmOTkxMDFhOGNmMWRk
ODA5MTI3ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjEtMDktMDcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXBsYWNlIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6c3RhcnQgd2l0aCBhbiBpbXBsZW1l
bnRhdGlvbiB0aGF0IGRvZXNuJ3QgbmVlZCBOZXR3b3JrU2Vzc2lvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMDE1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBuZWVkZWQgdG8gcnVuIHRo
aXMgY29kZSBpbiBhIHByb2Nlc3MgdGhhdCBkb2Vzbid0IGhhdmUgTmV0d29ya1Nlc3Npb24sIHdo
aWNoIGlzIGEgY2xhc3MgdGllZCBjbG9zZWx5IHRvIFdLV2Vic2l0ZURhdGFTdG9yZS4KKyAgICAg
ICAgVGhpcyByZXBsYWNlcyBpdCB3aXRoIGEgc2ltcGxlIGltcGxlbWVudGF0aW9uIHRoYXQgZG9l
cyB0aGUgc2FtZSB0aGluZ3M6CisgICAgICAgIDEuIFVzZXMgYW4gZXBoZW1lcmFsIHN0YXRlbGVz
cyBzZXNzaW9uIHRoYXQgZG9lc24ndCBhY2NlcHQgY29va2llcyBvciB1c2UgY3JlZGVudGlhbHMu
CisgICAgICAgIDIuIERvZXMgbm90IGFsbG93IHJlZGlyZWN0cy4KKyAgICAgICAgMy4gT25seSBh
Y2NlcHRzIEpTT04gbWltZSB0eXBlcy4KKyAgICAgICAgNC4gQ2FsbHMgcHJvY2Vzc1BDTVJlcXVl
c3QKKworICAgICAgICBXZSBzdGlsbCBuZWVkIHRvIGNhbGwgTmV0d29ya1Nlc3Npb25Db2NvYTo6
YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdCB0byBnZXQgdGVzdHMgdG8gcGFz
cy4KKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtTZXNzaW9uOjphZGRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6cmVtb3ZlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVu
dC5oOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNsaWVudDo6fkNsaWVudCk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpDbGllbnRJbXBsOjps
b2FkRnJvbU5ldHdvcmspOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6Z2V0VG9rZW5QdWJsaWNLZXkpOgorICAgICAgICAoV2ViS2l0
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmdldFNpZ25lZFVubGlua2FibGVUb2tl
bik6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Zmly
ZUNvbnZlcnNpb25SZXF1ZXN0SW1wbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpOZXR3b3JrTG9hZGVyOjpzdGFydCk6CisgICAgICAg
IChXZWJLaXQ6OmdlbmVyYXRlTmV0d29ya0xvYWRQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjpzdGFydCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29y
a0xvYWRlcjo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjp+
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjpmYWlsKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9h
ZGVyOjpjYW5jZWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE5ldHdvcmtMb2FkZXI6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI6
OmRpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6ZGlkUmVjZWl2ZUJ1ZmZlcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6
ZGlkRmluaXNoTG9hZGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6ZGlkRmFpbExvYWRpbmcpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI6OmRpZENv
bXBsZXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaDoKKyAgICAg
ICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyQ29jb2Eu
bW06IEFkZGVkLgorICAgICAgICAocHJvY2Vzc1BDTVJlcXVlc3QpOgorICAgICAgICAoLVtXS05l
dHdvcmtTZXNzaW9uRGVsZWdhdGVBbGxvd2luZ09ubHlOb25SZWRpcmVjdGVkSlNPTiBVUkxTZXNz
aW9uOnRhc2s6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb246bmV3UmVxdWVzdDpjb21wbGV0aW9u
SGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlQWxsb3dpbmdP
bmx5Tm9uUmVkaXJlY3RlZEpTT04gVVJMU2Vzc2lvbjpkYXRhVGFzazpkaWRSZWNlaXZlUmVzcG9u
c2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25EZWxl
Z2F0ZUFsbG93aW5nT25seU5vblJlZGlyZWN0ZWRKU09OIFVSTFNlc3Npb246dGFzazpkaWRSZWNl
aXZlQ2hhbGxlbmdlOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoV2ViS2l0OjpQQ006
OnRhc2tNYXApOgorICAgICAgICAoV2ViS2l0OjpQQ006OnN0YXRlbGVzc1Nlc3Npb25XaXRob3V0
UmVkaXJlY3RzKToKKyAgICAgICAgKFdlYktpdDo6UENNOjpOZXR3b3JrTG9hZGVyOjpzdGFydCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0Nv
Y29hKToKKyAgICAgICAgKHByb2Nlc3NQQ01SZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBT
b3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDIxLTA5LTAzICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFNhZmFyaeKAmXMgUHJpdmFjeSBSZXBvcnQgd2luZG93IGlzIGNvbXBs
ZXRlbHkgYmxhbmsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkUGFyYW1ldGVycy5oCmluZGV4IDA0Y2IwMzkwYzljZmQ4NmI5MTFkNDhmOWFmOWNkMTcy
ZThiM2E3MzcuLjcxOWMzOWRiMDRmMGIzMDhkYzFmNWEyZDA0OGYwZGUxZDQ5OWJmYWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJz
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRl
cnMuaApAQCAtNjcsNyArNjcsNiBAQCBwdWJsaWM6CiAgICAgUHJlY29ubmVjdE9ubHkgc2hvdWxk
UHJlY29ubmVjdE9ubHkgeyBQcmVjb25uZWN0T25seTo6Tm8gfTsKICAgICBzdGQ6Om9wdGlvbmFs
PE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXI7CiAgICAgc3Rk
OjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbiB7IE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluOjpObyB9OwotICAgIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVk
PiBwY21EYXRhQ2FycmllZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzLmNwcAppbmRleCAzMDQxZDRmOGEzMDc2NTE3OTMzNWQxYTA2ODg4NWQ2ZDhj
MDNmZjIzLi5mNDFmNTU5MGJkNmZmZjc3NjgzYzBjODIxYjA1YzY2Y2FlNTRhMTE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzLmNwcApAQCAtMTI3LDcgKzEyNyw2IEBAIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiAjZW5kaWYKICAgICAKICAgICBlbmNvZGVyIDw8IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21h
aW47Ci0gICAgZW5jb2RlciA8PCBwY21EYXRhQ2FycmllZDsKIH0KIAogc3RkOjpvcHRpb25hbDxO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycz4gTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCkBAIC0zMjksMTIgKzMyOCw2IEBAIHN0
ZDo6b3B0aW9uYWw8TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM+IE5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzOjpkZWNvCiAgICAgaWYgKCFpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9t
YWluKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIHJlc3VsdC5pc05hdmlnYXRp
bmdUb0FwcEJvdW5kRG9tYWluID0gKmlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW47Ci0KLSAg
ICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlBjbURhdGFDYXJyaWVkPj4gcGNtRGF0YUNhcnJpZWQ7Ci0gICAgZGVjb2RlciA+PiBw
Y21EYXRhQ2FycmllZDsKLSAgICBpZiAoIXBjbURhdGFDYXJyaWVkKQotICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwotICAgIHJlc3VsdC5wY21EYXRhQ2FycmllZCA9ICpwY21EYXRhQ2Fycmll
ZDsKICAgICAKICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IGY1YTA2MmQ5MWI2NDc0MDkyOTUzYWNmYmQy
ZDAyYzk3YzA4ODg0ZGEuLjcwYTFiNDkxYjI0M2FhZWZiM2QyN2JkY2FkMDBhNjA1ZTQyNGY1MGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAg
LTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbi5oIgog
I2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUHJl
ZmV0Y2hDYWNoZS5oIgotI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xv
YWRlci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTZXJ2aWNl
V29ya2VyU29mdFVwZGF0ZUxvYWRlci5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5oIgpAQCAtMTc0LDkgKzE3Myw2IEBAIHB1YmxpYzoKICAgICBBcHBQcml2YWN5
UmVwb3J0VGVzdGluZ0RhdGEmIGFwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YSgpIHsgcmV0dXJu
IG1fYXBwUHJpdmFjeVJlcG9ydFRlc3RpbmdEYXRhOyB9CiAjZW5kaWYKIAotICAgIHZvaWQgYWRk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKHN0ZDo6dW5pcXVlX3B0cjxQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI+JiYgbG9hZGVyKSB7IG1fcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVycy5hZGQoV1RGTW92ZShsb2FkZXIpKTsgfQotICAg
IHZvaWQgcmVtb3ZlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKFByaXZhdGVD
bGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlciogbG9hZGVyKSB7IG1fcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnROZXR3b3JrTG9hZGVycy5yZW1vdmUobG9hZGVyKTsgfQotCiAgICAgdmlydHVhbCB2
b2lkIHJlbW92ZU5ldHdvcmtXZWJzaXRlRGF0YShzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiwgc3Rk
OjpvcHRpb25hbDxIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPj4mJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5k
bGVyKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBhZGRXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMo
V2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzJiYpIHsgfQpA
QCAtMjQ4LDcgKzI0NCw2IEBAIHByb3RlY3RlZDoKICAgICBBcHBQcml2YWN5UmVwb3J0VGVzdGlu
Z0RhdGEgbV9hcHBQcml2YWN5UmVwb3J0VGVzdGluZ0RhdGE7CiAjZW5kaWYKIAotICAgIEhhc2hT
ZXQ8c3RkOjp1bmlxdWVfcHRyPFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcj4+
IG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyczsKICAgICBIYXNoTWFwPFdl
YlBhZ2VQcm94eUlkZW50aWZpZXIsIFN0cmluZz4gbV9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmll
ckZyb21QYWdlSWRlbnRpZmllcnM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50LmgKaW5kZXggOTIwOWQ5NzE3
ZmFiYjhiNTUzY2Y5ZWQ3NTlkZWU4MjQ5MjI2OWE5OS4uMDY2ZWM4MGMzOGQyODI3Y2UzNWEwZTJl
ZTE0ODcxMTc2ZTJkNTFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnQuaApAQCAtNDUsOCArNDUsNiBAQCBuYW1l
c3BhY2UgUENNIHsKIGNsYXNzIENsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+Q2xpZW50
KCkgeyB9Ci0gICAgdXNpbmcgTmV0d29ya0xvYWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmLCBjb25zdCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYpPjsKLSAgICB2aXJ0dWFs
IHZvaWQgbG9hZEZyb21OZXR3b3JrKFVSTCYmLCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmLCBXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJpZWQsIE5ldHdvcmtMb2Fk
Q2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBicm9hZGNhc3RDb25zb2xlTWVzc2Fn
ZShKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBmZWF0dXJlRW5hYmxlZCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZGVidWdNb2Rl
RW5hYmxlZCgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGll
bnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJbXBsLmNwcAppbmRleCAxYTU0
MGNiMDFlMmRlY2Q1MGNlYzU1MDdlZDBkYzY3ZTA4NDgyMTg3Li41ZGVhZjA3NGY4ZDdhNTBhZmFm
YjRmNTFjMjM2MjkzZThlNTQ5YTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xp
ZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudEltcGwuY3BwCkBAIC0z
NywxNCArMzcsNiBAQCBDbGllbnRJbXBsOjpDbGllbnRJbXBsKE5ldHdvcmtTZXNzaW9uJiBzZXNz
aW9uLCBOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MpCiAgICAgOiBtX25ldHdvcmtTZXNz
aW9uKG1ha2VXZWFrUHRyKHNlc3Npb24pKQogICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3Jr
UHJvY2VzcykgeyB9CiAKLXZvaWQgQ2xpZW50SW1wbDo6bG9hZEZyb21OZXR3b3JrKFVSTCYmIHVy
bCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBqc29uUGF5bG9hZCwgV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVkIHBjbURhdGFDYXJyaWVkLCBOZXR3b3JrTG9h
ZENhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKCFmZWF0dXJlRW5hYmxl
ZCgpKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoUmVzb3VyY2VFcnJvcihSZXNv
dXJjZUVycm9yOjpUeXBlOjpDYW5jZWxsYXRpb24pLCB7IH0sIHsgfSk7Ci0KLSAgICBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI6OnN0YXJ0KCptX25ldHdvcmtTZXNzaW9uLCBX
VEZNb3ZlKHVybCksIFdURk1vdmUoanNvblBheWxvYWQpLCBwY21EYXRhQ2FycmllZCwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwotfQotCiB2b2lkIENsaWVudEltcGw6OmJyb2FkY2FzdENv
bnNvbGVNZXNzYWdlKEpTQzo6TWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQogewogICAgIGlmICghZmVhdHVyZUVuYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50
SW1wbC5oCmluZGV4IDAwNWJlNzk5YjMyNWM1YWJmNjhlYzQ0YThiNzc2NmZhZDBlMzM3NTUuLjdl
ZDA0MGY1OGM3NWU3N2I2ODUwMmI3NTFlNDUyNmM2ZTZkYzFlNDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVu
dEltcGwuaApAQCAtNDIsNyArNDIsNiBAQCBwdWJsaWM6CiAgICAgQ2xpZW50SW1wbChOZXR3b3Jr
U2Vzc2lvbiYsIE5ldHdvcmtQcm9jZXNzJik7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBsb2FkRnJv
bU5ldHdvcmsoVVJMJiYsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYsIFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZCwgTmV0d29ya0xvYWRDYWxsYmFjayYmKSBm
aW5hbDsKICAgICB2b2lkIGJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKEpTQzo6TWVzc2FnZUxldmVs
LCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKICAgICBib29sIGZlYXR1cmVFbmFibGVkKCkgY29uc3Qg
ZmluYWw7CiAgICAgYm9vbCBkZWJ1Z01vZGVFbmFibGVkKCkgY29uc3QgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlci5jcHAKaW5kZXggNGVkZjYyNTc2NjI3MjkzYmJhYzVkN2Q5MWJkYzlmZTc2ZWQ2MmMx
NS4uMmQ3ODJiYTJlYWJmM2Q1MmI4ZTIwMmU0ZDZjNzY4ZWQyY2U5NzUyMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNs
dWRlICJOZXR3b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50
RGVidWdJbmZvLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9h
ZGVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9GZXRjaE9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zvcm1EYXRhLmg+
CkBAIC0xMzEsNyArMTMyLDcgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6
OmdldFRva2VuUHVibGljS2V5KFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYKICAgICBSRUxFQVNF
X0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiQWJvdXQgdG8gZmlyZSBhIHRva2Vu
IHB1YmxpYyBrZXkgcmVxdWVzdC4iKTsKICAgICBtX2NsaWVudC0+YnJvYWRjYXN0Q29uc29sZU1l
c3NhZ2UoTWVzc2FnZUxldmVsOjpMb2csICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQWJv
dXQgdG8gZmlyZSBhIHRva2VuIHB1YmxpYyBrZXkgcmVxdWVzdC4iX3MpOwogCi0gICAgbV9jbGll
bnQtPmxvYWRGcm9tTmV0d29yayhXVEZNb3ZlKHRva2VuUHVibGljS2V5VVJMKSwgbnVsbHB0ciwg
cGNtRGF0YUNhcnJpZWQsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpcywgYXR0
cmlidXRpb24gPSBXVEZNb3ZlKGF0dHJpYnV0aW9uKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKV0gKGF1dG8mIGVycm9yLCBhdXRvJiByZXNwb25zZSwgYXV0byYganNvbk9iamVjdCkgbXV0
YWJsZSB7CisgICAgUENNOjpOZXR3b3JrTG9hZGVyOjpzdGFydChXVEZNb3ZlKHRva2VuUHVibGlj
S2V5VVJMKSwgbnVsbHB0ciwgcGNtRGF0YUNhcnJpZWQsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKSwgdGhpcywgYXR0cmlidXRpb24gPSBXVEZNb3ZlKGF0dHJpYnV0aW9uKSwgY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKGF1dG8mIGVycm9yLCBhdXRvJiByZXNwb25zZSwgYXV0
byYganNvbk9iamVjdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAg
ICAgICByZXR1cm47CiAKQEAgLTE0OSw3ICsxNTAsNiBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlcjo6Z2V0VG9rZW5QdWJsaWNLZXkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQm
JgogCiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUoYXR0cmlidXRpb24pLCBqc29uT2JqZWN0LT5n
ZXRTdHJpbmcoInRva2VuX3B1YmxpY19rZXkiX3MpKTsKICAgICB9KTsKLQogfQogCiB2b2lkIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Z2V0U2lnbmVkVW5saW5rYWJsZVRva2VuKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50JiYgbWVhc3VyZW1lbnQpCkBAIC0xNzUsNyArMTc1LDcgQEAg
dm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmdldFNpZ25lZFVubGlua2FibGVU
b2tlbihQcml2YXRlQ2xpY2tNZWFzdXIKICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50LCAiQWJvdXQgdG8gZmlyZSBhIHVubGlua2FibGUgdG9rZW4gc2lnbmluZyBy
ZXF1ZXN0LiIpOwogICAgIG1fY2xpZW50LT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShNZXNzYWdl
TGV2ZWw6OkxvZywgIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBBYm91dCB0byBmaXJlIGEg
dW5saW5rYWJsZSB0b2tlbiBzaWduaW5nIHJlcXVlc3QuIl9zKTsKIAotICAgIG1fY2xpZW50LT5s
b2FkRnJvbU5ldHdvcmsoV1RGTW92ZSh0b2tlblNpZ25hdHVyZVVSTCksIG1lYXN1cmVtZW50LnRv
a2VuU2lnbmF0dXJlSlNPTigpLCBwY21EYXRhQ2FycmllZCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpLCB0aGlzLCBtZWFzdXJlbWVudCA9IFdURk1vdmUobWVhc3VyZW1lbnQpXSAoYXV0
byYgZXJyb3IsIGF1dG8mIHJlc3BvbnNlLCBhdXRvJiBqc29uT2JqZWN0KSBtdXRhYmxlIHsKKyAg
ICBQQ006Ok5ldHdvcmtMb2FkZXI6OnN0YXJ0KFdURk1vdmUodG9rZW5TaWduYXR1cmVVUkwpLCBt
ZWFzdXJlbWVudC50b2tlblNpZ25hdHVyZUpTT04oKSwgcGNtRGF0YUNhcnJpZWQsIFt3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpcywgbWVhc3VyZW1lbnQgPSBXVEZNb3ZlKG1lYXN1
cmVtZW50KV0gKGF1dG8mIGVycm9yLCBhdXRvJiByZXNwb25zZSwgYXV0byYganNvbk9iamVjdCkg
bXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAK
QEAgLTM2MCw3ICszNjAsNyBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6
ZmlyZUNvbnZlcnNpb25SZXF1ZXN0SW1wbChjb25zdCBQcml2YXRlQ2xpYwogICAgIFJFTEVBU0Vf
TE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJBYm91dCB0byBmaXJlIGFuIGF0dHJp
YnV0aW9uIHJlcXVlc3QuIik7CiAgICAgbV9jbGllbnQtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VMZXZlbDo6TG9nLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEFib3V0IHRv
IGZpcmUgYW4gYXR0cmlidXRpb24gcmVxdWVzdC4iX3MpOwogCi0gICAgbV9jbGllbnQtPmxvYWRG
cm9tTmV0d29yayhXVEZNb3ZlKGF0dHJpYnV0aW9uVVJMKSwgYXR0cmlidXRpb24uYXR0cmlidXRp
b25SZXBvcnRKU09OKCksIHBjbURhdGFDYXJyaWVkLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigq
dGhpcyksIHRoaXNdKGF1dG8mIGVycm9yLCBhdXRvJiByZXNwb25zZSwgYXV0byYpIHsKKyAgICBQ
Q006Ok5ldHdvcmtMb2FkZXI6OnN0YXJ0KFdURk1vdmUoYXR0cmlidXRpb25VUkwpLCBhdHRyaWJ1
dGlvbi5hdHRyaWJ1dGlvblJlcG9ydEpTT04oKSwgcGNtRGF0YUNhcnJpZWQsIFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpc10oYXV0byYgZXJyb3IsIGF1dG8mIHJlc3BvbnNlLCBh
dXRvJikgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50TmV0d29ya0xvYWRlci5jcHAKaW5kZXggZWUyZGQ2ZGVmNzIwNjMyMDVmZDg0
MTU5ZjcwNTkyZWU1OTFlZDBjZi4uNDVhMDVlZTFhYjM2ZWUxYTdkODQ0NzdmZmExMTY0NGI1OTg4
Zjk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmNwcApAQCAtMjYsMTIzICsyNiwy
MCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVt
ZW50TmV0d29ya0xvYWRlci5oIgogCi0jaW5jbHVkZSAiTmV0d29ya0xvYWQuaCIKLSNpbmNsdWRl
ICJOZXR3b3JrU2Vzc2lvbi5oIgotI2luY2x1ZGUgPFdlYkNvcmUvSFRUUEhlYWRlclZhbHVlcy5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvVGV4dFJlc291cmNlRGVjb2Rlci5oPgotCi0jaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK25hbWVzcGFjZSBQQ00gewogCi1zdGF0aWMg
TmV0d29ya0xvYWRQYXJhbWV0ZXJzIGdlbmVyYXRlTmV0d29ya0xvYWRQYXJhbWV0ZXJzKFVSTCYm
IHVybCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBqc29uUGF5bG9hZCwgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVkIHBjbURhdGFDYXJyaWVkKQorI2lmICFQTEFURk9STShD
T0NPQSkKK3ZvaWQgTmV0d29ya0xvYWRlcjo6c3RhcnQoVVJMJiYsIFJlZlB0cjxKU09OOjpPYmpl
Y3Q+JiYsIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZCwgQ2FsbGJhY2sm
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBTdHJpbmcgaHR0cE1ldGhvZCA9IGpzb25QYXls
b2FkID8gIlBPU1QiX3MgOiAiR0VUIl9zOwotCi0gICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qg
eyBXVEZNb3ZlKHVybCkgfTsKLSAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QoaHR0cE1ldGhvZCk7
Ci0gICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNhY2hlQ29u
dHJvbCwgV2ViQ29yZTo6SFRUUEhlYWRlclZhbHVlczo6bWF4QWdlMCgpKTsKLSAgICBpZiAoanNv
blBheWxvYWQpIHsKLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQQ29udGVudFR5cGUoV2ViQ29yZTo6
SFRUUEhlYWRlclZhbHVlczo6YXBwbGljYXRpb25KU09OQ29udGVudFR5cGUoKSk7Ci0gICAgICAg
IHJlcXVlc3Quc2V0SFRUUEJvZHkoV2ViQ29yZTo6Rm9ybURhdGE6OmNyZWF0ZShqc29uUGF5bG9h
ZC0+dG9KU09OU3RyaW5nKCkudXRmOCgpKSk7Ci0gICAgfQotCi0gICAgTmV0d29ya0xvYWRQYXJh
bWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOwotICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1
ZXN0OwotICAgIGxvYWRQYXJhbWV0ZXJzLnBhcmVudFBJRCA9IHByZXNlbnRpbmdBcHBsaWNhdGlv
blBJRCgpOwotICAgIGxvYWRQYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gU3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3k6OkVwaGVtZXJhbFN0YXRlbGVzczsKLSAgICBsb2FkUGFyYW1l
dGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0ID0gdHJ1ZTsKLSAg
ICBsb2FkUGFyYW1ldGVycy5wY21EYXRhQ2FycmllZCA9IHBjbURhdGFDYXJyaWVkOwotCi0gICAg
cmV0dXJuIGxvYWRQYXJhbWV0ZXJzOworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgY29tcGxl
dGlvbkhhbmRsZXIoeyB9LCB7IH0sIHsgfSk7CiB9CisjZW5kaWYKIAotdm9pZCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI6OnN0YXJ0KE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9u
LCBVUkwmJiB1cmwsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYganNvblBheWxvYWQsIFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZCBwY21EYXRhQ2FycmllZCwgQ2FsbGJhY2sm
JiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBhdXRvIHBhcmFtZXRlcnMgPSBnZW5lcmF0ZU5l
dHdvcmtMb2FkUGFyYW1ldGVycyhXVEZNb3ZlKHVybCksIFdURk1vdmUoanNvblBheWxvYWQpLCBw
Y21EYXRhQ2FycmllZCk7Ci0gICAgYXV0byBsb2FkZXIgPSBzdGQ6OnVuaXF1ZV9wdHI8UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyPihuZXcgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnROZXR3b3JrTG9hZGVyKHNlc3Npb24sIFdURk1vdmUocGFyYW1ldGVycyksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKSk7Ci0gICAgc2Vzc2lvbi5hZGRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE5ldHdvcmtMb2FkZXIoV1RGTW92ZShsb2FkZXIpKTsKLX0KLQotUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnROZXR3b3JrTG9hZGVyOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIo
TmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtMb2FkUGFyYW1ldGVycyYmIHBhcmFtZXRl
cnMsIENhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCi0gICAgOiBtX3Nlc3Npb24obWFrZVdl
YWtQdHIoc2Vzc2lvbikpCi0gICAgLCBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKQotewotICAgIG1fbmV0d29ya0xvYWQgPSBtYWtlVW5pcXVlPE5ldHdvcmtM
b2FkPigqdGhpcywgbnVsbHB0ciwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgKm1fc2Vzc2lvbik7Ci0g
ICAgbV9uZXR3b3JrTG9hZC0+c3RhcnQoKTsKLX0KLQotUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRO
ZXR3b3JrTG9hZGVyOjp+UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKCkKLXsK
LSAgICBjYW5jZWwoKTsKLX0KLQotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtM
b2FkZXI6OmZhaWwoUmVzb3VyY2VFcnJvciYmIGVycm9yKQotewotICAgIGlmICghbV9jb21wbGV0
aW9uSGFuZGxlcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jb21wbGV0aW9uSGFuZGxlcihX
VEZNb3ZlKGVycm9yKSwgeyB9LCBudWxscHRyKTsKLSAgICBkaWRDb21wbGV0ZSgpOwotfQotCi12
b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6Y2FuY2VsKCkKLXsKLSAg
ICBmYWlsKFJlc291cmNlRXJyb3IgeyBSZXNvdXJjZUVycm9yOjpUeXBlOjpDYW5jZWxsYXRpb24g
fSk7Ci19Ci0KLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjp3aWxs
U2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmLCBSZXNvdXJjZVJlcXVlc3Qm
JiwgUmVzb3VyY2VSZXNwb25zZSYmKQotewotICAgIGNhbmNlbCgpOwotfQotCi12b2lkIFByaXZh
dGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291
cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBs
ZXRpb25IYW5kbGVyKQotewotICAgIGlmICghTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRK
U09OTUlNRVR5cGUocmVzcG9uc2UubWltZVR5cGUoKSkpIHsKLSAgICAgICAgZmFpbCh7IGVycm9y
RG9tYWluV2ViS2l0SW50ZXJuYWwsIDAsIHJlc3BvbnNlLnVybCgpLCAiTUlNRSBUeXBlIGlzIG5v
dCBhIEpTT04gTUlNRSB0eXBlIl9zIH0pOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xp
Y3lBY3Rpb246Oklnbm9yZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtX3Jlc3Bv
bnNlID0gV1RGTW92ZShyZXNwb25zZSk7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5QWN0
aW9uOjpVc2UpOwotfQotCi12b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRl
cjo6ZGlkUmVjZWl2ZUJ1ZmZlcihSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlciwgaW50IHJlcG9y
dGVkRW5jb2RlZERhdGFMZW5ndGgpCi17Ci0gICAgaWYgKCFtX2RlY29kZXIpCi0gICAgICAgIG1f
ZGVjb2RlciA9IFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZSgiYXBwbGljYXRpb24vanNvbiJf
cywgbV9yZXNwb25zZS50ZXh0RW5jb2RpbmdOYW1lKCkuaXNFbXB0eSgpID8gV2ViQ29yZTo6VGV4
dEVuY29kaW5nKCJVVEYtOCIpIDogV2ViQ29yZTo6VGV4dEVuY29kaW5nKG1fcmVzcG9uc2UudGV4
dEVuY29kaW5nTmFtZSgpKSk7Ci0KLSAgICBpZiAoYXV0byBzaXplID0gYnVmZmVyLT5zaXplKCkp
Ci0gICAgICAgIG1fanNvblN0cmluZy5hcHBlbmQobV9kZWNvZGVyLT5kZWNvZGUoYnVmZmVyLT5k
YXRhKCksIHNpemUpKTsKLX0KLQotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtM
b2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoY29uc3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNz
JikKLXsKLSAgICBpZiAobV9kZWNvZGVyKQotICAgICAgICBtX2pzb25TdHJpbmcuYXBwZW5kKG1f
ZGVjb2Rlci0+Zmx1c2goKSk7Ci0KLSAgICBpZiAoYXV0byBqc29uVmFsdWUgPSBKU09OOjpWYWx1
ZTo6cGFyc2VKU09OKG1fanNvblN0cmluZy50b1N0cmluZygpKSkKLSAgICAgICAgbV9jb21wbGV0
aW9uSGFuZGxlcih7IH0sIG1fcmVzcG9uc2UsIGpzb25WYWx1ZS0+YXNPYmplY3QoKSk7Ci0gICAg
ZWxzZQotICAgICAgICBtX2NvbXBsZXRpb25IYW5kbGVyKHsgfSwgbV9yZXNwb25zZSwgbnVsbHB0
cik7Ci0KLSAgICBkaWRDb21wbGV0ZSgpOwotfQotCi12b2lkIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50TmV0d29ya0xvYWRlcjo6ZGlkRmFpbExvYWRpbmcoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IpCi17Ci0gICAgZmFpbChSZXNvdXJjZUVycm9yKGVycm9yKSk7Ci19Ci0KLXZvaWQgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjpkaWRDb21wbGV0ZSgpCi17Ci0gICAgbV9u
ZXR3b3JrTG9hZCA9IG51bGxwdHI7Ci0gICAgaWYgKG1fc2Vzc2lvbikKLSAgICAgICAgbV9zZXNz
aW9uLT5yZW1vdmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIodGhpcyk7Ci19
Cit9IC8vIG5hbWVzcGFjZSBQQ00KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE5ldHdvcmtMb2FkZXIuaAppbmRleCAxZTM5ZWU1MmY1MzEzZjNmMTZiZmExZjJhMWUyZDE1Nzcw
NjFmOGYwLi4zMDMzMDc3YTVmOTQzYzQ2NmU2NGFiMTY3NDI1MTczZGIwNTQxZWNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnROZXR3b3JrTG9hZGVyLmgKQEAgLTI1LDQ5ICsyNSwyNSBAQAogCiAjcHJhZ21hIG9u
Y2UKIAotI2luY2x1ZGUgIk5ldHdvcmtMb2FkLmgiCi0jaW5jbHVkZSAiTmV0d29ya0xvYWRDbGll
bnQuaCIKLSNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlIDxXZWJD
b3JlL1RleHRSZXNvdXJjZURlY29kZXIuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRs
ZXIuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVz
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFJlc291cmNlRXJyb3I7CitjbGFzcyBS
ZXNvdXJjZVJlc3BvbnNlOworfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgTmV0d29y
a1Nlc3Npb247CituYW1lc3BhY2UgUENNIHsKIAotY2xhc3MgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnROZXR3b3JrTG9hZGVyIGZpbmFsIDogcHVibGljIE5ldHdvcmtMb2FkQ2xpZW50IHsKK2NsYXNz
IE5ldHdvcmtMb2FkZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
ICAgIHVzaW5nIENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0
IFJlZlB0cjxKU09OOjpPYmplY3Q+Jik+OwotICAgIHN0YXRpYyB2b2lkIHN0YXJ0KE5ldHdvcmtT
ZXNzaW9uJiwgVVJMJiYsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYsIFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZCwgQ2FsbGJhY2smJik7Ci0KLSAgICB+UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKCk7Ci0KLXByaXZhdGU6Ci0gICAgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29y
a0xvYWRQYXJhbWV0ZXJzJiYsIENhbGxiYWNrJiYpOwotCi0gICAgLy8gTmV0d29ya0xvYWRDbGll
bnQuCi0gICAgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1
bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KSBmaW5hbCB7IH0KLSAgICBib29s
IGlzU3luY2hyb25vdXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQotICAgIGJvb2wg
aXNBbGxvd2VkVG9Bc2tVc2VyRm9yQ3JlZGVudGlhbHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBm
YWxzZTsgfQotICAgIHZvaWQgd2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVkaXJlY3RSZXF1ZXN0
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSkgZmluYWw7Ci0g
ICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBS
ZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwotICAgIHZvaWQgZGlkUmVjZWl2ZUJ1
ZmZlcihSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmLCBpbnQgcmVwb3J0ZWRFbmNvZGVkRGF0
YUxlbmd0aCkgZmluYWw7Ci0gICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGNvbnN0IFdlYkNvcmU6
Ok5ldHdvcmtMb2FkTWV0cmljcyYpIGZpbmFsOwotICAgIHZvaWQgZGlkRmFpbExvYWRpbmcoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIGZpbmFsOwotCi0gICAgdm9pZCBmYWlsKFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImJik7Ci0gICAgdm9pZCBjYW5jZWwoKTsKLSAgICB2b2lkIGRpZENv
bXBsZXRlKCk7Ci0KLSAgICBXZWFrUHRyPE5ldHdvcmtTZXNzaW9uPiBtX3Nlc3Npb247Ci0gICAg
c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtMb2FkPiBtX25ldHdvcmtMb2FkOwotICAgIENhbGxiYWNr
IG1fY29tcGxldGlvbkhhbmRsZXI7Ci0KLSAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIG1f
cmVzcG9uc2U7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlRleHRSZXNvdXJjZURlY29kZXI+IG1fZGVj
b2RlcjsKLSAgICBTdHJpbmdCdWlsZGVyIG1fanNvblN0cmluZzsKKyAgICBzdGF0aWMgdm9pZCBz
dGFydChVUkwmJiwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVkLCBDYWxsYmFjayYmKTsKIH07CiAKK30gLy8gbmFt
ZXNwYWNlIFBDTQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50TmV0d29ya0xvYWRlckNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkNzM2NTViYmExMDQw
OTViMjIzZmI0NDgzZTk2MzZlZmQzYTgyMjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlckNvY29hLm1tCkBAIC0wLDAgKzEsMTIyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE5ldHdvcmtMb2FkZXIuaCIKKworI2ltcG9ydCAiTmV0d29ya1Nlc3Npb25Db2NvYS5o
IgorI2ltcG9ydCA8V2ViQ29yZS9IVFRQSGVhZGVyVmFsdWVzLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L01JTUVUeXBlUmVnaXN0cnkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+
CisjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworI2lmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvTmV0d29ya0RhdGFUYXNrQ29jb2FBZGRp
dGlvbnMuaD4KKyNlbHNlCitzdGF0aWMgdm9pZCBwcm9jZXNzUENNUmVxdWVzdChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJpZWQsIE5TTXV0YWJsZVVSTFJlcXVl
c3QgKikgeyB9CisjZW5kaWYKKworQGludGVyZmFjZSBXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGVB
bGxvd2luZ09ubHlOb25SZWRpcmVjdGVkSlNPTiA6IE5TT2JqZWN0IDxOU1VSTFNlc3Npb25EYXRh
RGVsZWdhdGU+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS05ldHdvcmtTZXNzaW9uRGVsZWdh
dGVBbGxvd2luZ09ubHlOb25SZWRpcmVjdGVkSlNPTgorCistICh2b2lkKVVSTFNlc3Npb246KE5T
VVJMU2Vzc2lvbiAqKXNlc3Npb24gdGFzazooTlNVUkxTZXNzaW9uVGFzayAqKXRhc2sgd2lsbFBl
cmZvcm1IVFRQUmVkaXJlY3Rpb246KE5TSFRUUFVSTFJlc3BvbnNlICopcmVzcG9uc2UgbmV3UmVx
dWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiko
TlNVUkxSZXF1ZXN0ICopKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgY29tcGxldGlvbkhhbmRs
ZXIobmlsKTsKK30KKworLSAodm9pZClVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilzZXNzaW9u
IGRhdGFUYXNrOihOU1VSTFNlc3Npb25EYXRhVGFzayAqKWRhdGFUYXNrIGRpZFJlY2VpdmVSZXNw
b25zZTooTlNVUkxSZXNwb25zZSAqKXJlc3BvbnNlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkIChe
KShOU1VSTFNlc3Npb25SZXNwb25zZURpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uKSljb21wbGV0aW9u
SGFuZGxlcgoreworICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEpTT05NSU1F
VHlwZShyZXNwb25zZS5NSU1FVHlwZSkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxl
cihOU1VSTFNlc3Npb25SZXNwb25zZUFsbG93KTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VS
TFNlc3Npb25SZXNwb25zZUNhbmNlbCk7Cit9CisKKy0gKHZvaWQpVVJMU2Vzc2lvbjooTlNVUkxT
ZXNzaW9uICopc2Vzc2lvbiB0YXNrOihOU1VSTFNlc3Npb25UYXNrICopdGFzayBkaWRSZWNlaXZl
Q2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlIGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlRGlzcG9zaXRp
b24gZGlzcG9zaXRpb24sIE5TVVJMQ3JlZGVudGlhbCAqY3JlZGVudGlhbCkpY29tcGxldGlvbkhh
bmRsZXIKK3sKKyAgICBpZiAoW2NoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRp
b25NZXRob2QgaXNFcXVhbFRvU3RyaW5nOk5TVVJMQXV0aGVudGljYXRpb25NZXRob2RTZXJ2ZXJU
cnVzdF0KKyAgICAgICAgJiYgTmV0d29ya1Nlc3Npb25Db2NvYTo6YWxsb3dzU3BlY2lmaWNIVFRQ
U0NlcnRpZmljYXRlRm9ySG9zdChjaGFsbGVuZ2UpKQorICAgICAgICByZXR1cm4gY29tcGxldGlv
bkhhbmRsZXIoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZVVzZUNyZWRlbnRpYWwsIFtOU1VSTENy
ZWRlbnRpYWwgY3JlZGVudGlhbEZvclRydXN0OmNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2Uuc2Vy
dmVyVHJ1c3RdKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxl
bmdlUGVyZm9ybURlZmF1bHRIYW5kbGluZywgbmlsKTsKK30KKworQGVuZAorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworbmFtZXNwYWNlIFBDTSB7CisKK2VudW0gTG9hZFRhc2tJZGVudGlmaWVyVHlw
ZSB7IH07Cit1c2luZyBMb2FkVGFza0lkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPExvYWRU
YXNrSWRlbnRpZmllclR5cGU+Oworc3RhdGljIEhhc2hNYXA8TG9hZFRhc2tJZGVudGlmaWVyLCBS
ZXRhaW5QdHI8TlNVUkxTZXNzaW9uRGF0YVRhc2s+PiYgdGFza01hcCgpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8TG9hZFRhc2tJZGVudGlmaWVyLCBSZXRhaW5QdHI8TlNV
UkxTZXNzaW9uRGF0YVRhc2s+Pj4gbWFwOworICAgIHJldHVybiBtYXAuZ2V0KCk7Cit9CisKK3N0
YXRpYyBOU1VSTFNlc3Npb24gKnN0YXRlbGVzc1Nlc3Npb25XaXRob3V0UmVkaXJlY3RzKCkKK3sK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPFdLTmV0d29ya1Nlc3Npb25EZWxl
Z2F0ZUFsbG93aW5nT25seU5vblJlZGlyZWN0ZWRKU09OPj4gZGVsZWdhdGUgPSBhZG9wdE5TKFtX
S05ldHdvcmtTZXNzaW9uRGVsZWdhdGVBbGxvd2luZ09ubHlOb25SZWRpcmVjdGVkSlNPTiBuZXdd
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPE5TVVJMU2Vzc2lvbj4+IHNl
c3Npb24gPSBbJl0geworICAgICAgICBOU1VSTFNlc3Npb25Db25maWd1cmF0aW9uICpjb25maWd1
cmF0aW9uID0gW05TVVJMU2Vzc2lvbkNvbmZpZ3VyYXRpb24gZXBoZW1lcmFsU2Vzc2lvbkNvbmZp
Z3VyYXRpb25dOworICAgICAgICBjb25maWd1cmF0aW9uLkhUVFBDb29raWVBY2NlcHRQb2xpY3kg
PSBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZlcjsKKyAgICAgICAgY29uZmlndXJhdGlvbi5V
UkxDcmVkZW50aWFsU3RvcmFnZSA9IG5pbDsKKyAgICAgICAgY29uZmlndXJhdGlvbi5VUkxDYWNo
ZSA9IG5pbDsKKyAgICAgICAgY29uZmlndXJhdGlvbi5fc2hvdWxkU2tpcFByZWZlcnJlZENsaWVu
dENlcnRpZmljYXRlTG9va3VwID0gWUVTOworICAgICAgICByZXR1cm4gYWRvcHROUyhbTlNVUkxT
ZXNzaW9uIHNlc3Npb25XaXRoQ29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uIGRlbGVnYXRlOmRl
bGVnYXRlLmdldCgpLmdldCgpIGRlbGVnYXRlUXVldWU6W05TT3BlcmF0aW9uUXVldWUgbWFpblF1
ZXVlXV0pOworICAgIH0oKTsKKyAgICByZXR1cm4gc2Vzc2lvbi5nZXQoKS5nZXQoKTsKK30KKwor
dm9pZCBOZXR3b3JrTG9hZGVyOjpzdGFydChVUkwmJiB1cmwsIFJlZlB0cjxKU09OOjpPYmplY3Q+
JiYganNvblBheWxvYWQsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQY21EYXRh
Q2FycmllZCBwY21EYXRhQ2FycmllZCwgQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBhdXRv
IHJlcXVlc3QgPSBhZG9wdE5TKFtbTlNNdXRhYmxlVVJMUmVxdWVzdCBhbGxvY10gaW5pdFdpdGhV
Ukw6dXJsXSk7CisgICAgW3JlcXVlc3Qgc2V0VmFsdWU6V2ViQ29yZTo6SFRUUEhlYWRlclZhbHVl
czo6bWF4QWdlMCgpIGZvckhUVFBIZWFkZXJGaWVsZDpAIkNhY2hlLUNvbnRyb2wiXTsKKyAgICBp
ZiAoanNvblBheWxvYWQpIHsKKyAgICAgICAgcmVxdWVzdC5nZXQoKS5IVFRQTWV0aG9kID0gQCJQ
T1NUIjsKKyAgICAgICAgW3JlcXVlc3Qgc2V0VmFsdWU6V2ViQ29yZTo6SFRUUEhlYWRlclZhbHVl
czo6YXBwbGljYXRpb25KU09OQ29udGVudFR5cGUoKSBmb3JIVFRQSGVhZGVyRmllbGQ6QCJDb250
ZW50LVR5cGUiXTsKKyAgICAgICAgYXV0byBib2R5ID0ganNvblBheWxvYWQtPnRvSlNPTlN0cmlu
ZygpLnV0ZjgoKTsKKyAgICAgICAgcmVxdWVzdC5nZXQoKS5IVFRQQm9keSA9IGFkb3B0TlMoW1tO
U0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6Ym9keS5kYXRhKCkgbGVuZ3RoOmJvZHkubGVuZ3Ro
KCldKS5nZXQoKTsKKyAgICB9CisKKyAgICBwcm9jZXNzUENNUmVxdWVzdChwY21EYXRhQ2Fycmll
ZCwgcmVxdWVzdC5nZXQoKSk7CisKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBMb2FkVGFza0lkZW50
aWZpZXI6OmdlbmVyYXRlKCk7CisgICAgTlNVUkxTZXNzaW9uRGF0YVRhc2sgKnRhc2sgPSBbc3Rh
dGVsZXNzU2Vzc2lvbldpdGhvdXRSZWRpcmVjdHMoKSBkYXRhVGFza1dpdGhSZXF1ZXN0OnJlcXVl
c3QuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtjYWxsYmFjayA9IFdURk1v
dmUoY2FsbGJhY2spLCBpZGVudGlmaWVyXShOU0RhdGEgKmRhdGEsIE5TVVJMUmVzcG9uc2UgKnJl
c3BvbnNlLCBOU0Vycm9yICplcnJvcikgbXV0YWJsZSB7CisgICAgICAgIHRhc2tNYXAoKS5yZW1v
dmUoaWRlbnRpZmllcik7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIHJldHVybiBj
YWxsYmFjayhlcnJvciwgeyB9LCB7IH0pOworICAgICAgICBpZiAoYXV0byBqc29uVmFsdWUgPSBK
U09OOjpWYWx1ZTo6cGFyc2VKU09OKFN0cmluZzo6ZnJvbVVURjgoc3RhdGljX2Nhc3Q8Y29uc3Qg
TENoYXIqPihkYXRhLmJ5dGVzKSwgZGF0YS5sZW5ndGgpKSkKKyAgICAgICAgICAgIHJldHVybiBj
YWxsYmFjayh7IH0sIHJlc3BvbnNlLCBqc29uVmFsdWUtPmFzT2JqZWN0KCkpOworICAgICAgICBj
YWxsYmFjayh7IH0sIHJlc3BvbnNlLCBudWxscHRyKTsKKyAgICB9KS5nZXQoKV07CisgICAgW3Rh
c2sgcmVzdW1lXTsKKyAgICB0YXNrTWFwKCkuYWRkKGlkZW50aWZpZXIsIHRhc2spOworfQorCit9
IC8vIG5hbWVzcGFjZSBQQ00KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29h
LmgKaW5kZXggNGViYmQ5MGNjNjQ1ZGY1ZjlkZGJiODYwZDA4YWEzZWIwNTNjMmZmNi4uMzkxNDg5
ZDY0NDVmNDZjYTdhN2IxZjg3OGZiMWZhMGQ5ZTgzYjdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaApA
QCAtMjksMTAgKzI5LDEyIEBACiAjaW5jbHVkZSAiTmV0d29ya0RhdGFUYXNrLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrTG9h
ZE1ldHJpY3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg+
CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiBPQkpDX0NMQVNTIE5TSFRUUENvb2tpZVN0
b3JhZ2U7CiBPQkpDX0NMQVNTIE5TVVJMU2Vzc2lvbkRhdGFUYXNrOworT0JKQ19DTEFTUyBOU011
dGFibGVVUkxSZXF1ZXN0OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZWdpc3RyYWJs
ZURvbWFpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCmluZGV4IDY4NzA4NTE5MjUyODg1NzFiZDZjNzYz
YjNlNjAzMTNkOTI2MGU5OGMuLjdmOTg4OGRhMjY2MmU2NmQ5NzkyYTEzN2JiYWVmZTg3YzBlNTI3
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtNTcsNyArNTcsNiBAQAogI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvTmV0d29ya0RhdGFUYXNr
Q29jb2FBZGRpdGlvbnMuaD4KICNlbHNlCi1zdGF0aWMgdm9pZCBwcm9jZXNzUENNUmVxdWVzdChX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJpZWQsIE5TTXV0YWJs
ZVVSTFJlcXVlc3QgKikgeyB9CiBzdGF0aWMgdm9pZCBvdmVycmlkZUF0dHJpYnV0aW9uQ29udGV4
dChOU011dGFibGVVUkxSZXF1ZXN0ICopIHsgfQogI2VuZGlmCiAKQEAgLTM0Nyw5ICszNDYsNiBA
QCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Np
b24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVAogCiAgICAgb3ZlcnJpZGVBdHRyaWJ1dGlvbkNvbnRl
eHQobXV0YWJsZVJlcXVlc3QuZ2V0KCkpOwogCi0gICAgaWYgKHBhcmFtZXRlcnMucGNtRGF0YUNh
cnJpZWQpCi0gICAgICAgIHByb2Nlc3NQQ01SZXF1ZXN0KCpwYXJhbWV0ZXJzLnBjbURhdGFDYXJy
aWVkLCBtdXRhYmxlUmVxdWVzdC5nZXQoKSk7Ci0KICAgICBuc1JlcXVlc3QgPSBtdXRhYmxlUmVx
dWVzdDsKIAogI2lmIEVOQUJMRShBUFBfUFJJVkFDWV9SRVBPUlQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQKaW5kZXggNzhmYjQyNDEyMjNiMDMyNzVhOTY2ZDlmNzVhYzAwZmNhNDlhN2Y2ZC4uODkxMzgz
NGY2YmI1ZjkzOWU3MjBiMDllZmNiMDJjOTU0NGY4NGFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dApAQCAtNDEsNiArNDEsOCBAQCBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvY29jb2EvRG93bmxv
YWRDb2NvYS5tbQogTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9EYWVtb24vRGFlbW9u
RW50cnlQb2ludC5tbQogTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNl
L05ldHdvcmtTZXJ2aWNlRW50cnlQb2ludC5tbQogCitOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJD
b2NvYS5tbQorCiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL2lvcy9Mb2NhbFN0b3JhZ2VEYXRh
YmFzZVRyYWNrZXJJT1MubW0KIAogTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzSU9TLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBkNmU2OWY4YWYxOGU5ZTQ2NmVlOTM2Mjg5ZGRlMjk2ZWZlODFh
NjNmLi4wMDM3YzIxMTY2ODAxYjMzMmQwMWU3ODUxYWYxNjY2MDA4MTljMDBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ1NTMsNiAr
NDU1Myw3IEBACiAJCTVDQjkzMEJGMjZFMDU0MkUwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
Q0I5MzBDMDI2RTA1NDJGMDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJ
bXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByaXZhdGVDbGlj
a01lYXN1cmVtZW50Q2xpZW50SW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVDQjkzMEMxMjZFMDU0QjgwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVu
dEltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRDbGllbnRJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDQjkz
MEYyMjZFN0VFRTAwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2Fk
ZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFByaXZh
dGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1Q0JDOUI4OTFDNjUyNEE1MDBBOEZEQ0YgLyogTmV0d29ya0RhdGFUYXNr
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtEYXRhVGFzay5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0JDOUI4QjFDNjUyNTczMDBBOEZEQ0YgLyog
TmV0d29ya0RhdGFUYXNrQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBOZXR3b3JrRGF0YVRhc2tDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNUNCRTkwOEYyNkQ3RkI2MjAwNUEyRTk1IC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50
RGVidWdJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByaXZhdGVDbGlj
a01lYXN1cmVtZW50RGVidWdJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05
MjU2LDYgKzkyNTcsNyBAQAogCQk1QzAxQkMzNTI2RDQ2QUQ0MDBGRUI0MkYgLyogUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCTVDQjkzMEYxMjZFN0VFODkwMDMyQjFDMCAvKiBjb2NvYSAqLywKIAkJCQk1Q0I5MzBC
RjI2RTA1NDJFMDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnQuaCAqLywK
IAkJCQk1Q0I5MzBDMDI2RTA1NDJGMDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRD
bGllbnRJbXBsLmNwcCAqLywKIAkJCQk1Q0I5MzBDMTI2RTA1NEI4MDAzMkIxQzAgLyogUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJbXBsLmggKi8sCkBAIC05MzQ5LDYgKzkzNTEsMTQgQEAK
IAkJCXBhdGggPSBDb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTVD
QjkzMEYxMjZFN0VFODkwMDMyQjFDMCAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3Vw
OworCQkJY2hpbGRyZW4gPSAoCisJCQkJNUNCOTMwRjIyNkU3RUVFMDAwMzJCMUMwIC8qIFByaXZh
dGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlckNvY29hLm1tICovLAorCQkJKTsKKwkJCXBh
dGggPSBjb2NvYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTZCRTk2OUJG
MUU1NEQ0NTIwMDhCNzQ4MyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437544</attachid>
            <date>2021-09-07 12:53:54 -0700</date>
            <delta_ts>2021-09-07 13:16:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230015-20210907125353.patch</filename>
            <type>text/plain</type>
            <size>29255</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEzZGEzNThjZGM5YjZiZjYz
OGFkODZiYzM2YzQ4MWM3YmU2ZmVjYjMuLjc2Yzg5ZGNmNjYyOGIyMTRhYWQ5NjU2ZTgxMTM4MWJj
NDczOTQ5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjEtMDktMDcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXBsYWNlIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6c3RhcnQgd2l0aCBhbiBpbXBsZW1l
bnRhdGlvbiB0aGF0IGRvZXNuJ3QgbmVlZCBOZXR3b3JrU2Vzc2lvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMDE1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBuZWVkZWQgdG8gcnVuIHRo
aXMgY29kZSBpbiBhIHByb2Nlc3MgdGhhdCBkb2Vzbid0IGhhdmUgTmV0d29ya1Nlc3Npb24sIHdo
aWNoIGlzIGEgY2xhc3MgdGllZCBjbG9zZWx5IHRvIFdLV2Vic2l0ZURhdGFTdG9yZS4KKyAgICAg
ICAgVGhpcyByZXBsYWNlcyBpdCB3aXRoIGEgc2ltcGxlIGltcGxlbWVudGF0aW9uIHRoYXQgZG9l
cyB0aGUgc2FtZSB0aGluZ3M6CisgICAgICAgIDEuIFVzZXMgYW4gZXBoZW1lcmFsIHN0YXRlbGVz
cyBzZXNzaW9uIHRoYXQgZG9lc24ndCBhY2NlcHQgY29va2llcyBvciB1c2UgY3JlZGVudGlhbHMu
CisgICAgICAgIDIuIERvZXMgbm90IGFsbG93IHJlZGlyZWN0cy4KKyAgICAgICAgMy4gT25seSBh
Y2NlcHRzIEpTT04gbWltZSB0eXBlcy4KKyAgICAgICAgNC4gQ2FsbHMgcHJvY2Vzc1BDTVJlcXVl
c3QKKworICAgICAgICBXZSBzdGlsbCBuZWVkIHRvIGNhbGwgTmV0d29ya1Nlc3Npb25Db2NvYTo6
YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdCB0byBnZXQgdGVzdHMgdG8gcGFz
cy4KKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtTZXNzaW9uOjphZGRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6cmVtb3ZlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVu
dC5oOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNsaWVudDo6fkNsaWVudCk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpDbGllbnRJbXBsOjps
b2FkRnJvbU5ldHdvcmspOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6Z2V0VG9rZW5QdWJsaWNLZXkpOgorICAgICAgICAoV2ViS2l0
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmdldFNpZ25lZFVubGlua2FibGVUb2tl
bik6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Zmly
ZUNvbnZlcnNpb25SZXF1ZXN0SW1wbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpOZXR3b3JrTG9hZGVyOjpzdGFydCk6CisgICAgICAg
IChXZWJLaXQ6OmdlbmVyYXRlTmV0d29ya0xvYWRQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjpzdGFydCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29y
a0xvYWRlcjo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjp+
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjpmYWlsKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9h
ZGVyOjpjYW5jZWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE5ldHdvcmtMb2FkZXI6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI6
OmRpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6ZGlkUmVjZWl2ZUJ1ZmZlcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6
ZGlkRmluaXNoTG9hZGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6ZGlkRmFpbExvYWRpbmcpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI6OmRpZENv
bXBsZXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaDoKKyAgICAg
ICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyQ29jb2Eu
bW06IEFkZGVkLgorICAgICAgICAocHJvY2Vzc1BDTVJlcXVlc3QpOgorICAgICAgICAoLVtXS05l
dHdvcmtTZXNzaW9uRGVsZWdhdGVBbGxvd2luZ09ubHlOb25SZWRpcmVjdGVkSlNPTiBVUkxTZXNz
aW9uOnRhc2s6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb246bmV3UmVxdWVzdDpjb21wbGV0aW9u
SGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlQWxsb3dpbmdP
bmx5Tm9uUmVkaXJlY3RlZEpTT04gVVJMU2Vzc2lvbjpkYXRhVGFzazpkaWRSZWNlaXZlUmVzcG9u
c2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25EZWxl
Z2F0ZUFsbG93aW5nT25seU5vblJlZGlyZWN0ZWRKU09OIFVSTFNlc3Npb246dGFzazpkaWRSZWNl
aXZlQ2hhbGxlbmdlOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoV2ViS2l0OjpQQ006
OnRhc2tNYXApOgorICAgICAgICAoV2ViS2l0OjpQQ006OnN0YXRlbGVzc1Nlc3Npb25XaXRob3V0
UmVkaXJlY3RzKToKKyAgICAgICAgKFdlYktpdDo6UENNOjpOZXR3b3JrTG9hZGVyOjpzdGFydCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0Nv
Y29hKToKKyAgICAgICAgKHByb2Nlc3NQQ01SZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBT
b3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDIxLTA5LTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgSW1wbGVtZW50IG9yaWdpbiBwYXJ0aXRpb25pbmcgKHRvcC1vcmlnaW4vZnJhbWUtb3Jp
Z2luKSBmb3IgQnJvYWRjYXN0Q2hhbm5lbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKaW5kZXggMDRjYjAzOTBjOWNmZDg2Yjkx
MWQ0OGY5YWY5Y2QxNzJlOGIzYTczNy4uNzE5YzM5ZGIwNGYwYjMwOGRjMWY1YTJkMDQ4ZjBkZTFk
NDk5YmZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkUGFyYW1ldGVycy5oCkBAIC02Nyw3ICs2Nyw2IEBAIHB1YmxpYzoKICAgICBQcmVjb25u
ZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSB7IFByZWNvbm5lY3RPbmx5OjpObyB9OwogICAg
IHN0ZDo6b3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5VHJh
Y2tlcjsKICAgICBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluIHsgTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW46Ok5v
IH07Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
UGNtRGF0YUNhcnJpZWQ+IHBjbURhdGFDYXJyaWVkOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCmluZGV4IDMwNDFkNGY4YTMwNzY1MTc5MzM1
ZDFhMDY4ODg1ZDZkOGMwM2ZmMjMuLmY0MWY1NTkwYmQ2ZmZmNzc2ODNjMGM4MjFiMDVjNjZjYWU1
NGExMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCkBAIC0xMjcsNyArMTI3LDYgQEAg
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKICNlbmRpZgogICAgIAogICAgIGVuY29kZXIgPDwgaXNOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbjsKLSAgICBlbmNvZGVyIDw8IHBjbURhdGFDYXJyaWVkOwogfQogCiBz
dGQ6Om9wdGlvbmFsPE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzPiBOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTMyOSwx
MiArMzI4LDYgQEAgc3RkOjpvcHRpb25hbDxOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycz4g
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY28KICAgICBpZiAoIWlzTmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW4pCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgcmVz
dWx0LmlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4gPSAqaXNOYXZpZ2F0aW5nVG9BcHBCb3Vu
ZERvbWFpbjsKLQotICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJpZWQ+PiBwY21EYXRhQ2FycmllZDsKLSAg
ICBkZWNvZGVyID4+IHBjbURhdGFDYXJyaWVkOwotICAgIGlmICghcGNtRGF0YUNhcnJpZWQpCi0g
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmVzdWx0LnBjbURhdGFDYXJyaWVkID0g
KnBjbURhdGFDYXJyaWVkOwogICAgIAogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggZjVhMDYyZDkxYjY0
NzQwOTI5NTNhY2ZiZDJkMDJjOTdjMDg4ODRkYS4uNzBhMWI0OTFiMjQzYWFlZmIzZDI3YmRjYWQw
MGE2MDVlNDI0ZjUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uaApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIk5hdmlnYXRpbmdUb0FwcEJv
dW5kRG9tYWluLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXIuaCIK
ICNpbmNsdWRlICJQcmVmZXRjaENhY2hlLmgiCi0jaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnROZXR3b3JrTG9hZGVyLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2lu
Y2x1ZGUgIlNlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmgiCiAjaW5jbHVkZSAiV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCkBAIC0xNzQsOSArMTczLDYgQEAgcHVibGljOgog
ICAgIEFwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YSYgYXBwUHJpdmFjeVJlcG9ydFRlc3RpbmdE
YXRhKCkgeyByZXR1cm4gbV9hcHBQcml2YWN5UmVwb3J0VGVzdGluZ0RhdGE7IH0KICNlbmRpZgog
Ci0gICAgdm9pZCBhZGRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIoc3RkOjp1
bmlxdWVfcHRyPFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcj4mJiBsb2FkZXIp
IHsgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJzLmFkZChXVEZNb3ZlKGxv
YWRlcikpOyB9Ci0gICAgdm9pZCByZW1vdmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtM
b2FkZXIoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKiBsb2FkZXIpIHsgbV9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJzLnJlbW92ZShsb2FkZXIpOyB9Ci0K
ICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTmV0d29ya1dlYnNpdGVEYXRhKHN0ZDo6b3B0aW9uYWw8
V2FsbFRpbWU+LCBzdGQ6Om9wdGlvbmFsPEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4+PiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsg
Y29tcGxldGlvbkhhbmRsZXIoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGFkZFdlYlBhZ2VOZXR3
b3JrUGFyYW1ldGVycyhXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJQYWdlTmV0d29ya1BhcmFt
ZXRlcnMmJikgeyB9CkBAIC0yNDgsNyArMjQ0LDYgQEAgcHJvdGVjdGVkOgogICAgIEFwcFByaXZh
Y3lSZXBvcnRUZXN0aW5nRGF0YSBtX2FwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YTsKICNlbmRp
ZgogCi0gICAgSGFzaFNldDxzdGQ6OnVuaXF1ZV9wdHI8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRO
ZXR3b3JrTG9hZGVyPj4gbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJzOwog
ICAgIEhhc2hNYXA8V2ViUGFnZVByb3h5SWRlbnRpZmllciwgU3RyaW5nPiBtX2F0dHJpYnV0ZWRC
dW5kbGVJZGVudGlmaWVyRnJvbVBhZ2VJZGVudGlmaWVyczsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnQuaApp
bmRleCBjNjMxNzQ2YjI4MDM3YTlkOWNjY2ZkYjVmNGJkYTRiN2RiZDIzMDhiLi5jYmJmNDllZTE4
ZTA4YzhhOTViYjUyYjMxNDg3ODg2MDUwNGNiMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudC5oCkBAIC00Niw4
ICs0Niw2IEBAIG5hbWVzcGFjZSBQQ00gewogY2xhc3MgQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5DbGllbnQoKSB7IH0KLSAgICB1c2luZyBOZXR3b3JrTG9hZENhbGxiYWNrID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlZlB0cjxKU09OOjpPYmplY3Q+Jik+
OwotICAgIHZpcnR1YWwgdm9pZCBsb2FkRnJvbU5ldHdvcmsoVVJMJiYsIFJlZlB0cjxKU09OOjpP
YmplY3Q+JiYsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2Fycmll
ZCwgTmV0d29ya0xvYWRDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGJyb2FkY2Fz
dENvbnNvbGVNZXNzYWdlKEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmKSA9IDA7CiAg
ICAgdmlydHVhbCBib29sIGZlYXR1cmVFbmFibGVkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwg
Ym9vbCBkZWJ1Z01vZGVFbmFibGVkKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudEltcGwu
Y3BwCmluZGV4IDdlY2QxMzU3ODIxYmQ2MzYyNTRjOGRkZDM2YTJiODcyMWJhMDFkMjAuLjVkZWFm
MDc0ZjhkN2E1MGFmYWZiNGY1MWMyMzYyOTNlOGU1NDlhMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50
SW1wbC5jcHAKQEAgLTM3LDE0ICszNyw2IEBAIENsaWVudEltcGw6OkNsaWVudEltcGwoTmV0d29y
a1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcykKICAgICA6
IG1fbmV0d29ya1Nlc3Npb24obWFrZVdlYWtQdHIoc2Vzc2lvbikpCiAgICAgLCBtX25ldHdvcmtQ
cm9jZXNzKG5ldHdvcmtQcm9jZXNzKSB7IH0KIAotdm9pZCBDbGllbnRJbXBsOjpsb2FkRnJvbU5l
dHdvcmsoVVJMJiYgdXJsLCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIGpzb25QYXlsb2FkLCBXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJpZWQgcGNtRGF0YUNhcnJp
ZWQsIE5ldHdvcmtMb2FkQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAo
IWZlYXR1cmVFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJD
b3JlOjpSZXNvdXJjZUVycm9yKFdlYkNvcmU6OlJlc291cmNlRXJyb3I6OlR5cGU6OkNhbmNlbGxh
dGlvbiksIHsgfSwgeyB9KTsKLQotICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xv
YWRlcjo6c3RhcnQoKm1fbmV0d29ya1Nlc3Npb24sIFdURk1vdmUodXJsKSwgV1RGTW92ZShqc29u
UGF5bG9hZCksIHBjbURhdGFDYXJyaWVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci19
Ci0KIHZvaWQgQ2xpZW50SW1wbDo6YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoSlNDOjpNZXNzYWdl
TGV2ZWwgbWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgaWYgKCFm
ZWF0dXJlRW5hYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudElt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJbXBsLmgKaW5kZXggYmI3YWU2MzUxMjhi
NTExZjMyOWVkZWNhYTM5ZTA0NmNiMWYwN2NmOC4uMDYyNTUxYjQyNTkzMTQyYmQ4YzY4NDlkNzZj
OGFmODVmZTVlNDZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudEltcGwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5oCkBAIC00Myw3ICs0Myw2IEBA
IHB1YmxpYzoKICAgICBDbGllbnRJbXBsKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya1Byb2Nlc3Mm
KTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGxvYWRGcm9tTmV0d29yayhVUkwmJiwgUmVmUHRyPEpT
T046Ok9iamVjdD4mJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFD
YXJyaWVkLCBOZXR3b3JrTG9hZENhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgYnJvYWRjYXN0
Q29uc29sZU1lc3NhZ2UoSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYpIGZpbmFsOwog
ICAgIGJvb2wgZmVhdHVyZUVuYWJsZWQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGRlYnVnTW9k
ZUVuYWJsZWQoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcAppbmRleCA0ZWRmNjI1
NzY2MjcyOTNiYmFjNWQ3ZDkxYmRjOWZlNzZlZDYyYzE1Li4yZDc4MmJhMmVhYmYzZDUyYjhlMjAy
ZTRkNmM3NjhlZDJjZTk3NTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCiAj
aW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z0luZm8uaCIKKyNpbmNsdWRlICJQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaCIKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoT3B0aW9ucy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRm9ybURhdGEuaD4KQEAgLTEzMSw3ICsxMzIsNyBAQCB2b2lk
IFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Z2V0VG9rZW5QdWJsaWNLZXkoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQmJgogICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQsICJBYm91dCB0byBmaXJlIGEgdG9rZW4gcHVibGljIGtleSByZXF1ZXN0LiIpOwog
ICAgIG1fY2xpZW50LT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShNZXNzYWdlTGV2ZWw6OkxvZywg
IltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBBYm91dCB0byBmaXJlIGEgdG9rZW4gcHVibGlj
IGtleSByZXF1ZXN0LiJfcyk7CiAKLSAgICBtX2NsaWVudC0+bG9hZEZyb21OZXR3b3JrKFdURk1v
dmUodG9rZW5QdWJsaWNLZXlVUkwpLCBudWxscHRyLCBwY21EYXRhQ2FycmllZCwgW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzLCBhdHRyaWJ1dGlvbiA9IFdURk1vdmUoYXR0cmli
dXRpb24pLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoYXV0byYgZXJyb3IsIGF1dG8m
IHJlc3BvbnNlLCBhdXRvJiBqc29uT2JqZWN0KSBtdXRhYmxlIHsKKyAgICBQQ006Ok5ldHdvcmtM
b2FkZXI6OnN0YXJ0KFdURk1vdmUodG9rZW5QdWJsaWNLZXlVUkwpLCBudWxscHRyLCBwY21EYXRh
Q2FycmllZCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzLCBhdHRyaWJ1dGlv
biA9IFdURk1vdmUoYXR0cmlidXRpb24pLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAo
YXV0byYgZXJyb3IsIGF1dG8mIHJlc3BvbnNlLCBhdXRvJiBqc29uT2JqZWN0KSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTQ5LDcg
KzE1MCw2IEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpnZXRUb2tlblB1
YmxpY0tleShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmCiAKICAgICAgICAgY2FsbGJhY2soV1RG
TW92ZShhdHRyaWJ1dGlvbiksIGpzb25PYmplY3QtPmdldFN0cmluZygidG9rZW5fcHVibGljX2tl
eSJfcykpOwogICAgIH0pOwotCiB9CiAKIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyOjpnZXRTaWduZWRVbmxpbmthYmxlVG9rZW4oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBt
ZWFzdXJlbWVudCkKQEAgLTE3NSw3ICsxNzUsNyBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlcjo6Z2V0U2lnbmVkVW5saW5rYWJsZVRva2VuKFByaXZhdGVDbGlja01lYXN1cgog
ICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJBYm91dCB0byBm
aXJlIGEgdW5saW5rYWJsZSB0b2tlbiBzaWduaW5nIHJlcXVlc3QuIik7CiAgICAgbV9jbGllbnQt
PmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VMZXZlbDo6TG9nLCAiW1ByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnRdIEFib3V0IHRvIGZpcmUgYSB1bmxpbmthYmxlIHRva2VuIHNpZ25pbmcg
cmVxdWVzdC4iX3MpOwogCi0gICAgbV9jbGllbnQtPmxvYWRGcm9tTmV0d29yayhXVEZNb3ZlKHRv
a2VuU2lnbmF0dXJlVVJMKSwgbWVhc3VyZW1lbnQudG9rZW5TaWduYXR1cmVKU09OKCksIHBjbURh
dGFDYXJyaWVkLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXMsIG1lYXN1cmVt
ZW50ID0gV1RGTW92ZShtZWFzdXJlbWVudCldIChhdXRvJiBlcnJvciwgYXV0byYgcmVzcG9uc2Us
IGF1dG8mIGpzb25PYmplY3QpIG11dGFibGUgeworICAgIFBDTTo6TmV0d29ya0xvYWRlcjo6c3Rh
cnQoV1RGTW92ZSh0b2tlblNpZ25hdHVyZVVSTCksIG1lYXN1cmVtZW50LnRva2VuU2lnbmF0dXJl
SlNPTigpLCBwY21EYXRhQ2FycmllZCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0
aGlzLCBtZWFzdXJlbWVudCA9IFdURk1vdmUobWVhc3VyZW1lbnQpXSAoYXV0byYgZXJyb3IsIGF1
dG8mIHJlc3BvbnNlLCBhdXRvJiBqc29uT2JqZWN0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3
ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJlcXVlc3RJbXBs
KGNvbnN0IFByaXZhdGVDbGljCiAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCwgIkFib3V0IHRvIGZpcmUgYW4gYXR0cmlidXRpb24gcmVxdWVzdC4iKTsKICAgICBt
X2NsaWVudC0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoTWVzc2FnZUxldmVsOjpMb2csICJbUHJp
dmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQWJvdXQgdG8gZmlyZSBhbiBhdHRyaWJ1dGlvbiByZXF1
ZXN0LiJfcyk7CiAKLSAgICBtX2NsaWVudC0+bG9hZEZyb21OZXR3b3JrKFdURk1vdmUoYXR0cmli
dXRpb25VUkwpLCBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydEpTT04oKSwgcGNtRGF0YUNh
cnJpZWQsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpc10oYXV0byYgZXJyb3Is
IGF1dG8mIHJlc3BvbnNlLCBhdXRvJikgeworICAgIFBDTTo6TmV0d29ya0xvYWRlcjo6c3RhcnQo
V1RGTW92ZShhdHRyaWJ1dGlvblVSTCksIGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0SlNP
TigpLCBwY21EYXRhQ2FycmllZCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlz
XShhdXRvJiBlcnJvciwgYXV0byYgcmVzcG9uc2UsIGF1dG8mKSB7CiAgICAgICAgIGlmICghd2Vh
a1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnROZXR3b3JrTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlci5o
CmluZGV4IDFlMzllZTUyZjUzMTNmM2YxNmJmYTFmMmExZTJkMTU3NzA2MWY4ZjAuLjMwMzMwNzdh
NWY5NDNjNDY2ZTY0YWIxNjc0MjUxNzNkYjA1NDFlY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnROZXR3b3JrTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtM
b2FkZXIuaApAQCAtMjUsNDkgKzI1LDI1IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAi
TmV0d29ya0xvYWQuaCIKLSNpbmNsdWRlICJOZXR3b3JrTG9hZENsaWVudC5oIgotI2luY2x1ZGUg
Ik5ldHdvcmtMb2FkUGFyYW1ldGVycy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvVGV4dFJlc291cmNl
RGVjb2Rlci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgotI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7
Cit9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBOZXR3b3JrU2Vzc2lvbjsKK25hbWVz
cGFjZSBQQ00gewogCi1jbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIg
ZmluYWwgOiBwdWJsaWMgTmV0d29ya0xvYWRDbGllbnQgeworY2xhc3MgTmV0d29ya0xvYWRlciB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgdXNpbmcgQ2FsbGJh
Y2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVmUHRyPEpTT046Ok9i
amVjdD4mKT47Ci0gICAgc3RhdGljIHZvaWQgc3RhcnQoTmV0d29ya1Nlc3Npb24mLCBVUkwmJiwg
UmVmUHRyPEpTT046Ok9iamVjdD4mJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OlBjbURhdGFDYXJyaWVkLCBDYWxsYmFjayYmKTsKLQotICAgIH5Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE5ldHdvcmtMb2FkZXIoKTsKLQotcHJpdmF0ZToKLSAgICBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE5ldHdvcmtMb2FkZXIoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMm
JiwgQ2FsbGJhY2smJik7Ci0KLSAgICAvLyBOZXR3b3JrTG9hZENsaWVudC4KLSAgICB2b2lkIGRp
ZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9u
ZyB0b3RhbEJ5dGVzVG9CZVNlbnQpIGZpbmFsIHsgfQotICAgIGJvb2wgaXNTeW5jaHJvbm91cygp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgYm9vbCBpc0FsbG93ZWRUb0Fza1Vz
ZXJGb3JDcmVkZW50aWFscygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdm9p
ZCB3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZWRpcmVjdFJlcXVlc3QsIFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlKSBmaW5hbDsKLSAgICB2b2lkIGRpZFJlY2Vp
dmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIFJlc3BvbnNlQ29tcGxldGlv
bkhhbmRsZXImJikgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFJlZjxXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI+JiYsIGludCByZXBvcnRlZEVuY29kZWREYXRhTGVuZ3RoKSBmaW5hbDsK
LSAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoY29uc3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRy
aWNzJikgZmluYWw7Ci0gICAgdm9pZCBkaWRGYWlsTG9hZGluZyhjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJikgZmluYWw7Ci0KLSAgICB2b2lkIGZhaWwoV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYmKTsKLSAgICB2b2lkIGNhbmNlbCgpOwotICAgIHZvaWQgZGlkQ29tcGxldGUoKTsKLQotICAg
IFdlYWtQdHI8TmV0d29ya1Nlc3Npb24+IG1fc2Vzc2lvbjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
TmV0d29ya0xvYWQ+IG1fbmV0d29ya0xvYWQ7Ci0gICAgQ2FsbGJhY2sgbV9jb21wbGV0aW9uSGFu
ZGxlcjsKLQotICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgbV9yZXNwb25zZTsKLSAgICBS
ZWZQdHI8V2ViQ29yZTo6VGV4dFJlc291cmNlRGVjb2Rlcj4gbV9kZWNvZGVyOwotICAgIFN0cmlu
Z0J1aWxkZXIgbV9qc29uU3RyaW5nOworICAgIHN0YXRpYyB2b2lkIHN0YXJ0KFVSTCYmLCBSZWZQ
dHI8SlNPTjo6T2JqZWN0PiYmLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNt
RGF0YUNhcnJpZWQsIENhbGxiYWNrJiYpOwogfTsKIAorfSAvLyBuYW1lc3BhY2UgUENNCisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE5ldHdvcmtMb2FkZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3Jr
TG9hZGVyQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQ3MzY1NWJiYTEwNDA5NWIyMjNmYjQ0ODNlOTYz
NmVmZDNhODIyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRO
ZXR3b3JrTG9hZGVyQ29jb2EubW0KQEAgLTAsMCArMSwxMjIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xv
YWRlci5oIgorCisjaW1wb3J0ICJOZXR3b3JrU2Vzc2lvbkNvY29hLmgiCisjaW1wb3J0IDxXZWJD
b3JlL0hUVFBIZWFkZXJWYWx1ZXMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3Ry
eS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KKyNpbXBvcnQgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBvcnQg
PFdlYktpdEFkZGl0aW9ucy9OZXR3b3JrRGF0YVRhc2tDb2NvYUFkZGl0aW9ucy5oPgorI2Vsc2UK
K3N0YXRpYyB2b2lkIHByb2Nlc3NQQ01SZXF1ZXN0KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpQY21EYXRhQ2FycmllZCwgTlNNdXRhYmxlVVJMUmVxdWVzdCAqKSB7IH0KKyNlbmRp
ZgorCitAaW50ZXJmYWNlIFdLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZUFsbG93aW5nT25seU5vblJl
ZGlyZWN0ZWRKU09OIDogTlNPYmplY3QgPE5TVVJMU2Vzc2lvbkRhdGFEZWxlZ2F0ZT4KK0BlbmQK
KworQGltcGxlbWVudGF0aW9uIFdLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZUFsbG93aW5nT25seU5v
blJlZGlyZWN0ZWRKU09OCisKKy0gKHZvaWQpVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc2Vz
c2lvbiB0YXNrOihOU1VSTFNlc3Npb25UYXNrICopdGFzayB3aWxsUGVyZm9ybUhUVFBSZWRpcmVj
dGlvbjooTlNIVFRQVVJMUmVzcG9uc2UgKilyZXNwb25zZSBuZXdSZXF1ZXN0OihOU1VSTFJlcXVl
c3QgKilyZXF1ZXN0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VSTFJlcXVlc3QgKikp
Y29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBjb21wbGV0aW9uSGFuZGxlcihuaWwpOworfQorCist
ICh2b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3Npb24gZGF0YVRhc2s6KE5TVVJM
U2Vzc2lvbkRhdGFUYXNrICopZGF0YVRhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOihOU1VSTFJlc3Bv
bnNlICopcmVzcG9uc2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TVVJMU2Vzc2lvblJl
c3BvbnNlRGlzcG9zaXRpb24gZGlzcG9zaXRpb24pKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAg
aWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSlNPTk1JTUVUeXBlKHJlc3BvbnNlLk1J
TUVUeXBlKSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKE5TVVJMU2Vzc2lvblJl
c3BvbnNlQWxsb3cpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKE5TVVJMU2Vzc2lvblJlc3BvbnNl
Q2FuY2VsKTsKK30KKworLSAodm9pZClVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilzZXNzaW9u
IHRhc2s6KE5TVVJMU2Vzc2lvblRhc2sgKil0YXNrIGRpZFJlY2VpdmVDaGFsbGVuZ2U6KE5TVVJM
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQgKF4pKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwg
TlNVUkxDcmVkZW50aWFsICpjcmVkZW50aWFsKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIGlm
IChbY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvbk1ldGhvZCBpc0VxdWFs
VG9TdHJpbmc6TlNVUkxBdXRoZW50aWNhdGlvbk1ldGhvZFNlcnZlclRydXN0XQorICAgICAgICAm
JiBOZXR3b3JrU2Vzc2lvbkNvY29hOjphbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JI
b3N0KGNoYWxsZW5nZSkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNl
c3Npb25BdXRoQ2hhbGxlbmdlVXNlQ3JlZGVudGlhbCwgW05TVVJMQ3JlZGVudGlhbCBjcmVkZW50
aWFsRm9yVHJ1c3Q6Y2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUcnVzdF0pOworICAg
IGNvbXBsZXRpb25IYW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VQZXJmb3JtRGVmYXVs
dEhhbmRsaW5nLCBuaWwpOworfQorCitAZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1l
c3BhY2UgUENNIHsKKworZW51bSBMb2FkVGFza0lkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIExv
YWRUYXNrSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8TG9hZFRhc2tJZGVudGlmaWVyVHlw
ZT47CitzdGF0aWMgSGFzaE1hcDxMb2FkVGFza0lkZW50aWZpZXIsIFJldGFpblB0cjxOU1VSTFNl
c3Npb25EYXRhVGFzaz4+JiB0YXNrTWFwKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
SGFzaE1hcDxMb2FkVGFza0lkZW50aWZpZXIsIFJldGFpblB0cjxOU1VSTFNlc3Npb25EYXRhVGFz
az4+PiBtYXA7CisgICAgcmV0dXJuIG1hcC5nZXQoKTsKK30KKworc3RhdGljIE5TVVJMU2Vzc2lv
biAqc3RhdGVsZXNzU2Vzc2lvbldpdGhvdXRSZWRpcmVjdHMoKQoreworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxSZXRhaW5QdHI8V0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlQWxsb3dpbmdPbmx5
Tm9uUmVkaXJlY3RlZEpTT04+PiBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1dLTmV0d29ya1Nlc3Npb25E
ZWxlZ2F0ZUFsbG93aW5nT25seU5vblJlZGlyZWN0ZWRKU09OIG5ld10pOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8TlNVUkxTZXNzaW9uPj4gc2Vzc2lvbiA9IFsmXSB7Cisg
ICAgICAgIE5TVVJMU2Vzc2lvbkNvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb24gPSBbTlNVUkxT
ZXNzaW9uQ29uZmlndXJhdGlvbiBlcGhlbWVyYWxTZXNzaW9uQ29uZmlndXJhdGlvbl07CisgICAg
ICAgIGNvbmZpZ3VyYXRpb24uSFRUUENvb2tpZUFjY2VwdFBvbGljeSA9IE5TSFRUUENvb2tpZUFj
Y2VwdFBvbGljeU5ldmVyOworICAgICAgICBjb25maWd1cmF0aW9uLlVSTENyZWRlbnRpYWxTdG9y
YWdlID0gbmlsOworICAgICAgICBjb25maWd1cmF0aW9uLlVSTENhY2hlID0gbmlsOworICAgICAg
ICBjb25maWd1cmF0aW9uLl9zaG91bGRTa2lwUHJlZmVycmVkQ2xpZW50Q2VydGlmaWNhdGVMb29r
dXAgPSBZRVM7CisgICAgICAgIHJldHVybiBhZG9wdE5TKFtOU1VSTFNlc3Npb24gc2Vzc2lvbldp
dGhDb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24gZGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCkuZ2V0
KCkgZGVsZWdhdGVRdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBtYWluUXVldWVdXSk7CisgICAgfSgp
OworICAgIHJldHVybiBzZXNzaW9uLmdldCgpLmdldCgpOworfQorCit2b2lkIE5ldHdvcmtMb2Fk
ZXI6OnN0YXJ0KFVSTCYmIHVybCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBqc29uUGF5bG9hZCwg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVkIHBjbURhdGFD
YXJyaWVkLCBDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGF1dG8gcmVxdWVzdCA9IGFkb3B0
TlMoW1tOU011dGFibGVVUkxSZXF1ZXN0IGFsbG9jXSBpbml0V2l0aFVSTDp1cmxdKTsKKyAgICBb
cmVxdWVzdCBzZXRWYWx1ZTpXZWJDb3JlOjpIVFRQSGVhZGVyVmFsdWVzOjptYXhBZ2UwKCkgZm9y
SFRUUEhlYWRlckZpZWxkOkAiQ2FjaGUtQ29udHJvbCJdOworICAgIGlmIChqc29uUGF5bG9hZCkg
eworICAgICAgICByZXF1ZXN0LmdldCgpLkhUVFBNZXRob2QgPSBAIlBPU1QiOworICAgICAgICBb
cmVxdWVzdCBzZXRWYWx1ZTpXZWJDb3JlOjpIVFRQSGVhZGVyVmFsdWVzOjphcHBsaWNhdGlvbkpT
T05Db250ZW50VHlwZSgpIGZvckhUVFBIZWFkZXJGaWVsZDpAIkNvbnRlbnQtVHlwZSJdOworICAg
ICAgICBhdXRvIGJvZHkgPSBqc29uUGF5bG9hZC0+dG9KU09OU3RyaW5nKCkudXRmOCgpOworICAg
ICAgICByZXF1ZXN0LmdldCgpLkhUVFBCb2R5ID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5p
dFdpdGhCeXRlczpib2R5LmRhdGEoKSBsZW5ndGg6Ym9keS5sZW5ndGgoKV0pLmdldCgpOworICAg
IH0KKworICAgIHByb2Nlc3NQQ01SZXF1ZXN0KHBjbURhdGFDYXJyaWVkLCByZXF1ZXN0LmdldCgp
KTsKKworICAgIGF1dG8gaWRlbnRpZmllciA9IExvYWRUYXNrSWRlbnRpZmllcjo6Z2VuZXJhdGUo
KTsKKyAgICBOU1VSTFNlc3Npb25EYXRhVGFzayAqdGFzayA9IFtzdGF0ZWxlc3NTZXNzaW9uV2l0
aG91dFJlZGlyZWN0cygpIGRhdGFUYXNrV2l0aFJlcXVlc3Q6cmVxdWVzdC5nZXQoKSBjb21wbGV0
aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIGlk
ZW50aWZpZXJdKE5TRGF0YSAqZGF0YSwgTlNVUkxSZXNwb25zZSAqcmVzcG9uc2UsIE5TRXJyb3Ig
KmVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgdGFza01hcCgpLnJlbW92ZShpZGVudGlmaWVyKTsK
KyAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVycm9yLCB7
IH0sIHsgfSk7CisgICAgICAgIGlmIChhdXRvIGpzb25WYWx1ZSA9IEpTT046OlZhbHVlOjpwYXJz
ZUpTT04oU3RyaW5nOjpmcm9tVVRGOChzdGF0aWNfY2FzdDxjb25zdCBMQ2hhcio+KGRhdGEuYnl0
ZXMpLCBkYXRhLmxlbmd0aCkpKQorICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHsgfSwgcmVz
cG9uc2UsIGpzb25WYWx1ZS0+YXNPYmplY3QoKSk7CisgICAgICAgIGNhbGxiYWNrKHsgfSwgcmVz
cG9uc2UsIG51bGxwdHIpOworICAgIH0pLmdldCgpXTsKKyAgICBbdGFzayByZXN1bWVdOworICAg
IHRhc2tNYXAoKS5hZGQoaWRlbnRpZmllciwgdGFzayk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFBD
TQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAppbmRleCA0ZWJiZDkw
Y2M2NDVkZjVmOWRkYmI4NjBkMDhhYTNlYjA1M2MyZmY2Li4zOTE0ODlkNjQ0NWY0NmNhN2E3YjFm
ODc4ZmIxZmEwZDllODNiN2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCkBAIC0yOSwxMCArMjksMTIg
QEAKICNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2suaCIKICNpbmNsdWRlICJOZXR3b3JrTG9hZFBh
cmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkTWV0cmljcy5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4KICNpbmNsdWRlIDx3dGYv
UmV0YWluUHRyLmg+CiAKIE9CSkNfQ0xBU1MgTlNIVFRQQ29va2llU3RvcmFnZTsKIE9CSkNfQ0xB
U1MgTlNVUkxTZXNzaW9uRGF0YVRhc2s7CitPQkpDX0NMQVNTIE5TTXV0YWJsZVVSTFJlcXVlc3Q7
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlZ2lzdHJhYmxlRG9tYWluOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tD
b2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFU
YXNrQ29jb2EubW0KaW5kZXggNjg3MDg1MTkyNTI4ODU3MWJkNmM3NjNiM2U2MDMxM2Q5MjYwZTk4
Yy4uN2Y5ODg4ZGEyNjYyZTY2ZDk3OTJhMTM3YmJhZWZlODdjMGU1MjdiNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFz
a0NvY29hLm1tCkBAIC01Nyw3ICs1Nyw2IEBACiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
ICNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9OZXR3b3JrRGF0YVRhc2tDb2NvYUFkZGl0aW9ucy5o
PgogI2Vsc2UKLXN0YXRpYyB2b2lkIHByb2Nlc3NQQ01SZXF1ZXN0KFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZCwgTlNNdXRhYmxlVVJMUmVxdWVzdCAqKSB7
IH0KIHN0YXRpYyB2b2lkIG92ZXJyaWRlQXR0cmlidXRpb25Db250ZXh0KE5TTXV0YWJsZVVSTFJl
cXVlc3QgKikgeyB9CiAjZW5kaWYKIApAQCAtMzQ3LDkgKzM0Niw2IEBAIE5ldHdvcmtEYXRhVGFz
a0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0
d29ya0RhdGFUCiAKICAgICBvdmVycmlkZUF0dHJpYnV0aW9uQ29udGV4dChtdXRhYmxlUmVxdWVz
dC5nZXQoKSk7CiAKLSAgICBpZiAocGFyYW1ldGVycy5wY21EYXRhQ2FycmllZCkKLSAgICAgICAg
cHJvY2Vzc1BDTVJlcXVlc3QoKnBhcmFtZXRlcnMucGNtRGF0YUNhcnJpZWQsIG11dGFibGVSZXF1
ZXN0LmdldCgpKTsKLQogICAgIG5zUmVxdWVzdCA9IG11dGFibGVSZXF1ZXN0OwogCiAjaWYgRU5B
QkxFKEFQUF9QUklWQUNZX1JFUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNl
c0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA3OGZiNDI0
MTIyM2IwMzI3NWE5NjZkOWY3NWFjMDBmY2E0OWE3ZjZkLi44OTEzODM0ZjZiYjVmOTM5ZTcyMGIw
OWVmY2IwMmM5NTQ0Zjg0YWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC00MSw2ICs0MSw4
IEBAIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9Eb3dubG9hZENvY29hLm1tCiBOZXR3
b3JrUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL0RhZW1vbi9EYWVtb25FbnRyeVBvaW50Lm1tCiBO
ZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2VF
bnRyeVBvaW50Lm1tCiAKK05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L2Nv
Y29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlckNvY29hLm1tCisKIE5ldHdv
cmtQcm9jZXNzL1dlYlN0b3JhZ2UvaW9zL0xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcklPUy5t
bQogCiBOZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NJT1Mu
bW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDMwYmM4MDg4MmMwNGVlZjFjYzAzOTBmNGFkNTdkZTA2NjViZTBmNjEuLmNmOWUwZGY1NGJm
NjhiMjUwMDFjNmNjMWQ5ZWJjYjczYWUyMTE3M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDU1NSw2ICs0NTU1LDcgQEAKIAkJNUNC
OTMwQkYyNkUwNTQyRTAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50
Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQjkzMEMwMjZFMDU0MkYw
MDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudEltcGwuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGll
bnRJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCOTMwQzEyNkUwNTRC
ODAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudElt
cGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUNCOTMwRjIyNkU3RUVFMDAwMzJC
MUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlckNvY29hLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnROZXR3b3JrTG9hZGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVD
QkM5Qjg5MUM2NTI0QTUwMEE4RkRDRiAvKiBOZXR3b3JrRGF0YVRhc2suaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0RhdGFUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTVDQkM5QjhCMUM2NTI1NzMwMEE4RkRDRiAvKiBOZXR3b3JrRGF0YVRhc2tD
b2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdvcmtE
YXRhVGFza0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0JFOTA4RjI2
RDdGQjYyMDA1QTJFOTUgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z0luZm8uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1
Z0luZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkyNjAsNiArOTI2MSw3IEBA
CiAJCTVDMDFCQzM1MjZENDZBRDQwMEZFQjQyRiAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNUNCOTMwRjEy
NkU3RUU4OTAwMzJCMUMwIC8qIGNvY29hICovLAogCQkJCTVDQjkzMEJGMjZFMDU0MkUwMDMyQjFD
MCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudC5oICovLAogCQkJCTVDQjkzMEMwMjZF
MDU0MkYwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudEltcGwuY3BwICov
LAogCQkJCTVDQjkzMEMxMjZFMDU0QjgwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dENsaWVudEltcGwuaCAqLywKQEAgLTkzNTMsNiArOTM1NSwxNCBAQAogCQkJcGF0aCA9IENvY29h
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNUNCOTMwRjEyNkU3RUU4OTAw
MzJCMUMwIC8qIGNvY29hICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9
ICgKKwkJCQk1Q0I5MzBGMjI2RTdFRUUwMDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnROZXR3b3JrTG9hZGVyQ29jb2EubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGNvY29hOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNkJFOTY5QkYxRTU0RDQ1MjAwOEI3NDgz
IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAo=
</data>
<flag name="commit-queue"
          id="460737"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437546</attachid>
            <date>2021-09-07 13:01:43 -0700</date>
            <delta_ts>2021-09-07 13:27:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230015-20210907130142.patch</filename>
            <type>text/plain</type>
            <size>34688</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEzZGEzNThjZGM5YjZiZjYz
OGFkODZiYzM2YzQ4MWM3YmU2ZmVjYjMuLjc2Yzg5ZGNmNjYyOGIyMTRhYWQ5NjU2ZTgxMTM4MWJj
NDczOTQ5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjEtMDktMDcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXBsYWNlIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6c3RhcnQgd2l0aCBhbiBpbXBsZW1l
bnRhdGlvbiB0aGF0IGRvZXNuJ3QgbmVlZCBOZXR3b3JrU2Vzc2lvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMDE1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBuZWVkZWQgdG8gcnVuIHRo
aXMgY29kZSBpbiBhIHByb2Nlc3MgdGhhdCBkb2Vzbid0IGhhdmUgTmV0d29ya1Nlc3Npb24sIHdo
aWNoIGlzIGEgY2xhc3MgdGllZCBjbG9zZWx5IHRvIFdLV2Vic2l0ZURhdGFTdG9yZS4KKyAgICAg
ICAgVGhpcyByZXBsYWNlcyBpdCB3aXRoIGEgc2ltcGxlIGltcGxlbWVudGF0aW9uIHRoYXQgZG9l
cyB0aGUgc2FtZSB0aGluZ3M6CisgICAgICAgIDEuIFVzZXMgYW4gZXBoZW1lcmFsIHN0YXRlbGVz
cyBzZXNzaW9uIHRoYXQgZG9lc24ndCBhY2NlcHQgY29va2llcyBvciB1c2UgY3JlZGVudGlhbHMu
CisgICAgICAgIDIuIERvZXMgbm90IGFsbG93IHJlZGlyZWN0cy4KKyAgICAgICAgMy4gT25seSBh
Y2NlcHRzIEpTT04gbWltZSB0eXBlcy4KKyAgICAgICAgNC4gQ2FsbHMgcHJvY2Vzc1BDTVJlcXVl
c3QKKworICAgICAgICBXZSBzdGlsbCBuZWVkIHRvIGNhbGwgTmV0d29ya1Nlc3Npb25Db2NvYTo6
YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdCB0byBnZXQgdGVzdHMgdG8gcGFz
cy4KKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtTZXNzaW9uOjphZGRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6cmVtb3ZlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVu
dC5oOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNsaWVudDo6fkNsaWVudCk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpDbGllbnRJbXBsOjps
b2FkRnJvbU5ldHdvcmspOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6Z2V0VG9rZW5QdWJsaWNLZXkpOgorICAgICAgICAoV2ViS2l0
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmdldFNpZ25lZFVubGlua2FibGVUb2tl
bik6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Zmly
ZUNvbnZlcnNpb25SZXF1ZXN0SW1wbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpOZXR3b3JrTG9hZGVyOjpzdGFydCk6CisgICAgICAg
IChXZWJLaXQ6OmdlbmVyYXRlTmV0d29ya0xvYWRQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjpzdGFydCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29y
a0xvYWRlcjo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjp+
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjpmYWlsKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9h
ZGVyOjpjYW5jZWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE5ldHdvcmtMb2FkZXI6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI6
OmRpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6ZGlkUmVjZWl2ZUJ1ZmZlcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6
ZGlkRmluaXNoTG9hZGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6ZGlkRmFpbExvYWRpbmcpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI6OmRpZENv
bXBsZXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaDoKKyAgICAg
ICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyQ29jb2Eu
bW06IEFkZGVkLgorICAgICAgICAocHJvY2Vzc1BDTVJlcXVlc3QpOgorICAgICAgICAoLVtXS05l
dHdvcmtTZXNzaW9uRGVsZWdhdGVBbGxvd2luZ09ubHlOb25SZWRpcmVjdGVkSlNPTiBVUkxTZXNz
aW9uOnRhc2s6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb246bmV3UmVxdWVzdDpjb21wbGV0aW9u
SGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlQWxsb3dpbmdP
bmx5Tm9uUmVkaXJlY3RlZEpTT04gVVJMU2Vzc2lvbjpkYXRhVGFzazpkaWRSZWNlaXZlUmVzcG9u
c2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25EZWxl
Z2F0ZUFsbG93aW5nT25seU5vblJlZGlyZWN0ZWRKU09OIFVSTFNlc3Npb246dGFzazpkaWRSZWNl
aXZlQ2hhbGxlbmdlOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoV2ViS2l0OjpQQ006
OnRhc2tNYXApOgorICAgICAgICAoV2ViS2l0OjpQQ006OnN0YXRlbGVzc1Nlc3Npb25XaXRob3V0
UmVkaXJlY3RzKToKKyAgICAgICAgKFdlYktpdDo6UENNOjpOZXR3b3JrTG9hZGVyOjpzdGFydCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0Nv
Y29hKToKKyAgICAgICAgKHByb2Nlc3NQQ01SZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBT
b3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDIxLTA5LTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgSW1wbGVtZW50IG9yaWdpbiBwYXJ0aXRpb25pbmcgKHRvcC1vcmlnaW4vZnJhbWUtb3Jp
Z2luKSBmb3IgQnJvYWRjYXN0Q2hhbm5lbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKaW5kZXggMDRjYjAzOTBjOWNmZDg2Yjkx
MWQ0OGY5YWY5Y2QxNzJlOGIzYTczNy4uNzE5YzM5ZGIwNGYwYjMwOGRjMWY1YTJkMDQ4ZjBkZTFk
NDk5YmZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkUGFyYW1ldGVycy5oCkBAIC02Nyw3ICs2Nyw2IEBAIHB1YmxpYzoKICAgICBQcmVjb25u
ZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSB7IFByZWNvbm5lY3RPbmx5OjpObyB9OwogICAg
IHN0ZDo6b3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5VHJh
Y2tlcjsKICAgICBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluIHsgTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW46Ok5v
IH07Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
UGNtRGF0YUNhcnJpZWQ+IHBjbURhdGFDYXJyaWVkOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCmluZGV4IDMwNDFkNGY4YTMwNzY1MTc5MzM1
ZDFhMDY4ODg1ZDZkOGMwM2ZmMjMuLmY0MWY1NTkwYmQ2ZmZmNzc2ODNjMGM4MjFiMDVjNjZjYWU1
NGExMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCkBAIC0xMjcsNyArMTI3LDYgQEAg
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKICNlbmRpZgogICAgIAogICAgIGVuY29kZXIgPDwgaXNOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbjsKLSAgICBlbmNvZGVyIDw8IHBjbURhdGFDYXJyaWVkOwogfQogCiBz
dGQ6Om9wdGlvbmFsPE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzPiBOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTMyOSwx
MiArMzI4LDYgQEAgc3RkOjpvcHRpb25hbDxOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycz4g
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY28KICAgICBpZiAoIWlzTmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW4pCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgcmVz
dWx0LmlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4gPSAqaXNOYXZpZ2F0aW5nVG9BcHBCb3Vu
ZERvbWFpbjsKLQotICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJpZWQ+PiBwY21EYXRhQ2FycmllZDsKLSAg
ICBkZWNvZGVyID4+IHBjbURhdGFDYXJyaWVkOwotICAgIGlmICghcGNtRGF0YUNhcnJpZWQpCi0g
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmVzdWx0LnBjbURhdGFDYXJyaWVkID0g
KnBjbURhdGFDYXJyaWVkOwogICAgIAogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggZjVhMDYyZDkxYjY0
NzQwOTI5NTNhY2ZiZDJkMDJjOTdjMDg4ODRkYS4uNzBhMWI0OTFiMjQzYWFlZmIzZDI3YmRjYWQw
MGE2MDVlNDI0ZjUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uaApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIk5hdmlnYXRpbmdUb0FwcEJv
dW5kRG9tYWluLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXIuaCIK
ICNpbmNsdWRlICJQcmVmZXRjaENhY2hlLmgiCi0jaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnROZXR3b3JrTG9hZGVyLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2lu
Y2x1ZGUgIlNlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmgiCiAjaW5jbHVkZSAiV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCkBAIC0xNzQsOSArMTczLDYgQEAgcHVibGljOgog
ICAgIEFwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YSYgYXBwUHJpdmFjeVJlcG9ydFRlc3RpbmdE
YXRhKCkgeyByZXR1cm4gbV9hcHBQcml2YWN5UmVwb3J0VGVzdGluZ0RhdGE7IH0KICNlbmRpZgog
Ci0gICAgdm9pZCBhZGRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIoc3RkOjp1
bmlxdWVfcHRyPFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcj4mJiBsb2FkZXIp
IHsgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJzLmFkZChXVEZNb3ZlKGxv
YWRlcikpOyB9Ci0gICAgdm9pZCByZW1vdmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtM
b2FkZXIoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKiBsb2FkZXIpIHsgbV9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJzLnJlbW92ZShsb2FkZXIpOyB9Ci0K
ICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTmV0d29ya1dlYnNpdGVEYXRhKHN0ZDo6b3B0aW9uYWw8
V2FsbFRpbWU+LCBzdGQ6Om9wdGlvbmFsPEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4+PiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsg
Y29tcGxldGlvbkhhbmRsZXIoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGFkZFdlYlBhZ2VOZXR3
b3JrUGFyYW1ldGVycyhXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJQYWdlTmV0d29ya1BhcmFt
ZXRlcnMmJikgeyB9CkBAIC0yNDgsNyArMjQ0LDYgQEAgcHJvdGVjdGVkOgogICAgIEFwcFByaXZh
Y3lSZXBvcnRUZXN0aW5nRGF0YSBtX2FwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YTsKICNlbmRp
ZgogCi0gICAgSGFzaFNldDxzdGQ6OnVuaXF1ZV9wdHI8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRO
ZXR3b3JrTG9hZGVyPj4gbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJzOwog
ICAgIEhhc2hNYXA8V2ViUGFnZVByb3h5SWRlbnRpZmllciwgU3RyaW5nPiBtX2F0dHJpYnV0ZWRC
dW5kbGVJZGVudGlmaWVyRnJvbVBhZ2VJZGVudGlmaWVyczsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnQuaApp
bmRleCBjNjMxNzQ2YjI4MDM3YTlkOWNjY2ZkYjVmNGJkYTRiN2RiZDIzMDhiLi5jYmJmNDllZTE4
ZTA4YzhhOTViYjUyYjMxNDg3ODg2MDUwNGNiMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudC5oCkBAIC00Niw4
ICs0Niw2IEBAIG5hbWVzcGFjZSBQQ00gewogY2xhc3MgQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5DbGllbnQoKSB7IH0KLSAgICB1c2luZyBOZXR3b3JrTG9hZENhbGxiYWNrID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlZlB0cjxKU09OOjpPYmplY3Q+Jik+
OwotICAgIHZpcnR1YWwgdm9pZCBsb2FkRnJvbU5ldHdvcmsoVVJMJiYsIFJlZlB0cjxKU09OOjpP
YmplY3Q+JiYsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2Fycmll
ZCwgTmV0d29ya0xvYWRDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGJyb2FkY2Fz
dENvbnNvbGVNZXNzYWdlKEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmKSA9IDA7CiAg
ICAgdmlydHVhbCBib29sIGZlYXR1cmVFbmFibGVkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwg
Ym9vbCBkZWJ1Z01vZGVFbmFibGVkKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudEltcGwu
Y3BwCmluZGV4IDdlY2QxMzU3ODIxYmQ2MzYyNTRjOGRkZDM2YTJiODcyMWJhMDFkMjAuLjVkZWFm
MDc0ZjhkN2E1MGFmYWZiNGY1MWMyMzYyOTNlOGU1NDlhMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50
SW1wbC5jcHAKQEAgLTM3LDE0ICszNyw2IEBAIENsaWVudEltcGw6OkNsaWVudEltcGwoTmV0d29y
a1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcykKICAgICA6
IG1fbmV0d29ya1Nlc3Npb24obWFrZVdlYWtQdHIoc2Vzc2lvbikpCiAgICAgLCBtX25ldHdvcmtQ
cm9jZXNzKG5ldHdvcmtQcm9jZXNzKSB7IH0KIAotdm9pZCBDbGllbnRJbXBsOjpsb2FkRnJvbU5l
dHdvcmsoVVJMJiYgdXJsLCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIGpzb25QYXlsb2FkLCBXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJpZWQgcGNtRGF0YUNhcnJp
ZWQsIE5ldHdvcmtMb2FkQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAo
IWZlYXR1cmVFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJD
b3JlOjpSZXNvdXJjZUVycm9yKFdlYkNvcmU6OlJlc291cmNlRXJyb3I6OlR5cGU6OkNhbmNlbGxh
dGlvbiksIHsgfSwgeyB9KTsKLQotICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xv
YWRlcjo6c3RhcnQoKm1fbmV0d29ya1Nlc3Npb24sIFdURk1vdmUodXJsKSwgV1RGTW92ZShqc29u
UGF5bG9hZCksIHBjbURhdGFDYXJyaWVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci19
Ci0KIHZvaWQgQ2xpZW50SW1wbDo6YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoSlNDOjpNZXNzYWdl
TGV2ZWwgbWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgaWYgKCFm
ZWF0dXJlRW5hYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudElt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJbXBsLmgKaW5kZXggYmI3YWU2MzUxMjhi
NTExZjMyOWVkZWNhYTM5ZTA0NmNiMWYwN2NmOC4uMDYyNTUxYjQyNTkzMTQyYmQ4YzY4NDlkNzZj
OGFmODVmZTVlNDZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudEltcGwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5oCkBAIC00Myw3ICs0Myw2IEBA
IHB1YmxpYzoKICAgICBDbGllbnRJbXBsKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya1Byb2Nlc3Mm
KTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGxvYWRGcm9tTmV0d29yayhVUkwmJiwgUmVmUHRyPEpT
T046Ok9iamVjdD4mJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFD
YXJyaWVkLCBOZXR3b3JrTG9hZENhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgYnJvYWRjYXN0
Q29uc29sZU1lc3NhZ2UoSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYpIGZpbmFsOwog
ICAgIGJvb2wgZmVhdHVyZUVuYWJsZWQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGRlYnVnTW9k
ZUVuYWJsZWQoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcAppbmRleCA0ZWRmNjI1
NzY2MjcyOTNiYmFjNWQ3ZDkxYmRjOWZlNzZlZDYyYzE1Li4yZDc4MmJhMmVhYmYzZDUyYjhlMjAy
ZTRkNmM3NjhlZDJjZTk3NTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCiAj
aW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z0luZm8uaCIKKyNpbmNsdWRlICJQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaCIKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoT3B0aW9ucy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRm9ybURhdGEuaD4KQEAgLTEzMSw3ICsxMzIsNyBAQCB2b2lk
IFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Z2V0VG9rZW5QdWJsaWNLZXkoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQmJgogICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQsICJBYm91dCB0byBmaXJlIGEgdG9rZW4gcHVibGljIGtleSByZXF1ZXN0LiIpOwog
ICAgIG1fY2xpZW50LT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShNZXNzYWdlTGV2ZWw6OkxvZywg
IltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBBYm91dCB0byBmaXJlIGEgdG9rZW4gcHVibGlj
IGtleSByZXF1ZXN0LiJfcyk7CiAKLSAgICBtX2NsaWVudC0+bG9hZEZyb21OZXR3b3JrKFdURk1v
dmUodG9rZW5QdWJsaWNLZXlVUkwpLCBudWxscHRyLCBwY21EYXRhQ2FycmllZCwgW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzLCBhdHRyaWJ1dGlvbiA9IFdURk1vdmUoYXR0cmli
dXRpb24pLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoYXV0byYgZXJyb3IsIGF1dG8m
IHJlc3BvbnNlLCBhdXRvJiBqc29uT2JqZWN0KSBtdXRhYmxlIHsKKyAgICBQQ006Ok5ldHdvcmtM
b2FkZXI6OnN0YXJ0KFdURk1vdmUodG9rZW5QdWJsaWNLZXlVUkwpLCBudWxscHRyLCBwY21EYXRh
Q2FycmllZCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzLCBhdHRyaWJ1dGlv
biA9IFdURk1vdmUoYXR0cmlidXRpb24pLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAo
YXV0byYgZXJyb3IsIGF1dG8mIHJlc3BvbnNlLCBhdXRvJiBqc29uT2JqZWN0KSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTQ5LDcg
KzE1MCw2IEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpnZXRUb2tlblB1
YmxpY0tleShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmCiAKICAgICAgICAgY2FsbGJhY2soV1RG
TW92ZShhdHRyaWJ1dGlvbiksIGpzb25PYmplY3QtPmdldFN0cmluZygidG9rZW5fcHVibGljX2tl
eSJfcykpOwogICAgIH0pOwotCiB9CiAKIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyOjpnZXRTaWduZWRVbmxpbmthYmxlVG9rZW4oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBt
ZWFzdXJlbWVudCkKQEAgLTE3NSw3ICsxNzUsNyBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlcjo6Z2V0U2lnbmVkVW5saW5rYWJsZVRva2VuKFByaXZhdGVDbGlja01lYXN1cgog
ICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJBYm91dCB0byBm
aXJlIGEgdW5saW5rYWJsZSB0b2tlbiBzaWduaW5nIHJlcXVlc3QuIik7CiAgICAgbV9jbGllbnQt
PmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VMZXZlbDo6TG9nLCAiW1ByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnRdIEFib3V0IHRvIGZpcmUgYSB1bmxpbmthYmxlIHRva2VuIHNpZ25pbmcg
cmVxdWVzdC4iX3MpOwogCi0gICAgbV9jbGllbnQtPmxvYWRGcm9tTmV0d29yayhXVEZNb3ZlKHRv
a2VuU2lnbmF0dXJlVVJMKSwgbWVhc3VyZW1lbnQudG9rZW5TaWduYXR1cmVKU09OKCksIHBjbURh
dGFDYXJyaWVkLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXMsIG1lYXN1cmVt
ZW50ID0gV1RGTW92ZShtZWFzdXJlbWVudCldIChhdXRvJiBlcnJvciwgYXV0byYgcmVzcG9uc2Us
IGF1dG8mIGpzb25PYmplY3QpIG11dGFibGUgeworICAgIFBDTTo6TmV0d29ya0xvYWRlcjo6c3Rh
cnQoV1RGTW92ZSh0b2tlblNpZ25hdHVyZVVSTCksIG1lYXN1cmVtZW50LnRva2VuU2lnbmF0dXJl
SlNPTigpLCBwY21EYXRhQ2FycmllZCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0
aGlzLCBtZWFzdXJlbWVudCA9IFdURk1vdmUobWVhc3VyZW1lbnQpXSAoYXV0byYgZXJyb3IsIGF1
dG8mIHJlc3BvbnNlLCBhdXRvJiBqc29uT2JqZWN0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3
ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJlcXVlc3RJbXBs
KGNvbnN0IFByaXZhdGVDbGljCiAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCwgIkFib3V0IHRvIGZpcmUgYW4gYXR0cmlidXRpb24gcmVxdWVzdC4iKTsKICAgICBt
X2NsaWVudC0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoTWVzc2FnZUxldmVsOjpMb2csICJbUHJp
dmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQWJvdXQgdG8gZmlyZSBhbiBhdHRyaWJ1dGlvbiByZXF1
ZXN0LiJfcyk7CiAKLSAgICBtX2NsaWVudC0+bG9hZEZyb21OZXR3b3JrKFdURk1vdmUoYXR0cmli
dXRpb25VUkwpLCBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydEpTT04oKSwgcGNtRGF0YUNh
cnJpZWQsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpc10oYXV0byYgZXJyb3Is
IGF1dG8mIHJlc3BvbnNlLCBhdXRvJikgeworICAgIFBDTTo6TmV0d29ya0xvYWRlcjo6c3RhcnQo
V1RGTW92ZShhdHRyaWJ1dGlvblVSTCksIGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0SlNP
TigpLCBwY21EYXRhQ2FycmllZCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlz
XShhdXRvJiBlcnJvciwgYXV0byYgcmVzcG9uc2UsIGF1dG8mKSB7CiAgICAgICAgIGlmICghd2Vh
a1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnROZXR3b3JrTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVy
LmNwcAppbmRleCA4M2U3ZTM0NTllM2NkMDI2OGU4NDNlYjdmYTFlOGMxOWU2YmM4NDFjLi5jYjdm
MTg5NGQzZWM4ZDRlNjhhNTk3NTgxNzVjMjU5YzMyMmFjYTllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50TmV0d29ya0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5l
dHdvcmtMb2FkZXIuY3BwCkBAIC0yNiwxMjQgKzI2LDE4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmgiCiAKLSNp
bmNsdWRlICJOZXR3b3JrTG9hZC5oIgotI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCi0jaW5j
bHVkZSA8V2ViQ29yZS9IVFRQSGVhZGVyVmFsdWVzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9NSU1F
VHlwZVJlZ2lzdHJ5Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVj
a3MuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1RleHRSZXNvdXJjZURlY29kZXIuaD4KLQotI2luY2x1
ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLXN0
YXRpYyBOZXR3b3JrTG9hZFBhcmFtZXRlcnMgZ2VuZXJhdGVOZXR3b3JrTG9hZFBhcmFtZXRlcnMo
VVJMJiYgdXJsLCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIGpzb25QYXlsb2FkLCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJpZWQgcGNtRGF0YUNhcnJpZWQpCi17Ci0gICAgU3Ry
aW5nIGh0dHBNZXRob2QgPSBqc29uUGF5bG9hZCA/ICJQT1NUIl9zIDogIkdFVCJfczsKLQotICAg
IFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsgV1RGTW92ZSh1cmwpIH07Ci0gICAgcmVxdWVzdC5z
ZXRIVFRQTWV0aG9kKGh0dHBNZXRob2QpOwotICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxk
KEhUVFBIZWFkZXJOYW1lOjpDYWNoZUNvbnRyb2wsIFdlYkNvcmU6OkhUVFBIZWFkZXJWYWx1ZXM6
Om1heEFnZTAoKSk7Ci0gICAgaWYgKGpzb25QYXlsb2FkKSB7Ci0gICAgICAgIHJlcXVlc3Quc2V0
SFRUUENvbnRlbnRUeXBlKFdlYkNvcmU6OkhUVFBIZWFkZXJWYWx1ZXM6OmFwcGxpY2F0aW9uSlNP
TkNvbnRlbnRUeXBlKCkpOwotICAgICAgICByZXF1ZXN0LnNldEhUVFBCb2R5KFdlYkNvcmU6OkZv
cm1EYXRhOjpjcmVhdGUoanNvblBheWxvYWQtPnRvSlNPTlN0cmluZygpLnV0ZjgoKSkpOwotICAg
IH0KLQotICAgIE5ldHdvcmtMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVyczsKLSAgICBsb2Fk
UGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKLSAgICBsb2FkUGFyYW1ldGVycy5wYXJlbnRQ
SUQgPSBwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKLSAgICBsb2FkUGFyYW1ldGVycy5zdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSA9IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpFcGhlbWVyYWxT
dGF0ZWxlc3M7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdCA9IHRydWU7Ci0gICAgbG9hZFBhcmFtZXRlcnMucGNtRGF0YUNhcnJpZWQg
PSBwY21EYXRhQ2FycmllZDsKLQotICAgIHJldHVybiBsb2FkUGFyYW1ldGVyczsKLX0KLQotdm9p
ZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI6OnN0YXJ0KE5ldHdvcmtTZXNz
aW9uJiBzZXNzaW9uLCBVUkwmJiB1cmwsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYganNvblBheWxv
YWQsIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZCBwY21EYXRhQ2Fycmll
ZCwgQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBhdXRvIHBhcmFtZXRlcnMg
PSBnZW5lcmF0ZU5ldHdvcmtMb2FkUGFyYW1ldGVycyhXVEZNb3ZlKHVybCksIFdURk1vdmUoanNv
blBheWxvYWQpLCBwY21EYXRhQ2FycmllZCk7Ci0gICAgYXV0byBsb2FkZXIgPSBzdGQ6OnVuaXF1
ZV9wdHI8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyPihuZXcgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKHNlc3Npb24sIFdURk1vdmUocGFyYW1ldGVycyks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKSk7Ci0gICAgc2Vzc2lvbi5hZGRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIoV1RGTW92ZShsb2FkZXIpKTsKLX0KLQotUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5l
dHdvcmtMb2FkZXIoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtMb2FkUGFyYW1ldGVy
cyYmIHBhcmFtZXRlcnMsIENhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCi0gICAgOiBtX3Nl
c3Npb24obWFrZVdlYWtQdHIoc2Vzc2lvbikpCi0gICAgLCBtX2NvbXBsZXRpb25IYW5kbGVyKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQotewotICAgIG1fbmV0d29ya0xvYWQgPSBtYWtlVW5p
cXVlPE5ldHdvcmtMb2FkPigqdGhpcywgbnVsbHB0ciwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgKm1f
c2Vzc2lvbik7Ci0gICAgbV9uZXR3b3JrTG9hZC0+c3RhcnQoKTsKLX0KLQotUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjp+UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3Jr
TG9hZGVyKCkKLXsKLSAgICBjYW5jZWwoKTsKLX0KLQotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE5ldHdvcmtMb2FkZXI6OmZhaWwoUmVzb3VyY2VFcnJvciYmIGVycm9yKQotewotICAgIGlm
ICghbV9jb21wbGV0aW9uSGFuZGxlcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jb21wbGV0
aW9uSGFuZGxlcihXVEZNb3ZlKGVycm9yKSwgeyB9LCBudWxscHRyKTsKLSAgICBkaWRDb21wbGV0
ZSgpOwotfQotCi12b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6Y2Fu
Y2VsKCkKLXsKLSAgICBmYWlsKFJlc291cmNlRXJyb3IgeyBSZXNvdXJjZUVycm9yOjpUeXBlOjpD
YW5jZWxsYXRpb24gfSk7Ci19Ci0KLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3Jr
TG9hZGVyOjp3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmLCBSZXNv
dXJjZVJlcXVlc3QmJiwgUmVzb3VyY2VSZXNwb25zZSYmKQotewotICAgIGNhbmNlbCgpOwotfQot
Ci12b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgUmVzcG9uc2VDb21wbGV0aW9uSGFu
ZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmICghTUlNRVR5cGVSZWdpc3RyeTo6
aXNTdXBwb3J0ZWRKU09OTUlNRVR5cGUocmVzcG9uc2UubWltZVR5cGUoKSkpIHsKLSAgICAgICAg
ZmFpbCh7IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwsIDAsIHJlc3BvbnNlLnVybCgpLCAiTUlN
RSBUeXBlIGlzIG5vdCBhIEpTT04gTUlNRSB0eXBlIl9zIH0pOwotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihQb2xpY3lBY3Rpb246Oklnbm9yZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBtX3Jlc3BvbnNlID0gV1RGTW92ZShyZXNwb25zZSk7Ci0gICAgY29tcGxldGlvbkhhbmRs
ZXIoUG9saWN5QWN0aW9uOjpVc2UpOwotfQotCi12b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50
TmV0d29ya0xvYWRlcjo6ZGlkUmVjZWl2ZUJ1ZmZlcihSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZl
ciwgaW50IHJlcG9ydGVkRW5jb2RlZERhdGFMZW5ndGgpCi17Ci0gICAgaWYgKCFtX2RlY29kZXIp
Ci0gICAgICAgIG1fZGVjb2RlciA9IFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZSgiYXBwbGlj
YXRpb24vanNvbiJfcywgbV9yZXNwb25zZS50ZXh0RW5jb2RpbmdOYW1lKCkuaXNFbXB0eSgpID8g
V2ViQ29yZTo6VGV4dEVuY29kaW5nKCJVVEYtOCIpIDogV2ViQ29yZTo6VGV4dEVuY29kaW5nKG1f
cmVzcG9uc2UudGV4dEVuY29kaW5nTmFtZSgpKSk7Ci0KLSAgICBpZiAoYXV0byBzaXplID0gYnVm
ZmVyLT5zaXplKCkpCi0gICAgICAgIG1fanNvblN0cmluZy5hcHBlbmQobV9kZWNvZGVyLT5kZWNv
ZGUoYnVmZmVyLT5kYXRhKCksIHNpemUpKTsKLX0KLQotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE5ldHdvcmtMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoY29uc3QgV2ViQ29yZTo6TmV0d29y
a0xvYWRNZXRyaWNzJikKLXsKLSAgICBpZiAobV9kZWNvZGVyKQotICAgICAgICBtX2pzb25TdHJp
bmcuYXBwZW5kKG1fZGVjb2Rlci0+Zmx1c2goKSk7Ci0KLSAgICBpZiAoYXV0byBqc29uVmFsdWUg
PSBKU09OOjpWYWx1ZTo6cGFyc2VKU09OKG1fanNvblN0cmluZy50b1N0cmluZygpKSkKLSAgICAg
ICAgbV9jb21wbGV0aW9uSGFuZGxlcih7IH0sIG1fcmVzcG9uc2UsIGpzb25WYWx1ZS0+YXNPYmpl
Y3QoKSk7Ci0gICAgZWxzZQotICAgICAgICBtX2NvbXBsZXRpb25IYW5kbGVyKHsgfSwgbV9yZXNw
b25zZSwgbnVsbHB0cik7Ci0KLSAgICBkaWRDb21wbGV0ZSgpOwotfQotCi12b2lkIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6ZGlkRmFpbExvYWRpbmcoY29uc3QgUmVzb3Vy
Y2VFcnJvciYgZXJyb3IpCi17Ci0gICAgZmFpbChSZXNvdXJjZUVycm9yKGVycm9yKSk7Ci19Citu
YW1lc3BhY2UgUENNIHsKIAotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2Fk
ZXI6OmRpZENvbXBsZXRlKCkKKyNpZiAhUExBVEZPUk0oQ09DT0EpCit2b2lkIE5ldHdvcmtMb2Fk
ZXI6OnN0YXJ0KFVSTCYmLCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmLCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6UGNtRGF0YUNhcnJpZWQsIENhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
Ci0gICAgbV9uZXR3b3JrTG9hZCA9IG51bGxwdHI7Ci0gICAgaWYgKG1fc2Vzc2lvbikKLSAgICAg
ICAgbV9zZXNzaW9uLT5yZW1vdmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIo
dGhpcyk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0s
IHsgfSwgeyB9KTsKIH0KKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TmV0d29ya0xvYWRlci5oCmluZGV4IDFlMzllZTUyZjUzMTNmM2YxNmJmYTFmMmExZTJkMTU3
NzA2MWY4ZjAuLjMwMzMwNzdhNWY5NDNjNDY2ZTY0YWIxNjc0MjUxNzNkYjA1NDFlY2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaApAQCAtMjUsNDkgKzI1LDI1IEBACiAKICNwcmFnbWEg
b25jZQogCi0jaW5jbHVkZSAiTmV0d29ya0xvYWQuaCIKLSNpbmNsdWRlICJOZXR3b3JrTG9hZENs
aWVudC5oIgotI2luY2x1ZGUgIk5ldHdvcmtMb2FkUGFyYW1ldGVycy5oIgotI2luY2x1ZGUgPFdl
YkNvcmUvVGV4dFJlc291cmNlRGVjb2Rlci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8d3RmL0pTT05WYWx1
ZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNz
IFJlc291cmNlUmVzcG9uc2U7Cit9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBOZXR3
b3JrU2Vzc2lvbjsKK25hbWVzcGFjZSBQQ00gewogCi1jbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE5ldHdvcmtMb2FkZXIgZmluYWwgOiBwdWJsaWMgTmV0d29ya0xvYWRDbGllbnQgeworY2xh
c3MgTmV0d29ya0xvYWRlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
CiAgICAgdXNpbmcgQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29u
c3QgUmVmUHRyPEpTT046Ok9iamVjdD4mKT47Ci0gICAgc3RhdGljIHZvaWQgc3RhcnQoTmV0d29y
a1Nlc3Npb24mLCBVUkwmJiwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiwgV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVkLCBDYWxsYmFjayYmKTsKLQotICAgIH5Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIoKTsKLQotcHJpdmF0ZToKLSAgICBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIoTmV0d29ya1Nlc3Npb24mLCBOZXR3
b3JrTG9hZFBhcmFtZXRlcnMmJiwgQ2FsbGJhY2smJik7Ci0KLSAgICAvLyBOZXR3b3JrTG9hZENs
aWVudC4KLSAgICB2b2lkIGRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQs
IHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpIGZpbmFsIHsgfQotICAgIGJv
b2wgaXNTeW5jaHJvbm91cygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgYm9v
bCBpc0FsbG93ZWRUb0Fza1VzZXJGb3JDcmVkZW50aWFscygpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IGZhbHNlOyB9Ci0gICAgdm9pZCB3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZWRpcmVjdFJlcXVl
c3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlKSBmaW5hbDsK
LSAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYs
IFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZl
QnVmZmVyKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIGludCByZXBvcnRlZEVuY29kZWRE
YXRhTGVuZ3RoKSBmaW5hbDsKLSAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoY29uc3QgV2ViQ29y
ZTo6TmV0d29ya0xvYWRNZXRyaWNzJikgZmluYWw7Ci0gICAgdm9pZCBkaWRGYWlsTG9hZGluZyhj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgZmluYWw7Ci0KLSAgICB2b2lkIGZhaWwoV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYmKTsKLSAgICB2b2lkIGNhbmNlbCgpOwotICAgIHZvaWQgZGlk
Q29tcGxldGUoKTsKLQotICAgIFdlYWtQdHI8TmV0d29ya1Nlc3Npb24+IG1fc2Vzc2lvbjsKLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0xvYWQ+IG1fbmV0d29ya0xvYWQ7Ci0gICAgQ2FsbGJh
Y2sgbV9jb21wbGV0aW9uSGFuZGxlcjsKLQotICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Ug
bV9yZXNwb25zZTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6VGV4dFJlc291cmNlRGVjb2Rlcj4gbV9k
ZWNvZGVyOwotICAgIFN0cmluZ0J1aWxkZXIgbV9qc29uU3RyaW5nOworICAgIHN0YXRpYyB2b2lk
IHN0YXJ0KFVSTCYmLCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmLCBXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJpZWQsIENhbGxiYWNrJiYpOwogfTsKIAorfSAvLyBu
YW1lc3BhY2UgUENNCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQ3MzY1NWJiYTEw
NDA5NWIyMjNmYjQ0ODNlOTYzNmVmZDNhODIyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyQ29jb2EubW0KQEAgLTAsMCArMSwxMjIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlByaXZhdGVDbGlja01l
YXN1cmVtZW50TmV0d29ya0xvYWRlci5oIgorCisjaW1wb3J0ICJOZXR3b3JrU2Vzc2lvbkNvY29h
LmgiCisjaW1wb3J0IDxXZWJDb3JlL0hUVFBIZWFkZXJWYWx1ZXMuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvTUlNRVR5cGVSZWdpc3RyeS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEku
aD4KKyNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCisjaWYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9OZXR3b3JrRGF0YVRhc2tDb2NvYUFk
ZGl0aW9ucy5oPgorI2Vsc2UKK3N0YXRpYyB2b2lkIHByb2Nlc3NQQ01SZXF1ZXN0KFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZCwgTlNNdXRhYmxlVVJMUmVx
dWVzdCAqKSB7IH0KKyNlbmRpZgorCitAaW50ZXJmYWNlIFdLTmV0d29ya1Nlc3Npb25EZWxlZ2F0
ZUFsbG93aW5nT25seU5vblJlZGlyZWN0ZWRKU09OIDogTlNPYmplY3QgPE5TVVJMU2Vzc2lvbkRh
dGFEZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLTmV0d29ya1Nlc3Npb25EZWxl
Z2F0ZUFsbG93aW5nT25seU5vblJlZGlyZWN0ZWRKU09OCisKKy0gKHZvaWQpVVJMU2Vzc2lvbjoo
TlNVUkxTZXNzaW9uICopc2Vzc2lvbiB0YXNrOihOU1VSTFNlc3Npb25UYXNrICopdGFzayB3aWxs
UGVyZm9ybUhUVFBSZWRpcmVjdGlvbjooTlNIVFRQVVJMUmVzcG9uc2UgKilyZXNwb25zZSBuZXdS
ZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkIChe
KShOU1VSTFJlcXVlc3QgKikpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBjb21wbGV0aW9uSGFu
ZGxlcihuaWwpOworfQorCistICh2b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3Np
b24gZGF0YVRhc2s6KE5TVVJMU2Vzc2lvbkRhdGFUYXNrICopZGF0YVRhc2sgZGlkUmVjZWl2ZVJl
c3BvbnNlOihOU1VSTFJlc3BvbnNlICopcmVzcG9uc2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4pKE5TVVJMU2Vzc2lvblJlc3BvbnNlRGlzcG9zaXRpb24gZGlzcG9zaXRpb24pKWNvbXBsZXRp
b25IYW5kbGVyCit7CisgICAgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSlNPTk1J
TUVUeXBlKHJlc3BvbnNlLk1JTUVUeXBlKSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKE5TVVJMU2Vzc2lvblJlc3BvbnNlQWxsb3cpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKE5T
VVJMU2Vzc2lvblJlc3BvbnNlQ2FuY2VsKTsKK30KKworLSAodm9pZClVUkxTZXNzaW9uOihOU1VS
TFNlc3Npb24gKilzZXNzaW9uIHRhc2s6KE5TVVJMU2Vzc2lvblRhc2sgKil0YXNrIGRpZFJlY2Vp
dmVDaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UgY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3Np
dGlvbiBkaXNwb3NpdGlvbiwgTlNVUkxDcmVkZW50aWFsICpjcmVkZW50aWFsKSljb21wbGV0aW9u
SGFuZGxlcgoreworICAgIGlmIChbY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNh
dGlvbk1ldGhvZCBpc0VxdWFsVG9TdHJpbmc6TlNVUkxBdXRoZW50aWNhdGlvbk1ldGhvZFNlcnZl
clRydXN0XQorICAgICAgICAmJiBOZXR3b3JrU2Vzc2lvbkNvY29hOjphbGxvd3NTcGVjaWZpY0hU
VFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNoYWxsZW5nZSkpCisgICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlVXNlQ3JlZGVudGlhbCwgW05TVVJM
Q3JlZGVudGlhbCBjcmVkZW50aWFsRm9yVHJ1c3Q6Y2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5z
ZXJ2ZXJUcnVzdF0pOworICAgIGNvbXBsZXRpb25IYW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFs
bGVuZ2VQZXJmb3JtRGVmYXVsdEhhbmRsaW5nLCBuaWwpOworfQorCitAZW5kCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCituYW1lc3BhY2UgUENNIHsKKworZW51bSBMb2FkVGFza0lkZW50aWZpZXJU
eXBlIHsgfTsKK3VzaW5nIExvYWRUYXNrSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8TG9h
ZFRhc2tJZGVudGlmaWVyVHlwZT47CitzdGF0aWMgSGFzaE1hcDxMb2FkVGFza0lkZW50aWZpZXIs
IFJldGFpblB0cjxOU1VSTFNlc3Npb25EYXRhVGFzaz4+JiB0YXNrTWFwKCkKK3sKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxMb2FkVGFza0lkZW50aWZpZXIsIFJldGFpblB0cjxO
U1VSTFNlc3Npb25EYXRhVGFzaz4+PiBtYXA7CisgICAgcmV0dXJuIG1hcC5nZXQoKTsKK30KKwor
c3RhdGljIE5TVVJMU2Vzc2lvbiAqc3RhdGVsZXNzU2Vzc2lvbldpdGhvdXRSZWRpcmVjdHMoKQor
eworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8V0tOZXR3b3JrU2Vzc2lvbkRl
bGVnYXRlQWxsb3dpbmdPbmx5Tm9uUmVkaXJlY3RlZEpTT04+PiBkZWxlZ2F0ZSA9IGFkb3B0TlMo
W1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZUFsbG93aW5nT25seU5vblJlZGlyZWN0ZWRKU09OIG5l
d10pOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8TlNVUkxTZXNzaW9uPj4g
c2Vzc2lvbiA9IFsmXSB7CisgICAgICAgIE5TVVJMU2Vzc2lvbkNvbmZpZ3VyYXRpb24gKmNvbmZp
Z3VyYXRpb24gPSBbTlNVUkxTZXNzaW9uQ29uZmlndXJhdGlvbiBlcGhlbWVyYWxTZXNzaW9uQ29u
ZmlndXJhdGlvbl07CisgICAgICAgIGNvbmZpZ3VyYXRpb24uSFRUUENvb2tpZUFjY2VwdFBvbGlj
eSA9IE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOworICAgICAgICBjb25maWd1cmF0aW9u
LlVSTENyZWRlbnRpYWxTdG9yYWdlID0gbmlsOworICAgICAgICBjb25maWd1cmF0aW9uLlVSTENh
Y2hlID0gbmlsOworICAgICAgICBjb25maWd1cmF0aW9uLl9zaG91bGRTa2lwUHJlZmVycmVkQ2xp
ZW50Q2VydGlmaWNhdGVMb29rdXAgPSBZRVM7CisgICAgICAgIHJldHVybiBhZG9wdE5TKFtOU1VS
TFNlc3Npb24gc2Vzc2lvbldpdGhDb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24gZGVsZWdhdGU6
ZGVsZWdhdGUuZ2V0KCkuZ2V0KCkgZGVsZWdhdGVRdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBtYWlu
UXVldWVdXSk7CisgICAgfSgpOworICAgIHJldHVybiBzZXNzaW9uLmdldCgpLmdldCgpOworfQor
Cit2b2lkIE5ldHdvcmtMb2FkZXI6OnN0YXJ0KFVSTCYmIHVybCwgUmVmUHRyPEpTT046Ok9iamVj
dD4mJiBqc29uUGF5bG9hZCwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURh
dGFDYXJyaWVkIHBjbURhdGFDYXJyaWVkLCBDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGF1
dG8gcmVxdWVzdCA9IGFkb3B0TlMoW1tOU011dGFibGVVUkxSZXF1ZXN0IGFsbG9jXSBpbml0V2l0
aFVSTDp1cmxdKTsKKyAgICBbcmVxdWVzdCBzZXRWYWx1ZTpXZWJDb3JlOjpIVFRQSGVhZGVyVmFs
dWVzOjptYXhBZ2UwKCkgZm9ySFRUUEhlYWRlckZpZWxkOkAiQ2FjaGUtQ29udHJvbCJdOworICAg
IGlmIChqc29uUGF5bG9hZCkgeworICAgICAgICByZXF1ZXN0LmdldCgpLkhUVFBNZXRob2QgPSBA
IlBPU1QiOworICAgICAgICBbcmVxdWVzdCBzZXRWYWx1ZTpXZWJDb3JlOjpIVFRQSGVhZGVyVmFs
dWVzOjphcHBsaWNhdGlvbkpTT05Db250ZW50VHlwZSgpIGZvckhUVFBIZWFkZXJGaWVsZDpAIkNv
bnRlbnQtVHlwZSJdOworICAgICAgICBhdXRvIGJvZHkgPSBqc29uUGF5bG9hZC0+dG9KU09OU3Ry
aW5nKCkudXRmOCgpOworICAgICAgICByZXF1ZXN0LmdldCgpLkhUVFBCb2R5ID0gYWRvcHROUyhb
W05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczpib2R5LmRhdGEoKSBsZW5ndGg6Ym9keS5sZW5n
dGgoKV0pLmdldCgpOworICAgIH0KKworICAgIHByb2Nlc3NQQ01SZXF1ZXN0KHBjbURhdGFDYXJy
aWVkLCByZXF1ZXN0LmdldCgpKTsKKworICAgIGF1dG8gaWRlbnRpZmllciA9IExvYWRUYXNrSWRl
bnRpZmllcjo6Z2VuZXJhdGUoKTsKKyAgICBOU1VSTFNlc3Npb25EYXRhVGFzayAqdGFzayA9IFtz
dGF0ZWxlc3NTZXNzaW9uV2l0aG91dFJlZGlyZWN0cygpIGRhdGFUYXNrV2l0aFJlcXVlc3Q6cmVx
dWVzdC5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayksIGlkZW50aWZpZXJdKE5TRGF0YSAqZGF0YSwgTlNVUkxSZXNwb25zZSAq
cmVzcG9uc2UsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgdGFza01hcCgpLnJl
bW92ZShpZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgcmV0dXJu
IGNhbGxiYWNrKGVycm9yLCB7IH0sIHsgfSk7CisgICAgICAgIGlmIChhdXRvIGpzb25WYWx1ZSA9
IEpTT046OlZhbHVlOjpwYXJzZUpTT04oU3RyaW5nOjpmcm9tVVRGOChzdGF0aWNfY2FzdDxjb25z
dCBMQ2hhcio+KGRhdGEuYnl0ZXMpLCBkYXRhLmxlbmd0aCkpKQorICAgICAgICAgICAgcmV0dXJu
IGNhbGxiYWNrKHsgfSwgcmVzcG9uc2UsIGpzb25WYWx1ZS0+YXNPYmplY3QoKSk7CisgICAgICAg
IGNhbGxiYWNrKHsgfSwgcmVzcG9uc2UsIG51bGxwdHIpOworICAgIH0pLmdldCgpXTsKKyAgICBb
dGFzayByZXN1bWVdOworICAgIHRhc2tNYXAoKS5hZGQoaWRlbnRpZmllciwgdGFzayk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFBDTQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29j
b2EuaAppbmRleCA0ZWJiZDkwY2M2NDVkZjVmOWRkYmI4NjBkMDhhYTNlYjA1M2MyZmY2Li4zOTE0
ODlkNjQ0NWY0NmNhN2E3YjFmODc4ZmIxZmEwZDllODNiN2I0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5o
CkBAIC0yOSwxMCArMjksMTIgQEAKICNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2suaCIKICNpbmNs
dWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtM
b2FkTWV0cmljcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQu
aD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIE9CSkNfQ0xBU1MgTlNIVFRQQ29va2ll
U3RvcmFnZTsKIE9CSkNfQ0xBU1MgTlNVUkxTZXNzaW9uRGF0YVRhc2s7CitPQkpDX0NMQVNTIE5T
TXV0YWJsZVVSTFJlcXVlc3Q7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlZ2lzdHJh
YmxlRG9tYWluOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXggNjg3MDg1MTkyNTI4ODU3MWJkNmM3
NjNiM2U2MDMxM2Q5MjYwZTk4Yy4uN2Y5ODg4ZGEyNjYyZTY2ZDk3OTJhMTM3YmJhZWZlODdjMGU1
MjdiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC01Nyw3ICs1Nyw2IEBACiAjaWYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9OZXR3b3JrRGF0YVRh
c2tDb2NvYUFkZGl0aW9ucy5oPgogI2Vsc2UKLXN0YXRpYyB2b2lkIHByb2Nlc3NQQ01SZXF1ZXN0
KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZCwgTlNNdXRh
YmxlVVJMUmVxdWVzdCAqKSB7IH0KIHN0YXRpYyB2b2lkIG92ZXJyaWRlQXR0cmlidXRpb25Db250
ZXh0KE5TTXV0YWJsZVVSTFJlcXVlc3QgKikgeyB9CiAjZW5kaWYKIApAQCAtMzQ3LDkgKzM0Niw2
IEBAIE5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vz
c2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUCiAKICAgICBvdmVycmlkZUF0dHJpYnV0aW9uQ29u
dGV4dChtdXRhYmxlUmVxdWVzdC5nZXQoKSk7CiAKLSAgICBpZiAocGFyYW1ldGVycy5wY21EYXRh
Q2FycmllZCkKLSAgICAgICAgcHJvY2Vzc1BDTVJlcXVlc3QoKnBhcmFtZXRlcnMucGNtRGF0YUNh
cnJpZWQsIG11dGFibGVSZXF1ZXN0LmdldCgpKTsKLQogICAgIG5zUmVxdWVzdCA9IG11dGFibGVS
ZXF1ZXN0OwogCiAjaWYgRU5BQkxFKEFQUF9QUklWQUNZX1JFUE9SVCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dAppbmRleCA3OGZiNDI0MTIyM2IwMzI3NWE5NjZkOWY3NWFjMDBmY2E0OWE3ZjZkLi44OTEz
ODM0ZjZiYjVmOTM5ZTcyMGIwOWVmY2IwMmM5NTQ0Zjg0YWFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CkBAIC00MSw2ICs0MSw4IEBAIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9Eb3du
bG9hZENvY29hLm1tCiBOZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL0RhZW1vbi9EYWVt
b25FbnRyeVBvaW50Lm1tCiBOZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZp
Y2UvTmV0d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1tCiAKK05ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRl
ckNvY29hLm1tCisKIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvaW9zL0xvY2FsU3RvcmFnZURh
dGFiYXNlVHJhY2tlcklPUy5tbQogCiBOZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3NJT1MubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDMwYmM4MDg4MmMwNGVlZjFjYzAzOTBmNGFkNTdkZTA2NjVi
ZTBmNjEuLmNmOWUwZGY1NGJmNjhiMjUwMDFjNmNjMWQ5ZWJjYjczYWUyMTE3M2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDU1NSw2
ICs0NTU1LDcgQEAKIAkJNUNCOTMwQkYyNkUwNTQyRTAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01l
YXN1cmVtZW50Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByaXZh
dGVDbGlja01lYXN1cmVtZW50Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVDQjkzMEMwMjZFMDU0MkYwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVu
dEltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDbGllbnRJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNUNCOTMwQzEyNkUwNTRCODAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xp
ZW50SW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENsaWVudEltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUNC
OTMwRjIyNkU3RUVFMDAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xv
YWRlckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVDQkM5Qjg5MUM2NTI0QTUwMEE4RkRDRiAvKiBOZXR3b3JrRGF0YVRh
c2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0RhdGFUYXNrLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQkM5QjhCMUM2NTI1NzMwMEE4RkRDRiAv
KiBOZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IE5ldHdvcmtEYXRhVGFza0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1Q0JFOTA4RjI2RDdGQjYyMDA1QTJFOTUgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnREZWJ1Z0luZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnREZWJ1Z0luZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTkyNjAsNiArOTI2MSw3IEBACiAJCTVDMDFCQzM1MjZENDZBRDQwMEZFQjQyRiAvKiBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJNUNCOTMwRjEyNkU3RUU4OTAwMzJCMUMwIC8qIGNvY29hICovLAogCQkJCTVDQjkz
MEJGMjZFMDU0MkUwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudC5oICov
LAogCQkJCTVDQjkzMEMwMjZFMDU0MkYwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dENsaWVudEltcGwuY3BwICovLAogCQkJCTVDQjkzMEMxMjZFMDU0QjgwMDMyQjFDMCAvKiBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudEltcGwuaCAqLywKQEAgLTkzNTMsNiArOTM1NSwxNCBA
QAogCQkJcGF0aCA9IENvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJ
NUNCOTMwRjEyNkU3RUU4OTAwMzJCMUMwIC8qIGNvY29hICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1Q0I5MzBGMjI2RTdFRUUwMDAzMkIxQzAgLyogUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyQ29jb2EubW0gKi8sCisJCQkpOworCQkJ
cGF0aCA9IGNvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNkJFOTY5
QkYxRTU0RDQ1MjAwOEI3NDgzIC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAo=
</data>
<flag name="review"
          id="460740"
          type_id="1"
          status="+"
          setter="wilander"
    />
    <flag name="commit-queue"
          id="460739"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437552</attachid>
            <date>2021-09-07 13:17:01 -0700</date>
            <delta_ts>2021-09-07 15:10:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230015-20210907131700.patch</filename>
            <type>text/plain</type>
            <size>34708</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEzZGEzNThjZGM5YjZiZjYz
OGFkODZiYzM2YzQ4MWM3YmU2ZmVjYjMuLjc2Yzg5ZGNmNjYyOGIyMTRhYWQ5NjU2ZTgxMTM4MWJj
NDczOTQ5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjEtMDktMDcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXBsYWNlIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6c3RhcnQgd2l0aCBhbiBpbXBsZW1l
bnRhdGlvbiB0aGF0IGRvZXNuJ3QgbmVlZCBOZXR3b3JrU2Vzc2lvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMDE1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBuZWVkZWQgdG8gcnVuIHRo
aXMgY29kZSBpbiBhIHByb2Nlc3MgdGhhdCBkb2Vzbid0IGhhdmUgTmV0d29ya1Nlc3Npb24sIHdo
aWNoIGlzIGEgY2xhc3MgdGllZCBjbG9zZWx5IHRvIFdLV2Vic2l0ZURhdGFTdG9yZS4KKyAgICAg
ICAgVGhpcyByZXBsYWNlcyBpdCB3aXRoIGEgc2ltcGxlIGltcGxlbWVudGF0aW9uIHRoYXQgZG9l
cyB0aGUgc2FtZSB0aGluZ3M6CisgICAgICAgIDEuIFVzZXMgYW4gZXBoZW1lcmFsIHN0YXRlbGVz
cyBzZXNzaW9uIHRoYXQgZG9lc24ndCBhY2NlcHQgY29va2llcyBvciB1c2UgY3JlZGVudGlhbHMu
CisgICAgICAgIDIuIERvZXMgbm90IGFsbG93IHJlZGlyZWN0cy4KKyAgICAgICAgMy4gT25seSBh
Y2NlcHRzIEpTT04gbWltZSB0eXBlcy4KKyAgICAgICAgNC4gQ2FsbHMgcHJvY2Vzc1BDTVJlcXVl
c3QKKworICAgICAgICBXZSBzdGlsbCBuZWVkIHRvIGNhbGwgTmV0d29ya1Nlc3Npb25Db2NvYTo6
YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdCB0byBnZXQgdGVzdHMgdG8gcGFz
cy4KKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtTZXNzaW9uOjphZGRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6cmVtb3ZlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVu
dC5oOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNsaWVudDo6fkNsaWVudCk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpDbGllbnRJbXBsOjps
b2FkRnJvbU5ldHdvcmspOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6Z2V0VG9rZW5QdWJsaWNLZXkpOgorICAgICAgICAoV2ViS2l0
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmdldFNpZ25lZFVubGlua2FibGVUb2tl
bik6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Zmly
ZUNvbnZlcnNpb25SZXF1ZXN0SW1wbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpOZXR3b3JrTG9hZGVyOjpzdGFydCk6CisgICAgICAg
IChXZWJLaXQ6OmdlbmVyYXRlTmV0d29ya0xvYWRQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjpzdGFydCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29y
a0xvYWRlcjo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjp+
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjpmYWlsKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9h
ZGVyOjpjYW5jZWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE5ldHdvcmtMb2FkZXI6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI6
OmRpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6ZGlkUmVjZWl2ZUJ1ZmZlcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6
ZGlkRmluaXNoTG9hZGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6ZGlkRmFpbExvYWRpbmcpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI6OmRpZENv
bXBsZXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaDoKKyAgICAg
ICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyQ29jb2Eu
bW06IEFkZGVkLgorICAgICAgICAocHJvY2Vzc1BDTVJlcXVlc3QpOgorICAgICAgICAoLVtXS05l
dHdvcmtTZXNzaW9uRGVsZWdhdGVBbGxvd2luZ09ubHlOb25SZWRpcmVjdGVkSlNPTiBVUkxTZXNz
aW9uOnRhc2s6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb246bmV3UmVxdWVzdDpjb21wbGV0aW9u
SGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlQWxsb3dpbmdP
bmx5Tm9uUmVkaXJlY3RlZEpTT04gVVJMU2Vzc2lvbjpkYXRhVGFzazpkaWRSZWNlaXZlUmVzcG9u
c2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25EZWxl
Z2F0ZUFsbG93aW5nT25seU5vblJlZGlyZWN0ZWRKU09OIFVSTFNlc3Npb246dGFzazpkaWRSZWNl
aXZlQ2hhbGxlbmdlOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoV2ViS2l0OjpQQ006
OnRhc2tNYXApOgorICAgICAgICAoV2ViS2l0OjpQQ006OnN0YXRlbGVzc1Nlc3Npb25XaXRob3V0
UmVkaXJlY3RzKToKKyAgICAgICAgKFdlYktpdDo6UENNOjpOZXR3b3JrTG9hZGVyOjpzdGFydCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0Nv
Y29hKToKKyAgICAgICAgKHByb2Nlc3NQQ01SZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBT
b3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDIxLTA5LTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgSW1wbGVtZW50IG9yaWdpbiBwYXJ0aXRpb25pbmcgKHRvcC1vcmlnaW4vZnJhbWUtb3Jp
Z2luKSBmb3IgQnJvYWRjYXN0Q2hhbm5lbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKaW5kZXggMDRjYjAzOTBjOWNmZDg2Yjkx
MWQ0OGY5YWY5Y2QxNzJlOGIzYTczNy4uNzE5YzM5ZGIwNGYwYjMwOGRjMWY1YTJkMDQ4ZjBkZTFk
NDk5YmZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkUGFyYW1ldGVycy5oCkBAIC02Nyw3ICs2Nyw2IEBAIHB1YmxpYzoKICAgICBQcmVjb25u
ZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSB7IFByZWNvbm5lY3RPbmx5OjpObyB9OwogICAg
IHN0ZDo6b3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5VHJh
Y2tlcjsKICAgICBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluIHsgTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW46Ok5v
IH07Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
UGNtRGF0YUNhcnJpZWQ+IHBjbURhdGFDYXJyaWVkOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCmluZGV4IDMwNDFkNGY4YTMwNzY1MTc5MzM1
ZDFhMDY4ODg1ZDZkOGMwM2ZmMjMuLmY0MWY1NTkwYmQ2ZmZmNzc2ODNjMGM4MjFiMDVjNjZjYWU1
NGExMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCkBAIC0xMjcsNyArMTI3LDYgQEAg
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKICNlbmRpZgogICAgIAogICAgIGVuY29kZXIgPDwgaXNOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbjsKLSAgICBlbmNvZGVyIDw8IHBjbURhdGFDYXJyaWVkOwogfQogCiBz
dGQ6Om9wdGlvbmFsPE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzPiBOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTMyOSwx
MiArMzI4LDYgQEAgc3RkOjpvcHRpb25hbDxOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycz4g
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY28KICAgICBpZiAoIWlzTmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW4pCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgcmVz
dWx0LmlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4gPSAqaXNOYXZpZ2F0aW5nVG9BcHBCb3Vu
ZERvbWFpbjsKLQotICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJpZWQ+PiBwY21EYXRhQ2FycmllZDsKLSAg
ICBkZWNvZGVyID4+IHBjbURhdGFDYXJyaWVkOwotICAgIGlmICghcGNtRGF0YUNhcnJpZWQpCi0g
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmVzdWx0LnBjbURhdGFDYXJyaWVkID0g
KnBjbURhdGFDYXJyaWVkOwogICAgIAogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggZjVhMDYyZDkxYjY0
NzQwOTI5NTNhY2ZiZDJkMDJjOTdjMDg4ODRkYS4uNzBhMWI0OTFiMjQzYWFlZmIzZDI3YmRjYWQw
MGE2MDVlNDI0ZjUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uaApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIk5hdmlnYXRpbmdUb0FwcEJv
dW5kRG9tYWluLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXIuaCIK
ICNpbmNsdWRlICJQcmVmZXRjaENhY2hlLmgiCi0jaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnROZXR3b3JrTG9hZGVyLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2lu
Y2x1ZGUgIlNlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmgiCiAjaW5jbHVkZSAiV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCkBAIC0xNzQsOSArMTczLDYgQEAgcHVibGljOgog
ICAgIEFwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YSYgYXBwUHJpdmFjeVJlcG9ydFRlc3RpbmdE
YXRhKCkgeyByZXR1cm4gbV9hcHBQcml2YWN5UmVwb3J0VGVzdGluZ0RhdGE7IH0KICNlbmRpZgog
Ci0gICAgdm9pZCBhZGRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIoc3RkOjp1
bmlxdWVfcHRyPFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcj4mJiBsb2FkZXIp
IHsgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJzLmFkZChXVEZNb3ZlKGxv
YWRlcikpOyB9Ci0gICAgdm9pZCByZW1vdmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtM
b2FkZXIoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKiBsb2FkZXIpIHsgbV9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJzLnJlbW92ZShsb2FkZXIpOyB9Ci0K
ICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTmV0d29ya1dlYnNpdGVEYXRhKHN0ZDo6b3B0aW9uYWw8
V2FsbFRpbWU+LCBzdGQ6Om9wdGlvbmFsPEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4+PiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsg
Y29tcGxldGlvbkhhbmRsZXIoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGFkZFdlYlBhZ2VOZXR3
b3JrUGFyYW1ldGVycyhXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJQYWdlTmV0d29ya1BhcmFt
ZXRlcnMmJikgeyB9CkBAIC0yNDgsNyArMjQ0LDYgQEAgcHJvdGVjdGVkOgogICAgIEFwcFByaXZh
Y3lSZXBvcnRUZXN0aW5nRGF0YSBtX2FwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YTsKICNlbmRp
ZgogCi0gICAgSGFzaFNldDxzdGQ6OnVuaXF1ZV9wdHI8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRO
ZXR3b3JrTG9hZGVyPj4gbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJzOwog
ICAgIEhhc2hNYXA8V2ViUGFnZVByb3h5SWRlbnRpZmllciwgU3RyaW5nPiBtX2F0dHJpYnV0ZWRC
dW5kbGVJZGVudGlmaWVyRnJvbVBhZ2VJZGVudGlmaWVyczsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnQuaApp
bmRleCBjNjMxNzQ2YjI4MDM3YTlkOWNjY2ZkYjVmNGJkYTRiN2RiZDIzMDhiLi5jYmJmNDllZTE4
ZTA4YzhhOTViYjUyYjMxNDg3ODg2MDUwNGNiMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudC5oCkBAIC00Niw4
ICs0Niw2IEBAIG5hbWVzcGFjZSBQQ00gewogY2xhc3MgQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5DbGllbnQoKSB7IH0KLSAgICB1c2luZyBOZXR3b3JrTG9hZENhbGxiYWNrID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlZlB0cjxKU09OOjpPYmplY3Q+Jik+
OwotICAgIHZpcnR1YWwgdm9pZCBsb2FkRnJvbU5ldHdvcmsoVVJMJiYsIFJlZlB0cjxKU09OOjpP
YmplY3Q+JiYsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2Fycmll
ZCwgTmV0d29ya0xvYWRDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGJyb2FkY2Fz
dENvbnNvbGVNZXNzYWdlKEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmKSA9IDA7CiAg
ICAgdmlydHVhbCBib29sIGZlYXR1cmVFbmFibGVkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwg
Ym9vbCBkZWJ1Z01vZGVFbmFibGVkKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudEltcGwu
Y3BwCmluZGV4IDdlY2QxMzU3ODIxYmQ2MzYyNTRjOGRkZDM2YTJiODcyMWJhMDFkMjAuLjVkZWFm
MDc0ZjhkN2E1MGFmYWZiNGY1MWMyMzYyOTNlOGU1NDlhMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50
SW1wbC5jcHAKQEAgLTM3LDE0ICszNyw2IEBAIENsaWVudEltcGw6OkNsaWVudEltcGwoTmV0d29y
a1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcykKICAgICA6
IG1fbmV0d29ya1Nlc3Npb24obWFrZVdlYWtQdHIoc2Vzc2lvbikpCiAgICAgLCBtX25ldHdvcmtQ
cm9jZXNzKG5ldHdvcmtQcm9jZXNzKSB7IH0KIAotdm9pZCBDbGllbnRJbXBsOjpsb2FkRnJvbU5l
dHdvcmsoVVJMJiYgdXJsLCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIGpzb25QYXlsb2FkLCBXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJpZWQgcGNtRGF0YUNhcnJp
ZWQsIE5ldHdvcmtMb2FkQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAo
IWZlYXR1cmVFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJD
b3JlOjpSZXNvdXJjZUVycm9yKFdlYkNvcmU6OlJlc291cmNlRXJyb3I6OlR5cGU6OkNhbmNlbGxh
dGlvbiksIHsgfSwgeyB9KTsKLQotICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xv
YWRlcjo6c3RhcnQoKm1fbmV0d29ya1Nlc3Npb24sIFdURk1vdmUodXJsKSwgV1RGTW92ZShqc29u
UGF5bG9hZCksIHBjbURhdGFDYXJyaWVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci19
Ci0KIHZvaWQgQ2xpZW50SW1wbDo6YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoSlNDOjpNZXNzYWdl
TGV2ZWwgbWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgaWYgKCFm
ZWF0dXJlRW5hYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudElt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJbXBsLmgKaW5kZXggYmI3YWU2MzUxMjhi
NTExZjMyOWVkZWNhYTM5ZTA0NmNiMWYwN2NmOC4uMDYyNTUxYjQyNTkzMTQyYmQ4YzY4NDlkNzZj
OGFmODVmZTVlNDZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudEltcGwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5oCkBAIC00Myw3ICs0Myw2IEBA
IHB1YmxpYzoKICAgICBDbGllbnRJbXBsKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya1Byb2Nlc3Mm
KTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGxvYWRGcm9tTmV0d29yayhVUkwmJiwgUmVmUHRyPEpT
T046Ok9iamVjdD4mJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFD
YXJyaWVkLCBOZXR3b3JrTG9hZENhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgYnJvYWRjYXN0
Q29uc29sZU1lc3NhZ2UoSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYpIGZpbmFsOwog
ICAgIGJvb2wgZmVhdHVyZUVuYWJsZWQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGRlYnVnTW9k
ZUVuYWJsZWQoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcAppbmRleCA0ZWRmNjI1
NzY2MjcyOTNiYmFjNWQ3ZDkxYmRjOWZlNzZlZDYyYzE1Li4yZDc4MmJhMmVhYmYzZDUyYjhlMjAy
ZTRkNmM3NjhlZDJjZTk3NTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCiAj
aW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z0luZm8uaCIKKyNpbmNsdWRlICJQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaCIKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoT3B0aW9ucy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRm9ybURhdGEuaD4KQEAgLTEzMSw3ICsxMzIsNyBAQCB2b2lk
IFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Z2V0VG9rZW5QdWJsaWNLZXkoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQmJgogICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQsICJBYm91dCB0byBmaXJlIGEgdG9rZW4gcHVibGljIGtleSByZXF1ZXN0LiIpOwog
ICAgIG1fY2xpZW50LT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShNZXNzYWdlTGV2ZWw6OkxvZywg
IltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBBYm91dCB0byBmaXJlIGEgdG9rZW4gcHVibGlj
IGtleSByZXF1ZXN0LiJfcyk7CiAKLSAgICBtX2NsaWVudC0+bG9hZEZyb21OZXR3b3JrKFdURk1v
dmUodG9rZW5QdWJsaWNLZXlVUkwpLCBudWxscHRyLCBwY21EYXRhQ2FycmllZCwgW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzLCBhdHRyaWJ1dGlvbiA9IFdURk1vdmUoYXR0cmli
dXRpb24pLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoYXV0byYgZXJyb3IsIGF1dG8m
IHJlc3BvbnNlLCBhdXRvJiBqc29uT2JqZWN0KSBtdXRhYmxlIHsKKyAgICBQQ006Ok5ldHdvcmtM
b2FkZXI6OnN0YXJ0KFdURk1vdmUodG9rZW5QdWJsaWNLZXlVUkwpLCBudWxscHRyLCBwY21EYXRh
Q2FycmllZCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzLCBhdHRyaWJ1dGlv
biA9IFdURk1vdmUoYXR0cmlidXRpb24pLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAo
YXV0byYgZXJyb3IsIGF1dG8mIHJlc3BvbnNlLCBhdXRvJiBqc29uT2JqZWN0KSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTQ5LDcg
KzE1MCw2IEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpnZXRUb2tlblB1
YmxpY0tleShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmCiAKICAgICAgICAgY2FsbGJhY2soV1RG
TW92ZShhdHRyaWJ1dGlvbiksIGpzb25PYmplY3QtPmdldFN0cmluZygidG9rZW5fcHVibGljX2tl
eSJfcykpOwogICAgIH0pOwotCiB9CiAKIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyOjpnZXRTaWduZWRVbmxpbmthYmxlVG9rZW4oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiBt
ZWFzdXJlbWVudCkKQEAgLTE3NSw3ICsxNzUsNyBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlcjo6Z2V0U2lnbmVkVW5saW5rYWJsZVRva2VuKFByaXZhdGVDbGlja01lYXN1cgog
ICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJBYm91dCB0byBm
aXJlIGEgdW5saW5rYWJsZSB0b2tlbiBzaWduaW5nIHJlcXVlc3QuIik7CiAgICAgbV9jbGllbnQt
PmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VMZXZlbDo6TG9nLCAiW1ByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnRdIEFib3V0IHRvIGZpcmUgYSB1bmxpbmthYmxlIHRva2VuIHNpZ25pbmcg
cmVxdWVzdC4iX3MpOwogCi0gICAgbV9jbGllbnQtPmxvYWRGcm9tTmV0d29yayhXVEZNb3ZlKHRv
a2VuU2lnbmF0dXJlVVJMKSwgbWVhc3VyZW1lbnQudG9rZW5TaWduYXR1cmVKU09OKCksIHBjbURh
dGFDYXJyaWVkLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXMsIG1lYXN1cmVt
ZW50ID0gV1RGTW92ZShtZWFzdXJlbWVudCldIChhdXRvJiBlcnJvciwgYXV0byYgcmVzcG9uc2Us
IGF1dG8mIGpzb25PYmplY3QpIG11dGFibGUgeworICAgIFBDTTo6TmV0d29ya0xvYWRlcjo6c3Rh
cnQoV1RGTW92ZSh0b2tlblNpZ25hdHVyZVVSTCksIG1lYXN1cmVtZW50LnRva2VuU2lnbmF0dXJl
SlNPTigpLCBwY21EYXRhQ2FycmllZCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0
aGlzLCBtZWFzdXJlbWVudCA9IFdURk1vdmUobWVhc3VyZW1lbnQpXSAoYXV0byYgZXJyb3IsIGF1
dG8mIHJlc3BvbnNlLCBhdXRvJiBqc29uT2JqZWN0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3
ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJlcXVlc3RJbXBs
KGNvbnN0IFByaXZhdGVDbGljCiAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCwgIkFib3V0IHRvIGZpcmUgYW4gYXR0cmlidXRpb24gcmVxdWVzdC4iKTsKICAgICBt
X2NsaWVudC0+YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoTWVzc2FnZUxldmVsOjpMb2csICJbUHJp
dmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQWJvdXQgdG8gZmlyZSBhbiBhdHRyaWJ1dGlvbiByZXF1
ZXN0LiJfcyk7CiAKLSAgICBtX2NsaWVudC0+bG9hZEZyb21OZXR3b3JrKFdURk1vdmUoYXR0cmli
dXRpb25VUkwpLCBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydEpTT04oKSwgcGNtRGF0YUNh
cnJpZWQsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpc10oYXV0byYgZXJyb3Is
IGF1dG8mIHJlc3BvbnNlLCBhdXRvJikgeworICAgIFBDTTo6TmV0d29ya0xvYWRlcjo6c3RhcnQo
V1RGTW92ZShhdHRyaWJ1dGlvblVSTCksIGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0SlNP
TigpLCBwY21EYXRhQ2FycmllZCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlz
XShhdXRvJiBlcnJvciwgYXV0byYgcmVzcG9uc2UsIGF1dG8mKSB7CiAgICAgICAgIGlmICghd2Vh
a1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnROZXR3b3JrTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVy
LmNwcAppbmRleCA4M2U3ZTM0NTllM2NkMDI2OGU4NDNlYjdmYTFlOGMxOWU2YmM4NDFjLi40NWEw
NWVlMWFiMzZlZTFhN2Q4NDQ3N2ZmYTExNjQ0YjU5ODhmOThhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50TmV0d29ya0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5l
dHdvcmtMb2FkZXIuY3BwCkBAIC0yNiwxMjQgKzI2LDIwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmgiCiAKLSNp
bmNsdWRlICJOZXR3b3JrTG9hZC5oIgotI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCi0jaW5j
bHVkZSA8V2ViQ29yZS9IVFRQSGVhZGVyVmFsdWVzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9NSU1F
VHlwZVJlZ2lzdHJ5Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVj
a3MuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1RleHRSZXNvdXJjZURlY29kZXIuaD4KLQotI2luY2x1
ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CituYW1l
c3BhY2UgUENNIHsKIAotc3RhdGljIE5ldHdvcmtMb2FkUGFyYW1ldGVycyBnZW5lcmF0ZU5ldHdv
cmtMb2FkUGFyYW1ldGVycyhVUkwmJiB1cmwsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYganNvblBh
eWxvYWQsIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZCBwY21EYXRhQ2Fy
cmllZCkKKyNpZiAhUExBVEZPUk0oQ09DT0EpCit2b2lkIE5ldHdvcmtMb2FkZXI6OnN0YXJ0KFVS
TCYmLCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNt
RGF0YUNhcnJpZWQsIENhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgU3RyaW5n
IGh0dHBNZXRob2QgPSBqc29uUGF5bG9hZCA/ICJQT1NUIl9zIDogIkdFVCJfczsKLQotICAgIFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0IHsgV1RGTW92ZSh1cmwpIH07Ci0gICAgcmVxdWVzdC5zZXRI
VFRQTWV0aG9kKGh0dHBNZXRob2QpOwotICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhU
VFBIZWFkZXJOYW1lOjpDYWNoZUNvbnRyb2wsIFdlYkNvcmU6OkhUVFBIZWFkZXJWYWx1ZXM6Om1h
eEFnZTAoKSk7Ci0gICAgaWYgKGpzb25QYXlsb2FkKSB7Ci0gICAgICAgIHJlcXVlc3Quc2V0SFRU
UENvbnRlbnRUeXBlKFdlYkNvcmU6OkhUVFBIZWFkZXJWYWx1ZXM6OmFwcGxpY2F0aW9uSlNPTkNv
bnRlbnRUeXBlKCkpOwotICAgICAgICByZXF1ZXN0LnNldEhUVFBCb2R5KFdlYkNvcmU6OkZvcm1E
YXRhOjpjcmVhdGUoanNvblBheWxvYWQtPnRvSlNPTlN0cmluZygpLnV0ZjgoKSkpOwotICAgIH0K
LQotICAgIE5ldHdvcmtMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVyczsKLSAgICBsb2FkUGFy
YW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKLSAgICBsb2FkUGFyYW1ldGVycy5wYXJlbnRQSUQg
PSBwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKLSAgICBsb2FkUGFyYW1ldGVycy5zdG9yZWRD
cmVkZW50aWFsc1BvbGljeSA9IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpFcGhlbWVyYWxTdGF0
ZWxlc3M7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdCA9IHRydWU7Ci0gICAgbG9hZFBhcmFtZXRlcnMucGNtRGF0YUNhcnJpZWQgPSBw
Y21EYXRhQ2FycmllZDsKLQotICAgIHJldHVybiBsb2FkUGFyYW1ldGVyczsKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSwgeyB9LCB7IH0pOwogfQorI2Vu
ZGlmCiAKLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjpzdGFydChO
ZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgVVJMJiYgdXJsLCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYm
IGpzb25QYXlsb2FkLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJpZWQgcGNt
RGF0YUNhcnJpZWQsIENhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgYXV0byBw
YXJhbWV0ZXJzID0gZ2VuZXJhdGVOZXR3b3JrTG9hZFBhcmFtZXRlcnMoV1RGTW92ZSh1cmwpLCBX
VEZNb3ZlKGpzb25QYXlsb2FkKSwgcGNtRGF0YUNhcnJpZWQpOwotICAgIGF1dG8gbG9hZGVyID0g
c3RkOjp1bmlxdWVfcHRyPFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcj4obmV3
IFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcihzZXNzaW9uLCBXVEZNb3ZlKHBh
cmFtZXRlcnMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkpOwotICAgIHNlc3Npb24uYWRk
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKFdURk1vdmUobG9hZGVyKSk7Ci19
Ci0KLVByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnROZXR3b3JrTG9hZGVyKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrTG9h
ZFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQot
ICAgIDogbV9zZXNzaW9uKG1ha2VXZWFrUHRyKHNlc3Npb24pKQotICAgICwgbV9jb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKLXsKLSAgICBtX25ldHdvcmtMb2Fk
ID0gbWFrZVVuaXF1ZTxOZXR3b3JrTG9hZD4oKnRoaXMsIG51bGxwdHIsIFdURk1vdmUocGFyYW1l
dGVycyksICptX3Nlc3Npb24pOwotICAgIG1fbmV0d29ya0xvYWQtPnN0YXJ0KCk7Ci19Ci0KLVBy
aXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6flByaXZhdGVDbGlja01lYXN1cmVt
ZW50TmV0d29ya0xvYWRlcigpCi17Ci0gICAgY2FuY2VsKCk7Ci19Ci0KLXZvaWQgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjpmYWlsKFJlc291cmNlRXJyb3ImJiBlcnJvcikK
LXsKLSAgICBpZiAoIW1fY29tcGxldGlvbkhhbmRsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAg
IG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShlcnJvciksIHsgfSwgbnVsbHB0cik7Ci0gICAg
ZGlkQ29tcGxldGUoKTsKLX0KLQotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtM
b2FkZXI6OmNhbmNlbCgpCi17Ci0gICAgZmFpbChSZXNvdXJjZUVycm9yIHsgUmVzb3VyY2VFcnJv
cjo6VHlwZTo6Q2FuY2VsbGF0aW9uIH0pOwotfQotCi12b2lkIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50TmV0d29ya0xvYWRlcjo6d2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChSZXNvdXJjZVJlcXVl
c3QmJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFJlc291cmNlUmVzcG9uc2UmJikKLXsKLSAgICBjYW5j
ZWwoKTsKLX0KLQotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI6OmRp
ZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UsIFJlc3BvbnNlQ29t
cGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoIU1JTUVUeXBl
UmVnaXN0cnk6OmlzU3VwcG9ydGVkSlNPTk1JTUVUeXBlKHJlc3BvbnNlLm1pbWVUeXBlKCkpKSB7
Ci0gICAgICAgIGZhaWwoeyBlcnJvckRvbWFpbldlYktpdEludGVybmFsLCAwLCByZXNwb25zZS51
cmwoKSwgIk1JTUUgVHlwZSBpcyBub3QgYSBKU09OIE1JTUUgdHlwZSJfcyB9KTsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoUG9saWN5QWN0aW9uOjpJZ25vcmUpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgbV9yZXNwb25zZSA9IFdURk1vdmUocmVzcG9uc2UpOwotICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFBvbGljeUFjdGlvbjo6VXNlKTsKLX0KLQotdm9pZCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI6OmRpZFJlY2VpdmVCdWZmZXIoUmVmPFNoYXJlZEJ1ZmZl
cj4mJiBidWZmZXIsIGludCByZXBvcnRlZEVuY29kZWREYXRhTGVuZ3RoKQotewotICAgIGlmICgh
bV9kZWNvZGVyKQotICAgICAgICBtX2RlY29kZXIgPSBUZXh0UmVzb3VyY2VEZWNvZGVyOjpjcmVh
dGUoImFwcGxpY2F0aW9uL2pzb24iX3MsIG1fcmVzcG9uc2UudGV4dEVuY29kaW5nTmFtZSgpLmlz
RW1wdHkoKSA/IFdlYkNvcmU6OlRleHRFbmNvZGluZygiVVRGLTgiKSA6IFdlYkNvcmU6OlRleHRF
bmNvZGluZyhtX3Jlc3BvbnNlLnRleHRFbmNvZGluZ05hbWUoKSkpOwotCi0gICAgaWYgKGF1dG8g
c2l6ZSA9IGJ1ZmZlci0+c2l6ZSgpKQotICAgICAgICBtX2pzb25TdHJpbmcuYXBwZW5kKG1fZGVj
b2Rlci0+ZGVjb2RlKGJ1ZmZlci0+ZGF0YSgpLCBzaXplKSk7Ci19Ci0KLXZvaWQgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGNvbnN0IFdlYkNv
cmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYpCi17Ci0gICAgaWYgKG1fZGVjb2RlcikKLSAgICAgICAg
bV9qc29uU3RyaW5nLmFwcGVuZChtX2RlY29kZXItPmZsdXNoKCkpOwotCi0gICAgaWYgKGF1dG8g
anNvblZhbHVlID0gSlNPTjo6VmFsdWU6OnBhcnNlSlNPTihtX2pzb25TdHJpbmcudG9TdHJpbmco
KSkpCi0gICAgICAgIG1fY29tcGxldGlvbkhhbmRsZXIoeyB9LCBtX3Jlc3BvbnNlLCBqc29uVmFs
dWUtPmFzT2JqZWN0KCkpOwotICAgIGVsc2UKLSAgICAgICAgbV9jb21wbGV0aW9uSGFuZGxlcih7
IH0sIG1fcmVzcG9uc2UsIG51bGxwdHIpOwotCi0gICAgZGlkQ29tcGxldGUoKTsKLX0KLQotdm9p
ZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI6OmRpZEZhaWxMb2FkaW5nKGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQotewotICAgIGZhaWwoUmVzb3VyY2VFcnJvcihlcnJv
cikpOwotfQotCi12b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6ZGlk
Q29tcGxldGUoKQotewotICAgIG1fbmV0d29ya0xvYWQgPSBudWxscHRyOwotICAgIGlmIChtX3Nl
c3Npb24pCi0gICAgICAgIG1fc2Vzc2lvbi0+cmVtb3ZlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRO
ZXR3b3JrTG9hZGVyKHRoaXMpOwotfQorfSAvLyBuYW1lc3BhY2UgUENNCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmgKaW5kZXggMWUzOWVlNTJmNTMx
M2YzZjE2YmZhMWYyYTFlMmQxNTc3MDYxZjhmMC4uMzAzMzA3N2E1Zjk0M2M0NjZlNjRhYjE2NzQy
NTE3M2RiMDU0MWVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2Fk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlci5oCkBAIC0yNSw0OSAr
MjUsMjUgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJOZXR3b3JrTG9hZC5oIgotI2lu
Y2x1ZGUgIk5ldHdvcmtMb2FkQ2xpZW50LmgiCi0jaW5jbHVkZSAiTmV0d29ya0xvYWRQYXJhbWV0
ZXJzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9UZXh0UmVzb3VyY2VEZWNvZGVyLmg+CiAjaW5jbHVk
ZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBS
ZXNvdXJjZUVycm9yOworY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKK30KIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLWNsYXNzIE5ldHdvcmtTZXNzaW9uOworbmFtZXNwYWNlIFBDTSB7CiAKLWNsYXNz
IFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlciBmaW5hbCA6IHB1YmxpYyBOZXR3
b3JrTG9hZENsaWVudCB7CitjbGFzcyBOZXR3b3JrTG9hZGVyIHsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICB1c2luZyBDYWxsYmFjayA9IENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmLCBjb25zdCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYpPjsKLSAgICBzdGF0
aWMgdm9pZCBzdGFydChOZXR3b3JrU2Vzc2lvbiYsIFVSTCYmLCBSZWZQdHI8SlNPTjo6T2JqZWN0
PiYmLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJpZWQsIENh
bGxiYWNrJiYpOwotCi0gICAgflByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcigp
OwotCi1wcml2YXRlOgotICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcihO
ZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtMb2FkUGFyYW1ldGVycyYmLCBDYWxsYmFjayYmKTsKLQot
ICAgIC8vIE5ldHdvcmtMb2FkQ2xpZW50LgotICAgIHZvaWQgZGlkU2VuZERhdGEodW5zaWduZWQg
bG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2Vu
dCkgZmluYWwgeyB9Ci0gICAgYm9vbCBpc1N5bmNocm9ub3VzKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICBib29sIGlzQWxsb3dlZFRvQXNrVXNlckZvckNyZWRlbnRpYWxzKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2b2lkIHdpbGxTZW5kUmVkaXJlY3Rl
ZFJlcXVlc3QoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmIHJlZGlyZWN0UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGly
ZWN0UmVzcG9uc2UpIGZpbmFsOwotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmJiwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsK
LSAgICB2b2lkIGRpZFJlY2VpdmVCdWZmZXIoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiwg
aW50IHJlcG9ydGVkRW5jb2RlZERhdGFMZW5ndGgpIGZpbmFsOwotICAgIHZvaWQgZGlkRmluaXNo
TG9hZGluZyhjb25zdCBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmKSBmaW5hbDsKLSAgICB2
b2lkIGRpZEZhaWxMb2FkaW5nKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsK
LQotICAgIHZvaWQgZmFpbChXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOwotICAgIHZvaWQgY2Fu
Y2VsKCk7Ci0gICAgdm9pZCBkaWRDb21wbGV0ZSgpOwotCi0gICAgV2Vha1B0cjxOZXR3b3JrU2Vz
c2lvbj4gbV9zZXNzaW9uOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrTG9hZD4gbV9uZXR3
b3JrTG9hZDsKLSAgICBDYWxsYmFjayBtX2NvbXBsZXRpb25IYW5kbGVyOwotCi0gICAgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwotICAgIFJlZlB0cjxXZWJDb3JlOjpUZXh0
UmVzb3VyY2VEZWNvZGVyPiBtX2RlY29kZXI7Ci0gICAgU3RyaW5nQnVpbGRlciBtX2pzb25TdHJp
bmc7CisgICAgc3RhdGljIHZvaWQgc3RhcnQoVVJMJiYsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYs
IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZCwgQ2FsbGJh
Y2smJik7CiB9OwogCit9IC8vIG5hbWVzcGFjZSBQQ00KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlckNvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJDb2NvYS5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lZDczNjU1YmJhMTA0MDk1YjIyM2ZiNDQ4M2U5NjM2ZWZkM2E4MjIwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJDb2NvYS5t
bQpAQCAtMCwwICsxLDEyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2lt
cG9ydCAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmgiCisKKyNpbXBvcnQg
Ik5ldHdvcmtTZXNzaW9uQ29jb2EuaCIKKyNpbXBvcnQgPFdlYkNvcmUvSFRUUEhlYWRlclZhbHVl
cy5oPgorI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CisjaW1wb3J0IDxwYWwv
c3BpL2NmL0NGTmV0d29ya1NQSS5oPgorI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisK
KyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL05l
dHdvcmtEYXRhVGFza0NvY29hQWRkaXRpb25zLmg+CisjZWxzZQorc3RhdGljIHZvaWQgcHJvY2Vz
c1BDTVJlcXVlc3QoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJy
aWVkLCBOU011dGFibGVVUkxSZXF1ZXN0ICopIHsgfQorI2VuZGlmCisKK0BpbnRlcmZhY2UgV0tO
ZXR3b3JrU2Vzc2lvbkRlbGVnYXRlQWxsb3dpbmdPbmx5Tm9uUmVkaXJlY3RlZEpTT04gOiBOU09i
amVjdCA8TlNVUkxTZXNzaW9uRGF0YURlbGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24g
V0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlQWxsb3dpbmdPbmx5Tm9uUmVkaXJlY3RlZEpTT04KKwor
LSAodm9pZClVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilzZXNzaW9uIHRhc2s6KE5TVVJMU2Vz
c2lvblRhc2sgKil0YXNrIHdpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uOihOU0hUVFBVUkxSZXNw
b25zZSAqKXJlc3BvbnNlIG5ld1JlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3QgY29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TVVJMUmVxdWVzdCAqKSljb21wbGV0aW9uSGFuZGxlcgor
eworICAgIGNvbXBsZXRpb25IYW5kbGVyKG5pbCk7Cit9CisKKy0gKHZvaWQpVVJMU2Vzc2lvbjoo
TlNVUkxTZXNzaW9uICopc2Vzc2lvbiBkYXRhVGFzazooTlNVUkxTZXNzaW9uRGF0YVRhc2sgKilk
YXRhVGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6KE5TVVJMUmVzcG9uc2UgKilyZXNwb25zZSBjb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNVUkxTZXNzaW9uUmVzcG9uc2VEaXNwb3NpdGlvbiBk
aXNwb3NpdGlvbikpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBpZiAoTUlNRVR5cGVSZWdpc3Ry
eTo6aXNTdXBwb3J0ZWRKU09OTUlNRVR5cGUocmVzcG9uc2UuTUlNRVR5cGUpKQorICAgICAgICBy
ZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoTlNVUkxTZXNzaW9uUmVzcG9uc2VBbGxvdyk7CisgICAg
Y29tcGxldGlvbkhhbmRsZXIoTlNVUkxTZXNzaW9uUmVzcG9uc2VDYW5jZWwpOworfQorCistICh2
b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3Npb24gdGFzazooTlNVUkxTZXNzaW9u
VGFzayAqKXRhc2sgZGlkUmVjZWl2ZUNoYWxsZW5nZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSAqKWNoYWxsZW5nZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNVUkxTZXNzaW9u
QXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBOU1VSTENyZWRlbnRpYWwgKmNy
ZWRlbnRpYWwpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgaWYgKFtjaGFsbGVuZ2UucHJvdGVj
dGlvblNwYWNlLmF1dGhlbnRpY2F0aW9uTWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhl
bnRpY2F0aW9uTWV0aG9kU2VydmVyVHJ1c3RdCisgICAgICAgICYmIE5ldHdvcmtTZXNzaW9uQ29j
b2E6OmFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY2hhbGxlbmdlKSkKKyAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VV
c2VDcmVkZW50aWFsLCBbTlNVUkxDcmVkZW50aWFsIGNyZWRlbnRpYWxGb3JUcnVzdDpjaGFsbGVu
Z2UucHJvdGVjdGlvblNwYWNlLnNlcnZlclRydXN0XSk7CisgICAgY29tcGxldGlvbkhhbmRsZXIo
TlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZVBlcmZvcm1EZWZhdWx0SGFuZGxpbmcsIG5pbCk7Cit9
CisKK0BlbmQKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK25hbWVzcGFjZSBQQ00geworCitlbnVt
IExvYWRUYXNrSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgTG9hZFRhc2tJZGVudGlmaWVyID0g
T2JqZWN0SWRlbnRpZmllcjxMb2FkVGFza0lkZW50aWZpZXJUeXBlPjsKK3N0YXRpYyBIYXNoTWFw
PExvYWRUYXNrSWRlbnRpZmllciwgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbkRhdGFUYXNrPj4mIHRh
c2tNYXAoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPExvYWRUYXNrSWRl
bnRpZmllciwgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbkRhdGFUYXNrPj4+IG1hcDsKKyAgICByZXR1
cm4gbWFwLmdldCgpOworfQorCitzdGF0aWMgTlNVUkxTZXNzaW9uICpzdGF0ZWxlc3NTZXNzaW9u
V2l0aG91dFJlZGlyZWN0cygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0
cjxXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGVBbGxvd2luZ09ubHlOb25SZWRpcmVjdGVkSlNPTj4+
IGRlbGVnYXRlID0gYWRvcHROUyhbV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlQWxsb3dpbmdPbmx5
Tm9uUmVkaXJlY3RlZEpTT04gbmV3XSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFp
blB0cjxOU1VSTFNlc3Npb24+PiBzZXNzaW9uID0gWyZdIHsKKyAgICAgICAgTlNVUkxTZXNzaW9u
Q29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbiA9IFtOU1VSTFNlc3Npb25Db25maWd1cmF0aW9u
IGVwaGVtZXJhbFNlc3Npb25Db25maWd1cmF0aW9uXTsKKyAgICAgICAgY29uZmlndXJhdGlvbi5I
VFRQQ29va2llQWNjZXB0UG9saWN5ID0gTlNIVFRQQ29va2llQWNjZXB0UG9saWN5TmV2ZXI7Cisg
ICAgICAgIGNvbmZpZ3VyYXRpb24uVVJMQ3JlZGVudGlhbFN0b3JhZ2UgPSBuaWw7CisgICAgICAg
IGNvbmZpZ3VyYXRpb24uVVJMQ2FjaGUgPSBuaWw7CisgICAgICAgIGNvbmZpZ3VyYXRpb24uX3No
b3VsZFNraXBQcmVmZXJyZWRDbGllbnRDZXJ0aWZpY2F0ZUxvb2t1cCA9IFlFUzsKKyAgICAgICAg
cmV0dXJuIGFkb3B0TlMoW05TVVJMU2Vzc2lvbiBzZXNzaW9uV2l0aENvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbiBkZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKS5nZXQoKSBkZWxlZ2F0ZVF1ZXVlOltO
U09wZXJhdGlvblF1ZXVlIG1haW5RdWV1ZV1dKTsKKyAgICB9KCk7CisgICAgcmV0dXJuIHNlc3Np
b24uZ2V0KCkuZ2V0KCk7Cit9CisKK3ZvaWQgTmV0d29ya0xvYWRlcjo6c3RhcnQoVVJMJiYgdXJs
LCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIGpzb25QYXlsb2FkLCBXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJpZWQgcGNtRGF0YUNhcnJpZWQsIENhbGxiYWNrJiYg
Y2FsbGJhY2spCit7CisgICAgYXV0byByZXF1ZXN0ID0gYWRvcHROUyhbW05TTXV0YWJsZVVSTFJl
cXVlc3QgYWxsb2NdIGluaXRXaXRoVVJMOnVybF0pOworICAgIFtyZXF1ZXN0IHNldFZhbHVlOldl
YkNvcmU6OkhUVFBIZWFkZXJWYWx1ZXM6Om1heEFnZTAoKSBmb3JIVFRQSGVhZGVyRmllbGQ6QCJD
YWNoZS1Db250cm9sIl07CisgICAgaWYgKGpzb25QYXlsb2FkKSB7CisgICAgICAgIHJlcXVlc3Qu
Z2V0KCkuSFRUUE1ldGhvZCA9IEAiUE9TVCI7CisgICAgICAgIFtyZXF1ZXN0IHNldFZhbHVlOldl
YkNvcmU6OkhUVFBIZWFkZXJWYWx1ZXM6OmFwcGxpY2F0aW9uSlNPTkNvbnRlbnRUeXBlKCkgZm9y
SFRUUEhlYWRlckZpZWxkOkAiQ29udGVudC1UeXBlIl07CisgICAgICAgIGF1dG8gYm9keSA9IGpz
b25QYXlsb2FkLT50b0pTT05TdHJpbmcoKS51dGY4KCk7CisgICAgICAgIHJlcXVlc3QuZ2V0KCku
SFRUUEJvZHkgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOmJvZHkuZGF0
YSgpIGxlbmd0aDpib2R5Lmxlbmd0aCgpXSkuZ2V0KCk7CisgICAgfQorCisgICAgcHJvY2Vzc1BD
TVJlcXVlc3QocGNtRGF0YUNhcnJpZWQsIHJlcXVlc3QuZ2V0KCkpOworCisgICAgYXV0byBpZGVu
dGlmaWVyID0gTG9hZFRhc2tJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgIE5TVVJMU2Vzc2lv
bkRhdGFUYXNrICp0YXNrID0gW3N0YXRlbGVzc1Nlc3Npb25XaXRob3V0UmVkaXJlY3RzKCkgZGF0
YVRhc2tXaXRoUmVxdWVzdDpyZXF1ZXN0LmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9j
a1B0cihbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgaWRlbnRpZmllcl0oTlNEYXRhICpk
YXRhLCBOU1VSTFJlc3BvbnNlICpyZXNwb25zZSwgTlNFcnJvciAqZXJyb3IpIG11dGFibGUgewor
ICAgICAgICB0YXNrTWFwKCkucmVtb3ZlKGlkZW50aWZpZXIpOworICAgICAgICBpZiAoZXJyb3Ip
CisgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyb3IsIHsgfSwgeyB9KTsKKyAgICAgICAg
aWYgKGF1dG8ganNvblZhbHVlID0gSlNPTjo6VmFsdWU6OnBhcnNlSlNPTihTdHJpbmc6OmZyb21V
VEY4KHN0YXRpY19jYXN0PGNvbnN0IExDaGFyKj4oZGF0YS5ieXRlcyksIGRhdGEubGVuZ3RoKSkp
CisgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soeyB9LCByZXNwb25zZSwganNvblZhbHVlLT5h
c09iamVjdCgpKTsKKyAgICAgICAgY2FsbGJhY2soeyB9LCByZXNwb25zZSwgbnVsbHB0cik7Cisg
ICAgfSkuZ2V0KCldOworICAgIFt0YXNrIHJlc3VtZV07CisgICAgdGFza01hcCgpLmFkZChpZGVu
dGlmaWVyLCB0YXNrKTsKK30KKworfSAvLyBuYW1lc3BhY2UgUENNCisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrRGF0YVRhc2tDb2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCmluZGV4IDRlYmJkOTBjYzY0NWRmNWY5ZGRiYjg2MGQw
OGFhM2ViMDUzYzJmZjYuLjM5MTQ4OWQ2NDQ1ZjQ2Y2E3YTdiMWY4NzhmYjFmYTBkOWU4M2I3YjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0Rh
dGFUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtEYXRhVGFza0NvY29hLmgKQEAgLTI5LDEwICsyOSwxMiBAQAogI2luY2x1ZGUgIk5ldHdv
cmtEYXRhVGFzay5oIgogI2luY2x1ZGUgIk5ldHdvcmtMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRNZXRyaWNzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogT0JK
Q19DTEFTUyBOU0hUVFBDb29raWVTdG9yYWdlOwogT0JKQ19DTEFTUyBOU1VSTFNlc3Npb25EYXRh
VGFzazsKK09CSkNfQ0xBU1MgTlNNdXRhYmxlVVJMUmVxdWVzdDsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgUmVnaXN0cmFibGVEb21haW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQppbmRleCA2
ODcwODUxOTI1Mjg4NTcxYmQ2Yzc2M2IzZTYwMzEzZDkyNjBlOThjLi43Zjk4ODhkYTI2NjJlNjZk
OTc5MmExMzdiYmFlZmU4N2MwZTUyN2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KQEAgLTU3LDcg
KzU3LDYgQEAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8V2ViS2l0QWRk
aXRpb25zL05ldHdvcmtEYXRhVGFza0NvY29hQWRkaXRpb25zLmg+CiAjZWxzZQotc3RhdGljIHZv
aWQgcHJvY2Vzc1BDTVJlcXVlc3QoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBj
bURhdGFDYXJyaWVkLCBOU011dGFibGVVUkxSZXF1ZXN0ICopIHsgfQogc3RhdGljIHZvaWQgb3Zl
cnJpZGVBdHRyaWJ1dGlvbkNvbnRleHQoTlNNdXRhYmxlVVJMUmVxdWVzdCAqKSB7IH0KICNlbmRp
ZgogCkBAIC0zNDcsOSArMzQ2LDYgQEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRh
VGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVQKIAogICAgIG92
ZXJyaWRlQXR0cmlidXRpb25Db250ZXh0KG11dGFibGVSZXF1ZXN0LmdldCgpKTsKIAotICAgIGlm
IChwYXJhbWV0ZXJzLnBjbURhdGFDYXJyaWVkKQotICAgICAgICBwcm9jZXNzUENNUmVxdWVzdCgq
cGFyYW1ldGVycy5wY21EYXRhQ2FycmllZCwgbXV0YWJsZVJlcXVlc3QuZ2V0KCkpOwotCiAgICAg
bnNSZXF1ZXN0ID0gbXV0YWJsZVJlcXVlc3Q7CiAKICNpZiBFTkFCTEUoQVBQX1BSSVZBQ1lfUkVQ
T1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDc4ZmI0MjQxMjIzYjAzMjc1YTk2NmQ5Zjc1
YWMwMGZjYTQ5YTdmNmQuLjg5MTM4MzRmNmJiNWY5MzllNzIwYjA5ZWZjYjAyYzk1NDRmODRhYWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTQxLDYgKzQxLDggQEAgTmV0d29ya1Byb2Nlc3Mv
RG93bmxvYWRzL2NvY29hL0Rvd25sb2FkQ29jb2EubW0KIE5ldHdvcmtQcm9jZXNzL0VudHJ5UG9p
bnQvQ29jb2EvRGFlbW9uL0RhZW1vbkVudHJ5UG9pbnQubW0KIE5ldHdvcmtQcm9jZXNzL0VudHJ5
UG9pbnQvQ29jb2EvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZUVudHJ5UG9pbnQubW0KIAorTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnROZXR3b3JrTG9hZGVyQ29jb2EubW0KKwogTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFn
ZS9pb3MvTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VySU9TLm1tCiAKIE5ldHdvcmtQcm9jZXNz
L2lvcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc0lPUy5tbQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzBiYzgwODgyYzA0ZWVm
MWNjMDM5MGY0YWQ1N2RlMDY2NWJlMGY2MS4uY2Y5ZTBkZjU0YmY2OGIyNTAwMWM2Y2MxZDllYmNi
NzNhZTIxMTczZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC00NTU1LDYgKzQ1NTUsNyBAQAogCQk1Q0I5MzBCRjI2RTA1NDJFMDAzMkIx
QzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCOTMwQzAyNkUwNTQyRjAwMzJCMUMwIC8qIFByaXZhdGVD
bGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudEltcGwuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0I5MzBDMTI2RTA1NEI4MDAzMkIxQzAgLyogUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1Q0I5MzBGMjI2RTdFRUUwMDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJDb2Nv
YS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCQzlCODkxQzY1MjRBNTAwQThG
RENGIC8qIE5ldHdvcmtEYXRhVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOZXR3b3JrRGF0YVRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCQzlC
OEIxQzY1MjU3MzAwQThGRENGIC8qIE5ldHdvcmtEYXRhVGFza0NvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29ya0RhdGFUYXNrQ29jb2EubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQkU5MDhGMjZEN0ZCNjIwMDVBMkU5NSAvKiBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnSW5mby5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtOTI2MCw2ICs5MjYxLDcgQEAKIAkJNUMwMUJDMzUyNkQ0NkFE
NDAwRkVCNDJGIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50ICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1Q0I5MzBGMTI2RTdFRTg5MDAzMkIxQzAgLyog
Y29jb2EgKi8sCiAJCQkJNUNCOTMwQkYyNkUwNTQyRTAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01l
YXN1cmVtZW50Q2xpZW50LmggKi8sCiAJCQkJNUNCOTMwQzAyNkUwNTQyRjAwMzJCMUMwIC8qIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5jcHAgKi8sCiAJCQkJNUNCOTMwQzEyNkUw
NTRCODAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5oICovLApA
QCAtOTM1Myw2ICs5MzU1LDE0IEBACiAJCQlwYXRoID0gQ29jb2E7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwogCQl9OworCQk1Q0I5MzBGMTI2RTdFRTg5MDAzMkIxQzAgLyogY29jb2EgKi8g
PSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTVDQjkzMEYyMjZF
N0VFRTAwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJDb2Nv
YS5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OwogCQk2QkU5NjlCRjFFNTRENDUyMDA4Qjc0ODMgLyogUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437561</attachid>
            <date>2021-09-07 15:10:36 -0700</date>
            <delta_ts>2021-09-07 18:35:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230015-20210907151035.patch</filename>
            <type>text/plain</type>
            <size>34755</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEzZGEzNThjZGM5YjZiZjYz
OGFkODZiYzM2YzQ4MWM3YmU2ZmVjYjMuLjcyNjczMzE0YWM1OTVmNmEwYzc3YWI4YjEzYWFiNWVk
NTEzMWQ0ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjEtMDktMDcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXBsYWNlIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6c3RhcnQgd2l0aCBhbiBpbXBsZW1l
bnRhdGlvbiB0aGF0IGRvZXNuJ3QgbmVlZCBOZXR3b3JrU2Vzc2lvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMDE1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgSm9obiBXaWxhbmRlci4KKworICAgICAgICBUaGlzIGlzIG5lZWRlZCB0byBydW4gdGhp
cyBjb2RlIGluIGEgcHJvY2VzcyB0aGF0IGRvZXNuJ3QgaGF2ZSBOZXR3b3JrU2Vzc2lvbiwgd2hp
Y2ggaXMgYSBjbGFzcyB0aWVkIGNsb3NlbHkgdG8gV0tXZWJzaXRlRGF0YVN0b3JlLgorICAgICAg
ICBUaGlzIHJlcGxhY2VzIGl0IHdpdGggYSBzaW1wbGUgaW1wbGVtZW50YXRpb24gdGhhdCBkb2Vz
IHRoZSBzYW1lIHRoaW5nczoKKyAgICAgICAgMS4gVXNlcyBhbiBlcGhlbWVyYWwgc3RhdGVsZXNz
IHNlc3Npb24gdGhhdCBkb2Vzbid0IGFjY2VwdCBjb29raWVzIG9yIHVzZSBjcmVkZW50aWFscy4K
KyAgICAgICAgMi4gRG9lcyBub3QgYWxsb3cgcmVkaXJlY3RzLgorICAgICAgICAzLiBPbmx5IGFj
Y2VwdHMgSlNPTiBtaW1lIHR5cGVzLgorICAgICAgICA0LiBDYWxscyBwcm9jZXNzUENNUmVxdWVz
dAorCisgICAgICAgIFdlIHN0aWxsIG5lZWQgdG8gY2FsbCBOZXR3b3JrU2Vzc2lvbkNvY29hOjph
bGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0IHRvIGdldCB0ZXN0cyB0byBwYXNz
LgorICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Nlc3Npb246OmFkZFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpyZW1vdmVQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50
Lmg6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6Q2xpZW50Ojp+Q2xpZW50KToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudENsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006OkNsaWVudEltcGw6Omxv
YWRGcm9tTmV0d29yayk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJbXBsLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VyOjpnZXRUb2tlblB1YmxpY0tleSk6CisgICAgICAgIChXZWJLaXQ6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6Z2V0U2lnbmVkVW5saW5rYWJsZVRva2Vu
KToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJl
Q29udmVyc2lvblJlcXVlc3RJbXBsKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQQ006Ok5ldHdvcmtMb2FkZXI6OnN0YXJ0KToKKyAgICAgICAg
KFdlYktpdDo6Z2VuZXJhdGVOZXR3b3JrTG9hZFBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI6OnN0YXJ0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3Jr
TG9hZGVyOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI6On5Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI6OmZhaWwpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2Fk
ZXI6OmNhbmNlbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50TmV0d29ya0xvYWRlcjo6d2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjpk
aWRGaW5pc2hMb2FkaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjpkaWRGYWlsTG9hZGluZyk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6ZGlkQ29t
cGxldGUpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlci5oOgorICAgICAg
ICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJDb2NvYS5t
bTogQWRkZWQuCisgICAgICAgIChwcm9jZXNzUENNUmVxdWVzdCk6CisgICAgICAgICgtW1dLTmV0
d29ya1Nlc3Npb25EZWxlZ2F0ZUFsbG93aW5nT25seU5vblJlZGlyZWN0ZWRKU09OIFVSTFNlc3Np
b246dGFzazp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbjpuZXdSZXF1ZXN0OmNvbXBsZXRpb25I
YW5kbGVyOl0pOgorICAgICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGVBbGxvd2luZ09u
bHlOb25SZWRpcmVjdGVkSlNPTiBVUkxTZXNzaW9uOmRhdGFUYXNrOmRpZFJlY2VpdmVSZXNwb25z
ZTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVn
YXRlQWxsb3dpbmdPbmx5Tm9uUmVkaXJlY3RlZEpTT04gVVJMU2Vzc2lvbjp0YXNrOmRpZFJlY2Vp
dmVDaGFsbGVuZ2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6
dGFza01hcCk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6c3RhdGVsZXNzU2Vzc2lvbldpdGhvdXRS
ZWRpcmVjdHMpOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok5ldHdvcmtMb2FkZXI6OnN0YXJ0KToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29j
b2EpOgorICAgICAgICAocHJvY2Vzc1BDTVJlcXVlc3QpOiBEZWxldGVkLgorICAgICAgICAqIFNv
dXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisKIDIwMjEtMDktMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBJbXBsZW1lbnQgb3JpZ2luIHBhcnRpdGlvbmluZyAodG9wLW9yaWdpbi9mcmFtZS1vcmln
aW4pIGZvciBCcm9hZGNhc3RDaGFubmVsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAppbmRleCAwNGNiMDM5MGM5Y2ZkODZiOTEx
ZDQ4ZjlhZjljZDE3MmU4YjNhNzM3Li43MTljMzlkYjA0ZjBiMzA4ZGMxZjVhMmQwNDhmMGRlMWQ0
OTliZmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTY3LDcgKzY3LDYgQEAgcHVibGljOgogICAgIFByZWNvbm5l
Y3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5IHsgUHJlY29ubmVjdE9ubHk6Ok5vIH07CiAgICAg
c3RkOjpvcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFj
a2VyOwogICAgIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW4geyBOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjo6Tm8g
fTsKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQ
Y21EYXRhQ2FycmllZD4gcGNtRGF0YUNhcnJpZWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAKaW5kZXggMzA0MWQ0ZjhhMzA3NjUxNzkzMzVk
MWEwNjg4ODVkNmQ4YzAzZmYyMy4uZjQxZjU1OTBiZDZmZmY3NzY4M2MwYzgyMWIwNWM2NmNhZTU0
YTExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAKQEAgLTEyNyw3ICsxMjcsNiBAQCB2
b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogI2VuZGlmCiAgICAgCiAgICAgZW5jb2RlciA8PCBpc05hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluOwotICAgIGVuY29kZXIgPDwgcGNtRGF0YUNhcnJpZWQ7CiB9CiAKIHN0
ZDo6b3B0aW9uYWw8TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM+IE5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQpAQCAtMzI5LDEy
ICszMjgsNiBAQCBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzPiBO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZGVjbwogICAgIGlmICghaXNOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbikKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICByZXN1
bHQuaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiA9ICppc05hdmlnYXRpbmdUb0FwcEJvdW5k
RG9tYWluOwotCi0gICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZD4+IHBjbURhdGFDYXJyaWVkOwotICAg
IGRlY29kZXIgPj4gcGNtRGF0YUNhcnJpZWQ7Ci0gICAgaWYgKCFwY21EYXRhQ2FycmllZCkKLSAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXN1bHQucGNtRGF0YUNhcnJpZWQgPSAq
cGNtRGF0YUNhcnJpZWQ7CiAgICAgCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAppbmRleCBmNWEwNjJkOTFiNjQ3
NDA5Mjk1M2FjZmJkMmQwMmM5N2MwODg4NGRhLi43MGExYjQ5MWIyNDNhYWVmYjNkMjdiZGNhZDAw
YTYwNWU0MjRmNTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiTmF2aWdhdGluZ1RvQXBwQm91
bmREb21haW4uaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgIlByZWZldGNoQ2FjaGUuaCIKLSNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE5ldHdvcmtMb2FkZXIuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5j
bHVkZSAiU2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIuaCIKICNpbmNsdWRlICJXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKQEAgLTE3NCw5ICsxNzMsNiBAQCBwdWJsaWM6CiAg
ICAgQXBwUHJpdmFjeVJlcG9ydFRlc3RpbmdEYXRhJiBhcHBQcml2YWN5UmVwb3J0VGVzdGluZ0Rh
dGEoKSB7IHJldHVybiBtX2FwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YTsgfQogI2VuZGlmCiAK
LSAgICB2b2lkIGFkZFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcihzdGQ6OnVu
aXF1ZV9wdHI8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyPiYmIGxvYWRlcikg
eyBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcnMuYWRkKFdURk1vdmUobG9h
ZGVyKSk7IH0KLSAgICB2b2lkIHJlbW92ZVByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xv
YWRlcihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIqIGxvYWRlcikgeyBtX3By
aXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcnMucmVtb3ZlKGxvYWRlcik7IH0KLQog
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmVOZXR3b3JrV2Vic2l0ZURhdGEoc3RkOjpvcHRpb25hbDxX
YWxsVGltZT4sIHN0ZDo6b3B0aW9uYWw8SGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
bj4+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBj
b21wbGV0aW9uSGFuZGxlcigpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRkV2ViUGFnZU5ldHdv
cmtQYXJhbWV0ZXJzKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYlBhZ2VOZXR3b3JrUGFyYW1l
dGVycyYmKSB7IH0KQEAgLTI0OCw3ICsyNDQsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgQXBwUHJpdmFj
eVJlcG9ydFRlc3RpbmdEYXRhIG1fYXBwUHJpdmFjeVJlcG9ydFRlc3RpbmdEYXRhOwogI2VuZGlm
CiAKLSAgICBIYXNoU2V0PHN0ZDo6dW5pcXVlX3B0cjxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5l
dHdvcmtMb2FkZXI+PiBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcnM7CiAg
ICAgSGFzaE1hcDxXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBTdHJpbmc+IG1fYXR0cmlidXRlZEJ1
bmRsZUlkZW50aWZpZXJGcm9tUGFnZUlkZW50aWZpZXJzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENsaWVudC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudC5oCmlu
ZGV4IGM2MzE3NDZiMjgwMzdhOWQ5Y2NjZmRiNWY0YmRhNGI3ZGJkMjMwOGIuLmNiYmY0OWVlMThl
MDhjOGE5NWJiNTJiMzE0ODc4ODYwNTA0Y2IzODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50LmgKQEAgLTQ2LDgg
KzQ2LDYgQEAgbmFtZXNwYWNlIFBDTSB7CiBjbGFzcyBDbGllbnQgewogcHVibGljOgogICAgIHZp
cnR1YWwgfkNsaWVudCgpIHsgfQotICAgIHVzaW5nIE5ldHdvcmtMb2FkQ2FsbGJhY2sgPSBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVmUHRyPEpTT046Ok9iamVjdD4mKT47
Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRGcm9tTmV0d29yayhVUkwmJiwgUmVmUHRyPEpTT046Ok9i
amVjdD4mJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVk
LCBOZXR3b3JrTG9hZENhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYnJvYWRjYXN0
Q29uc29sZU1lc3NhZ2UoSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYpID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgZmVhdHVyZUVuYWJsZWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBi
b29sIGRlYnVnTW9kZUVuYWJsZWQoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01l
YXN1cmVtZW50Q2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5j
cHAKaW5kZXggN2VjZDEzNTc4MjFiZDYzNjI1NGM4ZGRkMzZhMmI4NzIxYmEwMWQyMC4uNWRlYWYw
NzRmOGQ3YTUwYWZhZmI0ZjUxYzIzNjI5M2U4ZTU0OWEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudENsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJ
bXBsLmNwcApAQCAtMzcsMTQgKzM3LDYgQEAgQ2xpZW50SW1wbDo6Q2xpZW50SW1wbChOZXR3b3Jr
U2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzKQogICAgIDog
bV9uZXR3b3JrU2Vzc2lvbihtYWtlV2Vha1B0cihzZXNzaW9uKSkKICAgICAsIG1fbmV0d29ya1By
b2Nlc3MobmV0d29ya1Byb2Nlc3MpIHsgfQogCi12b2lkIENsaWVudEltcGw6OmxvYWRGcm9tTmV0
d29yayhVUkwmJiB1cmwsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYganNvblBheWxvYWQsIFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZCBwY21EYXRhQ2Fycmll
ZCwgTmV0d29ya0xvYWRDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmICgh
ZmVhdHVyZUVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNv
cmU6OlJlc291cmNlRXJyb3IoV2ViQ29yZTo6UmVzb3VyY2VFcnJvcjo6VHlwZTo6Q2FuY2VsbGF0
aW9uKSwgeyB9LCB7IH0pOwotCi0gICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9h
ZGVyOjpzdGFydCgqbV9uZXR3b3JrU2Vzc2lvbiwgV1RGTW92ZSh1cmwpLCBXVEZNb3ZlKGpzb25Q
YXlsb2FkKSwgcGNtRGF0YUNhcnJpZWQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLX0K
LQogdm9pZCBDbGllbnRJbXBsOjpicm9hZGNhc3RDb25zb2xlTWVzc2FnZShKU0M6Ok1lc3NhZ2VM
ZXZlbCBtZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBpZiAoIWZl
YXR1cmVFbmFibGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1w
bC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudEltcGwuaAppbmRleCBiYjdhZTYzNTEyOGI1
MTFmMzI5ZWRlY2FhMzllMDQ2Y2IxZjA3Y2Y4Li4wNjI1NTFiNDI1OTMxNDJiZDhjNjg0OWQ3NmM4
YWY4NWZlNWU0NmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJbXBsLmgKQEAgLTQzLDcgKzQzLDYgQEAg
cHVibGljOgogICAgIENsaWVudEltcGwoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrUHJvY2VzcyYp
OwogCiBwcml2YXRlOgotICAgIHZvaWQgbG9hZEZyb21OZXR3b3JrKFVSTCYmLCBSZWZQdHI8SlNP
Tjo6T2JqZWN0PiYmLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNh
cnJpZWQsIE5ldHdvcmtMb2FkQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBicm9hZGNhc3RD
b25zb2xlTWVzc2FnZShKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJikgZmluYWw7CiAg
ICAgYm9vbCBmZWF0dXJlRW5hYmxlZCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZGVidWdNb2Rl
RW5hYmxlZCgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCmluZGV4IDRlZGY2MjU3
NjYyNzI5M2JiYWM1ZDdkOTFiZGM5ZmU3NmVkNjJjMTUuLjJkNzgyYmEyZWFiZjNkNTJiOGUyMDJl
NGQ2Yzc2OGVkMmNlOTc1MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKQEAgLTI5LDYgKzI5LDcg
QEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb24uaCIKICNp
bmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnSW5mby5oIgorI2luY2x1ZGUgIlBy
aXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlci5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hPcHRpb25zLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb3JtRGF0YS5oPgpAQCAtMTMxLDcgKzEzMiw3IEBAIHZvaWQg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpnZXRUb2tlblB1YmxpY0tleShQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCYmCiAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCwgIkFib3V0IHRvIGZpcmUgYSB0b2tlbiBwdWJsaWMga2V5IHJlcXVlc3QuIik7CiAg
ICAgbV9jbGllbnQtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VMZXZlbDo6TG9nLCAi
W1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEFib3V0IHRvIGZpcmUgYSB0b2tlbiBwdWJsaWMg
a2V5IHJlcXVlc3QuIl9zKTsKIAotICAgIG1fY2xpZW50LT5sb2FkRnJvbU5ldHdvcmsoV1RGTW92
ZSh0b2tlblB1YmxpY0tleVVSTCksIG51bGxwdHIsIHBjbURhdGFDYXJyaWVkLCBbd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXMsIGF0dHJpYnV0aW9uID0gV1RGTW92ZShhdHRyaWJ1
dGlvbiksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChhdXRvJiBlcnJvciwgYXV0byYg
cmVzcG9uc2UsIGF1dG8mIGpzb25PYmplY3QpIG11dGFibGUgeworICAgIFBDTTo6TmV0d29ya0xv
YWRlcjo6c3RhcnQoV1RGTW92ZSh0b2tlblB1YmxpY0tleVVSTCksIG51bGxwdHIsIHBjbURhdGFD
YXJyaWVkLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXMsIGF0dHJpYnV0aW9u
ID0gV1RGTW92ZShhdHRyaWJ1dGlvbiksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChh
dXRvJiBlcnJvciwgYXV0byYgcmVzcG9uc2UsIGF1dG8mIGpzb25PYmplY3QpIG11dGFibGUgewog
ICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0xNDksNyAr
MTUwLDYgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmdldFRva2VuUHVi
bGljS2V5KFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYKIAogICAgICAgICBjYWxsYmFjayhXVEZN
b3ZlKGF0dHJpYnV0aW9uKSwganNvbk9iamVjdC0+Z2V0U3RyaW5nKCJ0b2tlbl9wdWJsaWNfa2V5
Il9zKSk7CiAgICAgfSk7Ci0KIH0KIAogdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXI6OmdldFNpZ25lZFVubGlua2FibGVUb2tlbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmIG1l
YXN1cmVtZW50KQpAQCAtMTc1LDcgKzE3NSw3IEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyOjpnZXRTaWduZWRVbmxpbmthYmxlVG9rZW4oUHJpdmF0ZUNsaWNrTWVhc3VyCiAg
ICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkFib3V0IHRvIGZp
cmUgYSB1bmxpbmthYmxlIHRva2VuIHNpZ25pbmcgcmVxdWVzdC4iKTsKICAgICBtX2NsaWVudC0+
YnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoTWVzc2FnZUxldmVsOjpMb2csICJbUHJpdmF0ZSBDbGlj
ayBNZWFzdXJlbWVudF0gQWJvdXQgdG8gZmlyZSBhIHVubGlua2FibGUgdG9rZW4gc2lnbmluZyBy
ZXF1ZXN0LiJfcyk7CiAKLSAgICBtX2NsaWVudC0+bG9hZEZyb21OZXR3b3JrKFdURk1vdmUodG9r
ZW5TaWduYXR1cmVVUkwpLCBtZWFzdXJlbWVudC50b2tlblNpZ25hdHVyZUpTT04oKSwgcGNtRGF0
YUNhcnJpZWQsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpcywgbWVhc3VyZW1l
bnQgPSBXVEZNb3ZlKG1lYXN1cmVtZW50KV0gKGF1dG8mIGVycm9yLCBhdXRvJiByZXNwb25zZSwg
YXV0byYganNvbk9iamVjdCkgbXV0YWJsZSB7CisgICAgUENNOjpOZXR3b3JrTG9hZGVyOjpzdGFy
dChXVEZNb3ZlKHRva2VuU2lnbmF0dXJlVVJMKSwgbWVhc3VyZW1lbnQudG9rZW5TaWduYXR1cmVK
U09OKCksIHBjbURhdGFDYXJyaWVkLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRo
aXMsIG1lYXN1cmVtZW50ID0gV1RGTW92ZShtZWFzdXJlbWVudCldIChhdXRvJiBlcnJvciwgYXV0
byYgcmVzcG9uc2UsIGF1dG8mIGpzb25PYmplY3QpIG11dGFibGUgewogICAgICAgICBpZiAoIXdl
YWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0zNjAsNyArMzYwLDcgQEAgdm9pZCBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVDb252ZXJzaW9uUmVxdWVzdEltcGwo
Y29uc3QgUHJpdmF0ZUNsaWMKICAgICBSRUxFQVNFX0xPR19JTkZPKFByaXZhdGVDbGlja01lYXN1
cmVtZW50LCAiQWJvdXQgdG8gZmlyZSBhbiBhdHRyaWJ1dGlvbiByZXF1ZXN0LiIpOwogICAgIG1f
Y2xpZW50LT5icm9hZGNhc3RDb25zb2xlTWVzc2FnZShNZXNzYWdlTGV2ZWw6OkxvZywgIltQcml2
YXRlIENsaWNrIE1lYXN1cmVtZW50XSBBYm91dCB0byBmaXJlIGFuIGF0dHJpYnV0aW9uIHJlcXVl
c3QuIl9zKTsKIAotICAgIG1fY2xpZW50LT5sb2FkRnJvbU5ldHdvcmsoV1RGTW92ZShhdHRyaWJ1
dGlvblVSTCksIGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0SlNPTigpLCBwY21EYXRhQ2Fy
cmllZCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzXShhdXRvJiBlcnJvciwg
YXV0byYgcmVzcG9uc2UsIGF1dG8mKSB7CisgICAgUENNOjpOZXR3b3JrTG9hZGVyOjpzdGFydChX
VEZNb3ZlKGF0dHJpYnV0aW9uVVJMKSwgYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRKU09O
KCksIHBjbURhdGFDYXJyaWVkLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNd
KGF1dG8mIGVycm9yLCBhdXRvJiByZXNwb25zZSwgYXV0byYpIHsKICAgICAgICAgaWYgKCF3ZWFr
VGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE5ldHdvcmtMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIu
Y3BwCmluZGV4IDgzZTdlMzQ1OWUzY2QwMjY4ZTg0M2ViN2ZhMWU4YzE5ZTZiYzg0MWMuLjQ1YTA1
ZWUxYWIzNmVlMWE3ZDg0NDc3ZmZhMTE2NDRiNTk4OGY5OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0
d29ya0xvYWRlci5jcHAKQEAgLTI2LDEyNCArMjYsMjAgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaCIKIAotI2lu
Y2x1ZGUgIk5ldHdvcmtMb2FkLmgiCi0jaW5jbHVkZSAiTmV0d29ya1Nlc3Npb24uaCIKLSNpbmNs
dWRlIDxXZWJDb3JlL0hUVFBIZWFkZXJWYWx1ZXMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL01JTUVU
eXBlUmVnaXN0cnkuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvVGV4dFJlc291cmNlRGVjb2Rlci5oPgotCi0jaW5jbHVk
ZSA8d3RmL0pTT05WYWx1ZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK25hbWVz
cGFjZSBQQ00gewogCi1zdGF0aWMgTmV0d29ya0xvYWRQYXJhbWV0ZXJzIGdlbmVyYXRlTmV0d29y
a0xvYWRQYXJhbWV0ZXJzKFVSTCYmIHVybCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBqc29uUGF5
bG9hZCwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVkIHBjbURhdGFDYXJy
aWVkKQorI2lmICFQTEFURk9STShDT0NPQSkKK3ZvaWQgTmV0d29ya0xvYWRlcjo6c3RhcnQoVVJM
JiYsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYsIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQY21E
YXRhQ2FycmllZCwgQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBTdHJpbmcg
aHR0cE1ldGhvZCA9IGpzb25QYXlsb2FkID8gIlBPU1QiX3MgOiAiR0VUIl9zOwotCi0gICAgUmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QgeyBXVEZNb3ZlKHVybCkgfTsKLSAgICByZXF1ZXN0LnNldEhU
VFBNZXRob2QoaHR0cE1ldGhvZCk7Ci0gICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OkNhY2hlQ29udHJvbCwgV2ViQ29yZTo6SFRUUEhlYWRlclZhbHVlczo6bWF4
QWdlMCgpKTsKLSAgICBpZiAoanNvblBheWxvYWQpIHsKLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQ
Q29udGVudFR5cGUoV2ViQ29yZTo6SFRUUEhlYWRlclZhbHVlczo6YXBwbGljYXRpb25KU09OQ29u
dGVudFR5cGUoKSk7Ci0gICAgICAgIHJlcXVlc3Quc2V0SFRUUEJvZHkoV2ViQ29yZTo6Rm9ybURh
dGE6OmNyZWF0ZShqc29uUGF5bG9hZC0+dG9KU09OU3RyaW5nKCkudXRmOCgpKSk7Ci0gICAgfQot
Ci0gICAgTmV0d29ya0xvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOwotICAgIGxvYWRQYXJh
bWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwotICAgIGxvYWRQYXJhbWV0ZXJzLnBhcmVudFBJRCA9
IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOwotICAgIGxvYWRQYXJhbWV0ZXJzLnN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5ID0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkVwaGVtZXJhbFN0YXRl
bGVzczsKLSAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0ID0gdHJ1ZTsKLSAgICBsb2FkUGFyYW1ldGVycy5wY21EYXRhQ2FycmllZCA9IHBj
bURhdGFDYXJyaWVkOwotCi0gICAgcmV0dXJuIGxvYWRQYXJhbWV0ZXJzOworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCB7IH0sIHsgfSk7CiB9CisjZW5k
aWYKIAotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI6OnN0YXJ0KE5l
dHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBVUkwmJiB1cmwsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYg
anNvblBheWxvYWQsIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZCBwY21E
YXRhQ2FycmllZCwgQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBhdXRvIHBh
cmFtZXRlcnMgPSBnZW5lcmF0ZU5ldHdvcmtMb2FkUGFyYW1ldGVycyhXVEZNb3ZlKHVybCksIFdU
Rk1vdmUoanNvblBheWxvYWQpLCBwY21EYXRhQ2FycmllZCk7Ci0gICAgYXV0byBsb2FkZXIgPSBz
dGQ6OnVuaXF1ZV9wdHI8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyPihuZXcg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKHNlc3Npb24sIFdURk1vdmUocGFy
YW1ldGVycyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKSk7Ci0gICAgc2Vzc2lvbi5hZGRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIoV1RGTW92ZShsb2FkZXIpKTsKLX0K
LQotUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE5ldHdvcmtMb2FkZXIoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtMb2Fk
UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIENhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCi0g
ICAgOiBtX3Nlc3Npb24obWFrZVdlYWtQdHIoc2Vzc2lvbikpCi0gICAgLCBtX2NvbXBsZXRpb25I
YW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQotewotICAgIG1fbmV0d29ya0xvYWQg
PSBtYWtlVW5pcXVlPE5ldHdvcmtMb2FkPigqdGhpcywgbnVsbHB0ciwgV1RGTW92ZShwYXJhbWV0
ZXJzKSwgKm1fc2Vzc2lvbik7Ci0gICAgbV9uZXR3b3JrTG9hZC0+c3RhcnQoKTsKLX0KLQotUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjp+UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnROZXR3b3JrTG9hZGVyKCkKLXsKLSAgICBjYW5jZWwoKTsKLX0KLQotdm9pZCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI6OmZhaWwoUmVzb3VyY2VFcnJvciYmIGVycm9yKQot
ewotICAgIGlmICghbV9jb21wbGV0aW9uSGFuZGxlcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
bV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGVycm9yKSwgeyB9LCBudWxscHRyKTsKLSAgICBk
aWRDb21wbGV0ZSgpOwotfQotCi12b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xv
YWRlcjo6Y2FuY2VsKCkKLXsKLSAgICBmYWlsKFJlc291cmNlRXJyb3IgeyBSZXNvdXJjZUVycm9y
OjpUeXBlOjpDYW5jZWxsYXRpb24gfSk7Ci19Ci0KLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnROZXR3b3JrTG9hZGVyOjp3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVz
dCYmLCBSZXNvdXJjZVJlcXVlc3QmJiwgUmVzb3VyY2VSZXNwb25zZSYmKQotewotICAgIGNhbmNl
bCgpOwotfQotCi12b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6ZGlk
UmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgUmVzcG9uc2VDb21w
bGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmICghTUlNRVR5cGVS
ZWdpc3RyeTo6aXNTdXBwb3J0ZWRKU09OTUlNRVR5cGUocmVzcG9uc2UubWltZVR5cGUoKSkpIHsK
LSAgICAgICAgZmFpbCh7IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwsIDAsIHJlc3BvbnNlLnVy
bCgpLCAiTUlNRSBUeXBlIGlzIG5vdCBhIEpTT04gTUlNRSB0eXBlIl9zIH0pOwotICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihQb2xpY3lBY3Rpb246Oklnbm9yZSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBtX3Jlc3BvbnNlID0gV1RGTW92ZShyZXNwb25zZSk7Ci0gICAgY29tcGxl
dGlvbkhhbmRsZXIoUG9saWN5QWN0aW9uOjpVc2UpOwotfQotCi12b2lkIFByaXZhdGVDbGlja01l
YXN1cmVtZW50TmV0d29ya0xvYWRlcjo6ZGlkUmVjZWl2ZUJ1ZmZlcihSZWY8U2hhcmVkQnVmZmVy
PiYmIGJ1ZmZlciwgaW50IHJlcG9ydGVkRW5jb2RlZERhdGFMZW5ndGgpCi17Ci0gICAgaWYgKCFt
X2RlY29kZXIpCi0gICAgICAgIG1fZGVjb2RlciA9IFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0
ZSgiYXBwbGljYXRpb24vanNvbiJfcywgbV9yZXNwb25zZS50ZXh0RW5jb2RpbmdOYW1lKCkuaXNF
bXB0eSgpID8gV2ViQ29yZTo6VGV4dEVuY29kaW5nKCJVVEYtOCIpIDogV2ViQ29yZTo6VGV4dEVu
Y29kaW5nKG1fcmVzcG9uc2UudGV4dEVuY29kaW5nTmFtZSgpKSk7Ci0KLSAgICBpZiAoYXV0byBz
aXplID0gYnVmZmVyLT5zaXplKCkpCi0gICAgICAgIG1fanNvblN0cmluZy5hcHBlbmQobV9kZWNv
ZGVyLT5kZWNvZGUoYnVmZmVyLT5kYXRhKCksIHNpemUpKTsKLX0KLQotdm9pZCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoY29uc3QgV2ViQ29y
ZTo6TmV0d29ya0xvYWRNZXRyaWNzJikKLXsKLSAgICBpZiAobV9kZWNvZGVyKQotICAgICAgICBt
X2pzb25TdHJpbmcuYXBwZW5kKG1fZGVjb2Rlci0+Zmx1c2goKSk7Ci0KLSAgICBpZiAoYXV0byBq
c29uVmFsdWUgPSBKU09OOjpWYWx1ZTo6cGFyc2VKU09OKG1fanNvblN0cmluZy50b1N0cmluZygp
KSkKLSAgICAgICAgbV9jb21wbGV0aW9uSGFuZGxlcih7IH0sIG1fcmVzcG9uc2UsIGpzb25WYWx1
ZS0+YXNPYmplY3QoKSk7Ci0gICAgZWxzZQotICAgICAgICBtX2NvbXBsZXRpb25IYW5kbGVyKHsg
fSwgbV9yZXNwb25zZSwgbnVsbHB0cik7Ci0KLSAgICBkaWRDb21wbGV0ZSgpOwotfQotCi12b2lk
IFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6ZGlkRmFpbExvYWRpbmcoY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCi17Ci0gICAgZmFpbChSZXNvdXJjZUVycm9yKGVycm9y
KSk7Ci19Ci0KLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyOjpkaWRD
b21wbGV0ZSgpCi17Ci0gICAgbV9uZXR3b3JrTG9hZCA9IG51bGxwdHI7Ci0gICAgaWYgKG1fc2Vz
c2lvbikKLSAgICAgICAgbV9zZXNzaW9uLT5yZW1vdmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5l
dHdvcmtMb2FkZXIodGhpcyk7Ci19Cit9IC8vIG5hbWVzcGFjZSBQQ00KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlci5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaAppbmRleCAxZTM5ZWU1MmY1MzEz
ZjNmMTZiZmExZjJhMWUyZDE1NzcwNjFmOGYwLi4zMDMzMDc3YTVmOTQzYzQ2NmU2NGFiMTY3NDI1
MTczZGIwNTQxZWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmgKQEAgLTI1LDQ5ICsy
NSwyNSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIk5ldHdvcmtMb2FkLmgiCi0jaW5j
bHVkZSAiTmV0d29ya0xvYWRDbGllbnQuaCIKLSNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRl
cnMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1RleHRSZXNvdXJjZURlY29kZXIuaD4KICNpbmNsdWRl
IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFJl
c291cmNlRXJyb3I7CitjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworfQogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotY2xhc3MgTmV0d29ya1Nlc3Npb247CituYW1lc3BhY2UgUENNIHsKIAotY2xhc3Mg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyIGZpbmFsIDogcHVibGljIE5ldHdv
cmtMb2FkQ2xpZW50IHsKK2NsYXNzIE5ldHdvcmtMb2FkZXIgewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgogICAgIHVzaW5nIENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlZlB0cjxKU09OOjpPYmplY3Q+Jik+OwotICAgIHN0YXRp
YyB2b2lkIHN0YXJ0KE5ldHdvcmtTZXNzaW9uJiwgVVJMJiYsIFJlZlB0cjxKU09OOjpPYmplY3Q+
JiYsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZCwgQ2Fs
bGJhY2smJik7Ci0KLSAgICB+UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKCk7
Ci0KLXByaXZhdGU6Ci0gICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyKE5l
dHdvcmtTZXNzaW9uJiwgTmV0d29ya0xvYWRQYXJhbWV0ZXJzJiYsIENhbGxiYWNrJiYpOwotCi0g
ICAgLy8gTmV0d29ya0xvYWRDbGllbnQuCi0gICAgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25lZCBs
b25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50
KSBmaW5hbCB7IH0KLSAgICBib29sIGlzU3luY2hyb25vdXMoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBmYWxzZTsgfQotICAgIGJvb2wgaXNBbGxvd2VkVG9Bc2tVc2VyRm9yQ3JlZGVudGlhbHMoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZvaWQgd2lsbFNlbmRSZWRpcmVjdGVk
UmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYgcmVkaXJlY3RSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJl
Y3RSZXNwb25zZSkgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYmLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwot
ICAgIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmLCBp
bnQgcmVwb3J0ZWRFbmNvZGVkRGF0YUxlbmd0aCkgZmluYWw7Ci0gICAgdm9pZCBkaWRGaW5pc2hM
b2FkaW5nKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYpIGZpbmFsOwotICAgIHZv
aWQgZGlkRmFpbExvYWRpbmcoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIGZpbmFsOwot
Ci0gICAgdm9pZCBmYWlsKFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJik7Ci0gICAgdm9pZCBjYW5j
ZWwoKTsKLSAgICB2b2lkIGRpZENvbXBsZXRlKCk7Ci0KLSAgICBXZWFrUHRyPE5ldHdvcmtTZXNz
aW9uPiBtX3Nlc3Npb247Ci0gICAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtMb2FkPiBtX25ldHdv
cmtMb2FkOwotICAgIENhbGxiYWNrIG1fY29tcGxldGlvbkhhbmRsZXI7Ci0KLSAgICBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlRleHRS
ZXNvdXJjZURlY29kZXI+IG1fZGVjb2RlcjsKLSAgICBTdHJpbmdCdWlsZGVyIG1fanNvblN0cmlu
ZzsKKyAgICBzdGF0aWMgdm9pZCBzdGFydChVUkwmJiwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiwg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVkLCBDYWxsYmFj
ayYmKTsKIH07CiAKK30gLy8gbmFtZXNwYWNlIFBDTQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlckNvY29hLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQ2YmYwNmUxMTFmNmJiNWY3ZWYyOGYxOTZkMmVlMzgwMGM3YzhhNGMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlckNvY29hLm1t
CkBAIC0wLDAgKzEsMTIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaCIKKworI2ltcG9ydCAi
TmV0d29ya1Nlc3Npb25Db2NvYS5oIgorI2ltcG9ydCA8V2ViQ29yZS9IVFRQSGVhZGVyVmFsdWVz
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KKyNpbXBvcnQgPHBhbC9z
cGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CisjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKwor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvTmV0
d29ya0RhdGFUYXNrQ29jb2FBZGRpdGlvbnMuaD4KKyNlbHNlCitzdGF0aWMgdm9pZCBwcm9jZXNz
UENNUmVxdWVzdChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJp
ZWQsIE5TTXV0YWJsZVVSTFJlcXVlc3QgKikgeyB9CisjZW5kaWYKKworQGludGVyZmFjZSBXS05l
dHdvcmtTZXNzaW9uRGVsZWdhdGVBbGxvd2luZ09ubHlOb25SZWRpcmVjdGVkSlNPTiA6IE5TT2Jq
ZWN0IDxOU1VSTFNlc3Npb25EYXRhRGVsZWdhdGU+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBX
S05ldHdvcmtTZXNzaW9uRGVsZWdhdGVBbGxvd2luZ09ubHlOb25SZWRpcmVjdGVkSlNPTgorCist
ICh2b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3Npb24gdGFzazooTlNVUkxTZXNz
aW9uVGFzayAqKXRhc2sgd2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb246KE5TSFRUUFVSTFJlc3Bv
bnNlICopcmVzcG9uc2UgbmV3UmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikoTlNVUkxSZXF1ZXN0ICopKWNvbXBsZXRpb25IYW5kbGVyCit7
CisgICAgY29tcGxldGlvbkhhbmRsZXIobmlsKTsKK30KKworLSAodm9pZClVUkxTZXNzaW9uOihO
U1VSTFNlc3Npb24gKilzZXNzaW9uIGRhdGFUYXNrOihOU1VSTFNlc3Npb25EYXRhVGFzayAqKWRh
dGFUYXNrIGRpZFJlY2VpdmVSZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXJlc3BvbnNlIGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VSTFNlc3Npb25SZXNwb25zZURpc3Bvc2l0aW9uIGRp
c3Bvc2l0aW9uKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5
Ojppc1N1cHBvcnRlZEpTT05NSU1FVHlwZShyZXNwb25zZS5NSU1FVHlwZSkpCisgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25SZXNwb25zZUFsbG93KTsKKyAgICBj
b21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25SZXNwb25zZUNhbmNlbCk7Cit9CisKKy0gKHZv
aWQpVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiB0YXNrOihOU1VSTFNlc3Npb25U
YXNrICopdGFzayBkaWRSZWNlaXZlQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlICopY2hhbGxlbmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VSTFNlc3Npb25B
dXRoQ2hhbGxlbmdlRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIE5TVVJMQ3JlZGVudGlhbCAqY3Jl
ZGVudGlhbCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBpZiAoW2NoYWxsZW5nZS5wcm90ZWN0
aW9uU3BhY2UuYXV0aGVudGljYXRpb25NZXRob2QgaXNFcXVhbFRvU3RyaW5nOk5TVVJMQXV0aGVu
dGljYXRpb25NZXRob2RTZXJ2ZXJUcnVzdF0KKyAgICAgICAgJiYgTmV0d29ya1Nlc3Npb25Db2Nv
YTo6YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjaGFsbGVuZ2UpKQorICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZVVz
ZUNyZWRlbnRpYWwsIFtOU1VSTENyZWRlbnRpYWwgY3JlZGVudGlhbEZvclRydXN0OmNoYWxsZW5n
ZS5wcm90ZWN0aW9uU3BhY2Uuc2VydmVyVHJ1c3RdKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihO
U1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlUGVyZm9ybURlZmF1bHRIYW5kbGluZywgbmlsKTsKK30K
KworQGVuZAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworbmFtZXNwYWNlIFBDTSB7CisKK2VudW0g
TG9hZFRhc2tJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBMb2FkVGFza0lkZW50aWZpZXIgPSBP
YmplY3RJZGVudGlmaWVyPExvYWRUYXNrSWRlbnRpZmllclR5cGU+Oworc3RhdGljIEhhc2hNYXA8
TG9hZFRhc2tJZGVudGlmaWVyLCBSZXRhaW5QdHI8TlNVUkxTZXNzaW9uRGF0YVRhc2s+PiYgdGFz
a01hcCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8TG9hZFRhc2tJZGVu
dGlmaWVyLCBSZXRhaW5QdHI8TlNVUkxTZXNzaW9uRGF0YVRhc2s+Pj4gbWFwOworICAgIHJldHVy
biBtYXAuZ2V0KCk7Cit9CisKK3N0YXRpYyBOU1VSTFNlc3Npb24gKnN0YXRlbGVzc1Nlc3Npb25X
aXRob3V0UmVkaXJlY3RzKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWluUHRy
PFdLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZUFsbG93aW5nT25seU5vblJlZGlyZWN0ZWRKU09OPj4g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGVBbGxvd2luZ09ubHlO
b25SZWRpcmVjdGVkSlNPTiBuZXddKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWlu
UHRyPE5TVVJMU2Vzc2lvbj4+IHNlc3Npb24gPSBbJl0geworICAgICAgICBOU1VSTFNlc3Npb25D
b25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uID0gW05TVVJMU2Vzc2lvbkNvbmZpZ3VyYXRpb24g
ZXBoZW1lcmFsU2Vzc2lvbkNvbmZpZ3VyYXRpb25dOworICAgICAgICBjb25maWd1cmF0aW9uLkhU
VFBDb29raWVBY2NlcHRQb2xpY3kgPSBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZlcjsKKyAg
ICAgICAgY29uZmlndXJhdGlvbi5VUkxDcmVkZW50aWFsU3RvcmFnZSA9IG5pbDsKKyAgICAgICAg
Y29uZmlndXJhdGlvbi5VUkxDYWNoZSA9IG5pbDsKKyAgICAgICAgY29uZmlndXJhdGlvbi5IVFRQ
Q29va2llU3RvcmFnZSA9IG5pbDsKKyAgICAgICAgY29uZmlndXJhdGlvbi5fc2hvdWxkU2tpcFBy
ZWZlcnJlZENsaWVudENlcnRpZmljYXRlTG9va3VwID0gWUVTOworICAgICAgICByZXR1cm4gYWRv
cHROUyhbTlNVUkxTZXNzaW9uIHNlc3Npb25XaXRoQ29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
IGRlbGVnYXRlOmRlbGVnYXRlLmdldCgpLmdldCgpIGRlbGVnYXRlUXVldWU6W05TT3BlcmF0aW9u
UXVldWUgbWFpblF1ZXVlXV0pOworICAgIH0oKTsKKyAgICByZXR1cm4gc2Vzc2lvbi5nZXQoKS5n
ZXQoKTsKK30KKwordm9pZCBOZXR3b3JrTG9hZGVyOjpzdGFydChVUkwmJiB1cmwsIFJlZlB0cjxK
U09OOjpPYmplY3Q+JiYganNvblBheWxvYWQsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpQY21EYXRhQ2FycmllZCBwY21EYXRhQ2FycmllZCwgQ2FsbGJhY2smJiBjYWxsYmFjaykK
K3sKKyAgICBhdXRvIHJlcXVlc3QgPSBhZG9wdE5TKFtbTlNNdXRhYmxlVVJMUmVxdWVzdCBhbGxv
Y10gaW5pdFdpdGhVUkw6dXJsXSk7CisgICAgW3JlcXVlc3Qgc2V0VmFsdWU6V2ViQ29yZTo6SFRU
UEhlYWRlclZhbHVlczo6bWF4QWdlMCgpIGZvckhUVFBIZWFkZXJGaWVsZDpAIkNhY2hlLUNvbnRy
b2wiXTsKKyAgICBpZiAoanNvblBheWxvYWQpIHsKKyAgICAgICAgcmVxdWVzdC5nZXQoKS5IVFRQ
TWV0aG9kID0gQCJQT1NUIjsKKyAgICAgICAgW3JlcXVlc3Qgc2V0VmFsdWU6V2ViQ29yZTo6SFRU
UEhlYWRlclZhbHVlczo6YXBwbGljYXRpb25KU09OQ29udGVudFR5cGUoKSBmb3JIVFRQSGVhZGVy
RmllbGQ6QCJDb250ZW50LVR5cGUiXTsKKyAgICAgICAgYXV0byBib2R5ID0ganNvblBheWxvYWQt
PnRvSlNPTlN0cmluZygpLnV0ZjgoKTsKKyAgICAgICAgcmVxdWVzdC5nZXQoKS5IVFRQQm9keSA9
IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6Ym9keS5kYXRhKCkgbGVuZ3Ro
OmJvZHkubGVuZ3RoKCldKS5nZXQoKTsKKyAgICB9CisKKyAgICBwcm9jZXNzUENNUmVxdWVzdChw
Y21EYXRhQ2FycmllZCwgcmVxdWVzdC5nZXQoKSk7CisKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBM
b2FkVGFza0lkZW50aWZpZXI6OmdlbmVyYXRlKCk7CisgICAgTlNVUkxTZXNzaW9uRGF0YVRhc2sg
KnRhc2sgPSBbc3RhdGVsZXNzU2Vzc2lvbldpdGhvdXRSZWRpcmVjdHMoKSBkYXRhVGFza1dpdGhS
ZXF1ZXN0OnJlcXVlc3QuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBpZGVudGlmaWVyXShOU0RhdGEgKmRhdGEsIE5TVVJM
UmVzcG9uc2UgKnJlc3BvbnNlLCBOU0Vycm9yICplcnJvcikgbXV0YWJsZSB7CisgICAgICAgIHRh
c2tNYXAoKS5yZW1vdmUoaWRlbnRpZmllcik7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAg
ICAgIHJldHVybiBjYWxsYmFjayhlcnJvciwgeyB9LCB7IH0pOworICAgICAgICBpZiAoYXV0byBq
c29uVmFsdWUgPSBKU09OOjpWYWx1ZTo6cGFyc2VKU09OKFN0cmluZzo6ZnJvbVVURjgoc3RhdGlj
X2Nhc3Q8Y29uc3QgTENoYXIqPihkYXRhLmJ5dGVzKSwgZGF0YS5sZW5ndGgpKSkKKyAgICAgICAg
ICAgIHJldHVybiBjYWxsYmFjayh7IH0sIHJlc3BvbnNlLCBqc29uVmFsdWUtPmFzT2JqZWN0KCkp
OworICAgICAgICBjYWxsYmFjayh7IH0sIHJlc3BvbnNlLCBudWxscHRyKTsKKyAgICB9KS5nZXQo
KV07CisgICAgW3Rhc2sgcmVzdW1lXTsKKyAgICB0YXNrTWFwKCkuYWRkKGlkZW50aWZpZXIsIHRh
c2spOworfQorCit9IC8vIG5hbWVzcGFjZSBQQ00KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRh
VGFza0NvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtE
YXRhVGFza0NvY29hLmgKaW5kZXggNGViYmQ5MGNjNjQ1ZGY1ZjlkZGJiODYwZDA4YWEzZWIwNTNj
MmZmNi4uMzkxNDg5ZDY0NDVmNDZjYTdhN2IxZjg3OGZiMWZhMGQ5ZTgzYjdiNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2Nv
YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFU
YXNrQ29jb2EuaApAQCAtMjksMTAgKzI5LDEyIEBACiAjaW5jbHVkZSAiTmV0d29ya0RhdGFUYXNr
LmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9OZXR3b3JrTG9hZE1ldHJpY3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50Lmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiBPQkpDX0NMQVNTIE5T
SFRUUENvb2tpZVN0b3JhZ2U7CiBPQkpDX0NMQVNTIE5TVVJMU2Vzc2lvbkRhdGFUYXNrOworT0JK
Q19DTEFTUyBOU011dGFibGVVUkxSZXF1ZXN0OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBSZWdpc3RyYWJsZURvbWFpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCmluZGV4IDY4NzA4NTE5MjUy
ODg1NzFiZDZjNzYzYjNlNjAzMTNkOTI2MGU5OGMuLjdmOTg4OGRhMjY2MmU2NmQ5NzkyYTEzN2Ji
YWVmZTg3YzBlNTI3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtNTcsNyArNTcsNiBAQAog
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvTmV0
d29ya0RhdGFUYXNrQ29jb2FBZGRpdGlvbnMuaD4KICNlbHNlCi1zdGF0aWMgdm9pZCBwcm9jZXNz
UENNUmVxdWVzdChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJp
ZWQsIE5TTXV0YWJsZVVSTFJlcXVlc3QgKikgeyB9CiBzdGF0aWMgdm9pZCBvdmVycmlkZUF0dHJp
YnV0aW9uQ29udGV4dChOU011dGFibGVVUkxSZXF1ZXN0ICopIHsgfQogI2VuZGlmCiAKQEAgLTM0
Nyw5ICszNDYsNiBAQCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2Eo
TmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVAogCiAgICAgb3ZlcnJpZGVBdHRy
aWJ1dGlvbkNvbnRleHQobXV0YWJsZVJlcXVlc3QuZ2V0KCkpOwogCi0gICAgaWYgKHBhcmFtZXRl
cnMucGNtRGF0YUNhcnJpZWQpCi0gICAgICAgIHByb2Nlc3NQQ01SZXF1ZXN0KCpwYXJhbWV0ZXJz
LnBjbURhdGFDYXJyaWVkLCBtdXRhYmxlUmVxdWVzdC5nZXQoKSk7Ci0KICAgICBuc1JlcXVlc3Qg
PSBtdXRhYmxlUmVxdWVzdDsKIAogI2lmIEVOQUJMRShBUFBfUFJJVkFDWV9SRVBPUlQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNDb2NvYS50eHQKaW5kZXggNzhmYjQyNDEyMjNiMDMyNzVhOTY2ZDlmNzVhYzAwZmNhNDlh
N2Y2ZC4uODkxMzgzNGY2YmI1ZjkzOWU3MjBiMDllZmNiMDJjOTU0NGY4NGFhYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dApAQCAtNDEsNiArNDEsOCBAQCBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
Y29jb2EvRG93bmxvYWRDb2NvYS5tbQogTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9E
YWVtb24vRGFlbW9uRW50cnlQb2ludC5tbQogTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9Db2Nv
YS9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlRW50cnlQb2ludC5tbQogCitOZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5l
dHdvcmtMb2FkZXJDb2NvYS5tbQorCiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL2lvcy9Mb2Nh
bFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXJJT1MubW0KIAogTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzSU9TLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzMGJjODA4ODJjMDRlZWYxY2MwMzkwZjRh
ZDU3ZGUwNjY1YmUwZjYxLi5jZjllMGRmNTRiZjY4YjI1MDAxYzZjYzFkOWViY2I3M2FlMjExNzNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTQ1NTUsNiArNDU1NSw3IEBACiAJCTVDQjkzMEJGMjZFMDU0MkUwMDMyQjFDMCAvKiBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1Q0I5MzBDMDI2RTA1NDJGMDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDbGllbnRJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFByaXZhdGVDbGlja01lYXN1cmVtZW50Q2xpZW50SW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTVDQjkzMEMxMjZFMDU0QjgwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudENsaWVudEltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTVDQjkzMEYyMjZFN0VFRTAwMDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE5ldHdvcmtMb2FkZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlckNvY29hLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0JDOUI4OTFDNjUyNEE1MDBBOEZEQ0YgLyogTmV0
d29ya0RhdGFUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtE
YXRhVGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0JDOUI4QjFDNjUyNTcz
MDBBOEZEQ0YgLyogTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrRGF0YVRhc2tDb2NvYS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNUNCRTkwOEYyNkQ3RkI2MjAwNUEyRTk1IC8qIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50RGVidWdJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC05MjYwLDYgKzkyNjEsNyBAQAogCQk1QzAxQkMzNTI2RDQ2QUQ0MDBGRUI0MkYg
LyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTVDQjkzMEYxMjZFN0VFODkwMDMyQjFDMCAvKiBjb2NvYSAqLywK
IAkJCQk1Q0I5MzBCRjI2RTA1NDJFMDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRD
bGllbnQuaCAqLywKIAkJCQk1Q0I5MzBDMDI2RTA1NDJGMDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRDbGllbnRJbXBsLmNwcCAqLywKIAkJCQk1Q0I5MzBDMTI2RTA1NEI4MDAzMkIx
QzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDbGllbnRJbXBsLmggKi8sCkBAIC05MzUzLDYg
KzkzNTUsMTQgQEAKIAkJCXBhdGggPSBDb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CiAJCX07CisJCTVDQjkzMEYxMjZFN0VFODkwMDMyQjFDMCAvKiBjb2NvYSAqLyA9IHsKKwkJCWlz
YSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNUNCOTMwRjIyNkU3RUVFMDAwMzJC
MUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlckNvY29hLm1tICovLAor
CQkJKTsKKwkJCXBhdGggPSBjb2NvYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CiAJCTZCRTk2OUJGMUU1NEQ0NTIwMDhCNzQ4MyAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437576</attachid>
            <date>2021-09-07 18:35:44 -0700</date>
            <delta_ts>2021-09-07 18:53:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230015-20210907183543.patch</filename>
            <type>text/plain</type>
            <size>4479</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDMxNjgxMzIxNzVmOWY2NzE0
Y2RkMzNkMGYyM2VlY2VmYWNlYWZhYmQuLjU4NmM1NDQ4YzhhMzMzZDNlYmIzODcyZTYyYTI0Yzhj
YTcxOTdiZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDktMDcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXBsYWNlIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlcjo6c3RhcnQgd2l0aCBhbiBpbXBsZW1l
bnRhdGlvbiB0aGF0IGRvZXNuJ3QgbmVlZCBOZXR3b3JrU2Vzc2lvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMDE1CisKKyAgICAgICAgVGhpcyBm
aXhlcyB0aGUgaW50ZXJuYWwgYnVpbGQgYWZ0ZXIgcjI4MjExMC4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50TmV0d29ya0xvYWRlckNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok5ldHdv
cmtMb2FkZXI6OnN0YXJ0KToKKyAgICAgICAgKHByb2Nlc3NQQ01SZXF1ZXN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tOgor
ICAgICAgICAocHJvY2Vzc1BDTVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpzZXRQQ01EYXRh
Q2FycmllZE9uUmVxdWVzdCk6CisKIDIwMjEtMDktMDcgIENhbWVyb24gTWNDb3JtYWNrICA8aGV5
Y2FtQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYW4gSVBDTWVzc2FnZXMgY2hhbm5lbCB0byBs
b2cgYWxsIElQQyBtZXNzYWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE5ldHdvcmtMb2FkZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3Jr
TG9hZGVyQ29jb2EubW0KaW5kZXggZDZiZjA2ZTExMWY2YmI1ZjdlZjI4ZjE5NmQyZWUzODAwYzdj
OGE0Yy4uZjYyNDA2ZDk0YmFjNTNmOTk2MTJhZjI1NDAxZTFhN2FmMGM3NWI4NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9j
b2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29h
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlckNvY29hLm1tCkBAIC0yNiwxOCAr
MjYsMTMgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnROZXR3b3JrTG9hZGVyLmgiCiAKKyNpbXBvcnQgIk5ldHdvcmtEYXRhVGFza0NvY29hLmgi
CiAjaW1wb3J0ICJOZXR3b3JrU2Vzc2lvbkNvY29hLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0hUVFBI
ZWFkZXJWYWx1ZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2lt
cG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNpbXBvcnQgPFdlYktpdEFk
ZGl0aW9ucy9OZXR3b3JrRGF0YVRhc2tDb2NvYUFkZGl0aW9ucy5oPgotI2Vsc2UKLXN0YXRpYyB2
b2lkIHByb2Nlc3NQQ01SZXF1ZXN0KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQ
Y21EYXRhQ2FycmllZCwgTlNNdXRhYmxlVVJMUmVxdWVzdCAqKSB7IH0KLSNlbmRpZgotCiBAaW50
ZXJmYWNlIFdLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZUFsbG93aW5nT25seU5vblJlZGlyZWN0ZWRK
U09OIDogTlNPYmplY3QgPE5TVVJMU2Vzc2lvbkRhdGFEZWxlZ2F0ZT4KIEBlbmQKIApAQCAtMTAz
LDcgKzk4LDcgQEAgdm9pZCBOZXR3b3JrTG9hZGVyOjpzdGFydChVUkwmJiB1cmwsIFJlZlB0cjxK
U09OOjpPYmplY3Q+JiYganNvblBheWxvYWQsIFdlYkNvcmUKICAgICAgICAgcmVxdWVzdC5nZXQo
KS5IVFRQQm9keSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6Ym9keS5k
YXRhKCkgbGVuZ3RoOmJvZHkubGVuZ3RoKCldKS5nZXQoKTsKICAgICB9CiAKLSAgICBwcm9jZXNz
UENNUmVxdWVzdChwY21EYXRhQ2FycmllZCwgcmVxdWVzdC5nZXQoKSk7CisgICAgc2V0UENNRGF0
YUNhcnJpZWRPblJlcXVlc3QocGNtRGF0YUNhcnJpZWQsIHJlcXVlc3QuZ2V0KCkpOwogCiAgICAg
YXV0byBpZGVudGlmaWVyID0gTG9hZFRhc2tJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwogICAgIE5T
VVJMU2Vzc2lvbkRhdGFUYXNrICp0YXNrID0gW3N0YXRlbGVzc1Nlc3Npb25XaXRob3V0UmVkaXJl
Y3RzKCkgZGF0YVRhc2tXaXRoUmVxdWVzdDpyZXF1ZXN0LmdldCgpIGNvbXBsZXRpb25IYW5kbGVy
Om1ha2VCbG9ja1B0cihbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgaWRlbnRpZmllcl0o
TlNEYXRhICpkYXRhLCBOU1VSTFJlc3BvbnNlICpyZXNwb25zZSwgTlNFcnJvciAqZXJyb3IpIG11
dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrRGF0YVRhc2tDb2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCmluZGV4IDM5MTQ4OWQ2NDQ1ZjQ2Y2E3YTdiMWY4Nzhm
YjFmYTBkOWU4M2I3YjQuLjkzOGJmOGY4ZmU0Y2VkMWVjODAyMzNiYzliOWFkYzlkMmEzYzIyNDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0Rh
dGFUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtEYXRhVGFza0NvY29hLmgKQEAgLTEyOCw1ICsxMjgsNiBAQCBwcml2YXRlOgogfTsKIAog
V2ViQ29yZTo6Q3JlZGVudGlhbCBzZXJ2ZXJUcnVzdENyZWRlbnRpYWwoY29uc3QgV2ViQ29yZTo6
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKK3ZvaWQgc2V0UENNRGF0YUNhcnJpZWRPblJlcXVl
c3QoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVkLCBOU011
dGFibGVVUkxSZXF1ZXN0ICopOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0Nv
Y29hLm1tCmluZGV4IDdmOTg4OGRhMjY2MmU2NmQ5NzkyYTEzN2JiYWVmZTg3YzBlNTI3YjYuLmIz
MGYzNThiNjJlMGNhOTg3ZDA4MDc0M2Y0MDNhM2I3NTU3YjViNjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2Nv
YS5tbQpAQCAtNTgsMTAgKzU4LDE2IEBACiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvTmV0d29y
a0RhdGFUYXNrQ29jb2FBZGRpdGlvbnMuaD4KICNlbHNlCiBzdGF0aWMgdm9pZCBvdmVycmlkZUF0
dHJpYnV0aW9uQ29udGV4dChOU011dGFibGVVUkxSZXF1ZXN0ICopIHsgfQorc3RhdGljIHZvaWQg
cHJvY2Vzc1BDTVJlcXVlc3QoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURh
dGFDYXJyaWVkLCBOU011dGFibGVVUkxSZXF1ZXN0ICopIHsgfQogI2VuZGlmCiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCitzdGF0aWMgdm9pZCBzZXRQQ01EYXRhQ2FycmllZE9uUmVxdWVzdChXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJpZWQgcGNtRGF0YUNhcnJp
ZWQsIE5TTXV0YWJsZVVSTFJlcXVlc3QgKnJlcXVlc3QpCit7CisgICAgcHJvY2Vzc1BDTVJlcXVl
c3QocGNtRGF0YUNhcnJpZWQsIHJlcXVlc3QpOworfQorCiAjaWYgVVNFKENSRURFTlRJQUxfU1RP
UkFHRV9XSVRIX05FVFdPUktfU0VTU0lPTikKIHN0YXRpYyB2b2lkIGFwcGx5QmFzaWNBdXRob3Jp
emF0aW9uSGVhZGVyKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2Vi
Q29yZTo6Q3JlZGVudGlhbCYgY3JlZGVudGlhbCkKIHsK
</data>
<flag name="commit-queue"
          id="460775"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>