<?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>201400</bug_id>
          
          <creation_ts>2019-09-02 06:56:37 -0700</creation_ts>
          <short_desc>Move checkProcessLocalPortForActivity from provider to registry</short_desc>
          <delta_ts>2019-09-09 01:51:21 -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>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>201299</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>pvollan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1567199</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-09-02 06:56:37 -0700</bug_when>
    <thetext>This function is only used in the process managing the registry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567200</commentid>
    <comment_count>1</comment_count>
      <attachid>377851</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-09-02 06:59:58 -0700</bug_when>
    <thetext>Created attachment 377851
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567203</commentid>
    <comment_count>2</comment_count>
      <attachid>377852</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-09-02 07:49:19 -0700</bug_when>
    <thetext>Created attachment 377852
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567739</commentid>
    <comment_count>3</comment_count>
      <attachid>377978</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-09-04 07:08:50 -0700</bug_when>
    <thetext>Created attachment 377978
Rebasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567748</commentid>
    <comment_count>4</comment_count>
      <attachid>377980</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-09-04 07:36:42 -0700</bug_when>
    <thetext>Created attachment 377980
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567822</commentid>
    <comment_count>5</comment_count>
      <attachid>377980</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-09-04 12:20:00 -0700</bug_when>
    <thetext>Comment on attachment 377980
Patch

Will fix win</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568038</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-09-05 00:11:35 -0700</bug_when>
    <thetext>Win error seems to be that it tries to use MessagePortChannelRegistry copy constructor in MessagePortChannelProviderImpl.cpp.
This constructor is not available and other compilers use the move constructor.
Brent, Per Arne, do you know what the issue might be on the win bot?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568125</commentid>
    <comment_count>7</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-09-05 08:24:04 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #6)
&gt; Win error seems to be that it tries to use MessagePortChannelRegistry copy
&gt; constructor in MessagePortChannelProviderImpl.cpp.
&gt; This constructor is not available and other compilers use the move
&gt; constructor.
&gt; Brent, Per Arne, do you know what the issue might be on the win bot?

WinCairo seems to build successfully, maybe VS needs to be updated?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569073</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-09-08 23:55:50 -0700</bug_when>
    <thetext>&gt; WinCairo seems to build successfully, maybe VS needs to be updated?

Maybe copy elision is different with WinCairo.
I&apos;ll workaround that for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569074</commentid>
    <comment_count>9</comment_count>
      <attachid>378349</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-09-09 00:09:08 -0700</bug_when>
    <thetext>Created attachment 378349
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569094</commentid>
    <comment_count>10</comment_count>
      <attachid>378349</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-09 01:50:57 -0700</bug_when>
    <thetext>Comment on attachment 378349
Patch for landing

Clearing flags on attachment: 378349

Committed r249637: &lt;https://trac.webkit.org/changeset/249637&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569095</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-09 01:50:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569096</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-09 01:51:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/55175067&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569097</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-09 01:51:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/55175069&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377851</attachid>
            <date>2019-09-02 06:59:58 -0700</date>
            <delta_ts>2019-09-04 07:08:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201400-20190902155957.patch</filename>
            <type>text/plain</type>
            <size>31229</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWVlZTU4MTAyMWI2ZDhh
YzAxYWE3NGQ0ZmEzYWZlOTk2MDQ2ZjY2Mi4uZDBlNjQ0ZjNjZDk0MDQ0NzNkODc0NjBjZDg5MjQ3
MTkxYjM2OGRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE5LTA5LTAyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIGNoZWNrUHJvY2Vz
c0xvY2FsUG9ydEZvckFjdGl2aXR5IGZyb20gcHJvdmlkZXIgdG8gcmVnaXN0cnkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTQwMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB0aGUgcmVnaXN0
cnkgdG8gdGFrZSBhIGNhbGxiYWNrIHRoYXQgaXMgdXNlZCB0byBpbXBsZW1lbnQgY2hlY2tQcm9j
ZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkuCisgICAgICAgIFRoaXMgYWxsb3dzIFdLMSBhbmQgV0sy
IHRvIGhhdmUgdGhlaXIgb3duIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgIE1ha2UgdGhlIGNh
bGwgdG8gY2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkgZGlyZWN0bHkgb24gdGhlIHJl
Z2lzdHJ5LgorICAgICAgICBSZW1vdmUgdW5uZWVkZWQgd29ya2VyIGNoZWNrUHJvY2Vzc0xvY2Fs
UG9ydEZvckFjdGl2aXR5IG1ldGhvZC4KKyAgICAgICAgTm8gY2hhbmdlIG9mIGJlaGF2aW9yLgor
CisgICAgICAgICogZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsOjpjaGVja1JlbW90ZVBvcnRGb3JBY3Rp
dml0eSk6CisgICAgICAgICogZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlci5oOgorICAgICAgICAqIGRvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1lc3NhZ2VQb3J0Q2hhbm5l
bFJlZ2lzdHJ5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
SW1wbDo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVySW1wbDo6Y2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9y
QWN0aXZpdHkpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBv
cnRDaGFubmVsUHJvdmlkZXJJbXBsLmg6CisgICAgICAgICogZG9tL21lc3NhZ2Vwb3J0cy9NZXNz
YWdlUG9ydENoYW5uZWxSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9y
dENoYW5uZWxSZWdpc3RyeTo6TWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkpOgorICAgICAgICAo
V2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnk6OmNoZWNrUHJvY2Vzc0xvY2FsUG9y
dEZvckFjdGl2aXR5KToKKyAgICAgICAgKiBkb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hh
bm5lbFJlZ2lzdHJ5Lmg6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxSZWdp
c3RyeTo6cHJvdmlkZXIpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9tZXNzYWdlcG9ydHMvV29y
a2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OmNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFj
dGl2aXR5KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vbWVzc2FnZXBvcnRzL1dvcmtlck1lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg6CisKIDIwMTktMDktMDEgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBXb3JrZXJNZXNzYWdlUG9ydENo
YW5uZWxSZWdpc3RyeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzNGQ1NDFlOTg1ZGM2YWQ1NWE2NGEyODhjZWQ5NmJm
YzZlNWNiZTUxLi5hYjc5M2JmMzBiZDdkMjdjZmE2NDZlMTVjY2ZkNGRlYTJmNTFjMGQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE5LTA5LTAyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIGNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2
aXR5IGZyb20gcHJvdmlkZXIgdG8gcmVnaXN0cnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTQwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCByZWdpc3RyeSBjYWxsYmFjayBhdCBOZXR3
b3JrUHJvY2VzcyBsZWx2ZS4KKyAgICAgICAgUmVtb3ZlIE5ldHdvcmtNZXNzYWdlUG9ydENoYW5u
ZWxQcm92aWRlciBzaW5jZSBvbmx5IGEgcmVnaXN0cnkgaXMgbm93IG5lZWRlZC4KKworICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIu
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtNZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlci5oOiBSZW1vdmVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Y3JlYXRlTWVzc2FnZVBvcnRDaGFu
bmVsUmVnaXN0cnkpOgorICAgICAgICAoV2ViS2l0OjptX21lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lz
dHJ5KToKKyAgICAgICAgKFdlYktpdDo6bV9tZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcik6IERl
bGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Om1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5KToK
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVzc2FnZVBv
cnRDaGFubmVsUHJvdmlkZXI6OmNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lc3NhZ2VQb3J0
Q2hhbm5lbFByb3ZpZGVyLmg6CisKIDIwMTktMDktMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgTWVzc2FnZVJlZ2lzdHJ5IHRvIE5ldHdvcmtQcm9j
ZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQ
b3J0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQ
b3J0Q2hhbm5lbC5jcHAKaW5kZXggMDkxNWVhZDlmZmI4YzE2ZGM4YjdiMDlkMmUyNTA3ODA0ZDhi
ZDRjNy4uY2U2ZThhN2NhZWMzZDIyYzE5MmJhOWExZDU1MWMzZTBiMjQzZjgzMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVs
LmNwcApAQCAtMjIxLDcgKzIyMSw3IEBAIHZvaWQgTWVzc2FnZVBvcnRDaGFubmVsOjpjaGVja1Jl
bW90ZVBvcnRGb3JBY3Rpdml0eShjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImCiAgICAgICAg
IGNhbGxiYWNrKGhhc0FjdGl2aXR5KTsKICAgICB9OwogCi0gICAgbV9yZWdpc3RyeS5wcm92aWRl
cigpLmNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KHJlbW90ZVBvcnQsICptX3Byb2Nl
c3Nlc1tpXSwgV1RGTW92ZShvdXRlckNhbGxiYWNrKSk7CisgICAgbV9yZWdpc3RyeS5jaGVja1By
b2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eShyZW1vdGVQb3J0LCAqbV9wcm9jZXNzZXNbaV0sIFdU
Rk1vdmUob3V0ZXJDYWxsYmFjaykpOwogfQogCiBib29sIE1lc3NhZ2VQb3J0Q2hhbm5lbDo6aGFz
QW55TWVzc2FnZXNQZW5kaW5nT3JJbkZsaWdodCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
LmgKaW5kZXggY2ZmM2YzNTk3NTNjODJjMmNiNmU1Yzk2ZjBjZmMxMTZkZTc5MzViNi4uMGEzNzEz
ZTNmNzFmN2I2YTg1NmZiYjM3MGVhNDhhMGE1YzRmOGM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlk
ZXIuaApAQCAtNTksOSArNTksNiBAQCBwdWJsaWM6CiAgICAgfTsKICAgICB2aXJ0dWFsIHZvaWQg
Y2hlY2tSZW1vdGVQb3J0Rm9yQWN0aXZpdHkoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBy
ZW1vdGVUYXJnZXQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYmIGNhbGxi
YWNrKSA9IDA7CiAKLSAgICAvLyBPcGVyYXRpb25zIHRoYXQgdGhlIGNvb3JkaW5hdGluZyBwcm9j
ZXNzIHBlcmZvcm1zIChlLmcuIHRoZSBVSVByb2Nlc3MpCi0gICAgdmlydHVhbCB2b2lkIGNoZWNr
UHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYs
IFByb2Nlc3NJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc0FjdGl2aXR5KT4m
JikgPSAwOwotCiBwcml2YXRlOgogCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlckltcGwuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlckltcGwu
Y3BwCmluZGV4IGUxNjU2ZTI3MjAwOTE2ZmFjZGU1ODA3YzllZGFhMDMyMGMwNDM1ZGQuLjhjZGJk
NTBhYzMzOGRmOWVmNWMwNjllNWZlMjRjNmJkM2Y3YWIzY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVySW1wbC5jcHAKQEAgLTMyLDggKzMyLDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorc3RhdGljIGlubGluZSBNZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeSBjcmVhdGVNZXNz
YWdlUG9ydENoYW5uZWxSZWdpc3RyeSgpCit7CisgICAgcmV0dXJuIE1lc3NhZ2VQb3J0Q2hhbm5l
bFJlZ2lzdHJ5IHsgW10oYXV0byYgbWVzc2FnZVBvcnRJZGVudGlmaWVyLCBhdXRvLCBhdXRvJiYg
Y2FsbGJhY2spIHsKKyAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICAgICAgY2Fs
bGJhY2soTWVzc2FnZVBvcnQ6OmlzRXhpc3RpbmdNZXNzYWdlUG9ydExvY2FsbHlSZWFjaGFibGUo
bWVzc2FnZVBvcnRJZGVudGlmaWVyKSA/IE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNB
Y3Rpdml0eTo6WWVzIDogTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5OjpO
byk7CisgICAgfSB9OworfQorCiBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlckltcGw6Ok1lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVySW1wbCgpCi0gICAgOiBtX3JlZ2lzdHJ5KCp0aGlzKQorICAg
IDogbV9yZWdpc3RyeShjcmVhdGVNZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeSgpKQogewogfQog
CkBAIC0xMTEsMTEgKzExOSw0IEBAIHZvaWQgTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBs
OjpjaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShjb25zdCBNZXNzYWdlUG9yCiAgICAgfSk7CiB9
CiAKLXZvaWQgTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBsOjpjaGVja1Byb2Nlc3NMb2Nh
bFBvcnRGb3JBY3Rpdml0eShjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImIGlkZW50aWZpZXIs
IFByb2Nlc3NJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc0FjdGl2aXR5KT4m
JiBjYWxsYmFjaykKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotCi0gICAgY2FsbGJh
Y2soTWVzc2FnZVBvcnQ6OmlzRXhpc3RpbmdNZXNzYWdlUG9ydExvY2FsbHlSZWFjaGFibGUoaWRl
bnRpZmllcikgPyBIYXNBY3Rpdml0eTo6WWVzIDogSGFzQWN0aXZpdHk6Ok5vKTsKLX0KLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL21lc3Nh
Z2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlckltcGwuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBsLmgKaW5kZXgg
NDhjYjU0ODcxMDIzYTc1NTU4NjE3YTM2MTU3NWNkMTI4YWExODExYi4uNjY4MDY5YWJjNDFjMTRk
ZWZlYzc3NzFhZDVkYTQ0YzQyMWFkNmRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlckltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVySW1w
bC5oCkBAIC00NCw4ICs0NCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCB0YWtlQWxsTWVzc2FnZXNG
b3JQb3J0KGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoVmVjdG9yPE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzPiYmLCBGdW5jdGlvbjx2b2lkKCk+JiYp
PiYmKSBmaW5hbDsKICAgICB2b2lkIGNoZWNrUmVtb3RlUG9ydEZvckFjdGl2aXR5KGNvbnN0IE1l
c3NhZ2VQb3J0SWRlbnRpZmllciYgcmVtb3RlVGFyZ2V0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEhhc0FjdGl2aXR5KT4mJiBjYWxsYmFjaykgZmluYWw7CiAKLSAgICB2b2lkIGNoZWNrUHJvY2Vz
c0xvY2FsUG9ydEZvckFjdGl2aXR5KGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIFByb2Nl
c3NJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc0FjdGl2aXR5KT4mJikgZmlu
YWw7Ci0KICAgICB2b2lkIHBlcmZvcm1BY3Rpb25Pbk1haW5UaHJlYWQoRnVuY3Rpb248dm9pZCgp
PiYmKTsKIAogICAgIE1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5IG1fcmVnaXN0cnk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5l
bFJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBv
cnRDaGFubmVsUmVnaXN0cnkuY3BwCmluZGV4IGUwZTYwZjJlOTcwN2MzMmYwYzg5NzVkYTNkYjVm
ZWRmZDc3NzlhZTAuLjA5OTIyZjQyOTJiZmY0MzU5M2MyZDk3MjQ4MGE2NDNjYjg1NDg2ZjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFu
bmVsUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVz
c2FnZVBvcnRDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC0zMiw4ICszMiw4IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnk6Ok1lc3NhZ2VQb3J0Q2hh
bm5lbFJlZ2lzdHJ5KE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyJiBwcm92aWRlcikKLSAgICA6
IG1fcHJvdmlkZXIocHJvdmlkZXIpCitNZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeTo6TWVzc2Fn
ZVBvcnRDaGFubmVsUmVnaXN0cnkoQ2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHlDYWxs
YmFjayYmIGNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5Q2FsbGJhY2spCisgICAgOiBt
X2NoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5Q2FsbGJhY2soV1RGTW92ZShjaGVja1By
b2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eUNhbGxiYWNrKSkKIHsKIH0KIApAQCAtMTc4LDQgKzE3
OCw5IEBAIE1lc3NhZ2VQb3J0Q2hhbm5lbCogTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnk6OmV4
aXN0aW5nQ2hhbm5lbENvbnRhaW5pbmdQb3J0KGNvCiAgICAgcmV0dXJuIG1fb3BlbkNoYW5uZWxz
LmdldChwb3J0KTsKIH0KIAordm9pZCBNZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeTo6Y2hlY2tQ
cm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBt
ZXNzYWdlUG9ydElkZW50aWZpZXIsIFByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNB
Y3Rpdml0eSk+JiYgY2FsbGJhY2spCit7CisgICAgbV9jaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JB
Y3Rpdml0eUNhbGxiYWNrKG1lc3NhZ2VQb3J0SWRlbnRpZmllciwgcHJvY2Vzc0lkZW50aWZpZXIs
IFdURk1vdmUoY2FsbGJhY2spKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxS
ZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENo
YW5uZWxSZWdpc3RyeS5oCmluZGV4IDZiY2EyODJlZGNhOWEzMDA3MjkyNzViOTY0OWE0YzUzYTRh
ZGYxYzYuLmVmNDQxZGQyMzY5MjQyY2M3MTNjMzM1ZTdlMjJiZTY0ZjZkMzMyYWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsUmVn
aXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0
Q2hhbm5lbFJlZ2lzdHJ5LmgKQEAgLTM1LDcgKzM1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBNZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeSB7CiBwdWJsaWM6Ci0gICAgV0VCQ09S
RV9FWFBPUlQgTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkoTWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXImKTsKKyAgICB1c2luZyBDaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eUNhbGxi
YWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXIm
LCBQcm9jZXNzSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNZXNzYWdlUG9ydENo
YW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHkpPiYmKT47CisgICAgV0VCQ09SRV9FWFBPUlQgZXhw
bGljaXQgTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkoQ2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9y
QWN0aXZpdHlDYWxsYmFjayYmKTsKKwogICAgIFdFQkNPUkVfRVhQT1JUIH5NZXNzYWdlUG9ydENo
YW5uZWxSZWdpc3RyeSgpOwogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQ3JlYXRl
TWVzc2FnZVBvcnRDaGFubmVsKGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYgcG9ydDEsIGNv
bnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYgcG9ydDIpOwpAQCAtNTEsMTIgKzUzLDExIEBAIHB1
YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1lc3NhZ2VQb3J0Q2hhbm5lbENyZWF0ZWQo
TWVzc2FnZVBvcnRDaGFubmVsJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtZXNzYWdlUG9y
dENoYW5uZWxEZXN0cm95ZWQoTWVzc2FnZVBvcnRDaGFubmVsJik7CiAKLSAgICBNZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlciYgcHJvdmlkZXIoKSB7IHJldHVybiBtX3Byb3ZpZGVyOyB9CisgICAg
dm9pZCBjaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eShjb25zdCBNZXNzYWdlUG9ydElk
ZW50aWZpZXImLCBQcm9jZXNzSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNZXNz
YWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHkpPiYmKTsKIAogcHJpdmF0ZToKICAg
ICBIYXNoTWFwPE1lc3NhZ2VQb3J0SWRlbnRpZmllciwgTWVzc2FnZVBvcnRDaGFubmVsKj4gbV9v
cGVuQ2hhbm5lbHM7Ci0gICAgTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXImIG1fcHJvdmlkZXI7
Ci0KKyAgICBDaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eUNhbGxiYWNrIG1fY2hlY2tQ
cm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHlDYWxsYmFjazsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvV29y
a2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL21l
c3NhZ2Vwb3J0cy9Xb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHAKaW5kZXggNmEw
MTc1OTExMzI1NzBjNDc5YzE1MDQyYjkwNzgyOGIwZWY4NDAwZC4uN2EwYTgxY2RhYTdhMWFlZWMz
ZGZmNTllYjEwYWNjN2VjNmMxYTNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL21l
c3NhZ2Vwb3J0cy9Xb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9Xb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlci5jcHAKQEAgLTEyMCwxOSArMTIwLDQgQEAgdm9pZCBXb3JrZXJNZXNzYWdlUG9ydENoYW5u
ZWxQcm92aWRlcjo6Y2hlY2tSZW1vdGVQb3J0Rm9yQWN0aXZpdHkoY29uc3QgTWVzc2FnZVAKICAg
ICB9KTsKIH0KIAotdm9pZCBXb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6Y2hlY2tQ
cm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBp
ZGVudGlmaWVyLCBQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChIYXNBY3Rpdml0eSk+JiYgY2FsbGJhY2spCi17Ci0gICAgdWludDY0X3Qg
Y2FsbGJhY2tJZGVudGlmaWVyID0gKyttX2xhc3RDYWxsYmFja0lkZW50aWZpZXI7Ci0gICAgbV9h
Y3Rpdml0eUNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNr
KSk7Ci0KLSAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3b3JrZXJUaHJlYWQgPSBtYWtlUmVm
KG1fc2NvcGUudGhyZWFkKCkpLCBjYWxsYmFja0lkZW50aWZpZXIsIGlkZW50aWZpZXIsIHByb2Nl
c3NJZGVudGlmaWVyXSgpIG11dGFibGUgewotICAgICAgICBNZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlcjo6c2luZ2xldG9uKCkuY2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkoaWRlbnRp
ZmllciwgcHJvY2Vzc0lkZW50aWZpZXIsIFt0aGlzLCB3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdv
cmtlclRocmVhZCksIGNhbGxiYWNrSWRlbnRpZmllcl0oYXV0byBoYXNBY3Rpdml0eSkgewotICAg
ICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFt0aGlzLCBj
YWxsYmFja0lkZW50aWZpZXIsIGhhc0FjdGl2aXR5XShhdXRvJiBzY29wZSkgbXV0YWJsZSB7Ci0g
ICAgICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChzY29wZSwgdGhpcyA9PSAmZG93bmNhc3Q8V29y
a2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5tZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcigpKTsKLSAg
ICAgICAgICAgICAgICBtX2FjdGl2aXR5Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVy
KShoYXNBY3Rpdml0eSk7Ci0gICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9k
ZSgpKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvV29ya2VyTWVzc2Fn
ZVBvcnRDaGFubmVsUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMv
V29ya2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaAppbmRleCA4N2QwMjBhZjRjYzI5NDRk
MDJhN2ZkMWU3NDU1N2VmYjUyNDlkMWVlLi5jNzlmMzRmZGZmODc0OThiZjYyZTQ4OWEzM2U3ZmQz
MTRkYzA0NGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL1dv
cmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L21lc3NhZ2Vwb3J0cy9Xb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oCkBAIC00OSw4
ICs0OSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCB0YWtlQWxsTWVzc2FnZXNGb3JQb3J0KGNvbnN0
IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPE1l
c3NhZ2VXaXRoTWVzc2FnZVBvcnRzPiYmLCBGdW5jdGlvbjx2b2lkKCk+JiYpPiYmKSBmaW5hbDsK
ICAgICB2b2lkIGNoZWNrUmVtb3RlUG9ydEZvckFjdGl2aXR5KGNvbnN0IE1lc3NhZ2VQb3J0SWRl
bnRpZmllciYgcmVtb3RlVGFyZ2V0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc0FjdGl2aXR5
KT4mJiBjYWxsYmFjaykgZmluYWw7CiAKLSAgICB2b2lkIGNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZv
ckFjdGl2aXR5KGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIFByb2Nlc3NJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc0FjdGl2aXR5KT4mJikgZmluYWw7Ci0KICAgICBX
b3JrZXJHbG9iYWxTY29wZSYgbV9zY29wZTsKIAogICAgIHVpbnQ2NF90IG1fbGFzdENhbGxiYWNr
SWRlbnRpZmllciB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggOTRmM2Iw
YjAwNzI2ZTZlOTczMTQyN2M3ZjNiYmRlNDIxZWZiNmJlMC4uZGYwN2UwNWU3OWRhYzEyYTZhZjZi
ZGQ1ZjRhN2U3YjBiYjI3NTk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTMx
LDcgKzMxLDYgQEAKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTmV0d29y
a0NhY2hlLmgiCiAjaW5jbHVkZSAiTmV0d29ya01ETlNSZWdpc3Rlck1lc3NhZ2VzLmgiCi0jaW5j
bHVkZSAiTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdl
cy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3Zp
ZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya01lc3NhZ2VQb3J0
Q2hhbm5lbFByb3ZpZGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjA5NmMx
MTY0NzM4YThkZDU5Y2YzNDAwOTA3YmIxOGIyMjk5NWNmOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5
NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgiCi0KLSNpbmNsdWRlICJOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgotI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgi
Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLU5ldHdv
cmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6TmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFBy
b3ZpZGVyKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcykKLSAgICA6IG1fbmV0d29ya1By
b2Nlc3MobmV0d29ya1Byb2Nlc3MpCi0gICAgLCBtX3JlZ2lzdHJ5KCp0aGlzKQotewotfQotCi12
b2lkIE5ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6Y3JlYXRlTmV3TWVzc2FnZVBv
cnRDaGFubmVsKGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIGNvbnN0IE1lc3NhZ2VQb3J0
SWRlbnRpZmllciYpCi17Ci0gICAgLy8gU2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBpbiB0aGUgVUkg
cHJvY2VzcyBwcm92aWRlci4KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotdm9pZCBO
ZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OmVudGFuZ2xlTG9jYWxQb3J0SW5UaGlz
UHJvY2Vzc1RvUmVtb3RlKGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIGNvbnN0IE1lc3Nh
Z2VQb3J0SWRlbnRpZmllciYpCi17Ci0gICAgLy8gU2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBpbiB0
aGUgVUkgcHJvY2VzcyBwcm92aWRlci4KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQot
dm9pZCBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Om1lc3NhZ2VQb3J0RGlzZW50
YW5nbGVkKGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYpCi17Ci0gICAgLy8gU2hvdWxkIG5l
dmVyIGJlIGNhbGxlZCBpbiB0aGUgVUkgcHJvY2VzcyBwcm92aWRlci4KLSAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLX0KLQotdm9pZCBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6
Om1lc3NhZ2VQb3J0Q2xvc2VkKGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYpCi17Ci0gICAg
Ly8gU2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBpbiB0aGUgVUkgcHJvY2VzcyBwcm92aWRlci4KLSAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotdm9pZCBOZXR3b3JrTWVzc2FnZVBvcnRDaGFu
bmVsUHJvdmlkZXI6OnRha2VBbGxNZXNzYWdlc0ZvclBvcnQoY29uc3QgTWVzc2FnZVBvcnRJZGVu
dGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8TWVzc2FnZVdpdGhNZXNzYWdl
UG9ydHM+JiYsIEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYpCi17Ci0gICAgLy8gU2hvdWxkIG5ldmVy
IGJlIGNhbGxlZCBpbiB0aGUgVUkgcHJvY2VzcyBwcm92aWRlci4KLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLX0KLQotdm9pZCBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnBv
c3RNZXNzYWdlVG9SZW1vdGUoY29uc3QgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmLCBjb25zdCBN
ZXNzYWdlUG9ydElkZW50aWZpZXImKQotewotICAgIC8vIFNob3VsZCBuZXZlciBiZSBjYWxsZWQg
aW4gdGhlIFVJIHByb2Nlc3MgcHJvdmlkZXIuCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19
Ci0KLXZvaWQgTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpjaGVja1JlbW90ZVBv
cnRGb3JBY3Rpdml0eShjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEhhc0FjdGl2aXR5KT4mJikKLXsKLSAgICAvLyBTaG91bGQgbmV2ZXIgYmUgY2Fs
bGVkIGluIHRoZSBVSSBwcm9jZXNzIHByb3ZpZGVyLgotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotfQotCi12b2lkIE5ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6Y2hlY2tQcm9j
ZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBwb3J0
LCBQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChIYXNBY3Rpdml0eSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgYXV0byogY29u
bmVjdGlvbiA9IG1fbmV0d29ya1Byb2Nlc3Mud2ViUHJvY2Vzc0Nvbm5lY3Rpb24ocHJvY2Vzc0lk
ZW50aWZpZXIpOwotICAgIGlmICghY29ubmVjdGlvbikgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihIYXNBY3Rpdml0eTo6Tm8pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY29u
bmVjdGlvbi0+Y2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkocG9ydCwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtNZXNzYWdl
UG9ydENoYW5uZWxQcm92aWRlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOTJl
ZTBiMzRkYWNlOTBlNWFhNGY2NzMxMDY1MDIyZjM0ZGQ2ZjQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1
NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPFdl
YkNvcmUvTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL01l
c3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5Lmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFz
cyBOZXR3b3JrUHJvY2VzczsKLQotY2xhc3MgTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3Zp
ZGVyIDogcHVibGljIFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyIHsKLXB1Ymxp
YzoKLSAgICBleHBsaWNpdCBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIoTmV0d29y
a1Byb2Nlc3MmKTsKLSAgICBXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeSYgcmVn
aXN0cnkoKSB7IHJldHVybiBtX3JlZ2lzdHJ5OyB9Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBjcmVh
dGVOZXdNZXNzYWdlUG9ydENoYW5uZWwoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlm
aWVyJiBsb2NhbCwgY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiByZW1vdGUp
IGZpbmFsOwotICAgIHZvaWQgZW50YW5nbGVMb2NhbFBvcnRJblRoaXNQcm9jZXNzVG9SZW1vdGUo
Y29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiBsb2NhbCwgY29uc3QgV2ViQ29y
ZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiByZW1vdGUpIGZpbmFsOwotICAgIHZvaWQgbWVzc2Fn
ZVBvcnREaXNlbnRhbmdsZWQoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiBs
b2NhbCkgZmluYWw7Ci0gICAgdm9pZCBtZXNzYWdlUG9ydENsb3NlZChjb25zdCBXZWJDb3JlOjpN
ZXNzYWdlUG9ydElkZW50aWZpZXImIGxvY2FsKSBmaW5hbDsKLSAgICB2b2lkIHRha2VBbGxNZXNz
YWdlc0ZvclBvcnQoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM+
JiYsIEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYpIGZpbmFsOwotICAgIHZvaWQgcG9zdE1lc3NhZ2VU
b1JlbW90ZShjb25zdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYsIGNvbnN0IFdl
YkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYgcmVtb3RlVGFyZ2V0KSBmaW5hbDsKLQotICAg
IHZvaWQgY2hlY2tSZW1vdGVQb3J0Rm9yQWN0aXZpdHkoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBv
cnRJZGVudGlmaWVyJiByZW1vdGVUYXJnZXQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzQWN0
aXZpdHkpPiYmIGNhbGxiYWNrKSBmaW5hbDsKLSAgICB2b2lkIGNoZWNrUHJvY2Vzc0xvY2FsUG9y
dEZvckFjdGl2aXR5KGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIFdlYkNv
cmU6OlByb2Nlc3NJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc0FjdGl2aXR5
KT4mJikgZmluYWw7Ci0KLSAgICBOZXR3b3JrUHJvY2VzcyYgbV9uZXR3b3JrUHJvY2VzczsKLSAg
ICBXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeSBtX3JlZ2lzdHJ5OwotfTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDhhNzljNDllNDMwOWM3NWU0YTY2YjNjOTBiOTQxNjgz
NTdmZWMyMjcuLmFhNWNiYThiZDRiYmQxNDU5N2UxZTQ2NTQ5YWQzZTY0YjFlMGExYzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0x
MzAsNiArMTMwLDE5IEBAIHN0YXRpYyB2b2lkIGNhbGxFeGl0U29vbihJUEM6OkNvbm5lY3Rpb24q
KQogICAgIH0pOwogfQogCitzdGF0aWMgaW5saW5lIE1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5
IGNyZWF0ZU1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5KE5ldHdvcmtQcm9jZXNzJiBuZXR3b3Jr
UHJvY2VzcykKK3sKKyAgICByZXR1cm4gTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkgeyBbJm5l
dHdvcmtQcm9jZXNzXShhdXRvJiBtZXNzYWdlUG9ydElkZW50aWZpZXIsIGF1dG8gcHJvY2Vzc0lk
ZW50aWZpZXIsIGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgeworICAgICAgICBhdXRvKiBjb25u
ZWN0aW9uID0gbmV0d29ya1Byb2Nlc3Mud2ViUHJvY2Vzc0Nvbm5lY3Rpb24ocHJvY2Vzc0lkZW50
aWZpZXIpOworICAgICAgICBpZiAoIWNvbm5lY3Rpb24pIHsKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eTo6Tm8pOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY29ubmVjdGlvbi0+Y2hl
Y2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkobWVzc2FnZVBvcnRJZGVudGlmaWVyLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgfSB9OworfQorCiBOZXR3b3JrUHJvY2Vzczo6
TmV0d29ya1Byb2Nlc3MoQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYm
IHBhcmFtZXRlcnMpCiAgICAgOiBtX2Rvd25sb2FkTWFuYWdlcigqdGhpcykKICAgICAsIG1fc3Rv
cmFnZU1hbmFnZXJTZXQoU3RvcmFnZU1hbmFnZXJTZXQ6OmNyZWF0ZSgpKQpAQCAtMTM5LDcgKzE1
Miw3IEBAIE5ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJvY2VzcyhBdXhpbGlhcnlQcm9jZXNzSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1lCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICAsIG1fd2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyKFt0aGlzXShib29sIGlzSG9sZGluZ0xv
Y2tlZEZpbGVzKSB7IHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OlNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGlzSG9sZGluZ0xvY2tl
ZEZpbGVzKSwgMCk7IH0pCiAjZW5kaWYKLSAgICAsIG1fbWVzc2FnZVBvcnRDaGFubmVsUHJvdmlk
ZXIoKnRoaXMpCisgICAgLCBtX21lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5KGNyZWF0ZU1lc3Nh
Z2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5KCp0aGlzKSkKIHsKICAgICBOZXR3b3JrUHJvY2Vzc1BsYXRm
b3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggNmExMDA0YjY0MWVmZGU0M2I0ZmNmYjQwNjJm
NWE2ZDkyNWJkZTgzYi4uNTE5ZmM3MWNkNTQwZTBjMGI4YzliOWNlMzBjYTg3MzI2YzczNDg3NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAt
MzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkxvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oIgog
I2luY2x1ZGUgIk5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTmV0
d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuaCIKLSNpbmNsdWRlICJOZXR3b3JrTWVzc2FnZVBvcnRD
aGFubmVsUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVk
ZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURh
dGEuaCIKQEAgLTQyLDYgKzQxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoSWRlbnRpZmll
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSURCS2V5RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
SURCU2VydmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxSZWdpc3Ry
eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2Vy
SWRlbnRpZmllci5oPgpAQCAtMzQ5LDcgKzM0OSw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBPcHRp
b25TZXQ8TmV0d29ya0NhY2hlOjpDYWNoZU9wdGlvbj4mIGNhY2hlT3B0aW9ucygpIGNvbnN0IHsg
cmV0dXJuIG1fY2FjaGVPcHRpb25zOyB9CiAKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcyogd2ViUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIpIGNv
bnN0OwotICAgIFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5JiBtZXNzYWdlUG9y
dENoYW5uZWxSZWdpc3RyeSgpIHsgcmV0dXJuIG1fbWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIu
cmVnaXN0cnkoKTsgfQorICAgIFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5JiBt
ZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeSgpIHsgcmV0dXJuIG1fbWVzc2FnZVBvcnRDaGFubmVs
UmVnaXN0cnk7IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdv
cmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CkBAIC01
NzMsNyArNTczLDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPElQQzo6Q29ubmVjdGlvbjo6VW5p
cXVlSUQsIFBBTDo6U2Vzc2lvbklEPiBtX3Nlc3Npb25CeUNvbm5lY3Rpb247CiAKICAgICBPcHRp
b25TZXQ8TmV0d29ya0NhY2hlOjpDYWNoZU9wdGlvbj4gbV9jYWNoZU9wdGlvbnM7Ci0gICAgTmV0
d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyIG1fbWVzc2FnZVBvcnRDaGFubmVsUHJvdmlk
ZXI7CisgICAgV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkgbV9tZXNzYWdlUG9y
dENoYW5uZWxSZWdpc3RyeTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
aW5kZXggNzgxNGZhYWUzYTI2MGIzODNmZDkxMGQxODBhYTg5ZDZjNDk5NGY3OC4uMTc5MWVjYThk
MGNkOWVkNzBkYzQxMGMyNGUzODUyMzc4MjIzZDk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0zMSw3ICsz
MSw2IEBAIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFza0Jsb2IuY3BwCiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5jcHAKIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkLmNwcAogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAotTmV0d29y
a1Byb2Nlc3MvTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcAogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAKIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNTBmNzQ2YTM4N2M4Y2NiMWVkYjZhMzdhM2M1NWYyYWY5NzI3MTY0
Mi4uNDUyZWZjNmJlYjdmOTJkMWYzOWM0MzU5YjkwMWFkMjM0YTdlNDAxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMDkwLDggKzMw
OTAsNiBAQAogCQk0MTA0ODJDQjFEREQyRkI1MDBGMDA2RDAgLyogUlRDTmV0d29yay5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENOZXR3b3JrLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwNDgyQ0MxREREMkZCNTAwRjAwNkQwIC8qIFJUQ05l
dHdvcmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDTmV0d29yay5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTExNDM2MzIwRjY3N0IxMDAyNkY5MTIgLyog
SW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEluamVjdFVzZXJTY3JpcHRJbW1lZGlhdGVseS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk0MTExNEE3ODIzMTZFQzNGMDBCNTYwMDcgLyogTmV0d29ya01lc3NhZ2VQb3J0
Q2hhbm5lbFByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdv
cmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk0MTExNEE3OTIzMTZFQzNGMDBCNTYwMDcgLyogTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdv
cmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxMTI4NkVGMjFDOEE5MEMwMDNBODU1MCAvKiBNZWRpYUNhcHR1cmVVdGlsaXRpZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFDYXB0dXJlVXRpbGl0aWVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTI4NkYwMjFDOEE5MEQwMDNBODU1
MCAvKiBNZWRpYUNhcHR1cmVVdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBNZWRpYUNhcHR1cmVVdGlsaXRpZXMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxMTJCNTQ3MUY5RkQzQUIwMEU2Nzg3NSAvKiBOZXR3b3JrUlRDUmVzb2x2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1JUQ1Jl
c29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY3NTAsOCArNjc0OCw2
IEBACiAJCQkJNDEwM0ZCQTEyMDYxQkRCNzAwQzJFQUY4IC8qIE5ldHdvcmtMb2FkQ2hlY2tlci5o
ICovLAogCQkJCTgzRDQ1NEQ2MUJFOUQzQzQwMDZDOTNCRCAvKiBOZXR3b3JrTG9hZENsaWVudC5o
ICovLAogCQkJCTgzOTE0OTYzMUJFQTgzODUwMEQyRDk1MyAvKiBOZXR3b3JrTG9hZFBhcmFtZXRl
cnMuaCAqLywKLQkJCQk0MTExNEE3OTIzMTZFQzNGMDBCNTYwMDcgLyogTmV0d29ya01lc3NhZ2VQ
b3J0Q2hhbm5lbFByb3ZpZGVyLmNwcCAqLywKLQkJCQk0MTExNEE3ODIzMTZFQzNGMDBCNTYwMDcg
LyogTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmggKi8sCiAJCQkJNTEwQ0M3REYx
NjEzOEUyOTAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzLmNwcCAqLywKIAkJCQk1MTBDQzdFMDE2
MTM4RTI5MDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MuaCAqLywKIAkJCQk1MUE4QTYxNzE2MjdG
NUJCMDAwRDkwRTkgLyogTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gKi8sCkBAIC05OTQyLDYg
Kzk5MzgsNyBAQAogCQkJCUE1NDNFMzA3MjE1QUQxMzcwMDI3OUNEOSAvKiBXZWJQYWdlSW5zcGVj
dG9yVGFyZ2V0RnJvbnRlbmRDaGFubmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMENFNzJBMTEy
NDdFNzFEMDBCQzBFQzQgLyogV2ViUGFnZU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQky
RDVDOUQwNjE5QzgxRDhGMDBCM0M1QzEgLyogV2ViUGFnZU92ZXJsYXkuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQ2QzM5MjI5MjMxNkVDNEQwMDhFRUQ5QiAvKiBXZWJQYWdlUHJveHlJZGVudGlmaWVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0JEMzkxNTEyNUJCMUE4MDBEMkMyOUYgLyogV2ViUGFn
ZVByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjEyN0M0MTkwODIzOUEwMERB
RjM1QyAvKiBXZWJQYXN0ZWJvYXJkT3ZlcnJpZGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzQ2
OTREMTFBNTFFMzY4MDBBRDU4NDUgLyogV2ViUGFzdGVib2FyZFByb3h5LmggaW4gSGVhZGVycyAq
LywKQEAgLTEwMDMyLDcgKzEwMDI5LDYgQEAKIAkJCQlDNUZBMUVEMzE4RTEwNjIyMDBCM0Y0MDIg
LyogV0tBaXJQbGF5Um91dGVQaWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMTJEQUI1MjA2
NjJDNzMwMDZGMDBGQiAvKiBXS0FuaW1hdGlvbkRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0REQjMyRDEyNEVDMkUxMDA0OEQxM0MgLyogV0tBUElDYXN0LmggaW4gSGVhZGVycyAqLywK
LQkJCQk0NkMzOTIyOTIzMTZFQzREMDA4RUVEOUIgLyogV2ViUGFnZVByb3h5SWRlbnRpZmllci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyRTM0RTUxMzBCNEQwNTAwQUJEMTlBIC8qIFdLQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUExM0RDNjgyMjA3QUE2QjIw
MDY2RUY3MiAvKiBXS0FwcGxpY2F0aW9uU3RhdGVUcmFja2luZ1ZpZXcuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDNDA3NUY0MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0FycmF5LmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwCmluZGV4
IDM4MDNhYTZjYjVmNDRjMTgxODg0NWFjZGJiNjc5MjFhM2Y4ZjAyMTEuLmRjYmYxOTYyZDk2ZTIw
MmQ4ODU5MDUxOWU3NjMyZGIzOGFiNGIxY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lc3NhZ2VQ
b3J0Q2hhbm5lbFByb3ZpZGVyLmNwcApAQCAtODksMTIgKzg5LDYgQEAgdm9pZCBXZWJNZXNzYWdl
UG9ydENoYW5uZWxQcm92aWRlcjo6cG9zdE1lc3NhZ2VUb1JlbW90ZShjb25zdCBNZXNzYWdlV2l0
aE1lc3NhZ2UKICAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UG9zdE1lc3NhZ2VUb1JlbW90ZSB7IG1lc3Nh
Z2UsIHJlbW90ZVRhcmdldCB9LCAwKTsKIH0KIAotdm9pZCBXZWJNZXNzYWdlUG9ydENoYW5uZWxQ
cm92aWRlcjo6Y2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkoY29uc3QgTWVzc2FnZVBv
cnRJZGVudGlmaWVyJiwgUHJvY2Vzc0lkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
SGFzQWN0aXZpdHkpPiYmKQotewotICAgIC8vIFRvIGJlIGNhbGxlZCBvbmx5IGluIHRoZSBVSSBw
cm9jZXNzIHByb3ZpZGVyLCBub3QgdGhlIFdlYiBwcm9jZXNzIHByb3ZpZGVyLgotICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotfQotCiB2b2lkIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
OjpjaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXIm
IHJlbW90ZVRhcmdldCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNBY3Rpdml0eSk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q2hl
Y2tSZW1vdGVQb3J0Rm9yQWN0aXZpdHkgeyByZW1vdGVUYXJnZXQgfSwgW2NvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGJvb2wgaGFzQWN0aXZpdHkpIG11dGFi
bGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaAppbmRleCBl
NDQ5OTRlNjA1ZDk2NjA3YWE3MGE4MmRiODk4ZWU5MDFlNTZhZTY0Li5mZWQ4NGZjOTE2NGQxNjg2
OTE3MzlhMTNkNzRmODdiM2M5NzJhZWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVzc2FnZVBvcnRD
aGFubmVsUHJvdmlkZXIuaApAQCAtNDQsOCArNDQsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgbWVz
c2FnZVBvcnRDbG9zZWQoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiBsb2Nh
bCkgZmluYWw7CiAgICAgdm9pZCB0YWtlQWxsTWVzc2FnZXNGb3JQb3J0KGNvbnN0IFdlYkNvcmU6
Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdl
YkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzPiYmLCBGdW5jdGlvbjx2b2lkKCk+JiYpPiYm
KSBmaW5hbDsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9SZW1vdGUoY29uc3QgV2ViQ29yZTo6TWVz
c2FnZVdpdGhNZXNzYWdlUG9ydHMmLCBjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZp
ZXImIHJlbW90ZVRhcmdldCkgZmluYWw7Ci0gICAgdm9pZCBjaGVja1Byb2Nlc3NMb2NhbFBvcnRG
b3JBY3Rpdml0eShjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImLCBXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNBY3Rpdml0eSk+
JiYpIGZpbmFsOwotCiAgICAgdm9pZCBjaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShjb25zdCBX
ZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImIHJlbW90ZVRhcmdldCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChIYXNBY3Rpdml0eSk+JiYgY2FsbGJhY2spIGZpbmFsOwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377852</attachid>
            <date>2019-09-02 07:49:19 -0700</date>
            <delta_ts>2019-09-04 05:50:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201400-20190902164917.patch</filename>
            <type>text/plain</type>
            <size>69701</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdhMjY2NDZlZmJjYzBiMDM0
