<?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>219961</bug_id>
          
          <creation_ts>2020-12-16 14:07:20 -0800</creation_ts>
          <short_desc>[Cocoa] WebM format reader doesn&apos;t work with a url in a &lt;source&gt; element</short_desc>
          <delta_ts>2021-01-05 23:26:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>aestes</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1715229</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-12-16 14:07:20 -0800</bug_when>
    <thetext>The WebM format reader doesn&apos;t work if the source url is in a &lt;source&gt; element</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715230</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-16 14:07:35 -0800</bug_when>
    <thetext>&lt;rdar://problem/72399014&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715273</commentid>
    <comment_count>2</comment_count>
      <attachid>416374</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-12-16 17:21:45 -0800</bug_when>
    <thetext>Created attachment 416374
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715274</commentid>
    <comment_count>3</comment_count>
      <attachid>416375</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-12-16 17:27:34 -0800</bug_when>
    <thetext>Created attachment 416375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715276</commentid>
    <comment_count>4</comment_count>
      <attachid>416376</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-12-16 17:35:00 -0800</bug_when>
    <thetext>Created attachment 416376
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715375</commentid>
    <comment_count>5</comment_count>
      <attachid>416417</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-12-17 06:31:34 -0800</bug_when>
    <thetext>Created attachment 416417
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715379</commentid>
    <comment_count>6</comment_count>
      <attachid>416417</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-12-17 07:21:13 -0800</bug_when>
    <thetext>Comment on attachment 416417
Patch

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

&gt; Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.cpp:484
&gt; +    if (!os_variant_allows_internal_security_policies(&quot;com.apple.WebKit&quot;))

Since the value won&apos;t change at runtime, can you break this out into a helper function that caches the result of os_variant_allows_internal_security_policies() in a static bool? This was my mistake from earlier, but maybe you can fix it while you&apos;re here :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715380</commentid>
    <comment_count>7</comment_count>
      <attachid>416417</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-12-17 07:24:46 -0800</bug_when>
    <thetext>Comment on attachment 416417
Patch

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

&gt; Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.cpp:447
&gt; +bool SourceBufferParserWebM::m_formatReaderEnabled = false;

Since globals are initialized to 0 by default, no need for the ` = false` here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715383</commentid>
    <comment_count>8</comment_count>
      <attachid>416419</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-12-17 08:04:23 -0800</bug_when>
    <thetext>Created attachment 416419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715391</commentid>
    <comment_count>9</comment_count>
      <attachid>416420</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-12-17 08:41:14 -0800</bug_when>
    <thetext>Created attachment 416420
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715400</commentid>
    <comment_count>10</comment_count>
      <attachid>416425</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-12-17 09:03:31 -0800</bug_when>
    <thetext>Created attachment 416425
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715412</commentid>
    <comment_count>11</comment_count>
      <attachid>416428</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-12-17 09:28:50 -0800</bug_when>
    <thetext>Created attachment 416428
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715465</commentid>
    <comment_count>12</comment_count>
      <attachid>416443</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-12-17 11:33:48 -0800</bug_when>
    <thetext>Created attachment 416443
Final patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715478</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-17 12:14:50 -0800</bug_when>
    <thetext>Committed r270939: &lt;https://trac.webkit.org/changeset/270939&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 416443.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715491</commentid>
    <comment_count>14</comment_count>
      <attachid>416443</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-12-17 12:32:22 -0800</bug_when>
    <thetext>Comment on attachment 416443
Final patch for landing

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

&gt; Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.cpp:483
&gt; +#endif
&gt; +
&gt; +#if USE(APPLE_INTERNAL_SDK)

This should be elif so we don’t compile multiple return statements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715531</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-12-17 13:50:19 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715532</commentid>
    <comment_count>16</comment_count>
      <attachid>416465</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-12-17 13:50:19 -0800</bug_when>
    <thetext>Created attachment 416465
Address post-review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715577</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-17 15:15:12 -0800</bug_when>
    <thetext>Committed r270952: &lt;https://trac.webkit.org/changeset/270952&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 416465.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715606</commentid>
    <comment_count>18</comment_count>
      <attachid>416419</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-12-17 15:57:56 -0800</bug_when>
    <thetext>Comment on attachment 416419
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm:105
&gt; +    static auto cache = makeNeverDestroyed([this] {
&gt; +        UNUSED_PARAM(this);

Why do we capture &quot;this&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715611</commentid>
    <comment_count>19</comment_count>
      <attachid>416419</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-12-17 16:17:03 -0800</bug_when>
    <thetext>Comment on attachment 416419
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm:105
&gt;&gt; +        UNUSED_PARAM(this);
&gt; 
&gt; Why do we capture &quot;this&quot;?

That was left over from a earlier version of the patch, but it was removed before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716072</commentid>
    <comment_count>20</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-12-21 12:49:26 -0800</bug_when>
    <thetext>Reverted r270939 and r270952 for reason:

Caused layout test timeouts on internal bots

Committed r271038: &lt;https://trac.webkit.org/changeset/271038&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716073</commentid>
    <comment_count>21</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-12-21 12:49:28 -0800</bug_when>
    <thetext>Reverted r270939 and r270952 for reason:

Caused layout test timeouts on internal bots

Committed r271038: &lt;https://trac.webkit.org/changeset/271038&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716078</commentid>
    <comment_count>22</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-12-21 13:03:46 -0800</bug_when>
    <thetext>Details in rdar://72484508</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717534</commentid>
    <comment_count>23</comment_count>
      <attachid>417051</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-01-05 16:23:31 -0800</bug_when>
    <thetext>Created attachment 417051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717549</commentid>
    <comment_count>24</comment_count>
      <attachid>417058</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-01-05 17:05:02 -0800</bug_when>
    <thetext>Created attachment 417058
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717555</commentid>
    <comment_count>25</comment_count>
      <attachid>417060</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-01-05 17:13:42 -0800</bug_when>
    <thetext>Created attachment 417060
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717558</commentid>
    <comment_count>26</comment_count>
      <attachid>417061</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-01-05 17:23:53 -0800</bug_when>
    <thetext>Created attachment 417061
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717559</commentid>
    <comment_count>27</comment_count>
      <attachid>417062</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-01-05 17:33:16 -0800</bug_when>
    <thetext>Created attachment 417062
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717599</commentid>
    <comment_count>28</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-05 23:26:41 -0800</bug_when>
    <thetext>Committed r271194: &lt;https://trac.webkit.org/changeset/271194&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417062.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416374</attachid>
            <date>2020-12-16 17:21:45 -0800</date>
            <delta_ts>2020-12-16 17:35:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219961-20201216172144.patch</filename>
            <type>text/plain</type>
            <size>21606</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwODkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjMyMDI4ZjczZTQ1ZThl
ODdiMjdjMTIzODNlMGFjMDFkZTRkYzgxMi4uZDk1MTkwZDk0M2VkNGM0ZGM4ZGFjZDFmNDM3Yzky
NmNmZWE1MTZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTEyLTE2ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2Vi
TSBmb3JtYXQgcmVhZGVyIGRvZXNuJ3Qgd29yayB3aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5
OTYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjM5OTAxND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXb3JrIGFyb3VuZCBhIGJ1ZyB0aGF0IG1h
a2VzIHRoZSBmb3JtYXQgcmVhZGVyIGZhaWwgdG8gbG9hZCB3aGVuIHRoZSBBVlVSTEFzc2V0T3V0
T2ZCYW5kTUlNRVR5cGVLZXkKKyAgICAgICAgaXMgaW5jbHVkZWQgaW4gdGhlIEFWVVJMQXNzZXQg
b3B0aW9ucyBkaWN0aW9uYXJ5LiBBbHNvIGluY2x1ZGUgc29tZSBjbGVhbnVwOgorICAgICAgICAt
IE1vdmUgdGhlIGNvZGUgdG8gY2hlY2sgZm9yIFdlYk0gTUlNRSB0eXBlcyBmcm9tIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMKKyAgICAgICAgICB0byBBVkFzc2V0TUlNRVR5cGVD
YWNoZS4KKyAgICAgICAgLSBEb24ndCB1c2UgUnVudGltZUVuYWJsZWRGZWF0dXJlcyBpbiBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLgorICAgICAgICAtIFJlZ2lzdGVyIHRoZSBX
ZWJNIGZvcm1hdCByZWFkZXIgd2hlbiBjcmVhdGluZyBhbiBBVlVSTEFzc2V0IGZvciBhIFdlYk0g
dXJsIGluc3RlYWQKKyAgICAgICAgICBvZiB3aGVuIGNoZWNraW5nIHRoZSBNSU1FIHR5cGUuCisg
ICAgICAgIC0gQ2xlYW51cCBXZWJNICJjb2RlY3MiIHBhcmFtZXRlciBwYXJzaW5nLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBl
Q2FjaGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9B
VkFzc2V0TUlNRVR5cGVDYWNoZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXNzZXRNSU1FVHlw
ZUNhY2hlOjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVZBc3Nl
dE1JTUVUeXBlQ2FjaGU6OnN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzZXRXZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnJlZ2lzdGVyRm9y
bWF0UmVhZGVySWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkQWR2ZXJ0aXNl
T3V0T2ZCYW5kTUlNRVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGVBbmRDb2Rl
Y3MpOgorICAgICAgICAoV2ViQ29yZTo6ZW5zdXJlRm9ybWF0UmVhZGVySXNSZWdpc3RlcmVkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzRm9ybWF0UmVhZGVyQXZhaWxhYmxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJz
ZXJXZWJNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OnNl
dFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
clBhcnNlcldlYk06OndlYm1NSU1FVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyUGFyc2VyV2ViTTo6aXNXZWJNRm9ybWF0UmVhZGVyQXZhaWxhYmxlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0u
aDoKKwogMjAyMC0xMi0xNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBNYWtlIEZyYW1lVmlldzo6bV9jdXN0b21TaXplRm9yUmVzaXplRXZlbnQgYW4g
T3B0aW9uYWw8SW50U2l6ZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTg4NzMxYzk0YzQ3MTA4Y2Q2Njk5YWU2NTM5
MTM5ZDMxOGNlZTgzYi4uYTA0Yjk4YTE5NmQxMzliNDEzNzdiOTk3YjUxNmVmMzBlYjk1MjFjNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0xMi0xNiAgRXJpYyBDYXJsc29uICA8ZXJp
Yy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFdlYk0gZm9ybWF0IHJlYWRl
ciBkb2Vzbid0IHdvcmsgd2l0aCBhIHVybCBpbiBhIDxzb3VyY2U+IGVsZW1lbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTk2MQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzIzOTkwMTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMjAtMTItMTUgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQ2FsbHMgdG8gc2V0
Rml4ZWRMYXlvdXRTaXplKCkgc2hvdWxkIG5vdCBiZSBpbnNpZGUgRU5BQkxFKFRFWFRfQVVUT1NJ
WklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oCmlu
ZGV4IDkzMTc5ZjI4ZDQwYzc1Y2Q4NDI3Y2IxNDZhODIwMzQyYjJiOGM1YTUuLmI3MGIwNjIxYjFk
YTZmN2I5ZjFhNDI2YzVkZjZmZmExYTQzMzA2MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaApAQCAtNDUsNiArNDUsOCBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmKSBmaW5hbDsKIAog
ICAgIHZvaWQgYWRkU3VwcG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKyAgICAK
KyAgICB2b2lkIHNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKGJvb2wpOwogCiBwcml2YXRlOgog
ICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxBVkFzc2V0TUlNRVR5cGVDYWNoZT47CkBAIC01NCw2
ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXplQ2FjaGUoSGFzaFNldDxTdHJp
bmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mKSBmaW5hbDsKIAogICAgIENhY2hlTUlNRVR5
cGVzQ2FsbGJhY2sgbV9jYWNoZVR5cGVDYWxsYmFjazsKKyAgICBib29sIG1fd2ViTUZvcm1hdFJl
YWRlckVuYWJsZWQgeyBmYWxzZSB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2Fj
aGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQppbmRleCA4NzA2NjIxNDY2YjU5NTdkODU3YzhlNmE5
N2M5MWVhNjNmNDYwMWY5Li40MTg0MTE0MmM2YjRjYWE1OWFiZGM5YWExNWIyMGQwYzAzM2U0Njg0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQpA
QCAtMjksNiArMjksNyBAQAogI2lmIFBMQVRGT1JNKENPQ09BKQogCiAjaW1wb3J0ICJDb250ZW50
VHlwZS5oIgorI2ltcG9ydCAiU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oIgogI2ltcG9ydCA8cGFs
L2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9u
U29mdExpbmsuaD4KIApAQCAtNjMsNyArNjQsMTEgQEAgYm9vbCBBVkFzc2V0TUlNRVR5cGVDYWNo
ZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBlKQogewogI2lm
IEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKICAgICBBU1NFUlQoaXNBdmFpbGFi
bGUoKSk7Ci0gICAgcmV0dXJuIFtQQUw6OmdldEFWVVJMQXNzZXRDbGFzcygpIGlzUGxheWFibGVF
eHRlbmRlZE1JTUVUeXBlOnR5cGUucmF3KCldOworICAgIGlmIChbUEFMOjpnZXRBVlVSTEFzc2V0
Q2xhc3MoKSBpc1BsYXlhYmxlRXh0ZW5kZWRNSU1FVHlwZTp0eXBlLnJhdygpXSkKKyAgICAgICAg
cmV0dXJuIHRydWU7CisKKyAgICBpZiAobV93ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCAmJiBTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKHR5cGUpID09IE1lZGlh
UGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQpCisgICAgICAgIHJldHVybiB0
cnVlOwogI2VuZGlmCiAKICAgICByZXR1cm4gZmFsc2U7CkBAIC05NiwzOSArMTAxLDQ5IEBAIGJv
b2wgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OmlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnN0
IFN0cmluZyYgdHlwZSkKIAogY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0
aXZlSGFzaD4mIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzdGF0aWNDb250YWluZXJUeXBlTGlzdCgp
CiB7Ci0gICAgc3RhdGljIGNvbnN0IGF1dG8gY2FjaGUgPSBtYWtlTmV2ZXJEZXN0cm95ZWQoSGFz
aFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4gewotICAgICAgICAiYXBwbGlj
YXRpb24vdm5kLmFwcGxlLm1wZWd1cmwiLAotICAgICAgICAiYXBwbGljYXRpb24veC1tcGVndXJs
IiwKLSAgICAgICAgImF1ZGlvLzNncHAiLAotICAgICAgICAiYXVkaW8vYWFjIiwKLSAgICAgICAg
ImF1ZGlvL2FhY3AiLAotICAgICAgICAiYXVkaW8vYWlmZiIsCi0gICAgICAgICJhdWRpby9iYXNp
YyIsCi0gICAgICAgICJhdWRpby9tcDMiLAotICAgICAgICAiYXVkaW8vbXA0IiwKLSAgICAgICAg
ImF1ZGlvL21wZWciLAotICAgICAgICAiYXVkaW8vbXBlZzMiLAotICAgICAgICAiYXVkaW8vbXBl
Z3VybCIsCi0gICAgICAgICJhdWRpby9tcGciLAotICAgICAgICAiYXVkaW8vdm5kLndhdmUiLAot
ICAgICAgICAiYXVkaW8vd2F2IiwKLSAgICAgICAgImF1ZGlvL3dhdmUiLAotICAgICAgICAiYXVk
aW8veC1hYWMiLAotICAgICAgICAiYXVkaW8veC1haWZmIiwKLSAgICAgICAgImF1ZGlvL3gtbTRh
IiwKLSAgICAgICAgImF1ZGlvL3gtbXBlZ3VybCIsCi0gICAgICAgICJhdWRpby94LXdhdiIsCi0g
ICAgICAgICJ2aWRlby8zZ3BwIiwKLSAgICAgICAgInZpZGVvLzNncHAyIiwKLSAgICAgICAgInZp
ZGVvL21wNCIsCi0gICAgICAgICJ2aWRlby9tcGVnIiwKLSAgICAgICAgInZpZGVvL21wZWcyIiwK
LSAgICAgICAgInZpZGVvL21wZyIsCi0gICAgICAgICJ2aWRlby9xdWlja3RpbWUiLAotICAgICAg
ICAidmlkZW8veC1tNHYiLAotICAgICAgICAidmlkZW8veC1tcGVnIiwKLSAgICAgICAgInZpZGVv
L3gtbXBnIiwKLSAgICB9KTsKKyAgICBzdGF0aWMgYXV0byBjYWNoZSA9IG1ha2VOZXZlckRlc3Ry
b3llZChbdGhpc10geworICAgICAgICBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRp
dmVIYXNoPiBjYWNoZSA9IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxTdHJpbmc+IHsKKyAgICAgICAg
ICAgICJhcHBsaWNhdGlvbi92bmQuYXBwbGUubXBlZ3VybCJfcywKKyAgICAgICAgICAgICJhcHBs
aWNhdGlvbi94LW1wZWd1cmwiX3MsCisgICAgICAgICAgICAiYXVkaW8vM2dwcCJfcywKKyAgICAg
ICAgICAgICJhdWRpby9hYWMiX3MsCisgICAgICAgICAgICAiYXVkaW8vYWFjcCJfcywKKyAgICAg
ICAgICAgICJhdWRpby9haWZmIl9zLAorICAgICAgICAgICAgImF1ZGlvL2Jhc2ljIl9zLAorICAg
ICAgICAgICAgImF1ZGlvL21wMyJfcywKKyAgICAgICAgICAgICJhdWRpby9tcDQiX3MsCisgICAg
ICAgICAgICAiYXVkaW8vbXBlZyJfcywKKyAgICAgICAgICAgICJhdWRpby9tcGVnMyJfcywKKyAg
ICAgICAgICAgICJhdWRpby9tcGVndXJsIl9zLAorICAgICAgICAgICAgImF1ZGlvL21wZyJfcywK
KyAgICAgICAgICAgICJhdWRpby92bmQud2F2ZSJfcywKKyAgICAgICAgICAgICJhdWRpby93YXYi
X3MsCisgICAgICAgICAgICAiYXVkaW8vd2F2ZSJfcywKKyAgICAgICAgICAgICJhdWRpby94LWFh
YyJfcywKKyAgICAgICAgICAgICJhdWRpby94LWFpZmYiX3MsCisgICAgICAgICAgICAiYXVkaW8v
eC1tNGEiX3MsCisgICAgICAgICAgICAiYXVkaW8veC1tcGVndXJsIl9zLAorICAgICAgICAgICAg
ImF1ZGlvL3gtd2F2Il9zLAorICAgICAgICAgICAgInZpZGVvLzNncHAiX3MsCisgICAgICAgICAg
ICAidmlkZW8vM2dwcDIiX3MsCisgICAgICAgICAgICAidmlkZW8vbXA0Il9zLAorICAgICAgICAg
ICAgInZpZGVvL21wZWciX3MsCisgICAgICAgICAgICAidmlkZW8vbXBlZzIiX3MsCisgICAgICAg
ICAgICAidmlkZW8vbXBnIl9zLAorICAgICAgICAgICAgInZpZGVvL3F1aWNrdGltZSJfcywKKyAg
ICAgICAgICAgICJ2aWRlby94LW00diJfcywKKyAgICAgICAgICAgICJ2aWRlby94LW1wZWciX3Ms
CisgICAgICAgICAgICAidmlkZW8veC1tcGciX3MsCisgICAgICAgIH07CisKKyAgICAgICAgaWYg
KG1fd2ViTUZvcm1hdFJlYWRlckVuYWJsZWQpIHsKKyAgICAgICAgICAgIGF1dG8gd2VibVR5cGVz
ID0gU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6d2VibU1JTUVUeXBlcygpOworICAgICAgICAgICAg
Y2FjaGUuYWRkKHdlYm1UeXBlcy5iZWdpbigpLCB3ZWJtVHlwZXMuZW5kKCkpOworICAgICAgICB9
CisKKyAgICAgICAgcmV0dXJuIGNhY2hlOworICAgIH0oKSk7CisKICAgICByZXR1cm4gY2FjaGU7
CiB9CiAKQEAgLTE1Myw2ICsxNjgsMTMgQEAgdm9pZCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6aW5p
dGlhbGl6ZUNhY2hlKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUgKICNlbmRp
ZgogfQogCit2b2lkIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzZXRXZWJNRm9ybWF0UmVhZGVyRW5h
YmxlZChib29sIGVuYWJsZWQpCit7CisgICAgbV93ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCA9IGVu
YWJsZWQ7CisgICAgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6c2V0V2ViTUZvcm1hdFJlYWRlckVu
YWJsZWQoZW5hYmxlZCk7Cit9CisKKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
CmluZGV4IGQ2NGE3MjU2MmEyNGMwZDhhMWRiYmEzMDljZTUxNWM4Y2ZlYzRhZTEuLjI5NDE5NWU0
YmUyMGZkNDY1ZWZjNzM1ZDczYWZkZDNkM2RhZDJjYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bQpAQCAtNTYsNyArNTYsNiBAQAogI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgog
I2ltcG9ydCAiUGxhdGZvcm1UaW1lUmFuZ2VzLmgiCiAjaW1wb3J0ICJSdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaCIKLSNpbXBvcnQgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbXBvcnQg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW1wb3J0ICJTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFj
LmgiCiAjaW1wb3J0ICJTaGFyZWRCdWZmZXIuaCIKQEAgLTI3MCw2ICsyNjksMjAgQEAgc3RhdGlj
IGRpc3BhdGNoX3F1ZXVlX3QgZ2xvYmFsUHVsbERlbGVnYXRlUXVldWUoKQogICAgIHJldHVybiBn
bG9iYWxRdWV1ZTsKIH0KIAorc3RhdGljIHZvaWQgcmVnaXN0ZXJGb3JtYXRSZWFkZXJJZk5lY2Vz
c2FyeSgpCit7CisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9S
TUFUX1JFQURFUikKKyAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKKyAgICBk
aXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57CisgICAgICAgIC8vIExpa2Ugd2UgZG8gZm9yIG90
aGVyIG1lZGlhIGZvcm1hdHMsIGFsbG93IHRoZSBmb3JtYXQgcmVhZGVyIHRvIHJ1biBpbiB0aGUg
V2ViQ29udGVudCBvciBHUFUgcHJvY2VzcworICAgICAgICAvLyAod2hpY2ggaXMgYWxyZWFkeSBh
cHByb3ByaWF0ZWx5IHNhbmRib3hlZCkgcmF0aGVyIHRoYW4gaW4gYSBzZXBhcmF0ZSBNZWRpYVRv
b2xib3ggWFBDIHNlcnZpY2UuCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlzSW5HUFVQcm9jZXNz
KCkgfHwgaXNJbldlYlByb2Nlc3MoKSk7CisgICAgICAgIE1UUmVnaXN0ZXJQbHVnaW5Gb3JtYXRS
ZWFkZXJCdW5kbGVEaXJlY3RvcnkoKF9fYnJpZGdlIENGVVJMUmVmKU5TQnVuZGxlLm1haW5CdW5k
bGUuYnVpbHRJblBsdWdJbnNVUkwpOworICAgICAgICBNVFBsdWdpbkZvcm1hdFJlYWRlckRpc2Fi
bGVTYW5kYm94aW5nKCk7CisgICAgfSk7CisjZW5kaWYKK30KKwogY2xhc3MgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6RmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBNZWRpYVBsYXll
ckZhY3RvcnkgewogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIE1lZGlhUGxheWVyRW51
bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6QVZGb3VuZGF0aW9uOyB9OwpAQCAtODMzLDcgKzg0
NiwxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFW
QXNzZXRGb3JVUkwoY29uc3QgVVJMJiB1cmwsIFJldAogI2VuZGlmCiAKICAgICBhdXRvIHR5cGUg
PSBwbGF5ZXIoKS0+Y29udGVudE1JTUVUeXBlKCk7Ci0gICAgaWYgKFBBTDo6Y2FuTG9hZF9BVkZv
dW5kYXRpb25fQVZVUkxBc3NldE91dE9mQmFuZE1JTUVUeXBlS2V5KCkgJiYgIXR5cGUuaXNFbXB0
eSgpICYmICFwbGF5ZXIoKS0+Y29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9u
KCkpIHsKKworICAgIC8vIERvbid0IGFkdmVydGlzZSBXZWJNIE1JTUUgdHlwZXMgb3IgdGhlIGZv
cm1hdCByZWFkZXIgd29uJ3QgYmUgbG9hZGVkIHVudGlsIHJkYXI6Ly83MjQwNTEyNyBpcyBmaXhl
ZC4KKyAgICBhdXRvIHdpbGxVc2VXZWJNRm9ybWF0UmVhZGVyID0gU291cmNlQnVmZmVyUGFyc2Vy
V2ViTTo6aXNXZWJNRm9ybWF0UmVhZGVyQXZhaWxhYmxlKCkgJiYgKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UodHlwZSwgInZpZGVvL3dlYm0iKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHR5cGUs
ICJhdWRpby93ZWJtIikpOworCisgICAgaWYgKFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25fQVZV
UkxBc3NldE91dE9mQmFuZE1JTUVUeXBlS2V5KCkgJiYgIXR5cGUuaXNFbXB0eSgpICYmICFwbGF5
ZXIoKS0+Y29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uKCkgJiYgIXdpbGxV
c2VXZWJNRm9ybWF0UmVhZGVyKSB7CiAgICAgICAgIGF1dG8gY29kZWNzID0gcGxheWVyKCktPmNv
bnRlbnRUeXBlQ29kZWNzKCk7CiAgICAgICAgIGlmICghY29kZWNzLmlzRW1wdHkoKSkgewogICAg
ICAgICAgICAgTlNTdHJpbmcgKnR5cGVTdHJpbmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1h
dDpAIiVAOyBjb2RlY3M9XCIlQFwiIiwgKE5TU3RyaW5nICopdHlwZSwgKE5TU3RyaW5nICopY29k
ZWNzXTsKQEAgLTg3Niw2ICs4OTMsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3QgVVJMJiB1cmwsIFJldAogICAgICAg
ICAgICAgW29wdGlvbnMgc2V0T2JqZWN0OkBOTyBmb3JLZXk6QVZVUkxBc3NldFVzZXNOb1BlcnNp
c3RlbnRDYWNoZUtleV07CiAgICAgfQogCisgICAgaWYgKHdpbGxVc2VXZWJNRm9ybWF0UmVhZGVy
KQorICAgICAgICByZWdpc3RlckZvcm1hdFJlYWRlcklmTmVjZXNzYXJ5KCk7CisKICAgICBOU1VS
TCAqY29jb2FVUkwgPSBjYW5vbmljYWxVUkwodXJsKTsKICAgICBtX2F2QXNzZXQgPSBhZG9wdE5T
KFtQQUw6OmFsbG9jQVZVUkxBc3NldEluc3RhbmNlKCkgaW5pdFdpdGhVUkw6Y29jb2FVUkwgb3B0
aW9uczpvcHRpb25zLmdldCgpXSk7CiAKQEAgLTE2NjcsMzkgKzE2ODcsNiBAQCBzdGF0aWMgYm9v
bCBrZXlTeXN0ZW1Jc1N1cHBvcnRlZChjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKIH0KICNlbmRp
ZgogCi0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JF
QURFUikKLXN0YXRpYyB2b2lkIGVuc3VyZUZvcm1hdFJlYWRlcklzUmVnaXN0ZXJlZCgpCi17Ci0g
ICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47Ci0gICAgZGlzcGF0Y2hfb25jZSgm
b25jZVRva2VuLCBeewotICAgICAgICAvLyBMaWtlIHdlIGRvIGZvciBvdGhlciBtZWRpYSBmb3Jt
YXRzLCBhbGxvdyB0aGUgZm9ybWF0IHJlYWRlciB0byBydW4gaW4gdGhlIFdlYkNvbnRlbnQgb3Ig
R1BVIHByb2Nlc3MKLSAgICAgICAgLy8gKHdoaWNoIGlzIGFscmVhZHkgYXBwcm9wcmlhdGVseSBz
YW5kYm94ZWQpIHJhdGhlciB0aGFuIGluIGEgc2VwYXJhdGUgTWVkaWFUb29sYm94IFhQQyBzZXJ2
aWNlLgotICAgICAgICBSRUxFQVNFX0FTU0VSVChpc0luR1BVUHJvY2VzcygpIHx8IGlzSW5XZWJQ
cm9jZXNzKCkpOwotICAgICAgICBNVFJlZ2lzdGVyUGx1Z2luRm9ybWF0UmVhZGVyQnVuZGxlRGly
ZWN0b3J5KChfX2JyaWRnZSBDRlVSTFJlZilOU0J1bmRsZS5tYWluQnVuZGxlLmJ1aWx0SW5QbHVn
SW5zVVJMKTsKLSAgICAgICAgTVRQbHVnaW5Gb3JtYXRSZWFkZXJEaXNhYmxlU2FuZGJveGluZygp
OwotICAgIH0pOwotfQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZF
KE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQotc3RhdGljIGJvb2wgaXNGb3JtYXRSZWFkZXJBdmFp
bGFibGUoKQotewotICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS53ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSNpZiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSAgICAvLyBGSVhNRSAocmRhcjovLzcyMzIw
NDE5KTogSWYgV2ViS2l0IHdhcyBidWlsdCB3aXRoIGFkLWhvYyBjb2RlLXNpZ25pbmcsCi0gICAg
Ly8gQ29yZU1lZGlhIHdpbGwgb25seSBsb2FkIHRoZSBmb3JtYXQgcmVhZGVyIHBsdWctaW4gd2hl
biBhIHVzZXIgZGVmYXVsdAotICAgIC8vIGlzIHNldCBvbiBBcHBsZSBpbnRlcm5hbCBPU3MuIFRo
YXQgbWVhbnMgd2UgY2Fubm90IGN1cnJlbnRseSBzdXBwb3J0IFdlYk0KLSAgICAvLyBpbiBwdWJs
aWMgU0RLIGJ1aWxkcyBvbiBjdXN0b21lciBPU3MuCi0gICAgaWYgKCFvc192YXJpYW50X2FsbG93
c19pbnRlcm5hbF9zZWN1cml0eV9wb2xpY2llcygiY29tLmFwcGxlLldlYktpdCIpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLQotICAgIHJldHVybiB0cnVlOwotfQotI2VuZGlmCi0K
IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKQEAgLTE3MTEs
MTkgKzE2OTgsNiBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZAogICAgICAgICByZXR1cm4gTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAjZW5kaWYKIAotI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCi0gICAg
aWYgKGlzRm9ybWF0UmVhZGVyQXZhaWxhYmxlKCkpIHsKLSAgICAgICAgYXV0byBzdXBwb3J0ZWQg
PSBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKHBhcmFtZXRl
cnMudHlwZSk7Ci0gICAgICAgIGlmIChzdXBwb3J0ZWQgIT0gTWVkaWFQbGF5ZXI6OlN1cHBvcnRz
VHlwZTo6SXNOb3RTdXBwb3J0ZWQpIHsKLSAgICAgICAgICAgIGVuc3VyZUZvcm1hdFJlYWRlcklz
UmVnaXN0ZXJlZCgpOwotICAgICAgICAgICAgaWYgKHN1cHBvcnRlZCA9PSBNZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlOjpNYXlCZVN1cHBvcnRlZCkKLSAgICAgICAgICAgICAgICByZXR1cm4gc3Vw
cG9ydGVkOwotICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlTWVldHNIYXJkd2FyZURlY29kZVJl
cXVpcmVtZW50cyhwYXJhbWV0ZXJzLnR5cGUsIHBhcmFtZXRlcnMuY29udGVudFR5cGVzUmVxdWly
aW5nSGFyZHdhcmVTdXBwb3J0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQ7Ci0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYKLQog
ICAgIGF1dG8gc3VwcG9ydGVkID0gQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLmNh
bkRlY29kZVR5cGUocGFyYW1ldGVycy50eXBlLnJhdygpKTsKICAgICBpZiAoc3VwcG9ydGVkICE9
IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzU3VwcG9ydGVkKQogICAgICAgICByZXR1cm4g
c3VwcG9ydGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAppbmRleCBjMDQzYmU1
NjkyZjVmZWI2ZTViMGFkZmY0NjYwZjFkNTFkZmMyMzI4Li5kMzQ5OGMwYmYzZTE5ODU1ZWY4YmFh
Zjg2YzNkMjM0OWRhYzVkMzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcApA
QCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGVXZWJNLmgiCiAj
aW5jbHVkZSAiQ29udGVudFR5cGUuaCIKKyNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1
ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5j
bHVkZSAiTWVkaWFEZXNjcmlwdGlvbi5oIgpAQCAtMjU2LDYgKzI1Nyw3IEBAIHN0YXRpYyBib29s
IGlzV2VibVBhcnNlckF2YWlsYWJsZSgpCiAKIHVzaW5nIG5hbWVzcGFjZSB3ZWJtOwogCisKIGNs
YXNzIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OlN0cmVhbWluZ1ZlY3RvclJlYWRlciBmaW5hbCA6
IHB1YmxpYyB3ZWJtOjpSZWFkZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgpAQCAtNDQzLDE0ICs0NDUsNTIgQEAgcHJpdmF0ZToKICAgICB3ZWJtOjpUcmFja0VudHJ5
IG1fdHJhY2s7CiB9OwogCitib29sIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Om1fZm9ybWF0UmVh
ZGVyRW5hYmxlZCA9IGZhbHNlOworCit2b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OnNldFdl
Yk1Gb3JtYXRSZWFkZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBtX2Zvcm1hdFJlYWRl
ckVuYWJsZWQgPSBlbmFibGVkOworfQorCitjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPiYgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6d2VibU1JTUVUeXBlcygp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJ
bnNlbnNpdGl2ZUhhc2g+PiB3ZWJtTUlNRVR5cGVzID0gc3RkOjppbml0aWFsaXplcl9saXN0PFN0
cmluZz4geworICAgICAgICAiYXVkaW8vd2VibSJfcywKKyAgICAgICAgInZpZGVvL3dlYm0iX3Ms
CisgICAgfTsKKyAgICByZXR1cm4gd2VibU1JTUVUeXBlczsKK30KKworYm9vbCBTb3VyY2VCdWZm
ZXJQYXJzZXJXZWJNOjppc1dlYk1Gb3JtYXRSZWFkZXJBdmFpbGFibGUoKQoreworI2lmIEhBVkUo
TVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCisgICAgaWYgKCFpc1dlYm1QYXJzZXJBdmFpbGFibGUo
KSB8fCAhbV9mb3JtYXRSZWFkZXJFbmFibGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyNp
ZiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAgICAvLyBGSVhNRSAocmRhcjovLzcyMzIwNDE5
KTogSWYgV2ViS2l0IHdhcyBidWlsdCB3aXRoIGFkLWhvYyBjb2RlLXNpZ25pbmcsCisgICAgLy8g
Q29yZU1lZGlhIHdpbGwgb25seSBsb2FkIHRoZSBmb3JtYXQgcmVhZGVyIHBsdWctaW4gd2hlbiBh
IHVzZXIgZGVmYXVsdAorICAgIC8vIGlzIHNldCBvbiBBcHBsZSBpbnRlcm5hbCBPU3MuIFRoYXQg
bWVhbnMgd2UgY2Fubm90IGN1cnJlbnRseSBzdXBwb3J0IFdlYk0KKyAgICAvLyBpbiBwdWJsaWMg
U0RLIGJ1aWxkcyBvbiBjdXN0b21lciBPU3MuCisgICAgaWYgKCFvc192YXJpYW50X2FsbG93c19p
bnRlcm5hbF9zZWN1cml0eV9wb2xpY2llcygiY29tLmFwcGxlLldlYktpdCIpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisjZW5kaWYKKworICAgIHJldHVybiB0cnVlOworI2VuZGlmCisKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBTb3VyY2VC
dWZmZXJQYXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvbnN0IENvbnRlbnRUeXBl
JiB0eXBlKQogewogI2lmIEVOQUJMRShWUDkpIHx8IEVOQUJMRShWT1JCSVMpIHx8IEVOQUJMRShP
UFVTKQogICAgIGlmICghaXNXZWJtUGFyc2VyQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBN
ZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCi0gICAgYm9v
bCBpc0F1ZGlvQ29udGFpbmVyVHlwZSA9IFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBl
LmNvbnRhaW5lclR5cGUoKSwgImF1ZGlvL3dlYm0iKTsKLSAgICBib29sIGlzVmlkZW9Db250YWlu
ZXJUeXBlID0gV1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlKHR5cGUuY29udGFpbmVyVHlwZSgp
LCAidmlkZW8vd2VibSIpOworICAgIGF1dG8gY29udGFpbmVyVHlwZSA9IHR5cGUuY29udGFpbmVy
VHlwZSgpOworICAgIGJvb2wgaXNBdWRpb0NvbnRhaW5lclR5cGUgPSBXVEY6OmVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UoY29udGFpbmVyVHlwZSwgImF1ZGlvL3dlYm0iKTsKKyAgICBib29sIGlzVmlk
ZW9Db250YWluZXJUeXBlID0gV1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlKGNvbnRhaW5lclR5
cGUsICJ2aWRlby93ZWJtIik7CiAgICAgaWYgKCFpc0F1ZGlvQ29udGFpbmVyVHlwZSAmJiAhaXNW
aWRlb0NvbnRhaW5lclR5cGUpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBw
b3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogICAgIApAQCAtNDczLDIyICs1MTMsMTggQEAgTWVk
aWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29u
dGVudFR5cGVTdXBwb3J0ZWQoY28KICAgICBpZiAoIWlzQW55Q29kZWNBdmFpbGFibGUpCiAgICAg
ICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVk
OwogCi0gICAgU3RyaW5nIGNvZGVjc1BhcmFtZXRlciA9IHR5cGUucGFyYW1ldGVyKENvbnRlbnRU
eXBlOjpjb2RlY3NQYXJhbWV0ZXIoKSk7Ci0gICAgaWYgKCFjb2RlY3NQYXJhbWV0ZXIpCi0gICAg
ICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6Ok1heUJlU3VwcG9ydGVk
OwotCi0gICAgYXV0byBzcGxpdFJlc3VsdHMgPSBTdHJpbmdWaWV3KGNvZGVjc1BhcmFtZXRlciku
c3BsaXQoJywnKTsKLSAgICBpZiAoc3BsaXRSZXN1bHRzLmJlZ2luKCkgPT0gc3BsaXRSZXN1bHRz
LmVuZCgpKQorICAgIGF1dG8gY29kZWNzID0gdHlwZS5jb2RlY3MoKTsKKyAgICBpZiAoY29kZWNz
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlw
ZTo6TWF5QmVTdXBwb3J0ZWQ7CiAKLSAgICBmb3IgKGF1dG8gc3BsaXQgOiBzcGxpdFJlc3VsdHMp
IHsKKyAgICBmb3IgKGF1dG8mIGNvZGVjIDogY29kZWNzKSB7CiAjaWYgRU5BQkxFKFZQOSkKLSAg
ICAgICAgaWYgKHNwbGl0LnN0YXJ0c1dpdGgoInZwMDkiKSB8fCBzcGxpdC5zdGFydHNXaXRoKCJ2
cDA4IikgfHwgZXF1YWwoc3BsaXQsICJ2cDgiKSB8fCBlcXVhbChzcGxpdCwgInZwOSIpKSB7Cisg
ICAgICAgIGlmIChjb2RlYy5zdGFydHNXaXRoKCJ2cDA5IikgfHwgY29kZWMuc3RhcnRzV2l0aCgi
dnAwOCIpIHx8IGVxdWFsKGNvZGVjLCAidnA4IikgfHwgZXF1YWwoY29kZWMsICJ2cDkiKSkgewog
CiAgICAgICAgICAgICBpZiAoIWlzVlA5RGVjb2RlckF2YWlsYWJsZSgpKQogICAgICAgICAgICAg
ICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVk
OwogCi0gICAgICAgICAgICBhdXRvIGNvZGVjUGFyYW1ldGVycyA9IHBhcnNlVlBDb2RlY1BhcmFt
ZXRlcnMoc3BsaXQpOworICAgICAgICAgICAgYXV0byBjb2RlY1BhcmFtZXRlcnMgPSBwYXJzZVZQ
Q29kZWNQYXJhbWV0ZXJzKGNvZGVjKTsKICAgICAgICAgICAgIGlmICghY29kZWNQYXJhbWV0ZXJz
KQogICAgICAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6
OklzTm90U3VwcG9ydGVkOwogCkBAIC01MDAsNyArNTM2LDcgQEAgTWVkaWFQbGF5ZXJFbnVtczo6
U3VwcG9ydHNUeXBlIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0
ZWQoY28KICNlbmRpZiAvLyBFTkFCTEUoVlA5KQogCiAjaWYgRU5BQkxFKFZPUkJJUykKLSAgICAg
ICAgaWYgKHNwbGl0ID09ICJ2b3JiaXMiKSB7CisgICAgICAgIGlmIChjb2RlYyA9PSAidm9yYmlz
IikgewogICAgICAgICAgICAgaWYgKCFpc1ZvcmJpc0RlY29kZXJBdmFpbGFibGUoKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05vdFN1
cHBvcnRlZDsKIApAQCAtNTA5LDcgKzU0NSw3IEBAIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRz
VHlwZSBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvCiAj
ZW5kaWYgLy8gRU5BQkxFKFZPUkJJUykKIAogI2lmIEVOQUJMRShPUFVTKQotICAgICAgICBpZiAo
c3BsaXQgPT0gIm9wdXMiKSB7CisgICAgICAgIGlmIChjb2RlYyA9PSAib3B1cyIpIHsKICAgICAg
ICAgICAgIGlmICghaXNPcHVzRGVjb2RlckF2YWlsYWJsZSgpKQogICAgICAgICAgICAgICAgIHJl
dHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VC
dWZmZXJQYXJzZXJXZWJNLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmgKaW5kZXggZWNhMDNjMjA0ZmExMDA3ZTVjMjUzYjUz
YTJmZjRhNTJiNWNiMTc5Yy4uMTMyYWM4MjcxMjAzMDFhYzRhZTMwMTc4MWU4ZmU1MmQyYTlmZGY3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291
cmNlQnVmZmVyUGFyc2VyV2ViTS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaApAQCAtNjAsNyArNjAsMTAgQEAgY2xh
c3MgV0VCQ09SRV9FWFBPUlQgU291cmNlQnVmZmVyUGFyc2VyV2ViTSA6IHB1YmxpYyBTb3VyY2VC
dWZmZXJQYXJzZXIsIHByaXZhdGUKIHB1YmxpYzoKICAgICBjbGFzcyBTdHJlYW1pbmdWZWN0b3JS
ZWFkZXI7CiAKKyAgICBzdGF0aWMgYm9vbCBpc1dlYk1Gb3JtYXRSZWFkZXJBdmFpbGFibGUoKTsK
KyAgICBzdGF0aWMgdm9pZCBzZXRXZWJNRm9ybWF0UmVhZGVyRW5hYmxlZChib29sKTsKICAgICBz
dGF0aWMgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIGlzQ29udGVudFR5cGVTdXBwb3J0
ZWQoY29uc3QgQ29udGVudFR5cGUmKTsKKyAgICBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcs
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHdlYm1NSU1FVHlwZXMoKTsKICAgICBzdGF0aWMg
UmVmUHRyPFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0+IGNyZWF0ZShjb25zdCBDb250ZW50VHlwZSYp
OwogCiAgICAgU291cmNlQnVmZmVyUGFyc2VyV2ViTSgpOwpAQCAtMjY4LDYgKzI3MSw4IEBAIHBy
aXZhdGU6CiAKICAgICBSZWZQdHI8Y29uc3QgV1RGOjpMb2dnZXI+IG1fbG9nZ2VyOwogICAgIGNv
bnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllciB7IG51bGxwdHIgfTsKKyAgICAKKyAgICBzdGF0aWMg
Ym9vbCBtX2Zvcm1hdFJlYWRlckVuYWJsZWQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGM2ZDg5ZDA5NzYzNTMxYzMzZWRiMjhi
ZjNhMDA4MTM4MjA0MDJkYjYuLmE0ZmY0YmEwMmE5ZDMyZjMwNDhhZDk1OWI0NjNlNzQyYzI3ZDMz
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC0zNDEsNiArMzQxLDEwIEBACiAjZW5kaWYKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NP
VVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyNpbmNsdWRlIDxXZWJDb3Jl
L0FWQXNzZXRNSU1FVHlwZUNhY2hlLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1
c2luZyBuYW1lc3BhY2UgSlNDOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0zODQzLDYg
KzM4NDcsMTAgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVm
ZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICAgICAgICAgIHNldHRpbmdzLnNldFdlYkF1dGhlbnRp
Y2F0aW9uRW5hYmxlZCh0cnVlKTsKICAgICB9CiAjZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9T
T1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCisgICAgQVZBc3NldE1JTUVU
eXBlQ2FjaGU6OnNpbmdsZXRvbigpLnNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViTUZvcm1hdFJlYWRlckVuYWJsZWQo
KSk7CisjZW5kaWYKIH0KIAogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDcxZDRh
OWE3OGFiMGNjZWQ5ZDA5YTJmOWI0NjYyNDExYzA3ODRiYzcuLjIzZjg0ZTdjYWYwMTZjNDQxZDIw
Y2U2ZTU1M2Y3ODRhMzYwZWJiNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtNjksNiArNjksNyBAQAogI2ltcG9ydCA8V2Vi
Q29yZS9QZXJmb3JtYW5jZUxvZ2dpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGljdHVyZUluUGlj
dHVyZVN1cHBvcnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KICNpbXBvcnQg
PFdlYkNvcmUvU1dDb250ZXh0TWFuYWdlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1CYXR0
ZXJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N5c3RlbVNvdW5kTWFuYWdlci5oPgpAQCAtMzI4LDYg
KzMyOSwxMCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3Mo
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgIHB0aHJlYWRfc2V0X2ZpeGVk
cHJpb3JpdHlfc2VsZigpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBI
QVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQorICAgIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpz
aW5nbGV0b24oKS5zZXRXZWJNRm9ybWF0UmVhZGVyRW5hYmxlZChSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKCkpOworI2VuZGlm
CisKICAgICBpZiAoIXBhcmFtZXRlcnMubWVkaWFNSU1FVHlwZXMuaXNFbXB0eSgpKQogICAgICAg
ICBzZXRNZWRpYU1JTUVUeXBlcyhwYXJhbWV0ZXJzLm1lZGlhTUlNRVR5cGVzKTsKICAgICBlbHNl
IHsK
</data>
<flag name="commit-queue"
          id="433893"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416375</attachid>
            <date>2020-12-16 17:27:34 -0800</date>
            <delta_ts>2020-12-16 17:41:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219961-20201216172733.patch</filename>
            <type>text/plain</type>
            <size>21268</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwODkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjMyMDI4ZjczZTQ1ZThl
ODdiMjdjMTIzODNlMGFjMDFkZTRkYzgxMi4uZDk1MTkwZDk0M2VkNGM0ZGM4ZGFjZDFmNDM3Yzky
NmNmZWE1MTZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTEyLTE2ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2Vi
TSBmb3JtYXQgcmVhZGVyIGRvZXNuJ3Qgd29yayB3aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5
OTYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjM5OTAxND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXb3JrIGFyb3VuZCBhIGJ1ZyB0aGF0IG1h
a2VzIHRoZSBmb3JtYXQgcmVhZGVyIGZhaWwgdG8gbG9hZCB3aGVuIHRoZSBBVlVSTEFzc2V0T3V0
T2ZCYW5kTUlNRVR5cGVLZXkKKyAgICAgICAgaXMgaW5jbHVkZWQgaW4gdGhlIEFWVVJMQXNzZXQg
b3B0aW9ucyBkaWN0aW9uYXJ5LiBBbHNvIGluY2x1ZGUgc29tZSBjbGVhbnVwOgorICAgICAgICAt
IE1vdmUgdGhlIGNvZGUgdG8gY2hlY2sgZm9yIFdlYk0gTUlNRSB0eXBlcyBmcm9tIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMKKyAgICAgICAgICB0byBBVkFzc2V0TUlNRVR5cGVD
YWNoZS4KKyAgICAgICAgLSBEb24ndCB1c2UgUnVudGltZUVuYWJsZWRGZWF0dXJlcyBpbiBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLgorICAgICAgICAtIFJlZ2lzdGVyIHRoZSBX
ZWJNIGZvcm1hdCByZWFkZXIgd2hlbiBjcmVhdGluZyBhbiBBVlVSTEFzc2V0IGZvciBhIFdlYk0g
dXJsIGluc3RlYWQKKyAgICAgICAgICBvZiB3aGVuIGNoZWNraW5nIHRoZSBNSU1FIHR5cGUuCisg
ICAgICAgIC0gQ2xlYW51cCBXZWJNICJjb2RlY3MiIHBhcmFtZXRlciBwYXJzaW5nLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBl
Q2FjaGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9B
VkFzc2V0TUlNRVR5cGVDYWNoZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXNzZXRNSU1FVHlw
ZUNhY2hlOjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVZBc3Nl
dE1JTUVUeXBlQ2FjaGU6OnN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzZXRXZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnJlZ2lzdGVyRm9y
bWF0UmVhZGVySWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkQWR2ZXJ0aXNl
T3V0T2ZCYW5kTUlNRVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGVBbmRDb2Rl
Y3MpOgorICAgICAgICAoV2ViQ29yZTo6ZW5zdXJlRm9ybWF0UmVhZGVySXNSZWdpc3RlcmVkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzRm9ybWF0UmVhZGVyQXZhaWxhYmxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJz
ZXJXZWJNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OnNl
dFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
clBhcnNlcldlYk06OndlYm1NSU1FVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyUGFyc2VyV2ViTTo6aXNXZWJNRm9ybWF0UmVhZGVyQXZhaWxhYmxlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0u
aDoKKwogMjAyMC0xMi0xNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBNYWtlIEZyYW1lVmlldzo6bV9jdXN0b21TaXplRm9yUmVzaXplRXZlbnQgYW4g
T3B0aW9uYWw8SW50U2l6ZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTg4NzMxYzk0YzQ3MTA4Y2Q2Njk5YWU2NTM5
MTM5ZDMxOGNlZTgzYi4uYTA0Yjk4YTE5NmQxMzliNDEzNzdiOTk3YjUxNmVmMzBlYjk1MjFjNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0xMi0xNiAgRXJpYyBDYXJsc29uICA8ZXJp
Yy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFdlYk0gZm9ybWF0IHJlYWRl
ciBkb2Vzbid0IHdvcmsgd2l0aCBhIHVybCBpbiBhIDxzb3VyY2U+IGVsZW1lbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTk2MQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzIzOTkwMTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMjAtMTItMTUgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQ2FsbHMgdG8gc2V0
Rml4ZWRMYXlvdXRTaXplKCkgc2hvdWxkIG5vdCBiZSBpbnNpZGUgRU5BQkxFKFRFWFRfQVVUT1NJ
WklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oCmlu
ZGV4IDkzMTc5ZjI4ZDQwYzc1Y2Q4NDI3Y2IxNDZhODIwMzQyYjJiOGM1YTUuLmI3MGIwNjIxYjFk
YTZmN2I5ZjFhNDI2YzVkZjZmZmExYTQzMzA2MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaApAQCAtNDUsNiArNDUsOCBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmKSBmaW5hbDsKIAog
ICAgIHZvaWQgYWRkU3VwcG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKyAgICAK
KyAgICB2b2lkIHNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKGJvb2wpOwogCiBwcml2YXRlOgog
ICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxBVkFzc2V0TUlNRVR5cGVDYWNoZT47CkBAIC01NCw2
ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXplQ2FjaGUoSGFzaFNldDxTdHJp
bmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mKSBmaW5hbDsKIAogICAgIENhY2hlTUlNRVR5
cGVzQ2FsbGJhY2sgbV9jYWNoZVR5cGVDYWxsYmFjazsKKyAgICBib29sIG1fd2ViTUZvcm1hdFJl
YWRlckVuYWJsZWQgeyBmYWxzZSB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2Fj
aGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQppbmRleCA4NzA2NjIxNDY2YjU5NTdkODU3YzhlNmE5
N2M5MWVhNjNmNDYwMWY5Li5jNDJhN2U0ZjY5NGFlODA1ZmQ0NDViOWI1OTc2Zjc0ZDM1ZDNlZmFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQpA
QCAtMjksNiArMjksNyBAQAogI2lmIFBMQVRGT1JNKENPQ09BKQogCiAjaW1wb3J0ICJDb250ZW50
VHlwZS5oIgorI2ltcG9ydCAiU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oIgogI2ltcG9ydCA8cGFs
L2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9u
U29mdExpbmsuaD4KIApAQCAtNjMsNyArNjQsMTEgQEAgYm9vbCBBVkFzc2V0TUlNRVR5cGVDYWNo
ZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBlKQogewogI2lm
IEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKICAgICBBU1NFUlQoaXNBdmFpbGFi
bGUoKSk7Ci0gICAgcmV0dXJuIFtQQUw6OmdldEFWVVJMQXNzZXRDbGFzcygpIGlzUGxheWFibGVF
eHRlbmRlZE1JTUVUeXBlOnR5cGUucmF3KCldOworICAgIGlmIChbUEFMOjpnZXRBVlVSTEFzc2V0
Q2xhc3MoKSBpc1BsYXlhYmxlRXh0ZW5kZWRNSU1FVHlwZTp0eXBlLnJhdygpXSkKKyAgICAgICAg
cmV0dXJuIHRydWU7CisKKyAgICBpZiAobV93ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCAmJiBTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKHR5cGUpID09IE1lZGlh
UGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQpCisgICAgICAgIHJldHVybiB0
cnVlOwogI2VuZGlmCiAKICAgICByZXR1cm4gZmFsc2U7CkBAIC05NiwzOSArMTAxLDUxIEBAIGJv
b2wgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OmlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnN0
IFN0cmluZyYgdHlwZSkKIAogY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0
aXZlSGFzaD4mIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzdGF0aWNDb250YWluZXJUeXBlTGlzdCgp
CiB7Ci0gICAgc3RhdGljIGNvbnN0IGF1dG8gY2FjaGUgPSBtYWtlTmV2ZXJEZXN0cm95ZWQoSGFz
aFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4gewotICAgICAgICAiYXBwbGlj
YXRpb24vdm5kLmFwcGxlLm1wZWd1cmwiLAotICAgICAgICAiYXBwbGljYXRpb24veC1tcGVndXJs
IiwKLSAgICAgICAgImF1ZGlvLzNncHAiLAotICAgICAgICAiYXVkaW8vYWFjIiwKLSAgICAgICAg
ImF1ZGlvL2FhY3AiLAotICAgICAgICAiYXVkaW8vYWlmZiIsCi0gICAgICAgICJhdWRpby9iYXNp
YyIsCi0gICAgICAgICJhdWRpby9tcDMiLAotICAgICAgICAiYXVkaW8vbXA0IiwKLSAgICAgICAg
ImF1ZGlvL21wZWciLAotICAgICAgICAiYXVkaW8vbXBlZzMiLAotICAgICAgICAiYXVkaW8vbXBl
Z3VybCIsCi0gICAgICAgICJhdWRpby9tcGciLAotICAgICAgICAiYXVkaW8vdm5kLndhdmUiLAot
ICAgICAgICAiYXVkaW8vd2F2IiwKLSAgICAgICAgImF1ZGlvL3dhdmUiLAotICAgICAgICAiYXVk
aW8veC1hYWMiLAotICAgICAgICAiYXVkaW8veC1haWZmIiwKLSAgICAgICAgImF1ZGlvL3gtbTRh
IiwKLSAgICAgICAgImF1ZGlvL3gtbXBlZ3VybCIsCi0gICAgICAgICJhdWRpby94LXdhdiIsCi0g
ICAgICAgICJ2aWRlby8zZ3BwIiwKLSAgICAgICAgInZpZGVvLzNncHAyIiwKLSAgICAgICAgInZp
ZGVvL21wNCIsCi0gICAgICAgICJ2aWRlby9tcGVnIiwKLSAgICAgICAgInZpZGVvL21wZWcyIiwK
LSAgICAgICAgInZpZGVvL21wZyIsCi0gICAgICAgICJ2aWRlby9xdWlja3RpbWUiLAotICAgICAg
ICAidmlkZW8veC1tNHYiLAotICAgICAgICAidmlkZW8veC1tcGVnIiwKLSAgICAgICAgInZpZGVv
L3gtbXBnIiwKLSAgICB9KTsKKyAgICBzdGF0aWMgYXV0byBjYWNoZSA9IG1ha2VOZXZlckRlc3Ry
b3llZChbdGhpc10geworICAgICAgICBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRp
dmVIYXNoPiBjYWNoZSA9IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxTdHJpbmc+IHsKKyAgICAgICAg
ICAgICJhcHBsaWNhdGlvbi92bmQuYXBwbGUubXBlZ3VybCJfcywKKyAgICAgICAgICAgICJhcHBs
aWNhdGlvbi94LW1wZWd1cmwiX3MsCisgICAgICAgICAgICAiYXVkaW8vM2dwcCJfcywKKyAgICAg
ICAgICAgICJhdWRpby9hYWMiX3MsCisgICAgICAgICAgICAiYXVkaW8vYWFjcCJfcywKKyAgICAg
ICAgICAgICJhdWRpby9haWZmIl9zLAorICAgICAgICAgICAgImF1ZGlvL2Jhc2ljIl9zLAorICAg
ICAgICAgICAgImF1ZGlvL21wMyJfcywKKyAgICAgICAgICAgICJhdWRpby9tcDQiX3MsCisgICAg
ICAgICAgICAiYXVkaW8vbXBlZyJfcywKKyAgICAgICAgICAgICJhdWRpby9tcGVnMyJfcywKKyAg
ICAgICAgICAgICJhdWRpby9tcGVndXJsIl9zLAorICAgICAgICAgICAgImF1ZGlvL21wZyJfcywK
KyAgICAgICAgICAgICJhdWRpby92bmQud2F2ZSJfcywKKyAgICAgICAgICAgICJhdWRpby93YXYi
X3MsCisgICAgICAgICAgICAiYXVkaW8vd2F2ZSJfcywKKyAgICAgICAgICAgICJhdWRpby94LWFh
YyJfcywKKyAgICAgICAgICAgICJhdWRpby94LWFpZmYiX3MsCisgICAgICAgICAgICAiYXVkaW8v
eC1tNGEiX3MsCisgICAgICAgICAgICAiYXVkaW8veC1tcGVndXJsIl9zLAorICAgICAgICAgICAg
ImF1ZGlvL3gtd2F2Il9zLAorICAgICAgICAgICAgInZpZGVvLzNncHAiX3MsCisgICAgICAgICAg
ICAidmlkZW8vM2dwcDIiX3MsCisgICAgICAgICAgICAidmlkZW8vbXA0Il9zLAorICAgICAgICAg
ICAgInZpZGVvL21wZWciX3MsCisgICAgICAgICAgICAidmlkZW8vbXBlZzIiX3MsCisgICAgICAg
ICAgICAidmlkZW8vbXBnIl9zLAorICAgICAgICAgICAgInZpZGVvL3F1aWNrdGltZSJfcywKKyAg
ICAgICAgICAgICJ2aWRlby94LW00diJfcywKKyAgICAgICAgICAgICJ2aWRlby94LW1wZWciX3Ms
CisgICAgICAgICAgICAidmlkZW8veC1tcGciX3MsCisgICAgICAgIH07CisKKyNpZiBFTkFCTEUo
TUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQorICAgICAgICBp
ZiAobV93ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCkgeworICAgICAgICAgICAgYXV0byB3ZWJtVHlw
ZXMgPSBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjp3ZWJtTUlNRVR5cGVzKCk7CisgICAgICAgICAg
ICBjYWNoZS5hZGQod2VibVR5cGVzLmJlZ2luKCksIHdlYm1UeXBlcy5lbmQoKSk7CisgICAgICAg
IH0KKyNlbmRpZgorCisgICAgICAgIHJldHVybiBjYWNoZTsKKyAgICB9KCkpOworCiAgICAgcmV0
dXJuIGNhY2hlOwogfQogCkBAIC0xNTMsNiArMTcwLDEzIEBAIHZvaWQgQVZBc3NldE1JTUVUeXBl
Q2FjaGU6OmluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRp
dmVICiAjZW5kaWYKIH0KIAordm9pZCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2V0V2ViTUZvcm1h
dFJlYWRlckVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIG1fd2ViTUZvcm1hdFJlYWRlckVu
YWJsZWQgPSBlbmFibGVkOworICAgIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OnNldFdlYk1Gb3Jt
YXRSZWFkZXJFbmFibGVkKGVuYWJsZWQpOworfQorCisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbQppbmRleCBkNjRhNzI1NjJhMjRjMGQ4YTFkYmJhMzA5Y2U1MTVjOGNmZWM0YWUx
Li4yOTQxOTVlNGJlMjBmZDQ2NWVmYzczNWQ3M2FmZGQzZDNkYWQyY2MxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0KQEAgLTU2LDcgKzU2LDYgQEAKICNpbXBvcnQgIlBpeGVsQnVmZmVyQ29uZm9y
bWVyQ1YuaCIKICNpbXBvcnQgIlBsYXRmb3JtVGltZVJhbmdlcy5oIgogI2ltcG9ydCAiUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCi0jaW1wb3J0ICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgi
CiAjaW1wb3J0ICJTZWN1cml0eU9yaWdpbi5oIgogI2ltcG9ydCAiU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZU1hYy5oIgogI2ltcG9ydCAiU2hhcmVkQnVmZmVyLmgiCkBAIC0yNzAsNiArMjY5LDIw
IEBAIHN0YXRpYyBkaXNwYXRjaF9xdWV1ZV90IGdsb2JhbFB1bGxEZWxlZ2F0ZVF1ZXVlKCkKICAg
ICByZXR1cm4gZ2xvYmFsUXVldWU7CiB9CiAKK3N0YXRpYyB2b2lkIHJlZ2lzdGVyRm9ybWF0UmVh
ZGVySWZOZWNlc3NhcnkoKQoreworI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRf
UExVR0lOX0ZPUk1BVF9SRUFERVIpCisgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9r
ZW47CisgICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeeworICAgICAgICAvLyBMaWtlIHdl
IGRvIGZvciBvdGhlciBtZWRpYSBmb3JtYXRzLCBhbGxvdyB0aGUgZm9ybWF0IHJlYWRlciB0byBy
dW4gaW4gdGhlIFdlYkNvbnRlbnQgb3IgR1BVIHByb2Nlc3MKKyAgICAgICAgLy8gKHdoaWNoIGlz
IGFscmVhZHkgYXBwcm9wcmlhdGVseSBzYW5kYm94ZWQpIHJhdGhlciB0aGFuIGluIGEgc2VwYXJh
dGUgTWVkaWFUb29sYm94IFhQQyBzZXJ2aWNlLgorICAgICAgICBSRUxFQVNFX0FTU0VSVChpc0lu
R1BVUHJvY2VzcygpIHx8IGlzSW5XZWJQcm9jZXNzKCkpOworICAgICAgICBNVFJlZ2lzdGVyUGx1
Z2luRm9ybWF0UmVhZGVyQnVuZGxlRGlyZWN0b3J5KChfX2JyaWRnZSBDRlVSTFJlZilOU0J1bmRs
ZS5tYWluQnVuZGxlLmJ1aWx0SW5QbHVnSW5zVVJMKTsKKyAgICAgICAgTVRQbHVnaW5Gb3JtYXRS
ZWFkZXJEaXNhYmxlU2FuZGJveGluZygpOworICAgIH0pOworI2VuZGlmCit9CisKIGNsYXNzIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OkZhY3RvcnkgZmluYWwgOiBwdWJsaWMg
TWVkaWFQbGF5ZXJGYWN0b3J5IHsKIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXJFbnVtczo6TWVk
aWFFbmdpbmVJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBNZWRp
YVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlvbjsgfTsKQEAg
LTgzMyw3ICs4NDYsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFVSTCYgdXJsLCBSZXQKICNlbmRpZgogCiAgICAg
YXV0byB0eXBlID0gcGxheWVyKCktPmNvbnRlbnRNSU1FVHlwZSgpOwotICAgIGlmIChQQUw6OmNh
bkxvYWRfQVZGb3VuZGF0aW9uX0FWVVJMQXNzZXRPdXRPZkJhbmRNSU1FVHlwZUtleSgpICYmICF0
eXBlLmlzRW1wdHkoKSAmJiAhcGxheWVyKCktPmNvbnRlbnRNSU1FVHlwZVdhc0luZmVycmVkRnJv
bUV4dGVuc2lvbigpKSB7CisKKyAgICAvLyBEb24ndCBhZHZlcnRpc2UgV2ViTSBNSU1FIHR5cGVz
IG9yIHRoZSBmb3JtYXQgcmVhZGVyIHdvbid0IGJlIGxvYWRlZCB1bnRpbCByZGFyOi8vNzI0MDUx
MjcgaXMgZml4ZWQuCisgICAgYXV0byB3aWxsVXNlV2ViTUZvcm1hdFJlYWRlciA9IFNvdXJjZUJ1
ZmZlclBhcnNlcldlYk06OmlzV2ViTUZvcm1hdFJlYWRlckF2YWlsYWJsZSgpICYmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKHR5cGUsICJ2aWRlby93ZWJtIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZSh0eXBlLCAiYXVkaW8vd2VibSIpKTsKKworICAgIGlmIChQQUw6OmNhbkxvYWRfQVZGb3Vu
ZGF0aW9uX0FWVVJMQXNzZXRPdXRPZkJhbmRNSU1FVHlwZUtleSgpICYmICF0eXBlLmlzRW1wdHko
KSAmJiAhcGxheWVyKCktPmNvbnRlbnRNSU1FVHlwZVdhc0luZmVycmVkRnJvbUV4dGVuc2lvbigp
ICYmICF3aWxsVXNlV2ViTUZvcm1hdFJlYWRlcikgewogICAgICAgICBhdXRvIGNvZGVjcyA9IHBs
YXllcigpLT5jb250ZW50VHlwZUNvZGVjcygpOwogICAgICAgICBpZiAoIWNvZGVjcy5pc0VtcHR5
KCkpIHsKICAgICAgICAgICAgIE5TU3RyaW5nICp0eXBlU3RyaW5nID0gW05TU3RyaW5nIHN0cmlu
Z1dpdGhGb3JtYXQ6QCIlQDsgY29kZWNzPVwiJUBcIiIsIChOU1N0cmluZyAqKXR5cGUsIChOU1N0
cmluZyAqKWNvZGVjc107CkBAIC04NzYsNiArODkzLDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFVSTCYgdXJsLCBS
ZXQKICAgICAgICAgICAgIFtvcHRpb25zIHNldE9iamVjdDpATk8gZm9yS2V5OkFWVVJMQXNzZXRV
c2VzTm9QZXJzaXN0ZW50Q2FjaGVLZXldOwogICAgIH0KIAorICAgIGlmICh3aWxsVXNlV2ViTUZv
cm1hdFJlYWRlcikKKyAgICAgICAgcmVnaXN0ZXJGb3JtYXRSZWFkZXJJZk5lY2Vzc2FyeSgpOwor
CiAgICAgTlNVUkwgKmNvY29hVVJMID0gY2Fub25pY2FsVVJMKHVybCk7CiAgICAgbV9hdkFzc2V0
ID0gYWRvcHROUyhbUEFMOjphbGxvY0FWVVJMQXNzZXRJbnN0YW5jZSgpIGluaXRXaXRoVVJMOmNv
Y29hVVJMIG9wdGlvbnM6b3B0aW9ucy5nZXQoKV0pOwogCkBAIC0xNjY3LDM5ICsxNjg3LDYgQEAg
c3RhdGljIGJvb2wga2V5U3lzdGVtSXNTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0p
CiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lO
X0ZPUk1BVF9SRUFERVIpCi1zdGF0aWMgdm9pZCBlbnN1cmVGb3JtYXRSZWFkZXJJc1JlZ2lzdGVy
ZWQoKQotewotICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOwotICAgIGRpc3Bh
dGNoX29uY2UoJm9uY2VUb2tlbiwgXnsKLSAgICAgICAgLy8gTGlrZSB3ZSBkbyBmb3Igb3RoZXIg
bWVkaWEgZm9ybWF0cywgYWxsb3cgdGhlIGZvcm1hdCByZWFkZXIgdG8gcnVuIGluIHRoZSBXZWJD
b250ZW50IG9yIEdQVSBwcm9jZXNzCi0gICAgICAgIC8vICh3aGljaCBpcyBhbHJlYWR5IGFwcHJv
cHJpYXRlbHkgc2FuZGJveGVkKSByYXRoZXIgdGhhbiBpbiBhIHNlcGFyYXRlIE1lZGlhVG9vbGJv
eCBYUEMgc2VydmljZS4KLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNJbkdQVVByb2Nlc3MoKSB8
fCBpc0luV2ViUHJvY2VzcygpKTsKLSAgICAgICAgTVRSZWdpc3RlclBsdWdpbkZvcm1hdFJlYWRl
ckJ1bmRsZURpcmVjdG9yeSgoX19icmlkZ2UgQ0ZVUkxSZWYpTlNCdW5kbGUubWFpbkJ1bmRsZS5i
dWlsdEluUGx1Z0luc1VSTCk7Ci0gICAgICAgIE1UUGx1Z2luRm9ybWF0UmVhZGVyRGlzYWJsZVNh
bmRib3hpbmcoKTsKLSAgICB9KTsKLX0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKE1FRElBX1NPVVJD
RSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKLXN0YXRpYyBib29sIGlzRm9ybWF0
UmVhZGVyQXZhaWxhYmxlKCkKLXsKLSAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkud2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0jaWYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0gICAgLy8gRklYTUUgKHJk
YXI6Ly83MjMyMDQxOSk6IElmIFdlYktpdCB3YXMgYnVpbHQgd2l0aCBhZC1ob2MgY29kZS1zaWdu
aW5nLAotICAgIC8vIENvcmVNZWRpYSB3aWxsIG9ubHkgbG9hZCB0aGUgZm9ybWF0IHJlYWRlciBw
bHVnLWluIHdoZW4gYSB1c2VyIGRlZmF1bHQKLSAgICAvLyBpcyBzZXQgb24gQXBwbGUgaW50ZXJu
YWwgT1NzLiBUaGF0IG1lYW5zIHdlIGNhbm5vdCBjdXJyZW50bHkgc3VwcG9ydCBXZWJNCi0gICAg
Ly8gaW4gcHVibGljIFNESyBidWlsZHMgb24gY3VzdG9tZXIgT1NzLgotICAgIGlmICghb3NfdmFy
aWFudF9hbGxvd3NfaW50ZXJuYWxfc2VjdXJpdHlfcG9saWNpZXMoImNvbS5hcHBsZS5XZWJLaXQi
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi0KLSAgICByZXR1cm4gdHJ1ZTsKLX0K
LSNlbmRpZgotCiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyhjb25zdCBNZWRpYUVuZ2luZVN1
cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0Up
CkBAIC0xNzExLDE5ICsxNjk4LDYgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGVBbmRDb2QKICAgICAgICAg
cmV0dXJuIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogI2VuZGlm
CiAKLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVB
REVSKQotICAgIGlmIChpc0Zvcm1hdFJlYWRlckF2YWlsYWJsZSgpKSB7Ci0gICAgICAgIGF1dG8g
c3VwcG9ydGVkID0gU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRl
ZChwYXJhbWV0ZXJzLnR5cGUpOwotICAgICAgICBpZiAoc3VwcG9ydGVkICE9IE1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkKSB7Ci0gICAgICAgICAgICBlbnN1cmVGb3Jt
YXRSZWFkZXJJc1JlZ2lzdGVyZWQoKTsKLSAgICAgICAgICAgIGlmIChzdXBwb3J0ZWQgPT0gTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6TWF5QmVTdXBwb3J0ZWQpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIHN1cHBvcnRlZDsKLSAgICAgICAgICAgIGlmIChjb250ZW50VHlwZU1lZXRzSGFyZHdh
cmVEZWNvZGVSZXF1aXJlbWVudHMocGFyYW1ldGVycy50eXBlLCBwYXJhbWV0ZXJzLmNvbnRlbnRU
eXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE1l
ZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzU3VwcG9ydGVkOwotICAgICAgICB9Ci0gICAgfQot
I2VuZGlmCi0KICAgICBhdXRvIHN1cHBvcnRlZCA9IEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5n
bGV0b24oKS5jYW5EZWNvZGVUeXBlKHBhcmFtZXRlcnMudHlwZS5yYXcoKSk7CiAgICAgaWYgKHN1
cHBvcnRlZCAhPSBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRlZCkKICAgICAg
ICAgcmV0dXJuIHN1cHBvcnRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKaW5k
ZXggYzA0M2JlNTY5MmY1ZmViNmU1YjBhZGZmNDY2MGYxZDUxZGZjMjMyOC4uM2VlZDMxZDc3ODAy
NmNmMjBlYjkyYWZlNThmYjcwMzcxMWI1OTJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2Vy
V2ViTS5jcHAKQEAgLTQ0MywxNCArNDQzLDUyIEBAIHByaXZhdGU6CiAgICAgd2VibTo6VHJhY2tF
bnRyeSBtX3RyYWNrOwogfTsKIAorYm9vbCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjptX2Zvcm1h
dFJlYWRlckVuYWJsZWQgPSBmYWxzZTsKKwordm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpz
ZXRXZWJNRm9ybWF0UmVhZGVyRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgbV9mb3JtYXRS
ZWFkZXJFbmFibGVkID0gZW5hYmxlZDsKK30KKworY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJ
Q2FzZUluc2Vuc2l0aXZlSGFzaD4mIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OndlYm1NSU1FVHlw
ZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFN0cmluZywgQVNDSUlD
YXNlSW5zZW5zaXRpdmVIYXNoPj4gd2VibU1JTUVUeXBlcyA9IHN0ZDo6aW5pdGlhbGl6ZXJfbGlz
dDxTdHJpbmc+IHsKKyAgICAgICAgImF1ZGlvL3dlYm0iX3MsCisgICAgICAgICJ2aWRlby93ZWJt
Il9zLAorICAgIH07CisgICAgcmV0dXJuIHdlYm1NSU1FVHlwZXM7Cit9CisKK2Jvb2wgU291cmNl
QnVmZmVyUGFyc2VyV2ViTTo6aXNXZWJNRm9ybWF0UmVhZGVyQXZhaWxhYmxlKCkKK3sKKyNpZiBI
QVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQorICAgIGlmICghaXNXZWJtUGFyc2VyQXZhaWxh
YmxlKCkgfHwgIW1fZm9ybWF0UmVhZGVyRW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisjaWYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCisgICAgLy8gRklYTUUgKHJkYXI6Ly83MjMy
MDQxOSk6IElmIFdlYktpdCB3YXMgYnVpbHQgd2l0aCBhZC1ob2MgY29kZS1zaWduaW5nLAorICAg
IC8vIENvcmVNZWRpYSB3aWxsIG9ubHkgbG9hZCB0aGUgZm9ybWF0IHJlYWRlciBwbHVnLWluIHdo
ZW4gYSB1c2VyIGRlZmF1bHQKKyAgICAvLyBpcyBzZXQgb24gQXBwbGUgaW50ZXJuYWwgT1NzLiBU
aGF0IG1lYW5zIHdlIGNhbm5vdCBjdXJyZW50bHkgc3VwcG9ydCBXZWJNCisgICAgLy8gaW4gcHVi
bGljIFNESyBidWlsZHMgb24gY3VzdG9tZXIgT1NzLgorICAgIGlmICghb3NfdmFyaWFudF9hbGxv
d3NfaW50ZXJuYWxfc2VjdXJpdHlfcG9saWNpZXMoImNvbS5hcHBsZS5XZWJLaXQiKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgU291
cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZChjb25zdCBDb250ZW50
VHlwZSYgdHlwZSkKIHsKICNpZiBFTkFCTEUoVlA5KSB8fCBFTkFCTEUoVk9SQklTKSB8fCBFTkFC
TEUoT1BVUykKICAgICBpZiAoIWlzV2VibVBhcnNlckF2YWlsYWJsZSgpKQogICAgICAgICByZXR1
cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKIAotICAg
IGJvb2wgaXNBdWRpb0NvbnRhaW5lclR5cGUgPSBXVEY6OmVxdWFsSWdub3JpbmdBU0NJSUNhc2Uo
dHlwZS5jb250YWluZXJUeXBlKCksICJhdWRpby93ZWJtIik7Ci0gICAgYm9vbCBpc1ZpZGVvQ29u
dGFpbmVyVHlwZSA9IFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLmNvbnRhaW5lclR5
cGUoKSwgInZpZGVvL3dlYm0iKTsKKyAgICBhdXRvIGNvbnRhaW5lclR5cGUgPSB0eXBlLmNvbnRh
aW5lclR5cGUoKTsKKyAgICBib29sIGlzQXVkaW9Db250YWluZXJUeXBlID0gV1RGOjplcXVhbEln
bm9yaW5nQVNDSUlDYXNlKGNvbnRhaW5lclR5cGUsICJhdWRpby93ZWJtIik7CisgICAgYm9vbCBp
c1ZpZGVvQ29udGFpbmVyVHlwZSA9IFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb250YWlu
ZXJUeXBlLCAidmlkZW8vd2VibSIpOwogICAgIGlmICghaXNBdWRpb0NvbnRhaW5lclR5cGUgJiYg
IWlzVmlkZW9Db250YWluZXJUeXBlKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6
U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKICAgICAKQEAgLTQ3MywyMiArNTExLDE4IEBA
IE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpp
c0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvCiAgICAgaWYgKCFpc0FueUNvZGVjQXZhaWxhYmxlKQog
ICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBv
cnRlZDsKIAotICAgIFN0cmluZyBjb2RlY3NQYXJhbWV0ZXIgPSB0eXBlLnBhcmFtZXRlcihDb250
ZW50VHlwZTo6Y29kZWNzUGFyYW1ldGVyKCkpOwotICAgIGlmICghY29kZWNzUGFyYW1ldGVyKQot
ICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpNYXlCZVN1cHBv
cnRlZDsKLQotICAgIGF1dG8gc3BsaXRSZXN1bHRzID0gU3RyaW5nVmlldyhjb2RlY3NQYXJhbWV0
ZXIpLnNwbGl0KCcsJyk7Ci0gICAgaWYgKHNwbGl0UmVzdWx0cy5iZWdpbigpID09IHNwbGl0UmVz
dWx0cy5lbmQoKSkKKyAgICBhdXRvIGNvZGVjcyA9IHR5cGUuY29kZWNzKCk7CisgICAgaWYgKGNv
ZGVjcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0
c1R5cGU6Ok1heUJlU3VwcG9ydGVkOwogCi0gICAgZm9yIChhdXRvIHNwbGl0IDogc3BsaXRSZXN1
bHRzKSB7CisgICAgZm9yIChhdXRvJiBjb2RlYyA6IGNvZGVjcykgewogI2lmIEVOQUJMRShWUDkp
Ci0gICAgICAgIGlmIChzcGxpdC5zdGFydHNXaXRoKCJ2cDA5IikgfHwgc3BsaXQuc3RhcnRzV2l0
aCgidnAwOCIpIHx8IGVxdWFsKHNwbGl0LCAidnA4IikgfHwgZXF1YWwoc3BsaXQsICJ2cDkiKSkg
eworICAgICAgICBpZiAoY29kZWMuc3RhcnRzV2l0aCgidnAwOSIpIHx8IGNvZGVjLnN0YXJ0c1dp
dGgoInZwMDgiKSB8fCBlcXVhbChjb2RlYywgInZwOCIpIHx8IGVxdWFsKGNvZGVjLCAidnA5Iikp
IHsKIAogICAgICAgICAgICAgaWYgKCFpc1ZQOURlY29kZXJBdmFpbGFibGUoKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBv
cnRlZDsKIAotICAgICAgICAgICAgYXV0byBjb2RlY1BhcmFtZXRlcnMgPSBwYXJzZVZQQ29kZWNQ
YXJhbWV0ZXJzKHNwbGl0KTsKKyAgICAgICAgICAgIGF1dG8gY29kZWNQYXJhbWV0ZXJzID0gcGFy
c2VWUENvZGVjUGFyYW1ldGVycyhjb2RlYyk7CiAgICAgICAgICAgICBpZiAoIWNvZGVjUGFyYW1l
dGVycykKICAgICAgICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNU
eXBlOjpJc05vdFN1cHBvcnRlZDsKIApAQCAtNTAwLDcgKzUzNCw3IEBAIE1lZGlhUGxheWVyRW51
bXM6OlN1cHBvcnRzVHlwZSBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3Vw
cG9ydGVkKGNvCiAjZW5kaWYgLy8gRU5BQkxFKFZQOSkKIAogI2lmIEVOQUJMRShWT1JCSVMpCi0g
ICAgICAgIGlmIChzcGxpdCA9PSAidm9yYmlzIikgeworICAgICAgICBpZiAoY29kZWMgPT0gInZv
cmJpcyIpIHsKICAgICAgICAgICAgIGlmICghaXNWb3JiaXNEZWNvZGVyQXZhaWxhYmxlKCkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNO
b3RTdXBwb3J0ZWQ7CiAKQEAgLTUwOSw3ICs1NDMsNyBAQCBNZWRpYVBsYXllckVudW1zOjpTdXBw
b3J0c1R5cGUgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZChj
bwogI2VuZGlmIC8vIEVOQUJMRShWT1JCSVMpCiAKICNpZiBFTkFCTEUoT1BVUykKLSAgICAgICAg
aWYgKHNwbGl0ID09ICJvcHVzIikgeworICAgICAgICBpZiAoY29kZWMgPT0gIm9wdXMiKSB7CiAg
ICAgICAgICAgICBpZiAoIWlzT3B1c0RlY29kZXJBdmFpbGFibGUoKSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291
cmNlQnVmZmVyUGFyc2VyV2ViTS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oCmluZGV4IGVjYTAzYzIwNGZhMTAwN2U1YzI1
M2I1M2EyZmY0YTUyYjVjYjE3OWMuLjEzMmFjODI3MTIwMzAxYWM0YWUzMDE3ODFlOGZlNTJkMmE5
ZmRmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmgKQEAgLTYwLDcgKzYwLDEwIEBA
IGNsYXNzIFdFQkNPUkVfRVhQT1JUIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0gOiBwdWJsaWMgU291
cmNlQnVmZmVyUGFyc2VyLCBwcml2YXRlCiBwdWJsaWM6CiAgICAgY2xhc3MgU3RyZWFtaW5nVmVj
dG9yUmVhZGVyOwogCisgICAgc3RhdGljIGJvb2wgaXNXZWJNRm9ybWF0UmVhZGVyQXZhaWxhYmxl
KCk7CisgICAgc3RhdGljIHZvaWQgc2V0V2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoYm9vbCk7CiAg
ICAgc3RhdGljIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBpc0NvbnRlbnRUeXBlU3Vw
cG9ydGVkKGNvbnN0IENvbnRlbnRUeXBlJik7CisgICAgc3RhdGljIGNvbnN0IEhhc2hTZXQ8U3Ry
aW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiB3ZWJtTUlNRVR5cGVzKCk7CiAgICAgc3Rh
dGljIFJlZlB0cjxTb3VyY2VCdWZmZXJQYXJzZXJXZWJNPiBjcmVhdGUoY29uc3QgQ29udGVudFR5
cGUmKTsKIAogICAgIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0oKTsKQEAgLTI2OCw2ICsyNzEsOCBA
QCBwcml2YXRlOgogCiAgICAgUmVmUHRyPGNvbnN0IFdURjo6TG9nZ2VyPiBtX2xvZ2dlcjsKICAg
ICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXIgeyBudWxscHRyIH07CisgICAgCisgICAgc3Rh
dGljIGJvb2wgbV9mb3JtYXRSZWFkZXJFbmFibGVkOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBjNmQ4OWQwOTc2MzUzMWMzM2Vk
YjI4YmYzYTAwODEzODIwNDAyZGI2Li5hNGZmNGJhMDJhOWQzMmYzMDQ4YWQ5NTliNDYzZTc0MmMy
N2QzMzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cApAQCAtMzQxLDYgKzM0MSwxMCBAQAogI2VuZGlmCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJ
QV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCisjaW5jbHVkZSA8V2Vi
Q29yZS9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMzg0
Myw2ICszODQ3LDEwIEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2Vi
UHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgICAgICAgICBzZXR0aW5ncy5zZXRXZWJBdXRo
ZW50aWNhdGlvbkVuYWJsZWQodHJ1ZSk7CiAgICAgfQogI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVE
SUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQorICAgIEFWQXNzZXRN
SU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5zZXRXZWJNRm9ybWF0UmVhZGVyRW5hYmxlZChSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYk1Gb3JtYXRSZWFkZXJFbmFi
bGVkKCkpOworI2VuZGlmCiB9CiAKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCA3
MWQ0YTlhNzhhYjBjY2VkOWQwOWEyZjliNDY2MjQxMWMwNzg0YmM3Li4yM2Y4NGU3Y2FmMDE2YzQ0
MWQyMGNlNmU1NTNmNzg0YTM2MGViYjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTY5LDYgKzY5LDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvUGVyZm9ybWFuY2VMb2dnaW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BpY3R1cmVJ
blBpY3R1cmVTdXBwb3J0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1NXQ29udGV4dE1hbmFnZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3lzdGVt
QmF0dGVyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1Tb3VuZE1hbmFnZXIuaD4KQEAgLTMy
OCw2ICszMjksMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9j
ZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKICAgICBwdGhyZWFkX3NldF9m
aXhlZHByaW9yaXR5X3NlbGYoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkg
JiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICBBVkFzc2V0TUlNRVR5cGVDYWNo
ZTo6c2luZ2xldG9uKCkuc2V0V2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpKTsKKyNl
bmRpZgorCiAgICAgaWYgKCFwYXJhbWV0ZXJzLm1lZGlhTUlNRVR5cGVzLmlzRW1wdHkoKSkKICAg
ICAgICAgc2V0TWVkaWFNSU1FVHlwZXMocGFyYW1ldGVycy5tZWRpYU1JTUVUeXBlcyk7CiAgICAg
ZWxzZSB7Cg==
</data>
<flag name="commit-queue"
          id="433894"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416376</attachid>
            <date>2020-12-16 17:35:00 -0800</date>
            <delta_ts>2020-12-17 06:31:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219961-20201216173459.patch</filename>
            <type>text/plain</type>
            <size>21711</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwODkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjMyMDI4ZjczZTQ1ZThl
ODdiMjdjMTIzODNlMGFjMDFkZTRkYzgxMi4uZDk1MTkwZDk0M2VkNGM0ZGM4ZGFjZDFmNDM3Yzky
NmNmZWE1MTZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTEyLTE2ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2Vi
TSBmb3JtYXQgcmVhZGVyIGRvZXNuJ3Qgd29yayB3aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5
OTYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjM5OTAxND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXb3JrIGFyb3VuZCBhIGJ1ZyB0aGF0IG1h
a2VzIHRoZSBmb3JtYXQgcmVhZGVyIGZhaWwgdG8gbG9hZCB3aGVuIHRoZSBBVlVSTEFzc2V0T3V0
T2ZCYW5kTUlNRVR5cGVLZXkKKyAgICAgICAgaXMgaW5jbHVkZWQgaW4gdGhlIEFWVVJMQXNzZXQg
b3B0aW9ucyBkaWN0aW9uYXJ5LiBBbHNvIGluY2x1ZGUgc29tZSBjbGVhbnVwOgorICAgICAgICAt
IE1vdmUgdGhlIGNvZGUgdG8gY2hlY2sgZm9yIFdlYk0gTUlNRSB0eXBlcyBmcm9tIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMKKyAgICAgICAgICB0byBBVkFzc2V0TUlNRVR5cGVD
YWNoZS4KKyAgICAgICAgLSBEb24ndCB1c2UgUnVudGltZUVuYWJsZWRGZWF0dXJlcyBpbiBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLgorICAgICAgICAtIFJlZ2lzdGVyIHRoZSBX
ZWJNIGZvcm1hdCByZWFkZXIgd2hlbiBjcmVhdGluZyBhbiBBVlVSTEFzc2V0IGZvciBhIFdlYk0g
dXJsIGluc3RlYWQKKyAgICAgICAgICBvZiB3aGVuIGNoZWNraW5nIHRoZSBNSU1FIHR5cGUuCisg
ICAgICAgIC0gQ2xlYW51cCBXZWJNICJjb2RlY3MiIHBhcmFtZXRlciBwYXJzaW5nLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBl
Q2FjaGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9B
VkFzc2V0TUlNRVR5cGVDYWNoZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXNzZXRNSU1FVHlw
ZUNhY2hlOjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVZBc3Nl
dE1JTUVUeXBlQ2FjaGU6OnN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzZXRXZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnJlZ2lzdGVyRm9y
bWF0UmVhZGVySWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkQWR2ZXJ0aXNl
T3V0T2ZCYW5kTUlNRVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGVBbmRDb2Rl
Y3MpOgorICAgICAgICAoV2ViQ29yZTo6ZW5zdXJlRm9ybWF0UmVhZGVySXNSZWdpc3RlcmVkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzRm9ybWF0UmVhZGVyQXZhaWxhYmxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJz
ZXJXZWJNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OnNl
dFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
clBhcnNlcldlYk06OndlYm1NSU1FVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyUGFyc2VyV2ViTTo6aXNXZWJNRm9ybWF0UmVhZGVyQXZhaWxhYmxlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0u
aDoKKwogMjAyMC0xMi0xNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBNYWtlIEZyYW1lVmlldzo6bV9jdXN0b21TaXplRm9yUmVzaXplRXZlbnQgYW4g
T3B0aW9uYWw8SW50U2l6ZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTg4NzMxYzk0YzQ3MTA4Y2Q2Njk5YWU2NTM5
MTM5ZDMxOGNlZTgzYi4uYTA0Yjk4YTE5NmQxMzliNDEzNzdiOTk3YjUxNmVmMzBlYjk1MjFjNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0xMi0xNiAgRXJpYyBDYXJsc29uICA8ZXJp
Yy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFdlYk0gZm9ybWF0IHJlYWRl
ciBkb2Vzbid0IHdvcmsgd2l0aCBhIHVybCBpbiBhIDxzb3VyY2U+IGVsZW1lbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTk2MQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzIzOTkwMTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMjAtMTItMTUgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQ2FsbHMgdG8gc2V0
Rml4ZWRMYXlvdXRTaXplKCkgc2hvdWxkIG5vdCBiZSBpbnNpZGUgRU5BQkxFKFRFWFRfQVVUT1NJ
WklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oCmlu
ZGV4IDkzMTc5ZjI4ZDQwYzc1Y2Q4NDI3Y2IxNDZhODIwMzQyYjJiOGM1YTUuLmI3MGIwNjIxYjFk
YTZmN2I5ZjFhNDI2YzVkZjZmZmExYTQzMzA2MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaApAQCAtNDUsNiArNDUsOCBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmKSBmaW5hbDsKIAog
ICAgIHZvaWQgYWRkU3VwcG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKyAgICAK
KyAgICB2b2lkIHNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKGJvb2wpOwogCiBwcml2YXRlOgog
ICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxBVkFzc2V0TUlNRVR5cGVDYWNoZT47CkBAIC01NCw2
ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXplQ2FjaGUoSGFzaFNldDxTdHJp
bmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mKSBmaW5hbDsKIAogICAgIENhY2hlTUlNRVR5
cGVzQ2FsbGJhY2sgbV9jYWNoZVR5cGVDYWxsYmFjazsKKyAgICBib29sIG1fd2ViTUZvcm1hdFJl
YWRlckVuYWJsZWQgeyBmYWxzZSB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2Fj
aGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQppbmRleCA4NzA2NjIxNDY2YjU5NTdkODU3YzhlNmE5
N2M5MWVhNjNmNDYwMWY5Li5jNDJhN2U0ZjY5NGFlODA1ZmQ0NDViOWI1OTc2Zjc0ZDM1ZDNlZmFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQpA
QCAtMjksNiArMjksNyBAQAogI2lmIFBMQVRGT1JNKENPQ09BKQogCiAjaW1wb3J0ICJDb250ZW50
VHlwZS5oIgorI2ltcG9ydCAiU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oIgogI2ltcG9ydCA8cGFs
L2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9u
U29mdExpbmsuaD4KIApAQCAtNjMsNyArNjQsMTEgQEAgYm9vbCBBVkFzc2V0TUlNRVR5cGVDYWNo
ZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBlKQogewogI2lm
IEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKICAgICBBU1NFUlQoaXNBdmFpbGFi
bGUoKSk7Ci0gICAgcmV0dXJuIFtQQUw6OmdldEFWVVJMQXNzZXRDbGFzcygpIGlzUGxheWFibGVF
eHRlbmRlZE1JTUVUeXBlOnR5cGUucmF3KCldOworICAgIGlmIChbUEFMOjpnZXRBVlVSTEFzc2V0
Q2xhc3MoKSBpc1BsYXlhYmxlRXh0ZW5kZWRNSU1FVHlwZTp0eXBlLnJhdygpXSkKKyAgICAgICAg
cmV0dXJuIHRydWU7CisKKyAgICBpZiAobV93ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCAmJiBTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKHR5cGUpID09IE1lZGlh
UGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQpCisgICAgICAgIHJldHVybiB0
cnVlOwogI2VuZGlmCiAKICAgICByZXR1cm4gZmFsc2U7CkBAIC05NiwzOSArMTAxLDUxIEBAIGJv
b2wgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OmlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnN0
IFN0cmluZyYgdHlwZSkKIAogY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0
aXZlSGFzaD4mIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzdGF0aWNDb250YWluZXJUeXBlTGlzdCgp
CiB7Ci0gICAgc3RhdGljIGNvbnN0IGF1dG8gY2FjaGUgPSBtYWtlTmV2ZXJEZXN0cm95ZWQoSGFz
aFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4gewotICAgICAgICAiYXBwbGlj
YXRpb24vdm5kLmFwcGxlLm1wZWd1cmwiLAotICAgICAgICAiYXBwbGljYXRpb24veC1tcGVndXJs
IiwKLSAgICAgICAgImF1ZGlvLzNncHAiLAotICAgICAgICAiYXVkaW8vYWFjIiwKLSAgICAgICAg
ImF1ZGlvL2FhY3AiLAotICAgICAgICAiYXVkaW8vYWlmZiIsCi0gICAgICAgICJhdWRpby9iYXNp
YyIsCi0gICAgICAgICJhdWRpby9tcDMiLAotICAgICAgICAiYXVkaW8vbXA0IiwKLSAgICAgICAg
ImF1ZGlvL21wZWciLAotICAgICAgICAiYXVkaW8vbXBlZzMiLAotICAgICAgICAiYXVkaW8vbXBl
Z3VybCIsCi0gICAgICAgICJhdWRpby9tcGciLAotICAgICAgICAiYXVkaW8vdm5kLndhdmUiLAot
ICAgICAgICAiYXVkaW8vd2F2IiwKLSAgICAgICAgImF1ZGlvL3dhdmUiLAotICAgICAgICAiYXVk
aW8veC1hYWMiLAotICAgICAgICAiYXVkaW8veC1haWZmIiwKLSAgICAgICAgImF1ZGlvL3gtbTRh
IiwKLSAgICAgICAgImF1ZGlvL3gtbXBlZ3VybCIsCi0gICAgICAgICJhdWRpby94LXdhdiIsCi0g
ICAgICAgICJ2aWRlby8zZ3BwIiwKLSAgICAgICAgInZpZGVvLzNncHAyIiwKLSAgICAgICAgInZp
ZGVvL21wNCIsCi0gICAgICAgICJ2aWRlby9tcGVnIiwKLSAgICAgICAgInZpZGVvL21wZWcyIiwK
LSAgICAgICAgInZpZGVvL21wZyIsCi0gICAgICAgICJ2aWRlby9xdWlja3RpbWUiLAotICAgICAg
ICAidmlkZW8veC1tNHYiLAotICAgICAgICAidmlkZW8veC1tcGVnIiwKLSAgICAgICAgInZpZGVv
L3gtbXBnIiwKLSAgICB9KTsKKyAgICBzdGF0aWMgYXV0byBjYWNoZSA9IG1ha2VOZXZlckRlc3Ry
b3llZChbdGhpc10geworICAgICAgICBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRp
dmVIYXNoPiBjYWNoZSA9IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxTdHJpbmc+IHsKKyAgICAgICAg
ICAgICJhcHBsaWNhdGlvbi92bmQuYXBwbGUubXBlZ3VybCJfcywKKyAgICAgICAgICAgICJhcHBs
aWNhdGlvbi94LW1wZWd1cmwiX3MsCisgICAgICAgICAgICAiYXVkaW8vM2dwcCJfcywKKyAgICAg
ICAgICAgICJhdWRpby9hYWMiX3MsCisgICAgICAgICAgICAiYXVkaW8vYWFjcCJfcywKKyAgICAg
ICAgICAgICJhdWRpby9haWZmIl9zLAorICAgICAgICAgICAgImF1ZGlvL2Jhc2ljIl9zLAorICAg
ICAgICAgICAgImF1ZGlvL21wMyJfcywKKyAgICAgICAgICAgICJhdWRpby9tcDQiX3MsCisgICAg
ICAgICAgICAiYXVkaW8vbXBlZyJfcywKKyAgICAgICAgICAgICJhdWRpby9tcGVnMyJfcywKKyAg
ICAgICAgICAgICJhdWRpby9tcGVndXJsIl9zLAorICAgICAgICAgICAgImF1ZGlvL21wZyJfcywK
KyAgICAgICAgICAgICJhdWRpby92bmQud2F2ZSJfcywKKyAgICAgICAgICAgICJhdWRpby93YXYi
X3MsCisgICAgICAgICAgICAiYXVkaW8vd2F2ZSJfcywKKyAgICAgICAgICAgICJhdWRpby94LWFh
YyJfcywKKyAgICAgICAgICAgICJhdWRpby94LWFpZmYiX3MsCisgICAgICAgICAgICAiYXVkaW8v
eC1tNGEiX3MsCisgICAgICAgICAgICAiYXVkaW8veC1tcGVndXJsIl9zLAorICAgICAgICAgICAg
ImF1ZGlvL3gtd2F2Il9zLAorICAgICAgICAgICAgInZpZGVvLzNncHAiX3MsCisgICAgICAgICAg
ICAidmlkZW8vM2dwcDIiX3MsCisgICAgICAgICAgICAidmlkZW8vbXA0Il9zLAorICAgICAgICAg
ICAgInZpZGVvL21wZWciX3MsCisgICAgICAgICAgICAidmlkZW8vbXBlZzIiX3MsCisgICAgICAg
ICAgICAidmlkZW8vbXBnIl9zLAorICAgICAgICAgICAgInZpZGVvL3F1aWNrdGltZSJfcywKKyAg
ICAgICAgICAgICJ2aWRlby94LW00diJfcywKKyAgICAgICAgICAgICJ2aWRlby94LW1wZWciX3Ms
CisgICAgICAgICAgICAidmlkZW8veC1tcGciX3MsCisgICAgICAgIH07CisKKyNpZiBFTkFCTEUo
TUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQorICAgICAgICBp
ZiAobV93ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCkgeworICAgICAgICAgICAgYXV0byB3ZWJtVHlw
ZXMgPSBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjp3ZWJtTUlNRVR5cGVzKCk7CisgICAgICAgICAg
ICBjYWNoZS5hZGQod2VibVR5cGVzLmJlZ2luKCksIHdlYm1UeXBlcy5lbmQoKSk7CisgICAgICAg
IH0KKyNlbmRpZgorCisgICAgICAgIHJldHVybiBjYWNoZTsKKyAgICB9KCkpOworCiAgICAgcmV0
dXJuIGNhY2hlOwogfQogCkBAIC0xNTMsNiArMTcwLDEzIEBAIHZvaWQgQVZBc3NldE1JTUVUeXBl
Q2FjaGU6OmluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRp
dmVICiAjZW5kaWYKIH0KIAordm9pZCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2V0V2ViTUZvcm1h
dFJlYWRlckVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIG1fd2ViTUZvcm1hdFJlYWRlckVu
YWJsZWQgPSBlbmFibGVkOworICAgIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OnNldFdlYk1Gb3Jt
YXRSZWFkZXJFbmFibGVkKGVuYWJsZWQpOworfQorCisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbQppbmRleCBkNjRhNzI1NjJhMjRjMGQ4YTFkYmJhMzA5Y2U1MTVjOGNmZWM0YWUx
Li5mNGI4NzE2NjcyNjI5ZjYzMjVhNjBiMWQzOWY3Yzc4NGJmNDk5OGI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0KQEAgLTU2LDcgKzU2LDYgQEAKICNpbXBvcnQgIlBpeGVsQnVmZmVyQ29uZm9y
bWVyQ1YuaCIKICNpbXBvcnQgIlBsYXRmb3JtVGltZVJhbmdlcy5oIgogI2ltcG9ydCAiUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCi0jaW1wb3J0ICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgi
CiAjaW1wb3J0ICJTZWN1cml0eU9yaWdpbi5oIgogI2ltcG9ydCAiU2VyaWFsaXplZFBsYXRmb3Jt
RGF0YUN1ZU1hYy5oIgogI2ltcG9ydCAiU2hhcmVkQnVmZmVyLmgiCkBAIC0xMDAsNyArOTksNiBA
QAogI2ltcG9ydCA8d3RmL09TT2JqZWN0UHRyLmg+CiAjaW1wb3J0IDx3dGYvVVJMLmg+CiAjaW1w
b3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KLSNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL09T
VmFyaWFudFNQSS5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2ltcG9ydCA8d3Rm
L3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmg+CiAKQEAgLTI3MCw2ICsyNjgsMjAgQEAgc3RhdGlj
IGRpc3BhdGNoX3F1ZXVlX3QgZ2xvYmFsUHVsbERlbGVnYXRlUXVldWUoKQogICAgIHJldHVybiBn
bG9iYWxRdWV1ZTsKIH0KIAorc3RhdGljIHZvaWQgcmVnaXN0ZXJGb3JtYXRSZWFkZXJJZk5lY2Vz
c2FyeSgpCit7CisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9S
TUFUX1JFQURFUikKKyAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKKyAgICBk
aXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57CisgICAgICAgIC8vIExpa2Ugd2UgZG8gZm9yIG90
aGVyIG1lZGlhIGZvcm1hdHMsIGFsbG93IHRoZSBmb3JtYXQgcmVhZGVyIHRvIHJ1biBpbiB0aGUg
V2ViQ29udGVudCBvciBHUFUgcHJvY2VzcworICAgICAgICAvLyAod2hpY2ggaXMgYWxyZWFkeSBh
cHByb3ByaWF0ZWx5IHNhbmRib3hlZCkgcmF0aGVyIHRoYW4gaW4gYSBzZXBhcmF0ZSBNZWRpYVRv
b2xib3ggWFBDIHNlcnZpY2UuCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlzSW5HUFVQcm9jZXNz
KCkgfHwgaXNJbldlYlByb2Nlc3MoKSk7CisgICAgICAgIE1UUmVnaXN0ZXJQbHVnaW5Gb3JtYXRS
ZWFkZXJCdW5kbGVEaXJlY3RvcnkoKF9fYnJpZGdlIENGVVJMUmVmKU5TQnVuZGxlLm1haW5CdW5k
bGUuYnVpbHRJblBsdWdJbnNVUkwpOworICAgICAgICBNVFBsdWdpbkZvcm1hdFJlYWRlckRpc2Fi
bGVTYW5kYm94aW5nKCk7CisgICAgfSk7CisjZW5kaWYKK30KKwogY2xhc3MgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6RmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBNZWRpYVBsYXll
ckZhY3RvcnkgewogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIE1lZGlhUGxheWVyRW51
bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6QVZGb3VuZGF0aW9uOyB9OwpAQCAtODMzLDcgKzg0
NSwxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFW
QXNzZXRGb3JVUkwoY29uc3QgVVJMJiB1cmwsIFJldAogI2VuZGlmCiAKICAgICBhdXRvIHR5cGUg
PSBwbGF5ZXIoKS0+Y29udGVudE1JTUVUeXBlKCk7Ci0gICAgaWYgKFBBTDo6Y2FuTG9hZF9BVkZv
dW5kYXRpb25fQVZVUkxBc3NldE91dE9mQmFuZE1JTUVUeXBlS2V5KCkgJiYgIXR5cGUuaXNFbXB0
eSgpICYmICFwbGF5ZXIoKS0+Y29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9u
KCkpIHsKKworICAgIC8vIERvbid0IGFkdmVydGlzZSBXZWJNIE1JTUUgdHlwZXMgb3IgdGhlIGZv
cm1hdCByZWFkZXIgd29uJ3QgYmUgbG9hZGVkIHVudGlsIHJkYXI6Ly83MjQwNTEyNyBpcyBmaXhl
ZC4KKyAgICBhdXRvIHdpbGxVc2VXZWJNRm9ybWF0UmVhZGVyID0gU291cmNlQnVmZmVyUGFyc2Vy
V2ViTTo6aXNXZWJNRm9ybWF0UmVhZGVyQXZhaWxhYmxlKCkgJiYgKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UodHlwZSwgInZpZGVvL3dlYm0iKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHR5cGUs
ICJhdWRpby93ZWJtIikpOworCisgICAgaWYgKFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25fQVZV
UkxBc3NldE91dE9mQmFuZE1JTUVUeXBlS2V5KCkgJiYgIXR5cGUuaXNFbXB0eSgpICYmICFwbGF5
ZXIoKS0+Y29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uKCkgJiYgIXdpbGxV
c2VXZWJNRm9ybWF0UmVhZGVyKSB7CiAgICAgICAgIGF1dG8gY29kZWNzID0gcGxheWVyKCktPmNv
bnRlbnRUeXBlQ29kZWNzKCk7CiAgICAgICAgIGlmICghY29kZWNzLmlzRW1wdHkoKSkgewogICAg
ICAgICAgICAgTlNTdHJpbmcgKnR5cGVTdHJpbmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1h
dDpAIiVAOyBjb2RlY3M9XCIlQFwiIiwgKE5TU3RyaW5nICopdHlwZSwgKE5TU3RyaW5nICopY29k
ZWNzXTsKQEAgLTg3Niw2ICs4OTIsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3QgVVJMJiB1cmwsIFJldAogICAgICAg
ICAgICAgW29wdGlvbnMgc2V0T2JqZWN0OkBOTyBmb3JLZXk6QVZVUkxBc3NldFVzZXNOb1BlcnNp
c3RlbnRDYWNoZUtleV07CiAgICAgfQogCisgICAgaWYgKHdpbGxVc2VXZWJNRm9ybWF0UmVhZGVy
KQorICAgICAgICByZWdpc3RlckZvcm1hdFJlYWRlcklmTmVjZXNzYXJ5KCk7CisKICAgICBOU1VS
TCAqY29jb2FVUkwgPSBjYW5vbmljYWxVUkwodXJsKTsKICAgICBtX2F2QXNzZXQgPSBhZG9wdE5T
KFtQQUw6OmFsbG9jQVZVUkxBc3NldEluc3RhbmNlKCkgaW5pdFdpdGhVUkw6Y29jb2FVUkwgb3B0
aW9uczpvcHRpb25zLmdldCgpXSk7CiAKQEAgLTE2NjcsMzkgKzE2ODYsNiBAQCBzdGF0aWMgYm9v
bCBrZXlTeXN0ZW1Jc1N1cHBvcnRlZChjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKIH0KICNlbmRp
ZgogCi0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JF
QURFUikKLXN0YXRpYyB2b2lkIGVuc3VyZUZvcm1hdFJlYWRlcklzUmVnaXN0ZXJlZCgpCi17Ci0g
ICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47Ci0gICAgZGlzcGF0Y2hfb25jZSgm
b25jZVRva2VuLCBeewotICAgICAgICAvLyBMaWtlIHdlIGRvIGZvciBvdGhlciBtZWRpYSBmb3Jt
YXRzLCBhbGxvdyB0aGUgZm9ybWF0IHJlYWRlciB0byBydW4gaW4gdGhlIFdlYkNvbnRlbnQgb3Ig
R1BVIHByb2Nlc3MKLSAgICAgICAgLy8gKHdoaWNoIGlzIGFscmVhZHkgYXBwcm9wcmlhdGVseSBz
YW5kYm94ZWQpIHJhdGhlciB0aGFuIGluIGEgc2VwYXJhdGUgTWVkaWFUb29sYm94IFhQQyBzZXJ2
aWNlLgotICAgICAgICBSRUxFQVNFX0FTU0VSVChpc0luR1BVUHJvY2VzcygpIHx8IGlzSW5XZWJQ
cm9jZXNzKCkpOwotICAgICAgICBNVFJlZ2lzdGVyUGx1Z2luRm9ybWF0UmVhZGVyQnVuZGxlRGly
ZWN0b3J5KChfX2JyaWRnZSBDRlVSTFJlZilOU0J1bmRsZS5tYWluQnVuZGxlLmJ1aWx0SW5QbHVn
SW5zVVJMKTsKLSAgICAgICAgTVRQbHVnaW5Gb3JtYXRSZWFkZXJEaXNhYmxlU2FuZGJveGluZygp
OwotICAgIH0pOwotfQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZF
KE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQotc3RhdGljIGJvb2wgaXNGb3JtYXRSZWFkZXJBdmFp
bGFibGUoKQotewotICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS53ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSNpZiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSAgICAvLyBGSVhNRSAocmRhcjovLzcyMzIw
NDE5KTogSWYgV2ViS2l0IHdhcyBidWlsdCB3aXRoIGFkLWhvYyBjb2RlLXNpZ25pbmcsCi0gICAg
Ly8gQ29yZU1lZGlhIHdpbGwgb25seSBsb2FkIHRoZSBmb3JtYXQgcmVhZGVyIHBsdWctaW4gd2hl
biBhIHVzZXIgZGVmYXVsdAotICAgIC8vIGlzIHNldCBvbiBBcHBsZSBpbnRlcm5hbCBPU3MuIFRo
YXQgbWVhbnMgd2UgY2Fubm90IGN1cnJlbnRseSBzdXBwb3J0IFdlYk0KLSAgICAvLyBpbiBwdWJs
aWMgU0RLIGJ1aWxkcyBvbiBjdXN0b21lciBPU3MuCi0gICAgaWYgKCFvc192YXJpYW50X2FsbG93
c19pbnRlcm5hbF9zZWN1cml0eV9wb2xpY2llcygiY29tLmFwcGxlLldlYktpdCIpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLQotICAgIHJldHVybiB0cnVlOwotfQotI2VuZGlmCi0K
IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKQEAgLTE3MTEs
MTkgKzE2OTcsNiBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZAogICAgICAgICByZXR1cm4gTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAjZW5kaWYKIAotI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCi0gICAg
aWYgKGlzRm9ybWF0UmVhZGVyQXZhaWxhYmxlKCkpIHsKLSAgICAgICAgYXV0byBzdXBwb3J0ZWQg
PSBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKHBhcmFtZXRl
cnMudHlwZSk7Ci0gICAgICAgIGlmIChzdXBwb3J0ZWQgIT0gTWVkaWFQbGF5ZXI6OlN1cHBvcnRz
VHlwZTo6SXNOb3RTdXBwb3J0ZWQpIHsKLSAgICAgICAgICAgIGVuc3VyZUZvcm1hdFJlYWRlcklz
UmVnaXN0ZXJlZCgpOwotICAgICAgICAgICAgaWYgKHN1cHBvcnRlZCA9PSBNZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlOjpNYXlCZVN1cHBvcnRlZCkKLSAgICAgICAgICAgICAgICByZXR1cm4gc3Vw
cG9ydGVkOwotICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlTWVldHNIYXJkd2FyZURlY29kZVJl
cXVpcmVtZW50cyhwYXJhbWV0ZXJzLnR5cGUsIHBhcmFtZXRlcnMuY29udGVudFR5cGVzUmVxdWly
aW5nSGFyZHdhcmVTdXBwb3J0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQ7Ci0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYKLQog
ICAgIGF1dG8gc3VwcG9ydGVkID0gQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLmNh
bkRlY29kZVR5cGUocGFyYW1ldGVycy50eXBlLnJhdygpKTsKICAgICBpZiAoc3VwcG9ydGVkICE9
IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzU3VwcG9ydGVkKQogICAgICAgICByZXR1cm4g
c3VwcG9ydGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAppbmRleCBjMDQzYmU1
NjkyZjVmZWI2ZTViMGFkZmY0NjYwZjFkNTFkZmMyMzI4Li45YzcyZGY1YmUzOTk0NDNkZTcxZjE4
YjQwZTI0YjFkMGFjOGZmYWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcApA
QCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaXN0Lmg+CiAjaW5jbHVkZSA8d3Rm
L2NmL1R5cGVDYXN0c0NGLmg+CiAjaW5jbHVkZSA8d3RmL2Rhcndpbi9XZWFrTGlua2luZy5oPgor
I2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL09TVmFyaWFudFNQSS5oPgogCiAjaW5jbHVkZSAiQ29y
ZVZpZGVvU29mdExpbmsuaCIKICNpbmNsdWRlICJWaWRlb1Rvb2xib3hTb2Z0TGluay5oIgpAQCAt
NDQzLDE0ICs0NDQsNTIgQEAgcHJpdmF0ZToKICAgICB3ZWJtOjpUcmFja0VudHJ5IG1fdHJhY2s7
CiB9OwogCitib29sIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Om1fZm9ybWF0UmVhZGVyRW5hYmxl
ZCA9IGZhbHNlOworCit2b2lkIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OnNldFdlYk1Gb3JtYXRS
ZWFkZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBtX2Zvcm1hdFJlYWRlckVuYWJsZWQg
PSBlbmFibGVkOworfQorCitjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRp
dmVIYXNoPiYgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6d2VibU1JTUVUeXBlcygpCit7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2
ZUhhc2g+PiB3ZWJtTUlNRVR5cGVzID0gc3RkOjppbml0aWFsaXplcl9saXN0PFN0cmluZz4gewor
ICAgICAgICAiYXVkaW8vd2VibSJfcywKKyAgICAgICAgInZpZGVvL3dlYm0iX3MsCisgICAgfTsK
KyAgICByZXR1cm4gd2VibU1JTUVUeXBlczsKK30KKworYm9vbCBTb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNOjppc1dlYk1Gb3JtYXRSZWFkZXJBdmFpbGFibGUoKQoreworI2lmIEhBVkUoTVRfUExVR0lO
X0ZPUk1BVF9SRUFERVIpCisgICAgaWYgKCFpc1dlYm1QYXJzZXJBdmFpbGFibGUoKSB8fCAhbV9m
b3JtYXRSZWFkZXJFbmFibGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyNpZiAhVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKKyAgICAvLyBGSVhNRSAocmRhcjovLzcyMzIwNDE5KTogSWYgV2Vi
S2l0IHdhcyBidWlsdCB3aXRoIGFkLWhvYyBjb2RlLXNpZ25pbmcsCisgICAgLy8gQ29yZU1lZGlh
IHdpbGwgb25seSBsb2FkIHRoZSBmb3JtYXQgcmVhZGVyIHBsdWctaW4gd2hlbiBhIHVzZXIgZGVm
YXVsdAorICAgIC8vIGlzIHNldCBvbiBBcHBsZSBpbnRlcm5hbCBPU3MuIFRoYXQgbWVhbnMgd2Ug
Y2Fubm90IGN1cnJlbnRseSBzdXBwb3J0IFdlYk0KKyAgICAvLyBpbiBwdWJsaWMgU0RLIGJ1aWxk
cyBvbiBjdXN0b21lciBPU3MuCisgICAgaWYgKCFvc192YXJpYW50X2FsbG93c19pbnRlcm5hbF9z
ZWN1cml0eV9wb2xpY2llcygiY29tLmFwcGxlLldlYktpdCIpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisjZW5kaWYKKworICAgIHJldHVybiB0cnVlOworI2VuZGlmCisKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBTb3VyY2VCdWZmZXJQYXJz
ZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBlKQog
ewogI2lmIEVOQUJMRShWUDkpIHx8IEVOQUJMRShWT1JCSVMpIHx8IEVOQUJMRShPUFVTKQogICAg
IGlmICghaXNXZWJtUGFyc2VyQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXll
ckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCi0gICAgYm9vbCBpc0F1ZGlv
Q29udGFpbmVyVHlwZSA9IFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLmNvbnRhaW5l
clR5cGUoKSwgImF1ZGlvL3dlYm0iKTsKLSAgICBib29sIGlzVmlkZW9Db250YWluZXJUeXBlID0g
V1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlKHR5cGUuY29udGFpbmVyVHlwZSgpLCAidmlkZW8v
d2VibSIpOworICAgIGF1dG8gY29udGFpbmVyVHlwZSA9IHR5cGUuY29udGFpbmVyVHlwZSgpOwor
ICAgIGJvb2wgaXNBdWRpb0NvbnRhaW5lclR5cGUgPSBXVEY6OmVxdWFsSWdub3JpbmdBU0NJSUNh
c2UoY29udGFpbmVyVHlwZSwgImF1ZGlvL3dlYm0iKTsKKyAgICBib29sIGlzVmlkZW9Db250YWlu
ZXJUeXBlID0gV1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlKGNvbnRhaW5lclR5cGUsICJ2aWRl
by93ZWJtIik7CiAgICAgaWYgKCFpc0F1ZGlvQ29udGFpbmVyVHlwZSAmJiAhaXNWaWRlb0NvbnRh
aW5lclR5cGUpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6
OklzTm90U3VwcG9ydGVkOwogICAgIApAQCAtNDczLDIyICs1MTIsMTggQEAgTWVkaWFQbGF5ZXJF
bnVtczo6U3VwcG9ydHNUeXBlIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVT
dXBwb3J0ZWQoY28KICAgICBpZiAoIWlzQW55Q29kZWNBdmFpbGFibGUpCiAgICAgICAgIHJldHVy
biBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCi0gICAg
U3RyaW5nIGNvZGVjc1BhcmFtZXRlciA9IHR5cGUucGFyYW1ldGVyKENvbnRlbnRUeXBlOjpjb2Rl
Y3NQYXJhbWV0ZXIoKSk7Ci0gICAgaWYgKCFjb2RlY3NQYXJhbWV0ZXIpCi0gICAgICAgIHJldHVy
biBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6Ok1heUJlU3VwcG9ydGVkOwotCi0gICAg
YXV0byBzcGxpdFJlc3VsdHMgPSBTdHJpbmdWaWV3KGNvZGVjc1BhcmFtZXRlcikuc3BsaXQoJywn
KTsKLSAgICBpZiAoc3BsaXRSZXN1bHRzLmJlZ2luKCkgPT0gc3BsaXRSZXN1bHRzLmVuZCgpKQor
ICAgIGF1dG8gY29kZWNzID0gdHlwZS5jb2RlY3MoKTsKKyAgICBpZiAoY29kZWNzLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6TWF5QmVT
dXBwb3J0ZWQ7CiAKLSAgICBmb3IgKGF1dG8gc3BsaXQgOiBzcGxpdFJlc3VsdHMpIHsKKyAgICBm
b3IgKGF1dG8mIGNvZGVjIDogY29kZWNzKSB7CiAjaWYgRU5BQkxFKFZQOSkKLSAgICAgICAgaWYg
KHNwbGl0LnN0YXJ0c1dpdGgoInZwMDkiKSB8fCBzcGxpdC5zdGFydHNXaXRoKCJ2cDA4IikgfHwg
ZXF1YWwoc3BsaXQsICJ2cDgiKSB8fCBlcXVhbChzcGxpdCwgInZwOSIpKSB7CisgICAgICAgIGlm
IChjb2RlYy5zdGFydHNXaXRoKCJ2cDA5IikgfHwgY29kZWMuc3RhcnRzV2l0aCgidnAwOCIpIHx8
IGVxdWFsKGNvZGVjLCAidnA4IikgfHwgZXF1YWwoY29kZWMsICJ2cDkiKSkgewogCiAgICAgICAg
ICAgICBpZiAoIWlzVlA5RGVjb2RlckF2YWlsYWJsZSgpKQogICAgICAgICAgICAgICAgIHJldHVy
biBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCi0gICAg
ICAgICAgICBhdXRvIGNvZGVjUGFyYW1ldGVycyA9IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoc3Bs
aXQpOworICAgICAgICAgICAgYXV0byBjb2RlY1BhcmFtZXRlcnMgPSBwYXJzZVZQQ29kZWNQYXJh
bWV0ZXJzKGNvZGVjKTsKICAgICAgICAgICAgIGlmICghY29kZWNQYXJhbWV0ZXJzKQogICAgICAg
ICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3Vw
cG9ydGVkOwogCkBAIC01MDAsNyArNTM1LDcgQEAgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNU
eXBlIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY28KICNl
bmRpZiAvLyBFTkFCTEUoVlA5KQogCiAjaWYgRU5BQkxFKFZPUkJJUykKLSAgICAgICAgaWYgKHNw
bGl0ID09ICJ2b3JiaXMiKSB7CisgICAgICAgIGlmIChjb2RlYyA9PSAidm9yYmlzIikgewogICAg
ICAgICAgICAgaWYgKCFpc1ZvcmJpc0RlY29kZXJBdmFpbGFibGUoKSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsK
IApAQCAtNTA5LDcgKzU0NCw3IEBAIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvCiAjZW5kaWYgLy8g
RU5BQkxFKFZPUkJJUykKIAogI2lmIEVOQUJMRShPUFVTKQotICAgICAgICBpZiAoc3BsaXQgPT0g
Im9wdXMiKSB7CisgICAgICAgIGlmIChjb2RlYyA9PSAib3B1cyIpIHsKICAgICAgICAgICAgIGlm
ICghaXNPcHVzRGVjb2RlckF2YWlsYWJsZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBNZWRp
YVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJz
ZXJXZWJNLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VC
dWZmZXJQYXJzZXJXZWJNLmgKaW5kZXggZWNhMDNjMjA0ZmExMDA3ZTVjMjUzYjUzYTJmZjRhNTJi
NWNiMTc5Yy4uMTMyYWM4MjcxMjAzMDFhYzRhZTMwMTc4MWU4ZmU1MmQyYTlmZGY3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVy
UGFyc2VyV2ViTS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaApAQCAtNjAsNyArNjAsMTAgQEAgY2xhc3MgV0VCQ09S
RV9FWFBPUlQgU291cmNlQnVmZmVyUGFyc2VyV2ViTSA6IHB1YmxpYyBTb3VyY2VCdWZmZXJQYXJz
ZXIsIHByaXZhdGUKIHB1YmxpYzoKICAgICBjbGFzcyBTdHJlYW1pbmdWZWN0b3JSZWFkZXI7CiAK
KyAgICBzdGF0aWMgYm9vbCBpc1dlYk1Gb3JtYXRSZWFkZXJBdmFpbGFibGUoKTsKKyAgICBzdGF0
aWMgdm9pZCBzZXRXZWJNRm9ybWF0UmVhZGVyRW5hYmxlZChib29sKTsKICAgICBzdGF0aWMgTWVk
aWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIGlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY29uc3Qg
Q29udGVudFR5cGUmKTsKKyAgICBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2Fz
ZUluc2Vuc2l0aXZlSGFzaD4mIHdlYm1NSU1FVHlwZXMoKTsKICAgICBzdGF0aWMgUmVmUHRyPFNv
dXJjZUJ1ZmZlclBhcnNlcldlYk0+IGNyZWF0ZShjb25zdCBDb250ZW50VHlwZSYpOwogCiAgICAg
U291cmNlQnVmZmVyUGFyc2VyV2ViTSgpOwpAQCAtMjY4LDYgKzI3MSw4IEBAIHByaXZhdGU6CiAK
ICAgICBSZWZQdHI8Y29uc3QgV1RGOjpMb2dnZXI+IG1fbG9nZ2VyOwogICAgIGNvbnN0IHZvaWQq
IG1fbG9nSWRlbnRpZmllciB7IG51bGxwdHIgfTsKKyAgICAKKyAgICBzdGF0aWMgYm9vbCBtX2Zv
cm1hdFJlYWRlckVuYWJsZWQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGM2ZDg5ZDA5NzYzNTMxYzMzZWRiMjhiZjNhMDA4MTM4
MjA0MDJkYjYuLmE0ZmY0YmEwMmE5ZDMyZjMwNDhhZDk1OWI0NjNlNzQyYzI3ZDMzNTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNDEsNiAr
MzQxLDEwIEBACiAjZW5kaWYKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYg
SEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyNpbmNsdWRlIDxXZWJDb3JlL0FWQXNzZXRN
SU1FVHlwZUNhY2hlLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1l
c3BhY2UgSlNDOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0zODQzLDYgKzM4NDcsMTAg
QEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0
b3JlJiBzdG9yZSkKICAgICAgICAgICAgIHNldHRpbmdzLnNldFdlYkF1dGhlbnRpY2F0aW9uRW5h
YmxlZCh0cnVlKTsKICAgICB9CiAjZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYm
IEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCisgICAgQVZBc3NldE1JTUVUeXBlQ2FjaGU6
OnNpbmdsZXRvbigpLnNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKSk7CisjZW5k
aWYKIH0KIAogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDcxZDRhOWE3OGFiMGNj
ZWQ5ZDA5YTJmOWI0NjYyNDExYzA3ODRiYzcuLjIzZjg0ZTdjYWYwMTZjNDQxZDIwY2U2ZTU1M2Y3
ODRhMzYwZWJiNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbQpAQCAtNjksNiArNjksNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QZXJm
b3JtYW5jZUxvZ2dpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGljdHVyZUluUGljdHVyZVN1cHBv
cnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CisjaW1w
b3J0IDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUv
U1dDb250ZXh0TWFuYWdlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1N5c3RlbVNvdW5kTWFuYWdlci5oPgpAQCAtMzI4LDYgKzMyOSwxMCBA
QCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgIHB0aHJlYWRfc2V0X2ZpeGVkcHJpb3JpdHlf
c2VsZigpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BM
VUdJTl9GT1JNQVRfUkVBREVSKQorICAgIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24o
KS5zZXRXZWJNRm9ybWF0UmVhZGVyRW5hYmxlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLndlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKCkpOworI2VuZGlmCisKICAgICBp
ZiAoIXBhcmFtZXRlcnMubWVkaWFNSU1FVHlwZXMuaXNFbXB0eSgpKQogICAgICAgICBzZXRNZWRp
YU1JTUVUeXBlcyhwYXJhbWV0ZXJzLm1lZGlhTUlNRVR5cGVzKTsKICAgICBlbHNlIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416417</attachid>
            <date>2020-12-17 06:31:34 -0800</date>
            <delta_ts>2020-12-17 08:04:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219961-20201217063134.patch</filename>
            <type>text/plain</type>
            <size>21590</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwODkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjMyMDI4ZjczZTQ1ZThl
ODdiMjdjMTIzODNlMGFjMDFkZTRkYzgxMi4uZDk1MTkwZDk0M2VkNGM0ZGM4ZGFjZDFmNDM3Yzky
NmNmZWE1MTZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTEyLTE2ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2Vi
TSBmb3JtYXQgcmVhZGVyIGRvZXNuJ3Qgd29yayB3aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5
OTYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjM5OTAxND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXb3JrIGFyb3VuZCBhIGJ1ZyB0aGF0IG1h
a2VzIHRoZSBmb3JtYXQgcmVhZGVyIGZhaWwgdG8gbG9hZCB3aGVuIHRoZSBBVlVSTEFzc2V0T3V0
T2ZCYW5kTUlNRVR5cGVLZXkKKyAgICAgICAgaXMgaW5jbHVkZWQgaW4gdGhlIEFWVVJMQXNzZXQg
b3B0aW9ucyBkaWN0aW9uYXJ5LiBBbHNvIGluY2x1ZGUgc29tZSBjbGVhbnVwOgorICAgICAgICAt
IE1vdmUgdGhlIGNvZGUgdG8gY2hlY2sgZm9yIFdlYk0gTUlNRSB0eXBlcyBmcm9tIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMKKyAgICAgICAgICB0byBBVkFzc2V0TUlNRVR5cGVD
YWNoZS4KKyAgICAgICAgLSBEb24ndCB1c2UgUnVudGltZUVuYWJsZWRGZWF0dXJlcyBpbiBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLgorICAgICAgICAtIFJlZ2lzdGVyIHRoZSBX
ZWJNIGZvcm1hdCByZWFkZXIgd2hlbiBjcmVhdGluZyBhbiBBVlVSTEFzc2V0IGZvciBhIFdlYk0g
dXJsIGluc3RlYWQKKyAgICAgICAgICBvZiB3aGVuIGNoZWNraW5nIHRoZSBNSU1FIHR5cGUuCisg
ICAgICAgIC0gQ2xlYW51cCBXZWJNICJjb2RlY3MiIHBhcmFtZXRlciBwYXJzaW5nLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBl
Q2FjaGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9B
VkFzc2V0TUlNRVR5cGVDYWNoZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXNzZXRNSU1FVHlw
ZUNhY2hlOjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVZBc3Nl
dE1JTUVUeXBlQ2FjaGU6OnN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzZXRXZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnJlZ2lzdGVyRm9y
bWF0UmVhZGVySWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkQWR2ZXJ0aXNl
T3V0T2ZCYW5kTUlNRVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGVBbmRDb2Rl
Y3MpOgorICAgICAgICAoV2ViQ29yZTo6ZW5zdXJlRm9ybWF0UmVhZGVySXNSZWdpc3RlcmVkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzRm9ybWF0UmVhZGVyQXZhaWxhYmxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJz
ZXJXZWJNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OnNl
dFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
clBhcnNlcldlYk06OndlYm1NSU1FVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyUGFyc2VyV2ViTTo6aXNXZWJNRm9ybWF0UmVhZGVyQXZhaWxhYmxlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0u
aDoKKwogMjAyMC0xMi0xNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBNYWtlIEZyYW1lVmlldzo6bV9jdXN0b21TaXplRm9yUmVzaXplRXZlbnQgYW4g
T3B0aW9uYWw8SW50U2l6ZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTg4NzMxYzk0YzQ3MTA4Y2Q2Njk5YWU2NTM5
MTM5ZDMxOGNlZTgzYi4uYTA0Yjk4YTE5NmQxMzliNDEzNzdiOTk3YjUxNmVmMzBlYjk1MjFjNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0xMi0xNiAgRXJpYyBDYXJsc29uICA8ZXJp
Yy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFdlYk0gZm9ybWF0IHJlYWRl
ciBkb2Vzbid0IHdvcmsgd2l0aCBhIHVybCBpbiBhIDxzb3VyY2U+IGVsZW1lbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTk2MQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzIzOTkwMTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMjAtMTItMTUgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQ2FsbHMgdG8gc2V0
Rml4ZWRMYXlvdXRTaXplKCkgc2hvdWxkIG5vdCBiZSBpbnNpZGUgRU5BQkxFKFRFWFRfQVVUT1NJ
WklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oCmlu
ZGV4IDkzMTc5ZjI4ZDQwYzc1Y2Q4NDI3Y2IxNDZhODIwMzQyYjJiOGM1YTUuLjk3MzU5NDZkMzc0
NzYzYzUxNmFjY2Q5ZGMxOTQ4YjFlYjUyNjY5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaApAQCAtNDUsNiArNDUsOCBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmKSBmaW5hbDsKIAog
ICAgIHZvaWQgYWRkU3VwcG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKyAgICAK
KyAgICB2b2lkIHNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKGJvb2wpOwogCiBwcml2YXRlOgog
ICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxBVkFzc2V0TUlNRVR5cGVDYWNoZT47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9B
VkFzc2V0TUlNRVR5cGVDYWNoZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tCmluZGV4IDg3MDY2MjE0
NjZiNTk1N2Q4NTdjOGU2YTk3YzkxZWE2M2Y0NjAxZjkuLmZlMDUxNTY2NTA0MzFjMzExYTU2YTE3
ODVlNWIwZDc3OTA2MDU5ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRN
SU1FVHlwZUNhY2hlLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpCiAK
ICNpbXBvcnQgIkNvbnRlbnRUeXBlLmgiCisjaW1wb3J0ICJTb3VyY2VCdWZmZXJQYXJzZXJXZWJN
LmgiCiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9j
b2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgogCkBAIC02Myw3ICs2NCwxMSBAQCBib29sIEFW
QXNzZXRNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUoY29uc3QgQ29udGVudFR5
cGUmIHR5cGUpCiB7CiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogICAg
IEFTU0VSVChpc0F2YWlsYWJsZSgpKTsKLSAgICByZXR1cm4gW1BBTDo6Z2V0QVZVUkxBc3NldENs
YXNzKCkgaXNQbGF5YWJsZUV4dGVuZGVkTUlNRVR5cGU6dHlwZS5yYXcoKV07CisgICAgaWYgKFtQ
QUw6OmdldEFWVVJMQXNzZXRDbGFzcygpIGlzUGxheWFibGVFeHRlbmRlZE1JTUVUeXBlOnR5cGUu
cmF3KCldKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChTb3VyY2VCdWZmZXJQYXJz
ZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKHR5cGUpID09IE1lZGlhUGxheWVyRW51bXM6
OlN1cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQpCisgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlm
CiAKICAgICByZXR1cm4gZmFsc2U7CkBAIC05NiwzOSArMTAxLDUzIEBAIGJvb2wgQVZBc3NldE1J
TUVUeXBlQ2FjaGU6OmlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYgdHlw
ZSkKIAogY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIEFW
QXNzZXRNSU1FVHlwZUNhY2hlOjpzdGF0aWNDb250YWluZXJUeXBlTGlzdCgpCiB7Ci0gICAgc3Rh
dGljIGNvbnN0IGF1dG8gY2FjaGUgPSBtYWtlTmV2ZXJEZXN0cm95ZWQoSGFzaFNldDxTdHJpbmcs
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4gewotICAgICAgICAiYXBwbGljYXRpb24vdm5kLmFw
cGxlLm1wZWd1cmwiLAotICAgICAgICAiYXBwbGljYXRpb24veC1tcGVndXJsIiwKLSAgICAgICAg
ImF1ZGlvLzNncHAiLAotICAgICAgICAiYXVkaW8vYWFjIiwKLSAgICAgICAgImF1ZGlvL2FhY3Ai
LAotICAgICAgICAiYXVkaW8vYWlmZiIsCi0gICAgICAgICJhdWRpby9iYXNpYyIsCi0gICAgICAg
ICJhdWRpby9tcDMiLAotICAgICAgICAiYXVkaW8vbXA0IiwKLSAgICAgICAgImF1ZGlvL21wZWci
LAotICAgICAgICAiYXVkaW8vbXBlZzMiLAotICAgICAgICAiYXVkaW8vbXBlZ3VybCIsCi0gICAg
ICAgICJhdWRpby9tcGciLAotICAgICAgICAiYXVkaW8vdm5kLndhdmUiLAotICAgICAgICAiYXVk
aW8vd2F2IiwKLSAgICAgICAgImF1ZGlvL3dhdmUiLAotICAgICAgICAiYXVkaW8veC1hYWMiLAot
ICAgICAgICAiYXVkaW8veC1haWZmIiwKLSAgICAgICAgImF1ZGlvL3gtbTRhIiwKLSAgICAgICAg
ImF1ZGlvL3gtbXBlZ3VybCIsCi0gICAgICAgICJhdWRpby94LXdhdiIsCi0gICAgICAgICJ2aWRl
by8zZ3BwIiwKLSAgICAgICAgInZpZGVvLzNncHAyIiwKLSAgICAgICAgInZpZGVvL21wNCIsCi0g
ICAgICAgICJ2aWRlby9tcGVnIiwKLSAgICAgICAgInZpZGVvL21wZWcyIiwKLSAgICAgICAgInZp
ZGVvL21wZyIsCi0gICAgICAgICJ2aWRlby9xdWlja3RpbWUiLAotICAgICAgICAidmlkZW8veC1t
NHYiLAotICAgICAgICAidmlkZW8veC1tcGVnIiwKLSAgICAgICAgInZpZGVvL3gtbXBnIiwKLSAg
ICB9KTsKKyAgICBzdGF0aWMgYXV0byBjYWNoZSA9IG1ha2VOZXZlckRlc3Ryb3llZChbdGhpc10g
eworICAgICAgICBVTlVTRURfUEFSQU0odGhpcyk7CisKKyAgICAgICAgSGFzaFNldDxTdHJpbmcs
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4gY2FjaGUgPSBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8
U3RyaW5nPiB7CisgICAgICAgICAgICAiYXBwbGljYXRpb24vdm5kLmFwcGxlLm1wZWd1cmwiX3Ms
CisgICAgICAgICAgICAiYXBwbGljYXRpb24veC1tcGVndXJsIl9zLAorICAgICAgICAgICAgImF1
ZGlvLzNncHAiX3MsCisgICAgICAgICAgICAiYXVkaW8vYWFjIl9zLAorICAgICAgICAgICAgImF1
ZGlvL2FhY3AiX3MsCisgICAgICAgICAgICAiYXVkaW8vYWlmZiJfcywKKyAgICAgICAgICAgICJh
dWRpby9iYXNpYyJfcywKKyAgICAgICAgICAgICJhdWRpby9tcDMiX3MsCisgICAgICAgICAgICAi
YXVkaW8vbXA0Il9zLAorICAgICAgICAgICAgImF1ZGlvL21wZWciX3MsCisgICAgICAgICAgICAi
YXVkaW8vbXBlZzMiX3MsCisgICAgICAgICAgICAiYXVkaW8vbXBlZ3VybCJfcywKKyAgICAgICAg
ICAgICJhdWRpby9tcGciX3MsCisgICAgICAgICAgICAiYXVkaW8vdm5kLndhdmUiX3MsCisgICAg
ICAgICAgICAiYXVkaW8vd2F2Il9zLAorICAgICAgICAgICAgImF1ZGlvL3dhdmUiX3MsCisgICAg
ICAgICAgICAiYXVkaW8veC1hYWMiX3MsCisgICAgICAgICAgICAiYXVkaW8veC1haWZmIl9zLAor
ICAgICAgICAgICAgImF1ZGlvL3gtbTRhIl9zLAorICAgICAgICAgICAgImF1ZGlvL3gtbXBlZ3Vy
bCJfcywKKyAgICAgICAgICAgICJhdWRpby94LXdhdiJfcywKKyAgICAgICAgICAgICJ2aWRlby8z
Z3BwIl9zLAorICAgICAgICAgICAgInZpZGVvLzNncHAyIl9zLAorICAgICAgICAgICAgInZpZGVv
L21wNCJfcywKKyAgICAgICAgICAgICJ2aWRlby9tcGVnIl9zLAorICAgICAgICAgICAgInZpZGVv
L21wZWcyIl9zLAorICAgICAgICAgICAgInZpZGVvL21wZyJfcywKKyAgICAgICAgICAgICJ2aWRl
by9xdWlja3RpbWUiX3MsCisgICAgICAgICAgICAidmlkZW8veC1tNHYiX3MsCisgICAgICAgICAg
ICAidmlkZW8veC1tcGVnIl9zLAorICAgICAgICAgICAgInZpZGVvL3gtbXBnIl9zLAorICAgICAg
ICB9OworCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFU
X1JFQURFUikKKyAgICAgICAgaWYgKFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzV2ViTUZvcm1h
dFJlYWRlckF2YWlsYWJsZSgpKSB7CisgICAgICAgICAgICBhdXRvIHdlYm1UeXBlcyA9IFNvdXJj
ZUJ1ZmZlclBhcnNlcldlYk06OndlYm1NSU1FVHlwZXMoKTsKKyAgICAgICAgICAgIGNhY2hlLmFk
ZCh3ZWJtVHlwZXMuYmVnaW4oKSwgd2VibVR5cGVzLmVuZCgpKTsKKyAgICAgICAgfQorI2VuZGlm
CisKKyAgICAgICAgcmV0dXJuIGNhY2hlOworICAgIH0oKSk7CisKICAgICByZXR1cm4gY2FjaGU7
CiB9CiAKQEAgLTE1Myw2ICsxNzIsMTIgQEAgdm9pZCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6aW5p
dGlhbGl6ZUNhY2hlKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUgKICNlbmRp
ZgogfQogCit2b2lkIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzZXRXZWJNRm9ybWF0UmVhZGVyRW5h
YmxlZChib29sIGVuYWJsZWQpCit7CisgICAgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6c2V0V2Vi
TUZvcm1hdFJlYWRlckVuYWJsZWQoZW5hYmxlZCk7Cit9CisKKwogfQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCmluZGV4IGQ2NGE3MjU2MmEyNGMwZDhhMWRiYmEzMDljZTUxNWM4Y2Zl
YzRhZTEuLmY0Yjg3MTY2NzI2MjlmNjMyNWE2MGIxZDM5ZjdjNzg0YmY0OTk4YjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQpAQCAtNTYsNyArNTYsNiBAQAogI2ltcG9ydCAiUGl4ZWxCdWZmZXJD
b25mb3JtZXJDVi5oIgogI2ltcG9ydCAiUGxhdGZvcm1UaW1lUmFuZ2VzLmgiCiAjaW1wb3J0ICJS
dW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKLSNpbXBvcnQgIlJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaCIKICNpbXBvcnQgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW1wb3J0ICJTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlTWFjLmgiCiAjaW1wb3J0ICJTaGFyZWRCdWZmZXIuaCIKQEAgLTEwMCw3ICs5
OSw2IEBACiAjaW1wb3J0IDx3dGYvT1NPYmplY3RQdHIuaD4KICNpbXBvcnQgPHd0Zi9VUkwuaD4K
ICNpbXBvcnQgPHd0Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgotI2ltcG9ydCA8d3RmL3NwaS9kYXJ3
aW4vT1NWYXJpYW50U1BJLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW1wb3J0
IDx3dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaD4KIApAQCAtMjcwLDYgKzI2OCwyMCBAQCBz
dGF0aWMgZGlzcGF0Y2hfcXVldWVfdCBnbG9iYWxQdWxsRGVsZWdhdGVRdWV1ZSgpCiAgICAgcmV0
dXJuIGdsb2JhbFF1ZXVlOwogfQogCitzdGF0aWMgdm9pZCByZWdpc3RlckZvcm1hdFJlYWRlcklm
TmVjZXNzYXJ5KCkKK3sKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJ
Tl9GT1JNQVRfUkVBREVSKQorICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOwor
ICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXnsKKyAgICAgICAgLy8gTGlrZSB3ZSBkbyBm
b3Igb3RoZXIgbWVkaWEgZm9ybWF0cywgYWxsb3cgdGhlIGZvcm1hdCByZWFkZXIgdG8gcnVuIGlu
IHRoZSBXZWJDb250ZW50IG9yIEdQVSBwcm9jZXNzCisgICAgICAgIC8vICh3aGljaCBpcyBhbHJl
YWR5IGFwcHJvcHJpYXRlbHkgc2FuZGJveGVkKSByYXRoZXIgdGhhbiBpbiBhIHNlcGFyYXRlIE1l
ZGlhVG9vbGJveCBYUEMgc2VydmljZS4KKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNJbkdQVVBy
b2Nlc3MoKSB8fCBpc0luV2ViUHJvY2VzcygpKTsKKyAgICAgICAgTVRSZWdpc3RlclBsdWdpbkZv
cm1hdFJlYWRlckJ1bmRsZURpcmVjdG9yeSgoX19icmlkZ2UgQ0ZVUkxSZWYpTlNCdW5kbGUubWFp
bkJ1bmRsZS5idWlsdEluUGx1Z0luc1VSTCk7CisgICAgICAgIE1UUGx1Z2luRm9ybWF0UmVhZGVy
RGlzYWJsZVNhbmRib3hpbmcoKTsKKyAgICB9KTsKKyNlbmRpZgorfQorCiBjbGFzcyBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpGYWN0b3J5IGZpbmFsIDogcHVibGljIE1lZGlh
UGxheWVyRmFjdG9yeSB7CiBwcml2YXRlOgogICAgIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5n
aW5lSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gTWVkaWFQbGF5
ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpBVkZvdW5kYXRpb247IH07CkBAIC04MzMs
NyArODQ1LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3Jl
YXRlQVZBc3NldEZvclVSTChjb25zdCBVUkwmIHVybCwgUmV0CiAjZW5kaWYKIAogICAgIGF1dG8g
dHlwZSA9IHBsYXllcigpLT5jb250ZW50TUlNRVR5cGUoKTsKLSAgICBpZiAoUEFMOjpjYW5Mb2Fk
X0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0T3V0T2ZCYW5kTUlNRVR5cGVLZXkoKSAmJiAhdHlwZS5p
c0VtcHR5KCkgJiYgIXBsYXllcigpLT5jb250ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21FeHRl
bnNpb24oKSkgeworCisgICAgLy8gRG9uJ3QgYWR2ZXJ0aXNlIFdlYk0gTUlNRSB0eXBlcyBvciB0
aGUgZm9ybWF0IHJlYWRlciB3b24ndCBiZSBsb2FkZWQgdW50aWwgcmRhcjovLzcyNDA1MTI3IGlz
IGZpeGVkLgorICAgIGF1dG8gd2lsbFVzZVdlYk1Gb3JtYXRSZWFkZXIgPSBTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjppc1dlYk1Gb3JtYXRSZWFkZXJBdmFpbGFibGUoKSAmJiAoZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZSh0eXBlLCAidmlkZW8vd2VibSIpIHx8IGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uo
dHlwZSwgImF1ZGlvL3dlYm0iKSk7CisKKyAgICBpZiAoUEFMOjpjYW5Mb2FkX0FWRm91bmRhdGlv
bl9BVlVSTEFzc2V0T3V0T2ZCYW5kTUlNRVR5cGVLZXkoKSAmJiAhdHlwZS5pc0VtcHR5KCkgJiYg
IXBsYXllcigpLT5jb250ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21FeHRlbnNpb24oKSAmJiAh
d2lsbFVzZVdlYk1Gb3JtYXRSZWFkZXIpIHsKICAgICAgICAgYXV0byBjb2RlY3MgPSBwbGF5ZXIo
KS0+Y29udGVudFR5cGVDb2RlY3MoKTsKICAgICAgICAgaWYgKCFjb2RlY3MuaXNFbXB0eSgpKSB7
CiAgICAgICAgICAgICBOU1N0cmluZyAqdHlwZVN0cmluZyA9IFtOU1N0cmluZyBzdHJpbmdXaXRo
Rm9ybWF0OkAiJUA7IGNvZGVjcz1cIiVAXCIiLCAoTlNTdHJpbmcgKil0eXBlLCAoTlNTdHJpbmcg
Kiljb2RlY3NdOwpAQCAtODc2LDYgKzg5Miw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTChjb25zdCBVUkwmIHVybCwgUmV0CiAg
ICAgICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6QE5PIGZvcktleTpBVlVSTEFzc2V0VXNlc05v
UGVyc2lzdGVudENhY2hlS2V5XTsKICAgICB9CiAKKyAgICBpZiAod2lsbFVzZVdlYk1Gb3JtYXRS
ZWFkZXIpCisgICAgICAgIHJlZ2lzdGVyRm9ybWF0UmVhZGVySWZOZWNlc3NhcnkoKTsKKwogICAg
IE5TVVJMICpjb2NvYVVSTCA9IGNhbm9uaWNhbFVSTCh1cmwpOwogICAgIG1fYXZBc3NldCA9IGFk
b3B0TlMoW1BBTDo6YWxsb2NBVlVSTEFzc2V0SW5zdGFuY2UoKSBpbml0V2l0aFVSTDpjb2NvYVVS
TCBvcHRpb25zOm9wdGlvbnMuZ2V0KCldKTsKIApAQCAtMTY2NywzOSArMTY4Niw2IEBAIHN0YXRp
YyBib29sIGtleVN5c3RlbUlzU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQogfQog
I2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JN
QVRfUkVBREVSKQotc3RhdGljIHZvaWQgZW5zdXJlRm9ybWF0UmVhZGVySXNSZWdpc3RlcmVkKCkK
LXsKLSAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKLSAgICBkaXNwYXRjaF9v
bmNlKCZvbmNlVG9rZW4sIF57Ci0gICAgICAgIC8vIExpa2Ugd2UgZG8gZm9yIG90aGVyIG1lZGlh
IGZvcm1hdHMsIGFsbG93IHRoZSBmb3JtYXQgcmVhZGVyIHRvIHJ1biBpbiB0aGUgV2ViQ29udGVu
dCBvciBHUFUgcHJvY2VzcwotICAgICAgICAvLyAod2hpY2ggaXMgYWxyZWFkeSBhcHByb3ByaWF0
ZWx5IHNhbmRib3hlZCkgcmF0aGVyIHRoYW4gaW4gYSBzZXBhcmF0ZSBNZWRpYVRvb2xib3ggWFBD
IHNlcnZpY2UuCi0gICAgICAgIFJFTEVBU0VfQVNTRVJUKGlzSW5HUFVQcm9jZXNzKCkgfHwgaXNJ
bldlYlByb2Nlc3MoKSk7Ci0gICAgICAgIE1UUmVnaXN0ZXJQbHVnaW5Gb3JtYXRSZWFkZXJCdW5k
bGVEaXJlY3RvcnkoKF9fYnJpZGdlIENGVVJMUmVmKU5TQnVuZGxlLm1haW5CdW5kbGUuYnVpbHRJ
blBsdWdJbnNVUkwpOwotICAgICAgICBNVFBsdWdpbkZvcm1hdFJlYWRlckRpc2FibGVTYW5kYm94
aW5nKCk7Ci0gICAgfSk7Ci19Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYm
IEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCi1zdGF0aWMgYm9vbCBpc0Zvcm1hdFJlYWRl
ckF2YWlsYWJsZSgpCi17Ci0gICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRG
ZWF0dXJlcygpLndlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotI2lmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotICAgIC8vIEZJWE1FIChyZGFyOi8v
NzIzMjA0MTkpOiBJZiBXZWJLaXQgd2FzIGJ1aWx0IHdpdGggYWQtaG9jIGNvZGUtc2lnbmluZywK
LSAgICAvLyBDb3JlTWVkaWEgd2lsbCBvbmx5IGxvYWQgdGhlIGZvcm1hdCByZWFkZXIgcGx1Zy1p
biB3aGVuIGEgdXNlciBkZWZhdWx0Ci0gICAgLy8gaXMgc2V0IG9uIEFwcGxlIGludGVybmFsIE9T
cy4gVGhhdCBtZWFucyB3ZSBjYW5ub3QgY3VycmVudGx5IHN1cHBvcnQgV2ViTQotICAgIC8vIGlu
IHB1YmxpYyBTREsgYnVpbGRzIG9uIGN1c3RvbWVyIE9Tcy4KLSAgICBpZiAoIW9zX3ZhcmlhbnRf
YWxsb3dzX2ludGVybmFsX3NlY3VyaXR5X3BvbGljaWVzKCJjb20uYXBwbGUuV2ViS2l0IikpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0jZW5k
aWYKLQogTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0
UGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAt
MTcxMSwxOSArMTY5Nyw2IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlQW5kQ29kCiAgICAgICAgIHJldHVy
biBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKICNlbmRpZgogCi0j
aWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikK
LSAgICBpZiAoaXNGb3JtYXRSZWFkZXJBdmFpbGFibGUoKSkgewotICAgICAgICBhdXRvIHN1cHBv
cnRlZCA9IFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQocGFy
YW1ldGVycy50eXBlKTsKLSAgICAgICAgaWYgKHN1cHBvcnRlZCAhPSBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZCkgewotICAgICAgICAgICAgZW5zdXJlRm9ybWF0UmVh
ZGVySXNSZWdpc3RlcmVkKCk7Ci0gICAgICAgICAgICBpZiAoc3VwcG9ydGVkID09IE1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGU6Ok1heUJlU3VwcG9ydGVkKQotICAgICAgICAgICAgICAgIHJldHVy
biBzdXBwb3J0ZWQ7Ci0gICAgICAgICAgICBpZiAoY29udGVudFR5cGVNZWV0c0hhcmR3YXJlRGVj
b2RlUmVxdWlyZW1lbnRzKHBhcmFtZXRlcnMudHlwZSwgcGFyYW1ldGVycy5jb250ZW50VHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpKQotICAgICAgICAgICAgICAgIHJldHVybiBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRlZDsKLSAgICAgICAgfQotICAgIH0KLSNlbmRp
ZgotCiAgICAgYXV0byBzdXBwb3J0ZWQgPSBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9u
KCkuY2FuRGVjb2RlVHlwZShwYXJhbWV0ZXJzLnR5cGUucmF3KCkpOwogICAgIGlmIChzdXBwb3J0
ZWQgIT0gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQpCiAgICAgICAgIHJl
dHVybiBzdXBwb3J0ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwCmluZGV4IGMw
NDNiZTU2OTJmNWZlYjZlNWIwYWRmZjQ2NjBmMWQ1MWRmYzIzMjguLjhjYjYxOGVkOWY0OWQxOTVm
MDU4ZGY3MmJkZmE1YjlkNGE3ZmEyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0u
Y3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8d3RmL1N0ZExpc3QuaD4KICNpbmNsdWRl
IDx3dGYvY2YvVHlwZUNhc3RzQ0YuaD4KICNpbmNsdWRlIDx3dGYvZGFyd2luL1dlYWtMaW5raW5n
Lmg+CisjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vT1NWYXJpYW50U1BJLmg+CiAKICNpbmNsdWRl
ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogI2luY2x1ZGUgIlZpZGVvVG9vbGJveFNvZnRMaW5rLmgi
CkBAIC00NDMsMTQgKzQ0NCw2MiBAQCBwcml2YXRlOgogICAgIHdlYm06OlRyYWNrRW50cnkgbV90
cmFjazsKIH07CiAKK2Jvb2wgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6bV9mb3JtYXRSZWFkZXJF
bmFibGVkID0gZmFsc2U7CisKK3ZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6c2V0V2ViTUZv
cm1hdFJlYWRlckVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIG1fZm9ybWF0UmVhZGVyRW5h
YmxlZCA9IGVuYWJsZWQ7Cit9CisKK2NvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNl
bnNpdGl2ZUhhc2g+JiBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjp3ZWJtTUlNRVR5cGVzKCkKK3sK
KyAgICBzdGF0aWMgYXV0byB0eXBlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChbXSB7CisKKyAgICAg
ICAgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4gdHlwZXM7CisKKyNp
ZiBFTkFCTEUoVlA5KQorICAgICAgICB0eXBlcy5hZGQoInZpZGVvL3dlYm0iKTsKKyNlbmRpZgor
I2lmIEVOQUJMRShWT1JCSVMpIHx8IEVOQUJMRShPUFVTKQorICAgICAgICB0eXBlcy5hZGQoImF1
ZGlvL3dlYm0iKTsKKyNlbmRpZgorCisgICAgICAgIHJldHVybiB0eXBlczsKKyAgICB9KCkpOwor
CisgICAgcmV0dXJuIHR5cGVzOworfQorCitib29sIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Omlz
V2ViTUZvcm1hdFJlYWRlckF2YWlsYWJsZSgpCit7CisjaWYgSEFWRShNVF9QTFVHSU5fRk9STUFU
X1JFQURFUikKKyAgICBpZiAoIWlzV2VibVBhcnNlckF2YWlsYWJsZSgpIHx8ICFtX2Zvcm1hdFJl
YWRlckVuYWJsZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworI2lmICFVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQorICAgIC8vIEZJWE1FIChyZGFyOi8vNzIzMjA0MTkpOiBJZiBXZWJLaXQgd2Fz
IGJ1aWx0IHdpdGggYWQtaG9jIGNvZGUtc2lnbmluZywKKyAgICAvLyBDb3JlTWVkaWEgd2lsbCBv
bmx5IGxvYWQgdGhlIGZvcm1hdCByZWFkZXIgcGx1Zy1pbiB3aGVuIGEgdXNlciBkZWZhdWx0Cisg
ICAgLy8gaXMgc2V0IG9uIEFwcGxlIGludGVybmFsIE9Tcy4gVGhhdCBtZWFucyB3ZSBjYW5ub3Qg
Y3VycmVudGx5IHN1cHBvcnQgV2ViTQorICAgIC8vIGluIHB1YmxpYyBTREsgYnVpbGRzIG9uIGN1
c3RvbWVyIE9Tcy4KKyAgICBpZiAoIW9zX3ZhcmlhbnRfYWxsb3dzX2ludGVybmFsX3NlY3VyaXR5
X3BvbGljaWVzKCJjb20uYXBwbGUuV2ViS2l0IikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNl
bmRpZgorCisgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKworICAgIHJldHVybiBmYWxzZTsKK30K
KwogTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06
OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY29uc3QgQ29udGVudFR5cGUmIHR5cGUpCiB7CiAjaWYg
RU5BQkxFKFZQOSkgfHwgRU5BQkxFKFZPUkJJUykgfHwgRU5BQkxFKE9QVVMpCiAgICAgaWYgKCFp
c1dlYm1QYXJzZXJBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6
OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKLSAgICBib29sIGlzQXVkaW9Db250YWlu
ZXJUeXBlID0gV1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlKHR5cGUuY29udGFpbmVyVHlwZSgp
LCAiYXVkaW8vd2VibSIpOwotICAgIGJvb2wgaXNWaWRlb0NvbnRhaW5lclR5cGUgPSBXVEY6OmVx
dWFsSWdub3JpbmdBU0NJSUNhc2UodHlwZS5jb250YWluZXJUeXBlKCksICJ2aWRlby93ZWJtIik7
CisgICAgYXV0byBjb250YWluZXJUeXBlID0gdHlwZS5jb250YWluZXJUeXBlKCk7CisgICAgYm9v
bCBpc0F1ZGlvQ29udGFpbmVyVHlwZSA9IFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb250
YWluZXJUeXBlLCAiYXVkaW8vd2VibSIpOworICAgIGJvb2wgaXNWaWRlb0NvbnRhaW5lclR5cGUg
PSBXVEY6OmVxdWFsSWdub3JpbmdBU0NJSUNhc2UoY29udGFpbmVyVHlwZSwgInZpZGVvL3dlYm0i
KTsKICAgICBpZiAoIWlzQXVkaW9Db250YWluZXJUeXBlICYmICFpc1ZpZGVvQ29udGFpbmVyVHlw
ZSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RT
dXBwb3J0ZWQ7CiAgICAgCkBAIC00NzMsMjIgKzUyMiwxOCBAQCBNZWRpYVBsYXllckVudW1zOjpT
dXBwb3J0c1R5cGUgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRl
ZChjbwogICAgIGlmICghaXNBbnlDb2RlY0F2YWlsYWJsZSkKICAgICAgICAgcmV0dXJuIE1lZGlh
UGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKLSAgICBTdHJpbmcg
Y29kZWNzUGFyYW1ldGVyID0gdHlwZS5wYXJhbWV0ZXIoQ29udGVudFR5cGU6OmNvZGVjc1BhcmFt
ZXRlcigpKTsKLSAgICBpZiAoIWNvZGVjc1BhcmFtZXRlcikKLSAgICAgICAgcmV0dXJuIE1lZGlh
UGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6TWF5QmVTdXBwb3J0ZWQ7Ci0KLSAgICBhdXRvIHNw
bGl0UmVzdWx0cyA9IFN0cmluZ1ZpZXcoY29kZWNzUGFyYW1ldGVyKS5zcGxpdCgnLCcpOwotICAg
IGlmIChzcGxpdFJlc3VsdHMuYmVnaW4oKSA9PSBzcGxpdFJlc3VsdHMuZW5kKCkpCisgICAgYXV0
byBjb2RlY3MgPSB0eXBlLmNvZGVjcygpOworICAgIGlmIChjb2RlY3MuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpNYXlCZVN1cHBvcnRl
ZDsKIAotICAgIGZvciAoYXV0byBzcGxpdCA6IHNwbGl0UmVzdWx0cykgeworICAgIGZvciAoYXV0
byYgY29kZWMgOiBjb2RlY3MpIHsKICNpZiBFTkFCTEUoVlA5KQotICAgICAgICBpZiAoc3BsaXQu
c3RhcnRzV2l0aCgidnAwOSIpIHx8IHNwbGl0LnN0YXJ0c1dpdGgoInZwMDgiKSB8fCBlcXVhbChz
cGxpdCwgInZwOCIpIHx8IGVxdWFsKHNwbGl0LCAidnA5IikpIHsKKyAgICAgICAgaWYgKGNvZGVj
LnN0YXJ0c1dpdGgoInZwMDkiKSB8fCBjb2RlYy5zdGFydHNXaXRoKCJ2cDA4IikgfHwgZXF1YWwo
Y29kZWMsICJ2cDgiKSB8fCBlcXVhbChjb2RlYywgInZwOSIpKSB7CiAKICAgICAgICAgICAgIGlm
ICghaXNWUDlEZWNvZGVyQXZhaWxhYmxlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE1lZGlh
UGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKLSAgICAgICAgICAg
IGF1dG8gY29kZWNQYXJhbWV0ZXJzID0gcGFyc2VWUENvZGVjUGFyYW1ldGVycyhzcGxpdCk7Cisg
ICAgICAgICAgICBhdXRvIGNvZGVjUGFyYW1ldGVycyA9IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMo
Y29kZWMpOwogICAgICAgICAgICAgaWYgKCFjb2RlY1BhcmFtZXRlcnMpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7
CiAKQEAgLTUwMCw3ICs1NDUsNyBAQCBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgU291
cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZChjbwogI2VuZGlmIC8v
IEVOQUJMRShWUDkpCiAKICNpZiBFTkFCTEUoVk9SQklTKQotICAgICAgICBpZiAoc3BsaXQgPT0g
InZvcmJpcyIpIHsKKyAgICAgICAgaWYgKGNvZGVjID09ICJ2b3JiaXMiKSB7CiAgICAgICAgICAg
ICBpZiAoIWlzVm9yYmlzRGVjb2RlckF2YWlsYWJsZSgpKQogICAgICAgICAgICAgICAgIHJldHVy
biBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCkBAIC01
MDksNyArNTU0LDcgQEAgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIFNvdXJjZUJ1ZmZl
clBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY28KICNlbmRpZiAvLyBFTkFCTEUo
Vk9SQklTKQogCiAjaWYgRU5BQkxFKE9QVVMpCi0gICAgICAgIGlmIChzcGxpdCA9PSAib3B1cyIp
IHsKKyAgICAgICAgaWYgKGNvZGVjID09ICJvcHVzIikgewogICAgICAgICAgICAgaWYgKCFpc09w
dXNEZWNvZGVyQXZhaWxhYmxlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVy
RW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBh
cnNlcldlYk0uaAppbmRleCBlY2EwM2MyMDRmYTEwMDdlNWMyNTNiNTNhMmZmNGE1MmI1Y2IxNzlj
Li4xMzJhYzgyNzEyMDMwMWFjNGFlMzAxNzgxZThmZTUyZDJhOWZkZjc4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNl
QnVmZmVyUGFyc2VyV2ViTS5oCkBAIC02MCw3ICs2MCwxMCBAQCBjbGFzcyBXRUJDT1JFX0VYUE9S
VCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNIDogcHVibGljIFNvdXJjZUJ1ZmZlclBhcnNlciwgcHJp
dmF0ZQogcHVibGljOgogICAgIGNsYXNzIFN0cmVhbWluZ1ZlY3RvclJlYWRlcjsKIAorICAgIHN0
YXRpYyBib29sIGlzV2ViTUZvcm1hdFJlYWRlckF2YWlsYWJsZSgpOworICAgIHN0YXRpYyB2b2lk
IHNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKGJvb2wpOwogICAgIHN0YXRpYyBNZWRpYVBsYXll
ckVudW1zOjpTdXBwb3J0c1R5cGUgaXNDb250ZW50VHlwZVN1cHBvcnRlZChjb25zdCBDb250ZW50
VHlwZSYpOworICAgIHN0YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5z
aXRpdmVIYXNoPiYgd2VibU1JTUVUeXBlcygpOwogICAgIHN0YXRpYyBSZWZQdHI8U291cmNlQnVm
ZmVyUGFyc2VyV2ViTT4gY3JlYXRlKGNvbnN0IENvbnRlbnRUeXBlJik7CiAKICAgICBTb3VyY2VC
dWZmZXJQYXJzZXJXZWJNKCk7CkBAIC0yNjgsNiArMjcxLDggQEAgcHJpdmF0ZToKIAogICAgIFJl
ZlB0cjxjb25zdCBXVEY6OkxvZ2dlcj4gbV9sb2dnZXI7CiAgICAgY29uc3Qgdm9pZCogbV9sb2dJ
ZGVudGlmaWVyIHsgbnVsbHB0ciB9OworICAgIAorICAgIHN0YXRpYyBib29sIG1fZm9ybWF0UmVh
ZGVyRW5hYmxlZDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggYzZkODlkMDk3NjM1MzFjMzNlZGIyOGJmM2EwMDgxMzgyMDQwMmRi
Ni4uYTRmZjRiYTAyYTlkMzJmMzA0OGFkOTU5YjQ2M2U3NDJjMjdkMzM1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM0MSw2ICszNDEsMTAg
QEAKICNlbmRpZgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1U
X1BMVUdJTl9GT1JNQVRfUkVBREVSKQorI2luY2x1ZGUgPFdlYkNvcmUvQVZBc3NldE1JTUVUeXBl
Q2FjaGUuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTM4NDMsNiArMzg0NywxMCBAQCB2b2lk
IFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0
b3JlKQogICAgICAgICAgICAgc2V0dGluZ3Muc2V0V2ViQXV0aGVudGljYXRpb25FbmFibGVkKHRy
dWUpOwogICAgIH0KICNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShN
VF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xl
dG9uKCkuc2V0V2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS53ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpKTsKKyNlbmRpZgogfQog
CiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggNzFkNGE5YTc4YWIwY2NlZDlkMDlh
MmY5YjQ2NjI0MTFjMDc4NGJjNy4uMjNmODRlN2NhZjAxNmM0NDFkMjBjZTZlNTUzZjc4NGEzNjBl
YmI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tCkBAIC02OSw2ICs2OSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BlcmZvcm1hbmNl
TG9nZ2luZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TV0NvbnRl
eHRNYW5hZ2VyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N5c3RlbUJhdHRlcnkuaD4KICNpbXBvcnQg
PFdlYkNvcmUvU3lzdGVtU291bmRNYW5hZ2VyLmg+CkBAIC0zMjgsNiArMzI5LDEwIEBAIHZvaWQg
V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzJiBwYXJhCiAgICAgcHRocmVhZF9zZXRfZml4ZWRwcmlvcml0eV9zZWxmKCk7
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZP
Uk1BVF9SRUFERVIpCisgICAgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLnNldFdl
Yk1Gb3JtYXRSZWFkZXJFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkud2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKSk7CisjZW5kaWYKKwogICAgIGlmICghcGFy
YW1ldGVycy5tZWRpYU1JTUVUeXBlcy5pc0VtcHR5KCkpCiAgICAgICAgIHNldE1lZGlhTUlNRVR5
cGVzKHBhcmFtZXRlcnMubWVkaWFNSU1FVHlwZXMpOwogICAgIGVsc2Ugewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416419</attachid>
            <date>2020-12-17 08:04:23 -0800</date>
            <delta_ts>2020-12-17 08:41:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219961-20201217080422.patch</filename>
            <type>text/plain</type>
            <size>21755</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwODkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjMyMDI4ZjczZTQ1ZThl
ODdiMjdjMTIzODNlMGFjMDFkZTRkYzgxMi4uMjhlNjg0N2E1ZWU5ZjExMWEzMmQ5NDBkZDVlMWQx
MGMwZmU2ODNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTEyLTE2ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2Vi
TSBmb3JtYXQgcmVhZGVyIGRvZXNuJ3Qgd29yayB3aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5
OTYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjM5OTAxND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBBbmR5IEVzdGVzLgorCisgICAgICAgIFdvcmsgYXJvdW5kIGEgYnVnIHRoYXQgbWFrZXMg
dGhlIGZvcm1hdCByZWFkZXIgZmFpbCB0byBsb2FkIHdoZW4gdGhlIEFWVVJMQXNzZXRPdXRPZkJh
bmRNSU1FVHlwZUtleQorICAgICAgICBpcyBpbmNsdWRlZCBpbiB0aGUgQVZVUkxBc3NldCBvcHRp
b25zIGRpY3Rpb25hcnkuIEFsc28gaW5jbHVkZSBzb21lIGNsZWFudXA6CisgICAgICAgIC0gTW92
ZSB0aGUgY29kZSB0byBjaGVjayBmb3IgV2ViTSBNSU1FIHR5cGVzIGZyb20gTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQworICAgICAgICAgIHRvIEFWQXNzZXRNSU1FVHlwZUNhY2hl
LgorICAgICAgICAtIERvbid0IHVzZSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzIGluIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuCisgICAgICAgIC0gUmVnaXN0ZXIgdGhlIFdlYk0g
Zm9ybWF0IHJlYWRlciB3aGVuIGNyZWF0aW5nIGFuIEFWVVJMQXNzZXQgZm9yIGEgV2ViTSB1cmwg
aW5zdGVhZAorICAgICAgICAgIG9mIHdoZW4gY2hlY2tpbmcgdGhlIE1JTUUgdHlwZS4KKyAgICAg
ICAgLSBDbGVhbnVwIFdlYk0gImNvZGVjcyIgcGFyYW1ldGVyIHBhcnNpbmcuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNo
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNz
ZXRNSU1FVHlwZUNhY2hlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2Fj
aGU6OmNhbkRlY29kZUV4dGVuZGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlN
RVR5cGVDYWNoZTo6c3RhdGljQ29udGFpbmVyVHlwZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6
QVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6cmVnaXN0ZXJGb3JtYXRS
ZWFkZXJJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRBZHZlcnRpc2VPdXRP
ZkJhbmRNSU1FVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6
CisgICAgICAgIChXZWJDb3JlOjplbnN1cmVGb3JtYXRSZWFkZXJJc1JlZ2lzdGVyZWQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNGb3JtYXRSZWFkZXJBdmFpbGFibGUpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldl
Yk0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6c2V0V2Vi
TUZvcm1hdFJlYWRlckVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6d2VibU1JTUVUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjppc1dlYk1Gb3JtYXRSZWFkZXJBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oOgor
CiAyMDIwLTEyLTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1ha2UgRnJhbWVWaWV3OjptX2N1c3RvbVNpemVGb3JSZXNpemVFdmVudCBhbiBPcHRp
b25hbDxJbnRTaXplPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlODg3MzFjOTRjNDcxMDhjZDY2OTlhZTY1MzkxMzlk
MzE4Y2VlODNiLi5jNzk0Mjk3ZDEzNjVmZmY4MjNmOTA5MTgwOThiNzNjMTM0NDY2YjI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEyLTE2ICBFcmljIENhcmxzb24gIDxlcmljLmNh
cmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViTSBmb3JtYXQgcmVhZGVyIGRv
ZXNuJ3Qgd29yayB3aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxlbWVudAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5OTYxCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83MjM5OTAxND4KKworICAgICAgICBSZXZpZXdlZCBieSBBbmR5IEVzdGVzLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBs
YXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIwLTEyLTE1ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENhbGxzIHRvIHNldEZpeGVkTGF5
b3V0U2l6ZSgpIHNob3VsZCBub3QgYmUgaW5zaWRlIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaAppbmRleCA5MzE3
OWYyOGQ0MGM3NWNkODQyN2NiMTQ2YTgyMDM0MmIyYjhjNWE1Li45NzM1OTQ2ZDM3NDc2M2M1MTZh
Y2NkOWRjMTk0OGIxZWI1MjY2OWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNz
ZXRNSU1FVHlwZUNhY2hlLmgKQEAgLTQ1LDYgKzQ1LDggQEAgcHVibGljOgogICAgIGJvb2wgaXNV
bnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJikgZmluYWw7CiAKICAgICB2b2lk
IGFkZFN1cHBvcnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisgICAgCisgICAgdm9p
ZCBzZXRXZWJNRm9ybWF0UmVhZGVyRW5hYmxlZChib29sKTsKIAogcHJpdmF0ZToKICAgICBmcmll
bmQgTmV2ZXJEZXN0cm95ZWQ8QVZBc3NldE1JTUVUeXBlQ2FjaGU+OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1J
TUVUeXBlQ2FjaGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQppbmRleCA4NzA2NjIxNDY2YjU5NTdk
ODU3YzhlNmE5N2M5MWVhNjNmNDYwMWY5Li5mZTA1MTU2NjUwNDMxYzMxMWE1NmExNzg1ZTViMGQ3
NzkwNjA1OWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVD
YWNoZS5tbQpAQCAtMjksNiArMjksNyBAQAogI2lmIFBMQVRGT1JNKENPQ09BKQogCiAjaW1wb3J0
ICJDb250ZW50VHlwZS5oIgorI2ltcG9ydCAiU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oIgogI2lt
cG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY29jb2EvQVZG
b3VuZGF0aW9uU29mdExpbmsuaD4KIApAQCAtNjMsNyArNjQsMTEgQEAgYm9vbCBBVkFzc2V0TUlN
RVR5cGVDYWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBl
KQogewogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKICAgICBBU1NFUlQo
aXNBdmFpbGFibGUoKSk7Ci0gICAgcmV0dXJuIFtQQUw6OmdldEFWVVJMQXNzZXRDbGFzcygpIGlz
UGxheWFibGVFeHRlbmRlZE1JTUVUeXBlOnR5cGUucmF3KCldOworICAgIGlmIChbUEFMOjpnZXRB
VlVSTEFzc2V0Q2xhc3MoKSBpc1BsYXlhYmxlRXh0ZW5kZWRNSU1FVHlwZTp0eXBlLnJhdygpXSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6
aXNDb250ZW50VHlwZVN1cHBvcnRlZCh0eXBlKSA9PSBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0
c1R5cGU6OklzU3VwcG9ydGVkKQorICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogCiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtOTYsMzkgKzEwMSw1MyBAQCBib29sIEFWQXNzZXRNSU1FVHlwZUNh
Y2hlOjppc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiAKIGNv
bnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBBVkFzc2V0TUlN
RVR5cGVDYWNoZTo6c3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKQogewotICAgIHN0YXRpYyBjb25z
dCBhdXRvIGNhY2hlID0gbWFrZU5ldmVyRGVzdHJveWVkKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNh
c2VJbnNlbnNpdGl2ZUhhc2g+IHsKLSAgICAgICAgImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5tcGVn
dXJsIiwKLSAgICAgICAgImFwcGxpY2F0aW9uL3gtbXBlZ3VybCIsCi0gICAgICAgICJhdWRpby8z
Z3BwIiwKLSAgICAgICAgImF1ZGlvL2FhYyIsCi0gICAgICAgICJhdWRpby9hYWNwIiwKLSAgICAg
ICAgImF1ZGlvL2FpZmYiLAotICAgICAgICAiYXVkaW8vYmFzaWMiLAotICAgICAgICAiYXVkaW8v
bXAzIiwKLSAgICAgICAgImF1ZGlvL21wNCIsCi0gICAgICAgICJhdWRpby9tcGVnIiwKLSAgICAg
ICAgImF1ZGlvL21wZWczIiwKLSAgICAgICAgImF1ZGlvL21wZWd1cmwiLAotICAgICAgICAiYXVk
aW8vbXBnIiwKLSAgICAgICAgImF1ZGlvL3ZuZC53YXZlIiwKLSAgICAgICAgImF1ZGlvL3dhdiIs
Ci0gICAgICAgICJhdWRpby93YXZlIiwKLSAgICAgICAgImF1ZGlvL3gtYWFjIiwKLSAgICAgICAg
ImF1ZGlvL3gtYWlmZiIsCi0gICAgICAgICJhdWRpby94LW00YSIsCi0gICAgICAgICJhdWRpby94
LW1wZWd1cmwiLAotICAgICAgICAiYXVkaW8veC13YXYiLAotICAgICAgICAidmlkZW8vM2dwcCIs
Ci0gICAgICAgICJ2aWRlby8zZ3BwMiIsCi0gICAgICAgICJ2aWRlby9tcDQiLAotICAgICAgICAi
dmlkZW8vbXBlZyIsCi0gICAgICAgICJ2aWRlby9tcGVnMiIsCi0gICAgICAgICJ2aWRlby9tcGci
LAotICAgICAgICAidmlkZW8vcXVpY2t0aW1lIiwKLSAgICAgICAgInZpZGVvL3gtbTR2IiwKLSAg
ICAgICAgInZpZGVvL3gtbXBlZyIsCi0gICAgICAgICJ2aWRlby94LW1wZyIsCi0gICAgfSk7Cisg
ICAgc3RhdGljIGF1dG8gY2FjaGUgPSBtYWtlTmV2ZXJEZXN0cm95ZWQoW3RoaXNdIHsKKyAgICAg
ICAgVU5VU0VEX1BBUkFNKHRoaXMpOworCisgICAgICAgIEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNh
c2VJbnNlbnNpdGl2ZUhhc2g+IGNhY2hlID0gc3RkOjppbml0aWFsaXplcl9saXN0PFN0cmluZz4g
eworICAgICAgICAgICAgImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5tcGVndXJsIl9zLAorICAgICAg
ICAgICAgImFwcGxpY2F0aW9uL3gtbXBlZ3VybCJfcywKKyAgICAgICAgICAgICJhdWRpby8zZ3Bw
Il9zLAorICAgICAgICAgICAgImF1ZGlvL2FhYyJfcywKKyAgICAgICAgICAgICJhdWRpby9hYWNw
Il9zLAorICAgICAgICAgICAgImF1ZGlvL2FpZmYiX3MsCisgICAgICAgICAgICAiYXVkaW8vYmFz
aWMiX3MsCisgICAgICAgICAgICAiYXVkaW8vbXAzIl9zLAorICAgICAgICAgICAgImF1ZGlvL21w
NCJfcywKKyAgICAgICAgICAgICJhdWRpby9tcGVnIl9zLAorICAgICAgICAgICAgImF1ZGlvL21w
ZWczIl9zLAorICAgICAgICAgICAgImF1ZGlvL21wZWd1cmwiX3MsCisgICAgICAgICAgICAiYXVk
aW8vbXBnIl9zLAorICAgICAgICAgICAgImF1ZGlvL3ZuZC53YXZlIl9zLAorICAgICAgICAgICAg
ImF1ZGlvL3dhdiJfcywKKyAgICAgICAgICAgICJhdWRpby93YXZlIl9zLAorICAgICAgICAgICAg
ImF1ZGlvL3gtYWFjIl9zLAorICAgICAgICAgICAgImF1ZGlvL3gtYWlmZiJfcywKKyAgICAgICAg
ICAgICJhdWRpby94LW00YSJfcywKKyAgICAgICAgICAgICJhdWRpby94LW1wZWd1cmwiX3MsCisg
ICAgICAgICAgICAiYXVkaW8veC13YXYiX3MsCisgICAgICAgICAgICAidmlkZW8vM2dwcCJfcywK
KyAgICAgICAgICAgICJ2aWRlby8zZ3BwMiJfcywKKyAgICAgICAgICAgICJ2aWRlby9tcDQiX3Ms
CisgICAgICAgICAgICAidmlkZW8vbXBlZyJfcywKKyAgICAgICAgICAgICJ2aWRlby9tcGVnMiJf
cywKKyAgICAgICAgICAgICJ2aWRlby9tcGciX3MsCisgICAgICAgICAgICAidmlkZW8vcXVpY2t0
aW1lIl9zLAorICAgICAgICAgICAgInZpZGVvL3gtbTR2Il9zLAorICAgICAgICAgICAgInZpZGVv
L3gtbXBlZyJfcywKKyAgICAgICAgICAgICJ2aWRlby94LW1wZyJfcywKKyAgICAgICAgfTsKKwor
I2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIp
CisgICAgICAgIGlmIChTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjppc1dlYk1Gb3JtYXRSZWFkZXJB
dmFpbGFibGUoKSkgeworICAgICAgICAgICAgYXV0byB3ZWJtVHlwZXMgPSBTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjp3ZWJtTUlNRVR5cGVzKCk7CisgICAgICAgICAgICBjYWNoZS5hZGQod2VibVR5
cGVzLmJlZ2luKCksIHdlYm1UeXBlcy5lbmQoKSk7CisgICAgICAgIH0KKyNlbmRpZgorCisgICAg
ICAgIHJldHVybiBjYWNoZTsKKyAgICB9KCkpOworCiAgICAgcmV0dXJuIGNhY2hlOwogfQogCkBA
IC0xNTMsNiArMTcyLDEyIEBAIHZvaWQgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVD
YWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVICiAjZW5kaWYKIH0KIAor
dm9pZCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2V0V2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoYm9v
bCBlbmFibGVkKQoreworICAgIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OnNldFdlYk1Gb3JtYXRS
ZWFkZXJFbmFibGVkKGVuYWJsZWQpOworfQorCisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbQppbmRleCBkNjRhNzI1NjJhMjRjMGQ4YTFkYmJhMzA5Y2U1MTVjOGNmZWM0YWUxLi5m
NGI4NzE2NjcyNjI5ZjYzMjVhNjBiMWQzOWY3Yzc4NGJmNDk5OGI5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0KQEAgLTU2LDcgKzU2LDYgQEAKICNpbXBvcnQgIlBpeGVsQnVmZmVyQ29uZm9ybWVy
Q1YuaCIKICNpbXBvcnQgIlBsYXRmb3JtVGltZVJhbmdlcy5oIgogI2ltcG9ydCAiUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzLmgiCi0jaW1wb3J0ICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAj
aW1wb3J0ICJTZWN1cml0eU9yaWdpbi5oIgogI2ltcG9ydCAiU2VyaWFsaXplZFBsYXRmb3JtRGF0
YUN1ZU1hYy5oIgogI2ltcG9ydCAiU2hhcmVkQnVmZmVyLmgiCkBAIC0xMDAsNyArOTksNiBAQAog
I2ltcG9ydCA8d3RmL09TT2JqZWN0UHRyLmg+CiAjaW1wb3J0IDx3dGYvVVJMLmg+CiAjaW1wb3J0
IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KLSNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL09TVmFy
aWFudFNQSS5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2ltcG9ydCA8d3RmL3Ro
cmVhZHMvQmluYXJ5U2VtYXBob3JlLmg+CiAKQEAgLTI3MCw2ICsyNjgsMjAgQEAgc3RhdGljIGRp
c3BhdGNoX3F1ZXVlX3QgZ2xvYmFsUHVsbERlbGVnYXRlUXVldWUoKQogICAgIHJldHVybiBnbG9i
YWxRdWV1ZTsKIH0KIAorc3RhdGljIHZvaWQgcmVnaXN0ZXJGb3JtYXRSZWFkZXJJZk5lY2Vzc2Fy
eSgpCit7CisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFU
X1JFQURFUikKKyAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKKyAgICBkaXNw
YXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57CisgICAgICAgIC8vIExpa2Ugd2UgZG8gZm9yIG90aGVy
IG1lZGlhIGZvcm1hdHMsIGFsbG93IHRoZSBmb3JtYXQgcmVhZGVyIHRvIHJ1biBpbiB0aGUgV2Vi
Q29udGVudCBvciBHUFUgcHJvY2VzcworICAgICAgICAvLyAod2hpY2ggaXMgYWxyZWFkeSBhcHBy
b3ByaWF0ZWx5IHNhbmRib3hlZCkgcmF0aGVyIHRoYW4gaW4gYSBzZXBhcmF0ZSBNZWRpYVRvb2xi
b3ggWFBDIHNlcnZpY2UuCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlzSW5HUFVQcm9jZXNzKCkg
fHwgaXNJbldlYlByb2Nlc3MoKSk7CisgICAgICAgIE1UUmVnaXN0ZXJQbHVnaW5Gb3JtYXRSZWFk
ZXJCdW5kbGVEaXJlY3RvcnkoKF9fYnJpZGdlIENGVVJMUmVmKU5TQnVuZGxlLm1haW5CdW5kbGUu
YnVpbHRJblBsdWdJbnNVUkwpOworICAgICAgICBNVFBsdWdpbkZvcm1hdFJlYWRlckRpc2FibGVT
YW5kYm94aW5nKCk7CisgICAgfSk7CisjZW5kaWYKK30KKwogY2xhc3MgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6RmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBNZWRpYVBsYXllckZh
Y3RvcnkgewogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6
Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6QVZGb3VuZGF0aW9uOyB9OwpAQCAtODMzLDcgKzg0NSwx
MSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNz
ZXRGb3JVUkwoY29uc3QgVVJMJiB1cmwsIFJldAogI2VuZGlmCiAKICAgICBhdXRvIHR5cGUgPSBw
bGF5ZXIoKS0+Y29udGVudE1JTUVUeXBlKCk7Ci0gICAgaWYgKFBBTDo6Y2FuTG9hZF9BVkZvdW5k
YXRpb25fQVZVUkxBc3NldE91dE9mQmFuZE1JTUVUeXBlS2V5KCkgJiYgIXR5cGUuaXNFbXB0eSgp
ICYmICFwbGF5ZXIoKS0+Y29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uKCkp
IHsKKworICAgIC8vIERvbid0IGFkdmVydGlzZSBXZWJNIE1JTUUgdHlwZXMgb3IgdGhlIGZvcm1h
dCByZWFkZXIgd29uJ3QgYmUgbG9hZGVkIHVudGlsIHJkYXI6Ly83MjQwNTEyNyBpcyBmaXhlZC4K
KyAgICBhdXRvIHdpbGxVc2VXZWJNRm9ybWF0UmVhZGVyID0gU291cmNlQnVmZmVyUGFyc2VyV2Vi
TTo6aXNXZWJNRm9ybWF0UmVhZGVyQXZhaWxhYmxlKCkgJiYgKGVxdWFsSWdub3JpbmdBU0NJSUNh
c2UodHlwZSwgInZpZGVvL3dlYm0iKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHR5cGUsICJh
dWRpby93ZWJtIikpOworCisgICAgaWYgKFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25fQVZVUkxB
c3NldE91dE9mQmFuZE1JTUVUeXBlS2V5KCkgJiYgIXR5cGUuaXNFbXB0eSgpICYmICFwbGF5ZXIo
KS0+Y29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uKCkgJiYgIXdpbGxVc2VX
ZWJNRm9ybWF0UmVhZGVyKSB7CiAgICAgICAgIGF1dG8gY29kZWNzID0gcGxheWVyKCktPmNvbnRl
bnRUeXBlQ29kZWNzKCk7CiAgICAgICAgIGlmICghY29kZWNzLmlzRW1wdHkoKSkgewogICAgICAg
ICAgICAgTlNTdHJpbmcgKnR5cGVTdHJpbmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpA
IiVAOyBjb2RlY3M9XCIlQFwiIiwgKE5TU3RyaW5nICopdHlwZSwgKE5TU3RyaW5nICopY29kZWNz
XTsKQEAgLTg3Niw2ICs4OTIsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3QgVVJMJiB1cmwsIFJldAogICAgICAgICAg
ICAgW29wdGlvbnMgc2V0T2JqZWN0OkBOTyBmb3JLZXk6QVZVUkxBc3NldFVzZXNOb1BlcnNpc3Rl
bnRDYWNoZUtleV07CiAgICAgfQogCisgICAgaWYgKHdpbGxVc2VXZWJNRm9ybWF0UmVhZGVyKQor
ICAgICAgICByZWdpc3RlckZvcm1hdFJlYWRlcklmTmVjZXNzYXJ5KCk7CisKICAgICBOU1VSTCAq
Y29jb2FVUkwgPSBjYW5vbmljYWxVUkwodXJsKTsKICAgICBtX2F2QXNzZXQgPSBhZG9wdE5TKFtQ
QUw6OmFsbG9jQVZVUkxBc3NldEluc3RhbmNlKCkgaW5pdFdpdGhVUkw6Y29jb2FVUkwgb3B0aW9u
czpvcHRpb25zLmdldCgpXSk7CiAKQEAgLTE2NjcsMzkgKzE2ODYsNiBAQCBzdGF0aWMgYm9vbCBr
ZXlTeXN0ZW1Jc1N1cHBvcnRlZChjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKIH0KICNlbmRpZgog
Ci0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURF
UikKLXN0YXRpYyB2b2lkIGVuc3VyZUZvcm1hdFJlYWRlcklzUmVnaXN0ZXJlZCgpCi17Ci0gICAg
c3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47Ci0gICAgZGlzcGF0Y2hfb25jZSgmb25j
ZVRva2VuLCBeewotICAgICAgICAvLyBMaWtlIHdlIGRvIGZvciBvdGhlciBtZWRpYSBmb3JtYXRz
LCBhbGxvdyB0aGUgZm9ybWF0IHJlYWRlciB0byBydW4gaW4gdGhlIFdlYkNvbnRlbnQgb3IgR1BV
IHByb2Nlc3MKLSAgICAgICAgLy8gKHdoaWNoIGlzIGFscmVhZHkgYXBwcm9wcmlhdGVseSBzYW5k
Ym94ZWQpIHJhdGhlciB0aGFuIGluIGEgc2VwYXJhdGUgTWVkaWFUb29sYm94IFhQQyBzZXJ2aWNl
LgotICAgICAgICBSRUxFQVNFX0FTU0VSVChpc0luR1BVUHJvY2VzcygpIHx8IGlzSW5XZWJQcm9j
ZXNzKCkpOwotICAgICAgICBNVFJlZ2lzdGVyUGx1Z2luRm9ybWF0UmVhZGVyQnVuZGxlRGlyZWN0
b3J5KChfX2JyaWRnZSBDRlVSTFJlZilOU0J1bmRsZS5tYWluQnVuZGxlLmJ1aWx0SW5QbHVnSW5z
VVJMKTsKLSAgICAgICAgTVRQbHVnaW5Gb3JtYXRSZWFkZXJEaXNhYmxlU2FuZGJveGluZygpOwot
ICAgIH0pOwotfQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1U
X1BMVUdJTl9GT1JNQVRfUkVBREVSKQotc3RhdGljIGJvb2wgaXNGb3JtYXRSZWFkZXJBdmFpbGFi
bGUoKQotewotICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS53ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSNp
ZiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSAgICAvLyBGSVhNRSAocmRhcjovLzcyMzIwNDE5
KTogSWYgV2ViS2l0IHdhcyBidWlsdCB3aXRoIGFkLWhvYyBjb2RlLXNpZ25pbmcsCi0gICAgLy8g
Q29yZU1lZGlhIHdpbGwgb25seSBsb2FkIHRoZSBmb3JtYXQgcmVhZGVyIHBsdWctaW4gd2hlbiBh
IHVzZXIgZGVmYXVsdAotICAgIC8vIGlzIHNldCBvbiBBcHBsZSBpbnRlcm5hbCBPU3MuIFRoYXQg
bWVhbnMgd2UgY2Fubm90IGN1cnJlbnRseSBzdXBwb3J0IFdlYk0KLSAgICAvLyBpbiBwdWJsaWMg
U0RLIGJ1aWxkcyBvbiBjdXN0b21lciBPU3MuCi0gICAgaWYgKCFvc192YXJpYW50X2FsbG93c19p
bnRlcm5hbF9zZWN1cml0eV9wb2xpY2llcygiY29tLmFwcGxlLldlYktpdCIpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLQotICAgIHJldHVybiB0cnVlOwotfQotI2VuZGlmCi0KIE1l
ZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKQEAgLTE3MTEsMTkg
KzE2OTcsNiBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZAogICAgICAgICByZXR1cm4gTWVkaWFQ
bGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAjZW5kaWYKIAotI2lmIEVOQUJM
RShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCi0gICAgaWYg
KGlzRm9ybWF0UmVhZGVyQXZhaWxhYmxlKCkpIHsKLSAgICAgICAgYXV0byBzdXBwb3J0ZWQgPSBT
b3VyY2VCdWZmZXJQYXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKHBhcmFtZXRlcnMu
dHlwZSk7Ci0gICAgICAgIGlmIChzdXBwb3J0ZWQgIT0gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlw
ZTo6SXNOb3RTdXBwb3J0ZWQpIHsKLSAgICAgICAgICAgIGVuc3VyZUZvcm1hdFJlYWRlcklzUmVn
aXN0ZXJlZCgpOwotICAgICAgICAgICAgaWYgKHN1cHBvcnRlZCA9PSBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlOjpNYXlCZVN1cHBvcnRlZCkKLSAgICAgICAgICAgICAgICByZXR1cm4gc3VwcG9y
dGVkOwotICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlTWVldHNIYXJkd2FyZURlY29kZVJlcXVp
cmVtZW50cyhwYXJhbWV0ZXJzLnR5cGUsIHBhcmFtZXRlcnMuY29udGVudFR5cGVzUmVxdWlyaW5n
SGFyZHdhcmVTdXBwb3J0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQ7Ci0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYKLQogICAg
IGF1dG8gc3VwcG9ydGVkID0gQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLmNhbkRl
Y29kZVR5cGUocGFyYW1ldGVycy50eXBlLnJhdygpKTsKICAgICBpZiAoc3VwcG9ydGVkICE9IE1l
ZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzU3VwcG9ydGVkKQogICAgICAgICByZXR1cm4gc3Vw
cG9ydGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAppbmRleCBjMDQzYmU1Njky
ZjVmZWI2ZTViMGFkZmY0NjYwZjFkNTFkZmMyMzI4Li41YjBhMDI3Mzk4OTE3ZmRhOGMyMGZlYjcw
NzdhNjNmZWUxODkzNjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcApAQCAt
NDgsNiArNDgsNyBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaXN0Lmg+CiAjaW5jbHVkZSA8d3RmL2Nm
L1R5cGVDYXN0c0NGLmg+CiAjaW5jbHVkZSA8d3RmL2Rhcndpbi9XZWFrTGlua2luZy5oPgorI2lu
Y2x1ZGUgPHd0Zi9zcGkvZGFyd2luL09TVmFyaWFudFNQSS5oPgogCiAjaW5jbHVkZSAiQ29yZVZp
ZGVvU29mdExpbmsuaCIKICNpbmNsdWRlICJWaWRlb1Rvb2xib3hTb2Z0TGluay5oIgpAQCAtNDQz
LDE0ICs0NDQsNjYgQEAgcHJpdmF0ZToKICAgICB3ZWJtOjpUcmFja0VudHJ5IG1fdHJhY2s7CiB9
OwogCitib29sIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Om1fZm9ybWF0UmVhZGVyRW5hYmxlZDsK
Kwordm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpzZXRXZWJNRm9ybWF0UmVhZGVyRW5hYmxl
ZChib29sIGVuYWJsZWQpCit7CisjaWYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAg
ICBtX2Zvcm1hdFJlYWRlckVuYWJsZWQgPSBlbmFibGVkOworI2VuZGlmCit9CisKK2NvbnN0IEhh
c2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBTb3VyY2VCdWZmZXJQYXJz
ZXJXZWJNOjp3ZWJtTUlNRVR5cGVzKCkKK3sKKyAgICBzdGF0aWMgYXV0byB0eXBlcyA9IG1ha2VO
ZXZlckRlc3Ryb3llZChbXSB7CisKKyAgICAgICAgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUlu
c2Vuc2l0aXZlSGFzaD4gdHlwZXM7CisKKyNpZiBFTkFCTEUoVlA5KQorICAgICAgICB0eXBlcy5h
ZGQoInZpZGVvL3dlYm0iKTsKKyNlbmRpZgorI2lmIEVOQUJMRShWT1JCSVMpIHx8IEVOQUJMRShP
UFVTKQorICAgICAgICB0eXBlcy5hZGQoImF1ZGlvL3dlYm0iKTsKKyNlbmRpZgorCisgICAgICAg
IHJldHVybiB0eXBlczsKKyAgICB9KCkpOworCisgICAgcmV0dXJuIHR5cGVzOworfQorCitzdGF0
aWMgYm9vbCBjYW5Mb2FkRm9ybWF0UmVhZGVyKCkKK3sKKyNpZiAhSEFWRShNVF9QTFVHSU5fRk9S
TUFUX1JFQURFUikKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKworI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCisgICAgcmV0dXJuIHRydWU7CisjZWxzZQorICAgIC8vIEZJWE1FIChyZGFy
Oi8vNzIzMjA0MTkpOiBJZiBXZWJLaXQgd2FzIGJ1aWx0IHdpdGggYWQtaG9jIGNvZGUtc2lnbmlu
ZywKKyAgICAvLyBDb3JlTWVkaWEgd2lsbCBvbmx5IGxvYWQgdGhlIGZvcm1hdCByZWFkZXIgcGx1
Zy1pbiB3aGVuIGEgdXNlciBkZWZhdWx0CisgICAgLy8gaXMgc2V0IG9uIEFwcGxlIGludGVybmFs
IE9Tcy4gVGhhdCBtZWFucyB3ZSBjYW5ub3QgY3VycmVudGx5IHN1cHBvcnQgV2ViTQorICAgIC8v
IGluIHB1YmxpYyBTREsgYnVpbGRzIG9uIGN1c3RvbWVyIE9Tcy4KKyAgICBzdGF0aWMgYm9vbCBh
bGxvd3NJbnRlcm5hbFNlY3VyaXR5UG9saWNpZXMgPSBvc192YXJpYW50X2FsbG93c19pbnRlcm5h
bF9zZWN1cml0eV9wb2xpY2llcygiY29tLmFwcGxlLldlYktpdCIpOworICAgIHJldHVybiBhbGxv
d3NJbnRlcm5hbFNlY3VyaXR5UG9saWNpZXM7CisjZW5kaWYgLy8gIVVTRShBUFBMRV9JTlRFUk5B
TF9TREspCit9CisKK2Jvb2wgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNXZWJNRm9ybWF0UmVh
ZGVyQXZhaWxhYmxlKCkKK3sKKyAgICByZXR1cm4gbV9mb3JtYXRSZWFkZXJFbmFibGVkICYmIGNh
bkxvYWRGb3JtYXRSZWFkZXIoKSAmJiBpc1dlYm1QYXJzZXJBdmFpbGFibGUoKTsKK30KKwogTWVk
aWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29u
dGVudFR5cGVTdXBwb3J0ZWQoY29uc3QgQ29udGVudFR5cGUmIHR5cGUpCiB7CiAjaWYgRU5BQkxF
KFZQOSkgfHwgRU5BQkxFKFZPUkJJUykgfHwgRU5BQkxFKE9QVVMpCiAgICAgaWYgKCFpc1dlYm1Q
YXJzZXJBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBv
cnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKLSAgICBib29sIGlzQXVkaW9Db250YWluZXJUeXBl
ID0gV1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlKHR5cGUuY29udGFpbmVyVHlwZSgpLCAiYXVk
aW8vd2VibSIpOwotICAgIGJvb2wgaXNWaWRlb0NvbnRhaW5lclR5cGUgPSBXVEY6OmVxdWFsSWdu
b3JpbmdBU0NJSUNhc2UodHlwZS5jb250YWluZXJUeXBlKCksICJ2aWRlby93ZWJtIik7CisgICAg
YXV0byBjb250YWluZXJUeXBlID0gdHlwZS5jb250YWluZXJUeXBlKCk7CisgICAgYm9vbCBpc0F1
ZGlvQ29udGFpbmVyVHlwZSA9IFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb250YWluZXJU
eXBlLCAiYXVkaW8vd2VibSIpOworICAgIGJvb2wgaXNWaWRlb0NvbnRhaW5lclR5cGUgPSBXVEY6
OmVxdWFsSWdub3JpbmdBU0NJSUNhc2UoY29udGFpbmVyVHlwZSwgInZpZGVvL3dlYm0iKTsKICAg
ICBpZiAoIWlzQXVkaW9Db250YWluZXJUeXBlICYmICFpc1ZpZGVvQ29udGFpbmVyVHlwZSkKICAg
ICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0
ZWQ7CiAgICAgCkBAIC00NzMsMjIgKzUyNiwxOCBAQCBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0
c1R5cGUgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZChjbwog
ICAgIGlmICghaXNBbnlDb2RlY0F2YWlsYWJsZSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVy
RW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKLSAgICBTdHJpbmcgY29kZWNz
UGFyYW1ldGVyID0gdHlwZS5wYXJhbWV0ZXIoQ29udGVudFR5cGU6OmNvZGVjc1BhcmFtZXRlcigp
KTsKLSAgICBpZiAoIWNvZGVjc1BhcmFtZXRlcikKLSAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVy
RW51bXM6OlN1cHBvcnRzVHlwZTo6TWF5QmVTdXBwb3J0ZWQ7Ci0KLSAgICBhdXRvIHNwbGl0UmVz
dWx0cyA9IFN0cmluZ1ZpZXcoY29kZWNzUGFyYW1ldGVyKS5zcGxpdCgnLCcpOwotICAgIGlmIChz
cGxpdFJlc3VsdHMuYmVnaW4oKSA9PSBzcGxpdFJlc3VsdHMuZW5kKCkpCisgICAgYXV0byBjb2Rl
Y3MgPSB0eXBlLmNvZGVjcygpOworICAgIGlmIChjb2RlY3MuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpNYXlCZVN1cHBvcnRlZDsKIAot
ICAgIGZvciAoYXV0byBzcGxpdCA6IHNwbGl0UmVzdWx0cykgeworICAgIGZvciAoYXV0byYgY29k
ZWMgOiBjb2RlY3MpIHsKICNpZiBFTkFCTEUoVlA5KQotICAgICAgICBpZiAoc3BsaXQuc3RhcnRz
V2l0aCgidnAwOSIpIHx8IHNwbGl0LnN0YXJ0c1dpdGgoInZwMDgiKSB8fCBlcXVhbChzcGxpdCwg
InZwOCIpIHx8IGVxdWFsKHNwbGl0LCAidnA5IikpIHsKKyAgICAgICAgaWYgKGNvZGVjLnN0YXJ0
c1dpdGgoInZwMDkiKSB8fCBjb2RlYy5zdGFydHNXaXRoKCJ2cDA4IikgfHwgZXF1YWwoY29kZWMs
ICJ2cDgiKSB8fCBlcXVhbChjb2RlYywgInZwOSIpKSB7CiAKICAgICAgICAgICAgIGlmICghaXNW
UDlEZWNvZGVyQXZhaWxhYmxlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVy
RW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKLSAgICAgICAgICAgIGF1dG8g
Y29kZWNQYXJhbWV0ZXJzID0gcGFyc2VWUENvZGVjUGFyYW1ldGVycyhzcGxpdCk7CisgICAgICAg
ICAgICBhdXRvIGNvZGVjUGFyYW1ldGVycyA9IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoY29kZWMp
OwogICAgICAgICAgICAgaWYgKCFjb2RlY1BhcmFtZXRlcnMpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKQEAg
LTUwMCw3ICs1NDksNyBAQCBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgU291cmNlQnVm
ZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZChjbwogI2VuZGlmIC8vIEVOQUJM
RShWUDkpCiAKICNpZiBFTkFCTEUoVk9SQklTKQotICAgICAgICBpZiAoc3BsaXQgPT0gInZvcmJp
cyIpIHsKKyAgICAgICAgaWYgKGNvZGVjID09ICJ2b3JiaXMiKSB7CiAgICAgICAgICAgICBpZiAo
IWlzVm9yYmlzRGVjb2RlckF2YWlsYWJsZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBNZWRp
YVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCkBAIC01MDksNyAr
NTU4LDcgQEAgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIFNvdXJjZUJ1ZmZlclBhcnNl
cldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY28KICNlbmRpZiAvLyBFTkFCTEUoVk9SQklT
KQogCiAjaWYgRU5BQkxFKE9QVVMpCi0gICAgICAgIGlmIChzcGxpdCA9PSAib3B1cyIpIHsKKyAg
ICAgICAgaWYgKGNvZGVjID09ICJvcHVzIikgewogICAgICAgICAgICAgaWYgKCFpc09wdXNEZWNv
ZGVyQXZhaWxhYmxlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6
OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldl
Yk0uaAppbmRleCBlY2EwM2MyMDRmYTEwMDdlNWMyNTNiNTNhMmZmNGE1MmI1Y2IxNzljLi4xMzJh
YzgyNzEyMDMwMWFjNGFlMzAxNzgxZThmZTUyZDJhOWZkZjc4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVy
UGFyc2VyV2ViTS5oCkBAIC02MCw3ICs2MCwxMCBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNIDogcHVibGljIFNvdXJjZUJ1ZmZlclBhcnNlciwgcHJpdmF0ZQog
cHVibGljOgogICAgIGNsYXNzIFN0cmVhbWluZ1ZlY3RvclJlYWRlcjsKIAorICAgIHN0YXRpYyBi
b29sIGlzV2ViTUZvcm1hdFJlYWRlckF2YWlsYWJsZSgpOworICAgIHN0YXRpYyB2b2lkIHNldFdl
Yk1Gb3JtYXRSZWFkZXJFbmFibGVkKGJvb2wpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllckVudW1z
OjpTdXBwb3J0c1R5cGUgaXNDb250ZW50VHlwZVN1cHBvcnRlZChjb25zdCBDb250ZW50VHlwZSYp
OworICAgIHN0YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVI
YXNoPiYgd2VibU1JTUVUeXBlcygpOwogICAgIHN0YXRpYyBSZWZQdHI8U291cmNlQnVmZmVyUGFy
c2VyV2ViTT4gY3JlYXRlKGNvbnN0IENvbnRlbnRUeXBlJik7CiAKICAgICBTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNKCk7CkBAIC0yNjgsNiArMjcxLDggQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxj
b25zdCBXVEY6OkxvZ2dlcj4gbV9sb2dnZXI7CiAgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlm
aWVyIHsgbnVsbHB0ciB9OworICAgIAorICAgIHN0YXRpYyBib29sIG1fZm9ybWF0UmVhZGVyRW5h
YmxlZDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKaW5kZXggYzZkODlkMDk3NjM1MzFjMzNlZGIyOGJmM2EwMDgxMzgyMDQwMmRiNi4uYTRm
ZjRiYTAyYTlkMzJmMzA0OGFkOTU5YjQ2M2U3NDJjMjdkMzM1NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM0MSw2ICszNDEsMTAgQEAKICNl
bmRpZgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJ
Tl9GT1JNQVRfUkVBREVSKQorI2luY2x1ZGUgPFdlYkNvcmUvQVZBc3NldE1JTUVUeXBlQ2FjaGUu
aD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTM4NDMsNiArMzg0NywxMCBAQCB2b2lkIFdlYlBh
Z2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQog
ICAgICAgICAgICAgc2V0dGluZ3Muc2V0V2ViQXV0aGVudGljYXRpb25FbmFibGVkKHRydWUpOwog
ICAgIH0KICNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVH
SU5fRk9STUFUX1JFQURFUikKKyAgICBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCku
c2V0V2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS53ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpKTsKKyNlbmRpZgogfQogCiAjaWYg
RU5BQkxFKERBVEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggNzFkNGE5YTc4YWIwY2NlZDlkMDlhMmY5YjQ2
NjI0MTFjMDc4NGJjNy4uMjNmODRlN2NhZjAxNmM0NDFkMjBjZTZlNTUzZjc4NGEzNjBlYmI1ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29h
Lm1tCkBAIC02OSw2ICs2OSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BlcmZvcm1hbmNlTG9nZ2lu
Zy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TV0NvbnRleHRNYW5h
Z2VyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N5c3RlbUJhdHRlcnkuaD4KICNpbXBvcnQgPFdlYkNv
cmUvU3lzdGVtU291bmRNYW5hZ2VyLmg+CkBAIC0zMjgsNiArMzI5LDEwIEBAIHZvaWQgV2ViUHJv
Y2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJiBwYXJhCiAgICAgcHRocmVhZF9zZXRfZml4ZWRwcmlvcml0eV9zZWxmKCk7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9S
RUFERVIpCisgICAgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLnNldFdlYk1Gb3Jt
YXRSZWFkZXJFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
d2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKSk7CisjZW5kaWYKKwogICAgIGlmICghcGFyYW1ldGVy
cy5tZWRpYU1JTUVUeXBlcy5pc0VtcHR5KCkpCiAgICAgICAgIHNldE1lZGlhTUlNRVR5cGVzKHBh
cmFtZXRlcnMubWVkaWFNSU1FVHlwZXMpOwogICAgIGVsc2Ugewo=
</data>
<flag name="commit-queue"
          id="433951"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416420</attachid>
            <date>2020-12-17 08:41:14 -0800</date>
            <delta_ts>2020-12-17 09:18:02 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-219961-20201217084113.patch</filename>
            <type>text/plain</type>
            <size>21969</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwODkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjMyMDI4ZjczZTQ1ZThl
ODdiMjdjMTIzODNlMGFjMDFkZTRkYzgxMi4uMjhlNjg0N2E1ZWU5ZjExMWEzMmQ5NDBkZDVlMWQx
MGMwZmU2ODNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTEyLTE2ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2Vi
TSBmb3JtYXQgcmVhZGVyIGRvZXNuJ3Qgd29yayB3aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5
OTYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjM5OTAxND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBBbmR5IEVzdGVzLgorCisgICAgICAgIFdvcmsgYXJvdW5kIGEgYnVnIHRoYXQgbWFrZXMg
dGhlIGZvcm1hdCByZWFkZXIgZmFpbCB0byBsb2FkIHdoZW4gdGhlIEFWVVJMQXNzZXRPdXRPZkJh
bmRNSU1FVHlwZUtleQorICAgICAgICBpcyBpbmNsdWRlZCBpbiB0aGUgQVZVUkxBc3NldCBvcHRp
b25zIGRpY3Rpb25hcnkuIEFsc28gaW5jbHVkZSBzb21lIGNsZWFudXA6CisgICAgICAgIC0gTW92
ZSB0aGUgY29kZSB0byBjaGVjayBmb3IgV2ViTSBNSU1FIHR5cGVzIGZyb20gTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQworICAgICAgICAgIHRvIEFWQXNzZXRNSU1FVHlwZUNhY2hl
LgorICAgICAgICAtIERvbid0IHVzZSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzIGluIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuCisgICAgICAgIC0gUmVnaXN0ZXIgdGhlIFdlYk0g
Zm9ybWF0IHJlYWRlciB3aGVuIGNyZWF0aW5nIGFuIEFWVVJMQXNzZXQgZm9yIGEgV2ViTSB1cmwg
aW5zdGVhZAorICAgICAgICAgIG9mIHdoZW4gY2hlY2tpbmcgdGhlIE1JTUUgdHlwZS4KKyAgICAg
ICAgLSBDbGVhbnVwIFdlYk0gImNvZGVjcyIgcGFyYW1ldGVyIHBhcnNpbmcuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNo
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNz
ZXRNSU1FVHlwZUNhY2hlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2Fj
aGU6OmNhbkRlY29kZUV4dGVuZGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlN
RVR5cGVDYWNoZTo6c3RhdGljQ29udGFpbmVyVHlwZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6
QVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6cmVnaXN0ZXJGb3JtYXRS
ZWFkZXJJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRBZHZlcnRpc2VPdXRP
ZkJhbmRNSU1FVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6
CisgICAgICAgIChXZWJDb3JlOjplbnN1cmVGb3JtYXRSZWFkZXJJc1JlZ2lzdGVyZWQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNGb3JtYXRSZWFkZXJBdmFpbGFibGUpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldl
Yk0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6c2V0V2Vi
TUZvcm1hdFJlYWRlckVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6d2VibU1JTUVUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjppc1dlYk1Gb3JtYXRSZWFkZXJBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oOgor
CiAyMDIwLTEyLTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1ha2UgRnJhbWVWaWV3OjptX2N1c3RvbVNpemVGb3JSZXNpemVFdmVudCBhbiBPcHRp
b25hbDxJbnRTaXplPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlODg3MzFjOTRjNDcxMDhjZDY2OTlhZTY1MzkxMzlk
MzE4Y2VlODNiLi5jNzk0Mjk3ZDEzNjVmZmY4MjNmOTA5MTgwOThiNzNjMTM0NDY2YjI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEyLTE2ICBFcmljIENhcmxzb24gIDxlcmljLmNh
cmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViTSBmb3JtYXQgcmVhZGVyIGRv
ZXNuJ3Qgd29yayB3aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxlbWVudAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5OTYxCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83MjM5OTAxND4KKworICAgICAgICBSZXZpZXdlZCBieSBBbmR5IEVzdGVzLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBs
YXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIwLTEyLTE1ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENhbGxzIHRvIHNldEZpeGVkTGF5
b3V0U2l6ZSgpIHNob3VsZCBub3QgYmUgaW5zaWRlIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaAppbmRleCA5MzE3
OWYyOGQ0MGM3NWNkODQyN2NiMTQ2YTgyMDM0MmIyYjhjNWE1Li45NzM1OTQ2ZDM3NDc2M2M1MTZh
Y2NkOWRjMTk0OGIxZWI1MjY2OWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNz
ZXRNSU1FVHlwZUNhY2hlLmgKQEAgLTQ1LDYgKzQ1LDggQEAgcHVibGljOgogICAgIGJvb2wgaXNV
bnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJikgZmluYWw7CiAKICAgICB2b2lk
IGFkZFN1cHBvcnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisgICAgCisgICAgdm9p
ZCBzZXRXZWJNRm9ybWF0UmVhZGVyRW5hYmxlZChib29sKTsKIAogcHJpdmF0ZToKICAgICBmcmll
bmQgTmV2ZXJEZXN0cm95ZWQ8QVZBc3NldE1JTUVUeXBlQ2FjaGU+OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1J
TUVUeXBlQ2FjaGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQppbmRleCA4NzA2NjIxNDY2YjU5NTdk
ODU3YzhlNmE5N2M5MWVhNjNmNDYwMWY5Li44YTAwMTFhN2QyYWUxMTIwMzYxNTIyZGU4Yjg1ODc3
M2Q5ODAzMWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVD
YWNoZS5tbQpAQCAtMjksNiArMjksNyBAQAogI2lmIFBMQVRGT1JNKENPQ09BKQogCiAjaW1wb3J0
ICJDb250ZW50VHlwZS5oIgorI2ltcG9ydCAiU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oIgogI2lt
cG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY29jb2EvQVZG
b3VuZGF0aW9uU29mdExpbmsuaD4KIApAQCAtNjMsOSArNjQsMTYgQEAgYm9vbCBBVkFzc2V0TUlN
RVR5cGVDYWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBl
KQogewogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKICAgICBBU1NFUlQo
aXNBdmFpbGFibGUoKSk7Ci0gICAgcmV0dXJuIFtQQUw6OmdldEFWVVJMQXNzZXRDbGFzcygpIGlz
UGxheWFibGVFeHRlbmRlZE1JTUVUeXBlOnR5cGUucmF3KCldOworICAgIGlmIChbUEFMOjpnZXRB
VlVSTEFzc2V0Q2xhc3MoKSBpc1BsYXlhYmxlRXh0ZW5kZWRNSU1FVHlwZTp0eXBlLnJhdygpXSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZF
KE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQorICAgIGlmIChTb3VyY2VCdWZmZXJQYXJzZXJXZWJN
Ojppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKHR5cGUpID09IE1lZGlhUGxheWVyRW51bXM6OlN1cHBv
cnRzVHlwZTo6SXNTdXBwb3J0ZWQpCisgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAKKyNl
bmRpZiAvLyBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCisKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKQEAgLTk2LDM5ICsxMDQsNTMgQEAgYm9vbCBBVkFzc2V0TUlNRVR5cGVDYWNo
ZTo6aXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogCiBjb25z
dCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgQVZBc3NldE1JTUVU
eXBlQ2FjaGU6OnN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KCkKIHsKLSAgICBzdGF0aWMgY29uc3Qg
YXV0byBjYWNoZSA9IG1ha2VOZXZlckRlc3Ryb3llZChIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPiB7Ci0gICAgICAgICJhcHBsaWNhdGlvbi92bmQuYXBwbGUubXBlZ3Vy
bCIsCi0gICAgICAgICJhcHBsaWNhdGlvbi94LW1wZWd1cmwiLAotICAgICAgICAiYXVkaW8vM2dw
cCIsCi0gICAgICAgICJhdWRpby9hYWMiLAotICAgICAgICAiYXVkaW8vYWFjcCIsCi0gICAgICAg
ICJhdWRpby9haWZmIiwKLSAgICAgICAgImF1ZGlvL2Jhc2ljIiwKLSAgICAgICAgImF1ZGlvL21w
MyIsCi0gICAgICAgICJhdWRpby9tcDQiLAotICAgICAgICAiYXVkaW8vbXBlZyIsCi0gICAgICAg
ICJhdWRpby9tcGVnMyIsCi0gICAgICAgICJhdWRpby9tcGVndXJsIiwKLSAgICAgICAgImF1ZGlv
L21wZyIsCi0gICAgICAgICJhdWRpby92bmQud2F2ZSIsCi0gICAgICAgICJhdWRpby93YXYiLAot
ICAgICAgICAiYXVkaW8vd2F2ZSIsCi0gICAgICAgICJhdWRpby94LWFhYyIsCi0gICAgICAgICJh
dWRpby94LWFpZmYiLAotICAgICAgICAiYXVkaW8veC1tNGEiLAotICAgICAgICAiYXVkaW8veC1t
cGVndXJsIiwKLSAgICAgICAgImF1ZGlvL3gtd2F2IiwKLSAgICAgICAgInZpZGVvLzNncHAiLAot
ICAgICAgICAidmlkZW8vM2dwcDIiLAotICAgICAgICAidmlkZW8vbXA0IiwKLSAgICAgICAgInZp
ZGVvL21wZWciLAotICAgICAgICAidmlkZW8vbXBlZzIiLAotICAgICAgICAidmlkZW8vbXBnIiwK
LSAgICAgICAgInZpZGVvL3F1aWNrdGltZSIsCi0gICAgICAgICJ2aWRlby94LW00diIsCi0gICAg
ICAgICJ2aWRlby94LW1wZWciLAotICAgICAgICAidmlkZW8veC1tcGciLAotICAgIH0pOworICAg
IHN0YXRpYyBhdXRvIGNhY2hlID0gbWFrZU5ldmVyRGVzdHJveWVkKFt0aGlzXSB7CisgICAgICAg
IFVOVVNFRF9QQVJBTSh0aGlzKTsKKworICAgICAgICBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPiBjYWNoZSA9IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxTdHJpbmc+IHsK
KyAgICAgICAgICAgICJhcHBsaWNhdGlvbi92bmQuYXBwbGUubXBlZ3VybCJfcywKKyAgICAgICAg
ICAgICJhcHBsaWNhdGlvbi94LW1wZWd1cmwiX3MsCisgICAgICAgICAgICAiYXVkaW8vM2dwcCJf
cywKKyAgICAgICAgICAgICJhdWRpby9hYWMiX3MsCisgICAgICAgICAgICAiYXVkaW8vYWFjcCJf
cywKKyAgICAgICAgICAgICJhdWRpby9haWZmIl9zLAorICAgICAgICAgICAgImF1ZGlvL2Jhc2lj
Il9zLAorICAgICAgICAgICAgImF1ZGlvL21wMyJfcywKKyAgICAgICAgICAgICJhdWRpby9tcDQi
X3MsCisgICAgICAgICAgICAiYXVkaW8vbXBlZyJfcywKKyAgICAgICAgICAgICJhdWRpby9tcGVn
MyJfcywKKyAgICAgICAgICAgICJhdWRpby9tcGVndXJsIl9zLAorICAgICAgICAgICAgImF1ZGlv
L21wZyJfcywKKyAgICAgICAgICAgICJhdWRpby92bmQud2F2ZSJfcywKKyAgICAgICAgICAgICJh
dWRpby93YXYiX3MsCisgICAgICAgICAgICAiYXVkaW8vd2F2ZSJfcywKKyAgICAgICAgICAgICJh
dWRpby94LWFhYyJfcywKKyAgICAgICAgICAgICJhdWRpby94LWFpZmYiX3MsCisgICAgICAgICAg
ICAiYXVkaW8veC1tNGEiX3MsCisgICAgICAgICAgICAiYXVkaW8veC1tcGVndXJsIl9zLAorICAg
ICAgICAgICAgImF1ZGlvL3gtd2F2Il9zLAorICAgICAgICAgICAgInZpZGVvLzNncHAiX3MsCisg
ICAgICAgICAgICAidmlkZW8vM2dwcDIiX3MsCisgICAgICAgICAgICAidmlkZW8vbXA0Il9zLAor
ICAgICAgICAgICAgInZpZGVvL21wZWciX3MsCisgICAgICAgICAgICAidmlkZW8vbXBlZzIiX3Ms
CisgICAgICAgICAgICAidmlkZW8vbXBnIl9zLAorICAgICAgICAgICAgInZpZGVvL3F1aWNrdGlt
ZSJfcywKKyAgICAgICAgICAgICJ2aWRlby94LW00diJfcywKKyAgICAgICAgICAgICJ2aWRlby94
LW1wZWciX3MsCisgICAgICAgICAgICAidmlkZW8veC1tcGciX3MsCisgICAgICAgIH07CisKKyNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQor
ICAgICAgICBpZiAoU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNXZWJNRm9ybWF0UmVhZGVyQXZh
aWxhYmxlKCkpIHsKKyAgICAgICAgICAgIGF1dG8gd2VibVR5cGVzID0gU291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6d2VibU1JTUVUeXBlcygpOworICAgICAgICAgICAgY2FjaGUuYWRkKHdlYm1UeXBl
cy5iZWdpbigpLCB3ZWJtVHlwZXMuZW5kKCkpOworICAgICAgICB9CisjZW5kaWYKKworICAgICAg
ICByZXR1cm4gY2FjaGU7CisgICAgfSgpKTsKKwogICAgIHJldHVybiBjYWNoZTsKIH0KIApAQCAt
MTUzLDYgKzE3NSwxNiBAQCB2b2lkIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjppbml0aWFsaXplQ2Fj
aGUoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSAogI2VuZGlmCiB9CiAKK3Zv
aWQgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKK3sKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9G
T1JNQVRfUkVBREVSKQorICAgIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OnNldFdlYk1Gb3JtYXRS
ZWFkZXJFbmFibGVkKGVuYWJsZWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7
CisjZW5kaWYKK30KKworCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXgg
ZDY0YTcyNTYyYTI0YzBkOGExZGJiYTMwOWNlNTE1YzhjZmVjNGFlMS4uZjRiODcxNjY3MjYyOWY2
MzI1YTYwYjFkMzlmN2M3ODRiZjQ5OThiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC01
Niw3ICs1Niw2IEBACiAjaW1wb3J0ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCiAjaW1wb3J0
ICJQbGF0Zm9ybVRpbWVSYW5nZXMuaCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5oIgotI2ltcG9ydCAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2ltcG9ydCAiU2VjdXJp
dHlPcmlnaW4uaCIKICNpbXBvcnQgIlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaCIKICNp
bXBvcnQgIlNoYXJlZEJ1ZmZlci5oIgpAQCAtMTAwLDcgKzk5LDYgQEAKICNpbXBvcnQgPHd0Zi9P
U09iamVjdFB0ci5oPgogI2ltcG9ydCA8d3RmL1VSTC5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1Zl
Y3RvckNvY29hLmg+Ci0jaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9PU1ZhcmlhbnRTUEkuaD4KICNp
bXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbXBvcnQgPHd0Zi90aHJlYWRzL0JpbmFyeVNl
bWFwaG9yZS5oPgogCkBAIC0yNzAsNiArMjY4LDIwIEBAIHN0YXRpYyBkaXNwYXRjaF9xdWV1ZV90
IGdsb2JhbFB1bGxEZWxlZ2F0ZVF1ZXVlKCkKICAgICByZXR1cm4gZ2xvYmFsUXVldWU7CiB9CiAK
K3N0YXRpYyB2b2lkIHJlZ2lzdGVyRm9ybWF0UmVhZGVySWZOZWNlc3NhcnkoKQoreworI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCisgICAg
c3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47CisgICAgZGlzcGF0Y2hfb25jZSgmb25j
ZVRva2VuLCBeeworICAgICAgICAvLyBMaWtlIHdlIGRvIGZvciBvdGhlciBtZWRpYSBmb3JtYXRz
LCBhbGxvdyB0aGUgZm9ybWF0IHJlYWRlciB0byBydW4gaW4gdGhlIFdlYkNvbnRlbnQgb3IgR1BV
IHByb2Nlc3MKKyAgICAgICAgLy8gKHdoaWNoIGlzIGFscmVhZHkgYXBwcm9wcmlhdGVseSBzYW5k
Ym94ZWQpIHJhdGhlciB0aGFuIGluIGEgc2VwYXJhdGUgTWVkaWFUb29sYm94IFhQQyBzZXJ2aWNl
LgorICAgICAgICBSRUxFQVNFX0FTU0VSVChpc0luR1BVUHJvY2VzcygpIHx8IGlzSW5XZWJQcm9j
ZXNzKCkpOworICAgICAgICBNVFJlZ2lzdGVyUGx1Z2luRm9ybWF0UmVhZGVyQnVuZGxlRGlyZWN0
b3J5KChfX2JyaWRnZSBDRlVSTFJlZilOU0J1bmRsZS5tYWluQnVuZGxlLmJ1aWx0SW5QbHVnSW5z
VVJMKTsKKyAgICAgICAgTVRQbHVnaW5Gb3JtYXRSZWFkZXJEaXNhYmxlU2FuZGJveGluZygpOwor
ICAgIH0pOworI2VuZGlmCit9CisKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OkZhY3RvcnkgZmluYWwgOiBwdWJsaWMgTWVkaWFQbGF5ZXJGYWN0b3J5IHsKIHByaXZh
dGU6CiAgICAgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGlkZW50aWZp
ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXI6OkFWRm91bmRhdGlvbjsgfTsKQEAgLTgzMyw3ICs4NDUsMTEgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0
IFVSTCYgdXJsLCBSZXQKICNlbmRpZgogCiAgICAgYXV0byB0eXBlID0gcGxheWVyKCktPmNvbnRl
bnRNSU1FVHlwZSgpOwotICAgIGlmIChQQUw6OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FWVVJMQXNz
ZXRPdXRPZkJhbmRNSU1FVHlwZUtleSgpICYmICF0eXBlLmlzRW1wdHkoKSAmJiAhcGxheWVyKCkt
PmNvbnRlbnRNSU1FVHlwZVdhc0luZmVycmVkRnJvbUV4dGVuc2lvbigpKSB7CisKKyAgICAvLyBE
b24ndCBhZHZlcnRpc2UgV2ViTSBNSU1FIHR5cGVzIG9yIHRoZSBmb3JtYXQgcmVhZGVyIHdvbid0
IGJlIGxvYWRlZCB1bnRpbCByZGFyOi8vNzI0MDUxMjcgaXMgZml4ZWQuCisgICAgYXV0byB3aWxs
VXNlV2ViTUZvcm1hdFJlYWRlciA9IFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzV2ViTUZvcm1h
dFJlYWRlckF2YWlsYWJsZSgpICYmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHR5cGUsICJ2aWRl
by93ZWJtIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLCAiYXVkaW8vd2VibSIpKTsK
KworICAgIGlmIChQQUw6OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FWVVJMQXNzZXRPdXRPZkJhbmRN
SU1FVHlwZUtleSgpICYmICF0eXBlLmlzRW1wdHkoKSAmJiAhcGxheWVyKCktPmNvbnRlbnRNSU1F
VHlwZVdhc0luZmVycmVkRnJvbUV4dGVuc2lvbigpICYmICF3aWxsVXNlV2ViTUZvcm1hdFJlYWRl
cikgewogICAgICAgICBhdXRvIGNvZGVjcyA9IHBsYXllcigpLT5jb250ZW50VHlwZUNvZGVjcygp
OwogICAgICAgICBpZiAoIWNvZGVjcy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIE5TU3RyaW5n
ICp0eXBlU3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlQDsgY29kZWNzPVwi
JUBcIiIsIChOU1N0cmluZyAqKXR5cGUsIChOU1N0cmluZyAqKWNvZGVjc107CkBAIC04NzYsNiAr
ODkyLDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVB
VkFzc2V0Rm9yVVJMKGNvbnN0IFVSTCYgdXJsLCBSZXQKICAgICAgICAgICAgIFtvcHRpb25zIHNl
dE9iamVjdDpATk8gZm9yS2V5OkFWVVJMQXNzZXRVc2VzTm9QZXJzaXN0ZW50Q2FjaGVLZXldOwog
ICAgIH0KIAorICAgIGlmICh3aWxsVXNlV2ViTUZvcm1hdFJlYWRlcikKKyAgICAgICAgcmVnaXN0
ZXJGb3JtYXRSZWFkZXJJZk5lY2Vzc2FyeSgpOworCiAgICAgTlNVUkwgKmNvY29hVVJMID0gY2Fu
b25pY2FsVVJMKHVybCk7CiAgICAgbV9hdkFzc2V0ID0gYWRvcHROUyhbUEFMOjphbGxvY0FWVVJM
QXNzZXRJbnN0YW5jZSgpIGluaXRXaXRoVVJMOmNvY29hVVJMIG9wdGlvbnM6b3B0aW9ucy5nZXQo
KV0pOwogCkBAIC0xNjY3LDM5ICsxNjg2LDYgQEAgc3RhdGljIGJvb2wga2V5U3lzdGVtSXNTdXBw
b3J0ZWQoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShN
RURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCi1zdGF0aWMgdm9p
ZCBlbnN1cmVGb3JtYXRSZWFkZXJJc1JlZ2lzdGVyZWQoKQotewotICAgIHN0YXRpYyBkaXNwYXRj
aF9vbmNlX3Qgb25jZVRva2VuOwotICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXnsKLSAg
ICAgICAgLy8gTGlrZSB3ZSBkbyBmb3Igb3RoZXIgbWVkaWEgZm9ybWF0cywgYWxsb3cgdGhlIGZv
cm1hdCByZWFkZXIgdG8gcnVuIGluIHRoZSBXZWJDb250ZW50IG9yIEdQVSBwcm9jZXNzCi0gICAg
ICAgIC8vICh3aGljaCBpcyBhbHJlYWR5IGFwcHJvcHJpYXRlbHkgc2FuZGJveGVkKSByYXRoZXIg
dGhhbiBpbiBhIHNlcGFyYXRlIE1lZGlhVG9vbGJveCBYUEMgc2VydmljZS4KLSAgICAgICAgUkVM
RUFTRV9BU1NFUlQoaXNJbkdQVVByb2Nlc3MoKSB8fCBpc0luV2ViUHJvY2VzcygpKTsKLSAgICAg
ICAgTVRSZWdpc3RlclBsdWdpbkZvcm1hdFJlYWRlckJ1bmRsZURpcmVjdG9yeSgoX19icmlkZ2Ug
Q0ZVUkxSZWYpTlNCdW5kbGUubWFpbkJ1bmRsZS5idWlsdEluUGx1Z0luc1VSTCk7Ci0gICAgICAg
IE1UUGx1Z2luRm9ybWF0UmVhZGVyRGlzYWJsZVNhbmRib3hpbmcoKTsKLSAgICB9KTsKLX0KLSNl
bmRpZgotCi0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFU
X1JFQURFUikKLXN0YXRpYyBib29sIGlzRm9ybWF0UmVhZGVyQXZhaWxhYmxlKCkKLXsKLSAgICBp
ZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViTUZvcm1hdFJl
YWRlckVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0jaWYgIVVTRShBUFBMRV9J
TlRFUk5BTF9TREspCi0gICAgLy8gRklYTUUgKHJkYXI6Ly83MjMyMDQxOSk6IElmIFdlYktpdCB3
YXMgYnVpbHQgd2l0aCBhZC1ob2MgY29kZS1zaWduaW5nLAotICAgIC8vIENvcmVNZWRpYSB3aWxs
IG9ubHkgbG9hZCB0aGUgZm9ybWF0IHJlYWRlciBwbHVnLWluIHdoZW4gYSB1c2VyIGRlZmF1bHQK
LSAgICAvLyBpcyBzZXQgb24gQXBwbGUgaW50ZXJuYWwgT1NzLiBUaGF0IG1lYW5zIHdlIGNhbm5v
dCBjdXJyZW50bHkgc3VwcG9ydCBXZWJNCi0gICAgLy8gaW4gcHVibGljIFNESyBidWlsZHMgb24g
Y3VzdG9tZXIgT1NzLgotICAgIGlmICghb3NfdmFyaWFudF9hbGxvd3NfaW50ZXJuYWxfc2VjdXJp
dHlfcG9saWNpZXMoImNvbS5hcHBsZS5XZWJLaXQiKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
I2VuZGlmCi0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLSNlbmRpZgotCiBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlw
ZUFuZENvZGVjcyhjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
KQogewogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCkBAIC0xNzExLDE5ICsxNjk3LDYgQEAgTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpzdXBwb3J0c1R5cGVBbmRDb2QKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpTdXBwb3J0
c1R5cGU6OklzTm90U3VwcG9ydGVkOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfU09VUkNF
KSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQotICAgIGlmIChpc0Zvcm1hdFJlYWRl
ckF2YWlsYWJsZSgpKSB7Ci0gICAgICAgIGF1dG8gc3VwcG9ydGVkID0gU291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZChwYXJhbWV0ZXJzLnR5cGUpOwotICAgICAg
ICBpZiAoc3VwcG9ydGVkICE9IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9y
dGVkKSB7Ci0gICAgICAgICAgICBlbnN1cmVGb3JtYXRSZWFkZXJJc1JlZ2lzdGVyZWQoKTsKLSAg
ICAgICAgICAgIGlmIChzdXBwb3J0ZWQgPT0gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6TWF5
QmVTdXBwb3J0ZWQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHN1cHBvcnRlZDsKLSAgICAgICAg
ICAgIGlmIChjb250ZW50VHlwZU1lZXRzSGFyZHdhcmVEZWNvZGVSZXF1aXJlbWVudHMocGFyYW1l
dGVycy50eXBlLCBwYXJhbWV0ZXJzLmNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9y
dCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6Oklz
U3VwcG9ydGVkOwotICAgICAgICB9Ci0gICAgfQotI2VuZGlmCi0KICAgICBhdXRvIHN1cHBvcnRl
ZCA9IEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5jYW5EZWNvZGVUeXBlKHBhcmFt
ZXRlcnMudHlwZS5yYXcoKSk7CiAgICAgaWYgKHN1cHBvcnRlZCAhPSBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlOjpJc1N1cHBvcnRlZCkKICAgICAgICAgcmV0dXJuIHN1cHBvcnRlZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZl
clBhcnNlcldlYk0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
U291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKaW5kZXggYzA0M2JlNTY5MmY1ZmViNmU1YjBhZGZm
NDY2MGYxZDUxZGZjMjMyOC4uNWIwYTAyNzM5ODkxN2ZkYThjMjBmZWI3MDc3YTYzZmVlMTg5MzY4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291
cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAK
ICNpbmNsdWRlIDx3dGYvU3RkTGlzdC5oPgogI2luY2x1ZGUgPHd0Zi9jZi9UeXBlQ2FzdHNDRi5o
PgogI2luY2x1ZGUgPHd0Zi9kYXJ3aW4vV2Vha0xpbmtpbmcuaD4KKyNpbmNsdWRlIDx3dGYvc3Bp
L2Rhcndpbi9PU1ZhcmlhbnRTUEkuaD4KIAogI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgi
CiAjaW5jbHVkZSAiVmlkZW9Ub29sYm94U29mdExpbmsuaCIKQEAgLTQ0MywxNCArNDQ0LDY2IEBA
IHByaXZhdGU6CiAgICAgd2VibTo6VHJhY2tFbnRyeSBtX3RyYWNrOwogfTsKIAorYm9vbCBTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNOjptX2Zvcm1hdFJlYWRlckVuYWJsZWQ7CisKK3ZvaWQgU291cmNl
QnVmZmVyUGFyc2VyV2ViTTo6c2V0V2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoYm9vbCBlbmFibGVk
KQoreworI2lmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCisgICAgbV9mb3JtYXRSZWFk
ZXJFbmFibGVkID0gZW5hYmxlZDsKKyNlbmRpZgorfQorCitjb25zdCBIYXNoU2V0PFN0cmluZywg
QVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6d2VibU1J
TUVUeXBlcygpCit7CisgICAgc3RhdGljIGF1dG8gdHlwZXMgPSBtYWtlTmV2ZXJEZXN0cm95ZWQo
W10geworCisgICAgICAgIEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+
IHR5cGVzOworCisjaWYgRU5BQkxFKFZQOSkKKyAgICAgICAgdHlwZXMuYWRkKCJ2aWRlby93ZWJt
Iik7CisjZW5kaWYKKyNpZiBFTkFCTEUoVk9SQklTKSB8fCBFTkFCTEUoT1BVUykKKyAgICAgICAg
dHlwZXMuYWRkKCJhdWRpby93ZWJtIik7CisjZW5kaWYKKworICAgICAgICByZXR1cm4gdHlwZXM7
CisgICAgfSgpKTsKKworICAgIHJldHVybiB0eXBlczsKK30KKworc3RhdGljIGJvb2wgY2FuTG9h
ZEZvcm1hdFJlYWRlcigpCit7CisjaWYgIUhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCisg
ICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQor
ICAgIHJldHVybiB0cnVlOworI2Vsc2UKKyAgICAvLyBGSVhNRSAocmRhcjovLzcyMzIwNDE5KTog
SWYgV2ViS2l0IHdhcyBidWlsdCB3aXRoIGFkLWhvYyBjb2RlLXNpZ25pbmcsCisgICAgLy8gQ29y
ZU1lZGlhIHdpbGwgb25seSBsb2FkIHRoZSBmb3JtYXQgcmVhZGVyIHBsdWctaW4gd2hlbiBhIHVz
ZXIgZGVmYXVsdAorICAgIC8vIGlzIHNldCBvbiBBcHBsZSBpbnRlcm5hbCBPU3MuIFRoYXQgbWVh
bnMgd2UgY2Fubm90IGN1cnJlbnRseSBzdXBwb3J0IFdlYk0KKyAgICAvLyBpbiBwdWJsaWMgU0RL
IGJ1aWxkcyBvbiBjdXN0b21lciBPU3MuCisgICAgc3RhdGljIGJvb2wgYWxsb3dzSW50ZXJuYWxT
ZWN1cml0eVBvbGljaWVzID0gb3NfdmFyaWFudF9hbGxvd3NfaW50ZXJuYWxfc2VjdXJpdHlfcG9s
aWNpZXMoImNvbS5hcHBsZS5XZWJLaXQiKTsKKyAgICByZXR1cm4gYWxsb3dzSW50ZXJuYWxTZWN1
cml0eVBvbGljaWVzOworI2VuZGlmIC8vICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorfQorCiti
b29sIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzV2ViTUZvcm1hdFJlYWRlckF2YWlsYWJsZSgp
Cit7CisgICAgcmV0dXJuIG1fZm9ybWF0UmVhZGVyRW5hYmxlZCAmJiBjYW5Mb2FkRm9ybWF0UmVh
ZGVyKCkgJiYgaXNXZWJtUGFyc2VyQXZhaWxhYmxlKCk7Cit9CisKIE1lZGlhUGxheWVyRW51bXM6
OlN1cHBvcnRzVHlwZSBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9y
dGVkKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBlKQogewogI2lmIEVOQUJMRShWUDkpIHx8IEVOQUJM
RShWT1JCSVMpIHx8IEVOQUJMRShPUFVTKQogICAgIGlmICghaXNXZWJtUGFyc2VyQXZhaWxhYmxl
KCkpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90
U3VwcG9ydGVkOwogCi0gICAgYm9vbCBpc0F1ZGlvQ29udGFpbmVyVHlwZSA9IFdURjo6ZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZSh0eXBlLmNvbnRhaW5lclR5cGUoKSwgImF1ZGlvL3dlYm0iKTsKLSAg
ICBib29sIGlzVmlkZW9Db250YWluZXJUeXBlID0gV1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNl
KHR5cGUuY29udGFpbmVyVHlwZSgpLCAidmlkZW8vd2VibSIpOworICAgIGF1dG8gY29udGFpbmVy
VHlwZSA9IHR5cGUuY29udGFpbmVyVHlwZSgpOworICAgIGJvb2wgaXNBdWRpb0NvbnRhaW5lclR5
cGUgPSBXVEY6OmVxdWFsSWdub3JpbmdBU0NJSUNhc2UoY29udGFpbmVyVHlwZSwgImF1ZGlvL3dl
Ym0iKTsKKyAgICBib29sIGlzVmlkZW9Db250YWluZXJUeXBlID0gV1RGOjplcXVhbElnbm9yaW5n
QVNDSUlDYXNlKGNvbnRhaW5lclR5cGUsICJ2aWRlby93ZWJtIik7CiAgICAgaWYgKCFpc0F1ZGlv
Q29udGFpbmVyVHlwZSAmJiAhaXNWaWRlb0NvbnRhaW5lclR5cGUpCiAgICAgICAgIHJldHVybiBN
ZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogICAgIApAQCAt
NDczLDIyICs1MjYsMTggQEAgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIFNvdXJjZUJ1
ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY28KICAgICBpZiAoIWlzQW55
Q29kZWNBdmFpbGFibGUpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0
c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCi0gICAgU3RyaW5nIGNvZGVjc1BhcmFtZXRlciA9IHR5
cGUucGFyYW1ldGVyKENvbnRlbnRUeXBlOjpjb2RlY3NQYXJhbWV0ZXIoKSk7Ci0gICAgaWYgKCFj
b2RlY3NQYXJhbWV0ZXIpCi0gICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0
c1R5cGU6Ok1heUJlU3VwcG9ydGVkOwotCi0gICAgYXV0byBzcGxpdFJlc3VsdHMgPSBTdHJpbmdW
aWV3KGNvZGVjc1BhcmFtZXRlcikuc3BsaXQoJywnKTsKLSAgICBpZiAoc3BsaXRSZXN1bHRzLmJl
Z2luKCkgPT0gc3BsaXRSZXN1bHRzLmVuZCgpKQorICAgIGF1dG8gY29kZWNzID0gdHlwZS5jb2Rl
Y3MoKTsKKyAgICBpZiAoY29kZWNzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxh
eWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6TWF5QmVTdXBwb3J0ZWQ7CiAKLSAgICBmb3IgKGF1dG8g
c3BsaXQgOiBzcGxpdFJlc3VsdHMpIHsKKyAgICBmb3IgKGF1dG8mIGNvZGVjIDogY29kZWNzKSB7
CiAjaWYgRU5BQkxFKFZQOSkKLSAgICAgICAgaWYgKHNwbGl0LnN0YXJ0c1dpdGgoInZwMDkiKSB8
fCBzcGxpdC5zdGFydHNXaXRoKCJ2cDA4IikgfHwgZXF1YWwoc3BsaXQsICJ2cDgiKSB8fCBlcXVh
bChzcGxpdCwgInZwOSIpKSB7CisgICAgICAgIGlmIChjb2RlYy5zdGFydHNXaXRoKCJ2cDA5Iikg
fHwgY29kZWMuc3RhcnRzV2l0aCgidnAwOCIpIHx8IGVxdWFsKGNvZGVjLCAidnA4IikgfHwgZXF1
YWwoY29kZWMsICJ2cDkiKSkgewogCiAgICAgICAgICAgICBpZiAoIWlzVlA5RGVjb2RlckF2YWls
YWJsZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0
c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCi0gICAgICAgICAgICBhdXRvIGNvZGVjUGFyYW1ldGVy
cyA9IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoc3BsaXQpOworICAgICAgICAgICAgYXV0byBjb2Rl
Y1BhcmFtZXRlcnMgPSBwYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKGNvZGVjKTsKICAgICAgICAgICAg
IGlmICghY29kZWNQYXJhbWV0ZXJzKQogICAgICAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXll
ckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCkBAIC01MDAsNyArNTQ5LDcg
QEAgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06
OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY28KICNlbmRpZiAvLyBFTkFCTEUoVlA5KQogCiAjaWYg
RU5BQkxFKFZPUkJJUykKLSAgICAgICAgaWYgKHNwbGl0ID09ICJ2b3JiaXMiKSB7CisgICAgICAg
IGlmIChjb2RlYyA9PSAidm9yYmlzIikgewogICAgICAgICAgICAgaWYgKCFpc1ZvcmJpc0RlY29k
ZXJBdmFpbGFibGUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6
U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKIApAQCAtNTA5LDcgKzU1OCw3IEBAIE1lZGlh
UGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjppc0NvbnRl
bnRUeXBlU3VwcG9ydGVkKGNvCiAjZW5kaWYgLy8gRU5BQkxFKFZPUkJJUykKIAogI2lmIEVOQUJM
RShPUFVTKQotICAgICAgICBpZiAoc3BsaXQgPT0gIm9wdXMiKSB7CisgICAgICAgIGlmIChjb2Rl
YyA9PSAib3B1cyIpIHsKICAgICAgICAgICAgIGlmICghaXNPcHVzRGVjb2RlckF2YWlsYWJsZSgp
KQogICAgICAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6
OklzTm90U3VwcG9ydGVkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmgKaW5kZXggZWNh
MDNjMjA0ZmExMDA3ZTVjMjUzYjUzYTJmZjRhNTJiNWNiMTc5Yy4uMTMyYWM4MjcxMjAzMDFhYzRh
ZTMwMTc4MWU4ZmU1MmQyYTlmZGY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaApA
QCAtNjAsNyArNjAsMTAgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgU291cmNlQnVmZmVyUGFyc2Vy
V2ViTSA6IHB1YmxpYyBTb3VyY2VCdWZmZXJQYXJzZXIsIHByaXZhdGUKIHB1YmxpYzoKICAgICBj
bGFzcyBTdHJlYW1pbmdWZWN0b3JSZWFkZXI7CiAKKyAgICBzdGF0aWMgYm9vbCBpc1dlYk1Gb3Jt
YXRSZWFkZXJBdmFpbGFibGUoKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRXZWJNRm9ybWF0UmVhZGVy
RW5hYmxlZChib29sKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBl
IGlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY29uc3QgQ29udGVudFR5cGUmKTsKKyAgICBzdGF0aWMg
Y29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHdlYm1NSU1F
VHlwZXMoKTsKICAgICBzdGF0aWMgUmVmUHRyPFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0+IGNyZWF0
ZShjb25zdCBDb250ZW50VHlwZSYpOwogCiAgICAgU291cmNlQnVmZmVyUGFyc2VyV2ViTSgpOwpA
QCAtMjY4LDYgKzI3MSw4IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8Y29uc3QgV1RGOjpMb2dn
ZXI+IG1fbG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllciB7IG51bGxwdHIg
fTsKKyAgICAKKyAgICBzdGF0aWMgYm9vbCBtX2Zvcm1hdFJlYWRlckVuYWJsZWQ7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGM2
ZDg5ZDA5NzYzNTMxYzMzZWRiMjhiZjNhMDA4MTM4MjA0MDJkYjYuLmE0ZmY0YmEwMmE5ZDMyZjMw
NDhhZDk1OWI0NjNlNzQyYzI3ZDMzNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNDEsNiArMzQxLDEwIEBACiAjZW5kaWYKICNlbmRpZgog
CisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURF
UikKKyNpbmNsdWRlIDxXZWJDb3JlL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmg+CisjZW5kaWYKKwog
bmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0zODQzLDYgKzM4NDcsMTAgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVm
ZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICAgICAgICAgIHNl
dHRpbmdzLnNldFdlYkF1dGhlbnRpY2F0aW9uRW5hYmxlZCh0cnVlKTsKICAgICB9CiAjZW5kaWYK
KworI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFE
RVIpCisgICAgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLnNldFdlYk1Gb3JtYXRS
ZWFkZXJFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2Vi
TUZvcm1hdFJlYWRlckVuYWJsZWQoKSk7CisjZW5kaWYKIH0KIAogI2lmIEVOQUJMRShEQVRBX0RF
VEVDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tCmluZGV4IDcxZDRhOWE3OGFiMGNjZWQ5ZDA5YTJmOWI0NjYyNDExYzA3ODRiYzcu
LjIzZjg0ZTdjYWYwMTZjNDQxZDIwY2U2ZTU1M2Y3ODRhMzYwZWJiNWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtNjksNiAr
NjksNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QZXJmb3JtYW5jZUxvZ2dpbmcuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CisjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvU1dDb250ZXh0TWFuYWdlci5oPgogI2ltcG9y
dCA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N5c3RlbVNvdW5k
TWFuYWdlci5oPgpAQCAtMzI4LDYgKzMyOSwxMCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3Jt
SW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQog
ICAgIHB0aHJlYWRfc2V0X2ZpeGVkcHJpb3JpdHlfc2VsZigpOwogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQorICAgIEFW
QXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5zZXRXZWJNRm9ybWF0UmVhZGVyRW5hYmxl
ZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYk1Gb3JtYXRSZWFk
ZXJFbmFibGVkKCkpOworI2VuZGlmCisKICAgICBpZiAoIXBhcmFtZXRlcnMubWVkaWFNSU1FVHlw
ZXMuaXNFbXB0eSgpKQogICAgICAgICBzZXRNZWRpYU1JTUVUeXBlcyhwYXJhbWV0ZXJzLm1lZGlh
TUlNRVR5cGVzKTsKICAgICBlbHNlIHsK
</data>
<flag name="commit-queue"
          id="433957"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416425</attachid>
            <date>2020-12-17 09:03:31 -0800</date>
            <delta_ts>2020-12-17 09:45:29 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-219961-20201217090330.patch</filename>
            <type>text/plain</type>
            <size>22502</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwODkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjMyMDI4ZjczZTQ1ZThl
ODdiMjdjMTIzODNlMGFjMDFkZTRkYzgxMi4uMjhlNjg0N2E1ZWU5ZjExMWEzMmQ5NDBkZDVlMWQx
MGMwZmU2ODNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTEyLTE2ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2Vi
TSBmb3JtYXQgcmVhZGVyIGRvZXNuJ3Qgd29yayB3aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5
OTYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjM5OTAxND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBBbmR5IEVzdGVzLgorCisgICAgICAgIFdvcmsgYXJvdW5kIGEgYnVnIHRoYXQgbWFrZXMg
dGhlIGZvcm1hdCByZWFkZXIgZmFpbCB0byBsb2FkIHdoZW4gdGhlIEFWVVJMQXNzZXRPdXRPZkJh
bmRNSU1FVHlwZUtleQorICAgICAgICBpcyBpbmNsdWRlZCBpbiB0aGUgQVZVUkxBc3NldCBvcHRp
b25zIGRpY3Rpb25hcnkuIEFsc28gaW5jbHVkZSBzb21lIGNsZWFudXA6CisgICAgICAgIC0gTW92
ZSB0aGUgY29kZSB0byBjaGVjayBmb3IgV2ViTSBNSU1FIHR5cGVzIGZyb20gTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQworICAgICAgICAgIHRvIEFWQXNzZXRNSU1FVHlwZUNhY2hl
LgorICAgICAgICAtIERvbid0IHVzZSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzIGluIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuCisgICAgICAgIC0gUmVnaXN0ZXIgdGhlIFdlYk0g
Zm9ybWF0IHJlYWRlciB3aGVuIGNyZWF0aW5nIGFuIEFWVVJMQXNzZXQgZm9yIGEgV2ViTSB1cmwg
aW5zdGVhZAorICAgICAgICAgIG9mIHdoZW4gY2hlY2tpbmcgdGhlIE1JTUUgdHlwZS4KKyAgICAg
ICAgLSBDbGVhbnVwIFdlYk0gImNvZGVjcyIgcGFyYW1ldGVyIHBhcnNpbmcuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNo
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNz
ZXRNSU1FVHlwZUNhY2hlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2Fj
aGU6OmNhbkRlY29kZUV4dGVuZGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlN
RVR5cGVDYWNoZTo6c3RhdGljQ29udGFpbmVyVHlwZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6
QVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6cmVnaXN0ZXJGb3JtYXRS
ZWFkZXJJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRBZHZlcnRpc2VPdXRP
ZkJhbmRNSU1FVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6
CisgICAgICAgIChXZWJDb3JlOjplbnN1cmVGb3JtYXRSZWFkZXJJc1JlZ2lzdGVyZWQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNGb3JtYXRSZWFkZXJBdmFpbGFibGUpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldl
Yk0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6c2V0V2Vi
TUZvcm1hdFJlYWRlckVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6d2VibU1JTUVUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjppc1dlYk1Gb3JtYXRSZWFkZXJBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oOgor
CiAyMDIwLTEyLTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1ha2UgRnJhbWVWaWV3OjptX2N1c3RvbVNpemVGb3JSZXNpemVFdmVudCBhbiBPcHRp
b25hbDxJbnRTaXplPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlODg3MzFjOTRjNDcxMDhjZDY2OTlhZTY1MzkxMzlk
MzE4Y2VlODNiLi5jNzk0Mjk3ZDEzNjVmZmY4MjNmOTA5MTgwOThiNzNjMTM0NDY2YjI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEyLTE2ICBFcmljIENhcmxzb24gIDxlcmljLmNh
cmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViTSBmb3JtYXQgcmVhZGVyIGRv
ZXNuJ3Qgd29yayB3aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxlbWVudAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5OTYxCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83MjM5OTAxND4KKworICAgICAgICBSZXZpZXdlZCBieSBBbmR5IEVzdGVzLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBs
YXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIwLTEyLTE1ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENhbGxzIHRvIHNldEZpeGVkTGF5
b3V0U2l6ZSgpIHNob3VsZCBub3QgYmUgaW5zaWRlIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaAppbmRleCA5MzE3
OWYyOGQ0MGM3NWNkODQyN2NiMTQ2YTgyMDM0MmIyYjhjNWE1Li45NzM1OTQ2ZDM3NDc2M2M1MTZh
Y2NkOWRjMTk0OGIxZWI1MjY2OWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNz
ZXRNSU1FVHlwZUNhY2hlLmgKQEAgLTQ1LDYgKzQ1LDggQEAgcHVibGljOgogICAgIGJvb2wgaXNV
bnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJikgZmluYWw7CiAKICAgICB2b2lk
IGFkZFN1cHBvcnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisgICAgCisgICAgdm9p
ZCBzZXRXZWJNRm9ybWF0UmVhZGVyRW5hYmxlZChib29sKTsKIAogcHJpdmF0ZToKICAgICBmcmll
bmQgTmV2ZXJEZXN0cm95ZWQ8QVZBc3NldE1JTUVUeXBlQ2FjaGU+OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1J
TUVUeXBlQ2FjaGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQppbmRleCA4NzA2NjIxNDY2YjU5NTdk
ODU3YzhlNmE5N2M5MWVhNjNmNDYwMWY5Li44YTAwMTFhN2QyYWUxMTIwMzYxNTIyZGU4Yjg1ODc3
M2Q5ODAzMWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVD
YWNoZS5tbQpAQCAtMjksNiArMjksNyBAQAogI2lmIFBMQVRGT1JNKENPQ09BKQogCiAjaW1wb3J0
ICJDb250ZW50VHlwZS5oIgorI2ltcG9ydCAiU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oIgogI2lt
cG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY29jb2EvQVZG
b3VuZGF0aW9uU29mdExpbmsuaD4KIApAQCAtNjMsOSArNjQsMTYgQEAgYm9vbCBBVkFzc2V0TUlN
RVR5cGVDYWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBl
KQogewogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKICAgICBBU1NFUlQo
aXNBdmFpbGFibGUoKSk7Ci0gICAgcmV0dXJuIFtQQUw6OmdldEFWVVJMQXNzZXRDbGFzcygpIGlz
UGxheWFibGVFeHRlbmRlZE1JTUVUeXBlOnR5cGUucmF3KCldOworICAgIGlmIChbUEFMOjpnZXRB
VlVSTEFzc2V0Q2xhc3MoKSBpc1BsYXlhYmxlRXh0ZW5kZWRNSU1FVHlwZTp0eXBlLnJhdygpXSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZF
KE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQorICAgIGlmIChTb3VyY2VCdWZmZXJQYXJzZXJXZWJN
Ojppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKHR5cGUpID09IE1lZGlhUGxheWVyRW51bXM6OlN1cHBv
cnRzVHlwZTo6SXNTdXBwb3J0ZWQpCisgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAKKyNl
bmRpZiAvLyBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCisKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKQEAgLTk2LDM5ICsxMDQsNTMgQEAgYm9vbCBBVkFzc2V0TUlNRVR5cGVDYWNo
ZTo6aXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogCiBjb25z
dCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgQVZBc3NldE1JTUVU
eXBlQ2FjaGU6OnN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KCkKIHsKLSAgICBzdGF0aWMgY29uc3Qg
YXV0byBjYWNoZSA9IG1ha2VOZXZlckRlc3Ryb3llZChIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPiB7Ci0gICAgICAgICJhcHBsaWNhdGlvbi92bmQuYXBwbGUubXBlZ3Vy
bCIsCi0gICAgICAgICJhcHBsaWNhdGlvbi94LW1wZWd1cmwiLAotICAgICAgICAiYXVkaW8vM2dw
cCIsCi0gICAgICAgICJhdWRpby9hYWMiLAotICAgICAgICAiYXVkaW8vYWFjcCIsCi0gICAgICAg
ICJhdWRpby9haWZmIiwKLSAgICAgICAgImF1ZGlvL2Jhc2ljIiwKLSAgICAgICAgImF1ZGlvL21w
MyIsCi0gICAgICAgICJhdWRpby9tcDQiLAotICAgICAgICAiYXVkaW8vbXBlZyIsCi0gICAgICAg
ICJhdWRpby9tcGVnMyIsCi0gICAgICAgICJhdWRpby9tcGVndXJsIiwKLSAgICAgICAgImF1ZGlv
L21wZyIsCi0gICAgICAgICJhdWRpby92bmQud2F2ZSIsCi0gICAgICAgICJhdWRpby93YXYiLAot
ICAgICAgICAiYXVkaW8vd2F2ZSIsCi0gICAgICAgICJhdWRpby94LWFhYyIsCi0gICAgICAgICJh
dWRpby94LWFpZmYiLAotICAgICAgICAiYXVkaW8veC1tNGEiLAotICAgICAgICAiYXVkaW8veC1t
cGVndXJsIiwKLSAgICAgICAgImF1ZGlvL3gtd2F2IiwKLSAgICAgICAgInZpZGVvLzNncHAiLAot
ICAgICAgICAidmlkZW8vM2dwcDIiLAotICAgICAgICAidmlkZW8vbXA0IiwKLSAgICAgICAgInZp
ZGVvL21wZWciLAotICAgICAgICAidmlkZW8vbXBlZzIiLAotICAgICAgICAidmlkZW8vbXBnIiwK
LSAgICAgICAgInZpZGVvL3F1aWNrdGltZSIsCi0gICAgICAgICJ2aWRlby94LW00diIsCi0gICAg
ICAgICJ2aWRlby94LW1wZWciLAotICAgICAgICAidmlkZW8veC1tcGciLAotICAgIH0pOworICAg
IHN0YXRpYyBhdXRvIGNhY2hlID0gbWFrZU5ldmVyRGVzdHJveWVkKFt0aGlzXSB7CisgICAgICAg
IFVOVVNFRF9QQVJBTSh0aGlzKTsKKworICAgICAgICBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPiBjYWNoZSA9IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxTdHJpbmc+IHsK
KyAgICAgICAgICAgICJhcHBsaWNhdGlvbi92bmQuYXBwbGUubXBlZ3VybCJfcywKKyAgICAgICAg
ICAgICJhcHBsaWNhdGlvbi94LW1wZWd1cmwiX3MsCisgICAgICAgICAgICAiYXVkaW8vM2dwcCJf
cywKKyAgICAgICAgICAgICJhdWRpby9hYWMiX3MsCisgICAgICAgICAgICAiYXVkaW8vYWFjcCJf
cywKKyAgICAgICAgICAgICJhdWRpby9haWZmIl9zLAorICAgICAgICAgICAgImF1ZGlvL2Jhc2lj
Il9zLAorICAgICAgICAgICAgImF1ZGlvL21wMyJfcywKKyAgICAgICAgICAgICJhdWRpby9tcDQi
X3MsCisgICAgICAgICAgICAiYXVkaW8vbXBlZyJfcywKKyAgICAgICAgICAgICJhdWRpby9tcGVn
MyJfcywKKyAgICAgICAgICAgICJhdWRpby9tcGVndXJsIl9zLAorICAgICAgICAgICAgImF1ZGlv
L21wZyJfcywKKyAgICAgICAgICAgICJhdWRpby92bmQud2F2ZSJfcywKKyAgICAgICAgICAgICJh
dWRpby93YXYiX3MsCisgICAgICAgICAgICAiYXVkaW8vd2F2ZSJfcywKKyAgICAgICAgICAgICJh
dWRpby94LWFhYyJfcywKKyAgICAgICAgICAgICJhdWRpby94LWFpZmYiX3MsCisgICAgICAgICAg
ICAiYXVkaW8veC1tNGEiX3MsCisgICAgICAgICAgICAiYXVkaW8veC1tcGVndXJsIl9zLAorICAg
ICAgICAgICAgImF1ZGlvL3gtd2F2Il9zLAorICAgICAgICAgICAgInZpZGVvLzNncHAiX3MsCisg
ICAgICAgICAgICAidmlkZW8vM2dwcDIiX3MsCisgICAgICAgICAgICAidmlkZW8vbXA0Il9zLAor
ICAgICAgICAgICAgInZpZGVvL21wZWciX3MsCisgICAgICAgICAgICAidmlkZW8vbXBlZzIiX3Ms
CisgICAgICAgICAgICAidmlkZW8vbXBnIl9zLAorICAgICAgICAgICAgInZpZGVvL3F1aWNrdGlt
ZSJfcywKKyAgICAgICAgICAgICJ2aWRlby94LW00diJfcywKKyAgICAgICAgICAgICJ2aWRlby94
LW1wZWciX3MsCisgICAgICAgICAgICAidmlkZW8veC1tcGciX3MsCisgICAgICAgIH07CisKKyNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQor
ICAgICAgICBpZiAoU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNXZWJNRm9ybWF0UmVhZGVyQXZh
aWxhYmxlKCkpIHsKKyAgICAgICAgICAgIGF1dG8gd2VibVR5cGVzID0gU291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6d2VibU1JTUVUeXBlcygpOworICAgICAgICAgICAgY2FjaGUuYWRkKHdlYm1UeXBl
cy5iZWdpbigpLCB3ZWJtVHlwZXMuZW5kKCkpOworICAgICAgICB9CisjZW5kaWYKKworICAgICAg
ICByZXR1cm4gY2FjaGU7CisgICAgfSgpKTsKKwogICAgIHJldHVybiBjYWNoZTsKIH0KIApAQCAt
MTUzLDYgKzE3NSwxNiBAQCB2b2lkIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjppbml0aWFsaXplQ2Fj
aGUoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSAogI2VuZGlmCiB9CiAKK3Zv
aWQgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKK3sKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9G
T1JNQVRfUkVBREVSKQorICAgIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OnNldFdlYk1Gb3JtYXRS
ZWFkZXJFbmFibGVkKGVuYWJsZWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7
CisjZW5kaWYKK30KKworCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXgg
ZDY0YTcyNTYyYTI0YzBkOGExZGJiYTMwOWNlNTE1YzhjZmVjNGFlMS4uYmYzMTcwMzk0MGVkNjg0
NzIyMjg2N2E2ZTk0ZDg0Y2M5MDM0ZDEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC01
Niw3ICs1Niw2IEBACiAjaW1wb3J0ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCiAjaW1wb3J0
ICJQbGF0Zm9ybVRpbWVSYW5nZXMuaCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5oIgotI2ltcG9ydCAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2ltcG9ydCAiU2VjdXJp
dHlPcmlnaW4uaCIKICNpbXBvcnQgIlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaCIKICNp
bXBvcnQgIlNoYXJlZEJ1ZmZlci5oIgpAQCAtMTAwLDcgKzk5LDYgQEAKICNpbXBvcnQgPHd0Zi9P
U09iamVjdFB0ci5oPgogI2ltcG9ydCA8d3RmL1VSTC5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1Zl
Y3RvckNvY29hLmg+Ci0jaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9PU1ZhcmlhbnRTUEkuaD4KICNp
bXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbXBvcnQgPHd0Zi90aHJlYWRzL0JpbmFyeVNl
bWFwaG9yZS5oPgogCkBAIC0yNzAsNiArMjY4LDIwIEBAIHN0YXRpYyBkaXNwYXRjaF9xdWV1ZV90
IGdsb2JhbFB1bGxEZWxlZ2F0ZVF1ZXVlKCkKICAgICByZXR1cm4gZ2xvYmFsUXVldWU7CiB9CiAK
K3N0YXRpYyB2b2lkIHJlZ2lzdGVyRm9ybWF0UmVhZGVySWZOZWNlc3NhcnkoKQoreworI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCisgICAg
c3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47CisgICAgZGlzcGF0Y2hfb25jZSgmb25j
ZVRva2VuLCBeeworICAgICAgICAvLyBMaWtlIHdlIGRvIGZvciBvdGhlciBtZWRpYSBmb3JtYXRz
LCBhbGxvdyB0aGUgZm9ybWF0IHJlYWRlciB0byBydW4gaW4gdGhlIFdlYkNvbnRlbnQgb3IgR1BV
IHByb2Nlc3MKKyAgICAgICAgLy8gKHdoaWNoIGlzIGFscmVhZHkgYXBwcm9wcmlhdGVseSBzYW5k
Ym94ZWQpIHJhdGhlciB0aGFuIGluIGEgc2VwYXJhdGUgTWVkaWFUb29sYm94IFhQQyBzZXJ2aWNl
LgorICAgICAgICBSRUxFQVNFX0FTU0VSVChpc0luR1BVUHJvY2VzcygpIHx8IGlzSW5XZWJQcm9j
ZXNzKCkpOworICAgICAgICBNVFJlZ2lzdGVyUGx1Z2luRm9ybWF0UmVhZGVyQnVuZGxlRGlyZWN0
b3J5KChfX2JyaWRnZSBDRlVSTFJlZilOU0J1bmRsZS5tYWluQnVuZGxlLmJ1aWx0SW5QbHVnSW5z
VVJMKTsKKyAgICAgICAgTVRQbHVnaW5Gb3JtYXRSZWFkZXJEaXNhYmxlU2FuZGJveGluZygpOwor
ICAgIH0pOworI2VuZGlmCit9CisKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OkZhY3RvcnkgZmluYWwgOiBwdWJsaWMgTWVkaWFQbGF5ZXJGYWN0b3J5IHsKIHByaXZh
dGU6CiAgICAgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGlkZW50aWZp
ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXI6OkFWRm91bmRhdGlvbjsgfTsKQEAgLTc5Miw2ICs4MDQsMTkgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0
IFVSTCYgdXJsKQogCiB9CiAKK3N0YXRpYyBib29sIHdpbGxVc2VXZWJNRm9ybWF0UmVhZGVyRm9y
VHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCit7CisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYg
SEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICBpZiAoIVNvdXJjZUJ1ZmZlclBhcnNl
cldlYk06OmlzV2ViTUZvcm1hdFJlYWRlckF2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgCisgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UodHlwZSwgInZpZGVv
L3dlYm0iKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHR5cGUsICJhdWRpby93ZWJtIik7Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0eXBlKTsKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYK
K30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVkFz
c2V0Rm9yVVJMKGNvbnN0IFVSTCYgdXJsLCBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4g
b3B0aW9ucykKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwpAQCAtODMzLDcgKzg1
OCwxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFW
QXNzZXRGb3JVUkwoY29uc3QgVVJMJiB1cmwsIFJldAogI2VuZGlmCiAKICAgICBhdXRvIHR5cGUg
PSBwbGF5ZXIoKS0+Y29udGVudE1JTUVUeXBlKCk7Ci0gICAgaWYgKFBBTDo6Y2FuTG9hZF9BVkZv
dW5kYXRpb25fQVZVUkxBc3NldE91dE9mQmFuZE1JTUVUeXBlS2V5KCkgJiYgIXR5cGUuaXNFbXB0
eSgpICYmICFwbGF5ZXIoKS0+Y29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9u
KCkpIHsKKworICAgIC8vIERvbid0IGFkdmVydGlzZSBXZWJNIE1JTUUgdHlwZXMgb3IgdGhlIGZv
cm1hdCByZWFkZXIgd29uJ3QgYmUgbG9hZGVkIHVudGlsIHJkYXI6Ly83MjQwNTEyNyBpcyBmaXhl
ZC4KKyAgICBhdXRvIHdpbGxVc2VXZWJNRm9ybWF0UmVhZGVyID0gd2lsbFVzZVdlYk1Gb3JtYXRS
ZWFkZXJGb3JUeXBlKHR5cGUpOworCisgICAgaWYgKFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25f
QVZVUkxBc3NldE91dE9mQmFuZE1JTUVUeXBlS2V5KCkgJiYgIXR5cGUuaXNFbXB0eSgpICYmICFw
bGF5ZXIoKS0+Y29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uKCkgJiYgIXdp
bGxVc2VXZWJNRm9ybWF0UmVhZGVyKSB7CiAgICAgICAgIGF1dG8gY29kZWNzID0gcGxheWVyKCkt
PmNvbnRlbnRUeXBlQ29kZWNzKCk7CiAgICAgICAgIGlmICghY29kZWNzLmlzRW1wdHkoKSkgewog
ICAgICAgICAgICAgTlNTdHJpbmcgKnR5cGVTdHJpbmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpAIiVAOyBjb2RlY3M9XCIlQFwiIiwgKE5TU3RyaW5nICopdHlwZSwgKE5TU3RyaW5nICop
Y29kZWNzXTsKQEAgLTg3Niw2ICs5MDUsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3QgVVJMJiB1cmwsIFJldAogICAg
ICAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0OkBOTyBmb3JLZXk6QVZVUkxBc3NldFVzZXNOb1Bl
cnNpc3RlbnRDYWNoZUtleV07CiAgICAgfQogCisgICAgaWYgKHdpbGxVc2VXZWJNRm9ybWF0UmVh
ZGVyKQorICAgICAgICByZWdpc3RlckZvcm1hdFJlYWRlcklmTmVjZXNzYXJ5KCk7CisKICAgICBO
U1VSTCAqY29jb2FVUkwgPSBjYW5vbmljYWxVUkwodXJsKTsKICAgICBtX2F2QXNzZXQgPSBhZG9w
dE5TKFtQQUw6OmFsbG9jQVZVUkxBc3NldEluc3RhbmNlKCkgaW5pdFdpdGhVUkw6Y29jb2FVUkwg
b3B0aW9uczpvcHRpb25zLmdldCgpXSk7CiAKQEAgLTE2NjcsMzkgKzE2OTksNiBAQCBzdGF0aWMg
Ym9vbCBrZXlTeXN0ZW1Jc1N1cHBvcnRlZChjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKIH0KICNl
bmRpZgogCi0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFU
X1JFQURFUikKLXN0YXRpYyB2b2lkIGVuc3VyZUZvcm1hdFJlYWRlcklzUmVnaXN0ZXJlZCgpCi17
Ci0gICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47Ci0gICAgZGlzcGF0Y2hfb25j
ZSgmb25jZVRva2VuLCBeewotICAgICAgICAvLyBMaWtlIHdlIGRvIGZvciBvdGhlciBtZWRpYSBm
b3JtYXRzLCBhbGxvdyB0aGUgZm9ybWF0IHJlYWRlciB0byBydW4gaW4gdGhlIFdlYkNvbnRlbnQg
b3IgR1BVIHByb2Nlc3MKLSAgICAgICAgLy8gKHdoaWNoIGlzIGFscmVhZHkgYXBwcm9wcmlhdGVs
eSBzYW5kYm94ZWQpIHJhdGhlciB0aGFuIGluIGEgc2VwYXJhdGUgTWVkaWFUb29sYm94IFhQQyBz
ZXJ2aWNlLgotICAgICAgICBSRUxFQVNFX0FTU0VSVChpc0luR1BVUHJvY2VzcygpIHx8IGlzSW5X
ZWJQcm9jZXNzKCkpOwotICAgICAgICBNVFJlZ2lzdGVyUGx1Z2luRm9ybWF0UmVhZGVyQnVuZGxl
RGlyZWN0b3J5KChfX2JyaWRnZSBDRlVSTFJlZilOU0J1bmRsZS5tYWluQnVuZGxlLmJ1aWx0SW5Q
bHVnSW5zVVJMKTsKLSAgICAgICAgTVRQbHVnaW5Gb3JtYXRSZWFkZXJEaXNhYmxlU2FuZGJveGlu
ZygpOwotICAgIH0pOwotfQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBI
QVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQotc3RhdGljIGJvb2wgaXNGb3JtYXRSZWFkZXJB
dmFpbGFibGUoKQotewotICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS53ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSNpZiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSAgICAvLyBGSVhNRSAocmRhcjovLzcy
MzIwNDE5KTogSWYgV2ViS2l0IHdhcyBidWlsdCB3aXRoIGFkLWhvYyBjb2RlLXNpZ25pbmcsCi0g
ICAgLy8gQ29yZU1lZGlhIHdpbGwgb25seSBsb2FkIHRoZSBmb3JtYXQgcmVhZGVyIHBsdWctaW4g
d2hlbiBhIHVzZXIgZGVmYXVsdAotICAgIC8vIGlzIHNldCBvbiBBcHBsZSBpbnRlcm5hbCBPU3Mu
IFRoYXQgbWVhbnMgd2UgY2Fubm90IGN1cnJlbnRseSBzdXBwb3J0IFdlYk0KLSAgICAvLyBpbiBw
dWJsaWMgU0RLIGJ1aWxkcyBvbiBjdXN0b21lciBPU3MuCi0gICAgaWYgKCFvc192YXJpYW50X2Fs
bG93c19pbnRlcm5hbF9zZWN1cml0eV9wb2xpY2llcygiY29tLmFwcGxlLldlYktpdCIpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLQotICAgIHJldHVybiB0cnVlOwotfQotI2VuZGlm
Ci0KIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKQEAgLTE3
MTEsMTkgKzE3MTAsNiBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZAogICAgICAgICByZXR1cm4g
TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAjZW5kaWYKIAotI2lm
IEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCi0g
ICAgaWYgKGlzRm9ybWF0UmVhZGVyQXZhaWxhYmxlKCkpIHsKLSAgICAgICAgYXV0byBzdXBwb3J0
ZWQgPSBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKHBhcmFt
ZXRlcnMudHlwZSk7Ci0gICAgICAgIGlmIChzdXBwb3J0ZWQgIT0gTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQpIHsKLSAgICAgICAgICAgIGVuc3VyZUZvcm1hdFJlYWRl
cklzUmVnaXN0ZXJlZCgpOwotICAgICAgICAgICAgaWYgKHN1cHBvcnRlZCA9PSBNZWRpYVBsYXll
cjo6U3VwcG9ydHNUeXBlOjpNYXlCZVN1cHBvcnRlZCkKLSAgICAgICAgICAgICAgICByZXR1cm4g
c3VwcG9ydGVkOwotICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlTWVldHNIYXJkd2FyZURlY29k
ZVJlcXVpcmVtZW50cyhwYXJhbWV0ZXJzLnR5cGUsIHBhcmFtZXRlcnMuY29udGVudFR5cGVzUmVx
dWlyaW5nSGFyZHdhcmVTdXBwb3J0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQ7Ci0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYK
LQogICAgIGF1dG8gc3VwcG9ydGVkID0gQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigp
LmNhbkRlY29kZVR5cGUocGFyYW1ldGVycy50eXBlLnJhdygpKTsKICAgICBpZiAoc3VwcG9ydGVk
ICE9IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzU3VwcG9ydGVkKQogICAgICAgICByZXR1
cm4gc3VwcG9ydGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAppbmRleCBjMDQz
YmU1NjkyZjVmZWI2ZTViMGFkZmY0NjYwZjFkNTFkZmMyMzI4Li41YjBhMDI3Mzk4OTE3ZmRhOGMy
MGZlYjcwNzdhNjNmZWUxODkzNjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNw
cApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaXN0Lmg+CiAjaW5jbHVkZSA8
d3RmL2NmL1R5cGVDYXN0c0NGLmg+CiAjaW5jbHVkZSA8d3RmL2Rhcndpbi9XZWFrTGlua2luZy5o
PgorI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL09TVmFyaWFudFNQSS5oPgogCiAjaW5jbHVkZSAi
Q29yZVZpZGVvU29mdExpbmsuaCIKICNpbmNsdWRlICJWaWRlb1Rvb2xib3hTb2Z0TGluay5oIgpA
QCAtNDQzLDE0ICs0NDQsNjYgQEAgcHJpdmF0ZToKICAgICB3ZWJtOjpUcmFja0VudHJ5IG1fdHJh
Y2s7CiB9OwogCitib29sIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Om1fZm9ybWF0UmVhZGVyRW5h
YmxlZDsKKwordm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpzZXRXZWJNRm9ybWF0UmVhZGVy
RW5hYmxlZChib29sIGVuYWJsZWQpCit7CisjaWYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURF
UikKKyAgICBtX2Zvcm1hdFJlYWRlckVuYWJsZWQgPSBlbmFibGVkOworI2VuZGlmCit9CisKK2Nv
bnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBTb3VyY2VCdWZm
ZXJQYXJzZXJXZWJNOjp3ZWJtTUlNRVR5cGVzKCkKK3sKKyAgICBzdGF0aWMgYXV0byB0eXBlcyA9
IG1ha2VOZXZlckRlc3Ryb3llZChbXSB7CisKKyAgICAgICAgSGFzaFNldDxTdHJpbmcsIEFTQ0lJ
Q2FzZUluc2Vuc2l0aXZlSGFzaD4gdHlwZXM7CisKKyNpZiBFTkFCTEUoVlA5KQorICAgICAgICB0
eXBlcy5hZGQoInZpZGVvL3dlYm0iKTsKKyNlbmRpZgorI2lmIEVOQUJMRShWT1JCSVMpIHx8IEVO
QUJMRShPUFVTKQorICAgICAgICB0eXBlcy5hZGQoImF1ZGlvL3dlYm0iKTsKKyNlbmRpZgorCisg
ICAgICAgIHJldHVybiB0eXBlczsKKyAgICB9KCkpOworCisgICAgcmV0dXJuIHR5cGVzOworfQor
CitzdGF0aWMgYm9vbCBjYW5Mb2FkRm9ybWF0UmVhZGVyKCkKK3sKKyNpZiAhSEFWRShNVF9QTFVH
SU5fRk9STUFUX1JFQURFUikKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKworI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCisgICAgcmV0dXJuIHRydWU7CisjZWxzZQorICAgIC8vIEZJWE1F
IChyZGFyOi8vNzIzMjA0MTkpOiBJZiBXZWJLaXQgd2FzIGJ1aWx0IHdpdGggYWQtaG9jIGNvZGUt
c2lnbmluZywKKyAgICAvLyBDb3JlTWVkaWEgd2lsbCBvbmx5IGxvYWQgdGhlIGZvcm1hdCByZWFk
ZXIgcGx1Zy1pbiB3aGVuIGEgdXNlciBkZWZhdWx0CisgICAgLy8gaXMgc2V0IG9uIEFwcGxlIGlu
dGVybmFsIE9Tcy4gVGhhdCBtZWFucyB3ZSBjYW5ub3QgY3VycmVudGx5IHN1cHBvcnQgV2ViTQor
ICAgIC8vIGluIHB1YmxpYyBTREsgYnVpbGRzIG9uIGN1c3RvbWVyIE9Tcy4KKyAgICBzdGF0aWMg
Ym9vbCBhbGxvd3NJbnRlcm5hbFNlY3VyaXR5UG9saWNpZXMgPSBvc192YXJpYW50X2FsbG93c19p
bnRlcm5hbF9zZWN1cml0eV9wb2xpY2llcygiY29tLmFwcGxlLldlYktpdCIpOworICAgIHJldHVy
biBhbGxvd3NJbnRlcm5hbFNlY3VyaXR5UG9saWNpZXM7CisjZW5kaWYgLy8gIVVTRShBUFBMRV9J
TlRFUk5BTF9TREspCit9CisKK2Jvb2wgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNXZWJNRm9y
bWF0UmVhZGVyQXZhaWxhYmxlKCkKK3sKKyAgICByZXR1cm4gbV9mb3JtYXRSZWFkZXJFbmFibGVk
ICYmIGNhbkxvYWRGb3JtYXRSZWFkZXIoKSAmJiBpc1dlYm1QYXJzZXJBdmFpbGFibGUoKTsKK30K
KwogTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06
OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY29uc3QgQ29udGVudFR5cGUmIHR5cGUpCiB7CiAjaWYg
RU5BQkxFKFZQOSkgfHwgRU5BQkxFKFZPUkJJUykgfHwgRU5BQkxFKE9QVVMpCiAgICAgaWYgKCFp
c1dlYm1QYXJzZXJBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6
OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKLSAgICBib29sIGlzQXVkaW9Db250YWlu
ZXJUeXBlID0gV1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlKHR5cGUuY29udGFpbmVyVHlwZSgp
LCAiYXVkaW8vd2VibSIpOwotICAgIGJvb2wgaXNWaWRlb0NvbnRhaW5lclR5cGUgPSBXVEY6OmVx
dWFsSWdub3JpbmdBU0NJSUNhc2UodHlwZS5jb250YWluZXJUeXBlKCksICJ2aWRlby93ZWJtIik7
CisgICAgYXV0byBjb250YWluZXJUeXBlID0gdHlwZS5jb250YWluZXJUeXBlKCk7CisgICAgYm9v
bCBpc0F1ZGlvQ29udGFpbmVyVHlwZSA9IFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb250
YWluZXJUeXBlLCAiYXVkaW8vd2VibSIpOworICAgIGJvb2wgaXNWaWRlb0NvbnRhaW5lclR5cGUg
PSBXVEY6OmVxdWFsSWdub3JpbmdBU0NJSUNhc2UoY29udGFpbmVyVHlwZSwgInZpZGVvL3dlYm0i
KTsKICAgICBpZiAoIWlzQXVkaW9Db250YWluZXJUeXBlICYmICFpc1ZpZGVvQ29udGFpbmVyVHlw
ZSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RT
dXBwb3J0ZWQ7CiAgICAgCkBAIC00NzMsMjIgKzUyNiwxOCBAQCBNZWRpYVBsYXllckVudW1zOjpT
dXBwb3J0c1R5cGUgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRl
ZChjbwogICAgIGlmICghaXNBbnlDb2RlY0F2YWlsYWJsZSkKICAgICAgICAgcmV0dXJuIE1lZGlh
UGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKLSAgICBTdHJpbmcg
Y29kZWNzUGFyYW1ldGVyID0gdHlwZS5wYXJhbWV0ZXIoQ29udGVudFR5cGU6OmNvZGVjc1BhcmFt
ZXRlcigpKTsKLSAgICBpZiAoIWNvZGVjc1BhcmFtZXRlcikKLSAgICAgICAgcmV0dXJuIE1lZGlh
UGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6TWF5QmVTdXBwb3J0ZWQ7Ci0KLSAgICBhdXRvIHNw
bGl0UmVzdWx0cyA9IFN0cmluZ1ZpZXcoY29kZWNzUGFyYW1ldGVyKS5zcGxpdCgnLCcpOwotICAg
IGlmIChzcGxpdFJlc3VsdHMuYmVnaW4oKSA9PSBzcGxpdFJlc3VsdHMuZW5kKCkpCisgICAgYXV0
byBjb2RlY3MgPSB0eXBlLmNvZGVjcygpOworICAgIGlmIChjb2RlY3MuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpNYXlCZVN1cHBvcnRl
ZDsKIAotICAgIGZvciAoYXV0byBzcGxpdCA6IHNwbGl0UmVzdWx0cykgeworICAgIGZvciAoYXV0
byYgY29kZWMgOiBjb2RlY3MpIHsKICNpZiBFTkFCTEUoVlA5KQotICAgICAgICBpZiAoc3BsaXQu
c3RhcnRzV2l0aCgidnAwOSIpIHx8IHNwbGl0LnN0YXJ0c1dpdGgoInZwMDgiKSB8fCBlcXVhbChz
cGxpdCwgInZwOCIpIHx8IGVxdWFsKHNwbGl0LCAidnA5IikpIHsKKyAgICAgICAgaWYgKGNvZGVj
LnN0YXJ0c1dpdGgoInZwMDkiKSB8fCBjb2RlYy5zdGFydHNXaXRoKCJ2cDA4IikgfHwgZXF1YWwo
Y29kZWMsICJ2cDgiKSB8fCBlcXVhbChjb2RlYywgInZwOSIpKSB7CiAKICAgICAgICAgICAgIGlm
ICghaXNWUDlEZWNvZGVyQXZhaWxhYmxlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE1lZGlh
UGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKLSAgICAgICAgICAg
IGF1dG8gY29kZWNQYXJhbWV0ZXJzID0gcGFyc2VWUENvZGVjUGFyYW1ldGVycyhzcGxpdCk7Cisg
ICAgICAgICAgICBhdXRvIGNvZGVjUGFyYW1ldGVycyA9IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMo
Y29kZWMpOwogICAgICAgICAgICAgaWYgKCFjb2RlY1BhcmFtZXRlcnMpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7
CiAKQEAgLTUwMCw3ICs1NDksNyBAQCBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgU291
cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZChjbwogI2VuZGlmIC8v
IEVOQUJMRShWUDkpCiAKICNpZiBFTkFCTEUoVk9SQklTKQotICAgICAgICBpZiAoc3BsaXQgPT0g
InZvcmJpcyIpIHsKKyAgICAgICAgaWYgKGNvZGVjID09ICJ2b3JiaXMiKSB7CiAgICAgICAgICAg
ICBpZiAoIWlzVm9yYmlzRGVjb2RlckF2YWlsYWJsZSgpKQogICAgICAgICAgICAgICAgIHJldHVy
biBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCkBAIC01
MDksNyArNTU4LDcgQEAgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIFNvdXJjZUJ1ZmZl
clBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY28KICNlbmRpZiAvLyBFTkFCTEUo
Vk9SQklTKQogCiAjaWYgRU5BQkxFKE9QVVMpCi0gICAgICAgIGlmIChzcGxpdCA9PSAib3B1cyIp
IHsKKyAgICAgICAgaWYgKGNvZGVjID09ICJvcHVzIikgewogICAgICAgICAgICAgaWYgKCFpc09w
dXNEZWNvZGVyQXZhaWxhYmxlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVy
RW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBh
cnNlcldlYk0uaAppbmRleCBlY2EwM2MyMDRmYTEwMDdlNWMyNTNiNTNhMmZmNGE1MmI1Y2IxNzlj
Li4xMzJhYzgyNzEyMDMwMWFjNGFlMzAxNzgxZThmZTUyZDJhOWZkZjc4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNl
QnVmZmVyUGFyc2VyV2ViTS5oCkBAIC02MCw3ICs2MCwxMCBAQCBjbGFzcyBXRUJDT1JFX0VYUE9S
VCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNIDogcHVibGljIFNvdXJjZUJ1ZmZlclBhcnNlciwgcHJp
dmF0ZQogcHVibGljOgogICAgIGNsYXNzIFN0cmVhbWluZ1ZlY3RvclJlYWRlcjsKIAorICAgIHN0
YXRpYyBib29sIGlzV2ViTUZvcm1hdFJlYWRlckF2YWlsYWJsZSgpOworICAgIHN0YXRpYyB2b2lk
IHNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKGJvb2wpOwogICAgIHN0YXRpYyBNZWRpYVBsYXll
ckVudW1zOjpTdXBwb3J0c1R5cGUgaXNDb250ZW50VHlwZVN1cHBvcnRlZChjb25zdCBDb250ZW50
VHlwZSYpOworICAgIHN0YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5z
aXRpdmVIYXNoPiYgd2VibU1JTUVUeXBlcygpOwogICAgIHN0YXRpYyBSZWZQdHI8U291cmNlQnVm
ZmVyUGFyc2VyV2ViTT4gY3JlYXRlKGNvbnN0IENvbnRlbnRUeXBlJik7CiAKICAgICBTb3VyY2VC
dWZmZXJQYXJzZXJXZWJNKCk7CkBAIC0yNjgsNiArMjcxLDggQEAgcHJpdmF0ZToKIAogICAgIFJl
ZlB0cjxjb25zdCBXVEY6OkxvZ2dlcj4gbV9sb2dnZXI7CiAgICAgY29uc3Qgdm9pZCogbV9sb2dJ
ZGVudGlmaWVyIHsgbnVsbHB0ciB9OworICAgIAorICAgIHN0YXRpYyBib29sIG1fZm9ybWF0UmVh
ZGVyRW5hYmxlZDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggYzZkODlkMDk3NjM1MzFjMzNlZGIyOGJmM2EwMDgxMzgyMDQwMmRi
Ni4uYTRmZjRiYTAyYTlkMzJmMzA0OGFkOTU5YjQ2M2U3NDJjMjdkMzM1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM0MSw2ICszNDEsMTAg
QEAKICNlbmRpZgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1U
X1BMVUdJTl9GT1JNQVRfUkVBREVSKQorI2luY2x1ZGUgPFdlYkNvcmUvQVZBc3NldE1JTUVUeXBl
Q2FjaGUuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTM4NDMsNiArMzg0NywxMCBAQCB2b2lk
IFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0
b3JlKQogICAgICAgICAgICAgc2V0dGluZ3Muc2V0V2ViQXV0aGVudGljYXRpb25FbmFibGVkKHRy
dWUpOwogICAgIH0KICNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShN
VF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xl
dG9uKCkuc2V0V2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS53ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpKTsKKyNlbmRpZgogfQog
CiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggNzFkNGE5YTc4YWIwY2NlZDlkMDlh
MmY5YjQ2NjI0MTFjMDc4NGJjNy4uMjNmODRlN2NhZjAxNmM0NDFkMjBjZTZlNTUzZjc4NGEzNjBl
YmI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tCkBAIC02OSw2ICs2OSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BlcmZvcm1hbmNl
TG9nZ2luZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TV0NvbnRl
eHRNYW5hZ2VyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N5c3RlbUJhdHRlcnkuaD4KICNpbXBvcnQg
PFdlYkNvcmUvU3lzdGVtU291bmRNYW5hZ2VyLmg+CkBAIC0zMjgsNiArMzI5LDEwIEBAIHZvaWQg
V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzJiBwYXJhCiAgICAgcHRocmVhZF9zZXRfZml4ZWRwcmlvcml0eV9zZWxmKCk7
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZP
Uk1BVF9SRUFERVIpCisgICAgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLnNldFdl
Yk1Gb3JtYXRSZWFkZXJFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkud2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKSk7CisjZW5kaWYKKwogICAgIGlmICghcGFy
YW1ldGVycy5tZWRpYU1JTUVUeXBlcy5pc0VtcHR5KCkpCiAgICAgICAgIHNldE1lZGlhTUlNRVR5
cGVzKHBhcmFtZXRlcnMubWVkaWFNSU1FVHlwZXMpOwogICAgIGVsc2Ugewo=
</data>
<flag name="commit-queue"
          id="433961"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416428</attachid>
            <date>2020-12-17 09:28:50 -0800</date>
            <delta_ts>2020-12-17 11:33:47 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-219961-20201217092850.patch</filename>
            <type>text/plain</type>
            <size>22537</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwODkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjMyMDI4ZjczZTQ1ZThl
ODdiMjdjMTIzODNlMGFjMDFkZTRkYzgxMi4uMjhlNjg0N2E1ZWU5ZjExMWEzMmQ5NDBkZDVlMWQx
MGMwZmU2ODNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTEyLTE2ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2Vi
TSBmb3JtYXQgcmVhZGVyIGRvZXNuJ3Qgd29yayB3aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5
OTYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjM5OTAxND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBBbmR5IEVzdGVzLgorCisgICAgICAgIFdvcmsgYXJvdW5kIGEgYnVnIHRoYXQgbWFrZXMg
dGhlIGZvcm1hdCByZWFkZXIgZmFpbCB0byBsb2FkIHdoZW4gdGhlIEFWVVJMQXNzZXRPdXRPZkJh
bmRNSU1FVHlwZUtleQorICAgICAgICBpcyBpbmNsdWRlZCBpbiB0aGUgQVZVUkxBc3NldCBvcHRp
b25zIGRpY3Rpb25hcnkuIEFsc28gaW5jbHVkZSBzb21lIGNsZWFudXA6CisgICAgICAgIC0gTW92
ZSB0aGUgY29kZSB0byBjaGVjayBmb3IgV2ViTSBNSU1FIHR5cGVzIGZyb20gTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQworICAgICAgICAgIHRvIEFWQXNzZXRNSU1FVHlwZUNhY2hl
LgorICAgICAgICAtIERvbid0IHVzZSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzIGluIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuCisgICAgICAgIC0gUmVnaXN0ZXIgdGhlIFdlYk0g
Zm9ybWF0IHJlYWRlciB3aGVuIGNyZWF0aW5nIGFuIEFWVVJMQXNzZXQgZm9yIGEgV2ViTSB1cmwg
aW5zdGVhZAorICAgICAgICAgIG9mIHdoZW4gY2hlY2tpbmcgdGhlIE1JTUUgdHlwZS4KKyAgICAg
ICAgLSBDbGVhbnVwIFdlYk0gImNvZGVjcyIgcGFyYW1ldGVyIHBhcnNpbmcuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNo
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNz
ZXRNSU1FVHlwZUNhY2hlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2Fj
aGU6OmNhbkRlY29kZUV4dGVuZGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlN
RVR5cGVDYWNoZTo6c3RhdGljQ29udGFpbmVyVHlwZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6
QVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6cmVnaXN0ZXJGb3JtYXRS
ZWFkZXJJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRBZHZlcnRpc2VPdXRP
ZkJhbmRNSU1FVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6
CisgICAgICAgIChXZWJDb3JlOjplbnN1cmVGb3JtYXRSZWFkZXJJc1JlZ2lzdGVyZWQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNGb3JtYXRSZWFkZXJBdmFpbGFibGUpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldl
Yk0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6c2V0V2Vi
TUZvcm1hdFJlYWRlckVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6d2VibU1JTUVUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjppc1dlYk1Gb3JtYXRSZWFkZXJBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oOgor
CiAyMDIwLTEyLTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1ha2UgRnJhbWVWaWV3OjptX2N1c3RvbVNpemVGb3JSZXNpemVFdmVudCBhbiBPcHRp
b25hbDxJbnRTaXplPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlODg3MzFjOTRjNDcxMDhjZDY2OTlhZTY1MzkxMzlk
MzE4Y2VlODNiLi5jNzk0Mjk3ZDEzNjVmZmY4MjNmOTA5MTgwOThiNzNjMTM0NDY2YjI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEyLTE2ICBFcmljIENhcmxzb24gIDxlcmljLmNh
cmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViTSBmb3JtYXQgcmVhZGVyIGRv
ZXNuJ3Qgd29yayB3aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxlbWVudAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5OTYxCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83MjM5OTAxND4KKworICAgICAgICBSZXZpZXdlZCBieSBBbmR5IEVzdGVzLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBs
YXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIwLTEyLTE1ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENhbGxzIHRvIHNldEZpeGVkTGF5
b3V0U2l6ZSgpIHNob3VsZCBub3QgYmUgaW5zaWRlIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaAppbmRleCA5MzE3
OWYyOGQ0MGM3NWNkODQyN2NiMTQ2YTgyMDM0MmIyYjhjNWE1Li45NzM1OTQ2ZDM3NDc2M2M1MTZh
Y2NkOWRjMTk0OGIxZWI1MjY2OWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNz
ZXRNSU1FVHlwZUNhY2hlLmgKQEAgLTQ1LDYgKzQ1LDggQEAgcHVibGljOgogICAgIGJvb2wgaXNV
bnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJikgZmluYWw7CiAKICAgICB2b2lk
IGFkZFN1cHBvcnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisgICAgCisgICAgdm9p
ZCBzZXRXZWJNRm9ybWF0UmVhZGVyRW5hYmxlZChib29sKTsKIAogcHJpdmF0ZToKICAgICBmcmll
bmQgTmV2ZXJEZXN0cm95ZWQ8QVZBc3NldE1JTUVUeXBlQ2FjaGU+OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1J
TUVUeXBlQ2FjaGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQppbmRleCA4NzA2NjIxNDY2YjU5NTdk
ODU3YzhlNmE5N2M5MWVhNjNmNDYwMWY5Li44YTAwMTFhN2QyYWUxMTIwMzYxNTIyZGU4Yjg1ODc3
M2Q5ODAzMWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVD
YWNoZS5tbQpAQCAtMjksNiArMjksNyBAQAogI2lmIFBMQVRGT1JNKENPQ09BKQogCiAjaW1wb3J0
ICJDb250ZW50VHlwZS5oIgorI2ltcG9ydCAiU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oIgogI2lt
cG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY29jb2EvQVZG
b3VuZGF0aW9uU29mdExpbmsuaD4KIApAQCAtNjMsOSArNjQsMTYgQEAgYm9vbCBBVkFzc2V0TUlN
RVR5cGVDYWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBl
KQogewogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKICAgICBBU1NFUlQo
aXNBdmFpbGFibGUoKSk7Ci0gICAgcmV0dXJuIFtQQUw6OmdldEFWVVJMQXNzZXRDbGFzcygpIGlz
UGxheWFibGVFeHRlbmRlZE1JTUVUeXBlOnR5cGUucmF3KCldOworICAgIGlmIChbUEFMOjpnZXRB
VlVSTEFzc2V0Q2xhc3MoKSBpc1BsYXlhYmxlRXh0ZW5kZWRNSU1FVHlwZTp0eXBlLnJhdygpXSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZF
KE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQorICAgIGlmIChTb3VyY2VCdWZmZXJQYXJzZXJXZWJN
Ojppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKHR5cGUpID09IE1lZGlhUGxheWVyRW51bXM6OlN1cHBv
cnRzVHlwZTo6SXNTdXBwb3J0ZWQpCisgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAKKyNl
bmRpZiAvLyBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCisKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKQEAgLTk2LDM5ICsxMDQsNTMgQEAgYm9vbCBBVkFzc2V0TUlNRVR5cGVDYWNo
ZTo6aXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogCiBjb25z
dCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgQVZBc3NldE1JTUVU
eXBlQ2FjaGU6OnN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KCkKIHsKLSAgICBzdGF0aWMgY29uc3Qg
YXV0byBjYWNoZSA9IG1ha2VOZXZlckRlc3Ryb3llZChIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPiB7Ci0gICAgICAgICJhcHBsaWNhdGlvbi92bmQuYXBwbGUubXBlZ3Vy
bCIsCi0gICAgICAgICJhcHBsaWNhdGlvbi94LW1wZWd1cmwiLAotICAgICAgICAiYXVkaW8vM2dw
cCIsCi0gICAgICAgICJhdWRpby9hYWMiLAotICAgICAgICAiYXVkaW8vYWFjcCIsCi0gICAgICAg
ICJhdWRpby9haWZmIiwKLSAgICAgICAgImF1ZGlvL2Jhc2ljIiwKLSAgICAgICAgImF1ZGlvL21w
MyIsCi0gICAgICAgICJhdWRpby9tcDQiLAotICAgICAgICAiYXVkaW8vbXBlZyIsCi0gICAgICAg
ICJhdWRpby9tcGVnMyIsCi0gICAgICAgICJhdWRpby9tcGVndXJsIiwKLSAgICAgICAgImF1ZGlv
L21wZyIsCi0gICAgICAgICJhdWRpby92bmQud2F2ZSIsCi0gICAgICAgICJhdWRpby93YXYiLAot
ICAgICAgICAiYXVkaW8vd2F2ZSIsCi0gICAgICAgICJhdWRpby94LWFhYyIsCi0gICAgICAgICJh
dWRpby94LWFpZmYiLAotICAgICAgICAiYXVkaW8veC1tNGEiLAotICAgICAgICAiYXVkaW8veC1t
cGVndXJsIiwKLSAgICAgICAgImF1ZGlvL3gtd2F2IiwKLSAgICAgICAgInZpZGVvLzNncHAiLAot
ICAgICAgICAidmlkZW8vM2dwcDIiLAotICAgICAgICAidmlkZW8vbXA0IiwKLSAgICAgICAgInZp
ZGVvL21wZWciLAotICAgICAgICAidmlkZW8vbXBlZzIiLAotICAgICAgICAidmlkZW8vbXBnIiwK
LSAgICAgICAgInZpZGVvL3F1aWNrdGltZSIsCi0gICAgICAgICJ2aWRlby94LW00diIsCi0gICAg
ICAgICJ2aWRlby94LW1wZWciLAotICAgICAgICAidmlkZW8veC1tcGciLAotICAgIH0pOworICAg
IHN0YXRpYyBhdXRvIGNhY2hlID0gbWFrZU5ldmVyRGVzdHJveWVkKFt0aGlzXSB7CisgICAgICAg
IFVOVVNFRF9QQVJBTSh0aGlzKTsKKworICAgICAgICBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPiBjYWNoZSA9IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxTdHJpbmc+IHsK
KyAgICAgICAgICAgICJhcHBsaWNhdGlvbi92bmQuYXBwbGUubXBlZ3VybCJfcywKKyAgICAgICAg
ICAgICJhcHBsaWNhdGlvbi94LW1wZWd1cmwiX3MsCisgICAgICAgICAgICAiYXVkaW8vM2dwcCJf
cywKKyAgICAgICAgICAgICJhdWRpby9hYWMiX3MsCisgICAgICAgICAgICAiYXVkaW8vYWFjcCJf
cywKKyAgICAgICAgICAgICJhdWRpby9haWZmIl9zLAorICAgICAgICAgICAgImF1ZGlvL2Jhc2lj
Il9zLAorICAgICAgICAgICAgImF1ZGlvL21wMyJfcywKKyAgICAgICAgICAgICJhdWRpby9tcDQi
X3MsCisgICAgICAgICAgICAiYXVkaW8vbXBlZyJfcywKKyAgICAgICAgICAgICJhdWRpby9tcGVn
MyJfcywKKyAgICAgICAgICAgICJhdWRpby9tcGVndXJsIl9zLAorICAgICAgICAgICAgImF1ZGlv
L21wZyJfcywKKyAgICAgICAgICAgICJhdWRpby92bmQud2F2ZSJfcywKKyAgICAgICAgICAgICJh
dWRpby93YXYiX3MsCisgICAgICAgICAgICAiYXVkaW8vd2F2ZSJfcywKKyAgICAgICAgICAgICJh
dWRpby94LWFhYyJfcywKKyAgICAgICAgICAgICJhdWRpby94LWFpZmYiX3MsCisgICAgICAgICAg
ICAiYXVkaW8veC1tNGEiX3MsCisgICAgICAgICAgICAiYXVkaW8veC1tcGVndXJsIl9zLAorICAg
ICAgICAgICAgImF1ZGlvL3gtd2F2Il9zLAorICAgICAgICAgICAgInZpZGVvLzNncHAiX3MsCisg
ICAgICAgICAgICAidmlkZW8vM2dwcDIiX3MsCisgICAgICAgICAgICAidmlkZW8vbXA0Il9zLAor
ICAgICAgICAgICAgInZpZGVvL21wZWciX3MsCisgICAgICAgICAgICAidmlkZW8vbXBlZzIiX3Ms
CisgICAgICAgICAgICAidmlkZW8vbXBnIl9zLAorICAgICAgICAgICAgInZpZGVvL3F1aWNrdGlt
ZSJfcywKKyAgICAgICAgICAgICJ2aWRlby94LW00diJfcywKKyAgICAgICAgICAgICJ2aWRlby94
LW1wZWciX3MsCisgICAgICAgICAgICAidmlkZW8veC1tcGciX3MsCisgICAgICAgIH07CisKKyNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQor
ICAgICAgICBpZiAoU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNXZWJNRm9ybWF0UmVhZGVyQXZh
aWxhYmxlKCkpIHsKKyAgICAgICAgICAgIGF1dG8gd2VibVR5cGVzID0gU291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6d2VibU1JTUVUeXBlcygpOworICAgICAgICAgICAgY2FjaGUuYWRkKHdlYm1UeXBl
cy5iZWdpbigpLCB3ZWJtVHlwZXMuZW5kKCkpOworICAgICAgICB9CisjZW5kaWYKKworICAgICAg
ICByZXR1cm4gY2FjaGU7CisgICAgfSgpKTsKKwogICAgIHJldHVybiBjYWNoZTsKIH0KIApAQCAt
MTUzLDYgKzE3NSwxNiBAQCB2b2lkIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjppbml0aWFsaXplQ2Fj
aGUoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSAogI2VuZGlmCiB9CiAKK3Zv
aWQgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKK3sKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9G
T1JNQVRfUkVBREVSKQorICAgIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OnNldFdlYk1Gb3JtYXRS
ZWFkZXJFbmFibGVkKGVuYWJsZWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7
CisjZW5kaWYKK30KKworCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXgg
ZDY0YTcyNTYyYTI0YzBkOGExZGJiYTMwOWNlNTE1YzhjZmVjNGFlMS4uYmYzMTcwMzk0MGVkNjg0
NzIyMjg2N2E2ZTk0ZDg0Y2M5MDM0ZDEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC01
Niw3ICs1Niw2IEBACiAjaW1wb3J0ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCiAjaW1wb3J0
ICJQbGF0Zm9ybVRpbWVSYW5nZXMuaCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5oIgotI2ltcG9ydCAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2ltcG9ydCAiU2VjdXJp
dHlPcmlnaW4uaCIKICNpbXBvcnQgIlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaCIKICNp
bXBvcnQgIlNoYXJlZEJ1ZmZlci5oIgpAQCAtMTAwLDcgKzk5LDYgQEAKICNpbXBvcnQgPHd0Zi9P
U09iamVjdFB0ci5oPgogI2ltcG9ydCA8d3RmL1VSTC5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1Zl
Y3RvckNvY29hLmg+Ci0jaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9PU1ZhcmlhbnRTUEkuaD4KICNp
bXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbXBvcnQgPHd0Zi90aHJlYWRzL0JpbmFyeVNl
bWFwaG9yZS5oPgogCkBAIC0yNzAsNiArMjY4LDIwIEBAIHN0YXRpYyBkaXNwYXRjaF9xdWV1ZV90
IGdsb2JhbFB1bGxEZWxlZ2F0ZVF1ZXVlKCkKICAgICByZXR1cm4gZ2xvYmFsUXVldWU7CiB9CiAK
K3N0YXRpYyB2b2lkIHJlZ2lzdGVyRm9ybWF0UmVhZGVySWZOZWNlc3NhcnkoKQoreworI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCisgICAg
c3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47CisgICAgZGlzcGF0Y2hfb25jZSgmb25j
ZVRva2VuLCBeeworICAgICAgICAvLyBMaWtlIHdlIGRvIGZvciBvdGhlciBtZWRpYSBmb3JtYXRz
LCBhbGxvdyB0aGUgZm9ybWF0IHJlYWRlciB0byBydW4gaW4gdGhlIFdlYkNvbnRlbnQgb3IgR1BV
IHByb2Nlc3MKKyAgICAgICAgLy8gKHdoaWNoIGlzIGFscmVhZHkgYXBwcm9wcmlhdGVseSBzYW5k
Ym94ZWQpIHJhdGhlciB0aGFuIGluIGEgc2VwYXJhdGUgTWVkaWFUb29sYm94IFhQQyBzZXJ2aWNl
LgorICAgICAgICBSRUxFQVNFX0FTU0VSVChpc0luR1BVUHJvY2VzcygpIHx8IGlzSW5XZWJQcm9j
ZXNzKCkpOworICAgICAgICBNVFJlZ2lzdGVyUGx1Z2luRm9ybWF0UmVhZGVyQnVuZGxlRGlyZWN0
b3J5KChfX2JyaWRnZSBDRlVSTFJlZilOU0J1bmRsZS5tYWluQnVuZGxlLmJ1aWx0SW5QbHVnSW5z
VVJMKTsKKyAgICAgICAgTVRQbHVnaW5Gb3JtYXRSZWFkZXJEaXNhYmxlU2FuZGJveGluZygpOwor
ICAgIH0pOworI2VuZGlmCit9CisKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OkZhY3RvcnkgZmluYWwgOiBwdWJsaWMgTWVkaWFQbGF5ZXJGYWN0b3J5IHsKIHByaXZh
dGU6CiAgICAgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGlkZW50aWZp
ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXI6OkFWRm91bmRhdGlvbjsgfTsKQEAgLTc5Miw2ICs4MDQsMTkgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0
IFVSTCYgdXJsKQogCiB9CiAKK3N0YXRpYyBib29sIHdpbGxVc2VXZWJNRm9ybWF0UmVhZGVyRm9y
VHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCit7CisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYg
SEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICBpZiAoIVNvdXJjZUJ1ZmZlclBhcnNl
cldlYk06OmlzV2ViTUZvcm1hdFJlYWRlckF2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgCisgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UodHlwZSwgInZpZGVv
L3dlYm0iKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHR5cGUsICJhdWRpby93ZWJtIik7Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0eXBlKTsKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYK
K30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVkFz
c2V0Rm9yVVJMKGNvbnN0IFVSTCYgdXJsLCBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4g
b3B0aW9ucykKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwpAQCAtODMzLDcgKzg1
OCwxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFW
QXNzZXRGb3JVUkwoY29uc3QgVVJMJiB1cmwsIFJldAogI2VuZGlmCiAKICAgICBhdXRvIHR5cGUg
PSBwbGF5ZXIoKS0+Y29udGVudE1JTUVUeXBlKCk7Ci0gICAgaWYgKFBBTDo6Y2FuTG9hZF9BVkZv
dW5kYXRpb25fQVZVUkxBc3NldE91dE9mQmFuZE1JTUVUeXBlS2V5KCkgJiYgIXR5cGUuaXNFbXB0
eSgpICYmICFwbGF5ZXIoKS0+Y29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9u
KCkpIHsKKworICAgIC8vIERvbid0IGFkdmVydGlzZSBXZWJNIE1JTUUgdHlwZXMgb3IgdGhlIGZv
cm1hdCByZWFkZXIgd29uJ3QgYmUgbG9hZGVkIHVudGlsIHJkYXI6Ly83MjQwNTEyNyBpcyBmaXhl
ZC4KKyAgICBhdXRvIHdpbGxVc2VXZWJNRm9ybWF0UmVhZGVyID0gd2lsbFVzZVdlYk1Gb3JtYXRS
ZWFkZXJGb3JUeXBlKHR5cGUpOworCisgICAgaWYgKFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25f
QVZVUkxBc3NldE91dE9mQmFuZE1JTUVUeXBlS2V5KCkgJiYgIXR5cGUuaXNFbXB0eSgpICYmICFw
bGF5ZXIoKS0+Y29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uKCkgJiYgIXdp
bGxVc2VXZWJNRm9ybWF0UmVhZGVyKSB7CiAgICAgICAgIGF1dG8gY29kZWNzID0gcGxheWVyKCkt
PmNvbnRlbnRUeXBlQ29kZWNzKCk7CiAgICAgICAgIGlmICghY29kZWNzLmlzRW1wdHkoKSkgewog
ICAgICAgICAgICAgTlNTdHJpbmcgKnR5cGVTdHJpbmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpAIiVAOyBjb2RlY3M9XCIlQFwiIiwgKE5TU3RyaW5nICopdHlwZSwgKE5TU3RyaW5nICop
Y29kZWNzXTsKQEAgLTg3Niw2ICs5MDUsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3QgVVJMJiB1cmwsIFJldAogICAg
ICAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0OkBOTyBmb3JLZXk6QVZVUkxBc3NldFVzZXNOb1Bl
cnNpc3RlbnRDYWNoZUtleV07CiAgICAgfQogCisgICAgaWYgKHdpbGxVc2VXZWJNRm9ybWF0UmVh
ZGVyKQorICAgICAgICByZWdpc3RlckZvcm1hdFJlYWRlcklmTmVjZXNzYXJ5KCk7CisKICAgICBO
U1VSTCAqY29jb2FVUkwgPSBjYW5vbmljYWxVUkwodXJsKTsKICAgICBtX2F2QXNzZXQgPSBhZG9w
dE5TKFtQQUw6OmFsbG9jQVZVUkxBc3NldEluc3RhbmNlKCkgaW5pdFdpdGhVUkw6Y29jb2FVUkwg
b3B0aW9uczpvcHRpb25zLmdldCgpXSk7CiAKQEAgLTE2NjcsMzkgKzE2OTksNiBAQCBzdGF0aWMg
Ym9vbCBrZXlTeXN0ZW1Jc1N1cHBvcnRlZChjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKIH0KICNl
bmRpZgogCi0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFU
X1JFQURFUikKLXN0YXRpYyB2b2lkIGVuc3VyZUZvcm1hdFJlYWRlcklzUmVnaXN0ZXJlZCgpCi17
Ci0gICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47Ci0gICAgZGlzcGF0Y2hfb25j
ZSgmb25jZVRva2VuLCBeewotICAgICAgICAvLyBMaWtlIHdlIGRvIGZvciBvdGhlciBtZWRpYSBm
b3JtYXRzLCBhbGxvdyB0aGUgZm9ybWF0IHJlYWRlciB0byBydW4gaW4gdGhlIFdlYkNvbnRlbnQg
b3IgR1BVIHByb2Nlc3MKLSAgICAgICAgLy8gKHdoaWNoIGlzIGFscmVhZHkgYXBwcm9wcmlhdGVs
eSBzYW5kYm94ZWQpIHJhdGhlciB0aGFuIGluIGEgc2VwYXJhdGUgTWVkaWFUb29sYm94IFhQQyBz
ZXJ2aWNlLgotICAgICAgICBSRUxFQVNFX0FTU0VSVChpc0luR1BVUHJvY2VzcygpIHx8IGlzSW5X
ZWJQcm9jZXNzKCkpOwotICAgICAgICBNVFJlZ2lzdGVyUGx1Z2luRm9ybWF0UmVhZGVyQnVuZGxl
RGlyZWN0b3J5KChfX2JyaWRnZSBDRlVSTFJlZilOU0J1bmRsZS5tYWluQnVuZGxlLmJ1aWx0SW5Q
bHVnSW5zVVJMKTsKLSAgICAgICAgTVRQbHVnaW5Gb3JtYXRSZWFkZXJEaXNhYmxlU2FuZGJveGlu
ZygpOwotICAgIH0pOwotfQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBI
QVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQotc3RhdGljIGJvb2wgaXNGb3JtYXRSZWFkZXJB
dmFpbGFibGUoKQotewotICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS53ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSNpZiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSAgICAvLyBGSVhNRSAocmRhcjovLzcy
MzIwNDE5KTogSWYgV2ViS2l0IHdhcyBidWlsdCB3aXRoIGFkLWhvYyBjb2RlLXNpZ25pbmcsCi0g
ICAgLy8gQ29yZU1lZGlhIHdpbGwgb25seSBsb2FkIHRoZSBmb3JtYXQgcmVhZGVyIHBsdWctaW4g
d2hlbiBhIHVzZXIgZGVmYXVsdAotICAgIC8vIGlzIHNldCBvbiBBcHBsZSBpbnRlcm5hbCBPU3Mu
IFRoYXQgbWVhbnMgd2UgY2Fubm90IGN1cnJlbnRseSBzdXBwb3J0IFdlYk0KLSAgICAvLyBpbiBw
dWJsaWMgU0RLIGJ1aWxkcyBvbiBjdXN0b21lciBPU3MuCi0gICAgaWYgKCFvc192YXJpYW50X2Fs
bG93c19pbnRlcm5hbF9zZWN1cml0eV9wb2xpY2llcygiY29tLmFwcGxlLldlYktpdCIpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLQotICAgIHJldHVybiB0cnVlOwotfQotI2VuZGlm
Ci0KIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKQEAgLTE3
MTEsMTkgKzE3MTAsNiBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZAogICAgICAgICByZXR1cm4g
TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAjZW5kaWYKIAotI2lm
IEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCi0g
ICAgaWYgKGlzRm9ybWF0UmVhZGVyQXZhaWxhYmxlKCkpIHsKLSAgICAgICAgYXV0byBzdXBwb3J0
ZWQgPSBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKHBhcmFt
ZXRlcnMudHlwZSk7Ci0gICAgICAgIGlmIChzdXBwb3J0ZWQgIT0gTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQpIHsKLSAgICAgICAgICAgIGVuc3VyZUZvcm1hdFJlYWRl
cklzUmVnaXN0ZXJlZCgpOwotICAgICAgICAgICAgaWYgKHN1cHBvcnRlZCA9PSBNZWRpYVBsYXll
cjo6U3VwcG9ydHNUeXBlOjpNYXlCZVN1cHBvcnRlZCkKLSAgICAgICAgICAgICAgICByZXR1cm4g
c3VwcG9ydGVkOwotICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlTWVldHNIYXJkd2FyZURlY29k
ZVJlcXVpcmVtZW50cyhwYXJhbWV0ZXJzLnR5cGUsIHBhcmFtZXRlcnMuY29udGVudFR5cGVzUmVx
dWlyaW5nSGFyZHdhcmVTdXBwb3J0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQ7Ci0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYK
LQogICAgIGF1dG8gc3VwcG9ydGVkID0gQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigp
LmNhbkRlY29kZVR5cGUocGFyYW1ldGVycy50eXBlLnJhdygpKTsKICAgICBpZiAoc3VwcG9ydGVk
ICE9IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzU3VwcG9ydGVkKQogICAgICAgICByZXR1
cm4gc3VwcG9ydGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAppbmRleCBjMDQz
YmU1NjkyZjVmZWI2ZTViMGFkZmY0NjYwZjFkNTFkZmMyMzI4Li42ODA4NWMxNTQ1MGI0YWYyYmQ3
YTllMGExZTY1NDE3YTUzY2NlMjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNw
cApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaXN0Lmg+CiAjaW5jbHVkZSA8
d3RmL2NmL1R5cGVDYXN0c0NGLmg+CiAjaW5jbHVkZSA8d3RmL2Rhcndpbi9XZWFrTGlua2luZy5o
PgorI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL09TVmFyaWFudFNQSS5oPgogCiAjaW5jbHVkZSAi
Q29yZVZpZGVvU29mdExpbmsuaCIKICNpbmNsdWRlICJWaWRlb1Rvb2xib3hTb2Z0TGluay5oIgpA
QCAtNDQzLDE0ICs0NDQsNjggQEAgcHJpdmF0ZToKICAgICB3ZWJtOjpUcmFja0VudHJ5IG1fdHJh
Y2s7CiB9OwogCitib29sIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Om1fZm9ybWF0UmVhZGVyRW5h
YmxlZDsKKwordm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpzZXRXZWJNRm9ybWF0UmVhZGVy
RW5hYmxlZChib29sIGVuYWJsZWQpCit7CisjaWYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURF
UikKKyAgICBtX2Zvcm1hdFJlYWRlckVuYWJsZWQgPSBlbmFibGVkOworI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0oZW5hYmxlZCk7CisjZW5kaWYKK30KKworY29uc3QgSGFzaFNldDxTdHJpbmcsIEFT
Q0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OndlYm1NSU1F
VHlwZXMoKQoreworICAgIHN0YXRpYyBhdXRvIHR5cGVzID0gbWFrZU5ldmVyRGVzdHJveWVkKFtd
IHsKKworICAgICAgICBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiB0
eXBlczsKKworI2lmIEVOQUJMRShWUDkpCisgICAgICAgIHR5cGVzLmFkZCgidmlkZW8vd2VibSIp
OworI2VuZGlmCisjaWYgRU5BQkxFKFZPUkJJUykgfHwgRU5BQkxFKE9QVVMpCisgICAgICAgIHR5
cGVzLmFkZCgiYXVkaW8vd2VibSIpOworI2VuZGlmCisKKyAgICAgICAgcmV0dXJuIHR5cGVzOwor
ICAgIH0oKSk7CisKKyAgICByZXR1cm4gdHlwZXM7Cit9CisKK3N0YXRpYyBib29sIGNhbkxvYWRG
b3JtYXRSZWFkZXIoKQoreworI2lmICFIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQorICAg
IHJldHVybiBmYWxzZTsKKyNlbmRpZgorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAg
ICByZXR1cm4gdHJ1ZTsKKyNlbHNlCisgICAgLy8gRklYTUUgKHJkYXI6Ly83MjMyMDQxOSk6IElm
IFdlYktpdCB3YXMgYnVpbHQgd2l0aCBhZC1ob2MgY29kZS1zaWduaW5nLAorICAgIC8vIENvcmVN
ZWRpYSB3aWxsIG9ubHkgbG9hZCB0aGUgZm9ybWF0IHJlYWRlciBwbHVnLWluIHdoZW4gYSB1c2Vy
IGRlZmF1bHQKKyAgICAvLyBpcyBzZXQgb24gQXBwbGUgaW50ZXJuYWwgT1NzLiBUaGF0IG1lYW5z
IHdlIGNhbm5vdCBjdXJyZW50bHkgc3VwcG9ydCBXZWJNCisgICAgLy8gaW4gcHVibGljIFNESyBi
dWlsZHMgb24gY3VzdG9tZXIgT1NzLgorICAgIHN0YXRpYyBib29sIGFsbG93c0ludGVybmFsU2Vj
dXJpdHlQb2xpY2llcyA9IG9zX3ZhcmlhbnRfYWxsb3dzX2ludGVybmFsX3NlY3VyaXR5X3BvbGlj
aWVzKCJjb20uYXBwbGUuV2ViS2l0Iik7CisgICAgcmV0dXJuIGFsbG93c0ludGVybmFsU2VjdXJp
dHlQb2xpY2llczsKKyNlbmRpZiAvLyAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKK30KKworYm9v
bCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjppc1dlYk1Gb3JtYXRSZWFkZXJBdmFpbGFibGUoKQor
eworICAgIHJldHVybiBtX2Zvcm1hdFJlYWRlckVuYWJsZWQgJiYgY2FuTG9hZEZvcm1hdFJlYWRl
cigpICYmIGlzV2VibVBhcnNlckF2YWlsYWJsZSgpOworfQorCiBNZWRpYVBsYXllckVudW1zOjpT
dXBwb3J0c1R5cGUgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRl
ZChjb25zdCBDb250ZW50VHlwZSYgdHlwZSkKIHsKICNpZiBFTkFCTEUoVlA5KSB8fCBFTkFCTEUo
Vk9SQklTKSB8fCBFTkFCTEUoT1BVUykKICAgICBpZiAoIWlzV2VibVBhcnNlckF2YWlsYWJsZSgp
KQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05vdFN1
cHBvcnRlZDsKIAotICAgIGJvb2wgaXNBdWRpb0NvbnRhaW5lclR5cGUgPSBXVEY6OmVxdWFsSWdu
b3JpbmdBU0NJSUNhc2UodHlwZS5jb250YWluZXJUeXBlKCksICJhdWRpby93ZWJtIik7Ci0gICAg
Ym9vbCBpc1ZpZGVvQ29udGFpbmVyVHlwZSA9IFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0
eXBlLmNvbnRhaW5lclR5cGUoKSwgInZpZGVvL3dlYm0iKTsKKyAgICBhdXRvIGNvbnRhaW5lclR5
cGUgPSB0eXBlLmNvbnRhaW5lclR5cGUoKTsKKyAgICBib29sIGlzQXVkaW9Db250YWluZXJUeXBl
ID0gV1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlKGNvbnRhaW5lclR5cGUsICJhdWRpby93ZWJt
Iik7CisgICAgYm9vbCBpc1ZpZGVvQ29udGFpbmVyVHlwZSA9IFdURjo6ZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShjb250YWluZXJUeXBlLCAidmlkZW8vd2VibSIpOwogICAgIGlmICghaXNBdWRpb0Nv
bnRhaW5lclR5cGUgJiYgIWlzVmlkZW9Db250YWluZXJUeXBlKQogICAgICAgICByZXR1cm4gTWVk
aWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKICAgICAKQEAgLTQ3
MywyMiArNTI4LDE4IEBAIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBTb3VyY2VCdWZm
ZXJQYXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvCiAgICAgaWYgKCFpc0FueUNv
ZGVjQXZhaWxhYmxlKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNU
eXBlOjpJc05vdFN1cHBvcnRlZDsKIAotICAgIFN0cmluZyBjb2RlY3NQYXJhbWV0ZXIgPSB0eXBl
LnBhcmFtZXRlcihDb250ZW50VHlwZTo6Y29kZWNzUGFyYW1ldGVyKCkpOwotICAgIGlmICghY29k
ZWNzUGFyYW1ldGVyKQotICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNU
eXBlOjpNYXlCZVN1cHBvcnRlZDsKLQotICAgIGF1dG8gc3BsaXRSZXN1bHRzID0gU3RyaW5nVmll
dyhjb2RlY3NQYXJhbWV0ZXIpLnNwbGl0KCcsJyk7Ci0gICAgaWYgKHNwbGl0UmVzdWx0cy5iZWdp
bigpID09IHNwbGl0UmVzdWx0cy5lbmQoKSkKKyAgICBhdXRvIGNvZGVjcyA9IHR5cGUuY29kZWNz
KCk7CisgICAgaWYgKGNvZGVjcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXll
ckVudW1zOjpTdXBwb3J0c1R5cGU6Ok1heUJlU3VwcG9ydGVkOwogCi0gICAgZm9yIChhdXRvIHNw
bGl0IDogc3BsaXRSZXN1bHRzKSB7CisgICAgZm9yIChhdXRvJiBjb2RlYyA6IGNvZGVjcykgewog
I2lmIEVOQUJMRShWUDkpCi0gICAgICAgIGlmIChzcGxpdC5zdGFydHNXaXRoKCJ2cDA5IikgfHwg
c3BsaXQuc3RhcnRzV2l0aCgidnAwOCIpIHx8IGVxdWFsKHNwbGl0LCAidnA4IikgfHwgZXF1YWwo
c3BsaXQsICJ2cDkiKSkgeworICAgICAgICBpZiAoY29kZWMuc3RhcnRzV2l0aCgidnAwOSIpIHx8
IGNvZGVjLnN0YXJ0c1dpdGgoInZwMDgiKSB8fCBlcXVhbChjb2RlYywgInZwOCIpIHx8IGVxdWFs
KGNvZGVjLCAidnA5IikpIHsKIAogICAgICAgICAgICAgaWYgKCFpc1ZQOURlY29kZXJBdmFpbGFi
bGUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNU
eXBlOjpJc05vdFN1cHBvcnRlZDsKIAotICAgICAgICAgICAgYXV0byBjb2RlY1BhcmFtZXRlcnMg
PSBwYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKHNwbGl0KTsKKyAgICAgICAgICAgIGF1dG8gY29kZWNQ
YXJhbWV0ZXJzID0gcGFyc2VWUENvZGVjUGFyYW1ldGVycyhjb2RlYyk7CiAgICAgICAgICAgICBp
ZiAoIWNvZGVjUGFyYW1ldGVycykKICAgICAgICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJF
bnVtczo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKIApAQCAtNTAwLDcgKzU1MSw3IEBA
IE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpp
c0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvCiAjZW5kaWYgLy8gRU5BQkxFKFZQOSkKIAogI2lmIEVO
QUJMRShWT1JCSVMpCi0gICAgICAgIGlmIChzcGxpdCA9PSAidm9yYmlzIikgeworICAgICAgICBp
ZiAoY29kZWMgPT0gInZvcmJpcyIpIHsKICAgICAgICAgICAgIGlmICghaXNWb3JiaXNEZWNvZGVy
QXZhaWxhYmxlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1
cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKQEAgLTUwOSw3ICs1NjAsNyBAQCBNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGUgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50
VHlwZVN1cHBvcnRlZChjbwogI2VuZGlmIC8vIEVOQUJMRShWT1JCSVMpCiAKICNpZiBFTkFCTEUo
T1BVUykKLSAgICAgICAgaWYgKHNwbGl0ID09ICJvcHVzIikgeworICAgICAgICBpZiAoY29kZWMg
PT0gIm9wdXMiKSB7CiAgICAgICAgICAgICBpZiAoIWlzT3B1c0RlY29kZXJBdmFpbGFibGUoKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJ
c05vdFN1cHBvcnRlZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oCmluZGV4IGVjYTAz
YzIwNGZhMTAwN2U1YzI1M2I1M2EyZmY0YTUyYjVjYjE3OWMuLjEzMmFjODI3MTIwMzAxYWM0YWUz
MDE3ODFlOGZlNTJkMmE5ZmRmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmgKQEAg
LTYwLDcgKzYwLDEwIEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFNvdXJjZUJ1ZmZlclBhcnNlcldl
Yk0gOiBwdWJsaWMgU291cmNlQnVmZmVyUGFyc2VyLCBwcml2YXRlCiBwdWJsaWM6CiAgICAgY2xh
c3MgU3RyZWFtaW5nVmVjdG9yUmVhZGVyOwogCisgICAgc3RhdGljIGJvb2wgaXNXZWJNRm9ybWF0
UmVhZGVyQXZhaWxhYmxlKCk7CisgICAgc3RhdGljIHZvaWQgc2V0V2ViTUZvcm1hdFJlYWRlckVu
YWJsZWQoYm9vbCk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBp
c0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvbnN0IENvbnRlbnRUeXBlJik7CisgICAgc3RhdGljIGNv
bnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiB3ZWJtTUlNRVR5
cGVzKCk7CiAgICAgc3RhdGljIFJlZlB0cjxTb3VyY2VCdWZmZXJQYXJzZXJXZWJNPiBjcmVhdGUo
Y29uc3QgQ29udGVudFR5cGUmKTsKIAogICAgIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0oKTsKQEAg
LTI2OCw2ICsyNzEsOCBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPGNvbnN0IFdURjo6TG9nZ2Vy
PiBtX2xvZ2dlcjsKICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXIgeyBudWxscHRyIH07
CisgICAgCisgICAgc3RhdGljIGJvb2wgbV9mb3JtYXRSZWFkZXJFbmFibGVkOwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBjNmQ4
OWQwOTc2MzUzMWMzM2VkYjI4YmYzYTAwODEzODIwNDAyZGI2Li5hNGZmNGJhMDJhOWQzMmYzMDQ4
YWQ5NTliNDYzZTc0MmMyN2QzMzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcApAQCAtMzQxLDYgKzM0MSwxMCBAQAogI2VuZGlmCiAjZW5kaWYKIAor
I2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIp
CisjaW5jbHVkZSA8V2ViQ29yZS9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oPgorI2VuZGlmCisKIG5h
bWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwpAQCAtMzg0Myw2ICszODQ3LDEwIEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVy
ZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgICAgICAgICBzZXR0
aW5ncy5zZXRXZWJBdXRoZW50aWNhdGlvbkVuYWJsZWQodHJ1ZSk7CiAgICAgfQogI2VuZGlmCisK
KyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVS
KQorICAgIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5zZXRXZWJNRm9ybWF0UmVh
ZGVyRW5hYmxlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYk1G
b3JtYXRSZWFkZXJFbmFibGVkKCkpOworI2VuZGlmCiB9CiAKICNpZiBFTkFCTEUoREFUQV9ERVRF
Q1RJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbQppbmRleCA3MWQ0YTlhNzhhYjBjY2VkOWQwOWEyZjliNDY2MjQxMWMwNzg0YmM3Li4y
M2Y4NGU3Y2FmMDE2YzQ0MWQyMGNlNmU1NTNmNzg0YTM2MGViYjVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTY5LDYgKzY5
LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGVyZm9ybWFuY2VMb2dnaW5nLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1BpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRp
bWVBcHBsaWNhdGlvbkNoZWNrcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NXQ29udGV4dE1hbmFnZXIuaD4KICNpbXBvcnQg
PFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1Tb3VuZE1h
bmFnZXIuaD4KQEAgLTMyOCw2ICszMjksMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKICAg
ICBwdGhyZWFkX3NldF9maXhlZHByaW9yaXR5X3NlbGYoKTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICBBVkFz
c2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuc2V0V2ViTUZvcm1hdFJlYWRlckVuYWJsZWQo
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJNRm9ybWF0UmVhZGVy
RW5hYmxlZCgpKTsKKyNlbmRpZgorCiAgICAgaWYgKCFwYXJhbWV0ZXJzLm1lZGlhTUlNRVR5cGVz
LmlzRW1wdHkoKSkKICAgICAgICAgc2V0TWVkaWFNSU1FVHlwZXMocGFyYW1ldGVycy5tZWRpYU1J
TUVUeXBlcyk7CiAgICAgZWxzZSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416443</attachid>
            <date>2020-12-17 11:33:48 -0800</date>
            <delta_ts>2021-01-05 16:23:28 -0800</delta_ts>
            <desc>Final patch for landing</desc>
            <filename>bug-219961-20201217113347.patch</filename>
            <type>text/plain</type>
            <size>20441</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwODkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjMyMDI4ZjczZTQ1ZThl
ODdiMjdjMTIzODNlMGFjMDFkZTRkYzgxMi4uMjhlNjg0N2E1ZWU5ZjExMWEzMmQ5NDBkZDVlMWQx
MGMwZmU2ODNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTEyLTE2ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2Vi
TSBmb3JtYXQgcmVhZGVyIGRvZXNuJ3Qgd29yayB3aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5
OTYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjM5OTAxND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBBbmR5IEVzdGVzLgorCisgICAgICAgIFdvcmsgYXJvdW5kIGEgYnVnIHRoYXQgbWFrZXMg
dGhlIGZvcm1hdCByZWFkZXIgZmFpbCB0byBsb2FkIHdoZW4gdGhlIEFWVVJMQXNzZXRPdXRPZkJh
bmRNSU1FVHlwZUtleQorICAgICAgICBpcyBpbmNsdWRlZCBpbiB0aGUgQVZVUkxBc3NldCBvcHRp
b25zIGRpY3Rpb25hcnkuIEFsc28gaW5jbHVkZSBzb21lIGNsZWFudXA6CisgICAgICAgIC0gTW92
ZSB0aGUgY29kZSB0byBjaGVjayBmb3IgV2ViTSBNSU1FIHR5cGVzIGZyb20gTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQworICAgICAgICAgIHRvIEFWQXNzZXRNSU1FVHlwZUNhY2hl
LgorICAgICAgICAtIERvbid0IHVzZSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzIGluIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuCisgICAgICAgIC0gUmVnaXN0ZXIgdGhlIFdlYk0g
Zm9ybWF0IHJlYWRlciB3aGVuIGNyZWF0aW5nIGFuIEFWVVJMQXNzZXQgZm9yIGEgV2ViTSB1cmwg
aW5zdGVhZAorICAgICAgICAgIG9mIHdoZW4gY2hlY2tpbmcgdGhlIE1JTUUgdHlwZS4KKyAgICAg
ICAgLSBDbGVhbnVwIFdlYk0gImNvZGVjcyIgcGFyYW1ldGVyIHBhcnNpbmcuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNo
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNz
ZXRNSU1FVHlwZUNhY2hlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2Fj
aGU6OmNhbkRlY29kZUV4dGVuZGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlN
RVR5cGVDYWNoZTo6c3RhdGljQ29udGFpbmVyVHlwZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6
QVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6cmVnaXN0ZXJGb3JtYXRS
ZWFkZXJJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRBZHZlcnRpc2VPdXRP
ZkJhbmRNSU1FVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6
CisgICAgICAgIChXZWJDb3JlOjplbnN1cmVGb3JtYXRSZWFkZXJJc1JlZ2lzdGVyZWQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNGb3JtYXRSZWFkZXJBdmFpbGFibGUpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldl
Yk0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6c2V0V2Vi
TUZvcm1hdFJlYWRlckVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6d2VibU1JTUVUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjppc1dlYk1Gb3JtYXRSZWFkZXJBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oOgor
CiAyMDIwLTEyLTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1ha2UgRnJhbWVWaWV3OjptX2N1c3RvbVNpemVGb3JSZXNpemVFdmVudCBhbiBPcHRp
b25hbDxJbnRTaXplPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlODg3MzFjOTRjNDcxMDhjZDY2OTlhZTY1MzkxMzlk
MzE4Y2VlODNiLi5jNzk0Mjk3ZDEzNjVmZmY4MjNmOTA5MTgwOThiNzNjMTM0NDY2YjI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEyLTE2ICBFcmljIENhcmxzb24gIDxlcmljLmNh
cmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViTSBmb3JtYXQgcmVhZGVyIGRv
ZXNuJ3Qgd29yayB3aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxlbWVudAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5OTYxCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83MjM5OTAxND4KKworICAgICAgICBSZXZpZXdlZCBieSBBbmR5IEVzdGVzLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBs
YXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIwLTEyLTE1ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENhbGxzIHRvIHNldEZpeGVkTGF5
b3V0U2l6ZSgpIHNob3VsZCBub3QgYmUgaW5zaWRlIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaAppbmRleCA5MzE3
OWYyOGQ0MGM3NWNkODQyN2NiMTQ2YTgyMDM0MmIyYjhjNWE1Li45NzM1OTQ2ZDM3NDc2M2M1MTZh
Y2NkOWRjMTk0OGIxZWI1MjY2OWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNz
ZXRNSU1FVHlwZUNhY2hlLmgKQEAgLTQ1LDYgKzQ1LDggQEAgcHVibGljOgogICAgIGJvb2wgaXNV
bnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJikgZmluYWw7CiAKICAgICB2b2lk
IGFkZFN1cHBvcnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisgICAgCisgICAgdm9p
ZCBzZXRXZWJNRm9ybWF0UmVhZGVyRW5hYmxlZChib29sKTsKIAogcHJpdmF0ZToKICAgICBmcmll
bmQgTmV2ZXJEZXN0cm95ZWQ8QVZBc3NldE1JTUVUeXBlQ2FjaGU+OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1J
TUVUeXBlQ2FjaGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQppbmRleCA4NzA2NjIxNDY2YjU5NTdk
ODU3YzhlNmE5N2M5MWVhNjNmNDYwMWY5Li42M2U2NTQ2MDc0YTEyYWM4NWU4MTdkMWNjMDhjZjI2
NTU1YmMzZTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVD
YWNoZS5tbQpAQCAtMjksNiArMjksNyBAQAogI2lmIFBMQVRGT1JNKENPQ09BKQogCiAjaW1wb3J0
ICJDb250ZW50VHlwZS5oIgorI2ltcG9ydCAiU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oIgogI2lt
cG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY29jb2EvQVZG
b3VuZGF0aW9uU29mdExpbmsuaD4KIApAQCAtNjMsOSArNjQsMTYgQEAgYm9vbCBBVkFzc2V0TUlN
RVR5cGVDYWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBl
KQogewogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKICAgICBBU1NFUlQo
aXNBdmFpbGFibGUoKSk7Ci0gICAgcmV0dXJuIFtQQUw6OmdldEFWVVJMQXNzZXRDbGFzcygpIGlz
UGxheWFibGVFeHRlbmRlZE1JTUVUeXBlOnR5cGUucmF3KCldOworICAgIGlmIChbUEFMOjpnZXRB
VlVSTEFzc2V0Q2xhc3MoKSBpc1BsYXlhYmxlRXh0ZW5kZWRNSU1FVHlwZTp0eXBlLnJhdygpXSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZF
KE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQorICAgIGlmIChTb3VyY2VCdWZmZXJQYXJzZXJXZWJN
Ojppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKHR5cGUpID09IE1lZGlhUGxheWVyRW51bXM6OlN1cHBv
cnRzVHlwZTo6SXNTdXBwb3J0ZWQpCisgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAKKyNl
bmRpZiAvLyBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCisKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKQEAgLTE0OCwxMSArMTU2LDI4IEBAIHZvaWQgQVZBc3NldE1JTUVUeXBlQ2Fj
aGU6OmluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVI
CiAgICAgZm9yIChOU1N0cmluZyogdHlwZSBpbiBbUEFMOjpnZXRBVlVSTEFzc2V0Q2xhc3MoKSBh
dWRpb3Zpc3VhbE1JTUVUeXBlc10pCiAgICAgICAgIGNhY2hlLmFkZCh0eXBlKTsKIAorI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCisgICAg
aWYgKFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzV2ViTUZvcm1hdFJlYWRlckF2YWlsYWJsZSgp
KSB7CisgICAgICAgIGF1dG8gd2VibVR5cGVzID0gU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6d2Vi
bU1JTUVUeXBlcygpOworICAgICAgICBjYWNoZS5hZGQod2VibVR5cGVzLmJlZ2luKCksIHdlYm1U
eXBlcy5lbmQoKSk7CisgICAgfQorI2VuZGlmCisKICAgICBpZiAobV9jYWNoZVR5cGVDYWxsYmFj
aykKICAgICAgICAgbV9jYWNoZVR5cGVDYWxsYmFjayhjb3B5VG9WZWN0b3IoY2FjaGUpKTsKICNl
bmRpZgogfQogCit2b2lkIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzZXRXZWJNRm9ybWF0UmVhZGVy
RW5hYmxlZChib29sIGVuYWJsZWQpCit7CisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFW
RShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpz
ZXRXZWJNRm9ybWF0UmVhZGVyRW5hYmxlZChlbmFibGVkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGVuYWJsZWQpOworI2VuZGlmCit9CisKKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tCmluZGV4IGQ2NGE3MjU2MmEyNGMwZDhhMWRiYmEzMDljZTUxNWM4Y2ZlYzRhZTEuLmJm
MzE3MDM5NDBlZDY4NDcyMjI4NjdhNmU5NGQ4NGNjOTAzNGQxM2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbQpAQCAtNTYsNyArNTYsNiBAQAogI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJD
Vi5oIgogI2ltcG9ydCAiUGxhdGZvcm1UaW1lUmFuZ2VzLmgiCiAjaW1wb3J0ICJSdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaCIKLSNpbXBvcnQgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNp
bXBvcnQgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW1wb3J0ICJTZXJpYWxpemVkUGxhdGZvcm1EYXRh
Q3VlTWFjLmgiCiAjaW1wb3J0ICJTaGFyZWRCdWZmZXIuaCIKQEAgLTEwMCw3ICs5OSw2IEBACiAj
aW1wb3J0IDx3dGYvT1NPYmplY3RQdHIuaD4KICNpbXBvcnQgPHd0Zi9VUkwuaD4KICNpbXBvcnQg
PHd0Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgotI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vT1NWYXJp
YW50U1BJLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW1wb3J0IDx3dGYvdGhy
ZWFkcy9CaW5hcnlTZW1hcGhvcmUuaD4KIApAQCAtMjcwLDYgKzI2OCwyMCBAQCBzdGF0aWMgZGlz
cGF0Y2hfcXVldWVfdCBnbG9iYWxQdWxsRGVsZWdhdGVRdWV1ZSgpCiAgICAgcmV0dXJuIGdsb2Jh
bFF1ZXVlOwogfQogCitzdGF0aWMgdm9pZCByZWdpc3RlckZvcm1hdFJlYWRlcklmTmVjZXNzYXJ5
KCkKK3sKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRf
UkVBREVSKQorICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOworICAgIGRpc3Bh
dGNoX29uY2UoJm9uY2VUb2tlbiwgXnsKKyAgICAgICAgLy8gTGlrZSB3ZSBkbyBmb3Igb3RoZXIg
bWVkaWEgZm9ybWF0cywgYWxsb3cgdGhlIGZvcm1hdCByZWFkZXIgdG8gcnVuIGluIHRoZSBXZWJD
b250ZW50IG9yIEdQVSBwcm9jZXNzCisgICAgICAgIC8vICh3aGljaCBpcyBhbHJlYWR5IGFwcHJv
cHJpYXRlbHkgc2FuZGJveGVkKSByYXRoZXIgdGhhbiBpbiBhIHNlcGFyYXRlIE1lZGlhVG9vbGJv
eCBYUEMgc2VydmljZS4KKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNJbkdQVVByb2Nlc3MoKSB8
fCBpc0luV2ViUHJvY2VzcygpKTsKKyAgICAgICAgTVRSZWdpc3RlclBsdWdpbkZvcm1hdFJlYWRl
ckJ1bmRsZURpcmVjdG9yeSgoX19icmlkZ2UgQ0ZVUkxSZWYpTlNCdW5kbGUubWFpbkJ1bmRsZS5i
dWlsdEluUGx1Z0luc1VSTCk7CisgICAgICAgIE1UUGx1Z2luRm9ybWF0UmVhZGVyRGlzYWJsZVNh
bmRib3hpbmcoKTsKKyAgICB9KTsKKyNlbmRpZgorfQorCiBjbGFzcyBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpGYWN0b3J5IGZpbmFsIDogcHVibGljIE1lZGlhUGxheWVyRmFj
dG9yeSB7CiBwcml2YXRlOgogICAgIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRp
ZmllciBpZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6
TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpBVkZvdW5kYXRpb247IH07CkBAIC03OTIsNiArODA0LDE5
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3Nl
dEZvclVSTChjb25zdCBVUkwmIHVybCkKIAogfQogCitzdGF0aWMgYm9vbCB3aWxsVXNlV2ViTUZv
cm1hdFJlYWRlckZvclR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQoreworI2lmIEVOQUJMRShNRURJ
QV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCisgICAgaWYgKCFTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNOjppc1dlYk1Gb3JtYXRSZWFkZXJBdmFpbGFibGUoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNl
KHR5cGUsICJ2aWRlby93ZWJtIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLCAiYXVk
aW8vd2VibSIpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odHlwZSk7CisgICAgcmV0dXJuIGZh
bHNlOworI2VuZGlmCit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6Y3JlYXRlQVZBc3NldEZvclVSTChjb25zdCBVUkwmIHVybCwgUmV0YWluUHRyPE5TTXV0YWJs
ZURpY3Rpb25hcnk+IG9wdGlvbnMpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsK
QEAgLTgzMyw3ICs4NTgsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFVSTCYgdXJsLCBSZXQKICNlbmRpZgogCiAg
ICAgYXV0byB0eXBlID0gcGxheWVyKCktPmNvbnRlbnRNSU1FVHlwZSgpOwotICAgIGlmIChQQUw6
OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FWVVJMQXNzZXRPdXRPZkJhbmRNSU1FVHlwZUtleSgpICYm
ICF0eXBlLmlzRW1wdHkoKSAmJiAhcGxheWVyKCktPmNvbnRlbnRNSU1FVHlwZVdhc0luZmVycmVk
RnJvbUV4dGVuc2lvbigpKSB7CisKKyAgICAvLyBEb24ndCBhZHZlcnRpc2UgV2ViTSBNSU1FIHR5
cGVzIG9yIHRoZSBmb3JtYXQgcmVhZGVyIHdvbid0IGJlIGxvYWRlZCB1bnRpbCByZGFyOi8vNzI0
MDUxMjcgaXMgZml4ZWQuCisgICAgYXV0byB3aWxsVXNlV2ViTUZvcm1hdFJlYWRlciA9IHdpbGxV
c2VXZWJNRm9ybWF0UmVhZGVyRm9yVHlwZSh0eXBlKTsKKworICAgIGlmIChQQUw6OmNhbkxvYWRf
QVZGb3VuZGF0aW9uX0FWVVJMQXNzZXRPdXRPZkJhbmRNSU1FVHlwZUtleSgpICYmICF0eXBlLmlz
RW1wdHkoKSAmJiAhcGxheWVyKCktPmNvbnRlbnRNSU1FVHlwZVdhc0luZmVycmVkRnJvbUV4dGVu
c2lvbigpICYmICF3aWxsVXNlV2ViTUZvcm1hdFJlYWRlcikgewogICAgICAgICBhdXRvIGNvZGVj
cyA9IHBsYXllcigpLT5jb250ZW50VHlwZUNvZGVjcygpOwogICAgICAgICBpZiAoIWNvZGVjcy5p
c0VtcHR5KCkpIHsKICAgICAgICAgICAgIE5TU3RyaW5nICp0eXBlU3RyaW5nID0gW05TU3RyaW5n
IHN0cmluZ1dpdGhGb3JtYXQ6QCIlQDsgY29kZWNzPVwiJUBcIiIsIChOU1N0cmluZyAqKXR5cGUs
IChOU1N0cmluZyAqKWNvZGVjc107CkBAIC04NzYsNiArOTA1LDkgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFVSTCYg
dXJsLCBSZXQKICAgICAgICAgICAgIFtvcHRpb25zIHNldE9iamVjdDpATk8gZm9yS2V5OkFWVVJM
QXNzZXRVc2VzTm9QZXJzaXN0ZW50Q2FjaGVLZXldOwogICAgIH0KIAorICAgIGlmICh3aWxsVXNl
V2ViTUZvcm1hdFJlYWRlcikKKyAgICAgICAgcmVnaXN0ZXJGb3JtYXRSZWFkZXJJZk5lY2Vzc2Fy
eSgpOworCiAgICAgTlNVUkwgKmNvY29hVVJMID0gY2Fub25pY2FsVVJMKHVybCk7CiAgICAgbV9h
dkFzc2V0ID0gYWRvcHROUyhbUEFMOjphbGxvY0FWVVJMQXNzZXRJbnN0YW5jZSgpIGluaXRXaXRo
VVJMOmNvY29hVVJMIG9wdGlvbnM6b3B0aW9ucy5nZXQoKV0pOwogCkBAIC0xNjY3LDM5ICsxNjk5
LDYgQEAgc3RhdGljIGJvb2wga2V5U3lzdGVtSXNTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiBrZXlT
eXN0ZW0pCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRf
UExVR0lOX0ZPUk1BVF9SRUFERVIpCi1zdGF0aWMgdm9pZCBlbnN1cmVGb3JtYXRSZWFkZXJJc1Jl
Z2lzdGVyZWQoKQotewotICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOwotICAg
IGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXnsKLSAgICAgICAgLy8gTGlrZSB3ZSBkbyBmb3Ig
b3RoZXIgbWVkaWEgZm9ybWF0cywgYWxsb3cgdGhlIGZvcm1hdCByZWFkZXIgdG8gcnVuIGluIHRo
ZSBXZWJDb250ZW50IG9yIEdQVSBwcm9jZXNzCi0gICAgICAgIC8vICh3aGljaCBpcyBhbHJlYWR5
IGFwcHJvcHJpYXRlbHkgc2FuZGJveGVkKSByYXRoZXIgdGhhbiBpbiBhIHNlcGFyYXRlIE1lZGlh
VG9vbGJveCBYUEMgc2VydmljZS4KLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNJbkdQVVByb2Nl
c3MoKSB8fCBpc0luV2ViUHJvY2VzcygpKTsKLSAgICAgICAgTVRSZWdpc3RlclBsdWdpbkZvcm1h
dFJlYWRlckJ1bmRsZURpcmVjdG9yeSgoX19icmlkZ2UgQ0ZVUkxSZWYpTlNCdW5kbGUubWFpbkJ1
bmRsZS5idWlsdEluUGx1Z0luc1VSTCk7Ci0gICAgICAgIE1UUGx1Z2luRm9ybWF0UmVhZGVyRGlz
YWJsZVNhbmRib3hpbmcoKTsKLSAgICB9KTsKLX0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKLXN0YXRpYyBib29sIGlz
Rm9ybWF0UmVhZGVyQXZhaWxhYmxlKCkKLXsKLSAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0jaWYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0gICAgLy8gRklY
TUUgKHJkYXI6Ly83MjMyMDQxOSk6IElmIFdlYktpdCB3YXMgYnVpbHQgd2l0aCBhZC1ob2MgY29k
ZS1zaWduaW5nLAotICAgIC8vIENvcmVNZWRpYSB3aWxsIG9ubHkgbG9hZCB0aGUgZm9ybWF0IHJl
YWRlciBwbHVnLWluIHdoZW4gYSB1c2VyIGRlZmF1bHQKLSAgICAvLyBpcyBzZXQgb24gQXBwbGUg
aW50ZXJuYWwgT1NzLiBUaGF0IG1lYW5zIHdlIGNhbm5vdCBjdXJyZW50bHkgc3VwcG9ydCBXZWJN
Ci0gICAgLy8gaW4gcHVibGljIFNESyBidWlsZHMgb24gY3VzdG9tZXIgT1NzLgotICAgIGlmICgh
b3NfdmFyaWFudF9hbGxvd3NfaW50ZXJuYWxfc2VjdXJpdHlfcG9saWNpZXMoImNvbS5hcHBsZS5X
ZWJLaXQiKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi0KLSAgICByZXR1cm4gdHJ1
ZTsKLX0KLSNlbmRpZgotCiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyhjb25zdCBNZWRpYUVu
Z2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogI2lmIEVOQUJMRShNRURJQV9T
T1VSQ0UpCkBAIC0xNzExLDE5ICsxNzEwLDYgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGVBbmRDb2QKICAg
ICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwog
I2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JN
QVRfUkVBREVSKQotICAgIGlmIChpc0Zvcm1hdFJlYWRlckF2YWlsYWJsZSgpKSB7Ci0gICAgICAg
IGF1dG8gc3VwcG9ydGVkID0gU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1
cHBvcnRlZChwYXJhbWV0ZXJzLnR5cGUpOwotICAgICAgICBpZiAoc3VwcG9ydGVkICE9IE1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkKSB7Ci0gICAgICAgICAgICBlbnN1
cmVGb3JtYXRSZWFkZXJJc1JlZ2lzdGVyZWQoKTsKLSAgICAgICAgICAgIGlmIChzdXBwb3J0ZWQg
PT0gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6TWF5QmVTdXBwb3J0ZWQpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIHN1cHBvcnRlZDsKLSAgICAgICAgICAgIGlmIChjb250ZW50VHlwZU1lZXRz
SGFyZHdhcmVEZWNvZGVSZXF1aXJlbWVudHMocGFyYW1ldGVycy50eXBlLCBwYXJhbWV0ZXJzLmNv
bnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzU3VwcG9ydGVkOwotICAgICAgICB9Ci0g
ICAgfQotI2VuZGlmCi0KICAgICBhdXRvIHN1cHBvcnRlZCA9IEFWQXNzZXRNSU1FVHlwZUNhY2hl
OjpzaW5nbGV0b24oKS5jYW5EZWNvZGVUeXBlKHBhcmFtZXRlcnMudHlwZS5yYXcoKSk7CiAgICAg
aWYgKHN1cHBvcnRlZCAhPSBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRlZCkK
ICAgICAgICAgcmV0dXJuIHN1cHBvcnRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5j
cHAKaW5kZXggYzA0M2JlNTY5MmY1ZmViNmU1YjBhZGZmNDY2MGYxZDUxZGZjMjMyOC4uNjgwODVj
MTU0NTBiNGFmMmJkN2E5ZTBhMWU2NTQxN2E1M2NjZTI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVy
UGFyc2VyV2ViTS5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDx3dGYvU3RkTGlzdC5o
PgogI2luY2x1ZGUgPHd0Zi9jZi9UeXBlQ2FzdHNDRi5oPgogI2luY2x1ZGUgPHd0Zi9kYXJ3aW4v
V2Vha0xpbmtpbmcuaD4KKyNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9PU1ZhcmlhbnRTUEkuaD4K
IAogI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAjaW5jbHVkZSAiVmlkZW9Ub29sYm94
U29mdExpbmsuaCIKQEAgLTQ0MywxNCArNDQ0LDY4IEBAIHByaXZhdGU6CiAgICAgd2VibTo6VHJh
Y2tFbnRyeSBtX3RyYWNrOwogfTsKIAorYm9vbCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjptX2Zv
cm1hdFJlYWRlckVuYWJsZWQ7CisKK3ZvaWQgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6c2V0V2Vi
TUZvcm1hdFJlYWRlckVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworI2lmIEhBVkUoTVRfUExVR0lO
X0ZPUk1BVF9SRUFERVIpCisgICAgbV9mb3JtYXRSZWFkZXJFbmFibGVkID0gZW5hYmxlZDsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKGVuYWJsZWQpOworI2VuZGlmCit9CisKK2NvbnN0IEhhc2hT
ZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBTb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNOjp3ZWJtTUlNRVR5cGVzKCkKK3sKKyAgICBzdGF0aWMgYXV0byB0eXBlcyA9IG1ha2VOZXZl
ckRlc3Ryb3llZChbXSB7CisKKyAgICAgICAgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4gdHlwZXM7CisKKyNpZiBFTkFCTEUoVlA5KQorICAgICAgICB0eXBlcy5hZGQo
InZpZGVvL3dlYm0iKTsKKyNlbmRpZgorI2lmIEVOQUJMRShWT1JCSVMpIHx8IEVOQUJMRShPUFVT
KQorICAgICAgICB0eXBlcy5hZGQoImF1ZGlvL3dlYm0iKTsKKyNlbmRpZgorCisgICAgICAgIHJl
dHVybiB0eXBlczsKKyAgICB9KCkpOworCisgICAgcmV0dXJuIHR5cGVzOworfQorCitzdGF0aWMg
Ym9vbCBjYW5Mb2FkRm9ybWF0UmVhZGVyKCkKK3sKKyNpZiAhSEFWRShNVF9QTFVHSU5fRk9STUFU
X1JFQURFUikKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKworI2lmIFVTRShBUFBMRV9JTlRF
Uk5BTF9TREspCisgICAgcmV0dXJuIHRydWU7CisjZWxzZQorICAgIC8vIEZJWE1FIChyZGFyOi8v
NzIzMjA0MTkpOiBJZiBXZWJLaXQgd2FzIGJ1aWx0IHdpdGggYWQtaG9jIGNvZGUtc2lnbmluZywK
KyAgICAvLyBDb3JlTWVkaWEgd2lsbCBvbmx5IGxvYWQgdGhlIGZvcm1hdCByZWFkZXIgcGx1Zy1p
biB3aGVuIGEgdXNlciBkZWZhdWx0CisgICAgLy8gaXMgc2V0IG9uIEFwcGxlIGludGVybmFsIE9T
cy4gVGhhdCBtZWFucyB3ZSBjYW5ub3QgY3VycmVudGx5IHN1cHBvcnQgV2ViTQorICAgIC8vIGlu
IHB1YmxpYyBTREsgYnVpbGRzIG9uIGN1c3RvbWVyIE9Tcy4KKyAgICBzdGF0aWMgYm9vbCBhbGxv
d3NJbnRlcm5hbFNlY3VyaXR5UG9saWNpZXMgPSBvc192YXJpYW50X2FsbG93c19pbnRlcm5hbF9z
ZWN1cml0eV9wb2xpY2llcygiY29tLmFwcGxlLldlYktpdCIpOworICAgIHJldHVybiBhbGxvd3NJ
bnRlcm5hbFNlY3VyaXR5UG9saWNpZXM7CisjZW5kaWYgLy8gIVVTRShBUFBMRV9JTlRFUk5BTF9T
REspCit9CisKK2Jvb2wgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNXZWJNRm9ybWF0UmVhZGVy
QXZhaWxhYmxlKCkKK3sKKyAgICByZXR1cm4gbV9mb3JtYXRSZWFkZXJFbmFibGVkICYmIGNhbkxv
YWRGb3JtYXRSZWFkZXIoKSAmJiBpc1dlYm1QYXJzZXJBdmFpbGFibGUoKTsKK30KKwogTWVkaWFQ
bGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVu
dFR5cGVTdXBwb3J0ZWQoY29uc3QgQ29udGVudFR5cGUmIHR5cGUpCiB7CiAjaWYgRU5BQkxFKFZQ
OSkgfHwgRU5BQkxFKFZPUkJJUykgfHwgRU5BQkxFKE9QVVMpCiAgICAgaWYgKCFpc1dlYm1QYXJz
ZXJBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRz
VHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKLSAgICBib29sIGlzQXVkaW9Db250YWluZXJUeXBlID0g
V1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlKHR5cGUuY29udGFpbmVyVHlwZSgpLCAiYXVkaW8v
d2VibSIpOwotICAgIGJvb2wgaXNWaWRlb0NvbnRhaW5lclR5cGUgPSBXVEY6OmVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UodHlwZS5jb250YWluZXJUeXBlKCksICJ2aWRlby93ZWJtIik7CisgICAgYXV0
byBjb250YWluZXJUeXBlID0gdHlwZS5jb250YWluZXJUeXBlKCk7CisgICAgYm9vbCBpc0F1ZGlv
Q29udGFpbmVyVHlwZSA9IFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb250YWluZXJUeXBl
LCAiYXVkaW8vd2VibSIpOworICAgIGJvb2wgaXNWaWRlb0NvbnRhaW5lclR5cGUgPSBXVEY6OmVx
dWFsSWdub3JpbmdBU0NJSUNhc2UoY29udGFpbmVyVHlwZSwgInZpZGVvL3dlYm0iKTsKICAgICBp
ZiAoIWlzQXVkaW9Db250YWluZXJUeXBlICYmICFpc1ZpZGVvQ29udGFpbmVyVHlwZSkKICAgICAg
ICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7
CiAgICAgCkBAIC00NzMsMjIgKzUyOCwxOCBAQCBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5
cGUgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZChjbwogICAg
IGlmICghaXNBbnlDb2RlY0F2YWlsYWJsZSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51
bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKLSAgICBTdHJpbmcgY29kZWNzUGFy
YW1ldGVyID0gdHlwZS5wYXJhbWV0ZXIoQ29udGVudFR5cGU6OmNvZGVjc1BhcmFtZXRlcigpKTsK
LSAgICBpZiAoIWNvZGVjc1BhcmFtZXRlcikKLSAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51
bXM6OlN1cHBvcnRzVHlwZTo6TWF5QmVTdXBwb3J0ZWQ7Ci0KLSAgICBhdXRvIHNwbGl0UmVzdWx0
cyA9IFN0cmluZ1ZpZXcoY29kZWNzUGFyYW1ldGVyKS5zcGxpdCgnLCcpOwotICAgIGlmIChzcGxp
dFJlc3VsdHMuYmVnaW4oKSA9PSBzcGxpdFJlc3VsdHMuZW5kKCkpCisgICAgYXV0byBjb2RlY3Mg
PSB0eXBlLmNvZGVjcygpOworICAgIGlmIChjb2RlY3MuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpNYXlCZVN1cHBvcnRlZDsKIAotICAg
IGZvciAoYXV0byBzcGxpdCA6IHNwbGl0UmVzdWx0cykgeworICAgIGZvciAoYXV0byYgY29kZWMg
OiBjb2RlY3MpIHsKICNpZiBFTkFCTEUoVlA5KQotICAgICAgICBpZiAoc3BsaXQuc3RhcnRzV2l0
aCgidnAwOSIpIHx8IHNwbGl0LnN0YXJ0c1dpdGgoInZwMDgiKSB8fCBlcXVhbChzcGxpdCwgInZw
OCIpIHx8IGVxdWFsKHNwbGl0LCAidnA5IikpIHsKKyAgICAgICAgaWYgKGNvZGVjLnN0YXJ0c1dp
dGgoInZwMDkiKSB8fCBjb2RlYy5zdGFydHNXaXRoKCJ2cDA4IikgfHwgZXF1YWwoY29kZWMsICJ2
cDgiKSB8fCBlcXVhbChjb2RlYywgInZwOSIpKSB7CiAKICAgICAgICAgICAgIGlmICghaXNWUDlE
ZWNvZGVyQXZhaWxhYmxlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51
bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKLSAgICAgICAgICAgIGF1dG8gY29k
ZWNQYXJhbWV0ZXJzID0gcGFyc2VWUENvZGVjUGFyYW1ldGVycyhzcGxpdCk7CisgICAgICAgICAg
ICBhdXRvIGNvZGVjUGFyYW1ldGVycyA9IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoY29kZWMpOwog
ICAgICAgICAgICAgaWYgKCFjb2RlY1BhcmFtZXRlcnMpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKQEAgLTUw
MCw3ICs1NTEsNyBAQCBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgU291cmNlQnVmZmVy
UGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZChjbwogI2VuZGlmIC8vIEVOQUJMRShW
UDkpCiAKICNpZiBFTkFCTEUoVk9SQklTKQotICAgICAgICBpZiAoc3BsaXQgPT0gInZvcmJpcyIp
IHsKKyAgICAgICAgaWYgKGNvZGVjID09ICJ2b3JiaXMiKSB7CiAgICAgICAgICAgICBpZiAoIWlz
Vm9yYmlzRGVjb2RlckF2YWlsYWJsZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCkBAIC01MDksNyArNTYw
LDcgQEAgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIFNvdXJjZUJ1ZmZlclBhcnNlcldl
Yk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY28KICNlbmRpZiAvLyBFTkFCTEUoVk9SQklTKQog
CiAjaWYgRU5BQkxFKE9QVVMpCi0gICAgICAgIGlmIChzcGxpdCA9PSAib3B1cyIpIHsKKyAgICAg
ICAgaWYgKGNvZGVjID09ICJvcHVzIikgewogICAgICAgICAgICAgaWYgKCFpc09wdXNEZWNvZGVy
QXZhaWxhYmxlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1
cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0u
aAppbmRleCBlY2EwM2MyMDRmYTEwMDdlNWMyNTNiNTNhMmZmNGE1MmI1Y2IxNzljLi4xMzJhYzgy
NzEyMDMwMWFjNGFlMzAxNzgxZThmZTUyZDJhOWZkZjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFy
c2VyV2ViTS5oCkBAIC02MCw3ICs2MCwxMCBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBTb3VyY2VC
dWZmZXJQYXJzZXJXZWJNIDogcHVibGljIFNvdXJjZUJ1ZmZlclBhcnNlciwgcHJpdmF0ZQogcHVi
bGljOgogICAgIGNsYXNzIFN0cmVhbWluZ1ZlY3RvclJlYWRlcjsKIAorICAgIHN0YXRpYyBib29s
IGlzV2ViTUZvcm1hdFJlYWRlckF2YWlsYWJsZSgpOworICAgIHN0YXRpYyB2b2lkIHNldFdlYk1G
b3JtYXRSZWFkZXJFbmFibGVkKGJvb2wpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllckVudW1zOjpT
dXBwb3J0c1R5cGUgaXNDb250ZW50VHlwZVN1cHBvcnRlZChjb25zdCBDb250ZW50VHlwZSYpOwor
ICAgIHN0YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNo
PiYgd2VibU1JTUVUeXBlcygpOwogICAgIHN0YXRpYyBSZWZQdHI8U291cmNlQnVmZmVyUGFyc2Vy
V2ViTT4gY3JlYXRlKGNvbnN0IENvbnRlbnRUeXBlJik7CiAKICAgICBTb3VyY2VCdWZmZXJQYXJz
ZXJXZWJNKCk7CkBAIC0yNjgsNiArMjcxLDggQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxjb25z
dCBXVEY6OkxvZ2dlcj4gbV9sb2dnZXI7CiAgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVy
IHsgbnVsbHB0ciB9OworICAgIAorICAgIHN0YXRpYyBib29sIG1fZm9ybWF0UmVhZGVyRW5hYmxl
ZDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggYzZkODlkMDk3NjM1MzFjMzNlZGIyOGJmM2EwMDgxMzgyMDQwMmRiNi4uYTRmZjRi
YTAyYTlkMzJmMzA0OGFkOTU5YjQ2M2U3NDJjMjdkMzM1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM0MSw2ICszNDEsMTAgQEAKICNlbmRp
ZgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9G
T1JNQVRfUkVBREVSKQorI2luY2x1ZGUgPFdlYkNvcmUvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaD4K
KyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTM4NDMsNiArMzg0NywxMCBAQCB2b2lkIFdlYlBhZ2U6
OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogICAg
ICAgICAgICAgc2V0dGluZ3Muc2V0V2ViQXV0aGVudGljYXRpb25FbmFibGVkKHRydWUpOwogICAg
IH0KICNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5f
Rk9STUFUX1JFQURFUikKKyAgICBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuc2V0
V2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS53ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpKTsKKyNlbmRpZgogfQogCiAjaWYgRU5B
QkxFKERBVEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggNzFkNGE5YTc4YWIwY2NlZDlkMDlhMmY5YjQ2NjI0
MTFjMDc4NGJjNy4uMjNmODRlN2NhZjAxNmM0NDFkMjBjZTZlNTUzZjc4NGEzNjBlYmI1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
CkBAIC02OSw2ICs2OSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BlcmZvcm1hbmNlTG9nZ2luZy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9QaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TV0NvbnRleHRNYW5hZ2Vy
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N5c3RlbUJhdHRlcnkuaD4KICNpbXBvcnQgPFdlYkNvcmUv
U3lzdGVtU291bmRNYW5hZ2VyLmg+CkBAIC0zMjgsNiArMzI5LDEwIEBAIHZvaWQgV2ViUHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJiBwYXJhCiAgICAgcHRocmVhZF9zZXRfZml4ZWRwcmlvcml0eV9zZWxmKCk7CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFE
RVIpCisgICAgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLnNldFdlYk1Gb3JtYXRS
ZWFkZXJFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2Vi
TUZvcm1hdFJlYWRlckVuYWJsZWQoKSk7CisjZW5kaWYKKwogICAgIGlmICghcGFyYW1ldGVycy5t
ZWRpYU1JTUVUeXBlcy5pc0VtcHR5KCkpCiAgICAgICAgIHNldE1lZGlhTUlNRVR5cGVzKHBhcmFt
ZXRlcnMubWVkaWFNSU1FVHlwZXMpOwogICAgIGVsc2Ugewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416465</attachid>
            <date>2020-12-17 13:50:19 -0800</date>
            <delta_ts>2021-01-05 16:23:29 -0800</delta_ts>
            <desc>Address post-review comments.</desc>
            <filename>bug-219961-20201217135019.patch</filename>
            <type>text/plain</type>
            <size>1539</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwOTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhhMjI4ZTZhODMxNWZi
YWVlODZjODU3ZmVhNTJkODlmYzBhZTNmZS4uM2RjZjhjZjNjYjc5NWI4OTJlOWRhZThlMzE5NDY2
ZTM4NzJkZmZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEyLTE3ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2Vi
TSBmb3JtYXQgcmVhZGVyIGRvZXNuJ3Qgd29yayB3aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5
OTYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjM5OTAxND4KKworICAgICAgICBVbnJldmll
d2VkLCBhZGRyZXNzIHBvc3QtcmV2aWV3IGNvbW1lbnRzIGFmdGVyIHIyNzA5MzkuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNhbkxvYWRGb3JtYXRSZWFkZXIpOiBVc2UgYW4gI2VsaWYgc28g
d2UgZG9u4oCZdCBjb21waWxlIG11bHRpcGxlCisgICAgICAgIHJldHVybiBzdGF0ZW1lbnRzLgor
CisKIDIwMjAtMTItMTcgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW21hY09TXSBVc2UgbG93LXBvd2VyIGF1ZGlvIGJ1ZmZlciBzaXplcyBmb3IgbW9yZSBvdXRw
dXQgZGV2aWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAppbmRleCA2ODA4NWMx
NTQ1MGI0YWYyYmQ3YTllMGExZTY1NDE3YTUzY2NlMjc0Li5jNjFmNGVkZGRkYTE2NGU3NzFmNDEw
YzEzNGVjMjAxMmIxNGQwOGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcApA
QCAtNDc4LDkgKzQ3OCw3IEBAIHN0YXRpYyBib29sIGNhbkxvYWRGb3JtYXRSZWFkZXIoKQogewog
I2lmICFIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQogICAgIHJldHVybiBmYWxzZTsKLSNl
bmRpZgotCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNlbGlmIFVTRShBUFBMRV9JTlRF
Uk5BTF9TREspCiAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQogICAgIC8vIEZJWE1FIChyZGFyOi8v
NzIzMjA0MTkpOiBJZiBXZWJLaXQgd2FzIGJ1aWx0IHdpdGggYWQtaG9jIGNvZGUtc2lnbmluZywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417051</attachid>
            <date>2021-01-05 16:23:31 -0800</date>
            <delta_ts>2021-01-05 17:06:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219961-20210105162330.patch</filename>
            <type>text/plain</type>
            <size>38059</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjRiMDk0MDA0ZmI4MjZm
ZjUwMzIxNmU3NjE3MzdiZjliNDhmZDgxZS4uYTJkNjYxOWJiZDE3YWNlY2JhNGFlZmM1NWZlZDg3
Yzg5OGJiYmUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTAxLTA1ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2Vi
TSBmb3JtYXQgcmVhZGVyIGRvZXNuJ3Qgd29yayB3aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5
OTYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjM5OTAxND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXb3JrIGFyb3VuZCBhIENvcmVNZWRpYSBi
dWcgdGhhdCBtYWtlcyB0aGUgZm9ybWF0IHJlYWRlciBmYWlsIHRvIGxvYWQgd2hlbiB0aGUKKyAg
ICAgICAgQVZVUkxBc3NldE91dE9mQmFuZE1JTUVUeXBlS2V5aXMgaW5jbHVkZWQgaW4gdGhlIEFW
VVJMQXNzZXQgb3B0aW9ucyBkaWN0aW9uYXJ5LgorICAgICAgICBBbHNvIGluY2x1ZGUgc29tZSBj
bGVhbnVwOgorICAgICAgICAtIE1vdmUgdGhlIGNvZGUgdG8gY2hlY2sgZm9yIFdlYk0gTUlNRSB0
eXBlcyBmcm9tIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMKKyAgICAgICAgICB0
byBBVkFzc2V0TUlNRVR5cGVDYWNoZS4KKyAgICAgICAgLSBEb24ndCB1c2UgUnVudGltZUVuYWJs
ZWRGZWF0dXJlcyBpbiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLgorICAgICAg
ICAtIFJlZ2lzdGVyIHRoZSBXZWJNIGZvcm1hdCByZWFkZXIgd2hlbiBjcmVhdGluZyBhbiBBVlVS
TEFzc2V0IGZvciBhIFdlYk0gdXJsIGluc3RlYWQKKyAgICAgICAgICBvZiB3aGVuIGNoZWNraW5n
IHRoZSBNSU1FIHR5cGUuCisgICAgICAgIC0gQ2xlYW51cCBXZWJNICJjb2RlY3MiIHBhcmFtZXRl
ciBwYXJzaW5nLgorICAgICAgICAtIEl0IGlzIGEgbGF5ZXJpbmcgdmlvbGF0aW9uIHRvIHVzZSBS
dW50aW1lU2V0dGluZ3MgZnJvbSBpbnNpZGUgb2YgL3BsYXRmb3JtLgorCisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6d2ViTUZvcm1hdFJlYWRlckVuYWJs
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXRX
ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXI6OnZvcmJpc0RlY29kZXJFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2V0Vm9yYmlzRGVjb2RlckVuYWJsZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VHJhY2tQcml2YXRlQmFzZTo6ZGVmYXVsdEVuYWJsZWQgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVFeHRl
bmRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OmluaXRp
YWxpemVDYWNoZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OnJlZ2lzdGVyRm9ybWF0UmVhZGVySWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6
d2lsbFVzZVdlYk1Gb3JtYXRSZWFkZXJGb3JUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9y
dHNUeXBlQW5kQ29kZWNzKToKKyAgICAgICAgKFdlYkNvcmU6OmVuc3VyZUZvcm1hdFJlYWRlcklz
UmVnaXN0ZXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjppc0Zvcm1hdFJlYWRlckF2
YWlsYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQXVk
aW9UcmFja1ByaXZhdGVXZWJNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2
YXRlV2ViTTo6ZGVmYXVsdEVuYWJsZWQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyUGFyc2VyV2ViTTo6d2VibU1JTUVUeXBlcyk6CisgICAgICAgIChXZWJD
b3JlOjpjYW5Mb2FkRm9ybWF0UmVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
clBhcnNlcldlYk06OmlzV2ViTUZvcm1hdFJlYWRlckF2YWlsYWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJN
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlV2ViTTo6ZGVmYXVsdEVu
YWJsZWQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJh
Y2tQcml2YXRlV2ViTS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYk1B
dWRpb1V0aWxpdGllc0NvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6aXNWb3JiaXNEZWNvZGVy
QXZhaWxhYmxlKToKKwogMjAyMS0wMS0wNSAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWpp
aUBzb255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dW2N1cmxdIEVuYWJsZSBDVVJMU1NMT1BU
X05BVElWRV9DQSBmbGFnIHRvIHVzZSBzeXN0ZW0ncyBDQSBjZXJ0cyBpbnN0ZWFkIG9mIGNhY2Vy
dC5wZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggYWQ3NWU3ZDIzNDI0MjMwNDIxOTQ2MmQ1ZTcxZTdkZWE5ZWIzYWY3
MC4uMjRlZjhmNzIwNzRmY2IxMjg5ODY1MmRkODA2OGQxOGQzYzI3ZDg3MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyOSBAQAorMjAyMS0wMS0wNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFw
cGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFdlYk0gZm9ybWF0IHJlYWRlciBkb2Vzbid0IHdv
cmsgd2l0aCBhIHVybCBpbiBhIDxzb3VyY2U+IGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTk2MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzIzOTkwMTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgT25seSBlbmFibGUgYSBXZWJNIHRyYWNrIHdoZW4gdGhlIGl0IGhhcyBGbGFnRW5hYmxl
ZCBlbGVtZW50LCBvciB3aGVuIHdlIHNlZSB0aGF0CisgICAgICAgIGl0IGhhcyBtZWRpYSBzYW1w
bGVzLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZXJlIGFyZSBXZWJNIGZpbGVzIHdpdGgg
ZW1wdHkgdHJhY2tzLAorICAgICAgICBhbmQgQ29yZU1lZGlhIHdvbid0IHBsYXkgYSBmaWxlIGlm
IGFueSBlbmFibGVkIHRyYWNrIGRvZXNuJ3QgaGF2ZSBzYW1wbGVzLgorCisgICAgICAgICogU2hh
cmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9Gb3JtYXRSZWFkZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpGb3JtYXRSZWFkZXI6OmRpZFBhcnNlVHJhY2tzKToKKyAgICAgICAgKiBTaGFyZWQvbWFj
L01lZGlhRm9ybWF0UmVhZGVyL1RyYWNrUmVhZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VHJh
Y2tSZWFkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUmVhZGVyOjpUcmFja1Jl
YWRlcik6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUmVhZGVyOjpmaW5pc2hQYXJzaW5nKToKKyAg
ICAgICAgKFdlYktpdDo6VHJhY2tSZWFkZXI6OmlzRW5hYmxlZCBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OlRyYWNrUmVhZGVyOjpjb3B5UHJvcGVydHkpOgorICAgICAgICAqIFNoYXJlZC9tYWMv
TWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tSZWFkZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZl
cmVuY2VzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vz
cyk6CisKIDIwMjEtMDEtMDUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBNYWtlIFdlYlBhZ2U6OkZvcmNlUmVwYWludCB1c2UgQ29tcGxldGlv
bkhhbmRsZXIgaW5zdGVhZCBvZiBWb2lkQ2FsbGJhY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3Bw
CmluZGV4IDE3NWFhZmU2NGVhYTI2N2I4YTMyNmYwYzYxZTIwMzc4YWM2MzA5Y2EuLjZmMDkyZmZj
YjZmYzVmMjE4ZTZlYTNlZjU3NGU1Njg2YWVjYjk0YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
LmNwcApAQCAtMzUsNiArMzUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUo
VklERU8pIHx8IEVOQUJMRShXRUJfQVVESU8pCiAKK2Jvb2wgUGxhdGZvcm1NZWRpYVNlc3Npb25N
YW5hZ2VyOjptX3dlYk1Gb3JtYXRSZWFkZXJFbmFibGVkOworYm9vbCBQbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXI6Om1fdm9yYmlzRGVjb2RlckVuYWJsZWQ7CisKIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyPiYgc2hhcmVkUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVf
cHRyPFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcj4+IHBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjsKQEAgLTYxMCw2ICs2MTMsNDIgQEAgdm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXI6OnNldFNob3VsZERlYWN0aXZhdGVBdWRpb1Nlc3Npb24oYm9vbCBkZWFjdGl2YXQKICAgICBk
ZWFjdGl2YXRlQXVkaW9TZXNzaW9uKCkgPSBkZWFjdGl2YXRlOwogfQogCitib29sIFBsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlcjo6d2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKQoreworI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCisgICAg
cmV0dXJuIG1fd2ViTUZvcm1hdFJlYWRlckVuYWJsZWQ7CisjZWxzZQorICAgIHJldHVybiBmYWxz
ZTsKKyNlbmRpZgorfQorCit2b2lkIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2V0V2Vi
TUZvcm1hdFJlYWRlckVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworI2lmIEVOQUJMRShNRURJQV9T
T1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCisgICAgbV93ZWJNRm9ybWF0
UmVhZGVyRW5hYmxlZCA9IGVuYWJsZWQ7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmFibGVk
KTsKKyNlbmRpZgorfQorCitib29sIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dm9yYmlz
RGVjb2RlckVuYWJsZWQoKQoreworI2lmIEVOQUJMRShWT1JCSVMpICYmIFBMQVRGT1JNKE1BQykK
KyAgICByZXR1cm4gbV92b3JiaXNEZWNvZGVyRW5hYmxlZDsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGVuYWJsZWQpOworI2VuZGlmCit9CisKK3ZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyOjpzZXRWb3JiaXNEZWNvZGVyRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisjaWYgRU5BQkxF
KFZPUkJJUykgJiYgUExBVEZPUk0oTUFDKQorICAgIG1fdm9yYmlzRGVjb2RlckVuYWJsZWQgPSBl
bmFibGVkOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CisjZW5kaWYKK30KKwog
I2Vsc2UgLy8gRU5BQkxFKFZJREVPKSB8fCBFTkFCTEUoV0VCX0FVRElPKQogCiB2b2lkIFBsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlTm93UGxheWluZ0luZm9JZk5lY2Vzc2FyeSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlci5oCmluZGV4IDc3NGNiMWNhMjU0MzJlNDY0ZGJmZTE5OTUzNGI1
YmVmYzBkM2E2MWMuLmFhMGYyY2MxOTRkMWMzYjQyYWFhZTA5MTM3MTI5NzVmZDk5NGYxYWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlci5oCkBAIC01OCw2ICs1OCwxMSBAQCBwdWJsaWM6CiAgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0U2hvdWxkRGVhY3RpdmF0ZUF1ZGlvU2Vzc2lvbihi
b29sKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBzaG91bGREZWFjdGl2YXRlQXVk
aW9TZXNzaW9uKCk7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRXZWJNRm9y
bWF0UmVhZGVyRW5hYmxlZChib29sKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCB3
ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lk
IHNldFZvcmJpc0RlY29kZXJFbmFibGVkKGJvb2wpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBib29sIHZvcmJpc0RlY29kZXJFbmFibGVkKCk7CisKICAgICB2aXJ0dWFsIH5QbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXIoKSA9IGRlZmF1bHQ7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1
bGVTZXNzaW9uU3RhdHVzVXBkYXRlKCkgeyB9CkBAIC0yMDEsNiArMjA2LDEzIEBAIHByaXZhdGU6
CiAgICAgV2Vha0hhc2hTZXQ8UGxhdGZvcm1NZWRpYVNlc3Npb246OkF1ZGlvQ2FwdHVyZVNvdXJj
ZT4gbV9hdWRpb0NhcHR1cmVTb3VyY2VzOwogICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IHVw
ZGF0ZVNlc3Npb25TdGF0ZVF1ZXVlOwogCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFW
RShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICBzdGF0aWMgYm9vbCBtX3dlYk1Gb3JtYXRS
ZWFkZXJFbmFibGVkOworI2VuZGlmCisjaWYgRU5BQkxFKFZPUkJJUykgJiYgUExBVEZPUk0oTUFD
KQorICAgIHN0YXRpYyBib29sIG1fdm9yYmlzRGVjb2RlckVuYWJsZWQ7CisjZW5kaWYKKwogI2lm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIFJlZjxBZ2dyZWdhdGVMb2dnZXI+IG1fbG9nZ2Vy
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9U
cmFja1ByaXZhdGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Ry
YWNrUHJpdmF0ZUJhc2UuY3BwCmluZGV4IDRiZDIyZmU0MzI3OGViNTBkYjRmNjliNGViZGMwZjFl
YzgwOWE1ZTQuLjcxMTM4ZGYyOTRhZjg5YjMwNWQxM2U4MDlkN2Y0ZDI3ZDkxYjZkMTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJh
c2UuY3BwCkBAIC0zOCw2ICszOCwxMSBAQCBPcHRpb25hbDx1aW50NjRfdD4gVHJhY2tQcml2YXRl
QmFzZTo6dHJhY2tVSUQoKSBjb25zdAogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9CiAKK09w
dGlvbmFsPGJvb2w+IFRyYWNrUHJpdmF0ZUJhc2U6OmRlZmF1bHRFbmFibGVkKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CiAKIHN0YXRpYyB1aW50NjRfdCBzX3VuaXF1ZUlkID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaAppbmRleCBmNDRlZmNiZTUx
MmY0NjE3ODVmNzE0MGVmMjdjNTkxNWJhNGMzNWUwLi4zMDk5NjE0MjA0ODU1ZDk5NjlkMDRjNmYw
Nzk4M2MyNzc3NGU3ZjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9UcmFja1ByaXZhdGVCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oCkBAIC02NCw2ICs2NCw3IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgaW50IHRyYWNrSW5kZXgoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVh
bCBPcHRpb25hbDx1aW50NjRfdD4gdHJhY2tVSUQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIE9wdGlv
bmFsPGJvb2w+IGRlZmF1bHRFbmFibGVkKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIE1lZGlhVGlt
ZSBzdGFydFRpbWVWYXJpYW5jZSgpIGNvbnN0IHsgcmV0dXJuIE1lZGlhVGltZTo6emVyb1RpbWUo
KTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1t
CmluZGV4IDg3MDY2MjE0NjZiNTk1N2Q4NTdjOGU2YTk3YzkxZWE2M2Y0NjAxZjkuLjM1OTNiZDQ0
Yzk0MTk4YzQ1OTAwODA0ZDcyYWFkNzg3MzJmYWUyNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNh
Y2hlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAKICNpbXBvcnQgIkNvbnRlbnRUeXBlLmgiCisjaW1wb3J0ICJTb3VyY2VC
dWZmZXJQYXJzZXJXZWJNLmgiCiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4K
ICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgogCkBAIC02Myw5ICs2
NCwxNiBAQCBib29sIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUo
Y29uc3QgQ29udGVudFR5cGUmIHR5cGUpCiB7CiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZG
T1VOREFUSU9OKQogICAgIEFTU0VSVChpc0F2YWlsYWJsZSgpKTsKLSAgICByZXR1cm4gW1BBTDo6
Z2V0QVZVUkxBc3NldENsYXNzKCkgaXNQbGF5YWJsZUV4dGVuZGVkTUlNRVR5cGU6dHlwZS5yYXco
KV07CisgICAgaWYgKFtQQUw6OmdldEFWVVJMQXNzZXRDbGFzcygpIGlzUGxheWFibGVFeHRlbmRl
ZE1JTUVUeXBlOnR5cGUucmF3KCldKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworI2lmIEVOQUJM
RShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCisgICAgaWYg
KFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQodHlwZSkgPT0g
TWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRlZCkKKyAgICAgICAgcmV0
dXJuIHRydWU7CiAjZW5kaWYKIAorI2VuZGlmIC8vIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9V
TkRBVElPTikKKwogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMTQ4LDYgKzE1NiwxMyBAQCB2
b2lkIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjppbml0aWFsaXplQ2FjaGUoSGFzaFNldDxTdHJpbmcs
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSAogICAgIGZvciAoTlNTdHJpbmcqIHR5cGUgaW4gW1BBTDo6
Z2V0QVZVUkxBc3NldENsYXNzKCkgYXVkaW92aXN1YWxNSU1FVHlwZXNdKQogICAgICAgICBjYWNo
ZS5hZGQodHlwZSk7CiAKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJ
Tl9GT1JNQVRfUkVBREVSKQorICAgIGlmIChTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjppc1dlYk1G
b3JtYXRSZWFkZXJBdmFpbGFibGUoKSkgeworICAgICAgICBhdXRvIHdlYm1UeXBlcyA9IFNvdXJj
ZUJ1ZmZlclBhcnNlcldlYk06OndlYm1NSU1FVHlwZXMoKTsKKyAgICAgICAgY2FjaGUuYWRkKHdl
Ym1UeXBlcy5iZWdpbigpLCB3ZWJtVHlwZXMuZW5kKCkpOworICAgIH0KKyNlbmRpZgorCiAgICAg
aWYgKG1fY2FjaGVUeXBlQ2FsbGJhY2spCiAgICAgICAgIG1fY2FjaGVUeXBlQ2FsbGJhY2soY29w
eVRvVmVjdG9yKGNhY2hlKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IGQ2
NGE3MjU2MmEyNGMwZDhhMWRiYmEzMDljZTUxNWM4Y2ZlYzRhZTEuLjg2Y2FmNDVlYjNjYzU1OWZk
NjRmZDRkYjBiZDA5ZDMyYzBjNmVlYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtNTYs
NyArNTYsNiBAQAogI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgogI2ltcG9ydCAi
UGxhdGZvcm1UaW1lUmFuZ2VzLmgiCiAjaW1wb3J0ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
aCIKLSNpbXBvcnQgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbXBvcnQgIlNlY3VyaXR5
T3JpZ2luLmgiCiAjaW1wb3J0ICJTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlTWFjLmgiCiAjaW1w
b3J0ICJTaGFyZWRCdWZmZXIuaCIKQEAgLTEwMCw3ICs5OSw2IEBACiAjaW1wb3J0IDx3dGYvT1NP
YmplY3RQdHIuaD4KICNpbXBvcnQgPHd0Zi9VUkwuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9WZWN0
b3JDb2NvYS5oPgotI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vT1NWYXJpYW50U1BJLmg+CiAjaW1w
b3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW1wb3J0IDx3dGYvdGhyZWFkcy9CaW5hcnlTZW1h
cGhvcmUuaD4KIApAQCAtMjcwLDYgKzI2OCwyMCBAQCBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCBn
bG9iYWxQdWxsRGVsZWdhdGVRdWV1ZSgpCiAgICAgcmV0dXJuIGdsb2JhbFF1ZXVlOwogfQogCitz
dGF0aWMgdm9pZCByZWdpc3RlckZvcm1hdFJlYWRlcklmTmVjZXNzYXJ5KCkKK3sKKyNpZiBFTkFC
TEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQorICAgIHN0
YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOworICAgIGRpc3BhdGNoX29uY2UoJm9uY2VU
b2tlbiwgXnsKKyAgICAgICAgLy8gTGlrZSB3ZSBkbyBmb3Igb3RoZXIgbWVkaWEgZm9ybWF0cywg
YWxsb3cgdGhlIGZvcm1hdCByZWFkZXIgdG8gcnVuIGluIHRoZSBXZWJDb250ZW50IG9yIEdQVSBw
cm9jZXNzCisgICAgICAgIC8vICh3aGljaCBpcyBhbHJlYWR5IGFwcHJvcHJpYXRlbHkgc2FuZGJv
eGVkKSByYXRoZXIgdGhhbiBpbiBhIHNlcGFyYXRlIE1lZGlhVG9vbGJveCBYUEMgc2VydmljZS4K
KyAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNJbkdQVVByb2Nlc3MoKSB8fCBpc0luV2ViUHJvY2Vz
cygpKTsKKyAgICAgICAgTVRSZWdpc3RlclBsdWdpbkZvcm1hdFJlYWRlckJ1bmRsZURpcmVjdG9y
eSgoX19icmlkZ2UgQ0ZVUkxSZWYpTlNCdW5kbGUubWFpbkJ1bmRsZS5idWlsdEluUGx1Z0luc1VS
TCk7CisgICAgICAgIE1UUGx1Z2luRm9ybWF0UmVhZGVyRGlzYWJsZVNhbmRib3hpbmcoKTsKKyAg
ICB9KTsKKyNlbmRpZgorfQorCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpGYWN0b3J5IGZpbmFsIDogcHVibGljIE1lZGlhUGxheWVyRmFjdG9yeSB7CiBwcml2YXRl
OgogICAgIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBpZGVudGlmaWVy
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVu
dGlmaWVyOjpBVkZvdW5kYXRpb247IH07CkBAIC03OTIsNiArODA0LDE5IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTChjb25zdCBV
UkwmIHVybCkKIAogfQogCitzdGF0aWMgYm9vbCB3aWxsVXNlV2ViTUZvcm1hdFJlYWRlckZvclR5
cGUoY29uc3QgU3RyaW5nJiB0eXBlKQoreworI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhB
VkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCisgICAgaWYgKCFTb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNOjppc1dlYk1Gb3JtYXRSZWFkZXJBdmFpbGFibGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UodHlwZSwgInZpZGVvL3dlYm0i
KSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHR5cGUsICJhdWRpby93ZWJtIik7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTSh0eXBlKTsKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9y
VVJMKGNvbnN0IFVSTCYgdXJsLCBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gb3B0aW9u
cykKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwpAQCAtODMzLDcgKzg1OCwxMSBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRG
b3JVUkwoY29uc3QgVVJMJiB1cmwsIFJldAogI2VuZGlmCiAKICAgICBhdXRvIHR5cGUgPSBwbGF5
ZXIoKS0+Y29udGVudE1JTUVUeXBlKCk7Ci0gICAgaWYgKFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRp
b25fQVZVUkxBc3NldE91dE9mQmFuZE1JTUVUeXBlS2V5KCkgJiYgIXR5cGUuaXNFbXB0eSgpICYm
ICFwbGF5ZXIoKS0+Y29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uKCkpIHsK
KworICAgIC8vIERvbid0IGFkdmVydGlzZSBXZWJNIE1JTUUgdHlwZXMgb3IgdGhlIGZvcm1hdCBy
ZWFkZXIgd29uJ3QgYmUgbG9hZGVkIHVudGlsIHJkYXI6Ly83MjQwNTEyNyBpcyBmaXhlZC4KKyAg
ICBhdXRvIHdpbGxVc2VXZWJNRm9ybWF0UmVhZGVyID0gd2lsbFVzZVdlYk1Gb3JtYXRSZWFkZXJG
b3JUeXBlKHR5cGUpOworCisgICAgaWYgKFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25fQVZVUkxB
c3NldE91dE9mQmFuZE1JTUVUeXBlS2V5KCkgJiYgIXR5cGUuaXNFbXB0eSgpICYmICFwbGF5ZXIo
KS0+Y29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uKCkgJiYgIXdpbGxVc2VX
ZWJNRm9ybWF0UmVhZGVyKSB7CiAgICAgICAgIGF1dG8gY29kZWNzID0gcGxheWVyKCktPmNvbnRl
bnRUeXBlQ29kZWNzKCk7CiAgICAgICAgIGlmICghY29kZWNzLmlzRW1wdHkoKSkgewogICAgICAg
ICAgICAgTlNTdHJpbmcgKnR5cGVTdHJpbmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpA
IiVAOyBjb2RlY3M9XCIlQFwiIiwgKE5TU3RyaW5nICopdHlwZSwgKE5TU3RyaW5nICopY29kZWNz
XTsKQEAgLTg3Niw2ICs5MDUsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3QgVVJMJiB1cmwsIFJldAogICAgICAgICAg
ICAgW29wdGlvbnMgc2V0T2JqZWN0OkBOTyBmb3JLZXk6QVZVUkxBc3NldFVzZXNOb1BlcnNpc3Rl
bnRDYWNoZUtleV07CiAgICAgfQogCisgICAgaWYgKHdpbGxVc2VXZWJNRm9ybWF0UmVhZGVyKQor
ICAgICAgICByZWdpc3RlckZvcm1hdFJlYWRlcklmTmVjZXNzYXJ5KCk7CisKICAgICBOU1VSTCAq
Y29jb2FVUkwgPSBjYW5vbmljYWxVUkwodXJsKTsKICAgICBtX2F2QXNzZXQgPSBhZG9wdE5TKFtQ
QUw6OmFsbG9jQVZVUkxBc3NldEluc3RhbmNlKCkgaW5pdFdpdGhVUkw6Y29jb2FVUkwgb3B0aW9u
czpvcHRpb25zLmdldCgpXSk7CiAKQEAgLTE2NjcsMzkgKzE2OTksNiBAQCBzdGF0aWMgYm9vbCBr
ZXlTeXN0ZW1Jc1N1cHBvcnRlZChjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKIH0KICNlbmRpZgog
Ci0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURF
UikKLXN0YXRpYyB2b2lkIGVuc3VyZUZvcm1hdFJlYWRlcklzUmVnaXN0ZXJlZCgpCi17Ci0gICAg
c3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47Ci0gICAgZGlzcGF0Y2hfb25jZSgmb25j
ZVRva2VuLCBeewotICAgICAgICAvLyBMaWtlIHdlIGRvIGZvciBvdGhlciBtZWRpYSBmb3JtYXRz
LCBhbGxvdyB0aGUgZm9ybWF0IHJlYWRlciB0byBydW4gaW4gdGhlIFdlYkNvbnRlbnQgb3IgR1BV
IHByb2Nlc3MKLSAgICAgICAgLy8gKHdoaWNoIGlzIGFscmVhZHkgYXBwcm9wcmlhdGVseSBzYW5k
Ym94ZWQpIHJhdGhlciB0aGFuIGluIGEgc2VwYXJhdGUgTWVkaWFUb29sYm94IFhQQyBzZXJ2aWNl
LgotICAgICAgICBSRUxFQVNFX0FTU0VSVChpc0luR1BVUHJvY2VzcygpIHx8IGlzSW5XZWJQcm9j
ZXNzKCkpOwotICAgICAgICBNVFJlZ2lzdGVyUGx1Z2luRm9ybWF0UmVhZGVyQnVuZGxlRGlyZWN0
b3J5KChfX2JyaWRnZSBDRlVSTFJlZilOU0J1bmRsZS5tYWluQnVuZGxlLmJ1aWx0SW5QbHVnSW5z
VVJMKTsKLSAgICAgICAgTVRQbHVnaW5Gb3JtYXRSZWFkZXJEaXNhYmxlU2FuZGJveGluZygpOwot
ICAgIH0pOwotfQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1U
X1BMVUdJTl9GT1JNQVRfUkVBREVSKQotc3RhdGljIGJvb2wgaXNGb3JtYXRSZWFkZXJBdmFpbGFi
bGUoKQotewotICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS53ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSNp
ZiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSAgICAvLyBGSVhNRSAocmRhcjovLzcyMzIwNDE5
KTogSWYgV2ViS2l0IHdhcyBidWlsdCB3aXRoIGFkLWhvYyBjb2RlLXNpZ25pbmcsCi0gICAgLy8g
Q29yZU1lZGlhIHdpbGwgb25seSBsb2FkIHRoZSBmb3JtYXQgcmVhZGVyIHBsdWctaW4gd2hlbiBh
IHVzZXIgZGVmYXVsdAotICAgIC8vIGlzIHNldCBvbiBBcHBsZSBpbnRlcm5hbCBPU3MuIFRoYXQg
bWVhbnMgd2UgY2Fubm90IGN1cnJlbnRseSBzdXBwb3J0IFdlYk0KLSAgICAvLyBpbiBwdWJsaWMg
U0RLIGJ1aWxkcyBvbiBjdXN0b21lciBPU3MuCi0gICAgaWYgKCFvc192YXJpYW50X2FsbG93c19p
bnRlcm5hbF9zZWN1cml0eV9wb2xpY2llcygiY29tLmFwcGxlLldlYktpdCIpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLQotICAgIHJldHVybiB0cnVlOwotfQotI2VuZGlmCi0KIE1l
ZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKQEAgLTE3MTEsMTkg
KzE3MTAsNiBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZAogICAgICAgICByZXR1cm4gTWVkaWFQ
bGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAjZW5kaWYKIAotI2lmIEVOQUJM
RShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCi0gICAgaWYg
KGlzRm9ybWF0UmVhZGVyQXZhaWxhYmxlKCkpIHsKLSAgICAgICAgYXV0byBzdXBwb3J0ZWQgPSBT
b3VyY2VCdWZmZXJQYXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKHBhcmFtZXRlcnMu
dHlwZSk7Ci0gICAgICAgIGlmIChzdXBwb3J0ZWQgIT0gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlw
ZTo6SXNOb3RTdXBwb3J0ZWQpIHsKLSAgICAgICAgICAgIGVuc3VyZUZvcm1hdFJlYWRlcklzUmVn
aXN0ZXJlZCgpOwotICAgICAgICAgICAgaWYgKHN1cHBvcnRlZCA9PSBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlOjpNYXlCZVN1cHBvcnRlZCkKLSAgICAgICAgICAgICAgICByZXR1cm4gc3VwcG9y
dGVkOwotICAgICAgICAgICAgaWYgKGNvbnRlbnRUeXBlTWVldHNIYXJkd2FyZURlY29kZVJlcXVp
cmVtZW50cyhwYXJhbWV0ZXJzLnR5cGUsIHBhcmFtZXRlcnMuY29udGVudFR5cGVzUmVxdWlyaW5n
SGFyZHdhcmVTdXBwb3J0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQ7Ci0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYKLQogICAg
IGF1dG8gc3VwcG9ydGVkID0gQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLmNhbkRl
Y29kZVR5cGUocGFyYW1ldGVycy50eXBlLnJhdygpKTsKICAgICBpZiAoc3VwcG9ydGVkICE9IE1l
ZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzU3VwcG9ydGVkKQogICAgICAgICByZXR1cm4gc3Vw
cG9ydGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvQXVkaW9UcmFja1ByaXZhdGVXZWJNLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5jcHAKaW5kZXggNzdkOGEzNDU4ZGEw
NTE5OTE2YjJlNWE4NmQ5ZDFkNDdmNTYzYWMxZC4uZmQyNjg4YTVkZDNkOTY5ZjQzMGRjM2Y4ZTAy
ODY1NDgyZjUzMWY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvQXVkaW9UcmFja1ByaXZhdGVXZWJNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BdWRpb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCkBAIC01OCw2
ICs1OCwxMyBAQCBPcHRpb25hbDx1aW50NjRfdD4gQXVkaW9UcmFja1ByaXZhdGVXZWJNOjp0cmFj
a1VJRCgpIGNvbnN0CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAorT3B0aW9uYWw8Ym9v
bD4gQXVkaW9UcmFja1ByaXZhdGVXZWJNOjpkZWZhdWx0RW5hYmxlZCgpIGNvbnN0Cit7CisgICAg
aWYgKG1fdHJhY2suaXNfZW5hYmxlZC5pc19wcmVzZW50KCkpCisgICAgICAgIHJldHVybiBtX3Ry
YWNrLmlzX2VuYWJsZWQudmFsdWUoKTsKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCiBB
dG9tU3RyaW5nIEF1ZGlvVHJhY2tQcml2YXRlV2ViTTo6bGFiZWwoKSBjb25zdAogewogICAgIGlm
IChtX2xhYmVsLmlzTnVsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvQXVkaW9UcmFja1ByaXZhdGVXZWJNLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BdWRpb1RyYWNrUHJpdmF0ZVdlYk0uaAppbmRleCAxMzFh
OWZlMGFlZGEyYTFmZjQ3OGYwYzdiOTdiOTM0NGRjYjY2MGY5Li4xMjIyYzQ0OTdlMzk5ZmM5OTA1
ZjRjZGNkNTM4MTA0NDg0MDIwMjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9BdWRpb1RyYWNrUHJpdmF0ZVdlYk0uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BdWRpb1RyYWNrUHJpdmF0ZVdlYk0uaApAQCAt
NDIsNiArNDIsNyBAQCBwdWJsaWM6CiAgICAgQXRvbVN0cmluZyBsYW5ndWFnZSgpIGNvbnN0IGZp
bmFsOwogICAgIGludCB0cmFja0luZGV4KCkgY29uc3QgZmluYWw7CiAgICAgT3B0aW9uYWw8dWlu
dDY0X3Q+IHRyYWNrVUlEKCkgY29uc3QgZmluYWw7CisgICAgT3B0aW9uYWw8Ym9vbD4gZGVmYXVs
dEVuYWJsZWQoKSBjb25zdCBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBBdWRpb1RyYWNrUHJpdmF0
ZVdlYk0od2VibTo6VHJhY2tFbnRyeSYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5j
cHAKaW5kZXggNTBmY2ExZDkwOTA5ZTYxNWZhNGUyNzk5MTBlZDc0NTliMWM1MGQ0MS4uYmM5M2Ri
Y2VhNDI3YjU5YjU4N2FiYzU1YjY3MzYwOWM0NWE2YjkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVy
UGFyc2VyV2ViTS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJNZWRpYURlc2NyaXB0
aW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFTYW1wbGVBVkZPYmpDLmgiCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKICNp
bmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJWUDlVdGlsaXRpZXNDb2NvYS5oIgog
I2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlV2ViTS5oIgpAQCAtNDgsNiArNDksNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9TdGRMaXN0Lmg+CiAjaW5jbHVkZSA8d3RmL2NmL1R5cGVDYXN0c0NGLmg+CiAj
aW5jbHVkZSA8d3RmL2Rhcndpbi9XZWFrTGlua2luZy5oPgorI2luY2x1ZGUgPHd0Zi9zcGkvZGFy
d2luL09TVmFyaWFudFNQSS5oPgogCiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKICNp
bmNsdWRlICJWaWRlb1Rvb2xib3hTb2Z0TGluay5oIgpAQCAtNDQzLDE0ICs0NDUsNTUgQEAgcHJp
dmF0ZToKICAgICB3ZWJtOjpUcmFja0VudHJ5IG1fdHJhY2s7CiB9OwogCitjb25zdCBIYXNoU2V0
PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgU291cmNlQnVmZmVyUGFyc2VyV2Vi
TTo6d2VibU1JTUVUeXBlcygpCit7CisgICAgc3RhdGljIGF1dG8gdHlwZXMgPSBtYWtlTmV2ZXJE
ZXN0cm95ZWQoW10geworCisgICAgICAgIEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNp
dGl2ZUhhc2g+IHR5cGVzOworCisjaWYgRU5BQkxFKFZQOSkKKyAgICAgICAgdHlwZXMuYWRkKCJ2
aWRlby93ZWJtIik7CisjZW5kaWYKKyNpZiBFTkFCTEUoVk9SQklTKSB8fCBFTkFCTEUoT1BVUykK
KyAgICAgICAgdHlwZXMuYWRkKCJhdWRpby93ZWJtIik7CisjZW5kaWYKKworICAgICAgICByZXR1
cm4gdHlwZXM7CisgICAgfSgpKTsKKworICAgIHJldHVybiB0eXBlczsKK30KKworc3RhdGljIGJv
b2wgY2FuTG9hZEZvcm1hdFJlYWRlcigpCit7CisjaWYgIUhBVkUoTVRfUExVR0lOX0ZPUk1BVF9S
RUFERVIpCisgICAgcmV0dXJuIGZhbHNlOworI2VsaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
KyAgICByZXR1cm4gdHJ1ZTsKKyNlbHNlCisgICAgLy8gRklYTUUgKHJkYXI6Ly83MjMyMDQxOSk6
IElmIFdlYktpdCB3YXMgYnVpbHQgd2l0aCBhZC1ob2MgY29kZS1zaWduaW5nLAorICAgIC8vIENv
cmVNZWRpYSB3aWxsIG9ubHkgbG9hZCB0aGUgZm9ybWF0IHJlYWRlciBwbHVnLWluIHdoZW4gYSB1
c2VyIGRlZmF1bHQKKyAgICAvLyBpcyBzZXQgb24gQXBwbGUgaW50ZXJuYWwgT1NzLiBUaGF0IG1l
YW5zIHdlIGNhbm5vdCBjdXJyZW50bHkgc3VwcG9ydCBXZWJNCisgICAgLy8gaW4gcHVibGljIFNE
SyBidWlsZHMgb24gY3VzdG9tZXIgT1NzLgorICAgIHN0YXRpYyBib29sIGFsbG93c0ludGVybmFs
U2VjdXJpdHlQb2xpY2llcyA9IG9zX3ZhcmlhbnRfYWxsb3dzX2ludGVybmFsX3NlY3VyaXR5X3Bv
bGljaWVzKCJjb20uYXBwbGUuV2ViS2l0Iik7CisgICAgcmV0dXJuIGFsbG93c0ludGVybmFsU2Vj
dXJpdHlQb2xpY2llczsKKyNlbmRpZiAvLyAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKK30KKwor
Ym9vbCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjppc1dlYk1Gb3JtYXRSZWFkZXJBdmFpbGFibGUo
KQoreworICAgIHJldHVybiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OndlYk1Gb3JtYXRS
ZWFkZXJFbmFibGVkKCkgJiYgY2FuTG9hZEZvcm1hdFJlYWRlcigpICYmIGlzV2VibVBhcnNlckF2
YWlsYWJsZSgpOworfQorCiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgU291cmNlQnVm
ZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZChjb25zdCBDb250ZW50VHlwZSYg
dHlwZSkKIHsKICNpZiBFTkFCTEUoVlA5KSB8fCBFTkFCTEUoVk9SQklTKSB8fCBFTkFCTEUoT1BV
UykKICAgICBpZiAoIWlzV2VibVBhcnNlckF2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm4gTWVk
aWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKIAotICAgIGJvb2wg
aXNBdWRpb0NvbnRhaW5lclR5cGUgPSBXVEY6OmVxdWFsSWdub3JpbmdBU0NJSUNhc2UodHlwZS5j
b250YWluZXJUeXBlKCksICJhdWRpby93ZWJtIik7Ci0gICAgYm9vbCBpc1ZpZGVvQ29udGFpbmVy
VHlwZSA9IFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLmNvbnRhaW5lclR5cGUoKSwg
InZpZGVvL3dlYm0iKTsKKyAgICBhdXRvIGNvbnRhaW5lclR5cGUgPSB0eXBlLmNvbnRhaW5lclR5
cGUoKTsKKyAgICBib29sIGlzQXVkaW9Db250YWluZXJUeXBlID0gV1RGOjplcXVhbElnbm9yaW5n
QVNDSUlDYXNlKGNvbnRhaW5lclR5cGUsICJhdWRpby93ZWJtIik7CisgICAgYm9vbCBpc1ZpZGVv
Q29udGFpbmVyVHlwZSA9IFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb250YWluZXJUeXBl
LCAidmlkZW8vd2VibSIpOwogICAgIGlmICghaXNBdWRpb0NvbnRhaW5lclR5cGUgJiYgIWlzVmlk
ZW9Db250YWluZXJUeXBlKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9y
dHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKICAgICAKQEAgLTQ3MywyMiArNTE2LDE4IEBAIE1lZGlh
UGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjppc0NvbnRl
bnRUeXBlU3VwcG9ydGVkKGNvCiAgICAgaWYgKCFpc0FueUNvZGVjQXZhaWxhYmxlKQogICAgICAg
ICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsK
IAotICAgIFN0cmluZyBjb2RlY3NQYXJhbWV0ZXIgPSB0eXBlLnBhcmFtZXRlcihDb250ZW50VHlw
ZTo6Y29kZWNzUGFyYW1ldGVyKCkpOwotICAgIGlmICghY29kZWNzUGFyYW1ldGVyKQotICAgICAg
ICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpNYXlCZVN1cHBvcnRlZDsK
LQotICAgIGF1dG8gc3BsaXRSZXN1bHRzID0gU3RyaW5nVmlldyhjb2RlY3NQYXJhbWV0ZXIpLnNw
bGl0KCcsJyk7Ci0gICAgaWYgKHNwbGl0UmVzdWx0cy5iZWdpbigpID09IHNwbGl0UmVzdWx0cy5l
bmQoKSkKKyAgICBhdXRvIGNvZGVjcyA9IHR5cGUuY29kZWNzKCk7CisgICAgaWYgKGNvZGVjcy5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6
Ok1heUJlU3VwcG9ydGVkOwogCi0gICAgZm9yIChhdXRvIHNwbGl0IDogc3BsaXRSZXN1bHRzKSB7
CisgICAgZm9yIChhdXRvJiBjb2RlYyA6IGNvZGVjcykgewogI2lmIEVOQUJMRShWUDkpCi0gICAg
ICAgIGlmIChzcGxpdC5zdGFydHNXaXRoKCJ2cDA5IikgfHwgc3BsaXQuc3RhcnRzV2l0aCgidnAw
OCIpIHx8IGVxdWFsKHNwbGl0LCAidnA4IikgfHwgZXF1YWwoc3BsaXQsICJ2cDkiKSkgeworICAg
ICAgICBpZiAoY29kZWMuc3RhcnRzV2l0aCgidnAwOSIpIHx8IGNvZGVjLnN0YXJ0c1dpdGgoInZw
MDgiKSB8fCBlcXVhbChjb2RlYywgInZwOCIpIHx8IGVxdWFsKGNvZGVjLCAidnA5IikpIHsKIAog
ICAgICAgICAgICAgaWYgKCFpc1ZQOURlY29kZXJBdmFpbGFibGUoKSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsK
IAotICAgICAgICAgICAgYXV0byBjb2RlY1BhcmFtZXRlcnMgPSBwYXJzZVZQQ29kZWNQYXJhbWV0
ZXJzKHNwbGl0KTsKKyAgICAgICAgICAgIGF1dG8gY29kZWNQYXJhbWV0ZXJzID0gcGFyc2VWUENv
ZGVjUGFyYW1ldGVycyhjb2RlYyk7CiAgICAgICAgICAgICBpZiAoIWNvZGVjUGFyYW1ldGVycykK
ICAgICAgICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJ
c05vdFN1cHBvcnRlZDsKIApAQCAtNTAwLDcgKzUzOSw3IEBAIE1lZGlhUGxheWVyRW51bXM6OlN1
cHBvcnRzVHlwZSBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVk
KGNvCiAjZW5kaWYgLy8gRU5BQkxFKFZQOSkKIAogI2lmIEVOQUJMRShWT1JCSVMpCi0gICAgICAg
IGlmIChzcGxpdCA9PSAidm9yYmlzIikgeworICAgICAgICBpZiAoY29kZWMgPT0gInZvcmJpcyIp
IHsKICAgICAgICAgICAgIGlmICghaXNWb3JiaXNEZWNvZGVyQXZhaWxhYmxlKCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBw
b3J0ZWQ7CiAKQEAgLTUwOSw3ICs1NDgsNyBAQCBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5
cGUgU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZChjbwogI2Vu
ZGlmIC8vIEVOQUJMRShWT1JCSVMpCiAKICNpZiBFTkFCTEUoT1BVUykKLSAgICAgICAgaWYgKHNw
bGl0ID09ICJvcHVzIikgeworICAgICAgICBpZiAoY29kZWMgPT0gIm9wdXMiKSB7CiAgICAgICAg
ICAgICBpZiAoIWlzT3B1c0RlY29kZXJBdmFpbGFibGUoKSkKICAgICAgICAgICAgICAgICByZXR1
cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVm
ZmVyUGFyc2VyV2ViTS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
U291cmNlQnVmZmVyUGFyc2VyV2ViTS5oCmluZGV4IGVjYTAzYzIwNGZhMTAwN2U1YzI1M2I1M2Ey
ZmY0YTUyYjVjYjE3OWMuLmIzZTEwZGEwM2YwOTkzODcwMTRlZGYwMTY2NTVjNDA2NjQzMjYyMTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJj
ZUJ1ZmZlclBhcnNlcldlYk0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmgKQEAgLTYwLDcgKzYwLDkgQEAgY2xhc3Mg
V0VCQ09SRV9FWFBPUlQgU291cmNlQnVmZmVyUGFyc2VyV2ViTSA6IHB1YmxpYyBTb3VyY2VCdWZm
ZXJQYXJzZXIsIHByaXZhdGUKIHB1YmxpYzoKICAgICBjbGFzcyBTdHJlYW1pbmdWZWN0b3JSZWFk
ZXI7CiAKKyAgICBzdGF0aWMgYm9vbCBpc1dlYk1Gb3JtYXRSZWFkZXJBdmFpbGFibGUoKTsKICAg
ICBzdGF0aWMgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIGlzQ29udGVudFR5cGVTdXBw
b3J0ZWQoY29uc3QgQ29udGVudFR5cGUmKTsKKyAgICBzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJp
bmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHdlYm1NSU1FVHlwZXMoKTsKICAgICBzdGF0
aWMgUmVmUHRyPFNvdXJjZUJ1ZmZlclBhcnNlcldlYk0+IGNyZWF0ZShjb25zdCBDb250ZW50VHlw
ZSYpOwogCiAgICAgU291cmNlQnVmZmVyUGFyc2VyV2ViTSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2
YXRlV2ViTS5jcHAKaW5kZXggZTg4YjllNTU1NWQ0ZmEzMTgwM2ZkMjlmNjhlYWM5NWU2Zjc3MzM1
OC4uNDg4NjU0ODQyMjc0ZTVhOWE4OWU5M2JmNWNjMzU4OWVmZWU5ZjI5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVX
ZWJNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRl
b1RyYWNrUHJpdmF0ZVdlYk0uY3BwCkBAIC01OCw2ICs1OCwxMyBAQCBPcHRpb25hbDx1aW50NjRf
dD4gVmlkZW9UcmFja1ByaXZhdGVXZWJNOjp0cmFja1VJRCgpIGNvbnN0CiAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKIH0KIAorT3B0aW9uYWw8Ym9vbD4gVmlkZW9UcmFja1ByaXZhdGVXZWJNOjpk
ZWZhdWx0RW5hYmxlZCgpIGNvbnN0Cit7CisgICAgaWYgKG1fdHJhY2suaXNfZW5hYmxlZC5pc19w
cmVzZW50KCkpCisgICAgICAgIHJldHVybiBtX3RyYWNrLmlzX2VuYWJsZWQudmFsdWUoKTsKKyAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCiBBdG9tU3RyaW5nIFZpZGVvVHJhY2tQcml2YXRl
V2ViTTo6bGFiZWwoKSBjb25zdAogewogICAgIGlmIChtX2xhYmVsLmlzTnVsbCgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1By
aXZhdGVXZWJNLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRl
b1RyYWNrUHJpdmF0ZVdlYk0uaAppbmRleCAxMjMxY2JlMzU5ZTMwNzNmZGZhNmZiZTBlNjJlMDUx
ZjBiMjkxZDU2Li4zMjBmODg4YzEwMWZhNmYyMjM3YzNhZWUxMDQ3MzNlOGNlZTFiMTM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNr
UHJpdmF0ZVdlYk0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaApAQCAtNDIsNiArNDIsNyBAQCBwdWJsaWM6CiAgICAg
QXRvbVN0cmluZyBsYW5ndWFnZSgpIGNvbnN0IGZpbmFsOwogICAgIGludCB0cmFja0luZGV4KCkg
Y29uc3QgZmluYWw7CiAgICAgT3B0aW9uYWw8dWludDY0X3Q+IHRyYWNrVUlEKCkgY29uc3QgZmlu
YWw7CisgICAgT3B0aW9uYWw8Ym9vbD4gZGVmYXVsdEVuYWJsZWQoKSBjb25zdCBmaW5hbDsKIAog
cHJpdmF0ZToKICAgICBWaWRlb1RyYWNrUHJpdmF0ZVdlYk0od2VibTo6VHJhY2tFbnRyeSYmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYk1B
dWRpb1V0aWxpdGllc0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EubW0KaW5kZXggNDEzNDc4ZjdmYTJiYTNiNWU1
MzU4YjJhM2E4MDk3NzhiYmU5ZWI1MC4uZGVmMTQxZjM2MTcyNTFkNzU2NDEzZmJhNTZlMjNiNjIw
NTM3NmY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EubW0KQEAgLTMxLDcgKzMx
LDcgQEAKICNpbXBvcnQgIkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgogI2ltcG9ydCAiTG9n
Z2luZy5oIgogI2ltcG9ydCAiTWVkaWFVdGlsaXRpZXMuaCIKLSNpbXBvcnQgIlJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaCIKKyNpbXBvcnQgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgog
I2ltcG9ydCA8QXVkaW9Ub29sYm94L0F1ZGlvQ29tcG9uZW50Lmg+CiAjaW1wb3J0IDxBdWRpb1Rv
b2xib3gvQXVkaW9Gb3JtYXQuaD4KICNpbXBvcnQgPENvcmVNZWRpYS9DTUZvcm1hdERlc2NyaXB0
aW9uLmg+CkBAIC0xNzcsNyArMTc3LDcgQEAgYm9vbCBpc1ZvcmJpc0RlY29kZXJBdmFpbGFibGUo
KQogICAgIHN0YXRpYyBib29sIGF2YWlsYWJsZTsKIAogI2lmIEVOQUJMRShWT1JCSVMpICYmIFBM
QVRGT1JNKE1BQykKLSAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkudm9yYmlzRGVjb2RlckVuYWJsZWQoKSkKKyAgICBpZiAoIVBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlcjo6dm9yYmlzRGVjb2RlckVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvRm9ybWF0UmVhZGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9Gb3JtYXRSZWFk
ZXIuY3BwCmluZGV4IGVmNDlmY2E5NjYyMjVhYzM3YjU4M2U2NDY3ZDhmNWQxOTI0YWJiNTIuLmY0
ZGJiYjg5MzkxZGIzMThmOGI2M2ZkYzI0YTE4ZGRlMzU4MjEyNzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9Gb3JtYXRSZWFkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9Gb3JtYXRSZWFk
ZXIuY3BwCkBAIC0xNDQsMjYgKzE0NCwyOSBAQCB2b2lkIEZvcm1hdFJlYWRlcjo6ZGlkUGFyc2VU
cmFja3MoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6SW5pdGlhbGl6YXRpb25TZWdtZQogICAg
IG1fZHVyYXRpb24gPSBXVEZNb3ZlKHNlZ21lbnQuZHVyYXRpb24pOwogCiAgICAgZm9yIChhdXRv
JiB2aWRlb1RyYWNrIDogc2VnbWVudC52aWRlb1RyYWNrcykgewotICAgICAgICBpZiAoYXV0byB0
cmFja1JlYWRlciA9IFRyYWNrUmVhZGVyOjpjcmVhdGUoYWxsb2NhdG9yKCksICp0aGlzLCB2aWRl
b1RyYWNrLnRyYWNrLmdldCgpKSkKLSAgICAgICAgICAgIG1fdHJhY2tSZWFkZXJzLmFwcGVuZCh0
cmFja1JlYWRlci5yZWxlYXNlTm9uTnVsbCgpKTsKLSAgICAgICAgLy8gRklYTUU6IEhvdyBkbyB3
ZSBrbm93IHdoaWNoIHRyYWNrcyBzaG91bGQgYmUgZW5hYmxlZD8KLSAgICAgICAgaWYgKG1fdHJh
Y2tSZWFkZXJzLnNpemUoKSA9PSAxKQotICAgICAgICAgICAgbV90cmFja1JlYWRlcnNbMF0tPnNl
dEVuYWJsZWQodHJ1ZSk7CisgICAgICAgIGF1dG8gdHJhY2sgPSB2aWRlb1RyYWNrLnRyYWNrLmdl
dCgpOworICAgICAgICBhdXRvIHRyYWNrUmVhZGVyID0gVHJhY2tSZWFkZXI6OmNyZWF0ZShhbGxv
Y2F0b3IoKSwgKnRoaXMsIGtDTU1lZGlhVHlwZV9WaWRlbywgKnRyYWNrLT50cmFja1VJRCgpLCB0
cmFjay0+ZGVmYXVsdEVuYWJsZWQoKSk7CisgICAgICAgIGlmICghdHJhY2tSZWFkZXIpCisgICAg
ICAgICAgICBjb250aW51ZTsKKworICAgICAgICBtX3RyYWNrUmVhZGVycy5hcHBlbmQodHJhY2tS
ZWFkZXIucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgfQogCiAgICAgZm9yIChhdXRvJiBhdWRpb1Ry
YWNrIDogc2VnbWVudC5hdWRpb1RyYWNrcykgewotICAgICAgICBpZiAoYXV0byB0cmFja1JlYWRl
ciA9IFRyYWNrUmVhZGVyOjpjcmVhdGUoYWxsb2NhdG9yKCksICp0aGlzLCBhdWRpb1RyYWNrLnRy
YWNrLmdldCgpKSkKLSAgICAgICAgICAgIG1fdHJhY2tSZWFkZXJzLmFwcGVuZCh0cmFja1JlYWRl
ci5yZWxlYXNlTm9uTnVsbCgpKTsKLSAgICAgICAgLy8gRklYTUU6IEhvdyBkbyB3ZSBrbm93IHdo
aWNoIHRyYWNrcyBzaG91bGQgYmUgZW5hYmxlZD8KLSAgICAgICAgaWYgKG1fdHJhY2tSZWFkZXJz
LnNpemUoKSA9PSBzZWdtZW50LnZpZGVvVHJhY2tzLnNpemUoKSArIDEpCi0gICAgICAgICAgICBt
X3RyYWNrUmVhZGVyc1tzZWdtZW50LnZpZGVvVHJhY2tzLnNpemUoKV0tPnNldEVuYWJsZWQodHJ1
ZSk7CisgICAgICAgIGF1dG8gdHJhY2sgPSBhdWRpb1RyYWNrLnRyYWNrLmdldCgpOworICAgICAg
ICBhdXRvIHRyYWNrUmVhZGVyID0gVHJhY2tSZWFkZXI6OmNyZWF0ZShhbGxvY2F0b3IoKSwgKnRo
aXMsIGtDTU1lZGlhVHlwZV9BdWRpbywgKnRyYWNrLT50cmFja1VJRCgpLCB0cmFjay0+ZGVmYXVs
dEVuYWJsZWQoKSk7CisgICAgICAgIGlmICghdHJhY2tSZWFkZXIpCisgICAgICAgICAgICBjb250
aW51ZTsKKworICAgICAgICBtX3RyYWNrUmVhZGVycy5hcHBlbmQodHJhY2tSZWFkZXIucmVsZWFz
ZU5vbk51bGwoKSk7CiAgICAgfQogCiAgICAgZm9yIChhdXRvJiB0ZXh0VHJhY2sgOiBzZWdtZW50
LnRleHRUcmFja3MpIHsKLSAgICAgICAgaWYgKGF1dG8gdHJhY2tSZWFkZXIgPSBUcmFja1JlYWRl
cjo6Y3JlYXRlKGFsbG9jYXRvcigpLCAqdGhpcywgdGV4dFRyYWNrLnRyYWNrLmdldCgpKSkKKyAg
ICAgICAgYXV0byB0cmFjayA9IHRleHRUcmFjay50cmFjay5nZXQoKTsKKyAgICAgICAgaWYgKGF1
dG8gdHJhY2tSZWFkZXIgPSBUcmFja1JlYWRlcjo6Y3JlYXRlKGFsbG9jYXRvcigpLCAqdGhpcywg
a0NNTWVkaWFUeXBlX1RleHQsICp0cmFjay0+dHJhY2tVSUQoKSwgdHJhY2stPmRlZmF1bHRFbmFi
bGVkKCkpKQogICAgICAgICAgICAgbV90cmFja1JlYWRlcnMuYXBwZW5kKHRyYWNrUmVhZGVyLnJl
bGVhc2VOb25OdWxsKCkpOwogICAgIH0KLSAgICAKKwogICAgIG1fcGFyc2VUcmFja3NDb25kaXRp
b24ubm90aWZ5QWxsKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9NZWRpYUZvcm1hdFJlYWRlci9UcmFja1JlYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tSZWFkZXIuY3BwCmluZGV4IDQ4NjVhODA4OTUz
ZGJmMjU3MDhiZTQxYTQwYjhjZjI0MmU3YmZkODQuLmNkZGZkZjc1NzVlNTEwMWJkZGM3MTI3YmYx
N2JiOGQxZjc5MDEzZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRp
YUZvcm1hdFJlYWRlci9UcmFja1JlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL1RyYWNrUmVhZGVyLmNwcApAQCAtMTQ0LDI1ICsxNDQsOSBA
QCBDb3JlTWVkaWFXcmFwcGVkPFRyYWNrUmVhZGVyPiogVHJhY2tSZWFkZXI6OnVud3JhcChDTUJh
c2VPYmplY3RSZWYgb2JqZWN0KQogICAgIHJldHVybiB1bndyYXAoY2hlY2tlZF9jZl9jYXN0PFdy
YXBwZXJSZWY+KG9iamVjdCkpOwogfQogCi1SZWZQdHI8VHJhY2tSZWFkZXI+IFRyYWNrUmVhZGVy
OjpjcmVhdGUoQWxsb2NhdG9yJiYgYWxsb2NhdG9yLCBjb25zdCBGb3JtYXRSZWFkZXImIGZvcm1h
dFJlYWRlciwgY29uc3QgVmlkZW9UcmFja1ByaXZhdGUqIHRyYWNrKQorUmVmUHRyPFRyYWNrUmVh
ZGVyPiBUcmFja1JlYWRlcjo6Y3JlYXRlKEFsbG9jYXRvciYmIGFsbG9jYXRvciwgY29uc3QgRm9y
bWF0UmVhZGVyJiBmb3JtYXRSZWFkZXIsIENNTWVkaWFUeXBlIG1lZGlhVHlwZSwgdWludDY0X3Qg
dHJhY2tJRCwgT3B0aW9uYWw8Ym9vbD4gZW5hYmxlZCkKIHsKLSAgICBpZiAoIXRyYWNrKQotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IChhbGxvY2F0b3Ip
IFRyYWNrUmVhZGVyKFdURk1vdmUoYWxsb2NhdG9yKSwgZm9ybWF0UmVhZGVyLCBrQ01NZWRpYVR5
cGVfVmlkZW8sICp0cmFjay0+dHJhY2tVSUQoKSkpOwotfQotCi1SZWZQdHI8VHJhY2tSZWFkZXI+
IFRyYWNrUmVhZGVyOjpjcmVhdGUoQWxsb2NhdG9yJiYgYWxsb2NhdG9yLCBjb25zdCBGb3JtYXRS
ZWFkZXImIGZvcm1hdFJlYWRlciwgY29uc3QgQXVkaW9UcmFja1ByaXZhdGUqIHRyYWNrKQotewot
ICAgIGlmICghdHJhY2spCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgKGFsbG9jYXRvcikgVHJhY2tSZWFkZXIoV1RGTW92ZShhbGxvY2F0b3IpLCBmb3Jt
YXRSZWFkZXIsIGtDTU1lZGlhVHlwZV9BdWRpbywgKnRyYWNrLT50cmFja1VJRCgpKSk7Ci19Ci0K
LVJlZlB0cjxUcmFja1JlYWRlcj4gVHJhY2tSZWFkZXI6OmNyZWF0ZShBbGxvY2F0b3ImJiBhbGxv
Y2F0b3IsIGNvbnN0IEZvcm1hdFJlYWRlciYgZm9ybWF0UmVhZGVyLCBjb25zdCBJbmJhbmRUZXh0
VHJhY2tQcml2YXRlKiB0cmFjaykKLXsKLSAgICBpZiAoIXRyYWNrKQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IChhbGxvY2F0b3IpIFRyYWNrUmVhZGVy
KFdURk1vdmUoYWxsb2NhdG9yKSwgZm9ybWF0UmVhZGVyLCBrQ01NZWRpYVR5cGVfVGV4dCwgKnRy
YWNrLT50cmFja1VJRCgpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyAoYWxsb2NhdG9yKSBU
cmFja1JlYWRlcihXVEZNb3ZlKGFsbG9jYXRvciksIGZvcm1hdFJlYWRlciwgbWVkaWFUeXBlLCB0
cmFja0lELCBlbmFibGVkKSk7CiB9CiAKIFdvcmtRdWV1ZSYgVHJhY2tSZWFkZXI6OnN0b3JhZ2VR
dWV1ZSgpCkBAIC0xNzEsMTMgKzE1NSwxNiBAQCBXb3JrUXVldWUmIFRyYWNrUmVhZGVyOjpzdG9y
YWdlUXVldWUoKQogICAgIHJldHVybiBxdWV1ZTsKIH0KIAotVHJhY2tSZWFkZXI6OlRyYWNrUmVh
ZGVyKEFsbG9jYXRvciYmIGFsbG9jYXRvciwgY29uc3QgRm9ybWF0UmVhZGVyJiBmb3JtYXRSZWFk
ZXIsIENNTWVkaWFUeXBlIG1lZGlhVHlwZSwgdWludDY0X3QgdHJhY2tJRCkKK1RyYWNrUmVhZGVy
OjpUcmFja1JlYWRlcihBbGxvY2F0b3ImJiBhbGxvY2F0b3IsIGNvbnN0IEZvcm1hdFJlYWRlciYg
Zm9ybWF0UmVhZGVyLCBDTU1lZGlhVHlwZSBtZWRpYVR5cGUsIHVpbnQ2NF90IHRyYWNrSUQsIE9w
dGlvbmFsPGJvb2w+IGVuYWJsZWQpCiAgICAgOiBDb3JlTWVkaWFXcmFwcGVkKFdURk1vdmUoYWxs
b2NhdG9yKSkKICAgICAsIG1fdHJhY2tJRCh0cmFja0lEKQogICAgICwgbV9tZWRpYVR5cGUobWVk
aWFUeXBlKQogICAgICwgbV9kdXJhdGlvbihmb3JtYXRSZWFkZXIuZHVyYXRpb24oKSkKIHsKICAg
ICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKworICAgIGlmIChlbmFibGVkKQorICAgICAgICBt
X2lzRW5hYmxlZCA9IGVuYWJsZWQudmFsdWUoKSA/IEVuYWJsZWQ6OlRydWUgOiBFbmFibGVkOjpG
YWxzZTsKIH0KIAogdm9pZCBUcmFja1JlYWRlcjo6YWRkU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4m
JiBzYW1wbGUsIE1UUGx1Z2luQnl0ZVNvdXJjZVJlZiBieXRlU291cmNlKQpAQCAtMjE2LDEzICsy
MDMsMTYgQEAgdm9pZCBUcmFja1JlYWRlcjo6ZmluaXNoUGFyc2luZygpCiAgICAgaWYgKCFtX3Nh
bXBsZVN0b3JhZ2UpCiAgICAgICAgIG1fc2FtcGxlU3RvcmFnZSA9IG1ha2VVbmlxdWU8U2FtcGxl
U3RvcmFnZT4oKTsKICAgICBtX3NhbXBsZVN0b3JhZ2UtPmhhc0FsbFNhbXBsZXMgPSB0cnVlOwor
ICAgIGlmIChtX2lzRW5hYmxlZCA9PSBFbmFibGVkOjpVbmtub3duKQorICAgICAgICBtX2lzRW5h
YmxlZCA9IG1fc2FtcGxlU3RvcmFnZS0+c2FtcGxlTWFwLmVtcHR5KCkgPyBFbmFibGVkOjpGYWxz
ZSA6IEVuYWJsZWQ6OlRydWU7CiAgICAgbV9zYW1wbGVTdG9yYWdlQ29uZGl0aW9uLm5vdGlmeUFs
bCgpOwogfQogCiBPU1N0YXR1cyBUcmFja1JlYWRlcjo6Y29weVByb3BlcnR5KENGU3RyaW5nUmVm
IGtleSwgQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCB2b2lkKiBjb3BpZWRWYWx1ZSkKIHsKLSAg
ICBpZiAoQ0ZFcXVhbChrZXksIFBBTDo6Z2V0X01lZGlhVG9vbGJveF9rTVRQbHVnaW5UcmFja1Jl
YWRlclByb3BlcnR5X0VuYWJsZWQoKSkpIHsKLSAgICAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8Q0ZC
b29sZWFuUmVmKj4oY29waWVkVmFsdWUpID0gcmV0YWluUHRyKG1faXNFbmFibGVkID8ga0NGQm9v
bGVhblRydWUgOiBrQ0ZCb29sZWFuRmFsc2UpLmxlYWtSZWYoKTsKKyAgICAvLyBEb24ndCBibG9j
ayB3YWl0aW5nIGZvciBtZWRpYSBpZiB0aGUgd2Uga25vdyB0aGUgZW5hYmxlZCBzdGF0ZS4KKyAg
ICBpZiAoQ0ZFcXVhbChrZXksIFBBTDo6Z2V0X01lZGlhVG9vbGJveF9rTVRQbHVnaW5UcmFja1Jl
YWRlclByb3BlcnR5X0VuYWJsZWQoKSkgJiYgbV9pc0VuYWJsZWQgIT0gRW5hYmxlZDo6VW5rbm93
bikgeworICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDxDRkJvb2xlYW5SZWYqPihjb3BpZWRWYWx1
ZSkgPSByZXRhaW5QdHIobV9pc0VuYWJsZWQgPT0gRW5hYmxlZDo6VHJ1ZSA/IGtDRkJvb2xlYW5U
cnVlIDoga0NGQm9vbGVhbkZhbHNlKS5sZWFrUmVmKCk7CiAgICAgICAgIHJldHVybiBub0VycjsK
ICAgICB9CiAKQEAgLTIzMiw2ICsyMjIsMTUgQEAgT1NTdGF0dXMgVHJhY2tSZWFkZXI6OmNvcHlQ
cm9wZXJ0eShDRlN0cmluZ1JlZiBrZXksIENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgdm8KICAg
ICB9KTsKIAogICAgIGF1dG8mIHNhbXBsZU1hcCA9IG1fc2FtcGxlU3RvcmFnZS0+c2FtcGxlTWFw
OworCisgICAgaWYgKENGRXF1YWwoa2V5LCBQQUw6OmdldF9NZWRpYVRvb2xib3hfa01UUGx1Z2lu
VHJhY2tSZWFkZXJQcm9wZXJ0eV9FbmFibGVkKCkpKSB7CisgICAgICAgIGlmIChtX2lzRW5hYmxl
ZCA9PSBFbmFibGVkOjpVbmtub3duKQorICAgICAgICAgICAgbV9pc0VuYWJsZWQgPSBzYW1wbGVN
YXAuZW1wdHkoKSA/IEVuYWJsZWQ6OkZhbHNlIDogRW5hYmxlZDo6VHJ1ZTsKKworICAgICAgICAq
cmVpbnRlcnByZXRfY2FzdDxDRkJvb2xlYW5SZWYqPihjb3BpZWRWYWx1ZSkgPSByZXRhaW5QdHIo
bV9pc0VuYWJsZWQgPT0gRW5hYmxlZDo6VHJ1ZSA/IGtDRkJvb2xlYW5UcnVlIDoga0NGQm9vbGVh
bkZhbHNlKS5sZWFrUmVmKCk7CisgICAgICAgIHJldHVybiBub0VycjsKKyAgICB9CisKICAgICBp
ZiAoc2FtcGxlTWFwLmVtcHR5KCkpCiAgICAgICAgIHJldHVybiBrQ01CYXNlT2JqZWN0RXJyb3Jf
VmFsdWVOb3RBdmFpbGFibGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9NZWRpYUZvcm1hdFJlYWRlci9UcmFja1JlYWRlci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL1RyYWNrUmVhZGVyLmgKaW5kZXggN2FiMjFlMjVjMzhhNWNk
ZmZjNjVlODExZGNhMzE2MzYwYTQ3NTFkMC4uZjQ1ZjFkNTcwNjYzMmU2NjNjZmNhZjNmYWFhZDNm
OGEwYWE5YjM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9y
bWF0UmVhZGVyL1RyYWNrUmVhZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01l
ZGlhRm9ybWF0UmVhZGVyL1RyYWNrUmVhZGVyLmgKQEAgLTU0LDI2ICs1NCwyMyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBXcmFwcGVyQ2xhc3Mgd3JhcHBlckNsYXNzKCk7CiAgICAg
c3RhdGljIENNQmFzZUNsYXNzSUQgd3JhcHBlckNsYXNzSUQoKTsKICAgICBzdGF0aWMgQ29yZU1l
ZGlhV3JhcHBlZDxUcmFja1JlYWRlcj4qIHVud3JhcChDTUJhc2VPYmplY3RSZWYpOwotCi0gICAg
c3RhdGljIFJlZlB0cjxUcmFja1JlYWRlcj4gY3JlYXRlKEFsbG9jYXRvciYmLCBjb25zdCBGb3Jt
YXRSZWFkZXImLCBjb25zdCBXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSopOwotICAgIHN0YXRp
YyBSZWZQdHI8VHJhY2tSZWFkZXI+IGNyZWF0ZShBbGxvY2F0b3ImJiwgY29uc3QgRm9ybWF0UmVh
ZGVyJiwgY29uc3QgV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGUqKTsKLSAgICBzdGF0aWMgUmVm
UHRyPFRyYWNrUmVhZGVyPiBjcmVhdGUoQWxsb2NhdG9yJiYsIGNvbnN0IEZvcm1hdFJlYWRlciYs
IGNvbnN0IFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUqKTsKLQogICAgIHN0YXRpYyBX
VEY6OldvcmtRdWV1ZSYgc3RvcmFnZVF1ZXVlKCk7CiAKKyAgICBzdGF0aWMgUmVmUHRyPFRyYWNr
UmVhZGVyPiBjcmVhdGUoQWxsb2NhdG9yJiYsIGNvbnN0IEZvcm1hdFJlYWRlciYsIENNTWVkaWFU
eXBlLCB1aW50NjRfdCwgT3B0aW9uYWw8Ym9vbD4pOworCiAgICAgdWludDY0X3QgdHJhY2tJRCgp
IGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tJRDsgfQogICAgIHZvaWQgYWRkU2FtcGxlKFJlZjxXZWJD
b3JlOjpNZWRpYVNhbXBsZT4mJiwgTVRQbHVnaW5CeXRlU291cmNlUmVmKTsKICAgICB2b2lkIHdh
aXRGb3JTYW1wbGUoRnVuY3Rpb248Ym9vbChXZWJDb3JlOjpTYW1wbGVNYXAmLCBib29sKT4mJikg
Y29uc3Q7CiAKLSAgICBib29sIGlzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNFbmFibGVk
OyB9Ci0gICAgdm9pZCBzZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2lzRW5hYmxlZCA9IGVu
YWJsZWQ7IH0KKyAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1faXNFbmFibGVk
ID0gZW5hYmxlZCA/IEVuYWJsZWQ6OlRydWUgOiBFbmFibGVkOjpGYWxzZTsgfQorICAgIENNTWVk
aWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFUeXBlOyB9CiAKICAgICB2
b2lkIGZpbmlzaFBhcnNpbmcoKTsKIAogcHJpdmF0ZToKICAgICB1c2luZyBDb3JlTWVkaWFXcmFw
cGVkPFRyYWNrUmVhZGVyPjo6dW53cmFwOwogCi0gICAgVHJhY2tSZWFkZXIoQWxsb2NhdG9yJiYs
IGNvbnN0IEZvcm1hdFJlYWRlciYsIENNTWVkaWFUeXBlLCB1aW50NjRfdCk7CisgICAgVHJhY2tS
ZWFkZXIoQWxsb2NhdG9yJiYsIGNvbnN0IEZvcm1hdFJlYWRlciYsIENNTWVkaWFUeXBlLCB1aW50
NjRfdCwgT3B0aW9uYWw8Ym9vbD4pOwogCiAgICAgLy8gQ01CYXNlQ2xhc3MKICAgICBTdHJpbmcg
ZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJXZWJLaXQ6OlRyYWNrUmVh
ZGVyIl9zOyB9CkBAIC05MywxMCArOTAsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBoYXNB
bGxTYW1wbGVzIHsgZmFsc2UgfTsKICAgICB9OwogCisgICAgZW51bSBFbmFibGVkIDogdWludDhf
dCB7IFVua25vd24sIEZhbHNlLCBUcnVlIH07CisKICAgICBjb25zdCB1aW50NjRfdCBtX3RyYWNr
SUQ7CiAgICAgY29uc3QgQ01NZWRpYVR5cGUgbV9tZWRpYVR5cGU7CiAgICAgY29uc3QgTWVkaWFU
aW1lIG1fZHVyYXRpb247Ci0gICAgc3RkOjphdG9taWM8Ym9vbD4gbV9pc0VuYWJsZWQgeyBmYWxz
ZSB9OworICAgIHN0ZDo6YXRvbWljPEVuYWJsZWQ+IG1faXNFbmFibGVkIHsgRW5hYmxlZDo6VW5r
bm93biB9OwogICAgIG11dGFibGUgQ29uZGl0aW9uIG1fc2FtcGxlU3RvcmFnZUNvbmRpdGlvbjsK
ICAgICBtdXRhYmxlIExvY2sgbV9zYW1wbGVTdG9yYWdlTG9jazsKICAgICBtdXRhYmxlIHN0ZDo6
dW5pcXVlX3B0cjxTYW1wbGVTdG9yYWdlPiBtX3NhbXBsZVN0b3JhZ2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGJjM2M3ZmEzNjJmOGVmMmI4
NDNhZjE2Yjk4ZjhlMzc3NzdjNDMyMzEuLmNjNzgzZGY5NGE1YTEyZjcxMmExNzIwODU2YjI0NDhh
YjQ5YjlmZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC0zODM4LDYgKzM4MzgsOSBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2Vz
KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogICAgICAgICAgICAgc2V0dGluZ3Mu
c2V0V2ViQXV0aGVudGljYXRpb25FbmFibGVkKHRydWUpOwogICAgIH0KICNlbmRpZgorCisgICAg
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXRXZWJNRm9ybWF0UmVhZGVyRW5hYmxlZChS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYk1Gb3JtYXRSZWFkZXJF
bmFibGVkKCkpOworICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2V0Vm9yYmlzRGVj
b2RlckVuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS52b3Ji
aXNEZWNvZGVyRW5hYmxlZCgpKTsKIH0KIAogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmlu
ZGV4IDcxZDRhOWE3OGFiMGNjZWQ5ZDA5YTJmOWI0NjYyNDExYzA3ODRiYzcuLmM2NzVlOGEzYmI3
ZGVhMjQ5YWVjNjA4NWM0M2I1ZWRlOGFkMDY1YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtNjgsNyArNjgsOSBAQAogI2lt
cG9ydCA8V2ViQ29yZS9OU1Njcm9sbGVySW1wRGV0YWlscy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Q
ZXJmb3JtYW5jZUxvZ2dpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGljdHVyZUluUGljdHVyZVN1
cHBvcnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgorI2ltcG9ydCA8
V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NXQ29u
dGV4dE1hbmFnZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9TeXN0ZW1Tb3VuZE1hbmFnZXIuaD4KQEAgLTMyOCw2ICszMzAsOSBAQCB2b2lk
IFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYgcGFyYQogICAgIHB0aHJlYWRfc2V0X2ZpeGVkcHJpb3JpdHlfc2VsZigp
OwogI2VuZGlmCiAKKyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFdlYk1Gb3Jt
YXRSZWFkZXJFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
d2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKSk7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyOjpzZXRWb3JiaXNEZWNvZGVyRW5hYmxlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLnZvcmJpc0RlY29kZXJFbmFibGVkKCkpOworCiAgICAgaWYgKCFwYXJhbWV0
ZXJzLm1lZGlhTUlNRVR5cGVzLmlzRW1wdHkoKSkKICAgICAgICAgc2V0TWVkaWFNSU1FVHlwZXMo
cGFyYW1ldGVycy5tZWRpYU1JTUVUeXBlcyk7CiAgICAgZWxzZSB7Cg==
</data>
<flag name="commit-queue"
          id="434689"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417058</attachid>
            <date>2021-01-05 17:05:02 -0800</date>
            <delta_ts>2021-01-05 17:20:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219961-20210105170502.patch</filename>
            <type>text/plain</type>
            <size>38166</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjRiMDk0MDA0ZmI4MjZm
ZjUwMzIxNmU3NjE3MzdiZjliNDhmZDgxZS4uZDQ5YzNjOTRmMmMxMTg1NGM5NzhiMGI4MWIwNjc3
ZDQ1YmM2NjZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTAxLTA1ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2Vi
TSBmb3JtYXQgcmVhZGVyIGRvZXNuJ3Qgd29yayB3aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5
OTYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjM5OTAxND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBBbmR5IEVzdGVzLgorCisgICAgICAgIFdvcmsgYXJvdW5kIGEgQ29yZU1lZGlhIGJ1ZyB0
aGF0IG1ha2VzIHRoZSBmb3JtYXQgcmVhZGVyIGZhaWwgdG8gbG9hZCB3aGVuIHRoZQorICAgICAg
ICBBVlVSTEFzc2V0T3V0T2ZCYW5kTUlNRVR5cGVLZXlpcyBpbmNsdWRlZCBpbiB0aGUgQVZVUkxB
c3NldCBvcHRpb25zIGRpY3Rpb25hcnkuCisgICAgICAgIEFsc28gaW5jbHVkZSBzb21lIGNsZWFu
dXA6CisgICAgICAgIC0gTW92ZSB0aGUgY29kZSB0byBjaGVjayBmb3IgV2ViTSBNSU1FIHR5cGVz
IGZyb20gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQworICAgICAgICAgIHRvIEFW
QXNzZXRNSU1FVHlwZUNhY2hlLgorICAgICAgICAtIERvbid0IHVzZSBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzIGluIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuCisgICAgICAgIC0g
UmVnaXN0ZXIgdGhlIFdlYk0gZm9ybWF0IHJlYWRlciB3aGVuIGNyZWF0aW5nIGFuIEFWVVJMQXNz
ZXQgZm9yIGEgV2ViTSB1cmwgaW5zdGVhZAorICAgICAgICAgIG9mIHdoZW4gY2hlY2tpbmcgdGhl
IE1JTUUgdHlwZS4KKyAgICAgICAgLSBDbGVhbnVwIFdlYk0gImNvZGVjcyIgcGFyYW1ldGVyIHBh
cnNpbmcuCisgICAgICAgIC0gSXQgaXMgYSBsYXllcmluZyB2aW9sYXRpb24gdG8gdXNlIFJ1bnRp
bWVTZXR0aW5ncyBmcm9tIGluc2lkZSBvZiAvcGxhdGZvcm0uCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp3ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFdlYk1G
b3JtYXRSZWFkZXJFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlcjo6dm9yYmlzRGVjb2RlckVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXRWb3JiaXNEZWNvZGVyRW5hYmxlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUcmFja1ByaXZhdGVCYXNlOjpkZWZhdWx0RW5hYmxlZCBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVk
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlNRVR5cGVDYWNoZTo6aW5pdGlhbGl6
ZUNhY2hlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
cmVnaXN0ZXJGb3JtYXRSZWFkZXJJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjp3aWxs
VXNlV2ViTUZvcm1hdFJlYWRlckZvclR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5
cGVBbmRDb2RlY3MpOgorICAgICAgICAoV2ViQ29yZTo6ZW5zdXJlRm9ybWF0UmVhZGVySXNSZWdp
c3RlcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzRm9ybWF0UmVhZGVyQXZhaWxh
YmxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BdWRpb1Ry
YWNrUHJpdmF0ZVdlYk0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVX
ZWJNOjpkZWZhdWx0RW5hYmxlZCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvQXVkaW9UcmFja1ByaXZhdGVXZWJNLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
b3VyY2VCdWZmZXJQYXJzZXJXZWJNOjp3ZWJtTUlNRVR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OmNhbkxvYWRGb3JtYXRSZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6aXNXZWJNRm9ybWF0UmVhZGVyQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVXZWJNOjpkZWZhdWx0RW5hYmxl
ZCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1By
aXZhdGVXZWJNLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlv
VXRpbGl0aWVzQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjppc1ZvcmJpc0RlY29kZXJBdmFp
bGFibGUpOgorCiAyMDIxLTAxLTA1ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNv
bnkuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb11bY3VybF0gRW5hYmxlIENVUkxTU0xPUFRfTkFU
SVZFX0NBIGZsYWcgdG8gdXNlIHN5c3RlbSdzIENBIGNlcnRzIGluc3RlYWQgb2YgY2FjZXJ0LnBl
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBhZDc1ZTdkMjM0MjQyMzA0MjE5NDYyZDVlNzFlN2RlYTllYjNhZjcwLi5i
MjY0MWE0NGY5MzRiOTZmNDk0ZjhmMmJmMmQxZjlkYTdiY2IxMzRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI5IEBACisyMDIxLTAxLTA1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViTSBmb3JtYXQgcmVhZGVyIGRvZXNuJ3Qgd29yayB3
aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5OTYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
MjM5OTAxND4KKworICAgICAgICBSZXZpZXdlZCBieSBBbmR5IEVzdGVzLgorCisgICAgICAgIE9u
bHkgZW5hYmxlIGEgV2ViTSB0cmFjayB3aGVuIHRoZSBpdCBoYXMgRmxhZ0VuYWJsZWQgZWxlbWVu
dCwgb3Igd2hlbiB3ZSBzZWUgdGhhdAorICAgICAgICBpdCBoYXMgbWVkaWEgc2FtcGxlcy4gVGhp
cyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGVyZSBhcmUgV2ViTSBmaWxlcyB3aXRoIGVtcHR5IHRy
YWNrcywKKyAgICAgICAgYW5kIENvcmVNZWRpYSB3b24ndCBwbGF5IGEgZmlsZSBpZiBhbnkgZW5h
YmxlZCB0cmFjayBkb2Vzbid0IGhhdmUgc2FtcGxlcy4KKworICAgICAgICAqIFNoYXJlZC9tYWMv
TWVkaWFGb3JtYXRSZWFkZXIvRm9ybWF0UmVhZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Rm9y
bWF0UmVhZGVyOjpkaWRQYXJzZVRyYWNrcyk6CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZv
cm1hdFJlYWRlci9UcmFja1JlYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUmVhZGVy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpUcmFja1JlYWRlcjo6VHJhY2tSZWFkZXIpOgor
ICAgICAgICAoV2ViS2l0OjpUcmFja1JlYWRlcjo6ZmluaXNoUGFyc2luZyk6CisgICAgICAgIChX
ZWJLaXQ6OlRyYWNrUmVhZGVyOjppc0VuYWJsZWQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpU
cmFja1JlYWRlcjo6Y29weVByb3BlcnR5KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9y
bWF0UmVhZGVyL1RyYWNrUmVhZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAy
MDIxLTAxLTA1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgTWFrZSBXZWJQYWdlOjpGb3JjZVJlcGFpbnQgdXNlIENvbXBsZXRpb25IYW5kbGVy
IGluc3RlYWQgb2YgVm9pZENhbGxiYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAppbmRleCAx
NzVhYWZlNjRlYWEyNjdiOGEzMjZmMGM2MWUyMDM3OGFjNjMwOWNhLi5mODczYWIwOThiYTdjYWNl
NGFmYmI0ZWJmOWNkNDM2NTc5NGIzNzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAg
LTM1LDYgKzM1LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIEVOQUJMRShWSURFTykg
fHwgRU5BQkxFKFdFQl9BVURJTykKIAorI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUo
TVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCitib29sIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cjo6bV93ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZDsKKyNlbmRpZgorCisjaWYgRU5BQkxFKFZPUkJJ
UykgJiYgUExBVEZPUk0oTUFDKQorYm9vbCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6Om1f
dm9yYmlzRGVjb2RlckVuYWJsZWQ7CisjZW5kaWYKKwogc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI+JiBzaGFyZWRQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXIoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OnVuaXF1ZV9wdHI8UGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyPj4gcGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOwpA
QCAtNjEwLDYgKzYxOCw0MiBAQCB2b2lkIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2V0
U2hvdWxkRGVhY3RpdmF0ZUF1ZGlvU2Vzc2lvbihib29sIGRlYWN0aXZhdAogICAgIGRlYWN0aXZh
dGVBdWRpb1Nlc3Npb24oKSA9IGRlYWN0aXZhdGU7CiB9CiAKK2Jvb2wgUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyOjp3ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpCit7CisjaWYgRU5BQkxFKE1F
RElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICByZXR1cm4g
bV93ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZDsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2Vu
ZGlmCit9CisKK3ZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXRXZWJNRm9ybWF0
UmVhZGVyRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkg
JiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICBtX3dlYk1Gb3JtYXRSZWFkZXJF
bmFibGVkID0gZW5hYmxlZDsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGVuYWJsZWQpOworI2Vu
ZGlmCit9CisKK2Jvb2wgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp2b3JiaXNEZWNvZGVy
RW5hYmxlZCgpCit7CisjaWYgRU5BQkxFKFZPUkJJUykgJiYgUExBVEZPUk0oTUFDKQorICAgIHJl
dHVybiBtX3ZvcmJpc0RlY29kZXJFbmFibGVkOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5h
YmxlZCk7CisjZW5kaWYKK30KKwordm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNl
dFZvcmJpc0RlY29kZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyNpZiBFTkFCTEUoVk9SQklT
KSAmJiBQTEFURk9STShNQUMpCisgICAgbV92b3JiaXNEZWNvZGVyRW5hYmxlZCA9IGVuYWJsZWQ7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmFibGVkKTsKKyNlbmRpZgorfQorCiAjZWxzZSAv
LyBFTkFCTEUoVklERU8pIHx8IEVOQUJMRShXRUJfQVVESU8pCiAKIHZvaWQgUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyOjp1cGRhdGVOb3dQbGF5aW5nSW5mb0lmTmVjZXNzYXJ5KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyLmgKaW5kZXggNzc0Y2IxY2EyNTQzMmU0NjRkYmZlMTk5NTM0YjViZWZjMGQz
YTYxYy4uYWEwZjJjYzE5NGQxYzNiNDJhYWFlMDkxMzcxMjk3NWZkOTk0ZjFhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyLmgKQEAgLTU4LDYgKzU4LDExIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgdm9pZCBzZXRTaG91bGREZWFjdGl2YXRlQXVkaW9TZXNzaW9uKGJvb2wpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHNob3VsZERlYWN0aXZhdGVBdWRpb1Nlc3Np
b24oKTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldFdlYk1Gb3JtYXRSZWFk
ZXJFbmFibGVkKGJvb2wpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHdlYk1Gb3Jt
YXRSZWFkZXJFbmFibGVkKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0Vm9y
YmlzRGVjb2RlckVuYWJsZWQoYm9vbCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wg
dm9yYmlzRGVjb2RlckVuYWJsZWQoKTsKKwogICAgIHZpcnR1YWwgflBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlcigpID0gZGVmYXVsdDsKIAogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVNlc3Np
b25TdGF0dXNVcGRhdGUoKSB7IH0KQEAgLTIwMSw2ICsyMDYsMTMgQEAgcHJpdmF0ZToKICAgICBX
ZWFrSGFzaFNldDxQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXVkaW9DYXB0dXJlU291cmNlPiBtX2F1
ZGlvQ2FwdHVyZVNvdXJjZXM7CiAgICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gdXBkYXRlU2Vz
c2lvblN0YXRlUXVldWU7CiAKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BM
VUdJTl9GT1JNQVRfUkVBREVSKQorICAgIHN0YXRpYyBib29sIG1fd2ViTUZvcm1hdFJlYWRlckVu
YWJsZWQ7CisjZW5kaWYKKyNpZiBFTkFCTEUoVk9SQklTKSAmJiBQTEFURk9STShNQUMpCisgICAg
c3RhdGljIGJvb2wgbV92b3JiaXNEZWNvZGVyRW5hYmxlZDsKKyNlbmRpZgorCiAjaWYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECiAgICAgUmVmPEFnZ3JlZ2F0ZUxvZ2dlcj4gbV9sb2dnZXI7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJp
dmF0ZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2
YXRlQmFzZS5jcHAKaW5kZXggNGJkMjJmZTQzMjc4ZWI1MGRiNGY2OWI0ZWJkYzBmMWVjODA5YTVl
NC4uNzExMzhkZjI5NGFmODliMzA1ZDEzZTgwOWQ3ZjRkMjdkOTFiNmQxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAK
QEAgLTM4LDYgKzM4LDExIEBAIE9wdGlvbmFsPHVpbnQ2NF90PiBUcmFja1ByaXZhdGVCYXNlOjp0
cmFja1VJRCgpIGNvbnN0CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAorT3B0aW9uYWw8
Ym9vbD4gVHJhY2tQcml2YXRlQmFzZTo6ZGVmYXVsdEVuYWJsZWQoKSBjb25zdAoreworICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7Cit9CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogc3Rh
dGljIHVpbnQ2NF90IHNfdW5pcXVlSWQgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oCmluZGV4IGY0NGVmY2JlNTEyZjQ2MTc4
NWY3MTQwZWYyN2M1OTE1YmE0YzM1ZTAuLjMwOTk2MTQyMDQ4NTVkOTk2OWQwNGM2ZjA3OTgzYzI3
Nzc0ZTdmM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Ry
YWNrUHJpdmF0ZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9U
cmFja1ByaXZhdGVCYXNlLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCBpbnQgdHJhY2tJbmRleCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIE9wdGlv
bmFsPHVpbnQ2NF90PiB0cmFja1VJRCgpIGNvbnN0OworICAgIHZpcnR1YWwgT3B0aW9uYWw8Ym9v
bD4gZGVmYXVsdEVuYWJsZWQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgTWVkaWFUaW1lIHN0YXJ0
VGltZVZhcmlhbmNlKCkgY29uc3QgeyByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KaW5kZXgg
ODcwNjYyMTQ2NmI1OTU3ZDg1N2M4ZTZhOTdjOTFlYTYzZjQ2MDFmOS4uMzU5M2JkNDRjOTQxOThj
NDU5MDA4MDRkNzJhYWQ3ODczMmZhZTI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
QVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBQTEFURk9STShD
T0NPQSkKIAogI2ltcG9ydCAiQ29udGVudFR5cGUuaCIKKyNpbXBvcnQgIlNvdXJjZUJ1ZmZlclBh
cnNlcldlYk0uaCIKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2ltcG9y
dCA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CiAKQEAgLTYzLDkgKzY0LDE2IEBA
IGJvb2wgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVkVHlwZShjb25zdCBD
b250ZW50VHlwZSYgdHlwZSkKIHsKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJ
T04pCiAgICAgQVNTRVJUKGlzQXZhaWxhYmxlKCkpOwotICAgIHJldHVybiBbUEFMOjpnZXRBVlVS
TEFzc2V0Q2xhc3MoKSBpc1BsYXlhYmxlRXh0ZW5kZWRNSU1FVHlwZTp0eXBlLnJhdygpXTsKKyAg
ICBpZiAoW1BBTDo6Z2V0QVZVUkxBc3NldENsYXNzKCkgaXNQbGF5YWJsZUV4dGVuZGVkTUlNRVR5
cGU6dHlwZS5yYXcoKV0pCisgICAgICAgIHJldHVybiB0cnVlOworCisjaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICBpZiAoU291cmNl
QnVmZmVyUGFyc2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZCh0eXBlKSA9PSBNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzU3VwcG9ydGVkKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKICNlbmRpZgogCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9O
KQorCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC0xNDgsNiArMTU2LDEzIEBAIHZvaWQgQVZB
c3NldE1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlD
YXNlSW5zZW5zaXRpdmVICiAgICAgZm9yIChOU1N0cmluZyogdHlwZSBpbiBbUEFMOjpnZXRBVlVS
TEFzc2V0Q2xhc3MoKSBhdWRpb3Zpc3VhbE1JTUVUeXBlc10pCiAgICAgICAgIGNhY2hlLmFkZCh0
eXBlKTsKIAorI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1B
VF9SRUFERVIpCisgICAgaWYgKFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzV2ViTUZvcm1hdFJl
YWRlckF2YWlsYWJsZSgpKSB7CisgICAgICAgIGF1dG8gd2VibVR5cGVzID0gU291cmNlQnVmZmVy
UGFyc2VyV2ViTTo6d2VibU1JTUVUeXBlcygpOworICAgICAgICBjYWNoZS5hZGQod2VibVR5cGVz
LmJlZ2luKCksIHdlYm1UeXBlcy5lbmQoKSk7CisgICAgfQorI2VuZGlmCisKICAgICBpZiAobV9j
YWNoZVR5cGVDYWxsYmFjaykKICAgICAgICAgbV9jYWNoZVR5cGVDYWxsYmFjayhjb3B5VG9WZWN0
b3IoY2FjaGUpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggZDY0YTcyNTYy
YTI0YzBkOGExZGJiYTMwOWNlNTE1YzhjZmVjNGFlMS4uODZjYWY0NWViM2NjNTU5ZmQ2NGZkNGRi
MGJkMDlkMzJjMGM2ZWViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC01Niw3ICs1Niw2
IEBACiAjaW1wb3J0ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCiAjaW1wb3J0ICJQbGF0Zm9y
bVRpbWVSYW5nZXMuaCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgotI2lt
cG9ydCAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2ltcG9ydCAiU2VjdXJpdHlPcmlnaW4u
aCIKICNpbXBvcnQgIlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaCIKICNpbXBvcnQgIlNo
YXJlZEJ1ZmZlci5oIgpAQCAtMTAwLDcgKzk5LDYgQEAKICNpbXBvcnQgPHd0Zi9PU09iamVjdFB0
ci5oPgogI2ltcG9ydCA8d3RmL1VSTC5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29h
Lmg+Ci0jaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9PU1ZhcmlhbnRTUEkuaD4KICNpbXBvcnQgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KICNpbXBvcnQgPHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5o
PgogCkBAIC0yNzAsNiArMjY4LDIwIEBAIHN0YXRpYyBkaXNwYXRjaF9xdWV1ZV90IGdsb2JhbFB1
bGxEZWxlZ2F0ZVF1ZXVlKCkKICAgICByZXR1cm4gZ2xvYmFsUXVldWU7CiB9CiAKK3N0YXRpYyB2
b2lkIHJlZ2lzdGVyRm9ybWF0UmVhZGVySWZOZWNlc3NhcnkoKQoreworI2lmIEVOQUJMRShNRURJ
QV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCisgICAgc3RhdGljIGRp
c3BhdGNoX29uY2VfdCBvbmNlVG9rZW47CisgICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBe
eworICAgICAgICAvLyBMaWtlIHdlIGRvIGZvciBvdGhlciBtZWRpYSBmb3JtYXRzLCBhbGxvdyB0
aGUgZm9ybWF0IHJlYWRlciB0byBydW4gaW4gdGhlIFdlYkNvbnRlbnQgb3IgR1BVIHByb2Nlc3MK
KyAgICAgICAgLy8gKHdoaWNoIGlzIGFscmVhZHkgYXBwcm9wcmlhdGVseSBzYW5kYm94ZWQpIHJh
dGhlciB0aGFuIGluIGEgc2VwYXJhdGUgTWVkaWFUb29sYm94IFhQQyBzZXJ2aWNlLgorICAgICAg
ICBSRUxFQVNFX0FTU0VSVChpc0luR1BVUHJvY2VzcygpIHx8IGlzSW5XZWJQcm9jZXNzKCkpOwor
ICAgICAgICBNVFJlZ2lzdGVyUGx1Z2luRm9ybWF0UmVhZGVyQnVuZGxlRGlyZWN0b3J5KChfX2Jy
aWRnZSBDRlVSTFJlZilOU0J1bmRsZS5tYWluQnVuZGxlLmJ1aWx0SW5QbHVnSW5zVVJMKTsKKyAg
ICAgICAgTVRQbHVnaW5Gb3JtYXRSZWFkZXJEaXNhYmxlU2FuZGJveGluZygpOworICAgIH0pOwor
I2VuZGlmCit9CisKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OkZh
Y3RvcnkgZmluYWwgOiBwdWJsaWMgTWVkaWFQbGF5ZXJGYWN0b3J5IHsKIHByaXZhdGU6CiAgICAg
TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6
OkFWRm91bmRhdGlvbjsgfTsKQEAgLTc5Miw2ICs4MDQsMTkgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFVSTCYgdXJs
KQogCiB9CiAKK3N0YXRpYyBib29sIHdpbGxVc2VXZWJNRm9ybWF0UmVhZGVyRm9yVHlwZShjb25z
dCBTdHJpbmcmIHR5cGUpCit7CisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9Q
TFVHSU5fRk9STUFUX1JFQURFUikKKyAgICBpZiAoIVNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Omlz
V2ViTUZvcm1hdFJlYWRlckF2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICByZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLCAidmlkZW8vd2VibSIpIHx8IGVx
dWFsSWdub3JpbmdBU0NJSUNhc2UodHlwZSwgImF1ZGlvL3dlYm0iKTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKHR5cGUpOworICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29u
c3QgVVJMJiB1cmwsIFJldGFpblB0cjxOU011dGFibGVEaWN0aW9uYXJ5PiBvcHRpb25zKQogewog
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CkBAIC04MzMsNyArODU4LDExIEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTChj
b25zdCBVUkwmIHVybCwgUmV0CiAjZW5kaWYKIAogICAgIGF1dG8gdHlwZSA9IHBsYXllcigpLT5j
b250ZW50TUlNRVR5cGUoKTsKLSAgICBpZiAoUEFMOjpjYW5Mb2FkX0FWRm91bmRhdGlvbl9BVlVS
TEFzc2V0T3V0T2ZCYW5kTUlNRVR5cGVLZXkoKSAmJiAhdHlwZS5pc0VtcHR5KCkgJiYgIXBsYXll
cigpLT5jb250ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21FeHRlbnNpb24oKSkgeworCisgICAg
Ly8gRG9uJ3QgYWR2ZXJ0aXNlIFdlYk0gTUlNRSB0eXBlcyBvciB0aGUgZm9ybWF0IHJlYWRlciB3
b24ndCBiZSBsb2FkZWQgdW50aWwgcmRhcjovLzcyNDA1MTI3IGlzIGZpeGVkLgorICAgIGF1dG8g
d2lsbFVzZVdlYk1Gb3JtYXRSZWFkZXIgPSB3aWxsVXNlV2ViTUZvcm1hdFJlYWRlckZvclR5cGUo
dHlwZSk7CisKKyAgICBpZiAoUEFMOjpjYW5Mb2FkX0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0T3V0
T2ZCYW5kTUlNRVR5cGVLZXkoKSAmJiAhdHlwZS5pc0VtcHR5KCkgJiYgIXBsYXllcigpLT5jb250
ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21FeHRlbnNpb24oKSAmJiAhd2lsbFVzZVdlYk1Gb3Jt
YXRSZWFkZXIpIHsKICAgICAgICAgYXV0byBjb2RlY3MgPSBwbGF5ZXIoKS0+Y29udGVudFR5cGVD
b2RlY3MoKTsKICAgICAgICAgaWYgKCFjb2RlY3MuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBO
U1N0cmluZyAqdHlwZVN0cmluZyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUA7IGNv
ZGVjcz1cIiVAXCIiLCAoTlNTdHJpbmcgKil0eXBlLCAoTlNTdHJpbmcgKiljb2RlY3NdOwpAQCAt
ODc2LDYgKzkwNSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
Y3JlYXRlQVZBc3NldEZvclVSTChjb25zdCBVUkwmIHVybCwgUmV0CiAgICAgICAgICAgICBbb3B0
aW9ucyBzZXRPYmplY3Q6QE5PIGZvcktleTpBVlVSTEFzc2V0VXNlc05vUGVyc2lzdGVudENhY2hl
S2V5XTsKICAgICB9CiAKKyAgICBpZiAod2lsbFVzZVdlYk1Gb3JtYXRSZWFkZXIpCisgICAgICAg
IHJlZ2lzdGVyRm9ybWF0UmVhZGVySWZOZWNlc3NhcnkoKTsKKwogICAgIE5TVVJMICpjb2NvYVVS
TCA9IGNhbm9uaWNhbFVSTCh1cmwpOwogICAgIG1fYXZBc3NldCA9IGFkb3B0TlMoW1BBTDo6YWxs
b2NBVlVSTEFzc2V0SW5zdGFuY2UoKSBpbml0V2l0aFVSTDpjb2NvYVVSTCBvcHRpb25zOm9wdGlv
bnMuZ2V0KCldKTsKIApAQCAtMTY2NywzOSArMTY5OSw2IEBAIHN0YXRpYyBib29sIGtleVN5c3Rl
bUlzU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQogfQogI2VuZGlmCiAKLSNpZiBF
TkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQotc3Rh
dGljIHZvaWQgZW5zdXJlRm9ybWF0UmVhZGVySXNSZWdpc3RlcmVkKCkKLXsKLSAgICBzdGF0aWMg
ZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKLSAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4s
IF57Ci0gICAgICAgIC8vIExpa2Ugd2UgZG8gZm9yIG90aGVyIG1lZGlhIGZvcm1hdHMsIGFsbG93
IHRoZSBmb3JtYXQgcmVhZGVyIHRvIHJ1biBpbiB0aGUgV2ViQ29udGVudCBvciBHUFUgcHJvY2Vz
cwotICAgICAgICAvLyAod2hpY2ggaXMgYWxyZWFkeSBhcHByb3ByaWF0ZWx5IHNhbmRib3hlZCkg
cmF0aGVyIHRoYW4gaW4gYSBzZXBhcmF0ZSBNZWRpYVRvb2xib3ggWFBDIHNlcnZpY2UuCi0gICAg
ICAgIFJFTEVBU0VfQVNTRVJUKGlzSW5HUFVQcm9jZXNzKCkgfHwgaXNJbldlYlByb2Nlc3MoKSk7
Ci0gICAgICAgIE1UUmVnaXN0ZXJQbHVnaW5Gb3JtYXRSZWFkZXJCdW5kbGVEaXJlY3RvcnkoKF9f
YnJpZGdlIENGVVJMUmVmKU5TQnVuZGxlLm1haW5CdW5kbGUuYnVpbHRJblBsdWdJbnNVUkwpOwot
ICAgICAgICBNVFBsdWdpbkZvcm1hdFJlYWRlckRpc2FibGVTYW5kYm94aW5nKCk7Ci0gICAgfSk7
Ci19Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lO
X0ZPUk1BVF9SRUFERVIpCi1zdGF0aWMgYm9vbCBpc0Zvcm1hdFJlYWRlckF2YWlsYWJsZSgpCi17
Ci0gICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYk1G
b3JtYXRSZWFkZXJFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotI2lmICFVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQotICAgIC8vIEZJWE1FIChyZGFyOi8vNzIzMjA0MTkpOiBJZiBX
ZWJLaXQgd2FzIGJ1aWx0IHdpdGggYWQtaG9jIGNvZGUtc2lnbmluZywKLSAgICAvLyBDb3JlTWVk
aWEgd2lsbCBvbmx5IGxvYWQgdGhlIGZvcm1hdCByZWFkZXIgcGx1Zy1pbiB3aGVuIGEgdXNlciBk
ZWZhdWx0Ci0gICAgLy8gaXMgc2V0IG9uIEFwcGxlIGludGVybmFsIE9Tcy4gVGhhdCBtZWFucyB3
ZSBjYW5ub3QgY3VycmVudGx5IHN1cHBvcnQgV2ViTQotICAgIC8vIGluIHB1YmxpYyBTREsgYnVp
bGRzIG9uIGN1c3RvbWVyIE9Tcy4KLSAgICBpZiAoIW9zX3ZhcmlhbnRfYWxsb3dzX2ludGVybmFs
X3NlY3VyaXR5X3BvbGljaWVzKCJjb20uYXBwbGUuV2ViS2l0IikpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0jZW5kaWYKLQogTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBw
b3J0c1R5cGVBbmRDb2RlY3MoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFy
YW1ldGVycykKIHsKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAtMTcxMSwxOSArMTcxMCw2
IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6c3VwcG9ydHNUeXBlQW5kQ29kCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKLSAgICBpZiAoaXNGb3Jt
YXRSZWFkZXJBdmFpbGFibGUoKSkgewotICAgICAgICBhdXRvIHN1cHBvcnRlZCA9IFNvdXJjZUJ1
ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQocGFyYW1ldGVycy50eXBlKTsK
LSAgICAgICAgaWYgKHN1cHBvcnRlZCAhPSBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc05v
dFN1cHBvcnRlZCkgewotICAgICAgICAgICAgZW5zdXJlRm9ybWF0UmVhZGVySXNSZWdpc3RlcmVk
KCk7Ci0gICAgICAgICAgICBpZiAoc3VwcG9ydGVkID09IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5
cGU6Ok1heUJlU3VwcG9ydGVkKQotICAgICAgICAgICAgICAgIHJldHVybiBzdXBwb3J0ZWQ7Ci0g
ICAgICAgICAgICBpZiAoY29udGVudFR5cGVNZWV0c0hhcmR3YXJlRGVjb2RlUmVxdWlyZW1lbnRz
KHBhcmFtZXRlcnMudHlwZSwgcGFyYW1ldGVycy5jb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2Fy
ZVN1cHBvcnQpKQotICAgICAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6U3VwcG9ydHNU
eXBlOjpJc1N1cHBvcnRlZDsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZgotCiAgICAgYXV0byBz
dXBwb3J0ZWQgPSBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuY2FuRGVjb2RlVHlw
ZShwYXJhbWV0ZXJzLnR5cGUucmF3KCkpOwogICAgIGlmIChzdXBwb3J0ZWQgIT0gTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQpCiAgICAgICAgIHJldHVybiBzdXBwb3J0ZWQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BdWRp
b1RyYWNrUHJpdmF0ZVdlYk0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvQXVkaW9UcmFja1ByaXZhdGVXZWJNLmNwcAppbmRleCA3N2Q4YTM0NThkYTA1MTk5MTZi
MmU1YTg2ZDlkMWQ0N2Y1NjNhYzFkLi5mZDI2ODhhNWRkM2Q5NjlmNDMwZGMzZjhlMDI4NjU0ODJm
NTMxZjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9BdWRpb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5jcHAKQEAgLTU4LDYgKzU4LDEz
IEBAIE9wdGlvbmFsPHVpbnQ2NF90PiBBdWRpb1RyYWNrUHJpdmF0ZVdlYk06OnRyYWNrVUlEKCkg
Y29uc3QKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCitPcHRpb25hbDxib29sPiBBdWRp
b1RyYWNrUHJpdmF0ZVdlYk06OmRlZmF1bHRFbmFibGVkKCkgY29uc3QKK3sKKyAgICBpZiAobV90
cmFjay5pc19lbmFibGVkLmlzX3ByZXNlbnQoKSkKKyAgICAgICAgcmV0dXJuIG1fdHJhY2suaXNf
ZW5hYmxlZC52YWx1ZSgpOworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKIEF0b21TdHJp
bmcgQXVkaW9UcmFja1ByaXZhdGVXZWJNOjpsYWJlbCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fbGFi
ZWwuaXNOdWxsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9BdWRpb1RyYWNrUHJpdmF0ZVdlYk0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5oCmluZGV4IDEzMWE5ZmUwYWVk
YTJhMWZmNDc4ZjBjN2I5N2I5MzQ0ZGNiNjYwZjkuLjEyMjJjNDQ5N2UzOTlmYzk5MDVmNGNkY2Q1
MzgxMDQ0ODQwMjAyMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5oCkBAIC00Miw2ICs0
Miw3IEBAIHB1YmxpYzoKICAgICBBdG9tU3RyaW5nIGxhbmd1YWdlKCkgY29uc3QgZmluYWw7CiAg
ICAgaW50IHRyYWNrSW5kZXgoKSBjb25zdCBmaW5hbDsKICAgICBPcHRpb25hbDx1aW50NjRfdD4g
dHJhY2tVSUQoKSBjb25zdCBmaW5hbDsKKyAgICBPcHRpb25hbDxib29sPiBkZWZhdWx0RW5hYmxl
ZCgpIGNvbnN0IGZpbmFsOwogCiBwcml2YXRlOgogICAgIEF1ZGlvVHJhY2tQcml2YXRlV2ViTSh3
ZWJtOjpUcmFja0VudHJ5JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAppbmRl
eCA1MGZjYTFkOTA5MDllNjE1ZmE0ZTI3OTkxMGVkNzQ1OWIxYzUwZDQxLi5iYzkzZGJjZWE0Mjdi
NTliNTg3YWJjNTViNjczNjA5YzQ1YTZiOTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIk1lZGlhRGVzY3JpcHRpb24uaCIK
ICNpbmNsdWRlICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgogI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlZQOVV0aWxpdGllc0NvY29hLmgiCiAjaW5jbHVk
ZSAiVmlkZW9UcmFja1ByaXZhdGVXZWJNLmgiCkBAIC00OCw2ICs0OSw3IEBACiAjaW5jbHVkZSA8
d3RmL1N0ZExpc3QuaD4KICNpbmNsdWRlIDx3dGYvY2YvVHlwZUNhc3RzQ0YuaD4KICNpbmNsdWRl
IDx3dGYvZGFyd2luL1dlYWtMaW5raW5nLmg+CisjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vT1NW
YXJpYW50U1BJLmg+CiAKICNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogI2luY2x1ZGUg
IlZpZGVvVG9vbGJveFNvZnRMaW5rLmgiCkBAIC00NDMsMTQgKzQ0NSw1NSBAQCBwcml2YXRlOgog
ICAgIHdlYm06OlRyYWNrRW50cnkgbV90cmFjazsKIH07CiAKK2NvbnN0IEhhc2hTZXQ8U3RyaW5n
LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjp3ZWJt
TUlNRVR5cGVzKCkKK3sKKyAgICBzdGF0aWMgYXV0byB0eXBlcyA9IG1ha2VOZXZlckRlc3Ryb3ll
ZChbXSB7CisKKyAgICAgICAgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFz
aD4gdHlwZXM7CisKKyNpZiBFTkFCTEUoVlA5KQorICAgICAgICB0eXBlcy5hZGQoInZpZGVvL3dl
Ym0iKTsKKyNlbmRpZgorI2lmIEVOQUJMRShWT1JCSVMpIHx8IEVOQUJMRShPUFVTKQorICAgICAg
ICB0eXBlcy5hZGQoImF1ZGlvL3dlYm0iKTsKKyNlbmRpZgorCisgICAgICAgIHJldHVybiB0eXBl
czsKKyAgICB9KCkpOworCisgICAgcmV0dXJuIHR5cGVzOworfQorCitzdGF0aWMgYm9vbCBjYW5M
b2FkRm9ybWF0UmVhZGVyKCkKK3sKKyNpZiAhSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikK
KyAgICByZXR1cm4gZmFsc2U7CisjZWxpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgIHJl
dHVybiB0cnVlOworI2Vsc2UKKyAgICAvLyBGSVhNRSAocmRhcjovLzcyMzIwNDE5KTogSWYgV2Vi
S2l0IHdhcyBidWlsdCB3aXRoIGFkLWhvYyBjb2RlLXNpZ25pbmcsCisgICAgLy8gQ29yZU1lZGlh
IHdpbGwgb25seSBsb2FkIHRoZSBmb3JtYXQgcmVhZGVyIHBsdWctaW4gd2hlbiBhIHVzZXIgZGVm
YXVsdAorICAgIC8vIGlzIHNldCBvbiBBcHBsZSBpbnRlcm5hbCBPU3MuIFRoYXQgbWVhbnMgd2Ug
Y2Fubm90IGN1cnJlbnRseSBzdXBwb3J0IFdlYk0KKyAgICAvLyBpbiBwdWJsaWMgU0RLIGJ1aWxk
cyBvbiBjdXN0b21lciBPU3MuCisgICAgc3RhdGljIGJvb2wgYWxsb3dzSW50ZXJuYWxTZWN1cml0
eVBvbGljaWVzID0gb3NfdmFyaWFudF9hbGxvd3NfaW50ZXJuYWxfc2VjdXJpdHlfcG9saWNpZXMo
ImNvbS5hcHBsZS5XZWJLaXQiKTsKKyAgICByZXR1cm4gYWxsb3dzSW50ZXJuYWxTZWN1cml0eVBv
bGljaWVzOworI2VuZGlmIC8vICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorfQorCitib29sIFNv
dXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzV2ViTUZvcm1hdFJlYWRlckF2YWlsYWJsZSgpCit7Cisg
ICAgcmV0dXJuIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6d2ViTUZvcm1hdFJlYWRlckVu
YWJsZWQoKSAmJiBjYW5Mb2FkRm9ybWF0UmVhZGVyKCkgJiYgaXNXZWJtUGFyc2VyQXZhaWxhYmxl
KCk7Cit9CisKIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBTb3VyY2VCdWZmZXJQYXJz
ZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBlKQog
ewogI2lmIEVOQUJMRShWUDkpIHx8IEVOQUJMRShWT1JCSVMpIHx8IEVOQUJMRShPUFVTKQogICAg
IGlmICghaXNXZWJtUGFyc2VyQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXll
ckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCi0gICAgYm9vbCBpc0F1ZGlv
Q29udGFpbmVyVHlwZSA9IFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLmNvbnRhaW5l
clR5cGUoKSwgImF1ZGlvL3dlYm0iKTsKLSAgICBib29sIGlzVmlkZW9Db250YWluZXJUeXBlID0g
V1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlKHR5cGUuY29udGFpbmVyVHlwZSgpLCAidmlkZW8v
d2VibSIpOworICAgIGF1dG8gY29udGFpbmVyVHlwZSA9IHR5cGUuY29udGFpbmVyVHlwZSgpOwor
ICAgIGJvb2wgaXNBdWRpb0NvbnRhaW5lclR5cGUgPSBXVEY6OmVxdWFsSWdub3JpbmdBU0NJSUNh
c2UoY29udGFpbmVyVHlwZSwgImF1ZGlvL3dlYm0iKTsKKyAgICBib29sIGlzVmlkZW9Db250YWlu
ZXJUeXBlID0gV1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlKGNvbnRhaW5lclR5cGUsICJ2aWRl
by93ZWJtIik7CiAgICAgaWYgKCFpc0F1ZGlvQ29udGFpbmVyVHlwZSAmJiAhaXNWaWRlb0NvbnRh
aW5lclR5cGUpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6
OklzTm90U3VwcG9ydGVkOwogICAgIApAQCAtNDczLDIyICs1MTYsMTggQEAgTWVkaWFQbGF5ZXJF
bnVtczo6U3VwcG9ydHNUeXBlIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVT
dXBwb3J0ZWQoY28KICAgICBpZiAoIWlzQW55Q29kZWNBdmFpbGFibGUpCiAgICAgICAgIHJldHVy
biBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCi0gICAg
U3RyaW5nIGNvZGVjc1BhcmFtZXRlciA9IHR5cGUucGFyYW1ldGVyKENvbnRlbnRUeXBlOjpjb2Rl
Y3NQYXJhbWV0ZXIoKSk7Ci0gICAgaWYgKCFjb2RlY3NQYXJhbWV0ZXIpCi0gICAgICAgIHJldHVy
biBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6Ok1heUJlU3VwcG9ydGVkOwotCi0gICAg
YXV0byBzcGxpdFJlc3VsdHMgPSBTdHJpbmdWaWV3KGNvZGVjc1BhcmFtZXRlcikuc3BsaXQoJywn
KTsKLSAgICBpZiAoc3BsaXRSZXN1bHRzLmJlZ2luKCkgPT0gc3BsaXRSZXN1bHRzLmVuZCgpKQor
ICAgIGF1dG8gY29kZWNzID0gdHlwZS5jb2RlY3MoKTsKKyAgICBpZiAoY29kZWNzLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6TWF5QmVT
dXBwb3J0ZWQ7CiAKLSAgICBmb3IgKGF1dG8gc3BsaXQgOiBzcGxpdFJlc3VsdHMpIHsKKyAgICBm
b3IgKGF1dG8mIGNvZGVjIDogY29kZWNzKSB7CiAjaWYgRU5BQkxFKFZQOSkKLSAgICAgICAgaWYg
KHNwbGl0LnN0YXJ0c1dpdGgoInZwMDkiKSB8fCBzcGxpdC5zdGFydHNXaXRoKCJ2cDA4IikgfHwg
ZXF1YWwoc3BsaXQsICJ2cDgiKSB8fCBlcXVhbChzcGxpdCwgInZwOSIpKSB7CisgICAgICAgIGlm
IChjb2RlYy5zdGFydHNXaXRoKCJ2cDA5IikgfHwgY29kZWMuc3RhcnRzV2l0aCgidnAwOCIpIHx8
IGVxdWFsKGNvZGVjLCAidnA4IikgfHwgZXF1YWwoY29kZWMsICJ2cDkiKSkgewogCiAgICAgICAg
ICAgICBpZiAoIWlzVlA5RGVjb2RlckF2YWlsYWJsZSgpKQogICAgICAgICAgICAgICAgIHJldHVy
biBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCi0gICAg
ICAgICAgICBhdXRvIGNvZGVjUGFyYW1ldGVycyA9IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoc3Bs
aXQpOworICAgICAgICAgICAgYXV0byBjb2RlY1BhcmFtZXRlcnMgPSBwYXJzZVZQQ29kZWNQYXJh
bWV0ZXJzKGNvZGVjKTsKICAgICAgICAgICAgIGlmICghY29kZWNQYXJhbWV0ZXJzKQogICAgICAg
ICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3Vw
cG9ydGVkOwogCkBAIC01MDAsNyArNTM5LDcgQEAgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNU
eXBlIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY28KICNl
bmRpZiAvLyBFTkFCTEUoVlA5KQogCiAjaWYgRU5BQkxFKFZPUkJJUykKLSAgICAgICAgaWYgKHNw
bGl0ID09ICJ2b3JiaXMiKSB7CisgICAgICAgIGlmIChjb2RlYyA9PSAidm9yYmlzIikgewogICAg
ICAgICAgICAgaWYgKCFpc1ZvcmJpc0RlY29kZXJBdmFpbGFibGUoKSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsK
IApAQCAtNTA5LDcgKzU0OCw3IEBAIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvCiAjZW5kaWYgLy8g
RU5BQkxFKFZPUkJJUykKIAogI2lmIEVOQUJMRShPUFVTKQotICAgICAgICBpZiAoc3BsaXQgPT0g
Im9wdXMiKSB7CisgICAgICAgIGlmIChjb2RlYyA9PSAib3B1cyIpIHsKICAgICAgICAgICAgIGlm
ICghaXNPcHVzRGVjb2RlckF2YWlsYWJsZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBNZWRp
YVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJz
ZXJXZWJNLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VC
dWZmZXJQYXJzZXJXZWJNLmgKaW5kZXggZWNhMDNjMjA0ZmExMDA3ZTVjMjUzYjUzYTJmZjRhNTJi
NWNiMTc5Yy4uYjNlMTBkYTAzZjA5OTM4NzAxNGVkZjAxNjY1NWM0MDY2NDMyNjIxMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVy
UGFyc2VyV2ViTS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaApAQCAtNjAsNyArNjAsOSBAQCBjbGFzcyBXRUJDT1JF
X0VYUE9SVCBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNIDogcHVibGljIFNvdXJjZUJ1ZmZlclBhcnNl
ciwgcHJpdmF0ZQogcHVibGljOgogICAgIGNsYXNzIFN0cmVhbWluZ1ZlY3RvclJlYWRlcjsKIAor
ICAgIHN0YXRpYyBib29sIGlzV2ViTUZvcm1hdFJlYWRlckF2YWlsYWJsZSgpOwogICAgIHN0YXRp
YyBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgaXNDb250ZW50VHlwZVN1cHBvcnRlZChj
b25zdCBDb250ZW50VHlwZSYpOworICAgIHN0YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZywgQVND
SUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgd2VibU1JTUVUeXBlcygpOwogICAgIHN0YXRpYyBSZWZQ
dHI8U291cmNlQnVmZmVyUGFyc2VyV2ViTT4gY3JlYXRlKGNvbnN0IENvbnRlbnRUeXBlJik7CiAK
ICAgICBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJN
LmNwcAppbmRleCBlODhiOWU1NTU1ZDRmYTMxODAzZmQyOWY2OGVhYzk1ZTZmNzczMzU4Li40ODg2
NTQ4NDIyNzRlNWE5YTg5ZTkzYmY1Y2MzNTg5ZWZlZTlmMjllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQ
cml2YXRlV2ViTS5jcHAKQEAgLTU4LDYgKzU4LDEzIEBAIE9wdGlvbmFsPHVpbnQ2NF90PiBWaWRl
b1RyYWNrUHJpdmF0ZVdlYk06OnRyYWNrVUlEKCkgY29uc3QKICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogfQogCitPcHRpb25hbDxib29sPiBWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OmRlZmF1bHRF
bmFibGVkKCkgY29uc3QKK3sKKyAgICBpZiAobV90cmFjay5pc19lbmFibGVkLmlzX3ByZXNlbnQo
KSkKKyAgICAgICAgcmV0dXJuIG1fdHJhY2suaXNfZW5hYmxlZC52YWx1ZSgpOworICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7Cit9CisKIEF0b21TdHJpbmcgVmlkZW9UcmFja1ByaXZhdGVXZWJNOjps
YWJlbCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fbGFiZWwuaXNOdWxsKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdl
Yk0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQ
cml2YXRlV2ViTS5oCmluZGV4IDEyMzFjYmUzNTllMzA3M2ZkZmE2ZmJlMGU2MmUwNTFmMGIyOTFk
NTYuLjMyMGY4ODhjMTAxZmE2ZjIyMzdjM2FlZTEwNDczM2U4Y2VlMWIxMzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRl
V2ViTS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVv
VHJhY2tQcml2YXRlV2ViTS5oCkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICBBdG9tU3Ry
aW5nIGxhbmd1YWdlKCkgY29uc3QgZmluYWw7CiAgICAgaW50IHRyYWNrSW5kZXgoKSBjb25zdCBm
aW5hbDsKICAgICBPcHRpb25hbDx1aW50NjRfdD4gdHJhY2tVSUQoKSBjb25zdCBmaW5hbDsKKyAg
ICBPcHRpb25hbDxib29sPiBkZWZhdWx0RW5hYmxlZCgpIGNvbnN0IGZpbmFsOwogCiBwcml2YXRl
OgogICAgIFZpZGVvVHJhY2tQcml2YXRlV2ViTSh3ZWJtOjpUcmFja0VudHJ5JiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRp
bGl0aWVzQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9X
ZWJNQXVkaW9VdGlsaXRpZXNDb2NvYS5tbQppbmRleCA0MTM0NzhmN2ZhMmJhM2I1ZTUzNThiMmEz
YTgwOTc3OGJiZTllYjUwLi5kZWYxNDFmMzYxNzI1MWQ3NTY0MTNmYmE1NmUyM2I2MjA1Mzc2ZjYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJN
QXVkaW9VdGlsaXRpZXNDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9XZWJNQXVkaW9VdGlsaXRpZXNDb2NvYS5tbQpAQCAtMzEsNyArMzEsNyBAQAog
I2ltcG9ydCAiQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgi
CiAjaW1wb3J0ICJNZWRpYVV0aWxpdGllcy5oIgotI2ltcG9ydCAiUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oIgorI2ltcG9ydCAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW1wb3J0
IDxBdWRpb1Rvb2xib3gvQXVkaW9Db21wb25lbnQuaD4KICNpbXBvcnQgPEF1ZGlvVG9vbGJveC9B
dWRpb0Zvcm1hdC5oPgogI2ltcG9ydCA8Q29yZU1lZGlhL0NNRm9ybWF0RGVzY3JpcHRpb24uaD4K
QEAgLTE3Nyw3ICsxNzcsNyBAQCBib29sIGlzVm9yYmlzRGVjb2RlckF2YWlsYWJsZSgpCiAgICAg
c3RhdGljIGJvb2wgYXZhaWxhYmxlOwogCiAjaWYgRU5BQkxFKFZPUkJJUykgJiYgUExBVEZPUk0o
TUFDKQotICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS52
b3JiaXNEZWNvZGVyRW5hYmxlZCgpKQorICAgIGlmICghUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyOjp2b3JiaXNEZWNvZGVyRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9Gb3JtYXRSZWFkZXIuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0Zvcm1hdFJlYWRlci5jcHAK
aW5kZXggZWY0OWZjYTk2NjIyNWFjMzdiNTgzZTY0NjdkOGY1ZDE5MjRhYmI1Mi4uZjRkYmJiODkz
OTFkYjMxOGY4YjYzZmRjMjRhMThkZGUzNTgyMTI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0Zvcm1hdFJlYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0Zvcm1hdFJlYWRlci5jcHAK
QEAgLTE0NCwyNiArMTQ0LDI5IEBAIHZvaWQgRm9ybWF0UmVhZGVyOjpkaWRQYXJzZVRyYWNrcyhT
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpJbml0aWFsaXphdGlvblNlZ21lCiAgICAgbV9kdXJh
dGlvbiA9IFdURk1vdmUoc2VnbWVudC5kdXJhdGlvbik7CiAKICAgICBmb3IgKGF1dG8mIHZpZGVv
VHJhY2sgOiBzZWdtZW50LnZpZGVvVHJhY2tzKSB7Ci0gICAgICAgIGlmIChhdXRvIHRyYWNrUmVh
ZGVyID0gVHJhY2tSZWFkZXI6OmNyZWF0ZShhbGxvY2F0b3IoKSwgKnRoaXMsIHZpZGVvVHJhY2su
dHJhY2suZ2V0KCkpKQotICAgICAgICAgICAgbV90cmFja1JlYWRlcnMuYXBwZW5kKHRyYWNrUmVh
ZGVyLnJlbGVhc2VOb25OdWxsKCkpOwotICAgICAgICAvLyBGSVhNRTogSG93IGRvIHdlIGtub3cg
d2hpY2ggdHJhY2tzIHNob3VsZCBiZSBlbmFibGVkPwotICAgICAgICBpZiAobV90cmFja1JlYWRl
cnMuc2l6ZSgpID09IDEpCi0gICAgICAgICAgICBtX3RyYWNrUmVhZGVyc1swXS0+c2V0RW5hYmxl
ZCh0cnVlKTsKKyAgICAgICAgYXV0byB0cmFjayA9IHZpZGVvVHJhY2sudHJhY2suZ2V0KCk7Cisg
ICAgICAgIGF1dG8gdHJhY2tSZWFkZXIgPSBUcmFja1JlYWRlcjo6Y3JlYXRlKGFsbG9jYXRvcigp
LCAqdGhpcywga0NNTWVkaWFUeXBlX1ZpZGVvLCAqdHJhY2stPnRyYWNrVUlEKCksIHRyYWNrLT5k
ZWZhdWx0RW5hYmxlZCgpKTsKKyAgICAgICAgaWYgKCF0cmFja1JlYWRlcikKKyAgICAgICAgICAg
IGNvbnRpbnVlOworCisgICAgICAgIG1fdHJhY2tSZWFkZXJzLmFwcGVuZCh0cmFja1JlYWRlci5y
ZWxlYXNlTm9uTnVsbCgpKTsKICAgICB9CiAKICAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2sgOiBz
ZWdtZW50LmF1ZGlvVHJhY2tzKSB7Ci0gICAgICAgIGlmIChhdXRvIHRyYWNrUmVhZGVyID0gVHJh
Y2tSZWFkZXI6OmNyZWF0ZShhbGxvY2F0b3IoKSwgKnRoaXMsIGF1ZGlvVHJhY2sudHJhY2suZ2V0
KCkpKQotICAgICAgICAgICAgbV90cmFja1JlYWRlcnMuYXBwZW5kKHRyYWNrUmVhZGVyLnJlbGVh
c2VOb25OdWxsKCkpOwotICAgICAgICAvLyBGSVhNRTogSG93IGRvIHdlIGtub3cgd2hpY2ggdHJh
Y2tzIHNob3VsZCBiZSBlbmFibGVkPwotICAgICAgICBpZiAobV90cmFja1JlYWRlcnMuc2l6ZSgp
ID09IHNlZ21lbnQudmlkZW9UcmFja3Muc2l6ZSgpICsgMSkKLSAgICAgICAgICAgIG1fdHJhY2tS
ZWFkZXJzW3NlZ21lbnQudmlkZW9UcmFja3Muc2l6ZSgpXS0+c2V0RW5hYmxlZCh0cnVlKTsKKyAg
ICAgICAgYXV0byB0cmFjayA9IGF1ZGlvVHJhY2sudHJhY2suZ2V0KCk7CisgICAgICAgIGF1dG8g
dHJhY2tSZWFkZXIgPSBUcmFja1JlYWRlcjo6Y3JlYXRlKGFsbG9jYXRvcigpLCAqdGhpcywga0NN
TWVkaWFUeXBlX0F1ZGlvLCAqdHJhY2stPnRyYWNrVUlEKCksIHRyYWNrLT5kZWZhdWx0RW5hYmxl
ZCgpKTsKKyAgICAgICAgaWYgKCF0cmFja1JlYWRlcikKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
CisgICAgICAgIG1fdHJhY2tSZWFkZXJzLmFwcGVuZCh0cmFja1JlYWRlci5yZWxlYXNlTm9uTnVs
bCgpKTsKICAgICB9CiAKICAgICBmb3IgKGF1dG8mIHRleHRUcmFjayA6IHNlZ21lbnQudGV4dFRy
YWNrcykgewotICAgICAgICBpZiAoYXV0byB0cmFja1JlYWRlciA9IFRyYWNrUmVhZGVyOjpjcmVh
dGUoYWxsb2NhdG9yKCksICp0aGlzLCB0ZXh0VHJhY2sudHJhY2suZ2V0KCkpKQorICAgICAgICBh
dXRvIHRyYWNrID0gdGV4dFRyYWNrLnRyYWNrLmdldCgpOworICAgICAgICBpZiAoYXV0byB0cmFj
a1JlYWRlciA9IFRyYWNrUmVhZGVyOjpjcmVhdGUoYWxsb2NhdG9yKCksICp0aGlzLCBrQ01NZWRp
YVR5cGVfVGV4dCwgKnRyYWNrLT50cmFja1VJRCgpLCB0cmFjay0+ZGVmYXVsdEVuYWJsZWQoKSkp
CiAgICAgICAgICAgICBtX3RyYWNrUmVhZGVycy5hcHBlbmQodHJhY2tSZWFkZXIucmVsZWFzZU5v
bk51bGwoKSk7CiAgICAgfQotICAgIAorCiAgICAgbV9wYXJzZVRyYWNrc0NvbmRpdGlvbi5ub3Rp
ZnlBbGwoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlh
Rm9ybWF0UmVhZGVyL1RyYWNrUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9N
ZWRpYUZvcm1hdFJlYWRlci9UcmFja1JlYWRlci5jcHAKaW5kZXggNDg2NWE4MDg5NTNkYmYyNTcw
OGJlNDFhNDBiOGNmMjQyZTdiZmQ4NC4uY2RkZmRmNzU3NWU1MTAxYmRkYzcxMjdiZjE3YmI4ZDFm
NzkwMTNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0
UmVhZGVyL1RyYWNrUmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVk
aWFGb3JtYXRSZWFkZXIvVHJhY2tSZWFkZXIuY3BwCkBAIC0xNDQsMjUgKzE0NCw5IEBAIENvcmVN
ZWRpYVdyYXBwZWQ8VHJhY2tSZWFkZXI+KiBUcmFja1JlYWRlcjo6dW53cmFwKENNQmFzZU9iamVj
dFJlZiBvYmplY3QpCiAgICAgcmV0dXJuIHVud3JhcChjaGVja2VkX2NmX2Nhc3Q8V3JhcHBlclJl
Zj4ob2JqZWN0KSk7CiB9CiAKLVJlZlB0cjxUcmFja1JlYWRlcj4gVHJhY2tSZWFkZXI6OmNyZWF0
ZShBbGxvY2F0b3ImJiBhbGxvY2F0b3IsIGNvbnN0IEZvcm1hdFJlYWRlciYgZm9ybWF0UmVhZGVy
LCBjb25zdCBWaWRlb1RyYWNrUHJpdmF0ZSogdHJhY2spCitSZWZQdHI8VHJhY2tSZWFkZXI+IFRy
YWNrUmVhZGVyOjpjcmVhdGUoQWxsb2NhdG9yJiYgYWxsb2NhdG9yLCBjb25zdCBGb3JtYXRSZWFk
ZXImIGZvcm1hdFJlYWRlciwgQ01NZWRpYVR5cGUgbWVkaWFUeXBlLCB1aW50NjRfdCB0cmFja0lE
LCBPcHRpb25hbDxib29sPiBlbmFibGVkKQogewotICAgIGlmICghdHJhY2spCi0gICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgKGFsbG9jYXRvcikgVHJhY2tS
ZWFkZXIoV1RGTW92ZShhbGxvY2F0b3IpLCBmb3JtYXRSZWFkZXIsIGtDTU1lZGlhVHlwZV9WaWRl
bywgKnRyYWNrLT50cmFja1VJRCgpKSk7Ci19Ci0KLVJlZlB0cjxUcmFja1JlYWRlcj4gVHJhY2tS
ZWFkZXI6OmNyZWF0ZShBbGxvY2F0b3ImJiBhbGxvY2F0b3IsIGNvbnN0IEZvcm1hdFJlYWRlciYg
Zm9ybWF0UmVhZGVyLCBjb25zdCBBdWRpb1RyYWNrUHJpdmF0ZSogdHJhY2spCi17Ci0gICAgaWYg
KCF0cmFjaykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyAoYWxsb2NhdG9yKSBUcmFja1JlYWRlcihXVEZNb3ZlKGFsbG9jYXRvciksIGZvcm1hdFJlYWRl
ciwga0NNTWVkaWFUeXBlX0F1ZGlvLCAqdHJhY2stPnRyYWNrVUlEKCkpKTsKLX0KLQotUmVmUHRy
PFRyYWNrUmVhZGVyPiBUcmFja1JlYWRlcjo6Y3JlYXRlKEFsbG9jYXRvciYmIGFsbG9jYXRvciwg
Y29uc3QgRm9ybWF0UmVhZGVyJiBmb3JtYXRSZWFkZXIsIGNvbnN0IEluYmFuZFRleHRUcmFja1By
aXZhdGUqIHRyYWNrKQotewotICAgIGlmICghdHJhY2spCi0gICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgKGFsbG9jYXRvcikgVHJhY2tSZWFkZXIoV1RGTW92
ZShhbGxvY2F0b3IpLCBmb3JtYXRSZWFkZXIsIGtDTU1lZGlhVHlwZV9UZXh0LCAqdHJhY2stPnRy
YWNrVUlEKCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IChhbGxvY2F0b3IpIFRyYWNrUmVh
ZGVyKFdURk1vdmUoYWxsb2NhdG9yKSwgZm9ybWF0UmVhZGVyLCBtZWRpYVR5cGUsIHRyYWNrSUQs
IGVuYWJsZWQpKTsKIH0KIAogV29ya1F1ZXVlJiBUcmFja1JlYWRlcjo6c3RvcmFnZVF1ZXVlKCkK
QEAgLTE3MSwxMyArMTU1LDE2IEBAIFdvcmtRdWV1ZSYgVHJhY2tSZWFkZXI6OnN0b3JhZ2VRdWV1
ZSgpCiAgICAgcmV0dXJuIHF1ZXVlOwogfQogCi1UcmFja1JlYWRlcjo6VHJhY2tSZWFkZXIoQWxs
b2NhdG9yJiYgYWxsb2NhdG9yLCBjb25zdCBGb3JtYXRSZWFkZXImIGZvcm1hdFJlYWRlciwgQ01N
ZWRpYVR5cGUgbWVkaWFUeXBlLCB1aW50NjRfdCB0cmFja0lEKQorVHJhY2tSZWFkZXI6OlRyYWNr
UmVhZGVyKEFsbG9jYXRvciYmIGFsbG9jYXRvciwgY29uc3QgRm9ybWF0UmVhZGVyJiBmb3JtYXRS
ZWFkZXIsIENNTWVkaWFUeXBlIG1lZGlhVHlwZSwgdWludDY0X3QgdHJhY2tJRCwgT3B0aW9uYWw8
Ym9vbD4gZW5hYmxlZCkKICAgICA6IENvcmVNZWRpYVdyYXBwZWQoV1RGTW92ZShhbGxvY2F0b3Ip
KQogICAgICwgbV90cmFja0lEKHRyYWNrSUQpCiAgICAgLCBtX21lZGlhVHlwZShtZWRpYVR5cGUp
CiAgICAgLCBtX2R1cmF0aW9uKGZvcm1hdFJlYWRlci5kdXJhdGlvbigpKQogewogICAgIEFTU0VS
VCghaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKGVuYWJsZWQpCisgICAgICAgIG1faXNFbmFi
bGVkID0gZW5hYmxlZC52YWx1ZSgpID8gRW5hYmxlZDo6VHJ1ZSA6IEVuYWJsZWQ6OkZhbHNlOwog
fQogCiB2b2lkIFRyYWNrUmVhZGVyOjphZGRTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBs
ZSwgTVRQbHVnaW5CeXRlU291cmNlUmVmIGJ5dGVTb3VyY2UpCkBAIC0yMTYsMTMgKzIwMywxNiBA
QCB2b2lkIFRyYWNrUmVhZGVyOjpmaW5pc2hQYXJzaW5nKCkKICAgICBpZiAoIW1fc2FtcGxlU3Rv
cmFnZSkKICAgICAgICAgbV9zYW1wbGVTdG9yYWdlID0gbWFrZVVuaXF1ZTxTYW1wbGVTdG9yYWdl
PigpOwogICAgIG1fc2FtcGxlU3RvcmFnZS0+aGFzQWxsU2FtcGxlcyA9IHRydWU7CisgICAgaWYg
KG1faXNFbmFibGVkID09IEVuYWJsZWQ6OlVua25vd24pCisgICAgICAgIG1faXNFbmFibGVkID0g
bV9zYW1wbGVTdG9yYWdlLT5zYW1wbGVNYXAuZW1wdHkoKSA/IEVuYWJsZWQ6OkZhbHNlIDogRW5h
YmxlZDo6VHJ1ZTsKICAgICBtX3NhbXBsZVN0b3JhZ2VDb25kaXRpb24ubm90aWZ5QWxsKCk7CiB9
CiAKIE9TU3RhdHVzIFRyYWNrUmVhZGVyOjpjb3B5UHJvcGVydHkoQ0ZTdHJpbmdSZWYga2V5LCBD
RkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIHZvaWQqIGNvcGllZFZhbHVlKQogewotICAgIGlmIChD
RkVxdWFsKGtleSwgUEFMOjpnZXRfTWVkaWFUb29sYm94X2tNVFBsdWdpblRyYWNrUmVhZGVyUHJv
cGVydHlfRW5hYmxlZCgpKSkgewotICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDxDRkJvb2xlYW5S
ZWYqPihjb3BpZWRWYWx1ZSkgPSByZXRhaW5QdHIobV9pc0VuYWJsZWQgPyBrQ0ZCb29sZWFuVHJ1
ZSA6IGtDRkJvb2xlYW5GYWxzZSkubGVha1JlZigpOworICAgIC8vIERvbid0IGJsb2NrIHdhaXRp
bmcgZm9yIG1lZGlhIGlmIHRoZSB3ZSBrbm93IHRoZSBlbmFibGVkIHN0YXRlLgorICAgIGlmIChD
RkVxdWFsKGtleSwgUEFMOjpnZXRfTWVkaWFUb29sYm94X2tNVFBsdWdpblRyYWNrUmVhZGVyUHJv
cGVydHlfRW5hYmxlZCgpKSAmJiBtX2lzRW5hYmxlZCAhPSBFbmFibGVkOjpVbmtub3duKSB7Cisg
ICAgICAgICpyZWludGVycHJldF9jYXN0PENGQm9vbGVhblJlZio+KGNvcGllZFZhbHVlKSA9IHJl
dGFpblB0cihtX2lzRW5hYmxlZCA9PSBFbmFibGVkOjpUcnVlID8ga0NGQm9vbGVhblRydWUgOiBr
Q0ZCb29sZWFuRmFsc2UpLmxlYWtSZWYoKTsKICAgICAgICAgcmV0dXJuIG5vRXJyOwogICAgIH0K
IApAQCAtMjMyLDYgKzIyMiwxNSBAQCBPU1N0YXR1cyBUcmFja1JlYWRlcjo6Y29weVByb3BlcnR5
KENGU3RyaW5nUmVmIGtleSwgQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCB2bwogICAgIH0pOwog
CiAgICAgYXV0byYgc2FtcGxlTWFwID0gbV9zYW1wbGVTdG9yYWdlLT5zYW1wbGVNYXA7CisKKyAg
ICBpZiAoQ0ZFcXVhbChrZXksIFBBTDo6Z2V0X01lZGlhVG9vbGJveF9rTVRQbHVnaW5UcmFja1Jl
YWRlclByb3BlcnR5X0VuYWJsZWQoKSkpIHsKKyAgICAgICAgaWYgKG1faXNFbmFibGVkID09IEVu
YWJsZWQ6OlVua25vd24pCisgICAgICAgICAgICBtX2lzRW5hYmxlZCA9IHNhbXBsZU1hcC5lbXB0
eSgpID8gRW5hYmxlZDo6RmFsc2UgOiBFbmFibGVkOjpUcnVlOworCisgICAgICAgICpyZWludGVy
cHJldF9jYXN0PENGQm9vbGVhblJlZio+KGNvcGllZFZhbHVlKSA9IHJldGFpblB0cihtX2lzRW5h
YmxlZCA9PSBFbmFibGVkOjpUcnVlID8ga0NGQm9vbGVhblRydWUgOiBrQ0ZCb29sZWFuRmFsc2Up
LmxlYWtSZWYoKTsKKyAgICAgICAgcmV0dXJuIG5vRXJyOworICAgIH0KKwogICAgIGlmIChzYW1w
bGVNYXAuZW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGtDTUJhc2VPYmplY3RFcnJvcl9WYWx1ZU5v
dEF2YWlsYWJsZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlh
Rm9ybWF0UmVhZGVyL1RyYWNrUmVhZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVk
aWFGb3JtYXRSZWFkZXIvVHJhY2tSZWFkZXIuaAppbmRleCA3YWIyMWUyNWMzOGE1Y2RmZmM2NWU4
MTFkY2EzMTYzNjBhNDc1MWQwLi5mNDVmMWQ1NzA2NjMyZTY2M2NmY2FmM2ZhYWFkM2Y4YTBhYTli
MzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFk
ZXIvVHJhY2tSZWFkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3Jt
YXRSZWFkZXIvVHJhY2tSZWFkZXIuaApAQCAtNTQsMjYgKzU0LDIzIEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgY29uc3RleHByIFdyYXBwZXJDbGFzcyB3cmFwcGVyQ2xhc3MoKTsKICAgICBzdGF0aWMg
Q01CYXNlQ2xhc3NJRCB3cmFwcGVyQ2xhc3NJRCgpOwogICAgIHN0YXRpYyBDb3JlTWVkaWFXcmFw
cGVkPFRyYWNrUmVhZGVyPiogdW53cmFwKENNQmFzZU9iamVjdFJlZik7Ci0KLSAgICBzdGF0aWMg
UmVmUHRyPFRyYWNrUmVhZGVyPiBjcmVhdGUoQWxsb2NhdG9yJiYsIGNvbnN0IEZvcm1hdFJlYWRl
ciYsIGNvbnN0IFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlKik7Ci0gICAgc3RhdGljIFJlZlB0
cjxUcmFja1JlYWRlcj4gY3JlYXRlKEFsbG9jYXRvciYmLCBjb25zdCBGb3JtYXRSZWFkZXImLCBj
b25zdCBXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZSopOwotICAgIHN0YXRpYyBSZWZQdHI8VHJh
Y2tSZWFkZXI+IGNyZWF0ZShBbGxvY2F0b3ImJiwgY29uc3QgRm9ybWF0UmVhZGVyJiwgY29uc3Qg
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSopOwotCiAgICAgc3RhdGljIFdURjo6V29y
a1F1ZXVlJiBzdG9yYWdlUXVldWUoKTsKIAorICAgIHN0YXRpYyBSZWZQdHI8VHJhY2tSZWFkZXI+
IGNyZWF0ZShBbGxvY2F0b3ImJiwgY29uc3QgRm9ybWF0UmVhZGVyJiwgQ01NZWRpYVR5cGUsIHVp
bnQ2NF90LCBPcHRpb25hbDxib29sPik7CisKICAgICB1aW50NjRfdCB0cmFja0lEKCkgY29uc3Qg
eyByZXR1cm4gbV90cmFja0lEOyB9CiAgICAgdm9pZCBhZGRTYW1wbGUoUmVmPFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlPiYmLCBNVFBsdWdpbkJ5dGVTb3VyY2VSZWYpOwogICAgIHZvaWQgd2FpdEZvclNh
bXBsZShGdW5jdGlvbjxib29sKFdlYkNvcmU6OlNhbXBsZU1hcCYsIGJvb2wpPiYmKSBjb25zdDsK
IAotICAgIGJvb2wgaXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0VuYWJsZWQ7IH0KLSAg
ICB2b2lkIHNldEVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1faXNFbmFibGVkID0gZW5hYmxlZDsg
fQorICAgIHZvaWQgc2V0RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9pc0VuYWJsZWQgPSBlbmFi
bGVkID8gRW5hYmxlZDo6VHJ1ZSA6IEVuYWJsZWQ6OkZhbHNlOyB9CisgICAgQ01NZWRpYVR5cGUg
bWVkaWFUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVR5cGU7IH0KIAogICAgIHZvaWQgZmlu
aXNoUGFyc2luZygpOwogCiBwcml2YXRlOgogICAgIHVzaW5nIENvcmVNZWRpYVdyYXBwZWQ8VHJh
Y2tSZWFkZXI+Ojp1bndyYXA7CiAKLSAgICBUcmFja1JlYWRlcihBbGxvY2F0b3ImJiwgY29uc3Qg
Rm9ybWF0UmVhZGVyJiwgQ01NZWRpYVR5cGUsIHVpbnQ2NF90KTsKKyAgICBUcmFja1JlYWRlcihB
bGxvY2F0b3ImJiwgY29uc3QgRm9ybWF0UmVhZGVyJiwgQ01NZWRpYVR5cGUsIHVpbnQ2NF90LCBP
cHRpb25hbDxib29sPik7CiAKICAgICAvLyBDTUJhc2VDbGFzcwogICAgIFN0cmluZyBkZWJ1Z0Rl
c2NyaXB0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIldlYktpdDo6VHJhY2tSZWFkZXIiX3M7
IH0KQEAgLTkzLDEwICs5MCwxMiBAQCBwcml2YXRlOgogICAgICAgICBib29sIGhhc0FsbFNhbXBs
ZXMgeyBmYWxzZSB9OwogICAgIH07CiAKKyAgICBlbnVtIEVuYWJsZWQgOiB1aW50OF90IHsgVW5r
bm93biwgRmFsc2UsIFRydWUgfTsKKwogICAgIGNvbnN0IHVpbnQ2NF90IG1fdHJhY2tJRDsKICAg
ICBjb25zdCBDTU1lZGlhVHlwZSBtX21lZGlhVHlwZTsKICAgICBjb25zdCBNZWRpYVRpbWUgbV9k
dXJhdGlvbjsKLSAgICBzdGQ6OmF0b21pYzxib29sPiBtX2lzRW5hYmxlZCB7IGZhbHNlIH07Cisg
ICAgc3RkOjphdG9taWM8RW5hYmxlZD4gbV9pc0VuYWJsZWQgeyBFbmFibGVkOjpVbmtub3duIH07
CiAgICAgbXV0YWJsZSBDb25kaXRpb24gbV9zYW1wbGVTdG9yYWdlQ29uZGl0aW9uOwogICAgIG11
dGFibGUgTG9jayBtX3NhbXBsZVN0b3JhZ2VMb2NrOwogICAgIG11dGFibGUgc3RkOjp1bmlxdWVf
cHRyPFNhbXBsZVN0b3JhZ2U+IG1fc2FtcGxlU3RvcmFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYmMzYzdmYTM2MmY4ZWYyYjg0M2FmMTZi
OThmOGUzNzc3N2M0MzIzMS4uY2M3ODNkZjk0YTVhMTJmNzEyYTE3MjA4NTZiMjQ0OGFiNDliOWZk
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTM4MzgsNiArMzgzOCw5IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3Qg
V2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgICAgICAgICBzZXR0aW5ncy5zZXRXZWJB
dXRoZW50aWNhdGlvbkVuYWJsZWQodHJ1ZSk7CiAgICAgfQogI2VuZGlmCisKKyAgICBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViTUZvcm1hdFJlYWRlckVuYWJsZWQo
KSk7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXRWb3JiaXNEZWNvZGVyRW5h
YmxlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnZvcmJpc0RlY29k
ZXJFbmFibGVkKCkpOwogfQogCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggNzFk
NGE5YTc4YWIwY2NlZDlkMDlhMmY5YjQ2NjI0MTFjMDc4NGJjNy4uYzY3NWU4YTNiYjdkZWEyNDlh
ZWM2MDg1YzQzYjVlZGU4YWQwNjViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC02OCw3ICs2OCw5IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL05TU2Nyb2xsZXJJbXBEZXRhaWxzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BlcmZvcm1h
bmNlTG9nZ2luZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5o
PgorI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvU1dDb250ZXh0TWFu
YWdlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1N5c3RlbVNvdW5kTWFuYWdlci5oPgpAQCAtMzI4LDYgKzMzMCw5IEBAIHZvaWQgV2ViUHJv
Y2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJiBwYXJhCiAgICAgcHRocmVhZF9zZXRfZml4ZWRwcmlvcml0eV9zZWxmKCk7CiAjZW5k
aWYKIAorICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2V0V2ViTUZvcm1hdFJlYWRl
ckVuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJNRm9y
bWF0UmVhZGVyRW5hYmxlZCgpKTsKKyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNl
dFZvcmJpc0RlY29kZXJFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkudm9yYmlzRGVjb2RlckVuYWJsZWQoKSk7CisKICAgICBpZiAoIXBhcmFtZXRlcnMubWVk
aWFNSU1FVHlwZXMuaXNFbXB0eSgpKQogICAgICAgICBzZXRNZWRpYU1JTUVUeXBlcyhwYXJhbWV0
ZXJzLm1lZGlhTUlNRVR5cGVzKTsKICAgICBlbHNlIHsK
</data>
<flag name="commit-queue"
          id="434693"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417060</attachid>
            <date>2021-01-05 17:13:42 -0800</date>
            <delta_ts>2021-01-05 17:32:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219961-20210105171341.patch</filename>
            <type>text/plain</type>
            <size>38157</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjRiMDk0MDA0ZmI4MjZm
ZjUwMzIxNmU3NjE3MzdiZjliNDhmZDgxZS4uZDQ5YzNjOTRmMmMxMTg1NGM5NzhiMGI4MWIwNjc3
ZDQ1YmM2NjZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTAxLTA1ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2Vi
TSBmb3JtYXQgcmVhZGVyIGRvZXNuJ3Qgd29yayB3aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5
OTYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjM5OTAxND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBBbmR5IEVzdGVzLgorCisgICAgICAgIFdvcmsgYXJvdW5kIGEgQ29yZU1lZGlhIGJ1ZyB0
aGF0IG1ha2VzIHRoZSBmb3JtYXQgcmVhZGVyIGZhaWwgdG8gbG9hZCB3aGVuIHRoZQorICAgICAg
ICBBVlVSTEFzc2V0T3V0T2ZCYW5kTUlNRVR5cGVLZXlpcyBpbmNsdWRlZCBpbiB0aGUgQVZVUkxB
c3NldCBvcHRpb25zIGRpY3Rpb25hcnkuCisgICAgICAgIEFsc28gaW5jbHVkZSBzb21lIGNsZWFu
dXA6CisgICAgICAgIC0gTW92ZSB0aGUgY29kZSB0byBjaGVjayBmb3IgV2ViTSBNSU1FIHR5cGVz
IGZyb20gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQworICAgICAgICAgIHRvIEFW
QXNzZXRNSU1FVHlwZUNhY2hlLgorICAgICAgICAtIERvbid0IHVzZSBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzIGluIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuCisgICAgICAgIC0g
UmVnaXN0ZXIgdGhlIFdlYk0gZm9ybWF0IHJlYWRlciB3aGVuIGNyZWF0aW5nIGFuIEFWVVJMQXNz
ZXQgZm9yIGEgV2ViTSB1cmwgaW5zdGVhZAorICAgICAgICAgIG9mIHdoZW4gY2hlY2tpbmcgdGhl
IE1JTUUgdHlwZS4KKyAgICAgICAgLSBDbGVhbnVwIFdlYk0gImNvZGVjcyIgcGFyYW1ldGVyIHBh
cnNpbmcuCisgICAgICAgIC0gSXQgaXMgYSBsYXllcmluZyB2aW9sYXRpb24gdG8gdXNlIFJ1bnRp
bWVTZXR0aW5ncyBmcm9tIGluc2lkZSBvZiAvcGxhdGZvcm0uCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp3ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFdlYk1G
b3JtYXRSZWFkZXJFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlcjo6dm9yYmlzRGVjb2RlckVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXRWb3JiaXNEZWNvZGVyRW5hYmxlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUcmFja1ByaXZhdGVCYXNlOjpkZWZhdWx0RW5hYmxlZCBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVk
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlNRVR5cGVDYWNoZTo6aW5pdGlhbGl6
ZUNhY2hlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
cmVnaXN0ZXJGb3JtYXRSZWFkZXJJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjp3aWxs
VXNlV2ViTUZvcm1hdFJlYWRlckZvclR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5
cGVBbmRDb2RlY3MpOgorICAgICAgICAoV2ViQ29yZTo6ZW5zdXJlRm9ybWF0UmVhZGVySXNSZWdp
c3RlcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzRm9ybWF0UmVhZGVyQXZhaWxh
YmxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BdWRpb1Ry
YWNrUHJpdmF0ZVdlYk0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVX
ZWJNOjpkZWZhdWx0RW5hYmxlZCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvQXVkaW9UcmFja1ByaXZhdGVXZWJNLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
b3VyY2VCdWZmZXJQYXJzZXJXZWJNOjp3ZWJtTUlNRVR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OmNhbkxvYWRGb3JtYXRSZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6aXNXZWJNRm9ybWF0UmVhZGVyQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVXZWJNOjpkZWZhdWx0RW5hYmxl
ZCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1By
aXZhdGVXZWJNLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlv
VXRpbGl0aWVzQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjppc1ZvcmJpc0RlY29kZXJBdmFp
bGFibGUpOgorCiAyMDIxLTAxLTA1ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNv
bnkuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb11bY3VybF0gRW5hYmxlIENVUkxTU0xPUFRfTkFU
SVZFX0NBIGZsYWcgdG8gdXNlIHN5c3RlbSdzIENBIGNlcnRzIGluc3RlYWQgb2YgY2FjZXJ0LnBl
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBhZDc1ZTdkMjM0MjQyMzA0MjE5NDYyZDVlNzFlN2RlYTllYjNhZjcwLi5i
MjY0MWE0NGY5MzRiOTZmNDk0ZjhmMmJmMmQxZjlkYTdiY2IxMzRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI5IEBACisyMDIxLTAxLTA1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViTSBmb3JtYXQgcmVhZGVyIGRvZXNuJ3Qgd29yayB3
aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5OTYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
MjM5OTAxND4KKworICAgICAgICBSZXZpZXdlZCBieSBBbmR5IEVzdGVzLgorCisgICAgICAgIE9u
bHkgZW5hYmxlIGEgV2ViTSB0cmFjayB3aGVuIHRoZSBpdCBoYXMgRmxhZ0VuYWJsZWQgZWxlbWVu
dCwgb3Igd2hlbiB3ZSBzZWUgdGhhdAorICAgICAgICBpdCBoYXMgbWVkaWEgc2FtcGxlcy4gVGhp
cyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGVyZSBhcmUgV2ViTSBmaWxlcyB3aXRoIGVtcHR5IHRy
YWNrcywKKyAgICAgICAgYW5kIENvcmVNZWRpYSB3b24ndCBwbGF5IGEgZmlsZSBpZiBhbnkgZW5h
YmxlZCB0cmFjayBkb2Vzbid0IGhhdmUgc2FtcGxlcy4KKworICAgICAgICAqIFNoYXJlZC9tYWMv
TWVkaWFGb3JtYXRSZWFkZXIvRm9ybWF0UmVhZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Rm9y
bWF0UmVhZGVyOjpkaWRQYXJzZVRyYWNrcyk6CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZv
cm1hdFJlYWRlci9UcmFja1JlYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUmVhZGVy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpUcmFja1JlYWRlcjo6VHJhY2tSZWFkZXIpOgor
ICAgICAgICAoV2ViS2l0OjpUcmFja1JlYWRlcjo6ZmluaXNoUGFyc2luZyk6CisgICAgICAgIChX
ZWJLaXQ6OlRyYWNrUmVhZGVyOjppc0VuYWJsZWQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpU
cmFja1JlYWRlcjo6Y29weVByb3BlcnR5KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9y
bWF0UmVhZGVyL1RyYWNrUmVhZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAy
MDIxLTAxLTA1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgTWFrZSBXZWJQYWdlOjpGb3JjZVJlcGFpbnQgdXNlIENvbXBsZXRpb25IYW5kbGVy
IGluc3RlYWQgb2YgVm9pZENhbGxiYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAppbmRleCAx
NzVhYWZlNjRlYWEyNjdiOGEzMjZmMGM2MWUyMDM3OGFjNjMwOWNhLi41NDdhZjUzYzJmY2Q0MTY5
Yjc3NzAyMjk4MDZiZDlhODQ5MTgyZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAg
LTM1LDYgKzM1LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIEVOQUJMRShWSURFTykg
fHwgRU5BQkxFKFdFQl9BVURJTykKIAorI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUo
TVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCitib29sIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cjo6bV93ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZDsKKyNlbmRpZgorCisjaWYgRU5BQkxFKFZPUkJJ
UykgJiYgUExBVEZPUk0oTUFDKQorYm9vbCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6Om1f
dm9yYmlzRGVjb2RlckVuYWJsZWQ7CisjZW5kaWYKKwogc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI+JiBzaGFyZWRQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXIoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OnVuaXF1ZV9wdHI8UGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyPj4gcGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOwpA
QCAtNjEwLDYgKzYxOCw0MiBAQCB2b2lkIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2V0
U2hvdWxkRGVhY3RpdmF0ZUF1ZGlvU2Vzc2lvbihib29sIGRlYWN0aXZhdAogICAgIGRlYWN0aXZh
dGVBdWRpb1Nlc3Npb24oKSA9IGRlYWN0aXZhdGU7CiB9CiAKK2Jvb2wgUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyOjp3ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpCit7CisjaWYgRU5BQkxFKE1F
RElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICByZXR1cm4g
bV93ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZDsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2Vu
ZGlmCit9CisKK3ZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXRXZWJNRm9ybWF0
UmVhZGVyRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkg
JiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICBtX3dlYk1Gb3JtYXRSZWFkZXJF
bmFibGVkID0gZW5hYmxlZDsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGVuYWJsZWQpOworI2Vu
ZGlmCit9CisKK2Jvb2wgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp2b3JiaXNEZWNvZGVy
RW5hYmxlZCgpCit7CisjaWYgRU5BQkxFKFZPUkJJUykgJiYgUExBVEZPUk0oTUFDKQorICAgIHJl
dHVybiBtX3ZvcmJpc0RlY29kZXJFbmFibGVkOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7Cisj
ZW5kaWYKK30KKwordm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFZvcmJpc0Rl
Y29kZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyNpZiBFTkFCTEUoVk9SQklTKSAmJiBQTEFU
Rk9STShNQUMpCisgICAgbV92b3JiaXNEZWNvZGVyRW5hYmxlZCA9IGVuYWJsZWQ7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShlbmFibGVkKTsKKyNlbmRpZgorfQorCiAjZWxzZSAvLyBFTkFCTEUo
VklERU8pIHx8IEVOQUJMRShXRUJfQVVESU8pCiAKIHZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25N
YW5hZ2VyOjp1cGRhdGVOb3dQbGF5aW5nSW5mb0lmTmVjZXNzYXJ5KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyLmgKaW5kZXggNzc0Y2IxY2EyNTQzMmU0NjRkYmZlMTk5NTM0YjViZWZjMGQzYTYxYy4uYWEw
ZjJjYzE5NGQxYzNiNDJhYWFlMDkxMzcxMjk3NWZkOTk0ZjFhZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyLmgKQEAgLTU4LDYgKzU4LDExIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCBzZXRTaG91bGREZWFjdGl2YXRlQXVkaW9TZXNzaW9uKGJvb2wpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBib29sIHNob3VsZERlYWN0aXZhdGVBdWRpb1Nlc3Npb24oKTsKIAor
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVk
KGJvb2wpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHdlYk1Gb3JtYXRSZWFkZXJF
bmFibGVkKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0Vm9yYmlzRGVjb2Rl
ckVuYWJsZWQoYm9vbCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgdm9yYmlzRGVj
b2RlckVuYWJsZWQoKTsKKwogICAgIHZpcnR1YWwgflBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cigpID0gZGVmYXVsdDsKIAogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVNlc3Npb25TdGF0dXNV
cGRhdGUoKSB7IH0KQEAgLTIwMSw2ICsyMDYsMTMgQEAgcHJpdmF0ZToKICAgICBXZWFrSGFzaFNl
dDxQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXVkaW9DYXB0dXJlU291cmNlPiBtX2F1ZGlvQ2FwdHVy
ZVNvdXJjZXM7CiAgICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gdXBkYXRlU2Vzc2lvblN0YXRl
UXVldWU7CiAKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JN
QVRfUkVBREVSKQorICAgIHN0YXRpYyBib29sIG1fd2ViTUZvcm1hdFJlYWRlckVuYWJsZWQ7Cisj
ZW5kaWYKKyNpZiBFTkFCTEUoVk9SQklTKSAmJiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIGJv
b2wgbV92b3JiaXNEZWNvZGVyRW5hYmxlZDsKKyNlbmRpZgorCiAjaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECiAgICAgUmVmPEFnZ3JlZ2F0ZUxvZ2dlcj4gbV9sb2dnZXI7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5j
cHAKaW5kZXggNGJkMjJmZTQzMjc4ZWI1MGRiNGY2OWI0ZWJkYzBmMWVjODA5YTVlNC4uNzExMzhk
ZjI5NGFmODliMzA1ZDEzZTgwOWQ3ZjRkMjdkOTFiNmQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAKQEAgLTM4LDYg
KzM4LDExIEBAIE9wdGlvbmFsPHVpbnQ2NF90PiBUcmFja1ByaXZhdGVCYXNlOjp0cmFja1VJRCgp
IGNvbnN0CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAorT3B0aW9uYWw8Ym9vbD4gVHJh
Y2tQcml2YXRlQmFzZTo6ZGVmYXVsdEVuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7Cit9CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogc3RhdGljIHVpbnQ2
NF90IHNfdW5pcXVlSWQgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oCmluZGV4IGY0NGVmY2JlNTEyZjQ2MTc4NWY3MTQwZWYy
N2M1OTE1YmE0YzM1ZTAuLjMwOTk2MTQyMDQ4NTVkOTk2OWQwNGM2ZjA3OTgzYzI3Nzc0ZTdmM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0
ZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZh
dGVCYXNlLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBpbnQgdHJh
Y2tJbmRleCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIE9wdGlvbmFsPHVpbnQ2
NF90PiB0cmFja1VJRCgpIGNvbnN0OworICAgIHZpcnR1YWwgT3B0aW9uYWw8Ym9vbD4gZGVmYXVs
dEVuYWJsZWQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgTWVkaWFUaW1lIHN0YXJ0VGltZVZhcmlh
bmNlKCkgY29uc3QgeyByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FW
QXNzZXRNSU1FVHlwZUNhY2hlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KaW5kZXggODcwNjYyMTQ2
NmI1OTU3ZDg1N2M4ZTZhOTdjOTFlYTYzZjQ2MDFmOS4uMzU5M2JkNDRjOTQxOThjNDU5MDA4MDRk
NzJhYWQ3ODczMmZhZTI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1J
TUVUeXBlQ2FjaGUubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBQTEFURk9STShDT0NPQSkKIAog
I2ltcG9ydCAiQ29udGVudFR5cGUuaCIKKyNpbXBvcnQgIlNvdXJjZUJ1ZmZlclBhcnNlcldlYk0u
aCIKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2ltcG9ydCA8cGFsL2Nv
Y29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CiAKQEAgLTYzLDkgKzY0LDE2IEBAIGJvb2wgQVZB
c3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVkVHlwZShjb25zdCBDb250ZW50VHlw
ZSYgdHlwZSkKIHsKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCiAgICAg
QVNTRVJUKGlzQXZhaWxhYmxlKCkpOwotICAgIHJldHVybiBbUEFMOjpnZXRBVlVSTEFzc2V0Q2xh
c3MoKSBpc1BsYXlhYmxlRXh0ZW5kZWRNSU1FVHlwZTp0eXBlLnJhdygpXTsKKyAgICBpZiAoW1BB
TDo6Z2V0QVZVUkxBc3NldENsYXNzKCkgaXNQbGF5YWJsZUV4dGVuZGVkTUlNRVR5cGU6dHlwZS5y
YXcoKV0pCisgICAgICAgIHJldHVybiB0cnVlOworCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkg
JiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICBpZiAoU291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZCh0eXBlKSA9PSBNZWRpYVBsYXllckVudW1z
OjpTdXBwb3J0c1R5cGU6OklzU3VwcG9ydGVkKQorICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRp
ZgogCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQorCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCkBAIC0xNDgsNiArMTU2LDEzIEBAIHZvaWQgQVZBc3NldE1JTUVU
eXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5z
aXRpdmVICiAgICAgZm9yIChOU1N0cmluZyogdHlwZSBpbiBbUEFMOjpnZXRBVlVSTEFzc2V0Q2xh
c3MoKSBhdWRpb3Zpc3VhbE1JTUVUeXBlc10pCiAgICAgICAgIGNhY2hlLmFkZCh0eXBlKTsKIAor
I2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIp
CisgICAgaWYgKFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzV2ViTUZvcm1hdFJlYWRlckF2YWls
YWJsZSgpKSB7CisgICAgICAgIGF1dG8gd2VibVR5cGVzID0gU291cmNlQnVmZmVyUGFyc2VyV2Vi
TTo6d2VibU1JTUVUeXBlcygpOworICAgICAgICBjYWNoZS5hZGQod2VibVR5cGVzLmJlZ2luKCks
IHdlYm1UeXBlcy5lbmQoKSk7CisgICAgfQorI2VuZGlmCisKICAgICBpZiAobV9jYWNoZVR5cGVD
YWxsYmFjaykKICAgICAgICAgbV9jYWNoZVR5cGVDYWxsYmFjayhjb3B5VG9WZWN0b3IoY2FjaGUp
KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggZDY0YTcyNTYyYTI0YzBkOGEx
ZGJiYTMwOWNlNTE1YzhjZmVjNGFlMS4uODZjYWY0NWViM2NjNTU5ZmQ2NGZkNGRiMGJkMDlkMzJj
MGM2ZWViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC01Niw3ICs1Niw2IEBACiAjaW1w
b3J0ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVRpbWVSYW5n
ZXMuaCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgotI2ltcG9ydCAiUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2ltcG9ydCAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbXBv
cnQgIlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaCIKICNpbXBvcnQgIlNoYXJlZEJ1ZmZl
ci5oIgpAQCAtMTAwLDcgKzk5LDYgQEAKICNpbXBvcnQgPHd0Zi9PU09iamVjdFB0ci5oPgogI2lt
cG9ydCA8d3RmL1VSTC5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29hLmg+Ci0jaW1w
b3J0IDx3dGYvc3BpL2Rhcndpbi9PU1ZhcmlhbnRTUEkuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KICNpbXBvcnQgPHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oPgogCkBAIC0y
NzAsNiArMjY4LDIwIEBAIHN0YXRpYyBkaXNwYXRjaF9xdWV1ZV90IGdsb2JhbFB1bGxEZWxlZ2F0
ZVF1ZXVlKCkKICAgICByZXR1cm4gZ2xvYmFsUXVldWU7CiB9CiAKK3N0YXRpYyB2b2lkIHJlZ2lz
dGVyRm9ybWF0UmVhZGVySWZOZWNlc3NhcnkoKQoreworI2lmIEVOQUJMRShNRURJQV9TT1VSQ0Up
ICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCisgICAgc3RhdGljIGRpc3BhdGNoX29u
Y2VfdCBvbmNlVG9rZW47CisgICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeeworICAgICAg
ICAvLyBMaWtlIHdlIGRvIGZvciBvdGhlciBtZWRpYSBmb3JtYXRzLCBhbGxvdyB0aGUgZm9ybWF0
IHJlYWRlciB0byBydW4gaW4gdGhlIFdlYkNvbnRlbnQgb3IgR1BVIHByb2Nlc3MKKyAgICAgICAg
Ly8gKHdoaWNoIGlzIGFscmVhZHkgYXBwcm9wcmlhdGVseSBzYW5kYm94ZWQpIHJhdGhlciB0aGFu
IGluIGEgc2VwYXJhdGUgTWVkaWFUb29sYm94IFhQQyBzZXJ2aWNlLgorICAgICAgICBSRUxFQVNF
X0FTU0VSVChpc0luR1BVUHJvY2VzcygpIHx8IGlzSW5XZWJQcm9jZXNzKCkpOworICAgICAgICBN
VFJlZ2lzdGVyUGx1Z2luRm9ybWF0UmVhZGVyQnVuZGxlRGlyZWN0b3J5KChfX2JyaWRnZSBDRlVS
TFJlZilOU0J1bmRsZS5tYWluQnVuZGxlLmJ1aWx0SW5QbHVnSW5zVVJMKTsKKyAgICAgICAgTVRQ
bHVnaW5Gb3JtYXRSZWFkZXJEaXNhYmxlU2FuZGJveGluZygpOworICAgIH0pOworI2VuZGlmCit9
CisKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OkZhY3RvcnkgZmlu
YWwgOiBwdWJsaWMgTWVkaWFQbGF5ZXJGYWN0b3J5IHsKIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5
ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRh
dGlvbjsgfTsKQEAgLTc5Miw2ICs4MDQsMTkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFVSTCYgdXJsKQogCiB9CiAK
K3N0YXRpYyBib29sIHdpbGxVc2VXZWJNRm9ybWF0UmVhZGVyRm9yVHlwZShjb25zdCBTdHJpbmcm
IHR5cGUpCit7CisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9S
TUFUX1JFQURFUikKKyAgICBpZiAoIVNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzV2ViTUZvcm1h
dFJlYWRlckF2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4g
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLCAidmlkZW8vd2VibSIpIHx8IGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UodHlwZSwgImF1ZGlvL3dlYm0iKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KHR5cGUpOworICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3QgVVJMJiB1
cmwsIFJldGFpblB0cjxOU011dGFibGVEaWN0aW9uYXJ5PiBvcHRpb25zKQogewogICAgIEFMV0FZ
U19MT0coTE9HSURFTlRJRklFUik7CkBAIC04MzMsNyArODU4LDExIEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTChjb25zdCBVUkwm
IHVybCwgUmV0CiAjZW5kaWYKIAogICAgIGF1dG8gdHlwZSA9IHBsYXllcigpLT5jb250ZW50TUlN
RVR5cGUoKTsKLSAgICBpZiAoUEFMOjpjYW5Mb2FkX0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0T3V0
T2ZCYW5kTUlNRVR5cGVLZXkoKSAmJiAhdHlwZS5pc0VtcHR5KCkgJiYgIXBsYXllcigpLT5jb250
ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21FeHRlbnNpb24oKSkgeworCisgICAgLy8gRG9uJ3Qg
YWR2ZXJ0aXNlIFdlYk0gTUlNRSB0eXBlcyBvciB0aGUgZm9ybWF0IHJlYWRlciB3b24ndCBiZSBs
b2FkZWQgdW50aWwgcmRhcjovLzcyNDA1MTI3IGlzIGZpeGVkLgorICAgIGF1dG8gd2lsbFVzZVdl
Yk1Gb3JtYXRSZWFkZXIgPSB3aWxsVXNlV2ViTUZvcm1hdFJlYWRlckZvclR5cGUodHlwZSk7CisK
KyAgICBpZiAoUEFMOjpjYW5Mb2FkX0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0T3V0T2ZCYW5kTUlN
RVR5cGVLZXkoKSAmJiAhdHlwZS5pc0VtcHR5KCkgJiYgIXBsYXllcigpLT5jb250ZW50TUlNRVR5
cGVXYXNJbmZlcnJlZEZyb21FeHRlbnNpb24oKSAmJiAhd2lsbFVzZVdlYk1Gb3JtYXRSZWFkZXIp
IHsKICAgICAgICAgYXV0byBjb2RlY3MgPSBwbGF5ZXIoKS0+Y29udGVudFR5cGVDb2RlY3MoKTsK
ICAgICAgICAgaWYgKCFjb2RlY3MuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBOU1N0cmluZyAq
dHlwZVN0cmluZyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUA7IGNvZGVjcz1cIiVA
XCIiLCAoTlNTdHJpbmcgKil0eXBlLCAoTlNTdHJpbmcgKiljb2RlY3NdOwpAQCAtODc2LDYgKzkw
NSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZB
c3NldEZvclVSTChjb25zdCBVUkwmIHVybCwgUmV0CiAgICAgICAgICAgICBbb3B0aW9ucyBzZXRP
YmplY3Q6QE5PIGZvcktleTpBVlVSTEFzc2V0VXNlc05vUGVyc2lzdGVudENhY2hlS2V5XTsKICAg
ICB9CiAKKyAgICBpZiAod2lsbFVzZVdlYk1Gb3JtYXRSZWFkZXIpCisgICAgICAgIHJlZ2lzdGVy
Rm9ybWF0UmVhZGVySWZOZWNlc3NhcnkoKTsKKwogICAgIE5TVVJMICpjb2NvYVVSTCA9IGNhbm9u
aWNhbFVSTCh1cmwpOwogICAgIG1fYXZBc3NldCA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVlVSTEFz
c2V0SW5zdGFuY2UoKSBpbml0V2l0aFVSTDpjb2NvYVVSTCBvcHRpb25zOm9wdGlvbnMuZ2V0KCld
KTsKIApAQCAtMTY2NywzOSArMTY5OSw2IEBAIHN0YXRpYyBib29sIGtleVN5c3RlbUlzU3VwcG9y
dGVkKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVE
SUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQotc3RhdGljIHZvaWQg
ZW5zdXJlRm9ybWF0UmVhZGVySXNSZWdpc3RlcmVkKCkKLXsKLSAgICBzdGF0aWMgZGlzcGF0Y2hf
b25jZV90IG9uY2VUb2tlbjsKLSAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57Ci0gICAg
ICAgIC8vIExpa2Ugd2UgZG8gZm9yIG90aGVyIG1lZGlhIGZvcm1hdHMsIGFsbG93IHRoZSBmb3Jt
YXQgcmVhZGVyIHRvIHJ1biBpbiB0aGUgV2ViQ29udGVudCBvciBHUFUgcHJvY2VzcwotICAgICAg
ICAvLyAod2hpY2ggaXMgYWxyZWFkeSBhcHByb3ByaWF0ZWx5IHNhbmRib3hlZCkgcmF0aGVyIHRo
YW4gaW4gYSBzZXBhcmF0ZSBNZWRpYVRvb2xib3ggWFBDIHNlcnZpY2UuCi0gICAgICAgIFJFTEVB
U0VfQVNTRVJUKGlzSW5HUFVQcm9jZXNzKCkgfHwgaXNJbldlYlByb2Nlc3MoKSk7Ci0gICAgICAg
IE1UUmVnaXN0ZXJQbHVnaW5Gb3JtYXRSZWFkZXJCdW5kbGVEaXJlY3RvcnkoKF9fYnJpZGdlIENG
VVJMUmVmKU5TQnVuZGxlLm1haW5CdW5kbGUuYnVpbHRJblBsdWdJbnNVUkwpOwotICAgICAgICBN
VFBsdWdpbkZvcm1hdFJlYWRlckRpc2FibGVTYW5kYm94aW5nKCk7Ci0gICAgfSk7Ci19Ci0jZW5k
aWYKLQotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9S
RUFERVIpCi1zdGF0aWMgYm9vbCBpc0Zvcm1hdFJlYWRlckF2YWlsYWJsZSgpCi17Ci0gICAgaWYg
KCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYk1Gb3JtYXRSZWFk
ZXJFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotI2lmICFVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQotICAgIC8vIEZJWE1FIChyZGFyOi8vNzIzMjA0MTkpOiBJZiBXZWJLaXQgd2Fz
IGJ1aWx0IHdpdGggYWQtaG9jIGNvZGUtc2lnbmluZywKLSAgICAvLyBDb3JlTWVkaWEgd2lsbCBv
bmx5IGxvYWQgdGhlIGZvcm1hdCByZWFkZXIgcGx1Zy1pbiB3aGVuIGEgdXNlciBkZWZhdWx0Ci0g
ICAgLy8gaXMgc2V0IG9uIEFwcGxlIGludGVybmFsIE9Tcy4gVGhhdCBtZWFucyB3ZSBjYW5ub3Qg
Y3VycmVudGx5IHN1cHBvcnQgV2ViTQotICAgIC8vIGluIHB1YmxpYyBTREsgYnVpbGRzIG9uIGN1
c3RvbWVyIE9Tcy4KLSAgICBpZiAoIW9zX3ZhcmlhbnRfYWxsb3dzX2ludGVybmFsX3NlY3VyaXR5
X3BvbGljaWVzKCJjb20uYXBwbGUuV2ViS2l0IikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSNl
bmRpZgotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0jZW5kaWYKLQogTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGVB
bmRDb2RlY3MoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykK
IHsKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAtMTcxMSwxOSArMTcxMCw2IEBAIE1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
c3VwcG9ydHNUeXBlQW5kQ29kCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6U3VwcG9ydHNU
eXBlOjpJc05vdFN1cHBvcnRlZDsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkg
JiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKLSAgICBpZiAoaXNGb3JtYXRSZWFkZXJB
dmFpbGFibGUoKSkgewotICAgICAgICBhdXRvIHN1cHBvcnRlZCA9IFNvdXJjZUJ1ZmZlclBhcnNl
cldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQocGFyYW1ldGVycy50eXBlKTsKLSAgICAgICAg
aWYgKHN1cHBvcnRlZCAhPSBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRl
ZCkgewotICAgICAgICAgICAgZW5zdXJlRm9ybWF0UmVhZGVySXNSZWdpc3RlcmVkKCk7Ci0gICAg
ICAgICAgICBpZiAoc3VwcG9ydGVkID09IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6Ok1heUJl
U3VwcG9ydGVkKQotICAgICAgICAgICAgICAgIHJldHVybiBzdXBwb3J0ZWQ7Ci0gICAgICAgICAg
ICBpZiAoY29udGVudFR5cGVNZWV0c0hhcmR3YXJlRGVjb2RlUmVxdWlyZW1lbnRzKHBhcmFtZXRl
cnMudHlwZSwgcGFyYW1ldGVycy5jb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQp
KQotICAgICAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc1N1
cHBvcnRlZDsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZgotCiAgICAgYXV0byBzdXBwb3J0ZWQg
PSBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuY2FuRGVjb2RlVHlwZShwYXJhbWV0
ZXJzLnR5cGUucmF3KCkpOwogICAgIGlmIChzdXBwb3J0ZWQgIT0gTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZTo6SXNTdXBwb3J0ZWQpCiAgICAgICAgIHJldHVybiBzdXBwb3J0ZWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BdWRpb1RyYWNrUHJp
dmF0ZVdlYk0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQXVk
aW9UcmFja1ByaXZhdGVXZWJNLmNwcAppbmRleCA3N2Q4YTM0NThkYTA1MTk5MTZiMmU1YTg2ZDlk
MWQ0N2Y1NjNhYzFkLi5mZDI2ODhhNWRkM2Q5NjlmNDMwZGMzZjhlMDI4NjU0ODJmNTMxZjZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BdWRpb1Ry
YWNrUHJpdmF0ZVdlYk0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5jcHAKQEAgLTU4LDYgKzU4LDEzIEBAIE9wdGlv
bmFsPHVpbnQ2NF90PiBBdWRpb1RyYWNrUHJpdmF0ZVdlYk06OnRyYWNrVUlEKCkgY29uc3QKICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCitPcHRpb25hbDxib29sPiBBdWRpb1RyYWNrUHJp
dmF0ZVdlYk06OmRlZmF1bHRFbmFibGVkKCkgY29uc3QKK3sKKyAgICBpZiAobV90cmFjay5pc19l
bmFibGVkLmlzX3ByZXNlbnQoKSkKKyAgICAgICAgcmV0dXJuIG1fdHJhY2suaXNfZW5hYmxlZC52
YWx1ZSgpOworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKIEF0b21TdHJpbmcgQXVkaW9U
cmFja1ByaXZhdGVXZWJNOjpsYWJlbCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fbGFiZWwuaXNOdWxs
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9B
dWRpb1RyYWNrUHJpdmF0ZVdlYk0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5oCmluZGV4IDEzMWE5ZmUwYWVkYTJhMWZmNDc4
ZjBjN2I5N2I5MzQ0ZGNiNjYwZjkuLjEyMjJjNDQ5N2UzOTlmYzk5MDVmNGNkY2Q1MzgxMDQ0ODQw
MjAyMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5oCkBAIC00Miw2ICs0Miw3IEBAIHB1
YmxpYzoKICAgICBBdG9tU3RyaW5nIGxhbmd1YWdlKCkgY29uc3QgZmluYWw7CiAgICAgaW50IHRy
YWNrSW5kZXgoKSBjb25zdCBmaW5hbDsKICAgICBPcHRpb25hbDx1aW50NjRfdD4gdHJhY2tVSUQo
KSBjb25zdCBmaW5hbDsKKyAgICBPcHRpb25hbDxib29sPiBkZWZhdWx0RW5hYmxlZCgpIGNvbnN0
IGZpbmFsOwogCiBwcml2YXRlOgogICAgIEF1ZGlvVHJhY2tQcml2YXRlV2ViTSh3ZWJtOjpUcmFj
a0VudHJ5JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAppbmRleCA1MGZjYTFk
OTA5MDllNjE1ZmE0ZTI3OTkxMGVkNzQ1OWIxYzUwZDQxLi5iYzkzZGJjZWE0MjdiNTliNTg3YWJj
NTViNjczNjA5YzQ1YTZiOTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcApA
QCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIk1lZGlhRGVzY3JpcHRpb24uaCIKICNpbmNsdWRl
ICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1
ZmZlci5oIgogI2luY2x1ZGUgIlZQOVV0aWxpdGllc0NvY29hLmgiCiAjaW5jbHVkZSAiVmlkZW9U
cmFja1ByaXZhdGVXZWJNLmgiCkBAIC00OCw2ICs0OSw3IEBACiAjaW5jbHVkZSA8d3RmL1N0ZExp
c3QuaD4KICNpbmNsdWRlIDx3dGYvY2YvVHlwZUNhc3RzQ0YuaD4KICNpbmNsdWRlIDx3dGYvZGFy
d2luL1dlYWtMaW5raW5nLmg+CisjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vT1NWYXJpYW50U1BJ
Lmg+CiAKICNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogI2luY2x1ZGUgIlZpZGVvVG9v
bGJveFNvZnRMaW5rLmgiCkBAIC00NDMsMTQgKzQ0NSw1NSBAQCBwcml2YXRlOgogICAgIHdlYm06
OlRyYWNrRW50cnkgbV90cmFjazsKIH07CiAKK2NvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNh
c2VJbnNlbnNpdGl2ZUhhc2g+JiBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjp3ZWJtTUlNRVR5cGVz
KCkKK3sKKyAgICBzdGF0aWMgYXV0byB0eXBlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChbXSB7CisK
KyAgICAgICAgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4gdHlwZXM7
CisKKyNpZiBFTkFCTEUoVlA5KQorICAgICAgICB0eXBlcy5hZGQoInZpZGVvL3dlYm0iKTsKKyNl
bmRpZgorI2lmIEVOQUJMRShWT1JCSVMpIHx8IEVOQUJMRShPUFVTKQorICAgICAgICB0eXBlcy5h
ZGQoImF1ZGlvL3dlYm0iKTsKKyNlbmRpZgorCisgICAgICAgIHJldHVybiB0eXBlczsKKyAgICB9
KCkpOworCisgICAgcmV0dXJuIHR5cGVzOworfQorCitzdGF0aWMgYm9vbCBjYW5Mb2FkRm9ybWF0
UmVhZGVyKCkKK3sKKyNpZiAhSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICByZXR1
cm4gZmFsc2U7CisjZWxpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgIHJldHVybiB0cnVl
OworI2Vsc2UKKyAgICAvLyBGSVhNRSAocmRhcjovLzcyMzIwNDE5KTogSWYgV2ViS2l0IHdhcyBi
dWlsdCB3aXRoIGFkLWhvYyBjb2RlLXNpZ25pbmcsCisgICAgLy8gQ29yZU1lZGlhIHdpbGwgb25s
eSBsb2FkIHRoZSBmb3JtYXQgcmVhZGVyIHBsdWctaW4gd2hlbiBhIHVzZXIgZGVmYXVsdAorICAg
IC8vIGlzIHNldCBvbiBBcHBsZSBpbnRlcm5hbCBPU3MuIFRoYXQgbWVhbnMgd2UgY2Fubm90IGN1
cnJlbnRseSBzdXBwb3J0IFdlYk0KKyAgICAvLyBpbiBwdWJsaWMgU0RLIGJ1aWxkcyBvbiBjdXN0
b21lciBPU3MuCisgICAgc3RhdGljIGJvb2wgYWxsb3dzSW50ZXJuYWxTZWN1cml0eVBvbGljaWVz
ID0gb3NfdmFyaWFudF9hbGxvd3NfaW50ZXJuYWxfc2VjdXJpdHlfcG9saWNpZXMoImNvbS5hcHBs
ZS5XZWJLaXQiKTsKKyAgICByZXR1cm4gYWxsb3dzSW50ZXJuYWxTZWN1cml0eVBvbGljaWVzOwor
I2VuZGlmIC8vICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorfQorCitib29sIFNvdXJjZUJ1ZmZl
clBhcnNlcldlYk06OmlzV2ViTUZvcm1hdFJlYWRlckF2YWlsYWJsZSgpCit7CisgICAgcmV0dXJu
IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6d2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKSAm
JiBjYW5Mb2FkRm9ybWF0UmVhZGVyKCkgJiYgaXNXZWJtUGFyc2VyQXZhaWxhYmxlKCk7Cit9CisK
IE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpp
c0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBlKQogewogI2lmIEVO
QUJMRShWUDkpIHx8IEVOQUJMRShWT1JCSVMpIHx8IEVOQUJMRShPUFVTKQogICAgIGlmICghaXNX
ZWJtUGFyc2VyQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpT
dXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCi0gICAgYm9vbCBpc0F1ZGlvQ29udGFpbmVy
VHlwZSA9IFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLmNvbnRhaW5lclR5cGUoKSwg
ImF1ZGlvL3dlYm0iKTsKLSAgICBib29sIGlzVmlkZW9Db250YWluZXJUeXBlID0gV1RGOjplcXVh
bElnbm9yaW5nQVNDSUlDYXNlKHR5cGUuY29udGFpbmVyVHlwZSgpLCAidmlkZW8vd2VibSIpOwor
ICAgIGF1dG8gY29udGFpbmVyVHlwZSA9IHR5cGUuY29udGFpbmVyVHlwZSgpOworICAgIGJvb2wg
aXNBdWRpb0NvbnRhaW5lclR5cGUgPSBXVEY6OmVxdWFsSWdub3JpbmdBU0NJSUNhc2UoY29udGFp
bmVyVHlwZSwgImF1ZGlvL3dlYm0iKTsKKyAgICBib29sIGlzVmlkZW9Db250YWluZXJUeXBlID0g
V1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlKGNvbnRhaW5lclR5cGUsICJ2aWRlby93ZWJtIik7
CiAgICAgaWYgKCFpc0F1ZGlvQ29udGFpbmVyVHlwZSAmJiAhaXNWaWRlb0NvbnRhaW5lclR5cGUp
CiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3Vw
cG9ydGVkOwogICAgIApAQCAtNDczLDIyICs1MTYsMTggQEAgTWVkaWFQbGF5ZXJFbnVtczo6U3Vw
cG9ydHNUeXBlIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQo
Y28KICAgICBpZiAoIWlzQW55Q29kZWNBdmFpbGFibGUpCiAgICAgICAgIHJldHVybiBNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCi0gICAgU3RyaW5nIGNv
ZGVjc1BhcmFtZXRlciA9IHR5cGUucGFyYW1ldGVyKENvbnRlbnRUeXBlOjpjb2RlY3NQYXJhbWV0
ZXIoKSk7Ci0gICAgaWYgKCFjb2RlY3NQYXJhbWV0ZXIpCi0gICAgICAgIHJldHVybiBNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGU6Ok1heUJlU3VwcG9ydGVkOwotCi0gICAgYXV0byBzcGxp
dFJlc3VsdHMgPSBTdHJpbmdWaWV3KGNvZGVjc1BhcmFtZXRlcikuc3BsaXQoJywnKTsKLSAgICBp
ZiAoc3BsaXRSZXN1bHRzLmJlZ2luKCkgPT0gc3BsaXRSZXN1bHRzLmVuZCgpKQorICAgIGF1dG8g
Y29kZWNzID0gdHlwZS5jb2RlY3MoKTsKKyAgICBpZiAoY29kZWNzLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6TWF5QmVTdXBwb3J0ZWQ7
CiAKLSAgICBmb3IgKGF1dG8gc3BsaXQgOiBzcGxpdFJlc3VsdHMpIHsKKyAgICBmb3IgKGF1dG8m
IGNvZGVjIDogY29kZWNzKSB7CiAjaWYgRU5BQkxFKFZQOSkKLSAgICAgICAgaWYgKHNwbGl0LnN0
YXJ0c1dpdGgoInZwMDkiKSB8fCBzcGxpdC5zdGFydHNXaXRoKCJ2cDA4IikgfHwgZXF1YWwoc3Bs
aXQsICJ2cDgiKSB8fCBlcXVhbChzcGxpdCwgInZwOSIpKSB7CisgICAgICAgIGlmIChjb2RlYy5z
dGFydHNXaXRoKCJ2cDA5IikgfHwgY29kZWMuc3RhcnRzV2l0aCgidnAwOCIpIHx8IGVxdWFsKGNv
ZGVjLCAidnA4IikgfHwgZXF1YWwoY29kZWMsICJ2cDkiKSkgewogCiAgICAgICAgICAgICBpZiAo
IWlzVlA5RGVjb2RlckF2YWlsYWJsZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCi0gICAgICAgICAgICBh
dXRvIGNvZGVjUGFyYW1ldGVycyA9IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoc3BsaXQpOworICAg
ICAgICAgICAgYXV0byBjb2RlY1BhcmFtZXRlcnMgPSBwYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKGNv
ZGVjKTsKICAgICAgICAgICAgIGlmICghY29kZWNQYXJhbWV0ZXJzKQogICAgICAgICAgICAgICAg
IHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwog
CkBAIC01MDAsNyArNTM5LDcgQEAgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIFNvdXJj
ZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY28KICNlbmRpZiAvLyBF
TkFCTEUoVlA5KQogCiAjaWYgRU5BQkxFKFZPUkJJUykKLSAgICAgICAgaWYgKHNwbGl0ID09ICJ2
b3JiaXMiKSB7CisgICAgICAgIGlmIChjb2RlYyA9PSAidm9yYmlzIikgewogICAgICAgICAgICAg
aWYgKCFpc1ZvcmJpc0RlY29kZXJBdmFpbGFibGUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
TWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKIApAQCAtNTA5
LDcgKzU0OCw3IEBAIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvCiAjZW5kaWYgLy8gRU5BQkxFKFZP
UkJJUykKIAogI2lmIEVOQUJMRShPUFVTKQotICAgICAgICBpZiAoc3BsaXQgPT0gIm9wdXMiKSB7
CisgICAgICAgIGlmIChjb2RlYyA9PSAib3B1cyIpIHsKICAgICAgICAgICAgIGlmICghaXNPcHVz
RGVjb2RlckF2YWlsYWJsZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVu
dW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJz
ZXJXZWJNLmgKaW5kZXggZWNhMDNjMjA0ZmExMDA3ZTVjMjUzYjUzYTJmZjRhNTJiNWNiMTc5Yy4u
YjNlMTBkYTAzZjA5OTM4NzAxNGVkZjAxNjY1NWM0MDY2NDMyNjIxMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2Vi
TS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1
ZmZlclBhcnNlcldlYk0uaApAQCAtNjAsNyArNjAsOSBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBT
b3VyY2VCdWZmZXJQYXJzZXJXZWJNIDogcHVibGljIFNvdXJjZUJ1ZmZlclBhcnNlciwgcHJpdmF0
ZQogcHVibGljOgogICAgIGNsYXNzIFN0cmVhbWluZ1ZlY3RvclJlYWRlcjsKIAorICAgIHN0YXRp
YyBib29sIGlzV2ViTUZvcm1hdFJlYWRlckF2YWlsYWJsZSgpOwogICAgIHN0YXRpYyBNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGUgaXNDb250ZW50VHlwZVN1cHBvcnRlZChjb25zdCBDb250
ZW50VHlwZSYpOworICAgIHN0YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5z
ZW5zaXRpdmVIYXNoPiYgd2VibU1JTUVUeXBlcygpOwogICAgIHN0YXRpYyBSZWZQdHI8U291cmNl
QnVmZmVyUGFyc2VyV2ViTT4gY3JlYXRlKGNvbnN0IENvbnRlbnRUeXBlJik7CiAKICAgICBTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmNwcAppbmRl
eCBlODhiOWU1NTU1ZDRmYTMxODAzZmQyOWY2OGVhYzk1ZTZmNzczMzU4Li40ODg2NTQ4NDIyNzRl
NWE5YTg5ZTkzYmY1Y2MzNTg5ZWZlZTlmMjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2Vi
TS5jcHAKQEAgLTU4LDYgKzU4LDEzIEBAIE9wdGlvbmFsPHVpbnQ2NF90PiBWaWRlb1RyYWNrUHJp
dmF0ZVdlYk06OnRyYWNrVUlEKCkgY29uc3QKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQog
CitPcHRpb25hbDxib29sPiBWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OmRlZmF1bHRFbmFibGVkKCkg
Y29uc3QKK3sKKyAgICBpZiAobV90cmFjay5pc19lbmFibGVkLmlzX3ByZXNlbnQoKSkKKyAgICAg
ICAgcmV0dXJuIG1fdHJhY2suaXNfZW5hYmxlZC52YWx1ZSgpOworICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7Cit9CisKIEF0b21TdHJpbmcgVmlkZW9UcmFja1ByaXZhdGVXZWJNOjpsYWJlbCgpIGNv
bnN0CiB7CiAgICAgaWYgKG1fbGFiZWwuaXNOdWxsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2Vi
TS5oCmluZGV4IDEyMzFjYmUzNTllMzA3M2ZkZmE2ZmJlMGU2MmUwNTFmMGIyOTFkNTYuLjMyMGY4
ODhjMTAxZmE2ZjIyMzdjM2FlZTEwNDczM2U4Y2VlMWIxMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2
YXRlV2ViTS5oCkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICBBdG9tU3RyaW5nIGxhbmd1
YWdlKCkgY29uc3QgZmluYWw7CiAgICAgaW50IHRyYWNrSW5kZXgoKSBjb25zdCBmaW5hbDsKICAg
ICBPcHRpb25hbDx1aW50NjRfdD4gdHJhY2tVSUQoKSBjb25zdCBmaW5hbDsKKyAgICBPcHRpb25h
bDxib29sPiBkZWZhdWx0RW5hYmxlZCgpIGNvbnN0IGZpbmFsOwogCiBwcml2YXRlOgogICAgIFZp
ZGVvVHJhY2tQcml2YXRlV2ViTSh3ZWJtOjpUcmFja0VudHJ5JiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29j
b2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9V
dGlsaXRpZXNDb2NvYS5tbQppbmRleCA0MTM0NzhmN2ZhMmJhM2I1ZTUzNThiMmEzYTgwOTc3OGJi
ZTllYjUwLi5kZWYxNDFmMzYxNzI1MWQ3NTY0MTNmYmE1NmUyM2I2MjA1Mzc2ZjYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9VdGls
aXRpZXNDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJNQXVkaW9VdGlsaXRpZXNDb2NvYS5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCAi
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0
ICJNZWRpYVV0aWxpdGllcy5oIgotI2ltcG9ydCAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgor
I2ltcG9ydCAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW1wb3J0IDxBdWRpb1Rv
b2xib3gvQXVkaW9Db21wb25lbnQuaD4KICNpbXBvcnQgPEF1ZGlvVG9vbGJveC9BdWRpb0Zvcm1h
dC5oPgogI2ltcG9ydCA8Q29yZU1lZGlhL0NNRm9ybWF0RGVzY3JpcHRpb24uaD4KQEAgLTE3Nyw3
ICsxNzcsNyBAQCBib29sIGlzVm9yYmlzRGVjb2RlckF2YWlsYWJsZSgpCiAgICAgc3RhdGljIGJv
b2wgYXZhaWxhYmxlOwogCiAjaWYgRU5BQkxFKFZPUkJJUykgJiYgUExBVEZPUk0oTUFDKQotICAg
IGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS52b3JiaXNEZWNv
ZGVyRW5hYmxlZCgpKQorICAgIGlmICghUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp2b3Ji
aXNEZWNvZGVyRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzdGF0aWMg
ZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9Gb3JtYXRSZWFkZXIuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0Zvcm1hdFJlYWRlci5jcHAKaW5kZXggZWY0
OWZjYTk2NjIyNWFjMzdiNTgzZTY0NjdkOGY1ZDE5MjRhYmI1Mi4uZjRkYmJiODkzOTFkYjMxOGY4
YjYzZmRjMjRhMThkZGUzNTgyMTI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL0Zvcm1hdFJlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0Zvcm1hdFJlYWRlci5jcHAKQEAgLTE0NCwy
NiArMTQ0LDI5IEBAIHZvaWQgRm9ybWF0UmVhZGVyOjpkaWRQYXJzZVRyYWNrcyhTb3VyY2VCdWZm
ZXJQcml2YXRlQ2xpZW50OjpJbml0aWFsaXphdGlvblNlZ21lCiAgICAgbV9kdXJhdGlvbiA9IFdU
Rk1vdmUoc2VnbWVudC5kdXJhdGlvbik7CiAKICAgICBmb3IgKGF1dG8mIHZpZGVvVHJhY2sgOiBz
ZWdtZW50LnZpZGVvVHJhY2tzKSB7Ci0gICAgICAgIGlmIChhdXRvIHRyYWNrUmVhZGVyID0gVHJh
Y2tSZWFkZXI6OmNyZWF0ZShhbGxvY2F0b3IoKSwgKnRoaXMsIHZpZGVvVHJhY2sudHJhY2suZ2V0
KCkpKQotICAgICAgICAgICAgbV90cmFja1JlYWRlcnMuYXBwZW5kKHRyYWNrUmVhZGVyLnJlbGVh
c2VOb25OdWxsKCkpOwotICAgICAgICAvLyBGSVhNRTogSG93IGRvIHdlIGtub3cgd2hpY2ggdHJh
Y2tzIHNob3VsZCBiZSBlbmFibGVkPwotICAgICAgICBpZiAobV90cmFja1JlYWRlcnMuc2l6ZSgp
ID09IDEpCi0gICAgICAgICAgICBtX3RyYWNrUmVhZGVyc1swXS0+c2V0RW5hYmxlZCh0cnVlKTsK
KyAgICAgICAgYXV0byB0cmFjayA9IHZpZGVvVHJhY2sudHJhY2suZ2V0KCk7CisgICAgICAgIGF1
dG8gdHJhY2tSZWFkZXIgPSBUcmFja1JlYWRlcjo6Y3JlYXRlKGFsbG9jYXRvcigpLCAqdGhpcywg
a0NNTWVkaWFUeXBlX1ZpZGVvLCAqdHJhY2stPnRyYWNrVUlEKCksIHRyYWNrLT5kZWZhdWx0RW5h
YmxlZCgpKTsKKyAgICAgICAgaWYgKCF0cmFja1JlYWRlcikKKyAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgIG1fdHJhY2tSZWFkZXJzLmFwcGVuZCh0cmFja1JlYWRlci5yZWxlYXNlTm9u
TnVsbCgpKTsKICAgICB9CiAKICAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2sgOiBzZWdtZW50LmF1
ZGlvVHJhY2tzKSB7Ci0gICAgICAgIGlmIChhdXRvIHRyYWNrUmVhZGVyID0gVHJhY2tSZWFkZXI6
OmNyZWF0ZShhbGxvY2F0b3IoKSwgKnRoaXMsIGF1ZGlvVHJhY2sudHJhY2suZ2V0KCkpKQotICAg
ICAgICAgICAgbV90cmFja1JlYWRlcnMuYXBwZW5kKHRyYWNrUmVhZGVyLnJlbGVhc2VOb25OdWxs
KCkpOwotICAgICAgICAvLyBGSVhNRTogSG93IGRvIHdlIGtub3cgd2hpY2ggdHJhY2tzIHNob3Vs
ZCBiZSBlbmFibGVkPwotICAgICAgICBpZiAobV90cmFja1JlYWRlcnMuc2l6ZSgpID09IHNlZ21l
bnQudmlkZW9UcmFja3Muc2l6ZSgpICsgMSkKLSAgICAgICAgICAgIG1fdHJhY2tSZWFkZXJzW3Nl
Z21lbnQudmlkZW9UcmFja3Muc2l6ZSgpXS0+c2V0RW5hYmxlZCh0cnVlKTsKKyAgICAgICAgYXV0
byB0cmFjayA9IGF1ZGlvVHJhY2sudHJhY2suZ2V0KCk7CisgICAgICAgIGF1dG8gdHJhY2tSZWFk
ZXIgPSBUcmFja1JlYWRlcjo6Y3JlYXRlKGFsbG9jYXRvcigpLCAqdGhpcywga0NNTWVkaWFUeXBl
X0F1ZGlvLCAqdHJhY2stPnRyYWNrVUlEKCksIHRyYWNrLT5kZWZhdWx0RW5hYmxlZCgpKTsKKyAg
ICAgICAgaWYgKCF0cmFja1JlYWRlcikKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
IG1fdHJhY2tSZWFkZXJzLmFwcGVuZCh0cmFja1JlYWRlci5yZWxlYXNlTm9uTnVsbCgpKTsKICAg
ICB9CiAKICAgICBmb3IgKGF1dG8mIHRleHRUcmFjayA6IHNlZ21lbnQudGV4dFRyYWNrcykgewot
ICAgICAgICBpZiAoYXV0byB0cmFja1JlYWRlciA9IFRyYWNrUmVhZGVyOjpjcmVhdGUoYWxsb2Nh
dG9yKCksICp0aGlzLCB0ZXh0VHJhY2sudHJhY2suZ2V0KCkpKQorICAgICAgICBhdXRvIHRyYWNr
ID0gdGV4dFRyYWNrLnRyYWNrLmdldCgpOworICAgICAgICBpZiAoYXV0byB0cmFja1JlYWRlciA9
IFRyYWNrUmVhZGVyOjpjcmVhdGUoYWxsb2NhdG9yKCksICp0aGlzLCBrQ01NZWRpYVR5cGVfVGV4
dCwgKnRyYWNrLT50cmFja1VJRCgpLCB0cmFjay0+ZGVmYXVsdEVuYWJsZWQoKSkpCiAgICAgICAg
ICAgICBtX3RyYWNrUmVhZGVycy5hcHBlbmQodHJhY2tSZWFkZXIucmVsZWFzZU5vbk51bGwoKSk7
CiAgICAgfQotICAgIAorCiAgICAgbV9wYXJzZVRyYWNrc0NvbmRpdGlvbi5ub3RpZnlBbGwoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVh
ZGVyL1RyYWNrUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1h
dFJlYWRlci9UcmFja1JlYWRlci5jcHAKaW5kZXggNDg2NWE4MDg5NTNkYmYyNTcwOGJlNDFhNDBi
OGNmMjQyZTdiZmQ4NC4uY2RkZmRmNzU3NWU1MTAxYmRkYzcxMjdiZjE3YmI4ZDFmNzkwMTNmNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL1Ry
YWNrUmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvVHJhY2tSZWFkZXIuY3BwCkBAIC0xNDQsMjUgKzE0NCw5IEBAIENvcmVNZWRpYVdyYXBw
ZWQ8VHJhY2tSZWFkZXI+KiBUcmFja1JlYWRlcjo6dW53cmFwKENNQmFzZU9iamVjdFJlZiBvYmpl
Y3QpCiAgICAgcmV0dXJuIHVud3JhcChjaGVja2VkX2NmX2Nhc3Q8V3JhcHBlclJlZj4ob2JqZWN0
KSk7CiB9CiAKLVJlZlB0cjxUcmFja1JlYWRlcj4gVHJhY2tSZWFkZXI6OmNyZWF0ZShBbGxvY2F0
b3ImJiBhbGxvY2F0b3IsIGNvbnN0IEZvcm1hdFJlYWRlciYgZm9ybWF0UmVhZGVyLCBjb25zdCBW
aWRlb1RyYWNrUHJpdmF0ZSogdHJhY2spCitSZWZQdHI8VHJhY2tSZWFkZXI+IFRyYWNrUmVhZGVy
OjpjcmVhdGUoQWxsb2NhdG9yJiYgYWxsb2NhdG9yLCBjb25zdCBGb3JtYXRSZWFkZXImIGZvcm1h
dFJlYWRlciwgQ01NZWRpYVR5cGUgbWVkaWFUeXBlLCB1aW50NjRfdCB0cmFja0lELCBPcHRpb25h
bDxib29sPiBlbmFibGVkKQogewotICAgIGlmICghdHJhY2spCi0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgKGFsbG9jYXRvcikgVHJhY2tSZWFkZXIoV1RG
TW92ZShhbGxvY2F0b3IpLCBmb3JtYXRSZWFkZXIsIGtDTU1lZGlhVHlwZV9WaWRlbywgKnRyYWNr
LT50cmFja1VJRCgpKSk7Ci19Ci0KLVJlZlB0cjxUcmFja1JlYWRlcj4gVHJhY2tSZWFkZXI6OmNy
ZWF0ZShBbGxvY2F0b3ImJiBhbGxvY2F0b3IsIGNvbnN0IEZvcm1hdFJlYWRlciYgZm9ybWF0UmVh
ZGVyLCBjb25zdCBBdWRpb1RyYWNrUHJpdmF0ZSogdHJhY2spCi17Ci0gICAgaWYgKCF0cmFjaykK
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyAoYWxsb2Nh
dG9yKSBUcmFja1JlYWRlcihXVEZNb3ZlKGFsbG9jYXRvciksIGZvcm1hdFJlYWRlciwga0NNTWVk
aWFUeXBlX0F1ZGlvLCAqdHJhY2stPnRyYWNrVUlEKCkpKTsKLX0KLQotUmVmUHRyPFRyYWNrUmVh
ZGVyPiBUcmFja1JlYWRlcjo6Y3JlYXRlKEFsbG9jYXRvciYmIGFsbG9jYXRvciwgY29uc3QgRm9y
bWF0UmVhZGVyJiBmb3JtYXRSZWFkZXIsIGNvbnN0IEluYmFuZFRleHRUcmFja1ByaXZhdGUqIHRy
YWNrKQotewotICAgIGlmICghdHJhY2spCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgKGFsbG9jYXRvcikgVHJhY2tSZWFkZXIoV1RGTW92ZShhbGxvY2F0
b3IpLCBmb3JtYXRSZWFkZXIsIGtDTU1lZGlhVHlwZV9UZXh0LCAqdHJhY2stPnRyYWNrVUlEKCkp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IChhbGxvY2F0b3IpIFRyYWNrUmVhZGVyKFdURk1v
dmUoYWxsb2NhdG9yKSwgZm9ybWF0UmVhZGVyLCBtZWRpYVR5cGUsIHRyYWNrSUQsIGVuYWJsZWQp
KTsKIH0KIAogV29ya1F1ZXVlJiBUcmFja1JlYWRlcjo6c3RvcmFnZVF1ZXVlKCkKQEAgLTE3MSwx
MyArMTU1LDE2IEBAIFdvcmtRdWV1ZSYgVHJhY2tSZWFkZXI6OnN0b3JhZ2VRdWV1ZSgpCiAgICAg
cmV0dXJuIHF1ZXVlOwogfQogCi1UcmFja1JlYWRlcjo6VHJhY2tSZWFkZXIoQWxsb2NhdG9yJiYg
YWxsb2NhdG9yLCBjb25zdCBGb3JtYXRSZWFkZXImIGZvcm1hdFJlYWRlciwgQ01NZWRpYVR5cGUg
bWVkaWFUeXBlLCB1aW50NjRfdCB0cmFja0lEKQorVHJhY2tSZWFkZXI6OlRyYWNrUmVhZGVyKEFs
bG9jYXRvciYmIGFsbG9jYXRvciwgY29uc3QgRm9ybWF0UmVhZGVyJiBmb3JtYXRSZWFkZXIsIENN
TWVkaWFUeXBlIG1lZGlhVHlwZSwgdWludDY0X3QgdHJhY2tJRCwgT3B0aW9uYWw8Ym9vbD4gZW5h
YmxlZCkKICAgICA6IENvcmVNZWRpYVdyYXBwZWQoV1RGTW92ZShhbGxvY2F0b3IpKQogICAgICwg
bV90cmFja0lEKHRyYWNrSUQpCiAgICAgLCBtX21lZGlhVHlwZShtZWRpYVR5cGUpCiAgICAgLCBt
X2R1cmF0aW9uKGZvcm1hdFJlYWRlci5kdXJhdGlvbigpKQogewogICAgIEFTU0VSVCghaXNNYWlu
VGhyZWFkKCkpOworCisgICAgaWYgKGVuYWJsZWQpCisgICAgICAgIG1faXNFbmFibGVkID0gZW5h
YmxlZC52YWx1ZSgpID8gRW5hYmxlZDo6VHJ1ZSA6IEVuYWJsZWQ6OkZhbHNlOwogfQogCiB2b2lk
IFRyYWNrUmVhZGVyOjphZGRTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgTVRQbHVn
aW5CeXRlU291cmNlUmVmIGJ5dGVTb3VyY2UpCkBAIC0yMTYsMTMgKzIwMywxNiBAQCB2b2lkIFRy
YWNrUmVhZGVyOjpmaW5pc2hQYXJzaW5nKCkKICAgICBpZiAoIW1fc2FtcGxlU3RvcmFnZSkKICAg
ICAgICAgbV9zYW1wbGVTdG9yYWdlID0gbWFrZVVuaXF1ZTxTYW1wbGVTdG9yYWdlPigpOwogICAg
IG1fc2FtcGxlU3RvcmFnZS0+aGFzQWxsU2FtcGxlcyA9IHRydWU7CisgICAgaWYgKG1faXNFbmFi
bGVkID09IEVuYWJsZWQ6OlVua25vd24pCisgICAgICAgIG1faXNFbmFibGVkID0gbV9zYW1wbGVT
dG9yYWdlLT5zYW1wbGVNYXAuZW1wdHkoKSA/IEVuYWJsZWQ6OkZhbHNlIDogRW5hYmxlZDo6VHJ1
ZTsKICAgICBtX3NhbXBsZVN0b3JhZ2VDb25kaXRpb24ubm90aWZ5QWxsKCk7CiB9CiAKIE9TU3Rh
dHVzIFRyYWNrUmVhZGVyOjpjb3B5UHJvcGVydHkoQ0ZTdHJpbmdSZWYga2V5LCBDRkFsbG9jYXRv
clJlZiBhbGxvY2F0b3IsIHZvaWQqIGNvcGllZFZhbHVlKQogewotICAgIGlmIChDRkVxdWFsKGtl
eSwgUEFMOjpnZXRfTWVkaWFUb29sYm94X2tNVFBsdWdpblRyYWNrUmVhZGVyUHJvcGVydHlfRW5h
YmxlZCgpKSkgewotICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDxDRkJvb2xlYW5SZWYqPihjb3Bp
ZWRWYWx1ZSkgPSByZXRhaW5QdHIobV9pc0VuYWJsZWQgPyBrQ0ZCb29sZWFuVHJ1ZSA6IGtDRkJv
b2xlYW5GYWxzZSkubGVha1JlZigpOworICAgIC8vIERvbid0IGJsb2NrIHdhaXRpbmcgZm9yIG1l
ZGlhIGlmIHRoZSB3ZSBrbm93IHRoZSBlbmFibGVkIHN0YXRlLgorICAgIGlmIChDRkVxdWFsKGtl
eSwgUEFMOjpnZXRfTWVkaWFUb29sYm94X2tNVFBsdWdpblRyYWNrUmVhZGVyUHJvcGVydHlfRW5h
YmxlZCgpKSAmJiBtX2lzRW5hYmxlZCAhPSBFbmFibGVkOjpVbmtub3duKSB7CisgICAgICAgICpy
ZWludGVycHJldF9jYXN0PENGQm9vbGVhblJlZio+KGNvcGllZFZhbHVlKSA9IHJldGFpblB0ciht
X2lzRW5hYmxlZCA9PSBFbmFibGVkOjpUcnVlID8ga0NGQm9vbGVhblRydWUgOiBrQ0ZCb29sZWFu
RmFsc2UpLmxlYWtSZWYoKTsKICAgICAgICAgcmV0dXJuIG5vRXJyOwogICAgIH0KIApAQCAtMjMy
LDYgKzIyMiwxNSBAQCBPU1N0YXR1cyBUcmFja1JlYWRlcjo6Y29weVByb3BlcnR5KENGU3RyaW5n
UmVmIGtleSwgQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCB2bwogICAgIH0pOwogCiAgICAgYXV0
byYgc2FtcGxlTWFwID0gbV9zYW1wbGVTdG9yYWdlLT5zYW1wbGVNYXA7CisKKyAgICBpZiAoQ0ZF
cXVhbChrZXksIFBBTDo6Z2V0X01lZGlhVG9vbGJveF9rTVRQbHVnaW5UcmFja1JlYWRlclByb3Bl
cnR5X0VuYWJsZWQoKSkpIHsKKyAgICAgICAgaWYgKG1faXNFbmFibGVkID09IEVuYWJsZWQ6OlVu
a25vd24pCisgICAgICAgICAgICBtX2lzRW5hYmxlZCA9IHNhbXBsZU1hcC5lbXB0eSgpID8gRW5h
YmxlZDo6RmFsc2UgOiBFbmFibGVkOjpUcnVlOworCisgICAgICAgICpyZWludGVycHJldF9jYXN0
PENGQm9vbGVhblJlZio+KGNvcGllZFZhbHVlKSA9IHJldGFpblB0cihtX2lzRW5hYmxlZCA9PSBF
bmFibGVkOjpUcnVlID8ga0NGQm9vbGVhblRydWUgOiBrQ0ZCb29sZWFuRmFsc2UpLmxlYWtSZWYo
KTsKKyAgICAgICAgcmV0dXJuIG5vRXJyOworICAgIH0KKwogICAgIGlmIChzYW1wbGVNYXAuZW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIGtDTUJhc2VPYmplY3RFcnJvcl9WYWx1ZU5vdEF2YWlsYWJs
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVh
ZGVyL1RyYWNrUmVhZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvVHJhY2tSZWFkZXIuaAppbmRleCA3YWIyMWUyNWMzOGE1Y2RmZmM2NWU4MTFkY2EzMTYz
NjBhNDc1MWQwLi5mNDVmMWQ1NzA2NjMyZTY2M2NmY2FmM2ZhYWFkM2Y4YTBhYTliMzY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tS
ZWFkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIv
VHJhY2tSZWFkZXIuaApAQCAtNTQsMjYgKzU0LDIzIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29u
c3RleHByIFdyYXBwZXJDbGFzcyB3cmFwcGVyQ2xhc3MoKTsKICAgICBzdGF0aWMgQ01CYXNlQ2xh
c3NJRCB3cmFwcGVyQ2xhc3NJRCgpOwogICAgIHN0YXRpYyBDb3JlTWVkaWFXcmFwcGVkPFRyYWNr
UmVhZGVyPiogdW53cmFwKENNQmFzZU9iamVjdFJlZik7Ci0KLSAgICBzdGF0aWMgUmVmUHRyPFRy
YWNrUmVhZGVyPiBjcmVhdGUoQWxsb2NhdG9yJiYsIGNvbnN0IEZvcm1hdFJlYWRlciYsIGNvbnN0
IFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlKik7Ci0gICAgc3RhdGljIFJlZlB0cjxUcmFja1Jl
YWRlcj4gY3JlYXRlKEFsbG9jYXRvciYmLCBjb25zdCBGb3JtYXRSZWFkZXImLCBjb25zdCBXZWJD
b3JlOjpBdWRpb1RyYWNrUHJpdmF0ZSopOwotICAgIHN0YXRpYyBSZWZQdHI8VHJhY2tSZWFkZXI+
IGNyZWF0ZShBbGxvY2F0b3ImJiwgY29uc3QgRm9ybWF0UmVhZGVyJiwgY29uc3QgV2ViQ29yZTo6
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSopOwotCiAgICAgc3RhdGljIFdURjo6V29ya1F1ZXVlJiBz
dG9yYWdlUXVldWUoKTsKIAorICAgIHN0YXRpYyBSZWZQdHI8VHJhY2tSZWFkZXI+IGNyZWF0ZShB
bGxvY2F0b3ImJiwgY29uc3QgRm9ybWF0UmVhZGVyJiwgQ01NZWRpYVR5cGUsIHVpbnQ2NF90LCBP
cHRpb25hbDxib29sPik7CisKICAgICB1aW50NjRfdCB0cmFja0lEKCkgY29uc3QgeyByZXR1cm4g
bV90cmFja0lEOyB9CiAgICAgdm9pZCBhZGRTYW1wbGUoUmVmPFdlYkNvcmU6Ok1lZGlhU2FtcGxl
PiYmLCBNVFBsdWdpbkJ5dGVTb3VyY2VSZWYpOwogICAgIHZvaWQgd2FpdEZvclNhbXBsZShGdW5j
dGlvbjxib29sKFdlYkNvcmU6OlNhbXBsZU1hcCYsIGJvb2wpPiYmKSBjb25zdDsKIAotICAgIGJv
b2wgaXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0VuYWJsZWQ7IH0KLSAgICB2b2lkIHNl
dEVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1faXNFbmFibGVkID0gZW5hYmxlZDsgfQorICAgIHZv
aWQgc2V0RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9pc0VuYWJsZWQgPSBlbmFibGVkID8gRW5h
YmxlZDo6VHJ1ZSA6IEVuYWJsZWQ6OkZhbHNlOyB9CisgICAgQ01NZWRpYVR5cGUgbWVkaWFUeXBl
KCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVR5cGU7IH0KIAogICAgIHZvaWQgZmluaXNoUGFyc2lu
ZygpOwogCiBwcml2YXRlOgogICAgIHVzaW5nIENvcmVNZWRpYVdyYXBwZWQ8VHJhY2tSZWFkZXI+
Ojp1bndyYXA7CiAKLSAgICBUcmFja1JlYWRlcihBbGxvY2F0b3ImJiwgY29uc3QgRm9ybWF0UmVh
ZGVyJiwgQ01NZWRpYVR5cGUsIHVpbnQ2NF90KTsKKyAgICBUcmFja1JlYWRlcihBbGxvY2F0b3Im
JiwgY29uc3QgRm9ybWF0UmVhZGVyJiwgQ01NZWRpYVR5cGUsIHVpbnQ2NF90LCBPcHRpb25hbDxi
b29sPik7CiAKICAgICAvLyBDTUJhc2VDbGFzcwogICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9u
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gIldlYktpdDo6VHJhY2tSZWFkZXIiX3M7IH0KQEAgLTkz
LDEwICs5MCwxMiBAQCBwcml2YXRlOgogICAgICAgICBib29sIGhhc0FsbFNhbXBsZXMgeyBmYWxz
ZSB9OwogICAgIH07CiAKKyAgICBlbnVtIEVuYWJsZWQgOiB1aW50OF90IHsgVW5rbm93biwgRmFs
c2UsIFRydWUgfTsKKwogICAgIGNvbnN0IHVpbnQ2NF90IG1fdHJhY2tJRDsKICAgICBjb25zdCBD
TU1lZGlhVHlwZSBtX21lZGlhVHlwZTsKICAgICBjb25zdCBNZWRpYVRpbWUgbV9kdXJhdGlvbjsK
LSAgICBzdGQ6OmF0b21pYzxib29sPiBtX2lzRW5hYmxlZCB7IGZhbHNlIH07CisgICAgc3RkOjph
dG9taWM8RW5hYmxlZD4gbV9pc0VuYWJsZWQgeyBFbmFibGVkOjpVbmtub3duIH07CiAgICAgbXV0
YWJsZSBDb25kaXRpb24gbV9zYW1wbGVTdG9yYWdlQ29uZGl0aW9uOwogICAgIG11dGFibGUgTG9j
ayBtX3NhbXBsZVN0b3JhZ2VMb2NrOwogICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPFNhbXBs
ZVN0b3JhZ2U+IG1fc2FtcGxlU3RvcmFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYmMzYzdmYTM2MmY4ZWYyYjg0M2FmMTZiOThmOGUzNzc3
N2M0MzIzMS4uY2M3ODNkZjk0YTVhMTJmNzEyYTE3MjA4NTZiMjQ0OGFiNDliOWZkZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM4MzgsNiAr
MzgzOCw5IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVy
ZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgICAgICAgICBzZXR0aW5ncy5zZXRXZWJBdXRoZW50aWNh
dGlvbkVuYWJsZWQodHJ1ZSk7CiAgICAgfQogI2VuZGlmCisKKyAgICBQbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXI6OnNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKSk7CisgICAg
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXRWb3JiaXNEZWNvZGVyRW5hYmxlZChSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnZvcmJpc0RlY29kZXJFbmFibGVk
KCkpOwogfQogCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggNzFkNGE5YTc4YWIw
Y2NlZDlkMDlhMmY5YjQ2NjI0MTFjMDc4NGJjNy4uYzY3NWU4YTNiYjdkZWEyNDlhZWM2MDg1YzQz
YjVlZGU4YWQwNjViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tCkBAIC02OCw3ICs2OCw5IEBACiAjaW1wb3J0IDxXZWJDb3JlL05T
U2Nyb2xsZXJJbXBEZXRhaWxzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BlcmZvcm1hbmNlTG9nZ2lu
Zy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oPgorI2ltcG9y
dCA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CisjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvU1dDb250ZXh0TWFuYWdlci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N5c3Rl
bVNvdW5kTWFuYWdlci5oPgpAQCAtMzI4LDYgKzMzMCw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxh
dGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBw
YXJhCiAgICAgcHRocmVhZF9zZXRfZml4ZWRwcmlvcml0eV9zZWxmKCk7CiAjZW5kaWYKIAorICAg
IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2V0V2ViTUZvcm1hdFJlYWRlckVuYWJsZWQo
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJNRm9ybWF0UmVhZGVy
RW5hYmxlZCgpKTsKKyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFZvcmJpc0Rl
Y29kZXJFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudm9y
YmlzRGVjb2RlckVuYWJsZWQoKSk7CisKICAgICBpZiAoIXBhcmFtZXRlcnMubWVkaWFNSU1FVHlw
ZXMuaXNFbXB0eSgpKQogICAgICAgICBzZXRNZWRpYU1JTUVUeXBlcyhwYXJhbWV0ZXJzLm1lZGlh
TUlNRVR5cGVzKTsKICAgICBlbHNlIHsK
</data>
<flag name="commit-queue"
          id="434696"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417061</attachid>
            <date>2021-01-05 17:23:53 -0800</date>
            <delta_ts>2021-01-05 17:34:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219961-20210105172352.patch</filename>
            <type>text/plain</type>
            <size>38272</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjRiMDk0MDA0ZmI4MjZm
ZjUwMzIxNmU3NjE3MzdiZjliNDhmZDgxZS4uZDQ5YzNjOTRmMmMxMTg1NGM5NzhiMGI4MWIwNjc3
ZDQ1YmM2NjZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTAxLTA1ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2Vi
TSBmb3JtYXQgcmVhZGVyIGRvZXNuJ3Qgd29yayB3aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5
OTYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjM5OTAxND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBBbmR5IEVzdGVzLgorCisgICAgICAgIFdvcmsgYXJvdW5kIGEgQ29yZU1lZGlhIGJ1ZyB0
aGF0IG1ha2VzIHRoZSBmb3JtYXQgcmVhZGVyIGZhaWwgdG8gbG9hZCB3aGVuIHRoZQorICAgICAg
ICBBVlVSTEFzc2V0T3V0T2ZCYW5kTUlNRVR5cGVLZXlpcyBpbmNsdWRlZCBpbiB0aGUgQVZVUkxB
c3NldCBvcHRpb25zIGRpY3Rpb25hcnkuCisgICAgICAgIEFsc28gaW5jbHVkZSBzb21lIGNsZWFu
dXA6CisgICAgICAgIC0gTW92ZSB0aGUgY29kZSB0byBjaGVjayBmb3IgV2ViTSBNSU1FIHR5cGVz
IGZyb20gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQworICAgICAgICAgIHRvIEFW
QXNzZXRNSU1FVHlwZUNhY2hlLgorICAgICAgICAtIERvbid0IHVzZSBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzIGluIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuCisgICAgICAgIC0g
UmVnaXN0ZXIgdGhlIFdlYk0gZm9ybWF0IHJlYWRlciB3aGVuIGNyZWF0aW5nIGFuIEFWVVJMQXNz
ZXQgZm9yIGEgV2ViTSB1cmwgaW5zdGVhZAorICAgICAgICAgIG9mIHdoZW4gY2hlY2tpbmcgdGhl
IE1JTUUgdHlwZS4KKyAgICAgICAgLSBDbGVhbnVwIFdlYk0gImNvZGVjcyIgcGFyYW1ldGVyIHBh
cnNpbmcuCisgICAgICAgIC0gSXQgaXMgYSBsYXllcmluZyB2aW9sYXRpb24gdG8gdXNlIFJ1bnRp
bWVTZXR0aW5ncyBmcm9tIGluc2lkZSBvZiAvcGxhdGZvcm0uCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp3ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFdlYk1G
b3JtYXRSZWFkZXJFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlcjo6dm9yYmlzRGVjb2RlckVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXRWb3JiaXNEZWNvZGVyRW5hYmxlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUcmFja1ByaXZhdGVCYXNlOjpkZWZhdWx0RW5hYmxlZCBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVk
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlNRVR5cGVDYWNoZTo6aW5pdGlhbGl6
ZUNhY2hlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
cmVnaXN0ZXJGb3JtYXRSZWFkZXJJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjp3aWxs
VXNlV2ViTUZvcm1hdFJlYWRlckZvclR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5
cGVBbmRDb2RlY3MpOgorICAgICAgICAoV2ViQ29yZTo6ZW5zdXJlRm9ybWF0UmVhZGVySXNSZWdp
c3RlcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzRm9ybWF0UmVhZGVyQXZhaWxh
YmxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BdWRpb1Ry
YWNrUHJpdmF0ZVdlYk0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVX
ZWJNOjpkZWZhdWx0RW5hYmxlZCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvQXVkaW9UcmFja1ByaXZhdGVXZWJNLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
b3VyY2VCdWZmZXJQYXJzZXJXZWJNOjp3ZWJtTUlNRVR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OmNhbkxvYWRGb3JtYXRSZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6aXNXZWJNRm9ybWF0UmVhZGVyQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVXZWJNOjpkZWZhdWx0RW5hYmxl
ZCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1By
aXZhdGVXZWJNLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlv
VXRpbGl0aWVzQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjppc1ZvcmJpc0RlY29kZXJBdmFp
bGFibGUpOgorCiAyMDIxLTAxLTA1ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNv
bnkuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb11bY3VybF0gRW5hYmxlIENVUkxTU0xPUFRfTkFU
SVZFX0NBIGZsYWcgdG8gdXNlIHN5c3RlbSdzIENBIGNlcnRzIGluc3RlYWQgb2YgY2FjZXJ0LnBl
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBhZDc1ZTdkMjM0MjQyMzA0MjE5NDYyZDVlNzFlN2RlYTllYjNhZjcwLi5i
MjY0MWE0NGY5MzRiOTZmNDk0ZjhmMmJmMmQxZjlkYTdiY2IxMzRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI5IEBACisyMDIxLTAxLTA1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViTSBmb3JtYXQgcmVhZGVyIGRvZXNuJ3Qgd29yayB3
aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5OTYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
MjM5OTAxND4KKworICAgICAgICBSZXZpZXdlZCBieSBBbmR5IEVzdGVzLgorCisgICAgICAgIE9u
bHkgZW5hYmxlIGEgV2ViTSB0cmFjayB3aGVuIHRoZSBpdCBoYXMgRmxhZ0VuYWJsZWQgZWxlbWVu
dCwgb3Igd2hlbiB3ZSBzZWUgdGhhdAorICAgICAgICBpdCBoYXMgbWVkaWEgc2FtcGxlcy4gVGhp
cyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGVyZSBhcmUgV2ViTSBmaWxlcyB3aXRoIGVtcHR5IHRy
YWNrcywKKyAgICAgICAgYW5kIENvcmVNZWRpYSB3b24ndCBwbGF5IGEgZmlsZSBpZiBhbnkgZW5h
YmxlZCB0cmFjayBkb2Vzbid0IGhhdmUgc2FtcGxlcy4KKworICAgICAgICAqIFNoYXJlZC9tYWMv
TWVkaWFGb3JtYXRSZWFkZXIvRm9ybWF0UmVhZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Rm9y
bWF0UmVhZGVyOjpkaWRQYXJzZVRyYWNrcyk6CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZv
cm1hdFJlYWRlci9UcmFja1JlYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUmVhZGVy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpUcmFja1JlYWRlcjo6VHJhY2tSZWFkZXIpOgor
ICAgICAgICAoV2ViS2l0OjpUcmFja1JlYWRlcjo6ZmluaXNoUGFyc2luZyk6CisgICAgICAgIChX
ZWJLaXQ6OlRyYWNrUmVhZGVyOjppc0VuYWJsZWQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpU
cmFja1JlYWRlcjo6Y29weVByb3BlcnR5KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9y
bWF0UmVhZGVyL1RyYWNrUmVhZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAy
MDIxLTAxLTA1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgTWFrZSBXZWJQYWdlOjpGb3JjZVJlcGFpbnQgdXNlIENvbXBsZXRpb25IYW5kbGVy
IGluc3RlYWQgb2YgVm9pZENhbGxiYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAppbmRleCAx
NzVhYWZlNjRlYWEyNjdiOGEzMjZmMGM2MWUyMDM3OGFjNjMwOWNhLi41NDdhZjUzYzJmY2Q0MTY5
Yjc3NzAyMjk4MDZiZDlhODQ5MTgyZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAg
LTM1LDYgKzM1LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIEVOQUJMRShWSURFTykg
fHwgRU5BQkxFKFdFQl9BVURJTykKIAorI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUo
TVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCitib29sIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cjo6bV93ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZDsKKyNlbmRpZgorCisjaWYgRU5BQkxFKFZPUkJJ
UykgJiYgUExBVEZPUk0oTUFDKQorYm9vbCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6Om1f
dm9yYmlzRGVjb2RlckVuYWJsZWQ7CisjZW5kaWYKKwogc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI+JiBzaGFyZWRQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXIoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OnVuaXF1ZV9wdHI8UGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyPj4gcGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOwpA
QCAtNjEwLDYgKzYxOCw0MiBAQCB2b2lkIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2V0
U2hvdWxkRGVhY3RpdmF0ZUF1ZGlvU2Vzc2lvbihib29sIGRlYWN0aXZhdAogICAgIGRlYWN0aXZh
dGVBdWRpb1Nlc3Npb24oKSA9IGRlYWN0aXZhdGU7CiB9CiAKK2Jvb2wgUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyOjp3ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpCit7CisjaWYgRU5BQkxFKE1F
RElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICByZXR1cm4g
bV93ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZDsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2Vu
ZGlmCit9CisKK3ZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXRXZWJNRm9ybWF0
UmVhZGVyRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkg
JiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICBtX3dlYk1Gb3JtYXRSZWFkZXJF
bmFibGVkID0gZW5hYmxlZDsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGVuYWJsZWQpOworI2Vu
ZGlmCit9CisKK2Jvb2wgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp2b3JiaXNEZWNvZGVy
RW5hYmxlZCgpCit7CisjaWYgRU5BQkxFKFZPUkJJUykgJiYgUExBVEZPUk0oTUFDKQorICAgIHJl
dHVybiBtX3ZvcmJpc0RlY29kZXJFbmFibGVkOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7Cisj
ZW5kaWYKK30KKwordm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFZvcmJpc0Rl
Y29kZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyNpZiBFTkFCTEUoVk9SQklTKSAmJiBQTEFU
Rk9STShNQUMpCisgICAgbV92b3JiaXNEZWNvZGVyRW5hYmxlZCA9IGVuYWJsZWQ7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShlbmFibGVkKTsKKyNlbmRpZgorfQorCiAjZWxzZSAvLyBFTkFCTEUo
VklERU8pIHx8IEVOQUJMRShXRUJfQVVESU8pCiAKIHZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25N
YW5hZ2VyOjp1cGRhdGVOb3dQbGF5aW5nSW5mb0lmTmVjZXNzYXJ5KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyLmgKaW5kZXggNzc0Y2IxY2EyNTQzMmU0NjRkYmZlMTk5NTM0YjViZWZjMGQzYTYxYy4uYWEw
ZjJjYzE5NGQxYzNiNDJhYWFlMDkxMzcxMjk3NWZkOTk0ZjFhZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyLmgKQEAgLTU4LDYgKzU4LDExIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCBzZXRTaG91bGREZWFjdGl2YXRlQXVkaW9TZXNzaW9uKGJvb2wpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBib29sIHNob3VsZERlYWN0aXZhdGVBdWRpb1Nlc3Npb24oKTsKIAor
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVk
KGJvb2wpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHdlYk1Gb3JtYXRSZWFkZXJF
bmFibGVkKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0Vm9yYmlzRGVjb2Rl
ckVuYWJsZWQoYm9vbCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgdm9yYmlzRGVj
b2RlckVuYWJsZWQoKTsKKwogICAgIHZpcnR1YWwgflBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cigpID0gZGVmYXVsdDsKIAogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVNlc3Npb25TdGF0dXNV
cGRhdGUoKSB7IH0KQEAgLTIwMSw2ICsyMDYsMTMgQEAgcHJpdmF0ZToKICAgICBXZWFrSGFzaFNl
dDxQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXVkaW9DYXB0dXJlU291cmNlPiBtX2F1ZGlvQ2FwdHVy
ZVNvdXJjZXM7CiAgICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gdXBkYXRlU2Vzc2lvblN0YXRl
UXVldWU7CiAKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JN
QVRfUkVBREVSKQorICAgIHN0YXRpYyBib29sIG1fd2ViTUZvcm1hdFJlYWRlckVuYWJsZWQ7Cisj
ZW5kaWYKKyNpZiBFTkFCTEUoVk9SQklTKSAmJiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIGJv
b2wgbV92b3JiaXNEZWNvZGVyRW5hYmxlZDsKKyNlbmRpZgorCiAjaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECiAgICAgUmVmPEFnZ3JlZ2F0ZUxvZ2dlcj4gbV9sb2dnZXI7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5j
cHAKaW5kZXggNGJkMjJmZTQzMjc4ZWI1MGRiNGY2OWI0ZWJkYzBmMWVjODA5YTVlNC4uNzExMzhk
ZjI5NGFmODliMzA1ZDEzZTgwOWQ3ZjRkMjdkOTFiNmQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAKQEAgLTM4LDYg
KzM4LDExIEBAIE9wdGlvbmFsPHVpbnQ2NF90PiBUcmFja1ByaXZhdGVCYXNlOjp0cmFja1VJRCgp
IGNvbnN0CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAorT3B0aW9uYWw8Ym9vbD4gVHJh
Y2tQcml2YXRlQmFzZTo6ZGVmYXVsdEVuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7Cit9CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogc3RhdGljIHVpbnQ2
NF90IHNfdW5pcXVlSWQgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oCmluZGV4IGY0NGVmY2JlNTEyZjQ2MTc4NWY3MTQwZWYy
N2M1OTE1YmE0YzM1ZTAuLjMwOTk2MTQyMDQ4NTVkOTk2OWQwNGM2ZjA3OTgzYzI3Nzc0ZTdmM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0
ZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZh
dGVCYXNlLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBpbnQgdHJh
Y2tJbmRleCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIE9wdGlvbmFsPHVpbnQ2
NF90PiB0cmFja1VJRCgpIGNvbnN0OworICAgIHZpcnR1YWwgT3B0aW9uYWw8Ym9vbD4gZGVmYXVs
dEVuYWJsZWQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgTWVkaWFUaW1lIHN0YXJ0VGltZVZhcmlh
bmNlKCkgY29uc3QgeyByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FW
QXNzZXRNSU1FVHlwZUNhY2hlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KaW5kZXggODcwNjYyMTQ2
NmI1OTU3ZDg1N2M4ZTZhOTdjOTFlYTYzZjQ2MDFmOS4uMzU5M2JkNDRjOTQxOThjNDU5MDA4MDRk
NzJhYWQ3ODczMmZhZTI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1J
TUVUeXBlQ2FjaGUubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBQTEFURk9STShDT0NPQSkKIAog
I2ltcG9ydCAiQ29udGVudFR5cGUuaCIKKyNpbXBvcnQgIlNvdXJjZUJ1ZmZlclBhcnNlcldlYk0u
aCIKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2ltcG9ydCA8cGFsL2Nv
Y29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CiAKQEAgLTYzLDkgKzY0LDE2IEBAIGJvb2wgQVZB
c3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVkVHlwZShjb25zdCBDb250ZW50VHlw
ZSYgdHlwZSkKIHsKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCiAgICAg
QVNTRVJUKGlzQXZhaWxhYmxlKCkpOwotICAgIHJldHVybiBbUEFMOjpnZXRBVlVSTEFzc2V0Q2xh
c3MoKSBpc1BsYXlhYmxlRXh0ZW5kZWRNSU1FVHlwZTp0eXBlLnJhdygpXTsKKyAgICBpZiAoW1BB
TDo6Z2V0QVZVUkxBc3NldENsYXNzKCkgaXNQbGF5YWJsZUV4dGVuZGVkTUlNRVR5cGU6dHlwZS5y
YXcoKV0pCisgICAgICAgIHJldHVybiB0cnVlOworCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkg
JiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICBpZiAoU291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZCh0eXBlKSA9PSBNZWRpYVBsYXllckVudW1z
OjpTdXBwb3J0c1R5cGU6OklzU3VwcG9ydGVkKQorICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRp
ZgogCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQorCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCkBAIC0xNDgsNiArMTU2LDEzIEBAIHZvaWQgQVZBc3NldE1JTUVU
eXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5z
aXRpdmVICiAgICAgZm9yIChOU1N0cmluZyogdHlwZSBpbiBbUEFMOjpnZXRBVlVSTEFzc2V0Q2xh
c3MoKSBhdWRpb3Zpc3VhbE1JTUVUeXBlc10pCiAgICAgICAgIGNhY2hlLmFkZCh0eXBlKTsKIAor
I2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIp
CisgICAgaWYgKFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzV2ViTUZvcm1hdFJlYWRlckF2YWls
YWJsZSgpKSB7CisgICAgICAgIGF1dG8gd2VibVR5cGVzID0gU291cmNlQnVmZmVyUGFyc2VyV2Vi
TTo6d2VibU1JTUVUeXBlcygpOworICAgICAgICBjYWNoZS5hZGQod2VibVR5cGVzLmJlZ2luKCks
IHdlYm1UeXBlcy5lbmQoKSk7CisgICAgfQorI2VuZGlmCisKICAgICBpZiAobV9jYWNoZVR5cGVD
YWxsYmFjaykKICAgICAgICAgbV9jYWNoZVR5cGVDYWxsYmFjayhjb3B5VG9WZWN0b3IoY2FjaGUp
KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggZDY0YTcyNTYyYTI0YzBkOGEx
ZGJiYTMwOWNlNTE1YzhjZmVjNGFlMS4uODZjYWY0NWViM2NjNTU5ZmQ2NGZkNGRiMGJkMDlkMzJj
MGM2ZWViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC01Niw3ICs1Niw2IEBACiAjaW1w
b3J0ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVRpbWVSYW5n
ZXMuaCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgotI2ltcG9ydCAiUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2ltcG9ydCAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbXBv
cnQgIlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaCIKICNpbXBvcnQgIlNoYXJlZEJ1ZmZl
ci5oIgpAQCAtMTAwLDcgKzk5LDYgQEAKICNpbXBvcnQgPHd0Zi9PU09iamVjdFB0ci5oPgogI2lt
cG9ydCA8d3RmL1VSTC5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29hLmg+Ci0jaW1w
b3J0IDx3dGYvc3BpL2Rhcndpbi9PU1ZhcmlhbnRTUEkuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KICNpbXBvcnQgPHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oPgogCkBAIC0y
NzAsNiArMjY4LDIwIEBAIHN0YXRpYyBkaXNwYXRjaF9xdWV1ZV90IGdsb2JhbFB1bGxEZWxlZ2F0
ZVF1ZXVlKCkKICAgICByZXR1cm4gZ2xvYmFsUXVldWU7CiB9CiAKK3N0YXRpYyB2b2lkIHJlZ2lz
dGVyRm9ybWF0UmVhZGVySWZOZWNlc3NhcnkoKQoreworI2lmIEVOQUJMRShNRURJQV9TT1VSQ0Up
ICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCisgICAgc3RhdGljIGRpc3BhdGNoX29u
Y2VfdCBvbmNlVG9rZW47CisgICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeeworICAgICAg
ICAvLyBMaWtlIHdlIGRvIGZvciBvdGhlciBtZWRpYSBmb3JtYXRzLCBhbGxvdyB0aGUgZm9ybWF0
IHJlYWRlciB0byBydW4gaW4gdGhlIFdlYkNvbnRlbnQgb3IgR1BVIHByb2Nlc3MKKyAgICAgICAg
Ly8gKHdoaWNoIGlzIGFscmVhZHkgYXBwcm9wcmlhdGVseSBzYW5kYm94ZWQpIHJhdGhlciB0aGFu
IGluIGEgc2VwYXJhdGUgTWVkaWFUb29sYm94IFhQQyBzZXJ2aWNlLgorICAgICAgICBSRUxFQVNF
X0FTU0VSVChpc0luR1BVUHJvY2VzcygpIHx8IGlzSW5XZWJQcm9jZXNzKCkpOworICAgICAgICBN
VFJlZ2lzdGVyUGx1Z2luRm9ybWF0UmVhZGVyQnVuZGxlRGlyZWN0b3J5KChfX2JyaWRnZSBDRlVS
TFJlZilOU0J1bmRsZS5tYWluQnVuZGxlLmJ1aWx0SW5QbHVnSW5zVVJMKTsKKyAgICAgICAgTVRQ
bHVnaW5Gb3JtYXRSZWFkZXJEaXNhYmxlU2FuZGJveGluZygpOworICAgIH0pOworI2VuZGlmCit9
CisKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OkZhY3RvcnkgZmlu
YWwgOiBwdWJsaWMgTWVkaWFQbGF5ZXJGYWN0b3J5IHsKIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5
ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRh
dGlvbjsgfTsKQEAgLTc5Miw2ICs4MDQsMTkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFVSTCYgdXJsKQogCiB9CiAK
K3N0YXRpYyBib29sIHdpbGxVc2VXZWJNRm9ybWF0UmVhZGVyRm9yVHlwZShjb25zdCBTdHJpbmcm
IHR5cGUpCit7CisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9S
TUFUX1JFQURFUikKKyAgICBpZiAoIVNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzV2ViTUZvcm1h
dFJlYWRlckF2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4g
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLCAidmlkZW8vd2VibSIpIHx8IGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UodHlwZSwgImF1ZGlvL3dlYm0iKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KHR5cGUpOworICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3QgVVJMJiB1
cmwsIFJldGFpblB0cjxOU011dGFibGVEaWN0aW9uYXJ5PiBvcHRpb25zKQogewogICAgIEFMV0FZ
U19MT0coTE9HSURFTlRJRklFUik7CkBAIC04MzMsNyArODU4LDExIEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTChjb25zdCBVUkwm
IHVybCwgUmV0CiAjZW5kaWYKIAogICAgIGF1dG8gdHlwZSA9IHBsYXllcigpLT5jb250ZW50TUlN
RVR5cGUoKTsKLSAgICBpZiAoUEFMOjpjYW5Mb2FkX0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0T3V0
T2ZCYW5kTUlNRVR5cGVLZXkoKSAmJiAhdHlwZS5pc0VtcHR5KCkgJiYgIXBsYXllcigpLT5jb250
ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21FeHRlbnNpb24oKSkgeworCisgICAgLy8gRG9uJ3Qg
YWR2ZXJ0aXNlIFdlYk0gTUlNRSB0eXBlcyBvciB0aGUgZm9ybWF0IHJlYWRlciB3b24ndCBiZSBs
b2FkZWQgdW50aWwgcmRhcjovLzcyNDA1MTI3IGlzIGZpeGVkLgorICAgIGF1dG8gd2lsbFVzZVdl
Yk1Gb3JtYXRSZWFkZXIgPSB3aWxsVXNlV2ViTUZvcm1hdFJlYWRlckZvclR5cGUodHlwZSk7CisK
KyAgICBpZiAoUEFMOjpjYW5Mb2FkX0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0T3V0T2ZCYW5kTUlN
RVR5cGVLZXkoKSAmJiAhdHlwZS5pc0VtcHR5KCkgJiYgIXBsYXllcigpLT5jb250ZW50TUlNRVR5
cGVXYXNJbmZlcnJlZEZyb21FeHRlbnNpb24oKSAmJiAhd2lsbFVzZVdlYk1Gb3JtYXRSZWFkZXIp
IHsKICAgICAgICAgYXV0byBjb2RlY3MgPSBwbGF5ZXIoKS0+Y29udGVudFR5cGVDb2RlY3MoKTsK
ICAgICAgICAgaWYgKCFjb2RlY3MuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBOU1N0cmluZyAq
dHlwZVN0cmluZyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUA7IGNvZGVjcz1cIiVA
XCIiLCAoTlNTdHJpbmcgKil0eXBlLCAoTlNTdHJpbmcgKiljb2RlY3NdOwpAQCAtODc2LDYgKzkw
NSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZB
c3NldEZvclVSTChjb25zdCBVUkwmIHVybCwgUmV0CiAgICAgICAgICAgICBbb3B0aW9ucyBzZXRP
YmplY3Q6QE5PIGZvcktleTpBVlVSTEFzc2V0VXNlc05vUGVyc2lzdGVudENhY2hlS2V5XTsKICAg
ICB9CiAKKyAgICBpZiAod2lsbFVzZVdlYk1Gb3JtYXRSZWFkZXIpCisgICAgICAgIHJlZ2lzdGVy
Rm9ybWF0UmVhZGVySWZOZWNlc3NhcnkoKTsKKwogICAgIE5TVVJMICpjb2NvYVVSTCA9IGNhbm9u
aWNhbFVSTCh1cmwpOwogICAgIG1fYXZBc3NldCA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVlVSTEFz
c2V0SW5zdGFuY2UoKSBpbml0V2l0aFVSTDpjb2NvYVVSTCBvcHRpb25zOm9wdGlvbnMuZ2V0KCld
KTsKIApAQCAtMTY2NywzOSArMTY5OSw2IEBAIHN0YXRpYyBib29sIGtleVN5c3RlbUlzU3VwcG9y
dGVkKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVE
SUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQotc3RhdGljIHZvaWQg
ZW5zdXJlRm9ybWF0UmVhZGVySXNSZWdpc3RlcmVkKCkKLXsKLSAgICBzdGF0aWMgZGlzcGF0Y2hf
b25jZV90IG9uY2VUb2tlbjsKLSAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57Ci0gICAg
ICAgIC8vIExpa2Ugd2UgZG8gZm9yIG90aGVyIG1lZGlhIGZvcm1hdHMsIGFsbG93IHRoZSBmb3Jt
YXQgcmVhZGVyIHRvIHJ1biBpbiB0aGUgV2ViQ29udGVudCBvciBHUFUgcHJvY2VzcwotICAgICAg
ICAvLyAod2hpY2ggaXMgYWxyZWFkeSBhcHByb3ByaWF0ZWx5IHNhbmRib3hlZCkgcmF0aGVyIHRo
YW4gaW4gYSBzZXBhcmF0ZSBNZWRpYVRvb2xib3ggWFBDIHNlcnZpY2UuCi0gICAgICAgIFJFTEVB
U0VfQVNTRVJUKGlzSW5HUFVQcm9jZXNzKCkgfHwgaXNJbldlYlByb2Nlc3MoKSk7Ci0gICAgICAg
IE1UUmVnaXN0ZXJQbHVnaW5Gb3JtYXRSZWFkZXJCdW5kbGVEaXJlY3RvcnkoKF9fYnJpZGdlIENG
VVJMUmVmKU5TQnVuZGxlLm1haW5CdW5kbGUuYnVpbHRJblBsdWdJbnNVUkwpOwotICAgICAgICBN
VFBsdWdpbkZvcm1hdFJlYWRlckRpc2FibGVTYW5kYm94aW5nKCk7Ci0gICAgfSk7Ci19Ci0jZW5k
aWYKLQotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9S
RUFERVIpCi1zdGF0aWMgYm9vbCBpc0Zvcm1hdFJlYWRlckF2YWlsYWJsZSgpCi17Ci0gICAgaWYg
KCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYk1Gb3JtYXRSZWFk
ZXJFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotI2lmICFVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQotICAgIC8vIEZJWE1FIChyZGFyOi8vNzIzMjA0MTkpOiBJZiBXZWJLaXQgd2Fz
IGJ1aWx0IHdpdGggYWQtaG9jIGNvZGUtc2lnbmluZywKLSAgICAvLyBDb3JlTWVkaWEgd2lsbCBv
bmx5IGxvYWQgdGhlIGZvcm1hdCByZWFkZXIgcGx1Zy1pbiB3aGVuIGEgdXNlciBkZWZhdWx0Ci0g
ICAgLy8gaXMgc2V0IG9uIEFwcGxlIGludGVybmFsIE9Tcy4gVGhhdCBtZWFucyB3ZSBjYW5ub3Qg
Y3VycmVudGx5IHN1cHBvcnQgV2ViTQotICAgIC8vIGluIHB1YmxpYyBTREsgYnVpbGRzIG9uIGN1
c3RvbWVyIE9Tcy4KLSAgICBpZiAoIW9zX3ZhcmlhbnRfYWxsb3dzX2ludGVybmFsX3NlY3VyaXR5
X3BvbGljaWVzKCJjb20uYXBwbGUuV2ViS2l0IikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSNl
bmRpZgotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0jZW5kaWYKLQogTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGVB
bmRDb2RlY3MoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykK
IHsKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAtMTcxMSwxOSArMTcxMCw2IEBAIE1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
c3VwcG9ydHNUeXBlQW5kQ29kCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6U3VwcG9ydHNU
eXBlOjpJc05vdFN1cHBvcnRlZDsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkg
JiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKLSAgICBpZiAoaXNGb3JtYXRSZWFkZXJB
dmFpbGFibGUoKSkgewotICAgICAgICBhdXRvIHN1cHBvcnRlZCA9IFNvdXJjZUJ1ZmZlclBhcnNl
cldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQocGFyYW1ldGVycy50eXBlKTsKLSAgICAgICAg
aWYgKHN1cHBvcnRlZCAhPSBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRl
ZCkgewotICAgICAgICAgICAgZW5zdXJlRm9ybWF0UmVhZGVySXNSZWdpc3RlcmVkKCk7Ci0gICAg
ICAgICAgICBpZiAoc3VwcG9ydGVkID09IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6Ok1heUJl
U3VwcG9ydGVkKQotICAgICAgICAgICAgICAgIHJldHVybiBzdXBwb3J0ZWQ7Ci0gICAgICAgICAg
ICBpZiAoY29udGVudFR5cGVNZWV0c0hhcmR3YXJlRGVjb2RlUmVxdWlyZW1lbnRzKHBhcmFtZXRl
cnMudHlwZSwgcGFyYW1ldGVycy5jb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQp
KQotICAgICAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc1N1
cHBvcnRlZDsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZgotCiAgICAgYXV0byBzdXBwb3J0ZWQg
PSBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuY2FuRGVjb2RlVHlwZShwYXJhbWV0
ZXJzLnR5cGUucmF3KCkpOwogICAgIGlmIChzdXBwb3J0ZWQgIT0gTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZTo6SXNTdXBwb3J0ZWQpCiAgICAgICAgIHJldHVybiBzdXBwb3J0ZWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BdWRpb1RyYWNrUHJp
dmF0ZVdlYk0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQXVk
aW9UcmFja1ByaXZhdGVXZWJNLmNwcAppbmRleCA3N2Q4YTM0NThkYTA1MTk5MTZiMmU1YTg2ZDlk
MWQ0N2Y1NjNhYzFkLi5mZDI2ODhhNWRkM2Q5NjlmNDMwZGMzZjhlMDI4NjU0ODJmNTMxZjZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BdWRpb1Ry
YWNrUHJpdmF0ZVdlYk0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5jcHAKQEAgLTU4LDYgKzU4LDEzIEBAIE9wdGlv
bmFsPHVpbnQ2NF90PiBBdWRpb1RyYWNrUHJpdmF0ZVdlYk06OnRyYWNrVUlEKCkgY29uc3QKICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCitPcHRpb25hbDxib29sPiBBdWRpb1RyYWNrUHJp
dmF0ZVdlYk06OmRlZmF1bHRFbmFibGVkKCkgY29uc3QKK3sKKyAgICBpZiAobV90cmFjay5pc19l
bmFibGVkLmlzX3ByZXNlbnQoKSkKKyAgICAgICAgcmV0dXJuIG1fdHJhY2suaXNfZW5hYmxlZC52
YWx1ZSgpOworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKIEF0b21TdHJpbmcgQXVkaW9U
cmFja1ByaXZhdGVXZWJNOjpsYWJlbCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fbGFiZWwuaXNOdWxs
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9B
dWRpb1RyYWNrUHJpdmF0ZVdlYk0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5oCmluZGV4IDEzMWE5ZmUwYWVkYTJhMWZmNDc4
ZjBjN2I5N2I5MzQ0ZGNiNjYwZjkuLjEyMjJjNDQ5N2UzOTlmYzk5MDVmNGNkY2Q1MzgxMDQ0ODQw
MjAyMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5oCkBAIC00Miw2ICs0Miw3IEBAIHB1
YmxpYzoKICAgICBBdG9tU3RyaW5nIGxhbmd1YWdlKCkgY29uc3QgZmluYWw7CiAgICAgaW50IHRy
YWNrSW5kZXgoKSBjb25zdCBmaW5hbDsKICAgICBPcHRpb25hbDx1aW50NjRfdD4gdHJhY2tVSUQo
KSBjb25zdCBmaW5hbDsKKyAgICBPcHRpb25hbDxib29sPiBkZWZhdWx0RW5hYmxlZCgpIGNvbnN0
IGZpbmFsOwogCiBwcml2YXRlOgogICAgIEF1ZGlvVHJhY2tQcml2YXRlV2ViTSh3ZWJtOjpUcmFj
a0VudHJ5JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAppbmRleCA1MGZjYTFk
OTA5MDllNjE1ZmE0ZTI3OTkxMGVkNzQ1OWIxYzUwZDQxLi5iYzkzZGJjZWE0MjdiNTliNTg3YWJj
NTViNjczNjA5YzQ1YTZiOTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcApA
QCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIk1lZGlhRGVzY3JpcHRpb24uaCIKICNpbmNsdWRl
ICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1
ZmZlci5oIgogI2luY2x1ZGUgIlZQOVV0aWxpdGllc0NvY29hLmgiCiAjaW5jbHVkZSAiVmlkZW9U
cmFja1ByaXZhdGVXZWJNLmgiCkBAIC00OCw2ICs0OSw3IEBACiAjaW5jbHVkZSA8d3RmL1N0ZExp
c3QuaD4KICNpbmNsdWRlIDx3dGYvY2YvVHlwZUNhc3RzQ0YuaD4KICNpbmNsdWRlIDx3dGYvZGFy
d2luL1dlYWtMaW5raW5nLmg+CisjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vT1NWYXJpYW50U1BJ
Lmg+CiAKICNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogI2luY2x1ZGUgIlZpZGVvVG9v
bGJveFNvZnRMaW5rLmgiCkBAIC00NDMsMTQgKzQ0NSw1NSBAQCBwcml2YXRlOgogICAgIHdlYm06
OlRyYWNrRW50cnkgbV90cmFjazsKIH07CiAKK2NvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNh
c2VJbnNlbnNpdGl2ZUhhc2g+JiBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjp3ZWJtTUlNRVR5cGVz
KCkKK3sKKyAgICBzdGF0aWMgYXV0byB0eXBlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChbXSB7CisK
KyAgICAgICAgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4gdHlwZXM7
CisKKyNpZiBFTkFCTEUoVlA5KQorICAgICAgICB0eXBlcy5hZGQoInZpZGVvL3dlYm0iKTsKKyNl
bmRpZgorI2lmIEVOQUJMRShWT1JCSVMpIHx8IEVOQUJMRShPUFVTKQorICAgICAgICB0eXBlcy5h
ZGQoImF1ZGlvL3dlYm0iKTsKKyNlbmRpZgorCisgICAgICAgIHJldHVybiB0eXBlczsKKyAgICB9
KCkpOworCisgICAgcmV0dXJuIHR5cGVzOworfQorCitzdGF0aWMgYm9vbCBjYW5Mb2FkRm9ybWF0
UmVhZGVyKCkKK3sKKyNpZiAhSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICByZXR1
cm4gZmFsc2U7CisjZWxpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgIHJldHVybiB0cnVl
OworI2Vsc2UKKyAgICAvLyBGSVhNRSAocmRhcjovLzcyMzIwNDE5KTogSWYgV2ViS2l0IHdhcyBi
dWlsdCB3aXRoIGFkLWhvYyBjb2RlLXNpZ25pbmcsCisgICAgLy8gQ29yZU1lZGlhIHdpbGwgb25s
eSBsb2FkIHRoZSBmb3JtYXQgcmVhZGVyIHBsdWctaW4gd2hlbiBhIHVzZXIgZGVmYXVsdAorICAg
IC8vIGlzIHNldCBvbiBBcHBsZSBpbnRlcm5hbCBPU3MuIFRoYXQgbWVhbnMgd2UgY2Fubm90IGN1
cnJlbnRseSBzdXBwb3J0IFdlYk0KKyAgICAvLyBpbiBwdWJsaWMgU0RLIGJ1aWxkcyBvbiBjdXN0
b21lciBPU3MuCisgICAgc3RhdGljIGJvb2wgYWxsb3dzSW50ZXJuYWxTZWN1cml0eVBvbGljaWVz
ID0gb3NfdmFyaWFudF9hbGxvd3NfaW50ZXJuYWxfc2VjdXJpdHlfcG9saWNpZXMoImNvbS5hcHBs
ZS5XZWJLaXQiKTsKKyAgICByZXR1cm4gYWxsb3dzSW50ZXJuYWxTZWN1cml0eVBvbGljaWVzOwor
I2VuZGlmIC8vICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorfQorCitib29sIFNvdXJjZUJ1ZmZl
clBhcnNlcldlYk06OmlzV2ViTUZvcm1hdFJlYWRlckF2YWlsYWJsZSgpCit7CisgICAgcmV0dXJu
IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6d2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKSAm
JiBjYW5Mb2FkRm9ybWF0UmVhZGVyKCkgJiYgaXNXZWJtUGFyc2VyQXZhaWxhYmxlKCk7Cit9CisK
IE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpp
c0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBlKQogewogI2lmIEVO
QUJMRShWUDkpIHx8IEVOQUJMRShWT1JCSVMpIHx8IEVOQUJMRShPUFVTKQogICAgIGlmICghaXNX
ZWJtUGFyc2VyQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpT
dXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCi0gICAgYm9vbCBpc0F1ZGlvQ29udGFpbmVy
VHlwZSA9IFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLmNvbnRhaW5lclR5cGUoKSwg
ImF1ZGlvL3dlYm0iKTsKLSAgICBib29sIGlzVmlkZW9Db250YWluZXJUeXBlID0gV1RGOjplcXVh
bElnbm9yaW5nQVNDSUlDYXNlKHR5cGUuY29udGFpbmVyVHlwZSgpLCAidmlkZW8vd2VibSIpOwor
ICAgIGF1dG8gY29udGFpbmVyVHlwZSA9IHR5cGUuY29udGFpbmVyVHlwZSgpOworICAgIGJvb2wg
aXNBdWRpb0NvbnRhaW5lclR5cGUgPSBXVEY6OmVxdWFsSWdub3JpbmdBU0NJSUNhc2UoY29udGFp
bmVyVHlwZSwgImF1ZGlvL3dlYm0iKTsKKyAgICBib29sIGlzVmlkZW9Db250YWluZXJUeXBlID0g
V1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlKGNvbnRhaW5lclR5cGUsICJ2aWRlby93ZWJtIik7
CiAgICAgaWYgKCFpc0F1ZGlvQ29udGFpbmVyVHlwZSAmJiAhaXNWaWRlb0NvbnRhaW5lclR5cGUp
CiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3Vw
cG9ydGVkOwogICAgIApAQCAtNDczLDIyICs1MTYsMTggQEAgTWVkaWFQbGF5ZXJFbnVtczo6U3Vw
cG9ydHNUeXBlIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQo
Y28KICAgICBpZiAoIWlzQW55Q29kZWNBdmFpbGFibGUpCiAgICAgICAgIHJldHVybiBNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCi0gICAgU3RyaW5nIGNv
ZGVjc1BhcmFtZXRlciA9IHR5cGUucGFyYW1ldGVyKENvbnRlbnRUeXBlOjpjb2RlY3NQYXJhbWV0
ZXIoKSk7Ci0gICAgaWYgKCFjb2RlY3NQYXJhbWV0ZXIpCi0gICAgICAgIHJldHVybiBNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGU6Ok1heUJlU3VwcG9ydGVkOwotCi0gICAgYXV0byBzcGxp
dFJlc3VsdHMgPSBTdHJpbmdWaWV3KGNvZGVjc1BhcmFtZXRlcikuc3BsaXQoJywnKTsKLSAgICBp
ZiAoc3BsaXRSZXN1bHRzLmJlZ2luKCkgPT0gc3BsaXRSZXN1bHRzLmVuZCgpKQorICAgIGF1dG8g
Y29kZWNzID0gdHlwZS5jb2RlY3MoKTsKKyAgICBpZiAoY29kZWNzLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6TWF5QmVTdXBwb3J0ZWQ7
CiAKLSAgICBmb3IgKGF1dG8gc3BsaXQgOiBzcGxpdFJlc3VsdHMpIHsKKyAgICBmb3IgKGF1dG8m
IGNvZGVjIDogY29kZWNzKSB7CiAjaWYgRU5BQkxFKFZQOSkKLSAgICAgICAgaWYgKHNwbGl0LnN0
YXJ0c1dpdGgoInZwMDkiKSB8fCBzcGxpdC5zdGFydHNXaXRoKCJ2cDA4IikgfHwgZXF1YWwoc3Bs
aXQsICJ2cDgiKSB8fCBlcXVhbChzcGxpdCwgInZwOSIpKSB7CisgICAgICAgIGlmIChjb2RlYy5z
dGFydHNXaXRoKCJ2cDA5IikgfHwgY29kZWMuc3RhcnRzV2l0aCgidnAwOCIpIHx8IGVxdWFsKGNv
ZGVjLCAidnA4IikgfHwgZXF1YWwoY29kZWMsICJ2cDkiKSkgewogCiAgICAgICAgICAgICBpZiAo
IWlzVlA5RGVjb2RlckF2YWlsYWJsZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCi0gICAgICAgICAgICBh
dXRvIGNvZGVjUGFyYW1ldGVycyA9IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoc3BsaXQpOworICAg
ICAgICAgICAgYXV0byBjb2RlY1BhcmFtZXRlcnMgPSBwYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKGNv
ZGVjKTsKICAgICAgICAgICAgIGlmICghY29kZWNQYXJhbWV0ZXJzKQogICAgICAgICAgICAgICAg
IHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwog
CkBAIC01MDAsNyArNTM5LDcgQEAgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIFNvdXJj
ZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY28KICNlbmRpZiAvLyBF
TkFCTEUoVlA5KQogCiAjaWYgRU5BQkxFKFZPUkJJUykKLSAgICAgICAgaWYgKHNwbGl0ID09ICJ2
b3JiaXMiKSB7CisgICAgICAgIGlmIChjb2RlYyA9PSAidm9yYmlzIikgewogICAgICAgICAgICAg
aWYgKCFpc1ZvcmJpc0RlY29kZXJBdmFpbGFibGUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
TWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKIApAQCAtNTA5
LDcgKzU0OCw3IEBAIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvCiAjZW5kaWYgLy8gRU5BQkxFKFZP
UkJJUykKIAogI2lmIEVOQUJMRShPUFVTKQotICAgICAgICBpZiAoc3BsaXQgPT0gIm9wdXMiKSB7
CisgICAgICAgIGlmIChjb2RlYyA9PSAib3B1cyIpIHsKICAgICAgICAgICAgIGlmICghaXNPcHVz
RGVjb2RlckF2YWlsYWJsZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVu
dW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJz
ZXJXZWJNLmgKaW5kZXggZWNhMDNjMjA0ZmExMDA3ZTVjMjUzYjUzYTJmZjRhNTJiNWNiMTc5Yy4u
YjNlMTBkYTAzZjA5OTM4NzAxNGVkZjAxNjY1NWM0MDY2NDMyNjIxMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2Vi
TS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1
ZmZlclBhcnNlcldlYk0uaApAQCAtNjAsNyArNjAsOSBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBT
b3VyY2VCdWZmZXJQYXJzZXJXZWJNIDogcHVibGljIFNvdXJjZUJ1ZmZlclBhcnNlciwgcHJpdmF0
ZQogcHVibGljOgogICAgIGNsYXNzIFN0cmVhbWluZ1ZlY3RvclJlYWRlcjsKIAorICAgIHN0YXRp
YyBib29sIGlzV2ViTUZvcm1hdFJlYWRlckF2YWlsYWJsZSgpOwogICAgIHN0YXRpYyBNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGUgaXNDb250ZW50VHlwZVN1cHBvcnRlZChjb25zdCBDb250
ZW50VHlwZSYpOworICAgIHN0YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5z
ZW5zaXRpdmVIYXNoPiYgd2VibU1JTUVUeXBlcygpOwogICAgIHN0YXRpYyBSZWZQdHI8U291cmNl
QnVmZmVyUGFyc2VyV2ViTT4gY3JlYXRlKGNvbnN0IENvbnRlbnRUeXBlJik7CiAKICAgICBTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmNwcAppbmRl
eCBlODhiOWU1NTU1ZDRmYTMxODAzZmQyOWY2OGVhYzk1ZTZmNzczMzU4Li40ODg2NTQ4NDIyNzRl
NWE5YTg5ZTkzYmY1Y2MzNTg5ZWZlZTlmMjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2Vi
TS5jcHAKQEAgLTU4LDYgKzU4LDEzIEBAIE9wdGlvbmFsPHVpbnQ2NF90PiBWaWRlb1RyYWNrUHJp
dmF0ZVdlYk06OnRyYWNrVUlEKCkgY29uc3QKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQog
CitPcHRpb25hbDxib29sPiBWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OmRlZmF1bHRFbmFibGVkKCkg
Y29uc3QKK3sKKyAgICBpZiAobV90cmFjay5pc19lbmFibGVkLmlzX3ByZXNlbnQoKSkKKyAgICAg
ICAgcmV0dXJuIG1fdHJhY2suaXNfZW5hYmxlZC52YWx1ZSgpOworICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7Cit9CisKIEF0b21TdHJpbmcgVmlkZW9UcmFja1ByaXZhdGVXZWJNOjpsYWJlbCgpIGNv
bnN0CiB7CiAgICAgaWYgKG1fbGFiZWwuaXNOdWxsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2Vi
TS5oCmluZGV4IDEyMzFjYmUzNTllMzA3M2ZkZmE2ZmJlMGU2MmUwNTFmMGIyOTFkNTYuLjMyMGY4
ODhjMTAxZmE2ZjIyMzdjM2FlZTEwNDczM2U4Y2VlMWIxMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2
YXRlV2ViTS5oCkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICBBdG9tU3RyaW5nIGxhbmd1
YWdlKCkgY29uc3QgZmluYWw7CiAgICAgaW50IHRyYWNrSW5kZXgoKSBjb25zdCBmaW5hbDsKICAg
ICBPcHRpb25hbDx1aW50NjRfdD4gdHJhY2tVSUQoKSBjb25zdCBmaW5hbDsKKyAgICBPcHRpb25h
bDxib29sPiBkZWZhdWx0RW5hYmxlZCgpIGNvbnN0IGZpbmFsOwogCiBwcml2YXRlOgogICAgIFZp
ZGVvVHJhY2tQcml2YXRlV2ViTSh3ZWJtOjpUcmFja0VudHJ5JiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29j
b2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9V
dGlsaXRpZXNDb2NvYS5tbQppbmRleCA0MTM0NzhmN2ZhMmJhM2I1ZTUzNThiMmEzYTgwOTc3OGJi
ZTllYjUwLi5kZWYxNDFmMzYxNzI1MWQ3NTY0MTNmYmE1NmUyM2I2MjA1Mzc2ZjYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9VdGls
aXRpZXNDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJNQXVkaW9VdGlsaXRpZXNDb2NvYS5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCAi
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0
ICJNZWRpYVV0aWxpdGllcy5oIgotI2ltcG9ydCAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgor
I2ltcG9ydCAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW1wb3J0IDxBdWRpb1Rv
b2xib3gvQXVkaW9Db21wb25lbnQuaD4KICNpbXBvcnQgPEF1ZGlvVG9vbGJveC9BdWRpb0Zvcm1h
dC5oPgogI2ltcG9ydCA8Q29yZU1lZGlhL0NNRm9ybWF0RGVzY3JpcHRpb24uaD4KQEAgLTE3Nyw3
ICsxNzcsNyBAQCBib29sIGlzVm9yYmlzRGVjb2RlckF2YWlsYWJsZSgpCiAgICAgc3RhdGljIGJv
b2wgYXZhaWxhYmxlOwogCiAjaWYgRU5BQkxFKFZPUkJJUykgJiYgUExBVEZPUk0oTUFDKQotICAg
IGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS52b3JiaXNEZWNv
ZGVyRW5hYmxlZCgpKQorICAgIGlmICghUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp2b3Ji
aXNEZWNvZGVyRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzdGF0aWMg
ZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9Gb3JtYXRSZWFkZXIuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0Zvcm1hdFJlYWRlci5jcHAKaW5kZXggZWY0
OWZjYTk2NjIyNWFjMzdiNTgzZTY0NjdkOGY1ZDE5MjRhYmI1Mi4uZjRkYmJiODkzOTFkYjMxOGY4
YjYzZmRjMjRhMThkZGUzNTgyMTI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL0Zvcm1hdFJlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0Zvcm1hdFJlYWRlci5jcHAKQEAgLTE0NCwy
NiArMTQ0LDI5IEBAIHZvaWQgRm9ybWF0UmVhZGVyOjpkaWRQYXJzZVRyYWNrcyhTb3VyY2VCdWZm
ZXJQcml2YXRlQ2xpZW50OjpJbml0aWFsaXphdGlvblNlZ21lCiAgICAgbV9kdXJhdGlvbiA9IFdU
Rk1vdmUoc2VnbWVudC5kdXJhdGlvbik7CiAKICAgICBmb3IgKGF1dG8mIHZpZGVvVHJhY2sgOiBz
ZWdtZW50LnZpZGVvVHJhY2tzKSB7Ci0gICAgICAgIGlmIChhdXRvIHRyYWNrUmVhZGVyID0gVHJh
Y2tSZWFkZXI6OmNyZWF0ZShhbGxvY2F0b3IoKSwgKnRoaXMsIHZpZGVvVHJhY2sudHJhY2suZ2V0
KCkpKQotICAgICAgICAgICAgbV90cmFja1JlYWRlcnMuYXBwZW5kKHRyYWNrUmVhZGVyLnJlbGVh
c2VOb25OdWxsKCkpOwotICAgICAgICAvLyBGSVhNRTogSG93IGRvIHdlIGtub3cgd2hpY2ggdHJh
Y2tzIHNob3VsZCBiZSBlbmFibGVkPwotICAgICAgICBpZiAobV90cmFja1JlYWRlcnMuc2l6ZSgp
ID09IDEpCi0gICAgICAgICAgICBtX3RyYWNrUmVhZGVyc1swXS0+c2V0RW5hYmxlZCh0cnVlKTsK
KyAgICAgICAgYXV0byB0cmFjayA9IHZpZGVvVHJhY2sudHJhY2suZ2V0KCk7CisgICAgICAgIGF1
dG8gdHJhY2tSZWFkZXIgPSBUcmFja1JlYWRlcjo6Y3JlYXRlKGFsbG9jYXRvcigpLCAqdGhpcywg
a0NNTWVkaWFUeXBlX1ZpZGVvLCAqdHJhY2stPnRyYWNrVUlEKCksIHRyYWNrLT5kZWZhdWx0RW5h
YmxlZCgpKTsKKyAgICAgICAgaWYgKCF0cmFja1JlYWRlcikKKyAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgIG1fdHJhY2tSZWFkZXJzLmFwcGVuZCh0cmFja1JlYWRlci5yZWxlYXNlTm9u
TnVsbCgpKTsKICAgICB9CiAKICAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2sgOiBzZWdtZW50LmF1
ZGlvVHJhY2tzKSB7Ci0gICAgICAgIGlmIChhdXRvIHRyYWNrUmVhZGVyID0gVHJhY2tSZWFkZXI6
OmNyZWF0ZShhbGxvY2F0b3IoKSwgKnRoaXMsIGF1ZGlvVHJhY2sudHJhY2suZ2V0KCkpKQotICAg
ICAgICAgICAgbV90cmFja1JlYWRlcnMuYXBwZW5kKHRyYWNrUmVhZGVyLnJlbGVhc2VOb25OdWxs
KCkpOwotICAgICAgICAvLyBGSVhNRTogSG93IGRvIHdlIGtub3cgd2hpY2ggdHJhY2tzIHNob3Vs
ZCBiZSBlbmFibGVkPwotICAgICAgICBpZiAobV90cmFja1JlYWRlcnMuc2l6ZSgpID09IHNlZ21l
bnQudmlkZW9UcmFja3Muc2l6ZSgpICsgMSkKLSAgICAgICAgICAgIG1fdHJhY2tSZWFkZXJzW3Nl
Z21lbnQudmlkZW9UcmFja3Muc2l6ZSgpXS0+c2V0RW5hYmxlZCh0cnVlKTsKKyAgICAgICAgYXV0
byB0cmFjayA9IGF1ZGlvVHJhY2sudHJhY2suZ2V0KCk7CisgICAgICAgIGF1dG8gdHJhY2tSZWFk
ZXIgPSBUcmFja1JlYWRlcjo6Y3JlYXRlKGFsbG9jYXRvcigpLCAqdGhpcywga0NNTWVkaWFUeXBl
X0F1ZGlvLCAqdHJhY2stPnRyYWNrVUlEKCksIHRyYWNrLT5kZWZhdWx0RW5hYmxlZCgpKTsKKyAg
ICAgICAgaWYgKCF0cmFja1JlYWRlcikKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
IG1fdHJhY2tSZWFkZXJzLmFwcGVuZCh0cmFja1JlYWRlci5yZWxlYXNlTm9uTnVsbCgpKTsKICAg
ICB9CiAKICAgICBmb3IgKGF1dG8mIHRleHRUcmFjayA6IHNlZ21lbnQudGV4dFRyYWNrcykgewot
ICAgICAgICBpZiAoYXV0byB0cmFja1JlYWRlciA9IFRyYWNrUmVhZGVyOjpjcmVhdGUoYWxsb2Nh
dG9yKCksICp0aGlzLCB0ZXh0VHJhY2sudHJhY2suZ2V0KCkpKQorICAgICAgICBhdXRvIHRyYWNr
ID0gdGV4dFRyYWNrLnRyYWNrLmdldCgpOworICAgICAgICBpZiAoYXV0byB0cmFja1JlYWRlciA9
IFRyYWNrUmVhZGVyOjpjcmVhdGUoYWxsb2NhdG9yKCksICp0aGlzLCBrQ01NZWRpYVR5cGVfVGV4
dCwgKnRyYWNrLT50cmFja1VJRCgpLCB0cmFjay0+ZGVmYXVsdEVuYWJsZWQoKSkpCiAgICAgICAg
ICAgICBtX3RyYWNrUmVhZGVycy5hcHBlbmQodHJhY2tSZWFkZXIucmVsZWFzZU5vbk51bGwoKSk7
CiAgICAgfQotICAgIAorCiAgICAgbV9wYXJzZVRyYWNrc0NvbmRpdGlvbi5ub3RpZnlBbGwoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVh
ZGVyL1RyYWNrUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1h
dFJlYWRlci9UcmFja1JlYWRlci5jcHAKaW5kZXggNDg2NWE4MDg5NTNkYmYyNTcwOGJlNDFhNDBi
OGNmMjQyZTdiZmQ4NC4uY2RkZmRmNzU3NWU1MTAxYmRkYzcxMjdiZjE3YmI4ZDFmNzkwMTNmNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL1Ry
YWNrUmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvVHJhY2tSZWFkZXIuY3BwCkBAIC0xNDQsMjUgKzE0NCw5IEBAIENvcmVNZWRpYVdyYXBw
ZWQ8VHJhY2tSZWFkZXI+KiBUcmFja1JlYWRlcjo6dW53cmFwKENNQmFzZU9iamVjdFJlZiBvYmpl
Y3QpCiAgICAgcmV0dXJuIHVud3JhcChjaGVja2VkX2NmX2Nhc3Q8V3JhcHBlclJlZj4ob2JqZWN0
KSk7CiB9CiAKLVJlZlB0cjxUcmFja1JlYWRlcj4gVHJhY2tSZWFkZXI6OmNyZWF0ZShBbGxvY2F0
b3ImJiBhbGxvY2F0b3IsIGNvbnN0IEZvcm1hdFJlYWRlciYgZm9ybWF0UmVhZGVyLCBjb25zdCBW
aWRlb1RyYWNrUHJpdmF0ZSogdHJhY2spCitSZWZQdHI8VHJhY2tSZWFkZXI+IFRyYWNrUmVhZGVy
OjpjcmVhdGUoQWxsb2NhdG9yJiYgYWxsb2NhdG9yLCBjb25zdCBGb3JtYXRSZWFkZXImIGZvcm1h
dFJlYWRlciwgQ01NZWRpYVR5cGUgbWVkaWFUeXBlLCB1aW50NjRfdCB0cmFja0lELCBPcHRpb25h
bDxib29sPiBlbmFibGVkKQogewotICAgIGlmICghdHJhY2spCi0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgKGFsbG9jYXRvcikgVHJhY2tSZWFkZXIoV1RG
TW92ZShhbGxvY2F0b3IpLCBmb3JtYXRSZWFkZXIsIGtDTU1lZGlhVHlwZV9WaWRlbywgKnRyYWNr
LT50cmFja1VJRCgpKSk7Ci19Ci0KLVJlZlB0cjxUcmFja1JlYWRlcj4gVHJhY2tSZWFkZXI6OmNy
ZWF0ZShBbGxvY2F0b3ImJiBhbGxvY2F0b3IsIGNvbnN0IEZvcm1hdFJlYWRlciYgZm9ybWF0UmVh
ZGVyLCBjb25zdCBBdWRpb1RyYWNrUHJpdmF0ZSogdHJhY2spCi17Ci0gICAgaWYgKCF0cmFjaykK
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyAoYWxsb2Nh
dG9yKSBUcmFja1JlYWRlcihXVEZNb3ZlKGFsbG9jYXRvciksIGZvcm1hdFJlYWRlciwga0NNTWVk
aWFUeXBlX0F1ZGlvLCAqdHJhY2stPnRyYWNrVUlEKCkpKTsKLX0KLQotUmVmUHRyPFRyYWNrUmVh
ZGVyPiBUcmFja1JlYWRlcjo6Y3JlYXRlKEFsbG9jYXRvciYmIGFsbG9jYXRvciwgY29uc3QgRm9y
bWF0UmVhZGVyJiBmb3JtYXRSZWFkZXIsIGNvbnN0IEluYmFuZFRleHRUcmFja1ByaXZhdGUqIHRy
YWNrKQotewotICAgIGlmICghdHJhY2spCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgKGFsbG9jYXRvcikgVHJhY2tSZWFkZXIoV1RGTW92ZShhbGxvY2F0
b3IpLCBmb3JtYXRSZWFkZXIsIGtDTU1lZGlhVHlwZV9UZXh0LCAqdHJhY2stPnRyYWNrVUlEKCkp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IChhbGxvY2F0b3IpIFRyYWNrUmVhZGVyKFdURk1v
dmUoYWxsb2NhdG9yKSwgZm9ybWF0UmVhZGVyLCBtZWRpYVR5cGUsIHRyYWNrSUQsIGVuYWJsZWQp
KTsKIH0KIAogV29ya1F1ZXVlJiBUcmFja1JlYWRlcjo6c3RvcmFnZVF1ZXVlKCkKQEAgLTE3MSwx
MyArMTU1LDE2IEBAIFdvcmtRdWV1ZSYgVHJhY2tSZWFkZXI6OnN0b3JhZ2VRdWV1ZSgpCiAgICAg
cmV0dXJuIHF1ZXVlOwogfQogCi1UcmFja1JlYWRlcjo6VHJhY2tSZWFkZXIoQWxsb2NhdG9yJiYg
YWxsb2NhdG9yLCBjb25zdCBGb3JtYXRSZWFkZXImIGZvcm1hdFJlYWRlciwgQ01NZWRpYVR5cGUg
bWVkaWFUeXBlLCB1aW50NjRfdCB0cmFja0lEKQorVHJhY2tSZWFkZXI6OlRyYWNrUmVhZGVyKEFs
bG9jYXRvciYmIGFsbG9jYXRvciwgY29uc3QgRm9ybWF0UmVhZGVyJiBmb3JtYXRSZWFkZXIsIENN
TWVkaWFUeXBlIG1lZGlhVHlwZSwgdWludDY0X3QgdHJhY2tJRCwgT3B0aW9uYWw8Ym9vbD4gZW5h
YmxlZCkKICAgICA6IENvcmVNZWRpYVdyYXBwZWQoV1RGTW92ZShhbGxvY2F0b3IpKQogICAgICwg
bV90cmFja0lEKHRyYWNrSUQpCiAgICAgLCBtX21lZGlhVHlwZShtZWRpYVR5cGUpCiAgICAgLCBt
X2R1cmF0aW9uKGZvcm1hdFJlYWRlci5kdXJhdGlvbigpKQogewogICAgIEFTU0VSVCghaXNNYWlu
VGhyZWFkKCkpOworCisgICAgaWYgKGVuYWJsZWQpCisgICAgICAgIG1faXNFbmFibGVkID0gZW5h
YmxlZC52YWx1ZSgpID8gRW5hYmxlZDo6VHJ1ZSA6IEVuYWJsZWQ6OkZhbHNlOwogfQogCiB2b2lk
IFRyYWNrUmVhZGVyOjphZGRTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgTVRQbHVn
aW5CeXRlU291cmNlUmVmIGJ5dGVTb3VyY2UpCkBAIC0yMTYsMTMgKzIwMywxNiBAQCB2b2lkIFRy
YWNrUmVhZGVyOjpmaW5pc2hQYXJzaW5nKCkKICAgICBpZiAoIW1fc2FtcGxlU3RvcmFnZSkKICAg
ICAgICAgbV9zYW1wbGVTdG9yYWdlID0gbWFrZVVuaXF1ZTxTYW1wbGVTdG9yYWdlPigpOwogICAg
IG1fc2FtcGxlU3RvcmFnZS0+aGFzQWxsU2FtcGxlcyA9IHRydWU7CisgICAgaWYgKG1faXNFbmFi
bGVkID09IEVuYWJsZWQ6OlVua25vd24pCisgICAgICAgIG1faXNFbmFibGVkID0gbV9zYW1wbGVT
dG9yYWdlLT5zYW1wbGVNYXAuZW1wdHkoKSA/IEVuYWJsZWQ6OkZhbHNlIDogRW5hYmxlZDo6VHJ1
ZTsKICAgICBtX3NhbXBsZVN0b3JhZ2VDb25kaXRpb24ubm90aWZ5QWxsKCk7CiB9CiAKIE9TU3Rh
dHVzIFRyYWNrUmVhZGVyOjpjb3B5UHJvcGVydHkoQ0ZTdHJpbmdSZWYga2V5LCBDRkFsbG9jYXRv
clJlZiBhbGxvY2F0b3IsIHZvaWQqIGNvcGllZFZhbHVlKQogewotICAgIGlmIChDRkVxdWFsKGtl
eSwgUEFMOjpnZXRfTWVkaWFUb29sYm94X2tNVFBsdWdpblRyYWNrUmVhZGVyUHJvcGVydHlfRW5h
YmxlZCgpKSkgewotICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDxDRkJvb2xlYW5SZWYqPihjb3Bp
ZWRWYWx1ZSkgPSByZXRhaW5QdHIobV9pc0VuYWJsZWQgPyBrQ0ZCb29sZWFuVHJ1ZSA6IGtDRkJv
b2xlYW5GYWxzZSkubGVha1JlZigpOworICAgIC8vIERvbid0IGJsb2NrIHdhaXRpbmcgZm9yIG1l
ZGlhIGlmIHRoZSB3ZSBrbm93IHRoZSBlbmFibGVkIHN0YXRlLgorICAgIGlmIChDRkVxdWFsKGtl
eSwgUEFMOjpnZXRfTWVkaWFUb29sYm94X2tNVFBsdWdpblRyYWNrUmVhZGVyUHJvcGVydHlfRW5h
YmxlZCgpKSAmJiBtX2lzRW5hYmxlZCAhPSBFbmFibGVkOjpVbmtub3duKSB7CisgICAgICAgICpy
ZWludGVycHJldF9jYXN0PENGQm9vbGVhblJlZio+KGNvcGllZFZhbHVlKSA9IHJldGFpblB0ciht
X2lzRW5hYmxlZCA9PSBFbmFibGVkOjpUcnVlID8ga0NGQm9vbGVhblRydWUgOiBrQ0ZCb29sZWFu
RmFsc2UpLmxlYWtSZWYoKTsKICAgICAgICAgcmV0dXJuIG5vRXJyOwogICAgIH0KIApAQCAtMjMy
LDYgKzIyMiwxNSBAQCBPU1N0YXR1cyBUcmFja1JlYWRlcjo6Y29weVByb3BlcnR5KENGU3RyaW5n
UmVmIGtleSwgQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCB2bwogICAgIH0pOwogCiAgICAgYXV0
byYgc2FtcGxlTWFwID0gbV9zYW1wbGVTdG9yYWdlLT5zYW1wbGVNYXA7CisKKyAgICBpZiAoQ0ZF
cXVhbChrZXksIFBBTDo6Z2V0X01lZGlhVG9vbGJveF9rTVRQbHVnaW5UcmFja1JlYWRlclByb3Bl
cnR5X0VuYWJsZWQoKSkpIHsKKyAgICAgICAgaWYgKG1faXNFbmFibGVkID09IEVuYWJsZWQ6OlVu
a25vd24pCisgICAgICAgICAgICBtX2lzRW5hYmxlZCA9IHNhbXBsZU1hcC5lbXB0eSgpID8gRW5h
YmxlZDo6RmFsc2UgOiBFbmFibGVkOjpUcnVlOworCisgICAgICAgICpyZWludGVycHJldF9jYXN0
PENGQm9vbGVhblJlZio+KGNvcGllZFZhbHVlKSA9IHJldGFpblB0cihtX2lzRW5hYmxlZCA9PSBF
bmFibGVkOjpUcnVlID8ga0NGQm9vbGVhblRydWUgOiBrQ0ZCb29sZWFuRmFsc2UpLmxlYWtSZWYo
KTsKKyAgICAgICAgcmV0dXJuIG5vRXJyOworICAgIH0KKwogICAgIGlmIChzYW1wbGVNYXAuZW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIGtDTUJhc2VPYmplY3RFcnJvcl9WYWx1ZU5vdEF2YWlsYWJs
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVh
ZGVyL1RyYWNrUmVhZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvVHJhY2tSZWFkZXIuaAppbmRleCA3YWIyMWUyNWMzOGE1Y2RmZmM2NWU4MTFkY2EzMTYz
NjBhNDc1MWQwLi5mNDVmMWQ1NzA2NjMyZTY2M2NmY2FmM2ZhYWFkM2Y4YTBhYTliMzY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tS
ZWFkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIv
VHJhY2tSZWFkZXIuaApAQCAtNTQsMjYgKzU0LDIzIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29u
c3RleHByIFdyYXBwZXJDbGFzcyB3cmFwcGVyQ2xhc3MoKTsKICAgICBzdGF0aWMgQ01CYXNlQ2xh
c3NJRCB3cmFwcGVyQ2xhc3NJRCgpOwogICAgIHN0YXRpYyBDb3JlTWVkaWFXcmFwcGVkPFRyYWNr
UmVhZGVyPiogdW53cmFwKENNQmFzZU9iamVjdFJlZik7Ci0KLSAgICBzdGF0aWMgUmVmUHRyPFRy
YWNrUmVhZGVyPiBjcmVhdGUoQWxsb2NhdG9yJiYsIGNvbnN0IEZvcm1hdFJlYWRlciYsIGNvbnN0
IFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlKik7Ci0gICAgc3RhdGljIFJlZlB0cjxUcmFja1Jl
YWRlcj4gY3JlYXRlKEFsbG9jYXRvciYmLCBjb25zdCBGb3JtYXRSZWFkZXImLCBjb25zdCBXZWJD
b3JlOjpBdWRpb1RyYWNrUHJpdmF0ZSopOwotICAgIHN0YXRpYyBSZWZQdHI8VHJhY2tSZWFkZXI+
IGNyZWF0ZShBbGxvY2F0b3ImJiwgY29uc3QgRm9ybWF0UmVhZGVyJiwgY29uc3QgV2ViQ29yZTo6
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSopOwotCiAgICAgc3RhdGljIFdURjo6V29ya1F1ZXVlJiBz
dG9yYWdlUXVldWUoKTsKIAorICAgIHN0YXRpYyBSZWZQdHI8VHJhY2tSZWFkZXI+IGNyZWF0ZShB
bGxvY2F0b3ImJiwgY29uc3QgRm9ybWF0UmVhZGVyJiwgQ01NZWRpYVR5cGUsIHVpbnQ2NF90LCBP
cHRpb25hbDxib29sPik7CisKICAgICB1aW50NjRfdCB0cmFja0lEKCkgY29uc3QgeyByZXR1cm4g
bV90cmFja0lEOyB9CiAgICAgdm9pZCBhZGRTYW1wbGUoUmVmPFdlYkNvcmU6Ok1lZGlhU2FtcGxl
PiYmLCBNVFBsdWdpbkJ5dGVTb3VyY2VSZWYpOwogICAgIHZvaWQgd2FpdEZvclNhbXBsZShGdW5j
dGlvbjxib29sKFdlYkNvcmU6OlNhbXBsZU1hcCYsIGJvb2wpPiYmKSBjb25zdDsKIAotICAgIGJv
b2wgaXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0VuYWJsZWQ7IH0KLSAgICB2b2lkIHNl
dEVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1faXNFbmFibGVkID0gZW5hYmxlZDsgfQorICAgIHZv
aWQgc2V0RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9pc0VuYWJsZWQgPSBlbmFibGVkID8gRW5h
YmxlZDo6VHJ1ZSA6IEVuYWJsZWQ6OkZhbHNlOyB9CisgICAgQ01NZWRpYVR5cGUgbWVkaWFUeXBl
KCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVR5cGU7IH0KIAogICAgIHZvaWQgZmluaXNoUGFyc2lu
ZygpOwogCiBwcml2YXRlOgogICAgIHVzaW5nIENvcmVNZWRpYVdyYXBwZWQ8VHJhY2tSZWFkZXI+
Ojp1bndyYXA7CiAKLSAgICBUcmFja1JlYWRlcihBbGxvY2F0b3ImJiwgY29uc3QgRm9ybWF0UmVh
ZGVyJiwgQ01NZWRpYVR5cGUsIHVpbnQ2NF90KTsKKyAgICBUcmFja1JlYWRlcihBbGxvY2F0b3Im
JiwgY29uc3QgRm9ybWF0UmVhZGVyJiwgQ01NZWRpYVR5cGUsIHVpbnQ2NF90LCBPcHRpb25hbDxi
b29sPik7CiAKICAgICAvLyBDTUJhc2VDbGFzcwogICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9u
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gIldlYktpdDo6VHJhY2tSZWFkZXIiX3M7IH0KQEAgLTkz
LDEwICs5MCwxMiBAQCBwcml2YXRlOgogICAgICAgICBib29sIGhhc0FsbFNhbXBsZXMgeyBmYWxz
ZSB9OwogICAgIH07CiAKKyAgICBlbnVtIEVuYWJsZWQgOiB1aW50OF90IHsgVW5rbm93biwgRmFs
c2UsIFRydWUgfTsKKwogICAgIGNvbnN0IHVpbnQ2NF90IG1fdHJhY2tJRDsKICAgICBjb25zdCBD
TU1lZGlhVHlwZSBtX21lZGlhVHlwZTsKICAgICBjb25zdCBNZWRpYVRpbWUgbV9kdXJhdGlvbjsK
LSAgICBzdGQ6OmF0b21pYzxib29sPiBtX2lzRW5hYmxlZCB7IGZhbHNlIH07CisgICAgc3RkOjph
dG9taWM8RW5hYmxlZD4gbV9pc0VuYWJsZWQgeyBFbmFibGVkOjpVbmtub3duIH07CiAgICAgbXV0
YWJsZSBDb25kaXRpb24gbV9zYW1wbGVTdG9yYWdlQ29uZGl0aW9uOwogICAgIG11dGFibGUgTG9j
ayBtX3NhbXBsZVN0b3JhZ2VMb2NrOwogICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPFNhbXBs
ZVN0b3JhZ2U+IG1fc2FtcGxlU3RvcmFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYmMzYzdmYTM2MmY4ZWYyYjg0M2FmMTZiOThmOGUzNzc3
N2M0MzIzMS4uY2M3ODNkZjk0YTVhMTJmNzEyYTE3MjA4NTZiMjQ0OGFiNDliOWZkZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM4MzgsNiAr
MzgzOCw5IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVy
ZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgICAgICAgICBzZXR0aW5ncy5zZXRXZWJBdXRoZW50aWNh
dGlvbkVuYWJsZWQodHJ1ZSk7CiAgICAgfQogI2VuZGlmCisKKyAgICBQbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXI6OnNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKSk7CisgICAg
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXRWb3JiaXNEZWNvZGVyRW5hYmxlZChSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnZvcmJpc0RlY29kZXJFbmFibGVk
KCkpOwogfQogCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggNzFkNGE5YTc4YWIw
Y2NlZDlkMDlhMmY5YjQ2NjI0MTFjMDc4NGJjNy4uYTE4YmM1MGNiNTE3YTkzMjUxMGQ0YTFlNTAx
YTQyZDEzOWQzOWQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tCkBAIC02OCw3ICs2OCw5IEBACiAjaW1wb3J0IDxXZWJDb3JlL05T
U2Nyb2xsZXJJbXBEZXRhaWxzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BlcmZvcm1hbmNlTG9nZ2lu
Zy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oPgorI2ltcG9y
dCA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CisjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvU1dDb250ZXh0TWFuYWdlci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N5c3Rl
bVNvdW5kTWFuYWdlci5oPgpAQCAtMzI4LDYgKzMzMCwxNCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBs
YXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYg
cGFyYQogICAgIHB0aHJlYWRfc2V0X2ZpeGVkcHJpb3JpdHlfc2VsZigpOwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQor
ICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2V0V2ViTUZvcm1hdFJlYWRlckVuYWJs
ZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJNRm9ybWF0UmVh
ZGVyRW5hYmxlZCgpKTsKKyNlbmRpZgorCisjaWYgRU5BQkxFKFZPUkJJUykgJiYgUExBVEZPUk0o
TUFDKQorICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2V0Vm9yYmlzRGVjb2RlckVu
YWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS52b3JiaXNEZWNv
ZGVyRW5hYmxlZCgpKTsKKyNlbmRpZgorCiAgICAgaWYgKCFwYXJhbWV0ZXJzLm1lZGlhTUlNRVR5
cGVzLmlzRW1wdHkoKSkKICAgICAgICAgc2V0TWVkaWFNSU1FVHlwZXMocGFyYW1ldGVycy5tZWRp
YU1JTUVUeXBlcyk7CiAgICAgZWxzZSB7Cg==
</data>
<flag name="commit-queue"
          id="434698"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417062</attachid>
            <date>2021-01-05 17:33:16 -0800</date>
            <delta_ts>2021-01-05 23:26:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219961-20210105173315.patch</filename>
            <type>text/plain</type>
            <size>38387</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjRiMDk0MDA0ZmI4MjZm
ZjUwMzIxNmU3NjE3MzdiZjliNDhmZDgxZS4uZDQ5YzNjOTRmMmMxMTg1NGM5NzhiMGI4MWIwNjc3
ZDQ1YmM2NjZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTAxLTA1ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2Vi
TSBmb3JtYXQgcmVhZGVyIGRvZXNuJ3Qgd29yayB3aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5
OTYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjM5OTAxND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBBbmR5IEVzdGVzLgorCisgICAgICAgIFdvcmsgYXJvdW5kIGEgQ29yZU1lZGlhIGJ1ZyB0
aGF0IG1ha2VzIHRoZSBmb3JtYXQgcmVhZGVyIGZhaWwgdG8gbG9hZCB3aGVuIHRoZQorICAgICAg
ICBBVlVSTEFzc2V0T3V0T2ZCYW5kTUlNRVR5cGVLZXlpcyBpbmNsdWRlZCBpbiB0aGUgQVZVUkxB
c3NldCBvcHRpb25zIGRpY3Rpb25hcnkuCisgICAgICAgIEFsc28gaW5jbHVkZSBzb21lIGNsZWFu
dXA6CisgICAgICAgIC0gTW92ZSB0aGUgY29kZSB0byBjaGVjayBmb3IgV2ViTSBNSU1FIHR5cGVz
IGZyb20gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQworICAgICAgICAgIHRvIEFW
QXNzZXRNSU1FVHlwZUNhY2hlLgorICAgICAgICAtIERvbid0IHVzZSBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzIGluIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuCisgICAgICAgIC0g
UmVnaXN0ZXIgdGhlIFdlYk0gZm9ybWF0IHJlYWRlciB3aGVuIGNyZWF0aW5nIGFuIEFWVVJMQXNz
ZXQgZm9yIGEgV2ViTSB1cmwgaW5zdGVhZAorICAgICAgICAgIG9mIHdoZW4gY2hlY2tpbmcgdGhl
IE1JTUUgdHlwZS4KKyAgICAgICAgLSBDbGVhbnVwIFdlYk0gImNvZGVjcyIgcGFyYW1ldGVyIHBh
cnNpbmcuCisgICAgICAgIC0gSXQgaXMgYSBsYXllcmluZyB2aW9sYXRpb24gdG8gdXNlIFJ1bnRp
bWVTZXR0aW5ncyBmcm9tIGluc2lkZSBvZiAvcGxhdGZvcm0uCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp3ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFdlYk1G
b3JtYXRSZWFkZXJFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlcjo6dm9yYmlzRGVjb2RlckVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXRWb3JiaXNEZWNvZGVyRW5hYmxlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUcmFja1ByaXZhdGVCYXNlOjpkZWZhdWx0RW5hYmxlZCBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVk
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlNRVR5cGVDYWNoZTo6aW5pdGlhbGl6
ZUNhY2hlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
cmVnaXN0ZXJGb3JtYXRSZWFkZXJJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjp3aWxs
VXNlV2ViTUZvcm1hdFJlYWRlckZvclR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5
cGVBbmRDb2RlY3MpOgorICAgICAgICAoV2ViQ29yZTo6ZW5zdXJlRm9ybWF0UmVhZGVySXNSZWdp
c3RlcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzRm9ybWF0UmVhZGVyQXZhaWxh
YmxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BdWRpb1Ry
YWNrUHJpdmF0ZVdlYk0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVX
ZWJNOjpkZWZhdWx0RW5hYmxlZCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvQXVkaW9UcmFja1ByaXZhdGVXZWJNLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
b3VyY2VCdWZmZXJQYXJzZXJXZWJNOjp3ZWJtTUlNRVR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OmNhbkxvYWRGb3JtYXRSZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6aXNXZWJNRm9ybWF0UmVhZGVyQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGVXZWJNOjpkZWZhdWx0RW5hYmxl
ZCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1By
aXZhdGVXZWJNLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlv
VXRpbGl0aWVzQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjppc1ZvcmJpc0RlY29kZXJBdmFp
bGFibGUpOgorCiAyMDIxLTAxLTA1ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNv
bnkuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb11bY3VybF0gRW5hYmxlIENVUkxTU0xPUFRfTkFU
SVZFX0NBIGZsYWcgdG8gdXNlIHN5c3RlbSdzIENBIGNlcnRzIGluc3RlYWQgb2YgY2FjZXJ0LnBl
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBhZDc1ZTdkMjM0MjQyMzA0MjE5NDYyZDVlNzFlN2RlYTllYjNhZjcwLi5i
MjY0MWE0NGY5MzRiOTZmNDk0ZjhmMmJmMmQxZjlkYTdiY2IxMzRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI5IEBACisyMDIxLTAxLTA1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViTSBmb3JtYXQgcmVhZGVyIGRvZXNuJ3Qgd29yayB3
aXRoIGEgdXJsIGluIGEgPHNvdXJjZT4gZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5OTYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
MjM5OTAxND4KKworICAgICAgICBSZXZpZXdlZCBieSBBbmR5IEVzdGVzLgorCisgICAgICAgIE9u
bHkgZW5hYmxlIGEgV2ViTSB0cmFjayB3aGVuIHRoZSBpdCBoYXMgRmxhZ0VuYWJsZWQgZWxlbWVu
dCwgb3Igd2hlbiB3ZSBzZWUgdGhhdAorICAgICAgICBpdCBoYXMgbWVkaWEgc2FtcGxlcy4gVGhp
cyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGVyZSBhcmUgV2ViTSBmaWxlcyB3aXRoIGVtcHR5IHRy
YWNrcywKKyAgICAgICAgYW5kIENvcmVNZWRpYSB3b24ndCBwbGF5IGEgZmlsZSBpZiBhbnkgZW5h
YmxlZCB0cmFjayBkb2Vzbid0IGhhdmUgc2FtcGxlcy4KKworICAgICAgICAqIFNoYXJlZC9tYWMv
TWVkaWFGb3JtYXRSZWFkZXIvRm9ybWF0UmVhZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Rm9y
bWF0UmVhZGVyOjpkaWRQYXJzZVRyYWNrcyk6CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZv
cm1hdFJlYWRlci9UcmFja1JlYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRyYWNrUmVhZGVy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpUcmFja1JlYWRlcjo6VHJhY2tSZWFkZXIpOgor
ICAgICAgICAoV2ViS2l0OjpUcmFja1JlYWRlcjo6ZmluaXNoUGFyc2luZyk6CisgICAgICAgIChX
ZWJLaXQ6OlRyYWNrUmVhZGVyOjppc0VuYWJsZWQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpU
cmFja1JlYWRlcjo6Y29weVByb3BlcnR5KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9y
bWF0UmVhZGVyL1RyYWNrUmVhZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAy
MDIxLTAxLTA1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgTWFrZSBXZWJQYWdlOjpGb3JjZVJlcGFpbnQgdXNlIENvbXBsZXRpb25IYW5kbGVy
IGluc3RlYWQgb2YgVm9pZENhbGxiYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAppbmRleCAx
NzVhYWZlNjRlYWEyNjdiOGEzMjZmMGM2MWUyMDM3OGFjNjMwOWNhLi41NDdhZjUzYzJmY2Q0MTY5
Yjc3NzAyMjk4MDZiZDlhODQ5MTgyZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAg
LTM1LDYgKzM1LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIEVOQUJMRShWSURFTykg
fHwgRU5BQkxFKFdFQl9BVURJTykKIAorI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUo
TVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCitib29sIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cjo6bV93ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZDsKKyNlbmRpZgorCisjaWYgRU5BQkxFKFZPUkJJ
UykgJiYgUExBVEZPUk0oTUFDKQorYm9vbCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6Om1f
dm9yYmlzRGVjb2RlckVuYWJsZWQ7CisjZW5kaWYKKwogc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI+JiBzaGFyZWRQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXIoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OnVuaXF1ZV9wdHI8UGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyPj4gcGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOwpA
QCAtNjEwLDYgKzYxOCw0MiBAQCB2b2lkIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2V0
U2hvdWxkRGVhY3RpdmF0ZUF1ZGlvU2Vzc2lvbihib29sIGRlYWN0aXZhdAogICAgIGRlYWN0aXZh
dGVBdWRpb1Nlc3Npb24oKSA9IGRlYWN0aXZhdGU7CiB9CiAKK2Jvb2wgUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyOjp3ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpCit7CisjaWYgRU5BQkxFKE1F
RElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICByZXR1cm4g
bV93ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZDsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2Vu
ZGlmCit9CisKK3ZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXRXZWJNRm9ybWF0
UmVhZGVyRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkg
JiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICBtX3dlYk1Gb3JtYXRSZWFkZXJF
bmFibGVkID0gZW5hYmxlZDsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGVuYWJsZWQpOworI2Vu
ZGlmCit9CisKK2Jvb2wgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp2b3JiaXNEZWNvZGVy
RW5hYmxlZCgpCit7CisjaWYgRU5BQkxFKFZPUkJJUykgJiYgUExBVEZPUk0oTUFDKQorICAgIHJl
dHVybiBtX3ZvcmJpc0RlY29kZXJFbmFibGVkOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7Cisj
ZW5kaWYKK30KKwordm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFZvcmJpc0Rl
Y29kZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyNpZiBFTkFCTEUoVk9SQklTKSAmJiBQTEFU
Rk9STShNQUMpCisgICAgbV92b3JiaXNEZWNvZGVyRW5hYmxlZCA9IGVuYWJsZWQ7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShlbmFibGVkKTsKKyNlbmRpZgorfQorCiAjZWxzZSAvLyBFTkFCTEUo
VklERU8pIHx8IEVOQUJMRShXRUJfQVVESU8pCiAKIHZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25N
YW5hZ2VyOjp1cGRhdGVOb3dQbGF5aW5nSW5mb0lmTmVjZXNzYXJ5KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyLmgKaW5kZXggNzc0Y2IxY2EyNTQzMmU0NjRkYmZlMTk5NTM0YjViZWZjMGQzYTYxYy4uYWEw
ZjJjYzE5NGQxYzNiNDJhYWFlMDkxMzcxMjk3NWZkOTk0ZjFhZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyLmgKQEAgLTU4LDYgKzU4LDExIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCBzZXRTaG91bGREZWFjdGl2YXRlQXVkaW9TZXNzaW9uKGJvb2wpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBib29sIHNob3VsZERlYWN0aXZhdGVBdWRpb1Nlc3Npb24oKTsKIAor
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVk
KGJvb2wpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHdlYk1Gb3JtYXRSZWFkZXJF
bmFibGVkKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0Vm9yYmlzRGVjb2Rl
ckVuYWJsZWQoYm9vbCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgdm9yYmlzRGVj
b2RlckVuYWJsZWQoKTsKKwogICAgIHZpcnR1YWwgflBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cigpID0gZGVmYXVsdDsKIAogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVNlc3Npb25TdGF0dXNV
cGRhdGUoKSB7IH0KQEAgLTIwMSw2ICsyMDYsMTMgQEAgcHJpdmF0ZToKICAgICBXZWFrSGFzaFNl
dDxQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXVkaW9DYXB0dXJlU291cmNlPiBtX2F1ZGlvQ2FwdHVy
ZVNvdXJjZXM7CiAgICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gdXBkYXRlU2Vzc2lvblN0YXRl
UXVldWU7CiAKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JN
QVRfUkVBREVSKQorICAgIHN0YXRpYyBib29sIG1fd2ViTUZvcm1hdFJlYWRlckVuYWJsZWQ7Cisj
ZW5kaWYKKyNpZiBFTkFCTEUoVk9SQklTKSAmJiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIGJv
b2wgbV92b3JiaXNEZWNvZGVyRW5hYmxlZDsKKyNlbmRpZgorCiAjaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECiAgICAgUmVmPEFnZ3JlZ2F0ZUxvZ2dlcj4gbV9sb2dnZXI7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5j
cHAKaW5kZXggNGJkMjJmZTQzMjc4ZWI1MGRiNGY2OWI0ZWJkYzBmMWVjODA5YTVlNC4uNzExMzhk
ZjI5NGFmODliMzA1ZDEzZTgwOWQ3ZjRkMjdkOTFiNmQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAKQEAgLTM4LDYg
KzM4LDExIEBAIE9wdGlvbmFsPHVpbnQ2NF90PiBUcmFja1ByaXZhdGVCYXNlOjp0cmFja1VJRCgp
IGNvbnN0CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAorT3B0aW9uYWw8Ym9vbD4gVHJh
Y2tQcml2YXRlQmFzZTo6ZGVmYXVsdEVuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7Cit9CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIAogc3RhdGljIHVpbnQ2
NF90IHNfdW5pcXVlSWQgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oCmluZGV4IGY0NGVmY2JlNTEyZjQ2MTc4NWY3MTQwZWYy
N2M1OTE1YmE0YzM1ZTAuLjMwOTk2MTQyMDQ4NTVkOTk2OWQwNGM2ZjA3OTgzYzI3Nzc0ZTdmM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0
ZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZh
dGVCYXNlLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBpbnQgdHJh
Y2tJbmRleCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIE9wdGlvbmFsPHVpbnQ2
NF90PiB0cmFja1VJRCgpIGNvbnN0OworICAgIHZpcnR1YWwgT3B0aW9uYWw8Ym9vbD4gZGVmYXVs
dEVuYWJsZWQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgTWVkaWFUaW1lIHN0YXJ0VGltZVZhcmlh
bmNlKCkgY29uc3QgeyByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FW
QXNzZXRNSU1FVHlwZUNhY2hlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KaW5kZXggODcwNjYyMTQ2
NmI1OTU3ZDg1N2M4ZTZhOTdjOTFlYTYzZjQ2MDFmOS4uMzU5M2JkNDRjOTQxOThjNDU5MDA4MDRk
NzJhYWQ3ODczMmZhZTI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1J
TUVUeXBlQ2FjaGUubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBQTEFURk9STShDT0NPQSkKIAog
I2ltcG9ydCAiQ29udGVudFR5cGUuaCIKKyNpbXBvcnQgIlNvdXJjZUJ1ZmZlclBhcnNlcldlYk0u
aCIKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2ltcG9ydCA8cGFsL2Nv
Y29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CiAKQEAgLTYzLDkgKzY0LDE2IEBAIGJvb2wgQVZB
c3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVkVHlwZShjb25zdCBDb250ZW50VHlw
ZSYgdHlwZSkKIHsKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCiAgICAg
QVNTRVJUKGlzQXZhaWxhYmxlKCkpOwotICAgIHJldHVybiBbUEFMOjpnZXRBVlVSTEFzc2V0Q2xh
c3MoKSBpc1BsYXlhYmxlRXh0ZW5kZWRNSU1FVHlwZTp0eXBlLnJhdygpXTsKKyAgICBpZiAoW1BB
TDo6Z2V0QVZVUkxBc3NldENsYXNzKCkgaXNQbGF5YWJsZUV4dGVuZGVkTUlNRVR5cGU6dHlwZS5y
YXcoKV0pCisgICAgICAgIHJldHVybiB0cnVlOworCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkg
JiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICBpZiAoU291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZCh0eXBlKSA9PSBNZWRpYVBsYXllckVudW1z
OjpTdXBwb3J0c1R5cGU6OklzU3VwcG9ydGVkKQorICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRp
ZgogCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQorCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCkBAIC0xNDgsNiArMTU2LDEzIEBAIHZvaWQgQVZBc3NldE1JTUVU
eXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5z
aXRpdmVICiAgICAgZm9yIChOU1N0cmluZyogdHlwZSBpbiBbUEFMOjpnZXRBVlVSTEFzc2V0Q2xh
c3MoKSBhdWRpb3Zpc3VhbE1JTUVUeXBlc10pCiAgICAgICAgIGNhY2hlLmFkZCh0eXBlKTsKIAor
I2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIp
CisgICAgaWYgKFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzV2ViTUZvcm1hdFJlYWRlckF2YWls
YWJsZSgpKSB7CisgICAgICAgIGF1dG8gd2VibVR5cGVzID0gU291cmNlQnVmZmVyUGFyc2VyV2Vi
TTo6d2VibU1JTUVUeXBlcygpOworICAgICAgICBjYWNoZS5hZGQod2VibVR5cGVzLmJlZ2luKCks
IHdlYm1UeXBlcy5lbmQoKSk7CisgICAgfQorI2VuZGlmCisKICAgICBpZiAobV9jYWNoZVR5cGVD
YWxsYmFjaykKICAgICAgICAgbV9jYWNoZVR5cGVDYWxsYmFjayhjb3B5VG9WZWN0b3IoY2FjaGUp
KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggZDY0YTcyNTYyYTI0YzBkOGEx
ZGJiYTMwOWNlNTE1YzhjZmVjNGFlMS4uODZjYWY0NWViM2NjNTU5ZmQ2NGZkNGRiMGJkMDlkMzJj
MGM2ZWViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC01Niw3ICs1Niw2IEBACiAjaW1w
b3J0ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVRpbWVSYW5n
ZXMuaCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgotI2ltcG9ydCAiUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2ltcG9ydCAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbXBv
cnQgIlNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVNYWMuaCIKICNpbXBvcnQgIlNoYXJlZEJ1ZmZl
ci5oIgpAQCAtMTAwLDcgKzk5LDYgQEAKICNpbXBvcnQgPHd0Zi9PU09iamVjdFB0ci5oPgogI2lt
cG9ydCA8d3RmL1VSTC5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29hLmg+Ci0jaW1w
b3J0IDx3dGYvc3BpL2Rhcndpbi9PU1ZhcmlhbnRTUEkuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KICNpbXBvcnQgPHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oPgogCkBAIC0y
NzAsNiArMjY4LDIwIEBAIHN0YXRpYyBkaXNwYXRjaF9xdWV1ZV90IGdsb2JhbFB1bGxEZWxlZ2F0
ZVF1ZXVlKCkKICAgICByZXR1cm4gZ2xvYmFsUXVldWU7CiB9CiAKK3N0YXRpYyB2b2lkIHJlZ2lz
dGVyRm9ybWF0UmVhZGVySWZOZWNlc3NhcnkoKQoreworI2lmIEVOQUJMRShNRURJQV9TT1VSQ0Up
ICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCisgICAgc3RhdGljIGRpc3BhdGNoX29u
Y2VfdCBvbmNlVG9rZW47CisgICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeeworICAgICAg
ICAvLyBMaWtlIHdlIGRvIGZvciBvdGhlciBtZWRpYSBmb3JtYXRzLCBhbGxvdyB0aGUgZm9ybWF0
IHJlYWRlciB0byBydW4gaW4gdGhlIFdlYkNvbnRlbnQgb3IgR1BVIHByb2Nlc3MKKyAgICAgICAg
Ly8gKHdoaWNoIGlzIGFscmVhZHkgYXBwcm9wcmlhdGVseSBzYW5kYm94ZWQpIHJhdGhlciB0aGFu
IGluIGEgc2VwYXJhdGUgTWVkaWFUb29sYm94IFhQQyBzZXJ2aWNlLgorICAgICAgICBSRUxFQVNF
X0FTU0VSVChpc0luR1BVUHJvY2VzcygpIHx8IGlzSW5XZWJQcm9jZXNzKCkpOworICAgICAgICBN
VFJlZ2lzdGVyUGx1Z2luRm9ybWF0UmVhZGVyQnVuZGxlRGlyZWN0b3J5KChfX2JyaWRnZSBDRlVS
TFJlZilOU0J1bmRsZS5tYWluQnVuZGxlLmJ1aWx0SW5QbHVnSW5zVVJMKTsKKyAgICAgICAgTVRQ
bHVnaW5Gb3JtYXRSZWFkZXJEaXNhYmxlU2FuZGJveGluZygpOworICAgIH0pOworI2VuZGlmCit9
CisKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OkZhY3RvcnkgZmlu
YWwgOiBwdWJsaWMgTWVkaWFQbGF5ZXJGYWN0b3J5IHsKIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5
ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRh
dGlvbjsgfTsKQEAgLTc5Miw2ICs4MDQsMTkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFVSTCYgdXJsKQogCiB9CiAK
K3N0YXRpYyBib29sIHdpbGxVc2VXZWJNRm9ybWF0UmVhZGVyRm9yVHlwZShjb25zdCBTdHJpbmcm
IHR5cGUpCit7CisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9S
TUFUX1JFQURFUikKKyAgICBpZiAoIVNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzV2ViTUZvcm1h
dFJlYWRlckF2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4g
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLCAidmlkZW8vd2VibSIpIHx8IGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UodHlwZSwgImF1ZGlvL3dlYm0iKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KHR5cGUpOworICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3QgVVJMJiB1
cmwsIFJldGFpblB0cjxOU011dGFibGVEaWN0aW9uYXJ5PiBvcHRpb25zKQogewogICAgIEFMV0FZ
U19MT0coTE9HSURFTlRJRklFUik7CkBAIC04MzMsNyArODU4LDExIEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTChjb25zdCBVUkwm
IHVybCwgUmV0CiAjZW5kaWYKIAogICAgIGF1dG8gdHlwZSA9IHBsYXllcigpLT5jb250ZW50TUlN
RVR5cGUoKTsKLSAgICBpZiAoUEFMOjpjYW5Mb2FkX0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0T3V0
T2ZCYW5kTUlNRVR5cGVLZXkoKSAmJiAhdHlwZS5pc0VtcHR5KCkgJiYgIXBsYXllcigpLT5jb250
ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21FeHRlbnNpb24oKSkgeworCisgICAgLy8gRG9uJ3Qg
YWR2ZXJ0aXNlIFdlYk0gTUlNRSB0eXBlcyBvciB0aGUgZm9ybWF0IHJlYWRlciB3b24ndCBiZSBs
b2FkZWQgdW50aWwgcmRhcjovLzcyNDA1MTI3IGlzIGZpeGVkLgorICAgIGF1dG8gd2lsbFVzZVdl
Yk1Gb3JtYXRSZWFkZXIgPSB3aWxsVXNlV2ViTUZvcm1hdFJlYWRlckZvclR5cGUodHlwZSk7CisK
KyAgICBpZiAoUEFMOjpjYW5Mb2FkX0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0T3V0T2ZCYW5kTUlN
RVR5cGVLZXkoKSAmJiAhdHlwZS5pc0VtcHR5KCkgJiYgIXBsYXllcigpLT5jb250ZW50TUlNRVR5
cGVXYXNJbmZlcnJlZEZyb21FeHRlbnNpb24oKSAmJiAhd2lsbFVzZVdlYk1Gb3JtYXRSZWFkZXIp
IHsKICAgICAgICAgYXV0byBjb2RlY3MgPSBwbGF5ZXIoKS0+Y29udGVudFR5cGVDb2RlY3MoKTsK
ICAgICAgICAgaWYgKCFjb2RlY3MuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBOU1N0cmluZyAq
dHlwZVN0cmluZyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUA7IGNvZGVjcz1cIiVA
XCIiLCAoTlNTdHJpbmcgKil0eXBlLCAoTlNTdHJpbmcgKiljb2RlY3NdOwpAQCAtODc2LDYgKzkw
NSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZB
c3NldEZvclVSTChjb25zdCBVUkwmIHVybCwgUmV0CiAgICAgICAgICAgICBbb3B0aW9ucyBzZXRP
YmplY3Q6QE5PIGZvcktleTpBVlVSTEFzc2V0VXNlc05vUGVyc2lzdGVudENhY2hlS2V5XTsKICAg
ICB9CiAKKyAgICBpZiAod2lsbFVzZVdlYk1Gb3JtYXRSZWFkZXIpCisgICAgICAgIHJlZ2lzdGVy
Rm9ybWF0UmVhZGVySWZOZWNlc3NhcnkoKTsKKwogICAgIE5TVVJMICpjb2NvYVVSTCA9IGNhbm9u
aWNhbFVSTCh1cmwpOwogICAgIG1fYXZBc3NldCA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVlVSTEFz
c2V0SW5zdGFuY2UoKSBpbml0V2l0aFVSTDpjb2NvYVVSTCBvcHRpb25zOm9wdGlvbnMuZ2V0KCld
KTsKIApAQCAtMTY2NywzOSArMTY5OSw2IEBAIHN0YXRpYyBib29sIGtleVN5c3RlbUlzU3VwcG9y
dGVkKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVE
SUFfU09VUkNFKSAmJiBIQVZFKE1UX1BMVUdJTl9GT1JNQVRfUkVBREVSKQotc3RhdGljIHZvaWQg
ZW5zdXJlRm9ybWF0UmVhZGVySXNSZWdpc3RlcmVkKCkKLXsKLSAgICBzdGF0aWMgZGlzcGF0Y2hf
b25jZV90IG9uY2VUb2tlbjsKLSAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57Ci0gICAg
ICAgIC8vIExpa2Ugd2UgZG8gZm9yIG90aGVyIG1lZGlhIGZvcm1hdHMsIGFsbG93IHRoZSBmb3Jt
YXQgcmVhZGVyIHRvIHJ1biBpbiB0aGUgV2ViQ29udGVudCBvciBHUFUgcHJvY2VzcwotICAgICAg
ICAvLyAod2hpY2ggaXMgYWxyZWFkeSBhcHByb3ByaWF0ZWx5IHNhbmRib3hlZCkgcmF0aGVyIHRo
YW4gaW4gYSBzZXBhcmF0ZSBNZWRpYVRvb2xib3ggWFBDIHNlcnZpY2UuCi0gICAgICAgIFJFTEVB
U0VfQVNTRVJUKGlzSW5HUFVQcm9jZXNzKCkgfHwgaXNJbldlYlByb2Nlc3MoKSk7Ci0gICAgICAg
IE1UUmVnaXN0ZXJQbHVnaW5Gb3JtYXRSZWFkZXJCdW5kbGVEaXJlY3RvcnkoKF9fYnJpZGdlIENG
VVJMUmVmKU5TQnVuZGxlLm1haW5CdW5kbGUuYnVpbHRJblBsdWdJbnNVUkwpOwotICAgICAgICBN
VFBsdWdpbkZvcm1hdFJlYWRlckRpc2FibGVTYW5kYm94aW5nKCk7Ci0gICAgfSk7Ci19Ci0jZW5k
aWYKLQotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9S
RUFERVIpCi1zdGF0aWMgYm9vbCBpc0Zvcm1hdFJlYWRlckF2YWlsYWJsZSgpCi17Ci0gICAgaWYg
KCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYk1Gb3JtYXRSZWFk
ZXJFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotI2lmICFVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQotICAgIC8vIEZJWE1FIChyZGFyOi8vNzIzMjA0MTkpOiBJZiBXZWJLaXQgd2Fz
IGJ1aWx0IHdpdGggYWQtaG9jIGNvZGUtc2lnbmluZywKLSAgICAvLyBDb3JlTWVkaWEgd2lsbCBv
bmx5IGxvYWQgdGhlIGZvcm1hdCByZWFkZXIgcGx1Zy1pbiB3aGVuIGEgdXNlciBkZWZhdWx0Ci0g
ICAgLy8gaXMgc2V0IG9uIEFwcGxlIGludGVybmFsIE9Tcy4gVGhhdCBtZWFucyB3ZSBjYW5ub3Qg
Y3VycmVudGx5IHN1cHBvcnQgV2ViTQotICAgIC8vIGluIHB1YmxpYyBTREsgYnVpbGRzIG9uIGN1
c3RvbWVyIE9Tcy4KLSAgICBpZiAoIW9zX3ZhcmlhbnRfYWxsb3dzX2ludGVybmFsX3NlY3VyaXR5
X3BvbGljaWVzKCJjb20uYXBwbGUuV2ViS2l0IikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSNl
bmRpZgotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0jZW5kaWYKLQogTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGVB
bmRDb2RlY3MoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykK
IHsKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAtMTcxMSwxOSArMTcxMCw2IEBAIE1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
c3VwcG9ydHNUeXBlQW5kQ29kCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6U3VwcG9ydHNU
eXBlOjpJc05vdFN1cHBvcnRlZDsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkg
JiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKLSAgICBpZiAoaXNGb3JtYXRSZWFkZXJB
dmFpbGFibGUoKSkgewotICAgICAgICBhdXRvIHN1cHBvcnRlZCA9IFNvdXJjZUJ1ZmZlclBhcnNl
cldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQocGFyYW1ldGVycy50eXBlKTsKLSAgICAgICAg
aWYgKHN1cHBvcnRlZCAhPSBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRl
ZCkgewotICAgICAgICAgICAgZW5zdXJlRm9ybWF0UmVhZGVySXNSZWdpc3RlcmVkKCk7Ci0gICAg
ICAgICAgICBpZiAoc3VwcG9ydGVkID09IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6Ok1heUJl
U3VwcG9ydGVkKQotICAgICAgICAgICAgICAgIHJldHVybiBzdXBwb3J0ZWQ7Ci0gICAgICAgICAg
ICBpZiAoY29udGVudFR5cGVNZWV0c0hhcmR3YXJlRGVjb2RlUmVxdWlyZW1lbnRzKHBhcmFtZXRl
cnMudHlwZSwgcGFyYW1ldGVycy5jb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQp
KQotICAgICAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc1N1
cHBvcnRlZDsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZgotCiAgICAgYXV0byBzdXBwb3J0ZWQg
PSBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuY2FuRGVjb2RlVHlwZShwYXJhbWV0
ZXJzLnR5cGUucmF3KCkpOwogICAgIGlmIChzdXBwb3J0ZWQgIT0gTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZTo6SXNTdXBwb3J0ZWQpCiAgICAgICAgIHJldHVybiBzdXBwb3J0ZWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BdWRpb1RyYWNrUHJp
dmF0ZVdlYk0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvQXVk
aW9UcmFja1ByaXZhdGVXZWJNLmNwcAppbmRleCA3N2Q4YTM0NThkYTA1MTk5MTZiMmU1YTg2ZDlk
MWQ0N2Y1NjNhYzFkLi5mZDI2ODhhNWRkM2Q5NjlmNDMwZGMzZjhlMDI4NjU0ODJmNTMxZjZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9BdWRpb1Ry
YWNrUHJpdmF0ZVdlYk0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5jcHAKQEAgLTU4LDYgKzU4LDEzIEBAIE9wdGlv
bmFsPHVpbnQ2NF90PiBBdWRpb1RyYWNrUHJpdmF0ZVdlYk06OnRyYWNrVUlEKCkgY29uc3QKICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCitPcHRpb25hbDxib29sPiBBdWRpb1RyYWNrUHJp
dmF0ZVdlYk06OmRlZmF1bHRFbmFibGVkKCkgY29uc3QKK3sKKyAgICBpZiAobV90cmFjay5pc19l
bmFibGVkLmlzX3ByZXNlbnQoKSkKKyAgICAgICAgcmV0dXJuIG1fdHJhY2suaXNfZW5hYmxlZC52
YWx1ZSgpOworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKIEF0b21TdHJpbmcgQXVkaW9U
cmFja1ByaXZhdGVXZWJNOjpsYWJlbCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fbGFiZWwuaXNOdWxs
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9B
dWRpb1RyYWNrUHJpdmF0ZVdlYk0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5oCmluZGV4IDEzMWE5ZmUwYWVkYTJhMWZmNDc4
ZjBjN2I5N2I5MzQ0ZGNiNjYwZjkuLjEyMjJjNDQ5N2UzOTlmYzk5MDVmNGNkY2Q1MzgxMDQ0ODQw
MjAyMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0F1ZGlvVHJhY2tQcml2YXRlV2ViTS5oCkBAIC00Miw2ICs0Miw3IEBAIHB1
YmxpYzoKICAgICBBdG9tU3RyaW5nIGxhbmd1YWdlKCkgY29uc3QgZmluYWw7CiAgICAgaW50IHRy
YWNrSW5kZXgoKSBjb25zdCBmaW5hbDsKICAgICBPcHRpb25hbDx1aW50NjRfdD4gdHJhY2tVSUQo
KSBjb25zdCBmaW5hbDsKKyAgICBPcHRpb25hbDxib29sPiBkZWZhdWx0RW5hYmxlZCgpIGNvbnN0
IGZpbmFsOwogCiBwcml2YXRlOgogICAgIEF1ZGlvVHJhY2tQcml2YXRlV2ViTSh3ZWJtOjpUcmFj
a0VudHJ5JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAppbmRleCA1MGZjYTFk
OTA5MDllNjE1ZmE0ZTI3OTkxMGVkNzQ1OWIxYzUwZDQxLi5iYzkzZGJjZWE0MjdiNTliNTg3YWJj
NTViNjczNjA5YzQ1YTZiOTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcApA
QCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIk1lZGlhRGVzY3JpcHRpb24uaCIKICNpbmNsdWRl
ICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1
ZmZlci5oIgogI2luY2x1ZGUgIlZQOVV0aWxpdGllc0NvY29hLmgiCiAjaW5jbHVkZSAiVmlkZW9U
cmFja1ByaXZhdGVXZWJNLmgiCkBAIC00OCw2ICs0OSw3IEBACiAjaW5jbHVkZSA8d3RmL1N0ZExp
c3QuaD4KICNpbmNsdWRlIDx3dGYvY2YvVHlwZUNhc3RzQ0YuaD4KICNpbmNsdWRlIDx3dGYvZGFy
d2luL1dlYWtMaW5raW5nLmg+CisjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vT1NWYXJpYW50U1BJ
Lmg+CiAKICNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogI2luY2x1ZGUgIlZpZGVvVG9v
bGJveFNvZnRMaW5rLmgiCkBAIC00NDMsMTQgKzQ0NSw1NSBAQCBwcml2YXRlOgogICAgIHdlYm06
OlRyYWNrRW50cnkgbV90cmFjazsKIH07CiAKK2NvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNh
c2VJbnNlbnNpdGl2ZUhhc2g+JiBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjp3ZWJtTUlNRVR5cGVz
KCkKK3sKKyAgICBzdGF0aWMgYXV0byB0eXBlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChbXSB7CisK
KyAgICAgICAgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4gdHlwZXM7
CisKKyNpZiBFTkFCTEUoVlA5KQorICAgICAgICB0eXBlcy5hZGQoInZpZGVvL3dlYm0iKTsKKyNl
bmRpZgorI2lmIEVOQUJMRShWT1JCSVMpIHx8IEVOQUJMRShPUFVTKQorICAgICAgICB0eXBlcy5h
ZGQoImF1ZGlvL3dlYm0iKTsKKyNlbmRpZgorCisgICAgICAgIHJldHVybiB0eXBlczsKKyAgICB9
KCkpOworCisgICAgcmV0dXJuIHR5cGVzOworfQorCitzdGF0aWMgYm9vbCBjYW5Mb2FkRm9ybWF0
UmVhZGVyKCkKK3sKKyNpZiAhSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICByZXR1
cm4gZmFsc2U7CisjZWxpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgIHJldHVybiB0cnVl
OworI2Vsc2UKKyAgICAvLyBGSVhNRSAocmRhcjovLzcyMzIwNDE5KTogSWYgV2ViS2l0IHdhcyBi
dWlsdCB3aXRoIGFkLWhvYyBjb2RlLXNpZ25pbmcsCisgICAgLy8gQ29yZU1lZGlhIHdpbGwgb25s
eSBsb2FkIHRoZSBmb3JtYXQgcmVhZGVyIHBsdWctaW4gd2hlbiBhIHVzZXIgZGVmYXVsdAorICAg
IC8vIGlzIHNldCBvbiBBcHBsZSBpbnRlcm5hbCBPU3MuIFRoYXQgbWVhbnMgd2UgY2Fubm90IGN1
cnJlbnRseSBzdXBwb3J0IFdlYk0KKyAgICAvLyBpbiBwdWJsaWMgU0RLIGJ1aWxkcyBvbiBjdXN0
b21lciBPU3MuCisgICAgc3RhdGljIGJvb2wgYWxsb3dzSW50ZXJuYWxTZWN1cml0eVBvbGljaWVz
ID0gb3NfdmFyaWFudF9hbGxvd3NfaW50ZXJuYWxfc2VjdXJpdHlfcG9saWNpZXMoImNvbS5hcHBs
ZS5XZWJLaXQiKTsKKyAgICByZXR1cm4gYWxsb3dzSW50ZXJuYWxTZWN1cml0eVBvbGljaWVzOwor
I2VuZGlmIC8vICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorfQorCitib29sIFNvdXJjZUJ1ZmZl
clBhcnNlcldlYk06OmlzV2ViTUZvcm1hdFJlYWRlckF2YWlsYWJsZSgpCit7CisgICAgcmV0dXJu
IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6d2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKSAm
JiBjYW5Mb2FkRm9ybWF0UmVhZGVyKCkgJiYgaXNXZWJtUGFyc2VyQXZhaWxhYmxlKCk7Cit9CisK
IE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBTb3VyY2VCdWZmZXJQYXJzZXJXZWJNOjpp
c0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBlKQogewogI2lmIEVO
QUJMRShWUDkpIHx8IEVOQUJMRShWT1JCSVMpIHx8IEVOQUJMRShPUFVTKQogICAgIGlmICghaXNX
ZWJtUGFyc2VyQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpT
dXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCi0gICAgYm9vbCBpc0F1ZGlvQ29udGFpbmVy
VHlwZSA9IFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLmNvbnRhaW5lclR5cGUoKSwg
ImF1ZGlvL3dlYm0iKTsKLSAgICBib29sIGlzVmlkZW9Db250YWluZXJUeXBlID0gV1RGOjplcXVh
bElnbm9yaW5nQVNDSUlDYXNlKHR5cGUuY29udGFpbmVyVHlwZSgpLCAidmlkZW8vd2VibSIpOwor
ICAgIGF1dG8gY29udGFpbmVyVHlwZSA9IHR5cGUuY29udGFpbmVyVHlwZSgpOworICAgIGJvb2wg
aXNBdWRpb0NvbnRhaW5lclR5cGUgPSBXVEY6OmVxdWFsSWdub3JpbmdBU0NJSUNhc2UoY29udGFp
bmVyVHlwZSwgImF1ZGlvL3dlYm0iKTsKKyAgICBib29sIGlzVmlkZW9Db250YWluZXJUeXBlID0g
V1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlKGNvbnRhaW5lclR5cGUsICJ2aWRlby93ZWJtIik7
CiAgICAgaWYgKCFpc0F1ZGlvQ29udGFpbmVyVHlwZSAmJiAhaXNWaWRlb0NvbnRhaW5lclR5cGUp
CiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3Vw
cG9ydGVkOwogICAgIApAQCAtNDczLDIyICs1MTYsMTggQEAgTWVkaWFQbGF5ZXJFbnVtczo6U3Vw
cG9ydHNUeXBlIFNvdXJjZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQo
Y28KICAgICBpZiAoIWlzQW55Q29kZWNBdmFpbGFibGUpCiAgICAgICAgIHJldHVybiBNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCi0gICAgU3RyaW5nIGNv
ZGVjc1BhcmFtZXRlciA9IHR5cGUucGFyYW1ldGVyKENvbnRlbnRUeXBlOjpjb2RlY3NQYXJhbWV0
ZXIoKSk7Ci0gICAgaWYgKCFjb2RlY3NQYXJhbWV0ZXIpCi0gICAgICAgIHJldHVybiBNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGU6Ok1heUJlU3VwcG9ydGVkOwotCi0gICAgYXV0byBzcGxp
dFJlc3VsdHMgPSBTdHJpbmdWaWV3KGNvZGVjc1BhcmFtZXRlcikuc3BsaXQoJywnKTsKLSAgICBp
ZiAoc3BsaXRSZXN1bHRzLmJlZ2luKCkgPT0gc3BsaXRSZXN1bHRzLmVuZCgpKQorICAgIGF1dG8g
Y29kZWNzID0gdHlwZS5jb2RlY3MoKTsKKyAgICBpZiAoY29kZWNzLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6TWF5QmVTdXBwb3J0ZWQ7
CiAKLSAgICBmb3IgKGF1dG8gc3BsaXQgOiBzcGxpdFJlc3VsdHMpIHsKKyAgICBmb3IgKGF1dG8m
IGNvZGVjIDogY29kZWNzKSB7CiAjaWYgRU5BQkxFKFZQOSkKLSAgICAgICAgaWYgKHNwbGl0LnN0
YXJ0c1dpdGgoInZwMDkiKSB8fCBzcGxpdC5zdGFydHNXaXRoKCJ2cDA4IikgfHwgZXF1YWwoc3Bs
aXQsICJ2cDgiKSB8fCBlcXVhbChzcGxpdCwgInZwOSIpKSB7CisgICAgICAgIGlmIChjb2RlYy5z
dGFydHNXaXRoKCJ2cDA5IikgfHwgY29kZWMuc3RhcnRzV2l0aCgidnAwOCIpIHx8IGVxdWFsKGNv
ZGVjLCAidnA4IikgfHwgZXF1YWwoY29kZWMsICJ2cDkiKSkgewogCiAgICAgICAgICAgICBpZiAo
IWlzVlA5RGVjb2RlckF2YWlsYWJsZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCi0gICAgICAgICAgICBh
dXRvIGNvZGVjUGFyYW1ldGVycyA9IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoc3BsaXQpOworICAg
ICAgICAgICAgYXV0byBjb2RlY1BhcmFtZXRlcnMgPSBwYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKGNv
ZGVjKTsKICAgICAgICAgICAgIGlmICghY29kZWNQYXJhbWV0ZXJzKQogICAgICAgICAgICAgICAg
IHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwog
CkBAIC01MDAsNyArNTM5LDcgQEAgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIFNvdXJj
ZUJ1ZmZlclBhcnNlcldlYk06OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY28KICNlbmRpZiAvLyBF
TkFCTEUoVlA5KQogCiAjaWYgRU5BQkxFKFZPUkJJUykKLSAgICAgICAgaWYgKHNwbGl0ID09ICJ2
b3JiaXMiKSB7CisgICAgICAgIGlmIChjb2RlYyA9PSAidm9yYmlzIikgewogICAgICAgICAgICAg
aWYgKCFpc1ZvcmJpc0RlY29kZXJBdmFpbGFibGUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
TWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKIApAQCAtNTA5
LDcgKzU0OCw3IEBAIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBTb3VyY2VCdWZmZXJQ
YXJzZXJXZWJNOjppc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvCiAjZW5kaWYgLy8gRU5BQkxFKFZP
UkJJUykKIAogI2lmIEVOQUJMRShPUFVTKQotICAgICAgICBpZiAoc3BsaXQgPT0gIm9wdXMiKSB7
CisgICAgICAgIGlmIChjb2RlYyA9PSAib3B1cyIpIHsKICAgICAgICAgICAgIGlmICghaXNPcHVz
RGVjb2RlckF2YWlsYWJsZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVu
dW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJz
ZXJXZWJNLmgKaW5kZXggZWNhMDNjMjA0ZmExMDA3ZTVjMjUzYjUzYTJmZjRhNTJiNWNiMTc5Yy4u
YjNlMTBkYTAzZjA5OTM4NzAxNGVkZjAxNjY1NWM0MDY2NDMyNjIxMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2Vi
TS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1
ZmZlclBhcnNlcldlYk0uaApAQCAtNjAsNyArNjAsOSBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBT
b3VyY2VCdWZmZXJQYXJzZXJXZWJNIDogcHVibGljIFNvdXJjZUJ1ZmZlclBhcnNlciwgcHJpdmF0
ZQogcHVibGljOgogICAgIGNsYXNzIFN0cmVhbWluZ1ZlY3RvclJlYWRlcjsKIAorICAgIHN0YXRp
YyBib29sIGlzV2ViTUZvcm1hdFJlYWRlckF2YWlsYWJsZSgpOwogICAgIHN0YXRpYyBNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGUgaXNDb250ZW50VHlwZVN1cHBvcnRlZChjb25zdCBDb250
ZW50VHlwZSYpOworICAgIHN0YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5z
ZW5zaXRpdmVIYXNoPiYgd2VibU1JTUVUeXBlcygpOwogICAgIHN0YXRpYyBSZWZQdHI8U291cmNl
QnVmZmVyUGFyc2VyV2ViTT4gY3JlYXRlKGNvbnN0IENvbnRlbnRUeXBlJik7CiAKICAgICBTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVmlkZW9UcmFja1ByaXZhdGVXZWJNLmNwcAppbmRl
eCBlODhiOWU1NTU1ZDRmYTMxODAzZmQyOWY2OGVhYzk1ZTZmNzczMzU4Li40ODg2NTQ4NDIyNzRl
NWE5YTg5ZTkzYmY1Y2MzNTg5ZWZlZTlmMjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2Vi
TS5jcHAKQEAgLTU4LDYgKzU4LDEzIEBAIE9wdGlvbmFsPHVpbnQ2NF90PiBWaWRlb1RyYWNrUHJp
dmF0ZVdlYk06OnRyYWNrVUlEKCkgY29uc3QKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQog
CitPcHRpb25hbDxib29sPiBWaWRlb1RyYWNrUHJpdmF0ZVdlYk06OmRlZmF1bHRFbmFibGVkKCkg
Y29uc3QKK3sKKyAgICBpZiAobV90cmFjay5pc19lbmFibGVkLmlzX3ByZXNlbnQoKSkKKyAgICAg
ICAgcmV0dXJuIG1fdHJhY2suaXNfZW5hYmxlZC52YWx1ZSgpOworICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7Cit9CisKIEF0b21TdHJpbmcgVmlkZW9UcmFja1ByaXZhdGVXZWJNOjpsYWJlbCgpIGNv
bnN0CiB7CiAgICAgaWYgKG1fbGFiZWwuaXNOdWxsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WaWRlb1RyYWNrUHJpdmF0ZVdlYk0uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2Vi
TS5oCmluZGV4IDEyMzFjYmUzNTllMzA3M2ZkZmE2ZmJlMGU2MmUwNTFmMGIyOTFkNTYuLjMyMGY4
ODhjMTAxZmE2ZjIyMzdjM2FlZTEwNDczM2U4Y2VlMWIxMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2YXRlV2ViTS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZpZGVvVHJhY2tQcml2
YXRlV2ViTS5oCkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICBBdG9tU3RyaW5nIGxhbmd1
YWdlKCkgY29uc3QgZmluYWw7CiAgICAgaW50IHRyYWNrSW5kZXgoKSBjb25zdCBmaW5hbDsKICAg
ICBPcHRpb25hbDx1aW50NjRfdD4gdHJhY2tVSUQoKSBjb25zdCBmaW5hbDsKKyAgICBPcHRpb25h
bDxib29sPiBkZWZhdWx0RW5hYmxlZCgpIGNvbnN0IGZpbmFsOwogCiBwcml2YXRlOgogICAgIFZp
ZGVvVHJhY2tQcml2YXRlV2ViTSh3ZWJtOjpUcmFja0VudHJ5JiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViTUF1ZGlvVXRpbGl0aWVzQ29j
b2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9V
dGlsaXRpZXNDb2NvYS5tbQppbmRleCA0MTM0NzhmN2ZhMmJhM2I1ZTUzNThiMmEzYTgwOTc3OGJi
ZTllYjUwLi5kZWYxNDFmMzYxNzI1MWQ3NTY0MTNmYmE1NmUyM2I2MjA1Mzc2ZjYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJNQXVkaW9VdGls
aXRpZXNDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJNQXVkaW9VdGlsaXRpZXNDb2NvYS5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCAi
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0
ICJNZWRpYVV0aWxpdGllcy5oIgotI2ltcG9ydCAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgor
I2ltcG9ydCAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCiAjaW1wb3J0IDxBdWRpb1Rv
b2xib3gvQXVkaW9Db21wb25lbnQuaD4KICNpbXBvcnQgPEF1ZGlvVG9vbGJveC9BdWRpb0Zvcm1h
dC5oPgogI2ltcG9ydCA8Q29yZU1lZGlhL0NNRm9ybWF0RGVzY3JpcHRpb24uaD4KQEAgLTE3Nyw3
ICsxNzcsNyBAQCBib29sIGlzVm9yYmlzRGVjb2RlckF2YWlsYWJsZSgpCiAgICAgc3RhdGljIGJv
b2wgYXZhaWxhYmxlOwogCiAjaWYgRU5BQkxFKFZPUkJJUykgJiYgUExBVEZPUk0oTUFDKQotICAg
IGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS52b3JiaXNEZWNv
ZGVyRW5hYmxlZCgpKQorICAgIGlmICghUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp2b3Ji
aXNEZWNvZGVyRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzdGF0aWMg
ZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9Gb3JtYXRSZWFkZXIuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0Zvcm1hdFJlYWRlci5jcHAKaW5kZXggZWY0
OWZjYTk2NjIyNWFjMzdiNTgzZTY0NjdkOGY1ZDE5MjRhYmI1Mi4uZjRkYmJiODkzOTFkYjMxOGY4
YjYzZmRjMjRhMThkZGUzNTgyMTI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL0Zvcm1hdFJlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL0Zvcm1hdFJlYWRlci5jcHAKQEAgLTE0NCwy
NiArMTQ0LDI5IEBAIHZvaWQgRm9ybWF0UmVhZGVyOjpkaWRQYXJzZVRyYWNrcyhTb3VyY2VCdWZm
ZXJQcml2YXRlQ2xpZW50OjpJbml0aWFsaXphdGlvblNlZ21lCiAgICAgbV9kdXJhdGlvbiA9IFdU
Rk1vdmUoc2VnbWVudC5kdXJhdGlvbik7CiAKICAgICBmb3IgKGF1dG8mIHZpZGVvVHJhY2sgOiBz
ZWdtZW50LnZpZGVvVHJhY2tzKSB7Ci0gICAgICAgIGlmIChhdXRvIHRyYWNrUmVhZGVyID0gVHJh
Y2tSZWFkZXI6OmNyZWF0ZShhbGxvY2F0b3IoKSwgKnRoaXMsIHZpZGVvVHJhY2sudHJhY2suZ2V0
KCkpKQotICAgICAgICAgICAgbV90cmFja1JlYWRlcnMuYXBwZW5kKHRyYWNrUmVhZGVyLnJlbGVh
c2VOb25OdWxsKCkpOwotICAgICAgICAvLyBGSVhNRTogSG93IGRvIHdlIGtub3cgd2hpY2ggdHJh
Y2tzIHNob3VsZCBiZSBlbmFibGVkPwotICAgICAgICBpZiAobV90cmFja1JlYWRlcnMuc2l6ZSgp
ID09IDEpCi0gICAgICAgICAgICBtX3RyYWNrUmVhZGVyc1swXS0+c2V0RW5hYmxlZCh0cnVlKTsK
KyAgICAgICAgYXV0byB0cmFjayA9IHZpZGVvVHJhY2sudHJhY2suZ2V0KCk7CisgICAgICAgIGF1
dG8gdHJhY2tSZWFkZXIgPSBUcmFja1JlYWRlcjo6Y3JlYXRlKGFsbG9jYXRvcigpLCAqdGhpcywg
a0NNTWVkaWFUeXBlX1ZpZGVvLCAqdHJhY2stPnRyYWNrVUlEKCksIHRyYWNrLT5kZWZhdWx0RW5h
YmxlZCgpKTsKKyAgICAgICAgaWYgKCF0cmFja1JlYWRlcikKKyAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgIG1fdHJhY2tSZWFkZXJzLmFwcGVuZCh0cmFja1JlYWRlci5yZWxlYXNlTm9u
TnVsbCgpKTsKICAgICB9CiAKICAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2sgOiBzZWdtZW50LmF1
ZGlvVHJhY2tzKSB7Ci0gICAgICAgIGlmIChhdXRvIHRyYWNrUmVhZGVyID0gVHJhY2tSZWFkZXI6
OmNyZWF0ZShhbGxvY2F0b3IoKSwgKnRoaXMsIGF1ZGlvVHJhY2sudHJhY2suZ2V0KCkpKQotICAg
ICAgICAgICAgbV90cmFja1JlYWRlcnMuYXBwZW5kKHRyYWNrUmVhZGVyLnJlbGVhc2VOb25OdWxs
KCkpOwotICAgICAgICAvLyBGSVhNRTogSG93IGRvIHdlIGtub3cgd2hpY2ggdHJhY2tzIHNob3Vs
ZCBiZSBlbmFibGVkPwotICAgICAgICBpZiAobV90cmFja1JlYWRlcnMuc2l6ZSgpID09IHNlZ21l
bnQudmlkZW9UcmFja3Muc2l6ZSgpICsgMSkKLSAgICAgICAgICAgIG1fdHJhY2tSZWFkZXJzW3Nl
Z21lbnQudmlkZW9UcmFja3Muc2l6ZSgpXS0+c2V0RW5hYmxlZCh0cnVlKTsKKyAgICAgICAgYXV0
byB0cmFjayA9IGF1ZGlvVHJhY2sudHJhY2suZ2V0KCk7CisgICAgICAgIGF1dG8gdHJhY2tSZWFk
ZXIgPSBUcmFja1JlYWRlcjo6Y3JlYXRlKGFsbG9jYXRvcigpLCAqdGhpcywga0NNTWVkaWFUeXBl
X0F1ZGlvLCAqdHJhY2stPnRyYWNrVUlEKCksIHRyYWNrLT5kZWZhdWx0RW5hYmxlZCgpKTsKKyAg
ICAgICAgaWYgKCF0cmFja1JlYWRlcikKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
IG1fdHJhY2tSZWFkZXJzLmFwcGVuZCh0cmFja1JlYWRlci5yZWxlYXNlTm9uTnVsbCgpKTsKICAg
ICB9CiAKICAgICBmb3IgKGF1dG8mIHRleHRUcmFjayA6IHNlZ21lbnQudGV4dFRyYWNrcykgewot
ICAgICAgICBpZiAoYXV0byB0cmFja1JlYWRlciA9IFRyYWNrUmVhZGVyOjpjcmVhdGUoYWxsb2Nh
dG9yKCksICp0aGlzLCB0ZXh0VHJhY2sudHJhY2suZ2V0KCkpKQorICAgICAgICBhdXRvIHRyYWNr
ID0gdGV4dFRyYWNrLnRyYWNrLmdldCgpOworICAgICAgICBpZiAoYXV0byB0cmFja1JlYWRlciA9
IFRyYWNrUmVhZGVyOjpjcmVhdGUoYWxsb2NhdG9yKCksICp0aGlzLCBrQ01NZWRpYVR5cGVfVGV4
dCwgKnRyYWNrLT50cmFja1VJRCgpLCB0cmFjay0+ZGVmYXVsdEVuYWJsZWQoKSkpCiAgICAgICAg
ICAgICBtX3RyYWNrUmVhZGVycy5hcHBlbmQodHJhY2tSZWFkZXIucmVsZWFzZU5vbk51bGwoKSk7
CiAgICAgfQotICAgIAorCiAgICAgbV9wYXJzZVRyYWNrc0NvbmRpdGlvbi5ub3RpZnlBbGwoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVh
ZGVyL1RyYWNrUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1h
dFJlYWRlci9UcmFja1JlYWRlci5jcHAKaW5kZXggNDg2NWE4MDg5NTNkYmYyNTcwOGJlNDFhNDBi
OGNmMjQyZTdiZmQ4NC4uY2RkZmRmNzU3NWU1MTAxYmRkYzcxMjdiZjE3YmI4ZDFmNzkwMTNmNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL1Ry
YWNrUmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvVHJhY2tSZWFkZXIuY3BwCkBAIC0xNDQsMjUgKzE0NCw5IEBAIENvcmVNZWRpYVdyYXBw
ZWQ8VHJhY2tSZWFkZXI+KiBUcmFja1JlYWRlcjo6dW53cmFwKENNQmFzZU9iamVjdFJlZiBvYmpl
Y3QpCiAgICAgcmV0dXJuIHVud3JhcChjaGVja2VkX2NmX2Nhc3Q8V3JhcHBlclJlZj4ob2JqZWN0
KSk7CiB9CiAKLVJlZlB0cjxUcmFja1JlYWRlcj4gVHJhY2tSZWFkZXI6OmNyZWF0ZShBbGxvY2F0
b3ImJiBhbGxvY2F0b3IsIGNvbnN0IEZvcm1hdFJlYWRlciYgZm9ybWF0UmVhZGVyLCBjb25zdCBW
aWRlb1RyYWNrUHJpdmF0ZSogdHJhY2spCitSZWZQdHI8VHJhY2tSZWFkZXI+IFRyYWNrUmVhZGVy
OjpjcmVhdGUoQWxsb2NhdG9yJiYgYWxsb2NhdG9yLCBjb25zdCBGb3JtYXRSZWFkZXImIGZvcm1h
dFJlYWRlciwgQ01NZWRpYVR5cGUgbWVkaWFUeXBlLCB1aW50NjRfdCB0cmFja0lELCBPcHRpb25h
bDxib29sPiBlbmFibGVkKQogewotICAgIGlmICghdHJhY2spCi0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgKGFsbG9jYXRvcikgVHJhY2tSZWFkZXIoV1RG
TW92ZShhbGxvY2F0b3IpLCBmb3JtYXRSZWFkZXIsIGtDTU1lZGlhVHlwZV9WaWRlbywgKnRyYWNr
LT50cmFja1VJRCgpKSk7Ci19Ci0KLVJlZlB0cjxUcmFja1JlYWRlcj4gVHJhY2tSZWFkZXI6OmNy
ZWF0ZShBbGxvY2F0b3ImJiBhbGxvY2F0b3IsIGNvbnN0IEZvcm1hdFJlYWRlciYgZm9ybWF0UmVh
ZGVyLCBjb25zdCBBdWRpb1RyYWNrUHJpdmF0ZSogdHJhY2spCi17Ci0gICAgaWYgKCF0cmFjaykK
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyAoYWxsb2Nh
dG9yKSBUcmFja1JlYWRlcihXVEZNb3ZlKGFsbG9jYXRvciksIGZvcm1hdFJlYWRlciwga0NNTWVk
aWFUeXBlX0F1ZGlvLCAqdHJhY2stPnRyYWNrVUlEKCkpKTsKLX0KLQotUmVmUHRyPFRyYWNrUmVh
ZGVyPiBUcmFja1JlYWRlcjo6Y3JlYXRlKEFsbG9jYXRvciYmIGFsbG9jYXRvciwgY29uc3QgRm9y
bWF0UmVhZGVyJiBmb3JtYXRSZWFkZXIsIGNvbnN0IEluYmFuZFRleHRUcmFja1ByaXZhdGUqIHRy
YWNrKQotewotICAgIGlmICghdHJhY2spCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgKGFsbG9jYXRvcikgVHJhY2tSZWFkZXIoV1RGTW92ZShhbGxvY2F0
b3IpLCBmb3JtYXRSZWFkZXIsIGtDTU1lZGlhVHlwZV9UZXh0LCAqdHJhY2stPnRyYWNrVUlEKCkp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IChhbGxvY2F0b3IpIFRyYWNrUmVhZGVyKFdURk1v
dmUoYWxsb2NhdG9yKSwgZm9ybWF0UmVhZGVyLCBtZWRpYVR5cGUsIHRyYWNrSUQsIGVuYWJsZWQp
KTsKIH0KIAogV29ya1F1ZXVlJiBUcmFja1JlYWRlcjo6c3RvcmFnZVF1ZXVlKCkKQEAgLTE3MSwx
MyArMTU1LDE2IEBAIFdvcmtRdWV1ZSYgVHJhY2tSZWFkZXI6OnN0b3JhZ2VRdWV1ZSgpCiAgICAg
cmV0dXJuIHF1ZXVlOwogfQogCi1UcmFja1JlYWRlcjo6VHJhY2tSZWFkZXIoQWxsb2NhdG9yJiYg
YWxsb2NhdG9yLCBjb25zdCBGb3JtYXRSZWFkZXImIGZvcm1hdFJlYWRlciwgQ01NZWRpYVR5cGUg
bWVkaWFUeXBlLCB1aW50NjRfdCB0cmFja0lEKQorVHJhY2tSZWFkZXI6OlRyYWNrUmVhZGVyKEFs
bG9jYXRvciYmIGFsbG9jYXRvciwgY29uc3QgRm9ybWF0UmVhZGVyJiBmb3JtYXRSZWFkZXIsIENN
TWVkaWFUeXBlIG1lZGlhVHlwZSwgdWludDY0X3QgdHJhY2tJRCwgT3B0aW9uYWw8Ym9vbD4gZW5h
YmxlZCkKICAgICA6IENvcmVNZWRpYVdyYXBwZWQoV1RGTW92ZShhbGxvY2F0b3IpKQogICAgICwg
bV90cmFja0lEKHRyYWNrSUQpCiAgICAgLCBtX21lZGlhVHlwZShtZWRpYVR5cGUpCiAgICAgLCBt
X2R1cmF0aW9uKGZvcm1hdFJlYWRlci5kdXJhdGlvbigpKQogewogICAgIEFTU0VSVCghaXNNYWlu
VGhyZWFkKCkpOworCisgICAgaWYgKGVuYWJsZWQpCisgICAgICAgIG1faXNFbmFibGVkID0gZW5h
YmxlZC52YWx1ZSgpID8gRW5hYmxlZDo6VHJ1ZSA6IEVuYWJsZWQ6OkZhbHNlOwogfQogCiB2b2lk
IFRyYWNrUmVhZGVyOjphZGRTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgTVRQbHVn
aW5CeXRlU291cmNlUmVmIGJ5dGVTb3VyY2UpCkBAIC0yMTYsMTMgKzIwMywxNiBAQCB2b2lkIFRy
YWNrUmVhZGVyOjpmaW5pc2hQYXJzaW5nKCkKICAgICBpZiAoIW1fc2FtcGxlU3RvcmFnZSkKICAg
ICAgICAgbV9zYW1wbGVTdG9yYWdlID0gbWFrZVVuaXF1ZTxTYW1wbGVTdG9yYWdlPigpOwogICAg
IG1fc2FtcGxlU3RvcmFnZS0+aGFzQWxsU2FtcGxlcyA9IHRydWU7CisgICAgaWYgKG1faXNFbmFi
bGVkID09IEVuYWJsZWQ6OlVua25vd24pCisgICAgICAgIG1faXNFbmFibGVkID0gbV9zYW1wbGVT
dG9yYWdlLT5zYW1wbGVNYXAuZW1wdHkoKSA/IEVuYWJsZWQ6OkZhbHNlIDogRW5hYmxlZDo6VHJ1
ZTsKICAgICBtX3NhbXBsZVN0b3JhZ2VDb25kaXRpb24ubm90aWZ5QWxsKCk7CiB9CiAKIE9TU3Rh
dHVzIFRyYWNrUmVhZGVyOjpjb3B5UHJvcGVydHkoQ0ZTdHJpbmdSZWYga2V5LCBDRkFsbG9jYXRv
clJlZiBhbGxvY2F0b3IsIHZvaWQqIGNvcGllZFZhbHVlKQogewotICAgIGlmIChDRkVxdWFsKGtl
eSwgUEFMOjpnZXRfTWVkaWFUb29sYm94X2tNVFBsdWdpblRyYWNrUmVhZGVyUHJvcGVydHlfRW5h
YmxlZCgpKSkgewotICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDxDRkJvb2xlYW5SZWYqPihjb3Bp
ZWRWYWx1ZSkgPSByZXRhaW5QdHIobV9pc0VuYWJsZWQgPyBrQ0ZCb29sZWFuVHJ1ZSA6IGtDRkJv
b2xlYW5GYWxzZSkubGVha1JlZigpOworICAgIC8vIERvbid0IGJsb2NrIHdhaXRpbmcgZm9yIG1l
ZGlhIGlmIHRoZSB3ZSBrbm93IHRoZSBlbmFibGVkIHN0YXRlLgorICAgIGlmIChDRkVxdWFsKGtl
eSwgUEFMOjpnZXRfTWVkaWFUb29sYm94X2tNVFBsdWdpblRyYWNrUmVhZGVyUHJvcGVydHlfRW5h
YmxlZCgpKSAmJiBtX2lzRW5hYmxlZCAhPSBFbmFibGVkOjpVbmtub3duKSB7CisgICAgICAgICpy
ZWludGVycHJldF9jYXN0PENGQm9vbGVhblJlZio+KGNvcGllZFZhbHVlKSA9IHJldGFpblB0ciht
X2lzRW5hYmxlZCA9PSBFbmFibGVkOjpUcnVlID8ga0NGQm9vbGVhblRydWUgOiBrQ0ZCb29sZWFu
RmFsc2UpLmxlYWtSZWYoKTsKICAgICAgICAgcmV0dXJuIG5vRXJyOwogICAgIH0KIApAQCAtMjMy
LDYgKzIyMiwxNSBAQCBPU1N0YXR1cyBUcmFja1JlYWRlcjo6Y29weVByb3BlcnR5KENGU3RyaW5n
UmVmIGtleSwgQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCB2bwogICAgIH0pOwogCiAgICAgYXV0
byYgc2FtcGxlTWFwID0gbV9zYW1wbGVTdG9yYWdlLT5zYW1wbGVNYXA7CisKKyAgICBpZiAoQ0ZF
cXVhbChrZXksIFBBTDo6Z2V0X01lZGlhVG9vbGJveF9rTVRQbHVnaW5UcmFja1JlYWRlclByb3Bl
cnR5X0VuYWJsZWQoKSkpIHsKKyAgICAgICAgaWYgKG1faXNFbmFibGVkID09IEVuYWJsZWQ6OlVu
a25vd24pCisgICAgICAgICAgICBtX2lzRW5hYmxlZCA9IHNhbXBsZU1hcC5lbXB0eSgpID8gRW5h
YmxlZDo6RmFsc2UgOiBFbmFibGVkOjpUcnVlOworCisgICAgICAgICpyZWludGVycHJldF9jYXN0
PENGQm9vbGVhblJlZio+KGNvcGllZFZhbHVlKSA9IHJldGFpblB0cihtX2lzRW5hYmxlZCA9PSBF
bmFibGVkOjpUcnVlID8ga0NGQm9vbGVhblRydWUgOiBrQ0ZCb29sZWFuRmFsc2UpLmxlYWtSZWYo
KTsKKyAgICAgICAgcmV0dXJuIG5vRXJyOworICAgIH0KKwogICAgIGlmIChzYW1wbGVNYXAuZW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIGtDTUJhc2VPYmplY3RFcnJvcl9WYWx1ZU5vdEF2YWlsYWJs
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVh
ZGVyL1RyYWNrUmVhZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvVHJhY2tSZWFkZXIuaAppbmRleCA3YWIyMWUyNWMzOGE1Y2RmZmM2NWU4MTFkY2EzMTYz
NjBhNDc1MWQwLi5mNDVmMWQ1NzA2NjMyZTY2M2NmY2FmM2ZhYWFkM2Y4YTBhYTliMzY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvVHJhY2tS
ZWFkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIv
VHJhY2tSZWFkZXIuaApAQCAtNTQsMjYgKzU0LDIzIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29u
c3RleHByIFdyYXBwZXJDbGFzcyB3cmFwcGVyQ2xhc3MoKTsKICAgICBzdGF0aWMgQ01CYXNlQ2xh
c3NJRCB3cmFwcGVyQ2xhc3NJRCgpOwogICAgIHN0YXRpYyBDb3JlTWVkaWFXcmFwcGVkPFRyYWNr
UmVhZGVyPiogdW53cmFwKENNQmFzZU9iamVjdFJlZik7Ci0KLSAgICBzdGF0aWMgUmVmUHRyPFRy
YWNrUmVhZGVyPiBjcmVhdGUoQWxsb2NhdG9yJiYsIGNvbnN0IEZvcm1hdFJlYWRlciYsIGNvbnN0
IFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlKik7Ci0gICAgc3RhdGljIFJlZlB0cjxUcmFja1Jl
YWRlcj4gY3JlYXRlKEFsbG9jYXRvciYmLCBjb25zdCBGb3JtYXRSZWFkZXImLCBjb25zdCBXZWJD
b3JlOjpBdWRpb1RyYWNrUHJpdmF0ZSopOwotICAgIHN0YXRpYyBSZWZQdHI8VHJhY2tSZWFkZXI+
IGNyZWF0ZShBbGxvY2F0b3ImJiwgY29uc3QgRm9ybWF0UmVhZGVyJiwgY29uc3QgV2ViQ29yZTo6
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSopOwotCiAgICAgc3RhdGljIFdURjo6V29ya1F1ZXVlJiBz
dG9yYWdlUXVldWUoKTsKIAorICAgIHN0YXRpYyBSZWZQdHI8VHJhY2tSZWFkZXI+IGNyZWF0ZShB
bGxvY2F0b3ImJiwgY29uc3QgRm9ybWF0UmVhZGVyJiwgQ01NZWRpYVR5cGUsIHVpbnQ2NF90LCBP
cHRpb25hbDxib29sPik7CisKICAgICB1aW50NjRfdCB0cmFja0lEKCkgY29uc3QgeyByZXR1cm4g
bV90cmFja0lEOyB9CiAgICAgdm9pZCBhZGRTYW1wbGUoUmVmPFdlYkNvcmU6Ok1lZGlhU2FtcGxl
PiYmLCBNVFBsdWdpbkJ5dGVTb3VyY2VSZWYpOwogICAgIHZvaWQgd2FpdEZvclNhbXBsZShGdW5j
dGlvbjxib29sKFdlYkNvcmU6OlNhbXBsZU1hcCYsIGJvb2wpPiYmKSBjb25zdDsKIAotICAgIGJv
b2wgaXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0VuYWJsZWQ7IH0KLSAgICB2b2lkIHNl
dEVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1faXNFbmFibGVkID0gZW5hYmxlZDsgfQorICAgIHZv
aWQgc2V0RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9pc0VuYWJsZWQgPSBlbmFibGVkID8gRW5h
YmxlZDo6VHJ1ZSA6IEVuYWJsZWQ6OkZhbHNlOyB9CisgICAgQ01NZWRpYVR5cGUgbWVkaWFUeXBl
KCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVR5cGU7IH0KIAogICAgIHZvaWQgZmluaXNoUGFyc2lu
ZygpOwogCiBwcml2YXRlOgogICAgIHVzaW5nIENvcmVNZWRpYVdyYXBwZWQ8VHJhY2tSZWFkZXI+
Ojp1bndyYXA7CiAKLSAgICBUcmFja1JlYWRlcihBbGxvY2F0b3ImJiwgY29uc3QgRm9ybWF0UmVh
ZGVyJiwgQ01NZWRpYVR5cGUsIHVpbnQ2NF90KTsKKyAgICBUcmFja1JlYWRlcihBbGxvY2F0b3Im
JiwgY29uc3QgRm9ybWF0UmVhZGVyJiwgQ01NZWRpYVR5cGUsIHVpbnQ2NF90LCBPcHRpb25hbDxi
b29sPik7CiAKICAgICAvLyBDTUJhc2VDbGFzcwogICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9u
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gIldlYktpdDo6VHJhY2tSZWFkZXIiX3M7IH0KQEAgLTkz
LDEwICs5MCwxMiBAQCBwcml2YXRlOgogICAgICAgICBib29sIGhhc0FsbFNhbXBsZXMgeyBmYWxz
ZSB9OwogICAgIH07CiAKKyAgICBlbnVtIEVuYWJsZWQgOiB1aW50OF90IHsgVW5rbm93biwgRmFs
c2UsIFRydWUgfTsKKwogICAgIGNvbnN0IHVpbnQ2NF90IG1fdHJhY2tJRDsKICAgICBjb25zdCBD
TU1lZGlhVHlwZSBtX21lZGlhVHlwZTsKICAgICBjb25zdCBNZWRpYVRpbWUgbV9kdXJhdGlvbjsK
LSAgICBzdGQ6OmF0b21pYzxib29sPiBtX2lzRW5hYmxlZCB7IGZhbHNlIH07CisgICAgc3RkOjph
dG9taWM8RW5hYmxlZD4gbV9pc0VuYWJsZWQgeyBFbmFibGVkOjpVbmtub3duIH07CiAgICAgbXV0
YWJsZSBDb25kaXRpb24gbV9zYW1wbGVTdG9yYWdlQ29uZGl0aW9uOwogICAgIG11dGFibGUgTG9j
ayBtX3NhbXBsZVN0b3JhZ2VMb2NrOwogICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPFNhbXBs
ZVN0b3JhZ2U+IG1fc2FtcGxlU3RvcmFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYmMzYzdmYTM2MmY4ZWYyYjg0M2FmMTZiOThmOGUzNzc3
N2M0MzIzMS4uM2YyNmRhMjM2N2RjZTI1MjQ1MTQ2ZjNhZTNjNzI3MGEwZDExYWVkOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM4MzgsNiAr
MzgzOCwxNCBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZl
cmVuY2VzU3RvcmUmIHN0b3JlKQogICAgICAgICAgICAgc2V0dGluZ3Muc2V0V2ViQXV0aGVudGlj
YXRpb25FbmFibGVkKHRydWUpOwogICAgIH0KICNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NP
VVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikKKyAgICBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXI6OnNldFdlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViTUZvcm1hdFJlYWRlckVuYWJsZWQoKSk7Cisj
ZW5kaWYKKworI2lmIEVOQUJMRShWT1JCSVMpICYmIFBMQVRGT1JNKE1BQykKKyAgICBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFZvcmJpc0RlY29kZXJFbmFibGVkKFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudm9yYmlzRGVjb2RlckVuYWJsZWQoKSk7Cisj
ZW5kaWYKIH0KIAogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDcxZDRhOWE3OGFi
MGNjZWQ5ZDA5YTJmOWI0NjYyNDExYzA3ODRiYzcuLmExOGJjNTBjYjUxN2E5MzI1MTBkNGExZTUw
MWE0MmQxMzlkMzlkODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtNjgsNyArNjgsOSBAQAogI2ltcG9ydCA8V2ViQ29yZS9O
U1Njcm9sbGVySW1wRGV0YWlscy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QZXJmb3JtYW5jZUxvZ2dp
bmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NXQ29udGV4dE1hbmFnZXIuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9TeXN0
ZW1Tb3VuZE1hbmFnZXIuaD4KQEAgLTMyOCw2ICszMzAsMTQgQEAgdm9pZCBXZWJQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
IHBhcmEKICAgICBwdGhyZWFkX3NldF9maXhlZHByaW9yaXR5X3NlbGYoKTsKICNlbmRpZgogCisj
aWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShNVF9QTFVHSU5fRk9STUFUX1JFQURFUikK
KyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFdlYk1Gb3JtYXRSZWFkZXJFbmFi
bGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViTUZvcm1hdFJl
YWRlckVuYWJsZWQoKSk7CisjZW5kaWYKKworI2lmIEVOQUJMRShWT1JCSVMpICYmIFBMQVRGT1JN
KE1BQykKKyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFZvcmJpc0RlY29kZXJF
bmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudm9yYmlzRGVj
b2RlckVuYWJsZWQoKSk7CisjZW5kaWYKKwogICAgIGlmICghcGFyYW1ldGVycy5tZWRpYU1JTUVU
eXBlcy5pc0VtcHR5KCkpCiAgICAgICAgIHNldE1lZGlhTUlNRVR5cGVzKHBhcmFtZXRlcnMubWVk
aWFNSU1FVHlwZXMpOwogICAgIGVsc2Ugewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>