<?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>226145</bug_id>
          
          <creation_ts>2021-05-22 14:56:12 -0700</creation_ts>
          <short_desc>Drop WTF::tryHoldLock() as it is incompatible with Clang Thread Safety Analysis</short_desc>
          <delta_ts>2021-05-23 12:56:37 -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>Web Template Framework</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>https://clang.llvm.org/docs/ThreadSafetyAnalysis.html</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>benjamin</cc>
    
    <cc>berto</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mark.lam</cc>
    
    <cc>menard</cc>
    
    <cc>msaboff</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>tzagallo</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1762843</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-22 14:56:12 -0700</bug_when>
    <thetext>Drop WTF::tryHoldLock() as it is incompatible with Clang Thread Safety Analysis. Instead, use the following pattern:
```
Locker locker { DeferLock, m_lock };
if (locker.tryLock())
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762847</commentid>
    <comment_count>1</comment_count>
      <attachid>429429</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-22 15:37:40 -0700</bug_when>
    <thetext>Created attachment 429429
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762848</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-05-22 15:38:23 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762851</commentid>
    <comment_count>3</comment_count>
      <attachid>429430</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-22 15:49:43 -0700</bug_when>
    <thetext>Created attachment 429430
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762853</commentid>
    <comment_count>4</comment_count>
      <attachid>429432</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-22 16:00:36 -0700</bug_when>
    <thetext>Created attachment 429432
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762854</commentid>
    <comment_count>5</comment_count>
      <attachid>429433</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-22 16:16:59 -0700</bug_when>
    <thetext>Created attachment 429433
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762857</commentid>
    <comment_count>6</comment_count>
      <attachid>429436</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-22 16:23:56 -0700</bug_when>
    <thetext>Created attachment 429436
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762858</commentid>
    <comment_count>7</comment_count>
      <attachid>429437</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-22 16:32:35 -0700</bug_when>
    <thetext>Created attachment 429437
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762861</commentid>
    <comment_count>8</comment_count>
      <attachid>429439</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-22 16:43:13 -0700</bug_when>
    <thetext>Created attachment 429439
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762862</commentid>
    <comment_count>9</comment_count>
      <attachid>429440</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-22 16:47:56 -0700</bug_when>
    <thetext>Created attachment 429440
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762865</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-22 16:59:45 -0700</bug_when>
    <thetext>Not sure what&apos;s going on, it builds fine locally :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762871</commentid>
    <comment_count>11</comment_count>
      <attachid>429443</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-22 18:08:53 -0700</bug_when>
    <thetext>Created attachment 429443
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762874</commentid>
    <comment_count>12</comment_count>
      <attachid>429446</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-22 18:51:29 -0700</bug_when>
    <thetext>Created attachment 429446
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762875</commentid>
    <comment_count>13</comment_count>
      <attachid>429447</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-22 19:01:06 -0700</bug_when>
    <thetext>Created attachment 429447
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762876</commentid>
    <comment_count>14</comment_count>
      <attachid>429448</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-22 19:18:59 -0700</bug_when>
    <thetext>Created attachment 429448
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762877</commentid>
    <comment_count>15</comment_count>
      <attachid>429449</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-22 19:20:29 -0700</bug_when>
    <thetext>Created attachment 429449
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762925</commentid>
    <comment_count>16</comment_count>
      <attachid>429449</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-23 12:44:36 -0700</bug_when>
    <thetext>Comment on attachment 429449
Patch

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

&gt; Source/WTF/wtf/Locker.h:59
&gt; +constexpr AdoptLockTag AdoptLock = AdoptLockTag();

I am surprised that we need the &quot;= AdoptLockTag()&quot; here. Can we omit it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762929</commentid>
    <comment_count>17</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 12:53:14 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #16)
&gt; Comment on attachment 429449 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=429449&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/Locker.h:59
&gt; &gt; +constexpr AdoptLockTag AdoptLock = AdoptLockTag();
&gt; 
&gt; I am surprised that we need the &quot;= AdoptLockTag()&quot; here. Can we omit it?

Will check and land without it if it builds. I had copied the definition from &lt;mutex&gt;:
/* _LIBCPP_INLINE_VAR */ constexpr adopt_lock_t  adopt_lock  = adopt_lock_t();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762931</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 12:55:44 -0700</bug_when>
    <thetext>Committed r277932 (238062@main): &lt;https://commits.webkit.org/238062@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762934</commentid>
    <comment_count>19</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-23 12:56:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/78371802&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762935</commentid>
    <comment_count>20</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-23 12:56:37 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #17)
&gt; (In reply to Darin Adler from comment #16)
&gt; &gt; Comment on attachment 429449 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=429449&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WTF/wtf/Locker.h:59
&gt; &gt; &gt; +constexpr AdoptLockTag AdoptLock = AdoptLockTag();
&gt; &gt; 
&gt; &gt; I am surprised that we need the &quot;= AdoptLockTag()&quot; here. Can we omit it?
&gt; 
&gt; Will check and land without it if it builds. I had copied the definition
&gt; from &lt;mutex&gt;:
&gt; /* _LIBCPP_INLINE_VAR */ constexpr adopt_lock_t  adopt_lock  =
&gt; adopt_lock_t();

Yes, it built fine without it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429429</attachid>
            <date>2021-05-22 15:37:40 -0700</date>
            <delta_ts>2021-05-22 15:58:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226145-20210522153739.patch</filename>
            <type>text/plain</type>
            <size>58130</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZjY3MTE3MDhhODUyMGY5MDcyMjIzNDExNThhODk2NDgzZjU5NmE2Li4yYzM5YzIxZDAzMWNkMWVi
ZGJkMDk5YThhNWIwZmFhMTUwOGI2Nzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3
aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlz
IGluY29tcGF0aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuIEluc3RlYWQs
IHVzZSB0aGUgZm9sbG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgRGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlMb2Nr
KCkpCisgICAgICAgIGBgYAorCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpT
Qzo6SGVhcDo6cmVzdW1lVGhlUGVyaXBoZXJ5KToKKyAgICAgICAgKiBydW50aW1lL1ZNVHJhcHMu
Y3BwOgorICAgICAgICAoSlNDOjpWTVRyYXBzOjp0cnlJbnN0YWxsVHJhcEJyZWFrcG9pbnRzKToK
KyAgICAgICAgKiB0b29scy9WTUluc3BlY3Rvci5jcHA6CisgICAgICAgIChKU0M6OlZNSW5zcGVj
dG9yOjpsb2NrKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlcGxhY2UgTG9ja0hvbGRlciB3aXRoIExvY2tlciBpbiBsb2NhbCB2YXJp
YWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKaW5kZXggYjcwYTNmM2U4MTM3MjcyNzA1YTA0YmVkMjM5NmNlMGZjOWViZjc0Yi4uYjdm
ZjcyZTA4OTA3MjYyNDc4MzA2ODVkYzFhZTkyNTk4NzZiMjczNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBA
QAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3aXRoIENsYW5n
IFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0
aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuIEluc3RlYWQsIHVzZSB0aGUg
Zm9sbG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
RGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlMb2NrKCkpCisgICAg
ICAgIGBgYAorCisgICAgICAgICogd3RmL0NoZWNrZWRMb2NrLmg6CisgICAgICAgICogd3RmL0xv
Y2tlci5oOgorICAgICAgICAoV1RGOjpMb2NrZXI6OkxvY2tlcik6CisgICAgICAgIChXVEY6Okxv
Y2tlcjo6fkxvY2tlcik6CisgICAgICAgIChXVEY6OkxvY2tlcjo6dHJ5TG9jayk6CisgICAgICAg
IChXVEY6OkxvY2tlcjo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgIChXVEY6OkxvY2tl
cjo6dW5sb2NrRWFybHkpOgorICAgICAgICAoV1RGOjpMb2NrZXI6Om9wZXJhdG9yPSk6CisgICAg
ICAgIChXVEY6OkxvY2tlcjo6dW5sb2NrKToKKyAgICAgICAgKFdURjo6TG9ja2VyOjpsb2NrKToK
KyAgICAgICAgKiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6bG9nKToKKyAg
ICAgICAgKFdURjo6TG9nZ2VyOjpsb2dWZXJib3NlKToKKyAgICAgICAgKiB3dGYvVGhyZWFkU2Fm
ZXR5QW5hbHlzaXMuaDoKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkb3B0IENoZWNrZWRMb2NrIGluIG1vcmUgcGxhY2VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZDA1N2QyNzEyNzA0YzgxOTBkYTQ0NDIyMDEzOTEyNmU1ZTIxZWE5Yy4uNzNkZmU2MTU5
ZTAwYmMzNTM2YWU2ZWYwN2EyMTE4MDE4YzFlMDdiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1
IEBACisyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRpYmxlIHdpdGggQ2xh
bmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21w
YXRpYmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcy4gSW5zdGVhZCwgdXNlIHRo
ZSBmb2xsb3dpbmcgcGF0dGVybjoKKyAgICAgICAgYGBgCisgICAgICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fbG9jayB9OworICAgICAgICBpZiAobG9ja2VyLnRyeUxvY2soKSkKKyAg
ICAgICAgYGBgCisKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQnVmZmVyU291cmNlTm9kZTo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1BhcmFtVGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRp
bWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFy
YW1UaW1lbGluZTo6dmFsdWVzRm9yRnJhbWVSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1BhcmFtVGltZWxpbmU6Omhhc1ZhbHVlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xl
dE5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb252b2x2ZXJOb2RlOjpwcm9jZXNzKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3MpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3Mp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6T3NjaWxsYXRvck5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vUGFubmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpw
cm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJvY2Vzcyk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldhdmVTaGFwZXJQcm9jZXNzb3I6OnByb2Nlc3MpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
RGVzdGluYXRpb246OmNhbGxSZW5kZXJDYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vUmV2ZXJiQ29udm9sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJldmVyYkNvbnZvbHZl
cjo6cHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5h
dGlvbkNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
cmVuZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQ
cm92aWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3Zp
ZGVyR1N0cmVhbWVyOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJL
aXRXZWJBdWRpb1NyY1JlbmRlckl0ZXJhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JhdGNoQnVmZmVyOjpwdXJn
ZVRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1cjo6ZHJhd1JlY3RTaGFk
b3dXaXRoVGlsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0JsdXI6OmRyYXdJbnNldFNo
YWRvd1dpdGhUaWxpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6ZW5xdWV1ZVZpZGVvU2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Ojp1cGRhdGVS
ZW5kZXJTb3VyY2VzSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpX
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
T3JXb3JrbGV0VGhyZWFkOjpzdG9wKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0IENoZWNrZWRMb2NrIGluIG1vcmUgcGxhY2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGZjYWM4NDUxYzhhOTM0NTIwOGFiNzFhOTM3OGE4MTc3ZTgxNjg4ODguLjJm
ZmE2N2Y3MzI5ZjhjOTU5NzlkYjFjOTk1ZmViNzVkNTQ5YzcwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUgd2l0
aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBp
bmNvbXBhdGlibGUgd2l0aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBJbnN0ZWFkLCB1
c2UgdGhlIGZvbGxvd2luZyBwYXR0ZXJuOgorICAgICAgICBgYGAKKyAgICAgICAgTG9ja2VyIGxv
Y2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisgICAgICAgIGlmIChsb2NrZXIudHJ5TG9jaygp
KQorICAgICAgICBgYGAKKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRl
ZERlY29kaW5nKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWRF
bmNvZGluZyk6CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBBZG9wdCBDaGVja2VkTG9jayBpbiBtb3JlIHBsYWNlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmNwcAppbmRleCBjMWNmODY0Mjc3MDUxYmEwMjEwNThjZjUxNGFkMzcyZmJh
NzQ4MjdiLi42OWJmMzI1NjZjZGYwODcwMzU4MTM1OWRlZGFhZGUzZTAyOTA3MGMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMTcwNyw3ICsxNzA3LDcgQEAgTkVWRVJfSU5M
SU5FIHZvaWQgSGVhcDo6cmVzdW1lVGhlUGVyaXBoZXJ5KCkKICAgICAgICAgICAgIGJvb2wgcmVt
b3ZlID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAodmlzaXRvci5oYXNBY2tub3dsZWRnZWRUaGF0
VGhlTXV0YXRvcklzUmVzdW1lZCgpKQogICAgICAgICAgICAgICAgIHJlbW92ZSA9IHRydWU7Ci0g
ICAgICAgICAgICBlbHNlIGlmIChhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKHZpc2l0b3Iucmln
aHRUb1J1bigpKSkgeworICAgICAgICAgICAgZWxzZSBpZiAoTG9ja2VyIGxvY2tlciB7IERlZmVy
TG9jaywgdmlzaXRvci5yaWdodFRvUnVuKCkgfTsgbG9ja2VyLnRyeUxvY2soKSkgewogICAgICAg
ICAgICAgICAgIHZpc2l0b3IudXBkYXRlTXV0YXRvcklzU3RvcHBlZChsb2NrZXIpOwogICAgICAg
ICAgICAgICAgIHJlbW92ZSA9IHRydWU7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxl
ckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCmluZGV4IGIyZDk5ZmJhODkyMjZkNGMyNDBjZGFi
OGY1YjA1NzU3ODFiZThkZTEuLjJiYjYyM2U5M2JkNTc5M2EzNDEyODc3MGNlNzBiMjc1NmEzZDY1
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCkBAIC0y
MjAsNyArMjIwLDcgQEAgdm9pZCBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Ojp0cmFja2lu
Z0NvbXBsZXRlKCkKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHNhbXBsaW5nUHJvZmlsZXItPmdl
dExvY2soKSB9OwogICAgICAgICBzYW1wbGluZ1Byb2ZpbGVyLT5wYXVzZShsb2NrZXIpOwogICAg
ICAgICBWZWN0b3I8U2FtcGxpbmdQcm9maWxlcjo6U3RhY2tUcmFjZT4gc3RhY2tUcmFjZXMgPSBz
YW1wbGluZ1Byb2ZpbGVyLT5yZWxlYXNlU3RhY2tUcmFjZXMobG9ja2VyKTsKLSAgICAgICAgbG9j
a2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tlci51bmxvY2soKTsKIAogICAgICAgICBS
ZWY8UHJvdG9jb2w6OlNjcmlwdFByb2ZpbGVyOjpTYW1wbGVzPiBzYW1wbGVzID0gYnVpbGRTYW1w
bGVzKHZtLCBXVEZNb3ZlKHN0YWNrVHJhY2VzKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2Nr
ZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuY3BwCmluZGV4IGE1MGM5NDIwODJhYWU0
YWQ0YTY0ZDQzOWU3OWI3NWJmMTg1MGNjMWIuLmUwZTUwNDRlZGZhZmNlMThkZTEzY2ZmYTBkZTM2
NzQ3MjkxNDI2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmNwcApAQCAtMjIyLDEyICsyMjIsMTIgQEAgdm9pZCBSZW1vdGVJbnNw
ZWN0b3JTb2NrZXRFbmRwb2ludDo6ZGlzY29ubmVjdChDb25uZWN0aW9uSUQgaWQpCiAgICAgaWYg
KGNvbnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2xpc3RlbmVycy5nZXQoaWQpKSB7CiAgICAgICAg
IG1fbGlzdGVuZXJzLnJlbW92ZShpZCk7CiAgICAgICAgIFNvY2tldDo6Y2xvc2UoY29ubmVjdGlv
bi0+c29ja2V0KTsKLSAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tl
ci51bmxvY2soKTsKICAgICAgICAgY29ubmVjdGlvbi0+bGlzdGVuZXIuZGlkQ2hhbmdlU3RhdHVz
KCp0aGlzLCBpZCwgTGlzdGVuZXI6OlN0YXR1czo6Q2xvc2VkKTsKICAgICB9IGVsc2UgaWYgKGNv
bnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2NsaWVudHMuZ2V0KGlkKSkgewogICAgICAgICBtX2Ns
aWVudHMucmVtb3ZlKGlkKTsKICAgICAgICAgU29ja2V0OjpjbG9zZShjb25uZWN0aW9uLT5zb2Nr
ZXQpOwotICAgICAgICBsb2NrZXIudW5sb2NrRWFybHkoKTsKKyAgICAgICAgbG9ja2VyLnVubG9j
aygpOwogICAgICAgICBjb25uZWN0aW9uLT5jbGllbnQuZGlkQ2xvc2UoKnRoaXMsIGlkKTsKICAg
ICB9IGVsc2UKICAgICAgICAgTE9HX0VSUk9SKCJFcnJvcjogQ2Fubm90IGRpc2Nvbm5lY3Q6IElu
dmFsaWQgaWQiKTsKQEAgLTI4Miw3ICsyODIsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclNvY2tl
dEVuZHBvaW50OjpyZWN2SWZFbmFibGVkKENvbm5lY3Rpb25JRCBpZCkKICAgICAgICAgaWYgKGF1
dG8gcmVhZFNpemUgPSBTb2NrZXQ6OnJlYWQoY29ubmVjdGlvbi0+c29ja2V0LCByZWN2QnVmZmVy
LmRhdGEoKSwgcmVjdkJ1ZmZlci5zaXplKCkpKSB7CiAgICAgICAgICAgICBpZiAoKnJlYWRTaXpl
ID4gMCkgewogICAgICAgICAgICAgICAgIHJlY3ZCdWZmZXIuc2hyaW5rKCpyZWFkU2l6ZSk7Ci0g
ICAgICAgICAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgICAgICAgICAgbG9j
a2VyLnVubG9jaygpOwogICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNsaWVudC5kaWRSZWNl
aXZlKCp0aGlzLCBpZCwgV1RGTW92ZShyZWN2QnVmZmVyKSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgfQpAQCAtMjkxLDcgKzI5MSw3IEBAIHZvaWQgUmVtb3RlSW5zcGVj
dG9yU29ja2V0RW5kcG9pbnQ6OnJlY3ZJZkVuYWJsZWQoQ29ubmVjdGlvbklEIGlkKQogICAgICAg
ICBTb2NrZXQ6OmNsb3NlKGNvbm5lY3Rpb24tPnNvY2tldCk7CiAgICAgICAgIG1fY2xpZW50cy5y
ZW1vdmUoaWQpOwogCi0gICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBsb2Nr
ZXIudW5sb2NrKCk7CiAgICAgICAgIGNvbm5lY3Rpb24tPmNsaWVudC5kaWRDbG9zZSgqdGhpcywg
aWQpOwogICAgIH0KIH0KQEAgLTM1Myw3ICszNTMsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclNv
Y2tldEVuZHBvaW50OjphY2NlcHRJbmV0U29ja2V0SWZFbmFibGVkKENvbm5lY3Rpb25JRCBpZCkK
ICAgICBpZiAoY29uc3QgYXV0byYgY29ubmVjdGlvbiA9IG1fbGlzdGVuZXJzLmdldChpZCkpIHsK
ICAgICAgICAgaWYgKGF1dG8gc29ja2V0ID0gU29ja2V0OjphY2NlcHQoY29ubmVjdGlvbi0+c29j
a2V0KSkgewogICAgICAgICAgICAgLy8gTmVlZCB0byB1bmxvY2sgYmVmb3JlIGNhbGxpbmcgY3Jl
YXRlQ2xpZW50IGFzIGl0IGFsc28gYXR0ZW1wdHMgdG8gbG9jay4KLSAgICAgICAgICAgIGxvY2tl
ci51bmxvY2tFYXJseSgpOworICAgICAgICAgICAgbG9ja2VyLnVubG9jaygpOwogICAgICAgICAg
ICAgaWYgKGNvbm5lY3Rpb24tPmxpc3RlbmVyLmRvQWNjZXB0KCp0aGlzLCBzb2NrZXQudmFsdWUo
KSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmgKaW5kZXggYWEyNzNiYWRiZWZhNzM3YTBlYWE1
MzRmYmViYTlmNTAxZmRiODYyNy4uZGQ5OWYyZDM4MjZjYWFmY2Y5ZWY4YjkwMmE2YTIwM2RhMjIz
YjMzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uY3VycmVu
dEpTTG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmN1cnJlbnRK
U0xvY2suaApAQCAtNTgsOSArNTgsOSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KICAgICAKLSAg
ICB2b2lkIHVubG9ja0Vhcmx5KCkKKyAgICB2b2lkIHVubG9jaygpCiAgICAgewotICAgICAgICBt
X2xvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBtX2xvY2tlci51bmxvY2soKTsKICAgICB9
CiAKIHByaXZhdGU6CkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gdnMuIGRl
cml2ZWQgY2xhc3Nlcy4gSWYgd2UgZGlkbid0LCB0aGVuIHdlIHdvdWxkIGRlc3Ryb3kgdGhlIAog
ICAgICAgICAvLyBEZWZlckdDIG9iamVjdCBiZWZvcmUgdW5sb2NraW5nIHRoZSBsb2NrIHdoaWNo
IGNvdWxkIGNhdXNlIGEgR0MKICAgICAgICAgLy8gYW5kIHJlc3VsdGluZyBkZWFkbG9jay4KLSAg
ICAgICAgdW5sb2NrRWFybHkoKTsKKyAgICAgICAgdW5sb2NrKCk7CiAgICAgfQogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAppbmRleCA5MmJmZWFh
NzY4YWE2ODYyYmRmNWQ5OGM0YWVkZDcxNDYyZTRhZDY0Li4xMGViNGVjYzU3NjJlY2Y4NTYzOGQy
OTExNjAxNDk5ODg0OGQ0ZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTVRyYXBzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRy
YXBzLmNwcApAQCAtMTM3LDggKzEzNyw4IEBAIHZvaWQgVk1UcmFwczo6dHJ5SW5zdGFsbFRyYXBC
cmVha3BvaW50cyhTaWduYWxDb250ZXh0JiBjb250ZXh0LCBTdGFja0JvdW5kcyBzdGFjCiAgICAg
fQogCiAgICAgaWYgKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChmb3VuZENvZGVCbG9jay0+aml0
VHlwZSgpKSkgewotICAgICAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKCptX2xvY2spOwot
ICAgICAgICBpZiAoIWxvY2tlcikKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
Km1fbG9jayB9OworICAgICAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgICAgICBy
ZXR1cm47IC8vIExldCB0aGUgU2lnbmFsU2VuZGVyIHRyeSBhZ2FpbiBsYXRlci4KIAogICAgICAg
ICBpZiAoIW5lZWRIYW5kbGluZyhWTVRyYXBzOjpBc3luY0V2ZW50cykpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuY3BwCmluZGV4IGU0OWRhZTFlMWJjOWRkNzBj
OWViMjAyZDg3NzA5ZmNjNmNhNjcwOTAuLjk4YTdmMTQ3NDI4YTg1NGY5NzViYThmNzA3ZDgyYzc2
ODlmY2FlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3Bl
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNw
cApAQCAtNzMsMTQgKzczLDE0IEBAIGF1dG8gVk1JbnNwZWN0b3I6OmxvY2soU2Vjb25kcyB0aW1l
b3V0KSAtPiBFeHBlY3RlZDxMb2NrZXIsIEVycm9yPgogICAgIC8vIFdlJ2xsIGJlIGRvaW5nIHNs
ZWVwKDEpIGJldHdlZW4gdHJpZXMgYmVsb3cuIEhlbmNlLCBzbGVlcFBlclJldHJ5IGlzIDEuCiAg
ICAgdW5zaWduZWQgbWF4UmV0cmllcyA9ICh0aW1lb3V0IDwgU2Vjb25kczo6aW5maW5pdHkoKSkg
PyB0aW1lb3V0LnZhbHVlKCkgOiBVSU5UX01BWDsKIAotICAgIEV4cGVjdGVkPExvY2tlciwgRXJy
b3I+IGxvY2tlciA9IExvY2tlcjo6dHJ5TG9jayhtX2xvY2spOworICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fbG9jayB9OworCiAgICAgdW5zaWduZWQgdHJ5Q291bnQgPSAwOwotICAg
IHdoaWxlICghbG9ja2VyICYmIHRyeUNvdW50IDwgbWF4UmV0cmllcykgeworICAgIHdoaWxlICgh
bG9ja2VyLnRyeUxvY2soKSAmJiB0cnlDb3VudCA8IG1heFJldHJpZXMpIHsKICAgICAgICAgLy8g
V2Ugd2FudCB0aGUgdmVyc2lvbiBvZiBzbGVlcCBmcm9tIHVuaXN0ZC5oLiBDYXN0IHRvIGRpc2Ft
YmlndWF0ZS4KICNpZiAhT1MoV0lORE9XUykKICAgICAgICAgKHN0YXRpY19jYXN0PHVuc2lnbmVk
ICgqKSh1bnNpZ25lZCk+KHNsZWVwKSkoMSk7CiAjZW5kaWYKLSAgICAgICAgbG9ja2VyID0gTG9j
a2VyOjp0cnlMb2NrKG1fbG9jayk7CiAgICAgfQogCiAgICAgaWYgKCFsb2NrZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oIGIvU291cmNlL1dURi93dGYvQ2hlY2tl
ZExvY2suaAppbmRleCA0NGI4OTk5NjkxMjM0NTIwMDE5OGZkODY0YTk5ODk2Njc3NjM5OTQyLi4x
NzkzMmNjZjg3MTI1YjdmNWFhZjVhNjU3ODFkYTI1MTZlMjdlOTkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRMb2Nr
LmgKQEAgLTQzLDkgKzQzLDkgQEAgbmFtZXNwYWNlIFdURiB7CiAvLyAgICAgICB2b2lkIHNldFZh
bHVlKGludCB2YWx1ZSkgeyBMb2Noa2VyIGhvbGRMb2NrIHsgbV9sb2NrIH07IG1fdmFsdWUgPSB2
YWx1ZTsgIH0KIC8vICAgICAgIHZvaWQgbWF5YmVTZXRPdGhlclZhbHVlKGludCB2YWx1ZSkKIC8v
ICAgICAgIHsKLS8vICAgICAgICAgICBpZiAoIW1fbG9jay50cnlMb2NrKCkpCisvLyAgICAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisvLyAgICAgICAgICAgaWYg
KCFsb2NrZXIudHJ5TG9jaygpKQogLy8gICAgICAgICAgICAgIHJldHVybjsKLS8vICAgICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9vdGhlckxvY2sgfTsKIC8vICAg
ICAgICAgICBtX290aGVyVmFsdWUgPSB2YWx1ZTsKIC8vICAgICAgIH0KIC8vICAgcHJpdmF0ZToK
QEAgLTYwLDggKzYwLDggQEAgY2xhc3MgV1RGX0NBUEFCSUxJVFlfTE9DSyBDaGVja2VkTG9jayA6
IExvY2sgewogcHVibGljOgogICAgIGNvbnN0ZXhwciBDaGVja2VkTG9jaygpID0gZGVmYXVsdDsK
ICAgICB2b2lkIGxvY2soKSBXVEZfQUNRVUlSRVNfTE9DSygpIHsgTG9jazo6bG9jaygpOyB9Ci0g
ICAgYm9vbCB0cnlMb2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgeyByZXR1cm4gTG9j
azo6dHJ5TG9jaygpOyB9Ci0gICAgYm9vbCB0cnlfbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLX0lG
KHRydWUpIHsgcmV0dXJuIExvY2s6OnRyeV9sb2NrKCk7IH0gLy8gTk9MSU5UOiBJbnRlbnRpb25h
bCBkZXZpYXRpb24gdG8gc3VwcG9ydCBzdGQ6OnNjb3BlZF9sb2NrLgorICAgIGJvb2wgdHJ5TG9j
aygpIFdURl9UUllfQUNRVUlSRV9MT0NLKHRydWUpIHsgcmV0dXJuIExvY2s6OnRyeUxvY2soKTsg
fQorICAgIGJvb2wgdHJ5X2xvY2soKSBXVEZfVFJZX0FDUVVJUkVfTE9DSyh0cnVlKSB7IHJldHVy
biBMb2NrOjp0cnlfbG9jaygpOyB9IC8vIE5PTElOVDogSW50ZW50aW9uYWwgZGV2aWF0aW9uIHRv
IHN1cHBvcnQgc3RkOjpzY29wZWRfbG9jay4KICAgICB2b2lkIHVubG9jaygpIFdURl9SRUxFQVNF
U19MT0NLKCkgeyBMb2NrOjp1bmxvY2soKTsgfQogICAgIHZvaWQgdW5sb2NrRmFpcmx5KCkgV1RG
X1JFTEVBU0VTX0xPQ0soKSB7IExvY2s6OnVubG9ja0ZhaXJseSgpOyB9CiAgICAgdm9pZCBzYWZl
cG9pbnQoKSB7IExvY2s6OnNhZmVwb2ludCgpOyB9CkBAIC03NSw4ICs3NSw2IEBAIHB1YmxpYzoK
IC8vIGRlY2xhcmF0aW9uLgogaW5saW5lIHZvaWQgYXNzZXJ0SXNIZWxkKGNvbnN0IENoZWNrZWRM
b2NrJiBsb2NrKSBXVEZfQVNTRVJUU19BQ1FVSVJFRF9MT0NLKGxvY2spIHsgQVNTRVJUX1VOVVNF
RChsb2NrLCBsb2NrLmlzSGVsZCgpKTsgfQogCi11c2luZyBBZG9wdExvY2tUYWcgPSBzdGQ6OmFk
b3B0X2xvY2tfdDsKLQogLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3aXRoIENoZWNr
ZWRMb2NrLgogLy8gTm9uLW1vdmFibGUgc2ltcGxlIHNjb3BlZCBsb2NrIGhvbGRlci4KIC8vIEV4
YW1wbGU6IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKQEAgLTg1LDI4ICs4Myw1OCBAQCBjbGFz
cyBXVEZfQ0FQQUJJTElUWV9TQ09QRURfTE9DSyBMb2NrZXI8Q2hlY2tlZExvY2s+IHsKIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBMb2NrZXIoQ2hlY2tlZExvY2smIGxvY2spIFdURl9BQ1FVSVJFU19M
T0NLKGxvY2spCiAgICAgICAgIDogbV9sb2NrKGxvY2spCisgICAgICAgICwgbV9pc0xvY2tlZCh0
cnVlKQogICAgIHsKICAgICAgICAgbV9sb2NrLmxvY2soKTsKICAgICB9CiAgICAgTG9ja2VyKEFk
b3B0TG9ja1RhZywgQ2hlY2tlZExvY2smIGxvY2spIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCiAg
ICAgICAgIDogbV9sb2NrKGxvY2spCisgICAgICAgICwgbV9pc0xvY2tlZCh0cnVlKQorICAgIHsK
KyAgICB9CisgICAgTG9ja2VyKERlZmVyTG9ja1RhZywgQ2hlY2tlZExvY2smIGxvY2spIFdURl9F
WENMVURFU19MT0NLKGxvY2spCisgICAgICAgIDogbV9sb2NrKGxvY2spCiAgICAgewogICAgIH0K
ICAgICB+TG9ja2VyKCkgV1RGX1JFTEVBU0VTX0xPQ0soKQogICAgIHsKKyAgICAgICAgaWYgKG1f
aXNMb2NrZWQpCisgICAgICAgICAgICBtX2xvY2sudW5sb2NrKCk7CisgICAgfQorICAgIGJvb2wg
dHJ5TG9jaygpIFdURl9UUllfQUNRVUlSRV9MT0NLKHRydWUpCisgICAgeworICAgICAgICBBU1NF
UlQoIW1faXNMb2NrZWQpOworICAgICAgICBtX2lzTG9ja2VkID0gbV9sb2NrLnRyeUxvY2soKTsK
KyAgICAgICAgcmV0dXJuIG1faXNMb2NrZWQ7CisgICAgfQorICAgIHZvaWQgbG9jaygpIFdURl9B
Q1FVSVJFU19MT0NLKG1fbG9jaykKKyAgICB7CisgICAgICAgIEFTU0VSVCghbV9pc0xvY2tlZCk7
CisgICAgICAgIG1fbG9jay5sb2NrKCk7CisgICAgICAgIG1faXNMb2NrZWQgPSB0cnVlOworICAg
IH0KKyAgICB2b2lkIHVubG9jaygpIFdURl9SRUxFQVNFU19MT0NLKG1fbG9jaykKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChtX2lzTG9ja2VkKTsKICAgICAgICAgbV9sb2NrLnVubG9jaygpOworICAg
ICAgICBtX2lzTG9ja2VkID0gZmFsc2U7CiAgICAgfQorCisgICAgZXhwbGljaXQgb3BlcmF0b3Ig
Ym9vbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNMb2NrZWQ7IH0KKwogICAgIExvY2tlcihjb25zdCBM
b2NrZXI8Q2hlY2tlZExvY2s+JikgPSBkZWxldGU7CiAgICAgTG9ja2VyJiBvcGVyYXRvcj0oY29u
c3QgTG9ja2VyPENoZWNrZWRMb2NrPiYpID0gZGVsZXRlOworCiBwcml2YXRlOgogICAgIENoZWNr
ZWRMb2NrJiBtX2xvY2s7CisgICAgYm9vbCBtX2lzTG9ja2VkIHsgZmFsc2UgfTsKIH07CiAKIExv
Y2tlcihDaGVja2VkTG9jayYpIC0+IExvY2tlcjxDaGVja2VkTG9jaz47CiBMb2NrZXIoQWRvcHRM
b2NrVGFnLCBDaGVja2VkTG9jayYpIC0+IExvY2tlcjxDaGVja2VkTG9jaz47CitMb2NrZXIoRGVm
ZXJMb2NrVGFnLCBDaGVja2VkTG9jayYpIC0+IExvY2tlcjxDaGVja2VkTG9jaz47CiAKIH0gLy8g
bmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6OmFzc2VydElzSGVsZDsKIHVzaW5nIFdURjo6Q2hl
Y2tlZExvY2s7Ci11c2luZyBXVEY6OkFkb3B0TG9ja1RhZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0xvY2tlci5oIGIvU291cmNlL1dURi93dGYvTG9ja2VyLmgKaW5kZXggOGIwZTE5MmI1
ZWJhNGI4ODc2M2E4NDRkMWVjMGNiYTE0YzBjOTg4YS4uMGRhYWZlMDQ0NmVjYzlmZTdiOGZlMzNl
NDdiYTg4ODJlZjMzYzc3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTG9ja2VyLmgKKysr
IGIvU291cmNlL1dURi93dGYvTG9ja2VyLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2lu
Y2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBpbGVyLmg+CkBAIC01NCwx
MSArNTUsMTggQEAgcHJvdGVjdGVkOgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBEcm9w
TG9ja0ZvclNjb3BlOwogCit1c2luZyBBZG9wdExvY2tUYWcgPSBzdGQ6OmFkb3B0X2xvY2tfdDsK
K2NvbnN0ZXhwciBBZG9wdExvY2tUYWcgQWRvcHRMb2NrID0gQWRvcHRMb2NrVGFnKCk7Cit1c2lu
ZyBEZWZlckxvY2tUYWcgPSBzdGQ6OmRlZmVyX2xvY2tfdDsKK2NvbnN0ZXhwciBEZWZlckxvY2tU
YWcgRGVmZXJMb2NrID0gRGVmZXJMb2NrVGFnKCk7CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBj
bGFzcyBMb2NrZXIgOiBwdWJsaWMgQWJzdHJhY3RMb2NrZXIgewogcHVibGljOgogICAgIGV4cGxp
Y2l0IExvY2tlcihUJiBsb2NrYWJsZSkgOiBtX2xvY2thYmxlKCZsb2NrYWJsZSkgeyBsb2NrKCk7
IH0KICAgICBleHBsaWNpdCBMb2NrZXIoVCogbG9ja2FibGUpIDogbV9sb2NrYWJsZShsb2NrYWJs
ZSkgeyBsb2NrKCk7IH0KKyAgICBMb2NrZXIoQWRvcHRMb2NrVGFnLCBUJiBsb2NrYWJsZSkgOiBt
X2xvY2thYmxlKCZsb2NrYWJsZSksIG1faXNMb2NrZWQodHJ1ZSkgeyB9CisgICAgTG9ja2VyKERl
ZmVyTG9ja1RhZywgVCYgbG9ja2FibGUpIDogbV9sb2NrYWJsZSgmbG9ja2FibGUpIHsgfQogCiAg
ICAgLy8gWW91IHNob3VsZCBiZSB3YXJ5IG9mIHVzaW5nIHRoaXMgY29uc3RydWN0b3IuIEl0J3Mg
b25seSBhcHBsaWNhYmxlCiAgICAgLy8gaW4gcGxhY2VzIHdoZXJlIHRoZXJlIGlzIGEgbG9ja2lu
ZyBwcm90b2NvbCBmb3IgYSBwYXJ0aWN1bGFyIG9iamVjdApAQCAtNjYsODQgKzc0LDc0IEBAIHB1
YmxpYzoKICAgICAvLyB0aGlzIG9mdGVuIGhhcHBlbnMgd2hlbiBhbiBvYmplY3QgaXMgbmV3bHkg
YWxsb2NhdGVkIGFuZCBpdCBjYW4gbm90CiAgICAgLy8gYmUgYWNjZXNzZWQgY29uY3VycmVudGx5
LgogICAgIExvY2tlcihOb0xvY2tpbmdOZWNlc3NhcnlUYWcpIDogbV9sb2NrYWJsZShudWxscHRy
KSB7IH0KLSAgICAKKwogICAgIExvY2tlcihzdGQ6OnVuZGVybHlpbmdfdHlwZV90PE5vTG9ja2lu
Z05lY2Vzc2FyeVRhZz4pID0gZGVsZXRlOwogCiAgICAgfkxvY2tlcigpCiAgICAgewotICAgICAg
ICB1bmxvY2soKTsKKyAgICAgICAgaWYgKG1faXNMb2NrZWQpCisgICAgICAgICAgICB1bmxvY2so
KTsKKyAgICB9CisKKyAgICBib29sIHRyeUxvY2soKQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1f
bG9ja2FibGUpOworICAgICAgICBBU1NFUlQoIW1faXNMb2NrZWQpOworICAgICAgICBpZiAoIW1f
bG9ja2FibGUgfHwgIW1fbG9ja2FibGUtPnRyeUxvY2soKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgbV9pc0xvY2tlZCA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KICAgICAKLSAgICBzdGF0aWMgTG9ja2VyIHRyeUxvY2soVCYgbG9ja2FibGUpCisgICAg
ZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNMb2NrZWQ7IH0KKwor
ICAgIHZvaWQgdW5sb2NrKCkKICAgICB7Ci0gICAgICAgIExvY2tlciByZXN1bHQoTm9Mb2NraW5n
TmVjZXNzYXJ5KTsKLSAgICAgICAgaWYgKGxvY2thYmxlLnRyeUxvY2soKSkgewotICAgICAgICAg
ICAgcmVzdWx0Lm1fbG9ja2FibGUgPSAmbG9ja2FibGU7Ci0gICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgICBBU1NFUlQobV9pc0xvY2tlZCk7CisgICAgICAgIGNvbXBpbGVyRmVuY2Uo
KTsKKyAgICAgICAgaWYgKG1fbG9ja2FibGUpIHsKKyAgICAgICAgICAgIFRTQU5fQU5OT1RBVEVf
SEFQUEVOU19CRUZPUkUobV9sb2NrYWJsZSk7CisgICAgICAgICAgICBtX2xvY2thYmxlLT51bmxv
Y2soKTsKKyAgICAgICAgICAgIG1faXNMb2NrZWQgPSBmYWxzZTsKICAgICAgICAgfQotICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIFQqIGxvY2thYmxlKCkgeyByZXR1cm4gbV9s
b2NrYWJsZTsgfQotICAgIAotICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJl
dHVybiAhIW1fbG9ja2FibGU7IH0KLSAgICAKLSAgICB2b2lkIHVubG9ja0Vhcmx5KCkKKyAgICB2
b2lkIGxvY2soKQogICAgIHsKLSAgICAgICAgdW5sb2NrKCk7Ci0gICAgICAgIG1fbG9ja2FibGUg
PSBudWxscHRyOworICAgICAgICBBU1NFUlQoIW1faXNMb2NrZWQpOworICAgICAgICBpZiAobV9s
b2NrYWJsZSkgeworICAgICAgICAgICAgbV9sb2NrYWJsZS0+bG9jaygpOworICAgICAgICAgICAg
VFNBTl9BTk5PVEFURV9IQVBQRU5TX0FGVEVSKG1fbG9ja2FibGUpOworICAgICAgICAgICAgbV9p
c0xvY2tlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgY29tcGlsZXJGZW5jZSgpOwogICAg
IH0KICAgICAKICAgICAvLyBJdCdzIGdyZWF0IHRvIGJlIGFibGUgdG8gcGFzcyBsb2NrZXJzIGFy
b3VuZC4gSXQgZW5hYmxlcyBjdXN0b20gbG9ja2luZyBhZGFwdG9ycyBsaWtlCiAgICAgLy8gSlND
OjpMb2NrRHVyaW5nTWFya2luZy4KICAgICBMb2NrZXIoTG9ja2VyJiYgb3RoZXIpCi0gICAgICAg
IDogbV9sb2NrYWJsZShvdGhlci5tX2xvY2thYmxlKQorICAgICAgICA6IG1fbG9ja2FibGUoc3Rk
OjpleGNoYW5nZShvdGhlci5tX2xvY2thYmxlLCBudWxscHRyKSkKKyAgICAgICAgLCBtX2lzTG9j
a2VkKHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9pc0xvY2tlZCwgZmFsc2UpKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKCZvdGhlciAhPSB0aGlzKTsKLSAgICAgICAgb3RoZXIubV9sb2NrYWJsZSA9IG51
bGxwdHI7CiAgICAgfQogICAgIAogICAgIExvY2tlciYgb3BlcmF0b3I9KExvY2tlciYmIG90aGVy
KQogICAgIHsKICAgICAgICAgQVNTRVJUKCZvdGhlciAhPSB0aGlzKTsKLSAgICAgICAgbV9sb2Nr
YWJsZSA9IG90aGVyLm1fbG9ja2FibGU7Ci0gICAgICAgIG90aGVyLm1fbG9ja2FibGUgPSBudWxs
cHRyOworICAgICAgICBtX2xvY2thYmxlID0gc3RkOjpleGNoYW5nZShvdGhlci5tX2xvY2thYmxl
LCBudWxscHRyKTsKKyAgICAgICAgbV9pc0xvY2tlZCA9IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9p
c0xvY2tlZCwgZmFsc2UpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogICAgIAogcHJp
dmF0ZToKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZT4KICAgICBmcmllbmQgY2xhc3MgRHJvcExvY2tG
b3JTY29wZTsKLQotICAgIHZvaWQgdW5sb2NrKCkKLSAgICB7Ci0gICAgICAgIGNvbXBpbGVyRmVu
Y2UoKTsKLSAgICAgICAgaWYgKG1fbG9ja2FibGUpIHsKLSAgICAgICAgICAgIFRTQU5fQU5OT1RB
VEVfSEFQUEVOU19CRUZPUkUobV9sb2NrYWJsZSk7Ci0gICAgICAgICAgICBtX2xvY2thYmxlLT51
bmxvY2soKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHZvaWQgbG9jaygpCi0gICAgewotICAg
ICAgICBpZiAobV9sb2NrYWJsZSkgewotICAgICAgICAgICAgbV9sb2NrYWJsZS0+bG9jaygpOwot
ICAgICAgICAgICAgVFNBTl9BTk5PVEFURV9IQVBQRU5TX0FGVEVSKG1fbG9ja2FibGUpOwotICAg
ICAgICB9Ci0gICAgICAgIGNvbXBpbGVyRmVuY2UoKTsKLSAgICB9CiAgICAgCi0gICAgVCogbV9s
b2NrYWJsZTsKKyAgICBUKiBtX2xvY2thYmxlIHsgbnVsbHB0ciB9OworICAgIGJvb2wgbV9pc0xv
Y2tlZCB7IGZhbHNlIH07CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4KLUxvY2tl
cjxMb2NrVHlwZT4gdHJ5SG9sZExvY2soTG9ja1R5cGUmKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci10
ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4KLUxvY2tlcjxMb2NrVHlwZT4gdHJ5SG9sZExvY2so
TG9ja1R5cGUmIGxvY2spCi17Ci0gICAgcmV0dXJuIExvY2tlcjxMb2NrVHlwZT46OnRyeUxvY2so
bG9jayk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlPgogY2xhc3MgRHJvcExvY2tG
b3JTY29wZSA6IHByaXZhdGUgQWJzdHJhY3RMb2NrZXIgewogICAgIFdURl9GT1JCSURfSEVBUF9B
TExPQ0FUSU9OKERyb3BMb2NrRm9yU2NvcGUpOwpAQCAtMTY2LDYgKzE2NCw4IEBAIHByaXZhdGU6
CiB9CiAKIHVzaW5nIFdURjo6QWJzdHJhY3RMb2NrZXI7Cit1c2luZyBXVEY6OkFkb3B0TG9jazsK
K3VzaW5nIFdURjo6RGVmZXJMb2NrOwogdXNpbmcgV1RGOjpMb2NrZXI7CiB1c2luZyBXVEY6Ok5v
TG9ja2luZ05lY2Vzc2FyeVRhZzsKIHVzaW5nIFdURjo6Tm9Mb2NraW5nTmVjZXNzYXJ5OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9nZ2VyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIu
aAppbmRleCBlOTlkNDliZjJlOWQ5YWQyYTZiM2I2MTgwZGNiZDk4Y2Q3ODVmYTU0Li4yMzg4ODI0
ZTBmMTcyNjNhYTFjZjc4ZDEyMGRhNDUyODBlYWFkNTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9Mb2dnZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaApAQCAtMzIyLDEwICsz
MjIsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKGNoYW5uZWwuc3RhdGUgPT0gV1RGTG9nQ2hh
bm5lbFN0YXRlOjpPZmYgfHwgbGV2ZWwgPiBjaGFubmVsLmxldmVsKQogICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIGlmICghb2JzZXJ2ZXJMb2NrKCkudHJ5TG9jaygpKQorICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBvYnNlcnZlckxvY2soKSB9OworICAgICAgICBpZiAo
IWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgTG9ja2Vy
IGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG9ic2VydmVyTG9jaygpIH07CiAgICAgICAgIGZv
ciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogb2JzZXJ2ZXJzKCkpCiAgICAgICAgICAgICBvYnNlcnZl
ci5kaWRMb2dNZXNzYWdlKGNoYW5uZWwsIGxldmVsLCB7IENvbnNvbGVMb2dWYWx1ZTxBcmd1bWVu
dD46OnRvVmFsdWUoYXJndW1lbnRzKS4uLiB9KTsKICAgICB9CkBAIC0zNTMsMTAgKzM1MywxMCBA
QCBwcml2YXRlOgogICAgICAgICBpZiAoY2hhbm5lbC5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3Rh
dGU6Ok9mZiB8fCBsZXZlbCA+IGNoYW5uZWwubGV2ZWwpCiAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgaWYgKCFvYnNlcnZlckxvY2soKS50cnlMb2NrKCkpCisgICAgICAgIExvY2tlciBs
b2NrZXIgeyBEZWZlckxvY2ssIG9ic2VydmVyTG9jaygpIH07CisgICAgICAgIGlmICghbG9ja2Vy
LnRyeUxvY2soKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBMb2NrZXIgbG9ja2Vy
IHsgQWRvcHRMb2NrVGFnIHsgfSwgb2JzZXJ2ZXJMb2NrKCkgfTsKICAgICAgICAgZm9yIChPYnNl
cnZlciYgb2JzZXJ2ZXIgOiBvYnNlcnZlcnMoKSkKICAgICAgICAgICAgIG9ic2VydmVyLmRpZExv
Z01lc3NhZ2UoY2hhbm5lbCwgbGV2ZWwsIHsgQ29uc29sZUxvZ1ZhbHVlPEFyZ3VtZW50Pjo6dG9W
YWx1ZShhcmd1bWVudHMpLi4uIH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1RocmVhZFNhZmV0eUFuYWx5c2lzLmggYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRTYWZldHlBbmFs
eXNpcy5oCmluZGV4IDAzYWMxNWE5MzNlNzBmYzFhMWZmMDQ3OGYwYjk5M2NlMThkNDk3ZWMuLjYz
M2VkMDE5NjdkOTRlY2ExOWI1NzkyMmI2NjA0YjEyNjhlYTExYmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1RocmVhZFNhZmV0eUFuYWx5c2lzLmgKKysrIGIvU291cmNlL1dURi93dGYvVGhy
ZWFkU2FmZXR5QW5hbHlzaXMuaApAQCAtMzUsNyArMzUsNyBAQAogI2RlZmluZSBXVEZfVEhSRUFE
X0FOTk9UQVRJT05fQVRUUklCVVRFKHgpCiAjZW5kaWYKIAotI2RlZmluZSBXVEZfQUNRVUlSRVNf
TE9DS19JRiguLi4pIFdURl9USFJFQURfQU5OT1RBVElPTl9BVFRSSUJVVEUodHJ5X2FjcXVpcmVf
Y2FwYWJpbGl0eShfX1ZBX0FSR1NfXykpCisjZGVmaW5lIFdURl9UUllfQUNRVUlSRV9MT0NLKC4u
LikgV1RGX1RIUkVBRF9BTk5PVEFUSU9OX0FUVFJJQlVURSh0cnlfYWNxdWlyZV9jYXBhYmlsaXR5
KF9fVkFfQVJHU19fKSkKICNkZWZpbmUgV1RGX0FDUVVJUkVTX0xPQ0soLi4uKSBXVEZfVEhSRUFE
X0FOTk9UQVRJT05fQVRUUklCVVRFKGFjcXVpcmVfY2FwYWJpbGl0eShfX1ZBX0FSR1NfXykpCiAj
ZGVmaW5lIFdURl9BQ1FVSVJFU19TSEFSRURfTE9DS19JRiguLi4pIFdURl9USFJFQURfQU5OT1RB
VElPTl9BVFRSSUJVVEUodHJ5X2FjcXVpcmVfc2hhcmVkX2NhcGFiaWxpdHkoX19WQV9BUkdTX18p
KQogI2RlZmluZSBXVEZfQUNRVUlSRVNfU0hBUkVEX0xPQ0soLi4uKSBXVEZfVEhSRUFEX0FOTk9U
QVRJT05fQVRUUklCVVRFKGFjcXVpcmVfc2hhcmVkX2NhcGFiaWxpdHkoX19WQV9BUkdTX18pKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAppbmRleCAxODQ0MDIxZTZmMWFj
NDRmZTYzMjVjNjI4YmFlNmY4ZTE3ZmJhNjcwLi5mNDI0MjM5ZjQzNDVjNjVjY2M0MDcwOGEyZmNj
OTYxN2M1MTlkODI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcApA
QCAtODUsMTEgKzg1LDEwIEBAIGJvb2wgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bDo6dXBkYXRlRGF0YVNvdXJjZShjb25zdCBDQUF1ZGlvU3RyZWFtRGVzCiB7CiAgICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7CiAKLSAgICBpZiAoIW1fZGF0YVNvdXJjZUxvY2sudHJ5TG9jaygp
KQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fZGF0YVNvdXJjZUxvY2sgfTsKKyAg
ICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIExv
Y2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2RhdGFTb3VyY2VMb2NrIH07Ci0KICAg
ICBhdXRvIGRhdGFTb3VyY2UgPSBBdWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShhdWRpb0Rl
c2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDEsIG1fc291cmNlLmdldCgpKTsKICAgICBpZiAoZGF0
YVNvdXJjZS0+c2V0SW5wdXRGb3JtYXQoYXVkaW9EZXNjcmlwdGlvbikpIHsKICAgICAgICAgY2Fs
bE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0gewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJj
ZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNv
dXJjZU5vZGUuY3BwCmluZGV4IDYzM2M1MDZhMDA3NjdmZmI4ODU4Y2IwNjBmNTFkNzY5OTZiYTE3
MmEuLmZiNGM0NGY3ZGZjNjFiMmM0ZjE4NjA3MjhkYjY0Nzg5NTlmMWEwZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNl
Tm9kZS5jcHAKQEAgLTEwMiwxMCArMTAyLDEwIEBAIHZvaWQgQXVkaW9CdWZmZXJTb3VyY2VOb2Rl
Ojpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28g
d2UgdXNlIHRyeUhvbGRMb2NrKCkgaW5zdGVhZC4KLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRM
b2NrKG1fcHJvY2Vzc0xvY2spOwotICAgIGlmICghbG9ja2VyKSB7Ci0gICAgICAgIC8vIFRvbyBi
YWQgLSB0cnlIb2xkTG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGNo
YW5naW5nIGJ1ZmZlcnMgYW5kIHdlcmUgYWxyZWFkeSBvdXRwdXR0aW5nIHNpbGVuY2UgYW55d2F5
LgorICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBsb2NrLCBzbyB3
ZSB1c2UgdHJ5TG9jaygpIGluc3RlYWQuCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
bV9wcm9jZXNzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgeworICAgICAgICAv
LyBUb28gYmFkIC0gdHJ5TG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9m
IGNoYW5naW5nIGJ1ZmZlcnMgYW5kIHdlcmUgYWxyZWFkeSBvdXRwdXR0aW5nIHNpbGVuY2UgYW55
d2F5LgogICAgICAgICBvdXRwdXRCdXMuemVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwCmluZGV4IGZl
YmEzMzBlZDAyMGE3YTY5YTQ0M2YzMjJlZGFkZDdlMWE5NmQ2ZWMuLmIyYmNjZjAyMzg4ZTE3ZTVm
YmE3OGI5MDBiMDg0MmIzMDM2OGM3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvTm9kZS5jcHAKQEAgLTU3OCwxMyArNTc4LDE1IEBAIHZvaWQgQXVkaW9Ob2Rl
OjpkZWNyZW1lbnRDb25uZWN0aW9uQ291bnQoKQogewogICAgIC8vIFRoZSBhY3R1YWxseSB3b3Jr
IGZvciBkZXJlZiBoYXBwZW5zIGNvbXBsZXRlbHkgd2l0aGluIHRoZSBhdWRpbyBjb250ZXh0J3Mg
Z3JhcGggbG9jay4KICAgICAvLyBJbiB0aGUgY2FzZSBvZiB0aGUgYXVkaW8gdGhyZWFkLCB3ZSBt
dXN0IHVzZSBhIHRyeUxvY2sgdG8gYXZvaWQgZ2xpdGNoZXMuCi0gICAgaWYgKGF1dG8gbG9ja2Vy
ID0gY29udGV4dCgpLmlzQXVkaW9UaHJlYWQoKSA/IExvY2tlcjxSZWN1cnNpdmVMb2NrPjo6dHJ5
TG9jayhjb250ZXh0KCkuZ3JhcGhMb2NrKCkpIDogTG9ja2VyIHsgY29udGV4dCgpLmdyYXBoTG9j
aygpIH0pIHsKLSAgICAgICAgLy8gVGhpcyBpcyB3aGVyZSB0aGUgcmVhbCBkZXJlZiB3b3JrIGhh
cHBlbnMuCi0gICAgICAgIGRlY3JlbWVudENvbm5lY3Rpb25Db3VudFdpdGhMb2NrKCk7CisgICAg
aWYgKGNvbnRleHQoKS5pc0F1ZGlvVGhyZWFkKCkpIHsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7
IERlZmVyTG9jaywgY29udGV4dCgpLmdyYXBoTG9jaygpIH07CisgICAgICAgIGlmIChsb2NrZXIu
dHJ5TG9jaygpKQorICAgICAgICAgICAgZGVjcmVtZW50Q29ubmVjdGlvbkNvdW50V2l0aExvY2so
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29udGV4dCgpLmFkZERlZmVycmVkRGVjcmVt
ZW50Q29ubmVjdGlvbkNvdW50KHRoaXMpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIFdlIHdl
cmUgdW5hYmxlIHRvIGdldCB0aGUgbG9jaywgc28gcHV0IHRoaXMgaW4gYSBsaXN0IHRvIGZpbmlz
aCB1cCBsYXRlci4KLSAgICAgICAgQVNTRVJUKGNvbnRleHQoKS5pc0F1ZGlvVGhyZWFkKCkpOwot
ICAgICAgICBjb250ZXh0KCkuYWRkRGVmZXJyZWREZWNyZW1lbnRDb25uZWN0aW9uQ291bnQodGhp
cyk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBjb250ZXh0KCkuZ3JhcGhMb2NrKCkgfTsKKyAg
ICAgICAgZGVjcmVtZW50Q29ubmVjdGlvbkNvdW50V2l0aExvY2soKTsKICAgICB9CiAKICAgICAv
LyBPbmNlIEF1ZGlvQ29udGV4dDo6dW5pbml0aWFsaXplKCkgaXMgY2FsbGVkIHRoZXJlJ3Mgbm8g
bW9yZSBjaGFuY2VzIGZvciBkZWxldGVNYXJrZWROb2RlcygpIHRvIGdldCBjYWxsZWQsIHNvIHdl
IGNhbGwgaGVyZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9QYXJhbVRpbWVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9QYXJhbVRpbWVsaW5lLmNwcAppbmRleCAwNDA2ZWFiNzcxMGU4ZWQ5N2RlODk4M2EyMDBl
NTE1NmMyMjllYWFmLi4yODQzZjIzOTZjNTk5ZGI0MzU1MDlhNDk3NDc0OGJiYjAxMTcxYWUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1l
bGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFt
VGltZWxpbmUuY3BwCkBAIC0zMjcsOSArMzI3LDkgQEAgdm9pZCBBdWRpb1BhcmFtVGltZWxpbmU6
OnJlbW92ZUNhbmNlbGxlZEV2ZW50cyhzaXplX3QgZmlyc3RFdmVudFRvUmVtb3ZlKQogT3B0aW9u
YWw8ZmxvYXQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVGb3JDb250ZXh0VGltZShCYXNlQXVk
aW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdCBkZWZhdWx0VmFsdWUsIGZsb2F0IG1pblZhbHVlLCBm
bG9hdCBtYXhWYWx1ZSkKIHsKICAgICB7Ci0gICAgICAgIGlmICghbV9ldmVudHNMb2NrLnRyeUxv
Y2soKSkKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9ldmVudHNMb2NrIH07
CisgICAgICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7Ci0gICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2V2
ZW50c0xvY2sgfTsKICAgICAgICAgaWYgKCFtX2V2ZW50cy5zaXplKCkgfHwgU2Vjb25kcyB7IGNv
bnRleHQuY3VycmVudFRpbWUoKSB9IDwgbV9ldmVudHNbMF0udGltZSgpKQogICAgICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9CkBAIC0zNDcsMTEgKzM0NywxMSBAQCBPcHRpb25h
bDxmbG9hdD4gQXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKEJhc2VBdWRp
b0NvbnRleHQmIGNvbnRleAogZmxvYXQgQXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZXNGb3JGcmFt
ZVJhbmdlKHNpemVfdCBzdGFydEZyYW1lLCBzaXplX3QgZW5kRnJhbWUsIGZsb2F0IGRlZmF1bHRW
YWx1ZSwgZmxvYXQgbWluVmFsdWUsIGZsb2F0IG1heFZhbHVlLCBmbG9hdCogdmFsdWVzLCB1bnNp
Z25lZCBudW1iZXJPZlZhbHVlcywgZG91YmxlIHNhbXBsZVJhdGUsIGRvdWJsZSBjb250cm9sUmF0
ZSkKIHsKICAgICAvLyBXZSBjYW4ndCBjb250ZW5kIHRoZSBsb2NrIGluIHRoZSByZWFsdGltZSBh
dWRpbyB0aHJlYWQuCi0gICAgaWYgKCFtX2V2ZW50c0xvY2sudHJ5TG9jaygpKSB7CisgICAgTG9j
a2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9ldmVudHNMb2NrIH07CisgICAgaWYgKCFsb2NrZXIu
dHJ5TG9jaygpKSB7CiAgICAgICAgIHN0ZDo6ZmlsbF9uKHZhbHVlcywgbnVtYmVyT2ZWYWx1ZXMs
IGRlZmF1bHRWYWx1ZSk7CiAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CiAgICAgfQotICAg
IExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2V2ZW50c0xvY2sgfTsKIAogICAg
IGZsb2F0IHZhbHVlID0gdmFsdWVzRm9yRnJhbWVSYW5nZUltcGwoc3RhcnRGcmFtZSwgZW5kRnJh
bWUsIGRlZmF1bHRWYWx1ZSwgdmFsdWVzLCBudW1iZXJPZlZhbHVlcywgc2FtcGxlUmF0ZSwgY29u
dHJvbFJhdGUpOwogCkBAIC05ODYsOSArOTg2LDkgQEAgYm9vbCBBdWRpb1BhcmFtVGltZWxpbmU6
OmlzRXZlbnRDdXJyZW50KGNvbnN0IFBhcmFtRXZlbnQmIGV2ZW50LCBjb25zdCBQYXJhbUV2ZW4K
IAogYm9vbCBBdWRpb1BhcmFtVGltZWxpbmU6Omhhc1ZhbHVlcyhzaXplX3Qgc3RhcnRGcmFtZSwg
ZG91YmxlIHNhbXBsZVJhdGUpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2V2ZW50c0xvY2sudHJ5TG9j
aygpKQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fZXZlbnRzTG9jayB9OworICAg
IGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgTG9ja2Vy
IGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fZXZlbnRzTG9jayB9OwogCiAgICAgLy8gUmV0
dXJuIGZhbHNlIGlmIHRoZXJlIGFyZSBubyBldmVudHMgaW4gdGhlIHRpbWUgcmFuZ2UuCiAgICAg
YXV0byBlbmRGcmFtZSA9IHN0YXJ0RnJhbWUgKyBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1
bVNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldE5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXROb2RlLmNwcAppbmRleCAzNDk2MjZmYTRkNDNlZDI1M2ZjZjkwNzMyYjY0MmFmMmJjNWFh
NDYwLi5iYzkwOTk1OWQ1M2M0ZGJjZDFkM2M3ODhlNWIwNzk2N2M1YTk4NTcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAK
QEAgLTE5MSw4ICsxOTEsOCBAQCB2b2lkIEF1ZGlvV29ya2xldE5vZGU6OnByb2Nlc3Moc2l6ZV90
IGZyYW1lc1RvUHJvY2VzcykKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAotICAg
IGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2Nr
ZXIgfHwgIW1fcHJvY2Vzc29yIHx8ICZUaHJlYWQ6OmN1cnJlbnQoKSAhPSBtX3dvcmtsZXRUaHJl
YWQpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07Cisg
ICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpIHx8ICFtX3Byb2Nlc3NvciB8fCAmVGhyZWFkOjpjdXJy
ZW50KCkgIT0gbV93b3JrbGV0VGhyZWFkKSB7CiAgICAgICAgIC8vIFdlJ3JlIG5vdCByZWFkeSB5
ZXQgb3Igd2UgYXJlIGdldHRpbmcgZGVzdHJveWVkLiBJbiB0aGlzIGNhc2UsIHdlIG91dHB1dCBz
aWxlbmNlLgogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZPdXRwdXRz
KCk7ICsraSkKICAgICAgICAgICAgIG91dHB1dChpKS0+YnVzKCktPnplcm8oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCmlu
ZGV4IGUyMDJkN2QyNjJhZDA2NDdiZGE3NmZiYTUyN2YwYTVhMTYyMWE3ODAuLjhlNGMzZDYyMjAy
NWU5YWNmZTE0M2Q5MjNlZmQxZjZjMTE2ZmZmYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcApAQCAtNTYwLDE0ICs1NjAs
MTYgQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0OjpoYW5kbGVQcmVSZW5kZXJUYXNrcyhjb25zdCBB
dWRpb0lPUG9zaXRpb24mIG91dHB1dFBvc2l0aW8KIAogICAgIC8vIEF0IHRoZSBiZWdpbm5pbmcg
b2YgZXZlcnkgcmVuZGVyIHF1YW50dW0sIHRyeSB0byB1cGRhdGUgdGhlIGludGVybmFsIHJlbmRl
cmluZyBncmFwaCBzdGF0ZSAoZnJvbSBtYWluIHRocmVhZCBjaGFuZ2VzKS4KICAgICAvLyBJdCdz
IE9LIGlmIHRoZSB0cnlMb2NrKCkgZmFpbHMsIHdlJ2xsIGp1c3QgdGFrZSBzbGlnaHRseSBsb25n
ZXIgdG8gcGljayB1cCB0aGUgY2hhbmdlcy4KLSAgICBpZiAoYXV0byBsb2NrZXIgPSBMb2NrZXI8
UmVjdXJzaXZlTG9jaz46OnRyeUxvY2soZ3JhcGhMb2NrKCkpKSB7Ci0gICAgICAgIC8vIEZpeHVw
IHRoZSBzdGF0ZSBvZiBhbnkgZGlydHkgQXVkaW9TdW1taW5nSnVuY3Rpb25zIGFuZCBBdWRpb05v
ZGVPdXRwdXRzLgotICAgICAgICBoYW5kbGVEaXJ0eUF1ZGlvU3VtbWluZ0p1bmN0aW9ucygpOwot
ICAgICAgICBoYW5kbGVEaXJ0eUF1ZGlvTm9kZU91dHB1dHMoKTsKKyAgICBMb2NrZXIgbG9ja2Vy
IHsgRGVmZXJMb2NrLCBncmFwaExvY2soKSB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkK
KyAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHVwZGF0ZUF1dG9tYXRpY1B1bGxOb2RlcygpOwot
ICAgICAgICBtX291dHB1dFBvc2l0aW9uID0gb3V0cHV0UG9zaXRpb247Ci0gICAgfQorICAgIC8v
IEZpeHVwIHRoZSBzdGF0ZSBvZiBhbnkgZGlydHkgQXVkaW9TdW1taW5nSnVuY3Rpb25zIGFuZCBB
dWRpb05vZGVPdXRwdXRzLgorICAgIGhhbmRsZURpcnR5QXVkaW9TdW1taW5nSnVuY3Rpb25zKCk7
CisgICAgaGFuZGxlRGlydHlBdWRpb05vZGVPdXRwdXRzKCk7CisKKyAgICB1cGRhdGVBdXRvbWF0
aWNQdWxsTm9kZXMoKTsKKyAgICBtX291dHB1dFBvc2l0aW9uID0gb3V0cHV0UG9zaXRpb247CiB9
CiAKIEF1ZGlvSU9Qb3NpdGlvbiBCYXNlQXVkaW9Db250ZXh0OjpvdXRwdXRQb3NpdGlvbigpCkBA
IC01ODQsOCArNTg2LDggQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0OjpoYW5kbGVQb3N0UmVuZGVy
VGFza3MoKQogICAgIC8vIE11c3QgdXNlIGEgdHJ5TG9jaygpIGhlcmUgdG9vLiBEb24ndCB3b3Jy
eSwgdGhlIGxvY2sgd2lsbCB2ZXJ5IHJhcmVseSBiZSBjb250ZW5kZWQgYW5kIHRoaXMgbWV0aG9k
IGlzIGNhbGxlZCBmcmVxdWVudGx5LgogICAgIC8vIFRoZSB3b3JzdCB0aGF0IGNhbiBoYXBwZW4g
aXMgdGhhdCB0aGVyZSB3aWxsIGJlIHNvbWUgbm9kZXMgd2hpY2ggd2lsbCB0YWtlIHNsaWdodGx5
IGxvbmdlciB0aGFuIHVzdWFsIHRvIGJlIGRlbGV0ZWQgb3IgcmVtb3ZlZAogICAgIC8vIGZyb20g
dGhlIHJlbmRlciBncmFwaCAoaW4gd2hpY2ggY2FzZSB0aGV5J2xsIHJlbmRlciBzaWxlbmNlKS4K
LSAgICBhdXRvIGxvY2tlciA9IExvY2tlcjxSZWN1cnNpdmVMb2NrPjo6dHJ5TG9jayhncmFwaExv
Y2soKSk7Ci0gICAgaWYgKCFsb2NrZXIpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
Z3JhcGhMb2NrKCkgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIC8vIFRha2UgY2FyZSBvZiBmaW5pc2hpbmcgYW55IGRlcmVmcyB3aGVyZSB0aGUg
dHJ5TG9jaygpIGZhaWxlZCBwcmV2aW91c2x5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAKaW5kZXggNTk3MWZkMDAyMjViY2FjY2MwZTUz
NzNlNjcwMmRiNGNkMjllODUwMC4uMWJjOWYyZWNmNmU1MzFkMWMxMDQ3ZDQ1YWJkYzdjNzhkYWU3
YzFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2
ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZl
ck5vZGUuY3BwCkBAIC05Miw5ICs5Miw5IEBAIHZvaWQgQ29udm9sdmVyTm9kZTo6cHJvY2Vzcyhz
aXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgIEFTU0VSVChvdXRwdXRCdXMpOwogCiAgICAgLy8g
U3luY2hyb25pemUgd2l0aCBwb3NzaWJsZSBkeW5hbWljIGNoYW5nZXMgdG8gdGhlIGltcHVsc2Ug
cmVzcG9uc2UuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsK
LSAgICBpZiAoIWxvY2tlcikgewotICAgICAgICAvLyBUb28gYmFkIC0gdHJ5SG9sZExvY2soKSBm
YWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBzZXR0aW5nIGEgbmV3IGltcHVsc2Ug
cmVzcG9uc2UuCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNzTG9jayB9
OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgeworICAgICAgICAvLyBUb28gYmFkIC0gdHJ5
TG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIHNldHRpbmcgYSBuZXcg
aW1wdWxzZSByZXNwb25zZS4KICAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAKaW5kZXggYTFhNDZhNjdl
ZWEyM2M1NTkyMTNhNzMwODg4MmNlNTA2NzRiYjI2NC4uY2RiM2E3MzdkNWE0NmMzMmMwODBkMGYy
YTQwOGQ3NjEwMTdiYTk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcApAQCAtMTU1
LDExICsxNTUsMTEgQEAgdm9pZCBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3Mo
c2l6ZV90IG51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8g
VXNlIHRyeUhvbGRMb2NrKCkgdG8gYXZvaWQgY29udGVudGlvbiBpbiB0aGUgcmVhbC10aW1lIGF1
ZGlvIHRocmVhZC4KKyAgICAvLyBVc2UgdHJ5TG9jaygpIHRvIGF2b2lkIGNvbnRlbnRpb24gaW4g
dGhlIHJlYWwtdGltZSBhdWRpbyB0aHJlYWQuCiAgICAgLy8gSWYgd2UgZmFpbCB0byBhY3F1aXJl
IHRoZSBsb2NrIHRoZW4gdGhlIEhUTUxNZWRpYUVsZW1lbnQgbXVzdCBiZSBpbiB0aGUgbWlkZGxl
IG9mCiAgICAgLy8gcmVjb25maWd1cmluZyBpdHMgcGxheWJhY2sgZW5naW5lLCBzbyB3ZSBvdXRw
dXQgc2lsZW5jZSBpbiB0aGlzIGNhc2UuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayht
X3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgeworICAgIExvY2tlciBsb2NrZXIgeyBE
ZWZlckxvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpIHsK
ICAgICAgICAgLy8gV2UgZmFpbGVkIHRvIGFjcXVpcmUgdGhlIGxvY2suCiAgICAgICAgIG91dHB1
dEJ1cy0+emVybygpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3Bw
CmluZGV4IGM1NjYyZDYwOWFmNjBhNmFlYmE2ZGE3MjFhMzVkMWQ1ODhhZDUxNzUuLmI4NTQyZDRl
M2JmYzEyMDQzYzYyMzJkZDhlN2ZmYjM1M2FhOGMxYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5v
ZGUuY3BwCkBAIC0xMzksMTYgKzEzOSwxMSBAQCB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VO
b2RlOjpwcm9jZXNzKHNpemVfdCBudW1iZXJPZkZyYW1lcykKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIC8vIFVzZSB0cnlIb2xkTG9jaygpIHRvIGF2b2lkIGNvbnRlbnRpb24gaW4gdGhl
IHJlYWwtdGltZSBhdWRpbyB0aHJlYWQuCisgICAgLy8gVXNlIHRyeUxvY2soKSB0byBhdm9pZCBj
b250ZW50aW9uIGluIHRoZSByZWFsLXRpbWUgYXVkaW8gdGhyZWFkLgogICAgIC8vIElmIHdlIGZh
aWwgdG8gYWNxdWlyZSB0aGUgbG9jayB0aGVuIHRoZSBNZWRpYVN0cmVhbSBtdXN0IGJlIGluIHRo
ZSBtaWRkbGUgb2YKICAgICAvLyBhIGZvcm1hdCBjaGFuZ2UsIHNvIHdlIG91dHB1dCBzaWxlbmNl
IGluIHRoaXMgY2FzZS4KLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xv
Y2spOwotICAgIGlmICghbG9ja2VyKSB7Ci0gICAgICAgIC8vIFdlIGZhaWxlZCB0byBhY3F1aXJl
IHRoZSBsb2NrLgotICAgICAgICBvdXRwdXRCdXMtPnplcm8oKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLSAgICBpZiAobV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzICE9IG91dHB1dEJ1cy0+bnVt
YmVyT2ZDaGFubmVscygpKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9j
ZXNzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSB8fCBtX3NvdXJjZU51bWJlck9m
Q2hhbm5lbHMgIT0gb3V0cHV0QnVzLT5udW1iZXJPZkNoYW5uZWxzKCkpIHsKICAgICAgICAgb3V0
cHV0QnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCmluZGV4IGM2ZjY5ZDIz
MDVjMjE1OTk2NzEzOWE4NDc5ZmFlNWQzMTgyMjI1ODcuLmZmYTQ2Nzk2YjhlY2E3NTI3NzliMTZk
MWUzYzUwM2U2ODgxZjhiODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCkBAIC0zNDksMTAgKzM0OSwxMCBAQCB2b2lkIE9zY2ls
bGF0b3JOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgaWYgKGZyYW1l
c1RvUHJvY2VzcyA+IG1fcGhhc2VJbmNyZW1lbnRzLnNpemUoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdl
IHVzZSB0cnlIb2xkTG9jaygpIGluc3RlYWQuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9j
ayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgewotICAgICAgICAvLyBUb28gYmFk
IC0gdHJ5SG9sZExvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBjaGFu
Z2luZyB3YXZlLXRhYmxlcy4KKyAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9u
IHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUxvY2soKSBpbnN0ZWFkLgorICAgIExvY2tlciBsb2Nr
ZXIgeyBEZWZlckxvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2Nr
KCkpIHsKKyAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUxvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUg
aW4gdGhlIG1pZGRsZSBvZiBjaGFuZ2luZyB3YXZlLXRhYmxlcy4KICAgICAgICAgb3V0cHV0QnVz
Lnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwCmluZGV4IDdjY2YyNGQ2NzBiN2Y2ZTFlZjFhMzc3
OWY5YjcwNDg2ODJmZmNlZDcuLjk0MWNiNjYxNDVjNzg5MjVlODA0NzhkM2E5MzQ1YTMyZTk4MGY1
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9k
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNw
cApAQCAtMTI5LDEwICsxMjksMTAgQEAgdm9pZCBQYW5uZXJOb2RlOjpwcm9jZXNzKHNpemVfdCBm
cmFtZXNUb1Byb2Nlc3MpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyBUaGUgYXVkaW8gdGhy
ZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUhvbGRMb2NrKCkgaW5z
dGVhZC4KLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwotICAg
IGlmICghbG9ja2VyKSB7Ci0gICAgICAgIC8vIFRvbyBiYWQgLSB0cnlIb2xkTG9jaygpIGZhaWxl
ZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGNoYW5naW5nIHRoZSBwYW5uZXIuCisgICAg
Ly8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0
cnlMb2NrKCkgaW5zdGVhZC4KKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nl
c3NMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKSB7CisgICAgICAgIC8vIFRvbyBi
YWQgLSB0cnlMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdp
bmcgdGhlIHBhbm5lci4KICAgICAgICAgZGVzdGluYXRpb24tPnplcm8oKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
U2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCmluZGV4IDIyZTk3ZThhYTI1ZWFjMmY3MDhlMjNmNzZh
ODliMjhkOTMwMzAxMzAuLjcyYmVhZGY0ZDcwMDQyMGFhNDZjNjVmZGQyNzhiZDJkZDEwMWU2ZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vz
c29yTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQ
cm9jZXNzb3JOb2RlLmNwcApAQCAtMTU4LDggKzE1OCw4IEBAIHZvaWQgU2NyaXB0UHJvY2Vzc29y
Tm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgIHVuc2lnbmVkIGJ1ZmZl
ckluZGV4ID0gdGhpcy0+YnVmZmVySW5kZXgoKTsKICAgICBBU1NFUlQoYnVmZmVySW5kZXggPCBi
dWZmZXJDb3VudCk7CiAKLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fYnVmZmVyTG9j
a3NbYnVmZmVySW5kZXhdKTsKLSAgICBpZiAoIWxvY2tlcikgeworICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fYnVmZmVyTG9ja3NbYnVmZmVySW5kZXhdIH07CisgICAgaWYgKCFsb2Nr
ZXIudHJ5TG9jaygpKSB7CiAgICAgICAgIC8vIFdlJ3JlIGxhdGUgaW4gaGFuZGxpbmcgdGhlIHBy
ZXZpb3VzIHJlcXVlc3QuIFRoZSBtYWluIHRocmVhZCBtdXN0IGJlCiAgICAgICAgIC8vIHZlcnkg
YnVzeS4gVGhlIGJlc3Qgd2UgY2FuIGRvIGlzIGNsZWFyIG91dCB0aGUgYnVmZmVyIG91cnNlbGYg
aGVyZS4KICAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcAppbmRleCAxMjA4
ODUwODA4OTAzNjFkNGM0MGFhNmFjYWI5NTRiYTcwMGI1NzI5Li4zOGQ3N2RiNTViNjFmYjUwMDJk
Y2RmYTI5ZDFiMzJjZmIwZDU2ZDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5jcHAKQEAgLTgzLDEwICs4MywxMCBA
QCB2b2lkIFdhdmVTaGFwZXJQcm9jZXNzb3I6OnByb2Nlc3MoY29uc3QgQXVkaW9CdXMqIHNvdXJj
ZSwgQXVkaW9CdXMqIGRlc3RpbmF0aW9uLAogICAgIGlmICghY2hhbm5lbENvdW50TWF0Y2hlcykK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBv
biB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlIb2xkTG9jaygpIGluc3RlYWQuCi0gICAgYXV0byBs
b2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgewot
ICAgICAgICAvLyBUb28gYmFkIC0gdHJ5SG9sZExvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4g
dGhlIG1pZGRsZSBvZiBhIHNldEN1cnZlKCkgY2FsbC4KKyAgICAvLyBUaGUgYXVkaW8gdGhyZWFk
IGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUxvY2soKSBpbnN0ZWFkLgor
ICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKKyAgICBpZiAo
IWxvY2tlci50cnlMb2NrKCkpIHsKKyAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUxvY2soKSBmYWls
ZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBhIHNldEN1cnZlKCkgY2FsbC4KICAgICAg
ICAgZGVzdGluYXRpb24tPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAK
aW5kZXggZWIyZDNhYThkNjM3ZTRkNGJhNjNhMTM4MTgwYTA3ZGIyOWM0MDZmNS4uNzE3MWQ4Mzgw
MjU5MWRmMGQzZGEwOTA4OWFiNDVmNDNiZDA0OGZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI2MzMsNyAr
MjYzMyw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlVmVydGV4QXJyYXko
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdCogYXJyYXlPYmplCiAKICAgICBpZiAoIWFycmF5T2JqZWN0
LT5pc0RlZmF1bHRPYmplY3QoKSAmJiBhcnJheU9iamVjdCA9PSBtX2JvdW5kVmVydGV4QXJyYXlP
YmplY3QpIHsKICAgICAgICAgLy8gYmluZFZlcnRleEFycmF5IGdyYWJzIHRoZSBsb2NrIGludGVy
bmFsbHkuCi0gICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBsb2NrZXIudW5s
b2NrKCk7CiAgICAgICAgIGJpbmRWZXJ0ZXhBcnJheShudWxscHRyKTsgLy8gVGhlIGRlZmF1bHQg
VkFPIHdhcyByZW1vdmVkIGluIE9wZW5HTCAzLjMgYnV0IG5vdCBmcm9tIFdlYkdMIDI7IGJpbmQg
dGhlIGRlZmF1bHQgZm9yIFdlYkdMIHRvIHVzZS4KICAgICAgICAgbG9ja2VyID0gTG9ja2VyIHsg
b2JqZWN0R3JhcGhMb2NrKCkgfTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKaW5kZXggZWI1NGYwZDUxZDc4NjBiOWY2MDQwZDg5
MzU4ODQ0ODgyYTY1YmI2Mi4uZmY0NTYxN2JmMzhkMmYzYTJkNjZkNGRjYTdiM2Q2MDRjMzQyNjY3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5h
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRp
b24uaApAQCAtOTYsMTQgKzk2LDEzIEBAIGlubGluZSB2b2lkIEF1ZGlvRGVzdGluYXRpb246OmNs
ZWFyQ2FsbGJhY2soKQogCiBpbmxpbmUgdm9pZCBBdWRpb0Rlc3RpbmF0aW9uOjpjYWxsUmVuZGVy
Q2FsbGJhY2soQXVkaW9CdXMqIHNvdXJjZUJ1cywgQXVkaW9CdXMqIGRlc3RpbmF0aW9uQnVzLCBz
aXplX3QgZnJhbWVzVG9Qcm9jZXNzLCBjb25zdCBBdWRpb0lPUG9zaXRpb24mIG91dHB1dFBvc2l0
aW9uKQogewotICAgIGlmIChtX2NhbGxiYWNrTG9jay50cnlMb2NrKCkpIHsKLSAgICAgICAgTG9j
a2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fY2FsbGJhY2tMb2NrIH07Ci0gICAgICAg
IGlmIChtX2NhbGxiYWNrKSB7Ci0gICAgICAgICAgICBtX2NhbGxiYWNrLT5yZW5kZXIoc291cmNl
QnVzLCBkZXN0aW5hdGlvbkJ1cywgZnJhbWVzVG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlvbik7Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJM
b2NrLCBtX2NhbGxiYWNrTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgeworICAg
ICAgICBkZXN0aW5hdGlvbkJ1cy0+emVybygpOworICAgICAgICByZXR1cm47CiAgICAgfQotICAg
IGRlc3RpbmF0aW9uQnVzLT56ZXJvKCk7CisgICAgaWYgKG1fY2FsbGJhY2spCisgICAgICAgIG1f
Y2FsbGJhY2stPnJlbmRlcihzb3VyY2VCdXMsIGRlc3RpbmF0aW9uQnVzLCBmcmFtZXNUb1Byb2Nl
c3MsIG91dHB1dFBvc2l0aW9uKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKaW5kZXgg
MjdiMjk4MmRjM2ZkOTE2ODVkMzE3YTdlZDFhOWMxZTZlZTQ3YjI2Zi4uZmQ4ODU2ZmI2Mjc5ZDA0
YjM3NjYwM2ExMmRjZTE1NDdhYzRjNDJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCkBAIC0yMDIsOCArMjAyLDggQEAgdm9pZCBS
ZXZlcmJDb252b2x2ZXI6OnByb2Nlc3MoY29uc3QgQXVkaW9DaGFubmVsKiBzb3VyY2VDaGFubmVs
LCBBdWRpb0NoYW5uZWwqIGQKICAgICAvLyBzaWduYWwgZnJvbSB0aW1lIHRvIHRpbWUsIHNpbmNl
IHdlJ2xsIGdldCB0byBpdCB0aGUgbmV4dCB0aW1lIHdlJ3JlIGNhbGxlZC4gIFdlJ3JlIGNhbGxl
ZCByZXBlYXRlZGx5CiAgICAgLy8gYW5kIGZyZXF1ZW50bHkgKGFyb3VuZCBldmVyeSAzbXMpLiAg
VGhlIGJhY2tncm91bmQgdGhyZWFkIGlzIHByb2Nlc3Npbmcgd2VsbCBpbnRvIHRoZSBmdXR1cmUg
YW5kIGhhcyBhIGNvbnNpZGVyYWJsZSBhbW91bnQgb2YgCiAgICAgLy8gbGVld2F5IGhlcmUuLi4K
LSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fYmFja2dyb3VuZFRocmVhZExvY2spOwot
ICAgIGlmICghbG9ja2VyKQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fYmFja2dy
b3VuZFRocmVhZExvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIG1fbW9yZUlucHV0QnVmZmVyZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25D
b2NvYS5jcHAKaW5kZXggMzkyYzM2MTQwNGZjMmM5NTBlYmI5Mzg4OWE2MjljYjVhMzcxZTQyYS4u
NTU3NjdjMTk3MzY1ZDI5YTcxNjc2MGI0ZTcxOTQ2MWEyNWVjNzA3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0
aW9uQ29jb2EuY3BwCkBAIC0yMTksMTAgKzIxOSwxMCBAQCBPU1N0YXR1cyBBdWRpb0Rlc3RpbmF0
aW9uQ29jb2E6OnJlbmRlcihkb3VibGUgc2FtcGxlVGltZSwgdWludDY0X3QgaG9zdFRpbWUsIFVJ
bgogICAgIH0KIAogICAgIC8vIFdoZW4gdGhlcmUgaXMgYSBBdWRpb1dvcmtsZXQsIHdlIGRvIHJl
bmRlcmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhyZWFkLgotICAgIGlmICghbV9kaXNwYXRjaFRv
UmVuZGVyVGhyZWFkTG9jay50cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9j
aywgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxv
Y2soKSkKICAgICAgICAgcmV0dXJuIC0xOwogCi0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9j
a1RhZyB7IH0sIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2sgfTsKICAgICBpZiAoIW1fZGlz
cGF0Y2hUb1JlbmRlclRocmVhZCkKICAgICAgICAgcmVuZGVyT25SZW5kZXJpbmdUaGVhZElmUGxh
eWluZyhmcmFtZXNUb1JlbmRlcik7CiAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3Vy
Y2VQcm92aWRlckdTdHJlYW1lci5jcHAKaW5kZXggZjc3NWEzMmZkNDc4MDJlZTUzODg1NzE2M2Vk
Nzc5YTEyMTM4Y2Q0Ny4uM2MxMGQ4M2I0OGNkYjFhMmMxMDRkNDM3NjUyZDNlYWIwZjNiYTQzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlv
U291cmNlUHJvdmlkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNwcApAQCAtMTU5
LDEwICsxNTksMTAgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyOjpjb25maWd1
cmVBdWRpb0JpbihHc3RFbGVtZW50KiBhdWRpb0JpbiwgR3N0RWwKIHZvaWQgQXVkaW9Tb3VyY2VQ
cm92aWRlckdTdHJlYW1lcjo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFt
ZXNUb1Byb2Nlc3MpCiB7CiAgICAgR1NUX1RSQUNFKCJGZXRjaGluZyBidWZmZXJzIGZyb20gYWRh
cHRlcnMiKTsKLSAgICBpZiAoIW1fYWRhcHRlckxvY2sudHJ5TG9jaygpKQorICAgIExvY2tlciBs
b2NrZXIgeyBEZWZlckxvY2ssIG1fYWRhcHRlckxvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlM
b2NrKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tU
YWcgeyB9LCBtX2FkYXB0ZXJMb2NrIH07CiAgICAgZm9yIChhdXRvJiBpdCA6IG1fYWRhcHRlcnMp
CiAgICAgICAgIGNvcHlHU3RyZWFtZXJCdWZmZXJzVG9BdWRpb0NoYW5uZWwoaXQudmFsdWUuZ2V0
KCksIGJ1cywgaXQua2V5IC0gMSwgZnJhbWVzVG9Qcm9jZXNzKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJj
ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIv
V2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDZlZjgzNTI4M2ZmMzUzYThm
ZTEyMjdiMDcwYTFkZGQ1NmQ0YTNmOGYuLmM3ZTc2ODYxOWI0N2UzMDkxM2E4Y2Q2ODk0ZDQ4Njkz
NjM3ZTI5ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJl
YW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVy
LmNwcApAQCAtNDA4LDExICs0MDgsMTAgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNS
ZW5kZXJJdGVyYXRpb24oV2ViS2l0V2ViQXVkaW9TcmMqIHNyYykKICAgICAgICAgcHJpdi0+ZGlz
cGF0Y2hEb25lID0gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKCFwcml2LT5kaXNwYXRjaFRvUmVu
ZGVyVGhyZWFkTG9jay50cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
cHJpdi0+ZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlM
b2NrKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tU
YWcgeyB9LCBwcml2LT5kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jayB9OwotCiAgICAgaWYgKCFw
cml2LT5kaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24pCiAgICAgICAgIHdlYktpdFdlYkF1
ZGlvU3JjUmVuZGVyQW5kUHVzaEZyYW1lcyhHUmVmUHRyPEdzdEVsZW1lbnQ+KEdTVF9FTEVNRU5U
X0NBU1Qoc3JjKSksIFdURk1vdmUoKmNoYW5uZWxCdWZmZXJMaXN0KSk7CiAgICAgZWxzZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCmluZGV4
IGMwNjRjY2U0Y2E4NjJiZDQ2ODkyODQxZmZhNWJjMTlmYjdmMjEzZGEuLjI4NDhiYWIxMDg5ZGJl
ZTExNDFmZDFlNjk1NDAxZmVlYTQyN2E4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCkBAIC0xMzUsNyArMTM1LDggQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHB1cmdlVGltZXJGaXJlZCgpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwotICAgICAgICBpZiAoYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhsb2NrKCkp
KQorICAgICAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBsb2NrKCkgfTsKKyAgICAgICAg
aWYgKGxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgICAgICBjbGVhclNjcmF0Y2hCdWZmZXIoKTsK
ICAgICB9CiAKQEAgLTY5NCw4ICs2OTUsOCBAQCB2b2lkIFNoYWRvd0JsdXI6OmRyYXdSZWN0U2hh
ZG93V2l0aFRpbGluZyhjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29ucwogewog
ICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gbGF5ZXJJbWFnZUJ1ZmZlcjsKICNpZiBVU0UoQ0cpCi0g
ICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhTY3JhdGNoQnVmZmVyOjpsb2NrKCkpOwotICAg
IGlmIChsb2NrZXIpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBTY3JhdGNoQnVm
ZmVyOjpsb2NrKCkgfTsKKyAgICBpZiAobG9ja2VyLnRyeUxvY2soKSkgewogICAgICAgICBsYXll
ckltYWdlQnVmZmVyID0gU2NyYXRjaEJ1ZmZlcjo6c2luZ2xldG9uKCkuZ2V0U2NyYXRjaEJ1ZmZl
cih0ZW1wbGF0ZVNpemUpOwogICAgICAgICBpZiAoIWxheWVySW1hZ2VCdWZmZXIpCiAgICAgICAg
ICAgICByZXR1cm47CkBAIC03NTQsOCArNzU1LDggQEAgdm9pZCBTaGFkb3dCbHVyOjpkcmF3SW5z
ZXRTaGFkb3dXaXRoVGlsaW5nKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb24K
IHsKICAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+IGxheWVySW1hZ2VCdWZmZXI7CiAjaWYgVVNFKENH
KQotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2soU2NyYXRjaEJ1ZmZlcjo6bG9jaygpKTsK
LSAgICBpZiAobG9ja2VyKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgU2NyYXRj
aEJ1ZmZlcjo6bG9jaygpIH07CisgICAgaWYgKGxvY2tlci50cnlMb2NrKCkpIHsKICAgICAgICAg
bGF5ZXJJbWFnZUJ1ZmZlciA9IFNjcmF0Y2hCdWZmZXI6OnNpbmdsZXRvbigpLmdldFNjcmF0Y2hC
dWZmZXIodGVtcGxhdGVTaXplKTsKICAgICAgICAgaWYgKCFsYXllckltYWdlQnVmZmVyKQogICAg
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDLm1tCmluZGV4IDQ3OTc2ODNiODBiYjQ5MDVhN2E4MTY4ODdhNDM1NGQxMjk4ZWNk
NDEuLjRiY2YzYTEwYzNiMmRlZGM3MjkyMTgxMjk1MGQ4OGYwMjkyYjgwNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTk0LDcgKzk0
LDcgQEAgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6On5BdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQygpCiAKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dChB
dWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewotICAgIC8vIFByb3RlY3Qg
YWNjZXNzIHRvIG1fcmluZ0J1ZmZlciBieSB1c2luZyB0cnlIb2xkTG9jaygpLiBJZiB3ZSBmYWls
ZWQKKyAgICAvLyBQcm90ZWN0IGFjY2VzcyB0byBtX3JpbmdCdWZmZXIgYnkgdXNpbmcgdHJ5TG9j
aygpLiBJZiB3ZSBmYWlsZWQKICAgICAvLyB0byBhcXVpcmUsIGEgcmUtY29uZmlndXJlIGlzIHVu
ZGVyd2F5LCBhbmQgbV9yaW5nQnVmZmVyIGlzIHVuc2FmZSB0byBhY2Nlc3MuCiAgICAgLy8gRW1p
dCBzaWxlbmNlLgogICAgIGlmICghbV90YXBTdG9yYWdlKSB7CkBAIC0xMDIsOCArMTAyLDggQEAg
dm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBi
dXMsIHNpemVfdCBmcmFtZXNUb1Byb2MKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1
dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV90YXBTdG9yYWdlLT5sb2NrKTsKLSAgICBpZiAoIWxv
Y2tlciB8fCAhbV9yaW5nQnVmZmVyKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
bV90YXBTdG9yYWdlLT5sb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpIHx8ICFtX3Jp
bmdCdWZmZXIpIHsKICAgICAgICAgYnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggODEzOTk2Yzc2YzY0MWI3Y2FlMDQ2ZjU5
NzFlYzc0N2NmOTFjZTlkNy4uODFlNzU3M2VkNDIxNWRjZDdlNDQwYTFhYzhmMzViZTVjMTJhNWIx
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMjU0LDggKzI1NCw4IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnF1ZXVlVmlkZW9TYW1wbGUo
TWVkaWFTYW1wbGUmIHNhbXBsCiAgICAgaWYgKCFtX3Zpc2libGUpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2Nr
LCBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckxvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlM
b2NrKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghbV9jYW5FbnF1ZXVlRGlzcGxheUxh
eWVyIHx8ICFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciB8fCBtX3NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci0+ZGlkRmFpbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAppbmRl
eCAxMWJlYTEyYjY2ZGM1NDYyNWE4MjlmOTA3NGE5MmMwMzc0Y2UyODk1Li4xNWI1NzI4ZjdmZGJh
ODExNzFmMjdjYzg5NjI4OTFlMTg3N2JiNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVh
bWVyLmNwcApAQCAtOTksNyArOTksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAgICAgYXV0byBzYW1wbGUgPSBXVEZNb3ZlKG1fc2FtcGxlKTsKLSAgICAgICAg
bG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tlci51bmxvY2soKTsKICAgICAgICAg
aWYgKExJS0VMWShHU1RfSVNfU0FNUExFKHNhbXBsZS5nZXQoKSkpKQogICAgICAgICAgICAgd2Vi
a2l0VmlkZW9TaW5rUmVwYWludFJlcXVlc3RlZChzaW5rLCBzYW1wbGUuZ2V0KCkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dl
YktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9u
RGVjcnlwdG9yR1N0cmVhbWVyLmNwcAppbmRleCAzMjAxNzRkNWJmZTg3NmRiOGMxNDIzNTlhOGUx
YTAxYWE4NmMwZmRiLi5lOGU3MjlmODMwMWE4NzY2ZTY0YmY2MzUyZjAyMDZhN2E2M2VmMGE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1l
L1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5j
cnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKQEAgLTM5Nyw3ICszOTcsNyBAQCBzdGF0aWMg
Z2Jvb2xlYW4gc2lua0V2ZW50SGFuZGxlcihHc3RCYXNlVHJhbnNmb3JtKiB0cmFucywgR3N0RXZl
bnQqIGV2ZW50KQogICAgICAgICAgICAgYm9vbCBpc0NkbVByb3h5QXR0YWNoZWQgPSBwcml2LT5j
ZG1Qcm94eTsKICAgICAgICAgICAgIHByaXYtPmlzRmx1c2hpbmcgPSB0cnVlOwogICAgICAgICAg
ICAgaWYgKGlzQ2RtUHJveHlBdHRhY2hlZCkgewotICAgICAgICAgICAgICAgIGxvY2tlci51bmxv
Y2tFYXJseSgpOworICAgICAgICAgICAgICAgIGxvY2tlci51bmxvY2soKTsKICAgICAgICAgICAg
ICAgICBwcml2LT5jZG1Qcm94eS0+YWJvcnRXYWl0aW5nRm9yS2V5KCk7CiAgICAgICAgICAgICB9
IGVsc2UKICAgICAgICAgICAgICAgICBwcml2LT5jb25kaXRpb24ubm90aWZ5T25lKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dl
YktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4
IDZkMDNkZjk2YWQ0Mzc5MGQ1YWYzZDJiNzJkNzcwMGQxNmZmMmE0ZmEuLmQ0ZGUxZDllMWRiZDI5
MmE2NDliMWE5OWUzNDRkOTI2ODJmODQyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
V2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC01MDksNyArNTA5LDcgQEAgc3RhdGlj
IHZvaWQgd2ViS2l0TWVkaWFTcmNMb29wKHZvaWQqIHVzZXJEYXRhKQogICAgICAgICB9CiAKICAg
ICAgICAgLy8gUHVzaCB0aGUgYnVmZmVyIHdpdGhvdXQgdGhlIHN0cmVhbWluZ01lbWJlcnMgbG9j
ayBzbyB0aGF0IGZsdXNoZXMgY2FuIGhhcHBlbiB3aGlsZSBpdCB0cmF2ZWxzIGRvd25zdHJlYW0u
Ci0gICAgICAgIHN0cmVhbWluZ01lbWJlcnMubG9ja0hvbGRlcigpLnVubG9ja0Vhcmx5KCk7Cisg
ICAgICAgIHN0cmVhbWluZ01lbWJlcnMubG9ja0hvbGRlcigpLnVubG9jaygpOwogCiAgICAgICAg
IEFTU0VSVChHU1RfQlVGRkVSX1BUU19JU19WQUxJRChidWZmZXIuZ2V0KCkpKTsKICAgICAgICAg
R1NUX1RSQUNFX09CSkVDVChwYWQsICJQdXNoaW5nIGJ1ZmZlciBkb3duc3RyZWFtOiAlIiBHU1Rf
UFRSX0ZPUk1BVCwgYnVmZmVyLmdldCgpKTsKQEAgLTUyNSw3ICs1MjUsNyBAQCBzdGF0aWMgdm9p
ZCB3ZWJLaXRNZWRpYVNyY0xvb3Aodm9pZCogdXNlckRhdGEpCiAgICAgICAgIC8vIEVPUyBldmVu
dHMgYW5kIG90aGVyIGVucXVldWVkIGV2ZW50cyBhcmUgYWxzbyBzZW50IHVubG9ja2VkIHNvIHRo
ZXkgY2FuIHJlYWN0IHRvIGZsdXNoZXMgaWYgbmVjZXNzYXJ5LgogICAgICAgICBHUmVmUHRyPEdz
dEV2ZW50PiBldmVudCA9IEdSZWZQdHI8R3N0RXZlbnQ+KEdTVF9FVkVOVChvYmplY3QubGVha1Jl
ZigpKSk7CiAKLSAgICAgICAgc3RyZWFtaW5nTWVtYmVycy5sb2NrSG9sZGVyKCkudW5sb2NrRWFy
bHkoKTsKKyAgICAgICAgc3RyZWFtaW5nTWVtYmVycy5sb2NrSG9sZGVyKCkudW5sb2NrKCk7CiAg
ICAgICAgIEdTVF9ERUJVR19PQkpFQ1QocGFkLCAiUHVzaGluZyBldmVudCBkb3duc3RyZWFtOiAl
IiBHU1RfUFRSX0ZPUk1BVCwgZXZlbnQuZ2V0KCkpOwogICAgICAgICBib29sIGV2ZW50SGFuZGxl
ZCA9IGdzdF9wYWRfcHVzaF9ldmVudChwYWQsIEdSZWZQdHI8R3N0RXZlbnQ+KGV2ZW50KS5sZWFr
UmVmKCkpOwogICAgICAgICBpZiAoIWV2ZW50SGFuZGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyVW5pdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2Nv
YS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCmluZGV4IDVkY2VhMWE0MDg2
ZTIwZTE1N2ViYmNkNzE5YmMzNjYwODkwNGI2MGMuLmU2ZjJlNmUyZGY5NGY4NGYxZGMxMDQ4ZDNk
NTliZTQ2ZmEyN2QyOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJVbml0LmNwcApAQCAtMTQxLDEwICsxNDEsMTAgQEAgdm9pZCBBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnJldHJpZXZlRm9ybWF0RGVzY3JpcHRpb24oQ29t
cGxldGlvbkhhbmQKIAogdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnVw
ZGF0ZVJlbmRlclNvdXJjZXNJZk5lY2Vzc2FyeSgpCiB7Ci0gICAgaWYgKCFtX3BlbmRpbmdSZW5k
ZXJTb3VyY2VzTG9jay50cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
bV9wZW5kaW5nUmVuZGVyU291cmNlc0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9
LCBtX3BlbmRpbmdSZW5kZXJTb3VyY2VzTG9jayB9OwogICAgIGlmICghbV9oYXNQZW5kaW5nUmVu
ZGVyU291cmNlcykKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNl
UHJvdmlkZXJDb2NvYS5tbQppbmRleCA1NzZmNDRlOTJjNThiOTNjMGI0MGQ2NjQ5OTgwYmM3ZTkw
YTVlYWZiLi4zNDYxNDFiMDFjM2QxZDc4Y2E5ZmY1NGNhYjY3Mjk5N2ZhOTEyNTNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0KQEAgLTY1LDggKzY1LDggQEAg
dm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnNldENsaWVudChBdWRpb1NvdXJjZVBy
b3ZpZGVyQ2xpZW50KiBjbGllbnQpCiAKIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29h
Ojpwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsK
LSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fbG9jayk7Ci0gICAgaWYgKCFsb2NrZXIg
fHwgIW1fZGF0YVNvdXJjZSB8fCAhbV9hdWRpb0J1ZmZlckxpc3QpIHsKKyAgICBMb2NrZXIgbG9j
a2VyIHsgRGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkgfHwg
IW1fZGF0YVNvdXJjZSB8fCAhbV9hdWRpb0J1ZmZlckxpc3QpIHsKICAgICAgICAgYnVzLT56ZXJv
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck9yV29ya2xldFRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlck9yV29ya2xldFRocmVhZC5jcHAKaW5kZXggNDc3ZDk2NzJjNzEyYjQ2ZmM0ZWJkN2Ey
ODk3ZTc3ZWIxNTgwODQ4NC4uY2Y3NDA2Nzk0ODQ5NWZhMDhkYmQ3MDQyNWY4NzU4MDMxYjUwNGYw
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJl
YWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0VGhyZWFk
LmNwcApAQCAtMjA3LDggKzIwNyw4IEBAIHZvaWQgV29ya2VyT3JXb3JrbGV0VGhyZWFkOjpzdG9w
KEZ1bmN0aW9uPHZvaWQoKT4mJiBzdG9wcGVkQ2FsbGJhY2spCiAgICAgLy8gTXV0ZXggcHJvdGVj
dGlvbiBpcyBuZWNlc3NhcnkgdG8gZW5zdXJlIHRoYXQgbV93b3JrZXJHbG9iYWxTY29wZSBpc24n
dCBjaGFuZ2VkIGJ5CiAgICAgLy8gV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWQoKSB3aGlsZSB3
ZSdyZSBhY2Nlc3NpbmcgaXQuIE5vdGUgYWxzbyB0aGF0IHN0b3AoKSBjYW4KICAgICAvLyBiZSBj
YWxsZWQgYmVmb3JlIG1fd29ya2VyR2xvYmFsU2NvcGUgaXMgZnVsbHkgY3JlYXRlZC4KLSAgICBh
dXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fdGhyZWFkQ3JlYXRpb25BbmRHbG9iYWxTY29wZUxv
Y2spOwotICAgIGlmICghbG9ja2VyKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
bV90aHJlYWRDcmVhdGlvbkFuZEdsb2JhbFNjb3BlTG9jayB9OworICAgIGlmICghbG9ja2VyLnRy
eUxvY2soKSkgewogICAgICAgICAvLyBUaGUgdGhyZWFkIGlzIHN0aWxsIHN0YXJ0aW5nLCBzcGlu
IHRoZSBydW5sb29wIGFuZCB0cnkgYWdhaW4gdG8gYXZvaWQgZGVhZGxvY2tzIGlmIHRoZSB3b3Jr
ZXIgdGhyZWFkCiAgICAgICAgIC8vIG5lZWRzIHRvIGludGVyYWN0IHdpdGggdGhlIG1haW4gdGhy
ZWFkIGR1cmluZyBzdGFydHVwLgogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBzdG9w
cGVkQ2FsbGJhY2sgPSBXVEZNb3ZlKHN0b3BwZWRDYWxsYmFjayldKCkgbXV0YWJsZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcAppbmRl
eCBkNzRhNDczZTIwYzkwMThmZTM2ZDVhYjZkZmQ4YWE1MmI1YTY5YTUxLi45ODM4YzBjMTFjYjZh
NTRlMTkzNWY0MGQxMGJkYjc4MjcxMTBjZDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFzZS5jcHAKQEAgLTU3Miw3ICs1NzIsNyBAQCB2b2lk
IEljb25EYXRhYmFzZTo6bG9hZEljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCwg
QWxsb3dEYXRhYmFzZVdyaXRlCiAgICAgICAgICAgICAgICAgYXV0byBpY29uID0gaXQtPnZhbHVl
LmZpcnN0OwogICAgICAgICAgICAgICAgIGl0LT52YWx1ZS5zZWNvbmQgPSBNb25vdG9uaWNUaW1l
Ojpub3coKTsKICAgICAgICAgICAgICAgICBzdGFydENsZWFyTG9hZGVkSWNvbnNUaW1lcigpOwot
ICAgICAgICAgICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICAgICAgICAgIGxv
Y2tlci51bmxvY2soKTsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3Zl
KGljb24pKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CkBAIC01OTYs
NyArNTk2LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OmxvYWRJY29uRm9yUGFnZVVSTChjb25zdCBT
dHJpbmcmIHBhZ2VVUkwsIEFsbG93RGF0YWJhc2VXcml0ZQogCiAgICAgICAgICAgICBhdXRvIGlj
b24gPSBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmZpcnN0OwogICAgICAgICAgICAgc3RhcnRD
bGVhckxvYWRlZEljb25zVGltZXIoKTsKLSAgICAgICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgp
OworICAgICAgICAgICAgbG9ja2VyLnVubG9jaygpOwogICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoV1RGTW92ZShpY29uKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAK
aW5kZXggZjQ0YzQxODkyYjM4ZjViYWQzMTk2ZDY5YTFjMTMyNGNlOTNiNWVjMy4uNDhhMzY2MTY5
YjNmZWE2M2RhNDI4NzEzNjAxZTZiZGYzNmZkNWQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0zMjQs
MTEgKzMyNCwxMCBAQCB2b2lkIExpYldlYlJUQ0NvZGVjczo6Y29tcGxldGVkRGVjb2RpbmcoUlRD
RGVjb2RlcklkZW50aWZpZXIgZGVjb2RlcklkZW50aWZpZXIsCiAgICAgaWYgKCFkZWNvZGVyKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZWRJbWFnZUNhbGxiYWNr
TG9jay50cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgZGVjb2Rlci0+
ZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwg
ZGVjb2Rlci0+ZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrIH07Ci0KICAgICBpZiAoIWRlY29kZXIt
PmRlY29kZWRJbWFnZUNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAKQEAgLTQ5MiwxMSArNDkx
LDEwIEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWRFbmNvZGluZyhSVENFbmNvZGVy
SWRlbnRpZmllciBpZGVudGlmaWVyLCBJUEM6OkRhCiAgICAgaWYgKCFlbmNvZGVyKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAoIWVuY29kZXItPmVuY29kZWRJbWFnZUNhbGxiYWNrTG9jay50
cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgZW5jb2Rlci0+ZW5jb2Rl
ZEltYWdlQ2FsbGJhY2tMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgZW5jb2Rl
ci0+ZW5jb2RlZEltYWdlQ2FsbGJhY2tMb2NrIH07Ci0KICAgICBpZiAoIWVuY29kZXItPmVuY29k
ZWRJbWFnZUNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlYWIwODNmMWUwN2Q0NWU4OGFkYjE0MDFk
YmI0YzIxNWI1Mzc4NTRhLi4yMzUzNTc5N2RmNTdkM2FhMTM5MTc3MGVkYmMyZmQxNjg2MzIwOWFh
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUg
d2l0aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNDUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBp
cyBpbmNvbXBhdGlibGUgd2l0aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBJbnN0ZWFk
LCB1c2UgdGhlIGZvbGxvd2luZyBwYXR0ZXJuOgorICAgICAgICBgYGAKKyAgICAgICAgTG9ja2Vy
IGxvY2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisgICAgICAgIGlmIChsb2NrZXIudHJ5TG9j
aygpKQorICAgICAgICBgYGAKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0No
ZWNrZWRMb2NrVGVzdC5jcHA6CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNlIExvY2tIb2xkZXIgd2l0aCBMb2NrZXIgaW4gbG9j
YWwgdmFyaWFibGVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9D
aGVja2VkTG9ja1Rlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tl
ZExvY2tUZXN0LmNwcAppbmRleCBkODJlZTFhMmU1YmRlMGRjYWJmMzVjZTlkYzczMTEyMTEwMjI2
MjRhLi5mYmQwMmIzYzM0YjA0YzU2Y2FlZmMzNGU0OGE5Nzc1NmZiY2E5NjE2IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkTG9ja1Rlc3QuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRMb2NrVGVzdC5jcHAKQEAgLTM4
LDkgKzM4LDkgQEAgcHVibGljOgogICAgIH0KICAgICB2b2lkIG1heWJlU2V0T3RoZXJWYWx1ZShp
bnQgdmFsdWUpCiAgICAgewotICAgICAgICBpZiAoIW1fb3RoZXJMb2NrLnRyeUxvY2soKSkKKyAg
ICAgICAgTG9ja2VyIGhvbGRMb2NrIHsgRGVmZXJMb2NrLCBtX290aGVyTG9jayB9OworICAgICAg
ICBpZiAoIWhvbGRMb2NrLnRyeUxvY2soKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
TG9ja2VyIGhvbGRMb2NrIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9vdGhlckxvY2sgfTsKICAgICAg
ICAgbV9vdGhlclZhbHVlID0gdmFsdWU7CiAgICAgfQogICAgIC8vIFRoaXMgZnVuY3Rpb24gY2Fu
IGJlIHVzZWQgdG8gbWFudWFsbHkgY2hlY2sgdGhhdCBjb21waWxlIGZhaWxzLgo=
</data>
<flag name="commit-queue"
          id="450620"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429430</attachid>
            <date>2021-05-22 15:49:43 -0700</date>
            <delta_ts>2021-05-22 16:08:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226145-20210522154942.patch</filename>
            <type>text/plain</type>
            <size>58343</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZjY3MTE3MDhhODUyMGY5MDcyMjIzNDExNThhODk2NDgzZjU5NmE2Li4yYzM5YzIxZDAzMWNkMWVi
ZGJkMDk5YThhNWIwZmFhMTUwOGI2Nzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3
aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlz
IGluY29tcGF0aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuIEluc3RlYWQs
IHVzZSB0aGUgZm9sbG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgRGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlMb2Nr
KCkpCisgICAgICAgIGBgYAorCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpT
Qzo6SGVhcDo6cmVzdW1lVGhlUGVyaXBoZXJ5KToKKyAgICAgICAgKiBydW50aW1lL1ZNVHJhcHMu
Y3BwOgorICAgICAgICAoSlNDOjpWTVRyYXBzOjp0cnlJbnN0YWxsVHJhcEJyZWFrcG9pbnRzKToK
KyAgICAgICAgKiB0b29scy9WTUluc3BlY3Rvci5jcHA6CisgICAgICAgIChKU0M6OlZNSW5zcGVj
dG9yOjpsb2NrKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlcGxhY2UgTG9ja0hvbGRlciB3aXRoIExvY2tlciBpbiBsb2NhbCB2YXJp
YWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKaW5kZXggYjcwYTNmM2U4MTM3MjcyNzA1YTA0YmVkMjM5NmNlMGZjOWViZjc0Yi4uYjdm
ZjcyZTA4OTA3MjYyNDc4MzA2ODVkYzFhZTkyNTk4NzZiMjczNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBA
QAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3aXRoIENsYW5n
IFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0
aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuIEluc3RlYWQsIHVzZSB0aGUg
Zm9sbG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
RGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlMb2NrKCkpCisgICAg
ICAgIGBgYAorCisgICAgICAgICogd3RmL0NoZWNrZWRMb2NrLmg6CisgICAgICAgICogd3RmL0xv
Y2tlci5oOgorICAgICAgICAoV1RGOjpMb2NrZXI6OkxvY2tlcik6CisgICAgICAgIChXVEY6Okxv
Y2tlcjo6fkxvY2tlcik6CisgICAgICAgIChXVEY6OkxvY2tlcjo6dHJ5TG9jayk6CisgICAgICAg
IChXVEY6OkxvY2tlcjo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgIChXVEY6OkxvY2tl
cjo6dW5sb2NrRWFybHkpOgorICAgICAgICAoV1RGOjpMb2NrZXI6Om9wZXJhdG9yPSk6CisgICAg
ICAgIChXVEY6OkxvY2tlcjo6dW5sb2NrKToKKyAgICAgICAgKFdURjo6TG9ja2VyOjpsb2NrKToK
KyAgICAgICAgKiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6bG9nKToKKyAg
ICAgICAgKFdURjo6TG9nZ2VyOjpsb2dWZXJib3NlKToKKyAgICAgICAgKiB3dGYvVGhyZWFkU2Fm
ZXR5QW5hbHlzaXMuaDoKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkb3B0IENoZWNrZWRMb2NrIGluIG1vcmUgcGxhY2VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZDA1N2QyNzEyNzA0YzgxOTBkYTQ0NDIyMDEzOTEyNmU1ZTIxZWE5Yy4uNzNkZmU2MTU5
ZTAwYmMzNTM2YWU2ZWYwN2EyMTE4MDE4YzFlMDdiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1
IEBACisyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRpYmxlIHdpdGggQ2xh
bmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21w
YXRpYmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcy4gSW5zdGVhZCwgdXNlIHRo
ZSBmb2xsb3dpbmcgcGF0dGVybjoKKyAgICAgICAgYGBgCisgICAgICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fbG9jayB9OworICAgICAgICBpZiAobG9ja2VyLnRyeUxvY2soKSkKKyAg
ICAgICAgYGBgCisKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQnVmZmVyU291cmNlTm9kZTo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1BhcmFtVGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRp
bWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFy
YW1UaW1lbGluZTo6dmFsdWVzRm9yRnJhbWVSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1BhcmFtVGltZWxpbmU6Omhhc1ZhbHVlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xl
dE5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb252b2x2ZXJOb2RlOjpwcm9jZXNzKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3MpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3Mp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6T3NjaWxsYXRvck5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vUGFubmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpw
cm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJvY2Vzcyk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldhdmVTaGFwZXJQcm9jZXNzb3I6OnByb2Nlc3MpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
RGVzdGluYXRpb246OmNhbGxSZW5kZXJDYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vUmV2ZXJiQ29udm9sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJldmVyYkNvbnZvbHZl
cjo6cHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5h
dGlvbkNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
cmVuZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQ
cm92aWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3Zp
ZGVyR1N0cmVhbWVyOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJL
aXRXZWJBdWRpb1NyY1JlbmRlckl0ZXJhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JhdGNoQnVmZmVyOjpwdXJn
ZVRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1cjo6ZHJhd1JlY3RTaGFk
b3dXaXRoVGlsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0JsdXI6OmRyYXdJbnNldFNo
YWRvd1dpdGhUaWxpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6ZW5xdWV1ZVZpZGVvU2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Ojp1cGRhdGVS
ZW5kZXJTb3VyY2VzSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpX
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
T3JXb3JrbGV0VGhyZWFkOjpzdG9wKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0IENoZWNrZWRMb2NrIGluIG1vcmUgcGxhY2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGZjYWM4NDUxYzhhOTM0NTIwOGFiNzFhOTM3OGE4MTc3ZTgxNjg4ODguLjJm
ZmE2N2Y3MzI5ZjhjOTU5NzlkYjFjOTk1ZmViNzVkNTQ5YzcwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUgd2l0
aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBp
bmNvbXBhdGlibGUgd2l0aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBJbnN0ZWFkLCB1
c2UgdGhlIGZvbGxvd2luZyBwYXR0ZXJuOgorICAgICAgICBgYGAKKyAgICAgICAgTG9ja2VyIGxv
Y2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisgICAgICAgIGlmIChsb2NrZXIudHJ5TG9jaygp
KQorICAgICAgICBgYGAKKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRl
ZERlY29kaW5nKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWRF
bmNvZGluZyk6CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBBZG9wdCBDaGVja2VkTG9jayBpbiBtb3JlIHBsYWNlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmNwcAppbmRleCBjMWNmODY0Mjc3MDUxYmEwMjEwNThjZjUxNGFkMzcyZmJh
NzQ4MjdiLi42OWJmMzI1NjZjZGYwODcwMzU4MTM1OWRlZGFhZGUzZTAyOTA3MGMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMTcwNyw3ICsxNzA3LDcgQEAgTkVWRVJfSU5M
SU5FIHZvaWQgSGVhcDo6cmVzdW1lVGhlUGVyaXBoZXJ5KCkKICAgICAgICAgICAgIGJvb2wgcmVt
b3ZlID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAodmlzaXRvci5oYXNBY2tub3dsZWRnZWRUaGF0
VGhlTXV0YXRvcklzUmVzdW1lZCgpKQogICAgICAgICAgICAgICAgIHJlbW92ZSA9IHRydWU7Ci0g
ICAgICAgICAgICBlbHNlIGlmIChhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKHZpc2l0b3Iucmln
aHRUb1J1bigpKSkgeworICAgICAgICAgICAgZWxzZSBpZiAoTG9ja2VyIGxvY2tlciB7IERlZmVy
TG9jaywgdmlzaXRvci5yaWdodFRvUnVuKCkgfTsgbG9ja2VyLnRyeUxvY2soKSkgewogICAgICAg
ICAgICAgICAgIHZpc2l0b3IudXBkYXRlTXV0YXRvcklzU3RvcHBlZChsb2NrZXIpOwogICAgICAg
ICAgICAgICAgIHJlbW92ZSA9IHRydWU7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxl
ckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCmluZGV4IGIyZDk5ZmJhODkyMjZkNGMyNDBjZGFi
OGY1YjA1NzU3ODFiZThkZTEuLjJiYjYyM2U5M2JkNTc5M2EzNDEyODc3MGNlNzBiMjc1NmEzZDY1
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCkBAIC0y
MjAsNyArMjIwLDcgQEAgdm9pZCBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Ojp0cmFja2lu
Z0NvbXBsZXRlKCkKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHNhbXBsaW5nUHJvZmlsZXItPmdl
dExvY2soKSB9OwogICAgICAgICBzYW1wbGluZ1Byb2ZpbGVyLT5wYXVzZShsb2NrZXIpOwogICAg
ICAgICBWZWN0b3I8U2FtcGxpbmdQcm9maWxlcjo6U3RhY2tUcmFjZT4gc3RhY2tUcmFjZXMgPSBz
YW1wbGluZ1Byb2ZpbGVyLT5yZWxlYXNlU3RhY2tUcmFjZXMobG9ja2VyKTsKLSAgICAgICAgbG9j
a2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tlci51bmxvY2soKTsKIAogICAgICAgICBS
ZWY8UHJvdG9jb2w6OlNjcmlwdFByb2ZpbGVyOjpTYW1wbGVzPiBzYW1wbGVzID0gYnVpbGRTYW1w
bGVzKHZtLCBXVEZNb3ZlKHN0YWNrVHJhY2VzKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2Nr
ZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuY3BwCmluZGV4IGE1MGM5NDIwODJhYWU0
YWQ0YTY0ZDQzOWU3OWI3NWJmMTg1MGNjMWIuLmUwZTUwNDRlZGZhZmNlMThkZTEzY2ZmYTBkZTM2
NzQ3MjkxNDI2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmNwcApAQCAtMjIyLDEyICsyMjIsMTIgQEAgdm9pZCBSZW1vdGVJbnNw
ZWN0b3JTb2NrZXRFbmRwb2ludDo6ZGlzY29ubmVjdChDb25uZWN0aW9uSUQgaWQpCiAgICAgaWYg
KGNvbnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2xpc3RlbmVycy5nZXQoaWQpKSB7CiAgICAgICAg
IG1fbGlzdGVuZXJzLnJlbW92ZShpZCk7CiAgICAgICAgIFNvY2tldDo6Y2xvc2UoY29ubmVjdGlv
bi0+c29ja2V0KTsKLSAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tl
ci51bmxvY2soKTsKICAgICAgICAgY29ubmVjdGlvbi0+bGlzdGVuZXIuZGlkQ2hhbmdlU3RhdHVz
KCp0aGlzLCBpZCwgTGlzdGVuZXI6OlN0YXR1czo6Q2xvc2VkKTsKICAgICB9IGVsc2UgaWYgKGNv
bnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2NsaWVudHMuZ2V0KGlkKSkgewogICAgICAgICBtX2Ns
aWVudHMucmVtb3ZlKGlkKTsKICAgICAgICAgU29ja2V0OjpjbG9zZShjb25uZWN0aW9uLT5zb2Nr
ZXQpOwotICAgICAgICBsb2NrZXIudW5sb2NrRWFybHkoKTsKKyAgICAgICAgbG9ja2VyLnVubG9j
aygpOwogICAgICAgICBjb25uZWN0aW9uLT5jbGllbnQuZGlkQ2xvc2UoKnRoaXMsIGlkKTsKICAg
ICB9IGVsc2UKICAgICAgICAgTE9HX0VSUk9SKCJFcnJvcjogQ2Fubm90IGRpc2Nvbm5lY3Q6IElu
dmFsaWQgaWQiKTsKQEAgLTI4Miw3ICsyODIsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclNvY2tl
dEVuZHBvaW50OjpyZWN2SWZFbmFibGVkKENvbm5lY3Rpb25JRCBpZCkKICAgICAgICAgaWYgKGF1
dG8gcmVhZFNpemUgPSBTb2NrZXQ6OnJlYWQoY29ubmVjdGlvbi0+c29ja2V0LCByZWN2QnVmZmVy
LmRhdGEoKSwgcmVjdkJ1ZmZlci5zaXplKCkpKSB7CiAgICAgICAgICAgICBpZiAoKnJlYWRTaXpl
ID4gMCkgewogICAgICAgICAgICAgICAgIHJlY3ZCdWZmZXIuc2hyaW5rKCpyZWFkU2l6ZSk7Ci0g
ICAgICAgICAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgICAgICAgICAgbG9j
a2VyLnVubG9jaygpOwogICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNsaWVudC5kaWRSZWNl
aXZlKCp0aGlzLCBpZCwgV1RGTW92ZShyZWN2QnVmZmVyKSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgfQpAQCAtMjkxLDcgKzI5MSw3IEBAIHZvaWQgUmVtb3RlSW5zcGVj
dG9yU29ja2V0RW5kcG9pbnQ6OnJlY3ZJZkVuYWJsZWQoQ29ubmVjdGlvbklEIGlkKQogICAgICAg
ICBTb2NrZXQ6OmNsb3NlKGNvbm5lY3Rpb24tPnNvY2tldCk7CiAgICAgICAgIG1fY2xpZW50cy5y
ZW1vdmUoaWQpOwogCi0gICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBsb2Nr
ZXIudW5sb2NrKCk7CiAgICAgICAgIGNvbm5lY3Rpb24tPmNsaWVudC5kaWRDbG9zZSgqdGhpcywg
aWQpOwogICAgIH0KIH0KQEAgLTM1Myw3ICszNTMsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclNv
Y2tldEVuZHBvaW50OjphY2NlcHRJbmV0U29ja2V0SWZFbmFibGVkKENvbm5lY3Rpb25JRCBpZCkK
ICAgICBpZiAoY29uc3QgYXV0byYgY29ubmVjdGlvbiA9IG1fbGlzdGVuZXJzLmdldChpZCkpIHsK
ICAgICAgICAgaWYgKGF1dG8gc29ja2V0ID0gU29ja2V0OjphY2NlcHQoY29ubmVjdGlvbi0+c29j
a2V0KSkgewogICAgICAgICAgICAgLy8gTmVlZCB0byB1bmxvY2sgYmVmb3JlIGNhbGxpbmcgY3Jl
YXRlQ2xpZW50IGFzIGl0IGFsc28gYXR0ZW1wdHMgdG8gbG9jay4KLSAgICAgICAgICAgIGxvY2tl
ci51bmxvY2tFYXJseSgpOworICAgICAgICAgICAgbG9ja2VyLnVubG9jaygpOwogICAgICAgICAg
ICAgaWYgKGNvbm5lY3Rpb24tPmxpc3RlbmVyLmRvQWNjZXB0KCp0aGlzLCBzb2NrZXQudmFsdWUo
KSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmgKaW5kZXggYWEyNzNiYWRiZWZhNzM3YTBlYWE1
MzRmYmViYTlmNTAxZmRiODYyNy4uZGQ5OWYyZDM4MjZjYWFmY2Y5ZWY4YjkwMmE2YTIwM2RhMjIz
YjMzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uY3VycmVu
dEpTTG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmN1cnJlbnRK
U0xvY2suaApAQCAtNTgsOSArNTgsOSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KICAgICAKLSAg
ICB2b2lkIHVubG9ja0Vhcmx5KCkKKyAgICB2b2lkIHVubG9jaygpCiAgICAgewotICAgICAgICBt
X2xvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBtX2xvY2tlci51bmxvY2soKTsKICAgICB9
CiAKIHByaXZhdGU6CkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gdnMuIGRl
cml2ZWQgY2xhc3Nlcy4gSWYgd2UgZGlkbid0LCB0aGVuIHdlIHdvdWxkIGRlc3Ryb3kgdGhlIAog
ICAgICAgICAvLyBEZWZlckdDIG9iamVjdCBiZWZvcmUgdW5sb2NraW5nIHRoZSBsb2NrIHdoaWNo
IGNvdWxkIGNhdXNlIGEgR0MKICAgICAgICAgLy8gYW5kIHJlc3VsdGluZyBkZWFkbG9jay4KLSAg
ICAgICAgdW5sb2NrRWFybHkoKTsKKyAgICAgICAgdW5sb2NrKCk7CiAgICAgfQogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAppbmRleCA5MmJmZWFh
NzY4YWE2ODYyYmRmNWQ5OGM0YWVkZDcxNDYyZTRhZDY0Li4xMGViNGVjYzU3NjJlY2Y4NTYzOGQy
OTExNjAxNDk5ODg0OGQ0ZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTVRyYXBzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRy
YXBzLmNwcApAQCAtMTM3LDggKzEzNyw4IEBAIHZvaWQgVk1UcmFwczo6dHJ5SW5zdGFsbFRyYXBC
cmVha3BvaW50cyhTaWduYWxDb250ZXh0JiBjb250ZXh0LCBTdGFja0JvdW5kcyBzdGFjCiAgICAg
fQogCiAgICAgaWYgKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChmb3VuZENvZGVCbG9jay0+aml0
VHlwZSgpKSkgewotICAgICAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKCptX2xvY2spOwot
ICAgICAgICBpZiAoIWxvY2tlcikKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
Km1fbG9jayB9OworICAgICAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgICAgICBy
ZXR1cm47IC8vIExldCB0aGUgU2lnbmFsU2VuZGVyIHRyeSBhZ2FpbiBsYXRlci4KIAogICAgICAg
ICBpZiAoIW5lZWRIYW5kbGluZyhWTVRyYXBzOjpBc3luY0V2ZW50cykpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuY3BwCmluZGV4IGU0OWRhZTFlMWJjOWRkNzBj
OWViMjAyZDg3NzA5ZmNjNmNhNjcwOTAuLjk4YTdmMTQ3NDI4YTg1NGY5NzViYThmNzA3ZDgyYzc2
ODlmY2FlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3Bl
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNw
cApAQCAtNzMsMTQgKzczLDE0IEBAIGF1dG8gVk1JbnNwZWN0b3I6OmxvY2soU2Vjb25kcyB0aW1l
b3V0KSAtPiBFeHBlY3RlZDxMb2NrZXIsIEVycm9yPgogICAgIC8vIFdlJ2xsIGJlIGRvaW5nIHNs
ZWVwKDEpIGJldHdlZW4gdHJpZXMgYmVsb3cuIEhlbmNlLCBzbGVlcFBlclJldHJ5IGlzIDEuCiAg
ICAgdW5zaWduZWQgbWF4UmV0cmllcyA9ICh0aW1lb3V0IDwgU2Vjb25kczo6aW5maW5pdHkoKSkg
PyB0aW1lb3V0LnZhbHVlKCkgOiBVSU5UX01BWDsKIAotICAgIEV4cGVjdGVkPExvY2tlciwgRXJy
b3I+IGxvY2tlciA9IExvY2tlcjo6dHJ5TG9jayhtX2xvY2spOworICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fbG9jayB9OworCiAgICAgdW5zaWduZWQgdHJ5Q291bnQgPSAwOwotICAg
IHdoaWxlICghbG9ja2VyICYmIHRyeUNvdW50IDwgbWF4UmV0cmllcykgeworICAgIHdoaWxlICgh
bG9ja2VyLnRyeUxvY2soKSAmJiB0cnlDb3VudCA8IG1heFJldHJpZXMpIHsKICAgICAgICAgLy8g
V2Ugd2FudCB0aGUgdmVyc2lvbiBvZiBzbGVlcCBmcm9tIHVuaXN0ZC5oLiBDYXN0IHRvIGRpc2Ft
YmlndWF0ZS4KICNpZiAhT1MoV0lORE9XUykKICAgICAgICAgKHN0YXRpY19jYXN0PHVuc2lnbmVk
ICgqKSh1bnNpZ25lZCk+KHNsZWVwKSkoMSk7CiAjZW5kaWYKLSAgICAgICAgbG9ja2VyID0gTG9j
a2VyOjp0cnlMb2NrKG1fbG9jayk7CiAgICAgfQogCiAgICAgaWYgKCFsb2NrZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oIGIvU291cmNlL1dURi93dGYvQ2hlY2tl
ZExvY2suaAppbmRleCA0NGI4OTk5NjkxMjM0NTIwMDE5OGZkODY0YTk5ODk2Njc3NjM5OTQyLi4x
NzkzMmNjZjg3MTI1YjdmNWFhZjVhNjU3ODFkYTI1MTZlMjdlOTkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRMb2Nr
LmgKQEAgLTQzLDkgKzQzLDkgQEAgbmFtZXNwYWNlIFdURiB7CiAvLyAgICAgICB2b2lkIHNldFZh
bHVlKGludCB2YWx1ZSkgeyBMb2Noa2VyIGhvbGRMb2NrIHsgbV9sb2NrIH07IG1fdmFsdWUgPSB2
YWx1ZTsgIH0KIC8vICAgICAgIHZvaWQgbWF5YmVTZXRPdGhlclZhbHVlKGludCB2YWx1ZSkKIC8v
ICAgICAgIHsKLS8vICAgICAgICAgICBpZiAoIW1fbG9jay50cnlMb2NrKCkpCisvLyAgICAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisvLyAgICAgICAgICAgaWYg
KCFsb2NrZXIudHJ5TG9jaygpKQogLy8gICAgICAgICAgICAgIHJldHVybjsKLS8vICAgICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9vdGhlckxvY2sgfTsKIC8vICAg
ICAgICAgICBtX290aGVyVmFsdWUgPSB2YWx1ZTsKIC8vICAgICAgIH0KIC8vICAgcHJpdmF0ZToK
QEAgLTYwLDggKzYwLDggQEAgY2xhc3MgV1RGX0NBUEFCSUxJVFlfTE9DSyBDaGVja2VkTG9jayA6
IExvY2sgewogcHVibGljOgogICAgIGNvbnN0ZXhwciBDaGVja2VkTG9jaygpID0gZGVmYXVsdDsK
ICAgICB2b2lkIGxvY2soKSBXVEZfQUNRVUlSRVNfTE9DSygpIHsgTG9jazo6bG9jaygpOyB9Ci0g
ICAgYm9vbCB0cnlMb2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgeyByZXR1cm4gTG9j
azo6dHJ5TG9jaygpOyB9Ci0gICAgYm9vbCB0cnlfbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLX0lG
KHRydWUpIHsgcmV0dXJuIExvY2s6OnRyeV9sb2NrKCk7IH0gLy8gTk9MSU5UOiBJbnRlbnRpb25h
bCBkZXZpYXRpb24gdG8gc3VwcG9ydCBzdGQ6OnNjb3BlZF9sb2NrLgorICAgIGJvb2wgdHJ5TG9j
aygpIFdURl9UUllfQUNRVUlSRV9MT0NLKHRydWUpIHsgcmV0dXJuIExvY2s6OnRyeUxvY2soKTsg
fQorICAgIGJvb2wgdHJ5X2xvY2soKSBXVEZfVFJZX0FDUVVJUkVfTE9DSyh0cnVlKSB7IHJldHVy
biBMb2NrOjp0cnlfbG9jaygpOyB9IC8vIE5PTElOVDogSW50ZW50aW9uYWwgZGV2aWF0aW9uIHRv
IHN1cHBvcnQgc3RkOjpzY29wZWRfbG9jay4KICAgICB2b2lkIHVubG9jaygpIFdURl9SRUxFQVNF
U19MT0NLKCkgeyBMb2NrOjp1bmxvY2soKTsgfQogICAgIHZvaWQgdW5sb2NrRmFpcmx5KCkgV1RG
X1JFTEVBU0VTX0xPQ0soKSB7IExvY2s6OnVubG9ja0ZhaXJseSgpOyB9CiAgICAgdm9pZCBzYWZl
cG9pbnQoKSB7IExvY2s6OnNhZmVwb2ludCgpOyB9CkBAIC03NSw4ICs3NSw2IEBAIHB1YmxpYzoK
IC8vIGRlY2xhcmF0aW9uLgogaW5saW5lIHZvaWQgYXNzZXJ0SXNIZWxkKGNvbnN0IENoZWNrZWRM
b2NrJiBsb2NrKSBXVEZfQVNTRVJUU19BQ1FVSVJFRF9MT0NLKGxvY2spIHsgQVNTRVJUX1VOVVNF
RChsb2NrLCBsb2NrLmlzSGVsZCgpKTsgfQogCi11c2luZyBBZG9wdExvY2tUYWcgPSBzdGQ6OmFk
b3B0X2xvY2tfdDsKLQogLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3aXRoIENoZWNr
ZWRMb2NrLgogLy8gTm9uLW1vdmFibGUgc2ltcGxlIHNjb3BlZCBsb2NrIGhvbGRlci4KIC8vIEV4
YW1wbGU6IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKQEAgLTg1LDI4ICs4Myw1OCBAQCBjbGFz
cyBXVEZfQ0FQQUJJTElUWV9TQ09QRURfTE9DSyBMb2NrZXI8Q2hlY2tlZExvY2s+IHsKIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBMb2NrZXIoQ2hlY2tlZExvY2smIGxvY2spIFdURl9BQ1FVSVJFU19M
T0NLKGxvY2spCiAgICAgICAgIDogbV9sb2NrKGxvY2spCisgICAgICAgICwgbV9pc0xvY2tlZCh0
cnVlKQogICAgIHsKICAgICAgICAgbV9sb2NrLmxvY2soKTsKICAgICB9CiAgICAgTG9ja2VyKEFk
b3B0TG9ja1RhZywgQ2hlY2tlZExvY2smIGxvY2spIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCiAg
ICAgICAgIDogbV9sb2NrKGxvY2spCisgICAgICAgICwgbV9pc0xvY2tlZCh0cnVlKQorICAgIHsK
KyAgICB9CisgICAgTG9ja2VyKERlZmVyTG9ja1RhZywgQ2hlY2tlZExvY2smIGxvY2spIFdURl9F
WENMVURFU19MT0NLKGxvY2spCisgICAgICAgIDogbV9sb2NrKGxvY2spCiAgICAgewogICAgIH0K
ICAgICB+TG9ja2VyKCkgV1RGX1JFTEVBU0VTX0xPQ0soKQogICAgIHsKKyAgICAgICAgaWYgKG1f
aXNMb2NrZWQpCisgICAgICAgICAgICBtX2xvY2sudW5sb2NrKCk7CisgICAgfQorICAgIGJvb2wg
dHJ5TG9jaygpIFdURl9UUllfQUNRVUlSRV9MT0NLKHRydWUpCisgICAgeworICAgICAgICBBU1NF
UlQoIW1faXNMb2NrZWQpOworICAgICAgICBtX2lzTG9ja2VkID0gbV9sb2NrLnRyeUxvY2soKTsK
KyAgICAgICAgcmV0dXJuIG1faXNMb2NrZWQ7CisgICAgfQorICAgIHZvaWQgbG9jaygpIFdURl9B
Q1FVSVJFU19MT0NLKG1fbG9jaykKKyAgICB7CisgICAgICAgIEFTU0VSVCghbV9pc0xvY2tlZCk7
CisgICAgICAgIG1fbG9jay5sb2NrKCk7CisgICAgICAgIG1faXNMb2NrZWQgPSB0cnVlOworICAg
IH0KKyAgICB2b2lkIHVubG9jaygpIFdURl9SRUxFQVNFU19MT0NLKG1fbG9jaykKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChtX2lzTG9ja2VkKTsKICAgICAgICAgbV9sb2NrLnVubG9jaygpOworICAg
ICAgICBtX2lzTG9ja2VkID0gZmFsc2U7CiAgICAgfQorCisgICAgZXhwbGljaXQgb3BlcmF0b3Ig
Ym9vbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNMb2NrZWQ7IH0KKwogICAgIExvY2tlcihjb25zdCBM
b2NrZXI8Q2hlY2tlZExvY2s+JikgPSBkZWxldGU7CiAgICAgTG9ja2VyJiBvcGVyYXRvcj0oY29u
c3QgTG9ja2VyPENoZWNrZWRMb2NrPiYpID0gZGVsZXRlOworCiBwcml2YXRlOgogICAgIENoZWNr
ZWRMb2NrJiBtX2xvY2s7CisgICAgYm9vbCBtX2lzTG9ja2VkIHsgZmFsc2UgfTsKIH07CiAKIExv
Y2tlcihDaGVja2VkTG9jayYpIC0+IExvY2tlcjxDaGVja2VkTG9jaz47CiBMb2NrZXIoQWRvcHRM
b2NrVGFnLCBDaGVja2VkTG9jayYpIC0+IExvY2tlcjxDaGVja2VkTG9jaz47CitMb2NrZXIoRGVm
ZXJMb2NrVGFnLCBDaGVja2VkTG9jayYpIC0+IExvY2tlcjxDaGVja2VkTG9jaz47CiAKIH0gLy8g
bmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6OmFzc2VydElzSGVsZDsKIHVzaW5nIFdURjo6Q2hl
Y2tlZExvY2s7Ci11c2luZyBXVEY6OkFkb3B0TG9ja1RhZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0xvY2tlci5oIGIvU291cmNlL1dURi93dGYvTG9ja2VyLmgKaW5kZXggOGIwZTE5MmI1
ZWJhNGI4ODc2M2E4NDRkMWVjMGNiYTE0YzBjOTg4YS4uMGRhYWZlMDQ0NmVjYzlmZTdiOGZlMzNl
NDdiYTg4ODJlZjMzYzc3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTG9ja2VyLmgKKysr
IGIvU291cmNlL1dURi93dGYvTG9ja2VyLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2lu
Y2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBpbGVyLmg+CkBAIC01NCwx
MSArNTUsMTggQEAgcHJvdGVjdGVkOgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBEcm9w
TG9ja0ZvclNjb3BlOwogCit1c2luZyBBZG9wdExvY2tUYWcgPSBzdGQ6OmFkb3B0X2xvY2tfdDsK
K2NvbnN0ZXhwciBBZG9wdExvY2tUYWcgQWRvcHRMb2NrID0gQWRvcHRMb2NrVGFnKCk7Cit1c2lu
ZyBEZWZlckxvY2tUYWcgPSBzdGQ6OmRlZmVyX2xvY2tfdDsKK2NvbnN0ZXhwciBEZWZlckxvY2tU
YWcgRGVmZXJMb2NrID0gRGVmZXJMb2NrVGFnKCk7CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBj
bGFzcyBMb2NrZXIgOiBwdWJsaWMgQWJzdHJhY3RMb2NrZXIgewogcHVibGljOgogICAgIGV4cGxp
Y2l0IExvY2tlcihUJiBsb2NrYWJsZSkgOiBtX2xvY2thYmxlKCZsb2NrYWJsZSkgeyBsb2NrKCk7
IH0KICAgICBleHBsaWNpdCBMb2NrZXIoVCogbG9ja2FibGUpIDogbV9sb2NrYWJsZShsb2NrYWJs
ZSkgeyBsb2NrKCk7IH0KKyAgICBMb2NrZXIoQWRvcHRMb2NrVGFnLCBUJiBsb2NrYWJsZSkgOiBt
X2xvY2thYmxlKCZsb2NrYWJsZSksIG1faXNMb2NrZWQodHJ1ZSkgeyB9CisgICAgTG9ja2VyKERl
ZmVyTG9ja1RhZywgVCYgbG9ja2FibGUpIDogbV9sb2NrYWJsZSgmbG9ja2FibGUpIHsgfQogCiAg
ICAgLy8gWW91IHNob3VsZCBiZSB3YXJ5IG9mIHVzaW5nIHRoaXMgY29uc3RydWN0b3IuIEl0J3Mg
b25seSBhcHBsaWNhYmxlCiAgICAgLy8gaW4gcGxhY2VzIHdoZXJlIHRoZXJlIGlzIGEgbG9ja2lu
ZyBwcm90b2NvbCBmb3IgYSBwYXJ0aWN1bGFyIG9iamVjdApAQCAtNjYsODQgKzc0LDc0IEBAIHB1
YmxpYzoKICAgICAvLyB0aGlzIG9mdGVuIGhhcHBlbnMgd2hlbiBhbiBvYmplY3QgaXMgbmV3bHkg
YWxsb2NhdGVkIGFuZCBpdCBjYW4gbm90CiAgICAgLy8gYmUgYWNjZXNzZWQgY29uY3VycmVudGx5
LgogICAgIExvY2tlcihOb0xvY2tpbmdOZWNlc3NhcnlUYWcpIDogbV9sb2NrYWJsZShudWxscHRy
KSB7IH0KLSAgICAKKwogICAgIExvY2tlcihzdGQ6OnVuZGVybHlpbmdfdHlwZV90PE5vTG9ja2lu
Z05lY2Vzc2FyeVRhZz4pID0gZGVsZXRlOwogCiAgICAgfkxvY2tlcigpCiAgICAgewotICAgICAg
ICB1bmxvY2soKTsKKyAgICAgICAgaWYgKG1faXNMb2NrZWQpCisgICAgICAgICAgICB1bmxvY2so
KTsKKyAgICB9CisKKyAgICBib29sIHRyeUxvY2soKQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1f
bG9ja2FibGUpOworICAgICAgICBBU1NFUlQoIW1faXNMb2NrZWQpOworICAgICAgICBpZiAoIW1f
bG9ja2FibGUgfHwgIW1fbG9ja2FibGUtPnRyeUxvY2soKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgbV9pc0xvY2tlZCA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KICAgICAKLSAgICBzdGF0aWMgTG9ja2VyIHRyeUxvY2soVCYgbG9ja2FibGUpCisgICAg
ZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNMb2NrZWQ7IH0KKwor
ICAgIHZvaWQgdW5sb2NrKCkKICAgICB7Ci0gICAgICAgIExvY2tlciByZXN1bHQoTm9Mb2NraW5n
TmVjZXNzYXJ5KTsKLSAgICAgICAgaWYgKGxvY2thYmxlLnRyeUxvY2soKSkgewotICAgICAgICAg
ICAgcmVzdWx0Lm1fbG9ja2FibGUgPSAmbG9ja2FibGU7Ci0gICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgICBBU1NFUlQobV9pc0xvY2tlZCk7CisgICAgICAgIGNvbXBpbGVyRmVuY2Uo
KTsKKyAgICAgICAgaWYgKG1fbG9ja2FibGUpIHsKKyAgICAgICAgICAgIFRTQU5fQU5OT1RBVEVf
SEFQUEVOU19CRUZPUkUobV9sb2NrYWJsZSk7CisgICAgICAgICAgICBtX2xvY2thYmxlLT51bmxv
Y2soKTsKKyAgICAgICAgICAgIG1faXNMb2NrZWQgPSBmYWxzZTsKICAgICAgICAgfQotICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIFQqIGxvY2thYmxlKCkgeyByZXR1cm4gbV9s
b2NrYWJsZTsgfQotICAgIAotICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJl
dHVybiAhIW1fbG9ja2FibGU7IH0KLSAgICAKLSAgICB2b2lkIHVubG9ja0Vhcmx5KCkKKyAgICB2
b2lkIGxvY2soKQogICAgIHsKLSAgICAgICAgdW5sb2NrKCk7Ci0gICAgICAgIG1fbG9ja2FibGUg
PSBudWxscHRyOworICAgICAgICBBU1NFUlQoIW1faXNMb2NrZWQpOworICAgICAgICBpZiAobV9s
b2NrYWJsZSkgeworICAgICAgICAgICAgbV9sb2NrYWJsZS0+bG9jaygpOworICAgICAgICAgICAg
VFNBTl9BTk5PVEFURV9IQVBQRU5TX0FGVEVSKG1fbG9ja2FibGUpOworICAgICAgICAgICAgbV9p
c0xvY2tlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgY29tcGlsZXJGZW5jZSgpOwogICAg
IH0KICAgICAKICAgICAvLyBJdCdzIGdyZWF0IHRvIGJlIGFibGUgdG8gcGFzcyBsb2NrZXJzIGFy
b3VuZC4gSXQgZW5hYmxlcyBjdXN0b20gbG9ja2luZyBhZGFwdG9ycyBsaWtlCiAgICAgLy8gSlND
OjpMb2NrRHVyaW5nTWFya2luZy4KICAgICBMb2NrZXIoTG9ja2VyJiYgb3RoZXIpCi0gICAgICAg
IDogbV9sb2NrYWJsZShvdGhlci5tX2xvY2thYmxlKQorICAgICAgICA6IG1fbG9ja2FibGUoc3Rk
OjpleGNoYW5nZShvdGhlci5tX2xvY2thYmxlLCBudWxscHRyKSkKKyAgICAgICAgLCBtX2lzTG9j
a2VkKHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9pc0xvY2tlZCwgZmFsc2UpKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKCZvdGhlciAhPSB0aGlzKTsKLSAgICAgICAgb3RoZXIubV9sb2NrYWJsZSA9IG51
bGxwdHI7CiAgICAgfQogICAgIAogICAgIExvY2tlciYgb3BlcmF0b3I9KExvY2tlciYmIG90aGVy
KQogICAgIHsKICAgICAgICAgQVNTRVJUKCZvdGhlciAhPSB0aGlzKTsKLSAgICAgICAgbV9sb2Nr
YWJsZSA9IG90aGVyLm1fbG9ja2FibGU7Ci0gICAgICAgIG90aGVyLm1fbG9ja2FibGUgPSBudWxs
cHRyOworICAgICAgICBtX2xvY2thYmxlID0gc3RkOjpleGNoYW5nZShvdGhlci5tX2xvY2thYmxl
LCBudWxscHRyKTsKKyAgICAgICAgbV9pc0xvY2tlZCA9IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9p
c0xvY2tlZCwgZmFsc2UpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogICAgIAogcHJp
dmF0ZToKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZT4KICAgICBmcmllbmQgY2xhc3MgRHJvcExvY2tG
b3JTY29wZTsKLQotICAgIHZvaWQgdW5sb2NrKCkKLSAgICB7Ci0gICAgICAgIGNvbXBpbGVyRmVu
Y2UoKTsKLSAgICAgICAgaWYgKG1fbG9ja2FibGUpIHsKLSAgICAgICAgICAgIFRTQU5fQU5OT1RB
VEVfSEFQUEVOU19CRUZPUkUobV9sb2NrYWJsZSk7Ci0gICAgICAgICAgICBtX2xvY2thYmxlLT51
bmxvY2soKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHZvaWQgbG9jaygpCi0gICAgewotICAg
ICAgICBpZiAobV9sb2NrYWJsZSkgewotICAgICAgICAgICAgbV9sb2NrYWJsZS0+bG9jaygpOwot
ICAgICAgICAgICAgVFNBTl9BTk5PVEFURV9IQVBQRU5TX0FGVEVSKG1fbG9ja2FibGUpOwotICAg
ICAgICB9Ci0gICAgICAgIGNvbXBpbGVyRmVuY2UoKTsKLSAgICB9CiAgICAgCi0gICAgVCogbV9s
b2NrYWJsZTsKKyAgICBUKiBtX2xvY2thYmxlIHsgbnVsbHB0ciB9OworICAgIGJvb2wgbV9pc0xv
Y2tlZCB7IGZhbHNlIH07CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4KLUxvY2tl
cjxMb2NrVHlwZT4gdHJ5SG9sZExvY2soTG9ja1R5cGUmKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci10
ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4KLUxvY2tlcjxMb2NrVHlwZT4gdHJ5SG9sZExvY2so
TG9ja1R5cGUmIGxvY2spCi17Ci0gICAgcmV0dXJuIExvY2tlcjxMb2NrVHlwZT46OnRyeUxvY2so
bG9jayk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlPgogY2xhc3MgRHJvcExvY2tG
b3JTY29wZSA6IHByaXZhdGUgQWJzdHJhY3RMb2NrZXIgewogICAgIFdURl9GT1JCSURfSEVBUF9B
TExPQ0FUSU9OKERyb3BMb2NrRm9yU2NvcGUpOwpAQCAtMTY2LDYgKzE2NCw4IEBAIHByaXZhdGU6
CiB9CiAKIHVzaW5nIFdURjo6QWJzdHJhY3RMb2NrZXI7Cit1c2luZyBXVEY6OkFkb3B0TG9jazsK
K3VzaW5nIFdURjo6RGVmZXJMb2NrOwogdXNpbmcgV1RGOjpMb2NrZXI7CiB1c2luZyBXVEY6Ok5v
TG9ja2luZ05lY2Vzc2FyeVRhZzsKIHVzaW5nIFdURjo6Tm9Mb2NraW5nTmVjZXNzYXJ5OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9nZ2VyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIu
aAppbmRleCBlOTlkNDliZjJlOWQ5YWQyYTZiM2I2MTgwZGNiZDk4Y2Q3ODVmYTU0Li5mMmE0YmU1
OTlhMTllYmM4MWYwYjEwYWVkMTg1ZjEyODZkMjhmYWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9Mb2dnZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaApAQCAtMzIyLDEyICsz
MjIsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKGNoYW5uZWwuc3RhdGUgPT0gV1RGTG9nQ2hh
bm5lbFN0YXRlOjpPZmYgfHwgbGV2ZWwgPiBjaGFubmVsLmxldmVsKQogICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIGlmICghb2JzZXJ2ZXJMb2NrKCkudHJ5TG9jaygpKQotICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBv
YnNlcnZlckxvY2soKSB9OwotICAgICAgICBmb3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG9ic2Vy
dmVycygpKQotICAgICAgICAgICAgb2JzZXJ2ZXIuZGlkTG9nTWVzc2FnZShjaGFubmVsLCBsZXZl
bCwgeyBDb25zb2xlTG9nVmFsdWU8QXJndW1lbnQ+Ojp0b1ZhbHVlKGFyZ3VtZW50cykuLi4gfSk7
CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG9ic2VydmVyTG9jaygpIH07Cisg
ICAgICAgIGlmIChsb2NrZXIudHJ5TG9jaygpKSB7CisgICAgICAgICAgICBmb3IgKE9ic2VydmVy
JiBvYnNlcnZlciA6IG9ic2VydmVycygpKQorICAgICAgICAgICAgICAgIG9ic2VydmVyLmRpZExv
Z01lc3NhZ2UoY2hhbm5lbCwgbGV2ZWwsIHsgQ29uc29sZUxvZ1ZhbHVlPEFyZ3VtZW50Pjo6dG9W
YWx1ZShhcmd1bWVudHMpLi4uIH0pOworICAgICAgICB9CiAgICAgfQogCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUuLi4gQXJndW1lbnQ+CkBAIC0zNTMsMTAgKzM1MiwxMCBAQCBwcml2YXRlOgogICAg
ICAgICBpZiAoY2hhbm5lbC5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZiB8fCBsZXZl
bCA+IGNoYW5uZWwubGV2ZWwpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKCFv
YnNlcnZlckxvY2soKS50cnlMb2NrKCkpCisgICAgICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxv
Y2ssIG9ic2VydmVyTG9jaygpIH07CisgICAgICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFn
IHsgfSwgb2JzZXJ2ZXJMb2NrKCkgfTsKICAgICAgICAgZm9yIChPYnNlcnZlciYgb2JzZXJ2ZXIg
OiBvYnNlcnZlcnMoKSkKICAgICAgICAgICAgIG9ic2VydmVyLmRpZExvZ01lc3NhZ2UoY2hhbm5l
bCwgbGV2ZWwsIHsgQ29uc29sZUxvZ1ZhbHVlPEFyZ3VtZW50Pjo6dG9WYWx1ZShhcmd1bWVudHMp
Li4uIH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZFNhZmV0eUFu
YWx5c2lzLmggYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRTYWZldHlBbmFseXNpcy5oCmluZGV4IDAz
YWMxNWE5MzNlNzBmYzFhMWZmMDQ3OGYwYjk5M2NlMThkNDk3ZWMuLjYzM2VkMDE5NjdkOTRlY2Ex
OWI1NzkyMmI2NjA0YjEyNjhlYTExYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVh
ZFNhZmV0eUFuYWx5c2lzLmgKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkU2FmZXR5QW5hbHlz
aXMuaApAQCAtMzUsNyArMzUsNyBAQAogI2RlZmluZSBXVEZfVEhSRUFEX0FOTk9UQVRJT05fQVRU
UklCVVRFKHgpCiAjZW5kaWYKIAotI2RlZmluZSBXVEZfQUNRVUlSRVNfTE9DS19JRiguLi4pIFdU
Rl9USFJFQURfQU5OT1RBVElPTl9BVFRSSUJVVEUodHJ5X2FjcXVpcmVfY2FwYWJpbGl0eShfX1ZB
X0FSR1NfXykpCisjZGVmaW5lIFdURl9UUllfQUNRVUlSRV9MT0NLKC4uLikgV1RGX1RIUkVBRF9B
Tk5PVEFUSU9OX0FUVFJJQlVURSh0cnlfYWNxdWlyZV9jYXBhYmlsaXR5KF9fVkFfQVJHU19fKSkK
ICNkZWZpbmUgV1RGX0FDUVVJUkVTX0xPQ0soLi4uKSBXVEZfVEhSRUFEX0FOTk9UQVRJT05fQVRU
UklCVVRFKGFjcXVpcmVfY2FwYWJpbGl0eShfX1ZBX0FSR1NfXykpCiAjZGVmaW5lIFdURl9BQ1FV
SVJFU19TSEFSRURfTE9DS19JRiguLi4pIFdURl9USFJFQURfQU5OT1RBVElPTl9BVFRSSUJVVEUo
dHJ5X2FjcXVpcmVfc2hhcmVkX2NhcGFiaWxpdHkoX19WQV9BUkdTX18pKQogI2RlZmluZSBXVEZf
QUNRVUlSRVNfU0hBUkVEX0xPQ0soLi4uKSBXVEZfVEhSRUFEX0FOTk9UQVRJT05fQVRUUklCVVRF
KGFjcXVpcmVfc2hhcmVkX2NhcGFiaWxpdHkoX19WQV9BUkdTX18pKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsLmNwcAppbmRleCAxODQ0MDIxZTZmMWFjNDRmZTYzMjVjNjI4YmFl
NmY4ZTE3ZmJhNjcwLi5mNDI0MjM5ZjQzNDVjNjVjY2M0MDcwOGEyZmNjOTYxN2M1MTlkODI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcApAQCAtODUsMTEgKzg1LDEw
IEBAIGJvb2wgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6dXBkYXRlRGF0YVNv
dXJjZShjb25zdCBDQUF1ZGlvU3RyZWFtRGVzCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQo
KSk7CiAKLSAgICBpZiAoIW1fZGF0YVNvdXJjZUxvY2sudHJ5TG9jaygpKQorICAgIExvY2tlciBs
b2NrZXIgeyBEZWZlckxvY2ssIG1fZGF0YVNvdXJjZUxvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50
cnlMb2NrKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIExvY2tlciBsb2NrZXIgeyBB
ZG9wdExvY2tUYWcgeyB9LCBtX2RhdGFTb3VyY2VMb2NrIH07Ci0KICAgICBhdXRvIGRhdGFTb3Vy
Y2UgPSBBdWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShhdWRpb0Rlc2NyaXB0aW9uLnNhbXBs
ZVJhdGUoKSAqIDEsIG1fc291cmNlLmdldCgpKTsKICAgICBpZiAoZGF0YVNvdXJjZS0+c2V0SW5w
dXRGb3JtYXQoYXVkaW9EZXNjcmlwdGlvbikpIHsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChb
dGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0gewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCmlu
ZGV4IDYzM2M1MDZhMDA3NjdmZmI4ODU4Y2IwNjBmNTFkNzY5OTZiYTE3MmEuLmZiNGM0NGY3ZGZj
NjFiMmM0ZjE4NjA3MjhkYjY0Nzg5NTlmMWEwZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKQEAgLTEw
MiwxMCArMTAyLDEwIEBAIHZvaWQgQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpwcm9jZXNzKHNpemVf
dCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBUaGUg
YXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUhvbGRM
b2NrKCkgaW5zdGVhZC4KLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xv
Y2spOwotICAgIGlmICghbG9ja2VyKSB7Ci0gICAgICAgIC8vIFRvbyBiYWQgLSB0cnlIb2xkTG9j
aygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGNoYW5naW5nIGJ1ZmZlcnMg
YW5kIHdlcmUgYWxyZWFkeSBvdXRwdXR0aW5nIHNpbGVuY2UgYW55d2F5LgorICAgIC8vIFRoZSBh
dWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBsb2NrLCBzbyB3ZSB1c2UgdHJ5TG9jaygp
IGluc3RlYWQuCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNzTG9jayB9
OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgeworICAgICAgICAvLyBUb28gYmFkIC0gdHJ5
TG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGNoYW5naW5nIGJ1ZmZl
cnMgYW5kIHdlcmUgYWxyZWFkeSBvdXRwdXR0aW5nIHNpbGVuY2UgYW55d2F5LgogICAgICAgICBv
dXRwdXRCdXMuemVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwCmluZGV4IGZlYmEzMzBlZDAyMGE3YTY5
YTQ0M2YzMjJlZGFkZDdlMWE5NmQ2ZWMuLmIyYmNjZjAyMzg4ZTE3ZTVmYmE3OGI5MDBiMDg0MmIz
MDM2OGM3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9k
ZS5jcHAKQEAgLTU3OCwxMyArNTc4LDE1IEBAIHZvaWQgQXVkaW9Ob2RlOjpkZWNyZW1lbnRDb25u
ZWN0aW9uQ291bnQoKQogewogICAgIC8vIFRoZSBhY3R1YWxseSB3b3JrIGZvciBkZXJlZiBoYXBw
ZW5zIGNvbXBsZXRlbHkgd2l0aGluIHRoZSBhdWRpbyBjb250ZXh0J3MgZ3JhcGggbG9jay4KICAg
ICAvLyBJbiB0aGUgY2FzZSBvZiB0aGUgYXVkaW8gdGhyZWFkLCB3ZSBtdXN0IHVzZSBhIHRyeUxv
Y2sgdG8gYXZvaWQgZ2xpdGNoZXMuCi0gICAgaWYgKGF1dG8gbG9ja2VyID0gY29udGV4dCgpLmlz
QXVkaW9UaHJlYWQoKSA/IExvY2tlcjxSZWN1cnNpdmVMb2NrPjo6dHJ5TG9jayhjb250ZXh0KCku
Z3JhcGhMb2NrKCkpIDogTG9ja2VyIHsgY29udGV4dCgpLmdyYXBoTG9jaygpIH0pIHsKLSAgICAg
ICAgLy8gVGhpcyBpcyB3aGVyZSB0aGUgcmVhbCBkZXJlZiB3b3JrIGhhcHBlbnMuCi0gICAgICAg
IGRlY3JlbWVudENvbm5lY3Rpb25Db3VudFdpdGhMb2NrKCk7CisgICAgaWYgKGNvbnRleHQoKS5p
c0F1ZGlvVGhyZWFkKCkpIHsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgY29u
dGV4dCgpLmdyYXBoTG9jaygpIH07CisgICAgICAgIGlmIChsb2NrZXIudHJ5TG9jaygpKQorICAg
ICAgICAgICAgZGVjcmVtZW50Q29ubmVjdGlvbkNvdW50V2l0aExvY2soKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgY29udGV4dCgpLmFkZERlZmVycmVkRGVjcmVtZW50Q29ubmVjdGlvbkNv
dW50KHRoaXMpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIFdlIHdlcmUgdW5hYmxlIHRvIGdl
dCB0aGUgbG9jaywgc28gcHV0IHRoaXMgaW4gYSBsaXN0IHRvIGZpbmlzaCB1cCBsYXRlci4KLSAg
ICAgICAgQVNTRVJUKGNvbnRleHQoKS5pc0F1ZGlvVGhyZWFkKCkpOwotICAgICAgICBjb250ZXh0
KCkuYWRkRGVmZXJyZWREZWNyZW1lbnRDb25uZWN0aW9uQ291bnQodGhpcyk7CisgICAgICAgIExv
Y2tlciBsb2NrZXIgeyBjb250ZXh0KCkuZ3JhcGhMb2NrKCkgfTsKKyAgICAgICAgZGVjcmVtZW50
Q29ubmVjdGlvbkNvdW50V2l0aExvY2soKTsKICAgICB9CiAKICAgICAvLyBPbmNlIEF1ZGlvQ29u
dGV4dDo6dW5pbml0aWFsaXplKCkgaXMgY2FsbGVkIHRoZXJlJ3Mgbm8gbW9yZSBjaGFuY2VzIGZv
ciBkZWxldGVNYXJrZWROb2RlcygpIHRvIGdldCBjYWxsZWQsIHNvIHdlIGNhbGwgaGVyZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVs
aW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVs
aW5lLmNwcAppbmRleCAwNDA2ZWFiNzcxMGU4ZWQ5N2RlODk4M2EyMDBlNTE1NmMyMjllYWFmLi4y
ODQzZjIzOTZjNTk5ZGI0MzU1MDlhNDk3NDc0OGJiYjAxMTcxYWUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwCkBA
IC0zMjcsOSArMzI3LDkgQEAgdm9pZCBBdWRpb1BhcmFtVGltZWxpbmU6OnJlbW92ZUNhbmNlbGxl
ZEV2ZW50cyhzaXplX3QgZmlyc3RFdmVudFRvUmVtb3ZlKQogT3B0aW9uYWw8ZmxvYXQ+IEF1ZGlv
UGFyYW1UaW1lbGluZTo6dmFsdWVGb3JDb250ZXh0VGltZShCYXNlQXVkaW9Db250ZXh0JiBjb250
ZXh0LCBmbG9hdCBkZWZhdWx0VmFsdWUsIGZsb2F0IG1pblZhbHVlLCBmbG9hdCBtYXhWYWx1ZSkK
IHsKICAgICB7Ci0gICAgICAgIGlmICghbV9ldmVudHNMb2NrLnRyeUxvY2soKSkKKyAgICAgICAg
TG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9ldmVudHNMb2NrIH07CisgICAgICAgIGlmICgh
bG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAg
ICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2V2ZW50c0xvY2sgfTsKICAg
ICAgICAgaWYgKCFtX2V2ZW50cy5zaXplKCkgfHwgU2Vjb25kcyB7IGNvbnRleHQuY3VycmVudFRp
bWUoKSB9IDwgbV9ldmVudHNbMF0udGltZSgpKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKICAgICB9CkBAIC0zNDcsMTEgKzM0NywxMSBAQCBPcHRpb25hbDxmbG9hdD4gQXVkaW9Q
YXJhbVRpbWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRl
eAogZmxvYXQgQXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZXNGb3JGcmFtZVJhbmdlKHNpemVfdCBz
dGFydEZyYW1lLCBzaXplX3QgZW5kRnJhbWUsIGZsb2F0IGRlZmF1bHRWYWx1ZSwgZmxvYXQgbWlu
VmFsdWUsIGZsb2F0IG1heFZhbHVlLCBmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCBudW1iZXJPZlZh
bHVlcywgZG91YmxlIHNhbXBsZVJhdGUsIGRvdWJsZSBjb250cm9sUmF0ZSkKIHsKICAgICAvLyBX
ZSBjYW4ndCBjb250ZW5kIHRoZSBsb2NrIGluIHRoZSByZWFsdGltZSBhdWRpbyB0aHJlYWQuCi0g
ICAgaWYgKCFtX2V2ZW50c0xvY2sudHJ5TG9jaygpKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERl
ZmVyTG9jaywgbV9ldmVudHNMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKSB7CiAg
ICAgICAgIHN0ZDo6ZmlsbF9uKHZhbHVlcywgbnVtYmVyT2ZWYWx1ZXMsIGRlZmF1bHRWYWx1ZSk7
CiAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CiAgICAgfQotICAgIExvY2tlciBsb2NrZXIg
eyBBZG9wdExvY2tUYWcgeyB9LCBtX2V2ZW50c0xvY2sgfTsKIAogICAgIGZsb2F0IHZhbHVlID0g
dmFsdWVzRm9yRnJhbWVSYW5nZUltcGwoc3RhcnRGcmFtZSwgZW5kRnJhbWUsIGRlZmF1bHRWYWx1
ZSwgdmFsdWVzLCBudW1iZXJPZlZhbHVlcywgc2FtcGxlUmF0ZSwgY29udHJvbFJhdGUpOwogCkBA
IC05ODYsOSArOTg2LDkgQEAgYm9vbCBBdWRpb1BhcmFtVGltZWxpbmU6OmlzRXZlbnRDdXJyZW50
KGNvbnN0IFBhcmFtRXZlbnQmIGV2ZW50LCBjb25zdCBQYXJhbUV2ZW4KIAogYm9vbCBBdWRpb1Bh
cmFtVGltZWxpbmU6Omhhc1ZhbHVlcyhzaXplX3Qgc3RhcnRGcmFtZSwgZG91YmxlIHNhbXBsZVJh
dGUpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2V2ZW50c0xvY2sudHJ5TG9jaygpKQorICAgIExvY2tl
ciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fZXZlbnRzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRy
eUxvY2soKSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0
TG9ja1RhZyB7IH0sIG1fZXZlbnRzTG9jayB9OwogCiAgICAgLy8gUmV0dXJuIGZhbHNlIGlmIHRo
ZXJlIGFyZSBubyBldmVudHMgaW4gdGhlIHRpbWUgcmFuZ2UuCiAgICAgYXV0byBlbmRGcmFtZSA9
IHN0YXJ0RnJhbWUgKyBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcApp
bmRleCAzNDk2MjZmYTRkNDNlZDI1M2ZjZjkwNzMyYjY0MmFmMmJjNWFhNDYwLi5iYzkwOTk1OWQ1
M2M0ZGJjZDFkM2M3ODhlNWIwNzk2N2M1YTk4NTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKQEAgLTE5MSw4ICsxOTEs
OCBAQCB2b2lkIEF1ZGlvV29ya2xldE5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2Vz
cykKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAotICAgIGF1dG8gbG9ja2VyID0g
dHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIgfHwgIW1fcHJvY2Vz
c29yIHx8ICZUaHJlYWQ6OmN1cnJlbnQoKSAhPSBtX3dvcmtsZXRUaHJlYWQpIHsKKyAgICBMb2Nr
ZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAgaWYgKCFsb2NrZXIu
dHJ5TG9jaygpIHx8ICFtX3Byb2Nlc3NvciB8fCAmVGhyZWFkOjpjdXJyZW50KCkgIT0gbV93b3Jr
bGV0VGhyZWFkKSB7CiAgICAgICAgIC8vIFdlJ3JlIG5vdCByZWFkeSB5ZXQgb3Igd2UgYXJlIGdl
dHRpbmcgZGVzdHJveWVkLiBJbiB0aGlzIGNhc2UsIHdlIG91dHB1dCBzaWxlbmNlLgogICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZPdXRwdXRzKCk7ICsraSkKICAgICAg
ICAgICAgIG91dHB1dChpKS0+YnVzKCktPnplcm8oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCmluZGV4IGUyMDJkN2QyNjJh
ZDA2NDdiZGE3NmZiYTUyN2YwYTVhMTYyMWE3ODAuLjhlNGMzZDYyMjAyNWU5YWNmZTE0M2Q5MjNl
ZmQxZjZjMTE2ZmZmYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcApAQCAtNTYwLDE0ICs1NjAsMTYgQEAgdm9pZCBCYXNl
QXVkaW9Db250ZXh0OjpoYW5kbGVQcmVSZW5kZXJUYXNrcyhjb25zdCBBdWRpb0lPUG9zaXRpb24m
IG91dHB1dFBvc2l0aW8KIAogICAgIC8vIEF0IHRoZSBiZWdpbm5pbmcgb2YgZXZlcnkgcmVuZGVy
IHF1YW50dW0sIHRyeSB0byB1cGRhdGUgdGhlIGludGVybmFsIHJlbmRlcmluZyBncmFwaCBzdGF0
ZSAoZnJvbSBtYWluIHRocmVhZCBjaGFuZ2VzKS4KICAgICAvLyBJdCdzIE9LIGlmIHRoZSB0cnlM
b2NrKCkgZmFpbHMsIHdlJ2xsIGp1c3QgdGFrZSBzbGlnaHRseSBsb25nZXIgdG8gcGljayB1cCB0
aGUgY2hhbmdlcy4KLSAgICBpZiAoYXV0byBsb2NrZXIgPSBMb2NrZXI8UmVjdXJzaXZlTG9jaz46
OnRyeUxvY2soZ3JhcGhMb2NrKCkpKSB7Ci0gICAgICAgIC8vIEZpeHVwIHRoZSBzdGF0ZSBvZiBh
bnkgZGlydHkgQXVkaW9TdW1taW5nSnVuY3Rpb25zIGFuZCBBdWRpb05vZGVPdXRwdXRzLgotICAg
ICAgICBoYW5kbGVEaXJ0eUF1ZGlvU3VtbWluZ0p1bmN0aW9ucygpOwotICAgICAgICBoYW5kbGVE
aXJ0eUF1ZGlvTm9kZU91dHB1dHMoKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBn
cmFwaExvY2soKSB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKKyAgICAgICAgcmV0dXJu
OwogCi0gICAgICAgIHVwZGF0ZUF1dG9tYXRpY1B1bGxOb2RlcygpOwotICAgICAgICBtX291dHB1
dFBvc2l0aW9uID0gb3V0cHV0UG9zaXRpb247Ci0gICAgfQorICAgIC8vIEZpeHVwIHRoZSBzdGF0
ZSBvZiBhbnkgZGlydHkgQXVkaW9TdW1taW5nSnVuY3Rpb25zIGFuZCBBdWRpb05vZGVPdXRwdXRz
LgorICAgIGhhbmRsZURpcnR5QXVkaW9TdW1taW5nSnVuY3Rpb25zKCk7CisgICAgaGFuZGxlRGly
dHlBdWRpb05vZGVPdXRwdXRzKCk7CisKKyAgICB1cGRhdGVBdXRvbWF0aWNQdWxsTm9kZXMoKTsK
KyAgICBtX291dHB1dFBvc2l0aW9uID0gb3V0cHV0UG9zaXRpb247CiB9CiAKIEF1ZGlvSU9Qb3Np
dGlvbiBCYXNlQXVkaW9Db250ZXh0OjpvdXRwdXRQb3NpdGlvbigpCkBAIC01ODQsOCArNTg2LDgg
QEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0OjpoYW5kbGVQb3N0UmVuZGVyVGFza3MoKQogICAgIC8v
IE11c3QgdXNlIGEgdHJ5TG9jaygpIGhlcmUgdG9vLiBEb24ndCB3b3JyeSwgdGhlIGxvY2sgd2ls
bCB2ZXJ5IHJhcmVseSBiZSBjb250ZW5kZWQgYW5kIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCBmcmVx
dWVudGx5LgogICAgIC8vIFRoZSB3b3JzdCB0aGF0IGNhbiBoYXBwZW4gaXMgdGhhdCB0aGVyZSB3
aWxsIGJlIHNvbWUgbm9kZXMgd2hpY2ggd2lsbCB0YWtlIHNsaWdodGx5IGxvbmdlciB0aGFuIHVz
dWFsIHRvIGJlIGRlbGV0ZWQgb3IgcmVtb3ZlZAogICAgIC8vIGZyb20gdGhlIHJlbmRlciBncmFw
aCAoaW4gd2hpY2ggY2FzZSB0aGV5J2xsIHJlbmRlciBzaWxlbmNlKS4KLSAgICBhdXRvIGxvY2tl
ciA9IExvY2tlcjxSZWN1cnNpdmVMb2NrPjo6dHJ5TG9jayhncmFwaExvY2soKSk7Ci0gICAgaWYg
KCFsb2NrZXIpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgZ3JhcGhMb2NrKCkgfTsK
KyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIFRh
a2UgY2FyZSBvZiBmaW5pc2hpbmcgYW55IGRlcmVmcyB3aGVyZSB0aGUgdHJ5TG9jaygpIGZhaWxl
ZCBwcmV2aW91c2x5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9Db252b2x2ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29u
dm9sdmVyTm9kZS5jcHAKaW5kZXggNTk3MWZkMDAyMjViY2FjY2MwZTUzNzNlNjcwMmRiNGNkMjll
ODUwMC4uMWJjOWYyZWNmNmU1MzFkMWMxMDQ3ZDQ1YWJkYzdjNzhkYWU3YzFmZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwCkBAIC05
Miw5ICs5Miw5IEBAIHZvaWQgQ29udm9sdmVyTm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Q
cm9jZXNzKQogICAgIEFTU0VSVChvdXRwdXRCdXMpOwogCiAgICAgLy8gU3luY2hyb25pemUgd2l0
aCBwb3NzaWJsZSBkeW5hbWljIGNoYW5nZXMgdG8gdGhlIGltcHVsc2UgcmVzcG9uc2UuCi0gICAg
YXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tl
cikgewotICAgICAgICAvLyBUb28gYmFkIC0gdHJ5SG9sZExvY2soKSBmYWlsZWQuIFdlIG11c3Qg
YmUgaW4gdGhlIG1pZGRsZSBvZiBzZXR0aW5nIGEgbmV3IGltcHVsc2UgcmVzcG9uc2UuCisgICAg
TG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNzTG9jayB9OworICAgIGlmICghbG9j
a2VyLnRyeUxvY2soKSkgeworICAgICAgICAvLyBUb28gYmFkIC0gdHJ5TG9jaygpIGZhaWxlZC4g
V2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIHNldHRpbmcgYSBuZXcgaW1wdWxzZSByZXNwb25z
ZS4KICAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1
ZGlvU291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlh
RWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAKaW5kZXggYTFhNDZhNjdlZWEyM2M1NTkyMTNhNzMw
ODg4MmNlNTA2NzRiYjI2NC4uY2RiM2E3MzdkNWE0NmMzMmMwODBkMGYyYTQwOGQ3NjEwMTdiYTk2
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1l
bnRBdWRpb1NvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcApAQCAtMTU1LDExICsxNTUsMTEgQEAg
dm9pZCBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3Moc2l6ZV90IG51bWJlck9m
RnJhbWVzKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gVXNlIHRyeUhvbGRMb2Nr
KCkgdG8gYXZvaWQgY29udGVudGlvbiBpbiB0aGUgcmVhbC10aW1lIGF1ZGlvIHRocmVhZC4KKyAg
ICAvLyBVc2UgdHJ5TG9jaygpIHRvIGF2b2lkIGNvbnRlbnRpb24gaW4gdGhlIHJlYWwtdGltZSBh
dWRpbyB0aHJlYWQuCiAgICAgLy8gSWYgd2UgZmFpbCB0byBhY3F1aXJlIHRoZSBsb2NrIHRoZW4g
dGhlIEhUTUxNZWRpYUVsZW1lbnQgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mCiAgICAgLy8gcmVj
b25maWd1cmluZyBpdHMgcGxheWJhY2sgZW5naW5lLCBzbyB3ZSBvdXRwdXQgc2lsZW5jZSBpbiB0
aGlzIGNhc2UuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsK
LSAgICBpZiAoIWxvY2tlcikgeworICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fcHJv
Y2Vzc0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpIHsKICAgICAgICAgLy8gV2Ug
ZmFpbGVkIHRvIGFjcXVpcmUgdGhlIGxvY2suCiAgICAgICAgIG91dHB1dEJ1cy0+emVybygpOwog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCmluZGV4IGM1NjYyZDYw
OWFmNjBhNmFlYmE2ZGE3MjFhMzVkMWQ1ODhhZDUxNzUuLmI4NTQyZDRlM2JmYzEyMDQzYzYyMzJk
ZDhlN2ZmYjM1M2FhOGMxYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCkBAIC0xMzks
MTYgKzEzOSwxMSBAQCB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpwcm9jZXNzKHNp
emVfdCBudW1iZXJPZkZyYW1lcykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIFVz
ZSB0cnlIb2xkTG9jaygpIHRvIGF2b2lkIGNvbnRlbnRpb24gaW4gdGhlIHJlYWwtdGltZSBhdWRp
byB0aHJlYWQuCisgICAgLy8gVXNlIHRyeUxvY2soKSB0byBhdm9pZCBjb250ZW50aW9uIGluIHRo
ZSByZWFsLXRpbWUgYXVkaW8gdGhyZWFkLgogICAgIC8vIElmIHdlIGZhaWwgdG8gYWNxdWlyZSB0
aGUgbG9jayB0aGVuIHRoZSBNZWRpYVN0cmVhbSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YKICAg
ICAvLyBhIGZvcm1hdCBjaGFuZ2UsIHNvIHdlIG91dHB1dCBzaWxlbmNlIGluIHRoaXMgY2FzZS4K
LSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwotICAgIGlmICgh
bG9ja2VyKSB7Ci0gICAgICAgIC8vIFdlIGZhaWxlZCB0byBhY3F1aXJlIHRoZSBsb2NrLgotICAg
ICAgICBvdXRwdXRCdXMtPnplcm8oKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAo
bV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzICE9IG91dHB1dEJ1cy0+bnVtYmVyT2ZDaGFubmVscygp
KSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNzTG9jayB9OworICAg
IGlmICghbG9ja2VyLnRyeUxvY2soKSB8fCBtX3NvdXJjZU51bWJlck9mQ2hhbm5lbHMgIT0gb3V0
cHV0QnVzLT5udW1iZXJPZkNoYW5uZWxzKCkpIHsKICAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCmluZGV4IGM2ZjY5ZDIzMDVjMjE1OTk2NzEzOWE4
NDc5ZmFlNWQzMTgyMjI1ODcuLmZmYTQ2Nzk2YjhlY2E3NTI3NzliMTZkMWUzYzUwM2U2ODgxZjhi
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRv
ck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRv
ck5vZGUuY3BwCkBAIC0zNDksMTAgKzM0OSwxMCBAQCB2b2lkIE9zY2lsbGF0b3JOb2RlOjpwcm9j
ZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgaWYgKGZyYW1lc1RvUHJvY2VzcyA+IG1f
cGhhc2VJbmNyZW1lbnRzLnNpemUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gVGhlIGF1
ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlIb2xkTG9j
aygpIGluc3RlYWQuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2Nr
KTsKLSAgICBpZiAoIWxvY2tlcikgewotICAgICAgICAvLyBUb28gYmFkIC0gdHJ5SG9sZExvY2so
KSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBjaGFuZ2luZyB3YXZlLXRhYmxl
cy4KKyAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28g
d2UgdXNlIHRyeUxvY2soKSBpbnN0ZWFkLgorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ss
IG1fcHJvY2Vzc0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpIHsKKyAgICAgICAg
Ly8gVG9vIGJhZCAtIHRyeUxvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBv
ZiBjaGFuZ2luZyB3YXZlLXRhYmxlcy4KICAgICAgICAgb3V0cHV0QnVzLnplcm8oKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vUGFubmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bh
bm5lck5vZGUuY3BwCmluZGV4IDdjY2YyNGQ2NzBiN2Y2ZTFlZjFhMzc3OWY5YjcwNDg2ODJmZmNl
ZDcuLjk0MWNiNjYxNDVjNzg5MjVlODA0NzhkM2E5MzQ1YTMyZTk4MGY1N2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcApAQCAtMTI5LDEwICsx
MjksMTAgQEAgdm9pZCBQYW5uZXJOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3Mp
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2Nr
IG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUhvbGRMb2NrKCkgaW5zdGVhZC4KLSAgICBhdXRv
IGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwotICAgIGlmICghbG9ja2VyKSB7
Ci0gICAgICAgIC8vIFRvbyBiYWQgLSB0cnlIb2xkTG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBp
biB0aGUgbWlkZGxlIG9mIGNoYW5naW5nIHRoZSBwYW5uZXIuCisgICAgLy8gVGhlIGF1ZGlvIHRo
cmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlMb2NrKCkgaW5zdGVh
ZC4KKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAg
aWYgKCFsb2NrZXIudHJ5TG9jaygpKSB7CisgICAgICAgIC8vIFRvbyBiYWQgLSB0cnlMb2NrKCkg
ZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgdGhlIHBhbm5lci4K
ICAgICAgICAgZGVzdGluYXRpb24tPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29y
Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nv
ck5vZGUuY3BwCmluZGV4IDIyZTk3ZThhYTI1ZWFjMmY3MDhlMjNmNzZhODliMjhkOTMwMzAxMzAu
LjcyYmVhZGY0ZDcwMDQyMGFhNDZjNjVmZGQyNzhiZDJkZDEwMWU2ZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNw
cApAQCAtMTU4LDggKzE1OCw4IEBAIHZvaWQgU2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJvY2Vzcyhz
aXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgIHVuc2lnbmVkIGJ1ZmZlckluZGV4ID0gdGhpcy0+
YnVmZmVySW5kZXgoKTsKICAgICBBU1NFUlQoYnVmZmVySW5kZXggPCBidWZmZXJDb3VudCk7CiAK
LSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fYnVmZmVyTG9ja3NbYnVmZmVySW5kZXhd
KTsKLSAgICBpZiAoIWxvY2tlcikgeworICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1f
YnVmZmVyTG9ja3NbYnVmZmVySW5kZXhdIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKSB7
CiAgICAgICAgIC8vIFdlJ3JlIGxhdGUgaW4gaGFuZGxpbmcgdGhlIHByZXZpb3VzIHJlcXVlc3Qu
IFRoZSBtYWluIHRocmVhZCBtdXN0IGJlCiAgICAgICAgIC8vIHZlcnkgYnVzeS4gVGhlIGJlc3Qg
d2UgY2FuIGRvIGlzIGNsZWFyIG91dCB0aGUgYnVmZmVyIG91cnNlbGYgaGVyZS4KICAgICAgICAg
b3V0cHV0QnVzLT56ZXJvKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcAppbmRleCAxMjA4ODUwODA4OTAzNjFkNGM0
MGFhNmFjYWI5NTRiYTcwMGI1NzI5Li4zOGQ3N2RiNTViNjFmYjUwMDJkY2RmYTI5ZDFiMzJjZmIw
ZDU2ZDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVT
aGFwZXJQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
V2F2ZVNoYXBlclByb2Nlc3Nvci5jcHAKQEAgLTgzLDEwICs4MywxMCBAQCB2b2lkIFdhdmVTaGFw
ZXJQcm9jZXNzb3I6OnByb2Nlc3MoY29uc3QgQXVkaW9CdXMqIHNvdXJjZSwgQXVkaW9CdXMqIGRl
c3RpbmF0aW9uLAogICAgIGlmICghY2hhbm5lbENvdW50TWF0Y2hlcykKICAgICAgICAgcmV0dXJu
OwogCi0gICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNv
IHdlIHVzZSB0cnlIb2xkTG9jaygpIGluc3RlYWQuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xk
TG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgewotICAgICAgICAvLyBUb28g
YmFkIC0gdHJ5SG9sZExvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBh
IHNldEN1cnZlKCkgY2FsbC4KKyAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9u
IHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUxvY2soKSBpbnN0ZWFkLgorICAgIExvY2tlciBsb2Nr
ZXIgeyBEZWZlckxvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2Nr
KCkpIHsKKyAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUxvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUg
aW4gdGhlIG1pZGRsZSBvZiBhIHNldEN1cnZlKCkgY2FsbC4KICAgICAgICAgZGVzdGluYXRpb24t
Pnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggZWIyZDNhYThk
NjM3ZTRkNGJhNjNhMTM4MTgwYTA3ZGIyOWM0MDZmNS4uNzE3MWQ4MzgwMjU5MWRmMGQzZGEwOTA4
OWFiNDVmNDNiZDA0OGZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI2MzMsNyArMjYzMyw3IEBAIHZvaWQg
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlVmVydGV4QXJyYXkoV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdCogYXJyYXlPYmplCiAKICAgICBpZiAoIWFycmF5T2JqZWN0LT5pc0RlZmF1bHRPYmpl
Y3QoKSAmJiBhcnJheU9iamVjdCA9PSBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QpIHsKICAgICAg
ICAgLy8gYmluZFZlcnRleEFycmF5IGdyYWJzIHRoZSBsb2NrIGludGVybmFsbHkuCi0gICAgICAg
IGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBsb2NrZXIudW5sb2NrKCk7CiAgICAgICAg
IGJpbmRWZXJ0ZXhBcnJheShudWxscHRyKTsgLy8gVGhlIGRlZmF1bHQgVkFPIHdhcyByZW1vdmVk
IGluIE9wZW5HTCAzLjMgYnV0IG5vdCBmcm9tIFdlYkdMIDI7IGJpbmQgdGhlIGRlZmF1bHQgZm9y
IFdlYkdMIHRvIHVzZS4KICAgICAgICAgbG9ja2VyID0gTG9ja2VyIHsgb2JqZWN0R3JhcGhMb2Nr
KCkgfTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb0Rlc3RpbmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rl
c3RpbmF0aW9uLmgKaW5kZXggZWI1NGYwZDUxZDc4NjBiOWY2MDQwZDg5MzU4ODQ0ODgyYTY1YmI2
Mi4uZmY0NTYxN2JmMzhkMmYzYTJkNjZkNGRjYTdiM2Q2MDRjMzQyNjY3MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaApAQCAtOTYsMTQg
Kzk2LDEzIEBAIGlubGluZSB2b2lkIEF1ZGlvRGVzdGluYXRpb246OmNsZWFyQ2FsbGJhY2soKQog
CiBpbmxpbmUgdm9pZCBBdWRpb0Rlc3RpbmF0aW9uOjpjYWxsUmVuZGVyQ2FsbGJhY2soQXVkaW9C
dXMqIHNvdXJjZUJ1cywgQXVkaW9CdXMqIGRlc3RpbmF0aW9uQnVzLCBzaXplX3QgZnJhbWVzVG9Q
cm9jZXNzLCBjb25zdCBBdWRpb0lPUG9zaXRpb24mIG91dHB1dFBvc2l0aW9uKQogewotICAgIGlm
IChtX2NhbGxiYWNrTG9jay50cnlMb2NrKCkpIHsKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFk
b3B0TG9ja1RhZyB7IH0sIG1fY2FsbGJhY2tMb2NrIH07Ci0gICAgICAgIGlmIChtX2NhbGxiYWNr
KSB7Ci0gICAgICAgICAgICBtX2NhbGxiYWNrLT5yZW5kZXIoc291cmNlQnVzLCBkZXN0aW5hdGlv
bkJ1cywgZnJhbWVzVG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlvbik7Ci0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIH0KKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX2NhbGxiYWNr
TG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgeworICAgICAgICBkZXN0aW5hdGlv
bkJ1cy0+emVybygpOworICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGRlc3RpbmF0aW9uQnVz
LT56ZXJvKCk7CisgICAgaWYgKG1fY2FsbGJhY2spCisgICAgICAgIG1fY2FsbGJhY2stPnJlbmRl
cihzb3VyY2VCdXMsIGRlc3RpbmF0aW9uQnVzLCBmcmFtZXNUb1Byb2Nlc3MsIG91dHB1dFBvc2l0
aW9uKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKaW5kZXggMjdiMjk4MmRjM2ZkOTE2
ODVkMzE3YTdlZDFhOWMxZTZlZTQ3YjI2Zi4uZmQ4ODU2ZmI2Mjc5ZDA0YjM3NjYwM2ExMmRjZTE1
NDdhYzRjNDJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2
ZXJiQ29udm9sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZl
cmJDb252b2x2ZXIuY3BwCkBAIC0yMDIsOCArMjAyLDggQEAgdm9pZCBSZXZlcmJDb252b2x2ZXI6
OnByb2Nlc3MoY29uc3QgQXVkaW9DaGFubmVsKiBzb3VyY2VDaGFubmVsLCBBdWRpb0NoYW5uZWwq
IGQKICAgICAvLyBzaWduYWwgZnJvbSB0aW1lIHRvIHRpbWUsIHNpbmNlIHdlJ2xsIGdldCB0byBp
dCB0aGUgbmV4dCB0aW1lIHdlJ3JlIGNhbGxlZC4gIFdlJ3JlIGNhbGxlZCByZXBlYXRlZGx5CiAg
ICAgLy8gYW5kIGZyZXF1ZW50bHkgKGFyb3VuZCBldmVyeSAzbXMpLiAgVGhlIGJhY2tncm91bmQg
dGhyZWFkIGlzIHByb2Nlc3Npbmcgd2VsbCBpbnRvIHRoZSBmdXR1cmUgYW5kIGhhcyBhIGNvbnNp
ZGVyYWJsZSBhbW91bnQgb2YgCiAgICAgLy8gbGVld2F5IGhlcmUuLi4KLSAgICBhdXRvIGxvY2tl
ciA9IHRyeUhvbGRMb2NrKG1fYmFja2dyb3VuZFRocmVhZExvY2spOwotICAgIGlmICghbG9ja2Vy
KQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fYmFja2dyb3VuZFRocmVhZExvY2sg
fTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1f
bW9yZUlucHV0QnVmZmVyZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKaW5kZXgg
MzkyYzM2MTQwNGZjMmM5NTBlYmI5Mzg4OWE2MjljYjVhMzcxZTQyYS4uNTU3NjdjMTk3MzY1ZDI5
YTcxNjc2MGI0ZTcxOTQ2MWEyNWVjNzA3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCkBA
IC0yMTksMTAgKzIxOSwxMCBAQCBPU1N0YXR1cyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJlbmRl
cihkb3VibGUgc2FtcGxlVGltZSwgdWludDY0X3QgaG9zdFRpbWUsIFVJbgogICAgIH0KIAogICAg
IC8vIFdoZW4gdGhlcmUgaXMgYSBBdWRpb1dvcmtsZXQsIHdlIGRvIHJlbmRlcmluZyBvbiB0aGUg
QXVkaW9Xb3JrbGV0VGhyZWFkLgotICAgIGlmICghbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9j
ay50cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9kaXNwYXRjaFRv
UmVuZGVyVGhyZWFkTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAg
cmV0dXJuIC0xOwogCi0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fZGlz
cGF0Y2hUb1JlbmRlclRocmVhZExvY2sgfTsKICAgICBpZiAoIW1fZGlzcGF0Y2hUb1JlbmRlclRo
cmVhZCkKICAgICAgICAgcmVuZGVyT25SZW5kZXJpbmdUaGVhZElmUGxheWluZyhmcmFtZXNUb1Jl
bmRlcik7CiAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJl
YW1lci5jcHAKaW5kZXggZjc3NWEzMmZkNDc4MDJlZTUzODg1NzE2M2VkNzc5YTEyMTM4Y2Q0Ny4u
M2MxMGQ4M2I0OGNkYjFhMmMxMDRkNDM3NjUyZDNlYWIwZjNiYTQzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvU291cmNlUHJvdmlkZXJH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1l
ci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNwcApAQCAtMTU5LDEwICsxNTksMTAgQEAg
dm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyOjpjb25maWd1cmVBdWRpb0JpbihHc3RF
bGVtZW50KiBhdWRpb0JpbiwgR3N0RWwKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1l
cjo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7
CiAgICAgR1NUX1RSQUNFKCJGZXRjaGluZyBidWZmZXJzIGZyb20gYWRhcHRlcnMiKTsKLSAgICBp
ZiAoIW1fYWRhcHRlckxvY2sudHJ5TG9jaygpKQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxv
Y2ssIG1fYWRhcHRlckxvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2FkYXB0
ZXJMb2NrIH07CiAgICAgZm9yIChhdXRvJiBpdCA6IG1fYWRhcHRlcnMpCiAgICAgICAgIGNvcHlH
U3RyZWFtZXJCdWZmZXJzVG9BdWRpb0NoYW5uZWwoaXQudmFsdWUuZ2V0KCksIGJ1cywgaXQua2V5
IC0gMSwgZnJhbWVzVG9Qcm9jZXNzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9T
b3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDZlZjgzNTI4M2ZmMzUzYThmZTEyMjdiMDcwYTFkZGQ1
NmQ0YTNmOGYuLmM3ZTc2ODYxOWI0N2UzMDkxM2E4Y2Q2ODk0ZDQ4NjkzNjM3ZTI5ZjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJB
dWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcApAQCAtNDA4LDEx
ICs0MDgsMTAgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNSZW5kZXJJdGVyYXRpb24o
V2ViS2l0V2ViQXVkaW9TcmMqIHNyYykKICAgICAgICAgcHJpdi0+ZGlzcGF0Y2hEb25lID0gZmFs
c2U7CiAgICAgfQogCi0gICAgaWYgKCFwcml2LT5kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jay50
cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgcHJpdi0+ZGlzcGF0Y2hU
b1JlbmRlclRocmVhZExvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBwcml2LT5k
aXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jayB9OwotCiAgICAgaWYgKCFwcml2LT5kaXNwYXRjaFRv
UmVuZGVyVGhyZWFkRnVuY3Rpb24pCiAgICAgICAgIHdlYktpdFdlYkF1ZGlvU3JjUmVuZGVyQW5k
UHVzaEZyYW1lcyhHUmVmUHRyPEdzdEVsZW1lbnQ+KEdTVF9FTEVNRU5UX0NBU1Qoc3JjKSksIFdU
Rk1vdmUoKmNoYW5uZWxCdWZmZXJMaXN0KSk7CiAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCmluZGV4IGMwNjRjY2U0Y2E4NjJi
ZDQ2ODkyODQxZmZhNWJjMTlmYjdmMjEzZGEuLjI4NDhiYWIxMDg5ZGJlZTExNDFmZDFlNjk1NDAx
ZmVlYTQyN2E4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1NoYWRvd0JsdXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1No
YWRvd0JsdXIuY3BwCkBAIC0xMzUsNyArMTM1LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHB1cmdl
VGltZXJGaXJlZCgpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAg
ICAgICBpZiAoYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhsb2NrKCkpKQorICAgICAgICBMb2Nr
ZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBsb2NrKCkgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlM
b2NrKCkpCiAgICAgICAgICAgICBjbGVhclNjcmF0Y2hCdWZmZXIoKTsKICAgICB9CiAKQEAgLTY5
NCw4ICs2OTUsOCBAQCB2b2lkIFNoYWRvd0JsdXI6OmRyYXdSZWN0U2hhZG93V2l0aFRpbGluZyhj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29ucwogewogICAgIFJlZlB0cjxJbWFn
ZUJ1ZmZlcj4gbGF5ZXJJbWFnZUJ1ZmZlcjsKICNpZiBVU0UoQ0cpCi0gICAgYXV0byBsb2NrZXIg
PSB0cnlIb2xkTG9jayhTY3JhdGNoQnVmZmVyOjpsb2NrKCkpOwotICAgIGlmIChsb2NrZXIpIHsK
KyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBTY3JhdGNoQnVmZmVyOjpsb2NrKCkgfTsK
KyAgICBpZiAobG9ja2VyLnRyeUxvY2soKSkgewogICAgICAgICBsYXllckltYWdlQnVmZmVyID0g
U2NyYXRjaEJ1ZmZlcjo6c2luZ2xldG9uKCkuZ2V0U2NyYXRjaEJ1ZmZlcih0ZW1wbGF0ZVNpemUp
OwogICAgICAgICBpZiAoIWxheWVySW1hZ2VCdWZmZXIpCiAgICAgICAgICAgICByZXR1cm47CkBA
IC03NTQsOCArNzU1LDggQEAgdm9pZCBTaGFkb3dCbHVyOjpkcmF3SW5zZXRTaGFkb3dXaXRoVGls
aW5nKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb24KIHsKICAgICBSZWZQdHI8
SW1hZ2VCdWZmZXI+IGxheWVySW1hZ2VCdWZmZXI7CiAjaWYgVVNFKENHKQotICAgIGF1dG8gbG9j
a2VyID0gdHJ5SG9sZExvY2soU2NyYXRjaEJ1ZmZlcjo6bG9jaygpKTsKLSAgICBpZiAobG9ja2Vy
KSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgU2NyYXRjaEJ1ZmZlcjo6bG9jaygp
IH07CisgICAgaWYgKGxvY2tlci50cnlMb2NrKCkpIHsKICAgICAgICAgbGF5ZXJJbWFnZUJ1ZmZl
ciA9IFNjcmF0Y2hCdWZmZXI6OnNpbmdsZXRvbigpLmdldFNjcmF0Y2hCdWZmZXIodGVtcGxhdGVT
aXplKTsKICAgICAgICAgaWYgKCFsYXllckltYWdlQnVmZmVyKQogICAgICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCmlu
ZGV4IDQ3OTc2ODNiODBiYjQ5MDVhN2E4MTY4ODdhNDM1NGQxMjk4ZWNkNDEuLjRiY2YzYTEwYzNi
MmRlZGM3MjkyMTgxMjk1MGQ4OGYwMjkyYjgwNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTk0LDcgKzk0LDcgQEAgQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM6On5BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQygpCiAKIHZvaWQg
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dChBdWRpb0J1cyogYnVzLCBz
aXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewotICAgIC8vIFByb3RlY3QgYWNjZXNzIHRvIG1fcmlu
Z0J1ZmZlciBieSB1c2luZyB0cnlIb2xkTG9jaygpLiBJZiB3ZSBmYWlsZWQKKyAgICAvLyBQcm90
ZWN0IGFjY2VzcyB0byBtX3JpbmdCdWZmZXIgYnkgdXNpbmcgdHJ5TG9jaygpLiBJZiB3ZSBmYWls
ZWQKICAgICAvLyB0byBhcXVpcmUsIGEgcmUtY29uZmlndXJlIGlzIHVuZGVyd2F5LCBhbmQgbV9y
aW5nQnVmZmVyIGlzIHVuc2FmZSB0byBhY2Nlc3MuCiAgICAgLy8gRW1pdCBzaWxlbmNlLgogICAg
IGlmICghbV90YXBTdG9yYWdlKSB7CkBAIC0xMDIsOCArMTAyLDggQEAgdm9pZCBBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFt
ZXNUb1Byb2MKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gbG9ja2VyID0gdHJ5
SG9sZExvY2sobV90YXBTdG9yYWdlLT5sb2NrKTsKLSAgICBpZiAoIWxvY2tlciB8fCAhbV9yaW5n
QnVmZmVyKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV90YXBTdG9yYWdlLT5s
b2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpIHx8ICFtX3JpbmdCdWZmZXIpIHsKICAg
ICAgICAgYnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMubW0KaW5kZXggODEzOTk2Yzc2YzY0MWI3Y2FlMDQ2ZjU5NzFlYzc0N2NmOTFjZTlk
Ny4uODFlNzU3M2VkNDIxNWRjZDdlNDQwYTFhYzhmMzViZTVjMTJhNWIxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbQpAQCAtMjU0LDggKzI1NCw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnF1ZXVlVmlkZW9TYW1wbGUoTWVkaWFTYW1wbGUmIHNh
bXBsCiAgICAgaWYgKCFtX3Zpc2libGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gbG9j
a2VyID0gdHJ5SG9sZExvY2sobV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJMb2NrKTsKLSAgICBp
ZiAoIWxvY2tlcikKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3NhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllckxvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIGlmICghbV9jYW5FbnF1ZXVlRGlzcGxheUxheWVyIHx8ICFtX3NhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllciB8fCBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+ZGlkRmFp
bCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAppbmRleCAxMWJlYTEyYjY2ZGM1
NDYyNWE4MjlmOTA3NGE5MmMwMzc0Y2UyODk1Li4xNWI1NzI4ZjdmZGJhODExNzFmMjdjYzg5NjI4
OTFlMTg3N2JiNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcApAQCAtOTks
NyArOTksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAg
YXV0byBzYW1wbGUgPSBXVEZNb3ZlKG1fc2FtcGxlKTsKLSAgICAgICAgbG9ja2VyLnVubG9ja0Vh
cmx5KCk7CisgICAgICAgIGxvY2tlci51bmxvY2soKTsKICAgICAgICAgaWYgKExJS0VMWShHU1Rf
SVNfU0FNUExFKHNhbXBsZS5nZXQoKSkpKQogICAgICAgICAgICAgd2Via2l0VmlkZW9TaW5rUmVw
YWludFJlcXVlc3RlZChzaW5rLCBzYW1wbGUuZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5
cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVh
bWVyLmNwcAppbmRleCAzMjAxNzRkNWJmZTg3NmRiOGMxNDIzNTlhOGUxYTAxYWE4NmMwZmRiLi5l
OGU3MjlmODMwMWE4NzY2ZTY0YmY2MzUyZjAyMDZhN2E2M2VmMGE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVu
Y3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRv
ckdTdHJlYW1lci5jcHAKQEAgLTM5Nyw3ICszOTcsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gc2lua0V2
ZW50SGFuZGxlcihHc3RCYXNlVHJhbnNmb3JtKiB0cmFucywgR3N0RXZlbnQqIGV2ZW50KQogICAg
ICAgICAgICAgYm9vbCBpc0NkbVByb3h5QXR0YWNoZWQgPSBwcml2LT5jZG1Qcm94eTsKICAgICAg
ICAgICAgIHByaXYtPmlzRmx1c2hpbmcgPSB0cnVlOwogICAgICAgICAgICAgaWYgKGlzQ2RtUHJv
eHlBdHRhY2hlZCkgewotICAgICAgICAgICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOworICAg
ICAgICAgICAgICAgIGxvY2tlci51bmxvY2soKTsKICAgICAgICAgICAgICAgICBwcml2LT5jZG1Q
cm94eS0+YWJvcnRXYWl0aW5nRm9yS2V5KCk7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgICAgICBwcml2LT5jb25kaXRpb24ubm90aWZ5T25lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNl
R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDZkMDNkZjk2YWQ0Mzc5
MGQ1YWYzZDJiNzJkNzcwMGQxNmZmMmE0ZmEuLmQ0ZGUxZDllMWRiZDI5MmE2NDliMWE5OWUzNDRk
OTI2ODJmODQyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvV2ViS2l0TWVkaWFTb3Vy
Y2VHU3RyZWFtZXIuY3BwCkBAIC01MDksNyArNTA5LDcgQEAgc3RhdGljIHZvaWQgd2ViS2l0TWVk
aWFTcmNMb29wKHZvaWQqIHVzZXJEYXRhKQogICAgICAgICB9CiAKICAgICAgICAgLy8gUHVzaCB0
aGUgYnVmZmVyIHdpdGhvdXQgdGhlIHN0cmVhbWluZ01lbWJlcnMgbG9jayBzbyB0aGF0IGZsdXNo
ZXMgY2FuIGhhcHBlbiB3aGlsZSBpdCB0cmF2ZWxzIGRvd25zdHJlYW0uCi0gICAgICAgIHN0cmVh
bWluZ01lbWJlcnMubG9ja0hvbGRlcigpLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIHN0cmVhbWlu
Z01lbWJlcnMubG9ja0hvbGRlcigpLnVubG9jaygpOwogCiAgICAgICAgIEFTU0VSVChHU1RfQlVG
RkVSX1BUU19JU19WQUxJRChidWZmZXIuZ2V0KCkpKTsKICAgICAgICAgR1NUX1RSQUNFX09CSkVD
VChwYWQsICJQdXNoaW5nIGJ1ZmZlciBkb3duc3RyZWFtOiAlIiBHU1RfUFRSX0ZPUk1BVCwgYnVm
ZmVyLmdldCgpKTsKQEAgLTUyNSw3ICs1MjUsNyBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRNZWRpYVNy
Y0xvb3Aodm9pZCogdXNlckRhdGEpCiAgICAgICAgIC8vIEVPUyBldmVudHMgYW5kIG90aGVyIGVu
cXVldWVkIGV2ZW50cyBhcmUgYWxzbyBzZW50IHVubG9ja2VkIHNvIHRoZXkgY2FuIHJlYWN0IHRv
IGZsdXNoZXMgaWYgbmVjZXNzYXJ5LgogICAgICAgICBHUmVmUHRyPEdzdEV2ZW50PiBldmVudCA9
IEdSZWZQdHI8R3N0RXZlbnQ+KEdTVF9FVkVOVChvYmplY3QubGVha1JlZigpKSk7CiAKLSAgICAg
ICAgc3RyZWFtaW5nTWVtYmVycy5sb2NrSG9sZGVyKCkudW5sb2NrRWFybHkoKTsKKyAgICAgICAg
c3RyZWFtaW5nTWVtYmVycy5sb2NrSG9sZGVyKCkudW5sb2NrKCk7CiAgICAgICAgIEdTVF9ERUJV
R19PQkpFQ1QocGFkLCAiUHVzaGluZyBldmVudCBkb3duc3RyZWFtOiAlIiBHU1RfUFRSX0ZPUk1B
VCwgZXZlbnQuZ2V0KCkpOwogICAgICAgICBib29sIGV2ZW50SGFuZGxlZCA9IGdzdF9wYWRfcHVz
aF9ldmVudChwYWQsIEdSZWZQdHI8R3N0RXZlbnQ+KGV2ZW50KS5sZWFrUmVmKCkpOwogICAgICAg
ICBpZiAoIWV2ZW50SGFuZGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCmluZGV4IDVkY2VhMWE0MDg2ZTIwZTE1N2ViYmNkNzE5
YmMzNjYwODkwNGI2MGMuLmU2ZjJlNmUyZGY5NGY4NGYxZGMxMDQ4ZDNkNTliZTQ2ZmEyN2QyOGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJV
bml0LmNwcApAQCAtMTQxLDEwICsxNDEsMTAgQEAgdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlclVuaXQ6OnJldHJpZXZlRm9ybWF0RGVzY3JpcHRpb24oQ29tcGxldGlvbkhhbmQKIAog
dm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnVwZGF0ZVJlbmRlclNvdXJj
ZXNJZk5lY2Vzc2FyeSgpCiB7Ci0gICAgaWYgKCFtX3BlbmRpbmdSZW5kZXJTb3VyY2VzTG9jay50
cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wZW5kaW5nUmVuZGVy
U291cmNlc0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX3BlbmRpbmdSZW5k
ZXJTb3VyY2VzTG9jayB9OwogICAgIGlmICghbV9oYXNQZW5kaW5nUmVuZGVyU291cmNlcykKICAg
ICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5t
bQppbmRleCA1NzZmNDRlOTJjNThiOTNjMGI0MGQ2NjQ5OTgwYmM3ZTkwYTVlYWZiLi4zNDYxNDFi
MDFjM2QxZDc4Y2E5ZmY1NGNhYjY3Mjk5N2ZhOTEyNTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQ29jb2EubW0KQEAgLTY1LDggKzY1LDggQEAgdm9pZCBXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQ29jb2E6OnNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBj
bGllbnQpCiAKIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hOjpwcm92aWRlSW5wdXQo
QXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsKLSAgICBhdXRvIGxvY2tl
ciA9IHRyeUhvbGRMb2NrKG1fbG9jayk7Ci0gICAgaWYgKCFsb2NrZXIgfHwgIW1fZGF0YVNvdXJj
ZSB8fCAhbV9hdWRpb0J1ZmZlckxpc3QpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2Nr
LCBtX2xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkgfHwgIW1fZGF0YVNvdXJjZSB8
fCAhbV9hdWRpb0J1ZmZlckxpc3QpIHsKICAgICAgICAgYnVzLT56ZXJvKCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9y
V29ya2xldFRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xl
dFRocmVhZC5jcHAKaW5kZXggNDc3ZDk2NzJjNzEyYjQ2ZmM0ZWJkN2EyODk3ZTc3ZWIxNTgwODQ4
NC4uY2Y3NDA2Nzk0ODQ5NWZhMDhkYmQ3MDQyNWY4NzU4MDMxYjUwNGYwMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0VGhyZWFkLmNwcApAQCAtMjA3LDgg
KzIwNyw4IEBAIHZvaWQgV29ya2VyT3JXb3JrbGV0VGhyZWFkOjpzdG9wKEZ1bmN0aW9uPHZvaWQo
KT4mJiBzdG9wcGVkQ2FsbGJhY2spCiAgICAgLy8gTXV0ZXggcHJvdGVjdGlvbiBpcyBuZWNlc3Nh
cnkgdG8gZW5zdXJlIHRoYXQgbV93b3JrZXJHbG9iYWxTY29wZSBpc24ndCBjaGFuZ2VkIGJ5CiAg
ICAgLy8gV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWQoKSB3aGlsZSB3ZSdyZSBhY2Nlc3Npbmcg
aXQuIE5vdGUgYWxzbyB0aGF0IHN0b3AoKSBjYW4KICAgICAvLyBiZSBjYWxsZWQgYmVmb3JlIG1f
d29ya2VyR2xvYmFsU2NvcGUgaXMgZnVsbHkgY3JlYXRlZC4KLSAgICBhdXRvIGxvY2tlciA9IHRy
eUhvbGRMb2NrKG1fdGhyZWFkQ3JlYXRpb25BbmRHbG9iYWxTY29wZUxvY2spOwotICAgIGlmICgh
bG9ja2VyKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV90aHJlYWRDcmVhdGlv
bkFuZEdsb2JhbFNjb3BlTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgewogICAg
ICAgICAvLyBUaGUgdGhyZWFkIGlzIHN0aWxsIHN0YXJ0aW5nLCBzcGluIHRoZSBydW5sb29wIGFu
ZCB0cnkgYWdhaW4gdG8gYXZvaWQgZGVhZGxvY2tzIGlmIHRoZSB3b3JrZXIgdGhyZWFkCiAgICAg
ICAgIC8vIG5lZWRzIHRvIGludGVyYWN0IHdpdGggdGhlIG1haW4gdGhyZWFkIGR1cmluZyBzdGFy
dHVwLgogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBzdG9wcGVkQ2FsbGJhY2sgPSBX
VEZNb3ZlKHN0b3BwZWRDYWxsYmFjayldKCkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcAppbmRleCBkNzRhNDczZTIwYzkw
MThmZTM2ZDVhYjZkZmQ4YWE1MmI1YTY5YTUxLi45ODM4YzBjMTFjYjZhNTRlMTkzNWY0MGQxMGJk
Yjc4MjcxMTBjZDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9JY29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L0ljb25EYXRhYmFzZS5jcHAKQEAgLTU3Miw3ICs1NzIsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6
bG9hZEljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCwgQWxsb3dEYXRhYmFzZVdy
aXRlCiAgICAgICAgICAgICAgICAgYXV0byBpY29uID0gaXQtPnZhbHVlLmZpcnN0OwogICAgICAg
ICAgICAgICAgIGl0LT52YWx1ZS5zZWNvbmQgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAgICAg
ICAgICAgICAgICBzdGFydENsZWFyTG9hZGVkSWNvbnNUaW1lcigpOwotICAgICAgICAgICAgICAg
IGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICAgICAgICAgIGxvY2tlci51bmxvY2soKTsK
ICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGljb24pKTsKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CkBAIC01OTYsNyArNTk2LDcgQEAgdm9p
ZCBJY29uRGF0YWJhc2U6OmxvYWRJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkws
IEFsbG93RGF0YWJhc2VXcml0ZQogCiAgICAgICAgICAgICBhdXRvIGljb24gPSBhZGRSZXN1bHQu
aXRlcmF0b3ItPnZhbHVlLmZpcnN0OwogICAgICAgICAgICAgc3RhcnRDbGVhckxvYWRlZEljb25z
VGltZXIoKTsKLSAgICAgICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICAgICAg
bG9ja2VyLnVubG9jaygpOwogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShp
Y29uKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKaW5kZXggZjQ0YzQxODky
YjM4ZjViYWQzMTk2ZDY5YTFjMTMyNGNlOTNiNWVjMy4uNDhhMzY2MTY5YjNmZWE2M2RhNDI4NzEz
NjAxZTZiZGYzNmZkNWQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0zMjQsMTEgKzMyNCwxMCBAQCB2
b2lkIExpYldlYlJUQ0NvZGVjczo6Y29tcGxldGVkRGVjb2RpbmcoUlRDRGVjb2RlcklkZW50aWZp
ZXIgZGVjb2RlcklkZW50aWZpZXIsCiAgICAgaWYgKCFkZWNvZGVyKQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZWRJbWFnZUNhbGxiYWNrTG9jay50cnlMb2NrKCkp
CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgZGVjb2Rlci0+ZGVjb2RlZEltYWdlQ2Fs
bGJhY2tMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgZGVjb2Rlci0+ZGVjb2Rl
ZEltYWdlQ2FsbGJhY2tMb2NrIH07Ci0KICAgICBpZiAoIWRlY29kZXItPmRlY29kZWRJbWFnZUNh
bGxiYWNrKQogICAgICAgICByZXR1cm47CiAKQEAgLTQ5MiwxMSArNDkxLDEwIEBAIHZvaWQgTGli
V2ViUlRDQ29kZWNzOjpjb21wbGV0ZWRFbmNvZGluZyhSVENFbmNvZGVySWRlbnRpZmllciBpZGVu
dGlmaWVyLCBJUEM6OkRhCiAgICAgaWYgKCFlbmNvZGVyKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpZiAoIWVuY29kZXItPmVuY29kZWRJbWFnZUNhbGxiYWNrTG9jay50cnlMb2NrKCkpCisgICAg
TG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgZW5jb2Rlci0+ZW5jb2RlZEltYWdlQ2FsbGJhY2tM
b2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgZW5jb2Rlci0+ZW5jb2RlZEltYWdl
Q2FsbGJhY2tMb2NrIH07Ci0KICAgICBpZiAoIWVuY29kZXItPmVuY29kZWRJbWFnZUNhbGxiYWNr
KQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCBlYWIwODNmMWUwN2Q0NWU4OGFkYjE0MDFkYmI0YzIxNWI1Mzc4NTRh
Li4yMzUzNTc5N2RmNTdkM2FhMTM5MTc3MGVkYmMyZmQxNjg2MzIwOWFhIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9w
IFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUgd2l0aCBDbGFuZyBUaHJl
YWQgU2FmZXR5IEFuYWx5c2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjYxNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUg
d2l0aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBJbnN0ZWFkLCB1c2UgdGhlIGZvbGxv
d2luZyBwYXR0ZXJuOgorICAgICAgICBgYGAKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IERlZmVy
TG9jaywgbV9sb2NrIH07CisgICAgICAgIGlmIChsb2NrZXIudHJ5TG9jaygpKQorICAgICAgICBg
YGAKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRMb2NrVGVzdC5j
cHA6CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXBsYWNlIExvY2tIb2xkZXIgd2l0aCBMb2NrZXIgaW4gbG9jYWwgdmFyaWFibGVzCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkTG9ja1Rlc3Qu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tlZExvY2tUZXN0LmNwcApp
bmRleCBkODJlZTFhMmU1YmRlMGRjYWJmMzVjZTlkYzczMTEyMTEwMjI2MjRhLi5mYmQwMmIzYzM0
YjA0YzU2Y2FlZmMzNGU0OGE5Nzc1NmZiY2E5NjE2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkTG9ja1Rlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRMb2NrVGVzdC5jcHAKQEAgLTM4LDkgKzM4LDkgQEAgcHVi
bGljOgogICAgIH0KICAgICB2b2lkIG1heWJlU2V0T3RoZXJWYWx1ZShpbnQgdmFsdWUpCiAgICAg
ewotICAgICAgICBpZiAoIW1fb3RoZXJMb2NrLnRyeUxvY2soKSkKKyAgICAgICAgTG9ja2VyIGhv
bGRMb2NrIHsgRGVmZXJMb2NrLCBtX290aGVyTG9jayB9OworICAgICAgICBpZiAoIWhvbGRMb2Nr
LnRyeUxvY2soKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgTG9ja2VyIGhvbGRMb2Nr
IHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9vdGhlckxvY2sgfTsKICAgICAgICAgbV9vdGhlclZhbHVl
ID0gdmFsdWU7CiAgICAgfQogICAgIC8vIFRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gbWFu
dWFsbHkgY2hlY2sgdGhhdCBjb21waWxlIGZhaWxzLgo=
</data>
<flag name="commit-queue"
          id="450621"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429432</attachid>
            <date>2021-05-22 16:00:36 -0700</date>
            <delta_ts>2021-05-22 16:22:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226145-20210522160035.patch</filename>
            <type>text/plain</type>
            <size>58130</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZjY3MTE3MDhhODUyMGY5MDcyMjIzNDExNThhODk2NDgzZjU5NmE2Li4yYzM5YzIxZDAzMWNkMWVi
ZGJkMDk5YThhNWIwZmFhMTUwOGI2Nzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3
aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlz
IGluY29tcGF0aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuIEluc3RlYWQs
IHVzZSB0aGUgZm9sbG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgRGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlMb2Nr
KCkpCisgICAgICAgIGBgYAorCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpT
Qzo6SGVhcDo6cmVzdW1lVGhlUGVyaXBoZXJ5KToKKyAgICAgICAgKiBydW50aW1lL1ZNVHJhcHMu
Y3BwOgorICAgICAgICAoSlNDOjpWTVRyYXBzOjp0cnlJbnN0YWxsVHJhcEJyZWFrcG9pbnRzKToK
KyAgICAgICAgKiB0b29scy9WTUluc3BlY3Rvci5jcHA6CisgICAgICAgIChKU0M6OlZNSW5zcGVj
dG9yOjpsb2NrKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlcGxhY2UgTG9ja0hvbGRlciB3aXRoIExvY2tlciBpbiBsb2NhbCB2YXJp
YWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKaW5kZXggYjcwYTNmM2U4MTM3MjcyNzA1YTA0YmVkMjM5NmNlMGZjOWViZjc0Yi4uYjdm
ZjcyZTA4OTA3MjYyNDc4MzA2ODVkYzFhZTkyNTk4NzZiMjczNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBA
QAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3aXRoIENsYW5n
IFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0
aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuIEluc3RlYWQsIHVzZSB0aGUg
Zm9sbG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
RGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlMb2NrKCkpCisgICAg
ICAgIGBgYAorCisgICAgICAgICogd3RmL0NoZWNrZWRMb2NrLmg6CisgICAgICAgICogd3RmL0xv
Y2tlci5oOgorICAgICAgICAoV1RGOjpMb2NrZXI6OkxvY2tlcik6CisgICAgICAgIChXVEY6Okxv
Y2tlcjo6fkxvY2tlcik6CisgICAgICAgIChXVEY6OkxvY2tlcjo6dHJ5TG9jayk6CisgICAgICAg
IChXVEY6OkxvY2tlcjo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgIChXVEY6OkxvY2tl
cjo6dW5sb2NrRWFybHkpOgorICAgICAgICAoV1RGOjpMb2NrZXI6Om9wZXJhdG9yPSk6CisgICAg
ICAgIChXVEY6OkxvY2tlcjo6dW5sb2NrKToKKyAgICAgICAgKFdURjo6TG9ja2VyOjpsb2NrKToK
KyAgICAgICAgKiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6bG9nKToKKyAg
ICAgICAgKFdURjo6TG9nZ2VyOjpsb2dWZXJib3NlKToKKyAgICAgICAgKiB3dGYvVGhyZWFkU2Fm
ZXR5QW5hbHlzaXMuaDoKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkb3B0IENoZWNrZWRMb2NrIGluIG1vcmUgcGxhY2VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZDA1N2QyNzEyNzA0YzgxOTBkYTQ0NDIyMDEzOTEyNmU1ZTIxZWE5Yy4uNzNkZmU2MTU5
ZTAwYmMzNTM2YWU2ZWYwN2EyMTE4MDE4YzFlMDdiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1
IEBACisyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRpYmxlIHdpdGggQ2xh
bmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21w
YXRpYmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcy4gSW5zdGVhZCwgdXNlIHRo
ZSBmb2xsb3dpbmcgcGF0dGVybjoKKyAgICAgICAgYGBgCisgICAgICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fbG9jayB9OworICAgICAgICBpZiAobG9ja2VyLnRyeUxvY2soKSkKKyAg
ICAgICAgYGBgCisKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQnVmZmVyU291cmNlTm9kZTo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1BhcmFtVGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRp
bWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFy
YW1UaW1lbGluZTo6dmFsdWVzRm9yRnJhbWVSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1BhcmFtVGltZWxpbmU6Omhhc1ZhbHVlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xl
dE5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb252b2x2ZXJOb2RlOjpwcm9jZXNzKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3MpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3Mp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6T3NjaWxsYXRvck5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vUGFubmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpw
cm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJvY2Vzcyk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldhdmVTaGFwZXJQcm9jZXNzb3I6OnByb2Nlc3MpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
RGVzdGluYXRpb246OmNhbGxSZW5kZXJDYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vUmV2ZXJiQ29udm9sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJldmVyYkNvbnZvbHZl
cjo6cHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5h
dGlvbkNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
cmVuZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQ
cm92aWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3Zp
ZGVyR1N0cmVhbWVyOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJL
aXRXZWJBdWRpb1NyY1JlbmRlckl0ZXJhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JhdGNoQnVmZmVyOjpwdXJn
ZVRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1cjo6ZHJhd1JlY3RTaGFk
b3dXaXRoVGlsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0JsdXI6OmRyYXdJbnNldFNo
YWRvd1dpdGhUaWxpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6ZW5xdWV1ZVZpZGVvU2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Ojp1cGRhdGVS
ZW5kZXJTb3VyY2VzSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpX
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
T3JXb3JrbGV0VGhyZWFkOjpzdG9wKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0IENoZWNrZWRMb2NrIGluIG1vcmUgcGxhY2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGZjYWM4NDUxYzhhOTM0NTIwOGFiNzFhOTM3OGE4MTc3ZTgxNjg4ODguLjJm
ZmE2N2Y3MzI5ZjhjOTU5NzlkYjFjOTk1ZmViNzVkNTQ5YzcwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUgd2l0
aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBp
bmNvbXBhdGlibGUgd2l0aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBJbnN0ZWFkLCB1
c2UgdGhlIGZvbGxvd2luZyBwYXR0ZXJuOgorICAgICAgICBgYGAKKyAgICAgICAgTG9ja2VyIGxv
Y2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisgICAgICAgIGlmIChsb2NrZXIudHJ5TG9jaygp
KQorICAgICAgICBgYGAKKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRl
ZERlY29kaW5nKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWRF
bmNvZGluZyk6CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBBZG9wdCBDaGVja2VkTG9jayBpbiBtb3JlIHBsYWNlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmNwcAppbmRleCBjMWNmODY0Mjc3MDUxYmEwMjEwNThjZjUxNGFkMzcyZmJh
NzQ4MjdiLi42OWJmMzI1NjZjZGYwODcwMzU4MTM1OWRlZGFhZGUzZTAyOTA3MGMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMTcwNyw3ICsxNzA3LDcgQEAgTkVWRVJfSU5M
SU5FIHZvaWQgSGVhcDo6cmVzdW1lVGhlUGVyaXBoZXJ5KCkKICAgICAgICAgICAgIGJvb2wgcmVt
b3ZlID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAodmlzaXRvci5oYXNBY2tub3dsZWRnZWRUaGF0
VGhlTXV0YXRvcklzUmVzdW1lZCgpKQogICAgICAgICAgICAgICAgIHJlbW92ZSA9IHRydWU7Ci0g
ICAgICAgICAgICBlbHNlIGlmIChhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKHZpc2l0b3Iucmln
aHRUb1J1bigpKSkgeworICAgICAgICAgICAgZWxzZSBpZiAoTG9ja2VyIGxvY2tlciB7IERlZmVy
TG9jaywgdmlzaXRvci5yaWdodFRvUnVuKCkgfTsgbG9ja2VyLnRyeUxvY2soKSkgewogICAgICAg
ICAgICAgICAgIHZpc2l0b3IudXBkYXRlTXV0YXRvcklzU3RvcHBlZChsb2NrZXIpOwogICAgICAg
ICAgICAgICAgIHJlbW92ZSA9IHRydWU7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxl
ckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCmluZGV4IGIyZDk5ZmJhODkyMjZkNGMyNDBjZGFi
OGY1YjA1NzU3ODFiZThkZTEuLjJiYjYyM2U5M2JkNTc5M2EzNDEyODc3MGNlNzBiMjc1NmEzZDY1
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCkBAIC0y
MjAsNyArMjIwLDcgQEAgdm9pZCBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Ojp0cmFja2lu
Z0NvbXBsZXRlKCkKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHNhbXBsaW5nUHJvZmlsZXItPmdl
dExvY2soKSB9OwogICAgICAgICBzYW1wbGluZ1Byb2ZpbGVyLT5wYXVzZShsb2NrZXIpOwogICAg
ICAgICBWZWN0b3I8U2FtcGxpbmdQcm9maWxlcjo6U3RhY2tUcmFjZT4gc3RhY2tUcmFjZXMgPSBz
YW1wbGluZ1Byb2ZpbGVyLT5yZWxlYXNlU3RhY2tUcmFjZXMobG9ja2VyKTsKLSAgICAgICAgbG9j
a2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tlci51bmxvY2soKTsKIAogICAgICAgICBS
ZWY8UHJvdG9jb2w6OlNjcmlwdFByb2ZpbGVyOjpTYW1wbGVzPiBzYW1wbGVzID0gYnVpbGRTYW1w
bGVzKHZtLCBXVEZNb3ZlKHN0YWNrVHJhY2VzKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2Nr
ZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuY3BwCmluZGV4IGE1MGM5NDIwODJhYWU0
YWQ0YTY0ZDQzOWU3OWI3NWJmMTg1MGNjMWIuLmUwZTUwNDRlZGZhZmNlMThkZTEzY2ZmYTBkZTM2
NzQ3MjkxNDI2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmNwcApAQCAtMjIyLDEyICsyMjIsMTIgQEAgdm9pZCBSZW1vdGVJbnNw
ZWN0b3JTb2NrZXRFbmRwb2ludDo6ZGlzY29ubmVjdChDb25uZWN0aW9uSUQgaWQpCiAgICAgaWYg
KGNvbnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2xpc3RlbmVycy5nZXQoaWQpKSB7CiAgICAgICAg
IG1fbGlzdGVuZXJzLnJlbW92ZShpZCk7CiAgICAgICAgIFNvY2tldDo6Y2xvc2UoY29ubmVjdGlv
bi0+c29ja2V0KTsKLSAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tl
ci51bmxvY2soKTsKICAgICAgICAgY29ubmVjdGlvbi0+bGlzdGVuZXIuZGlkQ2hhbmdlU3RhdHVz
KCp0aGlzLCBpZCwgTGlzdGVuZXI6OlN0YXR1czo6Q2xvc2VkKTsKICAgICB9IGVsc2UgaWYgKGNv
bnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2NsaWVudHMuZ2V0KGlkKSkgewogICAgICAgICBtX2Ns
aWVudHMucmVtb3ZlKGlkKTsKICAgICAgICAgU29ja2V0OjpjbG9zZShjb25uZWN0aW9uLT5zb2Nr
ZXQpOwotICAgICAgICBsb2NrZXIudW5sb2NrRWFybHkoKTsKKyAgICAgICAgbG9ja2VyLnVubG9j
aygpOwogICAgICAgICBjb25uZWN0aW9uLT5jbGllbnQuZGlkQ2xvc2UoKnRoaXMsIGlkKTsKICAg
ICB9IGVsc2UKICAgICAgICAgTE9HX0VSUk9SKCJFcnJvcjogQ2Fubm90IGRpc2Nvbm5lY3Q6IElu
dmFsaWQgaWQiKTsKQEAgLTI4Miw3ICsyODIsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclNvY2tl
dEVuZHBvaW50OjpyZWN2SWZFbmFibGVkKENvbm5lY3Rpb25JRCBpZCkKICAgICAgICAgaWYgKGF1
dG8gcmVhZFNpemUgPSBTb2NrZXQ6OnJlYWQoY29ubmVjdGlvbi0+c29ja2V0LCByZWN2QnVmZmVy
LmRhdGEoKSwgcmVjdkJ1ZmZlci5zaXplKCkpKSB7CiAgICAgICAgICAgICBpZiAoKnJlYWRTaXpl
ID4gMCkgewogICAgICAgICAgICAgICAgIHJlY3ZCdWZmZXIuc2hyaW5rKCpyZWFkU2l6ZSk7Ci0g
ICAgICAgICAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgICAgICAgICAgbG9j
a2VyLnVubG9jaygpOwogICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNsaWVudC5kaWRSZWNl
aXZlKCp0aGlzLCBpZCwgV1RGTW92ZShyZWN2QnVmZmVyKSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgfQpAQCAtMjkxLDcgKzI5MSw3IEBAIHZvaWQgUmVtb3RlSW5zcGVj
dG9yU29ja2V0RW5kcG9pbnQ6OnJlY3ZJZkVuYWJsZWQoQ29ubmVjdGlvbklEIGlkKQogICAgICAg
ICBTb2NrZXQ6OmNsb3NlKGNvbm5lY3Rpb24tPnNvY2tldCk7CiAgICAgICAgIG1fY2xpZW50cy5y
ZW1vdmUoaWQpOwogCi0gICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBsb2Nr
ZXIudW5sb2NrKCk7CiAgICAgICAgIGNvbm5lY3Rpb24tPmNsaWVudC5kaWRDbG9zZSgqdGhpcywg
aWQpOwogICAgIH0KIH0KQEAgLTM1Myw3ICszNTMsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclNv
Y2tldEVuZHBvaW50OjphY2NlcHRJbmV0U29ja2V0SWZFbmFibGVkKENvbm5lY3Rpb25JRCBpZCkK
ICAgICBpZiAoY29uc3QgYXV0byYgY29ubmVjdGlvbiA9IG1fbGlzdGVuZXJzLmdldChpZCkpIHsK
ICAgICAgICAgaWYgKGF1dG8gc29ja2V0ID0gU29ja2V0OjphY2NlcHQoY29ubmVjdGlvbi0+c29j
a2V0KSkgewogICAgICAgICAgICAgLy8gTmVlZCB0byB1bmxvY2sgYmVmb3JlIGNhbGxpbmcgY3Jl
YXRlQ2xpZW50IGFzIGl0IGFsc28gYXR0ZW1wdHMgdG8gbG9jay4KLSAgICAgICAgICAgIGxvY2tl
ci51bmxvY2tFYXJseSgpOworICAgICAgICAgICAgbG9ja2VyLnVubG9jaygpOwogICAgICAgICAg
ICAgaWYgKGNvbm5lY3Rpb24tPmxpc3RlbmVyLmRvQWNjZXB0KCp0aGlzLCBzb2NrZXQudmFsdWUo
KSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmgKaW5kZXggYWEyNzNiYWRiZWZhNzM3YTBlYWE1
MzRmYmViYTlmNTAxZmRiODYyNy4uZGQ5OWYyZDM4MjZjYWFmY2Y5ZWY4YjkwMmE2YTIwM2RhMjIz
YjMzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uY3VycmVu
dEpTTG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmN1cnJlbnRK
U0xvY2suaApAQCAtNTgsOSArNTgsOSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KICAgICAKLSAg
ICB2b2lkIHVubG9ja0Vhcmx5KCkKKyAgICB2b2lkIHVubG9jaygpCiAgICAgewotICAgICAgICBt
X2xvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBtX2xvY2tlci51bmxvY2soKTsKICAgICB9
CiAKIHByaXZhdGU6CkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gdnMuIGRl
cml2ZWQgY2xhc3Nlcy4gSWYgd2UgZGlkbid0LCB0aGVuIHdlIHdvdWxkIGRlc3Ryb3kgdGhlIAog
ICAgICAgICAvLyBEZWZlckdDIG9iamVjdCBiZWZvcmUgdW5sb2NraW5nIHRoZSBsb2NrIHdoaWNo
IGNvdWxkIGNhdXNlIGEgR0MKICAgICAgICAgLy8gYW5kIHJlc3VsdGluZyBkZWFkbG9jay4KLSAg
ICAgICAgdW5sb2NrRWFybHkoKTsKKyAgICAgICAgdW5sb2NrKCk7CiAgICAgfQogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAppbmRleCA5MmJmZWFh
NzY4YWE2ODYyYmRmNWQ5OGM0YWVkZDcxNDYyZTRhZDY0Li4xMGViNGVjYzU3NjJlY2Y4NTYzOGQy
OTExNjAxNDk5ODg0OGQ0ZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTVRyYXBzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRy
YXBzLmNwcApAQCAtMTM3LDggKzEzNyw4IEBAIHZvaWQgVk1UcmFwczo6dHJ5SW5zdGFsbFRyYXBC
cmVha3BvaW50cyhTaWduYWxDb250ZXh0JiBjb250ZXh0LCBTdGFja0JvdW5kcyBzdGFjCiAgICAg
fQogCiAgICAgaWYgKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChmb3VuZENvZGVCbG9jay0+aml0
VHlwZSgpKSkgewotICAgICAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKCptX2xvY2spOwot
ICAgICAgICBpZiAoIWxvY2tlcikKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
Km1fbG9jayB9OworICAgICAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgICAgICBy
ZXR1cm47IC8vIExldCB0aGUgU2lnbmFsU2VuZGVyIHRyeSBhZ2FpbiBsYXRlci4KIAogICAgICAg
ICBpZiAoIW5lZWRIYW5kbGluZyhWTVRyYXBzOjpBc3luY0V2ZW50cykpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuY3BwCmluZGV4IGU0OWRhZTFlMWJjOWRkNzBj
OWViMjAyZDg3NzA5ZmNjNmNhNjcwOTAuLjk4YTdmMTQ3NDI4YTg1NGY5NzViYThmNzA3ZDgyYzc2
ODlmY2FlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3Bl
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNw
cApAQCAtNzMsMTQgKzczLDE0IEBAIGF1dG8gVk1JbnNwZWN0b3I6OmxvY2soU2Vjb25kcyB0aW1l
b3V0KSAtPiBFeHBlY3RlZDxMb2NrZXIsIEVycm9yPgogICAgIC8vIFdlJ2xsIGJlIGRvaW5nIHNs
ZWVwKDEpIGJldHdlZW4gdHJpZXMgYmVsb3cuIEhlbmNlLCBzbGVlcFBlclJldHJ5IGlzIDEuCiAg
ICAgdW5zaWduZWQgbWF4UmV0cmllcyA9ICh0aW1lb3V0IDwgU2Vjb25kczo6aW5maW5pdHkoKSkg
PyB0aW1lb3V0LnZhbHVlKCkgOiBVSU5UX01BWDsKIAotICAgIEV4cGVjdGVkPExvY2tlciwgRXJy
b3I+IGxvY2tlciA9IExvY2tlcjo6dHJ5TG9jayhtX2xvY2spOworICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fbG9jayB9OworCiAgICAgdW5zaWduZWQgdHJ5Q291bnQgPSAwOwotICAg
IHdoaWxlICghbG9ja2VyICYmIHRyeUNvdW50IDwgbWF4UmV0cmllcykgeworICAgIHdoaWxlICgh
bG9ja2VyLnRyeUxvY2soKSAmJiB0cnlDb3VudCA8IG1heFJldHJpZXMpIHsKICAgICAgICAgLy8g
V2Ugd2FudCB0aGUgdmVyc2lvbiBvZiBzbGVlcCBmcm9tIHVuaXN0ZC5oLiBDYXN0IHRvIGRpc2Ft
YmlndWF0ZS4KICNpZiAhT1MoV0lORE9XUykKICAgICAgICAgKHN0YXRpY19jYXN0PHVuc2lnbmVk
ICgqKSh1bnNpZ25lZCk+KHNsZWVwKSkoMSk7CiAjZW5kaWYKLSAgICAgICAgbG9ja2VyID0gTG9j
a2VyOjp0cnlMb2NrKG1fbG9jayk7CiAgICAgfQogCiAgICAgaWYgKCFsb2NrZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oIGIvU291cmNlL1dURi93dGYvQ2hlY2tl
ZExvY2suaAppbmRleCA0NGI4OTk5NjkxMjM0NTIwMDE5OGZkODY0YTk5ODk2Njc3NjM5OTQyLi4x
NzkzMmNjZjg3MTI1YjdmNWFhZjVhNjU3ODFkYTI1MTZlMjdlOTkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRMb2Nr
LmgKQEAgLTQzLDkgKzQzLDkgQEAgbmFtZXNwYWNlIFdURiB7CiAvLyAgICAgICB2b2lkIHNldFZh
bHVlKGludCB2YWx1ZSkgeyBMb2Noa2VyIGhvbGRMb2NrIHsgbV9sb2NrIH07IG1fdmFsdWUgPSB2
YWx1ZTsgIH0KIC8vICAgICAgIHZvaWQgbWF5YmVTZXRPdGhlclZhbHVlKGludCB2YWx1ZSkKIC8v
ICAgICAgIHsKLS8vICAgICAgICAgICBpZiAoIW1fbG9jay50cnlMb2NrKCkpCisvLyAgICAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisvLyAgICAgICAgICAgaWYg
KCFsb2NrZXIudHJ5TG9jaygpKQogLy8gICAgICAgICAgICAgIHJldHVybjsKLS8vICAgICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9vdGhlckxvY2sgfTsKIC8vICAg
ICAgICAgICBtX290aGVyVmFsdWUgPSB2YWx1ZTsKIC8vICAgICAgIH0KIC8vICAgcHJpdmF0ZToK
QEAgLTYwLDggKzYwLDggQEAgY2xhc3MgV1RGX0NBUEFCSUxJVFlfTE9DSyBDaGVja2VkTG9jayA6
IExvY2sgewogcHVibGljOgogICAgIGNvbnN0ZXhwciBDaGVja2VkTG9jaygpID0gZGVmYXVsdDsK
ICAgICB2b2lkIGxvY2soKSBXVEZfQUNRVUlSRVNfTE9DSygpIHsgTG9jazo6bG9jaygpOyB9Ci0g
ICAgYm9vbCB0cnlMb2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgeyByZXR1cm4gTG9j
azo6dHJ5TG9jaygpOyB9Ci0gICAgYm9vbCB0cnlfbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLX0lG
KHRydWUpIHsgcmV0dXJuIExvY2s6OnRyeV9sb2NrKCk7IH0gLy8gTk9MSU5UOiBJbnRlbnRpb25h
bCBkZXZpYXRpb24gdG8gc3VwcG9ydCBzdGQ6OnNjb3BlZF9sb2NrLgorICAgIGJvb2wgdHJ5TG9j
aygpIFdURl9UUllfQUNRVUlSRV9MT0NLKHRydWUpIHsgcmV0dXJuIExvY2s6OnRyeUxvY2soKTsg
fQorICAgIGJvb2wgdHJ5X2xvY2soKSBXVEZfVFJZX0FDUVVJUkVfTE9DSyh0cnVlKSB7IHJldHVy
biBMb2NrOjp0cnlfbG9jaygpOyB9IC8vIE5PTElOVDogSW50ZW50aW9uYWwgZGV2aWF0aW9uIHRv
IHN1cHBvcnQgc3RkOjpzY29wZWRfbG9jay4KICAgICB2b2lkIHVubG9jaygpIFdURl9SRUxFQVNF
U19MT0NLKCkgeyBMb2NrOjp1bmxvY2soKTsgfQogICAgIHZvaWQgdW5sb2NrRmFpcmx5KCkgV1RG
X1JFTEVBU0VTX0xPQ0soKSB7IExvY2s6OnVubG9ja0ZhaXJseSgpOyB9CiAgICAgdm9pZCBzYWZl
cG9pbnQoKSB7IExvY2s6OnNhZmVwb2ludCgpOyB9CkBAIC03NSw4ICs3NSw2IEBAIHB1YmxpYzoK
IC8vIGRlY2xhcmF0aW9uLgogaW5saW5lIHZvaWQgYXNzZXJ0SXNIZWxkKGNvbnN0IENoZWNrZWRM
b2NrJiBsb2NrKSBXVEZfQVNTRVJUU19BQ1FVSVJFRF9MT0NLKGxvY2spIHsgQVNTRVJUX1VOVVNF
RChsb2NrLCBsb2NrLmlzSGVsZCgpKTsgfQogCi11c2luZyBBZG9wdExvY2tUYWcgPSBzdGQ6OmFk
b3B0X2xvY2tfdDsKLQogLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3aXRoIENoZWNr
ZWRMb2NrLgogLy8gTm9uLW1vdmFibGUgc2ltcGxlIHNjb3BlZCBsb2NrIGhvbGRlci4KIC8vIEV4
YW1wbGU6IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKQEAgLTg1LDI4ICs4Myw1OCBAQCBjbGFz
cyBXVEZfQ0FQQUJJTElUWV9TQ09QRURfTE9DSyBMb2NrZXI8Q2hlY2tlZExvY2s+IHsKIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBMb2NrZXIoQ2hlY2tlZExvY2smIGxvY2spIFdURl9BQ1FVSVJFU19M
T0NLKGxvY2spCiAgICAgICAgIDogbV9sb2NrKGxvY2spCisgICAgICAgICwgbV9pc0xvY2tlZCh0
cnVlKQogICAgIHsKICAgICAgICAgbV9sb2NrLmxvY2soKTsKICAgICB9CiAgICAgTG9ja2VyKEFk
b3B0TG9ja1RhZywgQ2hlY2tlZExvY2smIGxvY2spIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCiAg
ICAgICAgIDogbV9sb2NrKGxvY2spCisgICAgICAgICwgbV9pc0xvY2tlZCh0cnVlKQorICAgIHsK
KyAgICB9CisgICAgTG9ja2VyKERlZmVyTG9ja1RhZywgQ2hlY2tlZExvY2smIGxvY2spIFdURl9F
WENMVURFU19MT0NLKGxvY2spCisgICAgICAgIDogbV9sb2NrKGxvY2spCiAgICAgewogICAgIH0K
ICAgICB+TG9ja2VyKCkgV1RGX1JFTEVBU0VTX0xPQ0soKQogICAgIHsKKyAgICAgICAgaWYgKG1f
aXNMb2NrZWQpCisgICAgICAgICAgICBtX2xvY2sudW5sb2NrKCk7CisgICAgfQorICAgIGJvb2wg
dHJ5TG9jaygpIFdURl9UUllfQUNRVUlSRV9MT0NLKHRydWUpCisgICAgeworICAgICAgICBBU1NF
UlQoIW1faXNMb2NrZWQpOworICAgICAgICBtX2lzTG9ja2VkID0gbV9sb2NrLnRyeUxvY2soKTsK
KyAgICAgICAgcmV0dXJuIG1faXNMb2NrZWQ7CisgICAgfQorICAgIHZvaWQgbG9jaygpIFdURl9B
Q1FVSVJFU19MT0NLKG1fbG9jaykKKyAgICB7CisgICAgICAgIEFTU0VSVCghbV9pc0xvY2tlZCk7
CisgICAgICAgIG1fbG9jay5sb2NrKCk7CisgICAgICAgIG1faXNMb2NrZWQgPSB0cnVlOworICAg
IH0KKyAgICB2b2lkIHVubG9jaygpIFdURl9SRUxFQVNFU19MT0NLKG1fbG9jaykKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChtX2lzTG9ja2VkKTsKICAgICAgICAgbV9sb2NrLnVubG9jaygpOworICAg
ICAgICBtX2lzTG9ja2VkID0gZmFsc2U7CiAgICAgfQorCisgICAgZXhwbGljaXQgb3BlcmF0b3Ig
Ym9vbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNMb2NrZWQ7IH0KKwogICAgIExvY2tlcihjb25zdCBM
b2NrZXI8Q2hlY2tlZExvY2s+JikgPSBkZWxldGU7CiAgICAgTG9ja2VyJiBvcGVyYXRvcj0oY29u
c3QgTG9ja2VyPENoZWNrZWRMb2NrPiYpID0gZGVsZXRlOworCiBwcml2YXRlOgogICAgIENoZWNr
ZWRMb2NrJiBtX2xvY2s7CisgICAgYm9vbCBtX2lzTG9ja2VkIHsgZmFsc2UgfTsKIH07CiAKIExv
Y2tlcihDaGVja2VkTG9jayYpIC0+IExvY2tlcjxDaGVja2VkTG9jaz47CiBMb2NrZXIoQWRvcHRM
b2NrVGFnLCBDaGVja2VkTG9jayYpIC0+IExvY2tlcjxDaGVja2VkTG9jaz47CitMb2NrZXIoRGVm
ZXJMb2NrVGFnLCBDaGVja2VkTG9jayYpIC0+IExvY2tlcjxDaGVja2VkTG9jaz47CiAKIH0gLy8g
bmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6OmFzc2VydElzSGVsZDsKIHVzaW5nIFdURjo6Q2hl
Y2tlZExvY2s7Ci11c2luZyBXVEY6OkFkb3B0TG9ja1RhZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0xvY2tlci5oIGIvU291cmNlL1dURi93dGYvTG9ja2VyLmgKaW5kZXggOGIwZTE5MmI1
ZWJhNGI4ODc2M2E4NDRkMWVjMGNiYTE0YzBjOTg4YS4uMGRhYWZlMDQ0NmVjYzlmZTdiOGZlMzNl
NDdiYTg4ODJlZjMzYzc3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTG9ja2VyLmgKKysr
IGIvU291cmNlL1dURi93dGYvTG9ja2VyLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2lu
Y2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBpbGVyLmg+CkBAIC01NCwx
MSArNTUsMTggQEAgcHJvdGVjdGVkOgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBEcm9w
TG9ja0ZvclNjb3BlOwogCit1c2luZyBBZG9wdExvY2tUYWcgPSBzdGQ6OmFkb3B0X2xvY2tfdDsK
K2NvbnN0ZXhwciBBZG9wdExvY2tUYWcgQWRvcHRMb2NrID0gQWRvcHRMb2NrVGFnKCk7Cit1c2lu
ZyBEZWZlckxvY2tUYWcgPSBzdGQ6OmRlZmVyX2xvY2tfdDsKK2NvbnN0ZXhwciBEZWZlckxvY2tU
YWcgRGVmZXJMb2NrID0gRGVmZXJMb2NrVGFnKCk7CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBj
bGFzcyBMb2NrZXIgOiBwdWJsaWMgQWJzdHJhY3RMb2NrZXIgewogcHVibGljOgogICAgIGV4cGxp
Y2l0IExvY2tlcihUJiBsb2NrYWJsZSkgOiBtX2xvY2thYmxlKCZsb2NrYWJsZSkgeyBsb2NrKCk7
IH0KICAgICBleHBsaWNpdCBMb2NrZXIoVCogbG9ja2FibGUpIDogbV9sb2NrYWJsZShsb2NrYWJs
ZSkgeyBsb2NrKCk7IH0KKyAgICBMb2NrZXIoQWRvcHRMb2NrVGFnLCBUJiBsb2NrYWJsZSkgOiBt
X2xvY2thYmxlKCZsb2NrYWJsZSksIG1faXNMb2NrZWQodHJ1ZSkgeyB9CisgICAgTG9ja2VyKERl
ZmVyTG9ja1RhZywgVCYgbG9ja2FibGUpIDogbV9sb2NrYWJsZSgmbG9ja2FibGUpIHsgfQogCiAg
ICAgLy8gWW91IHNob3VsZCBiZSB3YXJ5IG9mIHVzaW5nIHRoaXMgY29uc3RydWN0b3IuIEl0J3Mg
b25seSBhcHBsaWNhYmxlCiAgICAgLy8gaW4gcGxhY2VzIHdoZXJlIHRoZXJlIGlzIGEgbG9ja2lu
ZyBwcm90b2NvbCBmb3IgYSBwYXJ0aWN1bGFyIG9iamVjdApAQCAtNjYsODQgKzc0LDc0IEBAIHB1
YmxpYzoKICAgICAvLyB0aGlzIG9mdGVuIGhhcHBlbnMgd2hlbiBhbiBvYmplY3QgaXMgbmV3bHkg
YWxsb2NhdGVkIGFuZCBpdCBjYW4gbm90CiAgICAgLy8gYmUgYWNjZXNzZWQgY29uY3VycmVudGx5
LgogICAgIExvY2tlcihOb0xvY2tpbmdOZWNlc3NhcnlUYWcpIDogbV9sb2NrYWJsZShudWxscHRy
KSB7IH0KLSAgICAKKwogICAgIExvY2tlcihzdGQ6OnVuZGVybHlpbmdfdHlwZV90PE5vTG9ja2lu
Z05lY2Vzc2FyeVRhZz4pID0gZGVsZXRlOwogCiAgICAgfkxvY2tlcigpCiAgICAgewotICAgICAg
ICB1bmxvY2soKTsKKyAgICAgICAgaWYgKG1faXNMb2NrZWQpCisgICAgICAgICAgICB1bmxvY2so
KTsKKyAgICB9CisKKyAgICBib29sIHRyeUxvY2soKQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1f
bG9ja2FibGUpOworICAgICAgICBBU1NFUlQoIW1faXNMb2NrZWQpOworICAgICAgICBpZiAoIW1f
bG9ja2FibGUgfHwgIW1fbG9ja2FibGUtPnRyeUxvY2soKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgbV9pc0xvY2tlZCA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KICAgICAKLSAgICBzdGF0aWMgTG9ja2VyIHRyeUxvY2soVCYgbG9ja2FibGUpCisgICAg
ZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNMb2NrZWQ7IH0KKwor
ICAgIHZvaWQgdW5sb2NrKCkKICAgICB7Ci0gICAgICAgIExvY2tlciByZXN1bHQoTm9Mb2NraW5n
TmVjZXNzYXJ5KTsKLSAgICAgICAgaWYgKGxvY2thYmxlLnRyeUxvY2soKSkgewotICAgICAgICAg
ICAgcmVzdWx0Lm1fbG9ja2FibGUgPSAmbG9ja2FibGU7Ci0gICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgICBBU1NFUlQobV9pc0xvY2tlZCk7CisgICAgICAgIGNvbXBpbGVyRmVuY2Uo
KTsKKyAgICAgICAgaWYgKG1fbG9ja2FibGUpIHsKKyAgICAgICAgICAgIFRTQU5fQU5OT1RBVEVf
SEFQUEVOU19CRUZPUkUobV9sb2NrYWJsZSk7CisgICAgICAgICAgICBtX2xvY2thYmxlLT51bmxv
Y2soKTsKKyAgICAgICAgICAgIG1faXNMb2NrZWQgPSBmYWxzZTsKICAgICAgICAgfQotICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIFQqIGxvY2thYmxlKCkgeyByZXR1cm4gbV9s
b2NrYWJsZTsgfQotICAgIAotICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJl
dHVybiAhIW1fbG9ja2FibGU7IH0KLSAgICAKLSAgICB2b2lkIHVubG9ja0Vhcmx5KCkKKyAgICB2
b2lkIGxvY2soKQogICAgIHsKLSAgICAgICAgdW5sb2NrKCk7Ci0gICAgICAgIG1fbG9ja2FibGUg
PSBudWxscHRyOworICAgICAgICBBU1NFUlQoIW1faXNMb2NrZWQpOworICAgICAgICBpZiAobV9s
b2NrYWJsZSkgeworICAgICAgICAgICAgbV9sb2NrYWJsZS0+bG9jaygpOworICAgICAgICAgICAg
VFNBTl9BTk5PVEFURV9IQVBQRU5TX0FGVEVSKG1fbG9ja2FibGUpOworICAgICAgICAgICAgbV9p
c0xvY2tlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgY29tcGlsZXJGZW5jZSgpOwogICAg
IH0KICAgICAKICAgICAvLyBJdCdzIGdyZWF0IHRvIGJlIGFibGUgdG8gcGFzcyBsb2NrZXJzIGFy
b3VuZC4gSXQgZW5hYmxlcyBjdXN0b20gbG9ja2luZyBhZGFwdG9ycyBsaWtlCiAgICAgLy8gSlND
OjpMb2NrRHVyaW5nTWFya2luZy4KICAgICBMb2NrZXIoTG9ja2VyJiYgb3RoZXIpCi0gICAgICAg
IDogbV9sb2NrYWJsZShvdGhlci5tX2xvY2thYmxlKQorICAgICAgICA6IG1fbG9ja2FibGUoc3Rk
OjpleGNoYW5nZShvdGhlci5tX2xvY2thYmxlLCBudWxscHRyKSkKKyAgICAgICAgLCBtX2lzTG9j
a2VkKHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9pc0xvY2tlZCwgZmFsc2UpKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKCZvdGhlciAhPSB0aGlzKTsKLSAgICAgICAgb3RoZXIubV9sb2NrYWJsZSA9IG51
bGxwdHI7CiAgICAgfQogICAgIAogICAgIExvY2tlciYgb3BlcmF0b3I9KExvY2tlciYmIG90aGVy
KQogICAgIHsKICAgICAgICAgQVNTRVJUKCZvdGhlciAhPSB0aGlzKTsKLSAgICAgICAgbV9sb2Nr
YWJsZSA9IG90aGVyLm1fbG9ja2FibGU7Ci0gICAgICAgIG90aGVyLm1fbG9ja2FibGUgPSBudWxs
cHRyOworICAgICAgICBtX2xvY2thYmxlID0gc3RkOjpleGNoYW5nZShvdGhlci5tX2xvY2thYmxl
LCBudWxscHRyKTsKKyAgICAgICAgbV9pc0xvY2tlZCA9IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9p
c0xvY2tlZCwgZmFsc2UpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogICAgIAogcHJp
dmF0ZToKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZT4KICAgICBmcmllbmQgY2xhc3MgRHJvcExvY2tG
b3JTY29wZTsKLQotICAgIHZvaWQgdW5sb2NrKCkKLSAgICB7Ci0gICAgICAgIGNvbXBpbGVyRmVu
Y2UoKTsKLSAgICAgICAgaWYgKG1fbG9ja2FibGUpIHsKLSAgICAgICAgICAgIFRTQU5fQU5OT1RB
VEVfSEFQUEVOU19CRUZPUkUobV9sb2NrYWJsZSk7Ci0gICAgICAgICAgICBtX2xvY2thYmxlLT51
bmxvY2soKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHZvaWQgbG9jaygpCi0gICAgewotICAg
ICAgICBpZiAobV9sb2NrYWJsZSkgewotICAgICAgICAgICAgbV9sb2NrYWJsZS0+bG9jaygpOwot
ICAgICAgICAgICAgVFNBTl9BTk5PVEFURV9IQVBQRU5TX0FGVEVSKG1fbG9ja2FibGUpOwotICAg
ICAgICB9Ci0gICAgICAgIGNvbXBpbGVyRmVuY2UoKTsKLSAgICB9CiAgICAgCi0gICAgVCogbV9s
b2NrYWJsZTsKKyAgICBUKiBtX2xvY2thYmxlIHsgbnVsbHB0ciB9OworICAgIGJvb2wgbV9pc0xv
Y2tlZCB7IGZhbHNlIH07CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4KLUxvY2tl
cjxMb2NrVHlwZT4gdHJ5SG9sZExvY2soTG9ja1R5cGUmKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci10
ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4KLUxvY2tlcjxMb2NrVHlwZT4gdHJ5SG9sZExvY2so
TG9ja1R5cGUmIGxvY2spCi17Ci0gICAgcmV0dXJuIExvY2tlcjxMb2NrVHlwZT46OnRyeUxvY2so
bG9jayk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlPgogY2xhc3MgRHJvcExvY2tG
b3JTY29wZSA6IHByaXZhdGUgQWJzdHJhY3RMb2NrZXIgewogICAgIFdURl9GT1JCSURfSEVBUF9B
TExPQ0FUSU9OKERyb3BMb2NrRm9yU2NvcGUpOwpAQCAtMTY2LDYgKzE2NCw4IEBAIHByaXZhdGU6
CiB9CiAKIHVzaW5nIFdURjo6QWJzdHJhY3RMb2NrZXI7Cit1c2luZyBXVEY6OkFkb3B0TG9jazsK
K3VzaW5nIFdURjo6RGVmZXJMb2NrOwogdXNpbmcgV1RGOjpMb2NrZXI7CiB1c2luZyBXVEY6Ok5v
TG9ja2luZ05lY2Vzc2FyeVRhZzsKIHVzaW5nIFdURjo6Tm9Mb2NraW5nTmVjZXNzYXJ5OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9nZ2VyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIu
aAppbmRleCBlOTlkNDliZjJlOWQ5YWQyYTZiM2I2MTgwZGNiZDk4Y2Q3ODVmYTU0Li4yMzg4ODI0
ZTBmMTcyNjNhYTFjZjc4ZDEyMGRhNDUyODBlYWFkNTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9Mb2dnZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaApAQCAtMzIyLDEwICsz
MjIsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKGNoYW5uZWwuc3RhdGUgPT0gV1RGTG9nQ2hh
bm5lbFN0YXRlOjpPZmYgfHwgbGV2ZWwgPiBjaGFubmVsLmxldmVsKQogICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIGlmICghb2JzZXJ2ZXJMb2NrKCkudHJ5TG9jaygpKQorICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBvYnNlcnZlckxvY2soKSB9OworICAgICAgICBpZiAo
IWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgTG9ja2Vy
IGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG9ic2VydmVyTG9jaygpIH07CiAgICAgICAgIGZv
ciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogb2JzZXJ2ZXJzKCkpCiAgICAgICAgICAgICBvYnNlcnZl
ci5kaWRMb2dNZXNzYWdlKGNoYW5uZWwsIGxldmVsLCB7IENvbnNvbGVMb2dWYWx1ZTxBcmd1bWVu
dD46OnRvVmFsdWUoYXJndW1lbnRzKS4uLiB9KTsKICAgICB9CkBAIC0zNTMsMTAgKzM1MywxMCBA
QCBwcml2YXRlOgogICAgICAgICBpZiAoY2hhbm5lbC5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3Rh
dGU6Ok9mZiB8fCBsZXZlbCA+IGNoYW5uZWwubGV2ZWwpCiAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgaWYgKCFvYnNlcnZlckxvY2soKS50cnlMb2NrKCkpCisgICAgICAgIExvY2tlciBs
b2NrZXIgeyBEZWZlckxvY2ssIG9ic2VydmVyTG9jaygpIH07CisgICAgICAgIGlmICghbG9ja2Vy
LnRyeUxvY2soKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBMb2NrZXIgbG9ja2Vy
IHsgQWRvcHRMb2NrVGFnIHsgfSwgb2JzZXJ2ZXJMb2NrKCkgfTsKICAgICAgICAgZm9yIChPYnNl
cnZlciYgb2JzZXJ2ZXIgOiBvYnNlcnZlcnMoKSkKICAgICAgICAgICAgIG9ic2VydmVyLmRpZExv
Z01lc3NhZ2UoY2hhbm5lbCwgbGV2ZWwsIHsgQ29uc29sZUxvZ1ZhbHVlPEFyZ3VtZW50Pjo6dG9W
YWx1ZShhcmd1bWVudHMpLi4uIH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1RocmVhZFNhZmV0eUFuYWx5c2lzLmggYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRTYWZldHlBbmFs
eXNpcy5oCmluZGV4IDAzYWMxNWE5MzNlNzBmYzFhMWZmMDQ3OGYwYjk5M2NlMThkNDk3ZWMuLjYz
M2VkMDE5NjdkOTRlY2ExOWI1NzkyMmI2NjA0YjEyNjhlYTExYmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1RocmVhZFNhZmV0eUFuYWx5c2lzLmgKKysrIGIvU291cmNlL1dURi93dGYvVGhy
ZWFkU2FmZXR5QW5hbHlzaXMuaApAQCAtMzUsNyArMzUsNyBAQAogI2RlZmluZSBXVEZfVEhSRUFE
X0FOTk9UQVRJT05fQVRUUklCVVRFKHgpCiAjZW5kaWYKIAotI2RlZmluZSBXVEZfQUNRVUlSRVNf
TE9DS19JRiguLi4pIFdURl9USFJFQURfQU5OT1RBVElPTl9BVFRSSUJVVEUodHJ5X2FjcXVpcmVf
Y2FwYWJpbGl0eShfX1ZBX0FSR1NfXykpCisjZGVmaW5lIFdURl9UUllfQUNRVUlSRV9MT0NLKC4u
LikgV1RGX1RIUkVBRF9BTk5PVEFUSU9OX0FUVFJJQlVURSh0cnlfYWNxdWlyZV9jYXBhYmlsaXR5
KF9fVkFfQVJHU19fKSkKICNkZWZpbmUgV1RGX0FDUVVJUkVTX0xPQ0soLi4uKSBXVEZfVEhSRUFE
X0FOTk9UQVRJT05fQVRUUklCVVRFKGFjcXVpcmVfY2FwYWJpbGl0eShfX1ZBX0FSR1NfXykpCiAj
ZGVmaW5lIFdURl9BQ1FVSVJFU19TSEFSRURfTE9DS19JRiguLi4pIFdURl9USFJFQURfQU5OT1RB
VElPTl9BVFRSSUJVVEUodHJ5X2FjcXVpcmVfc2hhcmVkX2NhcGFiaWxpdHkoX19WQV9BUkdTX18p
KQogI2RlZmluZSBXVEZfQUNRVUlSRVNfU0hBUkVEX0xPQ0soLi4uKSBXVEZfVEhSRUFEX0FOTk9U
QVRJT05fQVRUUklCVVRFKGFjcXVpcmVfc2hhcmVkX2NhcGFiaWxpdHkoX19WQV9BUkdTX18pKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAppbmRleCAxODQ0MDIxZTZmMWFj
NDRmZTYzMjVjNjI4YmFlNmY4ZTE3ZmJhNjcwLi5mNDI0MjM5ZjQzNDVjNjVjY2M0MDcwOGEyZmNj
OTYxN2M1MTlkODI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcApA
QCAtODUsMTEgKzg1LDEwIEBAIGJvb2wgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bDo6dXBkYXRlRGF0YVNvdXJjZShjb25zdCBDQUF1ZGlvU3RyZWFtRGVzCiB7CiAgICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7CiAKLSAgICBpZiAoIW1fZGF0YVNvdXJjZUxvY2sudHJ5TG9jaygp
KQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fZGF0YVNvdXJjZUxvY2sgfTsKKyAg
ICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIExv
Y2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2RhdGFTb3VyY2VMb2NrIH07Ci0KICAg
ICBhdXRvIGRhdGFTb3VyY2UgPSBBdWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShhdWRpb0Rl
c2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDEsIG1fc291cmNlLmdldCgpKTsKICAgICBpZiAoZGF0
YVNvdXJjZS0+c2V0SW5wdXRGb3JtYXQoYXVkaW9EZXNjcmlwdGlvbikpIHsKICAgICAgICAgY2Fs
bE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0gewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJj
ZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNv
dXJjZU5vZGUuY3BwCmluZGV4IDYzM2M1MDZhMDA3NjdmZmI4ODU4Y2IwNjBmNTFkNzY5OTZiYTE3
MmEuLmZiNGM0NGY3ZGZjNjFiMmM0ZjE4NjA3MjhkYjY0Nzg5NTlmMWEwZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNl
Tm9kZS5jcHAKQEAgLTEwMiwxMCArMTAyLDEwIEBAIHZvaWQgQXVkaW9CdWZmZXJTb3VyY2VOb2Rl
Ojpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28g
d2UgdXNlIHRyeUhvbGRMb2NrKCkgaW5zdGVhZC4KLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRM
b2NrKG1fcHJvY2Vzc0xvY2spOwotICAgIGlmICghbG9ja2VyKSB7Ci0gICAgICAgIC8vIFRvbyBi
YWQgLSB0cnlIb2xkTG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGNo
YW5naW5nIGJ1ZmZlcnMgYW5kIHdlcmUgYWxyZWFkeSBvdXRwdXR0aW5nIHNpbGVuY2UgYW55d2F5
LgorICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBsb2NrLCBzbyB3
ZSB1c2UgdHJ5TG9jaygpIGluc3RlYWQuCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
bV9wcm9jZXNzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgeworICAgICAgICAv
LyBUb28gYmFkIC0gdHJ5TG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9m
IGNoYW5naW5nIGJ1ZmZlcnMgYW5kIHdlcmUgYWxyZWFkeSBvdXRwdXR0aW5nIHNpbGVuY2UgYW55
d2F5LgogICAgICAgICBvdXRwdXRCdXMuemVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwCmluZGV4IGZl
YmEzMzBlZDAyMGE3YTY5YTQ0M2YzMjJlZGFkZDdlMWE5NmQ2ZWMuLmIyYmNjZjAyMzg4ZTE3ZTVm
YmE3OGI5MDBiMDg0MmIzMDM2OGM3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvTm9kZS5jcHAKQEAgLTU3OCwxMyArNTc4LDE1IEBAIHZvaWQgQXVkaW9Ob2Rl
OjpkZWNyZW1lbnRDb25uZWN0aW9uQ291bnQoKQogewogICAgIC8vIFRoZSBhY3R1YWxseSB3b3Jr
IGZvciBkZXJlZiBoYXBwZW5zIGNvbXBsZXRlbHkgd2l0aGluIHRoZSBhdWRpbyBjb250ZXh0J3Mg
Z3JhcGggbG9jay4KICAgICAvLyBJbiB0aGUgY2FzZSBvZiB0aGUgYXVkaW8gdGhyZWFkLCB3ZSBt
dXN0IHVzZSBhIHRyeUxvY2sgdG8gYXZvaWQgZ2xpdGNoZXMuCi0gICAgaWYgKGF1dG8gbG9ja2Vy
ID0gY29udGV4dCgpLmlzQXVkaW9UaHJlYWQoKSA/IExvY2tlcjxSZWN1cnNpdmVMb2NrPjo6dHJ5
TG9jayhjb250ZXh0KCkuZ3JhcGhMb2NrKCkpIDogTG9ja2VyIHsgY29udGV4dCgpLmdyYXBoTG9j
aygpIH0pIHsKLSAgICAgICAgLy8gVGhpcyBpcyB3aGVyZSB0aGUgcmVhbCBkZXJlZiB3b3JrIGhh
cHBlbnMuCi0gICAgICAgIGRlY3JlbWVudENvbm5lY3Rpb25Db3VudFdpdGhMb2NrKCk7CisgICAg
aWYgKGNvbnRleHQoKS5pc0F1ZGlvVGhyZWFkKCkpIHsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7
IERlZmVyTG9jaywgY29udGV4dCgpLmdyYXBoTG9jaygpIH07CisgICAgICAgIGlmIChsb2NrZXIu
dHJ5TG9jaygpKQorICAgICAgICAgICAgZGVjcmVtZW50Q29ubmVjdGlvbkNvdW50V2l0aExvY2so
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29udGV4dCgpLmFkZERlZmVycmVkRGVjcmVt
ZW50Q29ubmVjdGlvbkNvdW50KHRoaXMpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIFdlIHdl
cmUgdW5hYmxlIHRvIGdldCB0aGUgbG9jaywgc28gcHV0IHRoaXMgaW4gYSBsaXN0IHRvIGZpbmlz
aCB1cCBsYXRlci4KLSAgICAgICAgQVNTRVJUKGNvbnRleHQoKS5pc0F1ZGlvVGhyZWFkKCkpOwot
ICAgICAgICBjb250ZXh0KCkuYWRkRGVmZXJyZWREZWNyZW1lbnRDb25uZWN0aW9uQ291bnQodGhp
cyk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBjb250ZXh0KCkuZ3JhcGhMb2NrKCkgfTsKKyAg
ICAgICAgZGVjcmVtZW50Q29ubmVjdGlvbkNvdW50V2l0aExvY2soKTsKICAgICB9CiAKICAgICAv
LyBPbmNlIEF1ZGlvQ29udGV4dDo6dW5pbml0aWFsaXplKCkgaXMgY2FsbGVkIHRoZXJlJ3Mgbm8g
bW9yZSBjaGFuY2VzIGZvciBkZWxldGVNYXJrZWROb2RlcygpIHRvIGdldCBjYWxsZWQsIHNvIHdl
IGNhbGwgaGVyZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9QYXJhbVRpbWVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9QYXJhbVRpbWVsaW5lLmNwcAppbmRleCAwNDA2ZWFiNzcxMGU4ZWQ5N2RlODk4M2EyMDBl
NTE1NmMyMjllYWFmLi4yODQzZjIzOTZjNTk5ZGI0MzU1MDlhNDk3NDc0OGJiYjAxMTcxYWUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1l
bGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFt
VGltZWxpbmUuY3BwCkBAIC0zMjcsOSArMzI3LDkgQEAgdm9pZCBBdWRpb1BhcmFtVGltZWxpbmU6
OnJlbW92ZUNhbmNlbGxlZEV2ZW50cyhzaXplX3QgZmlyc3RFdmVudFRvUmVtb3ZlKQogT3B0aW9u
YWw8ZmxvYXQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVGb3JDb250ZXh0VGltZShCYXNlQXVk
aW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdCBkZWZhdWx0VmFsdWUsIGZsb2F0IG1pblZhbHVlLCBm
bG9hdCBtYXhWYWx1ZSkKIHsKICAgICB7Ci0gICAgICAgIGlmICghbV9ldmVudHNMb2NrLnRyeUxv
Y2soKSkKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9ldmVudHNMb2NrIH07
CisgICAgICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7Ci0gICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2V2
ZW50c0xvY2sgfTsKICAgICAgICAgaWYgKCFtX2V2ZW50cy5zaXplKCkgfHwgU2Vjb25kcyB7IGNv
bnRleHQuY3VycmVudFRpbWUoKSB9IDwgbV9ldmVudHNbMF0udGltZSgpKQogICAgICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9CkBAIC0zNDcsMTEgKzM0NywxMSBAQCBPcHRpb25h
bDxmbG9hdD4gQXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKEJhc2VBdWRp
b0NvbnRleHQmIGNvbnRleAogZmxvYXQgQXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZXNGb3JGcmFt
ZVJhbmdlKHNpemVfdCBzdGFydEZyYW1lLCBzaXplX3QgZW5kRnJhbWUsIGZsb2F0IGRlZmF1bHRW
YWx1ZSwgZmxvYXQgbWluVmFsdWUsIGZsb2F0IG1heFZhbHVlLCBmbG9hdCogdmFsdWVzLCB1bnNp
Z25lZCBudW1iZXJPZlZhbHVlcywgZG91YmxlIHNhbXBsZVJhdGUsIGRvdWJsZSBjb250cm9sUmF0
ZSkKIHsKICAgICAvLyBXZSBjYW4ndCBjb250ZW5kIHRoZSBsb2NrIGluIHRoZSByZWFsdGltZSBh
dWRpbyB0aHJlYWQuCi0gICAgaWYgKCFtX2V2ZW50c0xvY2sudHJ5TG9jaygpKSB7CisgICAgTG9j
a2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9ldmVudHNMb2NrIH07CisgICAgaWYgKCFsb2NrZXIu
dHJ5TG9jaygpKSB7CiAgICAgICAgIHN0ZDo6ZmlsbF9uKHZhbHVlcywgbnVtYmVyT2ZWYWx1ZXMs
IGRlZmF1bHRWYWx1ZSk7CiAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CiAgICAgfQotICAg
IExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2V2ZW50c0xvY2sgfTsKIAogICAg
IGZsb2F0IHZhbHVlID0gdmFsdWVzRm9yRnJhbWVSYW5nZUltcGwoc3RhcnRGcmFtZSwgZW5kRnJh
bWUsIGRlZmF1bHRWYWx1ZSwgdmFsdWVzLCBudW1iZXJPZlZhbHVlcywgc2FtcGxlUmF0ZSwgY29u
dHJvbFJhdGUpOwogCkBAIC05ODYsOSArOTg2LDkgQEAgYm9vbCBBdWRpb1BhcmFtVGltZWxpbmU6
OmlzRXZlbnRDdXJyZW50KGNvbnN0IFBhcmFtRXZlbnQmIGV2ZW50LCBjb25zdCBQYXJhbUV2ZW4K
IAogYm9vbCBBdWRpb1BhcmFtVGltZWxpbmU6Omhhc1ZhbHVlcyhzaXplX3Qgc3RhcnRGcmFtZSwg
ZG91YmxlIHNhbXBsZVJhdGUpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2V2ZW50c0xvY2sudHJ5TG9j
aygpKQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fZXZlbnRzTG9jayB9OworICAg
IGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgTG9ja2Vy
IGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fZXZlbnRzTG9jayB9OwogCiAgICAgLy8gUmV0
dXJuIGZhbHNlIGlmIHRoZXJlIGFyZSBubyBldmVudHMgaW4gdGhlIHRpbWUgcmFuZ2UuCiAgICAg
YXV0byBlbmRGcmFtZSA9IHN0YXJ0RnJhbWUgKyBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1
bVNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
V29ya2xldE5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXROb2RlLmNwcAppbmRleCAzNDk2MjZmYTRkNDNlZDI1M2ZjZjkwNzMyYjY0MmFmMmJjNWFh
NDYwLi5iYzkwOTk1OWQ1M2M0ZGJjZDFkM2M3ODhlNWIwNzk2N2M1YTk4NTcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAK
QEAgLTE5MSw4ICsxOTEsOCBAQCB2b2lkIEF1ZGlvV29ya2xldE5vZGU6OnByb2Nlc3Moc2l6ZV90
IGZyYW1lc1RvUHJvY2VzcykKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAotICAg
IGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2Nr
ZXIgfHwgIW1fcHJvY2Vzc29yIHx8ICZUaHJlYWQ6OmN1cnJlbnQoKSAhPSBtX3dvcmtsZXRUaHJl
YWQpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07Cisg
ICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpIHx8ICFtX3Byb2Nlc3NvciB8fCAmVGhyZWFkOjpjdXJy
ZW50KCkgIT0gbV93b3JrbGV0VGhyZWFkKSB7CiAgICAgICAgIC8vIFdlJ3JlIG5vdCByZWFkeSB5
ZXQgb3Igd2UgYXJlIGdldHRpbmcgZGVzdHJveWVkLiBJbiB0aGlzIGNhc2UsIHdlIG91dHB1dCBz
aWxlbmNlLgogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZPdXRwdXRz
KCk7ICsraSkKICAgICAgICAgICAgIG91dHB1dChpKS0+YnVzKCktPnplcm8oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCmlu
ZGV4IGUyMDJkN2QyNjJhZDA2NDdiZGE3NmZiYTUyN2YwYTVhMTYyMWE3ODAuLjhlNGMzZDYyMjAy
NWU5YWNmZTE0M2Q5MjNlZmQxZjZjMTE2ZmZmYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcApAQCAtNTYwLDE0ICs1NjAs
MTYgQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0OjpoYW5kbGVQcmVSZW5kZXJUYXNrcyhjb25zdCBB
dWRpb0lPUG9zaXRpb24mIG91dHB1dFBvc2l0aW8KIAogICAgIC8vIEF0IHRoZSBiZWdpbm5pbmcg
b2YgZXZlcnkgcmVuZGVyIHF1YW50dW0sIHRyeSB0byB1cGRhdGUgdGhlIGludGVybmFsIHJlbmRl
cmluZyBncmFwaCBzdGF0ZSAoZnJvbSBtYWluIHRocmVhZCBjaGFuZ2VzKS4KICAgICAvLyBJdCdz
IE9LIGlmIHRoZSB0cnlMb2NrKCkgZmFpbHMsIHdlJ2xsIGp1c3QgdGFrZSBzbGlnaHRseSBsb25n
ZXIgdG8gcGljayB1cCB0aGUgY2hhbmdlcy4KLSAgICBpZiAoYXV0byBsb2NrZXIgPSBMb2NrZXI8
UmVjdXJzaXZlTG9jaz46OnRyeUxvY2soZ3JhcGhMb2NrKCkpKSB7Ci0gICAgICAgIC8vIEZpeHVw
IHRoZSBzdGF0ZSBvZiBhbnkgZGlydHkgQXVkaW9TdW1taW5nSnVuY3Rpb25zIGFuZCBBdWRpb05v
ZGVPdXRwdXRzLgotICAgICAgICBoYW5kbGVEaXJ0eUF1ZGlvU3VtbWluZ0p1bmN0aW9ucygpOwot
ICAgICAgICBoYW5kbGVEaXJ0eUF1ZGlvTm9kZU91dHB1dHMoKTsKKyAgICBMb2NrZXIgbG9ja2Vy
IHsgRGVmZXJMb2NrLCBncmFwaExvY2soKSB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkK
KyAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHVwZGF0ZUF1dG9tYXRpY1B1bGxOb2RlcygpOwot
ICAgICAgICBtX291dHB1dFBvc2l0aW9uID0gb3V0cHV0UG9zaXRpb247Ci0gICAgfQorICAgIC8v
IEZpeHVwIHRoZSBzdGF0ZSBvZiBhbnkgZGlydHkgQXVkaW9TdW1taW5nSnVuY3Rpb25zIGFuZCBB
dWRpb05vZGVPdXRwdXRzLgorICAgIGhhbmRsZURpcnR5QXVkaW9TdW1taW5nSnVuY3Rpb25zKCk7
CisgICAgaGFuZGxlRGlydHlBdWRpb05vZGVPdXRwdXRzKCk7CisKKyAgICB1cGRhdGVBdXRvbWF0
aWNQdWxsTm9kZXMoKTsKKyAgICBtX291dHB1dFBvc2l0aW9uID0gb3V0cHV0UG9zaXRpb247CiB9
CiAKIEF1ZGlvSU9Qb3NpdGlvbiBCYXNlQXVkaW9Db250ZXh0OjpvdXRwdXRQb3NpdGlvbigpCkBA
IC01ODQsOCArNTg2LDggQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0OjpoYW5kbGVQb3N0UmVuZGVy
VGFza3MoKQogICAgIC8vIE11c3QgdXNlIGEgdHJ5TG9jaygpIGhlcmUgdG9vLiBEb24ndCB3b3Jy
eSwgdGhlIGxvY2sgd2lsbCB2ZXJ5IHJhcmVseSBiZSBjb250ZW5kZWQgYW5kIHRoaXMgbWV0aG9k
IGlzIGNhbGxlZCBmcmVxdWVudGx5LgogICAgIC8vIFRoZSB3b3JzdCB0aGF0IGNhbiBoYXBwZW4g
aXMgdGhhdCB0aGVyZSB3aWxsIGJlIHNvbWUgbm9kZXMgd2hpY2ggd2lsbCB0YWtlIHNsaWdodGx5
IGxvbmdlciB0aGFuIHVzdWFsIHRvIGJlIGRlbGV0ZWQgb3IgcmVtb3ZlZAogICAgIC8vIGZyb20g
dGhlIHJlbmRlciBncmFwaCAoaW4gd2hpY2ggY2FzZSB0aGV5J2xsIHJlbmRlciBzaWxlbmNlKS4K
LSAgICBhdXRvIGxvY2tlciA9IExvY2tlcjxSZWN1cnNpdmVMb2NrPjo6dHJ5TG9jayhncmFwaExv
Y2soKSk7Ci0gICAgaWYgKCFsb2NrZXIpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
Z3JhcGhMb2NrKCkgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIC8vIFRha2UgY2FyZSBvZiBmaW5pc2hpbmcgYW55IGRlcmVmcyB3aGVyZSB0aGUg
dHJ5TG9jaygpIGZhaWxlZCBwcmV2aW91c2x5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAKaW5kZXggNTk3MWZkMDAyMjViY2FjY2MwZTUz
NzNlNjcwMmRiNGNkMjllODUwMC4uMWJjOWYyZWNmNmU1MzFkMWMxMDQ3ZDQ1YWJkYzdjNzhkYWU3
YzFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2
ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZl
ck5vZGUuY3BwCkBAIC05Miw5ICs5Miw5IEBAIHZvaWQgQ29udm9sdmVyTm9kZTo6cHJvY2Vzcyhz
aXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgIEFTU0VSVChvdXRwdXRCdXMpOwogCiAgICAgLy8g
U3luY2hyb25pemUgd2l0aCBwb3NzaWJsZSBkeW5hbWljIGNoYW5nZXMgdG8gdGhlIGltcHVsc2Ug
cmVzcG9uc2UuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsK
LSAgICBpZiAoIWxvY2tlcikgewotICAgICAgICAvLyBUb28gYmFkIC0gdHJ5SG9sZExvY2soKSBm
YWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBzZXR0aW5nIGEgbmV3IGltcHVsc2Ug
cmVzcG9uc2UuCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNzTG9jayB9
OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgeworICAgICAgICAvLyBUb28gYmFkIC0gdHJ5
TG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIHNldHRpbmcgYSBuZXcg
aW1wdWxzZSByZXNwb25zZS4KICAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAKaW5kZXggYTFhNDZhNjdl
ZWEyM2M1NTkyMTNhNzMwODg4MmNlNTA2NzRiYjI2NC4uY2RiM2E3MzdkNWE0NmMzMmMwODBkMGYy
YTQwOGQ3NjEwMTdiYTk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcApAQCAtMTU1
LDExICsxNTUsMTEgQEAgdm9pZCBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3Mo
c2l6ZV90IG51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8g
VXNlIHRyeUhvbGRMb2NrKCkgdG8gYXZvaWQgY29udGVudGlvbiBpbiB0aGUgcmVhbC10aW1lIGF1
ZGlvIHRocmVhZC4KKyAgICAvLyBVc2UgdHJ5TG9jaygpIHRvIGF2b2lkIGNvbnRlbnRpb24gaW4g
dGhlIHJlYWwtdGltZSBhdWRpbyB0aHJlYWQuCiAgICAgLy8gSWYgd2UgZmFpbCB0byBhY3F1aXJl
IHRoZSBsb2NrIHRoZW4gdGhlIEhUTUxNZWRpYUVsZW1lbnQgbXVzdCBiZSBpbiB0aGUgbWlkZGxl
IG9mCiAgICAgLy8gcmVjb25maWd1cmluZyBpdHMgcGxheWJhY2sgZW5naW5lLCBzbyB3ZSBvdXRw
dXQgc2lsZW5jZSBpbiB0aGlzIGNhc2UuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayht
X3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgeworICAgIExvY2tlciBsb2NrZXIgeyBE
ZWZlckxvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpIHsK
ICAgICAgICAgLy8gV2UgZmFpbGVkIHRvIGFjcXVpcmUgdGhlIGxvY2suCiAgICAgICAgIG91dHB1
dEJ1cy0+emVybygpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3Bw
CmluZGV4IGM1NjYyZDYwOWFmNjBhNmFlYmE2ZGE3MjFhMzVkMWQ1ODhhZDUxNzUuLmI4NTQyZDRl
M2JmYzEyMDQzYzYyMzJkZDhlN2ZmYjM1M2FhOGMxYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5v
ZGUuY3BwCkBAIC0xMzksMTYgKzEzOSwxMSBAQCB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VO
b2RlOjpwcm9jZXNzKHNpemVfdCBudW1iZXJPZkZyYW1lcykKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIC8vIFVzZSB0cnlIb2xkTG9jaygpIHRvIGF2b2lkIGNvbnRlbnRpb24gaW4gdGhl
IHJlYWwtdGltZSBhdWRpbyB0aHJlYWQuCisgICAgLy8gVXNlIHRyeUxvY2soKSB0byBhdm9pZCBj
b250ZW50aW9uIGluIHRoZSByZWFsLXRpbWUgYXVkaW8gdGhyZWFkLgogICAgIC8vIElmIHdlIGZh
aWwgdG8gYWNxdWlyZSB0aGUgbG9jayB0aGVuIHRoZSBNZWRpYVN0cmVhbSBtdXN0IGJlIGluIHRo
ZSBtaWRkbGUgb2YKICAgICAvLyBhIGZvcm1hdCBjaGFuZ2UsIHNvIHdlIG91dHB1dCBzaWxlbmNl
IGluIHRoaXMgY2FzZS4KLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xv
Y2spOwotICAgIGlmICghbG9ja2VyKSB7Ci0gICAgICAgIC8vIFdlIGZhaWxlZCB0byBhY3F1aXJl
IHRoZSBsb2NrLgotICAgICAgICBvdXRwdXRCdXMtPnplcm8oKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLSAgICBpZiAobV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzICE9IG91dHB1dEJ1cy0+bnVt
YmVyT2ZDaGFubmVscygpKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9j
ZXNzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSB8fCBtX3NvdXJjZU51bWJlck9m
Q2hhbm5lbHMgIT0gb3V0cHV0QnVzLT5udW1iZXJPZkNoYW5uZWxzKCkpIHsKICAgICAgICAgb3V0
cHV0QnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCmluZGV4IGM2ZjY5ZDIz
MDVjMjE1OTk2NzEzOWE4NDc5ZmFlNWQzMTgyMjI1ODcuLmZmYTQ2Nzk2YjhlY2E3NTI3NzliMTZk
MWUzYzUwM2U2ODgxZjhiODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCkBAIC0zNDksMTAgKzM0OSwxMCBAQCB2b2lkIE9zY2ls
bGF0b3JOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgaWYgKGZyYW1l
c1RvUHJvY2VzcyA+IG1fcGhhc2VJbmNyZW1lbnRzLnNpemUoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdl
IHVzZSB0cnlIb2xkTG9jaygpIGluc3RlYWQuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9j
ayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgewotICAgICAgICAvLyBUb28gYmFk
IC0gdHJ5SG9sZExvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBjaGFu
Z2luZyB3YXZlLXRhYmxlcy4KKyAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9u
IHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUxvY2soKSBpbnN0ZWFkLgorICAgIExvY2tlciBsb2Nr
ZXIgeyBEZWZlckxvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2Nr
KCkpIHsKKyAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUxvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUg
aW4gdGhlIG1pZGRsZSBvZiBjaGFuZ2luZyB3YXZlLXRhYmxlcy4KICAgICAgICAgb3V0cHV0QnVz
Lnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwCmluZGV4IDdjY2YyNGQ2NzBiN2Y2ZTFlZjFhMzc3
OWY5YjcwNDg2ODJmZmNlZDcuLjk0MWNiNjYxNDVjNzg5MjVlODA0NzhkM2E5MzQ1YTMyZTk4MGY1
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9k
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNw
cApAQCAtMTI5LDEwICsxMjksMTAgQEAgdm9pZCBQYW5uZXJOb2RlOjpwcm9jZXNzKHNpemVfdCBm
cmFtZXNUb1Byb2Nlc3MpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyBUaGUgYXVkaW8gdGhy
ZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUhvbGRMb2NrKCkgaW5z
dGVhZC4KLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwotICAg
IGlmICghbG9ja2VyKSB7Ci0gICAgICAgIC8vIFRvbyBiYWQgLSB0cnlIb2xkTG9jaygpIGZhaWxl
ZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGNoYW5naW5nIHRoZSBwYW5uZXIuCisgICAg
Ly8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0
cnlMb2NrKCkgaW5zdGVhZC4KKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nl
c3NMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKSB7CisgICAgICAgIC8vIFRvbyBi
YWQgLSB0cnlMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdp
bmcgdGhlIHBhbm5lci4KICAgICAgICAgZGVzdGluYXRpb24tPnplcm8oKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
U2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCmluZGV4IDIyZTk3ZThhYTI1ZWFjMmY3MDhlMjNmNzZh
ODliMjhkOTMwMzAxMzAuLjcyYmVhZGY0ZDcwMDQyMGFhNDZjNjVmZGQyNzhiZDJkZDEwMWU2ZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vz
c29yTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQ
cm9jZXNzb3JOb2RlLmNwcApAQCAtMTU4LDggKzE1OCw4IEBAIHZvaWQgU2NyaXB0UHJvY2Vzc29y
Tm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgIHVuc2lnbmVkIGJ1ZmZl
ckluZGV4ID0gdGhpcy0+YnVmZmVySW5kZXgoKTsKICAgICBBU1NFUlQoYnVmZmVySW5kZXggPCBi
dWZmZXJDb3VudCk7CiAKLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fYnVmZmVyTG9j
a3NbYnVmZmVySW5kZXhdKTsKLSAgICBpZiAoIWxvY2tlcikgeworICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fYnVmZmVyTG9ja3NbYnVmZmVySW5kZXhdIH07CisgICAgaWYgKCFsb2Nr
ZXIudHJ5TG9jaygpKSB7CiAgICAgICAgIC8vIFdlJ3JlIGxhdGUgaW4gaGFuZGxpbmcgdGhlIHBy
ZXZpb3VzIHJlcXVlc3QuIFRoZSBtYWluIHRocmVhZCBtdXN0IGJlCiAgICAgICAgIC8vIHZlcnkg
YnVzeS4gVGhlIGJlc3Qgd2UgY2FuIGRvIGlzIGNsZWFyIG91dCB0aGUgYnVmZmVyIG91cnNlbGYg
aGVyZS4KICAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcAppbmRleCAxMjA4
ODUwODA4OTAzNjFkNGM0MGFhNmFjYWI5NTRiYTcwMGI1NzI5Li4zOGQ3N2RiNTViNjFmYjUwMDJk
Y2RmYTI5ZDFiMzJjZmIwZDU2ZDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5jcHAKQEAgLTgzLDEwICs4MywxMCBA
QCB2b2lkIFdhdmVTaGFwZXJQcm9jZXNzb3I6OnByb2Nlc3MoY29uc3QgQXVkaW9CdXMqIHNvdXJj
ZSwgQXVkaW9CdXMqIGRlc3RpbmF0aW9uLAogICAgIGlmICghY2hhbm5lbENvdW50TWF0Y2hlcykK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBv
biB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlIb2xkTG9jaygpIGluc3RlYWQuCi0gICAgYXV0byBs
b2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgewot
ICAgICAgICAvLyBUb28gYmFkIC0gdHJ5SG9sZExvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4g
dGhlIG1pZGRsZSBvZiBhIHNldEN1cnZlKCkgY2FsbC4KKyAgICAvLyBUaGUgYXVkaW8gdGhyZWFk
IGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUxvY2soKSBpbnN0ZWFkLgor
ICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKKyAgICBpZiAo
IWxvY2tlci50cnlMb2NrKCkpIHsKKyAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUxvY2soKSBmYWls
ZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBhIHNldEN1cnZlKCkgY2FsbC4KICAgICAg
ICAgZGVzdGluYXRpb24tPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAK
aW5kZXggZWIyZDNhYThkNjM3ZTRkNGJhNjNhMTM4MTgwYTA3ZGIyOWM0MDZmNS4uNzE3MWQ4Mzgw
MjU5MWRmMGQzZGEwOTA4OWFiNDVmNDNiZDA0OGZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI2MzMsNyAr
MjYzMyw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlVmVydGV4QXJyYXko
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdCogYXJyYXlPYmplCiAKICAgICBpZiAoIWFycmF5T2JqZWN0
LT5pc0RlZmF1bHRPYmplY3QoKSAmJiBhcnJheU9iamVjdCA9PSBtX2JvdW5kVmVydGV4QXJyYXlP
YmplY3QpIHsKICAgICAgICAgLy8gYmluZFZlcnRleEFycmF5IGdyYWJzIHRoZSBsb2NrIGludGVy
bmFsbHkuCi0gICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBsb2NrZXIudW5s
b2NrKCk7CiAgICAgICAgIGJpbmRWZXJ0ZXhBcnJheShudWxscHRyKTsgLy8gVGhlIGRlZmF1bHQg
VkFPIHdhcyByZW1vdmVkIGluIE9wZW5HTCAzLjMgYnV0IG5vdCBmcm9tIFdlYkdMIDI7IGJpbmQg
dGhlIGRlZmF1bHQgZm9yIFdlYkdMIHRvIHVzZS4KICAgICAgICAgbG9ja2VyID0gTG9ja2VyIHsg
b2JqZWN0R3JhcGhMb2NrKCkgfTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKaW5kZXggZWI1NGYwZDUxZDc4NjBiOWY2MDQwZDg5
MzU4ODQ0ODgyYTY1YmI2Mi4uZmY0NTYxN2JmMzhkMmYzYTJkNjZkNGRjYTdiM2Q2MDRjMzQyNjY3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5h
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRp
b24uaApAQCAtOTYsMTQgKzk2LDEzIEBAIGlubGluZSB2b2lkIEF1ZGlvRGVzdGluYXRpb246OmNs
ZWFyQ2FsbGJhY2soKQogCiBpbmxpbmUgdm9pZCBBdWRpb0Rlc3RpbmF0aW9uOjpjYWxsUmVuZGVy
Q2FsbGJhY2soQXVkaW9CdXMqIHNvdXJjZUJ1cywgQXVkaW9CdXMqIGRlc3RpbmF0aW9uQnVzLCBz
aXplX3QgZnJhbWVzVG9Qcm9jZXNzLCBjb25zdCBBdWRpb0lPUG9zaXRpb24mIG91dHB1dFBvc2l0
aW9uKQogewotICAgIGlmIChtX2NhbGxiYWNrTG9jay50cnlMb2NrKCkpIHsKLSAgICAgICAgTG9j
a2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fY2FsbGJhY2tMb2NrIH07Ci0gICAgICAg
IGlmIChtX2NhbGxiYWNrKSB7Ci0gICAgICAgICAgICBtX2NhbGxiYWNrLT5yZW5kZXIoc291cmNl
QnVzLCBkZXN0aW5hdGlvbkJ1cywgZnJhbWVzVG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlvbik7Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJM
b2NrLCBtX2NhbGxiYWNrTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgeworICAg
ICAgICBkZXN0aW5hdGlvbkJ1cy0+emVybygpOworICAgICAgICByZXR1cm47CiAgICAgfQotICAg
IGRlc3RpbmF0aW9uQnVzLT56ZXJvKCk7CisgICAgaWYgKG1fY2FsbGJhY2spCisgICAgICAgIG1f
Y2FsbGJhY2stPnJlbmRlcihzb3VyY2VCdXMsIGRlc3RpbmF0aW9uQnVzLCBmcmFtZXNUb1Byb2Nl
c3MsIG91dHB1dFBvc2l0aW9uKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKaW5kZXgg
MjdiMjk4MmRjM2ZkOTE2ODVkMzE3YTdlZDFhOWMxZTZlZTQ3YjI2Zi4uZmQ4ODU2ZmI2Mjc5ZDA0
YjM3NjYwM2ExMmRjZTE1NDdhYzRjNDJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCkBAIC0yMDIsOCArMjAyLDggQEAgdm9pZCBS
ZXZlcmJDb252b2x2ZXI6OnByb2Nlc3MoY29uc3QgQXVkaW9DaGFubmVsKiBzb3VyY2VDaGFubmVs
LCBBdWRpb0NoYW5uZWwqIGQKICAgICAvLyBzaWduYWwgZnJvbSB0aW1lIHRvIHRpbWUsIHNpbmNl
IHdlJ2xsIGdldCB0byBpdCB0aGUgbmV4dCB0aW1lIHdlJ3JlIGNhbGxlZC4gIFdlJ3JlIGNhbGxl
ZCByZXBlYXRlZGx5CiAgICAgLy8gYW5kIGZyZXF1ZW50bHkgKGFyb3VuZCBldmVyeSAzbXMpLiAg
VGhlIGJhY2tncm91bmQgdGhyZWFkIGlzIHByb2Nlc3Npbmcgd2VsbCBpbnRvIHRoZSBmdXR1cmUg
YW5kIGhhcyBhIGNvbnNpZGVyYWJsZSBhbW91bnQgb2YgCiAgICAgLy8gbGVld2F5IGhlcmUuLi4K
LSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fYmFja2dyb3VuZFRocmVhZExvY2spOwot
ICAgIGlmICghbG9ja2VyKQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fYmFja2dy
b3VuZFRocmVhZExvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIG1fbW9yZUlucHV0QnVmZmVyZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25D
b2NvYS5jcHAKaW5kZXggMzkyYzM2MTQwNGZjMmM5NTBlYmI5Mzg4OWE2MjljYjVhMzcxZTQyYS4u
NTU3NjdjMTk3MzY1ZDI5YTcxNjc2MGI0ZTcxOTQ2MWEyNWVjNzA3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0
aW9uQ29jb2EuY3BwCkBAIC0yMTksMTAgKzIxOSwxMCBAQCBPU1N0YXR1cyBBdWRpb0Rlc3RpbmF0
aW9uQ29jb2E6OnJlbmRlcihkb3VibGUgc2FtcGxlVGltZSwgdWludDY0X3QgaG9zdFRpbWUsIFVJ
bgogICAgIH0KIAogICAgIC8vIFdoZW4gdGhlcmUgaXMgYSBBdWRpb1dvcmtsZXQsIHdlIGRvIHJl
bmRlcmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhyZWFkLgotICAgIGlmICghbV9kaXNwYXRjaFRv
UmVuZGVyVGhyZWFkTG9jay50cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9j
aywgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxv
Y2soKSkKICAgICAgICAgcmV0dXJuIC0xOwogCi0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9j
a1RhZyB7IH0sIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2sgfTsKICAgICBpZiAoIW1fZGlz
cGF0Y2hUb1JlbmRlclRocmVhZCkKICAgICAgICAgcmVuZGVyT25SZW5kZXJpbmdUaGVhZElmUGxh
eWluZyhmcmFtZXNUb1JlbmRlcik7CiAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3Vy
Y2VQcm92aWRlckdTdHJlYW1lci5jcHAKaW5kZXggZjc3NWEzMmZkNDc4MDJlZTUzODg1NzE2M2Vk
Nzc5YTEyMTM4Y2Q0Ny4uM2MxMGQ4M2I0OGNkYjFhMmMxMDRkNDM3NjUyZDNlYWIwZjNiYTQzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlv
U291cmNlUHJvdmlkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNwcApAQCAtMTU5
LDEwICsxNTksMTAgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyOjpjb25maWd1
cmVBdWRpb0JpbihHc3RFbGVtZW50KiBhdWRpb0JpbiwgR3N0RWwKIHZvaWQgQXVkaW9Tb3VyY2VQ
cm92aWRlckdTdHJlYW1lcjo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFt
ZXNUb1Byb2Nlc3MpCiB7CiAgICAgR1NUX1RSQUNFKCJGZXRjaGluZyBidWZmZXJzIGZyb20gYWRh
cHRlcnMiKTsKLSAgICBpZiAoIW1fYWRhcHRlckxvY2sudHJ5TG9jaygpKQorICAgIExvY2tlciBs
b2NrZXIgeyBEZWZlckxvY2ssIG1fYWRhcHRlckxvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlM
b2NrKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tU
YWcgeyB9LCBtX2FkYXB0ZXJMb2NrIH07CiAgICAgZm9yIChhdXRvJiBpdCA6IG1fYWRhcHRlcnMp
CiAgICAgICAgIGNvcHlHU3RyZWFtZXJCdWZmZXJzVG9BdWRpb0NoYW5uZWwoaXQudmFsdWUuZ2V0
KCksIGJ1cywgaXQua2V5IC0gMSwgZnJhbWVzVG9Qcm9jZXNzKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJj
ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIv
V2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDZlZjgzNTI4M2ZmMzUzYThm
ZTEyMjdiMDcwYTFkZGQ1NmQ0YTNmOGYuLmM3ZTc2ODYxOWI0N2UzMDkxM2E4Y2Q2ODk0ZDQ4Njkz
NjM3ZTI5ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJl
YW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVy
LmNwcApAQCAtNDA4LDExICs0MDgsMTAgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNS
ZW5kZXJJdGVyYXRpb24oV2ViS2l0V2ViQXVkaW9TcmMqIHNyYykKICAgICAgICAgcHJpdi0+ZGlz
cGF0Y2hEb25lID0gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKCFwcml2LT5kaXNwYXRjaFRvUmVu
ZGVyVGhyZWFkTG9jay50cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
cHJpdi0+ZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlM
b2NrKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tU
YWcgeyB9LCBwcml2LT5kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jayB9OwotCiAgICAgaWYgKCFw
cml2LT5kaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24pCiAgICAgICAgIHdlYktpdFdlYkF1
ZGlvU3JjUmVuZGVyQW5kUHVzaEZyYW1lcyhHUmVmUHRyPEdzdEVsZW1lbnQ+KEdTVF9FTEVNRU5U
X0NBU1Qoc3JjKSksIFdURk1vdmUoKmNoYW5uZWxCdWZmZXJMaXN0KSk7CiAgICAgZWxzZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCmluZGV4
IGMwNjRjY2U0Y2E4NjJiZDQ2ODkyODQxZmZhNWJjMTlmYjdmMjEzZGEuLjI4NDhiYWIxMDg5ZGJl
ZTExNDFmZDFlNjk1NDAxZmVlYTQyN2E4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCkBAIC0xMzUsNyArMTM1LDggQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHB1cmdlVGltZXJGaXJlZCgpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwotICAgICAgICBpZiAoYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhsb2NrKCkp
KQorICAgICAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBsb2NrKCkgfTsKKyAgICAgICAg
aWYgKGxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgICAgICBjbGVhclNjcmF0Y2hCdWZmZXIoKTsK
ICAgICB9CiAKQEAgLTY5NCw4ICs2OTUsOCBAQCB2b2lkIFNoYWRvd0JsdXI6OmRyYXdSZWN0U2hh
ZG93V2l0aFRpbGluZyhjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29ucwogewog
ICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gbGF5ZXJJbWFnZUJ1ZmZlcjsKICNpZiBVU0UoQ0cpCi0g
ICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhTY3JhdGNoQnVmZmVyOjpsb2NrKCkpOwotICAg
IGlmIChsb2NrZXIpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBTY3JhdGNoQnVm
ZmVyOjpsb2NrKCkgfTsKKyAgICBpZiAobG9ja2VyLnRyeUxvY2soKSkgewogICAgICAgICBsYXll
ckltYWdlQnVmZmVyID0gU2NyYXRjaEJ1ZmZlcjo6c2luZ2xldG9uKCkuZ2V0U2NyYXRjaEJ1ZmZl
cih0ZW1wbGF0ZVNpemUpOwogICAgICAgICBpZiAoIWxheWVySW1hZ2VCdWZmZXIpCiAgICAgICAg
ICAgICByZXR1cm47CkBAIC03NTQsOCArNzU1LDggQEAgdm9pZCBTaGFkb3dCbHVyOjpkcmF3SW5z
ZXRTaGFkb3dXaXRoVGlsaW5nKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb24K
IHsKICAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+IGxheWVySW1hZ2VCdWZmZXI7CiAjaWYgVVNFKENH
KQotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2soU2NyYXRjaEJ1ZmZlcjo6bG9jaygpKTsK
LSAgICBpZiAobG9ja2VyKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgU2NyYXRj
aEJ1ZmZlcjo6bG9jaygpIH07CisgICAgaWYgKGxvY2tlci50cnlMb2NrKCkpIHsKICAgICAgICAg
bGF5ZXJJbWFnZUJ1ZmZlciA9IFNjcmF0Y2hCdWZmZXI6OnNpbmdsZXRvbigpLmdldFNjcmF0Y2hC
dWZmZXIodGVtcGxhdGVTaXplKTsKICAgICAgICAgaWYgKCFsYXllckltYWdlQnVmZmVyKQogICAg
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDLm1tCmluZGV4IDQ3OTc2ODNiODBiYjQ5MDVhN2E4MTY4ODdhNDM1NGQxMjk4ZWNk
NDEuLjRiY2YzYTEwYzNiMmRlZGM3MjkyMTgxMjk1MGQ4OGYwMjkyYjgwNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTk0LDcgKzk0
LDcgQEAgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6On5BdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQygpCiAKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dChB
dWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewotICAgIC8vIFByb3RlY3Qg
YWNjZXNzIHRvIG1fcmluZ0J1ZmZlciBieSB1c2luZyB0cnlIb2xkTG9jaygpLiBJZiB3ZSBmYWls
ZWQKKyAgICAvLyBQcm90ZWN0IGFjY2VzcyB0byBtX3JpbmdCdWZmZXIgYnkgdXNpbmcgdHJ5TG9j
aygpLiBJZiB3ZSBmYWlsZWQKICAgICAvLyB0byBhcXVpcmUsIGEgcmUtY29uZmlndXJlIGlzIHVu
ZGVyd2F5LCBhbmQgbV9yaW5nQnVmZmVyIGlzIHVuc2FmZSB0byBhY2Nlc3MuCiAgICAgLy8gRW1p
dCBzaWxlbmNlLgogICAgIGlmICghbV90YXBTdG9yYWdlKSB7CkBAIC0xMDIsOCArMTAyLDggQEAg
dm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBi
dXMsIHNpemVfdCBmcmFtZXNUb1Byb2MKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1
dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV90YXBTdG9yYWdlLT5sb2NrKTsKLSAgICBpZiAoIWxv
Y2tlciB8fCAhbV9yaW5nQnVmZmVyKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
bV90YXBTdG9yYWdlLT5sb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpIHx8ICFtX3Jp
bmdCdWZmZXIpIHsKICAgICAgICAgYnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggODEzOTk2Yzc2YzY0MWI3Y2FlMDQ2ZjU5
NzFlYzc0N2NmOTFjZTlkNy4uODFlNzU3M2VkNDIxNWRjZDdlNDQwYTFhYzhmMzViZTVjMTJhNWIx
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMjU0LDggKzI1NCw4IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnF1ZXVlVmlkZW9TYW1wbGUo
TWVkaWFTYW1wbGUmIHNhbXBsCiAgICAgaWYgKCFtX3Zpc2libGUpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2Nr
LCBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckxvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlM
b2NrKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghbV9jYW5FbnF1ZXVlRGlzcGxheUxh
eWVyIHx8ICFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciB8fCBtX3NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci0+ZGlkRmFpbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAppbmRl
eCAxMWJlYTEyYjY2ZGM1NDYyNWE4MjlmOTA3NGE5MmMwMzc0Y2UyODk1Li4xNWI1NzI4ZjdmZGJh
ODExNzFmMjdjYzg5NjI4OTFlMTg3N2JiNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVh
bWVyLmNwcApAQCAtOTksNyArOTksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAgICAgYXV0byBzYW1wbGUgPSBXVEZNb3ZlKG1fc2FtcGxlKTsKLSAgICAgICAg
bG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tlci51bmxvY2soKTsKICAgICAgICAg
aWYgKExJS0VMWShHU1RfSVNfU0FNUExFKHNhbXBsZS5nZXQoKSkpKQogICAgICAgICAgICAgd2Vi
a2l0VmlkZW9TaW5rUmVwYWludFJlcXVlc3RlZChzaW5rLCBzYW1wbGUuZ2V0KCkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dl
YktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9u
RGVjcnlwdG9yR1N0cmVhbWVyLmNwcAppbmRleCAzMjAxNzRkNWJmZTg3NmRiOGMxNDIzNTlhOGUx
YTAxYWE4NmMwZmRiLi5lOGU3MjlmODMwMWE4NzY2ZTY0YmY2MzUyZjAyMDZhN2E2M2VmMGE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1l
L1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5j
cnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKQEAgLTM5Nyw3ICszOTcsNyBAQCBzdGF0aWMg
Z2Jvb2xlYW4gc2lua0V2ZW50SGFuZGxlcihHc3RCYXNlVHJhbnNmb3JtKiB0cmFucywgR3N0RXZl
bnQqIGV2ZW50KQogICAgICAgICAgICAgYm9vbCBpc0NkbVByb3h5QXR0YWNoZWQgPSBwcml2LT5j
ZG1Qcm94eTsKICAgICAgICAgICAgIHByaXYtPmlzRmx1c2hpbmcgPSB0cnVlOwogICAgICAgICAg
ICAgaWYgKGlzQ2RtUHJveHlBdHRhY2hlZCkgewotICAgICAgICAgICAgICAgIGxvY2tlci51bmxv
Y2tFYXJseSgpOworICAgICAgICAgICAgICAgIGxvY2tlci51bmxvY2soKTsKICAgICAgICAgICAg
ICAgICBwcml2LT5jZG1Qcm94eS0+YWJvcnRXYWl0aW5nRm9yS2V5KCk7CiAgICAgICAgICAgICB9
IGVsc2UKICAgICAgICAgICAgICAgICBwcml2LT5jb25kaXRpb24ubm90aWZ5T25lKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dl
YktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4
IDZkMDNkZjk2YWQ0Mzc5MGQ1YWYzZDJiNzJkNzcwMGQxNmZmMmE0ZmEuLmQ0ZGUxZDllMWRiZDI5
MmE2NDliMWE5OWUzNDRkOTI2ODJmODQyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
V2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC01MDksNyArNTA5LDcgQEAgc3RhdGlj
IHZvaWQgd2ViS2l0TWVkaWFTcmNMb29wKHZvaWQqIHVzZXJEYXRhKQogICAgICAgICB9CiAKICAg
ICAgICAgLy8gUHVzaCB0aGUgYnVmZmVyIHdpdGhvdXQgdGhlIHN0cmVhbWluZ01lbWJlcnMgbG9j
ayBzbyB0aGF0IGZsdXNoZXMgY2FuIGhhcHBlbiB3aGlsZSBpdCB0cmF2ZWxzIGRvd25zdHJlYW0u
Ci0gICAgICAgIHN0cmVhbWluZ01lbWJlcnMubG9ja0hvbGRlcigpLnVubG9ja0Vhcmx5KCk7Cisg
ICAgICAgIHN0cmVhbWluZ01lbWJlcnMubG9ja0hvbGRlcigpLnVubG9jaygpOwogCiAgICAgICAg
IEFTU0VSVChHU1RfQlVGRkVSX1BUU19JU19WQUxJRChidWZmZXIuZ2V0KCkpKTsKICAgICAgICAg
R1NUX1RSQUNFX09CSkVDVChwYWQsICJQdXNoaW5nIGJ1ZmZlciBkb3duc3RyZWFtOiAlIiBHU1Rf
UFRSX0ZPUk1BVCwgYnVmZmVyLmdldCgpKTsKQEAgLTUyNSw3ICs1MjUsNyBAQCBzdGF0aWMgdm9p
ZCB3ZWJLaXRNZWRpYVNyY0xvb3Aodm9pZCogdXNlckRhdGEpCiAgICAgICAgIC8vIEVPUyBldmVu
dHMgYW5kIG90aGVyIGVucXVldWVkIGV2ZW50cyBhcmUgYWxzbyBzZW50IHVubG9ja2VkIHNvIHRo
ZXkgY2FuIHJlYWN0IHRvIGZsdXNoZXMgaWYgbmVjZXNzYXJ5LgogICAgICAgICBHUmVmUHRyPEdz
dEV2ZW50PiBldmVudCA9IEdSZWZQdHI8R3N0RXZlbnQ+KEdTVF9FVkVOVChvYmplY3QubGVha1Jl
ZigpKSk7CiAKLSAgICAgICAgc3RyZWFtaW5nTWVtYmVycy5sb2NrSG9sZGVyKCkudW5sb2NrRWFy
bHkoKTsKKyAgICAgICAgc3RyZWFtaW5nTWVtYmVycy5sb2NrSG9sZGVyKCkudW5sb2NrKCk7CiAg
ICAgICAgIEdTVF9ERUJVR19PQkpFQ1QocGFkLCAiUHVzaGluZyBldmVudCBkb3duc3RyZWFtOiAl
IiBHU1RfUFRSX0ZPUk1BVCwgZXZlbnQuZ2V0KCkpOwogICAgICAgICBib29sIGV2ZW50SGFuZGxl
ZCA9IGdzdF9wYWRfcHVzaF9ldmVudChwYWQsIEdSZWZQdHI8R3N0RXZlbnQ+KGV2ZW50KS5sZWFr
UmVmKCkpOwogICAgICAgICBpZiAoIWV2ZW50SGFuZGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyVW5pdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2Nv
YS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCmluZGV4IDVkY2VhMWE0MDg2
ZTIwZTE1N2ViYmNkNzE5YmMzNjYwODkwNGI2MGMuLmU2ZjJlNmUyZGY5NGY4NGYxZGMxMDQ4ZDNk
NTliZTQ2ZmEyN2QyOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJVbml0LmNwcApAQCAtMTQxLDEwICsxNDEsMTAgQEAgdm9pZCBBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnJldHJpZXZlRm9ybWF0RGVzY3JpcHRpb24oQ29t
cGxldGlvbkhhbmQKIAogdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnVw
ZGF0ZVJlbmRlclNvdXJjZXNJZk5lY2Vzc2FyeSgpCiB7Ci0gICAgaWYgKCFtX3BlbmRpbmdSZW5k
ZXJTb3VyY2VzTG9jay50cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
bV9wZW5kaW5nUmVuZGVyU291cmNlc0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9
LCBtX3BlbmRpbmdSZW5kZXJTb3VyY2VzTG9jayB9OwogICAgIGlmICghbV9oYXNQZW5kaW5nUmVu
ZGVyU291cmNlcykKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNl
UHJvdmlkZXJDb2NvYS5tbQppbmRleCA1NzZmNDRlOTJjNThiOTNjMGI0MGQ2NjQ5OTgwYmM3ZTkw
YTVlYWZiLi4zNDYxNDFiMDFjM2QxZDc4Y2E5ZmY1NGNhYjY3Mjk5N2ZhOTEyNTNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0KQEAgLTY1LDggKzY1LDggQEAg
dm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnNldENsaWVudChBdWRpb1NvdXJjZVBy
b3ZpZGVyQ2xpZW50KiBjbGllbnQpCiAKIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29h
Ojpwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsK
LSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fbG9jayk7Ci0gICAgaWYgKCFsb2NrZXIg
fHwgIW1fZGF0YVNvdXJjZSB8fCAhbV9hdWRpb0J1ZmZlckxpc3QpIHsKKyAgICBMb2NrZXIgbG9j
a2VyIHsgRGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkgfHwg
IW1fZGF0YVNvdXJjZSB8fCAhbV9hdWRpb0J1ZmZlckxpc3QpIHsKICAgICAgICAgYnVzLT56ZXJv
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck9yV29ya2xldFRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlck9yV29ya2xldFRocmVhZC5jcHAKaW5kZXggNDc3ZDk2NzJjNzEyYjQ2ZmM0ZWJkN2Ey
ODk3ZTc3ZWIxNTgwODQ4NC4uY2Y3NDA2Nzk0ODQ5NWZhMDhkYmQ3MDQyNWY4NzU4MDMxYjUwNGYw
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJl
YWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0VGhyZWFk
LmNwcApAQCAtMjA3LDggKzIwNyw4IEBAIHZvaWQgV29ya2VyT3JXb3JrbGV0VGhyZWFkOjpzdG9w
KEZ1bmN0aW9uPHZvaWQoKT4mJiBzdG9wcGVkQ2FsbGJhY2spCiAgICAgLy8gTXV0ZXggcHJvdGVj
dGlvbiBpcyBuZWNlc3NhcnkgdG8gZW5zdXJlIHRoYXQgbV93b3JrZXJHbG9iYWxTY29wZSBpc24n
dCBjaGFuZ2VkIGJ5CiAgICAgLy8gV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWQoKSB3aGlsZSB3
ZSdyZSBhY2Nlc3NpbmcgaXQuIE5vdGUgYWxzbyB0aGF0IHN0b3AoKSBjYW4KICAgICAvLyBiZSBj
YWxsZWQgYmVmb3JlIG1fd29ya2VyR2xvYmFsU2NvcGUgaXMgZnVsbHkgY3JlYXRlZC4KLSAgICBh
dXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fdGhyZWFkQ3JlYXRpb25BbmRHbG9iYWxTY29wZUxv
Y2spOwotICAgIGlmICghbG9ja2VyKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
bV90aHJlYWRDcmVhdGlvbkFuZEdsb2JhbFNjb3BlTG9jayB9OworICAgIGlmICghbG9ja2VyLnRy
eUxvY2soKSkgewogICAgICAgICAvLyBUaGUgdGhyZWFkIGlzIHN0aWxsIHN0YXJ0aW5nLCBzcGlu
IHRoZSBydW5sb29wIGFuZCB0cnkgYWdhaW4gdG8gYXZvaWQgZGVhZGxvY2tzIGlmIHRoZSB3b3Jr
ZXIgdGhyZWFkCiAgICAgICAgIC8vIG5lZWRzIHRvIGludGVyYWN0IHdpdGggdGhlIG1haW4gdGhy
ZWFkIGR1cmluZyBzdGFydHVwLgogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBzdG9w
cGVkQ2FsbGJhY2sgPSBXVEZNb3ZlKHN0b3BwZWRDYWxsYmFjayldKCkgbXV0YWJsZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcAppbmRl
eCBkNzRhNDczZTIwYzkwMThmZTM2ZDVhYjZkZmQ4YWE1MmI1YTY5YTUxLi45ODM4YzBjMTFjYjZh
NTRlMTkzNWY0MGQxMGJkYjc4MjcxMTBjZDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFzZS5jcHAKQEAgLTU3Miw3ICs1NzIsNyBAQCB2b2lk
IEljb25EYXRhYmFzZTo6bG9hZEljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCwg
QWxsb3dEYXRhYmFzZVdyaXRlCiAgICAgICAgICAgICAgICAgYXV0byBpY29uID0gaXQtPnZhbHVl
LmZpcnN0OwogICAgICAgICAgICAgICAgIGl0LT52YWx1ZS5zZWNvbmQgPSBNb25vdG9uaWNUaW1l
Ojpub3coKTsKICAgICAgICAgICAgICAgICBzdGFydENsZWFyTG9hZGVkSWNvbnNUaW1lcigpOwot
ICAgICAgICAgICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICAgICAgICAgIGxv
Y2tlci51bmxvY2soKTsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3Zl
KGljb24pKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CkBAIC01OTYs
NyArNTk2LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OmxvYWRJY29uRm9yUGFnZVVSTChjb25zdCBT
dHJpbmcmIHBhZ2VVUkwsIEFsbG93RGF0YWJhc2VXcml0ZQogCiAgICAgICAgICAgICBhdXRvIGlj
b24gPSBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmZpcnN0OwogICAgICAgICAgICAgc3RhcnRD
bGVhckxvYWRlZEljb25zVGltZXIoKTsKLSAgICAgICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgp
OworICAgICAgICAgICAgbG9ja2VyLnVubG9jaygpOwogICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoV1RGTW92ZShpY29uKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAK
aW5kZXggZjQ0YzQxODkyYjM4ZjViYWQzMTk2ZDY5YTFjMTMyNGNlOTNiNWVjMy4uNDhhMzY2MTY5
YjNmZWE2M2RhNDI4NzEzNjAxZTZiZGYzNmZkNWQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0zMjQs
MTEgKzMyNCwxMCBAQCB2b2lkIExpYldlYlJUQ0NvZGVjczo6Y29tcGxldGVkRGVjb2RpbmcoUlRD
RGVjb2RlcklkZW50aWZpZXIgZGVjb2RlcklkZW50aWZpZXIsCiAgICAgaWYgKCFkZWNvZGVyKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZWRJbWFnZUNhbGxiYWNr
TG9jay50cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgZGVjb2Rlci0+
ZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwg
ZGVjb2Rlci0+ZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrIH07Ci0KICAgICBpZiAoIWRlY29kZXIt
PmRlY29kZWRJbWFnZUNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAKQEAgLTQ5MiwxMSArNDkx
LDEwIEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWRFbmNvZGluZyhSVENFbmNvZGVy
SWRlbnRpZmllciBpZGVudGlmaWVyLCBJUEM6OkRhCiAgICAgaWYgKCFlbmNvZGVyKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAoIWVuY29kZXItPmVuY29kZWRJbWFnZUNhbGxiYWNrTG9jay50
cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgZW5jb2Rlci0+ZW5jb2Rl
ZEltYWdlQ2FsbGJhY2tMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgZW5jb2Rl
ci0+ZW5jb2RlZEltYWdlQ2FsbGJhY2tMb2NrIH07Ci0KICAgICBpZiAoIWVuY29kZXItPmVuY29k
ZWRJbWFnZUNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlYWIwODNmMWUwN2Q0NWU4OGFkYjE0MDFk
YmI0YzIxNWI1Mzc4NTRhLi4yMzUzNTc5N2RmNTdkM2FhMTM5MTc3MGVkYmMyZmQxNjg2MzIwOWFh
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUg
d2l0aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNDUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBp
cyBpbmNvbXBhdGlibGUgd2l0aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBJbnN0ZWFk
LCB1c2UgdGhlIGZvbGxvd2luZyBwYXR0ZXJuOgorICAgICAgICBgYGAKKyAgICAgICAgTG9ja2Vy
IGxvY2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisgICAgICAgIGlmIChsb2NrZXIudHJ5TG9j
aygpKQorICAgICAgICBgYGAKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0No
ZWNrZWRMb2NrVGVzdC5jcHA6CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNlIExvY2tIb2xkZXIgd2l0aCBMb2NrZXIgaW4gbG9j
YWwgdmFyaWFibGVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9D
aGVja2VkTG9ja1Rlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tl
ZExvY2tUZXN0LmNwcAppbmRleCBkODJlZTFhMmU1YmRlMGRjYWJmMzVjZTlkYzczMTEyMTEwMjI2
MjRhLi5mYmQwMmIzYzM0YjA0YzU2Y2FlZmMzNGU0OGE5Nzc1NmZiY2E5NjE2IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkTG9ja1Rlc3QuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRMb2NrVGVzdC5jcHAKQEAgLTM4
LDkgKzM4LDkgQEAgcHVibGljOgogICAgIH0KICAgICB2b2lkIG1heWJlU2V0T3RoZXJWYWx1ZShp
bnQgdmFsdWUpCiAgICAgewotICAgICAgICBpZiAoIW1fb3RoZXJMb2NrLnRyeUxvY2soKSkKKyAg
ICAgICAgTG9ja2VyIGhvbGRMb2NrIHsgRGVmZXJMb2NrLCBtX290aGVyTG9jayB9OworICAgICAg
ICBpZiAoIWhvbGRMb2NrLnRyeUxvY2soKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
TG9ja2VyIGhvbGRMb2NrIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9vdGhlckxvY2sgfTsKICAgICAg
ICAgbV9vdGhlclZhbHVlID0gdmFsdWU7CiAgICAgfQogICAgIC8vIFRoaXMgZnVuY3Rpb24gY2Fu
IGJlIHVzZWQgdG8gbWFudWFsbHkgY2hlY2sgdGhhdCBjb21waWxlIGZhaWxzLgo=
</data>
<flag name="commit-queue"
          id="450623"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429433</attachid>
            <date>2021-05-22 16:16:59 -0700</date>
            <delta_ts>2021-05-22 16:35:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226145-20210522161658.patch</filename>
            <type>text/plain</type>
            <size>58138</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZjY3MTE3MDhhODUyMGY5MDcyMjIzNDExNThhODk2NDgzZjU5NmE2Li4yYzM5YzIxZDAzMWNkMWVi
ZGJkMDk5YThhNWIwZmFhMTUwOGI2Nzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3
aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlz
IGluY29tcGF0aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuIEluc3RlYWQs
IHVzZSB0aGUgZm9sbG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgRGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlMb2Nr
KCkpCisgICAgICAgIGBgYAorCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpT
Qzo6SGVhcDo6cmVzdW1lVGhlUGVyaXBoZXJ5KToKKyAgICAgICAgKiBydW50aW1lL1ZNVHJhcHMu
Y3BwOgorICAgICAgICAoSlNDOjpWTVRyYXBzOjp0cnlJbnN0YWxsVHJhcEJyZWFrcG9pbnRzKToK
KyAgICAgICAgKiB0b29scy9WTUluc3BlY3Rvci5jcHA6CisgICAgICAgIChKU0M6OlZNSW5zcGVj
dG9yOjpsb2NrKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlcGxhY2UgTG9ja0hvbGRlciB3aXRoIExvY2tlciBpbiBsb2NhbCB2YXJp
YWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKaW5kZXggYjcwYTNmM2U4MTM3MjcyNzA1YTA0YmVkMjM5NmNlMGZjOWViZjc0Yi4uYjdm
ZjcyZTA4OTA3MjYyNDc4MzA2ODVkYzFhZTkyNTk4NzZiMjczNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBA
QAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3aXRoIENsYW5n
IFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0
aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuIEluc3RlYWQsIHVzZSB0aGUg
Zm9sbG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
RGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlMb2NrKCkpCisgICAg
ICAgIGBgYAorCisgICAgICAgICogd3RmL0NoZWNrZWRMb2NrLmg6CisgICAgICAgICogd3RmL0xv
Y2tlci5oOgorICAgICAgICAoV1RGOjpMb2NrZXI6OkxvY2tlcik6CisgICAgICAgIChXVEY6Okxv
Y2tlcjo6fkxvY2tlcik6CisgICAgICAgIChXVEY6OkxvY2tlcjo6dHJ5TG9jayk6CisgICAgICAg
IChXVEY6OkxvY2tlcjo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgIChXVEY6OkxvY2tl
cjo6dW5sb2NrRWFybHkpOgorICAgICAgICAoV1RGOjpMb2NrZXI6Om9wZXJhdG9yPSk6CisgICAg
ICAgIChXVEY6OkxvY2tlcjo6dW5sb2NrKToKKyAgICAgICAgKFdURjo6TG9ja2VyOjpsb2NrKToK
KyAgICAgICAgKiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6bG9nKToKKyAg
ICAgICAgKFdURjo6TG9nZ2VyOjpsb2dWZXJib3NlKToKKyAgICAgICAgKiB3dGYvVGhyZWFkU2Fm
ZXR5QW5hbHlzaXMuaDoKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkb3B0IENoZWNrZWRMb2NrIGluIG1vcmUgcGxhY2VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZDA1N2QyNzEyNzA0YzgxOTBkYTQ0NDIyMDEzOTEyNmU1ZTIxZWE5Yy4uNzNkZmU2MTU5
ZTAwYmMzNTM2YWU2ZWYwN2EyMTE4MDE4YzFlMDdiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1
IEBACisyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRpYmxlIHdpdGggQ2xh
bmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21w
YXRpYmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcy4gSW5zdGVhZCwgdXNlIHRo
ZSBmb2xsb3dpbmcgcGF0dGVybjoKKyAgICAgICAgYGBgCisgICAgICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fbG9jayB9OworICAgICAgICBpZiAobG9ja2VyLnRyeUxvY2soKSkKKyAg
ICAgICAgYGBgCisKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQnVmZmVyU291cmNlTm9kZTo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1BhcmFtVGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRp
bWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFy
YW1UaW1lbGluZTo6dmFsdWVzRm9yRnJhbWVSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1BhcmFtVGltZWxpbmU6Omhhc1ZhbHVlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xl
dE5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb252b2x2ZXJOb2RlOjpwcm9jZXNzKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3MpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3Mp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6T3NjaWxsYXRvck5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vUGFubmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpw
cm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJvY2Vzcyk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldhdmVTaGFwZXJQcm9jZXNzb3I6OnByb2Nlc3MpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
RGVzdGluYXRpb246OmNhbGxSZW5kZXJDYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vUmV2ZXJiQ29udm9sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJldmVyYkNvbnZvbHZl
cjo6cHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5h
dGlvbkNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
cmVuZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQ
cm92aWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3Zp
ZGVyR1N0cmVhbWVyOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJL
aXRXZWJBdWRpb1NyY1JlbmRlckl0ZXJhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JhdGNoQnVmZmVyOjpwdXJn
ZVRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1cjo6ZHJhd1JlY3RTaGFk
b3dXaXRoVGlsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0JsdXI6OmRyYXdJbnNldFNo
YWRvd1dpdGhUaWxpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6ZW5xdWV1ZVZpZGVvU2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Ojp1cGRhdGVS
ZW5kZXJTb3VyY2VzSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpX
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
T3JXb3JrbGV0VGhyZWFkOjpzdG9wKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0IENoZWNrZWRMb2NrIGluIG1vcmUgcGxhY2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGZjYWM4NDUxYzhhOTM0NTIwOGFiNzFhOTM3OGE4MTc3ZTgxNjg4ODguLjJm
ZmE2N2Y3MzI5ZjhjOTU5NzlkYjFjOTk1ZmViNzVkNTQ5YzcwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUgd2l0
aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBp
bmNvbXBhdGlibGUgd2l0aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBJbnN0ZWFkLCB1
c2UgdGhlIGZvbGxvd2luZyBwYXR0ZXJuOgorICAgICAgICBgYGAKKyAgICAgICAgTG9ja2VyIGxv
Y2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisgICAgICAgIGlmIChsb2NrZXIudHJ5TG9jaygp
KQorICAgICAgICBgYGAKKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRl
ZERlY29kaW5nKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWRF
bmNvZGluZyk6CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBBZG9wdCBDaGVja2VkTG9jayBpbiBtb3JlIHBsYWNlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmNwcAppbmRleCBjMWNmODY0Mjc3MDUxYmEwMjEwNThjZjUxNGFkMzcyZmJh
NzQ4MjdiLi42OWJmMzI1NjZjZGYwODcwMzU4MTM1OWRlZGFhZGUzZTAyOTA3MGMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMTcwNyw3ICsxNzA3LDcgQEAgTkVWRVJfSU5M
SU5FIHZvaWQgSGVhcDo6cmVzdW1lVGhlUGVyaXBoZXJ5KCkKICAgICAgICAgICAgIGJvb2wgcmVt
b3ZlID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAodmlzaXRvci5oYXNBY2tub3dsZWRnZWRUaGF0
VGhlTXV0YXRvcklzUmVzdW1lZCgpKQogICAgICAgICAgICAgICAgIHJlbW92ZSA9IHRydWU7Ci0g
ICAgICAgICAgICBlbHNlIGlmIChhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKHZpc2l0b3Iucmln
aHRUb1J1bigpKSkgeworICAgICAgICAgICAgZWxzZSBpZiAoTG9ja2VyIGxvY2tlciB7IERlZmVy
TG9jaywgdmlzaXRvci5yaWdodFRvUnVuKCkgfTsgbG9ja2VyLnRyeUxvY2soKSkgewogICAgICAg
ICAgICAgICAgIHZpc2l0b3IudXBkYXRlTXV0YXRvcklzU3RvcHBlZChsb2NrZXIpOwogICAgICAg
ICAgICAgICAgIHJlbW92ZSA9IHRydWU7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxl
ckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCmluZGV4IGIyZDk5ZmJhODkyMjZkNGMyNDBjZGFi
OGY1YjA1NzU3ODFiZThkZTEuLjJiYjYyM2U5M2JkNTc5M2EzNDEyODc3MGNlNzBiMjc1NmEzZDY1
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCkBAIC0y
MjAsNyArMjIwLDcgQEAgdm9pZCBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Ojp0cmFja2lu
Z0NvbXBsZXRlKCkKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHNhbXBsaW5nUHJvZmlsZXItPmdl
dExvY2soKSB9OwogICAgICAgICBzYW1wbGluZ1Byb2ZpbGVyLT5wYXVzZShsb2NrZXIpOwogICAg
ICAgICBWZWN0b3I8U2FtcGxpbmdQcm9maWxlcjo6U3RhY2tUcmFjZT4gc3RhY2tUcmFjZXMgPSBz
YW1wbGluZ1Byb2ZpbGVyLT5yZWxlYXNlU3RhY2tUcmFjZXMobG9ja2VyKTsKLSAgICAgICAgbG9j
a2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tlci51bmxvY2soKTsKIAogICAgICAgICBS
ZWY8UHJvdG9jb2w6OlNjcmlwdFByb2ZpbGVyOjpTYW1wbGVzPiBzYW1wbGVzID0gYnVpbGRTYW1w
bGVzKHZtLCBXVEZNb3ZlKHN0YWNrVHJhY2VzKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2Nr
ZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuY3BwCmluZGV4IGE1MGM5NDIwODJhYWU0
YWQ0YTY0ZDQzOWU3OWI3NWJmMTg1MGNjMWIuLmUwZTUwNDRlZGZhZmNlMThkZTEzY2ZmYTBkZTM2
NzQ3MjkxNDI2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmNwcApAQCAtMjIyLDEyICsyMjIsMTIgQEAgdm9pZCBSZW1vdGVJbnNw
ZWN0b3JTb2NrZXRFbmRwb2ludDo6ZGlzY29ubmVjdChDb25uZWN0aW9uSUQgaWQpCiAgICAgaWYg
KGNvbnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2xpc3RlbmVycy5nZXQoaWQpKSB7CiAgICAgICAg
IG1fbGlzdGVuZXJzLnJlbW92ZShpZCk7CiAgICAgICAgIFNvY2tldDo6Y2xvc2UoY29ubmVjdGlv
bi0+c29ja2V0KTsKLSAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tl
ci51bmxvY2soKTsKICAgICAgICAgY29ubmVjdGlvbi0+bGlzdGVuZXIuZGlkQ2hhbmdlU3RhdHVz
KCp0aGlzLCBpZCwgTGlzdGVuZXI6OlN0YXR1czo6Q2xvc2VkKTsKICAgICB9IGVsc2UgaWYgKGNv
bnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2NsaWVudHMuZ2V0KGlkKSkgewogICAgICAgICBtX2Ns
aWVudHMucmVtb3ZlKGlkKTsKICAgICAgICAgU29ja2V0OjpjbG9zZShjb25uZWN0aW9uLT5zb2Nr
ZXQpOwotICAgICAgICBsb2NrZXIudW5sb2NrRWFybHkoKTsKKyAgICAgICAgbG9ja2VyLnVubG9j
aygpOwogICAgICAgICBjb25uZWN0aW9uLT5jbGllbnQuZGlkQ2xvc2UoKnRoaXMsIGlkKTsKICAg
ICB9IGVsc2UKICAgICAgICAgTE9HX0VSUk9SKCJFcnJvcjogQ2Fubm90IGRpc2Nvbm5lY3Q6IElu
dmFsaWQgaWQiKTsKQEAgLTI4Miw3ICsyODIsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclNvY2tl
dEVuZHBvaW50OjpyZWN2SWZFbmFibGVkKENvbm5lY3Rpb25JRCBpZCkKICAgICAgICAgaWYgKGF1
dG8gcmVhZFNpemUgPSBTb2NrZXQ6OnJlYWQoY29ubmVjdGlvbi0+c29ja2V0LCByZWN2QnVmZmVy
LmRhdGEoKSwgcmVjdkJ1ZmZlci5zaXplKCkpKSB7CiAgICAgICAgICAgICBpZiAoKnJlYWRTaXpl
ID4gMCkgewogICAgICAgICAgICAgICAgIHJlY3ZCdWZmZXIuc2hyaW5rKCpyZWFkU2l6ZSk7Ci0g
ICAgICAgICAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgICAgICAgICAgbG9j
a2VyLnVubG9jaygpOwogICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNsaWVudC5kaWRSZWNl
aXZlKCp0aGlzLCBpZCwgV1RGTW92ZShyZWN2QnVmZmVyKSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgfQpAQCAtMjkxLDcgKzI5MSw3IEBAIHZvaWQgUmVtb3RlSW5zcGVj
dG9yU29ja2V0RW5kcG9pbnQ6OnJlY3ZJZkVuYWJsZWQoQ29ubmVjdGlvbklEIGlkKQogICAgICAg
ICBTb2NrZXQ6OmNsb3NlKGNvbm5lY3Rpb24tPnNvY2tldCk7CiAgICAgICAgIG1fY2xpZW50cy5y
ZW1vdmUoaWQpOwogCi0gICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBsb2Nr
ZXIudW5sb2NrKCk7CiAgICAgICAgIGNvbm5lY3Rpb24tPmNsaWVudC5kaWRDbG9zZSgqdGhpcywg
aWQpOwogICAgIH0KIH0KQEAgLTM1Myw3ICszNTMsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclNv
Y2tldEVuZHBvaW50OjphY2NlcHRJbmV0U29ja2V0SWZFbmFibGVkKENvbm5lY3Rpb25JRCBpZCkK
ICAgICBpZiAoY29uc3QgYXV0byYgY29ubmVjdGlvbiA9IG1fbGlzdGVuZXJzLmdldChpZCkpIHsK
ICAgICAgICAgaWYgKGF1dG8gc29ja2V0ID0gU29ja2V0OjphY2NlcHQoY29ubmVjdGlvbi0+c29j
a2V0KSkgewogICAgICAgICAgICAgLy8gTmVlZCB0byB1bmxvY2sgYmVmb3JlIGNhbGxpbmcgY3Jl
YXRlQ2xpZW50IGFzIGl0IGFsc28gYXR0ZW1wdHMgdG8gbG9jay4KLSAgICAgICAgICAgIGxvY2tl
ci51bmxvY2tFYXJseSgpOworICAgICAgICAgICAgbG9ja2VyLnVubG9jaygpOwogICAgICAgICAg
ICAgaWYgKGNvbm5lY3Rpb24tPmxpc3RlbmVyLmRvQWNjZXB0KCp0aGlzLCBzb2NrZXQudmFsdWUo
KSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmgKaW5kZXggYWEyNzNiYWRiZWZhNzM3YTBlYWE1
MzRmYmViYTlmNTAxZmRiODYyNy4uZGQ5OWYyZDM4MjZjYWFmY2Y5ZWY4YjkwMmE2YTIwM2RhMjIz
YjMzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uY3VycmVu
dEpTTG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmN1cnJlbnRK
U0xvY2suaApAQCAtNTgsOSArNTgsOSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KICAgICAKLSAg
ICB2b2lkIHVubG9ja0Vhcmx5KCkKKyAgICB2b2lkIHVubG9jaygpCiAgICAgewotICAgICAgICBt
X2xvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBtX2xvY2tlci51bmxvY2soKTsKICAgICB9
CiAKIHByaXZhdGU6CkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gdnMuIGRl
cml2ZWQgY2xhc3Nlcy4gSWYgd2UgZGlkbid0LCB0aGVuIHdlIHdvdWxkIGRlc3Ryb3kgdGhlIAog
ICAgICAgICAvLyBEZWZlckdDIG9iamVjdCBiZWZvcmUgdW5sb2NraW5nIHRoZSBsb2NrIHdoaWNo
IGNvdWxkIGNhdXNlIGEgR0MKICAgICAgICAgLy8gYW5kIHJlc3VsdGluZyBkZWFkbG9jay4KLSAg
ICAgICAgdW5sb2NrRWFybHkoKTsKKyAgICAgICAgdW5sb2NrKCk7CiAgICAgfQogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAppbmRleCA5MmJmZWFh
NzY4YWE2ODYyYmRmNWQ5OGM0YWVkZDcxNDYyZTRhZDY0Li4xMGViNGVjYzU3NjJlY2Y4NTYzOGQy
OTExNjAxNDk5ODg0OGQ0ZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTVRyYXBzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRy
YXBzLmNwcApAQCAtMTM3LDggKzEzNyw4IEBAIHZvaWQgVk1UcmFwczo6dHJ5SW5zdGFsbFRyYXBC
cmVha3BvaW50cyhTaWduYWxDb250ZXh0JiBjb250ZXh0LCBTdGFja0JvdW5kcyBzdGFjCiAgICAg
fQogCiAgICAgaWYgKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChmb3VuZENvZGVCbG9jay0+aml0
VHlwZSgpKSkgewotICAgICAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKCptX2xvY2spOwot
ICAgICAgICBpZiAoIWxvY2tlcikKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
Km1fbG9jayB9OworICAgICAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgICAgICBy
ZXR1cm47IC8vIExldCB0aGUgU2lnbmFsU2VuZGVyIHRyeSBhZ2FpbiBsYXRlci4KIAogICAgICAg
ICBpZiAoIW5lZWRIYW5kbGluZyhWTVRyYXBzOjpBc3luY0V2ZW50cykpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuY3BwCmluZGV4IGU0OWRhZTFlMWJjOWRkNzBj
OWViMjAyZDg3NzA5ZmNjNmNhNjcwOTAuLjk4YTdmMTQ3NDI4YTg1NGY5NzViYThmNzA3ZDgyYzc2
ODlmY2FlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3Bl
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNw
cApAQCAtNzMsMTQgKzczLDE0IEBAIGF1dG8gVk1JbnNwZWN0b3I6OmxvY2soU2Vjb25kcyB0aW1l
b3V0KSAtPiBFeHBlY3RlZDxMb2NrZXIsIEVycm9yPgogICAgIC8vIFdlJ2xsIGJlIGRvaW5nIHNs
ZWVwKDEpIGJldHdlZW4gdHJpZXMgYmVsb3cuIEhlbmNlLCBzbGVlcFBlclJldHJ5IGlzIDEuCiAg
ICAgdW5zaWduZWQgbWF4UmV0cmllcyA9ICh0aW1lb3V0IDwgU2Vjb25kczo6aW5maW5pdHkoKSkg
PyB0aW1lb3V0LnZhbHVlKCkgOiBVSU5UX01BWDsKIAotICAgIEV4cGVjdGVkPExvY2tlciwgRXJy
b3I+IGxvY2tlciA9IExvY2tlcjo6dHJ5TG9jayhtX2xvY2spOworICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fbG9jayB9OworCiAgICAgdW5zaWduZWQgdHJ5Q291bnQgPSAwOwotICAg
IHdoaWxlICghbG9ja2VyICYmIHRyeUNvdW50IDwgbWF4UmV0cmllcykgeworICAgIHdoaWxlICgh
bG9ja2VyLnRyeUxvY2soKSAmJiB0cnlDb3VudCA8IG1heFJldHJpZXMpIHsKICAgICAgICAgLy8g
V2Ugd2FudCB0aGUgdmVyc2lvbiBvZiBzbGVlcCBmcm9tIHVuaXN0ZC5oLiBDYXN0IHRvIGRpc2Ft
YmlndWF0ZS4KICNpZiAhT1MoV0lORE9XUykKICAgICAgICAgKHN0YXRpY19jYXN0PHVuc2lnbmVk
ICgqKSh1bnNpZ25lZCk+KHNsZWVwKSkoMSk7CiAjZW5kaWYKLSAgICAgICAgbG9ja2VyID0gTG9j
a2VyOjp0cnlMb2NrKG1fbG9jayk7CiAgICAgfQogCiAgICAgaWYgKCFsb2NrZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oIGIvU291cmNlL1dURi93dGYvQ2hlY2tl
ZExvY2suaAppbmRleCA0NGI4OTk5NjkxMjM0NTIwMDE5OGZkODY0YTk5ODk2Njc3NjM5OTQyLi4w
ZWY2ZWQ1YTA3MmEzYTYzMmNkNTdhYmFhMDkzYjlhZDZiYmI5ZWNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRMb2Nr
LmgKQEAgLTQzLDkgKzQzLDkgQEAgbmFtZXNwYWNlIFdURiB7CiAvLyAgICAgICB2b2lkIHNldFZh
bHVlKGludCB2YWx1ZSkgeyBMb2Noa2VyIGhvbGRMb2NrIHsgbV9sb2NrIH07IG1fdmFsdWUgPSB2
YWx1ZTsgIH0KIC8vICAgICAgIHZvaWQgbWF5YmVTZXRPdGhlclZhbHVlKGludCB2YWx1ZSkKIC8v
ICAgICAgIHsKLS8vICAgICAgICAgICBpZiAoIW1fbG9jay50cnlMb2NrKCkpCisvLyAgICAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisvLyAgICAgICAgICAgaWYg
KCFsb2NrZXIudHJ5TG9jaygpKQogLy8gICAgICAgICAgICAgIHJldHVybjsKLS8vICAgICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9vdGhlckxvY2sgfTsKIC8vICAg
ICAgICAgICBtX290aGVyVmFsdWUgPSB2YWx1ZTsKIC8vICAgICAgIH0KIC8vICAgcHJpdmF0ZToK
QEAgLTYwLDggKzYwLDggQEAgY2xhc3MgV1RGX0NBUEFCSUxJVFlfTE9DSyBDaGVja2VkTG9jayA6
IExvY2sgewogcHVibGljOgogICAgIGNvbnN0ZXhwciBDaGVja2VkTG9jaygpID0gZGVmYXVsdDsK
ICAgICB2b2lkIGxvY2soKSBXVEZfQUNRVUlSRVNfTE9DSygpIHsgTG9jazo6bG9jaygpOyB9Ci0g
ICAgYm9vbCB0cnlMb2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgeyByZXR1cm4gTG9j
azo6dHJ5TG9jaygpOyB9Ci0gICAgYm9vbCB0cnlfbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLX0lG
KHRydWUpIHsgcmV0dXJuIExvY2s6OnRyeV9sb2NrKCk7IH0gLy8gTk9MSU5UOiBJbnRlbnRpb25h
bCBkZXZpYXRpb24gdG8gc3VwcG9ydCBzdGQ6OnNjb3BlZF9sb2NrLgorICAgIGJvb2wgdHJ5TG9j
aygpIFdURl9UUllfQUNRVUlSRV9MT0NLKHRydWUpIHsgcmV0dXJuIExvY2s6OnRyeUxvY2soKTsg
fQorICAgIGJvb2wgdHJ5X2xvY2soKSBXVEZfVFJZX0FDUVVJUkVfTE9DSyh0cnVlKSB7IHJldHVy
biBMb2NrOjp0cnlfbG9jaygpOyB9IC8vIE5PTElOVDogSW50ZW50aW9uYWwgZGV2aWF0aW9uIHRv
IHN1cHBvcnQgc3RkOjpzY29wZWRfbG9jay4KICAgICB2b2lkIHVubG9jaygpIFdURl9SRUxFQVNF
U19MT0NLKCkgeyBMb2NrOjp1bmxvY2soKTsgfQogICAgIHZvaWQgdW5sb2NrRmFpcmx5KCkgV1RG
X1JFTEVBU0VTX0xPQ0soKSB7IExvY2s6OnVubG9ja0ZhaXJseSgpOyB9CiAgICAgdm9pZCBzYWZl
cG9pbnQoKSB7IExvY2s6OnNhZmVwb2ludCgpOyB9CkBAIC03NSw4ICs3NSw2IEBAIHB1YmxpYzoK
IC8vIGRlY2xhcmF0aW9uLgogaW5saW5lIHZvaWQgYXNzZXJ0SXNIZWxkKGNvbnN0IENoZWNrZWRM
b2NrJiBsb2NrKSBXVEZfQVNTRVJUU19BQ1FVSVJFRF9MT0NLKGxvY2spIHsgQVNTRVJUX1VOVVNF
RChsb2NrLCBsb2NrLmlzSGVsZCgpKTsgfQogCi11c2luZyBBZG9wdExvY2tUYWcgPSBzdGQ6OmFk
b3B0X2xvY2tfdDsKLQogLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3aXRoIENoZWNr
ZWRMb2NrLgogLy8gTm9uLW1vdmFibGUgc2ltcGxlIHNjb3BlZCBsb2NrIGhvbGRlci4KIC8vIEV4
YW1wbGU6IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKQEAgLTg1LDI4ICs4Myw1OCBAQCBjbGFz
cyBXVEZfQ0FQQUJJTElUWV9TQ09QRURfTE9DSyBMb2NrZXI8Q2hlY2tlZExvY2s+IHsKIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBMb2NrZXIoQ2hlY2tlZExvY2smIGxvY2spIFdURl9BQ1FVSVJFU19M
T0NLKGxvY2spCiAgICAgICAgIDogbV9sb2NrKGxvY2spCisgICAgICAgICwgbV9pc0xvY2tlZCh0
cnVlKQogICAgIHsKICAgICAgICAgbV9sb2NrLmxvY2soKTsKICAgICB9CiAgICAgTG9ja2VyKEFk
b3B0TG9ja1RhZywgQ2hlY2tlZExvY2smIGxvY2spIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCiAg
ICAgICAgIDogbV9sb2NrKGxvY2spCisgICAgICAgICwgbV9pc0xvY2tlZCh0cnVlKQorICAgIHsK
KyAgICB9CisgICAgTG9ja2VyKERlZmVyTG9ja1RhZywgQ2hlY2tlZExvY2smIGxvY2spIFdURl9F
WENMVURFU19MT0NLKGxvY2spCisgICAgICAgIDogbV9sb2NrKGxvY2spCiAgICAgewogICAgIH0K
ICAgICB+TG9ja2VyKCkgV1RGX1JFTEVBU0VTX0xPQ0soKQogICAgIHsKKyAgICAgICAgaWYgKG1f
aXNMb2NrZWQpCisgICAgICAgICAgICBtX2xvY2sudW5sb2NrKCk7CisgICAgfQorICAgIGJvb2wg
dHJ5TG9jaygpIFdURl9UUllfQUNRVUlSRV9MT0NLKHRydWUsIG1fbG9jaykKKyAgICB7CisgICAg
ICAgIEFTU0VSVCghbV9pc0xvY2tlZCk7CisgICAgICAgIG1faXNMb2NrZWQgPSBtX2xvY2sudHJ5
TG9jaygpOworICAgICAgICByZXR1cm4gbV9pc0xvY2tlZDsKKyAgICB9CisgICAgdm9pZCBsb2Nr
KCkgV1RGX0FDUVVJUkVTX0xPQ0sobV9sb2NrKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFtX2lz
TG9ja2VkKTsKKyAgICAgICAgbV9sb2NrLmxvY2soKTsKKyAgICAgICAgbV9pc0xvY2tlZCA9IHRy
dWU7CisgICAgfQorICAgIHZvaWQgdW5sb2NrKCkgV1RGX1JFTEVBU0VTX0xPQ0sobV9sb2NrKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKG1faXNMb2NrZWQpOwogICAgICAgICBtX2xvY2sudW5sb2Nr
KCk7CisgICAgICAgIG1faXNMb2NrZWQgPSBmYWxzZTsKICAgICB9CisKKyAgICBleHBsaWNpdCBv
cGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9pc0xvY2tlZDsgfQorCiAgICAgTG9ja2Vy
KGNvbnN0IExvY2tlcjxDaGVja2VkTG9jaz4mKSA9IGRlbGV0ZTsKICAgICBMb2NrZXImIG9wZXJh
dG9yPShjb25zdCBMb2NrZXI8Q2hlY2tlZExvY2s+JikgPSBkZWxldGU7CisKIHByaXZhdGU6CiAg
ICAgQ2hlY2tlZExvY2smIG1fbG9jazsKKyAgICBib29sIG1faXNMb2NrZWQgeyBmYWxzZSB9Owog
fTsKIAogTG9ja2VyKENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2NrPjsKIExvY2tl
cihBZG9wdExvY2tUYWcsIENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2NrPjsKK0xv
Y2tlcihEZWZlckxvY2tUYWcsIENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2NrPjsK
IAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6YXNzZXJ0SXNIZWxkOwogdXNpbmcg
V1RGOjpDaGVja2VkTG9jazsKLXVzaW5nIFdURjo6QWRvcHRMb2NrVGFnOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvTG9ja2VyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrZXIuaAppbmRleCA4
YjBlMTkyYjVlYmE0Yjg4NzYzYTg0NGQxZWMwY2JhMTRjMGM5ODhhLi4wZGFhZmUwNDQ2ZWNjOWZl
N2I4ZmUzM2U0N2JhODg4MmVmMzNjNzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2Nr
ZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrZXIuaApAQCAtMjgsNiArMjgsNyBAQAogCiAj
cHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25z
Lmg+CiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4K
QEAgLTU0LDExICs1NSwxOCBAQCBwcm90ZWN0ZWQ6CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNs
YXNzIERyb3BMb2NrRm9yU2NvcGU7CiAKK3VzaW5nIEFkb3B0TG9ja1RhZyA9IHN0ZDo6YWRvcHRf
bG9ja190OworY29uc3RleHByIEFkb3B0TG9ja1RhZyBBZG9wdExvY2sgPSBBZG9wdExvY2tUYWco
KTsKK3VzaW5nIERlZmVyTG9ja1RhZyA9IHN0ZDo6ZGVmZXJfbG9ja190OworY29uc3RleHByIERl
ZmVyTG9ja1RhZyBEZWZlckxvY2sgPSBEZWZlckxvY2tUYWcoKTsKKwogdGVtcGxhdGU8dHlwZW5h
bWUgVD4KIGNsYXNzIExvY2tlciA6IHB1YmxpYyBBYnN0cmFjdExvY2tlciB7CiBwdWJsaWM6CiAg
ICAgZXhwbGljaXQgTG9ja2VyKFQmIGxvY2thYmxlKSA6IG1fbG9ja2FibGUoJmxvY2thYmxlKSB7
IGxvY2soKTsgfQogICAgIGV4cGxpY2l0IExvY2tlcihUKiBsb2NrYWJsZSkgOiBtX2xvY2thYmxl
KGxvY2thYmxlKSB7IGxvY2soKTsgfQorICAgIExvY2tlcihBZG9wdExvY2tUYWcsIFQmIGxvY2th
YmxlKSA6IG1fbG9ja2FibGUoJmxvY2thYmxlKSwgbV9pc0xvY2tlZCh0cnVlKSB7IH0KKyAgICBM
b2NrZXIoRGVmZXJMb2NrVGFnLCBUJiBsb2NrYWJsZSkgOiBtX2xvY2thYmxlKCZsb2NrYWJsZSkg
eyB9CiAKICAgICAvLyBZb3Ugc2hvdWxkIGJlIHdhcnkgb2YgdXNpbmcgdGhpcyBjb25zdHJ1Y3Rv
ci4gSXQncyBvbmx5IGFwcGxpY2FibGUKICAgICAvLyBpbiBwbGFjZXMgd2hlcmUgdGhlcmUgaXMg
YSBsb2NraW5nIHByb3RvY29sIGZvciBhIHBhcnRpY3VsYXIgb2JqZWN0CkBAIC02Niw4NCArNzQs
NzQgQEAgcHVibGljOgogICAgIC8vIHRoaXMgb2Z0ZW4gaGFwcGVucyB3aGVuIGFuIG9iamVjdCBp
cyBuZXdseSBhbGxvY2F0ZWQgYW5kIGl0IGNhbiBub3QKICAgICAvLyBiZSBhY2Nlc3NlZCBjb25j
dXJyZW50bHkuCiAgICAgTG9ja2VyKE5vTG9ja2luZ05lY2Vzc2FyeVRhZykgOiBtX2xvY2thYmxl
KG51bGxwdHIpIHsgfQotICAgIAorCiAgICAgTG9ja2VyKHN0ZDo6dW5kZXJseWluZ190eXBlX3Q8
Tm9Mb2NraW5nTmVjZXNzYXJ5VGFnPikgPSBkZWxldGU7CiAKICAgICB+TG9ja2VyKCkKICAgICB7
Ci0gICAgICAgIHVubG9jaygpOworICAgICAgICBpZiAobV9pc0xvY2tlZCkKKyAgICAgICAgICAg
IHVubG9jaygpOworICAgIH0KKworICAgIGJvb2wgdHJ5TG9jaygpCisgICAgeworICAgICAgICBB
U1NFUlQobV9sb2NrYWJsZSk7CisgICAgICAgIEFTU0VSVCghbV9pc0xvY2tlZCk7CisgICAgICAg
IGlmICghbV9sb2NrYWJsZSB8fCAhbV9sb2NrYWJsZS0+dHJ5TG9jaygpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBtX2lzTG9ja2VkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogICAgIAotICAgIHN0YXRpYyBMb2NrZXIgdHJ5TG9jayhUJiBsb2NrYWJs
ZSkKKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9pc0xvY2tl
ZDsgfQorCisgICAgdm9pZCB1bmxvY2soKQogICAgIHsKLSAgICAgICAgTG9ja2VyIHJlc3VsdChO
b0xvY2tpbmdOZWNlc3NhcnkpOwotICAgICAgICBpZiAobG9ja2FibGUudHJ5TG9jaygpKSB7Ci0g
ICAgICAgICAgICByZXN1bHQubV9sb2NrYWJsZSA9ICZsb2NrYWJsZTsKLSAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgIEFTU0VSVChtX2lzTG9ja2VkKTsKKyAgICAgICAgY29tcGls
ZXJGZW5jZSgpOworICAgICAgICBpZiAobV9sb2NrYWJsZSkgeworICAgICAgICAgICAgVFNBTl9B
Tk5PVEFURV9IQVBQRU5TX0JFRk9SRShtX2xvY2thYmxlKTsKKyAgICAgICAgICAgIG1fbG9ja2Fi
bGUtPnVubG9jaygpOworICAgICAgICAgICAgbV9pc0xvY2tlZCA9IGZhbHNlOwogICAgICAgICB9
Ci0gICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0gICAgVCogbG9ja2FibGUoKSB7IHJl
dHVybiBtX2xvY2thYmxlOyB9Ci0gICAgCi0gICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNv
bnN0IHsgcmV0dXJuICEhbV9sb2NrYWJsZTsgfQotICAgIAotICAgIHZvaWQgdW5sb2NrRWFybHko
KQorICAgIHZvaWQgbG9jaygpCiAgICAgewotICAgICAgICB1bmxvY2soKTsKLSAgICAgICAgbV9s
b2NrYWJsZSA9IG51bGxwdHI7CisgICAgICAgIEFTU0VSVCghbV9pc0xvY2tlZCk7CisgICAgICAg
IGlmIChtX2xvY2thYmxlKSB7CisgICAgICAgICAgICBtX2xvY2thYmxlLT5sb2NrKCk7CisgICAg
ICAgICAgICBUU0FOX0FOTk9UQVRFX0hBUFBFTlNfQUZURVIobV9sb2NrYWJsZSk7CisgICAgICAg
ICAgICBtX2lzTG9ja2VkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBjb21waWxlckZlbmNl
KCk7CiAgICAgfQogICAgIAogICAgIC8vIEl0J3MgZ3JlYXQgdG8gYmUgYWJsZSB0byBwYXNzIGxv
Y2tlcnMgYXJvdW5kLiBJdCBlbmFibGVzIGN1c3RvbSBsb2NraW5nIGFkYXB0b3JzIGxpa2UKICAg
ICAvLyBKU0M6OkxvY2tEdXJpbmdNYXJraW5nLgogICAgIExvY2tlcihMb2NrZXImJiBvdGhlcikK
LSAgICAgICAgOiBtX2xvY2thYmxlKG90aGVyLm1fbG9ja2FibGUpCisgICAgICAgIDogbV9sb2Nr
YWJsZShzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fbG9ja2FibGUsIG51bGxwdHIpKQorICAgICAgICAs
IG1faXNMb2NrZWQoc3RkOjpleGNoYW5nZShvdGhlci5tX2lzTG9ja2VkLCBmYWxzZSkpCiAgICAg
ewogICAgICAgICBBU1NFUlQoJm90aGVyICE9IHRoaXMpOwotICAgICAgICBvdGhlci5tX2xvY2th
YmxlID0gbnVsbHB0cjsKICAgICB9CiAgICAgCiAgICAgTG9ja2VyJiBvcGVyYXRvcj0oTG9ja2Vy
JiYgb3RoZXIpCiAgICAgewogICAgICAgICBBU1NFUlQoJm90aGVyICE9IHRoaXMpOwotICAgICAg
ICBtX2xvY2thYmxlID0gb3RoZXIubV9sb2NrYWJsZTsKLSAgICAgICAgb3RoZXIubV9sb2NrYWJs
ZSA9IG51bGxwdHI7CisgICAgICAgIG1fbG9ja2FibGUgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1f
bG9ja2FibGUsIG51bGxwdHIpOworICAgICAgICBtX2lzTG9ja2VkID0gc3RkOjpleGNoYW5nZShv
dGhlci5tX2lzTG9ja2VkLCBmYWxzZSk7CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAg
ICAgCiBwcml2YXRlOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lPgogICAgIGZyaWVuZCBjbGFzcyBE
cm9wTG9ja0ZvclNjb3BlOwotCi0gICAgdm9pZCB1bmxvY2soKQotICAgIHsKLSAgICAgICAgY29t
cGlsZXJGZW5jZSgpOwotICAgICAgICBpZiAobV9sb2NrYWJsZSkgewotICAgICAgICAgICAgVFNB
Tl9BTk5PVEFURV9IQVBQRU5TX0JFRk9SRShtX2xvY2thYmxlKTsKLSAgICAgICAgICAgIG1fbG9j
a2FibGUtPnVubG9jaygpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgdm9pZCBsb2NrKCkKLSAg
ICB7Ci0gICAgICAgIGlmIChtX2xvY2thYmxlKSB7Ci0gICAgICAgICAgICBtX2xvY2thYmxlLT5s
b2NrKCk7Ci0gICAgICAgICAgICBUU0FOX0FOTk9UQVRFX0hBUFBFTlNfQUZURVIobV9sb2NrYWJs
ZSk7Ci0gICAgICAgIH0KLSAgICAgICAgY29tcGlsZXJGZW5jZSgpOwotICAgIH0KICAgICAKLSAg
ICBUKiBtX2xvY2thYmxlOworICAgIFQqIG1fbG9ja2FibGUgeyBudWxscHRyIH07CisgICAgYm9v
bCBtX2lzTG9ja2VkIHsgZmFsc2UgfTsKIH07CiAKLXRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBl
PgotTG9ja2VyPExvY2tUeXBlPiB0cnlIb2xkTG9jayhMb2NrVHlwZSYpIFdBUk5fVU5VU0VEX1JF
VFVSTjsKLXRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlPgotTG9ja2VyPExvY2tUeXBlPiB0cnlI
b2xkTG9jayhMb2NrVHlwZSYgbG9jaykKLXsKLSAgICByZXR1cm4gTG9ja2VyPExvY2tUeXBlPjo6
dHJ5TG9jayhsb2NrKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+CiBjbGFzcyBE
cm9wTG9ja0ZvclNjb3BlIDogcHJpdmF0ZSBBYnN0cmFjdExvY2tlciB7CiAgICAgV1RGX0ZPUkJJ
RF9IRUFQX0FMTE9DQVRJT04oRHJvcExvY2tGb3JTY29wZSk7CkBAIC0xNjYsNiArMTY0LDggQEAg
cHJpdmF0ZToKIH0KIAogdXNpbmcgV1RGOjpBYnN0cmFjdExvY2tlcjsKK3VzaW5nIFdURjo6QWRv
cHRMb2NrOwordXNpbmcgV1RGOjpEZWZlckxvY2s7CiB1c2luZyBXVEY6OkxvY2tlcjsKIHVzaW5n
IFdURjo6Tm9Mb2NraW5nTmVjZXNzYXJ5VGFnOwogdXNpbmcgV1RGOjpOb0xvY2tpbmdOZWNlc3Nh
cnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaCBiL1NvdXJjZS9XVEYvd3Rm
L0xvZ2dlci5oCmluZGV4IGU5OWQ0OWJmMmU5ZDlhZDJhNmIzYjYxODBkY2JkOThjZDc4NWZhNTQu
LjIzODg4MjRlMGYxNzI2M2FhMWNmNzhkMTIwZGE0NTI4MGVhYWQ1NDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0xvZ2dlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCkBAIC0z
MjIsMTAgKzMyMiwxMCBAQCBwcml2YXRlOgogICAgICAgICBpZiAoY2hhbm5lbC5zdGF0ZSA9PSBX
VEZMb2dDaGFubmVsU3RhdGU6Ok9mZiB8fCBsZXZlbCA+IGNoYW5uZWwubGV2ZWwpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKCFvYnNlcnZlckxvY2soKS50cnlMb2NrKCkpCisg
ICAgICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG9ic2VydmVyTG9jaygpIH07CisgICAg
ICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgb2JzZXJ2ZXJMb2NrKCkgfTsKICAg
ICAgICAgZm9yIChPYnNlcnZlciYgb2JzZXJ2ZXIgOiBvYnNlcnZlcnMoKSkKICAgICAgICAgICAg
IG9ic2VydmVyLmRpZExvZ01lc3NhZ2UoY2hhbm5lbCwgbGV2ZWwsIHsgQ29uc29sZUxvZ1ZhbHVl
PEFyZ3VtZW50Pjo6dG9WYWx1ZShhcmd1bWVudHMpLi4uIH0pOwogICAgIH0KQEAgLTM1MywxMCAr
MzUzLDEwIEBAIHByaXZhdGU6CiAgICAgICAgIGlmIChjaGFubmVsLnN0YXRlID09IFdURkxvZ0No
YW5uZWxTdGF0ZTo6T2ZmIHx8IGxldmVsID4gY2hhbm5lbC5sZXZlbCkKICAgICAgICAgICAgIHJl
dHVybjsKIAotICAgICAgICBpZiAoIW9ic2VydmVyTG9jaygpLnRyeUxvY2soKSkKKyAgICAgICAg
TG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgb2JzZXJ2ZXJMb2NrKCkgfTsKKyAgICAgICAgaWYg
KCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIExvY2tl
ciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBvYnNlcnZlckxvY2soKSB9OwogICAgICAgICBm
b3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG9ic2VydmVycygpKQogICAgICAgICAgICAgb2JzZXJ2
ZXIuZGlkTG9nTWVzc2FnZShjaGFubmVsLCBsZXZlbCwgeyBDb25zb2xlTG9nVmFsdWU8QXJndW1l
bnQ+Ojp0b1ZhbHVlKGFyZ3VtZW50cykuLi4gfSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvVGhyZWFkU2FmZXR5QW5hbHlzaXMuaCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZFNh
ZmV0eUFuYWx5c2lzLmgKaW5kZXggMDNhYzE1YTkzM2U3MGZjMWExZmYwNDc4ZjBiOTkzY2UxOGQ0
OTdlYy4uNjMzZWQwMTk2N2Q5NGVjYTE5YjU3OTIyYjY2MDRiMTI2OGVhMTFiZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvVGhyZWFkU2FmZXR5QW5hbHlzaXMuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9UaHJlYWRTYWZldHlBbmFseXNpcy5oCkBAIC0zNSw3ICszNSw3IEBACiAjZGVmaW5lIFdU
Rl9USFJFQURfQU5OT1RBVElPTl9BVFRSSUJVVEUoeCkKICNlbmRpZgogCi0jZGVmaW5lIFdURl9B
Q1FVSVJFU19MT0NLX0lGKC4uLikgV1RGX1RIUkVBRF9BTk5PVEFUSU9OX0FUVFJJQlVURSh0cnlf
YWNxdWlyZV9jYXBhYmlsaXR5KF9fVkFfQVJHU19fKSkKKyNkZWZpbmUgV1RGX1RSWV9BQ1FVSVJF
X0xPQ0soLi4uKSBXVEZfVEhSRUFEX0FOTk9UQVRJT05fQVRUUklCVVRFKHRyeV9hY3F1aXJlX2Nh
cGFiaWxpdHkoX19WQV9BUkdTX18pKQogI2RlZmluZSBXVEZfQUNRVUlSRVNfTE9DSyguLi4pIFdU
Rl9USFJFQURfQU5OT1RBVElPTl9BVFRSSUJVVEUoYWNxdWlyZV9jYXBhYmlsaXR5KF9fVkFfQVJH
U19fKSkKICNkZWZpbmUgV1RGX0FDUVVJUkVTX1NIQVJFRF9MT0NLX0lGKC4uLikgV1RGX1RIUkVB
RF9BTk5PVEFUSU9OX0FUVFJJQlVURSh0cnlfYWNxdWlyZV9zaGFyZWRfY2FwYWJpbGl0eShfX1ZB
X0FSR1NfXykpCiAjZGVmaW5lIFdURl9BQ1FVSVJFU19TSEFSRURfTE9DSyguLi4pIFdURl9USFJF
QURfQU5OT1RBVElPTl9BVFRSSUJVVEUoYWNxdWlyZV9zaGFyZWRfY2FwYWJpbGl0eShfX1ZBX0FS
R1NfXykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCmluZGV4IDE4NDQw
MjFlNmYxYWM0NGZlNjMyNWM2MjhiYWU2ZjhlMTdmYmE2NzAuLmY0MjQyMzlmNDM0NWM2NWNjYzQw
NzA4YTJmY2M5NjE3YzUxOWQ4MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGwuY3BwCkBAIC04NSwxMSArODUsMTAgQEAgYm9vbCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJbXBsOjp1cGRhdGVEYXRhU291cmNlKGNvbnN0IENBQXVkaW9TdHJlYW1EZXMKIHsKICAg
ICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAotICAgIGlmICghbV9kYXRhU291cmNlTG9jay50
cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9kYXRhU291cmNlTG9j
ayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fZGF0YVNvdXJjZUxvY2sg
fTsKLQogICAgIGF1dG8gZGF0YVNvdXJjZSA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Y3JlYXRl
KGF1ZGlvRGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpICogMSwgbV9zb3VyY2UuZ2V0KCkpOwogICAg
IGlmIChkYXRhU291cmNlLT5zZXRJbnB1dEZvcm1hdChhdWRpb0Rlc2NyaXB0aW9uKSkgewogICAg
ICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMp
XSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVm
ZmVyU291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
QnVmZmVyU291cmNlTm9kZS5jcHAKaW5kZXggNjMzYzUwNmEwMDc2N2ZmYjg4NThjYjA2MGY1MWQ3
Njk5NmJhMTcyYS4uZmI0YzQ0ZjdkZmM2MWIyYzRmMTg2MDcyOGRiNjQ3ODk1OWYxYTBkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJj
ZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmNwcApAQCAtMTAyLDEwICsxMDIsMTAgQEAgdm9pZCBBdWRpb0J1ZmZlclNv
dXJjZU5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBs
b2NrLCBzbyB3ZSB1c2UgdHJ5SG9sZExvY2soKSBpbnN0ZWFkLgotICAgIGF1dG8gbG9ja2VyID0g
dHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKLSAgICAgICAg
Ly8gVG9vIGJhZCAtIHRyeUhvbGRMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRk
bGUgb2YgY2hhbmdpbmcgYnVmZmVycyBhbmQgd2VyZSBhbHJlYWR5IG91dHB1dHRpbmcgc2lsZW5j
ZSBhbnl3YXkuCisgICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxv
Y2ssIHNvIHdlIHVzZSB0cnlMb2NrKCkgaW5zdGVhZC4KKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVm
ZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKSB7Cisg
ICAgICAgIC8vIFRvbyBiYWQgLSB0cnlMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBt
aWRkbGUgb2YgY2hhbmdpbmcgYnVmZmVycyBhbmQgd2VyZSBhbHJlYWR5IG91dHB1dHRpbmcgc2ls
ZW5jZSBhbnl3YXkuCiAgICAgICAgIG91dHB1dEJ1cy56ZXJvKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAK
aW5kZXggZmViYTMzMGVkMDIwYTdhNjlhNDQzZjMyMmVkYWRkN2UxYTk2ZDZlYy4uYjJiY2NmMDIz
ODhlMTdlNWZiYTc4YjkwMGIwODQyYjMwMzY4YzdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNwcApAQCAtNTc4LDEzICs1NzgsMTUgQEAgdm9pZCBB
dWRpb05vZGU6OmRlY3JlbWVudENvbm5lY3Rpb25Db3VudCgpCiB7CiAgICAgLy8gVGhlIGFjdHVh
bGx5IHdvcmsgZm9yIGRlcmVmIGhhcHBlbnMgY29tcGxldGVseSB3aXRoaW4gdGhlIGF1ZGlvIGNv
bnRleHQncyBncmFwaCBsb2NrLgogICAgIC8vIEluIHRoZSBjYXNlIG9mIHRoZSBhdWRpbyB0aHJl
YWQsIHdlIG11c3QgdXNlIGEgdHJ5TG9jayB0byBhdm9pZCBnbGl0Y2hlcy4KLSAgICBpZiAoYXV0
byBsb2NrZXIgPSBjb250ZXh0KCkuaXNBdWRpb1RocmVhZCgpID8gTG9ja2VyPFJlY3Vyc2l2ZUxv
Y2s+Ojp0cnlMb2NrKGNvbnRleHQoKS5ncmFwaExvY2soKSkgOiBMb2NrZXIgeyBjb250ZXh0KCku
Z3JhcGhMb2NrKCkgfSkgewotICAgICAgICAvLyBUaGlzIGlzIHdoZXJlIHRoZSByZWFsIGRlcmVm
IHdvcmsgaGFwcGVucy4KLSAgICAgICAgZGVjcmVtZW50Q29ubmVjdGlvbkNvdW50V2l0aExvY2so
KTsKKyAgICBpZiAoY29udGV4dCgpLmlzQXVkaW9UaHJlYWQoKSkgeworICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgRGVmZXJMb2NrLCBjb250ZXh0KCkuZ3JhcGhMb2NrKCkgfTsKKyAgICAgICAgaWYg
KGxvY2tlci50cnlMb2NrKCkpCisgICAgICAgICAgICBkZWNyZW1lbnRDb25uZWN0aW9uQ291bnRX
aXRoTG9jaygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb250ZXh0KCkuYWRkRGVmZXJy
ZWREZWNyZW1lbnRDb25uZWN0aW9uQ291bnQodGhpcyk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAg
Ly8gV2Ugd2VyZSB1bmFibGUgdG8gZ2V0IHRoZSBsb2NrLCBzbyBwdXQgdGhpcyBpbiBhIGxpc3Qg
dG8gZmluaXNoIHVwIGxhdGVyLgotICAgICAgICBBU1NFUlQoY29udGV4dCgpLmlzQXVkaW9UaHJl
YWQoKSk7Ci0gICAgICAgIGNvbnRleHQoKS5hZGREZWZlcnJlZERlY3JlbWVudENvbm5lY3Rpb25D
b3VudCh0aGlzKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IGNvbnRleHQoKS5ncmFwaExvY2so
KSB9OworICAgICAgICBkZWNyZW1lbnRDb25uZWN0aW9uQ291bnRXaXRoTG9jaygpOwogICAgIH0K
IAogICAgIC8vIE9uY2UgQXVkaW9Db250ZXh0Ojp1bmluaXRpYWxpemUoKSBpcyBjYWxsZWQgdGhl
cmUncyBubyBtb3JlIGNoYW5jZXMgZm9yIGRlbGV0ZU1hcmtlZE5vZGVzKCkgdG8gZ2V0IGNhbGxl
ZCwgc28gd2UgY2FsbCBoZXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwCmluZGV4IDA0MDZlYWI3NzEwZThlZDk3ZGU4
OTgzYTIwMGU1MTU2YzIyOWVhYWYuLjI4NDNmMjM5NmM1OTlkYjQzNTUwOWE0OTc0NzQ4YmJiMDEx
NzFhZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Q
YXJhbVRpbWVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1UaW1lbGluZS5jcHAKQEAgLTMyNyw5ICszMjcsOSBAQCB2b2lkIEF1ZGlvUGFyYW1U
aW1lbGluZTo6cmVtb3ZlQ2FuY2VsbGVkRXZlbnRzKHNpemVfdCBmaXJzdEV2ZW50VG9SZW1vdmUp
CiBPcHRpb25hbDxmbG9hdD4gQXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1l
KEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IGRlZmF1bHRWYWx1ZSwgZmxvYXQgbWlu
VmFsdWUsIGZsb2F0IG1heFZhbHVlKQogewogICAgIHsKLSAgICAgICAgaWYgKCFtX2V2ZW50c0xv
Y2sudHJ5TG9jaygpKQorICAgICAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX2V2ZW50
c0xvY2sgfTsKKyAgICAgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7
IH0sIG1fZXZlbnRzTG9jayB9OwogICAgICAgICBpZiAoIW1fZXZlbnRzLnNpemUoKSB8fCBTZWNv
bmRzIHsgY29udGV4dC5jdXJyZW50VGltZSgpIH0gPCBtX2V2ZW50c1swXS50aW1lKCkpCiAgICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KQEAgLTM0NywxMSArMzQ3LDExIEBA
IE9wdGlvbmFsPGZsb2F0PiBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlRm9yQ29udGV4dFRpbWUo
QmFzZUF1ZGlvQ29udGV4dCYgY29udGV4CiBmbG9hdCBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVl
c0ZvckZyYW1lUmFuZ2Uoc2l6ZV90IHN0YXJ0RnJhbWUsIHNpemVfdCBlbmRGcmFtZSwgZmxvYXQg
ZGVmYXVsdFZhbHVlLCBmbG9hdCBtaW5WYWx1ZSwgZmxvYXQgbWF4VmFsdWUsIGZsb2F0KiB2YWx1
ZXMsIHVuc2lnbmVkIG51bWJlck9mVmFsdWVzLCBkb3VibGUgc2FtcGxlUmF0ZSwgZG91YmxlIGNv
bnRyb2xSYXRlKQogewogICAgIC8vIFdlIGNhbid0IGNvbnRlbmQgdGhlIGxvY2sgaW4gdGhlIHJl
YWx0aW1lIGF1ZGlvIHRocmVhZC4KLSAgICBpZiAoIW1fZXZlbnRzTG9jay50cnlMb2NrKCkpIHsK
KyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX2V2ZW50c0xvY2sgfTsKKyAgICBpZiAo
IWxvY2tlci50cnlMb2NrKCkpIHsKICAgICAgICAgc3RkOjpmaWxsX24odmFsdWVzLCBudW1iZXJP
ZlZhbHVlcywgZGVmYXVsdFZhbHVlKTsKICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKICAg
ICB9Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fZXZlbnRzTG9jayB9
OwogCiAgICAgZmxvYXQgdmFsdWUgPSB2YWx1ZXNGb3JGcmFtZVJhbmdlSW1wbChzdGFydEZyYW1l
LCBlbmRGcmFtZSwgZGVmYXVsdFZhbHVlLCB2YWx1ZXMsIG51bWJlck9mVmFsdWVzLCBzYW1wbGVS
YXRlLCBjb250cm9sUmF0ZSk7CiAKQEAgLTk4Niw5ICs5ODYsOSBAQCBib29sIEF1ZGlvUGFyYW1U
aW1lbGluZTo6aXNFdmVudEN1cnJlbnQoY29uc3QgUGFyYW1FdmVudCYgZXZlbnQsIGNvbnN0IFBh
cmFtRXZlbgogCiBib29sIEF1ZGlvUGFyYW1UaW1lbGluZTo6aGFzVmFsdWVzKHNpemVfdCBzdGFy
dEZyYW1lLCBkb3VibGUgc2FtcGxlUmF0ZSkgY29uc3QKIHsKLSAgICBpZiAoIW1fZXZlbnRzTG9j
ay50cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9ldmVudHNMb2Nr
IH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9ldmVudHNMb2NrIH07CiAKICAg
ICAvLyBSZXR1cm4gZmFsc2UgaWYgdGhlcmUgYXJlIG5vIGV2ZW50cyBpbiB0aGUgdGltZSByYW5n
ZS4KICAgICBhdXRvIGVuZEZyYW1lID0gc3RhcnRGcmFtZSArIEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldE5vZGUuY3BwCmluZGV4IDM0OTYyNmZhNGQ0M2VkMjUzZmNmOTA3MzJiNjQy
YWYyYmM1YWE0NjAuLmJjOTA5OTU5ZDUzYzRkYmNkMWQzYzc4OGU1YjA3OTY3YzVhOTg1NzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9k
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRO
b2RlLmNwcApAQCAtMTkxLDggKzE5MSw4IEBAIHZvaWQgQXVkaW9Xb3JrbGV0Tm9kZTo6cHJvY2Vz
cyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkp
OwogCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBp
ZiAoIWxvY2tlciB8fCAhbV9wcm9jZXNzb3IgfHwgJlRocmVhZDo6Y3VycmVudCgpICE9IG1fd29y
a2xldFRocmVhZCkgeworICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fcHJvY2Vzc0xv
Y2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkgfHwgIW1fcHJvY2Vzc29yIHx8ICZUaHJl
YWQ6OmN1cnJlbnQoKSAhPSBtX3dvcmtsZXRUaHJlYWQpIHsKICAgICAgICAgLy8gV2UncmUgbm90
IHJlYWR5IHlldCBvciB3ZSBhcmUgZ2V0dGluZyBkZXN0cm95ZWQuIEluIHRoaXMgY2FzZSwgd2Ug
b3V0cHV0IHNpbGVuY2UuCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJP
Zk91dHB1dHMoKTsgKytpKQogICAgICAgICAgICAgb3V0cHV0KGkpLT5idXMoKS0+emVybygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4
dC5jcHAKaW5kZXggZTIwMmQ3ZDI2MmFkMDY0N2JkYTc2ZmJhNTI3ZjBhNWExNjIxYTc4MC4uOGU0
YzNkNjIyMDI1ZTlhY2ZlMTQzZDkyM2VmZDFmNmMxMTZmZmZhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCkBAIC01NjAs
MTQgKzU2MCwxNiBAQCB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6OmhhbmRsZVByZVJlbmRlclRhc2tz
KGNvbnN0IEF1ZGlvSU9Qb3NpdGlvbiYgb3V0cHV0UG9zaXRpbwogCiAgICAgLy8gQXQgdGhlIGJl
Z2lubmluZyBvZiBldmVyeSByZW5kZXIgcXVhbnR1bSwgdHJ5IHRvIHVwZGF0ZSB0aGUgaW50ZXJu
YWwgcmVuZGVyaW5nIGdyYXBoIHN0YXRlIChmcm9tIG1haW4gdGhyZWFkIGNoYW5nZXMpLgogICAg
IC8vIEl0J3MgT0sgaWYgdGhlIHRyeUxvY2soKSBmYWlscywgd2UnbGwganVzdCB0YWtlIHNsaWdo
dGx5IGxvbmdlciB0byBwaWNrIHVwIHRoZSBjaGFuZ2VzLgotICAgIGlmIChhdXRvIGxvY2tlciA9
IExvY2tlcjxSZWN1cnNpdmVMb2NrPjo6dHJ5TG9jayhncmFwaExvY2soKSkpIHsKLSAgICAgICAg
Ly8gRml4dXAgdGhlIHN0YXRlIG9mIGFueSBkaXJ0eSBBdWRpb1N1bW1pbmdKdW5jdGlvbnMgYW5k
IEF1ZGlvTm9kZU91dHB1dHMuCi0gICAgICAgIGhhbmRsZURpcnR5QXVkaW9TdW1taW5nSnVuY3Rp
b25zKCk7Ci0gICAgICAgIGhhbmRsZURpcnR5QXVkaW9Ob2RlT3V0cHV0cygpOworICAgIExvY2tl
ciBsb2NrZXIgeyBEZWZlckxvY2ssIGdyYXBoTG9jaygpIH07CisgICAgaWYgKCFsb2NrZXIudHJ5
TG9jaygpKQorICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdXBkYXRlQXV0b21hdGljUHVsbE5v
ZGVzKCk7Ci0gICAgICAgIG1fb3V0cHV0UG9zaXRpb24gPSBvdXRwdXRQb3NpdGlvbjsKLSAgICB9
CisgICAgLy8gRml4dXAgdGhlIHN0YXRlIG9mIGFueSBkaXJ0eSBBdWRpb1N1bW1pbmdKdW5jdGlv
bnMgYW5kIEF1ZGlvTm9kZU91dHB1dHMuCisgICAgaGFuZGxlRGlydHlBdWRpb1N1bW1pbmdKdW5j
dGlvbnMoKTsKKyAgICBoYW5kbGVEaXJ0eUF1ZGlvTm9kZU91dHB1dHMoKTsKKworICAgIHVwZGF0
ZUF1dG9tYXRpY1B1bGxOb2RlcygpOworICAgIG1fb3V0cHV0UG9zaXRpb24gPSBvdXRwdXRQb3Np
dGlvbjsKIH0KIAogQXVkaW9JT1Bvc2l0aW9uIEJhc2VBdWRpb0NvbnRleHQ6Om91dHB1dFBvc2l0
aW9uKCkKQEAgLTU4NCw4ICs1ODYsOCBAQCB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6OmhhbmRsZVBv
c3RSZW5kZXJUYXNrcygpCiAgICAgLy8gTXVzdCB1c2UgYSB0cnlMb2NrKCkgaGVyZSB0b28uIERv
bid0IHdvcnJ5LCB0aGUgbG9jayB3aWxsIHZlcnkgcmFyZWx5IGJlIGNvbnRlbmRlZCBhbmQgdGhp
cyBtZXRob2QgaXMgY2FsbGVkIGZyZXF1ZW50bHkuCiAgICAgLy8gVGhlIHdvcnN0IHRoYXQgY2Fu
IGhhcHBlbiBpcyB0aGF0IHRoZXJlIHdpbGwgYmUgc29tZSBub2RlcyB3aGljaCB3aWxsIHRha2Ug
c2xpZ2h0bHkgbG9uZ2VyIHRoYW4gdXN1YWwgdG8gYmUgZGVsZXRlZCBvciByZW1vdmVkCiAgICAg
Ly8gZnJvbSB0aGUgcmVuZGVyIGdyYXBoIChpbiB3aGljaCBjYXNlIHRoZXknbGwgcmVuZGVyIHNp
bGVuY2UpLgotICAgIGF1dG8gbG9ja2VyID0gTG9ja2VyPFJlY3Vyc2l2ZUxvY2s+Ojp0cnlMb2Nr
KGdyYXBoTG9jaygpKTsKLSAgICBpZiAoIWxvY2tlcikKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVm
ZXJMb2NrLCBncmFwaExvY2soKSB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgLy8gVGFrZSBjYXJlIG9mIGZpbmlzaGluZyBhbnkgZGVyZWZzIHdo
ZXJlIHRoZSB0cnlMb2NrKCkgZmFpbGVkIHByZXZpb3VzbHkuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcAppbmRleCA1OTcxZmQwMDIyNWJj
YWNjYzBlNTM3M2U2NzAyZGI0Y2QyOWU4NTAwLi4xYmM5ZjJlY2Y2ZTUzMWQxYzEwNDdkNDVhYmRj
N2M3OGRhZTdjMWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0NvbnZvbHZlck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
Q29udm9sdmVyTm9kZS5jcHAKQEAgLTkyLDkgKzkyLDkgQEAgdm9pZCBDb252b2x2ZXJOb2RlOjpw
cm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgQVNTRVJUKG91dHB1dEJ1cyk7CiAK
ICAgICAvLyBTeW5jaHJvbml6ZSB3aXRoIHBvc3NpYmxlIGR5bmFtaWMgY2hhbmdlcyB0byB0aGUg
aW1wdWxzZSByZXNwb25zZS4KLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vz
c0xvY2spOwotICAgIGlmICghbG9ja2VyKSB7Ci0gICAgICAgIC8vIFRvbyBiYWQgLSB0cnlIb2xk
TG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIHNldHRpbmcgYSBuZXcg
aW1wdWxzZSByZXNwb25zZS4KKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nl
c3NMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKSB7CisgICAgICAgIC8vIFRvbyBi
YWQgLSB0cnlMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2Ygc2V0dGlu
ZyBhIG5ldyBpbXB1bHNlIHJlc3BvbnNlLgogICAgICAgICBvdXRwdXRCdXMtPnplcm8oKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcAppbmRleCBh
MWE0NmE2N2VlYTIzYzU1OTIxM2E3MzA4ODgyY2U1MDY3NGJiMjY0Li5jZGIzYTczN2Q1YTQ2YzMy
YzA4MGQwZjJhNDA4ZDc2MTAxN2JhOTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3Bw
CkBAIC0xNTUsMTEgKzE1NSwxMSBAQCB2b2lkIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZTo6
cHJvY2VzcyhzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICAvLyBVc2UgdHJ5SG9sZExvY2soKSB0byBhdm9pZCBjb250ZW50aW9uIGluIHRoZSByZWFs
LXRpbWUgYXVkaW8gdGhyZWFkLgorICAgIC8vIFVzZSB0cnlMb2NrKCkgdG8gYXZvaWQgY29udGVu
dGlvbiBpbiB0aGUgcmVhbC10aW1lIGF1ZGlvIHRocmVhZC4KICAgICAvLyBJZiB3ZSBmYWlsIHRv
IGFjcXVpcmUgdGhlIGxvY2sgdGhlbiB0aGUgSFRNTE1lZGlhRWxlbWVudCBtdXN0IGJlIGluIHRo
ZSBtaWRkbGUgb2YKICAgICAvLyByZWNvbmZpZ3VyaW5nIGl0cyBwbGF5YmFjayBlbmdpbmUsIHNv
IHdlIG91dHB1dCBzaWxlbmNlIGluIHRoaXMgY2FzZS4KLSAgICBhdXRvIGxvY2tlciA9IHRyeUhv
bGRMb2NrKG1fcHJvY2Vzc0xvY2spOwotICAgIGlmICghbG9ja2VyKSB7CisgICAgTG9ja2VyIGxv
Y2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxv
Y2soKSkgewogICAgICAgICAvLyBXZSBmYWlsZWQgdG8gYWNxdWlyZSB0aGUgbG9jay4KICAgICAg
ICAgb3V0cHV0QnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNl
Tm9kZS5jcHAKaW5kZXggYzU2NjJkNjA5YWY2MGE2YWViYTZkYTcyMWEzNWQxZDU4OGFkNTE3NS4u
Yjg1NDJkNGUzYmZjMTIwNDNjNjIzMmRkOGU3ZmZiMzUzYWE4YzFjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlv
U291cmNlTm9kZS5jcHAKQEAgLTEzOSwxNiArMTM5LDExIEBAIHZvaWQgTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZU5vZGU6OnByb2Nlc3Moc2l6ZV90IG51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgLy8gVXNlIHRyeUhvbGRMb2NrKCkgdG8gYXZvaWQgY29udGVudGlv
biBpbiB0aGUgcmVhbC10aW1lIGF1ZGlvIHRocmVhZC4KKyAgICAvLyBVc2UgdHJ5TG9jaygpIHRv
IGF2b2lkIGNvbnRlbnRpb24gaW4gdGhlIHJlYWwtdGltZSBhdWRpbyB0aHJlYWQuCiAgICAgLy8g
SWYgd2UgZmFpbCB0byBhY3F1aXJlIHRoZSBsb2NrIHRoZW4gdGhlIE1lZGlhU3RyZWFtIG11c3Qg
YmUgaW4gdGhlIG1pZGRsZSBvZgogICAgIC8vIGEgZm9ybWF0IGNoYW5nZSwgc28gd2Ugb3V0cHV0
IHNpbGVuY2UgaW4gdGhpcyBjYXNlLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9w
cm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKLSAgICAgICAgLy8gV2UgZmFpbGVkIHRv
IGFjcXVpcmUgdGhlIGxvY2suCi0gICAgICAgIG91dHB1dEJ1cy0+emVybygpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIGlmIChtX3NvdXJjZU51bWJlck9mQ2hhbm5lbHMgIT0gb3V0cHV0
QnVzLT5udW1iZXJPZkNoYW5uZWxzKCkpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2Nr
LCBtX3Byb2Nlc3NMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpIHx8IG1fc291cmNl
TnVtYmVyT2ZDaGFubmVscyAhPSBvdXRwdXRCdXMtPm51bWJlck9mQ2hhbm5lbHMoKSkgewogICAg
ICAgICBvdXRwdXRCdXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHAKaW5kZXgg
YzZmNjlkMjMwNWMyMTU5OTY3MTM5YTg0NzlmYWU1ZDMxODIyMjU4Ny4uZmZhNDY3OTZiOGVjYTc1
Mjc3OWIxNmQxZTNjNTAzZTY4ODFmOGI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHAKQEAgLTM0OSwxMCArMzQ5LDEwIEBAIHZv
aWQgT3NjaWxsYXRvck5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICBp
ZiAoZnJhbWVzVG9Qcm9jZXNzID4gbV9waGFzZUluY3JlbWVudHMuc2l6ZSgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9j
aywgc28gd2UgdXNlIHRyeUhvbGRMb2NrKCkgaW5zdGVhZC4KLSAgICBhdXRvIGxvY2tlciA9IHRy
eUhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwotICAgIGlmICghbG9ja2VyKSB7Ci0gICAgICAgIC8v
IFRvbyBiYWQgLSB0cnlIb2xkTG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxl
IG9mIGNoYW5naW5nIHdhdmUtdGFibGVzLgorICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3Qg
YmxvY2sgb24gdGhpcyBsb2NrLCBzbyB3ZSB1c2UgdHJ5TG9jaygpIGluc3RlYWQuCisgICAgTG9j
a2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNzTG9jayB9OworICAgIGlmICghbG9ja2Vy
LnRyeUxvY2soKSkgeworICAgICAgICAvLyBUb28gYmFkIC0gdHJ5TG9jaygpIGZhaWxlZC4gV2Ug
bXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGNoYW5naW5nIHdhdmUtdGFibGVzLgogICAgICAgICBv
dXRwdXRCdXMuemVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAKaW5kZXggN2NjZjI0ZDY3MGI3ZjZl
MWVmMWEzNzc5ZjliNzA0ODY4MmZmY2VkNy4uOTQxY2I2NjE0NWM3ODkyNWU4MDQ3OGQzYTkzNDVh
MzJlOTgwZjU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Q
YW5uZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5l
ck5vZGUuY3BwCkBAIC0xMjksMTAgKzEyOSwxMCBAQCB2b2lkIFBhbm5lck5vZGU6OnByb2Nlc3Mo
c2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICAgICAgfQogICAgIH0KIAotICAgIC8vIFRoZSBh
dWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBsb2NrLCBzbyB3ZSB1c2UgdHJ5SG9sZExv
Y2soKSBpbnN0ZWFkLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9wcm9jZXNzTG9j
ayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKLSAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUhvbGRMb2Nr
KCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgdGhlIHBhbm5l
ci4KKyAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28g
d2UgdXNlIHRyeUxvY2soKSBpbnN0ZWFkLgorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ss
IG1fcHJvY2Vzc0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpIHsKKyAgICAgICAg
Ly8gVG9vIGJhZCAtIHRyeUxvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBv
ZiBjaGFuZ2luZyB0aGUgcGFubmVyLgogICAgICAgICBkZXN0aW5hdGlvbi0+emVybygpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKaW5kZXggMjJlOTdlOGFhMjVlYWMyZjcw
OGUyM2Y3NmE4OWIyOGQ5MzAzMDEzMC4uNzJiZWFkZjRkNzAwNDIwYWE0NmM2NWZkZDI3OGJkMmRk
MTAxZTZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3Jp
cHRQcm9jZXNzb3JOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCkBAIC0xNTgsOCArMTU4LDggQEAgdm9pZCBTY3JpcHRQ
cm9jZXNzb3JOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgdW5zaWdu
ZWQgYnVmZmVySW5kZXggPSB0aGlzLT5idWZmZXJJbmRleCgpOwogICAgIEFTU0VSVChidWZmZXJJ
bmRleCA8IGJ1ZmZlckNvdW50KTsKIAotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9i
dWZmZXJMb2Nrc1tidWZmZXJJbmRleF0pOwotICAgIGlmICghbG9ja2VyKSB7CisgICAgTG9ja2Vy
IGxvY2tlciB7IERlZmVyTG9jaywgbV9idWZmZXJMb2Nrc1tidWZmZXJJbmRleF0gfTsKKyAgICBp
ZiAoIWxvY2tlci50cnlMb2NrKCkpIHsKICAgICAgICAgLy8gV2UncmUgbGF0ZSBpbiBoYW5kbGlu
ZyB0aGUgcHJldmlvdXMgcmVxdWVzdC4gVGhlIG1haW4gdGhyZWFkIG11c3QgYmUKICAgICAgICAg
Ly8gdmVyeSBidXN5LiBUaGUgYmVzdCB3ZSBjYW4gZG8gaXMgY2xlYXIgb3V0IHRoZSBidWZmZXIg
b3Vyc2VsZiBoZXJlLgogICAgICAgICBvdXRwdXRCdXMtPnplcm8oKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwCmlu
ZGV4IDEyMDg4NTA4MDg5MDM2MWQ0YzQwYWE2YWNhYjk1NGJhNzAwYjU3MjkuLjM4ZDc3ZGI1NWI2
MWZiNTAwMmRjZGZhMjlkMWIzMmNmYjBkNTZkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcApAQCAtODMsMTAg
KzgzLDEwIEBAIHZvaWQgV2F2ZVNoYXBlclByb2Nlc3Nvcjo6cHJvY2Vzcyhjb25zdCBBdWRpb0J1
cyogc291cmNlLCBBdWRpb0J1cyogZGVzdGluYXRpb24sCiAgICAgaWYgKCFjaGFubmVsQ291bnRN
YXRjaGVzKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0
IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUhvbGRMb2NrKCkgaW5zdGVhZC4KLSAg
ICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwotICAgIGlmICghbG9j
a2VyKSB7Ci0gICAgICAgIC8vIFRvbyBiYWQgLSB0cnlIb2xkTG9jaygpIGZhaWxlZC4gV2UgbXVz
dCBiZSBpbiB0aGUgbWlkZGxlIG9mIGEgc2V0Q3VydmUoKSBjYWxsLgorICAgIC8vIFRoZSBhdWRp
byB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBsb2NrLCBzbyB3ZSB1c2UgdHJ5TG9jaygpIGlu
c3RlYWQuCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNzTG9jayB9Owor
ICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgeworICAgICAgICAvLyBUb28gYmFkIC0gdHJ5TG9j
aygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGEgc2V0Q3VydmUoKSBjYWxs
LgogICAgICAgICBkZXN0aW5hdGlvbi0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250
ZXh0LmNwcAppbmRleCBlYjJkM2FhOGQ2MzdlNGQ0YmE2M2ExMzgxODBhMDdkYjI5YzQwNmY1Li43
MTcxZDgzODAyNTkxZGYwZDNkYTA5MDg5YWI0NWY0M2JkMDQ4ZmM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAt
MjYzMyw3ICsyNjMzLDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVWZXJ0
ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJheU9iamUKIAogICAgIGlmICghYXJy
YXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpICYmIGFycmF5T2JqZWN0ID09IG1fYm91bmRWZXJ0
ZXhBcnJheU9iamVjdCkgewogICAgICAgICAvLyBiaW5kVmVydGV4QXJyYXkgZ3JhYnMgdGhlIGxv
Y2sgaW50ZXJuYWxseS4KLSAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxv
Y2tlci51bmxvY2soKTsKICAgICAgICAgYmluZFZlcnRleEFycmF5KG51bGxwdHIpOyAvLyBUaGUg
ZGVmYXVsdCBWQU8gd2FzIHJlbW92ZWQgaW4gT3BlbkdMIDMuMyBidXQgbm90IGZyb20gV2ViR0wg
MjsgYmluZCB0aGUgZGVmYXVsdCBmb3IgV2ViR0wgdG8gdXNlLgogICAgICAgICBsb2NrZXIgPSBM
b2NrZXIgeyBvYmplY3RHcmFwaExvY2soKSB9OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAppbmRleCBlYjU0ZjBkNTFkNzg2MGI5
ZjYwNDBkODkzNTg4NDQ4ODJhNjViYjYyLi5mZjQ1NjE3YmYzOGQyZjNhMmQ2NmQ0ZGNhN2IzZDYw
NGMzNDI2NjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRp
b0Rlc3RpbmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9E
ZXN0aW5hdGlvbi5oCkBAIC05NiwxNCArOTYsMTMgQEAgaW5saW5lIHZvaWQgQXVkaW9EZXN0aW5h
dGlvbjo6Y2xlYXJDYWxsYmFjaygpCiAKIGlubGluZSB2b2lkIEF1ZGlvRGVzdGluYXRpb246OmNh
bGxSZW5kZXJDYWxsYmFjayhBdWRpb0J1cyogc291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGluYXRp
b25CdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MsIGNvbnN0IEF1ZGlvSU9Qb3NpdGlvbiYgb3V0
cHV0UG9zaXRpb24pCiB7Ci0gICAgaWYgKG1fY2FsbGJhY2tMb2NrLnRyeUxvY2soKSkgewotICAg
ICAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9jYWxsYmFja0xvY2sgfTsK
LSAgICAgICAgaWYgKG1fY2FsbGJhY2spIHsKLSAgICAgICAgICAgIG1fY2FsbGJhY2stPnJlbmRl
cihzb3VyY2VCdXMsIGRlc3RpbmF0aW9uQnVzLCBmcmFtZXNUb1Byb2Nlc3MsIG91dHB1dFBvc2l0
aW9uKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQorICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fY2FsbGJhY2tMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygp
KSB7CisgICAgICAgIGRlc3RpbmF0aW9uQnVzLT56ZXJvKCk7CisgICAgICAgIHJldHVybjsKICAg
ICB9Ci0gICAgZGVzdGluYXRpb25CdXMtPnplcm8oKTsKKyAgICBpZiAobV9jYWxsYmFjaykKKyAg
ICAgICAgbV9jYWxsYmFjay0+cmVuZGVyKHNvdXJjZUJ1cywgZGVzdGluYXRpb25CdXMsIGZyYW1l
c1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNw
cAppbmRleCAyN2IyOTgyZGMzZmQ5MTY4NWQzMTdhN2VkMWE5YzFlNmVlNDdiMjZmLi5mZDg4NTZm
YjYyNzlkMDRiMzc2NjAzYTEyZGNlMTU0N2FjNGM0MmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKQEAgLTIwMiw4ICsyMDIsOCBA
QCB2b2lkIFJldmVyYkNvbnZvbHZlcjo6cHJvY2Vzcyhjb25zdCBBdWRpb0NoYW5uZWwqIHNvdXJj
ZUNoYW5uZWwsIEF1ZGlvQ2hhbm5lbCogZAogICAgIC8vIHNpZ25hbCBmcm9tIHRpbWUgdG8gdGlt
ZSwgc2luY2Ugd2UnbGwgZ2V0IHRvIGl0IHRoZSBuZXh0IHRpbWUgd2UncmUgY2FsbGVkLiAgV2Un
cmUgY2FsbGVkIHJlcGVhdGVkbHkKICAgICAvLyBhbmQgZnJlcXVlbnRseSAoYXJvdW5kIGV2ZXJ5
IDNtcykuICBUaGUgYmFja2dyb3VuZCB0aHJlYWQgaXMgcHJvY2Vzc2luZyB3ZWxsIGludG8gdGhl
IGZ1dHVyZSBhbmQgaGFzIGEgY29uc2lkZXJhYmxlIGFtb3VudCBvZiAKICAgICAvLyBsZWV3YXkg
aGVyZS4uLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9iYWNrZ3JvdW5kVGhyZWFk
TG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
bV9iYWNrZ3JvdW5kVGhyZWFkTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgbV9tb3JlSW5wdXRCdWZmZXJlZCA9IHRydWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9u
Q29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0
aW5hdGlvbkNvY29hLmNwcAppbmRleCAzOTJjMzYxNDA0ZmMyYzk1MGViYjkzODg5YTYyOWNiNWEz
NzFlNDJhLi41NTc2N2MxOTczNjVkMjlhNzE2NzYwYjRlNzE5NDYxYTI1ZWM3MDcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9u
Q29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5jcHAKQEAgLTIxOSwxMCArMjE5LDEwIEBAIE9TU3RhdHVzIEF1ZGlv
RGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKGRvdWJsZSBzYW1wbGVUaW1lLCB1aW50NjRfdCBob3N0
VGltZSwgVUluCiAgICAgfQogCiAgICAgLy8gV2hlbiB0aGVyZSBpcyBhIEF1ZGlvV29ya2xldCwg
d2UgZG8gcmVuZGVyaW5nIG9uIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQuCi0gICAgaWYgKCFtX2Rp
c3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrLnRyeUxvY2soKSkKKyAgICBMb2NrZXIgbG9ja2VyIHsg
RGVmZXJMb2NrLCBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrIH07CisgICAgaWYgKCFsb2Nr
ZXIudHJ5TG9jaygpKQogICAgICAgICByZXR1cm4gLTE7CiAKLSAgICBMb2NrZXIgbG9ja2VyIHsg
QWRvcHRMb2NrVGFnIHsgfSwgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jayB9OwogICAgIGlm
ICghbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKQogICAgICAgICByZW5kZXJPblJlbmRlcmluZ1Ro
ZWFkSWZQbGF5aW5nKGZyYW1lc1RvUmVuZGVyKTsKICAgICBlbHNlIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVy
R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9B
dWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNwcAppbmRleCBmNzc1YTMyZmQ0NzgwMmVlNTM4
ODU3MTYzZWQ3NzlhMTIxMzhjZDQ3Li4zYzEwZDgzYjQ4Y2RiMWEyYzEwNGQ0Mzc2NTJkM2VhYjBm
M2JhNDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFt
ZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXIuY3Bw
CkBAIC0xNTksMTAgKzE1OSwxMCBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXI6
OmNvbmZpZ3VyZUF1ZGlvQmluKEdzdEVsZW1lbnQqIGF1ZGlvQmluLCBHc3RFbAogdm9pZCBBdWRp
b1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyOjpwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6
ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsKICAgICBHU1RfVFJBQ0UoIkZldGNoaW5nIGJ1ZmZlcnMg
ZnJvbSBhZGFwdGVycyIpOwotICAgIGlmICghbV9hZGFwdGVyTG9jay50cnlMb2NrKCkpCisgICAg
TG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9hZGFwdGVyTG9jayB9OworICAgIGlmICghbG9j
a2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTG9ja2VyIGxvY2tlciB7IEFk
b3B0TG9ja1RhZyB7IH0sIG1fYWRhcHRlckxvY2sgfTsKICAgICBmb3IgKGF1dG8mIGl0IDogbV9h
ZGFwdGVycykKICAgICAgICAgY29weUdTdHJlYW1lckJ1ZmZlcnNUb0F1ZGlvQ2hhbm5lbChpdC52
YWx1ZS5nZXQoKSwgYnVzLCBpdC5rZXkgLSAxLCBmcmFtZXNUb1Byb2Nlc3MpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1
ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggNmVmODM1Mjgz
ZmYzNTNhOGZlMTIyN2IwNzBhMWRkZDU2ZDRhM2Y4Zi4uYzdlNzY4NjE5YjQ3ZTMwOTEzYThjZDY4
OTRkNDg2OTM2MzdlMjlmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VH
U3RyZWFtZXIuY3BwCkBAIC00MDgsMTEgKzQwOCwxMCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJB
dWRpb1NyY1JlbmRlckl0ZXJhdGlvbihXZWJLaXRXZWJBdWRpb1NyYyogc3JjKQogICAgICAgICBw
cml2LT5kaXNwYXRjaERvbmUgPSBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAoIXByaXYtPmRpc3Bh
dGNoVG9SZW5kZXJUaHJlYWRMb2NrLnRyeUxvY2soKSkKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVm
ZXJMb2NrLCBwcml2LT5kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jayB9OworICAgIGlmICghbG9j
a2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTG9ja2VyIGxvY2tlciB7IEFk
b3B0TG9ja1RhZyB7IH0sIHByaXYtPmRpc3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrIH07Ci0KICAg
ICBpZiAoIXByaXYtPmRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbikKICAgICAgICAgd2Vi
S2l0V2ViQXVkaW9TcmNSZW5kZXJBbmRQdXNoRnJhbWVzKEdSZWZQdHI8R3N0RWxlbWVudD4oR1NU
X0VMRU1FTlRfQ0FTVChzcmMpKSwgV1RGTW92ZSgqY2hhbm5lbEJ1ZmZlckxpc3QpKTsKICAgICBl
bHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRv
d0JsdXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5j
cHAKaW5kZXggYzA2NGNjZTRjYTg2MmJkNDY4OTI4NDFmZmE1YmMxOWZiN2YyMTNkYS4uMjg0OGJh
YjEwODlkYmVlMTE0MWZkMWU2OTU0MDFmZWVhNDI3YTgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAKQEAgLTEzNSw3ICsxMzUsOCBAQCBw
cml2YXRlOgogICAgIHZvaWQgcHVyZ2VUaW1lckZpcmVkKCkKICAgICB7CiAgICAgICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7Ci0gICAgICAgIGlmIChhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2Nr
KGxvY2soKSkpCisgICAgICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIGxvY2soKSB9Owor
ICAgICAgICBpZiAobG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgICAgIGNsZWFyU2NyYXRjaEJ1
ZmZlcigpOwogICAgIH0KIApAQCAtNjk0LDggKzY5NSw4IEBAIHZvaWQgU2hhZG93Qmx1cjo6ZHJh
d1JlY3RTaGFkb3dXaXRoVGlsaW5nKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBj
b25zCiB7CiAgICAgUmVmUHRyPEltYWdlQnVmZmVyPiBsYXllckltYWdlQnVmZmVyOwogI2lmIFVT
RShDRykKLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKFNjcmF0Y2hCdWZmZXI6OmxvY2so
KSk7Ci0gICAgaWYgKGxvY2tlcikgeworICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIFNj
cmF0Y2hCdWZmZXI6OmxvY2soKSB9OworICAgIGlmIChsb2NrZXIudHJ5TG9jaygpKSB7CiAgICAg
ICAgIGxheWVySW1hZ2VCdWZmZXIgPSBTY3JhdGNoQnVmZmVyOjpzaW5nbGV0b24oKS5nZXRTY3Jh
dGNoQnVmZmVyKHRlbXBsYXRlU2l6ZSk7CiAgICAgICAgIGlmICghbGF5ZXJJbWFnZUJ1ZmZlcikK
ICAgICAgICAgICAgIHJldHVybjsKQEAgLTc1NCw4ICs3NTUsOCBAQCB2b2lkIFNoYWRvd0JsdXI6
OmRyYXdJbnNldFNoYWRvd1dpdGhUaWxpbmcoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zv
cm0sIGNvbgogewogICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gbGF5ZXJJbWFnZUJ1ZmZlcjsKICNp
ZiBVU0UoQ0cpCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhTY3JhdGNoQnVmZmVyOjps
b2NrKCkpOwotICAgIGlmIChsb2NrZXIpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2Nr
LCBTY3JhdGNoQnVmZmVyOjpsb2NrKCkgfTsKKyAgICBpZiAobG9ja2VyLnRyeUxvY2soKSkgewog
ICAgICAgICBsYXllckltYWdlQnVmZmVyID0gU2NyYXRjaEJ1ZmZlcjo6c2luZ2xldG9uKCkuZ2V0
U2NyYXRjaEJ1ZmZlcih0ZW1wbGF0ZVNpemUpOwogICAgICAgICBpZiAoIWxheWVySW1hZ2VCdWZm
ZXIpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMubW0KaW5kZXggNDc5NzY4M2I4MGJiNDkwNWE3YTgxNjg4N2E0MzU0
ZDEyOThlY2Q0MS4uNGJjZjNhMTBjM2IyZGVkYzcyOTIxODEyOTUwZDg4ZjAyOTJiODA2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQpAQCAt
OTQsNyArOTQsNyBAQCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6fkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDKCkKIAogdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlk
ZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7Ci0gICAgLy8g
UHJvdGVjdCBhY2Nlc3MgdG8gbV9yaW5nQnVmZmVyIGJ5IHVzaW5nIHRyeUhvbGRMb2NrKCkuIElm
IHdlIGZhaWxlZAorICAgIC8vIFByb3RlY3QgYWNjZXNzIHRvIG1fcmluZ0J1ZmZlciBieSB1c2lu
ZyB0cnlMb2NrKCkuIElmIHdlIGZhaWxlZAogICAgIC8vIHRvIGFxdWlyZSwgYSByZS1jb25maWd1
cmUgaXMgdW5kZXJ3YXksIGFuZCBtX3JpbmdCdWZmZXIgaXMgdW5zYWZlIHRvIGFjY2Vzcy4KICAg
ICAvLyBFbWl0IHNpbGVuY2UuCiAgICAgaWYgKCFtX3RhcFN0b3JhZ2UpIHsKQEAgLTEwMiw4ICsx
MDIsOCBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQoQXVk
aW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvYwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3RhcFN0b3JhZ2UtPmxvY2spOwotICAg
IGlmICghbG9ja2VyIHx8ICFtX3JpbmdCdWZmZXIpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVm
ZXJMb2NrLCBtX3RhcFN0b3JhZ2UtPmxvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkg
fHwgIW1fcmluZ0J1ZmZlcikgewogICAgICAgICBidXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRleCA4MTM5OTZjNzZjNjQxYjdj
YWUwNDZmNTk3MWVjNzQ3Y2Y5MWNlOWQ3Li44MWU3NTczZWQ0MjE1ZGNkN2U0NDBhMWFjOGYzNWJl
NWMxMmE1YjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCkBAIC0yNTQsOCArMjU0LDgg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmVucXVldWVWaWRl
b1NhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGwKICAgICBpZiAoIW1fdmlzaWJsZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3NhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllckxvY2spOwotICAgIGlmICghbG9ja2VyKQorICAgIExvY2tlciBsb2NrZXIgeyBE
ZWZlckxvY2ssIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTG9jayB9OworICAgIGlmICghbG9j
a2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFtX2NhbkVucXVldWVE
aXNwbGF5TGF5ZXIgfHwgIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIHx8IG1fc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyLT5kaWRGYWlsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIu
Y3BwCmluZGV4IDExYmVhMTJiNjZkYzU0NjI1YTgyOWY5MDc0YTkyYzAzNzRjZTI4OTUuLjE1YjU3
MjhmN2ZkYmE4MTE3MWYyN2NjODk2Mjg5MWUxODc3YmI1ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1Np
bmtHU3RyZWFtZXIuY3BwCkBAIC05OSw3ICs5OSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgICAgICBhdXRvIHNhbXBsZSA9IFdURk1vdmUobV9zYW1wbGUpOwot
ICAgICAgICBsb2NrZXIudW5sb2NrRWFybHkoKTsKKyAgICAgICAgbG9ja2VyLnVubG9jaygpOwog
ICAgICAgICBpZiAoTElLRUxZKEdTVF9JU19TQU1QTEUoc2FtcGxlLmdldCgpKSkpCiAgICAgICAg
ICAgICB3ZWJraXRWaWRlb1NpbmtSZXBhaW50UmVxdWVzdGVkKHNpbmssIHNhbXBsZS5nZXQoKSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVu
Y3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCmluZGV4IDMyMDE3NGQ1YmZlODc2ZGI4YzE0
MjM1OWE4ZTFhMDFhYTg2YzBmZGIuLmU4ZTcyOWY4MzAxYTg3NjZlNjRiZjYzNTJmMDIwNmE3YTYz
ZWYwYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRD
b21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcApAQCAtMzk3LDcgKzM5Nyw3IEBA
IHN0YXRpYyBnYm9vbGVhbiBzaW5rRXZlbnRIYW5kbGVyKEdzdEJhc2VUcmFuc2Zvcm0qIHRyYW5z
LCBHc3RFdmVudCogZXZlbnQpCiAgICAgICAgICAgICBib29sIGlzQ2RtUHJveHlBdHRhY2hlZCA9
IHByaXYtPmNkbVByb3h5OwogICAgICAgICAgICAgcHJpdi0+aXNGbHVzaGluZyA9IHRydWU7CiAg
ICAgICAgICAgICBpZiAoaXNDZG1Qcm94eUF0dGFjaGVkKSB7Ci0gICAgICAgICAgICAgICAgbG9j
a2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgICAgICAgICAgbG9ja2VyLnVubG9jaygpOwogICAg
ICAgICAgICAgICAgIHByaXYtPmNkbVByb3h5LT5hYm9ydFdhaXRpbmdGb3JLZXkoKTsKICAgICAg
ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIHByaXYtPmNvbmRpdGlvbi5ub3RpZnlPbmUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5j
cHAKaW5kZXggNmQwM2RmOTZhZDQzNzkwZDVhZjNkMmI3MmQ3NzAwZDE2ZmYyYTRmYS4uZDRkZTFk
OWUxZGJkMjkyYTY0OWIxYTk5ZTM0NGQ5MjY4MmY4NDJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTUwOSw3ICs1MDksNyBA
QCBzdGF0aWMgdm9pZCB3ZWJLaXRNZWRpYVNyY0xvb3Aodm9pZCogdXNlckRhdGEpCiAgICAgICAg
IH0KIAogICAgICAgICAvLyBQdXNoIHRoZSBidWZmZXIgd2l0aG91dCB0aGUgc3RyZWFtaW5nTWVt
YmVycyBsb2NrIHNvIHRoYXQgZmx1c2hlcyBjYW4gaGFwcGVuIHdoaWxlIGl0IHRyYXZlbHMgZG93
bnN0cmVhbS4KLSAgICAgICAgc3RyZWFtaW5nTWVtYmVycy5sb2NrSG9sZGVyKCkudW5sb2NrRWFy
bHkoKTsKKyAgICAgICAgc3RyZWFtaW5nTWVtYmVycy5sb2NrSG9sZGVyKCkudW5sb2NrKCk7CiAK
ICAgICAgICAgQVNTRVJUKEdTVF9CVUZGRVJfUFRTX0lTX1ZBTElEKGJ1ZmZlci5nZXQoKSkpOwog
ICAgICAgICBHU1RfVFJBQ0VfT0JKRUNUKHBhZCwgIlB1c2hpbmcgYnVmZmVyIGRvd25zdHJlYW06
ICUiIEdTVF9QVFJfRk9STUFULCBidWZmZXIuZ2V0KCkpOwpAQCAtNTI1LDcgKzUyNSw3IEBAIHN0
YXRpYyB2b2lkIHdlYktpdE1lZGlhU3JjTG9vcCh2b2lkKiB1c2VyRGF0YSkKICAgICAgICAgLy8g
RU9TIGV2ZW50cyBhbmQgb3RoZXIgZW5xdWV1ZWQgZXZlbnRzIGFyZSBhbHNvIHNlbnQgdW5sb2Nr
ZWQgc28gdGhleSBjYW4gcmVhY3QgdG8gZmx1c2hlcyBpZiBuZWNlc3NhcnkuCiAgICAgICAgIEdS
ZWZQdHI8R3N0RXZlbnQ+IGV2ZW50ID0gR1JlZlB0cjxHc3RFdmVudD4oR1NUX0VWRU5UKG9iamVj
dC5sZWFrUmVmKCkpKTsKIAotICAgICAgICBzdHJlYW1pbmdNZW1iZXJzLmxvY2tIb2xkZXIoKS51
bmxvY2tFYXJseSgpOworICAgICAgICBzdHJlYW1pbmdNZW1iZXJzLmxvY2tIb2xkZXIoKS51bmxv
Y2soKTsKICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwYWQsICJQdXNoaW5nIGV2ZW50IGRvd25z
dHJlYW06ICUiIEdTVF9QVFJfRk9STUFULCBldmVudC5nZXQoKSk7CiAgICAgICAgIGJvb2wgZXZl
bnRIYW5kbGVkID0gZ3N0X3BhZF9wdXNoX2V2ZW50KHBhZCwgR1JlZlB0cjxHc3RFdmVudD4oZXZl
bnQpLmxlYWtSZWYoKSk7CiAgICAgICAgIGlmICghZXZlbnRIYW5kbGVkKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJVbml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAKaW5kZXggNWRj
ZWExYTQwODZlMjBlMTU3ZWJiY2Q3MTliYzM2NjA4OTA0YjYwYy4uZTZmMmU2ZTJkZjk0Zjg0ZjFk
YzEwNDhkM2Q1OWJlNDZmYTI3ZDI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCkBAIC0xNDEsMTAgKzE0MSwxMCBAQCB2b2lk
IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6cmV0cmlldmVGb3JtYXREZXNjcmlw
dGlvbihDb21wbGV0aW9uSGFuZAogCiB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
VW5pdDo6dXBkYXRlUmVuZGVyU291cmNlc0lmTmVjZXNzYXJ5KCkKIHsKLSAgICBpZiAoIW1fcGVu
ZGluZ1JlbmRlclNvdXJjZXNMb2NrLnRyeUxvY2soKSkKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVm
ZXJMb2NrLCBtX3BlbmRpbmdSZW5kZXJTb3VyY2VzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRy
eUxvY2soKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9j
a1RhZyB7IH0sIG1fcGVuZGluZ1JlbmRlclNvdXJjZXNMb2NrIH07CiAgICAgaWYgKCFtX2hhc1Bl
bmRpbmdSZW5kZXJTb3VyY2VzKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVy
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVk
aW9Tb3VyY2VQcm92aWRlckNvY29hLm1tCmluZGV4IDU3NmY0NGU5MmM1OGI5M2MwYjQwZDY2NDk5
ODBiYzdlOTBhNWVhZmIuLjM0NjE0MWIwMWMzZDFkNzhjYTlmZjU0Y2FiNjcyOTk3ZmE5MTI1M2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJB
dWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5tbQpAQCAtNjUsOCAr
NjUsOCBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6c2V0Q2xpZW50KEF1ZGlv
U291cmNlUHJvdmlkZXJDbGllbnQqIGNsaWVudCkKIAogdm9pZCBXZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQ29jb2E6OnByb3ZpZGVJbnB1dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9j
ZXNzKQogewotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9sb2NrKTsKLSAgICBpZiAo
IWxvY2tlciB8fCAhbV9kYXRhU291cmNlIHx8ICFtX2F1ZGlvQnVmZmVyTGlzdCkgeworICAgIExv
Y2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fbG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxv
Y2soKSB8fCAhbV9kYXRhU291cmNlIHx8ICFtX2F1ZGlvQnVmZmVyTGlzdCkgewogICAgICAgICBi
dXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0VGhyZWFkLmNwcAppbmRleCA0NzdkOTY3MmM3MTJiNDZm
YzRlYmQ3YTI4OTdlNzdlYjE1ODA4NDg0Li5jZjc0MDY3OTQ4NDk1ZmEwOGRiZDcwNDI1Zjg3NTgw
MzFiNTA0ZjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29y
a2xldFRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmts
ZXRUaHJlYWQuY3BwCkBAIC0yMDcsOCArMjA3LDggQEAgdm9pZCBXb3JrZXJPcldvcmtsZXRUaHJl
YWQ6OnN0b3AoRnVuY3Rpb248dm9pZCgpPiYmIHN0b3BwZWRDYWxsYmFjaykKICAgICAvLyBNdXRl
eCBwcm90ZWN0aW9uIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUgdGhhdCBtX3dvcmtlckdsb2JhbFNj
b3BlIGlzbid0IGNoYW5nZWQgYnkKICAgICAvLyBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCgp
IHdoaWxlIHdlJ3JlIGFjY2Vzc2luZyBpdC4gTm90ZSBhbHNvIHRoYXQgc3RvcCgpIGNhbgogICAg
IC8vIGJlIGNhbGxlZCBiZWZvcmUgbV93b3JrZXJHbG9iYWxTY29wZSBpcyBmdWxseSBjcmVhdGVk
LgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV90aHJlYWRDcmVhdGlvbkFuZEdsb2Jh
bFNjb3BlTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVm
ZXJMb2NrLCBtX3RocmVhZENyZWF0aW9uQW5kR2xvYmFsU2NvcGVMb2NrIH07CisgICAgaWYgKCFs
b2NrZXIudHJ5TG9jaygpKSB7CiAgICAgICAgIC8vIFRoZSB0aHJlYWQgaXMgc3RpbGwgc3RhcnRp
bmcsIHNwaW4gdGhlIHJ1bmxvb3AgYW5kIHRyeSBhZ2FpbiB0byBhdm9pZCBkZWFkbG9ja3MgaWYg
dGhlIHdvcmtlciB0aHJlYWQKICAgICAgICAgLy8gbmVlZHMgdG8gaW50ZXJhY3Qgd2l0aCB0aGUg
bWFpbiB0aHJlYWQgZHVyaW5nIHN0YXJ0dXAuCiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Ro
aXMsIHN0b3BwZWRDYWxsYmFjayA9IFdURk1vdmUoc3RvcHBlZENhbGxiYWNrKV0oKSBtdXRhYmxl
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRh
YmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2Uu
Y3BwCmluZGV4IGQ3NGE0NzNlMjBjOTAxOGZlMzZkNWFiNmRmZDhhYTUyYjVhNjlhNTEuLjk4Mzhj
MGMxMWNiNmE1NGUxOTM1ZjQwZDEwYmRiNzgyNzExMGNkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcApAQCAtNTcyLDcgKzU3Miw3
IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpsb2FkSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBw
YWdlVVJMLCBBbGxvd0RhdGFiYXNlV3JpdGUKICAgICAgICAgICAgICAgICBhdXRvIGljb24gPSBp
dC0+dmFsdWUuZmlyc3Q7CiAgICAgICAgICAgICAgICAgaXQtPnZhbHVlLnNlY29uZCA9IE1vbm90
b25pY1RpbWU6Om5vdygpOwogICAgICAgICAgICAgICAgIHN0YXJ0Q2xlYXJMb2FkZWRJY29uc1Rp
bWVyKCk7Ci0gICAgICAgICAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgICAg
ICAgICAgbG9ja2VyLnVubG9jaygpOwogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUoaWNvbikpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0K
QEAgLTU5Niw3ICs1OTYsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6bG9hZEljb25Gb3JQYWdlVVJM
KGNvbnN0IFN0cmluZyYgcGFnZVVSTCwgQWxsb3dEYXRhYmFzZVdyaXRlCiAKICAgICAgICAgICAg
IGF1dG8gaWNvbiA9IGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUuZmlyc3Q7CiAgICAgICAgICAg
ICBzdGFydENsZWFyTG9hZGVkSWNvbnNUaW1lcigpOwotICAgICAgICAgICAgbG9ja2VyLnVubG9j
a0Vhcmx5KCk7CisgICAgICAgICAgICBsb2NrZXIudW5sb2NrKCk7CiAgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihXVEZNb3ZlKGljb24pKTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzLmNwcAppbmRleCBmNDRjNDE4OTJiMzhmNWJhZDMxOTZkNjlhMWMxMzI0Y2U5M2I1ZWMzLi40
OGEzNjYxNjliM2ZlYTYzZGE0Mjg3MTM2MDFlNmJkZjM2ZmQ1ZDJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAK
QEAgLTMyNCwxMSArMzI0LDEwIEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWREZWNv
ZGluZyhSVENEZWNvZGVySWRlbnRpZmllciBkZWNvZGVySWRlbnRpZmllciwKICAgICBpZiAoIWRl
Y29kZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlZEltYWdl
Q2FsbGJhY2tMb2NrLnRyeUxvY2soKSkKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBk
ZWNvZGVyLT5kZWNvZGVkSW1hZ2VDYWxsYmFja0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlM
b2NrKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tU
YWcgeyB9LCBkZWNvZGVyLT5kZWNvZGVkSW1hZ2VDYWxsYmFja0xvY2sgfTsKLQogICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlZEltYWdlQ2FsbGJhY2spCiAgICAgICAgIHJldHVybjsKIApAQCAtNDky
LDExICs0OTEsMTAgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRlZEVuY29kaW5nKFJU
Q0VuY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIElQQzo6RGEKICAgICBpZiAoIWVuY29kZXIp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghZW5jb2Rlci0+ZW5jb2RlZEltYWdlQ2FsbGJh
Y2tMb2NrLnRyeUxvY2soKSkKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBlbmNvZGVy
LT5lbmNvZGVkSW1hZ2VDYWxsYmFja0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9
LCBlbmNvZGVyLT5lbmNvZGVkSW1hZ2VDYWxsYmFja0xvY2sgfTsKLQogICAgIGlmICghZW5jb2Rl
ci0+ZW5jb2RlZEltYWdlQ2FsbGJhY2spCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGVhYjA4M2YxZTA3ZDQ1ZTg4
YWRiMTQwMWRiYjRjMjE1YjUzNzg1NGEuLjIzNTM1Nzk3ZGY1N2QzYWExMzkxNzcwZWRiYzJmZDE2
ODYzMjA5YWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29t
cGF0aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygp
IGFzIGl0IGlzIGluY29tcGF0aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMu
IEluc3RlYWQsIHVzZSB0aGUgZm9sbG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tl
ci50cnlMb2NrKCkpCisgICAgICAgIGBgYAorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvQ2hlY2tlZExvY2tUZXN0LmNwcDoKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgTG9ja0hvbGRlciB3aXRoIExvY2tl
ciBpbiBsb2NhbCB2YXJpYWJsZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0NoZWNrZWRMb2NrVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9DaGVja2VkTG9ja1Rlc3QuY3BwCmluZGV4IGQ4MmVlMWEyZTViZGUwZGNhYmYzNWNlOWRjNzMx
MTIxMTAyMjYyNGEuLmZiZDAyYjNjMzRiMDRjNTZjYWVmYzM0ZTQ4YTk3NzU2ZmJjYTk2MTYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRMb2NrVGVzdC5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tlZExvY2tUZXN0LmNw
cApAQCAtMzgsOSArMzgsOSBAQCBwdWJsaWM6CiAgICAgfQogICAgIHZvaWQgbWF5YmVTZXRPdGhl
clZhbHVlKGludCB2YWx1ZSkKICAgICB7Ci0gICAgICAgIGlmICghbV9vdGhlckxvY2sudHJ5TG9j
aygpKQorICAgICAgICBMb2NrZXIgaG9sZExvY2sgeyBEZWZlckxvY2ssIG1fb3RoZXJMb2NrIH07
CisgICAgICAgIGlmICghaG9sZExvY2sudHJ5TG9jaygpKQogICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICBMb2NrZXIgaG9sZExvY2sgeyBBZG9wdExvY2tUYWcgeyB9LCBtX290aGVyTG9jayB9
OwogICAgICAgICBtX290aGVyVmFsdWUgPSB2YWx1ZTsKICAgICB9CiAgICAgLy8gVGhpcyBmdW5j
dGlvbiBjYW4gYmUgdXNlZCB0byBtYW51YWxseSBjaGVjayB0aGF0IGNvbXBpbGUgZmFpbHMuCg==
</data>
<flag name="commit-queue"
          id="450625"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429436</attachid>
            <date>2021-05-22 16:23:56 -0700</date>
            <delta_ts>2021-05-22 16:45:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226145-20210522162355.patch</filename>
            <type>text/plain</type>
            <size>59050</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZjY3MTE3MDhhODUyMGY5MDcyMjIzNDExNThhODk2NDgzZjU5NmE2Li4yYzM5YzIxZDAzMWNkMWVi
ZGJkMDk5YThhNWIwZmFhMTUwOGI2Nzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3
aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlz
IGluY29tcGF0aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuIEluc3RlYWQs
IHVzZSB0aGUgZm9sbG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgRGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlMb2Nr
KCkpCisgICAgICAgIGBgYAorCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpT
Qzo6SGVhcDo6cmVzdW1lVGhlUGVyaXBoZXJ5KToKKyAgICAgICAgKiBydW50aW1lL1ZNVHJhcHMu
Y3BwOgorICAgICAgICAoSlNDOjpWTVRyYXBzOjp0cnlJbnN0YWxsVHJhcEJyZWFrcG9pbnRzKToK
KyAgICAgICAgKiB0b29scy9WTUluc3BlY3Rvci5jcHA6CisgICAgICAgIChKU0M6OlZNSW5zcGVj
dG9yOjpsb2NrKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlcGxhY2UgTG9ja0hvbGRlciB3aXRoIExvY2tlciBpbiBsb2NhbCB2YXJp
YWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKaW5kZXggYjcwYTNmM2U4MTM3MjcyNzA1YTA0YmVkMjM5NmNlMGZjOWViZjc0Yi4uYjdm
ZjcyZTA4OTA3MjYyNDc4MzA2ODVkYzFhZTkyNTk4NzZiMjczNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBA
QAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3aXRoIENsYW5n
IFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0
aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuIEluc3RlYWQsIHVzZSB0aGUg
Zm9sbG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
RGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlMb2NrKCkpCisgICAg
ICAgIGBgYAorCisgICAgICAgICogd3RmL0NoZWNrZWRMb2NrLmg6CisgICAgICAgICogd3RmL0xv
Y2tlci5oOgorICAgICAgICAoV1RGOjpMb2NrZXI6OkxvY2tlcik6CisgICAgICAgIChXVEY6Okxv
Y2tlcjo6fkxvY2tlcik6CisgICAgICAgIChXVEY6OkxvY2tlcjo6dHJ5TG9jayk6CisgICAgICAg
IChXVEY6OkxvY2tlcjo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgIChXVEY6OkxvY2tl
cjo6dW5sb2NrRWFybHkpOgorICAgICAgICAoV1RGOjpMb2NrZXI6Om9wZXJhdG9yPSk6CisgICAg
ICAgIChXVEY6OkxvY2tlcjo6dW5sb2NrKToKKyAgICAgICAgKFdURjo6TG9ja2VyOjpsb2NrKToK
KyAgICAgICAgKiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6bG9nKToKKyAg
ICAgICAgKFdURjo6TG9nZ2VyOjpsb2dWZXJib3NlKToKKyAgICAgICAgKiB3dGYvVGhyZWFkU2Fm
ZXR5QW5hbHlzaXMuaDoKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkb3B0IENoZWNrZWRMb2NrIGluIG1vcmUgcGxhY2VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZDA1N2QyNzEyNzA0YzgxOTBkYTQ0NDIyMDEzOTEyNmU1ZTIxZWE5Yy4uNzNkZmU2MTU5
ZTAwYmMzNTM2YWU2ZWYwN2EyMTE4MDE4YzFlMDdiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1
IEBACisyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRpYmxlIHdpdGggQ2xh
bmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21w
YXRpYmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcy4gSW5zdGVhZCwgdXNlIHRo
ZSBmb2xsb3dpbmcgcGF0dGVybjoKKyAgICAgICAgYGBgCisgICAgICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fbG9jayB9OworICAgICAgICBpZiAobG9ja2VyLnRyeUxvY2soKSkKKyAg
ICAgICAgYGBgCisKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQnVmZmVyU291cmNlTm9kZTo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1BhcmFtVGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRp
bWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFy
YW1UaW1lbGluZTo6dmFsdWVzRm9yRnJhbWVSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1BhcmFtVGltZWxpbmU6Omhhc1ZhbHVlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xl
dE5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb252b2x2ZXJOb2RlOjpwcm9jZXNzKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3MpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3Mp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6T3NjaWxsYXRvck5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vUGFubmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpw
cm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJvY2Vzcyk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldhdmVTaGFwZXJQcm9jZXNzb3I6OnByb2Nlc3MpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
RGVzdGluYXRpb246OmNhbGxSZW5kZXJDYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vUmV2ZXJiQ29udm9sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJldmVyYkNvbnZvbHZl
cjo6cHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5h
dGlvbkNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
cmVuZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQ
cm92aWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3Zp
ZGVyR1N0cmVhbWVyOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJL
aXRXZWJBdWRpb1NyY1JlbmRlckl0ZXJhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JhdGNoQnVmZmVyOjpwdXJn
ZVRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1cjo6ZHJhd1JlY3RTaGFk
b3dXaXRoVGlsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0JsdXI6OmRyYXdJbnNldFNo
YWRvd1dpdGhUaWxpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6ZW5xdWV1ZVZpZGVvU2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Ojp1cGRhdGVS
ZW5kZXJTb3VyY2VzSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpX
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
T3JXb3JrbGV0VGhyZWFkOjpzdG9wKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0IENoZWNrZWRMb2NrIGluIG1vcmUgcGxhY2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGZjYWM4NDUxYzhhOTM0NTIwOGFiNzFhOTM3OGE4MTc3ZTgxNjg4ODguLjJm
ZmE2N2Y3MzI5ZjhjOTU5NzlkYjFjOTk1ZmViNzVkNTQ5YzcwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUgd2l0
aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBp
bmNvbXBhdGlibGUgd2l0aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBJbnN0ZWFkLCB1
c2UgdGhlIGZvbGxvd2luZyBwYXR0ZXJuOgorICAgICAgICBgYGAKKyAgICAgICAgTG9ja2VyIGxv
Y2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisgICAgICAgIGlmIChsb2NrZXIudHJ5TG9jaygp
KQorICAgICAgICBgYGAKKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRl
ZERlY29kaW5nKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWRF
bmNvZGluZyk6CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBBZG9wdCBDaGVja2VkTG9jayBpbiBtb3JlIHBsYWNlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmNwcAppbmRleCBjMWNmODY0Mjc3MDUxYmEwMjEwNThjZjUxNGFkMzcyZmJh
NzQ4MjdiLi42OWJmMzI1NjZjZGYwODcwMzU4MTM1OWRlZGFhZGUzZTAyOTA3MGMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMTcwNyw3ICsxNzA3LDcgQEAgTkVWRVJfSU5M
SU5FIHZvaWQgSGVhcDo6cmVzdW1lVGhlUGVyaXBoZXJ5KCkKICAgICAgICAgICAgIGJvb2wgcmVt
b3ZlID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAodmlzaXRvci5oYXNBY2tub3dsZWRnZWRUaGF0
VGhlTXV0YXRvcklzUmVzdW1lZCgpKQogICAgICAgICAgICAgICAgIHJlbW92ZSA9IHRydWU7Ci0g
ICAgICAgICAgICBlbHNlIGlmIChhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKHZpc2l0b3Iucmln
aHRUb1J1bigpKSkgeworICAgICAgICAgICAgZWxzZSBpZiAoTG9ja2VyIGxvY2tlciB7IERlZmVy
TG9jaywgdmlzaXRvci5yaWdodFRvUnVuKCkgfTsgbG9ja2VyLnRyeUxvY2soKSkgewogICAgICAg
ICAgICAgICAgIHZpc2l0b3IudXBkYXRlTXV0YXRvcklzU3RvcHBlZChsb2NrZXIpOwogICAgICAg
ICAgICAgICAgIHJlbW92ZSA9IHRydWU7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxl
ckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCmluZGV4IGIyZDk5ZmJhODkyMjZkNGMyNDBjZGFi
OGY1YjA1NzU3ODFiZThkZTEuLjJiYjYyM2U5M2JkNTc5M2EzNDEyODc3MGNlNzBiMjc1NmEzZDY1
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCkBAIC0y
MjAsNyArMjIwLDcgQEAgdm9pZCBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Ojp0cmFja2lu
Z0NvbXBsZXRlKCkKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHNhbXBsaW5nUHJvZmlsZXItPmdl
dExvY2soKSB9OwogICAgICAgICBzYW1wbGluZ1Byb2ZpbGVyLT5wYXVzZShsb2NrZXIpOwogICAg
ICAgICBWZWN0b3I8U2FtcGxpbmdQcm9maWxlcjo6U3RhY2tUcmFjZT4gc3RhY2tUcmFjZXMgPSBz
YW1wbGluZ1Byb2ZpbGVyLT5yZWxlYXNlU3RhY2tUcmFjZXMobG9ja2VyKTsKLSAgICAgICAgbG9j
a2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tlci51bmxvY2soKTsKIAogICAgICAgICBS
ZWY8UHJvdG9jb2w6OlNjcmlwdFByb2ZpbGVyOjpTYW1wbGVzPiBzYW1wbGVzID0gYnVpbGRTYW1w
bGVzKHZtLCBXVEZNb3ZlKHN0YWNrVHJhY2VzKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2Nr
ZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuY3BwCmluZGV4IGE1MGM5NDIwODJhYWU0
YWQ0YTY0ZDQzOWU3OWI3NWJmMTg1MGNjMWIuLmUwZTUwNDRlZGZhZmNlMThkZTEzY2ZmYTBkZTM2
NzQ3MjkxNDI2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmNwcApAQCAtMjIyLDEyICsyMjIsMTIgQEAgdm9pZCBSZW1vdGVJbnNw
ZWN0b3JTb2NrZXRFbmRwb2ludDo6ZGlzY29ubmVjdChDb25uZWN0aW9uSUQgaWQpCiAgICAgaWYg
KGNvbnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2xpc3RlbmVycy5nZXQoaWQpKSB7CiAgICAgICAg
IG1fbGlzdGVuZXJzLnJlbW92ZShpZCk7CiAgICAgICAgIFNvY2tldDo6Y2xvc2UoY29ubmVjdGlv
bi0+c29ja2V0KTsKLSAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tl
ci51bmxvY2soKTsKICAgICAgICAgY29ubmVjdGlvbi0+bGlzdGVuZXIuZGlkQ2hhbmdlU3RhdHVz
KCp0aGlzLCBpZCwgTGlzdGVuZXI6OlN0YXR1czo6Q2xvc2VkKTsKICAgICB9IGVsc2UgaWYgKGNv
bnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2NsaWVudHMuZ2V0KGlkKSkgewogICAgICAgICBtX2Ns
aWVudHMucmVtb3ZlKGlkKTsKICAgICAgICAgU29ja2V0OjpjbG9zZShjb25uZWN0aW9uLT5zb2Nr
ZXQpOwotICAgICAgICBsb2NrZXIudW5sb2NrRWFybHkoKTsKKyAgICAgICAgbG9ja2VyLnVubG9j
aygpOwogICAgICAgICBjb25uZWN0aW9uLT5jbGllbnQuZGlkQ2xvc2UoKnRoaXMsIGlkKTsKICAg
ICB9IGVsc2UKICAgICAgICAgTE9HX0VSUk9SKCJFcnJvcjogQ2Fubm90IGRpc2Nvbm5lY3Q6IElu
dmFsaWQgaWQiKTsKQEAgLTI4Miw3ICsyODIsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclNvY2tl
dEVuZHBvaW50OjpyZWN2SWZFbmFibGVkKENvbm5lY3Rpb25JRCBpZCkKICAgICAgICAgaWYgKGF1
dG8gcmVhZFNpemUgPSBTb2NrZXQ6OnJlYWQoY29ubmVjdGlvbi0+c29ja2V0LCByZWN2QnVmZmVy
LmRhdGEoKSwgcmVjdkJ1ZmZlci5zaXplKCkpKSB7CiAgICAgICAgICAgICBpZiAoKnJlYWRTaXpl
ID4gMCkgewogICAgICAgICAgICAgICAgIHJlY3ZCdWZmZXIuc2hyaW5rKCpyZWFkU2l6ZSk7Ci0g
ICAgICAgICAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgICAgICAgICAgbG9j
a2VyLnVubG9jaygpOwogICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNsaWVudC5kaWRSZWNl
aXZlKCp0aGlzLCBpZCwgV1RGTW92ZShyZWN2QnVmZmVyKSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgfQpAQCAtMjkxLDcgKzI5MSw3IEBAIHZvaWQgUmVtb3RlSW5zcGVj
dG9yU29ja2V0RW5kcG9pbnQ6OnJlY3ZJZkVuYWJsZWQoQ29ubmVjdGlvbklEIGlkKQogICAgICAg
ICBTb2NrZXQ6OmNsb3NlKGNvbm5lY3Rpb24tPnNvY2tldCk7CiAgICAgICAgIG1fY2xpZW50cy5y
ZW1vdmUoaWQpOwogCi0gICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBsb2Nr
ZXIudW5sb2NrKCk7CiAgICAgICAgIGNvbm5lY3Rpb24tPmNsaWVudC5kaWRDbG9zZSgqdGhpcywg
aWQpOwogICAgIH0KIH0KQEAgLTM1Myw3ICszNTMsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclNv
Y2tldEVuZHBvaW50OjphY2NlcHRJbmV0U29ja2V0SWZFbmFibGVkKENvbm5lY3Rpb25JRCBpZCkK
ICAgICBpZiAoY29uc3QgYXV0byYgY29ubmVjdGlvbiA9IG1fbGlzdGVuZXJzLmdldChpZCkpIHsK
ICAgICAgICAgaWYgKGF1dG8gc29ja2V0ID0gU29ja2V0OjphY2NlcHQoY29ubmVjdGlvbi0+c29j
a2V0KSkgewogICAgICAgICAgICAgLy8gTmVlZCB0byB1bmxvY2sgYmVmb3JlIGNhbGxpbmcgY3Jl
YXRlQ2xpZW50IGFzIGl0IGFsc28gYXR0ZW1wdHMgdG8gbG9jay4KLSAgICAgICAgICAgIGxvY2tl
ci51bmxvY2tFYXJseSgpOworICAgICAgICAgICAgbG9ja2VyLnVubG9jaygpOwogICAgICAgICAg
ICAgaWYgKGNvbm5lY3Rpb24tPmxpc3RlbmVyLmRvQWNjZXB0KCp0aGlzLCBzb2NrZXQudmFsdWUo
KSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmgKaW5kZXggYWEyNzNiYWRiZWZhNzM3YTBlYWE1
MzRmYmViYTlmNTAxZmRiODYyNy4uZGQ5OWYyZDM4MjZjYWFmY2Y5ZWY4YjkwMmE2YTIwM2RhMjIz
YjMzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uY3VycmVu
dEpTTG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmN1cnJlbnRK
U0xvY2suaApAQCAtNTgsOSArNTgsOSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KICAgICAKLSAg
ICB2b2lkIHVubG9ja0Vhcmx5KCkKKyAgICB2b2lkIHVubG9jaygpCiAgICAgewotICAgICAgICBt
X2xvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBtX2xvY2tlci51bmxvY2soKTsKICAgICB9
CiAKIHByaXZhdGU6CkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gdnMuIGRl
cml2ZWQgY2xhc3Nlcy4gSWYgd2UgZGlkbid0LCB0aGVuIHdlIHdvdWxkIGRlc3Ryb3kgdGhlIAog
ICAgICAgICAvLyBEZWZlckdDIG9iamVjdCBiZWZvcmUgdW5sb2NraW5nIHRoZSBsb2NrIHdoaWNo
IGNvdWxkIGNhdXNlIGEgR0MKICAgICAgICAgLy8gYW5kIHJlc3VsdGluZyBkZWFkbG9jay4KLSAg
ICAgICAgdW5sb2NrRWFybHkoKTsKKyAgICAgICAgdW5sb2NrKCk7CiAgICAgfQogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAppbmRleCA5MmJmZWFh
NzY4YWE2ODYyYmRmNWQ5OGM0YWVkZDcxNDYyZTRhZDY0Li4xMGViNGVjYzU3NjJlY2Y4NTYzOGQy
OTExNjAxNDk5ODg0OGQ0ZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTVRyYXBzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRy
YXBzLmNwcApAQCAtMTM3LDggKzEzNyw4IEBAIHZvaWQgVk1UcmFwczo6dHJ5SW5zdGFsbFRyYXBC
cmVha3BvaW50cyhTaWduYWxDb250ZXh0JiBjb250ZXh0LCBTdGFja0JvdW5kcyBzdGFjCiAgICAg
fQogCiAgICAgaWYgKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChmb3VuZENvZGVCbG9jay0+aml0
VHlwZSgpKSkgewotICAgICAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKCptX2xvY2spOwot
ICAgICAgICBpZiAoIWxvY2tlcikKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
Km1fbG9jayB9OworICAgICAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgICAgICBy
ZXR1cm47IC8vIExldCB0aGUgU2lnbmFsU2VuZGVyIHRyeSBhZ2FpbiBsYXRlci4KIAogICAgICAg
ICBpZiAoIW5lZWRIYW5kbGluZyhWTVRyYXBzOjpBc3luY0V2ZW50cykpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuY3BwCmluZGV4IGU0OWRhZTFlMWJjOWRkNzBj
OWViMjAyZDg3NzA5ZmNjNmNhNjcwOTAuLjk4YTdmMTQ3NDI4YTg1NGY5NzViYThmNzA3ZDgyYzc2
ODlmY2FlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3Bl
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNw
cApAQCAtNzMsMTQgKzczLDE0IEBAIGF1dG8gVk1JbnNwZWN0b3I6OmxvY2soU2Vjb25kcyB0aW1l
b3V0KSAtPiBFeHBlY3RlZDxMb2NrZXIsIEVycm9yPgogICAgIC8vIFdlJ2xsIGJlIGRvaW5nIHNs
ZWVwKDEpIGJldHdlZW4gdHJpZXMgYmVsb3cuIEhlbmNlLCBzbGVlcFBlclJldHJ5IGlzIDEuCiAg
ICAgdW5zaWduZWQgbWF4UmV0cmllcyA9ICh0aW1lb3V0IDwgU2Vjb25kczo6aW5maW5pdHkoKSkg
PyB0aW1lb3V0LnZhbHVlKCkgOiBVSU5UX01BWDsKIAotICAgIEV4cGVjdGVkPExvY2tlciwgRXJy
b3I+IGxvY2tlciA9IExvY2tlcjo6dHJ5TG9jayhtX2xvY2spOworICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fbG9jayB9OworCiAgICAgdW5zaWduZWQgdHJ5Q291bnQgPSAwOwotICAg
IHdoaWxlICghbG9ja2VyICYmIHRyeUNvdW50IDwgbWF4UmV0cmllcykgeworICAgIHdoaWxlICgh
bG9ja2VyLnRyeUxvY2soKSAmJiB0cnlDb3VudCA8IG1heFJldHJpZXMpIHsKICAgICAgICAgLy8g
V2Ugd2FudCB0aGUgdmVyc2lvbiBvZiBzbGVlcCBmcm9tIHVuaXN0ZC5oLiBDYXN0IHRvIGRpc2Ft
YmlndWF0ZS4KICNpZiAhT1MoV0lORE9XUykKICAgICAgICAgKHN0YXRpY19jYXN0PHVuc2lnbmVk
ICgqKSh1bnNpZ25lZCk+KHNsZWVwKSkoMSk7CiAjZW5kaWYKLSAgICAgICAgbG9ja2VyID0gTG9j
a2VyOjp0cnlMb2NrKG1fbG9jayk7CiAgICAgfQogCiAgICAgaWYgKCFsb2NrZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oIGIvU291cmNlL1dURi93dGYvQ2hlY2tl
ZExvY2suaAppbmRleCA0NGI4OTk5NjkxMjM0NTIwMDE5OGZkODY0YTk5ODk2Njc3NjM5OTQyLi4w
ZWY2ZWQ1YTA3MmEzYTYzMmNkNTdhYmFhMDkzYjlhZDZiYmI5ZWNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRMb2Nr
LmgKQEAgLTQzLDkgKzQzLDkgQEAgbmFtZXNwYWNlIFdURiB7CiAvLyAgICAgICB2b2lkIHNldFZh
bHVlKGludCB2YWx1ZSkgeyBMb2Noa2VyIGhvbGRMb2NrIHsgbV9sb2NrIH07IG1fdmFsdWUgPSB2
YWx1ZTsgIH0KIC8vICAgICAgIHZvaWQgbWF5YmVTZXRPdGhlclZhbHVlKGludCB2YWx1ZSkKIC8v
ICAgICAgIHsKLS8vICAgICAgICAgICBpZiAoIW1fbG9jay50cnlMb2NrKCkpCisvLyAgICAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisvLyAgICAgICAgICAgaWYg
KCFsb2NrZXIudHJ5TG9jaygpKQogLy8gICAgICAgICAgICAgIHJldHVybjsKLS8vICAgICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9vdGhlckxvY2sgfTsKIC8vICAg
ICAgICAgICBtX290aGVyVmFsdWUgPSB2YWx1ZTsKIC8vICAgICAgIH0KIC8vICAgcHJpdmF0ZToK
QEAgLTYwLDggKzYwLDggQEAgY2xhc3MgV1RGX0NBUEFCSUxJVFlfTE9DSyBDaGVja2VkTG9jayA6
IExvY2sgewogcHVibGljOgogICAgIGNvbnN0ZXhwciBDaGVja2VkTG9jaygpID0gZGVmYXVsdDsK
ICAgICB2b2lkIGxvY2soKSBXVEZfQUNRVUlSRVNfTE9DSygpIHsgTG9jazo6bG9jaygpOyB9Ci0g
ICAgYm9vbCB0cnlMb2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgeyByZXR1cm4gTG9j
azo6dHJ5TG9jaygpOyB9Ci0gICAgYm9vbCB0cnlfbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLX0lG
KHRydWUpIHsgcmV0dXJuIExvY2s6OnRyeV9sb2NrKCk7IH0gLy8gTk9MSU5UOiBJbnRlbnRpb25h
bCBkZXZpYXRpb24gdG8gc3VwcG9ydCBzdGQ6OnNjb3BlZF9sb2NrLgorICAgIGJvb2wgdHJ5TG9j
aygpIFdURl9UUllfQUNRVUlSRV9MT0NLKHRydWUpIHsgcmV0dXJuIExvY2s6OnRyeUxvY2soKTsg
fQorICAgIGJvb2wgdHJ5X2xvY2soKSBXVEZfVFJZX0FDUVVJUkVfTE9DSyh0cnVlKSB7IHJldHVy
biBMb2NrOjp0cnlfbG9jaygpOyB9IC8vIE5PTElOVDogSW50ZW50aW9uYWwgZGV2aWF0aW9uIHRv
IHN1cHBvcnQgc3RkOjpzY29wZWRfbG9jay4KICAgICB2b2lkIHVubG9jaygpIFdURl9SRUxFQVNF
U19MT0NLKCkgeyBMb2NrOjp1bmxvY2soKTsgfQogICAgIHZvaWQgdW5sb2NrRmFpcmx5KCkgV1RG
X1JFTEVBU0VTX0xPQ0soKSB7IExvY2s6OnVubG9ja0ZhaXJseSgpOyB9CiAgICAgdm9pZCBzYWZl
cG9pbnQoKSB7IExvY2s6OnNhZmVwb2ludCgpOyB9CkBAIC03NSw4ICs3NSw2IEBAIHB1YmxpYzoK
IC8vIGRlY2xhcmF0aW9uLgogaW5saW5lIHZvaWQgYXNzZXJ0SXNIZWxkKGNvbnN0IENoZWNrZWRM
b2NrJiBsb2NrKSBXVEZfQVNTRVJUU19BQ1FVSVJFRF9MT0NLKGxvY2spIHsgQVNTRVJUX1VOVVNF
RChsb2NrLCBsb2NrLmlzSGVsZCgpKTsgfQogCi11c2luZyBBZG9wdExvY2tUYWcgPSBzdGQ6OmFk
b3B0X2xvY2tfdDsKLQogLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3aXRoIENoZWNr
ZWRMb2NrLgogLy8gTm9uLW1vdmFibGUgc2ltcGxlIHNjb3BlZCBsb2NrIGhvbGRlci4KIC8vIEV4
YW1wbGU6IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKQEAgLTg1LDI4ICs4Myw1OCBAQCBjbGFz
cyBXVEZfQ0FQQUJJTElUWV9TQ09QRURfTE9DSyBMb2NrZXI8Q2hlY2tlZExvY2s+IHsKIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBMb2NrZXIoQ2hlY2tlZExvY2smIGxvY2spIFdURl9BQ1FVSVJFU19M
T0NLKGxvY2spCiAgICAgICAgIDogbV9sb2NrKGxvY2spCisgICAgICAgICwgbV9pc0xvY2tlZCh0
cnVlKQogICAgIHsKICAgICAgICAgbV9sb2NrLmxvY2soKTsKICAgICB9CiAgICAgTG9ja2VyKEFk
b3B0TG9ja1RhZywgQ2hlY2tlZExvY2smIGxvY2spIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCiAg
ICAgICAgIDogbV9sb2NrKGxvY2spCisgICAgICAgICwgbV9pc0xvY2tlZCh0cnVlKQorICAgIHsK
KyAgICB9CisgICAgTG9ja2VyKERlZmVyTG9ja1RhZywgQ2hlY2tlZExvY2smIGxvY2spIFdURl9F
WENMVURFU19MT0NLKGxvY2spCisgICAgICAgIDogbV9sb2NrKGxvY2spCiAgICAgewogICAgIH0K
ICAgICB+TG9ja2VyKCkgV1RGX1JFTEVBU0VTX0xPQ0soKQogICAgIHsKKyAgICAgICAgaWYgKG1f
aXNMb2NrZWQpCisgICAgICAgICAgICBtX2xvY2sudW5sb2NrKCk7CisgICAgfQorICAgIGJvb2wg
dHJ5TG9jaygpIFdURl9UUllfQUNRVUlSRV9MT0NLKHRydWUsIG1fbG9jaykKKyAgICB7CisgICAg
ICAgIEFTU0VSVCghbV9pc0xvY2tlZCk7CisgICAgICAgIG1faXNMb2NrZWQgPSBtX2xvY2sudHJ5
TG9jaygpOworICAgICAgICByZXR1cm4gbV9pc0xvY2tlZDsKKyAgICB9CisgICAgdm9pZCBsb2Nr
KCkgV1RGX0FDUVVJUkVTX0xPQ0sobV9sb2NrKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFtX2lz
TG9ja2VkKTsKKyAgICAgICAgbV9sb2NrLmxvY2soKTsKKyAgICAgICAgbV9pc0xvY2tlZCA9IHRy
dWU7CisgICAgfQorICAgIHZvaWQgdW5sb2NrKCkgV1RGX1JFTEVBU0VTX0xPQ0sobV9sb2NrKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKG1faXNMb2NrZWQpOwogICAgICAgICBtX2xvY2sudW5sb2Nr
KCk7CisgICAgICAgIG1faXNMb2NrZWQgPSBmYWxzZTsKICAgICB9CisKKyAgICBleHBsaWNpdCBv
cGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9pc0xvY2tlZDsgfQorCiAgICAgTG9ja2Vy
KGNvbnN0IExvY2tlcjxDaGVja2VkTG9jaz4mKSA9IGRlbGV0ZTsKICAgICBMb2NrZXImIG9wZXJh
dG9yPShjb25zdCBMb2NrZXI8Q2hlY2tlZExvY2s+JikgPSBkZWxldGU7CisKIHByaXZhdGU6CiAg
ICAgQ2hlY2tlZExvY2smIG1fbG9jazsKKyAgICBib29sIG1faXNMb2NrZWQgeyBmYWxzZSB9Owog
fTsKIAogTG9ja2VyKENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2NrPjsKIExvY2tl
cihBZG9wdExvY2tUYWcsIENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2NrPjsKK0xv
Y2tlcihEZWZlckxvY2tUYWcsIENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2NrPjsK
IAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6YXNzZXJ0SXNIZWxkOwogdXNpbmcg
V1RGOjpDaGVja2VkTG9jazsKLXVzaW5nIFdURjo6QWRvcHRMb2NrVGFnOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvTG9ja2VyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrZXIuaAppbmRleCA4
YjBlMTkyYjVlYmE0Yjg4NzYzYTg0NGQxZWMwY2JhMTRjMGM5ODhhLi4wZGFhZmUwNDQ2ZWNjOWZl
N2I4ZmUzM2U0N2JhODg4MmVmMzNjNzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2Nr
ZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrZXIuaApAQCAtMjgsNiArMjgsNyBAQAogCiAj
cHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25z
Lmg+CiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4K
QEAgLTU0LDExICs1NSwxOCBAQCBwcm90ZWN0ZWQ6CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNs
YXNzIERyb3BMb2NrRm9yU2NvcGU7CiAKK3VzaW5nIEFkb3B0TG9ja1RhZyA9IHN0ZDo6YWRvcHRf
bG9ja190OworY29uc3RleHByIEFkb3B0TG9ja1RhZyBBZG9wdExvY2sgPSBBZG9wdExvY2tUYWco
KTsKK3VzaW5nIERlZmVyTG9ja1RhZyA9IHN0ZDo6ZGVmZXJfbG9ja190OworY29uc3RleHByIERl
ZmVyTG9ja1RhZyBEZWZlckxvY2sgPSBEZWZlckxvY2tUYWcoKTsKKwogdGVtcGxhdGU8dHlwZW5h
bWUgVD4KIGNsYXNzIExvY2tlciA6IHB1YmxpYyBBYnN0cmFjdExvY2tlciB7CiBwdWJsaWM6CiAg
ICAgZXhwbGljaXQgTG9ja2VyKFQmIGxvY2thYmxlKSA6IG1fbG9ja2FibGUoJmxvY2thYmxlKSB7
IGxvY2soKTsgfQogICAgIGV4cGxpY2l0IExvY2tlcihUKiBsb2NrYWJsZSkgOiBtX2xvY2thYmxl
KGxvY2thYmxlKSB7IGxvY2soKTsgfQorICAgIExvY2tlcihBZG9wdExvY2tUYWcsIFQmIGxvY2th
YmxlKSA6IG1fbG9ja2FibGUoJmxvY2thYmxlKSwgbV9pc0xvY2tlZCh0cnVlKSB7IH0KKyAgICBM
b2NrZXIoRGVmZXJMb2NrVGFnLCBUJiBsb2NrYWJsZSkgOiBtX2xvY2thYmxlKCZsb2NrYWJsZSkg
eyB9CiAKICAgICAvLyBZb3Ugc2hvdWxkIGJlIHdhcnkgb2YgdXNpbmcgdGhpcyBjb25zdHJ1Y3Rv
ci4gSXQncyBvbmx5IGFwcGxpY2FibGUKICAgICAvLyBpbiBwbGFjZXMgd2hlcmUgdGhlcmUgaXMg
YSBsb2NraW5nIHByb3RvY29sIGZvciBhIHBhcnRpY3VsYXIgb2JqZWN0CkBAIC02Niw4NCArNzQs
NzQgQEAgcHVibGljOgogICAgIC8vIHRoaXMgb2Z0ZW4gaGFwcGVucyB3aGVuIGFuIG9iamVjdCBp
cyBuZXdseSBhbGxvY2F0ZWQgYW5kIGl0IGNhbiBub3QKICAgICAvLyBiZSBhY2Nlc3NlZCBjb25j
dXJyZW50bHkuCiAgICAgTG9ja2VyKE5vTG9ja2luZ05lY2Vzc2FyeVRhZykgOiBtX2xvY2thYmxl
KG51bGxwdHIpIHsgfQotICAgIAorCiAgICAgTG9ja2VyKHN0ZDo6dW5kZXJseWluZ190eXBlX3Q8
Tm9Mb2NraW5nTmVjZXNzYXJ5VGFnPikgPSBkZWxldGU7CiAKICAgICB+TG9ja2VyKCkKICAgICB7
Ci0gICAgICAgIHVubG9jaygpOworICAgICAgICBpZiAobV9pc0xvY2tlZCkKKyAgICAgICAgICAg
IHVubG9jaygpOworICAgIH0KKworICAgIGJvb2wgdHJ5TG9jaygpCisgICAgeworICAgICAgICBB
U1NFUlQobV9sb2NrYWJsZSk7CisgICAgICAgIEFTU0VSVCghbV9pc0xvY2tlZCk7CisgICAgICAg
IGlmICghbV9sb2NrYWJsZSB8fCAhbV9sb2NrYWJsZS0+dHJ5TG9jaygpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBtX2lzTG9ja2VkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogICAgIAotICAgIHN0YXRpYyBMb2NrZXIgdHJ5TG9jayhUJiBsb2NrYWJs
ZSkKKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9pc0xvY2tl
ZDsgfQorCisgICAgdm9pZCB1bmxvY2soKQogICAgIHsKLSAgICAgICAgTG9ja2VyIHJlc3VsdChO
b0xvY2tpbmdOZWNlc3NhcnkpOwotICAgICAgICBpZiAobG9ja2FibGUudHJ5TG9jaygpKSB7Ci0g
ICAgICAgICAgICByZXN1bHQubV9sb2NrYWJsZSA9ICZsb2NrYWJsZTsKLSAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgIEFTU0VSVChtX2lzTG9ja2VkKTsKKyAgICAgICAgY29tcGls
ZXJGZW5jZSgpOworICAgICAgICBpZiAobV9sb2NrYWJsZSkgeworICAgICAgICAgICAgVFNBTl9B
Tk5PVEFURV9IQVBQRU5TX0JFRk9SRShtX2xvY2thYmxlKTsKKyAgICAgICAgICAgIG1fbG9ja2Fi
bGUtPnVubG9jaygpOworICAgICAgICAgICAgbV9pc0xvY2tlZCA9IGZhbHNlOwogICAgICAgICB9
Ci0gICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0gICAgVCogbG9ja2FibGUoKSB7IHJl
dHVybiBtX2xvY2thYmxlOyB9Ci0gICAgCi0gICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNv
bnN0IHsgcmV0dXJuICEhbV9sb2NrYWJsZTsgfQotICAgIAotICAgIHZvaWQgdW5sb2NrRWFybHko
KQorICAgIHZvaWQgbG9jaygpCiAgICAgewotICAgICAgICB1bmxvY2soKTsKLSAgICAgICAgbV9s
b2NrYWJsZSA9IG51bGxwdHI7CisgICAgICAgIEFTU0VSVCghbV9pc0xvY2tlZCk7CisgICAgICAg
IGlmIChtX2xvY2thYmxlKSB7CisgICAgICAgICAgICBtX2xvY2thYmxlLT5sb2NrKCk7CisgICAg
ICAgICAgICBUU0FOX0FOTk9UQVRFX0hBUFBFTlNfQUZURVIobV9sb2NrYWJsZSk7CisgICAgICAg
ICAgICBtX2lzTG9ja2VkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBjb21waWxlckZlbmNl
KCk7CiAgICAgfQogICAgIAogICAgIC8vIEl0J3MgZ3JlYXQgdG8gYmUgYWJsZSB0byBwYXNzIGxv
Y2tlcnMgYXJvdW5kLiBJdCBlbmFibGVzIGN1c3RvbSBsb2NraW5nIGFkYXB0b3JzIGxpa2UKICAg
ICAvLyBKU0M6OkxvY2tEdXJpbmdNYXJraW5nLgogICAgIExvY2tlcihMb2NrZXImJiBvdGhlcikK
LSAgICAgICAgOiBtX2xvY2thYmxlKG90aGVyLm1fbG9ja2FibGUpCisgICAgICAgIDogbV9sb2Nr
YWJsZShzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fbG9ja2FibGUsIG51bGxwdHIpKQorICAgICAgICAs
IG1faXNMb2NrZWQoc3RkOjpleGNoYW5nZShvdGhlci5tX2lzTG9ja2VkLCBmYWxzZSkpCiAgICAg
ewogICAgICAgICBBU1NFUlQoJm90aGVyICE9IHRoaXMpOwotICAgICAgICBvdGhlci5tX2xvY2th
YmxlID0gbnVsbHB0cjsKICAgICB9CiAgICAgCiAgICAgTG9ja2VyJiBvcGVyYXRvcj0oTG9ja2Vy
JiYgb3RoZXIpCiAgICAgewogICAgICAgICBBU1NFUlQoJm90aGVyICE9IHRoaXMpOwotICAgICAg
ICBtX2xvY2thYmxlID0gb3RoZXIubV9sb2NrYWJsZTsKLSAgICAgICAgb3RoZXIubV9sb2NrYWJs
ZSA9IG51bGxwdHI7CisgICAgICAgIG1fbG9ja2FibGUgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1f
bG9ja2FibGUsIG51bGxwdHIpOworICAgICAgICBtX2lzTG9ja2VkID0gc3RkOjpleGNoYW5nZShv
dGhlci5tX2lzTG9ja2VkLCBmYWxzZSk7CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAg
ICAgCiBwcml2YXRlOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lPgogICAgIGZyaWVuZCBjbGFzcyBE
cm9wTG9ja0ZvclNjb3BlOwotCi0gICAgdm9pZCB1bmxvY2soKQotICAgIHsKLSAgICAgICAgY29t
cGlsZXJGZW5jZSgpOwotICAgICAgICBpZiAobV9sb2NrYWJsZSkgewotICAgICAgICAgICAgVFNB
Tl9BTk5PVEFURV9IQVBQRU5TX0JFRk9SRShtX2xvY2thYmxlKTsKLSAgICAgICAgICAgIG1fbG9j
a2FibGUtPnVubG9jaygpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgdm9pZCBsb2NrKCkKLSAg
ICB7Ci0gICAgICAgIGlmIChtX2xvY2thYmxlKSB7Ci0gICAgICAgICAgICBtX2xvY2thYmxlLT5s
b2NrKCk7Ci0gICAgICAgICAgICBUU0FOX0FOTk9UQVRFX0hBUFBFTlNfQUZURVIobV9sb2NrYWJs
ZSk7Ci0gICAgICAgIH0KLSAgICAgICAgY29tcGlsZXJGZW5jZSgpOwotICAgIH0KICAgICAKLSAg
ICBUKiBtX2xvY2thYmxlOworICAgIFQqIG1fbG9ja2FibGUgeyBudWxscHRyIH07CisgICAgYm9v
bCBtX2lzTG9ja2VkIHsgZmFsc2UgfTsKIH07CiAKLXRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBl
PgotTG9ja2VyPExvY2tUeXBlPiB0cnlIb2xkTG9jayhMb2NrVHlwZSYpIFdBUk5fVU5VU0VEX1JF
VFVSTjsKLXRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlPgotTG9ja2VyPExvY2tUeXBlPiB0cnlI
b2xkTG9jayhMb2NrVHlwZSYgbG9jaykKLXsKLSAgICByZXR1cm4gTG9ja2VyPExvY2tUeXBlPjo6
dHJ5TG9jayhsb2NrKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+CiBjbGFzcyBE
cm9wTG9ja0ZvclNjb3BlIDogcHJpdmF0ZSBBYnN0cmFjdExvY2tlciB7CiAgICAgV1RGX0ZPUkJJ
RF9IRUFQX0FMTE9DQVRJT04oRHJvcExvY2tGb3JTY29wZSk7CkBAIC0xNjYsNiArMTY0LDggQEAg
cHJpdmF0ZToKIH0KIAogdXNpbmcgV1RGOjpBYnN0cmFjdExvY2tlcjsKK3VzaW5nIFdURjo6QWRv
cHRMb2NrOwordXNpbmcgV1RGOjpEZWZlckxvY2s7CiB1c2luZyBXVEY6OkxvY2tlcjsKIHVzaW5n
IFdURjo6Tm9Mb2NraW5nTmVjZXNzYXJ5VGFnOwogdXNpbmcgV1RGOjpOb0xvY2tpbmdOZWNlc3Nh
cnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaCBiL1NvdXJjZS9XVEYvd3Rm
L0xvZ2dlci5oCmluZGV4IGU5OWQ0OWJmMmU5ZDlhZDJhNmIzYjYxODBkY2JkOThjZDc4NWZhNTQu
LjdmZjM5MjhhZTgyMDZiNzQzMzJiYTExZjdmZDBiYWVjOTFhNWRjN2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0xvZ2dlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCkBAIC0z
MjIsMTIgKzMyMiwxNCBAQCBwcml2YXRlOgogICAgICAgICBpZiAoY2hhbm5lbC5zdGF0ZSA9PSBX
VEZMb2dDaGFubmVsU3RhdGU6Ok9mZiB8fCBsZXZlbCA+IGNoYW5uZWwubGV2ZWwpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKCFvYnNlcnZlckxvY2soKS50cnlMb2NrKCkpCi0g
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG9ic2VydmVyTG9jaygpIH07CisgICAgICAgICAgICBpZiAoIWxvY2tlci50
cnlMb2NrKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIExvY2tlciBsb2Nr
ZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBvYnNlcnZlckxvY2soKSB9OwotICAgICAgICBmb3IgKE9i
c2VydmVyJiBvYnNlcnZlciA6IG9ic2VydmVycygpKQotICAgICAgICAgICAgb2JzZXJ2ZXIuZGlk
TG9nTWVzc2FnZShjaGFubmVsLCBsZXZlbCwgeyBDb25zb2xlTG9nVmFsdWU8QXJndW1lbnQ+Ojp0
b1ZhbHVlKGFyZ3VtZW50cykuLi4gfSk7CisgICAgICAgICAgICBmb3IgKE9ic2VydmVyJiBvYnNl
cnZlciA6IG9ic2VydmVycygpKQorICAgICAgICAgICAgICAgIG9ic2VydmVyLmRpZExvZ01lc3Nh
Z2UoY2hhbm5lbCwgbGV2ZWwsIHsgQ29uc29sZUxvZ1ZhbHVlPEFyZ3VtZW50Pjo6dG9WYWx1ZShh
cmd1bWVudHMpLi4uIH0pOworICAgICAgICB9CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUuLi4gQXJndW1lbnQ+CkBAIC0zNTMsMTIgKzM1NSwxNCBAQCBwcml2YXRlOgogICAgICAgICBp
ZiAoY2hhbm5lbC5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZiB8fCBsZXZlbCA+IGNo
YW5uZWwubGV2ZWwpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKCFvYnNlcnZl
ckxvY2soKS50cnlMb2NrKCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgIHsKKyAgICAg
ICAgICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG9ic2VydmVyTG9jaygpIH07CisgICAg
ICAgICAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBvYnNlcnZlckxvY2so
KSB9OwotICAgICAgICBmb3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG9ic2VydmVycygpKQotICAg
ICAgICAgICAgb2JzZXJ2ZXIuZGlkTG9nTWVzc2FnZShjaGFubmVsLCBsZXZlbCwgeyBDb25zb2xl
TG9nVmFsdWU8QXJndW1lbnQ+Ojp0b1ZhbHVlKGFyZ3VtZW50cykuLi4gfSk7CisgICAgICAgICAg
ICBmb3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG9ic2VydmVycygpKQorICAgICAgICAgICAgICAg
IG9ic2VydmVyLmRpZExvZ01lc3NhZ2UoY2hhbm5lbCwgbGV2ZWwsIHsgQ29uc29sZUxvZ1ZhbHVl
PEFyZ3VtZW50Pjo6dG9WYWx1ZShhcmd1bWVudHMpLi4uIH0pOworICAgICAgICB9CiAgICAgfQog
CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBWZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3Jh
cHBlcjxPYnNlcnZlcj4+JiBvYnNlcnZlcnMoKSBXVEZfUkVRVUlSRVNfTE9DSyhvYnNlcnZlckxv
Y2soKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRTYWZldHlBbmFseXNpcy5o
IGIvU291cmNlL1dURi93dGYvVGhyZWFkU2FmZXR5QW5hbHlzaXMuaAppbmRleCAwM2FjMTVhOTMz
ZTcwZmMxYTFmZjA0NzhmMGI5OTNjZTE4ZDQ5N2VjLi43ZDhkZWYxZmJiMWIyMTNjY2M3NGQwM2Iy
MTFhM2E4ODliMWVkMzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRTYWZldHlB
bmFseXNpcy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZFNhZmV0eUFuYWx5c2lzLmgKQEAg
LTM1LDkgKzM1LDkgQEAKICNkZWZpbmUgV1RGX1RIUkVBRF9BTk5PVEFUSU9OX0FUVFJJQlVURSh4
KQogI2VuZGlmCiAKLSNkZWZpbmUgV1RGX0FDUVVJUkVTX0xPQ0tfSUYoLi4uKSBXVEZfVEhSRUFE
X0FOTk9UQVRJT05fQVRUUklCVVRFKHRyeV9hY3F1aXJlX2NhcGFiaWxpdHkoX19WQV9BUkdTX18p
KQorI2RlZmluZSBXVEZfVFJZX0FDUVVJUkVfTE9DSyguLi4pIFdURl9USFJFQURfQU5OT1RBVElP
Tl9BVFRSSUJVVEUodHJ5X2FjcXVpcmVfY2FwYWJpbGl0eShfX1ZBX0FSR1NfXykpCiAjZGVmaW5l
IFdURl9BQ1FVSVJFU19MT0NLKC4uLikgV1RGX1RIUkVBRF9BTk5PVEFUSU9OX0FUVFJJQlVURShh
Y3F1aXJlX2NhcGFiaWxpdHkoX19WQV9BUkdTX18pKQotI2RlZmluZSBXVEZfQUNRVUlSRVNfU0hB
UkVEX0xPQ0tfSUYoLi4uKSBXVEZfVEhSRUFEX0FOTk9UQVRJT05fQVRUUklCVVRFKHRyeV9hY3F1
aXJlX3NoYXJlZF9jYXBhYmlsaXR5KF9fVkFfQVJHU19fKSkKKyNkZWZpbmUgV1RGX1RSWV9BQ1FV
SVJFX1NIQVJFRF9MT0NLKC4uLikgV1RGX1RIUkVBRF9BTk5PVEFUSU9OX0FUVFJJQlVURSh0cnlf
YWNxdWlyZV9zaGFyZWRfY2FwYWJpbGl0eShfX1ZBX0FSR1NfXykpCiAjZGVmaW5lIFdURl9BQ1FV
SVJFU19TSEFSRURfTE9DSyguLi4pIFdURl9USFJFQURfQU5OT1RBVElPTl9BVFRSSUJVVEUoYWNx
dWlyZV9zaGFyZWRfY2FwYWJpbGl0eShfX1ZBX0FSR1NfXykpCiAjZGVmaW5lIFdURl9BU1NFUlRT
X0FDUVVJUkVEX0xPQ0soeCkgV1RGX1RIUkVBRF9BTk5PVEFUSU9OX0FUVFJJQlVURShhc3NlcnRf
Y2FwYWJpbGl0eSh4KSkKICNkZWZpbmUgV1RGX0FTU0VSVFNfQUNRVUlSRURfU0hBUkVEX0xPQ0so
eCkgV1RGX1RIUkVBRF9BTk5PVEFUSU9OX0FUVFJJQlVURShhc3NlcnRfc2hhcmVkX2NhcGFiaWxp
dHkoeCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCmluZGV4IDE4NDQw
MjFlNmYxYWM0NGZlNjMyNWM2MjhiYWU2ZjhlMTdmYmE2NzAuLmY0MjQyMzlmNDM0NWM2NWNjYzQw
NzA4YTJmY2M5NjE3YzUxOWQ4MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGwuY3BwCkBAIC04NSwxMSArODUsMTAgQEAgYm9vbCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJbXBsOjp1cGRhdGVEYXRhU291cmNlKGNvbnN0IENBQXVkaW9TdHJlYW1EZXMKIHsKICAg
ICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAotICAgIGlmICghbV9kYXRhU291cmNlTG9jay50
cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9kYXRhU291cmNlTG9j
ayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fZGF0YVNvdXJjZUxvY2sg
fTsKLQogICAgIGF1dG8gZGF0YVNvdXJjZSA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Y3JlYXRl
KGF1ZGlvRGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpICogMSwgbV9zb3VyY2UuZ2V0KCkpOwogICAg
IGlmIChkYXRhU291cmNlLT5zZXRJbnB1dEZvcm1hdChhdWRpb0Rlc2NyaXB0aW9uKSkgewogICAg
ICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMp
XSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVm
ZmVyU291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
QnVmZmVyU291cmNlTm9kZS5jcHAKaW5kZXggNjMzYzUwNmEwMDc2N2ZmYjg4NThjYjA2MGY1MWQ3
Njk5NmJhMTcyYS4uZmI0YzQ0ZjdkZmM2MWIyYzRmMTg2MDcyOGRiNjQ3ODk1OWYxYTBkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJj
ZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmNwcApAQCAtMTAyLDEwICsxMDIsMTAgQEAgdm9pZCBBdWRpb0J1ZmZlclNv
dXJjZU5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBs
b2NrLCBzbyB3ZSB1c2UgdHJ5SG9sZExvY2soKSBpbnN0ZWFkLgotICAgIGF1dG8gbG9ja2VyID0g
dHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKLSAgICAgICAg
Ly8gVG9vIGJhZCAtIHRyeUhvbGRMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRk
bGUgb2YgY2hhbmdpbmcgYnVmZmVycyBhbmQgd2VyZSBhbHJlYWR5IG91dHB1dHRpbmcgc2lsZW5j
ZSBhbnl3YXkuCisgICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxv
Y2ssIHNvIHdlIHVzZSB0cnlMb2NrKCkgaW5zdGVhZC4KKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVm
ZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKSB7Cisg
ICAgICAgIC8vIFRvbyBiYWQgLSB0cnlMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBt
aWRkbGUgb2YgY2hhbmdpbmcgYnVmZmVycyBhbmQgd2VyZSBhbHJlYWR5IG91dHB1dHRpbmcgc2ls
ZW5jZSBhbnl3YXkuCiAgICAgICAgIG91dHB1dEJ1cy56ZXJvKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAK
aW5kZXggZmViYTMzMGVkMDIwYTdhNjlhNDQzZjMyMmVkYWRkN2UxYTk2ZDZlYy4uYjJiY2NmMDIz
ODhlMTdlNWZiYTc4YjkwMGIwODQyYjMwMzY4YzdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNwcApAQCAtNTc4LDEzICs1NzgsMTUgQEAgdm9pZCBB
dWRpb05vZGU6OmRlY3JlbWVudENvbm5lY3Rpb25Db3VudCgpCiB7CiAgICAgLy8gVGhlIGFjdHVh
bGx5IHdvcmsgZm9yIGRlcmVmIGhhcHBlbnMgY29tcGxldGVseSB3aXRoaW4gdGhlIGF1ZGlvIGNv
bnRleHQncyBncmFwaCBsb2NrLgogICAgIC8vIEluIHRoZSBjYXNlIG9mIHRoZSBhdWRpbyB0aHJl
YWQsIHdlIG11c3QgdXNlIGEgdHJ5TG9jayB0byBhdm9pZCBnbGl0Y2hlcy4KLSAgICBpZiAoYXV0
byBsb2NrZXIgPSBjb250ZXh0KCkuaXNBdWRpb1RocmVhZCgpID8gTG9ja2VyPFJlY3Vyc2l2ZUxv
Y2s+Ojp0cnlMb2NrKGNvbnRleHQoKS5ncmFwaExvY2soKSkgOiBMb2NrZXIgeyBjb250ZXh0KCku
Z3JhcGhMb2NrKCkgfSkgewotICAgICAgICAvLyBUaGlzIGlzIHdoZXJlIHRoZSByZWFsIGRlcmVm
IHdvcmsgaGFwcGVucy4KLSAgICAgICAgZGVjcmVtZW50Q29ubmVjdGlvbkNvdW50V2l0aExvY2so
KTsKKyAgICBpZiAoY29udGV4dCgpLmlzQXVkaW9UaHJlYWQoKSkgeworICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgRGVmZXJMb2NrLCBjb250ZXh0KCkuZ3JhcGhMb2NrKCkgfTsKKyAgICAgICAgaWYg
KGxvY2tlci50cnlMb2NrKCkpCisgICAgICAgICAgICBkZWNyZW1lbnRDb25uZWN0aW9uQ291bnRX
aXRoTG9jaygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb250ZXh0KCkuYWRkRGVmZXJy
ZWREZWNyZW1lbnRDb25uZWN0aW9uQ291bnQodGhpcyk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAg
Ly8gV2Ugd2VyZSB1bmFibGUgdG8gZ2V0IHRoZSBsb2NrLCBzbyBwdXQgdGhpcyBpbiBhIGxpc3Qg
dG8gZmluaXNoIHVwIGxhdGVyLgotICAgICAgICBBU1NFUlQoY29udGV4dCgpLmlzQXVkaW9UaHJl
YWQoKSk7Ci0gICAgICAgIGNvbnRleHQoKS5hZGREZWZlcnJlZERlY3JlbWVudENvbm5lY3Rpb25D
b3VudCh0aGlzKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IGNvbnRleHQoKS5ncmFwaExvY2so
KSB9OworICAgICAgICBkZWNyZW1lbnRDb25uZWN0aW9uQ291bnRXaXRoTG9jaygpOwogICAgIH0K
IAogICAgIC8vIE9uY2UgQXVkaW9Db250ZXh0Ojp1bmluaXRpYWxpemUoKSBpcyBjYWxsZWQgdGhl
cmUncyBubyBtb3JlIGNoYW5jZXMgZm9yIGRlbGV0ZU1hcmtlZE5vZGVzKCkgdG8gZ2V0IGNhbGxl
ZCwgc28gd2UgY2FsbCBoZXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwCmluZGV4IDA0MDZlYWI3NzEwZThlZDk3ZGU4
OTgzYTIwMGU1MTU2YzIyOWVhYWYuLjI4NDNmMjM5NmM1OTlkYjQzNTUwOWE0OTc0NzQ4YmJiMDEx
NzFhZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Q
YXJhbVRpbWVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1UaW1lbGluZS5jcHAKQEAgLTMyNyw5ICszMjcsOSBAQCB2b2lkIEF1ZGlvUGFyYW1U
aW1lbGluZTo6cmVtb3ZlQ2FuY2VsbGVkRXZlbnRzKHNpemVfdCBmaXJzdEV2ZW50VG9SZW1vdmUp
CiBPcHRpb25hbDxmbG9hdD4gQXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1l
KEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IGRlZmF1bHRWYWx1ZSwgZmxvYXQgbWlu
VmFsdWUsIGZsb2F0IG1heFZhbHVlKQogewogICAgIHsKLSAgICAgICAgaWYgKCFtX2V2ZW50c0xv
Y2sudHJ5TG9jaygpKQorICAgICAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX2V2ZW50
c0xvY2sgfTsKKyAgICAgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7
IH0sIG1fZXZlbnRzTG9jayB9OwogICAgICAgICBpZiAoIW1fZXZlbnRzLnNpemUoKSB8fCBTZWNv
bmRzIHsgY29udGV4dC5jdXJyZW50VGltZSgpIH0gPCBtX2V2ZW50c1swXS50aW1lKCkpCiAgICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KQEAgLTM0NywxMSArMzQ3LDExIEBA
IE9wdGlvbmFsPGZsb2F0PiBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlRm9yQ29udGV4dFRpbWUo
QmFzZUF1ZGlvQ29udGV4dCYgY29udGV4CiBmbG9hdCBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVl
c0ZvckZyYW1lUmFuZ2Uoc2l6ZV90IHN0YXJ0RnJhbWUsIHNpemVfdCBlbmRGcmFtZSwgZmxvYXQg
ZGVmYXVsdFZhbHVlLCBmbG9hdCBtaW5WYWx1ZSwgZmxvYXQgbWF4VmFsdWUsIGZsb2F0KiB2YWx1
ZXMsIHVuc2lnbmVkIG51bWJlck9mVmFsdWVzLCBkb3VibGUgc2FtcGxlUmF0ZSwgZG91YmxlIGNv
bnRyb2xSYXRlKQogewogICAgIC8vIFdlIGNhbid0IGNvbnRlbmQgdGhlIGxvY2sgaW4gdGhlIHJl
YWx0aW1lIGF1ZGlvIHRocmVhZC4KLSAgICBpZiAoIW1fZXZlbnRzTG9jay50cnlMb2NrKCkpIHsK
KyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX2V2ZW50c0xvY2sgfTsKKyAgICBpZiAo
IWxvY2tlci50cnlMb2NrKCkpIHsKICAgICAgICAgc3RkOjpmaWxsX24odmFsdWVzLCBudW1iZXJP
ZlZhbHVlcywgZGVmYXVsdFZhbHVlKTsKICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKICAg
ICB9Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fZXZlbnRzTG9jayB9
OwogCiAgICAgZmxvYXQgdmFsdWUgPSB2YWx1ZXNGb3JGcmFtZVJhbmdlSW1wbChzdGFydEZyYW1l
LCBlbmRGcmFtZSwgZGVmYXVsdFZhbHVlLCB2YWx1ZXMsIG51bWJlck9mVmFsdWVzLCBzYW1wbGVS
YXRlLCBjb250cm9sUmF0ZSk7CiAKQEAgLTk4Niw5ICs5ODYsOSBAQCBib29sIEF1ZGlvUGFyYW1U
aW1lbGluZTo6aXNFdmVudEN1cnJlbnQoY29uc3QgUGFyYW1FdmVudCYgZXZlbnQsIGNvbnN0IFBh
cmFtRXZlbgogCiBib29sIEF1ZGlvUGFyYW1UaW1lbGluZTo6aGFzVmFsdWVzKHNpemVfdCBzdGFy
dEZyYW1lLCBkb3VibGUgc2FtcGxlUmF0ZSkgY29uc3QKIHsKLSAgICBpZiAoIW1fZXZlbnRzTG9j
ay50cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9ldmVudHNMb2Nr
IH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9ldmVudHNMb2NrIH07CiAKICAg
ICAvLyBSZXR1cm4gZmFsc2UgaWYgdGhlcmUgYXJlIG5vIGV2ZW50cyBpbiB0aGUgdGltZSByYW5n
ZS4KICAgICBhdXRvIGVuZEZyYW1lID0gc3RhcnRGcmFtZSArIEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldE5vZGUuY3BwCmluZGV4IDM0OTYyNmZhNGQ0M2VkMjUzZmNmOTA3MzJiNjQy
YWYyYmM1YWE0NjAuLmJjOTA5OTU5ZDUzYzRkYmNkMWQzYzc4OGU1YjA3OTY3YzVhOTg1NzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9k
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRO
b2RlLmNwcApAQCAtMTkxLDggKzE5MSw4IEBAIHZvaWQgQXVkaW9Xb3JrbGV0Tm9kZTo6cHJvY2Vz
cyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkp
OwogCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBp
ZiAoIWxvY2tlciB8fCAhbV9wcm9jZXNzb3IgfHwgJlRocmVhZDo6Y3VycmVudCgpICE9IG1fd29y
a2xldFRocmVhZCkgeworICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fcHJvY2Vzc0xv
Y2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkgfHwgIW1fcHJvY2Vzc29yIHx8ICZUaHJl
YWQ6OmN1cnJlbnQoKSAhPSBtX3dvcmtsZXRUaHJlYWQpIHsKICAgICAgICAgLy8gV2UncmUgbm90
IHJlYWR5IHlldCBvciB3ZSBhcmUgZ2V0dGluZyBkZXN0cm95ZWQuIEluIHRoaXMgY2FzZSwgd2Ug
b3V0cHV0IHNpbGVuY2UuCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJP
Zk91dHB1dHMoKTsgKytpKQogICAgICAgICAgICAgb3V0cHV0KGkpLT5idXMoKS0+emVybygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4
dC5jcHAKaW5kZXggZTIwMmQ3ZDI2MmFkMDY0N2JkYTc2ZmJhNTI3ZjBhNWExNjIxYTc4MC4uOGU0
YzNkNjIyMDI1ZTlhY2ZlMTQzZDkyM2VmZDFmNmMxMTZmZmZhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCkBAIC01NjAs
MTQgKzU2MCwxNiBAQCB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6OmhhbmRsZVByZVJlbmRlclRhc2tz
KGNvbnN0IEF1ZGlvSU9Qb3NpdGlvbiYgb3V0cHV0UG9zaXRpbwogCiAgICAgLy8gQXQgdGhlIGJl
Z2lubmluZyBvZiBldmVyeSByZW5kZXIgcXVhbnR1bSwgdHJ5IHRvIHVwZGF0ZSB0aGUgaW50ZXJu
YWwgcmVuZGVyaW5nIGdyYXBoIHN0YXRlIChmcm9tIG1haW4gdGhyZWFkIGNoYW5nZXMpLgogICAg
IC8vIEl0J3MgT0sgaWYgdGhlIHRyeUxvY2soKSBmYWlscywgd2UnbGwganVzdCB0YWtlIHNsaWdo
dGx5IGxvbmdlciB0byBwaWNrIHVwIHRoZSBjaGFuZ2VzLgotICAgIGlmIChhdXRvIGxvY2tlciA9
IExvY2tlcjxSZWN1cnNpdmVMb2NrPjo6dHJ5TG9jayhncmFwaExvY2soKSkpIHsKLSAgICAgICAg
Ly8gRml4dXAgdGhlIHN0YXRlIG9mIGFueSBkaXJ0eSBBdWRpb1N1bW1pbmdKdW5jdGlvbnMgYW5k
IEF1ZGlvTm9kZU91dHB1dHMuCi0gICAgICAgIGhhbmRsZURpcnR5QXVkaW9TdW1taW5nSnVuY3Rp
b25zKCk7Ci0gICAgICAgIGhhbmRsZURpcnR5QXVkaW9Ob2RlT3V0cHV0cygpOworICAgIExvY2tl
ciBsb2NrZXIgeyBEZWZlckxvY2ssIGdyYXBoTG9jaygpIH07CisgICAgaWYgKCFsb2NrZXIudHJ5
TG9jaygpKQorICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdXBkYXRlQXV0b21hdGljUHVsbE5v
ZGVzKCk7Ci0gICAgICAgIG1fb3V0cHV0UG9zaXRpb24gPSBvdXRwdXRQb3NpdGlvbjsKLSAgICB9
CisgICAgLy8gRml4dXAgdGhlIHN0YXRlIG9mIGFueSBkaXJ0eSBBdWRpb1N1bW1pbmdKdW5jdGlv
bnMgYW5kIEF1ZGlvTm9kZU91dHB1dHMuCisgICAgaGFuZGxlRGlydHlBdWRpb1N1bW1pbmdKdW5j
dGlvbnMoKTsKKyAgICBoYW5kbGVEaXJ0eUF1ZGlvTm9kZU91dHB1dHMoKTsKKworICAgIHVwZGF0
ZUF1dG9tYXRpY1B1bGxOb2RlcygpOworICAgIG1fb3V0cHV0UG9zaXRpb24gPSBvdXRwdXRQb3Np
dGlvbjsKIH0KIAogQXVkaW9JT1Bvc2l0aW9uIEJhc2VBdWRpb0NvbnRleHQ6Om91dHB1dFBvc2l0
aW9uKCkKQEAgLTU4NCw4ICs1ODYsOCBAQCB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6OmhhbmRsZVBv
c3RSZW5kZXJUYXNrcygpCiAgICAgLy8gTXVzdCB1c2UgYSB0cnlMb2NrKCkgaGVyZSB0b28uIERv
bid0IHdvcnJ5LCB0aGUgbG9jayB3aWxsIHZlcnkgcmFyZWx5IGJlIGNvbnRlbmRlZCBhbmQgdGhp
cyBtZXRob2QgaXMgY2FsbGVkIGZyZXF1ZW50bHkuCiAgICAgLy8gVGhlIHdvcnN0IHRoYXQgY2Fu
IGhhcHBlbiBpcyB0aGF0IHRoZXJlIHdpbGwgYmUgc29tZSBub2RlcyB3aGljaCB3aWxsIHRha2Ug
c2xpZ2h0bHkgbG9uZ2VyIHRoYW4gdXN1YWwgdG8gYmUgZGVsZXRlZCBvciByZW1vdmVkCiAgICAg
Ly8gZnJvbSB0aGUgcmVuZGVyIGdyYXBoIChpbiB3aGljaCBjYXNlIHRoZXknbGwgcmVuZGVyIHNp
bGVuY2UpLgotICAgIGF1dG8gbG9ja2VyID0gTG9ja2VyPFJlY3Vyc2l2ZUxvY2s+Ojp0cnlMb2Nr
KGdyYXBoTG9jaygpKTsKLSAgICBpZiAoIWxvY2tlcikKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVm
ZXJMb2NrLCBncmFwaExvY2soKSB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgLy8gVGFrZSBjYXJlIG9mIGZpbmlzaGluZyBhbnkgZGVyZWZzIHdo
ZXJlIHRoZSB0cnlMb2NrKCkgZmFpbGVkIHByZXZpb3VzbHkuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcAppbmRleCA1OTcxZmQwMDIyNWJj
YWNjYzBlNTM3M2U2NzAyZGI0Y2QyOWU4NTAwLi4xYmM5ZjJlY2Y2ZTUzMWQxYzEwNDdkNDVhYmRj
N2M3OGRhZTdjMWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0NvbnZvbHZlck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
Q29udm9sdmVyTm9kZS5jcHAKQEAgLTkyLDkgKzkyLDkgQEAgdm9pZCBDb252b2x2ZXJOb2RlOjpw
cm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgQVNTRVJUKG91dHB1dEJ1cyk7CiAK
ICAgICAvLyBTeW5jaHJvbml6ZSB3aXRoIHBvc3NpYmxlIGR5bmFtaWMgY2hhbmdlcyB0byB0aGUg
aW1wdWxzZSByZXNwb25zZS4KLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vz
c0xvY2spOwotICAgIGlmICghbG9ja2VyKSB7Ci0gICAgICAgIC8vIFRvbyBiYWQgLSB0cnlIb2xk
TG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIHNldHRpbmcgYSBuZXcg
aW1wdWxzZSByZXNwb25zZS4KKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nl
c3NMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKSB7CisgICAgICAgIC8vIFRvbyBi
YWQgLSB0cnlMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2Ygc2V0dGlu
ZyBhIG5ldyBpbXB1bHNlIHJlc3BvbnNlLgogICAgICAgICBvdXRwdXRCdXMtPnplcm8oKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcAppbmRleCBh
MWE0NmE2N2VlYTIzYzU1OTIxM2E3MzA4ODgyY2U1MDY3NGJiMjY0Li5jZGIzYTczN2Q1YTQ2YzMy
YzA4MGQwZjJhNDA4ZDc2MTAxN2JhOTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3Bw
CkBAIC0xNTUsMTEgKzE1NSwxMSBAQCB2b2lkIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZTo6
cHJvY2VzcyhzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICAvLyBVc2UgdHJ5SG9sZExvY2soKSB0byBhdm9pZCBjb250ZW50aW9uIGluIHRoZSByZWFs
LXRpbWUgYXVkaW8gdGhyZWFkLgorICAgIC8vIFVzZSB0cnlMb2NrKCkgdG8gYXZvaWQgY29udGVu
dGlvbiBpbiB0aGUgcmVhbC10aW1lIGF1ZGlvIHRocmVhZC4KICAgICAvLyBJZiB3ZSBmYWlsIHRv
IGFjcXVpcmUgdGhlIGxvY2sgdGhlbiB0aGUgSFRNTE1lZGlhRWxlbWVudCBtdXN0IGJlIGluIHRo
ZSBtaWRkbGUgb2YKICAgICAvLyByZWNvbmZpZ3VyaW5nIGl0cyBwbGF5YmFjayBlbmdpbmUsIHNv
IHdlIG91dHB1dCBzaWxlbmNlIGluIHRoaXMgY2FzZS4KLSAgICBhdXRvIGxvY2tlciA9IHRyeUhv
bGRMb2NrKG1fcHJvY2Vzc0xvY2spOwotICAgIGlmICghbG9ja2VyKSB7CisgICAgTG9ja2VyIGxv
Y2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxv
Y2soKSkgewogICAgICAgICAvLyBXZSBmYWlsZWQgdG8gYWNxdWlyZSB0aGUgbG9jay4KICAgICAg
ICAgb3V0cHV0QnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNl
Tm9kZS5jcHAKaW5kZXggYzU2NjJkNjA5YWY2MGE2YWViYTZkYTcyMWEzNWQxZDU4OGFkNTE3NS4u
Yjg1NDJkNGUzYmZjMTIwNDNjNjIzMmRkOGU3ZmZiMzUzYWE4YzFjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlv
U291cmNlTm9kZS5jcHAKQEAgLTEzOSwxNiArMTM5LDExIEBAIHZvaWQgTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZU5vZGU6OnByb2Nlc3Moc2l6ZV90IG51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgLy8gVXNlIHRyeUhvbGRMb2NrKCkgdG8gYXZvaWQgY29udGVudGlv
biBpbiB0aGUgcmVhbC10aW1lIGF1ZGlvIHRocmVhZC4KKyAgICAvLyBVc2UgdHJ5TG9jaygpIHRv
IGF2b2lkIGNvbnRlbnRpb24gaW4gdGhlIHJlYWwtdGltZSBhdWRpbyB0aHJlYWQuCiAgICAgLy8g
SWYgd2UgZmFpbCB0byBhY3F1aXJlIHRoZSBsb2NrIHRoZW4gdGhlIE1lZGlhU3RyZWFtIG11c3Qg
YmUgaW4gdGhlIG1pZGRsZSBvZgogICAgIC8vIGEgZm9ybWF0IGNoYW5nZSwgc28gd2Ugb3V0cHV0
IHNpbGVuY2UgaW4gdGhpcyBjYXNlLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9w
cm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKLSAgICAgICAgLy8gV2UgZmFpbGVkIHRv
IGFjcXVpcmUgdGhlIGxvY2suCi0gICAgICAgIG91dHB1dEJ1cy0+emVybygpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIGlmIChtX3NvdXJjZU51bWJlck9mQ2hhbm5lbHMgIT0gb3V0cHV0
QnVzLT5udW1iZXJPZkNoYW5uZWxzKCkpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2Nr
LCBtX3Byb2Nlc3NMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpIHx8IG1fc291cmNl
TnVtYmVyT2ZDaGFubmVscyAhPSBvdXRwdXRCdXMtPm51bWJlck9mQ2hhbm5lbHMoKSkgewogICAg
ICAgICBvdXRwdXRCdXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHAKaW5kZXgg
YzZmNjlkMjMwNWMyMTU5OTY3MTM5YTg0NzlmYWU1ZDMxODIyMjU4Ny4uZmZhNDY3OTZiOGVjYTc1
Mjc3OWIxNmQxZTNjNTAzZTY4ODFmOGI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHAKQEAgLTM0OSwxMCArMzQ5LDEwIEBAIHZv
aWQgT3NjaWxsYXRvck5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICBp
ZiAoZnJhbWVzVG9Qcm9jZXNzID4gbV9waGFzZUluY3JlbWVudHMuc2l6ZSgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9j
aywgc28gd2UgdXNlIHRyeUhvbGRMb2NrKCkgaW5zdGVhZC4KLSAgICBhdXRvIGxvY2tlciA9IHRy
eUhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwotICAgIGlmICghbG9ja2VyKSB7Ci0gICAgICAgIC8v
IFRvbyBiYWQgLSB0cnlIb2xkTG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxl
IG9mIGNoYW5naW5nIHdhdmUtdGFibGVzLgorICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3Qg
YmxvY2sgb24gdGhpcyBsb2NrLCBzbyB3ZSB1c2UgdHJ5TG9jaygpIGluc3RlYWQuCisgICAgTG9j
a2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNzTG9jayB9OworICAgIGlmICghbG9ja2Vy
LnRyeUxvY2soKSkgeworICAgICAgICAvLyBUb28gYmFkIC0gdHJ5TG9jaygpIGZhaWxlZC4gV2Ug
bXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGNoYW5naW5nIHdhdmUtdGFibGVzLgogICAgICAgICBv
dXRwdXRCdXMuemVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAKaW5kZXggN2NjZjI0ZDY3MGI3ZjZl
MWVmMWEzNzc5ZjliNzA0ODY4MmZmY2VkNy4uOTQxY2I2NjE0NWM3ODkyNWU4MDQ3OGQzYTkzNDVh
MzJlOTgwZjU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Q
YW5uZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5l
ck5vZGUuY3BwCkBAIC0xMjksMTAgKzEyOSwxMCBAQCB2b2lkIFBhbm5lck5vZGU6OnByb2Nlc3Mo
c2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICAgICAgfQogICAgIH0KIAotICAgIC8vIFRoZSBh
dWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBsb2NrLCBzbyB3ZSB1c2UgdHJ5SG9sZExv
Y2soKSBpbnN0ZWFkLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9wcm9jZXNzTG9j
ayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKLSAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUhvbGRMb2Nr
KCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgdGhlIHBhbm5l
ci4KKyAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28g
d2UgdXNlIHRyeUxvY2soKSBpbnN0ZWFkLgorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ss
IG1fcHJvY2Vzc0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpIHsKKyAgICAgICAg
Ly8gVG9vIGJhZCAtIHRyeUxvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBv
ZiBjaGFuZ2luZyB0aGUgcGFubmVyLgogICAgICAgICBkZXN0aW5hdGlvbi0+emVybygpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKaW5kZXggMjJlOTdlOGFhMjVlYWMyZjcw
OGUyM2Y3NmE4OWIyOGQ5MzAzMDEzMC4uNzJiZWFkZjRkNzAwNDIwYWE0NmM2NWZkZDI3OGJkMmRk
MTAxZTZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3Jp
cHRQcm9jZXNzb3JOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCkBAIC0xNTgsOCArMTU4LDggQEAgdm9pZCBTY3JpcHRQ
cm9jZXNzb3JOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgdW5zaWdu
ZWQgYnVmZmVySW5kZXggPSB0aGlzLT5idWZmZXJJbmRleCgpOwogICAgIEFTU0VSVChidWZmZXJJ
bmRleCA8IGJ1ZmZlckNvdW50KTsKIAotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9i
dWZmZXJMb2Nrc1tidWZmZXJJbmRleF0pOwotICAgIGlmICghbG9ja2VyKSB7CisgICAgTG9ja2Vy
IGxvY2tlciB7IERlZmVyTG9jaywgbV9idWZmZXJMb2Nrc1tidWZmZXJJbmRleF0gfTsKKyAgICBp
ZiAoIWxvY2tlci50cnlMb2NrKCkpIHsKICAgICAgICAgLy8gV2UncmUgbGF0ZSBpbiBoYW5kbGlu
ZyB0aGUgcHJldmlvdXMgcmVxdWVzdC4gVGhlIG1haW4gdGhyZWFkIG11c3QgYmUKICAgICAgICAg
Ly8gdmVyeSBidXN5LiBUaGUgYmVzdCB3ZSBjYW4gZG8gaXMgY2xlYXIgb3V0IHRoZSBidWZmZXIg
b3Vyc2VsZiBoZXJlLgogICAgICAgICBvdXRwdXRCdXMtPnplcm8oKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwCmlu
ZGV4IDEyMDg4NTA4MDg5MDM2MWQ0YzQwYWE2YWNhYjk1NGJhNzAwYjU3MjkuLjM4ZDc3ZGI1NWI2
MWZiNTAwMmRjZGZhMjlkMWIzMmNmYjBkNTZkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcApAQCAtODMsMTAg
KzgzLDEwIEBAIHZvaWQgV2F2ZVNoYXBlclByb2Nlc3Nvcjo6cHJvY2Vzcyhjb25zdCBBdWRpb0J1
cyogc291cmNlLCBBdWRpb0J1cyogZGVzdGluYXRpb24sCiAgICAgaWYgKCFjaGFubmVsQ291bnRN
YXRjaGVzKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0
IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUhvbGRMb2NrKCkgaW5zdGVhZC4KLSAg
ICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwotICAgIGlmICghbG9j
a2VyKSB7Ci0gICAgICAgIC8vIFRvbyBiYWQgLSB0cnlIb2xkTG9jaygpIGZhaWxlZC4gV2UgbXVz
dCBiZSBpbiB0aGUgbWlkZGxlIG9mIGEgc2V0Q3VydmUoKSBjYWxsLgorICAgIC8vIFRoZSBhdWRp
byB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBsb2NrLCBzbyB3ZSB1c2UgdHJ5TG9jaygpIGlu
c3RlYWQuCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNzTG9jayB9Owor
ICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgeworICAgICAgICAvLyBUb28gYmFkIC0gdHJ5TG9j
aygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGEgc2V0Q3VydmUoKSBjYWxs
LgogICAgICAgICBkZXN0aW5hdGlvbi0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250
ZXh0LmNwcAppbmRleCBlYjJkM2FhOGQ2MzdlNGQ0YmE2M2ExMzgxODBhMDdkYjI5YzQwNmY1Li43
MTcxZDgzODAyNTkxZGYwZDNkYTA5MDg5YWI0NWY0M2JkMDQ4ZmM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAt
MjYzMyw3ICsyNjMzLDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVWZXJ0
ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJheU9iamUKIAogICAgIGlmICghYXJy
YXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpICYmIGFycmF5T2JqZWN0ID09IG1fYm91bmRWZXJ0
ZXhBcnJheU9iamVjdCkgewogICAgICAgICAvLyBiaW5kVmVydGV4QXJyYXkgZ3JhYnMgdGhlIGxv
Y2sgaW50ZXJuYWxseS4KLSAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxv
Y2tlci51bmxvY2soKTsKICAgICAgICAgYmluZFZlcnRleEFycmF5KG51bGxwdHIpOyAvLyBUaGUg
ZGVmYXVsdCBWQU8gd2FzIHJlbW92ZWQgaW4gT3BlbkdMIDMuMyBidXQgbm90IGZyb20gV2ViR0wg
MjsgYmluZCB0aGUgZGVmYXVsdCBmb3IgV2ViR0wgdG8gdXNlLgogICAgICAgICBsb2NrZXIgPSBM
b2NrZXIgeyBvYmplY3RHcmFwaExvY2soKSB9OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAppbmRleCBlYjU0ZjBkNTFkNzg2MGI5
ZjYwNDBkODkzNTg4NDQ4ODJhNjViYjYyLi5mZjQ1NjE3YmYzOGQyZjNhMmQ2NmQ0ZGNhN2IzZDYw
NGMzNDI2NjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRp
b0Rlc3RpbmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9E
ZXN0aW5hdGlvbi5oCkBAIC05NiwxNCArOTYsMTMgQEAgaW5saW5lIHZvaWQgQXVkaW9EZXN0aW5h
dGlvbjo6Y2xlYXJDYWxsYmFjaygpCiAKIGlubGluZSB2b2lkIEF1ZGlvRGVzdGluYXRpb246OmNh
bGxSZW5kZXJDYWxsYmFjayhBdWRpb0J1cyogc291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGluYXRp
b25CdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MsIGNvbnN0IEF1ZGlvSU9Qb3NpdGlvbiYgb3V0
cHV0UG9zaXRpb24pCiB7Ci0gICAgaWYgKG1fY2FsbGJhY2tMb2NrLnRyeUxvY2soKSkgewotICAg
ICAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9jYWxsYmFja0xvY2sgfTsK
LSAgICAgICAgaWYgKG1fY2FsbGJhY2spIHsKLSAgICAgICAgICAgIG1fY2FsbGJhY2stPnJlbmRl
cihzb3VyY2VCdXMsIGRlc3RpbmF0aW9uQnVzLCBmcmFtZXNUb1Byb2Nlc3MsIG91dHB1dFBvc2l0
aW9uKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQorICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fY2FsbGJhY2tMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygp
KSB7CisgICAgICAgIGRlc3RpbmF0aW9uQnVzLT56ZXJvKCk7CisgICAgICAgIHJldHVybjsKICAg
ICB9Ci0gICAgZGVzdGluYXRpb25CdXMtPnplcm8oKTsKKyAgICBpZiAobV9jYWxsYmFjaykKKyAg
ICAgICAgbV9jYWxsYmFjay0+cmVuZGVyKHNvdXJjZUJ1cywgZGVzdGluYXRpb25CdXMsIGZyYW1l
c1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNw
cAppbmRleCAyN2IyOTgyZGMzZmQ5MTY4NWQzMTdhN2VkMWE5YzFlNmVlNDdiMjZmLi5mZDg4NTZm
YjYyNzlkMDRiMzc2NjAzYTEyZGNlMTU0N2FjNGM0MmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKQEAgLTIwMiw4ICsyMDIsOCBA
QCB2b2lkIFJldmVyYkNvbnZvbHZlcjo6cHJvY2Vzcyhjb25zdCBBdWRpb0NoYW5uZWwqIHNvdXJj
ZUNoYW5uZWwsIEF1ZGlvQ2hhbm5lbCogZAogICAgIC8vIHNpZ25hbCBmcm9tIHRpbWUgdG8gdGlt
ZSwgc2luY2Ugd2UnbGwgZ2V0IHRvIGl0IHRoZSBuZXh0IHRpbWUgd2UncmUgY2FsbGVkLiAgV2Un
cmUgY2FsbGVkIHJlcGVhdGVkbHkKICAgICAvLyBhbmQgZnJlcXVlbnRseSAoYXJvdW5kIGV2ZXJ5
IDNtcykuICBUaGUgYmFja2dyb3VuZCB0aHJlYWQgaXMgcHJvY2Vzc2luZyB3ZWxsIGludG8gdGhl
IGZ1dHVyZSBhbmQgaGFzIGEgY29uc2lkZXJhYmxlIGFtb3VudCBvZiAKICAgICAvLyBsZWV3YXkg
aGVyZS4uLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9iYWNrZ3JvdW5kVGhyZWFk
TG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
bV9iYWNrZ3JvdW5kVGhyZWFkTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgbV9tb3JlSW5wdXRCdWZmZXJlZCA9IHRydWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9u
Q29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0
aW5hdGlvbkNvY29hLmNwcAppbmRleCAzOTJjMzYxNDA0ZmMyYzk1MGViYjkzODg5YTYyOWNiNWEz
NzFlNDJhLi41NTc2N2MxOTczNjVkMjlhNzE2NzYwYjRlNzE5NDYxYTI1ZWM3MDcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9u
Q29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5jcHAKQEAgLTIxOSwxMCArMjE5LDEwIEBAIE9TU3RhdHVzIEF1ZGlv
RGVzdGluYXRpb25Db2NvYTo6cmVuZGVyKGRvdWJsZSBzYW1wbGVUaW1lLCB1aW50NjRfdCBob3N0
VGltZSwgVUluCiAgICAgfQogCiAgICAgLy8gV2hlbiB0aGVyZSBpcyBhIEF1ZGlvV29ya2xldCwg
d2UgZG8gcmVuZGVyaW5nIG9uIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQuCi0gICAgaWYgKCFtX2Rp
c3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrLnRyeUxvY2soKSkKKyAgICBMb2NrZXIgbG9ja2VyIHsg
RGVmZXJMb2NrLCBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrIH07CisgICAgaWYgKCFsb2Nr
ZXIudHJ5TG9jaygpKQogICAgICAgICByZXR1cm4gLTE7CiAKLSAgICBMb2NrZXIgbG9ja2VyIHsg
QWRvcHRMb2NrVGFnIHsgfSwgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jayB9OwogICAgIGlm
ICghbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKQogICAgICAgICByZW5kZXJPblJlbmRlcmluZ1Ro
ZWFkSWZQbGF5aW5nKGZyYW1lc1RvUmVuZGVyKTsKICAgICBlbHNlIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVy
R1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9B
dWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNwcAppbmRleCBmNzc1YTMyZmQ0NzgwMmVlNTM4
ODU3MTYzZWQ3NzlhMTIxMzhjZDQ3Li4zYzEwZDgzYjQ4Y2RiMWEyYzEwNGQ0Mzc2NTJkM2VhYjBm
M2JhNDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFt
ZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXIuY3Bw
CkBAIC0xNTksMTAgKzE1OSwxMCBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXI6
OmNvbmZpZ3VyZUF1ZGlvQmluKEdzdEVsZW1lbnQqIGF1ZGlvQmluLCBHc3RFbAogdm9pZCBBdWRp
b1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyOjpwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6
ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsKICAgICBHU1RfVFJBQ0UoIkZldGNoaW5nIGJ1ZmZlcnMg
ZnJvbSBhZGFwdGVycyIpOwotICAgIGlmICghbV9hZGFwdGVyTG9jay50cnlMb2NrKCkpCisgICAg
TG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9hZGFwdGVyTG9jayB9OworICAgIGlmICghbG9j
a2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTG9ja2VyIGxvY2tlciB7IEFk
b3B0TG9ja1RhZyB7IH0sIG1fYWRhcHRlckxvY2sgfTsKICAgICBmb3IgKGF1dG8mIGl0IDogbV9h
ZGFwdGVycykKICAgICAgICAgY29weUdTdHJlYW1lckJ1ZmZlcnNUb0F1ZGlvQ2hhbm5lbChpdC52
YWx1ZS5nZXQoKSwgYnVzLCBpdC5rZXkgLSAxLCBmcmFtZXNUb1Byb2Nlc3MpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1
ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggNmVmODM1Mjgz
ZmYzNTNhOGZlMTIyN2IwNzBhMWRkZDU2ZDRhM2Y4Zi4uYzdlNzY4NjE5YjQ3ZTMwOTEzYThjZDY4
OTRkNDg2OTM2MzdlMjlmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VH
U3RyZWFtZXIuY3BwCkBAIC00MDgsMTEgKzQwOCwxMCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJB
dWRpb1NyY1JlbmRlckl0ZXJhdGlvbihXZWJLaXRXZWJBdWRpb1NyYyogc3JjKQogICAgICAgICBw
cml2LT5kaXNwYXRjaERvbmUgPSBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAoIXByaXYtPmRpc3Bh
dGNoVG9SZW5kZXJUaHJlYWRMb2NrLnRyeUxvY2soKSkKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVm
ZXJMb2NrLCBwcml2LT5kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jayB9OworICAgIGlmICghbG9j
a2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTG9ja2VyIGxvY2tlciB7IEFk
b3B0TG9ja1RhZyB7IH0sIHByaXYtPmRpc3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrIH07Ci0KICAg
ICBpZiAoIXByaXYtPmRpc3BhdGNoVG9SZW5kZXJUaHJlYWRGdW5jdGlvbikKICAgICAgICAgd2Vi
S2l0V2ViQXVkaW9TcmNSZW5kZXJBbmRQdXNoRnJhbWVzKEdSZWZQdHI8R3N0RWxlbWVudD4oR1NU
X0VMRU1FTlRfQ0FTVChzcmMpKSwgV1RGTW92ZSgqY2hhbm5lbEJ1ZmZlckxpc3QpKTsKICAgICBl
bHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRv
d0JsdXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5j
cHAKaW5kZXggYzA2NGNjZTRjYTg2MmJkNDY4OTI4NDFmZmE1YmMxOWZiN2YyMTNkYS4uMjg0OGJh
YjEwODlkYmVlMTE0MWZkMWU2OTU0MDFmZWVhNDI3YTgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAKQEAgLTEzNSw3ICsxMzUsOCBAQCBw
cml2YXRlOgogICAgIHZvaWQgcHVyZ2VUaW1lckZpcmVkKCkKICAgICB7CiAgICAgICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7Ci0gICAgICAgIGlmIChhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2Nr
KGxvY2soKSkpCisgICAgICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIGxvY2soKSB9Owor
ICAgICAgICBpZiAobG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgICAgIGNsZWFyU2NyYXRjaEJ1
ZmZlcigpOwogICAgIH0KIApAQCAtNjk0LDggKzY5NSw4IEBAIHZvaWQgU2hhZG93Qmx1cjo6ZHJh
d1JlY3RTaGFkb3dXaXRoVGlsaW5nKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBj
b25zCiB7CiAgICAgUmVmUHRyPEltYWdlQnVmZmVyPiBsYXllckltYWdlQnVmZmVyOwogI2lmIFVT
RShDRykKLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKFNjcmF0Y2hCdWZmZXI6OmxvY2so
KSk7Ci0gICAgaWYgKGxvY2tlcikgeworICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIFNj
cmF0Y2hCdWZmZXI6OmxvY2soKSB9OworICAgIGlmIChsb2NrZXIudHJ5TG9jaygpKSB7CiAgICAg
ICAgIGxheWVySW1hZ2VCdWZmZXIgPSBTY3JhdGNoQnVmZmVyOjpzaW5nbGV0b24oKS5nZXRTY3Jh
dGNoQnVmZmVyKHRlbXBsYXRlU2l6ZSk7CiAgICAgICAgIGlmICghbGF5ZXJJbWFnZUJ1ZmZlcikK
ICAgICAgICAgICAgIHJldHVybjsKQEAgLTc1NCw4ICs3NTUsOCBAQCB2b2lkIFNoYWRvd0JsdXI6
OmRyYXdJbnNldFNoYWRvd1dpdGhUaWxpbmcoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zv
cm0sIGNvbgogewogICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gbGF5ZXJJbWFnZUJ1ZmZlcjsKICNp
ZiBVU0UoQ0cpCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhTY3JhdGNoQnVmZmVyOjps
b2NrKCkpOwotICAgIGlmIChsb2NrZXIpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2Nr
LCBTY3JhdGNoQnVmZmVyOjpsb2NrKCkgfTsKKyAgICBpZiAobG9ja2VyLnRyeUxvY2soKSkgewog
ICAgICAgICBsYXllckltYWdlQnVmZmVyID0gU2NyYXRjaEJ1ZmZlcjo6c2luZ2xldG9uKCkuZ2V0
U2NyYXRjaEJ1ZmZlcih0ZW1wbGF0ZVNpemUpOwogICAgICAgICBpZiAoIWxheWVySW1hZ2VCdWZm
ZXIpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMubW0KaW5kZXggNDc5NzY4M2I4MGJiNDkwNWE3YTgxNjg4N2E0MzU0
ZDEyOThlY2Q0MS4uNGJjZjNhMTBjM2IyZGVkYzcyOTIxODEyOTUwZDg4ZjAyOTJiODA2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQpAQCAt
OTQsNyArOTQsNyBAQCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6fkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDKCkKIAogdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlk
ZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7Ci0gICAgLy8g
UHJvdGVjdCBhY2Nlc3MgdG8gbV9yaW5nQnVmZmVyIGJ5IHVzaW5nIHRyeUhvbGRMb2NrKCkuIElm
IHdlIGZhaWxlZAorICAgIC8vIFByb3RlY3QgYWNjZXNzIHRvIG1fcmluZ0J1ZmZlciBieSB1c2lu
ZyB0cnlMb2NrKCkuIElmIHdlIGZhaWxlZAogICAgIC8vIHRvIGFxdWlyZSwgYSByZS1jb25maWd1
cmUgaXMgdW5kZXJ3YXksIGFuZCBtX3JpbmdCdWZmZXIgaXMgdW5zYWZlIHRvIGFjY2Vzcy4KICAg
ICAvLyBFbWl0IHNpbGVuY2UuCiAgICAgaWYgKCFtX3RhcFN0b3JhZ2UpIHsKQEAgLTEwMiw4ICsx
MDIsOCBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQoQXVk
aW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvYwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3RhcFN0b3JhZ2UtPmxvY2spOwotICAg
IGlmICghbG9ja2VyIHx8ICFtX3JpbmdCdWZmZXIpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVm
ZXJMb2NrLCBtX3RhcFN0b3JhZ2UtPmxvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkg
fHwgIW1fcmluZ0J1ZmZlcikgewogICAgICAgICBidXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRleCA4MTM5OTZjNzZjNjQxYjdj
YWUwNDZmNTk3MWVjNzQ3Y2Y5MWNlOWQ3Li44MWU3NTczZWQ0MjE1ZGNkN2U0NDBhMWFjOGYzNWJl
NWMxMmE1YjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCkBAIC0yNTQsOCArMjU0LDgg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmVucXVldWVWaWRl
b1NhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGwKICAgICBpZiAoIW1fdmlzaWJsZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3NhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllckxvY2spOwotICAgIGlmICghbG9ja2VyKQorICAgIExvY2tlciBsb2NrZXIgeyBE
ZWZlckxvY2ssIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTG9jayB9OworICAgIGlmICghbG9j
a2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFtX2NhbkVucXVldWVE
aXNwbGF5TGF5ZXIgfHwgIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIHx8IG1fc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyLT5kaWRGYWlsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIu
Y3BwCmluZGV4IDExYmVhMTJiNjZkYzU0NjI1YTgyOWY5MDc0YTkyYzAzNzRjZTI4OTUuLjE1YjU3
MjhmN2ZkYmE4MTE3MWYyN2NjODk2Mjg5MWUxODc3YmI1ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1Np
bmtHU3RyZWFtZXIuY3BwCkBAIC05OSw3ICs5OSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgICAgICBhdXRvIHNhbXBsZSA9IFdURk1vdmUobV9zYW1wbGUpOwot
ICAgICAgICBsb2NrZXIudW5sb2NrRWFybHkoKTsKKyAgICAgICAgbG9ja2VyLnVubG9jaygpOwog
ICAgICAgICBpZiAoTElLRUxZKEdTVF9JU19TQU1QTEUoc2FtcGxlLmdldCgpKSkpCiAgICAgICAg
ICAgICB3ZWJraXRWaWRlb1NpbmtSZXBhaW50UmVxdWVzdGVkKHNpbmssIHNhbXBsZS5nZXQoKSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVu
Y3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCmluZGV4IDMyMDE3NGQ1YmZlODc2ZGI4YzE0
MjM1OWE4ZTFhMDFhYTg2YzBmZGIuLmU4ZTcyOWY4MzAxYTg3NjZlNjRiZjYzNTJmMDIwNmE3YTYz
ZWYwYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRD
b21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcApAQCAtMzk3LDcgKzM5Nyw3IEBA
IHN0YXRpYyBnYm9vbGVhbiBzaW5rRXZlbnRIYW5kbGVyKEdzdEJhc2VUcmFuc2Zvcm0qIHRyYW5z
LCBHc3RFdmVudCogZXZlbnQpCiAgICAgICAgICAgICBib29sIGlzQ2RtUHJveHlBdHRhY2hlZCA9
IHByaXYtPmNkbVByb3h5OwogICAgICAgICAgICAgcHJpdi0+aXNGbHVzaGluZyA9IHRydWU7CiAg
ICAgICAgICAgICBpZiAoaXNDZG1Qcm94eUF0dGFjaGVkKSB7Ci0gICAgICAgICAgICAgICAgbG9j
a2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgICAgICAgICAgbG9ja2VyLnVubG9jaygpOwogICAg
ICAgICAgICAgICAgIHByaXYtPmNkbVByb3h5LT5hYm9ydFdhaXRpbmdGb3JLZXkoKTsKICAgICAg
ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIHByaXYtPmNvbmRpdGlvbi5ub3RpZnlPbmUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5j
cHAKaW5kZXggNmQwM2RmOTZhZDQzNzkwZDVhZjNkMmI3MmQ3NzAwZDE2ZmYyYTRmYS4uZDRkZTFk
OWUxZGJkMjkyYTY0OWIxYTk5ZTM0NGQ5MjY4MmY4NDJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTUwOSw3ICs1MDksNyBA
QCBzdGF0aWMgdm9pZCB3ZWJLaXRNZWRpYVNyY0xvb3Aodm9pZCogdXNlckRhdGEpCiAgICAgICAg
IH0KIAogICAgICAgICAvLyBQdXNoIHRoZSBidWZmZXIgd2l0aG91dCB0aGUgc3RyZWFtaW5nTWVt
YmVycyBsb2NrIHNvIHRoYXQgZmx1c2hlcyBjYW4gaGFwcGVuIHdoaWxlIGl0IHRyYXZlbHMgZG93
bnN0cmVhbS4KLSAgICAgICAgc3RyZWFtaW5nTWVtYmVycy5sb2NrSG9sZGVyKCkudW5sb2NrRWFy
bHkoKTsKKyAgICAgICAgc3RyZWFtaW5nTWVtYmVycy5sb2NrSG9sZGVyKCkudW5sb2NrKCk7CiAK
ICAgICAgICAgQVNTRVJUKEdTVF9CVUZGRVJfUFRTX0lTX1ZBTElEKGJ1ZmZlci5nZXQoKSkpOwog
ICAgICAgICBHU1RfVFJBQ0VfT0JKRUNUKHBhZCwgIlB1c2hpbmcgYnVmZmVyIGRvd25zdHJlYW06
ICUiIEdTVF9QVFJfRk9STUFULCBidWZmZXIuZ2V0KCkpOwpAQCAtNTI1LDcgKzUyNSw3IEBAIHN0
YXRpYyB2b2lkIHdlYktpdE1lZGlhU3JjTG9vcCh2b2lkKiB1c2VyRGF0YSkKICAgICAgICAgLy8g
RU9TIGV2ZW50cyBhbmQgb3RoZXIgZW5xdWV1ZWQgZXZlbnRzIGFyZSBhbHNvIHNlbnQgdW5sb2Nr
ZWQgc28gdGhleSBjYW4gcmVhY3QgdG8gZmx1c2hlcyBpZiBuZWNlc3NhcnkuCiAgICAgICAgIEdS
ZWZQdHI8R3N0RXZlbnQ+IGV2ZW50ID0gR1JlZlB0cjxHc3RFdmVudD4oR1NUX0VWRU5UKG9iamVj
dC5sZWFrUmVmKCkpKTsKIAotICAgICAgICBzdHJlYW1pbmdNZW1iZXJzLmxvY2tIb2xkZXIoKS51
bmxvY2tFYXJseSgpOworICAgICAgICBzdHJlYW1pbmdNZW1iZXJzLmxvY2tIb2xkZXIoKS51bmxv
Y2soKTsKICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChwYWQsICJQdXNoaW5nIGV2ZW50IGRvd25z
dHJlYW06ICUiIEdTVF9QVFJfRk9STUFULCBldmVudC5nZXQoKSk7CiAgICAgICAgIGJvb2wgZXZl
bnRIYW5kbGVkID0gZ3N0X3BhZF9wdXNoX2V2ZW50KHBhZCwgR1JlZlB0cjxHc3RFdmVudD4oZXZl
bnQpLmxlYWtSZWYoKSk7CiAgICAgICAgIGlmICghZXZlbnRIYW5kbGVkKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJVbml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAKaW5kZXggNWRj
ZWExYTQwODZlMjBlMTU3ZWJiY2Q3MTliYzM2NjA4OTA0YjYwYy4uZTZmMmU2ZTJkZjk0Zjg0ZjFk
YzEwNDhkM2Q1OWJlNDZmYTI3ZDI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCkBAIC0xNDEsMTAgKzE0MSwxMCBAQCB2b2lk
IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6cmV0cmlldmVGb3JtYXREZXNjcmlw
dGlvbihDb21wbGV0aW9uSGFuZAogCiB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
VW5pdDo6dXBkYXRlUmVuZGVyU291cmNlc0lmTmVjZXNzYXJ5KCkKIHsKLSAgICBpZiAoIW1fcGVu
ZGluZ1JlbmRlclNvdXJjZXNMb2NrLnRyeUxvY2soKSkKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVm
ZXJMb2NrLCBtX3BlbmRpbmdSZW5kZXJTb3VyY2VzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRy
eUxvY2soKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9j
a1RhZyB7IH0sIG1fcGVuZGluZ1JlbmRlclNvdXJjZXNMb2NrIH07CiAgICAgaWYgKCFtX2hhc1Bl
bmRpbmdSZW5kZXJTb3VyY2VzKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVy
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVk
aW9Tb3VyY2VQcm92aWRlckNvY29hLm1tCmluZGV4IDU3NmY0NGU5MmM1OGI5M2MwYjQwZDY2NDk5
ODBiYzdlOTBhNWVhZmIuLjM0NjE0MWIwMWMzZDFkNzhjYTlmZjU0Y2FiNjcyOTk3ZmE5MTI1M2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJB
dWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5tbQpAQCAtNjUsOCAr
NjUsOCBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6c2V0Q2xpZW50KEF1ZGlv
U291cmNlUHJvdmlkZXJDbGllbnQqIGNsaWVudCkKIAogdm9pZCBXZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQ29jb2E6OnByb3ZpZGVJbnB1dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9j
ZXNzKQogewotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9sb2NrKTsKLSAgICBpZiAo
IWxvY2tlciB8fCAhbV9kYXRhU291cmNlIHx8ICFtX2F1ZGlvQnVmZmVyTGlzdCkgeworICAgIExv
Y2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fbG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxv
Y2soKSB8fCAhbV9kYXRhU291cmNlIHx8ICFtX2F1ZGlvQnVmZmVyTGlzdCkgewogICAgICAgICBi
dXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0VGhyZWFkLmNwcAppbmRleCA0NzdkOTY3MmM3MTJiNDZm
YzRlYmQ3YTI4OTdlNzdlYjE1ODA4NDg0Li5jZjc0MDY3OTQ4NDk1ZmEwOGRiZDcwNDI1Zjg3NTgw
MzFiNTA0ZjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29y
a2xldFRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmts
ZXRUaHJlYWQuY3BwCkBAIC0yMDcsOCArMjA3LDggQEAgdm9pZCBXb3JrZXJPcldvcmtsZXRUaHJl
YWQ6OnN0b3AoRnVuY3Rpb248dm9pZCgpPiYmIHN0b3BwZWRDYWxsYmFjaykKICAgICAvLyBNdXRl
eCBwcm90ZWN0aW9uIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUgdGhhdCBtX3dvcmtlckdsb2JhbFNj
b3BlIGlzbid0IGNoYW5nZWQgYnkKICAgICAvLyBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCgp
IHdoaWxlIHdlJ3JlIGFjY2Vzc2luZyBpdC4gTm90ZSBhbHNvIHRoYXQgc3RvcCgpIGNhbgogICAg
IC8vIGJlIGNhbGxlZCBiZWZvcmUgbV93b3JrZXJHbG9iYWxTY29wZSBpcyBmdWxseSBjcmVhdGVk
LgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV90aHJlYWRDcmVhdGlvbkFuZEdsb2Jh
bFNjb3BlTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVm
ZXJMb2NrLCBtX3RocmVhZENyZWF0aW9uQW5kR2xvYmFsU2NvcGVMb2NrIH07CisgICAgaWYgKCFs
b2NrZXIudHJ5TG9jaygpKSB7CiAgICAgICAgIC8vIFRoZSB0aHJlYWQgaXMgc3RpbGwgc3RhcnRp
bmcsIHNwaW4gdGhlIHJ1bmxvb3AgYW5kIHRyeSBhZ2FpbiB0byBhdm9pZCBkZWFkbG9ja3MgaWYg
dGhlIHdvcmtlciB0aHJlYWQKICAgICAgICAgLy8gbmVlZHMgdG8gaW50ZXJhY3Qgd2l0aCB0aGUg
bWFpbiB0aHJlYWQgZHVyaW5nIHN0YXJ0dXAuCiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Ro
aXMsIHN0b3BwZWRDYWxsYmFjayA9IFdURk1vdmUoc3RvcHBlZENhbGxiYWNrKV0oKSBtdXRhYmxl
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRh
YmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2Uu
Y3BwCmluZGV4IGQ3NGE0NzNlMjBjOTAxOGZlMzZkNWFiNmRmZDhhYTUyYjVhNjlhNTEuLjk4Mzhj
MGMxMWNiNmE1NGUxOTM1ZjQwZDEwYmRiNzgyNzExMGNkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcApAQCAtNTcyLDcgKzU3Miw3
IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpsb2FkSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBw
YWdlVVJMLCBBbGxvd0RhdGFiYXNlV3JpdGUKICAgICAgICAgICAgICAgICBhdXRvIGljb24gPSBp
dC0+dmFsdWUuZmlyc3Q7CiAgICAgICAgICAgICAgICAgaXQtPnZhbHVlLnNlY29uZCA9IE1vbm90
b25pY1RpbWU6Om5vdygpOwogICAgICAgICAgICAgICAgIHN0YXJ0Q2xlYXJMb2FkZWRJY29uc1Rp
bWVyKCk7Ci0gICAgICAgICAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgICAg
ICAgICAgbG9ja2VyLnVubG9jaygpOwogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUoaWNvbikpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0K
QEAgLTU5Niw3ICs1OTYsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6bG9hZEljb25Gb3JQYWdlVVJM
KGNvbnN0IFN0cmluZyYgcGFnZVVSTCwgQWxsb3dEYXRhYmFzZVdyaXRlCiAKICAgICAgICAgICAg
IGF1dG8gaWNvbiA9IGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUuZmlyc3Q7CiAgICAgICAgICAg
ICBzdGFydENsZWFyTG9hZGVkSWNvbnNUaW1lcigpOwotICAgICAgICAgICAgbG9ja2VyLnVubG9j
a0Vhcmx5KCk7CisgICAgICAgICAgICBsb2NrZXIudW5sb2NrKCk7CiAgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihXVEZNb3ZlKGljb24pKTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzLmNwcAppbmRleCBmNDRjNDE4OTJiMzhmNWJhZDMxOTZkNjlhMWMxMzI0Y2U5M2I1ZWMzLi40
OGEzNjYxNjliM2ZlYTYzZGE0Mjg3MTM2MDFlNmJkZjM2ZmQ1ZDJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAK
QEAgLTMyNCwxMSArMzI0LDEwIEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWREZWNv
ZGluZyhSVENEZWNvZGVySWRlbnRpZmllciBkZWNvZGVySWRlbnRpZmllciwKICAgICBpZiAoIWRl
Y29kZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlZEltYWdl
Q2FsbGJhY2tMb2NrLnRyeUxvY2soKSkKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBk
ZWNvZGVyLT5kZWNvZGVkSW1hZ2VDYWxsYmFja0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlM
b2NrKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tU
YWcgeyB9LCBkZWNvZGVyLT5kZWNvZGVkSW1hZ2VDYWxsYmFja0xvY2sgfTsKLQogICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlZEltYWdlQ2FsbGJhY2spCiAgICAgICAgIHJldHVybjsKIApAQCAtNDky
LDExICs0OTEsMTAgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRlZEVuY29kaW5nKFJU
Q0VuY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIElQQzo6RGEKICAgICBpZiAoIWVuY29kZXIp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghZW5jb2Rlci0+ZW5jb2RlZEltYWdlQ2FsbGJh
Y2tMb2NrLnRyeUxvY2soKSkKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBlbmNvZGVy
LT5lbmNvZGVkSW1hZ2VDYWxsYmFja0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9
LCBlbmNvZGVyLT5lbmNvZGVkSW1hZ2VDYWxsYmFja0xvY2sgfTsKLQogICAgIGlmICghZW5jb2Rl
ci0+ZW5jb2RlZEltYWdlQ2FsbGJhY2spCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGVhYjA4M2YxZTA3ZDQ1ZTg4
YWRiMTQwMWRiYjRjMjE1YjUzNzg1NGEuLjIzNTM1Nzk3ZGY1N2QzYWExMzkxNzcwZWRiYzJmZDE2
ODYzMjA5YWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29t
cGF0aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygp
IGFzIGl0IGlzIGluY29tcGF0aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMu
IEluc3RlYWQsIHVzZSB0aGUgZm9sbG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tl
ci50cnlMb2NrKCkpCisgICAgICAgIGBgYAorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvQ2hlY2tlZExvY2tUZXN0LmNwcDoKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgTG9ja0hvbGRlciB3aXRoIExvY2tl
ciBpbiBsb2NhbCB2YXJpYWJsZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0NoZWNrZWRMb2NrVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9DaGVja2VkTG9ja1Rlc3QuY3BwCmluZGV4IGQ4MmVlMWEyZTViZGUwZGNhYmYzNWNlOWRjNzMx
MTIxMTAyMjYyNGEuLmZiZDAyYjNjMzRiMDRjNTZjYWVmYzM0ZTQ4YTk3NzU2ZmJjYTk2MTYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRMb2NrVGVzdC5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tlZExvY2tUZXN0LmNw
cApAQCAtMzgsOSArMzgsOSBAQCBwdWJsaWM6CiAgICAgfQogICAgIHZvaWQgbWF5YmVTZXRPdGhl
clZhbHVlKGludCB2YWx1ZSkKICAgICB7Ci0gICAgICAgIGlmICghbV9vdGhlckxvY2sudHJ5TG9j
aygpKQorICAgICAgICBMb2NrZXIgaG9sZExvY2sgeyBEZWZlckxvY2ssIG1fb3RoZXJMb2NrIH07
CisgICAgICAgIGlmICghaG9sZExvY2sudHJ5TG9jaygpKQogICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICBMb2NrZXIgaG9sZExvY2sgeyBBZG9wdExvY2tUYWcgeyB9LCBtX290aGVyTG9jayB9
OwogICAgICAgICBtX290aGVyVmFsdWUgPSB2YWx1ZTsKICAgICB9CiAgICAgLy8gVGhpcyBmdW5j
dGlvbiBjYW4gYmUgdXNlZCB0byBtYW51YWxseSBjaGVjayB0aGF0IGNvbXBpbGUgZmFpbHMuCg==
</data>
<flag name="commit-queue"
          id="450627"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429437</attachid>
            <date>2021-05-22 16:32:35 -0700</date>
            <delta_ts>2021-05-22 16:52:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226145-20210522163234.patch</filename>
            <type>text/plain</type>
            <size>58184</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZjY3MTE3MDhhODUyMGY5MDcyMjIzNDExNThhODk2NDgzZjU5NmE2Li4yYzM5YzIxZDAzMWNkMWVi
ZGJkMDk5YThhNWIwZmFhMTUwOGI2Nzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3
aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlz
IGluY29tcGF0aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuIEluc3RlYWQs
IHVzZSB0aGUgZm9sbG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgRGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlMb2Nr
KCkpCisgICAgICAgIGBgYAorCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpT
Qzo6SGVhcDo6cmVzdW1lVGhlUGVyaXBoZXJ5KToKKyAgICAgICAgKiBydW50aW1lL1ZNVHJhcHMu
Y3BwOgorICAgICAgICAoSlNDOjpWTVRyYXBzOjp0cnlJbnN0YWxsVHJhcEJyZWFrcG9pbnRzKToK
KyAgICAgICAgKiB0b29scy9WTUluc3BlY3Rvci5jcHA6CisgICAgICAgIChKU0M6OlZNSW5zcGVj
dG9yOjpsb2NrKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlcGxhY2UgTG9ja0hvbGRlciB3aXRoIExvY2tlciBpbiBsb2NhbCB2YXJp
YWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKaW5kZXggYjcwYTNmM2U4MTM3MjcyNzA1YTA0YmVkMjM5NmNlMGZjOWViZjc0Yi4uYjdm
ZjcyZTA4OTA3MjYyNDc4MzA2ODVkYzFhZTkyNTk4NzZiMjczNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBA
QAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3aXRoIENsYW5n
IFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0
aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuIEluc3RlYWQsIHVzZSB0aGUg
Zm9sbG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
RGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlMb2NrKCkpCisgICAg
ICAgIGBgYAorCisgICAgICAgICogd3RmL0NoZWNrZWRMb2NrLmg6CisgICAgICAgICogd3RmL0xv
Y2tlci5oOgorICAgICAgICAoV1RGOjpMb2NrZXI6OkxvY2tlcik6CisgICAgICAgIChXVEY6Okxv
Y2tlcjo6fkxvY2tlcik6CisgICAgICAgIChXVEY6OkxvY2tlcjo6dHJ5TG9jayk6CisgICAgICAg
IChXVEY6OkxvY2tlcjo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgIChXVEY6OkxvY2tl
cjo6dW5sb2NrRWFybHkpOgorICAgICAgICAoV1RGOjpMb2NrZXI6Om9wZXJhdG9yPSk6CisgICAg
ICAgIChXVEY6OkxvY2tlcjo6dW5sb2NrKToKKyAgICAgICAgKFdURjo6TG9ja2VyOjpsb2NrKToK
KyAgICAgICAgKiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6bG9nKToKKyAg
ICAgICAgKFdURjo6TG9nZ2VyOjpsb2dWZXJib3NlKToKKyAgICAgICAgKiB3dGYvVGhyZWFkU2Fm
ZXR5QW5hbHlzaXMuaDoKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkb3B0IENoZWNrZWRMb2NrIGluIG1vcmUgcGxhY2VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZDA1N2QyNzEyNzA0YzgxOTBkYTQ0NDIyMDEzOTEyNmU1ZTIxZWE5Yy4uNzNkZmU2MTU5
ZTAwYmMzNTM2YWU2ZWYwN2EyMTE4MDE4YzFlMDdiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1
IEBACisyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRpYmxlIHdpdGggQ2xh
bmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21w
YXRpYmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcy4gSW5zdGVhZCwgdXNlIHRo
ZSBmb2xsb3dpbmcgcGF0dGVybjoKKyAgICAgICAgYGBgCisgICAgICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fbG9jayB9OworICAgICAgICBpZiAobG9ja2VyLnRyeUxvY2soKSkKKyAg
ICAgICAgYGBgCisKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQnVmZmVyU291cmNlTm9kZTo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1BhcmFtVGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRp
bWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFy
YW1UaW1lbGluZTo6dmFsdWVzRm9yRnJhbWVSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1BhcmFtVGltZWxpbmU6Omhhc1ZhbHVlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xl
dE5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb252b2x2ZXJOb2RlOjpwcm9jZXNzKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3MpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3Mp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6T3NjaWxsYXRvck5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vUGFubmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpw
cm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJvY2Vzcyk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldhdmVTaGFwZXJQcm9jZXNzb3I6OnByb2Nlc3MpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
RGVzdGluYXRpb246OmNhbGxSZW5kZXJDYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vUmV2ZXJiQ29udm9sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJldmVyYkNvbnZvbHZl
cjo6cHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5h
dGlvbkNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
cmVuZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQ
cm92aWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3Zp
ZGVyR1N0cmVhbWVyOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJL
aXRXZWJBdWRpb1NyY1JlbmRlckl0ZXJhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JhdGNoQnVmZmVyOjpwdXJn
ZVRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1cjo6ZHJhd1JlY3RTaGFk
b3dXaXRoVGlsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0JsdXI6OmRyYXdJbnNldFNo
YWRvd1dpdGhUaWxpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6ZW5xdWV1ZVZpZGVvU2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Ojp1cGRhdGVS
ZW5kZXJTb3VyY2VzSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpX
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
T3JXb3JrbGV0VGhyZWFkOjpzdG9wKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0IENoZWNrZWRMb2NrIGluIG1vcmUgcGxhY2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGZjYWM4NDUxYzhhOTM0NTIwOGFiNzFhOTM3OGE4MTc3ZTgxNjg4ODguLjJm
ZmE2N2Y3MzI5ZjhjOTU5NzlkYjFjOTk1ZmViNzVkNTQ5YzcwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUgd2l0
aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBp
bmNvbXBhdGlibGUgd2l0aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBJbnN0ZWFkLCB1
c2UgdGhlIGZvbGxvd2luZyBwYXR0ZXJuOgorICAgICAgICBgYGAKKyAgICAgICAgTG9ja2VyIGxv
Y2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisgICAgICAgIGlmIChsb2NrZXIudHJ5TG9jaygp
KQorICAgICAgICBgYGAKKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRl
ZERlY29kaW5nKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWRF
bmNvZGluZyk6CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBBZG9wdCBDaGVja2VkTG9jayBpbiBtb3JlIHBsYWNlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmNwcAppbmRleCBjMWNmODY0Mjc3MDUxYmEwMjEwNThjZjUxNGFkMzcyZmJh
NzQ4MjdiLi42OWJmMzI1NjZjZGYwODcwMzU4MTM1OWRlZGFhZGUzZTAyOTA3MGMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMTcwNyw3ICsxNzA3LDcgQEAgTkVWRVJfSU5M
SU5FIHZvaWQgSGVhcDo6cmVzdW1lVGhlUGVyaXBoZXJ5KCkKICAgICAgICAgICAgIGJvb2wgcmVt
b3ZlID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAodmlzaXRvci5oYXNBY2tub3dsZWRnZWRUaGF0
VGhlTXV0YXRvcklzUmVzdW1lZCgpKQogICAgICAgICAgICAgICAgIHJlbW92ZSA9IHRydWU7Ci0g
ICAgICAgICAgICBlbHNlIGlmIChhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKHZpc2l0b3Iucmln
aHRUb1J1bigpKSkgeworICAgICAgICAgICAgZWxzZSBpZiAoTG9ja2VyIGxvY2tlciB7IERlZmVy
TG9jaywgdmlzaXRvci5yaWdodFRvUnVuKCkgfTsgbG9ja2VyLnRyeUxvY2soKSkgewogICAgICAg
ICAgICAgICAgIHZpc2l0b3IudXBkYXRlTXV0YXRvcklzU3RvcHBlZChsb2NrZXIpOwogICAgICAg
ICAgICAgICAgIHJlbW92ZSA9IHRydWU7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxl
ckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCmluZGV4IGIyZDk5ZmJhODkyMjZkNGMyNDBjZGFi
OGY1YjA1NzU3ODFiZThkZTEuLjJiYjYyM2U5M2JkNTc5M2EzNDEyODc3MGNlNzBiMjc1NmEzZDY1
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCkBAIC0y
MjAsNyArMjIwLDcgQEAgdm9pZCBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Ojp0cmFja2lu
Z0NvbXBsZXRlKCkKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHNhbXBsaW5nUHJvZmlsZXItPmdl
dExvY2soKSB9OwogICAgICAgICBzYW1wbGluZ1Byb2ZpbGVyLT5wYXVzZShsb2NrZXIpOwogICAg
ICAgICBWZWN0b3I8U2FtcGxpbmdQcm9maWxlcjo6U3RhY2tUcmFjZT4gc3RhY2tUcmFjZXMgPSBz
YW1wbGluZ1Byb2ZpbGVyLT5yZWxlYXNlU3RhY2tUcmFjZXMobG9ja2VyKTsKLSAgICAgICAgbG9j
a2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tlci51bmxvY2soKTsKIAogICAgICAgICBS
ZWY8UHJvdG9jb2w6OlNjcmlwdFByb2ZpbGVyOjpTYW1wbGVzPiBzYW1wbGVzID0gYnVpbGRTYW1w
bGVzKHZtLCBXVEZNb3ZlKHN0YWNrVHJhY2VzKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2Nr
ZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuY3BwCmluZGV4IGE1MGM5NDIwODJhYWU0
YWQ0YTY0ZDQzOWU3OWI3NWJmMTg1MGNjMWIuLmUwZTUwNDRlZGZhZmNlMThkZTEzY2ZmYTBkZTM2
NzQ3MjkxNDI2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmNwcApAQCAtMjIyLDEyICsyMjIsMTIgQEAgdm9pZCBSZW1vdGVJbnNw
ZWN0b3JTb2NrZXRFbmRwb2ludDo6ZGlzY29ubmVjdChDb25uZWN0aW9uSUQgaWQpCiAgICAgaWYg
KGNvbnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2xpc3RlbmVycy5nZXQoaWQpKSB7CiAgICAgICAg
IG1fbGlzdGVuZXJzLnJlbW92ZShpZCk7CiAgICAgICAgIFNvY2tldDo6Y2xvc2UoY29ubmVjdGlv
bi0+c29ja2V0KTsKLSAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tl
ci51bmxvY2soKTsKICAgICAgICAgY29ubmVjdGlvbi0+bGlzdGVuZXIuZGlkQ2hhbmdlU3RhdHVz
KCp0aGlzLCBpZCwgTGlzdGVuZXI6OlN0YXR1czo6Q2xvc2VkKTsKICAgICB9IGVsc2UgaWYgKGNv
bnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2NsaWVudHMuZ2V0KGlkKSkgewogICAgICAgICBtX2Ns
aWVudHMucmVtb3ZlKGlkKTsKICAgICAgICAgU29ja2V0OjpjbG9zZShjb25uZWN0aW9uLT5zb2Nr
ZXQpOwotICAgICAgICBsb2NrZXIudW5sb2NrRWFybHkoKTsKKyAgICAgICAgbG9ja2VyLnVubG9j
aygpOwogICAgICAgICBjb25uZWN0aW9uLT5jbGllbnQuZGlkQ2xvc2UoKnRoaXMsIGlkKTsKICAg
ICB9IGVsc2UKICAgICAgICAgTE9HX0VSUk9SKCJFcnJvcjogQ2Fubm90IGRpc2Nvbm5lY3Q6IElu
dmFsaWQgaWQiKTsKQEAgLTI4Miw3ICsyODIsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclNvY2tl
dEVuZHBvaW50OjpyZWN2SWZFbmFibGVkKENvbm5lY3Rpb25JRCBpZCkKICAgICAgICAgaWYgKGF1
dG8gcmVhZFNpemUgPSBTb2NrZXQ6OnJlYWQoY29ubmVjdGlvbi0+c29ja2V0LCByZWN2QnVmZmVy
LmRhdGEoKSwgcmVjdkJ1ZmZlci5zaXplKCkpKSB7CiAgICAgICAgICAgICBpZiAoKnJlYWRTaXpl
ID4gMCkgewogICAgICAgICAgICAgICAgIHJlY3ZCdWZmZXIuc2hyaW5rKCpyZWFkU2l6ZSk7Ci0g
ICAgICAgICAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgICAgICAgICAgbG9j
a2VyLnVubG9jaygpOwogICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNsaWVudC5kaWRSZWNl
aXZlKCp0aGlzLCBpZCwgV1RGTW92ZShyZWN2QnVmZmVyKSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgfQpAQCAtMjkxLDcgKzI5MSw3IEBAIHZvaWQgUmVtb3RlSW5zcGVj
dG9yU29ja2V0RW5kcG9pbnQ6OnJlY3ZJZkVuYWJsZWQoQ29ubmVjdGlvbklEIGlkKQogICAgICAg
ICBTb2NrZXQ6OmNsb3NlKGNvbm5lY3Rpb24tPnNvY2tldCk7CiAgICAgICAgIG1fY2xpZW50cy5y
ZW1vdmUoaWQpOwogCi0gICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBsb2Nr
ZXIudW5sb2NrKCk7CiAgICAgICAgIGNvbm5lY3Rpb24tPmNsaWVudC5kaWRDbG9zZSgqdGhpcywg
aWQpOwogICAgIH0KIH0KQEAgLTM1Myw3ICszNTMsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclNv
Y2tldEVuZHBvaW50OjphY2NlcHRJbmV0U29ja2V0SWZFbmFibGVkKENvbm5lY3Rpb25JRCBpZCkK
ICAgICBpZiAoY29uc3QgYXV0byYgY29ubmVjdGlvbiA9IG1fbGlzdGVuZXJzLmdldChpZCkpIHsK
ICAgICAgICAgaWYgKGF1dG8gc29ja2V0ID0gU29ja2V0OjphY2NlcHQoY29ubmVjdGlvbi0+c29j
a2V0KSkgewogICAgICAgICAgICAgLy8gTmVlZCB0byB1bmxvY2sgYmVmb3JlIGNhbGxpbmcgY3Jl
YXRlQ2xpZW50IGFzIGl0IGFsc28gYXR0ZW1wdHMgdG8gbG9jay4KLSAgICAgICAgICAgIGxvY2tl
ci51bmxvY2tFYXJseSgpOworICAgICAgICAgICAgbG9ja2VyLnVubG9jaygpOwogICAgICAgICAg
ICAgaWYgKGNvbm5lY3Rpb24tPmxpc3RlbmVyLmRvQWNjZXB0KCp0aGlzLCBzb2NrZXQudmFsdWUo
KSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmgKaW5kZXggYWEyNzNiYWRiZWZhNzM3YTBlYWE1
MzRmYmViYTlmNTAxZmRiODYyNy4uZGQ5OWYyZDM4MjZjYWFmY2Y5ZWY4YjkwMmE2YTIwM2RhMjIz
YjMzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uY3VycmVu
dEpTTG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmN1cnJlbnRK
U0xvY2suaApAQCAtNTgsOSArNTgsOSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KICAgICAKLSAg
ICB2b2lkIHVubG9ja0Vhcmx5KCkKKyAgICB2b2lkIHVubG9jaygpCiAgICAgewotICAgICAgICBt
X2xvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBtX2xvY2tlci51bmxvY2soKTsKICAgICB9
CiAKIHByaXZhdGU6CkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gdnMuIGRl
cml2ZWQgY2xhc3Nlcy4gSWYgd2UgZGlkbid0LCB0aGVuIHdlIHdvdWxkIGRlc3Ryb3kgdGhlIAog
ICAgICAgICAvLyBEZWZlckdDIG9iamVjdCBiZWZvcmUgdW5sb2NraW5nIHRoZSBsb2NrIHdoaWNo
IGNvdWxkIGNhdXNlIGEgR0MKICAgICAgICAgLy8gYW5kIHJlc3VsdGluZyBkZWFkbG9jay4KLSAg
ICAgICAgdW5sb2NrRWFybHkoKTsKKyAgICAgICAgdW5sb2NrKCk7CiAgICAgfQogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAppbmRleCA5MmJmZWFh
NzY4YWE2ODYyYmRmNWQ5OGM0YWVkZDcxNDYyZTRhZDY0Li4xMGViNGVjYzU3NjJlY2Y4NTYzOGQy
OTExNjAxNDk5ODg0OGQ0ZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTVRyYXBzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRy
YXBzLmNwcApAQCAtMTM3LDggKzEzNyw4IEBAIHZvaWQgVk1UcmFwczo6dHJ5SW5zdGFsbFRyYXBC
cmVha3BvaW50cyhTaWduYWxDb250ZXh0JiBjb250ZXh0LCBTdGFja0JvdW5kcyBzdGFjCiAgICAg
fQogCiAgICAgaWYgKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChmb3VuZENvZGVCbG9jay0+aml0
VHlwZSgpKSkgewotICAgICAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKCptX2xvY2spOwot
ICAgICAgICBpZiAoIWxvY2tlcikKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
Km1fbG9jayB9OworICAgICAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgICAgICBy
ZXR1cm47IC8vIExldCB0aGUgU2lnbmFsU2VuZGVyIHRyeSBhZ2FpbiBsYXRlci4KIAogICAgICAg
ICBpZiAoIW5lZWRIYW5kbGluZyhWTVRyYXBzOjpBc3luY0V2ZW50cykpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuY3BwCmluZGV4IGU0OWRhZTFlMWJjOWRkNzBj
OWViMjAyZDg3NzA5ZmNjNmNhNjcwOTAuLjk4YTdmMTQ3NDI4YTg1NGY5NzViYThmNzA3ZDgyYzc2
ODlmY2FlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3Bl
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNw
cApAQCAtNzMsMTQgKzczLDE0IEBAIGF1dG8gVk1JbnNwZWN0b3I6OmxvY2soU2Vjb25kcyB0aW1l
b3V0KSAtPiBFeHBlY3RlZDxMb2NrZXIsIEVycm9yPgogICAgIC8vIFdlJ2xsIGJlIGRvaW5nIHNs
ZWVwKDEpIGJldHdlZW4gdHJpZXMgYmVsb3cuIEhlbmNlLCBzbGVlcFBlclJldHJ5IGlzIDEuCiAg
ICAgdW5zaWduZWQgbWF4UmV0cmllcyA9ICh0aW1lb3V0IDwgU2Vjb25kczo6aW5maW5pdHkoKSkg
PyB0aW1lb3V0LnZhbHVlKCkgOiBVSU5UX01BWDsKIAotICAgIEV4cGVjdGVkPExvY2tlciwgRXJy
b3I+IGxvY2tlciA9IExvY2tlcjo6dHJ5TG9jayhtX2xvY2spOworICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fbG9jayB9OworCiAgICAgdW5zaWduZWQgdHJ5Q291bnQgPSAwOwotICAg
IHdoaWxlICghbG9ja2VyICYmIHRyeUNvdW50IDwgbWF4UmV0cmllcykgeworICAgIHdoaWxlICgh
bG9ja2VyLnRyeUxvY2soKSAmJiB0cnlDb3VudCA8IG1heFJldHJpZXMpIHsKICAgICAgICAgLy8g
V2Ugd2FudCB0aGUgdmVyc2lvbiBvZiBzbGVlcCBmcm9tIHVuaXN0ZC5oLiBDYXN0IHRvIGRpc2Ft
YmlndWF0ZS4KICNpZiAhT1MoV0lORE9XUykKICAgICAgICAgKHN0YXRpY19jYXN0PHVuc2lnbmVk
ICgqKSh1bnNpZ25lZCk+KHNsZWVwKSkoMSk7CiAjZW5kaWYKLSAgICAgICAgbG9ja2VyID0gTG9j
a2VyOjp0cnlMb2NrKG1fbG9jayk7CiAgICAgfQogCiAgICAgaWYgKCFsb2NrZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oIGIvU291cmNlL1dURi93dGYvQ2hlY2tl
ZExvY2suaAppbmRleCA0NGI4OTk5NjkxMjM0NTIwMDE5OGZkODY0YTk5ODk2Njc3NjM5OTQyLi4w
ZWY2ZWQ1YTA3MmEzYTYzMmNkNTdhYmFhMDkzYjlhZDZiYmI5ZWNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRMb2Nr
LmgKQEAgLTQzLDkgKzQzLDkgQEAgbmFtZXNwYWNlIFdURiB7CiAvLyAgICAgICB2b2lkIHNldFZh
bHVlKGludCB2YWx1ZSkgeyBMb2Noa2VyIGhvbGRMb2NrIHsgbV9sb2NrIH07IG1fdmFsdWUgPSB2
YWx1ZTsgIH0KIC8vICAgICAgIHZvaWQgbWF5YmVTZXRPdGhlclZhbHVlKGludCB2YWx1ZSkKIC8v
ICAgICAgIHsKLS8vICAgICAgICAgICBpZiAoIW1fbG9jay50cnlMb2NrKCkpCisvLyAgICAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisvLyAgICAgICAgICAgaWYg
KCFsb2NrZXIudHJ5TG9jaygpKQogLy8gICAgICAgICAgICAgIHJldHVybjsKLS8vICAgICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9vdGhlckxvY2sgfTsKIC8vICAg
ICAgICAgICBtX290aGVyVmFsdWUgPSB2YWx1ZTsKIC8vICAgICAgIH0KIC8vICAgcHJpdmF0ZToK
QEAgLTYwLDggKzYwLDggQEAgY2xhc3MgV1RGX0NBUEFCSUxJVFlfTE9DSyBDaGVja2VkTG9jayA6
IExvY2sgewogcHVibGljOgogICAgIGNvbnN0ZXhwciBDaGVja2VkTG9jaygpID0gZGVmYXVsdDsK
ICAgICB2b2lkIGxvY2soKSBXVEZfQUNRVUlSRVNfTE9DSygpIHsgTG9jazo6bG9jaygpOyB9Ci0g
ICAgYm9vbCB0cnlMb2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgeyByZXR1cm4gTG9j
azo6dHJ5TG9jaygpOyB9Ci0gICAgYm9vbCB0cnlfbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLX0lG
KHRydWUpIHsgcmV0dXJuIExvY2s6OnRyeV9sb2NrKCk7IH0gLy8gTk9MSU5UOiBJbnRlbnRpb25h
bCBkZXZpYXRpb24gdG8gc3VwcG9ydCBzdGQ6OnNjb3BlZF9sb2NrLgorICAgIGJvb2wgdHJ5TG9j
aygpIFdURl9UUllfQUNRVUlSRV9MT0NLKHRydWUpIHsgcmV0dXJuIExvY2s6OnRyeUxvY2soKTsg
fQorICAgIGJvb2wgdHJ5X2xvY2soKSBXVEZfVFJZX0FDUVVJUkVfTE9DSyh0cnVlKSB7IHJldHVy
biBMb2NrOjp0cnlfbG9jaygpOyB9IC8vIE5PTElOVDogSW50ZW50aW9uYWwgZGV2aWF0aW9uIHRv
IHN1cHBvcnQgc3RkOjpzY29wZWRfbG9jay4KICAgICB2b2lkIHVubG9jaygpIFdURl9SRUxFQVNF
U19MT0NLKCkgeyBMb2NrOjp1bmxvY2soKTsgfQogICAgIHZvaWQgdW5sb2NrRmFpcmx5KCkgV1RG
X1JFTEVBU0VTX0xPQ0soKSB7IExvY2s6OnVubG9ja0ZhaXJseSgpOyB9CiAgICAgdm9pZCBzYWZl
cG9pbnQoKSB7IExvY2s6OnNhZmVwb2ludCgpOyB9CkBAIC03NSw4ICs3NSw2IEBAIHB1YmxpYzoK
IC8vIGRlY2xhcmF0aW9uLgogaW5saW5lIHZvaWQgYXNzZXJ0SXNIZWxkKGNvbnN0IENoZWNrZWRM
b2NrJiBsb2NrKSBXVEZfQVNTRVJUU19BQ1FVSVJFRF9MT0NLKGxvY2spIHsgQVNTRVJUX1VOVVNF
RChsb2NrLCBsb2NrLmlzSGVsZCgpKTsgfQogCi11c2luZyBBZG9wdExvY2tUYWcgPSBzdGQ6OmFk
b3B0X2xvY2tfdDsKLQogLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3aXRoIENoZWNr
ZWRMb2NrLgogLy8gTm9uLW1vdmFibGUgc2ltcGxlIHNjb3BlZCBsb2NrIGhvbGRlci4KIC8vIEV4
YW1wbGU6IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKQEAgLTg1LDI4ICs4Myw1OCBAQCBjbGFz
cyBXVEZfQ0FQQUJJTElUWV9TQ09QRURfTE9DSyBMb2NrZXI8Q2hlY2tlZExvY2s+IHsKIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBMb2NrZXIoQ2hlY2tlZExvY2smIGxvY2spIFdURl9BQ1FVSVJFU19M
T0NLKGxvY2spCiAgICAgICAgIDogbV9sb2NrKGxvY2spCisgICAgICAgICwgbV9pc0xvY2tlZCh0
cnVlKQogICAgIHsKICAgICAgICAgbV9sb2NrLmxvY2soKTsKICAgICB9CiAgICAgTG9ja2VyKEFk
b3B0TG9ja1RhZywgQ2hlY2tlZExvY2smIGxvY2spIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCiAg
ICAgICAgIDogbV9sb2NrKGxvY2spCisgICAgICAgICwgbV9pc0xvY2tlZCh0cnVlKQorICAgIHsK
KyAgICB9CisgICAgTG9ja2VyKERlZmVyTG9ja1RhZywgQ2hlY2tlZExvY2smIGxvY2spIFdURl9F
WENMVURFU19MT0NLKGxvY2spCisgICAgICAgIDogbV9sb2NrKGxvY2spCiAgICAgewogICAgIH0K
ICAgICB+TG9ja2VyKCkgV1RGX1JFTEVBU0VTX0xPQ0soKQogICAgIHsKKyAgICAgICAgaWYgKG1f
aXNMb2NrZWQpCisgICAgICAgICAgICBtX2xvY2sudW5sb2NrKCk7CisgICAgfQorICAgIGJvb2wg
dHJ5TG9jaygpIFdURl9UUllfQUNRVUlSRV9MT0NLKHRydWUsIG1fbG9jaykKKyAgICB7CisgICAg
ICAgIEFTU0VSVCghbV9pc0xvY2tlZCk7CisgICAgICAgIG1faXNMb2NrZWQgPSBtX2xvY2sudHJ5
TG9jaygpOworICAgICAgICByZXR1cm4gbV9pc0xvY2tlZDsKKyAgICB9CisgICAgdm9pZCBsb2Nr
KCkgV1RGX0FDUVVJUkVTX0xPQ0sobV9sb2NrKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFtX2lz
TG9ja2VkKTsKKyAgICAgICAgbV9sb2NrLmxvY2soKTsKKyAgICAgICAgbV9pc0xvY2tlZCA9IHRy
dWU7CisgICAgfQorICAgIHZvaWQgdW5sb2NrKCkgV1RGX1JFTEVBU0VTX0xPQ0sobV9sb2NrKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKG1faXNMb2NrZWQpOwogICAgICAgICBtX2xvY2sudW5sb2Nr
KCk7CisgICAgICAgIG1faXNMb2NrZWQgPSBmYWxzZTsKICAgICB9CisKKyAgICBleHBsaWNpdCBv
cGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9pc0xvY2tlZDsgfQorCiAgICAgTG9ja2Vy
KGNvbnN0IExvY2tlcjxDaGVja2VkTG9jaz4mKSA9IGRlbGV0ZTsKICAgICBMb2NrZXImIG9wZXJh
dG9yPShjb25zdCBMb2NrZXI8Q2hlY2tlZExvY2s+JikgPSBkZWxldGU7CisKIHByaXZhdGU6CiAg
ICAgQ2hlY2tlZExvY2smIG1fbG9jazsKKyAgICBib29sIG1faXNMb2NrZWQgeyBmYWxzZSB9Owog
fTsKIAogTG9ja2VyKENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2NrPjsKIExvY2tl
cihBZG9wdExvY2tUYWcsIENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2NrPjsKK0xv
Y2tlcihEZWZlckxvY2tUYWcsIENoZWNrZWRMb2NrJikgLT4gTG9ja2VyPENoZWNrZWRMb2NrPjsK
IAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6YXNzZXJ0SXNIZWxkOwogdXNpbmcg
V1RGOjpDaGVja2VkTG9jazsKLXVzaW5nIFdURjo6QWRvcHRMb2NrVGFnOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvTG9ja2VyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrZXIuaAppbmRleCA4
YjBlMTkyYjVlYmE0Yjg4NzYzYTg0NGQxZWMwY2JhMTRjMGM5ODhhLi4wZGFhZmUwNDQ2ZWNjOWZl
N2I4ZmUzM2U0N2JhODg4MmVmMzNjNzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2Nr
ZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrZXIuaApAQCAtMjgsNiArMjgsNyBAQAogCiAj
cHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25z
Lmg+CiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4K
QEAgLTU0LDExICs1NSwxOCBAQCBwcm90ZWN0ZWQ6CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNs
YXNzIERyb3BMb2NrRm9yU2NvcGU7CiAKK3VzaW5nIEFkb3B0TG9ja1RhZyA9IHN0ZDo6YWRvcHRf
bG9ja190OworY29uc3RleHByIEFkb3B0TG9ja1RhZyBBZG9wdExvY2sgPSBBZG9wdExvY2tUYWco
KTsKK3VzaW5nIERlZmVyTG9ja1RhZyA9IHN0ZDo6ZGVmZXJfbG9ja190OworY29uc3RleHByIERl
ZmVyTG9ja1RhZyBEZWZlckxvY2sgPSBEZWZlckxvY2tUYWcoKTsKKwogdGVtcGxhdGU8dHlwZW5h
bWUgVD4KIGNsYXNzIExvY2tlciA6IHB1YmxpYyBBYnN0cmFjdExvY2tlciB7CiBwdWJsaWM6CiAg
ICAgZXhwbGljaXQgTG9ja2VyKFQmIGxvY2thYmxlKSA6IG1fbG9ja2FibGUoJmxvY2thYmxlKSB7
IGxvY2soKTsgfQogICAgIGV4cGxpY2l0IExvY2tlcihUKiBsb2NrYWJsZSkgOiBtX2xvY2thYmxl
KGxvY2thYmxlKSB7IGxvY2soKTsgfQorICAgIExvY2tlcihBZG9wdExvY2tUYWcsIFQmIGxvY2th
YmxlKSA6IG1fbG9ja2FibGUoJmxvY2thYmxlKSwgbV9pc0xvY2tlZCh0cnVlKSB7IH0KKyAgICBM
b2NrZXIoRGVmZXJMb2NrVGFnLCBUJiBsb2NrYWJsZSkgOiBtX2xvY2thYmxlKCZsb2NrYWJsZSkg
eyB9CiAKICAgICAvLyBZb3Ugc2hvdWxkIGJlIHdhcnkgb2YgdXNpbmcgdGhpcyBjb25zdHJ1Y3Rv
ci4gSXQncyBvbmx5IGFwcGxpY2FibGUKICAgICAvLyBpbiBwbGFjZXMgd2hlcmUgdGhlcmUgaXMg
YSBsb2NraW5nIHByb3RvY29sIGZvciBhIHBhcnRpY3VsYXIgb2JqZWN0CkBAIC02Niw4NCArNzQs
NzQgQEAgcHVibGljOgogICAgIC8vIHRoaXMgb2Z0ZW4gaGFwcGVucyB3aGVuIGFuIG9iamVjdCBp
cyBuZXdseSBhbGxvY2F0ZWQgYW5kIGl0IGNhbiBub3QKICAgICAvLyBiZSBhY2Nlc3NlZCBjb25j
dXJyZW50bHkuCiAgICAgTG9ja2VyKE5vTG9ja2luZ05lY2Vzc2FyeVRhZykgOiBtX2xvY2thYmxl
KG51bGxwdHIpIHsgfQotICAgIAorCiAgICAgTG9ja2VyKHN0ZDo6dW5kZXJseWluZ190eXBlX3Q8
Tm9Mb2NraW5nTmVjZXNzYXJ5VGFnPikgPSBkZWxldGU7CiAKICAgICB+TG9ja2VyKCkKICAgICB7
Ci0gICAgICAgIHVubG9jaygpOworICAgICAgICBpZiAobV9pc0xvY2tlZCkKKyAgICAgICAgICAg
IHVubG9jaygpOworICAgIH0KKworICAgIGJvb2wgdHJ5TG9jaygpCisgICAgeworICAgICAgICBB
U1NFUlQobV9sb2NrYWJsZSk7CisgICAgICAgIEFTU0VSVCghbV9pc0xvY2tlZCk7CisgICAgICAg
IGlmICghbV9sb2NrYWJsZSB8fCAhbV9sb2NrYWJsZS0+dHJ5TG9jaygpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBtX2lzTG9ja2VkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogICAgIAotICAgIHN0YXRpYyBMb2NrZXIgdHJ5TG9jayhUJiBsb2NrYWJs
ZSkKKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbV9pc0xvY2tl
ZDsgfQorCisgICAgdm9pZCB1bmxvY2soKQogICAgIHsKLSAgICAgICAgTG9ja2VyIHJlc3VsdChO
b0xvY2tpbmdOZWNlc3NhcnkpOwotICAgICAgICBpZiAobG9ja2FibGUudHJ5TG9jaygpKSB7Ci0g
ICAgICAgICAgICByZXN1bHQubV9sb2NrYWJsZSA9ICZsb2NrYWJsZTsKLSAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgIEFTU0VSVChtX2lzTG9ja2VkKTsKKyAgICAgICAgY29tcGls
ZXJGZW5jZSgpOworICAgICAgICBpZiAobV9sb2NrYWJsZSkgeworICAgICAgICAgICAgVFNBTl9B
Tk5PVEFURV9IQVBQRU5TX0JFRk9SRShtX2xvY2thYmxlKTsKKyAgICAgICAgICAgIG1fbG9ja2Fi
bGUtPnVubG9jaygpOworICAgICAgICAgICAgbV9pc0xvY2tlZCA9IGZhbHNlOwogICAgICAgICB9
Ci0gICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0gICAgVCogbG9ja2FibGUoKSB7IHJl
dHVybiBtX2xvY2thYmxlOyB9Ci0gICAgCi0gICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNv
bnN0IHsgcmV0dXJuICEhbV9sb2NrYWJsZTsgfQotICAgIAotICAgIHZvaWQgdW5sb2NrRWFybHko
KQorICAgIHZvaWQgbG9jaygpCiAgICAgewotICAgICAgICB1bmxvY2soKTsKLSAgICAgICAgbV9s
b2NrYWJsZSA9IG51bGxwdHI7CisgICAgICAgIEFTU0VSVCghbV9pc0xvY2tlZCk7CisgICAgICAg
IGlmIChtX2xvY2thYmxlKSB7CisgICAgICAgICAgICBtX2xvY2thYmxlLT5sb2NrKCk7CisgICAg
ICAgICAgICBUU0FOX0FOTk9UQVRFX0hBUFBFTlNfQUZURVIobV9sb2NrYWJsZSk7CisgICAgICAg
ICAgICBtX2lzTG9ja2VkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBjb21waWxlckZlbmNl
KCk7CiAgICAgfQogICAgIAogICAgIC8vIEl0J3MgZ3JlYXQgdG8gYmUgYWJsZSB0byBwYXNzIGxv
Y2tlcnMgYXJvdW5kLiBJdCBlbmFibGVzIGN1c3RvbSBsb2NraW5nIGFkYXB0b3JzIGxpa2UKICAg
ICAvLyBKU0M6OkxvY2tEdXJpbmdNYXJraW5nLgogICAgIExvY2tlcihMb2NrZXImJiBvdGhlcikK
LSAgICAgICAgOiBtX2xvY2thYmxlKG90aGVyLm1fbG9ja2FibGUpCisgICAgICAgIDogbV9sb2Nr
YWJsZShzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fbG9ja2FibGUsIG51bGxwdHIpKQorICAgICAgICAs
IG1faXNMb2NrZWQoc3RkOjpleGNoYW5nZShvdGhlci5tX2lzTG9ja2VkLCBmYWxzZSkpCiAgICAg
ewogICAgICAgICBBU1NFUlQoJm90aGVyICE9IHRoaXMpOwotICAgICAgICBvdGhlci5tX2xvY2th
YmxlID0gbnVsbHB0cjsKICAgICB9CiAgICAgCiAgICAgTG9ja2VyJiBvcGVyYXRvcj0oTG9ja2Vy
JiYgb3RoZXIpCiAgICAgewogICAgICAgICBBU1NFUlQoJm90aGVyICE9IHRoaXMpOwotICAgICAg
ICBtX2xvY2thYmxlID0gb3RoZXIubV9sb2NrYWJsZTsKLSAgICAgICAgb3RoZXIubV9sb2NrYWJs
ZSA9IG51bGxwdHI7CisgICAgICAgIG1fbG9ja2FibGUgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1f
bG9ja2FibGUsIG51bGxwdHIpOworICAgICAgICBtX2lzTG9ja2VkID0gc3RkOjpleGNoYW5nZShv
dGhlci5tX2lzTG9ja2VkLCBmYWxzZSk7CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAg
ICAgCiBwcml2YXRlOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lPgogICAgIGZyaWVuZCBjbGFzcyBE
cm9wTG9ja0ZvclNjb3BlOwotCi0gICAgdm9pZCB1bmxvY2soKQotICAgIHsKLSAgICAgICAgY29t
cGlsZXJGZW5jZSgpOwotICAgICAgICBpZiAobV9sb2NrYWJsZSkgewotICAgICAgICAgICAgVFNB
Tl9BTk5PVEFURV9IQVBQRU5TX0JFRk9SRShtX2xvY2thYmxlKTsKLSAgICAgICAgICAgIG1fbG9j
a2FibGUtPnVubG9jaygpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgdm9pZCBsb2NrKCkKLSAg
ICB7Ci0gICAgICAgIGlmIChtX2xvY2thYmxlKSB7Ci0gICAgICAgICAgICBtX2xvY2thYmxlLT5s
b2NrKCk7Ci0gICAgICAgICAgICBUU0FOX0FOTk9UQVRFX0hBUFBFTlNfQUZURVIobV9sb2NrYWJs
ZSk7Ci0gICAgICAgIH0KLSAgICAgICAgY29tcGlsZXJGZW5jZSgpOwotICAgIH0KICAgICAKLSAg
ICBUKiBtX2xvY2thYmxlOworICAgIFQqIG1fbG9ja2FibGUgeyBudWxscHRyIH07CisgICAgYm9v
bCBtX2lzTG9ja2VkIHsgZmFsc2UgfTsKIH07CiAKLXRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBl
PgotTG9ja2VyPExvY2tUeXBlPiB0cnlIb2xkTG9jayhMb2NrVHlwZSYpIFdBUk5fVU5VU0VEX1JF
VFVSTjsKLXRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlPgotTG9ja2VyPExvY2tUeXBlPiB0cnlI
b2xkTG9jayhMb2NrVHlwZSYgbG9jaykKLXsKLSAgICByZXR1cm4gTG9ja2VyPExvY2tUeXBlPjo6
dHJ5TG9jayhsb2NrKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+CiBjbGFzcyBE
cm9wTG9ja0ZvclNjb3BlIDogcHJpdmF0ZSBBYnN0cmFjdExvY2tlciB7CiAgICAgV1RGX0ZPUkJJ
RF9IRUFQX0FMTE9DQVRJT04oRHJvcExvY2tGb3JTY29wZSk7CkBAIC0xNjYsNiArMTY0LDggQEAg
cHJpdmF0ZToKIH0KIAogdXNpbmcgV1RGOjpBYnN0cmFjdExvY2tlcjsKK3VzaW5nIFdURjo6QWRv
cHRMb2NrOwordXNpbmcgV1RGOjpEZWZlckxvY2s7CiB1c2luZyBXVEY6OkxvY2tlcjsKIHVzaW5n
IFdURjo6Tm9Mb2NraW5nTmVjZXNzYXJ5VGFnOwogdXNpbmcgV1RGOjpOb0xvY2tpbmdOZWNlc3Nh
cnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaCBiL1NvdXJjZS9XVEYvd3Rm
L0xvZ2dlci5oCmluZGV4IGU5OWQ0OWJmMmU5ZDlhZDJhNmIzYjYxODBkY2JkOThjZDc4NWZhNTQu
LjQxNGRkNTg4NTk4ZjM5NTM5MjY0NDRkMTM1MTMyMTQxOTgwY2M4NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0xvZ2dlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCkBAIC0z
MjUsNyArMzI1LDggQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKCFvYnNlcnZlckxvY2soKS50cnlM
b2NrKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFk
b3B0TG9ja1RhZyB7IH0sIG9ic2VydmVyTG9jaygpIH07CisgICAgICAgIExvY2tlciBsb2NrZXIg
eyBBZG9wdExvY2ssIG9ic2VydmVyTG9jaygpIH07CisKICAgICAgICAgZm9yIChPYnNlcnZlciYg
b2JzZXJ2ZXIgOiBvYnNlcnZlcnMoKSkKICAgICAgICAgICAgIG9ic2VydmVyLmRpZExvZ01lc3Nh
Z2UoY2hhbm5lbCwgbGV2ZWwsIHsgQ29uc29sZUxvZ1ZhbHVlPEFyZ3VtZW50Pjo6dG9WYWx1ZShh
cmd1bWVudHMpLi4uIH0pOwogICAgIH0KQEAgLTM1Niw3ICszNTcsOCBAQCBwcml2YXRlOgogICAg
ICAgICBpZiAoIW9ic2VydmVyTG9jaygpLnRyeUxvY2soKSkKICAgICAgICAgICAgIHJldHVybjsK
IAotICAgICAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgb2JzZXJ2ZXJMb2Nr
KCkgfTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgb2JzZXJ2ZXJMb2NrKCkg
fTsKKwogICAgICAgICBmb3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG9ic2VydmVycygpKQogICAg
ICAgICAgICAgb2JzZXJ2ZXIuZGlkTG9nTWVzc2FnZShjaGFubmVsLCBsZXZlbCwgeyBDb25zb2xl
TG9nVmFsdWU8QXJndW1lbnQ+Ojp0b1ZhbHVlKGFyZ3VtZW50cykuLi4gfSk7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkU2FmZXR5QW5hbHlzaXMuaCBiL1NvdXJjZS9X
VEYvd3RmL1RocmVhZFNhZmV0eUFuYWx5c2lzLmgKaW5kZXggMDNhYzE1YTkzM2U3MGZjMWExZmYw
NDc4ZjBiOTkzY2UxOGQ0OTdlYy4uN2Q4ZGVmMWZiYjFiMjEzY2NjNzRkMDNiMjExYTNhODg5YjFl
ZDM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkU2FmZXR5QW5hbHlzaXMuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRTYWZldHlBbmFseXNpcy5oCkBAIC0zNSw5ICszNSw5
IEBACiAjZGVmaW5lIFdURl9USFJFQURfQU5OT1RBVElPTl9BVFRSSUJVVEUoeCkKICNlbmRpZgog
Ci0jZGVmaW5lIFdURl9BQ1FVSVJFU19MT0NLX0lGKC4uLikgV1RGX1RIUkVBRF9BTk5PVEFUSU9O
X0FUVFJJQlVURSh0cnlfYWNxdWlyZV9jYXBhYmlsaXR5KF9fVkFfQVJHU19fKSkKKyNkZWZpbmUg
V1RGX1RSWV9BQ1FVSVJFX0xPQ0soLi4uKSBXVEZfVEhSRUFEX0FOTk9UQVRJT05fQVRUUklCVVRF
KHRyeV9hY3F1aXJlX2NhcGFiaWxpdHkoX19WQV9BUkdTX18pKQogI2RlZmluZSBXVEZfQUNRVUlS
RVNfTE9DSyguLi4pIFdURl9USFJFQURfQU5OT1RBVElPTl9BVFRSSUJVVEUoYWNxdWlyZV9jYXBh
YmlsaXR5KF9fVkFfQVJHU19fKSkKLSNkZWZpbmUgV1RGX0FDUVVJUkVTX1NIQVJFRF9MT0NLX0lG
KC4uLikgV1RGX1RIUkVBRF9BTk5PVEFUSU9OX0FUVFJJQlVURSh0cnlfYWNxdWlyZV9zaGFyZWRf
Y2FwYWJpbGl0eShfX1ZBX0FSR1NfXykpCisjZGVmaW5lIFdURl9UUllfQUNRVUlSRV9TSEFSRURf
TE9DSyguLi4pIFdURl9USFJFQURfQU5OT1RBVElPTl9BVFRSSUJVVEUodHJ5X2FjcXVpcmVfc2hh
cmVkX2NhcGFiaWxpdHkoX19WQV9BUkdTX18pKQogI2RlZmluZSBXVEZfQUNRVUlSRVNfU0hBUkVE
X0xPQ0soLi4uKSBXVEZfVEhSRUFEX0FOTk9UQVRJT05fQVRUUklCVVRFKGFjcXVpcmVfc2hhcmVk
X2NhcGFiaWxpdHkoX19WQV9BUkdTX18pKQogI2RlZmluZSBXVEZfQVNTRVJUU19BQ1FVSVJFRF9M
T0NLKHgpIFdURl9USFJFQURfQU5OT1RBVElPTl9BVFRSSUJVVEUoYXNzZXJ0X2NhcGFiaWxpdHko
eCkpCiAjZGVmaW5lIFdURl9BU1NFUlRTX0FDUVVJUkVEX1NIQVJFRF9MT0NLKHgpIFdURl9USFJF
QURfQU5OT1RBVElPTl9BVFRSSUJVVEUoYXNzZXJ0X3NoYXJlZF9jYXBhYmlsaXR5KHgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAppbmRleCAxODQ0MDIxZTZmMWFjNDRm
ZTYzMjVjNjI4YmFlNmY4ZTE3ZmJhNjcwLi5mNDI0MjM5ZjQzNDVjNjVjY2M0MDcwOGEyZmNjOTYx
N2M1MTlkODI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcApAQCAt
ODUsMTEgKzg1LDEwIEBAIGJvb2wgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6
dXBkYXRlRGF0YVNvdXJjZShjb25zdCBDQUF1ZGlvU3RyZWFtRGVzCiB7CiAgICAgQVNTRVJUKCFp
c01haW5UaHJlYWQoKSk7CiAKLSAgICBpZiAoIW1fZGF0YVNvdXJjZUxvY2sudHJ5TG9jaygpKQor
ICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fZGF0YVNvdXJjZUxvY2sgfTsKKyAgICBp
ZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIExvY2tl
ciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2RhdGFTb3VyY2VMb2NrIH07Ci0KICAgICBh
dXRvIGRhdGFTb3VyY2UgPSBBdWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShhdWRpb0Rlc2Ny
aXB0aW9uLnNhbXBsZVJhdGUoKSAqIDEsIG1fc291cmNlLmdldCgpKTsKICAgICBpZiAoZGF0YVNv
dXJjZS0+c2V0SW5wdXRGb3JtYXQoYXVkaW9EZXNjcmlwdGlvbikpIHsKICAgICAgICAgY2FsbE9u
TWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0gewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJj
ZU5vZGUuY3BwCmluZGV4IDYzM2M1MDZhMDA3NjdmZmI4ODU4Y2IwNjBmNTFkNzY5OTZiYTE3MmEu
LmZiNGM0NGY3ZGZjNjFiMmM0ZjE4NjA3MjhkYjY0Nzg5NTlmMWEwZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9k
ZS5jcHAKQEAgLTEwMiwxMCArMTAyLDEwIEBAIHZvaWQgQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpw
cm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2Ug
dXNlIHRyeUhvbGRMb2NrKCkgaW5zdGVhZC4KLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2Nr
KG1fcHJvY2Vzc0xvY2spOwotICAgIGlmICghbG9ja2VyKSB7Ci0gICAgICAgIC8vIFRvbyBiYWQg
LSB0cnlIb2xkTG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGNoYW5n
aW5nIGJ1ZmZlcnMgYW5kIHdlcmUgYWxyZWFkeSBvdXRwdXR0aW5nIHNpbGVuY2UgYW55d2F5Lgor
ICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBsb2NrLCBzbyB3ZSB1
c2UgdHJ5TG9jaygpIGluc3RlYWQuCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9w
cm9jZXNzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgeworICAgICAgICAvLyBU
b28gYmFkIC0gdHJ5TG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGNo
YW5naW5nIGJ1ZmZlcnMgYW5kIHdlcmUgYWxyZWFkeSBvdXRwdXR0aW5nIHNpbGVuY2UgYW55d2F5
LgogICAgICAgICBvdXRwdXRCdXMuemVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwCmluZGV4IGZlYmEz
MzBlZDAyMGE3YTY5YTQ0M2YzMjJlZGFkZDdlMWE5NmQ2ZWMuLmIyYmNjZjAyMzg4ZTE3ZTVmYmE3
OGI5MDBiMDg0MmIzMDM2OGM3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvTm9kZS5jcHAKQEAgLTU3OCwxMyArNTc4LDE1IEBAIHZvaWQgQXVkaW9Ob2RlOjpk
ZWNyZW1lbnRDb25uZWN0aW9uQ291bnQoKQogewogICAgIC8vIFRoZSBhY3R1YWxseSB3b3JrIGZv
ciBkZXJlZiBoYXBwZW5zIGNvbXBsZXRlbHkgd2l0aGluIHRoZSBhdWRpbyBjb250ZXh0J3MgZ3Jh
cGggbG9jay4KICAgICAvLyBJbiB0aGUgY2FzZSBvZiB0aGUgYXVkaW8gdGhyZWFkLCB3ZSBtdXN0
IHVzZSBhIHRyeUxvY2sgdG8gYXZvaWQgZ2xpdGNoZXMuCi0gICAgaWYgKGF1dG8gbG9ja2VyID0g
Y29udGV4dCgpLmlzQXVkaW9UaHJlYWQoKSA/IExvY2tlcjxSZWN1cnNpdmVMb2NrPjo6dHJ5TG9j
ayhjb250ZXh0KCkuZ3JhcGhMb2NrKCkpIDogTG9ja2VyIHsgY29udGV4dCgpLmdyYXBoTG9jaygp
IH0pIHsKLSAgICAgICAgLy8gVGhpcyBpcyB3aGVyZSB0aGUgcmVhbCBkZXJlZiB3b3JrIGhhcHBl
bnMuCi0gICAgICAgIGRlY3JlbWVudENvbm5lY3Rpb25Db3VudFdpdGhMb2NrKCk7CisgICAgaWYg
KGNvbnRleHQoKS5pc0F1ZGlvVGhyZWFkKCkpIHsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IERl
ZmVyTG9jaywgY29udGV4dCgpLmdyYXBoTG9jaygpIH07CisgICAgICAgIGlmIChsb2NrZXIudHJ5
TG9jaygpKQorICAgICAgICAgICAgZGVjcmVtZW50Q29ubmVjdGlvbkNvdW50V2l0aExvY2soKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29udGV4dCgpLmFkZERlZmVycmVkRGVjcmVtZW50
Q29ubmVjdGlvbkNvdW50KHRoaXMpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIFdlIHdlcmUg
dW5hYmxlIHRvIGdldCB0aGUgbG9jaywgc28gcHV0IHRoaXMgaW4gYSBsaXN0IHRvIGZpbmlzaCB1
cCBsYXRlci4KLSAgICAgICAgQVNTRVJUKGNvbnRleHQoKS5pc0F1ZGlvVGhyZWFkKCkpOwotICAg
ICAgICBjb250ZXh0KCkuYWRkRGVmZXJyZWREZWNyZW1lbnRDb25uZWN0aW9uQ291bnQodGhpcyk7
CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBjb250ZXh0KCkuZ3JhcGhMb2NrKCkgfTsKKyAgICAg
ICAgZGVjcmVtZW50Q29ubmVjdGlvbkNvdW50V2l0aExvY2soKTsKICAgICB9CiAKICAgICAvLyBP
bmNlIEF1ZGlvQ29udGV4dDo6dW5pbml0aWFsaXplKCkgaXMgY2FsbGVkIHRoZXJlJ3Mgbm8gbW9y
ZSBjaGFuY2VzIGZvciBkZWxldGVNYXJrZWROb2RlcygpIHRvIGdldCBjYWxsZWQsIHNvIHdlIGNh
bGwgaGVyZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9QYXJhbVRpbWVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9QYXJhbVRpbWVsaW5lLmNwcAppbmRleCAwNDA2ZWFiNzcxMGU4ZWQ5N2RlODk4M2EyMDBlNTE1
NmMyMjllYWFmLi4yODQzZjIzOTZjNTk5ZGI0MzU1MDlhNDk3NDc0OGJiYjAxMTcxYWUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGlu
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGlt
ZWxpbmUuY3BwCkBAIC0zMjcsOSArMzI3LDkgQEAgdm9pZCBBdWRpb1BhcmFtVGltZWxpbmU6OnJl
bW92ZUNhbmNlbGxlZEV2ZW50cyhzaXplX3QgZmlyc3RFdmVudFRvUmVtb3ZlKQogT3B0aW9uYWw8
ZmxvYXQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVGb3JDb250ZXh0VGltZShCYXNlQXVkaW9D
b250ZXh0JiBjb250ZXh0LCBmbG9hdCBkZWZhdWx0VmFsdWUsIGZsb2F0IG1pblZhbHVlLCBmbG9h
dCBtYXhWYWx1ZSkKIHsKICAgICB7Ci0gICAgICAgIGlmICghbV9ldmVudHNMb2NrLnRyeUxvY2so
KSkKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9ldmVudHNMb2NrIH07Cisg
ICAgICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7Ci0gICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2V2ZW50
c0xvY2sgfTsKICAgICAgICAgaWYgKCFtX2V2ZW50cy5zaXplKCkgfHwgU2Vjb25kcyB7IGNvbnRl
eHQuY3VycmVudFRpbWUoKSB9IDwgbV9ldmVudHNbMF0udGltZSgpKQogICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKICAgICB9CkBAIC0zNDcsMTEgKzM0NywxMSBAQCBPcHRpb25hbDxm
bG9hdD4gQXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKEJhc2VBdWRpb0Nv
bnRleHQmIGNvbnRleAogZmxvYXQgQXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZXNGb3JGcmFtZVJh
bmdlKHNpemVfdCBzdGFydEZyYW1lLCBzaXplX3QgZW5kRnJhbWUsIGZsb2F0IGRlZmF1bHRWYWx1
ZSwgZmxvYXQgbWluVmFsdWUsIGZsb2F0IG1heFZhbHVlLCBmbG9hdCogdmFsdWVzLCB1bnNpZ25l
ZCBudW1iZXJPZlZhbHVlcywgZG91YmxlIHNhbXBsZVJhdGUsIGRvdWJsZSBjb250cm9sUmF0ZSkK
IHsKICAgICAvLyBXZSBjYW4ndCBjb250ZW5kIHRoZSBsb2NrIGluIHRoZSByZWFsdGltZSBhdWRp
byB0aHJlYWQuCi0gICAgaWYgKCFtX2V2ZW50c0xvY2sudHJ5TG9jaygpKSB7CisgICAgTG9ja2Vy
IGxvY2tlciB7IERlZmVyTG9jaywgbV9ldmVudHNMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5
TG9jaygpKSB7CiAgICAgICAgIHN0ZDo6ZmlsbF9uKHZhbHVlcywgbnVtYmVyT2ZWYWx1ZXMsIGRl
ZmF1bHRWYWx1ZSk7CiAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CiAgICAgfQotICAgIExv
Y2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2V2ZW50c0xvY2sgfTsKIAogICAgIGZs
b2F0IHZhbHVlID0gdmFsdWVzRm9yRnJhbWVSYW5nZUltcGwoc3RhcnRGcmFtZSwgZW5kRnJhbWUs
IGRlZmF1bHRWYWx1ZSwgdmFsdWVzLCBudW1iZXJPZlZhbHVlcywgc2FtcGxlUmF0ZSwgY29udHJv
bFJhdGUpOwogCkBAIC05ODYsOSArOTg2LDkgQEAgYm9vbCBBdWRpb1BhcmFtVGltZWxpbmU6Omlz
RXZlbnRDdXJyZW50KGNvbnN0IFBhcmFtRXZlbnQmIGV2ZW50LCBjb25zdCBQYXJhbUV2ZW4KIAog
Ym9vbCBBdWRpb1BhcmFtVGltZWxpbmU6Omhhc1ZhbHVlcyhzaXplX3Qgc3RhcnRGcmFtZSwgZG91
YmxlIHNhbXBsZVJhdGUpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2V2ZW50c0xvY2sudHJ5TG9jaygp
KQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fZXZlbnRzTG9jayB9OworICAgIGlm
ICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgTG9ja2VyIGxv
Y2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fZXZlbnRzTG9jayB9OwogCiAgICAgLy8gUmV0dXJu
IGZhbHNlIGlmIHRoZXJlIGFyZSBubyBldmVudHMgaW4gdGhlIHRpbWUgcmFuZ2UuCiAgICAgYXV0
byBlbmRGcmFtZSA9IHN0YXJ0RnJhbWUgKyBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNp
emU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldE5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXROb2RlLmNwcAppbmRleCAzNDk2MjZmYTRkNDNlZDI1M2ZjZjkwNzMyYjY0MmFmMmJjNWFhNDYw
Li5iYzkwOTk1OWQ1M2M0ZGJjZDFkM2M3ODhlNWIwNzk2N2M1YTk4NTcyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKQEAg
LTE5MSw4ICsxOTEsOCBAQCB2b2lkIEF1ZGlvV29ya2xldE5vZGU6OnByb2Nlc3Moc2l6ZV90IGZy
YW1lc1RvUHJvY2VzcykKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAotICAgIGF1
dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIg
fHwgIW1fcHJvY2Vzc29yIHx8ICZUaHJlYWQ6OmN1cnJlbnQoKSAhPSBtX3dvcmtsZXRUaHJlYWQp
IHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAg
aWYgKCFsb2NrZXIudHJ5TG9jaygpIHx8ICFtX3Byb2Nlc3NvciB8fCAmVGhyZWFkOjpjdXJyZW50
KCkgIT0gbV93b3JrbGV0VGhyZWFkKSB7CiAgICAgICAgIC8vIFdlJ3JlIG5vdCByZWFkeSB5ZXQg
b3Igd2UgYXJlIGdldHRpbmcgZGVzdHJveWVkLiBJbiB0aGlzIGNhc2UsIHdlIG91dHB1dCBzaWxl
bmNlLgogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZPdXRwdXRzKCk7
ICsraSkKICAgICAgICAgICAgIG91dHB1dChpKS0+YnVzKCktPnplcm8oKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCmluZGV4
IGUyMDJkN2QyNjJhZDA2NDdiZGE3NmZiYTUyN2YwYTVhMTYyMWE3ODAuLjhlNGMzZDYyMjAyNWU5
YWNmZTE0M2Q5MjNlZmQxZjZjMTE2ZmZmYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcApAQCAtNTYwLDE0ICs1NjAsMTYg
QEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0OjpoYW5kbGVQcmVSZW5kZXJUYXNrcyhjb25zdCBBdWRp
b0lPUG9zaXRpb24mIG91dHB1dFBvc2l0aW8KIAogICAgIC8vIEF0IHRoZSBiZWdpbm5pbmcgb2Yg
ZXZlcnkgcmVuZGVyIHF1YW50dW0sIHRyeSB0byB1cGRhdGUgdGhlIGludGVybmFsIHJlbmRlcmlu
ZyBncmFwaCBzdGF0ZSAoZnJvbSBtYWluIHRocmVhZCBjaGFuZ2VzKS4KICAgICAvLyBJdCdzIE9L
IGlmIHRoZSB0cnlMb2NrKCkgZmFpbHMsIHdlJ2xsIGp1c3QgdGFrZSBzbGlnaHRseSBsb25nZXIg
dG8gcGljayB1cCB0aGUgY2hhbmdlcy4KLSAgICBpZiAoYXV0byBsb2NrZXIgPSBMb2NrZXI8UmVj
dXJzaXZlTG9jaz46OnRyeUxvY2soZ3JhcGhMb2NrKCkpKSB7Ci0gICAgICAgIC8vIEZpeHVwIHRo
ZSBzdGF0ZSBvZiBhbnkgZGlydHkgQXVkaW9TdW1taW5nSnVuY3Rpb25zIGFuZCBBdWRpb05vZGVP
dXRwdXRzLgotICAgICAgICBoYW5kbGVEaXJ0eUF1ZGlvU3VtbWluZ0p1bmN0aW9ucygpOwotICAg
ICAgICBoYW5kbGVEaXJ0eUF1ZGlvTm9kZU91dHB1dHMoKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsg
RGVmZXJMb2NrLCBncmFwaExvY2soKSB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKKyAg
ICAgICAgcmV0dXJuOwogCi0gICAgICAgIHVwZGF0ZUF1dG9tYXRpY1B1bGxOb2RlcygpOwotICAg
ICAgICBtX291dHB1dFBvc2l0aW9uID0gb3V0cHV0UG9zaXRpb247Ci0gICAgfQorICAgIC8vIEZp
eHVwIHRoZSBzdGF0ZSBvZiBhbnkgZGlydHkgQXVkaW9TdW1taW5nSnVuY3Rpb25zIGFuZCBBdWRp
b05vZGVPdXRwdXRzLgorICAgIGhhbmRsZURpcnR5QXVkaW9TdW1taW5nSnVuY3Rpb25zKCk7Cisg
ICAgaGFuZGxlRGlydHlBdWRpb05vZGVPdXRwdXRzKCk7CisKKyAgICB1cGRhdGVBdXRvbWF0aWNQ
dWxsTm9kZXMoKTsKKyAgICBtX291dHB1dFBvc2l0aW9uID0gb3V0cHV0UG9zaXRpb247CiB9CiAK
IEF1ZGlvSU9Qb3NpdGlvbiBCYXNlQXVkaW9Db250ZXh0OjpvdXRwdXRQb3NpdGlvbigpCkBAIC01
ODQsOCArNTg2LDggQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0OjpoYW5kbGVQb3N0UmVuZGVyVGFz
a3MoKQogICAgIC8vIE11c3QgdXNlIGEgdHJ5TG9jaygpIGhlcmUgdG9vLiBEb24ndCB3b3JyeSwg
dGhlIGxvY2sgd2lsbCB2ZXJ5IHJhcmVseSBiZSBjb250ZW5kZWQgYW5kIHRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBmcmVxdWVudGx5LgogICAgIC8vIFRoZSB3b3JzdCB0aGF0IGNhbiBoYXBwZW4gaXMg
dGhhdCB0aGVyZSB3aWxsIGJlIHNvbWUgbm9kZXMgd2hpY2ggd2lsbCB0YWtlIHNsaWdodGx5IGxv
bmdlciB0aGFuIHVzdWFsIHRvIGJlIGRlbGV0ZWQgb3IgcmVtb3ZlZAogICAgIC8vIGZyb20gdGhl
IHJlbmRlciBncmFwaCAoaW4gd2hpY2ggY2FzZSB0aGV5J2xsIHJlbmRlciBzaWxlbmNlKS4KLSAg
ICBhdXRvIGxvY2tlciA9IExvY2tlcjxSZWN1cnNpdmVMb2NrPjo6dHJ5TG9jayhncmFwaExvY2so
KSk7Ci0gICAgaWYgKCFsb2NrZXIpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgZ3Jh
cGhMb2NrKCkgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybjsK
IAogICAgIC8vIFRha2UgY2FyZSBvZiBmaW5pc2hpbmcgYW55IGRlcmVmcyB3aGVyZSB0aGUgdHJ5
TG9jaygpIGZhaWxlZCBwcmV2aW91c2x5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAKaW5kZXggNTk3MWZkMDAyMjViY2FjY2MwZTUzNzNl
NjcwMmRiNGNkMjllODUwMC4uMWJjOWYyZWNmNmU1MzFkMWMxMDQ3ZDQ1YWJkYzdjNzhkYWU3YzFm
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJO
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5v
ZGUuY3BwCkBAIC05Miw5ICs5Miw5IEBAIHZvaWQgQ29udm9sdmVyTm9kZTo6cHJvY2VzcyhzaXpl
X3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgIEFTU0VSVChvdXRwdXRCdXMpOwogCiAgICAgLy8gU3lu
Y2hyb25pemUgd2l0aCBwb3NzaWJsZSBkeW5hbWljIGNoYW5nZXMgdG8gdGhlIGltcHVsc2UgcmVz
cG9uc2UuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAg
ICBpZiAoIWxvY2tlcikgewotICAgICAgICAvLyBUb28gYmFkIC0gdHJ5SG9sZExvY2soKSBmYWls
ZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBzZXR0aW5nIGEgbmV3IGltcHVsc2UgcmVz
cG9uc2UuCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNzTG9jayB9Owor
ICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgeworICAgICAgICAvLyBUb28gYmFkIC0gdHJ5TG9j
aygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIHNldHRpbmcgYSBuZXcgaW1w
dWxzZSByZXNwb25zZS4KICAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAKaW5kZXggYTFhNDZhNjdlZWEy
M2M1NTkyMTNhNzMwODg4MmNlNTA2NzRiYjI2NC4uY2RiM2E3MzdkNWE0NmMzMmMwODBkMGYyYTQw
OGQ3NjEwMTdiYTk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcApAQCAtMTU1LDEx
ICsxNTUsMTEgQEAgdm9pZCBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3Moc2l6
ZV90IG51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gVXNl
IHRyeUhvbGRMb2NrKCkgdG8gYXZvaWQgY29udGVudGlvbiBpbiB0aGUgcmVhbC10aW1lIGF1ZGlv
IHRocmVhZC4KKyAgICAvLyBVc2UgdHJ5TG9jaygpIHRvIGF2b2lkIGNvbnRlbnRpb24gaW4gdGhl
IHJlYWwtdGltZSBhdWRpbyB0aHJlYWQuCiAgICAgLy8gSWYgd2UgZmFpbCB0byBhY3F1aXJlIHRo
ZSBsb2NrIHRoZW4gdGhlIEhUTUxNZWRpYUVsZW1lbnQgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9m
CiAgICAgLy8gcmVjb25maWd1cmluZyBpdHMgcGxheWJhY2sgZW5naW5lLCBzbyB3ZSBvdXRwdXQg
c2lsZW5jZSBpbiB0aGlzIGNhc2UuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3By
b2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgeworICAgIExvY2tlciBsb2NrZXIgeyBEZWZl
ckxvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpIHsKICAg
ICAgICAgLy8gV2UgZmFpbGVkIHRvIGFjcXVpcmUgdGhlIGxvY2suCiAgICAgICAgIG91dHB1dEJ1
cy0+emVybygpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCmlu
ZGV4IGM1NjYyZDYwOWFmNjBhNmFlYmE2ZGE3MjFhMzVkMWQ1ODhhZDUxNzUuLmI4NTQyZDRlM2Jm
YzEyMDQzYzYyMzJkZDhlN2ZmYjM1M2FhOGMxYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUu
Y3BwCkBAIC0xMzksMTYgKzEzOSwxMSBAQCB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2Rl
Ojpwcm9jZXNzKHNpemVfdCBudW1iZXJPZkZyYW1lcykKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIC8vIFVzZSB0cnlIb2xkTG9jaygpIHRvIGF2b2lkIGNvbnRlbnRpb24gaW4gdGhlIHJl
YWwtdGltZSBhdWRpbyB0aHJlYWQuCisgICAgLy8gVXNlIHRyeUxvY2soKSB0byBhdm9pZCBjb250
ZW50aW9uIGluIHRoZSByZWFsLXRpbWUgYXVkaW8gdGhyZWFkLgogICAgIC8vIElmIHdlIGZhaWwg
dG8gYWNxdWlyZSB0aGUgbG9jayB0aGVuIHRoZSBNZWRpYVN0cmVhbSBtdXN0IGJlIGluIHRoZSBt
aWRkbGUgb2YKICAgICAvLyBhIGZvcm1hdCBjaGFuZ2UsIHNvIHdlIG91dHB1dCBzaWxlbmNlIGlu
IHRoaXMgY2FzZS4KLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xvY2sp
OwotICAgIGlmICghbG9ja2VyKSB7Ci0gICAgICAgIC8vIFdlIGZhaWxlZCB0byBhY3F1aXJlIHRo
ZSBsb2NrLgotICAgICAgICBvdXRwdXRCdXMtPnplcm8oKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLSAgICBpZiAobV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzICE9IG91dHB1dEJ1cy0+bnVtYmVy
T2ZDaGFubmVscygpKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNz
TG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSB8fCBtX3NvdXJjZU51bWJlck9mQ2hh
bm5lbHMgIT0gb3V0cHV0QnVzLT5udW1iZXJPZkNoYW5uZWxzKCkpIHsKICAgICAgICAgb3V0cHV0
QnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCmluZGV4IGM2ZjY5ZDIzMDVj
MjE1OTk2NzEzOWE4NDc5ZmFlNWQzMTgyMjI1ODcuLmZmYTQ2Nzk2YjhlY2E3NTI3NzliMTZkMWUz
YzUwM2U2ODgxZjhiODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vT3NjaWxsYXRvck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vT3NjaWxsYXRvck5vZGUuY3BwCkBAIC0zNDksMTAgKzM0OSwxMCBAQCB2b2lkIE9zY2lsbGF0
b3JOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgaWYgKGZyYW1lc1Rv
UHJvY2VzcyA+IG1fcGhhc2VJbmNyZW1lbnRzLnNpemUoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVz
ZSB0cnlIb2xkTG9jaygpIGluc3RlYWQuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayht
X3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgewotICAgICAgICAvLyBUb28gYmFkIC0g
dHJ5SG9sZExvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBjaGFuZ2lu
ZyB3YXZlLXRhYmxlcy4KKyAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRo
aXMgbG9jaywgc28gd2UgdXNlIHRyeUxvY2soKSBpbnN0ZWFkLgorICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkp
IHsKKyAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUxvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4g
dGhlIG1pZGRsZSBvZiBjaGFuZ2luZyB3YXZlLXRhYmxlcy4KICAgICAgICAgb3V0cHV0QnVzLnpl
cm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwCmluZGV4IDdjY2YyNGQ2NzBiN2Y2ZTFlZjFhMzc3OWY5
YjcwNDg2ODJmZmNlZDcuLjk0MWNiNjYxNDVjNzg5MjVlODA0NzhkM2E5MzQ1YTMyZTk4MGY1N2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcApA
QCAtMTI5LDEwICsxMjksMTAgQEAgdm9pZCBQYW5uZXJOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFt
ZXNUb1Byb2Nlc3MpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyBUaGUgYXVkaW8gdGhyZWFk
IGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUhvbGRMb2NrKCkgaW5zdGVh
ZC4KLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwotICAgIGlm
ICghbG9ja2VyKSB7Ci0gICAgICAgIC8vIFRvbyBiYWQgLSB0cnlIb2xkTG9jaygpIGZhaWxlZC4g
V2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGNoYW5naW5nIHRoZSBwYW5uZXIuCisgICAgLy8g
VGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlM
b2NrKCkgaW5zdGVhZC4KKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nlc3NM
b2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKSB7CisgICAgICAgIC8vIFRvbyBiYWQg
LSB0cnlMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcg
dGhlIHBhbm5lci4KICAgICAgICAgZGVzdGluYXRpb24tPnplcm8oKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2Ny
aXB0UHJvY2Vzc29yTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Nj
cmlwdFByb2Nlc3Nvck5vZGUuY3BwCmluZGV4IDIyZTk3ZThhYTI1ZWFjMmY3MDhlMjNmNzZhODli
MjhkOTMwMzAxMzAuLjcyYmVhZGY0ZDcwMDQyMGFhNDZjNjVmZGQyNzhiZDJkZDEwMWU2ZGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29y
Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9j
ZXNzb3JOb2RlLmNwcApAQCAtMTU4LDggKzE1OCw4IEBAIHZvaWQgU2NyaXB0UHJvY2Vzc29yTm9k
ZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgIHVuc2lnbmVkIGJ1ZmZlcklu
ZGV4ID0gdGhpcy0+YnVmZmVySW5kZXgoKTsKICAgICBBU1NFUlQoYnVmZmVySW5kZXggPCBidWZm
ZXJDb3VudCk7CiAKLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fYnVmZmVyTG9ja3Nb
YnVmZmVySW5kZXhdKTsKLSAgICBpZiAoIWxvY2tlcikgeworICAgIExvY2tlciBsb2NrZXIgeyBE
ZWZlckxvY2ssIG1fYnVmZmVyTG9ja3NbYnVmZmVySW5kZXhdIH07CisgICAgaWYgKCFsb2NrZXIu
dHJ5TG9jaygpKSB7CiAgICAgICAgIC8vIFdlJ3JlIGxhdGUgaW4gaGFuZGxpbmcgdGhlIHByZXZp
b3VzIHJlcXVlc3QuIFRoZSBtYWluIHRocmVhZCBtdXN0IGJlCiAgICAgICAgIC8vIHZlcnkgYnVz
eS4gVGhlIGJlc3Qgd2UgY2FuIGRvIGlzIGNsZWFyIG91dCB0aGUgYnVmZmVyIG91cnNlbGYgaGVy
ZS4KICAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcAppbmRleCAxMjA4ODUw
ODA4OTAzNjFkNGM0MGFhNmFjYWI5NTRiYTcwMGI1NzI5Li4zOGQ3N2RiNTViNjFmYjUwMDJkY2Rm
YTI5ZDFiMzJjZmIwZDU2ZDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5jcHAKQEAgLTgzLDEwICs4MywxMCBAQCB2
b2lkIFdhdmVTaGFwZXJQcm9jZXNzb3I6OnByb2Nlc3MoY29uc3QgQXVkaW9CdXMqIHNvdXJjZSwg
QXVkaW9CdXMqIGRlc3RpbmF0aW9uLAogICAgIGlmICghY2hhbm5lbENvdW50TWF0Y2hlcykKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0
aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlIb2xkTG9jaygpIGluc3RlYWQuCi0gICAgYXV0byBsb2Nr
ZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgewotICAg
ICAgICAvLyBUb28gYmFkIC0gdHJ5SG9sZExvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhl
IG1pZGRsZSBvZiBhIHNldEN1cnZlKCkgY2FsbC4KKyAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNh
bid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUxvY2soKSBpbnN0ZWFkLgorICAg
IExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKKyAgICBpZiAoIWxv
Y2tlci50cnlMb2NrKCkpIHsKKyAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUxvY2soKSBmYWlsZWQu
IFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBhIHNldEN1cnZlKCkgY2FsbC4KICAgICAgICAg
ZGVzdGluYXRpb24tPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5k
ZXggZWIyZDNhYThkNjM3ZTRkNGJhNjNhMTM4MTgwYTA3ZGIyOWM0MDZmNS4uNzE3MWQ4MzgwMjU5
MWRmMGQzZGEwOTA4OWFiNDVmNDNiZDA0OGZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI2MzMsNyArMjYz
Myw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlVmVydGV4QXJyYXkoV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdCogYXJyYXlPYmplCiAKICAgICBpZiAoIWFycmF5T2JqZWN0LT5p
c0RlZmF1bHRPYmplY3QoKSAmJiBhcnJheU9iamVjdCA9PSBtX2JvdW5kVmVydGV4QXJyYXlPYmpl
Y3QpIHsKICAgICAgICAgLy8gYmluZFZlcnRleEFycmF5IGdyYWJzIHRoZSBsb2NrIGludGVybmFs
bHkuCi0gICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBsb2NrZXIudW5sb2Nr
KCk7CiAgICAgICAgIGJpbmRWZXJ0ZXhBcnJheShudWxscHRyKTsgLy8gVGhlIGRlZmF1bHQgVkFP
IHdhcyByZW1vdmVkIGluIE9wZW5HTCAzLjMgYnV0IG5vdCBmcm9tIFdlYkdMIDI7IGJpbmQgdGhl
IGRlZmF1bHQgZm9yIFdlYkdMIHRvIHVzZS4KICAgICAgICAgbG9ja2VyID0gTG9ja2VyIHsgb2Jq
ZWN0R3JhcGhMb2NrKCkgfTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKaW5kZXggZWI1NGYwZDUxZDc4NjBiOWY2MDQwZDg5MzU4
ODQ0ODgyYTY1YmI2Mi4uZmY0NTYxN2JmMzhkMmYzYTJkNjZkNGRjYTdiM2Q2MDRjMzQyNjY3MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24u
aApAQCAtOTYsMTQgKzk2LDEzIEBAIGlubGluZSB2b2lkIEF1ZGlvRGVzdGluYXRpb246OmNsZWFy
Q2FsbGJhY2soKQogCiBpbmxpbmUgdm9pZCBBdWRpb0Rlc3RpbmF0aW9uOjpjYWxsUmVuZGVyQ2Fs
bGJhY2soQXVkaW9CdXMqIHNvdXJjZUJ1cywgQXVkaW9CdXMqIGRlc3RpbmF0aW9uQnVzLCBzaXpl
X3QgZnJhbWVzVG9Qcm9jZXNzLCBjb25zdCBBdWRpb0lPUG9zaXRpb24mIG91dHB1dFBvc2l0aW9u
KQogewotICAgIGlmIChtX2NhbGxiYWNrTG9jay50cnlMb2NrKCkpIHsKLSAgICAgICAgTG9ja2Vy
IGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fY2FsbGJhY2tMb2NrIH07Ci0gICAgICAgIGlm
IChtX2NhbGxiYWNrKSB7Ci0gICAgICAgICAgICBtX2NhbGxiYWNrLT5yZW5kZXIoc291cmNlQnVz
LCBkZXN0aW5hdGlvbkJ1cywgZnJhbWVzVG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlvbik7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2Nr
LCBtX2NhbGxiYWNrTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgeworICAgICAg
ICBkZXN0aW5hdGlvbkJ1cy0+emVybygpOworICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGRl
c3RpbmF0aW9uQnVzLT56ZXJvKCk7CisgICAgaWYgKG1fY2FsbGJhY2spCisgICAgICAgIG1fY2Fs
bGJhY2stPnJlbmRlcihzb3VyY2VCdXMsIGRlc3RpbmF0aW9uQnVzLCBmcmFtZXNUb1Byb2Nlc3Ms
IG91dHB1dFBvc2l0aW9uKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKaW5kZXggMjdi
Mjk4MmRjM2ZkOTE2ODVkMzE3YTdlZDFhOWMxZTZlZTQ3YjI2Zi4uZmQ4ODU2ZmI2Mjc5ZDA0YjM3
NjYwM2ExMmRjZTE1NDdhYzRjNDJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCkBAIC0yMDIsOCArMjAyLDggQEAgdm9pZCBSZXZl
cmJDb252b2x2ZXI6OnByb2Nlc3MoY29uc3QgQXVkaW9DaGFubmVsKiBzb3VyY2VDaGFubmVsLCBB
dWRpb0NoYW5uZWwqIGQKICAgICAvLyBzaWduYWwgZnJvbSB0aW1lIHRvIHRpbWUsIHNpbmNlIHdl
J2xsIGdldCB0byBpdCB0aGUgbmV4dCB0aW1lIHdlJ3JlIGNhbGxlZC4gIFdlJ3JlIGNhbGxlZCBy
ZXBlYXRlZGx5CiAgICAgLy8gYW5kIGZyZXF1ZW50bHkgKGFyb3VuZCBldmVyeSAzbXMpLiAgVGhl
IGJhY2tncm91bmQgdGhyZWFkIGlzIHByb2Nlc3Npbmcgd2VsbCBpbnRvIHRoZSBmdXR1cmUgYW5k
IGhhcyBhIGNvbnNpZGVyYWJsZSBhbW91bnQgb2YgCiAgICAgLy8gbGVld2F5IGhlcmUuLi4KLSAg
ICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fYmFja2dyb3VuZFRocmVhZExvY2spOwotICAg
IGlmICghbG9ja2VyKQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fYmFja2dyb3Vu
ZFRocmVhZExvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIG1fbW9yZUlucHV0QnVmZmVyZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2Nv
YS5jcHAKaW5kZXggMzkyYzM2MTQwNGZjMmM5NTBlYmI5Mzg4OWE2MjljYjVhMzcxZTQyYS4uNTU3
NjdjMTk3MzY1ZDI5YTcxNjc2MGI0ZTcxOTQ2MWEyNWVjNzA3MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9u
Q29jb2EuY3BwCkBAIC0yMTksMTAgKzIxOSwxMCBAQCBPU1N0YXR1cyBBdWRpb0Rlc3RpbmF0aW9u
Q29jb2E6OnJlbmRlcihkb3VibGUgc2FtcGxlVGltZSwgdWludDY0X3QgaG9zdFRpbWUsIFVJbgog
ICAgIH0KIAogICAgIC8vIFdoZW4gdGhlcmUgaXMgYSBBdWRpb1dvcmtsZXQsIHdlIGRvIHJlbmRl
cmluZyBvbiB0aGUgQXVkaW9Xb3JrbGV0VGhyZWFkLgotICAgIGlmICghbV9kaXNwYXRjaFRvUmVu
ZGVyVGhyZWFkTG9jay50cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
bV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2so
KSkKICAgICAgICAgcmV0dXJuIC0xOwogCi0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1Rh
ZyB7IH0sIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2sgfTsKICAgICBpZiAoIW1fZGlzcGF0
Y2hUb1JlbmRlclRocmVhZCkKICAgICAgICAgcmVuZGVyT25SZW5kZXJpbmdUaGVhZElmUGxheWlu
ZyhmcmFtZXNUb1JlbmRlcik7CiAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQ
cm92aWRlckdTdHJlYW1lci5jcHAKaW5kZXggZjc3NWEzMmZkNDc4MDJlZTUzODg1NzE2M2VkNzc5
YTEyMTM4Y2Q0Ny4uM2MxMGQ4M2I0OGNkYjFhMmMxMDRkNDM3NjUyZDNlYWIwZjNiYTQzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvU291
cmNlUHJvdmlkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNwcApAQCAtMTU5LDEw
ICsxNTksMTAgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyOjpjb25maWd1cmVB
dWRpb0JpbihHc3RFbGVtZW50KiBhdWRpb0JpbiwgR3N0RWwKIHZvaWQgQXVkaW9Tb3VyY2VQcm92
aWRlckdTdHJlYW1lcjo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNU
b1Byb2Nlc3MpCiB7CiAgICAgR1NUX1RSQUNFKCJGZXRjaGluZyBidWZmZXJzIGZyb20gYWRhcHRl
cnMiKTsKLSAgICBpZiAoIW1fYWRhcHRlckxvY2sudHJ5TG9jaygpKQorICAgIExvY2tlciBsb2Nr
ZXIgeyBEZWZlckxvY2ssIG1fYWRhcHRlckxvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2Nr
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcg
eyB9LCBtX2FkYXB0ZXJMb2NrIH07CiAgICAgZm9yIChhdXRvJiBpdCA6IG1fYWRhcHRlcnMpCiAg
ICAgICAgIGNvcHlHU3RyZWFtZXJCdWZmZXJzVG9BdWRpb0NoYW5uZWwoaXQudmFsdWUuZ2V0KCks
IGJ1cywgaXQua2V5IC0gMSwgZnJhbWVzVG9Qcm9jZXNzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2Vi
S2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDZlZjgzNTI4M2ZmMzUzYThmZTEy
MjdiMDcwYTFkZGQ1NmQ0YTNmOGYuLmM3ZTc2ODYxOWI0N2UzMDkxM2E4Y2Q2ODk0ZDQ4NjkzNjM3
ZTI5ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1l
ci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNw
cApAQCAtNDA4LDExICs0MDgsMTAgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNSZW5k
ZXJJdGVyYXRpb24oV2ViS2l0V2ViQXVkaW9TcmMqIHNyYykKICAgICAgICAgcHJpdi0+ZGlzcGF0
Y2hEb25lID0gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKCFwcml2LT5kaXNwYXRjaFRvUmVuZGVy
VGhyZWFkTG9jay50cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgcHJp
di0+ZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2Nr
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcg
eyB9LCBwcml2LT5kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jayB9OwotCiAgICAgaWYgKCFwcml2
LT5kaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24pCiAgICAgICAgIHdlYktpdFdlYkF1ZGlv
U3JjUmVuZGVyQW5kUHVzaEZyYW1lcyhHUmVmUHRyPEdzdEVsZW1lbnQ+KEdTVF9FTEVNRU5UX0NB
U1Qoc3JjKSksIFdURk1vdmUoKmNoYW5uZWxCdWZmZXJMaXN0KSk7CiAgICAgZWxzZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCmluZGV4IGMw
NjRjY2U0Y2E4NjJiZDQ2ODkyODQxZmZhNWJjMTlmYjdmMjEzZGEuLjI4NDhiYWIxMDg5ZGJlZTEx
NDFmZDFlNjk1NDAxZmVlYTQyN2E4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCkBAIC0xMzUsNyArMTM1LDggQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHB1cmdlVGltZXJGaXJlZCgpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwotICAgICAgICBpZiAoYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhsb2NrKCkpKQor
ICAgICAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBsb2NrKCkgfTsKKyAgICAgICAgaWYg
KGxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgICAgICBjbGVhclNjcmF0Y2hCdWZmZXIoKTsKICAg
ICB9CiAKQEAgLTY5NCw4ICs2OTUsOCBAQCB2b2lkIFNoYWRvd0JsdXI6OmRyYXdSZWN0U2hhZG93
V2l0aFRpbGluZyhjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29ucwogewogICAg
IFJlZlB0cjxJbWFnZUJ1ZmZlcj4gbGF5ZXJJbWFnZUJ1ZmZlcjsKICNpZiBVU0UoQ0cpCi0gICAg
YXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhTY3JhdGNoQnVmZmVyOjpsb2NrKCkpOwotICAgIGlm
IChsb2NrZXIpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBTY3JhdGNoQnVmZmVy
Ojpsb2NrKCkgfTsKKyAgICBpZiAobG9ja2VyLnRyeUxvY2soKSkgewogICAgICAgICBsYXllcklt
YWdlQnVmZmVyID0gU2NyYXRjaEJ1ZmZlcjo6c2luZ2xldG9uKCkuZ2V0U2NyYXRjaEJ1ZmZlcih0
ZW1wbGF0ZVNpemUpOwogICAgICAgICBpZiAoIWxheWVySW1hZ2VCdWZmZXIpCiAgICAgICAgICAg
ICByZXR1cm47CkBAIC03NTQsOCArNzU1LDggQEAgdm9pZCBTaGFkb3dCbHVyOjpkcmF3SW5zZXRT
aGFkb3dXaXRoVGlsaW5nKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb24KIHsK
ICAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+IGxheWVySW1hZ2VCdWZmZXI7CiAjaWYgVVNFKENHKQot
ICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2soU2NyYXRjaEJ1ZmZlcjo6bG9jaygpKTsKLSAg
ICBpZiAobG9ja2VyKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgU2NyYXRjaEJ1
ZmZlcjo6bG9jaygpIH07CisgICAgaWYgKGxvY2tlci50cnlMb2NrKCkpIHsKICAgICAgICAgbGF5
ZXJJbWFnZUJ1ZmZlciA9IFNjcmF0Y2hCdWZmZXI6OnNpbmdsZXRvbigpLmdldFNjcmF0Y2hCdWZm
ZXIodGVtcGxhdGVTaXplKTsKICAgICAgICAgaWYgKCFsYXllckltYWdlQnVmZmVyKQogICAgICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDLm1tCmluZGV4IDQ3OTc2ODNiODBiYjQ5MDVhN2E4MTY4ODdhNDM1NGQxMjk4ZWNkNDEu
LjRiY2YzYTEwYzNiMmRlZGM3MjkyMTgxMjk1MGQ4OGYwMjkyYjgwNjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTk0LDcgKzk0LDcg
QEAgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6On5BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
QygpCiAKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dChBdWRp
b0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewotICAgIC8vIFByb3RlY3QgYWNj
ZXNzIHRvIG1fcmluZ0J1ZmZlciBieSB1c2luZyB0cnlIb2xkTG9jaygpLiBJZiB3ZSBmYWlsZWQK
KyAgICAvLyBQcm90ZWN0IGFjY2VzcyB0byBtX3JpbmdCdWZmZXIgYnkgdXNpbmcgdHJ5TG9jaygp
LiBJZiB3ZSBmYWlsZWQKICAgICAvLyB0byBhcXVpcmUsIGEgcmUtY29uZmlndXJlIGlzIHVuZGVy
d2F5LCBhbmQgbV9yaW5nQnVmZmVyIGlzIHVuc2FmZSB0byBhY2Nlc3MuCiAgICAgLy8gRW1pdCBz
aWxlbmNlLgogICAgIGlmICghbV90YXBTdG9yYWdlKSB7CkBAIC0xMDIsOCArMTAyLDggQEAgdm9p
ZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMs
IHNpemVfdCBmcmFtZXNUb1Byb2MKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8g
bG9ja2VyID0gdHJ5SG9sZExvY2sobV90YXBTdG9yYWdlLT5sb2NrKTsKLSAgICBpZiAoIWxvY2tl
ciB8fCAhbV9yaW5nQnVmZmVyKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV90
YXBTdG9yYWdlLT5sb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpIHx8ICFtX3JpbmdC
dWZmZXIpIHsKICAgICAgICAgYnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggODEzOTk2Yzc2YzY0MWI3Y2FlMDQ2ZjU5NzFl
Yzc0N2NmOTFjZTlkNy4uODFlNzU3M2VkNDIxNWRjZDdlNDQwYTFhYzhmMzViZTVjMTJhNWIxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMjU0LDggKzI1NCw4IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnF1ZXVlVmlkZW9TYW1wbGUoTWVk
aWFTYW1wbGUmIHNhbXBsCiAgICAgaWYgKCFtX3Zpc2libGUpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJM
b2NrKTsKLSAgICBpZiAoIWxvY2tlcikKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBt
X3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckxvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2Nr
KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghbV9jYW5FbnF1ZXVlRGlzcGxheUxheWVy
IHx8ICFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciB8fCBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci0+ZGlkRmFpbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAppbmRleCAx
MWJlYTEyYjY2ZGM1NDYyNWE4MjlmOTA3NGE5MmMwMzc0Y2UyODk1Li4xNWI1NzI4ZjdmZGJhODEx
NzFmMjdjYzg5NjI4OTFlMTg3N2JiNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVy
LmNwcApAQCAtOTksNyArOTksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICAgICAgYXV0byBzYW1wbGUgPSBXVEZNb3ZlKG1fc2FtcGxlKTsKLSAgICAgICAgbG9j
a2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tlci51bmxvY2soKTsKICAgICAgICAgaWYg
KExJS0VMWShHU1RfSVNfU0FNUExFKHNhbXBsZS5nZXQoKSkpKQogICAgICAgICAgICAgd2Via2l0
VmlkZW9TaW5rUmVwYWludFJlcXVlc3RlZChzaW5rLCBzYW1wbGUuZ2V0KCkpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktp
dENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVj
cnlwdG9yR1N0cmVhbWVyLmNwcAppbmRleCAzMjAxNzRkNWJmZTg3NmRiOGMxNDIzNTlhOGUxYTAx
YWE4NmMwZmRiLi5lOGU3MjlmODMwMWE4NzY2ZTY0YmY2MzUyZjAyMDZhN2E2M2VmMGE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dl
YktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlw
dGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKQEAgLTM5Nyw3ICszOTcsNyBAQCBzdGF0aWMgZ2Jv
b2xlYW4gc2lua0V2ZW50SGFuZGxlcihHc3RCYXNlVHJhbnNmb3JtKiB0cmFucywgR3N0RXZlbnQq
IGV2ZW50KQogICAgICAgICAgICAgYm9vbCBpc0NkbVByb3h5QXR0YWNoZWQgPSBwcml2LT5jZG1Q
cm94eTsKICAgICAgICAgICAgIHByaXYtPmlzRmx1c2hpbmcgPSB0cnVlOwogICAgICAgICAgICAg
aWYgKGlzQ2RtUHJveHlBdHRhY2hlZCkgewotICAgICAgICAgICAgICAgIGxvY2tlci51bmxvY2tF
YXJseSgpOworICAgICAgICAgICAgICAgIGxvY2tlci51bmxvY2soKTsKICAgICAgICAgICAgICAg
ICBwcml2LT5jZG1Qcm94eS0+YWJvcnRXYWl0aW5nRm9yS2V5KCk7CiAgICAgICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgICAgICBwcml2LT5jb25kaXRpb24ubm90aWZ5T25lKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktp
dE1lZGlhU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDZk
MDNkZjk2YWQ0Mzc5MGQ1YWYzZDJiNzJkNzcwMGQxNmZmMmE0ZmEuLmQ0ZGUxZDllMWRiZDI5MmE2
NDliMWE5OWUzNDRkOTI2ODJmODQyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvV2Vi
S2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC01MDksNyArNTA5LDcgQEAgc3RhdGljIHZv
aWQgd2ViS2l0TWVkaWFTcmNMb29wKHZvaWQqIHVzZXJEYXRhKQogICAgICAgICB9CiAKICAgICAg
ICAgLy8gUHVzaCB0aGUgYnVmZmVyIHdpdGhvdXQgdGhlIHN0cmVhbWluZ01lbWJlcnMgbG9jayBz
byB0aGF0IGZsdXNoZXMgY2FuIGhhcHBlbiB3aGlsZSBpdCB0cmF2ZWxzIGRvd25zdHJlYW0uCi0g
ICAgICAgIHN0cmVhbWluZ01lbWJlcnMubG9ja0hvbGRlcigpLnVubG9ja0Vhcmx5KCk7CisgICAg
ICAgIHN0cmVhbWluZ01lbWJlcnMubG9ja0hvbGRlcigpLnVubG9jaygpOwogCiAgICAgICAgIEFT
U0VSVChHU1RfQlVGRkVSX1BUU19JU19WQUxJRChidWZmZXIuZ2V0KCkpKTsKICAgICAgICAgR1NU
X1RSQUNFX09CSkVDVChwYWQsICJQdXNoaW5nIGJ1ZmZlciBkb3duc3RyZWFtOiAlIiBHU1RfUFRS
X0ZPUk1BVCwgYnVmZmVyLmdldCgpKTsKQEAgLTUyNSw3ICs1MjUsNyBAQCBzdGF0aWMgdm9pZCB3
ZWJLaXRNZWRpYVNyY0xvb3Aodm9pZCogdXNlckRhdGEpCiAgICAgICAgIC8vIEVPUyBldmVudHMg
YW5kIG90aGVyIGVucXVldWVkIGV2ZW50cyBhcmUgYWxzbyBzZW50IHVubG9ja2VkIHNvIHRoZXkg
Y2FuIHJlYWN0IHRvIGZsdXNoZXMgaWYgbmVjZXNzYXJ5LgogICAgICAgICBHUmVmUHRyPEdzdEV2
ZW50PiBldmVudCA9IEdSZWZQdHI8R3N0RXZlbnQ+KEdTVF9FVkVOVChvYmplY3QubGVha1JlZigp
KSk7CiAKLSAgICAgICAgc3RyZWFtaW5nTWVtYmVycy5sb2NrSG9sZGVyKCkudW5sb2NrRWFybHko
KTsKKyAgICAgICAgc3RyZWFtaW5nTWVtYmVycy5sb2NrSG9sZGVyKCkudW5sb2NrKCk7CiAgICAg
ICAgIEdTVF9ERUJVR19PQkpFQ1QocGFkLCAiUHVzaGluZyBldmVudCBkb3duc3RyZWFtOiAlIiBH
U1RfUFRSX0ZPUk1BVCwgZXZlbnQuZ2V0KCkpOwogICAgICAgICBib29sIGV2ZW50SGFuZGxlZCA9
IGdzdF9wYWRfcHVzaF9ldmVudChwYWQsIEdSZWZQdHI8R3N0RXZlbnQ+KGV2ZW50KS5sZWFrUmVm
KCkpOwogICAgICAgICBpZiAoIWV2ZW50SGFuZGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyVW5pdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9B
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCmluZGV4IDVkY2VhMWE0MDg2ZTIw
ZTE1N2ViYmNkNzE5YmMzNjYwODkwNGI2MGMuLmU2ZjJlNmUyZGY5NGY4NGYxZGMxMDQ4ZDNkNTli
ZTQ2ZmEyN2QyOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJVbml0LmNwcApAQCAtMTQxLDEwICsxNDEsMTAgQEAgdm9pZCBBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnJldHJpZXZlRm9ybWF0RGVzY3JpcHRpb24oQ29tcGxl
dGlvbkhhbmQKIAogdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnVwZGF0
ZVJlbmRlclNvdXJjZXNJZk5lY2Vzc2FyeSgpCiB7Ci0gICAgaWYgKCFtX3BlbmRpbmdSZW5kZXJT
b3VyY2VzTG9jay50cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9w
ZW5kaW5nUmVuZGVyU291cmNlc0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBt
X3BlbmRpbmdSZW5kZXJTb3VyY2VzTG9jayB9OwogICAgIGlmICghbV9oYXNQZW5kaW5nUmVuZGVy
U291cmNlcykKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJv
dmlkZXJDb2NvYS5tbQppbmRleCA1NzZmNDRlOTJjNThiOTNjMGI0MGQ2NjQ5OTgwYmM3ZTkwYTVl
YWZiLi4zNDYxNDFiMDFjM2QxZDc4Y2E5ZmY1NGNhYjY3Mjk5N2ZhOTEyNTNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0KQEAgLTY1LDggKzY1LDggQEAgdm9p
ZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnNldENsaWVudChBdWRpb1NvdXJjZVByb3Zp
ZGVyQ2xpZW50KiBjbGllbnQpCiAKIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hOjpw
cm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsKLSAg
ICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fbG9jayk7Ci0gICAgaWYgKCFsb2NrZXIgfHwg
IW1fZGF0YVNvdXJjZSB8fCAhbV9hdWRpb0J1ZmZlckxpc3QpIHsKKyAgICBMb2NrZXIgbG9ja2Vy
IHsgRGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkgfHwgIW1f
ZGF0YVNvdXJjZSB8fCAhbV9hdWRpb0J1ZmZlckxpc3QpIHsKICAgICAgICAgYnVzLT56ZXJvKCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck9yV29ya2xldFRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck9yV29ya2xldFRocmVhZC5jcHAKaW5kZXggNDc3ZDk2NzJjNzEyYjQ2ZmM0ZWJkN2EyODk3
ZTc3ZWIxNTgwODQ4NC4uY2Y3NDA2Nzk0ODQ5NWZhMDhkYmQ3MDQyNWY4NzU4MDMxYjUwNGYwMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0VGhyZWFkLmNw
cApAQCAtMjA3LDggKzIwNyw4IEBAIHZvaWQgV29ya2VyT3JXb3JrbGV0VGhyZWFkOjpzdG9wKEZ1
bmN0aW9uPHZvaWQoKT4mJiBzdG9wcGVkQ2FsbGJhY2spCiAgICAgLy8gTXV0ZXggcHJvdGVjdGlv
biBpcyBuZWNlc3NhcnkgdG8gZW5zdXJlIHRoYXQgbV93b3JrZXJHbG9iYWxTY29wZSBpc24ndCBj
aGFuZ2VkIGJ5CiAgICAgLy8gV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWQoKSB3aGlsZSB3ZSdy
ZSBhY2Nlc3NpbmcgaXQuIE5vdGUgYWxzbyB0aGF0IHN0b3AoKSBjYW4KICAgICAvLyBiZSBjYWxs
ZWQgYmVmb3JlIG1fd29ya2VyR2xvYmFsU2NvcGUgaXMgZnVsbHkgY3JlYXRlZC4KLSAgICBhdXRv
IGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fdGhyZWFkQ3JlYXRpb25BbmRHbG9iYWxTY29wZUxvY2sp
OwotICAgIGlmICghbG9ja2VyKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV90
aHJlYWRDcmVhdGlvbkFuZEdsb2JhbFNjb3BlTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxv
Y2soKSkgewogICAgICAgICAvLyBUaGUgdGhyZWFkIGlzIHN0aWxsIHN0YXJ0aW5nLCBzcGluIHRo
ZSBydW5sb29wIGFuZCB0cnkgYWdhaW4gdG8gYXZvaWQgZGVhZGxvY2tzIGlmIHRoZSB3b3JrZXIg
dGhyZWFkCiAgICAgICAgIC8vIG5lZWRzIHRvIGludGVyYWN0IHdpdGggdGhlIG1haW4gdGhyZWFk
IGR1cmluZyBzdGFydHVwLgogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBzdG9wcGVk
Q2FsbGJhY2sgPSBXVEZNb3ZlKHN0b3BwZWRDYWxsYmFjayldKCkgbXV0YWJsZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcAppbmRleCBk
NzRhNDczZTIwYzkwMThmZTM2ZDVhYjZkZmQ4YWE1MmI1YTY5YTUxLi45ODM4YzBjMTFjYjZhNTRl
MTkzNWY0MGQxMGJkYjc4MjcxMTBjZDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL0ljb25EYXRhYmFzZS5jcHAKQEAgLTU3Miw3ICs1NzIsNyBAQCB2b2lkIElj
b25EYXRhYmFzZTo6bG9hZEljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCwgQWxs
b3dEYXRhYmFzZVdyaXRlCiAgICAgICAgICAgICAgICAgYXV0byBpY29uID0gaXQtPnZhbHVlLmZp
cnN0OwogICAgICAgICAgICAgICAgIGl0LT52YWx1ZS5zZWNvbmQgPSBNb25vdG9uaWNUaW1lOjpu
b3coKTsKICAgICAgICAgICAgICAgICBzdGFydENsZWFyTG9hZGVkSWNvbnNUaW1lcigpOwotICAg
ICAgICAgICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICAgICAgICAgIGxvY2tl
ci51bmxvY2soKTsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGlj
b24pKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CkBAIC01OTYsNyAr
NTk2LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OmxvYWRJY29uRm9yUGFnZVVSTChjb25zdCBTdHJp
bmcmIHBhZ2VVUkwsIEFsbG93RGF0YWJhc2VXcml0ZQogCiAgICAgICAgICAgICBhdXRvIGljb24g
PSBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmZpcnN0OwogICAgICAgICAgICAgc3RhcnRDbGVh
ckxvYWRlZEljb25zVGltZXIoKTsKLSAgICAgICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOwor
ICAgICAgICAgICAgbG9ja2VyLnVubG9jaygpOwogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoV1RGTW92ZShpY29uKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKaW5k
ZXggZjQ0YzQxODkyYjM4ZjViYWQzMTk2ZDY5YTFjMTMyNGNlOTNiNWVjMy4uNDhhMzY2MTY5YjNm
ZWE2M2RhNDI4NzEzNjAxZTZiZGYzNmZkNWQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0zMjQsMTEg
KzMyNCwxMCBAQCB2b2lkIExpYldlYlJUQ0NvZGVjczo6Y29tcGxldGVkRGVjb2RpbmcoUlRDRGVj
b2RlcklkZW50aWZpZXIgZGVjb2RlcklkZW50aWZpZXIsCiAgICAgaWYgKCFkZWNvZGVyKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZWRJbWFnZUNhbGxiYWNrTG9j
ay50cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgZGVjb2Rlci0+ZGVj
b2RlZEltYWdlQ2FsbGJhY2tMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgZGVj
b2Rlci0+ZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrIH07Ci0KICAgICBpZiAoIWRlY29kZXItPmRl
Y29kZWRJbWFnZUNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAKQEAgLTQ5MiwxMSArNDkxLDEw
IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWRFbmNvZGluZyhSVENFbmNvZGVySWRl
bnRpZmllciBpZGVudGlmaWVyLCBJUEM6OkRhCiAgICAgaWYgKCFlbmNvZGVyKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBpZiAoIWVuY29kZXItPmVuY29kZWRJbWFnZUNhbGxiYWNrTG9jay50cnlM
b2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgZW5jb2Rlci0+ZW5jb2RlZElt
YWdlQ2FsbGJhY2tMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgZW5jb2Rlci0+
ZW5jb2RlZEltYWdlQ2FsbGJhY2tMb2NrIH07Ci0KICAgICBpZiAoIWVuY29kZXItPmVuY29kZWRJ
bWFnZUNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlYWIwODNmMWUwN2Q0NWU4OGFkYjE0MDFkYmI0
YzIxNWI1Mzc4NTRhLi4yMzUzNTc5N2RmNTdkM2FhMTM5MTc3MGVkYmMyZmQxNjg2MzIwOWFhIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTggQEAKKzIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUgd2l0
aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBp
bmNvbXBhdGlibGUgd2l0aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBJbnN0ZWFkLCB1
c2UgdGhlIGZvbGxvd2luZyBwYXR0ZXJuOgorICAgICAgICBgYGAKKyAgICAgICAgTG9ja2VyIGxv
Y2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisgICAgICAgIGlmIChsb2NrZXIudHJ5TG9jaygp
KQorICAgICAgICBgYGAKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NoZWNr
ZWRMb2NrVGVzdC5jcHA6CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXBsYWNlIExvY2tIb2xkZXIgd2l0aCBMb2NrZXIgaW4gbG9jYWwg
dmFyaWFibGVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVj
a2VkTG9ja1Rlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tlZExv
Y2tUZXN0LmNwcAppbmRleCBkODJlZTFhMmU1YmRlMGRjYWJmMzVjZTlkYzczMTEyMTEwMjI2MjRh
Li5mYmQwMmIzYzM0YjA0YzU2Y2FlZmMzNGU0OGE5Nzc1NmZiY2E5NjE2IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkTG9ja1Rlc3QuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRMb2NrVGVzdC5jcHAKQEAgLTM4LDkg
KzM4LDkgQEAgcHVibGljOgogICAgIH0KICAgICB2b2lkIG1heWJlU2V0T3RoZXJWYWx1ZShpbnQg
dmFsdWUpCiAgICAgewotICAgICAgICBpZiAoIW1fb3RoZXJMb2NrLnRyeUxvY2soKSkKKyAgICAg
ICAgTG9ja2VyIGhvbGRMb2NrIHsgRGVmZXJMb2NrLCBtX290aGVyTG9jayB9OworICAgICAgICBp
ZiAoIWhvbGRMb2NrLnRyeUxvY2soKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgTG9j
a2VyIGhvbGRMb2NrIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9vdGhlckxvY2sgfTsKICAgICAgICAg
bV9vdGhlclZhbHVlID0gdmFsdWU7CiAgICAgfQogICAgIC8vIFRoaXMgZnVuY3Rpb24gY2FuIGJl
IHVzZWQgdG8gbWFudWFsbHkgY2hlY2sgdGhhdCBjb21waWxlIGZhaWxzLgo=
</data>
<flag name="commit-queue"
          id="450629"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429439</attachid>
            <date>2021-05-22 16:43:13 -0700</date>
            <delta_ts>2021-05-22 17:06:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226145-20210522164312.patch</filename>
            <type>text/plain</type>
            <size>58143</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZjY3MTE3MDhhODUyMGY5MDcyMjIzNDExNThhODk2NDgzZjU5NmE2Li4yYzM5YzIxZDAzMWNkMWVi
ZGJkMDk5YThhNWIwZmFhMTUwOGI2Nzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3
aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlz
IGluY29tcGF0aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuIEluc3RlYWQs
IHVzZSB0aGUgZm9sbG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgRGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlMb2Nr
KCkpCisgICAgICAgIGBgYAorCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpT
Qzo6SGVhcDo6cmVzdW1lVGhlUGVyaXBoZXJ5KToKKyAgICAgICAgKiBydW50aW1lL1ZNVHJhcHMu
Y3BwOgorICAgICAgICAoSlNDOjpWTVRyYXBzOjp0cnlJbnN0YWxsVHJhcEJyZWFrcG9pbnRzKToK
KyAgICAgICAgKiB0b29scy9WTUluc3BlY3Rvci5jcHA6CisgICAgICAgIChKU0M6OlZNSW5zcGVj
dG9yOjpsb2NrKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlcGxhY2UgTG9ja0hvbGRlciB3aXRoIExvY2tlciBpbiBsb2NhbCB2YXJp
YWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKaW5kZXggYjcwYTNmM2U4MTM3MjcyNzA1YTA0YmVkMjM5NmNlMGZjOWViZjc0Yi4uYjdm
ZjcyZTA4OTA3MjYyNDc4MzA2ODVkYzFhZTkyNTk4NzZiMjczNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBA
QAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3aXRoIENsYW5n
IFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0
aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuIEluc3RlYWQsIHVzZSB0aGUg
Zm9sbG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
RGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlMb2NrKCkpCisgICAg
ICAgIGBgYAorCisgICAgICAgICogd3RmL0NoZWNrZWRMb2NrLmg6CisgICAgICAgICogd3RmL0xv
Y2tlci5oOgorICAgICAgICAoV1RGOjpMb2NrZXI6OkxvY2tlcik6CisgICAgICAgIChXVEY6Okxv
Y2tlcjo6fkxvY2tlcik6CisgICAgICAgIChXVEY6OkxvY2tlcjo6dHJ5TG9jayk6CisgICAgICAg
IChXVEY6OkxvY2tlcjo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgIChXVEY6OkxvY2tl
cjo6dW5sb2NrRWFybHkpOgorICAgICAgICAoV1RGOjpMb2NrZXI6Om9wZXJhdG9yPSk6CisgICAg
ICAgIChXVEY6OkxvY2tlcjo6dW5sb2NrKToKKyAgICAgICAgKFdURjo6TG9ja2VyOjpsb2NrKToK
KyAgICAgICAgKiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6bG9nKToKKyAg
ICAgICAgKFdURjo6TG9nZ2VyOjpsb2dWZXJib3NlKToKKyAgICAgICAgKiB3dGYvVGhyZWFkU2Fm
ZXR5QW5hbHlzaXMuaDoKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkb3B0IENoZWNrZWRMb2NrIGluIG1vcmUgcGxhY2VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZDA1N2QyNzEyNzA0YzgxOTBkYTQ0NDIyMDEzOTEyNmU1ZTIxZWE5Yy4uNzNkZmU2MTU5
ZTAwYmMzNTM2YWU2ZWYwN2EyMTE4MDE4YzFlMDdiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1
IEBACisyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRpYmxlIHdpdGggQ2xh
bmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21w
YXRpYmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcy4gSW5zdGVhZCwgdXNlIHRo
ZSBmb2xsb3dpbmcgcGF0dGVybjoKKyAgICAgICAgYGBgCisgICAgICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fbG9jayB9OworICAgICAgICBpZiAobG9ja2VyLnRyeUxvY2soKSkKKyAg
ICAgICAgYGBgCisKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQnVmZmVyU291cmNlTm9kZTo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1BhcmFtVGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRp
bWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFy
YW1UaW1lbGluZTo6dmFsdWVzRm9yRnJhbWVSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1BhcmFtVGltZWxpbmU6Omhhc1ZhbHVlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xl
dE5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb252b2x2ZXJOb2RlOjpwcm9jZXNzKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3MpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3Mp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6T3NjaWxsYXRvck5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vUGFubmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpw
cm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJvY2Vzcyk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldhdmVTaGFwZXJQcm9jZXNzb3I6OnByb2Nlc3MpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
RGVzdGluYXRpb246OmNhbGxSZW5kZXJDYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vUmV2ZXJiQ29udm9sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJldmVyYkNvbnZvbHZl
cjo6cHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5h
dGlvbkNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
cmVuZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQ
cm92aWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3Zp
ZGVyR1N0cmVhbWVyOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJL
aXRXZWJBdWRpb1NyY1JlbmRlckl0ZXJhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JhdGNoQnVmZmVyOjpwdXJn
ZVRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1cjo6ZHJhd1JlY3RTaGFk
b3dXaXRoVGlsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0JsdXI6OmRyYXdJbnNldFNo
YWRvd1dpdGhUaWxpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6ZW5xdWV1ZVZpZGVvU2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Ojp1cGRhdGVS
ZW5kZXJTb3VyY2VzSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpX
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
T3JXb3JrbGV0VGhyZWFkOjpzdG9wKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0IENoZWNrZWRMb2NrIGluIG1vcmUgcGxhY2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGZjYWM4NDUxYzhhOTM0NTIwOGFiNzFhOTM3OGE4MTc3ZTgxNjg4ODguLjJm
ZmE2N2Y3MzI5ZjhjOTU5NzlkYjFjOTk1ZmViNzVkNTQ5YzcwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUgd2l0
aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBp
bmNvbXBhdGlibGUgd2l0aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBJbnN0ZWFkLCB1
c2UgdGhlIGZvbGxvd2luZyBwYXR0ZXJuOgorICAgICAgICBgYGAKKyAgICAgICAgTG9ja2VyIGxv
Y2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisgICAgICAgIGlmIChsb2NrZXIudHJ5TG9jaygp
KQorICAgICAgICBgYGAKKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRl
ZERlY29kaW5nKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWRF
bmNvZGluZyk6CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBBZG9wdCBDaGVja2VkTG9jayBpbiBtb3JlIHBsYWNlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmNwcAppbmRleCBjMWNmODY0Mjc3MDUxYmEwMjEwNThjZjUxNGFkMzcyZmJh
NzQ4MjdiLi42OWJmMzI1NjZjZGYwODcwMzU4MTM1OWRlZGFhZGUzZTAyOTA3MGMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMTcwNyw3ICsxNzA3LDcgQEAgTkVWRVJfSU5M
SU5FIHZvaWQgSGVhcDo6cmVzdW1lVGhlUGVyaXBoZXJ5KCkKICAgICAgICAgICAgIGJvb2wgcmVt
b3ZlID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAodmlzaXRvci5oYXNBY2tub3dsZWRnZWRUaGF0
VGhlTXV0YXRvcklzUmVzdW1lZCgpKQogICAgICAgICAgICAgICAgIHJlbW92ZSA9IHRydWU7Ci0g
ICAgICAgICAgICBlbHNlIGlmIChhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKHZpc2l0b3Iucmln
aHRUb1J1bigpKSkgeworICAgICAgICAgICAgZWxzZSBpZiAoTG9ja2VyIGxvY2tlciB7IERlZmVy
TG9jaywgdmlzaXRvci5yaWdodFRvUnVuKCkgfTsgbG9ja2VyLnRyeUxvY2soKSkgewogICAgICAg
ICAgICAgICAgIHZpc2l0b3IudXBkYXRlTXV0YXRvcklzU3RvcHBlZChsb2NrZXIpOwogICAgICAg
ICAgICAgICAgIHJlbW92ZSA9IHRydWU7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxl
ckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCmluZGV4IGIyZDk5ZmJhODkyMjZkNGMyNDBjZGFi
OGY1YjA1NzU3ODFiZThkZTEuLjJiYjYyM2U5M2JkNTc5M2EzNDEyODc3MGNlNzBiMjc1NmEzZDY1
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCkBAIC0y
MjAsNyArMjIwLDcgQEAgdm9pZCBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Ojp0cmFja2lu
Z0NvbXBsZXRlKCkKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHNhbXBsaW5nUHJvZmlsZXItPmdl
dExvY2soKSB9OwogICAgICAgICBzYW1wbGluZ1Byb2ZpbGVyLT5wYXVzZShsb2NrZXIpOwogICAg
ICAgICBWZWN0b3I8U2FtcGxpbmdQcm9maWxlcjo6U3RhY2tUcmFjZT4gc3RhY2tUcmFjZXMgPSBz
YW1wbGluZ1Byb2ZpbGVyLT5yZWxlYXNlU3RhY2tUcmFjZXMobG9ja2VyKTsKLSAgICAgICAgbG9j
a2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tlci51bmxvY2soKTsKIAogICAgICAgICBS
ZWY8UHJvdG9jb2w6OlNjcmlwdFByb2ZpbGVyOjpTYW1wbGVzPiBzYW1wbGVzID0gYnVpbGRTYW1w
bGVzKHZtLCBXVEZNb3ZlKHN0YWNrVHJhY2VzKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2Nr
ZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuY3BwCmluZGV4IGE1MGM5NDIwODJhYWU0
YWQ0YTY0ZDQzOWU3OWI3NWJmMTg1MGNjMWIuLmUwZTUwNDRlZGZhZmNlMThkZTEzY2ZmYTBkZTM2
NzQ3MjkxNDI2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmNwcApAQCAtMjIyLDEyICsyMjIsMTIgQEAgdm9pZCBSZW1vdGVJbnNw
ZWN0b3JTb2NrZXRFbmRwb2ludDo6ZGlzY29ubmVjdChDb25uZWN0aW9uSUQgaWQpCiAgICAgaWYg
KGNvbnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2xpc3RlbmVycy5nZXQoaWQpKSB7CiAgICAgICAg
IG1fbGlzdGVuZXJzLnJlbW92ZShpZCk7CiAgICAgICAgIFNvY2tldDo6Y2xvc2UoY29ubmVjdGlv
bi0+c29ja2V0KTsKLSAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tl
ci51bmxvY2soKTsKICAgICAgICAgY29ubmVjdGlvbi0+bGlzdGVuZXIuZGlkQ2hhbmdlU3RhdHVz
KCp0aGlzLCBpZCwgTGlzdGVuZXI6OlN0YXR1czo6Q2xvc2VkKTsKICAgICB9IGVsc2UgaWYgKGNv
bnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2NsaWVudHMuZ2V0KGlkKSkgewogICAgICAgICBtX2Ns
aWVudHMucmVtb3ZlKGlkKTsKICAgICAgICAgU29ja2V0OjpjbG9zZShjb25uZWN0aW9uLT5zb2Nr
ZXQpOwotICAgICAgICBsb2NrZXIudW5sb2NrRWFybHkoKTsKKyAgICAgICAgbG9ja2VyLnVubG9j
aygpOwogICAgICAgICBjb25uZWN0aW9uLT5jbGllbnQuZGlkQ2xvc2UoKnRoaXMsIGlkKTsKICAg
ICB9IGVsc2UKICAgICAgICAgTE9HX0VSUk9SKCJFcnJvcjogQ2Fubm90IGRpc2Nvbm5lY3Q6IElu
dmFsaWQgaWQiKTsKQEAgLTI4Miw3ICsyODIsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclNvY2tl
dEVuZHBvaW50OjpyZWN2SWZFbmFibGVkKENvbm5lY3Rpb25JRCBpZCkKICAgICAgICAgaWYgKGF1
dG8gcmVhZFNpemUgPSBTb2NrZXQ6OnJlYWQoY29ubmVjdGlvbi0+c29ja2V0LCByZWN2QnVmZmVy
LmRhdGEoKSwgcmVjdkJ1ZmZlci5zaXplKCkpKSB7CiAgICAgICAgICAgICBpZiAoKnJlYWRTaXpl
ID4gMCkgewogICAgICAgICAgICAgICAgIHJlY3ZCdWZmZXIuc2hyaW5rKCpyZWFkU2l6ZSk7Ci0g
ICAgICAgICAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgICAgICAgICAgbG9j
a2VyLnVubG9jaygpOwogICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNsaWVudC5kaWRSZWNl
aXZlKCp0aGlzLCBpZCwgV1RGTW92ZShyZWN2QnVmZmVyKSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgfQpAQCAtMjkxLDcgKzI5MSw3IEBAIHZvaWQgUmVtb3RlSW5zcGVj
dG9yU29ja2V0RW5kcG9pbnQ6OnJlY3ZJZkVuYWJsZWQoQ29ubmVjdGlvbklEIGlkKQogICAgICAg
ICBTb2NrZXQ6OmNsb3NlKGNvbm5lY3Rpb24tPnNvY2tldCk7CiAgICAgICAgIG1fY2xpZW50cy5y
ZW1vdmUoaWQpOwogCi0gICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBsb2Nr
ZXIudW5sb2NrKCk7CiAgICAgICAgIGNvbm5lY3Rpb24tPmNsaWVudC5kaWRDbG9zZSgqdGhpcywg
aWQpOwogICAgIH0KIH0KQEAgLTM1Myw3ICszNTMsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclNv
Y2tldEVuZHBvaW50OjphY2NlcHRJbmV0U29ja2V0SWZFbmFibGVkKENvbm5lY3Rpb25JRCBpZCkK
ICAgICBpZiAoY29uc3QgYXV0byYgY29ubmVjdGlvbiA9IG1fbGlzdGVuZXJzLmdldChpZCkpIHsK
ICAgICAgICAgaWYgKGF1dG8gc29ja2V0ID0gU29ja2V0OjphY2NlcHQoY29ubmVjdGlvbi0+c29j
a2V0KSkgewogICAgICAgICAgICAgLy8gTmVlZCB0byB1bmxvY2sgYmVmb3JlIGNhbGxpbmcgY3Jl
YXRlQ2xpZW50IGFzIGl0IGFsc28gYXR0ZW1wdHMgdG8gbG9jay4KLSAgICAgICAgICAgIGxvY2tl
ci51bmxvY2tFYXJseSgpOworICAgICAgICAgICAgbG9ja2VyLnVubG9jaygpOwogICAgICAgICAg
ICAgaWYgKGNvbm5lY3Rpb24tPmxpc3RlbmVyLmRvQWNjZXB0KCp0aGlzLCBzb2NrZXQudmFsdWUo
KSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmgKaW5kZXggYWEyNzNiYWRiZWZhNzM3YTBlYWE1
MzRmYmViYTlmNTAxZmRiODYyNy4uZGQ5OWYyZDM4MjZjYWFmY2Y5ZWY4YjkwMmE2YTIwM2RhMjIz
YjMzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uY3VycmVu
dEpTTG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmN1cnJlbnRK
U0xvY2suaApAQCAtNTgsOSArNTgsOSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KICAgICAKLSAg
ICB2b2lkIHVubG9ja0Vhcmx5KCkKKyAgICB2b2lkIHVubG9jaygpCiAgICAgewotICAgICAgICBt
X2xvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBtX2xvY2tlci51bmxvY2soKTsKICAgICB9
CiAKIHByaXZhdGU6CkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gdnMuIGRl
cml2ZWQgY2xhc3Nlcy4gSWYgd2UgZGlkbid0LCB0aGVuIHdlIHdvdWxkIGRlc3Ryb3kgdGhlIAog
ICAgICAgICAvLyBEZWZlckdDIG9iamVjdCBiZWZvcmUgdW5sb2NraW5nIHRoZSBsb2NrIHdoaWNo
IGNvdWxkIGNhdXNlIGEgR0MKICAgICAgICAgLy8gYW5kIHJlc3VsdGluZyBkZWFkbG9jay4KLSAg
ICAgICAgdW5sb2NrRWFybHkoKTsKKyAgICAgICAgdW5sb2NrKCk7CiAgICAgfQogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAppbmRleCA5MmJmZWFh
NzY4YWE2ODYyYmRmNWQ5OGM0YWVkZDcxNDYyZTRhZDY0Li4xMGViNGVjYzU3NjJlY2Y4NTYzOGQy
OTExNjAxNDk5ODg0OGQ0ZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTVRyYXBzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRy
YXBzLmNwcApAQCAtMTM3LDggKzEzNyw4IEBAIHZvaWQgVk1UcmFwczo6dHJ5SW5zdGFsbFRyYXBC
cmVha3BvaW50cyhTaWduYWxDb250ZXh0JiBjb250ZXh0LCBTdGFja0JvdW5kcyBzdGFjCiAgICAg
fQogCiAgICAgaWYgKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChmb3VuZENvZGVCbG9jay0+aml0
VHlwZSgpKSkgewotICAgICAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKCptX2xvY2spOwot
ICAgICAgICBpZiAoIWxvY2tlcikKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
Km1fbG9jayB9OworICAgICAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgICAgICBy
ZXR1cm47IC8vIExldCB0aGUgU2lnbmFsU2VuZGVyIHRyeSBhZ2FpbiBsYXRlci4KIAogICAgICAg
ICBpZiAoIW5lZWRIYW5kbGluZyhWTVRyYXBzOjpBc3luY0V2ZW50cykpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuY3BwCmluZGV4IGU0OWRhZTFlMWJjOWRkNzBj
OWViMjAyZDg3NzA5ZmNjNmNhNjcwOTAuLjk4YTdmMTQ3NDI4YTg1NGY5NzViYThmNzA3ZDgyYzc2
ODlmY2FlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3Bl
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNw
cApAQCAtNzMsMTQgKzczLDE0IEBAIGF1dG8gVk1JbnNwZWN0b3I6OmxvY2soU2Vjb25kcyB0aW1l
b3V0KSAtPiBFeHBlY3RlZDxMb2NrZXIsIEVycm9yPgogICAgIC8vIFdlJ2xsIGJlIGRvaW5nIHNs
ZWVwKDEpIGJldHdlZW4gdHJpZXMgYmVsb3cuIEhlbmNlLCBzbGVlcFBlclJldHJ5IGlzIDEuCiAg
ICAgdW5zaWduZWQgbWF4UmV0cmllcyA9ICh0aW1lb3V0IDwgU2Vjb25kczo6aW5maW5pdHkoKSkg
PyB0aW1lb3V0LnZhbHVlKCkgOiBVSU5UX01BWDsKIAotICAgIEV4cGVjdGVkPExvY2tlciwgRXJy
b3I+IGxvY2tlciA9IExvY2tlcjo6dHJ5TG9jayhtX2xvY2spOworICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fbG9jayB9OworCiAgICAgdW5zaWduZWQgdHJ5Q291bnQgPSAwOwotICAg
IHdoaWxlICghbG9ja2VyICYmIHRyeUNvdW50IDwgbWF4UmV0cmllcykgeworICAgIHdoaWxlICgh
bG9ja2VyLnRyeUxvY2soKSAmJiB0cnlDb3VudCA8IG1heFJldHJpZXMpIHsKICAgICAgICAgLy8g
V2Ugd2FudCB0aGUgdmVyc2lvbiBvZiBzbGVlcCBmcm9tIHVuaXN0ZC5oLiBDYXN0IHRvIGRpc2Ft
YmlndWF0ZS4KICNpZiAhT1MoV0lORE9XUykKICAgICAgICAgKHN0YXRpY19jYXN0PHVuc2lnbmVk
ICgqKSh1bnNpZ25lZCk+KHNsZWVwKSkoMSk7CiAjZW5kaWYKLSAgICAgICAgbG9ja2VyID0gTG9j
a2VyOjp0cnlMb2NrKG1fbG9jayk7CiAgICAgfQogCiAgICAgaWYgKCFsb2NrZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oIGIvU291cmNlL1dURi93dGYvQ2hlY2tl
ZExvY2suaAppbmRleCA0NGI4OTk5NjkxMjM0NTIwMDE5OGZkODY0YTk5ODk2Njc3NjM5OTQyLi4x
MWM2OTkwMTgwZWQ2NDU0ODBhN2Q3ZThiMTI2NjI3MzkwZTI2Y2VjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRMb2Nr
LmgKQEAgLTQzLDkgKzQzLDkgQEAgbmFtZXNwYWNlIFdURiB7CiAvLyAgICAgICB2b2lkIHNldFZh
bHVlKGludCB2YWx1ZSkgeyBMb2Noa2VyIGhvbGRMb2NrIHsgbV9sb2NrIH07IG1fdmFsdWUgPSB2
YWx1ZTsgIH0KIC8vICAgICAgIHZvaWQgbWF5YmVTZXRPdGhlclZhbHVlKGludCB2YWx1ZSkKIC8v
ICAgICAgIHsKLS8vICAgICAgICAgICBpZiAoIW1fbG9jay50cnlMb2NrKCkpCisvLyAgICAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisvLyAgICAgICAgICAgaWYg
KCFsb2NrZXIudHJ5TG9jaygpKQogLy8gICAgICAgICAgICAgIHJldHVybjsKLS8vICAgICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9vdGhlckxvY2sgfTsKIC8vICAg
ICAgICAgICBtX290aGVyVmFsdWUgPSB2YWx1ZTsKIC8vICAgICAgIH0KIC8vICAgcHJpdmF0ZToK
QEAgLTYwLDggKzYwLDggQEAgY2xhc3MgV1RGX0NBUEFCSUxJVFlfTE9DSyBDaGVja2VkTG9jayA6
IExvY2sgewogcHVibGljOgogICAgIGNvbnN0ZXhwciBDaGVja2VkTG9jaygpID0gZGVmYXVsdDsK
ICAgICB2b2lkIGxvY2soKSBXVEZfQUNRVUlSRVNfTE9DSygpIHsgTG9jazo6bG9jaygpOyB9Ci0g
ICAgYm9vbCB0cnlMb2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgeyByZXR1cm4gTG9j
azo6dHJ5TG9jaygpOyB9Ci0gICAgYm9vbCB0cnlfbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLX0lG
KHRydWUpIHsgcmV0dXJuIExvY2s6OnRyeV9sb2NrKCk7IH0gLy8gTk9MSU5UOiBJbnRlbnRpb25h
bCBkZXZpYXRpb24gdG8gc3VwcG9ydCBzdGQ6OnNjb3BlZF9sb2NrLgorICAgIGJvb2wgdHJ5TG9j
aygpIFdURl9UUllfQUNRVUlSRV9MT0NLKHRydWUpIHsgcmV0dXJuIExvY2s6OnRyeUxvY2soKTsg
fQorICAgIGJvb2wgdHJ5X2xvY2soKSBXVEZfVFJZX0FDUVVJUkVfTE9DSyh0cnVlKSB7IHJldHVy
biBMb2NrOjp0cnlfbG9jaygpOyB9IC8vIE5PTElOVDogSW50ZW50aW9uYWwgZGV2aWF0aW9uIHRv
IHN1cHBvcnQgc3RkOjpzY29wZWRfbG9jay4KICAgICB2b2lkIHVubG9jaygpIFdURl9SRUxFQVNF
U19MT0NLKCkgeyBMb2NrOjp1bmxvY2soKTsgfQogICAgIHZvaWQgdW5sb2NrRmFpcmx5KCkgV1RG
X1JFTEVBU0VTX0xPQ0soKSB7IExvY2s6OnVubG9ja0ZhaXJseSgpOyB9CiAgICAgdm9pZCBzYWZl
cG9pbnQoKSB7IExvY2s6OnNhZmVwb2ludCgpOyB9CkBAIC03NSw4ICs3NSw2IEBAIHB1YmxpYzoK
IC8vIGRlY2xhcmF0aW9uLgogaW5saW5lIHZvaWQgYXNzZXJ0SXNIZWxkKGNvbnN0IENoZWNrZWRM
b2NrJiBsb2NrKSBXVEZfQVNTRVJUU19BQ1FVSVJFRF9MT0NLKGxvY2spIHsgQVNTRVJUX1VOVVNF
RChsb2NrLCBsb2NrLmlzSGVsZCgpKTsgfQogCi11c2luZyBBZG9wdExvY2tUYWcgPSBzdGQ6OmFk
b3B0X2xvY2tfdDsKLQogLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3aXRoIENoZWNr
ZWRMb2NrLgogLy8gTm9uLW1vdmFibGUgc2ltcGxlIHNjb3BlZCBsb2NrIGhvbGRlci4KIC8vIEV4
YW1wbGU6IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKQEAgLTg1LDI4ICs4Myw1NyBAQCBjbGFz
cyBXVEZfQ0FQQUJJTElUWV9TQ09QRURfTE9DSyBMb2NrZXI8Q2hlY2tlZExvY2s+IHsKIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBMb2NrZXIoQ2hlY2tlZExvY2smIGxvY2spIFdURl9BQ1FVSVJFU19M
T0NLKGxvY2spCiAgICAgICAgIDogbV9sb2NrKGxvY2spCisgICAgICAgICwgbV9pc0xvY2tlZCh0
cnVlKQogICAgIHsKICAgICAgICAgbV9sb2NrLmxvY2soKTsKICAgICB9CiAgICAgTG9ja2VyKEFk
b3B0TG9ja1RhZywgQ2hlY2tlZExvY2smIGxvY2spIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCiAg
ICAgICAgIDogbV9sb2NrKGxvY2spCisgICAgICAgICwgbV9pc0xvY2tlZCh0cnVlKQorICAgIHsK
KyAgICB9CisgICAgTG9ja2VyKERlZmVyTG9ja1RhZywgQ2hlY2tlZExvY2smIGxvY2spIFdURl9F
WENMVURFU19MT0NLKGxvY2spCisgICAgICAgIDogbV9sb2NrKGxvY2spCiAgICAgewogICAgIH0K
ICAgICB+TG9ja2VyKCkgV1RGX1JFTEVBU0VTX0xPQ0soKQogICAgIHsKKyAgICAgICAgaWYgKG1f
aXNMb2NrZWQpCisgICAgICAgICAgICBtX2xvY2sudW5sb2NrKCk7CisgICAgfQorICAgIGJvb2wg
dHJ5TG9jaygpIFdURl9UUllfQUNRVUlSRV9MT0NLKHRydWUpCisgICAgeworICAgICAgICBBU1NF
UlQoIW1faXNMb2NrZWQpOworICAgICAgICByZXR1cm4gbV9pc0xvY2tlZCA9IG1fbG9jay50cnlM
b2NrKCk7CisgICAgfQorICAgIHZvaWQgbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLKCkKKyAgICB7
CisgICAgICAgIEFTU0VSVCghbV9pc0xvY2tlZCk7CisgICAgICAgIG1fbG9jay5sb2NrKCk7Cisg
ICAgICAgIG1faXNMb2NrZWQgPSB0cnVlOworICAgIH0KKyAgICB2b2lkIHVubG9jaygpIFdURl9S
RUxFQVNFU19MT0NLKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2lzTG9ja2VkKTsKICAgICAg
ICAgbV9sb2NrLnVubG9jaygpOworICAgICAgICBtX2lzTG9ja2VkID0gZmFsc2U7CiAgICAgfQor
CisgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNMb2NrZWQ7
IH0KKwogICAgIExvY2tlcihjb25zdCBMb2NrZXI8Q2hlY2tlZExvY2s+JikgPSBkZWxldGU7CiAg
ICAgTG9ja2VyJiBvcGVyYXRvcj0oY29uc3QgTG9ja2VyPENoZWNrZWRMb2NrPiYpID0gZGVsZXRl
OworCiBwcml2YXRlOgogICAgIENoZWNrZWRMb2NrJiBtX2xvY2s7CisgICAgYm9vbCBtX2lzTG9j
a2VkIHsgZmFsc2UgfTsKIH07CiAKIExvY2tlcihDaGVja2VkTG9jayYpIC0+IExvY2tlcjxDaGVj
a2VkTG9jaz47CiBMb2NrZXIoQWRvcHRMb2NrVGFnLCBDaGVja2VkTG9jayYpIC0+IExvY2tlcjxD
aGVja2VkTG9jaz47CitMb2NrZXIoRGVmZXJMb2NrVGFnLCBDaGVja2VkTG9jayYpIC0+IExvY2tl
cjxDaGVja2VkTG9jaz47CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6OmFzc2Vy
dElzSGVsZDsKIHVzaW5nIFdURjo6Q2hlY2tlZExvY2s7Ci11c2luZyBXVEY6OkFkb3B0TG9ja1Rh
ZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2tlci5oIGIvU291cmNlL1dURi93dGYv
TG9ja2VyLmgKaW5kZXggOGIwZTE5MmI1ZWJhNGI4ODc2M2E4NDRkMWVjMGNiYTE0YzBjOTg4YS4u
MGRhYWZlMDQ0NmVjYzlmZTdiOGZlMzNlNDdiYTg4ODJlZjMzYzc3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvTG9ja2VyLmgKKysrIGIvU291cmNlL1dURi93dGYvTG9ja2VyLmgKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRl
IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8
d3RmL0NvbXBpbGVyLmg+CkBAIC01NCwxMSArNTUsMTggQEAgcHJvdGVjdGVkOgogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBjbGFzcyBEcm9wTG9ja0ZvclNjb3BlOwogCit1c2luZyBBZG9wdExvY2tU
YWcgPSBzdGQ6OmFkb3B0X2xvY2tfdDsKK2NvbnN0ZXhwciBBZG9wdExvY2tUYWcgQWRvcHRMb2Nr
ID0gQWRvcHRMb2NrVGFnKCk7Cit1c2luZyBEZWZlckxvY2tUYWcgPSBzdGQ6OmRlZmVyX2xvY2tf
dDsKK2NvbnN0ZXhwciBEZWZlckxvY2tUYWcgRGVmZXJMb2NrID0gRGVmZXJMb2NrVGFnKCk7CisK
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBjbGFzcyBMb2NrZXIgOiBwdWJsaWMgQWJzdHJhY3RMb2Nr
ZXIgewogcHVibGljOgogICAgIGV4cGxpY2l0IExvY2tlcihUJiBsb2NrYWJsZSkgOiBtX2xvY2th
YmxlKCZsb2NrYWJsZSkgeyBsb2NrKCk7IH0KICAgICBleHBsaWNpdCBMb2NrZXIoVCogbG9ja2Fi
bGUpIDogbV9sb2NrYWJsZShsb2NrYWJsZSkgeyBsb2NrKCk7IH0KKyAgICBMb2NrZXIoQWRvcHRM
b2NrVGFnLCBUJiBsb2NrYWJsZSkgOiBtX2xvY2thYmxlKCZsb2NrYWJsZSksIG1faXNMb2NrZWQo
dHJ1ZSkgeyB9CisgICAgTG9ja2VyKERlZmVyTG9ja1RhZywgVCYgbG9ja2FibGUpIDogbV9sb2Nr
YWJsZSgmbG9ja2FibGUpIHsgfQogCiAgICAgLy8gWW91IHNob3VsZCBiZSB3YXJ5IG9mIHVzaW5n
IHRoaXMgY29uc3RydWN0b3IuIEl0J3Mgb25seSBhcHBsaWNhYmxlCiAgICAgLy8gaW4gcGxhY2Vz
IHdoZXJlIHRoZXJlIGlzIGEgbG9ja2luZyBwcm90b2NvbCBmb3IgYSBwYXJ0aWN1bGFyIG9iamVj
dApAQCAtNjYsODQgKzc0LDc0IEBAIHB1YmxpYzoKICAgICAvLyB0aGlzIG9mdGVuIGhhcHBlbnMg
d2hlbiBhbiBvYmplY3QgaXMgbmV3bHkgYWxsb2NhdGVkIGFuZCBpdCBjYW4gbm90CiAgICAgLy8g
YmUgYWNjZXNzZWQgY29uY3VycmVudGx5LgogICAgIExvY2tlcihOb0xvY2tpbmdOZWNlc3NhcnlU
YWcpIDogbV9sb2NrYWJsZShudWxscHRyKSB7IH0KLSAgICAKKwogICAgIExvY2tlcihzdGQ6OnVu
ZGVybHlpbmdfdHlwZV90PE5vTG9ja2luZ05lY2Vzc2FyeVRhZz4pID0gZGVsZXRlOwogCiAgICAg
fkxvY2tlcigpCiAgICAgewotICAgICAgICB1bmxvY2soKTsKKyAgICAgICAgaWYgKG1faXNMb2Nr
ZWQpCisgICAgICAgICAgICB1bmxvY2soKTsKKyAgICB9CisKKyAgICBib29sIHRyeUxvY2soKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKG1fbG9ja2FibGUpOworICAgICAgICBBU1NFUlQoIW1faXNM
b2NrZWQpOworICAgICAgICBpZiAoIW1fbG9ja2FibGUgfHwgIW1fbG9ja2FibGUtPnRyeUxvY2so
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgbV9pc0xvY2tlZCA9IHRydWU7
CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgTG9ja2VyIHRy
eUxvY2soVCYgbG9ja2FibGUpCisgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsg
cmV0dXJuIG1faXNMb2NrZWQ7IH0KKworICAgIHZvaWQgdW5sb2NrKCkKICAgICB7Ci0gICAgICAg
IExvY2tlciByZXN1bHQoTm9Mb2NraW5nTmVjZXNzYXJ5KTsKLSAgICAgICAgaWYgKGxvY2thYmxl
LnRyeUxvY2soKSkgewotICAgICAgICAgICAgcmVzdWx0Lm1fbG9ja2FibGUgPSAmbG9ja2FibGU7
Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICBBU1NFUlQobV9pc0xvY2tlZCk7
CisgICAgICAgIGNvbXBpbGVyRmVuY2UoKTsKKyAgICAgICAgaWYgKG1fbG9ja2FibGUpIHsKKyAg
ICAgICAgICAgIFRTQU5fQU5OT1RBVEVfSEFQUEVOU19CRUZPUkUobV9sb2NrYWJsZSk7CisgICAg
ICAgICAgICBtX2xvY2thYmxlLT51bmxvY2soKTsKKyAgICAgICAgICAgIG1faXNMb2NrZWQgPSBm
YWxzZTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIFQq
IGxvY2thYmxlKCkgeyByZXR1cm4gbV9sb2NrYWJsZTsgfQotICAgIAotICAgIGV4cGxpY2l0IG9w
ZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiAhIW1fbG9ja2FibGU7IH0KLSAgICAKLSAgICB2
b2lkIHVubG9ja0Vhcmx5KCkKKyAgICB2b2lkIGxvY2soKQogICAgIHsKLSAgICAgICAgdW5sb2Nr
KCk7Ci0gICAgICAgIG1fbG9ja2FibGUgPSBudWxscHRyOworICAgICAgICBBU1NFUlQoIW1faXNM
b2NrZWQpOworICAgICAgICBpZiAobV9sb2NrYWJsZSkgeworICAgICAgICAgICAgbV9sb2NrYWJs
ZS0+bG9jaygpOworICAgICAgICAgICAgVFNBTl9BTk5PVEFURV9IQVBQRU5TX0FGVEVSKG1fbG9j
a2FibGUpOworICAgICAgICAgICAgbV9pc0xvY2tlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICAg
ICAgY29tcGlsZXJGZW5jZSgpOwogICAgIH0KICAgICAKICAgICAvLyBJdCdzIGdyZWF0IHRvIGJl
IGFibGUgdG8gcGFzcyBsb2NrZXJzIGFyb3VuZC4gSXQgZW5hYmxlcyBjdXN0b20gbG9ja2luZyBh
ZGFwdG9ycyBsaWtlCiAgICAgLy8gSlNDOjpMb2NrRHVyaW5nTWFya2luZy4KICAgICBMb2NrZXIo
TG9ja2VyJiYgb3RoZXIpCi0gICAgICAgIDogbV9sb2NrYWJsZShvdGhlci5tX2xvY2thYmxlKQor
ICAgICAgICA6IG1fbG9ja2FibGUoc3RkOjpleGNoYW5nZShvdGhlci5tX2xvY2thYmxlLCBudWxs
cHRyKSkKKyAgICAgICAgLCBtX2lzTG9ja2VkKHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9pc0xvY2tl
ZCwgZmFsc2UpKQogICAgIHsKICAgICAgICAgQVNTRVJUKCZvdGhlciAhPSB0aGlzKTsKLSAgICAg
ICAgb3RoZXIubV9sb2NrYWJsZSA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIExvY2tlciYg
b3BlcmF0b3I9KExvY2tlciYmIG90aGVyKQogICAgIHsKICAgICAgICAgQVNTRVJUKCZvdGhlciAh
PSB0aGlzKTsKLSAgICAgICAgbV9sb2NrYWJsZSA9IG90aGVyLm1fbG9ja2FibGU7Ci0gICAgICAg
IG90aGVyLm1fbG9ja2FibGUgPSBudWxscHRyOworICAgICAgICBtX2xvY2thYmxlID0gc3RkOjpl
eGNoYW5nZShvdGhlci5tX2xvY2thYmxlLCBudWxscHRyKTsKKyAgICAgICAgbV9pc0xvY2tlZCA9
IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9pc0xvY2tlZCwgZmFsc2UpOwogICAgICAgICByZXR1cm4g
KnRoaXM7CiAgICAgfQogICAgIAogcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZT4KICAg
ICBmcmllbmQgY2xhc3MgRHJvcExvY2tGb3JTY29wZTsKLQotICAgIHZvaWQgdW5sb2NrKCkKLSAg
ICB7Ci0gICAgICAgIGNvbXBpbGVyRmVuY2UoKTsKLSAgICAgICAgaWYgKG1fbG9ja2FibGUpIHsK
LSAgICAgICAgICAgIFRTQU5fQU5OT1RBVEVfSEFQUEVOU19CRUZPUkUobV9sb2NrYWJsZSk7Ci0g
ICAgICAgICAgICBtX2xvY2thYmxlLT51bmxvY2soKTsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IHZvaWQgbG9jaygpCi0gICAgewotICAgICAgICBpZiAobV9sb2NrYWJsZSkgewotICAgICAgICAg
ICAgbV9sb2NrYWJsZS0+bG9jaygpOwotICAgICAgICAgICAgVFNBTl9BTk5PVEFURV9IQVBQRU5T
X0FGVEVSKG1fbG9ja2FibGUpOwotICAgICAgICB9Ci0gICAgICAgIGNvbXBpbGVyRmVuY2UoKTsK
LSAgICB9CiAgICAgCi0gICAgVCogbV9sb2NrYWJsZTsKKyAgICBUKiBtX2xvY2thYmxlIHsgbnVs
bHB0ciB9OworICAgIGJvb2wgbV9pc0xvY2tlZCB7IGZhbHNlIH07CiB9OwogCi10ZW1wbGF0ZTx0
eXBlbmFtZSBMb2NrVHlwZT4KLUxvY2tlcjxMb2NrVHlwZT4gdHJ5SG9sZExvY2soTG9ja1R5cGUm
KSBXQVJOX1VOVVNFRF9SRVRVUk47Ci10ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4KLUxvY2tl
cjxMb2NrVHlwZT4gdHJ5SG9sZExvY2soTG9ja1R5cGUmIGxvY2spCi17Ci0gICAgcmV0dXJuIExv
Y2tlcjxMb2NrVHlwZT46OnRyeUxvY2sobG9jayk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIExv
Y2tUeXBlPgogY2xhc3MgRHJvcExvY2tGb3JTY29wZSA6IHByaXZhdGUgQWJzdHJhY3RMb2NrZXIg
ewogICAgIFdURl9GT1JCSURfSEVBUF9BTExPQ0FUSU9OKERyb3BMb2NrRm9yU2NvcGUpOwpAQCAt
MTY2LDYgKzE2NCw4IEBAIHByaXZhdGU6CiB9CiAKIHVzaW5nIFdURjo6QWJzdHJhY3RMb2NrZXI7
Cit1c2luZyBXVEY6OkFkb3B0TG9jazsKK3VzaW5nIFdURjo6RGVmZXJMb2NrOwogdXNpbmcgV1RG
OjpMb2NrZXI7CiB1c2luZyBXVEY6Ok5vTG9ja2luZ05lY2Vzc2FyeVRhZzsKIHVzaW5nIFdURjo6
Tm9Mb2NraW5nTmVjZXNzYXJ5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9nZ2VyLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAppbmRleCBlOTlkNDliZjJlOWQ5YWQyYTZiM2I2MTgw
ZGNiZDk4Y2Q3ODVmYTU0Li40MTRkZDU4ODU5OGYzOTUzOTI2NDQ0ZDEzNTEzMjE0MTk4MGNjODZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9Mb2dnZXIuaApAQCAtMzI1LDcgKzMyNSw4IEBAIHByaXZhdGU6CiAgICAgICAgIGlmICghb2Jz
ZXJ2ZXJMb2NrKCkudHJ5TG9jaygpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIExv
Y2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBvYnNlcnZlckxvY2soKSB9OworICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBvYnNlcnZlckxvY2soKSB9OworCiAgICAgICAg
IGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogb2JzZXJ2ZXJzKCkpCiAgICAgICAgICAgICBvYnNl
cnZlci5kaWRMb2dNZXNzYWdlKGNoYW5uZWwsIGxldmVsLCB7IENvbnNvbGVMb2dWYWx1ZTxBcmd1
bWVudD46OnRvVmFsdWUoYXJndW1lbnRzKS4uLiB9KTsKICAgICB9CkBAIC0zNTYsNyArMzU3LDgg
QEAgcHJpdmF0ZToKICAgICAgICAgaWYgKCFvYnNlcnZlckxvY2soKS50cnlMb2NrKCkpCiAgICAg
ICAgICAgICByZXR1cm47CiAKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7
IH0sIG9ic2VydmVyTG9jaygpIH07CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ss
IG9ic2VydmVyTG9jaygpIH07CisKICAgICAgICAgZm9yIChPYnNlcnZlciYgb2JzZXJ2ZXIgOiBv
YnNlcnZlcnMoKSkKICAgICAgICAgICAgIG9ic2VydmVyLmRpZExvZ01lc3NhZ2UoY2hhbm5lbCwg
bGV2ZWwsIHsgQ29uc29sZUxvZ1ZhbHVlPEFyZ3VtZW50Pjo6dG9WYWx1ZShhcmd1bWVudHMpLi4u
IH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZFNhZmV0eUFuYWx5
c2lzLmggYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRTYWZldHlBbmFseXNpcy5oCmluZGV4IDAzYWMx
NWE5MzNlNzBmYzFhMWZmMDQ3OGYwYjk5M2NlMThkNDk3ZWMuLjdkOGRlZjFmYmIxYjIxM2NjYzc0
ZDAzYjIxMWEzYTg4OWIxZWQzODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZFNh
ZmV0eUFuYWx5c2lzLmgKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkU2FmZXR5QW5hbHlzaXMu
aApAQCAtMzUsOSArMzUsOSBAQAogI2RlZmluZSBXVEZfVEhSRUFEX0FOTk9UQVRJT05fQVRUUklC
VVRFKHgpCiAjZW5kaWYKIAotI2RlZmluZSBXVEZfQUNRVUlSRVNfTE9DS19JRiguLi4pIFdURl9U
SFJFQURfQU5OT1RBVElPTl9BVFRSSUJVVEUodHJ5X2FjcXVpcmVfY2FwYWJpbGl0eShfX1ZBX0FS
R1NfXykpCisjZGVmaW5lIFdURl9UUllfQUNRVUlSRV9MT0NLKC4uLikgV1RGX1RIUkVBRF9BTk5P
VEFUSU9OX0FUVFJJQlVURSh0cnlfYWNxdWlyZV9jYXBhYmlsaXR5KF9fVkFfQVJHU19fKSkKICNk
ZWZpbmUgV1RGX0FDUVVJUkVTX0xPQ0soLi4uKSBXVEZfVEhSRUFEX0FOTk9UQVRJT05fQVRUUklC
VVRFKGFjcXVpcmVfY2FwYWJpbGl0eShfX1ZBX0FSR1NfXykpCi0jZGVmaW5lIFdURl9BQ1FVSVJF
U19TSEFSRURfTE9DS19JRiguLi4pIFdURl9USFJFQURfQU5OT1RBVElPTl9BVFRSSUJVVEUodHJ5
X2FjcXVpcmVfc2hhcmVkX2NhcGFiaWxpdHkoX19WQV9BUkdTX18pKQorI2RlZmluZSBXVEZfVFJZ
X0FDUVVJUkVfU0hBUkVEX0xPQ0soLi4uKSBXVEZfVEhSRUFEX0FOTk9UQVRJT05fQVRUUklCVVRF
KHRyeV9hY3F1aXJlX3NoYXJlZF9jYXBhYmlsaXR5KF9fVkFfQVJHU19fKSkKICNkZWZpbmUgV1RG
X0FDUVVJUkVTX1NIQVJFRF9MT0NLKC4uLikgV1RGX1RIUkVBRF9BTk5PVEFUSU9OX0FUVFJJQlVU
RShhY3F1aXJlX3NoYXJlZF9jYXBhYmlsaXR5KF9fVkFfQVJHU19fKSkKICNkZWZpbmUgV1RGX0FT
U0VSVFNfQUNRVUlSRURfTE9DSyh4KSBXVEZfVEhSRUFEX0FOTk9UQVRJT05fQVRUUklCVVRFKGFz
c2VydF9jYXBhYmlsaXR5KHgpKQogI2RlZmluZSBXVEZfQVNTRVJUU19BQ1FVSVJFRF9TSEFSRURf
TE9DSyh4KSBXVEZfVEhSRUFEX0FOTk9UQVRJT05fQVRUUklCVVRFKGFzc2VydF9zaGFyZWRfY2Fw
YWJpbGl0eSh4KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKaW5kZXgg
MTg0NDAyMWU2ZjFhYzQ0ZmU2MzI1YzYyOGJhZTZmOGUxN2ZiYTY3MC4uZjQyNDIzOWY0MzQ1YzY1
Y2NjNDA3MDhhMmZjYzk2MTdjNTE5ZDgyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbC5jcHAKQEAgLTg1LDExICs4NSwxMCBAQCBib29sIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UoY29uc3QgQ0FBdWRpb1N0cmVhbURlcwog
ewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogCi0gICAgaWYgKCFtX2RhdGFTb3VyY2VM
b2NrLnRyeUxvY2soKSkKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX2RhdGFTb3Vy
Y2VMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9kYXRhU291cmNl
TG9jayB9OwotCiAgICAgYXV0byBkYXRhU291cmNlID0gQXVkaW9TYW1wbGVEYXRhU291cmNlOjpj
cmVhdGUoYXVkaW9EZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAxLCBtX3NvdXJjZS5nZXQoKSk7
CiAgICAgaWYgKGRhdGFTb3VyY2UtPnNldElucHV0Rm9ybWF0KGF1ZGlvRGVzY3JpcHRpb24pKSB7
CiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIo
dGhpcyldIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9CdWZmZXJTb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAppbmRleCA2MzNjNTA2YTAwNzY3ZmZiODg1OGNiMDYw
ZjUxZDc2OTk2YmExNzJhLi5mYjRjNDRmN2RmYzYxYjJjNGYxODYwNzI4ZGI2NDc4OTU5ZjFhMGRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVy
U291cmNlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b0J1ZmZlclNvdXJjZU5vZGUuY3BwCkBAIC0xMDIsMTAgKzEwMiwxMCBAQCB2b2lkIEF1ZGlvQnVm
ZmVyU291cmNlTm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0
aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlIb2xkTG9jaygpIGluc3RlYWQuCi0gICAgYXV0byBsb2Nr
ZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgewotICAg
ICAgICAvLyBUb28gYmFkIC0gdHJ5SG9sZExvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhl
IG1pZGRsZSBvZiBjaGFuZ2luZyBidWZmZXJzIGFuZCB3ZXJlIGFscmVhZHkgb3V0cHV0dGluZyBz
aWxlbmNlIGFueXdheS4KKyAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRo
aXMgbG9jaywgc28gd2UgdXNlIHRyeUxvY2soKSBpbnN0ZWFkLgorICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkp
IHsKKyAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUxvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4g
dGhlIG1pZGRsZSBvZiBjaGFuZ2luZyBidWZmZXJzIGFuZCB3ZXJlIGFscmVhZHkgb3V0cHV0dGlu
ZyBzaWxlbmNlIGFueXdheS4KICAgICAgICAgb3V0cHV0QnVzLnplcm8oKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2Rl
LmNwcAppbmRleCBmZWJhMzMwZWQwMjBhN2E2OWE0NDNmMzIyZWRhZGQ3ZTFhOTZkNmVjLi5iMmJj
Y2YwMjM4OGUxN2U1ZmJhNzhiOTAwYjA4NDJiMzAzNjhjN2M2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwCkBAIC01NzgsMTMgKzU3OCwxNSBAQCB2
b2lkIEF1ZGlvTm9kZTo6ZGVjcmVtZW50Q29ubmVjdGlvbkNvdW50KCkKIHsKICAgICAvLyBUaGUg
YWN0dWFsbHkgd29yayBmb3IgZGVyZWYgaGFwcGVucyBjb21wbGV0ZWx5IHdpdGhpbiB0aGUgYXVk
aW8gY29udGV4dCdzIGdyYXBoIGxvY2suCiAgICAgLy8gSW4gdGhlIGNhc2Ugb2YgdGhlIGF1ZGlv
IHRocmVhZCwgd2UgbXVzdCB1c2UgYSB0cnlMb2NrIHRvIGF2b2lkIGdsaXRjaGVzLgotICAgIGlm
IChhdXRvIGxvY2tlciA9IGNvbnRleHQoKS5pc0F1ZGlvVGhyZWFkKCkgPyBMb2NrZXI8UmVjdXJz
aXZlTG9jaz46OnRyeUxvY2soY29udGV4dCgpLmdyYXBoTG9jaygpKSA6IExvY2tlciB7IGNvbnRl
eHQoKS5ncmFwaExvY2soKSB9KSB7Ci0gICAgICAgIC8vIFRoaXMgaXMgd2hlcmUgdGhlIHJlYWwg
ZGVyZWYgd29yayBoYXBwZW5zLgotICAgICAgICBkZWNyZW1lbnRDb25uZWN0aW9uQ291bnRXaXRo
TG9jaygpOworICAgIGlmIChjb250ZXh0KCkuaXNBdWRpb1RocmVhZCgpKSB7CisgICAgICAgIExv
Y2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIGNvbnRleHQoKS5ncmFwaExvY2soKSB9OworICAgICAg
ICBpZiAobG9ja2VyLnRyeUxvY2soKSkKKyAgICAgICAgICAgIGRlY3JlbWVudENvbm5lY3Rpb25D
b3VudFdpdGhMb2NrKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNvbnRleHQoKS5hZGRE
ZWZlcnJlZERlY3JlbWVudENvbm5lY3Rpb25Db3VudCh0aGlzKTsKICAgICB9IGVsc2UgewotICAg
ICAgICAvLyBXZSB3ZXJlIHVuYWJsZSB0byBnZXQgdGhlIGxvY2ssIHNvIHB1dCB0aGlzIGluIGEg
bGlzdCB0byBmaW5pc2ggdXAgbGF0ZXIuCi0gICAgICAgIEFTU0VSVChjb250ZXh0KCkuaXNBdWRp
b1RocmVhZCgpKTsKLSAgICAgICAgY29udGV4dCgpLmFkZERlZmVycmVkRGVjcmVtZW50Q29ubmVj
dGlvbkNvdW50KHRoaXMpOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgY29udGV4dCgpLmdyYXBo
TG9jaygpIH07CisgICAgICAgIGRlY3JlbWVudENvbm5lY3Rpb25Db3VudFdpdGhMb2NrKCk7CiAg
ICAgfQogCiAgICAgLy8gT25jZSBBdWRpb0NvbnRleHQ6OnVuaW5pdGlhbGl6ZSgpIGlzIGNhbGxl
ZCB0aGVyZSdzIG5vIG1vcmUgY2hhbmNlcyBmb3IgZGVsZXRlTWFya2VkTm9kZXMoKSB0byBnZXQg
Y2FsbGVkLCBzbyB3ZSBjYWxsIGhlcmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAKaW5kZXggMDQwNmVhYjc3MTBlOGVk
OTdkZTg5ODNhMjAwZTUxNTZjMjI5ZWFhZi4uMjg0M2YyMzk2YzU5OWRiNDM1NTA5YTQ5NzQ3NDhi
YmIwMTE3MWFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1BhcmFtVGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNwcApAQCAtMzI3LDkgKzMyNyw5IEBAIHZvaWQgQXVkaW9Q
YXJhbVRpbWVsaW5lOjpyZW1vdmVDYW5jZWxsZWRFdmVudHMoc2l6ZV90IGZpcnN0RXZlbnRUb1Jl
bW92ZSkKIE9wdGlvbmFsPGZsb2F0PiBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlRm9yQ29udGV4
dFRpbWUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwgZmxvYXQgZGVmYXVsdFZhbHVlLCBmbG9h
dCBtaW5WYWx1ZSwgZmxvYXQgbWF4VmFsdWUpCiB7CiAgICAgewotICAgICAgICBpZiAoIW1fZXZl
bnRzTG9jay50cnlMb2NrKCkpCisgICAgICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1f
ZXZlbnRzTG9jayB9OworICAgICAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgICAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2Nr
VGFnIHsgfSwgbV9ldmVudHNMb2NrIH07CiAgICAgICAgIGlmICghbV9ldmVudHMuc2l6ZSgpIHx8
IFNlY29uZHMgeyBjb250ZXh0LmN1cnJlbnRUaW1lKCkgfSA8IG1fZXZlbnRzWzBdLnRpbWUoKSkK
ICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgfQpAQCAtMzQ3LDExICszNDcs
MTEgQEAgT3B0aW9uYWw8ZmxvYXQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVGb3JDb250ZXh0
VGltZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXgKIGZsb2F0IEF1ZGlvUGFyYW1UaW1lbGluZTo6
dmFsdWVzRm9yRnJhbWVSYW5nZShzaXplX3Qgc3RhcnRGcmFtZSwgc2l6ZV90IGVuZEZyYW1lLCBm
bG9hdCBkZWZhdWx0VmFsdWUsIGZsb2F0IG1pblZhbHVlLCBmbG9hdCBtYXhWYWx1ZSwgZmxvYXQq
IHZhbHVlcywgdW5zaWduZWQgbnVtYmVyT2ZWYWx1ZXMsIGRvdWJsZSBzYW1wbGVSYXRlLCBkb3Vi
bGUgY29udHJvbFJhdGUpCiB7CiAgICAgLy8gV2UgY2FuJ3QgY29udGVuZCB0aGUgbG9jayBpbiB0
aGUgcmVhbHRpbWUgYXVkaW8gdGhyZWFkLgotICAgIGlmICghbV9ldmVudHNMb2NrLnRyeUxvY2so
KSkgeworICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fZXZlbnRzTG9jayB9OworICAg
IGlmICghbG9ja2VyLnRyeUxvY2soKSkgewogICAgICAgICBzdGQ6OmZpbGxfbih2YWx1ZXMsIG51
bWJlck9mVmFsdWVzLCBkZWZhdWx0VmFsdWUpOwogICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVl
OwogICAgIH0KLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9ldmVudHNM
b2NrIH07CiAKICAgICBmbG9hdCB2YWx1ZSA9IHZhbHVlc0ZvckZyYW1lUmFuZ2VJbXBsKHN0YXJ0
RnJhbWUsIGVuZEZyYW1lLCBkZWZhdWx0VmFsdWUsIHZhbHVlcywgbnVtYmVyT2ZWYWx1ZXMsIHNh
bXBsZVJhdGUsIGNvbnRyb2xSYXRlKTsKIApAQCAtOTg2LDkgKzk4Niw5IEBAIGJvb2wgQXVkaW9Q
YXJhbVRpbWVsaW5lOjppc0V2ZW50Q3VycmVudChjb25zdCBQYXJhbUV2ZW50JiBldmVudCwgY29u
c3QgUGFyYW1FdmVuCiAKIGJvb2wgQXVkaW9QYXJhbVRpbWVsaW5lOjpoYXNWYWx1ZXMoc2l6ZV90
IHN0YXJ0RnJhbWUsIGRvdWJsZSBzYW1wbGVSYXRlKSBjb25zdAogewotICAgIGlmICghbV9ldmVu
dHNMb2NrLnRyeUxvY2soKSkKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX2V2ZW50
c0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybiB0cnVl
OwotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2V2ZW50c0xvY2sgfTsK
IAogICAgIC8vIFJldHVybiBmYWxzZSBpZiB0aGVyZSBhcmUgbm8gZXZlbnRzIGluIHRoZSB0aW1l
IHJhbmdlLgogICAgIGF1dG8gZW5kRnJhbWUgPSBzdGFydEZyYW1lICsgQXVkaW9VdGlsaXRpZXM6
OnJlbmRlclF1YW50dW1TaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKaW5kZXggMzQ5NjI2ZmE0ZDQzZWQyNTNmY2Y5MDcz
MmI2NDJhZjJiYzVhYTQ2MC4uYmM5MDk5NTlkNTNjNGRiY2QxZDNjNzg4ZTViMDc5NjdjNWE5ODU3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldE5vZGUuY3BwCkBAIC0xOTEsOCArMTkxLDggQEAgdm9pZCBBdWRpb1dvcmtsZXROb2RlOjpw
cm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJl
YWQoKSk7CiAKLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwot
ICAgIGlmICghbG9ja2VyIHx8ICFtX3Byb2Nlc3NvciB8fCAmVGhyZWFkOjpjdXJyZW50KCkgIT0g
bV93b3JrbGV0VGhyZWFkKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9j
ZXNzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSB8fCAhbV9wcm9jZXNzb3IgfHwg
JlRocmVhZDo6Y3VycmVudCgpICE9IG1fd29ya2xldFRocmVhZCkgewogICAgICAgICAvLyBXZSdy
ZSBub3QgcmVhZHkgeWV0IG9yIHdlIGFyZSBnZXR0aW5nIGRlc3Ryb3llZC4gSW4gdGhpcyBjYXNl
LCB3ZSBvdXRwdXQgc2lsZW5jZS4KICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51
bWJlck9mT3V0cHV0cygpOyArK2kpCiAgICAgICAgICAgICBvdXRwdXQoaSktPmJ1cygpLT56ZXJv
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRp
b0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9D
b250ZXh0LmNwcAppbmRleCBlMjAyZDdkMjYyYWQwNjQ3YmRhNzZmYmE1MjdmMGE1YTE2MjFhNzgw
Li44ZTRjM2Q2MjIwMjVlOWFjZmUxNDNkOTIzZWZkMWY2YzExNmZmZmE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKQEAg
LTU2MCwxNCArNTYwLDE2IEBAIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6aGFuZGxlUHJlUmVuZGVy
VGFza3MoY29uc3QgQXVkaW9JT1Bvc2l0aW9uJiBvdXRwdXRQb3NpdGlvCiAKICAgICAvLyBBdCB0
aGUgYmVnaW5uaW5nIG9mIGV2ZXJ5IHJlbmRlciBxdWFudHVtLCB0cnkgdG8gdXBkYXRlIHRoZSBp
bnRlcm5hbCByZW5kZXJpbmcgZ3JhcGggc3RhdGUgKGZyb20gbWFpbiB0aHJlYWQgY2hhbmdlcyku
CiAgICAgLy8gSXQncyBPSyBpZiB0aGUgdHJ5TG9jaygpIGZhaWxzLCB3ZSdsbCBqdXN0IHRha2Ug
c2xpZ2h0bHkgbG9uZ2VyIHRvIHBpY2sgdXAgdGhlIGNoYW5nZXMuCi0gICAgaWYgKGF1dG8gbG9j
a2VyID0gTG9ja2VyPFJlY3Vyc2l2ZUxvY2s+Ojp0cnlMb2NrKGdyYXBoTG9jaygpKSkgewotICAg
ICAgICAvLyBGaXh1cCB0aGUgc3RhdGUgb2YgYW55IGRpcnR5IEF1ZGlvU3VtbWluZ0p1bmN0aW9u
cyBhbmQgQXVkaW9Ob2RlT3V0cHV0cy4KLSAgICAgICAgaGFuZGxlRGlydHlBdWRpb1N1bW1pbmdK
dW5jdGlvbnMoKTsKLSAgICAgICAgaGFuZGxlRGlydHlBdWRpb05vZGVPdXRwdXRzKCk7CisgICAg
TG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgZ3JhcGhMb2NrKCkgfTsKKyAgICBpZiAoIWxvY2tl
ci50cnlMb2NrKCkpCisgICAgICAgIHJldHVybjsKIAotICAgICAgICB1cGRhdGVBdXRvbWF0aWNQ
dWxsTm9kZXMoKTsKLSAgICAgICAgbV9vdXRwdXRQb3NpdGlvbiA9IG91dHB1dFBvc2l0aW9uOwot
ICAgIH0KKyAgICAvLyBGaXh1cCB0aGUgc3RhdGUgb2YgYW55IGRpcnR5IEF1ZGlvU3VtbWluZ0p1
bmN0aW9ucyBhbmQgQXVkaW9Ob2RlT3V0cHV0cy4KKyAgICBoYW5kbGVEaXJ0eUF1ZGlvU3VtbWlu
Z0p1bmN0aW9ucygpOworICAgIGhhbmRsZURpcnR5QXVkaW9Ob2RlT3V0cHV0cygpOworCisgICAg
dXBkYXRlQXV0b21hdGljUHVsbE5vZGVzKCk7CisgICAgbV9vdXRwdXRQb3NpdGlvbiA9IG91dHB1
dFBvc2l0aW9uOwogfQogCiBBdWRpb0lPUG9zaXRpb24gQmFzZUF1ZGlvQ29udGV4dDo6b3V0cHV0
UG9zaXRpb24oKQpAQCAtNTg0LDggKzU4Niw4IEBAIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6aGFu
ZGxlUG9zdFJlbmRlclRhc2tzKCkKICAgICAvLyBNdXN0IHVzZSBhIHRyeUxvY2soKSBoZXJlIHRv
by4gRG9uJ3Qgd29ycnksIHRoZSBsb2NrIHdpbGwgdmVyeSByYXJlbHkgYmUgY29udGVuZGVkIGFu
ZCB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgZnJlcXVlbnRseS4KICAgICAvLyBUaGUgd29yc3QgdGhh
dCBjYW4gaGFwcGVuIGlzIHRoYXQgdGhlcmUgd2lsbCBiZSBzb21lIG5vZGVzIHdoaWNoIHdpbGwg
dGFrZSBzbGlnaHRseSBsb25nZXIgdGhhbiB1c3VhbCB0byBiZSBkZWxldGVkIG9yIHJlbW92ZWQK
ICAgICAvLyBmcm9tIHRoZSByZW5kZXIgZ3JhcGggKGluIHdoaWNoIGNhc2UgdGhleSdsbCByZW5k
ZXIgc2lsZW5jZSkuCi0gICAgYXV0byBsb2NrZXIgPSBMb2NrZXI8UmVjdXJzaXZlTG9jaz46OnRy
eUxvY2soZ3JhcGhMb2NrKCkpOwotICAgIGlmICghbG9ja2VyKQorICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIGdyYXBoTG9jaygpIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQog
ICAgICAgICByZXR1cm47CiAKICAgICAvLyBUYWtlIGNhcmUgb2YgZmluaXNoaW5nIGFueSBkZXJl
ZnMgd2hlcmUgdGhlIHRyeUxvY2soKSBmYWlsZWQgcHJldmlvdXNseS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwCmluZGV4IDU5NzFmZDAw
MjI1YmNhY2NjMGU1MzczZTY3MDJkYjRjZDI5ZTg1MDAuLjFiYzlmMmVjZjZlNTMxZDFjMTA0N2Q0
NWFiZGM3Yzc4ZGFlN2MxZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQ29udm9sdmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9Db252b2x2ZXJOb2RlLmNwcApAQCAtOTIsOSArOTIsOSBAQCB2b2lkIENvbnZvbHZlck5v
ZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICBBU1NFUlQob3V0cHV0QnVz
KTsKIAogICAgIC8vIFN5bmNocm9uaXplIHdpdGggcG9zc2libGUgZHluYW1pYyBjaGFuZ2VzIHRv
IHRoZSBpbXB1bHNlIHJlc3BvbnNlLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9w
cm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKLSAgICAgICAgLy8gVG9vIGJhZCAtIHRy
eUhvbGRMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2Ygc2V0dGluZyBh
IG5ldyBpbXB1bHNlIHJlc3BvbnNlLgorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1f
cHJvY2Vzc0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpIHsKKyAgICAgICAgLy8g
VG9vIGJhZCAtIHRyeUxvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBz
ZXR0aW5nIGEgbmV3IGltcHVsc2UgcmVzcG9uc2UuCiAgICAgICAgIG91dHB1dEJ1cy0+emVybygp
OwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwCmlu
ZGV4IGExYTQ2YTY3ZWVhMjNjNTU5MjEzYTczMDg4ODJjZTUwNjc0YmIyNjQuLmNkYjNhNzM3ZDVh
NDZjMzJjMDgwZDBmMmE0MDhkNzYxMDE3YmE5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9k
ZS5jcHAKQEAgLTE1NSwxMSArMTU1LDExIEBAIHZvaWQgTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VO
b2RlOjpwcm9jZXNzKHNpemVfdCBudW1iZXJPZkZyYW1lcykKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIC8vIFVzZSB0cnlIb2xkTG9jaygpIHRvIGF2b2lkIGNvbnRlbnRpb24gaW4gdGhl
IHJlYWwtdGltZSBhdWRpbyB0aHJlYWQuCisgICAgLy8gVXNlIHRyeUxvY2soKSB0byBhdm9pZCBj
b250ZW50aW9uIGluIHRoZSByZWFsLXRpbWUgYXVkaW8gdGhyZWFkLgogICAgIC8vIElmIHdlIGZh
aWwgdG8gYWNxdWlyZSB0aGUgbG9jayB0aGVuIHRoZSBIVE1MTWVkaWFFbGVtZW50IG11c3QgYmUg
aW4gdGhlIG1pZGRsZSBvZgogICAgIC8vIHJlY29uZmlndXJpbmcgaXRzIHBsYXliYWNrIGVuZ2lu
ZSwgc28gd2Ugb3V0cHV0IHNpbGVuY2UgaW4gdGhpcyBjYXNlLgotICAgIGF1dG8gbG9ja2VyID0g
dHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKKyAgICBMb2Nr
ZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAgaWYgKCFsb2NrZXIu
dHJ5TG9jaygpKSB7CiAgICAgICAgIC8vIFdlIGZhaWxlZCB0byBhY3F1aXJlIHRoZSBsb2NrLgog
ICAgICAgICBvdXRwdXRCdXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9T
b3VyY2VOb2RlLmNwcAppbmRleCBjNTY2MmQ2MDlhZjYwYTZhZWJhNmRhNzIxYTM1ZDFkNTg4YWQ1
MTc1Li5iODU0MmQ0ZTNiZmMxMjA0M2M2MjMyZGQ4ZTdmZmIzNTNhYThjMWM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VO
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2VOb2RlLmNwcApAQCAtMTM5LDE2ICsxMzksMTEgQEAgdm9pZCBNZWRpYVN0cmVh
bUF1ZGlvU291cmNlTm9kZTo6cHJvY2VzcyhzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICAvLyBVc2UgdHJ5SG9sZExvY2soKSB0byBhdm9pZCBjb250
ZW50aW9uIGluIHRoZSByZWFsLXRpbWUgYXVkaW8gdGhyZWFkLgorICAgIC8vIFVzZSB0cnlMb2Nr
KCkgdG8gYXZvaWQgY29udGVudGlvbiBpbiB0aGUgcmVhbC10aW1lIGF1ZGlvIHRocmVhZC4KICAg
ICAvLyBJZiB3ZSBmYWlsIHRvIGFjcXVpcmUgdGhlIGxvY2sgdGhlbiB0aGUgTWVkaWFTdHJlYW0g
bXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mCiAgICAgLy8gYSBmb3JtYXQgY2hhbmdlLCBzbyB3ZSBv
dXRwdXQgc2lsZW5jZSBpbiB0aGlzIGNhc2UuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9j
ayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgewotICAgICAgICAvLyBXZSBmYWls
ZWQgdG8gYWNxdWlyZSB0aGUgbG9jay4KLSAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKG1fc291cmNlTnVtYmVyT2ZDaGFubmVscyAhPSBv
dXRwdXRCdXMtPm51bWJlck9mQ2hhbm5lbHMoKSkgeworICAgIExvY2tlciBsb2NrZXIgeyBEZWZl
ckxvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkgfHwgbV9z
b3VyY2VOdW1iZXJPZkNoYW5uZWxzICE9IG91dHB1dEJ1cy0+bnVtYmVyT2ZDaGFubmVscygpKSB7
CiAgICAgICAgIG91dHB1dEJ1cy0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcApp
bmRleCBjNmY2OWQyMzA1YzIxNTk5NjcxMzlhODQ3OWZhZTVkMzE4MjIyNTg3Li5mZmE0Njc5NmI4
ZWNhNzUyNzc5YjE2ZDFlM2M1MDNlNjg4MWY4YjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcApAQCAtMzQ5LDEwICszNDksMTAg
QEAgdm9pZCBPc2NpbGxhdG9yTm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQog
ICAgIGlmIChmcmFtZXNUb1Byb2Nlc3MgPiBtX3BoYXNlSW5jcmVtZW50cy5zaXplKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhp
cyBsb2NrLCBzbyB3ZSB1c2UgdHJ5SG9sZExvY2soKSBpbnN0ZWFkLgotICAgIGF1dG8gbG9ja2Vy
ID0gdHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKLSAgICAg
ICAgLy8gVG9vIGJhZCAtIHRyeUhvbGRMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBt
aWRkbGUgb2YgY2hhbmdpbmcgd2F2ZS10YWJsZXMuCisgICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBj
YW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlMb2NrKCkgaW5zdGVhZC4KKyAg
ICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAgaWYgKCFs
b2NrZXIudHJ5TG9jaygpKSB7CisgICAgICAgIC8vIFRvbyBiYWQgLSB0cnlMb2NrKCkgZmFpbGVk
LiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgd2F2ZS10YWJsZXMuCiAgICAg
ICAgIG91dHB1dEJ1cy56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcAppbmRleCA3Y2NmMjRkNjcw
YjdmNmUxZWYxYTM3NzlmOWI3MDQ4NjgyZmZjZWQ3Li45NDFjYjY2MTQ1Yzc4OTI1ZTgwNDc4ZDNh
OTM0NWEzMmU5ODBmNTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL1Bhbm5lck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
UGFubmVyTm9kZS5jcHAKQEAgLTEyOSwxMCArMTI5LDEwIEBAIHZvaWQgUGFubmVyTm9kZTo6cHJv
Y2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgICAgICB9CiAgICAgfQogCi0gICAgLy8g
VGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlI
b2xkTG9jaygpIGluc3RlYWQuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nl
c3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgewotICAgICAgICAvLyBUb28gYmFkIC0gdHJ5SG9s
ZExvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBjaGFuZ2luZyB0aGUg
cGFubmVyLgorICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBsb2Nr
LCBzbyB3ZSB1c2UgdHJ5TG9jaygpIGluc3RlYWQuCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVy
TG9jaywgbV9wcm9jZXNzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgeworICAg
ICAgICAvLyBUb28gYmFkIC0gdHJ5TG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlk
ZGxlIG9mIGNoYW5naW5nIHRoZSBwYW5uZXIuCiAgICAgICAgIGRlc3RpbmF0aW9uLT56ZXJvKCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcAppbmRleCAyMmU5N2U4YWEyNWVh
YzJmNzA4ZTIzZjc2YTg5YjI4ZDkzMDMwMTMwLi43MmJlYWRmNGQ3MDA0MjBhYTQ2YzY1ZmRkMjc4
YmQyZGQxMDFlNmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKQEAgLTE1OCw4ICsxNTgsOCBAQCB2b2lkIFNj
cmlwdFByb2Nlc3Nvck5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICB1
bnNpZ25lZCBidWZmZXJJbmRleCA9IHRoaXMtPmJ1ZmZlckluZGV4KCk7CiAgICAgQVNTRVJUKGJ1
ZmZlckluZGV4IDwgYnVmZmVyQ291bnQpOwogCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9j
ayhtX2J1ZmZlckxvY2tzW2J1ZmZlckluZGV4XSk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKKyAgICBM
b2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX2J1ZmZlckxvY2tzW2J1ZmZlckluZGV4XSB9Owor
ICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgewogICAgICAgICAvLyBXZSdyZSBsYXRlIGluIGhh
bmRsaW5nIHRoZSBwcmV2aW91cyByZXF1ZXN0LiBUaGUgbWFpbiB0aHJlYWQgbXVzdCBiZQogICAg
ICAgICAvLyB2ZXJ5IGJ1c3kuIFRoZSBiZXN0IHdlIGNhbiBkbyBpcyBjbGVhciBvdXQgdGhlIGJ1
ZmZlciBvdXJzZWxmIGhlcmUuCiAgICAgICAgIG91dHB1dEJ1cy0+emVybygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5j
cHAKaW5kZXggMTIwODg1MDgwODkwMzYxZDRjNDBhYTZhY2FiOTU0YmE3MDBiNTcyOS4uMzhkNzdk
YjU1YjYxZmI1MDAyZGNkZmEyOWQxYjMyY2ZiMGQ1NmQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwCkBAIC04
MywxMCArODMsMTAgQEAgdm9pZCBXYXZlU2hhcGVyUHJvY2Vzc29yOjpwcm9jZXNzKGNvbnN0IEF1
ZGlvQnVzKiBzb3VyY2UsIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbiwKICAgICBpZiAoIWNoYW5uZWxD
b3VudE1hdGNoZXMpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQg
Y2FuJ3QgYmxvY2sgb24gdGhpcyBsb2NrLCBzbyB3ZSB1c2UgdHJ5SG9sZExvY2soKSBpbnN0ZWFk
LgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7Ci0gICAgaWYg
KCFsb2NrZXIpIHsKLSAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUhvbGRMb2NrKCkgZmFpbGVkLiBX
ZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgYSBzZXRDdXJ2ZSgpIGNhbGwuCisgICAgLy8gVGhl
IGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlMb2Nr
KCkgaW5zdGVhZC4KKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nlc3NMb2Nr
IH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKSB7CisgICAgICAgIC8vIFRvbyBiYWQgLSB0
cnlMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgYSBzZXRDdXJ2ZSgp
IGNhbGwuCiAgICAgICAgIGRlc3RpbmF0aW9uLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJp
bmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmlu
Z0NvbnRleHQuY3BwCmluZGV4IGViMmQzYWE4ZDYzN2U0ZDRiYTYzYTEzODE4MGEwN2RiMjljNDA2
ZjUuLjcxNzFkODM4MDI1OTFkZjBkM2RhMDkwODlhYjQ1ZjQzYmQwNDhmYzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3Bw
CkBAIC0yNjMzLDcgKzI2MzMsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0
ZVZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIGFycmF5T2JqZQogCiAgICAgaWYg
KCFhcnJheU9iamVjdC0+aXNEZWZhdWx0T2JqZWN0KCkgJiYgYXJyYXlPYmplY3QgPT0gbV9ib3Vu
ZFZlcnRleEFycmF5T2JqZWN0KSB7CiAgICAgICAgIC8vIGJpbmRWZXJ0ZXhBcnJheSBncmFicyB0
aGUgbG9jayBpbnRlcm5hbGx5LgotICAgICAgICBsb2NrZXIudW5sb2NrRWFybHkoKTsKKyAgICAg
ICAgbG9ja2VyLnVubG9jaygpOwogICAgICAgICBiaW5kVmVydGV4QXJyYXkobnVsbHB0cik7IC8v
IFRoZSBkZWZhdWx0IFZBTyB3YXMgcmVtb3ZlZCBpbiBPcGVuR0wgMy4zIGJ1dCBub3QgZnJvbSBX
ZWJHTCAyOyBiaW5kIHRoZSBkZWZhdWx0IGZvciBXZWJHTCB0byB1c2UuCiAgICAgICAgIGxvY2tl
ciA9IExvY2tlciB7IG9iamVjdEdyYXBoTG9jaygpIH07CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCmluZGV4IGViNTRmMGQ1MWQ3
ODYwYjlmNjA0MGQ4OTM1ODg0NDg4MmE2NWJiNjIuLmZmNDU2MTdiZjM4ZDJmM2EyZDY2ZDRkY2E3
YjNkNjA0YzM0MjY2NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvRGVzdGluYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb0Rlc3RpbmF0aW9uLmgKQEAgLTk2LDE0ICs5NiwxMyBAQCBpbmxpbmUgdm9pZCBBdWRpb0Rl
c3RpbmF0aW9uOjpjbGVhckNhbGxiYWNrKCkKIAogaW5saW5lIHZvaWQgQXVkaW9EZXN0aW5hdGlv
bjo6Y2FsbFJlbmRlckNhbGxiYWNrKEF1ZGlvQnVzKiBzb3VyY2VCdXMsIEF1ZGlvQnVzKiBkZXN0
aW5hdGlvbkJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcywgY29uc3QgQXVkaW9JT1Bvc2l0aW9u
JiBvdXRwdXRQb3NpdGlvbikKIHsKLSAgICBpZiAobV9jYWxsYmFja0xvY2sudHJ5TG9jaygpKSB7
Ci0gICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2NhbGxiYWNrTG9j
ayB9OwotICAgICAgICBpZiAobV9jYWxsYmFjaykgewotICAgICAgICAgICAgbV9jYWxsYmFjay0+
cmVuZGVyKHNvdXJjZUJ1cywgZGVzdGluYXRpb25CdXMsIGZyYW1lc1RvUHJvY2Vzcywgb3V0cHV0
UG9zaXRpb24pOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgTG9ja2VyIGxv
Y2tlciB7IERlZmVyTG9jaywgbV9jYWxsYmFja0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlM
b2NrKCkpIHsKKyAgICAgICAgZGVzdGluYXRpb25CdXMtPnplcm8oKTsKKyAgICAgICAgcmV0dXJu
OwogICAgIH0KLSAgICBkZXN0aW5hdGlvbkJ1cy0+emVybygpOworICAgIGlmIChtX2NhbGxiYWNr
KQorICAgICAgICBtX2NhbGxiYWNrLT5yZW5kZXIoc291cmNlQnVzLCBkZXN0aW5hdGlvbkJ1cywg
ZnJhbWVzVG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlvbik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNv
bnZvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2
ZXIuY3BwCmluZGV4IDI3YjI5ODJkYzNmZDkxNjg1ZDMxN2E3ZWQxYTljMWU2ZWU0N2IyNmYuLmZk
ODg1NmZiNjI3OWQwNGIzNzY2MDNhMTJkY2UxNTQ3YWM0YzQyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcApAQCAtMjAyLDggKzIw
Miw4IEBAIHZvaWQgUmV2ZXJiQ29udm9sdmVyOjpwcm9jZXNzKGNvbnN0IEF1ZGlvQ2hhbm5lbCog
c291cmNlQ2hhbm5lbCwgQXVkaW9DaGFubmVsKiBkCiAgICAgLy8gc2lnbmFsIGZyb20gdGltZSB0
byB0aW1lLCBzaW5jZSB3ZSdsbCBnZXQgdG8gaXQgdGhlIG5leHQgdGltZSB3ZSdyZSBjYWxsZWQu
ICBXZSdyZSBjYWxsZWQgcmVwZWF0ZWRseQogICAgIC8vIGFuZCBmcmVxdWVudGx5IChhcm91bmQg
ZXZlcnkgM21zKS4gIFRoZSBiYWNrZ3JvdW5kIHRocmVhZCBpcyBwcm9jZXNzaW5nIHdlbGwgaW50
byB0aGUgZnV0dXJlIGFuZCBoYXMgYSBjb25zaWRlcmFibGUgYW1vdW50IG9mIAogICAgIC8vIGxl
ZXdheSBoZXJlLi4uCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX2JhY2tncm91bmRU
aHJlYWRMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJM
b2NrLCBtX2JhY2tncm91bmRUaHJlYWRMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygp
KQogICAgICAgICByZXR1cm47CiAKICAgICBtX21vcmVJbnB1dEJ1ZmZlcmVkID0gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGlu
YXRpb25Db2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b0Rlc3RpbmF0aW9uQ29jb2EuY3BwCmluZGV4IDM5MmMzNjE0MDRmYzJjOTUwZWJiOTM4ODlhNjI5
Y2I1YTM3MWU0MmEuLjU1NzY3YzE5NzM2NWQyOWE3MTY3NjBiNGU3MTk0NjFhMjVlYzcwNzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGlu
YXRpb25Db2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2Ev
QXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcApAQCAtMjE5LDEwICsyMTksMTAgQEAgT1NTdGF0dXMg
QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpyZW5kZXIoZG91YmxlIHNhbXBsZVRpbWUsIHVpbnQ2NF90
IGhvc3RUaW1lLCBVSW4KICAgICB9CiAKICAgICAvLyBXaGVuIHRoZXJlIGlzIGEgQXVkaW9Xb3Jr
bGV0LCB3ZSBkbyByZW5kZXJpbmcgb24gdGhlIEF1ZGlvV29ya2xldFRocmVhZC4KLSAgICBpZiAo
IW1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2sudHJ5TG9jaygpKQorICAgIExvY2tlciBsb2Nr
ZXIgeyBEZWZlckxvY2ssIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2sgfTsKKyAgICBpZiAo
IWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybiAtMTsKIAotICAgIExvY2tlciBsb2Nr
ZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrIH07CiAg
ICAgaWYgKCFtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQpCiAgICAgICAgIHJlbmRlck9uUmVuZGVy
aW5nVGhlYWRJZlBsYXlpbmcoZnJhbWVzVG9SZW5kZXIpOwogICAgIGVsc2UgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvU291cmNlUHJv
dmlkZXJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVh
bWVyL0F1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXIuY3BwCmluZGV4IGY3NzVhMzJmZDQ3ODAy
ZWU1Mzg4NTcxNjNlZDc3OWExMjEzOGNkNDcuLjNjMTBkODNiNDhjZGIxYTJjMTA0ZDQzNzY1MmQz
ZWFiMGYzYmE0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1l
ci5jcHAKQEAgLTE1OSwxMCArMTU5LDEwIEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJl
YW1lcjo6Y29uZmlndXJlQXVkaW9CaW4oR3N0RWxlbWVudCogYXVkaW9CaW4sIEdzdEVsCiB2b2lk
IEF1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXI6OnByb3ZpZGVJbnB1dChBdWRpb0J1cyogYnVz
LCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewogICAgIEdTVF9UUkFDRSgiRmV0Y2hpbmcgYnVm
ZmVycyBmcm9tIGFkYXB0ZXJzIik7Ci0gICAgaWYgKCFtX2FkYXB0ZXJMb2NrLnRyeUxvY2soKSkK
KyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX2FkYXB0ZXJMb2NrIH07CisgICAgaWYg
KCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBMb2NrZXIgbG9ja2Vy
IHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9hZGFwdGVyTG9jayB9OwogICAgIGZvciAoYXV0byYgaXQg
OiBtX2FkYXB0ZXJzKQogICAgICAgICBjb3B5R1N0cmVhbWVyQnVmZmVyc1RvQXVkaW9DaGFubmVs
KGl0LnZhbHVlLmdldCgpLCBidXMsIGl0LmtleSAtIDEsIGZyYW1lc1RvUHJvY2Vzcyk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0
V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCA2ZWY4
MzUyODNmZjM1M2E4ZmUxMjI3YjA3MGExZGRkNTZkNGEzZjhmLi5jN2U3Njg2MTliNDdlMzA5MTNh
OGNkNjg5NGQ0ODY5MzYzN2UyOWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1Nv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTQwOCwxMSArNDA4LDEwIEBAIHN0YXRpYyB2b2lkIHdlYktp
dFdlYkF1ZGlvU3JjUmVuZGVySXRlcmF0aW9uKFdlYktpdFdlYkF1ZGlvU3JjKiBzcmMpCiAgICAg
ICAgIHByaXYtPmRpc3BhdGNoRG9uZSA9IGZhbHNlOwogICAgIH0KIAotICAgIGlmICghcHJpdi0+
ZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2sudHJ5TG9jaygpKQorICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIHByaXYtPmRpc3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrIH07CisgICAgaWYg
KCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBMb2NrZXIgbG9ja2Vy
IHsgQWRvcHRMb2NrVGFnIHsgfSwgcHJpdi0+ZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2sgfTsK
LQogICAgIGlmICghcHJpdi0+ZGlzcGF0Y2hUb1JlbmRlclRocmVhZEZ1bmN0aW9uKQogICAgICAg
ICB3ZWJLaXRXZWJBdWRpb1NyY1JlbmRlckFuZFB1c2hGcmFtZXMoR1JlZlB0cjxHc3RFbGVtZW50
PihHU1RfRUxFTUVOVF9DQVNUKHNyYykpLCBXVEZNb3ZlKCpjaGFubmVsQnVmZmVyTGlzdCkpOwog
ICAgIGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
U2hhZG93Qmx1ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dC
bHVyLmNwcAppbmRleCBjMDY0Y2NlNGNhODYyYmQ0Njg5Mjg0MWZmYTViYzE5ZmI3ZjIxM2RhLi4y
ODQ4YmFiMTA4OWRiZWUxMTQxZmQxZTY5NTQwMWZlZWE0MjdhODE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcApAQCAtMTM1LDcgKzEzNSw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwdXJnZVRpbWVyRmlyZWQoKQogICAgIHsKICAgICAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICAgICAgaWYgKGF1dG8gbG9ja2VyID0gdHJ5SG9s
ZExvY2sobG9jaygpKSkKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbG9jaygp
IH07CisgICAgICAgIGlmIChsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICAgICAgY2xlYXJTY3Jh
dGNoQnVmZmVyKCk7CiAgICAgfQogCkBAIC02OTQsOCArNjk1LDggQEAgdm9pZCBTaGFkb3dCbHVy
OjpkcmF3UmVjdFNoYWRvd1dpdGhUaWxpbmcoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zv
cm0sIGNvbnMKIHsKICAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+IGxheWVySW1hZ2VCdWZmZXI7CiAj
aWYgVVNFKENHKQotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2soU2NyYXRjaEJ1ZmZlcjo6
bG9jaygpKTsKLSAgICBpZiAobG9ja2VyKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9j
aywgU2NyYXRjaEJ1ZmZlcjo6bG9jaygpIH07CisgICAgaWYgKGxvY2tlci50cnlMb2NrKCkpIHsK
ICAgICAgICAgbGF5ZXJJbWFnZUJ1ZmZlciA9IFNjcmF0Y2hCdWZmZXI6OnNpbmdsZXRvbigpLmdl
dFNjcmF0Y2hCdWZmZXIodGVtcGxhdGVTaXplKTsKICAgICAgICAgaWYgKCFsYXllckltYWdlQnVm
ZmVyKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNzU0LDggKzc1NSw4IEBAIHZvaWQgU2hhZG93
Qmx1cjo6ZHJhd0luc2V0U2hhZG93V2l0aFRpbGluZyhjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRy
YW5zZm9ybSwgY29uCiB7CiAgICAgUmVmUHRyPEltYWdlQnVmZmVyPiBsYXllckltYWdlQnVmZmVy
OwogI2lmIFVTRShDRykKLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKFNjcmF0Y2hCdWZm
ZXI6OmxvY2soKSk7Ci0gICAgaWYgKGxvY2tlcikgeworICAgIExvY2tlciBsb2NrZXIgeyBEZWZl
ckxvY2ssIFNjcmF0Y2hCdWZmZXI6OmxvY2soKSB9OworICAgIGlmIChsb2NrZXIudHJ5TG9jaygp
KSB7CiAgICAgICAgIGxheWVySW1hZ2VCdWZmZXIgPSBTY3JhdGNoQnVmZmVyOjpzaW5nbGV0b24o
KS5nZXRTY3JhdGNoQnVmZmVyKHRlbXBsYXRlU2l6ZSk7CiAgICAgICAgIGlmICghbGF5ZXJJbWFn
ZUJ1ZmZlcikKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQppbmRleCA0Nzk3NjgzYjgwYmI0OTA1YTdhODE2ODg3
YTQzNTRkMTI5OGVjZDQxLi40YmNmM2ExMGMzYjJkZWRjNzI5MjE4MTI5NTBkODhmMDI5MmI4MDY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1t
CkBAIC05NCw3ICs5NCw3IEBAIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+QXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMoKQogCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpw
cm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsKLSAg
ICAvLyBQcm90ZWN0IGFjY2VzcyB0byBtX3JpbmdCdWZmZXIgYnkgdXNpbmcgdHJ5SG9sZExvY2so
KS4gSWYgd2UgZmFpbGVkCisgICAgLy8gUHJvdGVjdCBhY2Nlc3MgdG8gbV9yaW5nQnVmZmVyIGJ5
IHVzaW5nIHRyeUxvY2soKS4gSWYgd2UgZmFpbGVkCiAgICAgLy8gdG8gYXF1aXJlLCBhIHJlLWNv
bmZpZ3VyZSBpcyB1bmRlcndheSwgYW5kIG1fcmluZ0J1ZmZlciBpcyB1bnNhZmUgdG8gYWNjZXNz
LgogICAgIC8vIEVtaXQgc2lsZW5jZS4KICAgICBpZiAoIW1fdGFwU3RvcmFnZSkgewpAQCAtMTAy
LDggKzEwMiw4IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1
dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fdGFwU3RvcmFnZS0+bG9jayk7
Ci0gICAgaWYgKCFsb2NrZXIgfHwgIW1fcmluZ0J1ZmZlcikgeworICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fdGFwU3RvcmFnZS0+bG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxv
Y2soKSB8fCAhbV9yaW5nQnVmZmVyKSB7CiAgICAgICAgIGJ1cy0+emVybygpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IDgxMzk5NmM3NmM2
NDFiN2NhZTA0NmY1OTcxZWM3NDdjZjkxY2U5ZDcuLjgxZTc1NzNlZDQyMTVkY2Q3ZTQ0MGExYWM4
ZjM1YmU1YzEyYTViMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTI1NCw4ICsy
NTQsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5xdWV1
ZVZpZGVvU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbAogICAgIGlmICghbV92aXNpYmxlKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpCisgICAgTG9ja2VyIGxvY2tl
ciB7IERlZmVyTG9jaywgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJMb2NrIH07CisgICAgaWYg
KCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fY2FuRW5x
dWV1ZURpc3BsYXlMYXllciB8fCAhbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgfHwgbV9zYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXItPmRpZEZhaWwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJl
YW1lci5jcHAKaW5kZXggMTFiZWExMmI2NmRjNTQ2MjVhODI5ZjkwNzRhOTJjMDM3NGNlMjg5NS4u
MTViNTcyOGY3ZmRiYTgxMTcxZjI3Y2M4OTYyODkxZTE4NzdiYjU4MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1Zp
ZGVvU2lua0dTdHJlYW1lci5jcHAKQEAgLTk5LDcgKzk5LDcgQEAgcHVibGljOgogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGF1dG8gc2FtcGxlID0gV1RGTW92ZShtX3NhbXBs
ZSk7Ci0gICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBsb2NrZXIudW5sb2Nr
KCk7CiAgICAgICAgIGlmIChMSUtFTFkoR1NUX0lTX1NBTVBMRShzYW1wbGUuZ2V0KCkpKSkKICAg
ICAgICAgICAgIHdlYmtpdFZpZGVvU2lua1JlcGFpbnRSZXF1ZXN0ZWQoc2luaywgc2FtcGxlLmdl
dCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29t
bW9uRW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKaW5kZXggMzIwMTc0ZDViZmU4NzZk
YjhjMTQyMzU5YThlMWEwMWFhODZjMGZkYi4uZThlNzI5ZjgzMDFhODc2NmU2NGJmNjM1MmYwMjA2
YTdhNjNlZjBhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dl
YktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCkBAIC0zOTcsNyArMzk3
LDcgQEAgc3RhdGljIGdib29sZWFuIHNpbmtFdmVudEhhbmRsZXIoR3N0QmFzZVRyYW5zZm9ybSog
dHJhbnMsIEdzdEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIGJvb2wgaXNDZG1Qcm94eUF0dGFj
aGVkID0gcHJpdi0+Y2RtUHJveHk7CiAgICAgICAgICAgICBwcml2LT5pc0ZsdXNoaW5nID0gdHJ1
ZTsKICAgICAgICAgICAgIGlmIChpc0NkbVByb3h5QXR0YWNoZWQpIHsKLSAgICAgICAgICAgICAg
ICBsb2NrZXIudW5sb2NrRWFybHkoKTsKKyAgICAgICAgICAgICAgICBsb2NrZXIudW5sb2NrKCk7
CiAgICAgICAgICAgICAgICAgcHJpdi0+Y2RtUHJveHktPmFib3J0V2FpdGluZ0ZvcktleSgpOwog
ICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgcHJpdi0+Y29uZGl0aW9uLm5vdGlm
eU9uZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0cmVh
bWVyLmNwcAppbmRleCA2ZDAzZGY5NmFkNDM3OTBkNWFmM2QyYjcyZDc3MDBkMTZmZjJhNGZhLi5k
NGRlMWQ5ZTFkYmQyOTJhNjQ5YjFhOTllMzQ0ZDkyNjgyZjg0MmMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291
cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmNwcApAQCAtNTA5LDcgKzUw
OSw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdE1lZGlhU3JjTG9vcCh2b2lkKiB1c2VyRGF0YSkKICAg
ICAgICAgfQogCiAgICAgICAgIC8vIFB1c2ggdGhlIGJ1ZmZlciB3aXRob3V0IHRoZSBzdHJlYW1p
bmdNZW1iZXJzIGxvY2sgc28gdGhhdCBmbHVzaGVzIGNhbiBoYXBwZW4gd2hpbGUgaXQgdHJhdmVs
cyBkb3duc3RyZWFtLgotICAgICAgICBzdHJlYW1pbmdNZW1iZXJzLmxvY2tIb2xkZXIoKS51bmxv
Y2tFYXJseSgpOworICAgICAgICBzdHJlYW1pbmdNZW1iZXJzLmxvY2tIb2xkZXIoKS51bmxvY2so
KTsKIAogICAgICAgICBBU1NFUlQoR1NUX0JVRkZFUl9QVFNfSVNfVkFMSUQoYnVmZmVyLmdldCgp
KSk7CiAgICAgICAgIEdTVF9UUkFDRV9PQkpFQ1QocGFkLCAiUHVzaGluZyBidWZmZXIgZG93bnN0
cmVhbTogJSIgR1NUX1BUUl9GT1JNQVQsIGJ1ZmZlci5nZXQoKSk7CkBAIC01MjUsNyArNTI1LDcg
QEAgc3RhdGljIHZvaWQgd2ViS2l0TWVkaWFTcmNMb29wKHZvaWQqIHVzZXJEYXRhKQogICAgICAg
ICAvLyBFT1MgZXZlbnRzIGFuZCBvdGhlciBlbnF1ZXVlZCBldmVudHMgYXJlIGFsc28gc2VudCB1
bmxvY2tlZCBzbyB0aGV5IGNhbiByZWFjdCB0byBmbHVzaGVzIGlmIG5lY2Vzc2FyeS4KICAgICAg
ICAgR1JlZlB0cjxHc3RFdmVudD4gZXZlbnQgPSBHUmVmUHRyPEdzdEV2ZW50PihHU1RfRVZFTlQo
b2JqZWN0LmxlYWtSZWYoKSkpOwogCi0gICAgICAgIHN0cmVhbWluZ01lbWJlcnMubG9ja0hvbGRl
cigpLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIHN0cmVhbWluZ01lbWJlcnMubG9ja0hvbGRlcigp
LnVubG9jaygpOwogICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHBhZCwgIlB1c2hpbmcgZXZlbnQg
ZG93bnN0cmVhbTogJSIgR1NUX1BUUl9GT1JNQVQsIGV2ZW50LmdldCgpKTsKICAgICAgICAgYm9v
bCBldmVudEhhbmRsZWQgPSBnc3RfcGFkX3B1c2hfZXZlbnQocGFkLCBHUmVmUHRyPEdzdEV2ZW50
PihldmVudCkubGVha1JlZigpKTsKICAgICAgICAgaWYgKCFldmVudEhhbmRsZWQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcAppbmRl
eCA1ZGNlYTFhNDA4NmUyMGUxNTdlYmJjZDcxOWJjMzY2MDg5MDRiNjBjLi5lNmYyZTZlMmRmOTRm
ODRmMWRjMTA0OGQzZDU5YmU0NmZhMjdkMjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVu
aXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAKQEAgLTE0MSwxMCArMTQxLDEwIEBA
IHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpyZXRyaWV2ZUZvcm1hdERl
c2NyaXB0aW9uKENvbXBsZXRpb25IYW5kCiAKIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJVbml0Ojp1cGRhdGVSZW5kZXJTb3VyY2VzSWZOZWNlc3NhcnkoKQogewotICAgIGlmICgh
bV9wZW5kaW5nUmVuZGVyU291cmNlc0xvY2sudHJ5TG9jaygpKQorICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fcGVuZGluZ1JlbmRlclNvdXJjZXNMb2NrIH07CisgICAgaWYgKCFsb2Nr
ZXIudHJ5TG9jaygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRv
cHRMb2NrVGFnIHsgfSwgbV9wZW5kaW5nUmVuZGVyU291cmNlc0xvY2sgfTsKICAgICBpZiAoIW1f
aGFzUGVuZGluZ1JlbmRlclNvdXJjZXMpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJv
dmlkZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9X
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0KaW5kZXggNTc2ZjQ0ZTkyYzU4YjkzYzBiNDBk
NjY0OTk4MGJjN2U5MGE1ZWFmYi4uMzQ2MTQxYjAxYzNkMWQ3OGNhOWZmNTRjYWI2NzI5OTdmYTkx
MjUzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1dlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLm1tCkBAIC02
NSw4ICs2NSw4IEBAIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hOjpzZXRDbGllbnQo
QXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogY2xpZW50KQogCiB2b2lkIFdlYkF1ZGlvU291cmNl
UHJvdmlkZXJDb2NvYTo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNU
b1Byb2Nlc3MpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX2xvY2spOwotICAg
IGlmICghbG9ja2VyIHx8ICFtX2RhdGFTb3VyY2UgfHwgIW1fYXVkaW9CdWZmZXJMaXN0KSB7Cisg
ICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisgICAgaWYgKCFsb2NrZXIu
dHJ5TG9jaygpIHx8ICFtX2RhdGFTb3VyY2UgfHwgIW1fYXVkaW9CdWZmZXJMaXN0KSB7CiAgICAg
ICAgIGJ1cy0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwCmluZGV4IDQ3N2Q5NjcyYzcx
MmI0NmZjNGViZDdhMjg5N2U3N2ViMTU4MDg0ODQuLmNmNzQwNjc5NDg0OTVmYTA4ZGJkNzA0MjVm
ODc1ODAzMWI1MDRmMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
T3JXb3JrbGV0VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9y
V29ya2xldFRocmVhZC5jcHAKQEAgLTIwNyw4ICsyMDcsOCBAQCB2b2lkIFdvcmtlck9yV29ya2xl
dFRocmVhZDo6c3RvcChGdW5jdGlvbjx2b2lkKCk+JiYgc3RvcHBlZENhbGxiYWNrKQogICAgIC8v
IE11dGV4IHByb3RlY3Rpb24gaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSB0aGF0IG1fd29ya2VyR2xv
YmFsU2NvcGUgaXNuJ3QgY2hhbmdlZCBieQogICAgIC8vIFdvcmtlclRocmVhZDo6d29ya2VyVGhy
ZWFkKCkgd2hpbGUgd2UncmUgYWNjZXNzaW5nIGl0LiBOb3RlIGFsc28gdGhhdCBzdG9wKCkgY2Fu
CiAgICAgLy8gYmUgY2FsbGVkIGJlZm9yZSBtX3dvcmtlckdsb2JhbFNjb3BlIGlzIGZ1bGx5IGNy
ZWF0ZWQuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5k
R2xvYmFsU2NvcGVMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgeworICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fdGhyZWFkQ3JlYXRpb25BbmRHbG9iYWxTY29wZUxvY2sgfTsKKyAgICBp
ZiAoIWxvY2tlci50cnlMb2NrKCkpIHsKICAgICAgICAgLy8gVGhlIHRocmVhZCBpcyBzdGlsbCBz
dGFydGluZywgc3BpbiB0aGUgcnVubG9vcCBhbmQgdHJ5IGFnYWluIHRvIGF2b2lkIGRlYWRsb2Nr
cyBpZiB0aGUgd29ya2VyIHRocmVhZAogICAgICAgICAvLyBuZWVkcyB0byBpbnRlcmFjdCB3aXRo
IHRoZSBtYWluIHRocmVhZCBkdXJpbmcgc3RhcnR1cC4KICAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChbdGhpcywgc3RvcHBlZENhbGxiYWNrID0gV1RGTW92ZShzdG9wcGVkQ2FsbGJhY2spXSgpIG11
dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNv
bkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRh
YmFzZS5jcHAKaW5kZXggZDc0YTQ3M2UyMGM5MDE4ZmUzNmQ1YWI2ZGZkOGFhNTJiNWE2OWE1MS4u
OTgzOGMwYzExY2I2YTU0ZTE5MzVmNDBkMTBiZGI3ODI3MTEwY2Q2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuY3BwCkBAIC01NzIsNyAr
NTcyLDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OmxvYWRJY29uRm9yUGFnZVVSTChjb25zdCBTdHJp
bmcmIHBhZ2VVUkwsIEFsbG93RGF0YWJhc2VXcml0ZQogICAgICAgICAgICAgICAgIGF1dG8gaWNv
biA9IGl0LT52YWx1ZS5maXJzdDsKICAgICAgICAgICAgICAgICBpdC0+dmFsdWUuc2Vjb25kID0g
TW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgICAgICAgICAgICAgc3RhcnRDbGVhckxvYWRlZElj
b25zVGltZXIoKTsKLSAgICAgICAgICAgICAgICBsb2NrZXIudW5sb2NrRWFybHkoKTsKKyAgICAg
ICAgICAgICAgICBsb2NrZXIudW5sb2NrKCk7CiAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoV1RGTW92ZShpY29uKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgfQpAQCAtNTk2LDcgKzU5Niw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpsb2FkSWNvbkZvclBh
Z2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMLCBBbGxvd0RhdGFiYXNlV3JpdGUKIAogICAgICAg
ICAgICAgYXV0byBpY29uID0gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5maXJzdDsKICAgICAg
ICAgICAgIHN0YXJ0Q2xlYXJMb2FkZWRJY29uc1RpbWVyKCk7Ci0gICAgICAgICAgICBsb2NrZXIu
dW5sb2NrRWFybHkoKTsKKyAgICAgICAgICAgIGxvY2tlci51bmxvY2soKTsKICAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaWNvbikpOwogICAgICAgICB9KTsKICAgICB9KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJU
Q0NvZGVjcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwCmluZGV4IGY0NGM0MTg5MmIzOGY1YmFkMzE5NmQ2OWExYzEzMjRjZTkzYjVl
YzMuLjQ4YTM2NjE2OWIzZmVhNjNkYTQyODcxMzYwMWU2YmRmMzZmZDVkMmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNz
LmNwcApAQCAtMzI0LDExICszMjQsMTAgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRl
ZERlY29kaW5nKFJUQ0RlY29kZXJJZGVudGlmaWVyIGRlY29kZXJJZGVudGlmaWVyLAogICAgIGlm
ICghZGVjb2RlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVk
SW1hZ2VDYWxsYmFja0xvY2sudHJ5TG9jaygpKQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxv
Y2ssIGRlY29kZXItPmRlY29kZWRJbWFnZUNhbGxiYWNrTG9jayB9OworICAgIGlmICghbG9ja2Vy
LnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0
TG9ja1RhZyB7IH0sIGRlY29kZXItPmRlY29kZWRJbWFnZUNhbGxiYWNrTG9jayB9OwotCiAgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGVkSW1hZ2VDYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogCkBA
IC00OTIsMTEgKzQ5MSwxMCBAQCB2b2lkIExpYldlYlJUQ0NvZGVjczo6Y29tcGxldGVkRW5jb2Rp
bmcoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgSVBDOjpEYQogICAgIGlmICghZW5j
b2RlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFlbmNvZGVyLT5lbmNvZGVkSW1hZ2VD
YWxsYmFja0xvY2sudHJ5TG9jaygpKQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIGVu
Y29kZXItPmVuY29kZWRJbWFnZUNhbGxiYWNrTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxv
Y2soKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1Rh
ZyB7IH0sIGVuY29kZXItPmVuY29kZWRJbWFnZUNhbGxiYWNrTG9jayB9OwotCiAgICAgaWYgKCFl
bmNvZGVyLT5lbmNvZGVkSW1hZ2VDYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWFiMDgzZjFlMDdk
NDVlODhhZGIxNDAxZGJiNGMyMTViNTM3ODU0YS4uMjM1MzU3OTdkZjU3ZDNhYTEzOTE3NzBlZGJj
MmZkMTY4NjMyMDlhYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMg
aW5jb21wYXRpYmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTQ1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRM
b2NrKCkgYXMgaXQgaXMgaW5jb21wYXRpYmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFs
eXNpcy4gSW5zdGVhZCwgdXNlIHRoZSBmb2xsb3dpbmcgcGF0dGVybjoKKyAgICAgICAgYGBgCisg
ICAgICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fbG9jayB9OworICAgICAgICBpZiAo
bG9ja2VyLnRyeUxvY2soKSkKKyAgICAgICAgYGBgCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9DaGVja2VkTG9ja1Rlc3QuY3BwOgorCiAyMDIxLTA1LTIyICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBMb2NrSG9sZGVyIHdpdGgg
TG9ja2VyIGluIGxvY2FsIHZhcmlhYmxlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvQ2hlY2tlZExvY2tUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0NoZWNrZWRMb2NrVGVzdC5jcHAKaW5kZXggZDgyZWUxYTJlNWJkZTBkY2FiZjM1Y2U5
ZGM3MzExMjExMDIyNjI0YS4uZmJkMDJiM2MzNGIwNGM1NmNhZWZjMzRlNDhhOTc3NTZmYmNhOTYx
NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tlZExvY2tU
ZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkTG9ja1Rl
c3QuY3BwCkBAIC0zOCw5ICszOCw5IEBAIHB1YmxpYzoKICAgICB9CiAgICAgdm9pZCBtYXliZVNl
dE90aGVyVmFsdWUoaW50IHZhbHVlKQogICAgIHsKLSAgICAgICAgaWYgKCFtX290aGVyTG9jay50
cnlMb2NrKCkpCisgICAgICAgIExvY2tlciBob2xkTG9jayB7IERlZmVyTG9jaywgbV9vdGhlckxv
Y2sgfTsKKyAgICAgICAgaWYgKCFob2xkTG9jay50cnlMb2NrKCkpCiAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIExvY2tlciBob2xkTG9jayB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fb3RoZXJM
b2NrIH07CiAgICAgICAgIG1fb3RoZXJWYWx1ZSA9IHZhbHVlOwogICAgIH0KICAgICAvLyBUaGlz
IGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIG1hbnVhbGx5IGNoZWNrIHRoYXQgY29tcGlsZSBmYWls
cy4K
</data>
<flag name="commit-queue"
          id="450630"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429440</attachid>
            <date>2021-05-22 16:47:56 -0700</date>
            <delta_ts>2021-05-22 18:08:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226145-20210522164755.patch</filename>
            <type>text/plain</type>
            <size>58413</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZjY3MTE3MDhhODUyMGY5MDcyMjIzNDExNThhODk2NDgzZjU5NmE2Li4yYzM5YzIxZDAzMWNkMWVi
ZGJkMDk5YThhNWIwZmFhMTUwOGI2Nzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3
aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlz
IGluY29tcGF0aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuIEluc3RlYWQs
IHVzZSB0aGUgZm9sbG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgRGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlMb2Nr
KCkpCisgICAgICAgIGBgYAorCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpT
Qzo6SGVhcDo6cmVzdW1lVGhlUGVyaXBoZXJ5KToKKyAgICAgICAgKiBydW50aW1lL1ZNVHJhcHMu
Y3BwOgorICAgICAgICAoSlNDOjpWTVRyYXBzOjp0cnlJbnN0YWxsVHJhcEJyZWFrcG9pbnRzKToK
KyAgICAgICAgKiB0b29scy9WTUluc3BlY3Rvci5jcHA6CisgICAgICAgIChKU0M6OlZNSW5zcGVj
dG9yOjpsb2NrKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlcGxhY2UgTG9ja0hvbGRlciB3aXRoIExvY2tlciBpbiBsb2NhbCB2YXJp
YWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKaW5kZXggYjcwYTNmM2U4MTM3MjcyNzA1YTA0YmVkMjM5NmNlMGZjOWViZjc0Yi4uYjdm
ZjcyZTA4OTA3MjYyNDc4MzA2ODVkYzFhZTkyNTk4NzZiMjczNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBA
QAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3aXRoIENsYW5n
IFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0
aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuIEluc3RlYWQsIHVzZSB0aGUg
Zm9sbG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
RGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlMb2NrKCkpCisgICAg
ICAgIGBgYAorCisgICAgICAgICogd3RmL0NoZWNrZWRMb2NrLmg6CisgICAgICAgICogd3RmL0xv
Y2tlci5oOgorICAgICAgICAoV1RGOjpMb2NrZXI6OkxvY2tlcik6CisgICAgICAgIChXVEY6Okxv
Y2tlcjo6fkxvY2tlcik6CisgICAgICAgIChXVEY6OkxvY2tlcjo6dHJ5TG9jayk6CisgICAgICAg
IChXVEY6OkxvY2tlcjo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgIChXVEY6OkxvY2tl
cjo6dW5sb2NrRWFybHkpOgorICAgICAgICAoV1RGOjpMb2NrZXI6Om9wZXJhdG9yPSk6CisgICAg
ICAgIChXVEY6OkxvY2tlcjo6dW5sb2NrKToKKyAgICAgICAgKFdURjo6TG9ja2VyOjpsb2NrKToK
KyAgICAgICAgKiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6bG9nKToKKyAg
ICAgICAgKFdURjo6TG9nZ2VyOjpsb2dWZXJib3NlKToKKyAgICAgICAgKiB3dGYvVGhyZWFkU2Fm
ZXR5QW5hbHlzaXMuaDoKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkb3B0IENoZWNrZWRMb2NrIGluIG1vcmUgcGxhY2VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZDA1N2QyNzEyNzA0YzgxOTBkYTQ0NDIyMDEzOTEyNmU1ZTIxZWE5Yy4uNzNkZmU2MTU5
ZTAwYmMzNTM2YWU2ZWYwN2EyMTE4MDE4YzFlMDdiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1
IEBACisyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRpYmxlIHdpdGggQ2xh
bmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21w
YXRpYmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcy4gSW5zdGVhZCwgdXNlIHRo
ZSBmb2xsb3dpbmcgcGF0dGVybjoKKyAgICAgICAgYGBgCisgICAgICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fbG9jayB9OworICAgICAgICBpZiAobG9ja2VyLnRyeUxvY2soKSkKKyAg
ICAgICAgYGBgCisKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQnVmZmVyU291cmNlTm9kZTo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1BhcmFtVGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRp
bWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFy
YW1UaW1lbGluZTo6dmFsdWVzRm9yRnJhbWVSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1BhcmFtVGltZWxpbmU6Omhhc1ZhbHVlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xl
dE5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb252b2x2ZXJOb2RlOjpwcm9jZXNzKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3MpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3Mp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6T3NjaWxsYXRvck5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vUGFubmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpw
cm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJvY2Vzcyk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldhdmVTaGFwZXJQcm9jZXNzb3I6OnByb2Nlc3MpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
RGVzdGluYXRpb246OmNhbGxSZW5kZXJDYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vUmV2ZXJiQ29udm9sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJldmVyYkNvbnZvbHZl
cjo6cHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5h
dGlvbkNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
cmVuZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQ
cm92aWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3Zp
ZGVyR1N0cmVhbWVyOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJL
aXRXZWJBdWRpb1NyY1JlbmRlckl0ZXJhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JhdGNoQnVmZmVyOjpwdXJn
ZVRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1cjo6ZHJhd1JlY3RTaGFk
b3dXaXRoVGlsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0JsdXI6OmRyYXdJbnNldFNo
YWRvd1dpdGhUaWxpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6ZW5xdWV1ZVZpZGVvU2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Ojp1cGRhdGVS
ZW5kZXJTb3VyY2VzSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpX
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
T3JXb3JrbGV0VGhyZWFkOjpzdG9wKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0IENoZWNrZWRMb2NrIGluIG1vcmUgcGxhY2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGZjYWM4NDUxYzhhOTM0NTIwOGFiNzFhOTM3OGE4MTc3ZTgxNjg4ODguLjJm
ZmE2N2Y3MzI5ZjhjOTU5NzlkYjFjOTk1ZmViNzVkNTQ5YzcwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUgd2l0
aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBp
bmNvbXBhdGlibGUgd2l0aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBJbnN0ZWFkLCB1
c2UgdGhlIGZvbGxvd2luZyBwYXR0ZXJuOgorICAgICAgICBgYGAKKyAgICAgICAgTG9ja2VyIGxv
Y2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisgICAgICAgIGlmIChsb2NrZXIudHJ5TG9jaygp
KQorICAgICAgICBgYGAKKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRl
ZERlY29kaW5nKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWRF
bmNvZGluZyk6CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBBZG9wdCBDaGVja2VkTG9jayBpbiBtb3JlIHBsYWNlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmNwcAppbmRleCBjMWNmODY0Mjc3MDUxYmEwMjEwNThjZjUxNGFkMzcyZmJh
NzQ4MjdiLi42OWJmMzI1NjZjZGYwODcwMzU4MTM1OWRlZGFhZGUzZTAyOTA3MGMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMTcwNyw3ICsxNzA3LDcgQEAgTkVWRVJfSU5M
SU5FIHZvaWQgSGVhcDo6cmVzdW1lVGhlUGVyaXBoZXJ5KCkKICAgICAgICAgICAgIGJvb2wgcmVt
b3ZlID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAodmlzaXRvci5oYXNBY2tub3dsZWRnZWRUaGF0
VGhlTXV0YXRvcklzUmVzdW1lZCgpKQogICAgICAgICAgICAgICAgIHJlbW92ZSA9IHRydWU7Ci0g
ICAgICAgICAgICBlbHNlIGlmIChhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKHZpc2l0b3Iucmln
aHRUb1J1bigpKSkgeworICAgICAgICAgICAgZWxzZSBpZiAoTG9ja2VyIGxvY2tlciB7IERlZmVy
TG9jaywgdmlzaXRvci5yaWdodFRvUnVuKCkgfTsgbG9ja2VyLnRyeUxvY2soKSkgewogICAgICAg
ICAgICAgICAgIHZpc2l0b3IudXBkYXRlTXV0YXRvcklzU3RvcHBlZChsb2NrZXIpOwogICAgICAg
ICAgICAgICAgIHJlbW92ZSA9IHRydWU7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxl
ckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCmluZGV4IGIyZDk5ZmJhODkyMjZkNGMyNDBjZGFi
OGY1YjA1NzU3ODFiZThkZTEuLjJiYjYyM2U5M2JkNTc5M2EzNDEyODc3MGNlNzBiMjc1NmEzZDY1
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCkBAIC0y
MjAsNyArMjIwLDcgQEAgdm9pZCBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Ojp0cmFja2lu
Z0NvbXBsZXRlKCkKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHNhbXBsaW5nUHJvZmlsZXItPmdl
dExvY2soKSB9OwogICAgICAgICBzYW1wbGluZ1Byb2ZpbGVyLT5wYXVzZShsb2NrZXIpOwogICAg
ICAgICBWZWN0b3I8U2FtcGxpbmdQcm9maWxlcjo6U3RhY2tUcmFjZT4gc3RhY2tUcmFjZXMgPSBz
YW1wbGluZ1Byb2ZpbGVyLT5yZWxlYXNlU3RhY2tUcmFjZXMobG9ja2VyKTsKLSAgICAgICAgbG9j
a2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tlci51bmxvY2soKTsKIAogICAgICAgICBS
ZWY8UHJvdG9jb2w6OlNjcmlwdFByb2ZpbGVyOjpTYW1wbGVzPiBzYW1wbGVzID0gYnVpbGRTYW1w
bGVzKHZtLCBXVEZNb3ZlKHN0YWNrVHJhY2VzKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2Nr
ZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuY3BwCmluZGV4IGE1MGM5NDIwODJhYWU0
YWQ0YTY0ZDQzOWU3OWI3NWJmMTg1MGNjMWIuLmUwZTUwNDRlZGZhZmNlMThkZTEzY2ZmYTBkZTM2
NzQ3MjkxNDI2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmNwcApAQCAtMjIyLDEyICsyMjIsMTIgQEAgdm9pZCBSZW1vdGVJbnNw
ZWN0b3JTb2NrZXRFbmRwb2ludDo6ZGlzY29ubmVjdChDb25uZWN0aW9uSUQgaWQpCiAgICAgaWYg
KGNvbnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2xpc3RlbmVycy5nZXQoaWQpKSB7CiAgICAgICAg
IG1fbGlzdGVuZXJzLnJlbW92ZShpZCk7CiAgICAgICAgIFNvY2tldDo6Y2xvc2UoY29ubmVjdGlv
bi0+c29ja2V0KTsKLSAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tl
ci51bmxvY2soKTsKICAgICAgICAgY29ubmVjdGlvbi0+bGlzdGVuZXIuZGlkQ2hhbmdlU3RhdHVz
KCp0aGlzLCBpZCwgTGlzdGVuZXI6OlN0YXR1czo6Q2xvc2VkKTsKICAgICB9IGVsc2UgaWYgKGNv
bnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2NsaWVudHMuZ2V0KGlkKSkgewogICAgICAgICBtX2Ns
aWVudHMucmVtb3ZlKGlkKTsKICAgICAgICAgU29ja2V0OjpjbG9zZShjb25uZWN0aW9uLT5zb2Nr
ZXQpOwotICAgICAgICBsb2NrZXIudW5sb2NrRWFybHkoKTsKKyAgICAgICAgbG9ja2VyLnVubG9j
aygpOwogICAgICAgICBjb25uZWN0aW9uLT5jbGllbnQuZGlkQ2xvc2UoKnRoaXMsIGlkKTsKICAg
ICB9IGVsc2UKICAgICAgICAgTE9HX0VSUk9SKCJFcnJvcjogQ2Fubm90IGRpc2Nvbm5lY3Q6IElu
dmFsaWQgaWQiKTsKQEAgLTI4Miw3ICsyODIsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclNvY2tl
dEVuZHBvaW50OjpyZWN2SWZFbmFibGVkKENvbm5lY3Rpb25JRCBpZCkKICAgICAgICAgaWYgKGF1
dG8gcmVhZFNpemUgPSBTb2NrZXQ6OnJlYWQoY29ubmVjdGlvbi0+c29ja2V0LCByZWN2QnVmZmVy
LmRhdGEoKSwgcmVjdkJ1ZmZlci5zaXplKCkpKSB7CiAgICAgICAgICAgICBpZiAoKnJlYWRTaXpl
ID4gMCkgewogICAgICAgICAgICAgICAgIHJlY3ZCdWZmZXIuc2hyaW5rKCpyZWFkU2l6ZSk7Ci0g
ICAgICAgICAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgICAgICAgICAgbG9j
a2VyLnVubG9jaygpOwogICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNsaWVudC5kaWRSZWNl
aXZlKCp0aGlzLCBpZCwgV1RGTW92ZShyZWN2QnVmZmVyKSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgfQpAQCAtMjkxLDcgKzI5MSw3IEBAIHZvaWQgUmVtb3RlSW5zcGVj
dG9yU29ja2V0RW5kcG9pbnQ6OnJlY3ZJZkVuYWJsZWQoQ29ubmVjdGlvbklEIGlkKQogICAgICAg
ICBTb2NrZXQ6OmNsb3NlKGNvbm5lY3Rpb24tPnNvY2tldCk7CiAgICAgICAgIG1fY2xpZW50cy5y
ZW1vdmUoaWQpOwogCi0gICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBsb2Nr
ZXIudW5sb2NrKCk7CiAgICAgICAgIGNvbm5lY3Rpb24tPmNsaWVudC5kaWRDbG9zZSgqdGhpcywg
aWQpOwogICAgIH0KIH0KQEAgLTM1Myw3ICszNTMsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclNv
Y2tldEVuZHBvaW50OjphY2NlcHRJbmV0U29ja2V0SWZFbmFibGVkKENvbm5lY3Rpb25JRCBpZCkK
ICAgICBpZiAoY29uc3QgYXV0byYgY29ubmVjdGlvbiA9IG1fbGlzdGVuZXJzLmdldChpZCkpIHsK
ICAgICAgICAgaWYgKGF1dG8gc29ja2V0ID0gU29ja2V0OjphY2NlcHQoY29ubmVjdGlvbi0+c29j
a2V0KSkgewogICAgICAgICAgICAgLy8gTmVlZCB0byB1bmxvY2sgYmVmb3JlIGNhbGxpbmcgY3Jl
YXRlQ2xpZW50IGFzIGl0IGFsc28gYXR0ZW1wdHMgdG8gbG9jay4KLSAgICAgICAgICAgIGxvY2tl
ci51bmxvY2tFYXJseSgpOworICAgICAgICAgICAgbG9ja2VyLnVubG9jaygpOwogICAgICAgICAg
ICAgaWYgKGNvbm5lY3Rpb24tPmxpc3RlbmVyLmRvQWNjZXB0KCp0aGlzLCBzb2NrZXQudmFsdWUo
KSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmgKaW5kZXggYWEyNzNiYWRiZWZhNzM3YTBlYWE1
MzRmYmViYTlmNTAxZmRiODYyNy4uZGQ5OWYyZDM4MjZjYWFmY2Y5ZWY4YjkwMmE2YTIwM2RhMjIz
YjMzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uY3VycmVu
dEpTTG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmN1cnJlbnRK
U0xvY2suaApAQCAtNTgsOSArNTgsOSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KICAgICAKLSAg
ICB2b2lkIHVubG9ja0Vhcmx5KCkKKyAgICB2b2lkIHVubG9jaygpCiAgICAgewotICAgICAgICBt
X2xvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBtX2xvY2tlci51bmxvY2soKTsKICAgICB9
CiAKIHByaXZhdGU6CkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gdnMuIGRl
cml2ZWQgY2xhc3Nlcy4gSWYgd2UgZGlkbid0LCB0aGVuIHdlIHdvdWxkIGRlc3Ryb3kgdGhlIAog
ICAgICAgICAvLyBEZWZlckdDIG9iamVjdCBiZWZvcmUgdW5sb2NraW5nIHRoZSBsb2NrIHdoaWNo
IGNvdWxkIGNhdXNlIGEgR0MKICAgICAgICAgLy8gYW5kIHJlc3VsdGluZyBkZWFkbG9jay4KLSAg
ICAgICAgdW5sb2NrRWFybHkoKTsKKyAgICAgICAgdW5sb2NrKCk7CiAgICAgfQogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAppbmRleCA5MmJmZWFh
NzY4YWE2ODYyYmRmNWQ5OGM0YWVkZDcxNDYyZTRhZDY0Li4xMGViNGVjYzU3NjJlY2Y4NTYzOGQy
OTExNjAxNDk5ODg0OGQ0ZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTVRyYXBzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRy
YXBzLmNwcApAQCAtMTM3LDggKzEzNyw4IEBAIHZvaWQgVk1UcmFwczo6dHJ5SW5zdGFsbFRyYXBC
cmVha3BvaW50cyhTaWduYWxDb250ZXh0JiBjb250ZXh0LCBTdGFja0JvdW5kcyBzdGFjCiAgICAg
fQogCiAgICAgaWYgKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChmb3VuZENvZGVCbG9jay0+aml0
VHlwZSgpKSkgewotICAgICAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKCptX2xvY2spOwot
ICAgICAgICBpZiAoIWxvY2tlcikKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
Km1fbG9jayB9OworICAgICAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgICAgICBy
ZXR1cm47IC8vIExldCB0aGUgU2lnbmFsU2VuZGVyIHRyeSBhZ2FpbiBsYXRlci4KIAogICAgICAg
ICBpZiAoIW5lZWRIYW5kbGluZyhWTVRyYXBzOjpBc3luY0V2ZW50cykpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuY3BwCmluZGV4IGU0OWRhZTFlMWJjOWRkNzBj
OWViMjAyZDg3NzA5ZmNjNmNhNjcwOTAuLjk4YTdmMTQ3NDI4YTg1NGY5NzViYThmNzA3ZDgyYzc2
ODlmY2FlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3Bl
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNw
cApAQCAtNzMsMTQgKzczLDE0IEBAIGF1dG8gVk1JbnNwZWN0b3I6OmxvY2soU2Vjb25kcyB0aW1l
b3V0KSAtPiBFeHBlY3RlZDxMb2NrZXIsIEVycm9yPgogICAgIC8vIFdlJ2xsIGJlIGRvaW5nIHNs
ZWVwKDEpIGJldHdlZW4gdHJpZXMgYmVsb3cuIEhlbmNlLCBzbGVlcFBlclJldHJ5IGlzIDEuCiAg
ICAgdW5zaWduZWQgbWF4UmV0cmllcyA9ICh0aW1lb3V0IDwgU2Vjb25kczo6aW5maW5pdHkoKSkg
PyB0aW1lb3V0LnZhbHVlKCkgOiBVSU5UX01BWDsKIAotICAgIEV4cGVjdGVkPExvY2tlciwgRXJy
b3I+IGxvY2tlciA9IExvY2tlcjo6dHJ5TG9jayhtX2xvY2spOworICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fbG9jayB9OworCiAgICAgdW5zaWduZWQgdHJ5Q291bnQgPSAwOwotICAg
IHdoaWxlICghbG9ja2VyICYmIHRyeUNvdW50IDwgbWF4UmV0cmllcykgeworICAgIHdoaWxlICgh
bG9ja2VyLnRyeUxvY2soKSAmJiB0cnlDb3VudCA8IG1heFJldHJpZXMpIHsKICAgICAgICAgLy8g
V2Ugd2FudCB0aGUgdmVyc2lvbiBvZiBzbGVlcCBmcm9tIHVuaXN0ZC5oLiBDYXN0IHRvIGRpc2Ft
YmlndWF0ZS4KICNpZiAhT1MoV0lORE9XUykKICAgICAgICAgKHN0YXRpY19jYXN0PHVuc2lnbmVk
ICgqKSh1bnNpZ25lZCk+KHNsZWVwKSkoMSk7CiAjZW5kaWYKLSAgICAgICAgbG9ja2VyID0gTG9j
a2VyOjp0cnlMb2NrKG1fbG9jayk7CiAgICAgfQogCiAgICAgaWYgKCFsb2NrZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oIGIvU291cmNlL1dURi93dGYvQ2hlY2tl
ZExvY2suaAppbmRleCA0NGI4OTk5NjkxMjM0NTIwMDE5OGZkODY0YTk5ODk2Njc3NjM5OTQyLi4x
MWM2OTkwMTgwZWQ2NDU0ODBhN2Q3ZThiMTI2NjI3MzkwZTI2Y2VjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRMb2Nr
LmgKQEAgLTQzLDkgKzQzLDkgQEAgbmFtZXNwYWNlIFdURiB7CiAvLyAgICAgICB2b2lkIHNldFZh
bHVlKGludCB2YWx1ZSkgeyBMb2Noa2VyIGhvbGRMb2NrIHsgbV9sb2NrIH07IG1fdmFsdWUgPSB2
YWx1ZTsgIH0KIC8vICAgICAgIHZvaWQgbWF5YmVTZXRPdGhlclZhbHVlKGludCB2YWx1ZSkKIC8v
ICAgICAgIHsKLS8vICAgICAgICAgICBpZiAoIW1fbG9jay50cnlMb2NrKCkpCisvLyAgICAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisvLyAgICAgICAgICAgaWYg
KCFsb2NrZXIudHJ5TG9jaygpKQogLy8gICAgICAgICAgICAgIHJldHVybjsKLS8vICAgICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9vdGhlckxvY2sgfTsKIC8vICAg
ICAgICAgICBtX290aGVyVmFsdWUgPSB2YWx1ZTsKIC8vICAgICAgIH0KIC8vICAgcHJpdmF0ZToK
QEAgLTYwLDggKzYwLDggQEAgY2xhc3MgV1RGX0NBUEFCSUxJVFlfTE9DSyBDaGVja2VkTG9jayA6
IExvY2sgewogcHVibGljOgogICAgIGNvbnN0ZXhwciBDaGVja2VkTG9jaygpID0gZGVmYXVsdDsK
ICAgICB2b2lkIGxvY2soKSBXVEZfQUNRVUlSRVNfTE9DSygpIHsgTG9jazo6bG9jaygpOyB9Ci0g
ICAgYm9vbCB0cnlMb2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgeyByZXR1cm4gTG9j
azo6dHJ5TG9jaygpOyB9Ci0gICAgYm9vbCB0cnlfbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLX0lG
KHRydWUpIHsgcmV0dXJuIExvY2s6OnRyeV9sb2NrKCk7IH0gLy8gTk9MSU5UOiBJbnRlbnRpb25h
bCBkZXZpYXRpb24gdG8gc3VwcG9ydCBzdGQ6OnNjb3BlZF9sb2NrLgorICAgIGJvb2wgdHJ5TG9j
aygpIFdURl9UUllfQUNRVUlSRV9MT0NLKHRydWUpIHsgcmV0dXJuIExvY2s6OnRyeUxvY2soKTsg
fQorICAgIGJvb2wgdHJ5X2xvY2soKSBXVEZfVFJZX0FDUVVJUkVfTE9DSyh0cnVlKSB7IHJldHVy
biBMb2NrOjp0cnlfbG9jaygpOyB9IC8vIE5PTElOVDogSW50ZW50aW9uYWwgZGV2aWF0aW9uIHRv
IHN1cHBvcnQgc3RkOjpzY29wZWRfbG9jay4KICAgICB2b2lkIHVubG9jaygpIFdURl9SRUxFQVNF
U19MT0NLKCkgeyBMb2NrOjp1bmxvY2soKTsgfQogICAgIHZvaWQgdW5sb2NrRmFpcmx5KCkgV1RG
X1JFTEVBU0VTX0xPQ0soKSB7IExvY2s6OnVubG9ja0ZhaXJseSgpOyB9CiAgICAgdm9pZCBzYWZl
cG9pbnQoKSB7IExvY2s6OnNhZmVwb2ludCgpOyB9CkBAIC03NSw4ICs3NSw2IEBAIHB1YmxpYzoK
IC8vIGRlY2xhcmF0aW9uLgogaW5saW5lIHZvaWQgYXNzZXJ0SXNIZWxkKGNvbnN0IENoZWNrZWRM
b2NrJiBsb2NrKSBXVEZfQVNTRVJUU19BQ1FVSVJFRF9MT0NLKGxvY2spIHsgQVNTRVJUX1VOVVNF
RChsb2NrLCBsb2NrLmlzSGVsZCgpKTsgfQogCi11c2luZyBBZG9wdExvY2tUYWcgPSBzdGQ6OmFk
b3B0X2xvY2tfdDsKLQogLy8gTG9ja2VyIHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3aXRoIENoZWNr
ZWRMb2NrLgogLy8gTm9uLW1vdmFibGUgc2ltcGxlIHNjb3BlZCBsb2NrIGhvbGRlci4KIC8vIEV4
YW1wbGU6IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKQEAgLTg1LDI4ICs4Myw1NyBAQCBjbGFz
cyBXVEZfQ0FQQUJJTElUWV9TQ09QRURfTE9DSyBMb2NrZXI8Q2hlY2tlZExvY2s+IHsKIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBMb2NrZXIoQ2hlY2tlZExvY2smIGxvY2spIFdURl9BQ1FVSVJFU19M
T0NLKGxvY2spCiAgICAgICAgIDogbV9sb2NrKGxvY2spCisgICAgICAgICwgbV9pc0xvY2tlZCh0
cnVlKQogICAgIHsKICAgICAgICAgbV9sb2NrLmxvY2soKTsKICAgICB9CiAgICAgTG9ja2VyKEFk
b3B0TG9ja1RhZywgQ2hlY2tlZExvY2smIGxvY2spIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCiAg
ICAgICAgIDogbV9sb2NrKGxvY2spCisgICAgICAgICwgbV9pc0xvY2tlZCh0cnVlKQorICAgIHsK
KyAgICB9CisgICAgTG9ja2VyKERlZmVyTG9ja1RhZywgQ2hlY2tlZExvY2smIGxvY2spIFdURl9F
WENMVURFU19MT0NLKGxvY2spCisgICAgICAgIDogbV9sb2NrKGxvY2spCiAgICAgewogICAgIH0K
ICAgICB+TG9ja2VyKCkgV1RGX1JFTEVBU0VTX0xPQ0soKQogICAgIHsKKyAgICAgICAgaWYgKG1f
aXNMb2NrZWQpCisgICAgICAgICAgICBtX2xvY2sudW5sb2NrKCk7CisgICAgfQorICAgIGJvb2wg
dHJ5TG9jaygpIFdURl9UUllfQUNRVUlSRV9MT0NLKHRydWUpCisgICAgeworICAgICAgICBBU1NF
UlQoIW1faXNMb2NrZWQpOworICAgICAgICByZXR1cm4gbV9pc0xvY2tlZCA9IG1fbG9jay50cnlM
b2NrKCk7CisgICAgfQorICAgIHZvaWQgbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLKCkKKyAgICB7
CisgICAgICAgIEFTU0VSVCghbV9pc0xvY2tlZCk7CisgICAgICAgIG1fbG9jay5sb2NrKCk7Cisg
ICAgICAgIG1faXNMb2NrZWQgPSB0cnVlOworICAgIH0KKyAgICB2b2lkIHVubG9jaygpIFdURl9S
RUxFQVNFU19MT0NLKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2lzTG9ja2VkKTsKICAgICAg
ICAgbV9sb2NrLnVubG9jaygpOworICAgICAgICBtX2lzTG9ja2VkID0gZmFsc2U7CiAgICAgfQor
CisgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNMb2NrZWQ7
IH0KKwogICAgIExvY2tlcihjb25zdCBMb2NrZXI8Q2hlY2tlZExvY2s+JikgPSBkZWxldGU7CiAg
ICAgTG9ja2VyJiBvcGVyYXRvcj0oY29uc3QgTG9ja2VyPENoZWNrZWRMb2NrPiYpID0gZGVsZXRl
OworCiBwcml2YXRlOgogICAgIENoZWNrZWRMb2NrJiBtX2xvY2s7CisgICAgYm9vbCBtX2lzTG9j
a2VkIHsgZmFsc2UgfTsKIH07CiAKIExvY2tlcihDaGVja2VkTG9jayYpIC0+IExvY2tlcjxDaGVj
a2VkTG9jaz47CiBMb2NrZXIoQWRvcHRMb2NrVGFnLCBDaGVja2VkTG9jayYpIC0+IExvY2tlcjxD
aGVja2VkTG9jaz47CitMb2NrZXIoRGVmZXJMb2NrVGFnLCBDaGVja2VkTG9jayYpIC0+IExvY2tl
cjxDaGVja2VkTG9jaz47CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6OmFzc2Vy
dElzSGVsZDsKIHVzaW5nIFdURjo6Q2hlY2tlZExvY2s7Ci11c2luZyBXVEY6OkFkb3B0TG9ja1Rh
ZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2tlci5oIGIvU291cmNlL1dURi93dGYv
TG9ja2VyLmgKaW5kZXggOGIwZTE5MmI1ZWJhNGI4ODc2M2E4NDRkMWVjMGNiYTE0YzBjOTg4YS4u
MGRhYWZlMDQ0NmVjYzlmZTdiOGZlMzNlNDdiYTg4ODJlZjMzYzc3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvTG9ja2VyLmgKKysrIGIvU291cmNlL1dURi93dGYvTG9ja2VyLmgKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRl
IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8
d3RmL0NvbXBpbGVyLmg+CkBAIC01NCwxMSArNTUsMTggQEAgcHJvdGVjdGVkOgogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBjbGFzcyBEcm9wTG9ja0ZvclNjb3BlOwogCit1c2luZyBBZG9wdExvY2tU
YWcgPSBzdGQ6OmFkb3B0X2xvY2tfdDsKK2NvbnN0ZXhwciBBZG9wdExvY2tUYWcgQWRvcHRMb2Nr
ID0gQWRvcHRMb2NrVGFnKCk7Cit1c2luZyBEZWZlckxvY2tUYWcgPSBzdGQ6OmRlZmVyX2xvY2tf
dDsKK2NvbnN0ZXhwciBEZWZlckxvY2tUYWcgRGVmZXJMb2NrID0gRGVmZXJMb2NrVGFnKCk7CisK
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBjbGFzcyBMb2NrZXIgOiBwdWJsaWMgQWJzdHJhY3RMb2Nr
ZXIgewogcHVibGljOgogICAgIGV4cGxpY2l0IExvY2tlcihUJiBsb2NrYWJsZSkgOiBtX2xvY2th
YmxlKCZsb2NrYWJsZSkgeyBsb2NrKCk7IH0KICAgICBleHBsaWNpdCBMb2NrZXIoVCogbG9ja2Fi
bGUpIDogbV9sb2NrYWJsZShsb2NrYWJsZSkgeyBsb2NrKCk7IH0KKyAgICBMb2NrZXIoQWRvcHRM
b2NrVGFnLCBUJiBsb2NrYWJsZSkgOiBtX2xvY2thYmxlKCZsb2NrYWJsZSksIG1faXNMb2NrZWQo
dHJ1ZSkgeyB9CisgICAgTG9ja2VyKERlZmVyTG9ja1RhZywgVCYgbG9ja2FibGUpIDogbV9sb2Nr
YWJsZSgmbG9ja2FibGUpIHsgfQogCiAgICAgLy8gWW91IHNob3VsZCBiZSB3YXJ5IG9mIHVzaW5n
IHRoaXMgY29uc3RydWN0b3IuIEl0J3Mgb25seSBhcHBsaWNhYmxlCiAgICAgLy8gaW4gcGxhY2Vz
IHdoZXJlIHRoZXJlIGlzIGEgbG9ja2luZyBwcm90b2NvbCBmb3IgYSBwYXJ0aWN1bGFyIG9iamVj
dApAQCAtNjYsODQgKzc0LDc0IEBAIHB1YmxpYzoKICAgICAvLyB0aGlzIG9mdGVuIGhhcHBlbnMg
d2hlbiBhbiBvYmplY3QgaXMgbmV3bHkgYWxsb2NhdGVkIGFuZCBpdCBjYW4gbm90CiAgICAgLy8g
YmUgYWNjZXNzZWQgY29uY3VycmVudGx5LgogICAgIExvY2tlcihOb0xvY2tpbmdOZWNlc3NhcnlU
YWcpIDogbV9sb2NrYWJsZShudWxscHRyKSB7IH0KLSAgICAKKwogICAgIExvY2tlcihzdGQ6OnVu
ZGVybHlpbmdfdHlwZV90PE5vTG9ja2luZ05lY2Vzc2FyeVRhZz4pID0gZGVsZXRlOwogCiAgICAg
fkxvY2tlcigpCiAgICAgewotICAgICAgICB1bmxvY2soKTsKKyAgICAgICAgaWYgKG1faXNMb2Nr
ZWQpCisgICAgICAgICAgICB1bmxvY2soKTsKKyAgICB9CisKKyAgICBib29sIHRyeUxvY2soKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKG1fbG9ja2FibGUpOworICAgICAgICBBU1NFUlQoIW1faXNM
b2NrZWQpOworICAgICAgICBpZiAoIW1fbG9ja2FibGUgfHwgIW1fbG9ja2FibGUtPnRyeUxvY2so
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgbV9pc0xvY2tlZCA9IHRydWU7
CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgTG9ja2VyIHRy
eUxvY2soVCYgbG9ja2FibGUpCisgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsg
cmV0dXJuIG1faXNMb2NrZWQ7IH0KKworICAgIHZvaWQgdW5sb2NrKCkKICAgICB7Ci0gICAgICAg
IExvY2tlciByZXN1bHQoTm9Mb2NraW5nTmVjZXNzYXJ5KTsKLSAgICAgICAgaWYgKGxvY2thYmxl
LnRyeUxvY2soKSkgewotICAgICAgICAgICAgcmVzdWx0Lm1fbG9ja2FibGUgPSAmbG9ja2FibGU7
Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICBBU1NFUlQobV9pc0xvY2tlZCk7
CisgICAgICAgIGNvbXBpbGVyRmVuY2UoKTsKKyAgICAgICAgaWYgKG1fbG9ja2FibGUpIHsKKyAg
ICAgICAgICAgIFRTQU5fQU5OT1RBVEVfSEFQUEVOU19CRUZPUkUobV9sb2NrYWJsZSk7CisgICAg
ICAgICAgICBtX2xvY2thYmxlLT51bmxvY2soKTsKKyAgICAgICAgICAgIG1faXNMb2NrZWQgPSBm
YWxzZTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIFQq
IGxvY2thYmxlKCkgeyByZXR1cm4gbV9sb2NrYWJsZTsgfQotICAgIAotICAgIGV4cGxpY2l0IG9w
ZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiAhIW1fbG9ja2FibGU7IH0KLSAgICAKLSAgICB2
b2lkIHVubG9ja0Vhcmx5KCkKKyAgICB2b2lkIGxvY2soKQogICAgIHsKLSAgICAgICAgdW5sb2Nr
KCk7Ci0gICAgICAgIG1fbG9ja2FibGUgPSBudWxscHRyOworICAgICAgICBBU1NFUlQoIW1faXNM
b2NrZWQpOworICAgICAgICBpZiAobV9sb2NrYWJsZSkgeworICAgICAgICAgICAgbV9sb2NrYWJs
ZS0+bG9jaygpOworICAgICAgICAgICAgVFNBTl9BTk5PVEFURV9IQVBQRU5TX0FGVEVSKG1fbG9j
a2FibGUpOworICAgICAgICAgICAgbV9pc0xvY2tlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICAg
ICAgY29tcGlsZXJGZW5jZSgpOwogICAgIH0KICAgICAKICAgICAvLyBJdCdzIGdyZWF0IHRvIGJl
IGFibGUgdG8gcGFzcyBsb2NrZXJzIGFyb3VuZC4gSXQgZW5hYmxlcyBjdXN0b20gbG9ja2luZyBh
ZGFwdG9ycyBsaWtlCiAgICAgLy8gSlNDOjpMb2NrRHVyaW5nTWFya2luZy4KICAgICBMb2NrZXIo
TG9ja2VyJiYgb3RoZXIpCi0gICAgICAgIDogbV9sb2NrYWJsZShvdGhlci5tX2xvY2thYmxlKQor
ICAgICAgICA6IG1fbG9ja2FibGUoc3RkOjpleGNoYW5nZShvdGhlci5tX2xvY2thYmxlLCBudWxs
cHRyKSkKKyAgICAgICAgLCBtX2lzTG9ja2VkKHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9pc0xvY2tl
ZCwgZmFsc2UpKQogICAgIHsKICAgICAgICAgQVNTRVJUKCZvdGhlciAhPSB0aGlzKTsKLSAgICAg
ICAgb3RoZXIubV9sb2NrYWJsZSA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIExvY2tlciYg
b3BlcmF0b3I9KExvY2tlciYmIG90aGVyKQogICAgIHsKICAgICAgICAgQVNTRVJUKCZvdGhlciAh
PSB0aGlzKTsKLSAgICAgICAgbV9sb2NrYWJsZSA9IG90aGVyLm1fbG9ja2FibGU7Ci0gICAgICAg
IG90aGVyLm1fbG9ja2FibGUgPSBudWxscHRyOworICAgICAgICBtX2xvY2thYmxlID0gc3RkOjpl
eGNoYW5nZShvdGhlci5tX2xvY2thYmxlLCBudWxscHRyKTsKKyAgICAgICAgbV9pc0xvY2tlZCA9
IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9pc0xvY2tlZCwgZmFsc2UpOwogICAgICAgICByZXR1cm4g
KnRoaXM7CiAgICAgfQogICAgIAogcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZT4KICAg
ICBmcmllbmQgY2xhc3MgRHJvcExvY2tGb3JTY29wZTsKLQotICAgIHZvaWQgdW5sb2NrKCkKLSAg
ICB7Ci0gICAgICAgIGNvbXBpbGVyRmVuY2UoKTsKLSAgICAgICAgaWYgKG1fbG9ja2FibGUpIHsK
LSAgICAgICAgICAgIFRTQU5fQU5OT1RBVEVfSEFQUEVOU19CRUZPUkUobV9sb2NrYWJsZSk7Ci0g
ICAgICAgICAgICBtX2xvY2thYmxlLT51bmxvY2soKTsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IHZvaWQgbG9jaygpCi0gICAgewotICAgICAgICBpZiAobV9sb2NrYWJsZSkgewotICAgICAgICAg
ICAgbV9sb2NrYWJsZS0+bG9jaygpOwotICAgICAgICAgICAgVFNBTl9BTk5PVEFURV9IQVBQRU5T
X0FGVEVSKG1fbG9ja2FibGUpOwotICAgICAgICB9Ci0gICAgICAgIGNvbXBpbGVyRmVuY2UoKTsK
LSAgICB9CiAgICAgCi0gICAgVCogbV9sb2NrYWJsZTsKKyAgICBUKiBtX2xvY2thYmxlIHsgbnVs
bHB0ciB9OworICAgIGJvb2wgbV9pc0xvY2tlZCB7IGZhbHNlIH07CiB9OwogCi10ZW1wbGF0ZTx0
eXBlbmFtZSBMb2NrVHlwZT4KLUxvY2tlcjxMb2NrVHlwZT4gdHJ5SG9sZExvY2soTG9ja1R5cGUm
KSBXQVJOX1VOVVNFRF9SRVRVUk47Ci10ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4KLUxvY2tl
cjxMb2NrVHlwZT4gdHJ5SG9sZExvY2soTG9ja1R5cGUmIGxvY2spCi17Ci0gICAgcmV0dXJuIExv
Y2tlcjxMb2NrVHlwZT46OnRyeUxvY2sobG9jayk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIExv
Y2tUeXBlPgogY2xhc3MgRHJvcExvY2tGb3JTY29wZSA6IHByaXZhdGUgQWJzdHJhY3RMb2NrZXIg
ewogICAgIFdURl9GT1JCSURfSEVBUF9BTExPQ0FUSU9OKERyb3BMb2NrRm9yU2NvcGUpOwpAQCAt
MTY2LDYgKzE2NCw4IEBAIHByaXZhdGU6CiB9CiAKIHVzaW5nIFdURjo6QWJzdHJhY3RMb2NrZXI7
Cit1c2luZyBXVEY6OkFkb3B0TG9jazsKK3VzaW5nIFdURjo6RGVmZXJMb2NrOwogdXNpbmcgV1RG
OjpMb2NrZXI7CiB1c2luZyBXVEY6Ok5vTG9ja2luZ05lY2Vzc2FyeVRhZzsKIHVzaW5nIFdURjo6
Tm9Mb2NraW5nTmVjZXNzYXJ5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9nZ2VyLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAppbmRleCBlOTlkNDliZjJlOWQ5YWQyYTZiM2I2MTgw
ZGNiZDk4Y2Q3ODVmYTU0Li43MjliMjU0MzM0MjZmNmJmNzBkYzIyMjY1NGZiZDRiZTQ2NjgxOGE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9Mb2dnZXIuaApAQCAtMzIyLDEwICszMjIsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKGNo
YW5uZWwuc3RhdGUgPT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYgfHwgbGV2ZWwgPiBjaGFubmVs
LmxldmVsKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmICghb2JzZXJ2ZXJMb2Nr
KCkudHJ5TG9jaygpKQorICAgICAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBvYnNlcnZl
ckxvY2soKSB9OworICAgICAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG9ic2Vy
dmVyTG9jaygpIH07CiAgICAgICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogb2JzZXJ2ZXJz
KCkpCiAgICAgICAgICAgICBvYnNlcnZlci5kaWRMb2dNZXNzYWdlKGNoYW5uZWwsIGxldmVsLCB7
IENvbnNvbGVMb2dWYWx1ZTxBcmd1bWVudD46OnRvVmFsdWUoYXJndW1lbnRzKS4uLiB9KTsKICAg
ICB9CkBAIC0zNTMsMTAgKzM1MywxMCBAQCBwcml2YXRlOgogICAgICAgICBpZiAoY2hhbm5lbC5z
dGF0ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZiB8fCBsZXZlbCA+IGNoYW5uZWwubGV2ZWwp
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKCFvYnNlcnZlckxvY2soKS50cnlM
b2NrKCkpCisgICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG9ic2VydmVyTG9jaygp
IH07CisgICAgICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgICAgIHJldHVybjsK
IAotICAgICAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgb2JzZXJ2ZXJMb2Nr
KCkgfTsKICAgICAgICAgZm9yIChPYnNlcnZlciYgb2JzZXJ2ZXIgOiBvYnNlcnZlcnMoKSkKICAg
ICAgICAgICAgIG9ic2VydmVyLmRpZExvZ01lc3NhZ2UoY2hhbm5lbCwgbGV2ZWwsIHsgQ29uc29s
ZUxvZ1ZhbHVlPEFyZ3VtZW50Pjo6dG9WYWx1ZShhcmd1bWVudHMpLi4uIH0pOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZFNhZmV0eUFuYWx5c2lzLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9UaHJlYWRTYWZldHlBbmFseXNpcy5oCmluZGV4IDAzYWMxNWE5MzNlNzBmYzFhMWZm
MDQ3OGYwYjk5M2NlMThkNDk3ZWMuLjdkOGRlZjFmYmIxYjIxM2NjYzc0ZDAzYjIxMWEzYTg4OWIx
ZWQzODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZFNhZmV0eUFuYWx5c2lzLmgK
KysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkU2FmZXR5QW5hbHlzaXMuaApAQCAtMzUsOSArMzUs
OSBAQAogI2RlZmluZSBXVEZfVEhSRUFEX0FOTk9UQVRJT05fQVRUUklCVVRFKHgpCiAjZW5kaWYK
IAotI2RlZmluZSBXVEZfQUNRVUlSRVNfTE9DS19JRiguLi4pIFdURl9USFJFQURfQU5OT1RBVElP
Tl9BVFRSSUJVVEUodHJ5X2FjcXVpcmVfY2FwYWJpbGl0eShfX1ZBX0FSR1NfXykpCisjZGVmaW5l
IFdURl9UUllfQUNRVUlSRV9MT0NLKC4uLikgV1RGX1RIUkVBRF9BTk5PVEFUSU9OX0FUVFJJQlVU
RSh0cnlfYWNxdWlyZV9jYXBhYmlsaXR5KF9fVkFfQVJHU19fKSkKICNkZWZpbmUgV1RGX0FDUVVJ
UkVTX0xPQ0soLi4uKSBXVEZfVEhSRUFEX0FOTk9UQVRJT05fQVRUUklCVVRFKGFjcXVpcmVfY2Fw
YWJpbGl0eShfX1ZBX0FSR1NfXykpCi0jZGVmaW5lIFdURl9BQ1FVSVJFU19TSEFSRURfTE9DS19J
RiguLi4pIFdURl9USFJFQURfQU5OT1RBVElPTl9BVFRSSUJVVEUodHJ5X2FjcXVpcmVfc2hhcmVk
X2NhcGFiaWxpdHkoX19WQV9BUkdTX18pKQorI2RlZmluZSBXVEZfVFJZX0FDUVVJUkVfU0hBUkVE
X0xPQ0soLi4uKSBXVEZfVEhSRUFEX0FOTk9UQVRJT05fQVRUUklCVVRFKHRyeV9hY3F1aXJlX3No
YXJlZF9jYXBhYmlsaXR5KF9fVkFfQVJHU19fKSkKICNkZWZpbmUgV1RGX0FDUVVJUkVTX1NIQVJF
RF9MT0NLKC4uLikgV1RGX1RIUkVBRF9BTk5PVEFUSU9OX0FUVFJJQlVURShhY3F1aXJlX3NoYXJl
ZF9jYXBhYmlsaXR5KF9fVkFfQVJHU19fKSkKICNkZWZpbmUgV1RGX0FTU0VSVFNfQUNRVUlSRURf
TE9DSyh4KSBXVEZfVEhSRUFEX0FOTk9UQVRJT05fQVRUUklCVVRFKGFzc2VydF9jYXBhYmlsaXR5
KHgpKQogI2RlZmluZSBXVEZfQVNTRVJUU19BQ1FVSVJFRF9TSEFSRURfTE9DSyh4KSBXVEZfVEhS
RUFEX0FOTk9UQVRJT05fQVRUUklCVVRFKGFzc2VydF9zaGFyZWRfY2FwYWJpbGl0eSh4KSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKaW5kZXggMTg0NDAyMWU2ZjFhYzQ0
ZmU2MzI1YzYyOGJhZTZmOGUxN2ZiYTY3MC4uZjQyNDIzOWY0MzQ1YzY1Y2NjNDA3MDhhMmZjYzk2
MTdjNTE5ZDgyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKQEAg
LTg1LDExICs4NSwxMCBAQCBib29sIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6
OnVwZGF0ZURhdGFTb3VyY2UoY29uc3QgQ0FBdWRpb1N0cmVhbURlcwogewogICAgIEFTU0VSVCgh
aXNNYWluVGhyZWFkKCkpOwogCi0gICAgaWYgKCFtX2RhdGFTb3VyY2VMb2NrLnRyeUxvY2soKSkK
KyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX2RhdGFTb3VyY2VMb2NrIH07CisgICAg
aWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBMb2Nr
ZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9kYXRhU291cmNlTG9jayB9OwotCiAgICAg
YXV0byBkYXRhU291cmNlID0gQXVkaW9TYW1wbGVEYXRhU291cmNlOjpjcmVhdGUoYXVkaW9EZXNj
cmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAxLCBtX3NvdXJjZS5nZXQoKSk7CiAgICAgaWYgKGRhdGFT
b3VyY2UtPnNldElucHV0Rm9ybWF0KGF1ZGlvRGVzY3JpcHRpb24pKSB7CiAgICAgICAgIGNhbGxP
bk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlLmNwcAppbmRleCA2MzNjNTA2YTAwNzY3ZmZiODg1OGNiMDYwZjUxZDc2OTk2YmExNzJh
Li5mYjRjNDRmN2RmYzYxYjJjNGYxODYwNzI4ZGI2NDc4OTU5ZjFhMGRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5v
ZGUuY3BwCkBAIC0xMDIsMTAgKzEwMiwxMCBAQCB2b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6
cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdl
IHVzZSB0cnlIb2xkTG9jaygpIGluc3RlYWQuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9j
ayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgewotICAgICAgICAvLyBUb28gYmFk
IC0gdHJ5SG9sZExvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBjaGFu
Z2luZyBidWZmZXJzIGFuZCB3ZXJlIGFscmVhZHkgb3V0cHV0dGluZyBzaWxlbmNlIGFueXdheS4K
KyAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2Ug
dXNlIHRyeUxvY2soKSBpbnN0ZWFkLgorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1f
cHJvY2Vzc0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpIHsKKyAgICAgICAgLy8g
VG9vIGJhZCAtIHRyeUxvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBj
aGFuZ2luZyBidWZmZXJzIGFuZCB3ZXJlIGFscmVhZHkgb3V0cHV0dGluZyBzaWxlbmNlIGFueXdh
eS4KICAgICAgICAgb3V0cHV0QnVzLnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNwcAppbmRleCBmZWJh
MzMwZWQwMjBhN2E2OWE0NDNmMzIyZWRhZGQ3ZTFhOTZkNmVjLi5iMmJjY2YwMjM4OGUxN2U1ZmJh
NzhiOTAwYjA4NDJiMzAzNjhjN2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb05vZGUuY3BwCkBAIC01NzgsMTMgKzU3OCwxNSBAQCB2b2lkIEF1ZGlvTm9kZTo6
ZGVjcmVtZW50Q29ubmVjdGlvbkNvdW50KCkKIHsKICAgICAvLyBUaGUgYWN0dWFsbHkgd29yayBm
b3IgZGVyZWYgaGFwcGVucyBjb21wbGV0ZWx5IHdpdGhpbiB0aGUgYXVkaW8gY29udGV4dCdzIGdy
YXBoIGxvY2suCiAgICAgLy8gSW4gdGhlIGNhc2Ugb2YgdGhlIGF1ZGlvIHRocmVhZCwgd2UgbXVz
dCB1c2UgYSB0cnlMb2NrIHRvIGF2b2lkIGdsaXRjaGVzLgotICAgIGlmIChhdXRvIGxvY2tlciA9
IGNvbnRleHQoKS5pc0F1ZGlvVGhyZWFkKCkgPyBMb2NrZXI8UmVjdXJzaXZlTG9jaz46OnRyeUxv
Y2soY29udGV4dCgpLmdyYXBoTG9jaygpKSA6IExvY2tlciB7IGNvbnRleHQoKS5ncmFwaExvY2so
KSB9KSB7Ci0gICAgICAgIC8vIFRoaXMgaXMgd2hlcmUgdGhlIHJlYWwgZGVyZWYgd29yayBoYXBw
ZW5zLgotICAgICAgICBkZWNyZW1lbnRDb25uZWN0aW9uQ291bnRXaXRoTG9jaygpOworICAgIGlm
IChjb250ZXh0KCkuaXNBdWRpb1RocmVhZCgpKSB7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBE
ZWZlckxvY2ssIGNvbnRleHQoKS5ncmFwaExvY2soKSB9OworICAgICAgICBpZiAobG9ja2VyLnRy
eUxvY2soKSkKKyAgICAgICAgICAgIGRlY3JlbWVudENvbm5lY3Rpb25Db3VudFdpdGhMb2NrKCk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNvbnRleHQoKS5hZGREZWZlcnJlZERlY3JlbWVu
dENvbm5lY3Rpb25Db3VudCh0aGlzKTsKICAgICB9IGVsc2UgewotICAgICAgICAvLyBXZSB3ZXJl
IHVuYWJsZSB0byBnZXQgdGhlIGxvY2ssIHNvIHB1dCB0aGlzIGluIGEgbGlzdCB0byBmaW5pc2gg
dXAgbGF0ZXIuCi0gICAgICAgIEFTU0VSVChjb250ZXh0KCkuaXNBdWRpb1RocmVhZCgpKTsKLSAg
ICAgICAgY29udGV4dCgpLmFkZERlZmVycmVkRGVjcmVtZW50Q29ubmVjdGlvbkNvdW50KHRoaXMp
OworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgY29udGV4dCgpLmdyYXBoTG9jaygpIH07CisgICAg
ICAgIGRlY3JlbWVudENvbm5lY3Rpb25Db3VudFdpdGhMb2NrKCk7CiAgICAgfQogCiAgICAgLy8g
T25jZSBBdWRpb0NvbnRleHQ6OnVuaW5pdGlhbGl6ZSgpIGlzIGNhbGxlZCB0aGVyZSdzIG5vIG1v
cmUgY2hhbmNlcyBmb3IgZGVsZXRlTWFya2VkTm9kZXMoKSB0byBnZXQgY2FsbGVkLCBzbyB3ZSBj
YWxsIGhlcmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1UaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1UaW1lbGluZS5jcHAKaW5kZXggMDQwNmVhYjc3MTBlOGVkOTdkZTg5ODNhMjAwZTUx
NTZjMjI5ZWFhZi4uMjg0M2YyMzk2YzU5OWRiNDM1NTA5YTQ5NzQ3NDhiYmIwMTE3MWFlMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxp
bmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRp
bWVsaW5lLmNwcApAQCAtMzI3LDkgKzMyNyw5IEBAIHZvaWQgQXVkaW9QYXJhbVRpbWVsaW5lOjpy
ZW1vdmVDYW5jZWxsZWRFdmVudHMoc2l6ZV90IGZpcnN0RXZlbnRUb1JlbW92ZSkKIE9wdGlvbmFs
PGZsb2F0PiBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlRm9yQ29udGV4dFRpbWUoQmFzZUF1ZGlv
Q29udGV4dCYgY29udGV4dCwgZmxvYXQgZGVmYXVsdFZhbHVlLCBmbG9hdCBtaW5WYWx1ZSwgZmxv
YXQgbWF4VmFsdWUpCiB7CiAgICAgewotICAgICAgICBpZiAoIW1fZXZlbnRzTG9jay50cnlMb2Nr
KCkpCisgICAgICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fZXZlbnRzTG9jayB9Owor
ICAgICAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwotICAgICAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9ldmVu
dHNMb2NrIH07CiAgICAgICAgIGlmICghbV9ldmVudHMuc2l6ZSgpIHx8IFNlY29uZHMgeyBjb250
ZXh0LmN1cnJlbnRUaW1lKCkgfSA8IG1fZXZlbnRzWzBdLnRpbWUoKSkKICAgICAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiAgICAgfQpAQCAtMzQ3LDExICszNDcsMTEgQEAgT3B0aW9uYWw8
ZmxvYXQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVGb3JDb250ZXh0VGltZShCYXNlQXVkaW9D
b250ZXh0JiBjb250ZXgKIGZsb2F0IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yRnJhbWVS
YW5nZShzaXplX3Qgc3RhcnRGcmFtZSwgc2l6ZV90IGVuZEZyYW1lLCBmbG9hdCBkZWZhdWx0VmFs
dWUsIGZsb2F0IG1pblZhbHVlLCBmbG9hdCBtYXhWYWx1ZSwgZmxvYXQqIHZhbHVlcywgdW5zaWdu
ZWQgbnVtYmVyT2ZWYWx1ZXMsIGRvdWJsZSBzYW1wbGVSYXRlLCBkb3VibGUgY29udHJvbFJhdGUp
CiB7CiAgICAgLy8gV2UgY2FuJ3QgY29udGVuZCB0aGUgbG9jayBpbiB0aGUgcmVhbHRpbWUgYXVk
aW8gdGhyZWFkLgotICAgIGlmICghbV9ldmVudHNMb2NrLnRyeUxvY2soKSkgeworICAgIExvY2tl
ciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fZXZlbnRzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRy
eUxvY2soKSkgewogICAgICAgICBzdGQ6OmZpbGxfbih2YWx1ZXMsIG51bWJlck9mVmFsdWVzLCBk
ZWZhdWx0VmFsdWUpOwogICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwogICAgIH0KLSAgICBM
b2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9ldmVudHNMb2NrIH07CiAKICAgICBm
bG9hdCB2YWx1ZSA9IHZhbHVlc0ZvckZyYW1lUmFuZ2VJbXBsKHN0YXJ0RnJhbWUsIGVuZEZyYW1l
LCBkZWZhdWx0VmFsdWUsIHZhbHVlcywgbnVtYmVyT2ZWYWx1ZXMsIHNhbXBsZVJhdGUsIGNvbnRy
b2xSYXRlKTsKIApAQCAtOTg2LDkgKzk4Niw5IEBAIGJvb2wgQXVkaW9QYXJhbVRpbWVsaW5lOjpp
c0V2ZW50Q3VycmVudChjb25zdCBQYXJhbUV2ZW50JiBldmVudCwgY29uc3QgUGFyYW1FdmVuCiAK
IGJvb2wgQXVkaW9QYXJhbVRpbWVsaW5lOjpoYXNWYWx1ZXMoc2l6ZV90IHN0YXJ0RnJhbWUsIGRv
dWJsZSBzYW1wbGVSYXRlKSBjb25zdAogewotICAgIGlmICghbV9ldmVudHNMb2NrLnRyeUxvY2so
KSkKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX2V2ZW50c0xvY2sgfTsKKyAgICBp
ZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIExvY2tlciBs
b2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2V2ZW50c0xvY2sgfTsKIAogICAgIC8vIFJldHVy
biBmYWxzZSBpZiB0aGVyZSBhcmUgbm8gZXZlbnRzIGluIHRoZSB0aW1lIHJhbmdlLgogICAgIGF1
dG8gZW5kRnJhbWUgPSBzdGFydEZyYW1lICsgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1T
aXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0Tm9kZS5jcHAKaW5kZXggMzQ5NjI2ZmE0ZDQzZWQyNTNmY2Y5MDczMmI2NDJhZjJiYzVhYTQ2
MC4uYmM5MDk5NTlkNTNjNGRiY2QxZDNjNzg4ZTViMDc5NjdjNWE5ODU3MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCkBA
IC0xOTEsOCArMTkxLDggQEAgdm9pZCBBdWRpb1dvcmtsZXROb2RlOjpwcm9jZXNzKHNpemVfdCBm
cmFtZXNUb1Byb2Nlc3MpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAKLSAgICBh
dXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwotICAgIGlmICghbG9ja2Vy
IHx8ICFtX3Byb2Nlc3NvciB8fCAmVGhyZWFkOjpjdXJyZW50KCkgIT0gbV93b3JrbGV0VGhyZWFk
KSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNzTG9jayB9OworICAg
IGlmICghbG9ja2VyLnRyeUxvY2soKSB8fCAhbV9wcm9jZXNzb3IgfHwgJlRocmVhZDo6Y3VycmVu
dCgpICE9IG1fd29ya2xldFRocmVhZCkgewogICAgICAgICAvLyBXZSdyZSBub3QgcmVhZHkgeWV0
IG9yIHdlIGFyZSBnZXR0aW5nIGRlc3Ryb3llZC4gSW4gdGhpcyBjYXNlLCB3ZSBvdXRwdXQgc2ls
ZW5jZS4KICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mT3V0cHV0cygp
OyArK2kpCiAgICAgICAgICAgICBvdXRwdXQoaSktPmJ1cygpLT56ZXJvKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAppbmRl
eCBlMjAyZDdkMjYyYWQwNjQ3YmRhNzZmYmE1MjdmMGE1YTE2MjFhNzgwLi44ZTRjM2Q2MjIwMjVl
OWFjZmUxNDNkOTIzZWZkMWY2YzExNmZmZmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKQEAgLTU2MCwxNCArNTYwLDE2
IEBAIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6aGFuZGxlUHJlUmVuZGVyVGFza3MoY29uc3QgQXVk
aW9JT1Bvc2l0aW9uJiBvdXRwdXRQb3NpdGlvCiAKICAgICAvLyBBdCB0aGUgYmVnaW5uaW5nIG9m
IGV2ZXJ5IHJlbmRlciBxdWFudHVtLCB0cnkgdG8gdXBkYXRlIHRoZSBpbnRlcm5hbCByZW5kZXJp
bmcgZ3JhcGggc3RhdGUgKGZyb20gbWFpbiB0aHJlYWQgY2hhbmdlcykuCiAgICAgLy8gSXQncyBP
SyBpZiB0aGUgdHJ5TG9jaygpIGZhaWxzLCB3ZSdsbCBqdXN0IHRha2Ugc2xpZ2h0bHkgbG9uZ2Vy
IHRvIHBpY2sgdXAgdGhlIGNoYW5nZXMuCi0gICAgaWYgKGF1dG8gbG9ja2VyID0gTG9ja2VyPFJl
Y3Vyc2l2ZUxvY2s+Ojp0cnlMb2NrKGdyYXBoTG9jaygpKSkgewotICAgICAgICAvLyBGaXh1cCB0
aGUgc3RhdGUgb2YgYW55IGRpcnR5IEF1ZGlvU3VtbWluZ0p1bmN0aW9ucyBhbmQgQXVkaW9Ob2Rl
T3V0cHV0cy4KLSAgICAgICAgaGFuZGxlRGlydHlBdWRpb1N1bW1pbmdKdW5jdGlvbnMoKTsKLSAg
ICAgICAgaGFuZGxlRGlydHlBdWRpb05vZGVPdXRwdXRzKCk7CisgICAgTG9ja2VyIGxvY2tlciB7
IERlZmVyTG9jaywgZ3JhcGhMb2NrKCkgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCisg
ICAgICAgIHJldHVybjsKIAotICAgICAgICB1cGRhdGVBdXRvbWF0aWNQdWxsTm9kZXMoKTsKLSAg
ICAgICAgbV9vdXRwdXRQb3NpdGlvbiA9IG91dHB1dFBvc2l0aW9uOwotICAgIH0KKyAgICAvLyBG
aXh1cCB0aGUgc3RhdGUgb2YgYW55IGRpcnR5IEF1ZGlvU3VtbWluZ0p1bmN0aW9ucyBhbmQgQXVk
aW9Ob2RlT3V0cHV0cy4KKyAgICBoYW5kbGVEaXJ0eUF1ZGlvU3VtbWluZ0p1bmN0aW9ucygpOwor
ICAgIGhhbmRsZURpcnR5QXVkaW9Ob2RlT3V0cHV0cygpOworCisgICAgdXBkYXRlQXV0b21hdGlj
UHVsbE5vZGVzKCk7CisgICAgbV9vdXRwdXRQb3NpdGlvbiA9IG91dHB1dFBvc2l0aW9uOwogfQog
CiBBdWRpb0lPUG9zaXRpb24gQmFzZUF1ZGlvQ29udGV4dDo6b3V0cHV0UG9zaXRpb24oKQpAQCAt
NTg0LDggKzU4Niw4IEBAIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6aGFuZGxlUG9zdFJlbmRlclRh
c2tzKCkKICAgICAvLyBNdXN0IHVzZSBhIHRyeUxvY2soKSBoZXJlIHRvby4gRG9uJ3Qgd29ycnks
IHRoZSBsb2NrIHdpbGwgdmVyeSByYXJlbHkgYmUgY29udGVuZGVkIGFuZCB0aGlzIG1ldGhvZCBp
cyBjYWxsZWQgZnJlcXVlbnRseS4KICAgICAvLyBUaGUgd29yc3QgdGhhdCBjYW4gaGFwcGVuIGlz
IHRoYXQgdGhlcmUgd2lsbCBiZSBzb21lIG5vZGVzIHdoaWNoIHdpbGwgdGFrZSBzbGlnaHRseSBs
b25nZXIgdGhhbiB1c3VhbCB0byBiZSBkZWxldGVkIG9yIHJlbW92ZWQKICAgICAvLyBmcm9tIHRo
ZSByZW5kZXIgZ3JhcGggKGluIHdoaWNoIGNhc2UgdGhleSdsbCByZW5kZXIgc2lsZW5jZSkuCi0g
ICAgYXV0byBsb2NrZXIgPSBMb2NrZXI8UmVjdXJzaXZlTG9jaz46OnRyeUxvY2soZ3JhcGhMb2Nr
KCkpOwotICAgIGlmICghbG9ja2VyKQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIGdy
YXBoTG9jaygpIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICByZXR1cm47
CiAKICAgICAvLyBUYWtlIGNhcmUgb2YgZmluaXNoaW5nIGFueSBkZXJlZnMgd2hlcmUgdGhlIHRy
eUxvY2soKSBmYWlsZWQgcHJldmlvdXNseS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwCmluZGV4IDU5NzFmZDAwMjI1YmNhY2NjMGU1Mzcz
ZTY3MDJkYjRjZDI5ZTg1MDAuLjFiYzlmMmVjZjZlNTMxZDFjMTA0N2Q0NWFiZGM3Yzc4ZGFlN2Mx
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVy
Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJO
b2RlLmNwcApAQCAtOTIsOSArOTIsOSBAQCB2b2lkIENvbnZvbHZlck5vZGU6OnByb2Nlc3Moc2l6
ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICBBU1NFUlQob3V0cHV0QnVzKTsKIAogICAgIC8vIFN5
bmNocm9uaXplIHdpdGggcG9zc2libGUgZHluYW1pYyBjaGFuZ2VzIHRvIHRoZSBpbXB1bHNlIHJl
c3BvbnNlLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7Ci0g
ICAgaWYgKCFsb2NrZXIpIHsKLSAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUhvbGRMb2NrKCkgZmFp
bGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2Ygc2V0dGluZyBhIG5ldyBpbXB1bHNlIHJl
c3BvbnNlLgorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fcHJvY2Vzc0xvY2sgfTsK
KyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpIHsKKyAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUxv
Y2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBzZXR0aW5nIGEgbmV3IGlt
cHVsc2UgcmVzcG9uc2UuCiAgICAgICAgIG91dHB1dEJ1cy0+emVybygpOwogICAgICAgICByZXR1
cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9N
ZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwCmluZGV4IGExYTQ2YTY3ZWVh
MjNjNTU5MjEzYTczMDg4ODJjZTUwNjc0YmIyNjQuLmNkYjNhNzM3ZDVhNDZjMzJjMDgwZDBmMmE0
MDhkNzYxMDE3YmE5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAKQEAgLTE1NSwx
MSArMTU1LDExIEBAIHZvaWQgTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlOjpwcm9jZXNzKHNp
emVfdCBudW1iZXJPZkZyYW1lcykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIFVz
ZSB0cnlIb2xkTG9jaygpIHRvIGF2b2lkIGNvbnRlbnRpb24gaW4gdGhlIHJlYWwtdGltZSBhdWRp
byB0aHJlYWQuCisgICAgLy8gVXNlIHRyeUxvY2soKSB0byBhdm9pZCBjb250ZW50aW9uIGluIHRo
ZSByZWFsLXRpbWUgYXVkaW8gdGhyZWFkLgogICAgIC8vIElmIHdlIGZhaWwgdG8gYWNxdWlyZSB0
aGUgbG9jayB0aGVuIHRoZSBIVE1MTWVkaWFFbGVtZW50IG11c3QgYmUgaW4gdGhlIG1pZGRsZSBv
ZgogICAgIC8vIHJlY29uZmlndXJpbmcgaXRzIHBsYXliYWNrIGVuZ2luZSwgc28gd2Ugb3V0cHV0
IHNpbGVuY2UgaW4gdGhpcyBjYXNlLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9w
cm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVm
ZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKSB7CiAg
ICAgICAgIC8vIFdlIGZhaWxlZCB0byBhY3F1aXJlIHRoZSBsb2NrLgogICAgICAgICBvdXRwdXRC
dXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcApp
bmRleCBjNTY2MmQ2MDlhZjYwYTZhZWJhNmRhNzIxYTM1ZDFkNTg4YWQ1MTc1Li5iODU0MmQ0ZTNi
ZmMxMjA0M2M2MjMyZGQ4ZTdmZmIzNTNhYThjMWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2Rl
LmNwcApAQCAtMTM5LDE2ICsxMzksMTEgQEAgdm9pZCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9k
ZTo6cHJvY2VzcyhzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICAvLyBVc2UgdHJ5SG9sZExvY2soKSB0byBhdm9pZCBjb250ZW50aW9uIGluIHRoZSBy
ZWFsLXRpbWUgYXVkaW8gdGhyZWFkLgorICAgIC8vIFVzZSB0cnlMb2NrKCkgdG8gYXZvaWQgY29u
dGVudGlvbiBpbiB0aGUgcmVhbC10aW1lIGF1ZGlvIHRocmVhZC4KICAgICAvLyBJZiB3ZSBmYWls
IHRvIGFjcXVpcmUgdGhlIGxvY2sgdGhlbiB0aGUgTWVkaWFTdHJlYW0gbXVzdCBiZSBpbiB0aGUg
bWlkZGxlIG9mCiAgICAgLy8gYSBmb3JtYXQgY2hhbmdlLCBzbyB3ZSBvdXRwdXQgc2lsZW5jZSBp
biB0aGlzIGNhc2UuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2Nr
KTsKLSAgICBpZiAoIWxvY2tlcikgewotICAgICAgICAvLyBXZSBmYWlsZWQgdG8gYWNxdWlyZSB0
aGUgbG9jay4KLSAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0gICAgaWYgKG1fc291cmNlTnVtYmVyT2ZDaGFubmVscyAhPSBvdXRwdXRCdXMtPm51bWJl
ck9mQ2hhbm5lbHMoKSkgeworICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fcHJvY2Vz
c0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkgfHwgbV9zb3VyY2VOdW1iZXJPZkNo
YW5uZWxzICE9IG91dHB1dEJ1cy0+bnVtYmVyT2ZDaGFubmVscygpKSB7CiAgICAgICAgIG91dHB1
dEJ1cy0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcAppbmRleCBjNmY2OWQyMzA1
YzIxNTk5NjcxMzlhODQ3OWZhZTVkMzE4MjIyNTg3Li5mZmE0Njc5NmI4ZWNhNzUyNzc5YjE2ZDFl
M2M1MDNlNjg4MWY4YjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL09zY2lsbGF0b3JOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL09zY2lsbGF0b3JOb2RlLmNwcApAQCAtMzQ5LDEwICszNDksMTAgQEAgdm9pZCBPc2NpbGxh
dG9yTm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgIGlmIChmcmFtZXNU
b1Byb2Nlc3MgPiBtX3BoYXNlSW5jcmVtZW50cy5zaXplKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBsb2NrLCBzbyB3ZSB1
c2UgdHJ5SG9sZExvY2soKSBpbnN0ZWFkLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2so
bV9wcm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKLSAgICAgICAgLy8gVG9vIGJhZCAt
IHRyeUhvbGRMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdp
bmcgd2F2ZS10YWJsZXMuCisgICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0
aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlMb2NrKCkgaW5zdGVhZC4KKyAgICBMb2NrZXIgbG9ja2Vy
IHsgRGVmZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygp
KSB7CisgICAgICAgIC8vIFRvbyBiYWQgLSB0cnlMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGlu
IHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgd2F2ZS10YWJsZXMuCiAgICAgICAgIG91dHB1dEJ1cy56
ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcAppbmRleCA3Y2NmMjRkNjcwYjdmNmUxZWYxYTM3Nzlm
OWI3MDQ4NjgyZmZjZWQ3Li45NDFjYjY2MTQ1Yzc4OTI1ZTgwNDc4ZDNhOTM0NWEzMmU5ODBmNTdj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAK
QEAgLTEyOSwxMCArMTI5LDEwIEBAIHZvaWQgUGFubmVyTm9kZTo6cHJvY2VzcyhzaXplX3QgZnJh
bWVzVG9Qcm9jZXNzKQogICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gVGhlIGF1ZGlvIHRocmVh
ZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlIb2xkTG9jaygpIGluc3Rl
YWQuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBp
ZiAoIWxvY2tlcikgewotICAgICAgICAvLyBUb28gYmFkIC0gdHJ5SG9sZExvY2soKSBmYWlsZWQu
IFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBjaGFuZ2luZyB0aGUgcGFubmVyLgorICAgIC8v
IFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBsb2NrLCBzbyB3ZSB1c2UgdHJ5
TG9jaygpIGluc3RlYWQuCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNz
TG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgeworICAgICAgICAvLyBUb28gYmFk
IC0gdHJ5TG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGNoYW5naW5n
IHRoZSBwYW5uZXIuCiAgICAgICAgIGRlc3RpbmF0aW9uLT56ZXJvKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Nj
cmlwdFByb2Nlc3Nvck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9T
Y3JpcHRQcm9jZXNzb3JOb2RlLmNwcAppbmRleCAyMmU5N2U4YWEyNWVhYzJmNzA4ZTIzZjc2YTg5
YjI4ZDkzMDMwMTMwLi43MmJlYWRmNGQ3MDA0MjBhYTQ2YzY1ZmRkMjc4YmQyZGQxMDFlNmRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nv
ck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJv
Y2Vzc29yTm9kZS5jcHAKQEAgLTE1OCw4ICsxNTgsOCBAQCB2b2lkIFNjcmlwdFByb2Nlc3Nvck5v
ZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICB1bnNpZ25lZCBidWZmZXJJ
bmRleCA9IHRoaXMtPmJ1ZmZlckluZGV4KCk7CiAgICAgQVNTRVJUKGJ1ZmZlckluZGV4IDwgYnVm
ZmVyQ291bnQpOwogCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX2J1ZmZlckxvY2tz
W2J1ZmZlckluZGV4XSk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsg
RGVmZXJMb2NrLCBtX2J1ZmZlckxvY2tzW2J1ZmZlckluZGV4XSB9OworICAgIGlmICghbG9ja2Vy
LnRyeUxvY2soKSkgewogICAgICAgICAvLyBXZSdyZSBsYXRlIGluIGhhbmRsaW5nIHRoZSBwcmV2
aW91cyByZXF1ZXN0LiBUaGUgbWFpbiB0aHJlYWQgbXVzdCBiZQogICAgICAgICAvLyB2ZXJ5IGJ1
c3kuIFRoZSBiZXN0IHdlIGNhbiBkbyBpcyBjbGVhciBvdXQgdGhlIGJ1ZmZlciBvdXJzZWxmIGhl
cmUuCiAgICAgICAgIG91dHB1dEJ1cy0+emVybygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5jcHAKaW5kZXggMTIwODg1
MDgwODkwMzYxZDRjNDBhYTZhY2FiOTU0YmE3MDBiNTcyOS4uMzhkNzdkYjU1YjYxZmI1MDAyZGNk
ZmEyOWQxYjMyY2ZiMGQ1NmQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwCkBAIC04MywxMCArODMsMTAgQEAg
dm9pZCBXYXZlU2hhcGVyUHJvY2Vzc29yOjpwcm9jZXNzKGNvbnN0IEF1ZGlvQnVzKiBzb3VyY2Us
IEF1ZGlvQnVzKiBkZXN0aW5hdGlvbiwKICAgICBpZiAoIWNoYW5uZWxDb3VudE1hdGNoZXMpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24g
dGhpcyBsb2NrLCBzbyB3ZSB1c2UgdHJ5SG9sZExvY2soKSBpbnN0ZWFkLgotICAgIGF1dG8gbG9j
a2VyID0gdHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKLSAg
ICAgICAgLy8gVG9vIGJhZCAtIHRyeUhvbGRMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRo
ZSBtaWRkbGUgb2YgYSBzZXRDdXJ2ZSgpIGNhbGwuCisgICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBj
YW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlMb2NrKCkgaW5zdGVhZC4KKyAg
ICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAgaWYgKCFs
b2NrZXIudHJ5TG9jaygpKSB7CisgICAgICAgIC8vIFRvbyBiYWQgLSB0cnlMb2NrKCkgZmFpbGVk
LiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgYSBzZXRDdXJ2ZSgpIGNhbGwuCiAgICAgICAg
IGRlc3RpbmF0aW9uLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCmlu
ZGV4IGViMmQzYWE4ZDYzN2U0ZDRiYTYzYTEzODE4MGEwN2RiMjljNDA2ZjUuLjcxNzFkODM4MDI1
OTFkZjBkM2RhMDkwODlhYjQ1ZjQzYmQwNDhmYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0yNjMzLDcgKzI2
MzMsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0ZVZlcnRleEFycmF5KFdl
YkdMVmVydGV4QXJyYXlPYmplY3QqIGFycmF5T2JqZQogCiAgICAgaWYgKCFhcnJheU9iamVjdC0+
aXNEZWZhdWx0T2JqZWN0KCkgJiYgYXJyYXlPYmplY3QgPT0gbV9ib3VuZFZlcnRleEFycmF5T2Jq
ZWN0KSB7CiAgICAgICAgIC8vIGJpbmRWZXJ0ZXhBcnJheSBncmFicyB0aGUgbG9jayBpbnRlcm5h
bGx5LgotICAgICAgICBsb2NrZXIudW5sb2NrRWFybHkoKTsKKyAgICAgICAgbG9ja2VyLnVubG9j
aygpOwogICAgICAgICBiaW5kVmVydGV4QXJyYXkobnVsbHB0cik7IC8vIFRoZSBkZWZhdWx0IFZB
TyB3YXMgcmVtb3ZlZCBpbiBPcGVuR0wgMy4zIGJ1dCBub3QgZnJvbSBXZWJHTCAyOyBiaW5kIHRo
ZSBkZWZhdWx0IGZvciBXZWJHTCB0byB1c2UuCiAgICAgICAgIGxvY2tlciA9IExvY2tlciB7IG9i
amVjdEdyYXBoTG9jaygpIH07CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCmluZGV4IGViNTRmMGQ1MWQ3ODYwYjlmNjA0MGQ4OTM1
ODg0NDg4MmE2NWJiNjIuLmZmNDU2MTdiZjM4ZDJmM2EyZDY2ZDRkY2E3YjNkNjA0YzM0MjY2NzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9u
LmgKQEAgLTk2LDE0ICs5NiwxMyBAQCBpbmxpbmUgdm9pZCBBdWRpb0Rlc3RpbmF0aW9uOjpjbGVh
ckNhbGxiYWNrKCkKIAogaW5saW5lIHZvaWQgQXVkaW9EZXN0aW5hdGlvbjo6Y2FsbFJlbmRlckNh
bGxiYWNrKEF1ZGlvQnVzKiBzb3VyY2VCdXMsIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywgc2l6
ZV90IGZyYW1lc1RvUHJvY2VzcywgY29uc3QgQXVkaW9JT1Bvc2l0aW9uJiBvdXRwdXRQb3NpdGlv
bikKIHsKLSAgICBpZiAobV9jYWxsYmFja0xvY2sudHJ5TG9jaygpKSB7Ci0gICAgICAgIExvY2tl
ciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2NhbGxiYWNrTG9jayB9OwotICAgICAgICBp
ZiAobV9jYWxsYmFjaykgewotICAgICAgICAgICAgbV9jYWxsYmFjay0+cmVuZGVyKHNvdXJjZUJ1
cywgZGVzdGluYXRpb25CdXMsIGZyYW1lc1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24pOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9j
aywgbV9jYWxsYmFja0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpIHsKKyAgICAg
ICAgZGVzdGluYXRpb25CdXMtPnplcm8oKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBk
ZXN0aW5hdGlvbkJ1cy0+emVybygpOworICAgIGlmIChtX2NhbGxiYWNrKQorICAgICAgICBtX2Nh
bGxiYWNrLT5yZW5kZXIoc291cmNlQnVzLCBkZXN0aW5hdGlvbkJ1cywgZnJhbWVzVG9Qcm9jZXNz
LCBvdXRwdXRQb3NpdGlvbik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCmluZGV4IDI3
YjI5ODJkYzNmZDkxNjg1ZDMxN2E3ZWQxYTljMWU2ZWU0N2IyNmYuLmZkODg1NmZiNjI3OWQwNGIz
NzY2MDNhMTJkY2UxNTQ3YWM0YzQyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcApAQCAtMjAyLDggKzIwMiw4IEBAIHZvaWQgUmV2
ZXJiQ29udm9sdmVyOjpwcm9jZXNzKGNvbnN0IEF1ZGlvQ2hhbm5lbCogc291cmNlQ2hhbm5lbCwg
QXVkaW9DaGFubmVsKiBkCiAgICAgLy8gc2lnbmFsIGZyb20gdGltZSB0byB0aW1lLCBzaW5jZSB3
ZSdsbCBnZXQgdG8gaXQgdGhlIG5leHQgdGltZSB3ZSdyZSBjYWxsZWQuICBXZSdyZSBjYWxsZWQg
cmVwZWF0ZWRseQogICAgIC8vIGFuZCBmcmVxdWVudGx5IChhcm91bmQgZXZlcnkgM21zKS4gIFRo
ZSBiYWNrZ3JvdW5kIHRocmVhZCBpcyBwcm9jZXNzaW5nIHdlbGwgaW50byB0aGUgZnV0dXJlIGFu
ZCBoYXMgYSBjb25zaWRlcmFibGUgYW1vdW50IG9mIAogICAgIC8vIGxlZXdheSBoZXJlLi4uCi0g
ICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX2JhY2tncm91bmRUaHJlYWRMb2NrKTsKLSAg
ICBpZiAoIWxvY2tlcikKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX2JhY2tncm91
bmRUaHJlYWRMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX21vcmVJbnB1dEJ1ZmZlcmVkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29j
b2EuY3BwCmluZGV4IDM5MmMzNjE0MDRmYzJjOTUwZWJiOTM4ODlhNjI5Y2I1YTM3MWU0MmEuLjU1
NzY3YzE5NzM2NWQyOWE3MTY3NjBiNGU3MTk0NjFhMjVlYzcwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlv
bkNvY29hLmNwcApAQCAtMjE5LDEwICsyMTksMTAgQEAgT1NTdGF0dXMgQXVkaW9EZXN0aW5hdGlv
bkNvY29hOjpyZW5kZXIoZG91YmxlIHNhbXBsZVRpbWUsIHVpbnQ2NF90IGhvc3RUaW1lLCBVSW4K
ICAgICB9CiAKICAgICAvLyBXaGVuIHRoZXJlIGlzIGEgQXVkaW9Xb3JrbGV0LCB3ZSBkbyByZW5k
ZXJpbmcgb24gdGhlIEF1ZGlvV29ya2xldFRocmVhZC4KLSAgICBpZiAoIW1fZGlzcGF0Y2hUb1Jl
bmRlclRocmVhZExvY2sudHJ5TG9jaygpKQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ss
IG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2Nr
KCkpCiAgICAgICAgIHJldHVybiAtMTsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tU
YWcgeyB9LCBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrIH07CiAgICAgaWYgKCFtX2Rpc3Bh
dGNoVG9SZW5kZXJUaHJlYWQpCiAgICAgICAgIHJlbmRlck9uUmVuZGVyaW5nVGhlYWRJZlBsYXlp
bmcoZnJhbWVzVG9SZW5kZXIpOwogICAgIGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvU291cmNl
UHJvdmlkZXJHU3RyZWFtZXIuY3BwCmluZGV4IGY3NzVhMzJmZDQ3ODAyZWU1Mzg4NTcxNjNlZDc3
OWExMjEzOGNkNDcuLjNjMTBkODNiNDhjZGIxYTJjMTA0ZDQzNzY1MmQzZWFiMGYzYmE0MzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb1Nv
dXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lci5jcHAKQEAgLTE1OSwx
MCArMTU5LDEwIEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lcjo6Y29uZmlndXJl
QXVkaW9CaW4oR3N0RWxlbWVudCogYXVkaW9CaW4sIEdzdEVsCiB2b2lkIEF1ZGlvU291cmNlUHJv
dmlkZXJHU3RyZWFtZXI6OnByb3ZpZGVJbnB1dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVz
VG9Qcm9jZXNzKQogewogICAgIEdTVF9UUkFDRSgiRmV0Y2hpbmcgYnVmZmVycyBmcm9tIGFkYXB0
ZXJzIik7Ci0gICAgaWYgKCFtX2FkYXB0ZXJMb2NrLnRyeUxvY2soKSkKKyAgICBMb2NrZXIgbG9j
a2VyIHsgRGVmZXJMb2NrLCBtX2FkYXB0ZXJMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9j
aygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFn
IHsgfSwgbV9hZGFwdGVyTG9jayB9OwogICAgIGZvciAoYXV0byYgaXQgOiBtX2FkYXB0ZXJzKQog
ICAgICAgICBjb3B5R1N0cmVhbWVyQnVmZmVyc1RvQXVkaW9DaGFubmVsKGl0LnZhbHVlLmdldCgp
LCBidXMsIGl0LmtleSAtIDEsIGZyYW1lc1RvUHJvY2Vzcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VH
U3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dl
YktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCA2ZWY4MzUyODNmZjM1M2E4ZmUx
MjI3YjA3MGExZGRkNTZkNGEzZjhmLi5jN2U3Njg2MTliNDdlMzA5MTNhOGNkNjg5NGQ0ODY5MzYz
N2UyOWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFt
ZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5j
cHAKQEAgLTQwOCwxMSArNDA4LDEwIEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYkF1ZGlvU3JjUmVu
ZGVySXRlcmF0aW9uKFdlYktpdFdlYkF1ZGlvU3JjKiBzcmMpCiAgICAgICAgIHByaXYtPmRpc3Bh
dGNoRG9uZSA9IGZhbHNlOwogICAgIH0KIAotICAgIGlmICghcHJpdi0+ZGlzcGF0Y2hUb1JlbmRl
clRocmVhZExvY2sudHJ5TG9jaygpKQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIHBy
aXYtPmRpc3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9j
aygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFn
IHsgfSwgcHJpdi0+ZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2sgfTsKLQogICAgIGlmICghcHJp
di0+ZGlzcGF0Y2hUb1JlbmRlclRocmVhZEZ1bmN0aW9uKQogICAgICAgICB3ZWJLaXRXZWJBdWRp
b1NyY1JlbmRlckFuZFB1c2hGcmFtZXMoR1JlZlB0cjxHc3RFbGVtZW50PihHU1RfRUxFTUVOVF9D
QVNUKHNyYykpLCBXVEZNb3ZlKCpjaGFubmVsQnVmZmVyTGlzdCkpOwogICAgIGVsc2UgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAppbmRleCBj
MDY0Y2NlNGNhODYyYmQ0Njg5Mjg0MWZmYTViYzE5ZmI3ZjIxM2RhLi4yODQ4YmFiMTA4OWRiZWUx
MTQxZmQxZTY5NTQwMWZlZWE0MjdhODE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcApAQCAtMTM1LDcgKzEzNSw4IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBwdXJnZVRpbWVyRmlyZWQoKQogICAgIHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKLSAgICAgICAgaWYgKGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobG9jaygpKSkK
KyAgICAgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbG9jaygpIH07CisgICAgICAgIGlm
IChsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICAgICAgY2xlYXJTY3JhdGNoQnVmZmVyKCk7CiAg
ICAgfQogCkBAIC02OTQsOCArNjk1LDggQEAgdm9pZCBTaGFkb3dCbHVyOjpkcmF3UmVjdFNoYWRv
d1dpdGhUaWxpbmcoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbnMKIHsKICAg
ICBSZWZQdHI8SW1hZ2VCdWZmZXI+IGxheWVySW1hZ2VCdWZmZXI7CiAjaWYgVVNFKENHKQotICAg
IGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2soU2NyYXRjaEJ1ZmZlcjo6bG9jaygpKTsKLSAgICBp
ZiAobG9ja2VyKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgU2NyYXRjaEJ1ZmZl
cjo6bG9jaygpIH07CisgICAgaWYgKGxvY2tlci50cnlMb2NrKCkpIHsKICAgICAgICAgbGF5ZXJJ
bWFnZUJ1ZmZlciA9IFNjcmF0Y2hCdWZmZXI6OnNpbmdsZXRvbigpLmdldFNjcmF0Y2hCdWZmZXIo
dGVtcGxhdGVTaXplKTsKICAgICAgICAgaWYgKCFsYXllckltYWdlQnVmZmVyKQogICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtNzU0LDggKzc1NSw4IEBAIHZvaWQgU2hhZG93Qmx1cjo6ZHJhd0luc2V0
U2hhZG93V2l0aFRpbGluZyhjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29uCiB7
CiAgICAgUmVmUHRyPEltYWdlQnVmZmVyPiBsYXllckltYWdlQnVmZmVyOwogI2lmIFVTRShDRykK
LSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKFNjcmF0Y2hCdWZmZXI6OmxvY2soKSk7Ci0g
ICAgaWYgKGxvY2tlcikgeworICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIFNjcmF0Y2hC
dWZmZXI6OmxvY2soKSB9OworICAgIGlmIChsb2NrZXIudHJ5TG9jaygpKSB7CiAgICAgICAgIGxh
eWVySW1hZ2VCdWZmZXIgPSBTY3JhdGNoQnVmZmVyOjpzaW5nbGV0b24oKS5nZXRTY3JhdGNoQnVm
ZmVyKHRlbXBsYXRlU2l6ZSk7CiAgICAgICAgIGlmICghbGF5ZXJJbWFnZUJ1ZmZlcikKICAgICAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQy5tbQppbmRleCA0Nzk3NjgzYjgwYmI0OTA1YTdhODE2ODg3YTQzNTRkMTI5OGVjZDQx
Li40YmNmM2ExMGMzYjJkZWRjNzI5MjE4MTI5NTBkODhmMDI5MmI4MDY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCkBAIC05NCw3ICs5NCw3
IEBAIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akMoKQogCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQoQXVk
aW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsKLSAgICAvLyBQcm90ZWN0IGFj
Y2VzcyB0byBtX3JpbmdCdWZmZXIgYnkgdXNpbmcgdHJ5SG9sZExvY2soKS4gSWYgd2UgZmFpbGVk
CisgICAgLy8gUHJvdGVjdCBhY2Nlc3MgdG8gbV9yaW5nQnVmZmVyIGJ5IHVzaW5nIHRyeUxvY2so
KS4gSWYgd2UgZmFpbGVkCiAgICAgLy8gdG8gYXF1aXJlLCBhIHJlLWNvbmZpZ3VyZSBpcyB1bmRl
cndheSwgYW5kIG1fcmluZ0J1ZmZlciBpcyB1bnNhZmUgdG8gYWNjZXNzLgogICAgIC8vIEVtaXQg
c2lsZW5jZS4KICAgICBpZiAoIW1fdGFwU3RvcmFnZSkgewpAQCAtMTAyLDggKzEwMiw4IEBAIHZv
aWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dChBdWRpb0J1cyogYnVz
LCBzaXplX3QgZnJhbWVzVG9Qcm9jCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRv
IGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fdGFwU3RvcmFnZS0+bG9jayk7Ci0gICAgaWYgKCFsb2Nr
ZXIgfHwgIW1fcmluZ0J1ZmZlcikgeworICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1f
dGFwU3RvcmFnZS0+bG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSB8fCAhbV9yaW5n
QnVmZmVyKSB7CiAgICAgICAgIGJ1cy0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IDgxMzk5NmM3NmM2NDFiN2NhZTA0NmY1OTcx
ZWM3NDdjZjkxY2U5ZDcuLjgxZTc1NzNlZDQyMTVkY2Q3ZTQ0MGExYWM4ZjM1YmU1YzEyYTViMTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTI1NCw4ICsyNTQsOCBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5xdWV1ZVZpZGVvU2FtcGxlKE1l
ZGlhU2FtcGxlJiBzYW1wbAogICAgIGlmICghbV92aXNpYmxlKQogICAgICAgICByZXR1cm47CiAK
LSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9j
aygpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fY2FuRW5xdWV1ZURpc3BsYXlMYXll
ciB8fCAhbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgfHwgbV9zYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXItPmRpZEZhaWwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKaW5kZXgg
MTFiZWExMmI2NmRjNTQ2MjVhODI5ZjkwNzRhOTJjMDM3NGNlMjg5NS4uMTViNTcyOGY3ZmRiYTgx
MTcxZjI3Y2M4OTYyODkxZTE4NzdiYjU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1l
ci5jcHAKQEAgLTk5LDcgKzk5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgICAgIGF1dG8gc2FtcGxlID0gV1RGTW92ZShtX3NhbXBsZSk7Ci0gICAgICAgIGxv
Y2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBsb2NrZXIudW5sb2NrKCk7CiAgICAgICAgIGlm
IChMSUtFTFkoR1NUX0lTX1NBTVBMRShzYW1wbGUuZ2V0KCkpKSkKICAgICAgICAgICAgIHdlYmtp
dFZpZGVvU2lua1JlcGFpbnRSZXF1ZXN0ZWQoc2luaywgc2FtcGxlLmdldCgpKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJL
aXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRl
Y3J5cHRvckdTdHJlYW1lci5jcHAKaW5kZXggMzIwMTc0ZDViZmU4NzZkYjhjMTQyMzU5YThlMWEw
MWFhODZjMGZkYi4uZThlNzI5ZjgzMDFhODc2NmU2NGJmNjM1MmYwMjA2YTdhNjNlZjBhOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9X
ZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5
cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIuY3BwCkBAIC0zOTcsNyArMzk3LDcgQEAgc3RhdGljIGdi
b29sZWFuIHNpbmtFdmVudEhhbmRsZXIoR3N0QmFzZVRyYW5zZm9ybSogdHJhbnMsIEdzdEV2ZW50
KiBldmVudCkKICAgICAgICAgICAgIGJvb2wgaXNDZG1Qcm94eUF0dGFjaGVkID0gcHJpdi0+Y2Rt
UHJveHk7CiAgICAgICAgICAgICBwcml2LT5pc0ZsdXNoaW5nID0gdHJ1ZTsKICAgICAgICAgICAg
IGlmIChpc0NkbVByb3h5QXR0YWNoZWQpIHsKLSAgICAgICAgICAgICAgICBsb2NrZXIudW5sb2Nr
RWFybHkoKTsKKyAgICAgICAgICAgICAgICBsb2NrZXIudW5sb2NrKCk7CiAgICAgICAgICAgICAg
ICAgcHJpdi0+Y2RtUHJveHktPmFib3J0V2FpdGluZ0ZvcktleSgpOwogICAgICAgICAgICAgfSBl
bHNlCiAgICAgICAgICAgICAgICAgcHJpdi0+Y29uZGl0aW9uLm5vdGlmeU9uZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9XZWJL
aXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCA2
ZDAzZGY5NmFkNDM3OTBkNWFmM2QyYjcyZDc3MDBkMTZmZjJhNGZhLi5kNGRlMWQ5ZTFkYmQyOTJh
NjQ5YjFhOTllMzQ0ZDkyNjgyZjg0MmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dlYktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1dl
YktpdE1lZGlhU291cmNlR1N0cmVhbWVyLmNwcApAQCAtNTA5LDcgKzUwOSw3IEBAIHN0YXRpYyB2
b2lkIHdlYktpdE1lZGlhU3JjTG9vcCh2b2lkKiB1c2VyRGF0YSkKICAgICAgICAgfQogCiAgICAg
ICAgIC8vIFB1c2ggdGhlIGJ1ZmZlciB3aXRob3V0IHRoZSBzdHJlYW1pbmdNZW1iZXJzIGxvY2sg
c28gdGhhdCBmbHVzaGVzIGNhbiBoYXBwZW4gd2hpbGUgaXQgdHJhdmVscyBkb3duc3RyZWFtLgot
ICAgICAgICBzdHJlYW1pbmdNZW1iZXJzLmxvY2tIb2xkZXIoKS51bmxvY2tFYXJseSgpOworICAg
ICAgICBzdHJlYW1pbmdNZW1iZXJzLmxvY2tIb2xkZXIoKS51bmxvY2soKTsKIAogICAgICAgICBB
U1NFUlQoR1NUX0JVRkZFUl9QVFNfSVNfVkFMSUQoYnVmZmVyLmdldCgpKSk7CiAgICAgICAgIEdT
VF9UUkFDRV9PQkpFQ1QocGFkLCAiUHVzaGluZyBidWZmZXIgZG93bnN0cmVhbTogJSIgR1NUX1BU
Ul9GT1JNQVQsIGJ1ZmZlci5nZXQoKSk7CkBAIC01MjUsNyArNTI1LDcgQEAgc3RhdGljIHZvaWQg
d2ViS2l0TWVkaWFTcmNMb29wKHZvaWQqIHVzZXJEYXRhKQogICAgICAgICAvLyBFT1MgZXZlbnRz
IGFuZCBvdGhlciBlbnF1ZXVlZCBldmVudHMgYXJlIGFsc28gc2VudCB1bmxvY2tlZCBzbyB0aGV5
IGNhbiByZWFjdCB0byBmbHVzaGVzIGlmIG5lY2Vzc2FyeS4KICAgICAgICAgR1JlZlB0cjxHc3RF
dmVudD4gZXZlbnQgPSBHUmVmUHRyPEdzdEV2ZW50PihHU1RfRVZFTlQob2JqZWN0LmxlYWtSZWYo
KSkpOwogCi0gICAgICAgIHN0cmVhbWluZ01lbWJlcnMubG9ja0hvbGRlcigpLnVubG9ja0Vhcmx5
KCk7CisgICAgICAgIHN0cmVhbWluZ01lbWJlcnMubG9ja0hvbGRlcigpLnVubG9jaygpOwogICAg
ICAgICBHU1RfREVCVUdfT0JKRUNUKHBhZCwgIlB1c2hpbmcgZXZlbnQgZG93bnN0cmVhbTogJSIg
R1NUX1BUUl9GT1JNQVQsIGV2ZW50LmdldCgpKTsKICAgICAgICAgYm9vbCBldmVudEhhbmRsZWQg
PSBnc3RfcGFkX3B1c2hfZXZlbnQocGFkLCBHUmVmUHRyPEdzdEV2ZW50PihldmVudCkubGVha1Jl
ZigpKTsKICAgICAgICAgaWYgKCFldmVudEhhbmRsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlclVuaXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2Ev
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcAppbmRleCA1ZGNlYTFhNDA4NmUy
MGUxNTdlYmJjZDcxOWJjMzY2MDg5MDRiNjBjLi5lNmYyZTZlMmRmOTRmODRmMWRjMTA0OGQzZDU5
YmU0NmZhMjdkMjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyVW5pdC5jcHAKQEAgLTE0MSwxMCArMTQxLDEwIEBAIHZvaWQgQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpyZXRyaWV2ZUZvcm1hdERlc2NyaXB0aW9uKENvbXBs
ZXRpb25IYW5kCiAKIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Ojp1cGRh
dGVSZW5kZXJTb3VyY2VzSWZOZWNlc3NhcnkoKQogewotICAgIGlmICghbV9wZW5kaW5nUmVuZGVy
U291cmNlc0xvY2sudHJ5TG9jaygpKQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1f
cGVuZGluZ1JlbmRlclNvdXJjZXNMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwg
bV9wZW5kaW5nUmVuZGVyU291cmNlc0xvY2sgfTsKICAgICBpZiAoIW1faGFzUGVuZGluZ1JlbmRl
clNvdXJjZXMpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyQ29jb2EubW0KaW5kZXggNTc2ZjQ0ZTkyYzU4YjkzYzBiNDBkNjY0OTk4MGJjN2U5MGE1
ZWFmYi4uMzQ2MTQxYjAxYzNkMWQ3OGNhOWZmNTRjYWI2NzI5OTdmYTkxMjUzZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNl
UHJvdmlkZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLm1tCkBAIC02NSw4ICs2NSw4IEBAIHZv
aWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hOjpzZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92
aWRlckNsaWVudCogY2xpZW50KQogCiB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6
cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7Ci0g
ICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX2xvY2spOwotICAgIGlmICghbG9ja2VyIHx8
ICFtX2RhdGFTb3VyY2UgfHwgIW1fYXVkaW9CdWZmZXJMaXN0KSB7CisgICAgTG9ja2VyIGxvY2tl
ciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpIHx8ICFt
X2RhdGFTb3VyY2UgfHwgIW1fYXVkaW9CdWZmZXJMaXN0KSB7CiAgICAgICAgIGJ1cy0+emVybygp
OwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwCmluZGV4IDQ3N2Q5NjcyYzcxMmI0NmZjNGViZDdhMjg5
N2U3N2ViMTU4MDg0ODQuLmNmNzQwNjc5NDg0OTVmYTA4ZGJkNzA0MjVmODc1ODAzMWI1MDRmMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0VGhyZWFk
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFRocmVhZC5j
cHAKQEAgLTIwNyw4ICsyMDcsOCBAQCB2b2lkIFdvcmtlck9yV29ya2xldFRocmVhZDo6c3RvcChG
dW5jdGlvbjx2b2lkKCk+JiYgc3RvcHBlZENhbGxiYWNrKQogICAgIC8vIE11dGV4IHByb3RlY3Rp
b24gaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSB0aGF0IG1fd29ya2VyR2xvYmFsU2NvcGUgaXNuJ3Qg
Y2hhbmdlZCBieQogICAgIC8vIFdvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKCkgd2hpbGUgd2Un
cmUgYWNjZXNzaW5nIGl0LiBOb3RlIGFsc28gdGhhdCBzdG9wKCkgY2FuCiAgICAgLy8gYmUgY2Fs
bGVkIGJlZm9yZSBtX3dvcmtlckdsb2JhbFNjb3BlIGlzIGZ1bGx5IGNyZWF0ZWQuCi0gICAgYXV0
byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kR2xvYmFsU2NvcGVMb2Nr
KTsKLSAgICBpZiAoIWxvY2tlcikgeworICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1f
dGhyZWFkQ3JlYXRpb25BbmRHbG9iYWxTY29wZUxvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlM
b2NrKCkpIHsKICAgICAgICAgLy8gVGhlIHRocmVhZCBpcyBzdGlsbCBzdGFydGluZywgc3BpbiB0
aGUgcnVubG9vcCBhbmQgdHJ5IGFnYWluIHRvIGF2b2lkIGRlYWRsb2NrcyBpZiB0aGUgd29ya2Vy
IHRocmVhZAogICAgICAgICAvLyBuZWVkcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBtYWluIHRocmVh
ZCBkdXJpbmcgc3RhcnR1cC4KICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgc3RvcHBl
ZENhbGxiYWNrID0gV1RGTW92ZShzdG9wcGVkQ2FsbGJhY2spXSgpIG11dGFibGUgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFzZS5jcHAKaW5kZXgg
ZDc0YTQ3M2UyMGM5MDE4ZmUzNmQ1YWI2ZGZkOGFhNTJiNWE2OWE1MS4uOTgzOGMwYzExY2I2YTU0
ZTE5MzVmNDBkMTBiZGI3ODI3MTEwY2Q2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuY3BwCkBAIC01NzIsNyArNTcyLDcgQEAgdm9pZCBJ
Y29uRGF0YWJhc2U6OmxvYWRJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkwsIEFs
bG93RGF0YWJhc2VXcml0ZQogICAgICAgICAgICAgICAgIGF1dG8gaWNvbiA9IGl0LT52YWx1ZS5m
aXJzdDsKICAgICAgICAgICAgICAgICBpdC0+dmFsdWUuc2Vjb25kID0gTW9ub3RvbmljVGltZTo6
bm93KCk7CiAgICAgICAgICAgICAgICAgc3RhcnRDbGVhckxvYWRlZEljb25zVGltZXIoKTsKLSAg
ICAgICAgICAgICAgICBsb2NrZXIudW5sb2NrRWFybHkoKTsKKyAgICAgICAgICAgICAgICBsb2Nr
ZXIudW5sb2NrKCk7CiAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShp
Y29uKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpAQCAtNTk2LDcg
KzU5Niw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpsb2FkSWNvbkZvclBhZ2VVUkwoY29uc3QgU3Ry
aW5nJiBwYWdlVVJMLCBBbGxvd0RhdGFiYXNlV3JpdGUKIAogICAgICAgICAgICAgYXV0byBpY29u
ID0gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5maXJzdDsKICAgICAgICAgICAgIHN0YXJ0Q2xl
YXJMb2FkZWRJY29uc1RpbWVyKCk7Ci0gICAgICAgICAgICBsb2NrZXIudW5sb2NrRWFybHkoKTsK
KyAgICAgICAgICAgIGxvY2tlci51bmxvY2soKTsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKFdURk1vdmUoaWNvbikpOwogICAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCmlu
ZGV4IGY0NGM0MTg5MmIzOGY1YmFkMzE5NmQ2OWExYzEzMjRjZTkzYjVlYzMuLjQ4YTM2NjE2OWIz
ZmVhNjNkYTQyODcxMzYwMWU2YmRmMzZmZDVkMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcApAQCAtMzI0LDEx
ICszMjQsMTAgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRlZERlY29kaW5nKFJUQ0Rl
Y29kZXJJZGVudGlmaWVyIGRlY29kZXJJZGVudGlmaWVyLAogICAgIGlmICghZGVjb2RlcikKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVkSW1hZ2VDYWxsYmFja0xv
Y2sudHJ5TG9jaygpKQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIGRlY29kZXItPmRl
Y29kZWRJbWFnZUNhbGxiYWNrTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIGRl
Y29kZXItPmRlY29kZWRJbWFnZUNhbGxiYWNrTG9jayB9OwotCiAgICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGVkSW1hZ2VDYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogCkBAIC00OTIsMTEgKzQ5MSwx
MCBAQCB2b2lkIExpYldlYlJUQ0NvZGVjczo6Y29tcGxldGVkRW5jb2RpbmcoUlRDRW5jb2Rlcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgSVBDOjpEYQogICAgIGlmICghZW5jb2RlcikKICAgICAgICAg
cmV0dXJuOwogCi0gICAgaWYgKCFlbmNvZGVyLT5lbmNvZGVkSW1hZ2VDYWxsYmFja0xvY2sudHJ5
TG9jaygpKQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIGVuY29kZXItPmVuY29kZWRJ
bWFnZUNhbGxiYWNrTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIGVuY29kZXIt
PmVuY29kZWRJbWFnZUNhbGxiYWNrTG9jayB9OwotCiAgICAgaWYgKCFlbmNvZGVyLT5lbmNvZGVk
SW1hZ2VDYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWFiMDgzZjFlMDdkNDVlODhhZGIxNDAxZGJi
NGMyMTViNTM3ODU0YS4uMjM1MzU3OTdkZjU3ZDNhYTEzOTE3NzBlZGJjMmZkMTY4NjMyMDlhYSAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE4IEBACisyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRpYmxlIHdp
dGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMg
aW5jb21wYXRpYmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcy4gSW5zdGVhZCwg
dXNlIHRoZSBmb2xsb3dpbmcgcGF0dGVybjoKKyAgICAgICAgYGBgCisgICAgICAgIExvY2tlciBs
b2NrZXIgeyBEZWZlckxvY2ssIG1fbG9jayB9OworICAgICAgICBpZiAobG9ja2VyLnRyeUxvY2so
KSkKKyAgICAgICAgYGBgCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVj
a2VkTG9ja1Rlc3QuY3BwOgorCiAyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBMb2NrSG9sZGVyIHdpdGggTG9ja2VyIGluIGxvY2Fs
IHZhcmlhYmxlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ2hl
Y2tlZExvY2tUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRM
b2NrVGVzdC5jcHAKaW5kZXggZDgyZWUxYTJlNWJkZTBkY2FiZjM1Y2U5ZGM3MzExMjExMDIyNjI0
YS4uZmJkMDJiM2MzNGIwNGM1NmNhZWZjMzRlNDhhOTc3NTZmYmNhOTYxNiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tlZExvY2tUZXN0LmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkTG9ja1Rlc3QuY3BwCkBAIC0zOCw5
ICszOCw5IEBAIHB1YmxpYzoKICAgICB9CiAgICAgdm9pZCBtYXliZVNldE90aGVyVmFsdWUoaW50
IHZhbHVlKQogICAgIHsKLSAgICAgICAgaWYgKCFtX290aGVyTG9jay50cnlMb2NrKCkpCisgICAg
ICAgIExvY2tlciBob2xkTG9jayB7IERlZmVyTG9jaywgbV9vdGhlckxvY2sgfTsKKyAgICAgICAg
aWYgKCFob2xkTG9jay50cnlMb2NrKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIExv
Y2tlciBob2xkTG9jayB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fb3RoZXJMb2NrIH07CiAgICAgICAg
IG1fb3RoZXJWYWx1ZSA9IHZhbHVlOwogICAgIH0KICAgICAvLyBUaGlzIGZ1bmN0aW9uIGNhbiBi
ZSB1c2VkIHRvIG1hbnVhbGx5IGNoZWNrIHRoYXQgY29tcGlsZSBmYWlscy4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429443</attachid>
            <date>2021-05-22 18:08:53 -0700</date>
            <delta_ts>2021-05-22 18:54:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226145-20210522180852.patch</filename>
            <type>text/plain</type>
            <size>58174</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZjY3MTE3MDhhODUyMGY5MDcyMjIzNDExNThhODk2NDgzZjU5NmE2Li4yYzM5YzIxZDAzMWNkMWVi
ZGJkMDk5YThhNWIwZmFhMTUwOGI2Nzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3
aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlz
IGluY29tcGF0aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuIEluc3RlYWQs
IHVzZSB0aGUgZm9sbG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgRGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlMb2Nr
KCkpCisgICAgICAgIGBgYAorCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpT
Qzo6SGVhcDo6cmVzdW1lVGhlUGVyaXBoZXJ5KToKKyAgICAgICAgKiBydW50aW1lL1ZNVHJhcHMu
Y3BwOgorICAgICAgICAoSlNDOjpWTVRyYXBzOjp0cnlJbnN0YWxsVHJhcEJyZWFrcG9pbnRzKToK
KyAgICAgICAgKiB0b29scy9WTUluc3BlY3Rvci5jcHA6CisgICAgICAgIChKU0M6OlZNSW5zcGVj
dG9yOjpsb2NrKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlcGxhY2UgTG9ja0hvbGRlciB3aXRoIExvY2tlciBpbiBsb2NhbCB2YXJp
YWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKaW5kZXggYjcwYTNmM2U4MTM3MjcyNzA1YTA0YmVkMjM5NmNlMGZjOWViZjc0Yi4uYjdm
ZjcyZTA4OTA3MjYyNDc4MzA2ODVkYzFhZTkyNTk4NzZiMjczNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBA
QAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3aXRoIENsYW5n
IFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0
aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuIEluc3RlYWQsIHVzZSB0aGUg
Zm9sbG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
RGVmZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlMb2NrKCkpCisgICAg
ICAgIGBgYAorCisgICAgICAgICogd3RmL0NoZWNrZWRMb2NrLmg6CisgICAgICAgICogd3RmL0xv
Y2tlci5oOgorICAgICAgICAoV1RGOjpMb2NrZXI6OkxvY2tlcik6CisgICAgICAgIChXVEY6Okxv
Y2tlcjo6fkxvY2tlcik6CisgICAgICAgIChXVEY6OkxvY2tlcjo6dHJ5TG9jayk6CisgICAgICAg
IChXVEY6OkxvY2tlcjo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgIChXVEY6OkxvY2tl
cjo6dW5sb2NrRWFybHkpOgorICAgICAgICAoV1RGOjpMb2NrZXI6Om9wZXJhdG9yPSk6CisgICAg
ICAgIChXVEY6OkxvY2tlcjo6dW5sb2NrKToKKyAgICAgICAgKFdURjo6TG9ja2VyOjpsb2NrKToK
KyAgICAgICAgKiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6bG9nKToKKyAg
ICAgICAgKFdURjo6TG9nZ2VyOjpsb2dWZXJib3NlKToKKyAgICAgICAgKiB3dGYvVGhyZWFkU2Fm
ZXR5QW5hbHlzaXMuaDoKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkb3B0IENoZWNrZWRMb2NrIGluIG1vcmUgcGxhY2VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZDA1N2QyNzEyNzA0YzgxOTBkYTQ0NDIyMDEzOTEyNmU1ZTIxZWE5Yy4uNzNkZmU2MTU5
ZTAwYmMzNTM2YWU2ZWYwN2EyMTE4MDE4YzFlMDdiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1
IEBACisyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRpYmxlIHdpdGggQ2xh
bmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21w
YXRpYmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcy4gSW5zdGVhZCwgdXNlIHRo
ZSBmb2xsb3dpbmcgcGF0dGVybjoKKyAgICAgICAgYGBgCisgICAgICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fbG9jayB9OworICAgICAgICBpZiAobG9ja2VyLnRyeUxvY2soKSkKKyAg
ICAgICAgYGBgCisKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQnVmZmVyU291cmNlTm9kZTo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1BhcmFtVGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRp
bWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFy
YW1UaW1lbGluZTo6dmFsdWVzRm9yRnJhbWVSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1BhcmFtVGltZWxpbmU6Omhhc1ZhbHVlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xl
dE5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb252b2x2ZXJOb2RlOjpwcm9jZXNzKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3MpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3Mp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6T3NjaWxsYXRvck5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vUGFubmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpw
cm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJvY2Vzcyk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldhdmVTaGFwZXJQcm9jZXNzb3I6OnByb2Nlc3MpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
RGVzdGluYXRpb246OmNhbGxSZW5kZXJDYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vUmV2ZXJiQ29udm9sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJldmVyYkNvbnZvbHZl
cjo6cHJvY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5h
dGlvbkNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6
cmVuZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQ
cm92aWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3Zp
ZGVyR1N0cmVhbWVyOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dz
dHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJL
aXRXZWJBdWRpb1NyY1JlbmRlckl0ZXJhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JhdGNoQnVmZmVyOjpwdXJn
ZVRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1cjo6ZHJhd1JlY3RTaGFk
b3dXaXRoVGlsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0JsdXI6OmRyYXdJbnNldFNo
YWRvd1dpdGhUaWxpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6ZW5xdWV1ZVZpZGVvU2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Ojp1cGRhdGVS
ZW5kZXJTb3VyY2VzSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpX
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
T3JXb3JrbGV0VGhyZWFkOjpzdG9wKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0IENoZWNrZWRMb2NrIGluIG1vcmUgcGxhY2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGZjYWM4NDUxYzhhOTM0NTIwOGFiNzFhOTM3OGE4MTc3ZTgxNjg4ODguLjJm
ZmE2N2Y3MzI5ZjhjOTU5NzlkYjFjOTk1ZmViNzVkNTQ5YzcwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUgd2l0
aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBp
bmNvbXBhdGlibGUgd2l0aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLiBJbnN0ZWFkLCB1
c2UgdGhlIGZvbGxvd2luZyBwYXR0ZXJuOgorICAgICAgICBgYGAKKyAgICAgICAgTG9ja2VyIGxv
Y2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisgICAgICAgIGlmIChsb2NrZXIudHJ5TG9jaygp
KQorICAgICAgICBgYGAKKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRl
ZERlY29kaW5nKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWRF
bmNvZGluZyk6CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBBZG9wdCBDaGVja2VkTG9jayBpbiBtb3JlIHBsYWNlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmNwcAppbmRleCBjMWNmODY0Mjc3MDUxYmEwMjEwNThjZjUxNGFkMzcyZmJh
NzQ4MjdiLi42OWJmMzI1NjZjZGYwODcwMzU4MTM1OWRlZGFhZGUzZTAyOTA3MGMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMTcwNyw3ICsxNzA3LDcgQEAgTkVWRVJfSU5M
SU5FIHZvaWQgSGVhcDo6cmVzdW1lVGhlUGVyaXBoZXJ5KCkKICAgICAgICAgICAgIGJvb2wgcmVt
b3ZlID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAodmlzaXRvci5oYXNBY2tub3dsZWRnZWRUaGF0
VGhlTXV0YXRvcklzUmVzdW1lZCgpKQogICAgICAgICAgICAgICAgIHJlbW92ZSA9IHRydWU7Ci0g
ICAgICAgICAgICBlbHNlIGlmIChhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKHZpc2l0b3Iucmln
aHRUb1J1bigpKSkgeworICAgICAgICAgICAgZWxzZSBpZiAoTG9ja2VyIGxvY2tlciB7IERlZmVy
TG9jaywgdmlzaXRvci5yaWdodFRvUnVuKCkgfTsgbG9ja2VyLnRyeUxvY2soKSkgewogICAgICAg
ICAgICAgICAgIHZpc2l0b3IudXBkYXRlTXV0YXRvcklzU3RvcHBlZChsb2NrZXIpOwogICAgICAg
ICAgICAgICAgIHJlbW92ZSA9IHRydWU7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxl
ckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCmluZGV4IGIyZDk5ZmJhODkyMjZkNGMyNDBjZGFi
OGY1YjA1NzU3ODFiZThkZTEuLjJiYjYyM2U5M2JkNTc5M2EzNDEyODc3MGNlNzBiMjc1NmEzZDY1
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuY3BwCkBAIC0y
MjAsNyArMjIwLDcgQEAgdm9pZCBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Ojp0cmFja2lu
Z0NvbXBsZXRlKCkKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHNhbXBsaW5nUHJvZmlsZXItPmdl
dExvY2soKSB9OwogICAgICAgICBzYW1wbGluZ1Byb2ZpbGVyLT5wYXVzZShsb2NrZXIpOwogICAg
ICAgICBWZWN0b3I8U2FtcGxpbmdQcm9maWxlcjo6U3RhY2tUcmFjZT4gc3RhY2tUcmFjZXMgPSBz
YW1wbGluZ1Byb2ZpbGVyLT5yZWxlYXNlU3RhY2tUcmFjZXMobG9ja2VyKTsKLSAgICAgICAgbG9j
a2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tlci51bmxvY2soKTsKIAogICAgICAgICBS
ZWY8UHJvdG9jb2w6OlNjcmlwdFByb2ZpbGVyOjpTYW1wbGVzPiBzYW1wbGVzID0gYnVpbGRTYW1w
bGVzKHZtLCBXVEZNb3ZlKHN0YWNrVHJhY2VzKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2Nr
ZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuY3BwCmluZGV4IGE1MGM5NDIwODJhYWU0
YWQ0YTY0ZDQzOWU3OWI3NWJmMTg1MGNjMWIuLmUwZTUwNDRlZGZhZmNlMThkZTEzY2ZmYTBkZTM2
NzQ3MjkxNDI2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50LmNwcApAQCAtMjIyLDEyICsyMjIsMTIgQEAgdm9pZCBSZW1vdGVJbnNw
ZWN0b3JTb2NrZXRFbmRwb2ludDo6ZGlzY29ubmVjdChDb25uZWN0aW9uSUQgaWQpCiAgICAgaWYg
KGNvbnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2xpc3RlbmVycy5nZXQoaWQpKSB7CiAgICAgICAg
IG1fbGlzdGVuZXJzLnJlbW92ZShpZCk7CiAgICAgICAgIFNvY2tldDo6Y2xvc2UoY29ubmVjdGlv
bi0+c29ja2V0KTsKLSAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tl
ci51bmxvY2soKTsKICAgICAgICAgY29ubmVjdGlvbi0+bGlzdGVuZXIuZGlkQ2hhbmdlU3RhdHVz
KCp0aGlzLCBpZCwgTGlzdGVuZXI6OlN0YXR1czo6Q2xvc2VkKTsKICAgICB9IGVsc2UgaWYgKGNv
bnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2NsaWVudHMuZ2V0KGlkKSkgewogICAgICAgICBtX2Ns
aWVudHMucmVtb3ZlKGlkKTsKICAgICAgICAgU29ja2V0OjpjbG9zZShjb25uZWN0aW9uLT5zb2Nr
ZXQpOwotICAgICAgICBsb2NrZXIudW5sb2NrRWFybHkoKTsKKyAgICAgICAgbG9ja2VyLnVubG9j
aygpOwogICAgICAgICBjb25uZWN0aW9uLT5jbGllbnQuZGlkQ2xvc2UoKnRoaXMsIGlkKTsKICAg
ICB9IGVsc2UKICAgICAgICAgTE9HX0VSUk9SKCJFcnJvcjogQ2Fubm90IGRpc2Nvbm5lY3Q6IElu
dmFsaWQgaWQiKTsKQEAgLTI4Miw3ICsyODIsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclNvY2tl
dEVuZHBvaW50OjpyZWN2SWZFbmFibGVkKENvbm5lY3Rpb25JRCBpZCkKICAgICAgICAgaWYgKGF1
dG8gcmVhZFNpemUgPSBTb2NrZXQ6OnJlYWQoY29ubmVjdGlvbi0+c29ja2V0LCByZWN2QnVmZmVy
LmRhdGEoKSwgcmVjdkJ1ZmZlci5zaXplKCkpKSB7CiAgICAgICAgICAgICBpZiAoKnJlYWRTaXpl
ID4gMCkgewogICAgICAgICAgICAgICAgIHJlY3ZCdWZmZXIuc2hyaW5rKCpyZWFkU2l6ZSk7Ci0g
ICAgICAgICAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgICAgICAgICAgbG9j
a2VyLnVubG9jaygpOwogICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNsaWVudC5kaWRSZWNl
aXZlKCp0aGlzLCBpZCwgV1RGTW92ZShyZWN2QnVmZmVyKSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgfQpAQCAtMjkxLDcgKzI5MSw3IEBAIHZvaWQgUmVtb3RlSW5zcGVj
dG9yU29ja2V0RW5kcG9pbnQ6OnJlY3ZJZkVuYWJsZWQoQ29ubmVjdGlvbklEIGlkKQogICAgICAg
ICBTb2NrZXQ6OmNsb3NlKGNvbm5lY3Rpb24tPnNvY2tldCk7CiAgICAgICAgIG1fY2xpZW50cy5y
ZW1vdmUoaWQpOwogCi0gICAgICAgIGxvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBsb2Nr
ZXIudW5sb2NrKCk7CiAgICAgICAgIGNvbm5lY3Rpb24tPmNsaWVudC5kaWRDbG9zZSgqdGhpcywg
aWQpOwogICAgIH0KIH0KQEAgLTM1Myw3ICszNTMsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclNv
Y2tldEVuZHBvaW50OjphY2NlcHRJbmV0U29ja2V0SWZFbmFibGVkKENvbm5lY3Rpb25JRCBpZCkK
ICAgICBpZiAoY29uc3QgYXV0byYgY29ubmVjdGlvbiA9IG1fbGlzdGVuZXJzLmdldChpZCkpIHsK
ICAgICAgICAgaWYgKGF1dG8gc29ja2V0ID0gU29ja2V0OjphY2NlcHQoY29ubmVjdGlvbi0+c29j
a2V0KSkgewogICAgICAgICAgICAgLy8gTmVlZCB0byB1bmxvY2sgYmVmb3JlIGNhbGxpbmcgY3Jl
YXRlQ2xpZW50IGFzIGl0IGFsc28gYXR0ZW1wdHMgdG8gbG9jay4KLSAgICAgICAgICAgIGxvY2tl
ci51bmxvY2tFYXJseSgpOworICAgICAgICAgICAgbG9ja2VyLnVubG9jaygpOwogICAgICAgICAg
ICAgaWYgKGNvbm5lY3Rpb24tPmxpc3RlbmVyLmRvQWNjZXB0KCp0aGlzLCBzb2NrZXQudmFsdWUo
KSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db25jdXJyZW50SlNMb2NrLmgKaW5kZXggYWEyNzNiYWRiZWZhNzM3YTBlYWE1
MzRmYmViYTlmNTAxZmRiODYyNy4uZGQ5OWYyZDM4MjZjYWFmY2Y5ZWY4YjkwMmE2YTIwM2RhMjIz
YjMzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uY3VycmVu
dEpTTG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmN1cnJlbnRK
U0xvY2suaApAQCAtNTgsOSArNTgsOSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KICAgICAKLSAg
ICB2b2lkIHVubG9ja0Vhcmx5KCkKKyAgICB2b2lkIHVubG9jaygpCiAgICAgewotICAgICAgICBt
X2xvY2tlci51bmxvY2tFYXJseSgpOworICAgICAgICBtX2xvY2tlci51bmxvY2soKTsKICAgICB9
CiAKIHByaXZhdGU6CkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gdnMuIGRl
cml2ZWQgY2xhc3Nlcy4gSWYgd2UgZGlkbid0LCB0aGVuIHdlIHdvdWxkIGRlc3Ryb3kgdGhlIAog
ICAgICAgICAvLyBEZWZlckdDIG9iamVjdCBiZWZvcmUgdW5sb2NraW5nIHRoZSBsb2NrIHdoaWNo
IGNvdWxkIGNhdXNlIGEgR0MKICAgICAgICAgLy8gYW5kIHJlc3VsdGluZyBkZWFkbG9jay4KLSAg
ICAgICAgdW5sb2NrRWFybHkoKTsKKyAgICAgICAgdW5sb2NrKCk7CiAgICAgfQogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAppbmRleCA5MmJmZWFh
NzY4YWE2ODYyYmRmNWQ5OGM0YWVkZDcxNDYyZTRhZDY0Li4xMGViNGVjYzU3NjJlY2Y4NTYzOGQy
OTExNjAxNDk5ODg0OGQ0ZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTVRyYXBzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRy
YXBzLmNwcApAQCAtMTM3LDggKzEzNyw4IEBAIHZvaWQgVk1UcmFwczo6dHJ5SW5zdGFsbFRyYXBC
cmVha3BvaW50cyhTaWduYWxDb250ZXh0JiBjb250ZXh0LCBTdGFja0JvdW5kcyBzdGFjCiAgICAg
fQogCiAgICAgaWYgKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChmb3VuZENvZGVCbG9jay0+aml0
VHlwZSgpKSkgewotICAgICAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKCptX2xvY2spOwot
ICAgICAgICBpZiAoIWxvY2tlcikKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
Km1fbG9jayB9OworICAgICAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgICAgICBy
ZXR1cm47IC8vIExldCB0aGUgU2lnbmFsU2VuZGVyIHRyeSBhZ2FpbiBsYXRlci4KIAogICAgICAg
ICBpZiAoIW5lZWRIYW5kbGluZyhWTVRyYXBzOjpBc3luY0V2ZW50cykpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuY3BwCmluZGV4IGU0OWRhZTFlMWJjOWRkNzBj
OWViMjAyZDg3NzA5ZmNjNmNhNjcwOTAuLjk4YTdmMTQ3NDI4YTg1NGY5NzViYThmNzA3ZDgyYzc2
ODlmY2FlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3Bl
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNw
cApAQCAtNzMsMTQgKzczLDE0IEBAIGF1dG8gVk1JbnNwZWN0b3I6OmxvY2soU2Vjb25kcyB0aW1l
b3V0KSAtPiBFeHBlY3RlZDxMb2NrZXIsIEVycm9yPgogICAgIC8vIFdlJ2xsIGJlIGRvaW5nIHNs
ZWVwKDEpIGJldHdlZW4gdHJpZXMgYmVsb3cuIEhlbmNlLCBzbGVlcFBlclJldHJ5IGlzIDEuCiAg
ICAgdW5zaWduZWQgbWF4UmV0cmllcyA9ICh0aW1lb3V0IDwgU2Vjb25kczo6aW5maW5pdHkoKSkg
PyB0aW1lb3V0LnZhbHVlKCkgOiBVSU5UX01BWDsKIAotICAgIEV4cGVjdGVkPExvY2tlciwgRXJy
b3I+IGxvY2tlciA9IExvY2tlcjo6dHJ5TG9jayhtX2xvY2spOworICAgIExvY2tlciBsb2NrZXIg
eyBEZWZlckxvY2ssIG1fbG9jayB9OworCiAgICAgdW5zaWduZWQgdHJ5Q291bnQgPSAwOwotICAg
IHdoaWxlICghbG9ja2VyICYmIHRyeUNvdW50IDwgbWF4UmV0cmllcykgeworICAgIHdoaWxlICgh
bG9ja2VyLnRyeUxvY2soKSAmJiB0cnlDb3VudCA8IG1heFJldHJpZXMpIHsKICAgICAgICAgLy8g
V2Ugd2FudCB0aGUgdmVyc2lvbiBvZiBzbGVlcCBmcm9tIHVuaXN0ZC5oLiBDYXN0IHRvIGRpc2Ft
YmlndWF0ZS4KICNpZiAhT1MoV0lORE9XUykKICAgICAgICAgKHN0YXRpY19jYXN0PHVuc2lnbmVk
ICgqKSh1bnNpZ25lZCk+KHNsZWVwKSkoMSk7CiAjZW5kaWYKLSAgICAgICAgbG9ja2VyID0gTG9j
a2VyOjp0cnlMb2NrKG1fbG9jayk7CiAgICAgfQogCiAgICAgaWYgKCFsb2NrZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oIGIvU291cmNlL1dURi93dGYvQ2hlY2tl
ZExvY2suaAppbmRleCA0NGI4OTk5NjkxMjM0NTIwMDE5OGZkODY0YTk5ODk2Njc3NjM5OTQyLi5m
ODdkMzY0MzM3ZTVhNTgwMGYxNWMxY2ZkMmI2ZTc0OTIwYWU0ZDBmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRMb2Nr
LmgKQEAgLTQzLDkgKzQzLDkgQEAgbmFtZXNwYWNlIFdURiB7CiAvLyAgICAgICB2b2lkIHNldFZh
bHVlKGludCB2YWx1ZSkgeyBMb2Noa2VyIGhvbGRMb2NrIHsgbV9sb2NrIH07IG1fdmFsdWUgPSB2
YWx1ZTsgIH0KIC8vICAgICAgIHZvaWQgbWF5YmVTZXRPdGhlclZhbHVlKGludCB2YWx1ZSkKIC8v
ICAgICAgIHsKLS8vICAgICAgICAgICBpZiAoIW1fbG9jay50cnlMb2NrKCkpCisvLyAgICAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9sb2NrIH07CisvLyAgICAgICAgICAgaWYg
KCFsb2NrZXIudHJ5TG9jaygpKQogLy8gICAgICAgICAgICAgIHJldHVybjsKLS8vICAgICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9vdGhlckxvY2sgfTsKIC8vICAg
ICAgICAgICBtX290aGVyVmFsdWUgPSB2YWx1ZTsKIC8vICAgICAgIH0KIC8vICAgcHJpdmF0ZToK
QEAgLTc1LDggKzc1LDYgQEAgcHVibGljOgogLy8gZGVjbGFyYXRpb24uCiBpbmxpbmUgdm9pZCBh
c3NlcnRJc0hlbGQoY29uc3QgQ2hlY2tlZExvY2smIGxvY2spIFdURl9BU1NFUlRTX0FDUVVJUkVE
X0xPQ0sobG9jaykgeyBBU1NFUlRfVU5VU0VEKGxvY2ssIGxvY2suaXNIZWxkKCkpOyB9CiAKLXVz
aW5nIEFkb3B0TG9ja1RhZyA9IHN0ZDo6YWRvcHRfbG9ja190OwotCiAvLyBMb2NrZXIgc3BlY2lh
bGl6YXRpb24gdG8gdXNlIHdpdGggQ2hlY2tlZExvY2suCiAvLyBOb24tbW92YWJsZSBzaW1wbGUg
c2NvcGVkIGxvY2sgaG9sZGVyLgogLy8gRXhhbXBsZTogTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9
OwpAQCAtODUsMjggKzgzLDU1IEBAIGNsYXNzIFdURl9DQVBBQklMSVRZX1NDT1BFRF9MT0NLIExv
Y2tlcjxDaGVja2VkTG9jaz4gewogcHVibGljOgogICAgIGV4cGxpY2l0IExvY2tlcihDaGVja2Vk
TG9jayYgbG9jaykgV1RGX0FDUVVJUkVTX0xPQ0sobG9jaykKICAgICAgICAgOiBtX2xvY2sobG9j
aykKKyAgICAgICAgLCBtX2lzTG9ja2VkKHRydWUpCiAgICAgewogICAgICAgICBtX2xvY2subG9j
aygpOwogICAgIH0KICAgICBMb2NrZXIoQWRvcHRMb2NrVGFnLCBDaGVja2VkTG9jayYgbG9jaykg
V1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKICAgICAgICAgOiBtX2xvY2sobG9jaykKKyAgICAgICAg
LCBtX2lzTG9ja2VkKHRydWUpCisgICAgeworICAgIH0KKyAgICBMb2NrZXIoRGVmZXJMb2NrVGFn
LCBDaGVja2VkTG9jayYgbG9jaykgV1RGX0VYQ0xVREVTX0xPQ0sobG9jaykKKyAgICAgICAgOiBt
X2xvY2sobG9jaykKICAgICB7CiAgICAgfQogICAgIH5Mb2NrZXIoKSBXVEZfUkVMRUFTRVNfTE9D
SygpCiAgICAgeworICAgICAgICBpZiAobV9pc0xvY2tlZCkKKyAgICAgICAgICAgIG1fbG9jay51
bmxvY2soKTsKKyAgICB9CisgICAgYm9vbCB0cnlMb2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYo
dHJ1ZSkKKyAgICB7CisgICAgICAgIEFTU0VSVCghbV9pc0xvY2tlZCk7CisgICAgICAgIHJldHVy
biBtX2lzTG9ja2VkID0gbV9sb2NrLnRyeUxvY2soKTsKKyAgICB9CisgICAgdm9pZCBsb2NrKCkg
V1RGX0FDUVVJUkVTX0xPQ0soKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFtX2lzTG9ja2VkKTsK
KyAgICAgICAgbV9sb2NrLmxvY2soKTsKKyAgICAgICAgbV9pc0xvY2tlZCA9IHRydWU7CisgICAg
fQorICAgIHZvaWQgdW5sb2NrKCkgV1RGX1JFTEVBU0VTX0xPQ0soKQorICAgIHsKKyAgICAgICAg
QVNTRVJUKG1faXNMb2NrZWQpOwogICAgICAgICBtX2xvY2sudW5sb2NrKCk7CisgICAgICAgIG1f
aXNMb2NrZWQgPSBmYWxzZTsKICAgICB9CisKICAgICBMb2NrZXIoY29uc3QgTG9ja2VyPENoZWNr
ZWRMb2NrPiYpID0gZGVsZXRlOwogICAgIExvY2tlciYgb3BlcmF0b3I9KGNvbnN0IExvY2tlcjxD
aGVja2VkTG9jaz4mKSA9IGRlbGV0ZTsKKwogcHJpdmF0ZToKICAgICBDaGVja2VkTG9jayYgbV9s
b2NrOworICAgIGJvb2wgbV9pc0xvY2tlZCB7IGZhbHNlIH07CiB9OwogCiBMb2NrZXIoQ2hlY2tl
ZExvY2smKSAtPiBMb2NrZXI8Q2hlY2tlZExvY2s+OwogTG9ja2VyKEFkb3B0TG9ja1RhZywgQ2hl
Y2tlZExvY2smKSAtPiBMb2NrZXI8Q2hlY2tlZExvY2s+OworTG9ja2VyKERlZmVyTG9ja1RhZywg
Q2hlY2tlZExvY2smKSAtPiBMb2NrZXI8Q2hlY2tlZExvY2s+OwogCiB9IC8vIG5hbWVzcGFjZSBX
VEYKIAogdXNpbmcgV1RGOjphc3NlcnRJc0hlbGQ7CiB1c2luZyBXVEY6OkNoZWNrZWRMb2NrOwot
dXNpbmcgV1RGOjpBZG9wdExvY2tUYWc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2Nr
ZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2tlci5oCmluZGV4IDhiMGUxOTJiNWViYTRiODg3NjNh
ODQ0ZDFlYzBjYmExNGMwYzk4OGEuLjBkYWFmZTA0NDZlY2M5ZmU3YjhmZTMzZTQ3YmE4ODgyZWYz
M2M3N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvY2tlci5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL0xvY2tlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5j
bHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYv
QXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi9Db21waWxlci5oPgpAQCAtNTQsMTEgKzU1LDE4IEBA
IHByb3RlY3RlZDoKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgRHJvcExvY2tGb3JTY29w
ZTsKIAordXNpbmcgQWRvcHRMb2NrVGFnID0gc3RkOjphZG9wdF9sb2NrX3Q7Citjb25zdGV4cHIg
QWRvcHRMb2NrVGFnIEFkb3B0TG9jayA9IEFkb3B0TG9ja1RhZygpOwordXNpbmcgRGVmZXJMb2Nr
VGFnID0gc3RkOjpkZWZlcl9sb2NrX3Q7Citjb25zdGV4cHIgRGVmZXJMb2NrVGFnIERlZmVyTG9j
ayA9IERlZmVyTG9ja1RhZygpOworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogY2xhc3MgTG9ja2Vy
IDogcHVibGljIEFic3RyYWN0TG9ja2VyIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBMb2NrZXIo
VCYgbG9ja2FibGUpIDogbV9sb2NrYWJsZSgmbG9ja2FibGUpIHsgbG9jaygpOyB9CiAgICAgZXhw
bGljaXQgTG9ja2VyKFQqIGxvY2thYmxlKSA6IG1fbG9ja2FibGUobG9ja2FibGUpIHsgbG9jaygp
OyB9CisgICAgTG9ja2VyKEFkb3B0TG9ja1RhZywgVCYgbG9ja2FibGUpIDogbV9sb2NrYWJsZSgm
bG9ja2FibGUpLCBtX2lzTG9ja2VkKHRydWUpIHsgfQorICAgIExvY2tlcihEZWZlckxvY2tUYWcs
IFQmIGxvY2thYmxlKSA6IG1fbG9ja2FibGUoJmxvY2thYmxlKSB7IH0KIAogICAgIC8vIFlvdSBz
aG91bGQgYmUgd2FyeSBvZiB1c2luZyB0aGlzIGNvbnN0cnVjdG9yLiBJdCdzIG9ubHkgYXBwbGlj
YWJsZQogICAgIC8vIGluIHBsYWNlcyB3aGVyZSB0aGVyZSBpcyBhIGxvY2tpbmcgcHJvdG9jb2wg
Zm9yIGEgcGFydGljdWxhciBvYmplY3QKQEAgLTY2LDg0ICs3NCw3NCBAQCBwdWJsaWM6CiAgICAg
Ly8gdGhpcyBvZnRlbiBoYXBwZW5zIHdoZW4gYW4gb2JqZWN0IGlzIG5ld2x5IGFsbG9jYXRlZCBh
bmQgaXQgY2FuIG5vdAogICAgIC8vIGJlIGFjY2Vzc2VkIGNvbmN1cnJlbnRseS4KICAgICBMb2Nr
ZXIoTm9Mb2NraW5nTmVjZXNzYXJ5VGFnKSA6IG1fbG9ja2FibGUobnVsbHB0cikgeyB9Ci0gICAg
CisKICAgICBMb2NrZXIoc3RkOjp1bmRlcmx5aW5nX3R5cGVfdDxOb0xvY2tpbmdOZWNlc3NhcnlU
YWc+KSA9IGRlbGV0ZTsKIAogICAgIH5Mb2NrZXIoKQogICAgIHsKLSAgICAgICAgdW5sb2NrKCk7
CisgICAgICAgIGlmIChtX2lzTG9ja2VkKQorICAgICAgICAgICAgdW5sb2NrKCk7CisgICAgfQor
CisgICAgYm9vbCB0cnlMb2NrKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2xvY2thYmxlKTsK
KyAgICAgICAgQVNTRVJUKCFtX2lzTG9ja2VkKTsKKyAgICAgICAgaWYgKCFtX2xvY2thYmxlIHx8
ICFtX2xvY2thYmxlLT50cnlMb2NrKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIG1faXNMb2NrZWQgPSB0cnVlOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAg
Ci0gICAgc3RhdGljIExvY2tlciB0cnlMb2NrKFQmIGxvY2thYmxlKQorICAgIGV4cGxpY2l0IG9w
ZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiBtX2lzTG9ja2VkOyB9CisKKyAgICB2b2lkIHVu
bG9jaygpCiAgICAgewotICAgICAgICBMb2NrZXIgcmVzdWx0KE5vTG9ja2luZ05lY2Vzc2FyeSk7
Ci0gICAgICAgIGlmIChsb2NrYWJsZS50cnlMb2NrKCkpIHsKLSAgICAgICAgICAgIHJlc3VsdC5t
X2xvY2thYmxlID0gJmxvY2thYmxlOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICAgQVNTRVJUKG1faXNMb2NrZWQpOworICAgICAgICBjb21waWxlckZlbmNlKCk7CisgICAgICAg
IGlmIChtX2xvY2thYmxlKSB7CisgICAgICAgICAgICBUU0FOX0FOTk9UQVRFX0hBUFBFTlNfQkVG
T1JFKG1fbG9ja2FibGUpOworICAgICAgICAgICAgbV9sb2NrYWJsZS0+dW5sb2NrKCk7CisgICAg
ICAgICAgICBtX2lzTG9ja2VkID0gZmFsc2U7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJl
c3VsdDsKICAgICB9CiAKLSAgICBUKiBsb2NrYWJsZSgpIHsgcmV0dXJuIG1fbG9ja2FibGU7IH0K
LSAgICAKLSAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gISFtX2xv
Y2thYmxlOyB9Ci0gICAgCi0gICAgdm9pZCB1bmxvY2tFYXJseSgpCisgICAgdm9pZCBsb2NrKCkK
ICAgICB7Ci0gICAgICAgIHVubG9jaygpOwotICAgICAgICBtX2xvY2thYmxlID0gbnVsbHB0cjsK
KyAgICAgICAgQVNTRVJUKCFtX2lzTG9ja2VkKTsKKyAgICAgICAgaWYgKG1fbG9ja2FibGUpIHsK
KyAgICAgICAgICAgIG1fbG9ja2FibGUtPmxvY2soKTsKKyAgICAgICAgICAgIFRTQU5fQU5OT1RB
VEVfSEFQUEVOU19BRlRFUihtX2xvY2thYmxlKTsKKyAgICAgICAgICAgIG1faXNMb2NrZWQgPSB0
cnVlOworICAgICAgICB9CisgICAgICAgIGNvbXBpbGVyRmVuY2UoKTsKICAgICB9CiAgICAgCiAg
ICAgLy8gSXQncyBncmVhdCB0byBiZSBhYmxlIHRvIHBhc3MgbG9ja2VycyBhcm91bmQuIEl0IGVu
YWJsZXMgY3VzdG9tIGxvY2tpbmcgYWRhcHRvcnMgbGlrZQogICAgIC8vIEpTQzo6TG9ja0R1cmlu
Z01hcmtpbmcuCiAgICAgTG9ja2VyKExvY2tlciYmIG90aGVyKQotICAgICAgICA6IG1fbG9ja2Fi
bGUob3RoZXIubV9sb2NrYWJsZSkKKyAgICAgICAgOiBtX2xvY2thYmxlKHN0ZDo6ZXhjaGFuZ2Uo
b3RoZXIubV9sb2NrYWJsZSwgbnVsbHB0cikpCisgICAgICAgICwgbV9pc0xvY2tlZChzdGQ6OmV4
Y2hhbmdlKG90aGVyLm1faXNMb2NrZWQsIGZhbHNlKSkKICAgICB7CiAgICAgICAgIEFTU0VSVCgm
b3RoZXIgIT0gdGhpcyk7Ci0gICAgICAgIG90aGVyLm1fbG9ja2FibGUgPSBudWxscHRyOwogICAg
IH0KICAgICAKICAgICBMb2NrZXImIG9wZXJhdG9yPShMb2NrZXImJiBvdGhlcikKICAgICB7CiAg
ICAgICAgIEFTU0VSVCgmb3RoZXIgIT0gdGhpcyk7Ci0gICAgICAgIG1fbG9ja2FibGUgPSBvdGhl
ci5tX2xvY2thYmxlOwotICAgICAgICBvdGhlci5tX2xvY2thYmxlID0gbnVsbHB0cjsKKyAgICAg
ICAgbV9sb2NrYWJsZSA9IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9sb2NrYWJsZSwgbnVsbHB0cik7
CisgICAgICAgIG1faXNMb2NrZWQgPSBzdGQ6OmV4Y2hhbmdlKG90aGVyLm1faXNMb2NrZWQsIGZh
bHNlKTsKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KICAgICAKIHByaXZhdGU6CiAgICAg
dGVtcGxhdGU8dHlwZW5hbWU+CiAgICAgZnJpZW5kIGNsYXNzIERyb3BMb2NrRm9yU2NvcGU7Ci0K
LSAgICB2b2lkIHVubG9jaygpCi0gICAgewotICAgICAgICBjb21waWxlckZlbmNlKCk7Ci0gICAg
ICAgIGlmIChtX2xvY2thYmxlKSB7Ci0gICAgICAgICAgICBUU0FOX0FOTk9UQVRFX0hBUFBFTlNf
QkVGT1JFKG1fbG9ja2FibGUpOwotICAgICAgICAgICAgbV9sb2NrYWJsZS0+dW5sb2NrKCk7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICB2b2lkIGxvY2soKQotICAgIHsKLSAgICAgICAgaWYgKG1f
bG9ja2FibGUpIHsKLSAgICAgICAgICAgIG1fbG9ja2FibGUtPmxvY2soKTsKLSAgICAgICAgICAg
IFRTQU5fQU5OT1RBVEVfSEFQUEVOU19BRlRFUihtX2xvY2thYmxlKTsKLSAgICAgICAgfQotICAg
ICAgICBjb21waWxlckZlbmNlKCk7Ci0gICAgfQogICAgIAotICAgIFQqIG1fbG9ja2FibGU7Cisg
ICAgVCogbV9sb2NrYWJsZSB7IG51bGxwdHIgfTsKKyAgICBib29sIG1faXNMb2NrZWQgeyBmYWxz
ZSB9OwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+Ci1Mb2NrZXI8TG9ja1R5cGU+
IHRyeUhvbGRMb2NrKExvY2tUeXBlJikgV0FSTl9VTlVTRURfUkVUVVJOOwotdGVtcGxhdGU8dHlw
ZW5hbWUgTG9ja1R5cGU+Ci1Mb2NrZXI8TG9ja1R5cGU+IHRyeUhvbGRMb2NrKExvY2tUeXBlJiBs
b2NrKQotewotICAgIHJldHVybiBMb2NrZXI8TG9ja1R5cGU+Ojp0cnlMb2NrKGxvY2spOwotfQot
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4KIGNsYXNzIERyb3BMb2NrRm9yU2NvcGUgOiBw
cml2YXRlIEFic3RyYWN0TG9ja2VyIHsKICAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTihE
cm9wTG9ja0ZvclNjb3BlKTsKQEAgLTE2Niw2ICsxNjQsOCBAQCBwcml2YXRlOgogfQogCiB1c2lu
ZyBXVEY6OkFic3RyYWN0TG9ja2VyOwordXNpbmcgV1RGOjpBZG9wdExvY2s7Cit1c2luZyBXVEY6
OkRlZmVyTG9jazsKIHVzaW5nIFdURjo6TG9ja2VyOwogdXNpbmcgV1RGOjpOb0xvY2tpbmdOZWNl
c3NhcnlUYWc7CiB1c2luZyBXVEY6Ok5vTG9ja2luZ05lY2Vzc2FyeTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL0xvZ2dlci5oIGIvU291cmNlL1dURi93dGYvTG9nZ2VyLmgKaW5kZXggZTk5
ZDQ5YmYyZTlkOWFkMmE2YjNiNjE4MGRjYmQ5OGNkNzg1ZmE1NC4uN2ZmMzkyOGFlODIwNmI3NDMz
MmJhMTFmN2ZkMGJhZWM5MWE1ZGM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTG9nZ2Vy
LmgKKysrIGIvU291cmNlL1dURi93dGYvTG9nZ2VyLmgKQEAgLTMyMiwxMiArMzIyLDE0IEBAIHBy
aXZhdGU6CiAgICAgICAgIGlmIChjaGFubmVsLnN0YXRlID09IFdURkxvZ0NoYW5uZWxTdGF0ZTo6
T2ZmIHx8IGxldmVsID4gY2hhbm5lbC5sZXZlbCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAg
ICAgICBpZiAoIW9ic2VydmVyTG9jaygpLnRyeUxvY2soKSkKLSAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgeworICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgb2JzZXJ2
ZXJMb2NrKCkgfTsKKyAgICAgICAgICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm47CiAKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7
IH0sIG9ic2VydmVyTG9jaygpIH07Ci0gICAgICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDog
b2JzZXJ2ZXJzKCkpCi0gICAgICAgICAgICBvYnNlcnZlci5kaWRMb2dNZXNzYWdlKGNoYW5uZWws
IGxldmVsLCB7IENvbnNvbGVMb2dWYWx1ZTxBcmd1bWVudD46OnRvVmFsdWUoYXJndW1lbnRzKS4u
LiB9KTsKKyAgICAgICAgICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogb2JzZXJ2ZXJzKCkp
CisgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZGlkTG9nTWVzc2FnZShjaGFubmVsLCBsZXZlbCwg
eyBDb25zb2xlTG9nVmFsdWU8QXJndW1lbnQ+Ojp0b1ZhbHVlKGFyZ3VtZW50cykuLi4gfSk7Cisg
ICAgICAgIH0KICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudD4KQEAg
LTM1MywxMiArMzU1LDE0IEBAIHByaXZhdGU6CiAgICAgICAgIGlmIChjaGFubmVsLnN0YXRlID09
IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T2ZmIHx8IGxldmVsID4gY2hhbm5lbC5sZXZlbCkKICAgICAg
ICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAoIW9ic2VydmVyTG9jaygpLnRyeUxvY2soKSkK
LSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgeworICAgICAgICAgICAgTG9ja2VyIGxvY2tl
ciB7IERlZmVyTG9jaywgb2JzZXJ2ZXJMb2NrKCkgfTsKKyAgICAgICAgICAgIGlmICghbG9ja2Vy
LnRyeUxvY2soKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgTG9ja2VyIGxv
Y2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG9ic2VydmVyTG9jaygpIH07Ci0gICAgICAgIGZvciAo
T2JzZXJ2ZXImIG9ic2VydmVyIDogb2JzZXJ2ZXJzKCkpCi0gICAgICAgICAgICBvYnNlcnZlci5k
aWRMb2dNZXNzYWdlKGNoYW5uZWwsIGxldmVsLCB7IENvbnNvbGVMb2dWYWx1ZTxBcmd1bWVudD46
OnRvVmFsdWUoYXJndW1lbnRzKS4uLiB9KTsKKyAgICAgICAgICAgIGZvciAoT2JzZXJ2ZXImIG9i
c2VydmVyIDogb2JzZXJ2ZXJzKCkpCisgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZGlkTG9nTWVz
c2FnZShjaGFubmVsLCBsZXZlbCwgeyBDb25zb2xlTG9nVmFsdWU8QXJndW1lbnQ+Ojp0b1ZhbHVl
KGFyZ3VtZW50cykuLi4gfSk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgc3RhdGljIFZlY3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPE9ic2VydmVyPj4mIG9i
c2VydmVycygpIFdURl9SRVFVSVJFU19MT0NLKG9ic2VydmVyTG9jaygpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1RocmVhZFNhZmV0eUFuYWx5c2lzLmggYi9Tb3VyY2UvV1RGL3d0Zi9U
aHJlYWRTYWZldHlBbmFseXNpcy5oCmluZGV4IDAzYWMxNWE5MzNlNzBmYzFhMWZmMDQ3OGYwYjk5
M2NlMThkNDk3ZWMuLmQ2ZGVjZmE2YTQ4N2E2ZTdhMmM4ZjdhNGY5MDY4ZDcxYTc1YTc5ZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZFNhZmV0eUFuYWx5c2lzLmgKKysrIGIvU291
cmNlL1dURi93dGYvVGhyZWFkU2FmZXR5QW5hbHlzaXMuaApAQCAtMzUsOSArMzUsOSBAQAogI2Rl
ZmluZSBXVEZfVEhSRUFEX0FOTk9UQVRJT05fQVRUUklCVVRFKHgpCiAjZW5kaWYKIAotI2RlZmlu
ZSBXVEZfQUNRVUlSRVNfTE9DS19JRiguLi4pIFdURl9USFJFQURfQU5OT1RBVElPTl9BVFRSSUJV
VEUodHJ5X2FjcXVpcmVfY2FwYWJpbGl0eShfX1ZBX0FSR1NfXykpCisjZGVmaW5lIFdURl9BQ1FV
SVJFU19MT0NLX0lGKC4uLikgV1RGX1RIUkVBRF9BTk5PVEFUSU9OX0FUVFJJQlVURShleGNsdXNp
dmVfdHJ5bG9ja19mdW5jdGlvbihfX1ZBX0FSR1NfXykpCiAjZGVmaW5lIFdURl9BQ1FVSVJFU19M
T0NLKC4uLikgV1RGX1RIUkVBRF9BTk5PVEFUSU9OX0FUVFJJQlVURShhY3F1aXJlX2NhcGFiaWxp
dHkoX19WQV9BUkdTX18pKQotI2RlZmluZSBXVEZfQUNRVUlSRVNfU0hBUkVEX0xPQ0tfSUYoLi4u
KSBXVEZfVEhSRUFEX0FOTk9UQVRJT05fQVRUUklCVVRFKHRyeV9hY3F1aXJlX3NoYXJlZF9jYXBh
YmlsaXR5KF9fVkFfQVJHU19fKSkKKyNkZWZpbmUgV1RGX0FDUVVJUkVTX1NIQVJFRF9MT0NLX0lG
KC4uLikgV1RGX1RIUkVBRF9BTk5PVEFUSU9OX0FUVFJJQlVURShzaGFyZWRfdHJ5bG9ja19mdW5j
dGlvbihfX1ZBX0FSR1NfXykpCiAjZGVmaW5lIFdURl9BQ1FVSVJFU19TSEFSRURfTE9DSyguLi4p
IFdURl9USFJFQURfQU5OT1RBVElPTl9BVFRSSUJVVEUoYWNxdWlyZV9zaGFyZWRfY2FwYWJpbGl0
eShfX1ZBX0FSR1NfXykpCiAjZGVmaW5lIFdURl9BU1NFUlRTX0FDUVVJUkVEX0xPQ0soeCkgV1RG
X1RIUkVBRF9BTk5PVEFUSU9OX0FUVFJJQlVURShhc3NlcnRfY2FwYWJpbGl0eSh4KSkKICNkZWZp
bmUgV1RGX0FTU0VSVFNfQUNRVUlSRURfU0hBUkVEX0xPQ0soeCkgV1RGX1RIUkVBRF9BTk5PVEFU
SU9OX0FUVFJJQlVURShhc3NlcnRfc2hhcmVkX2NhcGFiaWxpdHkoeCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCmluZGV4IDE4NDQwMjFlNmYxYWM0NGZlNjMyNWM2Mjhi
YWU2ZjhlMTdmYmE2NzAuLmY0MjQyMzlmNDM0NWM2NWNjYzQwNzA4YTJmY2M5NjE3YzUxOWQ4MjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCkBAIC04NSwxMSArODUs
MTAgQEAgYm9vbCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjp1cGRhdGVEYXRh
U291cmNlKGNvbnN0IENBQXVkaW9TdHJlYW1EZXMKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVh
ZCgpKTsKIAotICAgIGlmICghbV9kYXRhU291cmNlTG9jay50cnlMb2NrKCkpCisgICAgTG9ja2Vy
IGxvY2tlciB7IERlZmVyTG9jaywgbV9kYXRhU291cmNlTG9jayB9OworICAgIGlmICghbG9ja2Vy
LnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgTG9ja2VyIGxvY2tlciB7
IEFkb3B0TG9ja1RhZyB7IH0sIG1fZGF0YVNvdXJjZUxvY2sgfTsKLQogICAgIGF1dG8gZGF0YVNv
dXJjZSA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Y3JlYXRlKGF1ZGlvRGVzY3JpcHRpb24uc2Ft
cGxlUmF0ZSgpICogMSwgbV9zb3VyY2UuZ2V0KCkpOwogICAgIGlmIChkYXRhU291cmNlLT5zZXRJ
bnB1dEZvcm1hdChhdWRpb0Rlc2NyaXB0aW9uKSkgewogICAgICAgICBjYWxsT25NYWluVGhyZWFk
KFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAK
aW5kZXggNjMzYzUwNmEwMDc2N2ZmYjg4NThjYjA2MGY1MWQ3Njk5NmJhMTcyYS4uZmI0YzQ0Zjdk
ZmM2MWIyYzRmMTg2MDcyOGRiNjQ3ODk1OWYxYTBkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcApAQCAt
MTAyLDEwICsxMDIsMTAgQEAgdm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnByb2Nlc3Moc2l6
ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIFRo
ZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBsb2NrLCBzbyB3ZSB1c2UgdHJ5SG9s
ZExvY2soKSBpbnN0ZWFkLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9wcm9jZXNz
TG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKLSAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUhvbGRM
b2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgYnVmZmVy
cyBhbmQgd2VyZSBhbHJlYWR5IG91dHB1dHRpbmcgc2lsZW5jZSBhbnl3YXkuCisgICAgLy8gVGhl
IGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlMb2Nr
KCkgaW5zdGVhZC4KKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nlc3NMb2Nr
IH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKSB7CisgICAgICAgIC8vIFRvbyBiYWQgLSB0
cnlMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgYnVm
ZmVycyBhbmQgd2VyZSBhbHJlYWR5IG91dHB1dHRpbmcgc2lsZW5jZSBhbnl3YXkuCiAgICAgICAg
IG91dHB1dEJ1cy56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAKaW5kZXggZmViYTMzMGVkMDIwYTdh
NjlhNDQzZjMyMmVkYWRkN2UxYTk2ZDZlYy4uYjJiY2NmMDIzODhlMTdlNWZiYTc4YjkwMGIwODQy
YjMwMzY4YzdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9O
b2RlLmNwcApAQCAtNTc4LDEzICs1NzgsMTUgQEAgdm9pZCBBdWRpb05vZGU6OmRlY3JlbWVudENv
bm5lY3Rpb25Db3VudCgpCiB7CiAgICAgLy8gVGhlIGFjdHVhbGx5IHdvcmsgZm9yIGRlcmVmIGhh
cHBlbnMgY29tcGxldGVseSB3aXRoaW4gdGhlIGF1ZGlvIGNvbnRleHQncyBncmFwaCBsb2NrLgog
ICAgIC8vIEluIHRoZSBjYXNlIG9mIHRoZSBhdWRpbyB0aHJlYWQsIHdlIG11c3QgdXNlIGEgdHJ5
TG9jayB0byBhdm9pZCBnbGl0Y2hlcy4KLSAgICBpZiAoYXV0byBsb2NrZXIgPSBjb250ZXh0KCku
aXNBdWRpb1RocmVhZCgpID8gTG9ja2VyPFJlY3Vyc2l2ZUxvY2s+Ojp0cnlMb2NrKGNvbnRleHQo
KS5ncmFwaExvY2soKSkgOiBMb2NrZXIgeyBjb250ZXh0KCkuZ3JhcGhMb2NrKCkgfSkgewotICAg
ICAgICAvLyBUaGlzIGlzIHdoZXJlIHRoZSByZWFsIGRlcmVmIHdvcmsgaGFwcGVucy4KLSAgICAg
ICAgZGVjcmVtZW50Q29ubmVjdGlvbkNvdW50V2l0aExvY2soKTsKKyAgICBpZiAoY29udGV4dCgp
LmlzQXVkaW9UaHJlYWQoKSkgeworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBj
b250ZXh0KCkuZ3JhcGhMb2NrKCkgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlMb2NrKCkpCisg
ICAgICAgICAgICBkZWNyZW1lbnRDb25uZWN0aW9uQ291bnRXaXRoTG9jaygpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBjb250ZXh0KCkuYWRkRGVmZXJyZWREZWNyZW1lbnRDb25uZWN0aW9u
Q291bnQodGhpcyk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgLy8gV2Ugd2VyZSB1bmFibGUgdG8g
Z2V0IHRoZSBsb2NrLCBzbyBwdXQgdGhpcyBpbiBhIGxpc3QgdG8gZmluaXNoIHVwIGxhdGVyLgot
ICAgICAgICBBU1NFUlQoY29udGV4dCgpLmlzQXVkaW9UaHJlYWQoKSk7Ci0gICAgICAgIGNvbnRl
eHQoKS5hZGREZWZlcnJlZERlY3JlbWVudENvbm5lY3Rpb25Db3VudCh0aGlzKTsKKyAgICAgICAg
TG9ja2VyIGxvY2tlciB7IGNvbnRleHQoKS5ncmFwaExvY2soKSB9OworICAgICAgICBkZWNyZW1l
bnRDb25uZWN0aW9uQ291bnRXaXRoTG9jaygpOwogICAgIH0KIAogICAgIC8vIE9uY2UgQXVkaW9D
b250ZXh0Ojp1bmluaXRpYWxpemUoKSBpcyBjYWxsZWQgdGhlcmUncyBubyBtb3JlIGNoYW5jZXMg
Zm9yIGRlbGV0ZU1hcmtlZE5vZGVzKCkgdG8gZ2V0IGNhbGxlZCwgc28gd2UgY2FsbCBoZXJlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGlt
ZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGlt
ZWxpbmUuY3BwCmluZGV4IDA0MDZlYWI3NzEwZThlZDk3ZGU4OTgzYTIwMGU1MTU2YzIyOWVhYWYu
LjI4NDNmMjM5NmM1OTlkYjQzNTUwOWE0OTc0NzQ4YmJiMDExNzFhZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAK
QEAgLTMyNyw5ICszMjcsOSBAQCB2b2lkIEF1ZGlvUGFyYW1UaW1lbGluZTo6cmVtb3ZlQ2FuY2Vs
bGVkRXZlbnRzKHNpemVfdCBmaXJzdEV2ZW50VG9SZW1vdmUpCiBPcHRpb25hbDxmbG9hdD4gQXVk
aW9QYXJhbVRpbWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKEJhc2VBdWRpb0NvbnRleHQmIGNv
bnRleHQsIGZsb2F0IGRlZmF1bHRWYWx1ZSwgZmxvYXQgbWluVmFsdWUsIGZsb2F0IG1heFZhbHVl
KQogewogICAgIHsKLSAgICAgICAgaWYgKCFtX2V2ZW50c0xvY2sudHJ5TG9jaygpKQorICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX2V2ZW50c0xvY2sgfTsKKyAgICAgICAgaWYg
KCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAg
ICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fZXZlbnRzTG9jayB9Owog
ICAgICAgICBpZiAoIW1fZXZlbnRzLnNpemUoKSB8fCBTZWNvbmRzIHsgY29udGV4dC5jdXJyZW50
VGltZSgpIH0gPCBtX2V2ZW50c1swXS50aW1lKCkpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwogICAgIH0KQEAgLTM0NywxMSArMzQ3LDExIEBAIE9wdGlvbmFsPGZsb2F0PiBBdWRp
b1BhcmFtVGltZWxpbmU6OnZhbHVlRm9yQ29udGV4dFRpbWUoQmFzZUF1ZGlvQ29udGV4dCYgY29u
dGV4CiBmbG9hdCBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlc0ZvckZyYW1lUmFuZ2Uoc2l6ZV90
IHN0YXJ0RnJhbWUsIHNpemVfdCBlbmRGcmFtZSwgZmxvYXQgZGVmYXVsdFZhbHVlLCBmbG9hdCBt
aW5WYWx1ZSwgZmxvYXQgbWF4VmFsdWUsIGZsb2F0KiB2YWx1ZXMsIHVuc2lnbmVkIG51bWJlck9m
VmFsdWVzLCBkb3VibGUgc2FtcGxlUmF0ZSwgZG91YmxlIGNvbnRyb2xSYXRlKQogewogICAgIC8v
IFdlIGNhbid0IGNvbnRlbmQgdGhlIGxvY2sgaW4gdGhlIHJlYWx0aW1lIGF1ZGlvIHRocmVhZC4K
LSAgICBpZiAoIW1fZXZlbnRzTG9jay50cnlMb2NrKCkpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsg
RGVmZXJMb2NrLCBtX2V2ZW50c0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpIHsK
ICAgICAgICAgc3RkOjpmaWxsX24odmFsdWVzLCBudW1iZXJPZlZhbHVlcywgZGVmYXVsdFZhbHVl
KTsKICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKICAgICB9Ci0gICAgTG9ja2VyIGxvY2tl
ciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fZXZlbnRzTG9jayB9OwogCiAgICAgZmxvYXQgdmFsdWUg
PSB2YWx1ZXNGb3JGcmFtZVJhbmdlSW1wbChzdGFydEZyYW1lLCBlbmRGcmFtZSwgZGVmYXVsdFZh
bHVlLCB2YWx1ZXMsIG51bWJlck9mVmFsdWVzLCBzYW1wbGVSYXRlLCBjb250cm9sUmF0ZSk7CiAK
QEAgLTk4Niw5ICs5ODYsOSBAQCBib29sIEF1ZGlvUGFyYW1UaW1lbGluZTo6aXNFdmVudEN1cnJl
bnQoY29uc3QgUGFyYW1FdmVudCYgZXZlbnQsIGNvbnN0IFBhcmFtRXZlbgogCiBib29sIEF1ZGlv
UGFyYW1UaW1lbGluZTo6aGFzVmFsdWVzKHNpemVfdCBzdGFydEZyYW1lLCBkb3VibGUgc2FtcGxl
UmF0ZSkgY29uc3QKIHsKLSAgICBpZiAoIW1fZXZlbnRzTG9jay50cnlMb2NrKCkpCisgICAgTG9j
a2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9ldmVudHNMb2NrIH07CisgICAgaWYgKCFsb2NrZXIu
dHJ5TG9jaygpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRv
cHRMb2NrVGFnIHsgfSwgbV9ldmVudHNMb2NrIH07CiAKICAgICAvLyBSZXR1cm4gZmFsc2UgaWYg
dGhlcmUgYXJlIG5vIGV2ZW50cyBpbiB0aGUgdGltZSByYW5nZS4KICAgICBhdXRvIGVuZEZyYW1l
ID0gc3RhcnRGcmFtZSArIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3Bw
CmluZGV4IDM0OTYyNmZhNGQ0M2VkMjUzZmNmOTA3MzJiNjQyYWYyYmM1YWE0NjAuLmJjOTA5OTU5
ZDUzYzRkYmNkMWQzYzc4OGU1YjA3OTY3YzVhOTg1NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcApAQCAtMTkxLDggKzE5
MSw4IEBAIHZvaWQgQXVkaW9Xb3JrbGV0Tm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9j
ZXNzKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogCi0gICAgYXV0byBsb2NrZXIg
PSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlciB8fCAhbV9wcm9j
ZXNzb3IgfHwgJlRocmVhZDo6Y3VycmVudCgpICE9IG1fd29ya2xldFRocmVhZCkgeworICAgIExv
Y2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKKyAgICBpZiAoIWxvY2tl
ci50cnlMb2NrKCkgfHwgIW1fcHJvY2Vzc29yIHx8ICZUaHJlYWQ6OmN1cnJlbnQoKSAhPSBtX3dv
cmtsZXRUaHJlYWQpIHsKICAgICAgICAgLy8gV2UncmUgbm90IHJlYWR5IHlldCBvciB3ZSBhcmUg
Z2V0dGluZyBkZXN0cm95ZWQuIEluIHRoaXMgY2FzZSwgd2Ugb3V0cHV0IHNpbGVuY2UuCiAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZk91dHB1dHMoKTsgKytpKQogICAg
ICAgICAgICAgb3V0cHV0KGkpLT5idXMoKS0+emVybygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKaW5kZXggZTIwMmQ3ZDI2
MmFkMDY0N2JkYTc2ZmJhNTI3ZjBhNWExNjIxYTc4MC4uOGU0YzNkNjIyMDI1ZTlhY2ZlMTQzZDky
M2VmZDFmNmMxMTZmZmZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCkBAIC01NjAsMTQgKzU2MCwxNiBAQCB2b2lkIEJh
c2VBdWRpb0NvbnRleHQ6OmhhbmRsZVByZVJlbmRlclRhc2tzKGNvbnN0IEF1ZGlvSU9Qb3NpdGlv
biYgb3V0cHV0UG9zaXRpbwogCiAgICAgLy8gQXQgdGhlIGJlZ2lubmluZyBvZiBldmVyeSByZW5k
ZXIgcXVhbnR1bSwgdHJ5IHRvIHVwZGF0ZSB0aGUgaW50ZXJuYWwgcmVuZGVyaW5nIGdyYXBoIHN0
YXRlIChmcm9tIG1haW4gdGhyZWFkIGNoYW5nZXMpLgogICAgIC8vIEl0J3MgT0sgaWYgdGhlIHRy
eUxvY2soKSBmYWlscywgd2UnbGwganVzdCB0YWtlIHNsaWdodGx5IGxvbmdlciB0byBwaWNrIHVw
IHRoZSBjaGFuZ2VzLgotICAgIGlmIChhdXRvIGxvY2tlciA9IExvY2tlcjxSZWN1cnNpdmVMb2Nr
Pjo6dHJ5TG9jayhncmFwaExvY2soKSkpIHsKLSAgICAgICAgLy8gRml4dXAgdGhlIHN0YXRlIG9m
IGFueSBkaXJ0eSBBdWRpb1N1bW1pbmdKdW5jdGlvbnMgYW5kIEF1ZGlvTm9kZU91dHB1dHMuCi0g
ICAgICAgIGhhbmRsZURpcnR5QXVkaW9TdW1taW5nSnVuY3Rpb25zKCk7Ci0gICAgICAgIGhhbmRs
ZURpcnR5QXVkaW9Ob2RlT3V0cHV0cygpOworICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ss
IGdyYXBoTG9jaygpIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQorICAgICAgICByZXR1
cm47CiAKLSAgICAgICAgdXBkYXRlQXV0b21hdGljUHVsbE5vZGVzKCk7Ci0gICAgICAgIG1fb3V0
cHV0UG9zaXRpb24gPSBvdXRwdXRQb3NpdGlvbjsKLSAgICB9CisgICAgLy8gRml4dXAgdGhlIHN0
YXRlIG9mIGFueSBkaXJ0eSBBdWRpb1N1bW1pbmdKdW5jdGlvbnMgYW5kIEF1ZGlvTm9kZU91dHB1
dHMuCisgICAgaGFuZGxlRGlydHlBdWRpb1N1bW1pbmdKdW5jdGlvbnMoKTsKKyAgICBoYW5kbGVE
aXJ0eUF1ZGlvTm9kZU91dHB1dHMoKTsKKworICAgIHVwZGF0ZUF1dG9tYXRpY1B1bGxOb2Rlcygp
OworICAgIG1fb3V0cHV0UG9zaXRpb24gPSBvdXRwdXRQb3NpdGlvbjsKIH0KIAogQXVkaW9JT1Bv
c2l0aW9uIEJhc2VBdWRpb0NvbnRleHQ6Om91dHB1dFBvc2l0aW9uKCkKQEAgLTU4NCw4ICs1ODYs
OCBAQCB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6OmhhbmRsZVBvc3RSZW5kZXJUYXNrcygpCiAgICAg
Ly8gTXVzdCB1c2UgYSB0cnlMb2NrKCkgaGVyZSB0b28uIERvbid0IHdvcnJ5LCB0aGUgbG9jayB3
aWxsIHZlcnkgcmFyZWx5IGJlIGNvbnRlbmRlZCBhbmQgdGhpcyBtZXRob2QgaXMgY2FsbGVkIGZy
ZXF1ZW50bHkuCiAgICAgLy8gVGhlIHdvcnN0IHRoYXQgY2FuIGhhcHBlbiBpcyB0aGF0IHRoZXJl
IHdpbGwgYmUgc29tZSBub2RlcyB3aGljaCB3aWxsIHRha2Ugc2xpZ2h0bHkgbG9uZ2VyIHRoYW4g
dXN1YWwgdG8gYmUgZGVsZXRlZCBvciByZW1vdmVkCiAgICAgLy8gZnJvbSB0aGUgcmVuZGVyIGdy
YXBoIChpbiB3aGljaCBjYXNlIHRoZXknbGwgcmVuZGVyIHNpbGVuY2UpLgotICAgIGF1dG8gbG9j
a2VyID0gTG9ja2VyPFJlY3Vyc2l2ZUxvY2s+Ojp0cnlMb2NrKGdyYXBoTG9jaygpKTsKLSAgICBp
ZiAoIWxvY2tlcikKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBncmFwaExvY2soKSB9
OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8g
VGFrZSBjYXJlIG9mIGZpbmlzaGluZyBhbnkgZGVyZWZzIHdoZXJlIHRoZSB0cnlMb2NrKCkgZmFp
bGVkIHByZXZpb3VzbHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0NvbnZvbHZlck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9D
b252b2x2ZXJOb2RlLmNwcAppbmRleCA1OTcxZmQwMDIyNWJjYWNjYzBlNTM3M2U2NzAyZGI0Y2Qy
OWU4NTAwLi4xYmM5ZjJlY2Y2ZTUzMWQxYzEwNDdkNDVhYmRjN2M3OGRhZTdjMWZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAKQEAg
LTkyLDkgKzkyLDkgQEAgdm9pZCBDb252b2x2ZXJOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFtZXNU
b1Byb2Nlc3MpCiAgICAgQVNTRVJUKG91dHB1dEJ1cyk7CiAKICAgICAvLyBTeW5jaHJvbml6ZSB3
aXRoIHBvc3NpYmxlIGR5bmFtaWMgY2hhbmdlcyB0byB0aGUgaW1wdWxzZSByZXNwb25zZS4KLSAg
ICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwotICAgIGlmICghbG9j
a2VyKSB7Ci0gICAgICAgIC8vIFRvbyBiYWQgLSB0cnlIb2xkTG9jaygpIGZhaWxlZC4gV2UgbXVz
dCBiZSBpbiB0aGUgbWlkZGxlIG9mIHNldHRpbmcgYSBuZXcgaW1wdWxzZSByZXNwb25zZS4KKyAg
ICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAgaWYgKCFs
b2NrZXIudHJ5TG9jaygpKSB7CisgICAgICAgIC8vIFRvbyBiYWQgLSB0cnlMb2NrKCkgZmFpbGVk
LiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2Ygc2V0dGluZyBhIG5ldyBpbXB1bHNlIHJlc3Bv
bnNlLgogICAgICAgICBvdXRwdXRCdXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50
QXVkaW9Tb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcAppbmRleCBhMWE0NmE2N2VlYTIzYzU1OTIxM2E3
MzA4ODgyY2U1MDY3NGJiMjY0Li5jZGIzYTczN2Q1YTQ2YzMyYzA4MGQwZjJhNDA4ZDc2MTAxN2Jh
OTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxl
bWVudEF1ZGlvU291cmNlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwCkBAIC0xNTUsMTEgKzE1NSwxMSBA
QCB2b2lkIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZTo6cHJvY2VzcyhzaXplX3QgbnVtYmVy
T2ZGcmFtZXMpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBVc2UgdHJ5SG9sZExv
Y2soKSB0byBhdm9pZCBjb250ZW50aW9uIGluIHRoZSByZWFsLXRpbWUgYXVkaW8gdGhyZWFkLgor
ICAgIC8vIFVzZSB0cnlMb2NrKCkgdG8gYXZvaWQgY29udGVudGlvbiBpbiB0aGUgcmVhbC10aW1l
IGF1ZGlvIHRocmVhZC4KICAgICAvLyBJZiB3ZSBmYWlsIHRvIGFjcXVpcmUgdGhlIGxvY2sgdGhl
biB0aGUgSFRNTE1lZGlhRWxlbWVudCBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YKICAgICAvLyBy
ZWNvbmZpZ3VyaW5nIGl0cyBwbGF5YmFjayBlbmdpbmUsIHNvIHdlIG91dHB1dCBzaWxlbmNlIGlu
IHRoaXMgY2FzZS4KLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xvY2sp
OwotICAgIGlmICghbG9ja2VyKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9w
cm9jZXNzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgewogICAgICAgICAvLyBX
ZSBmYWlsZWQgdG8gYWNxdWlyZSB0aGUgbG9jay4KICAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAKaW5kZXggYzU2NjJk
NjA5YWY2MGE2YWViYTZkYTcyMWEzNWQxZDU4OGFkNTE3NS4uYjg1NDJkNGUzYmZjMTIwNDNjNjIz
MmRkOGU3ZmZiMzUzYWE4YzFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAKQEAgLTEz
OSwxNiArMTM5LDExIEBAIHZvaWQgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3Mo
c2l6ZV90IG51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8g
VXNlIHRyeUhvbGRMb2NrKCkgdG8gYXZvaWQgY29udGVudGlvbiBpbiB0aGUgcmVhbC10aW1lIGF1
ZGlvIHRocmVhZC4KKyAgICAvLyBVc2UgdHJ5TG9jaygpIHRvIGF2b2lkIGNvbnRlbnRpb24gaW4g
dGhlIHJlYWwtdGltZSBhdWRpbyB0aHJlYWQuCiAgICAgLy8gSWYgd2UgZmFpbCB0byBhY3F1aXJl
IHRoZSBsb2NrIHRoZW4gdGhlIE1lZGlhU3RyZWFtIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZgog
ICAgIC8vIGEgZm9ybWF0IGNoYW5nZSwgc28gd2Ugb3V0cHV0IHNpbGVuY2UgaW4gdGhpcyBjYXNl
LgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7Ci0gICAgaWYg
KCFsb2NrZXIpIHsKLSAgICAgICAgLy8gV2UgZmFpbGVkIHRvIGFjcXVpcmUgdGhlIGxvY2suCi0g
ICAgICAgIG91dHB1dEJ1cy0+emVybygpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlm
IChtX3NvdXJjZU51bWJlck9mQ2hhbm5lbHMgIT0gb3V0cHV0QnVzLT5udW1iZXJPZkNoYW5uZWxz
KCkpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07Cisg
ICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpIHx8IG1fc291cmNlTnVtYmVyT2ZDaGFubmVscyAhPSBv
dXRwdXRCdXMtPm51bWJlck9mQ2hhbm5lbHMoKSkgewogICAgICAgICBvdXRwdXRCdXMtPnplcm8o
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHAKaW5kZXggYzZmNjlkMjMwNWMyMTU5OTY3MTM5
YTg0NzlmYWU1ZDMxODIyMjU4Ny4uZmZhNDY3OTZiOGVjYTc1Mjc3OWIxNmQxZTNjNTAzZTY4ODFm
OGI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxh
dG9yTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxh
dG9yTm9kZS5jcHAKQEAgLTM0OSwxMCArMzQ5LDEwIEBAIHZvaWQgT3NjaWxsYXRvck5vZGU6OnBy
b2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICBpZiAoZnJhbWVzVG9Qcm9jZXNzID4g
bV9waGFzZUluY3JlbWVudHMuc2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBUaGUg
YXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUhvbGRM
b2NrKCkgaW5zdGVhZC4KLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xv
Y2spOwotICAgIGlmICghbG9ja2VyKSB7Ci0gICAgICAgIC8vIFRvbyBiYWQgLSB0cnlIb2xkTG9j
aygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGNoYW5naW5nIHdhdmUtdGFi
bGVzLgorICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBsb2NrLCBz
byB3ZSB1c2UgdHJ5TG9jaygpIGluc3RlYWQuCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9j
aywgbV9wcm9jZXNzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgeworICAgICAg
ICAvLyBUb28gYmFkIC0gdHJ5TG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxl
IG9mIGNoYW5naW5nIHdhdmUtdGFibGVzLgogICAgICAgICBvdXRwdXRCdXMuemVybygpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9QYW5uZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
UGFubmVyTm9kZS5jcHAKaW5kZXggN2NjZjI0ZDY3MGI3ZjZlMWVmMWEzNzc5ZjliNzA0ODY4MmZm
Y2VkNy4uOTQxY2I2NjE0NWM3ODkyNWU4MDQ3OGQzYTkzNDVhMzJlOTgwZjU3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwCkBAIC0xMjksMTAg
KzEyOSwxMCBAQCB2b2lkIFBhbm5lck5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2Vz
cykKICAgICAgICAgfQogICAgIH0KIAotICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxv
Y2sgb24gdGhpcyBsb2NrLCBzbyB3ZSB1c2UgdHJ5SG9sZExvY2soKSBpbnN0ZWFkLgotICAgIGF1
dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIp
IHsKLSAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUhvbGRMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJl
IGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgdGhlIHBhbm5lci4KKyAgICAvLyBUaGUgYXVkaW8g
dGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUxvY2soKSBpbnN0
ZWFkLgorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKKyAg
ICBpZiAoIWxvY2tlci50cnlMb2NrKCkpIHsKKyAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUxvY2so
KSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBjaGFuZ2luZyB0aGUgcGFubmVy
LgogICAgICAgICBkZXN0aW5hdGlvbi0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNz
b3JOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vz
c29yTm9kZS5jcHAKaW5kZXggMjJlOTdlOGFhMjVlYWMyZjcwOGUyM2Y3NmE4OWIyOGQ5MzAzMDEz
MC4uNzJiZWFkZjRkNzAwNDIwYWE0NmM2NWZkZDI3OGJkMmRkMTAxZTZkZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUu
Y3BwCkBAIC0xNTgsOCArMTU4LDggQEAgdm9pZCBTY3JpcHRQcm9jZXNzb3JOb2RlOjpwcm9jZXNz
KHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgdW5zaWduZWQgYnVmZmVySW5kZXggPSB0aGlz
LT5idWZmZXJJbmRleCgpOwogICAgIEFTU0VSVChidWZmZXJJbmRleCA8IGJ1ZmZlckNvdW50KTsK
IAotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9idWZmZXJMb2Nrc1tidWZmZXJJbmRl
eF0pOwotICAgIGlmICghbG9ja2VyKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywg
bV9idWZmZXJMb2Nrc1tidWZmZXJJbmRleF0gfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkp
IHsKICAgICAgICAgLy8gV2UncmUgbGF0ZSBpbiBoYW5kbGluZyB0aGUgcHJldmlvdXMgcmVxdWVz
dC4gVGhlIG1haW4gdGhyZWFkIG11c3QgYmUKICAgICAgICAgLy8gdmVyeSBidXN5LiBUaGUgYmVz
dCB3ZSBjYW4gZG8gaXMgY2xlYXIgb3V0IHRoZSBidWZmZXIgb3Vyc2VsZiBoZXJlLgogICAgICAg
ICBvdXRwdXRCdXMtPnplcm8oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwCmluZGV4IDEyMDg4NTA4MDg5MDM2MWQ0
YzQwYWE2YWNhYjk1NGJhNzAwYjU3MjkuLjM4ZDc3ZGI1NWI2MWZiNTAwMmRjZGZhMjlkMWIzMmNm
YjBkNTZkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2
ZVNoYXBlclByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcApAQCAtODMsMTAgKzgzLDEwIEBAIHZvaWQgV2F2ZVNo
YXBlclByb2Nlc3Nvcjo6cHJvY2Vzcyhjb25zdCBBdWRpb0J1cyogc291cmNlLCBBdWRpb0J1cyog
ZGVzdGluYXRpb24sCiAgICAgaWYgKCFjaGFubmVsQ291bnRNYXRjaGVzKQogICAgICAgICByZXR1
cm47CiAKLSAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywg
c28gd2UgdXNlIHRyeUhvbGRMb2NrKCkgaW5zdGVhZC4KLSAgICBhdXRvIGxvY2tlciA9IHRyeUhv
bGRMb2NrKG1fcHJvY2Vzc0xvY2spOwotICAgIGlmICghbG9ja2VyKSB7Ci0gICAgICAgIC8vIFRv
byBiYWQgLSB0cnlIb2xkTG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9m
IGEgc2V0Q3VydmUoKSBjYWxsLgorICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sg
b24gdGhpcyBsb2NrLCBzbyB3ZSB1c2UgdHJ5TG9jaygpIGluc3RlYWQuCisgICAgTG9ja2VyIGxv
Y2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxv
Y2soKSkgeworICAgICAgICAvLyBUb28gYmFkIC0gdHJ5TG9jaygpIGZhaWxlZC4gV2UgbXVzdCBi
ZSBpbiB0aGUgbWlkZGxlIG9mIGEgc2V0Q3VydmUoKSBjYWxsLgogICAgICAgICBkZXN0aW5hdGlv
bi0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCBlYjJkM2Fh
OGQ2MzdlNGQ0YmE2M2ExMzgxODBhMDdkYjI5YzQwNmY1Li43MTcxZDgzODAyNTkxZGYwZDNkYTA5
MDg5YWI0NWY0M2JkMDQ4ZmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMjYzMyw3ICsyNjMzLDcgQEAgdm9p
ZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVWZXJ0ZXhBcnJheShXZWJHTFZlcnRleEFy
cmF5T2JqZWN0KiBhcnJheU9iamUKIAogICAgIGlmICghYXJyYXlPYmplY3QtPmlzRGVmYXVsdE9i
amVjdCgpICYmIGFycmF5T2JqZWN0ID09IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCkgewogICAg
ICAgICAvLyBiaW5kVmVydGV4QXJyYXkgZ3JhYnMgdGhlIGxvY2sgaW50ZXJuYWxseS4KLSAgICAg
ICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgIGxvY2tlci51bmxvY2soKTsKICAgICAg
ICAgYmluZFZlcnRleEFycmF5KG51bGxwdHIpOyAvLyBUaGUgZGVmYXVsdCBWQU8gd2FzIHJlbW92
ZWQgaW4gT3BlbkdMIDMuMyBidXQgbm90IGZyb20gV2ViR0wgMjsgYmluZCB0aGUgZGVmYXVsdCBm
b3IgV2ViR0wgdG8gdXNlLgogICAgICAgICBsb2NrZXIgPSBMb2NrZXIgeyBvYmplY3RHcmFwaExv
Y2soKSB9OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvRGVzdGluYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlv
RGVzdGluYXRpb24uaAppbmRleCBlYjU0ZjBkNTFkNzg2MGI5ZjYwNDBkODkzNTg4NDQ4ODJhNjVi
YjYyLi5mZjQ1NjE3YmYzOGQyZjNhMmQ2NmQ0ZGNhN2IzZDYwNGMzNDI2NjcwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCkBAIC05Niwx
NCArOTYsMTMgQEAgaW5saW5lIHZvaWQgQXVkaW9EZXN0aW5hdGlvbjo6Y2xlYXJDYWxsYmFjaygp
CiAKIGlubGluZSB2b2lkIEF1ZGlvRGVzdGluYXRpb246OmNhbGxSZW5kZXJDYWxsYmFjayhBdWRp
b0J1cyogc291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBmcmFtZXNU
b1Byb2Nlc3MsIGNvbnN0IEF1ZGlvSU9Qb3NpdGlvbiYgb3V0cHV0UG9zaXRpb24pCiB7Ci0gICAg
aWYgKG1fY2FsbGJhY2tMb2NrLnRyeUxvY2soKSkgewotICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
QWRvcHRMb2NrVGFnIHsgfSwgbV9jYWxsYmFja0xvY2sgfTsKLSAgICAgICAgaWYgKG1fY2FsbGJh
Y2spIHsKLSAgICAgICAgICAgIG1fY2FsbGJhY2stPnJlbmRlcihzb3VyY2VCdXMsIGRlc3RpbmF0
aW9uQnVzLCBmcmFtZXNUb1Byb2Nlc3MsIG91dHB1dFBvc2l0aW9uKTsKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fY2FsbGJh
Y2tMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKSB7CisgICAgICAgIGRlc3RpbmF0
aW9uQnVzLT56ZXJvKCk7CisgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgZGVzdGluYXRpb25C
dXMtPnplcm8oKTsKKyAgICBpZiAobV9jYWxsYmFjaykKKyAgICAgICAgbV9jYWxsYmFjay0+cmVu
ZGVyKHNvdXJjZUJ1cywgZGVzdGluYXRpb25CdXMsIGZyYW1lc1RvUHJvY2Vzcywgb3V0cHV0UG9z
aXRpb24pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcAppbmRleCAyN2IyOTgyZGMzZmQ5
MTY4NWQzMTdhN2VkMWE5YzFlNmVlNDdiMjZmLi5mZDg4NTZmYjYyNzlkMDRiMzc2NjAzYTEyZGNl
MTU0N2FjNGM0MmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9S
ZXZlcmJDb252b2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1Jl
dmVyYkNvbnZvbHZlci5jcHAKQEAgLTIwMiw4ICsyMDIsOCBAQCB2b2lkIFJldmVyYkNvbnZvbHZl
cjo6cHJvY2Vzcyhjb25zdCBBdWRpb0NoYW5uZWwqIHNvdXJjZUNoYW5uZWwsIEF1ZGlvQ2hhbm5l
bCogZAogICAgIC8vIHNpZ25hbCBmcm9tIHRpbWUgdG8gdGltZSwgc2luY2Ugd2UnbGwgZ2V0IHRv
IGl0IHRoZSBuZXh0IHRpbWUgd2UncmUgY2FsbGVkLiAgV2UncmUgY2FsbGVkIHJlcGVhdGVkbHkK
ICAgICAvLyBhbmQgZnJlcXVlbnRseSAoYXJvdW5kIGV2ZXJ5IDNtcykuICBUaGUgYmFja2dyb3Vu
ZCB0aHJlYWQgaXMgcHJvY2Vzc2luZyB3ZWxsIGludG8gdGhlIGZ1dHVyZSBhbmQgaGFzIGEgY29u
c2lkZXJhYmxlIGFtb3VudCBvZiAKICAgICAvLyBsZWV3YXkgaGVyZS4uLgotICAgIGF1dG8gbG9j
a2VyID0gdHJ5SG9sZExvY2sobV9iYWNrZ3JvdW5kVGhyZWFkTG9jayk7Ci0gICAgaWYgKCFsb2Nr
ZXIpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9iYWNrZ3JvdW5kVGhyZWFkTG9j
ayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
bV9tb3JlSW5wdXRCdWZmZXJlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcAppbmRl
eCAzOTJjMzYxNDA0ZmMyYzk1MGViYjkzODg5YTYyOWNiNWEzNzFlNDJhLi41NTc2N2MxOTczNjVk
MjlhNzE2NzYwYjRlNzE5NDYxYTI1ZWM3MDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAK
QEAgLTIxOSwxMCArMjE5LDEwIEBAIE9TU3RhdHVzIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVu
ZGVyKGRvdWJsZSBzYW1wbGVUaW1lLCB1aW50NjRfdCBob3N0VGltZSwgVUluCiAgICAgfQogCiAg
ICAgLy8gV2hlbiB0aGVyZSBpcyBhIEF1ZGlvV29ya2xldCwgd2UgZG8gcmVuZGVyaW5nIG9uIHRo
ZSBBdWRpb1dvcmtsZXRUaHJlYWQuCi0gICAgaWYgKCFtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWRM
b2NrLnRyeUxvY2soKSkKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX2Rpc3BhdGNo
VG9SZW5kZXJUaHJlYWRMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAg
ICByZXR1cm4gLTE7CiAKLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9k
aXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jayB9OwogICAgIGlmICghbV9kaXNwYXRjaFRvUmVuZGVy
VGhyZWFkKQogICAgICAgICByZW5kZXJPblJlbmRlcmluZ1RoZWFkSWZQbGF5aW5nKGZyYW1lc1Rv
UmVuZGVyKTsKICAgICBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0
cmVhbWVyLmNwcAppbmRleCBmNzc1YTMyZmQ0NzgwMmVlNTM4ODU3MTYzZWQ3NzlhMTIxMzhjZDQ3
Li4zYzEwZDgzYjQ4Y2RiMWEyYzEwNGQ0Mzc2NTJkM2VhYjBmM2JhNDM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRl
ckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVh
bWVyL0F1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXIuY3BwCkBAIC0xNTksMTAgKzE1OSwxMCBA
QCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXI6OmNvbmZpZ3VyZUF1ZGlvQmluKEdz
dEVsZW1lbnQqIGF1ZGlvQmluLCBHc3RFbAogdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVh
bWVyOjpwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykK
IHsKICAgICBHU1RfVFJBQ0UoIkZldGNoaW5nIGJ1ZmZlcnMgZnJvbSBhZGFwdGVycyIpOwotICAg
IGlmICghbV9hZGFwdGVyTG9jay50cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVy
TG9jaywgbV9hZGFwdGVyTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fYWRh
cHRlckxvY2sgfTsKICAgICBmb3IgKGF1dG8mIGl0IDogbV9hZGFwdGVycykKICAgICAgICAgY29w
eUdTdHJlYW1lckJ1ZmZlcnNUb0F1ZGlvQ2hhbm5lbChpdC52YWx1ZS5nZXQoKSwgYnVzLCBpdC5r
ZXkgLSAxLCBmcmFtZXNUb1Byb2Nlc3MpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRp
b1NvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggNmVmODM1MjgzZmYzNTNhOGZlMTIyN2IwNzBhMWRk
ZDU2ZDRhM2Y4Zi4uYzdlNzY4NjE5YjQ3ZTMwOTEzYThjZDY4OTRkNDg2OTM2MzdlMjlmOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdl
YkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC00MDgs
MTEgKzQwOCwxMCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY1JlbmRlckl0ZXJhdGlv
bihXZWJLaXRXZWJBdWRpb1NyYyogc3JjKQogICAgICAgICBwcml2LT5kaXNwYXRjaERvbmUgPSBm
YWxzZTsKICAgICB9CiAKLSAgICBpZiAoIXByaXYtPmRpc3BhdGNoVG9SZW5kZXJUaHJlYWRMb2Nr
LnRyeUxvY2soKSkKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBwcml2LT5kaXNwYXRj
aFRvUmVuZGVyVGhyZWFkTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIHByaXYt
PmRpc3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrIH07Ci0KICAgICBpZiAoIXByaXYtPmRpc3BhdGNo
VG9SZW5kZXJUaHJlYWRGdW5jdGlvbikKICAgICAgICAgd2ViS2l0V2ViQXVkaW9TcmNSZW5kZXJB
bmRQdXNoRnJhbWVzKEdSZWZQdHI8R3N0RWxlbWVudD4oR1NUX0VMRU1FTlRfQ0FTVChzcmMpKSwg
V1RGTW92ZSgqY2hhbm5lbEJ1ZmZlckxpc3QpKTsKICAgICBlbHNlIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAKaW5kZXggYzA2NGNjZTRjYTg2
MmJkNDY4OTI4NDFmZmE1YmMxOWZiN2YyMTNkYS4uMjg0OGJhYjEwODlkYmVlMTE0MWZkMWU2OTU0
MDFmZWVhNDI3YTgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvU2hhZG93Qmx1ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
U2hhZG93Qmx1ci5jcHAKQEAgLTEzNSw3ICsxMzUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcHVy
Z2VUaW1lckZpcmVkKCkKICAgICB7CiAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0g
ICAgICAgIGlmIChhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKGxvY2soKSkpCisgICAgICAgIExv
Y2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIGxvY2soKSB9OworICAgICAgICBpZiAobG9ja2VyLnRy
eUxvY2soKSkKICAgICAgICAgICAgIGNsZWFyU2NyYXRjaEJ1ZmZlcigpOwogICAgIH0KIApAQCAt
Njk0LDggKzY5NSw4IEBAIHZvaWQgU2hhZG93Qmx1cjo6ZHJhd1JlY3RTaGFkb3dXaXRoVGlsaW5n
KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb25zCiB7CiAgICAgUmVmUHRyPElt
YWdlQnVmZmVyPiBsYXllckltYWdlQnVmZmVyOwogI2lmIFVTRShDRykKLSAgICBhdXRvIGxvY2tl
ciA9IHRyeUhvbGRMb2NrKFNjcmF0Y2hCdWZmZXI6OmxvY2soKSk7Ci0gICAgaWYgKGxvY2tlcikg
eworICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIFNjcmF0Y2hCdWZmZXI6OmxvY2soKSB9
OworICAgIGlmIChsb2NrZXIudHJ5TG9jaygpKSB7CiAgICAgICAgIGxheWVySW1hZ2VCdWZmZXIg
PSBTY3JhdGNoQnVmZmVyOjpzaW5nbGV0b24oKS5nZXRTY3JhdGNoQnVmZmVyKHRlbXBsYXRlU2l6
ZSk7CiAgICAgICAgIGlmICghbGF5ZXJJbWFnZUJ1ZmZlcikKICAgICAgICAgICAgIHJldHVybjsK
QEAgLTc1NCw4ICs3NTUsOCBAQCB2b2lkIFNoYWRvd0JsdXI6OmRyYXdJbnNldFNoYWRvd1dpdGhU
aWxpbmcoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbgogewogICAgIFJlZlB0
cjxJbWFnZUJ1ZmZlcj4gbGF5ZXJJbWFnZUJ1ZmZlcjsKICNpZiBVU0UoQ0cpCi0gICAgYXV0byBs
b2NrZXIgPSB0cnlIb2xkTG9jayhTY3JhdGNoQnVmZmVyOjpsb2NrKCkpOwotICAgIGlmIChsb2Nr
ZXIpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBTY3JhdGNoQnVmZmVyOjpsb2Nr
KCkgfTsKKyAgICBpZiAobG9ja2VyLnRyeUxvY2soKSkgewogICAgICAgICBsYXllckltYWdlQnVm
ZmVyID0gU2NyYXRjaEJ1ZmZlcjo6c2luZ2xldG9uKCkuZ2V0U2NyYXRjaEJ1ZmZlcih0ZW1wbGF0
ZVNpemUpOwogICAgICAgICBpZiAoIWxheWVySW1hZ2VCdWZmZXIpCiAgICAgICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0K
aW5kZXggNDc5NzY4M2I4MGJiNDkwNWE3YTgxNjg4N2E0MzU0ZDEyOThlY2Q0MS4uNGJjZjNhMTBj
M2IyZGVkYzcyOTIxODEyOTUwZDg4ZjAyOTJiODA2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQpAQCAtOTQsNyArOTQsNyBAQCBBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6fkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKCkKIAogdm9p
ZCBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMs
IHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7Ci0gICAgLy8gUHJvdGVjdCBhY2Nlc3MgdG8gbV9y
aW5nQnVmZmVyIGJ5IHVzaW5nIHRyeUhvbGRMb2NrKCkuIElmIHdlIGZhaWxlZAorICAgIC8vIFBy
b3RlY3QgYWNjZXNzIHRvIG1fcmluZ0J1ZmZlciBieSB1c2luZyB0cnlMb2NrKCkuIElmIHdlIGZh
aWxlZAogICAgIC8vIHRvIGFxdWlyZSwgYSByZS1jb25maWd1cmUgaXMgdW5kZXJ3YXksIGFuZCBt
X3JpbmdCdWZmZXIgaXMgdW5zYWZlIHRvIGFjY2Vzcy4KICAgICAvLyBFbWl0IHNpbGVuY2UuCiAg
ICAgaWYgKCFtX3RhcFN0b3JhZ2UpIHsKQEAgLTEwMiw4ICsxMDIsOCBAQCB2b2lkIEF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZy
YW1lc1RvUHJvYwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBsb2NrZXIgPSB0
cnlIb2xkTG9jayhtX3RhcFN0b3JhZ2UtPmxvY2spOwotICAgIGlmICghbG9ja2VyIHx8ICFtX3Jp
bmdCdWZmZXIpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3RhcFN0b3JhZ2Ut
PmxvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkgfHwgIW1fcmluZ0J1ZmZlcikgewog
ICAgICAgICBidXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5tbQppbmRleCA4MTM5OTZjNzZjNjQxYjdjYWUwNDZmNTk3MWVjNzQ3Y2Y5MWNl
OWQ3Li44MWU3NTczZWQ0MjE1ZGNkN2U0NDBhMWFjOGYzNWJlNWMxMmE1YjEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tCkBAIC0yNTQsOCArMjU0LDggQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmVucXVldWVWaWRlb1NhbXBsZShNZWRpYVNhbXBsZSYg
c2FtcGwKICAgICBpZiAoIW1fdmlzaWJsZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBs
b2NrZXIgPSB0cnlIb2xkTG9jayhtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckxvY2spOwotICAg
IGlmICghbG9ja2VyKQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgaWYgKCFtX2NhbkVucXVldWVEaXNwbGF5TGF5ZXIgfHwgIW1fc2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyIHx8IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5kaWRG
YWlsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCmluZGV4IDExYmVhMTJiNjZk
YzU0NjI1YTgyOWY5MDc0YTkyYzAzNzRjZTI4OTUuLjE1YjU3MjhmN2ZkYmE4MTE3MWYyN2NjODk2
Mjg5MWUxODc3YmI1ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwCkBAIC05
OSw3ICs5OSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAg
ICBhdXRvIHNhbXBsZSA9IFdURk1vdmUobV9zYW1wbGUpOwotICAgICAgICBsb2NrZXIudW5sb2Nr
RWFybHkoKTsKKyAgICAgICAgbG9ja2VyLnVubG9jaygpOwogICAgICAgICBpZiAoTElLRUxZKEdT
VF9JU19TQU1QTEUoc2FtcGxlLmdldCgpKSkpCiAgICAgICAgICAgICB3ZWJraXRWaWRlb1NpbmtS
ZXBhaW50UmVxdWVzdGVkKHNpbmssIHNhbXBsZS5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9uRW5j
cnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3Ry
ZWFtZXIuY3BwCmluZGV4IDMyMDE3NGQ1YmZlODc2ZGI4YzE0MjM1OWE4ZTFhMDFhYTg2YzBmZGIu
LmU4ZTcyOWY4MzAxYTg3NjZlNjRiZjYzNTJmMDIwNmE3YTYzZWYwYTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q29tbW9u
RW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDb21tb25FbmNyeXB0aW9uRGVjcnlw
dG9yR1N0cmVhbWVyLmNwcApAQCAtMzk3LDcgKzM5Nyw3IEBAIHN0YXRpYyBnYm9vbGVhbiBzaW5r
RXZlbnRIYW5kbGVyKEdzdEJhc2VUcmFuc2Zvcm0qIHRyYW5zLCBHc3RFdmVudCogZXZlbnQpCiAg
ICAgICAgICAgICBib29sIGlzQ2RtUHJveHlBdHRhY2hlZCA9IHByaXYtPmNkbVByb3h5OwogICAg
ICAgICAgICAgcHJpdi0+aXNGbHVzaGluZyA9IHRydWU7CiAgICAgICAgICAgICBpZiAoaXNDZG1Q
cm94eUF0dGFjaGVkKSB7Ci0gICAgICAgICAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7Cisg
ICAgICAgICAgICAgICAgbG9ja2VyLnVubG9jaygpOwogICAgICAgICAgICAgICAgIHByaXYtPmNk
bVByb3h5LT5hYm9ydFdhaXRpbmdGb3JLZXkoKTsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAg
ICAgICAgICAgIHByaXYtPmNvbmRpdGlvbi5ub3RpZnlPbmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvV2ViS2l0TWVkaWFTb3Vy
Y2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggNmQwM2RmOTZhZDQz
NzkwZDVhZjNkMmI3MmQ3NzAwZDE2ZmYyYTRmYS4uZDRkZTFkOWUxZGJkMjkyYTY0OWIxYTk5ZTM0
NGQ5MjY4MmY4NDJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9XZWJLaXRNZWRpYVNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTUwOSw3ICs1MDksNyBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRN
ZWRpYVNyY0xvb3Aodm9pZCogdXNlckRhdGEpCiAgICAgICAgIH0KIAogICAgICAgICAvLyBQdXNo
IHRoZSBidWZmZXIgd2l0aG91dCB0aGUgc3RyZWFtaW5nTWVtYmVycyBsb2NrIHNvIHRoYXQgZmx1
c2hlcyBjYW4gaGFwcGVuIHdoaWxlIGl0IHRyYXZlbHMgZG93bnN0cmVhbS4KLSAgICAgICAgc3Ry
ZWFtaW5nTWVtYmVycy5sb2NrSG9sZGVyKCkudW5sb2NrRWFybHkoKTsKKyAgICAgICAgc3RyZWFt
aW5nTWVtYmVycy5sb2NrSG9sZGVyKCkudW5sb2NrKCk7CiAKICAgICAgICAgQVNTRVJUKEdTVF9C
VUZGRVJfUFRTX0lTX1ZBTElEKGJ1ZmZlci5nZXQoKSkpOwogICAgICAgICBHU1RfVFJBQ0VfT0JK
RUNUKHBhZCwgIlB1c2hpbmcgYnVmZmVyIGRvd25zdHJlYW06ICUiIEdTVF9QVFJfRk9STUFULCBi
dWZmZXIuZ2V0KCkpOwpAQCAtNTI1LDcgKzUyNSw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdE1lZGlh
U3JjTG9vcCh2b2lkKiB1c2VyRGF0YSkKICAgICAgICAgLy8gRU9TIGV2ZW50cyBhbmQgb3RoZXIg
ZW5xdWV1ZWQgZXZlbnRzIGFyZSBhbHNvIHNlbnQgdW5sb2NrZWQgc28gdGhleSBjYW4gcmVhY3Qg
dG8gZmx1c2hlcyBpZiBuZWNlc3NhcnkuCiAgICAgICAgIEdSZWZQdHI8R3N0RXZlbnQ+IGV2ZW50
ID0gR1JlZlB0cjxHc3RFdmVudD4oR1NUX0VWRU5UKG9iamVjdC5sZWFrUmVmKCkpKTsKIAotICAg
ICAgICBzdHJlYW1pbmdNZW1iZXJzLmxvY2tIb2xkZXIoKS51bmxvY2tFYXJseSgpOworICAgICAg
ICBzdHJlYW1pbmdNZW1iZXJzLmxvY2tIb2xkZXIoKS51bmxvY2soKTsKICAgICAgICAgR1NUX0RF
QlVHX09CSkVDVChwYWQsICJQdXNoaW5nIGV2ZW50IGRvd25zdHJlYW06ICUiIEdTVF9QVFJfRk9S
TUFULCBldmVudC5nZXQoKSk7CiAgICAgICAgIGJvb2wgZXZlbnRIYW5kbGVkID0gZ3N0X3BhZF9w
dXNoX2V2ZW50KHBhZCwgR1JlZlB0cjxHc3RFdmVudD4oZXZlbnQpLmxlYWtSZWYoKSk7CiAgICAg
ICAgIGlmICghZXZlbnRIYW5kbGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAKaW5kZXggNWRjZWExYTQwODZlMjBlMTU3ZWJiY2Q3
MTliYzM2NjA4OTA0YjYwYy4uZTZmMmU2ZTJkZjk0Zjg0ZjFkYzEwNDhkM2Q1OWJlNDZmYTI3ZDI4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2Ev
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clVuaXQuY3BwCkBAIC0xNDEsMTAgKzE0MSwxMCBAQCB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyVW5pdDo6cmV0cmlldmVGb3JtYXREZXNjcmlwdGlvbihDb21wbGV0aW9uSGFuZAog
CiB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6dXBkYXRlUmVuZGVyU291
cmNlc0lmTmVjZXNzYXJ5KCkKIHsKLSAgICBpZiAoIW1fcGVuZGluZ1JlbmRlclNvdXJjZXNMb2Nr
LnRyeUxvY2soKSkKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3BlbmRpbmdSZW5k
ZXJTb3VyY2VzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fcGVuZGluZ1Jl
bmRlclNvdXJjZXNMb2NrIH07CiAgICAgaWYgKCFtX2hhc1BlbmRpbmdSZW5kZXJTb3VyY2VzKQog
ICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29h
Lm1tCmluZGV4IDU3NmY0NGU5MmM1OGI5M2MwYjQwZDY2NDk5ODBiYzdlOTBhNWVhZmIuLjM0NjE0
MWIwMWMzZDFkNzhjYTlmZjU0Y2FiNjcyOTk3ZmE5MTI1M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1
ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5tbQpAQCAtNjUsOCArNjUsOCBAQCB2b2lkIFdlYkF1ZGlv
U291cmNlUHJvdmlkZXJDb2NvYTo6c2V0Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQq
IGNsaWVudCkKIAogdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnByb3ZpZGVJbnB1
dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewotICAgIGF1dG8gbG9j
a2VyID0gdHJ5SG9sZExvY2sobV9sb2NrKTsKLSAgICBpZiAoIWxvY2tlciB8fCAhbV9kYXRhU291
cmNlIHx8ICFtX2F1ZGlvQnVmZmVyTGlzdCkgeworICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxv
Y2ssIG1fbG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSB8fCAhbV9kYXRhU291cmNl
IHx8ICFtX2F1ZGlvQnVmZmVyTGlzdCkgewogICAgICAgICBidXMtPnplcm8oKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
T3JXb3JrbGV0VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3Jr
bGV0VGhyZWFkLmNwcAppbmRleCA0NzdkOTY3MmM3MTJiNDZmYzRlYmQ3YTI4OTdlNzdlYjE1ODA4
NDg0Li5jZjc0MDY3OTQ4NDk1ZmEwOGRiZDcwNDI1Zjg3NTgwMzFiNTA0ZjAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFRocmVhZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwCkBAIC0yMDcs
OCArMjA3LDggQEAgdm9pZCBXb3JrZXJPcldvcmtsZXRUaHJlYWQ6OnN0b3AoRnVuY3Rpb248dm9p
ZCgpPiYmIHN0b3BwZWRDYWxsYmFjaykKICAgICAvLyBNdXRleCBwcm90ZWN0aW9uIGlzIG5lY2Vz
c2FyeSB0byBlbnN1cmUgdGhhdCBtX3dvcmtlckdsb2JhbFNjb3BlIGlzbid0IGNoYW5nZWQgYnkK
ICAgICAvLyBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCgpIHdoaWxlIHdlJ3JlIGFjY2Vzc2lu
ZyBpdC4gTm90ZSBhbHNvIHRoYXQgc3RvcCgpIGNhbgogICAgIC8vIGJlIGNhbGxlZCBiZWZvcmUg
bV93b3JrZXJHbG9iYWxTY29wZSBpcyBmdWxseSBjcmVhdGVkLgotICAgIGF1dG8gbG9ja2VyID0g
dHJ5SG9sZExvY2sobV90aHJlYWRDcmVhdGlvbkFuZEdsb2JhbFNjb3BlTG9jayk7Ci0gICAgaWYg
KCFsb2NrZXIpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3RocmVhZENyZWF0
aW9uQW5kR2xvYmFsU2NvcGVMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKSB7CiAg
ICAgICAgIC8vIFRoZSB0aHJlYWQgaXMgc3RpbGwgc3RhcnRpbmcsIHNwaW4gdGhlIHJ1bmxvb3Ag
YW5kIHRyeSBhZ2FpbiB0byBhdm9pZCBkZWFkbG9ja3MgaWYgdGhlIHdvcmtlciB0aHJlYWQKICAg
ICAgICAgLy8gbmVlZHMgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgbWFpbiB0aHJlYWQgZHVyaW5nIHN0
YXJ0dXAuCiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHN0b3BwZWRDYWxsYmFjayA9
IFdURk1vdmUoc3RvcHBlZENhbGxiYWNrKV0oKSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuY3BwCmluZGV4IGQ3NGE0NzNlMjBj
OTAxOGZlMzZkNWFiNmRmZDhhYTUyYjVhNjlhNTEuLjk4MzhjMGMxMWNiNmE1NGUxOTM1ZjQwZDEw
YmRiNzgyNzExMGNkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL0ljb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvSWNvbkRhdGFiYXNlLmNwcApAQCAtNTcyLDcgKzU3Miw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
Ojpsb2FkSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMLCBBbGxvd0RhdGFiYXNl
V3JpdGUKICAgICAgICAgICAgICAgICBhdXRvIGljb24gPSBpdC0+dmFsdWUuZmlyc3Q7CiAgICAg
ICAgICAgICAgICAgaXQtPnZhbHVlLnNlY29uZCA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAg
ICAgICAgICAgICAgIHN0YXJ0Q2xlYXJMb2FkZWRJY29uc1RpbWVyKCk7Ci0gICAgICAgICAgICAg
ICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgICAgICAgICAgbG9ja2VyLnVubG9jaygp
OwogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaWNvbikpOwogICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTU5Niw3ICs1OTYsNyBAQCB2
b2lkIEljb25EYXRhYmFzZTo6bG9hZEljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVS
TCwgQWxsb3dEYXRhYmFzZVdyaXRlCiAKICAgICAgICAgICAgIGF1dG8gaWNvbiA9IGFkZFJlc3Vs
dC5pdGVyYXRvci0+dmFsdWUuZmlyc3Q7CiAgICAgICAgICAgICBzdGFydENsZWFyTG9hZGVkSWNv
bnNUaW1lcigpOwotICAgICAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7CisgICAgICAgICAg
ICBsb2NrZXIudW5sb2NrKCk7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3Zl
KGljb24pKTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAppbmRleCBmNDRjNDE4
OTJiMzhmNWJhZDMxOTZkNjlhMWMxMzI0Y2U5M2I1ZWMzLi40OGEzNjYxNjliM2ZlYTYzZGE0Mjg3
MTM2MDFlNmJkZjM2ZmQ1ZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKQEAgLTMyNCwxMSArMzI0LDEwIEBA
IHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWREZWNvZGluZyhSVENEZWNvZGVySWRlbnRp
ZmllciBkZWNvZGVySWRlbnRpZmllciwKICAgICBpZiAoIWRlY29kZXIpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrLnRyeUxvY2so
KSkKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBkZWNvZGVyLT5kZWNvZGVkSW1hZ2VD
YWxsYmFja0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBkZWNvZGVyLT5kZWNv
ZGVkSW1hZ2VDYWxsYmFja0xvY2sgfTsKLQogICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlZEltYWdl
Q2FsbGJhY2spCiAgICAgICAgIHJldHVybjsKIApAQCAtNDkyLDExICs0OTEsMTAgQEAgdm9pZCBM
aWJXZWJSVENDb2RlY3M6OmNvbXBsZXRlZEVuY29kaW5nKFJUQ0VuY29kZXJJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIElQQzo6RGEKICAgICBpZiAoIWVuY29kZXIpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGlmICghZW5jb2Rlci0+ZW5jb2RlZEltYWdlQ2FsbGJhY2tMb2NrLnRyeUxvY2soKSkKKyAg
ICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBlbmNvZGVyLT5lbmNvZGVkSW1hZ2VDYWxsYmFj
a0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBlbmNvZGVyLT5lbmNvZGVkSW1h
Z2VDYWxsYmFja0xvY2sgfTsKLQogICAgIGlmICghZW5jb2Rlci0+ZW5jb2RlZEltYWdlQ2FsbGJh
Y2spCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGVhYjA4M2YxZTA3ZDQ1ZTg4YWRiMTQwMWRiYjRjMjE1YjUzNzg1
NGEuLjIzNTM1Nzk3ZGY1N2QzYWExMzkxNzcwZWRiYzJmZDE2ODYzMjA5YWEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERy
b3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3aXRoIENsYW5nIFRo
cmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJs
ZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuIEluc3RlYWQsIHVzZSB0aGUgZm9s
bG93aW5nIHBhdHRlcm46CisgICAgICAgIGBgYAorICAgICAgICBMb2NrZXIgbG9ja2VyIHsgRGVm
ZXJMb2NrLCBtX2xvY2sgfTsKKyAgICAgICAgaWYgKGxvY2tlci50cnlMb2NrKCkpCisgICAgICAg
IGBgYAorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tlZExvY2tUZXN0
LmNwcDoKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlcGxhY2UgTG9ja0hvbGRlciB3aXRoIExvY2tlciBpbiBsb2NhbCB2YXJpYWJsZXMK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRMb2NrVGVz
dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkTG9ja1Rlc3QuY3Bw
CmluZGV4IGQ4MmVlMWEyZTViZGUwZGNhYmYzNWNlOWRjNzMxMTIxMTAyMjYyNGEuLmZiZDAyYjNj
MzRiMDRjNTZjYWVmYzM0ZTQ4YTk3NzU2ZmJjYTk2MTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRMb2NrVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tlZExvY2tUZXN0LmNwcApAQCAtMzgsOSArMzgsOSBAQCBw
dWJsaWM6CiAgICAgfQogICAgIHZvaWQgbWF5YmVTZXRPdGhlclZhbHVlKGludCB2YWx1ZSkKICAg
ICB7Ci0gICAgICAgIGlmICghbV9vdGhlckxvY2sudHJ5TG9jaygpKQorICAgICAgICBMb2NrZXIg
aG9sZExvY2sgeyBEZWZlckxvY2ssIG1fb3RoZXJMb2NrIH07CisgICAgICAgIGlmICghaG9sZExv
Y2sudHJ5TG9jaygpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBMb2NrZXIgaG9sZExv
Y2sgeyBBZG9wdExvY2tUYWcgeyB9LCBtX290aGVyTG9jayB9OwogICAgICAgICBtX290aGVyVmFs
dWUgPSB2YWx1ZTsKICAgICB9CiAgICAgLy8gVGhpcyBmdW5jdGlvbiBjYW4gYmUgdXNlZCB0byBt
YW51YWxseSBjaGVjayB0aGF0IGNvbXBpbGUgZmFpbHMuCg==
</data>
<flag name="commit-queue"
          id="450637"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429446</attachid>
            <date>2021-05-22 18:51:29 -0700</date>
            <delta_ts>2021-05-22 19:12:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226145-20210522185128.patch</filename>
            <type>text/plain</type>
            <size>26384</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZjY3MTE3MDhhODUyMGY5MDcyMjIzNDExNThhODk2NDgzZjU5NmE2Li5mYTE1YjEzMDNiMzI4YTA3
ZjFlNzFiZTQ5ZjMzYWJlZmY2MDdlOWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3
aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlz
IGluY29tcGF0aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuCisgICAgICAg
IEluc3RlYWQsIHVzZSB0aGUgZm9sbG93aW5nIHBhdHRlcm4gd2hpY2ggaXMgc3VwcG9ydGVkOgor
ICAgICAgICBgYGAKKyAgICAgICAgaWYgKGxvY2sudHJ5TG9jaygpKSB7CisgICAgICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbG9jayB9OworICAgICAgICAgICAgLy8g
Li4uCisgICAgICAgIH0KKyAgICAgICAgYGBgCisKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgor
ICAgICAgICAoSlNDOjpIZWFwOjpyZXN1bWVUaGVQZXJpcGhlcnkpOgorICAgICAgICAqIHJ1bnRp
bWUvVk1UcmFwcy5jcHA6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OnRyeUluc3RhbGxUcmFwQnJl
YWtwb2ludHMpOgorCiAyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVwbGFjZSBMb2NrSG9sZGVyIHdpdGggTG9ja2VyIGluIGxvY2FsIHZhcmlh
YmxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZwppbmRleCBiNzBhM2YzZTgxMzcyNzI3MDVhMDRiZWQyMzk2Y2UwZmM5ZWJmNzRiLi41YzVi
NjA3ZjUyMzhiNTg5MmZhNjlmZWFkZmZkY2M0YTIxMjM0NmRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBA
CisyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
RHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRpYmxlIHdpdGggQ2xhbmcg
VGhyZWFkIFNhZmV0eSBBbmFseXNpcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI2MTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRp
YmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcy4KKyAgICAgICAgSW5zdGVhZCwg
dXNlIHRoZSBmb2xsb3dpbmcgcGF0dGVybiB3aGljaCBpcyBzdXBwb3J0ZWQ6CisgICAgICAgIGBg
YAorICAgICAgICBpZiAobG9jay50cnlMb2NrKCkpIHsKKyAgICAgICAgICAgIExvY2tlciBsb2Nr
ZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBsb2NrIH07CisgICAgICAgICAgICAvLyAuLi4KKyAgICAg
ICAgfQorICAgICAgICBgYGAKKworICAgICAgICAqIHd0Zi9DaGVja2VkTG9jay5oOgorICAgICAg
ICAqIHd0Zi9Mb2NrLmg6CisgICAgICAgICogd3RmL0xvY2tlci5oOgorICAgICAgICAoV1RGOjpM
b2NrZXI6OkxvY2tlcik6CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBBZG9wdCBDaGVja2VkTG9jayBpbiBtb3JlIHBsYWNlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGQwNTdkMjcxMjcwNGM4MTkwZGE0NDQyMjAxMzkxMjZlNWUyMWVhOWMuLmI4ODliNWNi
YmY5OTQzYjU5NTkzNGEzYTMyYjg3NjBkYTYwOTg2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1
MiBAQAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3aXRoIENs
YW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29t
cGF0aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuCisgICAgICAgIEluc3Rl
YWQsIHVzZSB0aGUgZm9sbG93aW5nIHBhdHRlcm4gd2hpY2ggaXMgc3VwcG9ydGVkOgorICAgICAg
ICBgYGAKKyAgICAgICAgaWYgKGxvY2sudHJ5TG9jaygpKSB7CisgICAgICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbG9jayB9OworICAgICAgICAgICAgLy8gLi4uCisg
ICAgICAgIH0KKyAgICAgICAgYGBgCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
QnVmZmVyU291cmNlTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJj
ZU5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2RlOjpwcm9jZXNzKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29udm9sdmVyTm9kZTo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlOjpwcm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpwcm9jZXNzKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9zY2ls
bGF0b3JOb2RlOjpwcm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5v
ZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6cHJvY2Vzcyk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFByb2Nlc3Nvck5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXYXZl
U2hhcGVyUHJvY2Vzc29yOjpwcm9jZXNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9SZXZl
cmJDb252b2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmV2ZXJiQ29udm9sdmVyOjpwcm9j
ZXNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmF0Y2hCdWZmZXI6OnB1cmdlVGltZXJGaXJlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFkb3dCbHVyOjpkcmF3UmVjdFNoYWRvd1dpdGhUaWxpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6U2hhZG93Qmx1cjo6ZHJhd0luc2V0U2hhZG93V2l0aFRpbGluZyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnBy
b3ZpZGVJbnB1dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnF1ZXVlVmlkZW9T
YW1wbGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQ29jb2E6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJPcldvcmts
ZXRUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0VGhyZWFkOjpz
dG9wKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkb3B0IENoZWNrZWRMb2NrIGluIG1vcmUgcGxhY2VzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXAuY3BwCmluZGV4IGMxY2Y4NjQyNzcwNTFiYTAyMTA1OGNmNTE0YWQzNzJmYmE3NDgy
N2IuLjY1Y2QzYjBjZTM5NTkzYTY0ZWIwODk5ZWJhMDVkZWZmZDAyMjlhNTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0hlYXAuY3BwCkBAIC0xNzA3LDcgKzE3MDcsOCBAQCBORVZFUl9JTkxJTkUg
dm9pZCBIZWFwOjpyZXN1bWVUaGVQZXJpcGhlcnkoKQogICAgICAgICAgICAgYm9vbCByZW1vdmUg
PSBmYWxzZTsKICAgICAgICAgICAgIGlmICh2aXNpdG9yLmhhc0Fja25vd2xlZGdlZFRoYXRUaGVN
dXRhdG9ySXNSZXN1bWVkKCkpCiAgICAgICAgICAgICAgICAgcmVtb3ZlID0gdHJ1ZTsKLSAgICAg
ICAgICAgIGVsc2UgaWYgKGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sodmlzaXRvci5yaWdodFRv
UnVuKCkpKSB7CisgICAgICAgICAgICBlbHNlIGlmICh2aXNpdG9yLnJpZ2h0VG9SdW4oKS50cnlM
b2NrKCkpIHsKKyAgICAgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsg
fSwgdmlzaXRvci5yaWdodFRvUnVuKCkgfTsKICAgICAgICAgICAgICAgICB2aXNpdG9yLnVwZGF0
ZU11dGF0b3JJc1N0b3BwZWQobG9ja2VyKTsKICAgICAgICAgICAgICAgICByZW1vdmUgPSB0cnVl
OwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk1UcmFwcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNw
cAppbmRleCA5MmJmZWFhNzY4YWE2ODYyYmRmNWQ5OGM0YWVkZDcxNDYyZTRhZDY0Li5hMzNlOTYy
ZWM2NGJkZGNiZjI2YjE4NDlhNWQ4YmI1ZjE3N2I0NDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTVRyYXBzLmNwcApAQCAtMTM3LDEwICsxMzcsMTAgQEAgdm9pZCBWTVRyYXBz
Ojp0cnlJbnN0YWxsVHJhcEJyZWFrcG9pbnRzKFNpZ25hbENvbnRleHQmIGNvbnRleHQsIFN0YWNr
Qm91bmRzIHN0YWMKICAgICB9CiAKICAgICBpZiAoSklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKGZv
dW5kQ29kZUJsb2NrLT5qaXRUeXBlKCkpKSB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9s
ZExvY2soKm1fbG9jayk7Ci0gICAgICAgIGlmICghbG9ja2VyKQorICAgICAgICBpZiAoIW1fbG9j
ay0+dHJ5TG9jaygpKQogICAgICAgICAgICAgcmV0dXJuOyAvLyBMZXQgdGhlIFNpZ25hbFNlbmRl
ciB0cnkgYWdhaW4gbGF0ZXIuCiAKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1Rh
ZyB7IH0sICptX2xvY2sgfTsKICAgICAgICAgaWYgKCFuZWVkSGFuZGxpbmcoVk1UcmFwczo6QXN5
bmNFdmVudHMpKSB7CiAgICAgICAgICAgICAvLyBUb28gbGF0ZS4gU29tZW9uZSBlbHNlIGFscmVh
ZHkgaGFuZGxlZCB0aGUgdHJhcC4KICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL0NoZWNrZWRMb2NrLmggYi9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5o
CmluZGV4IDQ0Yjg5OTk2OTEyMzQ1MjAwMTk4ZmQ4NjRhOTk4OTY2Nzc2Mzk5NDIuLjI2YmFkMTY3
MjViN2I4YzBhNjY3ZTlkZDJkMmE2NWIxNTQ1NTg0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL0NoZWNrZWRMb2NrLmgKKysrIGIvU291cmNlL1dURi93dGYvQ2hlY2tlZExvY2suaApAQCAt
MjUsNyArMjUsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPG11dGV4PgogI2luY2x1
ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2tlci5oPgogI2luY2x1ZGUgPHd0Zi9U
aHJlYWRTYWZldHlBbmFseXNpcy5oPgpAQCAtNzUsOCArNzQsNiBAQCBwdWJsaWM6CiAvLyBkZWNs
YXJhdGlvbi4KIGlubGluZSB2b2lkIGFzc2VydElzSGVsZChjb25zdCBDaGVja2VkTG9jayYgbG9j
aykgV1RGX0FTU0VSVFNfQUNRVUlSRURfTE9DSyhsb2NrKSB7IEFTU0VSVF9VTlVTRUQobG9jaywg
bG9jay5pc0hlbGQoKSk7IH0KIAotdXNpbmcgQWRvcHRMb2NrVGFnID0gc3RkOjphZG9wdF9sb2Nr
X3Q7Ci0KIC8vIExvY2tlciBzcGVjaWFsaXphdGlvbiB0byB1c2Ugd2l0aCBDaGVja2VkTG9jay4K
IC8vIE5vbi1tb3ZhYmxlIHNpbXBsZSBzY29wZWQgbG9jayBob2xkZXIuCiAvLyBFeGFtcGxlOiBM
b2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CkBAIC0xMDksNCArMTA2LDMgQEAgTG9ja2VyKEFkb3B0
TG9ja1RhZywgQ2hlY2tlZExvY2smKSAtPiBMb2NrZXI8Q2hlY2tlZExvY2s+OwogCiB1c2luZyBX
VEY6OmFzc2VydElzSGVsZDsKIHVzaW5nIFdURjo6Q2hlY2tlZExvY2s7Ci11c2luZyBXVEY6OkFk
b3B0TG9ja1RhZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2suaCBiL1NvdXJjZS9X
VEYvd3RmL0xvY2suaAppbmRleCA2MGZkYWFiZDkwZGFlN2YyZDRkNDhmMzFiODAzNGRlM2JmOTVm
NjdkLi4wNmE3MjRjNGY4YTBhMmU5Njc0ZDJkYTI2MjMwM2NjZmE5ZjY2YTQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgKKysrIGIvU291cmNlL1dURi93dGYvTG9jay5oCkBAIC0x
MzMsNyArMTMzLDcgQEAgcHJpdmF0ZToKIAogdXNpbmcgTG9ja0hvbGRlciA9IExvY2tlcjxMb2Nr
PjsKIAotfSAvLyBuYW1lc3BhY2UgV1RGCit9IC8vIG5hbWVzcGFjZSBXVEZbCiAKIHVzaW5nIFdU
Rjo6TG9jazsKIHVzaW5nIFdURjo6TG9ja0hvbGRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL0xvY2tlci5oIGIvU291cmNlL1dURi93dGYvTG9ja2VyLmgKaW5kZXggOGIwZTE5MmI1ZWJh
NGI4ODc2M2E4NDRkMWVjMGNiYTE0YzBjOTg4YS4uNmM5NWViMWM4YTZhNzBiN2VmZmQ1OTJhNDUw
MDgyNTllZDA5ZTI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTG9ja2VyLmgKKysrIGIv
U291cmNlL1dURi93dGYvTG9ja2VyLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI3ByYWdtYSBvbmNl
CiAKKyNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1
ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBpbGVyLmg+CkBAIC01NCwxMSAr
NTUsMTQgQEAgcHJvdGVjdGVkOgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBEcm9wTG9j
a0ZvclNjb3BlOwogCit1c2luZyBBZG9wdExvY2tUYWcgPSBzdGQ6OmFkb3B0X2xvY2tfdDsKKwog
dGVtcGxhdGU8dHlwZW5hbWUgVD4KIGNsYXNzIExvY2tlciA6IHB1YmxpYyBBYnN0cmFjdExvY2tl
ciB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgTG9ja2VyKFQmIGxvY2thYmxlKSA6IG1fbG9ja2Fi
bGUoJmxvY2thYmxlKSB7IGxvY2soKTsgfQogICAgIGV4cGxpY2l0IExvY2tlcihUKiBsb2NrYWJs
ZSkgOiBtX2xvY2thYmxlKGxvY2thYmxlKSB7IGxvY2soKTsgfQorICAgIGV4cGxpY2l0IExvY2tl
cihBZG9wdExvY2tUYWcsIFQmIGxvY2thYmxlKSA6IG1fbG9ja2FibGUoJmxvY2thYmxlKSB7IH0K
IAogICAgIC8vIFlvdSBzaG91bGQgYmUgd2FyeSBvZiB1c2luZyB0aGlzIGNvbnN0cnVjdG9yLiBJ
dCdzIG9ubHkgYXBwbGljYWJsZQogICAgIC8vIGluIHBsYWNlcyB3aGVyZSB0aGVyZSBpcyBhIGxv
Y2tpbmcgcHJvdG9jb2wgZm9yIGEgcGFydGljdWxhciBvYmplY3QKQEAgLTEzNiwxNCArMTQwLDYg
QEAgcHJpdmF0ZToKICAgICBUKiBtX2xvY2thYmxlOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUg
TG9ja1R5cGU+Ci1Mb2NrZXI8TG9ja1R5cGU+IHRyeUhvbGRMb2NrKExvY2tUeXBlJikgV0FSTl9V
TlVTRURfUkVUVVJOOwotdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+Ci1Mb2NrZXI8TG9ja1R5
cGU+IHRyeUhvbGRMb2NrKExvY2tUeXBlJiBsb2NrKQotewotICAgIHJldHVybiBMb2NrZXI8TG9j
a1R5cGU+Ojp0cnlMb2NrKGxvY2spOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4K
IGNsYXNzIERyb3BMb2NrRm9yU2NvcGUgOiBwcml2YXRlIEFic3RyYWN0TG9ja2VyIHsKICAgICBX
VEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTihEcm9wTG9ja0ZvclNjb3BlKTsKQEAgLTE2Niw2ICsx
NjIsNyBAQCBwcml2YXRlOgogfQogCiB1c2luZyBXVEY6OkFic3RyYWN0TG9ja2VyOwordXNpbmcg
V1RGOjpBZG9wdExvY2tUYWc7CiB1c2luZyBXVEY6OkxvY2tlcjsKIHVzaW5nIFdURjo6Tm9Mb2Nr
aW5nTmVjZXNzYXJ5VGFnOwogdXNpbmcgV1RGOjpOb0xvY2tpbmdOZWNlc3Nhcnk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNl
Tm9kZS5jcHAKaW5kZXggNjMzYzUwNmEwMDc2N2ZmYjg4NThjYjA2MGY1MWQ3Njk5NmJhMTcyYS4u
NjgwNTllZTg5MDNiNTM1YmYyOWNiYzVjM2RmODBlZDgzZTcwZTJmOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2Rl
LmNwcApAQCAtMTAyLDEzICsxMDIsMTMgQEAgdm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnBy
b2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBsb2NrLCBzbyB3ZSB1
c2UgdHJ5SG9sZExvY2soKSBpbnN0ZWFkLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2so
bV9wcm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKLSAgICAgICAgLy8gVG9vIGJhZCAt
IHRyeUhvbGRMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdp
bmcgYnVmZmVycyBhbmQgd2VyZSBhbHJlYWR5IG91dHB1dHRpbmcgc2lsZW5jZSBhbnl3YXkuCisg
ICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVz
ZSB0cnlMb2NrKCkgaW5zdGVhZC4KKyAgICBpZiAoIW1fcHJvY2Vzc0xvY2sudHJ5TG9jaygpKSB7
CisgICAgICAgIC8vIFRvbyBiYWQgLSB0cnlMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRo
ZSBtaWRkbGUgb2YgY2hhbmdpbmcgYnVmZmVycyBhbmQgd2VyZSBhbHJlYWR5IG91dHB1dHRpbmcg
c2lsZW5jZSBhbnl3YXkuCiAgICAgICAgIG91dHB1dEJ1cy56ZXJvKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fcHJvY2Vz
c0xvY2sgfTsKIAogICAgIGlmICghYnVmZmVyKCkpIHsKICAgICAgICAgb3V0cHV0QnVzLnplcm8o
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xl
dE5vZGUuY3BwCmluZGV4IDM0OTYyNmZhNGQ0M2VkMjUzZmNmOTA3MzJiNjQyYWYyYmM1YWE0NjAu
LmE5ZjZjYjU5NmQ5OTU0Y2FmNmRmYmM0NDNjZDliN2NiZmRkZjM2OTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcApAQCAt
MTkxLDExICsxOTEsMTkgQEAgdm9pZCBBdWRpb1dvcmtsZXROb2RlOjpwcm9jZXNzKHNpemVfdCBm
cmFtZXNUb1Byb2Nlc3MpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAKLSAgICBh
dXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwotICAgIGlmICghbG9ja2Vy
IHx8ICFtX3Byb2Nlc3NvciB8fCAmVGhyZWFkOjpjdXJyZW50KCkgIT0gbV93b3JrbGV0VGhyZWFk
KSB7Ci0gICAgICAgIC8vIFdlJ3JlIG5vdCByZWFkeSB5ZXQgb3Igd2UgYXJlIGdldHRpbmcgZGVz
dHJveWVkLiBJbiB0aGlzIGNhc2UsIHdlIG91dHB1dCBzaWxlbmNlLgorICAgIGF1dG8gemVyb091
dHB1dCA9IFsmXSB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZk91
dHB1dHMoKTsgKytpKQogICAgICAgICAgICAgb3V0cHV0KGkpLT5idXMoKS0+emVybygpOworICAg
IH07CisKKyAgICBpZiAoIW1fcHJvY2Vzc0xvY2sudHJ5TG9jaygpKSB7CisgICAgICAgIHplcm9P
dXRwdXQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBMb2NrZXIgbG9ja2VyIHsgQWRv
cHRMb2NrVGFnIHsgfSwgbV9wcm9jZXNzTG9jayB9OworICAgIGlmICghbV9wcm9jZXNzb3IgfHwg
JlRocmVhZDo6Y3VycmVudCgpICE9IG1fd29ya2xldFRocmVhZCkgeworICAgICAgICAvLyBXZSdy
ZSBub3QgcmVhZHkgeWV0IG9yIHdlIGFyZSBnZXR0aW5nIGRlc3Ryb3llZC4gSW4gdGhpcyBjYXNl
LCB3ZSBvdXRwdXQgc2lsZW5jZS4KKyAgICAgICAgemVyb091dHB1dCgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0NvbnZvbHZlck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252
b2x2ZXJOb2RlLmNwcAppbmRleCA1OTcxZmQwMDIyNWJjYWNjYzBlNTM3M2U2NzAyZGI0Y2QyOWU4
NTAwLi5kODMyYWVjYmM2MmE1YTM1ZTdkNThmN2Q4YTdlNTI1YTg1NmQxY2E3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAKQEAgLTky
LDEyICs5MiwxMiBAQCB2b2lkIENvbnZvbHZlck5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1Rv
UHJvY2VzcykKICAgICBBU1NFUlQob3V0cHV0QnVzKTsKIAogICAgIC8vIFN5bmNocm9uaXplIHdp
dGggcG9zc2libGUgZHluYW1pYyBjaGFuZ2VzIHRvIHRoZSBpbXB1bHNlIHJlc3BvbnNlLgotICAg
IGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2Nr
ZXIpIHsKLSAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUhvbGRMb2NrKCkgZmFpbGVkLiBXZSBtdXN0
IGJlIGluIHRoZSBtaWRkbGUgb2Ygc2V0dGluZyBhIG5ldyBpbXB1bHNlIHJlc3BvbnNlLgorICAg
IGlmICghbV9wcm9jZXNzTG9jay50cnlMb2NrKCkpIHsKKyAgICAgICAgLy8gVG9vIGJhZCAtIHRy
eUxvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBzZXR0aW5nIGEgbmV3
IGltcHVsc2UgcmVzcG9uc2UuCiAgICAgICAgIG91dHB1dEJ1cy0+emVybygpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQorICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX3By
b2Nlc3NMb2NrIH07CiAKICAgICBpZiAoIWlzSW5pdGlhbGl6ZWQoKSB8fCAhbV9yZXZlcmIuZ2V0
KCkpCiAgICAgICAgIG91dHB1dEJ1cy0+emVybygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUu
Y3BwCmluZGV4IGExYTQ2YTY3ZWVhMjNjNTU5MjEzYTczMDg4ODJjZTUwNjc0YmIyNjQuLjBlNGNk
MzYzMDIzYmEzMmU5YjBlNDY5MmMzY2UzNTNhMDUxYmZhMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291
cmNlTm9kZS5jcHAKQEAgLTE1NSwxNSArMTU1LDE2IEBAIHZvaWQgTWVkaWFFbGVtZW50QXVkaW9T
b3VyY2VOb2RlOjpwcm9jZXNzKHNpemVfdCBudW1iZXJPZkZyYW1lcykKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIC8vIFVzZSB0cnlIb2xkTG9jaygpIHRvIGF2b2lkIGNvbnRlbnRpb24g
aW4gdGhlIHJlYWwtdGltZSBhdWRpbyB0aHJlYWQuCisgICAgLy8gVXNlIHRyeUxvY2soKSB0byBh
dm9pZCBjb250ZW50aW9uIGluIHRoZSByZWFsLXRpbWUgYXVkaW8gdGhyZWFkLgogICAgIC8vIElm
IHdlIGZhaWwgdG8gYWNxdWlyZSB0aGUgbG9jayB0aGVuIHRoZSBIVE1MTWVkaWFFbGVtZW50IG11
c3QgYmUgaW4gdGhlIG1pZGRsZSBvZgogICAgIC8vIHJlY29uZmlndXJpbmcgaXRzIHBsYXliYWNr
IGVuZ2luZSwgc28gd2Ugb3V0cHV0IHNpbGVuY2UgaW4gdGhpcyBjYXNlLgotICAgIGF1dG8gbG9j
a2VyID0gdHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKKyAg
ICBpZiAoIW1fcHJvY2Vzc0xvY2sudHJ5TG9jaygpKSB7CiAgICAgICAgIC8vIFdlIGZhaWxlZCB0
byBhY3F1aXJlIHRoZSBsb2NrLgogICAgICAgICBvdXRwdXRCdXMtPnplcm8oKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KKworICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBt
X3Byb2Nlc3NMb2NrIH07CiAgICAgaWYgKG1fc291cmNlTnVtYmVyT2ZDaGFubmVscyAhPSBvdXRw
dXRCdXMtPm51bWJlck9mQ2hhbm5lbHMoKSkgewogICAgICAgICBvdXRwdXRCdXMtPnplcm8oKTsK
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcAppbmRleCBjNTY2MmQ2
MDlhZjYwYTZhZWJhNmRhNzIxYTM1ZDFkNTg4YWQ1MTc1Li5lNTYyNWQ3ZjBiOWE2Yjc4Yzk2MzBj
NmE2ZDViM2YwODAxMDIzNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcApAQCAtMTM5
LDE1ICsxMzksMTUgQEAgdm9pZCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZTo6cHJvY2Vzcyhz
aXplX3QgbnVtYmVyT2ZGcmFtZXMpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBV
c2UgdHJ5SG9sZExvY2soKSB0byBhdm9pZCBjb250ZW50aW9uIGluIHRoZSByZWFsLXRpbWUgYXVk
aW8gdGhyZWFkLgorICAgIC8vIFVzZSB0cnlMb2NrKCkgdG8gYXZvaWQgY29udGVudGlvbiBpbiB0
aGUgcmVhbC10aW1lIGF1ZGlvIHRocmVhZC4KICAgICAvLyBJZiB3ZSBmYWlsIHRvIGFjcXVpcmUg
dGhlIGxvY2sgdGhlbiB0aGUgTWVkaWFTdHJlYW0gbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mCiAg
ICAgLy8gYSBmb3JtYXQgY2hhbmdlLCBzbyB3ZSBvdXRwdXQgc2lsZW5jZSBpbiB0aGlzIGNhc2Uu
Ci0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAo
IWxvY2tlcikgeworICAgIGlmICghbV9wcm9jZXNzTG9jay50cnlMb2NrKCkpIHsKICAgICAgICAg
Ly8gV2UgZmFpbGVkIHRvIGFjcXVpcmUgdGhlIGxvY2suCiAgICAgICAgIG91dHB1dEJ1cy0+emVy
bygpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExv
Y2tUYWcgeyB9LCBtX3Byb2Nlc3NMb2NrIH07CiAgICAgaWYgKG1fc291cmNlTnVtYmVyT2ZDaGFu
bmVscyAhPSBvdXRwdXRCdXMtPm51bWJlck9mQ2hhbm5lbHMoKSkgewogICAgICAgICBvdXRwdXRC
dXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcAppbmRleCBjNmY2OWQyMzA1YzIxNTk5Njcx
MzlhODQ3OWZhZTVkMzE4MjIyNTg3Li5mMTE1MzM4YTY1MGM2MzZmN2IxODY5NDRmZGIyZDAyZGQx
ZDIwNGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2ls
bGF0b3JOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2ls
bGF0b3JOb2RlLmNwcApAQCAtMzQ5LDEzICszNDksMTMgQEAgdm9pZCBPc2NpbGxhdG9yTm9kZTo6
cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgIGlmIChmcmFtZXNUb1Byb2Nlc3Mg
PiBtX3BoYXNlSW5jcmVtZW50cy5zaXplKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIFRo
ZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBsb2NrLCBzbyB3ZSB1c2UgdHJ5SG9s
ZExvY2soKSBpbnN0ZWFkLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9wcm9jZXNz
TG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKLSAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUhvbGRM
b2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgd2F2ZS10
YWJsZXMuCisgICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ss
IHNvIHdlIHVzZSB0cnlMb2NrKCkgaW5zdGVhZC4KKyAgICBpZiAoIW1fcHJvY2Vzc0xvY2sudHJ5
TG9jaygpKSB7CisgICAgICAgIC8vIFRvbyBiYWQgLSB0cnlMb2NrKCkgZmFpbGVkLiBXZSBtdXN0
IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgd2F2ZS10YWJsZXMuCiAgICAgICAgIG91dHB1
dEJ1cy56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgTG9ja2VyIGxvY2tlciB7
IEFkb3B0TG9ja1RhZyB7IH0sIG1fcHJvY2Vzc0xvY2sgfTsKIAogICAgIC8vIFdlIG11c3QgYWNj
ZXNzIG1fcGVyaW9kaWNXYXZlIG9ubHkgaW5zaWRlIHRoZSBsb2NrLgogICAgIGlmICghbV9wZXJp
b2RpY1dhdmUuZ2V0KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vUGFubmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bh
bm5lck5vZGUuY3BwCmluZGV4IDdjY2YyNGQ2NzBiN2Y2ZTFlZjFhMzc3OWY5YjcwNDg2ODJmZmNl
ZDcuLmY4ZmRhNTFkNzdlMjRkMTJmY2U0YTQ5NjljZTUzZjg3YmY2ZGY5NTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcApAQCAtMTI5LDEzICsx
MjksMTMgQEAgdm9pZCBQYW5uZXJOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3Mp
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2Nr
IG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUhvbGRMb2NrKCkgaW5zdGVhZC4KLSAgICBhdXRv
IGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwotICAgIGlmICghbG9ja2VyKSB7
Ci0gICAgICAgIC8vIFRvbyBiYWQgLSB0cnlIb2xkTG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBp
biB0aGUgbWlkZGxlIG9mIGNoYW5naW5nIHRoZSBwYW5uZXIuCisgICAgLy8gVGhlIGF1ZGlvIHRo
cmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlMb2NrKCkgaW5zdGVh
ZC4KKyAgICBpZiAoIW1fcHJvY2Vzc0xvY2sudHJ5TG9jaygpKSB7CisgICAgICAgIC8vIFRvbyBi
YWQgLSB0cnlMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdp
bmcgdGhlIHBhbm5lci4KICAgICAgICAgZGVzdGluYXRpb24tPnplcm8oKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KKyAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9wcm9j
ZXNzTG9jayB9OwogCiAgICAgaWYgKChoYXNTYW1wbGVBY2N1cmF0ZVZhbHVlcygpIHx8IGxpc3Rl
bmVyKCkuaGFzU2FtcGxlQWNjdXJhdGVWYWx1ZXMoKSkgJiYgKHNob3VsZFVzZUFSYXRlKCkgfHwg
bGlzdGVuZXIoKS5zaG91bGRVc2VBUmF0ZSgpKSkgewogICAgICAgICBwcm9jZXNzU2FtcGxlQWNj
dXJhdGVWYWx1ZXMoZGVzdGluYXRpb24sIHNvdXJjZSwgZnJhbWVzVG9Qcm9jZXNzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5v
ZGUuY3BwCmluZGV4IDIyZTk3ZThhYTI1ZWFjMmY3MDhlMjNmNzZhODliMjhkOTMwMzAxMzAuLmU1
ZmE4NTQ0MWI4OTU0ZmUxMTQ0OTU1ODZmMGJkYzE0ZjAyMTI1ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcApA
QCAtMTU4LDEzICsxNTgsMTMgQEAgdm9pZCBTY3JpcHRQcm9jZXNzb3JOb2RlOjpwcm9jZXNzKHNp
emVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgdW5zaWduZWQgYnVmZmVySW5kZXggPSB0aGlzLT5i
dWZmZXJJbmRleCgpOwogICAgIEFTU0VSVChidWZmZXJJbmRleCA8IGJ1ZmZlckNvdW50KTsKIAot
ICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9idWZmZXJMb2Nrc1tidWZmZXJJbmRleF0p
OwotICAgIGlmICghbG9ja2VyKSB7CisgICAgaWYgKCFtX2J1ZmZlckxvY2tzW2J1ZmZlckluZGV4
XS50cnlMb2NrKCkpIHsKICAgICAgICAgLy8gV2UncmUgbGF0ZSBpbiBoYW5kbGluZyB0aGUgcHJl
dmlvdXMgcmVxdWVzdC4gVGhlIG1haW4gdGhyZWFkIG11c3QgYmUKICAgICAgICAgLy8gdmVyeSBi
dXN5LiBUaGUgYmVzdCB3ZSBjYW4gZG8gaXMgY2xlYXIgb3V0IHRoZSBidWZmZXIgb3Vyc2VsZiBo
ZXJlLgogICAgICAgICBvdXRwdXRCdXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
KyAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9idWZmZXJMb2Nrc1tidWZm
ZXJJbmRleF0gfTsKICAgICAKICAgICBBdWRpb0J1ZmZlciogaW5wdXRCdWZmZXIgPSBtX2lucHV0
QnVmZmVyc1tidWZmZXJJbmRleF0uZ2V0KCk7CiAgICAgQXVkaW9CdWZmZXIqIG91dHB1dEJ1ZmZl
ciA9IG1fb3V0cHV0QnVmZmVyc1tidWZmZXJJbmRleF0uZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcAppbmRl
eCAxMjA4ODUwODA4OTAzNjFkNGM0MGFhNmFjYWI5NTRiYTcwMGI1NzI5Li5iZTQ1ZDg4NWU3NTE5
NjI3OGViZmQyZjE4ZThhZjI3OTRlMjJjZjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5jcHAKQEAgLTgzLDEzICs4
MywxMyBAQCB2b2lkIFdhdmVTaGFwZXJQcm9jZXNzb3I6OnByb2Nlc3MoY29uc3QgQXVkaW9CdXMq
IHNvdXJjZSwgQXVkaW9CdXMqIGRlc3RpbmF0aW9uLAogICAgIGlmICghY2hhbm5lbENvdW50TWF0
Y2hlcykKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBi
bG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlIb2xkTG9jaygpIGluc3RlYWQuCi0gICAg
YXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tl
cikgewotICAgICAgICAvLyBUb28gYmFkIC0gdHJ5SG9sZExvY2soKSBmYWlsZWQuIFdlIG11c3Qg
YmUgaW4gdGhlIG1pZGRsZSBvZiBhIHNldEN1cnZlKCkgY2FsbC4KKyAgICAvLyBUaGUgYXVkaW8g
dGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUxvY2soKSBpbnN0
ZWFkLgorICAgIGlmICghbV9wcm9jZXNzTG9jay50cnlMb2NrKCkpIHsKKyAgICAgICAgLy8gVG9v
IGJhZCAtIHRyeUxvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBhIHNl
dEN1cnZlKCkgY2FsbC4KICAgICAgICAgZGVzdGluYXRpb24tPnplcm8oKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KKyAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9wcm9j
ZXNzTG9jayB9OwogCiAgICAgLy8gRm9yIGVhY2ggY2hhbm5lbCBvZiBvdXIgaW5wdXQsIHByb2Nl
c3MgdXNpbmcgdGhlIGNvcnJlc3BvbmRpbmcgV2F2ZVNoYXBlckRTUEtlcm5lbCBpbnRvIHRoZSBv
dXRwdXQgY2hhbm5lbC4KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9rZXJuZWxzLnNp
emUoKTsgKytpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2
ZXJiQ29udm9sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNv
bnZvbHZlci5jcHAKaW5kZXggMjdiMjk4MmRjM2ZkOTE2ODVkMzE3YTdlZDFhOWMxZTZlZTQ3YjI2
Zi4uNThhM2U3ZjI0ZDYwNmI0NTc2OTRlNTRiYzRhOTJiZWNlM2ZkYWYxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCkBAIC0yMDIs
OSArMjAyLDkgQEAgdm9pZCBSZXZlcmJDb252b2x2ZXI6OnByb2Nlc3MoY29uc3QgQXVkaW9DaGFu
bmVsKiBzb3VyY2VDaGFubmVsLCBBdWRpb0NoYW5uZWwqIGQKICAgICAvLyBzaWduYWwgZnJvbSB0
aW1lIHRvIHRpbWUsIHNpbmNlIHdlJ2xsIGdldCB0byBpdCB0aGUgbmV4dCB0aW1lIHdlJ3JlIGNh
bGxlZC4gIFdlJ3JlIGNhbGxlZCByZXBlYXRlZGx5CiAgICAgLy8gYW5kIGZyZXF1ZW50bHkgKGFy
b3VuZCBldmVyeSAzbXMpLiAgVGhlIGJhY2tncm91bmQgdGhyZWFkIGlzIHByb2Nlc3Npbmcgd2Vs
bCBpbnRvIHRoZSBmdXR1cmUgYW5kIGhhcyBhIGNvbnNpZGVyYWJsZSBhbW91bnQgb2YgCiAgICAg
Ly8gbGVld2F5IGhlcmUuLi4KLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fYmFja2dy
b3VuZFRocmVhZExvY2spOwotICAgIGlmICghbG9ja2VyKQorICAgIGlmICghbV9iYWNrZ3JvdW5k
VGhyZWFkTG9jay50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybjsKKyAgICBMb2NrZXIgbG9ja2Vy
IHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9iYWNrZ3JvdW5kVGhyZWFkTG9jayB9OwogCiAgICAgbV9t
b3JlSW5wdXRCdWZmZXJlZCA9IHRydWU7CiAgICAgbV9iYWNrZ3JvdW5kVGhyZWFkQ29uZGl0aW9u
VmFyaWFibGUubm90aWZ5T25lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1NoYWRvd0JsdXIuY3BwCmluZGV4IGMwNjRjY2U0Y2E4NjJiZDQ2ODkyODQxZmZhNWJjMTlm
YjdmMjEzZGEuLmM3ZmJlMzI3NmZhMmE3ZjFkNjEyZTAxZjBkNWE1YjI1MzE3MDQ1YjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCkBAIC0x
MzUsOCArMTM1LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBwdXJnZVRpbWVyRmlyZWQoKQogICAg
IHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICAgICAgaWYgKGF1dG8gbG9j
a2VyID0gdHJ5SG9sZExvY2sobG9jaygpKSkKKyAgICAgICAgaWYgKGxvY2soKS50cnlMb2NrKCkp
IHsKICAgICAgICAgICAgIGNsZWFyU2NyYXRjaEJ1ZmZlcigpOworICAgICAgICAgICAgbG9jaygp
LnVubG9jaygpOworICAgICAgICB9CiAgICAgfQogCiAgICAgdm9pZCBjbGVhclNjcmF0Y2hCdWZm
ZXIoKQpAQCAtNjk0LDggKzY5Niw4IEBAIHZvaWQgU2hhZG93Qmx1cjo6ZHJhd1JlY3RTaGFkb3dX
aXRoVGlsaW5nKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb25zCiB7CiAgICAg
UmVmUHRyPEltYWdlQnVmZmVyPiBsYXllckltYWdlQnVmZmVyOwogI2lmIFVTRShDRykKLSAgICBh
dXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKFNjcmF0Y2hCdWZmZXI6OmxvY2soKSk7Ci0gICAgaWYg
KGxvY2tlcikgeworICAgIGlmIChTY3JhdGNoQnVmZmVyOjpsb2NrKCkudHJ5TG9jaygpKSB7Cisg
ICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBTY3JhdGNoQnVmZmVyOjps
b2NrKCkgfTsKICAgICAgICAgbGF5ZXJJbWFnZUJ1ZmZlciA9IFNjcmF0Y2hCdWZmZXI6OnNpbmds
ZXRvbigpLmdldFNjcmF0Y2hCdWZmZXIodGVtcGxhdGVTaXplKTsKICAgICAgICAgaWYgKCFsYXll
ckltYWdlQnVmZmVyKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNzU0LDggKzc1Niw4IEBAIHZv
aWQgU2hhZG93Qmx1cjo6ZHJhd0luc2V0U2hhZG93V2l0aFRpbGluZyhjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIHRyYW5zZm9ybSwgY29uCiB7CiAgICAgUmVmUHRyPEltYWdlQnVmZmVyPiBsYXllcklt
YWdlQnVmZmVyOwogI2lmIFVTRShDRykKLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKFNj
cmF0Y2hCdWZmZXI6OmxvY2soKSk7Ci0gICAgaWYgKGxvY2tlcikgeworICAgIGlmIChTY3JhdGNo
QnVmZmVyOjpsb2NrKCkudHJ5TG9jaygpKSB7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9w
dExvY2tUYWcgeyB9LCBTY3JhdGNoQnVmZmVyOjpsb2NrKCkgfTsKICAgICAgICAgbGF5ZXJJbWFn
ZUJ1ZmZlciA9IFNjcmF0Y2hCdWZmZXI6OnNpbmdsZXRvbigpLmdldFNjcmF0Y2hCdWZmZXIodGVt
cGxhdGVTaXplKTsKICAgICAgICAgaWYgKCFsYXllckltYWdlQnVmZmVyKQogICAgICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
Lm1tCmluZGV4IDQ3OTc2ODNiODBiYjQ5MDVhN2E4MTY4ODdhNDM1NGQxMjk4ZWNkNDEuLjE3MDlj
ZjE4OTZhZGY1ODM3OTExOGFjYTgxYjI4NzM2NjFjMzg1MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTk0LDcgKzk0LDcgQEAgQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakM6On5BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQygpCiAK
IHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dChBdWRpb0J1cyog
YnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewotICAgIC8vIFByb3RlY3QgYWNjZXNzIHRv
IG1fcmluZ0J1ZmZlciBieSB1c2luZyB0cnlIb2xkTG9jaygpLiBJZiB3ZSBmYWlsZWQKKyAgICAv
LyBQcm90ZWN0IGFjY2VzcyB0byBtX3JpbmdCdWZmZXIgYnkgdXNpbmcgdHJ5TG9jaygpLiBJZiB3
ZSBmYWlsZWQKICAgICAvLyB0byBhcXVpcmUsIGEgcmUtY29uZmlndXJlIGlzIHVuZGVyd2F5LCBh
bmQgbV9yaW5nQnVmZmVyIGlzIHVuc2FmZSB0byBhY2Nlc3MuCiAgICAgLy8gRW1pdCBzaWxlbmNl
LgogICAgIGlmICghbV90YXBTdG9yYWdlKSB7CkBAIC0xMDIsOCArMTAyLDEzIEBAIHZvaWQgQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dChBdWRpb0J1cyogYnVzLCBzaXpl
X3QgZnJhbWVzVG9Qcm9jCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIGxvY2tl
ciA9IHRyeUhvbGRMb2NrKG1fdGFwU3RvcmFnZS0+bG9jayk7Ci0gICAgaWYgKCFsb2NrZXIgfHwg
IW1fcmluZ0J1ZmZlcikgeworICAgIGlmICghbV90YXBTdG9yYWdlLT5sb2NrLnRyeUxvY2soKSkg
eworICAgICAgICBidXMtPnplcm8oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBMb2Nr
ZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV90YXBTdG9yYWdlLT5sb2NrIH07CisKKyAg
ICBpZiAoIW1fcmluZ0J1ZmZlcikgewogICAgICAgICBidXMtPnplcm8oKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRleCA4MTM5OTZjNzZjNjQx
YjdjYWUwNDZmNTk3MWVjNzQ3Y2Y5MWNlOWQ3Li5hZmUzMjg4NTdiMjJhMjRjNzMxNjM0ZmNlNTRm
ZjY2MTA4YjIyNGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCkBAIC0yNTQsOSArMjU0
LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmVucXVldWVW
aWRlb1NhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGwKICAgICBpZiAoIW1fdmlzaWJsZSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3NhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllckxvY2spOwotICAgIGlmICghbG9ja2VyKQorICAgIGlmICghbV9zYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJMb2NrLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOworICAgIExv
Y2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ckxvY2sgfTsKIAogICAgIGlmICghbV9jYW5FbnF1ZXVlRGlzcGxheUxheWVyIHx8ICFtX3NhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllciB8fCBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+ZGlkRmFp
bCgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJD
b2NvYS5tbQppbmRleCA1NzZmNDRlOTJjNThiOTNjMGI0MGQ2NjQ5OTgwYmM3ZTkwYTVlYWZiLi5m
MThlZDIzYjE4MWYwOTRkNzcwNjhiNWQxMzU1OTA5YzJhMDlmYWMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9X
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0KQEAgLTY1LDggKzY1LDEyIEBAIHZvaWQgV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckNvY29hOjpzZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNs
aWVudCogY2xpZW50KQogCiB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6cHJvdmlk
ZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7Ci0gICAgYXV0
byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX2xvY2spOwotICAgIGlmICghbG9ja2VyIHx8ICFtX2Rh
dGFTb3VyY2UgfHwgIW1fYXVkaW9CdWZmZXJMaXN0KSB7CisgICAgaWYgKCFtX2xvY2sudHJ5TG9j
aygpKSB7CisgICAgICAgIGJ1cy0+emVybygpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2xvY2sgfTsKKyAgICBpZiAoIW1f
ZGF0YVNvdXJjZSB8fCAhbV9hdWRpb0J1ZmZlckxpc3QpIHsKICAgICAgICAgYnVzLT56ZXJvKCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck9yV29ya2xldFRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck9yV29ya2xldFRocmVhZC5jcHAKaW5kZXggNDc3ZDk2NzJjNzEyYjQ2ZmM0ZWJkN2EyODk3
ZTc3ZWIxNTgwODQ4NC4uYmQxNzliZDQwMDRkNmNkY2RhNjllNjk3OWQ3YTI2YWRmZWRjNmU2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0VGhyZWFkLmNw
cApAQCAtMjA3LDggKzIwNyw3IEBAIHZvaWQgV29ya2VyT3JXb3JrbGV0VGhyZWFkOjpzdG9wKEZ1
bmN0aW9uPHZvaWQoKT4mJiBzdG9wcGVkQ2FsbGJhY2spCiAgICAgLy8gTXV0ZXggcHJvdGVjdGlv
biBpcyBuZWNlc3NhcnkgdG8gZW5zdXJlIHRoYXQgbV93b3JrZXJHbG9iYWxTY29wZSBpc24ndCBj
aGFuZ2VkIGJ5CiAgICAgLy8gV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWQoKSB3aGlsZSB3ZSdy
ZSBhY2Nlc3NpbmcgaXQuIE5vdGUgYWxzbyB0aGF0IHN0b3AoKSBjYW4KICAgICAvLyBiZSBjYWxs
ZWQgYmVmb3JlIG1fd29ya2VyR2xvYmFsU2NvcGUgaXMgZnVsbHkgY3JlYXRlZC4KLSAgICBhdXRv
IGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fdGhyZWFkQ3JlYXRpb25BbmRHbG9iYWxTY29wZUxvY2sp
OwotICAgIGlmICghbG9ja2VyKSB7CisgICAgaWYgKCFtX3RocmVhZENyZWF0aW9uQW5kR2xvYmFs
U2NvcGVMb2NrLnRyeUxvY2soKSkgewogICAgICAgICAvLyBUaGUgdGhyZWFkIGlzIHN0aWxsIHN0
YXJ0aW5nLCBzcGluIHRoZSBydW5sb29wIGFuZCB0cnkgYWdhaW4gdG8gYXZvaWQgZGVhZGxvY2tz
IGlmIHRoZSB3b3JrZXIgdGhyZWFkCiAgICAgICAgIC8vIG5lZWRzIHRvIGludGVyYWN0IHdpdGgg
dGhlIG1haW4gdGhyZWFkIGR1cmluZyBzdGFydHVwLgogICAgICAgICBjYWxsT25NYWluVGhyZWFk
KFt0aGlzLCBzdG9wcGVkQ2FsbGJhY2sgPSBXVEZNb3ZlKHN0b3BwZWRDYWxsYmFjayldKCkgbXV0
YWJsZSB7CkBAIC0yMTYsNiArMjE1LDcgQEAgdm9pZCBXb3JrZXJPcldvcmtsZXRUaHJlYWQ6OnN0
b3AoRnVuY3Rpb248dm9pZCgpPiYmIHN0b3BwZWRDYWxsYmFjaykKICAgICAgICAgfSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0s
IG1fdGhyZWFkQ3JlYXRpb25BbmRHbG9iYWxTY29wZUxvY2sgfTsKIAogICAgIC8vIElmIHRoZSB0
aHJlYWQgaXMgc3VzcGVuZGVkLCByZXN1bWUgaXQgbm93IHNvIHRoYXQgd2UgY2FuIGRpc3BhdGNo
IHRoZSBjbGVhbnVwIHRhc2tzIGJlbG93LgogICAgIGlmIChtX2lzU3VzcGVuZGVkKQo=
</data>
<flag name="commit-queue"
          id="450638"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429447</attachid>
            <date>2021-05-22 19:01:06 -0700</date>
            <delta_ts>2021-05-22 19:18:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226145-20210522190105.patch</filename>
            <type>text/plain</type>
            <size>26628</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZjY3MTE3MDhhODUyMGY5MDcyMjIzNDExNThhODk2NDgzZjU5NmE2Li5mYTE1YjEzMDNiMzI4YTA3
ZjFlNzFiZTQ5ZjMzYWJlZmY2MDdlOWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3
aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlz
IGluY29tcGF0aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuCisgICAgICAg
IEluc3RlYWQsIHVzZSB0aGUgZm9sbG93aW5nIHBhdHRlcm4gd2hpY2ggaXMgc3VwcG9ydGVkOgor
ICAgICAgICBgYGAKKyAgICAgICAgaWYgKGxvY2sudHJ5TG9jaygpKSB7CisgICAgICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbG9jayB9OworICAgICAgICAgICAgLy8g
Li4uCisgICAgICAgIH0KKyAgICAgICAgYGBgCisKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgor
ICAgICAgICAoSlNDOjpIZWFwOjpyZXN1bWVUaGVQZXJpcGhlcnkpOgorICAgICAgICAqIHJ1bnRp
bWUvVk1UcmFwcy5jcHA6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OnRyeUluc3RhbGxUcmFwQnJl
YWtwb2ludHMpOgorCiAyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVwbGFjZSBMb2NrSG9sZGVyIHdpdGggTG9ja2VyIGluIGxvY2FsIHZhcmlh
YmxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZwppbmRleCBiNzBhM2YzZTgxMzcyNzI3MDVhMDRiZWQyMzk2Y2UwZmM5ZWJmNzRiLi41YzVi
NjA3ZjUyMzhiNTg5MmZhNjlmZWFkZmZkY2M0YTIxMjM0NmRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBA
CisyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
RHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRpYmxlIHdpdGggQ2xhbmcg
VGhyZWFkIFNhZmV0eSBBbmFseXNpcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI2MTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRHJvcCBXVEY6OnRyeUhvbGRMb2NrKCkgYXMgaXQgaXMgaW5jb21wYXRp
YmxlIHdpdGggQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcy4KKyAgICAgICAgSW5zdGVhZCwg
dXNlIHRoZSBmb2xsb3dpbmcgcGF0dGVybiB3aGljaCBpcyBzdXBwb3J0ZWQ6CisgICAgICAgIGBg
YAorICAgICAgICBpZiAobG9jay50cnlMb2NrKCkpIHsKKyAgICAgICAgICAgIExvY2tlciBsb2Nr
ZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBsb2NrIH07CisgICAgICAgICAgICAvLyAuLi4KKyAgICAg
ICAgfQorICAgICAgICBgYGAKKworICAgICAgICAqIHd0Zi9DaGVja2VkTG9jay5oOgorICAgICAg
ICAqIHd0Zi9Mb2NrLmg6CisgICAgICAgICogd3RmL0xvY2tlci5oOgorICAgICAgICAoV1RGOjpM
b2NrZXI6OkxvY2tlcik6CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBBZG9wdCBDaGVja2VkTG9jayBpbiBtb3JlIHBsYWNlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGQwNTdkMjcxMjcwNGM4MTkwZGE0NDQyMjAxMzkxMjZlNWUyMWVhOWMuLmI4ODliNWNi
YmY5OTQzYjU5NTkzNGEzYTMyYjg3NjBkYTYwOTg2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1
MiBAQAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3aXRoIENs
YW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29t
cGF0aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuCisgICAgICAgIEluc3Rl
YWQsIHVzZSB0aGUgZm9sbG93aW5nIHBhdHRlcm4gd2hpY2ggaXMgc3VwcG9ydGVkOgorICAgICAg
ICBgYGAKKyAgICAgICAgaWYgKGxvY2sudHJ5TG9jaygpKSB7CisgICAgICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbG9jayB9OworICAgICAgICAgICAgLy8gLi4uCisg
ICAgICAgIH0KKyAgICAgICAgYGBgCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
QnVmZmVyU291cmNlTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJj
ZU5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2RlOjpwcm9jZXNzKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29udm9sdmVyTm9kZTo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlOjpwcm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpwcm9jZXNzKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9zY2ls
bGF0b3JOb2RlOjpwcm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5v
ZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6cHJvY2Vzcyk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFByb2Nlc3Nvck5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXYXZl
U2hhcGVyUHJvY2Vzc29yOjpwcm9jZXNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9SZXZl
cmJDb252b2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmV2ZXJiQ29udm9sdmVyOjpwcm9j
ZXNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmF0Y2hCdWZmZXI6OnB1cmdlVGltZXJGaXJlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFkb3dCbHVyOjpkcmF3UmVjdFNoYWRvd1dpdGhUaWxpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6U2hhZG93Qmx1cjo6ZHJhd0luc2V0U2hhZG93V2l0aFRpbGluZyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnBy
b3ZpZGVJbnB1dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnF1ZXVlVmlkZW9T
YW1wbGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQ29jb2E6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJPcldvcmts
ZXRUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0VGhyZWFkOjpz
dG9wKToKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkb3B0IENoZWNrZWRMb2NrIGluIG1vcmUgcGxhY2VzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXAuY3BwCmluZGV4IGMxY2Y4NjQyNzcwNTFiYTAyMTA1OGNmNTE0YWQzNzJmYmE3NDgy
N2IuLjY1Y2QzYjBjZTM5NTkzYTY0ZWIwODk5ZWJhMDVkZWZmZDAyMjlhNTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0hlYXAuY3BwCkBAIC0xNzA3LDcgKzE3MDcsOCBAQCBORVZFUl9JTkxJTkUg
dm9pZCBIZWFwOjpyZXN1bWVUaGVQZXJpcGhlcnkoKQogICAgICAgICAgICAgYm9vbCByZW1vdmUg
PSBmYWxzZTsKICAgICAgICAgICAgIGlmICh2aXNpdG9yLmhhc0Fja25vd2xlZGdlZFRoYXRUaGVN
dXRhdG9ySXNSZXN1bWVkKCkpCiAgICAgICAgICAgICAgICAgcmVtb3ZlID0gdHJ1ZTsKLSAgICAg
ICAgICAgIGVsc2UgaWYgKGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sodmlzaXRvci5yaWdodFRv
UnVuKCkpKSB7CisgICAgICAgICAgICBlbHNlIGlmICh2aXNpdG9yLnJpZ2h0VG9SdW4oKS50cnlM
b2NrKCkpIHsKKyAgICAgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsg
fSwgdmlzaXRvci5yaWdodFRvUnVuKCkgfTsKICAgICAgICAgICAgICAgICB2aXNpdG9yLnVwZGF0
ZU11dGF0b3JJc1N0b3BwZWQobG9ja2VyKTsKICAgICAgICAgICAgICAgICByZW1vdmUgPSB0cnVl
OwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk1UcmFwcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNw
cAppbmRleCA5MmJmZWFhNzY4YWE2ODYyYmRmNWQ5OGM0YWVkZDcxNDYyZTRhZDY0Li5hMzNlOTYy
ZWM2NGJkZGNiZjI2YjE4NDlhNWQ4YmI1ZjE3N2I0NDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTVRyYXBzLmNwcApAQCAtMTM3LDEwICsxMzcsMTAgQEAgdm9pZCBWTVRyYXBz
Ojp0cnlJbnN0YWxsVHJhcEJyZWFrcG9pbnRzKFNpZ25hbENvbnRleHQmIGNvbnRleHQsIFN0YWNr
Qm91bmRzIHN0YWMKICAgICB9CiAKICAgICBpZiAoSklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKGZv
dW5kQ29kZUJsb2NrLT5qaXRUeXBlKCkpKSB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9s
ZExvY2soKm1fbG9jayk7Ci0gICAgICAgIGlmICghbG9ja2VyKQorICAgICAgICBpZiAoIW1fbG9j
ay0+dHJ5TG9jaygpKQogICAgICAgICAgICAgcmV0dXJuOyAvLyBMZXQgdGhlIFNpZ25hbFNlbmRl
ciB0cnkgYWdhaW4gbGF0ZXIuCiAKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1Rh
ZyB7IH0sICptX2xvY2sgfTsKICAgICAgICAgaWYgKCFuZWVkSGFuZGxpbmcoVk1UcmFwczo6QXN5
bmNFdmVudHMpKSB7CiAgICAgICAgICAgICAvLyBUb28gbGF0ZS4gU29tZW9uZSBlbHNlIGFscmVh
ZHkgaGFuZGxlZCB0aGUgdHJhcC4KICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL0NoZWNrZWRMb2NrLmggYi9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5o
CmluZGV4IDQ0Yjg5OTk2OTEyMzQ1MjAwMTk4ZmQ4NjRhOTk4OTY2Nzc2Mzk5NDIuLjI3ZTViOWQy
ZmM3ZTBhMWMwOWJiMWI5ZWNhOGZiMDFlODczN2U0MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL0NoZWNrZWRMb2NrLmgKKysrIGIvU291cmNlL1dURi93dGYvQ2hlY2tlZExvY2suaApAQCAt
MjUsNyArMjUsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPG11dGV4PgogI2luY2x1
ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2tlci5oPgogI2luY2x1ZGUgPHd0Zi9U
aHJlYWRTYWZldHlBbmFseXNpcy5oPgpAQCAtNDAsNyArMzksNyBAQCBuYW1lc3BhY2UgV1RGIHsK
IC8vICAgY2xhc3MgTXlWYWx1ZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxNeVZhbHVl
PgogLy8gICB7CiAvLyAgIHB1YmxpYzoKLS8vICAgICAgIHZvaWQgc2V0VmFsdWUoaW50IHZhbHVl
KSB7IExvY2hrZXIgaG9sZExvY2sgeyBtX2xvY2sgfTsgbV92YWx1ZSA9IHZhbHVlOyAgfQorLy8g
ICAgICAgdm9pZCBzZXRWYWx1ZShpbnQgdmFsdWUpIHsgTG9ja2VyIGhvbGRMb2NrIHsgbV9sb2Nr
IH07IG1fdmFsdWUgPSB2YWx1ZTsgIH0KIC8vICAgICAgIHZvaWQgbWF5YmVTZXRPdGhlclZhbHVl
KGludCB2YWx1ZSkKIC8vICAgICAgIHsKIC8vICAgICAgICAgICBpZiAoIW1fbG9jay50cnlMb2Nr
KCkpCkBAIC03NSw4ICs3NCw2IEBAIHB1YmxpYzoKIC8vIGRlY2xhcmF0aW9uLgogaW5saW5lIHZv
aWQgYXNzZXJ0SXNIZWxkKGNvbnN0IENoZWNrZWRMb2NrJiBsb2NrKSBXVEZfQVNTRVJUU19BQ1FV
SVJFRF9MT0NLKGxvY2spIHsgQVNTRVJUX1VOVVNFRChsb2NrLCBsb2NrLmlzSGVsZCgpKTsgfQog
Ci11c2luZyBBZG9wdExvY2tUYWcgPSBzdGQ6OmFkb3B0X2xvY2tfdDsKLQogLy8gTG9ja2VyIHNw
ZWNpYWxpemF0aW9uIHRvIHVzZSB3aXRoIENoZWNrZWRMb2NrLgogLy8gTm9uLW1vdmFibGUgc2lt
cGxlIHNjb3BlZCBsb2NrIGhvbGRlci4KIC8vIEV4YW1wbGU6IExvY2tlciBsb2NrZXIgeyBtX2xv
Y2sgfTsKQEAgLTEwOSw0ICsxMDYsMyBAQCBMb2NrZXIoQWRvcHRMb2NrVGFnLCBDaGVja2VkTG9j
ayYpIC0+IExvY2tlcjxDaGVja2VkTG9jaz47CiAKIHVzaW5nIFdURjo6YXNzZXJ0SXNIZWxkOwog
dXNpbmcgV1RGOjpDaGVja2VkTG9jazsKLXVzaW5nIFdURjo6QWRvcHRMb2NrVGFnOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvTG9jay5oIGIvU291cmNlL1dURi93dGYvTG9jay5oCmluZGV4
IDYwZmRhYWJkOTBkYWU3ZjJkNGQ0OGYzMWI4MDM0ZGUzYmY5NWY2N2QuLjA2YTcyNGM0ZjhhMGEy
ZTk2NzRkMmRhMjYyMzAzY2NmYTlmNjZhNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xv
Y2suaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgKQEAgLTEzMyw3ICsxMzMsNyBAQCBwcml2
YXRlOgogCiB1c2luZyBMb2NrSG9sZGVyID0gTG9ja2VyPExvY2s+OwogCi19IC8vIG5hbWVzcGFj
ZSBXVEYKK30gLy8gbmFtZXNwYWNlIFdURlsKIAogdXNpbmcgV1RGOjpMb2NrOwogdXNpbmcgV1RG
OjpMb2NrSG9sZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9ja2VyLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9Mb2NrZXIuaAppbmRleCA4YjBlMTkyYjVlYmE0Yjg4NzYzYTg0NGQxZWMwY2Jh
MTRjMGM5ODhhLi42Yzk1ZWIxYzhhNmE3MGI3ZWZmZDU5MmE0NTAwODI1OWVkMDllMjU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2Nr
ZXIuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPG11dGV4
PgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4K
ICNpbmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4KQEAgLTU0LDExICs1NSwxNCBAQCBwcm90ZWN0ZWQ6
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIERyb3BMb2NrRm9yU2NvcGU7CiAKK3VzaW5n
IEFkb3B0TG9ja1RhZyA9IHN0ZDo6YWRvcHRfbG9ja190OworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgogY2xhc3MgTG9ja2VyIDogcHVibGljIEFic3RyYWN0TG9ja2VyIHsKIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBMb2NrZXIoVCYgbG9ja2FibGUpIDogbV9sb2NrYWJsZSgmbG9ja2FibGUpIHsgbG9j
aygpOyB9CiAgICAgZXhwbGljaXQgTG9ja2VyKFQqIGxvY2thYmxlKSA6IG1fbG9ja2FibGUobG9j
a2FibGUpIHsgbG9jaygpOyB9CisgICAgZXhwbGljaXQgTG9ja2VyKEFkb3B0TG9ja1RhZywgVCYg
bG9ja2FibGUpIDogbV9sb2NrYWJsZSgmbG9ja2FibGUpIHsgfQogCiAgICAgLy8gWW91IHNob3Vs
ZCBiZSB3YXJ5IG9mIHVzaW5nIHRoaXMgY29uc3RydWN0b3IuIEl0J3Mgb25seSBhcHBsaWNhYmxl
CiAgICAgLy8gaW4gcGxhY2VzIHdoZXJlIHRoZXJlIGlzIGEgbG9ja2luZyBwcm90b2NvbCBmb3Ig
YSBwYXJ0aWN1bGFyIG9iamVjdApAQCAtMTM2LDE0ICsxNDAsNiBAQCBwcml2YXRlOgogICAgIFQq
IG1fbG9ja2FibGU7CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4KLUxvY2tlcjxM
b2NrVHlwZT4gdHJ5SG9sZExvY2soTG9ja1R5cGUmKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci10ZW1w
bGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4KLUxvY2tlcjxMb2NrVHlwZT4gdHJ5SG9sZExvY2soTG9j
a1R5cGUmIGxvY2spCi17Ci0gICAgcmV0dXJuIExvY2tlcjxMb2NrVHlwZT46OnRyeUxvY2sobG9j
ayk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlPgogY2xhc3MgRHJvcExvY2tGb3JT
Y29wZSA6IHByaXZhdGUgQWJzdHJhY3RMb2NrZXIgewogICAgIFdURl9GT1JCSURfSEVBUF9BTExP
Q0FUSU9OKERyb3BMb2NrRm9yU2NvcGUpOwpAQCAtMTY2LDYgKzE2Miw3IEBAIHByaXZhdGU6CiB9
CiAKIHVzaW5nIFdURjo6QWJzdHJhY3RMb2NrZXI7Cit1c2luZyBXVEY6OkFkb3B0TG9ja1RhZzsK
IHVzaW5nIFdURjo6TG9ja2VyOwogdXNpbmcgV1RGOjpOb0xvY2tpbmdOZWNlc3NhcnlUYWc7CiB1
c2luZyBXVEY6Ok5vTG9ja2luZ05lY2Vzc2FyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAppbmRleCA2MzNj
NTA2YTAwNzY3ZmZiODg1OGNiMDYwZjUxZDc2OTk2YmExNzJhLi42ODA1OWVlODkwM2I1MzViZjI5
Y2JjNWMzZGY4MGVkODNlNzBlMmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCkBAIC0xMDIsMTMgKzEw
MiwxMyBAQCB2b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVz
VG9Qcm9jZXNzKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gVGhlIGF1ZGlvIHRo
cmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlIb2xkTG9jaygpIGlu
c3RlYWQuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAg
ICBpZiAoIWxvY2tlcikgewotICAgICAgICAvLyBUb28gYmFkIC0gdHJ5SG9sZExvY2soKSBmYWls
ZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBjaGFuZ2luZyBidWZmZXJzIGFuZCB3ZXJl
IGFscmVhZHkgb3V0cHV0dGluZyBzaWxlbmNlIGFueXdheS4KKyAgICAvLyBUaGUgYXVkaW8gdGhy
ZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUxvY2soKSBpbnN0ZWFk
LgorICAgIGlmICghbV9wcm9jZXNzTG9jay50cnlMb2NrKCkpIHsKKyAgICAgICAgLy8gVG9vIGJh
ZCAtIHRyeUxvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBjaGFuZ2lu
ZyBidWZmZXJzIGFuZCB3ZXJlIGFscmVhZHkgb3V0cHV0dGluZyBzaWxlbmNlIGFueXdheS4KICAg
ICAgICAgb3V0cHV0QnVzLnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBMb2Nr
ZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9wcm9jZXNzTG9jayB9OwogCiAgICAgaWYg
KCFidWZmZXIoKSkgewogICAgICAgICBvdXRwdXRCdXMuemVybygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKaW5kZXggMzQ5
NjI2ZmE0ZDQzZWQyNTNmY2Y5MDczMmI2NDJhZjJiYzVhYTQ2MC4uYTlmNmNiNTk2ZDk5NTRjYWY2
ZGZiYzQ0M2NkOWI3Y2JmZGRmMzY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCkBAIC0xOTEsMTEgKzE5MSwxOSBAQCB2
b2lkIEF1ZGlvV29ya2xldE5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsK
ICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9s
ZExvY2sobV9wcm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIgfHwgIW1fcHJvY2Vzc29yIHx8
ICZUaHJlYWQ6OmN1cnJlbnQoKSAhPSBtX3dvcmtsZXRUaHJlYWQpIHsKLSAgICAgICAgLy8gV2Un
cmUgbm90IHJlYWR5IHlldCBvciB3ZSBhcmUgZ2V0dGluZyBkZXN0cm95ZWQuIEluIHRoaXMgY2Fz
ZSwgd2Ugb3V0cHV0IHNpbGVuY2UuCisgICAgYXV0byB6ZXJvT3V0cHV0ID0gWyZdIHsKICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mT3V0cHV0cygpOyArK2kpCiAgICAg
ICAgICAgICBvdXRwdXQoaSktPmJ1cygpLT56ZXJvKCk7CisgICAgfTsKKworICAgIGlmICghbV9w
cm9jZXNzTG9jay50cnlMb2NrKCkpIHsKKyAgICAgICAgemVyb091dHB1dCgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX3By
b2Nlc3NMb2NrIH07CisgICAgaWYgKCFtX3Byb2Nlc3NvciB8fCAmVGhyZWFkOjpjdXJyZW50KCkg
IT0gbV93b3JrbGV0VGhyZWFkKSB7CisgICAgICAgIC8vIFdlJ3JlIG5vdCByZWFkeSB5ZXQgb3Ig
d2UgYXJlIGdldHRpbmcgZGVzdHJveWVkLiBJbiB0aGlzIGNhc2UsIHdlIG91dHB1dCBzaWxlbmNl
LgorICAgICAgICB6ZXJvT3V0cHV0KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwCmluZGV4
IDU5NzFmZDAwMjI1YmNhY2NjMGU1MzczZTY3MDJkYjRjZDI5ZTg1MDAuLmQ4MzJhZWNiYzYyYTVh
MzVlN2Q1OGY3ZDhhN2U1MjVhODU2ZDFjYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcApAQCAtOTIsMTIgKzkyLDEyIEBAIHZvaWQg
Q29udm9sdmVyTm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgIEFTU0VS
VChvdXRwdXRCdXMpOwogCiAgICAgLy8gU3luY2hyb25pemUgd2l0aCBwb3NzaWJsZSBkeW5hbWlj
IGNoYW5nZXMgdG8gdGhlIGltcHVsc2UgcmVzcG9uc2UuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlI
b2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgewotICAgICAgICAvLyBU
b28gYmFkIC0gdHJ5SG9sZExvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBv
ZiBzZXR0aW5nIGEgbmV3IGltcHVsc2UgcmVzcG9uc2UuCisgICAgaWYgKCFtX3Byb2Nlc3NMb2Nr
LnRyeUxvY2soKSkgeworICAgICAgICAvLyBUb28gYmFkIC0gdHJ5TG9jaygpIGZhaWxlZC4gV2Ug
bXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIHNldHRpbmcgYSBuZXcgaW1wdWxzZSByZXNwb25zZS4K
ICAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAg
TG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fcHJvY2Vzc0xvY2sgfTsKIAogICAg
IGlmICghaXNJbml0aWFsaXplZCgpIHx8ICFtX3JldmVyYi5nZXQoKSkKICAgICAgICAgb3V0cHV0
QnVzLT56ZXJvKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAKaW5kZXggYTFhNDZhNjdl
ZWEyM2M1NTkyMTNhNzMwODg4MmNlNTA2NzRiYjI2NC4uMGU0Y2QzNjMwMjNiYTMyZTliMGU0Njky
YzNjZTM1M2EwNTFiZmExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcApAQCAtMTU1
LDE1ICsxNTUsMTYgQEAgdm9pZCBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3Mo
c2l6ZV90IG51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8g
VXNlIHRyeUhvbGRMb2NrKCkgdG8gYXZvaWQgY29udGVudGlvbiBpbiB0aGUgcmVhbC10aW1lIGF1
ZGlvIHRocmVhZC4KKyAgICAvLyBVc2UgdHJ5TG9jaygpIHRvIGF2b2lkIGNvbnRlbnRpb24gaW4g
dGhlIHJlYWwtdGltZSBhdWRpbyB0aHJlYWQuCiAgICAgLy8gSWYgd2UgZmFpbCB0byBhY3F1aXJl
IHRoZSBsb2NrIHRoZW4gdGhlIEhUTUxNZWRpYUVsZW1lbnQgbXVzdCBiZSBpbiB0aGUgbWlkZGxl
IG9mCiAgICAgLy8gcmVjb25maWd1cmluZyBpdHMgcGxheWJhY2sgZW5naW5lLCBzbyB3ZSBvdXRw
dXQgc2lsZW5jZSBpbiB0aGlzIGNhc2UuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayht
X3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgeworICAgIGlmICghbV9wcm9jZXNzTG9j
ay50cnlMb2NrKCkpIHsKICAgICAgICAgLy8gV2UgZmFpbGVkIHRvIGFjcXVpcmUgdGhlIGxvY2su
CiAgICAgICAgIG91dHB1dEJ1cy0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQorCisg
ICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fcHJvY2Vzc0xvY2sgfTsKICAg
ICBpZiAobV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzICE9IG91dHB1dEJ1cy0+bnVtYmVyT2ZDaGFu
bmVscygpKSB7CiAgICAgICAgIG91dHB1dEJ1cy0+emVybygpOwogICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVk
aW9Tb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFT
dHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCmluZGV4IGM1NjYyZDYwOWFmNjBhNmFlYmE2ZGE3MjFh
MzVkMWQ1ODhhZDUxNzUuLmU1NjI1ZDdmMGI5YTZiNzhjOTYzMGM2YTZkNWIzZjA4MDEwMjM0YTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCkBAIC0xMzksMTUgKzEzOSwxNSBAQCB2b2lk
IE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpwcm9jZXNzKHNpemVfdCBudW1iZXJPZkZyYW1l
cykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIFVzZSB0cnlIb2xkTG9jaygpIHRv
IGF2b2lkIGNvbnRlbnRpb24gaW4gdGhlIHJlYWwtdGltZSBhdWRpbyB0aHJlYWQuCisgICAgLy8g
VXNlIHRyeUxvY2soKSB0byBhdm9pZCBjb250ZW50aW9uIGluIHRoZSByZWFsLXRpbWUgYXVkaW8g
dGhyZWFkLgogICAgIC8vIElmIHdlIGZhaWwgdG8gYWNxdWlyZSB0aGUgbG9jayB0aGVuIHRoZSBN
ZWRpYVN0cmVhbSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YKICAgICAvLyBhIGZvcm1hdCBjaGFu
Z2UsIHNvIHdlIG91dHB1dCBzaWxlbmNlIGluIHRoaXMgY2FzZS4KLSAgICBhdXRvIGxvY2tlciA9
IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwotICAgIGlmICghbG9ja2VyKSB7CisgICAgaWYg
KCFtX3Byb2Nlc3NMb2NrLnRyeUxvY2soKSkgewogICAgICAgICAvLyBXZSBmYWlsZWQgdG8gYWNx
dWlyZSB0aGUgbG9jay4KICAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fcHJvY2Vz
c0xvY2sgfTsKICAgICBpZiAobV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzICE9IG91dHB1dEJ1cy0+
bnVtYmVyT2ZDaGFubmVscygpKSB7CiAgICAgICAgIG91dHB1dEJ1cy0+emVybygpOwogICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09z
Y2lsbGF0b3JOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxs
YXRvck5vZGUuY3BwCmluZGV4IGM2ZjY5ZDIzMDVjMjE1OTk2NzEzOWE4NDc5ZmFlNWQzMTgyMjI1
ODcuLmYxMTUzMzhhNjUwYzYzNmY3YjE4Njk0NGZkYjJkMDJkZDFkMjA0Y2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCkBAIC0z
NDksMTMgKzM0OSwxMyBAQCB2b2lkIE9zY2lsbGF0b3JOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFt
ZXNUb1Byb2Nlc3MpCiAgICAgaWYgKGZyYW1lc1RvUHJvY2VzcyA+IG1fcGhhc2VJbmNyZW1lbnRz
LnNpemUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4n
dCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlIb2xkTG9jaygpIGluc3RlYWQuCi0g
ICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxv
Y2tlcikgewotICAgICAgICAvLyBUb28gYmFkIC0gdHJ5SG9sZExvY2soKSBmYWlsZWQuIFdlIG11
c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBjaGFuZ2luZyB3YXZlLXRhYmxlcy4KKyAgICAvLyBUaGUg
YXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUxvY2so
KSBpbnN0ZWFkLgorICAgIGlmICghbV9wcm9jZXNzTG9jay50cnlMb2NrKCkpIHsKKyAgICAgICAg
Ly8gVG9vIGJhZCAtIHRyeUxvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBv
ZiBjaGFuZ2luZyB3YXZlLXRhYmxlcy4KICAgICAgICAgb3V0cHV0QnVzLnplcm8oKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KKyAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwg
bV9wcm9jZXNzTG9jayB9OwogCiAgICAgLy8gV2UgbXVzdCBhY2Nlc3MgbV9wZXJpb2RpY1dhdmUg
b25seSBpbnNpZGUgdGhlIGxvY2suCiAgICAgaWYgKCFtX3BlcmlvZGljV2F2ZS5nZXQoKSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAKaW5kZXgg
N2NjZjI0ZDY3MGI3ZjZlMWVmMWEzNzc5ZjliNzA0ODY4MmZmY2VkNy4uZjhmZGE1MWQ3N2UyNGQx
MmZjZTRhNDk2OWNlNTNmODdiZjZkZjk1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwCkBAIC0xMjksMTMgKzEyOSwxMyBAQCB2b2lkIFBhbm5l
ck5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICAgICAgfQogICAgIH0K
IAotICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBsb2NrLCBzbyB3
ZSB1c2UgdHJ5SG9sZExvY2soKSBpbnN0ZWFkLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExv
Y2sobV9wcm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKLSAgICAgICAgLy8gVG9vIGJh
ZCAtIHRyeUhvbGRMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hh
bmdpbmcgdGhlIHBhbm5lci4KKyAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9u
IHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUxvY2soKSBpbnN0ZWFkLgorICAgIGlmICghbV9wcm9j
ZXNzTG9jay50cnlMb2NrKCkpIHsKKyAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUxvY2soKSBmYWls
ZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBjaGFuZ2luZyB0aGUgcGFubmVyLgogICAg
ICAgICBkZXN0aW5hdGlvbi0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIExv
Y2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX3Byb2Nlc3NMb2NrIH07CiAKICAgICBp
ZiAoKGhhc1NhbXBsZUFjY3VyYXRlVmFsdWVzKCkgfHwgbGlzdGVuZXIoKS5oYXNTYW1wbGVBY2N1
cmF0ZVZhbHVlcygpKSAmJiAoc2hvdWxkVXNlQVJhdGUoKSB8fCBsaXN0ZW5lcigpLnNob3VsZFVz
ZUFSYXRlKCkpKSB7CiAgICAgICAgIHByb2Nlc3NTYW1wbGVBY2N1cmF0ZVZhbHVlcyhkZXN0aW5h
dGlvbiwgc291cmNlLCBmcmFtZXNUb1Byb2Nlc3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKaW5kZXggMjJlOTdl
OGFhMjVlYWMyZjcwOGUyM2Y3NmE4OWIyOGQ5MzAzMDEzMC4uZTVmYTg1NDQxYjg5NTRmZTExNDQ5
NTU4NmYwYmRjMTRmMDIxMjVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCkBAIC0xNTgsMTMgKzE1OCwxMyBA
QCB2b2lkIFNjcmlwdFByb2Nlc3Nvck5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2Vz
cykKICAgICB1bnNpZ25lZCBidWZmZXJJbmRleCA9IHRoaXMtPmJ1ZmZlckluZGV4KCk7CiAgICAg
QVNTRVJUKGJ1ZmZlckluZGV4IDwgYnVmZmVyQ291bnQpOwogCi0gICAgYXV0byBsb2NrZXIgPSB0
cnlIb2xkTG9jayhtX2J1ZmZlckxvY2tzW2J1ZmZlckluZGV4XSk7Ci0gICAgaWYgKCFsb2NrZXIp
IHsKKyAgICBpZiAoIW1fYnVmZmVyTG9ja3NbYnVmZmVySW5kZXhdLnRyeUxvY2soKSkgewogICAg
ICAgICAvLyBXZSdyZSBsYXRlIGluIGhhbmRsaW5nIHRoZSBwcmV2aW91cyByZXF1ZXN0LiBUaGUg
bWFpbiB0aHJlYWQgbXVzdCBiZQogICAgICAgICAvLyB2ZXJ5IGJ1c3kuIFRoZSBiZXN0IHdlIGNh
biBkbyBpcyBjbGVhciBvdXQgdGhlIGJ1ZmZlciBvdXJzZWxmIGhlcmUuCiAgICAgICAgIG91dHB1
dEJ1cy0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIExvY2tlciBsb2NrZXIg
eyBBZG9wdExvY2tUYWcgeyB9LCBtX2J1ZmZlckxvY2tzW2J1ZmZlckluZGV4XSB9OwogICAgIAog
ICAgIEF1ZGlvQnVmZmVyKiBpbnB1dEJ1ZmZlciA9IG1faW5wdXRCdWZmZXJzW2J1ZmZlckluZGV4
XS5nZXQoKTsKICAgICBBdWRpb0J1ZmZlciogb3V0cHV0QnVmZmVyID0gbV9vdXRwdXRCdWZmZXJz
W2J1ZmZlckluZGV4XS5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwCmluZGV4IDEyMDg4NTA4MDg5MDM2MWQ0
YzQwYWE2YWNhYjk1NGJhNzAwYjU3MjkuLmJlNDVkODg1ZTc1MTk2Mjc4ZWJmZDJmMThlOGFmMjc5
NGUyMmNmOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2
ZVNoYXBlclByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcApAQCAtODMsMTMgKzgzLDEzIEBAIHZvaWQgV2F2ZVNo
YXBlclByb2Nlc3Nvcjo6cHJvY2Vzcyhjb25zdCBBdWRpb0J1cyogc291cmNlLCBBdWRpb0J1cyog
ZGVzdGluYXRpb24sCiAgICAgaWYgKCFjaGFubmVsQ291bnRNYXRjaGVzKQogICAgICAgICByZXR1
cm47CiAKLSAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywg
c28gd2UgdXNlIHRyeUhvbGRMb2NrKCkgaW5zdGVhZC4KLSAgICBhdXRvIGxvY2tlciA9IHRyeUhv
bGRMb2NrKG1fcHJvY2Vzc0xvY2spOwotICAgIGlmICghbG9ja2VyKSB7Ci0gICAgICAgIC8vIFRv
byBiYWQgLSB0cnlIb2xkTG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9m
IGEgc2V0Q3VydmUoKSBjYWxsLgorICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sg
b24gdGhpcyBsb2NrLCBzbyB3ZSB1c2UgdHJ5TG9jaygpIGluc3RlYWQuCisgICAgaWYgKCFtX3By
b2Nlc3NMb2NrLnRyeUxvY2soKSkgeworICAgICAgICAvLyBUb28gYmFkIC0gdHJ5TG9jaygpIGZh
aWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGEgc2V0Q3VydmUoKSBjYWxsLgogICAg
ICAgICBkZXN0aW5hdGlvbi0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIExv
Y2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX3Byb2Nlc3NMb2NrIH07CiAKICAgICAv
LyBGb3IgZWFjaCBjaGFubmVsIG9mIG91ciBpbnB1dCwgcHJvY2VzcyB1c2luZyB0aGUgY29ycmVz
cG9uZGluZyBXYXZlU2hhcGVyRFNQS2VybmVsIGludG8gdGhlIG91dHB1dCBjaGFubmVsLgogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2tlcm5lbHMuc2l6ZSgpOyArK2kpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcAppbmRleCAy
N2IyOTgyZGMzZmQ5MTY4NWQzMTdhN2VkMWE5YzFlNmVlNDdiMjZmLi41OGEzZTdmMjRkNjA2YjQ1
NzY5NGU1NGJjNGE5MmJlY2UzZmRhZjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKQEAgLTIwMiw5ICsyMDIsOSBAQCB2b2lkIFJl
dmVyYkNvbnZvbHZlcjo6cHJvY2Vzcyhjb25zdCBBdWRpb0NoYW5uZWwqIHNvdXJjZUNoYW5uZWws
IEF1ZGlvQ2hhbm5lbCogZAogICAgIC8vIHNpZ25hbCBmcm9tIHRpbWUgdG8gdGltZSwgc2luY2Ug
d2UnbGwgZ2V0IHRvIGl0IHRoZSBuZXh0IHRpbWUgd2UncmUgY2FsbGVkLiAgV2UncmUgY2FsbGVk
IHJlcGVhdGVkbHkKICAgICAvLyBhbmQgZnJlcXVlbnRseSAoYXJvdW5kIGV2ZXJ5IDNtcykuICBU
aGUgYmFja2dyb3VuZCB0aHJlYWQgaXMgcHJvY2Vzc2luZyB3ZWxsIGludG8gdGhlIGZ1dHVyZSBh
bmQgaGFzIGEgY29uc2lkZXJhYmxlIGFtb3VudCBvZiAKICAgICAvLyBsZWV3YXkgaGVyZS4uLgot
ICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9iYWNrZ3JvdW5kVGhyZWFkTG9jayk7Ci0g
ICAgaWYgKCFsb2NrZXIpCisgICAgaWYgKCFtX2JhY2tncm91bmRUaHJlYWRMb2NrLnRyeUxvY2so
KSkKICAgICAgICAgcmV0dXJuOworICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9
LCBtX2JhY2tncm91bmRUaHJlYWRMb2NrIH07CiAKICAgICBtX21vcmVJbnB1dEJ1ZmZlcmVkID0g
dHJ1ZTsKICAgICBtX2JhY2tncm91bmRUaHJlYWRDb25kaXRpb25WYXJpYWJsZS5ub3RpZnlPbmUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0Js
dXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAK
aW5kZXggYzA2NGNjZTRjYTg2MmJkNDY4OTI4NDFmZmE1YmMxOWZiN2YyMTNkYS4uYTNiMDU1ZDM4
MzU2MmZmNGEwNjc4YTI4NWNiYmJhNzM0Yjg2ZjY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAKQEAgLTEzNSw4ICsxMzUsMTAgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHB1cmdlVGltZXJGaXJlZCgpCiAgICAgewogICAgICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwotICAgICAgICBpZiAoYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhs
b2NrKCkpKQorICAgICAgICBpZiAobG9jaygpLnRyeUxvY2soKSkgewogICAgICAgICAgICAgY2xl
YXJTY3JhdGNoQnVmZmVyKCk7CisgICAgICAgICAgICBsb2NrKCkudW5sb2NrKCk7CisgICAgICAg
IH0KICAgICB9CiAKICAgICB2b2lkIGNsZWFyU2NyYXRjaEJ1ZmZlcigpCkBAIC02OTQsNyArNjk2
LDcgQEAgdm9pZCBTaGFkb3dCbHVyOjpkcmF3UmVjdFNoYWRvd1dpdGhUaWxpbmcoY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbnMKIHsKICAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+
IGxheWVySW1hZ2VCdWZmZXI7CiAjaWYgVVNFKENHKQotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9s
ZExvY2soU2NyYXRjaEJ1ZmZlcjo6bG9jaygpKTsKKyAgICBhdXRvIGxvY2tlciA9IExvY2tlcjxM
b2NrPjo6dHJ5TG9jayhTY3JhdGNoQnVmZmVyOjpsb2NrKCkpOwogICAgIGlmIChsb2NrZXIpIHsK
ICAgICAgICAgbGF5ZXJJbWFnZUJ1ZmZlciA9IFNjcmF0Y2hCdWZmZXI6OnNpbmdsZXRvbigpLmdl
dFNjcmF0Y2hCdWZmZXIodGVtcGxhdGVTaXplKTsKICAgICAgICAgaWYgKCFsYXllckltYWdlQnVm
ZmVyKQpAQCAtNzU0LDcgKzc1Niw3IEBAIHZvaWQgU2hhZG93Qmx1cjo6ZHJhd0luc2V0U2hhZG93
V2l0aFRpbGluZyhjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29uCiB7CiAgICAg
UmVmUHRyPEltYWdlQnVmZmVyPiBsYXllckltYWdlQnVmZmVyOwogI2lmIFVTRShDRykKLSAgICBh
dXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKFNjcmF0Y2hCdWZmZXI6OmxvY2soKSk7CisgICAgYXV0
byBsb2NrZXIgPSBMb2NrZXI8TG9jaz46OnRyeUxvY2soU2NyYXRjaEJ1ZmZlcjo6bG9jaygpKTsK
ICAgICBpZiAobG9ja2VyKSB7CiAgICAgICAgIGxheWVySW1hZ2VCdWZmZXIgPSBTY3JhdGNoQnVm
ZmVyOjpzaW5nbGV0b24oKS5nZXRTY3JhdGNoQnVmZmVyKHRlbXBsYXRlU2l6ZSk7CiAgICAgICAg
IGlmICghbGF5ZXJJbWFnZUJ1ZmZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQy5tbQppbmRleCA0Nzk3NjgzYjgwYmI0OTA1YTdhODE2ODg3YTQzNTRk
MTI5OGVjZDQxLi4xNzA5Y2YxODk2YWRmNTgzNzkxMThhY2E4MWIyODczNjYxYzM4NTAzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCkBAIC05
NCw3ICs5NCw3IEBAIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+QXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMoKQogCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRl
SW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsKLSAgICAvLyBQ
cm90ZWN0IGFjY2VzcyB0byBtX3JpbmdCdWZmZXIgYnkgdXNpbmcgdHJ5SG9sZExvY2soKS4gSWYg
d2UgZmFpbGVkCisgICAgLy8gUHJvdGVjdCBhY2Nlc3MgdG8gbV9yaW5nQnVmZmVyIGJ5IHVzaW5n
IHRyeUxvY2soKS4gSWYgd2UgZmFpbGVkCiAgICAgLy8gdG8gYXF1aXJlLCBhIHJlLWNvbmZpZ3Vy
ZSBpcyB1bmRlcndheSwgYW5kIG1fcmluZ0J1ZmZlciBpcyB1bnNhZmUgdG8gYWNjZXNzLgogICAg
IC8vIEVtaXQgc2lsZW5jZS4KICAgICBpZiAoIW1fdGFwU3RvcmFnZSkgewpAQCAtMTAyLDggKzEw
MiwxMyBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQoQXVk
aW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvYwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3RhcFN0b3JhZ2UtPmxvY2spOwotICAg
IGlmICghbG9ja2VyIHx8ICFtX3JpbmdCdWZmZXIpIHsKKyAgICBpZiAoIW1fdGFwU3RvcmFnZS0+
bG9jay50cnlMb2NrKCkpIHsKKyAgICAgICAgYnVzLT56ZXJvKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fdGFwU3RvcmFn
ZS0+bG9jayB9OworCisgICAgaWYgKCFtX3JpbmdCdWZmZXIpIHsKICAgICAgICAgYnVzLT56ZXJv
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5k
ZXggODEzOTk2Yzc2YzY0MWI3Y2FlMDQ2ZjU5NzFlYzc0N2NmOTFjZTlkNy4uYWZlMzI4ODU3YjIy
YTI0YzczMTYzNGZjZTU0ZmY2NjEwOGIyMjRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5t
bQpAQCAtMjU0LDkgKzI1NCw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjplbnF1ZXVlVmlkZW9TYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBsCiAgICAgaWYgKCFt
X3Zpc2libGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExv
Y2sobV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikKKyAg
ICBpZiAoIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTG9jay50cnlMb2NrKCkpCiAgICAgICAg
IHJldHVybjsKKyAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9zYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJMb2NrIH07CiAKICAgICBpZiAoIW1fY2FuRW5xdWV1ZURpc3BsYXlM
YXllciB8fCAhbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgfHwgbV9zYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXItPmRpZEZhaWwoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJD
b2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQ29jb2EubW0KaW5kZXggNTc2ZjQ0ZTkyYzU4YjkzYzBiNDBkNjY0OTk4
MGJjN2U5MGE1ZWFmYi4uZjE4ZWQyM2IxODFmMDk0ZDc3MDY4YjVkMTM1NTkwOWMyYTA5ZmFjMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1
ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hLm1tCkBAIC02NSw4ICs2
NSwxMiBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYTo6c2V0Q2xpZW50KEF1ZGlv
U291cmNlUHJvdmlkZXJDbGllbnQqIGNsaWVudCkKIAogdm9pZCBXZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQ29jb2E6OnByb3ZpZGVJbnB1dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9j
ZXNzKQogewotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9sb2NrKTsKLSAgICBpZiAo
IWxvY2tlciB8fCAhbV9kYXRhU291cmNlIHx8ICFtX2F1ZGlvQnVmZmVyTGlzdCkgeworICAgIGlm
ICghbV9sb2NrLnRyeUxvY2soKSkgeworICAgICAgICBidXMtPnplcm8oKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9sb2Nr
IH07CisgICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgIW1fYXVkaW9CdWZmZXJMaXN0KSB7CiAgICAg
ICAgIGJ1cy0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwCmluZGV4IDQ3N2Q5NjcyYzcx
MmI0NmZjNGViZDdhMjg5N2U3N2ViMTU4MDg0ODQuLmJkMTc5YmQ0MDA0ZDZjZGNkYTY5ZTY5Nzlk
N2EyNmFkZmVkYzZlNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
T3JXb3JrbGV0VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9y
V29ya2xldFRocmVhZC5jcHAKQEAgLTIwNyw4ICsyMDcsNyBAQCB2b2lkIFdvcmtlck9yV29ya2xl
dFRocmVhZDo6c3RvcChGdW5jdGlvbjx2b2lkKCk+JiYgc3RvcHBlZENhbGxiYWNrKQogICAgIC8v
IE11dGV4IHByb3RlY3Rpb24gaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSB0aGF0IG1fd29ya2VyR2xv
YmFsU2NvcGUgaXNuJ3QgY2hhbmdlZCBieQogICAgIC8vIFdvcmtlclRocmVhZDo6d29ya2VyVGhy
ZWFkKCkgd2hpbGUgd2UncmUgYWNjZXNzaW5nIGl0LiBOb3RlIGFsc28gdGhhdCBzdG9wKCkgY2Fu
CiAgICAgLy8gYmUgY2FsbGVkIGJlZm9yZSBtX3dvcmtlckdsb2JhbFNjb3BlIGlzIGZ1bGx5IGNy
ZWF0ZWQuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5k
R2xvYmFsU2NvcGVMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgeworICAgIGlmICghbV90aHJlYWRD
cmVhdGlvbkFuZEdsb2JhbFNjb3BlTG9jay50cnlMb2NrKCkpIHsKICAgICAgICAgLy8gVGhlIHRo
cmVhZCBpcyBzdGlsbCBzdGFydGluZywgc3BpbiB0aGUgcnVubG9vcCBhbmQgdHJ5IGFnYWluIHRv
IGF2b2lkIGRlYWRsb2NrcyBpZiB0aGUgd29ya2VyIHRocmVhZAogICAgICAgICAvLyBuZWVkcyB0
byBpbnRlcmFjdCB3aXRoIHRoZSBtYWluIHRocmVhZCBkdXJpbmcgc3RhcnR1cC4KICAgICAgICAg
Y2FsbE9uTWFpblRocmVhZChbdGhpcywgc3RvcHBlZENhbGxiYWNrID0gV1RGTW92ZShzdG9wcGVk
Q2FsbGJhY2spXSgpIG11dGFibGUgewpAQCAtMjE2LDYgKzIxNSw3IEBAIHZvaWQgV29ya2VyT3JX
b3JrbGV0VGhyZWFkOjpzdG9wKEZ1bmN0aW9uPHZvaWQoKT4mJiBzdG9wcGVkQ2FsbGJhY2spCiAg
ICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIExvY2tlciBsb2NrZXIgeyBB
ZG9wdExvY2tUYWcgeyB9LCBtX3RocmVhZENyZWF0aW9uQW5kR2xvYmFsU2NvcGVMb2NrIH07CiAK
ICAgICAvLyBJZiB0aGUgdGhyZWFkIGlzIHN1c3BlbmRlZCwgcmVzdW1lIGl0IG5vdyBzbyB0aGF0
IHdlIGNhbiBkaXNwYXRjaCB0aGUgY2xlYW51cCB0YXNrcyBiZWxvdy4KICAgICBpZiAobV9pc1N1
c3BlbmRlZCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429448</attachid>
            <date>2021-05-22 19:18:59 -0700</date>
            <delta_ts>2021-05-22 19:20:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226145-20210522191858.patch</filename>
            <type>text/plain</type>
            <size>35996</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZjY3MTE3MDhhODUyMGY5MDcyMjIzNDExNThhODk2NDgzZjU5NmE2Li42NGM3N2Y0NWUxNmI2ZWYw
ZmU2NjQ5ZmNjM2QzNGNjZjQ2OGE0OTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3
aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlz
IGluY29tcGF0aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuCisgICAgICAg
IEluc3RlYWQsIHVzZSB0aGUgZm9sbG93aW5nIHBhdHRlcm4gd2hpY2ggaXMgc3VwcG9ydGVkOgor
ICAgICAgICBgYGAKKyAgICAgICAgaWYgKGxvY2sudHJ5TG9jaygpKSB7CisgICAgICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBsb2NrIH07CisgICAgICAgICAgICAvLyAuLi4KKyAg
ICAgICAgfQorICAgICAgICBgYGAKKworICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAg
IChKU0M6OkhlYXA6OnJlc3VtZVRoZVBlcmlwaGVyeSk6CisgICAgICAgICogcnVudGltZS9WTVRy
YXBzLmNwcDoKKyAgICAgICAgKEpTQzo6Vk1UcmFwczo6dHJ5SW5zdGFsbFRyYXBCcmVha3BvaW50
cyk6CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXBsYWNlIExvY2tIb2xkZXIgd2l0aCBMb2NrZXIgaW4gbG9jYWwgdmFyaWFibGVzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmlu
ZGV4IGI3MGEzZjNlODEzNzI3MjcwNWEwNGJlZDIzOTZjZTBmYzllYmY3NGIuLmM5MWE0MmZiYjdj
NTMwNTg0NGI1OTg5MzYyODdlYTc3NzhmYTBkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEt
MDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFdU
Rjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUgd2l0aCBDbGFuZyBUaHJlYWQg
U2FmZXR5IEFuYWx5c2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjYxNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUgd2l0
aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLgorICAgICAgICBJbnN0ZWFkLCB1c2UgdGhl
IGZvbGxvd2luZyBwYXR0ZXJuIHdoaWNoIGlzIHN1cHBvcnRlZDoKKyAgICAgICAgYGBgCisgICAg
ICAgIGlmIChsb2NrLnRyeUxvY2soKSkgeworICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFk
b3B0TG9jaywgbG9jayB9OworICAgICAgICAgICAgLy8gLi4uCisgICAgICAgIH0KKyAgICAgICAg
YGBgCisKKyAgICAgICAgKiB3dGYvQ2hlY2tlZExvY2suaDoKKyAgICAgICAgKiB3dGYvTG9jay5o
OgorICAgICAgICAqIHd0Zi9Mb2NrZXIuaDoKKyAgICAgICAgKFdURjo6TG9ja2VyOjpMb2NrZXIp
OgorCiAyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRvcHQgQ2hlY2tlZExvY2sgaW4gbW9yZSBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMDU3ZDI3
MTI3MDRjODE5MGRhNDQ0MjIwMTM5MTI2ZTVlMjFlYTljLi4wNWRkNzYzNjU1Yjg3NjUxMjZjYTY5
Y2YxMTY0MDU5ZTY2NDY5OTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMjEtMDUt
MjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFdURjo6
dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUgd2l0aCBDbGFuZyBUaHJlYWQgU2Fm
ZXR5IEFuYWx5c2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjYxNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUgd2l0aCBD
bGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLgorICAgICAgICBJbnN0ZWFkLCB1c2UgdGhlIGZv
bGxvd2luZyBwYXR0ZXJuIHdoaWNoIGlzIHN1cHBvcnRlZDoKKyAgICAgICAgYGBgCisgICAgICAg
IGlmIChsb2NrLnRyeUxvY2soKSkgeworICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0
TG9jaywgbG9jayB9OworICAgICAgICAgICAgLy8gLi4uCisgICAgICAgIH0KKyAgICAgICAgYGBg
CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnByb2Nlc3MpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1dvcmtsZXROb2RlOjpwcm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udm9sdmVyTm9k
ZTo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRp
b1NvdXJjZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50QXVkaW9Tb3Vy
Y2VOb2RlOjpwcm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQXVkaW9T
b3VyY2VOb2RlOjpwcm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0
b3JOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9zY2lsbGF0b3JOb2RlOjpwcm9jZXNzKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGFubmVyTm9kZTo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9T
Y3JpcHRQcm9jZXNzb3JOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFByb2Nlc3Nv
ck5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlclBy
b2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXYXZlU2hhcGVyUHJvY2Vzc29yOjpwcm9j
ZXNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmV2ZXJiQ29udm9sdmVyOjpwcm9jZXNzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmF0Y2hC
dWZmZXI6OnB1cmdlVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dCbHVyOjpk
cmF3UmVjdFNoYWRvd1dpdGhUaWxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1cjo6
ZHJhd0luc2V0U2hhZG93V2l0aFRpbGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnF1ZXVlVmlkZW9TYW1wbGUpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW06Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnByb3ZpZGVJbnB1
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0VGhyZWFkOjpzdG9wKToKKwogMjAyMS0wNS0yMiAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0IENoZWNrZWRM
b2NrIGluIG1vcmUgcGxhY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCmluZGV4IGMx
Y2Y4NjQyNzcwNTFiYTAyMTA1OGNmNTE0YWQzNzJmYmE3NDgyN2IuLjhiYzg2ZDJjYTc1MTViNGI4
ZTJmNzY0ZGU5MGUyYTZjMjQ3MjY2OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3Bw
CkBAIC0xNzA3LDcgKzE3MDcsOCBAQCBORVZFUl9JTkxJTkUgdm9pZCBIZWFwOjpyZXN1bWVUaGVQ
ZXJpcGhlcnkoKQogICAgICAgICAgICAgYm9vbCByZW1vdmUgPSBmYWxzZTsKICAgICAgICAgICAg
IGlmICh2aXNpdG9yLmhhc0Fja25vd2xlZGdlZFRoYXRUaGVNdXRhdG9ySXNSZXN1bWVkKCkpCiAg
ICAgICAgICAgICAgICAgcmVtb3ZlID0gdHJ1ZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKGF1dG8g
bG9ja2VyID0gdHJ5SG9sZExvY2sodmlzaXRvci5yaWdodFRvUnVuKCkpKSB7CisgICAgICAgICAg
ICBlbHNlIGlmICh2aXNpdG9yLnJpZ2h0VG9SdW4oKS50cnlMb2NrKCkpIHsKKyAgICAgICAgICAg
ICAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCB2aXNpdG9yLnJpZ2h0VG9SdW4oKSB9Owog
ICAgICAgICAgICAgICAgIHZpc2l0b3IudXBkYXRlTXV0YXRvcklzU3RvcHBlZChsb2NrZXIpOwog
ICAgICAgICAgICAgICAgIHJlbW92ZSA9IHRydWU7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwCmluZGV4IDkyYmZlYWE3NjhhYTY4NjJiZGY1
ZDk4YzRhZWRkNzE0NjJlNGFkNjQuLjliNDQwNmIxMTU2M2RhZjU3MzllYjMzOGFmODI1OWE1ZTE4
YTQxNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwCkBAIC0x
MzcsMTAgKzEzNywxMCBAQCB2b2lkIFZNVHJhcHM6OnRyeUluc3RhbGxUcmFwQnJlYWtwb2ludHMo
U2lnbmFsQ29udGV4dCYgY29udGV4dCwgU3RhY2tCb3VuZHMgc3RhYwogICAgIH0KIAogICAgIGlm
IChKSVRDb2RlOjppc09wdGltaXppbmdKSVQoZm91bmRDb2RlQmxvY2stPmppdFR5cGUoKSkpIHsK
LSAgICAgICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jaygqbV9sb2NrKTsKLSAgICAgICAgaWYg
KCFsb2NrZXIpCisgICAgICAgIGlmICghbV9sb2NrLT50cnlMb2NrKCkpCiAgICAgICAgICAgICBy
ZXR1cm47IC8vIExldCB0aGUgU2lnbmFsU2VuZGVyIHRyeSBhZ2FpbiBsYXRlci4KIAorICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCAqbV9sb2NrIH07CiAgICAgICAgIGlmICghbmVl
ZEhhbmRsaW5nKFZNVHJhcHM6OkFzeW5jRXZlbnRzKSkgewogICAgICAgICAgICAgLy8gVG9vIGxh
dGUuIFNvbWVvbmUgZWxzZSBhbHJlYWR5IGhhbmRsZWQgdGhlIHRyYXAuCiAgICAgICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oIGIvU291cmNl
L1dURi93dGYvQ2hlY2tlZExvY2suaAppbmRleCA0NGI4OTk5NjkxMjM0NTIwMDE5OGZkODY0YTk5
ODk2Njc3NjM5OTQyLi4zYWI1Yzc3MGRlMTYxYjRmMDU5ZDZjNzRiYjcxZWM5OGVmYTVmNThhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0NoZWNrZWRMb2NrLmgKQEAgLTI1LDcgKzI1LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
bmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Mb2Nr
ZXIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZXR5QW5hbHlzaXMuaD4KQEAgLTQwLDEyICsz
OSwxMiBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vICAgY2xhc3MgTXlWYWx1ZSA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxNeVZhbHVlPgogLy8gICB7CiAvLyAgIHB1YmxpYzoKLS8vICAgICAg
IHZvaWQgc2V0VmFsdWUoaW50IHZhbHVlKSB7IExvY2hrZXIgaG9sZExvY2sgeyBtX2xvY2sgfTsg
bV92YWx1ZSA9IHZhbHVlOyAgfQorLy8gICAgICAgdm9pZCBzZXRWYWx1ZShpbnQgdmFsdWUpIHsg
TG9ja2VyIGhvbGRMb2NrIHsgbV9sb2NrIH07IG1fdmFsdWUgPSB2YWx1ZTsgIH0KIC8vICAgICAg
IHZvaWQgbWF5YmVTZXRPdGhlclZhbHVlKGludCB2YWx1ZSkKIC8vICAgICAgIHsKIC8vICAgICAg
ICAgICBpZiAoIW1fbG9jay50cnlMb2NrKCkpCiAvLyAgICAgICAgICAgICAgcmV0dXJuOwotLy8g
ICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX290aGVyTG9jayB9
OworLy8gICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fb3RoZXJMb2NrIH07
CiAvLyAgICAgICAgICAgbV9vdGhlclZhbHVlID0gdmFsdWU7CiAvLyAgICAgICB9CiAvLyAgIHBy
aXZhdGU6CkBAIC03NSw4ICs3NCw2IEBAIHB1YmxpYzoKIC8vIGRlY2xhcmF0aW9uLgogaW5saW5l
IHZvaWQgYXNzZXJ0SXNIZWxkKGNvbnN0IENoZWNrZWRMb2NrJiBsb2NrKSBXVEZfQVNTRVJUU19B
Q1FVSVJFRF9MT0NLKGxvY2spIHsgQVNTRVJUX1VOVVNFRChsb2NrLCBsb2NrLmlzSGVsZCgpKTsg
fQogCi11c2luZyBBZG9wdExvY2tUYWcgPSBzdGQ6OmFkb3B0X2xvY2tfdDsKLQogLy8gTG9ja2Vy
IHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3aXRoIENoZWNrZWRMb2NrLgogLy8gTm9uLW1vdmFibGUg
c2ltcGxlIHNjb3BlZCBsb2NrIGhvbGRlci4KIC8vIEV4YW1wbGU6IExvY2tlciBsb2NrZXIgeyBt
X2xvY2sgfTsKQEAgLTEwOSw0ICsxMDYsMyBAQCBMb2NrZXIoQWRvcHRMb2NrVGFnLCBDaGVja2Vk
TG9jayYpIC0+IExvY2tlcjxDaGVja2VkTG9jaz47CiAKIHVzaW5nIFdURjo6YXNzZXJ0SXNIZWxk
OwogdXNpbmcgV1RGOjpDaGVja2VkTG9jazsKLXVzaW5nIFdURjo6QWRvcHRMb2NrVGFnOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9jay5oIGIvU291cmNlL1dURi93dGYvTG9jay5oCmlu
ZGV4IDYwZmRhYWJkOTBkYWU3ZjJkNGQ0OGYzMWI4MDM0ZGUzYmY5NWY2N2QuLjA2YTcyNGM0Zjhh
MGEyZTk2NzRkMmRhMjYyMzAzY2NmYTlmNjZhNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L0xvY2suaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgKQEAgLTEzMyw3ICsxMzMsNyBAQCBw
cml2YXRlOgogCiB1c2luZyBMb2NrSG9sZGVyID0gTG9ja2VyPExvY2s+OwogCi19IC8vIG5hbWVz
cGFjZSBXVEYKK30gLy8gbmFtZXNwYWNlIFdURlsKIAogdXNpbmcgV1RGOjpMb2NrOwogdXNpbmcg
V1RGOjpMb2NrSG9sZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9ja2VyLmggYi9T
b3VyY2UvV1RGL3d0Zi9Mb2NrZXIuaAppbmRleCA4YjBlMTkyYjVlYmE0Yjg4NzYzYTg0NGQxZWMw
Y2JhMTRjMGM5ODhhLi5hYzRkYjFlYTE5ZmM3NzU1NzVmNTcyOWQ1NTk3ZjM3OTY3ZDJjYmIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9M
b2NrZXIuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPG11
dGV4PgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0F0b21pY3Mu
aD4KICNpbmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4KQEAgLTU0LDExICs1NSwxNSBAQCBwcm90ZWN0
ZWQ6CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIERyb3BMb2NrRm9yU2NvcGU7CiAKK3Vz
aW5nIEFkb3B0TG9ja1RhZyA9IHN0ZDo6YWRvcHRfbG9ja190OworY29uc3RleHByIEFkb3B0TG9j
a1RhZyBBZG9wdExvY2sgPSBBZG9wdExvY2tUYWcoKTsKKwogdGVtcGxhdGU8dHlwZW5hbWUgVD4K
IGNsYXNzIExvY2tlciA6IHB1YmxpYyBBYnN0cmFjdExvY2tlciB7CiBwdWJsaWM6CiAgICAgZXhw
bGljaXQgTG9ja2VyKFQmIGxvY2thYmxlKSA6IG1fbG9ja2FibGUoJmxvY2thYmxlKSB7IGxvY2so
KTsgfQogICAgIGV4cGxpY2l0IExvY2tlcihUKiBsb2NrYWJsZSkgOiBtX2xvY2thYmxlKGxvY2th
YmxlKSB7IGxvY2soKTsgfQorICAgIGV4cGxpY2l0IExvY2tlcihBZG9wdExvY2tUYWcsIFQmIGxv
Y2thYmxlKSA6IG1fbG9ja2FibGUoJmxvY2thYmxlKSB7IH0KIAogICAgIC8vIFlvdSBzaG91bGQg
YmUgd2FyeSBvZiB1c2luZyB0aGlzIGNvbnN0cnVjdG9yLiBJdCdzIG9ubHkgYXBwbGljYWJsZQog
ICAgIC8vIGluIHBsYWNlcyB3aGVyZSB0aGVyZSBpcyBhIGxvY2tpbmcgcHJvdG9jb2wgZm9yIGEg
cGFydGljdWxhciBvYmplY3QKQEAgLTEzNiwxNCArMTQxLDYgQEAgcHJpdmF0ZToKICAgICBUKiBt
X2xvY2thYmxlOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+Ci1Mb2NrZXI8TG9j
a1R5cGU+IHRyeUhvbGRMb2NrKExvY2tUeXBlJikgV0FSTl9VTlVTRURfUkVUVVJOOwotdGVtcGxh
dGU8dHlwZW5hbWUgTG9ja1R5cGU+Ci1Mb2NrZXI8TG9ja1R5cGU+IHRyeUhvbGRMb2NrKExvY2tU
eXBlJiBsb2NrKQotewotICAgIHJldHVybiBMb2NrZXI8TG9ja1R5cGU+Ojp0cnlMb2NrKGxvY2sp
OwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4KIGNsYXNzIERyb3BMb2NrRm9yU2Nv
cGUgOiBwcml2YXRlIEFic3RyYWN0TG9ja2VyIHsKICAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NB
VElPTihEcm9wTG9ja0ZvclNjb3BlKTsKQEAgLTE2Niw2ICsxNjMsNyBAQCBwcml2YXRlOgogfQog
CiB1c2luZyBXVEY6OkFic3RyYWN0TG9ja2VyOwordXNpbmcgV1RGOjpBZG9wdExvY2s7CiB1c2lu
ZyBXVEY6OkxvY2tlcjsKIHVzaW5nIFdURjo6Tm9Mb2NraW5nTmVjZXNzYXJ5VGFnOwogdXNpbmcg
V1RGOjpOb0xvY2tpbmdOZWNlc3Nhcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dn
ZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCmluZGV4IGU5OWQ0OWJmMmU5ZDlhZDJhNmIz
YjYxODBkY2JkOThjZDc4NWZhNTQuLjRmNTQ0N2RhMzE3ZWViMWIxOGQ2YzQ5OTVjM2VkMzlhODYz
MzZiZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL0xvZ2dlci5oCkBAIC0zMjUsNyArMzI1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgaWYg
KCFvYnNlcnZlckxvY2soKS50cnlMb2NrKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG9ic2VydmVyTG9jaygpIH07Cisg
ICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG9ic2VydmVyTG9jaygpIH07CiAgICAg
ICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogb2JzZXJ2ZXJzKCkpCiAgICAgICAgICAgICBv
YnNlcnZlci5kaWRMb2dNZXNzYWdlKGNoYW5uZWwsIGxldmVsLCB7IENvbnNvbGVMb2dWYWx1ZTxB
cmd1bWVudD46OnRvVmFsdWUoYXJndW1lbnRzKS4uLiB9KTsKICAgICB9CkBAIC0zNTYsNyArMzU2
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKCFvYnNlcnZlckxvY2soKS50cnlMb2NrKCkpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1Rh
ZyB7IH0sIG9ic2VydmVyTG9jaygpIH07CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExv
Y2ssIG9ic2VydmVyTG9jaygpIH07CiAgICAgICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDog
b2JzZXJ2ZXJzKCkpCiAgICAgICAgICAgICBvYnNlcnZlci5kaWRMb2dNZXNzYWdlKGNoYW5uZWws
IGxldmVsLCB7IENvbnNvbGVMb2dWYWx1ZTxBcmd1bWVudD46OnRvVmFsdWUoYXJndW1lbnRzKS4u
LiB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCmluZGV4
IDE4NDQwMjFlNmYxYWM0NGZlNjMyNWM2MjhiYWU2ZjhlMTdmYmE2NzAuLjljM2U2ZjkwMzZkMzZh
MTRhNmQwNDA3ZDI4MDgyOWNkNTljNWUyODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGwuY3BwCkBAIC04OCw3ICs4OCw3IEBAIGJvb2wgU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSW1wbDo6dXBkYXRlRGF0YVNvdXJjZShjb25zdCBDQUF1ZGlvU3RyZWFtRGVzCiAg
ICAgaWYgKCFtX2RhdGFTb3VyY2VMb2NrLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fZGF0YVNvdXJjZUxv
Y2sgfTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBtX2RhdGFTb3VyY2VMb2NrIH07
CiAKICAgICBhdXRvIGRhdGFTb3VyY2UgPSBBdWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShh
dWRpb0Rlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDEsIG1fc291cmNlLmdldCgpKTsKICAgICBp
ZiAoZGF0YVNvdXJjZS0+c2V0SW5wdXRGb3JtYXQoYXVkaW9EZXNjcmlwdGlvbikpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlLmNwcAppbmRleCA2MzNjNTA2YTAwNzY3ZmZiODg1OGNiMDYwZjUxZDc2OTk2YmExNzJh
Li5kYzZmMDJkN2FhNDhiNTA1NjA4OGQ4ZWMwNDk4YTIwMjVjYmVkMWIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5v
ZGUuY3BwCkBAIC0xMDIsMTMgKzEwMiwxMyBAQCB2b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6
cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdl
IHVzZSB0cnlIb2xkTG9jaygpIGluc3RlYWQuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9j
ayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgewotICAgICAgICAvLyBUb28gYmFk
IC0gdHJ5SG9sZExvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBjaGFu
Z2luZyBidWZmZXJzIGFuZCB3ZXJlIGFscmVhZHkgb3V0cHV0dGluZyBzaWxlbmNlIGFueXdheS4K
KyAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2Ug
dXNlIHRyeUxvY2soKSBpbnN0ZWFkLgorICAgIGlmICghbV9wcm9jZXNzTG9jay50cnlMb2NrKCkp
IHsKKyAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUxvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4g
dGhlIG1pZGRsZSBvZiBjaGFuZ2luZyBidWZmZXJzIGFuZCB3ZXJlIGFscmVhZHkgb3V0cHV0dGlu
ZyBzaWxlbmNlIGFueXdheS4KICAgICAgICAgb3V0cHV0QnVzLnplcm8oKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KKyAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBtX3Byb2Nlc3NMb2Nr
IH07CiAKICAgICBpZiAoIWJ1ZmZlcigpKSB7CiAgICAgICAgIG91dHB1dEJ1cy56ZXJvKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1l
bGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1l
bGluZS5jcHAKaW5kZXggMDQwNmVhYjc3MTBlOGVkOTdkZTg5ODNhMjAwZTUxNTZjMjI5ZWFhZi4u
N2EwNGE1YWZiNDkyYzMyNDNkYTA4MWVhZDc3MDU2MWVlZmJiYzU3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNwcApA
QCAtMzI5LDcgKzMyOSw3IEBAIE9wdGlvbmFsPGZsb2F0PiBBdWRpb1BhcmFtVGltZWxpbmU6OnZh
bHVlRm9yQ29udGV4dFRpbWUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4CiAgICAgewogICAgICAg
ICBpZiAoIW1fZXZlbnRzTG9jay50cnlMb2NrKCkpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwotICAgICAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9ldmVu
dHNMb2NrIH07CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fZXZlbnRzTG9j
ayB9OwogICAgICAgICBpZiAoIW1fZXZlbnRzLnNpemUoKSB8fCBTZWNvbmRzIHsgY29udGV4dC5j
dXJyZW50VGltZSgpIH0gPCBtX2V2ZW50c1swXS50aW1lKCkpCiAgICAgICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwogICAgIH0KQEAgLTM1MSw3ICszNTEsNyBAQCBmbG9hdCBBdWRpb1BhcmFt
VGltZWxpbmU6OnZhbHVlc0ZvckZyYW1lUmFuZ2Uoc2l6ZV90IHN0YXJ0RnJhbWUsIHNpemVfdCBl
bmRGcmFtZQogICAgICAgICBzdGQ6OmZpbGxfbih2YWx1ZXMsIG51bWJlck9mVmFsdWVzLCBkZWZh
dWx0VmFsdWUpOwogICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwogICAgIH0KLSAgICBMb2Nr
ZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9ldmVudHNMb2NrIH07CisgICAgTG9ja2Vy
IGxvY2tlciB7IEFkb3B0TG9jaywgbV9ldmVudHNMb2NrIH07CiAKICAgICBmbG9hdCB2YWx1ZSA9
IHZhbHVlc0ZvckZyYW1lUmFuZ2VJbXBsKHN0YXJ0RnJhbWUsIGVuZEZyYW1lLCBkZWZhdWx0VmFs
dWUsIHZhbHVlcywgbnVtYmVyT2ZWYWx1ZXMsIHNhbXBsZVJhdGUsIGNvbnRyb2xSYXRlKTsKIApA
QCAtOTg4LDcgKzk4OCw3IEBAIGJvb2wgQXVkaW9QYXJhbVRpbWVsaW5lOjpoYXNWYWx1ZXMoc2l6
ZV90IHN0YXJ0RnJhbWUsIGRvdWJsZSBzYW1wbGVSYXRlKSBjb25zdAogewogICAgIGlmICghbV9l
dmVudHNMb2NrLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgTG9ja2VyIGxv
Y2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fZXZlbnRzTG9jayB9OworICAgIExvY2tlciBsb2Nr
ZXIgeyBBZG9wdExvY2ssIG1fZXZlbnRzTG9jayB9OwogCiAgICAgLy8gUmV0dXJuIGZhbHNlIGlm
IHRoZXJlIGFyZSBubyBldmVudHMgaW4gdGhlIHRpbWUgcmFuZ2UuCiAgICAgYXV0byBlbmRGcmFt
ZSA9IHN0YXJ0RnJhbWUgKyBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNw
cAppbmRleCAzNDk2MjZmYTRkNDNlZDI1M2ZjZjkwNzMyYjY0MmFmMmJjNWFhNDYwLi5hZmIxYTVh
YjI1M2MxNjUwYmE4YmEyMWZkZGZhM2U3ZjMzMDA4NzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKQEAgLTE5MSwxMSAr
MTkxLDE5IEBAIHZvaWQgQXVkaW9Xb3JrbGV0Tm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Q
cm9jZXNzKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogCi0gICAgYXV0byBsb2Nr
ZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlciB8fCAhbV9w
cm9jZXNzb3IgfHwgJlRocmVhZDo6Y3VycmVudCgpICE9IG1fd29ya2xldFRocmVhZCkgewotICAg
ICAgICAvLyBXZSdyZSBub3QgcmVhZHkgeWV0IG9yIHdlIGFyZSBnZXR0aW5nIGRlc3Ryb3llZC4g
SW4gdGhpcyBjYXNlLCB3ZSBvdXRwdXQgc2lsZW5jZS4KKyAgICBhdXRvIHplcm9PdXRwdXQgPSBb
Jl0gewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZPdXRwdXRzKCk7
ICsraSkKICAgICAgICAgICAgIG91dHB1dChpKS0+YnVzKCktPnplcm8oKTsKKyAgICB9OworCisg
ICAgaWYgKCFtX3Byb2Nlc3NMb2NrLnRyeUxvY2soKSkgeworICAgICAgICB6ZXJvT3V0cHV0KCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywg
bV9wcm9jZXNzTG9jayB9OworICAgIGlmICghbV9wcm9jZXNzb3IgfHwgJlRocmVhZDo6Y3VycmVu
dCgpICE9IG1fd29ya2xldFRocmVhZCkgeworICAgICAgICAvLyBXZSdyZSBub3QgcmVhZHkgeWV0
IG9yIHdlIGFyZSBnZXR0aW5nIGRlc3Ryb3llZC4gSW4gdGhpcyBjYXNlLCB3ZSBvdXRwdXQgc2ls
ZW5jZS4KKyAgICAgICAgemVyb091dHB1dCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcApp
bmRleCA1OTcxZmQwMDIyNWJjYWNjYzBlNTM3M2U2NzAyZGI0Y2QyOWU4NTAwLi5jMmU1NjBlZGE2
NzUzYzI5ZTliODFlMWM0NTQ4MWIxNGIwN2ZkYTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAKQEAgLTkyLDEyICs5MiwxMiBAQCB2
b2lkIENvbnZvbHZlck5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICBB
U1NFUlQob3V0cHV0QnVzKTsKIAogICAgIC8vIFN5bmNocm9uaXplIHdpdGggcG9zc2libGUgZHlu
YW1pYyBjaGFuZ2VzIHRvIHRoZSBpbXB1bHNlIHJlc3BvbnNlLgotICAgIGF1dG8gbG9ja2VyID0g
dHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKLSAgICAgICAg
Ly8gVG9vIGJhZCAtIHRyeUhvbGRMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRk
bGUgb2Ygc2V0dGluZyBhIG5ldyBpbXB1bHNlIHJlc3BvbnNlLgorICAgIGlmICghbV9wcm9jZXNz
TG9jay50cnlMb2NrKCkpIHsKKyAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUxvY2soKSBmYWlsZWQu
IFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBzZXR0aW5nIGEgbmV3IGltcHVsc2UgcmVzcG9u
c2UuCiAgICAgICAgIG91dHB1dEJ1cy0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQor
ICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKIAogICAgIGlm
ICghaXNJbml0aWFsaXplZCgpIHx8ICFtX3JldmVyYi5nZXQoKSkKICAgICAgICAgb3V0cHV0QnVz
LT56ZXJvKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAKaW5kZXggYTFhNDZhNjdlZWEy
M2M1NTkyMTNhNzMwODg4MmNlNTA2NzRiYjI2NC4uMGMxZTQ0NjU0MjY1MThkOThiMzQwMWZiNWJl
ZTc1ZTllMGNlMzliNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcApAQCAtMTU1LDE1
ICsxNTUsMTYgQEAgdm9pZCBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3Moc2l6
ZV90IG51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gVXNl
IHRyeUhvbGRMb2NrKCkgdG8gYXZvaWQgY29udGVudGlvbiBpbiB0aGUgcmVhbC10aW1lIGF1ZGlv
IHRocmVhZC4KKyAgICAvLyBVc2UgdHJ5TG9jaygpIHRvIGF2b2lkIGNvbnRlbnRpb24gaW4gdGhl
IHJlYWwtdGltZSBhdWRpbyB0aHJlYWQuCiAgICAgLy8gSWYgd2UgZmFpbCB0byBhY3F1aXJlIHRo
ZSBsb2NrIHRoZW4gdGhlIEhUTUxNZWRpYUVsZW1lbnQgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9m
CiAgICAgLy8gcmVjb25maWd1cmluZyBpdHMgcGxheWJhY2sgZW5naW5lLCBzbyB3ZSBvdXRwdXQg
c2lsZW5jZSBpbiB0aGlzIGNhc2UuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3By
b2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgeworICAgIGlmICghbV9wcm9jZXNzTG9jay50
cnlMb2NrKCkpIHsKICAgICAgICAgLy8gV2UgZmFpbGVkIHRvIGFjcXVpcmUgdGhlIGxvY2suCiAg
ICAgICAgIG91dHB1dEJ1cy0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQorCisgICAg
TG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9wcm9jZXNzTG9jayB9OwogICAgIGlmIChtX3Nv
dXJjZU51bWJlck9mQ2hhbm5lbHMgIT0gb3V0cHV0QnVzLT5udW1iZXJPZkNoYW5uZWxzKCkpIHsK
ICAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlv
U291cmNlTm9kZS5jcHAKaW5kZXggYzU2NjJkNjA5YWY2MGE2YWViYTZkYTcyMWEzNWQxZDU4OGFk
NTE3NS4uNWRmMTZiZGFiNWNiMjgzMjk3NjkwMzAzMjk2NTcxMmUyYTM4MGI4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNl
Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVh
bUF1ZGlvU291cmNlTm9kZS5jcHAKQEAgLTEzOSwxNSArMTM5LDE1IEBAIHZvaWQgTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3Moc2l6ZV90IG51bWJlck9mRnJhbWVzKQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gVXNlIHRyeUhvbGRMb2NrKCkgdG8gYXZvaWQgY29u
dGVudGlvbiBpbiB0aGUgcmVhbC10aW1lIGF1ZGlvIHRocmVhZC4KKyAgICAvLyBVc2UgdHJ5TG9j
aygpIHRvIGF2b2lkIGNvbnRlbnRpb24gaW4gdGhlIHJlYWwtdGltZSBhdWRpbyB0aHJlYWQuCiAg
ICAgLy8gSWYgd2UgZmFpbCB0byBhY3F1aXJlIHRoZSBsb2NrIHRoZW4gdGhlIE1lZGlhU3RyZWFt
IG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZgogICAgIC8vIGEgZm9ybWF0IGNoYW5nZSwgc28gd2Ug
b3V0cHV0IHNpbGVuY2UgaW4gdGhpcyBjYXNlLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExv
Y2sobV9wcm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKKyAgICBpZiAoIW1fcHJvY2Vz
c0xvY2sudHJ5TG9jaygpKSB7CiAgICAgICAgIC8vIFdlIGZhaWxlZCB0byBhY3F1aXJlIHRoZSBs
b2NrLgogICAgICAgICBvdXRwdXRCdXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
KyAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CiAgICAgaWYg
KG1fc291cmNlTnVtYmVyT2ZDaGFubmVscyAhPSBvdXRwdXRCdXMtPm51bWJlck9mQ2hhbm5lbHMo
KSkgewogICAgICAgICBvdXRwdXRCdXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcAppbmRl
eCBjNmY2OWQyMzA1YzIxNTk5NjcxMzlhODQ3OWZhZTVkMzE4MjIyNTg3Li45YTdhM2YzOTkyM2Qw
MmEwMGVmMTU0MTQ3MzMwOWI2OWZmZmEzMjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcApAQCAtMzQ5LDEzICszNDksMTMgQEAg
dm9pZCBPc2NpbGxhdG9yTm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAg
IGlmIChmcmFtZXNUb1Byb2Nlc3MgPiBtX3BoYXNlSW5jcmVtZW50cy5zaXplKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBs
b2NrLCBzbyB3ZSB1c2UgdHJ5SG9sZExvY2soKSBpbnN0ZWFkLgotICAgIGF1dG8gbG9ja2VyID0g
dHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKLSAgICAgICAg
Ly8gVG9vIGJhZCAtIHRyeUhvbGRMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRk
bGUgb2YgY2hhbmdpbmcgd2F2ZS10YWJsZXMuCisgICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4n
dCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlMb2NrKCkgaW5zdGVhZC4KKyAgICBp
ZiAoIW1fcHJvY2Vzc0xvY2sudHJ5TG9jaygpKSB7CisgICAgICAgIC8vIFRvbyBiYWQgLSB0cnlM
b2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgd2F2ZS10
YWJsZXMuCiAgICAgICAgIG91dHB1dEJ1cy56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9wcm9jZXNzTG9jayB9OwogCiAgICAg
Ly8gV2UgbXVzdCBhY2Nlc3MgbV9wZXJpb2RpY1dhdmUgb25seSBpbnNpZGUgdGhlIGxvY2suCiAg
ICAgaWYgKCFtX3BlcmlvZGljV2F2ZS5nZXQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAKaW5kZXggN2NjZjI0ZDY3MGI3ZjZlMWVmMWEzNzc5
ZjliNzA0ODY4MmZmY2VkNy4uM2NiOTdiYWY5N2ZhMzRjNmM5MDZiMTY4MTBhZGZhMWJjMmVhMjE4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3Bw
CkBAIC0xMjksMTMgKzEyOSwxMyBAQCB2b2lkIFBhbm5lck5vZGU6OnByb2Nlc3Moc2l6ZV90IGZy
YW1lc1RvUHJvY2VzcykKICAgICAgICAgfQogICAgIH0KIAotICAgIC8vIFRoZSBhdWRpbyB0aHJl
YWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBsb2NrLCBzbyB3ZSB1c2UgdHJ5SG9sZExvY2soKSBpbnN0
ZWFkLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7Ci0gICAg
aWYgKCFsb2NrZXIpIHsKLSAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUhvbGRMb2NrKCkgZmFpbGVk
LiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgdGhlIHBhbm5lci4KKyAgICAv
LyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRy
eUxvY2soKSBpbnN0ZWFkLgorICAgIGlmICghbV9wcm9jZXNzTG9jay50cnlMb2NrKCkpIHsKKyAg
ICAgICAgLy8gVG9vIGJhZCAtIHRyeUxvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1p
ZGRsZSBvZiBjaGFuZ2luZyB0aGUgcGFubmVyLgogICAgICAgICBkZXN0aW5hdGlvbi0+emVybygp
OwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ss
IG1fcHJvY2Vzc0xvY2sgfTsKIAogICAgIGlmICgoaGFzU2FtcGxlQWNjdXJhdGVWYWx1ZXMoKSB8
fCBsaXN0ZW5lcigpLmhhc1NhbXBsZUFjY3VyYXRlVmFsdWVzKCkpICYmIChzaG91bGRVc2VBUmF0
ZSgpIHx8IGxpc3RlbmVyKCkuc2hvdWxkVXNlQVJhdGUoKSkpIHsKICAgICAgICAgcHJvY2Vzc1Nh
bXBsZUFjY3VyYXRlVmFsdWVzKGRlc3RpbmF0aW9uLCBzb3VyY2UsIGZyYW1lc1RvUHJvY2Vzcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nl
c3Nvck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9j
ZXNzb3JOb2RlLmNwcAppbmRleCAyMmU5N2U4YWEyNWVhYzJmNzA4ZTIzZjc2YTg5YjI4ZDkzMDMw
MTMwLi5lZDI0MWJjZDE3Mjg3MjBlMGM0OTM2NGE1MGY0NDk2YmFiNzQ5ZjUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9k
ZS5jcHAKQEAgLTE1OCwxMyArMTU4LDEzIEBAIHZvaWQgU2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJv
Y2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgIHVuc2lnbmVkIGJ1ZmZlckluZGV4ID0g
dGhpcy0+YnVmZmVySW5kZXgoKTsKICAgICBBU1NFUlQoYnVmZmVySW5kZXggPCBidWZmZXJDb3Vu
dCk7CiAKLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fYnVmZmVyTG9ja3NbYnVmZmVy
SW5kZXhdKTsKLSAgICBpZiAoIWxvY2tlcikgeworICAgIGlmICghbV9idWZmZXJMb2Nrc1tidWZm
ZXJJbmRleF0udHJ5TG9jaygpKSB7CiAgICAgICAgIC8vIFdlJ3JlIGxhdGUgaW4gaGFuZGxpbmcg
dGhlIHByZXZpb3VzIHJlcXVlc3QuIFRoZSBtYWluIHRocmVhZCBtdXN0IGJlCiAgICAgICAgIC8v
IHZlcnkgYnVzeS4gVGhlIGJlc3Qgd2UgY2FuIGRvIGlzIGNsZWFyIG91dCB0aGUgYnVmZmVyIG91
cnNlbGYgaGVyZS4KICAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9idWZmZXJMb2Nrc1tidWZm
ZXJJbmRleF0gfTsKICAgICAKICAgICBBdWRpb0J1ZmZlciogaW5wdXRCdWZmZXIgPSBtX2lucHV0
QnVmZmVyc1tidWZmZXJJbmRleF0uZ2V0KCk7CiAgICAgQXVkaW9CdWZmZXIqIG91dHB1dEJ1ZmZl
ciA9IG1fb3V0cHV0QnVmZmVyc1tidWZmZXJJbmRleF0uZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcAppbmRl
eCAxMjA4ODUwODA4OTAzNjFkNGM0MGFhNmFjYWI5NTRiYTcwMGI1NzI5Li43MjdjOTAwNDhhZTZj
OGJjODc5MTcxMjIzNDg3ZDllODFhZjQ4YTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5jcHAKQEAgLTgzLDEzICs4
MywxMyBAQCB2b2lkIFdhdmVTaGFwZXJQcm9jZXNzb3I6OnByb2Nlc3MoY29uc3QgQXVkaW9CdXMq
IHNvdXJjZSwgQXVkaW9CdXMqIGRlc3RpbmF0aW9uLAogICAgIGlmICghY2hhbm5lbENvdW50TWF0
Y2hlcykKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBi
bG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlIb2xkTG9jaygpIGluc3RlYWQuCi0gICAg
YXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tl
cikgewotICAgICAgICAvLyBUb28gYmFkIC0gdHJ5SG9sZExvY2soKSBmYWlsZWQuIFdlIG11c3Qg
YmUgaW4gdGhlIG1pZGRsZSBvZiBhIHNldEN1cnZlKCkgY2FsbC4KKyAgICAvLyBUaGUgYXVkaW8g
dGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUxvY2soKSBpbnN0
ZWFkLgorICAgIGlmICghbV9wcm9jZXNzTG9jay50cnlMb2NrKCkpIHsKKyAgICAgICAgLy8gVG9v
IGJhZCAtIHRyeUxvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBhIHNl
dEN1cnZlKCkgY2FsbC4KICAgICAgICAgZGVzdGluYXRpb24tPnplcm8oKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KKyAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBtX3Byb2Nlc3NMb2Nr
IH07CiAKICAgICAvLyBGb3IgZWFjaCBjaGFubmVsIG9mIG91ciBpbnB1dCwgcHJvY2VzcyB1c2lu
ZyB0aGUgY29ycmVzcG9uZGluZyBXYXZlU2hhcGVyRFNQS2VybmVsIGludG8gdGhlIG91dHB1dCBj
aGFubmVsLgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2tlcm5lbHMuc2l6ZSgpOyAr
K2kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3Rp
bmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9u
LmgKaW5kZXggZWI1NGYwZDUxZDc4NjBiOWY2MDQwZDg5MzU4ODQ0ODgyYTY1YmI2Mi4uMzZkNWNl
MWQ2MTdiMDAxM2ZlZTllNGIzNWJjYjUzN2JhZWUxNDFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaApAQCAtOTcsNyArOTcsNyBAQCBp
bmxpbmUgdm9pZCBBdWRpb0Rlc3RpbmF0aW9uOjpjbGVhckNhbGxiYWNrKCkKIGlubGluZSB2b2lk
IEF1ZGlvRGVzdGluYXRpb246OmNhbGxSZW5kZXJDYWxsYmFjayhBdWRpb0J1cyogc291cmNlQnVz
LCBBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MsIGNvbnN0
IEF1ZGlvSU9Qb3NpdGlvbiYgb3V0cHV0UG9zaXRpb24pCiB7CiAgICAgaWYgKG1fY2FsbGJhY2tM
b2NrLnRyeUxvY2soKSkgewotICAgICAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsg
fSwgbV9jYWxsYmFja0xvY2sgfTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywg
bV9jYWxsYmFja0xvY2sgfTsKICAgICAgICAgaWYgKG1fY2FsbGJhY2spIHsKICAgICAgICAgICAg
IG1fY2FsbGJhY2stPnJlbmRlcihzb3VyY2VCdXMsIGRlc3RpbmF0aW9uQnVzLCBmcmFtZXNUb1By
b2Nlc3MsIG91dHB1dFBvc2l0aW9uKTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCmluZGV4IDI3YjI5
ODJkYzNmZDkxNjg1ZDMxN2E3ZWQxYTljMWU2ZWU0N2IyNmYuLmMyNWNhZjBkOWJjNDY5NWM0ODBk
ZGNjOTg0ZmY5MTdlZjUyM2MwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcApAQCAtMjAyLDkgKzIwMiw5IEBAIHZvaWQgUmV2ZXJi
Q29udm9sdmVyOjpwcm9jZXNzKGNvbnN0IEF1ZGlvQ2hhbm5lbCogc291cmNlQ2hhbm5lbCwgQXVk
aW9DaGFubmVsKiBkCiAgICAgLy8gc2lnbmFsIGZyb20gdGltZSB0byB0aW1lLCBzaW5jZSB3ZSds
bCBnZXQgdG8gaXQgdGhlIG5leHQgdGltZSB3ZSdyZSBjYWxsZWQuICBXZSdyZSBjYWxsZWQgcmVw
ZWF0ZWRseQogICAgIC8vIGFuZCBmcmVxdWVudGx5IChhcm91bmQgZXZlcnkgM21zKS4gIFRoZSBi
YWNrZ3JvdW5kIHRocmVhZCBpcyBwcm9jZXNzaW5nIHdlbGwgaW50byB0aGUgZnV0dXJlIGFuZCBo
YXMgYSBjb25zaWRlcmFibGUgYW1vdW50IG9mIAogICAgIC8vIGxlZXdheSBoZXJlLi4uCi0gICAg
YXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX2JhY2tncm91bmRUaHJlYWRMb2NrKTsKLSAgICBp
ZiAoIWxvY2tlcikKKyAgICBpZiAoIW1fYmFja2dyb3VuZFRocmVhZExvY2sudHJ5TG9jaygpKQog
ICAgICAgICByZXR1cm47CisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9iYWNrZ3Jv
dW5kVGhyZWFkTG9jayB9OwogCiAgICAgbV9tb3JlSW5wdXRCdWZmZXJlZCA9IHRydWU7CiAgICAg
bV9iYWNrZ3JvdW5kVGhyZWFkQ29uZGl0aW9uVmFyaWFibGUubm90aWZ5T25lKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9u
Q29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0
aW5hdGlvbkNvY29hLmNwcAppbmRleCAzOTJjMzYxNDA0ZmMyYzk1MGViYjkzODg5YTYyOWNiNWEz
NzFlNDJhLi4zMGM3NzY2MGQ3ZjVmMjNiMzdjODllNTQ5MTkyMjEwYjM3NDcwZjlkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9u
Q29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlv
RGVzdGluYXRpb25Db2NvYS5jcHAKQEAgLTIyMiw3ICsyMjIsNyBAQCBPU1N0YXR1cyBBdWRpb0Rl
c3RpbmF0aW9uQ29jb2E6OnJlbmRlcihkb3VibGUgc2FtcGxlVGltZSwgdWludDY0X3QgaG9zdFRp
bWUsIFVJbgogICAgIGlmICghbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jay50cnlMb2NrKCkp
CiAgICAgICAgIHJldHVybiAtMTsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcg
eyB9LCBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrIH07CisgICAgTG9ja2VyIGxvY2tlciB7
IEFkb3B0TG9jaywgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jayB9OwogICAgIGlmICghbV9k
aXNwYXRjaFRvUmVuZGVyVGhyZWFkKQogICAgICAgICByZW5kZXJPblJlbmRlcmluZ1RoZWFkSWZQ
bGF5aW5nKGZyYW1lc1RvUmVuZGVyKTsKICAgICBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVh
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb1Nv
dXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNwcAppbmRleCBmNzc1YTMyZmQ0NzgwMmVlNTM4ODU3MTYz
ZWQ3NzlhMTIxMzhjZDQ3Li4zMTY3ZTZjODE1OTAyMjIyY2IwMDM5ZWM4MGE2MWMzNDkyM2IxMjFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVk
aW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXIuY3BwCkBAIC0x
NjIsNyArMTYyLDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyOjpwcm92aWRl
SW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHIKICAgICBpZiAoIW1fYWRhcHRl
ckxvY2sudHJ5TG9jaygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBMb2NrZXIgbG9ja2VyIHsg
QWRvcHRMb2NrVGFnIHsgfSwgbV9hZGFwdGVyTG9jayB9OworICAgIExvY2tlciBsb2NrZXIgeyBB
ZG9wdExvY2ssIG1fYWRhcHRlckxvY2sgfTsKICAgICBmb3IgKGF1dG8mIGl0IDogbV9hZGFwdGVy
cykKICAgICAgICAgY29weUdTdHJlYW1lckJ1ZmZlcnNUb0F1ZGlvQ2hhbm5lbChpdC52YWx1ZS5n
ZXQoKSwgYnVzLCBpdC5rZXkgLSAxLCBmcmFtZXNUb1Byb2Nlc3MpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291
cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1l
ci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggNmVmODM1MjgzZmYzNTNh
OGZlMTIyN2IwNzBhMWRkZDU2ZDRhM2Y4Zi4uOTUwYWZiNDdkNmI4NmMyNDg0NjQ4NWUwMDc5ODc5
MjVjYmQ0YjExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0
cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFt
ZXIuY3BwCkBAIC00MTEsNyArNDExLDcgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNS
ZW5kZXJJdGVyYXRpb24oV2ViS2l0V2ViQXVkaW9TcmMqIHNyYykKICAgICBpZiAoIXByaXYtPmRp
c3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIHByaXYtPmRpc3BhdGNoVG9SZW5k
ZXJUaHJlYWRMb2NrIH07CisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgcHJpdi0+ZGlz
cGF0Y2hUb1JlbmRlclRocmVhZExvY2sgfTsKIAogICAgIGlmICghcHJpdi0+ZGlzcGF0Y2hUb1Jl
bmRlclRocmVhZEZ1bmN0aW9uKQogICAgICAgICB3ZWJLaXRXZWJBdWRpb1NyY1JlbmRlckFuZFB1
c2hGcmFtZXMoR1JlZlB0cjxHc3RFbGVtZW50PihHU1RfRUxFTUVOVF9DQVNUKHNyYykpLCBXVEZN
b3ZlKCpjaGFubmVsQnVmZmVyTGlzdCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9TaGFkb3dCbHVyLmNwcAppbmRleCBjMDY0Y2NlNGNhODYyYmQ0Njg5Mjg0MWZmYTVi
YzE5ZmI3ZjIxM2RhLi5hM2IwNTVkMzgzNTYyZmY0YTA2NzhhMjg1Y2JiYmE3MzRiODZmNjkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcApA
QCAtMTM1LDggKzEzNSwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcHVyZ2VUaW1lckZpcmVkKCkK
ICAgICB7CiAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgICAgIGlmIChhdXRv
IGxvY2tlciA9IHRyeUhvbGRMb2NrKGxvY2soKSkpCisgICAgICAgIGlmIChsb2NrKCkudHJ5TG9j
aygpKSB7CiAgICAgICAgICAgICBjbGVhclNjcmF0Y2hCdWZmZXIoKTsKKyAgICAgICAgICAgIGxv
Y2soKS51bmxvY2soKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHZvaWQgY2xlYXJTY3JhdGNo
QnVmZmVyKCkKQEAgLTY5NCw3ICs2OTYsNyBAQCB2b2lkIFNoYWRvd0JsdXI6OmRyYXdSZWN0U2hh
ZG93V2l0aFRpbGluZyhjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29ucwogewog
ICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gbGF5ZXJJbWFnZUJ1ZmZlcjsKICNpZiBVU0UoQ0cpCi0g
ICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhTY3JhdGNoQnVmZmVyOjpsb2NrKCkpOworICAg
IGF1dG8gbG9ja2VyID0gTG9ja2VyPExvY2s+Ojp0cnlMb2NrKFNjcmF0Y2hCdWZmZXI6OmxvY2so
KSk7CiAgICAgaWYgKGxvY2tlcikgewogICAgICAgICBsYXllckltYWdlQnVmZmVyID0gU2NyYXRj
aEJ1ZmZlcjo6c2luZ2xldG9uKCkuZ2V0U2NyYXRjaEJ1ZmZlcih0ZW1wbGF0ZVNpemUpOwogICAg
ICAgICBpZiAoIWxheWVySW1hZ2VCdWZmZXIpCkBAIC03NTQsNyArNzU2LDcgQEAgdm9pZCBTaGFk
b3dCbHVyOjpkcmF3SW5zZXRTaGFkb3dXaXRoVGlsaW5nKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
dHJhbnNmb3JtLCBjb24KIHsKICAgICBSZWZQdHI8SW1hZ2VCdWZmZXI+IGxheWVySW1hZ2VCdWZm
ZXI7CiAjaWYgVVNFKENHKQotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2soU2NyYXRjaEJ1
ZmZlcjo6bG9jaygpKTsKKyAgICBhdXRvIGxvY2tlciA9IExvY2tlcjxMb2NrPjo6dHJ5TG9jayhT
Y3JhdGNoQnVmZmVyOjpsb2NrKCkpOwogICAgIGlmIChsb2NrZXIpIHsKICAgICAgICAgbGF5ZXJJ
bWFnZUJ1ZmZlciA9IFNjcmF0Y2hCdWZmZXI6OnNpbmdsZXRvbigpLmdldFNjcmF0Y2hCdWZmZXIo
dGVtcGxhdGVTaXplKTsKICAgICAgICAgaWYgKCFsYXllckltYWdlQnVmZmVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCmluZGV4IDQ3OTc2ODNi
ODBiYjQ5MDVhN2E4MTY4ODdhNDM1NGQxMjk4ZWNkNDEuLjk4MzliMzcwYTcxM2I3YzFkMjNkODQ3
ZmE4NjUwNWQ1YWU5NzlhYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakMubW0KQEAgLTk0LDcgKzk0LDcgQEAgQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6On5BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQygpCiAKIHZvaWQgQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVz
VG9Qcm9jZXNzKQogewotICAgIC8vIFByb3RlY3QgYWNjZXNzIHRvIG1fcmluZ0J1ZmZlciBieSB1
c2luZyB0cnlIb2xkTG9jaygpLiBJZiB3ZSBmYWlsZWQKKyAgICAvLyBQcm90ZWN0IGFjY2VzcyB0
byBtX3JpbmdCdWZmZXIgYnkgdXNpbmcgdHJ5TG9jaygpLiBJZiB3ZSBmYWlsZWQKICAgICAvLyB0
byBhcXVpcmUsIGEgcmUtY29uZmlndXJlIGlzIHVuZGVyd2F5LCBhbmQgbV9yaW5nQnVmZmVyIGlz
IHVuc2FmZSB0byBhY2Nlc3MuCiAgICAgLy8gRW1pdCBzaWxlbmNlLgogICAgIGlmICghbV90YXBT
dG9yYWdlKSB7CkBAIC0xMDIsOCArMTAyLDEzIEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OnByb3ZpZGVJbnB1dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1f
dGFwU3RvcmFnZS0+bG9jayk7Ci0gICAgaWYgKCFsb2NrZXIgfHwgIW1fcmluZ0J1ZmZlcikgewor
ICAgIGlmICghbV90YXBTdG9yYWdlLT5sb2NrLnRyeUxvY2soKSkgeworICAgICAgICBidXMtPnpl
cm8oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRM
b2NrLCBtX3RhcFN0b3JhZ2UtPmxvY2sgfTsKKworICAgIGlmICghbV9yaW5nQnVmZmVyKSB7CiAg
ICAgICAgIGJ1cy0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLm1tCmluZGV4IDgxMzk5NmM3NmM2NDFiN2NhZTA0NmY1OTcxZWM3NDdjZjkxY2U5
ZDcuLjE3MzA1MmE3M2I1MTYwMDY3ZTc5NTdkMTM4MDhhZjUyZDY3ZWY0ZjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0KQEAgLTI1NCw5ICsyNTQsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5xdWV1ZVZpZGVvU2FtcGxlKE1lZGlhU2FtcGxlJiBz
YW1wbAogICAgIGlmICghbV92aXNpYmxlKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGxv
Y2tlciA9IHRyeUhvbGRMb2NrKG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTG9jayk7Ci0gICAg
aWYgKCFsb2NrZXIpCisgICAgaWYgKCFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckxvY2sudHJ5
TG9jaygpKQogICAgICAgICByZXR1cm47CisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywg
bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJMb2NrIH07CiAKICAgICBpZiAoIW1fY2FuRW5xdWV1
ZURpc3BsYXlMYXllciB8fCAhbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgfHwgbV9zYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXItPmRpZEZhaWwoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAKaW5kZXgg
NWRjZWExYTQwODZlMjBlMTU3ZWJiY2Q3MTliYzM2NjA4OTA0YjYwYy4uZTNhMTI4OTExZWQ2YzQ3
NTViZDRlZjc5YTMwOWYxNDA5OTg0M2I3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9p
ZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnVwZGF0ZVJlbmRlclNvdXJjZXNJ
Zk5lY2Vzc2FyeSgpCiAgICAgaWYgKCFtX3BlbmRpbmdSZW5kZXJTb3VyY2VzTG9jay50cnlMb2Nr
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcg
eyB9LCBtX3BlbmRpbmdSZW5kZXJTb3VyY2VzTG9jayB9OworICAgIExvY2tlciBsb2NrZXIgeyBB
ZG9wdExvY2ssIG1fcGVuZGluZ1JlbmRlclNvdXJjZXNMb2NrIH07CiAgICAgaWYgKCFtX2hhc1Bl
bmRpbmdSZW5kZXJTb3VyY2VzKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVy
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVk
aW9Tb3VyY2VQcm92aWRlckNvY29hLm1tCmluZGV4IDU3NmY0NGU5MmM1OGI5M2MwYjQwZDY2NDk5
ODBiYzdlOTBhNWVhZmIuLjAxOTEwN2U4ZmE2NjQwNGI1MDliZDFmNDU2OTcwOTgyYmQ2Y2ZhYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJB
dWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5tbQpAQCAtNjUsOCAr
NjUsMTIgQEAgdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnNldENsaWVudChBdWRp
b1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBjbGllbnQpCiAKIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92
aWRlckNvY29hOjpwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJv
Y2VzcykKIHsKLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fbG9jayk7Ci0gICAgaWYg
KCFsb2NrZXIgfHwgIW1fZGF0YVNvdXJjZSB8fCAhbV9hdWRpb0J1ZmZlckxpc3QpIHsKKyAgICBp
ZiAoIW1fbG9jay50cnlMb2NrKCkpIHsKKyAgICAgICAgYnVzLT56ZXJvKCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9sb2NrIH07Cisg
ICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgIW1fYXVkaW9CdWZmZXJMaXN0KSB7CiAgICAgICAgIGJ1
cy0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwCmluZGV4IDQ3N2Q5NjcyYzcxMmI0NmZj
NGViZDdhMjg5N2U3N2ViMTU4MDg0ODQuLjg1YjNlNDAyN2I2ZWRjYzc5OTRkZDgyYzkzNTkxOWM0
YjY0NTE2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3Jr
bGV0VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xl
dFRocmVhZC5jcHAKQEAgLTIwNyw4ICsyMDcsNyBAQCB2b2lkIFdvcmtlck9yV29ya2xldFRocmVh
ZDo6c3RvcChGdW5jdGlvbjx2b2lkKCk+JiYgc3RvcHBlZENhbGxiYWNrKQogICAgIC8vIE11dGV4
IHByb3RlY3Rpb24gaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSB0aGF0IG1fd29ya2VyR2xvYmFsU2Nv
cGUgaXNuJ3QgY2hhbmdlZCBieQogICAgIC8vIFdvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKCkg
d2hpbGUgd2UncmUgYWNjZXNzaW5nIGl0LiBOb3RlIGFsc28gdGhhdCBzdG9wKCkgY2FuCiAgICAg
Ly8gYmUgY2FsbGVkIGJlZm9yZSBtX3dvcmtlckdsb2JhbFNjb3BlIGlzIGZ1bGx5IGNyZWF0ZWQu
Ci0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kR2xvYmFs
U2NvcGVMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgeworICAgIGlmICghbV90aHJlYWRDcmVhdGlv
bkFuZEdsb2JhbFNjb3BlTG9jay50cnlMb2NrKCkpIHsKICAgICAgICAgLy8gVGhlIHRocmVhZCBp
cyBzdGlsbCBzdGFydGluZywgc3BpbiB0aGUgcnVubG9vcCBhbmQgdHJ5IGFnYWluIHRvIGF2b2lk
IGRlYWRsb2NrcyBpZiB0aGUgd29ya2VyIHRocmVhZAogICAgICAgICAvLyBuZWVkcyB0byBpbnRl
cmFjdCB3aXRoIHRoZSBtYWluIHRocmVhZCBkdXJpbmcgc3RhcnR1cC4KICAgICAgICAgY2FsbE9u
TWFpblRocmVhZChbdGhpcywgc3RvcHBlZENhbGxiYWNrID0gV1RGTW92ZShzdG9wcGVkQ2FsbGJh
Y2spXSgpIG11dGFibGUgewpAQCAtMjE2LDYgKzIxNSw3IEBAIHZvaWQgV29ya2VyT3JXb3JrbGV0
VGhyZWFkOjpzdG9wKEZ1bmN0aW9uPHZvaWQoKT4mJiBzdG9wcGVkQ2FsbGJhY2spCiAgICAgICAg
IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExv
Y2ssIG1fdGhyZWFkQ3JlYXRpb25BbmRHbG9iYWxTY29wZUxvY2sgfTsKIAogICAgIC8vIElmIHRo
ZSB0aHJlYWQgaXMgc3VzcGVuZGVkLCByZXN1bWUgaXQgbm93IHNvIHRoYXQgd2UgY2FuIGRpc3Bh
dGNoIHRoZSBjbGVhbnVwIHRhc2tzIGJlbG93LgogICAgIGlmIChtX2lzU3VzcGVuZGVkKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjcy5jcHAKaW5kZXggZjQ0YzQxODkyYjM4ZjViYWQzMTk2ZDY5YTFjMTMyNGNlOTNiNWVjMy4u
MjhlOWM2OTgyYWM1NDY5ZWU5NWZhYjg2ZGY3NmU2Y2YzOGU5MjRmYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3Bw
CkBAIC0zMjcsNyArMzI3LDcgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRlZERlY29k
aW5nKFJUQ0RlY29kZXJJZGVudGlmaWVyIGRlY29kZXJJZGVudGlmaWVyLAogICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIGRlY29kZXItPmRlY29k
ZWRJbWFnZUNhbGxiYWNrTG9jayB9OworICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIGRl
Y29kZXItPmRlY29kZWRJbWFnZUNhbGxiYWNrTG9jayB9OwogCiAgICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGVkSW1hZ2VDYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwpAQCAtNDk1LDcgKzQ5NSw3IEBA
IHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWRFbmNvZGluZyhSVENFbmNvZGVySWRlbnRp
ZmllciBpZGVudGlmaWVyLCBJUEM6OkRhCiAgICAgaWYgKCFlbmNvZGVyLT5lbmNvZGVkSW1hZ2VD
YWxsYmFja0xvY2sudHJ5TG9jaygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBMb2NrZXIgbG9j
a2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgZW5jb2Rlci0+ZW5jb2RlZEltYWdlQ2FsbGJhY2tMb2Nr
IH07CisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgZW5jb2Rlci0+ZW5jb2RlZEltYWdl
Q2FsbGJhY2tMb2NrIH07CiAKICAgICBpZiAoIWVuY29kZXItPmVuY29kZWRJbWFnZUNhbGxiYWNr
KQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9DaGVja2VkTG9ja1Rlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Q2hlY2tlZExvY2tUZXN0LmNwcAppbmRleCBkODJlZTFhMmU1YmRlMGRjYWJmMzVjZTlkYzczMTEy
MTEwMjI2MjRhLi44MTA2ZDRlYzcwYWVhOWE0ZDM2NjMwYzc2MzQ2YWE5MzJjMzcxOTczIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkTG9ja1Rlc3QuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRMb2NrVGVzdC5jcHAK
QEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgaWYgKCFtX290aGVyTG9j
ay50cnlMb2NrKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIExvY2tlciBob2xkTG9j
ayB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fb3RoZXJMb2NrIH07CisgICAgICAgIExvY2tlciBob2xk
TG9jayB7IEFkb3B0TG9jaywgbV9vdGhlckxvY2sgfTsKICAgICAgICAgbV9vdGhlclZhbHVlID0g
dmFsdWU7CiAgICAgfQogICAgIC8vIFRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gbWFudWFs
bHkgY2hlY2sgdGhhdCBjb21waWxlIGZhaWxzLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429449</attachid>
            <date>2021-05-22 19:20:29 -0700</date>
            <delta_ts>2021-05-23 12:52:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226145-20210522192028.patch</filename>
            <type>text/plain</type>
            <size>35633</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZjY3MTE3MDhhODUyMGY5MDcyMjIzNDExNThhODk2NDgzZjU5NmE2Li42NGM3N2Y0NWUxNmI2ZWYw
ZmU2NjQ5ZmNjM2QzNGNjZjQ2OGE0OTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlzIGluY29tcGF0aWJsZSB3
aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgV1RGOjp0cnlIb2xkTG9jaygpIGFzIGl0IGlz
IGluY29tcGF0aWJsZSB3aXRoIENsYW5nIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuCisgICAgICAg
IEluc3RlYWQsIHVzZSB0aGUgZm9sbG93aW5nIHBhdHRlcm4gd2hpY2ggaXMgc3VwcG9ydGVkOgor
ICAgICAgICBgYGAKKyAgICAgICAgaWYgKGxvY2sudHJ5TG9jaygpKSB7CisgICAgICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBsb2NrIH07CisgICAgICAgICAgICAvLyAuLi4KKyAg
ICAgICAgfQorICAgICAgICBgYGAKKworICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAg
IChKU0M6OkhlYXA6OnJlc3VtZVRoZVBlcmlwaGVyeSk6CisgICAgICAgICogcnVudGltZS9WTVRy
YXBzLmNwcDoKKyAgICAgICAgKEpTQzo6Vk1UcmFwczo6dHJ5SW5zdGFsbFRyYXBCcmVha3BvaW50
cyk6CisKIDIwMjEtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXBsYWNlIExvY2tIb2xkZXIgd2l0aCBMb2NrZXIgaW4gbG9jYWwgdmFyaWFibGVzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmlu
ZGV4IGI3MGEzZjNlODEzNzI3MjcwNWEwNGJlZDIzOTZjZTBmYzllYmY3NGIuLmM5MWE0MmZiYjdj
NTMwNTg0NGI1OTg5MzYyODdlYTc3NzhmYTBkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEt
MDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFdU
Rjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUgd2l0aCBDbGFuZyBUaHJlYWQg
U2FmZXR5IEFuYWx5c2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjYxNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUgd2l0
aCBDbGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLgorICAgICAgICBJbnN0ZWFkLCB1c2UgdGhl
IGZvbGxvd2luZyBwYXR0ZXJuIHdoaWNoIGlzIHN1cHBvcnRlZDoKKyAgICAgICAgYGBgCisgICAg
ICAgIGlmIChsb2NrLnRyeUxvY2soKSkgeworICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFk
b3B0TG9jaywgbG9jayB9OworICAgICAgICAgICAgLy8gLi4uCisgICAgICAgIH0KKyAgICAgICAg
YGBgCisKKyAgICAgICAgKiB3dGYvQ2hlY2tlZExvY2suaDoKKyAgICAgICAgKiB3dGYvTG9jay5o
OgorICAgICAgICAqIHd0Zi9Mb2NrZXIuaDoKKyAgICAgICAgKFdURjo6TG9ja2VyOjpMb2NrZXIp
OgorCiAyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRvcHQgQ2hlY2tlZExvY2sgaW4gbW9yZSBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMDU3ZDI3
MTI3MDRjODE5MGRhNDQ0MjIwMTM5MTI2ZTVlMjFlYTljLi4wNWRkNzYzNjU1Yjg3NjUxMjZjYTY5
Y2YxMTY0MDU5ZTY2NDY5OTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMjEtMDUt
MjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFdURjo6
dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUgd2l0aCBDbGFuZyBUaHJlYWQgU2Fm
ZXR5IEFuYWx5c2lzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjYxNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBEcm9wIFdURjo6dHJ5SG9sZExvY2soKSBhcyBpdCBpcyBpbmNvbXBhdGlibGUgd2l0aCBD
bGFuZyBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLgorICAgICAgICBJbnN0ZWFkLCB1c2UgdGhlIGZv
bGxvd2luZyBwYXR0ZXJuIHdoaWNoIGlzIHN1cHBvcnRlZDoKKyAgICAgICAgYGBgCisgICAgICAg
IGlmIChsb2NrLnRyeUxvY2soKSkgeworICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0
TG9jaywgbG9jayB9OworICAgICAgICAgICAgLy8gLi4uCisgICAgICAgIH0KKyAgICAgICAgYGBg
CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnByb2Nlc3MpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1dvcmtsZXROb2RlOjpwcm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udm9sdmVyTm9k
ZTo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRp
b1NvdXJjZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50QXVkaW9Tb3Vy
Y2VOb2RlOjpwcm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQXVkaW9T
b3VyY2VOb2RlOjpwcm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0
b3JOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9zY2lsbGF0b3JOb2RlOjpwcm9jZXNzKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGFubmVyTm9kZTo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9T
Y3JpcHRQcm9jZXNzb3JOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFByb2Nlc3Nv
ck5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlclBy
b2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXYXZlU2hhcGVyUHJvY2Vzc29yOjpwcm9j
ZXNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmV2ZXJiQ29udm9sdmVyOjpwcm9jZXNzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmF0Y2hC
dWZmZXI6OnB1cmdlVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dCbHVyOjpk
cmF3UmVjdFNoYWRvd1dpdGhUaWxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1cjo6
ZHJhd0luc2V0U2hhZG93V2l0aFRpbGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnF1ZXVlVmlkZW9TYW1wbGUpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW06Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2E6OnByb3ZpZGVJbnB1
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0VGhyZWFkOjpzdG9wKToKKwogMjAyMS0wNS0yMiAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0IENoZWNrZWRM
b2NrIGluIG1vcmUgcGxhY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCmluZGV4IGMx
Y2Y4NjQyNzcwNTFiYTAyMTA1OGNmNTE0YWQzNzJmYmE3NDgyN2IuLjhiYzg2ZDJjYTc1MTViNGI4
ZTJmNzY0ZGU5MGUyYTZjMjQ3MjY2OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3Bw
CkBAIC0xNzA3LDcgKzE3MDcsOCBAQCBORVZFUl9JTkxJTkUgdm9pZCBIZWFwOjpyZXN1bWVUaGVQ
ZXJpcGhlcnkoKQogICAgICAgICAgICAgYm9vbCByZW1vdmUgPSBmYWxzZTsKICAgICAgICAgICAg
IGlmICh2aXNpdG9yLmhhc0Fja25vd2xlZGdlZFRoYXRUaGVNdXRhdG9ySXNSZXN1bWVkKCkpCiAg
ICAgICAgICAgICAgICAgcmVtb3ZlID0gdHJ1ZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKGF1dG8g
bG9ja2VyID0gdHJ5SG9sZExvY2sodmlzaXRvci5yaWdodFRvUnVuKCkpKSB7CisgICAgICAgICAg
ICBlbHNlIGlmICh2aXNpdG9yLnJpZ2h0VG9SdW4oKS50cnlMb2NrKCkpIHsKKyAgICAgICAgICAg
ICAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCB2aXNpdG9yLnJpZ2h0VG9SdW4oKSB9Owog
ICAgICAgICAgICAgICAgIHZpc2l0b3IudXBkYXRlTXV0YXRvcklzU3RvcHBlZChsb2NrZXIpOwog
ICAgICAgICAgICAgICAgIHJlbW92ZSA9IHRydWU7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwCmluZGV4IDkyYmZlYWE3NjhhYTY4NjJiZGY1
ZDk4YzRhZWRkNzE0NjJlNGFkNjQuLjliNDQwNmIxMTU2M2RhZjU3MzllYjMzOGFmODI1OWE1ZTE4
YTQxNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwCkBAIC0x
MzcsMTAgKzEzNywxMCBAQCB2b2lkIFZNVHJhcHM6OnRyeUluc3RhbGxUcmFwQnJlYWtwb2ludHMo
U2lnbmFsQ29udGV4dCYgY29udGV4dCwgU3RhY2tCb3VuZHMgc3RhYwogICAgIH0KIAogICAgIGlm
IChKSVRDb2RlOjppc09wdGltaXppbmdKSVQoZm91bmRDb2RlQmxvY2stPmppdFR5cGUoKSkpIHsK
LSAgICAgICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jaygqbV9sb2NrKTsKLSAgICAgICAgaWYg
KCFsb2NrZXIpCisgICAgICAgIGlmICghbV9sb2NrLT50cnlMb2NrKCkpCiAgICAgICAgICAgICBy
ZXR1cm47IC8vIExldCB0aGUgU2lnbmFsU2VuZGVyIHRyeSBhZ2FpbiBsYXRlci4KIAorICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCAqbV9sb2NrIH07CiAgICAgICAgIGlmICghbmVl
ZEhhbmRsaW5nKFZNVHJhcHM6OkFzeW5jRXZlbnRzKSkgewogICAgICAgICAgICAgLy8gVG9vIGxh
dGUuIFNvbWVvbmUgZWxzZSBhbHJlYWR5IGhhbmRsZWQgdGhlIHRyYXAuCiAgICAgICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oIGIvU291cmNl
L1dURi93dGYvQ2hlY2tlZExvY2suaAppbmRleCA0NGI4OTk5NjkxMjM0NTIwMDE5OGZkODY0YTk5
ODk2Njc3NjM5OTQyLi4zYWI1Yzc3MGRlMTYxYjRmMDU5ZDZjNzRiYjcxZWM5OGVmYTVmNThhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkTG9jay5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0NoZWNrZWRMb2NrLmgKQEAgLTI1LDcgKzI1LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
bmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Mb2Nr
ZXIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZXR5QW5hbHlzaXMuaD4KQEAgLTQwLDEyICsz
OSwxMiBAQCBuYW1lc3BhY2UgV1RGIHsKIC8vICAgY2xhc3MgTXlWYWx1ZSA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxNeVZhbHVlPgogLy8gICB7CiAvLyAgIHB1YmxpYzoKLS8vICAgICAg
IHZvaWQgc2V0VmFsdWUoaW50IHZhbHVlKSB7IExvY2hrZXIgaG9sZExvY2sgeyBtX2xvY2sgfTsg
bV92YWx1ZSA9IHZhbHVlOyAgfQorLy8gICAgICAgdm9pZCBzZXRWYWx1ZShpbnQgdmFsdWUpIHsg
TG9ja2VyIGhvbGRMb2NrIHsgbV9sb2NrIH07IG1fdmFsdWUgPSB2YWx1ZTsgIH0KIC8vICAgICAg
IHZvaWQgbWF5YmVTZXRPdGhlclZhbHVlKGludCB2YWx1ZSkKIC8vICAgICAgIHsKIC8vICAgICAg
ICAgICBpZiAoIW1fbG9jay50cnlMb2NrKCkpCiAvLyAgICAgICAgICAgICAgcmV0dXJuOwotLy8g
ICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX290aGVyTG9jayB9
OworLy8gICAgICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fb3RoZXJMb2NrIH07
CiAvLyAgICAgICAgICAgbV9vdGhlclZhbHVlID0gdmFsdWU7CiAvLyAgICAgICB9CiAvLyAgIHBy
aXZhdGU6CkBAIC03NSw4ICs3NCw2IEBAIHB1YmxpYzoKIC8vIGRlY2xhcmF0aW9uLgogaW5saW5l
IHZvaWQgYXNzZXJ0SXNIZWxkKGNvbnN0IENoZWNrZWRMb2NrJiBsb2NrKSBXVEZfQVNTRVJUU19B
Q1FVSVJFRF9MT0NLKGxvY2spIHsgQVNTRVJUX1VOVVNFRChsb2NrLCBsb2NrLmlzSGVsZCgpKTsg
fQogCi11c2luZyBBZG9wdExvY2tUYWcgPSBzdGQ6OmFkb3B0X2xvY2tfdDsKLQogLy8gTG9ja2Vy
IHNwZWNpYWxpemF0aW9uIHRvIHVzZSB3aXRoIENoZWNrZWRMb2NrLgogLy8gTm9uLW1vdmFibGUg
c2ltcGxlIHNjb3BlZCBsb2NrIGhvbGRlci4KIC8vIEV4YW1wbGU6IExvY2tlciBsb2NrZXIgeyBt
X2xvY2sgfTsKQEAgLTEwOSw0ICsxMDYsMyBAQCBMb2NrZXIoQWRvcHRMb2NrVGFnLCBDaGVja2Vk
TG9jayYpIC0+IExvY2tlcjxDaGVja2VkTG9jaz47CiAKIHVzaW5nIFdURjo6YXNzZXJ0SXNIZWxk
OwogdXNpbmcgV1RGOjpDaGVja2VkTG9jazsKLXVzaW5nIFdURjo6QWRvcHRMb2NrVGFnOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9ja2VyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrZXIu
aAppbmRleCA4YjBlMTkyYjVlYmE0Yjg4NzYzYTg0NGQxZWMwY2JhMTRjMGM5ODhhLi5hYzRkYjFl
YTE5ZmM3NzU1NzVmNTcyOWQ1NTk3ZjM3OTY3ZDJjYmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9Mb2NrZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrZXIuaApAQCAtMjgsNiArMjgs
NyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvQ29t
cGlsZXIuaD4KQEAgLTU0LDExICs1NSwxNSBAQCBwcm90ZWN0ZWQ6CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGNsYXNzIERyb3BMb2NrRm9yU2NvcGU7CiAKK3VzaW5nIEFkb3B0TG9ja1RhZyA9IHN0
ZDo6YWRvcHRfbG9ja190OworY29uc3RleHByIEFkb3B0TG9ja1RhZyBBZG9wdExvY2sgPSBBZG9w
dExvY2tUYWcoKTsKKwogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIGNsYXNzIExvY2tlciA6IHB1Ymxp
YyBBYnN0cmFjdExvY2tlciB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgTG9ja2VyKFQmIGxvY2th
YmxlKSA6IG1fbG9ja2FibGUoJmxvY2thYmxlKSB7IGxvY2soKTsgfQogICAgIGV4cGxpY2l0IExv
Y2tlcihUKiBsb2NrYWJsZSkgOiBtX2xvY2thYmxlKGxvY2thYmxlKSB7IGxvY2soKTsgfQorICAg
IGV4cGxpY2l0IExvY2tlcihBZG9wdExvY2tUYWcsIFQmIGxvY2thYmxlKSA6IG1fbG9ja2FibGUo
JmxvY2thYmxlKSB7IH0KIAogICAgIC8vIFlvdSBzaG91bGQgYmUgd2FyeSBvZiB1c2luZyB0aGlz
IGNvbnN0cnVjdG9yLiBJdCdzIG9ubHkgYXBwbGljYWJsZQogICAgIC8vIGluIHBsYWNlcyB3aGVy
ZSB0aGVyZSBpcyBhIGxvY2tpbmcgcHJvdG9jb2wgZm9yIGEgcGFydGljdWxhciBvYmplY3QKQEAg
LTEzNiwxNCArMTQxLDYgQEAgcHJpdmF0ZToKICAgICBUKiBtX2xvY2thYmxlOwogfTsKIAotdGVt
cGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+Ci1Mb2NrZXI8TG9ja1R5cGU+IHRyeUhvbGRMb2NrKExv
Y2tUeXBlJikgV0FSTl9VTlVTRURfUkVUVVJOOwotdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+
Ci1Mb2NrZXI8TG9ja1R5cGU+IHRyeUhvbGRMb2NrKExvY2tUeXBlJiBsb2NrKQotewotICAgIHJl
dHVybiBMb2NrZXI8TG9ja1R5cGU+Ojp0cnlMb2NrKGxvY2spOwotfQotCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBMb2NrVHlwZT4KIGNsYXNzIERyb3BMb2NrRm9yU2NvcGUgOiBwcml2YXRlIEFic3RyYWN0
TG9ja2VyIHsKICAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTihEcm9wTG9ja0ZvclNjb3Bl
KTsKQEAgLTE2Niw2ICsxNjMsNyBAQCBwcml2YXRlOgogfQogCiB1c2luZyBXVEY6OkFic3RyYWN0
TG9ja2VyOwordXNpbmcgV1RGOjpBZG9wdExvY2s7CiB1c2luZyBXVEY6OkxvY2tlcjsKIHVzaW5n
IFdURjo6Tm9Mb2NraW5nTmVjZXNzYXJ5VGFnOwogdXNpbmcgV1RGOjpOb0xvY2tpbmdOZWNlc3Nh
cnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaCBiL1NvdXJjZS9XVEYvd3Rm
L0xvZ2dlci5oCmluZGV4IGU5OWQ0OWJmMmU5ZDlhZDJhNmIzYjYxODBkY2JkOThjZDc4NWZhNTQu
LjRmNTQ0N2RhMzE3ZWViMWIxOGQ2YzQ5OTVjM2VkMzlhODYzMzZiZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0xvZ2dlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCkBAIC0z
MjUsNyArMzI1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKCFvYnNlcnZlckxvY2soKS50cnlM
b2NrKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFk
b3B0TG9ja1RhZyB7IH0sIG9ic2VydmVyTG9jaygpIH07CisgICAgICAgIExvY2tlciBsb2NrZXIg
eyBBZG9wdExvY2ssIG9ic2VydmVyTG9jaygpIH07CiAgICAgICAgIGZvciAoT2JzZXJ2ZXImIG9i
c2VydmVyIDogb2JzZXJ2ZXJzKCkpCiAgICAgICAgICAgICBvYnNlcnZlci5kaWRMb2dNZXNzYWdl
KGNoYW5uZWwsIGxldmVsLCB7IENvbnNvbGVMb2dWYWx1ZTxBcmd1bWVudD46OnRvVmFsdWUoYXJn
dW1lbnRzKS4uLiB9KTsKICAgICB9CkBAIC0zNTYsNyArMzU2LDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgaWYgKCFvYnNlcnZlckxvY2soKS50cnlMb2NrKCkpCiAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG9ic2VydmVyTG9jaygp
IH07CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG9ic2VydmVyTG9jaygpIH07
CiAgICAgICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogb2JzZXJ2ZXJzKCkpCiAgICAgICAg
ICAgICBvYnNlcnZlci5kaWRMb2dNZXNzYWdlKGNoYW5uZWwsIGxldmVsLCB7IENvbnNvbGVMb2dW
YWx1ZTxBcmd1bWVudD46OnRvVmFsdWUoYXJndW1lbnRzKS4uLiB9KTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCmluZGV4IDE4NDQwMjFlNmYxYWM0NGZlNjMy
NWM2MjhiYWU2ZjhlMTdmYmE2NzAuLjljM2U2ZjkwMzZkMzZhMTRhNmQwNDA3ZDI4MDgyOWNkNTlj
NWUyODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCkBAIC04OCw3
ICs4OCw3IEBAIGJvb2wgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6dXBkYXRl
RGF0YVNvdXJjZShjb25zdCBDQUF1ZGlvU3RyZWFtRGVzCiAgICAgaWYgKCFtX2RhdGFTb3VyY2VM
b2NrLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgTG9ja2VyIGxvY2tl
ciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fZGF0YVNvdXJjZUxvY2sgfTsKKyAgICBMb2NrZXIgbG9j
a2VyIHsgQWRvcHRMb2NrLCBtX2RhdGFTb3VyY2VMb2NrIH07CiAKICAgICBhdXRvIGRhdGFTb3Vy
Y2UgPSBBdWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShhdWRpb0Rlc2NyaXB0aW9uLnNhbXBs
ZVJhdGUoKSAqIDEsIG1fc291cmNlLmdldCgpKTsKICAgICBpZiAoZGF0YVNvdXJjZS0+c2V0SW5w
dXRGb3JtYXQoYXVkaW9EZXNjcmlwdGlvbikpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAppbmRleCA2MzNj
NTA2YTAwNzY3ZmZiODg1OGNiMDYwZjUxZDc2OTk2YmExNzJhLi5kYzZmMDJkN2FhNDhiNTA1NjA4
OGQ4ZWMwNDk4YTIwMjVjYmVkMWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCkBAIC0xMDIsMTMgKzEw
MiwxMyBAQCB2b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVz
VG9Qcm9jZXNzKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gVGhlIGF1ZGlvIHRo
cmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlIb2xkTG9jaygpIGlu
c3RlYWQuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAg
ICBpZiAoIWxvY2tlcikgewotICAgICAgICAvLyBUb28gYmFkIC0gdHJ5SG9sZExvY2soKSBmYWls
ZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBjaGFuZ2luZyBidWZmZXJzIGFuZCB3ZXJl
IGFscmVhZHkgb3V0cHV0dGluZyBzaWxlbmNlIGFueXdheS4KKyAgICAvLyBUaGUgYXVkaW8gdGhy
ZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUxvY2soKSBpbnN0ZWFk
LgorICAgIGlmICghbV9wcm9jZXNzTG9jay50cnlMb2NrKCkpIHsKKyAgICAgICAgLy8gVG9vIGJh
ZCAtIHRyeUxvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBjaGFuZ2lu
ZyBidWZmZXJzIGFuZCB3ZXJlIGFscmVhZHkgb3V0cHV0dGluZyBzaWxlbmNlIGFueXdheS4KICAg
ICAgICAgb3V0cHV0QnVzLnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBMb2Nr
ZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CiAKICAgICBpZiAoIWJ1ZmZl
cigpKSB7CiAgICAgICAgIG91dHB1dEJ1cy56ZXJvKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAKaW5kZXggMDQwNmVh
Yjc3MTBlOGVkOTdkZTg5ODNhMjAwZTUxNTZjMjI5ZWFhZi4uN2EwNGE1YWZiNDkyYzMyNDNkYTA4
MWVhZDc3MDU2MWVlZmJiYzU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNwcApAQCAtMzI5LDcgKzMyOSw3IEBAIE9w
dGlvbmFsPGZsb2F0PiBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlRm9yQ29udGV4dFRpbWUoQmFz
ZUF1ZGlvQ29udGV4dCYgY29udGV4CiAgICAgewogICAgICAgICBpZiAoIW1fZXZlbnRzTG9jay50
cnlMb2NrKCkpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgICAgICBMb2Nr
ZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9ldmVudHNMb2NrIH07CisgICAgICAgIExv
Y2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fZXZlbnRzTG9jayB9OwogICAgICAgICBpZiAoIW1f
ZXZlbnRzLnNpemUoKSB8fCBTZWNvbmRzIHsgY29udGV4dC5jdXJyZW50VGltZSgpIH0gPCBtX2V2
ZW50c1swXS50aW1lKCkpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0K
QEAgLTM1MSw3ICszNTEsNyBAQCBmbG9hdCBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlc0ZvckZy
YW1lUmFuZ2Uoc2l6ZV90IHN0YXJ0RnJhbWUsIHNpemVfdCBlbmRGcmFtZQogICAgICAgICBzdGQ6
OmZpbGxfbih2YWx1ZXMsIG51bWJlck9mVmFsdWVzLCBkZWZhdWx0VmFsdWUpOwogICAgICAgICBy
ZXR1cm4gZGVmYXVsdFZhbHVlOwogICAgIH0KLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2Nr
VGFnIHsgfSwgbV9ldmVudHNMb2NrIH07CisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywg
bV9ldmVudHNMb2NrIH07CiAKICAgICBmbG9hdCB2YWx1ZSA9IHZhbHVlc0ZvckZyYW1lUmFuZ2VJ
bXBsKHN0YXJ0RnJhbWUsIGVuZEZyYW1lLCBkZWZhdWx0VmFsdWUsIHZhbHVlcywgbnVtYmVyT2ZW
YWx1ZXMsIHNhbXBsZVJhdGUsIGNvbnRyb2xSYXRlKTsKIApAQCAtOTg4LDcgKzk4OCw3IEBAIGJv
b2wgQXVkaW9QYXJhbVRpbWVsaW5lOjpoYXNWYWx1ZXMoc2l6ZV90IHN0YXJ0RnJhbWUsIGRvdWJs
ZSBzYW1wbGVSYXRlKSBjb25zdAogewogICAgIGlmICghbV9ldmVudHNMb2NrLnRyeUxvY2soKSkK
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7
IH0sIG1fZXZlbnRzTG9jayB9OworICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fZXZl
bnRzTG9jayB9OwogCiAgICAgLy8gUmV0dXJuIGZhbHNlIGlmIHRoZXJlIGFyZSBubyBldmVudHMg
aW4gdGhlIHRpbWUgcmFuZ2UuCiAgICAgYXV0byBlbmRGcmFtZSA9IHN0YXJ0RnJhbWUgKyBBdWRp
b1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcAppbmRleCAzNDk2MjZmYTRkNDNl
ZDI1M2ZjZjkwNzMyYjY0MmFmMmJjNWFhNDYwLi5hZmIxYTVhYjI1M2MxNjUwYmE4YmEyMWZkZGZh
M2U3ZjMzMDA4NzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldE5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKQEAgLTE5MSwxMSArMTkxLDE5IEBAIHZvaWQgQXVkaW9X
b3JrbGV0Tm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewogICAgIEFTU0VS
VCghaXNNYWluVGhyZWFkKCkpOwogCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3By
b2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlciB8fCAhbV9wcm9jZXNzb3IgfHwgJlRocmVhZDo6
Y3VycmVudCgpICE9IG1fd29ya2xldFRocmVhZCkgewotICAgICAgICAvLyBXZSdyZSBub3QgcmVh
ZHkgeWV0IG9yIHdlIGFyZSBnZXR0aW5nIGRlc3Ryb3llZC4gSW4gdGhpcyBjYXNlLCB3ZSBvdXRw
dXQgc2lsZW5jZS4KKyAgICBhdXRvIHplcm9PdXRwdXQgPSBbJl0gewogICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZPdXRwdXRzKCk7ICsraSkKICAgICAgICAgICAgIG91
dHB1dChpKS0+YnVzKCktPnplcm8oKTsKKyAgICB9OworCisgICAgaWYgKCFtX3Byb2Nlc3NMb2Nr
LnRyeUxvY2soKSkgeworICAgICAgICB6ZXJvT3V0cHV0KCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9wcm9jZXNzTG9jayB9OworICAg
IGlmICghbV9wcm9jZXNzb3IgfHwgJlRocmVhZDo6Y3VycmVudCgpICE9IG1fd29ya2xldFRocmVh
ZCkgeworICAgICAgICAvLyBXZSdyZSBub3QgcmVhZHkgeWV0IG9yIHdlIGFyZSBnZXR0aW5nIGRl
c3Ryb3llZC4gSW4gdGhpcyBjYXNlLCB3ZSBvdXRwdXQgc2lsZW5jZS4KKyAgICAgICAgemVyb091
dHB1dCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcAppbmRleCA1OTcxZmQwMDIyNWJjYWNj
YzBlNTM3M2U2NzAyZGI0Y2QyOWU4NTAwLi5jMmU1NjBlZGE2NzUzYzI5ZTliODFlMWM0NTQ4MWIx
NGIwN2ZkYTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Nv
bnZvbHZlck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29u
dm9sdmVyTm9kZS5jcHAKQEAgLTkyLDEyICs5MiwxMiBAQCB2b2lkIENvbnZvbHZlck5vZGU6OnBy
b2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICBBU1NFUlQob3V0cHV0QnVzKTsKIAog
ICAgIC8vIFN5bmNocm9uaXplIHdpdGggcG9zc2libGUgZHluYW1pYyBjaGFuZ2VzIHRvIHRoZSBp
bXB1bHNlIHJlc3BvbnNlLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9wcm9jZXNz
TG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKLSAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUhvbGRM
b2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2Ygc2V0dGluZyBhIG5ldyBp
bXB1bHNlIHJlc3BvbnNlLgorICAgIGlmICghbV9wcm9jZXNzTG9jay50cnlMb2NrKCkpIHsKKyAg
ICAgICAgLy8gVG9vIGJhZCAtIHRyeUxvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1p
ZGRsZSBvZiBzZXR0aW5nIGEgbmV3IGltcHVsc2UgcmVzcG9uc2UuCiAgICAgICAgIG91dHB1dEJ1
cy0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIExvY2tlciBsb2NrZXIgeyBB
ZG9wdExvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKIAogICAgIGlmICghaXNJbml0aWFsaXplZCgpIHx8
ICFtX3JldmVyYi5nZXQoKSkKICAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNl
Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1
ZGlvU291cmNlTm9kZS5jcHAKaW5kZXggYTFhNDZhNjdlZWEyM2M1NTkyMTNhNzMwODg4MmNlNTA2
NzRiYjI2NC4uMGMxZTQ0NjU0MjY1MThkOThiMzQwMWZiNWJlZTc1ZTllMGNlMzliNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1Nv
dXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFF
bGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcApAQCAtMTU1LDE1ICsxNTUsMTYgQEAgdm9pZCBNZWRp
YUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3Moc2l6ZV90IG51bWJlck9mRnJhbWVzKQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gVXNlIHRyeUhvbGRMb2NrKCkgdG8gYXZv
aWQgY29udGVudGlvbiBpbiB0aGUgcmVhbC10aW1lIGF1ZGlvIHRocmVhZC4KKyAgICAvLyBVc2Ug
dHJ5TG9jaygpIHRvIGF2b2lkIGNvbnRlbnRpb24gaW4gdGhlIHJlYWwtdGltZSBhdWRpbyB0aHJl
YWQuCiAgICAgLy8gSWYgd2UgZmFpbCB0byBhY3F1aXJlIHRoZSBsb2NrIHRoZW4gdGhlIEhUTUxN
ZWRpYUVsZW1lbnQgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mCiAgICAgLy8gcmVjb25maWd1cmlu
ZyBpdHMgcGxheWJhY2sgZW5naW5lLCBzbyB3ZSBvdXRwdXQgc2lsZW5jZSBpbiB0aGlzIGNhc2Uu
Ci0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAo
IWxvY2tlcikgeworICAgIGlmICghbV9wcm9jZXNzTG9jay50cnlMb2NrKCkpIHsKICAgICAgICAg
Ly8gV2UgZmFpbGVkIHRvIGFjcXVpcmUgdGhlIGxvY2suCiAgICAgICAgIG91dHB1dEJ1cy0+emVy
bygpOwogICAgICAgICByZXR1cm47CiAgICAgfQorCisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0
TG9jaywgbV9wcm9jZXNzTG9jayB9OwogICAgIGlmIChtX3NvdXJjZU51bWJlck9mQ2hhbm5lbHMg
IT0gb3V0cHV0QnVzLT5udW1iZXJPZkNoYW5uZWxzKCkpIHsKICAgICAgICAgb3V0cHV0QnVzLT56
ZXJvKCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAKaW5kZXgg
YzU2NjJkNjA5YWY2MGE2YWViYTZkYTcyMWEzNWQxZDU4OGFkNTE3NS4uNWRmMTZiZGFiNWNiMjgz
Mjk3NjkwMzAzMjk2NTcxMmUyYTM4MGI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAK
QEAgLTEzOSwxNSArMTM5LDE1IEBAIHZvaWQgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnBy
b2Nlc3Moc2l6ZV90IG51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgLy8gVXNlIHRyeUhvbGRMb2NrKCkgdG8gYXZvaWQgY29udGVudGlvbiBpbiB0aGUgcmVhbC10
aW1lIGF1ZGlvIHRocmVhZC4KKyAgICAvLyBVc2UgdHJ5TG9jaygpIHRvIGF2b2lkIGNvbnRlbnRp
b24gaW4gdGhlIHJlYWwtdGltZSBhdWRpbyB0aHJlYWQuCiAgICAgLy8gSWYgd2UgZmFpbCB0byBh
Y3F1aXJlIHRoZSBsb2NrIHRoZW4gdGhlIE1lZGlhU3RyZWFtIG11c3QgYmUgaW4gdGhlIG1pZGRs
ZSBvZgogICAgIC8vIGEgZm9ybWF0IGNoYW5nZSwgc28gd2Ugb3V0cHV0IHNpbGVuY2UgaW4gdGhp
cyBjYXNlLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7Ci0g
ICAgaWYgKCFsb2NrZXIpIHsKKyAgICBpZiAoIW1fcHJvY2Vzc0xvY2sudHJ5TG9jaygpKSB7CiAg
ICAgICAgIC8vIFdlIGZhaWxlZCB0byBhY3F1aXJlIHRoZSBsb2NrLgogICAgICAgICBvdXRwdXRC
dXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBMb2NrZXIgbG9ja2VyIHsg
QWRvcHRMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CiAgICAgaWYgKG1fc291cmNlTnVtYmVyT2ZDaGFu
bmVscyAhPSBvdXRwdXRCdXMtPm51bWJlck9mQ2hhbm5lbHMoKSkgewogICAgICAgICBvdXRwdXRC
dXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcAppbmRleCBjNmY2OWQyMzA1YzIxNTk5Njcx
MzlhODQ3OWZhZTVkMzE4MjIyNTg3Li45YTdhM2YzOTkyM2QwMmEwMGVmMTU0MTQ3MzMwOWI2OWZm
ZmEzMjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2ls
bGF0b3JOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2ls
bGF0b3JOb2RlLmNwcApAQCAtMzQ5LDEzICszNDksMTMgQEAgdm9pZCBPc2NpbGxhdG9yTm9kZTo6
cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgIGlmIChmcmFtZXNUb1Byb2Nlc3Mg
PiBtX3BoYXNlSW5jcmVtZW50cy5zaXplKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIFRo
ZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBsb2NrLCBzbyB3ZSB1c2UgdHJ5SG9s
ZExvY2soKSBpbnN0ZWFkLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9wcm9jZXNz
TG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKLSAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUhvbGRM
b2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgd2F2ZS10
YWJsZXMuCisgICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ss
IHNvIHdlIHVzZSB0cnlMb2NrKCkgaW5zdGVhZC4KKyAgICBpZiAoIW1fcHJvY2Vzc0xvY2sudHJ5
TG9jaygpKSB7CisgICAgICAgIC8vIFRvbyBiYWQgLSB0cnlMb2NrKCkgZmFpbGVkLiBXZSBtdXN0
IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgd2F2ZS10YWJsZXMuCiAgICAgICAgIG91dHB1
dEJ1cy56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgTG9ja2VyIGxvY2tlciB7
IEFkb3B0TG9jaywgbV9wcm9jZXNzTG9jayB9OwogCiAgICAgLy8gV2UgbXVzdCBhY2Nlc3MgbV9w
ZXJpb2RpY1dhdmUgb25seSBpbnNpZGUgdGhlIGxvY2suCiAgICAgaWYgKCFtX3BlcmlvZGljV2F2
ZS5nZXQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Q
YW5uZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9k
ZS5jcHAKaW5kZXggN2NjZjI0ZDY3MGI3ZjZlMWVmMWEzNzc5ZjliNzA0ODY4MmZmY2VkNy4uM2Ni
OTdiYWY5N2ZhMzRjNmM5MDZiMTY4MTBhZGZhMWJjMmVhMjE4NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwCkBAIC0xMjksMTMgKzEyOSwxMyBA
QCB2b2lkIFBhbm5lck5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICAg
ICAgfQogICAgIH0KIAotICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhp
cyBsb2NrLCBzbyB3ZSB1c2UgdHJ5SG9sZExvY2soKSBpbnN0ZWFkLgotICAgIGF1dG8gbG9ja2Vy
ID0gdHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKLSAgICAg
ICAgLy8gVG9vIGJhZCAtIHRyeUhvbGRMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBt
aWRkbGUgb2YgY2hhbmdpbmcgdGhlIHBhbm5lci4KKyAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNh
bid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUxvY2soKSBpbnN0ZWFkLgorICAg
IGlmICghbV9wcm9jZXNzTG9jay50cnlMb2NrKCkpIHsKKyAgICAgICAgLy8gVG9vIGJhZCAtIHRy
eUxvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBjaGFuZ2luZyB0aGUg
cGFubmVyLgogICAgICAgICBkZXN0aW5hdGlvbi0+emVybygpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQorICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKIAog
ICAgIGlmICgoaGFzU2FtcGxlQWNjdXJhdGVWYWx1ZXMoKSB8fCBsaXN0ZW5lcigpLmhhc1NhbXBs
ZUFjY3VyYXRlVmFsdWVzKCkpICYmIChzaG91bGRVc2VBUmF0ZSgpIHx8IGxpc3RlbmVyKCkuc2hv
dWxkVXNlQVJhdGUoKSkpIHsKICAgICAgICAgcHJvY2Vzc1NhbXBsZUFjY3VyYXRlVmFsdWVzKGRl
c3RpbmF0aW9uLCBzb3VyY2UsIGZyYW1lc1RvUHJvY2Vzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcAppbmRleCAy
MmU5N2U4YWEyNWVhYzJmNzA4ZTIzZjc2YTg5YjI4ZDkzMDMwMTMwLi5lZDI0MWJjZDE3Mjg3MjBl
MGM0OTM2NGE1MGY0NDk2YmFiNzQ5ZjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKQEAgLTE1OCwxMyArMTU4
LDEzIEBAIHZvaWQgU2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Q
cm9jZXNzKQogICAgIHVuc2lnbmVkIGJ1ZmZlckluZGV4ID0gdGhpcy0+YnVmZmVySW5kZXgoKTsK
ICAgICBBU1NFUlQoYnVmZmVySW5kZXggPCBidWZmZXJDb3VudCk7CiAKLSAgICBhdXRvIGxvY2tl
ciA9IHRyeUhvbGRMb2NrKG1fYnVmZmVyTG9ja3NbYnVmZmVySW5kZXhdKTsKLSAgICBpZiAoIWxv
Y2tlcikgeworICAgIGlmICghbV9idWZmZXJMb2Nrc1tidWZmZXJJbmRleF0udHJ5TG9jaygpKSB7
CiAgICAgICAgIC8vIFdlJ3JlIGxhdGUgaW4gaGFuZGxpbmcgdGhlIHByZXZpb3VzIHJlcXVlc3Qu
IFRoZSBtYWluIHRocmVhZCBtdXN0IGJlCiAgICAgICAgIC8vIHZlcnkgYnVzeS4gVGhlIGJlc3Qg
d2UgY2FuIGRvIGlzIGNsZWFyIG91dCB0aGUgYnVmZmVyIG91cnNlbGYgaGVyZS4KICAgICAgICAg
b3V0cHV0QnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgTG9ja2VyIGxv
Y2tlciB7IEFkb3B0TG9jaywgbV9idWZmZXJMb2Nrc1tidWZmZXJJbmRleF0gfTsKICAgICAKICAg
ICBBdWRpb0J1ZmZlciogaW5wdXRCdWZmZXIgPSBtX2lucHV0QnVmZmVyc1tidWZmZXJJbmRleF0u
Z2V0KCk7CiAgICAgQXVkaW9CdWZmZXIqIG91dHB1dEJ1ZmZlciA9IG1fb3V0cHV0QnVmZmVyc1ti
dWZmZXJJbmRleF0uZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcAppbmRleCAxMjA4ODUwODA4OTAzNjFkNGM0
MGFhNmFjYWI5NTRiYTcwMGI1NzI5Li43MjdjOTAwNDhhZTZjOGJjODc5MTcxMjIzNDg3ZDllODFh
ZjQ4YTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVT
aGFwZXJQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
V2F2ZVNoYXBlclByb2Nlc3Nvci5jcHAKQEAgLTgzLDEzICs4MywxMyBAQCB2b2lkIFdhdmVTaGFw
ZXJQcm9jZXNzb3I6OnByb2Nlc3MoY29uc3QgQXVkaW9CdXMqIHNvdXJjZSwgQXVkaW9CdXMqIGRl
c3RpbmF0aW9uLAogICAgIGlmICghY2hhbm5lbENvdW50TWF0Y2hlcykKICAgICAgICAgcmV0dXJu
OwogCi0gICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNv
IHdlIHVzZSB0cnlIb2xkTG9jaygpIGluc3RlYWQuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xk
TG9jayhtX3Byb2Nlc3NMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikgewotICAgICAgICAvLyBUb28g
YmFkIC0gdHJ5SG9sZExvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBh
IHNldEN1cnZlKCkgY2FsbC4KKyAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9u
IHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUxvY2soKSBpbnN0ZWFkLgorICAgIGlmICghbV9wcm9j
ZXNzTG9jay50cnlMb2NrKCkpIHsKKyAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUxvY2soKSBmYWls
ZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBhIHNldEN1cnZlKCkgY2FsbC4KICAgICAg
ICAgZGVzdGluYXRpb24tPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBMb2Nr
ZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CiAKICAgICAvLyBGb3IgZWFj
aCBjaGFubmVsIG9mIG91ciBpbnB1dCwgcHJvY2VzcyB1c2luZyB0aGUgY29ycmVzcG9uZGluZyBX
YXZlU2hhcGVyRFNQS2VybmVsIGludG8gdGhlIG91dHB1dCBjaGFubmVsLgogICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBtX2tlcm5lbHMuc2l6ZSgpOyArK2kpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKaW5kZXggZWI1NGYwZDUxZDc4
NjBiOWY2MDQwZDg5MzU4ODQ0ODgyYTY1YmI2Mi4uMzZkNWNlMWQ2MTdiMDAxM2ZlZTllNGIzNWJj
YjUzN2JhZWUxNDFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
QXVkaW9EZXN0aW5hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvRGVzdGluYXRpb24uaApAQCAtOTcsNyArOTcsNyBAQCBpbmxpbmUgdm9pZCBBdWRpb0Rlc3Rp
bmF0aW9uOjpjbGVhckNhbGxiYWNrKCkKIGlubGluZSB2b2lkIEF1ZGlvRGVzdGluYXRpb246OmNh
bGxSZW5kZXJDYWxsYmFjayhBdWRpb0J1cyogc291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGluYXRp
b25CdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MsIGNvbnN0IEF1ZGlvSU9Qb3NpdGlvbiYgb3V0
cHV0UG9zaXRpb24pCiB7CiAgICAgaWYgKG1fY2FsbGJhY2tMb2NrLnRyeUxvY2soKSkgewotICAg
ICAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9jYWxsYmFja0xvY2sgfTsK
KyAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9jYWxsYmFja0xvY2sgfTsKICAg
ICAgICAgaWYgKG1fY2FsbGJhY2spIHsKICAgICAgICAgICAgIG1fY2FsbGJhY2stPnJlbmRlcihz
b3VyY2VCdXMsIGRlc3RpbmF0aW9uQnVzLCBmcmFtZXNUb1Byb2Nlc3MsIG91dHB1dFBvc2l0aW9u
KTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCmluZGV4IDI3YjI5ODJkYzNmZDkxNjg1ZDMxN2E3ZWQx
YTljMWU2ZWU0N2IyNmYuLmMyNWNhZjBkOWJjNDY5NWM0ODBkZGNjOTg0ZmY5MTdlZjUyM2MwZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVy
LmNwcApAQCAtMjAyLDkgKzIwMiw5IEBAIHZvaWQgUmV2ZXJiQ29udm9sdmVyOjpwcm9jZXNzKGNv
bnN0IEF1ZGlvQ2hhbm5lbCogc291cmNlQ2hhbm5lbCwgQXVkaW9DaGFubmVsKiBkCiAgICAgLy8g
c2lnbmFsIGZyb20gdGltZSB0byB0aW1lLCBzaW5jZSB3ZSdsbCBnZXQgdG8gaXQgdGhlIG5leHQg
dGltZSB3ZSdyZSBjYWxsZWQuICBXZSdyZSBjYWxsZWQgcmVwZWF0ZWRseQogICAgIC8vIGFuZCBm
cmVxdWVudGx5IChhcm91bmQgZXZlcnkgM21zKS4gIFRoZSBiYWNrZ3JvdW5kIHRocmVhZCBpcyBw
cm9jZXNzaW5nIHdlbGwgaW50byB0aGUgZnV0dXJlIGFuZCBoYXMgYSBjb25zaWRlcmFibGUgYW1v
dW50IG9mIAogICAgIC8vIGxlZXdheSBoZXJlLi4uCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xk
TG9jayhtX2JhY2tncm91bmRUaHJlYWRMb2NrKTsKLSAgICBpZiAoIWxvY2tlcikKKyAgICBpZiAo
IW1fYmFja2dyb3VuZFRocmVhZExvY2sudHJ5TG9jaygpKQogICAgICAgICByZXR1cm47CisgICAg
TG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9iYWNrZ3JvdW5kVGhyZWFkTG9jayB9OwogCiAg
ICAgbV9tb3JlSW5wdXRCdWZmZXJlZCA9IHRydWU7CiAgICAgbV9iYWNrZ3JvdW5kVGhyZWFkQ29u
ZGl0aW9uVmFyaWFibGUubm90aWZ5T25lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcAppbmRl
eCAzOTJjMzYxNDA0ZmMyYzk1MGViYjkzODg5YTYyOWNiNWEzNzFlNDJhLi4zMGM3NzY2MGQ3ZjVm
MjNiMzdjODllNTQ5MTkyMjEwYjM3NDcwZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAK
QEAgLTIyMiw3ICsyMjIsNyBAQCBPU1N0YXR1cyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJlbmRl
cihkb3VibGUgc2FtcGxlVGltZSwgdWludDY0X3QgaG9zdFRpbWUsIFVJbgogICAgIGlmICghbV9k
aXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jay50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybiAtMTsK
IAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2Rpc3BhdGNoVG9SZW5k
ZXJUaHJlYWRMb2NrIH07CisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9kaXNwYXRj
aFRvUmVuZGVyVGhyZWFkTG9jayB9OwogICAgIGlmICghbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFk
KQogICAgICAgICByZW5kZXJPblJlbmRlcmluZ1RoZWFkSWZQbGF5aW5nKGZyYW1lc1RvUmVuZGVy
KTsKICAgICBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVy
LmNwcAppbmRleCBmNzc1YTMyZmQ0NzgwMmVlNTM4ODU3MTYzZWQ3NzlhMTIxMzhjZDQ3Li4zMTY3
ZTZjODE1OTAyMjIyY2IwMDM5ZWM4MGE2MWMzNDkyM2IxMjFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXIuY3BwCkBAIC0xNjIsNyArMTYyLDcgQEAgdm9pZCBB
dWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyOjpwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywg
c2l6ZV90IGZyYW1lc1RvUHIKICAgICBpZiAoIW1fYWRhcHRlckxvY2sudHJ5TG9jaygpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9h
ZGFwdGVyTG9jayB9OworICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fYWRhcHRlckxv
Y2sgfTsKICAgICBmb3IgKGF1dG8mIGl0IDogbV9hZGFwdGVycykKICAgICAgICAgY29weUdTdHJl
YW1lckJ1ZmZlcnNUb0F1ZGlvQ2hhbm5lbChpdC52YWx1ZS5nZXQoKSwgYnVzLCBpdC5rZXkgLSAx
LCBmcmFtZXNUb1Byb2Nlc3MpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJj
ZUdTdHJlYW1lci5jcHAKaW5kZXggNmVmODM1MjgzZmYzNTNhOGZlMTIyN2IwNzBhMWRkZDU2ZDRh
M2Y4Zi4uOTUwYWZiNDdkNmI4NmMyNDg0NjQ4NWUwMDc5ODc5MjVjYmQ0YjExZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlv
U291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9n
c3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC00MTEsNyArNDEx
LDcgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNSZW5kZXJJdGVyYXRpb24oV2ViS2l0
V2ViQXVkaW9TcmMqIHNyYykKICAgICBpZiAoIXByaXYtPmRpc3BhdGNoVG9SZW5kZXJUaHJlYWRM
b2NrLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTG9ja2VyIGxvY2tlciB7IEFk
b3B0TG9ja1RhZyB7IH0sIHByaXYtPmRpc3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrIH07CisgICAg
TG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgcHJpdi0+ZGlzcGF0Y2hUb1JlbmRlclRocmVhZExv
Y2sgfTsKIAogICAgIGlmICghcHJpdi0+ZGlzcGF0Y2hUb1JlbmRlclRocmVhZEZ1bmN0aW9uKQog
ICAgICAgICB3ZWJLaXRXZWJBdWRpb1NyY1JlbmRlckFuZFB1c2hGcmFtZXMoR1JlZlB0cjxHc3RF
bGVtZW50PihHU1RfRUxFTUVOVF9DQVNUKHNyYykpLCBXVEZNb3ZlKCpjaGFubmVsQnVmZmVyTGlz
dCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93
Qmx1ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNw
cAppbmRleCBjMDY0Y2NlNGNhODYyYmQ0Njg5Mjg0MWZmYTViYzE5ZmI3ZjIxM2RhLi5hM2IwNTVk
MzgzNTYyZmY0YTA2NzhhMjg1Y2JiYmE3MzRiODZmNjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcApAQCAtMTM1LDggKzEzNSwxMCBAQCBw
cml2YXRlOgogICAgIHZvaWQgcHVyZ2VUaW1lckZpcmVkKCkKICAgICB7CiAgICAgICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7Ci0gICAgICAgIGlmIChhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2Nr
KGxvY2soKSkpCisgICAgICAgIGlmIChsb2NrKCkudHJ5TG9jaygpKSB7CiAgICAgICAgICAgICBj
bGVhclNjcmF0Y2hCdWZmZXIoKTsKKyAgICAgICAgICAgIGxvY2soKS51bmxvY2soKTsKKyAgICAg
ICAgfQogICAgIH0KIAogICAgIHZvaWQgY2xlYXJTY3JhdGNoQnVmZmVyKCkKQEAgLTY5NCw3ICs2
OTYsNyBAQCB2b2lkIFNoYWRvd0JsdXI6OmRyYXdSZWN0U2hhZG93V2l0aFRpbGluZyhjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29ucwogewogICAgIFJlZlB0cjxJbWFnZUJ1ZmZl
cj4gbGF5ZXJJbWFnZUJ1ZmZlcjsKICNpZiBVU0UoQ0cpCi0gICAgYXV0byBsb2NrZXIgPSB0cnlI
b2xkTG9jayhTY3JhdGNoQnVmZmVyOjpsb2NrKCkpOworICAgIGF1dG8gbG9ja2VyID0gTG9ja2Vy
PExvY2s+Ojp0cnlMb2NrKFNjcmF0Y2hCdWZmZXI6OmxvY2soKSk7CiAgICAgaWYgKGxvY2tlcikg
ewogICAgICAgICBsYXllckltYWdlQnVmZmVyID0gU2NyYXRjaEJ1ZmZlcjo6c2luZ2xldG9uKCku
Z2V0U2NyYXRjaEJ1ZmZlcih0ZW1wbGF0ZVNpemUpOwogICAgICAgICBpZiAoIWxheWVySW1hZ2VC
dWZmZXIpCkBAIC03NTQsNyArNzU2LDcgQEAgdm9pZCBTaGFkb3dCbHVyOjpkcmF3SW5zZXRTaGFk
b3dXaXRoVGlsaW5nKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb24KIHsKICAg
ICBSZWZQdHI8SW1hZ2VCdWZmZXI+IGxheWVySW1hZ2VCdWZmZXI7CiAjaWYgVVNFKENHKQotICAg
IGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2soU2NyYXRjaEJ1ZmZlcjo6bG9jaygpKTsKKyAgICBh
dXRvIGxvY2tlciA9IExvY2tlcjxMb2NrPjo6dHJ5TG9jayhTY3JhdGNoQnVmZmVyOjpsb2NrKCkp
OwogICAgIGlmIChsb2NrZXIpIHsKICAgICAgICAgbGF5ZXJJbWFnZUJ1ZmZlciA9IFNjcmF0Y2hC
dWZmZXI6OnNpbmdsZXRvbigpLmdldFNjcmF0Y2hCdWZmZXIodGVtcGxhdGVTaXplKTsKICAgICAg
ICAgaWYgKCFsYXllckltYWdlQnVmZmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDLm1tCmluZGV4IDQ3OTc2ODNiODBiYjQ5MDVhN2E4MTY4ODdhNDM1
NGQxMjk4ZWNkNDEuLjk4MzliMzcwYTcxM2I3YzFkMjNkODQ3ZmE4NjUwNWQ1YWU5NzlhYjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9B
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAg
LTk0LDcgKzk0LDcgQEAgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6On5BdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQygpCiAKIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3Zp
ZGVJbnB1dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewotICAgIC8v
IFByb3RlY3QgYWNjZXNzIHRvIG1fcmluZ0J1ZmZlciBieSB1c2luZyB0cnlIb2xkTG9jaygpLiBJ
ZiB3ZSBmYWlsZWQKKyAgICAvLyBQcm90ZWN0IGFjY2VzcyB0byBtX3JpbmdCdWZmZXIgYnkgdXNp
bmcgdHJ5TG9jaygpLiBJZiB3ZSBmYWlsZWQKICAgICAvLyB0byBhcXVpcmUsIGEgcmUtY29uZmln
dXJlIGlzIHVuZGVyd2F5LCBhbmQgbV9yaW5nQnVmZmVyIGlzIHVuc2FmZSB0byBhY2Nlc3MuCiAg
ICAgLy8gRW1pdCBzaWxlbmNlLgogICAgIGlmICghbV90YXBTdG9yYWdlKSB7CkBAIC0xMDIsOCAr
MTAyLDEzIEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dChB
dWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fdGFwU3RvcmFnZS0+bG9jayk7Ci0g
ICAgaWYgKCFsb2NrZXIgfHwgIW1fcmluZ0J1ZmZlcikgeworICAgIGlmICghbV90YXBTdG9yYWdl
LT5sb2NrLnRyeUxvY2soKSkgeworICAgICAgICBidXMtPnplcm8oKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBtX3RhcFN0b3JhZ2UtPmxv
Y2sgfTsKKworICAgIGlmICghbV9yaW5nQnVmZmVyKSB7CiAgICAgICAgIGJ1cy0+emVybygpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IDgx
Mzk5NmM3NmM2NDFiN2NhZTA0NmY1OTcxZWM3NDdjZjkxY2U5ZDcuLjE3MzA1MmE3M2I1MTYwMDY3
ZTc5NTdkMTM4MDhhZjUyZDY3ZWY0ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAg
LTI1NCw5ICsyNTQsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6ZW5xdWV1ZVZpZGVvU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbAogICAgIGlmICghbV92aXNp
YmxlKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1f
c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpCisgICAgaWYg
KCFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckxvY2sudHJ5TG9jaygpKQogICAgICAgICByZXR1
cm47CisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9zYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJMb2NrIH07CiAKICAgICBpZiAoIW1fY2FuRW5xdWV1ZURpc3BsYXlMYXllciB8fCAhbV9z
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgfHwgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPmRp
ZEZhaWwoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAKaW5kZXggNWRjZWExYTQwODZlMjBlMTU3ZWJi
Y2Q3MTliYzM2NjA4OTA0YjYwYy4uZTNhMTI4OTExZWQ2YzQ3NTViZDRlZjc5YTMwOWYxNDA5OTg0
M2I3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29j
b2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlclVuaXQuY3BwCkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlclVuaXQ6OnVwZGF0ZVJlbmRlclNvdXJjZXNJZk5lY2Vzc2FyeSgpCiAgICAgaWYg
KCFtX3BlbmRpbmdSZW5kZXJTb3VyY2VzTG9jay50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX3BlbmRpbmdSZW5kZXJT
b3VyY2VzTG9jayB9OworICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fcGVuZGluZ1Jl
bmRlclNvdXJjZXNMb2NrIH07CiAgICAgaWYgKCFtX2hhc1BlbmRpbmdSZW5kZXJTb3VyY2VzKQog
ICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29h
Lm1tCmluZGV4IDU3NmY0NGU5MmM1OGI5M2MwYjQwZDY2NDk5ODBiYzdlOTBhNWVhZmIuLjAxOTEw
N2U4ZmE2NjQwNGI1MDliZDFmNDU2OTcwOTgyYmQ2Y2ZhYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1
ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5tbQpAQCAtNjUsOCArNjUsMTIgQEAgdm9pZCBXZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQ29jb2E6OnNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50
KiBjbGllbnQpCiAKIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNvY29hOjpwcm92aWRlSW5w
dXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsKLSAgICBhdXRvIGxv
Y2tlciA9IHRyeUhvbGRMb2NrKG1fbG9jayk7Ci0gICAgaWYgKCFsb2NrZXIgfHwgIW1fZGF0YVNv
dXJjZSB8fCAhbV9hdWRpb0J1ZmZlckxpc3QpIHsKKyAgICBpZiAoIW1fbG9jay50cnlMb2NrKCkp
IHsKKyAgICAgICAgYnVzLT56ZXJvKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgTG9j
a2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9sb2NrIH07CisgICAgaWYgKCFtX2RhdGFTb3VyY2Ug
fHwgIW1fYXVkaW9CdWZmZXJMaXN0KSB7CiAgICAgICAgIGJ1cy0+emVybygpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJP
cldvcmtsZXRUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmts
ZXRUaHJlYWQuY3BwCmluZGV4IDQ3N2Q5NjcyYzcxMmI0NmZjNGViZDdhMjg5N2U3N2ViMTU4MDg0
ODQuLjg1YjNlNDAyN2I2ZWRjYzc5OTRkZDgyYzkzNTkxOWM0YjY0NTE2ZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0VGhyZWFkLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFRocmVhZC5jcHAKQEAgLTIwNyw4
ICsyMDcsNyBAQCB2b2lkIFdvcmtlck9yV29ya2xldFRocmVhZDo6c3RvcChGdW5jdGlvbjx2b2lk
KCk+JiYgc3RvcHBlZENhbGxiYWNrKQogICAgIC8vIE11dGV4IHByb3RlY3Rpb24gaXMgbmVjZXNz
YXJ5IHRvIGVuc3VyZSB0aGF0IG1fd29ya2VyR2xvYmFsU2NvcGUgaXNuJ3QgY2hhbmdlZCBieQog
ICAgIC8vIFdvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKCkgd2hpbGUgd2UncmUgYWNjZXNzaW5n
IGl0LiBOb3RlIGFsc28gdGhhdCBzdG9wKCkgY2FuCiAgICAgLy8gYmUgY2FsbGVkIGJlZm9yZSBt
X3dvcmtlckdsb2JhbFNjb3BlIGlzIGZ1bGx5IGNyZWF0ZWQuCi0gICAgYXV0byBsb2NrZXIgPSB0
cnlIb2xkTG9jayhtX3RocmVhZENyZWF0aW9uQW5kR2xvYmFsU2NvcGVMb2NrKTsKLSAgICBpZiAo
IWxvY2tlcikgeworICAgIGlmICghbV90aHJlYWRDcmVhdGlvbkFuZEdsb2JhbFNjb3BlTG9jay50
cnlMb2NrKCkpIHsKICAgICAgICAgLy8gVGhlIHRocmVhZCBpcyBzdGlsbCBzdGFydGluZywgc3Bp
biB0aGUgcnVubG9vcCBhbmQgdHJ5IGFnYWluIHRvIGF2b2lkIGRlYWRsb2NrcyBpZiB0aGUgd29y
a2VyIHRocmVhZAogICAgICAgICAvLyBuZWVkcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBtYWluIHRo
cmVhZCBkdXJpbmcgc3RhcnR1cC4KICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgc3Rv
cHBlZENhbGxiYWNrID0gV1RGTW92ZShzdG9wcGVkQ2FsbGJhY2spXSgpIG11dGFibGUgewpAQCAt
MjE2LDYgKzIxNSw3IEBAIHZvaWQgV29ya2VyT3JXb3JrbGV0VGhyZWFkOjpzdG9wKEZ1bmN0aW9u
PHZvaWQoKT4mJiBzdG9wcGVkQ2FsbGJhY2spCiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47
CiAgICAgfQorICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fdGhyZWFkQ3JlYXRpb25B
bmRHbG9iYWxTY29wZUxvY2sgfTsKIAogICAgIC8vIElmIHRoZSB0aHJlYWQgaXMgc3VzcGVuZGVk
LCByZXN1bWUgaXQgbm93IHNvIHRoYXQgd2UgY2FuIGRpc3BhdGNoIHRoZSBjbGVhbnVwIHRhc2tz
IGJlbG93LgogICAgIGlmIChtX2lzU3VzcGVuZGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKaW5kZXggZjQ0YzQx
ODkyYjM4ZjViYWQzMTk2ZDY5YTFjMTMyNGNlOTNiNWVjMy4uMjhlOWM2OTgyYWM1NDY5ZWU5NWZh
Yjg2ZGY3NmU2Y2YzOGU5MjRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0zMjcsNyArMzI3LDcgQEAg
dm9pZCBMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRlZERlY29kaW5nKFJUQ0RlY29kZXJJZGVudGlm
aWVyIGRlY29kZXJJZGVudGlmaWVyLAogICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlZEltYWdlQ2Fs
bGJhY2tMb2NrLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTG9ja2VyIGxvY2tl
ciB7IEFkb3B0TG9ja1RhZyB7IH0sIGRlY29kZXItPmRlY29kZWRJbWFnZUNhbGxiYWNrTG9jayB9
OworICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIGRlY29kZXItPmRlY29kZWRJbWFnZUNh
bGxiYWNrTG9jayB9OwogCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVkSW1hZ2VDYWxsYmFjaykK
ICAgICAgICAgcmV0dXJuOwpAQCAtNDk1LDcgKzQ5NSw3IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNz
Ojpjb21wbGV0ZWRFbmNvZGluZyhSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBJUEM6
OkRhCiAgICAgaWYgKCFlbmNvZGVyLT5lbmNvZGVkSW1hZ2VDYWxsYmFja0xvY2sudHJ5TG9jaygp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsg
fSwgZW5jb2Rlci0+ZW5jb2RlZEltYWdlQ2FsbGJhY2tMb2NrIH07CisgICAgTG9ja2VyIGxvY2tl
ciB7IEFkb3B0TG9jaywgZW5jb2Rlci0+ZW5jb2RlZEltYWdlQ2FsbGJhY2tMb2NrIH07CiAKICAg
ICBpZiAoIWVuY29kZXItPmVuY29kZWRJbWFnZUNhbGxiYWNrKQogICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkTG9ja1Rlc3Qu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tlZExvY2tUZXN0LmNwcApp
bmRleCBkODJlZTFhMmU1YmRlMGRjYWJmMzVjZTlkYzczMTEyMTEwMjI2MjRhLi44MTA2ZDRlYzcw
YWVhOWE0ZDM2NjMwYzc2MzQ2YWE5MzJjMzcxOTczIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkTG9ja1Rlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRMb2NrVGVzdC5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgcHVi
bGljOgogICAgIHsKICAgICAgICAgaWYgKCFtX290aGVyTG9jay50cnlMb2NrKCkpCiAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIExvY2tlciBob2xkTG9jayB7IEFkb3B0TG9ja1RhZyB7IH0s
IG1fb3RoZXJMb2NrIH07CisgICAgICAgIExvY2tlciBob2xkTG9jayB7IEFkb3B0TG9jaywgbV9v
dGhlckxvY2sgfTsKICAgICAgICAgbV9vdGhlclZhbHVlID0gdmFsdWU7CiAgICAgfQogICAgIC8v
IFRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gbWFudWFsbHkgY2hlY2sgdGhhdCBjb21waWxl
IGZhaWxzLgo=
</data>
<flag name="review"
          id="450640"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>