ZDc2YmVkYzk2Y2Q1YmNmODE0NmVlNjIuLjM0ZDU0MWU5ODVkYzZhZDU1YTY0YTI4OGNlZDk2YmZj
NmU1Y2JlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMTktMDktMDIgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgTWVzc2FnZVJlZ2lzdHJ5
IHRvIE5ldHdvcmtQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDEyOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNb3ZlIG1lc3NhZ2UgcmVnaXN0cnkgdG8gTmV0d29ya1Byb2Nlc3MuCisgICAg
ICAgIFRha2UgYmVuZWZpdCBvZiB0aGlzIG1vdmUgdG8gdXNlIGFzeW5jIHJlcGx5IElQQyBhcyBt
dWNoIGFzIHBvc3NpYmxlLgorICAgICAgICBUaGlzIGFsc28gYWxsb3dzIHRvIHJlbW92ZSB0aGUg
SVBDIG1lc3NhZ2UgdG8gVUlQcm9jZXNzIHdoZW4gZG9pbmcgcG9zdE1lc3NhZ2Ugd2l0aCBzZXJ2
aWNlIHdvcmtlcnMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpjcmVhdGVOZXdNZXNzYWdlUG9ydENoYW5uZWwpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW50YW5nbGVMb2NhbFBvcnRJblRoaXNQ
cm9jZXNzVG9SZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6bWVzc2FnZVBvcnREaXNlbnRhbmdsZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bWVzc2FnZVBvcnRDbG9zZWQpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bmV4dE1lc3NhZ2VCYXRjaElk
ZW50aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6dGFrZUFsbE1lc3NhZ2VzRm9yUG9ydCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWREZWxpdmVyTWVzc2FnZVBvcnRNZXNzYWdlcyk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwb3N0TWVzc2FnZVRv
UmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNoZWNrUmVtb3RlUG9ydEZvckFjdGl2aXR5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtNZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Ok5ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRl
cik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6
Y3JlYXRlTmV3TWVzc2FnZVBvcnRDaGFubmVsKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya01l
c3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjplbnRhbmdsZUxvY2FsUG9ydEluVGhpc1Byb2Nlc3NU
b1JlbW90ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlcjo6bWVzc2FnZVBvcnREaXNlbnRhbmdsZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Om1lc3NhZ2VQb3J0Q2xvc2VkKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjp0YWtlQWxsTWVzc2Fn
ZXNGb3JQb3J0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFBy
b3ZpZGVyOjpwb3N0TWVzc2FnZVRvUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya01l
c3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpjaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6Y2hlY2tQ
cm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fbWVzc2Fn
ZVBvcnRDaGFubmVsUHJvdmlkZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
d2ViUHJvY2Vzc0Nvbm5lY3Rpb24gY29uc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjptZXNzYWdl
UG9ydENoYW5uZWxSZWdpc3RyeSk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICog
VUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmNwcDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5
Ojp+V2ViUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpz
aHV0RG93bik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbjo6aW5pdGlhbGl6ZVNXQ2xpZW50Q29ubmVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6bWVzc2FnZXNBdmFpbGFibGVG
b3JQb3J0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjaGVj
a1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpw
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Om5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpjcmVhdGVOZXdNZXNzYWdlUG9ydENoYW5uZWwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6ZW50YW5n
bGVMb2NhbFBvcnRJblRoaXNQcm9jZXNzVG9SZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJN
ZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6bWVzc2FnZVBvcnREaXNlbnRhbmdsZWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6bWVzc2FnZVBvcnRD
bG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6
dGFrZUFsbE1lc3NhZ2VzRm9yUG9ydCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lc3NhZ2VQb3J0
Q2hhbm5lbFByb3ZpZGVyOjpwb3N0TWVzc2FnZVRvUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OmNoZWNrUmVtb3RlUG9ydEZvckFjdGl2aXR5
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MubWVzc2FnZXMuaW46CisKIDIwMTktMDktMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3Mga2V5ZWQgYnkgdGhlaXIgV2ViUHJvY2VzcyBpZGVudGlmaWVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCmluZGV4IDk4Y2IyNTg2NDAzMWE0N2YwYTZmNWIxOWZmOGUwMGQ2Y2Y5NWFmMDku
Ljk0ZjNiMGIwMDcyNmU2ZTk3MzE0MjdjN2YzYmJkZTQyMWVmYjZiZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5j
ZS5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZS5oIgogI2luY2x1ZGUgIk5ldHdvcmtNRE5TUmVn
aXN0ZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3Nh
Z2VzLmgiCkBAIC01Myw2ICs1NCw3IEBACiAjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVk
ZSAiV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzUG9vbE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgi
CkBAIC0xMDIsNiArMTA0LDEwIEBAIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp+TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKQogICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKIAogICAgIG1fY29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOworCisgICAgZm9y
IChhdXRvJiBwb3J0IDogbV9wcm9jZXNzRW50YW5nbGVkUG9ydHMpCisgICAgICAgIG5ldHdvcmtQ
cm9jZXNzKCkubWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkoKS5kaWRDbG9zZU1lc3NhZ2VQb3J0
KHBvcnQpOworCiAjaWYgVVNFKExJQldFQlJUQykKICAgICBpZiAobV9ydGNQcm92aWRlcikKICAg
ICAgICAgbV9ydGNQcm92aWRlci0+Y2xvc2UoKTsKQEAgLTg4Nyw0ICs4OTMsODQgQEAgdm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZXN0YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9u
KFBBTDo6U2Vzc2lvbklEIHMKIH0KICNlbmRpZgogCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpjcmVhdGVOZXdNZXNzYWdlUG9ydENoYW5uZWwoY29uc3QgTWVzc2FnZVBvcnRJ
ZGVudGlmaWVyJiBwb3J0MSwgY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBwb3J0MikKK3sK
KyAgICBtX3Byb2Nlc3NFbnRhbmdsZWRQb3J0cy5hZGQocG9ydDEpOworICAgIG1fcHJvY2Vzc0Vu
dGFuZ2xlZFBvcnRzLmFkZChwb3J0Mik7CisgICAgbmV0d29ya1Byb2Nlc3MoKS5tZXNzYWdlUG9y
dENoYW5uZWxSZWdpc3RyeSgpLmRpZENyZWF0ZU1lc3NhZ2VQb3J0Q2hhbm5lbChwb3J0MSwgcG9y
dDIpOworfQorCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplbnRhbmdsZUxv
Y2FsUG9ydEluVGhpc1Byb2Nlc3NUb1JlbW90ZShjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXIm
IGxvY2FsLCBjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImIHJlbW90ZSkKK3sKKyAgICBtX3By
b2Nlc3NFbnRhbmdsZWRQb3J0cy5hZGQobG9jYWwpOworICAgIG5ldHdvcmtQcm9jZXNzKCkubWVz
c2FnZVBvcnRDaGFubmVsUmVnaXN0cnkoKS5kaWRFbnRhbmdsZUxvY2FsVG9SZW1vdGUobG9jYWws
IHJlbW90ZSwgbV93ZWJQcm9jZXNzSWRlbnRpZmllcik7CisKKyAgICBhdXRvKiBjaGFubmVsID0g
bmV0d29ya1Byb2Nlc3MoKS5tZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeSgpLmV4aXN0aW5nQ2hh
bm5lbENvbnRhaW5pbmdQb3J0KGxvY2FsKTsKKyAgICBpZiAoY2hhbm5lbCAmJiBjaGFubmVsLT5o
YXNBbnlNZXNzYWdlc1BlbmRpbmdPckluRmxpZ2h0KCkpCisgICAgICAgIGNvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246Ok1lc3NhZ2VzQXZhaWxhYmxl
Rm9yUG9ydChsb2NhbCksIDApOworfQorCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjptZXNzYWdlUG9ydERpc2VudGFuZ2xlZChjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXIm
IHBvcnQpCit7CisgICAgYXV0byByZXN1bHQgPSBtX3Byb2Nlc3NFbnRhbmdsZWRQb3J0cy5yZW1v
dmUocG9ydCk7CisgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdCk7CisKKyAgICBuZXR3
b3JrUHJvY2VzcygpLm1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5KCkuZGlkRGlzZW50YW5nbGVN
ZXNzYWdlUG9ydChwb3J0KTsKK30KKwordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6bWVzc2FnZVBvcnRDbG9zZWQoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBwb3J0KQor
eworICAgIG5ldHdvcmtQcm9jZXNzKCkubWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkoKS5kaWRD
bG9zZU1lc3NhZ2VQb3J0KHBvcnQpOworfQorCit1aW50NjRfdCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6bmV4dE1lc3NhZ2VCYXRjaElkZW50aWZpZXIoRnVuY3Rpb248dm9pZCgpPiYm
IGRlbGl2ZXJ5Q2FsbGJhY2spCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGN1cnJlbnRNZXNzYWdl
QmF0Y2hJZGVudGlmaWVyOworICAgIEFTU0VSVCghbV9tZXNzYWdlQmF0Y2hEZWxpdmVyeUNvbXBs
ZXRpb25IYW5kbGVycy5jb250YWlucyhjdXJyZW50TWVzc2FnZUJhdGNoSWRlbnRpZmllciArIDEp
KTsKKyAgICBtX21lc3NhZ2VCYXRjaERlbGl2ZXJ5Q29tcGxldGlvbkhhbmRsZXJzLmFkZCgrK2N1
cnJlbnRNZXNzYWdlQmF0Y2hJZGVudGlmaWVyLCBXVEZNb3ZlKGRlbGl2ZXJ5Q2FsbGJhY2spKTsK
KyAgICByZXR1cm4gY3VycmVudE1lc3NhZ2VCYXRjaElkZW50aWZpZXI7Cit9CisKK3ZvaWQgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnRha2VBbGxNZXNzYWdlc0ZvclBvcnQoY29uc3Qg
TWVzc2FnZVBvcnRJZGVudGlmaWVyJiBwb3J0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3Rv
cjxNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cz4mJiwgdWludDY0X3QpPiYmIGNhbGxiYWNrKQorewor
ICAgIG5ldHdvcmtQcm9jZXNzKCkubWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkoKS50YWtlQWxs
TWVzc2FnZXNGb3JQb3J0KHBvcnQsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiBtZXNzYWdlcywgRnVuY3Rp
b248dm9pZCgpPiYmIGRlbGl2ZXJ5Q2FsbGJhY2spIG11dGFibGUgeworICAgICAgICBjYWxsYmFj
ayhXVEZNb3ZlKG1lc3NhZ2VzKSwgbmV4dE1lc3NhZ2VCYXRjaElkZW50aWZpZXIoV1RGTW92ZShk
ZWxpdmVyeUNhbGxiYWNrKSkpOworICAgIH0pOworfQorCit2b2lkIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaWREZWxpdmVyTWVzc2FnZVBvcnRNZXNzYWdlcyh1aW50NjRfdCBtZXNz
YWdlQmF0Y2hJZGVudGlmaWVyKQoreworICAgIGF1dG8gY2FsbGJhY2sgPSBtX21lc3NhZ2VCYXRj
aERlbGl2ZXJ5Q29tcGxldGlvbkhhbmRsZXJzLnRha2UobWVzc2FnZUJhdGNoSWRlbnRpZmllcik7
CisgICAgQVNTRVJUKGNhbGxiYWNrKTsKKyAgICBjYWxsYmFjaygpOworfQorCit2b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwb3N0TWVzc2FnZVRvUmVtb3RlKE1lc3NhZ2VXaXRo
TWVzc2FnZVBvcnRzJiYgbWVzc2FnZSwgY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBwb3J0
KQoreworICAgIGlmIChuZXR3b3JrUHJvY2VzcygpLm1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5
KCkuZGlkUG9zdE1lc3NhZ2VUb1JlbW90ZShXVEZNb3ZlKG1lc3NhZ2UpLCBwb3J0KSkgeworICAg
ICAgICAvLyBMb29rIHVwIHRoZSBwcm9jZXNzIGZvciB0aGF0IHBvcnQKKyAgICAgICAgYXV0byog
Y2hhbm5lbCA9IG5ldHdvcmtQcm9jZXNzKCkubWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkoKS5l
eGlzdGluZ0NoYW5uZWxDb250YWluaW5nUG9ydChwb3J0KTsKKyAgICAgICAgQVNTRVJUKGNoYW5u
ZWwpOworICAgICAgICBhdXRvIHByb2Nlc3NJZGVudGlmaWVyID0gY2hhbm5lbC0+cHJvY2Vzc0Zv
clBvcnQocG9ydCk7CisgICAgICAgIGlmIChwcm9jZXNzSWRlbnRpZmllcikgeworICAgICAgICAg
ICAgaWYgKGF1dG8qIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgPSBuZXR3b3JrUHJvY2VzcygpLndl
YlByb2Nlc3NDb25uZWN0aW9uKCpwcm9jZXNzSWRlbnRpZmllcikpCisgICAgICAgICAgICAgICAg
Y29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbjo6TWVzc2FnZXNBdmFpbGFibGVGb3JQb3J0KHBvcnQpLCAwKTsK
KyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Y2hlY2tSZW1vdGVQb3J0Rm9yQWN0aXZpdHkoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJ
ZGVudGlmaWVyIHBvcnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2sp
Cit7CisgICAgbmV0d29ya1Byb2Nlc3MoKS5tZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeSgpLmNo
ZWNrUmVtb3RlUG9ydEZvckFjdGl2aXR5KHBvcnQsIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spXShhdXRvIGhhc0FjdGl2aXR5KSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbGJhY2soaGFzQWN0
aXZpdHkgPT0gTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5OjpZZXMpOwor
ICAgIH0pOworfQorCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjaGVja1By
b2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eShjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImIHBv
cnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhh
c0FjdGl2aXR5KT4mJiBjYWxsYmFjaykKK3sKKyAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkNoZWNrUHJvY2Vzc0xv
Y2FsUG9ydEZvckFjdGl2aXR5IHsgcG9ydCB9LCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0oYm9vbCBpc0xvY2FsbHlSZWFjaGFibGUpIG11dGFibGUgeworICAgICAgICBjYWxsYmFjayhp
c0xvY2FsbHlSZWFjaGFibGUgPyBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZp
dHk6OlllcyA6IE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eTo6Tm8pOwor
ICAgIH0sIDApOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaAppbmRleCBmYWQ4YjZlOTAyNTExMGQ2MjFhM2UwOWUyMjIyNTkyZDgxYjVhYjc5Li43MTRi
MDliMDM5N2ZkNTQ1ZmJkMjRmZTVlNmU1OTgzMWFmYmQ4ZWYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCkBAIC0zNSw2ICszNSw4IEBACiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZE1h
cC5oIgogI2luY2x1ZGUgIldlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0
Q2hhbm5lbFByb3ZpZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlUG9ydElkZW50aWZp
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkSW5mb3JtYXRpb24uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNz
SWRlbnRpZmllci5oPgpAQCAtMTQ2LDYgKzE0OCw4IEBAIHB1YmxpYzoKIAogICAgIFdlYkNvcmU6
OlByb2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV93ZWJQcm9jZXNzSWRlbnRpZmllcjsgfQogCisgICAgdm9pZCBjaGVja1Byb2Nlc3NMb2NhbFBv
cnRGb3JBY3Rpdml0eShjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpI
YXNBY3Rpdml0eSk+JiYpOworCiBwcml2YXRlOgogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzKE5ldHdvcmtQcm9jZXNzJiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKQEAgLTIwOCw2ICsyMTIsMTUgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHVucmVnaXN0ZXJTV0Nvbm5lY3Rpb25zKCk7CiAjZW5kaWYKIAorICAgIHZvaWQg
Y3JlYXRlTmV3TWVzc2FnZVBvcnRDaGFubmVsKGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRl
bnRpZmllciYgcG9ydDEsIGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYgcG9y
dDIpOworICAgIHZvaWQgZW50YW5nbGVMb2NhbFBvcnRJblRoaXNQcm9jZXNzVG9SZW1vdGUoY29u
c3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiBsb2NhbCwgY29uc3QgV2ViQ29yZTo6
TWVzc2FnZVBvcnRJZGVudGlmaWVyJiByZW1vdGUpOworICAgIHZvaWQgbWVzc2FnZVBvcnREaXNl
bnRhbmdsZWQoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJik7CisgICAgdm9p
ZCBtZXNzYWdlUG9ydENsb3NlZChjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIm
KTsKKyAgICB2b2lkIHRha2VBbGxNZXNzYWdlc0ZvclBvcnQoY29uc3QgV2ViQ29yZTo6TWVzc2Fn
ZVBvcnRJZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6
TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM+JiYsIHVpbnQ2NF90KT4mJik7CisgICAgdm9pZCBwb3N0
TWVzc2FnZVRvUmVtb3RlKFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIGNvbnN0
IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYpOworICAgIHZvaWQgY2hlY2tSZW1vdGVQ
b3J0Rm9yQWN0aXZpdHkoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIGRpZERlbGl2ZXJNZXNzYWdl
UG9ydE1lc3NhZ2VzKHVpbnQ2NF90IG1lc3NhZ2VCYXRjaElkZW50aWZpZXIpOworCiAjaWYgVVNF
KExJQldFQlJUQykKICAgICBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyKCk7CiAjZW5k
aWYKQEAgLTIzMiw2ICsyNDUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNj
ZXNzV2hpdGVsaXN0RW50cnkoY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFN0cmlu
ZyYgZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvbkhvc3QsIGJv
b2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHZvaWQgcmVzZXRPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RzKCk7CiAKKyAgICB1aW50NjRfdCBuZXh0TWVzc2FnZUJhdGNoSWRlbnRpZmll
cihGdW5jdGlvbjx2b2lkKCk+JiYpOworCiAgICAgc3RydWN0IFJlc291cmNlTmV0d29ya0FjdGl2
aXR5VHJhY2tlciB7CiAgICAgICAgIFJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tlcigpID0g
ZGVmYXVsdDsKICAgICAgICAgUmVzb3VyY2VOZXR3b3JrQWN0aXZpdHlUcmFja2VyKGNvbnN0IFJl
c291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tlciYpID0gZGVmYXVsdDsKQEAgLTMxMSw2ICszMjYs
OSBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJQYXltZW50Q29vcmRpbmF0b3JQ
cm94eT4gbV9wYXltZW50Q29vcmRpbmF0b3I7CiAjZW5kaWYKICAgICBjb25zdCBXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlmaWVyOworCisgICAgSGFzaFNldDxX
ZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXI+IG1fcHJvY2Vzc0VudGFuZ2xlZFBvcnRzOwor
ICAgIEhhc2hNYXA8dWludDY0X3QsIEZ1bmN0aW9uPHZvaWQoKT4+IG1fbWVzc2FnZUJhdGNoRGVs
aXZlcnlDb21wbGV0aW9uSGFuZGxlcnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGQwZWZhMGIwYjJl
MzUxZTE0NzE1MDdmNjQ4MTQ2ODYyZjljZDRmYzAuLmVlOGY3MmQyMmY3OGFjYjQ4MDQzMDY3ZmQ5
ZjYxOTY1YmMyMWU5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbgpAQCAtODMsNCArODMsMTMgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAg
ICBFc3RhYmxpc2hTV1NlcnZlckNvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAt
PiAoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllcikgU3luY2hyb25vdXMKICNlbmRpZgorCisgICAgQ3JlYXRlTmV3TWVzc2FnZVBv
cnRDaGFubmVsKHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgcG9ydDEsIHN0
cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgcG9ydDIpCisgICAgRW50YW5nbGVM
b2NhbFBvcnRJblRoaXNQcm9jZXNzVG9SZW1vdGUoc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0
SWRlbnRpZmllciBsb2NhbCwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciBy
ZW1vdGUpCisgICAgTWVzc2FnZVBvcnREaXNlbnRhbmdsZWQoc3RydWN0IFdlYkNvcmU6Ok1lc3Nh
Z2VQb3J0SWRlbnRpZmllciBsb2NhbCkKKyAgICBNZXNzYWdlUG9ydENsb3NlZChzdHJ1Y3QgV2Vi
Q29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIGxvY2FsKQorICAgIFRha2VBbGxNZXNzYWdlc0Zv
clBvcnQoc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciBwb3J0KSAtPiAoVmVj
dG9yPFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzPiBtZXNzYWdlcywgdWludDY0X3Qg
bWVzc2FnZUJhdGNoSWRlbnRpZmllcikgQXN5bmMKKyAgICBQb3N0TWVzc2FnZVRvUmVtb3RlKHN0
cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdlLCBzdHJ1Y3QgV2Vi
Q29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIHJlbW90ZSkKKyAgICBDaGVja1JlbW90ZVBvcnRG
b3JBY3Rpdml0eShzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIHBvcnQpIC0+
IChib29sIGhhc0FjdGl2aXR5KSBBc3luYworICAgIERpZERlbGl2ZXJNZXNzYWdlUG9ydE1lc3Nh
Z2VzKHVpbnQ2NF90IG1lc3NhZ2VCYXRjaElkZW50aWZpZXIpCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtNZXNzYWdlUG9ydENo
YW5uZWxQcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjA5NmMxMTY0NzM4YThkZDU5Y2YzNDAwOTA3
YmIxOGIyMjk5NWNmOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDk0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmV0
d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgiCisKKyNpbmNsdWRlICJOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK05ldHdvcmtNZXNz
YWdlUG9ydENoYW5uZWxQcm92aWRlcjo6TmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
KE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcykKKyAgICA6IG1fbmV0d29ya1Byb2Nlc3Mo
bmV0d29ya1Byb2Nlc3MpCisgICAgLCBtX3JlZ2lzdHJ5KCp0aGlzKQoreworfQorCit2b2lkIE5l
dHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6Y3JlYXRlTmV3TWVzc2FnZVBvcnRDaGFu
bmVsKGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRp
ZmllciYpCit7CisgICAgLy8gU2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBpbiB0aGUgVUkgcHJvY2Vz
cyBwcm92aWRlci4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBOZXR3b3Jr
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OmVudGFuZ2xlTG9jYWxQb3J0SW5UaGlzUHJvY2Vz
c1RvUmVtb3RlKGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIGNvbnN0IE1lc3NhZ2VQb3J0
SWRlbnRpZmllciYpCit7CisgICAgLy8gU2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBpbiB0aGUgVUkg
cHJvY2VzcyBwcm92aWRlci4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBO
ZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Om1lc3NhZ2VQb3J0RGlzZW50YW5nbGVk
KGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYpCit7CisgICAgLy8gU2hvdWxkIG5ldmVyIGJl
IGNhbGxlZCBpbiB0aGUgVUkgcHJvY2VzcyBwcm92aWRlci4KKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKK30KKwordm9pZCBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Om1lc3Nh
Z2VQb3J0Q2xvc2VkKGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYpCit7CisgICAgLy8gU2hv
dWxkIG5ldmVyIGJlIGNhbGxlZCBpbiB0aGUgVUkgcHJvY2VzcyBwcm92aWRlci4KKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXI6OnRha2VBbGxNZXNzYWdlc0ZvclBvcnQoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVy
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM+
JiYsIEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYpCit7CisgICAgLy8gU2hvdWxkIG5ldmVyIGJlIGNh
bGxlZCBpbiB0aGUgVUkgcHJvY2VzcyBwcm92aWRlci4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKK30KKwordm9pZCBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnBvc3RNZXNz
YWdlVG9SZW1vdGUoY29uc3QgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmLCBjb25zdCBNZXNzYWdl
UG9ydElkZW50aWZpZXImKQoreworICAgIC8vIFNob3VsZCBuZXZlciBiZSBjYWxsZWQgaW4gdGhl
IFVJIHByb2Nlc3MgcHJvdmlkZXIuCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3Zv
aWQgTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpjaGVja1JlbW90ZVBvcnRGb3JB
Y3Rpdml0eShjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEhhc0FjdGl2aXR5KT4mJikKK3sKKyAgICAvLyBTaG91bGQgbmV2ZXIgYmUgY2FsbGVkIGlu
IHRoZSBVSSBwcm9jZXNzIHByb3ZpZGVyLgorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQor
Cit2b2lkIE5ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6Y2hlY2tQcm9jZXNzTG9j
YWxQb3J0Rm9yQWN0aXZpdHkoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBwb3J0LCBQcm9j
ZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChI
YXNBY3Rpdml0eSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byogY29ubmVjdGlv
biA9IG1fbmV0d29ya1Byb2Nlc3Mud2ViUHJvY2Vzc0Nvbm5lY3Rpb24ocHJvY2Vzc0lkZW50aWZp
ZXIpOworICAgIGlmICghY29ubmVjdGlvbikgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihI
YXNBY3Rpdml0eTo6Tm8pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29ubmVjdGlv
bi0+Y2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkocG9ydCwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3Zp
ZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtNZXNzYWdlUG9ydENo
YW5uZWxQcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5MmVlMGIzNGRhY2U5MGU1YWE0ZjY3MzEwNjUw
MjJmMzRkZDZmNDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oCkBAIC0wLDAgKzEsNTUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViQ29yZS9NZXNz
YWdlUG9ydENoYW5uZWxQcm92aWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnRD
aGFubmVsUmVnaXN0cnkuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIE5ldHdvcmtQ
cm9jZXNzOworCitjbGFzcyBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIgOiBwdWJs
aWMgV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIgeworcHVibGljOgorICAgIGV4
cGxpY2l0IE5ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcihOZXR3b3JrUHJvY2VzcyYp
OworICAgIFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5JiByZWdpc3RyeSgpIHsg
cmV0dXJuIG1fcmVnaXN0cnk7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGNyZWF0ZU5ld01lc3Nh
Z2VQb3J0Q2hhbm5lbChjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImIGxvY2Fs
LCBjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImIHJlbW90ZSkgZmluYWw7Cisg
ICAgdm9pZCBlbnRhbmdsZUxvY2FsUG9ydEluVGhpc1Byb2Nlc3NUb1JlbW90ZShjb25zdCBXZWJD
b3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImIGxvY2FsLCBjb25zdCBXZWJDb3JlOjpNZXNzYWdl
UG9ydElkZW50aWZpZXImIHJlbW90ZSkgZmluYWw7CisgICAgdm9pZCBtZXNzYWdlUG9ydERpc2Vu
dGFuZ2xlZChjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImIGxvY2FsKSBmaW5h
bDsKKyAgICB2b2lkIG1lc3NhZ2VQb3J0Q2xvc2VkKGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0
SWRlbnRpZmllciYgbG9jYWwpIGZpbmFsOworICAgIHZvaWQgdGFrZUFsbE1lc3NhZ2VzRm9yUG9y
dChjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cz4mJiwgRnVuY3Rp
b248dm9pZCgpPiYmKT4mJikgZmluYWw7CisgICAgdm9pZCBwb3N0TWVzc2FnZVRvUmVtb3RlKGNv
bnN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiwgY29uc3QgV2ViQ29yZTo6TWVz
c2FnZVBvcnRJZGVudGlmaWVyJiByZW1vdGVUYXJnZXQpIGZpbmFsOworCisgICAgdm9pZCBjaGVj
a1JlbW90ZVBvcnRGb3JBY3Rpdml0eShjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZp
ZXImIHJlbW90ZVRhcmdldCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNBY3Rpdml0eSk+JiYg
Y2FsbGJhY2spIGZpbmFsOworICAgIHZvaWQgY2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZp
dHkoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiwgV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYmKSBmaW5h
bDsKKworICAgIE5ldHdvcmtQcm9jZXNzJiBtX25ldHdvcmtQcm9jZXNzOworICAgIFdlYkNvcmU6
Ok1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5IG1fcmVnaXN0cnk7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAKaW5kZXggMmEzNjY2YjNlOTJmNTJmZjQ2MGQxMTFiNzUyZTJlNDRhYThhZjYwYy4u
OGE3OWM0OWU0MzA5Yzc1ZTRhNjZiM2M5MGI5NDE2ODM1N2ZlYzIyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTEzOSw2ICsxMzks
NyBAQCBOZXR3b3JrUHJvY2Vzczo6TmV0d29ya1Byb2Nlc3MoQXV4aWxpYXJ5UHJvY2Vzc0luaXRp
YWxpemF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAg
ICAgLCBtX3dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlcihbdGhpc10oYm9vbCBpc0hvbGRpbmdMb2Nr
ZWRGaWxlcykgeyBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpTZXRJc0hvbGRpbmdMb2NrZWRGaWxlcyhpc0hvbGRpbmdMb2NrZWRG
aWxlcyksIDApOyB9KQogI2VuZGlmCisgICAgLCBtX21lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
KCp0aGlzKQogewogICAgIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjppbml0aWFs
aXplKCk7CiAKQEAgLTI2OTMsNCArMjY5NCw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3NDbG9zZWQoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogICAg
IG1fc3RvcmFnZU1hbmFnZXJTZXQtPnJlbW92ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CiB9CiAK
K05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBOZXR3b3JrUHJvY2Vzczo6d2ViUHJvY2Vz
c0Nvbm5lY3Rpb24oUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllcikgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuZ2V0KGlkZW50aWZpZXIpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuaAppbmRleCA3ZjRiNWQyZTZlYzhlNGJjYjQ3MWVjZWVkNTkyMjRlZTkwY2NlNjYx
Li42YTEwMDRiNjQxZWZkZTQzYjRmY2ZiNDA2MmY1YTZkOTI1YmRlODNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiTmV0
d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrSFRUUFNVcGdy
YWRlQ2hlY2tlci5oIgorI2luY2x1ZGUgIk5ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRl
ci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgpAQCAtMzQ2
LDcgKzM0NywxMCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBTdHJpbmcmIGRpc2tDYWNoZURpcmVj
dG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlza0NhY2hlRGlyZWN0b3J5OyB9CiAgICAgY29uc3Qg
T3B0aW9uU2V0PE5ldHdvcmtDYWNoZTo6Q2FjaGVPcHRpb24+JiBjYWNoZU9wdGlvbnMoKSBjb25z
dCB7IHJldHVybiBtX2NhY2hlT3B0aW9uczsgfQotICAgIAorCisgICAgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MqIHdlYlByb2Nlc3NDb25uZWN0aW9uKFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyKSBjb25zdDsKKyAgICBXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeSYg
bWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkoKSB7IHJldHVybiBtX21lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyLnJlZ2lzdHJ5KCk7IH0KKwogcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtSW5p
dGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJik7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lv
bj4gcGxhdGZvcm1DcmVhdGVEZWZhdWx0U3RvcmFnZVNlc3Npb24oKSBjb25zdDsKQEAgLTU2OSw2
ICs1NzMsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJ
RCwgUEFMOjpTZXNzaW9uSUQ+IG1fc2Vzc2lvbkJ5Q29ubmVjdGlvbjsKIAogICAgIE9wdGlvblNl
dDxOZXR3b3JrQ2FjaGU6OkNhY2hlT3B0aW9uPiBtX2NhY2hlT3B0aW9uczsKKyAgICBOZXR3b3Jr
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIgbV9tZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggODEzNzg4MWJiNDFl
ZTdhOTc4M2JhZDg2NDQ1NzFkYTFmOTFmZDYyZC4uNzgxNGZhYWUzYTI2MGIzODNmZDkxMGQxODBh
YTg5ZDZjNDk5NGY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0zMSw2ICszMSw3IEBAIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtEYXRhVGFza0Jsb2IuY3BwCiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrSFRUUFNV
cGdyYWRlQ2hlY2tlci5jcHAKIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAorTmV0d29ya1Byb2Nlc3MvTmV0d29ya01l
c3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcAogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwCiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAKIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApA
QCAtMjU1LDcgKzI1Niw2IEBAIFVJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAKIFVJUHJv
Y2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCiBVSVByb2Nlc3MvU3lzdGVtUHJldmlld0NvbnRy
b2xsZXIuY3BwCiBVSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcAotVUlQcm9jZXNz
L1VJTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwCiBVSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHkuY3BwCiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZFByb3h5TWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZFByb3h5TWFwLmNwcAppbmRleCBkYzVhZGYxYTNlNGI5NGFhMDE0YjQzMGVmYTY2ZGUw
OWY5NWNhN2JhLi44YzQwYzUyNTQ2ZmZkMDRiYTE5Y2E4NzBlY2YyODZkOWZiMWQ0OGFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1h
cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJv
eHlNYXAuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQXV4aWxpYXJ5UHJvY2Vzc1By
b3h5LmgiCiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eS5oIgogI2luY2x1ZGUgIkRvd25sb2FkUHJv
eHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVj
ZWl2ZXJNYXAuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3NQcm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvVUlNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9VSU1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMjAzYzZiNjgwM2U3MWIyMzEwZWMzOTJhMGQ1ZDQwYzhmZWJkNzhmNS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9VSU1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDEwNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIlVJTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCIKLQotI2luY2x1ZGUgIldl
YlByb2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgotCi1uYW1l
c3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1VSU1lc3NhZ2VQb3J0
Q2hhbm5lbFByb3ZpZGVyJiBVSU1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpzaW5nbGV0b24o
KQotewotICAgIHN0YXRpYyBVSU1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyKiBwcm92aWRlciA9
IG5ldyBVSU1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOwotICAgIHJldHVybiAqcHJvdmlkZXI7
Ci19Ci0KLVVJTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OlVJTWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXIoKQotICAgIDogbV9yZWdpc3RyeSgqdGhpcykKLXsKLX0KLQotVUlNZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlcjo6flVJTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIoKQotewotICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi12b2lkIFVJTWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXI6OmNyZWF0ZU5ld01lc3NhZ2VQb3J0Q2hhbm5lbChjb25zdCBNZXNzYWdlUG9ydElkZW50
aWZpZXImLCBjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImKQotewotICAgIC8vIFNob3VsZCBu
ZXZlciBiZSBjYWxsZWQgaW4gdGhlIFVJIHByb2Nlc3MgcHJvdmlkZXIuCi0gICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci19Ci0KLXZvaWQgVUlNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6ZW50
YW5nbGVMb2NhbFBvcnRJblRoaXNQcm9jZXNzVG9SZW1vdGUoY29uc3QgTWVzc2FnZVBvcnRJZGVu
dGlmaWVyJiwgY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJikKLXsKLSAgICAvLyBTaG91bGQg
bmV2ZXIgYmUgY2FsbGVkIGluIHRoZSBVSSBwcm9jZXNzIHByb3ZpZGVyLgotICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotfQotCi12b2lkIFVJTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Om1l
c3NhZ2VQb3J0RGlzZW50YW5nbGVkKGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYpCi17Ci0g
ICAgLy8gU2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBpbiB0aGUgVUkgcHJvY2VzcyBwcm92aWRlci4K
LSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotdm9pZCBVSU1lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyOjptZXNzYWdlUG9ydENsb3NlZChjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXIm
KQotewotICAgIC8vIFNob3VsZCBuZXZlciBiZSBjYWxsZWQgaW4gdGhlIFVJIHByb2Nlc3MgcHJv
dmlkZXIuCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KLXZvaWQgVUlNZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlcjo6dGFrZUFsbE1lc3NhZ2VzRm9yUG9ydChjb25zdCBNZXNzYWdlUG9y
dElkZW50aWZpZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxNZXNzYWdlV2l0aE1l
c3NhZ2VQb3J0cz4mJiwgRnVuY3Rpb248dm9pZCgpPiYmKT4mJikKLXsKLSAgICAvLyBTaG91bGQg
bmV2ZXIgYmUgY2FsbGVkIGluIHRoZSBVSSBwcm9jZXNzIHByb3ZpZGVyLgotICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotfQotCi12b2lkIFVJTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnBv
c3RNZXNzYWdlVG9SZW1vdGUoY29uc3QgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmLCBjb25zdCBN
ZXNzYWdlUG9ydElkZW50aWZpZXImKQotewotICAgIC8vIFNob3VsZCBuZXZlciBiZSBjYWxsZWQg
aW4gdGhlIFVJIHByb2Nlc3MgcHJvdmlkZXIuCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19
Ci0KLXZvaWQgVUlNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6Y2hlY2tSZW1vdGVQb3J0Rm9y
QWN0aXZpdHkoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChIYXNBY3Rpdml0eSk+JiYpCi17Ci0gICAgLy8gU2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBp
biB0aGUgVUkgcHJvY2VzcyBwcm92aWRlci4KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0K
LQotdm9pZCBVSU1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpjaGVja1Byb2Nlc3NMb2NhbFBv
cnRGb3JBY3Rpdml0eShjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImIHBvcnQsIFByb2Nlc3NJ
ZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc0Fj
dGl2aXR5KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBhdXRvKiBwcm9jZXNzID0gV2Vi
UHJvY2Vzc1Byb3h5Ojpwcm9jZXNzRm9ySWRlbnRpZmllcihwcm9jZXNzSWRlbnRpZmllcik7Ci0g
ICAgaWYgKCFwcm9jZXNzKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEhhc0FjdGl2aXR5
OjpObyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBwcm9jZXNzLT5jaGVja1Byb2Nl
c3NMb2NhbFBvcnRGb3JBY3Rpdml0eShwb3J0LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvVUlNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvVUlNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjNjc5ZTNlYjAyMzQwN2Y1NTEzMDRjNGM1NDU1OTdlZDJlZmQzNzA1Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VJTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaAorKysgL2Rldi9udWxs
CkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUg
PFdlYkNvcmUvTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L01lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5Lmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1j
bGFzcyBVSU1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyIDogcHVibGljIFdlYkNvcmU6Ok1lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgVUlNZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlciYgc2luZ2xldG9uKCk7Ci0gICAgV2ViQ29yZTo6TWVzc2FnZVBvcnRD
aGFubmVsUmVnaXN0cnkmIHJlZ2lzdHJ5KCkgeyByZXR1cm4gbV9yZWdpc3RyeTsgfQotCi1wcml2
YXRlOgotICAgIFVJTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIoKTsKLSAgICB+VUlNZXNzYWdl
UG9ydENoYW5uZWxQcm92aWRlcigpIGZpbmFsOwotCi0gICAgdm9pZCBjcmVhdGVOZXdNZXNzYWdl
UG9ydENoYW5uZWwoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiBsb2NhbCwg
Y29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiByZW1vdGUpIGZpbmFsOwotICAg
IHZvaWQgZW50YW5nbGVMb2NhbFBvcnRJblRoaXNQcm9jZXNzVG9SZW1vdGUoY29uc3QgV2ViQ29y
ZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiBsb2NhbCwgY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBv
cnRJZGVudGlmaWVyJiByZW1vdGUpIGZpbmFsOwotICAgIHZvaWQgbWVzc2FnZVBvcnREaXNlbnRh
bmdsZWQoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiBsb2NhbCkgZmluYWw7
Ci0gICAgdm9pZCBtZXNzYWdlUG9ydENsb3NlZChjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElk
ZW50aWZpZXImIGxvY2FsKSBmaW5hbDsKLSAgICB2b2lkIHRha2VBbGxNZXNzYWdlc0ZvclBvcnQo
Y29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChWZWN0b3I8V2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM+JiYsIEZ1bmN0aW9u
PHZvaWQoKT4mJik+JiYpIGZpbmFsOwotICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1JlbW90ZShjb25z
dCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYsIGNvbnN0IFdlYkNvcmU6Ok1lc3Nh
Z2VQb3J0SWRlbnRpZmllciYgcmVtb3RlVGFyZ2V0KSBmaW5hbDsKLSAgICB2b2lkIGNoZWNrUmVt
b3RlUG9ydEZvckFjdGl2aXR5KGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYg
cmVtb3RlVGFyZ2V0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc0FjdGl2aXR5KT4mJiBjYWxs
YmFjaykgZmluYWw7Ci0gICAgdm9pZCBjaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eShj
b25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImLCBXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNBY3Rpdml0eSk+JiYpIGZpbmFsOwot
Ci0gICAgV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkgbV9yZWdpc3RyeTsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggZDdhZGE0NDJiMGZjYjVlYTQzNzljZmQ0ZWFiOTFjMmNlODRlMjNjOS4u
MTA1YzhjNmZmZTYzYmViNWMxNzIwZTkzN2IwN2NlMzg4ZTFmZWQwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC04NSw3ICs4NSw2IEBACiAjaW5jbHVkZSAi
VGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCiAjaW5jbHVkZSAi
VGV4dElucHV0Q29udGV4dC5oIgotI2luY2x1ZGUgIlVJTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlk
ZXIuaCIKICNpbmNsdWRlICJVUkxTY2hlbWVUYXNrUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlVu
ZG9PclJlZG8uaCIKICNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggOWQ1Yjk2
MzEyYmRiMTAzZjZjODdmMTFjNDExNzQ0YzJkOTM2MDQ5ZS4uM2UxOWY4OWYwODU0ZjEwNzhiY2I5
NGZkNGIwZGQwM2VhMTJjMzcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcApAQCAtMjE5NSwxOCArMjE5NSw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnVw
ZGF0ZVByb2Nlc3NBc3NlcnRpb25zKCkKICNlbmRpZgogfQogCi0jaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQotdm9pZCBXZWJQcm9jZXNzUG9vbDo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJD
bGllbnQoY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIGRlc3RpbmF0aW9uLCBN
ZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IHNvdXJjZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCi17Ci0gICAgc2VuZFRvTmV0d29y
a2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoZGVzdGluYXRpb24sIFdURk1vdmUo
bWVzc2FnZSksIHNvdXJjZSwgc291cmNlT3JpZ2luKSk7Ci19Ci0KLXZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRl
c3RpbmF0aW9uLCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIGNvbnN0IFNlcnZp
Y2VXb3JrZXJPckNsaWVudElkZW50aWZpZXImIHNvdXJjZSwgU1dTZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKLXsKLSAgICBzZW5kVG9OZXR3b3JraW5nUHJv
Y2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpQb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlcihkZXN0aW5hdGlvbiwgV1RGTW92ZShtZXNzYWdlKSwgc291
cmNlLCBjb25uZWN0aW9uSWRlbnRpZmllcikpOwotfQotI2VuZGlmCi0KIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnJlaW5zdGF0ZU5ldHdvcmtQcm9jZXNzQXNzZXJ0aW9uU3RhdGUoTmV0d29ya1Byb2Nl
c3NQcm94eSYgbmV3TmV0d29ya1Byb2Nlc3NQcm94eSkKIHsKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggMDg2ZTM4
NmE2Yzc3NTQ3YjA2YjE3NDVhNDYyOTQxMmI3OGMwNWJmNS4uMTFmMjM5MTNjMjk0NDkxMDAwOTIw
NzhjZmVjYjkxNjY4YTkxYzMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oCkBAIC00NzEsMTEgKzQ3MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyUGVybWFu
ZW50Q3JlZGVudGlhbHNGb3JQcm90ZWN0aW9uU3BhY2UoV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNl
JiYpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgdm9pZCBwb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpNZXNzYWdl
V2l0aE1lc3NhZ2VQb3J0cyYmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3Vy
Y2VJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7Ci0gICAgdm9pZCBwb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBk
ZXN0aW5hdGlvbiwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgY29uc3QgV2Vi
Q29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciYgc291cmNlLCBXZWJDb3JlOjpT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKLSNlbmRpZgotCiAgICAgc3RhdGljIHVpbnQ2
NF90IHJlZ2lzdGVyUHJvY2Vzc1Bvb2xDcmVhdGlvbkxpc3RlbmVyKEZ1bmN0aW9uPHZvaWQoV2Vi
UHJvY2Vzc1Bvb2wmKT4mJik7CiAgICAgc3RhdGljIHZvaWQgdW5yZWdpc3RlclByb2Nlc3NQb29s
Q3JlYXRpb25MaXN0ZW5lcih1aW50NjRfdCBpZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5tZXNzYWdlcy5pbgppbmRleCBlOGJlOTY1
NmI1NzNhMGFlZGRlNjk5MmIwYzc1MzVmZGEwZDY3OGU5Li5kM2Y3ZWU4Yzg1ZGIyNDM5MWMxMTRk
YzVlZWQ5NDViZGQ5ZDA4NDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5tZXNzYWdlcy5pbgpAQCAtMzksOSArMzksNCBAQCBtZXNzYWdlcyAtPiBX
ZWJQcm9jZXNzUG9vbCB7CiAKICAgICBTZXRXZWJQcm9jZXNzSGFzVXBsb2FkcyhXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSUQpCiAgICAgQ2xlYXJXZWJQcm9jZXNzSGFzVXBsb2Fk
cyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSUQpCi0KLSNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCi0gICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoc3RydWN0
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRp
Zmllciwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UsIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFN0cmluZyBz
b3VyY2VPcmlnaW4pCi0gICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdl
V2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnRJ
ZGVudGlmaWVyIHNvdXJjZSwgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBj
b25uZWN0aW9uSWRlbnRpZmllcikKLSNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggYWY2NzQ4YzlmNzM4MTVmNzYwOTg1OGY1MDkzYjli
NjA5YTY1NzI2NS4uNzM0MGRhYzNjNDllODcyZWE2Zjc1ZDJlYmIyYzIzMjZlMGVhOWM2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zNyw3ICsz
Nyw2IEBACiAjaW5jbHVkZSAiUHJvdmlzaW9uYWxQYWdlUHJveHkuaCIKICNpbmNsdWRlICJUZXh0
Q2hlY2tlci5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKLSNpbmNsdWRlICJVSU1l
c3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKICNpbmNs
dWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yVXRp
bGl0aWVzLmgiCkBAIC0xODYsOSArMTg1LDYgQEAgV2ViUHJvY2Vzc1Byb3h5Ojp+V2ViUHJvY2Vz
c1Byb3h5KCkKICAgICB3aGlsZSAobV9udW1iZXJPZlRpbWVzU3VkZGVuVGVybWluYXRpb25XYXNE
aXNhYmxlZC0tID4gMCkKICAgICAgICAgV2ViQ29yZTo6ZW5hYmxlU3VkZGVuVGVybWluYXRpb24o
KTsKIAotICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBtX2xvY2FsUG9ydEFjdGl2aXR5Q29tcGxl
dGlvbkhhbmRsZXJzLnZhbHVlcygpKQotICAgICAgICBjYWxsYmFjayhNZXNzYWdlUG9ydENoYW5u
ZWxQcm92aWRlcjo6SGFzQWN0aXZpdHk6Ok5vKTsKLQogI2lmIFBMQVRGT1JNKE1BQykKICAgICBI
aWdoUGVyZm9ybWFuY2VHUFVNYW5hZ2VyOjpzaW5nbGV0b24oKS5yZW1vdmVQcm9jZXNzUmVxdWly
aW5nSGlnaFBlcmZvcm1hbmNlKHRoaXMpOwogI2VuZGlmCkBAIC0zNDUsOSArMzQxLDYgQEAgdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OnNodXREb3duKCkKIAogICAgIG1fdXNlckluaXRpYXRlZEFjdGlv
bk1hcC5jbGVhcigpOwogCi0gICAgZm9yIChhdXRvJiBwb3J0IDogbV9wcm9jZXNzRW50YW5nbGVk
UG9ydHMpCi0gICAgICAgIFVJTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnNpbmdsZXRvbigp
LnJlZ2lzdHJ5KCkuZGlkQ2xvc2VNZXNzYWdlUG9ydChwb3J0KTsKLQogICAgIG1fcHJvY2Vzc1Bv
b2wtPmRpc2Nvbm5lY3RQcm9jZXNzKHRoaXMpOwogfQogCkBAIC0xNDE3LDk4ICsxNDEwLDYgQEAg
Y29uc3QgSGFzaFNldDxTdHJpbmc+JiBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtUGF0aHNXaXRo
QXNzdW1lZFJlYWRBY2Nlc3MoKQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpj
cmVhdGVOZXdNZXNzYWdlUG9ydENoYW5uZWwoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBw
b3J0MSwgY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBwb3J0MikKLXsKLSAgICBtX3Byb2Nl
c3NFbnRhbmdsZWRQb3J0cy5hZGQocG9ydDEpOwotICAgIG1fcHJvY2Vzc0VudGFuZ2xlZFBvcnRz
LmFkZChwb3J0Mik7Ci0gICAgVUlNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6c2luZ2xldG9u
KCkucmVnaXN0cnkoKS5kaWRDcmVhdGVNZXNzYWdlUG9ydENoYW5uZWwocG9ydDEsIHBvcnQyKTsK
LX0KLQotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmVudGFuZ2xlTG9jYWxQb3J0SW5UaGlzUHJvY2Vz
c1RvUmVtb3RlKGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYgbG9jYWwsIGNvbnN0IE1lc3Nh
Z2VQb3J0SWRlbnRpZmllciYgcmVtb3RlKQotewotICAgIG1fcHJvY2Vzc0VudGFuZ2xlZFBvcnRz
LmFkZChsb2NhbCk7Ci0gICAgVUlNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6c2luZ2xldG9u
KCkucmVnaXN0cnkoKS5kaWRFbnRhbmdsZUxvY2FsVG9SZW1vdGUobG9jYWwsIHJlbW90ZSwgY29y
ZVByb2Nlc3NJZGVudGlmaWVyKCkpOwotCi0gICAgYXV0byogY2hhbm5lbCA9IFVJTWVzc2FnZVBv
cnRDaGFubmVsUHJvdmlkZXI6OnNpbmdsZXRvbigpLnJlZ2lzdHJ5KCkuZXhpc3RpbmdDaGFubmVs
Q29udGFpbmluZ1BvcnQobG9jYWwpOwotICAgIGlmIChjaGFubmVsICYmIGNoYW5uZWwtPmhhc0Fu
eU1lc3NhZ2VzUGVuZGluZ09ySW5GbGlnaHQoKSkKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2Vi
UHJvY2Vzczo6TWVzc2FnZXNBdmFpbGFibGVGb3JQb3J0KGxvY2FsKSwgMCk7Ci19Ci0KLXZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjptZXNzYWdlUG9ydERpc2VudGFuZ2xlZChjb25zdCBNZXNzYWdlUG9y
dElkZW50aWZpZXImIHBvcnQpCi17Ci0gICAgYXV0byByZXN1bHQgPSBtX3Byb2Nlc3NFbnRhbmds
ZWRQb3J0cy5yZW1vdmUocG9ydCk7Ci0gICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdCk7
Ci0KLSAgICBVSU1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpzaW5nbGV0b24oKS5yZWdpc3Ry
eSgpLmRpZERpc2VudGFuZ2xlTWVzc2FnZVBvcnQocG9ydCk7Ci19Ci0KLXZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjptZXNzYWdlUG9ydENsb3NlZChjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImIHBv
cnQpCi17Ci0gICAgVUlNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6c2luZ2xldG9uKCkucmVn
aXN0cnkoKS5kaWRDbG9zZU1lc3NhZ2VQb3J0KHBvcnQpOwotfQotCi12b2lkIFdlYlByb2Nlc3NQ
cm94eTo6dGFrZUFsbE1lc3NhZ2VzRm9yUG9ydChjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXIm
IHBvcnQsIHVpbnQ2NF90IG1lc3NhZ2VzQ2FsbGJhY2tJZGVudGlmaWVyKQotewotICAgIFVJTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnNpbmdsZXRvbigpLnJlZ2lzdHJ5KCkudGFrZUFsbE1l
c3NhZ2VzRm9yUG9ydChwb3J0LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBtZXNzYWdlc0NhbGxiYWNrSWRlbnRpZmllcl0oVmVjdG9yPE1lc3NhZ2VXaXRoTWVzc2FnZVBv
cnRzPiYmIG1lc3NhZ2VzLCBGdW5jdGlvbjx2b2lkKCk+JiYgZGVsaXZlcnlDYWxsYmFjaykgewot
Ci0gICAgICAgIHN0YXRpYyB1aW50NjRfdCBjdXJyZW50TWVzc2FnZUJhdGNoSWRlbnRpZmllcjsK
LSAgICAgICAgYXV0byByZXN1bHQgPSBtX21lc3NhZ2VCYXRjaERlbGl2ZXJ5Q29tcGxldGlvbkhh
bmRsZXJzLmVuc3VyZSgrK2N1cnJlbnRNZXNzYWdlQmF0Y2hJZGVudGlmaWVyLCBbZGVsaXZlcnlD
YWxsYmFjayA9IFdURk1vdmUoZGVsaXZlcnlDYWxsYmFjayldKCkgbXV0YWJsZSB7Ci0gICAgICAg
ICAgICByZXR1cm4gV1RGTW92ZShkZWxpdmVyeUNhbGxiYWNrKTsKLSAgICAgICAgfSk7Ci0gICAg
ICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQuaXNOZXdFbnRyeSk7Ci0KLSAgICAgICAg
c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RGlkVGFrZUFsbE1lc3NhZ2VzRm9yUG9ydChXVEZN
b3ZlKG1lc3NhZ2VzKSwgbWVzc2FnZXNDYWxsYmFja0lkZW50aWZpZXIsIGN1cnJlbnRNZXNzYWdl
QmF0Y2hJZGVudGlmaWVyKSwgMCk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpkaWREZWxpdmVyTWVzc2FnZVBvcnRNZXNzYWdlcyh1aW50NjRfdCBtZXNzYWdlQmF0Y2hJZGVu
dGlmaWVyKQotewotICAgIGF1dG8gY2FsbGJhY2sgPSBtX21lc3NhZ2VCYXRjaERlbGl2ZXJ5Q29t
cGxldGlvbkhhbmRsZXJzLnRha2UobWVzc2FnZUJhdGNoSWRlbnRpZmllcik7Ci0gICAgQVNTRVJU
KGNhbGxiYWNrKTsKLSAgICBjYWxsYmFjaygpOwotfQotCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6
cG9zdE1lc3NhZ2VUb1JlbW90ZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIGNv
bnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYgcG9ydCkKLXsKLSAgICBpZiAoVUlNZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlcjo6c2luZ2xldG9uKCkucmVnaXN0cnkoKS5kaWRQb3N0TWVzc2FnZVRv
UmVtb3RlKFdURk1vdmUobWVzc2FnZSksIHBvcnQpKSB7Ci0gICAgICAgIC8vIExvb2sgdXAgdGhl
IHByb2Nlc3MgZm9yIHRoYXQgcG9ydAotICAgICAgICBhdXRvKiBjaGFubmVsID0gVUlNZXNzYWdl
UG9ydENoYW5uZWxQcm92aWRlcjo6c2luZ2xldG9uKCkucmVnaXN0cnkoKS5leGlzdGluZ0NoYW5u
ZWxDb250YWluaW5nUG9ydChwb3J0KTsKLSAgICAgICAgQVNTRVJUKGNoYW5uZWwpOwotICAgICAg
ICBhdXRvIHByb2Nlc3NJZGVudGlmaWVyID0gY2hhbm5lbC0+cHJvY2Vzc0ZvclBvcnQocG9ydCk7
Ci0gICAgICAgIGlmIChwcm9jZXNzSWRlbnRpZmllcikgewotICAgICAgICAgICAgaWYgKGF1dG8q
IHByb2Nlc3MgPSBXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NGb3JJZGVudGlmaWVyKCpwcm9jZXNz
SWRlbnRpZmllcikpCi0gICAgICAgICAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
UHJvY2Vzczo6TWVzc2FnZXNBdmFpbGFibGVGb3JQb3J0KHBvcnQpLCAwKTsKLSAgICAgICAgfQot
ICAgIH0KLX0KLQotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmNoZWNrUmVtb3RlUG9ydEZvckFjdGl2
aXR5KGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciBwb3J0LCB1aW50NjRfdCBj
YWxsYmFja0lkZW50aWZpZXIpCi17Ci0gICAgVUlNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6
c2luZ2xldG9uKCkucmVnaXN0cnkoKS5jaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShwb3J0LCBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFja0lkZW50aWZpZXJd
KE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSBoYXNBY3Rpdml0eSkgewot
ICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEaWRDaGVja1JlbW90ZVBvcnRGb3JB
Y3Rpdml0eShjYWxsYmFja0lkZW50aWZpZXIsIGhhc0FjdGl2aXR5ID09IE1lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eTo6WWVzKSwgMCk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpjaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eShjb25zdCBN
ZXNzYWdlUG9ydElkZW50aWZpZXImIHBvcnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTWVzc2Fn
ZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5KT4mJiBjYWxsYmFjaykKLXsKLSAgICBz
dGF0aWMgdWludDY0X3QgY3VycmVudENhbGxiYWNrSWRlbnRpZmllcjsKLSAgICBhdXRvIHJlc3Vs
dCA9IG1fbG9jYWxQb3J0QWN0aXZpdHlDb21wbGV0aW9uSGFuZGxlcnMuZW5zdXJlKCsrY3VycmVu
dENhbGxiYWNrSWRlbnRpZmllciwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0
YWJsZSB7Ci0gICAgICAgIHJldHVybiBXVEZNb3ZlKGNhbGxiYWNrKTsKLSAgICB9KTsKLSAgICBB
U1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwotCi0gICAgc2VuZChNZXNz
YWdlczo6V2ViUHJvY2Vzczo6Q2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkocG9ydCwg
Y3VycmVudENhbGxiYWNrSWRlbnRpZmllciksIDApOwotfQotCi12b2lkIFdlYlByb2Nlc3NQcm94
eTo6ZGlkQ2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkodWludDY0X3QgY2FsbGJhY2tJ
ZGVudGlmaWVyLCBib29sIGlzTG9jYWxseVJlYWNoYWJsZSkKLXsKLSAgICBhdXRvIGNhbGxiYWNr
ID0gbV9sb2NhbFBvcnRBY3Rpdml0eUNvbXBsZXRpb25IYW5kbGVycy50YWtlKGNhbGxiYWNrSWRl
bnRpZmllcik7Ci0gICAgaWYgKCFjYWxsYmFjaykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY2Fs
bGJhY2soaXNMb2NhbGx5UmVhY2hhYmxlID8gTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhh
c0FjdGl2aXR5OjpZZXMgOiBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHk6
Ok5vKTsKLX0KLQogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZENvbGxlY3RQcmV3YXJtSW5mb3Jt
YXRpb24oY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgY29uc3QgV2Vi
Q29yZTo6UHJld2FybUluZm9ybWF0aW9uJiBwcmV3YXJtSW5mb3JtYXRpb24pCiB7CiAgICAgcHJv
Y2Vzc1Bvb2woKS5kaWRDb2xsZWN0UHJld2FybUluZm9ybWF0aW9uKGRvbWFpbiwgcHJld2FybUlu
Zm9ybWF0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5k
ZXggOGVkZjUzMDQwZmMxNWI0OTVmMTk1NGQzNmQxZWQyNjQzZTFhOTgyZS4uYmRhMDg1OTU1Zjhl
MjE1NmNiZDhmYjZkNzg4ZGE2NjAxMzk1ZjNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTQwLDggKzQwLDYgQEAKICNpbmNsdWRlICJXZWJQYWdlUHJv
eHlJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0
SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdp
c3RyYWJsZURvbWFpbi5oPgpAQCAtMjQxLDggKzIzOSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
ZEV4Y2VlZEFjdGl2ZU1lbW9yeUxpbWl0KCk7CiAgICAgdm9pZCBkaWRFeGNlZWRJbmFjdGl2ZU1l
bW9yeUxpbWl0KCk7CiAKLSAgICB2b2lkIGNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5
KGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5KT4m
Jik7Ci0KICAgICB2b2lkIGRpZENvbW1pdFByb3Zpc2lvbmFsTG9hZCgpIHsgbV9oYXNDb21taXR0
ZWRBbnlQcm92aXNpb25hbExvYWRzID0gdHJ1ZTsgfQogICAgIGJvb2wgaGFzQ29tbWl0dGVkQW55
UHJvdmlzaW9uYWxMb2FkcygpIGNvbnN0IHsgcmV0dXJuIG1faGFzQ29tbWl0dGVkQW55UHJvdmlz
aW9uYWxMb2FkczsgfQogCkBAIC0zNDMsMTYgKzMzOSw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBj
YW5CZUFkZGVkVG9XZWJQcm9jZXNzQ2FjaGUoKSBjb25zdDsKICAgICB2b2lkIHNob3VsZFRlcm1p
bmF0ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAotICAgIHZvaWQgY3JlYXRl
TmV3TWVzc2FnZVBvcnRDaGFubmVsKGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmll
ciYgcG9ydDEsIGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYgcG9ydDIpOwot
ICAgIHZvaWQgZW50YW5nbGVMb2NhbFBvcnRJblRoaXNQcm9jZXNzVG9SZW1vdGUoY29uc3QgV2Vi
Q29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiBsb2NhbCwgY29uc3QgV2ViQ29yZTo6TWVzc2Fn
ZVBvcnRJZGVudGlmaWVyJiByZW1vdGUpOwotICAgIHZvaWQgbWVzc2FnZVBvcnREaXNlbnRhbmds
ZWQoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJik7Ci0gICAgdm9pZCBtZXNz
YWdlUG9ydENsb3NlZChjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImKTsKLSAg
ICB2b2lkIHRha2VBbGxNZXNzYWdlc0ZvclBvcnQoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJ
ZGVudGlmaWVyJiwgdWludDY0X3QgbWVzc2FnZXNDYWxsYmFja0lkZW50aWZpZXIpOwotICAgIHZv
aWQgcG9zdE1lc3NhZ2VUb1JlbW90ZShXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYm
LCBjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImKTsKLSAgICB2b2lkIGNoZWNr
UmVtb3RlUG9ydEZvckFjdGl2aXR5KGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmll
ciwgdWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyKTsKLSAgICB2b2lkIGRpZERlbGl2ZXJNZXNz
YWdlUG9ydE1lc3NhZ2VzKHVpbnQ2NF90IG1lc3NhZ2VCYXRjaElkZW50aWZpZXIpOwotICAgIHZv
aWQgZGlkQ2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkodWludDY0X3QgY2FsbGJhY2tJ
ZGVudGlmaWVyLCBib29sIGlzTG9jYWxseVJlYWNoYWJsZSk7Ci0KICAgICBib29sIGhhc1Byb3Zp
c2lvbmFsUGFnZVdpdGhJRChXZWJQYWdlUHJveHlJZGVudGlmaWVyKSBjb25zdDsKICAgICBib29s
IGlzQWxsb3dlZFRvVXBkYXRlQmFja0ZvcndhcmRJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0m
KSBjb25zdDsKIApAQCAtNDc5LDEwICs0NjUsNiBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5PiBtX3VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk7CiAjZW5kaWYKIAotICAgIEhhc2hTZXQ8V2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVu
dGlmaWVyPiBtX3Byb2Nlc3NFbnRhbmdsZWRQb3J0czsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBG
dW5jdGlvbjx2b2lkKCk+PiBtX21lc3NhZ2VCYXRjaERlbGl2ZXJ5Q29tcGxldGlvbkhhbmRsZXJz
OwotICAgIEhhc2hNYXA8dWludDY0X3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5KT4+IG1fbG9jYWxQb3J0QWN0
aXZpdHlDb21wbGV0aW9uSGFuZGxlcnM7Ci0KICAgICB1bnNpZ25lZCBtX3N1c3BlbmRlZFBhZ2VD
b3VudCB7IDAgfTsKICAgICBib29sIG1faGFzQ29tbWl0dGVkQW55UHJvdmlzaW9uYWxMb2FkcyB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzUHJld2FybWVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDMyYmFmZWE5ZTEw
OTU4YzI1Y2QxOTRkYTE4NDUzNmFkMDkzZjc1MmQuLmQ2ZDA2Mzk4NTYxNGM1MjQyYWQyMjVmMTg1
MmY1ZjhjZTQwOGI5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTU0LDE2ICs1NCw2IEBAIG1lc3NhZ2VzIC0+IFdl
YlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgTWVtb3J5UHJlc3N1cmVTdGF0dXND
aGFuZ2VkKGJvb2wgaXNVbmRlck1lbW9yeVByZXNzdXJlKQogICAgIERpZEV4Y2VlZEluYWN0aXZl
TWVtb3J5TGltaXRXaGlsZUFjdGl2ZSgpCiAKLSAgICBDcmVhdGVOZXdNZXNzYWdlUG9ydENoYW5u
ZWwoc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciBwb3J0MSwgc3RydWN0IFdl
YkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciBwb3J0MikKLSAgICBFbnRhbmdsZUxvY2FsUG9y
dEluVGhpc1Byb2Nlc3NUb1JlbW90ZShzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlm
aWVyIGxvY2FsLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIHJlbW90ZSkK
LSAgICBNZXNzYWdlUG9ydERpc2VudGFuZ2xlZChzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJ
ZGVudGlmaWVyIGxvY2FsKQotICAgIE1lc3NhZ2VQb3J0Q2xvc2VkKHN0cnVjdCBXZWJDb3JlOjpN
ZXNzYWdlUG9ydElkZW50aWZpZXIgbG9jYWwpCi0gICAgVGFrZUFsbE1lc3NhZ2VzRm9yUG9ydChz
dHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIHBvcnQsIHVpbnQ2NF90IG1lc3Nh
Z2VzQ2FsbGJhY2tJZGVudGlmaWVyKQotICAgIFBvc3RNZXNzYWdlVG9SZW1vdGUoc3RydWN0IFdl
YkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UsIHN0cnVjdCBXZWJDb3JlOjpN
ZXNzYWdlUG9ydElkZW50aWZpZXIgcmVtb3RlKQotICAgIENoZWNrUmVtb3RlUG9ydEZvckFjdGl2
aXR5KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgcG9ydCwgdWludDY0X3Qg
Y2FsbGJhY2tJZGVudGlmaWVyKQotICAgIERpZERlbGl2ZXJNZXNzYWdlUG9ydE1lc3NhZ2VzKHVp
bnQ2NF90IG1lc3NhZ2VCYXRjaElkZW50aWZpZXIpCi0gICAgRGlkQ2hlY2tQcm9jZXNzTG9jYWxQ
b3J0Rm9yQWN0aXZpdHkodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBib29sIGlzTG9jYWxs
eVJlYWNoYWJsZSkKLQogICAgIERpZENvbGxlY3RQcmV3YXJtSW5mb3JtYXRpb24oV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gZG9tYWluLCBzdHJ1Y3QgV2ViQ29yZTo6UHJld2FybUluZm9ybWF0
aW9uIHByZXdhcm1JbmZvcm1hdGlvbikKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjNkNGYwOGMy
ZGRjOWVjMTMxY2JmMmU0NmJjZWM3MDBhYmE5ZmVhOC4uNTBmNzQ2YTM4N2M4Y2NiMWVkYjZhMzdh
M2M1NWYyYWY5NzI3MTY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0zMDkwLDYgKzMwOTAsOCBAQAogCQk0MTA0ODJDQjFEREQyRkI1
MDBGMDA2RDAgLyogUlRDTmV0d29yay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSVENOZXR3b3JrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEw
NDgyQ0MxREREMkZCNTAwRjAwNkQwIC8qIFJUQ05ldHdvcmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUlRDTmV0d29yay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTExNDM2MzIwRjY3N0IxMDAyNkY5MTIgLyogSW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdFVzZXJTY3JpcHRJbW1l
ZGlhdGVseS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTExNEE3ODIzMTZFQzNG
MDBCNTYwMDcgLyogTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTExNEE3OTIzMTZFQzNGMDBCNTYw
MDcgLyogTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTI4NkVGMjFDOEE5MEMwMDNB
ODU1MCAvKiBNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVkaWFDYXB0dXJlVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxMTI4NkYwMjFDOEE5MEQwMDNBODU1MCAvKiBNZWRpYUNhcHR1cmVVdGlsaXRpZXMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRpYUNhcHR1cmVV
dGlsaXRpZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTJCNTQ3MUY5RkQz
QUIwMEU2Nzg3NSAvKiBOZXR3b3JrUlRDUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1JUQ1Jlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTY3NDgsNiArNjc1MCw4IEBACiAJCQkJNDEwM0ZCQTEyMDYxQkRCNzAw
QzJFQUY4IC8qIE5ldHdvcmtMb2FkQ2hlY2tlci5oICovLAogCQkJCTgzRDQ1NEQ2MUJFOUQzQzQw
MDZDOTNCRCAvKiBOZXR3b3JrTG9hZENsaWVudC5oICovLAogCQkJCTgzOTE0OTYzMUJFQTgzODUw
MEQyRDk1MyAvKiBOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCAqLywKKwkJCQk0MTExNEE3OTIzMTZF
QzNGMDBCNTYwMDcgLyogTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcCAqLywK
KwkJCQk0MTExNEE3ODIzMTZFQzNGMDBCNTYwMDcgLyogTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyLmggKi8sCiAJCQkJNTEwQ0M3REYxNjEzOEUyOTAwRDAzRUQzIC8qIE5ldHdvcmtQ
cm9jZXNzLmNwcCAqLywKIAkJCQk1MTBDQzdFMDE2MTM4RTI5MDBEMDNFRDMgLyogTmV0d29ya1By
b2Nlc3MuaCAqLywKIAkJCQk1MUE4QTYxNzE2MjdGNUJCMDAwRDkwRTkgLyogTmV0d29ya1Byb2Nl
c3MubWVzc2FnZXMuaW4gKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCA4ZGE3Yzkx
NDFlZDM5OWRkMjJjMWMzYTdiZmVkNzIxOGE3OWQ4OGIwLi44NWE0YmQ5ZjMyZDkyZjQxODIzNDg5
YjViNDNmYjZmMDRlZWM1YTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTU3LDYg
KzU3LDcgQEAKICNpbmNsdWRlICJXZWJTb2NrZXRTdHJlYW1NZXNzYWdlcy5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvQ2FjaGVkUmVzb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeUNhY2hl
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlUG9ydC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2hhcmVkQnVmZmVyLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogCkBAIC0yODksNiAr
MjkwLDE2IEBAIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uOjppbml0aWFsaXplU1dDbGllbnRDb25uZWN0CiAKICAgICByZXR1cm4gaWRlbnRpZmll
cjsKIH0KLQogI2VuZGlmCisKK3ZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjptZXNzYWdl
c0F2YWlsYWJsZUZvclBvcnQoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiBt
ZXNzYWdlUG9ydElkZW50aWZpZXIpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubWVz
c2FnZXNBdmFpbGFibGVGb3JQb3J0KG1lc3NhZ2VQb3J0SWRlbnRpZmllcik7Cit9CisKK3ZvaWQg
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0
eShjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImIG1lc3NhZ2VQb3J0SWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykKK3sKKyAgICBj
YWxsYmFjayhXZWJDb3JlOjpNZXNzYWdlUG9ydDo6aXNFeGlzdGluZ01lc3NhZ2VQb3J0TG9jYWxs
eVJlYWNoYWJsZShtZXNzYWdlUG9ydElkZW50aWZpZXIpKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDYyNmRhYjExYjJkZjI5OTRjYWRiYTc3
M2Y5MjUxMDhmMWM1NzliNTYuLjhiMDg2YjQ5ZjM2MmVlMmQyMjUzMTk4MzJmMzE0NDdjZGYwMTY1
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC00NSw2ICs0NSw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBj
bGFzcyBSZXNvdXJjZVJlc3BvbnNlOworc3RydWN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllcjsKK3N0
cnVjdCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0czsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBA
IC05Myw2ICs5NSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGaW5pc2hQcmVjb25uZWN0aW9u
KHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JiYpOwogICAgIHZvaWQgc2V0T25MaW5lU3RhdGUoYm9vbCBpc09uTGluZSk7CiAKKyAgICB2b2lk
IGNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQ
b3J0SWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZv
aWQgbWVzc2FnZXNBdmFpbGFibGVGb3JQb3J0KGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRl
bnRpZmllciYpOworCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKICAgICAvLyBNZXNz
YWdlIGhhbmRsZXJzLgogICAgIHZvaWQgZGlkQ2FjaGVSZXNvdXJjZShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiwgUEFMOjpT
ZXNzaW9uSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4
IDc0MjBmODIxNjEzOGU3ZTEwOTA1ZGYxYjQ2MDIwOWY3YzVjNWJlNzkuLjUxNzcxNWY1OWFjZmY1
YTEwMjU1MmMxNzhiM2M3YmRkZDYwYmM2YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KQEAgLTI5LDQgKzI5LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKICAgICBEaWRGaW5pc2hQaW5nTG9hZCh1aW50
NjRfdCBwaW5nTG9hZElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCiAgICAgRGlkRmluaXNoUHJlY29ubmVj
dGlvbih1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciBlcnJvcikKICAgICBTZXRPbkxpbmVTdGF0ZShib29sIGlzT25MaW5lKTsKKworICAgIENo
ZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9y
dElkZW50aWZpZXIgcG9ydCkgLT4gKGJvb2wgaXNMb2NhbGx5UmVhY2hhYmxlKSBBc3luYworICAg
IE1lc3NhZ2VzQXZhaWxhYmxlRm9yUG9ydChzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVu
dGlmaWVyIHBvcnQpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAppbmRleCAzMzI3OTMzOTVlMGQ4YzU3
MWZlYTI4ODFmN2I3MWZhNjY1ZDBhZTk0Li45NjVhZGFkNDNhNzUzNDA0MWQzNDEyYjY3YzgwMWJj
YjU4ZjNhZmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNs
dWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudEZldGNoLmgiCiAjaW5jbHVk
ZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgpAQCAt
MTA5LDkgKzExMCw3IEBAIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpyZW1vdmVTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoU2VydmljZVdvcmtlCiAKIHZvaWQgV2ViU1dDbGll
bnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYg
bWVzc2FnZSwgY29uc3QgU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciYgc291cmNlSWRl
bnRpZmllcikKIHsKLSAgICAvLyBGSVhNRTogVGVtcG9yYXJpbHkgcGlwZSB0aGUgU1cgcG9zdE1l
c3NhZ2UgbWVzc2FnZXMgdmlhIHRoZSBVSVByb2Nlc3Mgc2luY2UgdGhpcyBpcyB3aGVyZSB0aGUg
TWVzc2FnZVBvcnQgcmVnaXN0cnkgbGl2ZXMKLSAgICAvLyBhbmQgdGhpcyBhdm9pZHMgcmFjZXMu
Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Bv
b2w6OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKGRlc3RpbmF0aW9uSWRlbnRpZmllciwgV1RG
TW92ZShtZXNzYWdlKSwgc291cmNlSWRlbnRpZmllciwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIoKSksIDApOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIgeyBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFdU
Rk1vdmUobWVzc2FnZSksIHNvdXJjZUlkZW50aWZpZXIsIHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyKCkgfSwgMCk7CiB9CiAKIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpyZWdpc3RlclNl
cnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgY29uc3Qg
V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEmIGRhdGEsIGNvbnN0IE9wdGlvbmFsPFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiYgY29udHJvbGxpbmdT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggOTIzZGI4MDI4ZGE3
YjNkZmIyYTk5NGVkNWE5MTYxMTdmYzUyNDhhNi4uYzE5ZWExZGYyZmI4ZGVjNDA0MjRmYWEzNjE5
Zjk3N2E1OTM0ZTEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAt
MjgwLDkgKzI4MCw3IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN5bmNU
ZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIKIAogdm9pZCBXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoY29u
c3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIGRlc3RpbmF0aW9uSWRlbnRpZmllciwg
TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKIHsKLSAgICAv
LyBGSVhNRTogVGVtcG9yYXJpbHkgcGlwZSB0aGUgU1cgcG9zdE1lc3NhZ2UgbWVzc2FnZXMgdmlh
IHRoZSBVSVByb2Nlc3Mgc2luY2UgdGhpcyBpcyB3aGVyZSB0aGUgTWVzc2FnZVBvcnQgcmVnaXN0
cnkgbGl2ZXMKLSAgICAvLyBhbmQgdGhpcyBhdm9pZHMgcmFjZXMuCi0gICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Bvb2w6OlBvc3RNZXNzYWdlVG9T
ZXJ2aWNlV29ya2VyQ2xpZW50KGRlc3RpbmF0aW9uSWRlbnRpZmllciwgV1RGTW92ZShtZXNzYWdl
KSwgc291cmNlSWRlbnRpZmllciwgc291cmNlT3JpZ2luKSwgMCk7CisgICAgbV9jb25uZWN0aW9u
VG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGRlc3RpbmF0aW9uSWRlbnRpZmllciwgV1RGTW92ZSht
ZXNzYWdlKSwgc291cmNlSWRlbnRpZmllciwgc291cmNlT3JpZ2luKSwgMCk7CiB9CiAKIHZvaWQg
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmRpZEZpbmlzaEluc3RhbGwoT3B0aW9uYWw8
U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiBqb2JEYXRhSWRlbnRpZmllciwgU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGJvb2wgd2FzU3VjY2Vz
c2Z1bCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwCmlu
ZGV4IDhlNjIxNmE3NzE3ODA3ZWVjY2ZiN2Q0NTg0ODQ3ZDc1NmQ3OTQwYzMuLmJhMzVmN2E2MzVh
MGQ0ZWY2YWQ1ZjAxMTA5ODAxNGVkMjdhNTJlNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcApAQCAtMjYsOCArMjYsOSBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIldlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgiCiAKKyNp
bmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
LmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9N
ZXNzYWdlUG9ydC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnRJZGVudGlmaWVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cy5oPgpAQCAtNTAsNjYg
KzUxLDQzIEBAIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjp+V2ViTWVzc2FnZVBvcnRD
aGFubmVsUHJvdmlkZXIoKQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCitzdGF0aWMg
aW5saW5lIElQQzo6Q29ubmVjdGlvbiYgbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkKK3sKKyAg
ICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpOworfQorCiB2b2lkIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFBy
b3ZpZGVyOjpjcmVhdGVOZXdNZXNzYWdlUG9ydENoYW5uZWwoY29uc3QgTWVzc2FnZVBvcnRJZGVu
dGlmaWVyJiBwb3J0MSwgY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBwb3J0MikKIHsKLSAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkNyZWF0ZU5ld01lc3NhZ2VQb3J0Q2hhbm5lbChw
b3J0MSwgcG9ydDIpLCAwKTsKKyAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q3JlYXRlTmV3TWVzc2FnZVBv
cnRDaGFubmVsIHsgcG9ydDEsIHBvcnQyIH0sIDApOwogfQogCiB2b2lkIFdlYk1lc3NhZ2VQb3J0
Q2hhbm5lbFByb3ZpZGVyOjplbnRhbmdsZUxvY2FsUG9ydEluVGhpc1Byb2Nlc3NUb1JlbW90ZShj
b25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImIGxvY2FsLCBjb25zdCBNZXNzYWdlUG9ydElkZW50
aWZpZXImIHJlbW90ZSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkVudGFuZ2xl
TG9jYWxQb3J0SW5UaGlzUHJvY2Vzc1RvUmVtb3RlKGxvY2FsLCByZW1vdGUpLCAwKTsKKyAgICBu
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6RW50YW5nbGVMb2NhbFBvcnRJblRoaXNQcm9jZXNzVG9SZW1vdGUgeyBs
b2NhbCwgcmVtb3RlIH0sIDApOwogfQogCiB2b2lkIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3Zp
ZGVyOjptZXNzYWdlUG9ydERpc2VudGFuZ2xlZChjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXIm
IHBvcnQpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpNZXNzYWdlUG9ydERpc2Vu
dGFuZ2xlZChwb3J0KSwgMCk7CisgICAgbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Ok1lc3NhZ2VQb3J0RGlzZW50
YW5nbGVkIHsgcG9ydCB9LCAwKTsKIH0KIAogdm9pZCBXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlcjo6bWVzc2FnZVBvcnRDbG9zZWQoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBwb3J0
KQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6TWVzc2FnZVBvcnRDbG9zZWQocG9y
dCksIDApOworICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpNZXNzYWdlUG9ydENsb3NlZCB7IHBvcnQgfSwg
MCk7CiB9CiAKIHZvaWQgV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnRha2VBbGxNZXNz
YWdlc0ZvclBvcnQoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBwb3J0LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFZlY3RvcjxNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cz4mJiwgRnVuY3Rpb248
dm9pZCgpPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwotICAgIHN0YXRpYyB1aW50NjRfdCBjdXJyZW50SGFuZGxlcklkZW50aWZpZXI7Ci0g
ICAgdWludDY0X3QgaWRlbnRpZmllciA9ICsrY3VycmVudEhhbmRsZXJJZGVudGlmaWVyOwotCi0g
ICAgQVNTRVJUKCFtX3Rha2VBbGxNZXNzYWdlc0NhbGxiYWNrcy5jb250YWlucyhpZGVudGlmaWVy
KSk7Ci0gICAgbV90YWtlQWxsTWVzc2FnZXNDYWxsYmFja3MuYWRkKGlkZW50aWZpZXIsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLQotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6
VGFrZUFsbE1lc3NhZ2VzRm9yUG9ydChwb3J0LCBpZGVudGlmaWVyKSwgMCk7Ci19Ci0KLXZvaWQg
V2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OmRpZFRha2VBbGxNZXNzYWdlc0ZvclBvcnQo
VmVjdG9yPE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzPiYmIG1lc3NhZ2VzLCB1aW50NjRfdCBtZXNz
YWdlQ2FsbGJhY2tJZGVudGlmaWVyLCB1aW50NjRfdCBtZXNzYWdlQmF0Y2hJZGVudGlmaWVyKQot
ewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0KLSAgICBhdXRvIGNhbGxiYWNrID0gbV90
YWtlQWxsTWVzc2FnZXNDYWxsYmFja3MudGFrZShtZXNzYWdlQ2FsbGJhY2tJZGVudGlmaWVyKTsK
LSAgICBBU1NFUlQoY2FsbGJhY2spOwotICAgIGNhbGxiYWNrKFdURk1vdmUobWVzc2FnZXMpLCBb
bWVzc2FnZUJhdGNoSWRlbnRpZmllcl0gewotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJv
eHk6OkRpZERlbGl2ZXJNZXNzYWdlUG9ydE1lc3NhZ2VzKG1lc3NhZ2VCYXRjaElkZW50aWZpZXIp
LCAwKTsKLSAgICB9KTsKLX0KLQotdm9pZCBXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6
ZGlkQ2hlY2tSZW1vdGVQb3J0Rm9yQWN0aXZpdHkodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVy
LCBib29sIGhhc0FjdGl2aXR5KQotewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0KLSAg
ICBhdXRvIGNhbGxiYWNrID0gbV9yZW1vdGVBY3Rpdml0eUNhbGxiYWNrcy50YWtlKGNhbGxiYWNr
SWRlbnRpZmllcik7Ci0gICAgQVNTRVJUKGNhbGxiYWNrKTsKLSAgICBjYWxsYmFjayhoYXNBY3Rp
dml0eSA/IEhhc0FjdGl2aXR5OjpZZXMgOiBIYXNBY3Rpdml0eTo6Tm8pOworICAgIG5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlRha2VBbGxNZXNzYWdlc0ZvclBvcnQgeyBwb3J0IH0sIFtj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvJiYgbWVz
c2FnZXMsIHVpbnQ2NF90IG1lc3NhZ2VCYXRjaElkZW50aWZpZXIpIG11dGFibGUgeworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKG1lc3NhZ2VzKSwgW21lc3NhZ2VCYXRjaElkZW50
aWZpZXJdIHsKKyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpEaWREZWxpdmVyTWVzc2FnZVBv
cnRNZXNzYWdlcyB7IG1lc3NhZ2VCYXRjaElkZW50aWZpZXIgfSwgMCk7CisgICAgICAgIH0pOwor
ICAgIH0sIDApOwogfQogCiB2b2lkIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpwb3N0
TWVzc2FnZVRvUmVtb3RlKGNvbnN0IE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiBtZXNzYWdlLCBj
b25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImIHJlbW90ZVRhcmdldCkKIHsKLSAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzUHJveHk6OlBvc3RNZXNzYWdlVG9SZW1vdGUobWVzc2FnZSwgcmVtb3RlVGFy
Z2V0KSwgMCk7Ci19Ci0KLXZvaWQgV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OmNoZWNr
UHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYg
aWRlbnRpZmllciwgdWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyKQotewotICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6RGlkQ2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkgeyBj
YWxsYmFja0lkZW50aWZpZXIsIE1lc3NhZ2VQb3J0Ojppc0V4aXN0aW5nTWVzc2FnZVBvcnRMb2Nh
bGx5UmVhY2hhYmxlKGlkZW50aWZpZXIpIH0sIDApOworICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQb3N0
TWVzc2FnZVRvUmVtb3RlIHsgbWVzc2FnZSwgcmVtb3RlVGFyZ2V0IH0sIDApOwogfQogCiB2b2lk
IFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpjaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JB
Y3Rpdml0eShjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImLCBQcm9jZXNzSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNBY3Rpdml0eSk+JiYpCkBAIC0xMjAsMTUgKzk4LDkg
QEAgdm9pZCBXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6Y2hlY2tQcm9jZXNzTG9jYWxQ
b3J0Rm9yQWN0aXZpdHkoY29uc3QgTWVzc2EKIAogdm9pZCBXZWJNZXNzYWdlUG9ydENoYW5uZWxQ
cm92aWRlcjo6Y2hlY2tSZW1vdGVQb3J0Rm9yQWN0aXZpdHkoY29uc3QgTWVzc2FnZVBvcnRJZGVu
dGlmaWVyJiByZW1vdGVUYXJnZXQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzQWN0aXZpdHkp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0K
LSAgICBzdGF0aWMgdWludDY0X3QgY3VycmVudEhhbmRsZXJJZGVudGlmaWVyOwotICAgIHVpbnQ2
NF90IGlkZW50aWZpZXIgPSArK2N1cnJlbnRIYW5kbGVySWRlbnRpZmllcjsKLQotICAgIEFTU0VS
VCghbV9yZW1vdGVBY3Rpdml0eUNhbGxiYWNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAg
bV9yZW1vdGVBY3Rpdml0eUNhbGxiYWNrcy5zZXQoaWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOwotCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpDaGVja1JlbW90
ZVBvcnRGb3JBY3Rpdml0eShyZW1vdGVUYXJnZXQsIGlkZW50aWZpZXIpLCAwKTsKKyAgICBuZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eSB7IHJl
bW90ZVRhcmdldCB9LCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oYm9vbCBoYXNBY3Rpdml0eSkgbXV0YWJsZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGhhc0FjdGl2aXR5ID8gSGFzQWN0aXZpdHk6OlllcyA6IEhhc0FjdGl2aXR5OjpObyk7Cisg
ICAgfSwgMCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lc3NhZ2VQb3J0Q2hhbm5lbFBy
b3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaAppbmRleCBkMDUwNjg0ODFiNDkxNGZmYWFlYzgxMzRh
ZmViODc1MzVkZWI3YjZlLi5lNDQ5OTRlNjA1ZDk2NjA3YWE3MGE4MmRiODk4ZWU5MDFlNTZhZTY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaApAQCAtMjYs
OCArMjYsNiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0
Q2hhbm5lbFByb3ZpZGVyLmg+Ci0jaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+Ci0j
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTM2LDEw
ICszNCw2IEBAIGNsYXNzIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyIDogcHVibGljIFdl
YkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyCiBwdWJsaWM6CiAgICAgc3RhdGljIFdl
Yk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyJiBzaW5nbGV0b24oKTsKIAotICAgIHZvaWQgZGlk
VGFrZUFsbE1lc3NhZ2VzRm9yUG9ydChWZWN0b3I8V2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdl
UG9ydHM+JiYgbWVzc2FnZXMsIHVpbnQ2NF90IG1lc3NhZ2VDYWxsYmFja0lkZW50aWZpZXIsIHVp
bnQ2NF90IG1lc3NhZ2VCYXRjaElkZW50aWZpZXIpOwotICAgIHZvaWQgY2hlY2tQcm9jZXNzTG9j
YWxQb3J0Rm9yQWN0aXZpdHkoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiwg
dWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyKTsKLSAgICB2b2lkIGRpZENoZWNrUmVtb3RlUG9y
dEZvckFjdGl2aXR5KHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgYm9vbCBoYXNBY3Rpdml0
eSk7Ci0gICAgCiBwcml2YXRlOgogICAgIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyKCk7
CiAgICAgfldlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyKCkgZmluYWw7CkBAIC01MiwxMyAr
NDYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1JlbW90ZShjb25zdCBXZWJD
b3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYsIGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0
SWRlbnRpZmllciYgcmVtb3RlVGFyZ2V0KSBmaW5hbDsKICAgICB2b2lkIGNoZWNrUHJvY2Vzc0xv
Y2FsUG9ydEZvckFjdGl2aXR5KGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYs
IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc0Fj
dGl2aXR5KT4mJikgZmluYWw7CiAKLSAgICAvLyBUbyBiZSBjYWxsZWQgb25seSBpbiB0aGUgVUkg
cHJvY2VzcwogICAgIHZvaWQgY2hlY2tSZW1vdGVQb3J0Rm9yQWN0aXZpdHkoY29uc3QgV2ViQ29y
ZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiByZW1vdGVUYXJnZXQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoSGFzQWN0aXZpdHkpPiYmIGNhbGxiYWNrKSBmaW5hbDsKLQotICAgIExvY2sgbV90YWtl
QWxsTWVzc2FnZXNDYWxsYmFja0xvY2s7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM+JiYs
IEZ1bmN0aW9uPHZvaWQoKT4mJik+PiBtX3Rha2VBbGxNZXNzYWdlc0NhbGxiYWNrczsKLSAgICBM
b2NrIG1fcmVtb3RlQWN0aXZpdHlDYWxsYmFja0xvY2s7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNBY3Rpdml0eSk+PiBtX3JlbW90ZUFjdGl2aXR5Q2Fs
bGJhY2tzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZTI3OWQ0NGY3NmE4MmQ1ZTlmNTA4ZmNmMGZlNGQ4YWI1
MGRhOWExNS4uZTM1NmE0ZjAzM2UxMjQ3ZjYxNDYwYzg2Mjc0YWY5YWI5NDNjMjBjYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTExMSwyMSArMTExMSw2IEBA
IHZvaWQgV2ViUHJvY2Vzczo6YmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzUGluZygpCiAgICAgcGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpE
aWRSZWNlaXZlQmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzUGluZygpLCAwKTsKIH0KIAotdm9pZCBX
ZWJQcm9jZXNzOjpkaWRUYWtlQWxsTWVzc2FnZXNGb3JQb3J0KFZlY3RvcjxNZXNzYWdlV2l0aE1l
c3NhZ2VQb3J0cz4mJiBtZXNzYWdlcywgdWludDY0X3QgbWVzc2FnZUNhbGxiYWNrSWRlbnRpZmll
ciwgdWludDY0X3QgbWVzc2FnZUJhdGNoSWRlbnRpZmllcikKLXsKLSAgICBXZWJNZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlcjo6c2luZ2xldG9uKCkuZGlkVGFrZUFsbE1lc3NhZ2VzRm9yUG9ydChX
VEZNb3ZlKG1lc3NhZ2VzKSwgbWVzc2FnZUNhbGxiYWNrSWRlbnRpZmllciwgbWVzc2FnZUJhdGNo
SWRlbnRpZmllcik7Ci19Ci0KLXZvaWQgV2ViUHJvY2Vzczo6Y2hlY2tQcm9jZXNzTG9jYWxQb3J0
Rm9yQWN0aXZpdHkoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBwb3J0LCB1aW50NjRfdCBj
YWxsYmFja0lkZW50aWZpZXIpCi17Ci0gICAgV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6
OnNpbmdsZXRvbigpLmNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KHBvcnQsIGNhbGxi
YWNrSWRlbnRpZmllcik7Ci19Ci0KLXZvaWQgV2ViUHJvY2Vzczo6ZGlkQ2hlY2tSZW1vdGVQb3J0
Rm9yQWN0aXZpdHkodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBib29sIGhhc0FjdGl2aXR5
KQotewotICAgIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpzaW5nbGV0b24oKS5kaWRD
aGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShjYWxsYmFja0lkZW50aWZpZXIsIGhhc0FjdGl2aXR5
KTsKLX0KLQogdm9pZCBXZWJQcm9jZXNzOjptZXNzYWdlc0F2YWlsYWJsZUZvclBvcnQoY29uc3Qg
TWVzc2FnZVBvcnRJZGVudGlmaWVyJiBpZGVudGlmaWVyKQogewogICAgIE1lc3NhZ2VQb3J0Ojpu
b3RpZnlNZXNzYWdlQXZhaWxhYmxlKGlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmgKaW5kZXggZTZhZjJjOTM4YzFlNDA0YzIwNmY0Mzg0MjUzNWQ4NmUyOGNkODc4
YS4uZjNjYWYzMDMyZDA2OTM1ZDgwMzA3ZThiNjRkYWYyNDc2NmQ5MzRiYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0yODYsNiArMjg2LDggQEAgcHVibGljOgogCiAg
ICAgYm9vbCBhcmVBbGxQYWdlc1Rocm90dGxlYWJsZSgpIGNvbnN0OwogCisgICAgdm9pZCBtZXNz
YWdlc0F2YWlsYWJsZUZvclBvcnQoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVy
Jik7CisKIHByaXZhdGU6CiAgICAgV2ViUHJvY2VzcygpOwogICAgIH5XZWJQcm9jZXNzKCk7CkBA
IC0zNTUsMTEgKzM1Nyw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBtYWluVGhyZWFkUGluZygpOwog
ICAgIHZvaWQgYmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzUGluZygpOwogCi0gICAgdm9pZCBkaWRU
YWtlQWxsTWVzc2FnZXNGb3JQb3J0KFZlY3RvcjxXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQ
b3J0cz4mJiBtZXNzYWdlcywgdWludDY0X3QgbWVzc2FnZUNhbGxiYWNrSWRlbnRpZmllciwgdWlu
dDY0X3QgbWVzc2FnZUJhdGNoSWRlbnRpZmllcik7Ci0gICAgdm9pZCBjaGVja1Byb2Nlc3NMb2Nh
bFBvcnRGb3JBY3Rpdml0eShjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImLCB1
aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIpOwotICAgIHZvaWQgZGlkQ2hlY2tSZW1vdGVQb3J0
Rm9yQWN0aXZpdHkodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBib29sIGhhc0FjdGl2aXR5
KTsKLSAgICB2b2lkIG1lc3NhZ2VzQXZhaWxhYmxlRm9yUG9ydChjb25zdCBXZWJDb3JlOjpNZXNz
YWdlUG9ydElkZW50aWZpZXImKTsKLQogI2lmIEVOQUJMRShHQU1FUEFEKQogICAgIHZvaWQgc2V0
SW5pdGlhbEdhbWVwYWRzKGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mKTsKICAgICB2b2lkIGdh
bWVwYWRDb25uZWN0ZWQoY29uc3QgR2FtZXBhZERhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNTdhMjY1NjM0NWZiZTlkMzMw
ZGY2NTVlMzUyYzM5YmVhNTJiNDVkOS4uNzU3ZjU4YTRiMDkwZGNhNzIxNmQ1M2NmODYzOTA1ZmQ3
MTEwMjZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KQEAgLTExNSwxMSArMTE1LDYgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdh
Y3lSZWNlaXZlciB7CiAgICAgUmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50cygpCiAjZW5kaWYK
IAotICAgIERpZFRha2VBbGxNZXNzYWdlc0ZvclBvcnQoVmVjdG9yPFdlYkNvcmU6Ok1lc3NhZ2VX
aXRoTWVzc2FnZVBvcnRzPiBtZXNzYWdlcywgdWludDY0X3QgbWVzc2FnZUNhbGxiYWNrSWRlbnRp
ZmllciwgdWludDY0X3QgbWVzc2FnZUJhdGNoSWRlbnRpZmllcikKLSAgICBEaWRDaGVja1JlbW90
ZVBvcnRGb3JBY3Rpdml0eSh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGJvb2wgaGFzQWN0
aXZpdHkpCi0gICAgQ2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkoc3RydWN0IFdlYkNv
cmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciBwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lkZW50aWZp
ZXIpCi0gICAgTWVzc2FnZXNBdmFpbGFibGVGb3JQb3J0KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdl
UG9ydElkZW50aWZpZXIgcG9ydCkKLQogICAgIFNldEhhc1N1c3BlbmRlZFBhZ2VQcm94eShib29s
IGhhc1N1c3BlbmRlZFBhZ2VQcm94eSk7CiAgICAgU2V0SXNJblByb2Nlc3NDYWNoZShib29sIGlz
SW5Qcm9jZXNzQ2FjaGUpCiAgICAgTWFya0lzTm9Mb25nZXJQcmV3YXJtZWQoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377978</attachid>
            <date>2019-09-04 07:08:50 -0700</date>
            <delta_ts>2019-09-04 07:36:38 -0700</delta_ts>
            <desc>Rebasing</desc>
            <filename>bug-201400-20190904160848.patch</filename>
            <type>text/plain</type>
            <size>30218</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NDU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDRiZjhkNDg1YzVlZTU5
