<?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>226152</bug_id>
          
          <creation_ts>2021-05-22 21:37:08 -0700</creation_ts>
          <short_desc>Use CheckedLock in even more places</short_desc>
          <delta_ts>2021-05-23 13:34:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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>
          
          <blocked>226157</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>hi</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>philipj</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1762886</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-22 21:37:08 -0700</bug_when>
    <thetext>Use CheckedCondition in even more places to benefit from Clang Thread Safety Analysis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762888</commentid>
    <comment_count>1</comment_count>
      <attachid>429454</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-22 21:39:48 -0700</bug_when>
    <thetext>Created attachment 429454
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762889</commentid>
    <comment_count>2</comment_count>
      <attachid>429455</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-22 21:42:02 -0700</bug_when>
    <thetext>Created attachment 429455
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762926</commentid>
    <comment_count>3</comment_count>
      <attachid>429455</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-23 12:46:22 -0700</bug_when>
    <thetext>Comment on attachment 429455
Patch

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

&gt; Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:373
&gt; +// FIXME: This modifies m_data without grabbing m_dataLock.

Hard to fix?

&gt; Source/WebCore/worklets/PaintWorkletGlobalScope.h:68
&gt; +    HashMap&lt;String, std::unique_ptr&lt;PaintDefinition&gt;&gt;&amp; paintDefinitionMap() WTF_REQUIRES_LOCK(m_paintDefinitionLock)
&gt; +    {
&gt; +        ASSERT(m_paintDefinitionLock.isLocked());
&gt; +        return m_paintDefinitionMap;
&gt; +    }

Can we put this function body after the class definition to keep the class definition easy to read?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762936</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 13:00:28 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 429455 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=429455&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:373
&gt; &gt; +// FIXME: This modifies m_data without grabbing m_dataLock.
&gt; 
&gt; Hard to fix?

I will check in a follow-up. I decided to stay away from fixes in my large refactoring fixes based on earlier feedback.

&gt; 
&gt; &gt; Source/WebCore/worklets/PaintWorkletGlobalScope.h:68
&gt; &gt; +    HashMap&lt;String, std::unique_ptr&lt;PaintDefinition&gt;&gt;&amp; paintDefinitionMap() WTF_REQUIRES_LOCK(m_paintDefinitionLock)
&gt; &gt; +    {
&gt; &gt; +        ASSERT(m_paintDefinitionLock.isLocked());
&gt; &gt; +        return m_paintDefinitionMap;
&gt; &gt; +    }
&gt; 
&gt; Can we put this function body after the class definition to keep the class
&gt; definition easy to read?

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762937</commentid>
    <comment_count>5</comment_count>
      <attachid>429471</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 13:03:18 -0700</bug_when>
    <thetext>Created attachment 429471
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762942</commentid>
    <comment_count>6</comment_count>
      <attachid>429474</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 13:12:05 -0700</bug_when>
    <thetext>Created attachment 429474
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762945</commentid>
    <comment_count>7</comment_count>
      <attachid>429475</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 13:18:07 -0700</bug_when>
    <thetext>Created attachment 429475
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762949</commentid>
    <comment_count>8</comment_count>
      <attachid>429475</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 13:33:36 -0700</bug_when>
    <thetext>Comment on attachment 429475
Patch

Clearing flags on attachment: 429475

Committed r277934 (238064@main): &lt;https://commits.webkit.org/238064@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762950</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 13:33:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762951</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-23 13:34:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/78372445&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429454</attachid>
            <date>2021-05-22 21:39:48 -0700</date>
            <delta_ts>2021-05-22 21:42:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226152-20210522213947.patch</filename>
            <type>text/plain</type>
            <size>46925</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZjY3MTE3MDhhODUyMGY5MDcyMjIzNDExNThhODk2NDgzZjU5NmE2Li5hYWNjMDU3ZTc3ZmU1YTQz
MzdjNGU5OTY2ODJmMWY4YzA4ODRhMWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFVzZSBDaGVja2VkQ29uZGl0aW9uIGluIGV2ZW4gbW9yZSBwbGFjZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE1MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBDaGVja2VkQ29u
ZGl0aW9uIGluIGV2ZW4gbW9yZSBwbGFjZXMgdG8gYmVuZWZpdCBmcm9tIENsYW5nIFRocmVhZCBT
YWZldHkgQW5hbHlzaXMuCisKKyAgICAgICAgKiBBUEkvSlNWaXJ0dWFsTWFjaGluZS5tbToKKyAg
ICAgICAgKFdURl9SRVFVSVJFU19MT0NLKToKKyAgICAgICAgKiBBUEkvZ2xpYi9KU0NWaXJ0dWFs
TWFjaGluZS5jcHA6CisgICAgICAgICogYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaDoKKyAg
ICAgICAgKiBieXRlY29kZS9TdXBlclNhbXBsZXIuY3BwOgorICAgICAgICAqIGRmZy9ERkdDb21t
b25EYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDb21tb25EYXRhOjppbnZhbGlkYXRlKToK
KyAgICAgICAgKEpTQzo6REZHOjpDb21tb25EYXRhOjp+Q29tbW9uRGF0YSk6CisgICAgICAgIChK
U0M6OkRGRzo6Q29tbW9uRGF0YTo6aW5zdGFsbFZNVHJhcEJyZWFrcG9pbnRzKToKKyAgICAgICAg
KEpTQzo6REZHOjpjb2RlQmxvY2tGb3JWTVRyYXBQQyk6CisgICAgICAgICogZGZnL0RGR1BsYW4u
aDoKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpXVEZfR1VBUkRFRF9CWV9MT0NLKToKKyAgICAg
ICAgKiBkaXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNwcDoKKyAgICAgICAgKiBoZWFwL0Jsb2Nr
RGlyZWN0b3J5LmNwcDoKKyAgICAgICAgKEpTQzo6QmxvY2tEaXJlY3Rvcnk6OnBhcmFsbGVsTm90
RW1wdHlCbG9ja1NvdXJjZSk6CisgICAgICAgICogaGVhcC9IZWFwLmg6CisgICAgICAgICogaGVh
cC9Jc29TdWJzcGFjZVBlclZNLmg6CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQv
UmVtb3RlSW5zcGVjdG9yQ29ubmVjdGlvbkNsaWVudC5oOgorCiAyMDIxLTA1LTIyICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBMb2NrSG9sZGVyIHdp
dGggTG9ja2VyIGluIGxvY2FsIHZhcmlhYmxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQwNTdkMjcxMjcwNGM4
MTkwZGE0NDQyMjAxMzkxMjZlNWUyMWVhOWMuLjA1MmQ0MmY3NjdlNDA0N2Y2MWZhZWI4MTI0ZTI5
YjJkOTNkOWMzZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAyMS0wNS0yMiAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBDaGVja2VkQ29uZGl0
aW9uIGluIGV2ZW4gbW9yZSBwbGFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNjE1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSBDaGVja2VkQ29uZGl0aW9uIGluIGV2ZW4gbW9yZSBwbGFjZXMg
dG8gYmVuZWZpdCBmcm9tIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJsZUltYWdlRGVjb2Rlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY2FsYWJsZUltYWdlRGVjb2Rlcjo6ZnJhbWVJc0NvbXBsZXRlQXRJbmRl
eCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY2FsYWJsZUltYWdlRGVjb2Rlcjo6ZnJhbWVI
YXNBbHBoYUF0SW5kZXggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NhbGFibGVJbWFnZURl
Y29kZXI6OmZyYW1lQnl0ZXNBdEluZGV4IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjYWxh
YmxlSW1hZ2VEZWNvZGVyOjpmcmFtZUR1cmF0aW9uQXRJbmRleCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTY2FsYWJsZUltYWdlRGVjb2Rlcjo6Y3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgpOgor
ICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL1NjYWxhYmxlSW1hZ2VEZWNvZGVyLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1v
Y2suaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW06CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2VMaWJXZWJSVEMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2lu
Z0F1ZGlvU291cmNlTGliV2ViUlRDOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDOjpwdWxsQXVkaW9E
YXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oOgorICAgICAgICAqIHdvcmtsZXRz
L1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmg6CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBDaGVja2VkTG9jayBpbiBtb3JlIHBs
YWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBkNjUzYjc5MjlmZDU2NDlmM2NjNDY2NDk0NDMyMmE4MDI5MzQzZDcx
Li45ODRmZDMwNzQxODZiZGRkMzc1YjhiMGJmMTYzNDllYWU3ZDM5MTliIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI2IEBACisyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgVXNlIENoZWNrZWRDb25kaXRpb24gaW4gZXZlbiBtb3JlIHBsYWNlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTUyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIENoZWNrZWRD
b25kaXRpb24gaW4gZXZlbiBtb3JlIHBsYWNlcyB0byBiZW5lZml0IGZyb20gQ2xhbmcgVGhyZWFk
IFNhZmV0eSBBbmFseXNpcy4KKworICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJU
Q0NvZGVjc1Byb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzUHJveHkubW06CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvZ2xpYi9ETlNDYWNoZS5oOgor
ICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3Iu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVNhbXBsZUN1cnNvcjo6bG9jYXRlSXRlcmF0b3Ig
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVNhbXBsZUN1cnNvcjo6bG9jYXRlTWVkaWFT
YW1wbGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVNhbXBsZUN1cnNvcjo6bG9jYXRl
VGltaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFTYW1wbGVDdXJzb3I6OnN0ZXBJ
bk9yZGVyZWRNYXApOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVNhbXBsZUN1cnNvcjo6c3RlcElu
UHJlc2VudGF0aW9uVGltZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhU2FtcGxlQ3Vyc29yOjpn
ZXRNZWRpYVNhbXBsZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhU2FtcGxlQ3Vyc29y
OjpnZXRUaW1pbmcgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVNhbXBsZUN1cnNvcjo6
Z2V0UGxheWFibGVIb3Jpem9uIGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9y
bWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmg6CisKIDIwMjEtMDUtMjIgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gSW1wbGVtZW50IHBh
Z2UgY2xpZW50IGhvb2sgZm9yIHJlcXVlc3RpbmcgaW1hZ2UgZXh0cmFjdGlvbiByZXN1bHRzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hpbmUubW0g
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hpbmUubW0KaW5kZXggYzIw
OTdjMmE4OTYwNTE2ODRkOWNlZDlkY2NlNjg5YjQxY2ExNjZhNS4uZjYxMzQ5OGFjODJjN2NmOTMx
NmQzODYyYmI3NmFlMGI0OWMxMzE4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1ZpcnR1YWxNYWNoaW5lLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNWaXJ0dWFsTWFjaGluZS5tbQpAQCAtMzgsMTIgKzM4LDEyIEBACiAjaW1wb3J0ICJTaWdpbGxD
cmFzaEFuYWx5emVyLmgiCiAjaW1wb3J0ICJTbG90VmlzaXRvcklubGluZXMuaCIKICNpbXBvcnQg
PG11dGV4PgotI2ltcG9ydCA8d3RmL0xvY2suaD4KKyNpbXBvcnQgPHd0Zi9DaGVja2VkTG9jay5o
PgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBzdGF0aWMgTlNNYXBUYWJsZSAqZ2xvYmFs
V3JhcHBlckNhY2hlID0gMDsKIAotc3RhdGljIExvY2sgd3JhcHBlckNhY2hlTXV0ZXg7CitzdGF0
aWMgQ2hlY2tlZExvY2sgd3JhcHBlckNhY2hlTXV0ZXg7CiAKIHN0YXRpYyB2b2lkIGluaXRXcmFw
cGVyQ2FjaGUoKQogewpAQCAtNTMsNyArNTMsNyBAQCBzdGF0aWMgdm9pZCBpbml0V3JhcHBlckNh
Y2hlKCkKICAgICBnbG9iYWxXcmFwcGVyQ2FjaGUgPSBbW05TTWFwVGFibGUgYWxsb2NdIGluaXRX
aXRoS2V5T3B0aW9uczprZXlPcHRpb25zIHZhbHVlT3B0aW9uczp2YWx1ZU9wdGlvbnMgY2FwYWNp
dHk6MF07CiB9CiAKLXN0YXRpYyBOU01hcFRhYmxlICp3cmFwcGVyQ2FjaGUoKQorc3RhdGljIE5T
TWFwVGFibGUgKndyYXBwZXJDYWNoZSgpIFdURl9SRVFVSVJFU19MT0NLKHdyYXBwZXJDYWNoZU11
dGV4KQogewogICAgIGlmICghZ2xvYmFsV3JhcHBlckNhY2hlKQogICAgICAgICBpbml0V3JhcHBl
ckNhY2hlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlND
VmlydHVhbE1hY2hpbmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ1Zp
cnR1YWxNYWNoaW5lLmNwcAppbmRleCA0MzFhNzEwZGUzN2NjMWYwM2U5NzY5OWYxYjJiMWQ1MDIy
MzRjYmUxLi41MTA1ZDI3NzBmZGRhZDdkYjNkMDExOTIzOGIzMjIyZTA3NmFkZDhkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDVmlydHVhbE1hY2hpbmUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWaXJ0dWFsTWFjaGluZS5j
cHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJKU0NDb250ZXh0UHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIkpTQ1ZpcnR1YWxNYWNoaW5lUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkpTQ29udGV4dFJl
Zi5oIgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIv
V1RGR1R5cGUuaD4KQEAgLTQ4LDkgKzQ5LDkgQEAgc3RydWN0IF9KU0NWaXJ0dWFsTWFjaGluZVBy
aXZhdGUgewogCiBXRUJLSVRfREVGSU5FX1RZUEUoSlNDVmlydHVhbE1hY2hpbmUsIGpzY192aXJ0
dWFsX21hY2hpbmUsIEdfVFlQRV9PQkpFQ1QpCiAKLXN0YXRpYyBMb2NrIHdyYXBwZXJDYWNoZU11
dGV4Oworc3RhdGljIENoZWNrZWRMb2NrIHdyYXBwZXJDYWNoZU11dGV4OwogCi1zdGF0aWMgSGFz
aE1hcDxKU0NvbnRleHRHcm91cFJlZiwgSlNDVmlydHVhbE1hY2hpbmUqPiYgd3JhcHBlck1hcCgp
CitzdGF0aWMgSGFzaE1hcDxKU0NvbnRleHRHcm91cFJlZiwgSlNDVmlydHVhbE1hY2hpbmUqPiYg
d3JhcHBlck1hcCgpIFdURl9SRVFVSVJFU19MT0NLKHdyYXBwZXJDYWNoZU11dGV4KQogewogICAg
IHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxKU0NvbnRleHRHcm91cFJlZiwgSlND
VmlydHVhbE1hY2hpbmUqPj4gc2hhcmVkOwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNl
S2V5OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVy
ZVN0dWJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1
YkluZm8uaAppbmRleCBmNTc3ZDIxMjNmM2I2MGIxODJjNDlmYTc4NWIwZmRiYTUxZWI2OTc5Li5l
YjM2NTZmY2JkNTUwNTZhYmI2ZmM1NTk4OWQxZmQ2OTFhZmYwZGRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaApAQCAtMzgsNiAr
MzgsNyBAQAogI2luY2x1ZGUgIlN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuaCIKICNp
bmNsdWRlICJTdHViSW5mb1N1bW1hcnkuaCIKICNpbmNsdWRlIDx3dGYvQm94Lmg+CisjaW5jbHVk
ZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC0zMzksNyArMzQw
LDcgQEAgcHJpdmF0ZToKICAgICAvLyBOb3RlIHRoYXQgaXQncyBhbHdheXMgc2FmZSB0byBjbGVh
ciB0aGlzLiBJZiB3ZSBjbGVhciBpdCBwcmVtYXR1cmVseSwgdGhlbiBpZiB3ZSBzZWUgdGhlIHNh
bWUKICAgICAvLyBzdHJ1Y3R1cmUgYWdhaW4gZHVyaW5nIHRoaXMgYnVmZmVyaW5nIGNvdW50ZG93
biwgd2Ugd2lsbCBjcmVhdGUgYW4gQWNjZXNzQ2FzZSBvYmplY3QgZm9yIGl0LgogICAgIC8vIFRo
YXQncyBub3Qgc28gYmFkIC0gd2UnbGwgZ2V0IHJpZCBvZiB0aGUgcmVkdW5kYW50IG9uZXMgb25j
ZSB3ZSByZWdlbmVyYXRlLgotICAgIEhhc2hTZXQ8QnVmZmVyZWRTdHJ1Y3R1cmUsIEJ1ZmZlcmVk
U3RydWN0dXJlOjpIYXNoLCBCdWZmZXJlZFN0cnVjdHVyZTo6S2V5VHJhaXRzPiBtX2J1ZmZlcmVk
U3RydWN0dXJlczsKKyAgICBIYXNoU2V0PEJ1ZmZlcmVkU3RydWN0dXJlLCBCdWZmZXJlZFN0cnVj
dHVyZTo6SGFzaCwgQnVmZmVyZWRTdHJ1Y3R1cmU6OktleVRyYWl0cz4gbV9idWZmZXJlZFN0cnVj
dHVyZXMgV1RGX0dVQVJERURfQllfTE9DSyhtX2J1ZmZlcmVkU3RydWN0dXJlc0xvY2spOwogcHVi
bGljOgogICAgIENvZGVMb2NhdGlvbkxhYmVsPEpJVFN0dWJSb3V0aW5lUHRyVGFnPiBzdGFydDsg
Ly8gVGhpcyBpcyBlaXRoZXIgdGhlIHN0YXJ0IG9mIHRoZSBpbmxpbmUgSUMgZm9yICpieUlkIGNh
Y2hlcy4gb3IgdGhlIGxvY2F0aW9uIG9mIHBhdGNoYWJsZSBqdW1wIGZvciAnaW5zdGFuY2VvZicg
Y2FjaGVzLgogICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTSW50ZXJuYWxQdHJUYWc+IGRvbmVMb2Nh
dGlvbjsKQEAgLTM5MSw3ICszOTIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBwcm9wZXJ0eUlzSW50
MzIgOiAxOwogICAgIGJvb2wgcHJvcGVydHlJc1N5bWJvbCA6IDE7CiBwcml2YXRlOgotICAgIExv
Y2sgbV9idWZmZXJlZFN0cnVjdHVyZXNMb2NrOworICAgIENoZWNrZWRMb2NrIG1fYnVmZmVyZWRT
dHJ1Y3R1cmVzTG9jazsKIH07CiAKIGlubGluZSBDb2RlT3JpZ2luIGdldFN0cnVjdHVyZVN0dWJJ
bmZvQ29kZU9yaWdpbihTdHJ1Y3R1cmVTdHViSW5mbyYgc3RydWN0dXJlU3R1YkluZm8pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdXBlclNhbXBsZXIuY3BwCmluZGV4IGE0
MjY0MGYyODYzMjY5NzI3OWRjNDlhM2NlNTFlZmMzOWVjMWEzOTAuLmY2ZWRiODQ2ODRkNWY1Mjhm
ZDY4YWZhYTAxNTRmY2Q4NTI3YmVmMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9TdXBlclNhbXBsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdXBlclNhbXBsZXIuY3BwCkBAIC0yNyw4ICsyNyw4IEBACiAjaW5jbHVkZSAiU3Vw
ZXJTYW1wbGVyLmgiCiAKICNpbmNsdWRlICJPcHRpb25zLmgiCisjaW5jbHVkZSA8d3RmL0NoZWNr
ZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0RhdGFMb2cuaD4KLSNpbmNsdWRlIDx3dGYvTG9jay5o
PgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0zNiw5
ICszNiw5IEBAIG5hbWVzcGFjZSBKU0Mgewogdm9sYXRpbGUgdWludDMyX3QgZ19zdXBlclNhbXBs
ZXJDb3VudDsKIHZvbGF0aWxlIGJvb2wgZ19zdXBlclNhbXBsZXJFbmFibGVkOwogCi1zdGF0aWMg
TG9jayBsb2NrOwotc3RhdGljIGRvdWJsZSBpbjsKLXN0YXRpYyBkb3VibGUgb3V0Oworc3RhdGlj
IENoZWNrZWRMb2NrIGxvY2s7CitzdGF0aWMgZG91YmxlIGluIFdURl9HVUFSREVEX0JZX0xPQ0so
bG9jayk7CitzdGF0aWMgZG91YmxlIG91dCBXVEZfR1VBUkRFRF9CWV9MT0NLKGxvY2spOwogCiB2
b2lkIGluaXRpYWxpemVTdXBlclNhbXBsZXIoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDb21tb25EYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29tbW9uRGF0YS5jcHAKaW5kZXggMjdlZGYxYzgxYTUzODM4ZjFiOGI2Y2U5MDAzZWM0
NmQ3MzQ5YjU5MC4uOTcxZjhiMDVhODdlNDU2NjY1NmE5ZjEzYTk5ZDg4ZDZmMGEyNzA5NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb25EYXRhLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbkRhdGEuY3BwCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiSW5saW5lQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1
ZUlubGluZXMuaCIKICNpbmNsdWRlICJUcmFja2VkUmVmZXJlbmNlcy5oIgorI2luY2x1ZGUgPHd0
Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkBAIC00NCw4ICs0NSw4IEBAIHZvaWQgQ29tbW9u
RGF0YTo6c2hyaW5rVG9GaXQoKQogICAgIG1fanVtcFJlcGxhY2VtZW50cy5zaHJpbmtUb0ZpdCgp
OwogfQogCi1zdGF0aWMgTG9jayBwY0NvZGVCbG9ja01hcExvY2s7Ci1pbmxpbmUgSGFzaE1hcDx2
b2lkKiwgQ29kZUJsb2NrKj4mIHBjQ29kZUJsb2NrTWFwKEFic3RyYWN0TG9ja2VyJikKK3N0YXRp
YyBDaGVja2VkTG9jayBwY0NvZGVCbG9ja01hcExvY2s7CitpbmxpbmUgSGFzaE1hcDx2b2lkKiwg
Q29kZUJsb2NrKj4mIHBjQ29kZUJsb2NrTWFwKCkgV1RGX1JFUVVJUkVTX0xPQ0socGNDb2RlQmxv
Y2tNYXBMb2NrKQogewogICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDx2b2lk
KiwgQ29kZUJsb2NrKj4+IHBjQ29kZUJsb2NrTWFwOwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxh
ZyBvbmNlS2V5OwpAQCAtNjIsNyArNjMsNyBAQCBib29sIENvbW1vbkRhdGE6OmludmFsaWRhdGUo
KQogCiAgICAgaWYgKFVOTElLRUxZKGhhc1ZNVHJhcHNCcmVha3BvaW50c0luc3RhbGxlZCkpIHsK
ICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHBjQ29kZUJsb2NrTWFwTG9jayB9OwotICAgICAgICBh
dXRvJiBtYXAgPSBwY0NvZGVCbG9ja01hcChsb2NrZXIpOworICAgICAgICBhdXRvJiBtYXAgPSBw
Y0NvZGVCbG9ja01hcCgpOwogICAgICAgICBmb3IgKGF1dG8mIGp1bXBSZXBsYWNlbWVudCA6IG1f
anVtcFJlcGxhY2VtZW50cykKICAgICAgICAgICAgIG1hcC5yZW1vdmUoanVtcFJlcGxhY2VtZW50
LmRhdGFMb2NhdGlvbigpKTsKICAgICAgICAgaGFzVk1UcmFwc0JyZWFrcG9pbnRzSW5zdGFsbGVk
ID0gZmFsc2U7CkBAIC03OCw3ICs3OSw3IEBAIENvbW1vbkRhdGE6On5Db21tb25EYXRhKCkKIHsK
ICAgICBpZiAoVU5MSUtFTFkoaGFzVk1UcmFwc0JyZWFrcG9pbnRzSW5zdGFsbGVkKSkgewogICAg
ICAgICBMb2NrZXIgbG9ja2VyIHsgcGNDb2RlQmxvY2tNYXBMb2NrIH07Ci0gICAgICAgIGF1dG8m
IG1hcCA9IHBjQ29kZUJsb2NrTWFwKGxvY2tlcik7CisgICAgICAgIGF1dG8mIG1hcCA9IHBjQ29k
ZUJsb2NrTWFwKCk7CiAgICAgICAgIGZvciAoYXV0byYganVtcFJlcGxhY2VtZW50IDogbV9qdW1w
UmVwbGFjZW1lbnRzKQogICAgICAgICAgICAgbWFwLnJlbW92ZShqdW1wUmVwbGFjZW1lbnQuZGF0
YUxvY2F0aW9uKCkpOwogICAgIH0KQEAgLTkxLDcgKzkyLDcgQEAgdm9pZCBDb21tb25EYXRhOjpp
bnN0YWxsVk1UcmFwQnJlYWtwb2ludHMoQ29kZUJsb2NrKiBvd25lcikKICAgICAgICAgcmV0dXJu
OwogICAgIGhhc1ZNVHJhcHNCcmVha3BvaW50c0luc3RhbGxlZCA9IHRydWU7CiAKLSAgICBhdXRv
JiBtYXAgPSBwY0NvZGVCbG9ja01hcChsb2NrZXIpOworICAgIGF1dG8mIG1hcCA9IHBjQ29kZUJs
b2NrTWFwKCk7CiAjaWYgIWRlZmluZWQoTkRFQlVHKQogICAgIC8vIFdlIG5lZWQgdG8gYmUgYWJs
ZSB0byBoYW5kbGUgbW9yZSB0aGFuIG9uZSBpbnZhbGlkYXRpb24gcG9pbnQgYXQgdGhlIHNhbWUg
cGMKICAgICAvLyBidXQgd2Ugd2FudCB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgZm9yZ2V0IHRvIHJl
bW92ZSBhIHBjIGZyb20gdGhlIG1hcC4KQEAgLTExMyw3ICsxMTQsNyBAQCBDb2RlQmxvY2sqIGNv
ZGVCbG9ja0ZvclZNVHJhcFBDKHZvaWQqIHBjKQogewogICAgIEFTU0VSVChpc0pJVFBDKHBjKSk7
CiAgICAgTG9ja2VyIGxvY2tlciB7IHBjQ29kZUJsb2NrTWFwTG9jayB9OwotICAgIGF1dG8mIG1h
cCA9IHBjQ29kZUJsb2NrTWFwKGxvY2tlcik7CisgICAgYXV0byYgbWFwID0gcGNDb2RlQmxvY2tN
YXAoKTsKICAgICBhdXRvIHJlc3VsdCA9IG1hcC5maW5kKHBjKTsKICAgICBpZiAocmVzdWx0ID09
IG1hcC5lbmQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHUGxhbi5oCmluZGV4IDE3MmE3MmQ5Y2I3YjUzNzEyMzAwMjI2NGQzNTIwNjVjNDc1MzhiZjcu
LmMxZWI3MTJhMjg2MTYxNzAyY2JiYzhkYjgwMTMzMjgyOTUwMTcyOWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUGxhbi5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiT3BlcmFuZHMu
aCIKICNpbmNsdWRlICJQcm9maWxlckNvbXBpbGF0aW9uLmgiCiAjaW5jbHVkZSAiUmVjb3JkZWRT
dGF0dXNlcy5oIgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKQEAgLTEz
Nyw4ICsxMzgsOCBAQCBwcml2YXRlOgogICAgIENvZGVCbG9jayogbV9wcm9maWxlZERGR0NvZGVC
bG9jazsKIAogICAgIE9wZXJhbmRzPE9wdGlvbmFsPEpTVmFsdWU+PiBtX211c3RIYW5kbGVWYWx1
ZXM7Ci0gICAgYm9vbCBtX211c3RIYW5kbGVWYWx1ZXNNYXlJbmNsdWRlR2FyYmFnZSB7IHRydWUg
fTsKLSAgICBMb2NrIG1fbXVzdEhhbmRsZVZhbHVlQ2xlYW5pbmdMb2NrOworICAgIGJvb2wgbV9t
dXN0SGFuZGxlVmFsdWVzTWF5SW5jbHVkZUdhcmJhZ2UgV1RGX0dVQVJERURfQllfTE9DSyhtX211
c3RIYW5kbGVWYWx1ZUNsZWFuaW5nTG9jaykgeyB0cnVlIH07CisgICAgQ2hlY2tlZExvY2sgbV9t
dXN0SGFuZGxlVmFsdWVDbGVhbmluZ0xvY2s7CiAKICAgICBib29sIG1fd2lsbFRyeVRvVGllclVw
IHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2Vt
Ymxlci9EaXNhc3NlbWJsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxl
ci9EaXNhc3NlbWJsZXIuY3BwCmluZGV4IDU1YzA1YzgxMjI5ZjM1OTM2ZmYxMzQ3Y2RkZjQ1NGYz
YWZiNmFjOTAuLjdiNmM4OTM1NzkyYTMwYjA1MjhmNTNiODcxYzdlMzE2NzhlNjE3ZDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5j
cHAKQEAgLTI3LDEwICsyNywxMCBAQAogI2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5oIgogCiAjaW5j
bHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgiCi0jaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5o
PgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNr
ZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0RhdGFMb2cuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIApAQCAtMTA5LDkgKzEwOSw5IEBAIHByaXZh
dGU6CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgTG9jayBtX2xvY2s7Ci0gICAgQ29uZGl0
aW9uIG1fY29uZGl0aW9uOwotICAgIERlcXVlPHN0ZDo6dW5pcXVlX3B0cjxEaXNhc3NlbWJseVRh
c2s+PiBtX3F1ZXVlOworICAgIENoZWNrZWRMb2NrIG1fbG9jazsKKyAgICBDaGVja2VkQ29uZGl0
aW9uIG1fY29uZGl0aW9uOworICAgIERlcXVlPHN0ZDo6dW5pcXVlX3B0cjxEaXNhc3NlbWJseVRh
c2s+PiBtX3F1ZXVlIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKTsKICAgICBib29sIG1fd29y
a2luZyB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9CbG9ja0RpcmVjdG9yeS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9j
a0RpcmVjdG9yeS5jcHAKaW5kZXggNmMyNDJiODYzYmNlY2Q3M2U4MzBhNjNhMzVmZTIwMDBkMGEy
Mzc5OS4uYWRiNzU3ZTNkNjA1ODQ2NTU5ZmExZjI5NmMzNzlmMDliMmEyODkyZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrRGlyZWN0b3J5LmNwcApAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgIlN1YnNwYWNlSW5saW5lcy5oIgogI2luY2x1ZGUgIlN1cGVyU2FtcGxl
ci5oIgogCisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL1NpbXBsZVN0YXRzLmg+CiAKQEAgLTM0Myw5ICsz
NDQsOSBAQCBSZWZQdHI8U2hhcmVkVGFzazxNYXJrZWRCbG9jazo6SGFuZGxlKigpPj4gQmxvY2tE
aXJlY3Rvcnk6OnBhcmFsbGVsTm90RW1wdHlCbG9jawogICAgICAgICB9CiAgICAgICAgIAogICAg
IHByaXZhdGU6Ci0gICAgICAgIEJsb2NrRGlyZWN0b3J5JiBtX2RpcmVjdG9yeTsKLSAgICAgICAg
c2l6ZV90IG1faW5kZXggeyAwIH07Ci0gICAgICAgIExvY2sgbV9sb2NrOworICAgICAgICBCbG9j
a0RpcmVjdG9yeSYgbV9kaXJlY3RvcnkgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spOworICAg
ICAgICBzaXplX3QgbV9pbmRleCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jaykgeyAwIH07Cisg
ICAgICAgIENoZWNrZWRMb2NrIG1fbG9jazsKICAgICAgICAgYm9vbCBtX2RvbmUgeyBmYWxzZSB9
OwogICAgIH07CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKaW5kZXggOTNhYTI4YmRi
NzBmNjg4YmM5NTRmZTNmY2E3MzdjNDI3MjQzMzYzZi4uN2E1M2UwNTE1ZDA2OTY1M2QwNGZiOWJh
YzM1NThkN2U4MWQ5NWYyYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaApAQCAtNDIsNiAr
NDIsNyBAQAogI2luY2x1ZGUgIlN5bmNocm9ub3VzbmVzcy5oIgogI2luY2x1ZGUgIldlYWtIYW5k
bGVPd25lci5oIgogI2luY2x1ZGUgPHd0Zi9BdXRvbWF0aWNUaHJlYWQuaD4KKyNpbmNsdWRlIDx3
dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvQ29uY3VycmVudFB0ckhhc2hTZXQuaD4K
ICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4K
QEAgLTY0OCw3ICs2NDksNyBAQCBwcml2YXRlOgogICAgIC8vIG9uZSBHQyB0byB0aGUgbmV4dC4g
R0MgbWFya2luZyB0aHJlYWRzIGNsYWltIHRoZXNlIGF0IHRoZSBzdGFydCBvZiBtYXJraW5nLCBh
bmQgcmV0dXJuCiAgICAgLy8gdGhlbSBhdCB0aGUgZW5kLgogICAgIFZlY3RvcjxzdGQ6OnVuaXF1
ZV9wdHI8U2xvdFZpc2l0b3I+PiBtX3BhcmFsbGVsU2xvdFZpc2l0b3JzOwotICAgIFZlY3RvcjxT
bG90VmlzaXRvcio+IG1fYXZhaWxhYmxlUGFyYWxsZWxTbG90VmlzaXRvcnM7CisgICAgVmVjdG9y
PFNsb3RWaXNpdG9yKj4gbV9hdmFpbGFibGVQYXJhbGxlbFNsb3RWaXNpdG9ycyBXVEZfR1VBUkRF
RF9CWV9MT0NLKG1fcGFyYWxsZWxTbG90VmlzaXRvckxvY2spOwogICAgIAogICAgIEhhbmRsZVNl
dCBtX2hhbmRsZVNldDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29kZUJsb2NrU2V0PiBtX2NvZGVC
bG9ja3M7CkBAIC02NTYsNyArNjU3LDcgQEAgcHJpdmF0ZToKICAgICBDRmluYWxpemVyT3duZXIg
bV9jRmluYWxpemVyT3duZXI7CiAgICAgTGFtYmRhRmluYWxpemVyT3duZXIgbV9sYW1iZGFGaW5h
bGl6ZXJPd25lcjsKICAgICAKLSAgICBMb2NrIG1fcGFyYWxsZWxTbG90VmlzaXRvckxvY2s7Cisg
ICAgQ2hlY2tlZExvY2sgbV9wYXJhbGxlbFNsb3RWaXNpdG9yTG9jazsKICAgICBib29sIG1faXNT
YWZlVG9Db2xsZWN0IHsgZmFsc2UgfTsKICAgICBib29sIG1faXNTaHV0dGluZ0Rvd24geyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9tdXRhdG9yU2hvdWxkQmVGZW5jZWQgeyBPcHRpb25zOjpmb3JjZUZl
bmNlZEJhcnJpZXIoKSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SXNvU3Vic3BhY2VQZXJWTS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3Bh
Y2VQZXJWTS5oCmluZGV4IDRhOTlhODg1Zjk2MWI5N2ViYmE3OGMyYTViNzVjZDc2NDRhNTZjZWYu
LmE5NmMyOTc5NTZlNzI5ZTRhZjRiMWViNDEzM2FjODk2NjUxNzc0ZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNlUGVyVk0uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmgKQEAgLTI2LDkgKzI2LDkgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiSXNvU3Vic3BhY2UuaCIKKyNpbmNsdWRlIDx3dGYv
Q2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBA
IC02Miw4ICs2Miw4IEBAIHByaXZhdGU6CiAgICAgY2xhc3MgQXV0b3JlbW92aW5nSXNvU3Vic3Bh
Y2U7CiAgICAgZnJpZW5kIGNsYXNzIEF1dG9yZW1vdmluZ0lzb1N1YnNwYWNlOwogCi0gICAgTG9j
ayBtX2xvY2s7Ci0gICAgSGFzaE1hcDxWTSosIElzb1N1YnNwYWNlKj4gbV9zdWJzcGFjZVBlclZN
OworICAgIENoZWNrZWRMb2NrIG1fbG9jazsKKyAgICBIYXNoTWFwPFZNKiwgSXNvU3Vic3BhY2Uq
PiBtX3N1YnNwYWNlUGVyVk0gV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spOwogICAgIEZ1bmN0
aW9uPFN1YnNwYWNlUGFyYW1ldGVycyhWTSYpPiBtX3N1YnNwYWNlUGFyYW1ldGVyczsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tl
dC9SZW1vdGVJbnNwZWN0b3JDb25uZWN0aW9uQ2xpZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yQ29ubmVjdGlvbkNsaWVu
dC5oCmluZGV4IDFjNzU0Y2E2ODBmNTg1ZDU3ZjQzNzk5MmRiODFlMWJmN2I5YzI5MDcuLmU4NDZm
ZjNmZDk5MjNjOWVhNjllZWNkODkzZWM4MzMyY2UyNWQ2NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JDb25u
ZWN0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1v
dGUvc29ja2V0L1JlbW90ZUluc3BlY3RvckNvbm5lY3Rpb25DbGllbnQuaApAQCAtMzAsOSArMzAs
OSBAQAogI2luY2x1ZGUgIlJlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oIgogI2luY2x1ZGUgIlJl
bW90ZUluc3BlY3Rvck1lc3NhZ2VQYXJzZXIuaCIKICNpbmNsdWRlICJSZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludC5oIgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KLSNpbmNsdWRlIDx3
dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2Ug
SW5zcGVjdG9yIHsKQEAgLTY1LDggKzY1LDggQEAgcHJvdGVjdGVkOgogCiAgICAgc3RhdGljIE9w
dGlvbmFsPEV2ZW50PiBleHRyYWN0RXZlbnQoQ29ubmVjdGlvbklELCBWZWN0b3I8dWludDhfdD4m
Jik7CiAKLSAgICBIYXNoTWFwPENvbm5lY3Rpb25JRCwgTWVzc2FnZVBhcnNlcj4gbV9wYXJzZXJz
OwotICAgIExvY2sgbV9wYXJzZXJzTG9jazsKKyAgICBIYXNoTWFwPENvbm5lY3Rpb25JRCwgTWVz
c2FnZVBhcnNlcj4gbV9wYXJzZXJzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9wYXJzZXJzTG9jayk7
CisgICAgQ2hlY2tlZExvY2sgbV9wYXJzZXJzTG9jazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElu
c3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2Rl
cnMvU2NhbGFibGVJbWFnZURlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMvU2NhbGFibGVJbWFnZURlY29kZXIuY3BwCmluZGV4IGYyY2ViMDAwYWQ0MDdj
NGViNjIzNTdjY2EwYzAyMmE1YjcxYTU5MDUuLmRkYjExNDM5NDc0NDBkNzE3ZTgzM2NiZDNjN2Q2
ZGMyMWEyMDNiZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRl
Y29kZXJzL1NjYWxhYmxlSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJsZUltYWdlRGVjb2Rlci5jcHAKQEAgLTE3MCw3ICsx
NzAsNyBAQCBSZWZQdHI8U2NhbGFibGVJbWFnZURlY29kZXI+IFNjYWxhYmxlSW1hZ2VEZWNvZGVy
OjpjcmVhdGUoU2hhcmVkQnVmZmVyJiBkYXRhLCBBbAogCiBib29sIFNjYWxhYmxlSW1hZ2VEZWNv
ZGVyOjpmcmFtZUlzQ29tcGxldGVBdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKIHsKLSAgICBM
b2NrZXIgbG9ja2VyIHsgbV9tdXRleCB9OworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsK
ICAgICBpZiAoaW5kZXggPj0gbV9mcmFtZUJ1ZmZlckNhY2hlLnNpemUoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCkBAIC0xODAsNyArMTgwLDcgQEAgYm9vbCBTY2FsYWJsZUltYWdlRGVjb2Rl
cjo6ZnJhbWVJc0NvbXBsZXRlQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0CiAKIGJvb2wgU2Nh
bGFibGVJbWFnZURlY29kZXI6OmZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCBpbmRleCkgY29u
c3QKIHsKLSAgICBMb2NrZXIgbG9ja2VyIHsgbV9tdXRleCB9OworICAgIExvY2tlciBsb2NrZXIg
eyBtX2xvY2sgfTsKICAgICBpZiAobV9mcmFtZUJ1ZmZlckNhY2hlLnNpemUoKSA8PSBpbmRleCkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAKQEAgLTE5Miw3ICsxOTIsNyBAQCBib29sIFNjYWxhYmxl
SW1hZ2VEZWNvZGVyOjpmcmFtZUhhc0FscGhhQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0CiAK
IHVuc2lnbmVkIFNjYWxhYmxlSW1hZ2VEZWNvZGVyOjpmcmFtZUJ5dGVzQXRJbmRleChzaXplX3Qg
aW5kZXgsIFN1YnNhbXBsaW5nTGV2ZWwpIGNvbnN0CiB7Ci0gICAgTG9ja2VyIGxvY2tlciB7IG1f
bXV0ZXggfTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgaWYgKG1fZnJhbWVC
dWZmZXJDYWNoZS5zaXplKCkgPD0gaW5kZXgpCiAgICAgICAgIHJldHVybiAwOwogICAgIC8vIEZJ
WE1FOiBVc2UgdGhlIGRpbWVuc2lvbiBvZiB0aGUgcmVxdWVzdGVkIGZyYW1lLgpAQCAtMjAxLDcg
KzIwMSw3IEBAIHVuc2lnbmVkIFNjYWxhYmxlSW1hZ2VEZWNvZGVyOjpmcmFtZUJ5dGVzQXRJbmRl
eChzaXplX3QgaW5kZXgsIFN1YnNhbXBsaW5nTGV2ZWwpCiAKIFNlY29uZHMgU2NhbGFibGVJbWFn
ZURlY29kZXI6OmZyYW1lRHVyYXRpb25BdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKIHsKLSAg
ICBMb2NrZXIgbG9ja2VyIHsgbV9tdXRleCB9OworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sg
fTsKICAgICBpZiAoaW5kZXggPj0gbV9mcmFtZUJ1ZmZlckNhY2hlLnNpemUoKSkKICAgICAgICAg
cmV0dXJuIDBfczsKIApAQCAtMjIxLDcgKzIyMSw3IEBAIFNlY29uZHMgU2NhbGFibGVJbWFnZURl
Y29kZXI6OmZyYW1lRHVyYXRpb25BdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKIAogUGxhdGZv
cm1JbWFnZVB0ciBTY2FsYWJsZUltYWdlRGVjb2Rlcjo6Y3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgo
c2l6ZV90IGluZGV4LCBTdWJzYW1wbGluZ0xldmVsLCBjb25zdCBEZWNvZGluZ09wdGlvbnMmKQog
ewotICAgIExvY2tlciBsb2NrZXIgeyBtX211dGV4IH07CisgICAgTG9ja2VyIGxvY2tlciB7IG1f
bG9jayB9OwogICAgIC8vIFplcm8taGVpZ2h0IGltYWdlcyBjYW4gY2F1c2UgcHJvYmxlbXMgZm9y
IHNvbWUgcG9ydHMuIElmIHdlIGhhdmUgYW4gZW1wdHkgaW1hZ2UgZGltZW5zaW9uLCBqdXN0IGJh
aWwuCiAgICAgaWYgKHNpemUoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFi
bGVJbWFnZURlY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L1NjYWxhYmxlSW1hZ2VEZWNvZGVyLmgKaW5kZXggZmNmMGE2MTE1ZGQ4NmMxNDc1OWIyYjIxYTdj
NzFjNzhlOWY0Y2Y0YS4uNTAyOGNiYWJkODZlMDg1YjRjNWNlYWUxMmQyZjg4MzAwYmU4NDAxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFi
bGVJbWFnZURlY29kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNv
ZGVycy9TY2FsYWJsZUltYWdlRGVjb2Rlci5oCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAi
U2NhbGFibGVJbWFnZURlY29kZXJGcmFtZS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgog
I2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNs
dWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNzIs
NyArNzIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldERhdGEoU2hhcmVkQnVmZmVyJiBkYXRh
LCBib29sIGFsbERhdGFSZWNlaXZlZCkgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIExvY2tlciBs
b2NrZXIgeyBtX211dGV4IH07CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAg
ICAgICAgaWYgKG1fZW5jb2RlZERhdGFTdGF0dXMgPT0gRW5jb2RlZERhdGFTdGF0dXM6OkVycm9y
KQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0xOTYsOCArMTk2LDggQEAgcHVibGljOgogCiBw
cm90ZWN0ZWQ6CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcjo6RGF0YVNlZ21lbnQ+IG1fZGF0YTsK
LSAgICBWZWN0b3I8U2NhbGFibGVJbWFnZURlY29kZXJGcmFtZSwgMT4gbV9mcmFtZUJ1ZmZlckNh
Y2hlOwotICAgIG11dGFibGUgTG9jayBtX211dGV4OworICAgIFZlY3RvcjxTY2FsYWJsZUltYWdl
RGVjb2RlckZyYW1lLCAxPiBtX2ZyYW1lQnVmZmVyQ2FjaGUgV1RGX0dVQVJERURfQllfTE9DSyht
X2xvY2spOworICAgIG11dGFibGUgQ2hlY2tlZExvY2sgbV9sb2NrOwogICAgIGJvb2wgbV9wcmVt
dWx0aXBseUFscGhhOwogICAgIGJvb2wgbV9pZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZTsKICAg
ICBJbWFnZU9yaWVudGF0aW9uIG1fb3JpZW50YXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0
ZU1vY2suaAppbmRleCA0NDU5ZjJlMmEyNDA5OTU3MTNhNDEzYzE4NWViZmRkNWMxM2MxZTkzLi45
MDIzMGQ4NTYzYmJiNTkxZmNmZGYwOTI3ZGZjOGUxODFmMTFlMmIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9j
ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlclByaXZhdGVNb2NrLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogCiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGUuaCIKLSNpbmNsdWRlIDx3dGYv
TG9jay5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTAsMTAgKzUwLDEw
IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXN1bWVSZWNvcmRpbmcoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKSBmaW5hbDsKICAgICBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKCkgY29uc3QgZmlu
YWw7CiAKLSAgICB2b2lkIGdlbmVyYXRlTW9ja0NvdW50ZXJTdHJpbmcoKTsKKyAgICB2b2lkIGdl
bmVyYXRlTW9ja0NvdW50ZXJTdHJpbmcoKSBXVEZfUkVRVUlSRVNfTE9DSyhtX2J1ZmZlckxvY2sp
OwogCi0gICAgbXV0YWJsZSBMb2NrIG1fYnVmZmVyTG9jazsKLSAgICBTdHJpbmdCdWlsZGVyIG1f
YnVmZmVyOworICAgIG11dGFibGUgQ2hlY2tlZExvY2sgbV9idWZmZXJMb2NrOworICAgIFN0cmlu
Z0J1aWxkZXIgbV9idWZmZXIgV1RGX0dVQVJERURfQllfTE9DSyhtX2J1ZmZlckxvY2spOwogICAg
IHVuc2lnbmVkIG1fY291bnRlciB7IDAgfTsKICAgICBTdHJpbmcgbV9hdWRpb1RyYWNrSUQ7CiAg
ICAgU3RyaW5nIG1fdmlkZW9UcmFja0lEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29h
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAppbmRleCA2NjBiOGVhZjIyZTcxODUxMDZkODdkMzJi
NjYwMGYxODFiM2IyZmY5Li42M2QxMjZmOTliMDEyYWU2NTQ4YWIzNWFmNTljYTUxZWU5MTg5YmMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29h
L01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29j
b2EuaApAQCAtMjksOSArMjksOSBAQAogI2luY2x1ZGUgIkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24u
aCIKIAogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9E
ZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CkBAIC0xMTgsOCArMTE4LDggQEAgcHJpdmF0ZToKIAogICAgIFJldGFpblB0cjxB
VkFzc2V0V3JpdGVyPiBtX3dyaXRlcjsKIAotICAgIExvY2sgbV9kYXRhTG9jazsKLSAgICBSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBtX2RhdGE7CisgICAgQ2hlY2tlZExvY2sgbV9kYXRhTG9jazsKKyAg
ICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX2RhdGEgV1RGX0dVQVJERURfQllfTE9DSyhtX2RhdGFM
b2NrKTsKICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYs
IGRvdWJsZSk+IG1fZmV0Y2hEYXRhQ29tcGxldGlvbkhhbmRsZXI7CiAKICAgICBSZXRhaW5QdHI8
Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCmluZGV4
IDkyM2EzNjBkNTNlNGY1NTQ0ZTViMGJmYjhkZmZiZDU1OTVkNWEwMGMuLjY0ZDc4Yjc5ZDViODE1
YzhkODM1YzUzYTYyMTIwNTZjNDg0ZjgxZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KQEAgLTM3MCw3ICszNzAsOCBAQCB2b2lk
IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpmbHVzaENvbXByZXNzZWRTYW1wbGVCdWZmZXJz
KEZ1bmN0aW9uPHZvaWQoKT4mJgogICAgICAgICBbbV92aWRlb0Fzc2V0V3JpdGVySW5wdXQgcmVx
dWVzdE1lZGlhRGF0YVdoZW5SZWFkeU9uUXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1
c2luZ0Jsb2NrOmJsb2NrLmdldCgpXTsKIH0KIAotdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6Y2xlYXIoKQorLy8gRklYTUU6IFRoaXMgbW9kaWZpZXMgbV9kYXRhIHdpdGhvdXQgZ3Jh
YmJpbmcgbV9kYXRhTG9jay4KK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNsZWFy
KCkgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJUwogewogICAgIG1fcGVuZGluZ0F1
ZGlvU2FtcGxlUXVldWUuY2xlYXIoKTsKICAgICBtX3BlbmRpbmdWaWRlb1NhbXBsZVF1ZXVlLmNs
ZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggMWZmNDIwMzY5OWI5ODhiNWE5Yjk1ZmNlNmFh
ZTZiMGE4NzU5ODNjOS4uZWYwN2VhYTg5YTQzYzAxMTc5NTEyYTMwM2UyMmQ2ZmEyYTkwNTBhNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtNDIsOCArNDIsOCBAQAogI2luY2x1ZGUgIlBsYXRmb3Jt
TGF5ZXIuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmgiCiAj
aW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCIKKyNpbmNsdWRlIDx3dGYvQ2hl
Y2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KLSNpbmNsdWRl
IDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0y
NzYsMTEgKzI3NiwxMSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX25hbWU7CiAgICAgV2Vha0hh
c2hTZXQ8T2JzZXJ2ZXI+IG1fb2JzZXJ2ZXJzOwogCi0gICAgbXV0YWJsZSBMb2NrIG1fYXVkaW9T
YW1wbGVPYnNlcnZlcnNMb2NrOwotICAgIEhhc2hTZXQ8QXVkaW9TYW1wbGVPYnNlcnZlcio+IG1f
YXVkaW9TYW1wbGVPYnNlcnZlcnM7CisgICAgbXV0YWJsZSBDaGVja2VkTG9jayBtX2F1ZGlvU2Ft
cGxlT2JzZXJ2ZXJzTG9jazsKKyAgICBIYXNoU2V0PEF1ZGlvU2FtcGxlT2JzZXJ2ZXIqPiBtX2F1
ZGlvU2FtcGxlT2JzZXJ2ZXJzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9hdWRpb1NhbXBsZU9ic2Vy
dmVyc0xvY2spOwogCi0gICAgbXV0YWJsZSBMb2NrIG1fdmlkZW9TYW1wbGVPYnNlcnZlcnNMb2Nr
OwotICAgIEhhc2hTZXQ8VmlkZW9TYW1wbGVPYnNlcnZlcio+IG1fdmlkZW9TYW1wbGVPYnNlcnZl
cnM7CisgICAgbXV0YWJsZSBDaGVja2VkTG9jayBtX3ZpZGVvU2FtcGxlT2JzZXJ2ZXJzTG9jazsK
KyAgICBIYXNoU2V0PFZpZGVvU2FtcGxlT2JzZXJ2ZXIqPiBtX3ZpZGVvU2FtcGxlT2JzZXJ2ZXJz
IFdURl9HVUFSREVEX0JZX0xPQ0sobV92aWRlb1NhbXBsZU9ic2VydmVyc0xvY2spOwogCiAgICAg
Ly8gU2V0IG9uIHRoZSBtYWluIHRocmVhZCBmcm9tIGNvbnN0cmFpbnRzLgogICAgIEludFNpemUg
bV9zaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaAppbmRleCBkYzNjYWIyYThk
YmFiMzI5ZmIyMWM3ZWQ3NWE3ZmMyODc2MzFjZThkLi41MzA4NWNmNWI0OWQ4N2JmOGJlNDFlYWIx
ZGQwMDM1MzA1MDYzYzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaApAQCAt
NDEsNiArNDEsNyBAQCBBTExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgogCiBBTExPV19VTlVT
RURfUEFSQU1FVEVSU19FTkQKIAorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1
ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50
ZWQuaD4KIApAQCAtMTI3LDggKzEyOCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX211dGVkIHsg
ZmFsc2UgfTsKICAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKIAotICAgIG11dGFibGUgTG9j
ayBtX3NpbmtzTG9jazsKLSAgICBIYXNoU2V0PHdlYnJ0Yzo6QXVkaW9UcmFja1NpbmtJbnRlcmZh
Y2UqPiBtX3NpbmtzOworICAgIG11dGFibGUgQ2hlY2tlZExvY2sgbV9zaW5rc0xvY2s7CisgICAg
SGFzaFNldDx3ZWJydGM6OkF1ZGlvVHJhY2tTaW5rSW50ZXJmYWNlKj4gbV9zaW5rcyBXVEZfR1VB
UkRFRF9CWV9MT0NLKG1fc2lua3NMb2NrKTsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAog
ICAgIHNpemVfdCBtX2NodW5rc1NlbnQgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZS5oCmluZGV4IDhhOTFkNjRhMDlmOTNhMzU1NTQ5Y2U5ODAyMzlkMmMzZGQ0YzNmZDIuLjVi
ZDFkZDg1MDNlZjU4NWIyZmEyYWQwNTNkNGJlYmFiZTBkYzFlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0
Z29pbmdWaWRlb1NvdXJjZS5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRD
TWFjcm9zLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRl
IDxUaW1lci5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogCiBBTExPV19VTlVTRURf
UEFSQU1FVEVSU19CRUdJTgogCkBAIC0xNDEsOCArMTQyLDggQEAgcHJpdmF0ZToKICAgICBUaW1l
ciBtX2JsYWNrRnJhbWVUaW1lcjsKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRl
b0ZyYW1lQnVmZmVyPiBtX2JsYWNrRnJhbWU7CiAKLSAgICBtdXRhYmxlIExvY2sgbV9zaW5rc0xv
Y2s7Ci0gICAgSGFzaFNldDxydGM6OlZpZGVvU2lua0ludGVyZmFjZTx3ZWJydGM6OlZpZGVvRnJh
bWU+Kj4gbV9zaW5rczsKKyAgICBtdXRhYmxlIENoZWNrZWRMb2NrIG1fc2lua3NMb2NrOworICAg
IEhhc2hTZXQ8cnRjOjpWaWRlb1NpbmtJbnRlcmZhY2U8d2VicnRjOjpWaWRlb0ZyYW1lPio+IG1f
c2lua3MgV1RGX0dVQVJERURfQllfTE9DSyhtX3NpbmtzTG9jayk7CiAgICAgYm9vbCBtX2FyZVNp
bmtzQXNraW5nVG9BcHBseVJvdGF0aW9uIHsgZmFsc2UgfTsKIAogICAgIGJvb2wgbV9lbmFibGVk
IHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRn
b2luZ0F1ZGlvU291cmNlTGliV2ViUlRDLmNwcAppbmRleCAzYjkwOTU4NThmNWZlYTRmOGVkNmQ0
ZDJmYTIwYTJlYjViMWE4MDE3Li44YzljYzNmYTI1MTEzNjQyMjFhYThlZDk1N2VjMjNmMThmZTUx
ZTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2lu
Z0F1ZGlvU291cmNlTGliV2ViUlRDLmNwcApAQCAtODEsNyArODEsNyBAQCB2b2lkIFJlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0
IE1lZGlhVGltZQogICAgIH0KIAogICAgIHsKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fYWRh
cHRlck11dGV4IH07CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2FkYXB0ZXJMb2NrIH07CiAg
ICAgICAgIGNvbnN0IGF1dG8mIHNhbXBsZSA9IGRhdGEuZ2V0U2FtcGxlKCk7CiAgICAgICAgIGF1
dG8qIGJ1ZmZlciA9IGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcihzYW1wbGUuZ2V0KCkpOwogICAgICAg
ICBnc3RfYWRhcHRlcl9wdXNoKG1fYWRhcHRlci5nZXQoKSwgZ3N0X2J1ZmZlcl9yZWYoYnVmZmVy
KSk7CkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VM
aWJXZWJSVEM6OnB1bGxBdWRpb0RhdGEoKQogICAgIHNpemVfdCBvdXRDaHVua1NhbXBsZUNvdW50
ID0gTGliV2ViUlRDQXVkaW9Gb3JtYXQ6OmNodW5rU2FtcGxlQ291bnQ7CiAgICAgc2l6ZV90IG91
dEJ1ZmZlclNpemUgPSBvdXRDaHVua1NhbXBsZUNvdW50ICogbV9vdXRwdXRTdHJlYW1EZXNjcmlw
dGlvbi5icGY7CiAKLSAgICBMb2NrZXIgbG9ja2VyIHsgbV9hZGFwdGVyTXV0ZXggfTsKKyAgICBM
b2NrZXIgbG9ja2VyIHsgbV9hZGFwdGVyTG9jayB9OwogICAgIHNpemVfdCBpbkNodW5rU2FtcGxl
Q291bnQgPSBnc3RfYXVkaW9fY29udmVydGVyX2dldF9pbl9mcmFtZXMobV9zYW1wbGVDb252ZXJ0
ZXIuZ2V0KCksIG91dENodW5rU2FtcGxlQ291bnQpOwogICAgIHNpemVfdCBpbkJ1ZmZlclNpemUg
PSBpbkNodW5rU2FtcGxlQ291bnQgKiBtX2lucHV0U3RyZWFtRGVzY3JpcHRpb24uYnBmOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNl
TGliV2ViUlRDLmgKaW5kZXggZGU2ZWZlOWYxYTUyNTcxNWJmN2JkOTBkOGUxMTgxNzFkMWViZTJk
ZC4uZTA1M2IwMTBkMjdmYjBjNGY2YTkyYTA2YjQxOTNiMjE2MDE2ZWUzZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJS
VEMuaApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIlJlYWx0aW1lT3V0Z29pbmdBdWRpb1Nv
dXJjZS5oIgogCiAjaW5jbHVkZSA8Z3N0L2F1ZGlvL2F1ZGlvLmg+CisjaW5jbHVkZSA8d3RmL0No
ZWNrZWRMb2NrLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTEsOCArNTIsOCBAQCBw
cml2YXRlOgogICAgIEdzdEF1ZGlvSW5mbyBtX2lucHV0U3RyZWFtRGVzY3JpcHRpb247CiAgICAg
R3N0QXVkaW9JbmZvIG1fb3V0cHV0U3RyZWFtRGVzY3JpcHRpb247CiAKLSAgICBMb2NrIG1fYWRh
cHRlck11dGV4OwotICAgIEdSZWZQdHI8R3N0QWRhcHRlcj4gbV9hZGFwdGVyOworICAgIENoZWNr
ZWRMb2NrIG1fYWRhcHRlckxvY2s7CisgICAgR1JlZlB0cjxHc3RBZGFwdGVyPiBtX2FkYXB0ZXIg
V1RGX0dVQVJERURfQllfTE9DSyhtX2FkYXB0ZXJMb2NrKTsKICAgICBWZWN0b3I8dWludDhfdD4g
bV9hdWRpb0J1ZmZlcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJW
aWRlb0VuY29kZXJGYWN0b3J5LmNwcAppbmRleCAyYmI3ZWYxNWJkNTc0Y2ZhY2Q3NjI1OGViZjMx
MGM2NDBjNmU2MDMyLi4yNjg2NzBkYTI4NDA5YzNkYjhlODZlODU5Y2YxZTY4N2YzNTU0ZmZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
R1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnku
Y3BwCkBAIC0zNDUsNyArMzQ1LDYgQEAgcHJpdmF0ZToKICAgICBHUmVmUHRyPEdzdENhcHM+IG1f
cmVzdHJpY3Rpb25DYXBzOwogICAgIHdlYnJ0Yzo6RW5jb2RlZEltYWdlIG1fZW5jb2RlZEZyYW1l
OwogCi0gICAgTG9jayBtX2J1ZmZlck1hcExvY2s7CiAgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBt
X3Npbms7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IGYwY2I3NTBjODgz
NTI5YWZkMTAwMDliZjdlZTA5NDE3ZGZlNmJiYzkuLjBlNDFjYzQxM2Y4NDNmYTAzOThhMWExNzI0
NDBkMWUyNjc3YjI3ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCkBAIC0xMzIsNyAr
MTMyLDYgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8QVZDYXB0dXJlU2Vzc2lvbj4gbV9zZXNz
aW9uOwogICAgIFJldGFpblB0cjxBVkNhcHR1cmVEZXZpY2U+IG1fZGV2aWNlOwogCi0gICAgTG9j
ayBtX3ByZXNldE11dGV4OwogICAgIFJlZlB0cjxBVlZpZGVvUHJlc2V0PiBtX2N1cnJlbnRQcmVz
ZXQ7CiAgICAgSW50U2l6ZSBtX2N1cnJlbnRTaXplOwogICAgIGRvdWJsZSBtX2N1cnJlbnRGcmFt
ZVJhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0
YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCmlu
ZGV4IGFiMTk0ZGRmMmMxNTFhZGZiMjk0MWRmMzM3YjhmNThhMDQxMTkyZmEuLjRhMjQ0YzY1ZmE4
N2YxYzNiYTk1OGEyYzAyMGQzNDU2OTQ1MmI2ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCkBAIC0yOCw4ICsyOCw4IEBACiAKICNpbmNsdWRlIDxm
dW5jdGlvbmFsPgogI2luY2x1ZGUgPHNxbGl0ZTMuaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExv
Y2suaD4KICNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQuaD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgog
I2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTE2Miw3ICsxNjIsNyBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIHN0YXRpYyBpbnQgYXV0aG9yaXplckZ1bmN0aW9uKHZvaWQqLCBpbnQsIGNvbnN0
IGNoYXIqLCBjb25zdCBjaGFyKiwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqKTsKIAotICAgIHZv
aWQgZW5hYmxlQXV0aG9yaXplcihib29sIGVuYWJsZSk7CisgICAgdm9pZCBlbmFibGVBdXRob3Jp
emVyKGJvb2wgZW5hYmxlKSBXVEZfUkVRVUlSRVNfTE9DSyhtX2F1dGhvcml6ZXJMb2NrKTsKICAg
ICB2b2lkIHVzZVdBTEpvdXJuYWxNb2RlKCk7CiAKICAgICBpbnQgcGFnZVNpemUoKTsKQEAgLTE4
MCw4ICsxODAsOCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3VzZVdBTCB7IGZhbHNlIH07CiAK
LSAgICBMb2NrIG1fYXV0aG9yaXplckxvY2s7Ci0gICAgUmVmUHRyPERhdGFiYXNlQXV0aG9yaXpl
cj4gbV9hdXRob3JpemVyOworICAgIENoZWNrZWRMb2NrIG1fYXV0aG9yaXplckxvY2s7CisgICAg
UmVmUHRyPERhdGFiYXNlQXV0aG9yaXplcj4gbV9hdXRob3JpemVyIFdURl9HVUFSREVEX0JZX0xP
Q0sobV9hdXRob3JpemVyTG9jayk7CiAKICAgICBMb2NrIG1fbG9ja2luZ011dGV4OwogICAgIFJl
ZlB0cjxUaHJlYWQ+IG1fb3BlbmluZ1RocmVhZCB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtsZXRzL1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrbGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5oCmluZGV4IDlhMmM0OTdj
OTI5NDgwMmUxZTY3YjI0ZDA3YWZiMjgzMWUyMjhiMzUuLjM0Y2RmMWI1ZWJlOTRiYWM2ZjNhYzg0
ZmE1MjMwOWRkMmIwMGJjNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1Bh
aW50V29ya2xldEdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvUGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIldvcmts
ZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTT2JqZWN0Lmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRM
b2NrLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSlNPYmplY3Q7CkBAIC02MCw4ICs2MSwx
MiBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+IGlucHV0QXJndW1lbnRz
OwogICAgIH07CiAKLSAgICBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFBhaW50RGVm
aW5pdGlvbj4+JiBwYWludERlZmluaXRpb25NYXAoKSB7IEFTU0VSVChtX3BhaW50RGVmaW5pdGlv
bkxvY2suaXNMb2NrZWQoKSk7IHJldHVybiBtX3BhaW50RGVmaW5pdGlvbk1hcDsgfQotICAgIExv
Y2smIHBhaW50RGVmaW5pdGlvbkxvY2soKSB7IHJldHVybiBtX3BhaW50RGVmaW5pdGlvbkxvY2s7
IH0KKyAgICBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFBhaW50RGVmaW5pdGlvbj4+
JiBwYWludERlZmluaXRpb25NYXAoKSBXVEZfUkVRVUlSRVNfTE9DSyhtX3BhaW50RGVmaW5pdGlv
bkxvY2spCisgICAgeworICAgICAgICBBU1NFUlQobV9wYWludERlZmluaXRpb25Mb2NrLmlzTG9j
a2VkKCkpOworICAgICAgICByZXR1cm4gbV9wYWludERlZmluaXRpb25NYXA7CisgICAgfQorICAg
IENoZWNrZWRMb2NrJiBwYWludERlZmluaXRpb25Mb2NrKCkgV1RGX1JFVFVSTlNfTE9DSyhtX3Bh
aW50RGVmaW5pdGlvbkxvY2spIHsgcmV0dXJuIG1fcGFpbnREZWZpbml0aW9uTG9jazsgfQogCiAg
ICAgdm9pZCBwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKSBmaW5hbAogICAgIHsKQEAgLTkxLDggKzk2
LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaXNQYWludFdvcmtsZXRHbG9iYWxTY29wZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVu
aXF1ZV9wdHI8UGFpbnREZWZpbml0aW9uPj4gbV9wYWludERlZmluaXRpb25NYXA7Ci0gICAgTG9j
ayBtX3BhaW50RGVmaW5pdGlvbkxvY2s7CisgICAgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVl
X3B0cjxQYWludERlZmluaXRpb24+PiBtX3BhaW50RGVmaW5pdGlvbk1hcCBXVEZfR1VBUkRFRF9C
WV9MT0NLKG1fcGFpbnREZWZpbml0aW9uTG9jayk7CisgICAgQ2hlY2tlZExvY2sgbV9wYWludERl
ZmluaXRpb25Mb2NrOwogICAgIGJvb2wgbV9oYXNQcmVwYXJlZEZvckRlc3RydWN0aW9uIHsgZmFs
c2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
TGliV2ViUlRDQ29kZWNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
TGliV2ViUlRDQ29kZWNzUHJveHkuaAppbmRleCAxOTUyMGQ5MzhiZjhmNmUwZDBjYTM2ODViY2Nm
MzExNDQ2OGUyYzg0Li40MWE0Yzg3ZGU2NzAwZjE2N2QzZDU5YjAwOWY5ZTQ5ZTU1NDYwODA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVj
c1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3NQcm94eS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiUlRDRGVjb2RlcklkZW50
aWZpZXIuaCIKICNpbmNsdWRlICJSVENFbmNvZGVySWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9j
ay5oPgogCiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIENvbm5lY3Rpb247CkBAIC04Nyw5ICs4OCw5
IEBAIHByaXZhdGU6CiAKICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M7CiAKLSAgICBtdXRhYmxlIExvY2sgbV9sb2NrOwotICAgIEhhc2hN
YXA8UlRDRGVjb2RlcklkZW50aWZpZXIsIHdlYnJ0Yzo6TG9jYWxEZWNvZGVyPiBtX2RlY29kZXJz
OwotICAgIEhhc2hNYXA8UlRDRW5jb2RlcklkZW50aWZpZXIsIHdlYnJ0Yzo6TG9jYWxFbmNvZGVy
PiBtX2VuY29kZXJzOworICAgIG11dGFibGUgQ2hlY2tlZExvY2sgbV9sb2NrOworICAgIEhhc2hN
YXA8UlRDRGVjb2RlcklkZW50aWZpZXIsIHdlYnJ0Yzo6TG9jYWxEZWNvZGVyPiBtX2RlY29kZXJz
IFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKTsgLy8gT25seSBtb2RpZmllZCBvbiB0aGUgbGli
V2ViUlRDQ29kZWNzUXVldWUgYnV0IG1heSBnZXQgYWNjZXNzZWQgZnJvbSB0aGUgbWFpbiB0aHJl
YWQuCisgICAgSGFzaE1hcDxSVENFbmNvZGVySWRlbnRpZmllciwgd2VicnRjOjpMb2NhbEVuY29k
ZXI+IG1fZW5jb2RlcnMgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spOyAvLyBPbmx5IG1vZGlm
aWVkIG9uIHRoZSBsaWJXZWJSVENDb2RlY3NRdWV1ZSBidXQgbWF5IGdldCBhY2Nlc3NlZCBmcm9t
IHRoZSBtYWluIHRocmVhZC4KIAogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFu
c2ZlclNlc3Npb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQppbmRleCBkNDdmODRkMThiZDg2M2M4NDkyNDlmNTYx
ODE4ZjhkYmJiZWZhODRlLi5iMjMyNTgyNzQ0YzE1ODYwZTkyNTNlYjNkYmU5MjQ0ZTkxOWU4NjFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjc1Byb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2Vi
UlRDQ29kZWNzUHJveHkubW0KQEAgLTExNSw3ICsxMTUsOSBAQCB2b2lkIExpYldlYlJUQ0NvZGVj
c1Byb3h5OjpyZWxlYXNlRGVjb2RlcihSVENEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyKQog
ICAgICAgICB3ZWJydGM6OnJlbGVhc2VMb2NhbERlY29kZXIoZGVjb2Rlcik7CiB9CiAKLXZvaWQg
TGliV2ViUlRDQ29kZWNzUHJveHk6OmRlY29kZUZyYW1lKFJUQ0RlY29kZXJJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIHVpbnQzMl90IHRpbWVTdGFtcCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBk
YXRhKQorLy8gRm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIHRoaXMgZnVuY3Rpb24gYWNjZXNzZXMg
bV9kZWNvZGVycyB3aXRob3V0IGxvY2tpbmcuIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHRoaXMgZnVu
Y3Rpb24gcnVucyBvbiB0aGUgbGliV2ViUlRDQ29kZWNzUXVldWUKKy8vIGFuZCBtX2RlY29kZXJz
IG9ubHkgZ2V0IG1vZGlmaWVkIG9uIHRoaXMgcXVldWUuCit2b2lkIExpYldlYlJUQ0NvZGVjc1By
b3h5OjpkZWNvZGVGcmFtZShSVENEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50MzJf
dCB0aW1lU3RhbXAsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkgV1RGX0lHTk9SRVNf
VEhSRUFEX1NBRkVUWV9BTkFMWVNJUwogewogICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsK
ICAgICBBU1NFUlQobV9kZWNvZGVycy5jb250YWlucyhpZGVudGlmaWVyKSk7CkBAIC0xMjcsNyAr
MTI5LDkgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6ZGVjb2RlRnJhbWUoUlRDRGVjb2Rl
cklkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDMyX3QKICAgICAgICAgbV9ncHVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6
OkZhaWxlZERlY29kaW5nIHsgaWRlbnRpZmllciB9LCAwKTsKIH0KIAotdm9pZCBMaWJXZWJSVEND
b2RlY3NQcm94eTo6c2V0RnJhbWVTaXplKFJUQ0RlY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIs
IHVpbnQxNl90IHdpZHRoLCB1aW50MTZfdCBoZWlnaHQpCisvLyBGb3IgcGVyZm9ybWFuY2UgcmVh
c29ucywgdGhpcyBmdW5jdGlvbiBhY2Nlc3NlcyBtX2RlY29kZXJzIHdpdGhvdXQgbG9ja2luZy4g
VGhpcyBpcyBzYWZlIGJlY2F1c2UgdGhpcyBmdW5jdGlvbiBydW5zIG9uIHRoZSBsaWJXZWJSVEND
b2RlY3NRdWV1ZQorLy8gYW5kIG1fZGVjb2RlcnMgb25seSBnZXQgbW9kaWZpZWQgb24gdGhpcyBx
dWV1ZS4KK3ZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OnNldEZyYW1lU2l6ZShSVENEZWNvZGVy
SWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50MTZfdCB3aWR0aCwgdWludDE2X3QgaGVpZ2h0KSBX
VEZfSUdOT1JFU19USFJFQURfU0FGRVRZX0FOQUxZU0lTCiB7CiAgICAgQVNTRVJUKCFpc01haW5S
dW5Mb29wKCkpOwogICAgIEFTU0VSVChtX2RlY29kZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsK
QEAgLTE2NCw3ICsxNjgsOSBAQCB2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjpyZWxlYXNlRW5j
b2RlcihSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgICAgICB3ZWJydGM6OnJl
bGVhc2VMb2NhbEVuY29kZXIoZW5jb2Rlcik7CiB9CiAKLXZvaWQgTGliV2ViUlRDQ29kZWNzUHJv
eHk6OmluaXRpYWxpemVFbmNvZGVyKFJUQ0VuY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVp
bnQxNl90IHdpZHRoLCB1aW50MTZfdCBoZWlnaHQsIHVuc2lnbmVkIHN0YXJ0Qml0cmF0ZSwgdW5z
aWduZWQgbWF4Qml0cmF0ZSwgdW5zaWduZWQgbWluQml0cmF0ZSwgdWludDMyX3QgbWF4RnJhbWVy
YXRlKQorLy8gRm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIHRoaXMgZnVuY3Rpb24gYWNjZXNzZXMg
bV9lbmNvZGVycyB3aXRob3V0IGxvY2tpbmcuIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHRoaXMgZnVu
Y3Rpb24gcnVucyBvbiB0aGUgbGliV2ViUlRDQ29kZWNzUXVldWUKKy8vIGFuZCBtX2VuY29kZXJz
IG9ubHkgZ2V0IG1vZGlmaWVkIG9uIHRoaXMgcXVldWUuCit2b2lkIExpYldlYlJUQ0NvZGVjc1By
b3h5Ojppbml0aWFsaXplRW5jb2RlcihSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCB1
aW50MTZfdCB3aWR0aCwgdWludDE2X3QgaGVpZ2h0LCB1bnNpZ25lZCBzdGFydEJpdHJhdGUsIHVu
c2lnbmVkIG1heEJpdHJhdGUsIHVuc2lnbmVkIG1pbkJpdHJhdGUsIHVpbnQzMl90IG1heEZyYW1l
cmF0ZSkgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJUwogewogICAgIEFTU0VSVCgh
aXNNYWluUnVuTG9vcCgpKTsKICAgICBBU1NFUlQobV9lbmNvZGVycy5jb250YWlucyhpZGVudGlm
aWVyKSk7CkBAIC0xOTEsNyArMTk3LDkgQEAgc3RhdGljIGlubGluZSB3ZWJydGM6OlZpZGVvUm90
YXRpb24gdG9XZWJSVENWaWRlb1JvdGF0aW9uKFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjoKICAgICBy
ZXR1cm4gd2VicnRjOjprVmlkZW9Sb3RhdGlvbl8wOwogfQogCi12b2lkIExpYldlYlJUQ0NvZGVj
c1Byb3h5OjplbmNvZGVGcmFtZShSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJD
b3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmIHNhbXBsZSwgdWludDMyX3QgdGltZVN0YW1wLCBib29s
IHNob3VsZEVuY29kZUFzS2V5RnJhbWUpCisvLyBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgdGhp
cyBmdW5jdGlvbiBhY2Nlc3NlcyBtX2VuY29kZXJzIHdpdGhvdXQgbG9ja2luZy4gVGhpcyBpcyBz
YWZlIGJlY2F1c2UgdGhpcyBmdW5jdGlvbiBydW5zIG9uIHRoZSBsaWJXZWJSVENDb2RlY3NRdWV1
ZQorLy8gYW5kIG1fZW5jb2RlcnMgb25seSBnZXQgbW9kaWZpZWQgb24gdGhpcyBxdWV1ZS4KK3Zv
aWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OmVuY29kZUZyYW1lKFJUQ0VuY29kZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYgc2FtcGxlLCB1aW50MzJf
dCB0aW1lU3RhbXAsIGJvb2wgc2hvdWxkRW5jb2RlQXNLZXlGcmFtZSkgV1RGX0lHTk9SRVNfVEhS
RUFEX1NBRkVUWV9BTkFMWVNJUwogewogICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKICAg
ICBBU1NFUlQobV9lbmNvZGVycy5jb250YWlucyhpZGVudGlmaWVyKSk7CkBAIC0yMDgsNyArMjE2
LDkgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6ZW5jb2RlRnJhbWUoUlRDRW5jb2Rlcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZToKICNlbmRpZgogfQogCi12b2lkIExpYldlYlJU
Q0NvZGVjc1Byb3h5OjpzZXRFbmNvZGVSYXRlcyhSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlm
aWVyLCB1aW50MzJfdCBiaXRSYXRlLCB1aW50MzJfdCBmcmFtZVJhdGUpCisvLyBGb3IgcGVyZm9y
bWFuY2UgcmVhc29ucywgdGhpcyBmdW5jdGlvbiBhY2Nlc3NlcyBtX2VuY29kZXJzIHdpdGhvdXQg
bG9ja2luZy4gVGhpcyBpcyBzYWZlIGJlY2F1c2UgdGhpcyBmdW5jdGlvbiBydW5zIG9uIHRoZSBs
aWJXZWJSVENDb2RlY3NRdWV1ZQorLy8gYW5kIG1fZW5jb2RlcnMgb25seSBnZXQgbW9kaWZpZWQg
b24gdGhpcyBxdWV1ZS4KK3ZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OnNldEVuY29kZVJhdGVz
KFJUQ0VuY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQzMl90IGJpdFJhdGUsIHVpbnQz
Ml90IGZyYW1lUmF0ZSkgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJUwogewogICAg
IEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKICAgICBhdXRvIGVuY29kZXIgPSBtX2VuY29kZXJz
LmdldChpZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvZ2xpYi9ETlNDYWNoZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9nbGliL0RO
U0NhY2hlLmgKaW5kZXggMmI3OGYzOGMxZmU3YTdmOGZmMmUzOTQxNGQwNjUyZmEzOGZjODNjYi4u
NGZlMjE5OTAxZjJiM2UwZDg2MTM2Y2JkOTk0NzE3NjU0MTkyMjBlYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9nbGliL0ROU0NhY2hlLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9nbGliL0ROU0NhY2hlLmgKQEAgLTI1LDggKzI1LDggQEAKIAog
I3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL01vbm90
b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUnVu
TG9vcC5oPgpAQCAtNTYsMTMgKzU2LDEzIEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBETlNDYWNo
ZU1hcCA9IEhhc2hNYXA8Q1N0cmluZywgQ2FjaGVkUmVzcG9uc2U+OwogCi0gICAgRE5TQ2FjaGVN
YXAmIG1hcEZvclR5cGUoVHlwZSk7CisgICAgRE5TQ2FjaGVNYXAmIG1hcEZvclR5cGUoVHlwZSkg
V1RGX1JFUVVJUkVTX0xPQ0sobV9sb2NrKTsKICAgICB2b2lkIHJlbW92ZUV4cGlyZWRSZXNwb25z
ZXNGaXJlZCgpOwogICAgIHZvaWQgcmVtb3ZlRXhwaXJlZFJlc3BvbnNlc0luTWFwKEROU0NhY2hl
TWFwJik7CiAgICAgdm9pZCBwcnVuZVJlc3BvbnNlc0luTWFwKEROU0NhY2hlTWFwJik7CiAKLSAg
ICBMb2NrIG1fbG9jazsKLSAgICBETlNDYWNoZU1hcCBtX2Ruc01hcDsKKyAgICBDaGVja2VkTG9j
ayBtX2xvY2s7CisgICAgRE5TQ2FjaGVNYXAgbV9kbnNNYXAgV1RGX0dVQVJERURfQllfTE9DSyht
X2xvY2spOwogI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTigyLCA1OSwgMCkKICAgICBETlNDYWNoZU1h
cCBtX2lwdjRNYXA7CiAgICAgRE5TQ2FjaGVNYXAgbV9pcHY2TWFwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29y
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNh
bXBsZUN1cnNvci5jcHAKaW5kZXggMjU3ODY5MzY4YmU4NzM4NjYzZWRmNDNmODBjNzNkYzRjODUw
MWQ5OS4uYzVhNGNjMDljZjg3MTdhMjRlZTE4NWRjZmNhM2JmNmNiOWU0NDM3ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxl
Q3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFk
ZXIvTWVkaWFTYW1wbGVDdXJzb3IuY3BwCkBAIC0xNDUsNiArMTQ1LDcgQEAgT3B0aW9uYWw8dHlw
ZW5hbWUgT3JkZXJlZE1hcDo6aXRlcmF0b3I+IE1lZGlhU2FtcGxlQ3Vyc29yOjpsb2NhdGVJdGVy
YXRvcihPcmRlcmUKICAgICB1c2luZyBJdGVyYXRvciA9IHR5cGVuYW1lIE9yZGVyZWRNYXA6Oml0
ZXJhdG9yOwogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fbG9jYXRvciwKICAgICAgICAgWyZd
KGNvbnN0IE1lZGlhVGltZSYgcHJlc2VudGF0aW9uVGltZSkgLT4gT3B0aW9uYWw8SXRlcmF0b3I+
IHsKKyAgICAgICAgICAgIGFzc2VydElzSGVsZChtX2xvY2F0b3JMb2NrKTsKICAgICAgICAgICAg
IGF1dG8gaXRlcmF0b3IgPSB1cHBlckJvdW5kKHNhbXBsZXMsIHByZXNlbnRhdGlvblRpbWUpOwog
ICAgICAgICAgICAgaWYgKGl0ZXJhdG9yID09IHNhbXBsZXMuYmVnaW4oKSkKICAgICAgICAgICAg
ICAgICBtX2xvY2F0b3IgPSBXVEZNb3ZlKGl0ZXJhdG9yKTsKQEAgLTE1NSw2ICsxNTYsNyBAQCBP
cHRpb25hbDx0eXBlbmFtZSBPcmRlcmVkTWFwOjppdGVyYXRvcj4gTWVkaWFTYW1wbGVDdXJzb3I6
OmxvY2F0ZUl0ZXJhdG9yKE9yZGVyZQogICAgICAgICAgICAgcmV0dXJuIGxvY2F0ZUl0ZXJhdG9y
KHNhbXBsZXMsIGhhc0FsbFNhbXBsZXMpOwogICAgICAgICB9LAogICAgICAgICBbJl0oY29uc3Qg
YXV0byYgb3RoZXJJdGVyYXRvcikgeworICAgICAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jYXRv
ckxvY2spOwogICAgICAgICAgICAgbV9sb2NhdG9yID0gb3RoZXJJdGVyYXRvci0+c2Vjb25kLT5w
cmVzZW50YXRpb25UaW1lKCk7CiAgICAgICAgICAgICByZXR1cm4gbG9jYXRlSXRlcmF0b3Ioc2Ft
cGxlcywgaGFzQWxsU2FtcGxlcyk7CiAgICAgICAgIH0sCkBAIC0xNjksNiArMTcxLDcgQEAgTWVk
aWFTYW1wbGUqIE1lZGlhU2FtcGxlQ3Vyc29yOjpsb2NhdGVNZWRpYVNhbXBsZShTYW1wbGVNYXAm
IHNhbXBsZXMsIGJvb2wgaGFzQWwKICAgICBBU1NFUlQobV9sb2NhdG9yTG9jay5pc0xvY2tlZCgp
KTsKICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX2xvY2F0b3IsCiAgICAgICAgIFsmXShjb25z
dCBNZWRpYVRpbWUmKSAtPiBNZWRpYVNhbXBsZSogeworICAgICAgICAgICAgYXNzZXJ0SXNIZWxk
KG1fbG9jYXRvckxvY2spOwogICAgICAgICAgICAgYXV0byBpdGVyYXRvciA9IGxvY2F0ZUl0ZXJh
dG9yKHNhbXBsZXMucHJlc2VudGF0aW9uT3JkZXIoKSwgaGFzQWxsU2FtcGxlcyk7CiAgICAgICAg
ICAgICBpZiAoIWl0ZXJhdG9yKQogICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAt
MTg1LDYgKzE4OCw3IEBAIE1lZGlhU2FtcGxlQ3Vyc29yOjpUaW1pbmcgTWVkaWFTYW1wbGVDdXJz
b3I6OmxvY2F0ZVRpbWluZyhTYW1wbGVNYXAmIHNhbXBsZXMsIGJvCiAgICAgQVNTRVJUKG1fbG9j
YXRvckxvY2suaXNMb2NrZWQoKSk7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9sb2NhdG9y
LAogICAgICAgICBbJl0oY29uc3QgTWVkaWFUaW1lJiBwcmVzZW50YXRpb25UaW1lKSB7CisgICAg
ICAgICAgICBhc3NlcnRJc0hlbGQobV9sb2NhdG9yTG9jayk7CiAgICAgICAgICAgICBpZiAobG9j
YXRlTWVkaWFTYW1wbGUoc2FtcGxlcywgaGFzQWxsU2FtcGxlcykpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGxvY2F0ZVRpbWluZyhzYW1wbGVzLCBoYXNBbGxTYW1wbGVzKTsKICAgICAgICAgICAg
IGF1dG8mIGNsYW1wZWRQcmVzZW50YXRpb25UaW1lID0gc3RkOjptaW4ocHJlc2VudGF0aW9uVGlt
ZSwgbV90cmFja1JlYWRlci0+ZHVyYXRpb24oKSk7CkBAIC0yMDgsNiArMjEyLDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgT3JkZXJlZE1hcD4KIE9TU3RhdHVzIE1lZGlhU2FtcGxlQ3Vyc29yOjpzdGVw
SW5PcmRlcmVkTWFwKGludDY0X3Qgc3RlcHNUb1Rha2UsIGludDY0X3QmIHN0ZXBzVGFrZW4pCiB7
CiAgICAgcmV0dXJuIGdldFNhbXBsZU1hcChbJl0oU2FtcGxlTWFwJiBzYW1wbGVzLCBib29sIGhh
c0FsbFNhbXBsZXMpIC0+IE9TU3RhdHVzIHsKKyAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jYXRv
ckxvY2spOwogICAgICAgICBhdXRvJiBvcmRlcmVkTWFwID0gb3JkZXJlZFNhbXBsZXM8T3JkZXJl
ZE1hcD4oc2FtcGxlcyk7CiAgICAgICAgIGlmIChhdXRvIGl0ZXJhdG9yID0gbG9jYXRlSXRlcmF0
b3Iob3JkZXJlZE1hcCwgaGFzQWxsU2FtcGxlcykpIHsKICAgICAgICAgICAgIGF1dG8gc3RlcHNS
ZW1haW5pbmcgPSBzdGVwSXRlcmF0b3Ioc3RlcHNUb1Rha2UsICppdGVyYXRvciwgb3JkZXJlZE1h
cCk7CkBAIC0yMjIsNiArMjI3LDcgQEAgT1NTdGF0dXMgTWVkaWFTYW1wbGVDdXJzb3I6OnN0ZXBJ
bk9yZGVyZWRNYXAoaW50NjRfdCBzdGVwc1RvVGFrZSwgaW50NjRfdCYgc3RlcHMKIE9TU3RhdHVz
IE1lZGlhU2FtcGxlQ3Vyc29yOjpzdGVwSW5QcmVzZW50YXRpb25UaW1lKGNvbnN0IE1lZGlhVGlt
ZSYgZGVsdGEsIEJvb2xlYW4mIHdhc1Bpbm5lZCkKIHsKICAgICByZXR1cm4gZ2V0U2FtcGxlTWFw
KFsmXShTYW1wbGVNYXAmIHNhbXBsZXMsIGJvb2wgaGFzQWxsU2FtcGxlcykgLT4gT1NTdGF0dXMg
eworICAgICAgICBhc3NlcnRJc0hlbGQobV9sb2NhdG9yTG9jayk7CiAgICAgICAgIGF1dG8gdGlt
aW5nID0gbG9jYXRlVGltaW5nKHNhbXBsZXMsIGhhc0FsbFNhbXBsZXMpOwogICAgICAgICB3YXNQ
aW5uZWQgPSBzdGVwVGltZShkZWx0YSwgdGltaW5nLnByZXNlbnRhdGlvblRpbWUsIHNhbXBsZXMu
cHJlc2VudGF0aW9uT3JkZXIoKSwgaGFzQWxsU2FtcGxlcywgbV90cmFja1JlYWRlci0+ZHVyYXRp
b24oKSk7CiAgICAgICAgIG1fbG9jYXRvciA9IHRpbWluZy5wcmVzZW50YXRpb25UaW1lOwpAQCAt
MjQ3LDYgKzI1Myw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uPgogT1NTdGF0dXMgTWVk
aWFTYW1wbGVDdXJzb3I6OmdldE1lZGlhU2FtcGxlKEZ1bmN0aW9uJiYgZnVuY3Rpb24pIGNvbnN0
CiB7CiAgICAgcmV0dXJuIGdldFNhbXBsZU1hcChbJl0oU2FtcGxlTWFwJiBzYW1wbGVzLCBib29s
IGhhc0FsbFNhbXBsZXMpIC0+IE9TU3RhdHVzIHsKKyAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9j
YXRvckxvY2spOwogICAgICAgICBhdXRvIHNhbXBsZSA9IGxvY2F0ZU1lZGlhU2FtcGxlKHNhbXBs
ZXMsIGhhc0FsbFNhbXBsZXMpOwogICAgICAgICBpZiAoIXNhbXBsZSkKICAgICAgICAgICAgIHJl
dHVybiBrTVRQbHVnaW5TYW1wbGVDdXJzb3JFcnJvcl9Mb2NhdGlvbk5vdEF2YWlsYWJsZTsKQEAg
LTI2MCw2ICsyNjcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvbj4KIE9TU3RhdHVzIE1l
ZGlhU2FtcGxlQ3Vyc29yOjpnZXRUaW1pbmcoRnVuY3Rpb24mJiBmdW5jdGlvbikgY29uc3QKIHsK
ICAgICByZXR1cm4gZ2V0U2FtcGxlTWFwKFsmXShTYW1wbGVNYXAmIHNhbXBsZXMsIGJvb2wgaGFz
QWxsU2FtcGxlcykgeworICAgICAgICBhc3NlcnRJc0hlbGQobV9sb2NhdG9yTG9jayk7CiAgICAg
ICAgIGF1dG8gdGltaW5nID0gbG9jYXRlVGltaW5nKHNhbXBsZXMsIGhhc0FsbFNhbXBsZXMpOwog
ICAgICAgICBERUJVR19MT0coTE9HSURFTlRJRklFUiwgImRlY29kZVRpbWU6ICIsIHRpbWluZy5k
ZWNvZGVUaW1lLCAiLCBwcmVzZW50YXRpb25UaW1lOiAiLCB0aW1pbmcucHJlc2VudGF0aW9uVGlt
ZSwgIiwgZHVyYXRpb246ICIsIHRpbWluZy5kdXJhdGlvbik7CiAgICAgICAgIGZ1bmN0aW9uKHRp
bWluZyk7CkBAIC0zODIsNiArMzkwLDcgQEAgT1NTdGF0dXMgTWVkaWFTYW1wbGVDdXJzb3I6OmNv
cHlTYW1wbGVMb2NhdGlvbihNVFBsdWdpblNhbXBsZUN1cnNvclN0b3JhZ2VSYW5nZSoKIE9TU3Rh
dHVzIE1lZGlhU2FtcGxlQ3Vyc29yOjpnZXRQbGF5YWJsZUhvcml6b24oQ01UaW1lKiBwbGF5YWJs
ZUhvcml6b24pIGNvbnN0CiB7CiAgICAgcmV0dXJuIGdldFNhbXBsZU1hcChbJl0oU2FtcGxlTWFw
JiBzYW1wbGVzLCBib29sIGhhc0FsbFNhbXBsZXMpIHsKKyAgICAgICAgYXNzZXJ0SXNIZWxkKG1f
bG9jYXRvckxvY2spOwogICAgICAgICBNZWRpYVNhbXBsZSYgbGFzdFNhbXBsZSA9ICpzYW1wbGVz
LmRlY29kZU9yZGVyKCkucmJlZ2luKCktPnNlY29uZDsKICAgICAgICAgYXV0byB0aW1pbmcgPSBs
b2NhdGVUaW1pbmcoc2FtcGxlcywgaGFzQWxsU2FtcGxlcyk7CiAgICAgICAgICpwbGF5YWJsZUhv
cml6b24gPSBQQUw6OnRvQ01UaW1lKGxhc3RTYW1wbGUucHJlc2VudGF0aW9uVGltZSgpICsgbGFz
dFNhbXBsZS5kdXJhdGlvbigpIC0gdGltaW5nLnByZXNlbnRhdGlvblRpbWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxl
Q3Vyc29yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVk
aWFTYW1wbGVDdXJzb3IuaAppbmRleCA2ODdiMTMwMDQ3YTgyMzNjNDQxMzNkMzZjYjY4YjFmNTEx
ZTMzMmU2Li5iMTdjZDkwMzc3ODMzODRhNjE4YTU1YTY3OTBjOWRlZTI2NmRkZWNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1w
bGVDdXJzb3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFk
ZXIvTWVkaWFTYW1wbGVDdXJzb3IuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQ29y
ZU1lZGlhV3JhcHBlZC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2FtcGxlTWFwLmg+CisjaW5jbHVk
ZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgogI2luY2x1
ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKQEAgLTcxLDkgKzcyLDkgQEAgcHJpdmF0ZToKICAgICBNZWRp
YVNhbXBsZUN1cnNvcihBbGxvY2F0b3ImJiwgTWVkaWFUcmFja1JlYWRlciYsIExvY2F0b3IpOwog
ICAgIE1lZGlhU2FtcGxlQ3Vyc29yKEFsbG9jYXRvciYmLCBjb25zdCBNZWRpYVNhbXBsZUN1cnNv
ciYpOwogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgT3JkZXJlZE1hcD4gT3B0aW9uYWw8dHlwZW5h
bWUgT3JkZXJlZE1hcDo6aXRlcmF0b3I+IGxvY2F0ZUl0ZXJhdG9yKE9yZGVyZWRNYXAmLCBib29s
IGhhc0FsbFNhbXBsZXMpIGNvbnN0OwotICAgIFdlYkNvcmU6Ok1lZGlhU2FtcGxlKiBsb2NhdGVN
ZWRpYVNhbXBsZShXZWJDb3JlOjpTYW1wbGVNYXAmLCBib29sIGhhc0FsbFNhbXBsZXMpIGNvbnN0
OwotICAgIFRpbWluZyBsb2NhdGVUaW1pbmcoV2ViQ29yZTo6U2FtcGxlTWFwJiwgYm9vbCBoYXNB
bGxTYW1wbGVzKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcmRlcmVkTWFwPiBPcHRp
b25hbDx0eXBlbmFtZSBPcmRlcmVkTWFwOjppdGVyYXRvcj4gbG9jYXRlSXRlcmF0b3IoT3JkZXJl
ZE1hcCYsIGJvb2wgaGFzQWxsU2FtcGxlcykgY29uc3QgV1RGX1JFUVVJUkVTX0xPQ0sobV9sb2Nh
dG9yTG9jayk7CisgICAgV2ViQ29yZTo6TWVkaWFTYW1wbGUqIGxvY2F0ZU1lZGlhU2FtcGxlKFdl
YkNvcmU6OlNhbXBsZU1hcCYsIGJvb2wgaGFzQWxsU2FtcGxlcykgY29uc3QgV1RGX1JFUVVJUkVT
X0xPQ0sobV9sb2NhdG9yTG9jayk7CisgICAgVGltaW5nIGxvY2F0ZVRpbWluZyhXZWJDb3JlOjpT
YW1wbGVNYXAmLCBib29sIGhhc0FsbFNhbXBsZXMpIGNvbnN0IFdURl9SRVFVSVJFU19MT0NLKG1f
bG9jYXRvckxvY2spOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb24+IE9TU3RhdHVz
IGdldFNhbXBsZU1hcChGdW5jdGlvbiYmKSBjb25zdDsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBG
dW5jdGlvbj4gT1NTdGF0dXMgZ2V0TWVkaWFTYW1wbGUoRnVuY3Rpb24mJikgY29uc3Q7CkBAIC0x
MDUsOCArMTA2LDggQEAgcHJpdmF0ZToKICAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkg
Y29uc3Q7CiAKICAgICBSZWY8TWVkaWFUcmFja1JlYWRlcj4gbV90cmFja1JlYWRlcjsKLSAgICBt
dXRhYmxlIExvY2F0b3IgbV9sb2NhdG9yOwotICAgIG11dGFibGUgTG9jayBtX2xvY2F0b3JMb2Nr
OworICAgIG11dGFibGUgTG9jYXRvciBtX2xvY2F0b3IgV1RGX0dVQVJERURfQllfTE9DSyhtX2xv
Y2F0b3JMb2NrKTsKKyAgICBtdXRhYmxlIENoZWNrZWRMb2NrIG1fbG9jYXRvckxvY2s7CiAgICAg
UmVmPGNvbnN0IFdURjo6TG9nZ2VyPiBtX2xvZ2dlcjsKICAgICBjb25zdCB2b2lkKiBtX2xvZ0lk
ZW50aWZpZXI7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429455</attachid>
            <date>2021-05-22 21:42:02 -0700</date>
            <delta_ts>2021-05-23 13:03:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226152-20210522214201.patch</filename>
            <type>text/plain</type>
            <size>46895</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZjY3MTE3MDhhODUyMGY5MDcyMjIzNDExNThhODk2NDgzZjU5NmE2Li5jYTJkMGRkNjE1ZGE1Zjg5
MThiYjgwYmRkOTQzYjQwMDk2MGEzZjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFVzZSBDaGVja2VkTG9jayBpbiBldmVuIG1vcmUgcGxhY2VzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNTIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgQ2hlY2tlZExvY2sgaW4g
ZXZlbiBtb3JlIHBsYWNlcyB0byBiZW5lZml0IGZyb20gQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFs
eXNpcy4KKworICAgICAgICAqIEFQSS9KU1ZpcnR1YWxNYWNoaW5lLm1tOgorICAgICAgICAoV1RG
X1JFUVVJUkVTX0xPQ0spOgorICAgICAgICAqIEFQSS9nbGliL0pTQ1ZpcnR1YWxNYWNoaW5lLmNw
cDoKKyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oOgorICAgICAgICAqIGJ5
dGVjb2RlL1N1cGVyU2FtcGxlci5jcHA6CisgICAgICAgICogZGZnL0RGR0NvbW1vbkRhdGEuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OkNvbW1vbkRhdGE6OmludmFsaWRhdGUpOgorICAgICAgICAo
SlNDOjpERkc6OkNvbW1vbkRhdGE6On5Db21tb25EYXRhKToKKyAgICAgICAgKEpTQzo6REZHOjpD
b21tb25EYXRhOjppbnN0YWxsVk1UcmFwQnJlYWtwb2ludHMpOgorICAgICAgICAoSlNDOjpERkc6
OmNvZGVCbG9ja0ZvclZNVHJhcFBDKToKKyAgICAgICAgKiBkZmcvREZHUGxhbi5oOgorICAgICAg
ICAoSlNDOjpERkc6OlBsYW46OldURl9HVUFSREVEX0JZX0xPQ0spOgorICAgICAgICAqIGRpc2Fz
c2VtYmxlci9EaXNhc3NlbWJsZXIuY3BwOgorICAgICAgICAqIGhlYXAvQmxvY2tEaXJlY3Rvcnku
Y3BwOgorICAgICAgICAoSlNDOjpCbG9ja0RpcmVjdG9yeTo6cGFyYWxsZWxOb3RFbXB0eUJsb2Nr
U291cmNlKToKKyAgICAgICAgKiBoZWFwL0hlYXAuaDoKKyAgICAgICAgKiBoZWFwL0lzb1N1YnNw
YWNlUGVyVk0uaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNw
ZWN0b3JDb25uZWN0aW9uQ2xpZW50Lmg6CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNlIExvY2tIb2xkZXIgd2l0aCBMb2NrZXIg
aW4gbG9jYWwgdmFyaWFibGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDA1N2QyNzEyNzA0YzgxOTBkYTQ0NDIy
MDEzOTEyNmU1ZTIxZWE5Yy4uOTM5NzI1NTg2ZjlhMmI5NmRjNGI4YmNmMGM5NDdhNTEyYTM1ODYw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIENoZWNrZWRMb2NrIGluIGV2ZW4gbW9y
ZSBwbGFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNjE1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVzZSBDaGVja2VkTG9jayBpbiBldmVuIG1vcmUgcGxhY2VzIHRvIGJlbmVmaXQgZnJvbSBDbGFu
ZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLgorCisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvU2NhbGFibGVJbWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NhbGFi
bGVJbWFnZURlY29kZXI6OmZyYW1lSXNDb21wbGV0ZUF0SW5kZXggY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U2NhbGFibGVJbWFnZURlY29kZXI6OmZyYW1lSGFzQWxwaGFBdEluZGV4IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjYWxhYmxlSW1hZ2VEZWNvZGVyOjpmcmFtZUJ5dGVzQXRJ
bmRleCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY2FsYWJsZUltYWdlRGVjb2Rlcjo6ZnJh
bWVEdXJhdGlvbkF0SW5kZXggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NhbGFibGVJbWFn
ZURlY29kZXI6OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9p
bWFnZS1kZWNvZGVycy9TY2FsYWJsZUltYWdlRGVjb2Rlci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29h
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlckNvY29hLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJU
Qzo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6cHVsbEF1ZGlvRGF0YSk6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxp
YldlYlJUQy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3Ry
ZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwv
U1FMaXRlRGF0YWJhc2UuaDoKKyAgICAgICAgKiB3b3JrbGV0cy9QYWludFdvcmtsZXRHbG9iYWxT
Y29wZS5oOgorCiAyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRvcHQgQ2hlY2tlZExvY2sgaW4gbW9yZSBwbGFjZXMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDY1
M2I3OTI5ZmQ1NjQ5ZjNjYzQ2NjQ5NDQzMjJhODAyOTM0M2Q3MS4uYzg1NzMyZmI4OTdiNDZlNzEw
YWI3YTY2YWI4NTJkNzMxNTFhMWJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMS0w
NS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBDaGVj
a2VkTG9jayBpbiBldmVuIG1vcmUgcGxhY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgQ2hlY2tlZExvY2sgaW4gZXZlbiBtb3JlIHBsYWNlcyB0
byBiZW5lZml0IGZyb20gQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcy4KKworICAgICAgICAq
IEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lmg6CisgICAgICAgICogR1BV
UHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW06CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvZ2xpYi9ETlNDYWNoZS5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3Jt
YXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVNh
bXBsZUN1cnNvcjo6bG9jYXRlSXRlcmF0b3IgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRp
YVNhbXBsZUN1cnNvcjo6bG9jYXRlTWVkaWFTYW1wbGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpNZWRpYVNhbXBsZUN1cnNvcjo6bG9jYXRlVGltaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6TWVkaWFTYW1wbGVDdXJzb3I6OnN0ZXBJbk9yZGVyZWRNYXApOgorICAgICAgICAoV2ViS2l0
OjpNZWRpYVNhbXBsZUN1cnNvcjo6c3RlcEluUHJlc2VudGF0aW9uVGltZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhU2FtcGxlQ3Vyc29yOjpnZXRNZWRpYVNhbXBsZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhU2FtcGxlQ3Vyc29yOjpnZXRUaW1pbmcgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVNhbXBsZUN1cnNvcjo6Z2V0UGxheWFibGVIb3Jpem9uIGNvbnN0KToKKyAg
ICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmg6
CisKIDIwMjEtMDUtMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgW2lPU10gSW1wbGVtZW50IHBhZ2UgY2xpZW50IGhvb2sgZm9yIHJlcXVlc3Rpbmcg
aW1hZ2UgZXh0cmFjdGlvbiByZXN1bHRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTVmlydHVhbE1hY2hpbmUubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
VmlydHVhbE1hY2hpbmUubW0KaW5kZXggYzIwOTdjMmE4OTYwNTE2ODRkOWNlZDlkY2NlNjg5YjQx
Y2ExNjZhNS4uZjYxMzQ5OGFjODJjN2NmOTMxNmQzODYyYmI3NmFlMGI0OWMxMzE4MyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lLm1tCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbQpAQCAtMzgsMTIg
KzM4LDEyIEBACiAjaW1wb3J0ICJTaWdpbGxDcmFzaEFuYWx5emVyLmgiCiAjaW1wb3J0ICJTbG90
VmlzaXRvcklubGluZXMuaCIKICNpbXBvcnQgPG11dGV4PgotI2ltcG9ydCA8d3RmL0xvY2suaD4K
KyNpbXBvcnQgPHd0Zi9DaGVja2VkTG9jay5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgog
CiBzdGF0aWMgTlNNYXBUYWJsZSAqZ2xvYmFsV3JhcHBlckNhY2hlID0gMDsKIAotc3RhdGljIExv
Y2sgd3JhcHBlckNhY2hlTXV0ZXg7CitzdGF0aWMgQ2hlY2tlZExvY2sgd3JhcHBlckNhY2hlTXV0
ZXg7CiAKIHN0YXRpYyB2b2lkIGluaXRXcmFwcGVyQ2FjaGUoKQogewpAQCAtNTMsNyArNTMsNyBA
QCBzdGF0aWMgdm9pZCBpbml0V3JhcHBlckNhY2hlKCkKICAgICBnbG9iYWxXcmFwcGVyQ2FjaGUg
PSBbW05TTWFwVGFibGUgYWxsb2NdIGluaXRXaXRoS2V5T3B0aW9uczprZXlPcHRpb25zIHZhbHVl
T3B0aW9uczp2YWx1ZU9wdGlvbnMgY2FwYWNpdHk6MF07CiB9CiAKLXN0YXRpYyBOU01hcFRhYmxl
ICp3cmFwcGVyQ2FjaGUoKQorc3RhdGljIE5TTWFwVGFibGUgKndyYXBwZXJDYWNoZSgpIFdURl9S
RVFVSVJFU19MT0NLKHdyYXBwZXJDYWNoZU11dGV4KQogewogICAgIGlmICghZ2xvYmFsV3JhcHBl
ckNhY2hlKQogICAgICAgICBpbml0V3JhcHBlckNhY2hlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDVmlydHVhbE1hY2hpbmUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ1ZpcnR1YWxNYWNoaW5lLmNwcAppbmRleCA0MzFhNzEw
ZGUzN2NjMWYwM2U5NzY5OWYxYjJiMWQ1MDIyMzRjYmUxLi41MTA1ZDI3NzBmZGRhZDdkYjNkMDEx
OTIzOGIzMjIyZTA3NmFkZDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L2dsaWIvSlNDVmlydHVhbE1hY2hpbmUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvZ2xpYi9KU0NWaXJ0dWFsTWFjaGluZS5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRl
ICJKU0NDb250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIkpTQ1ZpcnR1YWxNYWNoaW5lUHJpdmF0
ZS5oIgogI2luY2x1ZGUgIkpTQ29udGV4dFJlZi5oIgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvV1RGR1R5cGUuaD4KQEAgLTQ4LDkgKzQ5LDkgQEAg
c3RydWN0IF9KU0NWaXJ0dWFsTWFjaGluZVByaXZhdGUgewogCiBXRUJLSVRfREVGSU5FX1RZUEUo
SlNDVmlydHVhbE1hY2hpbmUsIGpzY192aXJ0dWFsX21hY2hpbmUsIEdfVFlQRV9PQkpFQ1QpCiAK
LXN0YXRpYyBMb2NrIHdyYXBwZXJDYWNoZU11dGV4Oworc3RhdGljIENoZWNrZWRMb2NrIHdyYXBw
ZXJDYWNoZU11dGV4OwogCi1zdGF0aWMgSGFzaE1hcDxKU0NvbnRleHRHcm91cFJlZiwgSlNDVmly
dHVhbE1hY2hpbmUqPiYgd3JhcHBlck1hcCgpCitzdGF0aWMgSGFzaE1hcDxKU0NvbnRleHRHcm91
cFJlZiwgSlNDVmlydHVhbE1hY2hpbmUqPiYgd3JhcHBlck1hcCgpIFdURl9SRVFVSVJFU19MT0NL
KHdyYXBwZXJDYWNoZU11dGV4KQogewogICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8SGFz
aE1hcDxKU0NvbnRleHRHcm91cFJlZiwgSlNDVmlydHVhbE1hY2hpbmUqPj4gc2hhcmVkOwogICAg
IHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlS2V5OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAppbmRleCBmNTc3ZDIxMjNmM2I2MGIx
ODJjNDlmYTc4NWIwZmRiYTUxZWI2OTc5Li5lYjM2NTZmY2JkNTUwNTZhYmI2ZmM1NTk4OWQxZmQ2
OTFhZmYwZGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3Ry
dWN0dXJlU3R1YkluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3Ry
dWN0dXJlU3R1YkluZm8uaApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlN0cnVjdHVyZVN0
dWJDbGVhcmluZ1dhdGNocG9pbnQuaCIKICNpbmNsdWRlICJTdHViSW5mb1N1bW1hcnkuaCIKICNp
bmNsdWRlIDx3dGYvQm94Lmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAKIG5hbWVz
cGFjZSBKU0MgewogCkBAIC0zMzksNyArMzQwLDcgQEAgcHJpdmF0ZToKICAgICAvLyBOb3RlIHRo
YXQgaXQncyBhbHdheXMgc2FmZSB0byBjbGVhciB0aGlzLiBJZiB3ZSBjbGVhciBpdCBwcmVtYXR1
cmVseSwgdGhlbiBpZiB3ZSBzZWUgdGhlIHNhbWUKICAgICAvLyBzdHJ1Y3R1cmUgYWdhaW4gZHVy
aW5nIHRoaXMgYnVmZmVyaW5nIGNvdW50ZG93biwgd2Ugd2lsbCBjcmVhdGUgYW4gQWNjZXNzQ2Fz
ZSBvYmplY3QgZm9yIGl0LgogICAgIC8vIFRoYXQncyBub3Qgc28gYmFkIC0gd2UnbGwgZ2V0IHJp
ZCBvZiB0aGUgcmVkdW5kYW50IG9uZXMgb25jZSB3ZSByZWdlbmVyYXRlLgotICAgIEhhc2hTZXQ8
QnVmZmVyZWRTdHJ1Y3R1cmUsIEJ1ZmZlcmVkU3RydWN0dXJlOjpIYXNoLCBCdWZmZXJlZFN0cnVj
dHVyZTo6S2V5VHJhaXRzPiBtX2J1ZmZlcmVkU3RydWN0dXJlczsKKyAgICBIYXNoU2V0PEJ1ZmZl
cmVkU3RydWN0dXJlLCBCdWZmZXJlZFN0cnVjdHVyZTo6SGFzaCwgQnVmZmVyZWRTdHJ1Y3R1cmU6
OktleVRyYWl0cz4gbV9idWZmZXJlZFN0cnVjdHVyZXMgV1RGX0dVQVJERURfQllfTE9DSyhtX2J1
ZmZlcmVkU3RydWN0dXJlc0xvY2spOwogcHVibGljOgogICAgIENvZGVMb2NhdGlvbkxhYmVsPEpJ
VFN0dWJSb3V0aW5lUHRyVGFnPiBzdGFydDsgLy8gVGhpcyBpcyBlaXRoZXIgdGhlIHN0YXJ0IG9m
IHRoZSBpbmxpbmUgSUMgZm9yICpieUlkIGNhY2hlcy4gb3IgdGhlIGxvY2F0aW9uIG9mIHBhdGNo
YWJsZSBqdW1wIGZvciAnaW5zdGFuY2VvZicgY2FjaGVzLgogICAgIENvZGVMb2NhdGlvbkxhYmVs
PEpTSW50ZXJuYWxQdHJUYWc+IGRvbmVMb2NhdGlvbjsKQEAgLTM5MSw3ICszOTIsNyBAQCBwdWJs
aWM6CiAgICAgYm9vbCBwcm9wZXJ0eUlzSW50MzIgOiAxOwogICAgIGJvb2wgcHJvcGVydHlJc1N5
bWJvbCA6IDE7CiBwcml2YXRlOgotICAgIExvY2sgbV9idWZmZXJlZFN0cnVjdHVyZXNMb2NrOwor
ICAgIENoZWNrZWRMb2NrIG1fYnVmZmVyZWRTdHJ1Y3R1cmVzTG9jazsKIH07CiAKIGlubGluZSBD
b2RlT3JpZ2luIGdldFN0cnVjdHVyZVN0dWJJbmZvQ29kZU9yaWdpbihTdHJ1Y3R1cmVTdHViSW5m
byYgc3RydWN0dXJlU3R1YkluZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TdXBlclNhbXBsZXIuY3BwCmluZGV4IGE0MjY0MGYyODYzMjY5NzI3OWRjNDlhM2NlNTFlZmMz
OWVjMWEzOTAuLmY2ZWRiODQ2ODRkNWY1MjhmZDY4YWZhYTAxNTRmY2Q4NTI3YmVmMjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdXBlclNhbXBsZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdXBlclNhbXBsZXIuY3BwCkBAIC0y
Nyw4ICsyNyw4IEBACiAjaW5jbHVkZSAiU3VwZXJTYW1wbGVyLmgiCiAKICNpbmNsdWRlICJPcHRp
b25zLmgiCisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0RhdGFM
b2cuaD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4K
IAogbmFtZXNwYWNlIEpTQyB7CkBAIC0zNiw5ICszNiw5IEBAIG5hbWVzcGFjZSBKU0Mgewogdm9s
YXRpbGUgdWludDMyX3QgZ19zdXBlclNhbXBsZXJDb3VudDsKIHZvbGF0aWxlIGJvb2wgZ19zdXBl
clNhbXBsZXJFbmFibGVkOwogCi1zdGF0aWMgTG9jayBsb2NrOwotc3RhdGljIGRvdWJsZSBpbjsK
LXN0YXRpYyBkb3VibGUgb3V0Oworc3RhdGljIENoZWNrZWRMb2NrIGxvY2s7CitzdGF0aWMgZG91
YmxlIGluIFdURl9HVUFSREVEX0JZX0xPQ0sobG9jayk7CitzdGF0aWMgZG91YmxlIG91dCBXVEZf
R1VBUkRFRF9CWV9MT0NLKGxvY2spOwogCiB2b2lkIGluaXRpYWxpemVTdXBlclNhbXBsZXIoKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb25EYXRhLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uRGF0YS5jcHAKaW5kZXggMjdl
ZGYxYzgxYTUzODM4ZjFiOGI2Y2U5MDAzZWM0NmQ3MzQ5YjU5MC4uOTcxZjhiMDVhODdlNDU2NjY1
NmE5ZjEzYTk5ZDg4ZDZmMGEyNzA5NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDb21tb25EYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NvbW1vbkRhdGEuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiSW5saW5lQ2FsbEZy
YW1lLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJUcmFja2Vk
UmVmZXJlbmNlcy5oIgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CkBA
IC00NCw4ICs0NSw4IEBAIHZvaWQgQ29tbW9uRGF0YTo6c2hyaW5rVG9GaXQoKQogICAgIG1fanVt
cFJlcGxhY2VtZW50cy5zaHJpbmtUb0ZpdCgpOwogfQogCi1zdGF0aWMgTG9jayBwY0NvZGVCbG9j
a01hcExvY2s7Ci1pbmxpbmUgSGFzaE1hcDx2b2lkKiwgQ29kZUJsb2NrKj4mIHBjQ29kZUJsb2Nr
TWFwKEFic3RyYWN0TG9ja2VyJikKK3N0YXRpYyBDaGVja2VkTG9jayBwY0NvZGVCbG9ja01hcExv
Y2s7CitpbmxpbmUgSGFzaE1hcDx2b2lkKiwgQ29kZUJsb2NrKj4mIHBjQ29kZUJsb2NrTWFwKCkg
V1RGX1JFUVVJUkVTX0xPQ0socGNDb2RlQmxvY2tNYXBMb2NrKQogewogICAgIHN0YXRpYyBMYXp5
TmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDx2b2lkKiwgQ29kZUJsb2NrKj4+IHBjQ29kZUJsb2NrTWFw
OwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlS2V5OwpAQCAtNjIsNyArNjMsNyBAQCBi
b29sIENvbW1vbkRhdGE6OmludmFsaWRhdGUoKQogCiAgICAgaWYgKFVOTElLRUxZKGhhc1ZNVHJh
cHNCcmVha3BvaW50c0luc3RhbGxlZCkpIHsKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHBjQ29k
ZUJsb2NrTWFwTG9jayB9OwotICAgICAgICBhdXRvJiBtYXAgPSBwY0NvZGVCbG9ja01hcChsb2Nr
ZXIpOworICAgICAgICBhdXRvJiBtYXAgPSBwY0NvZGVCbG9ja01hcCgpOwogICAgICAgICBmb3Ig
KGF1dG8mIGp1bXBSZXBsYWNlbWVudCA6IG1fanVtcFJlcGxhY2VtZW50cykKICAgICAgICAgICAg
IG1hcC5yZW1vdmUoanVtcFJlcGxhY2VtZW50LmRhdGFMb2NhdGlvbigpKTsKICAgICAgICAgaGFz
Vk1UcmFwc0JyZWFrcG9pbnRzSW5zdGFsbGVkID0gZmFsc2U7CkBAIC03OCw3ICs3OSw3IEBAIENv
bW1vbkRhdGE6On5Db21tb25EYXRhKCkKIHsKICAgICBpZiAoVU5MSUtFTFkoaGFzVk1UcmFwc0Jy
ZWFrcG9pbnRzSW5zdGFsbGVkKSkgewogICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcGNDb2RlQmxv
Y2tNYXBMb2NrIH07Ci0gICAgICAgIGF1dG8mIG1hcCA9IHBjQ29kZUJsb2NrTWFwKGxvY2tlcik7
CisgICAgICAgIGF1dG8mIG1hcCA9IHBjQ29kZUJsb2NrTWFwKCk7CiAgICAgICAgIGZvciAoYXV0
byYganVtcFJlcGxhY2VtZW50IDogbV9qdW1wUmVwbGFjZW1lbnRzKQogICAgICAgICAgICAgbWFw
LnJlbW92ZShqdW1wUmVwbGFjZW1lbnQuZGF0YUxvY2F0aW9uKCkpOwogICAgIH0KQEAgLTkxLDcg
KzkyLDcgQEAgdm9pZCBDb21tb25EYXRhOjppbnN0YWxsVk1UcmFwQnJlYWtwb2ludHMoQ29kZUJs
b2NrKiBvd25lcikKICAgICAgICAgcmV0dXJuOwogICAgIGhhc1ZNVHJhcHNCcmVha3BvaW50c0lu
c3RhbGxlZCA9IHRydWU7CiAKLSAgICBhdXRvJiBtYXAgPSBwY0NvZGVCbG9ja01hcChsb2NrZXIp
OworICAgIGF1dG8mIG1hcCA9IHBjQ29kZUJsb2NrTWFwKCk7CiAjaWYgIWRlZmluZWQoTkRFQlVH
KQogICAgIC8vIFdlIG5lZWQgdG8gYmUgYWJsZSB0byBoYW5kbGUgbW9yZSB0aGFuIG9uZSBpbnZh
bGlkYXRpb24gcG9pbnQgYXQgdGhlIHNhbWUgcGMKICAgICAvLyBidXQgd2Ugd2FudCB0byBtYWtl
IHN1cmUgd2UgZG9uJ3QgZm9yZ2V0IHRvIHJlbW92ZSBhIHBjIGZyb20gdGhlIG1hcC4KQEAgLTEx
Myw3ICsxMTQsNyBAQCBDb2RlQmxvY2sqIGNvZGVCbG9ja0ZvclZNVHJhcFBDKHZvaWQqIHBjKQog
ewogICAgIEFTU0VSVChpc0pJVFBDKHBjKSk7CiAgICAgTG9ja2VyIGxvY2tlciB7IHBjQ29kZUJs
b2NrTWFwTG9jayB9OwotICAgIGF1dG8mIG1hcCA9IHBjQ29kZUJsb2NrTWFwKGxvY2tlcik7Cisg
ICAgYXV0byYgbWFwID0gcGNDb2RlQmxvY2tNYXAoKTsKICAgICBhdXRvIHJlc3VsdCA9IG1hcC5m
aW5kKHBjKTsKICAgICBpZiAocmVzdWx0ID09IG1hcC5lbmQoKSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5oCmluZGV4IDE3MmE3MmQ5Y2I3YjUz
NzEyMzAwMjI2NGQzNTIwNjVjNDc1MzhiZjcuLmMxZWI3MTJhMjg2MTYxNzAyY2JiYzhkYjgwMTMz
MjgyOTUwMTcyOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxh
bi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5oCkBAIC0zOCw2ICsz
OCw3IEBACiAjaW5jbHVkZSAiT3BlcmFuZHMuaCIKICNpbmNsdWRlICJQcm9maWxlckNvbXBpbGF0
aW9uLmgiCiAjaW5jbHVkZSAiUmVjb3JkZWRTdGF0dXNlcy5oIgorI2luY2x1ZGUgPHd0Zi9DaGVj
a2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZFNhZmVSZWZDb3VudGVkLmg+CiAKQEAgLTEzNyw4ICsxMzgsOCBAQCBwcml2YXRlOgogICAgIENv
ZGVCbG9jayogbV9wcm9maWxlZERGR0NvZGVCbG9jazsKIAogICAgIE9wZXJhbmRzPE9wdGlvbmFs
PEpTVmFsdWU+PiBtX211c3RIYW5kbGVWYWx1ZXM7Ci0gICAgYm9vbCBtX211c3RIYW5kbGVWYWx1
ZXNNYXlJbmNsdWRlR2FyYmFnZSB7IHRydWUgfTsKLSAgICBMb2NrIG1fbXVzdEhhbmRsZVZhbHVl
Q2xlYW5pbmdMb2NrOworICAgIGJvb2wgbV9tdXN0SGFuZGxlVmFsdWVzTWF5SW5jbHVkZUdhcmJh
Z2UgV1RGX0dVQVJERURfQllfTE9DSyhtX211c3RIYW5kbGVWYWx1ZUNsZWFuaW5nTG9jaykgeyB0
cnVlIH07CisgICAgQ2hlY2tlZExvY2sgbV9tdXN0SGFuZGxlVmFsdWVDbGVhbmluZ0xvY2s7CiAK
ICAgICBib29sIG1fd2lsbFRyeVRvVGllclVwIHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9EaXNhc3NlbWJsZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9EaXNhc3NlbWJsZXIuY3BwCmluZGV4IDU1YzA1
YzgxMjI5ZjM1OTM2ZmYxMzQ3Y2RkZjQ1NGYzYWZiNmFjOTAuLjdiNmM4OTM1NzkyYTMwYjA1Mjhm
NTNiODcxYzdlMzE2NzhlNjE3ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
aXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5jcHAKQEAgLTI3LDEwICsyNywxMCBAQAogI2luY2x1
ZGUgIkRpc2Fzc2VtYmxlci5oIgogCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgi
Ci0jaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkQ29uZGl0
aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0RhdGFM
b2cuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2lu
Y2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4K
IApAQCAtMTA5LDkgKzEwOSw5IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0g
ICAgTG9jayBtX2xvY2s7Ci0gICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwotICAgIERlcXVlPHN0
ZDo6dW5pcXVlX3B0cjxEaXNhc3NlbWJseVRhc2s+PiBtX3F1ZXVlOworICAgIENoZWNrZWRMb2Nr
IG1fbG9jazsKKyAgICBDaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9uOworICAgIERlcXVlPHN0
ZDo6dW5pcXVlX3B0cjxEaXNhc3NlbWJseVRhc2s+PiBtX3F1ZXVlIFdURl9HVUFSREVEX0JZX0xP
Q0sobV9sb2NrKTsKICAgICBib29sIG1fd29ya2luZyB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5jcHAKaW5kZXggNmMyNDJiODYz
YmNlY2Q3M2U4MzBhNjNhMzVmZTIwMDBkMGEyMzc5OS4uYWRiNzU3ZTNkNjA1ODQ2NTU5ZmExZjI5
NmMzNzlmMDliMmEyODkyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
QmxvY2tEaXJlY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2Nr
RGlyZWN0b3J5LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlN1YnNwYWNlSW5saW5l
cy5oIgogI2luY2x1ZGUgIlN1cGVyU2FtcGxlci5oIgogCisjaW5jbHVkZSA8d3RmL0NoZWNrZWRM
b2NrLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL1Np
bXBsZVN0YXRzLmg+CiAKQEAgLTM0Myw5ICszNDQsOSBAQCBSZWZQdHI8U2hhcmVkVGFzazxNYXJr
ZWRCbG9jazo6SGFuZGxlKigpPj4gQmxvY2tEaXJlY3Rvcnk6OnBhcmFsbGVsTm90RW1wdHlCbG9j
awogICAgICAgICB9CiAgICAgICAgIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEJsb2NrRGlyZWN0
b3J5JiBtX2RpcmVjdG9yeTsKLSAgICAgICAgc2l6ZV90IG1faW5kZXggeyAwIH07Ci0gICAgICAg
IExvY2sgbV9sb2NrOworICAgICAgICBCbG9ja0RpcmVjdG9yeSYgbV9kaXJlY3RvcnkgV1RGX0dV
QVJERURfQllfTE9DSyhtX2xvY2spOworICAgICAgICBzaXplX3QgbV9pbmRleCBXVEZfR1VBUkRF
RF9CWV9MT0NLKG1fbG9jaykgeyAwIH07CisgICAgICAgIENoZWNrZWRMb2NrIG1fbG9jazsKICAg
ICAgICAgYm9vbCBtX2RvbmUgeyBmYWxzZSB9OwogICAgIH07CiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwLmgKaW5kZXggOTNhYTI4YmRiNzBmNjg4YmM5NTRmZTNmY2E3MzdjNDI3MjQzMzYz
Zi4uN2E1M2UwNTE1ZDA2OTY1M2QwNGZiOWJhYzM1NThkN2U4MWQ5NWYyYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0hlYXAuaApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIlN5bmNocm9ub3Vz
bmVzcy5oIgogI2luY2x1ZGUgIldlYWtIYW5kbGVPd25lci5oIgogI2luY2x1ZGUgPHd0Zi9BdXRv
bWF0aWNUaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3
dGYvQ29uY3VycmVudFB0ckhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KQEAgLTY0OCw3ICs2NDksNyBAQCBwcml2YXRlOgog
ICAgIC8vIG9uZSBHQyB0byB0aGUgbmV4dC4gR0MgbWFya2luZyB0aHJlYWRzIGNsYWltIHRoZXNl
IGF0IHRoZSBzdGFydCBvZiBtYXJraW5nLCBhbmQgcmV0dXJuCiAgICAgLy8gdGhlbSBhdCB0aGUg
ZW5kLgogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8U2xvdFZpc2l0b3I+PiBtX3BhcmFsbGVs
U2xvdFZpc2l0b3JzOwotICAgIFZlY3RvcjxTbG90VmlzaXRvcio+IG1fYXZhaWxhYmxlUGFyYWxs
ZWxTbG90VmlzaXRvcnM7CisgICAgVmVjdG9yPFNsb3RWaXNpdG9yKj4gbV9hdmFpbGFibGVQYXJh
bGxlbFNsb3RWaXNpdG9ycyBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fcGFyYWxsZWxTbG90VmlzaXRv
ckxvY2spOwogICAgIAogICAgIEhhbmRsZVNldCBtX2hhbmRsZVNldDsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8Q29kZUJsb2NrU2V0PiBtX2NvZGVCbG9ja3M7CkBAIC02NTYsNyArNjU3LDcgQEAgcHJp
dmF0ZToKICAgICBDRmluYWxpemVyT3duZXIgbV9jRmluYWxpemVyT3duZXI7CiAgICAgTGFtYmRh
RmluYWxpemVyT3duZXIgbV9sYW1iZGFGaW5hbGl6ZXJPd25lcjsKICAgICAKLSAgICBMb2NrIG1f
cGFyYWxsZWxTbG90VmlzaXRvckxvY2s7CisgICAgQ2hlY2tlZExvY2sgbV9wYXJhbGxlbFNsb3RW
aXNpdG9yTG9jazsKICAgICBib29sIG1faXNTYWZlVG9Db2xsZWN0IHsgZmFsc2UgfTsKICAgICBi
b29sIG1faXNTaHV0dGluZ0Rvd24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9tdXRhdG9yU2hvdWxk
QmVGZW5jZWQgeyBPcHRpb25zOjpmb3JjZUZlbmNlZEJhcnJpZXIoKSB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2VQZXJWTS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2VQZXJWTS5oCmluZGV4IDRhOTlhODg1Zjk2MWI5
N2ViYmE3OGMyYTViNzVjZDc2NDRhNTZjZWYuLmE5NmMyOTc5NTZlNzI5ZTRhZjRiMWViNDEzM2Fj
ODk2NjUxNzc0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1
YnNwYWNlUGVyVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFj
ZVBlclZNLmgKQEAgLTI2LDkgKzI2LDkgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiSXNv
U3Vic3BhY2UuaCIKKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYv
RnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9Mb2Nr
Lmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC02Miw4ICs2Miw4IEBAIHByaXZhdGU6CiAgICAg
Y2xhc3MgQXV0b3JlbW92aW5nSXNvU3Vic3BhY2U7CiAgICAgZnJpZW5kIGNsYXNzIEF1dG9yZW1v
dmluZ0lzb1N1YnNwYWNlOwogCi0gICAgTG9jayBtX2xvY2s7Ci0gICAgSGFzaE1hcDxWTSosIElz
b1N1YnNwYWNlKj4gbV9zdWJzcGFjZVBlclZNOworICAgIENoZWNrZWRMb2NrIG1fbG9jazsKKyAg
ICBIYXNoTWFwPFZNKiwgSXNvU3Vic3BhY2UqPiBtX3N1YnNwYWNlUGVyVk0gV1RGX0dVQVJERURf
QllfTE9DSyhtX2xvY2spOwogICAgIEZ1bmN0aW9uPFN1YnNwYWNlUGFyYW1ldGVycyhWTSYpPiBt
X3N1YnNwYWNlUGFyYW1ldGVyczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JDb25uZWN0aW9uQ2xp
ZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVt
b3RlSW5zcGVjdG9yQ29ubmVjdGlvbkNsaWVudC5oCmluZGV4IDFjNzU0Y2E2ODBmNTg1ZDU3ZjQz
Nzk5MmRiODFlMWJmN2I5YzI5MDcuLmU4NDZmZjNmZDk5MjNjOWVhNjllZWNkODkzZWM4MzMyY2Uy
NWQ2NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3Rl
L3NvY2tldC9SZW1vdGVJbnNwZWN0b3JDb25uZWN0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvckNvbm5l
Y3Rpb25DbGllbnQuaApAQCAtMzAsOSArMzAsOSBAQAogI2luY2x1ZGUgIlJlbW90ZUNvbnRyb2xs
YWJsZVRhcmdldC5oIgogI2luY2x1ZGUgIlJlbW90ZUluc3BlY3Rvck1lc3NhZ2VQYXJzZXIuaCIK
ICNpbmNsdWRlICJSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oIgorI2luY2x1ZGUgPHd0
Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L0pTT05WYWx1ZXMuaD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKQEAgLTY1LDggKzY1LDggQEAg
cHJvdGVjdGVkOgogCiAgICAgc3RhdGljIE9wdGlvbmFsPEV2ZW50PiBleHRyYWN0RXZlbnQoQ29u
bmVjdGlvbklELCBWZWN0b3I8dWludDhfdD4mJik7CiAKLSAgICBIYXNoTWFwPENvbm5lY3Rpb25J
RCwgTWVzc2FnZVBhcnNlcj4gbV9wYXJzZXJzOwotICAgIExvY2sgbV9wYXJzZXJzTG9jazsKKyAg
ICBIYXNoTWFwPENvbm5lY3Rpb25JRCwgTWVzc2FnZVBhcnNlcj4gbV9wYXJzZXJzIFdURl9HVUFS
REVEX0JZX0xPQ0sobV9wYXJzZXJzTG9jayk7CisgICAgQ2hlY2tlZExvY2sgbV9wYXJzZXJzTG9j
azsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFnZURlY29kZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFnZURlY29k
ZXIuY3BwCmluZGV4IGYyY2ViMDAwYWQ0MDdjNGViNjIzNTdjY2EwYzAyMmE1YjcxYTU5MDUuLmRk
YjExNDM5NDc0NDBkNzE3ZTgzM2NiZDNjN2Q2ZGMyMWEyMDNiZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL1NjYWxhYmxlSW1hZ2VEZWNvZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJsZUlt
YWdlRGVjb2Rlci5jcHAKQEAgLTE3MCw3ICsxNzAsNyBAQCBSZWZQdHI8U2NhbGFibGVJbWFnZURl
Y29kZXI+IFNjYWxhYmxlSW1hZ2VEZWNvZGVyOjpjcmVhdGUoU2hhcmVkQnVmZmVyJiBkYXRhLCBB
bAogCiBib29sIFNjYWxhYmxlSW1hZ2VEZWNvZGVyOjpmcmFtZUlzQ29tcGxldGVBdEluZGV4KHNp
emVfdCBpbmRleCkgY29uc3QKIHsKLSAgICBMb2NrZXIgbG9ja2VyIHsgbV9tdXRleCB9OworICAg
IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICBpZiAoaW5kZXggPj0gbV9mcmFtZUJ1ZmZl
ckNhY2hlLnNpemUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xODAsNyArMTgwLDcg
QEAgYm9vbCBTY2FsYWJsZUltYWdlRGVjb2Rlcjo6ZnJhbWVJc0NvbXBsZXRlQXRJbmRleChzaXpl
X3QgaW5kZXgpIGNvbnN0CiAKIGJvb2wgU2NhbGFibGVJbWFnZURlY29kZXI6OmZyYW1lSGFzQWxw
aGFBdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKIHsKLSAgICBMb2NrZXIgbG9ja2VyIHsgbV9t
dXRleCB9OworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICBpZiAobV9mcmFtZUJ1
ZmZlckNhY2hlLnNpemUoKSA8PSBpbmRleCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKQEAgLTE5
Miw3ICsxOTIsNyBAQCBib29sIFNjYWxhYmxlSW1hZ2VEZWNvZGVyOjpmcmFtZUhhc0FscGhhQXRJ
bmRleChzaXplX3QgaW5kZXgpIGNvbnN0CiAKIHVuc2lnbmVkIFNjYWxhYmxlSW1hZ2VEZWNvZGVy
OjpmcmFtZUJ5dGVzQXRJbmRleChzaXplX3QgaW5kZXgsIFN1YnNhbXBsaW5nTGV2ZWwpIGNvbnN0
CiB7Ci0gICAgTG9ja2VyIGxvY2tlciB7IG1fbXV0ZXggfTsKKyAgICBMb2NrZXIgbG9ja2VyIHsg
bV9sb2NrIH07CiAgICAgaWYgKG1fZnJhbWVCdWZmZXJDYWNoZS5zaXplKCkgPD0gaW5kZXgpCiAg
ICAgICAgIHJldHVybiAwOwogICAgIC8vIEZJWE1FOiBVc2UgdGhlIGRpbWVuc2lvbiBvZiB0aGUg
cmVxdWVzdGVkIGZyYW1lLgpAQCAtMjAxLDcgKzIwMSw3IEBAIHVuc2lnbmVkIFNjYWxhYmxlSW1h
Z2VEZWNvZGVyOjpmcmFtZUJ5dGVzQXRJbmRleChzaXplX3QgaW5kZXgsIFN1YnNhbXBsaW5nTGV2
ZWwpCiAKIFNlY29uZHMgU2NhbGFibGVJbWFnZURlY29kZXI6OmZyYW1lRHVyYXRpb25BdEluZGV4
KHNpemVfdCBpbmRleCkgY29uc3QKIHsKLSAgICBMb2NrZXIgbG9ja2VyIHsgbV9tdXRleCB9Owor
ICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICBpZiAoaW5kZXggPj0gbV9mcmFtZUJ1
ZmZlckNhY2hlLnNpemUoKSkKICAgICAgICAgcmV0dXJuIDBfczsKIApAQCAtMjIxLDcgKzIyMSw3
IEBAIFNlY29uZHMgU2NhbGFibGVJbWFnZURlY29kZXI6OmZyYW1lRHVyYXRpb25BdEluZGV4KHNp
emVfdCBpbmRleCkgY29uc3QKIAogUGxhdGZvcm1JbWFnZVB0ciBTY2FsYWJsZUltYWdlRGVjb2Rl
cjo6Y3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgoc2l6ZV90IGluZGV4LCBTdWJzYW1wbGluZ0xldmVs
LCBjb25zdCBEZWNvZGluZ09wdGlvbnMmKQogewotICAgIExvY2tlciBsb2NrZXIgeyBtX211dGV4
IH07CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIC8vIFplcm8taGVpZ2h0IGlt
YWdlcyBjYW4gY2F1c2UgcHJvYmxlbXMgZm9yIHNvbWUgcG9ydHMuIElmIHdlIGhhdmUgYW4gZW1w
dHkgaW1hZ2UgZGltZW5zaW9uLCBqdXN0IGJhaWwuCiAgICAgaWYgKHNpemUoKS5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFnZURlY29kZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL1NjYWxhYmxlSW1hZ2VEZWNvZGVyLmgKaW5kZXgg
ZmNmMGE2MTE1ZGQ4NmMxNDc1OWIyYjIxYTdjNzFjNzhlOWY0Y2Y0YS4uNTAyOGNiYWJkODZlMDg1
YjRjNWNlYWUxMmQyZjg4MzAwYmU4NDAxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFnZURlY29kZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJsZUltYWdlRGVjb2Rlci5oCkBA
IC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiU2NhbGFibGVJbWFnZURlY29kZXJGcmFtZS5oIgog
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0j
aW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNldERhdGEoU2hhcmVkQnVmZmVyJiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCkgb3ZlcnJp
ZGUKICAgICB7Ci0gICAgICAgIExvY2tlciBsb2NrZXIgeyBtX211dGV4IH07CisgICAgICAgIExv
Y2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICAgICAgaWYgKG1fZW5jb2RlZERhdGFTdGF0dXMg
PT0gRW5jb2RlZERhdGFTdGF0dXM6OkVycm9yKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0x
OTYsOCArMTk2LDggQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgUmVmUHRyPFNoYXJlZEJ1
ZmZlcjo6RGF0YVNlZ21lbnQ+IG1fZGF0YTsKLSAgICBWZWN0b3I8U2NhbGFibGVJbWFnZURlY29k
ZXJGcmFtZSwgMT4gbV9mcmFtZUJ1ZmZlckNhY2hlOwotICAgIG11dGFibGUgTG9jayBtX211dGV4
OworICAgIFZlY3RvcjxTY2FsYWJsZUltYWdlRGVjb2RlckZyYW1lLCAxPiBtX2ZyYW1lQnVmZmVy
Q2FjaGUgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spOworICAgIG11dGFibGUgQ2hlY2tlZExv
Y2sgbV9sb2NrOwogICAgIGJvb2wgbV9wcmVtdWx0aXBseUFscGhhOwogICAgIGJvb2wgbV9pZ25v
cmVHYW1tYUFuZENvbG9yUHJvZmlsZTsKICAgICBJbWFnZU9yaWVudGF0aW9uIG1fb3JpZW50YXRp
b247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXJQcml2YXRlTW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suaAppbmRleCA0NDU5ZjJlMmEyNDA5OTU3
MTNhNDEzYzE4NWViZmRkNWMxM2MxZTkzLi45MDIzMGQ4NTYzYmJiNTkxZmNmZGYwOTI3ZGZjOGUx
ODFmMTFlMmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmgKQEAgLTI3LDcgKzI3
LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRl
clByaXZhdGUuaCIKLSNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2Vk
TG9jay5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNTAsMTAgKzUwLDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXN1bWVS
ZWNvcmRpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAgICBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlKCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIGdlbmVyYXRlTW9ja0Nv
dW50ZXJTdHJpbmcoKTsKKyAgICB2b2lkIGdlbmVyYXRlTW9ja0NvdW50ZXJTdHJpbmcoKSBXVEZf
UkVRVUlSRVNfTE9DSyhtX2J1ZmZlckxvY2spOwogCi0gICAgbXV0YWJsZSBMb2NrIG1fYnVmZmVy
TG9jazsKLSAgICBTdHJpbmdCdWlsZGVyIG1fYnVmZmVyOworICAgIG11dGFibGUgQ2hlY2tlZExv
Y2sgbV9idWZmZXJMb2NrOworICAgIFN0cmluZ0J1aWxkZXIgbV9idWZmZXIgV1RGX0dVQVJERURf
QllfTE9DSyhtX2J1ZmZlckxvY2spOwogICAgIHVuc2lnbmVkIG1fY291bnRlciB7IDAgfTsKICAg
ICBTdHJpbmcgbV9hdWRpb1RyYWNrSUQ7CiAgICAgU3RyaW5nIG1fdmlkZW9UcmFja0lEOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAppbmRl
eCA2NjBiOGVhZjIyZTcxODUxMDZkODdkMzJiNjYwMGYxODFiM2IyZmY5Li42M2QxMjZmOTliMDEy
YWU2NTQ4YWIzNWFmNTljYTUxZWU5MTg5YmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29j
b2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaApAQCAtMjksOSArMjksOSBAQAogI2luY2x1
ZGUgIkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKIAogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9u
SGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+
CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVm
Q291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CkBAIC0xMTgsOCArMTE4LDggQEAg
cHJpdmF0ZToKIAogICAgIFJldGFpblB0cjxBVkFzc2V0V3JpdGVyPiBtX3dyaXRlcjsKIAotICAg
IExvY2sgbV9kYXRhTG9jazsKLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX2RhdGE7CisgICAg
Q2hlY2tlZExvY2sgbV9kYXRhTG9jazsKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX2RhdGEg
V1RGX0dVQVJERURfQllfTE9DSyhtX2RhdGFMb2NrKTsKICAgICBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYsIGRvdWJsZSk+IG1fZmV0Y2hEYXRhQ29tcGxldGlv
bkhhbmRsZXI7CiAKICAgICBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gbV9hdWRp
b0Zvcm1hdERlc2NyaXB0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlckNvY29hLm1tCmluZGV4IDkyM2EzNjBkNTNlNGY1NTQ0ZTViMGJmYjhkZmZi
ZDU1OTVkNWEwMGMuLjY0ZDc4Yjc5ZDViODE1YzhkODM1YzUzYTYyMTIwNTZjNDg0ZjgxZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2Eu
bW0KQEAgLTM3MCw3ICszNzAsOCBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpm
bHVzaENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKEZ1bmN0aW9uPHZvaWQoKT4mJgogICAgICAgICBb
bV92aWRlb0Fzc2V0V3JpdGVySW5wdXQgcmVxdWVzdE1lZGlhRGF0YVdoZW5SZWFkeU9uUXVldWU6
ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSB1c2luZ0Jsb2NrOmJsb2NrLmdldCgpXTsKIH0KIAot
dm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y2xlYXIoKQorLy8gRklYTUU6IFRoaXMg
bW9kaWZpZXMgbV9kYXRhIHdpdGhvdXQgZ3JhYmJpbmcgbV9kYXRhTG9jay4KK3ZvaWQgTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXI6OmNsZWFyKCkgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9B
TkFMWVNJUwogewogICAgIG1fcGVuZGluZ0F1ZGlvU2FtcGxlUXVldWUuY2xlYXIoKTsKICAgICBt
X3BlbmRpbmdWaWRlb1NhbXBsZVF1ZXVlLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXgg
MWZmNDIwMzY5OWI5ODhiNWE5Yjk1ZmNlNmFhZTZiMGE4NzU5ODNjOS4uZWYwN2VhYTg5YTQzYzAx
MTc5NTEyYTMwM2UyMmQ2ZmEyYTkwNTBhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtNDIsOCAr
NDIsOCBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlICJSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUZh
Y3RvcnkuaCIKKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvQ29t
cGxldGlvbkhhbmRsZXIuaD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9M
b2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0yNzYsMTEgKzI3NiwxMSBAQCBwcml2YXRlOgogICAg
IFN0cmluZyBtX25hbWU7CiAgICAgV2Vha0hhc2hTZXQ8T2JzZXJ2ZXI+IG1fb2JzZXJ2ZXJzOwog
Ci0gICAgbXV0YWJsZSBMb2NrIG1fYXVkaW9TYW1wbGVPYnNlcnZlcnNMb2NrOwotICAgIEhhc2hT
ZXQ8QXVkaW9TYW1wbGVPYnNlcnZlcio+IG1fYXVkaW9TYW1wbGVPYnNlcnZlcnM7CisgICAgbXV0
YWJsZSBDaGVja2VkTG9jayBtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzTG9jazsKKyAgICBIYXNoU2V0
PEF1ZGlvU2FtcGxlT2JzZXJ2ZXIqPiBtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzIFdURl9HVUFSREVE
X0JZX0xPQ0sobV9hdWRpb1NhbXBsZU9ic2VydmVyc0xvY2spOwogCi0gICAgbXV0YWJsZSBMb2Nr
IG1fdmlkZW9TYW1wbGVPYnNlcnZlcnNMb2NrOwotICAgIEhhc2hTZXQ8VmlkZW9TYW1wbGVPYnNl
cnZlcio+IG1fdmlkZW9TYW1wbGVPYnNlcnZlcnM7CisgICAgbXV0YWJsZSBDaGVja2VkTG9jayBt
X3ZpZGVvU2FtcGxlT2JzZXJ2ZXJzTG9jazsKKyAgICBIYXNoU2V0PFZpZGVvU2FtcGxlT2JzZXJ2
ZXIqPiBtX3ZpZGVvU2FtcGxlT2JzZXJ2ZXJzIFdURl9HVUFSREVEX0JZX0xPQ0sobV92aWRlb1Nh
bXBsZU9ic2VydmVyc0xvY2spOwogCiAgICAgLy8gU2V0IG9uIHRoZSBtYWluIHRocmVhZCBmcm9t
IGNvbnN0cmFpbnRzLgogICAgIEludFNpemUgbV9zaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2UuaAppbmRleCBkYzNjYWIyYThkYmFiMzI5ZmIyMWM3ZWQ3NWE3ZmMyODc2MzFjZThk
Li41MzA4NWNmNWI0OWQ4N2JmOGJlNDFlYWIxZGQwMDM1MzA1MDYzYzZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9T
b3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2UuaApAQCAtNDEsNiArNDEsNyBAQCBBTExPV19VTlVTRURfUEFS
QU1FVEVSU19CRUdJTgogCiBBTExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQKIAorI2luY2x1ZGUg
PHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIApAQCAtMTI3LDggKzEyOCw4IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW5hYmxlZCB7
IHRydWUgfTsKIAotICAgIG11dGFibGUgTG9jayBtX3NpbmtzTG9jazsKLSAgICBIYXNoU2V0PHdl
YnJ0Yzo6QXVkaW9UcmFja1NpbmtJbnRlcmZhY2UqPiBtX3NpbmtzOworICAgIG11dGFibGUgQ2hl
Y2tlZExvY2sgbV9zaW5rc0xvY2s7CisgICAgSGFzaFNldDx3ZWJydGM6OkF1ZGlvVHJhY2tTaW5r
SW50ZXJmYWNlKj4gbV9zaW5rcyBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fc2lua3NMb2NrKTsKIAog
I2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHNpemVfdCBtX2NodW5rc1NlbnQgeyAwIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU91dGdvaW5nVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oCmluZGV4IDhhOTFkNjRhMDlmOTNhMzU1
NTQ5Y2U5ODAyMzlkMmMzZGQ0YzNmZDIuLjViZDFkZDg1MDNlZjU4NWIyZmEyYWQwNTNkNGJlYmFi
ZTBkYzFlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oCkBAIC0zMyw2ICsz
Myw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDTWFjcm9zLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlIDxUaW1lci5oPgorI2luY2x1ZGUgPHd0Zi9DaGVj
a2VkTG9jay5oPgogCiBBTExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgogCkBAIC0xNDEsOCAr
MTQyLDggQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX2JsYWNrRnJhbWVUaW1lcjsKICAgICBydGM6
OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb0ZyYW1lQnVmZmVyPiBtX2JsYWNrRnJhbWU7CiAK
LSAgICBtdXRhYmxlIExvY2sgbV9zaW5rc0xvY2s7Ci0gICAgSGFzaFNldDxydGM6OlZpZGVvU2lu
a0ludGVyZmFjZTx3ZWJydGM6OlZpZGVvRnJhbWU+Kj4gbV9zaW5rczsKKyAgICBtdXRhYmxlIENo
ZWNrZWRMb2NrIG1fc2lua3NMb2NrOworICAgIEhhc2hTZXQ8cnRjOjpWaWRlb1NpbmtJbnRlcmZh
Y2U8d2VicnRjOjpWaWRlb0ZyYW1lPio+IG1fc2lua3MgV1RGX0dVQVJERURfQllfTE9DSyhtX3Np
bmtzTG9jayk7CiAgICAgYm9vbCBtX2FyZVNpbmtzQXNraW5nVG9BcHBseVJvdGF0aW9uIHsgZmFs
c2UgfTsKIAogICAgIGJvb2wgbV9lbmFibGVkIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdB
dWRpb1NvdXJjZUxpYldlYlJUQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDLmNwcApp
bmRleCAzYjkwOTU4NThmNWZlYTRmOGVkNmQ0ZDJmYTIwYTJlYjViMWE4MDE3Li44YzljYzNmYTI1
MTEzNjQyMjFhYThlZDk1N2VjMjNmMThmZTUxZTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291
cmNlTGliV2ViUlRDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDLmNwcApAQCAt
ODEsNyArODEsNyBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZQogICAgIH0KIAogICAgIHsKLSAg
ICAgICAgTG9ja2VyIGxvY2tlciB7IG1fYWRhcHRlck11dGV4IH07CisgICAgICAgIExvY2tlciBs
b2NrZXIgeyBtX2FkYXB0ZXJMb2NrIH07CiAgICAgICAgIGNvbnN0IGF1dG8mIHNhbXBsZSA9IGRh
dGEuZ2V0U2FtcGxlKCk7CiAgICAgICAgIGF1dG8qIGJ1ZmZlciA9IGdzdF9zYW1wbGVfZ2V0X2J1
ZmZlcihzYW1wbGUuZ2V0KCkpOwogICAgICAgICBnc3RfYWRhcHRlcl9wdXNoKG1fYWRhcHRlci5n
ZXQoKSwgZ3N0X2J1ZmZlcl9yZWYoYnVmZmVyKSk7CkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBS
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEM6OnB1bGxBdWRpb0RhdGEoKQogICAg
IHNpemVfdCBvdXRDaHVua1NhbXBsZUNvdW50ID0gTGliV2ViUlRDQXVkaW9Gb3JtYXQ6OmNodW5r
U2FtcGxlQ291bnQ7CiAgICAgc2l6ZV90IG91dEJ1ZmZlclNpemUgPSBvdXRDaHVua1NhbXBsZUNv
dW50ICogbV9vdXRwdXRTdHJlYW1EZXNjcmlwdGlvbi5icGY7CiAKLSAgICBMb2NrZXIgbG9ja2Vy
IHsgbV9hZGFwdGVyTXV0ZXggfTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9hZGFwdGVyTG9jayB9
OwogICAgIHNpemVfdCBpbkNodW5rU2FtcGxlQ291bnQgPSBnc3RfYXVkaW9fY29udmVydGVyX2dl
dF9pbl9mcmFtZXMobV9zYW1wbGVDb252ZXJ0ZXIuZ2V0KCksIG91dENodW5rU2FtcGxlQ291bnQp
OwogICAgIHNpemVfdCBpbkJ1ZmZlclNpemUgPSBpbkNodW5rU2FtcGxlQ291bnQgKiBtX2lucHV0
U3RyZWFtRGVzY3JpcHRpb24uYnBmOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlTGli
V2ViUlRDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDLmgKaW5kZXggZGU2ZWZlOWYxYTUy
NTcxNWJmN2JkOTBkOGUxMTgxNzFkMWViZTJkZC4uZTA1M2IwMTBkMjdmYjBjNGY2YTkyYTA2YjQx
OTNiMjE2MDE2ZWUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEMuaApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1
ZGUgIlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oIgogCiAjaW5jbHVkZSA8Z3N0L2F1ZGlv
L2F1ZGlvLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNTEsOCArNTIsOCBAQCBwcml2YXRlOgogICAgIEdzdEF1ZGlvSW5mbyBtX2lu
cHV0U3RyZWFtRGVzY3JpcHRpb247CiAgICAgR3N0QXVkaW9JbmZvIG1fb3V0cHV0U3RyZWFtRGVz
Y3JpcHRpb247CiAKLSAgICBMb2NrIG1fYWRhcHRlck11dGV4OwotICAgIEdSZWZQdHI8R3N0QWRh
cHRlcj4gbV9hZGFwdGVyOworICAgIENoZWNrZWRMb2NrIG1fYWRhcHRlckxvY2s7CisgICAgR1Jl
ZlB0cjxHc3RBZGFwdGVyPiBtX2FkYXB0ZXIgV1RGX0dVQVJERURfQllfTE9DSyhtX2FkYXB0ZXJM
b2NrKTsKICAgICBWZWN0b3I8dWludDhfdD4gbV9hdWRpb0J1ZmZlcjsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFt
ZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcAppbmRleCAy
YmI3ZWYxNWJkNTc0Y2ZhY2Q3NjI1OGViZjMxMGM2NDBjNmU2MDMyLi4yNjg2NzBkYTI4NDA5YzNk
YjhlODZlODU5Y2YxZTY4N2YzNTU0ZmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dT
dHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwCkBAIC0zNDUsNyArMzQ1LDYgQEAgcHJpdmF0
ZToKICAgICBHUmVmUHRyPEdzdENhcHM+IG1fcmVzdHJpY3Rpb25DYXBzOwogICAgIHdlYnJ0Yzo6
RW5jb2RlZEltYWdlIG1fZW5jb2RlZEZyYW1lOwogCi0gICAgTG9jayBtX2J1ZmZlck1hcExvY2s7
CiAgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBtX3Npbms7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVy
ZVNvdXJjZS5oCmluZGV4IGYwY2I3NTBjODgzNTI5YWZkMTAwMDliZjdlZTA5NDE3ZGZlNmJiYzku
LjBlNDFjYzQxM2Y4NDNmYTAzOThhMWExNzI0NDBkMWUyNjc3YjI3ZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVv
Q2FwdHVyZVNvdXJjZS5oCkBAIC0xMzIsNyArMTMyLDYgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5Q
dHI8QVZDYXB0dXJlU2Vzc2lvbj4gbV9zZXNzaW9uOwogICAgIFJldGFpblB0cjxBVkNhcHR1cmVE
ZXZpY2U+IG1fZGV2aWNlOwogCi0gICAgTG9jayBtX3ByZXNldE11dGV4OwogICAgIFJlZlB0cjxB
VlZpZGVvUHJlc2V0PiBtX2N1cnJlbnRQcmVzZXQ7CiAgICAgSW50U2l6ZSBtX2N1cnJlbnRTaXpl
OwogICAgIGRvdWJsZSBtX2N1cnJlbnRGcmFtZVJhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCmluZGV4IGFiMTk0ZGRmMmMxNTFhZGZiMjk0MWRmMzM3
YjhmNThhMDQxMTkyZmEuLjRhMjQ0YzY1ZmE4N2YxYzNiYTk1OGEyYzAyMGQzNDU2OTQ1MmI2ODQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oCkBAIC0y
OCw4ICsyOCw4IEBACiAKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHNxbGl0ZTMu
aD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQu
aD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNp
bmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTE2
Miw3ICsxNjIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHN0YXRpYyBpbnQgYXV0aG9yaXpl
ckZ1bmN0aW9uKHZvaWQqLCBpbnQsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiwgY29uc3QgY2hh
ciosIGNvbnN0IGNoYXIqKTsKIAotICAgIHZvaWQgZW5hYmxlQXV0aG9yaXplcihib29sIGVuYWJs
ZSk7CisgICAgdm9pZCBlbmFibGVBdXRob3JpemVyKGJvb2wgZW5hYmxlKSBXVEZfUkVRVUlSRVNf
TE9DSyhtX2F1dGhvcml6ZXJMb2NrKTsKICAgICB2b2lkIHVzZVdBTEpvdXJuYWxNb2RlKCk7CiAK
ICAgICBpbnQgcGFnZVNpemUoKTsKQEAgLTE4MCw4ICsxODAsOCBAQCBwcml2YXRlOgogCiAgICAg
Ym9vbCBtX3VzZVdBTCB7IGZhbHNlIH07CiAKLSAgICBMb2NrIG1fYXV0aG9yaXplckxvY2s7Ci0g
ICAgUmVmUHRyPERhdGFiYXNlQXV0aG9yaXplcj4gbV9hdXRob3JpemVyOworICAgIENoZWNrZWRM
b2NrIG1fYXV0aG9yaXplckxvY2s7CisgICAgUmVmUHRyPERhdGFiYXNlQXV0aG9yaXplcj4gbV9h
dXRob3JpemVyIFdURl9HVUFSREVEX0JZX0xPQ0sobV9hdXRob3JpemVyTG9jayk7CiAKICAgICBM
b2NrIG1fbG9ja2luZ011dGV4OwogICAgIFJlZlB0cjxUaHJlYWQ+IG1fb3BlbmluZ1RocmVhZCB7
IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1BhaW50V29y
a2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9QYWludFdvcmtsZXRH
bG9iYWxTY29wZS5oCmluZGV4IDlhMmM0OTdjOTI5NDgwMmUxZTY3YjI0ZDA3YWZiMjgzMWUyMjhi
MzUuLjM0Y2RmMWI1ZWJlOTRiYWM2ZjNhYzg0ZmE1MjMwOWRkMmIwMGJjNDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgIldvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTT2JqZWN0Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25n
Lmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogY2xh
c3MgSlNPYmplY3Q7CkBAIC02MCw4ICs2MSwxMiBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+IGlucHV0QXJndW1lbnRzOwogICAgIH07CiAKLSAgICBIYXNoTWFwPFN0cmlu
Zywgc3RkOjp1bmlxdWVfcHRyPFBhaW50RGVmaW5pdGlvbj4+JiBwYWludERlZmluaXRpb25NYXAo
KSB7IEFTU0VSVChtX3BhaW50RGVmaW5pdGlvbkxvY2suaXNMb2NrZWQoKSk7IHJldHVybiBtX3Bh
aW50RGVmaW5pdGlvbk1hcDsgfQotICAgIExvY2smIHBhaW50RGVmaW5pdGlvbkxvY2soKSB7IHJl
dHVybiBtX3BhaW50RGVmaW5pdGlvbkxvY2s7IH0KKyAgICBIYXNoTWFwPFN0cmluZywgc3RkOjp1
bmlxdWVfcHRyPFBhaW50RGVmaW5pdGlvbj4+JiBwYWludERlZmluaXRpb25NYXAoKSBXVEZfUkVR
VUlSRVNfTE9DSyhtX3BhaW50RGVmaW5pdGlvbkxvY2spCisgICAgeworICAgICAgICBBU1NFUlQo
bV9wYWludERlZmluaXRpb25Mb2NrLmlzTG9ja2VkKCkpOworICAgICAgICByZXR1cm4gbV9wYWlu
dERlZmluaXRpb25NYXA7CisgICAgfQorICAgIENoZWNrZWRMb2NrJiBwYWludERlZmluaXRpb25M
b2NrKCkgV1RGX1JFVFVSTlNfTE9DSyhtX3BhaW50RGVmaW5pdGlvbkxvY2spIHsgcmV0dXJuIG1f
cGFpbnREZWZpbml0aW9uTG9jazsgfQogCiAgICAgdm9pZCBwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24o
KSBmaW5hbAogICAgIHsKQEAgLTkxLDggKzk2LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaXNQ
YWludFdvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAot
ICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UGFpbnREZWZpbml0aW9uPj4gbV9w
YWludERlZmluaXRpb25NYXA7Ci0gICAgTG9jayBtX3BhaW50RGVmaW5pdGlvbkxvY2s7CisgICAg
SGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxQYWludERlZmluaXRpb24+PiBtX3BhaW50
RGVmaW5pdGlvbk1hcCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fcGFpbnREZWZpbml0aW9uTG9jayk7
CisgICAgQ2hlY2tlZExvY2sgbV9wYWludERlZmluaXRpb25Mb2NrOwogICAgIGJvb2wgbV9oYXNQ
cmVwYXJlZEZvckRlc3RydWN0aW9uIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaAppbmRleCAx
OTUyMGQ5MzhiZjhmNmUwZDBjYTM2ODViY2NmMzExNDQ2OGUyYzg0Li40MWE0Yzg3ZGU2NzAwZjE2
N2QzZDU5YjAwOWY5ZTQ5ZTU1NDYwODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW5jbHVkZSAiUlRDRGVjb2RlcklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJSVENFbmNvZGVy
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5o
PgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogCiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNz
IENvbm5lY3Rpb247CkBAIC04Nyw5ICs4OCw5IEBAIHByaXZhdGU6CiAKICAgICBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiAKLSAgICBtdXRh
YmxlIExvY2sgbV9sb2NrOwotICAgIEhhc2hNYXA8UlRDRGVjb2RlcklkZW50aWZpZXIsIHdlYnJ0
Yzo6TG9jYWxEZWNvZGVyPiBtX2RlY29kZXJzOwotICAgIEhhc2hNYXA8UlRDRW5jb2RlcklkZW50
aWZpZXIsIHdlYnJ0Yzo6TG9jYWxFbmNvZGVyPiBtX2VuY29kZXJzOworICAgIG11dGFibGUgQ2hl
Y2tlZExvY2sgbV9sb2NrOworICAgIEhhc2hNYXA8UlRDRGVjb2RlcklkZW50aWZpZXIsIHdlYnJ0
Yzo6TG9jYWxEZWNvZGVyPiBtX2RlY29kZXJzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKTsg
Ly8gT25seSBtb2RpZmllZCBvbiB0aGUgbGliV2ViUlRDQ29kZWNzUXVldWUgYnV0IG1heSBnZXQg
YWNjZXNzZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCisgICAgSGFzaE1hcDxSVENFbmNvZGVySWRl
bnRpZmllciwgd2VicnRjOjpMb2NhbEVuY29kZXI+IG1fZW5jb2RlcnMgV1RGX0dVQVJERURfQllf
TE9DSyhtX2xvY2spOyAvLyBPbmx5IG1vZGlmaWVkIG9uIHRoZSBsaWJXZWJSVENDb2RlY3NRdWV1
ZSBidXQgbWF5IGdldCBhY2Nlc3NlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4KIAogICAgIFJlZjxX
b3JrUXVldWU+IG1fcXVldWU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQppbmRl
eCBkNDdmODRkMThiZDg2M2M4NDkyNDlmNTYxODE4ZjhkYmJiZWZhODRlLi5iMjMyNTgyNzQ0YzE1
ODYwZTkyNTNlYjNkYmU5MjQ0ZTkxOWU4NjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KQEAgLTExNSw3ICsx
MTUsOSBAQCB2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjpyZWxlYXNlRGVjb2RlcihSVENEZWNv
ZGVySWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgICAgICB3ZWJydGM6OnJlbGVhc2VMb2NhbERl
Y29kZXIoZGVjb2Rlcik7CiB9CiAKLXZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OmRlY29kZUZy
YW1lKFJUQ0RlY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQzMl90IHRpbWVTdGFtcCwg
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhKQorLy8gRm9yIHBlcmZvcm1hbmNlIHJlYXNv
bnMsIHRoaXMgZnVuY3Rpb24gYWNjZXNzZXMgbV9kZWNvZGVycyB3aXRob3V0IGxvY2tpbmcuIFRo
aXMgaXMgc2FmZSBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gcnVucyBvbiB0aGUgbGliV2ViUlRDQ29k
ZWNzUXVldWUKKy8vIGFuZCBtX2RlY29kZXJzIG9ubHkgZ2V0IG1vZGlmaWVkIG9uIHRoaXMgcXVl
dWUuCit2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjpkZWNvZGVGcmFtZShSVENEZWNvZGVySWRl
bnRpZmllciBpZGVudGlmaWVyLCB1aW50MzJfdCB0aW1lU3RhbXAsIGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSYgZGF0YSkgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJUwogewogICAg
IEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKICAgICBBU1NFUlQobV9kZWNvZGVycy5jb250YWlu
cyhpZGVudGlmaWVyKSk7CkBAIC0xMjcsNyArMTI5LDkgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3NQ
cm94eTo6ZGVjb2RlRnJhbWUoUlRDRGVjb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDMy
X3QKICAgICAgICAgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5k
KE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6OkZhaWxlZERlY29kaW5nIHsgaWRlbnRpZmllciB9
LCAwKTsKIH0KIAotdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6c2V0RnJhbWVTaXplKFJUQ0Rl
Y29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQxNl90IHdpZHRoLCB1aW50MTZfdCBoZWln
aHQpCisvLyBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgdGhpcyBmdW5jdGlvbiBhY2Nlc3NlcyBt
X2RlY29kZXJzIHdpdGhvdXQgbG9ja2luZy4gVGhpcyBpcyBzYWZlIGJlY2F1c2UgdGhpcyBmdW5j
dGlvbiBydW5zIG9uIHRoZSBsaWJXZWJSVENDb2RlY3NRdWV1ZQorLy8gYW5kIG1fZGVjb2RlcnMg
b25seSBnZXQgbW9kaWZpZWQgb24gdGhpcyBxdWV1ZS4KK3ZvaWQgTGliV2ViUlRDQ29kZWNzUHJv
eHk6OnNldEZyYW1lU2l6ZShSVENEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50MTZf
dCB3aWR0aCwgdWludDE2X3QgaGVpZ2h0KSBXVEZfSUdOT1JFU19USFJFQURfU0FGRVRZX0FOQUxZ
U0lTCiB7CiAgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwogICAgIEFTU0VSVChtX2RlY29k
ZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKQEAgLTE2NCw3ICsxNjgsOSBAQCB2b2lkIExpYldl
YlJUQ0NvZGVjc1Byb3h5OjpyZWxlYXNlRW5jb2RlcihSVENFbmNvZGVySWRlbnRpZmllciBpZGVu
dGlmaWVyKQogICAgICAgICB3ZWJydGM6OnJlbGVhc2VMb2NhbEVuY29kZXIoZW5jb2Rlcik7CiB9
CiAKLXZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OmluaXRpYWxpemVFbmNvZGVyKFJUQ0VuY29k
ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQxNl90IHdpZHRoLCB1aW50MTZfdCBoZWlnaHQs
IHVuc2lnbmVkIHN0YXJ0Qml0cmF0ZSwgdW5zaWduZWQgbWF4Qml0cmF0ZSwgdW5zaWduZWQgbWlu
Qml0cmF0ZSwgdWludDMyX3QgbWF4RnJhbWVyYXRlKQorLy8gRm9yIHBlcmZvcm1hbmNlIHJlYXNv
bnMsIHRoaXMgZnVuY3Rpb24gYWNjZXNzZXMgbV9lbmNvZGVycyB3aXRob3V0IGxvY2tpbmcuIFRo
aXMgaXMgc2FmZSBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gcnVucyBvbiB0aGUgbGliV2ViUlRDQ29k
ZWNzUXVldWUKKy8vIGFuZCBtX2VuY29kZXJzIG9ubHkgZ2V0IG1vZGlmaWVkIG9uIHRoaXMgcXVl
dWUuCit2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5Ojppbml0aWFsaXplRW5jb2RlcihSVENFbmNv
ZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50MTZfdCB3aWR0aCwgdWludDE2X3QgaGVpZ2h0
LCB1bnNpZ25lZCBzdGFydEJpdHJhdGUsIHVuc2lnbmVkIG1heEJpdHJhdGUsIHVuc2lnbmVkIG1p
bkJpdHJhdGUsIHVpbnQzMl90IG1heEZyYW1lcmF0ZSkgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVU
WV9BTkFMWVNJUwogewogICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKICAgICBBU1NFUlQo
bV9lbmNvZGVycy5jb250YWlucyhpZGVudGlmaWVyKSk7CkBAIC0xOTEsNyArMTk3LDkgQEAgc3Rh
dGljIGlubGluZSB3ZWJydGM6OlZpZGVvUm90YXRpb24gdG9XZWJSVENWaWRlb1JvdGF0aW9uKFdl
YkNvcmU6Ok1lZGlhU2FtcGxlOjoKICAgICByZXR1cm4gd2VicnRjOjprVmlkZW9Sb3RhdGlvbl8w
OwogfQogCi12b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjplbmNvZGVGcmFtZShSVENFbmNvZGVy
SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmIHNhbXBs
ZSwgdWludDMyX3QgdGltZVN0YW1wLCBib29sIHNob3VsZEVuY29kZUFzS2V5RnJhbWUpCisvLyBG
b3IgcGVyZm9ybWFuY2UgcmVhc29ucywgdGhpcyBmdW5jdGlvbiBhY2Nlc3NlcyBtX2VuY29kZXJz
IHdpdGhvdXQgbG9ja2luZy4gVGhpcyBpcyBzYWZlIGJlY2F1c2UgdGhpcyBmdW5jdGlvbiBydW5z
IG9uIHRoZSBsaWJXZWJSVENDb2RlY3NRdWV1ZQorLy8gYW5kIG1fZW5jb2RlcnMgb25seSBnZXQg
bW9kaWZpZWQgb24gdGhpcyBxdWV1ZS4KK3ZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OmVuY29k
ZUZyYW1lKFJUQ0VuY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVZp
ZGVvU2FtcGxlJiYgc2FtcGxlLCB1aW50MzJfdCB0aW1lU3RhbXAsIGJvb2wgc2hvdWxkRW5jb2Rl
QXNLZXlGcmFtZSkgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJUwogewogICAgIEFT
U0VSVCghaXNNYWluUnVuTG9vcCgpKTsKICAgICBBU1NFUlQobV9lbmNvZGVycy5jb250YWlucyhp
ZGVudGlmaWVyKSk7CkBAIC0yMDgsNyArMjE2LDkgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94
eTo6ZW5jb2RlRnJhbWUoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZToK
ICNlbmRpZgogfQogCi12b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjpzZXRFbmNvZGVSYXRlcyhS
VENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50MzJfdCBiaXRSYXRlLCB1aW50MzJf
dCBmcmFtZVJhdGUpCisvLyBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgdGhpcyBmdW5jdGlvbiBh
Y2Nlc3NlcyBtX2VuY29kZXJzIHdpdGhvdXQgbG9ja2luZy4gVGhpcyBpcyBzYWZlIGJlY2F1c2Ug
dGhpcyBmdW5jdGlvbiBydW5zIG9uIHRoZSBsaWJXZWJSVENDb2RlY3NRdWV1ZQorLy8gYW5kIG1f
ZW5jb2RlcnMgb25seSBnZXQgbW9kaWZpZWQgb24gdGhpcyBxdWV1ZS4KK3ZvaWQgTGliV2ViUlRD
Q29kZWNzUHJveHk6OnNldEVuY29kZVJhdGVzKFJUQ0VuY29kZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIHVpbnQzMl90IGJpdFJhdGUsIHVpbnQzMl90IGZyYW1lUmF0ZSkgV1RGX0lHTk9SRVNfVEhS
RUFEX1NBRkVUWV9BTkFMWVNJUwogewogICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKICAg
ICBhdXRvIGVuY29kZXIgPSBtX2VuY29kZXJzLmdldChpZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvZ2xpYi9ETlNDYWNoZS5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9nbGliL0ROU0NhY2hlLmgKaW5kZXggMmI3OGYzOGMxZmU3YTdm
OGZmMmUzOTQxNGQwNjUyZmEzOGZjODNjYi4uNGZlMjE5OTAxZjJiM2UwZDg2MTM2Y2JkOTk0NzE3
NjU0MTkyMjBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9nbGli
L0ROU0NhY2hlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9nbGliL0ROU0Nh
Y2hlLmgKQEAgLTI1LDggKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDx3dGYv
Q2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvT3B0
aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgpAQCAtNTYsMTMgKzU2LDEzIEBAIHBy
aXZhdGU6CiAKICAgICB1c2luZyBETlNDYWNoZU1hcCA9IEhhc2hNYXA8Q1N0cmluZywgQ2FjaGVk
UmVzcG9uc2U+OwogCi0gICAgRE5TQ2FjaGVNYXAmIG1hcEZvclR5cGUoVHlwZSk7CisgICAgRE5T
Q2FjaGVNYXAmIG1hcEZvclR5cGUoVHlwZSkgV1RGX1JFUVVJUkVTX0xPQ0sobV9sb2NrKTsKICAg
ICB2b2lkIHJlbW92ZUV4cGlyZWRSZXNwb25zZXNGaXJlZCgpOwogICAgIHZvaWQgcmVtb3ZlRXhw
aXJlZFJlc3BvbnNlc0luTWFwKEROU0NhY2hlTWFwJik7CiAgICAgdm9pZCBwcnVuZVJlc3BvbnNl
c0luTWFwKEROU0NhY2hlTWFwJik7CiAKLSAgICBMb2NrIG1fbG9jazsKLSAgICBETlNDYWNoZU1h
cCBtX2Ruc01hcDsKKyAgICBDaGVja2VkTG9jayBtX2xvY2s7CisgICAgRE5TQ2FjaGVNYXAgbV9k
bnNNYXAgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spOwogI2lmIEdMSUJfQ0hFQ0tfVkVSU0lP
TigyLCA1OSwgMCkKICAgICBETlNDYWNoZU1hcCBtX2lwdjRNYXA7CiAgICAgRE5TQ2FjaGVNYXAg
bV9pcHY2TWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9y
bWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHAKaW5kZXggMjU3ODY5MzY4
YmU4NzM4NjYzZWRmNDNmODBjNzNkYzRjODUwMWQ5OS4uYzVhNGNjMDljZjg3MTdhMjRlZTE4NWRj
ZmNhM2JmNmNiOWU0NDM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01l
ZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuY3BwCkBAIC0x
NDUsNiArMTQ1LDcgQEAgT3B0aW9uYWw8dHlwZW5hbWUgT3JkZXJlZE1hcDo6aXRlcmF0b3I+IE1l
ZGlhU2FtcGxlQ3Vyc29yOjpsb2NhdGVJdGVyYXRvcihPcmRlcmUKICAgICB1c2luZyBJdGVyYXRv
ciA9IHR5cGVuYW1lIE9yZGVyZWRNYXA6Oml0ZXJhdG9yOwogICAgIHJldHVybiBXVEY6OnN3aXRj
aE9uKG1fbG9jYXRvciwKICAgICAgICAgWyZdKGNvbnN0IE1lZGlhVGltZSYgcHJlc2VudGF0aW9u
VGltZSkgLT4gT3B0aW9uYWw8SXRlcmF0b3I+IHsKKyAgICAgICAgICAgIGFzc2VydElzSGVsZCht
X2xvY2F0b3JMb2NrKTsKICAgICAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSB1cHBlckJvdW5kKHNh
bXBsZXMsIHByZXNlbnRhdGlvblRpbWUpOwogICAgICAgICAgICAgaWYgKGl0ZXJhdG9yID09IHNh
bXBsZXMuYmVnaW4oKSkKICAgICAgICAgICAgICAgICBtX2xvY2F0b3IgPSBXVEZNb3ZlKGl0ZXJh
dG9yKTsKQEAgLTE1NSw2ICsxNTYsNyBAQCBPcHRpb25hbDx0eXBlbmFtZSBPcmRlcmVkTWFwOjpp
dGVyYXRvcj4gTWVkaWFTYW1wbGVDdXJzb3I6OmxvY2F0ZUl0ZXJhdG9yKE9yZGVyZQogICAgICAg
ICAgICAgcmV0dXJuIGxvY2F0ZUl0ZXJhdG9yKHNhbXBsZXMsIGhhc0FsbFNhbXBsZXMpOwogICAg
ICAgICB9LAogICAgICAgICBbJl0oY29uc3QgYXV0byYgb3RoZXJJdGVyYXRvcikgeworICAgICAg
ICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jYXRvckxvY2spOwogICAgICAgICAgICAgbV9sb2NhdG9y
ID0gb3RoZXJJdGVyYXRvci0+c2Vjb25kLT5wcmVzZW50YXRpb25UaW1lKCk7CiAgICAgICAgICAg
ICByZXR1cm4gbG9jYXRlSXRlcmF0b3Ioc2FtcGxlcywgaGFzQWxsU2FtcGxlcyk7CiAgICAgICAg
IH0sCkBAIC0xNjksNiArMTcxLDcgQEAgTWVkaWFTYW1wbGUqIE1lZGlhU2FtcGxlQ3Vyc29yOjps
b2NhdGVNZWRpYVNhbXBsZShTYW1wbGVNYXAmIHNhbXBsZXMsIGJvb2wgaGFzQWwKICAgICBBU1NF
UlQobV9sb2NhdG9yTG9jay5pc0xvY2tlZCgpKTsKICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbiht
X2xvY2F0b3IsCiAgICAgICAgIFsmXShjb25zdCBNZWRpYVRpbWUmKSAtPiBNZWRpYVNhbXBsZSog
eworICAgICAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jYXRvckxvY2spOwogICAgICAgICAgICAg
YXV0byBpdGVyYXRvciA9IGxvY2F0ZUl0ZXJhdG9yKHNhbXBsZXMucHJlc2VudGF0aW9uT3JkZXIo
KSwgaGFzQWxsU2FtcGxlcyk7CiAgICAgICAgICAgICBpZiAoIWl0ZXJhdG9yKQogICAgICAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTg1LDYgKzE4OCw3IEBAIE1lZGlhU2FtcGxlQ3Vy
c29yOjpUaW1pbmcgTWVkaWFTYW1wbGVDdXJzb3I6OmxvY2F0ZVRpbWluZyhTYW1wbGVNYXAmIHNh
bXBsZXMsIGJvCiAgICAgQVNTRVJUKG1fbG9jYXRvckxvY2suaXNMb2NrZWQoKSk7CiAgICAgcmV0
dXJuIFdURjo6c3dpdGNoT24obV9sb2NhdG9yLAogICAgICAgICBbJl0oY29uc3QgTWVkaWFUaW1l
JiBwcmVzZW50YXRpb25UaW1lKSB7CisgICAgICAgICAgICBhc3NlcnRJc0hlbGQobV9sb2NhdG9y
TG9jayk7CiAgICAgICAgICAgICBpZiAobG9jYXRlTWVkaWFTYW1wbGUoc2FtcGxlcywgaGFzQWxs
U2FtcGxlcykpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGxvY2F0ZVRpbWluZyhzYW1wbGVzLCBo
YXNBbGxTYW1wbGVzKTsKICAgICAgICAgICAgIGF1dG8mIGNsYW1wZWRQcmVzZW50YXRpb25UaW1l
ID0gc3RkOjptaW4ocHJlc2VudGF0aW9uVGltZSwgbV90cmFja1JlYWRlci0+ZHVyYXRpb24oKSk7
CkBAIC0yMDgsNiArMjEyLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgT3JkZXJlZE1hcD4KIE9TU3Rh
dHVzIE1lZGlhU2FtcGxlQ3Vyc29yOjpzdGVwSW5PcmRlcmVkTWFwKGludDY0X3Qgc3RlcHNUb1Rh
a2UsIGludDY0X3QmIHN0ZXBzVGFrZW4pCiB7CiAgICAgcmV0dXJuIGdldFNhbXBsZU1hcChbJl0o
U2FtcGxlTWFwJiBzYW1wbGVzLCBib29sIGhhc0FsbFNhbXBsZXMpIC0+IE9TU3RhdHVzIHsKKyAg
ICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jYXRvckxvY2spOwogICAgICAgICBhdXRvJiBvcmRlcmVk
TWFwID0gb3JkZXJlZFNhbXBsZXM8T3JkZXJlZE1hcD4oc2FtcGxlcyk7CiAgICAgICAgIGlmIChh
dXRvIGl0ZXJhdG9yID0gbG9jYXRlSXRlcmF0b3Iob3JkZXJlZE1hcCwgaGFzQWxsU2FtcGxlcykp
IHsKICAgICAgICAgICAgIGF1dG8gc3RlcHNSZW1haW5pbmcgPSBzdGVwSXRlcmF0b3Ioc3RlcHNU
b1Rha2UsICppdGVyYXRvciwgb3JkZXJlZE1hcCk7CkBAIC0yMjIsNiArMjI3LDcgQEAgT1NTdGF0
dXMgTWVkaWFTYW1wbGVDdXJzb3I6OnN0ZXBJbk9yZGVyZWRNYXAoaW50NjRfdCBzdGVwc1RvVGFr
ZSwgaW50NjRfdCYgc3RlcHMKIE9TU3RhdHVzIE1lZGlhU2FtcGxlQ3Vyc29yOjpzdGVwSW5QcmVz
ZW50YXRpb25UaW1lKGNvbnN0IE1lZGlhVGltZSYgZGVsdGEsIEJvb2xlYW4mIHdhc1Bpbm5lZCkK
IHsKICAgICByZXR1cm4gZ2V0U2FtcGxlTWFwKFsmXShTYW1wbGVNYXAmIHNhbXBsZXMsIGJvb2wg
aGFzQWxsU2FtcGxlcykgLT4gT1NTdGF0dXMgeworICAgICAgICBhc3NlcnRJc0hlbGQobV9sb2Nh
dG9yTG9jayk7CiAgICAgICAgIGF1dG8gdGltaW5nID0gbG9jYXRlVGltaW5nKHNhbXBsZXMsIGhh
c0FsbFNhbXBsZXMpOwogICAgICAgICB3YXNQaW5uZWQgPSBzdGVwVGltZShkZWx0YSwgdGltaW5n
LnByZXNlbnRhdGlvblRpbWUsIHNhbXBsZXMucHJlc2VudGF0aW9uT3JkZXIoKSwgaGFzQWxsU2Ft
cGxlcywgbV90cmFja1JlYWRlci0+ZHVyYXRpb24oKSk7CiAgICAgICAgIG1fbG9jYXRvciA9IHRp
bWluZy5wcmVzZW50YXRpb25UaW1lOwpAQCAtMjQ3LDYgKzI1Myw3IEBAIHRlbXBsYXRlPHR5cGVu
YW1lIEZ1bmN0aW9uPgogT1NTdGF0dXMgTWVkaWFTYW1wbGVDdXJzb3I6OmdldE1lZGlhU2FtcGxl
KEZ1bmN0aW9uJiYgZnVuY3Rpb24pIGNvbnN0CiB7CiAgICAgcmV0dXJuIGdldFNhbXBsZU1hcChb
Jl0oU2FtcGxlTWFwJiBzYW1wbGVzLCBib29sIGhhc0FsbFNhbXBsZXMpIC0+IE9TU3RhdHVzIHsK
KyAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jYXRvckxvY2spOwogICAgICAgICBhdXRvIHNhbXBs
ZSA9IGxvY2F0ZU1lZGlhU2FtcGxlKHNhbXBsZXMsIGhhc0FsbFNhbXBsZXMpOwogICAgICAgICBp
ZiAoIXNhbXBsZSkKICAgICAgICAgICAgIHJldHVybiBrTVRQbHVnaW5TYW1wbGVDdXJzb3JFcnJv
cl9Mb2NhdGlvbk5vdEF2YWlsYWJsZTsKQEAgLTI2MCw2ICsyNjcsNyBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBGdW5jdGlvbj4KIE9TU3RhdHVzIE1lZGlhU2FtcGxlQ3Vyc29yOjpnZXRUaW1pbmcoRnVu
Y3Rpb24mJiBmdW5jdGlvbikgY29uc3QKIHsKICAgICByZXR1cm4gZ2V0U2FtcGxlTWFwKFsmXShT
YW1wbGVNYXAmIHNhbXBsZXMsIGJvb2wgaGFzQWxsU2FtcGxlcykgeworICAgICAgICBhc3NlcnRJ
c0hlbGQobV9sb2NhdG9yTG9jayk7CiAgICAgICAgIGF1dG8gdGltaW5nID0gbG9jYXRlVGltaW5n
KHNhbXBsZXMsIGhhc0FsbFNhbXBsZXMpOwogICAgICAgICBERUJVR19MT0coTE9HSURFTlRJRklF
UiwgImRlY29kZVRpbWU6ICIsIHRpbWluZy5kZWNvZGVUaW1lLCAiLCBwcmVzZW50YXRpb25UaW1l
OiAiLCB0aW1pbmcucHJlc2VudGF0aW9uVGltZSwgIiwgZHVyYXRpb246ICIsIHRpbWluZy5kdXJh
dGlvbik7CiAgICAgICAgIGZ1bmN0aW9uKHRpbWluZyk7CkBAIC0zODIsNiArMzkwLDcgQEAgT1NT
dGF0dXMgTWVkaWFTYW1wbGVDdXJzb3I6OmNvcHlTYW1wbGVMb2NhdGlvbihNVFBsdWdpblNhbXBs
ZUN1cnNvclN0b3JhZ2VSYW5nZSoKIE9TU3RhdHVzIE1lZGlhU2FtcGxlQ3Vyc29yOjpnZXRQbGF5
YWJsZUhvcml6b24oQ01UaW1lKiBwbGF5YWJsZUhvcml6b24pIGNvbnN0CiB7CiAgICAgcmV0dXJu
IGdldFNhbXBsZU1hcChbJl0oU2FtcGxlTWFwJiBzYW1wbGVzLCBib29sIGhhc0FsbFNhbXBsZXMp
IHsKKyAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jYXRvckxvY2spOwogICAgICAgICBNZWRpYVNh
bXBsZSYgbGFzdFNhbXBsZSA9ICpzYW1wbGVzLmRlY29kZU9yZGVyKCkucmJlZ2luKCktPnNlY29u
ZDsKICAgICAgICAgYXV0byB0aW1pbmcgPSBsb2NhdGVUaW1pbmcoc2FtcGxlcywgaGFzQWxsU2Ft
cGxlcyk7CiAgICAgICAgICpwbGF5YWJsZUhvcml6b24gPSBQQUw6OnRvQ01UaW1lKGxhc3RTYW1w
bGUucHJlc2VudGF0aW9uVGltZSgpICsgbGFzdFNhbXBsZS5kdXJhdGlvbigpIC0gdGltaW5nLnBy
ZXNlbnRhdGlvblRpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01l
ZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuaAppbmRleCA2ODdiMTMw
MDQ3YTgyMzNjNDQxMzNkMzZjYjY4YjFmNTExZTMzMmU2Li5iMTdjZDkwMzc3ODMzODRhNjE4YTU1
YTY3OTBjOWRlZTI2NmRkZWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMv
TWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuaApAQCAtMjks
NiArMjksNyBAQAogCiAjaW5jbHVkZSAiQ29yZU1lZGlhV3JhcHBlZC5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvU2FtcGxlTWFwLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVk
ZSA8d3RmL01lZGlhVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKQEAgLTcxLDkg
KzcyLDkgQEAgcHJpdmF0ZToKICAgICBNZWRpYVNhbXBsZUN1cnNvcihBbGxvY2F0b3ImJiwgTWVk
aWFUcmFja1JlYWRlciYsIExvY2F0b3IpOwogICAgIE1lZGlhU2FtcGxlQ3Vyc29yKEFsbG9jYXRv
ciYmLCBjb25zdCBNZWRpYVNhbXBsZUN1cnNvciYpOwogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
T3JkZXJlZE1hcD4gT3B0aW9uYWw8dHlwZW5hbWUgT3JkZXJlZE1hcDo6aXRlcmF0b3I+IGxvY2F0
ZUl0ZXJhdG9yKE9yZGVyZWRNYXAmLCBib29sIGhhc0FsbFNhbXBsZXMpIGNvbnN0OwotICAgIFdl
YkNvcmU6Ok1lZGlhU2FtcGxlKiBsb2NhdGVNZWRpYVNhbXBsZShXZWJDb3JlOjpTYW1wbGVNYXAm
LCBib29sIGhhc0FsbFNhbXBsZXMpIGNvbnN0OwotICAgIFRpbWluZyBsb2NhdGVUaW1pbmcoV2Vi
Q29yZTo6U2FtcGxlTWFwJiwgYm9vbCBoYXNBbGxTYW1wbGVzKSBjb25zdDsKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBPcmRlcmVkTWFwPiBPcHRpb25hbDx0eXBlbmFtZSBPcmRlcmVkTWFwOjppdGVy
YXRvcj4gbG9jYXRlSXRlcmF0b3IoT3JkZXJlZE1hcCYsIGJvb2wgaGFzQWxsU2FtcGxlcykgY29u
c3QgV1RGX1JFUVVJUkVTX0xPQ0sobV9sb2NhdG9yTG9jayk7CisgICAgV2ViQ29yZTo6TWVkaWFT
YW1wbGUqIGxvY2F0ZU1lZGlhU2FtcGxlKFdlYkNvcmU6OlNhbXBsZU1hcCYsIGJvb2wgaGFzQWxs
U2FtcGxlcykgY29uc3QgV1RGX1JFUVVJUkVTX0xPQ0sobV9sb2NhdG9yTG9jayk7CisgICAgVGlt
aW5nIGxvY2F0ZVRpbWluZyhXZWJDb3JlOjpTYW1wbGVNYXAmLCBib29sIGhhc0FsbFNhbXBsZXMp
IGNvbnN0IFdURl9SRVFVSVJFU19MT0NLKG1fbG9jYXRvckxvY2spOwogCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgRnVuY3Rpb24+IE9TU3RhdHVzIGdldFNhbXBsZU1hcChGdW5jdGlvbiYmKSBjb25z
dDsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvbj4gT1NTdGF0dXMgZ2V0TWVkaWFTYW1w
bGUoRnVuY3Rpb24mJikgY29uc3Q7CkBAIC0xMDUsOCArMTA2LDggQEAgcHJpdmF0ZToKICAgICBX
VEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3Q7CiAKICAgICBSZWY8TWVkaWFUcmFja1Jl
YWRlcj4gbV90cmFja1JlYWRlcjsKLSAgICBtdXRhYmxlIExvY2F0b3IgbV9sb2NhdG9yOwotICAg
IG11dGFibGUgTG9jayBtX2xvY2F0b3JMb2NrOworICAgIG11dGFibGUgTG9jYXRvciBtX2xvY2F0
b3IgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2F0b3JMb2NrKTsKKyAgICBtdXRhYmxlIENoZWNr
ZWRMb2NrIG1fbG9jYXRvckxvY2s7CiAgICAgUmVmPGNvbnN0IFdURjo6TG9nZ2VyPiBtX2xvZ2dl
cjsKICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429471</attachid>
            <date>2021-05-23 13:03:18 -0700</date>
            <delta_ts>2021-05-23 13:21:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226152-20210523130318.patch</filename>
            <type>text/plain</type>
            <size>47121</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MzQ5YWMzMmM3ZDU1MzYyODgzNmUxNzFjMGUyYWNmOTg4Y2YyNzE3Li40YzQxMWI5YmRiY2YyODAx
ZmUxY2RjNmJlM2YyYTg3NTkwMDcxYjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFVzZSBDaGVja2VkTG9jayBpbiBldmVuIG1vcmUgcGxhY2VzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNTIKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBVc2UgQ2hlY2tlZExvY2sgaW4gZXZl
biBtb3JlIHBsYWNlcyB0byBiZW5lZml0IGZyb20gQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNp
cy4KKworICAgICAgICAqIEFQSS9KU1ZpcnR1YWxNYWNoaW5lLm1tOgorICAgICAgICAoV1RGX1JF
UVVJUkVTX0xPQ0spOgorICAgICAgICAqIEFQSS9nbGliL0pTQ1ZpcnR1YWxNYWNoaW5lLmNwcDoK
KyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oOgorICAgICAgICAqIGJ5dGVj
b2RlL1N1cGVyU2FtcGxlci5jcHA6CisgICAgICAgICogZGZnL0RGR0NvbW1vbkRhdGEuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkNvbW1vbkRhdGE6OmludmFsaWRhdGUpOgorICAgICAgICAoSlND
OjpERkc6OkNvbW1vbkRhdGE6On5Db21tb25EYXRhKToKKyAgICAgICAgKEpTQzo6REZHOjpDb21t
b25EYXRhOjppbnN0YWxsVk1UcmFwQnJlYWtwb2ludHMpOgorICAgICAgICAoSlNDOjpERkc6OmNv
ZGVCbG9ja0ZvclZNVHJhcFBDKToKKyAgICAgICAgKiBkZmcvREZHUGxhbi5oOgorICAgICAgICAo
SlNDOjpERkc6OlBsYW46OldURl9HVUFSREVEX0JZX0xPQ0spOgorICAgICAgICAqIGRpc2Fzc2Vt
Ymxlci9EaXNhc3NlbWJsZXIuY3BwOgorICAgICAgICAqIGhlYXAvQmxvY2tEaXJlY3RvcnkuY3Bw
OgorICAgICAgICAoSlNDOjpCbG9ja0RpcmVjdG9yeTo6cGFyYWxsZWxOb3RFbXB0eUJsb2NrU291
cmNlKToKKyAgICAgICAgKiBoZWFwL0hlYXAuaDoKKyAgICAgICAgKiBoZWFwL0lzb1N1YnNwYWNl
UGVyVk0uaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0
b3JDb25uZWN0aW9uQ2xpZW50Lmg6CisKIDIwMjEtMDUtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBp
bmNvbXBhdGlibGUgd2l0aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggODkyY2FkOTdjMDBmYmFjYzZmOWVmODg4OTQ3ZWFlZDM4NDAwZDMzYy4uNWRiYTVmZmZmYzA5
MmJkMGNhODI2ZTEzYWI4MGYyZDJiMmFmY2FmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBA
CisyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
VXNlIENoZWNrZWRMb2NrIGluIGV2ZW4gbW9yZSBwbGFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE1MgorCisgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgorCisgICAgICAgIFVzZSBDaGVja2VkTG9jayBpbiBldmVuIG1vcmUgcGxh
Y2VzIHRvIGJlbmVmaXQgZnJvbSBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLgorCisgICAg
ICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFnZURlY29kZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2NhbGFibGVJbWFnZURlY29kZXI6OmZyYW1lSXNDb21wbGV0ZUF0
SW5kZXggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NhbGFibGVJbWFnZURlY29kZXI6OmZy
YW1lSGFzQWxwaGFBdEluZGV4IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjYWxhYmxlSW1h
Z2VEZWNvZGVyOjpmcmFtZUJ5dGVzQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y2FsYWJsZUltYWdlRGVjb2Rlcjo6ZnJhbWVEdXJhdGlvbkF0SW5kZXggY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U2NhbGFibGVJbWFnZURlY29kZXI6OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJsZUltYWdlRGVjb2Rl
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZh
dGVNb2NrLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2lu
Z0F1ZGlvU291cmNlTGliV2ViUlRDLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6cHVsbEF1
ZGlvRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaDoKKyAgICAgICAgKiB3b3Jr
bGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5oOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkg
YXMgaXQgaXMgaW5jb21wYXRpYmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCBkNjUzYjc5MjlmZDU2NDlmM2NjNDY2NDk0NDMyMmE4MDI5MzQzZDcxLi40NmQz
NjBjZmYzNGYwMjdlZWQzNjk3ODlmNDU2MjYzYTAyYWFjZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI2IEBACisyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgVXNlIENoZWNrZWRMb2NrIGluIGV2ZW4gbW9yZSBwbGFjZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE1MgorCisgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFVzZSBDaGVja2VkTG9jayBpbiBldmVuIG1v
cmUgcGxhY2VzIHRvIGJlbmVmaXQgZnJvbSBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLgor
CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaDoKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9nbGliL0ROU0NhY2hlLmg6CisgICAgICAgICogU2hhcmVkL21h
Yy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhU2FtcGxlQ3Vyc29yOjpsb2NhdGVJdGVyYXRvciBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhU2FtcGxlQ3Vyc29yOjpsb2NhdGVNZWRpYVNhbXBsZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhU2FtcGxlQ3Vyc29yOjpsb2NhdGVUaW1pbmcgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpNZWRpYVNhbXBsZUN1cnNvcjo6c3RlcEluT3JkZXJlZE1hcCk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhU2FtcGxlQ3Vyc29yOjpzdGVwSW5QcmVzZW50YXRpb25UaW1lKToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFTYW1wbGVDdXJzb3I6OmdldE1lZGlhU2FtcGxlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFTYW1wbGVDdXJzb3I6OmdldFRpbWluZyBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhU2FtcGxlQ3Vyc29yOjpnZXRQbGF5YWJsZUhvcml6b24g
Y29uc3QpOgorICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1w
bGVDdXJzb3IuaDoKKwogMjAyMS0wNS0yMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBJbXBsZW1lbnQgcGFnZSBjbGllbnQgaG9vayBmb3Ig
cmVxdWVzdGluZyBpbWFnZSBleHRyYWN0aW9uIHJlc3VsdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbQppbmRleCBjMjA5N2MyYTg5NjA1MTY4NGQ5Y2Vk
OWRjY2U2ODliNDFjYTE2NmE1Li5mNjEzNDk4YWM4MmM3Y2Y5MzE2ZDM4NjJiYjc2YWUwYjQ5YzEz
MTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hp
bmUubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lLm1t
CkBAIC0zOCwxMiArMzgsMTIgQEAKICNpbXBvcnQgIlNpZ2lsbENyYXNoQW5hbHl6ZXIuaCIKICNp
bXBvcnQgIlNsb3RWaXNpdG9ySW5saW5lcy5oIgogI2ltcG9ydCA8bXV0ZXg+Ci0jaW1wb3J0IDx3
dGYvTG9jay5oPgorI2ltcG9ydCA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CiAKIHN0YXRpYyBOU01hcFRhYmxlICpnbG9iYWxXcmFwcGVyQ2FjaGUgPSAwOwog
Ci1zdGF0aWMgTG9jayB3cmFwcGVyQ2FjaGVNdXRleDsKK3N0YXRpYyBDaGVja2VkTG9jayB3cmFw
cGVyQ2FjaGVNdXRleDsKIAogc3RhdGljIHZvaWQgaW5pdFdyYXBwZXJDYWNoZSgpCiB7CkBAIC01
Myw3ICs1Myw3IEBAIHN0YXRpYyB2b2lkIGluaXRXcmFwcGVyQ2FjaGUoKQogICAgIGdsb2JhbFdy
YXBwZXJDYWNoZSA9IFtbTlNNYXBUYWJsZSBhbGxvY10gaW5pdFdpdGhLZXlPcHRpb25zOmtleU9w
dGlvbnMgdmFsdWVPcHRpb25zOnZhbHVlT3B0aW9ucyBjYXBhY2l0eTowXTsKIH0KIAotc3RhdGlj
IE5TTWFwVGFibGUgKndyYXBwZXJDYWNoZSgpCitzdGF0aWMgTlNNYXBUYWJsZSAqd3JhcHBlckNh
Y2hlKCkgV1RGX1JFUVVJUkVTX0xPQ0sod3JhcHBlckNhY2hlTXV0ZXgpCiB7CiAgICAgaWYgKCFn
bG9iYWxXcmFwcGVyQ2FjaGUpCiAgICAgICAgIGluaXRXcmFwcGVyQ2FjaGUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWaXJ0dWFsTWFjaGluZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDVmlydHVhbE1hY2hpbmUuY3BwCmlu
ZGV4IDQzMWE3MTBkZTM3Y2MxZjAzZTk3Njk5ZjFiMmIxZDUwMjIzNGNiZTEuLjUxMDVkMjc3MGZk
ZGFkN2RiM2QwMTE5MjM4YjMyMjJlMDc2YWRkOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvZ2xpYi9KU0NWaXJ0dWFsTWFjaGluZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9nbGliL0pTQ1ZpcnR1YWxNYWNoaW5lLmNwcApAQCAtMjMsNiArMjMsNyBA
QAogI2luY2x1ZGUgIkpTQ0NvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiSlNDVmlydHVhbE1h
Y2hpbmVQcml2YXRlLmgiCiAjaW5jbHVkZSAiSlNDb250ZXh0UmVmLmgiCisjaW5jbHVkZSA8d3Rm
L0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgpAQCAtNDgs
OSArNDksOSBAQCBzdHJ1Y3QgX0pTQ1ZpcnR1YWxNYWNoaW5lUHJpdmF0ZSB7CiAKIFdFQktJVF9E
RUZJTkVfVFlQRShKU0NWaXJ0dWFsTWFjaGluZSwganNjX3ZpcnR1YWxfbWFjaGluZSwgR19UWVBF
X09CSkVDVCkKIAotc3RhdGljIExvY2sgd3JhcHBlckNhY2hlTXV0ZXg7CitzdGF0aWMgQ2hlY2tl
ZExvY2sgd3JhcHBlckNhY2hlTXV0ZXg7CiAKLXN0YXRpYyBIYXNoTWFwPEpTQ29udGV4dEdyb3Vw
UmVmLCBKU0NWaXJ0dWFsTWFjaGluZSo+JiB3cmFwcGVyTWFwKCkKK3N0YXRpYyBIYXNoTWFwPEpT
Q29udGV4dEdyb3VwUmVmLCBKU0NWaXJ0dWFsTWFjaGluZSo+JiB3cmFwcGVyTWFwKCkgV1RGX1JF
UVVJUkVTX0xPQ0sod3JhcHBlckNhY2hlTXV0ZXgpCiB7CiAgICAgc3RhdGljIExhenlOZXZlckRl
c3Ryb3llZDxIYXNoTWFwPEpTQ29udGV4dEdyb3VwUmVmLCBKU0NWaXJ0dWFsTWFjaGluZSo+PiBz
aGFyZWQ7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCmluZGV4IGY1Nzdk
MjEyM2YzYjYwYjE4MmM0OWZhNzg1YjBmZGJhNTFlYjY5NzkuLmViMzY1NmZjYmQ1NTA1NmFiYjZm
YzU1OTg5ZDFmZDY5MWFmZjBkZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAi
U3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oIgogI2luY2x1ZGUgIlN0dWJJbmZvU3Vt
bWFyeS5oIgogI2luY2x1ZGUgPHd0Zi9Cb3guaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2su
aD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTMzOSw3ICszNDAsNyBAQCBwcml2YXRlOgogICAg
IC8vIE5vdGUgdGhhdCBpdCdzIGFsd2F5cyBzYWZlIHRvIGNsZWFyIHRoaXMuIElmIHdlIGNsZWFy
IGl0IHByZW1hdHVyZWx5LCB0aGVuIGlmIHdlIHNlZSB0aGUgc2FtZQogICAgIC8vIHN0cnVjdHVy
ZSBhZ2FpbiBkdXJpbmcgdGhpcyBidWZmZXJpbmcgY291bnRkb3duLCB3ZSB3aWxsIGNyZWF0ZSBh
biBBY2Nlc3NDYXNlIG9iamVjdCBmb3IgaXQuCiAgICAgLy8gVGhhdCdzIG5vdCBzbyBiYWQgLSB3
ZSdsbCBnZXQgcmlkIG9mIHRoZSByZWR1bmRhbnQgb25lcyBvbmNlIHdlIHJlZ2VuZXJhdGUuCi0g
ICAgSGFzaFNldDxCdWZmZXJlZFN0cnVjdHVyZSwgQnVmZmVyZWRTdHJ1Y3R1cmU6Okhhc2gsIEJ1
ZmZlcmVkU3RydWN0dXJlOjpLZXlUcmFpdHM+IG1fYnVmZmVyZWRTdHJ1Y3R1cmVzOworICAgIEhh
c2hTZXQ8QnVmZmVyZWRTdHJ1Y3R1cmUsIEJ1ZmZlcmVkU3RydWN0dXJlOjpIYXNoLCBCdWZmZXJl
ZFN0cnVjdHVyZTo6S2V5VHJhaXRzPiBtX2J1ZmZlcmVkU3RydWN0dXJlcyBXVEZfR1VBUkRFRF9C
WV9MT0NLKG1fYnVmZmVyZWRTdHJ1Y3R1cmVzTG9jayk7CiBwdWJsaWM6CiAgICAgQ29kZUxvY2F0
aW9uTGFiZWw8SklUU3R1YlJvdXRpbmVQdHJUYWc+IHN0YXJ0OyAvLyBUaGlzIGlzIGVpdGhlciB0
aGUgc3RhcnQgb2YgdGhlIGlubGluZSBJQyBmb3IgKmJ5SWQgY2FjaGVzLiBvciB0aGUgbG9jYXRp
b24gb2YgcGF0Y2hhYmxlIGp1bXAgZm9yICdpbnN0YW5jZW9mJyBjYWNoZXMuCiAgICAgQ29kZUxv
Y2F0aW9uTGFiZWw8SlNJbnRlcm5hbFB0clRhZz4gZG9uZUxvY2F0aW9uOwpAQCAtMzkxLDcgKzM5
Miw3IEBAIHB1YmxpYzoKICAgICBib29sIHByb3BlcnR5SXNJbnQzMiA6IDE7CiAgICAgYm9vbCBw
cm9wZXJ0eUlzU3ltYm9sIDogMTsKIHByaXZhdGU6Ci0gICAgTG9jayBtX2J1ZmZlcmVkU3RydWN0
dXJlc0xvY2s7CisgICAgQ2hlY2tlZExvY2sgbV9idWZmZXJlZFN0cnVjdHVyZXNMb2NrOwogfTsK
IAogaW5saW5lIENvZGVPcmlnaW4gZ2V0U3RydWN0dXJlU3R1YkluZm9Db2RlT3JpZ2luKFN0cnVj
dHVyZVN0dWJJbmZvJiBzdHJ1Y3R1cmVTdHViSW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TdXBlclNhbXBsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1N1cGVyU2FtcGxlci5jcHAKaW5kZXggYTQyNjQwZjI4NjMyNjk3Mjc5ZGM0
OWEzY2U1MWVmYzM5ZWMxYTM5MC4uZjZlZGI4NDY4NGQ1ZjUyOGZkNjhhZmFhMDE1NGZjZDg1Mjdi
ZWYyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N1cGVyU2Ft
cGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N1cGVyU2FtcGxl
ci5jcHAKQEAgLTI3LDggKzI3LDggQEAKICNpbmNsdWRlICJTdXBlclNhbXBsZXIuaCIKIAogI2lu
Y2x1ZGUgIk9wdGlvbnMuaCIKKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRl
IDx3dGYvRGF0YUxvZy5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTM2LDkgKzM2LDkgQEAgbmFtZXNwYWNl
IEpTQyB7CiB2b2xhdGlsZSB1aW50MzJfdCBnX3N1cGVyU2FtcGxlckNvdW50Owogdm9sYXRpbGUg
Ym9vbCBnX3N1cGVyU2FtcGxlckVuYWJsZWQ7CiAKLXN0YXRpYyBMb2NrIGxvY2s7Ci1zdGF0aWMg
ZG91YmxlIGluOwotc3RhdGljIGRvdWJsZSBvdXQ7CitzdGF0aWMgQ2hlY2tlZExvY2sgbG9jazsK
K3N0YXRpYyBkb3VibGUgaW4gV1RGX0dVQVJERURfQllfTE9DSyhsb2NrKTsKK3N0YXRpYyBkb3Vi
bGUgb3V0IFdURl9HVUFSREVEX0JZX0xPQ0sobG9jayk7CiAKIHZvaWQgaW5pdGlhbGl6ZVN1cGVy
U2FtcGxlcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nv
bW1vbkRhdGEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb25EYXRhLmNw
cAppbmRleCAyN2VkZjFjODFhNTM4MzhmMWI4YjZjZTkwMDNlYzQ2ZDczNDliNTkwLi45NzFmOGIw
NWE4N2U0NTY2NjU2YTlmMTNhOTlkODhkNmYwYTI3MDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbkRhdGEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ29tbW9uRGF0YS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJJ
bmxpbmVDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1
ZGUgIlRyYWNrZWRSZWZlcmVuY2VzLmgiCisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgREZHIHsKQEAgLTQ0LDggKzQ1LDggQEAgdm9pZCBDb21tb25EYXRhOjpzaHJpbmtUb0ZpdCgp
CiAgICAgbV9qdW1wUmVwbGFjZW1lbnRzLnNocmlua1RvRml0KCk7CiB9CiAKLXN0YXRpYyBMb2Nr
IHBjQ29kZUJsb2NrTWFwTG9jazsKLWlubGluZSBIYXNoTWFwPHZvaWQqLCBDb2RlQmxvY2sqPiYg
cGNDb2RlQmxvY2tNYXAoQWJzdHJhY3RMb2NrZXImKQorc3RhdGljIENoZWNrZWRMb2NrIHBjQ29k
ZUJsb2NrTWFwTG9jazsKK2lubGluZSBIYXNoTWFwPHZvaWQqLCBDb2RlQmxvY2sqPiYgcGNDb2Rl
QmxvY2tNYXAoKSBXVEZfUkVRVUlSRVNfTE9DSyhwY0NvZGVCbG9ja01hcExvY2spCiB7CiAgICAg
c3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxIYXNoTWFwPHZvaWQqLCBDb2RlQmxvY2sqPj4gcGND
b2RlQmxvY2tNYXA7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CkBAIC02Miw3
ICs2Myw3IEBAIGJvb2wgQ29tbW9uRGF0YTo6aW52YWxpZGF0ZSgpCiAKICAgICBpZiAoVU5MSUtF
TFkoaGFzVk1UcmFwc0JyZWFrcG9pbnRzSW5zdGFsbGVkKSkgewogICAgICAgICBMb2NrZXIgbG9j
a2VyIHsgcGNDb2RlQmxvY2tNYXBMb2NrIH07Ci0gICAgICAgIGF1dG8mIG1hcCA9IHBjQ29kZUJs
b2NrTWFwKGxvY2tlcik7CisgICAgICAgIGF1dG8mIG1hcCA9IHBjQ29kZUJsb2NrTWFwKCk7CiAg
ICAgICAgIGZvciAoYXV0byYganVtcFJlcGxhY2VtZW50IDogbV9qdW1wUmVwbGFjZW1lbnRzKQog
ICAgICAgICAgICAgbWFwLnJlbW92ZShqdW1wUmVwbGFjZW1lbnQuZGF0YUxvY2F0aW9uKCkpOwog
ICAgICAgICBoYXNWTVRyYXBzQnJlYWtwb2ludHNJbnN0YWxsZWQgPSBmYWxzZTsKQEAgLTc4LDcg
Kzc5LDcgQEAgQ29tbW9uRGF0YTo6fkNvbW1vbkRhdGEoKQogewogICAgIGlmIChVTkxJS0VMWSho
YXNWTVRyYXBzQnJlYWtwb2ludHNJbnN0YWxsZWQpKSB7CiAgICAgICAgIExvY2tlciBsb2NrZXIg
eyBwY0NvZGVCbG9ja01hcExvY2sgfTsKLSAgICAgICAgYXV0byYgbWFwID0gcGNDb2RlQmxvY2tN
YXAobG9ja2VyKTsKKyAgICAgICAgYXV0byYgbWFwID0gcGNDb2RlQmxvY2tNYXAoKTsKICAgICAg
ICAgZm9yIChhdXRvJiBqdW1wUmVwbGFjZW1lbnQgOiBtX2p1bXBSZXBsYWNlbWVudHMpCiAgICAg
ICAgICAgICBtYXAucmVtb3ZlKGp1bXBSZXBsYWNlbWVudC5kYXRhTG9jYXRpb24oKSk7CiAgICAg
fQpAQCAtOTEsNyArOTIsNyBAQCB2b2lkIENvbW1vbkRhdGE6Omluc3RhbGxWTVRyYXBCcmVha3Bv
aW50cyhDb2RlQmxvY2sqIG93bmVyKQogICAgICAgICByZXR1cm47CiAgICAgaGFzVk1UcmFwc0Jy
ZWFrcG9pbnRzSW5zdGFsbGVkID0gdHJ1ZTsKIAotICAgIGF1dG8mIG1hcCA9IHBjQ29kZUJsb2Nr
TWFwKGxvY2tlcik7CisgICAgYXV0byYgbWFwID0gcGNDb2RlQmxvY2tNYXAoKTsKICNpZiAhZGVm
aW5lZChOREVCVUcpCiAgICAgLy8gV2UgbmVlZCB0byBiZSBhYmxlIHRvIGhhbmRsZSBtb3JlIHRo
YW4gb25lIGludmFsaWRhdGlvbiBwb2ludCBhdCB0aGUgc2FtZSBwYwogICAgIC8vIGJ1dCB3ZSB3
YW50IHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBmb3JnZXQgdG8gcmVtb3ZlIGEgcGMgZnJvbSB0aGUg
bWFwLgpAQCAtMTEzLDcgKzExNCw3IEBAIENvZGVCbG9jayogY29kZUJsb2NrRm9yVk1UcmFwUEMo
dm9pZCogcGMpCiB7CiAgICAgQVNTRVJUKGlzSklUUEMocGMpKTsKICAgICBMb2NrZXIgbG9ja2Vy
IHsgcGNDb2RlQmxvY2tNYXBMb2NrIH07Ci0gICAgYXV0byYgbWFwID0gcGNDb2RlQmxvY2tNYXAo
bG9ja2VyKTsKKyAgICBhdXRvJiBtYXAgPSBwY0NvZGVCbG9ja01hcCgpOwogICAgIGF1dG8gcmVz
dWx0ID0gbWFwLmZpbmQocGMpOwogICAgIGlmIChyZXN1bHQgPT0gbWFwLmVuZCgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHUGxhbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgKaW5kZXggMTcy
YTcyZDljYjdiNTM3MTIzMDAyMjY0ZDM1MjA2NWM0NzUzOGJmNy4uYzFlYjcxMmEyODYxNjE3MDJj
YmJjOGRiODAxMzMyODI5NTAxNzI5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdQbGFuLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgK
QEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJPcGVyYW5kcy5oIgogI2luY2x1ZGUgIlByb2Zp
bGVyQ29tcGlsYXRpb24uaCIKICNpbmNsdWRlICJSZWNvcmRlZFN0YXR1c2VzLmgiCisjaW5jbHVk
ZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIApAQCAtMTM3LDggKzEzOCw4IEBAIHByaXZh
dGU6CiAgICAgQ29kZUJsb2NrKiBtX3Byb2ZpbGVkREZHQ29kZUJsb2NrOwogCiAgICAgT3BlcmFu
ZHM8T3B0aW9uYWw8SlNWYWx1ZT4+IG1fbXVzdEhhbmRsZVZhbHVlczsKLSAgICBib29sIG1fbXVz
dEhhbmRsZVZhbHVlc01heUluY2x1ZGVHYXJiYWdlIHsgdHJ1ZSB9OwotICAgIExvY2sgbV9tdXN0
SGFuZGxlVmFsdWVDbGVhbmluZ0xvY2s7CisgICAgYm9vbCBtX211c3RIYW5kbGVWYWx1ZXNNYXlJ
bmNsdWRlR2FyYmFnZSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbXVzdEhhbmRsZVZhbHVlQ2xlYW5p
bmdMb2NrKSB7IHRydWUgfTsKKyAgICBDaGVja2VkTG9jayBtX211c3RIYW5kbGVWYWx1ZUNsZWFu
aW5nTG9jazsKIAogICAgIGJvb2wgbV93aWxsVHJ5VG9UaWVyVXAgeyBmYWxzZSB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5jcHAK
aW5kZXggNTVjMDVjODEyMjlmMzU5MzZmZjEzNDdjZGRmNDU0ZjNhZmI2YWM5MC4uN2I2Yzg5MzU3
OTJhMzBiMDUyOGY1M2I4NzFjN2UzMTY3OGU2MTdkOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9EaXNhc3NlbWJsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNwcApAQCAtMjcsMTAgKzI3LDEw
IEBACiAjaW5jbHVkZSAiRGlzYXNzZW1ibGVyLmgiCiAKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYuaCIKLSNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0No
ZWNrZWRDb25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRl
IDx3dGYvRGF0YUxvZy5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgogCkBAIC0xMDksOSArMTA5LDkgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAg
IH0KICAgICAKLSAgICBMb2NrIG1fbG9jazsKLSAgICBDb25kaXRpb24gbV9jb25kaXRpb247Ci0g
ICAgRGVxdWU8c3RkOjp1bmlxdWVfcHRyPERpc2Fzc2VtYmx5VGFzaz4+IG1fcXVldWU7CisgICAg
Q2hlY2tlZExvY2sgbV9sb2NrOworICAgIENoZWNrZWRDb25kaXRpb24gbV9jb25kaXRpb247Cisg
ICAgRGVxdWU8c3RkOjp1bmlxdWVfcHRyPERpc2Fzc2VtYmx5VGFzaz4+IG1fcXVldWUgV1RGX0dV
QVJERURfQllfTE9DSyhtX2xvY2spOwogICAgIGJvb2wgbV93b3JraW5nIHsgZmFsc2UgfTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrRGlyZWN0b3J5
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrRGlyZWN0b3J5LmNwcAppbmRl
eCA2YzI0MmI4NjNiY2VjZDczZTgzMGE2M2EzNWZlMjAwMGQwYTIzNzk5Li5hZGI3NTdlM2Q2MDU4
NDY1NTlmYTFmMjk2YzM3OWYwOWIyYTI4OTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvQmxvY2tEaXJlY3RvcnkuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiU3Vi
c3BhY2VJbmxpbmVzLmgiCiAjaW5jbHVkZSAiU3VwZXJTYW1wbGVyLmgiCiAKKyNpbmNsdWRlIDx3
dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb25UcmFpdHMuaD4KICNpbmNs
dWRlIDx3dGYvU2ltcGxlU3RhdHMuaD4KIApAQCAtMzQzLDkgKzM0NCw5IEBAIFJlZlB0cjxTaGFy
ZWRUYXNrPE1hcmtlZEJsb2NrOjpIYW5kbGUqKCk+PiBCbG9ja0RpcmVjdG9yeTo6cGFyYWxsZWxO
b3RFbXB0eUJsb2NrCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
QmxvY2tEaXJlY3RvcnkmIG1fZGlyZWN0b3J5OwotICAgICAgICBzaXplX3QgbV9pbmRleCB7IDAg
fTsKLSAgICAgICAgTG9jayBtX2xvY2s7CisgICAgICAgIEJsb2NrRGlyZWN0b3J5JiBtX2RpcmVj
dG9yeSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jayk7CisgICAgICAgIHNpemVfdCBtX2luZGV4
IFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKSB7IDAgfTsKKyAgICAgICAgQ2hlY2tlZExvY2sg
bV9sb2NrOwogICAgICAgICBib29sIG1fZG9uZSB7IGZhbHNlIH07CiAgICAgfTsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuaAppbmRleCA5M2FhMjhiZGI3MGY2ODhiYzk1NGZlM2ZjYTcz
N2M0MjcyNDMzNjNmLi43YTUzZTA1MTVkMDY5NjUzZDA0ZmI5YmFjMzU1OGQ3ZTgxZDk1ZjJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAi
U3luY2hyb25vdXNuZXNzLmgiCiAjaW5jbHVkZSAiV2Vha0hhbmRsZU93bmVyLmgiCiAjaW5jbHVk
ZSA8d3RmL0F1dG9tYXRpY1RocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgog
I2luY2x1ZGUgPHd0Zi9Db25jdXJyZW50UHRySGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1
ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgpAQCAtNjQ4LDcgKzY0OSw3IEBA
IHByaXZhdGU6CiAgICAgLy8gb25lIEdDIHRvIHRoZSBuZXh0LiBHQyBtYXJraW5nIHRocmVhZHMg
Y2xhaW0gdGhlc2UgYXQgdGhlIHN0YXJ0IG9mIG1hcmtpbmcsIGFuZCByZXR1cm4KICAgICAvLyB0
aGVtIGF0IHRoZSBlbmQuCiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxTbG90VmlzaXRvcj4+
IG1fcGFyYWxsZWxTbG90VmlzaXRvcnM7Ci0gICAgVmVjdG9yPFNsb3RWaXNpdG9yKj4gbV9hdmFp
bGFibGVQYXJhbGxlbFNsb3RWaXNpdG9yczsKKyAgICBWZWN0b3I8U2xvdFZpc2l0b3IqPiBtX2F2
YWlsYWJsZVBhcmFsbGVsU2xvdFZpc2l0b3JzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9wYXJhbGxl
bFNsb3RWaXNpdG9yTG9jayk7CiAgICAgCiAgICAgSGFuZGxlU2V0IG1faGFuZGxlU2V0OwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxDb2RlQmxvY2tTZXQ+IG1fY29kZUJsb2NrczsKQEAgLTY1Niw3ICs2
NTcsNyBAQCBwcml2YXRlOgogICAgIENGaW5hbGl6ZXJPd25lciBtX2NGaW5hbGl6ZXJPd25lcjsK
ICAgICBMYW1iZGFGaW5hbGl6ZXJPd25lciBtX2xhbWJkYUZpbmFsaXplck93bmVyOwogICAgIAot
ICAgIExvY2sgbV9wYXJhbGxlbFNsb3RWaXNpdG9yTG9jazsKKyAgICBDaGVja2VkTG9jayBtX3Bh
cmFsbGVsU2xvdFZpc2l0b3JMb2NrOwogICAgIGJvb2wgbV9pc1NhZmVUb0NvbGxlY3QgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9pc1NodXR0aW5nRG93biB7IGZhbHNlIH07CiAgICAgYm9vbCBtX211
dGF0b3JTaG91bGRCZUZlbmNlZCB7IE9wdGlvbnM6OmZvcmNlRmVuY2VkQmFycmllcigpIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmgKaW5kZXggNGE5
OWE4ODVmOTYxYjk3ZWJiYTc4YzJhNWI3NWNkNzY0NGE1NmNlZi4uYTk2YzI5Nzk1NmU3MjllNGFm
NGIxZWI0MTMzYWM4OTY2NTE3NzRmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSXNvU3Vic3BhY2VQZXJWTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0lzb1N1YnNwYWNlUGVyVk0uaApAQCAtMjYsOSArMjYsOSBAQAogI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlICJJc29TdWJzcGFjZS5oIgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2lu
Y2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVk
ZSA8d3RmL0xvY2suaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTYyLDggKzYyLDggQEAgcHJp
dmF0ZToKICAgICBjbGFzcyBBdXRvcmVtb3ZpbmdJc29TdWJzcGFjZTsKICAgICBmcmllbmQgY2xh
c3MgQXV0b3JlbW92aW5nSXNvU3Vic3BhY2U7CiAKLSAgICBMb2NrIG1fbG9jazsKLSAgICBIYXNo
TWFwPFZNKiwgSXNvU3Vic3BhY2UqPiBtX3N1YnNwYWNlUGVyVk07CisgICAgQ2hlY2tlZExvY2sg
bV9sb2NrOworICAgIEhhc2hNYXA8Vk0qLCBJc29TdWJzcGFjZSo+IG1fc3Vic3BhY2VQZXJWTSBX
VEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jayk7CiAgICAgRnVuY3Rpb248U3Vic3BhY2VQYXJhbWV0
ZXJzKFZNJik+IG1fc3Vic3BhY2VQYXJhbWV0ZXJzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvckNv
bm5lY3Rpb25DbGllbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3Rl
L3NvY2tldC9SZW1vdGVJbnNwZWN0b3JDb25uZWN0aW9uQ2xpZW50LmgKaW5kZXggMWM3NTRjYTY4
MGY1ODVkNTdmNDM3OTkyZGI4MWUxYmY3YjljMjkwNy4uZTg0NmZmM2ZkOTkyM2M5ZWE2OWVlY2Q4
OTNlYzgzMzJjZTI1ZDY0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvckNvbm5lY3Rpb25DbGllbnQuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5z
cGVjdG9yQ29ubmVjdGlvbkNsaWVudC5oCkBAIC0zMCw5ICszMCw5IEBACiAjaW5jbHVkZSAiUmVt
b3RlQ29udHJvbGxhYmxlVGFyZ2V0LmgiCiAjaW5jbHVkZSAiUmVtb3RlSW5zcGVjdG9yTWVzc2Fn
ZVBhcnNlci5oIgogI2luY2x1ZGUgIlJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgiCisj
aW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewpAQCAtNjUs
OCArNjUsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBzdGF0aWMgT3B0aW9uYWw8RXZlbnQ+IGV4dHJh
Y3RFdmVudChDb25uZWN0aW9uSUQsIFZlY3Rvcjx1aW50OF90PiYmKTsKIAotICAgIEhhc2hNYXA8
Q29ubmVjdGlvbklELCBNZXNzYWdlUGFyc2VyPiBtX3BhcnNlcnM7Ci0gICAgTG9jayBtX3BhcnNl
cnNMb2NrOworICAgIEhhc2hNYXA8Q29ubmVjdGlvbklELCBNZXNzYWdlUGFyc2VyPiBtX3BhcnNl
cnMgV1RGX0dVQVJERURfQllfTE9DSyhtX3BhcnNlcnNMb2NrKTsKKyAgICBDaGVja2VkTG9jayBt
X3BhcnNlcnNMb2NrOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJsZUltYWdlRGVj
b2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJs
ZUltYWdlRGVjb2Rlci5jcHAKaW5kZXggZjJjZWIwMDBhZDQwN2M0ZWI2MjM1N2NjYTBjMDIyYTVi
NzFhNTkwNS4uZGRiMTE0Mzk0NzQ0MGQ3MTdlODMzY2JkM2M3ZDZkYzIxYTIwM2JlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFn
ZURlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L1NjYWxhYmxlSW1hZ2VEZWNvZGVyLmNwcApAQCAtMTcwLDcgKzE3MCw3IEBAIFJlZlB0cjxTY2Fs
YWJsZUltYWdlRGVjb2Rlcj4gU2NhbGFibGVJbWFnZURlY29kZXI6OmNyZWF0ZShTaGFyZWRCdWZm
ZXImIGRhdGEsIEFsCiAKIGJvb2wgU2NhbGFibGVJbWFnZURlY29kZXI6OmZyYW1lSXNDb21wbGV0
ZUF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAogewotICAgIExvY2tlciBsb2NrZXIgeyBtX211
dGV4IH07CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIGlmIChpbmRleCA+PSBt
X2ZyYW1lQnVmZmVyQ2FjaGUuc2l6ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTE4
MCw3ICsxODAsNyBAQCBib29sIFNjYWxhYmxlSW1hZ2VEZWNvZGVyOjpmcmFtZUlzQ29tcGxldGVB
dEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKIAogYm9vbCBTY2FsYWJsZUltYWdlRGVjb2Rlcjo6
ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAogewotICAgIExvY2tlciBs
b2NrZXIgeyBtX211dGV4IH07CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIGlm
IChtX2ZyYW1lQnVmZmVyQ2FjaGUuc2l6ZSgpIDw9IGluZGV4KQogICAgICAgICByZXR1cm4gdHJ1
ZTsKIApAQCAtMTkyLDcgKzE5Miw3IEBAIGJvb2wgU2NhbGFibGVJbWFnZURlY29kZXI6OmZyYW1l
SGFzQWxwaGFBdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKIAogdW5zaWduZWQgU2NhbGFibGVJ
bWFnZURlY29kZXI6OmZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCBpbmRleCwgU3Vic2FtcGxpbmdM
ZXZlbCkgY29uc3QKIHsKLSAgICBMb2NrZXIgbG9ja2VyIHsgbV9tdXRleCB9OworICAgIExvY2tl
ciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICBpZiAobV9mcmFtZUJ1ZmZlckNhY2hlLnNpemUoKSA8
PSBpbmRleCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgLy8gRklYTUU6IFVzZSB0aGUgZGltZW5z
aW9uIG9mIHRoZSByZXF1ZXN0ZWQgZnJhbWUuCkBAIC0yMDEsNyArMjAxLDcgQEAgdW5zaWduZWQg
U2NhbGFibGVJbWFnZURlY29kZXI6OmZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCBpbmRleCwgU3Vi
c2FtcGxpbmdMZXZlbCkKIAogU2Vjb25kcyBTY2FsYWJsZUltYWdlRGVjb2Rlcjo6ZnJhbWVEdXJh
dGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAogewotICAgIExvY2tlciBsb2NrZXIgeyBt
X211dGV4IH07CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIGlmIChpbmRleCA+
PSBtX2ZyYW1lQnVmZmVyQ2FjaGUuc2l6ZSgpKQogICAgICAgICByZXR1cm4gMF9zOwogCkBAIC0y
MjEsNyArMjIxLDcgQEAgU2Vjb25kcyBTY2FsYWJsZUltYWdlRGVjb2Rlcjo6ZnJhbWVEdXJhdGlv
bkF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAogCiBQbGF0Zm9ybUltYWdlUHRyIFNjYWxhYmxl
SW1hZ2VEZWNvZGVyOjpjcmVhdGVGcmFtZUltYWdlQXRJbmRleChzaXplX3QgaW5kZXgsIFN1YnNh
bXBsaW5nTGV2ZWwsIGNvbnN0IERlY29kaW5nT3B0aW9ucyYpCiB7Ci0gICAgTG9ja2VyIGxvY2tl
ciB7IG1fbXV0ZXggfTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgLy8gWmVy
by1oZWlnaHQgaW1hZ2VzIGNhbiBjYXVzZSBwcm9ibGVtcyBmb3Igc29tZSBwb3J0cy4gSWYgd2Ug
aGF2ZSBhbiBlbXB0eSBpbWFnZSBkaW1lbnNpb24sIGp1c3QgYmFpbC4KICAgICBpZiAoc2l6ZSgp
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJsZUltYWdlRGVjb2Rlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFnZURlY29k
ZXIuaAppbmRleCBmY2YwYTYxMTVkZDg2YzE0NzU5YjJiMjFhN2M3MWM3OGU5ZjRjZjRhLi41MDI4
Y2JhYmQ4NmUwODViNGM1Y2VhZTEyZDJmODgzMDBiZTg0MDE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJsZUltYWdlRGVjb2Rlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL1NjYWxhYmxlSW1hZ2VE
ZWNvZGVyLmgKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJTY2FsYWJsZUltYWdlRGVjb2Rl
ckZyYW1lLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgc2V0RGF0YShTaGFyZWRCdWZmZXImIGRhdGEsIGJvb2wgYWxsRGF0YVJlY2Vp
dmVkKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbXV0ZXggfTsK
KyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICBpZiAobV9lbmNvZGVk
RGF0YVN0YXR1cyA9PSBFbmNvZGVkRGF0YVN0YXR1czo6RXJyb3IpCiAgICAgICAgICAgICByZXR1
cm47CiAKQEAgLTE5Niw4ICsxOTYsOCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBSZWZQ
dHI8U2hhcmVkQnVmZmVyOjpEYXRhU2VnbWVudD4gbV9kYXRhOwotICAgIFZlY3RvcjxTY2FsYWJs
ZUltYWdlRGVjb2RlckZyYW1lLCAxPiBtX2ZyYW1lQnVmZmVyQ2FjaGU7Ci0gICAgbXV0YWJsZSBM
b2NrIG1fbXV0ZXg7CisgICAgVmVjdG9yPFNjYWxhYmxlSW1hZ2VEZWNvZGVyRnJhbWUsIDE+IG1f
ZnJhbWVCdWZmZXJDYWNoZSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jayk7CisgICAgbXV0YWJs
ZSBDaGVja2VkTG9jayBtX2xvY2s7CiAgICAgYm9vbCBtX3ByZW11bHRpcGx5QWxwaGE7CiAgICAg
Ym9vbCBtX2lnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlOwogICAgIEltYWdlT3JpZW50YXRpb24g
bV9vcmllbnRhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5oCmluZGV4IDQ0NTlm
MmUyYTI0MDk5NTcxM2E0MTNjMTg1ZWJmZGQ1YzEzYzFlOTMuLjkwMjMwZDg1NjNiYmI1OTFmY2Zk
ZjA5MjdkZmM4ZTE4MWYxMWUyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suaApA
QCAtMjcsNyArMjcsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNpbmNsdWRlICJN
ZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8
d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MCwxMCArNTAsMTAgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHJlc3VtZVJlY29yZGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwog
ICAgIGNvbnN0IFN0cmluZyYgbWltZVR5cGUoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgZ2Vu
ZXJhdGVNb2NrQ291bnRlclN0cmluZygpOworICAgIHZvaWQgZ2VuZXJhdGVNb2NrQ291bnRlclN0
cmluZygpIFdURl9SRVFVSVJFU19MT0NLKG1fYnVmZmVyTG9jayk7CiAKLSAgICBtdXRhYmxlIExv
Y2sgbV9idWZmZXJMb2NrOwotICAgIFN0cmluZ0J1aWxkZXIgbV9idWZmZXI7CisgICAgbXV0YWJs
ZSBDaGVja2VkTG9jayBtX2J1ZmZlckxvY2s7CisgICAgU3RyaW5nQnVpbGRlciBtX2J1ZmZlciBX
VEZfR1VBUkRFRF9CWV9MT0NLKG1fYnVmZmVyTG9jayk7CiAgICAgdW5zaWduZWQgbV9jb3VudGVy
IHsgMCB9OwogICAgIFN0cmluZyBtX2F1ZGlvVHJhY2tJRDsKICAgICBTdHJpbmcgbV92aWRlb1Ry
YWNrSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJD
b2NvYS5oCmluZGV4IDY2MGI4ZWFmMjJlNzE4NTEwNmQ4N2QzMmI2NjAwZjE4MWIzYjJmZjkuLjYz
ZDEyNmY5OWIwMTJhZTY1NDhhYjM1YWY1OWNhNTFlZTkxODliYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXJDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oCkBAIC0yOSw5ICsyOSw5
IEBACiAjaW5jbHVkZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgogCiAjaW5jbHVkZSAiU2hh
cmVkQnVmZmVyLmgiCisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVkZSA8
d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTExOCw4
ICsxMTgsOCBAQCBwcml2YXRlOgogCiAgICAgUmV0YWluUHRyPEFWQXNzZXRXcml0ZXI+IG1fd3Jp
dGVyOwogCi0gICAgTG9jayBtX2RhdGFMb2NrOwotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1f
ZGF0YTsKKyAgICBDaGVja2VkTG9jayBtX2RhdGFMb2NrOworICAgIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IG1fZGF0YSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fZGF0YUxvY2spOwogICAgIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJiwgZG91YmxlKT4gbV9mZXRjaERh
dGFDb21wbGV0aW9uSGFuZGxlcjsKIAogICAgIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9u
UmVmPiBtX2F1ZGlvRm9ybWF0RGVzY3JpcHRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KaW5kZXggOTIzYTM2MGQ1M2U0ZjU1NDRl
NWIwYmZiOGRmZmJkNTU5NWQ1YTAwYy4uNjRkNzhiNzlkNWI4MTVjOGQ4MzVjNTNhNjIxMjA1NmM0
ODRmODFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXJDb2NvYS5tbQpAQCAtMzcwLDcgKzM3MCw4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6OmZsdXNoQ29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMoRnVuY3Rpb248dm9pZCgpPiYm
CiAgICAgICAgIFttX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dCByZXF1ZXN0TWVkaWFEYXRhV2hlblJl
YWR5T25RdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6YmxvY2suZ2V0
KCldOwogfQogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjbGVhcigpCisvLyBG
SVhNRTogVGhpcyBtb2RpZmllcyBtX2RhdGEgd2l0aG91dCBncmFiYmluZyBtX2RhdGFMb2NrLgor
dm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y2xlYXIoKSBXVEZfSUdOT1JFU19USFJF
QURfU0FGRVRZX0FOQUxZU0lTCiB7CiAgICAgbV9wZW5kaW5nQXVkaW9TYW1wbGVRdWV1ZS5jbGVh
cigpOwogICAgIG1fcGVuZGluZ1ZpZGVvU2FtcGxlUXVldWUuY2xlYXIoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuaAppbmRleCAxZmY0MjAzNjk5Yjk4OGI1YTliOTVmY2U2YWFlNmIwYTg3NTk4M2M5Li5lZjA3
ZWFhODlhNDNjMDExNzk1MTJhMzAzZTIyZDZmYTJhOTA1MGE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5o
CkBAIC00Miw4ICs0Miw4IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUg
IlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCIKICNpbmNsdWRlICJSZWFsdGltZU1l
ZGlhU291cmNlRmFjdG9yeS5oIgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1
ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5j
bHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTI3NiwxMSArMjc2LDExIEBAIHBy
aXZhdGU6CiAgICAgU3RyaW5nIG1fbmFtZTsKICAgICBXZWFrSGFzaFNldDxPYnNlcnZlcj4gbV9v
YnNlcnZlcnM7CiAKLSAgICBtdXRhYmxlIExvY2sgbV9hdWRpb1NhbXBsZU9ic2VydmVyc0xvY2s7
Ci0gICAgSGFzaFNldDxBdWRpb1NhbXBsZU9ic2VydmVyKj4gbV9hdWRpb1NhbXBsZU9ic2VydmVy
czsKKyAgICBtdXRhYmxlIENoZWNrZWRMb2NrIG1fYXVkaW9TYW1wbGVPYnNlcnZlcnNMb2NrOwor
ICAgIEhhc2hTZXQ8QXVkaW9TYW1wbGVPYnNlcnZlcio+IG1fYXVkaW9TYW1wbGVPYnNlcnZlcnMg
V1RGX0dVQVJERURfQllfTE9DSyhtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzTG9jayk7CiAKLSAgICBt
dXRhYmxlIExvY2sgbV92aWRlb1NhbXBsZU9ic2VydmVyc0xvY2s7Ci0gICAgSGFzaFNldDxWaWRl
b1NhbXBsZU9ic2VydmVyKj4gbV92aWRlb1NhbXBsZU9ic2VydmVyczsKKyAgICBtdXRhYmxlIENo
ZWNrZWRMb2NrIG1fdmlkZW9TYW1wbGVPYnNlcnZlcnNMb2NrOworICAgIEhhc2hTZXQ8VmlkZW9T
YW1wbGVPYnNlcnZlcio+IG1fdmlkZW9TYW1wbGVPYnNlcnZlcnMgV1RGX0dVQVJERURfQllfTE9D
SyhtX3ZpZGVvU2FtcGxlT2JzZXJ2ZXJzTG9jayk7CiAKICAgICAvLyBTZXQgb24gdGhlIG1haW4g
dGhyZWFkIGZyb20gY29uc3RyYWludHMuCiAgICAgSW50U2l6ZSBtX3NpemU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZS5oCmluZGV4IGRjM2NhYjJhOGRiYWIzMjlmYjIxYzdlZDc1YTdm
YzI4NzYzMWNlOGQuLjUzMDg1Y2Y1YjQ5ZDg3YmY4YmU0MWVhYjFkZDAwMzUzMDUwNjNjNmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oCkBAIC00MSw2ICs0MSw3IEBAIEFMTE9X
X1VOVVNFRF9QQVJBTUVURVJTX0JFR0lOCiAKIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VORAog
CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBl
ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogCkBAIC0xMjcsOCAr
MTI4LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9lbmFibGVkIHsgdHJ1ZSB9OwogCi0gICAgbXV0YWJsZSBMb2NrIG1fc2lua3NMb2NrOwotICAg
IEhhc2hTZXQ8d2VicnRjOjpBdWRpb1RyYWNrU2lua0ludGVyZmFjZSo+IG1fc2lua3M7CisgICAg
bXV0YWJsZSBDaGVja2VkTG9jayBtX3NpbmtzTG9jazsKKyAgICBIYXNoU2V0PHdlYnJ0Yzo6QXVk
aW9UcmFja1NpbmtJbnRlcmZhY2UqPiBtX3NpbmtzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9zaW5r
c0xvY2spOwogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgc2l6ZV90IG1fY2h1bmtz
U2VudCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKaW5kZXggOGE5MWQ2
NGEwOWY5M2EzNTU1NDljZTk4MDIzOWQyYzNkZDRjM2ZkMi4uNWJkMWRkODUwM2VmNTg1YjJmYTJh
ZDA1M2Q0YmViYWJlMGRjMWU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENNYWNyb3MuaCIKICNpbmNsdWRl
ICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgPFRpbWVyLmg+CisjaW5jbHVk
ZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAKIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lOCiAK
QEAgLTE0MSw4ICsxNDIsOCBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fYmxhY2tGcmFtZVRpbWVy
OwogICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvRnJhbWVCdWZmZXI+IG1fYmxh
Y2tGcmFtZTsKIAotICAgIG11dGFibGUgTG9jayBtX3NpbmtzTG9jazsKLSAgICBIYXNoU2V0PHJ0
Yzo6VmlkZW9TaW5rSW50ZXJmYWNlPHdlYnJ0Yzo6VmlkZW9GcmFtZT4qPiBtX3NpbmtzOworICAg
IG11dGFibGUgQ2hlY2tlZExvY2sgbV9zaW5rc0xvY2s7CisgICAgSGFzaFNldDxydGM6OlZpZGVv
U2lua0ludGVyZmFjZTx3ZWJydGM6OlZpZGVvRnJhbWU+Kj4gbV9zaW5rcyBXVEZfR1VBUkRFRF9C
WV9MT0NLKG1fc2lua3NMb2NrKTsKICAgICBib29sIG1fYXJlU2lua3NBc2tpbmdUb0FwcGx5Um90
YXRpb24geyBmYWxzZSB9OwogCiAgICAgYm9vbCBtX2VuYWJsZWQgeyB0cnVlIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJX
ZWJSVEMuY3BwCmluZGV4IDNiOTA5NTg1OGY1ZmVhNGY4ZWQ2ZDRkMmZhMjBhMmViNWIxYTgwMTcu
LjhjOWNjM2ZhMjUxMTM2NDIyMWFhOGVkOTU3ZWMyM2YxOGZlNTFlNDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJS
VEMuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNl
TGliV2ViUlRDOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lCiAgICAgfQog
CiAgICAgewotICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9hZGFwdGVyTXV0ZXggfTsKKyAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IG1fYWRhcHRlckxvY2sgfTsKICAgICAgICAgY29uc3QgYXV0byYg
c2FtcGxlID0gZGF0YS5nZXRTYW1wbGUoKTsKICAgICAgICAgYXV0byogYnVmZmVyID0gZ3N0X3Nh
bXBsZV9nZXRfYnVmZmVyKHNhbXBsZS5nZXQoKSk7CiAgICAgICAgIGdzdF9hZGFwdGVyX3B1c2go
bV9hZGFwdGVyLmdldCgpLCBnc3RfYnVmZmVyX3JlZihidWZmZXIpKTsKQEAgLTEwMSw3ICsxMDEs
NyBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6cHVsbEF1ZGlv
RGF0YSgpCiAgICAgc2l6ZV90IG91dENodW5rU2FtcGxlQ291bnQgPSBMaWJXZWJSVENBdWRpb0Zv
cm1hdDo6Y2h1bmtTYW1wbGVDb3VudDsKICAgICBzaXplX3Qgb3V0QnVmZmVyU2l6ZSA9IG91dENo
dW5rU2FtcGxlQ291bnQgKiBtX291dHB1dFN0cmVhbURlc2NyaXB0aW9uLmJwZjsKIAotICAgIExv
Y2tlciBsb2NrZXIgeyBtX2FkYXB0ZXJNdXRleCB9OworICAgIExvY2tlciBsb2NrZXIgeyBtX2Fk
YXB0ZXJMb2NrIH07CiAgICAgc2l6ZV90IGluQ2h1bmtTYW1wbGVDb3VudCA9IGdzdF9hdWRpb19j
b252ZXJ0ZXJfZ2V0X2luX2ZyYW1lcyhtX3NhbXBsZUNvbnZlcnRlci5nZXQoKSwgb3V0Q2h1bmtT
YW1wbGVDb3VudCk7CiAgICAgc2l6ZV90IGluQnVmZmVyU2l6ZSA9IGluQ2h1bmtTYW1wbGVDb3Vu
dCAqIG1faW5wdXRTdHJlYW1EZXNjcmlwdGlvbi5icGY7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2VMaWJXZWJSVEMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEMuaAppbmRleCBk
ZTZlZmU5ZjFhNTI1NzE1YmY3YmQ5MGQ4ZTExODE3MWQxZWJlMmRkLi5lMDUzYjAxMGQyN2ZiMGM0
ZjZhOTJhMDZiNDE5M2IyMTYwMTZlZTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlTGli
V2ViUlRDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5oCkBAIC0yNSw2ICsyNSw3
IEBACiAjaW5jbHVkZSAiUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgiCiAKICNpbmNsdWRl
IDxnc3QvYXVkaW8vYXVkaW8uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC01MSw4ICs1Miw4IEBAIHByaXZhdGU6CiAgICAgR3N0QXVk
aW9JbmZvIG1faW5wdXRTdHJlYW1EZXNjcmlwdGlvbjsKICAgICBHc3RBdWRpb0luZm8gbV9vdXRw
dXRTdHJlYW1EZXNjcmlwdGlvbjsKIAotICAgIExvY2sgbV9hZGFwdGVyTXV0ZXg7Ci0gICAgR1Jl
ZlB0cjxHc3RBZGFwdGVyPiBtX2FkYXB0ZXI7CisgICAgQ2hlY2tlZExvY2sgbV9hZGFwdGVyTG9j
azsKKyAgICBHUmVmUHRyPEdzdEFkYXB0ZXI+IG1fYWRhcHRlciBXVEZfR1VBUkRFRF9CWV9MT0NL
KG1fYWRhcHRlckxvY2spOwogICAgIFZlY3Rvcjx1aW50OF90PiBtX2F1ZGlvQnVmZmVyOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnku
Y3BwCmluZGV4IDJiYjdlZjE1YmQ1NzRjZmFjZDc2MjU4ZWJmMzEwYzY0MGM2ZTYwMzIuLjI2ODY3
MGRhMjg0MDljM2RiOGU4NmU4NTljZjFlNjg3ZjM1NTRmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29k
ZXJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAKQEAgLTM0NSw3ICszNDUs
NiBAQCBwcml2YXRlOgogICAgIEdSZWZQdHI8R3N0Q2Fwcz4gbV9yZXN0cmljdGlvbkNhcHM7CiAg
ICAgd2VicnRjOjpFbmNvZGVkSW1hZ2UgbV9lbmNvZGVkRnJhbWU7CiAKLSAgICBMb2NrIG1fYnVm
ZmVyTWFwTG9jazsKICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IG1fc2luazsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2Fw
dHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
VmlkZW9DYXB0dXJlU291cmNlLmgKaW5kZXggZjBjYjc1MGM4ODM1MjlhZmQxMDAwOWJmN2VlMDk0
MTdkZmU2YmJjOS4uMGU0MWNjNDEzZjg0M2ZhMDM5OGExYTE3MjQ0MGQxZTI2NzdiMjdlNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9D
YXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgKQEAgLTEzMiw3ICsxMzIsNiBAQCBwcml2YXRlOgog
ICAgIFJldGFpblB0cjxBVkNhcHR1cmVTZXNzaW9uPiBtX3Nlc3Npb247CiAgICAgUmV0YWluUHRy
PEFWQ2FwdHVyZURldmljZT4gbV9kZXZpY2U7CiAKLSAgICBMb2NrIG1fcHJlc2V0TXV0ZXg7CiAg
ICAgUmVmUHRyPEFWVmlkZW9QcmVzZXQ+IG1fY3VycmVudFByZXNldDsKICAgICBJbnRTaXplIG1f
Y3VycmVudFNpemU7CiAgICAgZG91YmxlIG1fY3VycmVudEZyYW1lUmF0ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKaW5kZXggYWIxOTRkZGYyYzE1MWFk
ZmIyOTQxZGYzMzdiOGY1OGEwNDExOTJmYS4uNGEyNDRjNjVmYTg3ZjFjM2JhOTU4YTJjMDIwZDM0
NTY5NDUyYjY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0
ZURhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFi
YXNlLmgKQEAgLTI4LDggKzI4LDggQEAKIAogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVk
ZSA8c3FsaXRlMy5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0
Zi9FeHBlY3RlZC5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgpAQCAtMTYyLDcgKzE2Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgc3RhdGljIGlu
dCBhdXRob3JpemVyRnVuY3Rpb24odm9pZCosIGludCwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIq
LCBjb25zdCBjaGFyKiwgY29uc3QgY2hhciopOwogCi0gICAgdm9pZCBlbmFibGVBdXRob3JpemVy
KGJvb2wgZW5hYmxlKTsKKyAgICB2b2lkIGVuYWJsZUF1dGhvcml6ZXIoYm9vbCBlbmFibGUpIFdU
Rl9SRVFVSVJFU19MT0NLKG1fYXV0aG9yaXplckxvY2spOwogICAgIHZvaWQgdXNlV0FMSm91cm5h
bE1vZGUoKTsKIAogICAgIGludCBwYWdlU2l6ZSgpOwpAQCAtMTgwLDggKzE4MCw4IEBAIHByaXZh
dGU6CiAKICAgICBib29sIG1fdXNlV0FMIHsgZmFsc2UgfTsKIAotICAgIExvY2sgbV9hdXRob3Jp
emVyTG9jazsKLSAgICBSZWZQdHI8RGF0YWJhc2VBdXRob3JpemVyPiBtX2F1dGhvcml6ZXI7Cisg
ICAgQ2hlY2tlZExvY2sgbV9hdXRob3JpemVyTG9jazsKKyAgICBSZWZQdHI8RGF0YWJhc2VBdXRo
b3JpemVyPiBtX2F1dGhvcml6ZXIgV1RGX0dVQVJERURfQllfTE9DSyhtX2F1dGhvcml6ZXJMb2Nr
KTsKIAogICAgIExvY2sgbV9sb2NraW5nTXV0ZXg7CiAgICAgUmVmUHRyPFRocmVhZD4gbV9vcGVu
aW5nVGhyZWFkIHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1Bh
aW50V29ya2xldEdsb2JhbFNjb3BlLmgKaW5kZXggOWEyYzQ5N2M5Mjk0ODAyZTFlNjdiMjRkMDdh
ZmIyODMxZTIyOGIzNS4uMzcyMGYxZDE1ZTdiYzcyMWJiZjgyOTcxNDQzODkxNjkxYjdjOWY0NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29w
ZS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3BlLmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9TdHJvbmcuaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KIAogbmFtZXNwYWNl
IEpTQyB7CiBjbGFzcyBKU09iamVjdDsKQEAgLTYwLDggKzYxLDggQEAgcHVibGljOgogICAgICAg
ICBjb25zdCBWZWN0b3I8U3RyaW5nPiBpbnB1dEFyZ3VtZW50czsKICAgICB9OwogCi0gICAgSGFz
aE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxQYWludERlZmluaXRpb24+PiYgcGFpbnREZWZp
bml0aW9uTWFwKCkgeyBBU1NFUlQobV9wYWludERlZmluaXRpb25Mb2NrLmlzTG9ja2VkKCkpOyBy
ZXR1cm4gbV9wYWludERlZmluaXRpb25NYXA7IH0KLSAgICBMb2NrJiBwYWludERlZmluaXRpb25M
b2NrKCkgeyByZXR1cm4gbV9wYWludERlZmluaXRpb25Mb2NrOyB9CisgICAgSGFzaE1hcDxTdHJp
bmcsIHN0ZDo6dW5pcXVlX3B0cjxQYWludERlZmluaXRpb24+PiYgcGFpbnREZWZpbml0aW9uTWFw
KCkgV1RGX1JFUVVJUkVTX0xPQ0sobV9wYWludERlZmluaXRpb25Mb2NrKTsKKyAgICBDaGVja2Vk
TG9jayYgcGFpbnREZWZpbml0aW9uTG9jaygpIFdURl9SRVRVUk5TX0xPQ0sobV9wYWludERlZmlu
aXRpb25Mb2NrKSB7IHJldHVybiBtX3BhaW50RGVmaW5pdGlvbkxvY2s7IH0KIAogICAgIHZvaWQg
cHJlcGFyZUZvckRlc3RydWN0aW9uKCkgZmluYWwKICAgICB7CkBAIC05MSwxMSArOTIsMTcgQEAg
cHJpdmF0ZToKIAogICAgIGJvb2wgaXNQYWludFdvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9w
dHI8UGFpbnREZWZpbml0aW9uPj4gbV9wYWludERlZmluaXRpb25NYXA7Ci0gICAgTG9jayBtX3Bh
aW50RGVmaW5pdGlvbkxvY2s7CisgICAgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxQ
YWludERlZmluaXRpb24+PiBtX3BhaW50RGVmaW5pdGlvbk1hcCBXVEZfR1VBUkRFRF9CWV9MT0NL
KG1fcGFpbnREZWZpbml0aW9uTG9jayk7CisgICAgQ2hlY2tlZExvY2sgbV9wYWludERlZmluaXRp
b25Mb2NrOwogICAgIGJvb2wgbV9oYXNQcmVwYXJlZEZvckRlc3RydWN0aW9uIHsgZmFsc2UgfTsK
IH07CiAKK2lubGluZSBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFBhaW50RGVmaW5p
dGlvbj4+JiBwYWludERlZmluaXRpb25NYXAoKQoreworICAgIEFTU0VSVChtX3BhaW50RGVmaW5p
dGlvbkxvY2suaXNMb2NrZWQoKSk7CisgICAgcmV0dXJuIG1fcGFpbnREZWZpbml0aW9uTWFwOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVH
SU4oV2ViQ29yZTo6UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKaW5kZXggMTk1
MjBkOTM4YmY4ZjZlMGQwY2EzNjg1YmNjZjMxMTQ0NjhlMmM4NC4uNDFhNGM4N2RlNjcwMGYxNjdk
M2Q1OWIwMDlmOWU0OWU1NTQ2MDgwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaApAQCAtMzIsNiArMzIsNyBAQAog
I2luY2x1ZGUgIlJUQ0RlY29kZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUlRDRW5jb2Rlcklk
ZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4K
KyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KIAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBD
b25uZWN0aW9uOwpAQCAtODcsOSArODgsOSBAQCBwcml2YXRlOgogCiAgICAgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogCi0gICAgbXV0YWJs
ZSBMb2NrIG1fbG9jazsKLSAgICBIYXNoTWFwPFJUQ0RlY29kZXJJZGVudGlmaWVyLCB3ZWJydGM6
OkxvY2FsRGVjb2Rlcj4gbV9kZWNvZGVyczsKLSAgICBIYXNoTWFwPFJUQ0VuY29kZXJJZGVudGlm
aWVyLCB3ZWJydGM6OkxvY2FsRW5jb2Rlcj4gbV9lbmNvZGVyczsKKyAgICBtdXRhYmxlIENoZWNr
ZWRMb2NrIG1fbG9jazsKKyAgICBIYXNoTWFwPFJUQ0RlY29kZXJJZGVudGlmaWVyLCB3ZWJydGM6
OkxvY2FsRGVjb2Rlcj4gbV9kZWNvZGVycyBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jayk7IC8v
IE9ubHkgbW9kaWZpZWQgb24gdGhlIGxpYldlYlJUQ0NvZGVjc1F1ZXVlIGJ1dCBtYXkgZ2V0IGFj
Y2Vzc2VkIGZyb20gdGhlIG1haW4gdGhyZWFkLgorICAgIEhhc2hNYXA8UlRDRW5jb2RlcklkZW50
aWZpZXIsIHdlYnJ0Yzo6TG9jYWxFbmNvZGVyPiBtX2VuY29kZXJzIFdURl9HVUFSREVEX0JZX0xP
Q0sobV9sb2NrKTsgLy8gT25seSBtb2RpZmllZCBvbiB0aGUgbGliV2ViUlRDQ29kZWNzUXVldWUg
YnV0IG1heSBnZXQgYWNjZXNzZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCiAKICAgICBSZWY8V29y
a1F1ZXVlPiBtX3F1ZXVlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZVRyYW5z
ZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbSBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KaW5kZXgg
ZDQ3Zjg0ZDE4YmQ4NjNjODQ5MjQ5ZjU2MTgxOGY4ZGJiYmVmYTg0ZS4uYjIzMjU4Mjc0NGMxNTg2
MGU5MjUzZWIzZGJlOTI0NGU5MTllODYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCkBAIC0xMTUsNyArMTE1
LDkgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6cmVsZWFzZURlY29kZXIoUlRDRGVjb2Rl
cklkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICAgICAgd2VicnRjOjpyZWxlYXNlTG9jYWxEZWNv
ZGVyKGRlY29kZXIpOwogfQogCi12b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjpkZWNvZGVGcmFt
ZShSVENEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50MzJfdCB0aW1lU3RhbXAsIGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKKy8vIEZvciBwZXJmb3JtYW5jZSByZWFzb25z
LCB0aGlzIGZ1bmN0aW9uIGFjY2Vzc2VzIG1fZGVjb2RlcnMgd2l0aG91dCBsb2NraW5nLiBUaGlz
IGlzIHNhZmUgYmVjYXVzZSB0aGlzIGZ1bmN0aW9uIHJ1bnMgb24gdGhlIGxpYldlYlJUQ0NvZGVj
c1F1ZXVlCisvLyBhbmQgbV9kZWNvZGVycyBvbmx5IGdldCBtb2RpZmllZCBvbiB0aGlzIHF1ZXVl
Lgordm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6ZGVjb2RlRnJhbWUoUlRDRGVjb2RlcklkZW50
aWZpZXIgaWRlbnRpZmllciwgdWludDMyX3QgdGltZVN0YW1wLCBjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmIGRhdGEpIFdURl9JR05PUkVTX1RIUkVBRF9TQUZFVFlfQU5BTFlTSVMKIHsKICAgICBB
U1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAgICAgQVNTRVJUKG1fZGVjb2RlcnMuY29udGFpbnMo
aWRlbnRpZmllcikpOwpAQCAtMTI3LDcgKzEyOSw5IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzUHJv
eHk6OmRlY29kZUZyYW1lKFJUQ0RlY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQzMl90
CiAgICAgICAgIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjpGYWlsZWREZWNvZGluZyB7IGlkZW50aWZpZXIgfSwg
MCk7CiB9CiAKLXZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OnNldEZyYW1lU2l6ZShSVENEZWNv
ZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50MTZfdCB3aWR0aCwgdWludDE2X3QgaGVpZ2h0
KQorLy8gRm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIHRoaXMgZnVuY3Rpb24gYWNjZXNzZXMgbV9k
ZWNvZGVycyB3aXRob3V0IGxvY2tpbmcuIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHRoaXMgZnVuY3Rp
b24gcnVucyBvbiB0aGUgbGliV2ViUlRDQ29kZWNzUXVldWUKKy8vIGFuZCBtX2RlY29kZXJzIG9u
bHkgZ2V0IG1vZGlmaWVkIG9uIHRoaXMgcXVldWUuCit2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5
OjpzZXRGcmFtZVNpemUoUlRDRGVjb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDE2X3Qg
d2lkdGgsIHVpbnQxNl90IGhlaWdodCkgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJ
UwogewogICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKICAgICBBU1NFUlQobV9kZWNvZGVy
cy5jb250YWlucyhpZGVudGlmaWVyKSk7CkBAIC0xNjQsNyArMTY4LDkgQEAgdm9pZCBMaWJXZWJS
VENDb2RlY3NQcm94eTo6cmVsZWFzZUVuY29kZXIoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRp
ZmllcikKICAgICAgICAgd2VicnRjOjpyZWxlYXNlTG9jYWxFbmNvZGVyKGVuY29kZXIpOwogfQog
Ci12b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5Ojppbml0aWFsaXplRW5jb2RlcihSVENFbmNvZGVy
SWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50MTZfdCB3aWR0aCwgdWludDE2X3QgaGVpZ2h0LCB1
bnNpZ25lZCBzdGFydEJpdHJhdGUsIHVuc2lnbmVkIG1heEJpdHJhdGUsIHVuc2lnbmVkIG1pbkJp
dHJhdGUsIHVpbnQzMl90IG1heEZyYW1lcmF0ZSkKKy8vIEZvciBwZXJmb3JtYW5jZSByZWFzb25z
LCB0aGlzIGZ1bmN0aW9uIGFjY2Vzc2VzIG1fZW5jb2RlcnMgd2l0aG91dCBsb2NraW5nLiBUaGlz
IGlzIHNhZmUgYmVjYXVzZSB0aGlzIGZ1bmN0aW9uIHJ1bnMgb24gdGhlIGxpYldlYlJUQ0NvZGVj
c1F1ZXVlCisvLyBhbmQgbV9lbmNvZGVycyBvbmx5IGdldCBtb2RpZmllZCBvbiB0aGlzIHF1ZXVl
Lgordm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6aW5pdGlhbGl6ZUVuY29kZXIoUlRDRW5jb2Rl
cklkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDE2X3Qgd2lkdGgsIHVpbnQxNl90IGhlaWdodCwg
dW5zaWduZWQgc3RhcnRCaXRyYXRlLCB1bnNpZ25lZCBtYXhCaXRyYXRlLCB1bnNpZ25lZCBtaW5C
aXRyYXRlLCB1aW50MzJfdCBtYXhGcmFtZXJhdGUpIFdURl9JR05PUkVTX1RIUkVBRF9TQUZFVFlf
QU5BTFlTSVMKIHsKICAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAgICAgQVNTRVJUKG1f
ZW5jb2RlcnMuY29udGFpbnMoaWRlbnRpZmllcikpOwpAQCAtMTkxLDcgKzE5Nyw5IEBAIHN0YXRp
YyBpbmxpbmUgd2VicnRjOjpWaWRlb1JvdGF0aW9uIHRvV2ViUlRDVmlkZW9Sb3RhdGlvbihXZWJD
b3JlOjpNZWRpYVNhbXBsZTo6CiAgICAgcmV0dXJuIHdlYnJ0Yzo6a1ZpZGVvUm90YXRpb25fMDsK
IH0KIAotdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6ZW5jb2RlRnJhbWUoUlRDRW5jb2Rlcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJiBzYW1wbGUs
IHVpbnQzMl90IHRpbWVTdGFtcCwgYm9vbCBzaG91bGRFbmNvZGVBc0tleUZyYW1lKQorLy8gRm9y
IHBlcmZvcm1hbmNlIHJlYXNvbnMsIHRoaXMgZnVuY3Rpb24gYWNjZXNzZXMgbV9lbmNvZGVycyB3
aXRob3V0IGxvY2tpbmcuIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gcnVucyBv
biB0aGUgbGliV2ViUlRDQ29kZWNzUXVldWUKKy8vIGFuZCBtX2VuY29kZXJzIG9ubHkgZ2V0IG1v
ZGlmaWVkIG9uIHRoaXMgcXVldWUuCit2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjplbmNvZGVG
cmFtZShSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZW1vdGVWaWRl
b1NhbXBsZSYmIHNhbXBsZSwgdWludDMyX3QgdGltZVN0YW1wLCBib29sIHNob3VsZEVuY29kZUFz
S2V5RnJhbWUpIFdURl9JR05PUkVTX1RIUkVBRF9TQUZFVFlfQU5BTFlTSVMKIHsKICAgICBBU1NF
UlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAgICAgQVNTRVJUKG1fZW5jb2RlcnMuY29udGFpbnMoaWRl
bnRpZmllcikpOwpAQCAtMjA4LDcgKzIxNiw5IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6
OmVuY29kZUZyYW1lKFJUQ0VuY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6CiAj
ZW5kaWYKIH0KIAotdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6c2V0RW5jb2RlUmF0ZXMoUlRD
RW5jb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDMyX3QgYml0UmF0ZSwgdWludDMyX3Qg
ZnJhbWVSYXRlKQorLy8gRm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIHRoaXMgZnVuY3Rpb24gYWNj
ZXNzZXMgbV9lbmNvZGVycyB3aXRob3V0IGxvY2tpbmcuIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHRo
aXMgZnVuY3Rpb24gcnVucyBvbiB0aGUgbGliV2ViUlRDQ29kZWNzUXVldWUKKy8vIGFuZCBtX2Vu
Y29kZXJzIG9ubHkgZ2V0IG1vZGlmaWVkIG9uIHRoaXMgcXVldWUuCit2b2lkIExpYldlYlJUQ0Nv
ZGVjc1Byb3h5OjpzZXRFbmNvZGVSYXRlcyhSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVy
LCB1aW50MzJfdCBiaXRSYXRlLCB1aW50MzJfdCBmcmFtZVJhdGUpIFdURl9JR05PUkVTX1RIUkVB
RF9TQUZFVFlfQU5BTFlTSVMKIHsKICAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAgICAg
YXV0byBlbmNvZGVyID0gbV9lbmNvZGVycy5nZXQoaWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2dsaWIvRE5TQ2FjaGUuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvZ2xpYi9ETlNDYWNoZS5oCmluZGV4IDJiNzhmMzhjMWZlN2E3Zjhm
ZjJlMzk0MTRkMDY1MmZhMzhmYzgzY2IuLjRmZTIxOTkwMWYyYjNlMGQ4NjEzNmNiZDk5NDcxNzY1
NDE5MjIwZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvZ2xpYi9E
TlNDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvZ2xpYi9ETlNDYWNo
ZS5oCkBAIC0yNSw4ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0No
ZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlv
bmFsLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KQEAgLTU2LDEzICs1NiwxMyBAQCBwcml2
YXRlOgogCiAgICAgdXNpbmcgRE5TQ2FjaGVNYXAgPSBIYXNoTWFwPENTdHJpbmcsIENhY2hlZFJl
c3BvbnNlPjsKIAotICAgIEROU0NhY2hlTWFwJiBtYXBGb3JUeXBlKFR5cGUpOworICAgIEROU0Nh
Y2hlTWFwJiBtYXBGb3JUeXBlKFR5cGUpIFdURl9SRVFVSVJFU19MT0NLKG1fbG9jayk7CiAgICAg
dm9pZCByZW1vdmVFeHBpcmVkUmVzcG9uc2VzRmlyZWQoKTsKICAgICB2b2lkIHJlbW92ZUV4cGly
ZWRSZXNwb25zZXNJbk1hcChETlNDYWNoZU1hcCYpOwogICAgIHZvaWQgcHJ1bmVSZXNwb25zZXNJ
bk1hcChETlNDYWNoZU1hcCYpOwogCi0gICAgTG9jayBtX2xvY2s7Ci0gICAgRE5TQ2FjaGVNYXAg
bV9kbnNNYXA7CisgICAgQ2hlY2tlZExvY2sgbV9sb2NrOworICAgIEROU0NhY2hlTWFwIG1fZG5z
TWFwIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKTsKICNpZiBHTElCX0NIRUNLX1ZFUlNJT04o
MiwgNTksIDApCiAgICAgRE5TQ2FjaGVNYXAgbV9pcHY0TWFwOwogICAgIEROU0NhY2hlTWFwIG1f
aXB2Nk1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1h
dFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMv
TWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuY3BwCmluZGV4IDI1Nzg2OTM2OGJl
ODczODY2M2VkZjQzZjgwYzczZGM0Yzg1MDFkOTkuLmM1YTRjYzA5Y2Y4NzE3YTI0ZWUxODVkY2Zj
YTNiZjZjYjllNDQzN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRp
YUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNwcApAQCAtMTQ1
LDYgKzE0NSw3IEBAIE9wdGlvbmFsPHR5cGVuYW1lIE9yZGVyZWRNYXA6Oml0ZXJhdG9yPiBNZWRp
YVNhbXBsZUN1cnNvcjo6bG9jYXRlSXRlcmF0b3IoT3JkZXJlCiAgICAgdXNpbmcgSXRlcmF0b3Ig
PSB0eXBlbmFtZSBPcmRlcmVkTWFwOjppdGVyYXRvcjsKICAgICByZXR1cm4gV1RGOjpzd2l0Y2hP
bihtX2xvY2F0b3IsCiAgICAgICAgIFsmXShjb25zdCBNZWRpYVRpbWUmIHByZXNlbnRhdGlvblRp
bWUpIC0+IE9wdGlvbmFsPEl0ZXJhdG9yPiB7CisgICAgICAgICAgICBhc3NlcnRJc0hlbGQobV9s
b2NhdG9yTG9jayk7CiAgICAgICAgICAgICBhdXRvIGl0ZXJhdG9yID0gdXBwZXJCb3VuZChzYW1w
bGVzLCBwcmVzZW50YXRpb25UaW1lKTsKICAgICAgICAgICAgIGlmIChpdGVyYXRvciA9PSBzYW1w
bGVzLmJlZ2luKCkpCiAgICAgICAgICAgICAgICAgbV9sb2NhdG9yID0gV1RGTW92ZShpdGVyYXRv
cik7CkBAIC0xNTUsNiArMTU2LDcgQEAgT3B0aW9uYWw8dHlwZW5hbWUgT3JkZXJlZE1hcDo6aXRl
cmF0b3I+IE1lZGlhU2FtcGxlQ3Vyc29yOjpsb2NhdGVJdGVyYXRvcihPcmRlcmUKICAgICAgICAg
ICAgIHJldHVybiBsb2NhdGVJdGVyYXRvcihzYW1wbGVzLCBoYXNBbGxTYW1wbGVzKTsKICAgICAg
ICAgfSwKICAgICAgICAgWyZdKGNvbnN0IGF1dG8mIG90aGVySXRlcmF0b3IpIHsKKyAgICAgICAg
ICAgIGFzc2VydElzSGVsZChtX2xvY2F0b3JMb2NrKTsKICAgICAgICAgICAgIG1fbG9jYXRvciA9
IG90aGVySXRlcmF0b3ItPnNlY29uZC0+cHJlc2VudGF0aW9uVGltZSgpOwogICAgICAgICAgICAg
cmV0dXJuIGxvY2F0ZUl0ZXJhdG9yKHNhbXBsZXMsIGhhc0FsbFNhbXBsZXMpOwogICAgICAgICB9
LApAQCAtMTY5LDYgKzE3MSw3IEBAIE1lZGlhU2FtcGxlKiBNZWRpYVNhbXBsZUN1cnNvcjo6bG9j
YXRlTWVkaWFTYW1wbGUoU2FtcGxlTWFwJiBzYW1wbGVzLCBib29sIGhhc0FsCiAgICAgQVNTRVJU
KG1fbG9jYXRvckxvY2suaXNMb2NrZWQoKSk7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9s
b2NhdG9yLAogICAgICAgICBbJl0oY29uc3QgTWVkaWFUaW1lJikgLT4gTWVkaWFTYW1wbGUqIHsK
KyAgICAgICAgICAgIGFzc2VydElzSGVsZChtX2xvY2F0b3JMb2NrKTsKICAgICAgICAgICAgIGF1
dG8gaXRlcmF0b3IgPSBsb2NhdGVJdGVyYXRvcihzYW1wbGVzLnByZXNlbnRhdGlvbk9yZGVyKCks
IGhhc0FsbFNhbXBsZXMpOwogICAgICAgICAgICAgaWYgKCFpdGVyYXRvcikKICAgICAgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE4NSw2ICsxODgsNyBAQCBNZWRpYVNhbXBsZUN1cnNv
cjo6VGltaW5nIE1lZGlhU2FtcGxlQ3Vyc29yOjpsb2NhdGVUaW1pbmcoU2FtcGxlTWFwJiBzYW1w
bGVzLCBibwogICAgIEFTU0VSVChtX2xvY2F0b3JMb2NrLmlzTG9ja2VkKCkpOwogICAgIHJldHVy
biBXVEY6OnN3aXRjaE9uKG1fbG9jYXRvciwKICAgICAgICAgWyZdKGNvbnN0IE1lZGlhVGltZSYg
cHJlc2VudGF0aW9uVGltZSkgeworICAgICAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jYXRvckxv
Y2spOwogICAgICAgICAgICAgaWYgKGxvY2F0ZU1lZGlhU2FtcGxlKHNhbXBsZXMsIGhhc0FsbFNh
bXBsZXMpKQogICAgICAgICAgICAgICAgIHJldHVybiBsb2NhdGVUaW1pbmcoc2FtcGxlcywgaGFz
QWxsU2FtcGxlcyk7CiAgICAgICAgICAgICBhdXRvJiBjbGFtcGVkUHJlc2VudGF0aW9uVGltZSA9
IHN0ZDo6bWluKHByZXNlbnRhdGlvblRpbWUsIG1fdHJhY2tSZWFkZXItPmR1cmF0aW9uKCkpOwpA
QCAtMjA4LDYgKzIxMiw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIE9yZGVyZWRNYXA+CiBPU1N0YXR1
cyBNZWRpYVNhbXBsZUN1cnNvcjo6c3RlcEluT3JkZXJlZE1hcChpbnQ2NF90IHN0ZXBzVG9UYWtl
LCBpbnQ2NF90JiBzdGVwc1Rha2VuKQogewogICAgIHJldHVybiBnZXRTYW1wbGVNYXAoWyZdKFNh
bXBsZU1hcCYgc2FtcGxlcywgYm9vbCBoYXNBbGxTYW1wbGVzKSAtPiBPU1N0YXR1cyB7CisgICAg
ICAgIGFzc2VydElzSGVsZChtX2xvY2F0b3JMb2NrKTsKICAgICAgICAgYXV0byYgb3JkZXJlZE1h
cCA9IG9yZGVyZWRTYW1wbGVzPE9yZGVyZWRNYXA+KHNhbXBsZXMpOwogICAgICAgICBpZiAoYXV0
byBpdGVyYXRvciA9IGxvY2F0ZUl0ZXJhdG9yKG9yZGVyZWRNYXAsIGhhc0FsbFNhbXBsZXMpKSB7
CiAgICAgICAgICAgICBhdXRvIHN0ZXBzUmVtYWluaW5nID0gc3RlcEl0ZXJhdG9yKHN0ZXBzVG9U
YWtlLCAqaXRlcmF0b3IsIG9yZGVyZWRNYXApOwpAQCAtMjIyLDYgKzIyNyw3IEBAIE9TU3RhdHVz
IE1lZGlhU2FtcGxlQ3Vyc29yOjpzdGVwSW5PcmRlcmVkTWFwKGludDY0X3Qgc3RlcHNUb1Rha2Us
IGludDY0X3QmIHN0ZXBzCiBPU1N0YXR1cyBNZWRpYVNhbXBsZUN1cnNvcjo6c3RlcEluUHJlc2Vu
dGF0aW9uVGltZShjb25zdCBNZWRpYVRpbWUmIGRlbHRhLCBCb29sZWFuJiB3YXNQaW5uZWQpCiB7
CiAgICAgcmV0dXJuIGdldFNhbXBsZU1hcChbJl0oU2FtcGxlTWFwJiBzYW1wbGVzLCBib29sIGhh
c0FsbFNhbXBsZXMpIC0+IE9TU3RhdHVzIHsKKyAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jYXRv
ckxvY2spOwogICAgICAgICBhdXRvIHRpbWluZyA9IGxvY2F0ZVRpbWluZyhzYW1wbGVzLCBoYXNB
bGxTYW1wbGVzKTsKICAgICAgICAgd2FzUGlubmVkID0gc3RlcFRpbWUoZGVsdGEsIHRpbWluZy5w
cmVzZW50YXRpb25UaW1lLCBzYW1wbGVzLnByZXNlbnRhdGlvbk9yZGVyKCksIGhhc0FsbFNhbXBs
ZXMsIG1fdHJhY2tSZWFkZXItPmR1cmF0aW9uKCkpOwogICAgICAgICBtX2xvY2F0b3IgPSB0aW1p
bmcucHJlc2VudGF0aW9uVGltZTsKQEAgLTI0Nyw2ICsyNTMsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBGdW5jdGlvbj4KIE9TU3RhdHVzIE1lZGlhU2FtcGxlQ3Vyc29yOjpnZXRNZWRpYVNhbXBsZShG
dW5jdGlvbiYmIGZ1bmN0aW9uKSBjb25zdAogewogICAgIHJldHVybiBnZXRTYW1wbGVNYXAoWyZd
KFNhbXBsZU1hcCYgc2FtcGxlcywgYm9vbCBoYXNBbGxTYW1wbGVzKSAtPiBPU1N0YXR1cyB7Cisg
ICAgICAgIGFzc2VydElzSGVsZChtX2xvY2F0b3JMb2NrKTsKICAgICAgICAgYXV0byBzYW1wbGUg
PSBsb2NhdGVNZWRpYVNhbXBsZShzYW1wbGVzLCBoYXNBbGxTYW1wbGVzKTsKICAgICAgICAgaWYg
KCFzYW1wbGUpCiAgICAgICAgICAgICByZXR1cm4ga01UUGx1Z2luU2FtcGxlQ3Vyc29yRXJyb3Jf
TG9jYXRpb25Ob3RBdmFpbGFibGU7CkBAIC0yNjAsNiArMjY3LDcgQEAgdGVtcGxhdGU8dHlwZW5h
bWUgRnVuY3Rpb24+CiBPU1N0YXR1cyBNZWRpYVNhbXBsZUN1cnNvcjo6Z2V0VGltaW5nKEZ1bmN0
aW9uJiYgZnVuY3Rpb24pIGNvbnN0CiB7CiAgICAgcmV0dXJuIGdldFNhbXBsZU1hcChbJl0oU2Ft
cGxlTWFwJiBzYW1wbGVzLCBib29sIGhhc0FsbFNhbXBsZXMpIHsKKyAgICAgICAgYXNzZXJ0SXNI
ZWxkKG1fbG9jYXRvckxvY2spOwogICAgICAgICBhdXRvIHRpbWluZyA9IGxvY2F0ZVRpbWluZyhz
YW1wbGVzLCBoYXNBbGxTYW1wbGVzKTsKICAgICAgICAgREVCVUdfTE9HKExPR0lERU5USUZJRVIs
ICJkZWNvZGVUaW1lOiAiLCB0aW1pbmcuZGVjb2RlVGltZSwgIiwgcHJlc2VudGF0aW9uVGltZTog
IiwgdGltaW5nLnByZXNlbnRhdGlvblRpbWUsICIsIGR1cmF0aW9uOiAiLCB0aW1pbmcuZHVyYXRp
b24pOwogICAgICAgICBmdW5jdGlvbih0aW1pbmcpOwpAQCAtMzgyLDYgKzM5MCw3IEBAIE9TU3Rh
dHVzIE1lZGlhU2FtcGxlQ3Vyc29yOjpjb3B5U2FtcGxlTG9jYXRpb24oTVRQbHVnaW5TYW1wbGVD
dXJzb3JTdG9yYWdlUmFuZ2UqCiBPU1N0YXR1cyBNZWRpYVNhbXBsZUN1cnNvcjo6Z2V0UGxheWFi
bGVIb3Jpem9uKENNVGltZSogcGxheWFibGVIb3Jpem9uKSBjb25zdAogewogICAgIHJldHVybiBn
ZXRTYW1wbGVNYXAoWyZdKFNhbXBsZU1hcCYgc2FtcGxlcywgYm9vbCBoYXNBbGxTYW1wbGVzKSB7
CisgICAgICAgIGFzc2VydElzSGVsZChtX2xvY2F0b3JMb2NrKTsKICAgICAgICAgTWVkaWFTYW1w
bGUmIGxhc3RTYW1wbGUgPSAqc2FtcGxlcy5kZWNvZGVPcmRlcigpLnJiZWdpbigpLT5zZWNvbmQ7
CiAgICAgICAgIGF1dG8gdGltaW5nID0gbG9jYXRlVGltaW5nKHNhbXBsZXMsIGhhc0FsbFNhbXBs
ZXMpOwogICAgICAgICAqcGxheWFibGVIb3Jpem9uID0gUEFMOjp0b0NNVGltZShsYXN0U2FtcGxl
LnByZXNlbnRhdGlvblRpbWUoKSArIGxhc3RTYW1wbGUuZHVyYXRpb24oKSAtIHRpbWluZy5wcmVz
ZW50YXRpb25UaW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRp
YUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmgKaW5kZXggNjg3YjEzMDA0
N2E4MjMzYzQ0MTMzZDM2Y2I2OGIxZjUxMWUzMzJlNi4uYjE3Y2Q5MDM3NzgzMzg0YTYxOGE1NWE2
NzkwYzlkZWUyNjZkZGVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01l
ZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmgKQEAgLTI5LDYg
KzI5LDcgQEAKIAogI2luY2x1ZGUgIkNvcmVNZWRpYVdyYXBwZWQuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL1NhbXBsZU1hcC5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUg
PHd0Zi9NZWRpYVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCkBAIC03MSw5ICs3
Miw5IEBAIHByaXZhdGU6CiAgICAgTWVkaWFTYW1wbGVDdXJzb3IoQWxsb2NhdG9yJiYsIE1lZGlh
VHJhY2tSZWFkZXImLCBMb2NhdG9yKTsKICAgICBNZWRpYVNhbXBsZUN1cnNvcihBbGxvY2F0b3Im
JiwgY29uc3QgTWVkaWFTYW1wbGVDdXJzb3ImKTsKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9y
ZGVyZWRNYXA+IE9wdGlvbmFsPHR5cGVuYW1lIE9yZGVyZWRNYXA6Oml0ZXJhdG9yPiBsb2NhdGVJ
dGVyYXRvcihPcmRlcmVkTWFwJiwgYm9vbCBoYXNBbGxTYW1wbGVzKSBjb25zdDsKLSAgICBXZWJD
b3JlOjpNZWRpYVNhbXBsZSogbG9jYXRlTWVkaWFTYW1wbGUoV2ViQ29yZTo6U2FtcGxlTWFwJiwg
Ym9vbCBoYXNBbGxTYW1wbGVzKSBjb25zdDsKLSAgICBUaW1pbmcgbG9jYXRlVGltaW5nKFdlYkNv
cmU6OlNhbXBsZU1hcCYsIGJvb2wgaGFzQWxsU2FtcGxlcykgY29uc3Q7CisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgT3JkZXJlZE1hcD4gT3B0aW9uYWw8dHlwZW5hbWUgT3JkZXJlZE1hcDo6aXRlcmF0
b3I+IGxvY2F0ZUl0ZXJhdG9yKE9yZGVyZWRNYXAmLCBib29sIGhhc0FsbFNhbXBsZXMpIGNvbnN0
IFdURl9SRVFVSVJFU19MT0NLKG1fbG9jYXRvckxvY2spOworICAgIFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlKiBsb2NhdGVNZWRpYVNhbXBsZShXZWJDb3JlOjpTYW1wbGVNYXAmLCBib29sIGhhc0FsbFNh
bXBsZXMpIGNvbnN0IFdURl9SRVFVSVJFU19MT0NLKG1fbG9jYXRvckxvY2spOworICAgIFRpbWlu
ZyBsb2NhdGVUaW1pbmcoV2ViQ29yZTo6U2FtcGxlTWFwJiwgYm9vbCBoYXNBbGxTYW1wbGVzKSBj
b25zdCBXVEZfUkVRVUlSRVNfTE9DSyhtX2xvY2F0b3JMb2NrKTsKIAogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEZ1bmN0aW9uPiBPU1N0YXR1cyBnZXRTYW1wbGVNYXAoRnVuY3Rpb24mJikgY29uc3Q7
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb24+IE9TU3RhdHVzIGdldE1lZGlhU2FtcGxl
KEZ1bmN0aW9uJiYpIGNvbnN0OwpAQCAtMTA1LDggKzEwNiw4IEBAIHByaXZhdGU6CiAgICAgV1RG
TG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0OwogCiAgICAgUmVmPE1lZGlhVHJhY2tSZWFk
ZXI+IG1fdHJhY2tSZWFkZXI7Ci0gICAgbXV0YWJsZSBMb2NhdG9yIG1fbG9jYXRvcjsKLSAgICBt
dXRhYmxlIExvY2sgbV9sb2NhdG9yTG9jazsKKyAgICBtdXRhYmxlIExvY2F0b3IgbV9sb2NhdG9y
IFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NhdG9yTG9jayk7CisgICAgbXV0YWJsZSBDaGVja2Vk
TG9jayBtX2xvY2F0b3JMb2NrOwogICAgIFJlZjxjb25zdCBXVEY6OkxvZ2dlcj4gbV9sb2dnZXI7
CiAgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOwogfTsK
</data>
<flag name="commit-queue"
          id="450670"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429474</attachid>
            <date>2021-05-23 13:12:05 -0700</date>
            <delta_ts>2021-05-23 13:34:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226152-20210523131204.patch</filename>
            <type>text/plain</type>
            <size>47129</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MzQ5YWMzMmM3ZDU1MzYyODgzNmUxNzFjMGUyYWNmOTg4Y2YyNzE3Li40YzQxMWI5YmRiY2YyODAx
ZmUxY2RjNmJlM2YyYTg3NTkwMDcxYjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFVzZSBDaGVja2VkTG9jayBpbiBldmVuIG1vcmUgcGxhY2VzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNTIKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBVc2UgQ2hlY2tlZExvY2sgaW4gZXZl
biBtb3JlIHBsYWNlcyB0byBiZW5lZml0IGZyb20gQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNp
cy4KKworICAgICAgICAqIEFQSS9KU1ZpcnR1YWxNYWNoaW5lLm1tOgorICAgICAgICAoV1RGX1JF
UVVJUkVTX0xPQ0spOgorICAgICAgICAqIEFQSS9nbGliL0pTQ1ZpcnR1YWxNYWNoaW5lLmNwcDoK
KyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oOgorICAgICAgICAqIGJ5dGVj
b2RlL1N1cGVyU2FtcGxlci5jcHA6CisgICAgICAgICogZGZnL0RGR0NvbW1vbkRhdGEuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkNvbW1vbkRhdGE6OmludmFsaWRhdGUpOgorICAgICAgICAoSlND
OjpERkc6OkNvbW1vbkRhdGE6On5Db21tb25EYXRhKToKKyAgICAgICAgKEpTQzo6REZHOjpDb21t
b25EYXRhOjppbnN0YWxsVk1UcmFwQnJlYWtwb2ludHMpOgorICAgICAgICAoSlNDOjpERkc6OmNv
ZGVCbG9ja0ZvclZNVHJhcFBDKToKKyAgICAgICAgKiBkZmcvREZHUGxhbi5oOgorICAgICAgICAo
SlNDOjpERkc6OlBsYW46OldURl9HVUFSREVEX0JZX0xPQ0spOgorICAgICAgICAqIGRpc2Fzc2Vt
Ymxlci9EaXNhc3NlbWJsZXIuY3BwOgorICAgICAgICAqIGhlYXAvQmxvY2tEaXJlY3RvcnkuY3Bw
OgorICAgICAgICAoSlNDOjpCbG9ja0RpcmVjdG9yeTo6cGFyYWxsZWxOb3RFbXB0eUJsb2NrU291
cmNlKToKKyAgICAgICAgKiBoZWFwL0hlYXAuaDoKKyAgICAgICAgKiBoZWFwL0lzb1N1YnNwYWNl
UGVyVk0uaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0
b3JDb25uZWN0aW9uQ2xpZW50Lmg6CisKIDIwMjEtMDUtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBp
bmNvbXBhdGlibGUgd2l0aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggODkyY2FkOTdjMDBmYmFjYzZmOWVmODg4OTQ3ZWFlZDM4NDAwZDMzYy4uNWRiYTVmZmZmYzA5
MmJkMGNhODI2ZTEzYWI4MGYyZDJiMmFmY2FmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBA
CisyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
VXNlIENoZWNrZWRMb2NrIGluIGV2ZW4gbW9yZSBwbGFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE1MgorCisgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgorCisgICAgICAgIFVzZSBDaGVja2VkTG9jayBpbiBldmVuIG1vcmUgcGxh
Y2VzIHRvIGJlbmVmaXQgZnJvbSBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLgorCisgICAg
ICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFnZURlY29kZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2NhbGFibGVJbWFnZURlY29kZXI6OmZyYW1lSXNDb21wbGV0ZUF0
SW5kZXggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NhbGFibGVJbWFnZURlY29kZXI6OmZy
YW1lSGFzQWxwaGFBdEluZGV4IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjYWxhYmxlSW1h
Z2VEZWNvZGVyOjpmcmFtZUJ5dGVzQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y2FsYWJsZUltYWdlRGVjb2Rlcjo6ZnJhbWVEdXJhdGlvbkF0SW5kZXggY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U2NhbGFibGVJbWFnZURlY29kZXI6OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJsZUltYWdlRGVjb2Rl
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZh
dGVNb2NrLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2lu
Z0F1ZGlvU291cmNlTGliV2ViUlRDLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6cHVsbEF1
ZGlvRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaDoKKyAgICAgICAgKiB3b3Jr
bGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5oOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkg
YXMgaXQgaXMgaW5jb21wYXRpYmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCBkNjUzYjc5MjlmZDU2NDlmM2NjNDY2NDk0NDMyMmE4MDI5MzQzZDcxLi40NmQz
NjBjZmYzNGYwMjdlZWQzNjk3ODlmNDU2MjYzYTAyYWFjZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI2IEBACisyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgVXNlIENoZWNrZWRMb2NrIGluIGV2ZW4gbW9yZSBwbGFjZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE1MgorCisgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFVzZSBDaGVja2VkTG9jayBpbiBldmVuIG1v
cmUgcGxhY2VzIHRvIGJlbmVmaXQgZnJvbSBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLgor
CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaDoKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9nbGliL0ROU0NhY2hlLmg6CisgICAgICAgICogU2hhcmVkL21h
Yy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhU2FtcGxlQ3Vyc29yOjpsb2NhdGVJdGVyYXRvciBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhU2FtcGxlQ3Vyc29yOjpsb2NhdGVNZWRpYVNhbXBsZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhU2FtcGxlQ3Vyc29yOjpsb2NhdGVUaW1pbmcgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpNZWRpYVNhbXBsZUN1cnNvcjo6c3RlcEluT3JkZXJlZE1hcCk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhU2FtcGxlQ3Vyc29yOjpzdGVwSW5QcmVzZW50YXRpb25UaW1lKToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFTYW1wbGVDdXJzb3I6OmdldE1lZGlhU2FtcGxlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFTYW1wbGVDdXJzb3I6OmdldFRpbWluZyBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhU2FtcGxlQ3Vyc29yOjpnZXRQbGF5YWJsZUhvcml6b24g
Y29uc3QpOgorICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1w
bGVDdXJzb3IuaDoKKwogMjAyMS0wNS0yMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBJbXBsZW1lbnQgcGFnZSBjbGllbnQgaG9vayBmb3Ig
cmVxdWVzdGluZyBpbWFnZSBleHRyYWN0aW9uIHJlc3VsdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbQppbmRleCBjMjA5N2MyYTg5NjA1MTY4NGQ5Y2Vk
OWRjY2U2ODliNDFjYTE2NmE1Li5mNjEzNDk4YWM4MmM3Y2Y5MzE2ZDM4NjJiYjc2YWUwYjQ5YzEz
MTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hp
bmUubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lLm1t
CkBAIC0zOCwxMiArMzgsMTIgQEAKICNpbXBvcnQgIlNpZ2lsbENyYXNoQW5hbHl6ZXIuaCIKICNp
bXBvcnQgIlNsb3RWaXNpdG9ySW5saW5lcy5oIgogI2ltcG9ydCA8bXV0ZXg+Ci0jaW1wb3J0IDx3
dGYvTG9jay5oPgorI2ltcG9ydCA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CiAKIHN0YXRpYyBOU01hcFRhYmxlICpnbG9iYWxXcmFwcGVyQ2FjaGUgPSAwOwog
Ci1zdGF0aWMgTG9jayB3cmFwcGVyQ2FjaGVNdXRleDsKK3N0YXRpYyBDaGVja2VkTG9jayB3cmFw
cGVyQ2FjaGVNdXRleDsKIAogc3RhdGljIHZvaWQgaW5pdFdyYXBwZXJDYWNoZSgpCiB7CkBAIC01
Myw3ICs1Myw3IEBAIHN0YXRpYyB2b2lkIGluaXRXcmFwcGVyQ2FjaGUoKQogICAgIGdsb2JhbFdy
YXBwZXJDYWNoZSA9IFtbTlNNYXBUYWJsZSBhbGxvY10gaW5pdFdpdGhLZXlPcHRpb25zOmtleU9w
dGlvbnMgdmFsdWVPcHRpb25zOnZhbHVlT3B0aW9ucyBjYXBhY2l0eTowXTsKIH0KIAotc3RhdGlj
IE5TTWFwVGFibGUgKndyYXBwZXJDYWNoZSgpCitzdGF0aWMgTlNNYXBUYWJsZSAqd3JhcHBlckNh
Y2hlKCkgV1RGX1JFUVVJUkVTX0xPQ0sod3JhcHBlckNhY2hlTXV0ZXgpCiB7CiAgICAgaWYgKCFn
bG9iYWxXcmFwcGVyQ2FjaGUpCiAgICAgICAgIGluaXRXcmFwcGVyQ2FjaGUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWaXJ0dWFsTWFjaGluZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDVmlydHVhbE1hY2hpbmUuY3BwCmlu
ZGV4IDQzMWE3MTBkZTM3Y2MxZjAzZTk3Njk5ZjFiMmIxZDUwMjIzNGNiZTEuLjUxMDVkMjc3MGZk
ZGFkN2RiM2QwMTE5MjM4YjMyMjJlMDc2YWRkOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvZ2xpYi9KU0NWaXJ0dWFsTWFjaGluZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9nbGliL0pTQ1ZpcnR1YWxNYWNoaW5lLmNwcApAQCAtMjMsNiArMjMsNyBA
QAogI2luY2x1ZGUgIkpTQ0NvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiSlNDVmlydHVhbE1h
Y2hpbmVQcml2YXRlLmgiCiAjaW5jbHVkZSAiSlNDb250ZXh0UmVmLmgiCisjaW5jbHVkZSA8d3Rm
L0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgpAQCAtNDgs
OSArNDksOSBAQCBzdHJ1Y3QgX0pTQ1ZpcnR1YWxNYWNoaW5lUHJpdmF0ZSB7CiAKIFdFQktJVF9E
RUZJTkVfVFlQRShKU0NWaXJ0dWFsTWFjaGluZSwganNjX3ZpcnR1YWxfbWFjaGluZSwgR19UWVBF
X09CSkVDVCkKIAotc3RhdGljIExvY2sgd3JhcHBlckNhY2hlTXV0ZXg7CitzdGF0aWMgQ2hlY2tl
ZExvY2sgd3JhcHBlckNhY2hlTXV0ZXg7CiAKLXN0YXRpYyBIYXNoTWFwPEpTQ29udGV4dEdyb3Vw
UmVmLCBKU0NWaXJ0dWFsTWFjaGluZSo+JiB3cmFwcGVyTWFwKCkKK3N0YXRpYyBIYXNoTWFwPEpT
Q29udGV4dEdyb3VwUmVmLCBKU0NWaXJ0dWFsTWFjaGluZSo+JiB3cmFwcGVyTWFwKCkgV1RGX1JF
UVVJUkVTX0xPQ0sod3JhcHBlckNhY2hlTXV0ZXgpCiB7CiAgICAgc3RhdGljIExhenlOZXZlckRl
c3Ryb3llZDxIYXNoTWFwPEpTQ29udGV4dEdyb3VwUmVmLCBKU0NWaXJ0dWFsTWFjaGluZSo+PiBz
aGFyZWQ7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCmluZGV4IGY1Nzdk
MjEyM2YzYjYwYjE4MmM0OWZhNzg1YjBmZGJhNTFlYjY5NzkuLmViMzY1NmZjYmQ1NTA1NmFiYjZm
YzU1OTg5ZDFmZDY5MWFmZjBkZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAi
U3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oIgogI2luY2x1ZGUgIlN0dWJJbmZvU3Vt
bWFyeS5oIgogI2luY2x1ZGUgPHd0Zi9Cb3guaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2su
aD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTMzOSw3ICszNDAsNyBAQCBwcml2YXRlOgogICAg
IC8vIE5vdGUgdGhhdCBpdCdzIGFsd2F5cyBzYWZlIHRvIGNsZWFyIHRoaXMuIElmIHdlIGNsZWFy
IGl0IHByZW1hdHVyZWx5LCB0aGVuIGlmIHdlIHNlZSB0aGUgc2FtZQogICAgIC8vIHN0cnVjdHVy
ZSBhZ2FpbiBkdXJpbmcgdGhpcyBidWZmZXJpbmcgY291bnRkb3duLCB3ZSB3aWxsIGNyZWF0ZSBh
biBBY2Nlc3NDYXNlIG9iamVjdCBmb3IgaXQuCiAgICAgLy8gVGhhdCdzIG5vdCBzbyBiYWQgLSB3
ZSdsbCBnZXQgcmlkIG9mIHRoZSByZWR1bmRhbnQgb25lcyBvbmNlIHdlIHJlZ2VuZXJhdGUuCi0g
ICAgSGFzaFNldDxCdWZmZXJlZFN0cnVjdHVyZSwgQnVmZmVyZWRTdHJ1Y3R1cmU6Okhhc2gsIEJ1
ZmZlcmVkU3RydWN0dXJlOjpLZXlUcmFpdHM+IG1fYnVmZmVyZWRTdHJ1Y3R1cmVzOworICAgIEhh
c2hTZXQ8QnVmZmVyZWRTdHJ1Y3R1cmUsIEJ1ZmZlcmVkU3RydWN0dXJlOjpIYXNoLCBCdWZmZXJl
ZFN0cnVjdHVyZTo6S2V5VHJhaXRzPiBtX2J1ZmZlcmVkU3RydWN0dXJlcyBXVEZfR1VBUkRFRF9C
WV9MT0NLKG1fYnVmZmVyZWRTdHJ1Y3R1cmVzTG9jayk7CiBwdWJsaWM6CiAgICAgQ29kZUxvY2F0
aW9uTGFiZWw8SklUU3R1YlJvdXRpbmVQdHJUYWc+IHN0YXJ0OyAvLyBUaGlzIGlzIGVpdGhlciB0
aGUgc3RhcnQgb2YgdGhlIGlubGluZSBJQyBmb3IgKmJ5SWQgY2FjaGVzLiBvciB0aGUgbG9jYXRp
b24gb2YgcGF0Y2hhYmxlIGp1bXAgZm9yICdpbnN0YW5jZW9mJyBjYWNoZXMuCiAgICAgQ29kZUxv
Y2F0aW9uTGFiZWw8SlNJbnRlcm5hbFB0clRhZz4gZG9uZUxvY2F0aW9uOwpAQCAtMzkxLDcgKzM5
Miw3IEBAIHB1YmxpYzoKICAgICBib29sIHByb3BlcnR5SXNJbnQzMiA6IDE7CiAgICAgYm9vbCBw
cm9wZXJ0eUlzU3ltYm9sIDogMTsKIHByaXZhdGU6Ci0gICAgTG9jayBtX2J1ZmZlcmVkU3RydWN0
dXJlc0xvY2s7CisgICAgQ2hlY2tlZExvY2sgbV9idWZmZXJlZFN0cnVjdHVyZXNMb2NrOwogfTsK
IAogaW5saW5lIENvZGVPcmlnaW4gZ2V0U3RydWN0dXJlU3R1YkluZm9Db2RlT3JpZ2luKFN0cnVj
dHVyZVN0dWJJbmZvJiBzdHJ1Y3R1cmVTdHViSW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TdXBlclNhbXBsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1N1cGVyU2FtcGxlci5jcHAKaW5kZXggYTQyNjQwZjI4NjMyNjk3Mjc5ZGM0
OWEzY2U1MWVmYzM5ZWMxYTM5MC4uZjZlZGI4NDY4NGQ1ZjUyOGZkNjhhZmFhMDE1NGZjZDg1Mjdi
ZWYyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N1cGVyU2Ft
cGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N1cGVyU2FtcGxl
ci5jcHAKQEAgLTI3LDggKzI3LDggQEAKICNpbmNsdWRlICJTdXBlclNhbXBsZXIuaCIKIAogI2lu
Y2x1ZGUgIk9wdGlvbnMuaCIKKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRl
IDx3dGYvRGF0YUxvZy5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTM2LDkgKzM2LDkgQEAgbmFtZXNwYWNl
IEpTQyB7CiB2b2xhdGlsZSB1aW50MzJfdCBnX3N1cGVyU2FtcGxlckNvdW50Owogdm9sYXRpbGUg
Ym9vbCBnX3N1cGVyU2FtcGxlckVuYWJsZWQ7CiAKLXN0YXRpYyBMb2NrIGxvY2s7Ci1zdGF0aWMg
ZG91YmxlIGluOwotc3RhdGljIGRvdWJsZSBvdXQ7CitzdGF0aWMgQ2hlY2tlZExvY2sgbG9jazsK
K3N0YXRpYyBkb3VibGUgaW4gV1RGX0dVQVJERURfQllfTE9DSyhsb2NrKTsKK3N0YXRpYyBkb3Vi
bGUgb3V0IFdURl9HVUFSREVEX0JZX0xPQ0sobG9jayk7CiAKIHZvaWQgaW5pdGlhbGl6ZVN1cGVy
U2FtcGxlcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nv
bW1vbkRhdGEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb25EYXRhLmNw
cAppbmRleCAyN2VkZjFjODFhNTM4MzhmMWI4YjZjZTkwMDNlYzQ2ZDczNDliNTkwLi45NzFmOGIw
NWE4N2U0NTY2NjU2YTlmMTNhOTlkODhkNmYwYTI3MDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbkRhdGEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ29tbW9uRGF0YS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJJ
bmxpbmVDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1
ZGUgIlRyYWNrZWRSZWZlcmVuY2VzLmgiCisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgREZHIHsKQEAgLTQ0LDggKzQ1LDggQEAgdm9pZCBDb21tb25EYXRhOjpzaHJpbmtUb0ZpdCgp
CiAgICAgbV9qdW1wUmVwbGFjZW1lbnRzLnNocmlua1RvRml0KCk7CiB9CiAKLXN0YXRpYyBMb2Nr
IHBjQ29kZUJsb2NrTWFwTG9jazsKLWlubGluZSBIYXNoTWFwPHZvaWQqLCBDb2RlQmxvY2sqPiYg
cGNDb2RlQmxvY2tNYXAoQWJzdHJhY3RMb2NrZXImKQorc3RhdGljIENoZWNrZWRMb2NrIHBjQ29k
ZUJsb2NrTWFwTG9jazsKK2lubGluZSBIYXNoTWFwPHZvaWQqLCBDb2RlQmxvY2sqPiYgcGNDb2Rl
QmxvY2tNYXAoKSBXVEZfUkVRVUlSRVNfTE9DSyhwY0NvZGVCbG9ja01hcExvY2spCiB7CiAgICAg
c3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxIYXNoTWFwPHZvaWQqLCBDb2RlQmxvY2sqPj4gcGND
b2RlQmxvY2tNYXA7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CkBAIC02Miw3
ICs2Myw3IEBAIGJvb2wgQ29tbW9uRGF0YTo6aW52YWxpZGF0ZSgpCiAKICAgICBpZiAoVU5MSUtF
TFkoaGFzVk1UcmFwc0JyZWFrcG9pbnRzSW5zdGFsbGVkKSkgewogICAgICAgICBMb2NrZXIgbG9j
a2VyIHsgcGNDb2RlQmxvY2tNYXBMb2NrIH07Ci0gICAgICAgIGF1dG8mIG1hcCA9IHBjQ29kZUJs
b2NrTWFwKGxvY2tlcik7CisgICAgICAgIGF1dG8mIG1hcCA9IHBjQ29kZUJsb2NrTWFwKCk7CiAg
ICAgICAgIGZvciAoYXV0byYganVtcFJlcGxhY2VtZW50IDogbV9qdW1wUmVwbGFjZW1lbnRzKQog
ICAgICAgICAgICAgbWFwLnJlbW92ZShqdW1wUmVwbGFjZW1lbnQuZGF0YUxvY2F0aW9uKCkpOwog
ICAgICAgICBoYXNWTVRyYXBzQnJlYWtwb2ludHNJbnN0YWxsZWQgPSBmYWxzZTsKQEAgLTc4LDcg
Kzc5LDcgQEAgQ29tbW9uRGF0YTo6fkNvbW1vbkRhdGEoKQogewogICAgIGlmIChVTkxJS0VMWSho
YXNWTVRyYXBzQnJlYWtwb2ludHNJbnN0YWxsZWQpKSB7CiAgICAgICAgIExvY2tlciBsb2NrZXIg
eyBwY0NvZGVCbG9ja01hcExvY2sgfTsKLSAgICAgICAgYXV0byYgbWFwID0gcGNDb2RlQmxvY2tN
YXAobG9ja2VyKTsKKyAgICAgICAgYXV0byYgbWFwID0gcGNDb2RlQmxvY2tNYXAoKTsKICAgICAg
ICAgZm9yIChhdXRvJiBqdW1wUmVwbGFjZW1lbnQgOiBtX2p1bXBSZXBsYWNlbWVudHMpCiAgICAg
ICAgICAgICBtYXAucmVtb3ZlKGp1bXBSZXBsYWNlbWVudC5kYXRhTG9jYXRpb24oKSk7CiAgICAg
fQpAQCAtOTEsNyArOTIsNyBAQCB2b2lkIENvbW1vbkRhdGE6Omluc3RhbGxWTVRyYXBCcmVha3Bv
aW50cyhDb2RlQmxvY2sqIG93bmVyKQogICAgICAgICByZXR1cm47CiAgICAgaGFzVk1UcmFwc0Jy
ZWFrcG9pbnRzSW5zdGFsbGVkID0gdHJ1ZTsKIAotICAgIGF1dG8mIG1hcCA9IHBjQ29kZUJsb2Nr
TWFwKGxvY2tlcik7CisgICAgYXV0byYgbWFwID0gcGNDb2RlQmxvY2tNYXAoKTsKICNpZiAhZGVm
aW5lZChOREVCVUcpCiAgICAgLy8gV2UgbmVlZCB0byBiZSBhYmxlIHRvIGhhbmRsZSBtb3JlIHRo
YW4gb25lIGludmFsaWRhdGlvbiBwb2ludCBhdCB0aGUgc2FtZSBwYwogICAgIC8vIGJ1dCB3ZSB3
YW50IHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBmb3JnZXQgdG8gcmVtb3ZlIGEgcGMgZnJvbSB0aGUg
bWFwLgpAQCAtMTEzLDcgKzExNCw3IEBAIENvZGVCbG9jayogY29kZUJsb2NrRm9yVk1UcmFwUEMo
dm9pZCogcGMpCiB7CiAgICAgQVNTRVJUKGlzSklUUEMocGMpKTsKICAgICBMb2NrZXIgbG9ja2Vy
IHsgcGNDb2RlQmxvY2tNYXBMb2NrIH07Ci0gICAgYXV0byYgbWFwID0gcGNDb2RlQmxvY2tNYXAo
bG9ja2VyKTsKKyAgICBhdXRvJiBtYXAgPSBwY0NvZGVCbG9ja01hcCgpOwogICAgIGF1dG8gcmVz
dWx0ID0gbWFwLmZpbmQocGMpOwogICAgIGlmIChyZXN1bHQgPT0gbWFwLmVuZCgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHUGxhbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgKaW5kZXggMTcy
YTcyZDljYjdiNTM3MTIzMDAyMjY0ZDM1MjA2NWM0NzUzOGJmNy4uYzFlYjcxMmEyODYxNjE3MDJj
YmJjOGRiODAxMzMyODI5NTAxNzI5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdQbGFuLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgK
QEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJPcGVyYW5kcy5oIgogI2luY2x1ZGUgIlByb2Zp
bGVyQ29tcGlsYXRpb24uaCIKICNpbmNsdWRlICJSZWNvcmRlZFN0YXR1c2VzLmgiCisjaW5jbHVk
ZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIApAQCAtMTM3LDggKzEzOCw4IEBAIHByaXZh
dGU6CiAgICAgQ29kZUJsb2NrKiBtX3Byb2ZpbGVkREZHQ29kZUJsb2NrOwogCiAgICAgT3BlcmFu
ZHM8T3B0aW9uYWw8SlNWYWx1ZT4+IG1fbXVzdEhhbmRsZVZhbHVlczsKLSAgICBib29sIG1fbXVz
dEhhbmRsZVZhbHVlc01heUluY2x1ZGVHYXJiYWdlIHsgdHJ1ZSB9OwotICAgIExvY2sgbV9tdXN0
SGFuZGxlVmFsdWVDbGVhbmluZ0xvY2s7CisgICAgYm9vbCBtX211c3RIYW5kbGVWYWx1ZXNNYXlJ
bmNsdWRlR2FyYmFnZSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbXVzdEhhbmRsZVZhbHVlQ2xlYW5p
bmdMb2NrKSB7IHRydWUgfTsKKyAgICBDaGVja2VkTG9jayBtX211c3RIYW5kbGVWYWx1ZUNsZWFu
aW5nTG9jazsKIAogICAgIGJvb2wgbV93aWxsVHJ5VG9UaWVyVXAgeyBmYWxzZSB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5jcHAK
aW5kZXggNTVjMDVjODEyMjlmMzU5MzZmZjEzNDdjZGRmNDU0ZjNhZmI2YWM5MC4uN2I2Yzg5MzU3
OTJhMzBiMDUyOGY1M2I4NzFjN2UzMTY3OGU2MTdkOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9EaXNhc3NlbWJsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNwcApAQCAtMjcsMTAgKzI3LDEw
IEBACiAjaW5jbHVkZSAiRGlzYXNzZW1ibGVyLmgiCiAKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYuaCIKLSNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0No
ZWNrZWRDb25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRl
IDx3dGYvRGF0YUxvZy5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgogCkBAIC0xMDksOSArMTA5LDkgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAg
IH0KICAgICAKLSAgICBMb2NrIG1fbG9jazsKLSAgICBDb25kaXRpb24gbV9jb25kaXRpb247Ci0g
ICAgRGVxdWU8c3RkOjp1bmlxdWVfcHRyPERpc2Fzc2VtYmx5VGFzaz4+IG1fcXVldWU7CisgICAg
Q2hlY2tlZExvY2sgbV9sb2NrOworICAgIENoZWNrZWRDb25kaXRpb24gbV9jb25kaXRpb247Cisg
ICAgRGVxdWU8c3RkOjp1bmlxdWVfcHRyPERpc2Fzc2VtYmx5VGFzaz4+IG1fcXVldWUgV1RGX0dV
QVJERURfQllfTE9DSyhtX2xvY2spOwogICAgIGJvb2wgbV93b3JraW5nIHsgZmFsc2UgfTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrRGlyZWN0b3J5
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrRGlyZWN0b3J5LmNwcAppbmRl
eCA2YzI0MmI4NjNiY2VjZDczZTgzMGE2M2EzNWZlMjAwMGQwYTIzNzk5Li5hZGI3NTdlM2Q2MDU4
NDY1NTlmYTFmMjk2YzM3OWYwOWIyYTI4OTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvQmxvY2tEaXJlY3RvcnkuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiU3Vi
c3BhY2VJbmxpbmVzLmgiCiAjaW5jbHVkZSAiU3VwZXJTYW1wbGVyLmgiCiAKKyNpbmNsdWRlIDx3
dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb25UcmFpdHMuaD4KICNpbmNs
dWRlIDx3dGYvU2ltcGxlU3RhdHMuaD4KIApAQCAtMzQzLDkgKzM0NCw5IEBAIFJlZlB0cjxTaGFy
ZWRUYXNrPE1hcmtlZEJsb2NrOjpIYW5kbGUqKCk+PiBCbG9ja0RpcmVjdG9yeTo6cGFyYWxsZWxO
b3RFbXB0eUJsb2NrCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
QmxvY2tEaXJlY3RvcnkmIG1fZGlyZWN0b3J5OwotICAgICAgICBzaXplX3QgbV9pbmRleCB7IDAg
fTsKLSAgICAgICAgTG9jayBtX2xvY2s7CisgICAgICAgIEJsb2NrRGlyZWN0b3J5JiBtX2RpcmVj
dG9yeSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jayk7CisgICAgICAgIHNpemVfdCBtX2luZGV4
IFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKSB7IDAgfTsKKyAgICAgICAgQ2hlY2tlZExvY2sg
bV9sb2NrOwogICAgICAgICBib29sIG1fZG9uZSB7IGZhbHNlIH07CiAgICAgfTsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuaAppbmRleCA5M2FhMjhiZGI3MGY2ODhiYzk1NGZlM2ZjYTcz
N2M0MjcyNDMzNjNmLi43YTUzZTA1MTVkMDY5NjUzZDA0ZmI5YmFjMzU1OGQ3ZTgxZDk1ZjJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAi
U3luY2hyb25vdXNuZXNzLmgiCiAjaW5jbHVkZSAiV2Vha0hhbmRsZU93bmVyLmgiCiAjaW5jbHVk
ZSA8d3RmL0F1dG9tYXRpY1RocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgog
I2luY2x1ZGUgPHd0Zi9Db25jdXJyZW50UHRySGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1
ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgpAQCAtNjQ4LDcgKzY0OSw3IEBA
IHByaXZhdGU6CiAgICAgLy8gb25lIEdDIHRvIHRoZSBuZXh0LiBHQyBtYXJraW5nIHRocmVhZHMg
Y2xhaW0gdGhlc2UgYXQgdGhlIHN0YXJ0IG9mIG1hcmtpbmcsIGFuZCByZXR1cm4KICAgICAvLyB0
aGVtIGF0IHRoZSBlbmQuCiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxTbG90VmlzaXRvcj4+
IG1fcGFyYWxsZWxTbG90VmlzaXRvcnM7Ci0gICAgVmVjdG9yPFNsb3RWaXNpdG9yKj4gbV9hdmFp
bGFibGVQYXJhbGxlbFNsb3RWaXNpdG9yczsKKyAgICBWZWN0b3I8U2xvdFZpc2l0b3IqPiBtX2F2
YWlsYWJsZVBhcmFsbGVsU2xvdFZpc2l0b3JzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9wYXJhbGxl
bFNsb3RWaXNpdG9yTG9jayk7CiAgICAgCiAgICAgSGFuZGxlU2V0IG1faGFuZGxlU2V0OwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxDb2RlQmxvY2tTZXQ+IG1fY29kZUJsb2NrczsKQEAgLTY1Niw3ICs2
NTcsNyBAQCBwcml2YXRlOgogICAgIENGaW5hbGl6ZXJPd25lciBtX2NGaW5hbGl6ZXJPd25lcjsK
ICAgICBMYW1iZGFGaW5hbGl6ZXJPd25lciBtX2xhbWJkYUZpbmFsaXplck93bmVyOwogICAgIAot
ICAgIExvY2sgbV9wYXJhbGxlbFNsb3RWaXNpdG9yTG9jazsKKyAgICBDaGVja2VkTG9jayBtX3Bh
cmFsbGVsU2xvdFZpc2l0b3JMb2NrOwogICAgIGJvb2wgbV9pc1NhZmVUb0NvbGxlY3QgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9pc1NodXR0aW5nRG93biB7IGZhbHNlIH07CiAgICAgYm9vbCBtX211
dGF0b3JTaG91bGRCZUZlbmNlZCB7IE9wdGlvbnM6OmZvcmNlRmVuY2VkQmFycmllcigpIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmgKaW5kZXggNGE5
OWE4ODVmOTYxYjk3ZWJiYTc4YzJhNWI3NWNkNzY0NGE1NmNlZi4uYTk2YzI5Nzk1NmU3MjllNGFm
NGIxZWI0MTMzYWM4OTY2NTE3NzRmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSXNvU3Vic3BhY2VQZXJWTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0lzb1N1YnNwYWNlUGVyVk0uaApAQCAtMjYsOSArMjYsOSBAQAogI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlICJJc29TdWJzcGFjZS5oIgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2lu
Y2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVk
ZSA8d3RmL0xvY2suaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTYyLDggKzYyLDggQEAgcHJp
dmF0ZToKICAgICBjbGFzcyBBdXRvcmVtb3ZpbmdJc29TdWJzcGFjZTsKICAgICBmcmllbmQgY2xh
c3MgQXV0b3JlbW92aW5nSXNvU3Vic3BhY2U7CiAKLSAgICBMb2NrIG1fbG9jazsKLSAgICBIYXNo
TWFwPFZNKiwgSXNvU3Vic3BhY2UqPiBtX3N1YnNwYWNlUGVyVk07CisgICAgQ2hlY2tlZExvY2sg
bV9sb2NrOworICAgIEhhc2hNYXA8Vk0qLCBJc29TdWJzcGFjZSo+IG1fc3Vic3BhY2VQZXJWTSBX
VEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jayk7CiAgICAgRnVuY3Rpb248U3Vic3BhY2VQYXJhbWV0
ZXJzKFZNJik+IG1fc3Vic3BhY2VQYXJhbWV0ZXJzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvckNv
bm5lY3Rpb25DbGllbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3Rl
L3NvY2tldC9SZW1vdGVJbnNwZWN0b3JDb25uZWN0aW9uQ2xpZW50LmgKaW5kZXggMWM3NTRjYTY4
MGY1ODVkNTdmNDM3OTkyZGI4MWUxYmY3YjljMjkwNy4uZTg0NmZmM2ZkOTkyM2M5ZWE2OWVlY2Q4
OTNlYzgzMzJjZTI1ZDY0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvckNvbm5lY3Rpb25DbGllbnQuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5z
cGVjdG9yQ29ubmVjdGlvbkNsaWVudC5oCkBAIC0zMCw5ICszMCw5IEBACiAjaW5jbHVkZSAiUmVt
b3RlQ29udHJvbGxhYmxlVGFyZ2V0LmgiCiAjaW5jbHVkZSAiUmVtb3RlSW5zcGVjdG9yTWVzc2Fn
ZVBhcnNlci5oIgogI2luY2x1ZGUgIlJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgiCisj
aW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewpAQCAtNjUs
OCArNjUsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBzdGF0aWMgT3B0aW9uYWw8RXZlbnQ+IGV4dHJh
Y3RFdmVudChDb25uZWN0aW9uSUQsIFZlY3Rvcjx1aW50OF90PiYmKTsKIAotICAgIEhhc2hNYXA8
Q29ubmVjdGlvbklELCBNZXNzYWdlUGFyc2VyPiBtX3BhcnNlcnM7Ci0gICAgTG9jayBtX3BhcnNl
cnNMb2NrOworICAgIEhhc2hNYXA8Q29ubmVjdGlvbklELCBNZXNzYWdlUGFyc2VyPiBtX3BhcnNl
cnMgV1RGX0dVQVJERURfQllfTE9DSyhtX3BhcnNlcnNMb2NrKTsKKyAgICBDaGVja2VkTG9jayBt
X3BhcnNlcnNMb2NrOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJsZUltYWdlRGVj
b2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJs
ZUltYWdlRGVjb2Rlci5jcHAKaW5kZXggZjJjZWIwMDBhZDQwN2M0ZWI2MjM1N2NjYTBjMDIyYTVi
NzFhNTkwNS4uZGRiMTE0Mzk0NzQ0MGQ3MTdlODMzY2JkM2M3ZDZkYzIxYTIwM2JlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFn
ZURlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L1NjYWxhYmxlSW1hZ2VEZWNvZGVyLmNwcApAQCAtMTcwLDcgKzE3MCw3IEBAIFJlZlB0cjxTY2Fs
YWJsZUltYWdlRGVjb2Rlcj4gU2NhbGFibGVJbWFnZURlY29kZXI6OmNyZWF0ZShTaGFyZWRCdWZm
ZXImIGRhdGEsIEFsCiAKIGJvb2wgU2NhbGFibGVJbWFnZURlY29kZXI6OmZyYW1lSXNDb21wbGV0
ZUF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAogewotICAgIExvY2tlciBsb2NrZXIgeyBtX211
dGV4IH07CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIGlmIChpbmRleCA+PSBt
X2ZyYW1lQnVmZmVyQ2FjaGUuc2l6ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTE4
MCw3ICsxODAsNyBAQCBib29sIFNjYWxhYmxlSW1hZ2VEZWNvZGVyOjpmcmFtZUlzQ29tcGxldGVB
dEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKIAogYm9vbCBTY2FsYWJsZUltYWdlRGVjb2Rlcjo6
ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAogewotICAgIExvY2tlciBs
b2NrZXIgeyBtX211dGV4IH07CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIGlm
IChtX2ZyYW1lQnVmZmVyQ2FjaGUuc2l6ZSgpIDw9IGluZGV4KQogICAgICAgICByZXR1cm4gdHJ1
ZTsKIApAQCAtMTkyLDcgKzE5Miw3IEBAIGJvb2wgU2NhbGFibGVJbWFnZURlY29kZXI6OmZyYW1l
SGFzQWxwaGFBdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKIAogdW5zaWduZWQgU2NhbGFibGVJ
bWFnZURlY29kZXI6OmZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCBpbmRleCwgU3Vic2FtcGxpbmdM
ZXZlbCkgY29uc3QKIHsKLSAgICBMb2NrZXIgbG9ja2VyIHsgbV9tdXRleCB9OworICAgIExvY2tl
ciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICBpZiAobV9mcmFtZUJ1ZmZlckNhY2hlLnNpemUoKSA8
PSBpbmRleCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgLy8gRklYTUU6IFVzZSB0aGUgZGltZW5z
aW9uIG9mIHRoZSByZXF1ZXN0ZWQgZnJhbWUuCkBAIC0yMDEsNyArMjAxLDcgQEAgdW5zaWduZWQg
U2NhbGFibGVJbWFnZURlY29kZXI6OmZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCBpbmRleCwgU3Vi
c2FtcGxpbmdMZXZlbCkKIAogU2Vjb25kcyBTY2FsYWJsZUltYWdlRGVjb2Rlcjo6ZnJhbWVEdXJh
dGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAogewotICAgIExvY2tlciBsb2NrZXIgeyBt
X211dGV4IH07CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIGlmIChpbmRleCA+
PSBtX2ZyYW1lQnVmZmVyQ2FjaGUuc2l6ZSgpKQogICAgICAgICByZXR1cm4gMF9zOwogCkBAIC0y
MjEsNyArMjIxLDcgQEAgU2Vjb25kcyBTY2FsYWJsZUltYWdlRGVjb2Rlcjo6ZnJhbWVEdXJhdGlv
bkF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAogCiBQbGF0Zm9ybUltYWdlUHRyIFNjYWxhYmxl
SW1hZ2VEZWNvZGVyOjpjcmVhdGVGcmFtZUltYWdlQXRJbmRleChzaXplX3QgaW5kZXgsIFN1YnNh
bXBsaW5nTGV2ZWwsIGNvbnN0IERlY29kaW5nT3B0aW9ucyYpCiB7Ci0gICAgTG9ja2VyIGxvY2tl
ciB7IG1fbXV0ZXggfTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgLy8gWmVy
by1oZWlnaHQgaW1hZ2VzIGNhbiBjYXVzZSBwcm9ibGVtcyBmb3Igc29tZSBwb3J0cy4gSWYgd2Ug
aGF2ZSBhbiBlbXB0eSBpbWFnZSBkaW1lbnNpb24sIGp1c3QgYmFpbC4KICAgICBpZiAoc2l6ZSgp
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJsZUltYWdlRGVjb2Rlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFnZURlY29k
ZXIuaAppbmRleCBmY2YwYTYxMTVkZDg2YzE0NzU5YjJiMjFhN2M3MWM3OGU5ZjRjZjRhLi41MDI4
Y2JhYmQ4NmUwODViNGM1Y2VhZTEyZDJmODgzMDBiZTg0MDE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJsZUltYWdlRGVjb2Rlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL1NjYWxhYmxlSW1hZ2VE
ZWNvZGVyLmgKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJTY2FsYWJsZUltYWdlRGVjb2Rl
ckZyYW1lLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgc2V0RGF0YShTaGFyZWRCdWZmZXImIGRhdGEsIGJvb2wgYWxsRGF0YVJlY2Vp
dmVkKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbXV0ZXggfTsK
KyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICBpZiAobV9lbmNvZGVk
RGF0YVN0YXR1cyA9PSBFbmNvZGVkRGF0YVN0YXR1czo6RXJyb3IpCiAgICAgICAgICAgICByZXR1
cm47CiAKQEAgLTE5Niw4ICsxOTYsOCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBSZWZQ
dHI8U2hhcmVkQnVmZmVyOjpEYXRhU2VnbWVudD4gbV9kYXRhOwotICAgIFZlY3RvcjxTY2FsYWJs
ZUltYWdlRGVjb2RlckZyYW1lLCAxPiBtX2ZyYW1lQnVmZmVyQ2FjaGU7Ci0gICAgbXV0YWJsZSBM
b2NrIG1fbXV0ZXg7CisgICAgVmVjdG9yPFNjYWxhYmxlSW1hZ2VEZWNvZGVyRnJhbWUsIDE+IG1f
ZnJhbWVCdWZmZXJDYWNoZSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jayk7CisgICAgbXV0YWJs
ZSBDaGVja2VkTG9jayBtX2xvY2s7CiAgICAgYm9vbCBtX3ByZW11bHRpcGx5QWxwaGE7CiAgICAg
Ym9vbCBtX2lnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlOwogICAgIEltYWdlT3JpZW50YXRpb24g
bV9vcmllbnRhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5oCmluZGV4IDQ0NTlm
MmUyYTI0MDk5NTcxM2E0MTNjMTg1ZWJmZGQ1YzEzYzFlOTMuLjkwMjMwZDg1NjNiYmI1OTFmY2Zk
ZjA5MjdkZmM4ZTE4MWYxMWUyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suaApA
QCAtMjcsNyArMjcsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNpbmNsdWRlICJN
ZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8
d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MCwxMCArNTAsMTAgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHJlc3VtZVJlY29yZGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwog
ICAgIGNvbnN0IFN0cmluZyYgbWltZVR5cGUoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgZ2Vu
ZXJhdGVNb2NrQ291bnRlclN0cmluZygpOworICAgIHZvaWQgZ2VuZXJhdGVNb2NrQ291bnRlclN0
cmluZygpIFdURl9SRVFVSVJFU19MT0NLKG1fYnVmZmVyTG9jayk7CiAKLSAgICBtdXRhYmxlIExv
Y2sgbV9idWZmZXJMb2NrOwotICAgIFN0cmluZ0J1aWxkZXIgbV9idWZmZXI7CisgICAgbXV0YWJs
ZSBDaGVja2VkTG9jayBtX2J1ZmZlckxvY2s7CisgICAgU3RyaW5nQnVpbGRlciBtX2J1ZmZlciBX
VEZfR1VBUkRFRF9CWV9MT0NLKG1fYnVmZmVyTG9jayk7CiAgICAgdW5zaWduZWQgbV9jb3VudGVy
IHsgMCB9OwogICAgIFN0cmluZyBtX2F1ZGlvVHJhY2tJRDsKICAgICBTdHJpbmcgbV92aWRlb1Ry
YWNrSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJD
b2NvYS5oCmluZGV4IDY2MGI4ZWFmMjJlNzE4NTEwNmQ4N2QzMmI2NjAwZjE4MWIzYjJmZjkuLjYz
ZDEyNmY5OWIwMTJhZTY1NDhhYjM1YWY1OWNhNTFlZTkxODliYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXJDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oCkBAIC0yOSw5ICsyOSw5
IEBACiAjaW5jbHVkZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgogCiAjaW5jbHVkZSAiU2hh
cmVkQnVmZmVyLmgiCisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVkZSA8
d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTExOCw4
ICsxMTgsOCBAQCBwcml2YXRlOgogCiAgICAgUmV0YWluUHRyPEFWQXNzZXRXcml0ZXI+IG1fd3Jp
dGVyOwogCi0gICAgTG9jayBtX2RhdGFMb2NrOwotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1f
ZGF0YTsKKyAgICBDaGVja2VkTG9jayBtX2RhdGFMb2NrOworICAgIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IG1fZGF0YSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fZGF0YUxvY2spOwogICAgIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJiwgZG91YmxlKT4gbV9mZXRjaERh
dGFDb21wbGV0aW9uSGFuZGxlcjsKIAogICAgIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9u
UmVmPiBtX2F1ZGlvRm9ybWF0RGVzY3JpcHRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KaW5kZXggOTIzYTM2MGQ1M2U0ZjU1NDRl
NWIwYmZiOGRmZmJkNTU5NWQ1YTAwYy4uNjRkNzhiNzlkNWI4MTVjOGQ4MzVjNTNhNjIxMjA1NmM0
ODRmODFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXJDb2NvYS5tbQpAQCAtMzcwLDcgKzM3MCw4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6OmZsdXNoQ29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMoRnVuY3Rpb248dm9pZCgpPiYm
CiAgICAgICAgIFttX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dCByZXF1ZXN0TWVkaWFEYXRhV2hlblJl
YWR5T25RdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6YmxvY2suZ2V0
KCldOwogfQogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjbGVhcigpCisvLyBG
SVhNRTogVGhpcyBtb2RpZmllcyBtX2RhdGEgd2l0aG91dCBncmFiYmluZyBtX2RhdGFMb2NrLgor
dm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y2xlYXIoKSBXVEZfSUdOT1JFU19USFJF
QURfU0FGRVRZX0FOQUxZU0lTCiB7CiAgICAgbV9wZW5kaW5nQXVkaW9TYW1wbGVRdWV1ZS5jbGVh
cigpOwogICAgIG1fcGVuZGluZ1ZpZGVvU2FtcGxlUXVldWUuY2xlYXIoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuaAppbmRleCAxZmY0MjAzNjk5Yjk4OGI1YTliOTVmY2U2YWFlNmIwYTg3NTk4M2M5Li5lZjA3
ZWFhODlhNDNjMDExNzk1MTJhMzAzZTIyZDZmYTJhOTA1MGE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5o
CkBAIC00Miw4ICs0Miw4IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUg
IlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCIKICNpbmNsdWRlICJSZWFsdGltZU1l
ZGlhU291cmNlRmFjdG9yeS5oIgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1
ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5j
bHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTI3NiwxMSArMjc2LDExIEBAIHBy
aXZhdGU6CiAgICAgU3RyaW5nIG1fbmFtZTsKICAgICBXZWFrSGFzaFNldDxPYnNlcnZlcj4gbV9v
YnNlcnZlcnM7CiAKLSAgICBtdXRhYmxlIExvY2sgbV9hdWRpb1NhbXBsZU9ic2VydmVyc0xvY2s7
Ci0gICAgSGFzaFNldDxBdWRpb1NhbXBsZU9ic2VydmVyKj4gbV9hdWRpb1NhbXBsZU9ic2VydmVy
czsKKyAgICBtdXRhYmxlIENoZWNrZWRMb2NrIG1fYXVkaW9TYW1wbGVPYnNlcnZlcnNMb2NrOwor
ICAgIEhhc2hTZXQ8QXVkaW9TYW1wbGVPYnNlcnZlcio+IG1fYXVkaW9TYW1wbGVPYnNlcnZlcnMg
V1RGX0dVQVJERURfQllfTE9DSyhtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzTG9jayk7CiAKLSAgICBt
dXRhYmxlIExvY2sgbV92aWRlb1NhbXBsZU9ic2VydmVyc0xvY2s7Ci0gICAgSGFzaFNldDxWaWRl
b1NhbXBsZU9ic2VydmVyKj4gbV92aWRlb1NhbXBsZU9ic2VydmVyczsKKyAgICBtdXRhYmxlIENo
ZWNrZWRMb2NrIG1fdmlkZW9TYW1wbGVPYnNlcnZlcnNMb2NrOworICAgIEhhc2hTZXQ8VmlkZW9T
YW1wbGVPYnNlcnZlcio+IG1fdmlkZW9TYW1wbGVPYnNlcnZlcnMgV1RGX0dVQVJERURfQllfTE9D
SyhtX3ZpZGVvU2FtcGxlT2JzZXJ2ZXJzTG9jayk7CiAKICAgICAvLyBTZXQgb24gdGhlIG1haW4g
dGhyZWFkIGZyb20gY29uc3RyYWludHMuCiAgICAgSW50U2l6ZSBtX3NpemU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZS5oCmluZGV4IGRjM2NhYjJhOGRiYWIzMjlmYjIxYzdlZDc1YTdm
YzI4NzYzMWNlOGQuLjUzMDg1Y2Y1YjQ5ZDg3YmY4YmU0MWVhYjFkZDAwMzUzMDUwNjNjNmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oCkBAIC00MSw2ICs0MSw3IEBAIEFMTE9X
X1VOVVNFRF9QQVJBTUVURVJTX0JFR0lOCiAKIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VORAog
CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBl
ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogCkBAIC0xMjcsOCAr
MTI4LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9lbmFibGVkIHsgdHJ1ZSB9OwogCi0gICAgbXV0YWJsZSBMb2NrIG1fc2lua3NMb2NrOwotICAg
IEhhc2hTZXQ8d2VicnRjOjpBdWRpb1RyYWNrU2lua0ludGVyZmFjZSo+IG1fc2lua3M7CisgICAg
bXV0YWJsZSBDaGVja2VkTG9jayBtX3NpbmtzTG9jazsKKyAgICBIYXNoU2V0PHdlYnJ0Yzo6QXVk
aW9UcmFja1NpbmtJbnRlcmZhY2UqPiBtX3NpbmtzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9zaW5r
c0xvY2spOwogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgc2l6ZV90IG1fY2h1bmtz
U2VudCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKaW5kZXggOGE5MWQ2
NGEwOWY5M2EzNTU1NDljZTk4MDIzOWQyYzNkZDRjM2ZkMi4uNWJkMWRkODUwM2VmNTg1YjJmYTJh
ZDA1M2Q0YmViYWJlMGRjMWU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENNYWNyb3MuaCIKICNpbmNsdWRl
ICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgPFRpbWVyLmg+CisjaW5jbHVk
ZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAKIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lOCiAK
QEAgLTE0MSw4ICsxNDIsOCBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fYmxhY2tGcmFtZVRpbWVy
OwogICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvRnJhbWVCdWZmZXI+IG1fYmxh
Y2tGcmFtZTsKIAotICAgIG11dGFibGUgTG9jayBtX3NpbmtzTG9jazsKLSAgICBIYXNoU2V0PHJ0
Yzo6VmlkZW9TaW5rSW50ZXJmYWNlPHdlYnJ0Yzo6VmlkZW9GcmFtZT4qPiBtX3NpbmtzOworICAg
IG11dGFibGUgQ2hlY2tlZExvY2sgbV9zaW5rc0xvY2s7CisgICAgSGFzaFNldDxydGM6OlZpZGVv
U2lua0ludGVyZmFjZTx3ZWJydGM6OlZpZGVvRnJhbWU+Kj4gbV9zaW5rcyBXVEZfR1VBUkRFRF9C
WV9MT0NLKG1fc2lua3NMb2NrKTsKICAgICBib29sIG1fYXJlU2lua3NBc2tpbmdUb0FwcGx5Um90
YXRpb24geyBmYWxzZSB9OwogCiAgICAgYm9vbCBtX2VuYWJsZWQgeyB0cnVlIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJX
ZWJSVEMuY3BwCmluZGV4IDNiOTA5NTg1OGY1ZmVhNGY4ZWQ2ZDRkMmZhMjBhMmViNWIxYTgwMTcu
LjhjOWNjM2ZhMjUxMTM2NDIyMWFhOGVkOTU3ZWMyM2YxOGZlNTFlNDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJS
VEMuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNl
TGliV2ViUlRDOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lCiAgICAgfQog
CiAgICAgewotICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9hZGFwdGVyTXV0ZXggfTsKKyAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IG1fYWRhcHRlckxvY2sgfTsKICAgICAgICAgY29uc3QgYXV0byYg
c2FtcGxlID0gZGF0YS5nZXRTYW1wbGUoKTsKICAgICAgICAgYXV0byogYnVmZmVyID0gZ3N0X3Nh
bXBsZV9nZXRfYnVmZmVyKHNhbXBsZS5nZXQoKSk7CiAgICAgICAgIGdzdF9hZGFwdGVyX3B1c2go
bV9hZGFwdGVyLmdldCgpLCBnc3RfYnVmZmVyX3JlZihidWZmZXIpKTsKQEAgLTEwMSw3ICsxMDEs
NyBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6cHVsbEF1ZGlv
RGF0YSgpCiAgICAgc2l6ZV90IG91dENodW5rU2FtcGxlQ291bnQgPSBMaWJXZWJSVENBdWRpb0Zv
cm1hdDo6Y2h1bmtTYW1wbGVDb3VudDsKICAgICBzaXplX3Qgb3V0QnVmZmVyU2l6ZSA9IG91dENo
dW5rU2FtcGxlQ291bnQgKiBtX291dHB1dFN0cmVhbURlc2NyaXB0aW9uLmJwZjsKIAotICAgIExv
Y2tlciBsb2NrZXIgeyBtX2FkYXB0ZXJNdXRleCB9OworICAgIExvY2tlciBsb2NrZXIgeyBtX2Fk
YXB0ZXJMb2NrIH07CiAgICAgc2l6ZV90IGluQ2h1bmtTYW1wbGVDb3VudCA9IGdzdF9hdWRpb19j
b252ZXJ0ZXJfZ2V0X2luX2ZyYW1lcyhtX3NhbXBsZUNvbnZlcnRlci5nZXQoKSwgb3V0Q2h1bmtT
YW1wbGVDb3VudCk7CiAgICAgc2l6ZV90IGluQnVmZmVyU2l6ZSA9IGluQ2h1bmtTYW1wbGVDb3Vu
dCAqIG1faW5wdXRTdHJlYW1EZXNjcmlwdGlvbi5icGY7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2VMaWJXZWJSVEMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEMuaAppbmRleCBk
ZTZlZmU5ZjFhNTI1NzE1YmY3YmQ5MGQ4ZTExODE3MWQxZWJlMmRkLi5lMDUzYjAxMGQyN2ZiMGM0
ZjZhOTJhMDZiNDE5M2IyMTYwMTZlZTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlTGli
V2ViUlRDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5oCkBAIC0yNSw2ICsyNSw3
IEBACiAjaW5jbHVkZSAiUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgiCiAKICNpbmNsdWRl
IDxnc3QvYXVkaW8vYXVkaW8uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC01MSw4ICs1Miw4IEBAIHByaXZhdGU6CiAgICAgR3N0QXVk
aW9JbmZvIG1faW5wdXRTdHJlYW1EZXNjcmlwdGlvbjsKICAgICBHc3RBdWRpb0luZm8gbV9vdXRw
dXRTdHJlYW1EZXNjcmlwdGlvbjsKIAotICAgIExvY2sgbV9hZGFwdGVyTXV0ZXg7Ci0gICAgR1Jl
ZlB0cjxHc3RBZGFwdGVyPiBtX2FkYXB0ZXI7CisgICAgQ2hlY2tlZExvY2sgbV9hZGFwdGVyTG9j
azsKKyAgICBHUmVmUHRyPEdzdEFkYXB0ZXI+IG1fYWRhcHRlciBXVEZfR1VBUkRFRF9CWV9MT0NL
KG1fYWRhcHRlckxvY2spOwogICAgIFZlY3Rvcjx1aW50OF90PiBtX2F1ZGlvQnVmZmVyOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnku
Y3BwCmluZGV4IDJiYjdlZjE1YmQ1NzRjZmFjZDc2MjU4ZWJmMzEwYzY0MGM2ZTYwMzIuLjI2ODY3
MGRhMjg0MDljM2RiOGU4NmU4NTljZjFlNjg3ZjM1NTRmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29k
ZXJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAKQEAgLTM0NSw3ICszNDUs
NiBAQCBwcml2YXRlOgogICAgIEdSZWZQdHI8R3N0Q2Fwcz4gbV9yZXN0cmljdGlvbkNhcHM7CiAg
ICAgd2VicnRjOjpFbmNvZGVkSW1hZ2UgbV9lbmNvZGVkRnJhbWU7CiAKLSAgICBMb2NrIG1fYnVm
ZmVyTWFwTG9jazsKICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IG1fc2luazsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2Fw
dHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
VmlkZW9DYXB0dXJlU291cmNlLmgKaW5kZXggZjBjYjc1MGM4ODM1MjlhZmQxMDAwOWJmN2VlMDk0
MTdkZmU2YmJjOS4uMGU0MWNjNDEzZjg0M2ZhMDM5OGExYTE3MjQ0MGQxZTI2NzdiMjdlNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9D
YXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgKQEAgLTEzMiw3ICsxMzIsNiBAQCBwcml2YXRlOgog
ICAgIFJldGFpblB0cjxBVkNhcHR1cmVTZXNzaW9uPiBtX3Nlc3Npb247CiAgICAgUmV0YWluUHRy
PEFWQ2FwdHVyZURldmljZT4gbV9kZXZpY2U7CiAKLSAgICBMb2NrIG1fcHJlc2V0TXV0ZXg7CiAg
ICAgUmVmUHRyPEFWVmlkZW9QcmVzZXQ+IG1fY3VycmVudFByZXNldDsKICAgICBJbnRTaXplIG1f
Y3VycmVudFNpemU7CiAgICAgZG91YmxlIG1fY3VycmVudEZyYW1lUmF0ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKaW5kZXggYWIxOTRkZGYyYzE1MWFk
ZmIyOTQxZGYzMzdiOGY1OGEwNDExOTJmYS4uNGEyNDRjNjVmYTg3ZjFjM2JhOTU4YTJjMDIwZDM0
NTY5NDUyYjY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0
ZURhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFi
YXNlLmgKQEAgLTI4LDggKzI4LDggQEAKIAogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVk
ZSA8c3FsaXRlMy5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0
Zi9FeHBlY3RlZC5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgpAQCAtMTYyLDcgKzE2Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgc3RhdGljIGlu
dCBhdXRob3JpemVyRnVuY3Rpb24odm9pZCosIGludCwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIq
LCBjb25zdCBjaGFyKiwgY29uc3QgY2hhciopOwogCi0gICAgdm9pZCBlbmFibGVBdXRob3JpemVy
KGJvb2wgZW5hYmxlKTsKKyAgICB2b2lkIGVuYWJsZUF1dGhvcml6ZXIoYm9vbCBlbmFibGUpIFdU
Rl9SRVFVSVJFU19MT0NLKG1fYXV0aG9yaXplckxvY2spOwogICAgIHZvaWQgdXNlV0FMSm91cm5h
bE1vZGUoKTsKIAogICAgIGludCBwYWdlU2l6ZSgpOwpAQCAtMTgwLDggKzE4MCw4IEBAIHByaXZh
dGU6CiAKICAgICBib29sIG1fdXNlV0FMIHsgZmFsc2UgfTsKIAotICAgIExvY2sgbV9hdXRob3Jp
emVyTG9jazsKLSAgICBSZWZQdHI8RGF0YWJhc2VBdXRob3JpemVyPiBtX2F1dGhvcml6ZXI7Cisg
ICAgQ2hlY2tlZExvY2sgbV9hdXRob3JpemVyTG9jazsKKyAgICBSZWZQdHI8RGF0YWJhc2VBdXRo
b3JpemVyPiBtX2F1dGhvcml6ZXIgV1RGX0dVQVJERURfQllfTE9DSyhtX2F1dGhvcml6ZXJMb2Nr
KTsKIAogICAgIExvY2sgbV9sb2NraW5nTXV0ZXg7CiAgICAgUmVmUHRyPFRocmVhZD4gbV9vcGVu
aW5nVGhyZWFkIHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1Bh
aW50V29ya2xldEdsb2JhbFNjb3BlLmgKaW5kZXggOWEyYzQ5N2M5Mjk0ODAyZTFlNjdiMjRkMDdh
ZmIyODMxZTIyOGIzNS4uZWYyNzliNTdmMTU0MzAzMWMzYzkxMDc3MDE0MTJmMDkwNDJmNWFkYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29w
ZS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3BlLmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9TdHJvbmcuaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KIAogbmFtZXNwYWNl
IEpTQyB7CiBjbGFzcyBKU09iamVjdDsKQEAgLTYwLDggKzYxLDggQEAgcHVibGljOgogICAgICAg
ICBjb25zdCBWZWN0b3I8U3RyaW5nPiBpbnB1dEFyZ3VtZW50czsKICAgICB9OwogCi0gICAgSGFz
aE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxQYWludERlZmluaXRpb24+PiYgcGFpbnREZWZp
bml0aW9uTWFwKCkgeyBBU1NFUlQobV9wYWludERlZmluaXRpb25Mb2NrLmlzTG9ja2VkKCkpOyBy
ZXR1cm4gbV9wYWludERlZmluaXRpb25NYXA7IH0KLSAgICBMb2NrJiBwYWludERlZmluaXRpb25M
b2NrKCkgeyByZXR1cm4gbV9wYWludERlZmluaXRpb25Mb2NrOyB9CisgICAgSGFzaE1hcDxTdHJp
bmcsIHN0ZDo6dW5pcXVlX3B0cjxQYWludERlZmluaXRpb24+PiYgcGFpbnREZWZpbml0aW9uTWFw
KCkgV1RGX1JFUVVJUkVTX0xPQ0sobV9wYWludERlZmluaXRpb25Mb2NrKTsKKyAgICBDaGVja2Vk
TG9jayYgcGFpbnREZWZpbml0aW9uTG9jaygpIFdURl9SRVRVUk5TX0xPQ0sobV9wYWludERlZmlu
aXRpb25Mb2NrKSB7IHJldHVybiBtX3BhaW50RGVmaW5pdGlvbkxvY2s7IH0KIAogICAgIHZvaWQg
cHJlcGFyZUZvckRlc3RydWN0aW9uKCkgZmluYWwKICAgICB7CkBAIC05MSwxMSArOTIsMTcgQEAg
cHJpdmF0ZToKIAogICAgIGJvb2wgaXNQYWludFdvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9w
dHI8UGFpbnREZWZpbml0aW9uPj4gbV9wYWludERlZmluaXRpb25NYXA7Ci0gICAgTG9jayBtX3Bh
aW50RGVmaW5pdGlvbkxvY2s7CisgICAgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxQ
YWludERlZmluaXRpb24+PiBtX3BhaW50RGVmaW5pdGlvbk1hcCBXVEZfR1VBUkRFRF9CWV9MT0NL
KG1fcGFpbnREZWZpbml0aW9uTG9jayk7CisgICAgQ2hlY2tlZExvY2sgbV9wYWludERlZmluaXRp
b25Mb2NrOwogICAgIGJvb2wgbV9oYXNQcmVwYXJlZEZvckRlc3RydWN0aW9uIHsgZmFsc2UgfTsK
IH07CiAKK2lubGluZSBhdXRvIHBhaW50RGVmaW5pdGlvbk1hcCgpIC0+IEhhc2hNYXA8U3RyaW5n
LCBzdGQ6OnVuaXF1ZV9wdHI8UGFpbnREZWZpbml0aW9uPj4mCit7CisgICAgQVNTRVJUKG1fcGFp
bnREZWZpbml0aW9uTG9jay5pc0xvY2tlZCgpKTsKKyAgICByZXR1cm4gbV9wYWludERlZmluaXRp
b25NYXA7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19CRUdJTihXZWJDb3JlOjpQYWludFdvcmtsZXRHbG9iYWxTY29wZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaApp
bmRleCAxOTUyMGQ5MzhiZjhmNmUwZDBjYTM2ODViY2NmMzExNDQ2OGUyYzg0Li40MWE0Yzg3ZGU2
NzAwZjE2N2QzZDU5YjAwOWY5ZTQ5ZTU1NDYwODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oCkBAIC0zMiw2ICsz
Miw3IEBACiAjaW5jbHVkZSAiUlRDRGVjb2RlcklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJSVENF
bmNvZGVySWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVC5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogCiBuYW1lc3BhY2UgSVBDIHsK
IGNsYXNzIENvbm5lY3Rpb247CkBAIC04Nyw5ICs4OCw5IEBAIHByaXZhdGU6CiAKICAgICBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiAKLSAg
ICBtdXRhYmxlIExvY2sgbV9sb2NrOwotICAgIEhhc2hNYXA8UlRDRGVjb2RlcklkZW50aWZpZXIs
IHdlYnJ0Yzo6TG9jYWxEZWNvZGVyPiBtX2RlY29kZXJzOwotICAgIEhhc2hNYXA8UlRDRW5jb2Rl
cklkZW50aWZpZXIsIHdlYnJ0Yzo6TG9jYWxFbmNvZGVyPiBtX2VuY29kZXJzOworICAgIG11dGFi
bGUgQ2hlY2tlZExvY2sgbV9sb2NrOworICAgIEhhc2hNYXA8UlRDRGVjb2RlcklkZW50aWZpZXIs
IHdlYnJ0Yzo6TG9jYWxEZWNvZGVyPiBtX2RlY29kZXJzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9s
b2NrKTsgLy8gT25seSBtb2RpZmllZCBvbiB0aGUgbGliV2ViUlRDQ29kZWNzUXVldWUgYnV0IG1h
eSBnZXQgYWNjZXNzZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCisgICAgSGFzaE1hcDxSVENFbmNv
ZGVySWRlbnRpZmllciwgd2VicnRjOjpMb2NhbEVuY29kZXI+IG1fZW5jb2RlcnMgV1RGX0dVQVJE
RURfQllfTE9DSyhtX2xvY2spOyAvLyBPbmx5IG1vZGlmaWVkIG9uIHRoZSBsaWJXZWJSVENDb2Rl
Y3NRdWV1ZSBidXQgbWF5IGdldCBhY2Nlc3NlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4KIAogICAg
IFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Oklt
YWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1t
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5t
bQppbmRleCBkNDdmODRkMThiZDg2M2M4NDkyNDlmNTYxODE4ZjhkYmJiZWZhODRlLi5iMjMyNTgy
NzQ0YzE1ODYwZTkyNTNlYjNkYmU5MjQ0ZTkxOWU4NjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KQEAgLTEx
NSw3ICsxMTUsOSBAQCB2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjpyZWxlYXNlRGVjb2RlcihS
VENEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgICAgICB3ZWJydGM6OnJlbGVhc2VM
b2NhbERlY29kZXIoZGVjb2Rlcik7CiB9CiAKLXZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OmRl
Y29kZUZyYW1lKFJUQ0RlY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQzMl90IHRpbWVT
dGFtcCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhKQorLy8gRm9yIHBlcmZvcm1hbmNl
IHJlYXNvbnMsIHRoaXMgZnVuY3Rpb24gYWNjZXNzZXMgbV9kZWNvZGVycyB3aXRob3V0IGxvY2tp
bmcuIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gcnVucyBvbiB0aGUgbGliV2Vi
UlRDQ29kZWNzUXVldWUKKy8vIGFuZCBtX2RlY29kZXJzIG9ubHkgZ2V0IG1vZGlmaWVkIG9uIHRo
aXMgcXVldWUuCit2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjpkZWNvZGVGcmFtZShSVENEZWNv
ZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50MzJfdCB0aW1lU3RhbXAsIGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYgZGF0YSkgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJUwog
ewogICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKICAgICBBU1NFUlQobV9kZWNvZGVycy5j
b250YWlucyhpZGVudGlmaWVyKSk7CkBAIC0xMjcsNyArMTI5LDkgQEAgdm9pZCBMaWJXZWJSVEND
b2RlY3NQcm94eTo6ZGVjb2RlRnJhbWUoUlRDRGVjb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwg
dWludDMyX3QKICAgICAgICAgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6OkZhaWxlZERlY29kaW5nIHsgaWRlbnRp
ZmllciB9LCAwKTsKIH0KIAotdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6c2V0RnJhbWVTaXpl
KFJUQ0RlY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQxNl90IHdpZHRoLCB1aW50MTZf
dCBoZWlnaHQpCisvLyBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgdGhpcyBmdW5jdGlvbiBhY2Nl
c3NlcyBtX2RlY29kZXJzIHdpdGhvdXQgbG9ja2luZy4gVGhpcyBpcyBzYWZlIGJlY2F1c2UgdGhp
cyBmdW5jdGlvbiBydW5zIG9uIHRoZSBsaWJXZWJSVENDb2RlY3NRdWV1ZQorLy8gYW5kIG1fZGVj
b2RlcnMgb25seSBnZXQgbW9kaWZpZWQgb24gdGhpcyBxdWV1ZS4KK3ZvaWQgTGliV2ViUlRDQ29k
ZWNzUHJveHk6OnNldEZyYW1lU2l6ZShSVENEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCB1
aW50MTZfdCB3aWR0aCwgdWludDE2X3QgaGVpZ2h0KSBXVEZfSUdOT1JFU19USFJFQURfU0FGRVRZ
X0FOQUxZU0lTCiB7CiAgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwogICAgIEFTU0VSVCht
X2RlY29kZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKQEAgLTE2NCw3ICsxNjgsOSBAQCB2b2lk
IExpYldlYlJUQ0NvZGVjc1Byb3h5OjpyZWxlYXNlRW5jb2RlcihSVENFbmNvZGVySWRlbnRpZmll
ciBpZGVudGlmaWVyKQogICAgICAgICB3ZWJydGM6OnJlbGVhc2VMb2NhbEVuY29kZXIoZW5jb2Rl
cik7CiB9CiAKLXZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OmluaXRpYWxpemVFbmNvZGVyKFJU
Q0VuY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQxNl90IHdpZHRoLCB1aW50MTZfdCBo
ZWlnaHQsIHVuc2lnbmVkIHN0YXJ0Qml0cmF0ZSwgdW5zaWduZWQgbWF4Qml0cmF0ZSwgdW5zaWdu
ZWQgbWluQml0cmF0ZSwgdWludDMyX3QgbWF4RnJhbWVyYXRlKQorLy8gRm9yIHBlcmZvcm1hbmNl
IHJlYXNvbnMsIHRoaXMgZnVuY3Rpb24gYWNjZXNzZXMgbV9lbmNvZGVycyB3aXRob3V0IGxvY2tp
bmcuIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gcnVucyBvbiB0aGUgbGliV2Vi
UlRDQ29kZWNzUXVldWUKKy8vIGFuZCBtX2VuY29kZXJzIG9ubHkgZ2V0IG1vZGlmaWVkIG9uIHRo
aXMgcXVldWUuCit2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5Ojppbml0aWFsaXplRW5jb2RlcihS
VENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50MTZfdCB3aWR0aCwgdWludDE2X3Qg
aGVpZ2h0LCB1bnNpZ25lZCBzdGFydEJpdHJhdGUsIHVuc2lnbmVkIG1heEJpdHJhdGUsIHVuc2ln
bmVkIG1pbkJpdHJhdGUsIHVpbnQzMl90IG1heEZyYW1lcmF0ZSkgV1RGX0lHTk9SRVNfVEhSRUFE
X1NBRkVUWV9BTkFMWVNJUwogewogICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKICAgICBB
U1NFUlQobV9lbmNvZGVycy5jb250YWlucyhpZGVudGlmaWVyKSk7CkBAIC0xOTEsNyArMTk3LDkg
QEAgc3RhdGljIGlubGluZSB3ZWJydGM6OlZpZGVvUm90YXRpb24gdG9XZWJSVENWaWRlb1JvdGF0
aW9uKFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjoKICAgICByZXR1cm4gd2VicnRjOjprVmlkZW9Sb3Rh
dGlvbl8wOwogfQogCi12b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjplbmNvZGVGcmFtZShSVENF
bmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYm
IHNhbXBsZSwgdWludDMyX3QgdGltZVN0YW1wLCBib29sIHNob3VsZEVuY29kZUFzS2V5RnJhbWUp
CisvLyBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgdGhpcyBmdW5jdGlvbiBhY2Nlc3NlcyBtX2Vu
Y29kZXJzIHdpdGhvdXQgbG9ja2luZy4gVGhpcyBpcyBzYWZlIGJlY2F1c2UgdGhpcyBmdW5jdGlv
biBydW5zIG9uIHRoZSBsaWJXZWJSVENDb2RlY3NRdWV1ZQorLy8gYW5kIG1fZW5jb2RlcnMgb25s
eSBnZXQgbW9kaWZpZWQgb24gdGhpcyBxdWV1ZS4KK3ZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6
OmVuY29kZUZyYW1lKFJUQ0VuY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlJl
bW90ZVZpZGVvU2FtcGxlJiYgc2FtcGxlLCB1aW50MzJfdCB0aW1lU3RhbXAsIGJvb2wgc2hvdWxk
RW5jb2RlQXNLZXlGcmFtZSkgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJUwogewog
ICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKICAgICBBU1NFUlQobV9lbmNvZGVycy5jb250
YWlucyhpZGVudGlmaWVyKSk7CkBAIC0yMDgsNyArMjE2LDkgQEAgdm9pZCBMaWJXZWJSVENDb2Rl
Y3NQcm94eTo6ZW5jb2RlRnJhbWUoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
Q29yZToKICNlbmRpZgogfQogCi12b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjpzZXRFbmNvZGVS
YXRlcyhSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50MzJfdCBiaXRSYXRlLCB1
aW50MzJfdCBmcmFtZVJhdGUpCisvLyBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgdGhpcyBmdW5j
dGlvbiBhY2Nlc3NlcyBtX2VuY29kZXJzIHdpdGhvdXQgbG9ja2luZy4gVGhpcyBpcyBzYWZlIGJl
Y2F1c2UgdGhpcyBmdW5jdGlvbiBydW5zIG9uIHRoZSBsaWJXZWJSVENDb2RlY3NRdWV1ZQorLy8g
YW5kIG1fZW5jb2RlcnMgb25seSBnZXQgbW9kaWZpZWQgb24gdGhpcyBxdWV1ZS4KK3ZvaWQgTGli
V2ViUlRDQ29kZWNzUHJveHk6OnNldEVuY29kZVJhdGVzKFJUQ0VuY29kZXJJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIHVpbnQzMl90IGJpdFJhdGUsIHVpbnQzMl90IGZyYW1lUmF0ZSkgV1RGX0lHTk9S
RVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJUwogewogICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgp
KTsKICAgICBhdXRvIGVuY29kZXIgPSBtX2VuY29kZXJzLmdldChpZGVudGlmaWVyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvZ2xpYi9ETlNDYWNoZS5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9nbGliL0ROU0NhY2hlLmgKaW5kZXggMmI3OGYzOGMx
ZmU3YTdmOGZmMmUzOTQxNGQwNjUyZmEzOGZjODNjYi4uNGZlMjE5OTAxZjJiM2UwZDg2MTM2Y2Jk
OTk0NzE3NjU0MTkyMjBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9nbGliL0ROU0NhY2hlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9nbGli
L0ROU0NhY2hlLmgKQEAgLTI1LDggKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRl
IDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUg
PHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3
dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgpAQCAtNTYsMTMgKzU2LDEz
IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBETlNDYWNoZU1hcCA9IEhhc2hNYXA8Q1N0cmluZywg
Q2FjaGVkUmVzcG9uc2U+OwogCi0gICAgRE5TQ2FjaGVNYXAmIG1hcEZvclR5cGUoVHlwZSk7Cisg
ICAgRE5TQ2FjaGVNYXAmIG1hcEZvclR5cGUoVHlwZSkgV1RGX1JFUVVJUkVTX0xPQ0sobV9sb2Nr
KTsKICAgICB2b2lkIHJlbW92ZUV4cGlyZWRSZXNwb25zZXNGaXJlZCgpOwogICAgIHZvaWQgcmVt
b3ZlRXhwaXJlZFJlc3BvbnNlc0luTWFwKEROU0NhY2hlTWFwJik7CiAgICAgdm9pZCBwcnVuZVJl
c3BvbnNlc0luTWFwKEROU0NhY2hlTWFwJik7CiAKLSAgICBMb2NrIG1fbG9jazsKLSAgICBETlND
YWNoZU1hcCBtX2Ruc01hcDsKKyAgICBDaGVja2VkTG9jayBtX2xvY2s7CisgICAgRE5TQ2FjaGVN
YXAgbV9kbnNNYXAgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spOwogI2lmIEdMSUJfQ0hFQ0tf
VkVSU0lPTigyLCA1OSwgMCkKICAgICBETlNDYWNoZU1hcCBtX2lwdjRNYXA7CiAgICAgRE5TQ2Fj
aGVNYXAgbV9pcHY2TWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01l
ZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHAKaW5kZXggMjU3
ODY5MzY4YmU4NzM4NjYzZWRmNDNmODBjNzNkYzRjODUwMWQ5OS4uYzVhNGNjMDljZjg3MTdhMjRl
ZTE4NWRjZmNhM2JmNmNiOWU0NDM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuY3Bw
CkBAIC0xNDUsNiArMTQ1LDcgQEAgT3B0aW9uYWw8dHlwZW5hbWUgT3JkZXJlZE1hcDo6aXRlcmF0
b3I+IE1lZGlhU2FtcGxlQ3Vyc29yOjpsb2NhdGVJdGVyYXRvcihPcmRlcmUKICAgICB1c2luZyBJ
dGVyYXRvciA9IHR5cGVuYW1lIE9yZGVyZWRNYXA6Oml0ZXJhdG9yOwogICAgIHJldHVybiBXVEY6
OnN3aXRjaE9uKG1fbG9jYXRvciwKICAgICAgICAgWyZdKGNvbnN0IE1lZGlhVGltZSYgcHJlc2Vu
dGF0aW9uVGltZSkgLT4gT3B0aW9uYWw8SXRlcmF0b3I+IHsKKyAgICAgICAgICAgIGFzc2VydElz
SGVsZChtX2xvY2F0b3JMb2NrKTsKICAgICAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSB1cHBlckJv
dW5kKHNhbXBsZXMsIHByZXNlbnRhdGlvblRpbWUpOwogICAgICAgICAgICAgaWYgKGl0ZXJhdG9y
ID09IHNhbXBsZXMuYmVnaW4oKSkKICAgICAgICAgICAgICAgICBtX2xvY2F0b3IgPSBXVEZNb3Zl
KGl0ZXJhdG9yKTsKQEAgLTE1NSw2ICsxNTYsNyBAQCBPcHRpb25hbDx0eXBlbmFtZSBPcmRlcmVk
TWFwOjppdGVyYXRvcj4gTWVkaWFTYW1wbGVDdXJzb3I6OmxvY2F0ZUl0ZXJhdG9yKE9yZGVyZQog
ICAgICAgICAgICAgcmV0dXJuIGxvY2F0ZUl0ZXJhdG9yKHNhbXBsZXMsIGhhc0FsbFNhbXBsZXMp
OwogICAgICAgICB9LAogICAgICAgICBbJl0oY29uc3QgYXV0byYgb3RoZXJJdGVyYXRvcikgewor
ICAgICAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jYXRvckxvY2spOwogICAgICAgICAgICAgbV9s
b2NhdG9yID0gb3RoZXJJdGVyYXRvci0+c2Vjb25kLT5wcmVzZW50YXRpb25UaW1lKCk7CiAgICAg
ICAgICAgICByZXR1cm4gbG9jYXRlSXRlcmF0b3Ioc2FtcGxlcywgaGFzQWxsU2FtcGxlcyk7CiAg
ICAgICAgIH0sCkBAIC0xNjksNiArMTcxLDcgQEAgTWVkaWFTYW1wbGUqIE1lZGlhU2FtcGxlQ3Vy
c29yOjpsb2NhdGVNZWRpYVNhbXBsZShTYW1wbGVNYXAmIHNhbXBsZXMsIGJvb2wgaGFzQWwKICAg
ICBBU1NFUlQobV9sb2NhdG9yTG9jay5pc0xvY2tlZCgpKTsKICAgICByZXR1cm4gV1RGOjpzd2l0
Y2hPbihtX2xvY2F0b3IsCiAgICAgICAgIFsmXShjb25zdCBNZWRpYVRpbWUmKSAtPiBNZWRpYVNh
bXBsZSogeworICAgICAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jYXRvckxvY2spOwogICAgICAg
ICAgICAgYXV0byBpdGVyYXRvciA9IGxvY2F0ZUl0ZXJhdG9yKHNhbXBsZXMucHJlc2VudGF0aW9u
T3JkZXIoKSwgaGFzQWxsU2FtcGxlcyk7CiAgICAgICAgICAgICBpZiAoIWl0ZXJhdG9yKQogICAg
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTg1LDYgKzE4OCw3IEBAIE1lZGlhU2Ft
cGxlQ3Vyc29yOjpUaW1pbmcgTWVkaWFTYW1wbGVDdXJzb3I6OmxvY2F0ZVRpbWluZyhTYW1wbGVN
YXAmIHNhbXBsZXMsIGJvCiAgICAgQVNTRVJUKG1fbG9jYXRvckxvY2suaXNMb2NrZWQoKSk7CiAg
ICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9sb2NhdG9yLAogICAgICAgICBbJl0oY29uc3QgTWVk
aWFUaW1lJiBwcmVzZW50YXRpb25UaW1lKSB7CisgICAgICAgICAgICBhc3NlcnRJc0hlbGQobV9s
b2NhdG9yTG9jayk7CiAgICAgICAgICAgICBpZiAobG9jYXRlTWVkaWFTYW1wbGUoc2FtcGxlcywg
aGFzQWxsU2FtcGxlcykpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGxvY2F0ZVRpbWluZyhzYW1w
bGVzLCBoYXNBbGxTYW1wbGVzKTsKICAgICAgICAgICAgIGF1dG8mIGNsYW1wZWRQcmVzZW50YXRp
b25UaW1lID0gc3RkOjptaW4ocHJlc2VudGF0aW9uVGltZSwgbV90cmFja1JlYWRlci0+ZHVyYXRp
b24oKSk7CkBAIC0yMDgsNiArMjEyLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgT3JkZXJlZE1hcD4K
IE9TU3RhdHVzIE1lZGlhU2FtcGxlQ3Vyc29yOjpzdGVwSW5PcmRlcmVkTWFwKGludDY0X3Qgc3Rl
cHNUb1Rha2UsIGludDY0X3QmIHN0ZXBzVGFrZW4pCiB7CiAgICAgcmV0dXJuIGdldFNhbXBsZU1h
cChbJl0oU2FtcGxlTWFwJiBzYW1wbGVzLCBib29sIGhhc0FsbFNhbXBsZXMpIC0+IE9TU3RhdHVz
IHsKKyAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jYXRvckxvY2spOwogICAgICAgICBhdXRvJiBv
cmRlcmVkTWFwID0gb3JkZXJlZFNhbXBsZXM8T3JkZXJlZE1hcD4oc2FtcGxlcyk7CiAgICAgICAg
IGlmIChhdXRvIGl0ZXJhdG9yID0gbG9jYXRlSXRlcmF0b3Iob3JkZXJlZE1hcCwgaGFzQWxsU2Ft
cGxlcykpIHsKICAgICAgICAgICAgIGF1dG8gc3RlcHNSZW1haW5pbmcgPSBzdGVwSXRlcmF0b3Io
c3RlcHNUb1Rha2UsICppdGVyYXRvciwgb3JkZXJlZE1hcCk7CkBAIC0yMjIsNiArMjI3LDcgQEAg
T1NTdGF0dXMgTWVkaWFTYW1wbGVDdXJzb3I6OnN0ZXBJbk9yZGVyZWRNYXAoaW50NjRfdCBzdGVw
c1RvVGFrZSwgaW50NjRfdCYgc3RlcHMKIE9TU3RhdHVzIE1lZGlhU2FtcGxlQ3Vyc29yOjpzdGVw
SW5QcmVzZW50YXRpb25UaW1lKGNvbnN0IE1lZGlhVGltZSYgZGVsdGEsIEJvb2xlYW4mIHdhc1Bp
bm5lZCkKIHsKICAgICByZXR1cm4gZ2V0U2FtcGxlTWFwKFsmXShTYW1wbGVNYXAmIHNhbXBsZXMs
IGJvb2wgaGFzQWxsU2FtcGxlcykgLT4gT1NTdGF0dXMgeworICAgICAgICBhc3NlcnRJc0hlbGQo
bV9sb2NhdG9yTG9jayk7CiAgICAgICAgIGF1dG8gdGltaW5nID0gbG9jYXRlVGltaW5nKHNhbXBs
ZXMsIGhhc0FsbFNhbXBsZXMpOwogICAgICAgICB3YXNQaW5uZWQgPSBzdGVwVGltZShkZWx0YSwg
dGltaW5nLnByZXNlbnRhdGlvblRpbWUsIHNhbXBsZXMucHJlc2VudGF0aW9uT3JkZXIoKSwgaGFz
QWxsU2FtcGxlcywgbV90cmFja1JlYWRlci0+ZHVyYXRpb24oKSk7CiAgICAgICAgIG1fbG9jYXRv
ciA9IHRpbWluZy5wcmVzZW50YXRpb25UaW1lOwpAQCAtMjQ3LDYgKzI1Myw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIEZ1bmN0aW9uPgogT1NTdGF0dXMgTWVkaWFTYW1wbGVDdXJzb3I6OmdldE1lZGlh
U2FtcGxlKEZ1bmN0aW9uJiYgZnVuY3Rpb24pIGNvbnN0CiB7CiAgICAgcmV0dXJuIGdldFNhbXBs
ZU1hcChbJl0oU2FtcGxlTWFwJiBzYW1wbGVzLCBib29sIGhhc0FsbFNhbXBsZXMpIC0+IE9TU3Rh
dHVzIHsKKyAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jYXRvckxvY2spOwogICAgICAgICBhdXRv
IHNhbXBsZSA9IGxvY2F0ZU1lZGlhU2FtcGxlKHNhbXBsZXMsIGhhc0FsbFNhbXBsZXMpOwogICAg
ICAgICBpZiAoIXNhbXBsZSkKICAgICAgICAgICAgIHJldHVybiBrTVRQbHVnaW5TYW1wbGVDdXJz
b3JFcnJvcl9Mb2NhdGlvbk5vdEF2YWlsYWJsZTsKQEAgLTI2MCw2ICsyNjcsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBGdW5jdGlvbj4KIE9TU3RhdHVzIE1lZGlhU2FtcGxlQ3Vyc29yOjpnZXRUaW1p
bmcoRnVuY3Rpb24mJiBmdW5jdGlvbikgY29uc3QKIHsKICAgICByZXR1cm4gZ2V0U2FtcGxlTWFw
KFsmXShTYW1wbGVNYXAmIHNhbXBsZXMsIGJvb2wgaGFzQWxsU2FtcGxlcykgeworICAgICAgICBh
c3NlcnRJc0hlbGQobV9sb2NhdG9yTG9jayk7CiAgICAgICAgIGF1dG8gdGltaW5nID0gbG9jYXRl
VGltaW5nKHNhbXBsZXMsIGhhc0FsbFNhbXBsZXMpOwogICAgICAgICBERUJVR19MT0coTE9HSURF
TlRJRklFUiwgImRlY29kZVRpbWU6ICIsIHRpbWluZy5kZWNvZGVUaW1lLCAiLCBwcmVzZW50YXRp
b25UaW1lOiAiLCB0aW1pbmcucHJlc2VudGF0aW9uVGltZSwgIiwgZHVyYXRpb246ICIsIHRpbWlu
Zy5kdXJhdGlvbik7CiAgICAgICAgIGZ1bmN0aW9uKHRpbWluZyk7CkBAIC0zODIsNiArMzkwLDcg
QEAgT1NTdGF0dXMgTWVkaWFTYW1wbGVDdXJzb3I6OmNvcHlTYW1wbGVMb2NhdGlvbihNVFBsdWdp
blNhbXBsZUN1cnNvclN0b3JhZ2VSYW5nZSoKIE9TU3RhdHVzIE1lZGlhU2FtcGxlQ3Vyc29yOjpn
ZXRQbGF5YWJsZUhvcml6b24oQ01UaW1lKiBwbGF5YWJsZUhvcml6b24pIGNvbnN0CiB7CiAgICAg
cmV0dXJuIGdldFNhbXBsZU1hcChbJl0oU2FtcGxlTWFwJiBzYW1wbGVzLCBib29sIGhhc0FsbFNh
bXBsZXMpIHsKKyAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jYXRvckxvY2spOwogICAgICAgICBN
ZWRpYVNhbXBsZSYgbGFzdFNhbXBsZSA9ICpzYW1wbGVzLmRlY29kZU9yZGVyKCkucmJlZ2luKCkt
PnNlY29uZDsKICAgICAgICAgYXV0byB0aW1pbmcgPSBsb2NhdGVUaW1pbmcoc2FtcGxlcywgaGFz
QWxsU2FtcGxlcyk7CiAgICAgICAgICpwbGF5YWJsZUhvcml6b24gPSBQQUw6OnRvQ01UaW1lKGxh
c3RTYW1wbGUucHJlc2VudGF0aW9uVGltZSgpICsgbGFzdFNhbXBsZS5kdXJhdGlvbigpIC0gdGlt
aW5nLnByZXNlbnRhdGlvblRpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuaAppbmRleCA2
ODdiMTMwMDQ3YTgyMzNjNDQxMzNkMzZjYjY4YjFmNTExZTMzMmU2Li5iMTdjZDkwMzc3ODMzODRh
NjE4YTU1YTY3OTBjOWRlZTI2NmRkZWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuaApA
QCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQ29yZU1lZGlhV3JhcHBlZC5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvU2FtcGxlTWFwLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAj
aW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKQEAg
LTcxLDkgKzcyLDkgQEAgcHJpdmF0ZToKICAgICBNZWRpYVNhbXBsZUN1cnNvcihBbGxvY2F0b3Im
JiwgTWVkaWFUcmFja1JlYWRlciYsIExvY2F0b3IpOwogICAgIE1lZGlhU2FtcGxlQ3Vyc29yKEFs
bG9jYXRvciYmLCBjb25zdCBNZWRpYVNhbXBsZUN1cnNvciYpOwogCi0gICAgdGVtcGxhdGU8dHlw
ZW5hbWUgT3JkZXJlZE1hcD4gT3B0aW9uYWw8dHlwZW5hbWUgT3JkZXJlZE1hcDo6aXRlcmF0b3I+
IGxvY2F0ZUl0ZXJhdG9yKE9yZGVyZWRNYXAmLCBib29sIGhhc0FsbFNhbXBsZXMpIGNvbnN0Owot
ICAgIFdlYkNvcmU6Ok1lZGlhU2FtcGxlKiBsb2NhdGVNZWRpYVNhbXBsZShXZWJDb3JlOjpTYW1w
bGVNYXAmLCBib29sIGhhc0FsbFNhbXBsZXMpIGNvbnN0OwotICAgIFRpbWluZyBsb2NhdGVUaW1p
bmcoV2ViQ29yZTo6U2FtcGxlTWFwJiwgYm9vbCBoYXNBbGxTYW1wbGVzKSBjb25zdDsKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBPcmRlcmVkTWFwPiBPcHRpb25hbDx0eXBlbmFtZSBPcmRlcmVkTWFw
OjppdGVyYXRvcj4gbG9jYXRlSXRlcmF0b3IoT3JkZXJlZE1hcCYsIGJvb2wgaGFzQWxsU2FtcGxl
cykgY29uc3QgV1RGX1JFUVVJUkVTX0xPQ0sobV9sb2NhdG9yTG9jayk7CisgICAgV2ViQ29yZTo6
TWVkaWFTYW1wbGUqIGxvY2F0ZU1lZGlhU2FtcGxlKFdlYkNvcmU6OlNhbXBsZU1hcCYsIGJvb2wg
aGFzQWxsU2FtcGxlcykgY29uc3QgV1RGX1JFUVVJUkVTX0xPQ0sobV9sb2NhdG9yTG9jayk7Cisg
ICAgVGltaW5nIGxvY2F0ZVRpbWluZyhXZWJDb3JlOjpTYW1wbGVNYXAmLCBib29sIGhhc0FsbFNh
bXBsZXMpIGNvbnN0IFdURl9SRVFVSVJFU19MT0NLKG1fbG9jYXRvckxvY2spOwogCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRnVuY3Rpb24+IE9TU3RhdHVzIGdldFNhbXBsZU1hcChGdW5jdGlvbiYm
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvbj4gT1NTdGF0dXMgZ2V0TWVk
aWFTYW1wbGUoRnVuY3Rpb24mJikgY29uc3Q7CkBAIC0xMDUsOCArMTA2LDggQEAgcHJpdmF0ZToK
ICAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3Q7CiAKICAgICBSZWY8TWVkaWFU
cmFja1JlYWRlcj4gbV90cmFja1JlYWRlcjsKLSAgICBtdXRhYmxlIExvY2F0b3IgbV9sb2NhdG9y
OwotICAgIG11dGFibGUgTG9jayBtX2xvY2F0b3JMb2NrOworICAgIG11dGFibGUgTG9jYXRvciBt
X2xvY2F0b3IgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2F0b3JMb2NrKTsKKyAgICBtdXRhYmxl
IENoZWNrZWRMb2NrIG1fbG9jYXRvckxvY2s7CiAgICAgUmVmPGNvbnN0IFdURjo6TG9nZ2VyPiBt
X2xvZ2dlcjsKICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CiB9Owo=
</data>
<flag name="commit-queue"
          id="450672"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429475</attachid>
            <date>2021-05-23 13:18:07 -0700</date>
            <delta_ts>2021-05-23 13:33:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226152-20210523131806.patch</filename>
            <type>text/plain</type>
            <size>47154</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MzQ5YWMzMmM3ZDU1MzYyODgzNmUxNzFjMGUyYWNmOTg4Y2YyNzE3Li40YzQxMWI5YmRiY2YyODAx
ZmUxY2RjNmJlM2YyYTg3NTkwMDcxYjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAyMS0wNS0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFVzZSBDaGVja2VkTG9jayBpbiBldmVuIG1vcmUgcGxhY2VzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNTIKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBVc2UgQ2hlY2tlZExvY2sgaW4gZXZl
biBtb3JlIHBsYWNlcyB0byBiZW5lZml0IGZyb20gQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNp
cy4KKworICAgICAgICAqIEFQSS9KU1ZpcnR1YWxNYWNoaW5lLm1tOgorICAgICAgICAoV1RGX1JF
UVVJUkVTX0xPQ0spOgorICAgICAgICAqIEFQSS9nbGliL0pTQ1ZpcnR1YWxNYWNoaW5lLmNwcDoK
KyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oOgorICAgICAgICAqIGJ5dGVj
b2RlL1N1cGVyU2FtcGxlci5jcHA6CisgICAgICAgICogZGZnL0RGR0NvbW1vbkRhdGEuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkNvbW1vbkRhdGE6OmludmFsaWRhdGUpOgorICAgICAgICAoSlND
OjpERkc6OkNvbW1vbkRhdGE6On5Db21tb25EYXRhKToKKyAgICAgICAgKEpTQzo6REZHOjpDb21t
b25EYXRhOjppbnN0YWxsVk1UcmFwQnJlYWtwb2ludHMpOgorICAgICAgICAoSlNDOjpERkc6OmNv
ZGVCbG9ja0ZvclZNVHJhcFBDKToKKyAgICAgICAgKiBkZmcvREZHUGxhbi5oOgorICAgICAgICAo
SlNDOjpERkc6OlBsYW46OldURl9HVUFSREVEX0JZX0xPQ0spOgorICAgICAgICAqIGRpc2Fzc2Vt
Ymxlci9EaXNhc3NlbWJsZXIuY3BwOgorICAgICAgICAqIGhlYXAvQmxvY2tEaXJlY3RvcnkuY3Bw
OgorICAgICAgICAoSlNDOjpCbG9ja0RpcmVjdG9yeTo6cGFyYWxsZWxOb3RFbXB0eUJsb2NrU291
cmNlKToKKyAgICAgICAgKiBoZWFwL0hlYXAuaDoKKyAgICAgICAgKiBoZWFwL0lzb1N1YnNwYWNl
UGVyVk0uaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0
b3JDb25uZWN0aW9uQ2xpZW50Lmg6CisKIDIwMjEtMDUtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBp
bmNvbXBhdGlibGUgd2l0aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggODkyY2FkOTdjMDBmYmFjYzZmOWVmODg4OTQ3ZWFlZDM4NDAwZDMzYy4uNWRiYTVmZmZmYzA5
MmJkMGNhODI2ZTEzYWI4MGYyZDJiMmFmY2FmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBA
CisyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
VXNlIENoZWNrZWRMb2NrIGluIGV2ZW4gbW9yZSBwbGFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE1MgorCisgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgorCisgICAgICAgIFVzZSBDaGVja2VkTG9jayBpbiBldmVuIG1vcmUgcGxh
Y2VzIHRvIGJlbmVmaXQgZnJvbSBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLgorCisgICAg
ICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFnZURlY29kZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2NhbGFibGVJbWFnZURlY29kZXI6OmZyYW1lSXNDb21wbGV0ZUF0
SW5kZXggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NhbGFibGVJbWFnZURlY29kZXI6OmZy
YW1lSGFzQWxwaGFBdEluZGV4IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjYWxhYmxlSW1h
Z2VEZWNvZGVyOjpmcmFtZUJ5dGVzQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y2FsYWJsZUltYWdlRGVjb2Rlcjo6ZnJhbWVEdXJhdGlvbkF0SW5kZXggY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U2NhbGFibGVJbWFnZURlY29kZXI6OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJsZUltYWdlRGVjb2Rl
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZh
dGVNb2NrLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2lu
Z0F1ZGlvU291cmNlTGliV2ViUlRDLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6cHVsbEF1
ZGlvRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaDoKKyAgICAgICAgKiB3b3Jr
bGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5oOgorCiAyMDIxLTA1LTIzICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkg
YXMgaXQgaXMgaW5jb21wYXRpYmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCBkNjUzYjc5MjlmZDU2NDlmM2NjNDY2NDk0NDMyMmE4MDI5MzQzZDcxLi40NmQz
NjBjZmYzNGYwMjdlZWQzNjk3ODlmNDU2MjYzYTAyYWFjZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI2IEBACisyMDIxLTA1LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgVXNlIENoZWNrZWRMb2NrIGluIGV2ZW4gbW9yZSBwbGFjZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE1MgorCisgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFVzZSBDaGVja2VkTG9jayBpbiBldmVuIG1v
cmUgcGxhY2VzIHRvIGJlbmVmaXQgZnJvbSBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLgor
CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaDoKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9nbGliL0ROU0NhY2hlLmg6CisgICAgICAgICogU2hhcmVkL21h
Yy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhU2FtcGxlQ3Vyc29yOjpsb2NhdGVJdGVyYXRvciBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhU2FtcGxlQ3Vyc29yOjpsb2NhdGVNZWRpYVNhbXBsZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhU2FtcGxlQ3Vyc29yOjpsb2NhdGVUaW1pbmcgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpNZWRpYVNhbXBsZUN1cnNvcjo6c3RlcEluT3JkZXJlZE1hcCk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhU2FtcGxlQ3Vyc29yOjpzdGVwSW5QcmVzZW50YXRpb25UaW1lKToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFTYW1wbGVDdXJzb3I6OmdldE1lZGlhU2FtcGxlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFTYW1wbGVDdXJzb3I6OmdldFRpbWluZyBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhU2FtcGxlQ3Vyc29yOjpnZXRQbGF5YWJsZUhvcml6b24g
Y29uc3QpOgorICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1w
bGVDdXJzb3IuaDoKKwogMjAyMS0wNS0yMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBJbXBsZW1lbnQgcGFnZSBjbGllbnQgaG9vayBmb3Ig
cmVxdWVzdGluZyBpbWFnZSBleHRyYWN0aW9uIHJlc3VsdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbQppbmRleCBjMjA5N2MyYTg5NjA1MTY4NGQ5Y2Vk
OWRjY2U2ODliNDFjYTE2NmE1Li5mNjEzNDk4YWM4MmM3Y2Y5MzE2ZDM4NjJiYjc2YWUwYjQ5YzEz
MTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hp
bmUubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lLm1t
CkBAIC0zOCwxMiArMzgsMTIgQEAKICNpbXBvcnQgIlNpZ2lsbENyYXNoQW5hbHl6ZXIuaCIKICNp
bXBvcnQgIlNsb3RWaXNpdG9ySW5saW5lcy5oIgogI2ltcG9ydCA8bXV0ZXg+Ci0jaW1wb3J0IDx3
dGYvTG9jay5oPgorI2ltcG9ydCA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CiAKIHN0YXRpYyBOU01hcFRhYmxlICpnbG9iYWxXcmFwcGVyQ2FjaGUgPSAwOwog
Ci1zdGF0aWMgTG9jayB3cmFwcGVyQ2FjaGVNdXRleDsKK3N0YXRpYyBDaGVja2VkTG9jayB3cmFw
cGVyQ2FjaGVNdXRleDsKIAogc3RhdGljIHZvaWQgaW5pdFdyYXBwZXJDYWNoZSgpCiB7CkBAIC01
Myw3ICs1Myw3IEBAIHN0YXRpYyB2b2lkIGluaXRXcmFwcGVyQ2FjaGUoKQogICAgIGdsb2JhbFdy
YXBwZXJDYWNoZSA9IFtbTlNNYXBUYWJsZSBhbGxvY10gaW5pdFdpdGhLZXlPcHRpb25zOmtleU9w
dGlvbnMgdmFsdWVPcHRpb25zOnZhbHVlT3B0aW9ucyBjYXBhY2l0eTowXTsKIH0KIAotc3RhdGlj
IE5TTWFwVGFibGUgKndyYXBwZXJDYWNoZSgpCitzdGF0aWMgTlNNYXBUYWJsZSAqd3JhcHBlckNh
Y2hlKCkgV1RGX1JFUVVJUkVTX0xPQ0sod3JhcHBlckNhY2hlTXV0ZXgpCiB7CiAgICAgaWYgKCFn
bG9iYWxXcmFwcGVyQ2FjaGUpCiAgICAgICAgIGluaXRXcmFwcGVyQ2FjaGUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWaXJ0dWFsTWFjaGluZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDVmlydHVhbE1hY2hpbmUuY3BwCmlu
ZGV4IDQzMWE3MTBkZTM3Y2MxZjAzZTk3Njk5ZjFiMmIxZDUwMjIzNGNiZTEuLjUxMDVkMjc3MGZk
ZGFkN2RiM2QwMTE5MjM4YjMyMjJlMDc2YWRkOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvZ2xpYi9KU0NWaXJ0dWFsTWFjaGluZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9nbGliL0pTQ1ZpcnR1YWxNYWNoaW5lLmNwcApAQCAtMjMsNiArMjMsNyBA
QAogI2luY2x1ZGUgIkpTQ0NvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiSlNDVmlydHVhbE1h
Y2hpbmVQcml2YXRlLmgiCiAjaW5jbHVkZSAiSlNDb250ZXh0UmVmLmgiCisjaW5jbHVkZSA8d3Rm
L0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgpAQCAtNDgs
OSArNDksOSBAQCBzdHJ1Y3QgX0pTQ1ZpcnR1YWxNYWNoaW5lUHJpdmF0ZSB7CiAKIFdFQktJVF9E
RUZJTkVfVFlQRShKU0NWaXJ0dWFsTWFjaGluZSwganNjX3ZpcnR1YWxfbWFjaGluZSwgR19UWVBF
X09CSkVDVCkKIAotc3RhdGljIExvY2sgd3JhcHBlckNhY2hlTXV0ZXg7CitzdGF0aWMgQ2hlY2tl
ZExvY2sgd3JhcHBlckNhY2hlTXV0ZXg7CiAKLXN0YXRpYyBIYXNoTWFwPEpTQ29udGV4dEdyb3Vw
UmVmLCBKU0NWaXJ0dWFsTWFjaGluZSo+JiB3cmFwcGVyTWFwKCkKK3N0YXRpYyBIYXNoTWFwPEpT
Q29udGV4dEdyb3VwUmVmLCBKU0NWaXJ0dWFsTWFjaGluZSo+JiB3cmFwcGVyTWFwKCkgV1RGX1JF
UVVJUkVTX0xPQ0sod3JhcHBlckNhY2hlTXV0ZXgpCiB7CiAgICAgc3RhdGljIExhenlOZXZlckRl
c3Ryb3llZDxIYXNoTWFwPEpTQ29udGV4dEdyb3VwUmVmLCBKU0NWaXJ0dWFsTWFjaGluZSo+PiBz
aGFyZWQ7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCmluZGV4IGY1Nzdk
MjEyM2YzYjYwYjE4MmM0OWZhNzg1YjBmZGJhNTFlYjY5NzkuLmViMzY1NmZjYmQ1NTA1NmFiYjZm
YzU1OTg5ZDFmZDY5MWFmZjBkZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAi
U3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oIgogI2luY2x1ZGUgIlN0dWJJbmZvU3Vt
bWFyeS5oIgogI2luY2x1ZGUgPHd0Zi9Cb3guaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2su
aD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTMzOSw3ICszNDAsNyBAQCBwcml2YXRlOgogICAg
IC8vIE5vdGUgdGhhdCBpdCdzIGFsd2F5cyBzYWZlIHRvIGNsZWFyIHRoaXMuIElmIHdlIGNsZWFy
IGl0IHByZW1hdHVyZWx5LCB0aGVuIGlmIHdlIHNlZSB0aGUgc2FtZQogICAgIC8vIHN0cnVjdHVy
ZSBhZ2FpbiBkdXJpbmcgdGhpcyBidWZmZXJpbmcgY291bnRkb3duLCB3ZSB3aWxsIGNyZWF0ZSBh
biBBY2Nlc3NDYXNlIG9iamVjdCBmb3IgaXQuCiAgICAgLy8gVGhhdCdzIG5vdCBzbyBiYWQgLSB3
ZSdsbCBnZXQgcmlkIG9mIHRoZSByZWR1bmRhbnQgb25lcyBvbmNlIHdlIHJlZ2VuZXJhdGUuCi0g
ICAgSGFzaFNldDxCdWZmZXJlZFN0cnVjdHVyZSwgQnVmZmVyZWRTdHJ1Y3R1cmU6Okhhc2gsIEJ1
ZmZlcmVkU3RydWN0dXJlOjpLZXlUcmFpdHM+IG1fYnVmZmVyZWRTdHJ1Y3R1cmVzOworICAgIEhh
c2hTZXQ8QnVmZmVyZWRTdHJ1Y3R1cmUsIEJ1ZmZlcmVkU3RydWN0dXJlOjpIYXNoLCBCdWZmZXJl
ZFN0cnVjdHVyZTo6S2V5VHJhaXRzPiBtX2J1ZmZlcmVkU3RydWN0dXJlcyBXVEZfR1VBUkRFRF9C
WV9MT0NLKG1fYnVmZmVyZWRTdHJ1Y3R1cmVzTG9jayk7CiBwdWJsaWM6CiAgICAgQ29kZUxvY2F0
aW9uTGFiZWw8SklUU3R1YlJvdXRpbmVQdHJUYWc+IHN0YXJ0OyAvLyBUaGlzIGlzIGVpdGhlciB0
aGUgc3RhcnQgb2YgdGhlIGlubGluZSBJQyBmb3IgKmJ5SWQgY2FjaGVzLiBvciB0aGUgbG9jYXRp
b24gb2YgcGF0Y2hhYmxlIGp1bXAgZm9yICdpbnN0YW5jZW9mJyBjYWNoZXMuCiAgICAgQ29kZUxv
Y2F0aW9uTGFiZWw8SlNJbnRlcm5hbFB0clRhZz4gZG9uZUxvY2F0aW9uOwpAQCAtMzkxLDcgKzM5
Miw3IEBAIHB1YmxpYzoKICAgICBib29sIHByb3BlcnR5SXNJbnQzMiA6IDE7CiAgICAgYm9vbCBw
cm9wZXJ0eUlzU3ltYm9sIDogMTsKIHByaXZhdGU6Ci0gICAgTG9jayBtX2J1ZmZlcmVkU3RydWN0
dXJlc0xvY2s7CisgICAgQ2hlY2tlZExvY2sgbV9idWZmZXJlZFN0cnVjdHVyZXNMb2NrOwogfTsK
IAogaW5saW5lIENvZGVPcmlnaW4gZ2V0U3RydWN0dXJlU3R1YkluZm9Db2RlT3JpZ2luKFN0cnVj
dHVyZVN0dWJJbmZvJiBzdHJ1Y3R1cmVTdHViSW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TdXBlclNhbXBsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1N1cGVyU2FtcGxlci5jcHAKaW5kZXggYTQyNjQwZjI4NjMyNjk3Mjc5ZGM0
OWEzY2U1MWVmYzM5ZWMxYTM5MC4uZjZlZGI4NDY4NGQ1ZjUyOGZkNjhhZmFhMDE1NGZjZDg1Mjdi
ZWYyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N1cGVyU2Ft
cGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N1cGVyU2FtcGxl
ci5jcHAKQEAgLTI3LDggKzI3LDggQEAKICNpbmNsdWRlICJTdXBlclNhbXBsZXIuaCIKIAogI2lu
Y2x1ZGUgIk9wdGlvbnMuaCIKKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRl
IDx3dGYvRGF0YUxvZy5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTM2LDkgKzM2LDkgQEAgbmFtZXNwYWNl
IEpTQyB7CiB2b2xhdGlsZSB1aW50MzJfdCBnX3N1cGVyU2FtcGxlckNvdW50Owogdm9sYXRpbGUg
Ym9vbCBnX3N1cGVyU2FtcGxlckVuYWJsZWQ7CiAKLXN0YXRpYyBMb2NrIGxvY2s7Ci1zdGF0aWMg
ZG91YmxlIGluOwotc3RhdGljIGRvdWJsZSBvdXQ7CitzdGF0aWMgQ2hlY2tlZExvY2sgbG9jazsK
K3N0YXRpYyBkb3VibGUgaW4gV1RGX0dVQVJERURfQllfTE9DSyhsb2NrKTsKK3N0YXRpYyBkb3Vi
bGUgb3V0IFdURl9HVUFSREVEX0JZX0xPQ0sobG9jayk7CiAKIHZvaWQgaW5pdGlhbGl6ZVN1cGVy
U2FtcGxlcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nv
bW1vbkRhdGEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb25EYXRhLmNw
cAppbmRleCAyN2VkZjFjODFhNTM4MzhmMWI4YjZjZTkwMDNlYzQ2ZDczNDliNTkwLi45NzFmOGIw
NWE4N2U0NTY2NjU2YTlmMTNhOTlkODhkNmYwYTI3MDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbkRhdGEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ29tbW9uRGF0YS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJJ
bmxpbmVDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1
ZGUgIlRyYWNrZWRSZWZlcmVuY2VzLmgiCisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgREZHIHsKQEAgLTQ0LDggKzQ1LDggQEAgdm9pZCBDb21tb25EYXRhOjpzaHJpbmtUb0ZpdCgp
CiAgICAgbV9qdW1wUmVwbGFjZW1lbnRzLnNocmlua1RvRml0KCk7CiB9CiAKLXN0YXRpYyBMb2Nr
IHBjQ29kZUJsb2NrTWFwTG9jazsKLWlubGluZSBIYXNoTWFwPHZvaWQqLCBDb2RlQmxvY2sqPiYg
cGNDb2RlQmxvY2tNYXAoQWJzdHJhY3RMb2NrZXImKQorc3RhdGljIENoZWNrZWRMb2NrIHBjQ29k
ZUJsb2NrTWFwTG9jazsKK2lubGluZSBIYXNoTWFwPHZvaWQqLCBDb2RlQmxvY2sqPiYgcGNDb2Rl
QmxvY2tNYXAoKSBXVEZfUkVRVUlSRVNfTE9DSyhwY0NvZGVCbG9ja01hcExvY2spCiB7CiAgICAg
c3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxIYXNoTWFwPHZvaWQqLCBDb2RlQmxvY2sqPj4gcGND
b2RlQmxvY2tNYXA7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CkBAIC02Miw3
ICs2Myw3IEBAIGJvb2wgQ29tbW9uRGF0YTo6aW52YWxpZGF0ZSgpCiAKICAgICBpZiAoVU5MSUtF
TFkoaGFzVk1UcmFwc0JyZWFrcG9pbnRzSW5zdGFsbGVkKSkgewogICAgICAgICBMb2NrZXIgbG9j
a2VyIHsgcGNDb2RlQmxvY2tNYXBMb2NrIH07Ci0gICAgICAgIGF1dG8mIG1hcCA9IHBjQ29kZUJs
b2NrTWFwKGxvY2tlcik7CisgICAgICAgIGF1dG8mIG1hcCA9IHBjQ29kZUJsb2NrTWFwKCk7CiAg
ICAgICAgIGZvciAoYXV0byYganVtcFJlcGxhY2VtZW50IDogbV9qdW1wUmVwbGFjZW1lbnRzKQog
ICAgICAgICAgICAgbWFwLnJlbW92ZShqdW1wUmVwbGFjZW1lbnQuZGF0YUxvY2F0aW9uKCkpOwog
ICAgICAgICBoYXNWTVRyYXBzQnJlYWtwb2ludHNJbnN0YWxsZWQgPSBmYWxzZTsKQEAgLTc4LDcg
Kzc5LDcgQEAgQ29tbW9uRGF0YTo6fkNvbW1vbkRhdGEoKQogewogICAgIGlmIChVTkxJS0VMWSho
YXNWTVRyYXBzQnJlYWtwb2ludHNJbnN0YWxsZWQpKSB7CiAgICAgICAgIExvY2tlciBsb2NrZXIg
eyBwY0NvZGVCbG9ja01hcExvY2sgfTsKLSAgICAgICAgYXV0byYgbWFwID0gcGNDb2RlQmxvY2tN
YXAobG9ja2VyKTsKKyAgICAgICAgYXV0byYgbWFwID0gcGNDb2RlQmxvY2tNYXAoKTsKICAgICAg
ICAgZm9yIChhdXRvJiBqdW1wUmVwbGFjZW1lbnQgOiBtX2p1bXBSZXBsYWNlbWVudHMpCiAgICAg
ICAgICAgICBtYXAucmVtb3ZlKGp1bXBSZXBsYWNlbWVudC5kYXRhTG9jYXRpb24oKSk7CiAgICAg
fQpAQCAtOTEsNyArOTIsNyBAQCB2b2lkIENvbW1vbkRhdGE6Omluc3RhbGxWTVRyYXBCcmVha3Bv
aW50cyhDb2RlQmxvY2sqIG93bmVyKQogICAgICAgICByZXR1cm47CiAgICAgaGFzVk1UcmFwc0Jy
ZWFrcG9pbnRzSW5zdGFsbGVkID0gdHJ1ZTsKIAotICAgIGF1dG8mIG1hcCA9IHBjQ29kZUJsb2Nr
TWFwKGxvY2tlcik7CisgICAgYXV0byYgbWFwID0gcGNDb2RlQmxvY2tNYXAoKTsKICNpZiAhZGVm
aW5lZChOREVCVUcpCiAgICAgLy8gV2UgbmVlZCB0byBiZSBhYmxlIHRvIGhhbmRsZSBtb3JlIHRo
YW4gb25lIGludmFsaWRhdGlvbiBwb2ludCBhdCB0aGUgc2FtZSBwYwogICAgIC8vIGJ1dCB3ZSB3
YW50IHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBmb3JnZXQgdG8gcmVtb3ZlIGEgcGMgZnJvbSB0aGUg
bWFwLgpAQCAtMTEzLDcgKzExNCw3IEBAIENvZGVCbG9jayogY29kZUJsb2NrRm9yVk1UcmFwUEMo
dm9pZCogcGMpCiB7CiAgICAgQVNTRVJUKGlzSklUUEMocGMpKTsKICAgICBMb2NrZXIgbG9ja2Vy
IHsgcGNDb2RlQmxvY2tNYXBMb2NrIH07Ci0gICAgYXV0byYgbWFwID0gcGNDb2RlQmxvY2tNYXAo
bG9ja2VyKTsKKyAgICBhdXRvJiBtYXAgPSBwY0NvZGVCbG9ja01hcCgpOwogICAgIGF1dG8gcmVz
dWx0ID0gbWFwLmZpbmQocGMpOwogICAgIGlmIChyZXN1bHQgPT0gbWFwLmVuZCgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHUGxhbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgKaW5kZXggMTcy
YTcyZDljYjdiNTM3MTIzMDAyMjY0ZDM1MjA2NWM0NzUzOGJmNy4uYzFlYjcxMmEyODYxNjE3MDJj
YmJjOGRiODAxMzMyODI5NTAxNzI5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdQbGFuLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgK
QEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJPcGVyYW5kcy5oIgogI2luY2x1ZGUgIlByb2Zp
bGVyQ29tcGlsYXRpb24uaCIKICNpbmNsdWRlICJSZWNvcmRlZFN0YXR1c2VzLmgiCisjaW5jbHVk
ZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIApAQCAtMTM3LDggKzEzOCw4IEBAIHByaXZh
dGU6CiAgICAgQ29kZUJsb2NrKiBtX3Byb2ZpbGVkREZHQ29kZUJsb2NrOwogCiAgICAgT3BlcmFu
ZHM8T3B0aW9uYWw8SlNWYWx1ZT4+IG1fbXVzdEhhbmRsZVZhbHVlczsKLSAgICBib29sIG1fbXVz
dEhhbmRsZVZhbHVlc01heUluY2x1ZGVHYXJiYWdlIHsgdHJ1ZSB9OwotICAgIExvY2sgbV9tdXN0
SGFuZGxlVmFsdWVDbGVhbmluZ0xvY2s7CisgICAgYm9vbCBtX211c3RIYW5kbGVWYWx1ZXNNYXlJ
bmNsdWRlR2FyYmFnZSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbXVzdEhhbmRsZVZhbHVlQ2xlYW5p
bmdMb2NrKSB7IHRydWUgfTsKKyAgICBDaGVja2VkTG9jayBtX211c3RIYW5kbGVWYWx1ZUNsZWFu
aW5nTG9jazsKIAogICAgIGJvb2wgbV93aWxsVHJ5VG9UaWVyVXAgeyBmYWxzZSB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5jcHAK
aW5kZXggNTVjMDVjODEyMjlmMzU5MzZmZjEzNDdjZGRmNDU0ZjNhZmI2YWM5MC4uN2I2Yzg5MzU3
OTJhMzBiMDUyOGY1M2I4NzFjN2UzMTY3OGU2MTdkOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9EaXNhc3NlbWJsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNwcApAQCAtMjcsMTAgKzI3LDEw
IEBACiAjaW5jbHVkZSAiRGlzYXNzZW1ibGVyLmgiCiAKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYuaCIKLSNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0No
ZWNrZWRDb25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRl
IDx3dGYvRGF0YUxvZy5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgogCkBAIC0xMDksOSArMTA5LDkgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAg
IH0KICAgICAKLSAgICBMb2NrIG1fbG9jazsKLSAgICBDb25kaXRpb24gbV9jb25kaXRpb247Ci0g
ICAgRGVxdWU8c3RkOjp1bmlxdWVfcHRyPERpc2Fzc2VtYmx5VGFzaz4+IG1fcXVldWU7CisgICAg
Q2hlY2tlZExvY2sgbV9sb2NrOworICAgIENoZWNrZWRDb25kaXRpb24gbV9jb25kaXRpb247Cisg
ICAgRGVxdWU8c3RkOjp1bmlxdWVfcHRyPERpc2Fzc2VtYmx5VGFzaz4+IG1fcXVldWUgV1RGX0dV
QVJERURfQllfTE9DSyhtX2xvY2spOwogICAgIGJvb2wgbV93b3JraW5nIHsgZmFsc2UgfTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrRGlyZWN0b3J5
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrRGlyZWN0b3J5LmNwcAppbmRl
eCA2YzI0MmI4NjNiY2VjZDczZTgzMGE2M2EzNWZlMjAwMGQwYTIzNzk5Li5hZGI3NTdlM2Q2MDU4
NDY1NTlmYTFmMjk2YzM3OWYwOWIyYTI4OTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvQmxvY2tEaXJlY3RvcnkuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiU3Vi
c3BhY2VJbmxpbmVzLmgiCiAjaW5jbHVkZSAiU3VwZXJTYW1wbGVyLmgiCiAKKyNpbmNsdWRlIDx3
dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb25UcmFpdHMuaD4KICNpbmNs
dWRlIDx3dGYvU2ltcGxlU3RhdHMuaD4KIApAQCAtMzQzLDkgKzM0NCw5IEBAIFJlZlB0cjxTaGFy
ZWRUYXNrPE1hcmtlZEJsb2NrOjpIYW5kbGUqKCk+PiBCbG9ja0RpcmVjdG9yeTo6cGFyYWxsZWxO
b3RFbXB0eUJsb2NrCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
QmxvY2tEaXJlY3RvcnkmIG1fZGlyZWN0b3J5OwotICAgICAgICBzaXplX3QgbV9pbmRleCB7IDAg
fTsKLSAgICAgICAgTG9jayBtX2xvY2s7CisgICAgICAgIEJsb2NrRGlyZWN0b3J5JiBtX2RpcmVj
dG9yeSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jayk7CisgICAgICAgIHNpemVfdCBtX2luZGV4
IFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKSB7IDAgfTsKKyAgICAgICAgQ2hlY2tlZExvY2sg
bV9sb2NrOwogICAgICAgICBib29sIG1fZG9uZSB7IGZhbHNlIH07CiAgICAgfTsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuaAppbmRleCA5M2FhMjhiZGI3MGY2ODhiYzk1NGZlM2ZjYTcz
N2M0MjcyNDMzNjNmLi43YTUzZTA1MTVkMDY5NjUzZDA0ZmI5YmFjMzU1OGQ3ZTgxZDk1ZjJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAi
U3luY2hyb25vdXNuZXNzLmgiCiAjaW5jbHVkZSAiV2Vha0hhbmRsZU93bmVyLmgiCiAjaW5jbHVk
ZSA8d3RmL0F1dG9tYXRpY1RocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgog
I2luY2x1ZGUgPHd0Zi9Db25jdXJyZW50UHRySGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1
ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgpAQCAtNjQ4LDcgKzY0OSw3IEBA
IHByaXZhdGU6CiAgICAgLy8gb25lIEdDIHRvIHRoZSBuZXh0LiBHQyBtYXJraW5nIHRocmVhZHMg
Y2xhaW0gdGhlc2UgYXQgdGhlIHN0YXJ0IG9mIG1hcmtpbmcsIGFuZCByZXR1cm4KICAgICAvLyB0
aGVtIGF0IHRoZSBlbmQuCiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxTbG90VmlzaXRvcj4+
IG1fcGFyYWxsZWxTbG90VmlzaXRvcnM7Ci0gICAgVmVjdG9yPFNsb3RWaXNpdG9yKj4gbV9hdmFp
bGFibGVQYXJhbGxlbFNsb3RWaXNpdG9yczsKKyAgICBWZWN0b3I8U2xvdFZpc2l0b3IqPiBtX2F2
YWlsYWJsZVBhcmFsbGVsU2xvdFZpc2l0b3JzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9wYXJhbGxl
bFNsb3RWaXNpdG9yTG9jayk7CiAgICAgCiAgICAgSGFuZGxlU2V0IG1faGFuZGxlU2V0OwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxDb2RlQmxvY2tTZXQ+IG1fY29kZUJsb2NrczsKQEAgLTY1Niw3ICs2
NTcsNyBAQCBwcml2YXRlOgogICAgIENGaW5hbGl6ZXJPd25lciBtX2NGaW5hbGl6ZXJPd25lcjsK
ICAgICBMYW1iZGFGaW5hbGl6ZXJPd25lciBtX2xhbWJkYUZpbmFsaXplck93bmVyOwogICAgIAot
ICAgIExvY2sgbV9wYXJhbGxlbFNsb3RWaXNpdG9yTG9jazsKKyAgICBDaGVja2VkTG9jayBtX3Bh
cmFsbGVsU2xvdFZpc2l0b3JMb2NrOwogICAgIGJvb2wgbV9pc1NhZmVUb0NvbGxlY3QgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9pc1NodXR0aW5nRG93biB7IGZhbHNlIH07CiAgICAgYm9vbCBtX211
dGF0b3JTaG91bGRCZUZlbmNlZCB7IE9wdGlvbnM6OmZvcmNlRmVuY2VkQmFycmllcigpIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmgKaW5kZXggNGE5
OWE4ODVmOTYxYjk3ZWJiYTc4YzJhNWI3NWNkNzY0NGE1NmNlZi4uYTk2YzI5Nzk1NmU3MjllNGFm
NGIxZWI0MTMzYWM4OTY2NTE3NzRmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSXNvU3Vic3BhY2VQZXJWTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0lzb1N1YnNwYWNlUGVyVk0uaApAQCAtMjYsOSArMjYsOSBAQAogI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlICJJc29TdWJzcGFjZS5oIgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2lu
Y2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVk
ZSA8d3RmL0xvY2suaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTYyLDggKzYyLDggQEAgcHJp
dmF0ZToKICAgICBjbGFzcyBBdXRvcmVtb3ZpbmdJc29TdWJzcGFjZTsKICAgICBmcmllbmQgY2xh
c3MgQXV0b3JlbW92aW5nSXNvU3Vic3BhY2U7CiAKLSAgICBMb2NrIG1fbG9jazsKLSAgICBIYXNo
TWFwPFZNKiwgSXNvU3Vic3BhY2UqPiBtX3N1YnNwYWNlUGVyVk07CisgICAgQ2hlY2tlZExvY2sg
bV9sb2NrOworICAgIEhhc2hNYXA8Vk0qLCBJc29TdWJzcGFjZSo+IG1fc3Vic3BhY2VQZXJWTSBX
VEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jayk7CiAgICAgRnVuY3Rpb248U3Vic3BhY2VQYXJhbWV0
ZXJzKFZNJik+IG1fc3Vic3BhY2VQYXJhbWV0ZXJzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvckNv
bm5lY3Rpb25DbGllbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3Rl
L3NvY2tldC9SZW1vdGVJbnNwZWN0b3JDb25uZWN0aW9uQ2xpZW50LmgKaW5kZXggMWM3NTRjYTY4
MGY1ODVkNTdmNDM3OTkyZGI4MWUxYmY3YjljMjkwNy4uZTg0NmZmM2ZkOTkyM2M5ZWE2OWVlY2Q4
OTNlYzgzMzJjZTI1ZDY0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvckNvbm5lY3Rpb25DbGllbnQuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5z
cGVjdG9yQ29ubmVjdGlvbkNsaWVudC5oCkBAIC0zMCw5ICszMCw5IEBACiAjaW5jbHVkZSAiUmVt
b3RlQ29udHJvbGxhYmxlVGFyZ2V0LmgiCiAjaW5jbHVkZSAiUmVtb3RlSW5zcGVjdG9yTWVzc2Fn
ZVBhcnNlci5oIgogI2luY2x1ZGUgIlJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgiCisj
aW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewpAQCAtNjUs
OCArNjUsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBzdGF0aWMgT3B0aW9uYWw8RXZlbnQ+IGV4dHJh
Y3RFdmVudChDb25uZWN0aW9uSUQsIFZlY3Rvcjx1aW50OF90PiYmKTsKIAotICAgIEhhc2hNYXA8
Q29ubmVjdGlvbklELCBNZXNzYWdlUGFyc2VyPiBtX3BhcnNlcnM7Ci0gICAgTG9jayBtX3BhcnNl
cnNMb2NrOworICAgIEhhc2hNYXA8Q29ubmVjdGlvbklELCBNZXNzYWdlUGFyc2VyPiBtX3BhcnNl
cnMgV1RGX0dVQVJERURfQllfTE9DSyhtX3BhcnNlcnNMb2NrKTsKKyAgICBDaGVja2VkTG9jayBt
X3BhcnNlcnNMb2NrOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJsZUltYWdlRGVj
b2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJs
ZUltYWdlRGVjb2Rlci5jcHAKaW5kZXggZjJjZWIwMDBhZDQwN2M0ZWI2MjM1N2NjYTBjMDIyYTVi
NzFhNTkwNS4uZGRiMTE0Mzk0NzQ0MGQ3MTdlODMzY2JkM2M3ZDZkYzIxYTIwM2JlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFn
ZURlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L1NjYWxhYmxlSW1hZ2VEZWNvZGVyLmNwcApAQCAtMTcwLDcgKzE3MCw3IEBAIFJlZlB0cjxTY2Fs
YWJsZUltYWdlRGVjb2Rlcj4gU2NhbGFibGVJbWFnZURlY29kZXI6OmNyZWF0ZShTaGFyZWRCdWZm
ZXImIGRhdGEsIEFsCiAKIGJvb2wgU2NhbGFibGVJbWFnZURlY29kZXI6OmZyYW1lSXNDb21wbGV0
ZUF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAogewotICAgIExvY2tlciBsb2NrZXIgeyBtX211
dGV4IH07CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIGlmIChpbmRleCA+PSBt
X2ZyYW1lQnVmZmVyQ2FjaGUuc2l6ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTE4
MCw3ICsxODAsNyBAQCBib29sIFNjYWxhYmxlSW1hZ2VEZWNvZGVyOjpmcmFtZUlzQ29tcGxldGVB
dEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKIAogYm9vbCBTY2FsYWJsZUltYWdlRGVjb2Rlcjo6
ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAogewotICAgIExvY2tlciBs
b2NrZXIgeyBtX211dGV4IH07CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIGlm
IChtX2ZyYW1lQnVmZmVyQ2FjaGUuc2l6ZSgpIDw9IGluZGV4KQogICAgICAgICByZXR1cm4gdHJ1
ZTsKIApAQCAtMTkyLDcgKzE5Miw3IEBAIGJvb2wgU2NhbGFibGVJbWFnZURlY29kZXI6OmZyYW1l
SGFzQWxwaGFBdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKIAogdW5zaWduZWQgU2NhbGFibGVJ
bWFnZURlY29kZXI6OmZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCBpbmRleCwgU3Vic2FtcGxpbmdM
ZXZlbCkgY29uc3QKIHsKLSAgICBMb2NrZXIgbG9ja2VyIHsgbV9tdXRleCB9OworICAgIExvY2tl
ciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICBpZiAobV9mcmFtZUJ1ZmZlckNhY2hlLnNpemUoKSA8
PSBpbmRleCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgLy8gRklYTUU6IFVzZSB0aGUgZGltZW5z
aW9uIG9mIHRoZSByZXF1ZXN0ZWQgZnJhbWUuCkBAIC0yMDEsNyArMjAxLDcgQEAgdW5zaWduZWQg
U2NhbGFibGVJbWFnZURlY29kZXI6OmZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCBpbmRleCwgU3Vi
c2FtcGxpbmdMZXZlbCkKIAogU2Vjb25kcyBTY2FsYWJsZUltYWdlRGVjb2Rlcjo6ZnJhbWVEdXJh
dGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAogewotICAgIExvY2tlciBsb2NrZXIgeyBt
X211dGV4IH07CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIGlmIChpbmRleCA+
PSBtX2ZyYW1lQnVmZmVyQ2FjaGUuc2l6ZSgpKQogICAgICAgICByZXR1cm4gMF9zOwogCkBAIC0y
MjEsNyArMjIxLDcgQEAgU2Vjb25kcyBTY2FsYWJsZUltYWdlRGVjb2Rlcjo6ZnJhbWVEdXJhdGlv
bkF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAogCiBQbGF0Zm9ybUltYWdlUHRyIFNjYWxhYmxl
SW1hZ2VEZWNvZGVyOjpjcmVhdGVGcmFtZUltYWdlQXRJbmRleChzaXplX3QgaW5kZXgsIFN1YnNh
bXBsaW5nTGV2ZWwsIGNvbnN0IERlY29kaW5nT3B0aW9ucyYpCiB7Ci0gICAgTG9ja2VyIGxvY2tl
ciB7IG1fbXV0ZXggfTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgLy8gWmVy
by1oZWlnaHQgaW1hZ2VzIGNhbiBjYXVzZSBwcm9ibGVtcyBmb3Igc29tZSBwb3J0cy4gSWYgd2Ug
aGF2ZSBhbiBlbXB0eSBpbWFnZSBkaW1lbnNpb24sIGp1c3QgYmFpbC4KICAgICBpZiAoc2l6ZSgp
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJsZUltYWdlRGVjb2Rlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFnZURlY29k
ZXIuaAppbmRleCBmY2YwYTYxMTVkZDg2YzE0NzU5YjJiMjFhN2M3MWM3OGU5ZjRjZjRhLi41MDI4
Y2JhYmQ4NmUwODViNGM1Y2VhZTEyZDJmODgzMDBiZTg0MDE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJsZUltYWdlRGVjb2Rlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL1NjYWxhYmxlSW1hZ2VE
ZWNvZGVyLmgKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJTY2FsYWJsZUltYWdlRGVjb2Rl
ckZyYW1lLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgc2V0RGF0YShTaGFyZWRCdWZmZXImIGRhdGEsIGJvb2wgYWxsRGF0YVJlY2Vp
dmVkKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbXV0ZXggfTsK
KyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgICAgICBpZiAobV9lbmNvZGVk
RGF0YVN0YXR1cyA9PSBFbmNvZGVkRGF0YVN0YXR1czo6RXJyb3IpCiAgICAgICAgICAgICByZXR1
cm47CiAKQEAgLTE5Niw4ICsxOTYsOCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBSZWZQ
dHI8U2hhcmVkQnVmZmVyOjpEYXRhU2VnbWVudD4gbV9kYXRhOwotICAgIFZlY3RvcjxTY2FsYWJs
ZUltYWdlRGVjb2RlckZyYW1lLCAxPiBtX2ZyYW1lQnVmZmVyQ2FjaGU7Ci0gICAgbXV0YWJsZSBM
b2NrIG1fbXV0ZXg7CisgICAgVmVjdG9yPFNjYWxhYmxlSW1hZ2VEZWNvZGVyRnJhbWUsIDE+IG1f
ZnJhbWVCdWZmZXJDYWNoZSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jayk7CisgICAgbXV0YWJs
ZSBDaGVja2VkTG9jayBtX2xvY2s7CiAgICAgYm9vbCBtX3ByZW11bHRpcGx5QWxwaGE7CiAgICAg
Ym9vbCBtX2lnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlOwogICAgIEltYWdlT3JpZW50YXRpb24g
bV9vcmllbnRhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5oCmluZGV4IDQ0NTlm
MmUyYTI0MDk5NTcxM2E0MTNjMTg1ZWJmZGQ1YzEzYzFlOTMuLjkwMjMwZDg1NjNiYmI1OTFmY2Zk
ZjA5MjdkZmM4ZTE4MWYxMWUyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suaApA
QCAtMjcsNyArMjcsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNpbmNsdWRlICJN
ZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8
d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MCwxMCArNTAsMTAgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHJlc3VtZVJlY29yZGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwog
ICAgIGNvbnN0IFN0cmluZyYgbWltZVR5cGUoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgZ2Vu
ZXJhdGVNb2NrQ291bnRlclN0cmluZygpOworICAgIHZvaWQgZ2VuZXJhdGVNb2NrQ291bnRlclN0
cmluZygpIFdURl9SRVFVSVJFU19MT0NLKG1fYnVmZmVyTG9jayk7CiAKLSAgICBtdXRhYmxlIExv
Y2sgbV9idWZmZXJMb2NrOwotICAgIFN0cmluZ0J1aWxkZXIgbV9idWZmZXI7CisgICAgbXV0YWJs
ZSBDaGVja2VkTG9jayBtX2J1ZmZlckxvY2s7CisgICAgU3RyaW5nQnVpbGRlciBtX2J1ZmZlciBX
VEZfR1VBUkRFRF9CWV9MT0NLKG1fYnVmZmVyTG9jayk7CiAgICAgdW5zaWduZWQgbV9jb3VudGVy
IHsgMCB9OwogICAgIFN0cmluZyBtX2F1ZGlvVHJhY2tJRDsKICAgICBTdHJpbmcgbV92aWRlb1Ry
YWNrSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJD
b2NvYS5oCmluZGV4IDY2MGI4ZWFmMjJlNzE4NTEwNmQ4N2QzMmI2NjAwZjE4MWIzYjJmZjkuLjYz
ZDEyNmY5OWIwMTJhZTY1NDhhYjM1YWY1OWNhNTFlZTkxODliYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXJDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oCkBAIC0yOSw5ICsyOSw5
IEBACiAjaW5jbHVkZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgogCiAjaW5jbHVkZSAiU2hh
cmVkQnVmZmVyLmgiCisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVkZSA8
d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTExOCw4
ICsxMTgsOCBAQCBwcml2YXRlOgogCiAgICAgUmV0YWluUHRyPEFWQXNzZXRXcml0ZXI+IG1fd3Jp
dGVyOwogCi0gICAgTG9jayBtX2RhdGFMb2NrOwotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1f
ZGF0YTsKKyAgICBDaGVja2VkTG9jayBtX2RhdGFMb2NrOworICAgIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IG1fZGF0YSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fZGF0YUxvY2spOwogICAgIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJiwgZG91YmxlKT4gbV9mZXRjaERh
dGFDb21wbGV0aW9uSGFuZGxlcjsKIAogICAgIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9u
UmVmPiBtX2F1ZGlvRm9ybWF0RGVzY3JpcHRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KaW5kZXggOTIzYTM2MGQ1M2U0ZjU1NDRl
NWIwYmZiOGRmZmJkNTU5NWQ1YTAwYy4uNjRkNzhiNzlkNWI4MTVjOGQ4MzVjNTNhNjIxMjA1NmM0
ODRmODFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXJDb2NvYS5tbQpAQCAtMzcwLDcgKzM3MCw4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6OmZsdXNoQ29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMoRnVuY3Rpb248dm9pZCgpPiYm
CiAgICAgICAgIFttX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dCByZXF1ZXN0TWVkaWFEYXRhV2hlblJl
YWR5T25RdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6YmxvY2suZ2V0
KCldOwogfQogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjbGVhcigpCisvLyBG
SVhNRTogVGhpcyBtb2RpZmllcyBtX2RhdGEgd2l0aG91dCBncmFiYmluZyBtX2RhdGFMb2NrLgor
dm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y2xlYXIoKSBXVEZfSUdOT1JFU19USFJF
QURfU0FGRVRZX0FOQUxZU0lTCiB7CiAgICAgbV9wZW5kaW5nQXVkaW9TYW1wbGVRdWV1ZS5jbGVh
cigpOwogICAgIG1fcGVuZGluZ1ZpZGVvU2FtcGxlUXVldWUuY2xlYXIoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuaAppbmRleCAxZmY0MjAzNjk5Yjk4OGI1YTliOTVmY2U2YWFlNmIwYTg3NTk4M2M5Li5lZjA3
ZWFhODlhNDNjMDExNzk1MTJhMzAzZTIyZDZmYTJhOTA1MGE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5o
CkBAIC00Miw4ICs0Miw4IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUg
IlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCIKICNpbmNsdWRlICJSZWFsdGltZU1l
ZGlhU291cmNlRmFjdG9yeS5oIgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1
ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5j
bHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTI3NiwxMSArMjc2LDExIEBAIHBy
aXZhdGU6CiAgICAgU3RyaW5nIG1fbmFtZTsKICAgICBXZWFrSGFzaFNldDxPYnNlcnZlcj4gbV9v
YnNlcnZlcnM7CiAKLSAgICBtdXRhYmxlIExvY2sgbV9hdWRpb1NhbXBsZU9ic2VydmVyc0xvY2s7
Ci0gICAgSGFzaFNldDxBdWRpb1NhbXBsZU9ic2VydmVyKj4gbV9hdWRpb1NhbXBsZU9ic2VydmVy
czsKKyAgICBtdXRhYmxlIENoZWNrZWRMb2NrIG1fYXVkaW9TYW1wbGVPYnNlcnZlcnNMb2NrOwor
ICAgIEhhc2hTZXQ8QXVkaW9TYW1wbGVPYnNlcnZlcio+IG1fYXVkaW9TYW1wbGVPYnNlcnZlcnMg
V1RGX0dVQVJERURfQllfTE9DSyhtX2F1ZGlvU2FtcGxlT2JzZXJ2ZXJzTG9jayk7CiAKLSAgICBt
dXRhYmxlIExvY2sgbV92aWRlb1NhbXBsZU9ic2VydmVyc0xvY2s7Ci0gICAgSGFzaFNldDxWaWRl
b1NhbXBsZU9ic2VydmVyKj4gbV92aWRlb1NhbXBsZU9ic2VydmVyczsKKyAgICBtdXRhYmxlIENo
ZWNrZWRMb2NrIG1fdmlkZW9TYW1wbGVPYnNlcnZlcnNMb2NrOworICAgIEhhc2hTZXQ8VmlkZW9T
YW1wbGVPYnNlcnZlcio+IG1fdmlkZW9TYW1wbGVPYnNlcnZlcnMgV1RGX0dVQVJERURfQllfTE9D
SyhtX3ZpZGVvU2FtcGxlT2JzZXJ2ZXJzTG9jayk7CiAKICAgICAvLyBTZXQgb24gdGhlIG1haW4g
dGhyZWFkIGZyb20gY29uc3RyYWludHMuCiAgICAgSW50U2l6ZSBtX3NpemU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZS5oCmluZGV4IGRjM2NhYjJhOGRiYWIzMjlmYjIxYzdlZDc1YTdm
YzI4NzYzMWNlOGQuLjUzMDg1Y2Y1YjQ5ZDg3YmY4YmU0MWVhYjFkZDAwMzUzMDUwNjNjNmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oCkBAIC00MSw2ICs0MSw3IEBAIEFMTE9X
X1VOVVNFRF9QQVJBTUVURVJTX0JFR0lOCiAKIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VORAog
CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBl
ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogCkBAIC0xMjcsOCAr
MTI4LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9lbmFibGVkIHsgdHJ1ZSB9OwogCi0gICAgbXV0YWJsZSBMb2NrIG1fc2lua3NMb2NrOwotICAg
IEhhc2hTZXQ8d2VicnRjOjpBdWRpb1RyYWNrU2lua0ludGVyZmFjZSo+IG1fc2lua3M7CisgICAg
bXV0YWJsZSBDaGVja2VkTG9jayBtX3NpbmtzTG9jazsKKyAgICBIYXNoU2V0PHdlYnJ0Yzo6QXVk
aW9UcmFja1NpbmtJbnRlcmZhY2UqPiBtX3NpbmtzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9zaW5r
c0xvY2spOwogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgc2l6ZV90IG1fY2h1bmtz
U2VudCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKaW5kZXggOGE5MWQ2
NGEwOWY5M2EzNTU1NDljZTk4MDIzOWQyYzNkZDRjM2ZkMi4uNWJkMWRkODUwM2VmNTg1YjJmYTJh
ZDA1M2Q0YmViYWJlMGRjMWU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENNYWNyb3MuaCIKICNpbmNsdWRl
ICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgPFRpbWVyLmg+CisjaW5jbHVk
ZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAKIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lOCiAK
QEAgLTE0MSw4ICsxNDIsOCBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fYmxhY2tGcmFtZVRpbWVy
OwogICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvRnJhbWVCdWZmZXI+IG1fYmxh
Y2tGcmFtZTsKIAotICAgIG11dGFibGUgTG9jayBtX3NpbmtzTG9jazsKLSAgICBIYXNoU2V0PHJ0
Yzo6VmlkZW9TaW5rSW50ZXJmYWNlPHdlYnJ0Yzo6VmlkZW9GcmFtZT4qPiBtX3NpbmtzOworICAg
IG11dGFibGUgQ2hlY2tlZExvY2sgbV9zaW5rc0xvY2s7CisgICAgSGFzaFNldDxydGM6OlZpZGVv
U2lua0ludGVyZmFjZTx3ZWJydGM6OlZpZGVvRnJhbWU+Kj4gbV9zaW5rcyBXVEZfR1VBUkRFRF9C
WV9MT0NLKG1fc2lua3NMb2NrKTsKICAgICBib29sIG1fYXJlU2lua3NBc2tpbmdUb0FwcGx5Um90
YXRpb24geyBmYWxzZSB9OwogCiAgICAgYm9vbCBtX2VuYWJsZWQgeyB0cnVlIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJX
ZWJSVEMuY3BwCmluZGV4IDNiOTA5NTg1OGY1ZmVhNGY4ZWQ2ZDRkMmZhMjBhMmViNWIxYTgwMTcu
LjhjOWNjM2ZhMjUxMTM2NDIyMWFhOGVkOTU3ZWMyM2YxOGZlNTFlNDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJS
VEMuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNl
TGliV2ViUlRDOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lCiAgICAgfQog
CiAgICAgewotICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9hZGFwdGVyTXV0ZXggfTsKKyAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IG1fYWRhcHRlckxvY2sgfTsKICAgICAgICAgY29uc3QgYXV0byYg
c2FtcGxlID0gZGF0YS5nZXRTYW1wbGUoKTsKICAgICAgICAgYXV0byogYnVmZmVyID0gZ3N0X3Nh
bXBsZV9nZXRfYnVmZmVyKHNhbXBsZS5nZXQoKSk7CiAgICAgICAgIGdzdF9hZGFwdGVyX3B1c2go
bV9hZGFwdGVyLmdldCgpLCBnc3RfYnVmZmVyX3JlZihidWZmZXIpKTsKQEAgLTEwMSw3ICsxMDEs
NyBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6cHVsbEF1ZGlv
RGF0YSgpCiAgICAgc2l6ZV90IG91dENodW5rU2FtcGxlQ291bnQgPSBMaWJXZWJSVENBdWRpb0Zv
cm1hdDo6Y2h1bmtTYW1wbGVDb3VudDsKICAgICBzaXplX3Qgb3V0QnVmZmVyU2l6ZSA9IG91dENo
dW5rU2FtcGxlQ291bnQgKiBtX291dHB1dFN0cmVhbURlc2NyaXB0aW9uLmJwZjsKIAotICAgIExv
Y2tlciBsb2NrZXIgeyBtX2FkYXB0ZXJNdXRleCB9OworICAgIExvY2tlciBsb2NrZXIgeyBtX2Fk
YXB0ZXJMb2NrIH07CiAgICAgc2l6ZV90IGluQ2h1bmtTYW1wbGVDb3VudCA9IGdzdF9hdWRpb19j
b252ZXJ0ZXJfZ2V0X2luX2ZyYW1lcyhtX3NhbXBsZUNvbnZlcnRlci5nZXQoKSwgb3V0Q2h1bmtT
YW1wbGVDb3VudCk7CiAgICAgc2l6ZV90IGluQnVmZmVyU2l6ZSA9IGluQ2h1bmtTYW1wbGVDb3Vu
dCAqIG1faW5wdXRTdHJlYW1EZXNjcmlwdGlvbi5icGY7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2VMaWJXZWJSVEMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEMuaAppbmRleCBk
ZTZlZmU5ZjFhNTI1NzE1YmY3YmQ5MGQ4ZTExODE3MWQxZWJlMmRkLi5lMDUzYjAxMGQyN2ZiMGM0
ZjZhOTJhMDZiNDE5M2IyMTYwMTZlZTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlTGli
V2ViUlRDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5oCkBAIC0yNSw2ICsyNSw3
IEBACiAjaW5jbHVkZSAiUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgiCiAKICNpbmNsdWRl
IDxnc3QvYXVkaW8vYXVkaW8uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC01MSw4ICs1Miw4IEBAIHByaXZhdGU6CiAgICAgR3N0QXVk
aW9JbmZvIG1faW5wdXRTdHJlYW1EZXNjcmlwdGlvbjsKICAgICBHc3RBdWRpb0luZm8gbV9vdXRw
dXRTdHJlYW1EZXNjcmlwdGlvbjsKIAotICAgIExvY2sgbV9hZGFwdGVyTXV0ZXg7Ci0gICAgR1Jl
ZlB0cjxHc3RBZGFwdGVyPiBtX2FkYXB0ZXI7CisgICAgQ2hlY2tlZExvY2sgbV9hZGFwdGVyTG9j
azsKKyAgICBHUmVmUHRyPEdzdEFkYXB0ZXI+IG1fYWRhcHRlciBXVEZfR1VBUkRFRF9CWV9MT0NL
KG1fYWRhcHRlckxvY2spOwogICAgIFZlY3Rvcjx1aW50OF90PiBtX2F1ZGlvQnVmZmVyOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnku
Y3BwCmluZGV4IDJiYjdlZjE1YmQ1NzRjZmFjZDc2MjU4ZWJmMzEwYzY0MGM2ZTYwMzIuLjI2ODY3
MGRhMjg0MDljM2RiOGU4NmU4NTljZjFlNjg3ZjM1NTRmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29k
ZXJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAKQEAgLTM0NSw3ICszNDUs
NiBAQCBwcml2YXRlOgogICAgIEdSZWZQdHI8R3N0Q2Fwcz4gbV9yZXN0cmljdGlvbkNhcHM7CiAg
ICAgd2VicnRjOjpFbmNvZGVkSW1hZ2UgbV9lbmNvZGVkRnJhbWU7CiAKLSAgICBMb2NrIG1fYnVm
ZmVyTWFwTG9jazsKICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IG1fc2luazsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2Fw
dHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
VmlkZW9DYXB0dXJlU291cmNlLmgKaW5kZXggZjBjYjc1MGM4ODM1MjlhZmQxMDAwOWJmN2VlMDk0
MTdkZmU2YmJjOS4uMGU0MWNjNDEzZjg0M2ZhMDM5OGExYTE3MjQ0MGQxZTI2NzdiMjdlNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9D
YXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgKQEAgLTEzMiw3ICsxMzIsNiBAQCBwcml2YXRlOgog
ICAgIFJldGFpblB0cjxBVkNhcHR1cmVTZXNzaW9uPiBtX3Nlc3Npb247CiAgICAgUmV0YWluUHRy
PEFWQ2FwdHVyZURldmljZT4gbV9kZXZpY2U7CiAKLSAgICBMb2NrIG1fcHJlc2V0TXV0ZXg7CiAg
ICAgUmVmUHRyPEFWVmlkZW9QcmVzZXQ+IG1fY3VycmVudFByZXNldDsKICAgICBJbnRTaXplIG1f
Y3VycmVudFNpemU7CiAgICAgZG91YmxlIG1fY3VycmVudEZyYW1lUmF0ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKaW5kZXggYWIxOTRkZGYyYzE1MWFk
ZmIyOTQxZGYzMzdiOGY1OGEwNDExOTJmYS4uNGEyNDRjNjVmYTg3ZjFjM2JhOTU4YTJjMDIwZDM0
NTY5NDUyYjY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0
ZURhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFi
YXNlLmgKQEAgLTI4LDggKzI4LDggQEAKIAogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVk
ZSA8c3FsaXRlMy5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0
Zi9FeHBlY3RlZC5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgpAQCAtMTYyLDcgKzE2Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgc3RhdGljIGlu
dCBhdXRob3JpemVyRnVuY3Rpb24odm9pZCosIGludCwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIq
LCBjb25zdCBjaGFyKiwgY29uc3QgY2hhciopOwogCi0gICAgdm9pZCBlbmFibGVBdXRob3JpemVy
KGJvb2wgZW5hYmxlKTsKKyAgICB2b2lkIGVuYWJsZUF1dGhvcml6ZXIoYm9vbCBlbmFibGUpIFdU
Rl9SRVFVSVJFU19MT0NLKG1fYXV0aG9yaXplckxvY2spOwogICAgIHZvaWQgdXNlV0FMSm91cm5h
bE1vZGUoKTsKIAogICAgIGludCBwYWdlU2l6ZSgpOwpAQCAtMTgwLDggKzE4MCw4IEBAIHByaXZh
dGU6CiAKICAgICBib29sIG1fdXNlV0FMIHsgZmFsc2UgfTsKIAotICAgIExvY2sgbV9hdXRob3Jp
emVyTG9jazsKLSAgICBSZWZQdHI8RGF0YWJhc2VBdXRob3JpemVyPiBtX2F1dGhvcml6ZXI7Cisg
ICAgQ2hlY2tlZExvY2sgbV9hdXRob3JpemVyTG9jazsKKyAgICBSZWZQdHI8RGF0YWJhc2VBdXRo
b3JpemVyPiBtX2F1dGhvcml6ZXIgV1RGX0dVQVJERURfQllfTE9DSyhtX2F1dGhvcml6ZXJMb2Nr
KTsKIAogICAgIExvY2sgbV9sb2NraW5nTXV0ZXg7CiAgICAgUmVmUHRyPFRocmVhZD4gbV9vcGVu
aW5nVGhyZWFkIHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1Bh
aW50V29ya2xldEdsb2JhbFNjb3BlLmgKaW5kZXggOWEyYzQ5N2M5Mjk0ODAyZTFlNjdiMjRkMDdh
ZmIyODMxZTIyOGIzNS4uODhhYjgxZjhlNDA5Y2U4NTU5NzA3N2IzMGQxMTgxMmViYzk5OWRkZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29w
ZS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiV29ya2xldEdsb2JhbFNjb3BlLmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9TdHJvbmcuaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KIAogbmFtZXNwYWNl
IEpTQyB7CiBjbGFzcyBKU09iamVjdDsKQEAgLTYwLDggKzYxLDggQEAgcHVibGljOgogICAgICAg
ICBjb25zdCBWZWN0b3I8U3RyaW5nPiBpbnB1dEFyZ3VtZW50czsKICAgICB9OwogCi0gICAgSGFz
aE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxQYWludERlZmluaXRpb24+PiYgcGFpbnREZWZp
bml0aW9uTWFwKCkgeyBBU1NFUlQobV9wYWludERlZmluaXRpb25Mb2NrLmlzTG9ja2VkKCkpOyBy
ZXR1cm4gbV9wYWludERlZmluaXRpb25NYXA7IH0KLSAgICBMb2NrJiBwYWludERlZmluaXRpb25M
b2NrKCkgeyByZXR1cm4gbV9wYWludERlZmluaXRpb25Mb2NrOyB9CisgICAgSGFzaE1hcDxTdHJp
bmcsIHN0ZDo6dW5pcXVlX3B0cjxQYWludERlZmluaXRpb24+PiYgcGFpbnREZWZpbml0aW9uTWFw
KCkgV1RGX1JFUVVJUkVTX0xPQ0sobV9wYWludERlZmluaXRpb25Mb2NrKTsKKyAgICBDaGVja2Vk
TG9jayYgcGFpbnREZWZpbml0aW9uTG9jaygpIFdURl9SRVRVUk5TX0xPQ0sobV9wYWludERlZmlu
aXRpb25Mb2NrKSB7IHJldHVybiBtX3BhaW50RGVmaW5pdGlvbkxvY2s7IH0KIAogICAgIHZvaWQg
cHJlcGFyZUZvckRlc3RydWN0aW9uKCkgZmluYWwKICAgICB7CkBAIC05MSwxMSArOTIsMTcgQEAg
cHJpdmF0ZToKIAogICAgIGJvb2wgaXNQYWludFdvcmtsZXRHbG9iYWxTY29wZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9w
dHI8UGFpbnREZWZpbml0aW9uPj4gbV9wYWludERlZmluaXRpb25NYXA7Ci0gICAgTG9jayBtX3Bh
aW50RGVmaW5pdGlvbkxvY2s7CisgICAgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxQ
YWludERlZmluaXRpb24+PiBtX3BhaW50RGVmaW5pdGlvbk1hcCBXVEZfR1VBUkRFRF9CWV9MT0NL
KG1fcGFpbnREZWZpbml0aW9uTG9jayk7CisgICAgQ2hlY2tlZExvY2sgbV9wYWludERlZmluaXRp
b25Mb2NrOwogICAgIGJvb2wgbV9oYXNQcmVwYXJlZEZvckRlc3RydWN0aW9uIHsgZmFsc2UgfTsK
IH07CiAKK2lubGluZSBhdXRvIFBhaW50V29ya2xldEdsb2JhbFNjb3BlOjpwYWludERlZmluaXRp
b25NYXAoKSAtPiBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFBhaW50RGVmaW5pdGlv
bj4+JgoreworICAgIEFTU0VSVChtX3BhaW50RGVmaW5pdGlvbkxvY2suaXNMb2NrZWQoKSk7Cisg
ICAgcmV0dXJuIG1fcGFpbnREZWZpbml0aW9uTWFwOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6UGFpbnRXb3JrbGV0
R2xvYmFsU2NvcGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L0xpYldlYlJUQ0NvZGVjc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKaW5kZXggMTk1MjBkOTM4YmY4ZjZlMGQwY2EzNjg1YmNj
ZjMxMTQ0NjhlMmM4NC4uNDFhNGM4N2RlNjcwMGYxNjdkM2Q1OWIwMDlmOWU0OWU1NTQ2MDgwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRD
Q29kZWNzUHJveHkuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlJUQ0RlY29kZXJJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSAiUlRDRW5jb2RlcklkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExv
Y2suaD4KIAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBDb25uZWN0aW9uOwpAQCAtODcsOSArODgs
OSBAQCBwcml2YXRlOgogCiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9ncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOwogCi0gICAgbXV0YWJsZSBMb2NrIG1fbG9jazsKLSAgICBIYXNo
TWFwPFJUQ0RlY29kZXJJZGVudGlmaWVyLCB3ZWJydGM6OkxvY2FsRGVjb2Rlcj4gbV9kZWNvZGVy
czsKLSAgICBIYXNoTWFwPFJUQ0VuY29kZXJJZGVudGlmaWVyLCB3ZWJydGM6OkxvY2FsRW5jb2Rl
cj4gbV9lbmNvZGVyczsKKyAgICBtdXRhYmxlIENoZWNrZWRMb2NrIG1fbG9jazsKKyAgICBIYXNo
TWFwPFJUQ0RlY29kZXJJZGVudGlmaWVyLCB3ZWJydGM6OkxvY2FsRGVjb2Rlcj4gbV9kZWNvZGVy
cyBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jayk7IC8vIE9ubHkgbW9kaWZpZWQgb24gdGhlIGxp
YldlYlJUQ0NvZGVjc1F1ZXVlIGJ1dCBtYXkgZ2V0IGFjY2Vzc2VkIGZyb20gdGhlIG1haW4gdGhy
ZWFkLgorICAgIEhhc2hNYXA8UlRDRW5jb2RlcklkZW50aWZpZXIsIHdlYnJ0Yzo6TG9jYWxFbmNv
ZGVyPiBtX2VuY29kZXJzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKTsgLy8gT25seSBtb2Rp
ZmllZCBvbiB0aGUgbGliV2ViUlRDQ29kZWNzUXVldWUgYnV0IG1heSBnZXQgYWNjZXNzZWQgZnJv
bSB0aGUgbWFpbiB0aHJlYWQuCiAKICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJh
bnNmZXJTZXNzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KaW5kZXggZDQ3Zjg0ZDE4YmQ4NjNjODQ5MjQ5ZjU2
MTgxOGY4ZGJiYmVmYTg0ZS4uYjIzMjU4Mjc0NGMxNTg2MGU5MjUzZWIzZGJlOTI0NGU5MTllODYx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3NQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldl
YlJUQ0NvZGVjc1Byb3h5Lm1tCkBAIC0xMTUsNyArMTE1LDkgQEAgdm9pZCBMaWJXZWJSVENDb2Rl
Y3NQcm94eTo6cmVsZWFzZURlY29kZXIoUlRDRGVjb2RlcklkZW50aWZpZXIgaWRlbnRpZmllcikK
ICAgICAgICAgd2VicnRjOjpyZWxlYXNlTG9jYWxEZWNvZGVyKGRlY29kZXIpOwogfQogCi12b2lk
IExpYldlYlJUQ0NvZGVjc1Byb3h5OjpkZWNvZGVGcmFtZShSVENEZWNvZGVySWRlbnRpZmllciBp
ZGVudGlmaWVyLCB1aW50MzJfdCB0aW1lU3RhbXAsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYg
ZGF0YSkKKy8vIEZvciBwZXJmb3JtYW5jZSByZWFzb25zLCB0aGlzIGZ1bmN0aW9uIGFjY2Vzc2Vz
IG1fZGVjb2RlcnMgd2l0aG91dCBsb2NraW5nLiBUaGlzIGlzIHNhZmUgYmVjYXVzZSB0aGlzIGZ1
bmN0aW9uIHJ1bnMgb24gdGhlIGxpYldlYlJUQ0NvZGVjc1F1ZXVlCisvLyBhbmQgbV9kZWNvZGVy
cyBvbmx5IGdldCBtb2RpZmllZCBvbiB0aGlzIHF1ZXVlLgordm9pZCBMaWJXZWJSVENDb2RlY3NQ
cm94eTo6ZGVjb2RlRnJhbWUoUlRDRGVjb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDMy
X3QgdGltZVN0YW1wLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpIFdURl9JR05PUkVT
X1RIUkVBRF9TQUZFVFlfQU5BTFlTSVMKIHsKICAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7
CiAgICAgQVNTRVJUKG1fZGVjb2RlcnMuY29udGFpbnMoaWRlbnRpZmllcikpOwpAQCAtMTI3LDcg
KzEyOSw5IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OmRlY29kZUZyYW1lKFJUQ0RlY29k
ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQzMl90CiAgICAgICAgIG1fZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNz
OjpGYWlsZWREZWNvZGluZyB7IGlkZW50aWZpZXIgfSwgMCk7CiB9CiAKLXZvaWQgTGliV2ViUlRD
Q29kZWNzUHJveHk6OnNldEZyYW1lU2l6ZShSVENEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVy
LCB1aW50MTZfdCB3aWR0aCwgdWludDE2X3QgaGVpZ2h0KQorLy8gRm9yIHBlcmZvcm1hbmNlIHJl
YXNvbnMsIHRoaXMgZnVuY3Rpb24gYWNjZXNzZXMgbV9kZWNvZGVycyB3aXRob3V0IGxvY2tpbmcu
IFRoaXMgaXMgc2FmZSBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gcnVucyBvbiB0aGUgbGliV2ViUlRD
Q29kZWNzUXVldWUKKy8vIGFuZCBtX2RlY29kZXJzIG9ubHkgZ2V0IG1vZGlmaWVkIG9uIHRoaXMg
cXVldWUuCit2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjpzZXRGcmFtZVNpemUoUlRDRGVjb2Rl
cklkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDE2X3Qgd2lkdGgsIHVpbnQxNl90IGhlaWdodCkg
V1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJUwogewogICAgIEFTU0VSVCghaXNNYWlu
UnVuTG9vcCgpKTsKICAgICBBU1NFUlQobV9kZWNvZGVycy5jb250YWlucyhpZGVudGlmaWVyKSk7
CkBAIC0xNjQsNyArMTY4LDkgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6cmVsZWFzZUVu
Y29kZXIoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICAgICAgd2VicnRjOjpy
ZWxlYXNlTG9jYWxFbmNvZGVyKGVuY29kZXIpOwogfQogCi12b2lkIExpYldlYlJUQ0NvZGVjc1By
b3h5Ojppbml0aWFsaXplRW5jb2RlcihSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCB1
aW50MTZfdCB3aWR0aCwgdWludDE2X3QgaGVpZ2h0LCB1bnNpZ25lZCBzdGFydEJpdHJhdGUsIHVu
c2lnbmVkIG1heEJpdHJhdGUsIHVuc2lnbmVkIG1pbkJpdHJhdGUsIHVpbnQzMl90IG1heEZyYW1l
cmF0ZSkKKy8vIEZvciBwZXJmb3JtYW5jZSByZWFzb25zLCB0aGlzIGZ1bmN0aW9uIGFjY2Vzc2Vz
IG1fZW5jb2RlcnMgd2l0aG91dCBsb2NraW5nLiBUaGlzIGlzIHNhZmUgYmVjYXVzZSB0aGlzIGZ1
bmN0aW9uIHJ1bnMgb24gdGhlIGxpYldlYlJUQ0NvZGVjc1F1ZXVlCisvLyBhbmQgbV9lbmNvZGVy
cyBvbmx5IGdldCBtb2RpZmllZCBvbiB0aGlzIHF1ZXVlLgordm9pZCBMaWJXZWJSVENDb2RlY3NQ
cm94eTo6aW5pdGlhbGl6ZUVuY29kZXIoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwg
dWludDE2X3Qgd2lkdGgsIHVpbnQxNl90IGhlaWdodCwgdW5zaWduZWQgc3RhcnRCaXRyYXRlLCB1
bnNpZ25lZCBtYXhCaXRyYXRlLCB1bnNpZ25lZCBtaW5CaXRyYXRlLCB1aW50MzJfdCBtYXhGcmFt
ZXJhdGUpIFdURl9JR05PUkVTX1RIUkVBRF9TQUZFVFlfQU5BTFlTSVMKIHsKICAgICBBU1NFUlQo
IWlzTWFpblJ1bkxvb3AoKSk7CiAgICAgQVNTRVJUKG1fZW5jb2RlcnMuY29udGFpbnMoaWRlbnRp
ZmllcikpOwpAQCAtMTkxLDcgKzE5Nyw5IEBAIHN0YXRpYyBpbmxpbmUgd2VicnRjOjpWaWRlb1Jv
dGF0aW9uIHRvV2ViUlRDVmlkZW9Sb3RhdGlvbihXZWJDb3JlOjpNZWRpYVNhbXBsZTo6CiAgICAg
cmV0dXJuIHdlYnJ0Yzo6a1ZpZGVvUm90YXRpb25fMDsKIH0KIAotdm9pZCBMaWJXZWJSVENDb2Rl
Y3NQcm94eTo6ZW5jb2RlRnJhbWUoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJiBzYW1wbGUsIHVpbnQzMl90IHRpbWVTdGFtcCwgYm9v
bCBzaG91bGRFbmNvZGVBc0tleUZyYW1lKQorLy8gRm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIHRo
aXMgZnVuY3Rpb24gYWNjZXNzZXMgbV9lbmNvZGVycyB3aXRob3V0IGxvY2tpbmcuIFRoaXMgaXMg
c2FmZSBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gcnVucyBvbiB0aGUgbGliV2ViUlRDQ29kZWNzUXVl
dWUKKy8vIGFuZCBtX2VuY29kZXJzIG9ubHkgZ2V0IG1vZGlmaWVkIG9uIHRoaXMgcXVldWUuCit2
b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjplbmNvZGVGcmFtZShSVENFbmNvZGVySWRlbnRpZmll
ciBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmIHNhbXBsZSwgdWludDMy
X3QgdGltZVN0YW1wLCBib29sIHNob3VsZEVuY29kZUFzS2V5RnJhbWUpIFdURl9JR05PUkVTX1RI
UkVBRF9TQUZFVFlfQU5BTFlTSVMKIHsKICAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAg
ICAgQVNTRVJUKG1fZW5jb2RlcnMuY29udGFpbnMoaWRlbnRpZmllcikpOwpAQCAtMjA4LDcgKzIx
Niw5IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OmVuY29kZUZyYW1lKFJUQ0VuY29kZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6CiAjZW5kaWYKIH0KIAotdm9pZCBMaWJXZWJS
VENDb2RlY3NQcm94eTo6c2V0RW5jb2RlUmF0ZXMoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRp
ZmllciwgdWludDMyX3QgYml0UmF0ZSwgdWludDMyX3QgZnJhbWVSYXRlKQorLy8gRm9yIHBlcmZv
cm1hbmNlIHJlYXNvbnMsIHRoaXMgZnVuY3Rpb24gYWNjZXNzZXMgbV9lbmNvZGVycyB3aXRob3V0
IGxvY2tpbmcuIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gcnVucyBvbiB0aGUg
bGliV2ViUlRDQ29kZWNzUXVldWUKKy8vIGFuZCBtX2VuY29kZXJzIG9ubHkgZ2V0IG1vZGlmaWVk
IG9uIHRoaXMgcXVldWUuCit2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjpzZXRFbmNvZGVSYXRl
cyhSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50MzJfdCBiaXRSYXRlLCB1aW50
MzJfdCBmcmFtZVJhdGUpIFdURl9JR05PUkVTX1RIUkVBRF9TQUZFVFlfQU5BTFlTSVMKIHsKICAg
ICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAgICAgYXV0byBlbmNvZGVyID0gbV9lbmNvZGVy
cy5nZXQoaWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2dsaWIvRE5TQ2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvZ2xpYi9E
TlNDYWNoZS5oCmluZGV4IDJiNzhmMzhjMWZlN2E3ZjhmZjJlMzk0MTRkMDY1MmZhMzhmYzgzY2Iu
LjRmZTIxOTkwMWYyYjNlMGQ4NjEzNmNiZDk5NDcxNzY1NDE5MjIwZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvZ2xpYi9ETlNDYWNoZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvZ2xpYi9ETlNDYWNoZS5oCkBAIC0yNSw4ICsyNSw4IEBACiAK
ICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Nb25v
dG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KQEAgLTU2LDEzICs1NiwxMyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgRE5TQ2Fj
aGVNYXAgPSBIYXNoTWFwPENTdHJpbmcsIENhY2hlZFJlc3BvbnNlPjsKIAotICAgIEROU0NhY2hl
TWFwJiBtYXBGb3JUeXBlKFR5cGUpOworICAgIEROU0NhY2hlTWFwJiBtYXBGb3JUeXBlKFR5cGUp
IFdURl9SRVFVSVJFU19MT0NLKG1fbG9jayk7CiAgICAgdm9pZCByZW1vdmVFeHBpcmVkUmVzcG9u
c2VzRmlyZWQoKTsKICAgICB2b2lkIHJlbW92ZUV4cGlyZWRSZXNwb25zZXNJbk1hcChETlNDYWNo
ZU1hcCYpOwogICAgIHZvaWQgcHJ1bmVSZXNwb25zZXNJbk1hcChETlNDYWNoZU1hcCYpOwogCi0g
ICAgTG9jayBtX2xvY2s7Ci0gICAgRE5TQ2FjaGVNYXAgbV9kbnNNYXA7CisgICAgQ2hlY2tlZExv
Y2sgbV9sb2NrOworICAgIEROU0NhY2hlTWFwIG1fZG5zTWFwIFdURl9HVUFSREVEX0JZX0xPQ0so
bV9sb2NrKTsKICNpZiBHTElCX0NIRUNLX1ZFUlNJT04oMiwgNTksIDApCiAgICAgRE5TQ2FjaGVN
YXAgbV9pcHY0TWFwOwogICAgIEROU0NhY2hlTWFwIG1faXB2Nk1hcDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNv
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFT
YW1wbGVDdXJzb3IuY3BwCmluZGV4IDI1Nzg2OTM2OGJlODczODY2M2VkZjQzZjgwYzczZGM0Yzg1
MDFkOTkuLmM1YTRjYzA5Y2Y4NzE3YTI0ZWUxODVkY2ZjYTNiZjZjYjllNDQzN2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBs
ZUN1cnNvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVh
ZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmNwcApAQCAtMTQ1LDYgKzE0NSw3IEBAIE9wdGlvbmFsPHR5
cGVuYW1lIE9yZGVyZWRNYXA6Oml0ZXJhdG9yPiBNZWRpYVNhbXBsZUN1cnNvcjo6bG9jYXRlSXRl
cmF0b3IoT3JkZXJlCiAgICAgdXNpbmcgSXRlcmF0b3IgPSB0eXBlbmFtZSBPcmRlcmVkTWFwOjpp
dGVyYXRvcjsKICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX2xvY2F0b3IsCiAgICAgICAgIFsm
XShjb25zdCBNZWRpYVRpbWUmIHByZXNlbnRhdGlvblRpbWUpIC0+IE9wdGlvbmFsPEl0ZXJhdG9y
PiB7CisgICAgICAgICAgICBhc3NlcnRJc0hlbGQobV9sb2NhdG9yTG9jayk7CiAgICAgICAgICAg
ICBhdXRvIGl0ZXJhdG9yID0gdXBwZXJCb3VuZChzYW1wbGVzLCBwcmVzZW50YXRpb25UaW1lKTsK
ICAgICAgICAgICAgIGlmIChpdGVyYXRvciA9PSBzYW1wbGVzLmJlZ2luKCkpCiAgICAgICAgICAg
ICAgICAgbV9sb2NhdG9yID0gV1RGTW92ZShpdGVyYXRvcik7CkBAIC0xNTUsNiArMTU2LDcgQEAg
T3B0aW9uYWw8dHlwZW5hbWUgT3JkZXJlZE1hcDo6aXRlcmF0b3I+IE1lZGlhU2FtcGxlQ3Vyc29y
Ojpsb2NhdGVJdGVyYXRvcihPcmRlcmUKICAgICAgICAgICAgIHJldHVybiBsb2NhdGVJdGVyYXRv
cihzYW1wbGVzLCBoYXNBbGxTYW1wbGVzKTsKICAgICAgICAgfSwKICAgICAgICAgWyZdKGNvbnN0
IGF1dG8mIG90aGVySXRlcmF0b3IpIHsKKyAgICAgICAgICAgIGFzc2VydElzSGVsZChtX2xvY2F0
b3JMb2NrKTsKICAgICAgICAgICAgIG1fbG9jYXRvciA9IG90aGVySXRlcmF0b3ItPnNlY29uZC0+
cHJlc2VudGF0aW9uVGltZSgpOwogICAgICAgICAgICAgcmV0dXJuIGxvY2F0ZUl0ZXJhdG9yKHNh
bXBsZXMsIGhhc0FsbFNhbXBsZXMpOwogICAgICAgICB9LApAQCAtMTY5LDYgKzE3MSw3IEBAIE1l
ZGlhU2FtcGxlKiBNZWRpYVNhbXBsZUN1cnNvcjo6bG9jYXRlTWVkaWFTYW1wbGUoU2FtcGxlTWFw
JiBzYW1wbGVzLCBib29sIGhhc0FsCiAgICAgQVNTRVJUKG1fbG9jYXRvckxvY2suaXNMb2NrZWQo
KSk7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9sb2NhdG9yLAogICAgICAgICBbJl0oY29u
c3QgTWVkaWFUaW1lJikgLT4gTWVkaWFTYW1wbGUqIHsKKyAgICAgICAgICAgIGFzc2VydElzSGVs
ZChtX2xvY2F0b3JMb2NrKTsKICAgICAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBsb2NhdGVJdGVy
YXRvcihzYW1wbGVzLnByZXNlbnRhdGlvbk9yZGVyKCksIGhhc0FsbFNhbXBsZXMpOwogICAgICAg
ICAgICAgaWYgKCFpdGVyYXRvcikKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAg
LTE4NSw2ICsxODgsNyBAQCBNZWRpYVNhbXBsZUN1cnNvcjo6VGltaW5nIE1lZGlhU2FtcGxlQ3Vy
c29yOjpsb2NhdGVUaW1pbmcoU2FtcGxlTWFwJiBzYW1wbGVzLCBibwogICAgIEFTU0VSVChtX2xv
Y2F0b3JMb2NrLmlzTG9ja2VkKCkpOwogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fbG9jYXRv
ciwKICAgICAgICAgWyZdKGNvbnN0IE1lZGlhVGltZSYgcHJlc2VudGF0aW9uVGltZSkgeworICAg
ICAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jYXRvckxvY2spOwogICAgICAgICAgICAgaWYgKGxv
Y2F0ZU1lZGlhU2FtcGxlKHNhbXBsZXMsIGhhc0FsbFNhbXBsZXMpKQogICAgICAgICAgICAgICAg
IHJldHVybiBsb2NhdGVUaW1pbmcoc2FtcGxlcywgaGFzQWxsU2FtcGxlcyk7CiAgICAgICAgICAg
ICBhdXRvJiBjbGFtcGVkUHJlc2VudGF0aW9uVGltZSA9IHN0ZDo6bWluKHByZXNlbnRhdGlvblRp
bWUsIG1fdHJhY2tSZWFkZXItPmR1cmF0aW9uKCkpOwpAQCAtMjA4LDYgKzIxMiw3IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIE9yZGVyZWRNYXA+CiBPU1N0YXR1cyBNZWRpYVNhbXBsZUN1cnNvcjo6c3Rl
cEluT3JkZXJlZE1hcChpbnQ2NF90IHN0ZXBzVG9UYWtlLCBpbnQ2NF90JiBzdGVwc1Rha2VuKQog
ewogICAgIHJldHVybiBnZXRTYW1wbGVNYXAoWyZdKFNhbXBsZU1hcCYgc2FtcGxlcywgYm9vbCBo
YXNBbGxTYW1wbGVzKSAtPiBPU1N0YXR1cyB7CisgICAgICAgIGFzc2VydElzSGVsZChtX2xvY2F0
b3JMb2NrKTsKICAgICAgICAgYXV0byYgb3JkZXJlZE1hcCA9IG9yZGVyZWRTYW1wbGVzPE9yZGVy
ZWRNYXA+KHNhbXBsZXMpOwogICAgICAgICBpZiAoYXV0byBpdGVyYXRvciA9IGxvY2F0ZUl0ZXJh
dG9yKG9yZGVyZWRNYXAsIGhhc0FsbFNhbXBsZXMpKSB7CiAgICAgICAgICAgICBhdXRvIHN0ZXBz
UmVtYWluaW5nID0gc3RlcEl0ZXJhdG9yKHN0ZXBzVG9UYWtlLCAqaXRlcmF0b3IsIG9yZGVyZWRN
YXApOwpAQCAtMjIyLDYgKzIyNyw3IEBAIE9TU3RhdHVzIE1lZGlhU2FtcGxlQ3Vyc29yOjpzdGVw
SW5PcmRlcmVkTWFwKGludDY0X3Qgc3RlcHNUb1Rha2UsIGludDY0X3QmIHN0ZXBzCiBPU1N0YXR1
cyBNZWRpYVNhbXBsZUN1cnNvcjo6c3RlcEluUHJlc2VudGF0aW9uVGltZShjb25zdCBNZWRpYVRp
bWUmIGRlbHRhLCBCb29sZWFuJiB3YXNQaW5uZWQpCiB7CiAgICAgcmV0dXJuIGdldFNhbXBsZU1h
cChbJl0oU2FtcGxlTWFwJiBzYW1wbGVzLCBib29sIGhhc0FsbFNhbXBsZXMpIC0+IE9TU3RhdHVz
IHsKKyAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jYXRvckxvY2spOwogICAgICAgICBhdXRvIHRp
bWluZyA9IGxvY2F0ZVRpbWluZyhzYW1wbGVzLCBoYXNBbGxTYW1wbGVzKTsKICAgICAgICAgd2Fz
UGlubmVkID0gc3RlcFRpbWUoZGVsdGEsIHRpbWluZy5wcmVzZW50YXRpb25UaW1lLCBzYW1wbGVz
LnByZXNlbnRhdGlvbk9yZGVyKCksIGhhc0FsbFNhbXBsZXMsIG1fdHJhY2tSZWFkZXItPmR1cmF0
aW9uKCkpOwogICAgICAgICBtX2xvY2F0b3IgPSB0aW1pbmcucHJlc2VudGF0aW9uVGltZTsKQEAg
LTI0Nyw2ICsyNTMsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvbj4KIE9TU3RhdHVzIE1l
ZGlhU2FtcGxlQ3Vyc29yOjpnZXRNZWRpYVNhbXBsZShGdW5jdGlvbiYmIGZ1bmN0aW9uKSBjb25z
dAogewogICAgIHJldHVybiBnZXRTYW1wbGVNYXAoWyZdKFNhbXBsZU1hcCYgc2FtcGxlcywgYm9v
bCBoYXNBbGxTYW1wbGVzKSAtPiBPU1N0YXR1cyB7CisgICAgICAgIGFzc2VydElzSGVsZChtX2xv
Y2F0b3JMb2NrKTsKICAgICAgICAgYXV0byBzYW1wbGUgPSBsb2NhdGVNZWRpYVNhbXBsZShzYW1w
bGVzLCBoYXNBbGxTYW1wbGVzKTsKICAgICAgICAgaWYgKCFzYW1wbGUpCiAgICAgICAgICAgICBy
ZXR1cm4ga01UUGx1Z2luU2FtcGxlQ3Vyc29yRXJyb3JfTG9jYXRpb25Ob3RBdmFpbGFibGU7CkBA
IC0yNjAsNiArMjY3LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb24+CiBPU1N0YXR1cyBN
ZWRpYVNhbXBsZUN1cnNvcjo6Z2V0VGltaW5nKEZ1bmN0aW9uJiYgZnVuY3Rpb24pIGNvbnN0CiB7
CiAgICAgcmV0dXJuIGdldFNhbXBsZU1hcChbJl0oU2FtcGxlTWFwJiBzYW1wbGVzLCBib29sIGhh
c0FsbFNhbXBsZXMpIHsKKyAgICAgICAgYXNzZXJ0SXNIZWxkKG1fbG9jYXRvckxvY2spOwogICAg
ICAgICBhdXRvIHRpbWluZyA9IGxvY2F0ZVRpbWluZyhzYW1wbGVzLCBoYXNBbGxTYW1wbGVzKTsK
ICAgICAgICAgREVCVUdfTE9HKExPR0lERU5USUZJRVIsICJkZWNvZGVUaW1lOiAiLCB0aW1pbmcu
ZGVjb2RlVGltZSwgIiwgcHJlc2VudGF0aW9uVGltZTogIiwgdGltaW5nLnByZXNlbnRhdGlvblRp
bWUsICIsIGR1cmF0aW9uOiAiLCB0aW1pbmcuZHVyYXRpb24pOwogICAgICAgICBmdW5jdGlvbih0
aW1pbmcpOwpAQCAtMzgyLDYgKzM5MCw3IEBAIE9TU3RhdHVzIE1lZGlhU2FtcGxlQ3Vyc29yOjpj
b3B5U2FtcGxlTG9jYXRpb24oTVRQbHVnaW5TYW1wbGVDdXJzb3JTdG9yYWdlUmFuZ2UqCiBPU1N0
YXR1cyBNZWRpYVNhbXBsZUN1cnNvcjo6Z2V0UGxheWFibGVIb3Jpem9uKENNVGltZSogcGxheWFi
bGVIb3Jpem9uKSBjb25zdAogewogICAgIHJldHVybiBnZXRTYW1wbGVNYXAoWyZdKFNhbXBsZU1h
cCYgc2FtcGxlcywgYm9vbCBoYXNBbGxTYW1wbGVzKSB7CisgICAgICAgIGFzc2VydElzSGVsZCht
X2xvY2F0b3JMb2NrKTsKICAgICAgICAgTWVkaWFTYW1wbGUmIGxhc3RTYW1wbGUgPSAqc2FtcGxl
cy5kZWNvZGVPcmRlcigpLnJiZWdpbigpLT5zZWNvbmQ7CiAgICAgICAgIGF1dG8gdGltaW5nID0g
bG9jYXRlVGltaW5nKHNhbXBsZXMsIGhhc0FsbFNhbXBsZXMpOwogICAgICAgICAqcGxheWFibGVI
b3Jpem9uID0gUEFMOjp0b0NNVGltZShsYXN0U2FtcGxlLnByZXNlbnRhdGlvblRpbWUoKSArIGxh
c3RTYW1wbGUuZHVyYXRpb24oKSAtIHRpbWluZy5wcmVzZW50YXRpb25UaW1lKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBs
ZUN1cnNvci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01l
ZGlhU2FtcGxlQ3Vyc29yLmgKaW5kZXggNjg3YjEzMDA0N2E4MjMzYzQ0MTMzZDM2Y2I2OGIxZjUx
MWUzMzJlNi4uYjE3Y2Q5MDM3NzgzMzg0YTYxOGE1NWE2NzkwYzlkZWUyNjZkZGVjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2Ft
cGxlQ3Vyc29yLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVh
ZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkNv
cmVNZWRpYVdyYXBwZWQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NhbXBsZU1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KICNpbmNs
dWRlIDx3dGYvVmFyaWFudC5oPgogCkBAIC03MSw5ICs3Miw5IEBAIHByaXZhdGU6CiAgICAgTWVk
aWFTYW1wbGVDdXJzb3IoQWxsb2NhdG9yJiYsIE1lZGlhVHJhY2tSZWFkZXImLCBMb2NhdG9yKTsK
ICAgICBNZWRpYVNhbXBsZUN1cnNvcihBbGxvY2F0b3ImJiwgY29uc3QgTWVkaWFTYW1wbGVDdXJz
b3ImKTsKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9yZGVyZWRNYXA+IE9wdGlvbmFsPHR5cGVu
YW1lIE9yZGVyZWRNYXA6Oml0ZXJhdG9yPiBsb2NhdGVJdGVyYXRvcihPcmRlcmVkTWFwJiwgYm9v
bCBoYXNBbGxTYW1wbGVzKSBjb25zdDsKLSAgICBXZWJDb3JlOjpNZWRpYVNhbXBsZSogbG9jYXRl
TWVkaWFTYW1wbGUoV2ViQ29yZTo6U2FtcGxlTWFwJiwgYm9vbCBoYXNBbGxTYW1wbGVzKSBjb25z
dDsKLSAgICBUaW1pbmcgbG9jYXRlVGltaW5nKFdlYkNvcmU6OlNhbXBsZU1hcCYsIGJvb2wgaGFz
QWxsU2FtcGxlcykgY29uc3Q7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3JkZXJlZE1hcD4gT3B0
aW9uYWw8dHlwZW5hbWUgT3JkZXJlZE1hcDo6aXRlcmF0b3I+IGxvY2F0ZUl0ZXJhdG9yKE9yZGVy
ZWRNYXAmLCBib29sIGhhc0FsbFNhbXBsZXMpIGNvbnN0IFdURl9SRVFVSVJFU19MT0NLKG1fbG9j
YXRvckxvY2spOworICAgIFdlYkNvcmU6Ok1lZGlhU2FtcGxlKiBsb2NhdGVNZWRpYVNhbXBsZShX
ZWJDb3JlOjpTYW1wbGVNYXAmLCBib29sIGhhc0FsbFNhbXBsZXMpIGNvbnN0IFdURl9SRVFVSVJF
U19MT0NLKG1fbG9jYXRvckxvY2spOworICAgIFRpbWluZyBsb2NhdGVUaW1pbmcoV2ViQ29yZTo6
U2FtcGxlTWFwJiwgYm9vbCBoYXNBbGxTYW1wbGVzKSBjb25zdCBXVEZfUkVRVUlSRVNfTE9DSyht
X2xvY2F0b3JMb2NrKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uPiBPU1N0YXR1
cyBnZXRTYW1wbGVNYXAoRnVuY3Rpb24mJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
RnVuY3Rpb24+IE9TU3RhdHVzIGdldE1lZGlhU2FtcGxlKEZ1bmN0aW9uJiYpIGNvbnN0OwpAQCAt
MTA1LDggKzEwNiw4IEBAIHByaXZhdGU6CiAgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgp
IGNvbnN0OwogCiAgICAgUmVmPE1lZGlhVHJhY2tSZWFkZXI+IG1fdHJhY2tSZWFkZXI7Ci0gICAg
bXV0YWJsZSBMb2NhdG9yIG1fbG9jYXRvcjsKLSAgICBtdXRhYmxlIExvY2sgbV9sb2NhdG9yTG9j
azsKKyAgICBtdXRhYmxlIExvY2F0b3IgbV9sb2NhdG9yIFdURl9HVUFSREVEX0JZX0xPQ0sobV9s
b2NhdG9yTG9jayk7CisgICAgbXV0YWJsZSBDaGVja2VkTG9jayBtX2xvY2F0b3JMb2NrOwogICAg
IFJlZjxjb25zdCBXVEY6OkxvZ2dlcj4gbV9sb2dnZXI7CiAgICAgY29uc3Qgdm9pZCogbV9sb2dJ
ZGVudGlmaWVyOwogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>