<?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>184332</bug_id>
          
          <creation_ts>2018-04-05 09:53:25 -0700</creation_ts>
          <short_desc>[WTF] Remove StaticLock</short_desc>
          <delta_ts>2018-04-05 10:23:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>jfbastien</cc>
    
    <cc>mark.lam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1412070</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-04-05 09:53:25 -0700</bug_when>
    <thetext>[WTF] Remove StaticLock</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412072</commentid>
    <comment_count>1</comment_count>
      <attachid>337272</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-04-05 09:56:39 -0700</bug_when>
    <thetext>Created attachment 337272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412074</commentid>
    <comment_count>2</comment_count>
      <attachid>337273</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-04-05 10:01:53 -0700</bug_when>
    <thetext>Created attachment 337273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412075</commentid>
    <comment_count>3</comment_count>
      <attachid>337274</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-04-05 10:03:13 -0700</bug_when>
    <thetext>Created attachment 337274
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412076</commentid>
    <comment_count>4</comment_count>
      <attachid>337274</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-04-05 10:10:18 -0700</bug_when>
    <thetext>Comment on attachment 337274
Patch

r=me with build fixes.  Looks like you need to add some #includes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412083</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-04-05 10:20:24 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #4)
&gt; Comment on attachment 337274 [details]
&gt; Patch
&gt; 
&gt; r=me with build fixes.  Looks like you need to add some #includes.

Thanks, fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412084</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-04-05 10:22:27 -0700</bug_when>
    <thetext>Committed r230303: &lt;https://trac.webkit.org/changeset/230303&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412085</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-05 10:23:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/39211094&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337272</attachid>
            <date>2018-04-05 09:56:39 -0700</date>
            <delta_ts>2018-04-05 10:01:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184332-20180406015638.patch</filename>
            <type>text/plain</type>
            <size>64890</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
OWM4NDI2MTdjNWQyMTZjZWU5ZTQ5NzQ4MmQzMzI4MWY1ODFjNDNlLi4zMThiOTkyNTc0NDNhMjA5
NzdlZmJiMWU1NzdmYzIxZGE1NjRmZDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MyBAQAorMjAxOC0wNC0wNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbV1RGXSBSZW1vdmUgU3RhdGljTG9jaworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MzMyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNWYWx1ZS5tbToKKyAgICAg
ICAgKGhhbmRlckZvclN0cnVjdFRhZyk6CisgICAgICAgICogQVBJL0pTVmlydHVhbE1hY2hpbmUu
bW06CisgICAgICAgICgrW0pTVk1XcmFwcGVyQ2FjaGUgYWRkV3JhcHBlcjpmb3JKU0NvbnRleHRH
cm91cFJlZjpdKToKKyAgICAgICAgKCtbSlNWTVdyYXBwZXJDYWNoZSB3cmFwcGVyRm9ySlNDb250
ZXh0R3JvdXBSZWY6XSk6CisgICAgICAgICogQVBJL2dsaWIvSlNDVmlydHVhbE1hY2hpbmUuY3Bw
OgorICAgICAgICAoYWRkV3JhcHBlcik6CisgICAgICAgIChyZW1vdmVXcmFwcGVyKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvdGVzdG1hc20uY3BwOgorICAgICAgICAqIGIzL2Fpci90ZXN0YWlyLmNw
cDoKKyAgICAgICAgKiBiMy90ZXN0YjMuY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL1N1cGVyU2Ft
cGxlci5jcHA6CisgICAgICAgICogZGZnL0RGR0NvbW1vbi5jcHA6CisgICAgICAgICogZGZnL0RG
R0NvbW1vbkRhdGEuY3BwOgorICAgICAgICAqIGR5bmJlbmNoLmNwcDoKKyAgICAgICAgKiBoZWFw
L01hY2hpbmVTdGFja01hcmtlci5jcHA6CisgICAgICAgIChKU0M6Ok1hY2hpbmVUaHJlYWRzOjp0
cnlDb3B5T3RoZXJUaHJlYWRTdGFja3MpOgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvY29j
b2EvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0Q29jb2EubW06CisgICAgICAgIChJbnNwZWN0b3I6
OlJlbW90ZVRhcmdldEhhbmRsZVJ1blNvdXJjZUdsb2JhbCk6CisgICAgICAgIChJbnNwZWN0b3I6
OlJlbW90ZVRhcmdldFF1ZXVlVGFza09uR2xvYmFsUXVldWUpOgorICAgICAgICAqIGludGVycHJl
dGVyL0NMb29wU3RhY2suY3BwOgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VQcm92aWRlci5jcHA6
CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFzZS5jcHA6CisgICAgICAgICogcHJv
ZmlsZXIvUHJvZmlsZXJVSUQuY3BwOgorICAgICAgICAoSlNDOjpQcm9maWxlcjo6VUlEOjpjcmVh
dGUpOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6Om51
bWJlcmluZ1N5c3RlbXNGb3JMb2NhbGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmNwcDoK
KyAgICAgICAgKiBydW50aW1lL0pTTG9jay5oOgorICAgICAgICAqIHJ1bnRpbWUvU2FtcGxpbmdQ
cm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OnJlZ2lzdGVyRm9y
UmVwb3J0QXRFeGl0KToKKyAgICAgICAgKiB3YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuY3Bw
OgorCiAyMDE4LTA0LTA0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgcG9pbnRlciBwcm9maWxpbmcgc3VwcG9ydCB0byB0aGUgREZHIGFuZCBzdXBwb3J0aW5n
IGZpbGVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwppbmRleCA2NDc3YTA5NjA2YjIwZDFkYjk3NjgyMjY5NzNjYzdjMGJmOTdkMGZjLi42
N2E0OGNjOTM3YTViZjMxYjRlNDNlNjlkYjZkMWFjM2QyOTNhODIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0
IEBACisyMDE4LTA0LTA1ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgor
CisgICAgICAgIFtXVEZdIFJlbW92ZSBTdGF0aWNMb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQzMzIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3csIFdURjo6U3RhdGljTG9jayBpcyBgdXNpbmcg
U3RhdGljTG9jayA9IExvY2tgLiBMb2NrIGp1c3Qgd29ya3MKKyAgICAgICAgaW4gZWl0aGVyIHN0
YXRpYyBzdG9yYWdlIGFuZCBkeW5hbWljIHN0b3JhZ2UuIFJlbW92ZSBTdGF0aWNMb2NrIGFuZAor
ICAgICAgICBhbHdheXMgdXNlIExvY2suCisKKyAgICAgICAgKiB3dGYvSGFzaFRhYmxlLmNwcDoK
KyAgICAgICAgKFdURjo6SGFzaFRhYmxlU3RhdHM6OnJlY29yZENvbGxpc2lvbkF0Q291bnQpOgor
ICAgICAgICAoV1RGOjpIYXNoVGFibGVTdGF0czo6ZHVtcFN0YXRzKToKKyAgICAgICAgKiB3dGYv
TGFuZ3VhZ2UuY3BwOgorICAgICAgICAoV1RGOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKToKKyAg
ICAgICAgKiB3dGYvTG9jay5oOgorICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmNwcDoKKyAgICAg
ICAgKFdURjo6ZGlzcGF0Y2hGdW5jdGlvbnNGcm9tTWFpblRocmVhZCk6CisgICAgICAgIChXVEY6
OmNhbGxPbk1haW5UaHJlYWQpOgorICAgICAgICAqIHd0Zi9QYXJraW5nTG90LmNwcDoKKyAgICAg
ICAgKiB3dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaDoKKyAgICAgICAgQWRkIFdURjo6UmVjdXJz
aXZlTG9jaywgd2hpY2ggaXMgUmVjdXJzaXZlTG9ja0FkYXB0ZXI8TG9jaz4uCisKKyAgICAgICAg
KiB3dGYvU3RhY2tTdGF0cy5jcHA6CisgICAgICAgIChXVEY6OlN0YWNrU3RhdHM6OkNoZWNrUG9p
bnQ6OkNoZWNrUG9pbnQpOgorICAgICAgICAoV1RGOjpTdGFja1N0YXRzOjpDaGVja1BvaW50Ojp+
Q2hlY2tQb2ludCk6CisgICAgICAgIChXVEY6OlN0YWNrU3RhdHM6OnByb2JlKToKKyAgICAgICAg
KFdURjo6U3RhY2tTdGF0czo6TGF5b3V0Q2hlY2tQb2ludDo6TGF5b3V0Q2hlY2tQb2ludCk6Cisg
ICAgICAgIChXVEY6OlN0YWNrU3RhdHM6OkxheW91dENoZWNrUG9pbnQ6On5MYXlvdXRDaGVja1Bv
aW50KToKKyAgICAgICAgKiB3dGYvU3RhY2tTdGF0cy5oOgorICAgICAgICAqIHd0Zi9UaHJlYWRN
ZXNzYWdlLmNwcDoKKyAgICAgICAgKFdURjo6c2VuZE1lc3NhZ2VTY29wZWQpOgorICAgICAgICAq
IHd0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHA6CisgICAgICAgICogd3RmL1RocmVhZGluZ1dpbi5j
cHA6CisgICAgICAgICogd3RmL1dvcmRMb2NrLmg6CisgICAgICAgICogd3RmL2NmL0xhbmd1YWdl
Q0YuY3BwOgorICAgICAgICAoV1RGOjpsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdlKToKKyAg
ICAgICAgKFdURjo6cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKiB3
dGYvZHRvYS5jcHA6CisgICAgICAgICogd3RmL3RleHQvQXRvbWljU3RyaW5nSW1wbC5jcHA6Cisg
ICAgICAgICogd3RmL3RleHQvU3RyaW5nVmlldy5jcHA6CisgICAgICAgIChXVEY6OlN0cmluZ1Zp
ZXc6OmludmFsaWRhdGUpOgorICAgICAgICAoV1RGOjpTdHJpbmdWaWV3OjphZG9wdFVuZGVybHlp
bmdTdHJpbmcpOgorICAgICAgICAoV1RGOjpTdHJpbmdWaWV3OjpzZXRVbmRlcmx5aW5nU3RyaW5n
KToKKyAgICAgICAgKiB3dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwOgorICAgICAgICAo
V1RGOjpDb2xsYXRvcjo6Q29sbGF0b3IpOgorICAgICAgICAoV1RGOjpDb2xsYXRvcjo6fkNvbGxh
dG9yKToKKyAgICAgICAgKiB3dGYvd2luL0xhbmd1YWdlV2luLmNwcDoKKyAgICAgICAgKFdURjo6
cGxhdGZvcm1MYW5ndWFnZSk6CisKIDIwMTgtMDQtMDQgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hh
bUBhcHBsZS5jb20+CiAKICAgICAgICAgRmFpbHVyZXMgZnJvbSBtYWNoIHBvcnQgcmVmZXJlbmNl
IGhhbmRsaW5nIHNob3VsZCBiZSBmYXRhbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM0ODUzYWFlNGRhYjY4ZmI4
OTZjNTdmZDdmMjI4Y2NkMDhmMzc3NmUuLmMxNmE1NThkMDU5Zjg1OTdhYzRmMWJlMjhmYzIwYzFj
ODk0MzA2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAorMjAxOC0wNC0wNSAgWXVzdWtl
IFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbV1RGXSBSZW1vdmUg
U3RhdGljTG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg0MzMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6RGF0YWJhc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGFiYXNlOjpjbG9zZURhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGFiYXNlOjpnZXRDYWNoZWRWZXJzaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFi
YXNlOjpzZXRDYWNoZWRWZXJzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6Om9w
ZW5EYXRhYmFzZU11dGV4KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VHJhY2tlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjphbGxBY3RpdmVXZWJTb2NrZXRzTXV0ZXgpOgor
ICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaDoKKyAgICAgICAgKiBicmlk
Z2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW06CisgICAgICAgICogY3J5cHRvL0NyeXB0b0FsZ29y
aXRobVJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVJlZ2lz
dHJ5OjppZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVJlZ2lz
dHJ5OjpuYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6OnJlZ2lz
dGVyQWxnb3JpdGhtKToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vVVJMLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3MvUXVpY2tMb29rLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJTUUxp
dGVEYXRhYmFzZVRyYWNrZXJDbGllbnQubW06CisgICAgICAgICogcGxhdGZvcm0vaW9zL3dhay9X
ZWJDb3JlVGhyZWFkLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy93YWsvV2ViQ29yZVRocmVh
ZFJ1bi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5Mb29wQ0Yu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9hZGVyUnVuTG9vcCk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxT
aGFyZUhhbmRsZTo6bXV0ZXhGb3IpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZVRyYWNr
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2VUcmFja2VyOjppbmNyZW1l
bnRUcmFuc2FjdGlvbkluUHJvZ3Jlc3NDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVE
YXRhYmFzZVRyYWNrZXI6OmRlY3JlbWVudFRyYW5zYWN0aW9uSW5Qcm9ncmVzc0NvdW50KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmJ1aWxkQmFzZVRleHRDb2RlY01hcHMpOgorICAgICAgICAoV2ViQ29yZTo6bmV3
VGV4dENvZGVjKToKKyAgICAgICAgKFdlYkNvcmU6OmF0b21pY0Nhbm9uaWNhbFRleHRFbmNvZGlu
Z05hbWUpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkQ291bnQpOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyVGhyZWFkOjpXb3JrZXJUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
VGhyZWFkOjp+V29ya2VyVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6
cmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5SW5BbGxUaHJlYWRzKToKKwogMjAxOC0wNC0wNCAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViUlRDIGRhdGEg
Y2hhbm5lbCBvbmx5IGFwcGxpY2F0aW9ucyByZXF1aXJlIGNhcHR1cmUgcGVybWlzc2lvbnMgZm9y
IGRpcmVjdCBjb25uZWN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3Mv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCmluZGV4IDYwZmY3
NjEwOGM1YWZlMGU1YWZjNTM5MDc1OTRkOTIwMjc3OGU1NjYuLjY0M2UxYjg3MGQ4NDViOTI0YjQz
YzgwODA4MGRmYWQ0ZDljZGNmZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9z
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxOC0wNC0wNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbV1RGXSBSZW1vdmUgU3RhdGljTG9jaworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MzMyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGaXhl
ZFBvc2l0aW9uQ29udGVudC5tbToKKwogMjAxOC0wMy0yOCAgWmFsYW4gQnVqdGFzICA8emFsYW5A
YXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgaXQgcG9zc2libGUgdG8gb3ZlcnJpZGUgdGhlIHNj
cmVlbiBzaXplCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZDk2MmM4ZGM0MmNkNDRm
MzczMzg4ZDIxMDU1NWViZmFlY2UzZmFiMC4uYTUyZmUyMzNhMzczYWQ2NmU0Njg2ZDhmNDZiZWNm
MzcxYTM3M2Q5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDE4LTA0LTA1ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisg
ICAgICAgIFtXVEZdIFJlbW92ZSBTdGF0aWNMb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQzMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIERPTS9ET01JbnRlcm5hbC5tbToKKyAgICAgICAgKGdl
dERPTVdyYXBwZXIpOgorICAgICAgICAoYWRkRE9NV3JhcHBlcik6CisgICAgICAgIChyZW1vdmVE
T01XcmFwcGVyKToKKwogMjAxOC0wNC0wNCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxl
LmNvbT4KIAogICAgICAgICBGYWlsdXJlcyBmcm9tIG1hY2ggcG9ydCByZWZlcmVuY2UgaGFuZGxp
bmcgc2hvdWxkIGJlIGZhdGFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggNmUzNjVl
OWU2ZDc0MGVhMjNhMjY4ZTUwOWViMGFjZTZjMWEwNGIwZi4uYTg1ZmJkYmQ0Yjc4Mzg5NzViNGIw
ZDBiZjI3M2I4ZWVlMjY4MGIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDE4LTA0LTA1ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPgorCisgICAgICAgIFtXVEZdIFJlbW92ZSBTdGF0aWNMb2NrCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQzMzIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFF1YXJ0ekNvcmVBZGRpdGlv
bnMvQ0FWaWV3LmNwcDoKKyAgICAgICAgKFdLUUNBOjpDQVZpZXc6OnJlbGVhc2VBbGxEM0RSZXNv
dXJjZXMpOgorICAgICAgICAqIFdlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHA6CisKIDIwMTgtMDQt
MDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wIE1haW5G
cmFtZSBjbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVl
Lm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tCmluZGV4IGM4MTBmMTRj
NDcyZmFhNzE2YWVjZGMyZTI0OGU2Nzg1MDZkMjA3MTkuLmU4YWQ1MmVmNDNmN2Y4MzBhMTJlMmQx
ZjNjNDg0Y2MwNWU1MzliNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNWYWx1ZS5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KQEAg
LTExMTUsNyArMTExNSw3IEBAIHN0YXRpYyBTdHJ1Y3RIYW5kbGVycyogY3JlYXRlU3RydWN0SGFu
ZGxlck1hcCgpCiAKIHN0YXRpYyBTdHJ1Y3RUYWdIYW5kbGVyKiBoYW5kZXJGb3JTdHJ1Y3RUYWco
Y29uc3QgY2hhciogZW5jb2RlZFR5cGUpCiB7Ci0gICAgc3RhdGljIFN0YXRpY0xvY2sgaGFuZGVy
Rm9yU3RydWN0VGFnTG9jazsKKyAgICBzdGF0aWMgTG9jayBoYW5kZXJGb3JTdHJ1Y3RUYWdMb2Nr
OwogICAgIExvY2tIb2xkZXIgbG9ja0hvbGRlcigmaGFuZGVyRm9yU3RydWN0VGFnTG9jayk7CiAK
ICAgICBzdGF0aWMgU3RydWN0SGFuZGxlcnMqIHN0cnVjdEhhbmRsZXJzID0gY3JlYXRlU3RydWN0
SGFuZGxlck1hcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Zp
cnR1YWxNYWNoaW5lLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNo
aW5lLm1tCmluZGV4IGU3YzlhZjhhOWE2YTkyMjMzZWJmNDZlYjU1NDMwOThhNDRmMGZmNDAuLjlm
ZDczNDZmY2FhMzhiMWVlNzU5ZWQ2NDVmZTRiZjA3YzY1ZTlhNDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hpbmUubW0KQEAgLTQyLDcgKzQyLDcgQEAKIAog
c3RhdGljIE5TTWFwVGFibGUgKmdsb2JhbFdyYXBwZXJDYWNoZSA9IDA7CiAKLXN0YXRpYyBTdGF0
aWNMb2NrIHdyYXBwZXJDYWNoZU11dGV4Oworc3RhdGljIExvY2sgd3JhcHBlckNhY2hlTXV0ZXg7
CiAKIHN0YXRpYyB2b2lkIGluaXRXcmFwcGVyQ2FjaGUoKQogewpAQCAtNjgsMTMgKzY4LDEzIEBA
IEBpbXBsZW1lbnRhdGlvbiBKU1ZNV3JhcHBlckNhY2hlCiAKICsgKHZvaWQpYWRkV3JhcHBlcjoo
SlNWaXJ0dWFsTWFjaGluZSAqKXdyYXBwZXIgZm9ySlNDb250ZXh0R3JvdXBSZWY6KEpTQ29udGV4
dEdyb3VwUmVmKWdyb3VwCiB7Ci0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2so
d3JhcHBlckNhY2hlTXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKHdyYXBw
ZXJDYWNoZU11dGV4KTsKICAgICBOU01hcEluc2VydCh3cmFwcGVyQ2FjaGUoKSwgZ3JvdXAsIHdy
YXBwZXIpOwogfQogCiArIChKU1ZpcnR1YWxNYWNoaW5lICopd3JhcHBlckZvckpTQ29udGV4dEdy
b3VwUmVmOihKU0NvbnRleHRHcm91cFJlZilncm91cAogewotICAgIHN0ZDo6bG9ja19ndWFyZDxT
dGF0aWNMb2NrPiBsb2NrKHdyYXBwZXJDYWNoZU11dGV4KTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8
TG9jaz4gbG9jayh3cmFwcGVyQ2FjaGVNdXRleCk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpT
VmlydHVhbE1hY2hpbmUgKj4oTlNNYXBHZXQod3JhcHBlckNhY2hlKCksIGdyb3VwKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWaXJ0dWFsTWFj
aGluZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDVmlydHVhbE1hY2hp
bmUuY3BwCmluZGV4IGY5N2MxZGI2YmFhYzI2MTAwMDI5MjE1YjA1Mjk0Mzc1YzNmNjFkNGQuLmMw
NjFhZmVmMTg4YTgzMzkwZWFkNGMxMWMwNmZhMzgxMTFjNTgyZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWaXJ0dWFsTWFjaGluZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ1ZpcnR1YWxNYWNoaW5lLmNwcApAQCAtNDcs
NyArNDcsNyBAQCBzdHJ1Y3QgX0pTQ1ZpcnR1YWxNYWNoaW5lUHJpdmF0ZSB7CiAKIFdFQktJVF9E
RUZJTkVfVFlQRShKU0NWaXJ0dWFsTWFjaGluZSwganNjX3ZpcnR1YWxfbWFjaGluZSwgR19UWVBF
X09CSkVDVCkKIAotc3RhdGljIFN0YXRpY0xvY2sgd3JhcHBlckNhY2hlTXV0ZXg7CitzdGF0aWMg
TG9jayB3cmFwcGVyQ2FjaGVNdXRleDsKIAogc3RhdGljIEhhc2hNYXA8SlNDb250ZXh0R3JvdXBS
ZWYsIEpTQ1ZpcnR1YWxNYWNoaW5lKj4mIHdyYXBwZXJNYXAoKQogewpAQCAtNTcsMTQgKzU3LDE0
IEBAIHN0YXRpYyBIYXNoTWFwPEpTQ29udGV4dEdyb3VwUmVmLCBKU0NWaXJ0dWFsTWFjaGluZSo+
JiB3cmFwcGVyTWFwKCkKIAogc3RhdGljIHZvaWQgYWRkV3JhcHBlcihKU0NvbnRleHRHcm91cFJl
ZiBncm91cCwgSlNDVmlydHVhbE1hY2hpbmUqIHZtKQogewotICAgIHN0ZDo6bG9ja19ndWFyZDxT
dGF0aWNMb2NrPiBsb2NrKHdyYXBwZXJDYWNoZU11dGV4KTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8
TG9jaz4gbG9jayh3cmFwcGVyQ2FjaGVNdXRleCk7CiAgICAgQVNTRVJUKCF3cmFwcGVyTWFwKCku
Y29udGFpbnMoZ3JvdXApKTsKICAgICB3cmFwcGVyTWFwKCkuc2V0KGdyb3VwLCB2bSk7CiB9CiAK
IHN0YXRpYyB2b2lkIHJlbW92ZVdyYXBwZXIoSlNDb250ZXh0R3JvdXBSZWYgZ3JvdXApCiB7Ci0g
ICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sod3JhcHBlckNhY2hlTXV0ZXgpOwor
ICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKHdyYXBwZXJDYWNoZU11dGV4KTsKICAgICBB
U1NFUlQod3JhcHBlck1hcCgpLmNvbnRhaW5zKGdyb3VwKSk7CiAgICAgd3JhcHBlck1hcCgpLnJl
bW92ZShncm91cCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL3Rlc3RtYXNtLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1h
c20uY3BwCmluZGV4IGRhNDUwMjJkMmM3OWZiYTQ3OTdjOGExM2FjODBmOTU2NDYyZWQyOTYuLjg2
YzQyYjAzYTRjNTQ1MmE5OTliNTgwYWJiODBhMWI4ZTgyMjBjNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCkBAIC04MCw3ICs4MCw3IEBAIG5hbWVz
cGFjZSB7CiB1c2luZyBDUFVTdGF0ZSA9IFByb2JlOjpDUFVTdGF0ZTsKICNlbmRpZgogCi1TdGF0
aWNMb2NrIGNyYXNoTG9jazsKK0xvY2sgY3Jhc2hMb2NrOwogCiB0eXBlZGVmIFdURjo6RnVuY3Rp
b248dm9pZChDQ2FsbEhlbHBlcnMmKT4gR2VuZXJhdG9yOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci90ZXN0YWlyLmNwcAppbmRleCA3Yjk1MjY0NTA1MjJjMGU1YTBhZDNhOTRiNmVhMmRm
NTY4NjY4NGRkLi5kNmJmZmU5MTU2MjliYmM4OGJiMjliNGE0NGY3ZDNlOGYxYzhhMDJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAKQEAgLTcxLDcgKzcxLDcgQEAg
dXNpbmcgSlNDOjpCMzo6V2lkdGg2NDsKIAogbmFtZXNwYWNlIHsKIAotU3RhdGljTG9jayBjcmFz
aExvY2s7CitMb2NrIGNyYXNoTG9jazsKIAogLy8gTm90aGluZyBmYW5jeSBmb3Igbm93OyB3ZSBq
dXN0IHVzZSB0aGUgZXhpc3RpbmcgV1RGIGFzc2VydGlvbiBtYWNoaW5lcnkuCiAjZGVmaW5lIENI
RUNLKHgpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCB0ZXN0U2ltcGxlKCkKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+CiB2b2lkIGxvYWRDb25zdGFudEltcGwoQmFzaWNCbG9jayogYmxvY2ssIFQgdmFs
dWUsIEIzOjpBaXI6Ok9wY29kZSBtb3ZlLCBUbXAgdG1wLCBUbXAgc2NyYXRjaCkKIHsKLSAgICBz
dGF0aWMgU3RhdGljTG9jayBsb2NrOworICAgIHN0YXRpYyBMb2NrIGxvY2s7CiAgICAgc3RhdGlj
IFN0ZE1hcDxULCBUKj4qIG1hcDsgLy8gSSdtIG5vdCBtZXNzaW5nIHdpdGggSGFzaE1hcCdzIHBy
b2JsZW1zIHdpdGggaW50ZWdlcnMuCiAKICAgICBMb2NrSG9sZGVyIGxvY2tlcihsb2NrKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKaW5kZXggZTdiZjAxMjFmNzBkNjQwZTEwNjUyOTRk
OTM0ZDFjYzc1MzMyYzM0Ni4uNmRjOTE3NzNmNjM4NjE4MzFiNDVjMmFkMzg4NmVhZDQzZmUwOGYz
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgYm9v
bCBzaG91bGRCZVZlcmJvc2UoKQogICAgIHJldHVybiBzaG91bGREdW1wSVIoQjNNb2RlKTsKIH0K
IAotU3RhdGljTG9jayBjcmFzaExvY2s7CitMb2NrIGNyYXNoTG9jazsKIAogLy8gTm90aGluZyBm
YW5jeSBmb3Igbm93OyB3ZSBqdXN0IHVzZSB0aGUgZXhpc3RpbmcgV1RGIGFzc2VydGlvbiBtYWNo
aW5lcnkuCiAjZGVmaW5lIENIRUNLKHgpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9TdXBlclNhbXBsZXIuY3BwCmluZGV4IGYyZWZjNjdlODI4OTJmYWM5NzExYzE4OWFjYzMw
NDI0ZTQ5MmJkMzIuLmEzNTE4NzBlMGYzZmJmZmJiMmJjMTI3MGViNzkyYmE5ZWY1OTJiYTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdXBlclNhbXBsZXIuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdXBlclNhbXBsZXIuY3BwCkBA
IC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiB2b2xhdGlsZSB1aW50MzJfdCBnX3N1
cGVyU2FtcGxlckNvdW50OwogCi1zdGF0aWMgU3RhdGljTG9jayBsb2NrOworc3RhdGljIExvY2sg
bG9jazsKIHN0YXRpYyBkb3VibGUgaW47CiBzdGF0aWMgZG91YmxlIG91dDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDb21tb24uY3BwCmluZGV4IGNkMmExMmM3M2M4NmZjYjc3Zjc5OWIy
MzMyYWNiYjhlYzY3NGY0YWUuLjNhMTViMGY0Njg2OGVkMzhlNjAyNzVmOTVhYWE4YWRhY2Y5YjYw
NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5jcHAKQEAgLTM0LDcgKzM0
LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCi1zdGF0aWMgU3RhdGlj
TG9jayBjcmFzaExvY2s7CitzdGF0aWMgTG9jayBjcmFzaExvY2s7CiAKIHZvaWQgc3RhcnRDcmFz
aGluZygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1v
bkRhdGEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb25EYXRhLmNwcApp
bmRleCBlYjM4N2IyZWQ0NDcwYWEzZjVmYjcwNmNiNTYxNWY5NDMwMDY2YzExLi5iMTFhYWIxMTI0
MDZmYzRjMDM1ZDc5YmIzYWU5MWUyOTFiNTNmZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NvbW1vbkRhdGEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ29tbW9uRGF0YS5jcHAKQEAgLTkwLDcgKzkwLDcgQEAgdm9pZCBDb21tb25EYXRh
OjpzaHJpbmtUb0ZpdCgpCiAgICAgY2F0Y2hFbnRyeXBvaW50cy5zaHJpbmtUb0ZpdCgpOwogfQog
Ci1zdGF0aWMgU3RhdGljTG9jayBwY0NvZGVCbG9ja01hcExvY2s7CitzdGF0aWMgTG9jayBwY0Nv
ZGVCbG9ja01hcExvY2s7CiBpbmxpbmUgSGFzaE1hcDx2b2lkKiwgQ29kZUJsb2NrKj4mIHBjQ29k
ZUJsb2NrTWFwKEFic3RyYWN0TG9ja2VyJikKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
SGFzaE1hcDx2b2lkKiwgQ29kZUJsb2NrKj4+IHBjQ29kZUJsb2NrTWFwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2R5bmJlbmNoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9keW5iZW5jaC5jcHAKaW5kZXggZjc5OTA2OGE0Yzg1MTZiYWQwMWFjYWU5MjhhMDQ4NWRmY2Zi
NTNkMS4uYmI5ZDNiNTkwYzBjMmQ0NDczZGQyNzNkMTAzOWE2MWNkMTdiZGZkOSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2R5bmJlbmNoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZHluYmVuY2guY3BwCkBAIC0zOSw3ICszOSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiAKIG5hbWVzcGFjZSB7CiAKLVN0YXRpY0xvY2sgY3Jhc2hMb2NrOworTG9jayBjcmFzaExv
Y2s7CiBjb25zdCBjaGFyKiBuYW1lRmlsdGVyOwogdW5zaWduZWQgcmVxdWVzdGVkSXRlcmF0aW9u
Q291bnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVT
dGFja01hcmtlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tN
YXJrZXIuY3BwCmluZGV4IGVmN2RkNDQyMmI2NzRlZDFjZjRiMDU3OTg4ZDY3NWY3M2NiODY0NTcu
LjhmNmM2MjA1NTY3MTIwYWNmNGVmM2RhMTBkZjk4MzUyYzAwNzRmNDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcApAQCAtMTM5LDgg
KzEzOSw4IEBAIGJvb2wgTWFjaGluZVRocmVhZHM6OnRyeUNvcHlPdGhlclRocmVhZFN0YWNrcyhj
b25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCB2b2lkCiB7CiAgICAgLy8gUHJldmVudCB0d28g
Vk1zIGZyb20gc3VzcGVuZGluZyBlYWNoIG90aGVyJ3MgdGhyZWFkcyBhdCB0aGUgc2FtZSB0aW1l
LAogICAgIC8vIHdoaWNoIGNhbiBjYXVzZSBkZWFkbG9jazogPHJkYXI6Ly9wcm9ibGVtLzIwMzAw
ODQyPi4KLSAgICBzdGF0aWMgU3RhdGljTG9jayBtdXRleDsKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8
U3RhdGljTG9jaz4gbG9jayhtdXRleCk7CisgICAgc3RhdGljIExvY2sgbXV0ZXg7CisgICAgc3Rk
Ojpsb2NrX2d1YXJkPExvY2s+IGxvY2sobXV0ZXgpOwogCiAgICAgKnNpemUgPSAwOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1v
dGVDb25uZWN0aW9uVG9UYXJnZXRDb2NvYS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldENvY29hLm1tCmluZGV4
IGIwYTgwZmViZmUyYzA5N2Q2OGFhNmQ5NDBlYWU5ZjFhYzM3YmJmZjEuLjNlODk0MTM2YjM2OTMy
ZTcyMjA3NGJkYTQ0OTI2ZTg2M2NiZmE1NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldENvY29h
Lm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1Jl
bW90ZUNvbm5lY3Rpb25Ub1RhcmdldENvY29hLm1tCkBAIC00MSw3ICs0MSw3IEBACiAKIG5hbWVz
cGFjZSBJbnNwZWN0b3IgewogCi1zdGF0aWMgU3RhdGljTG9jayByd2lRdWV1ZU11dGV4Oworc3Rh
dGljIExvY2sgcndpUXVldWVNdXRleDsKIHN0YXRpYyBDRlJ1bkxvb3BTb3VyY2VSZWYgcndpUnVu
TG9vcFNvdXJjZTsKIHN0YXRpYyBSZW1vdGVUYXJnZXRRdWV1ZSogcndpUXVldWU7CiAKQEAgLTUz
LDcgKzUzLDcgQEAgc3RhdGljIHZvaWQgUmVtb3RlVGFyZ2V0SGFuZGxlUnVuU291cmNlR2xvYmFs
KHZvaWQqKQogCiAgICAgUmVtb3RlVGFyZ2V0UXVldWUgcXVldWVDb3B5OwogICAgIHsKLSAgICAg
ICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2socndpUXVldWVNdXRleCk7CisgICAg
ICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKHJ3aVF1ZXVlTXV0ZXgpOwogICAgICAgICBx
dWV1ZUNvcHkgPSAqcndpUXVldWU7CiAgICAgICAgIHJ3aVF1ZXVlLT5jbGVhcigpOwogICAgIH0K
QEAgLTY4LDcgKzY4LDcgQEAgc3RhdGljIHZvaWQgUmVtb3RlVGFyZ2V0UXVldWVUYXNrT25HbG9i
YWxRdWV1ZSh2b2lkIChedGFzaykoKSkKICAgICBBU1NFUlQocndpUXVldWUpOwogCiAgICAgewot
ICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhyd2lRdWV1ZU11dGV4KTsK
KyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2socndpUXVldWVNdXRleCk7CiAgICAg
ICAgIHJ3aVF1ZXVlLT5hcHBlbmQodGFzayk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ0xvb3BTdGFjay5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvQ0xvb3BTdGFjay5jcHAKaW5kZXggOWM0NjRlMzE0ZjVhYWMx
NGFmODNlNTljOGQ3YjVlMDU0NGY2YTA1MC4uYWJjMTBhOGZlYWQyODYxNTE5NjliYTIyMzVjYjM0
N2M3ZTYxZTg1NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0NMb29wU3RhY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9D
TG9vcFN0YWNrLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgc2l6ZV90IGNvbW1pdFNpemUo
KQogICAgIHJldHVybiBzaXplOwogfQogCi1zdGF0aWMgU3RhdGljTG9jayBzdGFja1N0YXRpc3Rp
Y3NNdXRleDsKK3N0YXRpYyBMb2NrIHN0YWNrU3RhdGlzdGljc011dGV4OwogCiBDTG9vcFN0YWNr
OjpDTG9vcFN0YWNrKFZNJiB2bSkKICAgICA6IG1fdm0odm0pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwCmluZGV4IDk0ZDlmYmRhYWYzY2I2Yjk4
OGQ3NTgxZDg0YjlmYzRlM2MzZjZhZDguLjlhMTNlYjIzOGZmODA4MjRlYTI3ZmI3MmY3ZmI2MzQz
OTk1MjJkMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNl
UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJv
dmlkZXIuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFNvdXJjZVByb3ZpZGVyOjp+U291cmNlUHJvdmlk
ZXIoKQogewogfQogCi1zdGF0aWMgU3RhdGljTG9jayBwcm92aWRlcklkTG9jazsKK3N0YXRpYyBM
b2NrIHByb3ZpZGVySWRMb2NrOwogCiB2b2lkIFNvdXJjZVByb3ZpZGVyOjpnZXRJRCgpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFz
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFzZS5j
cHAKaW5kZXggZDQ1NGU3OGY0YzFlNDYwNTQwNjFlMzM2ZGM0YzlmMGUwNDczMTI3My4uOTExZDY4
MTc0Yzk2YTk0ZTYzY2JmODU0ZWY4OTY1ZGZhZjI2YTU2OCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcApAQCAtMzcsNyArMzcs
NyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIAogc3RhdGljIHN0ZDo6
YXRvbWljPGludD4gZGF0YWJhc2VDb3VudGVyOwogCi1zdGF0aWMgU3RhdGljTG9jayByZWdpc3Ry
YXRpb25Mb2NrOworc3RhdGljIExvY2sgcmVnaXN0cmF0aW9uTG9jazsKIHN0YXRpYyBzdGQ6OmF0
b21pYzxpbnQ+IGRpZFJlZ2lzdGVyQXRFeGl0Owogc3RhdGljIERhdGFiYXNlKiBmaXJzdERhdGFi
YXNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJVSUQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyVUlELmNw
cAppbmRleCAyMjg5ODhiYzU5ZTAzNTg1OWQ5ZGFkOWM5OTFhZWU3YzFjNGUyYWJjLi5iNWNiMTE0
NTVkNzIzMjgxYzA2YTViNjdlYzhjZmRhNWJmZjcwNTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJVSUQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlclVJRC5jcHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiAKIFVJRCBVSUQ6OmNyZWF0ZSgpCiB7Ci0g
ICAgc3RhdGljIFN0YXRpY0xvY2sgbG9jazsKKyAgICBzdGF0aWMgTG9jayBsb2NrOwogICAgIHN0
YXRpYyB1aW50NjRfdCBjb3VudGVyOwogICAgIAogICAgIExvY2tIb2xkZXIgbG9ja2VyKGxvY2sp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAppbmRleCA2
YTQ5NTM4ZmEwMmFiY2NhNGY5NzlhY2MyNTBhODUxNmNhMTg1MTlkLi4zZjU0MzQwMzhmMjFlNDAz
NWJiODQwMTE4OTBmMGFjNWVlM2NhNDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsT2JqZWN0LmNwcApAQCAtODUzLDggKzg1Myw4IEBAIFZlY3RvcjxTdHJpbmc+IG51
bWJlcmluZ1N5c3RlbXNGb3JMb2NhbGUoY29uc3QgU3RyaW5nJiBsb2NhbGUpCiAgICAgVmVjdG9y
PFN0cmluZz4mIGF2YWlsYWJsZU51bWJlcmluZ1N5c3RlbXMgPSBjYWNoZWROdW1iZXJpbmdTeXN0
ZW1zLmdldCgpOwogCiAgICAgaWYgKFVOTElLRUxZKGF2YWlsYWJsZU51bWJlcmluZ1N5c3RlbXMu
aXNFbXB0eSgpKSkgewotICAgICAgICBzdGF0aWMgU3RhdGljTG9jayBjYWNoZWROdW1iZXJpbmdT
eXN0ZW1zTXV0ZXg7Ci0gICAgICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKGNh
Y2hlZE51bWJlcmluZ1N5c3RlbXNNdXRleCk7CisgICAgICAgIHN0YXRpYyBMb2NrIGNhY2hlZE51
bWJlcmluZ1N5c3RlbXNNdXRleDsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2so
Y2FjaGVkTnVtYmVyaW5nU3lzdGVtc011dGV4KTsKICAgICAgICAgaWYgKGF2YWlsYWJsZU51bWJl
cmluZ1N5c3RlbXMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBVRXJyb3JDb2RlIHN0YXR1cyA9
IFVfWkVST19FUlJPUjsKICAgICAgICAgICAgIFVFbnVtZXJhdGlvbiogbnVtYmVyaW5nU3lzdGVt
TmFtZXMgPSB1bnVtc3lzX29wZW5BdmFpbGFibGVOYW1lcygmc3RhdHVzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCmluZGV4IGI2YmIxMzAwMDY4ZGE5ZWM0ODdmZTA1
MGM1NmNjZGQ2NmE3YzRmNDMuLmY5NDhlODgwMzFkMjM5OWU5NzNiYTRkOTU5MmUwYmU5Njg1OWFl
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcApAQCAtMzYsNyAr
MzYsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotU3RhdGljTG9jayBHbG9iYWxKU0xvY2s6OnNf
c2hhcmVkSW5zdGFuY2VNdXRleDsKK0xvY2sgR2xvYmFsSlNMb2NrOjpzX3NoYXJlZEluc3RhbmNl
TXV0ZXg7CiAKIEdsb2JhbEpTTG9jazo6R2xvYmFsSlNMb2NrKCkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNMb2NrLmgKaW5kZXggYmVkZjJiNTcyODA2Nzc0NjQ3ZGUyMWI3YzMxOGZm
YTM4ZWUzNzYwZC4uYzBiODJlNjkxNGQ4MzU0MjNiOTI1YTk0ZjBiMWI4MmMzNDU1MDY0YyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgKQEAgLTYwLDcgKzYwLDcgQEAgY2xh
c3MgR2xvYmFsSlNMb2NrIHsKICAgICBKU19FWFBPUlRfUFJJVkFURSBHbG9iYWxKU0xvY2soKTsK
ICAgICBKU19FWFBPUlRfUFJJVkFURSB+R2xvYmFsSlNMb2NrKCk7CiBwcml2YXRlOgotICAgIHN0
YXRpYyBTdGF0aWNMb2NrIHNfc2hhcmVkSW5zdGFuY2VNdXRleDsKKyAgICBzdGF0aWMgTG9jayBz
X3NoYXJlZEluc3RhbmNlTXV0ZXg7CiB9OwogCiBjbGFzcyBKU0xvY2tIb2xkZXIgewpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAppbmRl
eCA1ZTc0MGMyNjFiMTczZDA4Mjk4YTVlMTE2YWRjOWJhZDQ3Nzc3MTI4Li5iYjY5NjU4N2RlZWNm
ZTYzOWUwOWM2NTQzOGQzZDVlZmMyOWUyYWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcApAQCAtOTA5LDcgKzkwOSw3IEBAIFN0
cmluZyBTYW1wbGluZ1Byb2ZpbGVyOjpzdGFja1RyYWNlc0FzSlNPTigpCiAKIHZvaWQgU2FtcGxp
bmdQcm9maWxlcjo6cmVnaXN0ZXJGb3JSZXBvcnRBdEV4aXQoKQogewotICAgIHN0YXRpYyBTdGF0
aWNMb2NrIHJlZ2lzdHJhdGlvbkxvY2s7CisgICAgc3RhdGljIExvY2sgcmVnaXN0cmF0aW9uTG9j
azsKICAgICBzdGF0aWMgSGFzaFNldDxSZWZQdHI8U2FtcGxpbmdQcm9maWxlcj4+KiBwcm9maWxl
c1RvUmVwb3J0OwogCiAgICAgTG9ja0hvbGRlciBob2xkZXIocmVnaXN0cmF0aW9uTG9jayk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5k
bGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRs
ZXIuY3BwCmluZGV4IDYxOTE0OTJkOTQxZmU4ODEwMTJlNDYyMWI5YzEyZTAxYjQxMzkxOTcuLjk2
NTcxMDgzZTdmMzUxOTMxZWE1YmRhYWViZmExMzczNGIxNGRjNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuY3BwCkBAIC00
Nyw3ICs0Nyw3IEBAIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIH0KIAot
c3RhdGljIFN0YXRpY0xvY2sgY29kZUxvY2F0aW9uc0xvY2s7CitzdGF0aWMgTG9jayBjb2RlTG9j
YXRpb25zTG9jazsKIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxzdGQ6OnR1cGxl
PHZvaWQqLCB2b2lkKj4+PiBjb2RlTG9jYXRpb25zOyAvLyAoc3RhcnQsIGVuZCkKIAogI2lmIEVO
QUJMRShXRUJBU1NFTUJMWV9GQVNUX01FTU9SWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L0hhc2hUYWJsZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUuY3BwCmluZGV4IGIwNmVh
ZjZjMmFjNWQwOGM5NTBmYzczNGE2NmJkNDA5YzhmYTBlMGYuLjBlYjYwMzZjODYzZmIxMTNmZWM4
OTEyNTZlNTA3NTk0NDExNGFiZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJs
ZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmNwcApAQCAtMzYsMTEgKzM2LDEx
IEBAIHVuc2lnbmVkIEhhc2hUYWJsZVN0YXRzOjpudW1Db2xsaXNpb25zOwogdW5zaWduZWQgSGFz
aFRhYmxlU3RhdHM6OmNvbGxpc2lvbkdyYXBoWzQwOTZdOwogdW5zaWduZWQgSGFzaFRhYmxlU3Rh
dHM6Om1heENvbGxpc2lvbnM7CiAKLXN0YXRpYyBTdGF0aWNMb2NrIGhhc2hUYWJsZVN0YXRzTXV0
ZXg7CitzdGF0aWMgTG9jayBoYXNoVGFibGVTdGF0c011dGV4OwogCiB2b2lkIEhhc2hUYWJsZVN0
YXRzOjpyZWNvcmRDb2xsaXNpb25BdENvdW50KHVuc2lnbmVkIGNvdW50KQogewotICAgIHN0ZDo6
bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKGhhc2hUYWJsZVN0YXRzTXV0ZXgpOworICAgIHN0
ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKGhhc2hUYWJsZVN0YXRzTXV0ZXgpOwogCiAgICAgaWYg
KGNvdW50ID4gbWF4Q29sbGlzaW9ucykKICAgICAgICAgbWF4Q29sbGlzaW9ucyA9IGNvdW50OwpA
QCAtNTAsNyArNTAsNyBAQCB2b2lkIEhhc2hUYWJsZVN0YXRzOjpyZWNvcmRDb2xsaXNpb25BdENv
dW50KHVuc2lnbmVkIGNvdW50KQogCiB2b2lkIEhhc2hUYWJsZVN0YXRzOjpkdW1wU3RhdHMoKQog
ewotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKGhhc2hUYWJsZVN0YXRzTXV0
ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKGhhc2hUYWJsZVN0YXRzTXV0ZXgp
OwogCiAgICAgZGF0YUxvZ0YoIlxuV1RGOjpIYXNoVGFibGUgc3RhdGlzdGljc1xuXG4iKTsKICAg
ICBkYXRhTG9nRigiJXUgYWNjZXNzZXNcbiIsIG51bUFjY2Vzc2VzLmxvYWQoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFn
ZS5jcHAKaW5kZXggYWEyZThjMTAwM2MxNTUzYzhlYjJjMzk1MTk1YzFjNDc4MWJmNmY1Ny4uZTFm
NWUwMzY0ZDhjOGFkOGY2NTEyYjMxYmJjNmJiYTFkMThlYmM4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvTGFuZ3VhZ2UuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcApA
QCAtMzcsNyArMzcsNyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotc3RhdGljIFN0YXRpY0xvY2sg
dXNlclByZWZlcnJlZExhbmd1YWdlc011dGV4Oworc3RhdGljIExvY2sgdXNlclByZWZlcnJlZExh
bmd1YWdlc011dGV4OwogCiB0eXBlZGVmIEhhc2hNYXA8dm9pZCosIExhbmd1YWdlQ2hhbmdlT2Jz
ZXJ2ZXJGdW5jdGlvbj4gT2JzZXJ2ZXJNYXA7CiBzdGF0aWMgT2JzZXJ2ZXJNYXAmIG9ic2VydmVy
TWFwKCkKQEAgLTEwMiw3ICsxMDIsNyBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gaXNvbGF0ZWRD
b3B5KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdHJpbmdzKQogVmVjdG9yPFN0cmluZz4gdXNlclBy
ZWZlcnJlZExhbmd1YWdlcygpCiB7CiAgICAgewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3Rh
dGljTG9jaz4gbG9jayh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXgpOworICAgICAgICBzdGQ6
OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXgpOwogICAg
ICAgICBWZWN0b3I8U3RyaW5nPiYgb3ZlcnJpZGUgPSBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlk
ZSgpOwogICAgICAgICBpZiAoIW92ZXJyaWRlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVy
biBpc29sYXRlZENvcHkob3ZlcnJpZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9j
ay5oIGIvU291cmNlL1dURi93dGYvTG9jay5oCmluZGV4IDYzMWRlOTZjMDljMTE0OTY2NjM4YTEx
ODIxNmRkMjU2NzgzODlkYjAuLmQzYzcyMTUyYzFjNGQ4MTg3ZDAwNGMyYmI4MmExMDI3ZDI0ZmE4
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvY2suaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9Mb2NrLmgKQEAgLTEzMiwxNCArMTMyLDEyIEBAIGNsYXNzIExvY2sgewogICAgIEF0b21pYzx1
aW50OF90PiBtX2J5dGUgeyAwIH07CiB9OwogCi11c2luZyBTdGF0aWNMb2NrID0gTG9jazsKIHVz
aW5nIExvY2tIb2xkZXIgPSBMb2NrZXI8TG9jaz47CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCiB1
c2luZyBXVEY6OkxvY2s7CiB1c2luZyBXVEY6OkxvY2tIb2xkZXI7Ci11c2luZyBXVEY6OlN0YXRp
Y0xvY2s7CiAKICNlbmRpZiAvLyBXVEZfTG9ja19oCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL01haW5UaHJlYWQuY3BwIGIvU291cmNlL1dURi93dGYvTWFpblRocmVhZC5jcHAKaW5kZXgg
NzQ3NTg4ODdlODAzNzVhMjU1MjgxNmNlZmFjYmZmMzEyZmE3ODJhNS4uZGYyMjQ0ZDIxZDE5N2Zl
NGU4N2ZiMmY1NTBhMTcwNTM1OGQ5ZTUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWFp
blRocmVhZC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTWFpblRocmVhZC5jcHAKQEAgLTQ2LDcg
KzQ2LDcgQEAgc3RhdGljIGJvb2wgY2FsbGJhY2tzUGF1c2VkOyAvLyBUaGlzIGdsb2JhbCB2YXJp
YWJsZSBpcyBvbmx5IGFjY2Vzc2VkIGZyb20gbWFpbgogc3RhdGljIFRocmVhZCogbWFpblRocmVh
ZCB7IG51bGxwdHIgfTsKICNlbmRpZgogCi1zdGF0aWMgU3RhdGljTG9jayBtYWluVGhyZWFkRnVu
Y3Rpb25RdWV1ZU11dGV4Oworc3RhdGljIExvY2sgbWFpblRocmVhZEZ1bmN0aW9uUXVldWVNdXRl
eDsKIAogc3RhdGljIERlcXVlPEZ1bmN0aW9uPHZvaWQgKCk+PiYgZnVuY3Rpb25RdWV1ZSgpCiB7
CkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBkaXNwYXRjaEZ1bmN0aW9uc0Zyb21NYWluVGhyZWFk
KCkKIAogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIHsKLSAgICAgICAgICAgIHN0ZDo6bG9j
a19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKG1haW5UaHJlYWRGdW5jdGlvblF1ZXVlTXV0ZXgpOwor
ICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sobWFpblRocmVhZEZ1bmN0aW9u
UXVldWVNdXRleCk7CiAgICAgICAgICAgICBpZiAoIWZ1bmN0aW9uUXVldWUoKS5zaXplKCkpCiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAKQEAgLTE0OSw3ICsxNDksNyBAQCB2b2lkIGNhbGxPbk1h
aW5UaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQogICAgIGJvb2wgbmVlZFRvU2No
ZWR1bGUgPSBmYWxzZTsKIAogICAgIHsKLSAgICAgICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xv
Y2s+IGxvY2sobWFpblRocmVhZEZ1bmN0aW9uUXVldWVNdXRleCk7CisgICAgICAgIHN0ZDo6bG9j
a19ndWFyZDxMb2NrPiBsb2NrKG1haW5UaHJlYWRGdW5jdGlvblF1ZXVlTXV0ZXgpOwogICAgICAg
ICBuZWVkVG9TY2hlZHVsZSA9IGZ1bmN0aW9uUXVldWUoKS5zaXplKCkgPT0gMDsKICAgICAgICAg
ZnVuY3Rpb25RdWV1ZSgpLmFwcGVuZChXVEZNb3ZlKGZ1bmN0aW9uKSk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvUGFya2luZ0xvdC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJr
aW5nTG90LmNwcAppbmRleCA1MzliYzJhZjFjNDJiNDNlM2E3OWNjMzk1ZDIzZjJhM2EwNDU5YWE2
Li5jNzhjMDI4YTg0YWFmNTdlMjhiNzY5ZGMxMmRmMGRlMWJjNTIxMDY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJraW5n
TG90LmNwcApAQCAtMjA1LDcgKzIwNSw3IEBAIHN0cnVjdCBIYXNodGFibGU7CiAKIC8vIFdlIHRy
YWNrIGFsbCBhbGxvY2F0ZWQgaGFzaHRhYmxlcyBzbyB0aGF0IGhhc2h0YWJsZSByZXNpemluZyBk
b2Vzbid0IGFuZ2VyIGxlYWsgZGV0ZWN0b3JzLgogVmVjdG9yPEhhc2h0YWJsZSo+KiBoYXNodGFi
bGVzOwotU3RhdGljV29yZExvY2sgaGFzaHRhYmxlc0xvY2s7CitXb3JkTG9jayBoYXNodGFibGVz
TG9jazsKIAogc3RydWN0IEhhc2h0YWJsZSB7CiAgICAgdW5zaWduZWQgc2l6ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmggYi9Tb3VyY2UvV1RGL3d0
Zi9SZWN1cnNpdmVMb2NrQWRhcHRlci5oCmluZGV4IDAzMTM4NGQ4NTIxYWJkNDhmZTM2ZTlkYTJl
MzVjYmI3NDQzN2NiNjQuLmI3NDNmMzg2NjljYzcyZTc3Y2U1YTJlZmRhOWFhNTQ1ZThmYWZlYmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmgKKysrIGIv
U291cmNlL1dURi93dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaApAQCAtODYsNiArODYsOCBAQCBj
bGFzcyBSZWN1cnNpdmVMb2NrQWRhcHRlciB7CiAgICAgTG9ja1R5cGUgbV9sb2NrOwogfTsKIAot
fSAvLyBuYW1lc3BhY2UgV1RGCit1c2luZyBSZWN1cnNpdmVMb2NrID0gUmVjdXJzaXZlTG9ja0Fk
YXB0ZXI8TG9jaz47CiAKK30gLy8gbmFtZXNwYWNlIFdURgogCit1c2luZyBXVEY6OlJlY3Vyc2l2
ZUxvY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TdGFja1N0YXRzLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL1N0YWNrU3RhdHMuY3BwCmluZGV4IDhjYjQ2MjIxMWRmN2FkNTU3ZTNjN2FlMjQ4
ZTU2NTI4YjUxODZjODYuLjc4ZjYyODUyNWQyMTE0ODNiZmUxZTk1ZmNlZGFlMjFlMzgxYjViZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1N0YWNrU3RhdHMuY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1N0YWNrU3RhdHMuY3BwCkBAIC00MSw3ICs0MSw3IEBACiBuYW1lc3BhY2UgV1RGIHsK
IAogLy8gQ2hlY2tQb2ludCBtYW5hZ2VtZW50OgotU3RhdGljTG9jayBTdGFja1N0YXRzOjpzX3No
YXJlZE11dGV4OworTG9jayBTdGFja1N0YXRzOjpzX3NoYXJlZE11dGV4OwogU3RhY2tTdGF0czo6
Q2hlY2tQb2ludCogU3RhY2tTdGF0czo6c190b3BDaGVja1BvaW50ID0gMDsKIFN0YWNrU3RhdHM6
OkxheW91dENoZWNrUG9pbnQqIFN0YWNrU3RhdHM6OnNfZmlyc3RMYXlvdXRDaGVja1BvaW50ID0g
MDsKIFN0YWNrU3RhdHM6OkxheW91dENoZWNrUG9pbnQqIFN0YWNrU3RhdHM6OnNfdG9wTGF5b3V0
Q2hlY2tQb2ludCA9IDA7CkBAIC02OCw3ICs2OCw3IEBAIFN0YWNrU3RhdHM6OlBlclRocmVhZFN0
YXRzOjpQZXJUaHJlYWRTdGF0cygpCiAKIFN0YWNrU3RhdHM6OkNoZWNrUG9pbnQ6OkNoZWNrUG9p
bnQoKQogewotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKFN0YWNrU3RhdHM6
OnNfc2hhcmVkTXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKFN0YWNrU3Rh
dHM6OnNfc2hhcmVkTXV0ZXgpOwogICAgIFRocmVhZCYgdGhyZWFkID0gVGhyZWFkOjpjdXJyZW50
KCk7CiAgICAgU3RhY2tTdGF0czo6UGVyVGhyZWFkU3RhdHMmIHQgPSB0aHJlYWQuc3RhY2tTdGF0
cygpOwogICAgIGNvbnN0IFN0YWNrQm91bmRzJiBzdGFjayA9IHRocmVhZC5zdGFjaygpOwpAQCAt
MTI2LDcgKzEyNiw3IEBAIFN0YWNrU3RhdHM6OkNoZWNrUG9pbnQ6OkNoZWNrUG9pbnQoKQogCiBT
dGFja1N0YXRzOjpDaGVja1BvaW50Ojp+Q2hlY2tQb2ludCgpCiB7Ci0gICAgc3RkOjpsb2NrX2d1
YXJkPFN0YXRpY0xvY2s+IGxvY2soU3RhY2tTdGF0czo6c19zaGFyZWRNdXRleCk7CisgICAgc3Rk
Ojpsb2NrX2d1YXJkPExvY2s+IGxvY2soU3RhY2tTdGF0czo6c19zaGFyZWRNdXRleCk7CiAgICAg
VGhyZWFkJiB0aHJlYWQgPSBUaHJlYWQ6OmN1cnJlbnQoKTsKICAgICBTdGFja1N0YXRzOjpQZXJU
aHJlYWRTdGF0cyYgdCA9IHRocmVhZC5zdGFja1N0YXRzKCk7CiAKQEAgLTE1Nyw3ICsxNTcsNyBA
QCBTdGFja1N0YXRzOjpDaGVja1BvaW50Ojp+Q2hlY2tQb2ludCgpCiAKIHZvaWQgU3RhY2tTdGF0
czo6cHJvYmUoKQogewotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKFN0YWNr
U3RhdHM6OnNfc2hhcmVkTXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKFN0
YWNrU3RhdHM6OnNfc2hhcmVkTXV0ZXgpOwogICAgIFRocmVhZCYgdGhyZWFkID0gVGhyZWFkOjpj
dXJyZW50KCk7CiAgICAgU3RhY2tTdGF0czo6UGVyVGhyZWFkU3RhdHMmIHQgPSB0aHJlYWQuc3Rh
Y2tTdGF0cygpOwogICAgIGNvbnN0IFN0YWNrQm91bmRzJiBzdGFjayA9IHRocmVhZC5zdGFjaygp
OwpAQCAtMjE4LDcgKzIxOCw3IEBAIFN0YWNrU3RhdHM6OkxheW91dENoZWNrUG9pbnQ6OkxheW91
dENoZWNrUG9pbnQoKQogICAgIC8vIHByb2JlIGZpcnN0LCB3ZSBjYW4gYXZvaWQgcmUtZW50ZXJp
bmcgdGhlIGxvY2suCiAgICAgU3RhY2tTdGF0czo6cHJvYmUoKTsKIAotICAgIHN0ZDo6bG9ja19n
dWFyZDxTdGF0aWNMb2NrPiBsb2NrKFN0YWNrU3RhdHM6OnNfc2hhcmVkTXV0ZXgpOworICAgIHN0
ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKFN0YWNrU3RhdHM6OnNfc2hhcmVkTXV0ZXgpOwogICAg
IFRocmVhZCYgdGhyZWFkID0gVGhyZWFkOjpjdXJyZW50KCk7CiAgICAgU3RhY2tTdGF0czo6UGVy
VGhyZWFkU3RhdHMmIHQgPSB0aHJlYWQuc3RhY2tTdGF0cygpOwogICAgIGNvbnN0IFN0YWNrQm91
bmRzJiBzdGFjayA9IHRocmVhZC5zdGFjaygpOwpAQCAtMjg3LDcgKzI4Nyw3IEBAIFN0YWNrU3Rh
dHM6OkxheW91dENoZWNrUG9pbnQ6OkxheW91dENoZWNrUG9pbnQoKQogCiBTdGFja1N0YXRzOjpM
YXlvdXRDaGVja1BvaW50Ojp+TGF5b3V0Q2hlY2tQb2ludCgpCiB7Ci0gICAgc3RkOjpsb2NrX2d1
YXJkPFN0YXRpY0xvY2s+IGxvY2soU3RhY2tTdGF0czo6c19zaGFyZWRNdXRleCk7CisgICAgc3Rk
Ojpsb2NrX2d1YXJkPExvY2s+IGxvY2soU3RhY2tTdGF0czo6c19zaGFyZWRNdXRleCk7CiAKICAg
ICAvLyBQb3AgdG8gdGhlIHByZXZpb3VzIGxheW91dCBjaGVja3BvaW50OgogICAgIFN0YWNrU3Rh
dHM6OnNfdG9wTGF5b3V0Q2hlY2tQb2ludCA9IG1fcHJldjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1N0YWNrU3RhdHMuaCBiL1NvdXJjZS9XVEYvd3RmL1N0YWNrU3RhdHMuaAppbmRleCA1
NDY0YjRmNjA2YWM1Zjc3MWM3M2JjODU2YWJiZTM1OGRkNjdhMDMxLi4xMDE3NzljMDJiMThjNDNh
YjU3NGNmM2FmZTE0NTM0ZDIzODQ5Y2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9TdGFj
a1N0YXRzLmgKKysrIGIvU291cmNlL1dURi93dGYvU3RhY2tTdGF0cy5oCkBAIC0xMjAsNyArMTIw
LDcgQEAgY2xhc3MgU3RhY2tTdGF0cyB7CiAKIHByaXZhdGU6CiAgICAgLy8gQ2hlY2tQb2ludCBt
YW5hZ2VtZW50OgotICAgIHN0YXRpYyBTdGF0aWNMb2NrIHNfc2hhcmVkTXV0ZXg7CisgICAgc3Rh
dGljIExvY2sgc19zaGFyZWRNdXRleDsKICAgICBzdGF0aWMgQ2hlY2tQb2ludCogc190b3BDaGVj
a1BvaW50OwogICAgIHN0YXRpYyBMYXlvdXRDaGVja1BvaW50KiBzX2ZpcnN0TGF5b3V0Q2hlY2tQ
b2ludDsKICAgICBzdGF0aWMgTGF5b3V0Q2hlY2tQb2ludCogc190b3BMYXlvdXRDaGVja1BvaW50
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkTWVzc2FnZS5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9UaHJlYWRNZXNzYWdlLmNwcAppbmRleCA1NmQ2YmNmN2Q1MmVjZWEzOGFiNGU4Njg0
ZTRjNjIzNTYwMDJlNjY5Li44Njc0Y2Y1M2ViNzY3YWE0MmJkZDg1ZTlkMzJhZGVmZTQzYTYwNTIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRNZXNzYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9UaHJlYWRNZXNzYWdlLmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2Ug
V1RGIHsKIAogTWVzc2FnZVN0YXR1cyBzZW5kTWVzc2FnZVNjb3BlZChUaHJlYWQmIHRocmVhZCwg
Y29uc3QgVGhyZWFkTWVzc2FnZSYgbWVzc2FnZSkKIHsKLSAgICBzdGF0aWMgU3RhdGljTG9jayBt
ZXNzYWdlTG9jazsKKyAgICBzdGF0aWMgTG9jayBtZXNzYWdlTG9jazsKICAgICBhdXRvIGxvY2to
b2xkZXIgPSBob2xkTG9jayhtZXNzYWdlTG9jayk7CiAKICAgICBhdXRvIHJlc3VsdCA9IHRocmVh
ZC5zdXNwZW5kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFk
cy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKaW5kZXggMDFlZGFk
Y2IzZDVjNWJkNjlhOTIxNWI1MDdiOWE1MjM2Njk1ZGM4Ni4uZGRhYzczNzRhM2M2Zjk1MjVjZWU2
MjA2M2ZmNTllZmYxNzYxNzg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5n
UHRocmVhZHMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcApA
QCAtNjgsNyArNjgsNyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotc3RhdGljIFN0YXRpY0xvY2sg
Z2xvYmFsU3VzcGVuZExvY2s7CitzdGF0aWMgTG9jayBnbG9iYWxTdXNwZW5kTG9jazsKIAogVGhy
ZWFkOjp+VGhyZWFkKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dp
bi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCmluZGV4IDk3OTlmYzFlYmIz
NmRkZDhkNzRkMGY4ZTBmZDQ1Mjg5MDkzZGNiMjIuLjZmM2Q0MWQ2YTA0NTdmYWIwYzA2ZThlZDFi
OWQ5NWMzOGM1MDVjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcApAQCAtMTAwLDcgKzEwMCw3
IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1zdGF0aWMgU3RhdGljTG9jayBnbG9iYWxTdXNwZW5k
TG9jazsKK3N0YXRpYyBMb2NrIGdsb2JhbFN1c3BlbmRMb2NrOwogCiBUaHJlYWQ6On5UaHJlYWQo
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29yZExvY2suaCBiL1NvdXJjZS9XVEYv
d3RmL1dvcmRMb2NrLmgKaW5kZXggN2E5MGY4YjYwOWQ4MjkxMmU2MmNhYmJmNDlhNjU3MGQyYTJj
MTMwZS4uYmYxMzU0YTZiODZjZTcyZDZhYzdiZTE0MzBhOTM1OWNmMjM0M2UyNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvV29yZExvY2suaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JkTG9j
ay5oCkBAIC0xMDEsMTQgKzEwMSwxMiBAQCBjbGFzcyBXb3JkTG9jayB7CiAgICAgQXRvbWljPHVp
bnRwdHJfdD4gbV93b3JkIHsgMCB9OwogfTsKIAotdXNpbmcgU3RhdGljV29yZExvY2sgPSBXb3Jk
TG9jazsKIHVzaW5nIFdvcmRMb2NrSG9sZGVyID0gTG9ja2VyPFdvcmRMb2NrPjsKIAogfSAvLyBu
YW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6V29yZExvY2s7CiB1c2luZyBXVEY6OldvcmRMb2Nr
SG9sZGVyOwotdXNpbmcgV1RGOjpTdGF0aWNXb3JkTG9jazsKIAogI2VuZGlmIC8vIFdURl9Xb3Jk
TG9ja19oCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NmL0xhbmd1YWdlQ0YuY3BwIGIv
U291cmNlL1dURi93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAKaW5kZXggYWMyMDNkMTdjZjg5YTIwM2I5
ZmFjYjFjMWE4YmFiMWI2ODQwOWM1ZC4uODNkN2I5MGMxNmQ1Yjg4YTlkNzliNmY0NWE5ZjAxNGVl
YTc0NGYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAKQEAgLTM4LDcgKzM4LDcgQEAKIAog
bmFtZXNwYWNlIFdURiB7CiAKLXN0YXRpYyBTdGF0aWNMb2NrIHByZWZlcnJlZExhbmd1YWdlc011
dGV4Oworc3RhdGljIExvY2sgcHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXg7CiAKIHN0YXRpYyBWZWN0
b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2VzKCkKIHsKQEAgLTc2LDcgKzc2LDcgQEAgc3Rh
dGljIFN0cmluZyBodHRwU3R5bGVMYW5ndWFnZUNvZGUoQ0ZTdHJpbmdSZWYgbGFuZ3VhZ2UpCiBz
dGF0aWMgdm9pZCBsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdlKENGTm90aWZpY2F0aW9uQ2Vu
dGVyUmVmLCB2b2lkKiwgQ0ZTdHJpbmdSZWYsIGNvbnN0IHZvaWQqLCBDRkRpY3Rpb25hcnlSZWYp
CiB7CiAgICAgewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhwcmVm
ZXJyZWRMYW5ndWFnZXNNdXRleCk7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2Nr
KHByZWZlcnJlZExhbmd1YWdlc011dGV4KTsKICAgICAgICAgcHJlZmVycmVkTGFuZ3VhZ2VzKCku
Y2xlYXIoKTsKICAgICB9CiAgICAgCkBAIC05Myw3ICs5Myw3IEBAIFZlY3RvcjxTdHJpbmc+IHBs
YXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCiAgICAgfSk7CiAjZW5kaWYKIAotICAgIHN0
ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHByZWZlcnJlZExhbmd1YWdlc011dGV4KTsK
KyAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhwcmVmZXJyZWRMYW5ndWFnZXNNdXRleCk7
CiAgICAgVmVjdG9yPFN0cmluZz4mIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMgPSBwcmVmZXJyZWRM
YW5ndWFnZXMoKTsKIAogICAgIGlmICh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmlzRW1wdHkoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZHRvYS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9k
dG9hLmNwcAppbmRleCA5NzJiMjg5OWRkYTM3MzcyY2NhNGQ4OWNlNTk5NTkyOTlmOTc4NGUxLi5l
ZGVmZDdmODg0MzA1ZmMyYzIwY2IzZjNiYzU3MWE3Zjk4MGUzMGY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9kdG9hLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcApAQCAtNTUs
NyArNTUsNyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotc3RhdGljIFN0YXRpY0xvY2sgc19kdG9h
UDVNdXRleDsKK3N0YXRpYyBMb2NrIHNfZHRvYVA1TXV0ZXg7CiAKIHR5cGVkZWYgdW5pb24gewog
ICAgIGRvdWJsZSBkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJp
bmdJbXBsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nSW1wbC5jcHAKaW5k
ZXggMWNhODNjY2FhMTcyOWVlZmNlMjQ3YTAyYTg3NDJhZGJjODU1OWVmMi4uZjEwM2Q5ZTUxMGEx
MmZjZDlhNzc3ZmI0ZDczMWZkMzQ0ZGU5M2U1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
dGV4dC9BdG9taWNTdHJpbmdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21p
Y1N0cmluZ0ltcGwuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBVbmljb2Rl
OwogY2xhc3MgQXRvbWljU3RyaW5nVGFibGVMb2NrZXIgOiBwdWJsaWMgTG9ja0hvbGRlciB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXRvbWljU3RyaW5nVGFibGVMb2NrZXIpOwogCi0gICAg
c3RhdGljIFN0YXRpY0xvY2sgc19zdHJpbmdUYWJsZUxvY2s7CisgICAgc3RhdGljIExvY2sgc19z
dHJpbmdUYWJsZUxvY2s7CiBwdWJsaWM6CiAgICAgQXRvbWljU3RyaW5nVGFibGVMb2NrZXIoKQog
ICAgICAgICA6IExvY2tIb2xkZXIoJnNfc3RyaW5nVGFibGVMb2NrKQpAQCAtNTUsNyArNTUsNyBA
QCBjbGFzcyBBdG9taWNTdHJpbmdUYWJsZUxvY2tlciA6IHB1YmxpYyBMb2NrSG9sZGVyIHsKICAg
ICB9CiB9OwogCi1TdGF0aWNMb2NrIEF0b21pY1N0cmluZ1RhYmxlTG9ja2VyOjpzX3N0cmluZ1Rh
YmxlTG9jazsKK0xvY2sgQXRvbWljU3RyaW5nVGFibGVMb2NrZXI6OnNfc3RyaW5nVGFibGVMb2Nr
OwogCiAjZWxzZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcu
Y3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmNwcAppbmRleCA1ODA3OTk3NjUy
OGQyMzA5ZWNhMDRjZTliNzQxYzI1YjhkYzRiYzNmLi5lYzEwOTE5NDE2ZGRhMGUwZmM1NjE2ZDY2
ZDVmZmRiYTdkZjhkZjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1Zp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5jcHAKQEAgLTIxNSw3
ICsyMTUsNyBAQCBTdHJpbmdWaWV3OjpVbmRlcmx5aW5nU3RyaW5nOjpVbmRlcmx5aW5nU3RyaW5n
KGNvbnN0IFN0cmluZ0ltcGwmIHN0cmluZykKIHsKIH0KIAotc3RhdGljIFN0YXRpY0xvY2sgdW5k
ZXJseWluZ1N0cmluZ3NNdXRleDsKK3N0YXRpYyBMb2NrIHVuZGVybHlpbmdTdHJpbmdzTXV0ZXg7
CiAKIHN0YXRpYyBIYXNoTWFwPGNvbnN0IFN0cmluZ0ltcGwqLCBTdHJpbmdWaWV3OjpVbmRlcmx5
aW5nU3RyaW5nKj4mIHVuZGVybHlpbmdTdHJpbmdzKCkKIHsKQEAgLTIyNyw3ICsyMjcsNyBAQCB2
b2lkIFN0cmluZ1ZpZXc6OmludmFsaWRhdGUoY29uc3QgU3RyaW5nSW1wbCYgc3RyaW5nVG9CZURl
c3Ryb3llZCkKIHsKICAgICBVbmRlcmx5aW5nU3RyaW5nKiB1bmRlcmx5aW5nU3RyaW5nOwogICAg
IHsKLSAgICAgICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sodW5kZXJseWluZ1N0
cmluZ3NNdXRleCk7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKHVuZGVybHlp
bmdTdHJpbmdzTXV0ZXgpOwogICAgICAgICB1bmRlcmx5aW5nU3RyaW5nID0gdW5kZXJseWluZ1N0
cmluZ3MoKS50YWtlKCZzdHJpbmdUb0JlRGVzdHJveWVkKTsKICAgICAgICAgaWYgKCF1bmRlcmx5
aW5nU3RyaW5nKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjQ0LDcgKzI0NCw3IEBAIGJvb2wg
U3RyaW5nVmlldzo6dW5kZXJseWluZ1N0cmluZ0lzVmFsaWQoKSBjb25zdAogdm9pZCBTdHJpbmdW
aWV3OjphZG9wdFVuZGVybHlpbmdTdHJpbmcoVW5kZXJseWluZ1N0cmluZyogdW5kZXJseWluZ1N0
cmluZykKIHsKICAgICBpZiAobV91bmRlcmx5aW5nU3RyaW5nKSB7Ci0gICAgICAgIHN0ZDo6bG9j
a19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHVuZGVybHlpbmdTdHJpbmdzTXV0ZXgpOworICAgICAg
ICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayh1bmRlcmx5aW5nU3RyaW5nc011dGV4KTsKICAg
ICAgICAgaWYgKCEtLW1fdW5kZXJseWluZ1N0cmluZy0+cmVmQ291bnQpIHsKICAgICAgICAgICAg
IGlmIChtX3VuZGVybHlpbmdTdHJpbmctPmlzVmFsaWQpIHsKICAgICAgICAgICAgICAgICB1bmRl
cmx5aW5nU3RyaW5ncygpLnJlbW92ZSgmbV91bmRlcmx5aW5nU3RyaW5nLT5zdHJpbmcpOwpAQCAt
MjYxLDcgKzI2MSw3IEBAIHZvaWQgU3RyaW5nVmlldzo6c2V0VW5kZXJseWluZ1N0cmluZyhjb25z
dCBTdHJpbmdJbXBsKiBzdHJpbmcpCiAgICAgaWYgKCFzdHJpbmcpCiAgICAgICAgIHVuZGVybHlp
bmdTdHJpbmcgPSBudWxscHRyOwogICAgIGVsc2UgewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8
U3RhdGljTG9jaz4gbG9jayh1bmRlcmx5aW5nU3RyaW5nc011dGV4KTsKKyAgICAgICAgc3RkOjps
b2NrX2d1YXJkPExvY2s+IGxvY2sodW5kZXJseWluZ1N0cmluZ3NNdXRleCk7CiAgICAgICAgIGF1
dG8gcmVzdWx0ID0gdW5kZXJseWluZ1N0cmluZ3MoKS5hZGQoc3RyaW5nLCBudWxscHRyKTsKICAg
ICAgICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5KQogICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9y
LT52YWx1ZSA9IG5ldyBVbmRlcmx5aW5nU3RyaW5nKCpzdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwIGIvU291cmNlL1dURi93dGYv
dW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCmluZGV4IGY1ZTMyYTFiZmYzZjk3YTk2YzE1NGMy
MWQ3NjZkYWFkNDNiNTdkZTUuLmZmY2Q1ZjcxYzgwMWI1ZDJkZWY3ZDlmZTQ4Njc0MWI3OWU4ZWI4
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKQEAgLTQ5
LDcgKzQ5LDcgQEAgc3RhdGljIFVDb2xsYXRvciogY2FjaGVkQ29sbGF0b3I7CiBzdGF0aWMgY2hh
ciogY2FjaGVkQ29sbGF0b3JMb2NhbGU7CiBzdGF0aWMgYm9vbCBjYWNoZWRDb2xsYXRvclNob3Vs
ZFNvcnRMb3dlcmNhc2VGaXJzdDsKIAotc3RhdGljIFN0YXRpY0xvY2sgY2FjaGVkQ29sbGF0b3JN
dXRleDsKK3N0YXRpYyBMb2NrIGNhY2hlZENvbGxhdG9yTXV0ZXg7CiAKICNpZiAhKE9TKERBUldJ
TikgJiYgVVNFKENGKSkKIApAQCAtMTA2LDcgKzEwNiw3IEBAIENvbGxhdG9yOjpDb2xsYXRvcihj
b25zdCBjaGFyKiBsb2NhbGUsIGJvb2wgc2hvdWxkU29ydExvd2VyY2FzZUZpcnN0KQogICAgIFVF
cnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOwogCiAgICAgewotICAgICAgICBzdGQ6Omxv
Y2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhjYWNoZWRDb2xsYXRvck11dGV4KTsKKyAgICAgICAg
c3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2soY2FjaGVkQ29sbGF0b3JNdXRleCk7CiAgICAgICAg
IGlmIChjYWNoZWRDb2xsYXRvciAmJiBsb2NhbGVzTWF0Y2goY2FjaGVkQ29sbGF0b3JMb2NhbGUs
IGxvY2FsZSkgJiYgY2FjaGVkQ29sbGF0b3JTaG91bGRTb3J0TG93ZXJjYXNlRmlyc3QgPT0gc2hv
dWxkU29ydExvd2VyY2FzZUZpcnN0KSB7CiAgICAgICAgICAgICBtX2NvbGxhdG9yID0gY2FjaGVk
Q29sbGF0b3I7CiAgICAgICAgICAgICBtX2xvY2FsZSA9IGNhY2hlZENvbGxhdG9yTG9jYWxlOwpA
QCAtMTM2LDcgKzEzNiw3IEBAIENvbGxhdG9yOjpDb2xsYXRvcihjb25zdCBjaGFyKiBsb2NhbGUs
IGJvb2wgc2hvdWxkU29ydExvd2VyY2FzZUZpcnN0KQogCiBDb2xsYXRvcjo6fkNvbGxhdG9yKCkK
IHsKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhjYWNoZWRDb2xsYXRvck11
dGV4KTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhjYWNoZWRDb2xsYXRvck11dGV4
KTsKICAgICBpZiAoY2FjaGVkQ29sbGF0b3IpIHsKICAgICAgICAgdWNvbF9jbG9zZShjYWNoZWRD
b2xsYXRvcik7CiAgICAgICAgIGZhc3RGcmVlKGNhY2hlZENvbGxhdG9yTG9jYWxlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwCmluZGV4IDc2MDEwOTg1NTAwM2RhMGMyZWIzMjc5OTYxNzli
MTYzZDI5ODM4MjUuLmQzMWQ5NTdhMzFiYmNhOTI3Mzc4Mzg0YWIwMTUyZjcwY2Y2YzE1MWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAKKysrIGIvU291cmNl
L1dURi93dGYvd2luL0xhbmd1YWdlV2luLmNwcApAQCAtMzQsNyArMzQsNyBAQAogCiBuYW1lc3Bh
Y2UgV1RGIHsKIAotc3RhdGljIFN0YXRpY0xvY2sgcGxhdGZvcm1MYW5ndWFnZU11dGV4Oworc3Rh
dGljIExvY2sgcGxhdGZvcm1MYW5ndWFnZU11dGV4OwogCiBzdGF0aWMgU3RyaW5nIGxvY2FsZUlu
Zm8oTENUWVBFIGxvY2FsZVR5cGUsIGNvbnN0IFN0cmluZyYgZmFsbGJhY2spCiB7CkBAIC01Niw3
ICs1Niw3IEBAIHN0YXRpYyBTdHJpbmcgbG9jYWxlSW5mbyhMQ1RZUEUgbG9jYWxlVHlwZSwgY29u
c3QgU3RyaW5nJiBmYWxsYmFjaykKIAogc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkK
IHsKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhwbGF0Zm9ybUxhbmd1YWdl
TXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKHBsYXRmb3JtTGFuZ3VhZ2VN
dXRleCk7CiAKICAgICBzdGF0aWMgU3RyaW5nIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlOwogICAg
IGlmICghY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2UuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcAppbmRleCA0NjFlMDFhOTNiM2Q5
N2E3ODk4MjNkNTNjOTIzZTFlOTBkNTNhZGZmLi40OTE1ZmNjMDNjMmY0ZDNkNGZhNzNlMjM3MGQw
OWQwMWE0MTlmZjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlLmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHN0YXRpYyBib29sIHJldHJpZXZlVGV4
dFJlc3VsdEZyb21EYXRhYmFzZShTUUxpdGVEYXRhYmFzZSYgZGIsIGNvbnN0IFN0cmluZyYgcXVl
CiB9CiAKIC8vIEZJWE1FOiBtb3ZlIGFsbCBndWlkLXJlbGF0ZWQgZnVuY3Rpb25zIHRvIGEgRGF0
YWJhc2VWZXJzaW9uVHJhY2tlciBjbGFzcy4KLXN0YXRpYyBTdGF0aWNMb2NrIGd1aWRNdXRleDsK
K3N0YXRpYyBMb2NrIGd1aWRNdXRleDsKIAogc3RhdGljIEhhc2hNYXA8RGF0YWJhc2VHVUlELCBT
dHJpbmc+JiBndWlkVG9WZXJzaW9uTWFwKCkKIHsKQEAgLTIwNCw3ICsyMDQsNyBAQCBEYXRhYmFz
ZTo6RGF0YWJhc2UoRGF0YWJhc2VDb250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgZQogICAgICwgbV9kYXRhYmFzZUF1dGhvcml6ZXIoRGF0YWJhc2VBdXRo
b3JpemVyOjpjcmVhdGUodW5xdWFsaWZpZWRJbmZvVGFibGVOYW1lKSkKIHsKICAgICB7Ci0gICAg
ICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrZXIoZ3VpZE11dGV4KTsKKyAgICAg
ICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2tlcihndWlkTXV0ZXgpOwogCiAgICAgICAgIG1f
Z3VpZCA9IGd1aWRGb3JPcmlnaW5BbmROYW1lKHNlY3VyaXR5T3JpZ2luKCkuc2VjdXJpdHlPcmln
aW4oKS0+dG9TdHJpbmcoKSwgbmFtZSk7CiAgICAgICAgIGd1aWRUb0RhdGFiYXNlTWFwKCkuZW5z
dXJlKG1fZ3VpZCwgW10gewpAQCAtMzU2LDcgKzM1Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IERh
dGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeShib29sIHNob3VsZFNldFZlcnNpb25Jbk5ld0Rh
dGFiCiAKICAgICBTdHJpbmcgY3VycmVudFZlcnNpb247CiAgICAgewotICAgICAgICBzdGQ6Omxv
Y2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9ja2VyKGd1aWRNdXRleCk7CisgICAgICAgIHN0ZDo6bG9j
a19ndWFyZDxMb2NrPiBsb2NrZXIoZ3VpZE11dGV4KTsKIAogICAgICAgICBhdXRvIGVudHJ5ID0g
Z3VpZFRvVmVyc2lvbk1hcCgpLmZpbmQobV9ndWlkKTsKICAgICAgICAgaWYgKGVudHJ5ICE9IGd1
aWRUb1ZlcnNpb25NYXAoKS5lbmQoKSkgewpAQCAtNDQ1LDcgKzQ0NSw3IEBAIHZvaWQgRGF0YWJh
c2U6OmNsb3NlRGF0YWJhc2UoKQogICAgIERhdGFiYXNlVHJhY2tlcjo6c2luZ2xldG9uKCkucmVt
b3ZlT3BlbkRhdGFiYXNlKCp0aGlzKTsKIAogICAgIHsKLSAgICAgICAgc3RkOjpsb2NrX2d1YXJk
PFN0YXRpY0xvY2s+IGxvY2tlcihndWlkTXV0ZXgpOworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8
TG9jaz4gbG9ja2VyKGd1aWRNdXRleCk7CiAKICAgICAgICAgYXV0byBpdCA9IGd1aWRUb0RhdGFi
YXNlTWFwKCkuZmluZChtX2d1aWQpOwogICAgICAgICBBU1NFUlQoaXQgIT0gZ3VpZFRvRGF0YWJh
c2VNYXAoKS5lbmQoKSk7CkBAIC01MDMsMTQgKzUwMywxNCBAQCB2b2lkIERhdGFiYXNlOjpzZXRF
eHBlY3RlZFZlcnNpb24oY29uc3QgU3RyaW5nJiB2ZXJzaW9uKQogCiBTdHJpbmcgRGF0YWJhc2U6
OmdldENhY2hlZFZlcnNpb24oKSBjb25zdAogewotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNM
b2NrPiBsb2NrZXIoZ3VpZE11dGV4KTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9ja2Vy
KGd1aWRNdXRleCk7CiAKICAgICByZXR1cm4gZ3VpZFRvVmVyc2lvbk1hcCgpLmdldChtX2d1aWQp
Lmlzb2xhdGVkQ29weSgpOwogfQogCiB2b2lkIERhdGFiYXNlOjpzZXRDYWNoZWRWZXJzaW9uKGNv
bnN0IFN0cmluZyYgYWN0dWFsVmVyc2lvbikKIHsKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGlj
TG9jaz4gbG9ja2VyKGd1aWRNdXRleCk7CisgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2tl
cihndWlkTXV0ZXgpOwogCiAgICAgdXBkYXRlR1VJRFZlcnNpb25NYXAobV9ndWlkLCBhY3R1YWxW
ZXJzaW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VUcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VUcmFja2VyLmNwcAppbmRleCBhMDgyOGEzNzFiNDY3Zjg3N2Q3OTJlYTdmM2Iz
MGI5YTA4Y2Y4MDA1Li44ZmRhNjJhNmU2M2RmZjRkYzZlNzhmNWVkNTEzOGEyNTVjMTE3ODk0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJh
Y2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZVRyYWNrZXIuY3BwCkBAIC0xMjc1LDggKzEyNzUsOCBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6
ZGVsZXRlRGF0YWJhc2VGaWxlSWZFbXB0eShjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgcmV0dXJu
IFNRTGl0ZUZpbGVTeXN0ZW06OmRlbGV0ZURhdGFiYXNlRmlsZShwYXRoKTsKIH0KIAotc3RhdGlj
IFN0YXRpY0xvY2sgb3BlbkRhdGFiYXNlTG9jazsKLVN0YXRpY0xvY2smIERhdGFiYXNlVHJhY2tl
cjo6b3BlbkRhdGFiYXNlTXV0ZXgoKQorc3RhdGljIExvY2sgb3BlbkRhdGFiYXNlTG9jazsKK0xv
Y2smIERhdGFiYXNlVHJhY2tlcjo6b3BlbkRhdGFiYXNlTXV0ZXgoKQogewogICAgIHJldHVybiBv
cGVuRGF0YWJhc2VMb2NrOwogfQpAQCAtMTMwMCw3ICsxMzAwLDcgQEAgdm9pZCBEYXRhYmFzZVRy
YWNrZXI6OnNldENsaWVudChEYXRhYmFzZU1hbmFnZXJDbGllbnQqIGNsaWVudCkKICAgICBtX2Ns
aWVudCA9IGNsaWVudDsKIH0KIAotc3RhdGljIFN0YXRpY0xvY2sgbm90aWZpY2F0aW9uTG9jazsK
K3N0YXRpYyBMb2NrIG5vdGlmaWNhdGlvbkxvY2s7CiAKIHVzaW5nIE5vdGlmaWNhdGlvblF1ZXVl
ID0gVmVjdG9yPHN0ZDo6cGFpcjxTZWN1cml0eU9yaWdpbkRhdGEsIFN0cmluZz4+OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIu
aAppbmRleCAyYmQxMTQ3ZjA5MGJiOWE3MzU2NjQ0NmI1YTQ0NjJhMTMxMDViNTg2Li5mN2MwN2I2
NTYxMDYyNzhiYzE0ZmIzOTIyZDlmYjFkZmUyMDlhODM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgKQEAgLTEwMSw3ICsx
MDEsNyBAQCBjbGFzcyBEYXRhYmFzZVRyYWNrZXIgewogICAgIC8vIE1vYmlsZVNhZmFyaSB3aWxs
IGdyYWIgdGhpcyBtdXRleCBvbiB0aGUgbWFpbiB0aHJlYWQgYmVmb3JlIGRpc3BhdGNoaW5nIHRo
ZSB0YXNrIHRvIAogICAgIC8vIGNsZWFuIHVwIHplcm8gYnl0ZSBkYXRhYmFzZSBmaWxlcy4gIEFu
eSBvcGVyYXRpb25zIHRvIG9wZW4gbmV3IGRhdGFiYXNlIHdpbGwgaGF2ZSB0bwogICAgIC8vIHdh
aXQgZm9yIHRoYXQgdGFzayB0byBmaW5pc2ggYnkgd2FpdGluZyBvbiB0aGlzIG11dGV4LgotICAg
IHN0YXRpYyBTdGF0aWNMb2NrJiBvcGVuRGF0YWJhc2VNdXRleCgpOworICAgIHN0YXRpYyBMb2Nr
JiBvcGVuRGF0YWJhc2VNdXRleCgpOwogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2
b2lkIGVtcHR5RGF0YWJhc2VGaWxlc1JlbW92YWxUYXNrV2lsbEJlU2NoZWR1bGVkKCk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW1wdHlEYXRhYmFzZUZpbGVzUmVtb3ZhbFRhc2tE
aWRGaW5pc2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldC5jcHAKaW5kZXggODI4NzEwYzJlZDkzNDU1NDA1OWM3MTViYzcyNzBlNDVkOWY3Mzk1ZS4u
MTU0MzUwMWQ4MGVjNDJjNThhZDBhYmJlZjNlM2VlOGMyNzUxOWE0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKQEAgLTE4NSw5ICsxODUs
OSBAQCBIYXNoU2V0PFdlYlNvY2tldCo+JiBXZWJTb2NrZXQ6OmFsbEFjdGl2ZVdlYlNvY2tldHMo
Y29uc3QgTG9ja0hvbGRlciYpCiAgICAgcmV0dXJuIGFjdGl2ZVdlYlNvY2tldHM7CiB9CiAKLVN0
YXRpY0xvY2smIFdlYlNvY2tldDo6YWxsQWN0aXZlV2ViU29ja2V0c011dGV4KCkKK0xvY2smIFdl
YlNvY2tldDo6YWxsQWN0aXZlV2ViU29ja2V0c011dGV4KCkKIHsKLSAgICBzdGF0aWMgU3RhdGlj
TG9jayBtdXRleDsKKyAgICBzdGF0aWMgTG9jayBtdXRleDsKICAgICByZXR1cm4gbXV0ZXg7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaAppbmRl
eCBkOGE5MGQ5NWVjZTYyNjVjZDg5ZGJiM2E1YTY0ZGJkZjFkNTkxNGQwLi45MDEyMWY3MGQzMDg4
MGMyYTAyZjk2NTgwYWUwNTcyOGZiOGJkZGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCkBAIC02MCw3ICs2MCw3IEBAIGNsYXNzIFdlYlNvY2tl
dCBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlNvY2tldD4sIHB1YmxpYyBFdmVudFRhcmdl
dFdpdGhJbmxpCiAgICAgdmlydHVhbCB+V2ViU29ja2V0KCk7CiAKICAgICBzdGF0aWMgSGFzaFNl
dDxXZWJTb2NrZXQqPiYgYWxsQWN0aXZlV2ViU29ja2V0cyhjb25zdCBMb2NrSG9sZGVyJik7Ci0g
ICAgc3RhdGljIFN0YXRpY0xvY2smIGFsbEFjdGl2ZVdlYlNvY2tldHNNdXRleCgpOworICAgIHN0
YXRpYyBMb2NrJiBhbGxBY3RpdmVXZWJTb2NrZXRzTXV0ZXgoKTsKIAogICAgIGVudW0gU3RhdGUg
ewogICAgICAgICBDT05ORUNUSU5HID0gMCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpj
L1dlYlNjcmlwdE9iamVjdC5tbQppbmRleCA0YjM4Y2I2MGRmYTBjOTczMGE5MjhjZTVkOTIxMTIz
MDI2Mjc1OTY1Li4zOWU1NjY1ZjcxNmVkMGJjYzJiYzQ2MjdlMTk2Njg5MmM1NmViYmQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCkBAIC03MSw3
ICs3MSw3IEBAIHVzaW5nIEpTQzo6bWFrZVNvdXJjZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1zdGF0aWMgU3RhdGljTG9jayBzcGluTG9jazsKK3N0YXRpYyBMb2NrIHNwaW5Mb2NrOwogc3Rh
dGljIENyZWF0ZVdyYXBwZXJGdW5jdGlvbiBjcmVhdGVET01XcmFwcGVyRnVuY3Rpb247CiBzdGF0
aWMgRGlzY29ubmVjdFdpbmRvd1dyYXBwZXJGdW5jdGlvbiBkaXNjb25uZWN0V2luZG93V3JhcHBl
ckZ1bmN0aW9uOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxn
b3JpdGhtUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRo
bVJlZ2lzdHJ5LmNwcAppbmRleCAyMmRjZmNiY2RhZTk1YmIxMWM4ZmI3YmY2OTljZTlkZTNlMjI4
MzMzLi4xODdhMWRhOGUwMDI2MzkyM2Q3MzVjMjA4OGI1ZDFkNTlhYmM3YjMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAKQEAgLTM0
LDcgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgU3RhdGljTG9jayBy
ZWdpc3RyeU11dGV4Oworc3RhdGljIExvY2sgcmVnaXN0cnlNdXRleDsKIAogQ3J5cHRvQWxnb3Jp
dGhtUmVnaXN0cnkmIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5OjpzaW5nbGV0b24oKQogewpAQCAt
NTIsNyArNTIsNyBAQCBzdGQ6Om9wdGlvbmFsPENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI+IENy
eXB0b0FsZ29yaXRobVJlZ2lzdHJ5OjppZGVudGlmaWVyKGNvbgogICAgIGlmIChuYW1lLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHN0ZDo6bG9ja19ndWFy
ZDxTdGF0aWNMb2NrPiBsb2NrKHJlZ2lzdHJ5TXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxM
b2NrPiBsb2NrKHJlZ2lzdHJ5TXV0ZXgpOwogCiAgICAgLy8gRklYTUU6IEhvdyBpcyBpdCBoZWxw
ZnVsIHRvIGNhbGwgaXNvbGF0ZWRDb3B5IG9uIHRoZSBhcmd1bWVudCB0byBmaW5kPwogICAgIGF1
dG8gaWRlbnRpZmllciA9IG1faWRlbnRpZmllcnMuZmluZChuYW1lLmlzb2xhdGVkQ29weSgpKTsK
QEAgLTY0LDcgKzY0LDcgQEAgc3RkOjpvcHRpb25hbDxDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
PiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6aWRlbnRpZmllcihjb24KIAogU3RyaW5nIENyeXB0
b0FsZ29yaXRobVJlZ2lzdHJ5OjpuYW1lKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKIHsKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhyZWdpc3RyeU11
dGV4KTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhyZWdpc3RyeU11dGV4KTsKIAog
ICAgIGF1dG8gY29udHJ1Y3RvciA9IG1fY29uc3RydWN0b3JzLmZpbmQoc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGlkZW50aWZpZXIpKTsKICAgICBpZiAoY29udHJ1Y3RvciA9PSBtX2NvbnN0cnVjdG9y
cy5lbmQoKSkKQEAgLTc1LDcgKzc1LDcgQEAgU3RyaW5nIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5
OjpuYW1lKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcikKIAogUmVmUHRyPENy
eXB0b0FsZ29yaXRobT4gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6OmNyZWF0ZShDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRp
Y0xvY2s+IGxvY2socmVnaXN0cnlNdXRleCk7CisgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxv
Y2socmVnaXN0cnlNdXRleCk7CiAKICAgICBhdXRvIGNvbnRydWN0b3IgPSBtX2NvbnN0cnVjdG9y
cy5maW5kKHN0YXRpY19jYXN0PHVuc2lnbmVkPihpZGVudGlmaWVyKSk7CiAgICAgaWYgKGNvbnRy
dWN0b3IgPT0gbV9jb25zdHJ1Y3RvcnMuZW5kKCkpCkBAIC04Niw3ICs4Niw3IEBAIFJlZlB0cjxD
cnlwdG9BbGdvcml0aG0+IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5OjpjcmVhdGUoQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllCiAKIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6OnJlZ2lzdGVy
QWxnb3JpdGhtKGNvbnN0IFN0cmluZyYgbmFtZSwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBDcnlwdG9BbGdvcml0aG1Db25zdHJ1Y3RvciBjb25zdHJ1Y3RvcikKIHsKLSAg
ICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhyZWdpc3RyeU11dGV4KTsKKyAgICBz
dGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhyZWdpc3RyeU11dGV4KTsKIAogICAgIEFTU0VSVCgh
bV9pZGVudGlmaWVycy5jb250YWlucyhuYW1lKSk7CiAgICAgQVNTRVJUKCFtX2NvbnN0cnVjdG9y
cy5jb250YWlucyhzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaWRlbnRpZmllcikpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcAppbmRleCA1ZmM0Y2IxNjYyMDhmNWZlZjJhYjFlYWYxODhkNTA3NWI4ZjI1NTNmLi40YjFl
ODcyNTc5NTMzZmJmNzg3MTJmZDZkMjNkMmM4MTViMDNlYjM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBA
IC0yMTU0LDcgKzIxNTQsNyBAQCBzdGF0aWMgRXZlbnRUYXJnZXREYXRhTWFwJiBldmVudFRhcmdl
dERhdGFNYXAoKQogICAgIHJldHVybiBtYXA7CiB9CiAKLXN0YXRpYyBTdGF0aWNMb2NrIHNfZXZl
bnRUYXJnZXREYXRhTWFwTG9jazsKK3N0YXRpYyBMb2NrIHNfZXZlbnRUYXJnZXREYXRhTWFwTG9j
azsKIAogRXZlbnRUYXJnZXREYXRhKiBOb2RlOjpldmVudFRhcmdldERhdGEoKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1VSTC5jcHAKaW5kZXggZThiMWIwODJiOWRiY2JmZWI2NjU3OTNkZGZhYzE2N2JiM2Y5
ZDdkNS4uMTU5ZTdmYWE5OGRiYzlhNWRlZjM0YjZhZjUzMTA1ZmZmNmEzMGQzMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9VUkwuY3BwCkBAIC0yNzUsNyArMjc1LDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0UHJv
dG9jb2xJc0dvb2QoU3RyaW5nVmlldyBwcm90b2NvbCkKIAogI2VuZGlmCiAKLXN0YXRpYyBTdGF0
aWNMb2NrIGRlZmF1bHRQb3J0Rm9yUHJvdG9jb2xNYXBGb3JUZXN0aW5nTG9jazsKK3N0YXRpYyBM
b2NrIGRlZmF1bHRQb3J0Rm9yUHJvdG9jb2xNYXBGb3JUZXN0aW5nTG9jazsKIAogdXNpbmcgRGVm
YXVsdFBvcnRGb3JQcm90b2NvbE1hcEZvclRlc3RpbmcgPSBIYXNoTWFwPFN0cmluZywgdWludDE2
X3Q+Owogc3RhdGljIERlZmF1bHRQb3J0Rm9yUHJvdG9jb2xNYXBGb3JUZXN0aW5nKiYgZGVmYXVs
dFBvcnRGb3JQcm90b2NvbE1hcEZvclRlc3RpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKaW5kZXggMTNlOTAyYmU1M2RlNzgyNmNlMDcwNmJl
MzViZDEzNzNjMDQ3YWEwOC4uYmM5NzIwZGVmZThkMGU1ZGVmMWU4ZWZhMGMzM2E4MTljMzU0YTZh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3Bw
CkBAIC01Myw4ICs1Myw3IEBACiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYv
UmVjdXJzaXZlTG9ja0FkYXB0ZXIuaD4KIAotdXNpbmcgUmVjdXJzaXZlU3RhdGljTG9jayA9IFdU
Rjo6UmVjdXJzaXZlTG9ja0FkYXB0ZXI8U3RhdGljTG9jaz47Ci1zdGF0aWMgUmVjdXJzaXZlU3Rh
dGljTG9jayBmb250TG9jazsKK3N0YXRpYyBSZWN1cnNpdmVMb2NrIGZvbnRMb2NrOwogCiAjZW5k
aWYgLy8gUExBVEZPUk0oSU9TKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggOGE0Njg2YWUyNjZhNjdlYmMyMWQwODgwZDMwNmY4
MzI2OGU2YjVjMi4uNTBhMzZhY2NkNWYyODdmYjc0N2Y3MmQ2ZDRiYzZkYjk0OTk3NTI3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApA
QCAtMjA3LDcgKzIwNyw3IEBAIHN0cnVjdCBNZWRpYVBsYXllckZhY3RvcnkgewogCiBzdGF0aWMg
dm9pZCBhZGRNZWRpYUVuZ2luZShDcmVhdGVNZWRpYUVuZ2luZVBsYXllciYmLCBNZWRpYUVuZ2lu
ZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwgTWVkaWFFbmdpbmVPcmln
aW5zSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVD
bGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5zLCBNZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVtKTsK
IAotc3RhdGljIFN0YXRpY0xvY2sgbWVkaWFFbmdpbmVWZWN0b3JMb2NrOworc3RhdGljIExvY2sg
bWVkaWFFbmdpbmVWZWN0b3JMb2NrOwogCiBzdGF0aWMgYm9vbCYgaGF2ZU1lZGlhRW5naW5lc1Zl
Y3RvcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUXVpY2tM
b29rLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNrTG9vay5tbQppbmRleCBm
M2IwZGY2ZDE1MTM0YWZmZDM5YWUwYWUxZWFlYTIzOTBlMzJjMDdjLi4zN2JhZDAwYjQzNzIyZWFj
NWQ4NGQwZTEzZTg1ODExODZmNzY4YmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvUXVpY2tMb29rLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9R
dWlja0xvb2subW0KQEAgLTQ2LDcgKzQ2LDcgQEAgTlNTZXQgKlFMUHJldmlld0dldFN1cHBvcnRl
ZE1JTUVUeXBlc1NldCgpCiAgICAgcmV0dXJuIHNldDsKIH0KIAotc3RhdGljIFN0YXRpY0xvY2sg
cWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeUxvY2s7CitzdGF0aWMgTG9jayBxbFByZXZpZXdD
b252ZXJ0ZXJEaWN0aW9uYXJ5TG9jazsKIAogc3RhdGljIE5TTXV0YWJsZURpY3Rpb25hcnkgKlFM
UHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnkoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQubW0K
aW5kZXggOTZmY2JmMWM4ZTU3NGRlYjRhYTQzMGQxNmFhZmY2NzQwYmZkOGQwNS4uZTM5YzRlYzMz
ZjU1ZGUzZmFkOGEyOTMyYmJlMGE1MTJkNzRhZjNkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50
Lm1tCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50
OjpoeXN0ZXJlc2lzVXBkYXRlZChQQUw6Okh5c3RlcmVzaXNTdGF0ZSBzdGF0CiAKIH0KIAotc3Rh
dGljIFN0YXRpY0xvY2sgdHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrOwor
c3RhdGljIExvY2sgdHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrOwogCiBz
dGF0aWMgTlNVSW50ZWdlciB0cmFuc2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllcjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XZWJDb3JlVGhyZWFk
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XZWJDb3JlVGhyZWFkLm1tCmlu
ZGV4IGU4NmZlODdjZTAyY2QwMWQ2Mjc0NTBjMDgwZDI0NWQ0ZTJkZTM2N2YuLmIyODFlY2RhNzk5
NmExMDk2MDNjMDU0ZWRkNzI1ODgzYTY4M2Q1OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy93YWsvV2ViQ29yZVRocmVhZC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3Mvd2FrL1dlYkNvcmVUaHJlYWQubW0KQEAgLTkxLDExICs5MSw5IEBAIGV4dGVy
biB2b2lkIE5TUG9wQXV0b3JlbGVhc2VQb29sKE5TQXV0b3JlbGVhc2VQb29sTWFyayB0b2tlbik7
CiB9CiAjZW5kaWYKIAotdXNpbmcgU3RhdGljUmVjdXJzaXZlTG9jayA9IFdURjo6UmVjdXJzaXZl
TG9ja0FkYXB0ZXI8U3RhdGljTG9jaz47Ci0KLXN0YXRpYyBTdGF0aWNSZWN1cnNpdmVMb2NrIHdl
YkxvY2s7Ci1zdGF0aWMgU3RhdGljTG9jayB3ZWJUaHJlYWRSZWxlYXNlTG9jazsKLXN0YXRpYyBT
dGF0aWNSZWN1cnNpdmVMb2NrIHdlYkNvcmVSZWxlYXNlTG9jazsKK3N0YXRpYyBSZWN1cnNpdmVM
b2NrIHdlYkxvY2s7CitzdGF0aWMgTG9jayB3ZWJUaHJlYWRSZWxlYXNlTG9jazsKK3N0YXRpYyBS
ZWN1cnNpdmVMb2NrIHdlYkNvcmVSZWxlYXNlTG9jazsKIAogc3RhdGljIE5TQXV0b3JlbGVhc2VQ
b29sTWFyayBhdXRvcmVsZWFzZVBvb2xNYXJrOwogc3RhdGljIENGUnVuTG9vcFJlZiB3ZWJUaHJl
YWRSdW5Mb29wOwpAQCAtMTE3LDcgKzExNSw3IEBAIHN0YXRpYyBDRk11dGFibGVBcnJheVJlZiBX
ZWJUaHJlYWRSZWxlYXNlT2JqQXJyYXk7CiAKIHN0YXRpYyB2b2lkIE1haW5UaHJlYWRBZG9wdEFu
ZFJlbGVhc2UoaWQgb2JqKTsKIAotc3RhdGljIFN0YXRpY0xvY2sgZGVsZWdhdGVMb2NrOworc3Rh
dGljIExvY2sgZGVsZWdhdGVMb2NrOwogc3RhdGljIFN0YXRpY0NvbmRpdGlvbiBkZWxlZ2F0ZUNv
bmRpdGlvbjsKIHN0YXRpYyBOU0ludm9jYXRpb24qIGRlbGVnYXRlSW52b2NhdGlvbjsKIHN0YXRp
YyBDRlJ1bkxvb3BTb3VyY2VSZWYgZGVsZWdhdGVTb3VyY2UgPSBudWxscHRyOwpAQCAtMTI4LDcg
KzEyNiw3IEBAIHN0YXRpYyBCT09MIHNlbmRpbmdEZWxlZ2F0ZU1lc3NhZ2U7CiAKIHN0YXRpYyBD
RlJ1bkxvb3BPYnNlcnZlclJlZiBtYWluUnVuTG9vcEF1dG9VbmxvY2tPYnNlcnZlcjsKIAotc3Rh
dGljIFN0YXRpY0xvY2sgc3RhcnR1cExvY2s7CitzdGF0aWMgTG9jayBzdGFydHVwTG9jazsKIHN0
YXRpYyBTdGF0aWNDb25kaXRpb24gc3RhcnR1cENvbmRpdGlvbjsKIAogc3RhdGljIFdlYlRocmVh
ZENvbnRleHQqIHdlYlRocmVhZENvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3Mvd2FrL1dlYkNvcmVUaHJlYWRSdW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL3dhay9XZWJDb3JlVGhyZWFkUnVuLmNwcAppbmRleCBlZmVmYzIyNmJmMzllNzcy
ZTUzNDRkZTY5NzBmOThhZjEzNTQ5YmY5Li4yMzNmZDNjYTVhMDQ3YmUxZjNiMTRiZjJjNzdiNDRi
MmYyZjIxMWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dl
YkNvcmVUaHJlYWRSdW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsv
V2ViQ29yZVRocmVhZFJ1bi5jcHAKQEAgLTExMSw3ICsxMTEsNyBAQCBleHRlcm4gIkMiIHsKIAog
dHlwZWRlZiBXVEY6OlZlY3RvcjxXZWJUaHJlYWRCbG9jaz4gV2ViVGhyZWFkUnVuUXVldWU7CiAK
LXN0YXRpYyBTdGF0aWNMb2NrIHJ1blF1ZXVlTXV0ZXg7CitzdGF0aWMgTG9jayBydW5RdWV1ZU11
dGV4Owogc3RhdGljIENGUnVuTG9vcFNvdXJjZVJlZiBydW5Tb3VyY2U7CiBzdGF0aWMgV2ViVGhy
ZWFkUnVuUXVldWUqIHJ1blF1ZXVlOwogCkBAIC0xMjQsNyArMTI0LDcgQEAgc3RhdGljIHZvaWQg
SGFuZGxlUnVuU291cmNlKHZvaWQgKmluZm8pCiAKICAgICBXZWJUaHJlYWRSdW5RdWV1ZSBxdWV1
ZUNvcHk7CiAgICAgewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhy
dW5RdWV1ZU11dGV4KTsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2socnVuUXVl
dWVNdXRleCk7CiAgICAgICAgIHF1ZXVlQ29weSA9ICpydW5RdWV1ZTsKICAgICAgICAgcnVuUXVl
dWUtPmNsZWFyKCk7CiAgICAgfQpAQCAtMTQ4LDcgKzE0OCw3IEBAIHN0YXRpYyB2b2lkIF9XZWJU
aHJlYWRSdW4odm9pZCAoXmJsb2NrKSh2b2lkKSwgYm9vbCBzeW5jaHJvbm91cykKICAgICAgICAg
c3RhdGUgPSBuZXcgV2ViVGhyZWFkQmxvY2tTdGF0ZTsKIAogICAgIHsKLSAgICAgICAgc3RkOjps
b2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2socnVuUXVldWVNdXRleCk7CisgICAgICAgIHN0ZDo6
bG9ja19ndWFyZDxMb2NrPiBsb2NrKHJ1blF1ZXVlTXV0ZXgpOwogICAgICAgICBydW5RdWV1ZS0+
YXBwZW5kKFdlYlRocmVhZEJsb2NrKGJsb2NrLCBzdGF0ZSkpOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5Mb29wQ0YuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5Mb29wQ0YuY3Bw
CmluZGV4IGYwODMyN2ZlZDcyMDQwZThhNDgxM2EyYzM1YTNmYzVhNDMyNGEzNTMuLmNmZDZhYjBi
YWVlYTkyMmZmODIyYjNjMDJjNDczZjIyOGIzYjUyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTG9hZGVyUnVuTG9vcENGLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5jcHAKQEAgLTQxLDcg
KzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgQ0ZSdW5Mb29wUmVmIGxvYWRl
clJ1bkxvb3BPYmplY3QgPSAwOwogCi1zdGF0aWMgU3RhdGljTG9jayBsb2FkZXJSdW5Mb29wTXV0
ZXg7CitzdGF0aWMgTG9jayBsb2FkZXJSdW5Mb29wTXV0ZXg7CiBzdGF0aWMgU3RhdGljQ29uZGl0
aW9uIGxvYWRlclJ1bkxvb3BDb25kaXRpb25WYXJpYWJsZTsKIAogc3RhdGljIHZvaWQgZW1wdHlQ
ZXJmb3JtKHZvaWQqKSAKQEAgLTUyLDEyICs1MiwxMiBAQCBDRlJ1bkxvb3BSZWYgbG9hZGVyUnVu
TG9vcCgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIHN0ZDo6dW5pcXVl
X2xvY2s8U3RhdGljTG9jaz4gbG9jayhsb2FkZXJSdW5Mb29wTXV0ZXgpOworICAgIHN0ZDo6dW5p
cXVlX2xvY2s8TG9jaz4gbG9jayhsb2FkZXJSdW5Mb29wTXV0ZXgpOwogCiAgICAgaWYgKCFsb2Fk
ZXJSdW5Mb29wT2JqZWN0KSB7CiAgICAgICAgIFRocmVhZDo6Y3JlYXRlKCJXZWJDb3JlOiBDRk5l
dHdvcmsgTG9hZGVyIiwgW10gewogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHN0ZDo6
bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKGxvYWRlclJ1bkxvb3BNdXRleCk7CisgICAgICAg
ICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sobG9hZGVyUnVuTG9vcE11dGV4KTsK
IAogICAgICAgICAgICAgICAgIGxvYWRlclJ1bkxvb3BPYmplY3QgPSBDRlJ1bkxvb3BHZXRDdXJy
ZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9DdXJsQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybENvbnRleHQuY3BwCmluZGV4IDVjNTA0Y2VjN2JiZjZiYjNjNTg4ZjIwYmEzYTM5ZGU5NjRh
NjQ2NmMuLmZiODA0M2RjMDhkMTlhNTQ5NWY3NzhkZGQ1MmRjNmNhNzEzZDQ5YTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNw
cApAQCAtMTk5LDExICsxOTksMTEgQEAgdm9pZCBDdXJsU2hhcmVIYW5kbGU6OnVubG9ja0NhbGxi
YWNrKENVUkwqLCBjdXJsX2xvY2tfZGF0YSBkYXRhLCB2b2lkKikKICAgICAgICAgbXV0ZXgtPnVu
bG9jaygpOwogfQogCi1TdGF0aWNMb2NrKiBDdXJsU2hhcmVIYW5kbGU6Om11dGV4Rm9yKGN1cmxf
bG9ja19kYXRhIGRhdGEpCitMb2NrKiBDdXJsU2hhcmVIYW5kbGU6Om11dGV4Rm9yKGN1cmxfbG9j
a19kYXRhIGRhdGEpCiB7Ci0gICAgc3RhdGljIFN0YXRpY0xvY2sgY29va2llTXV0ZXg7Ci0gICAg
c3RhdGljIFN0YXRpY0xvY2sgZG5zTXV0ZXg7Ci0gICAgc3RhdGljIFN0YXRpY0xvY2sgc2hhcmVN
dXRleDsKKyAgICBzdGF0aWMgTG9jayBjb29raWVNdXRleDsKKyAgICBzdGF0aWMgTG9jayBkbnNN
dXRleDsKKyAgICBzdGF0aWMgTG9jayBzaGFyZU11dGV4OwogCiAgICAgc3dpdGNoIChkYXRhKSB7
CiAgICAgY2FzZSBDVVJMX0xPQ0tfREFUQV9DT09LSUU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5oCmluZGV4IDZiYTcwZTExMmEyZmI1
OWNmN2Y3MDQ4ZWExMjNkMmE2MWM3Nzc0ZGUuLmVkMzllNTlhMThkZTAzOTc1NTYyMjI1MmYxNzVl
Njg0NjVmOGMyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsQ29udGV4dC5oCkBAIC04OSw3ICs4OSw3IEBAIGNsYXNzIEN1cmxTaGFyZUhhbmRs
ZSB7CiBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGxvY2tDYWxsYmFjayhDVVJMKiwgY3VybF9s
b2NrX2RhdGEsIGN1cmxfbG9ja19hY2Nlc3MsIHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCB1bmxv
Y2tDYWxsYmFjayhDVVJMKiwgY3VybF9sb2NrX2RhdGEsIHZvaWQqKTsKLSAgICBzdGF0aWMgU3Rh
dGljTG9jayogbXV0ZXhGb3IoY3VybF9sb2NrX2RhdGEpOworICAgIHN0YXRpYyBMb2NrKiBtdXRl
eEZvcihjdXJsX2xvY2tfZGF0YSk7CiAKICAgICBDVVJMU0gqIG1fc2hhcmVIYW5kbGUgeyBudWxs
cHRyIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0
ZURhdGFiYXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2VUcmFja2VyLmNwcAppbmRleCAzNzU0YTRjNDhhZmNiN2QwNzY5OTMzNGYzMWM3OGQ5
ZWM4ZmM1NTJiLi5lMmFlMGNlN2Q0NjlhZWIxNTA5OWYwODI3MzdjYzNhYTQ5ZjMzNWEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2VUcmFja2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2VUcmFj
a2VyLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgU1FMaXRlRGF0YWJhc2VUcmFja2Vy
IHsKIHN0YXRpYyBTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQqIHNfc3RhdGljU1FMaXRlRGF0
YWJhc2VUcmFja2VyQ2xpZW50ID0gbnVsbHB0cjsKIHN0YXRpYyB1bnNpZ25lZCBzX3RyYW5zYWN0
aW9uSW5Qcm9ncmVzc0NvdW50ZXIgPSAwOwogCi1zdGF0aWMgU3RhdGljTG9jayB0cmFuc2FjdGlv
bkluUHJvZ3Jlc3NNdXRleDsKK3N0YXRpYyBMb2NrIHRyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4
OwogCiB2b2lkIHNldENsaWVudChTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQqIGNsaWVudCkK
IHsKQEAgLTUwLDcgKzUwLDcgQEAgdm9pZCBpbmNyZW1lbnRUcmFuc2FjdGlvbkluUHJvZ3Jlc3ND
b3VudCgpCiAgICAgaWYgKCFzX3N0YXRpY1NRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sodHJh
bnNhY3Rpb25JblByb2dyZXNzTXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2Nr
KHRyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4KTsKIAogICAgIHNfdHJhbnNhY3Rpb25JblByb2dy
ZXNzQ291bnRlcisrOwogICAgIGlmIChzX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc0NvdW50ZXIgPT0g
MSkKQEAgLTYyLDcgKzYyLDcgQEAgdm9pZCBkZWNyZW1lbnRUcmFuc2FjdGlvbkluUHJvZ3Jlc3ND
b3VudCgpCiAgICAgaWYgKCFzX3N0YXRpY1NRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sodHJh
bnNhY3Rpb25JblByb2dyZXNzTXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2Nr
KHRyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4KTsKIAogICAgIEFTU0VSVChzX3RyYW5zYWN0aW9u
SW5Qcm9ncmVzc0NvdW50ZXIpOwogICAgIHNfdHJhbnNhY3Rpb25JblByb2dyZXNzQ291bnRlci0t
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdS
ZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1Jl
Z2lzdHJ5LmNwcAppbmRleCBmZGEzZDExNjk3OGIzNjBmM2RjYTcxNjg3NTg4MTY2YTU4ZTNmZWZm
Li41MjQxNmNjM2NhMjAzM2I1YWJmZWRlNDViOWNmMmJjNzk3ZGJlMTY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcApA
QCAtOTAsNyArOTAsNyBAQCBzdHJ1Y3QgVGV4dEVuY29kaW5nTmFtZUhhc2ggewogdXNpbmcgVGV4
dEVuY29kaW5nTmFtZU1hcCA9IEhhc2hNYXA8Y29uc3QgY2hhciosIGNvbnN0IGNoYXIqLCBUZXh0
RW5jb2RpbmdOYW1lSGFzaD47CiB1c2luZyBUZXh0Q29kZWNNYXAgPSBIYXNoTWFwPGNvbnN0IGNo
YXIqLCBOZXdUZXh0Q29kZWNGdW5jdGlvbj47CiAKLXN0YXRpYyBTdGF0aWNMb2NrIGVuY29kaW5n
UmVnaXN0cnlNdXRleDsKK3N0YXRpYyBMb2NrIGVuY29kaW5nUmVnaXN0cnlNdXRleDsKIAogc3Rh
dGljIFRleHRFbmNvZGluZ05hbWVNYXAqIHRleHRFbmNvZGluZ05hbWVNYXA7CiBzdGF0aWMgVGV4
dENvZGVjTWFwKiB0ZXh0Q29kZWNNYXA7CkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIHZvaWQg
cHJ1bmVCbGFja2xpc3RlZENvZGVjcygpCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBidWlsZEJh
c2VUZXh0Q29kZWNNYXBzKGNvbnN0IHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiYpCitzdGF0
aWMgdm9pZCBidWlsZEJhc2VUZXh0Q29kZWNNYXBzKGNvbnN0IHN0ZDo6bG9ja19ndWFyZDxMb2Nr
PiYpCiB7CiAgICAgQVNTRVJUKCF0ZXh0Q29kZWNNYXApOwogICAgIEFTU0VSVCghdGV4dEVuY29k
aW5nTmFtZU1hcCk7CkBAIC0yNDQsNyArMjQ0LDcgQEAgc3RhdGljIHZvaWQgZXh0ZW5kVGV4dENv
ZGVjTWFwcygpCiAKIHN0ZDo6dW5pcXVlX3B0cjxUZXh0Q29kZWM+IG5ld1RleHRDb2RlYyhjb25z
dCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nKQogewotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNM
b2NrPiBsb2NrKGVuY29kaW5nUmVnaXN0cnlNdXRleCk7CisgICAgc3RkOjpsb2NrX2d1YXJkPExv
Y2s+IGxvY2soZW5jb2RpbmdSZWdpc3RyeU11dGV4KTsKIAogICAgIEFTU0VSVCh0ZXh0Q29kZWNN
YXApOwogICAgIGF1dG8gcmVzdWx0ID0gdGV4dENvZGVjTWFwLT5maW5kKGVuY29kaW5nLm5hbWUo
KSk7CkBAIC0yNTcsNyArMjU3LDcgQEAgY29uc3QgY2hhciogYXRvbWljQ2Fub25pY2FsVGV4dEVu
Y29kaW5nTmFtZShjb25zdCBjaGFyKiBuYW1lKQogICAgIGlmICghbmFtZSB8fCAhbmFtZVswXSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9j
az4gbG9jayhlbmNvZGluZ1JlZ2lzdHJ5TXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2Nr
PiBsb2NrKGVuY29kaW5nUmVnaXN0cnlNdXRleCk7CiAKICAgICBpZiAoIXRleHRFbmNvZGluZ05h
bWVNYXApCiAgICAgICAgIGJ1aWxkQmFzZVRleHRDb2RlY01hcHMobG9jayk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKaW5kZXggNGMyMWZhY2Y2Y2ExZTVlNDJhZTUzYzI4
OTQyYzc2MmZlNjMzN2FlNy4uZjlhNzkwMzQzOTEzY2QwOWVlYTgzMzk2NWVlMmQwZTFkZWUzZGI1
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcApAQCAtNTMsNyArNTMs
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBTdGF0aWNMb2NrIHRocmVhZFNl
dE11dGV4Oworc3RhdGljIExvY2sgdGhyZWFkU2V0TXV0ZXg7CiAKIHN0YXRpYyBIYXNoU2V0PFdv
cmtlclRocmVhZCo+JiB3b3JrZXJUaHJlYWRzKCkKIHsKQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGlj
IEhhc2hTZXQ8V29ya2VyVGhyZWFkKj4mIHdvcmtlclRocmVhZHMoKQogCiB1bnNpZ25lZCBXb3Jr
ZXJUaHJlYWQ6OndvcmtlclRocmVhZENvdW50KCkKIHsKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3Rh
dGljTG9jaz4gbG9jayh0aHJlYWRTZXRNdXRleCk7CisgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+
IGxvY2sodGhyZWFkU2V0TXV0ZXgpOwogCiAgICAgcmV0dXJuIHdvcmtlclRocmVhZHMoKS5zaXpl
KCk7CiB9CkBAIC0xMTksMTQgKzExOSwxNCBAQCBXb3JrZXJUaHJlYWQ6OldvcmtlclRocmVhZChj
b25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdAogICAg
IFVOVVNFRF9QQVJBTShjb25uZWN0aW9uUHJveHkpOwogI2VuZGlmCiAKLSAgICBzdGQ6OmxvY2tf
Z3VhcmQ8U3RhdGljTG9jaz4gbG9jayh0aHJlYWRTZXRNdXRleCk7CisgICAgc3RkOjpsb2NrX2d1
YXJkPExvY2s+IGxvY2sodGhyZWFkU2V0TXV0ZXgpOwogCiAgICAgd29ya2VyVGhyZWFkcygpLmFk
ZCh0aGlzKTsKIH0KIAogV29ya2VyVGhyZWFkOjp+V29ya2VyVGhyZWFkKCkKIHsKLSAgICBzdGQ6
OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayh0aHJlYWRTZXRNdXRleCk7CisgICAgc3RkOjps
b2NrX2d1YXJkPExvY2s+IGxvY2sodGhyZWFkU2V0TXV0ZXgpOwogCiAgICAgQVNTRVJUKHdvcmtl
clRocmVhZHMoKS5jb250YWlucyh0aGlzKSk7CiAgICAgd29ya2VyVGhyZWFkcygpLnJlbW92ZSh0
aGlzKTsKQEAgLTMxNSw3ICszMTUsNyBAQCB2b2lkIFdvcmtlclRocmVhZDo6c3RvcChXVEY6OkZ1
bmN0aW9uPHZvaWQoKT4mJiBzdG9wcGVkQ2FsbGJhY2spCiAKIHZvaWQgV29ya2VyVGhyZWFkOjpy
ZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnlJbkFsbFRocmVhZHMoKQogewotICAgIHN0ZDo6bG9j
a19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHRocmVhZFNldE11dGV4KTsKKyAgICBzdGQ6OmxvY2tf
Z3VhcmQ8TG9jaz4gbG9jayh0aHJlYWRTZXRNdXRleCk7CiAKICAgICBmb3IgKGF1dG8qIHdvcmtl
clRocmVhZCA6IHdvcmtlclRocmVhZHMoKSkgewogICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxv
b3AoKS5wb3N0VGFzayhbXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25D
b250ZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViRml4
ZWRQb3NpdGlvbkNvbnRlbnQubW0KaW5kZXggZjI3ZGJhNzgzYWZiNWNjOTEwOTM1ZDRmNTlkOTFl
NGUwNjdiOGQ2MC4uMmY4MDgyNDhjYzRiM2E0Y2M5M2U5OGI2ODE2MWVhNzNiNTNlYzcwMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQ
b3NpdGlvbkNvbnRlbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1
cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQubW0KQEAgLTQ5LDcgKzQ5LDcgQEAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotc3RhdGljIFN0YXRp
Y0xvY2sgd2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jazsKK3N0YXRpYyBMb2NrIHdlYkZp
eGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2s7CiAKIHN0cnVjdCBWaWV3cG9ydENvbnN0cmFpbmVk
TGF5ZXJEYXRhIHsKICAgICBWaWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJEYXRhKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01JbnRlcm5hbC5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01JbnRlcm5hbC5tbQppbmRleCA2YjE3OWViNTE0NGIyZGJi
YjczOGFlZjNmNzdiNDcyMDFlZGVlZDg0Li5lMDIxYzViODkwNzczMmNhNThmNGI2ODE0YjQ5ODhl
NzdmMjM4MjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSW50
ZXJuYWwubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUludGVybmFsLm1t
CkBAIC00NCw3ICs0NCw3IEBACiAvLyBXcmFwcGluZyBXZWJDb3JlIGltcGxlbWVudGF0aW9uIG9i
amVjdHMKIAogI2lmZGVmIE5FRURTX1dSQVBQRVJfQ0FDSEVfTE9DSwotc3RhdGljIFN0YXRpY0xv
Y2sgd3JhcHBlckNhY2hlTG9jazsKK3N0YXRpYyBMb2NrIHdyYXBwZXJDYWNoZUxvY2s7CiAjZW5k
aWYKIAogc3RhdGljIEhhc2hNYXA8RE9NT2JqZWN0SW50ZXJuYWwqLCBOU09iamVjdCAqPiYgd3Jh
cHBlckNhY2hlKCkKQEAgLTU2LDcgKzU2LDcgQEAgc3RhdGljIEhhc2hNYXA8RE9NT2JqZWN0SW50
ZXJuYWwqLCBOU09iamVjdCAqPiYgd3JhcHBlckNhY2hlKCkKIE5TT2JqZWN0KiBnZXRET01XcmFw
cGVyKERPTU9iamVjdEludGVybmFsKiBpbXBsKQogewogI2lmZGVmIE5FRURTX1dSQVBQRVJfQ0FD
SEVfTE9DSwotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHdyYXBwZXJDYWNo
ZUxvY2spOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKHdyYXBwZXJDYWNoZUxvY2sp
OwogI2VuZGlmCiAgICAgcmV0dXJuIHdyYXBwZXJDYWNoZSgpLmdldChpbXBsKTsKIH0KQEAgLTY0
LDcgKzY0LDcgQEAgTlNPYmplY3QqIGdldERPTVdyYXBwZXIoRE9NT2JqZWN0SW50ZXJuYWwqIGlt
cGwpCiB2b2lkIGFkZERPTVdyYXBwZXIoTlNPYmplY3QqIHdyYXBwZXIsIERPTU9iamVjdEludGVy
bmFsKiBpbXBsKQogewogI2lmZGVmIE5FRURTX1dSQVBQRVJfQ0FDSEVfTE9DSwotICAgIHN0ZDo6
bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHdyYXBwZXJDYWNoZUxvY2spOworICAgIHN0ZDo6
bG9ja19ndWFyZDxMb2NrPiBsb2NrKHdyYXBwZXJDYWNoZUxvY2spOwogI2VuZGlmCiAgICAgd3Jh
cHBlckNhY2hlKCkuc2V0KGltcGwsIHdyYXBwZXIpOwogfQpAQCAtNzIsNyArNzIsNyBAQCB2b2lk
IGFkZERPTVdyYXBwZXIoTlNPYmplY3QqIHdyYXBwZXIsIERPTU9iamVjdEludGVybmFsKiBpbXBs
KQogdm9pZCByZW1vdmVET01XcmFwcGVyKERPTU9iamVjdEludGVybmFsKiBpbXBsKQogewogI2lm
ZGVmIE5FRURTX1dSQVBQRVJfQ0FDSEVfTE9DSwotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNM
b2NrPiBsb2NrKHdyYXBwZXJDYWNoZUxvY2spOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBs
b2NrKHdyYXBwZXJDYWNoZUxvY2spOwogI2VuZGlmCiAgICAgd3JhcHBlckNhY2hlKCkucmVtb3Zl
KGltcGwpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0UXVh
cnR6Q29yZUFkZGl0aW9ucy9DQVZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
S2l0UXVhcnR6Q29yZUFkZGl0aW9ucy9DQVZpZXcuY3BwCmluZGV4IDVlMzU3MDI4NTI1YTFkY2Zj
YzA5ZDliMmM0MmY0Njg2NWU3NjY0MGEuLjk0MDc3OTEyYTk5MTY0MTE3ZDBjNjgxY2NjYzA2Njg2
ZTA0YzRkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1YXJ0
ekNvcmVBZGRpdGlvbnMvQ0FWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NBVmlldy5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgY2xh
c3MgQ0FWaWV3OjpIYW5kbGUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SGFuZGxlPiB7
CiAgICAgQ0FWaWV3KiBtX3ZpZXc7CiB9OwogCi1zdGF0aWMgU3RhdGljTG9jayBnbG9iYWxTdGF0
ZUxvY2s7CitzdGF0aWMgTG9jayBnbG9iYWxTdGF0ZUxvY2s7CiBzdGF0aWMgSFdORCBtZXNzYWdl
V2luZG93Owogc3RhdGljIGNvbnN0IHdjaGFyX3QgbWVzc2FnZVdpbmRvd0NsYXNzTmFtZVtdID0g
TCJDQVZpZXdNZXNzYWdlV2luZG93IjsKIApAQCAtMTA2LDcgKzEwNiw3IEBAIHN0YXRpYyBIV05E
IGNyZWF0ZU1lc3NhZ2VXaW5kb3coKQogCiB2b2lkIENBVmlldzo6cmVsZWFzZUFsbEQzRFJlc291
cmNlcygpCiB7Ci0gICAgc3RhdGljIFN0YXRpY0xvY2sgbG9jazsKKyAgICBzdGF0aWMgTG9jayBs
b2NrOwogCiAgICAgaWYgKCFsb2NrLnRyeUxvY2soKSkgewogICAgICAgICAvLyBBbm90aGVyIHRo
cmVhZCBpcyBjdXJyZW50bHkgcmVsZWFzaW5nIDNEIHJlc291cmNlcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJMb2NhbGl6YWJsZVN0cmluZ3MuY3BwCmluZGV4IDJlMzExZWUw
N2ZmNmEwMGE2OWRiNmU1M2Y1MmFhZjEzNTgwYzg4Y2MuLmM1NTYwN2Y2Mjc0YjlkNTZlNzgxMjlh
NDM4MDJhZDBhODgwY2MxNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkxvY2FsaXphYmxlU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
TG9jYWxpemFibGVTdHJpbmdzLmNwcApAQCAtNDUsNyArNDUsNyBAQCBXZWJMb2NhbGl6YWJsZVN0
cmluZ3NCdW5kbGUgV2ViS2l0TG9jYWxpemFibGVTdHJpbmdzQnVuZGxlID0geyAiY29tLmFwcGxl
LldlYktpdAogCiB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBMb2NhbGl6ZWRTdHJpbmcqPiBMb2Nh
bGl6ZWRTdHJpbmdNYXA7CiAKLXN0YXRpYyBTdGF0aWNMb2NrIG1haW5CdW5kbGVMb2NTdHJpbmdz
TG9jazsKK3N0YXRpYyBMb2NrIG1haW5CdW5kbGVMb2NTdHJpbmdzTG9jazsKIAogc3RhdGljIExv
Y2FsaXplZFN0cmluZ01hcCYgbWFpbkJ1bmRsZUxvY1N0cmluZ3MoKQogewpAQCAtNTMsNyArNTMs
NyBAQCBzdGF0aWMgTG9jYWxpemVkU3RyaW5nTWFwJiBtYWluQnVuZGxlTG9jU3RyaW5ncygpCiAg
ICAgcmV0dXJuIG1hcDsKIH0KIAotc3RhdGljIFN0YXRpY0xvY2sgZnJhbWV3b3JrTG9jU3RyaW5n
c0xvY2s7CitzdGF0aWMgTG9jayBmcmFtZXdvcmtMb2NTdHJpbmdzTG9jazsKIAogc3RhdGljIExv
Y2FsaXplZFN0cmluZ01hcCBmcmFtZXdvcmtMb2NTdHJpbmdzKCkKIHsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkZDFjZTBiNTk3YTNiNGMxZDA4
NDJiMTgwMTg3Yjk0MzBjMmIyMjM2Li45ZTdkMTJlZmIyNmQxOGIyNjcxMTM5NjkwMTU3MThmOGE3
MjEzNWZkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMTgtMDQtMDUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRl
YUBnbWFpbC5jb20+CisKKyAgICAgICAgW1dURl0gUmVtb3ZlIFN0YXRpY0xvY2sKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDMzMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
SmF2YVNjcmlwdFRocmVhZGluZy5jcHA6CisKIDIwMTgtMDQtMDUgIFphbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTGF5b3V0UmVsb2FkZWRdIEZpbmQgdGhlIGNvcnJl
Y3QgbGVmdCBlZGdlIGZvciBhIGxpbmUgd2hlbiBmbG9hdGluZyBib3hlcyBhcmUgaW4gcGFyZW50
IGZvcm1hdHRpbmcgY29udGV4dC4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0ph
dmFTY3JpcHRUaHJlYWRpbmcuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvSmF2YVNjcmlwdFRo
cmVhZGluZy5jcHAKaW5kZXggODBhMDgyYmQxZjZjMjZkODUzY2JhYjcxYjUyMWIxMWVjYjQ2ZTdk
OS4uNWY5ODkyOWMzMWJjMzM2ZWUwNjg2NDdlNmYxNTM0NDY0NzQwZmUzNCAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAK
IHN0YXRpYyBjb25zdCBzaXplX3QgamF2YVNjcmlwdFRocmVhZHNDb3VudCA9IDQ7CiBzdGF0aWMg
Ym9vbCBqYXZhU2NyaXB0VGhyZWFkc1Nob3VsZFRlcm1pbmF0ZTsKIHN0YXRpYyBKU0NvbnRleHRH
cm91cFJlZiBqYXZhU2NyaXB0VGhyZWFkc0dyb3VwOwotc3RhdGljIFN0YXRpY0xvY2sgamF2YVNj
cmlwdFRocmVhZHNMb2NrOworc3RhdGljIExvY2sgamF2YVNjcmlwdFRocmVhZHNMb2NrOwogCiB0
eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPFRocmVhZD4+IFRocmVhZFNldDsKIHN0YXRpYyBUaHJlYWRT
ZXQmIGphdmFTY3JpcHRUaHJlYWRzKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337273</attachid>
            <date>2018-04-05 10:01:53 -0700</date>
            <delta_ts>2018-04-05 10:03:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184332-20180406020151.patch</filename>
            <type>text/plain</type>
            <size>67626</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
OWM4NDI2MTdjNWQyMTZjZWU5ZTQ5NzQ4MmQzMzI4MWY1ODFjNDNlLi4wMzk1NTFhMDFhMzEwZmE5
Y2EzNzlmZTc1Y2ExNTQxMzgyNzFmZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOC0wNC0wNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbV1RGXSBSZW1vdmUgU3RhdGljTG9jaworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MzMyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNWYWx1ZS5tbToKKyAgICAg
ICAgKGhhbmRlckZvclN0cnVjdFRhZyk6CisgICAgICAgICogQVBJL0pTVmlydHVhbE1hY2hpbmUu
bW06CisgICAgICAgICgrW0pTVk1XcmFwcGVyQ2FjaGUgYWRkV3JhcHBlcjpmb3JKU0NvbnRleHRH
cm91cFJlZjpdKToKKyAgICAgICAgKCtbSlNWTVdyYXBwZXJDYWNoZSB3cmFwcGVyRm9ySlNDb250
ZXh0R3JvdXBSZWY6XSk6CisgICAgICAgICogQVBJL2dsaWIvSlNDVmlydHVhbE1hY2hpbmUuY3Bw
OgorICAgICAgICAoYWRkV3JhcHBlcik6CisgICAgICAgIChyZW1vdmVXcmFwcGVyKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvdGVzdG1hc20uY3BwOgorICAgICAgICAqIGIzL2Fpci90ZXN0YWlyLmNw
cDoKKyAgICAgICAgKiBiMy90ZXN0YjMuY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL1N1cGVyU2Ft
cGxlci5jcHA6CisgICAgICAgICogZGZnL0RGR0NvbW1vbi5jcHA6CisgICAgICAgICogZGZnL0RG
R0NvbW1vbkRhdGEuY3BwOgorICAgICAgICAqIGR5bmJlbmNoLmNwcDoKKyAgICAgICAgKiBoZWFw
L01hY2hpbmVTdGFja01hcmtlci5jcHA6CisgICAgICAgIChKU0M6Ok1hY2hpbmVUaHJlYWRzOjp0
cnlDb3B5T3RoZXJUaHJlYWRTdGFja3MpOgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvY29j
b2EvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0Q29jb2EubW06CisgICAgICAgIChJbnNwZWN0b3I6
OlJlbW90ZVRhcmdldEhhbmRsZVJ1blNvdXJjZUdsb2JhbCk6CisgICAgICAgIChJbnNwZWN0b3I6
OlJlbW90ZVRhcmdldFF1ZXVlVGFza09uR2xvYmFsUXVldWUpOgorICAgICAgICAqIGludGVycHJl
dGVyL0NMb29wU3RhY2suY3BwOgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VQcm92aWRlci5jcHA6
CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFzZS5jcHA6CisgICAgICAgICogcHJv
ZmlsZXIvUHJvZmlsZXJVSUQuY3BwOgorICAgICAgICAoSlNDOjpQcm9maWxlcjo6VUlEOjpjcmVh
dGUpOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6Om51
bWJlcmluZ1N5c3RlbXNGb3JMb2NhbGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmNwcDoK
KyAgICAgICAgKiBydW50aW1lL0pTTG9jay5oOgorICAgICAgICAqIHJ1bnRpbWUvU2FtcGxpbmdQ
cm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OnJlZ2lzdGVyRm9y
UmVwb3J0QXRFeGl0KToKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKiB3YXNt
L1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuY3BwOgorCiAyMDE4LTA0LTA0ICBNYXJrIExhbSAgPG1h
cmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgcG9pbnRlciBwcm9maWxpbmcgc3VwcG9y
dCB0byB0aGUgREZHIGFuZCBzdXBwb3J0aW5nIGZpbGVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA2NDc3YTA5NjA2YjIwZDFk
Yjk3NjgyMjY5NzNjYzdjMGJmOTdkMGZjLi43ZTEwZDhkMGM0ZGJlNDc1MDA0M2NjMjgwMDM0NjA5
YWQ3MTdiNzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDE4LTA0LTA1ICBZdXN1a2UgU3V6dWtp
ICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtXVEZdIFJlbW92ZSBTdGF0aWNM
b2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQz
MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3cs
IFdURjo6U3RhdGljTG9jayBpcyBgdXNpbmcgU3RhdGljTG9jayA9IExvY2tgLiBMb2NrIGp1c3Qg
d29ya3MKKyAgICAgICAgaW4gZWl0aGVyIHN0YXRpYyBzdG9yYWdlIGFuZCBkeW5hbWljIHN0b3Jh
Z2UuIFJlbW92ZSBTdGF0aWNMb2NrIGFuZAorICAgICAgICBhbHdheXMgdXNlIExvY2suCisKKyAg
ICAgICAgV2UgYWxzbyByZW1vdmUgU3RhdGljV29yZExvY2sgYW5kIFN0YXRpY1JlYWRXcml0ZUxv
Y2suCisKKyAgICAgICAgKiB3dGYvSGFzaFRhYmxlLmNwcDoKKyAgICAgICAgKFdURjo6SGFzaFRh
YmxlU3RhdHM6OnJlY29yZENvbGxpc2lvbkF0Q291bnQpOgorICAgICAgICAoV1RGOjpIYXNoVGFi
bGVTdGF0czo6ZHVtcFN0YXRzKToKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuY3BwOgorICAgICAg
ICAoV1RGOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKiB3dGYvTG9jay5oOgor
ICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmNwcDoKKyAgICAgICAgKFdURjo6ZGlzcGF0Y2hGdW5j
dGlvbnNGcm9tTWFpblRocmVhZCk6CisgICAgICAgIChXVEY6OmNhbGxPbk1haW5UaHJlYWQpOgor
ICAgICAgICAqIHd0Zi9QYXJraW5nTG90LmNwcDoKKyAgICAgICAgKiB3dGYvUmVjdXJzaXZlTG9j
a0FkYXB0ZXIuaDoKKyAgICAgICAgQWRkIFdURjo6UmVjdXJzaXZlTG9jaywgd2hpY2ggaXMgUmVj
dXJzaXZlTG9ja0FkYXB0ZXI8TG9jaz4uCisKKyAgICAgICAgKiB3dGYvU3RhY2tTdGF0cy5jcHA6
CisgICAgICAgIChXVEY6OlN0YWNrU3RhdHM6OkNoZWNrUG9pbnQ6OkNoZWNrUG9pbnQpOgorICAg
ICAgICAoV1RGOjpTdGFja1N0YXRzOjpDaGVja1BvaW50Ojp+Q2hlY2tQb2ludCk6CisgICAgICAg
IChXVEY6OlN0YWNrU3RhdHM6OnByb2JlKToKKyAgICAgICAgKFdURjo6U3RhY2tTdGF0czo6TGF5
b3V0Q2hlY2tQb2ludDo6TGF5b3V0Q2hlY2tQb2ludCk6CisgICAgICAgIChXVEY6OlN0YWNrU3Rh
dHM6OkxheW91dENoZWNrUG9pbnQ6On5MYXlvdXRDaGVja1BvaW50KToKKyAgICAgICAgKiB3dGYv
U3RhY2tTdGF0cy5oOgorICAgICAgICAqIHd0Zi9UaHJlYWRNZXNzYWdlLmNwcDoKKyAgICAgICAg
KFdURjo6c2VuZE1lc3NhZ2VTY29wZWQpOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmdQdGhyZWFk
cy5jcHA6CisgICAgICAgICogd3RmL1RocmVhZGluZ1dpbi5jcHA6CisgICAgICAgICogd3RmL1dv
cmRMb2NrLmg6CisgICAgICAgICogd3RmL2NmL0xhbmd1YWdlQ0YuY3BwOgorICAgICAgICAoV1RG
OjpsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdURjo6cGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKiB3dGYvZHRvYS5jcHA6CisgICAgICAg
ICogd3RmL3RleHQvQXRvbWljU3RyaW5nSW1wbC5jcHA6CisgICAgICAgICogd3RmL3RleHQvU3Ry
aW5nVmlldy5jcHA6CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OmludmFsaWRhdGUpOgorICAg
ICAgICAoV1RGOjpTdHJpbmdWaWV3OjphZG9wdFVuZGVybHlpbmdTdHJpbmcpOgorICAgICAgICAo
V1RGOjpTdHJpbmdWaWV3OjpzZXRVbmRlcmx5aW5nU3RyaW5nKToKKyAgICAgICAgKiB3dGYvdW5p
Y29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwOgorICAgICAgICAoV1RGOjpDb2xsYXRvcjo6Q29sbGF0
b3IpOgorICAgICAgICAoV1RGOjpDb2xsYXRvcjo6fkNvbGxhdG9yKToKKyAgICAgICAgKiB3dGYv
d2luL0xhbmd1YWdlV2luLmNwcDoKKyAgICAgICAgKFdURjo6cGxhdGZvcm1MYW5ndWFnZSk6CisK
KyAgICAgICAgKiB3dGYvSGFzaFRhYmxlLmNwcDoKKyAgICAgICAgKFdURjo6SGFzaFRhYmxlU3Rh
dHM6OnJlY29yZENvbGxpc2lvbkF0Q291bnQpOgorICAgICAgICAoV1RGOjpIYXNoVGFibGVTdGF0
czo6ZHVtcFN0YXRzKToKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuY3BwOgorICAgICAgICAoV1RG
Ojp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKiB3dGYvTG9jay5oOgorICAgICAg
ICAqIHd0Zi9NYWluVGhyZWFkLmNwcDoKKyAgICAgICAgKFdURjo6ZGlzcGF0Y2hGdW5jdGlvbnNG
cm9tTWFpblRocmVhZCk6CisgICAgICAgIChXVEY6OmNhbGxPbk1haW5UaHJlYWQpOgorICAgICAg
ICAqIHd0Zi9QYXJraW5nTG90LmNwcDoKKyAgICAgICAgKiB3dGYvUmVhZFdyaXRlTG9jay5oOgor
ICAgICAgICAqIHd0Zi9SZWN1cnNpdmVMb2NrQWRhcHRlci5oOgorICAgICAgICAqIHd0Zi9TdGFj
a1N0YXRzLmNwcDoKKyAgICAgICAgKFdURjo6U3RhY2tTdGF0czo6Q2hlY2tQb2ludDo6Q2hlY2tQ
b2ludCk6CisgICAgICAgIChXVEY6OlN0YWNrU3RhdHM6OkNoZWNrUG9pbnQ6On5DaGVja1BvaW50
KToKKyAgICAgICAgKFdURjo6U3RhY2tTdGF0czo6cHJvYmUpOgorICAgICAgICAoV1RGOjpTdGFj
a1N0YXRzOjpMYXlvdXRDaGVja1BvaW50OjpMYXlvdXRDaGVja1BvaW50KToKKyAgICAgICAgKFdU
Rjo6U3RhY2tTdGF0czo6TGF5b3V0Q2hlY2tQb2ludDo6fkxheW91dENoZWNrUG9pbnQpOgorICAg
ICAgICAqIHd0Zi9TdGFja1N0YXRzLmg6CisgICAgICAgICogd3RmL1RocmVhZE1lc3NhZ2UuY3Bw
OgorICAgICAgICAoV1RGOjpzZW5kTWVzc2FnZVNjb3BlZCk6CisgICAgICAgICogd3RmL1RocmVh
ZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nV2luLmNwcDoKKyAgICAg
ICAgKiB3dGYvV29yZExvY2suaDoKKyAgICAgICAgKiB3dGYvY2YvTGFuZ3VhZ2VDRi5jcHA6Cisg
ICAgICAgIChXVEY6Omxhbmd1YWdlUHJlZmVyZW5jZXNEaWRDaGFuZ2UpOgorICAgICAgICAoV1RG
OjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAgICAqIHd0Zi9kdG9hLmNw
cDoKKyAgICAgICAgKiB3dGYvdGV4dC9BdG9taWNTdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKiB3
dGYvdGV4dC9TdHJpbmdWaWV3LmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nVmlldzo6aW52YWxp
ZGF0ZSk6CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OmFkb3B0VW5kZXJseWluZ1N0cmluZyk6
CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OnNldFVuZGVybHlpbmdTdHJpbmcpOgorICAgICAg
ICAqIHd0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHA6CisgICAgICAgIChXVEY6OkNvbGxh
dG9yOjpDb2xsYXRvcik6CisgICAgICAgIChXVEY6OkNvbGxhdG9yOjp+Q29sbGF0b3IpOgorICAg
ICAgICAqIHd0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwOgorICAgICAgICAoV1RGOjpwbGF0Zm9ybUxh
bmd1YWdlKToKKwogMjAxOC0wNC0wNCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNv
bT4KIAogICAgICAgICBGYWlsdXJlcyBmcm9tIG1hY2ggcG9ydCByZWZlcmVuY2UgaGFuZGxpbmcg
c2hvdWxkIGJlIGZhdGFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQ4NTNhYWU0ZGFiNjhmYjg5NmM1N2ZkN2Yy
MjhjY2QwOGYzNzc2ZS4uYzE2YTU1OGQwNTlmODU5N2FjNGYxYmUyOGZjMjBjMWM4OTQzMDZlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE4LTA0LTA1ICBZdXN1a2UgU3V6dWtpICA8
dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtXVEZdIFJlbW92ZSBTdGF0aWNMb2Nr
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQzMzIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBiZWhh
dmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpEYXRhYmFzZSk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXJpZnkpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YWJhc2U6OmNsb3NlRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6Omdl
dENhY2hlZFZlcnNpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OnNldENh
Y2hlZFZlcnNpb24pOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFj
a2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6b3BlbkRhdGFiYXNl
TXV0ZXgpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmg6
CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXQ6OmFsbEFjdGl2ZVdlYlNvY2tldHNNdXRleCk6CisgICAgICAgICog
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oOgorICAgICAgICAqIGJyaWRnZS9vYmpjL1dl
YlNjcmlwdE9iamVjdC5tbToKKyAgICAgICAgKiBjcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUmVnaXN0
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6OmlkZW50
aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6Om5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6cmVnaXN0ZXJBbGdvcml0
aG0pOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9VUkwuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9RdWlja0xvb2subW06CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlNRTGl0ZURhdGFiYXNl
VHJhY2tlckNsaWVudC5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mvd2FrL1dlYkNvcmVUaHJl
YWQubW06CisgICAgICAgICogcGxhdGZvcm0vaW9zL3dhay9XZWJDb3JlVGhyZWFkUnVuLmNwcDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpsb2FkZXJSdW5Mb29wKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ3VybENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybFNoYXJlSGFuZGxl
OjptdXRleEZvcik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0
Lmg6CisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZVRyYWNrZXI6OmluY3JlbWVudFRyYW5zYWN0
aW9uSW5Qcm9ncmVzc0NvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlVHJh
Y2tlcjo6ZGVjcmVtZW50VHJhbnNhY3Rpb25JblByb2dyZXNzQ291bnQpOgorICAgICAgICAqIHBs
YXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
YnVpbGRCYXNlVGV4dENvZGVjTWFwcyk6CisgICAgICAgIChXZWJDb3JlOjpuZXdUZXh0Q29kZWMp
OgorICAgICAgICAoV2ViQ29yZTo6YXRvbWljQ2Fub25pY2FsVGV4dEVuY29kaW5nTmFtZSk6Cisg
ICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJU
aHJlYWQ6OldvcmtlclRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6On5X
b3JrZXJUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpyZWxlYXNlRmFz
dE1hbGxvY0ZyZWVNZW1vcnlJbkFsbFRocmVhZHMpOgorCiAyMDE4LTA0LTA0ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJSVEMgZGF0YSBjaGFubmVsIG9u
bHkgYXBwbGljYXRpb25zIHJlcXVpcmUgY2FwdHVyZSBwZXJtaXNzaW9ucyBmb3IgZGlyZWN0IGNv
bm5lY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKaW5kZXggNjBmZjc2MTA4YzVhZmUw
ZTVhZmM1MzkwNzU5NGQ5MjAyNzc4ZTU2Ni4uNjQzZTFiODcwZDg0NWI5MjRiNDNjODA4MDgwZGZh
ZDRkOWNkY2ZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDE4LTA0LTA1ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisg
ICAgICAgIFtXVEZdIFJlbW92ZSBTdGF0aWNMb2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQzMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25D
b250ZW50Lm1tOgorCiAyMDE4LTAzLTI4ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byBvdmVycmlkZSB0aGUgc2NyZWVuIHNpemUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBkOTYyYzhkYzQyY2Q0NGYzNzMzODhkMjEw
NTU1ZWJmYWVjZTNmYWIwLi5hNTJmZTIzM2EzNzNhZDY2ZTQ2ODZkOGY0NmJlY2YzNzFhMzczZDk0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTgtMDQt
MDUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW1dU
Rl0gUmVtb3ZlIFN0YXRpY0xvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4NDMzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogRE9NL0RPTUludGVybmFsLm1tOgorICAgICAgICAoZ2V0RE9NV3JhcHBl
cik6CisgICAgICAgIChhZGRET01XcmFwcGVyKToKKyAgICAgICAgKHJlbW92ZURPTVdyYXBwZXIp
OgorCiAyMDE4LTA0LTA0ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIEZhaWx1cmVzIGZyb20gbWFjaCBwb3J0IHJlZmVyZW5jZSBoYW5kbGluZyBzaG91bGQg
YmUgZmF0YWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCA2ZTM2NWU5ZTZkNzQwZWEy
M2EyNjhlNTA5ZWIwYWNlNmMxYTA0YjBmLi5hODVmYmRiZDRiNzgzODk3NWI0YjBkMGJmMjczYjhl
ZWUyNjgwYjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTgtMDQtMDUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAg
ICAgICAgW1dURl0gUmVtb3ZlIFN0YXRpY0xvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDMzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucy9DQVZpZXcu
Y3BwOgorICAgICAgICAoV0tRQ0E6OkNBVmlldzo6cmVsZWFzZUFsbEQzRFJlc291cmNlcyk6Cisg
ICAgICAgICogV2ViTG9jYWxpemFibGVTdHJpbmdzLmNwcDoKKwogMjAxOC0wNC0wMyAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERyb3AgTWFpbkZyYW1lIGNsYXNz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KaW5kZXggYzgxMGYxNGM0NzJmYWE3MTZh
ZWNkYzJlMjQ4ZTY3ODUwNmQyMDcxOS4uZThhZDUyZWY0M2Y3ZjgzMGExMmUyZDFmM2M0ODRjYzA1
ZTUzOWI0YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1t
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5tbQpAQCAtMTExNSw3ICsx
MTE1LDcgQEAgc3RhdGljIFN0cnVjdEhhbmRsZXJzKiBjcmVhdGVTdHJ1Y3RIYW5kbGVyTWFwKCkK
IAogc3RhdGljIFN0cnVjdFRhZ0hhbmRsZXIqIGhhbmRlckZvclN0cnVjdFRhZyhjb25zdCBjaGFy
KiBlbmNvZGVkVHlwZSkKIHsKLSAgICBzdGF0aWMgU3RhdGljTG9jayBoYW5kZXJGb3JTdHJ1Y3RU
YWdMb2NrOworICAgIHN0YXRpYyBMb2NrIGhhbmRlckZvclN0cnVjdFRhZ0xvY2s7CiAgICAgTG9j
a0hvbGRlciBsb2NrSG9sZGVyKCZoYW5kZXJGb3JTdHJ1Y3RUYWdMb2NrKTsKIAogICAgIHN0YXRp
YyBTdHJ1Y3RIYW5kbGVycyogc3RydWN0SGFuZGxlcnMgPSBjcmVhdGVTdHJ1Y3RIYW5kbGVyTWFw
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hp
bmUubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hpbmUubW0KaW5k
ZXggZTdjOWFmOGE5YTZhOTIyMzNlYmY0NmViNTU0MzA5OGE0NGYwZmY0MC4uOWZkNzM0NmZjYWEz
OGIxZWU3NTllZDY0NWZlNGJmMDdjNjVlOWE0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbQpAQCAtNDIsNyArNDIsNyBAQAogCiBzdGF0aWMgTlNN
YXBUYWJsZSAqZ2xvYmFsV3JhcHBlckNhY2hlID0gMDsKIAotc3RhdGljIFN0YXRpY0xvY2sgd3Jh
cHBlckNhY2hlTXV0ZXg7CitzdGF0aWMgTG9jayB3cmFwcGVyQ2FjaGVNdXRleDsKIAogc3RhdGlj
IHZvaWQgaW5pdFdyYXBwZXJDYWNoZSgpCiB7CkBAIC02OCwxMyArNjgsMTMgQEAgQGltcGxlbWVu
dGF0aW9uIEpTVk1XcmFwcGVyQ2FjaGUKIAogKyAodm9pZClhZGRXcmFwcGVyOihKU1ZpcnR1YWxN
YWNoaW5lICopd3JhcHBlciBmb3JKU0NvbnRleHRHcm91cFJlZjooSlNDb250ZXh0R3JvdXBSZWYp
Z3JvdXAKIHsKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayh3cmFwcGVyQ2Fj
aGVNdXRleCk7CisgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sod3JhcHBlckNhY2hlTXV0
ZXgpOwogICAgIE5TTWFwSW5zZXJ0KHdyYXBwZXJDYWNoZSgpLCBncm91cCwgd3JhcHBlcik7CiB9
CiAKICsgKEpTVmlydHVhbE1hY2hpbmUgKil3cmFwcGVyRm9ySlNDb250ZXh0R3JvdXBSZWY6KEpT
Q29udGV4dEdyb3VwUmVmKWdyb3VwCiB7Ci0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+
IGxvY2sod3JhcHBlckNhY2hlTXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2Nr
KHdyYXBwZXJDYWNoZU11dGV4KTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNWaXJ0dWFsTWFj
aGluZSAqPihOU01hcEdldCh3cmFwcGVyQ2FjaGUoKSwgZ3JvdXApKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ1ZpcnR1YWxNYWNoaW5lLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWaXJ0dWFsTWFjaGluZS5jcHAKaW5k
ZXggZjk3YzFkYjZiYWFjMjYxMDAwMjkyMTViMDUyOTQzNzVjM2Y2MWQ0ZC4uYzA2MWFmZWYxODhh
ODMzOTBlYWQ0YzExYzA2ZmEzODExMWM1ODJmMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9nbGliL0pTQ1ZpcnR1YWxNYWNoaW5lLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL2dsaWIvSlNDVmlydHVhbE1hY2hpbmUuY3BwCkBAIC00Nyw3ICs0Nyw3IEBA
IHN0cnVjdCBfSlNDVmlydHVhbE1hY2hpbmVQcml2YXRlIHsKIAogV0VCS0lUX0RFRklORV9UWVBF
KEpTQ1ZpcnR1YWxNYWNoaW5lLCBqc2NfdmlydHVhbF9tYWNoaW5lLCBHX1RZUEVfT0JKRUNUKQog
Ci1zdGF0aWMgU3RhdGljTG9jayB3cmFwcGVyQ2FjaGVNdXRleDsKK3N0YXRpYyBMb2NrIHdyYXBw
ZXJDYWNoZU11dGV4OwogCiBzdGF0aWMgSGFzaE1hcDxKU0NvbnRleHRHcm91cFJlZiwgSlNDVmly
dHVhbE1hY2hpbmUqPiYgd3JhcHBlck1hcCgpCiB7CkBAIC01NywxNCArNTcsMTQgQEAgc3RhdGlj
IEhhc2hNYXA8SlNDb250ZXh0R3JvdXBSZWYsIEpTQ1ZpcnR1YWxNYWNoaW5lKj4mIHdyYXBwZXJN
YXAoKQogCiBzdGF0aWMgdm9pZCBhZGRXcmFwcGVyKEpTQ29udGV4dEdyb3VwUmVmIGdyb3VwLCBK
U0NWaXJ0dWFsTWFjaGluZSogdm0pCiB7Ci0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+
IGxvY2sod3JhcHBlckNhY2hlTXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2Nr
KHdyYXBwZXJDYWNoZU11dGV4KTsKICAgICBBU1NFUlQoIXdyYXBwZXJNYXAoKS5jb250YWlucyhn
cm91cCkpOwogICAgIHdyYXBwZXJNYXAoKS5zZXQoZ3JvdXAsIHZtKTsKIH0KIAogc3RhdGljIHZv
aWQgcmVtb3ZlV3JhcHBlcihKU0NvbnRleHRHcm91cFJlZiBncm91cCkKIHsKLSAgICBzdGQ6Omxv
Y2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayh3cmFwcGVyQ2FjaGVNdXRleCk7CisgICAgc3RkOjps
b2NrX2d1YXJkPExvY2s+IGxvY2sod3JhcHBlckNhY2hlTXV0ZXgpOwogICAgIEFTU0VSVCh3cmFw
cGVyTWFwKCkuY29udGFpbnMoZ3JvdXApKTsKICAgICB3cmFwcGVyTWFwKCkucmVtb3ZlKGdyb3Vw
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1h
c20uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKaW5k
ZXggZGE0NTAyMmQyYzc5ZmJhNDc5N2M4YTEzYWM4MGY5NTY0NjJlZDI5Ni4uODZjNDJiMDNhNGM1
NDUyYTk5OWI1ODBhYmI4MGExYjhlODIyMGM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgbmFtZXNwYWNlIHsKIHVz
aW5nIENQVVN0YXRlID0gUHJvYmU6OkNQVVN0YXRlOwogI2VuZGlmCiAKLVN0YXRpY0xvY2sgY3Jh
c2hMb2NrOworTG9jayBjcmFzaExvY2s7CiAKIHR5cGVkZWYgV1RGOjpGdW5jdGlvbjx2b2lkKEND
YWxsSGVscGVycyYpPiBHZW5lcmF0b3I7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvdGVzdGFpci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rl
c3RhaXIuY3BwCmluZGV4IDdiOTUyNjQ1MDUyMmMwZTVhMGFkM2E5NGI2ZWEyZGY1Njg2Njg0ZGQu
LmQ2YmZmZTkxNTYyOWJiYzg4YmIyOWI0YTQ0ZjdkM2U4ZjFjOGEwMmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcApAQCAtNzEsNyArNzEsNyBAQCB1c2luZyBKU0M6
OkIzOjpXaWR0aDY0OwogCiBuYW1lc3BhY2UgewogCi1TdGF0aWNMb2NrIGNyYXNoTG9jazsKK0xv
Y2sgY3Jhc2hMb2NrOwogCiAvLyBOb3RoaW5nIGZhbmN5IGZvciBub3c7IHdlIGp1c3QgdXNlIHRo
ZSBleGlzdGluZyBXVEYgYXNzZXJ0aW9uIG1hY2hpbmVyeS4KICNkZWZpbmUgQ0hFQ0soeCkgZG8g
eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAg
LTEyMyw3ICsxMjMsNyBAQCB2b2lkIHRlc3RTaW1wbGUoKQogdGVtcGxhdGU8dHlwZW5hbWUgVD4K
IHZvaWQgbG9hZENvbnN0YW50SW1wbChCYXNpY0Jsb2NrKiBibG9jaywgVCB2YWx1ZSwgQjM6OkFp
cjo6T3Bjb2RlIG1vdmUsIFRtcCB0bXAsIFRtcCBzY3JhdGNoKQogewotICAgIHN0YXRpYyBTdGF0
aWNMb2NrIGxvY2s7CisgICAgc3RhdGljIExvY2sgbG9jazsKICAgICBzdGF0aWMgU3RkTWFwPFQs
IFQqPiogbWFwOyAvLyBJJ20gbm90IG1lc3Npbmcgd2l0aCBIYXNoTWFwJ3MgcHJvYmxlbXMgd2l0
aCBpbnRlZ2Vycy4KIAogICAgIExvY2tIb2xkZXIgbG9ja2VyKGxvY2spOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvdGVzdGIzLmNwcAppbmRleCBlN2JmMDEyMWY3MGQ2NDBlMTA2NTI5NGQ5MzRkMWNjNzUz
MzJjMzQ2Li42ZGM5MTc3M2Y2Mzg2MTgzMWI0NWMyYWQzODg2ZWFkNDNmZTA4ZjNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcApAQCAtOTcsNyArOTcsNyBAQCBib29sIHNob3VsZEJl
VmVyYm9zZSgpCiAgICAgcmV0dXJuIHNob3VsZER1bXBJUihCM01vZGUpOwogfQogCi1TdGF0aWNM
b2NrIGNyYXNoTG9jazsKK0xvY2sgY3Jhc2hMb2NrOwogCiAvLyBOb3RoaW5nIGZhbmN5IGZvciBu
b3c7IHdlIGp1c3QgdXNlIHRoZSBleGlzdGluZyBXVEYgYXNzZXJ0aW9uIG1hY2hpbmVyeS4KICNk
ZWZpbmUgQ0hFQ0soeCkgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TdXBlclNhbXBsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N1cGVy
U2FtcGxlci5jcHAKaW5kZXggZjJlZmM2N2U4Mjg5MmZhYzk3MTFjMTg5YWNjMzA0MjRlNDkyYmQz
Mi4uYTM1MTg3MGUwZjNmYmZmYmIyYmMxMjcwZWI3OTJiYTllZjU5MmJhMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N1cGVyU2FtcGxlci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N1cGVyU2FtcGxlci5jcHAKQEAgLTM2LDcgKzM2
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIHZvbGF0aWxlIHVpbnQzMl90IGdfc3VwZXJTYW1wbGVy
Q291bnQ7CiAKLXN0YXRpYyBTdGF0aWNMb2NrIGxvY2s7CitzdGF0aWMgTG9jayBsb2NrOwogc3Rh
dGljIGRvdWJsZSBpbjsKIHN0YXRpYyBkb3VibGUgb3V0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0NvbW1vbi5jcHAKaW5kZXggY2QyYTEyYzczYzg2ZmNiNzdmNzk5YjIzMzJhY2JiOGVj
Njc0ZjRhZS4uM2ExNWIwZjQ2ODY4ZWQzOGU2MDI3NWY5NWFhYThhZGFjZjliNjA0MyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmNwcApAQCAtMzQsNyArMzQsNyBAQAogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKLXN0YXRpYyBTdGF0aWNMb2NrIGNyYXNo
TG9jazsKK3N0YXRpYyBMb2NrIGNyYXNoTG9jazsKIAogdm9pZCBzdGFydENyYXNoaW5nKCkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uRGF0YS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbkRhdGEuY3BwCmluZGV4IGViMzg3
YjJlZDQ0NzBhYTNmNWZiNzA2Y2I1NjE1Zjk0MzAwNjZjMTEuLmIxMWFhYjExMjQwNmZjNGMwMzVk
NzliYjNhZTkxZTI5MWI1M2ZkNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29tbW9uRGF0YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
b21tb25EYXRhLmNwcApAQCAtOTAsNyArOTAsNyBAQCB2b2lkIENvbW1vbkRhdGE6OnNocmlua1Rv
Rml0KCkKICAgICBjYXRjaEVudHJ5cG9pbnRzLnNocmlua1RvRml0KCk7CiB9CiAKLXN0YXRpYyBT
dGF0aWNMb2NrIHBjQ29kZUJsb2NrTWFwTG9jazsKK3N0YXRpYyBMb2NrIHBjQ29kZUJsb2NrTWFw
TG9jazsKIGlubGluZSBIYXNoTWFwPHZvaWQqLCBDb2RlQmxvY2sqPiYgcGNDb2RlQmxvY2tNYXAo
QWJzdHJhY3RMb2NrZXImKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPHZv
aWQqLCBDb2RlQmxvY2sqPj4gcGNDb2RlQmxvY2tNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZHluYmVuY2guY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2R5bmJlbmNo
LmNwcAppbmRleCBmNzk5MDY4YTRjODUxNmJhZDAxYWNhZTkyOGEwNDg1ZGZjZmI1M2QxLi5iYjlk
M2I1OTBjMGMyZDQ0NzNkZDI3M2QxMDM5YTYxY2QxN2JkZmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZHluYmVuY2guY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
eW5iZW5jaC5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFt
ZXNwYWNlIHsKIAotU3RhdGljTG9jayBjcmFzaExvY2s7CitMb2NrIGNyYXNoTG9jazsKIGNvbnN0
IGNoYXIqIG5hbWVGaWx0ZXI7CiB1bnNpZ25lZCByZXF1ZXN0ZWRJdGVyYXRpb25Db3VudDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2Vy
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5jcHAK
aW5kZXggZWY3ZGQ0NDIyYjY3NGVkMWNmNGIwNTc5ODhkNjc1ZjczY2I4NjQ1Ny4uOGY2YzYyMDU1
NjcxMjBhY2Y0ZWYzZGExMGRmOTgzNTJjMDA3NGY0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwCkBAIC0xMzksOCArMTM5LDggQEAg
Ym9vbCBNYWNoaW5lVGhyZWFkczo6dHJ5Q29weU90aGVyVGhyZWFkU3RhY2tzKGNvbnN0IEFic3Ry
YWN0TG9ja2VyJiBsb2NrZXIsIHZvaWQKIHsKICAgICAvLyBQcmV2ZW50IHR3byBWTXMgZnJvbSBz
dXNwZW5kaW5nIGVhY2ggb3RoZXIncyB0aHJlYWRzIGF0IHRoZSBzYW1lIHRpbWUsCiAgICAgLy8g
d2hpY2ggY2FuIGNhdXNlIGRlYWRsb2NrOiA8cmRhcjovL3Byb2JsZW0vMjAzMDA4NDI+LgotICAg
IHN0YXRpYyBTdGF0aWNMb2NrIG11dGV4OwotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2Nr
PiBsb2NrKG11dGV4KTsKKyAgICBzdGF0aWMgTG9jayBtdXRleDsKKyAgICBzdGQ6OmxvY2tfZ3Vh
cmQ8TG9jaz4gbG9jayhtdXRleCk7CiAKICAgICAqc2l6ZSA9IDA7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUNvbm5lY3Rp
b25Ub1RhcmdldENvY29hLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1v
dGUvY29jb2EvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0Q29jb2EubW0KaW5kZXggYjBhODBmZWJm
ZTJjMDk3ZDY4YWE2ZDk0MGVhZTlmMWFjMzdiYmZmMS4uM2U4OTQxMzZiMzY5MzJlNzIyMDc0YmRh
NDQ5MjZlODYzY2JmYTU2MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvY29jb2EvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0Q29jb2EubW0KKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVtb3RlQ29ubmVj
dGlvblRvVGFyZ2V0Q29jb2EubW0KQEAgLTQxLDcgKzQxLDcgQEAKIAogbmFtZXNwYWNlIEluc3Bl
Y3RvciB7CiAKLXN0YXRpYyBTdGF0aWNMb2NrIHJ3aVF1ZXVlTXV0ZXg7CitzdGF0aWMgTG9jayBy
d2lRdWV1ZU11dGV4Owogc3RhdGljIENGUnVuTG9vcFNvdXJjZVJlZiByd2lSdW5Mb29wU291cmNl
Owogc3RhdGljIFJlbW90ZVRhcmdldFF1ZXVlKiByd2lRdWV1ZTsKIApAQCAtNTMsNyArNTMsNyBA
QCBzdGF0aWMgdm9pZCBSZW1vdGVUYXJnZXRIYW5kbGVSdW5Tb3VyY2VHbG9iYWwodm9pZCopCiAK
ICAgICBSZW1vdGVUYXJnZXRRdWV1ZSBxdWV1ZUNvcHk7CiAgICAgewotICAgICAgICBzdGQ6Omxv
Y2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhyd2lRdWV1ZU11dGV4KTsKKyAgICAgICAgc3RkOjps
b2NrX2d1YXJkPExvY2s+IGxvY2socndpUXVldWVNdXRleCk7CiAgICAgICAgIHF1ZXVlQ29weSA9
ICpyd2lRdWV1ZTsKICAgICAgICAgcndpUXVldWUtPmNsZWFyKCk7CiAgICAgfQpAQCAtNjgsNyAr
NjgsNyBAQCBzdGF0aWMgdm9pZCBSZW1vdGVUYXJnZXRRdWV1ZVRhc2tPbkdsb2JhbFF1ZXVlKHZv
aWQgKF50YXNrKSgpKQogICAgIEFTU0VSVChyd2lRdWV1ZSk7CiAKICAgICB7Ci0gICAgICAgIHN0
ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHJ3aVF1ZXVlTXV0ZXgpOworICAgICAgICBz
dGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhyd2lRdWV1ZU11dGV4KTsKICAgICAgICAgcndpUXVl
dWUtPmFwcGVuZCh0YXNrKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9DTG9vcFN0YWNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9DTG9vcFN0YWNrLmNwcAppbmRleCA5YzQ2NGUzMTRmNWFhYzE0YWY4M2U1OWM4
ZDdiNWUwNTQ0ZjZhMDUwLi5hYmMxMGE4ZmVhZDI4NjE1MTk2OWJhMjIzNWNiMzQ3YzdlNjFlODU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ0xvb3BTdGFj
ay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NMb29wU3RhY2su
Y3BwCkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyBzaXplX3QgY29tbWl0U2l6ZSgpCiAgICAgcmV0
dXJuIHNpemU7CiB9CiAKLXN0YXRpYyBTdGF0aWNMb2NrIHN0YWNrU3RhdGlzdGljc011dGV4Owor
c3RhdGljIExvY2sgc3RhY2tTdGF0aXN0aWNzTXV0ZXg7CiAKIENMb29wU3RhY2s6OkNMb29wU3Rh
Y2soVk0mIHZtKQogICAgIDogbV92bSh2bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9Tb3VyY2VQcm92aWRlci5jcHAKaW5kZXggOTRkOWZiZGFhZjNjYjZiOTg4ZDc1ODFkODRi
OWZjNGUzYzNmNmFkOC4uOWExM2ViMjM4ZmY4MDgyNGVhMjdmYjcyZjdmYjYzNDM5OTUyMmQxMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5jcHAK
QEAgLTQ1LDcgKzQ1LDcgQEAgU291cmNlUHJvdmlkZXI6On5Tb3VyY2VQcm92aWRlcigpCiB7CiB9
CiAKLXN0YXRpYyBTdGF0aWNMb2NrIHByb3ZpZGVySWRMb2NrOworc3RhdGljIExvY2sgcHJvdmlk
ZXJJZExvY2s7CiAKIHZvaWQgU291cmNlUHJvdmlkZXI6OmdldElEKCkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcAppbmRleCBk
NDU0ZTc4ZjRjMWU0NjA1NDA2MWUzMzZkYzRjOWYwZTA0NzMxMjczLi45MTFkNjgxNzRjOTZhOTRl
NjNjYmY4NTRlZjg5NjVkZmFmMjZhNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuY3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgUHJvZmlsZXIgewogCiBzdGF0aWMgc3RkOjphdG9taWM8aW50
PiBkYXRhYmFzZUNvdW50ZXI7CiAKLXN0YXRpYyBTdGF0aWNMb2NrIHJlZ2lzdHJhdGlvbkxvY2s7
CitzdGF0aWMgTG9jayByZWdpc3RyYXRpb25Mb2NrOwogc3RhdGljIHN0ZDo6YXRvbWljPGludD4g
ZGlkUmVnaXN0ZXJBdEV4aXQ7CiBzdGF0aWMgRGF0YWJhc2UqIGZpcnN0RGF0YWJhc2U7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlclVJRC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJVSUQuY3BwCmluZGV4IDIy
ODk4OGJjNTllMDM1ODU5ZDlkYWQ5Yzk5MWFlZTdjMWM0ZTJhYmMuLmI1Y2IxMTQ1NWQ3MjMyODFj
MDZhNWI2N2VjOGNmZGE1YmZmNzA1NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlci9Qcm9maWxlclVJRC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGVyVUlELmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIFByb2ZpbGVyIHsKIAogVUlEIFVJRDo6Y3JlYXRlKCkKIHsKLSAgICBzdGF0aWMg
U3RhdGljTG9jayBsb2NrOworICAgIHN0YXRpYyBMb2NrIGxvY2s7CiAgICAgc3RhdGljIHVpbnQ2
NF90IGNvdW50ZXI7CiAgICAgCiAgICAgTG9ja0hvbGRlciBsb2NrZXIobG9jayk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCmluZGV4IDZhNDk1MzhmYTAy
YWJjY2E0Zjk3OWFjYzI1MGE4NTE2Y2ExODUxOWQuLjNmNTQzNDAzOGYyMWU0MDM1YmI4NDAxMTg5
MGYwYWM1ZWUzY2E0ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxP
YmplY3QuY3BwCkBAIC04NTMsOCArODUzLDggQEAgVmVjdG9yPFN0cmluZz4gbnVtYmVyaW5nU3lz
dGVtc0ZvckxvY2FsZShjb25zdCBTdHJpbmcmIGxvY2FsZSkKICAgICBWZWN0b3I8U3RyaW5nPiYg
YXZhaWxhYmxlTnVtYmVyaW5nU3lzdGVtcyA9IGNhY2hlZE51bWJlcmluZ1N5c3RlbXMuZ2V0KCk7
CiAKICAgICBpZiAoVU5MSUtFTFkoYXZhaWxhYmxlTnVtYmVyaW5nU3lzdGVtcy5pc0VtcHR5KCkp
KSB7Ci0gICAgICAgIHN0YXRpYyBTdGF0aWNMb2NrIGNhY2hlZE51bWJlcmluZ1N5c3RlbXNNdXRl
eDsKLSAgICAgICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2soY2FjaGVkTnVtYmVy
aW5nU3lzdGVtc011dGV4KTsKKyAgICAgICAgc3RhdGljIExvY2sgY2FjaGVkTnVtYmVyaW5nU3lz
dGVtc011dGV4OworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhjYWNoZWROdW1i
ZXJpbmdTeXN0ZW1zTXV0ZXgpOwogICAgICAgICBpZiAoYXZhaWxhYmxlTnVtYmVyaW5nU3lzdGVt
cy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VS
Uk9SOwogICAgICAgICAgICAgVUVudW1lcmF0aW9uKiBudW1iZXJpbmdTeXN0ZW1OYW1lcyA9IHVu
dW1zeXNfb3BlbkF2YWlsYWJsZU5hbWVzKCZzdGF0dXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTG9jay5jcHAKaW5kZXggYjZiYjEzMDAwNjhkYTllYzQ4N2ZlMDUwYzU2Y2NkZDY2
YTdjNGY0My4uZjk0OGU4ODAzMWQyMzk5ZTk3M2JhNGQ5NTkyZTBiZTk2ODU5YWUyOSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCkBAIC0zNiw3ICszNiw3IEBACiAK
IG5hbWVzcGFjZSBKU0MgewogCi1TdGF0aWNMb2NrIEdsb2JhbEpTTG9jazo6c19zaGFyZWRJbnN0
YW5jZU11dGV4OworTG9jayBHbG9iYWxKU0xvY2s6OnNfc2hhcmVkSW5zdGFuY2VNdXRleDsKIAog
R2xvYmFsSlNMb2NrOjpHbG9iYWxKU0xvY2soKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0xvY2suaAppbmRleCBiZWRmMmI1NzI4MDY3NzQ2NDdkZTIxYjdjMzE4ZmZhMzhlZTM3NjBk
Li5jMGI4MmU2OTE0ZDgzNTQyM2I5MjVhOTRmMGIxYjgyYzM0NTUwNjRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0xvY2suaApAQCAtNjAsNyArNjAsNyBAQCBjbGFzcyBHbG9iYWxK
U0xvY2sgewogICAgIEpTX0VYUE9SVF9QUklWQVRFIEdsb2JhbEpTTG9jaygpOwogICAgIEpTX0VY
UE9SVF9QUklWQVRFIH5HbG9iYWxKU0xvY2soKTsKIHByaXZhdGU6Ci0gICAgc3RhdGljIFN0YXRp
Y0xvY2sgc19zaGFyZWRJbnN0YW5jZU11dGV4OworICAgIHN0YXRpYyBMb2NrIHNfc2hhcmVkSW5z
dGFuY2VNdXRleDsKIH07CiAKIGNsYXNzIEpTTG9ja0hvbGRlciB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCmluZGV4IDVlNzQwYzI2
MWIxNzNkMDgyOThhNWUxMTZhZGM5YmFkNDc3NzcxMjguLmJiNjk2NTg3ZGVlY2ZlNjM5ZTA5YzY1
NDM4ZDNkNWVmYzI5ZTJhZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCkBAIC05MDksNyArOTA5LDcgQEAgU3RyaW5nIFNhbXBs
aW5nUHJvZmlsZXI6OnN0YWNrVHJhY2VzQXNKU09OKCkKIAogdm9pZCBTYW1wbGluZ1Byb2ZpbGVy
OjpyZWdpc3RlckZvclJlcG9ydEF0RXhpdCgpCiB7Ci0gICAgc3RhdGljIFN0YXRpY0xvY2sgcmVn
aXN0cmF0aW9uTG9jazsKKyAgICBzdGF0aWMgTG9jayByZWdpc3RyYXRpb25Mb2NrOwogICAgIHN0
YXRpYyBIYXNoU2V0PFJlZlB0cjxTYW1wbGluZ1Byb2ZpbGVyPj4qIHByb2ZpbGVzVG9SZXBvcnQ7
CiAKICAgICBMb2NrSG9sZGVyIGhvbGRlcihyZWdpc3RyYXRpb25Mb2NrKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCAwYjE1NTdlMjI2OWY3Mjc1ZWE0OWI4ZGM2NmUwYTAx
ZTc2MWQwZGE5Li43YWQ1MTBmZWRjNWRlODEyNDg5ZGE4M2ZmYTVjOTE2YTYxMTZlMGRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBAIC00NjMsNyArNDYzLDcgQEAgVk06OlZN
KFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgIFZNSW5zcGVjdG9yOjppbnN0
YW5jZSgpLmFkZCh0aGlzKTsKIH0KIAotc3RhdGljIFN0YXRpY1JlYWRXcml0ZUxvY2sgc19kZXN0
cnVjdGlvbkxvY2s7CitzdGF0aWMgUmVhZFdyaXRlTG9jayBzX2Rlc3RydWN0aW9uTG9jazsKIAog
dm9pZCB3YWl0Rm9yVk1EZXN0cnVjdGlvbigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuY3BwCmluZGV4IDYxOTE0OTJkOTQx
ZmU4ODEwMTJlNDYyMWI5YzEyZTAxYjQxMzkxOTcuLjk2NTcxMDgzZTdmMzUxOTMxZWE1YmRhYWVi
ZmExMzczNGIxNGRjNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21GYXVsdFNpZ25hbEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIHN0YXRpYyBjb25z
dCBib29sIHZlcmJvc2UgPSBmYWxzZTsKIH0KIH0KIAotc3RhdGljIFN0YXRpY0xvY2sgY29kZUxv
Y2F0aW9uc0xvY2s7CitzdGF0aWMgTG9jayBjb2RlTG9jYXRpb25zTG9jazsKIHN0YXRpYyBMYXp5
TmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxzdGQ6OnR1cGxlPHZvaWQqLCB2b2lkKj4+PiBjb2RlTG9j
YXRpb25zOyAvLyAoc3RhcnQsIGVuZCkKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWV9GQVNUX01F
TU9SWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9IYXNoVGFibGUuY3BwCmluZGV4IGIwNmVhZjZjMmFjNWQwOGM5NTBmYzczNGE2NmJk
NDA5YzhmYTBlMGYuLjBlYjYwMzZjODYzZmIxMTNmZWM4OTEyNTZlNTA3NTk0NDExNGFiZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5jcHAKKysrIGIvU291cmNlL1dURi93
dGYvSGFzaFRhYmxlLmNwcApAQCAtMzYsMTEgKzM2LDExIEBAIHVuc2lnbmVkIEhhc2hUYWJsZVN0
YXRzOjpudW1Db2xsaXNpb25zOwogdW5zaWduZWQgSGFzaFRhYmxlU3RhdHM6OmNvbGxpc2lvbkdy
YXBoWzQwOTZdOwogdW5zaWduZWQgSGFzaFRhYmxlU3RhdHM6Om1heENvbGxpc2lvbnM7CiAKLXN0
YXRpYyBTdGF0aWNMb2NrIGhhc2hUYWJsZVN0YXRzTXV0ZXg7CitzdGF0aWMgTG9jayBoYXNoVGFi
bGVTdGF0c011dGV4OwogCiB2b2lkIEhhc2hUYWJsZVN0YXRzOjpyZWNvcmRDb2xsaXNpb25BdENv
dW50KHVuc2lnbmVkIGNvdW50KQogewotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBs
b2NrKGhhc2hUYWJsZVN0YXRzTXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2Nr
KGhhc2hUYWJsZVN0YXRzTXV0ZXgpOwogCiAgICAgaWYgKGNvdW50ID4gbWF4Q29sbGlzaW9ucykK
ICAgICAgICAgbWF4Q29sbGlzaW9ucyA9IGNvdW50OwpAQCAtNTAsNyArNTAsNyBAQCB2b2lkIEhh
c2hUYWJsZVN0YXRzOjpyZWNvcmRDb2xsaXNpb25BdENvdW50KHVuc2lnbmVkIGNvdW50KQogCiB2
b2lkIEhhc2hUYWJsZVN0YXRzOjpkdW1wU3RhdHMoKQogewotICAgIHN0ZDo6bG9ja19ndWFyZDxT
dGF0aWNMb2NrPiBsb2NrKGhhc2hUYWJsZVN0YXRzTXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFy
ZDxMb2NrPiBsb2NrKGhhc2hUYWJsZVN0YXRzTXV0ZXgpOwogCiAgICAgZGF0YUxvZ0YoIlxuV1RG
OjpIYXNoVGFibGUgc3RhdGlzdGljc1xuXG4iKTsKICAgICBkYXRhTG9nRigiJXUgYWNjZXNzZXNc
biIsIG51bUFjY2Vzc2VzLmxvYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9MYW5n
dWFnZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKaW5kZXggYWEyZThjMTAwM2Mx
NTUzYzhlYjJjMzk1MTk1YzFjNDc4MWJmNmY1Ny4uZTFmNWUwMzY0ZDhjOGFkOGY2NTEyYjMxYmJj
NmJiYTFkMThlYmM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcApAQCAtMzcsNyArMzcsNyBAQAogCiBuYW1l
c3BhY2UgV1RGIHsKIAotc3RhdGljIFN0YXRpY0xvY2sgdXNlclByZWZlcnJlZExhbmd1YWdlc011
dGV4Oworc3RhdGljIExvY2sgdXNlclByZWZlcnJlZExhbmd1YWdlc011dGV4OwogCiB0eXBlZGVm
IEhhc2hNYXA8dm9pZCosIExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbj4gT2JzZXJ2ZXJN
YXA7CiBzdGF0aWMgT2JzZXJ2ZXJNYXAmIG9ic2VydmVyTWFwKCkKQEAgLTEwMiw3ICsxMDIsNyBA
QCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gaXNvbGF0ZWRDb3B5KGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBzdHJpbmdzKQogVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpCiB7CiAg
ICAgewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayh1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzTXV0ZXgpOworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayh1
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXgpOwogICAgICAgICBWZWN0b3I8U3RyaW5nPiYgb3Zl
cnJpZGUgPSBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOwogICAgICAgICBpZiAoIW92ZXJy
aWRlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBpc29sYXRlZENvcHkob3ZlcnJpZGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9jay5oIGIvU291cmNlL1dURi93dGYvTG9j
ay5oCmluZGV4IDYzMWRlOTZjMDljMTE0OTY2NjM4YTExODIxNmRkMjU2NzgzODlkYjAuLmQzYzcy
MTUyYzFjNGQ4MTg3ZDAwNGMyYmI4MmExMDI3ZDI0ZmE4NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0xvY2suaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgKQEAgLTEzMiwxNCArMTMy
LDEyIEBAIGNsYXNzIExvY2sgewogICAgIEF0b21pYzx1aW50OF90PiBtX2J5dGUgeyAwIH07CiB9
OwogCi11c2luZyBTdGF0aWNMb2NrID0gTG9jazsKIHVzaW5nIExvY2tIb2xkZXIgPSBMb2NrZXI8
TG9jaz47CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6OkxvY2s7CiB1c2luZyBX
VEY6OkxvY2tIb2xkZXI7Ci11c2luZyBXVEY6OlN0YXRpY0xvY2s7CiAKICNlbmRpZiAvLyBXVEZf
TG9ja19oCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQuY3BwIGIvU291
cmNlL1dURi93dGYvTWFpblRocmVhZC5jcHAKaW5kZXggNzQ3NTg4ODdlODAzNzVhMjU1MjgxNmNl
ZmFjYmZmMzEyZmE3ODJhNS4uZGYyMjQ0ZDIxZDE5N2ZlNGU4N2ZiMmY1NTBhMTcwNTM1OGQ5ZTUw
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWFpblRocmVhZC5jcHAKKysrIGIvU291cmNl
L1dURi93dGYvTWFpblRocmVhZC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RhdGljIGJvb2wgY2Fs
bGJhY2tzUGF1c2VkOyAvLyBUaGlzIGdsb2JhbCB2YXJpYWJsZSBpcyBvbmx5IGFjY2Vzc2VkIGZy
b20gbWFpbgogc3RhdGljIFRocmVhZCogbWFpblRocmVhZCB7IG51bGxwdHIgfTsKICNlbmRpZgog
Ci1zdGF0aWMgU3RhdGljTG9jayBtYWluVGhyZWFkRnVuY3Rpb25RdWV1ZU11dGV4Oworc3RhdGlj
IExvY2sgbWFpblRocmVhZEZ1bmN0aW9uUXVldWVNdXRleDsKIAogc3RhdGljIERlcXVlPEZ1bmN0
aW9uPHZvaWQgKCk+PiYgZnVuY3Rpb25RdWV1ZSgpCiB7CkBAIC0xMTksNyArMTE5LDcgQEAgdm9p
ZCBkaXNwYXRjaEZ1bmN0aW9uc0Zyb21NYWluVGhyZWFkKCkKIAogICAgIHdoaWxlICh0cnVlKSB7
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2Nr
KG1haW5UaHJlYWRGdW5jdGlvblF1ZXVlTXV0ZXgpOworICAgICAgICAgICAgc3RkOjpsb2NrX2d1
YXJkPExvY2s+IGxvY2sobWFpblRocmVhZEZ1bmN0aW9uUXVldWVNdXRleCk7CiAgICAgICAgICAg
ICBpZiAoIWZ1bmN0aW9uUXVldWUoKS5zaXplKCkpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAK
QEAgLTE0OSw3ICsxNDksNyBAQCB2b2lkIGNhbGxPbk1haW5UaHJlYWQoRnVuY3Rpb248dm9pZCgp
PiYmIGZ1bmN0aW9uKQogICAgIGJvb2wgbmVlZFRvU2NoZWR1bGUgPSBmYWxzZTsKIAogICAgIHsK
LSAgICAgICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sobWFpblRocmVhZEZ1bmN0
aW9uUXVldWVNdXRleCk7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKG1haW5U
aHJlYWRGdW5jdGlvblF1ZXVlTXV0ZXgpOwogICAgICAgICBuZWVkVG9TY2hlZHVsZSA9IGZ1bmN0
aW9uUXVldWUoKS5zaXplKCkgPT0gMDsKICAgICAgICAgZnVuY3Rpb25RdWV1ZSgpLmFwcGVuZChX
VEZNb3ZlKGZ1bmN0aW9uKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFy
a2luZ0xvdC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmNwcAppbmRleCA1MzliYzJh
ZjFjNDJiNDNlM2E3OWNjMzk1ZDIzZjJhM2EwNDU5YWE2Li5jNzhjMDI4YTg0YWFmNTdlMjhiNzY5
ZGMxMmRmMGRlMWJjNTIxMDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmNwcApAQCAtMjA1LDcgKzIwNSw3
IEBAIHN0cnVjdCBIYXNodGFibGU7CiAKIC8vIFdlIHRyYWNrIGFsbCBhbGxvY2F0ZWQgaGFzaHRh
YmxlcyBzbyB0aGF0IGhhc2h0YWJsZSByZXNpemluZyBkb2Vzbid0IGFuZ2VyIGxlYWsgZGV0ZWN0
b3JzLgogVmVjdG9yPEhhc2h0YWJsZSo+KiBoYXNodGFibGVzOwotU3RhdGljV29yZExvY2sgaGFz
aHRhYmxlc0xvY2s7CitXb3JkTG9jayBoYXNodGFibGVzTG9jazsKIAogc3RydWN0IEhhc2h0YWJs
ZSB7CiAgICAgdW5zaWduZWQgc2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1JlYWRX
cml0ZUxvY2suaCBiL1NvdXJjZS9XVEYvd3RmL1JlYWRXcml0ZUxvY2suaAppbmRleCA2N2YzMDk0
MDJmNGMwZGM4NzNiYzc2MWZhY2U4NDAyOTdlYmZjY2M5Li40YmZkZDA5MGE5MWJkYTg0MWY2ZjA1
ZDdkODhjNmI4OWMzOGQ5YmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZWFkV3JpdGVM
b2NrLmgKKysrIGIvU291cmNlL1dURi93dGYvUmVhZFdyaXRlTG9jay5oCkBAIC04NSwxMCArODUs
NiBAQCBjbGFzcyBSZWFkV3JpdGVMb2NrOjpXcml0ZUxvY2sgOiBwdWJsaWMgUmVhZFdyaXRlTG9j
ayB7CiBpbmxpbmUgUmVhZFdyaXRlTG9jazo6UmVhZExvY2smIFJlYWRXcml0ZUxvY2s6OnJlYWQo
KSB7IHJldHVybiAqc3RhdGljX2Nhc3Q8UmVhZExvY2sqPih0aGlzKTsgfQogaW5saW5lIFJlYWRX
cml0ZUxvY2s6OldyaXRlTG9jayYgUmVhZFdyaXRlTG9jazo6d3JpdGUoKSB7IHJldHVybiAqc3Rh
dGljX2Nhc3Q8V3JpdGVMb2NrKj4odGhpcyk7IH0KIAotdXNpbmcgU3RhdGljUmVhZFdyaXRlTG9j
ayA9IFJlYWRXcml0ZUxvY2s7Ci0KIH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6OlJl
YWRXcml0ZUxvY2s7Ci11c2luZyBXVEY6OlN0YXRpY1JlYWRXcml0ZUxvY2s7Ci0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmggYi9Tb3VyY2UvV1RGL3d0
Zi9SZWN1cnNpdmVMb2NrQWRhcHRlci5oCmluZGV4IDAzMTM4NGQ4NTIxYWJkNDhmZTM2ZTlkYTJl
MzVjYmI3NDQzN2NiNjQuLmI3NDNmMzg2NjljYzcyZTc3Y2U1YTJlZmRhOWFhNTQ1ZThmYWZlYmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmgKKysrIGIv
U291cmNlL1dURi93dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaApAQCAtODYsNiArODYsOCBAQCBj
bGFzcyBSZWN1cnNpdmVMb2NrQWRhcHRlciB7CiAgICAgTG9ja1R5cGUgbV9sb2NrOwogfTsKIAot
fSAvLyBuYW1lc3BhY2UgV1RGCit1c2luZyBSZWN1cnNpdmVMb2NrID0gUmVjdXJzaXZlTG9ja0Fk
YXB0ZXI8TG9jaz47CiAKK30gLy8gbmFtZXNwYWNlIFdURgogCit1c2luZyBXVEY6OlJlY3Vyc2l2
ZUxvY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TdGFja1N0YXRzLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL1N0YWNrU3RhdHMuY3BwCmluZGV4IDhjYjQ2MjIxMWRmN2FkNTU3ZTNjN2FlMjQ4
ZTU2NTI4YjUxODZjODYuLjc4ZjYyODUyNWQyMTE0ODNiZmUxZTk1ZmNlZGFlMjFlMzgxYjViZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1N0YWNrU3RhdHMuY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1N0YWNrU3RhdHMuY3BwCkBAIC00MSw3ICs0MSw3IEBACiBuYW1lc3BhY2UgV1RGIHsK
IAogLy8gQ2hlY2tQb2ludCBtYW5hZ2VtZW50OgotU3RhdGljTG9jayBTdGFja1N0YXRzOjpzX3No
YXJlZE11dGV4OworTG9jayBTdGFja1N0YXRzOjpzX3NoYXJlZE11dGV4OwogU3RhY2tTdGF0czo6
Q2hlY2tQb2ludCogU3RhY2tTdGF0czo6c190b3BDaGVja1BvaW50ID0gMDsKIFN0YWNrU3RhdHM6
OkxheW91dENoZWNrUG9pbnQqIFN0YWNrU3RhdHM6OnNfZmlyc3RMYXlvdXRDaGVja1BvaW50ID0g
MDsKIFN0YWNrU3RhdHM6OkxheW91dENoZWNrUG9pbnQqIFN0YWNrU3RhdHM6OnNfdG9wTGF5b3V0
Q2hlY2tQb2ludCA9IDA7CkBAIC02OCw3ICs2OCw3IEBAIFN0YWNrU3RhdHM6OlBlclRocmVhZFN0
YXRzOjpQZXJUaHJlYWRTdGF0cygpCiAKIFN0YWNrU3RhdHM6OkNoZWNrUG9pbnQ6OkNoZWNrUG9p
bnQoKQogewotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKFN0YWNrU3RhdHM6
OnNfc2hhcmVkTXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKFN0YWNrU3Rh
dHM6OnNfc2hhcmVkTXV0ZXgpOwogICAgIFRocmVhZCYgdGhyZWFkID0gVGhyZWFkOjpjdXJyZW50
KCk7CiAgICAgU3RhY2tTdGF0czo6UGVyVGhyZWFkU3RhdHMmIHQgPSB0aHJlYWQuc3RhY2tTdGF0
cygpOwogICAgIGNvbnN0IFN0YWNrQm91bmRzJiBzdGFjayA9IHRocmVhZC5zdGFjaygpOwpAQCAt
MTI2LDcgKzEyNiw3IEBAIFN0YWNrU3RhdHM6OkNoZWNrUG9pbnQ6OkNoZWNrUG9pbnQoKQogCiBT
dGFja1N0YXRzOjpDaGVja1BvaW50Ojp+Q2hlY2tQb2ludCgpCiB7Ci0gICAgc3RkOjpsb2NrX2d1
YXJkPFN0YXRpY0xvY2s+IGxvY2soU3RhY2tTdGF0czo6c19zaGFyZWRNdXRleCk7CisgICAgc3Rk
Ojpsb2NrX2d1YXJkPExvY2s+IGxvY2soU3RhY2tTdGF0czo6c19zaGFyZWRNdXRleCk7CiAgICAg
VGhyZWFkJiB0aHJlYWQgPSBUaHJlYWQ6OmN1cnJlbnQoKTsKICAgICBTdGFja1N0YXRzOjpQZXJU
aHJlYWRTdGF0cyYgdCA9IHRocmVhZC5zdGFja1N0YXRzKCk7CiAKQEAgLTE1Nyw3ICsxNTcsNyBA
QCBTdGFja1N0YXRzOjpDaGVja1BvaW50Ojp+Q2hlY2tQb2ludCgpCiAKIHZvaWQgU3RhY2tTdGF0
czo6cHJvYmUoKQogewotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKFN0YWNr
U3RhdHM6OnNfc2hhcmVkTXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKFN0
YWNrU3RhdHM6OnNfc2hhcmVkTXV0ZXgpOwogICAgIFRocmVhZCYgdGhyZWFkID0gVGhyZWFkOjpj
dXJyZW50KCk7CiAgICAgU3RhY2tTdGF0czo6UGVyVGhyZWFkU3RhdHMmIHQgPSB0aHJlYWQuc3Rh
Y2tTdGF0cygpOwogICAgIGNvbnN0IFN0YWNrQm91bmRzJiBzdGFjayA9IHRocmVhZC5zdGFjaygp
OwpAQCAtMjE4LDcgKzIxOCw3IEBAIFN0YWNrU3RhdHM6OkxheW91dENoZWNrUG9pbnQ6OkxheW91
dENoZWNrUG9pbnQoKQogICAgIC8vIHByb2JlIGZpcnN0LCB3ZSBjYW4gYXZvaWQgcmUtZW50ZXJp
bmcgdGhlIGxvY2suCiAgICAgU3RhY2tTdGF0czo6cHJvYmUoKTsKIAotICAgIHN0ZDo6bG9ja19n
dWFyZDxTdGF0aWNMb2NrPiBsb2NrKFN0YWNrU3RhdHM6OnNfc2hhcmVkTXV0ZXgpOworICAgIHN0
ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKFN0YWNrU3RhdHM6OnNfc2hhcmVkTXV0ZXgpOwogICAg
IFRocmVhZCYgdGhyZWFkID0gVGhyZWFkOjpjdXJyZW50KCk7CiAgICAgU3RhY2tTdGF0czo6UGVy
VGhyZWFkU3RhdHMmIHQgPSB0aHJlYWQuc3RhY2tTdGF0cygpOwogICAgIGNvbnN0IFN0YWNrQm91
bmRzJiBzdGFjayA9IHRocmVhZC5zdGFjaygpOwpAQCAtMjg3LDcgKzI4Nyw3IEBAIFN0YWNrU3Rh
dHM6OkxheW91dENoZWNrUG9pbnQ6OkxheW91dENoZWNrUG9pbnQoKQogCiBTdGFja1N0YXRzOjpM
YXlvdXRDaGVja1BvaW50Ojp+TGF5b3V0Q2hlY2tQb2ludCgpCiB7Ci0gICAgc3RkOjpsb2NrX2d1
YXJkPFN0YXRpY0xvY2s+IGxvY2soU3RhY2tTdGF0czo6c19zaGFyZWRNdXRleCk7CisgICAgc3Rk
Ojpsb2NrX2d1YXJkPExvY2s+IGxvY2soU3RhY2tTdGF0czo6c19zaGFyZWRNdXRleCk7CiAKICAg
ICAvLyBQb3AgdG8gdGhlIHByZXZpb3VzIGxheW91dCBjaGVja3BvaW50OgogICAgIFN0YWNrU3Rh
dHM6OnNfdG9wTGF5b3V0Q2hlY2tQb2ludCA9IG1fcHJldjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1N0YWNrU3RhdHMuaCBiL1NvdXJjZS9XVEYvd3RmL1N0YWNrU3RhdHMuaAppbmRleCA1
NDY0YjRmNjA2YWM1Zjc3MWM3M2JjODU2YWJiZTM1OGRkNjdhMDMxLi4xMDE3NzljMDJiMThjNDNh
YjU3NGNmM2FmZTE0NTM0ZDIzODQ5Y2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9TdGFj
a1N0YXRzLmgKKysrIGIvU291cmNlL1dURi93dGYvU3RhY2tTdGF0cy5oCkBAIC0xMjAsNyArMTIw
LDcgQEAgY2xhc3MgU3RhY2tTdGF0cyB7CiAKIHByaXZhdGU6CiAgICAgLy8gQ2hlY2tQb2ludCBt
YW5hZ2VtZW50OgotICAgIHN0YXRpYyBTdGF0aWNMb2NrIHNfc2hhcmVkTXV0ZXg7CisgICAgc3Rh
dGljIExvY2sgc19zaGFyZWRNdXRleDsKICAgICBzdGF0aWMgQ2hlY2tQb2ludCogc190b3BDaGVj
a1BvaW50OwogICAgIHN0YXRpYyBMYXlvdXRDaGVja1BvaW50KiBzX2ZpcnN0TGF5b3V0Q2hlY2tQ
b2ludDsKICAgICBzdGF0aWMgTGF5b3V0Q2hlY2tQb2ludCogc190b3BMYXlvdXRDaGVja1BvaW50
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkTWVzc2FnZS5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9UaHJlYWRNZXNzYWdlLmNwcAppbmRleCA1NmQ2YmNmN2Q1MmVjZWEzOGFiNGU4Njg0
ZTRjNjIzNTYwMDJlNjY5Li44Njc0Y2Y1M2ViNzY3YWE0MmJkZDg1ZTlkMzJhZGVmZTQzYTYwNTIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRNZXNzYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9UaHJlYWRNZXNzYWdlLmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2Ug
V1RGIHsKIAogTWVzc2FnZVN0YXR1cyBzZW5kTWVzc2FnZVNjb3BlZChUaHJlYWQmIHRocmVhZCwg
Y29uc3QgVGhyZWFkTWVzc2FnZSYgbWVzc2FnZSkKIHsKLSAgICBzdGF0aWMgU3RhdGljTG9jayBt
ZXNzYWdlTG9jazsKKyAgICBzdGF0aWMgTG9jayBtZXNzYWdlTG9jazsKICAgICBhdXRvIGxvY2to
b2xkZXIgPSBob2xkTG9jayhtZXNzYWdlTG9jayk7CiAKICAgICBhdXRvIHJlc3VsdCA9IHRocmVh
ZC5zdXNwZW5kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFk
cy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKaW5kZXggMDFlZGFk
Y2IzZDVjNWJkNjlhOTIxNWI1MDdiOWE1MjM2Njk1ZGM4Ni4uZGRhYzczNzRhM2M2Zjk1MjVjZWU2
MjA2M2ZmNTllZmYxNzYxNzg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5n
UHRocmVhZHMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcApA
QCAtNjgsNyArNjgsNyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotc3RhdGljIFN0YXRpY0xvY2sg
Z2xvYmFsU3VzcGVuZExvY2s7CitzdGF0aWMgTG9jayBnbG9iYWxTdXNwZW5kTG9jazsKIAogVGhy
ZWFkOjp+VGhyZWFkKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dp
bi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCmluZGV4IDk3OTlmYzFlYmIz
NmRkZDhkNzRkMGY4ZTBmZDQ1Mjg5MDkzZGNiMjIuLjZmM2Q0MWQ2YTA0NTdmYWIwYzA2ZThlZDFi
OWQ5NWMzOGM1MDVjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcApAQCAtMTAwLDcgKzEwMCw3
IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1zdGF0aWMgU3RhdGljTG9jayBnbG9iYWxTdXNwZW5k
TG9jazsKK3N0YXRpYyBMb2NrIGdsb2JhbFN1c3BlbmRMb2NrOwogCiBUaHJlYWQ6On5UaHJlYWQo
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29yZExvY2suaCBiL1NvdXJjZS9XVEYv
d3RmL1dvcmRMb2NrLmgKaW5kZXggN2E5MGY4YjYwOWQ4MjkxMmU2MmNhYmJmNDlhNjU3MGQyYTJj
MTMwZS4uYmYxMzU0YTZiODZjZTcyZDZhYzdiZTE0MzBhOTM1OWNmMjM0M2UyNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvV29yZExvY2suaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JkTG9j
ay5oCkBAIC0xMDEsMTQgKzEwMSwxMiBAQCBjbGFzcyBXb3JkTG9jayB7CiAgICAgQXRvbWljPHVp
bnRwdHJfdD4gbV93b3JkIHsgMCB9OwogfTsKIAotdXNpbmcgU3RhdGljV29yZExvY2sgPSBXb3Jk
TG9jazsKIHVzaW5nIFdvcmRMb2NrSG9sZGVyID0gTG9ja2VyPFdvcmRMb2NrPjsKIAogfSAvLyBu
YW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6V29yZExvY2s7CiB1c2luZyBXVEY6OldvcmRMb2Nr
SG9sZGVyOwotdXNpbmcgV1RGOjpTdGF0aWNXb3JkTG9jazsKIAogI2VuZGlmIC8vIFdURl9Xb3Jk
TG9ja19oCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NmL0xhbmd1YWdlQ0YuY3BwIGIv
U291cmNlL1dURi93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAKaW5kZXggYWMyMDNkMTdjZjg5YTIwM2I5
ZmFjYjFjMWE4YmFiMWI2ODQwOWM1ZC4uODNkN2I5MGMxNmQ1Yjg4YTlkNzliNmY0NWE5ZjAxNGVl
YTc0NGYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAKQEAgLTM4LDcgKzM4LDcgQEAKIAog
bmFtZXNwYWNlIFdURiB7CiAKLXN0YXRpYyBTdGF0aWNMb2NrIHByZWZlcnJlZExhbmd1YWdlc011
dGV4Oworc3RhdGljIExvY2sgcHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXg7CiAKIHN0YXRpYyBWZWN0
b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2VzKCkKIHsKQEAgLTc2LDcgKzc2LDcgQEAgc3Rh
dGljIFN0cmluZyBodHRwU3R5bGVMYW5ndWFnZUNvZGUoQ0ZTdHJpbmdSZWYgbGFuZ3VhZ2UpCiBz
dGF0aWMgdm9pZCBsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdlKENGTm90aWZpY2F0aW9uQ2Vu
dGVyUmVmLCB2b2lkKiwgQ0ZTdHJpbmdSZWYsIGNvbnN0IHZvaWQqLCBDRkRpY3Rpb25hcnlSZWYp
CiB7CiAgICAgewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhwcmVm
ZXJyZWRMYW5ndWFnZXNNdXRleCk7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2Nr
KHByZWZlcnJlZExhbmd1YWdlc011dGV4KTsKICAgICAgICAgcHJlZmVycmVkTGFuZ3VhZ2VzKCku
Y2xlYXIoKTsKICAgICB9CiAgICAgCkBAIC05Myw3ICs5Myw3IEBAIFZlY3RvcjxTdHJpbmc+IHBs
YXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCiAgICAgfSk7CiAjZW5kaWYKIAotICAgIHN0
ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHByZWZlcnJlZExhbmd1YWdlc011dGV4KTsK
KyAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhwcmVmZXJyZWRMYW5ndWFnZXNNdXRleCk7
CiAgICAgVmVjdG9yPFN0cmluZz4mIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMgPSBwcmVmZXJyZWRM
YW5ndWFnZXMoKTsKIAogICAgIGlmICh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmlzRW1wdHkoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZHRvYS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9k
dG9hLmNwcAppbmRleCA5NzJiMjg5OWRkYTM3MzcyY2NhNGQ4OWNlNTk5NTkyOTlmOTc4NGUxLi5l
ZGVmZDdmODg0MzA1ZmMyYzIwY2IzZjNiYzU3MWE3Zjk4MGUzMGY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9kdG9hLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcApAQCAtNTUs
NyArNTUsNyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotc3RhdGljIFN0YXRpY0xvY2sgc19kdG9h
UDVNdXRleDsKK3N0YXRpYyBMb2NrIHNfZHRvYVA1TXV0ZXg7CiAKIHR5cGVkZWYgdW5pb24gewog
ICAgIGRvdWJsZSBkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJp
bmdJbXBsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nSW1wbC5jcHAKaW5k
ZXggMWNhODNjY2FhMTcyOWVlZmNlMjQ3YTAyYTg3NDJhZGJjODU1OWVmMi4uZjEwM2Q5ZTUxMGEx
MmZjZDlhNzc3ZmI0ZDczMWZkMzQ0ZGU5M2U1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
dGV4dC9BdG9taWNTdHJpbmdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21p
Y1N0cmluZ0ltcGwuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBVbmljb2Rl
OwogY2xhc3MgQXRvbWljU3RyaW5nVGFibGVMb2NrZXIgOiBwdWJsaWMgTG9ja0hvbGRlciB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXRvbWljU3RyaW5nVGFibGVMb2NrZXIpOwogCi0gICAg
c3RhdGljIFN0YXRpY0xvY2sgc19zdHJpbmdUYWJsZUxvY2s7CisgICAgc3RhdGljIExvY2sgc19z
dHJpbmdUYWJsZUxvY2s7CiBwdWJsaWM6CiAgICAgQXRvbWljU3RyaW5nVGFibGVMb2NrZXIoKQog
ICAgICAgICA6IExvY2tIb2xkZXIoJnNfc3RyaW5nVGFibGVMb2NrKQpAQCAtNTUsNyArNTUsNyBA
QCBjbGFzcyBBdG9taWNTdHJpbmdUYWJsZUxvY2tlciA6IHB1YmxpYyBMb2NrSG9sZGVyIHsKICAg
ICB9CiB9OwogCi1TdGF0aWNMb2NrIEF0b21pY1N0cmluZ1RhYmxlTG9ja2VyOjpzX3N0cmluZ1Rh
YmxlTG9jazsKK0xvY2sgQXRvbWljU3RyaW5nVGFibGVMb2NrZXI6OnNfc3RyaW5nVGFibGVMb2Nr
OwogCiAjZWxzZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcu
Y3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmNwcAppbmRleCA1ODA3OTk3NjUy
OGQyMzA5ZWNhMDRjZTliNzQxYzI1YjhkYzRiYzNmLi5lYzEwOTE5NDE2ZGRhMGUwZmM1NjE2ZDY2
ZDVmZmRiYTdkZjhkZjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1Zp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5jcHAKQEAgLTIxNSw3
ICsyMTUsNyBAQCBTdHJpbmdWaWV3OjpVbmRlcmx5aW5nU3RyaW5nOjpVbmRlcmx5aW5nU3RyaW5n
KGNvbnN0IFN0cmluZ0ltcGwmIHN0cmluZykKIHsKIH0KIAotc3RhdGljIFN0YXRpY0xvY2sgdW5k
ZXJseWluZ1N0cmluZ3NNdXRleDsKK3N0YXRpYyBMb2NrIHVuZGVybHlpbmdTdHJpbmdzTXV0ZXg7
CiAKIHN0YXRpYyBIYXNoTWFwPGNvbnN0IFN0cmluZ0ltcGwqLCBTdHJpbmdWaWV3OjpVbmRlcmx5
aW5nU3RyaW5nKj4mIHVuZGVybHlpbmdTdHJpbmdzKCkKIHsKQEAgLTIyNyw3ICsyMjcsNyBAQCB2
b2lkIFN0cmluZ1ZpZXc6OmludmFsaWRhdGUoY29uc3QgU3RyaW5nSW1wbCYgc3RyaW5nVG9CZURl
c3Ryb3llZCkKIHsKICAgICBVbmRlcmx5aW5nU3RyaW5nKiB1bmRlcmx5aW5nU3RyaW5nOwogICAg
IHsKLSAgICAgICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sodW5kZXJseWluZ1N0
cmluZ3NNdXRleCk7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKHVuZGVybHlp
bmdTdHJpbmdzTXV0ZXgpOwogICAgICAgICB1bmRlcmx5aW5nU3RyaW5nID0gdW5kZXJseWluZ1N0
cmluZ3MoKS50YWtlKCZzdHJpbmdUb0JlRGVzdHJveWVkKTsKICAgICAgICAgaWYgKCF1bmRlcmx5
aW5nU3RyaW5nKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjQ0LDcgKzI0NCw3IEBAIGJvb2wg
U3RyaW5nVmlldzo6dW5kZXJseWluZ1N0cmluZ0lzVmFsaWQoKSBjb25zdAogdm9pZCBTdHJpbmdW
aWV3OjphZG9wdFVuZGVybHlpbmdTdHJpbmcoVW5kZXJseWluZ1N0cmluZyogdW5kZXJseWluZ1N0
cmluZykKIHsKICAgICBpZiAobV91bmRlcmx5aW5nU3RyaW5nKSB7Ci0gICAgICAgIHN0ZDo6bG9j
a19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHVuZGVybHlpbmdTdHJpbmdzTXV0ZXgpOworICAgICAg
ICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayh1bmRlcmx5aW5nU3RyaW5nc011dGV4KTsKICAg
ICAgICAgaWYgKCEtLW1fdW5kZXJseWluZ1N0cmluZy0+cmVmQ291bnQpIHsKICAgICAgICAgICAg
IGlmIChtX3VuZGVybHlpbmdTdHJpbmctPmlzVmFsaWQpIHsKICAgICAgICAgICAgICAgICB1bmRl
cmx5aW5nU3RyaW5ncygpLnJlbW92ZSgmbV91bmRlcmx5aW5nU3RyaW5nLT5zdHJpbmcpOwpAQCAt
MjYxLDcgKzI2MSw3IEBAIHZvaWQgU3RyaW5nVmlldzo6c2V0VW5kZXJseWluZ1N0cmluZyhjb25z
dCBTdHJpbmdJbXBsKiBzdHJpbmcpCiAgICAgaWYgKCFzdHJpbmcpCiAgICAgICAgIHVuZGVybHlp
bmdTdHJpbmcgPSBudWxscHRyOwogICAgIGVsc2UgewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8
U3RhdGljTG9jaz4gbG9jayh1bmRlcmx5aW5nU3RyaW5nc011dGV4KTsKKyAgICAgICAgc3RkOjps
b2NrX2d1YXJkPExvY2s+IGxvY2sodW5kZXJseWluZ1N0cmluZ3NNdXRleCk7CiAgICAgICAgIGF1
dG8gcmVzdWx0ID0gdW5kZXJseWluZ1N0cmluZ3MoKS5hZGQoc3RyaW5nLCBudWxscHRyKTsKICAg
ICAgICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5KQogICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9y
LT52YWx1ZSA9IG5ldyBVbmRlcmx5aW5nU3RyaW5nKCpzdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwIGIvU291cmNlL1dURi93dGYv
dW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCmluZGV4IGY1ZTMyYTFiZmYzZjk3YTk2YzE1NGMy
MWQ3NjZkYWFkNDNiNTdkZTUuLmZmY2Q1ZjcxYzgwMWI1ZDJkZWY3ZDlmZTQ4Njc0MWI3OWU4ZWI4
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKQEAgLTQ5
LDcgKzQ5LDcgQEAgc3RhdGljIFVDb2xsYXRvciogY2FjaGVkQ29sbGF0b3I7CiBzdGF0aWMgY2hh
ciogY2FjaGVkQ29sbGF0b3JMb2NhbGU7CiBzdGF0aWMgYm9vbCBjYWNoZWRDb2xsYXRvclNob3Vs
ZFNvcnRMb3dlcmNhc2VGaXJzdDsKIAotc3RhdGljIFN0YXRpY0xvY2sgY2FjaGVkQ29sbGF0b3JN
dXRleDsKK3N0YXRpYyBMb2NrIGNhY2hlZENvbGxhdG9yTXV0ZXg7CiAKICNpZiAhKE9TKERBUldJ
TikgJiYgVVNFKENGKSkKIApAQCAtMTA2LDcgKzEwNiw3IEBAIENvbGxhdG9yOjpDb2xsYXRvcihj
b25zdCBjaGFyKiBsb2NhbGUsIGJvb2wgc2hvdWxkU29ydExvd2VyY2FzZUZpcnN0KQogICAgIFVF
cnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOwogCiAgICAgewotICAgICAgICBzdGQ6Omxv
Y2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhjYWNoZWRDb2xsYXRvck11dGV4KTsKKyAgICAgICAg
c3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2soY2FjaGVkQ29sbGF0b3JNdXRleCk7CiAgICAgICAg
IGlmIChjYWNoZWRDb2xsYXRvciAmJiBsb2NhbGVzTWF0Y2goY2FjaGVkQ29sbGF0b3JMb2NhbGUs
IGxvY2FsZSkgJiYgY2FjaGVkQ29sbGF0b3JTaG91bGRTb3J0TG93ZXJjYXNlRmlyc3QgPT0gc2hv
dWxkU29ydExvd2VyY2FzZUZpcnN0KSB7CiAgICAgICAgICAgICBtX2NvbGxhdG9yID0gY2FjaGVk
Q29sbGF0b3I7CiAgICAgICAgICAgICBtX2xvY2FsZSA9IGNhY2hlZENvbGxhdG9yTG9jYWxlOwpA
QCAtMTM2LDcgKzEzNiw3IEBAIENvbGxhdG9yOjpDb2xsYXRvcihjb25zdCBjaGFyKiBsb2NhbGUs
IGJvb2wgc2hvdWxkU29ydExvd2VyY2FzZUZpcnN0KQogCiBDb2xsYXRvcjo6fkNvbGxhdG9yKCkK
IHsKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhjYWNoZWRDb2xsYXRvck11
dGV4KTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhjYWNoZWRDb2xsYXRvck11dGV4
KTsKICAgICBpZiAoY2FjaGVkQ29sbGF0b3IpIHsKICAgICAgICAgdWNvbF9jbG9zZShjYWNoZWRD
b2xsYXRvcik7CiAgICAgICAgIGZhc3RGcmVlKGNhY2hlZENvbGxhdG9yTG9jYWxlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwCmluZGV4IDc2MDEwOTg1NTAwM2RhMGMyZWIzMjc5OTYxNzli
MTYzZDI5ODM4MjUuLmQzMWQ5NTdhMzFiYmNhOTI3Mzc4Mzg0YWIwMTUyZjcwY2Y2YzE1MWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAKKysrIGIvU291cmNl
L1dURi93dGYvd2luL0xhbmd1YWdlV2luLmNwcApAQCAtMzQsNyArMzQsNyBAQAogCiBuYW1lc3Bh
Y2UgV1RGIHsKIAotc3RhdGljIFN0YXRpY0xvY2sgcGxhdGZvcm1MYW5ndWFnZU11dGV4Oworc3Rh
dGljIExvY2sgcGxhdGZvcm1MYW5ndWFnZU11dGV4OwogCiBzdGF0aWMgU3RyaW5nIGxvY2FsZUlu
Zm8oTENUWVBFIGxvY2FsZVR5cGUsIGNvbnN0IFN0cmluZyYgZmFsbGJhY2spCiB7CkBAIC01Niw3
ICs1Niw3IEBAIHN0YXRpYyBTdHJpbmcgbG9jYWxlSW5mbyhMQ1RZUEUgbG9jYWxlVHlwZSwgY29u
c3QgU3RyaW5nJiBmYWxsYmFjaykKIAogc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkK
IHsKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhwbGF0Zm9ybUxhbmd1YWdl
TXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKHBsYXRmb3JtTGFuZ3VhZ2VN
dXRleCk7CiAKICAgICBzdGF0aWMgU3RyaW5nIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlOwogICAg
IGlmICghY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2UuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcAppbmRleCA0NjFlMDFhOTNiM2Q5
N2E3ODk4MjNkNTNjOTIzZTFlOTBkNTNhZGZmLi40OTE1ZmNjMDNjMmY0ZDNkNGZhNzNlMjM3MGQw
OWQwMWE0MTlmZjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlLmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHN0YXRpYyBib29sIHJldHJpZXZlVGV4
dFJlc3VsdEZyb21EYXRhYmFzZShTUUxpdGVEYXRhYmFzZSYgZGIsIGNvbnN0IFN0cmluZyYgcXVl
CiB9CiAKIC8vIEZJWE1FOiBtb3ZlIGFsbCBndWlkLXJlbGF0ZWQgZnVuY3Rpb25zIHRvIGEgRGF0
YWJhc2VWZXJzaW9uVHJhY2tlciBjbGFzcy4KLXN0YXRpYyBTdGF0aWNMb2NrIGd1aWRNdXRleDsK
K3N0YXRpYyBMb2NrIGd1aWRNdXRleDsKIAogc3RhdGljIEhhc2hNYXA8RGF0YWJhc2VHVUlELCBT
dHJpbmc+JiBndWlkVG9WZXJzaW9uTWFwKCkKIHsKQEAgLTIwNCw3ICsyMDQsNyBAQCBEYXRhYmFz
ZTo6RGF0YWJhc2UoRGF0YWJhc2VDb250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgZQogICAgICwgbV9kYXRhYmFzZUF1dGhvcml6ZXIoRGF0YWJhc2VBdXRo
b3JpemVyOjpjcmVhdGUodW5xdWFsaWZpZWRJbmZvVGFibGVOYW1lKSkKIHsKICAgICB7Ci0gICAg
ICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrZXIoZ3VpZE11dGV4KTsKKyAgICAg
ICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2tlcihndWlkTXV0ZXgpOwogCiAgICAgICAgIG1f
Z3VpZCA9IGd1aWRGb3JPcmlnaW5BbmROYW1lKHNlY3VyaXR5T3JpZ2luKCkuc2VjdXJpdHlPcmln
aW4oKS0+dG9TdHJpbmcoKSwgbmFtZSk7CiAgICAgICAgIGd1aWRUb0RhdGFiYXNlTWFwKCkuZW5z
dXJlKG1fZ3VpZCwgW10gewpAQCAtMzU2LDcgKzM1Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IERh
dGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeShib29sIHNob3VsZFNldFZlcnNpb25Jbk5ld0Rh
dGFiCiAKICAgICBTdHJpbmcgY3VycmVudFZlcnNpb247CiAgICAgewotICAgICAgICBzdGQ6Omxv
Y2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9ja2VyKGd1aWRNdXRleCk7CisgICAgICAgIHN0ZDo6bG9j
a19ndWFyZDxMb2NrPiBsb2NrZXIoZ3VpZE11dGV4KTsKIAogICAgICAgICBhdXRvIGVudHJ5ID0g
Z3VpZFRvVmVyc2lvbk1hcCgpLmZpbmQobV9ndWlkKTsKICAgICAgICAgaWYgKGVudHJ5ICE9IGd1
aWRUb1ZlcnNpb25NYXAoKS5lbmQoKSkgewpAQCAtNDQ1LDcgKzQ0NSw3IEBAIHZvaWQgRGF0YWJh
c2U6OmNsb3NlRGF0YWJhc2UoKQogICAgIERhdGFiYXNlVHJhY2tlcjo6c2luZ2xldG9uKCkucmVt
b3ZlT3BlbkRhdGFiYXNlKCp0aGlzKTsKIAogICAgIHsKLSAgICAgICAgc3RkOjpsb2NrX2d1YXJk
PFN0YXRpY0xvY2s+IGxvY2tlcihndWlkTXV0ZXgpOworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8
TG9jaz4gbG9ja2VyKGd1aWRNdXRleCk7CiAKICAgICAgICAgYXV0byBpdCA9IGd1aWRUb0RhdGFi
YXNlTWFwKCkuZmluZChtX2d1aWQpOwogICAgICAgICBBU1NFUlQoaXQgIT0gZ3VpZFRvRGF0YWJh
c2VNYXAoKS5lbmQoKSk7CkBAIC01MDMsMTQgKzUwMywxNCBAQCB2b2lkIERhdGFiYXNlOjpzZXRF
eHBlY3RlZFZlcnNpb24oY29uc3QgU3RyaW5nJiB2ZXJzaW9uKQogCiBTdHJpbmcgRGF0YWJhc2U6
OmdldENhY2hlZFZlcnNpb24oKSBjb25zdAogewotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNM
b2NrPiBsb2NrZXIoZ3VpZE11dGV4KTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9ja2Vy
KGd1aWRNdXRleCk7CiAKICAgICByZXR1cm4gZ3VpZFRvVmVyc2lvbk1hcCgpLmdldChtX2d1aWQp
Lmlzb2xhdGVkQ29weSgpOwogfQogCiB2b2lkIERhdGFiYXNlOjpzZXRDYWNoZWRWZXJzaW9uKGNv
bnN0IFN0cmluZyYgYWN0dWFsVmVyc2lvbikKIHsKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGlj
TG9jaz4gbG9ja2VyKGd1aWRNdXRleCk7CisgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2tl
cihndWlkTXV0ZXgpOwogCiAgICAgdXBkYXRlR1VJRFZlcnNpb25NYXAobV9ndWlkLCBhY3R1YWxW
ZXJzaW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VUcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VUcmFja2VyLmNwcAppbmRleCBhMDgyOGEzNzFiNDY3Zjg3N2Q3OTJlYTdmM2Iz
MGI5YTA4Y2Y4MDA1Li44ZmRhNjJhNmU2M2RmZjRkYzZlNzhmNWVkNTEzOGEyNTVjMTE3ODk0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJh
Y2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZVRyYWNrZXIuY3BwCkBAIC0xMjc1LDggKzEyNzUsOCBAQCBib29sIERhdGFiYXNlVHJhY2tlcjo6
ZGVsZXRlRGF0YWJhc2VGaWxlSWZFbXB0eShjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgcmV0dXJu
IFNRTGl0ZUZpbGVTeXN0ZW06OmRlbGV0ZURhdGFiYXNlRmlsZShwYXRoKTsKIH0KIAotc3RhdGlj
IFN0YXRpY0xvY2sgb3BlbkRhdGFiYXNlTG9jazsKLVN0YXRpY0xvY2smIERhdGFiYXNlVHJhY2tl
cjo6b3BlbkRhdGFiYXNlTXV0ZXgoKQorc3RhdGljIExvY2sgb3BlbkRhdGFiYXNlTG9jazsKK0xv
Y2smIERhdGFiYXNlVHJhY2tlcjo6b3BlbkRhdGFiYXNlTXV0ZXgoKQogewogICAgIHJldHVybiBv
cGVuRGF0YWJhc2VMb2NrOwogfQpAQCAtMTMwMCw3ICsxMzAwLDcgQEAgdm9pZCBEYXRhYmFzZVRy
YWNrZXI6OnNldENsaWVudChEYXRhYmFzZU1hbmFnZXJDbGllbnQqIGNsaWVudCkKICAgICBtX2Ns
aWVudCA9IGNsaWVudDsKIH0KIAotc3RhdGljIFN0YXRpY0xvY2sgbm90aWZpY2F0aW9uTG9jazsK
K3N0YXRpYyBMb2NrIG5vdGlmaWNhdGlvbkxvY2s7CiAKIHVzaW5nIE5vdGlmaWNhdGlvblF1ZXVl
ID0gVmVjdG9yPHN0ZDo6cGFpcjxTZWN1cml0eU9yaWdpbkRhdGEsIFN0cmluZz4+OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIu
aAppbmRleCAyYmQxMTQ3ZjA5MGJiOWE3MzU2NjQ0NmI1YTQ0NjJhMTMxMDViNTg2Li5mN2MwN2I2
NTYxMDYyNzhiYzE0ZmIzOTIyZDlmYjFkZmUyMDlhODM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmgKQEAgLTEwMSw3ICsx
MDEsNyBAQCBjbGFzcyBEYXRhYmFzZVRyYWNrZXIgewogICAgIC8vIE1vYmlsZVNhZmFyaSB3aWxs
IGdyYWIgdGhpcyBtdXRleCBvbiB0aGUgbWFpbiB0aHJlYWQgYmVmb3JlIGRpc3BhdGNoaW5nIHRo
ZSB0YXNrIHRvIAogICAgIC8vIGNsZWFuIHVwIHplcm8gYnl0ZSBkYXRhYmFzZSBmaWxlcy4gIEFu
eSBvcGVyYXRpb25zIHRvIG9wZW4gbmV3IGRhdGFiYXNlIHdpbGwgaGF2ZSB0bwogICAgIC8vIHdh
aXQgZm9yIHRoYXQgdGFzayB0byBmaW5pc2ggYnkgd2FpdGluZyBvbiB0aGlzIG11dGV4LgotICAg
IHN0YXRpYyBTdGF0aWNMb2NrJiBvcGVuRGF0YWJhc2VNdXRleCgpOworICAgIHN0YXRpYyBMb2Nr
JiBvcGVuRGF0YWJhc2VNdXRleCgpOwogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2
b2lkIGVtcHR5RGF0YWJhc2VGaWxlc1JlbW92YWxUYXNrV2lsbEJlU2NoZWR1bGVkKCk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW1wdHlEYXRhYmFzZUZpbGVzUmVtb3ZhbFRhc2tE
aWRGaW5pc2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldC5jcHAKaW5kZXggODI4NzEwYzJlZDkzNDU1NDA1OWM3MTViYzcyNzBlNDVkOWY3Mzk1ZS4u
MTU0MzUwMWQ4MGVjNDJjNThhZDBhYmJlZjNlM2VlOGMyNzUxOWE0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKQEAgLTE4NSw5ICsxODUs
OSBAQCBIYXNoU2V0PFdlYlNvY2tldCo+JiBXZWJTb2NrZXQ6OmFsbEFjdGl2ZVdlYlNvY2tldHMo
Y29uc3QgTG9ja0hvbGRlciYpCiAgICAgcmV0dXJuIGFjdGl2ZVdlYlNvY2tldHM7CiB9CiAKLVN0
YXRpY0xvY2smIFdlYlNvY2tldDo6YWxsQWN0aXZlV2ViU29ja2V0c011dGV4KCkKK0xvY2smIFdl
YlNvY2tldDo6YWxsQWN0aXZlV2ViU29ja2V0c011dGV4KCkKIHsKLSAgICBzdGF0aWMgU3RhdGlj
TG9jayBtdXRleDsKKyAgICBzdGF0aWMgTG9jayBtdXRleDsKICAgICByZXR1cm4gbXV0ZXg7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaAppbmRl
eCBkOGE5MGQ5NWVjZTYyNjVjZDg5ZGJiM2E1YTY0ZGJkZjFkNTkxNGQwLi45MDEyMWY3MGQzMDg4
MGMyYTAyZjk2NTgwYWUwNTcyOGZiOGJkZGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCkBAIC02MCw3ICs2MCw3IEBAIGNsYXNzIFdlYlNvY2tl
dCBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlNvY2tldD4sIHB1YmxpYyBFdmVudFRhcmdl
dFdpdGhJbmxpCiAgICAgdmlydHVhbCB+V2ViU29ja2V0KCk7CiAKICAgICBzdGF0aWMgSGFzaFNl
dDxXZWJTb2NrZXQqPiYgYWxsQWN0aXZlV2ViU29ja2V0cyhjb25zdCBMb2NrSG9sZGVyJik7Ci0g
ICAgc3RhdGljIFN0YXRpY0xvY2smIGFsbEFjdGl2ZVdlYlNvY2tldHNNdXRleCgpOworICAgIHN0
YXRpYyBMb2NrJiBhbGxBY3RpdmVXZWJTb2NrZXRzTXV0ZXgoKTsKIAogICAgIGVudW0gU3RhdGUg
ewogICAgICAgICBDT05ORUNUSU5HID0gMCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpj
L1dlYlNjcmlwdE9iamVjdC5tbQppbmRleCA0YjM4Y2I2MGRmYTBjOTczMGE5MjhjZTVkOTIxMTIz
MDI2Mjc1OTY1Li4zOWU1NjY1ZjcxNmVkMGJjYzJiYzQ2MjdlMTk2Njg5MmM1NmViYmQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCkBAIC03MSw3
ICs3MSw3IEBAIHVzaW5nIEpTQzo6bWFrZVNvdXJjZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1zdGF0aWMgU3RhdGljTG9jayBzcGluTG9jazsKK3N0YXRpYyBMb2NrIHNwaW5Mb2NrOwogc3Rh
dGljIENyZWF0ZVdyYXBwZXJGdW5jdGlvbiBjcmVhdGVET01XcmFwcGVyRnVuY3Rpb247CiBzdGF0
aWMgRGlzY29ubmVjdFdpbmRvd1dyYXBwZXJGdW5jdGlvbiBkaXNjb25uZWN0V2luZG93V3JhcHBl
ckZ1bmN0aW9uOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxn
b3JpdGhtUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRo
bVJlZ2lzdHJ5LmNwcAppbmRleCAyMmRjZmNiY2RhZTk1YmIxMWM4ZmI3YmY2OTljZTlkZTNlMjI4
MzMzLi4xODdhMWRhOGUwMDI2MzkyM2Q3MzVjMjA4OGI1ZDFkNTlhYmM3YjMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAKQEAgLTM0
LDcgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgU3RhdGljTG9jayBy
ZWdpc3RyeU11dGV4Oworc3RhdGljIExvY2sgcmVnaXN0cnlNdXRleDsKIAogQ3J5cHRvQWxnb3Jp
dGhtUmVnaXN0cnkmIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5OjpzaW5nbGV0b24oKQogewpAQCAt
NTIsNyArNTIsNyBAQCBzdGQ6Om9wdGlvbmFsPENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI+IENy
eXB0b0FsZ29yaXRobVJlZ2lzdHJ5OjppZGVudGlmaWVyKGNvbgogICAgIGlmIChuYW1lLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHN0ZDo6bG9ja19ndWFy
ZDxTdGF0aWNMb2NrPiBsb2NrKHJlZ2lzdHJ5TXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxM
b2NrPiBsb2NrKHJlZ2lzdHJ5TXV0ZXgpOwogCiAgICAgLy8gRklYTUU6IEhvdyBpcyBpdCBoZWxw
ZnVsIHRvIGNhbGwgaXNvbGF0ZWRDb3B5IG9uIHRoZSBhcmd1bWVudCB0byBmaW5kPwogICAgIGF1
dG8gaWRlbnRpZmllciA9IG1faWRlbnRpZmllcnMuZmluZChuYW1lLmlzb2xhdGVkQ29weSgpKTsK
QEAgLTY0LDcgKzY0LDcgQEAgc3RkOjpvcHRpb25hbDxDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
PiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6aWRlbnRpZmllcihjb24KIAogU3RyaW5nIENyeXB0
b0FsZ29yaXRobVJlZ2lzdHJ5OjpuYW1lKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKIHsKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhyZWdpc3RyeU11
dGV4KTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhyZWdpc3RyeU11dGV4KTsKIAog
ICAgIGF1dG8gY29udHJ1Y3RvciA9IG1fY29uc3RydWN0b3JzLmZpbmQoc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGlkZW50aWZpZXIpKTsKICAgICBpZiAoY29udHJ1Y3RvciA9PSBtX2NvbnN0cnVjdG9y
cy5lbmQoKSkKQEAgLTc1LDcgKzc1LDcgQEAgU3RyaW5nIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5
OjpuYW1lKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcikKIAogUmVmUHRyPENy
eXB0b0FsZ29yaXRobT4gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6OmNyZWF0ZShDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRp
Y0xvY2s+IGxvY2socmVnaXN0cnlNdXRleCk7CisgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxv
Y2socmVnaXN0cnlNdXRleCk7CiAKICAgICBhdXRvIGNvbnRydWN0b3IgPSBtX2NvbnN0cnVjdG9y
cy5maW5kKHN0YXRpY19jYXN0PHVuc2lnbmVkPihpZGVudGlmaWVyKSk7CiAgICAgaWYgKGNvbnRy
dWN0b3IgPT0gbV9jb25zdHJ1Y3RvcnMuZW5kKCkpCkBAIC04Niw3ICs4Niw3IEBAIFJlZlB0cjxD
cnlwdG9BbGdvcml0aG0+IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5OjpjcmVhdGUoQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllCiAKIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6OnJlZ2lzdGVy
QWxnb3JpdGhtKGNvbnN0IFN0cmluZyYgbmFtZSwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBDcnlwdG9BbGdvcml0aG1Db25zdHJ1Y3RvciBjb25zdHJ1Y3RvcikKIHsKLSAg
ICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhyZWdpc3RyeU11dGV4KTsKKyAgICBz
dGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhyZWdpc3RyeU11dGV4KTsKIAogICAgIEFTU0VSVCgh
bV9pZGVudGlmaWVycy5jb250YWlucyhuYW1lKSk7CiAgICAgQVNTRVJUKCFtX2NvbnN0cnVjdG9y
cy5jb250YWlucyhzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaWRlbnRpZmllcikpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcAppbmRleCA1ZmM0Y2IxNjYyMDhmNWZlZjJhYjFlYWYxODhkNTA3NWI4ZjI1NTNmLi40YjFl
ODcyNTc5NTMzZmJmNzg3MTJmZDZkMjNkMmM4MTViMDNlYjM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBA
IC0yMTU0LDcgKzIxNTQsNyBAQCBzdGF0aWMgRXZlbnRUYXJnZXREYXRhTWFwJiBldmVudFRhcmdl
dERhdGFNYXAoKQogICAgIHJldHVybiBtYXA7CiB9CiAKLXN0YXRpYyBTdGF0aWNMb2NrIHNfZXZl
bnRUYXJnZXREYXRhTWFwTG9jazsKK3N0YXRpYyBMb2NrIHNfZXZlbnRUYXJnZXREYXRhTWFwTG9j
azsKIAogRXZlbnRUYXJnZXREYXRhKiBOb2RlOjpldmVudFRhcmdldERhdGEoKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1VSTC5jcHAKaW5kZXggZThiMWIwODJiOWRiY2JmZWI2NjU3OTNkZGZhYzE2N2JiM2Y5
ZDdkNS4uMTU5ZTdmYWE5OGRiYzlhNWRlZjM0YjZhZjUzMTA1ZmZmNmEzMGQzMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9VUkwuY3BwCkBAIC0yNzUsNyArMjc1LDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0UHJv
dG9jb2xJc0dvb2QoU3RyaW5nVmlldyBwcm90b2NvbCkKIAogI2VuZGlmCiAKLXN0YXRpYyBTdGF0
aWNMb2NrIGRlZmF1bHRQb3J0Rm9yUHJvdG9jb2xNYXBGb3JUZXN0aW5nTG9jazsKK3N0YXRpYyBM
b2NrIGRlZmF1bHRQb3J0Rm9yUHJvdG9jb2xNYXBGb3JUZXN0aW5nTG9jazsKIAogdXNpbmcgRGVm
YXVsdFBvcnRGb3JQcm90b2NvbE1hcEZvclRlc3RpbmcgPSBIYXNoTWFwPFN0cmluZywgdWludDE2
X3Q+Owogc3RhdGljIERlZmF1bHRQb3J0Rm9yUHJvdG9jb2xNYXBGb3JUZXN0aW5nKiYgZGVmYXVs
dFBvcnRGb3JQcm90b2NvbE1hcEZvclRlc3RpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKaW5kZXggMTNlOTAyYmU1M2RlNzgyNmNlMDcwNmJl
MzViZDEzNzNjMDQ3YWEwOC4uYmM5NzIwZGVmZThkMGU1ZGVmMWU4ZWZhMGMzM2E4MTljMzU0YTZh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3Bw
CkBAIC01Myw4ICs1Myw3IEBACiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYv
UmVjdXJzaXZlTG9ja0FkYXB0ZXIuaD4KIAotdXNpbmcgUmVjdXJzaXZlU3RhdGljTG9jayA9IFdU
Rjo6UmVjdXJzaXZlTG9ja0FkYXB0ZXI8U3RhdGljTG9jaz47Ci1zdGF0aWMgUmVjdXJzaXZlU3Rh
dGljTG9jayBmb250TG9jazsKK3N0YXRpYyBSZWN1cnNpdmVMb2NrIGZvbnRMb2NrOwogCiAjZW5k
aWYgLy8gUExBVEZPUk0oSU9TKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggOGE0Njg2YWUyNjZhNjdlYmMyMWQwODgwZDMwNmY4
MzI2OGU2YjVjMi4uNTBhMzZhY2NkNWYyODdmYjc0N2Y3MmQ2ZDRiYzZkYjk0OTk3NTI3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApA
QCAtMjA3LDcgKzIwNyw3IEBAIHN0cnVjdCBNZWRpYVBsYXllckZhY3RvcnkgewogCiBzdGF0aWMg
dm9pZCBhZGRNZWRpYUVuZ2luZShDcmVhdGVNZWRpYUVuZ2luZVBsYXllciYmLCBNZWRpYUVuZ2lu
ZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwgTWVkaWFFbmdpbmVPcmln
aW5zSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVD
bGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5zLCBNZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVtKTsK
IAotc3RhdGljIFN0YXRpY0xvY2sgbWVkaWFFbmdpbmVWZWN0b3JMb2NrOworc3RhdGljIExvY2sg
bWVkaWFFbmdpbmVWZWN0b3JMb2NrOwogCiBzdGF0aWMgYm9vbCYgaGF2ZU1lZGlhRW5naW5lc1Zl
Y3RvcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUXVpY2tM
b29rLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNrTG9vay5tbQppbmRleCBm
M2IwZGY2ZDE1MTM0YWZmZDM5YWUwYWUxZWFlYTIzOTBlMzJjMDdjLi4zN2JhZDAwYjQzNzIyZWFj
NWQ4NGQwZTEzZTg1ODExODZmNzY4YmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvUXVpY2tMb29rLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9R
dWlja0xvb2subW0KQEAgLTQ2LDcgKzQ2LDcgQEAgTlNTZXQgKlFMUHJldmlld0dldFN1cHBvcnRl
ZE1JTUVUeXBlc1NldCgpCiAgICAgcmV0dXJuIHNldDsKIH0KIAotc3RhdGljIFN0YXRpY0xvY2sg
cWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeUxvY2s7CitzdGF0aWMgTG9jayBxbFByZXZpZXdD
b252ZXJ0ZXJEaWN0aW9uYXJ5TG9jazsKIAogc3RhdGljIE5TTXV0YWJsZURpY3Rpb25hcnkgKlFM
UHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnkoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQubW0K
aW5kZXggOTZmY2JmMWM4ZTU3NGRlYjRhYTQzMGQxNmFhZmY2NzQwYmZkOGQwNS4uZTM5YzRlYzMz
ZjU1ZGUzZmFkOGEyOTMyYmJlMGE1MTJkNzRhZjNkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50
Lm1tCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50
OjpoeXN0ZXJlc2lzVXBkYXRlZChQQUw6Okh5c3RlcmVzaXNTdGF0ZSBzdGF0CiAKIH0KIAotc3Rh
dGljIFN0YXRpY0xvY2sgdHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrOwor
c3RhdGljIExvY2sgdHJhbnNhY3Rpb25CYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJMb2NrOwogCiBz
dGF0aWMgTlNVSW50ZWdlciB0cmFuc2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllcjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XZWJDb3JlVGhyZWFk
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XZWJDb3JlVGhyZWFkLm1tCmlu
ZGV4IGU4NmZlODdjZTAyY2QwMWQ2Mjc0NTBjMDgwZDI0NWQ0ZTJkZTM2N2YuLmIyODFlY2RhNzk5
NmExMDk2MDNjMDU0ZWRkNzI1ODgzYTY4M2Q1OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy93YWsvV2ViQ29yZVRocmVhZC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3Mvd2FrL1dlYkNvcmVUaHJlYWQubW0KQEAgLTkxLDExICs5MSw5IEBAIGV4dGVy
biB2b2lkIE5TUG9wQXV0b3JlbGVhc2VQb29sKE5TQXV0b3JlbGVhc2VQb29sTWFyayB0b2tlbik7
CiB9CiAjZW5kaWYKIAotdXNpbmcgU3RhdGljUmVjdXJzaXZlTG9jayA9IFdURjo6UmVjdXJzaXZl
TG9ja0FkYXB0ZXI8U3RhdGljTG9jaz47Ci0KLXN0YXRpYyBTdGF0aWNSZWN1cnNpdmVMb2NrIHdl
YkxvY2s7Ci1zdGF0aWMgU3RhdGljTG9jayB3ZWJUaHJlYWRSZWxlYXNlTG9jazsKLXN0YXRpYyBT
dGF0aWNSZWN1cnNpdmVMb2NrIHdlYkNvcmVSZWxlYXNlTG9jazsKK3N0YXRpYyBSZWN1cnNpdmVM
b2NrIHdlYkxvY2s7CitzdGF0aWMgTG9jayB3ZWJUaHJlYWRSZWxlYXNlTG9jazsKK3N0YXRpYyBS
ZWN1cnNpdmVMb2NrIHdlYkNvcmVSZWxlYXNlTG9jazsKIAogc3RhdGljIE5TQXV0b3JlbGVhc2VQ
b29sTWFyayBhdXRvcmVsZWFzZVBvb2xNYXJrOwogc3RhdGljIENGUnVuTG9vcFJlZiB3ZWJUaHJl
YWRSdW5Mb29wOwpAQCAtMTE3LDcgKzExNSw3IEBAIHN0YXRpYyBDRk11dGFibGVBcnJheVJlZiBX
ZWJUaHJlYWRSZWxlYXNlT2JqQXJyYXk7CiAKIHN0YXRpYyB2b2lkIE1haW5UaHJlYWRBZG9wdEFu
ZFJlbGVhc2UoaWQgb2JqKTsKIAotc3RhdGljIFN0YXRpY0xvY2sgZGVsZWdhdGVMb2NrOworc3Rh
dGljIExvY2sgZGVsZWdhdGVMb2NrOwogc3RhdGljIFN0YXRpY0NvbmRpdGlvbiBkZWxlZ2F0ZUNv
bmRpdGlvbjsKIHN0YXRpYyBOU0ludm9jYXRpb24qIGRlbGVnYXRlSW52b2NhdGlvbjsKIHN0YXRp
YyBDRlJ1bkxvb3BTb3VyY2VSZWYgZGVsZWdhdGVTb3VyY2UgPSBudWxscHRyOwpAQCAtMTI4LDcg
KzEyNiw3IEBAIHN0YXRpYyBCT09MIHNlbmRpbmdEZWxlZ2F0ZU1lc3NhZ2U7CiAKIHN0YXRpYyBD
RlJ1bkxvb3BPYnNlcnZlclJlZiBtYWluUnVuTG9vcEF1dG9VbmxvY2tPYnNlcnZlcjsKIAotc3Rh
dGljIFN0YXRpY0xvY2sgc3RhcnR1cExvY2s7CitzdGF0aWMgTG9jayBzdGFydHVwTG9jazsKIHN0
YXRpYyBTdGF0aWNDb25kaXRpb24gc3RhcnR1cENvbmRpdGlvbjsKIAogc3RhdGljIFdlYlRocmVh
ZENvbnRleHQqIHdlYlRocmVhZENvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3Mvd2FrL1dlYkNvcmVUaHJlYWRSdW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL3dhay9XZWJDb3JlVGhyZWFkUnVuLmNwcAppbmRleCBlZmVmYzIyNmJmMzllNzcy
ZTUzNDRkZTY5NzBmOThhZjEzNTQ5YmY5Li4yMzNmZDNjYTVhMDQ3YmUxZjNiMTRiZjJjNzdiNDRi
MmYyZjIxMWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dl
YkNvcmVUaHJlYWRSdW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsv
V2ViQ29yZVRocmVhZFJ1bi5jcHAKQEAgLTExMSw3ICsxMTEsNyBAQCBleHRlcm4gIkMiIHsKIAog
dHlwZWRlZiBXVEY6OlZlY3RvcjxXZWJUaHJlYWRCbG9jaz4gV2ViVGhyZWFkUnVuUXVldWU7CiAK
LXN0YXRpYyBTdGF0aWNMb2NrIHJ1blF1ZXVlTXV0ZXg7CitzdGF0aWMgTG9jayBydW5RdWV1ZU11
dGV4Owogc3RhdGljIENGUnVuTG9vcFNvdXJjZVJlZiBydW5Tb3VyY2U7CiBzdGF0aWMgV2ViVGhy
ZWFkUnVuUXVldWUqIHJ1blF1ZXVlOwogCkBAIC0xMjQsNyArMTI0LDcgQEAgc3RhdGljIHZvaWQg
SGFuZGxlUnVuU291cmNlKHZvaWQgKmluZm8pCiAKICAgICBXZWJUaHJlYWRSdW5RdWV1ZSBxdWV1
ZUNvcHk7CiAgICAgewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhy
dW5RdWV1ZU11dGV4KTsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2socnVuUXVl
dWVNdXRleCk7CiAgICAgICAgIHF1ZXVlQ29weSA9ICpydW5RdWV1ZTsKICAgICAgICAgcnVuUXVl
dWUtPmNsZWFyKCk7CiAgICAgfQpAQCAtMTQ4LDcgKzE0OCw3IEBAIHN0YXRpYyB2b2lkIF9XZWJU
aHJlYWRSdW4odm9pZCAoXmJsb2NrKSh2b2lkKSwgYm9vbCBzeW5jaHJvbm91cykKICAgICAgICAg
c3RhdGUgPSBuZXcgV2ViVGhyZWFkQmxvY2tTdGF0ZTsKIAogICAgIHsKLSAgICAgICAgc3RkOjps
b2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2socnVuUXVldWVNdXRleCk7CisgICAgICAgIHN0ZDo6
bG9ja19ndWFyZDxMb2NrPiBsb2NrKHJ1blF1ZXVlTXV0ZXgpOwogICAgICAgICBydW5RdWV1ZS0+
YXBwZW5kKFdlYlRocmVhZEJsb2NrKGJsb2NrLCBzdGF0ZSkpOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5Mb29wQ0YuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5Mb29wQ0YuY3Bw
CmluZGV4IGYwODMyN2ZlZDcyMDQwZThhNDgxM2EyYzM1YTNmYzVhNDMyNGEzNTMuLmNmZDZhYjBi
YWVlYTkyMmZmODIyYjNjMDJjNDczZjIyOGIzYjUyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTG9hZGVyUnVuTG9vcENGLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5jcHAKQEAgLTQxLDcg
KzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgQ0ZSdW5Mb29wUmVmIGxvYWRl
clJ1bkxvb3BPYmplY3QgPSAwOwogCi1zdGF0aWMgU3RhdGljTG9jayBsb2FkZXJSdW5Mb29wTXV0
ZXg7CitzdGF0aWMgTG9jayBsb2FkZXJSdW5Mb29wTXV0ZXg7CiBzdGF0aWMgU3RhdGljQ29uZGl0
aW9uIGxvYWRlclJ1bkxvb3BDb25kaXRpb25WYXJpYWJsZTsKIAogc3RhdGljIHZvaWQgZW1wdHlQ
ZXJmb3JtKHZvaWQqKSAKQEAgLTUyLDEyICs1MiwxMiBAQCBDRlJ1bkxvb3BSZWYgbG9hZGVyUnVu
TG9vcCgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIHN0ZDo6dW5pcXVl
X2xvY2s8U3RhdGljTG9jaz4gbG9jayhsb2FkZXJSdW5Mb29wTXV0ZXgpOworICAgIHN0ZDo6dW5p
cXVlX2xvY2s8TG9jaz4gbG9jayhsb2FkZXJSdW5Mb29wTXV0ZXgpOwogCiAgICAgaWYgKCFsb2Fk
ZXJSdW5Mb29wT2JqZWN0KSB7CiAgICAgICAgIFRocmVhZDo6Y3JlYXRlKCJXZWJDb3JlOiBDRk5l
dHdvcmsgTG9hZGVyIiwgW10gewogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHN0ZDo6
bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKGxvYWRlclJ1bkxvb3BNdXRleCk7CisgICAgICAg
ICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sobG9hZGVyUnVuTG9vcE11dGV4KTsK
IAogICAgICAgICAgICAgICAgIGxvYWRlclJ1bkxvb3BPYmplY3QgPSBDRlJ1bkxvb3BHZXRDdXJy
ZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9DdXJsQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybENvbnRleHQuY3BwCmluZGV4IDVjNTA0Y2VjN2JiZjZiYjNjNTg4ZjIwYmEzYTM5ZGU5NjRh
NjQ2NmMuLmZiODA0M2RjMDhkMTlhNTQ5NWY3NzhkZGQ1MmRjNmNhNzEzZDQ5YTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNw
cApAQCAtMTk5LDExICsxOTksMTEgQEAgdm9pZCBDdXJsU2hhcmVIYW5kbGU6OnVubG9ja0NhbGxi
YWNrKENVUkwqLCBjdXJsX2xvY2tfZGF0YSBkYXRhLCB2b2lkKikKICAgICAgICAgbXV0ZXgtPnVu
bG9jaygpOwogfQogCi1TdGF0aWNMb2NrKiBDdXJsU2hhcmVIYW5kbGU6Om11dGV4Rm9yKGN1cmxf
bG9ja19kYXRhIGRhdGEpCitMb2NrKiBDdXJsU2hhcmVIYW5kbGU6Om11dGV4Rm9yKGN1cmxfbG9j
a19kYXRhIGRhdGEpCiB7Ci0gICAgc3RhdGljIFN0YXRpY0xvY2sgY29va2llTXV0ZXg7Ci0gICAg
c3RhdGljIFN0YXRpY0xvY2sgZG5zTXV0ZXg7Ci0gICAgc3RhdGljIFN0YXRpY0xvY2sgc2hhcmVN
dXRleDsKKyAgICBzdGF0aWMgTG9jayBjb29raWVNdXRleDsKKyAgICBzdGF0aWMgTG9jayBkbnNN
dXRleDsKKyAgICBzdGF0aWMgTG9jayBzaGFyZU11dGV4OwogCiAgICAgc3dpdGNoIChkYXRhKSB7
CiAgICAgY2FzZSBDVVJMX0xPQ0tfREFUQV9DT09LSUU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5oCmluZGV4IDZiYTcwZTExMmEyZmI1
OWNmN2Y3MDQ4ZWExMjNkMmE2MWM3Nzc0ZGUuLmVkMzllNTlhMThkZTAzOTc1NTYyMjI1MmYxNzVl
Njg0NjVmOGMyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9DdXJsQ29udGV4dC5oCkBAIC04OSw3ICs4OSw3IEBAIGNsYXNzIEN1cmxTaGFyZUhhbmRs
ZSB7CiBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGxvY2tDYWxsYmFjayhDVVJMKiwgY3VybF9s
b2NrX2RhdGEsIGN1cmxfbG9ja19hY2Nlc3MsIHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCB1bmxv
Y2tDYWxsYmFjayhDVVJMKiwgY3VybF9sb2NrX2RhdGEsIHZvaWQqKTsKLSAgICBzdGF0aWMgU3Rh
dGljTG9jayogbXV0ZXhGb3IoY3VybF9sb2NrX2RhdGEpOworICAgIHN0YXRpYyBMb2NrKiBtdXRl
eEZvcihjdXJsX2xvY2tfZGF0YSk7CiAKICAgICBDVVJMU0gqIG1fc2hhcmVIYW5kbGUgeyBudWxs
cHRyIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0
ZURhdGFiYXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2VUcmFja2VyLmNwcAppbmRleCAzNzU0YTRjNDhhZmNiN2QwNzY5OTMzNGYzMWM3OGQ5
ZWM4ZmM1NTJiLi5lMmFlMGNlN2Q0NjlhZWIxNTA5OWYwODI3MzdjYzNhYTQ5ZjMzNWEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2VUcmFja2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2VUcmFj
a2VyLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgU1FMaXRlRGF0YWJhc2VUcmFja2Vy
IHsKIHN0YXRpYyBTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQqIHNfc3RhdGljU1FMaXRlRGF0
YWJhc2VUcmFja2VyQ2xpZW50ID0gbnVsbHB0cjsKIHN0YXRpYyB1bnNpZ25lZCBzX3RyYW5zYWN0
aW9uSW5Qcm9ncmVzc0NvdW50ZXIgPSAwOwogCi1zdGF0aWMgU3RhdGljTG9jayB0cmFuc2FjdGlv
bkluUHJvZ3Jlc3NNdXRleDsKK3N0YXRpYyBMb2NrIHRyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4
OwogCiB2b2lkIHNldENsaWVudChTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQqIGNsaWVudCkK
IHsKQEAgLTUwLDcgKzUwLDcgQEAgdm9pZCBpbmNyZW1lbnRUcmFuc2FjdGlvbkluUHJvZ3Jlc3ND
b3VudCgpCiAgICAgaWYgKCFzX3N0YXRpY1NRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sodHJh
bnNhY3Rpb25JblByb2dyZXNzTXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2Nr
KHRyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4KTsKIAogICAgIHNfdHJhbnNhY3Rpb25JblByb2dy
ZXNzQ291bnRlcisrOwogICAgIGlmIChzX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc0NvdW50ZXIgPT0g
MSkKQEAgLTYyLDcgKzYyLDcgQEAgdm9pZCBkZWNyZW1lbnRUcmFuc2FjdGlvbkluUHJvZ3Jlc3ND
b3VudCgpCiAgICAgaWYgKCFzX3N0YXRpY1NRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sodHJh
bnNhY3Rpb25JblByb2dyZXNzTXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2Nr
KHRyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4KTsKIAogICAgIEFTU0VSVChzX3RyYW5zYWN0aW9u
SW5Qcm9ncmVzc0NvdW50ZXIpOwogICAgIHNfdHJhbnNhY3Rpb25JblByb2dyZXNzQ291bnRlci0t
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdS
ZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1Jl
Z2lzdHJ5LmNwcAppbmRleCBmZGEzZDExNjk3OGIzNjBmM2RjYTcxNjg3NTg4MTY2YTU4ZTNmZWZm
Li41MjQxNmNjM2NhMjAzM2I1YWJmZWRlNDViOWNmMmJjNzk3ZGJlMTY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcApA
QCAtOTAsNyArOTAsNyBAQCBzdHJ1Y3QgVGV4dEVuY29kaW5nTmFtZUhhc2ggewogdXNpbmcgVGV4
dEVuY29kaW5nTmFtZU1hcCA9IEhhc2hNYXA8Y29uc3QgY2hhciosIGNvbnN0IGNoYXIqLCBUZXh0
RW5jb2RpbmdOYW1lSGFzaD47CiB1c2luZyBUZXh0Q29kZWNNYXAgPSBIYXNoTWFwPGNvbnN0IGNo
YXIqLCBOZXdUZXh0Q29kZWNGdW5jdGlvbj47CiAKLXN0YXRpYyBTdGF0aWNMb2NrIGVuY29kaW5n
UmVnaXN0cnlNdXRleDsKK3N0YXRpYyBMb2NrIGVuY29kaW5nUmVnaXN0cnlNdXRleDsKIAogc3Rh
dGljIFRleHRFbmNvZGluZ05hbWVNYXAqIHRleHRFbmNvZGluZ05hbWVNYXA7CiBzdGF0aWMgVGV4
dENvZGVjTWFwKiB0ZXh0Q29kZWNNYXA7CkBAIC0xNTYsNyArMTU2LDcgQEAgc3RhdGljIHZvaWQg
cHJ1bmVCbGFja2xpc3RlZENvZGVjcygpCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBidWlsZEJh
c2VUZXh0Q29kZWNNYXBzKGNvbnN0IHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiYpCitzdGF0
aWMgdm9pZCBidWlsZEJhc2VUZXh0Q29kZWNNYXBzKGNvbnN0IHN0ZDo6bG9ja19ndWFyZDxMb2Nr
PiYpCiB7CiAgICAgQVNTRVJUKCF0ZXh0Q29kZWNNYXApOwogICAgIEFTU0VSVCghdGV4dEVuY29k
aW5nTmFtZU1hcCk7CkBAIC0yNDQsNyArMjQ0LDcgQEAgc3RhdGljIHZvaWQgZXh0ZW5kVGV4dENv
ZGVjTWFwcygpCiAKIHN0ZDo6dW5pcXVlX3B0cjxUZXh0Q29kZWM+IG5ld1RleHRDb2RlYyhjb25z
dCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nKQogewotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNM
b2NrPiBsb2NrKGVuY29kaW5nUmVnaXN0cnlNdXRleCk7CisgICAgc3RkOjpsb2NrX2d1YXJkPExv
Y2s+IGxvY2soZW5jb2RpbmdSZWdpc3RyeU11dGV4KTsKIAogICAgIEFTU0VSVCh0ZXh0Q29kZWNN
YXApOwogICAgIGF1dG8gcmVzdWx0ID0gdGV4dENvZGVjTWFwLT5maW5kKGVuY29kaW5nLm5hbWUo
KSk7CkBAIC0yNTcsNyArMjU3LDcgQEAgY29uc3QgY2hhciogYXRvbWljQ2Fub25pY2FsVGV4dEVu
Y29kaW5nTmFtZShjb25zdCBjaGFyKiBuYW1lKQogICAgIGlmICghbmFtZSB8fCAhbmFtZVswXSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9j
az4gbG9jayhlbmNvZGluZ1JlZ2lzdHJ5TXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2Nr
PiBsb2NrKGVuY29kaW5nUmVnaXN0cnlNdXRleCk7CiAKICAgICBpZiAoIXRleHRFbmNvZGluZ05h
bWVNYXApCiAgICAgICAgIGJ1aWxkQmFzZVRleHRDb2RlY01hcHMobG9jayk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKaW5kZXggNGMyMWZhY2Y2Y2ExZTVlNDJhZTUzYzI4
OTQyYzc2MmZlNjMzN2FlNy4uZjlhNzkwMzQzOTEzY2QwOWVlYTgzMzk2NWVlMmQwZTFkZWUzZGI1
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcApAQCAtNTMsNyArNTMs
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBTdGF0aWNMb2NrIHRocmVhZFNl
dE11dGV4Oworc3RhdGljIExvY2sgdGhyZWFkU2V0TXV0ZXg7CiAKIHN0YXRpYyBIYXNoU2V0PFdv
cmtlclRocmVhZCo+JiB3b3JrZXJUaHJlYWRzKCkKIHsKQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGlj
IEhhc2hTZXQ8V29ya2VyVGhyZWFkKj4mIHdvcmtlclRocmVhZHMoKQogCiB1bnNpZ25lZCBXb3Jr
ZXJUaHJlYWQ6OndvcmtlclRocmVhZENvdW50KCkKIHsKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3Rh
dGljTG9jaz4gbG9jayh0aHJlYWRTZXRNdXRleCk7CisgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+
IGxvY2sodGhyZWFkU2V0TXV0ZXgpOwogCiAgICAgcmV0dXJuIHdvcmtlclRocmVhZHMoKS5zaXpl
KCk7CiB9CkBAIC0xMTksMTQgKzExOSwxNCBAQCBXb3JrZXJUaHJlYWQ6OldvcmtlclRocmVhZChj
b25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdAogICAg
IFVOVVNFRF9QQVJBTShjb25uZWN0aW9uUHJveHkpOwogI2VuZGlmCiAKLSAgICBzdGQ6OmxvY2tf
Z3VhcmQ8U3RhdGljTG9jaz4gbG9jayh0aHJlYWRTZXRNdXRleCk7CisgICAgc3RkOjpsb2NrX2d1
YXJkPExvY2s+IGxvY2sodGhyZWFkU2V0TXV0ZXgpOwogCiAgICAgd29ya2VyVGhyZWFkcygpLmFk
ZCh0aGlzKTsKIH0KIAogV29ya2VyVGhyZWFkOjp+V29ya2VyVGhyZWFkKCkKIHsKLSAgICBzdGQ6
OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayh0aHJlYWRTZXRNdXRleCk7CisgICAgc3RkOjps
b2NrX2d1YXJkPExvY2s+IGxvY2sodGhyZWFkU2V0TXV0ZXgpOwogCiAgICAgQVNTRVJUKHdvcmtl
clRocmVhZHMoKS5jb250YWlucyh0aGlzKSk7CiAgICAgd29ya2VyVGhyZWFkcygpLnJlbW92ZSh0
aGlzKTsKQEAgLTMxNSw3ICszMTUsNyBAQCB2b2lkIFdvcmtlclRocmVhZDo6c3RvcChXVEY6OkZ1
bmN0aW9uPHZvaWQoKT4mJiBzdG9wcGVkQ2FsbGJhY2spCiAKIHZvaWQgV29ya2VyVGhyZWFkOjpy
ZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnlJbkFsbFRocmVhZHMoKQogewotICAgIHN0ZDo6bG9j
a19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHRocmVhZFNldE11dGV4KTsKKyAgICBzdGQ6OmxvY2tf
Z3VhcmQ8TG9jaz4gbG9jayh0aHJlYWRTZXRNdXRleCk7CiAKICAgICBmb3IgKGF1dG8qIHdvcmtl
clRocmVhZCA6IHdvcmtlclRocmVhZHMoKSkgewogICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxv
b3AoKS5wb3N0VGFzayhbXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25D
b250ZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViRml4
ZWRQb3NpdGlvbkNvbnRlbnQubW0KaW5kZXggZjI3ZGJhNzgzYWZiNWNjOTEwOTM1ZDRmNTlkOTFl
NGUwNjdiOGQ2MC4uMmY4MDgyNDhjYzRiM2E0Y2M5M2U5OGI2ODE2MWVhNzNiNTNlYzcwMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQ
b3NpdGlvbkNvbnRlbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1
cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQubW0KQEAgLTQ5LDcgKzQ5LDcgQEAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotc3RhdGljIFN0YXRp
Y0xvY2sgd2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jazsKK3N0YXRpYyBMb2NrIHdlYkZp
eGVkUG9zaXRpb25Db250ZW50RGF0YUxvY2s7CiAKIHN0cnVjdCBWaWV3cG9ydENvbnN0cmFpbmVk
TGF5ZXJEYXRhIHsKICAgICBWaWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJEYXRhKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01JbnRlcm5hbC5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01JbnRlcm5hbC5tbQppbmRleCA2YjE3OWViNTE0NGIyZGJi
YjczOGFlZjNmNzdiNDcyMDFlZGVlZDg0Li5lMDIxYzViODkwNzczMmNhNThmNGI2ODE0YjQ5ODhl
NzdmMjM4MjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSW50
ZXJuYWwubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUludGVybmFsLm1t
CkBAIC00NCw3ICs0NCw3IEBACiAvLyBXcmFwcGluZyBXZWJDb3JlIGltcGxlbWVudGF0aW9uIG9i
amVjdHMKIAogI2lmZGVmIE5FRURTX1dSQVBQRVJfQ0FDSEVfTE9DSwotc3RhdGljIFN0YXRpY0xv
Y2sgd3JhcHBlckNhY2hlTG9jazsKK3N0YXRpYyBMb2NrIHdyYXBwZXJDYWNoZUxvY2s7CiAjZW5k
aWYKIAogc3RhdGljIEhhc2hNYXA8RE9NT2JqZWN0SW50ZXJuYWwqLCBOU09iamVjdCAqPiYgd3Jh
cHBlckNhY2hlKCkKQEAgLTU2LDcgKzU2LDcgQEAgc3RhdGljIEhhc2hNYXA8RE9NT2JqZWN0SW50
ZXJuYWwqLCBOU09iamVjdCAqPiYgd3JhcHBlckNhY2hlKCkKIE5TT2JqZWN0KiBnZXRET01XcmFw
cGVyKERPTU9iamVjdEludGVybmFsKiBpbXBsKQogewogI2lmZGVmIE5FRURTX1dSQVBQRVJfQ0FD
SEVfTE9DSwotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHdyYXBwZXJDYWNo
ZUxvY2spOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKHdyYXBwZXJDYWNoZUxvY2sp
OwogI2VuZGlmCiAgICAgcmV0dXJuIHdyYXBwZXJDYWNoZSgpLmdldChpbXBsKTsKIH0KQEAgLTY0
LDcgKzY0LDcgQEAgTlNPYmplY3QqIGdldERPTVdyYXBwZXIoRE9NT2JqZWN0SW50ZXJuYWwqIGlt
cGwpCiB2b2lkIGFkZERPTVdyYXBwZXIoTlNPYmplY3QqIHdyYXBwZXIsIERPTU9iamVjdEludGVy
bmFsKiBpbXBsKQogewogI2lmZGVmIE5FRURTX1dSQVBQRVJfQ0FDSEVfTE9DSwotICAgIHN0ZDo6
bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHdyYXBwZXJDYWNoZUxvY2spOworICAgIHN0ZDo6
bG9ja19ndWFyZDxMb2NrPiBsb2NrKHdyYXBwZXJDYWNoZUxvY2spOwogI2VuZGlmCiAgICAgd3Jh
cHBlckNhY2hlKCkuc2V0KGltcGwsIHdyYXBwZXIpOwogfQpAQCAtNzIsNyArNzIsNyBAQCB2b2lk
IGFkZERPTVdyYXBwZXIoTlNPYmplY3QqIHdyYXBwZXIsIERPTU9iamVjdEludGVybmFsKiBpbXBs
KQogdm9pZCByZW1vdmVET01XcmFwcGVyKERPTU9iamVjdEludGVybmFsKiBpbXBsKQogewogI2lm
ZGVmIE5FRURTX1dSQVBQRVJfQ0FDSEVfTE9DSwotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNM
b2NrPiBsb2NrKHdyYXBwZXJDYWNoZUxvY2spOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBs
b2NrKHdyYXBwZXJDYWNoZUxvY2spOwogI2VuZGlmCiAgICAgd3JhcHBlckNhY2hlKCkucmVtb3Zl
KGltcGwpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0UXVh
cnR6Q29yZUFkZGl0aW9ucy9DQVZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
S2l0UXVhcnR6Q29yZUFkZGl0aW9ucy9DQVZpZXcuY3BwCmluZGV4IDVlMzU3MDI4NTI1YTFkY2Zj
YzA5ZDliMmM0MmY0Njg2NWU3NjY0MGEuLjk0MDc3OTEyYTk5MTY0MTE3ZDBjNjgxY2NjYzA2Njg2
ZTA0YzRkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1YXJ0
ekNvcmVBZGRpdGlvbnMvQ0FWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NBVmlldy5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgY2xh
c3MgQ0FWaWV3OjpIYW5kbGUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SGFuZGxlPiB7
CiAgICAgQ0FWaWV3KiBtX3ZpZXc7CiB9OwogCi1zdGF0aWMgU3RhdGljTG9jayBnbG9iYWxTdGF0
ZUxvY2s7CitzdGF0aWMgTG9jayBnbG9iYWxTdGF0ZUxvY2s7CiBzdGF0aWMgSFdORCBtZXNzYWdl
V2luZG93Owogc3RhdGljIGNvbnN0IHdjaGFyX3QgbWVzc2FnZVdpbmRvd0NsYXNzTmFtZVtdID0g
TCJDQVZpZXdNZXNzYWdlV2luZG93IjsKIApAQCAtMTA2LDcgKzEwNiw3IEBAIHN0YXRpYyBIV05E
IGNyZWF0ZU1lc3NhZ2VXaW5kb3coKQogCiB2b2lkIENBVmlldzo6cmVsZWFzZUFsbEQzRFJlc291
cmNlcygpCiB7Ci0gICAgc3RhdGljIFN0YXRpY0xvY2sgbG9jazsKKyAgICBzdGF0aWMgTG9jayBs
b2NrOwogCiAgICAgaWYgKCFsb2NrLnRyeUxvY2soKSkgewogICAgICAgICAvLyBBbm90aGVyIHRo
cmVhZCBpcyBjdXJyZW50bHkgcmVsZWFzaW5nIDNEIHJlc291cmNlcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJMb2NhbGl6YWJsZVN0cmluZ3MuY3BwCmluZGV4IDJlMzExZWUw
N2ZmNmEwMGE2OWRiNmU1M2Y1MmFhZjEzNTgwYzg4Y2MuLmM1NTYwN2Y2Mjc0YjlkNTZlNzgxMjlh
NDM4MDJhZDBhODgwY2MxNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkxvY2FsaXphYmxlU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
TG9jYWxpemFibGVTdHJpbmdzLmNwcApAQCAtNDUsNyArNDUsNyBAQCBXZWJMb2NhbGl6YWJsZVN0
cmluZ3NCdW5kbGUgV2ViS2l0TG9jYWxpemFibGVTdHJpbmdzQnVuZGxlID0geyAiY29tLmFwcGxl
LldlYktpdAogCiB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBMb2NhbGl6ZWRTdHJpbmcqPiBMb2Nh
bGl6ZWRTdHJpbmdNYXA7CiAKLXN0YXRpYyBTdGF0aWNMb2NrIG1haW5CdW5kbGVMb2NTdHJpbmdz
TG9jazsKK3N0YXRpYyBMb2NrIG1haW5CdW5kbGVMb2NTdHJpbmdzTG9jazsKIAogc3RhdGljIExv
Y2FsaXplZFN0cmluZ01hcCYgbWFpbkJ1bmRsZUxvY1N0cmluZ3MoKQogewpAQCAtNTMsNyArNTMs
NyBAQCBzdGF0aWMgTG9jYWxpemVkU3RyaW5nTWFwJiBtYWluQnVuZGxlTG9jU3RyaW5ncygpCiAg
ICAgcmV0dXJuIG1hcDsKIH0KIAotc3RhdGljIFN0YXRpY0xvY2sgZnJhbWV3b3JrTG9jU3RyaW5n
c0xvY2s7CitzdGF0aWMgTG9jayBmcmFtZXdvcmtMb2NTdHJpbmdzTG9jazsKIAogc3RhdGljIExv
Y2FsaXplZFN0cmluZ01hcCBmcmFtZXdvcmtMb2NTdHJpbmdzKCkKIHsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkZDFjZTBiNTk3YTNiNGMxZDA4
NDJiMTgwMTg3Yjk0MzBjMmIyMjM2Li45ZTdkMTJlZmIyNmQxOGIyNjcxMTM5NjkwMTU3MThmOGE3
MjEzNWZkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMTgtMDQtMDUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRl
YUBnbWFpbC5jb20+CisKKyAgICAgICAgW1dURl0gUmVtb3ZlIFN0YXRpY0xvY2sKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDMzMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
SmF2YVNjcmlwdFRocmVhZGluZy5jcHA6CisKIDIwMTgtMDQtMDUgIFphbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTGF5b3V0UmVsb2FkZWRdIEZpbmQgdGhlIGNvcnJl
Y3QgbGVmdCBlZGdlIGZvciBhIGxpbmUgd2hlbiBmbG9hdGluZyBib3hlcyBhcmUgaW4gcGFyZW50
IGZvcm1hdHRpbmcgY29udGV4dC4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0ph
dmFTY3JpcHRUaHJlYWRpbmcuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvSmF2YVNjcmlwdFRo
cmVhZGluZy5jcHAKaW5kZXggODBhMDgyYmQxZjZjMjZkODUzY2JhYjcxYjUyMWIxMWVjYjQ2ZTdk
OS4uNWY5ODkyOWMzMWJjMzM2ZWUwNjg2NDdlNmYxNTM0NDY0NzQwZmUzNCAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAK
IHN0YXRpYyBjb25zdCBzaXplX3QgamF2YVNjcmlwdFRocmVhZHNDb3VudCA9IDQ7CiBzdGF0aWMg
Ym9vbCBqYXZhU2NyaXB0VGhyZWFkc1Nob3VsZFRlcm1pbmF0ZTsKIHN0YXRpYyBKU0NvbnRleHRH
cm91cFJlZiBqYXZhU2NyaXB0VGhyZWFkc0dyb3VwOwotc3RhdGljIFN0YXRpY0xvY2sgamF2YVNj
cmlwdFRocmVhZHNMb2NrOworc3RhdGljIExvY2sgamF2YVNjcmlwdFRocmVhZHNMb2NrOwogCiB0
eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPFRocmVhZD4+IFRocmVhZFNldDsKIHN0YXRpYyBUaHJlYWRT
ZXQmIGphdmFTY3JpcHRUaHJlYWRzKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337274</attachid>
            <date>2018-04-05 10:03:13 -0700</date>
            <delta_ts>2018-04-05 10:10:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184332-20180406020312.patch</filename>
            <type>text/plain</type>
            <size>66170</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
OWM4NDI2MTdjNWQyMTZjZWU5ZTQ5NzQ4MmQzMzI4MWY1ODFjNDNlLi4wMzk1NTFhMDFhMzEwZmE5
Y2EzNzlmZTc1Y2ExNTQxMzgyNzFmZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOC0wNC0wNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbV1RGXSBSZW1vdmUgU3RhdGljTG9jaworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MzMyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNWYWx1ZS5tbToKKyAgICAg
ICAgKGhhbmRlckZvclN0cnVjdFRhZyk6CisgICAgICAgICogQVBJL0pTVmlydHVhbE1hY2hpbmUu
bW06CisgICAgICAgICgrW0pTVk1XcmFwcGVyQ2FjaGUgYWRkV3JhcHBlcjpmb3JKU0NvbnRleHRH
cm91cFJlZjpdKToKKyAgICAgICAgKCtbSlNWTVdyYXBwZXJDYWNoZSB3cmFwcGVyRm9ySlNDb250
ZXh0R3JvdXBSZWY6XSk6CisgICAgICAgICogQVBJL2dsaWIvSlNDVmlydHVhbE1hY2hpbmUuY3Bw
OgorICAgICAgICAoYWRkV3JhcHBlcik6CisgICAgICAgIChyZW1vdmVXcmFwcGVyKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvdGVzdG1hc20uY3BwOgorICAgICAgICAqIGIzL2Fpci90ZXN0YWlyLmNw
cDoKKyAgICAgICAgKiBiMy90ZXN0YjMuY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL1N1cGVyU2Ft
cGxlci5jcHA6CisgICAgICAgICogZGZnL0RGR0NvbW1vbi5jcHA6CisgICAgICAgICogZGZnL0RG
R0NvbW1vbkRhdGEuY3BwOgorICAgICAgICAqIGR5bmJlbmNoLmNwcDoKKyAgICAgICAgKiBoZWFw
L01hY2hpbmVTdGFja01hcmtlci5jcHA6CisgICAgICAgIChKU0M6Ok1hY2hpbmVUaHJlYWRzOjp0
cnlDb3B5T3RoZXJUaHJlYWRTdGFja3MpOgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvY29j
b2EvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0Q29jb2EubW06CisgICAgICAgIChJbnNwZWN0b3I6
OlJlbW90ZVRhcmdldEhhbmRsZVJ1blNvdXJjZUdsb2JhbCk6CisgICAgICAgIChJbnNwZWN0b3I6
OlJlbW90ZVRhcmdldFF1ZXVlVGFza09uR2xvYmFsUXVldWUpOgorICAgICAgICAqIGludGVycHJl
dGVyL0NMb29wU3RhY2suY3BwOgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VQcm92aWRlci5jcHA6
CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFzZS5jcHA6CisgICAgICAgICogcHJv
ZmlsZXIvUHJvZmlsZXJVSUQuY3BwOgorICAgICAgICAoSlNDOjpQcm9maWxlcjo6VUlEOjpjcmVh
dGUpOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6Om51
bWJlcmluZ1N5c3RlbXNGb3JMb2NhbGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmNwcDoK
KyAgICAgICAgKiBydW50aW1lL0pTTG9jay5oOgorICAgICAgICAqIHJ1bnRpbWUvU2FtcGxpbmdQ
cm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OnJlZ2lzdGVyRm9y
UmVwb3J0QXRFeGl0KToKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKiB3YXNt
L1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuY3BwOgorCiAyMDE4LTA0LTA0ICBNYXJrIExhbSAgPG1h
cmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgcG9pbnRlciBwcm9maWxpbmcgc3VwcG9y
dCB0byB0aGUgREZHIGFuZCBzdXBwb3J0aW5nIGZpbGVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA2NDc3YTA5NjA2YjIwZDFk
Yjk3NjgyMjY5NzNjYzdjMGJmOTdkMGZjLi41ZDRmZmFkNDJkZDA3Yzk2YTVkYWIwYTI2MDUxMTMz
OTliZjU1NGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE4LTA0LTA1ICBZdXN1a2UgU3V6dWtp
ICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtXVEZdIFJlbW92ZSBTdGF0aWNM
b2NrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQz
MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3cs
IFdURjo6U3RhdGljTG9jayBpcyBgdXNpbmcgU3RhdGljTG9jayA9IExvY2tgLiBMb2NrIGp1c3Qg
d29ya3MKKyAgICAgICAgaW4gZWl0aGVyIHN0YXRpYyBzdG9yYWdlIGFuZCBkeW5hbWljIHN0b3Jh
Z2UuIFJlbW92ZSBTdGF0aWNMb2NrIGFuZAorICAgICAgICBhbHdheXMgdXNlIExvY2suCisKKyAg
ICAgICAgV2UgYWxzbyByZW1vdmUgU3RhdGljV29yZExvY2sgYW5kIFN0YXRpY1JlYWRXcml0ZUxv
Y2suIEFuZCB3ZSBhZGQKKyAgICAgICAgV1RGOjpSZWN1cnNpdmVMb2NrLCB3aGljaCBpcyBSZWN1
cnNpdmVMb2NrQWRhcHRlcjxMb2NrPi4KKworICAgICAgICAqIHd0Zi9IYXNoVGFibGUuY3BwOgor
ICAgICAgICAoV1RGOjpIYXNoVGFibGVTdGF0czo6cmVjb3JkQ29sbGlzaW9uQXRDb3VudCk6Cisg
ICAgICAgIChXVEY6Okhhc2hUYWJsZVN0YXRzOjpkdW1wU3RhdHMpOgorICAgICAgICAqIHd0Zi9M
YW5ndWFnZS5jcHA6CisgICAgICAgIChXVEY6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAg
ICAgICAqIHd0Zi9Mb2NrLmg6CisgICAgICAgICogd3RmL01haW5UaHJlYWQuY3BwOgorICAgICAg
ICAoV1RGOjpkaXNwYXRjaEZ1bmN0aW9uc0Zyb21NYWluVGhyZWFkKToKKyAgICAgICAgKFdURjo6
Y2FsbE9uTWFpblRocmVhZCk6CisgICAgICAgICogd3RmL1BhcmtpbmdMb3QuY3BwOgorICAgICAg
ICAqIHd0Zi9SZWFkV3JpdGVMb2NrLmg6CisgICAgICAgICogd3RmL1JlY3Vyc2l2ZUxvY2tBZGFw
dGVyLmg6CisgICAgICAgICogd3RmL1N0YWNrU3RhdHMuY3BwOgorICAgICAgICAoV1RGOjpTdGFj
a1N0YXRzOjpDaGVja1BvaW50OjpDaGVja1BvaW50KToKKyAgICAgICAgKFdURjo6U3RhY2tTdGF0
czo6Q2hlY2tQb2ludDo6fkNoZWNrUG9pbnQpOgorICAgICAgICAoV1RGOjpTdGFja1N0YXRzOjpw
cm9iZSk6CisgICAgICAgIChXVEY6OlN0YWNrU3RhdHM6OkxheW91dENoZWNrUG9pbnQ6OkxheW91
dENoZWNrUG9pbnQpOgorICAgICAgICAoV1RGOjpTdGFja1N0YXRzOjpMYXlvdXRDaGVja1BvaW50
Ojp+TGF5b3V0Q2hlY2tQb2ludCk6CisgICAgICAgICogd3RmL1N0YWNrU3RhdHMuaDoKKyAgICAg
ICAgKiB3dGYvVGhyZWFkTWVzc2FnZS5jcHA6CisgICAgICAgIChXVEY6OnNlbmRNZXNzYWdlU2Nv
cGVkKToKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwOgorICAgICAgICAqIHd0
Zi9UaHJlYWRpbmdXaW4uY3BwOgorICAgICAgICAqIHd0Zi9Xb3JkTG9jay5oOgorICAgICAgICAq
IHd0Zi9jZi9MYW5ndWFnZUNGLmNwcDoKKyAgICAgICAgKFdURjo6bGFuZ3VhZ2VQcmVmZXJlbmNl
c0RpZENoYW5nZSk6CisgICAgICAgIChXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
cyk6CisgICAgICAgICogd3RmL2R0b2EuY3BwOgorICAgICAgICAqIHd0Zi90ZXh0L0F0b21pY1N0
cmluZ0ltcGwuY3BwOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ1ZpZXcuY3BwOgorICAgICAg
ICAoV1RGOjpTdHJpbmdWaWV3OjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdURjo6U3RyaW5nVmll
dzo6YWRvcHRVbmRlcmx5aW5nU3RyaW5nKToKKyAgICAgICAgKFdURjo6U3RyaW5nVmlldzo6c2V0
VW5kZXJseWluZ1N0cmluZyk6CisgICAgICAgICogd3RmL3VuaWNvZGUvaWN1L0NvbGxhdG9ySUNV
LmNwcDoKKyAgICAgICAgKFdURjo6Q29sbGF0b3I6OkNvbGxhdG9yKToKKyAgICAgICAgKFdURjo6
Q29sbGF0b3I6On5Db2xsYXRvcik6CisgICAgICAgICogd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHA6
CisgICAgICAgIChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorCiAyMDE4LTA0LTA0ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEZhaWx1cmVzIGZyb20gbWFj
aCBwb3J0IHJlZmVyZW5jZSBoYW5kbGluZyBzaG91bGQgYmUgZmF0YWwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAz
NDg1M2FhZTRkYWI2OGZiODk2YzU3ZmQ3ZjIyOGNjZDA4ZjM3NzZlLi5jMTZhNTU4ZDA1OWY4NTk3
YWM0ZjFiZTI4ZmMyMGMxYzg5NDMwNmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIw
MTgtMDQtMDUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAg
ICAgW1dURl0gUmVtb3ZlIFN0YXRpY0xvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4NDMzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIE1vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6
OkRhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZl
cmlmeSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6Y2xvc2VEYXRhYmFzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6Z2V0Q2FjaGVkVmVyc2lvbiBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhYmFzZTo6c2V0Q2FjaGVkVmVyc2lvbik6CisgICAgICAgICogTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJhc2VNdXRleCk6CisgICAgICAgICogTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6YWxsQWN0aXZlV2Vi
U29ja2V0c011dGV4KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Lmg6
CisgICAgICAgICogYnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tOgorICAgICAgICAqIGNy
eXB0by9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlw
dG9BbGdvcml0aG1SZWdpc3RyeTo6aWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpDcnlw
dG9BbGdvcml0aG1SZWdpc3RyeTo6bmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdv
cml0aG1SZWdpc3RyeTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRo
bVJlZ2lzdHJ5OjpyZWdpc3RlckFsZ29yaXRobSk6CisgICAgICAgICogZG9tL05vZGUuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL1VSTC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhY2hlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1F1aWNrTG9vay5tbToKKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50Lm1tOgorICAgICAgICAqIHBs
YXRmb3JtL2lvcy93YWsvV2ViQ29yZVRocmVhZC5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mv
d2FrL1dlYkNvcmVUaHJlYWRSdW4uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2Yv
TG9hZGVyUnVuTG9vcENGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvYWRlclJ1bkxvb3ApOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDdXJsU2hhcmVIYW5kbGU6Om11dGV4Rm9yKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FM
aXRlRGF0YWJhc2VUcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNl
VHJhY2tlcjo6aW5jcmVtZW50VHJhbnNhY3Rpb25JblByb2dyZXNzQ291bnQpOgorICAgICAgICAo
V2ViQ29yZTo6U1FMaXRlRGF0YWJhc2VUcmFja2VyOjpkZWNyZW1lbnRUcmFuc2FjdGlvbkluUHJv
Z3Jlc3NDb3VudCk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3Ry
eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpidWlsZEJhc2VUZXh0Q29kZWNNYXBzKToKKyAgICAg
ICAgKFdlYkNvcmU6Om5ld1RleHRDb2RlYyk6CisgICAgICAgIChXZWJDb3JlOjphdG9taWNDYW5v
bmljYWxUZXh0RW5jb2RpbmdOYW1lKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZENvdW50KToK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6V29ya2VyVGhyZWFkKToKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlclRocmVhZDo6fldvcmtlclRocmVhZCk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJUaHJlYWQ6OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeUluQWxsVGhyZWFkcyk6
CisKIDIwMTgtMDQtMDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFdlYlJUQyBkYXRhIGNoYW5uZWwgb25seSBhcHBsaWNhdGlvbnMgcmVxdWlyZSBjYXB0dXJl
IHBlcm1pc3Npb25zIGZvciBkaXJlY3QgY29ubmVjdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5n
ZUxvZwppbmRleCA2MGZmNzYxMDhjNWFmZTBlNWFmYzUzOTA3NTk0ZDkyMDI3NzhlNTY2Li42NDNl
MWI4NzBkODQ1YjkyNGI0M2M4MDgwODBkZmFkNGQ5Y2RjZmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3Mv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTgtMDQtMDUgIFl1c3VrZSBTdXp1a2kgIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW1dURl0gUmVtb3ZlIFN0YXRpY0xvY2sK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDMzMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQubW06CisKIDIwMTgtMDMtMjggIFphbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRv
IG92ZXJyaWRlIHRoZSBzY3JlZW4gc2l6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4
IGQ5NjJjOGRjNDJjZDQ0ZjM3MzM4OGQyMTA1NTVlYmZhZWNlM2ZhYjAuLmE1MmZlMjMzYTM3M2Fk
NjZlNDY4NmQ4ZjQ2YmVjZjM3MWEzNzNkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxOC0wNC0wNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVh
QGdtYWlsLmNvbT4KKworICAgICAgICBbV1RGXSBSZW1vdmUgU3RhdGljTG9jaworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MzMyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBET00vRE9NSW50ZXJuYWwu
bW06CisgICAgICAgIChnZXRET01XcmFwcGVyKToKKyAgICAgICAgKGFkZERPTVdyYXBwZXIpOgor
ICAgICAgICAocmVtb3ZlRE9NV3JhcHBlcik6CisKIDIwMTgtMDQtMDQgIEJyZW50IEZ1bGdoYW0g
IDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgRmFpbHVyZXMgZnJvbSBtYWNoIHBvcnQg
cmVmZXJlbmNlIGhhbmRsaW5nIHNob3VsZCBiZSBmYXRhbApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdl
TG9nCmluZGV4IDZlMzY1ZTllNmQ3NDBlYTIzYTI2OGU1MDllYjBhY2U2YzFhMDRiMGYuLmE4NWZi
ZGJkNGI3ODM4OTc1YjRiMGQwYmYyNzNiOGVlZTI2ODBiMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOC0wNC0wNSAgWXVzdWtlIFN1enVraSAgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbV1RGXSBSZW1vdmUgU3RhdGljTG9jawor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MzMyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRR
dWFydHpDb3JlQWRkaXRpb25zL0NBVmlldy5jcHA6CisgICAgICAgIChXS1FDQTo6Q0FWaWV3Ojpy
ZWxlYXNlQWxsRDNEUmVzb3VyY2VzKToKKyAgICAgICAgKiBXZWJMb2NhbGl6YWJsZVN0cmluZ3Mu
Y3BwOgorCiAyMDE4LTA0LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgRHJvcCBNYWluRnJhbWUgY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNWYWx1ZS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5t
bQppbmRleCBjODEwZjE0YzQ3MmZhYTcxNmFlY2RjMmUyNDhlNjc4NTA2ZDIwNzE5Li5lOGFkNTJl
ZjQzZjdmODMwYTEyZTJkMWYzYzQ4NGNjMDVlNTM5YjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU1ZhbHVlLm1tCkBAIC0xMTE1LDcgKzExMTUsNyBAQCBzdGF0aWMgU3RydWN0SGFuZGxlcnMq
IGNyZWF0ZVN0cnVjdEhhbmRsZXJNYXAoKQogCiBzdGF0aWMgU3RydWN0VGFnSGFuZGxlciogaGFu
ZGVyRm9yU3RydWN0VGFnKGNvbnN0IGNoYXIqIGVuY29kZWRUeXBlKQogewotICAgIHN0YXRpYyBT
dGF0aWNMb2NrIGhhbmRlckZvclN0cnVjdFRhZ0xvY2s7CisgICAgc3RhdGljIExvY2sgaGFuZGVy
Rm9yU3RydWN0VGFnTG9jazsKICAgICBMb2NrSG9sZGVyIGxvY2tIb2xkZXIoJmhhbmRlckZvclN0
cnVjdFRhZ0xvY2spOwogCiAgICAgc3RhdGljIFN0cnVjdEhhbmRsZXJzKiBzdHJ1Y3RIYW5kbGVy
cyA9IGNyZWF0ZVN0cnVjdEhhbmRsZXJNYXAoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNWaXJ0dWFsTWFjaGluZS5tbQppbmRleCBlN2M5YWY4YTlhNmE5MjIzM2ViZjQ2ZWI1NTQz
MDk4YTQ0ZjBmZjQwLi45ZmQ3MzQ2ZmNhYTM4YjFlZTc1OWVkNjQ1ZmU0YmYwN2M2NWU5YTQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hpbmUubW0K
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lLm1tCkBAIC00
Miw3ICs0Miw3IEBACiAKIHN0YXRpYyBOU01hcFRhYmxlICpnbG9iYWxXcmFwcGVyQ2FjaGUgPSAw
OwogCi1zdGF0aWMgU3RhdGljTG9jayB3cmFwcGVyQ2FjaGVNdXRleDsKK3N0YXRpYyBMb2NrIHdy
YXBwZXJDYWNoZU11dGV4OwogCiBzdGF0aWMgdm9pZCBpbml0V3JhcHBlckNhY2hlKCkKIHsKQEAg
LTY4LDEzICs2OCwxMyBAQCBAaW1wbGVtZW50YXRpb24gSlNWTVdyYXBwZXJDYWNoZQogCiArICh2
b2lkKWFkZFdyYXBwZXI6KEpTVmlydHVhbE1hY2hpbmUgKil3cmFwcGVyIGZvckpTQ29udGV4dEdy
b3VwUmVmOihKU0NvbnRleHRHcm91cFJlZilncm91cAogewotICAgIHN0ZDo6bG9ja19ndWFyZDxT
dGF0aWNMb2NrPiBsb2NrKHdyYXBwZXJDYWNoZU11dGV4KTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8
TG9jaz4gbG9jayh3cmFwcGVyQ2FjaGVNdXRleCk7CiAgICAgTlNNYXBJbnNlcnQod3JhcHBlckNh
Y2hlKCksIGdyb3VwLCB3cmFwcGVyKTsKIH0KIAogKyAoSlNWaXJ0dWFsTWFjaGluZSAqKXdyYXBw
ZXJGb3JKU0NvbnRleHRHcm91cFJlZjooSlNDb250ZXh0R3JvdXBSZWYpZ3JvdXAKIHsKLSAgICBz
dGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayh3cmFwcGVyQ2FjaGVNdXRleCk7CisgICAg
c3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sod3JhcHBlckNhY2hlTXV0ZXgpOwogICAgIHJldHVy
biBzdGF0aWNfY2FzdDxKU1ZpcnR1YWxNYWNoaW5lICo+KE5TTWFwR2V0KHdyYXBwZXJDYWNoZSgp
LCBncm91cCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2ds
aWIvSlNDVmlydHVhbE1hY2hpbmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGli
L0pTQ1ZpcnR1YWxNYWNoaW5lLmNwcAppbmRleCBmOTdjMWRiNmJhYWMyNjEwMDAyOTIxNWIwNTI5
NDM3NWMzZjYxZDRkLi5jMDYxYWZlZjE4OGE4MzM5MGVhZDRjMTFjMDZmYTM4MTExYzU4MmYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDVmlydHVhbE1hY2hp
bmUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWaXJ0dWFsTWFj
aGluZS5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgc3RydWN0IF9KU0NWaXJ0dWFsTWFjaGluZVByaXZh
dGUgewogCiBXRUJLSVRfREVGSU5FX1RZUEUoSlNDVmlydHVhbE1hY2hpbmUsIGpzY192aXJ0dWFs
X21hY2hpbmUsIEdfVFlQRV9PQkpFQ1QpCiAKLXN0YXRpYyBTdGF0aWNMb2NrIHdyYXBwZXJDYWNo
ZU11dGV4Oworc3RhdGljIExvY2sgd3JhcHBlckNhY2hlTXV0ZXg7CiAKIHN0YXRpYyBIYXNoTWFw
PEpTQ29udGV4dEdyb3VwUmVmLCBKU0NWaXJ0dWFsTWFjaGluZSo+JiB3cmFwcGVyTWFwKCkKIHsK
QEAgLTU3LDE0ICs1NywxNCBAQCBzdGF0aWMgSGFzaE1hcDxKU0NvbnRleHRHcm91cFJlZiwgSlND
VmlydHVhbE1hY2hpbmUqPiYgd3JhcHBlck1hcCgpCiAKIHN0YXRpYyB2b2lkIGFkZFdyYXBwZXIo
SlNDb250ZXh0R3JvdXBSZWYgZ3JvdXAsIEpTQ1ZpcnR1YWxNYWNoaW5lKiB2bSkKIHsKLSAgICBz
dGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayh3cmFwcGVyQ2FjaGVNdXRleCk7CisgICAg
c3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sod3JhcHBlckNhY2hlTXV0ZXgpOwogICAgIEFTU0VS
VCghd3JhcHBlck1hcCgpLmNvbnRhaW5zKGdyb3VwKSk7CiAgICAgd3JhcHBlck1hcCgpLnNldChn
cm91cCwgdm0pOwogfQogCiBzdGF0aWMgdm9pZCByZW1vdmVXcmFwcGVyKEpTQ29udGV4dEdyb3Vw
UmVmIGdyb3VwKQogewotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHdyYXBw
ZXJDYWNoZU11dGV4KTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayh3cmFwcGVyQ2Fj
aGVNdXRleCk7CiAgICAgQVNTRVJUKHdyYXBwZXJNYXAoKS5jb250YWlucyhncm91cCkpOwogICAg
IHdyYXBwZXJNYXAoKS5yZW1vdmUoZ3JvdXApOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAppbmRleCBkYTQ1MDIyZDJjNzlmYmE0Nzk3YzhhMTNhYzgw
Zjk1NjQ2MmVkMjk2Li44NmM0MmIwM2E0YzU0NTJhOTk5YjU4MGFiYjgwYTFiOGU4MjIwYzZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcApAQCAtODAs
NyArODAsNyBAQCBuYW1lc3BhY2UgewogdXNpbmcgQ1BVU3RhdGUgPSBQcm9iZTo6Q1BVU3RhdGU7
CiAjZW5kaWYKIAotU3RhdGljTG9jayBjcmFzaExvY2s7CitMb2NrIGNyYXNoTG9jazsKIAogdHlw
ZWRlZiBXVEY6OkZ1bmN0aW9uPHZvaWQoQ0NhbGxIZWxwZXJzJik+IEdlbmVyYXRvcjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAKaW5kZXggN2I5NTI2NDUwNTIyYzBl
NWEwYWQzYTk0YjZlYTJkZjU2ODY2ODRkZC4uZDZiZmZlOTE1NjI5YmJjODhiYjI5YjRhNDRmN2Qz
ZThmMWM4YTAyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0
YWlyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwCkBA
IC03MSw3ICs3MSw3IEBAIHVzaW5nIEpTQzo6QjM6OldpZHRoNjQ7CiAKIG5hbWVzcGFjZSB7CiAK
LVN0YXRpY0xvY2sgY3Jhc2hMb2NrOworTG9jayBjcmFzaExvY2s7CiAKIC8vIE5vdGhpbmcgZmFu
Y3kgZm9yIG5vdzsgd2UganVzdCB1c2UgdGhlIGV4aXN0aW5nIFdURiBhc3NlcnRpb24gbWFjaGlu
ZXJ5LgogI2RlZmluZSBDSEVDSyh4KSBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXApAQCAtMTIzLDcgKzEyMyw3IEBAIHZvaWQgdGVzdFNpbXBs
ZSgpCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogdm9pZCBsb2FkQ29uc3RhbnRJbXBsKEJhc2ljQmxv
Y2sqIGJsb2NrLCBUIHZhbHVlLCBCMzo6QWlyOjpPcGNvZGUgbW92ZSwgVG1wIHRtcCwgVG1wIHNj
cmF0Y2gpCiB7Ci0gICAgc3RhdGljIFN0YXRpY0xvY2sgbG9jazsKKyAgICBzdGF0aWMgTG9jayBs
b2NrOwogICAgIHN0YXRpYyBTdGRNYXA8VCwgVCo+KiBtYXA7IC8vIEknbSBub3QgbWVzc2luZyB3
aXRoIEhhc2hNYXAncyBwcm9ibGVtcyB3aXRoIGludGVnZXJzLgogCiAgICAgTG9ja0hvbGRlciBs
b2NrZXIobG9jayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCmluZGV4IGU3YmYwMTIx
ZjcwZDY0MGUxMDY1Mjk0ZDkzNGQxY2M3NTMzMmMzNDYuLjZkYzkxNzczZjYzODYxODMxYjQ1YzJh
ZDM4ODZlYWQ0M2ZlMDhmM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90
ZXN0YjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCkBAIC05
Nyw3ICs5Nyw3IEBAIGJvb2wgc2hvdWxkQmVWZXJib3NlKCkKICAgICByZXR1cm4gc2hvdWxkRHVt
cElSKEIzTW9kZSk7CiB9CiAKLVN0YXRpY0xvY2sgY3Jhc2hMb2NrOworTG9jayBjcmFzaExvY2s7
CiAKIC8vIE5vdGhpbmcgZmFuY3kgZm9yIG5vdzsgd2UganVzdCB1c2UgdGhlIGV4aXN0aW5nIFdU
RiBhc3NlcnRpb24gbWFjaGluZXJ5LgogI2RlZmluZSBDSEVDSyh4KSBkbyB7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N1cGVyU2FtcGxlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcAppbmRleCBmMmVmYzY3ZTgyODky
ZmFjOTcxMWMxODlhY2MzMDQyNGU0OTJiZDMyLi5hMzUxODcwZTBmM2ZiZmZiYjJiYzEyNzBlYjc5
MmJhOWVmNTkyYmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
U3VwZXJTYW1wbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3Vw
ZXJTYW1wbGVyLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogdm9sYXRp
bGUgdWludDMyX3QgZ19zdXBlclNhbXBsZXJDb3VudDsKIAotc3RhdGljIFN0YXRpY0xvY2sgbG9j
azsKK3N0YXRpYyBMb2NrIGxvY2s7CiBzdGF0aWMgZG91YmxlIGluOwogc3RhdGljIGRvdWJsZSBv
dXQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmNwcAppbmRleCBjZDJhMTJj
NzNjODZmY2I3N2Y3OTliMjMzMmFjYmI4ZWM2NzRmNGFlLi4zYTE1YjBmNDY4NjhlZDM4ZTYwMjc1
Zjk1YWFhOGFkYWNmOWI2MDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0NvbW1vbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24u
Y3BwCkBAIC0zNCw3ICszNCw3IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsK
IAotc3RhdGljIFN0YXRpY0xvY2sgY3Jhc2hMb2NrOworc3RhdGljIExvY2sgY3Jhc2hMb2NrOwog
CiB2b2lkIHN0YXJ0Q3Jhc2hpbmcoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDb21tb25EYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q29tbW9uRGF0YS5jcHAKaW5kZXggZWIzODdiMmVkNDQ3MGFhM2Y1ZmI3MDZjYjU2MTVmOTQzMDA2
NmMxMS4uYjExYWFiMTEyNDA2ZmM0YzAzNWQ3OWJiM2FlOTFlMjkxYjUzZmQ2OSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb25EYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbkRhdGEuY3BwCkBAIC05MCw3ICs5MCw3IEBA
IHZvaWQgQ29tbW9uRGF0YTo6c2hyaW5rVG9GaXQoKQogICAgIGNhdGNoRW50cnlwb2ludHMuc2hy
aW5rVG9GaXQoKTsKIH0KIAotc3RhdGljIFN0YXRpY0xvY2sgcGNDb2RlQmxvY2tNYXBMb2NrOwor
c3RhdGljIExvY2sgcGNDb2RlQmxvY2tNYXBMb2NrOwogaW5saW5lIEhhc2hNYXA8dm9pZCosIENv
ZGVCbG9jayo+JiBwY0NvZGVCbG9ja01hcChBYnN0cmFjdExvY2tlciYpCiB7CiAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8dm9pZCosIENvZGVCbG9jayo+PiBwY0NvZGVCbG9ja01h
cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9keW5iZW5jaC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZHluYmVuY2guY3BwCmluZGV4IGY3OTkwNjhhNGM4NTE2YmFkMDFh
Y2FlOTI4YTA0ODVkZmNmYjUzZDEuLmJiOWQzYjU5MGMwYzJkNDQ3M2RkMjczZDEwMzlhNjFjZDE3
YmRmZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9keW5iZW5jaC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2R5bmJlbmNoLmNwcApAQCAtMzksNyArMzksNyBAQCB1
c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgewogCi1TdGF0aWNMb2NrIGNyYXNoTG9j
azsKK0xvY2sgY3Jhc2hMb2NrOwogY29uc3QgY2hhciogbmFtZUZpbHRlcjsKIHVuc2lnbmVkIHJl
cXVlc3RlZEl0ZXJhdGlvbkNvdW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcAppbmRleCBlZjdkZDQ0MjJiNjc0ZWQxY2Y0YjA1Nzk4
OGQ2NzVmNzNjYjg2NDU3Li44ZjZjNjIwNTU2NzEyMGFjZjRlZjNkYTEwZGY5ODM1MmMwMDc0ZjQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJr
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtl
ci5jcHAKQEAgLTEzOSw4ICsxMzksOCBAQCBib29sIE1hY2hpbmVUaHJlYWRzOjp0cnlDb3B5T3Ro
ZXJUaHJlYWRTdGFja3MoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgdm9pZAogewogICAg
IC8vIFByZXZlbnQgdHdvIFZNcyBmcm9tIHN1c3BlbmRpbmcgZWFjaCBvdGhlcidzIHRocmVhZHMg
YXQgdGhlIHNhbWUgdGltZSwKICAgICAvLyB3aGljaCBjYW4gY2F1c2UgZGVhZGxvY2s6IDxyZGFy
Oi8vcHJvYmxlbS8yMDMwMDg0Mj4uCi0gICAgc3RhdGljIFN0YXRpY0xvY2sgbXV0ZXg7Ci0gICAg
c3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sobXV0ZXgpOworICAgIHN0YXRpYyBMb2Nr
IG11dGV4OworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKG11dGV4KTsKIAogICAgICpz
aXplID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9y
ZW1vdGUvY29jb2EvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0Q29jb2EubW0gYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVDb25uZWN0aW9uVG9UYXJn
ZXRDb2NvYS5tbQppbmRleCBiMGE4MGZlYmZlMmMwOTdkNjhhYTZkOTQwZWFlOWYxYWMzN2JiZmYx
Li4zZTg5NDEzNmIzNjkzMmU3MjIwNzRiZGE0NDkyNmU4NjNjYmZhNTYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVDb25uZWN0
aW9uVG9UYXJnZXRDb2NvYS5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3JlbW90ZS9jb2NvYS9SZW1vdGVDb25uZWN0aW9uVG9UYXJnZXRDb2NvYS5tbQpAQCAtNDEsNyAr
NDEsNyBAQAogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAotc3RhdGljIFN0YXRpY0xvY2sgcndp
UXVldWVNdXRleDsKK3N0YXRpYyBMb2NrIHJ3aVF1ZXVlTXV0ZXg7CiBzdGF0aWMgQ0ZSdW5Mb29w
U291cmNlUmVmIHJ3aVJ1bkxvb3BTb3VyY2U7CiBzdGF0aWMgUmVtb3RlVGFyZ2V0UXVldWUqIHJ3
aVF1ZXVlOwogCkBAIC01Myw3ICs1Myw3IEBAIHN0YXRpYyB2b2lkIFJlbW90ZVRhcmdldEhhbmRs
ZVJ1blNvdXJjZUdsb2JhbCh2b2lkKikKIAogICAgIFJlbW90ZVRhcmdldFF1ZXVlIHF1ZXVlQ29w
eTsKICAgICB7Ci0gICAgICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHJ3aVF1
ZXVlTXV0ZXgpOworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhyd2lRdWV1ZU11
dGV4KTsKICAgICAgICAgcXVldWVDb3B5ID0gKnJ3aVF1ZXVlOwogICAgICAgICByd2lRdWV1ZS0+
Y2xlYXIoKTsKICAgICB9CkBAIC02OCw3ICs2OCw3IEBAIHN0YXRpYyB2b2lkIFJlbW90ZVRhcmdl
dFF1ZXVlVGFza09uR2xvYmFsUXVldWUodm9pZCAoXnRhc2spKCkpCiAgICAgQVNTRVJUKHJ3aVF1
ZXVlKTsKIAogICAgIHsKLSAgICAgICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2so
cndpUXVldWVNdXRleCk7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKHJ3aVF1
ZXVlTXV0ZXgpOwogICAgICAgICByd2lRdWV1ZS0+YXBwZW5kKHRhc2spOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NMb29wU3RhY2suY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NMb29wU3RhY2suY3BwCmluZGV4
IDljNDY0ZTMxNGY1YWFjMTRhZjgzZTU5YzhkN2I1ZTA1NDRmNmEwNTAuLmFiYzEwYThmZWFkMjg2
MTUxOTY5YmEyMjM1Y2IzNDdjN2U2MWU4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9DTG9vcFN0YWNrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvQ0xvb3BTdGFjay5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIHNp
emVfdCBjb21taXRTaXplKCkKICAgICByZXR1cm4gc2l6ZTsKIH0KIAotc3RhdGljIFN0YXRpY0xv
Y2sgc3RhY2tTdGF0aXN0aWNzTXV0ZXg7CitzdGF0aWMgTG9jayBzdGFja1N0YXRpc3RpY3NNdXRl
eDsKIAogQ0xvb3BTdGFjazo6Q0xvb3BTdGFjayhWTSYgdm0pCiAgICAgOiBtX3ZtKHZtKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmNwcAppbmRleCA5
NGQ5ZmJkYWFmM2NiNmI5ODhkNzU4MWQ4NGI5ZmM0ZTNjM2Y2YWQ4Li45YTEzZWIyMzhmZjgwODI0
ZWEyN2ZiNzJmN2ZiNjM0Mzk5NTIyZDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1NvdXJjZVByb3ZpZGVyLmNwcApAQCAtNDUsNyArNDUsNyBAQCBTb3VyY2VQcm92aWRl
cjo6flNvdXJjZVByb3ZpZGVyKCkKIHsKIH0KIAotc3RhdGljIFN0YXRpY0xvY2sgcHJvdmlkZXJJ
ZExvY2s7CitzdGF0aWMgTG9jayBwcm92aWRlcklkTG9jazsKIAogdm9pZCBTb3VyY2VQcm92aWRl
cjo6Z2V0SUQoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyRGF0YWJhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVyRGF0YWJhc2UuY3BwCmluZGV4IGQ0NTRlNzhmNGMxZTQ2MDU0MDYxZTMzNmRjNGM5ZjBl
MDQ3MzEyNzMuLjkxMWQ2ODE3NGM5NmE5NGU2M2NiZjg1NGVmODk2NWRmYWYyNmE1NjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFzZS5j
cHAKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7
CiAKIHN0YXRpYyBzdGQ6OmF0b21pYzxpbnQ+IGRhdGFiYXNlQ291bnRlcjsKIAotc3RhdGljIFN0
YXRpY0xvY2sgcmVnaXN0cmF0aW9uTG9jazsKK3N0YXRpYyBMb2NrIHJlZ2lzdHJhdGlvbkxvY2s7
CiBzdGF0aWMgc3RkOjphdG9taWM8aW50PiBkaWRSZWdpc3RlckF0RXhpdDsKIHN0YXRpYyBEYXRh
YmFzZSogZmlyc3REYXRhYmFzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyVUlELmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxl
ci9Qcm9maWxlclVJRC5jcHAKaW5kZXggMjI4OTg4YmM1OWUwMzU4NTlkOWRhZDljOTkxYWVlN2Mx
YzRlMmFiYy4uYjVjYjExNDU1ZDcyMzI4MWMwNmE1YjY3ZWM4Y2ZkYTViZmY3MDU3OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyVUlELmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJVSUQuY3BwCkBAIC0zMyw3
ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgUHJvZmlsZXIgewogCiBVSUQgVUlE
OjpjcmVhdGUoKQogewotICAgIHN0YXRpYyBTdGF0aWNMb2NrIGxvY2s7CisgICAgc3RhdGljIExv
Y2sgbG9jazsKICAgICBzdGF0aWMgdWludDY0X3QgY291bnRlcjsKICAgICAKICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihsb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9i
amVjdC5jcHAKaW5kZXggNmE0OTUzOGZhMDJhYmNjYTRmOTc5YWNjMjUwYTg1MTZjYTE4NTE5ZC4u
M2Y1NDM0MDM4ZjIxZTQwMzViYjg0MDExODkwZjBhYzVlZTNjYTQ4MSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKQEAgLTg1Myw4ICs4NTMsOCBAQCBW
ZWN0b3I8U3RyaW5nPiBudW1iZXJpbmdTeXN0ZW1zRm9yTG9jYWxlKGNvbnN0IFN0cmluZyYgbG9j
YWxlKQogICAgIFZlY3RvcjxTdHJpbmc+JiBhdmFpbGFibGVOdW1iZXJpbmdTeXN0ZW1zID0gY2Fj
aGVkTnVtYmVyaW5nU3lzdGVtcy5nZXQoKTsKIAogICAgIGlmIChVTkxJS0VMWShhdmFpbGFibGVO
dW1iZXJpbmdTeXN0ZW1zLmlzRW1wdHkoKSkpIHsKLSAgICAgICAgc3RhdGljIFN0YXRpY0xvY2sg
Y2FjaGVkTnVtYmVyaW5nU3lzdGVtc011dGV4OwotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3Rh
dGljTG9jaz4gbG9jayhjYWNoZWROdW1iZXJpbmdTeXN0ZW1zTXV0ZXgpOworICAgICAgICBzdGF0
aWMgTG9jayBjYWNoZWROdW1iZXJpbmdTeXN0ZW1zTXV0ZXg7CisgICAgICAgIHN0ZDo6bG9ja19n
dWFyZDxMb2NrPiBsb2NrKGNhY2hlZE51bWJlcmluZ1N5c3RlbXNNdXRleCk7CiAgICAgICAgIGlm
IChhdmFpbGFibGVOdW1iZXJpbmdTeXN0ZW1zLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgVUVy
cm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CiAgICAgICAgICAgICBVRW51bWVyYXRpb24q
IG51bWJlcmluZ1N5c3RlbU5hbWVzID0gdW51bXN5c19vcGVuQXZhaWxhYmxlTmFtZXMoJnN0YXR1
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAppbmRleCBiNmJiMTMw
MDA2OGRhOWVjNDg3ZmUwNTBjNTZjY2RkNjZhN2M0ZjQzLi5mOTQ4ZTg4MDMxZDIzOTllOTczYmE0
ZDk1OTJlMGJlOTY4NTlhZTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0xvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9j
ay5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLVN0YXRpY0xvY2sg
R2xvYmFsSlNMb2NrOjpzX3NoYXJlZEluc3RhbmNlTXV0ZXg7CitMb2NrIEdsb2JhbEpTTG9jazo6
c19zaGFyZWRJbnN0YW5jZU11dGV4OwogCiBHbG9iYWxKU0xvY2s6Okdsb2JhbEpTTG9jaygpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5oCmluZGV4IGJlZGYyYjU3MjgwNjc3
NDY0N2RlMjFiN2MzMThmZmEzOGVlMzc2MGQuLmMwYjgyZTY5MTRkODM1NDIzYjkyNWE5NGYwYjFi
ODJjMzQ1NTA2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5oCkBAIC02
MCw3ICs2MCw3IEBAIGNsYXNzIEdsb2JhbEpTTG9jayB7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
R2xvYmFsSlNMb2NrKCk7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgfkdsb2JhbEpTTG9jaygpOwog
cHJpdmF0ZToKLSAgICBzdGF0aWMgU3RhdGljTG9jayBzX3NoYXJlZEluc3RhbmNlTXV0ZXg7Cisg
ICAgc3RhdGljIExvY2sgc19zaGFyZWRJbnN0YW5jZU11dGV4OwogfTsKIAogY2xhc3MgSlNMb2Nr
SG9sZGVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBs
aW5nUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQ
cm9maWxlci5jcHAKaW5kZXggNWU3NDBjMjYxYjE3M2QwODI5OGE1ZTExNmFkYzliYWQ0Nzc3NzEy
OC4uYmI2OTY1ODdkZWVjZmU2MzllMDljNjU0MzhkM2Q1ZWZjMjllMmFlZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKQEAgLTkw
OSw3ICs5MDksNyBAQCBTdHJpbmcgU2FtcGxpbmdQcm9maWxlcjo6c3RhY2tUcmFjZXNBc0pTT04o
KQogCiB2b2lkIFNhbXBsaW5nUHJvZmlsZXI6OnJlZ2lzdGVyRm9yUmVwb3J0QXRFeGl0KCkKIHsK
LSAgICBzdGF0aWMgU3RhdGljTG9jayByZWdpc3RyYXRpb25Mb2NrOworICAgIHN0YXRpYyBMb2Nr
IHJlZ2lzdHJhdGlvbkxvY2s7CiAgICAgc3RhdGljIEhhc2hTZXQ8UmVmUHRyPFNhbXBsaW5nUHJv
ZmlsZXI+PiogcHJvZmlsZXNUb1JlcG9ydDsKIAogICAgIExvY2tIb2xkZXIgaG9sZGVyKHJlZ2lz
dHJhdGlvbkxvY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmluZGV4IDBiMTU1
N2UyMjY5ZjcyNzVlYTQ5YjhkYzY2ZTBhMDFlNzYxZDBkYTkuLjdhZDUxMGZlZGM1ZGU4MTI0ODlk
YTgzZmZhNWM5MTZhNjExNmUwZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAK
QEAgLTQ2Myw3ICs0NjMsNyBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5
cGUpCiAgICAgVk1JbnNwZWN0b3I6Omluc3RhbmNlKCkuYWRkKHRoaXMpOwogfQogCi1zdGF0aWMg
U3RhdGljUmVhZFdyaXRlTG9jayBzX2Rlc3RydWN0aW9uTG9jazsKK3N0YXRpYyBSZWFkV3JpdGVM
b2NrIHNfZGVzdHJ1Y3Rpb25Mb2NrOwogCiB2b2lkIHdhaXRGb3JWTURlc3RydWN0aW9uKCkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GYXVsdFNpZ25hbEhh
bmRsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2lnbmFsSGFu
ZGxlci5jcHAKaW5kZXggNjE5MTQ5MmQ5NDFmZTg4MTAxMmU0NjIxYjljMTJlMDFiNDEzOTE5Ny4u
OTY1NzEwODNlN2YzNTE5MzFlYTViZGFhZWJmYTEzNzM0YjE0ZGM1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHAKQEAg
LTQ3LDcgKzQ3LDcgQEAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogfQog
Ci1zdGF0aWMgU3RhdGljTG9jayBjb2RlTG9jYXRpb25zTG9jazsKK3N0YXRpYyBMb2NrIGNvZGVM
b2NhdGlvbnNMb2NrOwogc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxIYXNoU2V0PHN0ZDo6dHVw
bGU8dm9pZCosIHZvaWQqPj4+IGNvZGVMb2NhdGlvbnM7IC8vIChzdGFydCwgZW5kKQogCiAjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZX0ZBU1RfTUVNT1JZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvSGFzaFRhYmxlLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5jcHAKaW5kZXggYjA2
ZWFmNmMyYWM1ZDA4Yzk1MGZjNzM0YTY2YmQ0MDljOGZhMGUwZi4uMGViNjAzNmM4NjNmYjExM2Zl
Yzg5MTI1NmU1MDc1OTQ0MTE0YWJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSGFzaFRh
YmxlLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUuY3BwCkBAIC0zNiwxMSArMzYs
MTEgQEAgdW5zaWduZWQgSGFzaFRhYmxlU3RhdHM6Om51bUNvbGxpc2lvbnM7CiB1bnNpZ25lZCBI
YXNoVGFibGVTdGF0czo6Y29sbGlzaW9uR3JhcGhbNDA5Nl07CiB1bnNpZ25lZCBIYXNoVGFibGVT
dGF0czo6bWF4Q29sbGlzaW9uczsKIAotc3RhdGljIFN0YXRpY0xvY2sgaGFzaFRhYmxlU3RhdHNN
dXRleDsKK3N0YXRpYyBMb2NrIGhhc2hUYWJsZVN0YXRzTXV0ZXg7CiAKIHZvaWQgSGFzaFRhYmxl
U3RhdHM6OnJlY29yZENvbGxpc2lvbkF0Q291bnQodW5zaWduZWQgY291bnQpCiB7Ci0gICAgc3Rk
Ojpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2soaGFzaFRhYmxlU3RhdHNNdXRleCk7CisgICAg
c3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2soaGFzaFRhYmxlU3RhdHNNdXRleCk7CiAKICAgICBp
ZiAoY291bnQgPiBtYXhDb2xsaXNpb25zKQogICAgICAgICBtYXhDb2xsaXNpb25zID0gY291bnQ7
CkBAIC01MCw3ICs1MCw3IEBAIHZvaWQgSGFzaFRhYmxlU3RhdHM6OnJlY29yZENvbGxpc2lvbkF0
Q291bnQodW5zaWduZWQgY291bnQpCiAKIHZvaWQgSGFzaFRhYmxlU3RhdHM6OmR1bXBTdGF0cygp
CiB7Ci0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2soaGFzaFRhYmxlU3RhdHNN
dXRleCk7CisgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2soaGFzaFRhYmxlU3RhdHNNdXRl
eCk7CiAKICAgICBkYXRhTG9nRigiXG5XVEY6Okhhc2hUYWJsZSBzdGF0aXN0aWNzXG5cbiIpOwog
ICAgIGRhdGFMb2dGKCIldSBhY2Nlc3Nlc1xuIiwgbnVtQWNjZXNzZXMubG9hZCgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1
YWdlLmNwcAppbmRleCBhYTJlOGMxMDAzYzE1NTNjOGViMmMzOTUxOTVjMWM0NzgxYmY2ZjU3Li5l
MWY1ZTAzNjRkOGM4YWQ4ZjY1MTJiMzFiYmM2YmJhMWQxOGViYzhjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3Bw
CkBAIC0zNyw3ICszNyw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1zdGF0aWMgU3RhdGljTG9j
ayB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXg7CitzdGF0aWMgTG9jayB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzTXV0ZXg7CiAKIHR5cGVkZWYgSGFzaE1hcDx2b2lkKiwgTGFuZ3VhZ2VDaGFuZ2VP
YnNlcnZlckZ1bmN0aW9uPiBPYnNlcnZlck1hcDsKIHN0YXRpYyBPYnNlcnZlck1hcCYgb2JzZXJ2
ZXJNYXAoKQpAQCAtMTAyLDcgKzEwMiw3IEBAIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBpc29sYXRl
ZENvcHkoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0cmluZ3MpCiBWZWN0b3I8U3RyaW5nPiB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzKCkKIHsKICAgICB7Ci0gICAgICAgIHN0ZDo6bG9ja19ndWFyZDxT
dGF0aWNMb2NrPiBsb2NrKHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNdXRleCk7CisgICAgICAgIHN0
ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNdXRleCk7CiAg
ICAgICAgIFZlY3RvcjxTdHJpbmc+JiBvdmVycmlkZSA9IHByZWZlcnJlZExhbmd1YWdlc092ZXJy
aWRlKCk7CiAgICAgICAgIGlmICghb3ZlcnJpZGUuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0
dXJuIGlzb2xhdGVkQ29weShvdmVycmlkZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9M
b2NrLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgKaW5kZXggNjMxZGU5NmMwOWMxMTQ5NjY2Mzhh
MTE4MjE2ZGQyNTY3ODM4OWRiMC4uZDNjNzIxNTJjMWM0ZDgxODdkMDA0YzJiYjgyYTEwMjdkMjRm
YTg3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTG9jay5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0xvY2suaApAQCAtMTMyLDE0ICsxMzIsMTIgQEAgY2xhc3MgTG9jayB7CiAgICAgQXRvbWlj
PHVpbnQ4X3Q+IG1fYnl0ZSB7IDAgfTsKIH07CiAKLXVzaW5nIFN0YXRpY0xvY2sgPSBMb2NrOwog
dXNpbmcgTG9ja0hvbGRlciA9IExvY2tlcjxMb2NrPjsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAK
IHVzaW5nIFdURjo6TG9jazsKIHVzaW5nIFdURjo6TG9ja0hvbGRlcjsKLXVzaW5nIFdURjo6U3Rh
dGljTG9jazsKIAogI2VuZGlmIC8vIFdURl9Mb2NrX2gKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvTWFpblRocmVhZC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmNwcAppbmRl
eCA3NDc1ODg4N2U4MDM3NWEyNTUyODE2Y2VmYWNiZmYzMTJmYTc4MmE1Li5kZjIyNDRkMjFkMTk3
ZmU0ZTg3ZmIyZjU1MGExNzA1MzU4ZDllNTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9N
YWluVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmNwcApAQCAtNDYs
NyArNDYsNyBAQCBzdGF0aWMgYm9vbCBjYWxsYmFja3NQYXVzZWQ7IC8vIFRoaXMgZ2xvYmFsIHZh
cmlhYmxlIGlzIG9ubHkgYWNjZXNzZWQgZnJvbSBtYWluCiBzdGF0aWMgVGhyZWFkKiBtYWluVGhy
ZWFkIHsgbnVsbHB0ciB9OwogI2VuZGlmCiAKLXN0YXRpYyBTdGF0aWNMb2NrIG1haW5UaHJlYWRG
dW5jdGlvblF1ZXVlTXV0ZXg7CitzdGF0aWMgTG9jayBtYWluVGhyZWFkRnVuY3Rpb25RdWV1ZU11
dGV4OwogCiBzdGF0aWMgRGVxdWU8RnVuY3Rpb248dm9pZCAoKT4+JiBmdW5jdGlvblF1ZXVlKCkK
IHsKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIGRpc3BhdGNoRnVuY3Rpb25zRnJvbU1haW5UaHJl
YWQoKQogCiAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgewotICAgICAgICAgICAgc3RkOjps
b2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sobWFpblRocmVhZEZ1bmN0aW9uUXVldWVNdXRleCk7
CisgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhtYWluVGhyZWFkRnVuY3Rp
b25RdWV1ZU11dGV4KTsKICAgICAgICAgICAgIGlmICghZnVuY3Rpb25RdWV1ZSgpLnNpemUoKSkK
ICAgICAgICAgICAgICAgICBicmVhazsKIApAQCAtMTQ5LDcgKzE0OSw3IEBAIHZvaWQgY2FsbE9u
TWFpblRocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCiAgICAgYm9vbCBuZWVkVG9T
Y2hlZHVsZSA9IGZhbHNlOwogCiAgICAgewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGlj
TG9jaz4gbG9jayhtYWluVGhyZWFkRnVuY3Rpb25RdWV1ZU11dGV4KTsKKyAgICAgICAgc3RkOjps
b2NrX2d1YXJkPExvY2s+IGxvY2sobWFpblRocmVhZEZ1bmN0aW9uUXVldWVNdXRleCk7CiAgICAg
ICAgIG5lZWRUb1NjaGVkdWxlID0gZnVuY3Rpb25RdWV1ZSgpLnNpemUoKSA9PSAwOwogICAgICAg
ICBmdW5jdGlvblF1ZXVlKCkuYXBwZW5kKFdURk1vdmUoZnVuY3Rpb24pKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmNwcCBiL1NvdXJjZS9XVEYvd3RmL1Bh
cmtpbmdMb3QuY3BwCmluZGV4IDUzOWJjMmFmMWM0MmI0M2UzYTc5Y2MzOTVkMjNmMmEzYTA0NTlh
YTYuLmM3OGMwMjhhODRhYWY1N2UyOGI3NjlkYzEyZGYwZGUxYmM1MjEwNjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Bhcmtp
bmdMb3QuY3BwCkBAIC0yMDUsNyArMjA1LDcgQEAgc3RydWN0IEhhc2h0YWJsZTsKIAogLy8gV2Ug
dHJhY2sgYWxsIGFsbG9jYXRlZCBoYXNodGFibGVzIHNvIHRoYXQgaGFzaHRhYmxlIHJlc2l6aW5n
IGRvZXNuJ3QgYW5nZXIgbGVhayBkZXRlY3RvcnMuCiBWZWN0b3I8SGFzaHRhYmxlKj4qIGhhc2h0
YWJsZXM7Ci1TdGF0aWNXb3JkTG9jayBoYXNodGFibGVzTG9jazsKK1dvcmRMb2NrIGhhc2h0YWJs
ZXNMb2NrOwogCiBzdHJ1Y3QgSGFzaHRhYmxlIHsKICAgICB1bnNpZ25lZCBzaXplOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvUmVhZFdyaXRlTG9jay5oIGIvU291cmNlL1dURi93dGYvUmVh
ZFdyaXRlTG9jay5oCmluZGV4IDY3ZjMwOTQwMmY0YzBkYzg3M2JjNzYxZmFjZTg0MDI5N2ViZmNj
YzkuLjRiZmRkMDkwYTkxYmRhODQxZjZmMDVkN2Q4OGM2Yjg5YzM4ZDliY2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1JlYWRXcml0ZUxvY2suaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWFk
V3JpdGVMb2NrLmgKQEAgLTg1LDEwICs4NSw2IEBAIGNsYXNzIFJlYWRXcml0ZUxvY2s6OldyaXRl
TG9jayA6IHB1YmxpYyBSZWFkV3JpdGVMb2NrIHsKIGlubGluZSBSZWFkV3JpdGVMb2NrOjpSZWFk
TG9jayYgUmVhZFdyaXRlTG9jazo6cmVhZCgpIHsgcmV0dXJuICpzdGF0aWNfY2FzdDxSZWFkTG9j
ayo+KHRoaXMpOyB9CiBpbmxpbmUgUmVhZFdyaXRlTG9jazo6V3JpdGVMb2NrJiBSZWFkV3JpdGVM
b2NrOjp3cml0ZSgpIHsgcmV0dXJuICpzdGF0aWNfY2FzdDxXcml0ZUxvY2sqPih0aGlzKTsgfQog
Ci11c2luZyBTdGF0aWNSZWFkV3JpdGVMb2NrID0gUmVhZFdyaXRlTG9jazsKLQogfSAvLyBuYW1l
c3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6UmVhZFdyaXRlTG9jazsKLXVzaW5nIFdURjo6U3RhdGlj
UmVhZFdyaXRlTG9jazsKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmVjdXJzaXZlTG9j
a0FkYXB0ZXIuaCBiL1NvdXJjZS9XVEYvd3RmL1JlY3Vyc2l2ZUxvY2tBZGFwdGVyLmgKaW5kZXgg
MDMxMzg0ZDg1MjFhYmQ0OGZlMzZlOWRhMmUzNWNiYjc0NDM3Y2I2NC4uYjc0M2YzODY2OWNjNzJl
NzdjZTVhMmVmZGE5YWE1NDVlOGZhZmViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmVj
dXJzaXZlTG9ja0FkYXB0ZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWN1cnNpdmVMb2NrQWRh
cHRlci5oCkBAIC04Niw2ICs4Niw4IEBAIGNsYXNzIFJlY3Vyc2l2ZUxvY2tBZGFwdGVyIHsKICAg
ICBMb2NrVHlwZSBtX2xvY2s7CiB9OwogCi19IC8vIG5hbWVzcGFjZSBXVEYKK3VzaW5nIFJlY3Vy
c2l2ZUxvY2sgPSBSZWN1cnNpdmVMb2NrQWRhcHRlcjxMb2NrPjsKIAorfSAvLyBuYW1lc3BhY2Ug
V1RGCiAKK3VzaW5nIFdURjo6UmVjdXJzaXZlTG9jazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1N0YWNrU3RhdHMuY3BwIGIvU291cmNlL1dURi93dGYvU3RhY2tTdGF0cy5jcHAKaW5kZXgg
OGNiNDYyMjExZGY3YWQ1NTdlM2M3YWUyNDhlNTY1MjhiNTE4NmM4Ni4uNzhmNjI4NTI1ZDIxMTQ4
M2JmZTFlOTVmY2VkYWUyMWUzODFiNWJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU3Rh
Y2tTdGF0cy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvU3RhY2tTdGF0cy5jcHAKQEAgLTQxLDcg
KzQxLDcgQEAKIG5hbWVzcGFjZSBXVEYgewogCiAvLyBDaGVja1BvaW50IG1hbmFnZW1lbnQ6Ci1T
dGF0aWNMb2NrIFN0YWNrU3RhdHM6OnNfc2hhcmVkTXV0ZXg7CitMb2NrIFN0YWNrU3RhdHM6OnNf
c2hhcmVkTXV0ZXg7CiBTdGFja1N0YXRzOjpDaGVja1BvaW50KiBTdGFja1N0YXRzOjpzX3RvcENo
ZWNrUG9pbnQgPSAwOwogU3RhY2tTdGF0czo6TGF5b3V0Q2hlY2tQb2ludCogU3RhY2tTdGF0czo6
c19maXJzdExheW91dENoZWNrUG9pbnQgPSAwOwogU3RhY2tTdGF0czo6TGF5b3V0Q2hlY2tQb2lu
dCogU3RhY2tTdGF0czo6c190b3BMYXlvdXRDaGVja1BvaW50ID0gMDsKQEAgLTY4LDcgKzY4LDcg
QEAgU3RhY2tTdGF0czo6UGVyVGhyZWFkU3RhdHM6OlBlclRocmVhZFN0YXRzKCkKIAogU3RhY2tT
dGF0czo6Q2hlY2tQb2ludDo6Q2hlY2tQb2ludCgpCiB7Ci0gICAgc3RkOjpsb2NrX2d1YXJkPFN0
YXRpY0xvY2s+IGxvY2soU3RhY2tTdGF0czo6c19zaGFyZWRNdXRleCk7CisgICAgc3RkOjpsb2Nr
X2d1YXJkPExvY2s+IGxvY2soU3RhY2tTdGF0czo6c19zaGFyZWRNdXRleCk7CiAgICAgVGhyZWFk
JiB0aHJlYWQgPSBUaHJlYWQ6OmN1cnJlbnQoKTsKICAgICBTdGFja1N0YXRzOjpQZXJUaHJlYWRT
dGF0cyYgdCA9IHRocmVhZC5zdGFja1N0YXRzKCk7CiAgICAgY29uc3QgU3RhY2tCb3VuZHMmIHN0
YWNrID0gdGhyZWFkLnN0YWNrKCk7CkBAIC0xMjYsNyArMTI2LDcgQEAgU3RhY2tTdGF0czo6Q2hl
Y2tQb2ludDo6Q2hlY2tQb2ludCgpCiAKIFN0YWNrU3RhdHM6OkNoZWNrUG9pbnQ6On5DaGVja1Bv
aW50KCkKIHsKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhTdGFja1N0YXRz
OjpzX3NoYXJlZE11dGV4KTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhTdGFja1N0
YXRzOjpzX3NoYXJlZE11dGV4KTsKICAgICBUaHJlYWQmIHRocmVhZCA9IFRocmVhZDo6Y3VycmVu
dCgpOwogICAgIFN0YWNrU3RhdHM6OlBlclRocmVhZFN0YXRzJiB0ID0gdGhyZWFkLnN0YWNrU3Rh
dHMoKTsKIApAQCAtMTU3LDcgKzE1Nyw3IEBAIFN0YWNrU3RhdHM6OkNoZWNrUG9pbnQ6On5DaGVj
a1BvaW50KCkKIAogdm9pZCBTdGFja1N0YXRzOjpwcm9iZSgpCiB7Ci0gICAgc3RkOjpsb2NrX2d1
YXJkPFN0YXRpY0xvY2s+IGxvY2soU3RhY2tTdGF0czo6c19zaGFyZWRNdXRleCk7CisgICAgc3Rk
Ojpsb2NrX2d1YXJkPExvY2s+IGxvY2soU3RhY2tTdGF0czo6c19zaGFyZWRNdXRleCk7CiAgICAg
VGhyZWFkJiB0aHJlYWQgPSBUaHJlYWQ6OmN1cnJlbnQoKTsKICAgICBTdGFja1N0YXRzOjpQZXJU
aHJlYWRTdGF0cyYgdCA9IHRocmVhZC5zdGFja1N0YXRzKCk7CiAgICAgY29uc3QgU3RhY2tCb3Vu
ZHMmIHN0YWNrID0gdGhyZWFkLnN0YWNrKCk7CkBAIC0yMTgsNyArMjE4LDcgQEAgU3RhY2tTdGF0
czo6TGF5b3V0Q2hlY2tQb2ludDo6TGF5b3V0Q2hlY2tQb2ludCgpCiAgICAgLy8gcHJvYmUgZmly
c3QsIHdlIGNhbiBhdm9pZCByZS1lbnRlcmluZyB0aGUgbG9jay4KICAgICBTdGFja1N0YXRzOjpw
cm9iZSgpOwogCi0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2soU3RhY2tTdGF0
czo6c19zaGFyZWRNdXRleCk7CisgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2soU3RhY2tT
dGF0czo6c19zaGFyZWRNdXRleCk7CiAgICAgVGhyZWFkJiB0aHJlYWQgPSBUaHJlYWQ6OmN1cnJl
bnQoKTsKICAgICBTdGFja1N0YXRzOjpQZXJUaHJlYWRTdGF0cyYgdCA9IHRocmVhZC5zdGFja1N0
YXRzKCk7CiAgICAgY29uc3QgU3RhY2tCb3VuZHMmIHN0YWNrID0gdGhyZWFkLnN0YWNrKCk7CkBA
IC0yODcsNyArMjg3LDcgQEAgU3RhY2tTdGF0czo6TGF5b3V0Q2hlY2tQb2ludDo6TGF5b3V0Q2hl
Y2tQb2ludCgpCiAKIFN0YWNrU3RhdHM6OkxheW91dENoZWNrUG9pbnQ6On5MYXlvdXRDaGVja1Bv
aW50KCkKIHsKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhTdGFja1N0YXRz
OjpzX3NoYXJlZE11dGV4KTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhTdGFja1N0
YXRzOjpzX3NoYXJlZE11dGV4KTsKIAogICAgIC8vIFBvcCB0byB0aGUgcHJldmlvdXMgbGF5b3V0
IGNoZWNrcG9pbnQ6CiAgICAgU3RhY2tTdGF0czo6c190b3BMYXlvdXRDaGVja1BvaW50ID0gbV9w
cmV2OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU3RhY2tTdGF0cy5oIGIvU291cmNlL1dU
Ri93dGYvU3RhY2tTdGF0cy5oCmluZGV4IDU0NjRiNGY2MDZhYzVmNzcxYzczYmM4NTZhYmJlMzU4
ZGQ2N2EwMzEuLjEwMTc3OWMwMmIxOGM0M2FiNTc0Y2YzYWZlMTQ1MzRkMjM4NDljYjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1N0YWNrU3RhdHMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9T
dGFja1N0YXRzLmgKQEAgLTEyMCw3ICsxMjAsNyBAQCBjbGFzcyBTdGFja1N0YXRzIHsKIAogcHJp
dmF0ZToKICAgICAvLyBDaGVja1BvaW50IG1hbmFnZW1lbnQ6Ci0gICAgc3RhdGljIFN0YXRpY0xv
Y2sgc19zaGFyZWRNdXRleDsKKyAgICBzdGF0aWMgTG9jayBzX3NoYXJlZE11dGV4OwogICAgIHN0
YXRpYyBDaGVja1BvaW50KiBzX3RvcENoZWNrUG9pbnQ7CiAgICAgc3RhdGljIExheW91dENoZWNr
UG9pbnQqIHNfZmlyc3RMYXlvdXRDaGVja1BvaW50OwogICAgIHN0YXRpYyBMYXlvdXRDaGVja1Bv
aW50KiBzX3RvcExheW91dENoZWNrUG9pbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9U
aHJlYWRNZXNzYWdlLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZE1lc3NhZ2UuY3BwCmluZGV4
IDU2ZDZiY2Y3ZDUyZWNlYTM4YWI0ZTg2ODRlNGM2MjM1NjAwMmU2NjkuLjg2NzRjZjUzZWI3Njdh
YTQyYmRkODVlOWQzMmFkZWZlNDNhNjA1MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Ro
cmVhZE1lc3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZE1lc3NhZ2UuY3BwCkBA
IC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXVEYgewogCiBNZXNzYWdlU3RhdHVzIHNlbmRNZXNz
YWdlU2NvcGVkKFRocmVhZCYgdGhyZWFkLCBjb25zdCBUaHJlYWRNZXNzYWdlJiBtZXNzYWdlKQog
ewotICAgIHN0YXRpYyBTdGF0aWNMb2NrIG1lc3NhZ2VMb2NrOworICAgIHN0YXRpYyBMb2NrIG1l
c3NhZ2VMb2NrOwogICAgIGF1dG8gbG9ja2hvbGRlciA9IGhvbGRMb2NrKG1lc3NhZ2VMb2NrKTsK
IAogICAgIGF1dG8gcmVzdWx0ID0gdGhyZWFkLnN1c3BlbmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGlu
Z1B0aHJlYWRzLmNwcAppbmRleCAwMWVkYWRjYjNkNWM1YmQ2OWE5MjE1YjUwN2I5YTUyMzY2OTVk
Yzg2Li5kZGFjNzM3NGEzYzZmOTUyNWNlZTYyMDYzZmY1OWVmZjE3NjE3ODdmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKKysrIGIvU291cmNlL1dURi93
dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCkBAIC02OCw3ICs2OCw3IEBACiAKIG5hbWVzcGFjZSBX
VEYgewogCi1zdGF0aWMgU3RhdGljTG9jayBnbG9iYWxTdXNwZW5kTG9jazsKK3N0YXRpYyBMb2Nr
IGdsb2JhbFN1c3BlbmRMb2NrOwogCiBUaHJlYWQ6On5UaHJlYWQoKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGlu
Z1dpbi5jcHAKaW5kZXggOTc5OWZjMWViYjM2ZGRkOGQ3NGQwZjhlMGZkNDUyODkwOTNkY2IyMi4u
NmYzZDQxZDZhMDQ1N2ZhYjBjMDZlOGVkMWI5ZDk1YzM4YzUwNWMyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRp
bmdXaW4uY3BwCkBAIC0xMDAsNyArMTAwLDcgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLXN0YXRp
YyBTdGF0aWNMb2NrIGdsb2JhbFN1c3BlbmRMb2NrOworc3RhdGljIExvY2sgZ2xvYmFsU3VzcGVu
ZExvY2s7CiAKIFRocmVhZDo6flRocmVhZCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9Xb3JkTG9jay5oIGIvU291cmNlL1dURi93dGYvV29yZExvY2suaAppbmRleCA3YTkwZjhiNjA5
ZDgyOTEyZTYyY2FiYmY0OWE2NTcwZDJhMmMxMzBlLi5iZjEzNTRhNmI4NmNlNzJkNmFjN2JlMTQz
MGE5MzU5Y2YyMzQzZTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JkTG9jay5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1dvcmRMb2NrLmgKQEAgLTEwMSwxNCArMTAxLDEyIEBAIGNsYXNz
IFdvcmRMb2NrIHsKICAgICBBdG9taWM8dWludHB0cl90PiBtX3dvcmQgeyAwIH07CiB9OwogCi11
c2luZyBTdGF0aWNXb3JkTG9jayA9IFdvcmRMb2NrOwogdXNpbmcgV29yZExvY2tIb2xkZXIgPSBM
b2NrZXI8V29yZExvY2s+OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogdXNpbmcgV1RGOjpXb3Jk
TG9jazsKIHVzaW5nIFdURjo6V29yZExvY2tIb2xkZXI7Ci11c2luZyBXVEY6OlN0YXRpY1dvcmRM
b2NrOwogCiAjZW5kaWYgLy8gV1RGX1dvcmRMb2NrX2gKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNw
cAppbmRleCBhYzIwM2QxN2NmODlhMjAzYjlmYWNiMWMxYThiYWIxYjY4NDA5YzVkLi44M2Q3Yjkw
YzE2ZDViODhhOWQ3OWI2ZjQ1YTlmMDE0ZWVhNzQ0ZjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9jZi9MYW5ndWFnZUNGLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNG
LmNwcApAQCAtMzgsNyArMzgsNyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotc3RhdGljIFN0YXRp
Y0xvY2sgcHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXg7CitzdGF0aWMgTG9jayBwcmVmZXJyZWRMYW5n
dWFnZXNNdXRleDsKIAogc3RhdGljIFZlY3RvcjxTdHJpbmc+JiBwcmVmZXJyZWRMYW5ndWFnZXMo
KQogewpAQCAtNzYsNyArNzYsNyBAQCBzdGF0aWMgU3RyaW5nIGh0dHBTdHlsZUxhbmd1YWdlQ29k
ZShDRlN0cmluZ1JlZiBsYW5ndWFnZSkKIHN0YXRpYyB2b2lkIGxhbmd1YWdlUHJlZmVyZW5jZXNE
aWRDaGFuZ2UoQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsIHZvaWQqLCBDRlN0cmluZ1JlZiwgY29u
c3Qgdm9pZCosIENGRGljdGlvbmFyeVJlZikKIHsKICAgICB7Ci0gICAgICAgIHN0ZDo6bG9ja19n
dWFyZDxTdGF0aWNMb2NrPiBsb2NrKHByZWZlcnJlZExhbmd1YWdlc011dGV4KTsKKyAgICAgICAg
c3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2socHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXgpOwogICAg
ICAgICBwcmVmZXJyZWRMYW5ndWFnZXMoKS5jbGVhcigpOwogICAgIH0KICAgICAKQEAgLTkzLDcg
KzkzLDcgQEAgVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkK
ICAgICB9KTsKICNlbmRpZgogCi0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2so
cHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2Nr
KHByZWZlcnJlZExhbmd1YWdlc011dGV4KTsKICAgICBWZWN0b3I8U3RyaW5nPiYgdXNlclByZWZl
cnJlZExhbmd1YWdlcyA9IHByZWZlcnJlZExhbmd1YWdlcygpOwogCiAgICAgaWYgKHVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMuaXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9k
dG9hLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2R0b2EuY3BwCmluZGV4IDk3MmIyODk5ZGRhMzczNzJj
Y2E0ZDg5Y2U1OTk1OTI5OWY5Nzg0ZTEuLmVkZWZkN2Y4ODQzMDVmYzJjMjBjYjNmM2JjNTcxYTdm
OTgwZTMwZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2R0b2EuY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL2R0b2EuY3BwCkBAIC01NSw3ICs1NSw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewog
Ci1zdGF0aWMgU3RhdGljTG9jayBzX2R0b2FQNU11dGV4Oworc3RhdGljIExvY2sgc19kdG9hUDVN
dXRleDsKIAogdHlwZWRlZiB1bmlvbiB7CiAgICAgZG91YmxlIGQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0cmluZ0ltcGwuY3BwIGIvU291cmNlL1dURi93dGYvdGV4
dC9BdG9taWNTdHJpbmdJbXBsLmNwcAppbmRleCAxY2E4M2NjYWExNzI5ZWVmY2UyNDdhMDJhODc0
MmFkYmM4NTU5ZWYyLi5mMTAzZDllNTEwYTEyZmNkOWE3NzdmYjRkNzMxZmQzNDRkZTkzZTViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0cmluZ0ltcGwuY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nSW1wbC5jcHAKQEAgLTQ3LDcgKzQ3LDcg
QEAgdXNpbmcgbmFtZXNwYWNlIFVuaWNvZGU7CiBjbGFzcyBBdG9taWNTdHJpbmdUYWJsZUxvY2tl
ciA6IHB1YmxpYyBMb2NrSG9sZGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdG9taWNT
dHJpbmdUYWJsZUxvY2tlcik7CiAKLSAgICBzdGF0aWMgU3RhdGljTG9jayBzX3N0cmluZ1RhYmxl
TG9jazsKKyAgICBzdGF0aWMgTG9jayBzX3N0cmluZ1RhYmxlTG9jazsKIHB1YmxpYzoKICAgICBB
dG9taWNTdHJpbmdUYWJsZUxvY2tlcigpCiAgICAgICAgIDogTG9ja0hvbGRlcigmc19zdHJpbmdU
YWJsZUxvY2spCkBAIC01NSw3ICs1NSw3IEBAIGNsYXNzIEF0b21pY1N0cmluZ1RhYmxlTG9ja2Vy
IDogcHVibGljIExvY2tIb2xkZXIgewogICAgIH0KIH07CiAKLVN0YXRpY0xvY2sgQXRvbWljU3Ry
aW5nVGFibGVMb2NrZXI6OnNfc3RyaW5nVGFibGVMb2NrOworTG9jayBBdG9taWNTdHJpbmdUYWJs
ZUxvY2tlcjo6c19zdHJpbmdUYWJsZUxvY2s7CiAKICNlbHNlCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmlu
Z1ZpZXcuY3BwCmluZGV4IDU4MDc5OTc2NTI4ZDIzMDllY2EwNGNlOWI3NDFjMjViOGRjNGJjM2Yu
LmVjMTA5MTk0MTZkZGEwZTBmYzU2MTZkNjZkNWZmZGJhN2RmOGRmNWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9TdHJpbmdWaWV3LmNwcApAQCAtMjE1LDcgKzIxNSw3IEBAIFN0cmluZ1ZpZXc6OlVuZGVybHlp
bmdTdHJpbmc6OlVuZGVybHlpbmdTdHJpbmcoY29uc3QgU3RyaW5nSW1wbCYgc3RyaW5nKQogewog
fQogCi1zdGF0aWMgU3RhdGljTG9jayB1bmRlcmx5aW5nU3RyaW5nc011dGV4Oworc3RhdGljIExv
Y2sgdW5kZXJseWluZ1N0cmluZ3NNdXRleDsKIAogc3RhdGljIEhhc2hNYXA8Y29uc3QgU3RyaW5n
SW1wbCosIFN0cmluZ1ZpZXc6OlVuZGVybHlpbmdTdHJpbmcqPiYgdW5kZXJseWluZ1N0cmluZ3Mo
KQogewpAQCAtMjI3LDcgKzIyNyw3IEBAIHZvaWQgU3RyaW5nVmlldzo6aW52YWxpZGF0ZShjb25z
dCBTdHJpbmdJbXBsJiBzdHJpbmdUb0JlRGVzdHJveWVkKQogewogICAgIFVuZGVybHlpbmdTdHJp
bmcqIHVuZGVybHlpbmdTdHJpbmc7CiAgICAgewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3Rh
dGljTG9jaz4gbG9jayh1bmRlcmx5aW5nU3RyaW5nc011dGV4KTsKKyAgICAgICAgc3RkOjpsb2Nr
X2d1YXJkPExvY2s+IGxvY2sodW5kZXJseWluZ1N0cmluZ3NNdXRleCk7CiAgICAgICAgIHVuZGVy
bHlpbmdTdHJpbmcgPSB1bmRlcmx5aW5nU3RyaW5ncygpLnRha2UoJnN0cmluZ1RvQmVEZXN0cm95
ZWQpOwogICAgICAgICBpZiAoIXVuZGVybHlpbmdTdHJpbmcpCiAgICAgICAgICAgICByZXR1cm47
CkBAIC0yNDQsNyArMjQ0LDcgQEAgYm9vbCBTdHJpbmdWaWV3Ojp1bmRlcmx5aW5nU3RyaW5nSXNW
YWxpZCgpIGNvbnN0CiB2b2lkIFN0cmluZ1ZpZXc6OmFkb3B0VW5kZXJseWluZ1N0cmluZyhVbmRl
cmx5aW5nU3RyaW5nKiB1bmRlcmx5aW5nU3RyaW5nKQogewogICAgIGlmIChtX3VuZGVybHlpbmdT
dHJpbmcpIHsKLSAgICAgICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sodW5kZXJs
eWluZ1N0cmluZ3NNdXRleCk7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKHVu
ZGVybHlpbmdTdHJpbmdzTXV0ZXgpOwogICAgICAgICBpZiAoIS0tbV91bmRlcmx5aW5nU3RyaW5n
LT5yZWZDb3VudCkgewogICAgICAgICAgICAgaWYgKG1fdW5kZXJseWluZ1N0cmluZy0+aXNWYWxp
ZCkgewogICAgICAgICAgICAgICAgIHVuZGVybHlpbmdTdHJpbmdzKCkucmVtb3ZlKCZtX3VuZGVy
bHlpbmdTdHJpbmctPnN0cmluZyk7CkBAIC0yNjEsNyArMjYxLDcgQEAgdm9pZCBTdHJpbmdWaWV3
OjpzZXRVbmRlcmx5aW5nU3RyaW5nKGNvbnN0IFN0cmluZ0ltcGwqIHN0cmluZykKICAgICBpZiAo
IXN0cmluZykKICAgICAgICAgdW5kZXJseWluZ1N0cmluZyA9IG51bGxwdHI7CiAgICAgZWxzZSB7
Ci0gICAgICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHVuZGVybHlpbmdTdHJp
bmdzTXV0ZXgpOworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayh1bmRlcmx5aW5n
U3RyaW5nc011dGV4KTsKICAgICAgICAgYXV0byByZXN1bHQgPSB1bmRlcmx5aW5nU3RyaW5ncygp
LmFkZChzdHJpbmcsIG51bGxwdHIpOwogICAgICAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCiAg
ICAgICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gbmV3IFVuZGVybHlpbmdTdHJpbmco
KnN0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Db2xsYXRv
cklDVS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKaW5k
ZXggZjVlMzJhMWJmZjNmOTdhOTZjMTU0YzIxZDc2NmRhYWQ0M2I1N2RlNS4uZmZjZDVmNzFjODAx
YjVkMmRlZjdkOWZlNDg2NzQxYjc5ZThlYjhlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
dW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUv
aWN1L0NvbGxhdG9ySUNVLmNwcApAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgVUNvbGxhdG9yKiBj
YWNoZWRDb2xsYXRvcjsKIHN0YXRpYyBjaGFyKiBjYWNoZWRDb2xsYXRvckxvY2FsZTsKIHN0YXRp
YyBib29sIGNhY2hlZENvbGxhdG9yU2hvdWxkU29ydExvd2VyY2FzZUZpcnN0OwogCi1zdGF0aWMg
U3RhdGljTG9jayBjYWNoZWRDb2xsYXRvck11dGV4Oworc3RhdGljIExvY2sgY2FjaGVkQ29sbGF0
b3JNdXRleDsKIAogI2lmICEoT1MoREFSV0lOKSAmJiBVU0UoQ0YpKQogCkBAIC0xMDYsNyArMTA2
LDcgQEAgQ29sbGF0b3I6OkNvbGxhdG9yKGNvbnN0IGNoYXIqIGxvY2FsZSwgYm9vbCBzaG91bGRT
b3J0TG93ZXJjYXNlRmlyc3QpCiAgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7
CiAKICAgICB7Ci0gICAgICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKGNhY2hl
ZENvbGxhdG9yTXV0ZXgpOworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhjYWNo
ZWRDb2xsYXRvck11dGV4KTsKICAgICAgICAgaWYgKGNhY2hlZENvbGxhdG9yICYmIGxvY2FsZXNN
YXRjaChjYWNoZWRDb2xsYXRvckxvY2FsZSwgbG9jYWxlKSAmJiBjYWNoZWRDb2xsYXRvclNob3Vs
ZFNvcnRMb3dlcmNhc2VGaXJzdCA9PSBzaG91bGRTb3J0TG93ZXJjYXNlRmlyc3QpIHsKICAgICAg
ICAgICAgIG1fY29sbGF0b3IgPSBjYWNoZWRDb2xsYXRvcjsKICAgICAgICAgICAgIG1fbG9jYWxl
ID0gY2FjaGVkQ29sbGF0b3JMb2NhbGU7CkBAIC0xMzYsNyArMTM2LDcgQEAgQ29sbGF0b3I6OkNv
bGxhdG9yKGNvbnN0IGNoYXIqIGxvY2FsZSwgYm9vbCBzaG91bGRTb3J0TG93ZXJjYXNlRmlyc3Qp
CiAKIENvbGxhdG9yOjp+Q29sbGF0b3IoKQogewotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNM
b2NrPiBsb2NrKGNhY2hlZENvbGxhdG9yTXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2Nr
PiBsb2NrKGNhY2hlZENvbGxhdG9yTXV0ZXgpOwogICAgIGlmIChjYWNoZWRDb2xsYXRvcikgewog
ICAgICAgICB1Y29sX2Nsb3NlKGNhY2hlZENvbGxhdG9yKTsKICAgICAgICAgZmFzdEZyZWUoY2Fj
aGVkQ29sbGF0b3JMb2NhbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvd2luL0xhbmd1
YWdlV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAKaW5kZXggNzYw
MTA5ODU1MDAzZGEwYzJlYjMyNzk5NjE3OWIxNjNkMjk4MzgyNS4uZDMxZDk1N2EzMWJiY2E5Mjcz
NzgzODRhYjAxNTJmNzBjZjZjMTUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvd2luL0xh
bmd1YWdlV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwCkBA
IC0zNCw3ICszNCw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1zdGF0aWMgU3RhdGljTG9jayBw
bGF0Zm9ybUxhbmd1YWdlTXV0ZXg7CitzdGF0aWMgTG9jayBwbGF0Zm9ybUxhbmd1YWdlTXV0ZXg7
CiAKIHN0YXRpYyBTdHJpbmcgbG9jYWxlSW5mbyhMQ1RZUEUgbG9jYWxlVHlwZSwgY29uc3QgU3Ry
aW5nJiBmYWxsYmFjaykKIHsKQEAgLTU2LDcgKzU2LDcgQEAgc3RhdGljIFN0cmluZyBsb2NhbGVJ
bmZvKExDVFlQRSBsb2NhbGVUeXBlLCBjb25zdCBTdHJpbmcmIGZhbGxiYWNrKQogCiBzdGF0aWMg
U3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQogewotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNM
b2NrPiBsb2NrKHBsYXRmb3JtTGFuZ3VhZ2VNdXRleCk7CisgICAgc3RkOjpsb2NrX2d1YXJkPExv
Y2s+IGxvY2socGxhdGZvcm1MYW5ndWFnZU11dGV4KTsKIAogICAgIHN0YXRpYyBTdHJpbmcgY29t
cHV0ZWREZWZhdWx0TGFuZ3VhZ2U7CiAgICAgaWYgKCFjb21wdXRlZERlZmF1bHRMYW5ndWFnZS5p
c0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2UuY3BwCmluZGV4IDQ2MWUwMWE5M2IzZDk3YTc4OTgyM2Q1M2M5MjNlMWU5MGQ1M2FkZmYuLjQ5
MTVmY2MwM2MyZjRkM2Q0ZmE3M2UyMzcwZDA5ZDAxYTQxOWZmNzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBAIC0xNTUsNyArMTU1LDcg
QEAgc3RhdGljIGJvb2wgcmV0cmlldmVUZXh0UmVzdWx0RnJvbURhdGFiYXNlKFNRTGl0ZURhdGFi
YXNlJiBkYiwgY29uc3QgU3RyaW5nJiBxdWUKIH0KIAogLy8gRklYTUU6IG1vdmUgYWxsIGd1aWQt
cmVsYXRlZCBmdW5jdGlvbnMgdG8gYSBEYXRhYmFzZVZlcnNpb25UcmFja2VyIGNsYXNzLgotc3Rh
dGljIFN0YXRpY0xvY2sgZ3VpZE11dGV4Oworc3RhdGljIExvY2sgZ3VpZE11dGV4OwogCiBzdGF0
aWMgSGFzaE1hcDxEYXRhYmFzZUdVSUQsIFN0cmluZz4mIGd1aWRUb1ZlcnNpb25NYXAoKQogewpA
QCAtMjA0LDcgKzIwNCw3IEBAIERhdGFiYXNlOjpEYXRhYmFzZShEYXRhYmFzZUNvbnRleHQmIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBlCiAgICAgLCBtX2RhdGFi
YXNlQXV0aG9yaXplcihEYXRhYmFzZUF1dGhvcml6ZXI6OmNyZWF0ZSh1bnF1YWxpZmllZEluZm9U
YWJsZU5hbWUpKQogewogICAgIHsKLSAgICAgICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+
IGxvY2tlcihndWlkTXV0ZXgpOworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9ja2Vy
KGd1aWRNdXRleCk7CiAKICAgICAgICAgbV9ndWlkID0gZ3VpZEZvck9yaWdpbkFuZE5hbWUoc2Vj
dXJpdHlPcmlnaW4oKS5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpLCBuYW1lKTsKICAgICAg
ICAgZ3VpZFRvRGF0YWJhc2VNYXAoKS5lbnN1cmUobV9ndWlkLCBbXSB7CkBAIC0zNTYsNyArMzU2
LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gRGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJv
b2wgc2hvdWxkU2V0VmVyc2lvbkluTmV3RGF0YWIKIAogICAgIFN0cmluZyBjdXJyZW50VmVyc2lv
bjsKICAgICB7Ci0gICAgICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrZXIoZ3Vp
ZE11dGV4KTsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2tlcihndWlkTXV0ZXgp
OwogCiAgICAgICAgIGF1dG8gZW50cnkgPSBndWlkVG9WZXJzaW9uTWFwKCkuZmluZChtX2d1aWQp
OwogICAgICAgICBpZiAoZW50cnkgIT0gZ3VpZFRvVmVyc2lvbk1hcCgpLmVuZCgpKSB7CkBAIC00
NDUsNyArNDQ1LDcgQEAgdm9pZCBEYXRhYmFzZTo6Y2xvc2VEYXRhYmFzZSgpCiAgICAgRGF0YWJh
c2VUcmFja2VyOjpzaW5nbGV0b24oKS5yZW1vdmVPcGVuRGF0YWJhc2UoKnRoaXMpOwogCiAgICAg
ewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9ja2VyKGd1aWRNdXRleCk7
CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrZXIoZ3VpZE11dGV4KTsKIAogICAg
ICAgICBhdXRvIGl0ID0gZ3VpZFRvRGF0YWJhc2VNYXAoKS5maW5kKG1fZ3VpZCk7CiAgICAgICAg
IEFTU0VSVChpdCAhPSBndWlkVG9EYXRhYmFzZU1hcCgpLmVuZCgpKTsKQEAgLTUwMywxNCArNTAz
LDE0IEBAIHZvaWQgRGF0YWJhc2U6OnNldEV4cGVjdGVkVmVyc2lvbihjb25zdCBTdHJpbmcmIHZl
cnNpb24pCiAKIFN0cmluZyBEYXRhYmFzZTo6Z2V0Q2FjaGVkVmVyc2lvbigpIGNvbnN0CiB7Ci0g
ICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2tlcihndWlkTXV0ZXgpOworICAgIHN0
ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrZXIoZ3VpZE11dGV4KTsKIAogICAgIHJldHVybiBndWlk
VG9WZXJzaW9uTWFwKCkuZ2V0KG1fZ3VpZCkuaXNvbGF0ZWRDb3B5KCk7CiB9CiAKIHZvaWQgRGF0
YWJhc2U6OnNldENhY2hlZFZlcnNpb24oY29uc3QgU3RyaW5nJiBhY3R1YWxWZXJzaW9uKQogewot
ICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrZXIoZ3VpZE11dGV4KTsKKyAgICBz
dGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9ja2VyKGd1aWRNdXRleCk7CiAKICAgICB1cGRhdGVHVUlE
VmVyc2lvbk1hcChtX2d1aWQsIGFjdHVhbFZlcnNpb24pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCmluZGV4IGEw
ODI4YTM3MWI0NjdmODc3ZDc5MmVhN2YzYjMwYjlhMDhjZjgwMDUuLjhmZGE2MmE2ZTYzZGZmNGRj
NmU3OGY1ZWQ1MTM4YTI1NWMxMTc4OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKQEAgLTEyNzUsOCArMTI3NSw4
IEBAIGJvb2wgRGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZUZpbGVJZkVtcHR5KGNvbnN0
IFN0cmluZyYgcGF0aCkKICAgICByZXR1cm4gU1FMaXRlRmlsZVN5c3RlbTo6ZGVsZXRlRGF0YWJh
c2VGaWxlKHBhdGgpOwogfQogCi1zdGF0aWMgU3RhdGljTG9jayBvcGVuRGF0YWJhc2VMb2NrOwot
U3RhdGljTG9jayYgRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJhc2VNdXRleCgpCitzdGF0aWMg
TG9jayBvcGVuRGF0YWJhc2VMb2NrOworTG9jayYgRGF0YWJhc2VUcmFja2VyOjpvcGVuRGF0YWJh
c2VNdXRleCgpCiB7CiAgICAgcmV0dXJuIG9wZW5EYXRhYmFzZUxvY2s7CiB9CkBAIC0xMzAwLDcg
KzEzMDAsNyBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6c2V0Q2xpZW50KERhdGFiYXNlTWFuYWdl
ckNsaWVudCogY2xpZW50KQogICAgIG1fY2xpZW50ID0gY2xpZW50OwogfQogCi1zdGF0aWMgU3Rh
dGljTG9jayBub3RpZmljYXRpb25Mb2NrOworc3RhdGljIExvY2sgbm90aWZpY2F0aW9uTG9jazsK
IAogdXNpbmcgTm90aWZpY2F0aW9uUXVldWUgPSBWZWN0b3I8c3RkOjpwYWlyPFNlY3VyaXR5T3Jp
Z2luRGF0YSwgU3RyaW5nPj47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5oCmluZGV4IDJiZDExNDdmMDkwYmI5YTczNTY2NDQ2
YjVhNDQ2MmExMzEwNWI1ODYuLmY3YzA3YjY1NjEwNjI3OGJjMTRmYjM5MjJkOWZiMWRmZTIwOWE4
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUcmFja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRyYWNrZXIuaApAQCAtMTAxLDcgKzEwMSw3IEBAIGNsYXNzIERhdGFiYXNlVHJhY2tlciB7
CiAgICAgLy8gTW9iaWxlU2FmYXJpIHdpbGwgZ3JhYiB0aGlzIG11dGV4IG9uIHRoZSBtYWluIHRo
cmVhZCBiZWZvcmUgZGlzcGF0Y2hpbmcgdGhlIHRhc2sgdG8gCiAgICAgLy8gY2xlYW4gdXAgemVy
byBieXRlIGRhdGFiYXNlIGZpbGVzLiAgQW55IG9wZXJhdGlvbnMgdG8gb3BlbiBuZXcgZGF0YWJh
c2Ugd2lsbCBoYXZlIHRvCiAgICAgLy8gd2FpdCBmb3IgdGhhdCB0YXNrIHRvIGZpbmlzaCBieSB3
YWl0aW5nIG9uIHRoaXMgbXV0ZXguCi0gICAgc3RhdGljIFN0YXRpY0xvY2smIG9wZW5EYXRhYmFz
ZU11dGV4KCk7CisgICAgc3RhdGljIExvY2smIG9wZW5EYXRhYmFzZU11dGV4KCk7CiAgICAgCiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZW1wdHlEYXRhYmFzZUZpbGVzUmVtb3ZhbFRh
c2tXaWxsQmVTY2hlZHVsZWQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbXB0
eURhdGFiYXNlRmlsZXNSZW1vdmFsVGFza0RpZEZpbmlzaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCA4Mjg3MTBjMmVkOTM0NTU0
MDU5YzcxNWJjNzI3MGU0NWQ5ZjczOTVlLi4xNTQzNTAxZDgwZWM0MmM1OGFkMGFiYmVmM2UzZWU4
YzI3NTE5YTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmNwcApAQCAtMTg1LDkgKzE4NSw5IEBAIEhhc2hTZXQ8V2ViU29ja2V0Kj4mIFdlYlNv
Y2tldDo6YWxsQWN0aXZlV2ViU29ja2V0cyhjb25zdCBMb2NrSG9sZGVyJikKICAgICByZXR1cm4g
YWN0aXZlV2ViU29ja2V0czsKIH0KIAotU3RhdGljTG9jayYgV2ViU29ja2V0OjphbGxBY3RpdmVX
ZWJTb2NrZXRzTXV0ZXgoKQorTG9jayYgV2ViU29ja2V0OjphbGxBY3RpdmVXZWJTb2NrZXRzTXV0
ZXgoKQogewotICAgIHN0YXRpYyBTdGF0aWNMb2NrIG11dGV4OworICAgIHN0YXRpYyBMb2NrIG11
dGV4OwogICAgIHJldHVybiBtdXRleDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldC5oCmluZGV4IGQ4YTkwZDk1ZWNlNjI2NWNkODlkYmIzYTVhNjRk
YmRmMWQ1OTE0ZDAuLjkwMTIxZjcwZDMwODgwYzJhMDJmOTY1ODBhZTA1NzI4ZmI4YmRkYzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKQEAgLTYw
LDcgKzYwLDcgQEAgY2xhc3MgV2ViU29ja2V0IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2Vi
U29ja2V0PiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGkKICAgICB2aXJ0dWFsIH5XZWJTb2Nr
ZXQoKTsKIAogICAgIHN0YXRpYyBIYXNoU2V0PFdlYlNvY2tldCo+JiBhbGxBY3RpdmVXZWJTb2Nr
ZXRzKGNvbnN0IExvY2tIb2xkZXImKTsKLSAgICBzdGF0aWMgU3RhdGljTG9jayYgYWxsQWN0aXZl
V2ViU29ja2V0c011dGV4KCk7CisgICAgc3RhdGljIExvY2smIGFsbEFjdGl2ZVdlYlNvY2tldHNN
dXRleCgpOwogCiAgICAgZW51bSBTdGF0ZSB7CiAgICAgICAgIENPTk5FQ1RJTkcgPSAwLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCmluZGV4IDRiMzhj
YjYwZGZhMGM5NzMwYTkyOGNlNWQ5MjExMjMwMjYyNzU5NjUuLjM5ZTU2NjVmNzE2ZWQwYmNjMmJj
NDYyN2UxOTY2ODkyYzU2ZWJiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9v
YmpjL1dlYlNjcmlwdE9iamVjdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9X
ZWJTY3JpcHRPYmplY3QubW0KQEAgLTcxLDcgKzcxLDcgQEAgdXNpbmcgSlNDOjptYWtlU291cmNl
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBTdGF0aWNMb2NrIHNwaW5Mb2NrOwor
c3RhdGljIExvY2sgc3BpbkxvY2s7CiBzdGF0aWMgQ3JlYXRlV3JhcHBlckZ1bmN0aW9uIGNyZWF0
ZURPTVdyYXBwZXJGdW5jdGlvbjsKIHN0YXRpYyBEaXNjb25uZWN0V2luZG93V3JhcHBlckZ1bmN0
aW9uIGRpc2Nvbm5lY3RXaW5kb3dXcmFwcGVyRnVuY3Rpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuY3BwCmluZGV4IDIyZGNmY2JjZGFl
OTViYjExYzhmYjdiZjY5OWNlOWRlM2UyMjgzMzMuLjE4N2ExZGE4ZTAwMjYzOTIzZDczNWMyMDg4
YjVkMWQ1OWFiYzdiMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9B
bGdvcml0aG1SZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0Fs
Z29yaXRobVJlZ2lzdHJ5LmNwcApAQCAtMzQsNyArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXN0YXRpYyBTdGF0aWNMb2NrIHJlZ2lzdHJ5TXV0ZXg7CitzdGF0aWMgTG9jayByZWdp
c3RyeU11dGV4OwogCiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeSYgQ3J5cHRvQWxnb3JpdGhtUmVn
aXN0cnk6OnNpbmdsZXRvbigpCiB7CkBAIC01Miw3ICs1Miw3IEBAIHN0ZDo6b3B0aW9uYWw8Q3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllcj4gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6OmlkZW50aWZp
ZXIoY29uCiAgICAgaWYgKG5hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogCi0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2socmVnaXN0cnlNdXRl
eCk7CisgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2socmVnaXN0cnlNdXRleCk7CiAKICAg
ICAvLyBGSVhNRTogSG93IGlzIGl0IGhlbHBmdWwgdG8gY2FsbCBpc29sYXRlZENvcHkgb24gdGhl
IGFyZ3VtZW50IHRvIGZpbmQ/CiAgICAgYXV0byBpZGVudGlmaWVyID0gbV9pZGVudGlmaWVycy5m
aW5kKG5hbWUuaXNvbGF0ZWRDb3B5KCkpOwpAQCAtNjQsNyArNjQsNyBAQCBzdGQ6Om9wdGlvbmFs
PENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI+IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5OjppZGVu
dGlmaWVyKGNvbgogCiBTdHJpbmcgQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6Om5hbWUoQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyKQogewotICAgIHN0ZDo6bG9ja19ndWFyZDxT
dGF0aWNMb2NrPiBsb2NrKHJlZ2lzdHJ5TXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2Nr
PiBsb2NrKHJlZ2lzdHJ5TXV0ZXgpOwogCiAgICAgYXV0byBjb250cnVjdG9yID0gbV9jb25zdHJ1
Y3RvcnMuZmluZChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaWRlbnRpZmllcikpOwogICAgIGlmIChj
b250cnVjdG9yID09IG1fY29uc3RydWN0b3JzLmVuZCgpKQpAQCAtNzUsNyArNzUsNyBAQCBTdHJp
bmcgQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6Om5hbWUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
ciBpZGVudGlmaWVyKQogCiBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtPiBDcnlwdG9BbGdvcml0aG1S
ZWdpc3RyeTo6Y3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsK
LSAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhyZWdpc3RyeU11dGV4KTsKKyAg
ICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhyZWdpc3RyeU11dGV4KTsKIAogICAgIGF1dG8g
Y29udHJ1Y3RvciA9IG1fY29uc3RydWN0b3JzLmZpbmQoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGlk
ZW50aWZpZXIpKTsKICAgICBpZiAoY29udHJ1Y3RvciA9PSBtX2NvbnN0cnVjdG9ycy5lbmQoKSkK
QEAgLTg2LDcgKzg2LDcgQEAgUmVmUHRyPENyeXB0b0FsZ29yaXRobT4gQ3J5cHRvQWxnb3JpdGht
UmVnaXN0cnk6OmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWUKIAogdm9pZCBDcnlwdG9B
bGdvcml0aG1SZWdpc3RyeTo6cmVnaXN0ZXJBbGdvcml0aG0oY29uc3QgU3RyaW5nJiBuYW1lLCBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIsIENyeXB0b0FsZ29yaXRobUNvbnN0
cnVjdG9yIGNvbnN0cnVjdG9yKQogewotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBs
b2NrKHJlZ2lzdHJ5TXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKHJlZ2lz
dHJ5TXV0ZXgpOwogCiAgICAgQVNTRVJUKCFtX2lkZW50aWZpZXJzLmNvbnRhaW5zKG5hbWUpKTsK
ICAgICBBU1NFUlQoIW1fY29uc3RydWN0b3JzLmNvbnRhaW5zKHN0YXRpY19jYXN0PHVuc2lnbmVk
PihpZGVudGlmaWVyKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDVmYzRjYjE2NjIwOGY1ZmVmMmFi
MWVhZjE4OGQ1MDc1YjhmMjU1M2YuLjRiMWU4NzI1Nzk1MzNmYmY3ODcxMmZkNmQyM2QyYzgxNWIw
M2ViMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTIxNTQsNyArMjE1NCw3IEBAIHN0YXRpYyBFdmVu
dFRhcmdldERhdGFNYXAmIGV2ZW50VGFyZ2V0RGF0YU1hcCgpCiAgICAgcmV0dXJuIG1hcDsKIH0K
IAotc3RhdGljIFN0YXRpY0xvY2sgc19ldmVudFRhcmdldERhdGFNYXBMb2NrOworc3RhdGljIExv
Y2sgc19ldmVudFRhcmdldERhdGFNYXBMb2NrOwogCiBFdmVudFRhcmdldERhdGEqIE5vZGU6OmV2
ZW50VGFyZ2V0RGF0YSgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9V
UkwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAppbmRleCBlOGIxYjA4MmI5
ZGJjYmZlYjY2NTc5M2RkZmFjMTY3YmIzZjlkN2Q1Li4xNTllN2ZhYTk4ZGJjOWE1ZGVmMzRiNmFm
NTMxMDVmZmY2YTMwZDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKQEAgLTI3NSw3ICsyNzUs
NyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRQcm90b2NvbElzR29vZChTdHJpbmdWaWV3IHByb3RvY29s
KQogCiAjZW5kaWYKIAotc3RhdGljIFN0YXRpY0xvY2sgZGVmYXVsdFBvcnRGb3JQcm90b2NvbE1h
cEZvclRlc3RpbmdMb2NrOworc3RhdGljIExvY2sgZGVmYXVsdFBvcnRGb3JQcm90b2NvbE1hcEZv
clRlc3RpbmdMb2NrOwogCiB1c2luZyBEZWZhdWx0UG9ydEZvclByb3RvY29sTWFwRm9yVGVzdGlu
ZyA9IEhhc2hNYXA8U3RyaW5nLCB1aW50MTZfdD47CiBzdGF0aWMgRGVmYXVsdFBvcnRGb3JQcm90
b2NvbE1hcEZvclRlc3RpbmcqJiBkZWZhdWx0UG9ydEZvclByb3RvY29sTWFwRm9yVGVzdGluZygp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRl
eCAxM2U5MDJiZTUzZGU3ODI2Y2UwNzA2YmUzNWJkMTM3M2MwNDdhYTA4Li5iYzk3MjBkZWZlOGQw
ZTVkZWYxZThlZmEwYzMzYTgxOWMzNTRhNmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTUzLDggKzUzLDcgQEAKICNpbmNsdWRlIDx3
dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWN1cnNpdmVMb2NrQWRhcHRlci5oPgogCi11c2lu
ZyBSZWN1cnNpdmVTdGF0aWNMb2NrID0gV1RGOjpSZWN1cnNpdmVMb2NrQWRhcHRlcjxTdGF0aWNM
b2NrPjsKLXN0YXRpYyBSZWN1cnNpdmVTdGF0aWNMb2NrIGZvbnRMb2NrOworc3RhdGljIFJlY3Vy
c2l2ZUxvY2sgZm9udExvY2s7CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA4YTQ2
ODZhZTI2NmE2N2ViYzIxZDA4ODBkMzA2ZjgzMjY4ZTZiNWMyLi41MGEzNmFjY2Q1ZjI4N2ZiNzQ3
ZjcyZDZkNGJjNmRiOTQ5OTc1MjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0yMDcsNyArMjA3LDcgQEAgc3RydWN0IE1lZGlh
UGxheWVyRmFjdG9yeSB7CiAKIHN0YXRpYyB2b2lkIGFkZE1lZGlhRW5naW5lKENyZWF0ZU1lZGlh
RW5naW5lUGxheWVyJiYsIE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3Vw
cG9ydHNUeXBlLCBNZWRpYUVuZ2luZU9yaWdpbnNJbk1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xl
YXJNZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZUZvck9yaWdpbnMsIE1lZGlh
RW5naW5lU3VwcG9ydHNLZXlTeXN0ZW0pOwogCi1zdGF0aWMgU3RhdGljTG9jayBtZWRpYUVuZ2lu
ZVZlY3RvckxvY2s7CitzdGF0aWMgTG9jayBtZWRpYUVuZ2luZVZlY3RvckxvY2s7CiAKIHN0YXRp
YyBib29sJiBoYXZlTWVkaWFFbmdpbmVzVmVjdG9yKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2subW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvUXVpY2tMb29rLm1tCmluZGV4IGYzYjBkZjZkMTUxMzRhZmZkMzlhZTBhZTFlYWVhMjM5
MGUzMmMwN2MuLjM3YmFkMDBiNDM3MjJlYWM1ZDg0ZDBlMTNlODU4MTE4NmY3NjhiYmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2subW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNrTG9vay5tbQpAQCAtNDYsNyArNDYsNyBAQCBO
U1NldCAqUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0KCkKICAgICByZXR1cm4gc2V0
OwogfQogCi1zdGF0aWMgU3RhdGljTG9jayBxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TG9j
azsKK3N0YXRpYyBMb2NrIHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlMb2NrOwogCiBzdGF0
aWMgTlNNdXRhYmxlRGljdGlvbmFyeSAqUUxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeSgpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViU1FMaXRlRGF0YWJh
c2VUcmFja2VyQ2xpZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlNRTGl0
ZURhdGFiYXNlVHJhY2tlckNsaWVudC5tbQppbmRleCA5NmZjYmYxYzhlNTc0ZGViNGFhNDMwZDE2
YWFmZjY3NDBiZmQ4ZDA1Li5lMzljNGVjMzNmNTVkZTNmYWQ4YTI5MzJiYmUwYTUxMmQ3NGFmM2Rh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViU1FMaXRlRGF0YWJh
c2VUcmFja2VyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJT
UUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQubW0KQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBXZWJT
UUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQ6Omh5c3RlcmVzaXNVcGRhdGVkKFBBTDo6SHlzdGVy
ZXNpc1N0YXRlIHN0YXQKIAogfQogCi1zdGF0aWMgU3RhdGljTG9jayB0cmFuc2FjdGlvbkJhY2tn
cm91bmRUYXNrSWRlbnRpZmllckxvY2s7CitzdGF0aWMgTG9jayB0cmFuc2FjdGlvbkJhY2tncm91
bmRUYXNrSWRlbnRpZmllckxvY2s7CiAKIHN0YXRpYyBOU1VJbnRlZ2VyIHRyYW5zYWN0aW9uQmFj
a2dyb3VuZFRhc2tJZGVudGlmaWVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3Mvd2FrL1dlYkNvcmVUaHJlYWQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3Mvd2FrL1dlYkNvcmVUaHJlYWQubW0KaW5kZXggZTg2ZmU4N2NlMDJjZDAxZDYyNzQ1MGMwODBk
MjQ1ZDRlMmRlMzY3Zi4uYjI4MWVjZGE3OTk2YTEwOTYwM2MwNTRlZGQ3MjU4ODNhNjgzZDU5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XZWJDb3JlVGhyZWFk
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV2ViQ29yZVRocmVhZC5t
bQpAQCAtOTEsMTEgKzkxLDkgQEAgZXh0ZXJuIHZvaWQgTlNQb3BBdXRvcmVsZWFzZVBvb2woTlNB
dXRvcmVsZWFzZVBvb2xNYXJrIHRva2VuKTsKIH0KICNlbmRpZgogCi11c2luZyBTdGF0aWNSZWN1
cnNpdmVMb2NrID0gV1RGOjpSZWN1cnNpdmVMb2NrQWRhcHRlcjxTdGF0aWNMb2NrPjsKLQotc3Rh
dGljIFN0YXRpY1JlY3Vyc2l2ZUxvY2sgd2ViTG9jazsKLXN0YXRpYyBTdGF0aWNMb2NrIHdlYlRo
cmVhZFJlbGVhc2VMb2NrOwotc3RhdGljIFN0YXRpY1JlY3Vyc2l2ZUxvY2sgd2ViQ29yZVJlbGVh
c2VMb2NrOworc3RhdGljIFJlY3Vyc2l2ZUxvY2sgd2ViTG9jazsKK3N0YXRpYyBMb2NrIHdlYlRo
cmVhZFJlbGVhc2VMb2NrOworc3RhdGljIFJlY3Vyc2l2ZUxvY2sgd2ViQ29yZVJlbGVhc2VMb2Nr
OwogCiBzdGF0aWMgTlNBdXRvcmVsZWFzZVBvb2xNYXJrIGF1dG9yZWxlYXNlUG9vbE1hcms7CiBz
dGF0aWMgQ0ZSdW5Mb29wUmVmIHdlYlRocmVhZFJ1bkxvb3A7CkBAIC0xMTcsNyArMTE1LDcgQEAg
c3RhdGljIENGTXV0YWJsZUFycmF5UmVmIFdlYlRocmVhZFJlbGVhc2VPYmpBcnJheTsKIAogc3Rh
dGljIHZvaWQgTWFpblRocmVhZEFkb3B0QW5kUmVsZWFzZShpZCBvYmopOwogCi1zdGF0aWMgU3Rh
dGljTG9jayBkZWxlZ2F0ZUxvY2s7CitzdGF0aWMgTG9jayBkZWxlZ2F0ZUxvY2s7CiBzdGF0aWMg
U3RhdGljQ29uZGl0aW9uIGRlbGVnYXRlQ29uZGl0aW9uOwogc3RhdGljIE5TSW52b2NhdGlvbiog
ZGVsZWdhdGVJbnZvY2F0aW9uOwogc3RhdGljIENGUnVuTG9vcFNvdXJjZVJlZiBkZWxlZ2F0ZVNv
dXJjZSA9IG51bGxwdHI7CkBAIC0xMjgsNyArMTI2LDcgQEAgc3RhdGljIEJPT0wgc2VuZGluZ0Rl
bGVnYXRlTWVzc2FnZTsKIAogc3RhdGljIENGUnVuTG9vcE9ic2VydmVyUmVmIG1haW5SdW5Mb29w
QXV0b1VubG9ja09ic2VydmVyOwogCi1zdGF0aWMgU3RhdGljTG9jayBzdGFydHVwTG9jazsKK3N0
YXRpYyBMb2NrIHN0YXJ0dXBMb2NrOwogc3RhdGljIFN0YXRpY0NvbmRpdGlvbiBzdGFydHVwQ29u
ZGl0aW9uOwogCiBzdGF0aWMgV2ViVGhyZWFkQ29udGV4dCogd2ViVGhyZWFkQ29udGV4dDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV2ViQ29yZVRocmVhZFJ1
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dlYkNvcmVUaHJlYWRSdW4u
Y3BwCmluZGV4IGVmZWZjMjI2YmYzOWU3NzJlNTM0NGRlNjk3MGY5OGFmMTM1NDliZjkuLjIzM2Zk
M2NhNWEwNDdiZTFmM2IxNGJmMmM3N2I0NGIyZjJmMjExYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV2ViQ29yZVRocmVhZFJ1bi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XZWJDb3JlVGhyZWFkUnVuLmNwcApAQCAtMTExLDcg
KzExMSw3IEBAIGV4dGVybiAiQyIgewogCiB0eXBlZGVmIFdURjo6VmVjdG9yPFdlYlRocmVhZEJs
b2NrPiBXZWJUaHJlYWRSdW5RdWV1ZTsKIAotc3RhdGljIFN0YXRpY0xvY2sgcnVuUXVldWVNdXRl
eDsKK3N0YXRpYyBMb2NrIHJ1blF1ZXVlTXV0ZXg7CiBzdGF0aWMgQ0ZSdW5Mb29wU291cmNlUmVm
IHJ1blNvdXJjZTsKIHN0YXRpYyBXZWJUaHJlYWRSdW5RdWV1ZSogcnVuUXVldWU7CiAKQEAgLTEy
NCw3ICsxMjQsNyBAQCBzdGF0aWMgdm9pZCBIYW5kbGVSdW5Tb3VyY2Uodm9pZCAqaW5mbykKIAog
ICAgIFdlYlRocmVhZFJ1blF1ZXVlIHF1ZXVlQ29weTsKICAgICB7Ci0gICAgICAgIHN0ZDo6bG9j
a19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHJ1blF1ZXVlTXV0ZXgpOworICAgICAgICBzdGQ6Omxv
Y2tfZ3VhcmQ8TG9jaz4gbG9jayhydW5RdWV1ZU11dGV4KTsKICAgICAgICAgcXVldWVDb3B5ID0g
KnJ1blF1ZXVlOwogICAgICAgICBydW5RdWV1ZS0+Y2xlYXIoKTsKICAgICB9CkBAIC0xNDgsNyAr
MTQ4LDcgQEAgc3RhdGljIHZvaWQgX1dlYlRocmVhZFJ1bih2b2lkICheYmxvY2spKHZvaWQpLCBi
b29sIHN5bmNocm9ub3VzKQogICAgICAgICBzdGF0ZSA9IG5ldyBXZWJUaHJlYWRCbG9ja1N0YXRl
OwogCiAgICAgewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhydW5R
dWV1ZU11dGV4KTsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2socnVuUXVldWVN
dXRleCk7CiAgICAgICAgIHJ1blF1ZXVlLT5hcHBlbmQoV2ViVGhyZWFkQmxvY2soYmxvY2ssIHN0
YXRlKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5jcHAKaW5kZXggZjA4MzI3ZmVkNzIwNDBlOGE0ODEzYTJj
MzVhM2ZjNWE0MzI0YTM1My4uY2ZkNmFiMGJhZWVhOTIyZmY4MjJiM2MwMmM0NzNmMjI4YjNiNTIx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJS
dW5Mb29wQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTG9h
ZGVyUnVuTG9vcENGLmNwcApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHN0YXRpYyBDRlJ1bkxvb3BSZWYgbG9hZGVyUnVuTG9vcE9iamVjdCA9IDA7CiAKLXN0YXRpYyBT
dGF0aWNMb2NrIGxvYWRlclJ1bkxvb3BNdXRleDsKK3N0YXRpYyBMb2NrIGxvYWRlclJ1bkxvb3BN
dXRleDsKIHN0YXRpYyBTdGF0aWNDb25kaXRpb24gbG9hZGVyUnVuTG9vcENvbmRpdGlvblZhcmlh
YmxlOwogCiBzdGF0aWMgdm9pZCBlbXB0eVBlcmZvcm0odm9pZCopIApAQCAtNTIsMTIgKzUyLDEy
IEBAIENGUnVuTG9vcFJlZiBsb2FkZXJSdW5Mb29wKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogCi0gICAgc3RkOjp1bmlxdWVfbG9jazxTdGF0aWNMb2NrPiBsb2NrKGxvYWRlclJ1
bkxvb3BNdXRleCk7CisgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKGxvYWRlclJ1bkxv
b3BNdXRleCk7CiAKICAgICBpZiAoIWxvYWRlclJ1bkxvb3BPYmplY3QpIHsKICAgICAgICAgVGhy
ZWFkOjpjcmVhdGUoIldlYkNvcmU6IENGTmV0d29yayBMb2FkZXIiLCBbXSB7CiAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sobG9h
ZGVyUnVuTG9vcE11dGV4KTsKKyAgICAgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4g
bG9jayhsb2FkZXJSdW5Mb29wTXV0ZXgpOwogCiAgICAgICAgICAgICAgICAgbG9hZGVyUnVuTG9v
cE9iamVjdCA9IENGUnVuTG9vcEdldEN1cnJlbnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKaW5kZXggNWM1MDRjZWM3
YmJmNmJiM2M1ODhmMjBiYTNhMzlkZTk2NGE2NDY2Yy4uZmI4MDQzZGMwOGQxOWE1NDk1Zjc3OGRk
ZDUyZGM2Y2E3MTNkNDlhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCkBAIC0xOTksMTEgKzE5OSwxMSBAQCB2b2lkIEN1
cmxTaGFyZUhhbmRsZTo6dW5sb2NrQ2FsbGJhY2soQ1VSTCosIGN1cmxfbG9ja19kYXRhIGRhdGEs
IHZvaWQqKQogICAgICAgICBtdXRleC0+dW5sb2NrKCk7CiB9CiAKLVN0YXRpY0xvY2sqIEN1cmxT
aGFyZUhhbmRsZTo6bXV0ZXhGb3IoY3VybF9sb2NrX2RhdGEgZGF0YSkKK0xvY2sqIEN1cmxTaGFy
ZUhhbmRsZTo6bXV0ZXhGb3IoY3VybF9sb2NrX2RhdGEgZGF0YSkKIHsKLSAgICBzdGF0aWMgU3Rh
dGljTG9jayBjb29raWVNdXRleDsKLSAgICBzdGF0aWMgU3RhdGljTG9jayBkbnNNdXRleDsKLSAg
ICBzdGF0aWMgU3RhdGljTG9jayBzaGFyZU11dGV4OworICAgIHN0YXRpYyBMb2NrIGNvb2tpZU11
dGV4OworICAgIHN0YXRpYyBMb2NrIGRuc011dGV4OworICAgIHN0YXRpYyBMb2NrIHNoYXJlTXV0
ZXg7CiAKICAgICBzd2l0Y2ggKGRhdGEpIHsKICAgICBjYXNlIENVUkxfTE9DS19EQVRBX0NPT0tJ
RToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJs
Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250
ZXh0LmgKaW5kZXggNmJhNzBlMTEyYTJmYjU5Y2Y3ZjcwNDhlYTEyM2QyYTYxYzc3NzRkZS4uZWQz
OWU1OWExOGRlMDM5NzU1NjIyMjUyZjE3NWU2ODQ2NWY4YzI3MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmgKQEAgLTg5LDcgKzg5
LDcgQEAgY2xhc3MgQ3VybFNoYXJlSGFuZGxlIHsKIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQg
bG9ja0NhbGxiYWNrKENVUkwqLCBjdXJsX2xvY2tfZGF0YSwgY3VybF9sb2NrX2FjY2Vzcywgdm9p
ZCopOwogICAgIHN0YXRpYyB2b2lkIHVubG9ja0NhbGxiYWNrKENVUkwqLCBjdXJsX2xvY2tfZGF0
YSwgdm9pZCopOwotICAgIHN0YXRpYyBTdGF0aWNMb2NrKiBtdXRleEZvcihjdXJsX2xvY2tfZGF0
YSk7CisgICAgc3RhdGljIExvY2sqIG11dGV4Rm9yKGN1cmxfbG9ja19kYXRhKTsKIAogICAgIENV
UkxTSCogbV9zaGFyZUhhbmRsZSB7IG51bGxwdHIgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwCmluZGV4IDM3NTRh
NGM0OGFmY2I3ZDA3Njk5MzM0ZjMxYzc4ZDllYzhmYzU1MmIuLmUyYWUwY2U3ZDQ2OWFlYjE1MDk5
ZjA4MjczN2NjM2FhNDlmMzM1YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3NxbC9TUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NxbC9TUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVz
cGFjZSBTUUxpdGVEYXRhYmFzZVRyYWNrZXIgewogc3RhdGljIFNRTGl0ZURhdGFiYXNlVHJhY2tl
ckNsaWVudCogc19zdGF0aWNTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQgPSBudWxscHRyOwog
c3RhdGljIHVuc2lnbmVkIHNfdHJhbnNhY3Rpb25JblByb2dyZXNzQ291bnRlciA9IDA7CiAKLXN0
YXRpYyBTdGF0aWNMb2NrIHRyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4Oworc3RhdGljIExvY2sg
dHJhbnNhY3Rpb25JblByb2dyZXNzTXV0ZXg7CiAKIHZvaWQgc2V0Q2xpZW50KFNRTGl0ZURhdGFi
YXNlVHJhY2tlckNsaWVudCogY2xpZW50KQogewpAQCAtNTAsNyArNTAsNyBAQCB2b2lkIGluY3Jl
bWVudFRyYW5zYWN0aW9uSW5Qcm9ncmVzc0NvdW50KCkKICAgICBpZiAoIXNfc3RhdGljU1FMaXRl
RGF0YWJhc2VUcmFja2VyQ2xpZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBzdGQ6OmxvY2tf
Z3VhcmQ8U3RhdGljTG9jaz4gbG9jayh0cmFuc2FjdGlvbkluUHJvZ3Jlc3NNdXRleCk7CisgICAg
c3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sodHJhbnNhY3Rpb25JblByb2dyZXNzTXV0ZXgpOwog
CiAgICAgc190cmFuc2FjdGlvbkluUHJvZ3Jlc3NDb3VudGVyKys7CiAgICAgaWYgKHNfdHJhbnNh
Y3Rpb25JblByb2dyZXNzQ291bnRlciA9PSAxKQpAQCAtNjIsNyArNjIsNyBAQCB2b2lkIGRlY3Jl
bWVudFRyYW5zYWN0aW9uSW5Qcm9ncmVzc0NvdW50KCkKICAgICBpZiAoIXNfc3RhdGljU1FMaXRl
RGF0YWJhc2VUcmFja2VyQ2xpZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBzdGQ6OmxvY2tf
Z3VhcmQ8U3RhdGljTG9jaz4gbG9jayh0cmFuc2FjdGlvbkluUHJvZ3Jlc3NNdXRleCk7CisgICAg
c3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sodHJhbnNhY3Rpb25JblByb2dyZXNzTXV0ZXgpOwog
CiAgICAgQVNTRVJUKHNfdHJhbnNhY3Rpb25JblByb2dyZXNzQ291bnRlcik7CiAgICAgc190cmFu
c2FjdGlvbkluUHJvZ3Jlc3NDb3VudGVyLS07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwCmluZGV4IGZkYTNkMTE2OTc4YjM2
MGYzZGNhNzE2ODc1ODgxNjZhNThlM2ZlZmYuLjUyNDE2Y2MzY2EyMDMzYjVhYmZlZGU0NWI5Y2Yy
YmM3OTdkYmUxNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4
dEVuY29kaW5nUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
VGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwCkBAIC05MCw3ICs5MCw3IEBAIHN0cnVjdCBUZXh0RW5j
b2RpbmdOYW1lSGFzaCB7CiB1c2luZyBUZXh0RW5jb2RpbmdOYW1lTWFwID0gSGFzaE1hcDxjb25z
dCBjaGFyKiwgY29uc3QgY2hhciosIFRleHRFbmNvZGluZ05hbWVIYXNoPjsKIHVzaW5nIFRleHRD
b2RlY01hcCA9IEhhc2hNYXA8Y29uc3QgY2hhciosIE5ld1RleHRDb2RlY0Z1bmN0aW9uPjsKIAot
c3RhdGljIFN0YXRpY0xvY2sgZW5jb2RpbmdSZWdpc3RyeU11dGV4Oworc3RhdGljIExvY2sgZW5j
b2RpbmdSZWdpc3RyeU11dGV4OwogCiBzdGF0aWMgVGV4dEVuY29kaW5nTmFtZU1hcCogdGV4dEVu
Y29kaW5nTmFtZU1hcDsKIHN0YXRpYyBUZXh0Q29kZWNNYXAqIHRleHRDb2RlY01hcDsKQEAgLTE1
Niw3ICsxNTYsNyBAQCBzdGF0aWMgdm9pZCBwcnVuZUJsYWNrbGlzdGVkQ29kZWNzKCkKICAgICB9
CiB9CiAKLXN0YXRpYyB2b2lkIGJ1aWxkQmFzZVRleHRDb2RlY01hcHMoY29uc3Qgc3RkOjpsb2Nr
X2d1YXJkPFN0YXRpY0xvY2s+JikKK3N0YXRpYyB2b2lkIGJ1aWxkQmFzZVRleHRDb2RlY01hcHMo
Y29uc3Qgc3RkOjpsb2NrX2d1YXJkPExvY2s+JikKIHsKICAgICBBU1NFUlQoIXRleHRDb2RlY01h
cCk7CiAgICAgQVNTRVJUKCF0ZXh0RW5jb2RpbmdOYW1lTWFwKTsKQEAgLTI0NCw3ICsyNDQsNyBA
QCBzdGF0aWMgdm9pZCBleHRlbmRUZXh0Q29kZWNNYXBzKCkKIAogc3RkOjp1bmlxdWVfcHRyPFRl
eHRDb2RlYz4gbmV3VGV4dENvZGVjKGNvbnN0IFRleHRFbmNvZGluZyYgZW5jb2RpbmcpCiB7Ci0g
ICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2soZW5jb2RpbmdSZWdpc3RyeU11dGV4
KTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhlbmNvZGluZ1JlZ2lzdHJ5TXV0ZXgp
OwogCiAgICAgQVNTRVJUKHRleHRDb2RlY01hcCk7CiAgICAgYXV0byByZXN1bHQgPSB0ZXh0Q29k
ZWNNYXAtPmZpbmQoZW5jb2RpbmcubmFtZSgpKTsKQEAgLTI1Nyw3ICsyNTcsNyBAQCBjb25zdCBj
aGFyKiBhdG9taWNDYW5vbmljYWxUZXh0RW5jb2RpbmdOYW1lKGNvbnN0IGNoYXIqIG5hbWUpCiAg
ICAgaWYgKCFuYW1lIHx8ICFuYW1lWzBdKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAg
IHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKGVuY29kaW5nUmVnaXN0cnlNdXRleCk7
CisgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2soZW5jb2RpbmdSZWdpc3RyeU11dGV4KTsK
IAogICAgIGlmICghdGV4dEVuY29kaW5nTmFtZU1hcCkKICAgICAgICAgYnVpbGRCYXNlVGV4dENv
ZGVjTWFwcyhsb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRl
eCA0YzIxZmFjZjZjYTFlNWU0MmFlNTNjMjg5NDJjNzYyZmU2MzM3YWU3Li5mOWE3OTAzNDM5MTNj
ZDA5ZWVhODMzOTY1ZWUyZDBlMWRlZTNkYjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJUaHJlYWQuY3BwCkBAIC01Myw3ICs1Myw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
c3RhdGljIFN0YXRpY0xvY2sgdGhyZWFkU2V0TXV0ZXg7CitzdGF0aWMgTG9jayB0aHJlYWRTZXRN
dXRleDsKIAogc3RhdGljIEhhc2hTZXQ8V29ya2VyVGhyZWFkKj4mIHdvcmtlclRocmVhZHMoKQog
ewpAQCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgSGFzaFNldDxXb3JrZXJUaHJlYWQqPiYgd29ya2Vy
VGhyZWFkcygpCiAKIHVuc2lnbmVkIFdvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkQ291bnQoKQog
ewotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHRocmVhZFNldE11dGV4KTsK
KyAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayh0aHJlYWRTZXRNdXRleCk7CiAKICAgICBy
ZXR1cm4gd29ya2VyVGhyZWFkcygpLnNpemUoKTsKIH0KQEAgLTExOSwxNCArMTE5LDE0IEBAIFdv
cmtlclRocmVhZDo6V29ya2VyVGhyZWFkKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJp
bmcmIGlkZW50aWZpZXIsIGNvbnN0CiAgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb25Qcm94eSk7
CiAjZW5kaWYKIAotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHRocmVhZFNl
dE11dGV4KTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayh0aHJlYWRTZXRNdXRleCk7
CiAKICAgICB3b3JrZXJUaHJlYWRzKCkuYWRkKHRoaXMpOwogfQogCiBXb3JrZXJUaHJlYWQ6On5X
b3JrZXJUaHJlYWQoKQogewotICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHRo
cmVhZFNldE11dGV4KTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayh0aHJlYWRTZXRN
dXRleCk7CiAKICAgICBBU1NFUlQod29ya2VyVGhyZWFkcygpLmNvbnRhaW5zKHRoaXMpKTsKICAg
ICB3b3JrZXJUaHJlYWRzKCkucmVtb3ZlKHRoaXMpOwpAQCAtMzE1LDcgKzMxNSw3IEBAIHZvaWQg
V29ya2VyVGhyZWFkOjpzdG9wKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIHN0b3BwZWRDYWxsYmFj
aykKIAogdm9pZCBXb3JrZXJUaHJlYWQ6OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeUluQWxs
VGhyZWFkcygpCiB7Ci0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sodGhyZWFk
U2V0TXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKHRocmVhZFNldE11dGV4
KTsKIAogICAgIGZvciAoYXV0byogd29ya2VyVGhyZWFkIDogd29ya2VyVGhyZWFkcygpKSB7CiAg
ICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrKFtdIChTY3JpcHRFeGVjdXRp
b25Db250ZXh0JikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbQppbmRleCBmMjdk
YmE3ODNhZmI1Y2M5MTA5MzVkNGY1OWQ5MWU0ZTA2N2I4ZDYwLi4yZjgwODI0OGNjNGIzYTRjYzkz
ZTk4YjY4MTYxZWE3M2I1M2VjNzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lv
cy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5t
bQpAQCAtNDksNyArNDksNyBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1l
c3BhY2Ugc3RkOwogCi1zdGF0aWMgU3RhdGljTG9jayB3ZWJGaXhlZFBvc2l0aW9uQ29udGVudERh
dGFMb2NrOworc3RhdGljIExvY2sgd2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jazsKIAog
c3RydWN0IFZpZXdwb3J0Q29uc3RyYWluZWRMYXllckRhdGEgewogICAgIFZpZXdwb3J0Q29uc3Ry
YWluZWRMYXllckRhdGEoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9N
L0RPTUludGVybmFsLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUludGVybmFs
Lm1tCmluZGV4IDZiMTc5ZWI1MTQ0YjJkYmJiNzM4YWVmM2Y3N2I0NzIwMWVkZWVkODQuLmUwMjFj
NWI4OTA3NzMyY2E1OGY0YjY4MTRiNDk4OGU3N2YyMzgyNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01JbnRlcm5hbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9ET00vRE9NSW50ZXJuYWwubW0KQEAgLTQ0LDcgKzQ0LDcgQEAKIC8vIFdyYXBwaW5n
IFdlYkNvcmUgaW1wbGVtZW50YXRpb24gb2JqZWN0cwogCiAjaWZkZWYgTkVFRFNfV1JBUFBFUl9D
QUNIRV9MT0NLCi1zdGF0aWMgU3RhdGljTG9jayB3cmFwcGVyQ2FjaGVMb2NrOworc3RhdGljIExv
Y2sgd3JhcHBlckNhY2hlTG9jazsKICNlbmRpZgogCiBzdGF0aWMgSGFzaE1hcDxET01PYmplY3RJ
bnRlcm5hbCosIE5TT2JqZWN0ICo+JiB3cmFwcGVyQ2FjaGUoKQpAQCAtNTYsNyArNTYsNyBAQCBz
dGF0aWMgSGFzaE1hcDxET01PYmplY3RJbnRlcm5hbCosIE5TT2JqZWN0ICo+JiB3cmFwcGVyQ2Fj
aGUoKQogTlNPYmplY3QqIGdldERPTVdyYXBwZXIoRE9NT2JqZWN0SW50ZXJuYWwqIGltcGwpCiB7
CiAjaWZkZWYgTkVFRFNfV1JBUFBFUl9DQUNIRV9MT0NLCi0gICAgc3RkOjpsb2NrX2d1YXJkPFN0
YXRpY0xvY2s+IGxvY2sod3JhcHBlckNhY2hlTG9jayk7CisgICAgc3RkOjpsb2NrX2d1YXJkPExv
Y2s+IGxvY2sod3JhcHBlckNhY2hlTG9jayk7CiAjZW5kaWYKICAgICByZXR1cm4gd3JhcHBlckNh
Y2hlKCkuZ2V0KGltcGwpOwogfQpAQCAtNjQsNyArNjQsNyBAQCBOU09iamVjdCogZ2V0RE9NV3Jh
cHBlcihET01PYmplY3RJbnRlcm5hbCogaW1wbCkKIHZvaWQgYWRkRE9NV3JhcHBlcihOU09iamVj
dCogd3JhcHBlciwgRE9NT2JqZWN0SW50ZXJuYWwqIGltcGwpCiB7CiAjaWZkZWYgTkVFRFNfV1JB
UFBFUl9DQUNIRV9MT0NLCi0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sod3Jh
cHBlckNhY2hlTG9jayk7CisgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sod3JhcHBlckNh
Y2hlTG9jayk7CiAjZW5kaWYKICAgICB3cmFwcGVyQ2FjaGUoKS5zZXQoaW1wbCwgd3JhcHBlcik7
CiB9CkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgYWRkRE9NV3JhcHBlcihOU09iamVjdCogd3JhcHBl
ciwgRE9NT2JqZWN0SW50ZXJuYWwqIGltcGwpCiB2b2lkIHJlbW92ZURPTVdyYXBwZXIoRE9NT2Jq
ZWN0SW50ZXJuYWwqIGltcGwpCiB7CiAjaWZkZWYgTkVFRFNfV1JBUFBFUl9DQUNIRV9MT0NLCi0g
ICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sod3JhcHBlckNhY2hlTG9jayk7Cisg
ICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sod3JhcHBlckNhY2hlTG9jayk7CiAjZW5kaWYK
ICAgICB3cmFwcGVyQ2FjaGUoKS5yZW1vdmUoaW1wbCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NBVmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NBVmlldy5j
cHAKaW5kZXggNWUzNTcwMjg1MjVhMWRjZmNjMDlkOWIyYzQyZjQ2ODY1ZTc2NjQwYS4uOTQwNzc5
MTJhOTkxNjQxMTdkMGM2ODFjY2NjMDY2ODZlMDRjNGRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucy9DQVZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMvQ0FWaWV3
LmNwcApAQCAtNjgsNyArNjgsNyBAQCBjbGFzcyBDQVZpZXc6OkhhbmRsZSA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxIYW5kbGU+IHsKICAgICBDQVZpZXcqIG1fdmlldzsKIH07CiAKLXN0
YXRpYyBTdGF0aWNMb2NrIGdsb2JhbFN0YXRlTG9jazsKK3N0YXRpYyBMb2NrIGdsb2JhbFN0YXRl
TG9jazsKIHN0YXRpYyBIV05EIG1lc3NhZ2VXaW5kb3c7CiBzdGF0aWMgY29uc3Qgd2NoYXJfdCBt
ZXNzYWdlV2luZG93Q2xhc3NOYW1lW10gPSBMIkNBVmlld01lc3NhZ2VXaW5kb3ciOwogCkBAIC0x
MDYsNyArMTA2LDcgQEAgc3RhdGljIEhXTkQgY3JlYXRlTWVzc2FnZVdpbmRvdygpCiAKIHZvaWQg
Q0FWaWV3OjpyZWxlYXNlQWxsRDNEUmVzb3VyY2VzKCkKIHsKLSAgICBzdGF0aWMgU3RhdGljTG9j
ayBsb2NrOworICAgIHN0YXRpYyBMb2NrIGxvY2s7CiAKICAgICBpZiAoIWxvY2sudHJ5TG9jaygp
KSB7CiAgICAgICAgIC8vIEFub3RoZXIgdGhyZWFkIGlzIGN1cnJlbnRseSByZWxlYXNpbmcgM0Qg
cmVzb3VyY2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViTG9jYWxp
emFibGVTdHJpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkxvY2FsaXphYmxl
U3RyaW5ncy5jcHAKaW5kZXggMmUzMTFlZTA3ZmY2YTAwYTY5ZGI2ZTUzZjUyYWFmMTM1ODBjODhj
Yy4uYzU1NjA3ZjYyNzRiOWQ1NmU3ODEyOWE0MzgwMmFkMGE4ODBjYzE3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViTG9jYWxpemFibGVTdHJpbmdzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJMb2NhbGl6YWJsZVN0cmluZ3MuY3BwCkBAIC00NSw3
ICs0NSw3IEBAIFdlYkxvY2FsaXphYmxlU3RyaW5nc0J1bmRsZSBXZWJLaXRMb2NhbGl6YWJsZVN0
cmluZ3NCdW5kbGUgPSB7ICJjb20uYXBwbGUuV2ViS2l0CiAKIHR5cGVkZWYgSGFzaE1hcDxTdHJp
bmcsIExvY2FsaXplZFN0cmluZyo+IExvY2FsaXplZFN0cmluZ01hcDsKIAotc3RhdGljIFN0YXRp
Y0xvY2sgbWFpbkJ1bmRsZUxvY1N0cmluZ3NMb2NrOworc3RhdGljIExvY2sgbWFpbkJ1bmRsZUxv
Y1N0cmluZ3NMb2NrOwogCiBzdGF0aWMgTG9jYWxpemVkU3RyaW5nTWFwJiBtYWluQnVuZGxlTG9j
U3RyaW5ncygpCiB7CkBAIC01Myw3ICs1Myw3IEBAIHN0YXRpYyBMb2NhbGl6ZWRTdHJpbmdNYXAm
IG1haW5CdW5kbGVMb2NTdHJpbmdzKCkKICAgICByZXR1cm4gbWFwOwogfQogCi1zdGF0aWMgU3Rh
dGljTG9jayBmcmFtZXdvcmtMb2NTdHJpbmdzTG9jazsKK3N0YXRpYyBMb2NrIGZyYW1ld29ya0xv
Y1N0cmluZ3NMb2NrOwogCiBzdGF0aWMgTG9jYWxpemVkU3RyaW5nTWFwIGZyYW1ld29ya0xvY1N0
cmluZ3MoKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IGRkMWNlMGI1OTdhM2I0YzFkMDg0MmIxODAxODdiOTQzMGMyYjIyMzYuLjllN2QxMmVm
YjI2ZDE4YjI2NzExMzk2OTAxNTcxOGY4YTcyMTM1ZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0wNC0wNSAg
WXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbV1RGXSBS
ZW1vdmUgU3RhdGljTG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg0MzMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcDoKKwogMjAx
OC0wNC0wNSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMYXlv
dXRSZWxvYWRlZF0gRmluZCB0aGUgY29ycmVjdCBsZWZ0IGVkZ2UgZm9yIGEgbGluZSB3aGVuIGZs
b2F0aW5nIGJveGVzIGFyZSBpbiBwYXJlbnQgZm9ybWF0dGluZyBjb250ZXh0LgpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcAppbmRleCA4MGEwODJiZDFmNmMy
NmQ4NTNjYmFiNzFiNTIxYjExZWNiNDZlN2Q5Li41Zjk4OTI5YzMxYmMzMzZlZTA2ODY0N2U2ZjE1
MzQ0NjQ3NDBmZTM0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0
VGhyZWFkaW5nLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFk
aW5nLmNwcApAQCAtNDUsNyArNDUsNyBAQAogc3RhdGljIGNvbnN0IHNpemVfdCBqYXZhU2NyaXB0
VGhyZWFkc0NvdW50ID0gNDsKIHN0YXRpYyBib29sIGphdmFTY3JpcHRUaHJlYWRzU2hvdWxkVGVy
bWluYXRlOwogc3RhdGljIEpTQ29udGV4dEdyb3VwUmVmIGphdmFTY3JpcHRUaHJlYWRzR3JvdXA7
Ci1zdGF0aWMgU3RhdGljTG9jayBqYXZhU2NyaXB0VGhyZWFkc0xvY2s7CitzdGF0aWMgTG9jayBq
YXZhU2NyaXB0VGhyZWFkc0xvY2s7CiAKIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8VGhyZWFkPj4g
VGhyZWFkU2V0Owogc3RhdGljIFRocmVhZFNldCYgamF2YVNjcmlwdFRocmVhZHMoKQo=
</data>
<flag name="review"
          id="355691"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>