YmFhM2E1NGE3YzQ0NTBiNTFhODU2NzlhNi4uZWI3MTZkOGYyYzIyNWExNjE3NmEzZjdlY2E0Zjhk
NDJjYzZiYTk0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE5LTA5LTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIGNoZWNrUHJvY2Vz
c0xvY2FsUG9ydEZvckFjdGl2aXR5IGZyb20gcHJvdmlkZXIgdG8gcmVnaXN0cnkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTQwMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB0aGUgcmVnaXN0
cnkgdG8gdGFrZSBhIGNhbGxiYWNrIHRoYXQgaXMgdXNlZCB0byBpbXBsZW1lbnQgY2hlY2tQcm9j
ZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkuCisgICAgICAgIFRoaXMgYWxsb3dzIFdLMSBhbmQgV0sy
IHRvIGhhdmUgdGhlaXIgb3duIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgIE1ha2UgdGhlIGNh
bGwgdG8gY2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkgZGlyZWN0bHkgb24gdGhlIHJl
Z2lzdHJ5LgorICAgICAgICBSZW1vdmUgdW5uZWVkZWQgd29ya2VyIGNoZWNrUHJvY2Vzc0xvY2Fs
UG9ydEZvckFjdGl2aXR5IG1ldGhvZC4KKyAgICAgICAgTm8gY2hhbmdlIG9mIGJlaGF2aW9yLgor
CisgICAgICAgICogZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsOjpjaGVja1JlbW90ZVBvcnRGb3JBY3Rp
dml0eSk6CisgICAgICAgICogZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlci5oOgorICAgICAgICAqIGRvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1lc3NhZ2VQb3J0Q2hhbm5l
bFJlZ2lzdHJ5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
SW1wbDo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVySW1wbDo6Y2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9y
QWN0aXZpdHkpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBv
cnRDaGFubmVsUHJvdmlkZXJJbXBsLmg6CisgICAgICAgICogZG9tL21lc3NhZ2Vwb3J0cy9NZXNz
YWdlUG9ydENoYW5uZWxSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9y
dENoYW5uZWxSZWdpc3RyeTo6TWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkpOgorICAgICAgICAo
V2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnk6OmNoZWNrUHJvY2Vzc0xvY2FsUG9y
dEZvckFjdGl2aXR5KToKKyAgICAgICAgKiBkb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hh
bm5lbFJlZ2lzdHJ5Lmg6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxSZWdp
c3RyeTo6cHJvdmlkZXIpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9tZXNzYWdlcG9ydHMvV29y
a2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OmNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFj
dGl2aXR5KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vbWVzc2FnZXBvcnRzL1dvcmtlck1lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg6CisKIDIwMTktMDktMDMgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY0NhdGFseXN0XSBVbmFibGUgdG8g
dXBsb2FkIG5vbi1pbWFnZSBmaWxlcyB1c2luZyBkcmFnIGFuZCBkcm9wCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUw
MTU3MzA4ZDA2MGY3NzNhNmE0N2VkNmNlMmUxZjM1MDcwOWFiYzMuLmE5YzZjM2U0MmNmN2JkNDVi
NDdhMDkzNWI5MmU1ZTg0MDU2N2MwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTkt
MDktMDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUg
Y2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkgZnJvbSBwcm92aWRlciB0byByZWdpc3Ry
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNDAw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVt
ZW50IHJlZ2lzdHJ5IGNhbGxiYWNrIGF0IE5ldHdvcmtQcm9jZXNzIGxldmVsLgorICAgICAgICBS
ZW1vdmUgTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyIHNpbmNlIG9ubHkgYSByZWdp
c3RyeSBpcyBub3cgbmVlZGVkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg6IFJlbW92ZWQu
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpjcmVhdGVNZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeSk6CisgICAgICAgIChXZWJL
aXQ6Om1fbWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkpOgorICAgICAgICAoV2ViS2l0OjptX21l
c3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
bWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6Y2hlY2tQcm9j
ZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaDoKKwogMjAxOS0w
OS0wNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBN
ZXNzYWdlUmVnaXN0cnkgdG8gTmV0d29ya1Byb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsLmNwcAppbmRleCAwOTE1ZWFk
OWZmYjhjMTZkYzhiN2IwOWQyZTI1MDc4MDRkOGJkNGM3Li5jZTZlOGE3Y2FlYzNkMjJjMTkyYmE5
YTFkNTUxYzNlMGIyNDNmODMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2Fn
ZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL21l
c3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWwuY3BwCkBAIC0yMjEsNyArMjIxLDcgQEAgdm9p
ZCBNZXNzYWdlUG9ydENoYW5uZWw6OmNoZWNrUmVtb3RlUG9ydEZvckFjdGl2aXR5KGNvbnN0IE1l
c3NhZ2VQb3J0SWRlbnRpZmllciYKICAgICAgICAgY2FsbGJhY2soaGFzQWN0aXZpdHkpOwogICAg
IH07CiAKLSAgICBtX3JlZ2lzdHJ5LnByb3ZpZGVyKCkuY2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9y
QWN0aXZpdHkocmVtb3RlUG9ydCwgKm1fcHJvY2Vzc2VzW2ldLCBXVEZNb3ZlKG91dGVyQ2FsbGJh
Y2spKTsKKyAgICBtX3JlZ2lzdHJ5LmNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KHJl
bW90ZVBvcnQsICptX3Byb2Nlc3Nlc1tpXSwgV1RGTW92ZShvdXRlckNhbGxiYWNrKSk7CiB9CiAK
IGJvb2wgTWVzc2FnZVBvcnRDaGFubmVsOjpoYXNBbnlNZXNzYWdlc1BlbmRpbmdPckluRmxpZ2h0
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9y
dHMvTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaAppbmRleCA2NGMwMGIyNWJlODM1NDViZjY2
MGZmZDQ4NzhkMDc3ODY2YWUwYjNlLi42ZjlhZTE1MjNmYjg2MTQxYTg2MGJkMDBhN2EyNDdhOTll
MjE2ZWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vw
b3J0cy9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oCkBAIC01OSw5ICs1OSw2IEBAIHB1Ymxp
YzoKICAgICB9OwogICAgIHZpcnR1YWwgdm9pZCBjaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShj
b25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImIHJlbW90ZVRhcmdldCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChIYXNBY3Rpdml0eSk+JiYgY2FsbGJhY2spID0gMDsKIAotICAgIC8vIE9wZXJhdGlv
bnMgdGhhdCB0aGUgY29vcmRpbmF0aW5nIHByb2Nlc3MgcGVyZm9ybXMgKGUuZy4gdGhlIFVJUHJv
Y2VzcykKLSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHko
Y29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiwgUHJvY2Vzc0lkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYmKSA9IDA7Ci0KIHByaXZhdGU6CiAKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01l
c3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVySW1wbC5jcHAKaW5kZXggZTE2NTZlMjcyMDA5MTZmYWNk
ZTU4MDdjOWVkYWEwMzIwYzA0MzVkZC4uOGNkYmQ1MGFjMzM4ZGY5ZWY1YzA2OWU1ZmUyNGM2YmQz
ZjdhYjNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNz
YWdlUG9ydENoYW5uZWxQcm92aWRlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9t
ZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBsLmNwcApAQCAtMzIsOCAr
MzIsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgaW5saW5lIE1lc3NhZ2VQ
b3J0Q2hhbm5lbFJlZ2lzdHJ5IGNyZWF0ZU1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5KCkKK3sK
KyAgICByZXR1cm4gTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkgeyBbXShhdXRvJiBtZXNzYWdl
UG9ydElkZW50aWZpZXIsIGF1dG8sIGF1dG8mJiBjYWxsYmFjaykgeworICAgICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworICAgICAgICBjYWxsYmFjayhNZXNzYWdlUG9ydDo6aXNFeGlzdGlu
Z01lc3NhZ2VQb3J0TG9jYWxseVJlYWNoYWJsZShtZXNzYWdlUG9ydElkZW50aWZpZXIpID8gTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5OjpZZXMgOiBNZXNzYWdlUG9ydENo
YW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHk6Ok5vKTsKKyAgICB9IH07Cit9CisKIE1lc3NhZ2VQ
b3J0Q2hhbm5lbFByb3ZpZGVySW1wbDo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBsKCkK
LSAgICA6IG1fcmVnaXN0cnkoKnRoaXMpCisgICAgOiBtX3JlZ2lzdHJ5KGNyZWF0ZU1lc3NhZ2VQ
b3J0Q2hhbm5lbFJlZ2lzdHJ5KCkpCiB7CiB9CiAKQEAgLTExMSwxMSArMTE5LDQgQEAgdm9pZCBN
ZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlckltcGw6OmNoZWNrUmVtb3RlUG9ydEZvckFjdGl2aXR5
KGNvbnN0IE1lc3NhZ2VQb3IKICAgICB9KTsKIH0KIAotdm9pZCBNZXNzYWdlUG9ydENoYW5uZWxQ
cm92aWRlckltcGw6OmNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KGNvbnN0IE1lc3Nh
Z2VQb3J0SWRlbnRpZmllciYgaWRlbnRpZmllciwgUHJvY2Vzc0lkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYmIGNhbGxiYWNrKQotewotICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0KLSAgICBjYWxsYmFjayhNZXNzYWdlUG9ydDo6aXNFeGlzdGluZ01l
c3NhZ2VQb3J0TG9jYWxseVJlYWNoYWJsZShpZGVudGlmaWVyKSA/IEhhc0FjdGl2aXR5OjpZZXMg
OiBIYXNBY3Rpdml0eTo6Tm8pOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbFBy
b3ZpZGVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlckltcGwuaAppbmRleCA0OGNiNTQ4NzEwMjNhNzU1NTg2MTdhMzYxNTc1
Y2QxMjhhYTE4MTFiLi42NjgwNjlhYmM0MWMxNGRlZmVjNzc3MWFkNWRhNDRjNDIxYWQ2ZGEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMv
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBsLmgKQEAgLTQ0LDggKzQ0LDYgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHRha2VBbGxNZXNzYWdlc0ZvclBvcnQoY29uc3QgTWVzc2FnZVBvcnRJZGVu
dGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8TWVzc2FnZVdpdGhNZXNzYWdl
UG9ydHM+JiYsIEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgY2hlY2tS
ZW1vdGVQb3J0Rm9yQWN0aXZpdHkoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiByZW1vdGVU
YXJnZXQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYmIGNhbGxiYWNrKSBm
aW5hbDsKIAotICAgIHZvaWQgY2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkoY29uc3Qg
TWVzc2FnZVBvcnRJZGVudGlmaWVyJiwgUHJvY2Vzc0lkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYmKSBmaW5hbDsKLQogICAgIHZvaWQgcGVyZm9ybUFjdGlv
bk9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYpOwogCiAgICAgTWVzc2FnZVBvcnRDaGFu
bmVsUmVnaXN0cnkgbV9yZWdpc3RyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9t
ZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeS5jcHAKaW5kZXgg
ZTBlNjBmMmU5NzA3YzMyZjBjODk3NWRhM2RiNWZlZGZkNzc3OWFlMC4uMDk5MjJmNDI5MmJmZjQz
NTkzYzJkOTcyNDgwYTY0M2NiODU0ODZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeS5jcHAK
QEAgLTMyLDggKzMyLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1NZXNzYWdlUG9ydENo
YW5uZWxSZWdpc3RyeTo6TWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkoTWVzc2FnZVBvcnRDaGFu
bmVsUHJvdmlkZXImIHByb3ZpZGVyKQotICAgIDogbV9wcm92aWRlcihwcm92aWRlcikKK01lc3Nh
Z2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5OjpNZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeShDaGVja1By
b2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eUNhbGxiYWNrJiYgY2hlY2tQcm9jZXNzTG9jYWxQb3J0
Rm9yQWN0aXZpdHlDYWxsYmFjaykKKyAgICA6IG1fY2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0
aXZpdHlDYWxsYmFjayhXVEZNb3ZlKGNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5Q2Fs
bGJhY2spKQogewogfQogCkBAIC0xNzgsNCArMTc4LDkgQEAgTWVzc2FnZVBvcnRDaGFubmVsKiBN
ZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeTo6ZXhpc3RpbmdDaGFubmVsQ29udGFpbmluZ1BvcnQo
Y28KICAgICByZXR1cm4gbV9vcGVuQ2hhbm5lbHMuZ2V0KHBvcnQpOwogfQogCit2b2lkIE1lc3Nh
Z2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5OjpjaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eShj
b25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImIG1lc3NhZ2VQb3J0SWRlbnRpZmllciwgUHJvY2Vz
c0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5KT4mJiBjYWxsYmFjaykKK3sKKyAg
ICBtX2NoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5Q2FsbGJhY2sobWVzc2FnZVBvcnRJ
ZGVudGlmaWVyLCBwcm9jZXNzSWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVz
c2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5LmgKaW5kZXggNmJjYTI4
MmVkY2E5YTMwMDcyOTI3NWI5NjQ5YTRjNTNhNGFkZjFjNi4uZWY0NDFkZDIzNjkyNDJjYzcxM2Mz
MzVlN2UyMmJlNjRmNmQzMzJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL21lc3Nh
Z2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkuaApAQCAtMzUsNyAr
MzUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lc3NhZ2VQb3J0Q2hhbm5lbFJl
Z2lzdHJ5IHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBNZXNzYWdlUG9ydENoYW5uZWxS
ZWdpc3RyeShNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlciYpOworICAgIHVzaW5nIENoZWNrUHJv
Y2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIFByb2Nlc3NJZGVudGlmaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSk+
JiYpPjsKKyAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBNZXNzYWdlUG9ydENoYW5uZWxSZWdp
c3RyeShDaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eUNhbGxiYWNrJiYpOworCiAgICAg
V0VCQ09SRV9FWFBPUlQgfk1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5KCk7CiAgICAgCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRDcmVhdGVNZXNzYWdlUG9ydENoYW5uZWwoY29uc3QgTWVz
c2FnZVBvcnRJZGVudGlmaWVyJiBwb3J0MSwgY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBw
b3J0Mik7CkBAIC01MSwxMiArNTMsMTEgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgbWVzc2FnZVBvcnRDaGFubmVsQ3JlYXRlZChNZXNzYWdlUG9ydENoYW5uZWwmKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIG1lc3NhZ2VQb3J0Q2hhbm5lbERlc3Ryb3llZChNZXNzYWdlUG9y
dENoYW5uZWwmKTsKIAotICAgIE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyJiBwcm92aWRlcigp
IHsgcmV0dXJuIG1fcHJvdmlkZXI7IH0KKyAgICB2b2lkIGNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZv
ckFjdGl2aXR5KGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIFByb2Nlc3NJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNB
Y3Rpdml0eSk+JiYpOwogCiBwcml2YXRlOgogICAgIEhhc2hNYXA8TWVzc2FnZVBvcnRJZGVudGlm
aWVyLCBNZXNzYWdlUG9ydENoYW5uZWwqPiBtX29wZW5DaGFubmVsczsKLSAgICBNZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlciYgbV9wcm92aWRlcjsKLQorICAgIENoZWNrUHJvY2Vzc0xvY2FsUG9y
dEZvckFjdGl2aXR5Q2FsbGJhY2sgbV9jaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eUNh
bGxiYWNrOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9Xb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL1dvcmtlck1lc3NhZ2VQb3J0
Q2hhbm5lbFByb3ZpZGVyLmNwcAppbmRleCA2YTAxNzU5MTEzMjU3MGM0NzljMTUwNDJiOTA3ODI4
YjBlZjg0MDBkLi43YTBhODFjZGFhN2ExYWVlYzNkZmY1OWViMTBhY2M3ZWM2YzFhM2NkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL1dvcmtlck1lc3NhZ2VQb3J0
Q2hhbm5lbFByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRz
L1dvcmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcApAQCAtMTIwLDE5ICsxMjAsNCBA
QCB2b2lkIFdvcmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpjaGVja1JlbW90ZVBvcnRG
b3JBY3Rpdml0eShjb25zdCBNZXNzYWdlUAogICAgIH0pOwogfQogCi12b2lkIFdvcmtlck1lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpjaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eShj
b25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImIGlkZW50aWZpZXIsIFByb2Nlc3NJZGVudGlmaWVy
IHByb2Nlc3NJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc0FjdGl2aXR5KT4m
JiBjYWxsYmFjaykKLXsKLSAgICB1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIgPSArK21fbGFz
dENhbGxiYWNrSWRlbnRpZmllcjsKLSAgICBtX2FjdGl2aXR5Q2FsbGJhY2tzLmFkZChjYWxsYmFj
a0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKLQotICAgIGNhbGxPbk1haW5UaHJlYWQo
W3RoaXMsIHdvcmtlclRocmVhZCA9IG1ha2VSZWYobV9zY29wZS50aHJlYWQoKSksIGNhbGxiYWNr
SWRlbnRpZmllciwgaWRlbnRpZmllciwgcHJvY2Vzc0lkZW50aWZpZXJdKCkgbXV0YWJsZSB7Ci0g
ICAgICAgIE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpzaW5nbGV0b24oKS5jaGVja1Byb2Nl
c3NMb2NhbFBvcnRGb3JBY3Rpdml0eShpZGVudGlmaWVyLCBwcm9jZXNzSWRlbnRpZmllciwgW3Ro
aXMsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKSwgY2FsbGJhY2tJZGVudGlm
aWVyXShhdXRvIGhhc0FjdGl2aXR5KSB7Ci0gICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxv
b3AoKS5wb3N0VGFza0Zvck1vZGUoW3RoaXMsIGNhbGxiYWNrSWRlbnRpZmllciwgaGFzQWN0aXZp
dHldKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBBU1NFUlRfVU5VU0VE
KHNjb3BlLCB0aGlzID09ICZkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLm1lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyKCkpOwotICAgICAgICAgICAgICAgIG1fYWN0aXZpdHlDYWxs
YmFja3MudGFrZShjYWxsYmFja0lkZW50aWZpZXIpKGhhc0FjdGl2aXR5KTsKLSAgICAgICAgICAg
IH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwotICAgICAgICB9KTsKLSAgICB9KTsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL21lc3NhZ2Vwb3J0cy9Xb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9Xb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlci5oCmluZGV4IDg3ZDAyMGFmNGNjMjk0NGQwMmE3ZmQxZTc0NTU3ZWZiNTI0OWQxZWUuLmM3
OWYzNGZkZmY4NzQ5OGJmNjJlNDg5YTMzZTdmZDMxNGRjMDQ0ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvV29ya2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL1dvcmtlck1lc3NhZ2VQ
b3J0Q2hhbm5lbFByb3ZpZGVyLmgKQEAgLTQ5LDggKzQ5LDYgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHRha2VBbGxNZXNzYWdlc0ZvclBvcnQoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM+JiYsIEZ1
bmN0aW9uPHZvaWQoKT4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgY2hlY2tSZW1vdGVQb3J0Rm9y
QWN0aXZpdHkoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiByZW1vdGVUYXJnZXQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYmIGNhbGxiYWNrKSBmaW5hbDsKIAotICAg
IHZvaWQgY2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkoY29uc3QgTWVzc2FnZVBvcnRJ
ZGVudGlmaWVyJiwgUHJvY2Vzc0lkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFz
QWN0aXZpdHkpPiYmKSBmaW5hbDsKLQogICAgIFdvcmtlckdsb2JhbFNjb3BlJiBtX3Njb3BlOwog
CiAgICAgdWludDY0X3QgbV9sYXN0Q2FsbGJhY2tJZGVudGlmaWVyIHsgMCB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAppbmRleCAyODExNWYyZjU2NGFlNTNlM2VkMGZhYmVmY2MwM2FkMTNl
ZDdhZGRhLi5mOTg2Y2ZmN2VhOTlmNzdlODRjYzgwNjdiN2IzNTg2NDlhZjJmNzZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkRhdGFS
ZWZlcmVuY2UuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGUuaCIKICNpbmNsdWRlICJOZXR3b3Jr
TUROU1JlZ2lzdGVyTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJOZXR3b3JrTWVzc2FnZVBvcnRDaGFu
bmVsUHJvdmlkZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NNZXNzYWdlcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMDk2YzExNjQ3MzhhOGRkNTljZjM0MDA5MDdiYjE4YjIy
OTk1Y2Y4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3Zp
ZGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXIuaCIKLQotI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgi
Ci0jaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
OjpOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIoTmV0d29ya1Byb2Nlc3MmIG5ldHdv
cmtQcm9jZXNzKQotICAgIDogbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKLSAgICAs
IG1fcmVnaXN0cnkoKnRoaXMpCi17Ci19Ci0KLXZvaWQgTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyOjpjcmVhdGVOZXdNZXNzYWdlUG9ydENoYW5uZWwoY29uc3QgTWVzc2FnZVBvcnRJ
ZGVudGlmaWVyJiwgY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJikKLXsKLSAgICAvLyBTaG91
bGQgbmV2ZXIgYmUgY2FsbGVkIGluIHRoZSBVSSBwcm9jZXNzIHByb3ZpZGVyLgotICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotfQotCi12b2lkIE5ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlcjo6ZW50YW5nbGVMb2NhbFBvcnRJblRoaXNQcm9jZXNzVG9SZW1vdGUoY29uc3QgTWVzc2Fn
ZVBvcnRJZGVudGlmaWVyJiwgY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJikKLXsKLSAgICAv
LyBTaG91bGQgbmV2ZXIgYmUgY2FsbGVkIGluIHRoZSBVSSBwcm9jZXNzIHByb3ZpZGVyLgotICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi12b2lkIE5ldHdvcmtNZXNzYWdlUG9ydENoYW5u
ZWxQcm92aWRlcjo6bWVzc2FnZVBvcnREaXNlbnRhbmdsZWQoY29uc3QgTWVzc2FnZVBvcnRJZGVu
dGlmaWVyJikKLXsKLSAgICAvLyBTaG91bGQgbmV2ZXIgYmUgY2FsbGVkIGluIHRoZSBVSSBwcm9j
ZXNzIHByb3ZpZGVyLgotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi12b2lkIE5ldHdv
cmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6bWVzc2FnZVBvcnRDbG9zZWQoY29uc3QgTWVz
c2FnZVBvcnRJZGVudGlmaWVyJikKLXsKLSAgICAvLyBTaG91bGQgbmV2ZXIgYmUgY2FsbGVkIGlu
IHRoZSBVSSBwcm9jZXNzIHByb3ZpZGVyLgotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQot
Ci12b2lkIE5ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6dGFrZUFsbE1lc3NhZ2Vz
Rm9yUG9ydChjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFZlY3RvcjxNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cz4mJiwgRnVuY3Rpb248dm9pZCgpPiYm
KT4mJikKLXsKLSAgICAvLyBTaG91bGQgbmV2ZXIgYmUgY2FsbGVkIGluIHRoZSBVSSBwcm9jZXNz
IHByb3ZpZGVyLgotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi12b2lkIE5ldHdvcmtN
ZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6cG9zdE1lc3NhZ2VUb1JlbW90ZShjb25zdCBNZXNz
YWdlV2l0aE1lc3NhZ2VQb3J0cyYsIGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYpCi17Ci0g
ICAgLy8gU2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBpbiB0aGUgVUkgcHJvY2VzcyBwcm92aWRlci4K
LSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotdm9pZCBOZXR3b3JrTWVzc2FnZVBvcnRD
aGFubmVsUHJvdmlkZXI6OmNoZWNrUmVtb3RlUG9ydEZvckFjdGl2aXR5KGNvbnN0IE1lc3NhZ2VQ
b3J0SWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYmKQot
ewotICAgIC8vIFNob3VsZCBuZXZlciBiZSBjYWxsZWQgaW4gdGhlIFVJIHByb2Nlc3MgcHJvdmlk
ZXIuCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KLXZvaWQgTmV0d29ya01lc3NhZ2VQ
b3J0Q2hhbm5lbFByb3ZpZGVyOjpjaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eShjb25z
dCBNZXNzYWdlUG9ydElkZW50aWZpZXImIHBvcnQsIFByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc0FjdGl2aXR5KT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKLXsKLSAgICBhdXRvKiBjb25uZWN0aW9uID0gbV9uZXR3b3JrUHJvY2Vzcy53
ZWJQcm9jZXNzQ29ubmVjdGlvbihwcm9jZXNzSWRlbnRpZmllcik7Ci0gICAgaWYgKCFjb25uZWN0
aW9uKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEhhc0FjdGl2aXR5OjpObyk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBjb25uZWN0aW9uLT5jaGVja1Byb2Nlc3NMb2NhbFBv
cnRGb3JBY3Rpdml0eShwb3J0LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5MmVlMGIzNGRhY2U5MGU1YWE0ZjY3MzEwNjUwMjJm
MzRkZDZmNDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkuaD4K
LQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIE5ldHdvcmtQcm9jZXNzOwotCi1jbGFzcyBO
ZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIgOiBwdWJsaWMgV2ViQ29yZTo6TWVzc2Fn
ZVBvcnRDaGFubmVsUHJvdmlkZXIgewotcHVibGljOgotICAgIGV4cGxpY2l0IE5ldHdvcmtNZXNz
YWdlUG9ydENoYW5uZWxQcm92aWRlcihOZXR3b3JrUHJvY2VzcyYpOwotICAgIFdlYkNvcmU6Ok1l
c3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5JiByZWdpc3RyeSgpIHsgcmV0dXJuIG1fcmVnaXN0cnk7
IH0KLQotcHJpdmF0ZToKLSAgICB2b2lkIGNyZWF0ZU5ld01lc3NhZ2VQb3J0Q2hhbm5lbChjb25z
dCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImIGxvY2FsLCBjb25zdCBXZWJDb3JlOjpN
ZXNzYWdlUG9ydElkZW50aWZpZXImIHJlbW90ZSkgZmluYWw7Ci0gICAgdm9pZCBlbnRhbmdsZUxv
Y2FsUG9ydEluVGhpc1Byb2Nlc3NUb1JlbW90ZShjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElk
ZW50aWZpZXImIGxvY2FsLCBjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImIHJl
bW90ZSkgZmluYWw7Ci0gICAgdm9pZCBtZXNzYWdlUG9ydERpc2VudGFuZ2xlZChjb25zdCBXZWJD
b3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImIGxvY2FsKSBmaW5hbDsKLSAgICB2b2lkIG1lc3Nh
Z2VQb3J0Q2xvc2VkKGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYgbG9jYWwp
IGZpbmFsOwotICAgIHZvaWQgdGFrZUFsbE1lc3NhZ2VzRm9yUG9ydChjb25zdCBXZWJDb3JlOjpN
ZXNzYWdlUG9ydElkZW50aWZpZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJD
b3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cz4mJiwgRnVuY3Rpb248dm9pZCgpPiYmKT4mJikg
ZmluYWw7Ci0gICAgdm9pZCBwb3N0TWVzc2FnZVRvUmVtb3RlKGNvbnN0IFdlYkNvcmU6Ok1lc3Nh
Z2VXaXRoTWVzc2FnZVBvcnRzJiwgY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVy
JiByZW1vdGVUYXJnZXQpIGZpbmFsOwotCi0gICAgdm9pZCBjaGVja1JlbW90ZVBvcnRGb3JBY3Rp
dml0eShjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImIHJlbW90ZVRhcmdldCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNBY3Rpdml0eSk+JiYgY2FsbGJhY2spIGZpbmFsOwot
ICAgIHZvaWQgY2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkoY29uc3QgV2ViQ29yZTo6
TWVzc2FnZVBvcnRJZGVudGlmaWVyJiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYmKSBmaW5hbDsKLQotICAgIE5ldHdvcmtQ
cm9jZXNzJiBtX25ldHdvcmtQcm9jZXNzOwotICAgIFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5l
bFJlZ2lzdHJ5IG1fcmVnaXN0cnk7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggOGE3
OWM0OWU0MzA5Yzc1ZTRhNjZiM2M5MGI5NDE2ODM1N2ZlYzIyNy4uYWE1Y2JhOGJkNGJiZDE0NTk3
ZTFlNDY1NDlhZDNlNjRiMWUwYTFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTEzMCw2ICsxMzAsMTkgQEAgc3RhdGljIHZvaWQg
Y2FsbEV4aXRTb29uKElQQzo6Q29ubmVjdGlvbiopCiAgICAgfSk7CiB9CiAKK3N0YXRpYyBpbmxp
bmUgTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkgY3JlYXRlTWVzc2FnZVBvcnRDaGFubmVsUmVn
aXN0cnkoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzKQoreworICAgIHJldHVybiBNZXNz
YWdlUG9ydENoYW5uZWxSZWdpc3RyeSB7IFsmbmV0d29ya1Byb2Nlc3NdKGF1dG8mIG1lc3NhZ2VQ
b3J0SWRlbnRpZmllciwgYXV0byBwcm9jZXNzSWRlbnRpZmllciwgYXV0byYmIGNvbXBsZXRpb25I
YW5kbGVyKSB7CisgICAgICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBuZXR3b3JrUHJvY2Vzcy53ZWJQ
cm9jZXNzQ29ubmVjdGlvbihwcm9jZXNzSWRlbnRpZmllcik7CisgICAgICAgIGlmICghY29ubmVj
dGlvbikgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoTWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXI6Okhhc0FjdGl2aXR5OjpObyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBjb25uZWN0aW9uLT5jaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0
eShtZXNzYWdlUG9ydElkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAg
ICB9IH07Cit9CisKIE5ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJvY2VzcyhBdXhpbGlhcnlQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICA6IG1fZG93bmxv
YWRNYW5hZ2VyKCp0aGlzKQogICAgICwgbV9zdG9yYWdlTWFuYWdlclNldChTdG9yYWdlTWFuYWdl
clNldDo6Y3JlYXRlKCkpCkBAIC0xMzksNyArMTUyLDcgQEAgTmV0d29ya1Byb2Nlc3M6Ok5ldHdv
cmtQcm9jZXNzKEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJiBwYXJh
bWUKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICwgbV93ZWJTUUxpdGVEYXRhYmFzZVRy
YWNrZXIoW3RoaXNdKGJvb2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpIHsgcGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6U2V0SXNIb2xk
aW5nTG9ja2VkRmlsZXMoaXNIb2xkaW5nTG9ja2VkRmlsZXMpLCAwKTsgfSkKICNlbmRpZgotICAg
ICwgbV9tZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcigqdGhpcykKKyAgICAsIG1fbWVzc2FnZVBv
cnRDaGFubmVsUmVnaXN0cnkoY3JlYXRlTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkoKnRoaXMp
KQogewogICAgIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjppbml0aWFsaXplKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRl
eCA2YTEwMDRiNjQxZWZkZTQzYjRmY2ZiNDA2MmY1YTZkOTI1YmRlODNiLi41MTlmYzcxY2Q1NDBl
MGMwYjhjOWI5Y2UzMGNhODczMjZjNzM0ODc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiTG9j
YWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NvbnRlbnRSdWxl
TGlzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5oIgot
I2luY2x1ZGUgIk5ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oIgogI2luY2x1ZGUg
IlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgpAQCAtNDIsNiArNDEsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvRmV0Y2hJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJL
ZXlEYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJTZXJ2ZXIuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdl
SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLmg+CkBAIC0zNDksNyArMzQ5
LDcgQEAgcHVibGljOgogICAgIGNvbnN0IE9wdGlvblNldDxOZXR3b3JrQ2FjaGU6OkNhY2hlT3B0
aW9uPiYgY2FjaGVPcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZU9wdGlvbnM7IH0KIAog
ICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiB3ZWJQcm9jZXNzQ29ubmVjdGlvbihX
ZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcikgY29uc3Q7Ci0gICAgV2ViQ29yZTo6TWVzc2FnZVBv
cnRDaGFubmVsUmVnaXN0cnkmIG1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5KCkgeyByZXR1cm4g
bV9tZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5yZWdpc3RyeSgpOyB9CisgICAgV2ViQ29yZTo6
TWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkmIG1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5KCkg
eyByZXR1cm4gbV9tZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeTsgfQogCiBwcml2YXRlOgogICAg
IHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3QgTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKQEAgLTU3Myw3ICs1NzMsNyBAQCBwcml2YXRlOgogICAg
IEhhc2hNYXA8SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgUEFMOjpTZXNzaW9uSUQ+IG1fc2Vz
c2lvbkJ5Q29ubmVjdGlvbjsKIAogICAgIE9wdGlvblNldDxOZXR3b3JrQ2FjaGU6OkNhY2hlT3B0
aW9uPiBtX2NhY2hlT3B0aW9uczsKLSAgICBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlk
ZXIgbV9tZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjsKKyAgICBXZWJDb3JlOjpNZXNzYWdlUG9y
dENoYW5uZWxSZWdpc3RyeSBtX21lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA3ODE0ZmFhZTNhMjYwYjM4M2ZkOTEw
ZDE4MGFhODlkNmM0OTk0Zjc4Li4xNzkxZWNhOGQwY2Q5ZWQ3MGRjNDEwYzI0ZTM4NTIzNzgyMjNk
OThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKQEAgLTMxLDcgKzMxLDYgQEAgTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0RhdGFUYXNrQmxvYi5jcHAKIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtIVFRQU1VwZ3JhZGVDaGVj
a2VyLmNwcAogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZENoZWNrZXIuY3BwCi1OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTWVzc2FnZVBvcnRD
aGFubmVsUHJvdmlkZXIuY3BwCiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0NjczNjA0MGNl
MTg4MDc4MTU2MmVlZjQ3NDFkYjE3NTNkNWY2NTMyLi5hNzM3ODUwMmFhYTQ3NjI1NTU3M2VmMDA5
NjNlMTk5MDg1M2FmNDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTMwOTEsOCArMzA5MSw2IEBACiAJCTQxMDQ4MkNCMURERDJGQjUw
MEYwMDZEMCAvKiBSVENOZXR3b3JrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJUQ05ldHdvcmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTA0
ODJDQzFEREQyRkI1MDBGMDA2RDAgLyogUlRDTmV0d29yay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSVENOZXR3b3JrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxMTE0MzYzMjBGNjc3QjEwMDI2RjkxMiAvKiBJbmplY3RVc2VyU2NyaXB0SW1tZWRpYXRlbHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0VXNlclNjcmlwdEltbWVk
aWF0ZWx5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxMTE0QTc4MjMxNkVDM0Yw
MEI1NjAwNyAvKiBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxMTE0QTc5MjMxNkVDM0YwMEI1NjAw
NyAvKiBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMjg2RUYyMUM4QTkwQzAwM0E4
NTUwIC8qIE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDExMjg2RjAyMUM4QTkwRDAwM0E4NTUwIC8qIE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhQ2FwdHVyZVV0
aWxpdGllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMkI1NDcxRjlGRDNB
QjAwRTY3ODc1IC8qIE5ldHdvcmtSVENSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUlRDUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNjc1NSw4ICs2NzUzLDYgQEAKIAkJCQk0MTAzRkJBMTIwNjFCREI3MDBD
MkVBRjggLyogTmV0d29ya0xvYWRDaGVja2VyLmggKi8sCiAJCQkJODNENDU0RDYxQkU5RDNDNDAw
NkM5M0JEIC8qIE5ldHdvcmtMb2FkQ2xpZW50LmggKi8sCiAJCQkJODM5MTQ5NjMxQkVBODM4NTAw
RDJEOTUzIC8qIE5ldHdvcmtMb2FkUGFyYW1ldGVycy5oICovLAotCQkJCTQxMTE0QTc5MjMxNkVD
M0YwMEI1NjAwNyAvKiBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwICovLAot
CQkJCTQxMTE0QTc4MjMxNkVDM0YwMEI1NjAwNyAvKiBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXIuaCAqLywKIAkJCQk1MTBDQzdERjE2MTM4RTI5MDBEMDNFRDMgLyogTmV0d29ya1By
b2Nlc3MuY3BwICovLAogCQkJCTUxMENDN0UwMTYxMzhFMjkwMEQwM0VEMyAvKiBOZXR3b3JrUHJv
Y2Vzcy5oICovLAogCQkJCTUxQThBNjE3MTYyN0Y1QkIwMDBEOTBFOSAvKiBOZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbiAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXIuY3BwCmluZGV4IDBlYzk2ZTViZjhkOWUzOTk3MGRjNzdlZjc0MWFiMGMxN2IyZjNhNTAu
LmNjYjU4MjA4NjA5NzA1ZDM0ZGUzOWJhYThiODQ3NDY1MDY2ZGZhNmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZXNzYWdlUG9ydENoYW5u
ZWxQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcApAQCAtOTAsMTIgKzkwLDYgQEAg
dm9pZCBXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6cG9zdE1lc3NhZ2VUb1JlbW90ZShj
b25zdCBNZXNzYWdlV2l0aE1lc3NhZ2UKICAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UG9zdE1lc3NhZ2VU
b1JlbW90ZSB7IG1lc3NhZ2UsIHJlbW90ZVRhcmdldCB9LCAwKTsKIH0KIAotdm9pZCBXZWJNZXNz
YWdlUG9ydENoYW5uZWxQcm92aWRlcjo6Y2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHko
Y29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiwgUHJvY2Vzc0lkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYmKQotewotICAgIC8vIFRvIGJlIGNhbGxlZCBv
bmx5IGluIHRoZSBVSSBwcm9jZXNzIHByb3ZpZGVyLCBub3QgdGhlIFdlYiBwcm9jZXNzIHByb3Zp
ZGVyLgotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCiB2b2lkIFdlYk1lc3NhZ2VQb3J0
Q2hhbm5lbFByb3ZpZGVyOjpjaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShjb25zdCBNZXNzYWdl
UG9ydElkZW50aWZpZXImIHJlbW90ZVRhcmdldCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNB
Y3Rpdml0eSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6Q2hlY2tSZW1vdGVQb3J0Rm9yQWN0aXZpdHkgeyByZW1vdGVUYXJnZXQgfSwg
W2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGJvb2wgaGFz
QWN0aXZpdHkpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXIuaAppbmRleCBlNDQ5OTRlNjA1ZDk2NjA3YWE3MGE4MmRiODk4ZWU5MDFlNTZhZTY0Li5m
ZWQ4NGZjOTE2NGQxNjg2OTE3MzlhMTNkNzRmODdiM2M5NzJhZWRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaApAQCAtNDQsOCArNDQsNiBAQCBwcml2YXRl
OgogICAgIHZvaWQgbWVzc2FnZVBvcnRDbG9zZWQoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJ
ZGVudGlmaWVyJiBsb2NhbCkgZmluYWw7CiAgICAgdm9pZCB0YWtlQWxsTWVzc2FnZXNGb3JQb3J0
KGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoVmVjdG9yPFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzPiYmLCBGdW5jdGlv
bjx2b2lkKCk+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9SZW1vdGUoY29u
c3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmLCBjb25zdCBXZWJDb3JlOjpNZXNz
YWdlUG9ydElkZW50aWZpZXImIHJlbW90ZVRhcmdldCkgZmluYWw7Ci0gICAgdm9pZCBjaGVja1By
b2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eShjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50
aWZpZXImLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChIYXNBY3Rpdml0eSk+JiYpIGZpbmFsOwotCiAgICAgdm9pZCBjaGVja1JlbW90ZVBvcnRGb3JB
Y3Rpdml0eShjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImIHJlbW90ZVRhcmdl
dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNBY3Rpdml0eSk+JiYgY2FsbGJhY2spIGZpbmFs
OwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377980</attachid>
            <date>2019-09-04 07:36:42 -0700</date>
            <delta_ts>2019-09-09 00:09:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201400-20190904163640.patch</filename>
            <type>text/plain</type>
            <size>30209</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NDU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDRiZjhkNDg1YzVlZTU5
YmFhM2E1NGE3YzQ0NTBiNTFhODU2NzlhNi4uZWI3MTZkOGYyYzIyNWExNjE3NmEzZjdlY2E0Zjhk
NDJjYzZiYTk0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE5LTA5LTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIGNoZWNrUHJvY2Vz
c0xvY2FsUG9ydEZvckFjdGl2aXR5IGZyb20gcHJvdmlkZXIgdG8gcmVnaXN0cnkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTQwMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB0aGUgcmVnaXN0
cnkgdG8gdGFrZSBhIGNhbGxiYWNrIHRoYXQgaXMgdXNlZCB0byBpbXBsZW1lbnQgY2hlY2tQcm9j
ZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkuCisgICAgICAgIFRoaXMgYWxsb3dzIFdLMSBhbmQgV0sy
IHRvIGhhdmUgdGhlaXIgb3duIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgIE1ha2UgdGhlIGNh
bGwgdG8gY2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkgZGlyZWN0bHkgb24gdGhlIHJl
Z2lzdHJ5LgorICAgICAgICBSZW1vdmUgdW5uZWVkZWQgd29ya2VyIGNoZWNrUHJvY2Vzc0xvY2Fs
UG9ydEZvckFjdGl2aXR5IG1ldGhvZC4KKyAgICAgICAgTm8gY2hhbmdlIG9mIGJlaGF2aW9yLgor
CisgICAgICAgICogZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsOjpjaGVja1JlbW90ZVBvcnRGb3JBY3Rp
dml0eSk6CisgICAgICAgICogZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlci5oOgorICAgICAgICAqIGRvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1lc3NhZ2VQb3J0Q2hhbm5l
bFJlZ2lzdHJ5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
SW1wbDo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVySW1wbDo6Y2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9y
QWN0aXZpdHkpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBv
cnRDaGFubmVsUHJvdmlkZXJJbXBsLmg6CisgICAgICAgICogZG9tL21lc3NhZ2Vwb3J0cy9NZXNz
YWdlUG9ydENoYW5uZWxSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9y
dENoYW5uZWxSZWdpc3RyeTo6TWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkpOgorICAgICAgICAo
V2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnk6OmNoZWNrUHJvY2Vzc0xvY2FsUG9y
dEZvckFjdGl2aXR5KToKKyAgICAgICAgKiBkb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hh
bm5lbFJlZ2lzdHJ5Lmg6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxSZWdp
c3RyeTo6cHJvdmlkZXIpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9tZXNzYWdlcG9ydHMvV29y
a2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OmNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFj
dGl2aXR5KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vbWVzc2FnZXBvcnRzL1dvcmtlck1lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg6CisKIDIwMTktMDktMDMgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY0NhdGFseXN0XSBVbmFibGUgdG8g
dXBsb2FkIG5vbi1pbWFnZSBmaWxlcyB1c2luZyBkcmFnIGFuZCBkcm9wCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUw
MTU3MzA4ZDA2MGY3NzNhNmE0N2VkNmNlMmUxZjM1MDcwOWFiYzMuLmE5YzZjM2U0MmNmN2JkNDVi
NDdhMDkzNWI5MmU1ZTg0MDU2N2MwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTkt
MDktMDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUg
Y2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkgZnJvbSBwcm92aWRlciB0byByZWdpc3Ry
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNDAw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVt
ZW50IHJlZ2lzdHJ5IGNhbGxiYWNrIGF0IE5ldHdvcmtQcm9jZXNzIGxldmVsLgorICAgICAgICBS
ZW1vdmUgTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyIHNpbmNlIG9ubHkgYSByZWdp
c3RyeSBpcyBub3cgbmVlZGVkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg6IFJlbW92ZWQu
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpjcmVhdGVNZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeSk6CisgICAgICAgIChXZWJL
aXQ6Om1fbWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkpOgorICAgICAgICAoV2ViS2l0OjptX21l
c3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
bWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6Y2hlY2tQcm9j
ZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaDoKKwogMjAxOS0w
OS0wNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBN
ZXNzYWdlUmVnaXN0cnkgdG8gTmV0d29ya1Byb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsLmNwcAppbmRleCAwOTE1ZWFk
OWZmYjhjMTZkYzhiN2IwOWQyZTI1MDc4MDRkOGJkNGM3Li5jZTZlOGE3Y2FlYzNkMjJjMTkyYmE5
YTFkNTUxYzNlMGIyNDNmODMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2Fn
ZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL21l
c3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWwuY3BwCkBAIC0yMjEsNyArMjIxLDcgQEAgdm9p
ZCBNZXNzYWdlUG9ydENoYW5uZWw6OmNoZWNrUmVtb3RlUG9ydEZvckFjdGl2aXR5KGNvbnN0IE1l
c3NhZ2VQb3J0SWRlbnRpZmllciYKICAgICAgICAgY2FsbGJhY2soaGFzQWN0aXZpdHkpOwogICAg
IH07CiAKLSAgICBtX3JlZ2lzdHJ5LnByb3ZpZGVyKCkuY2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9y
QWN0aXZpdHkocmVtb3RlUG9ydCwgKm1fcHJvY2Vzc2VzW2ldLCBXVEZNb3ZlKG91dGVyQ2FsbGJh
Y2spKTsKKyAgICBtX3JlZ2lzdHJ5LmNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KHJl
bW90ZVBvcnQsICptX3Byb2Nlc3Nlc1tpXSwgV1RGTW92ZShvdXRlckNhbGxiYWNrKSk7CiB9CiAK
IGJvb2wgTWVzc2FnZVBvcnRDaGFubmVsOjpoYXNBbnlNZXNzYWdlc1BlbmRpbmdPckluRmxpZ2h0
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9y
dHMvTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaAppbmRleCA2NGMwMGIyNWJlODM1NDViZjY2
MGZmZDQ4NzhkMDc3ODY2YWUwYjNlLi42ZjlhZTE1MjNmYjg2MTQxYTg2MGJkMDBhN2EyNDdhOTll
MjE2ZWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vw
b3J0cy9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oCkBAIC01OSw5ICs1OSw2IEBAIHB1Ymxp
YzoKICAgICB9OwogICAgIHZpcnR1YWwgdm9pZCBjaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShj
b25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImIHJlbW90ZVRhcmdldCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChIYXNBY3Rpdml0eSk+JiYgY2FsbGJhY2spID0gMDsKIAotICAgIC8vIE9wZXJhdGlv
bnMgdGhhdCB0aGUgY29vcmRpbmF0aW5nIHByb2Nlc3MgcGVyZm9ybXMgKGUuZy4gdGhlIFVJUHJv
Y2VzcykKLSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHko
Y29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiwgUHJvY2Vzc0lkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYmKSA9IDA7Ci0KIHByaXZhdGU6CiAKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01l
c3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVySW1wbC5jcHAKaW5kZXggZTE2NTZlMjcyMDA5MTZmYWNk
ZTU4MDdjOWVkYWEwMzIwYzA0MzVkZC4uOGNkYmQ1MGFjMzM4ZGY5ZWY1YzA2OWU1ZmUyNGM2YmQz
ZjdhYjNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNz
YWdlUG9ydENoYW5uZWxQcm92aWRlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9t
ZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBsLmNwcApAQCAtMzIsOCAr
MzIsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgaW5saW5lIE1lc3NhZ2VQ
b3J0Q2hhbm5lbFJlZ2lzdHJ5IGNyZWF0ZU1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5KCkKK3sK
KyAgICByZXR1cm4gTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkgeyBbXShhdXRvJiBtZXNzYWdl
UG9ydElkZW50aWZpZXIsIGF1dG8sIGF1dG8mJiBjYWxsYmFjaykgeworICAgICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworICAgICAgICBjYWxsYmFjayhNZXNzYWdlUG9ydDo6aXNFeGlzdGlu
Z01lc3NhZ2VQb3J0TG9jYWxseVJlYWNoYWJsZShtZXNzYWdlUG9ydElkZW50aWZpZXIpID8gTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5OjpZZXMgOiBNZXNzYWdlUG9ydENo
YW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHk6Ok5vKTsKKyAgICB9IH07Cit9CisKIE1lc3NhZ2VQ
b3J0Q2hhbm5lbFByb3ZpZGVySW1wbDo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBsKCkK
LSAgICA6IG1fcmVnaXN0cnkoKnRoaXMpCisgICAgOiBtX3JlZ2lzdHJ5KGNyZWF0ZU1lc3NhZ2VQ
b3J0Q2hhbm5lbFJlZ2lzdHJ5KCkpCiB7CiB9CiAKQEAgLTExMSwxMSArMTE5LDQgQEAgdm9pZCBN
ZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlckltcGw6OmNoZWNrUmVtb3RlUG9ydEZvckFjdGl2aXR5
KGNvbnN0IE1lc3NhZ2VQb3IKICAgICB9KTsKIH0KIAotdm9pZCBNZXNzYWdlUG9ydENoYW5uZWxQ
cm92aWRlckltcGw6OmNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KGNvbnN0IE1lc3Nh
Z2VQb3J0SWRlbnRpZmllciYgaWRlbnRpZmllciwgUHJvY2Vzc0lkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYmIGNhbGxiYWNrKQotewotICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0KLSAgICBjYWxsYmFjayhNZXNzYWdlUG9ydDo6aXNFeGlzdGluZ01l
c3NhZ2VQb3J0TG9jYWxseVJlYWNoYWJsZShpZGVudGlmaWVyKSA/IEhhc0FjdGl2aXR5OjpZZXMg
OiBIYXNBY3Rpdml0eTo6Tm8pOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbFBy
b3ZpZGVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlckltcGwuaAppbmRleCA0OGNiNTQ4NzEwMjNhNzU1NTg2MTdhMzYxNTc1
Y2QxMjhhYTE4MTFiLi42NjgwNjlhYmM0MWMxNGRlZmVjNzc3MWFkNWRhNDRjNDIxYWQ2ZGEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMv
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBsLmgKQEAgLTQ0LDggKzQ0LDYgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHRha2VBbGxNZXNzYWdlc0ZvclBvcnQoY29uc3QgTWVzc2FnZVBvcnRJZGVu
dGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8TWVzc2FnZVdpdGhNZXNzYWdl
UG9ydHM+JiYsIEZ1bmN0aW9uPHZvaWQoKT4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgY2hlY2tS
ZW1vdGVQb3J0Rm9yQWN0aXZpdHkoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiByZW1vdGVU
YXJnZXQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYmIGNhbGxiYWNrKSBm
aW5hbDsKIAotICAgIHZvaWQgY2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkoY29uc3Qg
TWVzc2FnZVBvcnRJZGVudGlmaWVyJiwgUHJvY2Vzc0lkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYmKSBmaW5hbDsKLQogICAgIHZvaWQgcGVyZm9ybUFjdGlv
bk9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYpOwogCiAgICAgTWVzc2FnZVBvcnRDaGFu
bmVsUmVnaXN0cnkgbV9yZWdpc3RyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9t
ZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeS5jcHAKaW5kZXgg
ZTBlNjBmMmU5NzA3YzMyZjBjODk3NWRhM2RiNWZlZGZkNzc3OWFlMC4uMDk5MjJmNDI5MmJmZjQz
NTkzYzJkOTcyNDgwYTY0M2NiODU0ODZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeS5jcHAK
QEAgLTMyLDggKzMyLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1NZXNzYWdlUG9ydENo
YW5uZWxSZWdpc3RyeTo6TWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkoTWVzc2FnZVBvcnRDaGFu
bmVsUHJvdmlkZXImIHByb3ZpZGVyKQotICAgIDogbV9wcm92aWRlcihwcm92aWRlcikKK01lc3Nh
Z2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5OjpNZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeShDaGVja1By
b2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eUNhbGxiYWNrJiYgY2hlY2tQcm9jZXNzTG9jYWxQb3J0
Rm9yQWN0aXZpdHlDYWxsYmFjaykKKyAgICA6IG1fY2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0
aXZpdHlDYWxsYmFjayhXVEZNb3ZlKGNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5Q2Fs
bGJhY2spKQogewogfQogCkBAIC0xNzgsNCArMTc4LDkgQEAgTWVzc2FnZVBvcnRDaGFubmVsKiBN
ZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeTo6ZXhpc3RpbmdDaGFubmVsQ29udGFpbmluZ1BvcnQo
Y28KICAgICByZXR1cm4gbV9vcGVuQ2hhbm5lbHMuZ2V0KHBvcnQpOwogfQogCit2b2lkIE1lc3Nh
Z2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5OjpjaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eShj
b25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImIG1lc3NhZ2VQb3J0SWRlbnRpZmllciwgUHJvY2Vz
c0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5KT4mJiBjYWxsYmFjaykKK3sKKyAg
ICBtX2NoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5Q2FsbGJhY2sobWVzc2FnZVBvcnRJ
ZGVudGlmaWVyLCBwcm9jZXNzSWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVz
c2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5LmgKaW5kZXggNmJjYTI4
MmVkY2E5YTMwMDcyOTI3NWI5NjQ5YTRjNTNhNGFkZjFjNi4uYWY0YmViNDhiMjRkNDJhMzVlY2Ux
M2FiYWJmOTlmNWUxYjVlZjE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL21lc3Nh
Z2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkuaApAQCAtMzUsNyAr
MzUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lc3NhZ2VQb3J0Q2hhbm5lbFJl
Z2lzdHJ5IHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBNZXNzYWdlUG9ydENoYW5uZWxS
ZWdpc3RyeShNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlciYpOworICAgIHVzaW5nIENoZWNrUHJv
Y2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5Q2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IE1l
c3NhZ2VQb3J0SWRlbnRpZmllciYsIFByb2Nlc3NJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSk+JiYpPjsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBNZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeShDaGVj
a1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eUNhbGxiYWNrJiYpOworCiAgICAgV0VCQ09SRV9F
WFBPUlQgfk1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5KCk7CiAgICAgCiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBkaWRDcmVhdGVNZXNzYWdlUG9ydENoYW5uZWwoY29uc3QgTWVzc2FnZVBvcnRJ
ZGVudGlmaWVyJiBwb3J0MSwgY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBwb3J0Mik7CkBA
IC01MSwxMiArNTMsMTEgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbWVzc2Fn
ZVBvcnRDaGFubmVsQ3JlYXRlZChNZXNzYWdlUG9ydENoYW5uZWwmKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIG1lc3NhZ2VQb3J0Q2hhbm5lbERlc3Ryb3llZChNZXNzYWdlUG9ydENoYW5uZWwm
KTsKIAotICAgIE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyJiBwcm92aWRlcigpIHsgcmV0dXJu
IG1fcHJvdmlkZXI7IH0KKyAgICB2b2lkIGNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5
KGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIFByb2Nlc3NJZGVudGlmaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSk+
JiYpOwogCiBwcml2YXRlOgogICAgIEhhc2hNYXA8TWVzc2FnZVBvcnRJZGVudGlmaWVyLCBNZXNz
YWdlUG9ydENoYW5uZWwqPiBtX29wZW5DaGFubmVsczsKLSAgICBNZXNzYWdlUG9ydENoYW5uZWxQ
cm92aWRlciYgbV9wcm92aWRlcjsKLQorICAgIENoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2
aXR5Q2FsbGJhY2sgbV9jaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eUNhbGxiYWNrOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL21lc3NhZ2Vwb3J0cy9Xb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL1dvcmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFBy
b3ZpZGVyLmNwcAppbmRleCA2YTAxNzU5MTEzMjU3MGM0NzljMTUwNDJiOTA3ODI4YjBlZjg0MDBk
Li43YTBhODFjZGFhN2ExYWVlYzNkZmY1OWViMTBhY2M3ZWM2YzFhM2NkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL1dvcmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFBy
b3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL1dvcmtlck1l
c3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcApAQCAtMTIwLDE5ICsxMjAsNCBAQCB2b2lkIFdv
cmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpjaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0
eShjb25zdCBNZXNzYWdlUAogICAgIH0pOwogfQogCi12b2lkIFdvcmtlck1lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVyOjpjaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eShjb25zdCBNZXNz
YWdlUG9ydElkZW50aWZpZXImIGlkZW50aWZpZXIsIFByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc0FjdGl2aXR5KT4mJiBjYWxsYmFj
aykKLXsKLSAgICB1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIgPSArK21fbGFzdENhbGxiYWNr
SWRlbnRpZmllcjsKLSAgICBtX2FjdGl2aXR5Q2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZp
ZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKLQotICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdv
cmtlclRocmVhZCA9IG1ha2VSZWYobV9zY29wZS50aHJlYWQoKSksIGNhbGxiYWNrSWRlbnRpZmll
ciwgaWRlbnRpZmllciwgcHJvY2Vzc0lkZW50aWZpZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIE1l
c3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpzaW5nbGV0b24oKS5jaGVja1Byb2Nlc3NMb2NhbFBv
cnRGb3JBY3Rpdml0eShpZGVudGlmaWVyLCBwcm9jZXNzSWRlbnRpZmllciwgW3RoaXMsIHdvcmtl
clRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKSwgY2FsbGJhY2tJZGVudGlmaWVyXShhdXRv
IGhhc0FjdGl2aXR5KSB7Ci0gICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0
VGFza0Zvck1vZGUoW3RoaXMsIGNhbGxiYWNrSWRlbnRpZmllciwgaGFzQWN0aXZpdHldKGF1dG8m
IHNjb3BlKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKHNjb3BlLCB0
aGlzID09ICZkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLm1lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVyKCkpOwotICAgICAgICAgICAgICAgIG1fYWN0aXZpdHlDYWxsYmFja3MudGFr
ZShjYWxsYmFja0lkZW50aWZpZXIpKGhhc0FjdGl2aXR5KTsKLSAgICAgICAgICAgIH0sIFdvcmtl
clJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0KLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL21lc3Nh
Z2Vwb3J0cy9Xb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL21lc3NhZ2Vwb3J0cy9Xb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oCmlu
ZGV4IDg3ZDAyMGFmNGNjMjk0NGQwMmE3ZmQxZTc0NTU3ZWZiNTI0OWQxZWUuLmM3OWYzNGZkZmY4
NzQ5OGJmNjJlNDg5YTMzZTdmZDMxNGRjMDQ0ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9tZXNzYWdlcG9ydHMvV29ya2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL1dvcmtlck1lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyLmgKQEAgLTQ5LDggKzQ5LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHRha2VBbGxN
ZXNzYWdlc0ZvclBvcnQoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChWZWN0b3I8TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM+JiYsIEZ1bmN0aW9uPHZv
aWQoKT4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgY2hlY2tSZW1vdGVQb3J0Rm9yQWN0aXZpdHko
Y29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiByZW1vdGVUYXJnZXQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYmIGNhbGxiYWNrKSBmaW5hbDsKIAotICAgIHZvaWQgY2hl
Y2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVy
JiwgUHJvY2Vzc0lkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzQWN0aXZpdHkp
PiYmKSBmaW5hbDsKLQogICAgIFdvcmtlckdsb2JhbFNjb3BlJiBtX3Njb3BlOwogCiAgICAgdWlu
dDY0X3QgbV9sYXN0Q2FsbGJhY2tJZGVudGlmaWVyIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcAppbmRleCAyODExNWYyZjU2NGFlNTNlM2VkMGZhYmVmY2MwM2FkMTNlZDdhZGRhLi5m
OTg2Y2ZmN2VhOTlmNzdlODRjYzgwNjdiN2IzNTg2NDlhZjJmNzZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2Uu
aCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGUuaCIKICNpbmNsdWRlICJOZXR3b3JrTUROU1JlZ2lz
dGVyTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlk
ZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdl
cy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyMDk2YzExNjQ3MzhhOGRkNTljZjM0MDA5MDdiYjE4YjIyOTk1Y2Y4Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDk0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTgt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIu
aCIKLQotI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCi0jaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3MuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKLQotTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpOZXR3b3Jr
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNz
KQotICAgIDogbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKLSAgICAsIG1fcmVnaXN0
cnkoKnRoaXMpCi17Ci19Ci0KLXZvaWQgTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
OjpjcmVhdGVOZXdNZXNzYWdlUG9ydENoYW5uZWwoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVy
JiwgY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJikKLXsKLSAgICAvLyBTaG91bGQgbmV2ZXIg
YmUgY2FsbGVkIGluIHRoZSBVSSBwcm9jZXNzIHByb3ZpZGVyLgotICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotfQotCi12b2lkIE5ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6ZW50
YW5nbGVMb2NhbFBvcnRJblRoaXNQcm9jZXNzVG9SZW1vdGUoY29uc3QgTWVzc2FnZVBvcnRJZGVu
dGlmaWVyJiwgY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJikKLXsKLSAgICAvLyBTaG91bGQg
bmV2ZXIgYmUgY2FsbGVkIGluIHRoZSBVSSBwcm9jZXNzIHByb3ZpZGVyLgotICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotfQotCi12b2lkIE5ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRl
cjo6bWVzc2FnZVBvcnREaXNlbnRhbmdsZWQoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJikK
LXsKLSAgICAvLyBTaG91bGQgbmV2ZXIgYmUgY2FsbGVkIGluIHRoZSBVSSBwcm9jZXNzIHByb3Zp
ZGVyLgotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi12b2lkIE5ldHdvcmtNZXNzYWdl
UG9ydENoYW5uZWxQcm92aWRlcjo6bWVzc2FnZVBvcnRDbG9zZWQoY29uc3QgTWVzc2FnZVBvcnRJ
ZGVudGlmaWVyJikKLXsKLSAgICAvLyBTaG91bGQgbmV2ZXIgYmUgY2FsbGVkIGluIHRoZSBVSSBw
cm9jZXNzIHByb3ZpZGVyLgotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi12b2lkIE5l
dHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6dGFrZUFsbE1lc3NhZ2VzRm9yUG9ydChj
b25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3Rv
cjxNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cz4mJiwgRnVuY3Rpb248dm9pZCgpPiYmKT4mJikKLXsK
LSAgICAvLyBTaG91bGQgbmV2ZXIgYmUgY2FsbGVkIGluIHRoZSBVSSBwcm9jZXNzIHByb3ZpZGVy
LgotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi12b2lkIE5ldHdvcmtNZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlcjo6cG9zdE1lc3NhZ2VUb1JlbW90ZShjb25zdCBNZXNzYWdlV2l0aE1l
c3NhZ2VQb3J0cyYsIGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYpCi17Ci0gICAgLy8gU2hv
dWxkIG5ldmVyIGJlIGNhbGxlZCBpbiB0aGUgVUkgcHJvY2VzcyBwcm92aWRlci4KLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotdm9pZCBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXI6OmNoZWNrUmVtb3RlUG9ydEZvckFjdGl2aXR5KGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRp
ZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYmKQotewotICAgIC8v
IFNob3VsZCBuZXZlciBiZSBjYWxsZWQgaW4gdGhlIFVJIHByb2Nlc3MgcHJvdmlkZXIuCi0gICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KLXZvaWQgTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyOjpjaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eShjb25zdCBNZXNzYWdl
UG9ydElkZW50aWZpZXImIHBvcnQsIFByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc0FjdGl2aXR5KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKLXsKLSAgICBhdXRvKiBjb25uZWN0aW9uID0gbV9uZXR3b3JrUHJvY2Vzcy53ZWJQcm9jZXNz
Q29ubmVjdGlvbihwcm9jZXNzSWRlbnRpZmllcik7Ci0gICAgaWYgKCFjb25uZWN0aW9uKSB7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEhhc0FjdGl2aXR5OjpObyk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBjb25uZWN0aW9uLT5jaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rp
dml0eShwb3J0LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGI5MmVlMGIzNGRhY2U5MGU1YWE0ZjY3MzEwNjUwMjJmMzRkZDZmNDgu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaAor
KysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTgt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkuaD4KLQotbmFtZXNw
YWNlIFdlYktpdCB7Ci0KLWNsYXNzIE5ldHdvcmtQcm9jZXNzOwotCi1jbGFzcyBOZXR3b3JrTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXIgOiBwdWJsaWMgV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFu
bmVsUHJvdmlkZXIgewotcHVibGljOgotICAgIGV4cGxpY2l0IE5ldHdvcmtNZXNzYWdlUG9ydENo
YW5uZWxQcm92aWRlcihOZXR3b3JrUHJvY2VzcyYpOwotICAgIFdlYkNvcmU6Ok1lc3NhZ2VQb3J0
Q2hhbm5lbFJlZ2lzdHJ5JiByZWdpc3RyeSgpIHsgcmV0dXJuIG1fcmVnaXN0cnk7IH0KLQotcHJp
dmF0ZToKLSAgICB2b2lkIGNyZWF0ZU5ld01lc3NhZ2VQb3J0Q2hhbm5lbChjb25zdCBXZWJDb3Jl
OjpNZXNzYWdlUG9ydElkZW50aWZpZXImIGxvY2FsLCBjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9y
dElkZW50aWZpZXImIHJlbW90ZSkgZmluYWw7Ci0gICAgdm9pZCBlbnRhbmdsZUxvY2FsUG9ydElu
VGhpc1Byb2Nlc3NUb1JlbW90ZShjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIm
IGxvY2FsLCBjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImIHJlbW90ZSkgZmlu
YWw7Ci0gICAgdm9pZCBtZXNzYWdlUG9ydERpc2VudGFuZ2xlZChjb25zdCBXZWJDb3JlOjpNZXNz
YWdlUG9ydElkZW50aWZpZXImIGxvY2FsKSBmaW5hbDsKLSAgICB2b2lkIG1lc3NhZ2VQb3J0Q2xv
c2VkKGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYgbG9jYWwpIGZpbmFsOwot
ICAgIHZvaWQgdGFrZUFsbE1lc3NhZ2VzRm9yUG9ydChjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9y
dElkZW50aWZpZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpNZXNz
YWdlV2l0aE1lc3NhZ2VQb3J0cz4mJiwgRnVuY3Rpb248dm9pZCgpPiYmKT4mJikgZmluYWw7Ci0g
ICAgdm9pZCBwb3N0TWVzc2FnZVRvUmVtb3RlKGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVz
c2FnZVBvcnRzJiwgY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiByZW1vdGVU
YXJnZXQpIGZpbmFsOwotCi0gICAgdm9pZCBjaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShjb25z
dCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImIHJlbW90ZVRhcmdldCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChIYXNBY3Rpdml0eSk+JiYgY2FsbGJhY2spIGZpbmFsOwotICAgIHZvaWQg
Y2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBv
cnRJZGVudGlmaWVyJiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYmKSBmaW5hbDsKLQotICAgIE5ldHdvcmtQcm9jZXNzJiBt
X25ldHdvcmtQcm9jZXNzOwotICAgIFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5
IG1fcmVnaXN0cnk7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggOGE3OWM0OWU0MzA5
Yzc1ZTRhNjZiM2M5MGI5NDE2ODM1N2ZlYzIyNy4uYWE1Y2JhOGJkNGJiZDE0NTk3ZTFlNDY1NDlh
ZDNlNjRiMWUwYTFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKQEAgLTEzMCw2ICsxMzAsMTkgQEAgc3RhdGljIHZvaWQgY2FsbEV4aXRT
b29uKElQQzo6Q29ubmVjdGlvbiopCiAgICAgfSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgTWVzc2Fn
ZVBvcnRDaGFubmVsUmVnaXN0cnkgY3JlYXRlTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkoTmV0
d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzKQoreworICAgIHJldHVybiBNZXNzYWdlUG9ydENo
YW5uZWxSZWdpc3RyeSB7IFsmbmV0d29ya1Byb2Nlc3NdKGF1dG8mIG1lc3NhZ2VQb3J0SWRlbnRp
ZmllciwgYXV0byBwcm9jZXNzSWRlbnRpZmllciwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSB7
CisgICAgICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBuZXR3b3JrUHJvY2Vzcy53ZWJQcm9jZXNzQ29u
bmVjdGlvbihwcm9jZXNzSWRlbnRpZmllcik7CisgICAgICAgIGlmICghY29ubmVjdGlvbikgewor
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6
Okhhc0FjdGl2aXR5OjpObyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBjb25uZWN0aW9uLT5jaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eShtZXNzYWdl
UG9ydElkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICB9IH07Cit9
CisKIE5ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJvY2VzcyhBdXhpbGlhcnlQcm9jZXNzSW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICA6IG1fZG93bmxvYWRNYW5hZ2Vy
KCp0aGlzKQogICAgICwgbV9zdG9yYWdlTWFuYWdlclNldChTdG9yYWdlTWFuYWdlclNldDo6Y3Jl
YXRlKCkpCkBAIC0xMzksNyArMTUyLDcgQEAgTmV0d29ya1Byb2Nlc3M6Ok5ldHdvcmtQcm9jZXNz
KEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJiBwYXJhbWUKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQogICAgICwgbV93ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIoW3Ro
aXNdKGJvb2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpIHsgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6U2V0SXNIb2xkaW5nTG9ja2Vk
RmlsZXMoaXNIb2xkaW5nTG9ja2VkRmlsZXMpLCAwKTsgfSkKICNlbmRpZgotICAgICwgbV9tZXNz
YWdlUG9ydENoYW5uZWxQcm92aWRlcigqdGhpcykKKyAgICAsIG1fbWVzc2FnZVBvcnRDaGFubmVs
UmVnaXN0cnkoY3JlYXRlTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkoKnRoaXMpKQogewogICAg
IE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjppbml0aWFsaXplKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCA2YTEwMDRi
NjQxZWZkZTQzYjRmY2ZiNDA2MmY1YTZkOTI1YmRlODNiLi41MTlmYzcxY2Q1NDBlMGMwYjhjOWI5
Y2UzMGNhODczMjZjNzM0ODc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiTG9jYWxTdG9yYWdl
RGF0YWJhc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFn
ZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5oIgotI2luY2x1ZGUg
Ik5ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oIgogI2luY2x1ZGUgIlNhbmRib3hF
eHRlbnNpb24uaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIK
ICNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgpAQCAtNDIsNiArNDEsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvRmV0Y2hJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJLZXlEYXRhLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJTZXJ2ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lc3Nh
Z2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmll
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLmg+CkBAIC0zNDksNyArMzQ5LDcgQEAgcHVi
bGljOgogICAgIGNvbnN0IE9wdGlvblNldDxOZXR3b3JrQ2FjaGU6OkNhY2hlT3B0aW9uPiYgY2Fj
aGVPcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZU9wdGlvbnM7IH0KIAogICAgIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiB3ZWJQcm9jZXNzQ29ubmVjdGlvbihXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpZmllcikgY29uc3Q7Ci0gICAgV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVs
UmVnaXN0cnkmIG1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5KCkgeyByZXR1cm4gbV9tZXNzYWdl
UG9ydENoYW5uZWxQcm92aWRlci5yZWdpc3RyeSgpOyB9CisgICAgV2ViQ29yZTo6TWVzc2FnZVBv
cnRDaGFubmVsUmVnaXN0cnkmIG1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5KCkgeyByZXR1cm4g
bV9tZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeTsgfQogCiBwcml2YXRlOgogICAgIHZvaWQgcGxh
dGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmKTsKQEAgLTU3Myw3ICs1NzMsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8
SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgUEFMOjpTZXNzaW9uSUQ+IG1fc2Vzc2lvbkJ5Q29u
bmVjdGlvbjsKIAogICAgIE9wdGlvblNldDxOZXR3b3JrQ2FjaGU6OkNhY2hlT3B0aW9uPiBtX2Nh
Y2hlT3B0aW9uczsKLSAgICBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIgbV9tZXNz
YWdlUG9ydENoYW5uZWxQcm92aWRlcjsKKyAgICBXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxS
ZWdpc3RyeSBtX21lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA3ODE0ZmFhZTNhMjYwYjM4M2ZkOTEwZDE4MGFhODlk
NmM0OTk0Zjc4Li4xNzkxZWNhOGQwY2Q5ZWQ3MGRjNDEwYzI0ZTM4NTIzNzgyMjNkOThhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKQEAgLTMxLDcgKzMxLDYgQEAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNr
QmxvYi5jcHAKIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmNwcAog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZENoZWNrZXIuY3BwCi1OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXIuY3BwCiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0NjczNjA0MGNlMTg4MDc4MTU2
MmVlZjQ3NDFkYjE3NTNkNWY2NTMyLi5hNzM3ODUwMmFhYTQ3NjI1NTU3M2VmMDA5NjNlMTk5MDg1
M2FmNDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTMwOTEsOCArMzA5MSw2IEBACiAJCTQxMDQ4MkNCMURERDJGQjUwMEYwMDZEMCAv
KiBSVENOZXR3b3JrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJU
Q05ldHdvcmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTA0ODJDQzFEREQy
RkI1MDBGMDA2RDAgLyogUlRDTmV0d29yay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSVENOZXR3b3JrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTE0MzYz
MjBGNjc3QjEwMDI2RjkxMiAvKiBJbmplY3RVc2VyU2NyaXB0SW1tZWRpYXRlbHkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxMTE0QTc4MjMxNkVDM0YwMEI1NjAwNyAv
KiBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxMTE0QTc5MjMxNkVDM0YwMEI1NjAwNyAvKiBOZXR3
b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMjg2RUYyMUM4QTkwQzAwM0E4NTUwIC8qIE1l
ZGlhQ2FwdHVyZVV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
ZWRpYUNhcHR1cmVVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEx
Mjg2RjAyMUM4QTkwRDAwM0E4NTUwIC8qIE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMkI1NDcxRjlGRDNBQjAwRTY3ODc1
IC8qIE5ldHdvcmtSVENSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBOZXR3b3JrUlRDUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNjc1NSw4ICs2NzUzLDYgQEAKIAkJCQk0MTAzRkJBMTIwNjFCREI3MDBDMkVBRjggLyog
TmV0d29ya0xvYWRDaGVja2VyLmggKi8sCiAJCQkJODNENDU0RDYxQkU5RDNDNDAwNkM5M0JEIC8q
IE5ldHdvcmtMb2FkQ2xpZW50LmggKi8sCiAJCQkJODM5MTQ5NjMxQkVBODM4NTAwRDJEOTUzIC8q
IE5ldHdvcmtMb2FkUGFyYW1ldGVycy5oICovLAotCQkJCTQxMTE0QTc5MjMxNkVDM0YwMEI1NjAw
NyAvKiBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwICovLAotCQkJCTQxMTE0
QTc4MjMxNkVDM0YwMEI1NjAwNyAvKiBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIu
aCAqLywKIAkJCQk1MTBDQzdERjE2MTM4RTI5MDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MuY3Bw
ICovLAogCQkJCTUxMENDN0UwMTYxMzhFMjkwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vzcy5oICov
LAogCQkJCTUxQThBNjE3MTYyN0Y1QkIwMDBEOTBFOSAvKiBOZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbiAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3Bw
CmluZGV4IDBlYzk2ZTViZjhkOWUzOTk3MGRjNzdlZjc0MWFiMGMxN2IyZjNhNTAuLmNjYjU4MjA4
NjA5NzA1ZDM0ZGUzOWJhYThiODQ3NDY1MDY2ZGZhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1l
c3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcApAQCAtOTAsMTIgKzkwLDYgQEAgdm9pZCBXZWJN
ZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6cG9zdE1lc3NhZ2VUb1JlbW90ZShjb25zdCBNZXNz
YWdlV2l0aE1lc3NhZ2UKICAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UG9zdE1lc3NhZ2VUb1JlbW90ZSB7
IG1lc3NhZ2UsIHJlbW90ZVRhcmdldCB9LCAwKTsKIH0KIAotdm9pZCBXZWJNZXNzYWdlUG9ydENo
YW5uZWxQcm92aWRlcjo6Y2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkoY29uc3QgTWVz
c2FnZVBvcnRJZGVudGlmaWVyJiwgUHJvY2Vzc0lkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoSGFzQWN0aXZpdHkpPiYmKQotewotICAgIC8vIFRvIGJlIGNhbGxlZCBvbmx5IGluIHRo
ZSBVSSBwcm9jZXNzIHByb3ZpZGVyLCBub3QgdGhlIFdlYiBwcm9jZXNzIHByb3ZpZGVyLgotICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCiB2b2lkIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFBy
b3ZpZGVyOjpjaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShjb25zdCBNZXNzYWdlUG9ydElkZW50
aWZpZXImIHJlbW90ZVRhcmdldCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNBY3Rpdml0eSk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCku
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Q2hlY2tSZW1vdGVQb3J0Rm9yQWN0aXZpdHkgeyByZW1vdGVUYXJnZXQgfSwgW2NvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGJvb2wgaGFzQWN0aXZpdHkp
IG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaApp
bmRleCBlNDQ5OTRlNjA1ZDk2NjA3YWE3MGE4MmRiODk4ZWU5MDFlNTZhZTY0Li5mZWQ4NGZjOTE2
NGQxNjg2OTE3MzlhMTNkNzRmODdiM2M5NzJhZWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVzc2Fn
ZVBvcnRDaGFubmVsUHJvdmlkZXIuaApAQCAtNDQsOCArNDQsNiBAQCBwcml2YXRlOgogICAgIHZv
aWQgbWVzc2FnZVBvcnRDbG9zZWQoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVy
JiBsb2NhbCkgZmluYWw7CiAgICAgdm9pZCB0YWtlQWxsTWVzc2FnZXNGb3JQb3J0KGNvbnN0IFdl
YkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVj
dG9yPFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzPiYmLCBGdW5jdGlvbjx2b2lkKCk+
JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9SZW1vdGUoY29uc3QgV2ViQ29y
ZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmLCBjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElk
ZW50aWZpZXImIHJlbW90ZVRhcmdldCkgZmluYWw7Ci0gICAgdm9pZCBjaGVja1Byb2Nlc3NMb2Nh
bFBvcnRGb3JBY3Rpdml0eShjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImLCBX
ZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNBY3Rp
dml0eSk+JiYpIGZpbmFsOwotCiAgICAgdm9pZCBjaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShj
b25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImIHJlbW90ZVRhcmdldCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChIYXNBY3Rpdml0eSk+JiYgY2FsbGJhY2spIGZpbmFsOwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378349</attachid>
            <date>2019-09-09 00:09:08 -0700</date>
            <delta_ts>2019-09-09 01:50:57 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-201400-20190909090905.patch</filename>
            <type>text/plain</type>
            <size>30236</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTRiZWRkYWEwOWM2ZWUz
ZjIyZjEwMTA1YjJlMzU2NjY2MzRkZWYzOC4uMzYxMzViMjNhODQ0ZGYyMmMyNDBiMmMyM2U3ZjI4
OWFhOGQxNzUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE5LTA5LTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIGNoZWNrUHJvY2Vz
c0xvY2FsUG9ydEZvckFjdGl2aXR5IGZyb20gcHJvdmlkZXIgdG8gcmVnaXN0cnkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTQwMAorCisgICAgICAg
IFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgVXBkYXRlIHRoZSByZWdp
c3RyeSB0byB0YWtlIGEgY2FsbGJhY2sgdGhhdCBpcyB1c2VkIHRvIGltcGxlbWVudCBjaGVja1By
b2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eS4KKyAgICAgICAgVGhpcyBhbGxvd3MgV0sxIGFuZCBX
SzIgdG8gaGF2ZSB0aGVpciBvd24gaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgTWFrZSB0aGUg
Y2FsbCB0byBjaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eSBkaXJlY3RseSBvbiB0aGUg
cmVnaXN0cnkuCisgICAgICAgIFJlbW92ZSB1bm5lZWRlZCB3b3JrZXIgY2hlY2tQcm9jZXNzTG9j
YWxQb3J0Rm9yQWN0aXZpdHkgbWV0aG9kLgorICAgICAgICBObyBjaGFuZ2Ugb2YgYmVoYXZpb3Iu
CisKKyAgICAgICAgKiBkb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWw6OmNoZWNrUmVtb3RlUG9ydEZvckFj
dGl2aXR5KToKKyAgICAgICAgKiBkb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbFBy
b3ZpZGVyLmg6CisgICAgICAgICogZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxQ
cm92aWRlckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWVzc2FnZVBvcnRDaGFu
bmVsUmVnaXN0cnkpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlk
ZXJJbXBsOjpNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlckltcGwpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBsOjpjaGVja1Byb2Nlc3NMb2NhbFBvcnRG
b3JBY3Rpdml0eSk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdl
UG9ydENoYW5uZWxQcm92aWRlckltcGwuaDoKKyAgICAgICAgKiBkb20vbWVzc2FnZXBvcnRzL01l
c3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQ
b3J0Q2hhbm5lbFJlZ2lzdHJ5OjpNZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeSk6CisgICAgICAg
IChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeTo6Y2hlY2tQcm9jZXNzTG9jYWxQ
b3J0Rm9yQWN0aXZpdHkpOgorICAgICAgICAqIGRvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRD
aGFubmVsUmVnaXN0cnkuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFJl
Z2lzdHJ5Ojpwcm92aWRlcik6IERlbGV0ZWQuCisgICAgICAgICogZG9tL21lc3NhZ2Vwb3J0cy9X
b3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6Y2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9y
QWN0aXZpdHkpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9tZXNzYWdlcG9ydHMvV29ya2VyTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaDoKKwogMjAxOS0wOS0wOCAgU2FhbSBCYXJhdGkgIDxz
YmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbV0hMU0xdIEFkZCBiYWNrIGEgdmVyc2lvbiBv
ZiB0aGUgcHJvcGVydHkgcmVzb2x2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTM0ODU4MWNiMzgzYTk2NDVjODJl
OWU1MjYzMmU1ZGJiOWQxNTZkMS4uYzMyZjA0ZDM4NjVkZWYyNGM1MDc4ZmI4MmNlMmU2YjcwZmE4
N2UxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxOS0wOS0wOCAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBjaGVja1Byb2Nlc3NMb2NhbFBv
cnRGb3JBY3Rpdml0eSBmcm9tIHByb3ZpZGVyIHRvIHJlZ2lzdHJ5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE0MDAKKworICAgICAgICBSZXZpZXdl
ZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIEltcGxlbWVudCByZWdpc3RyeSBjYWxs
YmFjayBhdCBOZXR3b3JrUHJvY2VzcyBsZXZlbC4KKyAgICAgICAgUmVtb3ZlIE5ldHdvcmtNZXNz
YWdlUG9ydENoYW5uZWxQcm92aWRlciBzaW5jZSBvbmx5IGEgcmVnaXN0cnkgaXMgbm93IG5lZWRl
ZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTWVzc2FnZVBvcnRDaGFu
bmVsUHJvdmlkZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oOiBSZW1vdmVkLgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Y3JlYXRlTWVz
c2FnZVBvcnRDaGFubmVsUmVnaXN0cnkpOgorICAgICAgICAoV2ViS2l0OjptX21lc3NhZ2VQb3J0
Q2hhbm5lbFJlZ2lzdHJ5KToKKyAgICAgICAgKFdlYktpdDo6bV9tZXNzYWdlUG9ydENoYW5uZWxQ
cm92aWRlcik6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Om1lc3NhZ2VQb3J0Q2hhbm5l
bFJlZ2lzdHJ5KToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OmNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFj
dGl2aXR5KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Yk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg6CisKIDIwMTktMDktMDggIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY0NhdGFseXN0XSBUaGUg
bGFzdCB0eXBlZCBjaGFyYWN0ZXIgaW4gcGFzc3dvcmQgZmllbGRzIHNob3VsZG4ndCBiZSBlY2hv
ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBv
cnRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBv
cnRDaGFubmVsLmNwcAppbmRleCAwOTE1ZWFkOWZmYjhjMTZkYzhiN2IwOWQyZTI1MDc4MDRkOGJk
NGM3Li5jZTZlOGE3Y2FlYzNkMjJjMTkyYmE5YTFkNTUxYzNlMGIyNDNmODMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWwu
Y3BwCkBAIC0yMjEsNyArMjIxLDcgQEAgdm9pZCBNZXNzYWdlUG9ydENoYW5uZWw6OmNoZWNrUmVt
b3RlUG9ydEZvckFjdGl2aXR5KGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYKICAgICAgICAg
Y2FsbGJhY2soaGFzQWN0aXZpdHkpOwogICAgIH07CiAKLSAgICBtX3JlZ2lzdHJ5LnByb3ZpZGVy
KCkuY2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkocmVtb3RlUG9ydCwgKm1fcHJvY2Vz
c2VzW2ldLCBXVEZNb3ZlKG91dGVyQ2FsbGJhY2spKTsKKyAgICBtX3JlZ2lzdHJ5LmNoZWNrUHJv
Y2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KHJlbW90ZVBvcnQsICptX3Byb2Nlc3Nlc1tpXSwgV1RG
TW92ZShvdXRlckNhbGxiYWNrKSk7CiB9CiAKIGJvb2wgTWVzc2FnZVBvcnRDaGFubmVsOjpoYXNB
bnlNZXNzYWdlc1BlbmRpbmdPckluRmxpZ2h0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIu
aAppbmRleCA2NGMwMGIyNWJlODM1NDViZjY2MGZmZDQ4NzhkMDc3ODY2YWUwYjNlLi42ZjlhZTE1
MjNmYjg2MTQxYTg2MGJkMDBhN2EyNDdhOTllMjE2ZWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRl
ci5oCkBAIC01OSw5ICs1OSw2IEBAIHB1YmxpYzoKICAgICB9OwogICAgIHZpcnR1YWwgdm9pZCBj
aGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImIHJl
bW90ZVRhcmdldCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNBY3Rpdml0eSk+JiYgY2FsbGJh
Y2spID0gMDsKIAotICAgIC8vIE9wZXJhdGlvbnMgdGhhdCB0aGUgY29vcmRpbmF0aW5nIHByb2Nl
c3MgcGVyZm9ybXMgKGUuZy4gdGhlIFVJUHJvY2VzcykKLSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tQ
cm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiwg
UHJvY2Vzc0lkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYm
KSA9IDA7Ci0KIHByaXZhdGU6CiAKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
bWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVySW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVySW1wbC5j
cHAKaW5kZXggZTE2NTZlMjcyMDA5MTZmYWNkZTU4MDdjOWVkYWEwMzIwYzA0MzVkZC4uMjNlMjNj
MGNmNDIyODU1ODNjZWI3Y2NhMGQ5YjUyNTQzYmJmOTE1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlckltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXJJbXBsLmNwcApAQCAtMzIsOCArMzIsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitzdGF0aWMgaW5saW5lIE1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5OjpDaGVja1Byb2Nl
c3NMb2NhbFBvcnRGb3JBY3Rpdml0eUNhbGxiYWNrIGNoZWNrQWN0aXZpdHlDYWxsYmFjaygpCit7
CisgICAgcmV0dXJuIFtdKGF1dG8mIG1lc3NhZ2VQb3J0SWRlbnRpZmllciwgYXV0bywgYXV0byYm
IGNhbGxiYWNrKSB7CisgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgICAgIGNh
bGxiYWNrKE1lc3NhZ2VQb3J0Ojppc0V4aXN0aW5nTWVzc2FnZVBvcnRMb2NhbGx5UmVhY2hhYmxl
KG1lc3NhZ2VQb3J0SWRlbnRpZmllcikgPyBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFz
QWN0aXZpdHk6OlllcyA6IE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eTo6
Tm8pOworICAgIH07Cit9CisKIE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVySW1wbDo6TWVzc2Fn
ZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBsKCkKLSAgICA6IG1fcmVnaXN0cnkoKnRoaXMpCisgICAg
OiBtX3JlZ2lzdHJ5KGNoZWNrQWN0aXZpdHlDYWxsYmFjaygpKQogewogfQogCkBAIC0xMTEsMTEg
KzExOSw0IEBAIHZvaWQgTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBsOjpjaGVja1JlbW90
ZVBvcnRGb3JBY3Rpdml0eShjb25zdCBNZXNzYWdlUG9yCiAgICAgfSk7CiB9CiAKLXZvaWQgTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBsOjpjaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rp
dml0eShjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImIGlkZW50aWZpZXIsIFByb2Nlc3NJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc0FjdGl2aXR5KT4mJiBjYWxsYmFjaykK
LXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotCi0gICAgY2FsbGJhY2soTWVzc2FnZVBv
cnQ6OmlzRXhpc3RpbmdNZXNzYWdlUG9ydExvY2FsbHlSZWFjaGFibGUoaWRlbnRpZmllcikgPyBI
YXNBY3Rpdml0eTo6WWVzIDogSGFzQWN0aXZpdHk6Ok5vKTsKLX0KLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNz
YWdlUG9ydENoYW5uZWxQcm92aWRlckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdl
cG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBsLmgKaW5kZXggNDhjYjU0ODcxMDIz
YTc1NTU4NjE3YTM2MTU3NWNkMTI4YWExODExYi4uNjY4MDY5YWJjNDFjMTRkZWZlYzc3NzFhZDVk
YTQ0YzQyMWFkNmRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0
cy9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVySW1wbC5oCkBAIC00NCw4
ICs0NCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCB0YWtlQWxsTWVzc2FnZXNGb3JQb3J0KGNvbnN0
IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPE1l
c3NhZ2VXaXRoTWVzc2FnZVBvcnRzPiYmLCBGdW5jdGlvbjx2b2lkKCk+JiYpPiYmKSBmaW5hbDsK
ICAgICB2b2lkIGNoZWNrUmVtb3RlUG9ydEZvckFjdGl2aXR5KGNvbnN0IE1lc3NhZ2VQb3J0SWRl
bnRpZmllciYgcmVtb3RlVGFyZ2V0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc0FjdGl2aXR5
KT4mJiBjYWxsYmFjaykgZmluYWw7CiAKLSAgICB2b2lkIGNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZv
ckFjdGl2aXR5KGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIFByb2Nlc3NJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc0FjdGl2aXR5KT4mJikgZmluYWw7Ci0KICAgICB2
b2lkIHBlcmZvcm1BY3Rpb25Pbk1haW5UaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmKTsKIAogICAg
IE1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5IG1fcmVnaXN0cnk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsUmVn
aXN0cnkuY3BwCmluZGV4IGUwZTYwZjJlOTcwN2MzMmYwYzg5NzVkYTNkYjVmZWRmZDc3NzlhZTAu
LjA5OTIyZjQyOTJiZmY0MzU5M2MyZDk3MjQ4MGE2NDNjYjg1NDg2ZjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFu
bmVsUmVnaXN0cnkuY3BwCkBAIC0zMiw4ICszMiw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnk6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5
KE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyJiBwcm92aWRlcikKLSAgICA6IG1fcHJvdmlkZXIo
cHJvdmlkZXIpCitNZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeTo6TWVzc2FnZVBvcnRDaGFubmVs
UmVnaXN0cnkoQ2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHlDYWxsYmFjayYmIGNoZWNr
UHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5Q2FsbGJhY2spCisgICAgOiBtX2NoZWNrUHJvY2Vz
c0xvY2FsUG9ydEZvckFjdGl2aXR5Q2FsbGJhY2soV1RGTW92ZShjaGVja1Byb2Nlc3NMb2NhbFBv
cnRGb3JBY3Rpdml0eUNhbGxiYWNrKSkKIHsKIH0KIApAQCAtMTc4LDQgKzE3OCw5IEBAIE1lc3Nh
Z2VQb3J0Q2hhbm5lbCogTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnk6OmV4aXN0aW5nQ2hhbm5l
bENvbnRhaW5pbmdQb3J0KGNvCiAgICAgcmV0dXJuIG1fb3BlbkNoYW5uZWxzLmdldChwb3J0KTsK
IH0KIAordm9pZCBNZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeTo6Y2hlY2tQcm9jZXNzTG9jYWxQ
b3J0Rm9yQWN0aXZpdHkoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBtZXNzYWdlUG9ydElk
ZW50aWZpZXIsIFByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSk+JiYg
Y2FsbGJhY2spCit7CisgICAgbV9jaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eUNhbGxi
YWNrKG1lc3NhZ2VQb3J0SWRlbnRpZmllciwgcHJvY2Vzc0lkZW50aWZpZXIsIFdURk1vdmUoY2Fs
bGJhY2spKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeS5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxSZWdpc3Ry
eS5oCmluZGV4IDZiY2EyODJlZGNhOWEzMDA3MjkyNzViOTY0OWE0YzUzYTRhZGYxYzYuLmFmNGJl
YjQ4YjI0ZDQyYTM1ZWNlMTNhYmFiZjk5ZjVlMWI1ZWYxN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lz
dHJ5LmgKQEAgLTM1LDcgKzM1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNZXNz
YWdlUG9ydENoYW5uZWxSZWdpc3RyeSB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgTWVz
c2FnZVBvcnRDaGFubmVsUmVnaXN0cnkoTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXImKTsKKyAg
ICB1c2luZyBDaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eUNhbGxiYWNrID0gRnVuY3Rp
b248dm9pZChjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImLCBQcm9jZXNzSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0
aXZpdHkpPiYmKT47CisgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgTWVzc2FnZVBvcnRDaGFu
bmVsUmVnaXN0cnkoQ2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHlDYWxsYmFjayYmKTsK
KwogICAgIFdFQkNPUkVfRVhQT1JUIH5NZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeSgpOwogICAg
IAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQ3JlYXRlTWVzc2FnZVBvcnRDaGFubmVsKGNv
bnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYgcG9ydDEsIGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRp
ZmllciYgcG9ydDIpOwpAQCAtNTEsMTIgKzUzLDExIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIG1lc3NhZ2VQb3J0Q2hhbm5lbENyZWF0ZWQoTWVzc2FnZVBvcnRDaGFubmVsJik7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtZXNzYWdlUG9ydENoYW5uZWxEZXN0cm95ZWQoTWVz
c2FnZVBvcnRDaGFubmVsJik7CiAKLSAgICBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlciYgcHJv
dmlkZXIoKSB7IHJldHVybiBtX3Byb3ZpZGVyOyB9CisgICAgdm9pZCBjaGVja1Byb2Nlc3NMb2Nh
bFBvcnRGb3JBY3Rpdml0eShjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImLCBQcm9jZXNzSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRl
cjo6SGFzQWN0aXZpdHkpPiYmKTsKIAogcHJpdmF0ZToKICAgICBIYXNoTWFwPE1lc3NhZ2VQb3J0
SWRlbnRpZmllciwgTWVzc2FnZVBvcnRDaGFubmVsKj4gbV9vcGVuQ2hhbm5lbHM7Ci0gICAgTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXImIG1fcHJvdmlkZXI7Ci0KKyAgICBDaGVja1Byb2Nlc3NM
b2NhbFBvcnRGb3JBY3Rpdml0eUNhbGxiYWNrIG1fY2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0
aXZpdHlDYWxsYmFjazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvV29ya2VyTWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9Xb3JrZXJNZXNz
YWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHAKaW5kZXggNmEwMTc1OTExMzI1NzBjNDc5YzE1MDQy
YjkwNzgyOGIwZWY4NDAwZC4uN2EwYTgxY2RhYTdhMWFlZWMzZGZmNTllYjEwYWNjN2VjNmMxYTNj
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9Xb3JrZXJNZXNz
YWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL21lc3Nh
Z2Vwb3J0cy9Xb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHAKQEAgLTEyMCwxOSAr
MTIwLDQgQEAgdm9pZCBXb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6Y2hlY2tSZW1v
dGVQb3J0Rm9yQWN0aXZpdHkoY29uc3QgTWVzc2FnZVAKICAgICB9KTsKIH0KIAotdm9pZCBXb3Jr
ZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6Y2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0
aXZpdHkoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBQcm9jZXNzSWRl
bnRpZmllciBwcm9jZXNzSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNBY3Rp
dml0eSk+JiYgY2FsbGJhY2spCi17Ci0gICAgdWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyID0g
KyttX2xhc3RDYWxsYmFja0lkZW50aWZpZXI7Ci0gICAgbV9hY3Rpdml0eUNhbGxiYWNrcy5hZGQo
Y2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0KLSAgICBjYWxsT25NYWlu
VGhyZWFkKFt0aGlzLCB3b3JrZXJUaHJlYWQgPSBtYWtlUmVmKG1fc2NvcGUudGhyZWFkKCkpLCBj
YWxsYmFja0lkZW50aWZpZXIsIGlkZW50aWZpZXIsIHByb2Nlc3NJZGVudGlmaWVyXSgpIG11dGFi
bGUgewotICAgICAgICBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6c2luZ2xldG9uKCkuY2hl
Y2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHkoaWRlbnRpZmllciwgcHJvY2Vzc0lkZW50aWZp
ZXIsIFt0aGlzLCB3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCksIGNhbGxiYWNr
SWRlbnRpZmllcl0oYXV0byBoYXNBY3Rpdml0eSkgewotICAgICAgICAgICAgd29ya2VyVGhyZWFk
LT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFt0aGlzLCBjYWxsYmFja0lkZW50aWZpZXIsIGhh
c0FjdGl2aXR5XShhdXRvJiBzY29wZSkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJU
X1VOVVNFRChzY29wZSwgdGhpcyA9PSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3Bl
KS5tZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcigpKTsKLSAgICAgICAgICAgICAgICBtX2FjdGl2
aXR5Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKShoYXNBY3Rpdml0eSk7Ci0gICAg
ICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKLSAgICAgICAgfSk7Ci0g
ICAgfSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvV29ya2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvV29ya2VyTWVzc2FnZVBvcnRDaGFu
bmVsUHJvdmlkZXIuaAppbmRleCA4N2QwMjBhZjRjYzI5NDRkMDJhN2ZkMWU3NDU1N2VmYjUyNDlk
MWVlLi5jNzlmMzRmZGZmODc0OThiZjYyZTQ4OWEzM2U3ZmQzMTRkYzA0NGQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL1dvcmtlck1lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9Xb3JrZXJN
ZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oCkBAIC00OSw4ICs0OSw2IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCB0YWtlQWxsTWVzc2FnZXNGb3JQb3J0KGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmll
ciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRz
PiYmLCBGdW5jdGlvbjx2b2lkKCk+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIGNoZWNrUmVtb3Rl
UG9ydEZvckFjdGl2aXR5KGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYgcmVtb3RlVGFyZ2V0
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc0FjdGl2aXR5KT4mJiBjYWxsYmFjaykgZmluYWw7
CiAKLSAgICB2b2lkIGNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KGNvbnN0IE1lc3Nh
Z2VQb3J0SWRlbnRpZmllciYsIFByb2Nlc3NJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEhhc0FjdGl2aXR5KT4mJikgZmluYWw7Ci0KICAgICBXb3JrZXJHbG9iYWxTY29wZSYgbV9z
Y29wZTsKIAogICAgIHVpbnQ2NF90IG1fbGFzdENhbGxiYWNrSWRlbnRpZmllciB7IDAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNDgxM2U3ODY0MjkwYzNkNmRhNTc2NzcyNzc4
N2VhZGEzMTk3OWMyZS4uMzYzYjc1MGI4YTJlZGRhMjgzYWI2MjE1YzRlMTI1ZTRhYzZiODk2YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRl
ICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlLmgiCiAjaW5jbHVkZSAi
TmV0d29ya01ETlNSZWdpc3Rlck1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiTmV0d29ya01lc3NhZ2VQ
b3J0Q2hhbm5lbFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbmNs
dWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzTWVzc2FnZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjA5NmMxMTY0NzM4YThkZDU5Y2YzNDAwOTA3
YmIxOGIyMjk5NWNmOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtNZXNzYWdlUG9ydENoYW5u
ZWxQcm92aWRlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5NCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTmV0d29ya01lc3NhZ2VQb3J0
Q2hhbm5lbFByb3ZpZGVyLmgiCi0KLSNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oIgotI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLU5ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQ
cm92aWRlcjo6TmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyKE5ldHdvcmtQcm9jZXNz
JiBuZXR3b3JrUHJvY2VzcykKLSAgICA6IG1fbmV0d29ya1Byb2Nlc3MobmV0d29ya1Byb2Nlc3Mp
Ci0gICAgLCBtX3JlZ2lzdHJ5KCp0aGlzKQotewotfQotCi12b2lkIE5ldHdvcmtNZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlcjo6Y3JlYXRlTmV3TWVzc2FnZVBvcnRDaGFubmVsKGNvbnN0IE1lc3Nh
Z2VQb3J0SWRlbnRpZmllciYsIGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYpCi17Ci0gICAg
Ly8gU2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBpbiB0aGUgVUkgcHJvY2VzcyBwcm92aWRlci4KLSAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotdm9pZCBOZXR3b3JrTWVzc2FnZVBvcnRDaGFu
bmVsUHJvdmlkZXI6OmVudGFuZ2xlTG9jYWxQb3J0SW5UaGlzUHJvY2Vzc1RvUmVtb3RlKGNvbnN0
IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYpCi17
Ci0gICAgLy8gU2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBpbiB0aGUgVUkgcHJvY2VzcyBwcm92aWRl
ci4KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotdm9pZCBOZXR3b3JrTWVzc2FnZVBv
cnRDaGFubmVsUHJvdmlkZXI6Om1lc3NhZ2VQb3J0RGlzZW50YW5nbGVkKGNvbnN0IE1lc3NhZ2VQ
b3J0SWRlbnRpZmllciYpCi17Ci0gICAgLy8gU2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBpbiB0aGUg
VUkgcHJvY2VzcyBwcm92aWRlci4KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotdm9p
ZCBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Om1lc3NhZ2VQb3J0Q2xvc2VkKGNv
bnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYpCi17Ci0gICAgLy8gU2hvdWxkIG5ldmVyIGJlIGNh
bGxlZCBpbiB0aGUgVUkgcHJvY2VzcyBwcm92aWRlci4KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLX0KLQotdm9pZCBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnRha2VBbGxN
ZXNzYWdlc0ZvclBvcnQoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChWZWN0b3I8TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM+JiYsIEZ1bmN0aW9uPHZv
aWQoKT4mJik+JiYpCi17Ci0gICAgLy8gU2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBpbiB0aGUgVUkg
cHJvY2VzcyBwcm92aWRlci4KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotdm9pZCBO
ZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnBvc3RNZXNzYWdlVG9SZW1vdGUoY29u
c3QgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmLCBjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXIm
KQotewotICAgIC8vIFNob3VsZCBuZXZlciBiZSBjYWxsZWQgaW4gdGhlIFVJIHByb2Nlc3MgcHJv
dmlkZXIuCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KLXZvaWQgTmV0d29ya01lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpjaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShjb25zdCBN
ZXNzYWdlUG9ydElkZW50aWZpZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc0FjdGl2aXR5
KT4mJikKLXsKLSAgICAvLyBTaG91bGQgbmV2ZXIgYmUgY2FsbGVkIGluIHRoZSBVSSBwcm9jZXNz
IHByb3ZpZGVyLgotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi12b2lkIE5ldHdvcmtN
ZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6Y2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZp
dHkoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBwb3J0LCBQcm9jZXNzSWRlbnRpZmllciBw
cm9jZXNzSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNBY3Rpdml0eSk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgYXV0byogY29ubmVjdGlvbiA9IG1fbmV0d29ya1By
b2Nlc3Mud2ViUHJvY2Vzc0Nvbm5lY3Rpb24ocHJvY2Vzc0lkZW50aWZpZXIpOwotICAgIGlmICgh
Y29ubmVjdGlvbikgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihIYXNBY3Rpdml0eTo6Tm8p
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY29ubmVjdGlvbi0+Y2hlY2tQcm9jZXNz
TG9jYWxQb3J0Rm9yQWN0aXZpdHkocG9ydCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOTJlZTBiMzRkYWNlOTBlNWFhNGY2NzMx
MDY1MDIyZjM0ZGQ2ZjQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya01lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnRDaGFu
bmVsUHJvdmlkZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lz
dHJ5Lmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBOZXR3b3JrUHJvY2VzczsKLQot
Y2xhc3MgTmV0d29ya01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyIDogcHVibGljIFdlYkNvcmU6
Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyIHsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBOZXR3
b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIoTmV0d29ya1Byb2Nlc3MmKTsKLSAgICBXZWJD
b3JlOjpNZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeSYgcmVnaXN0cnkoKSB7IHJldHVybiBtX3Jl
Z2lzdHJ5OyB9Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBjcmVhdGVOZXdNZXNzYWdlUG9ydENoYW5u
ZWwoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiBsb2NhbCwgY29uc3QgV2Vi
Q29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiByZW1vdGUpIGZpbmFsOwotICAgIHZvaWQgZW50
YW5nbGVMb2NhbFBvcnRJblRoaXNQcm9jZXNzVG9SZW1vdGUoY29uc3QgV2ViQ29yZTo6TWVzc2Fn
ZVBvcnRJZGVudGlmaWVyJiBsb2NhbCwgY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlm
aWVyJiByZW1vdGUpIGZpbmFsOwotICAgIHZvaWQgbWVzc2FnZVBvcnREaXNlbnRhbmdsZWQoY29u
c3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiBsb2NhbCkgZmluYWw7Ci0gICAgdm9p
ZCBtZXNzYWdlUG9ydENsb3NlZChjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIm
IGxvY2FsKSBmaW5hbDsKLSAgICB2b2lkIHRha2VBbGxNZXNzYWdlc0ZvclBvcnQoY29uc3QgV2Vi
Q29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0
b3I8V2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM+JiYsIEZ1bmN0aW9uPHZvaWQoKT4m
Jik+JiYpIGZpbmFsOwotICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1JlbW90ZShjb25zdCBXZWJDb3Jl
OjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYsIGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRl
bnRpZmllciYgcmVtb3RlVGFyZ2V0KSBmaW5hbDsKLQotICAgIHZvaWQgY2hlY2tSZW1vdGVQb3J0
Rm9yQWN0aXZpdHkoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiByZW1vdGVU
YXJnZXQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYmIGNhbGxiYWNrKSBm
aW5hbDsKLSAgICB2b2lkIGNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KGNvbnN0IFdl
YkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc0FjdGl2aXR5KT4mJikgZmluYWw7Ci0KLSAgICBO
ZXR3b3JrUHJvY2VzcyYgbV9uZXR3b3JrUHJvY2VzczsKLSAgICBXZWJDb3JlOjpNZXNzYWdlUG9y
dENoYW5uZWxSZWdpc3RyeSBtX3JlZ2lzdHJ5OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmlu
ZGV4IGZhYTJlMGFlOTk4Mzc2N2U1ZDI2YjUxNmZiZTE4YzRkMjU5MjU0ZjkuLjFlMzI2YmUwNDFm
NzY5NGZlZWI4NjgwNGUwY2VjYzFjZmU5YmMzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0xMzAsNiArMTMwLDE5IEBAIHN0YXRp
YyB2b2lkIGNhbGxFeGl0U29vbihJUEM6OkNvbm5lY3Rpb24qKQogICAgIH0pOwogfQogCitzdGF0
aWMgaW5saW5lIE1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5IGNyZWF0ZU1lc3NhZ2VQb3J0Q2hh
bm5lbFJlZ2lzdHJ5KE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcykKK3sKKyAgICByZXR1
cm4gTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkgeyBbJm5ldHdvcmtQcm9jZXNzXShhdXRvJiBt
ZXNzYWdlUG9ydElkZW50aWZpZXIsIGF1dG8gcHJvY2Vzc0lkZW50aWZpZXIsIGF1dG8mJiBjb21w
bGV0aW9uSGFuZGxlcikgeworICAgICAgICBhdXRvKiBjb25uZWN0aW9uID0gbmV0d29ya1Byb2Nl
c3Mud2ViUHJvY2Vzc0Nvbm5lY3Rpb24ocHJvY2Vzc0lkZW50aWZpZXIpOworICAgICAgICBpZiAo
IWNvbm5lY3Rpb24pIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKE1lc3NhZ2VQb3J0
Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eTo6Tm8pOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgY29ubmVjdGlvbi0+Y2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9y
QWN0aXZpdHkobWVzc2FnZVBvcnRJZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CisgICAgfSB9OworfQorCiBOZXR3b3JrUHJvY2Vzczo6TmV0d29ya1Byb2Nlc3MoQXV4aWxp
YXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgOiBt
X2Rvd25sb2FkTWFuYWdlcigqdGhpcykKICAgICAsIG1fc3RvcmFnZU1hbmFnZXJTZXQoU3RvcmFn
ZU1hbmFnZXJTZXQ6OmNyZWF0ZSgpKQpAQCAtMTM5LDcgKzE1Miw3IEBAIE5ldHdvcmtQcm9jZXNz
OjpOZXR3b3JrUHJvY2VzcyhBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
JiYgcGFyYW1lCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAsIG1fd2ViU1FMaXRlRGF0
YWJhc2VUcmFja2VyKFt0aGlzXShib29sIGlzSG9sZGluZ0xvY2tlZEZpbGVzKSB7IHBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlNl
dElzSG9sZGluZ0xvY2tlZEZpbGVzKGlzSG9sZGluZ0xvY2tlZEZpbGVzKSwgMCk7IH0pCiAjZW5k
aWYKLSAgICAsIG1fbWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIoKnRoaXMpCisgICAgLCBtX21l
c3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5KGNyZWF0ZU1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5
KCp0aGlzKSkKIHsKICAgICBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlh
bGl6ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmgKaW5kZXggZmZkNjQ0N2U1MWY1OTMyNzg2ZGZmZTcwODY0ZWUzMjYxNWJmZGUyMy4uNDBiNWI0
OTJhYjQ2YjVlZTZkM2Y1YTdhNWFjY2FhMzA1NTk2NmExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1
ZGUgIkxvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb250
ZW50UnVsZUxpc3RNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya0hUVFBTVXBncmFkZUNoZWNr
ZXIuaCIKLSNpbmNsdWRlICJOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCIKICNp
bmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRp
Zmllci5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgpAQCAt
NDMsNiArNDIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9JREJLZXlEYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJTZXJ2ZXIu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0
cmFibGVEb21haW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJJZGVudGlmaWVy
Lmg+CkBAIC0zNTAsNyArMzUwLDcgQEAgcHVibGljOgogICAgIGNvbnN0IE9wdGlvblNldDxOZXR3
b3JrQ2FjaGU6OkNhY2hlT3B0aW9uPiYgY2FjaGVPcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9j
YWNoZU9wdGlvbnM7IH0KIAogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiB3ZWJQ
cm9jZXNzQ29ubmVjdGlvbihXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcikgY29uc3Q7Ci0gICAg
V2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkmIG1lc3NhZ2VQb3J0Q2hhbm5lbFJl
Z2lzdHJ5KCkgeyByZXR1cm4gbV9tZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5yZWdpc3RyeSgp
OyB9CisgICAgV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkmIG1lc3NhZ2VQb3J0
Q2hhbm5lbFJlZ2lzdHJ5KCkgeyByZXR1cm4gbV9tZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeTsg
fQogCiBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3Mo
Y29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKQEAgLTU3NSw3ICs1NzUs
NyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgUEFM
OjpTZXNzaW9uSUQ+IG1fc2Vzc2lvbkJ5Q29ubmVjdGlvbjsKIAogICAgIE9wdGlvblNldDxOZXR3
b3JrQ2FjaGU6OkNhY2hlT3B0aW9uPiBtX2NhY2hlT3B0aW9uczsKLSAgICBOZXR3b3JrTWVzc2Fn
ZVBvcnRDaGFubmVsUHJvdmlkZXIgbV9tZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjsKKyAgICBX
ZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeSBtX21lc3NhZ2VQb3J0Q2hhbm5lbFJl
Z2lzdHJ5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBjM2Nh
MzU0NGQzNzRiNDJlNjEyZWMxZWI1YjgzYjZmYjg0MTg0MDU3Li40NjIxOTQzMDUwNjM4NjAzZGIw
MmI4ZDFjOTFiNDk0YjUwODgxNDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTMxLDcgKzMxLDYgQEAgTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5jcHAKIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtIVFRQU1VwZ3JhZGVDaGVja2VyLmNwcAogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3Bw
CiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCi1OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwCiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA1MDM5ODIzNTdjNzJjYTY3ZDFhNjQyNjE5NDVkOGQ0ZjE4ZjAzZThlLi5jNjk0ZWNj
MzkwNTgyYjU1Y2MyNjEyNDVkODc0N2U1ZGY4ZjIyOGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMwOTMsOCArMzA5Myw2IEBACiAJ
CTQxMDQ4MkNCMURERDJGQjUwMEYwMDZEMCAvKiBSVENOZXR3b3JrLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ05ldHdvcmsuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTA0ODJDQzFEREQyRkI1MDBGMDA2RDAgLyogUlRDTmV0d29yay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENOZXR3b3JrLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxMTE0MzYzMjBGNjc3QjEwMDI2RjkxMiAvKiBJbmplY3RVc2Vy
U2NyaXB0SW1tZWRpYXRlbHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5q
ZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTQxMTE0QTc4MjMxNkVDM0YwMEI1NjAwNyAvKiBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya01lc3NhZ2VQ
b3J0Q2hhbm5lbFByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxMTE0
QTc5MjMxNkVDM0YwMEI1NjAwNyAvKiBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya01lc3NhZ2VQ
b3J0Q2hhbm5lbFByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEx
Mjg2RUYyMUM4QTkwQzAwM0E4NTUwIC8qIE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUNhcHR1cmVVdGlsaXRpZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMjg2RjAyMUM4QTkwRDAwM0E4NTUwIC8qIE1lZGlh
Q2FwdHVyZVV0aWxpdGllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IE1lZGlhQ2FwdHVyZVV0aWxpdGllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDExMkI1NDcxRjlGRDNBQjAwRTY3ODc1IC8qIE5ldHdvcmtSVENSZXNvbHZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUlRDUmVzb2x2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjc2Nyw4ICs2NzY1LDYgQEAKIAkJCQk0
MTAzRkJBMTIwNjFCREI3MDBDMkVBRjggLyogTmV0d29ya0xvYWRDaGVja2VyLmggKi8sCiAJCQkJ
ODNENDU0RDYxQkU5RDNDNDAwNkM5M0JEIC8qIE5ldHdvcmtMb2FkQ2xpZW50LmggKi8sCiAJCQkJ
ODM5MTQ5NjMxQkVBODM4NTAwRDJEOTUzIC8qIE5ldHdvcmtMb2FkUGFyYW1ldGVycy5oICovLAot
CQkJCTQxMTE0QTc5MjMxNkVDM0YwMEI1NjAwNyAvKiBOZXR3b3JrTWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXIuY3BwICovLAotCQkJCTQxMTE0QTc4MjMxNkVDM0YwMEI1NjAwNyAvKiBOZXR3b3Jr
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCAqLywKIAkJCQk1MTBDQzdERjE2MTM4RTI5MDBE
MDNFRDMgLyogTmV0d29ya1Byb2Nlc3MuY3BwICovLAogCQkJCTUxMENDN0UwMTYxMzhFMjkwMEQw
M0VEMyAvKiBOZXR3b3JrUHJvY2Vzcy5oICovLAogCQkJCTUxQThBNjE3MTYyN0Y1QkIwMDBEOTBF
OSAvKiBOZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwCmluZGV4IDBlYzk2ZTViZjhkOWUzOTk3MGRjNzdl
Zjc0MWFiMGMxN2IyZjNhNTAuLmNjYjU4MjA4NjA5NzA1ZDM0ZGUzOWJhYThiODQ3NDY1MDY2ZGZh
NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcApA
QCAtOTAsMTIgKzkwLDYgQEAgdm9pZCBXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6cG9z
dE1lc3NhZ2VUb1JlbW90ZShjb25zdCBNZXNzYWdlV2l0aE1lc3NhZ2UKICAgICBuZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6UG9zdE1lc3NhZ2VUb1JlbW90ZSB7IG1lc3NhZ2UsIHJlbW90ZVRhcmdldCB9LCAwKTsK
IH0KIAotdm9pZCBXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6Y2hlY2tQcm9jZXNzTG9j
YWxQb3J0Rm9yQWN0aXZpdHkoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiwgUHJvY2Vzc0lk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYmKQotewotICAg
IC8vIFRvIGJlIGNhbGxlZCBvbmx5IGluIHRoZSBVSSBwcm9jZXNzIHByb3ZpZGVyLCBub3QgdGhl
IFdlYiBwcm9jZXNzIHByb3ZpZGVyLgotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCiB2
b2lkIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpjaGVja1JlbW90ZVBvcnRGb3JBY3Rp
dml0eShjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImIHJlbW90ZVRhcmdldCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChIYXNBY3Rpdml0eSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
bmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q2hlY2tSZW1vdGVQb3J0Rm9yQWN0aXZpdHkg
eyByZW1vdGVUYXJnZXQgfSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKGJvb2wgaGFzQWN0aXZpdHkpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lc3NhZ2VQb3J0Q2hhbm5lbFBy
b3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaAppbmRleCBlNDQ5OTRlNjA1ZDk2NjA3YWE3MGE4MmRi
ODk4ZWU5MDFlNTZhZTY0Li5mZWQ4NGZjOTE2NGQxNjg2OTE3MzlhMTNkNzRmODdiM2M5NzJhZWRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaApAQCAtNDQs
OCArNDQsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgbWVzc2FnZVBvcnRDbG9zZWQoY29uc3QgV2Vi
Q29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyJiBsb2NhbCkgZmluYWw7CiAgICAgdm9pZCB0YWtl
QWxsTWVzc2FnZXNGb3JQb3J0KGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2Fn
ZVBvcnRzPiYmLCBGdW5jdGlvbjx2b2lkKCk+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIHBvc3RN
ZXNzYWdlVG9SZW1vdGUoY29uc3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmLCBj
b25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXImIHJlbW90ZVRhcmdldCkgZmluYWw7
Ci0gICAgdm9pZCBjaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eShjb25zdCBXZWJDb3Jl
OjpNZXNzYWdlUG9ydElkZW50aWZpZXImLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChIYXNBY3Rpdml0eSk+JiYpIGZpbmFsOwotCiAgICAgdm9pZCBj
aGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShjb25zdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50
aWZpZXImIHJlbW90ZVRhcmdldCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNBY3Rpdml0eSk+
JiYgY2FsbGJhY2spIGZpbmFsOwogfTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>